From d702ccc489f7f2e6b2e331ee5717a8f07859a319 Mon Sep 17 00:00:00 2001 From: aarkegz Date: Thu, 19 Dec 2024 20:04:55 +0800 Subject: [PATCH 001/219] a prototype of irq injection --- Cargo.lock | 114 +++++++++++++++++++++++++----------- Cargo.toml | 8 +-- arceos-vmm/src/hal.rs | 31 +++++++++- arceos-vmm/src/vmm/mod.rs | 34 +++++++++++ arceos-vmm/src/vmm/vcpus.rs | 14 +++++ 5 files changed, 163 insertions(+), 38 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index f72a814a..69da3004 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -53,10 +53,10 @@ name = "arceos-vmm" version = "0.1.0" dependencies = [ "arrayvec", - "axaddrspace", + "axaddrspace 0.1.0 (git+https://github.com/arceos-hypervisor/axaddrspace.git?branch=inject_interrupt)", "axerrno", "axstd", - "axvcpu", + "axvcpu 0.1.0 (git+https://github.com/arceos-hypervisor/axvcpu.git?branch=inject_interrupt)", "axvm", "bitflags 2.6.0", "crate_interface", @@ -76,7 +76,7 @@ dependencies = [ [[package]] name = "arceos_api" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm#9a845553df23944a6a3a0dd3e45df23c15f26465" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_inject_interrupt#c47d88b40ba6eb2757fc6227adcc600813061bce" dependencies = [ "axalloc", "axconfig", @@ -86,6 +86,7 @@ dependencies = [ "axfs", "axhal", "axio", + "axipi", "axlog", "axruntime", "axsync", @@ -95,7 +96,7 @@ dependencies = [ [[package]] name = "arm_gicv2" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arm_gicv2#dfe5f164b94cdd07081c2fe74a0cfe4bef2852c9" +source = "git+https://github.com/arceos-hypervisor/arm_gicv2?branch=sgi#956665adcdc6b09a28078db09ad3f09ed41af80b" dependencies = [ "tock-registers", ] @@ -115,9 +116,9 @@ version = "0.1.0" source = "git+https://github.com/arceos-hypervisor/arm_vcpu.git#63fbc026fb730fdde2a81d6abc67666551bd2d9d" dependencies = [ "aarch64-cpu", - "axaddrspace", + "axaddrspace 0.1.0 (git+https://github.com/arceos-hypervisor/axaddrspace.git)", "axerrno", - "axvcpu", + "axvcpu 0.1.0 (git+https://github.com/arceos-hypervisor/axvcpu.git)", "log", "numeric-enum-macro", "percpu", @@ -136,6 +137,24 @@ version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" +[[package]] +name = "axaddrspace" +version = "0.1.0" +source = "git+https://github.com/arceos-hypervisor/axaddrspace.git?branch=inject_interrupt#2c154f34c4dac7c6c1ffab19e2a3298d8e62618e" +dependencies = [ + "axerrno", + "bit_field", + "bitflags 2.6.0", + "cfg-if", + "lazyinit", + "log", + "memory_addr", + "memory_set", + "numeric-enum-macro", + "page_table_entry", + "page_table_multiarch", +] + [[package]] name = "axaddrspace" version = "0.1.0" @@ -157,7 +176,7 @@ dependencies = [ [[package]] name = "axalloc" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm#9a845553df23944a6a3a0dd3e45df23c15f26465" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_inject_interrupt#c47d88b40ba6eb2757fc6227adcc600813061bce" dependencies = [ "allocator", "axerrno", @@ -170,7 +189,7 @@ dependencies = [ [[package]] name = "axconfig" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm#9a845553df23944a6a3a0dd3e45df23c15f26465" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_inject_interrupt#c47d88b40ba6eb2757fc6227adcc600813061bce" dependencies = [ "serde", "toml_edit 0.22.22", @@ -179,9 +198,9 @@ dependencies = [ [[package]] name = "axdevice" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/axdevice.git#51bf078bb980af35c4dc4ef08e4077ade1073453" +source = "git+https://github.com/arceos-hypervisor/axdevice.git?branch=inject_interrupt#391eeaddedec62a14c03762fbd810baee206408f" dependencies = [ - "axaddrspace", + "axaddrspace 0.1.0 (git+https://github.com/arceos-hypervisor/axaddrspace.git?branch=inject_interrupt)", "axdevice_base", "axerrno", "cfg-if", @@ -193,11 +212,12 @@ dependencies = [ [[package]] name = "axdevice_base" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/axdevice_crates.git#24ebdf92b7fb5fbae08816094910cd30922550f0" +source = "git+https://github.com/arceos-hypervisor/axdevice_crates.git?branch=inject_interrupt#46a16b71b3183c0ce631a7076a04f9f5aef175c9" dependencies = [ - "axaddrspace", + "axaddrspace 0.1.0 (git+https://github.com/arceos-hypervisor/axaddrspace.git?branch=inject_interrupt)", "axerrno", "cfg-if", + "cpumask", "memory_addr", "serde", ] @@ -205,7 +225,7 @@ dependencies = [ [[package]] name = "axdriver" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm#9a845553df23944a6a3a0dd3e45df23c15f26465" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_inject_interrupt#c47d88b40ba6eb2757fc6227adcc600813061bce" dependencies = [ "axalloc", "axconfig", @@ -262,22 +282,24 @@ dependencies = [ [[package]] name = "axfeat" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm#9a845553df23944a6a3a0dd3e45df23c15f26465" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_inject_interrupt#c47d88b40ba6eb2757fc6227adcc600813061bce" dependencies = [ "axalloc", "axdriver", "axfs", "axhal", + "axipi", "axlog", "axruntime", "axsync", "axtask", + "kspin", ] [[package]] name = "axfs" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm#9a845553df23944a6a3a0dd3e45df23c15f26465" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_inject_interrupt#c47d88b40ba6eb2757fc6227adcc600813061bce" dependencies = [ "axdriver", "axdriver_block", @@ -330,7 +352,7 @@ dependencies = [ [[package]] name = "axhal" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm#9a845553df23944a6a3a0dd3e45df23c15f26465" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_inject_interrupt#c47d88b40ba6eb2757fc6227adcc600813061bce" dependencies = [ "aarch64-cpu", "arm_gicv2", @@ -373,10 +395,23 @@ dependencies = [ "axerrno", ] +[[package]] +name = "axipi" +version = "0.1.0" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_inject_interrupt#c47d88b40ba6eb2757fc6227adcc600813061bce" +dependencies = [ + "axconfig", + "axhal", + "kspin", + "lazyinit", + "log", + "percpu", +] + [[package]] name = "axlog" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm#9a845553df23944a6a3a0dd3e45df23c15f26465" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_inject_interrupt#c47d88b40ba6eb2757fc6227adcc600813061bce" dependencies = [ "cfg-if", "crate_interface", @@ -387,7 +422,7 @@ dependencies = [ [[package]] name = "axmm" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm#9a845553df23944a6a3a0dd3e45df23c15f26465" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_inject_interrupt#c47d88b40ba6eb2757fc6227adcc600813061bce" dependencies = [ "axconfig", "axerrno", @@ -401,13 +436,14 @@ dependencies = [ [[package]] name = "axruntime" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm#9a845553df23944a6a3a0dd3e45df23c15f26465" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_inject_interrupt#c47d88b40ba6eb2757fc6227adcc600813061bce" dependencies = [ "axalloc", "axconfig", "axdriver", "axfs", "axhal", + "axipi", "axlog", "axmm", "axtask", @@ -420,7 +456,7 @@ dependencies = [ [[package]] name = "axstd" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm#9a845553df23944a6a3a0dd3e45df23c15f26465" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_inject_interrupt#c47d88b40ba6eb2757fc6227adcc600813061bce" dependencies = [ "arceos_api", "axerrno", @@ -432,7 +468,7 @@ dependencies = [ [[package]] name = "axsync" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm#9a845553df23944a6a3a0dd3e45df23c15f26465" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_inject_interrupt#c47d88b40ba6eb2757fc6227adcc600813061bce" dependencies = [ "axtask", "kspin", @@ -441,7 +477,7 @@ dependencies = [ [[package]] name = "axtask" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm#9a845553df23944a6a3a0dd3e45df23c15f26465" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_inject_interrupt#c47d88b40ba6eb2757fc6227adcc600813061bce" dependencies = [ "axconfig", "axhal", @@ -458,12 +494,23 @@ dependencies = [ "timer_list", ] +[[package]] +name = "axvcpu" +version = "0.1.0" +source = "git+https://github.com/arceos-hypervisor/axvcpu.git?branch=inject_interrupt#84595494ea6931fc4d58c67daa27df78be4a7e56" +dependencies = [ + "axaddrspace 0.1.0 (git+https://github.com/arceos-hypervisor/axaddrspace.git?branch=inject_interrupt)", + "axerrno", + "memory_addr", + "percpu", +] + [[package]] name = "axvcpu" version = "0.1.0" source = "git+https://github.com/arceos-hypervisor/axvcpu.git#1e9fa523378872ed0c947e2abd4699ed2d5025f2" dependencies = [ - "axaddrspace", + "axaddrspace 0.1.0 (git+https://github.com/arceos-hypervisor/axaddrspace.git)", "axerrno", "memory_addr", "percpu", @@ -472,15 +519,16 @@ dependencies = [ [[package]] name = "axvm" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/axvm.git#6092edec74692767b51a9648228a050bae5e113b" +source = "git+https://github.com/arceos-hypervisor/axvm.git?branch=inject_interrupt#2f5a5565112e66d3e26473d29c6994464d9b88fb" dependencies = [ "arm_vcpu", - "axaddrspace", + "axaddrspace 0.1.0 (git+https://github.com/arceos-hypervisor/axaddrspace.git?branch=inject_interrupt)", "axdevice", "axdevice_base", "axerrno", - "axvcpu", + "axvcpu 0.1.0 (git+https://github.com/arceos-hypervisor/axvcpu.git?branch=inject_interrupt)", "cfg-if", + "cpumask", "log", "memory_addr", "page_table_entry", @@ -892,9 +940,9 @@ checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" [[package]] name = "percpu" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7156fa6801337eb593af0c6d664b92de216c5e53e761e1eb6e119cff542d195" +checksum = "66a1cb7a2ae1e4ada6e7fd9e46b6b2024353f28d17661d480c8238927571cbd3" dependencies = [ "cfg-if", "percpu_macros", @@ -1020,9 +1068,9 @@ name = "riscv_vcpu" version = "0.1.0" source = "git+https://github.com/arceos-hypervisor/riscv_vcpu.git#e3c992967219f10daadd0a71f6187641f381f563" dependencies = [ - "axaddrspace", + "axaddrspace 0.1.0 (git+https://github.com/arceos-hypervisor/axaddrspace.git)", "axerrno", - "axvcpu", + "axvcpu 0.1.0 (git+https://github.com/arceos-hypervisor/axvcpu.git)", "bit_field", "bitflags 2.6.0", "cfg-if", @@ -1383,11 +1431,11 @@ dependencies = [ [[package]] name = "x86_vcpu" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/x86_vcpu.git#dc088685f76f83d52378d2fe78952cde3c187da9" +source = "git+https://github.com/arceos-hypervisor/x86_vcpu.git?branch=inject_interrupt#14eb571aeda58fa13d9a2633fdca10608f9e8971" dependencies = [ - "axaddrspace", + "axaddrspace 0.1.0 (git+https://github.com/arceos-hypervisor/axaddrspace.git?branch=inject_interrupt)", "axerrno", - "axvcpu", + "axvcpu 0.1.0 (git+https://github.com/arceos-hypervisor/axvcpu.git?branch=inject_interrupt)", "bit_field", "bitflags 2.6.0", "cfg-if", diff --git a/Cargo.toml b/Cargo.toml index d7d86829..9494b291 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -7,8 +7,8 @@ members = ["arceos-vmm"] lto = true [workspace.dependencies] -axstd = { git = "https://github.com/arceos-hypervisor/arceos.git", branch = "vmm" } +axstd = { git = "https://github.com/arceos-hypervisor/arceos.git", branch = "vmm_inject_interrupt", features = ["ipi", "smp"] } -axvm = { git = "https://github.com/arceos-hypervisor/axvm.git" } -axvcpu = { git = "https://github.com/arceos-hypervisor/axvcpu.git" } -axaddrspace = { git = "https://github.com/arceos-hypervisor/axaddrspace.git" } +axvm = { git = "https://github.com/arceos-hypervisor/axvm.git", branch = "inject_interrupt" } +axvcpu = { git = "https://github.com/arceos-hypervisor/axvcpu.git", branch = "inject_interrupt" } +axaddrspace = { git = "https://github.com/arceos-hypervisor/axaddrspace.git", branch = "inject_interrupt" } diff --git a/arceos-vmm/src/hal.rs b/arceos-vmm/src/hal.rs index 8d8ca842..39492494 100644 --- a/arceos-vmm/src/hal.rs +++ b/arceos-vmm/src/hal.rs @@ -1,4 +1,4 @@ -use std::os::arceos; +use std::{boxed::Box, os::arceos::{self, modules::{axhal::cpu::current_task_ptr, axipi::{self, IPIEventFn}, axtask::{self, TaskExtRef}}}}; use page_table_multiarch::PagingHandler; @@ -7,6 +7,8 @@ use axaddrspace::{HostPhysAddr, HostVirtAddr}; use axvcpu::AxVCpuHal; use axvm::{AxVMHal, AxVMPerCpu}; +use crate::vmm; + /// Implementation for `AxVMHal` trait. pub struct AxVMHalImpl; @@ -20,6 +22,33 @@ impl AxVMHal for AxVMHalImpl { fn current_time_nanos() -> u64 { axhal::time::monotonic_time_nanos() } + + fn current_vm_id() -> usize { + axtask::current().task_ext().vm.id() + } + + fn current_vcpu_id() -> usize { + axtask::current().task_ext().vcpu.id() + } + + fn current_pcpu_id() -> usize { + axhal::cpu::this_cpu_id() + } +} + +pub fn vcpu_resides_on(vm_id: usize, vcpu_id: usize) -> usize { + todo!() +} + +pub fn inject_irq_to_vcpu_remotely( + vm_id: usize, + vcpu_id: usize, + irq: usize, + pcpu_id: usize +) { + vmm::with_vm_and_vcpu_on_pcpu(vm_id, vcpu_id, move |_, vcpu| { + vcpu.inject_interrupt(irq); + }); } pub struct AxVCpuHalImpl; diff --git a/arceos-vmm/src/vmm/mod.rs b/arceos-vmm/src/vmm/mod.rs index 19f12d7c..34d6b74f 100644 --- a/arceos-vmm/src/vmm/mod.rs +++ b/arceos-vmm/src/vmm/mod.rs @@ -7,6 +7,11 @@ use std::os::arceos::api::task::{self, AxWaitQueueHandle}; use core::sync::atomic::AtomicUsize; use core::sync::atomic::Ordering; +use std::os::arceos::modules::axtask; +use std::os::arceos::modules::axtask::TaskExtRef; + +use axerrno::ax_err_type; +use axerrno::{AxResult, ax_err}; use crate::hal::{AxVCpuHalImpl, AxVMHalImpl}; @@ -46,3 +51,32 @@ pub fn start() { // Do not exit until all VMs are stopped. task::ax_wait_queue_wait_until(&VMM, || RUNNING_VM_COUNT.load(Ordering::Acquire) == 0, None); } + +/// Run a closure with the specified VM and vCPU. +pub fn with_vm_and_vcpu(vm_id: usize, vcpu_id: usize, f: impl FnOnce(VMRef, VCpuRef) -> T) -> Option { + let vm = vm_list::get_vm_by_id(vm_id)?; + let vcpu = vm.vcpu(vcpu_id)?; + + Some(f(vm, vcpu)) +} + +/// Run a closure with the specified VM and vCPU, with the guarantee that the closure will be +/// executed on the physical CPU where the vCPU is running, waiting, or queueing. +/// +/// It seems necessary to disable scheduling when running the closure. +pub fn with_vm_and_vcpu_on_pcpu(vm_id: usize, vcpu_id: usize, f: impl FnOnce(VMRef, VCpuRef) + 'static) -> AxResult { + let current_vm = axtask::current().task_ext().vm.id(); + let current_vcpu = axtask::current().task_ext().vcpu.id(); + + if current_vm == vm_id && current_vcpu == vcpu_id { + return with_vm_and_vcpu(vm_id, vcpu_id, f).ok_or_else(|| ax_err_type!(NotFound)) + } else { + use std::os::arceos::modules::axipi; + + let pcpu_id = vcpus::with_vcpu_task(vm_id, vcpu_id, |task| task.cpu_id()).ok_or_else(|| ax_err_type!(NotFound))?; + + Ok(axipi::send_ipi_event_to_one(pcpu_id as usize, move || { + with_vm_and_vcpu_on_pcpu(vm_id, vcpu_id, f); + })) + } +} \ No newline at end of file diff --git a/arceos-vmm/src/vmm/vcpus.rs b/arceos-vmm/src/vmm/vcpus.rs index 9a9a825a..8dfae167 100644 --- a/arceos-vmm/src/vmm/vcpus.rs +++ b/arceos-vmm/src/vmm/vcpus.rs @@ -187,6 +187,20 @@ pub fn setup_vm_primary_vcpu(vm: VMRef) { } } +/// Finds the [`AxTaskRef`] associated with the specified vCPU of the specified VM. +pub fn find_vcpu_task(vm_id: usize, vcpu_id: usize) -> Option { + with_vcpu_task(vm_id, vcpu_id, |task| task.clone()) +} + +/// Executes the provided closure with the [`AxTaskRef`] associated with the specified vCPU of the specified VM. +pub fn with_vcpu_task T>(vm_id: usize, vcpu_id: usize, f: F) -> Option { + unsafe { VM_VCPU_TASK_WAIT_QUEUE.get(&vm_id) } + .unwrap() + .vcpu_task_list + .get(vcpu_id) + .map(f) +} + /// Allocates arceos task for vcpu, set the task's entry function to [`vcpu_run()`], /// alse initializes the CPU mask if the vCPU has a dedicated physical CPU set. /// From 9c5834cd479b5986f20ed3c3f488cc9f75135b39 Mon Sep 17 00:00:00 2001 From: aarkegz Date: Wed, 15 Jan 2025 16:30:32 +0800 Subject: [PATCH 002/219] support inject interrupts, with test codes on x86 --- Cargo.lock | 84 +++++++++++++++++++++++++++---------- arceos-vmm/Cargo.toml | 2 + arceos-vmm/src/hal.rs | 46 +++++++++++--------- arceos-vmm/src/vmm/mod.rs | 46 +++++++++++++------- arceos-vmm/src/vmm/vcpus.rs | 18 +++++++- 5 files changed, 140 insertions(+), 56 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index fefe5f64..e8d26483 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -108,14 +108,16 @@ dependencies = [ name = "arceos-vmm" version = "0.1.0" dependencies = [ - "axaddrspace", + "axaddrspace 0.1.0 (git+https://github.com/arceos-hypervisor/axaddrspace.git?branch=inject_interrupt)", "axconfig", "axerrno", "axstd", "axvcpu 0.1.0 (git+https://github.com/arceos-hypervisor/axvcpu.git?branch=inject_interrupt)", "axvm", "bitflags 2.6.0", + "cpumask", "crate_interface", + "kernel_guard", "lazyinit", "log", "memory_addr", @@ -129,7 +131,7 @@ dependencies = [ [[package]] name = "arceos_api" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm#39848356f3bb43c1c0a5b02a6188bd3235e789a5" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_inject_interrupt#ab6e5cf1eccab2dc42c35e3df139148369af942d" dependencies = [ "axalloc", "axconfig", @@ -149,7 +151,7 @@ dependencies = [ [[package]] name = "arm_gicv2" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arm_gicv2#eee14941d490719f6689e82f9a87caea6767bdc3" +source = "git+https://github.com/arceos-hypervisor/arm_gicv2?branch=sgi#956665adcdc6b09a28078db09ad3f09ed41af80b" dependencies = [ "tock-registers", ] @@ -170,7 +172,7 @@ source = "git+https://github.com/arceos-hypervisor/arm_vcpu.git#5adab4c6e9366417 dependencies = [ "aarch64-cpu", "aarch64_sysreg", - "axaddrspace", + "axaddrspace 0.1.0 (git+https://github.com/arceos-hypervisor/axaddrspace.git)", "axerrno", "axvcpu 0.1.0 (git+https://github.com/arceos-hypervisor/axvcpu.git)", "log", @@ -186,6 +188,24 @@ version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" +[[package]] +name = "axaddrspace" +version = "0.1.0" +source = "git+https://github.com/arceos-hypervisor/axaddrspace.git?branch=inject_interrupt#4cb56d7d4248cfeb421742c8bc7535c66fe07db6" +dependencies = [ + "axerrno", + "bit_field", + "bitflags 2.6.0", + "cfg-if", + "lazyinit", + "log", + "memory_addr", + "memory_set", + "numeric-enum-macro", + "page_table_entry", + "page_table_multiarch", +] + [[package]] name = "axaddrspace" version = "0.1.0" @@ -207,7 +227,7 @@ dependencies = [ [[package]] name = "axalloc" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm#39848356f3bb43c1c0a5b02a6188bd3235e789a5" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_inject_interrupt#ab6e5cf1eccab2dc42c35e3df139148369af942d" dependencies = [ "allocator", "axerrno", @@ -220,7 +240,7 @@ dependencies = [ [[package]] name = "axconfig" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm#39848356f3bb43c1c0a5b02a6188bd3235e789a5" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_inject_interrupt#ab6e5cf1eccab2dc42c35e3df139148369af942d" dependencies = [ "axconfig-gen-macros", ] @@ -250,7 +270,7 @@ dependencies = [ [[package]] name = "axdevice" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/axdevice.git#8652ce80b2c53310fb7b0f8ac275f2dfcfbb1338" +source = "git+https://github.com/arceos-hypervisor/axdevice.git?branch=inject_interrupt#d33604aae39ebb502a64759e866dcb7ad37dd746" dependencies = [ "axaddrspace 0.1.0 (git+https://github.com/arceos-hypervisor/axaddrspace.git?branch=inject_interrupt)", "axdevice_base", @@ -264,7 +284,7 @@ dependencies = [ [[package]] name = "axdevice_base" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/axdevice_crates.git#28d49f147793997a9db1ebb75a34295cde2a107d" +source = "git+https://github.com/arceos-hypervisor/axdevice_crates.git?branch=inject_interrupt#27b062aae7a6f2811b158194d2abfa352c1d70c2" dependencies = [ "axaddrspace 0.1.0 (git+https://github.com/arceos-hypervisor/axaddrspace.git?branch=inject_interrupt)", "axerrno", @@ -277,7 +297,7 @@ dependencies = [ [[package]] name = "axdriver" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm#39848356f3bb43c1c0a5b02a6188bd3235e789a5" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_inject_interrupt#ab6e5cf1eccab2dc42c35e3df139148369af942d" dependencies = [ "axalloc", "axconfig", @@ -334,7 +354,7 @@ dependencies = [ [[package]] name = "axfeat" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm#39848356f3bb43c1c0a5b02a6188bd3235e789a5" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_inject_interrupt#ab6e5cf1eccab2dc42c35e3df139148369af942d" dependencies = [ "axalloc", "axdriver", @@ -351,7 +371,7 @@ dependencies = [ [[package]] name = "axfs" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm#39848356f3bb43c1c0a5b02a6188bd3235e789a5" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_inject_interrupt#ab6e5cf1eccab2dc42c35e3df139148369af942d" dependencies = [ "axdriver", "axdriver_block", @@ -404,7 +424,7 @@ dependencies = [ [[package]] name = "axhal" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm#39848356f3bb43c1c0a5b02a6188bd3235e789a5" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_inject_interrupt#ab6e5cf1eccab2dc42c35e3df139148369af942d" dependencies = [ "aarch64-cpu", "arm_gicv2", @@ -430,6 +450,7 @@ dependencies = [ "percpu", "raw-cpuid 11.2.0", "riscv 0.11.1", + "riscv_plic", "sbi-rt", "static_assertions", "tock-registers", @@ -463,7 +484,7 @@ dependencies = [ [[package]] name = "axlog" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm#39848356f3bb43c1c0a5b02a6188bd3235e789a5" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_inject_interrupt#ab6e5cf1eccab2dc42c35e3df139148369af942d" dependencies = [ "cfg-if", "crate_interface", @@ -474,7 +495,7 @@ dependencies = [ [[package]] name = "axmm" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm#39848356f3bb43c1c0a5b02a6188bd3235e789a5" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_inject_interrupt#ab6e5cf1eccab2dc42c35e3df139148369af942d" dependencies = [ "axconfig", "axerrno", @@ -488,7 +509,7 @@ dependencies = [ [[package]] name = "axruntime" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm#39848356f3bb43c1c0a5b02a6188bd3235e789a5" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_inject_interrupt#ab6e5cf1eccab2dc42c35e3df139148369af942d" dependencies = [ "axalloc", "axconfig", @@ -508,7 +529,7 @@ dependencies = [ [[package]] name = "axstd" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm#39848356f3bb43c1c0a5b02a6188bd3235e789a5" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_inject_interrupt#ab6e5cf1eccab2dc42c35e3df139148369af942d" dependencies = [ "arceos_api", "axerrno", @@ -520,7 +541,7 @@ dependencies = [ [[package]] name = "axsync" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm#39848356f3bb43c1c0a5b02a6188bd3235e789a5" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_inject_interrupt#ab6e5cf1eccab2dc42c35e3df139148369af942d" dependencies = [ "axtask", "kspin", @@ -529,7 +550,7 @@ dependencies = [ [[package]] name = "axtask" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm#39848356f3bb43c1c0a5b02a6188bd3235e789a5" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_inject_interrupt#ab6e5cf1eccab2dc42c35e3df139148369af942d" dependencies = [ "axconfig", "axhal", @@ -546,6 +567,17 @@ dependencies = [ "timer_list", ] +[[package]] +name = "axvcpu" +version = "0.1.0" +source = "git+https://github.com/arceos-hypervisor/axvcpu.git?branch=inject_interrupt#8002f43d40b34a993ffbd2a193f543c954964280" +dependencies = [ + "axaddrspace 0.1.0 (git+https://github.com/arceos-hypervisor/axaddrspace.git?branch=inject_interrupt)", + "axerrno", + "memory_addr", + "percpu", +] + [[package]] name = "axvcpu" version = "0.1.0" @@ -560,13 +592,14 @@ dependencies = [ [[package]] name = "axvm" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/axvm.git#f431309c3194a59a038a8f81f8f9a39fcd5460aa" +source = "git+https://github.com/arceos-hypervisor/axvm.git?branch=inject_interrupt#472eca0142e05e00f3e2d37bea469497539df66e" dependencies = [ "arm_vcpu", "axaddrspace 0.1.0 (git+https://github.com/arceos-hypervisor/axaddrspace.git?branch=inject_interrupt)", "axdevice", + "axdevice_base", "axerrno", - "axvcpu", + "axvcpu 0.1.0 (git+https://github.com/arceos-hypervisor/axvcpu.git?branch=inject_interrupt)", "axvmconfig", "cfg-if", "cpumask", @@ -1166,6 +1199,15 @@ dependencies = [ "regex", ] +[[package]] +name = "riscv_plic" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "daae4c8e29d4d8c36fbda4c318ffa1755645766fefab8fcff61a8ecd577bb822" +dependencies = [ + "tock-registers", +] + [[package]] name = "riscv_vcpu" version = "0.1.0" @@ -1630,7 +1672,7 @@ dependencies = [ [[package]] name = "x86_vcpu" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/x86_vcpu.git#5f6eaf4157ee8385ba1a2bfe5060098be18b0245" +source = "git+https://github.com/arceos-hypervisor/x86_vcpu.git?branch=inject_interrupt#fc9e92c7f30f5c82f2b597c6f9d9a5484470e639" dependencies = [ "axaddrspace 0.1.0 (git+https://github.com/arceos-hypervisor/axaddrspace.git?branch=inject_interrupt)", "axerrno", diff --git a/arceos-vmm/Cargo.toml b/arceos-vmm/Cargo.toml index 00de4caa..b1d2ab7e 100644 --- a/arceos-vmm/Cargo.toml +++ b/arceos-vmm/Cargo.toml @@ -33,6 +33,8 @@ axaddrspace = { workspace = true } # System independent crates provided by ArceOS, these crates could be imported by remote url. crate_interface = "0.1" axerrno = "0.1.0" +cpumask = "0.1.0" +kernel_guard = "0.1" memory_addr = "0.3" page_table_entry = { version = "0.5", features = ["arm-el2"] } page_table_multiarch = "0.5" diff --git a/arceos-vmm/src/hal.rs b/arceos-vmm/src/hal.rs index 6229845b..40717147 100644 --- a/arceos-vmm/src/hal.rs +++ b/arceos-vmm/src/hal.rs @@ -1,10 +1,14 @@ -use std::{boxed::Box, os::arceos::{self, modules::{axhal::cpu::current_task_ptr, axipi::{self, IPIEventFn}, axtask::{self, TaskExtRef}}}}; +use std::os::arceos::{ + self, + modules::axtask::{self, TaskExtRef}, +}; +use axerrno::{AxResult, ax_err_type}; use memory_addr::{PAGE_SIZE_4K, align_up_4k}; use page_table_multiarch::PagingHandler; use arceos::modules::{axalloc, axhal}; -use axaddrspace::{HostPhysAddr, HostVirtAddr}; +use axaddrspace::{AxMmHal, HostPhysAddr, HostVirtAddr}; use axvcpu::AxVCpuHal; use axvm::{AxVMHal, AxVMPerCpu}; @@ -45,38 +49,34 @@ impl AxVMHal for AxVMHalImpl { fn current_time_nanos() -> u64 { axhal::time::monotonic_time_nanos() } - + fn current_vm_id() -> usize { axtask::current().task_ext().vm.id() } - + fn current_vcpu_id() -> usize { axtask::current().task_ext().vcpu.id() } - + fn current_pcpu_id() -> usize { axhal::cpu::this_cpu_id() } -} -pub fn vcpu_resides_on(vm_id: usize, vcpu_id: usize) -> usize { - todo!() -} + fn vcpu_resides_on(vm_id: usize, vcpu_id: usize) -> AxResult { + vmm::with_vcpu_task(vm_id, vcpu_id, |task| task.cpu_id() as usize) + .ok_or_else(|| ax_err_type!(NotFound)) + } -pub fn inject_irq_to_vcpu_remotely( - vm_id: usize, - vcpu_id: usize, - irq: usize, - pcpu_id: usize -) { - vmm::with_vm_and_vcpu_on_pcpu(vm_id, vcpu_id, move |_, vcpu| { - vcpu.inject_interrupt(irq); - }); + fn inject_irq_to_vcpu(vm_id: usize, vcpu_id: usize, irq: usize) -> axerrno::AxResult { + vmm::with_vm_and_vcpu_on_pcpu(vm_id, vcpu_id, move |_, vcpu| { + vcpu.inject_interrupt(irq).unwrap(); + }) + } } -pub struct AxVCpuHalImpl; +pub struct AxMmHalImpl; -impl AxVCpuHal for AxVCpuHalImpl { +impl AxMmHal for AxMmHalImpl { fn alloc_frame() -> Option { ::PagingHandler::alloc_frame() } @@ -93,6 +93,12 @@ impl AxVCpuHal for AxVCpuHalImpl { fn virt_to_phys(vaddr: axaddrspace::HostVirtAddr) -> axaddrspace::HostPhysAddr { std::os::arceos::modules::axhal::mem::virt_to_phys(vaddr) } +} + +pub struct AxVCpuHalImpl; + +impl AxVCpuHal for AxVCpuHalImpl { + type MmHal = AxMmHalImpl; #[cfg(target_arch = "aarch64")] fn irq_fetch() -> usize { diff --git a/arceos-vmm/src/vmm/mod.rs b/arceos-vmm/src/vmm/mod.rs index 34d6b74f..aedbad2b 100644 --- a/arceos-vmm/src/vmm/mod.rs +++ b/arceos-vmm/src/vmm/mod.rs @@ -10,8 +10,7 @@ use core::sync::atomic::Ordering; use std::os::arceos::modules::axtask; use std::os::arceos::modules::axtask::TaskExtRef; -use axerrno::ax_err_type; -use axerrno::{AxResult, ax_err}; +use axerrno::{AxResult, ax_err_type}; use crate::hal::{AxVCpuHalImpl, AxVMHalImpl}; @@ -52,8 +51,15 @@ pub fn start() { task::ax_wait_queue_wait_until(&VMM, || RUNNING_VM_COUNT.load(Ordering::Acquire) == 0, None); } +#[allow(unused_imports)] +pub use vcpus::{find_vcpu_task, with_vcpu_task}; + /// Run a closure with the specified VM and vCPU. -pub fn with_vm_and_vcpu(vm_id: usize, vcpu_id: usize, f: impl FnOnce(VMRef, VCpuRef) -> T) -> Option { +pub fn with_vm_and_vcpu( + vm_id: usize, + vcpu_id: usize, + f: impl FnOnce(VMRef, VCpuRef) -> T, +) -> Option { let vm = vm_list::get_vm_by_id(vm_id)?; let vcpu = vm.vcpu(vcpu_id)?; @@ -62,21 +68,33 @@ pub fn with_vm_and_vcpu(vm_id: usize, vcpu_id: usize, f: impl FnOnce(VMRef, V /// Run a closure with the specified VM and vCPU, with the guarantee that the closure will be /// executed on the physical CPU where the vCPU is running, waiting, or queueing. -/// +/// /// It seems necessary to disable scheduling when running the closure. -pub fn with_vm_and_vcpu_on_pcpu(vm_id: usize, vcpu_id: usize, f: impl FnOnce(VMRef, VCpuRef) + 'static) -> AxResult { +pub fn with_vm_and_vcpu_on_pcpu( + vm_id: usize, + vcpu_id: usize, + f: impl FnOnce(VMRef, VCpuRef) + 'static, +) -> AxResult { + // Disables preemption and IRQs to prevent the current task from being preempted or re-scheduled. + let guard = kernel_guard::NoPreemptIrqSave::new(); + let current_vm = axtask::current().task_ext().vm.id(); let current_vcpu = axtask::current().task_ext().vcpu.id(); + // The target vCPU is the current task, execute the closure directly. if current_vm == vm_id && current_vcpu == vcpu_id { - return with_vm_and_vcpu(vm_id, vcpu_id, f).ok_or_else(|| ax_err_type!(NotFound)) - } else { - use std::os::arceos::modules::axipi; + with_vm_and_vcpu(vm_id, vcpu_id, f).unwrap(); // unwrap is safe here + return Ok(()); + } - let pcpu_id = vcpus::with_vcpu_task(vm_id, vcpu_id, |task| task.cpu_id()).ok_or_else(|| ax_err_type!(NotFound))?; + // The target vCPU is not the current task, send an IPI to the target physical CPU. + drop(guard); - Ok(axipi::send_ipi_event_to_one(pcpu_id as usize, move || { - with_vm_and_vcpu_on_pcpu(vm_id, vcpu_id, f); - })) - } -} \ No newline at end of file + let pcpu_id = vcpus::with_vcpu_task(vm_id, vcpu_id, |task| task.cpu_id()) + .ok_or_else(|| ax_err_type!(NotFound))?; + + use std::os::arceos::modules::axipi; + Ok(axipi::send_ipi_event_to_one(pcpu_id as usize, move || { + with_vm_and_vcpu_on_pcpu(vm_id, vcpu_id, f); + })) +} diff --git a/arceos-vmm/src/vmm/vcpus.rs b/arceos-vmm/src/vmm/vcpus.rs index 33db992f..8637de4c 100644 --- a/arceos-vmm/src/vmm/vcpus.rs +++ b/arceos-vmm/src/vmm/vcpus.rs @@ -193,7 +193,11 @@ pub fn find_vcpu_task(vm_id: usize, vcpu_id: usize) -> Option { } /// Executes the provided closure with the [`AxTaskRef`] associated with the specified vCPU of the specified VM. -pub fn with_vcpu_task T>(vm_id: usize, vcpu_id: usize, f: F) -> Option { +pub fn with_vcpu_task T>( + vm_id: usize, + vcpu_id: usize, + f: F, +) -> Option { unsafe { VM_VCPU_TASK_WAIT_QUEUE.get(&vm_id) } .unwrap() .vcpu_task_list @@ -262,6 +266,18 @@ fn vcpu_run() { Ok(exit_reason) => match exit_reason { AxVCpuExitReason::Hypercall { nr, args } => { debug!("Hypercall [{}] args {:x?}", nr, args); + + if nr == 0xf785 && args[0] == 0xdead_beaf_1234_5678 { + debug!( + "VM[{}] Vcpu[{}] send mock interrupt injection vmcall", + vm_id, vcpu_id + ); + + vm.inject_interrupt_to_vcpu(cpumask::CpuMask::one_shot(vcpu_id), 0x66) + .unwrap(); + } + + vcpu.set_gpr(0, !args[1] as _); } AxVCpuExitReason::FailEntry { hardware_entry_failure_reason, From 983c6df8f4901faccfa259542b859b005753c26b Mon Sep 17 00:00:00 2001 From: aarkegz Date: Fri, 7 Feb 2025 16:52:56 +0800 Subject: [PATCH 003/219] [temp, to be squashed] mock timer --- Cargo.lock | 21 ++---------- Cargo.toml | 13 ++++++++ arceos-vmm/Cargo.toml | 3 ++ arceos-vmm/src/hal.rs | 4 +++ arceos-vmm/src/main.rs | 2 ++ arceos-vmm/src/vmm/config.rs | 24 +++++++++++++- arceos-vmm/src/vmm/mock.rs | 62 ++++++++++++++++++++++++++++++++++++ arceos-vmm/src/vmm/mod.rs | 2 ++ arceos-vmm/src/vmm/timer.rs | 5 +++ arceos-vmm/src/vmm/vcpus.rs | 16 ++++++++-- 10 files changed, 130 insertions(+), 22 deletions(-) create mode 100644 arceos-vmm/src/vmm/mock.rs diff --git a/Cargo.lock b/Cargo.lock index fbe15f1d..832ba957 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -110,6 +110,8 @@ version = "0.1.0" dependencies = [ "axaddrspace 0.1.0 (git+https://github.com/arceos-hypervisor/axaddrspace.git?branch=inject_interrupt)", "axconfig", + "axdevice", + "axdevice_base", "axerrno", "axstd", "axvcpu 0.1.0 (git+https://github.com/arceos-hypervisor/axvcpu.git?branch=inject_interrupt)", @@ -133,7 +135,6 @@ dependencies = [ [[package]] name = "arceos_api" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_inject_interrupt#ab6e5cf1eccab2dc42c35e3df139148369af942d" dependencies = [ "axalloc", "axconfig", @@ -229,7 +230,6 @@ dependencies = [ [[package]] name = "axalloc" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_inject_interrupt#ab6e5cf1eccab2dc42c35e3df139148369af942d" dependencies = [ "allocator", "axerrno", @@ -242,7 +242,6 @@ dependencies = [ [[package]] name = "axconfig" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_inject_interrupt#ab6e5cf1eccab2dc42c35e3df139148369af942d" dependencies = [ "axconfig-gen-macros", ] @@ -272,7 +271,6 @@ dependencies = [ [[package]] name = "axdevice" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/axdevice.git?branch=inject_interrupt#d33604aae39ebb502a64759e866dcb7ad37dd746" dependencies = [ "axaddrspace 0.1.0 (git+https://github.com/arceos-hypervisor/axaddrspace.git?branch=inject_interrupt)", "axdevice_base", @@ -286,7 +284,6 @@ dependencies = [ [[package]] name = "axdevice_base" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/axdevice_crates.git?branch=inject_interrupt#27b062aae7a6f2811b158194d2abfa352c1d70c2" dependencies = [ "axaddrspace 0.1.0 (git+https://github.com/arceos-hypervisor/axaddrspace.git?branch=inject_interrupt)", "axerrno", @@ -299,7 +296,6 @@ dependencies = [ [[package]] name = "axdriver" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_inject_interrupt#ab6e5cf1eccab2dc42c35e3df139148369af942d" dependencies = [ "axalloc", "axconfig", @@ -356,7 +352,6 @@ dependencies = [ [[package]] name = "axfeat" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_inject_interrupt#ab6e5cf1eccab2dc42c35e3df139148369af942d" dependencies = [ "axalloc", "axdriver", @@ -373,7 +368,6 @@ dependencies = [ [[package]] name = "axfs" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_inject_interrupt#ab6e5cf1eccab2dc42c35e3df139148369af942d" dependencies = [ "axdriver", "axdriver_block", @@ -426,7 +420,6 @@ dependencies = [ [[package]] name = "axhal" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_inject_interrupt#ab6e5cf1eccab2dc42c35e3df139148369af942d" dependencies = [ "aarch64-cpu", "arm_gicv2", @@ -473,7 +466,6 @@ dependencies = [ [[package]] name = "axipi" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_inject_interrupt#c47d88b40ba6eb2757fc6227adcc600813061bce" dependencies = [ "axconfig", "axhal", @@ -486,7 +478,6 @@ dependencies = [ [[package]] name = "axlog" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_inject_interrupt#ab6e5cf1eccab2dc42c35e3df139148369af942d" dependencies = [ "cfg-if", "crate_interface", @@ -497,7 +488,6 @@ dependencies = [ [[package]] name = "axmm" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_inject_interrupt#ab6e5cf1eccab2dc42c35e3df139148369af942d" dependencies = [ "axconfig", "axerrno", @@ -511,7 +501,6 @@ dependencies = [ [[package]] name = "axruntime" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_inject_interrupt#ab6e5cf1eccab2dc42c35e3df139148369af942d" dependencies = [ "axalloc", "axconfig", @@ -531,7 +520,6 @@ dependencies = [ [[package]] name = "axstd" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_inject_interrupt#ab6e5cf1eccab2dc42c35e3df139148369af942d" dependencies = [ "arceos_api", "axerrno", @@ -543,7 +531,6 @@ dependencies = [ [[package]] name = "axsync" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_inject_interrupt#ab6e5cf1eccab2dc42c35e3df139148369af942d" dependencies = [ "axtask", "kspin", @@ -552,7 +539,6 @@ dependencies = [ [[package]] name = "axtask" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_inject_interrupt#ab6e5cf1eccab2dc42c35e3df139148369af942d" dependencies = [ "axconfig", "axhal", @@ -594,7 +580,6 @@ dependencies = [ [[package]] name = "axvm" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/axvm.git?branch=inject_interrupt#472eca0142e05e00f3e2d37bea469497539df66e" dependencies = [ "arm_vcpu", "axaddrspace 0.1.0 (git+https://github.com/arceos-hypervisor/axaddrspace.git?branch=inject_interrupt)", @@ -1674,7 +1659,7 @@ dependencies = [ [[package]] name = "x86_vcpu" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/x86_vcpu.git?branch=inject_interrupt#fc9e92c7f30f5c82f2b597c6f9d9a5484470e639" +source = "git+https://github.com/arceos-hypervisor/x86_vcpu.git?branch=inject_interrupt#0b07547fc8553cdbcac8e7cc93540fdfbc384e6f" dependencies = [ "axaddrspace 0.1.0 (git+https://github.com/arceos-hypervisor/axaddrspace.git?branch=inject_interrupt)", "axerrno", diff --git a/Cargo.toml b/Cargo.toml index 7858fff0..f49acc9d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -13,3 +13,16 @@ axconfig = { git = "https://github.com/arceos-hypervisor/arceos.git", branch = " axvm = { git = "https://github.com/arceos-hypervisor/axvm.git", branch = "inject_interrupt" } axvcpu = { git = "https://github.com/arceos-hypervisor/axvcpu.git", branch = "inject_interrupt" } axaddrspace = { git = "https://github.com/arceos-hypervisor/axaddrspace.git", branch = "inject_interrupt" } + +[patch."https://github.com/arceos-hypervisor/axvm.git"] +axvm = { path = "../axvm" } + +[patch."https://github.com/arceos-hypervisor/axdevice.git"] +axdevice = { path = "../axdevice" } + +[patch."https://github.com/arceos-hypervisor/axdevice_crates.git"] +axdevice_base = { path = "../axdevice_crates/axdevice_base" } + +[patch."https://github.com/arceos-hypervisor/arceos.git"] +axstd = { path = "../arceos-new/ulib/axstd", features = ["ipi", "smp"] } +axconfig = { path = "../arceos-new/modules/axconfig" } \ No newline at end of file diff --git a/arceos-vmm/Cargo.toml b/arceos-vmm/Cargo.toml index c58046e5..c6abe569 100644 --- a/arceos-vmm/Cargo.toml +++ b/arceos-vmm/Cargo.toml @@ -42,6 +42,9 @@ page_table_entry = { version = "0.5", features = ["arm-el2"] } page_table_multiarch = "0.5" percpu = { version = "0.1.4", features = ["arm-el2"] } +axdevice = { path = "../../axdevice" } +axdevice_base = { path = "../../axdevice_crates/axdevice_base" } + [build-dependencies] toml = { git = "https://github.com/arceos-hypervisor/toml.git", branch = "no_std" } axconfig = { workspace = true } \ No newline at end of file diff --git a/arceos-vmm/src/hal.rs b/arceos-vmm/src/hal.rs index d08434ca..0a243280 100644 --- a/arceos-vmm/src/hal.rs +++ b/arceos-vmm/src/hal.rs @@ -72,6 +72,10 @@ impl AxVMHal for AxVMHalImpl { vcpu.inject_interrupt(irq).unwrap(); }) } + + fn dododo(s: &'static str) { + // info!("{}: -- irq enabled: {:?}", s, axhal::arch::irqs_enabled()); + } } pub struct AxMmHalImpl; diff --git a/arceos-vmm/src/main.rs b/arceos-vmm/src/main.rs index f694deed..7a242eba 100644 --- a/arceos-vmm/src/main.rs +++ b/arceos-vmm/src/main.rs @@ -1,6 +1,8 @@ #![no_std] #![no_main] +use std::{os::arceos::modules::{axhal, axtask}, println}; + #[macro_use] extern crate log; #[macro_use] diff --git a/arceos-vmm/src/vmm/config.rs b/arceos-vmm/src/vmm/config.rs index 260d785d..81ca5fb0 100644 --- a/arceos-vmm/src/vmm/config.rs +++ b/arceos-vmm/src/vmm/config.rs @@ -33,7 +33,29 @@ pub fn init_guest_vms() { info!("Creating VM [{}] {:?}", vm_config.id(), vm_config.name()); // Create VM. - let vm = VM::new(vm_config).expect("Failed to create VM"); + // let vm = VM::new(vm_config).expect("Failed to create VM"); + // %%% temp action! + let vm = VM::temp_new_with_device_adder(vm_config, |devices| { + let mock_timer = super::mock::MockTimer::new(); + let mock_timer = alloc::sync::Arc::new(mock_timer); + + devices.add_mmio_dev(mock_timer.clone()); + + use std::os::arceos::modules::axhal; + + fn schedule_next(action: impl Fn() + Send + Sync + 'static) { + super::timer::register_timer(axhal::time::monotonic_time_nanos() + 1_000_000_000, move |time| { + info!("Timer fired at {:?}", time); + action(); + schedule_next(action); + }); + } + + schedule_next(move || { + mock_timer.tick(); + }); + }).expect("Failed to create VM"); + vm.set_devices_interrupt_injector(); push_vm(vm.clone()); // Load corresponding images for VM. diff --git a/arceos-vmm/src/vmm/mock.rs b/arceos-vmm/src/vmm/mock.rs new file mode 100644 index 00000000..9a94c02f --- /dev/null +++ b/arceos-vmm/src/vmm/mock.rs @@ -0,0 +1,62 @@ +use core::cell::{OnceCell, Ref, RefCell}; + +use alloc::boxed::Box; +use axaddrspace::{device::{self, AccessWidth}, GuestPhysAddr, GuestPhysAddrRange}; +use axdevice_base::{BaseDeviceOps, DeviceRWContext, InterruptInjector}; +use cpumask::CpuMask; + +pub struct MockTimer { + injector: RefCell>>, +} + +impl BaseDeviceOps for MockTimer { + fn emu_type(&self) -> axdevice_base::EmuDeviceType { + axdevice_base::EmuDeviceType::EmuDeviceTConsole // just a placeholder + } + + fn address_range(&self) -> GuestPhysAddrRange { + // a placeholder + GuestPhysAddrRange::from_start_size(0x1234_0000.into(), 0x1000) + } + + fn handle_read( + &self, + addr: ::Addr, + width: AccessWidth, + context: DeviceRWContext, + ) -> axerrno::AxResult { + todo!() + } + + fn handle_write( + &self, + addr: ::Addr, + width: AccessWidth, + val: usize, + context: DeviceRWContext, + ) -> axerrno::AxResult { + todo!() + } + + fn set_interrupt_injector(&self, injector: Box) { + self.injector.borrow_mut().replace(injector); + } +} + +impl MockTimer { + pub fn new() -> Self { + Self { + injector: RefCell::new(None), + } + } + + pub fn tick(&self) { + // Warning! Potential deadlock here + if let Some(injector) = self.injector.borrow_mut().as_mut() { + injector(CpuMask::one_shot(0), 0x77); + } + } +} + +unsafe impl Send for MockTimer {} +unsafe impl Sync for MockTimer {} diff --git a/arceos-vmm/src/vmm/mod.rs b/arceos-vmm/src/vmm/mod.rs index 8d66525c..fa68cf33 100644 --- a/arceos-vmm/src/vmm/mod.rs +++ b/arceos-vmm/src/vmm/mod.rs @@ -1,5 +1,6 @@ mod config; mod images; +mod mock; mod timer; mod vcpus; mod vm_list; @@ -8,6 +9,7 @@ use std::os::arceos::api::task::{self, AxWaitQueueHandle}; use core::sync::atomic::AtomicUsize; use core::sync::atomic::Ordering; +use std::os::arceos::modules::axhal; use std::os::arceos::modules::axtask; use std::os::arceos::modules::axtask::TaskExtRef; diff --git a/arceos-vmm/src/vmm/timer.rs b/arceos-vmm/src/vmm/timer.rs index 0d98704c..dae0c611 100644 --- a/arceos-vmm/src/vmm/timer.rs +++ b/arceos-vmm/src/vmm/timer.rs @@ -57,6 +57,8 @@ pub fn register_timer(deadline: u64, handler: F) -> usize where F: FnOnce(TimeValue) + Send + 'static, { + info!("Registering timer..."); + info!("deadline is {:#?} = {:#?}", deadline, TimeValue::from_nanos(deadline as u64)); let timer_list = unsafe { TIMER_LIST.current_ref_mut_raw() }; let mut timers = timer_list.lock(); let token = TOKEN.fetch_add(1, Ordering::Release); @@ -77,6 +79,8 @@ pub fn cancel_timer(token: usize) { /// Check and process any pending timer events pub fn check_events() { + info!("Checking timer events..."); + info!("now is {:#?}", axhal::time::wall_time()); let timer_list = unsafe { TIMER_LIST.current_ref_mut_raw() }; loop { let now = axhal::time::wall_time(); @@ -92,6 +96,7 @@ pub fn check_events() { /// Schedule the next timer event based on the periodic interval pub fn scheduler_next_event() { + trace!("Scheduling next event..."); let now_ns = axhal::time::monotonic_time_nanos(); let deadline = now_ns + PERIODIC_INTERVAL_NANOS; trace!("PHY deadline {} !!!", deadline); diff --git a/arceos-vmm/src/vmm/vcpus.rs b/arceos-vmm/src/vmm/vcpus.rs index 8637de4c..7114d187 100644 --- a/arceos-vmm/src/vmm/vcpus.rs +++ b/arceos-vmm/src/vmm/vcpus.rs @@ -2,7 +2,7 @@ use alloc::collections::BTreeMap; use alloc::vec::Vec; use std::os::arceos::api; -use std::os::arceos::modules::axtask; +use std::os::arceos::modules::{axhal, axtask}; use axaddrspace::GuestPhysAddr; use axtask::{AxTaskRef, TaskExtRef, TaskInner, WaitQueue}; @@ -260,6 +260,10 @@ fn vcpu_run() { info!("VM[{}] Vcpu[{}] running...", vm.id(), vcpu.id()); + warn!("vcpu_run: temp action! scheduler_next_event"); + // %%% temp action! + super::timer::scheduler_next_event(); + loop { match vm.run_vcpu(vcpu_id) { // match vcpu.run() { @@ -273,8 +277,8 @@ fn vcpu_run() { vm_id, vcpu_id ); - vm.inject_interrupt_to_vcpu(cpumask::CpuMask::one_shot(vcpu_id), 0x66) - .unwrap(); + // vm.inject_interrupt_to_vcpu(cpumask::CpuMask::one_shot(vcpu_id), 0x66) + // .unwrap(); } vcpu.set_gpr(0, !args[1] as _); @@ -289,6 +293,9 @@ fn vcpu_run() { } AxVCpuExitReason::ExternalInterrupt { vector } => { debug!("VM[{}] run VCpu[{}] get irq {}", vm_id, vcpu_id, vector); + + // %%% temp action! + super::timer::scheduler_next_event(); } AxVCpuExitReason::Halt => { debug!("VM[{}] run VCpu[{}] Halt", vm_id, vcpu_id); @@ -327,5 +334,8 @@ fn vcpu_run() { wait(vm_id) } } + + // %%% temp action! + super::timer::check_events(); } } From c88ae9627ba66b360513056cc7a50e7412742f8c Mon Sep 17 00:00:00 2001 From: aarkegz Date: Wed, 12 Mar 2025 16:47:44 +0800 Subject: [PATCH 004/219] a working version --- Cargo.lock | 98 ++++++++++++++++------- Cargo.toml | 16 +++- arceos-vmm/Cargo.toml | 6 ++ arceos-vmm/configs/vms/nimbos-x86_64.toml | 2 +- arceos-vmm/src/hal.rs | 78 ++++++++++++++++++ arceos-vmm/src/vmm/mod.rs | 2 +- arceos-vmm/src/vmm/timer.rs | 2 +- arceos-vmm/src/vmm/vcpus.rs | 11 +-- 8 files changed, 173 insertions(+), 42 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 832ba957..cd53e08c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -8,7 +8,7 @@ version = "9.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ac42a04a61c19fc8196dd728022a784baecc5d63d7e256c01ad1b3fbfab26287" dependencies = [ - "tock-registers", + "tock-registers 0.8.1", ] [[package]] @@ -108,13 +108,14 @@ dependencies = [ name = "arceos-vmm" version = "0.1.0" dependencies = [ - "axaddrspace 0.1.0 (git+https://github.com/arceos-hypervisor/axaddrspace.git?branch=inject_interrupt)", + "axaddrspace 0.1.0 (git+https://github.com/arceos-hypervisor/axaddrspace.git?branch=api)", "axconfig", "axdevice", "axdevice_base", "axerrno", "axstd", - "axvcpu 0.1.0 (git+https://github.com/arceos-hypervisor/axvcpu.git?branch=inject_interrupt)", + "axvcpu", + "axvisor_api", "axvm", "bitflags 2.6.0", "cpumask", @@ -130,6 +131,7 @@ dependencies = [ "spin", "timer_list", "toml", + "x86_vcpu", ] [[package]] @@ -156,7 +158,7 @@ name = "arm_gicv2" version = "0.1.0" source = "git+https://github.com/arceos-hypervisor/arm_gicv2?branch=sgi#956665adcdc6b09a28078db09ad3f09ed41af80b" dependencies = [ - "tock-registers", + "tock-registers 0.8.1", ] [[package]] @@ -165,7 +167,7 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "efcf6afca4502993a737ba1e00952d1321078689da92bf7aab27d4e5756c0bec" dependencies = [ - "tock-registers", + "tock-registers 0.8.1", ] [[package]] @@ -177,12 +179,12 @@ dependencies = [ "aarch64_sysreg", "axaddrspace 0.1.0 (git+https://github.com/arceos-hypervisor/axaddrspace.git)", "axerrno", - "axvcpu 0.1.0 (git+https://github.com/arceos-hypervisor/axvcpu.git)", + "axvcpu", "log", "numeric-enum-macro", "percpu", "spin", - "tock-registers", + "tock-registers 0.8.1", ] [[package]] @@ -194,9 +196,10 @@ checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" [[package]] name = "axaddrspace" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/axaddrspace.git?branch=inject_interrupt#4cb56d7d4248cfeb421742c8bc7535c66fe07db6" +source = "git+https://github.com/arceos-hypervisor/axaddrspace.git?branch=api#a8639c64dfea62b227cd4543178376f5ccbc55a7" dependencies = [ "axerrno", + "axvisor_api", "bit_field", "bitflags 2.6.0", "cfg-if", @@ -272,7 +275,7 @@ dependencies = [ name = "axdevice" version = "0.1.0" dependencies = [ - "axaddrspace 0.1.0 (git+https://github.com/arceos-hypervisor/axaddrspace.git?branch=inject_interrupt)", + "axaddrspace 0.1.0 (git+https://github.com/arceos-hypervisor/axaddrspace.git?branch=api)", "axdevice_base", "axerrno", "axvmconfig", @@ -285,7 +288,7 @@ dependencies = [ name = "axdevice_base" version = "0.1.0" dependencies = [ - "axaddrspace 0.1.0 (git+https://github.com/arceos-hypervisor/axaddrspace.git?branch=inject_interrupt)", + "axaddrspace 0.1.0 (git+https://github.com/arceos-hypervisor/axaddrspace.git?branch=api)", "axerrno", "cfg-if", "cpumask", @@ -448,7 +451,7 @@ dependencies = [ "riscv_plic", "sbi-rt", "static_assertions", - "tock-registers", + "tock-registers 0.8.1", "x2apic", "x86", "x86_64 0.15.2", @@ -558,23 +561,30 @@ dependencies = [ [[package]] name = "axvcpu" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/axvcpu.git?branch=inject_interrupt#8002f43d40b34a993ffbd2a193f543c954964280" dependencies = [ - "axaddrspace 0.1.0 (git+https://github.com/arceos-hypervisor/axaddrspace.git?branch=inject_interrupt)", + "axaddrspace 0.1.0 (git+https://github.com/arceos-hypervisor/axaddrspace.git?branch=api)", "axerrno", "memory_addr", "percpu", ] [[package]] -name = "axvcpu" +name = "axvisor_api" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/axvcpu.git#8414a575723f929d5fd24010ce16446d90ecf268" dependencies = [ - "axaddrspace 0.1.0 (git+https://github.com/arceos-hypervisor/axaddrspace.git)", - "axerrno", + "axvisor_api_proc", + "crate_interface", "memory_addr", - "percpu", +] + +[[package]] +name = "axvisor_api_proc" +version = "0.1.0" +dependencies = [ + "proc-macro-crate", + "proc-macro2", + "quote", + "syn 2.0.93", ] [[package]] @@ -582,11 +592,11 @@ name = "axvm" version = "0.1.0" dependencies = [ "arm_vcpu", - "axaddrspace 0.1.0 (git+https://github.com/arceos-hypervisor/axaddrspace.git?branch=inject_interrupt)", + "axaddrspace 0.1.0 (git+https://github.com/arceos-hypervisor/axaddrspace.git?branch=api)", "axdevice", "axdevice_base", "axerrno", - "axvcpu 0.1.0 (git+https://github.com/arceos-hypervisor/axvcpu.git?branch=inject_interrupt)", + "axvcpu", "axvmconfig", "cfg-if", "cpumask", @@ -774,7 +784,7 @@ version = "8.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8256fd5103e10027467cc7a97c9ff27fcc4547ea24864da0aff2e7aef6e18e28" dependencies = [ - "tock-registers", + "tock-registers 0.8.1", ] [[package]] @@ -815,7 +825,7 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f93d496c8faa9dc676ebfa225432e1e3b57645c9268ead889286546f6d39356d" dependencies = [ - "tock-registers", + "tock-registers 0.8.1", ] [[package]] @@ -1084,6 +1094,15 @@ dependencies = [ "syn 2.0.93", ] +[[package]] +name = "proc-macro-crate" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ecf48c7ca261d60b74ab1a7b20da18bede46776b2e55535cb958eb595c5fa7b" +dependencies = [ + "toml_edit 0.22.22", +] + [[package]] name = "proc-macro2" version = "1.0.92" @@ -1192,7 +1211,7 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "daae4c8e29d4d8c36fbda4c318ffa1755645766fefab8fcff61a8ecd577bb822" dependencies = [ - "tock-registers", + "tock-registers 0.8.1", ] [[package]] @@ -1202,7 +1221,7 @@ source = "git+https://github.com/arceos-hypervisor/riscv_vcpu.git#15d74de5dc7d38 dependencies = [ "axaddrspace 0.1.0 (git+https://github.com/arceos-hypervisor/axaddrspace.git)", "axerrno", - "axvcpu 0.1.0 (git+https://github.com/arceos-hypervisor/axvcpu.git)", + "axvcpu", "bit_field", "bitflags 2.6.0", "cfg-if", @@ -1216,7 +1235,7 @@ dependencies = [ "rustsbi", "sbi-rt", "sbi-spec", - "tock-registers", + "tock-registers 0.8.1", ] [[package]] @@ -1428,6 +1447,12 @@ version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "696941a0aee7e276a165a978b37918fd5d22c55c3d6bda197813070ca9c0f21c" +[[package]] +name = "tock-registers" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b9e2fdb3a1e862c0661768b7ed25390811df1947a8acbfbefe09b47078d93c4" + [[package]] name = "toml" version = "0.8.14" @@ -1659,11 +1684,11 @@ dependencies = [ [[package]] name = "x86_vcpu" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/x86_vcpu.git?branch=inject_interrupt#0b07547fc8553cdbcac8e7cc93540fdfbc384e6f" dependencies = [ - "axaddrspace 0.1.0 (git+https://github.com/arceos-hypervisor/axaddrspace.git?branch=inject_interrupt)", + "axaddrspace 0.1.0 (git+https://github.com/arceos-hypervisor/axaddrspace.git?branch=api)", + "axdevice_base", "axerrno", - "axvcpu 0.1.0 (git+https://github.com/arceos-hypervisor/axvcpu.git?branch=inject_interrupt)", + "axvcpu", "bit_field", "bitflags 2.6.0", "cfg-if", @@ -1672,9 +1697,26 @@ dependencies = [ "memory_addr", "numeric-enum-macro", "page_table_entry", + "paste", "raw-cpuid 11.2.0", "x86", "x86_64 0.15.2", + "x86_vlapic", +] + +[[package]] +name = "x86_vlapic" +version = "0.1.0" +dependencies = [ + "axaddrspace 0.1.0 (git+https://github.com/arceos-hypervisor/axaddrspace.git?branch=api)", + "axdevice_base", + "axerrno", + "axvisor_api", + "bit", + "log", + "memory_addr", + "paste", + "tock-registers 0.9.0", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index f49acc9d..b09fa77d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -12,7 +12,19 @@ axconfig = { git = "https://github.com/arceos-hypervisor/arceos.git", branch = " axvm = { git = "https://github.com/arceos-hypervisor/axvm.git", branch = "inject_interrupt" } axvcpu = { git = "https://github.com/arceos-hypervisor/axvcpu.git", branch = "inject_interrupt" } -axaddrspace = { git = "https://github.com/arceos-hypervisor/axaddrspace.git", branch = "inject_interrupt" } +axaddrspace = { git = "https://github.com/arceos-hypervisor/axaddrspace.git", branch = "api" } + +[patch."https://github.com/arceos-hypervisor/axvcpu.git"] +axvcpu = { path = "../axvcpu" } + +[patch."https://github.com/arceos-hypervisor/axvisor_api.git"] +axvisor_api = { path = "../axvisor_api" } + +[patch."https://github.com/arceos-hypervisor/x86_vcpu.git"] +x86_vcpu = { path = "../x86_vcpu" } + +[patch."https://github.com/arceos-hypervisor/x86_vlapic.git"] +x86_vlapic = { path = "../x86_vlapic" } [patch."https://github.com/arceos-hypervisor/axvm.git"] axvm = { path = "../axvm" } @@ -24,5 +36,5 @@ axdevice = { path = "../axdevice" } axdevice_base = { path = "../axdevice_crates/axdevice_base" } [patch."https://github.com/arceos-hypervisor/arceos.git"] -axstd = { path = "../arceos-new/ulib/axstd", features = ["ipi", "smp"] } +axstd = { path = "../arceos-new/ulib/axstd", features = ["ipi", "smp", "irq"] } axconfig = { path = "../arceos-new/modules/axconfig" } \ No newline at end of file diff --git a/arceos-vmm/Cargo.toml b/arceos-vmm/Cargo.toml index c6abe569..4d603634 100644 --- a/arceos-vmm/Cargo.toml +++ b/arceos-vmm/Cargo.toml @@ -7,6 +7,7 @@ authors = ["Keyang Hu "] [features] fs = ["axstd/fs"] +tracing = ["x86_vcpu/tracing"] [dependencies] log = "=0.4.21" @@ -45,6 +46,11 @@ percpu = { version = "0.1.4", features = ["arm-el2"] } axdevice = { path = "../../axdevice" } axdevice_base = { path = "../../axdevice_crates/axdevice_base" } +axvisor_api = { git = "https://github.com/arceos-hypervisor/axvisor_api.git" } + +[target.'cfg(target_arch = "x86_64")'.dependencies] +x86_vcpu = { path = "../../x86_vcpu" } + [build-dependencies] toml = { git = "https://github.com/arceos-hypervisor/toml.git", branch = "no_std" } axconfig = { workspace = true } \ No newline at end of file diff --git a/arceos-vmm/configs/vms/nimbos-x86_64.toml b/arceos-vmm/configs/vms/nimbos-x86_64.toml index b73f141a..e0e62974 100644 --- a/arceos-vmm/configs/vms/nimbos-x86_64.toml +++ b/arceos-vmm/configs/vms/nimbos-x86_64.toml @@ -1,4 +1,4 @@ -id = 1 +id = 0 name = "nimbos" vm_type = 1 cpu_num = 1 diff --git a/arceos-vmm/src/hal.rs b/arceos-vmm/src/hal.rs index 0a243280..20b943b1 100644 --- a/arceos-vmm/src/hal.rs +++ b/arceos-vmm/src/hal.rs @@ -163,3 +163,81 @@ pub(crate) fn enable_virtualization() { thread::yield_now(); } } + +#[axvisor_api::api_mod_impl(axvisor_api::memory)] +mod memory_api_impl { + use super::*; + + extern fn alloc_frame() -> Option { + ::alloc_frame() + } + + extern fn dealloc_frame(paddr: HostPhysAddr) { + ::dealloc_frame(paddr) + } + + extern fn phys_to_virt(paddr: HostPhysAddr) -> HostVirtAddr { + ::phys_to_virt(paddr) + } + + extern fn virt_to_phys(vaddr: HostVirtAddr) -> HostPhysAddr { + ::virt_to_phys(vaddr) + } +} + +#[axvisor_api::api_mod_impl(axvisor_api::time)] +mod time_api_impl { + use super::*; + use axvisor_api::time::{CancelToken, Nanos, Ticks, TimeValue}; + + extern fn current_ticks() -> Ticks { + axhal::time::current_ticks() + } + + extern fn ticks_to_nanos(ticks: Ticks) -> Nanos { + axhal::time::ticks_to_nanos(ticks) + } + + extern fn nanos_to_ticks(nanos: Nanos) -> Ticks { + axhal::time::nanos_to_ticks(nanos) + } + + extern fn register_timer(deadline: TimeValue, handler: alloc::boxed::Box) -> CancelToken { + vmm::timer::register_timer(deadline.as_nanos() as u64, |t| handler(t)) + } + + extern fn cancel_timer(token: CancelToken) { + vmm::timer::cancel_timer(token) + } +} + +#[axvisor_api::api_mod_impl(axvisor_api::vmm)] +mod vmm_api_impl { + use super::*; + use axvisor_api::vmm::{InterruptVector, VCpuId, VMId}; + + extern fn current_vm_id() -> usize { + ::current_vm_id() + } + + extern fn current_vcpu_id() -> usize { + ::current_vcpu_id() + } + + extern fn vcpu_num(vm_id: VMId) -> usize { + todo!("vcpu_num") + } + + extern fn active_vcpus(vm_id: VMId) -> usize { + todo!("active_vcpus") + } + + extern fn inject_interrupt(vm_id: VMId, vcpu_id: VCpuId, vector: InterruptVector) { + ::inject_irq_to_vcpu(vm_id, vcpu_id, vector as usize).unwrap(); + } + + extern fn notify_vcpu_timer_expired(vm_id: VMId, vcpu_id: VCpuId) { + todo!("notify_vcpu_timer_expired") + // vmm::timer::notify_timer_expired(vm_id, vcpu_id); + } +} diff --git a/arceos-vmm/src/vmm/mod.rs b/arceos-vmm/src/vmm/mod.rs index fa68cf33..8173a0fd 100644 --- a/arceos-vmm/src/vmm/mod.rs +++ b/arceos-vmm/src/vmm/mod.rs @@ -1,7 +1,7 @@ mod config; mod images; mod mock; -mod timer; +pub mod timer; mod vcpus; mod vm_list; diff --git a/arceos-vmm/src/vmm/timer.rs b/arceos-vmm/src/vmm/timer.rs index dae0c611..695fcd4d 100644 --- a/arceos-vmm/src/vmm/timer.rs +++ b/arceos-vmm/src/vmm/timer.rs @@ -86,7 +86,7 @@ pub fn check_events() { let now = axhal::time::wall_time(); let event = timer_list.lock().expire_one(now); if let Some((_deadline, event)) = event { - trace!("pick one {:#?} to handler!!!", _deadline); + trace!("pick one {:#?} to handle!!!", _deadline); event.callback(now); } else { break; diff --git a/arceos-vmm/src/vmm/vcpus.rs b/arceos-vmm/src/vmm/vcpus.rs index 7114d187..c1210d3e 100644 --- a/arceos-vmm/src/vmm/vcpus.rs +++ b/arceos-vmm/src/vmm/vcpus.rs @@ -260,10 +260,6 @@ fn vcpu_run() { info!("VM[{}] Vcpu[{}] running...", vm.id(), vcpu.id()); - warn!("vcpu_run: temp action! scheduler_next_event"); - // %%% temp action! - super::timer::scheduler_next_event(); - loop { match vm.run_vcpu(vcpu_id) { // match vcpu.run() { @@ -294,8 +290,8 @@ fn vcpu_run() { AxVCpuExitReason::ExternalInterrupt { vector } => { debug!("VM[{}] run VCpu[{}] get irq {}", vm_id, vcpu_id, vector); - // %%% temp action! - super::timer::scheduler_next_event(); + // TODO: maybe move this irq dispatcher to lower layer to accelerate the interrupt handling + axhal::irq::handler_irq(vector as usize); } AxVCpuExitReason::Halt => { debug!("VM[{}] run VCpu[{}] Halt", vm_id, vcpu_id); @@ -334,8 +330,5 @@ fn vcpu_run() { wait(vm_id) } } - - // %%% temp action! - super::timer::check_events(); } } From 612eb5feb967b653413629584ba9b432f00844a8 Mon Sep 17 00:00:00 2001 From: aarkegz Date: Mon, 17 Mar 2025 20:26:09 +0800 Subject: [PATCH 005/219] fixing ce --- Cargo.lock | 6 ++++++ Cargo.toml | 16 +++++++++++++++- src/hal.rs | 4 ---- 3 files changed, 21 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 1ed4e8ff..0e3c8154 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -345,6 +345,7 @@ dependencies = [ "axruntime", "axsync", "axtask", + "kspin", ] [[package]] @@ -553,12 +554,17 @@ version = "0.1.0" dependencies = [ "axaddrspace 0.1.0 (git+https://github.com/arceos-hypervisor/axaddrspace.git?branch=api)", "axconfig", + "axdevice", + "axdevice_base", "axerrno", "axstd", "axvcpu", + "axvisor_api", "axvm", "bitflags 2.9.0", + "cpumask", "crate_interface", + "kernel_guard", "kspin", "lazyinit", "log", diff --git a/Cargo.toml b/Cargo.toml index 3cdea1fe..f86b2849 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -25,9 +25,11 @@ axstd = { git = "https://github.com/arceos-hypervisor/arceos.git", branch = "vmm "alloc", "paging", # "fs", + "ipi", "irq", "hv", "multitask", + "smp", # "sched_rr" ]} @@ -39,11 +41,17 @@ axaddrspace = { git = "https://github.com/arceos-hypervisor/axaddrspace.git", br # System independent crates provided by ArceOS, these crates could be imported by remote url. crate_interface = "0.1" axerrno = "0.1.0" +cpumask = "0.1.0" +kernel_guard = "0.1" memory_addr = "0.3" page_table_entry = { version = "0.5", features = ["arm-el2"] } page_table_multiarch = "0.5" percpu = { version = "0.1.4", features = ["arm-el2"] } +axdevice = { path = "../axdevice" } +axdevice_base = { path = "../axdevice_crates/axdevice_base" } +axvisor_api = { git = "https://github.com/arceos-hypervisor/axvisor_api.git" } + [build-dependencies] toml = { git = "https://github.com/arceos-hypervisor/toml.git", branch = "no_std" } axconfig = { git = "https://github.com/arceos-hypervisor/arceos.git", branch = "vmm_inject_interrupt" } @@ -73,5 +81,11 @@ axdevice = { path = "../axdevice" } axdevice_base = { path = "../axdevice_crates/axdevice_base" } [patch."https://github.com/arceos-hypervisor/arceos.git"] -axstd = { path = "../arceos-new/ulib/axstd", features = ["ipi", "smp", "irq"] } +axstd = { path = "../arceos-new/ulib/axstd", features = [ + "alloc", + "paging", + "ipi", + "smp", + "irq" +]} axconfig = { path = "../arceos-new/modules/axconfig" } \ No newline at end of file diff --git a/src/hal.rs b/src/hal.rs index 20b943b1..14f1d2c6 100644 --- a/src/hal.rs +++ b/src/hal.rs @@ -72,10 +72,6 @@ impl AxVMHal for AxVMHalImpl { vcpu.inject_interrupt(irq).unwrap(); }) } - - fn dododo(s: &'static str) { - // info!("{}: -- irq enabled: {:?}", s, axhal::arch::irqs_enabled()); - } } pub struct AxMmHalImpl; From 18447adfff9884f8adf126a5f982b53a9abce71b Mon Sep 17 00:00:00 2001 From: aarkegz Date: Wed, 19 Mar 2025 21:42:40 +0800 Subject: [PATCH 006/219] a really working version --- src/vmm/vcpus.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/vmm/vcpus.rs b/src/vmm/vcpus.rs index c1210d3e..0f87fa64 100644 --- a/src/vmm/vcpus.rs +++ b/src/vmm/vcpus.rs @@ -292,6 +292,7 @@ fn vcpu_run() { // TODO: maybe move this irq dispatcher to lower layer to accelerate the interrupt handling axhal::irq::handler_irq(vector as usize); + super::timer::check_events(); } AxVCpuExitReason::Halt => { debug!("VM[{}] run VCpu[{}] Halt", vm_id, vcpu_id); From 079005893c0dac4b93a3a51242d4cab6727edfb2 Mon Sep 17 00:00:00 2001 From: aarkegz Date: Wed, 26 Mar 2025 15:38:11 +0800 Subject: [PATCH 007/219] impl `vmm::vcpu_num` --- src/hal.rs | 6 +++--- src/vmm/mod.rs | 8 +++++++- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/hal.rs b/src/hal.rs index 14f1d2c6..43d9e38c 100644 --- a/src/hal.rs +++ b/src/hal.rs @@ -220,11 +220,11 @@ mod vmm_api_impl { ::current_vcpu_id() } - extern fn vcpu_num(vm_id: VMId) -> usize { - todo!("vcpu_num") + extern fn vcpu_num(vm_id: VMId) -> Option { + vmm::with_wm(vm_id, |vm| vm.vcpu_num()) } - extern fn active_vcpus(vm_id: VMId) -> usize { + extern fn active_vcpus(vm_id: VMId) -> Option { todo!("active_vcpus") } diff --git a/src/vmm/mod.rs b/src/vmm/mod.rs index 8173a0fd..b4624e86 100644 --- a/src/vmm/mod.rs +++ b/src/vmm/mod.rs @@ -58,6 +58,12 @@ pub fn start() { #[allow(unused_imports)] pub use vcpus::{find_vcpu_task, with_vcpu_task}; +/// Run a closure with the specified VM. +pub fn with_wm(vm_id: usize, f: impl FnOnce(VMRef) -> T) -> Option { + let vm = vm_list::get_vm_by_id(vm_id)?; + Some(f(vm)) +} + /// Run a closure with the specified VM and vCPU. pub fn with_vm_and_vcpu( vm_id: usize, @@ -73,7 +79,7 @@ pub fn with_vm_and_vcpu( /// Run a closure with the specified VM and vCPU, with the guarantee that the closure will be /// executed on the physical CPU where the vCPU is running, waiting, or queueing. /// -/// It seems necessary to disable scheduling when running the closure. +/// TODO: It seems necessary to disable scheduling when running the closure. pub fn with_vm_and_vcpu_on_pcpu( vm_id: usize, vcpu_id: usize, From a9c6c4a002e4e5903ca23f80bbdbbe2bc09afc55 Mon Sep 17 00:00:00 2001 From: aarkegz Date: Thu, 27 Mar 2025 02:06:02 +0800 Subject: [PATCH 008/219] update to newest dependencies --- Cargo.lock | 84 +++++++++++++++++++++++++++-------------------- Cargo.toml | 54 +++++++++++++++--------------- src/vmm/config.rs | 1 - src/vmm/mock.rs | 28 +++++----------- 4 files changed, 85 insertions(+), 82 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 0e3c8154..b6e9f156 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -117,6 +117,7 @@ dependencies = [ [[package]] name = "arceos_api" version = "0.1.0" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_inject_interrupt#ab6e5cf1eccab2dc42c35e3df139148369af942d" dependencies = [ "axalloc", "axconfig", @@ -157,9 +158,9 @@ source = "git+https://github.com/arceos-hypervisor/arm_vcpu.git#5adab4c6e9366417 dependencies = [ "aarch64-cpu 9.4.0", "aarch64_sysreg", - "axaddrspace 0.1.0 (git+https://github.com/arceos-hypervisor/axaddrspace.git)", + "axaddrspace", "axerrno", - "axvcpu", + "axvcpu 0.1.0 (git+https://github.com/arceos-hypervisor/axvcpu.git)", "log", "numeric-enum-macro", "percpu", @@ -176,26 +177,7 @@ checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" [[package]] name = "axaddrspace" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/axaddrspace.git?branch=api#a8639c64dfea62b227cd4543178376f5ccbc55a7" -dependencies = [ - "axerrno", - "axvisor_api", - "bit_field", - "bitflags 2.9.0", - "cfg-if", - "lazyinit", - "log", - "memory_addr", - "memory_set", - "numeric-enum-macro", - "page_table_entry", - "page_table_multiarch", -] - -[[package]] -name = "axaddrspace" -version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/axaddrspace.git#f1ab1108c1477f6f4f56035b74ea76c8932d6b8d" +source = "git+https://github.com/arceos-hypervisor/axaddrspace.git#2ed4d076e01f966710bd6480131abd3a9ffb8930" dependencies = [ "axerrno", "bit_field", @@ -213,6 +195,7 @@ dependencies = [ [[package]] name = "axalloc" version = "0.1.0" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_inject_interrupt#ab6e5cf1eccab2dc42c35e3df139148369af942d" dependencies = [ "allocator", "axerrno", @@ -225,6 +208,7 @@ dependencies = [ [[package]] name = "axconfig" version = "0.1.0" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_inject_interrupt#ab6e5cf1eccab2dc42c35e3df139148369af942d" dependencies = [ "axconfig-gen-macros", ] @@ -254,8 +238,9 @@ dependencies = [ [[package]] name = "axdevice" version = "0.1.0" +source = "git+https://github.com/arceos-hypervisor/axdevice.git?branch=inject_interrupt#5bb06f57c3c5bce235e441345be8cb444c2e11d5" dependencies = [ - "axaddrspace 0.1.0 (git+https://github.com/arceos-hypervisor/axaddrspace.git?branch=api)", + "axaddrspace", "axdevice_base", "axerrno", "axvmconfig", @@ -267,11 +252,11 @@ dependencies = [ [[package]] name = "axdevice_base" version = "0.1.0" +source = "git+https://github.com/arceos-hypervisor/axdevice_crates.git?branch=inject_interrupt#9e42a6c1714b42d352d7f8c8a146024c29bf3888" dependencies = [ - "axaddrspace 0.1.0 (git+https://github.com/arceos-hypervisor/axaddrspace.git?branch=api)", + "axaddrspace", "axerrno", "cfg-if", - "cpumask", "memory_addr", "serde", ] @@ -279,6 +264,7 @@ dependencies = [ [[package]] name = "axdriver" version = "0.1.0" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_inject_interrupt#ab6e5cf1eccab2dc42c35e3df139148369af942d" dependencies = [ "axalloc", "axconfig", @@ -335,6 +321,7 @@ dependencies = [ [[package]] name = "axfeat" version = "0.1.0" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_inject_interrupt#ab6e5cf1eccab2dc42c35e3df139148369af942d" dependencies = [ "axalloc", "axdriver", @@ -351,6 +338,7 @@ dependencies = [ [[package]] name = "axfs" version = "0.1.0" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_inject_interrupt#ab6e5cf1eccab2dc42c35e3df139148369af942d" dependencies = [ "axdriver", "axdriver_block", @@ -403,6 +391,7 @@ dependencies = [ [[package]] name = "axhal" version = "0.1.0" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_inject_interrupt#ab6e5cf1eccab2dc42c35e3df139148369af942d" dependencies = [ "aarch64-cpu 9.4.0", "arm_gicv2", @@ -449,6 +438,7 @@ dependencies = [ [[package]] name = "axipi" version = "0.1.0" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_inject_interrupt#ab6e5cf1eccab2dc42c35e3df139148369af942d" dependencies = [ "axconfig", "axhal", @@ -461,6 +451,7 @@ dependencies = [ [[package]] name = "axlog" version = "0.1.0" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_inject_interrupt#ab6e5cf1eccab2dc42c35e3df139148369af942d" dependencies = [ "cfg-if", "crate_interface", @@ -471,6 +462,7 @@ dependencies = [ [[package]] name = "axmm" version = "0.1.0" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_inject_interrupt#ab6e5cf1eccab2dc42c35e3df139148369af942d" dependencies = [ "axconfig", "axerrno", @@ -484,6 +476,7 @@ dependencies = [ [[package]] name = "axruntime" version = "0.1.0" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_inject_interrupt#ab6e5cf1eccab2dc42c35e3df139148369af942d" dependencies = [ "axalloc", "axconfig", @@ -503,6 +496,7 @@ dependencies = [ [[package]] name = "axstd" version = "0.1.0" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_inject_interrupt#ab6e5cf1eccab2dc42c35e3df139148369af942d" dependencies = [ "arceos_api", "axerrno", @@ -514,6 +508,7 @@ dependencies = [ [[package]] name = "axsync" version = "0.1.0" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_inject_interrupt#ab6e5cf1eccab2dc42c35e3df139148369af942d" dependencies = [ "axtask", "kspin", @@ -522,6 +517,7 @@ dependencies = [ [[package]] name = "axtask" version = "0.1.0" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_inject_interrupt#ab6e5cf1eccab2dc42c35e3df139148369af942d" dependencies = [ "axconfig", "axhal", @@ -541,8 +537,20 @@ dependencies = [ [[package]] name = "axvcpu" version = "0.1.0" +source = "git+https://github.com/arceos-hypervisor/axvcpu.git?branch=inject_interrupt#3c3d44747e7aee46ba58d736f3f55ddba0103efa" +dependencies = [ + "axaddrspace", + "axerrno", + "memory_addr", + "percpu", +] + +[[package]] +name = "axvcpu" +version = "0.1.0" +source = "git+https://github.com/arceos-hypervisor/axvcpu.git#8414a575723f929d5fd24010ce16446d90ecf268" dependencies = [ - "axaddrspace 0.1.0 (git+https://github.com/arceos-hypervisor/axaddrspace.git?branch=api)", + "axaddrspace", "axerrno", "memory_addr", "percpu", @@ -552,13 +560,13 @@ dependencies = [ name = "axvisor" version = "0.1.0" dependencies = [ - "axaddrspace 0.1.0 (git+https://github.com/arceos-hypervisor/axaddrspace.git?branch=api)", + "axaddrspace", "axconfig", "axdevice", "axdevice_base", "axerrno", "axstd", - "axvcpu", + "axvcpu 0.1.0 (git+https://github.com/arceos-hypervisor/axvcpu.git?branch=inject_interrupt)", "axvisor_api", "axvm", "bitflags 2.9.0", @@ -583,7 +591,9 @@ dependencies = [ [[package]] name = "axvisor_api" version = "0.1.0" +source = "git+https://github.com/arceos-hypervisor/axvisor_api.git?branch=inject_interrupt#a40fe2be70fd877918fbf58ab4495d8beb402aaf" dependencies = [ + "axaddrspace", "axvisor_api_proc", "crate_interface", "memory_addr", @@ -592,6 +602,7 @@ dependencies = [ [[package]] name = "axvisor_api_proc" version = "0.1.0" +source = "git+https://github.com/arceos-hypervisor/axvisor_api.git?branch=inject_interrupt#a40fe2be70fd877918fbf58ab4495d8beb402aaf" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -602,13 +613,14 @@ dependencies = [ [[package]] name = "axvm" version = "0.1.0" +source = "git+https://github.com/arceos-hypervisor/axvm.git?branch=inject_interrupt#b380c96e78320618678bb2903910844d37776da1" dependencies = [ "arm_vcpu", - "axaddrspace 0.1.0 (git+https://github.com/arceos-hypervisor/axaddrspace.git?branch=api)", + "axaddrspace", "axdevice", "axdevice_base", "axerrno", - "axvcpu", + "axvcpu 0.1.0 (git+https://github.com/arceos-hypervisor/axvcpu.git?branch=inject_interrupt)", "axvmconfig", "cfg-if", "cpumask", @@ -1259,9 +1271,9 @@ name = "riscv_vcpu" version = "0.1.0" source = "git+https://github.com/arceos-hypervisor/riscv_vcpu.git#15d74de5dc7d38b39b6087ac290f7d1275a8e883" dependencies = [ - "axaddrspace 0.1.0 (git+https://github.com/arceos-hypervisor/axaddrspace.git)", + "axaddrspace", "axerrno", - "axvcpu", + "axvcpu 0.1.0 (git+https://github.com/arceos-hypervisor/axvcpu.git)", "bit_field", "bitflags 2.9.0", "cfg-if", @@ -1730,11 +1742,12 @@ dependencies = [ [[package]] name = "x86_vcpu" version = "0.1.0" +source = "git+https://github.com/arceos-hypervisor/x86_vcpu.git?branch=inject_interrupt#b240131f84db2ff61d114340c07049dcf20209b4" dependencies = [ - "axaddrspace 0.1.0 (git+https://github.com/arceos-hypervisor/axaddrspace.git?branch=api)", + "axaddrspace", "axdevice_base", "axerrno", - "axvcpu", + "axvcpu 0.1.0 (git+https://github.com/arceos-hypervisor/axvcpu.git?branch=inject_interrupt)", "bit_field", "bitflags 2.9.0", "cfg-if", @@ -1753,8 +1766,9 @@ dependencies = [ [[package]] name = "x86_vlapic" version = "0.1.0" +source = "git+https://github.com/arceos-hypervisor/x86_vlapic.git?branch=timer#5ac0b3f1e76efe46b42fb825818e83e801e49ab2" dependencies = [ - "axaddrspace 0.1.0 (git+https://github.com/arceos-hypervisor/axaddrspace.git?branch=api)", + "axaddrspace", "axdevice_base", "axerrno", "axvisor_api", diff --git a/Cargo.toml b/Cargo.toml index f86b2849..84fc64f7 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -36,7 +36,7 @@ axstd = { git = "https://github.com/arceos-hypervisor/arceos.git", branch = "vmm # System dependent modules provided by ArceOS-Hypervisor. axvm = { git = "https://github.com/arceos-hypervisor/axvm.git", branch = "inject_interrupt" } axvcpu = { git = "https://github.com/arceos-hypervisor/axvcpu.git", branch = "inject_interrupt" } -axaddrspace = { git = "https://github.com/arceos-hypervisor/axaddrspace.git", branch = "api" } +axaddrspace = { git = "https://github.com/arceos-hypervisor/axaddrspace.git" } # System independent crates provided by ArceOS, these crates could be imported by remote url. crate_interface = "0.1" @@ -48,9 +48,9 @@ page_table_entry = { version = "0.5", features = ["arm-el2"] } page_table_multiarch = "0.5" percpu = { version = "0.1.4", features = ["arm-el2"] } -axdevice = { path = "../axdevice" } -axdevice_base = { path = "../axdevice_crates/axdevice_base" } -axvisor_api = { git = "https://github.com/arceos-hypervisor/axvisor_api.git" } +axdevice = { git = "https://github.com/arceos-hypervisor/axdevice.git", branch = "inject_interrupt" } +axdevice_base = { git = "https://github.com/arceos-hypervisor/axdevice_crates.git", branch = "inject_interrupt" } +axvisor_api = { git = "https://github.com/arceos-hypervisor/axvisor_api.git", branch = "inject_interrupt" } [build-dependencies] toml = { git = "https://github.com/arceos-hypervisor/toml.git", branch = "no_std" } @@ -59,33 +59,33 @@ prettyplease = "0.2" quote = "1.0" syn = "2.0" -[patch."https://github.com/arceos-hypervisor/axvcpu.git"] -axvcpu = { path = "../axvcpu" } +# [patch."https://github.com/arceos-hypervisor/axvcpu.git"] +# axvcpu = { path = "../axvcpu" } -[patch."https://github.com/arceos-hypervisor/axvisor_api.git"] -axvisor_api = { path = "../axvisor_api" } +# [patch."https://github.com/arceos-hypervisor/axvisor_api.git"] +# axvisor_api = { path = "../axvisor_api" } -[patch."https://github.com/arceos-hypervisor/x86_vcpu.git"] -x86_vcpu = { path = "../x86_vcpu" } +# [patch."https://github.com/arceos-hypervisor/x86_vcpu.git"] +# x86_vcpu = { path = "../x86_vcpu" } -[patch."https://github.com/arceos-hypervisor/x86_vlapic.git"] -x86_vlapic = { path = "../x86_vlapic" } +# [patch."https://github.com/arceos-hypervisor/x86_vlapic.git"] +# x86_vlapic = { path = "../x86_vlapic" } -[patch."https://github.com/arceos-hypervisor/axvm.git"] -axvm = { path = "../axvm" } +# [patch."https://github.com/arceos-hypervisor/axvm.git"] +# axvm = { path = "../axvm" } -[patch."https://github.com/arceos-hypervisor/axdevice.git"] -axdevice = { path = "../axdevice" } +# [patch."https://github.com/arceos-hypervisor/axdevice.git"] +# axdevice = { path = "../axdevice" } -[patch."https://github.com/arceos-hypervisor/axdevice_crates.git"] -axdevice_base = { path = "../axdevice_crates/axdevice_base" } +# [patch."https://github.com/arceos-hypervisor/axdevice_crates.git"] +# axdevice_base = { path = "../axdevice_crates/axdevice_base" } -[patch."https://github.com/arceos-hypervisor/arceos.git"] -axstd = { path = "../arceos-new/ulib/axstd", features = [ - "alloc", - "paging", - "ipi", - "smp", - "irq" -]} -axconfig = { path = "../arceos-new/modules/axconfig" } \ No newline at end of file +# [patch."https://github.com/arceos-hypervisor/arceos.git"] +# axstd = { path = "../arceos-new/ulib/axstd", features = [ +# "alloc", +# "paging", +# "ipi", +# "smp", +# "irq" +# ]} +# axconfig = { path = "../arceos-new/modules/axconfig" } \ No newline at end of file diff --git a/src/vmm/config.rs b/src/vmm/config.rs index 81ca5fb0..3ebd021d 100644 --- a/src/vmm/config.rs +++ b/src/vmm/config.rs @@ -55,7 +55,6 @@ pub fn init_guest_vms() { mock_timer.tick(); }); }).expect("Failed to create VM"); - vm.set_devices_interrupt_injector(); push_vm(vm.clone()); // Load corresponding images for VM. diff --git a/src/vmm/mock.rs b/src/vmm/mock.rs index 9a94c02f..478b7d1a 100644 --- a/src/vmm/mock.rs +++ b/src/vmm/mock.rs @@ -1,12 +1,12 @@ -use core::cell::{OnceCell, Ref, RefCell}; +use core::cell::RefCell; use alloc::boxed::Box; -use axaddrspace::{device::{self, AccessWidth}, GuestPhysAddr, GuestPhysAddrRange}; -use axdevice_base::{BaseDeviceOps, DeviceRWContext, InterruptInjector}; +use axaddrspace::{device::{AccessWidth, DeviceAddrRange}, GuestPhysAddrRange}; +use axdevice_base::BaseDeviceOps; use cpumask::CpuMask; pub struct MockTimer { - injector: RefCell>>, + // injector: RefCell>>, } impl BaseDeviceOps for MockTimer { @@ -21,40 +21,30 @@ impl BaseDeviceOps for MockTimer { fn handle_read( &self, - addr: ::Addr, + addr: ::Addr, width: AccessWidth, - context: DeviceRWContext, ) -> axerrno::AxResult { todo!() } fn handle_write( &self, - addr: ::Addr, + addr: ::Addr, width: AccessWidth, val: usize, - context: DeviceRWContext, ) -> axerrno::AxResult { todo!() } - - fn set_interrupt_injector(&self, injector: Box) { - self.injector.borrow_mut().replace(injector); - } } impl MockTimer { pub fn new() -> Self { - Self { - injector: RefCell::new(None), - } + Self {} } pub fn tick(&self) { - // Warning! Potential deadlock here - if let Some(injector) = self.injector.borrow_mut().as_mut() { - injector(CpuMask::one_shot(0), 0x77); - } + use axvisor_api::vmm::*; + inject_interrupt(current_vm_id(), current_vcpu_id(), 0x77); } } From 43dc1d14656397c18547c752b63dfca0c20525a2 Mon Sep 17 00:00:00 2001 From: aarkegz Date: Mon, 14 Apr 2025 16:52:09 +0800 Subject: [PATCH 009/219] fix Cargo.lock --- Cargo.lock | 148 +++++++++++++++++++++++------------------------------ 1 file changed, 64 insertions(+), 84 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 71d5880f..ce0d86e7 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -163,7 +163,7 @@ dependencies = [ "axvcpu 0.1.0 (git+https://github.com/arceos-hypervisor/axvcpu.git)", "log", "numeric-enum-macro", - "percpu", + "percpu 0.2.0", "spin", "tock-registers 0.8.1", ] @@ -274,19 +274,18 @@ dependencies = [ "axdriver_virtio", "axhal", "cfg-if", - "crate_interface", "log", ] [[package]] name = "axdriver_base" -version = "0.1.2" -source = "git+https://github.com/arceos-org/axdriver_crates.git?tag=v0.1.2#84eb2170f865e6fa29b78995a86f4fcdcede63df" +version = "0.1.0" +source = "git+https://github.com/arceos-org/axdriver_crates.git?tag=v0.1.0#78686a7e70c9203ba29e425929c393fbb7eca208" [[package]] name = "axdriver_block" -version = "0.1.2" -source = "git+https://github.com/arceos-org/axdriver_crates.git?tag=v0.1.2#84eb2170f865e6fa29b78995a86f4fcdcede63df" +version = "0.1.0" +source = "git+https://github.com/arceos-org/axdriver_crates.git?tag=v0.1.0#78686a7e70c9203ba29e425929c393fbb7eca208" dependencies = [ "axdriver_base", "log", @@ -294,16 +293,16 @@ dependencies = [ [[package]] name = "axdriver_pci" -version = "0.1.2" -source = "git+https://github.com/arceos-org/axdriver_crates.git?tag=v0.1.2#84eb2170f865e6fa29b78995a86f4fcdcede63df" +version = "0.1.0" +source = "git+https://github.com/arceos-org/axdriver_crates.git?tag=v0.1.0#78686a7e70c9203ba29e425929c393fbb7eca208" dependencies = [ "virtio-drivers", ] [[package]] name = "axdriver_virtio" -version = "0.1.2" -source = "git+https://github.com/arceos-org/axdriver_crates.git?tag=v0.1.2#84eb2170f865e6fa29b78995a86f4fcdcede63df" +version = "0.1.0" +source = "git+https://github.com/arceos-org/axdriver_crates.git?tag=v0.1.0#78686a7e70c9203ba29e425929c393fbb7eca208" dependencies = [ "axdriver_base", "axdriver_block", @@ -348,7 +347,6 @@ dependencies = [ "axfs_ramfs", "axfs_vfs", "axio", - "axns", "axsync", "cap_access", "cfg-if", @@ -395,7 +393,7 @@ name = "axhal" version = "0.1.0" source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_inject_interrupt#ab6e5cf1eccab2dc42c35e3df139148369af942d" dependencies = [ - "aarch64-cpu 10.0.0", + "aarch64-cpu 9.4.0", "arm_gicv2", "arm_pl011", "axalloc", @@ -413,18 +411,16 @@ dependencies = [ "lazyinit", "linkme", "log", - "loongArch64", "memory_addr", - "ns16550a", "page_table_entry", "page_table_multiarch", - "percpu", + "percpu 0.1.7", "raw-cpuid 11.5.0", + "riscv 0.11.1", "riscv_plic", - "riscv 0.12.1", "sbi-rt", "static_assertions", - "tock-registers 0.9.0", + "tock-registers 0.8.1", "x2apic", "x86", "x86_64 0.15.2", @@ -449,7 +445,7 @@ dependencies = [ "kspin", "lazyinit", "log", - "percpu", + "percpu 0.1.7", ] [[package]] @@ -468,7 +464,6 @@ name = "axmm" version = "0.1.0" source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_inject_interrupt#ab6e5cf1eccab2dc42c35e3df139148369af942d" dependencies = [ - "axalloc", "axconfig", "axerrno", "axhal", @@ -476,16 +471,6 @@ dependencies = [ "lazyinit", "log", "memory_addr", - "memory_set", -] - -[[package]] -name = "axns" -version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm#4ab0c7fa36f14823749a3fa147fddcb3fe10b94d" -dependencies = [ - "crate_interface", - "lazyinit", ] [[package]] @@ -504,9 +489,8 @@ dependencies = [ "axtask", "chrono", "crate_interface", - "ctor_bare", "kernel_guard", - "percpu", + "percpu 0.1.7", ] [[package]] @@ -545,7 +529,7 @@ dependencies = [ "lazyinit", "log", "memory_addr", - "percpu", + "percpu 0.1.7", "scheduler", "timer_list", ] @@ -558,7 +542,18 @@ dependencies = [ "axaddrspace", "axerrno", "memory_addr", - "percpu", + "percpu 0.1.7", +] + +[[package]] +name = "axvcpu" +version = "0.1.0" +source = "git+https://github.com/arceos-hypervisor/axvcpu.git#34fc1067c4e9dddf3e43e7d290bcb5cf4127382e" +dependencies = [ + "axaddrspace", + "axerrno", + "memory_addr", + "percpu 0.2.0", ] [[package]] @@ -584,7 +579,7 @@ dependencies = [ "memory_addr", "page_table_entry", "page_table_multiarch", - "percpu", + "percpu 0.2.0", "prettyplease", "quote", "spin", @@ -633,7 +628,7 @@ dependencies = [ "memory_addr", "page_table_entry", "page_table_multiarch", - "percpu", + "percpu 0.1.7", "riscv_vcpu", "spin", "x86_vcpu", @@ -848,26 +843,6 @@ version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "43da5946c66ffcc7745f48db692ffbb10a83bfe0afd96235c5c2a4fb23994929" -[[package]] -name = "ctor_bare" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4e5ae3c454dc1efb0e5821dc17344539849391b2de18c89596ea563f1909f93" -dependencies = [ - "ctor_bare_macros", -] - -[[package]] -name = "ctor_bare_macros" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a49d5cd78b1c748184d41407b14a58af8403c13328ff2b9f49b0a418c24e3ff" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.100", -] - [[package]] name = "dw_apb_uart" version = "0.1.0" @@ -1038,16 +1013,6 @@ version = "0.4.21" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c" -[[package]] -name = "loongArch64" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd48200d465466664e4e899b204b77b5447d60b1ababdad3a2c49ae85417b552" -dependencies = [ - "bit_field", - "bitflags 1.3.2", -] - [[package]] name = "memchr" version = "2.7.4" @@ -1078,12 +1043,6 @@ dependencies = [ "memory_addr", ] -[[package]] -name = "ns16550a" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "667fbdfccff4775918606516ff6ca51b898ac0842c4bc41c960a55a9832545a6" - [[package]] name = "num-traits" version = "0.2.19" @@ -1136,6 +1095,18 @@ version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" +[[package]] +name = "percpu" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95e24fa01075d3d4235b84d3dd5a0ec0fd3040602065ea155acd0849e9067007" +dependencies = [ + "cfg-if", + "percpu_macros 0.1.7", + "spin", + "x86", +] + [[package]] name = "percpu" version = "0.2.0" @@ -1143,11 +1114,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "01e56c0c558952222967b592899f98765b48590e7bd7403bfd7075f73afc6ed6" dependencies = [ "cfg-if", - "percpu_macros", + "percpu_macros 0.2.0", "spin", "x86", ] +[[package]] +name = "percpu_macros" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "421082ebe971ea22e82137de45ab6b9500bb178b364ebba02858bf7f80ec6471" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.100", +] + [[package]] name = "percpu_macros" version = "0.2.0" @@ -1255,6 +1237,16 @@ dependencies = [ "riscv-target", ] +[[package]] +name = "riscv" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f5c1b8bf41ea746266cdee443d1d1e9125c86ce1447e1a2615abd34330d33a9" +dependencies = [ + "critical-section", + "embedded-hal", +] + [[package]] name = "riscv" version = "0.12.1" @@ -1264,7 +1256,6 @@ dependencies = [ "critical-section", "embedded-hal", "paste", - "riscv-macros", "riscv-pac", ] @@ -1273,17 +1264,6 @@ name = "riscv-decode" version = "0.2.1" source = "git+https://github.com/KuangjuX/riscv-decode.git#0e346d0ad041987023caa6f7f832185ed568630b" -[[package]] -name = "riscv-macros" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f265be5d634272320a7de94cea15c22a3bfdd4eb42eb43edc528415f066a1f25" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.100", -] - [[package]] name = "riscv-pac" version = "0.2.0" From 8acff238d9bdd528b82b388e5700e87c3dd578b4 Mon Sep 17 00:00:00 2001 From: Debin Date: Mon, 31 Mar 2025 22:44:58 +0800 Subject: [PATCH 010/219] feat(vmm): implement VGICv2 and integrate VirtIO - Add VGICv2 support for virtual interrupt controller - Integrate VirtIO drivers for block and network devices - Update VM configuration to include VGICv2 and VirtIO devices - Remove unused timer code and mock timer device --- Cargo.lock | 426 +++++++++++++++----- Cargo.toml | 27 +- Makefile | 2 +- configs/platforms/aarch64-qemu-virt-hv.toml | 4 +- configs/vms/nimbos-aarch64.toml | 26 +- src/vmm/config.rs | 24 +- src/vmm/timer.rs | 4 +- 7 files changed, 392 insertions(+), 121 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index ce0d86e7..1327b075 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -117,10 +117,9 @@ dependencies = [ [[package]] name = "arceos_api" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_inject_interrupt#ab6e5cf1eccab2dc42c35e3df139148369af942d" dependencies = [ "axalloc", - "axconfig", + "axconfig 0.1.0", "axdriver", "axerrno", "axfeat", @@ -137,7 +136,6 @@ dependencies = [ [[package]] name = "arm_gicv2" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arm_gicv2?branch=sgi#956665adcdc6b09a28078db09ad3f09ed41af80b" dependencies = [ "tock-registers 0.8.1", ] @@ -154,16 +152,34 @@ dependencies = [ [[package]] name = "arm_vcpu" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arm_vcpu.git#64a09bd5a37988233264f0e367fc246b40e35771" dependencies = [ "aarch64-cpu 9.4.0", "aarch64_sysreg", "axaddrspace", + "axdevice_base", "axerrno", - "axvcpu 0.1.0 (git+https://github.com/arceos-hypervisor/axvcpu.git)", + "axhal", + "axvcpu", + "axvisor_api", "log", "numeric-enum-macro", - "percpu 0.2.0", + "percpu", + "spin", + "tock-registers 0.8.1", +] + +[[package]] +name = "arm_vgic" +version = "0.0.0" +dependencies = [ + "arm_gicv2", + "axaddrspace", + "axdevice_base", + "axerrno", + "axhal", + "axvisor_api", + "log", + "memory_addr", "spin", "tock-registers 0.8.1", ] @@ -177,7 +193,6 @@ checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" [[package]] name = "axaddrspace" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/axaddrspace.git#2ed4d076e01f966710bd6480131abd3a9ffb8930" dependencies = [ "axerrno", "bit_field", @@ -195,7 +210,6 @@ dependencies = [ [[package]] name = "axalloc" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_inject_interrupt#ab6e5cf1eccab2dc42c35e3df139148369af942d" dependencies = [ "allocator", "axerrno", @@ -205,6 +219,13 @@ dependencies = [ "memory_addr", ] +[[package]] +name = "axconfig" +version = "0.1.0" +dependencies = [ + "axconfig-gen-macros", +] + [[package]] name = "axconfig" version = "0.1.0" @@ -238,8 +259,8 @@ dependencies = [ [[package]] name = "axdevice" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/axdevice.git?branch=inject_interrupt#5bb06f57c3c5bce235e441345be8cb444c2e11d5" dependencies = [ + "arm_vgic", "axaddrspace", "axdevice_base", "axerrno", @@ -247,12 +268,14 @@ dependencies = [ "cfg-if", "log", "memory_addr", + "virtio-blk", + "virtio-device", + "virtio-queue", ] [[package]] name = "axdevice_base" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/axdevice_crates.git?branch=inject_interrupt#9e42a6c1714b42d352d7f8c8a146024c29bf3888" dependencies = [ "axaddrspace", "axerrno", @@ -264,28 +287,28 @@ dependencies = [ [[package]] name = "axdriver" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_inject_interrupt#ab6e5cf1eccab2dc42c35e3df139148369af942d" dependencies = [ "axalloc", - "axconfig", + "axconfig 0.1.0", "axdriver_base", "axdriver_block", "axdriver_pci", "axdriver_virtio", "axhal", "cfg-if", + "crate_interface", "log", ] [[package]] name = "axdriver_base" -version = "0.1.0" -source = "git+https://github.com/arceos-org/axdriver_crates.git?tag=v0.1.0#78686a7e70c9203ba29e425929c393fbb7eca208" +version = "0.1.2" +source = "git+https://github.com/arceos-org/axdriver_crates.git?tag=v0.1.2#84eb2170f865e6fa29b78995a86f4fcdcede63df" [[package]] name = "axdriver_block" -version = "0.1.0" -source = "git+https://github.com/arceos-org/axdriver_crates.git?tag=v0.1.0#78686a7e70c9203ba29e425929c393fbb7eca208" +version = "0.1.2" +source = "git+https://github.com/arceos-org/axdriver_crates.git?tag=v0.1.2#84eb2170f865e6fa29b78995a86f4fcdcede63df" dependencies = [ "axdriver_base", "log", @@ -293,16 +316,16 @@ dependencies = [ [[package]] name = "axdriver_pci" -version = "0.1.0" -source = "git+https://github.com/arceos-org/axdriver_crates.git?tag=v0.1.0#78686a7e70c9203ba29e425929c393fbb7eca208" +version = "0.1.2" +source = "git+https://github.com/arceos-org/axdriver_crates.git?tag=v0.1.2#84eb2170f865e6fa29b78995a86f4fcdcede63df" dependencies = [ "virtio-drivers", ] [[package]] name = "axdriver_virtio" -version = "0.1.0" -source = "git+https://github.com/arceos-org/axdriver_crates.git?tag=v0.1.0#78686a7e70c9203ba29e425929c393fbb7eca208" +version = "0.1.2" +source = "git+https://github.com/arceos-org/axdriver_crates.git?tag=v0.1.2#84eb2170f865e6fa29b78995a86f4fcdcede63df" dependencies = [ "axdriver_base", "axdriver_block", @@ -321,7 +344,6 @@ dependencies = [ [[package]] name = "axfeat" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_inject_interrupt#ab6e5cf1eccab2dc42c35e3df139148369af942d" dependencies = [ "axalloc", "axdriver", @@ -338,7 +360,6 @@ dependencies = [ [[package]] name = "axfs" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_inject_interrupt#ab6e5cf1eccab2dc42c35e3df139148369af942d" dependencies = [ "axdriver", "axdriver_block", @@ -347,6 +368,7 @@ dependencies = [ "axfs_ramfs", "axfs_vfs", "axio", + "axns", "axsync", "cap_access", "cfg-if", @@ -391,13 +413,12 @@ dependencies = [ [[package]] name = "axhal" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_inject_interrupt#ab6e5cf1eccab2dc42c35e3df139148369af942d" dependencies = [ - "aarch64-cpu 9.4.0", + "aarch64-cpu 10.0.0", "arm_gicv2", "arm_pl011", "axalloc", - "axconfig", + "axconfig 0.1.0", "axlog", "bitflags 2.9.0", "cfg-if", @@ -411,16 +432,18 @@ dependencies = [ "lazyinit", "linkme", "log", + "loongArch64", "memory_addr", + "ns16550a", "page_table_entry", "page_table_multiarch", - "percpu 0.1.7", + "percpu", "raw-cpuid 11.5.0", "riscv 0.11.1", "riscv_plic", "sbi-rt", "static_assertions", - "tock-registers 0.8.1", + "tock-registers 0.9.0", "x2apic", "x86", "x86_64 0.15.2", @@ -438,20 +461,18 @@ dependencies = [ [[package]] name = "axipi" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_inject_interrupt#ab6e5cf1eccab2dc42c35e3df139148369af942d" dependencies = [ - "axconfig", + "axconfig 0.1.0", "axhal", "kspin", "lazyinit", "log", - "percpu 0.1.7", + "percpu", ] [[package]] name = "axlog" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_inject_interrupt#ab6e5cf1eccab2dc42c35e3df139148369af942d" dependencies = [ "cfg-if", "crate_interface", @@ -462,24 +483,32 @@ dependencies = [ [[package]] name = "axmm" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_inject_interrupt#ab6e5cf1eccab2dc42c35e3df139148369af942d" dependencies = [ - "axconfig", + "axconfig 0.1.0", "axerrno", "axhal", "kspin", "lazyinit", "log", "memory_addr", + "memory_set", +] + +[[package]] +name = "axns" +version = "0.1.0" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm#4ab0c7fa36f14823749a3fa147fddcb3fe10b94d" +dependencies = [ + "crate_interface", + "lazyinit", ] [[package]] name = "axruntime" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_inject_interrupt#ab6e5cf1eccab2dc42c35e3df139148369af942d" dependencies = [ "axalloc", - "axconfig", + "axconfig 0.1.0", "axdriver", "axfs", "axhal", @@ -489,14 +518,14 @@ dependencies = [ "axtask", "chrono", "crate_interface", + "ctor_bare", "kernel_guard", - "percpu 0.1.7", + "percpu", ] [[package]] name = "axstd" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_inject_interrupt#ab6e5cf1eccab2dc42c35e3df139148369af942d" dependencies = [ "arceos_api", "axerrno", @@ -508,7 +537,6 @@ dependencies = [ [[package]] name = "axsync" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_inject_interrupt#ab6e5cf1eccab2dc42c35e3df139148369af942d" dependencies = [ "axtask", "kspin", @@ -517,9 +545,8 @@ dependencies = [ [[package]] name = "axtask" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_inject_interrupt#ab6e5cf1eccab2dc42c35e3df139148369af942d" dependencies = [ - "axconfig", + "axconfig 0.1.0", "axhal", "cfg-if", "cpumask", @@ -529,7 +556,7 @@ dependencies = [ "lazyinit", "log", "memory_addr", - "percpu 0.1.7", + "percpu", "scheduler", "timer_list", ] @@ -537,23 +564,11 @@ dependencies = [ [[package]] name = "axvcpu" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/axvcpu.git?branch=inject_interrupt#3c3d44747e7aee46ba58d736f3f55ddba0103efa" dependencies = [ "axaddrspace", "axerrno", "memory_addr", - "percpu 0.1.7", -] - -[[package]] -name = "axvcpu" -version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/axvcpu.git#34fc1067c4e9dddf3e43e7d290bcb5cf4127382e" -dependencies = [ - "axaddrspace", - "axerrno", - "memory_addr", - "percpu 0.2.0", + "percpu", ] [[package]] @@ -561,12 +576,12 @@ name = "axvisor" version = "0.1.0" dependencies = [ "axaddrspace", - "axconfig", + "axconfig 0.1.0 (git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_inject_interrupt)", "axdevice", "axdevice_base", "axerrno", "axstd", - "axvcpu 0.1.0 (git+https://github.com/arceos-hypervisor/axvcpu.git?branch=inject_interrupt)", + "axvcpu", "axvisor_api", "axvm", "bitflags 2.9.0", @@ -579,7 +594,7 @@ dependencies = [ "memory_addr", "page_table_entry", "page_table_multiarch", - "percpu 0.2.0", + "percpu", "prettyplease", "quote", "spin", @@ -613,14 +628,13 @@ dependencies = [ [[package]] name = "axvm" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/axvm.git?branch=inject_interrupt#b380c96e78320618678bb2903910844d37776da1" dependencies = [ "arm_vcpu", "axaddrspace", "axdevice", "axdevice_base", "axerrno", - "axvcpu 0.1.0 (git+https://github.com/arceos-hypervisor/axvcpu.git?branch=inject_interrupt)", + "axvcpu", "axvmconfig", "cfg-if", "cpumask", @@ -628,7 +642,7 @@ dependencies = [ "memory_addr", "page_table_entry", "page_table_multiarch", - "percpu 0.1.7", + "percpu", "riscv_vcpu", "spin", "x86_vcpu", @@ -661,6 +675,26 @@ version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" +[[package]] +name = "bindgen" +version = "0.71.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f58bf3d7db68cfbac37cfc485a8d711e87e064c3d0fe0435b92f7a407f9d6b3" +dependencies = [ + "bitflags 2.9.0", + "cexpr", + "clang-sys", + "itertools", + "log", + "prettyplease", + "proc-macro2", + "quote", + "regex", + "rustc-hash", + "shlex", + "syn 2.0.100", +] + [[package]] name = "bit" version = "0.1.1" @@ -715,6 +749,15 @@ dependencies = [ "bitflags 2.9.0", ] +[[package]] +name = "cexpr" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766" +dependencies = [ + "nom", +] + [[package]] name = "cfg-if" version = "1.0.0" @@ -730,6 +773,17 @@ dependencies = [ "num-traits", ] +[[package]] +name = "clang-sys" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b023947811758c97c59bf9d1c188fd619ad4718dcaa767947df1cadb14f39f4" +dependencies = [ + "glob", + "libc", + "libloading", +] + [[package]] name = "clap" version = "4.5.34" @@ -843,6 +897,26 @@ version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "43da5946c66ffcc7745f48db692ffbb10a83bfe0afd96235c5c2a4fb23994929" +[[package]] +name = "ctor_bare" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4e5ae3c454dc1efb0e5821dc17344539849391b2de18c89596ea563f1909f93" +dependencies = [ + "ctor_bare_macros", +] + +[[package]] +name = "ctor_bare_macros" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a49d5cd78b1c748184d41407b14a58af8403c13328ff2b9f49b0a418c24e3ff" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.100", +] + [[package]] name = "dw_apb_uart" version = "0.1.0" @@ -852,6 +926,12 @@ dependencies = [ "tock-registers 0.8.1", ] +[[package]] +name = "either" +version = "1.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" + [[package]] name = "embedded-hal" version = "1.0.0" @@ -884,6 +964,12 @@ dependencies = [ "wasi", ] +[[package]] +name = "glob" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8d1add55171497b4705a648c6b583acafb01d58050a51727785f0b2c8e0a2b2" + [[package]] name = "handler_table" version = "0.1.2" @@ -934,6 +1020,15 @@ version = "1.70.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf" +[[package]] +name = "itertools" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" +dependencies = [ + "either", +] + [[package]] name = "kernel_guard" version = "0.1.2" @@ -972,6 +1067,16 @@ version = "0.2.171" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c19937216e9d3aa9956d9bb8dfc0b0c8beb6058fc4f7a4dc4d850edf86a237d6" +[[package]] +name = "libloading" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc2f4eb4bc735547cfed7c0a4922cbd04a4655978c09b54f1f7b228750664c34" +dependencies = [ + "cfg-if", + "windows-targets", +] + [[package]] name = "linked_list" version = "0.1.0" @@ -1013,6 +1118,16 @@ version = "0.4.21" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c" +[[package]] +name = "loongArch64" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd48200d465466664e4e899b204b77b5447d60b1ababdad3a2c49ae85417b552" +dependencies = [ + "bit_field", + "bitflags 1.3.2", +] + [[package]] name = "memchr" version = "2.7.4" @@ -1043,6 +1158,28 @@ dependencies = [ "memory_addr", ] +[[package]] +name = "minimal-lexical" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" + +[[package]] +name = "nom" +version = "7.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" +dependencies = [ + "memchr", + "minimal-lexical", +] + +[[package]] +name = "ns16550a" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "667fbdfccff4775918606516ff6ca51b898ac0842c4bc41c960a55a9832545a6" + [[package]] name = "num-traits" version = "0.2.19" @@ -1095,18 +1232,6 @@ version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" -[[package]] -name = "percpu" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95e24fa01075d3d4235b84d3dd5a0ec0fd3040602065ea155acd0849e9067007" -dependencies = [ - "cfg-if", - "percpu_macros 0.1.7", - "spin", - "x86", -] - [[package]] name = "percpu" version = "0.2.0" @@ -1114,22 +1239,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "01e56c0c558952222967b592899f98765b48590e7bd7403bfd7075f73afc6ed6" dependencies = [ "cfg-if", - "percpu_macros 0.2.0", + "percpu_macros", "spin", "x86", ] -[[package]] -name = "percpu_macros" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "421082ebe971ea22e82137de45ab6b9500bb178b364ebba02858bf7f80ec6471" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.100", -] - [[package]] name = "percpu_macros" version = "0.2.0" @@ -1237,16 +1351,6 @@ dependencies = [ "riscv-target", ] -[[package]] -name = "riscv" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f5c1b8bf41ea746266cdee443d1d1e9125c86ce1447e1a2615abd34330d33a9" -dependencies = [ - "critical-section", - "embedded-hal", -] - [[package]] name = "riscv" version = "0.12.1" @@ -1256,6 +1360,7 @@ dependencies = [ "critical-section", "embedded-hal", "paste", + "riscv-macros", "riscv-pac", ] @@ -1264,6 +1369,17 @@ name = "riscv-decode" version = "0.2.1" source = "git+https://github.com/KuangjuX/riscv-decode.git#0e346d0ad041987023caa6f7f832185ed568630b" +[[package]] +name = "riscv-macros" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f265be5d634272320a7de94cea15c22a3bfdd4eb42eb43edc528415f066a1f25" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.100", +] + [[package]] name = "riscv-pac" version = "0.2.0" @@ -1296,7 +1412,7 @@ source = "git+https://github.com/arceos-hypervisor/riscv_vcpu.git#15d74de5dc7d38 dependencies = [ "axaddrspace", "axerrno", - "axvcpu 0.1.0 (git+https://github.com/arceos-hypervisor/axvcpu.git)", + "axvcpu", "bit_field", "bitflags 2.9.0", "cfg-if", @@ -1325,6 +1441,12 @@ dependencies = [ "svgbobdoc", ] +[[package]] +name = "rustc-hash" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d" + [[package]] name = "rustc_version" version = "0.2.3" @@ -1445,6 +1567,12 @@ dependencies = [ "serde", ] +[[package]] +name = "shlex" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" + [[package]] name = "spin" version = "0.9.8" @@ -1501,6 +1629,26 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "thiserror" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.100", +] + [[package]] name = "timer_list" version = "0.1.0" @@ -1603,6 +1751,38 @@ version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" +[[package]] +name = "virtio-bindings" +version = "0.2.5" +source = "git+https://github.com/rust-vmm/vm-virtio.git#d38b8da47bbd50cd6282d163cbcc7e3cb17a847c" +dependencies = [ + "bindgen", +] + +[[package]] +name = "virtio-blk" +version = "0.1.0" +source = "git+https://github.com/rust-vmm/vm-virtio.git#d38b8da47bbd50cd6282d163cbcc7e3cb17a847c" +dependencies = [ + "log", + "virtio-bindings", + "virtio-device", + "virtio-queue", + "vm-memory", + "vmm-sys-util", +] + +[[package]] +name = "virtio-device" +version = "0.1.0" +source = "git+https://github.com/rust-vmm/vm-virtio.git#d38b8da47bbd50cd6282d163cbcc7e3cb17a847c" +dependencies = [ + "log", + "virtio-bindings", + "virtio-queue", + "vm-memory", +] + [[package]] name = "virtio-drivers" version = "0.7.4" @@ -1614,6 +1794,38 @@ dependencies = [ "zerocopy", ] +[[package]] +name = "virtio-queue" +version = "0.14.0" +source = "git+https://github.com/rust-vmm/vm-virtio.git#d38b8da47bbd50cd6282d163cbcc7e3cb17a847c" +dependencies = [ + "log", + "virtio-bindings", + "vm-memory", + "vmm-sys-util", +] + +[[package]] +name = "vm-memory" +version = "0.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1720e7240cdc739f935456eb77f370d7e9b2a3909204da1e2b47bef1137a013" +dependencies = [ + "libc", + "thiserror", + "winapi", +] + +[[package]] +name = "vmm-sys-util" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d1435039746e20da4f8d507a72ee1b916f7b4b05af7a91c093d2c6561934ede" +dependencies = [ + "bitflags 1.3.2", + "libc", +] + [[package]] name = "volatile" version = "0.4.6" @@ -1626,6 +1838,28 @@ version = "0.11.0+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + [[package]] name = "windows-sys" version = "0.59.0" @@ -1770,7 +2004,7 @@ dependencies = [ "axaddrspace", "axdevice_base", "axerrno", - "axvcpu 0.1.0 (git+https://github.com/arceos-hypervisor/axvcpu.git?branch=inject_interrupt)", + "axvcpu", "bit_field", "bitflags 2.9.0", "cfg-if", diff --git a/Cargo.toml b/Cargo.toml index 11788dbc..5033bf37 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,3 +1,24 @@ +[patch."https://github.com/arceos-hypervisor/arceos.git".axstd] +path = "../arceos/ulib/axstd" +[patch."https://github.com/arceos-hypervisor/arceos.git".axhal] +path = "../arceos/modules/axhal" +[patch."https://github.com/arceos-hypervisor/axvm.git".axvm] +path = "../crates/axvm" +[patch."https://github.com/arceos-hypervisor/axvcpu.git".axvcpu] +path = "../crates/axvcpu" +[patch."https://github.com/arceos-hypervisor/axaddrspace.git".axaddrspace] +path = "../crates/axaddrspace" +[patch."https://github.com/arceos-hypervisor/axdevice.git".axdevice] +path = "../crates/axdevice" +[patch."https://github.com/arceos-hypervisor/axdevice_crates.git".axdevice_base] +path = "../crates/axdevice_crates/axdevice_base" +[patch."https://github.com/arceos-hypervisor/arm_vcpu.git".arm_vcpu] +path = "../crates/arm_vcpu" +[patch."https://github.com/arceos-hypervisor/arm_gicv2.git".arm_gicv2] +path = "../crates/arm_gicv2" +[patch."https://github.com/arceos-hypervisor/arm_vgic.git".arm_vgic] +path = "../crates/arm_vgic" + [profile.release] lto = true @@ -11,6 +32,8 @@ license = "GPL-3.0-or-later OR Apache-2.0 OR MulanPubL-2.0 OR MulanPSL2" [features] fs = ["axstd/fs"] +hv = [] +irq = [] [dependencies] log = "=0.4.21" @@ -31,7 +54,7 @@ axstd = { git = "https://github.com/arceos-hypervisor/arceos.git", branch = "vmm "multitask", "smp", # "sched_rr" -]} +] } # System dependent modules provided by ArceOS-Hypervisor. axvm = { git = "https://github.com/arceos-hypervisor/axvm.git", branch = "inject_interrupt" } @@ -88,4 +111,4 @@ syn = "2.0" # "smp", # "irq" # ]} -# axconfig = { path = "../arceos-new/modules/axconfig" } \ No newline at end of file +# axconfig = { path = "../arceos-new/modules/axconfig" } diff --git a/Makefile b/Makefile index dee0c9e1..38d60386 100644 --- a/Makefile +++ b/Makefile @@ -50,7 +50,7 @@ FEATURES ?= APP_FEATURES ?= # make `FEATURES=page-alloc-64g` as the default configuration MEM_FEATURES ?= page-alloc-64g -FEATURES += $(MEM_FEATURES) +override FEATURES := $(FEATURES),$(MEM_FEATURES) # QEMU options BLK ?= y diff --git a/configs/platforms/aarch64-qemu-virt-hv.toml b/configs/platforms/aarch64-qemu-virt-hv.toml index 8e152ae7..a27b09e8 100644 --- a/configs/platforms/aarch64-qemu-virt-hv.toml +++ b/configs/platforms/aarch64-qemu-virt-hv.toml @@ -38,7 +38,7 @@ mmio-regions = [ [0x0900_0000, 0x1000], # PL011 UART1 [0x0904_0000, 0x1000], # PL011 UART2 [0x0910_0000, 0x1000], # PL031 RTC - [0x0800_0000, 0x2_0000], # GICv2 + [0x0800_0000, 0x5_0000], # GICv2 [0x0a00_0000, 0x4000], # VirtIO [0x1000_0000, 0x2eff_0000], # PCI memory ranges (ranges 1: 32-bit MMIO space) [0x40_1000_0000, 0x1000_0000], # PCI config space @@ -97,6 +97,8 @@ uart-irq = 1 # uint gicc-paddr = 0x0801_0000 # uint # GIC Distributor base address gicd-paddr = 0x0800_0000 # uint +gicv-paddr = 0x0804_0000 +gich-paddr = 0x0803_0000 # PSCI psci-method = "smc" # str diff --git a/configs/vms/nimbos-aarch64.toml b/configs/vms/nimbos-aarch64.toml index 2be467af..df811375 100644 --- a/configs/vms/nimbos-aarch64.toml +++ b/configs/vms/nimbos-aarch64.toml @@ -20,9 +20,10 @@ phys_cpu_sets = [1] entry_point = 0x4008_0000 # The location of image: "memory" | "fs". # Load from file system. -image_location = "fs" +image_location = "memory" # The file path of the kernel image. -kernel_path = "nimbos-aarch64.bin" +kernel_path = "/home/debin/Codes/arceos-umhv/nimbos/kernel/target/aarch64/release/nimbos.bin" +# kernel_path = "/home/debin/Codes/arm_tiny/build/arm_tiny.bin" # The load address of the kernel image. kernel_load_addr = 0x4008_0000 @@ -40,7 +41,7 @@ kernel_load_addr = 0x4008_0000 # Memory regions with format (`base_paddr`, `size`, `flags`, `map_type`). # For `map_type`, 0 means `MAP_ALLOC`, 1 means `MAP_IDENTICAL`. memory_regions = [ - [0x4000_0000, 0x100_0000, 0x7, 0], # Low RAM 16M 0b00111 R|W|EXECUTE + [0x4000_0000, 0x100_0000, 0x7, 0], # Low RAM 16M 0b00111 R|W|EXECUTE ] # @@ -49,16 +50,27 @@ memory_regions = [ [devices] # Emu_devices. # Name Base-Ipa Ipa_len Alloc-Irq Emu-Type EmuConfig. -emu_devices = [] +emu_devices = [ + [ + "vgicd-v2", + 0x800_0000, + 0x10_000, + 25, + 1, + [ + 2, + ], + ], # Vgicdv2 4k irq-25 EmuDeviceTGicdV2 config: vcpu_num +] # Pass-through devices. # Name Base-Ipa Base-Pa Length Alloc-Irq. passthrough_devices = [ - ["intc@8000000", 0x800_0000, 0x800_0000, 0x50_000, 0x1], - ["pl011@9000000", 0x900_0000, 0x900_0000, 0x1000, 0x1], + ["intc@8000000", 0x801_0000, 0x804_0000, 0x2_000, 0x1], + ["pl011@9000000", 0x900_0000, 0x904_0000, 0x1000, 0x1], ["pl031@9010000", 0x901_0000, 0x901_0000, 0x1000, 0x1], ["pl061@9030000", 0x903_0000, 0x903_0000, 0x1000, 0x1], # a003000.virtio_mmio virtio_mmio@a003000 # a003200.virtio_mmio virtio_mmio@a003200 ["virtio_mmio", 0xa00_0000, 0xa00_0000, 0x4000, 0x1], -] \ No newline at end of file +] diff --git a/src/vmm/config.rs b/src/vmm/config.rs index 3ebd021d..1ee7ec79 100644 --- a/src/vmm/config.rs +++ b/src/vmm/config.rs @@ -39,21 +39,21 @@ pub fn init_guest_vms() { let mock_timer = super::mock::MockTimer::new(); let mock_timer = alloc::sync::Arc::new(mock_timer); - devices.add_mmio_dev(mock_timer.clone()); + // devices.add_mmio_dev(mock_timer.clone()); - use std::os::arceos::modules::axhal; + // use std::os::arceos::modules::axhal; - fn schedule_next(action: impl Fn() + Send + Sync + 'static) { - super::timer::register_timer(axhal::time::monotonic_time_nanos() + 1_000_000_000, move |time| { - info!("Timer fired at {:?}", time); - action(); - schedule_next(action); - }); - } + // fn schedule_next(action: impl Fn() + Send + Sync + 'static) { + // super::timer::register_timer(axhal::time::monotonic_time_nanos() + 1_000_000_000, move |time| { + // info!("Timer fired at {:?}", time); + // action(); + // schedule_next(action); + // }); + // } - schedule_next(move || { - mock_timer.tick(); - }); + // schedule_next(move || { + // mock_timer.tick(); + // }); }).expect("Failed to create VM"); push_vm(vm.clone()); diff --git a/src/vmm/timer.rs b/src/vmm/timer.rs index fe46cfd5..c0be0c3b 100644 --- a/src/vmm/timer.rs +++ b/src/vmm/timer.rs @@ -77,8 +77,8 @@ pub fn cancel_timer(token: usize) { /// Check and process any pending timer events pub fn check_events() { - info!("Checking timer events..."); - info!("now is {:#?}", axhal::time::wall_time()); + // info!("Checking timer events..."); + // info!("now is {:#?}", axhal::time::wall_time()); let timer_list = unsafe { TIMER_LIST.current_ref_mut_raw() }; loop { let now = axhal::time::wall_time(); From 7da62276ec9b29eca4de597dc18c919c6e85b271 Mon Sep 17 00:00:00 2001 From: aarkegz Date: Tue, 15 Apr 2025 11:55:43 +0800 Subject: [PATCH 011/219] fixes after merge debin/timer_api --- Cargo.lock | 273 +++++++++-------------------------------------------- Cargo.toml | 27 +----- 2 files changed, 45 insertions(+), 255 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 1327b075..d8532b71 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -117,9 +117,10 @@ dependencies = [ [[package]] name = "arceos_api" version = "0.1.0" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=debin%2Ftimer_api#1341bedc09fc28c093cab5a25518bfae6387f79a" dependencies = [ "axalloc", - "axconfig 0.1.0", + "axconfig", "axdriver", "axerrno", "axfeat", @@ -136,6 +137,7 @@ dependencies = [ [[package]] name = "arm_gicv2" version = "0.1.0" +source = "git+https://github.com/arceos-hypervisor/arm_gicv2?branch=debin%2F2vm_timer#0ad077649e030b9836a5dc55a5a01b1fd0246e11" dependencies = [ "tock-registers 0.8.1", ] @@ -152,13 +154,13 @@ dependencies = [ [[package]] name = "arm_vcpu" version = "0.1.0" +source = "git+https://github.com/arceos-hypervisor/arm_vcpu.git?branch=debin%2Ftimer_api#4017f66587dc3c491987c92a8589ab86257d59ac" dependencies = [ "aarch64-cpu 9.4.0", "aarch64_sysreg", "axaddrspace", "axdevice_base", "axerrno", - "axhal", "axvcpu", "axvisor_api", "log", @@ -171,12 +173,12 @@ dependencies = [ [[package]] name = "arm_vgic" version = "0.0.0" +source = "git+https://github.com/arceos-hypervisor/arm_vgic.git?branch=debin%2Ftimer_api#e1b039b7452ea387ee408fa4020542ba7134866c" dependencies = [ "arm_gicv2", "axaddrspace", "axdevice_base", "axerrno", - "axhal", "axvisor_api", "log", "memory_addr", @@ -193,6 +195,7 @@ checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" [[package]] name = "axaddrspace" version = "0.1.0" +source = "git+https://github.com/arceos-hypervisor/axaddrspace.git#2ed4d076e01f966710bd6480131abd3a9ffb8930" dependencies = [ "axerrno", "bit_field", @@ -210,6 +213,7 @@ dependencies = [ [[package]] name = "axalloc" version = "0.1.0" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=debin%2Ftimer_api#1341bedc09fc28c093cab5a25518bfae6387f79a" dependencies = [ "allocator", "axerrno", @@ -222,14 +226,7 @@ dependencies = [ [[package]] name = "axconfig" version = "0.1.0" -dependencies = [ - "axconfig-gen-macros", -] - -[[package]] -name = "axconfig" -version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_inject_interrupt#ab6e5cf1eccab2dc42c35e3df139148369af942d" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=debin%2Ftimer_api#1341bedc09fc28c093cab5a25518bfae6387f79a" dependencies = [ "axconfig-gen-macros", ] @@ -259,6 +256,7 @@ dependencies = [ [[package]] name = "axdevice" version = "0.1.0" +source = "git+https://github.com/arceos-hypervisor/axdevice.git?branch=inject_interrupt#a568439b883322d5873c33b44dc531124ebbfd19" dependencies = [ "arm_vgic", "axaddrspace", @@ -268,14 +266,12 @@ dependencies = [ "cfg-if", "log", "memory_addr", - "virtio-blk", - "virtio-device", - "virtio-queue", ] [[package]] name = "axdevice_base" version = "0.1.0" +source = "git+https://github.com/arceos-hypervisor/axdevice_crates.git?branch=inject_interrupt#9e42a6c1714b42d352d7f8c8a146024c29bf3888" dependencies = [ "axaddrspace", "axerrno", @@ -287,9 +283,10 @@ dependencies = [ [[package]] name = "axdriver" version = "0.1.0" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=debin%2Ftimer_api#1341bedc09fc28c093cab5a25518bfae6387f79a" dependencies = [ "axalloc", - "axconfig 0.1.0", + "axconfig", "axdriver_base", "axdriver_block", "axdriver_pci", @@ -344,6 +341,7 @@ dependencies = [ [[package]] name = "axfeat" version = "0.1.0" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=debin%2Ftimer_api#1341bedc09fc28c093cab5a25518bfae6387f79a" dependencies = [ "axalloc", "axdriver", @@ -360,6 +358,7 @@ dependencies = [ [[package]] name = "axfs" version = "0.1.0" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=debin%2Ftimer_api#1341bedc09fc28c093cab5a25518bfae6387f79a" dependencies = [ "axdriver", "axdriver_block", @@ -413,12 +412,13 @@ dependencies = [ [[package]] name = "axhal" version = "0.1.0" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=debin%2Ftimer_api#1341bedc09fc28c093cab5a25518bfae6387f79a" dependencies = [ "aarch64-cpu 10.0.0", "arm_gicv2", "arm_pl011", "axalloc", - "axconfig 0.1.0", + "axconfig", "axlog", "bitflags 2.9.0", "cfg-if", @@ -439,7 +439,7 @@ dependencies = [ "page_table_multiarch", "percpu", "raw-cpuid 11.5.0", - "riscv 0.11.1", + "riscv 0.12.1", "riscv_plic", "sbi-rt", "static_assertions", @@ -461,8 +461,9 @@ dependencies = [ [[package]] name = "axipi" version = "0.1.0" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=debin%2Ftimer_api#1341bedc09fc28c093cab5a25518bfae6387f79a" dependencies = [ - "axconfig 0.1.0", + "axconfig", "axhal", "kspin", "lazyinit", @@ -473,6 +474,7 @@ dependencies = [ [[package]] name = "axlog" version = "0.1.0" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=debin%2Ftimer_api#1341bedc09fc28c093cab5a25518bfae6387f79a" dependencies = [ "cfg-if", "crate_interface", @@ -483,8 +485,10 @@ dependencies = [ [[package]] name = "axmm" version = "0.1.0" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=debin%2Ftimer_api#1341bedc09fc28c093cab5a25518bfae6387f79a" dependencies = [ - "axconfig 0.1.0", + "axalloc", + "axconfig", "axerrno", "axhal", "kspin", @@ -497,7 +501,7 @@ dependencies = [ [[package]] name = "axns" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm#4ab0c7fa36f14823749a3fa147fddcb3fe10b94d" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=debin%2Ftimer_api#1341bedc09fc28c093cab5a25518bfae6387f79a" dependencies = [ "crate_interface", "lazyinit", @@ -506,9 +510,10 @@ dependencies = [ [[package]] name = "axruntime" version = "0.1.0" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=debin%2Ftimer_api#1341bedc09fc28c093cab5a25518bfae6387f79a" dependencies = [ "axalloc", - "axconfig 0.1.0", + "axconfig", "axdriver", "axfs", "axhal", @@ -526,6 +531,7 @@ dependencies = [ [[package]] name = "axstd" version = "0.1.0" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=debin%2Ftimer_api#1341bedc09fc28c093cab5a25518bfae6387f79a" dependencies = [ "arceos_api", "axerrno", @@ -537,6 +543,7 @@ dependencies = [ [[package]] name = "axsync" version = "0.1.0" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=debin%2Ftimer_api#1341bedc09fc28c093cab5a25518bfae6387f79a" dependencies = [ "axtask", "kspin", @@ -545,8 +552,9 @@ dependencies = [ [[package]] name = "axtask" version = "0.1.0" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=debin%2Ftimer_api#1341bedc09fc28c093cab5a25518bfae6387f79a" dependencies = [ - "axconfig 0.1.0", + "axconfig", "axhal", "cfg-if", "cpumask", @@ -564,6 +572,7 @@ dependencies = [ [[package]] name = "axvcpu" version = "0.1.0" +source = "git+https://github.com/arceos-hypervisor/axvcpu.git?branch=inject_interrupt#15bd90e3f175996a703b0e45fcfce22e91aa1d74" dependencies = [ "axaddrspace", "axerrno", @@ -576,7 +585,7 @@ name = "axvisor" version = "0.1.0" dependencies = [ "axaddrspace", - "axconfig 0.1.0 (git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_inject_interrupt)", + "axconfig", "axdevice", "axdevice_base", "axerrno", @@ -606,7 +615,7 @@ dependencies = [ [[package]] name = "axvisor_api" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/axvisor_api.git?branch=inject_interrupt#a40fe2be70fd877918fbf58ab4495d8beb402aaf" +source = "git+https://github.com/arceos-hypervisor/axvisor_api.git?branch=inject_interrupt#fc96d7cca4b8b6b0feaf28f2351b71e5ae8cbb84" dependencies = [ "axaddrspace", "axvisor_api_proc", @@ -617,7 +626,7 @@ dependencies = [ [[package]] name = "axvisor_api_proc" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/axvisor_api.git?branch=inject_interrupt#a40fe2be70fd877918fbf58ab4495d8beb402aaf" +source = "git+https://github.com/arceos-hypervisor/axvisor_api.git?branch=inject_interrupt#fc96d7cca4b8b6b0feaf28f2351b71e5ae8cbb84" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -628,6 +637,7 @@ dependencies = [ [[package]] name = "axvm" version = "0.1.0" +source = "git+https://github.com/arceos-hypervisor/axvm.git?branch=inject_interrupt#605c6bd93962259021d0dfb9769eac6162edfb29" dependencies = [ "arm_vcpu", "axaddrspace", @@ -675,26 +685,6 @@ version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" -[[package]] -name = "bindgen" -version = "0.71.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f58bf3d7db68cfbac37cfc485a8d711e87e064c3d0fe0435b92f7a407f9d6b3" -dependencies = [ - "bitflags 2.9.0", - "cexpr", - "clang-sys", - "itertools", - "log", - "prettyplease", - "proc-macro2", - "quote", - "regex", - "rustc-hash", - "shlex", - "syn 2.0.100", -] - [[package]] name = "bit" version = "0.1.1" @@ -749,15 +739,6 @@ dependencies = [ "bitflags 2.9.0", ] -[[package]] -name = "cexpr" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766" -dependencies = [ - "nom", -] - [[package]] name = "cfg-if" version = "1.0.0" @@ -773,17 +754,6 @@ dependencies = [ "num-traits", ] -[[package]] -name = "clang-sys" -version = "1.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b023947811758c97c59bf9d1c188fd619ad4718dcaa767947df1cadb14f39f4" -dependencies = [ - "glob", - "libc", - "libloading", -] - [[package]] name = "clap" version = "4.5.34" @@ -926,12 +896,6 @@ dependencies = [ "tock-registers 0.8.1", ] -[[package]] -name = "either" -version = "1.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" - [[package]] name = "embedded-hal" version = "1.0.0" @@ -964,12 +928,6 @@ dependencies = [ "wasi", ] -[[package]] -name = "glob" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8d1add55171497b4705a648c6b583acafb01d58050a51727785f0b2c8e0a2b2" - [[package]] name = "handler_table" version = "0.1.2" @@ -1020,15 +978,6 @@ version = "1.70.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf" -[[package]] -name = "itertools" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" -dependencies = [ - "either", -] - [[package]] name = "kernel_guard" version = "0.1.2" @@ -1067,16 +1016,6 @@ version = "0.2.171" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c19937216e9d3aa9956d9bb8dfc0b0c8beb6058fc4f7a4dc4d850edf86a237d6" -[[package]] -name = "libloading" -version = "0.8.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc2f4eb4bc735547cfed7c0a4922cbd04a4655978c09b54f1f7b228750664c34" -dependencies = [ - "cfg-if", - "windows-targets", -] - [[package]] name = "linked_list" version = "0.1.0" @@ -1120,12 +1059,12 @@ checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c" [[package]] name = "loongArch64" -version = "0.2.4" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd48200d465466664e4e899b204b77b5447d60b1ababdad3a2c49ae85417b552" +checksum = "7c9f0d275c70310e2a9d2fc23250c5ac826a73fa828a5f256401f85c5c554283" dependencies = [ "bit_field", - "bitflags 1.3.2", + "bitflags 2.9.0", ] [[package]] @@ -1159,20 +1098,10 @@ dependencies = [ ] [[package]] -name = "minimal-lexical" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" - -[[package]] -name = "nom" -version = "7.1.3" +name = "ns16550a" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" -dependencies = [ - "memchr", - "minimal-lexical", -] +checksum = "667fbdfccff4775918606516ff6ca51b898ac0842c4bc41c960a55a9832545a6" [[package]] name = "ns16550a" @@ -1408,7 +1337,7 @@ dependencies = [ [[package]] name = "riscv_vcpu" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/riscv_vcpu.git#15d74de5dc7d38b39b6087ac290f7d1275a8e883" +source = "git+https://github.com/arceos-hypervisor/riscv_vcpu.git?branch=inject_interrupt#7614ffff7e164661d6894a71628d4634914fc93f" dependencies = [ "axaddrspace", "axerrno", @@ -1441,12 +1370,6 @@ dependencies = [ "svgbobdoc", ] -[[package]] -name = "rustc-hash" -version = "2.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d" - [[package]] name = "rustc_version" version = "0.2.3" @@ -1567,12 +1490,6 @@ dependencies = [ "serde", ] -[[package]] -name = "shlex" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" - [[package]] name = "spin" version = "0.9.8" @@ -1629,26 +1546,6 @@ dependencies = [ "unicode-ident", ] -[[package]] -name = "thiserror" -version = "1.0.69" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" -dependencies = [ - "thiserror-impl", -] - -[[package]] -name = "thiserror-impl" -version = "1.0.69" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.100", -] - [[package]] name = "timer_list" version = "0.1.0" @@ -1751,38 +1648,6 @@ version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" -[[package]] -name = "virtio-bindings" -version = "0.2.5" -source = "git+https://github.com/rust-vmm/vm-virtio.git#d38b8da47bbd50cd6282d163cbcc7e3cb17a847c" -dependencies = [ - "bindgen", -] - -[[package]] -name = "virtio-blk" -version = "0.1.0" -source = "git+https://github.com/rust-vmm/vm-virtio.git#d38b8da47bbd50cd6282d163cbcc7e3cb17a847c" -dependencies = [ - "log", - "virtio-bindings", - "virtio-device", - "virtio-queue", - "vm-memory", - "vmm-sys-util", -] - -[[package]] -name = "virtio-device" -version = "0.1.0" -source = "git+https://github.com/rust-vmm/vm-virtio.git#d38b8da47bbd50cd6282d163cbcc7e3cb17a847c" -dependencies = [ - "log", - "virtio-bindings", - "virtio-queue", - "vm-memory", -] - [[package]] name = "virtio-drivers" version = "0.7.4" @@ -1794,38 +1659,6 @@ dependencies = [ "zerocopy", ] -[[package]] -name = "virtio-queue" -version = "0.14.0" -source = "git+https://github.com/rust-vmm/vm-virtio.git#d38b8da47bbd50cd6282d163cbcc7e3cb17a847c" -dependencies = [ - "log", - "virtio-bindings", - "vm-memory", - "vmm-sys-util", -] - -[[package]] -name = "vm-memory" -version = "0.16.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1720e7240cdc739f935456eb77f370d7e9b2a3909204da1e2b47bef1137a013" -dependencies = [ - "libc", - "thiserror", - "winapi", -] - -[[package]] -name = "vmm-sys-util" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d1435039746e20da4f8d507a72ee1b916f7b4b05af7a91c093d2c6561934ede" -dependencies = [ - "bitflags 1.3.2", - "libc", -] - [[package]] name = "volatile" version = "0.4.6" @@ -1838,28 +1671,6 @@ version = "0.11.0+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" -[[package]] -name = "winapi" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" -dependencies = [ - "winapi-i686-pc-windows-gnu", - "winapi-x86_64-pc-windows-gnu", -] - -[[package]] -name = "winapi-i686-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" - -[[package]] -name = "winapi-x86_64-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" - [[package]] name = "windows-sys" version = "0.59.0" diff --git a/Cargo.toml b/Cargo.toml index 5033bf37..5450eb45 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,24 +1,3 @@ -[patch."https://github.com/arceos-hypervisor/arceos.git".axstd] -path = "../arceos/ulib/axstd" -[patch."https://github.com/arceos-hypervisor/arceos.git".axhal] -path = "../arceos/modules/axhal" -[patch."https://github.com/arceos-hypervisor/axvm.git".axvm] -path = "../crates/axvm" -[patch."https://github.com/arceos-hypervisor/axvcpu.git".axvcpu] -path = "../crates/axvcpu" -[patch."https://github.com/arceos-hypervisor/axaddrspace.git".axaddrspace] -path = "../crates/axaddrspace" -[patch."https://github.com/arceos-hypervisor/axdevice.git".axdevice] -path = "../crates/axdevice" -[patch."https://github.com/arceos-hypervisor/axdevice_crates.git".axdevice_base] -path = "../crates/axdevice_crates/axdevice_base" -[patch."https://github.com/arceos-hypervisor/arm_vcpu.git".arm_vcpu] -path = "../crates/arm_vcpu" -[patch."https://github.com/arceos-hypervisor/arm_gicv2.git".arm_gicv2] -path = "../crates/arm_gicv2" -[patch."https://github.com/arceos-hypervisor/arm_vgic.git".arm_vgic] -path = "../crates/arm_vgic" - [profile.release] lto = true @@ -44,7 +23,7 @@ lazyinit = "0.2" timer_list = "0.1.0" # System dependent modules provided by ArceOS. -axstd = { git = "https://github.com/arceos-hypervisor/arceos.git", branch = "vmm_inject_interrupt", features = [ +axstd = { git = "https://github.com/arceos-hypervisor/arceos.git", branch = "debin/timer_api", features = [ "alloc", "paging", # "fs", @@ -69,7 +48,7 @@ kernel_guard = "0.1" memory_addr = "0.3" page_table_entry = { version = "0.5", features = ["arm-el2"] } page_table_multiarch = "0.5" -percpu = { version = "0.2.0", features = ["arm-el2"] } +percpu = { version = "0.2", features = ["arm-el2"] } axdevice = { git = "https://github.com/arceos-hypervisor/axdevice.git", branch = "inject_interrupt" } axdevice_base = { git = "https://github.com/arceos-hypervisor/axdevice_crates.git", branch = "inject_interrupt" } @@ -77,7 +56,7 @@ axvisor_api = { git = "https://github.com/arceos-hypervisor/axvisor_api.git", br [build-dependencies] toml = { git = "https://github.com/arceos-hypervisor/toml.git", branch = "no_std" } -axconfig = { git = "https://github.com/arceos-hypervisor/arceos.git", branch = "vmm_inject_interrupt" } +axconfig = { git = "https://github.com/arceos-hypervisor/arceos.git", branch = "debin/timer_api" } prettyplease = "0.2" quote = "1.0" syn = "2.0" From 008c509bd59fda5dce8c3431b11f4f1a1641c3a0 Mon Sep 17 00:00:00 2001 From: aarkegz Date: Wed, 16 Apr 2025 21:37:41 +0800 Subject: [PATCH 012/219] fix Cargo.lock --- Cargo.lock | 6 ------ 1 file changed, 6 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index d8532b71..1ba14462 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1103,12 +1103,6 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "667fbdfccff4775918606516ff6ca51b898ac0842c4bc41c960a55a9832545a6" -[[package]] -name = "ns16550a" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "667fbdfccff4775918606516ff6ca51b898ac0842c4bc41c960a55a9832545a6" - [[package]] name = "num-traits" version = "0.2.19" From 844c4af2a12f293b4b50a4e6b2f5722c5c880921 Mon Sep 17 00:00:00 2001 From: aarkegz Date: Wed, 16 Apr 2025 23:54:57 +0800 Subject: [PATCH 013/219] update hal impl --- src/hal.rs | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/src/hal.rs b/src/hal.rs index 43d9e38c..0fe28d9e 100644 --- a/src/hal.rs +++ b/src/hal.rs @@ -237,3 +237,25 @@ mod vmm_api_impl { // vmm::timer::notify_timer_expired(vm_id, vcpu_id); } } + +#[axvisor_api::api_mod_impl(axvisor_api::arch)] +mod arch_api_impl { + + #[cfg(target_arch = "aarch64")] + extern fn hardware_inject_virtual_interrupt(irq: axvisor_api::vmm::InterruptVector) { + use axstd::os::arceos::modules::axhal; + axhal::irq::inject_interrupt(irq as usize); + } + + #[cfg(target_arch = "aarch64")] + extern fn read_vgicd_typer() -> u32 { + use axstd::os::arceos::modules::axhal::irq::MyVgic; + MyVgic::get_gicd().lock().get_typer() + } + + #[cfg(target_arch = "aarch64")] + extern fn read_vgicd_iidr() -> u32 { + use axstd::os::arceos::modules::axhal::irq::MyVgic; + MyVgic::get_gicd().lock().get_iidr() + } +} From 9534ac622a1609bcb3009df823d2d6e21018aba3 Mon Sep 17 00:00:00 2001 From: aarkegz Date: Thu, 17 Apr 2025 21:29:02 +0800 Subject: [PATCH 014/219] temporary workaround for aarch64 tick rate --- configs/defconfig.toml | 4 +++- configs/vms/nimbos-aarch64.toml | 4 ++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/configs/defconfig.toml b/configs/defconfig.toml index 49e07b8a..bd61d89c 100644 --- a/configs/defconfig.toml +++ b/configs/defconfig.toml @@ -3,7 +3,9 @@ task-stack-size = 0x40000 # uint # Number of timer ticks per second (Hz). A timer tick may contain several timer # interrupts. -ticks-per-sec = 100 # uint + +# WORKAROUND: To provide correct `CNTFRQ_EL0` value to the guest in aarch64. +ticks-per-sec = 1000 # uint # Number of CPUs smp = 1 # uint diff --git a/configs/vms/nimbos-aarch64.toml b/configs/vms/nimbos-aarch64.toml index df811375..3795ea84 100644 --- a/configs/vms/nimbos-aarch64.toml +++ b/configs/vms/nimbos-aarch64.toml @@ -20,9 +20,9 @@ phys_cpu_sets = [1] entry_point = 0x4008_0000 # The location of image: "memory" | "fs". # Load from file system. -image_location = "memory" +image_location = "fs" # The file path of the kernel image. -kernel_path = "/home/debin/Codes/arceos-umhv/nimbos/kernel/target/aarch64/release/nimbos.bin" +kernel_path = "nimbos-aarch64.bin" # kernel_path = "/home/debin/Codes/arm_tiny/build/arm_tiny.bin" # The load address of the kernel image. kernel_load_addr = 0x4008_0000 From 5ef1dac2adff1081e4bc771e3a7a91ca6dc372c0 Mon Sep 17 00:00:00 2001 From: aarkegz Date: Thu, 17 Apr 2025 21:29:36 +0800 Subject: [PATCH 015/219] formatted --- src/hal.rs | 39 +++++++++++++++++++++------------------ src/main.rs | 5 ++++- src/vmm/config.rs | 3 ++- src/vmm/mock.rs | 5 ++++- src/vmm/timer.rs | 6 +++++- 5 files changed, 36 insertions(+), 22 deletions(-) diff --git a/src/hal.rs b/src/hal.rs index 0fe28d9e..13d59110 100644 --- a/src/hal.rs +++ b/src/hal.rs @@ -164,19 +164,19 @@ pub(crate) fn enable_virtualization() { mod memory_api_impl { use super::*; - extern fn alloc_frame() -> Option { + extern "C" fn alloc_frame() -> Option { ::alloc_frame() } - extern fn dealloc_frame(paddr: HostPhysAddr) { + extern "C" fn dealloc_frame(paddr: HostPhysAddr) { ::dealloc_frame(paddr) } - extern fn phys_to_virt(paddr: HostPhysAddr) -> HostVirtAddr { + extern "C" fn phys_to_virt(paddr: HostPhysAddr) -> HostVirtAddr { ::phys_to_virt(paddr) } - extern fn virt_to_phys(vaddr: HostVirtAddr) -> HostPhysAddr { + extern "C" fn virt_to_phys(vaddr: HostVirtAddr) -> HostPhysAddr { ::virt_to_phys(vaddr) } } @@ -186,23 +186,26 @@ mod time_api_impl { use super::*; use axvisor_api::time::{CancelToken, Nanos, Ticks, TimeValue}; - extern fn current_ticks() -> Ticks { + extern "C" fn current_ticks() -> Ticks { axhal::time::current_ticks() } - extern fn ticks_to_nanos(ticks: Ticks) -> Nanos { + extern "C" fn ticks_to_nanos(ticks: Ticks) -> Nanos { axhal::time::ticks_to_nanos(ticks) } - extern fn nanos_to_ticks(nanos: Nanos) -> Ticks { + extern "C" fn nanos_to_ticks(nanos: Nanos) -> Ticks { axhal::time::nanos_to_ticks(nanos) } - extern fn register_timer(deadline: TimeValue, handler: alloc::boxed::Box) -> CancelToken { + extern "C" fn register_timer( + deadline: TimeValue, + handler: alloc::boxed::Box, + ) -> CancelToken { vmm::timer::register_timer(deadline.as_nanos() as u64, |t| handler(t)) } - extern fn cancel_timer(token: CancelToken) { + extern "C" fn cancel_timer(token: CancelToken) { vmm::timer::cancel_timer(token) } } @@ -212,27 +215,27 @@ mod vmm_api_impl { use super::*; use axvisor_api::vmm::{InterruptVector, VCpuId, VMId}; - extern fn current_vm_id() -> usize { + extern "C" fn current_vm_id() -> usize { ::current_vm_id() } - extern fn current_vcpu_id() -> usize { + extern "C" fn current_vcpu_id() -> usize { ::current_vcpu_id() } - extern fn vcpu_num(vm_id: VMId) -> Option { + extern "C" fn vcpu_num(vm_id: VMId) -> Option { vmm::with_wm(vm_id, |vm| vm.vcpu_num()) } - extern fn active_vcpus(vm_id: VMId) -> Option { + extern "C" fn active_vcpus(vm_id: VMId) -> Option { todo!("active_vcpus") } - extern fn inject_interrupt(vm_id: VMId, vcpu_id: VCpuId, vector: InterruptVector) { + extern "C" fn inject_interrupt(vm_id: VMId, vcpu_id: VCpuId, vector: InterruptVector) { ::inject_irq_to_vcpu(vm_id, vcpu_id, vector as usize).unwrap(); } - extern fn notify_vcpu_timer_expired(vm_id: VMId, vcpu_id: VCpuId) { + extern "C" fn notify_vcpu_timer_expired(vm_id: VMId, vcpu_id: VCpuId) { todo!("notify_vcpu_timer_expired") // vmm::timer::notify_timer_expired(vm_id, vcpu_id); } @@ -242,19 +245,19 @@ mod vmm_api_impl { mod arch_api_impl { #[cfg(target_arch = "aarch64")] - extern fn hardware_inject_virtual_interrupt(irq: axvisor_api::vmm::InterruptVector) { + extern "C" fn hardware_inject_virtual_interrupt(irq: axvisor_api::vmm::InterruptVector) { use axstd::os::arceos::modules::axhal; axhal::irq::inject_interrupt(irq as usize); } #[cfg(target_arch = "aarch64")] - extern fn read_vgicd_typer() -> u32 { + extern "C" fn read_vgicd_typer() -> u32 { use axstd::os::arceos::modules::axhal::irq::MyVgic; MyVgic::get_gicd().lock().get_typer() } #[cfg(target_arch = "aarch64")] - extern fn read_vgicd_iidr() -> u32 { + extern "C" fn read_vgicd_iidr() -> u32 { use axstd::os::arceos::modules::axhal::irq::MyVgic; MyVgic::get_gicd().lock().get_iidr() } diff --git a/src/main.rs b/src/main.rs index 7a242eba..2cb3d346 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,7 +1,10 @@ #![no_std] #![no_main] -use std::{os::arceos::modules::{axhal, axtask}, println}; +use std::{ + os::arceos::modules::{axhal, axtask}, + println, +}; #[macro_use] extern crate log; diff --git a/src/vmm/config.rs b/src/vmm/config.rs index 1ee7ec79..1841005b 100644 --- a/src/vmm/config.rs +++ b/src/vmm/config.rs @@ -54,7 +54,8 @@ pub fn init_guest_vms() { // schedule_next(move || { // mock_timer.tick(); // }); - }).expect("Failed to create VM"); + }) + .expect("Failed to create VM"); push_vm(vm.clone()); // Load corresponding images for VM. diff --git a/src/vmm/mock.rs b/src/vmm/mock.rs index 478b7d1a..315c3789 100644 --- a/src/vmm/mock.rs +++ b/src/vmm/mock.rs @@ -1,7 +1,10 @@ use core::cell::RefCell; use alloc::boxed::Box; -use axaddrspace::{device::{AccessWidth, DeviceAddrRange}, GuestPhysAddrRange}; +use axaddrspace::{ + GuestPhysAddrRange, + device::{AccessWidth, DeviceAddrRange}, +}; use axdevice_base::BaseDeviceOps; use cpumask::CpuMask; diff --git a/src/vmm/timer.rs b/src/vmm/timer.rs index c0be0c3b..36fd4ad2 100644 --- a/src/vmm/timer.rs +++ b/src/vmm/timer.rs @@ -56,7 +56,11 @@ where F: FnOnce(TimeValue) + Send + 'static, { info!("Registering timer..."); - info!("deadline is {:#?} = {:#?}", deadline, TimeValue::from_nanos(deadline as u64)); + info!( + "deadline is {:#?} = {:#?}", + deadline, + TimeValue::from_nanos(deadline as u64) + ); let timer_list = unsafe { TIMER_LIST.current_ref_mut_raw() }; let mut timers = timer_list.lock(); let token = TOKEN.fetch_add(1, Ordering::Release); From 634ef56c6e0b02cd0d7f03dc264c28663a3275c5 Mon Sep 17 00:00:00 2001 From: aarkegz Date: Wed, 28 May 2025 22:47:04 +0800 Subject: [PATCH 016/219] impl `alloc_contiguous_frames` for axvisor_api --- Cargo.lock | 4 ++-- src/hal.rs | 44 +++++++++++++++++++++++++------------------- 2 files changed, 27 insertions(+), 21 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 1ba14462..7cd3d948 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -615,7 +615,7 @@ dependencies = [ [[package]] name = "axvisor_api" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/axvisor_api.git?branch=inject_interrupt#fc96d7cca4b8b6b0feaf28f2351b71e5ae8cbb84" +source = "git+https://github.com/arceos-hypervisor/axvisor_api.git?branch=inject_interrupt#78d0d417a4844e743cd8df1ef8b6629eab0849ba" dependencies = [ "axaddrspace", "axvisor_api_proc", @@ -626,7 +626,7 @@ dependencies = [ [[package]] name = "axvisor_api_proc" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/axvisor_api.git?branch=inject_interrupt#fc96d7cca4b8b6b0feaf28f2351b71e5ae8cbb84" +source = "git+https://github.com/arceos-hypervisor/axvisor_api.git?branch=inject_interrupt#78d0d417a4844e743cd8df1ef8b6629eab0849ba" dependencies = [ "proc-macro-crate", "proc-macro2", diff --git a/src/hal.rs b/src/hal.rs index 13d59110..2c937a82 100644 --- a/src/hal.rs +++ b/src/hal.rs @@ -164,19 +164,26 @@ pub(crate) fn enable_virtualization() { mod memory_api_impl { use super::*; - extern "C" fn alloc_frame() -> Option { + extern fn alloc_frame() -> Option { ::alloc_frame() } - extern "C" fn dealloc_frame(paddr: HostPhysAddr) { + extern fn alloc_contiguous_frames(num_frames: usize, frame_align_pow2: usize) -> Option { + arceos::modules::axalloc::global_allocator() + .alloc_pages(num_frames, PAGE_SIZE_4K << frame_align_pow2) + .map(|vaddr| ::virt_to_phys(vaddr.into())) + .ok() + } + + extern fn dealloc_frame(paddr: HostPhysAddr) { ::dealloc_frame(paddr) } - extern "C" fn phys_to_virt(paddr: HostPhysAddr) -> HostVirtAddr { + extern fn phys_to_virt(paddr: HostPhysAddr) -> HostVirtAddr { ::phys_to_virt(paddr) } - extern "C" fn virt_to_phys(vaddr: HostVirtAddr) -> HostPhysAddr { + extern fn virt_to_phys(vaddr: HostVirtAddr) -> HostPhysAddr { ::virt_to_phys(vaddr) } } @@ -186,26 +193,26 @@ mod time_api_impl { use super::*; use axvisor_api::time::{CancelToken, Nanos, Ticks, TimeValue}; - extern "C" fn current_ticks() -> Ticks { + extern fn current_ticks() -> Ticks { axhal::time::current_ticks() } - extern "C" fn ticks_to_nanos(ticks: Ticks) -> Nanos { + extern fn ticks_to_nanos(ticks: Ticks) -> Nanos { axhal::time::ticks_to_nanos(ticks) } - extern "C" fn nanos_to_ticks(nanos: Nanos) -> Ticks { + extern fn nanos_to_ticks(nanos: Nanos) -> Ticks { axhal::time::nanos_to_ticks(nanos) } - extern "C" fn register_timer( + extern fn register_timer( deadline: TimeValue, handler: alloc::boxed::Box, ) -> CancelToken { vmm::timer::register_timer(deadline.as_nanos() as u64, |t| handler(t)) } - extern "C" fn cancel_timer(token: CancelToken) { + extern fn cancel_timer(token: CancelToken) { vmm::timer::cancel_timer(token) } } @@ -215,27 +222,27 @@ mod vmm_api_impl { use super::*; use axvisor_api::vmm::{InterruptVector, VCpuId, VMId}; - extern "C" fn current_vm_id() -> usize { + extern fn current_vm_id() -> usize { ::current_vm_id() } - extern "C" fn current_vcpu_id() -> usize { + extern fn current_vcpu_id() -> usize { ::current_vcpu_id() } - extern "C" fn vcpu_num(vm_id: VMId) -> Option { + extern fn vcpu_num(vm_id: VMId) -> Option { vmm::with_wm(vm_id, |vm| vm.vcpu_num()) } - extern "C" fn active_vcpus(vm_id: VMId) -> Option { + extern fn active_vcpus(vm_id: VMId) -> Option { todo!("active_vcpus") } - extern "C" fn inject_interrupt(vm_id: VMId, vcpu_id: VCpuId, vector: InterruptVector) { + extern fn inject_interrupt(vm_id: VMId, vcpu_id: VCpuId, vector: InterruptVector) { ::inject_irq_to_vcpu(vm_id, vcpu_id, vector as usize).unwrap(); } - extern "C" fn notify_vcpu_timer_expired(vm_id: VMId, vcpu_id: VCpuId) { + extern fn notify_vcpu_timer_expired(vm_id: VMId, vcpu_id: VCpuId) { todo!("notify_vcpu_timer_expired") // vmm::timer::notify_timer_expired(vm_id, vcpu_id); } @@ -243,21 +250,20 @@ mod vmm_api_impl { #[axvisor_api::api_mod_impl(axvisor_api::arch)] mod arch_api_impl { - #[cfg(target_arch = "aarch64")] - extern "C" fn hardware_inject_virtual_interrupt(irq: axvisor_api::vmm::InterruptVector) { + extern fn hardware_inject_virtual_interrupt(irq: axvisor_api::vmm::InterruptVector) { use axstd::os::arceos::modules::axhal; axhal::irq::inject_interrupt(irq as usize); } #[cfg(target_arch = "aarch64")] - extern "C" fn read_vgicd_typer() -> u32 { + extern fn read_vgicd_typer() -> u32 { use axstd::os::arceos::modules::axhal::irq::MyVgic; MyVgic::get_gicd().lock().get_typer() } #[cfg(target_arch = "aarch64")] - extern "C" fn read_vgicd_iidr() -> u32 { + extern fn read_vgicd_iidr() -> u32 { use axstd::os::arceos::modules::axhal::irq::MyVgic; MyVgic::get_gicd().lock().get_iidr() } From 0c193a26f38c38956ba861dd1f92fa2ca0f045bf Mon Sep 17 00:00:00 2001 From: aarkegz Date: Wed, 28 May 2025 22:57:13 +0800 Subject: [PATCH 017/219] impl `dealloc_contiguous_frames` for axvisor_api --- .rustfmt.toml | 1 + Cargo.lock | 4 ++-- src/hal.rs | 9 ++++++++- 3 files changed, 11 insertions(+), 3 deletions(-) create mode 100644 .rustfmt.toml diff --git a/.rustfmt.toml b/.rustfmt.toml new file mode 100644 index 00000000..89ab2b7f --- /dev/null +++ b/.rustfmt.toml @@ -0,0 +1 @@ +force_explicit_abi = false \ No newline at end of file diff --git a/Cargo.lock b/Cargo.lock index 7cd3d948..77563749 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -615,7 +615,7 @@ dependencies = [ [[package]] name = "axvisor_api" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/axvisor_api.git?branch=inject_interrupt#78d0d417a4844e743cd8df1ef8b6629eab0849ba" +source = "git+https://github.com/arceos-hypervisor/axvisor_api.git?branch=inject_interrupt#7782e173650a761a326bd1aeb5c3ed468d86e6db" dependencies = [ "axaddrspace", "axvisor_api_proc", @@ -626,7 +626,7 @@ dependencies = [ [[package]] name = "axvisor_api_proc" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/axvisor_api.git?branch=inject_interrupt#78d0d417a4844e743cd8df1ef8b6629eab0849ba" +source = "git+https://github.com/arceos-hypervisor/axvisor_api.git?branch=inject_interrupt#7782e173650a761a326bd1aeb5c3ed468d86e6db" dependencies = [ "proc-macro-crate", "proc-macro2", diff --git a/src/hal.rs b/src/hal.rs index 2c937a82..ece30cbf 100644 --- a/src/hal.rs +++ b/src/hal.rs @@ -168,7 +168,10 @@ mod memory_api_impl { ::alloc_frame() } - extern fn alloc_contiguous_frames(num_frames: usize, frame_align_pow2: usize) -> Option { + extern fn alloc_contiguous_frames( + num_frames: usize, + frame_align_pow2: usize, + ) -> Option { arceos::modules::axalloc::global_allocator() .alloc_pages(num_frames, PAGE_SIZE_4K << frame_align_pow2) .map(|vaddr| ::virt_to_phys(vaddr.into())) @@ -179,6 +182,10 @@ mod memory_api_impl { ::dealloc_frame(paddr) } + extern fn dealloc_contiguous_frames(paddr: HostPhysAddr, num_frames: usize) { + arceos::modules::axalloc::global_allocator().dealloc_pages(paddr.as_usize(), num_frames); + } + extern fn phys_to_virt(paddr: HostPhysAddr) -> HostVirtAddr { ::phys_to_virt(paddr) } From f70ce1b41f695c2c8fba62eb04379d0a91a0d59b Mon Sep 17 00:00:00 2001 From: hky1999 <976929993@qq.com> Date: Wed, 28 May 2025 23:28:48 +0800 Subject: [PATCH 018/219] [wip] improve rk3588 scripts, wip in dtb parsing --- Boot-on-rk3588.md | 29 + Makefile | 5 +- configs/vms/aio-3588jd4.dts | 13131 ++++++++++++++++++++ configs/vms/linux-rk3588-aarch64-smp.toml | 8 +- scripts/make/rk3588.mk | 19 +- 5 files changed, 13179 insertions(+), 13 deletions(-) create mode 100644 Boot-on-rk3588.md create mode 100644 configs/vms/aio-3588jd4.dts diff --git a/Boot-on-rk3588.md b/Boot-on-rk3588.md new file mode 100644 index 00000000..881b5566 --- /dev/null +++ b/Boot-on-rk3588.md @@ -0,0 +1,29 @@ +## Compile AxVisor + +* compile + +```bash +make ARCH=aarch64 PLATFORM=configs/platforms/aarch64-rk3588j-hv.toml defconfig +make ARCH=aarch64 PLATFORM=configs/platforms/aarch64-rk3588j-hv.toml image +make ARCH=aarch64 PLATFORM=configs/platforms/aarch64-rk3588j-hv.toml VM_CONFIGS=configs/vms/linux-rk3588-aarch64-smp.toml image +``` + +* copy to tftp dir + +```bash +cp axvisor_aarch64-rk3588j.img /srv/tftp/axvisor +``` + +## rk3588 console + +上电,在 uboot 中 ctrl+C + +```bash +# 这是 tftp 服务器所在的主机 ip +setenv serverip 192.168.50.18 +# 这是 rk3588 所在设备的 ip (Firefly Linux 自己 DHCP 拿到的地址) +setenv ipaddr 192.168.50.8 +# 使用 tftp 加载镜像到指定内存地址并 boot +tftp 0x00480000 ${serverip}:axvisor;tftp 0x10000000 ${serverip}:rk3588_dtb.bin;bootm 0x00480000 - 0x10000000; +``` + diff --git a/Makefile b/Makefile index daec2baa..3dd0e426 100644 --- a/Makefile +++ b/Makefile @@ -155,7 +155,7 @@ ifeq ($(PLAT_NAME), aarch64-raspi4) include scripts/make/raspi4.mk else ifeq ($(PLAT_NAME), aarch64-bsta1000b-virt-hv) include scripts/make/bsta1000b-fada.mk -else ifeq ($(PLAT_NAME), aarch64-rk3588j-hv) +else ifeq ($(PLAT_NAME), aarch64-rk3588j) include scripts/make/rk3588.mk endif @@ -184,6 +184,9 @@ gdb: -ex 'b rust_entry' \ -ex 'disp /16i $$pc' +# Temporarily used for building image for the `aarch64-rk3588j` platform. +image: build_image + clippy: oldconfig ifeq ($(origin ARCH), command line) $(call cargo_clippy,--target $(TARGET)) diff --git a/configs/vms/aio-3588jd4.dts b/configs/vms/aio-3588jd4.dts new file mode 100644 index 00000000..e4289218 --- /dev/null +++ b/configs/vms/aio-3588jd4.dts @@ -0,0 +1,13131 @@ +/dts-v1/; + +/ { + compatible = "rockchip,aio-3588jd4\0rockchip,rk3588"; + interrupt-parent = <0x01>; + #address-cells = <0x02>; + #size-cells = <0x02>; + model = "Firefly AIO-3588JD4"; + + aliases { + csi2dcphy0 = "/csi2-dcphy0"; + csi2dcphy1 = "/csi2-dcphy1"; + csi2dphy0 = "/csi2-dphy0"; + csi2dphy1 = "/csi2-dphy1"; + csi2dphy2 = "/csi2-dphy2"; + csi2dphy3 = "/csi2-dphy3"; + csi2dphy4 = "/csi2-dphy4"; + csi2dphy5 = "/csi2-dphy5"; + dsi0 = "/dsi@fde20000"; + dsi1 = "/dsi@fde30000"; + ethernet1 = "/ethernet@fe1c0000"; + gpio0 = "/pinctrl/gpio@fd8a0000"; + gpio1 = "/pinctrl/gpio@fec20000"; + gpio2 = "/pinctrl/gpio@fec30000"; + gpio3 = "/pinctrl/gpio@fec40000"; + gpio4 = "/pinctrl/gpio@fec50000"; + i2c0 = "/i2c@fd880000"; + i2c1 = "/i2c@fea90000"; + i2c2 = "/i2c@feaa0000"; + i2c3 = "/i2c@feab0000"; + i2c4 = "/i2c@feac0000"; + i2c5 = "/i2c@fead0000"; + i2c6 = "/i2c@fec80000"; + i2c7 = "/i2c@fec90000"; + i2c8 = "/i2c@feca0000"; + rkcif_mipi_lvds0 = "/rkcif-mipi-lvds"; + rkcif_mipi_lvds1 = "/rkcif-mipi-lvds1"; + rkcif_mipi_lvds2 = "/rkcif-mipi-lvds2"; + rkcif_mipi_lvds3 = "/rkcif-mipi-lvds3"; + rkvdec0 = "/rkvdec-core@fdc38000"; + rkvdec1 = "/rkvdec-core@fdc48000"; + rkvenc0 = "/rkvenc-core@fdbd0000"; + rkvenc1 = "/rkvenc-core@fdbe0000"; + jpege0 = "/jpege-core@fdba0000"; + jpege1 = "/jpege-core@fdba4000"; + jpege2 = "/jpege-core@fdba8000"; + jpege3 = "/jpege-core@fdbac000"; + serial0 = "/serial@fd890000"; + serial1 = "/serial@feb40000"; + serial2 = "/serial@feb50000"; + serial3 = "/serial@feb60000"; + serial4 = "/serial@feb70000"; + serial5 = "/serial@feb80000"; + serial6 = "/serial@feb90000"; + serial7 = "/serial@feba0000"; + serial8 = "/serial@febb0000"; + serial9 = "/serial@febc0000"; + spi0 = "/spi@feb00000"; + spi1 = "/spi@feb10000"; + spi2 = "/spi@feb20000"; + spi3 = "/spi@feb30000"; + spi4 = "/spi@fecb0000"; + spi5 = "/spi@fe2b0000"; + hdcp0 = "/hdcp@fde40000"; + hdcp1 = "/hdcp@fde70000"; + pwm0 = "/pwm@fd8b0000"; + pwm1 = "/pwm@fd8b0010"; + pwm2 = "/pwm@fd8b0020"; + pwm3 = "/pwm@fd8b0030"; + pwm4 = "/pwm@febd0000"; + pwm5 = "/pwm@febd0010"; + pwm6 = "/pwm@febd0020"; + pwm7 = "/pwm@febd0030"; + pwm8 = "/pwm@febe0000"; + pwm9 = "/pwm@febe0010"; + pwm10 = "/pwm@febe0020"; + pwm11 = "/pwm@febe0030"; + pwm12 = "/pwm@febf0000"; + pwm13 = "/pwm@febf0010"; + pwm14 = "/pwm@febf0020"; + pwm15 = "/pwm@febf0030"; + dp0 = "/dp@fde50000"; + dp1 = "/dp@fde60000"; + edp0 = "/edp@fdec0000"; + edp1 = "/edp@fded0000"; + ethernet0 = "/ethernet@fe1b0000"; + hdptx0 = "/phy@fed60000"; + hdptx1 = "/phy@fed70000"; + hdptxhdmi0 = "/hdmiphy@fed60000"; + hdptxhdmi1 = "/hdmiphy@fed70000"; + hdmi0 = "/hdmi@fde80000"; + hdmi1 = "/hdmi@fdea0000"; + hdmirx0 = "/hdmirx-controller@fdee0000"; + rkcif_mipi_lvds4 = "/rkcif-mipi-lvds4"; + rkcif_mipi_lvds5 = "/rkcif-mipi-lvds5"; + usbdp0 = "/phy@fed80000"; + usbdp1 = "/phy@fed90000"; + mmc0 = "/mmc@fe2e0000"; + mmc1 = "/mmc@fe2c0000"; + mmc2 = "/mmc@fe2d0000"; + }; + + clocks { + compatible = "simple-bus"; + #address-cells = <0x02>; + #size-cells = <0x02>; + ranges; + + spll { + compatible = "fixed-clock"; + #clock-cells = <0x00>; + clock-frequency = <0x29d7ab80>; + clock-output-names = "spll"; + phandle = <0x1f1>; + }; + + xin32k { + compatible = "fixed-clock"; + #clock-cells = <0x00>; + clock-frequency = <0x8000>; + clock-output-names = "xin32k"; + phandle = <0x1f2>; + }; + + xin24m { + compatible = "fixed-clock"; + #clock-cells = <0x00>; + clock-frequency = <0x16e3600>; + clock-output-names = "xin24m"; + phandle = <0x1f3>; + }; + + hclk_vo1@fd7c08ec { + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c08ec 0x00 0x10>; + clock-names = "link"; + clocks = <0x02 0x264>; + #power-domain-cells = <0x01>; + #clock-cells = <0x00>; + phandle = <0x05>; + }; + + aclk_vdpu_low_pre@fd7c08b0 { + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c08b0 0x00 0x10>; + clock-names = "link"; + clocks = <0x02 0x1bc>; + #power-domain-cells = <0x01>; + #clock-cells = <0x00>; + phandle = <0x1f4>; + }; + + hclk_vo0@fd7c08dc { + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c08dc 0x00 0x10>; + clock-names = "link"; + clocks = <0x02 0x26d>; + #power-domain-cells = <0x01>; + #clock-cells = <0x00>; + phandle = <0x04>; + }; + + hclk_usb@fd7c08a8 { + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c08a8 0x00 0x10>; + clock-names = "link"; + clocks = <0x02 0x264>; + #power-domain-cells = <0x01>; + #clock-cells = <0x00>; + phandle = <0x1f5>; + }; + + hclk_nvm@fd7c087c { + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c087c 0x00 0x10>; + clock-names = "link"; + clocks = <0x02 0x141>; + #power-domain-cells = <0x01>; + #clock-cells = <0x00>; + phandle = <0x03>; + }; + + aclk_usb@fd7c08a8 { + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c08a8 0x00 0x10>; + clock-names = "link"; + clocks = <0x02 0x263>; + #power-domain-cells = <0x01>; + #clock-cells = <0x00>; + phandle = <0x6a>; + }; + + hclk_isp1_pre@fd7c0868 { + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c0868 0x00 0x10>; + clock-names = "link"; + clocks = <0x02 0x1e1>; + #power-domain-cells = <0x01>; + #clock-cells = <0x00>; + phandle = <0x1f6>; + }; + + aclk_isp1_pre@fd7c0868 { + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c0868 0x00 0x10>; + clock-names = "link"; + clocks = <0x02 0x1e0>; + #power-domain-cells = <0x01>; + #clock-cells = <0x00>; + phandle = <0x1f7>; + }; + + aclk_rkvdec0_pre@fd7c08a0 { + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c08a0 0x00 0x10>; + clock-names = "link"; + clocks = <0x02 0x1bc>; + #power-domain-cells = <0x01>; + #clock-cells = <0x00>; + phandle = <0x1f8>; + }; + + hclk_rkvdec0_pre@fd7c08a0 { + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c08a0 0x00 0x10>; + clock-names = "link"; + clocks = <0x02 0x1be>; + #power-domain-cells = <0x01>; + #clock-cells = <0x00>; + phandle = <0x1f9>; + }; + + aclk_rkvdec1_pre@fd7c08a4 { + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c08a4 0x00 0x10>; + clock-names = "link"; + clocks = <0x02 0x1bc>; + #power-domain-cells = <0x01>; + #clock-cells = <0x00>; + phandle = <0x1fa>; + }; + + hclk_rkvdec1_pre@fd7c08a4 { + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c08a4 0x00 0x10>; + clock-names = "link"; + clocks = <0x02 0x1be>; + #power-domain-cells = <0x01>; + #clock-cells = <0x00>; + phandle = <0x1fb>; + }; + + aclk_jpeg_decoder_pre@fd7c08b0 { + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c08b0 0x00 0x10>; + clock-names = "link"; + clocks = <0x02 0x1bc>; + #power-domain-cells = <0x01>; + #clock-cells = <0x00>; + phandle = <0x1fc>; + }; + + aclk_rkvenc1_pre@fd7c08c0 { + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c08c0 0x00 0x10>; + clock-names = "link"; + clocks = <0x02 0x1c5>; + #power-domain-cells = <0x01>; + #clock-cells = <0x00>; + phandle = <0x1fd>; + }; + + hclk_rkvenc1_pre@fd7c08c0 { + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c08c0 0x00 0x10>; + clock-names = "link"; + clocks = <0x02 0x1c4>; + #power-domain-cells = <0x01>; + #clock-cells = <0x00>; + phandle = <0x1fe>; + }; + + aclk_hdcp0_pre@fd7c08dc { + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c08dc 0x00 0x10>; + clock-names = "link"; + clocks = <0x02 0x26c>; + #power-domain-cells = <0x01>; + #clock-cells = <0x00>; + phandle = <0x1ff>; + }; + + aclk_hdcp1_pre@fd7c08ec { + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c08ec 0x00 0x10>; + clock-names = "link"; + clocks = <0x02 0x263>; + #power-domain-cells = <0x01>; + #clock-cells = <0x00>; + phandle = <0x200>; + }; + + pclk_av1_pre@fd7c0910 { + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c0910 0x00 0x10>; + clock-names = "link"; + clocks = <0x02 0x1be>; + #power-domain-cells = <0x01>; + #clock-cells = <0x00>; + phandle = <0x201>; + }; + + aclk_av1_pre@fd7c0910 { + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c0910 0x00 0x10>; + clock-names = "link"; + clocks = <0x02 0x1bc>; + #power-domain-cells = <0x01>; + #clock-cells = <0x00>; + phandle = <0x202>; + }; + + hclk_sdio_pre@fd7c092c { + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c092c 0x00 0x10>; + clock-names = "link"; + clocks = <0x03>; + #power-domain-cells = <0x01>; + #clock-cells = <0x00>; + phandle = <0x203>; + }; + + pclk_vo0_grf@fd7c08dc { + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c08dc 0x00 0x04>; + clocks = <0x04>; + clock-names = "link"; + #clock-cells = <0x00>; + phandle = <0x72>; + }; + + pclk_vo1_grf@fd7c08ec { + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c08ec 0x00 0x04>; + clocks = <0x05>; + clock-names = "link"; + #clock-cells = <0x00>; + phandle = <0x73>; + }; + + mclkin-i2s0 { + compatible = "fixed-clock"; + #clock-cells = <0x00>; + clock-frequency = <0x00>; + clock-output-names = "i2s0_mclkin"; + phandle = <0x204>; + }; + + mclkin-i2s1 { + compatible = "fixed-clock"; + #clock-cells = <0x00>; + clock-frequency = <0x00>; + clock-output-names = "i2s1_mclkin"; + phandle = <0x205>; + }; + + mclkin-i2s2 { + compatible = "fixed-clock"; + #clock-cells = <0x00>; + clock-frequency = <0x00>; + clock-output-names = "i2s2_mclkin"; + phandle = <0x206>; + }; + + mclkin-i2s3 { + compatible = "fixed-clock"; + #clock-cells = <0x00>; + clock-frequency = <0x00>; + clock-output-names = "i2s3_mclkin"; + phandle = <0x207>; + }; + + mclkout-i2s0@fd58c318 { + compatible = "rockchip,clk-out"; + reg = <0x00 0xfd58c318 0x00 0x04>; + clocks = <0x02 0x39>; + #clock-cells = <0x00>; + clock-output-names = "i2s0_mclkout_to_io"; + rockchip,bit-shift = <0x00>; + rockchip,bit-set-to-disable; + rockchip,clk-ignore-unused; + phandle = <0x179>; + }; + + mclkout-i2s1@fd58c318 { + compatible = "rockchip,clk-out"; + reg = <0x00 0xfd58c318 0x00 0x04>; + clocks = <0x02 0x291>; + #clock-cells = <0x00>; + clock-output-names = "i2s1_mclkout_to_io"; + rockchip,bit-shift = <0x01>; + rockchip,bit-set-to-disable; + rockchip,clk-ignore-unused; + phandle = <0x208>; + }; + + mclkout-i2s1@fd58a000 { + compatible = "rockchip,clk-out"; + reg = <0x00 0xfd58a000 0x00 0x04>; + clocks = <0x02 0x291>; + #clock-cells = <0x00>; + clock-output-names = "i2s1m1_mclkout_to_io"; + rockchip,bit-shift = <0x06>; + rockchip,clk-ignore-unused; + phandle = <0x209>; + }; + + mclkout-i2s2@fd58c318 { + compatible = "rockchip,clk-out"; + reg = <0x00 0xfd58c318 0x00 0x04>; + clocks = <0x02 0x28>; + #clock-cells = <0x00>; + clock-output-names = "i2s2_mclkout_to_io"; + rockchip,bit-shift = <0x02>; + rockchip,bit-set-to-disable; + rockchip,clk-ignore-unused; + phandle = <0x20a>; + }; + + mclkout-i2s3@fd58c318 { + compatible = "rockchip,clk-out"; + reg = <0x00 0xfd58c318 0x00 0x04>; + clocks = <0x02 0x2e>; + #clock-cells = <0x00>; + clock-output-names = "i2s3_mclkout_to_io"; + rockchip,bit-shift = <0x07>; + rockchip,bit-set-to-disable; + rockchip,clk-ignore-unused; + phandle = <0x20b>; + }; + }; + + cpus { + #address-cells = <0x01>; + #size-cells = <0x00>; + + cpu-map { + + cluster0 { + + core0 { + cpu = <0x06>; + }; + + core1 { + cpu = <0x07>; + }; + + core2 { + cpu = <0x08>; + }; + + core3 { + cpu = <0x09>; + }; + }; + + cluster1 { + + core0 { + cpu = <0x0a>; + }; + + core1 { + cpu = <0x0b>; + }; + }; + + cluster2 { + + core0 { + cpu = <0x0c>; + }; + + core1 { + cpu = <0x0d>; + }; + }; + }; + + cpu@0 { + device_type = "cpu"; + compatible = "arm,cortex-a55"; + reg = <0x00>; + enable-method = "psci"; + capacity-dmips-mhz = <0x212>; + clocks = <0x0e 0x00>; + operating-points-v2 = <0x0f>; + cpu-idle-states = <0x10>; + i-cache-size = <0x8000>; + i-cache-line-size = <0x40>; + i-cache-sets = <0x80>; + d-cache-size = <0x8000>; + d-cache-line-size = <0x40>; + d-cache-sets = <0x80>; + next-level-cache = <0x11>; + #cooling-cells = <0x02>; + dynamic-power-coefficient = <0x64>; + cpu-supply = <0x12>; + mem-supply = <0x12>; + phandle = <0x06>; + }; + + cpu@100 { + device_type = "cpu"; + compatible = "arm,cortex-a55"; + reg = <0x100>; + enable-method = "psci"; + capacity-dmips-mhz = <0x212>; + clocks = <0x0e 0x00>; + operating-points-v2 = <0x0f>; + cpu-idle-states = <0x10>; + i-cache-size = <0x8000>; + i-cache-line-size = <0x40>; + i-cache-sets = <0x80>; + d-cache-size = <0x8000>; + d-cache-line-size = <0x40>; + d-cache-sets = <0x80>; + next-level-cache = <0x13>; + phandle = <0x07>; + }; + + cpu@200 { + device_type = "cpu"; + compatible = "arm,cortex-a55"; + reg = <0x200>; + enable-method = "psci"; + capacity-dmips-mhz = <0x212>; + clocks = <0x0e 0x00>; + operating-points-v2 = <0x0f>; + cpu-idle-states = <0x10>; + i-cache-size = <0x8000>; + i-cache-line-size = <0x40>; + i-cache-sets = <0x80>; + d-cache-size = <0x8000>; + d-cache-line-size = <0x40>; + d-cache-sets = <0x80>; + next-level-cache = <0x14>; + phandle = <0x08>; + }; + + cpu@300 { + device_type = "cpu"; + compatible = "arm,cortex-a55"; + reg = <0x300>; + enable-method = "psci"; + capacity-dmips-mhz = <0x212>; + clocks = <0x0e 0x00>; + operating-points-v2 = <0x0f>; + cpu-idle-states = <0x10>; + i-cache-size = <0x8000>; + i-cache-line-size = <0x40>; + i-cache-sets = <0x80>; + d-cache-size = <0x8000>; + d-cache-line-size = <0x40>; + d-cache-sets = <0x80>; + next-level-cache = <0x15>; + phandle = <0x09>; + }; + + cpu@400 { + device_type = "cpu"; + compatible = "arm,cortex-a76"; + reg = <0x400>; + enable-method = "psci"; + capacity-dmips-mhz = <0x400>; + clocks = <0x0e 0x02>; + operating-points-v2 = <0x16>; + cpu-idle-states = <0x10>; + i-cache-size = <0x10000>; + i-cache-line-size = <0x40>; + i-cache-sets = <0x100>; + d-cache-size = <0x10000>; + d-cache-line-size = <0x40>; + d-cache-sets = <0x100>; + next-level-cache = <0x17>; + #cooling-cells = <0x02>; + dynamic-power-coefficient = <0x12c>; + cpu-supply = <0x18>; + mem-supply = <0x18>; + phandle = <0x0a>; + }; + + cpu@500 { + device_type = "cpu"; + compatible = "arm,cortex-a76"; + reg = <0x500>; + enable-method = "psci"; + capacity-dmips-mhz = <0x400>; + clocks = <0x0e 0x02>; + operating-points-v2 = <0x16>; + cpu-idle-states = <0x10>; + i-cache-size = <0x10000>; + i-cache-line-size = <0x40>; + i-cache-sets = <0x100>; + d-cache-size = <0x10000>; + d-cache-line-size = <0x40>; + d-cache-sets = <0x100>; + next-level-cache = <0x19>; + phandle = <0x0b>; + }; + + cpu@600 { + device_type = "cpu"; + compatible = "arm,cortex-a76"; + reg = <0x600>; + enable-method = "psci"; + capacity-dmips-mhz = <0x400>; + clocks = <0x0e 0x03>; + operating-points-v2 = <0x1a>; + cpu-idle-states = <0x10>; + i-cache-size = <0x10000>; + i-cache-line-size = <0x40>; + i-cache-sets = <0x100>; + d-cache-size = <0x10000>; + d-cache-line-size = <0x40>; + d-cache-sets = <0x100>; + next-level-cache = <0x1b>; + #cooling-cells = <0x02>; + dynamic-power-coefficient = <0x12c>; + cpu-supply = <0x1c>; + mem-supply = <0x1c>; + phandle = <0x0c>; + }; + + cpu@700 { + device_type = "cpu"; + compatible = "arm,cortex-a76"; + reg = <0x700>; + enable-method = "psci"; + capacity-dmips-mhz = <0x400>; + clocks = <0x0e 0x03>; + operating-points-v2 = <0x1a>; + cpu-idle-states = <0x10>; + i-cache-size = <0x10000>; + i-cache-line-size = <0x40>; + i-cache-sets = <0x100>; + d-cache-size = <0x10000>; + d-cache-line-size = <0x40>; + d-cache-sets = <0x100>; + next-level-cache = <0x1d>; + phandle = <0x0d>; + }; + + idle-states { + entry-method = "psci"; + + cpu-sleep { + compatible = "arm,idle-state"; + local-timer-stop; + arm,psci-suspend-param = <0x10000>; + entry-latency-us = <0x64>; + exit-latency-us = <0x78>; + min-residency-us = <0x3e8>; + phandle = <0x10>; + }; + }; + + l2-cache-l0 { + compatible = "cache"; + cache-size = <0x20000>; + cache-line-size = <0x40>; + cache-sets = <0x200>; + next-level-cache = <0x1e>; + phandle = <0x11>; + }; + + l2-cache-l1 { + compatible = "cache"; + cache-size = <0x20000>; + cache-line-size = <0x40>; + cache-sets = <0x200>; + next-level-cache = <0x1e>; + phandle = <0x13>; + }; + + l2-cache-l2 { + compatible = "cache"; + cache-size = <0x20000>; + cache-line-size = <0x40>; + cache-sets = <0x200>; + next-level-cache = <0x1e>; + phandle = <0x14>; + }; + + l2-cache-l3 { + compatible = "cache"; + cache-size = <0x20000>; + cache-line-size = <0x40>; + cache-sets = <0x200>; + next-level-cache = <0x1e>; + phandle = <0x15>; + }; + + l2-cache-b0 { + compatible = "cache"; + cache-size = <0x80000>; + cache-line-size = <0x40>; + cache-sets = <0x400>; + next-level-cache = <0x1e>; + phandle = <0x17>; + }; + + l2-cache-b1 { + compatible = "cache"; + cache-size = <0x80000>; + cache-line-size = <0x40>; + cache-sets = <0x400>; + next-level-cache = <0x1e>; + phandle = <0x19>; + }; + + l2-cache-b2 { + compatible = "cache"; + cache-size = <0x80000>; + cache-line-size = <0x40>; + cache-sets = <0x400>; + next-level-cache = <0x1e>; + phandle = <0x1b>; + }; + + l2-cache-b3 { + compatible = "cache"; + cache-size = <0x80000>; + cache-line-size = <0x40>; + cache-sets = <0x400>; + next-level-cache = <0x1e>; + phandle = <0x1d>; + }; + + l3-cache { + compatible = "cache"; + cache-size = <0x300000>; + cache-line-size = <0x40>; + cache-sets = <0x1000>; + phandle = <0x1e>; + }; + }; + + cluster0-opp-table { + compatible = "operating-points-v2"; + opp-shared; + nvmem-cells = <0x1f 0x20 0x21>; + nvmem-cell-names = "leakage\0opp-info\0specification_serial_number"; + rockchip,supported-hw; + rockchip,opp-shared-dsu; + rockchip,pvtm-hw = <0x06>; + rockchip,pvtm-voltage-sel-hw = <0x00 0x555 0x00 0x556 0x56b 0x01 0x56c 0x581 0x02 0x582 0x597 0x03 0x598 0x5ad 0x04 0x5ae 0x5c3 0x05 0x5c4 0x270f 0x06>; + rockchip,pvtm-voltage-sel = <0x00 0x582 0x00 0x583 0x59a 0x01 0x59b 0x5b2 0x02 0x5b3 0x5ca 0x03 0x5cb 0x5e2 0x04 0x5e3 0x5fa 0x05 0x5fb 0x270f 0x06>; + rockchip,pvtm-pvtpll; + rockchip,pvtm-offset = <0x64>; + rockchip,pvtm-sample-time = <0x44c>; + rockchip,pvtm-freq = <0x159b40>; + rockchip,pvtm-volt = <0xb71b0>; + rockchip,pvtm-ref-temp = <0x19>; + rockchip,pvtm-temp-prop = <0xf4 0xf4>; + rockchip,pvtm-thermal-zone = "soc-thermal"; + rockchip,grf = <0x22>; + rockchip,dsu-grf = <0x23>; + volt-mem-read-margin = <0xd0bd8 0x01 0xbac48 0x02 0xa4cb8 0x03 0x78d98 0x04>; + low-volt-mem-read-margin = <0x04>; + intermediate-threshold-freq = <0xf6180>; + rockchip,reboot-freq = <0x159b40>; + rockchip,temp-hysteresis = <0x1388>; + rockchip,low-temp = <0x2710>; + rockchip,low-temp-min-volt = <0xb71b0>; + rockchip,high-temp = <0x14c08>; + rockchip,high-temp-max-freq = <0x188940>; + phandle = <0x0f>; + + opp-408000000 { + opp-supported-hw = <0xf9 0xffff>; + opp-hz = <0x00 0x18519600>; + opp-microvolt = <0xa4cb8 0xa4cb8 0xe7ef0 0xa4cb8 0xa4cb8 0xe7ef0>; + clock-latency-ns = <0x9c40>; + }; + + opp-600000000 { + opp-supported-hw = <0xf9 0xffff>; + opp-hz = <0x00 0x23c34600>; + opp-microvolt = <0xa4cb8 0xa4cb8 0xe7ef0 0xa4cb8 0xa4cb8 0xe7ef0>; + clock-latency-ns = <0x9c40>; + }; + + opp-816000000 { + opp-supported-hw = <0xf9 0xffff>; + opp-hz = <0x00 0x30a32c00>; + opp-microvolt = <0xa4cb8 0xa4cb8 0xe7ef0 0xa4cb8 0xa4cb8 0xe7ef0>; + clock-latency-ns = <0x9c40>; + }; + + opp-1008000000 { + opp-supported-hw = <0xf9 0xffff>; + opp-hz = <0x00 0x3c14dc00>; + opp-microvolt = <0xa4cb8 0xa4cb8 0xe7ef0 0xa4cb8 0xa4cb8 0xe7ef0>; + clock-latency-ns = <0x9c40>; + }; + + opp-1200000000 { + opp-supported-hw = <0xf9 0xffff>; + opp-hz = <0x00 0x47868c00>; + opp-microvolt = <0xadf34 0xadf34 0xe7ef0 0xadf34 0xadf34 0xe7ef0>; + opp-microvolt-L1 = <0xaae60 0xaae60 0xe7ef0 0xaae60 0xaae60 0xe7ef0>; + opp-microvolt-L2 = <0xaae60 0xaae60 0xe7ef0 0xaae60 0xaae60 0xe7ef0>; + opp-microvolt-L3 = <0xa7d8c 0xa7d8c 0xe7ef0 0xa7d8c 0xa7d8c 0xe7ef0>; + opp-microvolt-L4 = <0xa4cb8 0xa4cb8 0xe7ef0 0xa4cb8 0xa4cb8 0xe7ef0>; + opp-microvolt-L5 = <0xa4cb8 0xa4cb8 0xe7ef0 0xa4cb8 0xa4cb8 0xe7ef0>; + opp-microvolt-L6 = <0xa4cb8 0xa4cb8 0xe7ef0 0xa4cb8 0xa4cb8 0xe7ef0>; + clock-latency-ns = <0x9c40>; + }; + + opp-1416000000 { + opp-supported-hw = <0xf9 0xffff>; + opp-hz = <0x00 0x54667200>; + opp-microvolt = <0xba284 0xba284 0xe7ef0 0xba284 0xba284 0xe7ef0>; + opp-microvolt-L1 = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + opp-microvolt-L2 = <0xb40dc 0xb40dc 0xe7ef0 0xb40dc 0xb40dc 0xe7ef0>; + opp-microvolt-L3 = <0xb1008 0xb1008 0xe7ef0 0xb1008 0xb1008 0xe7ef0>; + opp-microvolt-L4 = <0xb1008 0xb1008 0xe7ef0 0xb1008 0xb1008 0xe7ef0>; + opp-microvolt-L5 = <0xadf34 0xadf34 0xe7ef0 0xadf34 0xadf34 0xe7ef0>; + opp-microvolt-L6 = <0xadf34 0xadf34 0xe7ef0 0xadf34 0xadf34 0xe7ef0>; + clock-latency-ns = <0x9c40>; + opp-suspend; + }; + + opp-1608000000 { + opp-supported-hw = <0xf9 0xffff>; + opp-hz = <0x00 0x5fd82200>; + opp-microvolt = <0xcf850 0xcf850 0xe7ef0 0xcf850 0xcf850 0xe7ef0>; + opp-microvolt-L1 = <0xcc77c 0xcc77c 0xe7ef0 0xcc77c 0xcc77c 0xe7ef0>; + opp-microvolt-L2 = <0xc96a8 0xc96a8 0xe7ef0 0xc96a8 0xc96a8 0xe7ef0>; + opp-microvolt-L3 = <0xc65d4 0xc65d4 0xe7ef0 0xc65d4 0xc65d4 0xe7ef0>; + opp-microvolt-L4 = <0xc3500 0xc3500 0xe7ef0 0xc3500 0xc3500 0xe7ef0>; + opp-microvolt-L5 = <0xc3500 0xc3500 0xe7ef0 0xc3500 0xc3500 0xe7ef0>; + opp-microvolt-L6 = <0xc042c 0xc042c 0xe7ef0 0xc042c 0xc042c 0xe7ef0>; + clock-latency-ns = <0x9c40>; + }; + + opp-1800000000 { + opp-supported-hw = <0xf9 0xffff>; + opp-hz = <0x00 0x6b49d200>; + opp-microvolt = <0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0>; + opp-microvolt-L1 = <0xe4e1c 0xe4e1c 0xe7ef0 0xe4e1c 0xe4e1c 0xe7ef0>; + opp-microvolt-L2 = <0xe1d48 0xe1d48 0xe7ef0 0xe1d48 0xe1d48 0xe7ef0>; + opp-microvolt-L3 = <0xdec74 0xdec74 0xe7ef0 0xdec74 0xdec74 0xe7ef0>; + opp-microvolt-L4 = <0xdbba0 0xdbba0 0xe7ef0 0xdbba0 0xdbba0 0xe7ef0>; + opp-microvolt-L5 = <0xd8acc 0xd8acc 0xe7ef0 0xd8acc 0xd8acc 0xe7ef0>; + opp-microvolt-L6 = <0xd59f8 0xd59f8 0xe7ef0 0xd59f8 0xd59f8 0xe7ef0>; + clock-latency-ns = <0x9c40>; + }; + + opp-j-m-408000000 { + opp-supported-hw = <0x06 0xffff>; + opp-hz = <0x00 0x18519600>; + opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + clock-latency-ns = <0x9c40>; + }; + + opp-j-m-600000000 { + opp-supported-hw = <0x06 0xffff>; + opp-hz = <0x00 0x23c34600>; + opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + clock-latency-ns = <0x9c40>; + }; + + opp-j-m-816000000 { + opp-supported-hw = <0x06 0xffff>; + opp-hz = <0x00 0x30a32c00>; + opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + clock-latency-ns = <0x9c40>; + }; + + opp-j-m-1008000000 { + opp-supported-hw = <0x06 0xffff>; + opp-hz = <0x00 0x3c14dc00>; + opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + clock-latency-ns = <0x9c40>; + }; + + opp-j-m-1200000000 { + opp-supported-hw = <0x06 0xffff>; + opp-hz = <0x00 0x47868c00>; + opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + clock-latency-ns = <0x9c40>; + }; + + opp-j-1296000000 { + opp-supported-hw = <0x04 0xffff>; + opp-hz = <0x00 0x4d3f6400>; + opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + opp-microvolt-L0 = <0xbd358 0xbd358 0xe7ef0 0xbd358 0xbd358 0xe7ef0>; + opp-microvolt-L1 = <0xba284 0xba284 0xe7ef0 0xba284 0xba284 0xe7ef0>; + clock-latency-ns = <0x9c40>; + }; + + opp-j-m-1416000000 { + opp-supported-hw = <0x06 0xffff>; + opp-hz = <0x00 0x54667200>; + opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + opp-microvolt-L0 = <0xc042c 0xc042c 0xe7ef0 0xc042c 0xc042c 0xe7ef0>; + opp-microvolt-L1 = <0xbd358 0xbd358 0xe7ef0 0xbd358 0xbd358 0xe7ef0>; + opp-microvolt-L2 = <0xba284 0xba284 0xe7ef0 0xba284 0xba284 0xe7ef0>; + clock-latency-ns = <0x9c40>; + opp-suspend; + }; + + opp-j-m-1608000000 { + opp-supported-hw = <0x06 0xffff>; + opp-hz = <0x00 0x5fd82200>; + opp-microvolt = <0xd8acc 0xd8acc 0xe7ef0 0xd8acc 0xd8acc 0xe7ef0>; + opp-microvolt-L1 = <0xd59f8 0xd59f8 0xe7ef0 0xd59f8 0xd59f8 0xe7ef0>; + opp-microvolt-L2 = <0xd2924 0xd2924 0xe7ef0 0xd2924 0xd2924 0xe7ef0>; + opp-microvolt-L3 = <0xcf850 0xcf850 0xe7ef0 0xcf850 0xcf850 0xe7ef0>; + opp-microvolt-L4 = <0xcc77c 0xcc77c 0xe7ef0 0xcc77c 0xcc77c 0xe7ef0>; + opp-microvolt-L5 = <0xc96a8 0xc96a8 0xe7ef0 0xc96a8 0xc96a8 0xe7ef0>; + opp-microvolt-L6 = <0xc65d4 0xc65d4 0xe7ef0 0xc65d4 0xc65d4 0xe7ef0>; + clock-latency-ns = <0x9c40>; + }; + + opp-j-m-1704000000 { + opp-supported-hw = <0x06 0xffff>; + opp-hz = <0x00 0x6590fa00>; + opp-microvolt = <0xe4e1c 0xe4e1c 0xe7ef0 0xe4e1c 0xe4e1c 0xe7ef0>; + opp-microvolt-L1 = <0xe1d48 0xe1d48 0xe7ef0 0xe1d48 0xe1d48 0xe7ef0>; + opp-microvolt-L2 = <0xdec74 0xdec74 0xe7ef0 0xdec74 0xdec74 0xe7ef0>; + opp-microvolt-L3 = <0xdbba0 0xdbba0 0xe7ef0 0xdbba0 0xdbba0 0xe7ef0>; + opp-microvolt-L4 = <0xd8acc 0xd8acc 0xe7ef0 0xd8acc 0xd8acc 0xe7ef0>; + opp-microvolt-L5 = <0xd59f8 0xd59f8 0xe7ef0 0xd59f8 0xd59f8 0xe7ef0>; + opp-microvolt-L6 = <0xd2924 0xd2924 0xe7ef0 0xd2924 0xd2924 0xe7ef0>; + clock-latency-ns = <0x9c40>; + }; + }; + + cluster1-opp-table { + compatible = "operating-points-v2"; + opp-shared; + nvmem-cells = <0x24 0x25 0x21>; + nvmem-cell-names = "leakage\0opp-info\0specification_serial_number"; + rockchip,supported-hw; + rockchip,pvtm-hw = <0x06>; + rockchip,pvtm-voltage-sel-hw = <0x00 0x603 0x00 0x604 0x61c 0x01 0x61d 0x635 0x02 0x636 0x64e 0x03 0x64f 0x66c 0x04 0x66d 0x68a 0x05 0x68b 0x6a8 0x06 0x6a9 0x270f 0x07>; + rockchip,pvtm-voltage-sel = <0x00 0x63b 0x00 0x63c 0x64f 0x01 0x650 0x668 0x02 0x669 0x68b 0x03 0x68c 0x6ae 0x04 0x6af 0x6cf 0x05 0x6d0 0x6f0 0x06 0x6f1 0x270f 0x07>; + rockchip,pvtm-pvtpll; + rockchip,pvtm-offset = <0x18>; + rockchip,pvtm-sample-time = <0x44c>; + rockchip,pvtm-freq = <0x188940>; + rockchip,pvtm-volt = <0xb71b0>; + rockchip,pvtm-ref-temp = <0x19>; + rockchip,pvtm-temp-prop = <0x10e 0x10e>; + rockchip,pvtm-thermal-zone = "soc-thermal"; + rockchip,pvtm-low-len-sel = <0x03>; + rockchip,grf = <0x26>; + volt-mem-read-margin = <0xd0bd8 0x01 0xbac48 0x02 0xa4cb8 0x03 0x78d98 0x04>; + low-volt-mem-read-margin = <0x04>; + intermediate-threshold-freq = <0xf6180>; + rockchip,idle-threshold-freq = <0x21b100>; + rockchip,reboot-freq = <0x1b7740>; + rockchip,temp-hysteresis = <0x1388>; + rockchip,low-temp = <0x2710>; + rockchip,low-temp-min-volt = <0xb71b0>; + rockchip,high-temp = <0x14c08>; + rockchip,high-temp-max-freq = <0x21b100>; + phandle = <0x16>; + + opp-408000000 { + opp-supported-hw = <0xf9 0xffff>; + opp-hz = <0x00 0x18519600>; + opp-microvolt = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; + clock-latency-ns = <0x9c40>; + opp-suspend; + }; + + opp-600000000 { + opp-supported-hw = <0xf9 0xffff>; + opp-hz = <0x00 0x23c34600>; + opp-microvolt = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; + clock-latency-ns = <0x9c40>; + }; + + opp-816000000 { + opp-supported-hw = <0xf9 0xffff>; + opp-hz = <0x00 0x30a32c00>; + opp-microvolt = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; + clock-latency-ns = <0x9c40>; + }; + + opp-1008000000 { + opp-supported-hw = <0xf9 0xffff>; + opp-hz = <0x00 0x3c14dc00>; + opp-microvolt = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; + clock-latency-ns = <0x9c40>; + }; + + opp-1200000000 { + opp-supported-hw = <0xf9 0xffff>; + opp-hz = <0x00 0x47868c00>; + opp-microvolt = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; + clock-latency-ns = <0x9c40>; + }; + + opp-1416000000 { + opp-supported-hw = <0xf9 0xffff>; + opp-hz = <0x00 0x54667200>; + opp-microvolt = <0xb1008 0xb1008 0xf4240 0xb1008 0xb1008 0xf4240>; + opp-microvolt-L2 = <0xadf34 0xadf34 0xf4240 0xadf34 0xadf34 0xf4240>; + opp-microvolt-L3 = <0xaae60 0xaae60 0xf4240 0xaae60 0xaae60 0xf4240>; + opp-microvolt-L4 = <0xaae60 0xaae60 0xf4240 0xaae60 0xaae60 0xf4240>; + opp-microvolt-L5 = <0xa7d8c 0xa7d8c 0xf4240 0xa7d8c 0xa7d8c 0xf4240>; + opp-microvolt-L6 = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; + opp-microvolt-L7 = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; + clock-latency-ns = <0x9c40>; + }; + + opp-1608000000 { + opp-supported-hw = <0xf9 0xffff>; + opp-hz = <0x00 0x5fd82200>; + opp-microvolt = <0xba284 0xba284 0xf4240 0xba284 0xba284 0xf4240>; + opp-microvolt-L2 = <0xb71b0 0xb71b0 0xf4240 0xb71b0 0xb71b0 0xf4240>; + opp-microvolt-L3 = <0xb40dc 0xb40dc 0xf4240 0xb40dc 0xb40dc 0xf4240>; + opp-microvolt-L4 = <0xb1008 0xb1008 0xf4240 0xb1008 0xb1008 0xf4240>; + opp-microvolt-L5 = <0xadf34 0xadf34 0xf4240 0xadf34 0xadf34 0xf4240>; + opp-microvolt-L6 = <0xaae60 0xaae60 0xf4240 0xaae60 0xaae60 0xf4240>; + opp-microvolt-L7 = <0xaae60 0xaae60 0xf4240 0xaae60 0xaae60 0xf4240>; + clock-latency-ns = <0x9c40>; + }; + + opp-1800000000 { + opp-supported-hw = <0xf9 0xffff>; + opp-hz = <0x00 0x6b49d200>; + opp-microvolt = <0xcf850 0xcf850 0xf4240 0xcf850 0xcf850 0xf4240>; + opp-microvolt-L1 = <0xcc77c 0xcc77c 0xf4240 0xcc77c 0xcc77c 0xf4240>; + opp-microvolt-L2 = <0xc96a8 0xc96a8 0xf4240 0xc96a8 0xc96a8 0xf4240>; + opp-microvolt-L3 = <0xc65d4 0xc65d4 0xf4240 0xc65d4 0xc65d4 0xf4240>; + opp-microvolt-L4 = <0xc3500 0xc3500 0xf4240 0xc3500 0xc3500 0xf4240>; + opp-microvolt-L5 = <0xc042c 0xc042c 0xf4240 0xc042c 0xc042c 0xf4240>; + opp-microvolt-L6 = <0xbd358 0xbd358 0xf4240 0xbd358 0xbd358 0xf4240>; + opp-microvolt-L7 = <0xba284 0xba284 0xf4240 0xba284 0xba284 0xf4240>; + clock-latency-ns = <0x9c40>; + }; + + opp-2016000000 { + opp-supported-hw = <0xf9 0xffff>; + opp-hz = <0x00 0x7829b800>; + opp-microvolt = <0xe1d48 0xe1d48 0xf4240 0xe1d48 0xe1d48 0xf4240>; + opp-microvolt-L1 = <0xdec74 0xdec74 0xf4240 0xdec74 0xdec74 0xf4240>; + opp-microvolt-L2 = <0xdbba0 0xdbba0 0xf4240 0xdbba0 0xdbba0 0xf4240>; + opp-microvolt-L3 = <0xd8acc 0xd8acc 0xf4240 0xd8acc 0xd8acc 0xf4240>; + opp-microvolt-L4 = <0xd59f8 0xd59f8 0xf4240 0xd59f8 0xd59f8 0xf4240>; + opp-microvolt-L5 = <0xd2924 0xd2924 0xf4240 0xd2924 0xd2924 0xf4240>; + opp-microvolt-L6 = <0xcf850 0xcf850 0xf4240 0xcf850 0xcf850 0xf4240>; + opp-microvolt-L7 = <0xcc77c 0xcc77c 0xf4240 0xcc77c 0xcc77c 0xf4240>; + clock-latency-ns = <0x9c40>; + }; + + opp-2208000000 { + opp-supported-hw = <0xf9 0xffff>; + opp-hz = <0x00 0x839b6800>; + opp-microvolt = <0xf116c 0xf116c 0xf4240 0xf116c 0xf116c 0xf4240>; + opp-microvolt-L1 = <0xee098 0xee098 0xf4240 0xee098 0xee098 0xf4240>; + opp-microvolt-L2 = <0xeafc4 0xeafc4 0xf4240 0xeafc4 0xeafc4 0xf4240>; + opp-microvolt-L3 = <0xe7ef0 0xe7ef0 0xf4240 0xe7ef0 0xe7ef0 0xf4240>; + opp-microvolt-L4 = <0xeafc4 0xeafc4 0xf4240 0xeafc4 0xeafc4 0xf4240>; + opp-microvolt-L5 = <0xe7ef0 0xe7ef0 0xf4240 0xe7ef0 0xe7ef0 0xf4240>; + opp-microvolt-L6 = <0xe1d48 0xe1d48 0xf4240 0xe1d48 0xe1d48 0xf4240>; + opp-microvolt-L7 = <0xdec74 0xdec74 0xf4240 0xdec74 0xdec74 0xf4240>; + clock-latency-ns = <0x9c40>; + }; + + opp-2256000000 { + opp-supported-hw = <0xf9 0x13>; + opp-hz = <0x00 0x8677d400>; + opp-microvolt = <0xf4240 0xf4240 0xf4240 0xf4240 0xf4240 0xf4240>; + clock-latency-ns = <0x9c40>; + }; + + opp-2304000000 { + opp-supported-hw = <0xf9 0x24>; + opp-hz = <0x00 0x89544000>; + opp-microvolt = <0xf4240 0xf4240 0xf4240 0xf4240 0xf4240 0xf4240>; + clock-latency-ns = <0x9c40>; + }; + + opp-2352000000 { + opp-supported-hw = <0xf9 0x48>; + opp-hz = <0x00 0x8c30ac00>; + opp-microvolt = <0xf4240 0xf4240 0xf4240 0xf4240 0xf4240 0xf4240>; + clock-latency-ns = <0x9c40>; + }; + + opp-2400000000 { + opp-supported-hw = <0xf9 0x80>; + opp-hz = <0x00 0x8f0d1800>; + opp-microvolt = <0xf4240 0xf4240 0xf4240 0xf4240 0xf4240 0xf4240>; + clock-latency-ns = <0x9c40>; + }; + + opp-j-m-408000000 { + opp-supported-hw = <0x06 0xffff>; + opp-hz = <0x00 0x18519600>; + opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + clock-latency-ns = <0x9c40>; + }; + + opp-j-m-600000000 { + opp-supported-hw = <0x06 0xffff>; + opp-hz = <0x00 0x23c34600>; + opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + clock-latency-ns = <0x9c40>; + }; + + opp-j-m-816000000 { + opp-supported-hw = <0x06 0xffff>; + opp-hz = <0x00 0x30a32c00>; + opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + clock-latency-ns = <0x9c40>; + }; + + opp-j-m-1008000000 { + opp-supported-hw = <0x06 0xffff>; + opp-hz = <0x00 0x3c14dc00>; + opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + clock-latency-ns = <0x9c40>; + }; + + opp-j-m-1200000000 { + opp-supported-hw = <0x06 0xffff>; + opp-hz = <0x00 0x47868c00>; + opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + clock-latency-ns = <0x9c40>; + }; + + opp-j-m-1416000000 { + opp-supported-hw = <0x06 0xffff>; + opp-hz = <0x00 0x54667200>; + opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + opp-microvolt-L0 = <0xba284 0xba284 0xe7ef0 0xba284 0xba284 0xe7ef0>; + clock-latency-ns = <0x9c40>; + opp-suspend; + }; + + opp-j-m-1608000000 { + opp-supported-hw = <0x06 0xffff>; + opp-hz = <0x00 0x5fd82200>; + opp-microvolt = <0xc042c 0xc042c 0xe7ef0 0xc042c 0xc042c 0xe7ef0>; + opp-microvolt-L2 = <0xbd358 0xbd358 0xe7ef0 0xbd358 0xbd358 0xe7ef0>; + opp-microvolt-L3 = <0xba284 0xba284 0xe7ef0 0xba284 0xba284 0xe7ef0>; + opp-microvolt-L4 = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + opp-microvolt-L5 = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + opp-microvolt-L6 = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + opp-microvolt-L7 = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + clock-latency-ns = <0x9c40>; + }; + + opp-j-m-1800000000 { + opp-supported-hw = <0x06 0xffff>; + opp-hz = <0x00 0x6b49d200>; + opp-microvolt = <0xd59f8 0xd59f8 0xe7ef0 0xd59f8 0xd59f8 0xe7ef0>; + opp-microvolt-L1 = <0xd2924 0xd2924 0xe7ef0 0xd2924 0xd2924 0xe7ef0>; + opp-microvolt-L2 = <0xcf850 0xcf850 0xe7ef0 0xcf850 0xcf850 0xe7ef0>; + opp-microvolt-L3 = <0xcc77c 0xcc77c 0xe7ef0 0xcc77c 0xcc77c 0xe7ef0>; + opp-microvolt-L4 = <0xc96a8 0xc96a8 0xe7ef0 0xc96a8 0xc96a8 0xe7ef0>; + opp-microvolt-L5 = <0xc65d4 0xc65d4 0xe7ef0 0xc65d4 0xc65d4 0xe7ef0>; + opp-microvolt-L6 = <0xc3500 0xc3500 0xe7ef0 0xc3500 0xc3500 0xe7ef0>; + opp-microvolt-L7 = <0xc042c 0xc042c 0xe7ef0 0xc042c 0xc042c 0xe7ef0>; + clock-latency-ns = <0x9c40>; + }; + + opp-j-m-2016000000 { + opp-supported-hw = <0x06 0xffff>; + opp-hz = <0x00 0x7829b800>; + opp-microvolt = <0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0>; + opp-microvolt-L1 = <0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0>; + opp-microvolt-L2 = <0xe4e1c 0xe4e1c 0xe7ef0 0xe4e1c 0xe4e1c 0xe7ef0>; + opp-microvolt-L3 = <0xe1d48 0xe1d48 0xe7ef0 0xe1d48 0xe1d48 0xe7ef0>; + opp-microvolt-L4 = <0xdec74 0xdec74 0xe7ef0 0xdec74 0xdec74 0xe7ef0>; + opp-microvolt-L5 = <0xdbba0 0xdbba0 0xe7ef0 0xdbba0 0xdbba0 0xe7ef0>; + opp-microvolt-L6 = <0xd8acc 0xd8acc 0xe7ef0 0xd8acc 0xd8acc 0xe7ef0>; + opp-microvolt-L7 = <0xd59f8 0xd59f8 0xe7ef0 0xd59f8 0xd59f8 0xe7ef0>; + clock-latency-ns = <0x9c40>; + }; + }; + + cluster2-opp-table { + compatible = "operating-points-v2"; + opp-shared; + nvmem-cells = <0x27 0x28 0x21>; + nvmem-cell-names = "leakage\0opp-info\0specification_serial_number"; + rockchip,supported-hw; + rockchip,pvtm-hw = <0x06>; + rockchip,pvtm-voltage-sel-hw = <0x00 0x603 0x00 0x604 0x61c 0x01 0x61d 0x635 0x02 0x636 0x64e 0x03 0x64f 0x66c 0x04 0x66d 0x68a 0x05 0x68b 0x6a8 0x06 0x6a9 0x270f 0x07>; + rockchip,pvtm-voltage-sel = <0x00 0x63b 0x00 0x63c 0x64f 0x01 0x650 0x668 0x02 0x669 0x68b 0x03 0x68c 0x6ae 0x04 0x6af 0x6cf 0x05 0x6d0 0x6f0 0x06 0x6f1 0x270f 0x07>; + rockchip,pvtm-pvtpll; + rockchip,pvtm-offset = <0x18>; + rockchip,pvtm-sample-time = <0x44c>; + rockchip,pvtm-freq = <0x188940>; + rockchip,pvtm-volt = <0xb71b0>; + rockchip,pvtm-ref-temp = <0x19>; + rockchip,pvtm-temp-prop = <0x10e 0x10e>; + rockchip,pvtm-thermal-zone = "soc-thermal"; + rockchip,pvtm-low-len-sel = <0x03>; + rockchip,grf = <0x29>; + volt-mem-read-margin = <0xd0bd8 0x01 0xbac48 0x02 0xa4cb8 0x03 0x78d98 0x04>; + low-volt-mem-read-margin = <0x04>; + intermediate-threshold-freq = <0xf6180>; + rockchip,idle-threshold-freq = <0x21b100>; + rockchip,reboot-freq = <0x1b7740>; + rockchip,temp-hysteresis = <0x1388>; + rockchip,low-temp = <0x2710>; + rockchip,low-temp-min-volt = <0xb71b0>; + rockchip,high-temp = <0x14c08>; + rockchip,high-temp-max-freq = <0x21b100>; + phandle = <0x1a>; + + opp-408000000 { + opp-supported-hw = <0xf9 0xffff>; + opp-hz = <0x00 0x18519600>; + opp-microvolt = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; + clock-latency-ns = <0x9c40>; + opp-suspend; + }; + + opp-600000000 { + opp-supported-hw = <0xf9 0xffff>; + opp-hz = <0x00 0x23c34600>; + opp-microvolt = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; + clock-latency-ns = <0x9c40>; + }; + + opp-816000000 { + opp-supported-hw = <0xf9 0xffff>; + opp-hz = <0x00 0x30a32c00>; + opp-microvolt = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; + clock-latency-ns = <0x9c40>; + }; + + opp-1008000000 { + opp-supported-hw = <0xf9 0xffff>; + opp-hz = <0x00 0x3c14dc00>; + opp-microvolt = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; + clock-latency-ns = <0x9c40>; + }; + + opp-1200000000 { + opp-supported-hw = <0xf9 0xffff>; + opp-hz = <0x00 0x47868c00>; + opp-microvolt = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; + clock-latency-ns = <0x9c40>; + }; + + opp-1416000000 { + opp-supported-hw = <0xf9 0xffff>; + opp-hz = <0x00 0x54667200>; + opp-microvolt = <0xb1008 0xb1008 0xf4240 0xb1008 0xb1008 0xf4240>; + opp-microvolt-L2 = <0xadf34 0xadf34 0xf4240 0xadf34 0xadf34 0xf4240>; + opp-microvolt-L3 = <0xaae60 0xaae60 0xf4240 0xaae60 0xaae60 0xf4240>; + opp-microvolt-L4 = <0xaae60 0xaae60 0xf4240 0xaae60 0xaae60 0xf4240>; + opp-microvolt-L5 = <0xa7d8c 0xa7d8c 0xf4240 0xa7d8c 0xa7d8c 0xf4240>; + opp-microvolt-L6 = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; + opp-microvolt-L7 = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; + clock-latency-ns = <0x9c40>; + }; + + opp-1608000000 { + opp-supported-hw = <0xf9 0xffff>; + opp-hz = <0x00 0x5fd82200>; + opp-microvolt = <0xba284 0xba284 0xf4240 0xba284 0xba284 0xf4240>; + opp-microvolt-L2 = <0xb71b0 0xb71b0 0xf4240 0xb71b0 0xb71b0 0xf4240>; + opp-microvolt-L3 = <0xb40dc 0xb40dc 0xf4240 0xb40dc 0xb40dc 0xf4240>; + opp-microvolt-L4 = <0xb1008 0xb1008 0xf4240 0xb1008 0xb1008 0xf4240>; + opp-microvolt-L5 = <0xadf34 0xadf34 0xf4240 0xadf34 0xadf34 0xf4240>; + opp-microvolt-L6 = <0xaae60 0xaae60 0xf4240 0xaae60 0xaae60 0xf4240>; + opp-microvolt-L7 = <0xaae60 0xaae60 0xf4240 0xaae60 0xaae60 0xf4240>; + clock-latency-ns = <0x9c40>; + }; + + opp-1800000000 { + opp-supported-hw = <0xf9 0xffff>; + opp-hz = <0x00 0x6b49d200>; + opp-microvolt = <0xcf850 0xcf850 0xf4240 0xcf850 0xcf850 0xf4240>; + opp-microvolt-L1 = <0xcc77c 0xcc77c 0xf4240 0xcc77c 0xcc77c 0xf4240>; + opp-microvolt-L2 = <0xc96a8 0xc96a8 0xf4240 0xc96a8 0xc96a8 0xf4240>; + opp-microvolt-L3 = <0xc65d4 0xc65d4 0xf4240 0xc65d4 0xc65d4 0xf4240>; + opp-microvolt-L4 = <0xc3500 0xc3500 0xf4240 0xc3500 0xc3500 0xf4240>; + opp-microvolt-L5 = <0xc042c 0xc042c 0xf4240 0xc042c 0xc042c 0xf4240>; + opp-microvolt-L6 = <0xbd358 0xbd358 0xf4240 0xbd358 0xbd358 0xf4240>; + opp-microvolt-L7 = <0xba284 0xba284 0xf4240 0xba284 0xba284 0xf4240>; + clock-latency-ns = <0x9c40>; + }; + + opp-2016000000 { + opp-supported-hw = <0xf9 0xffff>; + opp-hz = <0x00 0x7829b800>; + opp-microvolt = <0xe1d48 0xe1d48 0xf4240 0xe1d48 0xe1d48 0xf4240>; + opp-microvolt-L1 = <0xdec74 0xdec74 0xf4240 0xdec74 0xdec74 0xf4240>; + opp-microvolt-L2 = <0xdbba0 0xdbba0 0xf4240 0xdbba0 0xdbba0 0xf4240>; + opp-microvolt-L3 = <0xd8acc 0xd8acc 0xf4240 0xd8acc 0xd8acc 0xf4240>; + opp-microvolt-L4 = <0xd59f8 0xd59f8 0xf4240 0xd59f8 0xd59f8 0xf4240>; + opp-microvolt-L5 = <0xd2924 0xd2924 0xf4240 0xd2924 0xd2924 0xf4240>; + opp-microvolt-L6 = <0xcf850 0xcf850 0xf4240 0xcf850 0xcf850 0xf4240>; + opp-microvolt-L7 = <0xcc77c 0xcc77c 0xf4240 0xcc77c 0xcc77c 0xf4240>; + clock-latency-ns = <0x9c40>; + }; + + opp-2208000000 { + opp-supported-hw = <0xf9 0xffff>; + opp-hz = <0x00 0x839b6800>; + opp-microvolt = <0xf116c 0xf116c 0xf4240 0xf116c 0xf116c 0xf4240>; + opp-microvolt-L3 = <0xee098 0xee098 0xf4240 0xee098 0xee098 0xf4240>; + opp-microvolt-L4 = <0xeafc4 0xeafc4 0xf4240 0xeafc4 0xeafc4 0xf4240>; + opp-microvolt-L5 = <0xe7ef0 0xe7ef0 0xf4240 0xe7ef0 0xe7ef0 0xf4240>; + opp-microvolt-L6 = <0xe1d48 0xe1d48 0xf4240 0xe1d48 0xe1d48 0xf4240>; + opp-microvolt-L7 = <0xdec74 0xdec74 0xf4240 0xdec74 0xdec74 0xf4240>; + clock-latency-ns = <0x9c40>; + }; + + opp-2256000000 { + opp-supported-hw = <0xf9 0x13>; + opp-hz = <0x00 0x8677d400>; + opp-microvolt = <0xf4240 0xf4240 0xf4240 0xf4240 0xf4240 0xf4240>; + clock-latency-ns = <0x9c40>; + }; + + opp-2304000000 { + opp-supported-hw = <0xf9 0x24>; + opp-hz = <0x00 0x89544000>; + opp-microvolt = <0xf4240 0xf4240 0xf4240 0xf4240 0xf4240 0xf4240>; + clock-latency-ns = <0x9c40>; + }; + + opp-2352000000 { + opp-supported-hw = <0xf9 0x48>; + opp-hz = <0x00 0x8c30ac00>; + opp-microvolt = <0xf4240 0xf4240 0xf4240 0xf4240 0xf4240 0xf4240>; + clock-latency-ns = <0x9c40>; + }; + + opp-2400000000 { + opp-supported-hw = <0xf9 0x80>; + opp-hz = <0x00 0x8f0d1800>; + opp-microvolt = <0xf4240 0xf4240 0xf4240 0xf4240 0xf4240 0xf4240>; + clock-latency-ns = <0x9c40>; + }; + + opp-j-m-408000000 { + opp-supported-hw = <0x06 0xffff>; + opp-hz = <0x00 0x18519600>; + opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + clock-latency-ns = <0x9c40>; + }; + + opp-j-m-600000000 { + opp-supported-hw = <0x06 0xffff>; + opp-hz = <0x00 0x23c34600>; + opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + clock-latency-ns = <0x9c40>; + }; + + opp-j-m-816000000 { + opp-supported-hw = <0x06 0xffff>; + opp-hz = <0x00 0x30a32c00>; + opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + clock-latency-ns = <0x9c40>; + }; + + opp-j-m-1008000000 { + opp-supported-hw = <0x06 0xffff>; + opp-hz = <0x00 0x3c14dc00>; + opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + clock-latency-ns = <0x9c40>; + }; + + opp-j-m-1200000000 { + opp-supported-hw = <0x06 0xffff>; + opp-hz = <0x00 0x47868c00>; + opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + clock-latency-ns = <0x9c40>; + }; + + opp-j-m-1416000000 { + opp-supported-hw = <0x06 0xffff>; + opp-hz = <0x00 0x54667200>; + opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + opp-microvolt-L0 = <0xba284 0xba284 0xe7ef0 0xba284 0xba284 0xe7ef0>; + clock-latency-ns = <0x9c40>; + opp-suspend; + }; + + opp-j-m-1608000000 { + opp-supported-hw = <0x06 0xffff>; + opp-hz = <0x00 0x5fd82200>; + opp-microvolt = <0xc042c 0xc042c 0xe7ef0 0xc042c 0xc042c 0xe7ef0>; + opp-microvolt-L2 = <0xbd358 0xbd358 0xe7ef0 0xbd358 0xbd358 0xe7ef0>; + opp-microvolt-L3 = <0xba284 0xba284 0xe7ef0 0xba284 0xba284 0xe7ef0>; + opp-microvolt-L4 = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + opp-microvolt-L5 = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + opp-microvolt-L6 = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + opp-microvolt-L7 = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + clock-latency-ns = <0x9c40>; + }; + + opp-j-m-1800000000 { + opp-supported-hw = <0x06 0xffff>; + opp-hz = <0x00 0x6b49d200>; + opp-microvolt = <0xd59f8 0xd59f8 0xe7ef0 0xd59f8 0xd59f8 0xe7ef0>; + opp-microvolt-L1 = <0xd2924 0xd2924 0xe7ef0 0xd2924 0xd2924 0xe7ef0>; + opp-microvolt-L2 = <0xcf850 0xcf850 0xe7ef0 0xcf850 0xcf850 0xe7ef0>; + opp-microvolt-L3 = <0xcc77c 0xcc77c 0xe7ef0 0xcc77c 0xcc77c 0xe7ef0>; + opp-microvolt-L4 = <0xc96a8 0xc96a8 0xe7ef0 0xc96a8 0xc96a8 0xe7ef0>; + opp-microvolt-L5 = <0xc65d4 0xc65d4 0xe7ef0 0xc65d4 0xc65d4 0xe7ef0>; + opp-microvolt-L6 = <0xc3500 0xc3500 0xe7ef0 0xc3500 0xc3500 0xe7ef0>; + opp-microvolt-L7 = <0xc042c 0xc042c 0xe7ef0 0xc042c 0xc042c 0xe7ef0>; + clock-latency-ns = <0x9c40>; + }; + + opp-j-m-2016000000 { + opp-supported-hw = <0x06 0xffff>; + opp-hz = <0x00 0x7829b800>; + opp-microvolt = <0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0>; + opp-microvolt-L1 = <0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0>; + opp-microvolt-L2 = <0xe4e1c 0xe4e1c 0xe7ef0 0xe4e1c 0xe4e1c 0xe7ef0>; + opp-microvolt-L3 = <0xe1d48 0xe1d48 0xe7ef0 0xe1d48 0xe1d48 0xe7ef0>; + opp-microvolt-L4 = <0xdec74 0xdec74 0xe7ef0 0xdec74 0xdec74 0xe7ef0>; + opp-microvolt-L5 = <0xdbba0 0xdbba0 0xe7ef0 0xdbba0 0xdbba0 0xe7ef0>; + opp-microvolt-L6 = <0xd8acc 0xd8acc 0xe7ef0 0xd8acc 0xd8acc 0xe7ef0>; + opp-microvolt-L7 = <0xd59f8 0xd59f8 0xe7ef0 0xd59f8 0xd59f8 0xe7ef0>; + clock-latency-ns = <0x9c40>; + }; + }; + + arm-pmu { + compatible = "arm,armv8-pmuv3"; + interrupts = <0x01 0x07 0x08>; + interrupt-affinity = <0x06 0x07 0x08 0x09 0x0a 0x0b 0x0c 0x0d>; + phandle = <0x20c>; + }; + + cpuinfo { + compatible = "rockchip,cpuinfo"; + nvmem-cells = <0x2a 0x2b 0x2c>; + nvmem-cell-names = "id\0cpu-version\0cpu-code"; + }; + + csi2-dcphy0 { + compatible = "rockchip,rk3588-csi2-dphy"; + rockchip,hw = <0x2d 0x2e>; + phys = <0x2f 0x30>; + phy-names = "dcphy0\0dcphy1"; + status = "disabled"; + phandle = <0x20d>; + }; + + csi2-dcphy1 { + compatible = "rockchip,rk3588-csi2-dphy"; + rockchip,hw = <0x2d 0x2e>; + phys = <0x2f 0x30>; + phy-names = "dcphy0\0dcphy1"; + status = "disabled"; + phandle = <0x20e>; + }; + + csi2-dphy0 { + compatible = "rockchip,rk3588-csi2-dphy"; + rockchip,hw = <0x2d 0x2e>; + phys = <0x2f 0x30>; + phy-names = "dcphy0\0dcphy1"; + status = "okay"; + firefly-compatible; + phandle = <0x20f>; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + reg = <0x00>; + #address-cells = <0x01>; + #size-cells = <0x00>; + + endpoint@0 { + reg = <0x00>; + remote-endpoint = <0x31>; + data-lanes = <0x01 0x02 0x03 0x04>; + phandle = <0x183>; + }; + + endpoint@1 { + reg = <0x01>; + remote-endpoint = <0x32>; + data-lanes = <0x01 0x02 0x03 0x04>; + phandle = <0x184>; + }; + }; + + port@1 { + reg = <0x01>; + #address-cells = <0x01>; + #size-cells = <0x00>; + + endpoint@0 { + reg = <0x00>; + remote-endpoint = <0x33>; + phandle = <0x4d>; + }; + }; + }; + }; + + csi2-dphy1 { + compatible = "rockchip,rk3588-csi2-dphy"; + rockchip,hw = <0x2d 0x2e>; + phys = <0x2f 0x30>; + phy-names = "dcphy0\0dcphy1"; + status = "disabled"; + phandle = <0x210>; + }; + + csi2-dphy2 { + compatible = "rockchip,rk3588-csi2-dphy"; + rockchip,hw = <0x2d 0x2e>; + phys = <0x2f 0x30>; + phy-names = "dcphy0\0dcphy1"; + status = "disabled"; + phandle = <0x211>; + }; + + csi2-dphy3 { + compatible = "rockchip,rk3588-csi2-dphy"; + rockchip,hw = <0x2d 0x2e>; + phys = <0x2f 0x30>; + phy-names = "dcphy0\0dcphy1"; + status = "disabled"; + phandle = <0x212>; + }; + + csi2-dphy4 { + compatible = "rockchip,rk3588-csi2-dphy"; + rockchip,hw = <0x2d 0x2e>; + phys = <0x2f 0x30>; + phy-names = "dcphy0\0dcphy1"; + status = "disabled"; + phandle = <0x213>; + }; + + csi2-dphy5 { + compatible = "rockchip,rk3588-csi2-dphy"; + rockchip,hw = <0x2d 0x2e>; + phys = <0x2f 0x30>; + phy-names = "dcphy0\0dcphy1"; + status = "disabled"; + phandle = <0x214>; + }; + + display-subsystem { + compatible = "rockchip,display-subsystem"; + ports = <0x34>; + clocks = <0x35 0x36>; + clock-names = "hdmi0_phy_pll\0hdmi1_phy_pll"; + memory-region = <0x37>; + memory-region-names = "drm-logo"; + phandle = <0x215>; + + route { + + route-dp0 { + status = "disabled"; + logo,uboot = "logo.bmp"; + logo,kernel = "logo_kernel.bmp"; + logo,mode = "center"; + charge_logo,mode = "center"; + connect = <0x38>; + phandle = <0x216>; + }; + + route-dsi0 { + status = "disabled"; + logo,uboot = "logo.bmp"; + logo,kernel = "logo_kernel.bmp"; + logo,mode = "center"; + charge_logo,mode = "center"; + connect = <0x39>; + phandle = <0x217>; + }; + + route-dsi1 { + status = "disabled"; + logo,uboot = "logo.bmp"; + logo,kernel = "logo_kernel.bmp"; + logo,mode = "center"; + charge_logo,mode = "center"; + connect = <0x3a>; + phandle = <0x218>; + }; + + route-edp0 { + status = "disabled"; + logo,uboot = "logo.bmp"; + logo,kernel = "logo_kernel.bmp"; + logo,mode = "center"; + charge_logo,mode = "center"; + connect = <0x3b>; + phandle = <0x219>; + }; + + route-edp1 { + status = "disabled"; + logo,uboot = "logo.bmp"; + logo,kernel = "logo_kernel.bmp"; + logo,mode = "center"; + charge_logo,mode = "center"; + phandle = <0x21a>; + }; + + route-hdmi0 { + status = "okay"; + logo,uboot = "logo.bmp"; + logo,kernel = "logo_kernel.bmp"; + logo,mode = "center"; + charge_logo,mode = "center"; + connect = <0x3c>; + phandle = <0x21b>; + }; + + route-rgb { + status = "disabled"; + logo,uboot = "logo.bmp"; + logo,kernel = "logo_kernel.bmp"; + logo,mode = "center"; + charge_logo,mode = "center"; + connect = <0x3d>; + phandle = <0x21c>; + }; + + route-dp1 { + status = "disabled"; + logo,uboot = "logo.bmp"; + logo,kernel = "logo_kernel.bmp"; + logo,mode = "center"; + charge_logo,mode = "center"; + connect = <0x3e>; + phandle = <0x21d>; + }; + + route-hdmi1 { + status = "disabled"; + logo,uboot = "logo.bmp"; + logo,kernel = "logo_kernel.bmp"; + logo,mode = "center"; + charge_logo,mode = "center"; + connect = <0x3f>; + phandle = <0x21e>; + }; + }; + }; + + dmc { + compatible = "rockchip,rk3588-dmc"; + interrupts = <0x00 0x49 0x04>; + interrupt-names = "complete"; + devfreq-events = <0x40>; + clocks = <0x0e 0x04>; + clock-names = "dmc_clk"; + operating-points-v2 = <0x41>; + upthreshold = <0x28>; + downdifferential = <0x14>; + system-status-level = <0x01 0x04 0x08 0x08 0x02 0x01 0x10 0x04 0x10000 0x04 0x80000 0x04 0x1000 0x08 0x4000 0x08 0x2000 0x08 0xc00 0x08 0x40000 0x08 0x200000 0x08>; + auto-freq-en = <0x01>; + status = "disabled"; + center-supply = <0x42>; + mem-supply = <0x43>; + phandle = <0x21f>; + }; + + dmc-opp-table { + compatible = "operating-points-v2"; + nvmem-cells = <0x44 0x45 0x21>; + nvmem-cell-names = "leakage\0opp-info\0specification_serial_number"; + rockchip,supported-hw; + rockchip,leakage-voltage-sel = <0x01 0x1f 0x00 0x20 0x2c 0x01 0x2d 0x39 0x02 0x3a 0xfe 0x03>; + rockchip,temp-hysteresis = <0x1388>; + rockchip,low-temp = <0x2710>; + rockchip,low-temp-min-volt = <0xb71b0>; + phandle = <0x41>; + + opp-528000000 { + opp-supported-hw = <0xf9 0xffff>; + opp-hz = <0x00 0x1f78a400>; + opp-microvolt = <0xa4cb8 0xa4cb8 0xd59f8 0xb1008 0xb1008 0xb71b0>; + opp-microvolt-L1 = <0xa4cb8 0xa4cb8 0xd59f8 0xaae60 0xaae60 0xb71b0>; + opp-microvolt-L2 = <0xa4cb8 0xa4cb8 0xd59f8 0xa7d8c 0xa7d8c 0xb71b0>; + opp-microvolt-L3 = <0xa4cb8 0xa4cb8 0xd59f8 0xa4cb8 0xa4cb8 0xb71b0>; + }; + + opp-1068000000 { + opp-supported-hw = <0xf9 0xffff>; + opp-hz = <0x00 0x3fa86300>; + opp-microvolt = <0xb1008 0xb1008 0xd59f8 0xb40dc 0xb40dc 0xb71b0>; + opp-microvolt-L1 = <0xaae60 0xaae60 0xd59f8 0xadf34 0xadf34 0xb71b0>; + opp-microvolt-L2 = <0xa4cb8 0xa4cb8 0xd59f8 0xaae60 0xaae60 0xb71b0>; + opp-microvolt-L3 = <0xa4cb8 0xa4cb8 0xd59f8 0xa7d8c 0xa7d8c 0xb71b0>; + }; + + opp-1560000000 { + opp-supported-hw = <0xf9 0xffff>; + opp-hz = <0x00 0x5cfbb600>; + opp-microvolt = <0xc3500 0xc3500 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; + opp-microvolt-L1 = <0xbd358 0xbd358 0xd59f8 0xb1008 0xb1008 0xb71b0>; + opp-microvolt-L2 = <0xb71b0 0xb71b0 0xd59f8 0xadf34 0xadf34 0xb71b0>; + opp-microvolt-L3 = <0xb1008 0xb1008 0xd59f8 0xaae60 0xaae60 0xb71b0>; + }; + + opp-2750000000 { + opp-supported-hw = <0xf9 0xffff>; + opp-hz = <0x00 0xa3e9ab80>; + opp-microvolt = <0xd59f8 0xd59f8 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; + opp-microvolt-L1 = <0xcf850 0xcf850 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; + opp-microvolt-L2 = <0xcc77c 0xcc77c 0xd59f8 0xb1008 0xb1008 0xb71b0>; + opp-microvolt-L3 = <0xc96a8 0xc8320 0xd59f8 0xaae60 0xaae60 0xb71b0>; + }; + + opp-j-m-528000000 { + opp-supported-hw = <0x06 0xffff>; + opp-hz = <0x00 0x1f78a400>; + opp-microvolt = <0xb71b0 0xb71b0 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; + }; + + opp-j-m-1068000000 { + opp-supported-hw = <0x06 0xffff>; + opp-hz = <0x00 0x3fa86300>; + opp-microvolt = <0xb71b0 0xb71b0 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; + }; + + opp-j-m-1560000000 { + opp-supported-hw = <0x06 0xffff>; + opp-hz = <0x00 0x5cfbb600>; + opp-microvolt = <0xc3500 0xc3500 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; + opp-microvolt-L1 = <0xbd358 0xbd358 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; + opp-microvolt-L2 = <0xb71b0 0xb71b0 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; + opp-microvolt-L3 = <0xb71b0 0xb71b0 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; + }; + + opp-j-m-2750000000 { + opp-supported-hw = <0x06 0xffff>; + opp-hz = <0x00 0xa3e9ab80>; + opp-microvolt = <0xd59f8 0xd59f8 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; + opp-microvolt-L1 = <0xcf850 0xcf850 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; + opp-microvolt-L2 = <0xcc77c 0xcc77c 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; + opp-microvolt-L3 = <0xc96a8 0xc8320 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; + }; + }; + + firmware { + + scmi { + compatible = "arm,scmi-smc"; + shmem = <0x46>; + arm,smc-id = <0x82000010>; + #address-cells = <0x01>; + #size-cells = <0x00>; + phandle = <0x220>; + + protocol@14 { + reg = <0x14>; + #clock-cells = <0x01>; + assigned-clocks = <0x0e 0x00 0x0e 0x02 0x0e 0x03>; + assigned-clock-rates = <0x30a32c00 0x30a32c00 0x30a32c00>; + phandle = <0x0e>; + }; + + protocol@16 { + reg = <0x16>; + #reset-cells = <0x01>; + phandle = <0x11a>; + }; + }; + + sdei { + compatible = "arm,sdei-1.0"; + method = "smc"; + phandle = <0x221>; + }; + + optee { + compatible = "linaro,optee-tz"; + method = "smc"; + phandle = <0x222>; + }; + }; + + jpege-ccu { + compatible = "rockchip,vpu-jpege-ccu"; + status = "okay"; + phandle = <0xbd>; + }; + + mipi-dcphy-dummy { + phandle = <0x223>; + }; + + mipi0-csi2 { + compatible = "rockchip,rk3588-mipi-csi2"; + rockchip,hw = <0x47 0x48 0x49 0x4a 0x4b 0x4c>; + status = "disabled"; + phandle = <0x224>; + }; + + mipi1-csi2 { + compatible = "rockchip,rk3588-mipi-csi2"; + rockchip,hw = <0x47 0x48 0x49 0x4a 0x4b 0x4c>; + status = "disabled"; + phandle = <0x225>; + }; + + mipi2-csi2 { + compatible = "rockchip,rk3588-mipi-csi2"; + rockchip,hw = <0x47 0x48 0x49 0x4a 0x4b 0x4c>; + status = "okay"; + firefly-compatible; + phandle = <0x226>; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + reg = <0x00>; + #address-cells = <0x01>; + #size-cells = <0x00>; + + endpoint@0 { + reg = <0x00>; + remote-endpoint = <0x4d>; + phandle = <0x33>; + }; + }; + + port@1 { + reg = <0x01>; + #address-cells = <0x01>; + #size-cells = <0x00>; + + endpoint@0 { + reg = <0x00>; + remote-endpoint = <0x4e>; + phandle = <0x54>; + }; + }; + }; + }; + + mipi3-csi2 { + compatible = "rockchip,rk3588-mipi-csi2"; + rockchip,hw = <0x47 0x48 0x49 0x4a 0x4b 0x4c>; + status = "disabled"; + phandle = <0x227>; + }; + + mipi4-csi2 { + compatible = "rockchip,rk3588-mipi-csi2"; + rockchip,hw = <0x47 0x48 0x49 0x4a 0x4b 0x4c>; + status = "disabled"; + phandle = <0x228>; + }; + + mipi5-csi2 { + compatible = "rockchip,rk3588-mipi-csi2"; + rockchip,hw = <0x47 0x48 0x49 0x4a 0x4b 0x4c>; + status = "disabled"; + phandle = <0x229>; + }; + + mpp-srv { + compatible = "rockchip,mpp-service"; + rockchip,taskqueue-count = <0x0c>; + rockchip,resetgroup-count = <0x01>; + status = "okay"; + phandle = <0xb8>; + }; + + psci { + compatible = "arm,psci-1.0"; + method = "smc"; + }; + + rkcif-dvp { + compatible = "rockchip,rkcif-dvp"; + rockchip,hw = <0x4f>; + iommus = <0x50>; + status = "disabled"; + phandle = <0x51>; + }; + + rkcif-dvp-sditf { + compatible = "rockchip,rkcif-sditf"; + rockchip,cif = <0x51>; + status = "disabled"; + phandle = <0x22a>; + }; + + rkcif-mipi-lvds { + compatible = "rockchip,rkcif-mipi-lvds"; + rockchip,hw = <0x4f>; + iommus = <0x50>; + status = "disabled"; + phandle = <0x52>; + }; + + rkcif-mipi-lvds-sditf { + compatible = "rockchip,rkcif-sditf"; + rockchip,cif = <0x52>; + status = "disabled"; + phandle = <0x22b>; + }; + + rkcif-mipi-lvds-sditf-vir1 { + compatible = "rockchip,rkcif-sditf"; + rockchip,cif = <0x52>; + status = "disabled"; + phandle = <0x22c>; + }; + + rkcif-mipi-lvds-sditf-vir2 { + compatible = "rockchip,rkcif-sditf"; + rockchip,cif = <0x52>; + status = "disabled"; + phandle = <0x22d>; + }; + + rkcif-mipi-lvds-sditf-vir3 { + compatible = "rockchip,rkcif-sditf"; + rockchip,cif = <0x52>; + status = "disabled"; + phandle = <0x22e>; + }; + + rkcif-mipi-lvds1 { + compatible = "rockchip,rkcif-mipi-lvds"; + rockchip,hw = <0x4f>; + iommus = <0x50>; + status = "disabled"; + phandle = <0x53>; + }; + + rkcif-mipi-lvds1-sditf { + compatible = "rockchip,rkcif-sditf"; + rockchip,cif = <0x53>; + status = "disabled"; + phandle = <0x22f>; + }; + + rkcif-mipi-lvds1-sditf-vir1 { + compatible = "rockchip,rkcif-sditf"; + rockchip,cif = <0x53>; + status = "disabled"; + phandle = <0x230>; + }; + + rkcif-mipi-lvds1-sditf-vir2 { + compatible = "rockchip,rkcif-sditf"; + rockchip,cif = <0x53>; + status = "disabled"; + phandle = <0x231>; + }; + + rkcif-mipi-lvds1-sditf-vir3 { + compatible = "rockchip,rkcif-sditf"; + rockchip,cif = <0x53>; + status = "disabled"; + phandle = <0x232>; + }; + + rkcif-mipi-lvds2 { + compatible = "rockchip,rkcif-mipi-lvds"; + rockchip,hw = <0x4f>; + iommus = <0x50>; + status = "okay"; + phandle = <0x55>; + + port { + + endpoint { + remote-endpoint = <0x54>; + phandle = <0x4e>; + }; + }; + }; + + rkcif-mipi-lvds2-sditf { + compatible = "rockchip,rkcif-sditf"; + rockchip,cif = <0x55>; + status = "okay"; + phandle = <0x233>; + + port { + + endpoint { + remote-endpoint = <0x56>; + phandle = <0x59>; + }; + }; + }; + + rkcif-mipi-lvds2-sditf-vir1 { + compatible = "rockchip,rkcif-sditf"; + rockchip,cif = <0x55>; + status = "disabled"; + phandle = <0x234>; + }; + + rkcif-mipi-lvds2-sditf-vir2 { + compatible = "rockchip,rkcif-sditf"; + rockchip,cif = <0x55>; + status = "disabled"; + phandle = <0x235>; + }; + + rkcif-mipi-lvds2-sditf-vir3 { + compatible = "rockchip,rkcif-sditf"; + rockchip,cif = <0x55>; + status = "disabled"; + phandle = <0x236>; + }; + + rkcif-mipi-lvds3 { + compatible = "rockchip,rkcif-mipi-lvds"; + rockchip,hw = <0x4f>; + iommus = <0x50>; + status = "disabled"; + phandle = <0x57>; + }; + + rkcif-mipi-lvds3-sditf { + compatible = "rockchip,rkcif-sditf"; + rockchip,cif = <0x57>; + status = "disabled"; + phandle = <0x237>; + }; + + rkcif-mipi-lvds3-sditf-vir1 { + compatible = "rockchip,rkcif-sditf"; + rockchip,cif = <0x57>; + status = "disabled"; + phandle = <0x238>; + }; + + rkcif-mipi-lvds3-sditf-vir2 { + compatible = "rockchip,rkcif-sditf"; + rockchip,cif = <0x57>; + status = "disabled"; + phandle = <0x239>; + }; + + rkcif-mipi-lvds3-sditf-vir3 { + compatible = "rockchip,rkcif-sditf"; + rockchip,cif = <0x57>; + status = "disabled"; + phandle = <0x23a>; + }; + + rkisp0-vir0 { + compatible = "rockchip,rkisp-vir"; + rockchip,hw = <0x58>; + status = "disabled"; + phandle = <0x23b>; + }; + + rkisp0-vir1 { + compatible = "rockchip,rkisp-vir"; + rockchip,hw = <0x58>; + status = "disabled"; + phandle = <0x23c>; + }; + + rkisp0-vir2 { + compatible = "rockchip,rkisp-vir"; + rockchip,hw = <0x58>; + status = "okay"; + phandle = <0x23d>; + + port { + #address-cells = <0x01>; + #size-cells = <0x00>; + + endpoint@0 { + reg = <0x00>; + remote-endpoint = <0x59>; + phandle = <0x56>; + }; + }; + }; + + rkisp0-vir3 { + compatible = "rockchip,rkisp-vir"; + rockchip,hw = <0x58>; + status = "disabled"; + phandle = <0x23e>; + }; + + rkisp1-vir0 { + compatible = "rockchip,rkisp-vir"; + rockchip,hw = <0x5a>; + status = "disabled"; + phandle = <0x23f>; + }; + + rkisp1-vir1 { + compatible = "rockchip,rkisp-vir"; + rockchip,hw = <0x5a>; + status = "disabled"; + phandle = <0x240>; + }; + + rkisp1-vir2 { + compatible = "rockchip,rkisp-vir"; + rockchip,hw = <0x5a>; + status = "disabled"; + phandle = <0x241>; + }; + + rkisp1-vir3 { + compatible = "rockchip,rkisp-vir"; + rockchip,hw = <0x5a>; + status = "disabled"; + phandle = <0x242>; + }; + + rkispp0-vir0 { + compatible = "rockchip,rk3588-rkispp-vir"; + rockchip,hw = <0x5b>; + status = "disabled"; + phandle = <0x243>; + }; + + rkispp1-vir0 { + compatible = "rockchip,rk3588-rkispp-vir"; + rockchip,hw = <0x5c>; + status = "disabled"; + phandle = <0x244>; + }; + + rkvenc-ccu { + compatible = "rockchip,rkv-encoder-v2-ccu"; + status = "okay"; + phandle = <0xc3>; + }; + + rkvtunnel { + compatible = "rockchip,video-tunnel"; + status = "disabled"; + phandle = <0x245>; + }; + + rockchip-suspend { + compatible = "rockchip,pm-rk3588"; + status = "okay"; + rockchip,sleep-debug-en = <0x01>; + rockchip,sleep-mode-config = <0x5000604>; + rockchip,wakeup-config = <0x100>; + phandle = <0x246>; + }; + + rockchip-system-monitor { + compatible = "rockchip,system-monitor"; + rockchip,thermal-zone = "soc-thermal"; + phandle = <0x247>; + }; + + thermal-zones { + phandle = <0x248>; + + soc-thermal { + polling-delay-passive = <0x14>; + polling-delay = <0x3e8>; + sustainable-power = <0x834>; + thermal-sensors = <0x5d 0x00>; + phandle = <0x249>; + + trips { + + trip-point-0 { + temperature = <0x124f8>; + hysteresis = <0x7d0>; + type = "passive"; + phandle = <0x24a>; + }; + + trip-point-1 { + temperature = <0x14c08>; + hysteresis = <0x7d0>; + type = "passive"; + phandle = <0x5e>; + }; + + soc-crit { + temperature = <0x1c138>; + hysteresis = <0x7d0>; + type = "critical"; + phandle = <0x24b>; + }; + }; + + cooling-maps { + + map0 { + trip = <0x5e>; + cooling-device = <0x06 0xffffffff 0xffffffff>; + contribution = <0x400>; + }; + + map1 { + trip = <0x5e>; + cooling-device = <0x0a 0xffffffff 0xffffffff>; + contribution = <0x400>; + }; + + map2 { + trip = <0x5e>; + cooling-device = <0x0c 0xffffffff 0xffffffff>; + contribution = <0x400>; + }; + + map3 { + trip = <0x5e>; + cooling-device = <0x5f 0xffffffff 0xffffffff>; + contribution = <0x400>; + }; + }; + }; + + bigcore0-thermal { + polling-delay-passive = <0x14>; + polling-delay = <0x3e8>; + thermal-sensors = <0x5d 0x01>; + phandle = <0x24c>; + }; + + bigcore1-thermal { + polling-delay-passive = <0x14>; + polling-delay = <0x3e8>; + thermal-sensors = <0x5d 0x02>; + phandle = <0x24d>; + }; + + littlecore-thermal { + polling-delay-passive = <0x14>; + polling-delay = <0x3e8>; + thermal-sensors = <0x5d 0x03>; + phandle = <0x24e>; + }; + + center-thermal { + polling-delay-passive = <0x14>; + polling-delay = <0x3e8>; + thermal-sensors = <0x5d 0x04>; + phandle = <0x24f>; + }; + + gpu-thermal { + polling-delay-passive = <0x14>; + polling-delay = <0x3e8>; + thermal-sensors = <0x5d 0x05>; + phandle = <0x250>; + }; + + npu-thermal { + polling-delay-passive = <0x14>; + polling-delay = <0x3e8>; + thermal-sensors = <0x5d 0x06>; + phandle = <0x251>; + }; + }; + + timer { + compatible = "arm,armv8-timer"; + interrupts = <0x01 0x0d 0xf04 0x01 0x0e 0xf04 0x01 0x0b 0xf04 0x01 0x0a 0xf04>; + }; + + sram@10f000 { + compatible = "mmio-sram"; + reg = <0x00 0x10f000 0x00 0x100>; + #address-cells = <0x01>; + #size-cells = <0x01>; + ranges = <0x00 0x00 0x10f000 0x100>; + + sram@0 { + compatible = "arm,scmi-shmem"; + reg = <0x00 0x100>; + phandle = <0x46>; + }; + }; + + gpu@fb000000 { + compatible = "arm,mali-bifrost"; + reg = <0x00 0xfb000000 0x00 0x200000>; + interrupts = <0x00 0x5e 0x04 0x00 0x5d 0x04 0x00 0x5c 0x04>; + interrupt-names = "GPU\0MMU\0JOB"; + clocks = <0x0e 0x05 0x02 0x115 0x02 0x116 0x02 0x114>; + clock-names = "clk_mali\0clk_gpu_coregroup\0clk_gpu_stacks\0clk_gpu"; + assigned-clocks = <0x0e 0x05>; + assigned-clock-rates = <0xbebc200>; + power-domains = <0x60 0x0c>; + operating-points-v2 = <0x61>; + #cooling-cells = <0x02>; + dynamic-power-coefficient = <0xba6>; + upthreshold = <0x1e>; + downdifferential = <0x0a>; + status = "okay"; + mali-supply = <0x62>; + mem-supply = <0x62>; + phandle = <0x5f>; + }; + + gpu-opp-table { + compatible = "operating-points-v2"; + nvmem-cells = <0x63 0x64 0x21>; + nvmem-cell-names = "leakage\0opp-info\0specification_serial_number"; + rockchip,supported-hw; + rockchip,pvtm-hw = <0x04>; + rockchip,pvtm-voltage-sel-hw = <0x00 0x31f 0x00 0x320 0x333 0x01 0x334 0x34c 0x02 0x34d 0x365 0x03 0x366 0x37e 0x04 0x37f 0x270f 0x05>; + rockchip,pvtm-voltage-sel = <0x00 0x32f 0x00 0x330 0x343 0x01 0x344 0x35c 0x02 0x35d 0x375 0x03 0x376 0x38e 0x04 0x38f 0x270f 0x05>; + rockchip,pvtm-pvtpll; + rockchip,pvtm-offset = <0x1c>; + rockchip,pvtm-sample-time = <0x44c>; + rockchip,pvtm-freq = "\0\f5"; + rockchip,pvtm-volt = <0xb71b0>; + rockchip,pvtm-ref-temp = <0x19>; + rockchip,pvtm-temp-prop = <0xffffff79 0xffffff79>; + rockchip,pvtm-thermal-zone = "gpu-thermal"; + rockchip,opp-clocks = <0x02 0x114>; + rockchip,grf = <0x65>; + volt-mem-read-margin = <0xd0bd8 0x01 0xbac48 0x02 0xa4cb8 0x03 0x78d98 0x04>; + low-volt-mem-read-margin = <0x04>; + intermediate-threshold-freq = <0x61a80>; + rockchip,temp-hysteresis = <0x1388>; + rockchip,low-temp = <0x2710>; + rockchip,low-temp-min-volt = <0xb71b0>; + rockchip,high-temp = <0x14c08>; + rockchip,high-temp-max-freq = "\0\f5"; + phandle = <0x61>; + + opp-300000000 { + opp-supported-hw = <0xf9 0xffff>; + opp-hz = <0x00 0x11e1a300>; + opp-microvolt = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + }; + + opp-400000000 { + opp-supported-hw = <0xf9 0xffff>; + opp-hz = <0x00 0x17d78400>; + opp-microvolt = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + }; + + opp-500000000 { + opp-supported-hw = <0xf9 0xffff>; + opp-hz = <0x00 0x1dcd6500>; + opp-microvolt = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + }; + + opp-600000000 { + opp-supported-hw = <0xf9 0xffff>; + opp-hz = <0x00 0x23c34600>; + opp-microvolt = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + }; + + opp-700000000 { + opp-supported-hw = <0xf9 0xffff>; + opp-hz = <0x00 0x29b92700>; + opp-microvolt = <0xaae60 0xaae60 0xcf850 0xaae60 0xaae60 0xcf850>; + opp-microvolt-L2 = <0xa7d8c 0xa7d8c 0xcf850 0xa7d8c 0xa7d8c 0xcf850>; + opp-microvolt-L3 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + opp-microvolt-L4 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + opp-microvolt-L5 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + }; + + opp-800000000 { + opp-supported-hw = <0xf9 0xffff>; + opp-hz = <0x00 0x2faf0800>; + opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; + opp-microvolt-L1 = <0xb40dc 0xb40dc 0xcf850 0xb40dc 0xb40dc 0xcf850>; + opp-microvolt-L2 = <0xb1008 0xb1008 0xcf850 0xb1008 0xb1008 0xcf850>; + opp-microvolt-L3 = <0xadf34 0xadf34 0xcf850 0xadf34 0xadf34 0xcf850>; + opp-microvolt-L4 = <0xaae60 0xaae60 0xcf850 0xaae60 0xaae60 0xcf850>; + opp-microvolt-L5 = <0xaae60 0xaae60 0xcf850 0xaae60 0xaae60 0xcf850>; + }; + + opp-900000000 { + opp-supported-hw = <0xf9 0xffff>; + opp-hz = <0x00 0x35a4e900>; + opp-microvolt = <0xc3500 0xc3500 0xcf850 0xc3500 0xc3500 0xcf850>; + opp-microvolt-L1 = <0xc042c 0xc042c 0xcf850 0xc042c 0xc042c 0xcf850>; + opp-microvolt-L2 = <0xbd358 0xbd358 0xcf850 0xbd358 0xbd358 0xcf850>; + opp-microvolt-L3 = <0xba284 0xba284 0xcf850 0xba284 0xba284 0xcf850>; + opp-microvolt-L4 = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; + opp-microvolt-L5 = <0xb40dc 0xb40dc 0xcf850 0xb40dc 0xb40dc 0xcf850>; + }; + + opp-1000000000 { + opp-supported-hw = <0xf9 0xffff>; + opp-hz = <0x00 0x3b9aca00>; + opp-microvolt = <0xcf850 0xcf850 0xcf850 0xcf850 0xcf850 0xcf850>; + opp-microvolt-L1 = <0xcc77c 0xcc77c 0xcf850 0xcc77c 0xcc77c 0xcf850>; + opp-microvolt-L2 = <0xc96a8 0xc96a8 0xcf850 0xc96a8 0xc96a8 0xcf850>; + opp-microvolt-L3 = <0xc65d4 0xc65d4 0xcf850 0xc65d4 0xc65d4 0xcf850>; + opp-microvolt-L4 = <0xc3500 0xc3500 0xcf850 0xc3500 0xc3500 0xcf850>; + opp-microvolt-L5 = <0xc042c 0xc042c 0xcf850 0xc042c 0xc042c 0xcf850>; + }; + + opp-j-m-300000000 { + opp-supported-hw = <0x06 0xffff>; + opp-hz = <0x00 0x11e1a300>; + opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; + }; + + opp-j-m-400000000 { + opp-supported-hw = <0x06 0xffff>; + opp-hz = <0x00 0x17d78400>; + opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; + }; + + opp-j-m-500000000 { + opp-supported-hw = <0x06 0xffff>; + opp-hz = <0x00 0x1dcd6500>; + opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; + }; + + opp-j-m-600000000 { + opp-supported-hw = <0x06 0xffff>; + opp-hz = <0x00 0x23c34600>; + opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; + }; + + opp-j-m-700000000 { + opp-supported-hw = <0x06 0xffff>; + opp-hz = <0x00 0x29b92700>; + opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; + }; + + opp-j-850000000 { + opp-supported-hw = <0x04 0xffff>; + opp-hz = <0x00 0x32a9f880>; + opp-microvolt = <0xc042c 0xc042c 0xcf850 0xc042c 0xc042c 0xcf850>; + opp-microvolt-L1 = <0xbd358 0xbd358 0xcf850 0xbd358 0xbd358 0xcf850>; + opp-microvolt-L2 = <0xba284 0xba284 0xcf850 0xba284 0xba284 0xcf850>; + opp-microvolt-L3 = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; + opp-microvolt-L4 = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; + opp-microvolt-L5 = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; + }; + + opp-m-800000000 { + opp-supported-hw = <0x02 0xffff>; + opp-hz = <0x00 0x2faf0800>; + opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; + }; + + opp-m-900000000 { + opp-supported-hw = <0x02 0xffff>; + opp-hz = <0x00 0x35a4e900>; + opp-microvolt = <0xc3500 0xc3500 0xcf850 0xc3500 0xc3500 0xcf850>; + opp-microvolt-L1 = <0xc042c 0xc042c 0xcf850 0xc042c 0xc042c 0xcf850>; + opp-microvolt-L2 = <0xbd358 0xbd358 0xcf850 0xbd358 0xbd358 0xcf850>; + opp-microvolt-L3 = <0xba284 0xba284 0xcf850 0xba284 0xba284 0xcf850>; + opp-microvolt-L4 = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; + opp-microvolt-L5 = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; + }; + + opp-m-1000000000 { + opp-supported-hw = <0x02 0xffff>; + opp-hz = <0x00 0x3b9aca00>; + opp-microvolt = <0xcf850 0xcf850 0xcf850 0xcf850 0xcf850 0xcf850>; + opp-microvolt-L1 = <0xcc77c 0xcc77c 0xcf850 0xcc77c 0xcc77c 0xcf850>; + opp-microvolt-L2 = <0xc96a8 0xc96a8 0xcf850 0xc96a8 0xc96a8 0xcf850>; + opp-microvolt-L3 = <0xc65d4 0xc65d4 0xcf850 0xc65d4 0xc65d4 0xcf850>; + opp-microvolt-L4 = <0xc3500 0xc3500 0xcf850 0xc3500 0xc3500 0xcf850>; + opp-microvolt-L5 = <0xc042c 0xc042c 0xcf850 0xc042c 0xc042c 0xcf850>; + }; + }; + + usbdrd3_0 { + compatible = "rockchip,rk3588-dwc3\0rockchip,rk3399-dwc3"; + clocks = <0x02 0x1a3 0x02 0x1a2 0x02 0x1a1>; + clock-names = "ref\0suspend\0bus"; + #address-cells = <0x02>; + #size-cells = <0x02>; + ranges; + status = "okay"; + phandle = <0x252>; + + usb@fc000000 { + compatible = "snps,dwc3"; + reg = <0x00 0xfc000000 0x00 0x400000>; + interrupts = <0x00 0xdc 0x04>; + power-domains = <0x60 0x1f>; + resets = <0x02 0x2a4>; + reset-names = "usb3-otg"; + dr_mode = "host"; + phys = <0x66 0x67>; + phy-names = "usb2-phy\0usb3-phy"; + phy_type = "utmi_wide"; + snps,dis_enblslpm_quirk; + snps,dis-u1-entry-quirk; + snps,dis-u2-entry-quirk; + snps,dis-u2-freeclk-exists-quirk; + snps,dis-del-phy-power-chg-quirk; + snps,dis-tx-ipgap-linecheck-quirk; + snps,parkmode-disable-hs-quirk; + snps,parkmode-disable-ss-quirk; + quirk-skip-phy-init; + status = "okay"; + usb-role-switch; + phandle = <0x253>; + + port { + #address-cells = <0x01>; + #size-cells = <0x00>; + + endpoint@0 { + reg = <0x00>; + remote-endpoint = <0x68>; + phandle = <0x17d>; + }; + }; + }; + }; + + usb@fc800000 { + compatible = "rockchip,rk3588-ehci\0generic-ehci"; + reg = <0x00 0xfc800000 0x00 0x40000>; + interrupts = <0x00 0xd7 0x04>; + clocks = <0x02 0x19d 0x02 0x19e 0x69 0x6a>; + clock-names = "usbhost\0arbiter\0utmi\0alk_usb"; + companion = <0x6b>; + phys = <0x6c>; + phy-names = "usb2-phy"; + power-domains = <0x60 0x1f>; + status = "okay"; + phandle = <0x254>; + }; + + usb@fc840000 { + compatible = "rockchip,rk3588-ohci\0generic-ohci"; + reg = <0x00 0xfc840000 0x00 0x40000>; + interrupts = <0x00 0xd8 0x04>; + clocks = <0x02 0x19d 0x02 0x19e 0x69 0x6a>; + clock-names = "usbhost\0arbiter\0utmi\0alk_usb"; + phys = <0x6c>; + phy-names = "usb2-phy"; + power-domains = <0x60 0x1f>; + status = "okay"; + phandle = <0x6b>; + }; + + usb@fc880000 { + compatible = "rockchip,rk3588-ehci\0generic-ehci"; + reg = <0x00 0xfc880000 0x00 0x40000>; + interrupts = <0x00 0xda 0x04>; + clocks = <0x02 0x19f 0x02 0x1a0 0x6d 0x6a>; + clock-names = "usbhost\0arbiter\0utmi\0alk_usb"; + companion = <0x6e>; + phys = <0x6f>; + phy-names = "usb2-phy"; + power-domains = <0x60 0x1f>; + status = "okay"; + phandle = <0x255>; + }; + + usb@fc8c0000 { + compatible = "rockchip,rk3588-ohci\0generic-ohci"; + reg = <0x00 0xfc8c0000 0x00 0x40000>; + interrupts = <0x00 0xdb 0x04>; + clocks = <0x02 0x19f 0x02 0x1a0 0x6d 0x6a>; + clock-names = "usbhost\0arbiter\0utmi\0alk_usb"; + phys = <0x6f>; + phy-names = "usb2-phy"; + power-domains = <0x60 0x1f>; + status = "okay"; + phandle = <0x6e>; + }; + + iommu@fc900000 { + compatible = "arm,smmu-v3"; + reg = <0x00 0xfc900000 0x00 0x200000>; + interrupts = <0x00 0x171 0x04 0x00 0x173 0x04 0x00 0x176 0x04 0x00 0x16f 0x04>; + interrupt-names = "eventq\0gerror\0priq\0cmdq-sync"; + #iommu-cells = <0x01>; + status = "disabled"; + phandle = <0x256>; + }; + + iommu@fcb00000 { + compatible = "arm,smmu-v3"; + reg = <0x00 0xfcb00000 0x00 0x200000>; + interrupts = <0x00 0x17d 0x04 0x00 0x17f 0x04 0x00 0x182 0x04 0x00 0x17b 0x04>; + interrupt-names = "eventq\0gerror\0priq\0cmdq-sync"; + #iommu-cells = <0x01>; + status = "disabled"; + phandle = <0x257>; + }; + + usbhost3_0 { + compatible = "rockchip,rk3588-dwc3\0rockchip,rk3399-dwc3"; + clocks = <0x02 0x179 0x02 0x178 0x02 0x177 0x02 0x17a 0x02 0x166 0x02 0x181>; + clock-names = "ref\0suspend\0bus\0utmi\0php\0pipe"; + #address-cells = <0x02>; + #size-cells = <0x02>; + ranges; + status = "disabled"; + phandle = <0x258>; + + usb@fcd00000 { + compatible = "snps,dwc3"; + reg = <0x00 0xfcd00000 0x00 0x400000>; + interrupts = <0x00 0xde 0x04>; + resets = <0x02 0x237>; + reset-names = "usb3-host"; + dr_mode = "host"; + phys = <0x70 0x04>; + phy-names = "usb3-phy"; + phy_type = "utmi_wide"; + snps,dis_enblslpm_quirk; + snps,dis-u2-freeclk-exists-quirk; + snps,dis-del-phy-power-chg-quirk; + snps,dis-tx-ipgap-linecheck-quirk; + snps,dis_rxdet_inp3_quirk; + snps,parkmode-disable-hs-quirk; + snps,parkmode-disable-ss-quirk; + status = "disabled"; + phandle = <0x259>; + }; + }; + + syscon@fd588000 { + compatible = "rockchip,rk3588-pmu0-grf\0syscon\0simple-mfd"; + reg = <0x00 0xfd588000 0x00 0x2000>; + phandle = <0x25a>; + + reboot-mode { + compatible = "syscon-reboot-mode"; + offset = <0x80>; + mode-bootloader = <0x5242c301>; + mode-charge = <0x5242c30b>; + mode-fastboot = <0x5242c309>; + mode-loader = <0x5242c301>; + mode-normal = <0x5242c300>; + mode-recovery = <0x5242c303>; + mode-ums = <0x5242c30c>; + mode-panic = <0x5242c307>; + mode-watchdog = <0x5242c308>; + mode-quiescent = <0x5242c30e>; + mode-winusb = <0x5242c30f>; + phandle = <0x25b>; + }; + }; + + syscon@fd58a000 { + compatible = "rockchip,rk3588-pmu1-grf\0syscon"; + reg = <0x00 0xfd58a000 0x00 0x2000>; + phandle = <0x104>; + }; + + syscon@fd58c000 { + compatible = "rockchip,rk3588-sys-grf\0syscon\0simple-mfd"; + reg = <0x00 0xfd58c000 0x00 0x1000>; + phandle = <0xc8>; + + rgb { + compatible = "rockchip,rk3588-rgb"; + pinctrl-names = "default"; + pinctrl-0 = <0x71>; + status = "disabled"; + phandle = <0x25c>; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + reg = <0x00>; + #address-cells = <0x01>; + #size-cells = <0x00>; + + endpoint@2 { + reg = <0x02>; + remote-endpoint = <0x3d>; + status = "disabled"; + phandle = <0xf0>; + }; + }; + }; + }; + }; + + syscon@fd590000 { + compatible = "rockchip,rk3588-bigcore0-grf\0syscon"; + reg = <0x00 0xfd590000 0x00 0x100>; + phandle = <0x26>; + }; + + syscon@fd592000 { + compatible = "rockchip,rk3588-bigcore1-grf\0syscon"; + reg = <0x00 0xfd592000 0x00 0x100>; + phandle = <0x29>; + }; + + syscon@fd594000 { + compatible = "rockchip,rk3588-litcore-grf\0syscon"; + reg = <0x00 0xfd594000 0x00 0x100>; + phandle = <0x22>; + }; + + syscon@fd598000 { + compatible = "rockchip,rk3588-dsu-grf\0syscon"; + reg = <0x00 0xfd598000 0x00 0x100>; + phandle = <0x23>; + }; + + syscon@fd5a0000 { + compatible = "rockchip,rk3588-gpu-grf\0syscon"; + reg = <0x00 0xfd5a0000 0x00 0x100>; + phandle = <0x65>; + }; + + syscon@fd5a2000 { + compatible = "rockchip,rk3588-npu-grf\0syscon"; + reg = <0x00 0xfd5a2000 0x00 0x100>; + phandle = <0xb6>; + }; + + syscon@fd5a4000 { + compatible = "rockchip,rk3588-vop-grf\0syscon"; + reg = <0x00 0xfd5a4000 0x00 0x2000>; + phandle = <0xd7>; + }; + + syscon@fd5a6000 { + compatible = "rockchip,rk3588-vo-grf\0syscon"; + reg = <0x00 0xfd5a6000 0x00 0x2000>; + clocks = <0x72>; + phandle = <0xf5>; + }; + + syscon@fd5a8000 { + compatible = "rockchip,rk3588-vo-grf\0syscon"; + reg = <0x00 0xfd5a8000 0x00 0x100>; + clocks = <0x73>; + phandle = <0xd8>; + }; + + syscon@fd5ac000 { + compatible = "rockchip,rk3588-usb-grf\0syscon"; + reg = <0x00 0xfd5ac000 0x00 0x4000>; + phandle = <0x74>; + }; + + syscon@fd5b0000 { + compatible = "rockchip,rk3588-php-grf\0syscon"; + reg = <0x00 0xfd5b0000 0x00 0x1000>; + phandle = <0x76>; + }; + + syscon@fd5b4000 { + compatible = "rockchip,mipi-dphy-grf\0syscon"; + reg = <0x00 0xfd5b4000 0x00 0x1000>; + phandle = <0x192>; + }; + + syscon@fd5b5000 { + compatible = "rockchip,mipi-dphy-grf\0syscon"; + reg = <0x00 0xfd5b5000 0x00 0x1000>; + phandle = <0x193>; + }; + + syscon@fd5bc000 { + compatible = "rockchip,pipe-phy-grf\0syscon"; + reg = <0x00 0xfd5bc000 0x00 0x100>; + phandle = <0x194>; + }; + + syscon@fd5c4000 { + compatible = "rockchip,pipe-phy-grf\0syscon"; + reg = <0x00 0xfd5c4000 0x00 0x100>; + phandle = <0x195>; + }; + + syscon@fd5c8000 { + compatible = "rockchip,rk3588-usbdpphy-grf\0syscon"; + reg = <0x00 0xfd5c8000 0x00 0x4000>; + phandle = <0x18c>; + }; + + syscon@fd5d0000 { + compatible = "rockchip,rk3588-usb2phy-grf\0syscon\0simple-mfd"; + reg = <0x00 0xfd5d0000 0x00 0x4000>; + #address-cells = <0x01>; + #size-cells = <0x01>; + phandle = <0x18b>; + + usb2-phy@0 { + compatible = "rockchip,rk3588-usb2phy"; + reg = <0x00 0x10>; + interrupts = <0x00 0x189 0x04>; + resets = <0x02 0xc0047 0x02 0x488>; + reset-names = "phy\0apb"; + clocks = <0x02 0x2b5>; + clock-names = "phyclk"; + clock-output-names = "usb480m_phy0"; + #clock-cells = <0x00>; + rockchip,usbctrl-grf = <0x74>; + status = "okay"; + phandle = <0x18d>; + + otg-port { + #phy-cells = <0x00>; + status = "okay"; + rockchip,typec-vbus-det; + phandle = <0x66>; + }; + }; + }; + + syscon@fd5d8000 { + compatible = "rockchip,rk3588-usb2phy-grf\0syscon\0simple-mfd"; + reg = <0x00 0xfd5d8000 0x00 0x4000>; + #address-cells = <0x01>; + #size-cells = <0x01>; + phandle = <0x25d>; + + usb2-phy@8000 { + compatible = "rockchip,rk3588-usb2phy"; + reg = <0x8000 0x10>; + interrupts = <0x00 0x187 0x04>; + resets = <0x02 0xc0049 0x02 0x48a>; + reset-names = "phy\0apb"; + clocks = <0x02 0x2b5>; + clock-names = "phyclk"; + clock-output-names = "usb480m_phy2"; + #clock-cells = <0x00>; + status = "okay"; + phandle = <0x69>; + + host-port { + #phy-cells = <0x00>; + status = "okay"; + phy-supply = <0x75>; + phandle = <0x6c>; + }; + }; + }; + + syscon@fd5dc000 { + compatible = "rockchip,rk3588-usb2phy-grf\0syscon\0simple-mfd"; + reg = <0x00 0xfd5dc000 0x00 0x4000>; + #address-cells = <0x01>; + #size-cells = <0x01>; + phandle = <0x25e>; + + usb2-phy@c000 { + compatible = "rockchip,rk3588-usb2phy"; + reg = <0xc000 0x10>; + interrupts = <0x00 0x188 0x04>; + resets = <0x02 0xc004a 0x02 0x48b>; + reset-names = "phy\0apb"; + clocks = <0x02 0x2b5>; + clock-names = "phyclk"; + clock-output-names = "usb480m_phy3"; + #clock-cells = <0x00>; + status = "okay"; + phandle = <0x6d>; + + host-port { + #phy-cells = <0x00>; + status = "okay"; + phy-supply = <0x75>; + phandle = <0x6f>; + }; + }; + }; + + syscon@fd5e0000 { + compatible = "rockchip,rk3588-hdptxphy-grf\0syscon"; + reg = <0x00 0xfd5e0000 0x00 0x100>; + phandle = <0x18a>; + }; + + syscon@fd5e8000 { + compatible = "rockchip,mipi-dcphy-grf\0syscon"; + reg = <0x00 0xfd5e8000 0x00 0x4000>; + phandle = <0x190>; + }; + + syscon@fd5ec000 { + compatible = "rockchip,mipi-dcphy-grf\0syscon"; + reg = <0x00 0xfd5ec000 0x00 0x4000>; + phandle = <0x191>; + }; + + syscon@fd5f0000 { + compatible = "rockchip,rk3588-ioc\0syscon"; + reg = <0x00 0xfd5f0000 0x00 0x10000>; + phandle = <0x196>; + }; + + clock-controller@fd7c0000 { + compatible = "rockchip,rk3588-cru"; + rockchip,grf = <0x76>; + reg = <0x00 0xfd7c0000 0x00 0x5c000>; + #clock-cells = <0x01>; + #reset-cells = <0x01>; + assigned-clocks = <0x02 0x09 0x02 0x05 0x02 0x08 0x02 0x07 0x02 0xd8 0x02 0xda 0x02 0xd9 0x02 0x10e 0x02 0x10f 0x02 0x110 0x02 0x299 0x02 0x29a 0x02 0x7b 0x02 0xec 0x02 0x114 0x02 0x208 0x02 0x20e 0x02 0x21f 0x02 0x77>; + assigned-clock-rates = <0x4190ab00 0x2ee00000 0x32a9f880 0x46cf7100 0x29d7ab80 0x17d78400 0x1dcd6500 0x2cb41780 0x5f5e100 0x17d78400 0x5f5e100 0xbebc200 0x165a0bc0 0x8f0d180 0xbebc200 0xb71b00 0xb71b00 0x5e69ec0 0x1312d00>; + phandle = <0x02>; + }; + + i2c@fd880000 { + compatible = "rockchip,rk3588-i2c\0rockchip,rk3399-i2c"; + reg = <0x00 0xfd880000 0x00 0x1000>; + clocks = <0x02 0x287 0x02 0x286>; + clock-names = "i2c\0pclk"; + interrupts = <0x00 0x13d 0x04>; + pinctrl-names = "default"; + pinctrl-0 = <0x77>; + resets = <0x02 0xc0022 0x02 0xc0021>; + reset-names = "i2c\0apb"; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "okay"; + phandle = <0x25f>; + + rk8602@42 { + compatible = "rockchip,rk8602"; + reg = <0x42>; + vin-supply = <0x78>; + regulator-compatible = "rk860x-reg"; + regulator-name = "vdd_cpu_big0_s0"; + regulator-min-microvolt = <0x86470>; + regulator-max-microvolt = <0x100590>; + regulator-ramp-delay = <0x8fc>; + rockchip,suspend-voltage-selector = <0x01>; + regulator-boot-on; + regulator-always-on; + phandle = <0x18>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + rk8603@43 { + compatible = "rockchip,rk8603"; + reg = <0x43>; + vin-supply = <0x78>; + regulator-compatible = "rk860x-reg"; + regulator-name = "vdd_cpu_big1_s0"; + regulator-min-microvolt = <0x86470>; + regulator-max-microvolt = <0x100590>; + regulator-ramp-delay = <0x8fc>; + rockchip,suspend-voltage-selector = <0x01>; + regulator-boot-on; + regulator-always-on; + phandle = <0x1c>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + pc9202@3c { + status = "okay"; + compatible = "firefly,pc9202"; + reg = <0x3c>; + index = <0x00>; + wd-en-gpio = <0x79 0x15 0x00>; + driver-names = "wdt_core"; + }; + + hym8563@51 { + status = "okay"; + compatible = "haoyu,hym8563"; + reg = <0x51>; + #clock-cells = <0x00>; + clock-frequency = <0x8000>; + clock-output-names = "hym8563"; + pinctrl-names = "default"; + pinctrl-0 = <0x7a>; + interrupt-parent = <0x7b>; + interrupts = <0x08 0x08>; + wakeup-source; + phandle = <0x1e4>; + }; + }; + + serial@fd890000 { + compatible = "rockchip,rk3588-uart\0snps,dw-apb-uart"; + reg = <0x00 0xfd890000 0x00 0x100>; + interrupts = <0x00 0x14b 0x04>; + clocks = <0x02 0x2ae 0x02 0x2af>; + clock-names = "baudclk\0apb_pclk"; + reg-shift = <0x02>; + reg-io-width = <0x04>; + dmas = <0x7c 0x06 0x7c 0x07>; + pinctrl-names = "default"; + pinctrl-0 = <0x7d>; + status = "disabled"; + phandle = <0x260>; + }; + + pwm@fd8b0000 { + compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; + reg = <0x00 0xfd8b0000 0x00 0x10>; + interrupts = <0x00 0x158 0x04>; + #pwm-cells = <0x03>; + pinctrl-names = "active"; + pinctrl-0 = <0x7e>; + clocks = <0x02 0x2a5 0x02 0x2a4>; + clock-names = "pwm\0pclk"; + status = "disabled"; + phandle = <0x261>; + }; + + pwm@fd8b0010 { + compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; + reg = <0x00 0xfd8b0010 0x00 0x10>; + interrupts = <0x00 0x158 0x04>; + #pwm-cells = <0x03>; + pinctrl-names = "active"; + pinctrl-0 = <0x7f>; + clocks = <0x02 0x2a5 0x02 0x2a4>; + clock-names = "pwm\0pclk"; + status = "disabled"; + phandle = <0x262>; + }; + + pwm@fd8b0020 { + compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; + reg = <0x00 0xfd8b0020 0x00 0x10>; + interrupts = <0x00 0x158 0x04>; + #pwm-cells = <0x03>; + pinctrl-names = "active"; + pinctrl-0 = <0x80>; + clocks = <0x02 0x2a5 0x02 0x2a4>; + clock-names = "pwm\0pclk"; + status = "disabled"; + phandle = <0x263>; + }; + + pwm@fd8b0030 { + compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; + reg = <0x00 0xfd8b0030 0x00 0x10>; + interrupts = <0x00 0x158 0x04 0x00 0x159 0x04>; + #pwm-cells = <0x03>; + pinctrl-names = "active"; + pinctrl-0 = <0x81>; + clocks = <0x02 0x2a5 0x02 0x2a4>; + clock-names = "pwm\0pclk"; + status = "disabled"; + phandle = <0x264>; + }; + + power-management@fd8d8000 { + compatible = "rockchip,rk3588-pmu\0syscon\0simple-mfd"; + reg = <0x00 0xfd8d8000 0x00 0x400>; + phandle = <0xd9>; + + power-controller { + compatible = "rockchip,rk3588-power-controller"; + #power-domain-cells = <0x01>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "okay"; + phandle = <0x60>; + + power-domain@8 { + reg = <0x08>; + #address-cells = <0x01>; + #size-cells = <0x00>; + + power-domain@9 { + reg = <0x09>; + #address-cells = <0x01>; + #size-cells = <0x00>; + clocks = <0x02 0x12f 0x02 0x131 0x02 0x130 0x02 0x126>; + pm_qos = <0x82 0x83 0x84>; + + power-domain@10 { + reg = <0x0a>; + clocks = <0x02 0x12f 0x02 0x131 0x02 0x130>; + pm_qos = <0x85>; + }; + + power-domain@11 { + reg = <0x0b>; + clocks = <0x02 0x12f 0x02 0x131 0x02 0x130>; + pm_qos = <0x86>; + }; + }; + }; + + power-domain@12 { + reg = <0x0c>; + clocks = <0x02 0x114 0x02 0x115 0x02 0x116>; + pm_qos = <0x87 0x88 0x89 0x8a>; + }; + + power-domain@13 { + reg = <0x0d>; + #address-cells = <0x01>; + #size-cells = <0x00>; + + power-domain@14 { + reg = <0x0e>; + clocks = <0x02 0x18f 0x02 0x1be 0x02 0x1bc 0x02 0x190 0x02 0x18e>; + pm_qos = <0x8b>; + }; + + power-domain@15 { + reg = <0x0f>; + clocks = <0x02 0x194 0x02 0x1be 0x02 0x1bc 0x02 0x195>; + pm_qos = <0x8c>; + }; + + power-domain@16 { + reg = <0x10>; + #address-cells = <0x01>; + #size-cells = <0x00>; + clocks = <0x02 0x1c4 0x02 0x1c5>; + pm_qos = <0x8d 0x8e 0x8f>; + + power-domain@17 { + reg = <0x11>; + clocks = <0x02 0x1c9 0x02 0x1c4 0x02 0x1c5 0x02 0x1ca>; + pm_qos = <0x90 0x91 0x92>; + }; + }; + }; + + power-domain@21 { + reg = <0x15>; + #address-cells = <0x01>; + #size-cells = <0x00>; + clocks = <0x02 0x1be 0x02 0x1bd 0x02 0x1bc 0x02 0x1bf 0x02 0x1aa 0x02 0x1a9 0x02 0x1ac 0x02 0x1ad 0x02 0x1ae 0x02 0x1af 0x02 0x1b0 0x02 0x1b1 0x02 0x1b2 0x02 0x1b3 0x02 0x1b4 0x02 0x1b5 0x02 0x1b7 0x02 0x1b6>; + pm_qos = <0x93 0x94 0x95 0x96 0x97 0x98 0x99 0x9a>; + + power-domain@23 { + reg = <0x17>; + clocks = <0x02 0x4b 0x02 0x49 0x02 0x1be>; + pm_qos = <0x9b>; + }; + + power-domain@14 { + reg = <0x0e>; + clocks = <0x02 0x18f 0x02 0x1be 0x02 0x1bc 0x02 0x190>; + pm_qos = <0x8b>; + }; + + power-domain@15 { + reg = <0x0f>; + clocks = <0x02 0x194 0x02 0x1be 0x02 0x1bc>; + pm_qos = <0x8c>; + }; + + power-domain@22 { + reg = <0x16>; + clocks = <0x02 0x1ba 0x02 0x1b9>; + pm_qos = <0x9c>; + }; + }; + + power-domain@24 { + reg = <0x18>; + #address-cells = <0x01>; + #size-cells = <0x00>; + clocks = <0x02 0x26e 0x02 0x26d 0x02 0x270>; + pm_qos = <0x9d 0x9e>; + + power-domain@25 { + reg = <0x19>; + clocks = <0x02 0x1f6 0x02 0x1f7 0x02 0x1f5 0x02 0x1f3 0x02 0x1ee 0x02 0x1ed 0x02 0x26d>; + pm_qos = <0x9f>; + }; + }; + + power-domain@26 { + reg = <0x1a>; + clocks = <0x02 0x22e 0x02 0x22f 0x02 0x22d 0x02 0x218 0x02 0x217 0x02 0x22b 0x02 0x264>; + pm_qos = <0xa0 0xa1>; + }; + + power-domain@27 { + reg = <0x1b>; + #address-cells = <0x01>; + #size-cells = <0x00>; + clocks = <0x02 0x1e1 0x02 0x1e2 0x02 0x1df 0x02 0x1de 0x02 0x1e5 0x02 0x1e4>; + pm_qos = <0xa2 0xa3 0xa4 0xa5>; + + power-domain@28 { + reg = <0x1c>; + clocks = <0x02 0x121 0x02 0x120 0x02 0x1e1 0x02 0x1e2>; + pm_qos = <0xa6 0xa7>; + }; + + power-domain@29 { + reg = <0x1d>; + clocks = <0x02 0x1d6 0x02 0x1d5 0x02 0x1d9 0x02 0x1d8 0x02 0x1e2>; + pm_qos = <0xa8 0xa9>; + }; + }; + + power-domain@30 { + reg = <0x1e>; + clocks = <0x02 0x189 0x02 0x18a>; + pm_qos = <0xaa>; + }; + + power-domain@31 { + reg = <0x1f>; + clocks = <0x02 0x166 0x02 0x1a1 0x02 0x1a4 0x02 0x19d 0x02 0x19e 0x02 0x19f 0x02 0x1a0>; + pm_qos = <0xab 0xac 0xad 0xae>; + }; + + power-domain@33 { + reg = <0x21>; + clocks = <0x02 0x166 0x02 0x169 0x02 0x16a>; + }; + + power-domain@34 { + reg = <0x22>; + clocks = <0x02 0x166 0x02 0x169 0x02 0x16a>; + }; + + power-domain@37 { + reg = <0x25>; + clocks = <0x02 0x199 0x02 0x140>; + pm_qos = <0xaf>; + }; + + power-domain@38 { + reg = <0x26>; + clocks = <0x02 0x3c 0x02 0x3d>; + }; + + power-domain@40 { + reg = <0x28>; + pm_qos = <0xb0>; + }; + }; + }; + + pvtm@fda40000 { + compatible = "rockchip,rk3588-bigcore0-pvtm"; + reg = <0x00 0xfda40000 0x00 0x100>; + #address-cells = <0x01>; + #size-cells = <0x00>; + + pvtm@0 { + reg = <0x00>; + clocks = <0x02 0x2c6 0x02 0x15>; + clock-names = "clk\0pclk"; + }; + }; + + pvtm@fda50000 { + compatible = "rockchip,rk3588-bigcore1-pvtm"; + reg = <0x00 0xfda50000 0x00 0x100>; + #address-cells = <0x01>; + #size-cells = <0x00>; + + pvtm@1 { + reg = <0x01>; + clocks = <0x02 0x2c8 0x02 0x17>; + clock-names = "clk\0pclk"; + }; + }; + + pvtm@fda60000 { + compatible = "rockchip,rk3588-litcore-pvtm"; + reg = <0x00 0xfda60000 0x00 0x100>; + #address-cells = <0x01>; + #size-cells = <0x00>; + + pvtm@2 { + reg = <0x02>; + clocks = <0x02 0x2ca 0x02 0x1b>; + clock-names = "clk\0pclk"; + }; + }; + + pvtm@fdaf0000 { + compatible = "rockchip,rk3588-npu-pvtm"; + reg = <0x00 0xfdaf0000 0x00 0x100>; + #address-cells = <0x01>; + #size-cells = <0x00>; + + pvtm@3 { + reg = <0x03>; + clocks = <0x02 0x12b 0x02 0x129>; + clock-names = "clk\0pclk"; + resets = <0x02 0x1de 0x02 0x1dc>; + reset-names = "rts\0rst-p"; + }; + }; + + pvtm@fdb30000 { + compatible = "rockchip,rk3588-gpu-pvtm"; + reg = <0x00 0xfdb30000 0x00 0x100>; + #address-cells = <0x01>; + #size-cells = <0x00>; + + pvtm@4 { + reg = <0x04>; + clocks = <0x02 0x118>; + clock-names = "clk"; + resets = <0x02 0x430 0x02 0x42f>; + reset-names = "rts\0rst-p"; + }; + }; + + npu@fdab0000 { + compatible = "rockchip,rk3588-rknpu"; + reg = <0x00 0xfdab0000 0x00 0x10000 0x00 0xfdac0000 0x00 0x10000 0x00 0xfdad0000 0x00 0x10000>; + interrupts = <0x00 0x6e 0x04 0x00 0x6f 0x04 0x00 0x70 0x04>; + interrupt-names = "npu0_irq\0npu1_irq\0npu2_irq"; + clocks = <0x0e 0x06 0x02 0x12d 0x02 0x122 0x02 0x124 0x02 0x12e 0x02 0x123 0x02 0x125 0x02 0x131>; + clock-names = "clk_npu\0aclk0\0aclk1\0aclk2\0hclk0\0hclk1\0hclk2\0pclk"; + assigned-clocks = <0x0e 0x06>; + assigned-clock-rates = <0xbebc200>; + resets = <0x02 0x1e6 0x02 0x1b0 0x02 0x1c0 0x02 0x1e8 0x02 0x1b2 0x02 0x1c2>; + reset-names = "srst_a0\0srst_a1\0srst_a2\0srst_h0\0srst_h1\0srst_h2"; + power-domains = <0x60 0x09 0x60 0x0a 0x60 0x0b>; + power-domain-names = "npu0\0npu1\0npu2"; + operating-points-v2 = <0xb1>; + iommus = <0xb2>; + status = "okay"; + rknpu-supply = <0xb3>; + mem-supply = <0xb3>; + phandle = <0x265>; + }; + + npu-opp-table { + compatible = "operating-points-v2"; + nvmem-cells = <0xb4 0xb5 0x21>; + nvmem-cell-names = "leakage\0opp-info\0specification_serial_number"; + rockchip,supported-hw; + rockchip,pvtm-hw = <0x06>; + rockchip,pvtm-voltage-sel-hw = <0x00 0x31f 0x00 0x320 0x333 0x01 0x334 0x34c 0x02 0x34d 0x365 0x03 0x366 0x37e 0x04 0x37f 0x270f 0x05>; + rockchip,pvtm-voltage-sel = <0x00 0x32f 0x00 0x330 0x343 0x01 0x344 0x35c 0x02 0x35d 0x375 0x03 0x376 0x38e 0x04 0x38f 0x270f 0x05>; + rockchip,pvtm-pvtpll; + rockchip,pvtm-offset = <0x50>; + rockchip,pvtm-sample-time = <0x44c>; + rockchip,pvtm-freq = "\0\f5"; + rockchip,pvtm-volt = <0xb71b0>; + rockchip,pvtm-ref-temp = <0x19>; + rockchip,pvtm-temp-prop = <0xffffff8f 0xffffff8f>; + rockchip,pvtm-thermal-zone = "npu-thermal"; + rockchip,opp-clocks = <0x02 0x12a 0x02 0x12f>; + rockchip,grf = <0xb6>; + volt-mem-read-margin = <0xd0bd8 0x01 0xbac48 0x02 0xa4cb8 0x03 0x78d98 0x04>; + low-volt-mem-read-margin = <0x04>; + intermediate-threshold-freq = <0x7a120>; + rockchip,init-freq = <0xf4240>; + rockchip,temp-hysteresis = <0x1388>; + rockchip,low-temp = <0x2710>; + rockchip,low-temp-min-volt = <0xb71b0>; + rockchip,high-temp = <0x14c08>; + rockchip,high-temp-max-freq = "\0\f5"; + phandle = <0xb1>; + + opp-300000000 { + opp-supported-hw = <0xf9 0xffff>; + opp-hz = <0x00 0x11e1a300>; + opp-microvolt = <0xaae60 0xaae60 0xcf850 0xaae60 0xaae60 0xcf850>; + opp-microvolt-L1 = <0xa7d8c 0xa7d8c 0xcf850 0xa7d8c 0xa7d8c 0xcf850>; + opp-microvolt-L2 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + opp-microvolt-L3 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + opp-microvolt-L4 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + opp-microvolt-L5 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + }; + + opp-400000000 { + opp-supported-hw = <0xf9 0xffff>; + opp-hz = <0x00 0x17d78400>; + opp-microvolt = <0xaae60 0xaae60 0xcf850 0xaae60 0xaae60 0xcf850>; + opp-microvolt-L1 = <0xa7d8c 0xa7d8c 0xcf850 0xa7d8c 0xa7d8c 0xcf850>; + opp-microvolt-L2 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + opp-microvolt-L3 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + opp-microvolt-L4 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + opp-microvolt-L5 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + }; + + opp-500000000 { + opp-supported-hw = <0xf9 0xffff>; + opp-hz = <0x00 0x1dcd6500>; + opp-microvolt = <0xaae60 0xaae60 0xcf850 0xaae60 0xaae60 0xcf850>; + opp-microvolt-L1 = <0xa7d8c 0xa7d8c 0xcf850 0xa7d8c 0xa7d8c 0xcf850>; + opp-microvolt-L2 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + opp-microvolt-L3 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + opp-microvolt-L4 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + opp-microvolt-L5 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + }; + + opp-600000000 { + opp-supported-hw = <0xf9 0xffff>; + opp-hz = <0x00 0x23c34600>; + opp-microvolt = <0xaae60 0xaae60 0xcf850 0xaae60 0xaae60 0xcf850>; + opp-microvolt-L1 = <0xa7d8c 0xa7d8c 0xcf850 0xa7d8c 0xa7d8c 0xcf850>; + opp-microvolt-L2 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + opp-microvolt-L3 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + opp-microvolt-L4 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + opp-microvolt-L5 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + }; + + opp-700000000 { + opp-supported-hw = <0xf9 0xffff>; + opp-hz = <0x00 0x29b92700>; + opp-microvolt = <0xaae60 0xaae60 0xcf850 0xaae60 0xaae60 0xcf850>; + opp-microvolt-L3 = <0xa7d8c 0xa7d8c 0xcf850 0xa7d8c 0xa7d8c 0xcf850>; + opp-microvolt-L4 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + opp-microvolt-L5 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + }; + + opp-800000000 { + opp-supported-hw = <0xf9 0xffff>; + opp-hz = <0x00 0x2faf0800>; + opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; + opp-microvolt-L2 = <0xb40dc 0xb40dc 0xcf850 0xb40dc 0xb40dc 0xcf850>; + opp-microvolt-L3 = <0xb1008 0xb1008 0xcf850 0xb1008 0xb1008 0xcf850>; + opp-microvolt-L4 = <0xadf34 0xadf34 0xcf850 0xadf34 0xadf34 0xcf850>; + opp-microvolt-L5 = <0xaae60 0xaae60 0xcf850 0xaae60 0xaae60 0xcf850>; + }; + + opp-900000000 { + opp-supported-hw = <0xf9 0xffff>; + opp-hz = <0x00 0x35a4e900>; + opp-microvolt = <0xc3500 0xc3500 0xcf850 0xc3500 0xc3500 0xcf850>; + opp-microvolt-L1 = <0xc042c 0xc042c 0xcf850 0xc042c 0xc042c 0xcf850>; + opp-microvolt-L2 = <0xbd358 0xbd358 0xcf850 0xbd358 0xbd358 0xcf850>; + opp-microvolt-L3 = <0xba284 0xba284 0xcf850 0xba284 0xba284 0xcf850>; + opp-microvolt-L4 = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; + opp-microvolt-L5 = <0xb40dc 0xb40dc 0xcf850 0xb40dc 0xb40dc 0xcf850>; + }; + + opp-1000000000 { + opp-supported-hw = <0xf9 0xffff>; + opp-hz = <0x00 0x3b9aca00>; + opp-microvolt = <0xcf850 0xcf850 0xcf850 0xcf850 0xcf850 0xcf850>; + opp-microvolt-L1 = <0xcc77c 0xcc77c 0xcf850 0xcc77c 0xcc77c 0xcf850>; + opp-microvolt-L2 = <0xc96a8 0xc96a8 0xcf850 0xc96a8 0xc96a8 0xcf850>; + opp-microvolt-L3 = <0xc65d4 0xc65d4 0xcf850 0xc65d4 0xc65d4 0xcf850>; + opp-microvolt-L4 = <0xc3500 0xc3500 0xcf850 0xc3500 0xc3500 0xcf850>; + opp-microvolt-L5 = <0xc042c 0xc042c 0xcf850 0xc042c 0xc042c 0xcf850>; + }; + + opp-j-m-300000000 { + opp-supported-hw = <0x06 0xffff>; + opp-hz = <0x00 0x11e1a300>; + opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; + }; + + opp-j-m-400000000 { + opp-supported-hw = <0x06 0xffff>; + opp-hz = <0x00 0x17d78400>; + opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; + }; + + opp-j-m-500000000 { + opp-supported-hw = <0x06 0xffff>; + opp-hz = <0x00 0x1dcd6500>; + opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; + }; + + opp-j-m-600000000 { + opp-supported-hw = <0x06 0xffff>; + opp-hz = <0x00 0x23c34600>; + opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; + }; + + opp-j-m-700000000 { + opp-supported-hw = <0x06 0xffff>; + opp-hz = <0x00 0x29b92700>; + opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; + }; + + opp-j-m-800000000 { + opp-supported-hw = <0x06 0xffff>; + opp-hz = <0x00 0x2faf0800>; + opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; + }; + + opp-j-m-950000000 { + opp-supported-hw = <0x06 0xffff>; + opp-hz = <0x00 0x389fd980>; + opp-microvolt = <0xcc77c 0xcc77c 0xcf850 0xcc77c 0xcc77c 0xcf850>; + opp-microvolt-L1 = <0xc96a8 0xc96a8 0xcf850 0xc96a8 0xc96a8 0xcf850>; + opp-microvolt-L2 = <0xc65d4 0xc65d4 0xcf850 0xc65d4 0xc65d4 0xcf850>; + opp-microvolt-L3 = <0xc3500 0xc3500 0xcf850 0xc3500 0xc3500 0xcf850>; + opp-microvolt-L4 = <0xc042c 0xc042c 0xcf850 0xc042c 0xc042c 0xcf850>; + opp-microvolt-L5 = <0xbd358 0xbd358 0xcf850 0xbd358 0xbd358 0xcf850>; + }; + }; + + iommu@fdab9000 { + compatible = "rockchip,iommu-v2"; + reg = <0x00 0xfdab9000 0x00 0x100 0x00 0xfdaba000 0x00 0x100 0x00 0xfdaca000 0x00 0x100 0x00 0xfdada000 0x00 0x100>; + interrupts = <0x00 0x6e 0x04 0x00 0x6f 0x04 0x00 0x70 0x04>; + interrupt-names = "npu0_mmu\0npu1_mmu\0npu2_mmu"; + clocks = <0x02 0x12d 0x02 0x122 0x02 0x124 0x02 0x12e 0x02 0x123 0x02 0x125>; + clock-names = "aclk0\0aclk1\0aclk2\0iface0\0iface1\0iface2"; + #iommu-cells = <0x00>; + status = "okay"; + phandle = <0xb2>; + }; + + vepu@fdb50000 { + compatible = "rockchip,vpu-encoder-v2"; + reg = <0x00 0xfdb50000 0x00 0x400>; + interrupts = <0x00 0x78 0x04>; + interrupt-names = "irq_vepu"; + clocks = <0x02 0x1c0 0x02 0x1c1>; + clock-names = "aclk_vcodec\0hclk_vcodec"; + rockchip,normal-rates = <0x2367b880 0x00>; + assigned-clocks = <0x02 0x1c0>; + assigned-clock-rates = <0x2367b880>; + resets = <0x02 0x2c8 0x02 0x2c9>; + reset-names = "shared_video_a\0shared_video_h"; + rockchip,skip-pmu-idle-request; + rockchip,disable-auto-freq; + iommus = <0xb7>; + rockchip,srv = <0xb8>; + rockchip,taskqueue-node = <0x00>; + rockchip,resetgroup-node = <0x00>; + power-domains = <0x60 0x15>; + status = "disabled"; + phandle = <0x266>; + }; + + vdpu@fdb50400 { + compatible = "rockchip,vpu-decoder-v2"; + reg = <0x00 0xfdb50400 0x00 0x400>; + interrupts = <0x00 0x77 0x04>; + interrupt-names = "irq_vdpu"; + clocks = <0x02 0x1c0 0x02 0x1c1>; + clock-names = "aclk_vcodec\0hclk_vcodec"; + rockchip,normal-rates = <0x2367b880 0x00>; + assigned-clocks = <0x02 0x1c0>; + assigned-clock-rates = <0x2367b880>; + resets = <0x02 0x2c8 0x02 0x2c9>; + reset-names = "shared_video_a\0shared_video_h"; + rockchip,skip-pmu-idle-request; + rockchip,disable-auto-freq; + iommus = <0xb7>; + rockchip,srv = <0xb8>; + rockchip,taskqueue-node = <0x00>; + rockchip,resetgroup-node = <0x00>; + power-domains = <0x60 0x15>; + status = "okay"; + phandle = <0x267>; + }; + + iommu@fdb50800 { + compatible = "rockchip,iommu-v2"; + reg = <0x00 0xfdb50800 0x00 0x40>; + interrupts = <0x00 0x76 0x04>; + interrupt-names = "irq_vdpu_mmu"; + clocks = <0x02 0x1c0 0x02 0x1c1>; + clock-names = "aclk\0iface"; + power-domains = <0x60 0x15>; + #iommu-cells = <0x00>; + status = "okay"; + phandle = <0xb7>; + }; + + avsd-plus@fdb51000 { + compatible = "rockchip,avs-plus-decoder"; + reg = <0x00 0xfdb51000 0x00 0x200>; + interrupts = <0x00 0x77 0x04>; + interrupt-names = "irq_avsd"; + clocks = <0x02 0x1c0 0x02 0x1c1>; + clock-names = "aclk_vcodec\0hclk_vcodec"; + rockchip,normal-rates = <0x2367b880 0x00>; + assigned-clocks = <0x02 0x1c0>; + assigned-clock-rates = <0x2367b880>; + resets = <0x02 0x2c8 0x02 0x2c9>; + reset-names = "shared_video_a\0shared_video_h"; + rockchip,skip-pmu-idle-request; + rockchip,disable-auto-freq; + iommus = <0xb7>; + power-domains = <0x60 0x15>; + rockchip,srv = <0xb8>; + rockchip,taskqueue-node = <0x00>; + rockchip,resetgroup-node = <0x00>; + status = "disabled"; + phandle = <0x268>; + }; + + rga@fdb60000 { + compatible = "rockchip,rga3_core0"; + reg = <0x00 0xfdb60000 0x00 0x1000>; + interrupts = <0x00 0x72 0x04>; + interrupt-names = "rga3_core0_irq"; + clocks = <0x02 0x1ba 0x02 0x1b9 0x02 0x1bb>; + clock-names = "aclk_rga3_0\0hclk_rga3_0\0clk_rga3_0"; + power-domains = <0x60 0x16>; + iommus = <0xb9>; + status = "okay"; + phandle = <0x269>; + }; + + iommu@fdb60f00 { + compatible = "rockchip,iommu-v2"; + reg = <0x00 0xfdb60f00 0x00 0x100>; + interrupts = <0x00 0x72 0x04>; + interrupt-names = "rga3_0_mmu"; + clocks = <0x02 0x1ba 0x02 0x1b9>; + clock-names = "aclk\0iface"; + power-domains = <0x60 0x16>; + #iommu-cells = <0x00>; + status = "okay"; + phandle = <0xb9>; + }; + + rga@fdb70000 { + compatible = "rockchip,rga3_core1"; + reg = <0x00 0xfdb70000 0x00 0x1000>; + interrupts = <0x00 0x73 0x04>; + interrupt-names = "rga3_core1_irq"; + clocks = <0x02 0x18a 0x02 0x189 0x02 0x18b>; + clock-names = "aclk_rga3_1\0hclk_rga3_1\0clk_rga3_1"; + power-domains = <0x60 0x1e>; + iommus = <0xba>; + status = "okay"; + phandle = <0x26a>; + }; + + iommu@fdb70f00 { + compatible = "rockchip,iommu-v2"; + reg = <0x00 0xfdb70f00 0x00 0x100>; + interrupts = <0x00 0x73 0x04>; + interrupt-names = "rga3_1_mmu"; + clocks = <0x02 0x18a 0x02 0x189>; + clock-names = "aclk\0iface"; + power-domains = <0x60 0x1e>; + #iommu-cells = <0x00>; + status = "okay"; + phandle = <0xba>; + }; + + rga@fdb80000 { + compatible = "rockchip,rga2_core0"; + reg = <0x00 0xfdb80000 0x00 0x1000>; + interrupts = <0x00 0x74 0x04>; + interrupt-names = "rga2_irq"; + clocks = <0x02 0x1b7 0x02 0x1b6 0x02 0x1b8>; + clock-names = "aclk_rga2\0hclk_rga2\0clk_rga2"; + power-domains = <0x60 0x15>; + status = "okay"; + phandle = <0x26b>; + }; + + jpegd@fdb90000 { + compatible = "rockchip,rkv-jpeg-decoder-v1"; + reg = <0x00 0xfdb90000 0x00 0x400>; + interrupts = <0x00 0x81 0x04>; + interrupt-names = "irq_jpegd"; + clocks = <0x02 0x1b4 0x02 0x1b5>; + clock-names = "aclk_vcodec\0hclk_vcodec"; + rockchip,normal-rates = <0x23c34600 0x00>; + assigned-clocks = <0x02 0x1b4>; + assigned-clock-rates = <0x23c34600>; + resets = <0x02 0x2d2 0x02 0x2d3>; + reset-names = "video_a\0video_h"; + rockchip,skip-pmu-idle-request; + iommus = <0xbb>; + rockchip,srv = <0xb8>; + rockchip,taskqueue-node = <0x01>; + power-domains = <0x60 0x15>; + status = "okay"; + phandle = <0x26c>; + }; + + iommu@fdb90480 { + compatible = "rockchip,iommu-v2"; + reg = <0x00 0xfdb90480 0x00 0x40>; + interrupts = <0x00 0x82 0x04>; + interrupt-names = "irq_jpegd_mmu"; + clocks = <0x02 0x1b4 0x02 0x1b5>; + clock-names = "aclk\0iface"; + power-domains = <0x60 0x15>; + #iommu-cells = <0x00>; + status = "okay"; + phandle = <0xbb>; + }; + + jpege-core@fdba0000 { + compatible = "rockchip,vpu-jpege-core"; + reg = <0x00 0xfdba0000 0x00 0x400>; + interrupts = <0x00 0x7a 0x04>; + interrupt-names = "irq_jpege0"; + clocks = <0x02 0x1ac 0x02 0x1ad>; + clock-names = "aclk_vcodec\0hclk_vcodec"; + rockchip,normal-rates = <0x2367b880 0x00>; + assigned-clocks = <0x02 0x1ac>; + assigned-clock-rates = <0x2367b880>; + resets = <0x02 0x2ca 0x02 0x2cb>; + reset-names = "video_a\0video_h"; + rockchip,skip-pmu-idle-request; + rockchip,disable-auto-freq; + iommus = <0xbc>; + rockchip,srv = <0xb8>; + rockchip,taskqueue-node = <0x02>; + rockchip,ccu = <0xbd>; + power-domains = <0x60 0x15>; + status = "okay"; + phandle = <0x26d>; + }; + + iommu@fdba0800 { + compatible = "rockchip,iommu-v2"; + reg = <0x00 0xfdba0800 0x00 0x40>; + interrupts = <0x00 0x79 0x04>; + interrupt-names = "irq_jpege0_mmu"; + clocks = <0x02 0x1ac 0x02 0x1ad>; + clock-names = "aclk\0iface"; + power-domains = <0x60 0x15>; + #iommu-cells = <0x00>; + status = "okay"; + phandle = <0xbc>; + }; + + jpege-core@fdba4000 { + compatible = "rockchip,vpu-jpege-core"; + reg = <0x00 0xfdba4000 0x00 0x400>; + interrupts = <0x00 0x7c 0x04>; + interrupt-names = "irq_jpege1"; + clocks = <0x02 0x1ae 0x02 0x1af>; + clock-names = "aclk_vcodec\0hclk_vcodec"; + rockchip,normal-rates = <0x2367b880 0x00>; + assigned-clocks = <0x02 0x1ae>; + assigned-clock-rates = <0x2367b880>; + resets = <0x02 0x2cc 0x02 0x2cd>; + reset-names = "video_a\0video_h"; + rockchip,skip-pmu-idle-request; + rockchip,disable-auto-freq; + iommus = <0xbe>; + rockchip,srv = <0xb8>; + rockchip,taskqueue-node = <0x02>; + rockchip,ccu = <0xbd>; + power-domains = <0x60 0x15>; + status = "okay"; + phandle = <0x26e>; + }; + + iommu@fdba4800 { + compatible = "rockchip,iommu-v2"; + reg = <0x00 0xfdba4800 0x00 0x40>; + interrupts = <0x00 0x7b 0x04>; + interrupt-names = "irq_jpege1_mmu"; + clocks = <0x02 0x1ae 0x02 0x1af>; + clock-names = "aclk\0iface"; + power-domains = <0x60 0x15>; + #iommu-cells = <0x00>; + status = "okay"; + phandle = <0xbe>; + }; + + jpege-core@fdba8000 { + compatible = "rockchip,vpu-jpege-core"; + reg = <0x00 0xfdba8000 0x00 0x400>; + interrupts = <0x00 0x7e 0x04>; + interrupt-names = "irq_jpege2"; + clocks = <0x02 0x1b0 0x02 0x1b1>; + clock-names = "aclk_vcodec\0hclk_vcodec"; + rockchip,normal-rates = <0x2367b880 0x00>; + assigned-clocks = <0x02 0x1b0>; + assigned-clock-rates = <0x2367b880>; + resets = <0x02 0x2ce 0x02 0x2cf>; + reset-names = "video_a\0video_h"; + rockchip,skip-pmu-idle-request; + rockchip,disable-auto-freq; + iommus = <0xbf>; + rockchip,srv = <0xb8>; + rockchip,taskqueue-node = <0x02>; + rockchip,ccu = <0xbd>; + power-domains = <0x60 0x15>; + status = "okay"; + phandle = <0x26f>; + }; + + iommu@fdba8800 { + compatible = "rockchip,iommu-v2"; + reg = <0x00 0xfdba8800 0x00 0x40>; + interrupts = <0x00 0x7d 0x04>; + interrupt-names = "irq_jpege2_mmu"; + clocks = <0x02 0x1b0 0x02 0x1b1>; + clock-names = "aclk\0iface"; + power-domains = <0x60 0x15>; + #iommu-cells = <0x00>; + status = "okay"; + phandle = <0xbf>; + }; + + jpege-core@fdbac000 { + compatible = "rockchip,vpu-jpege-core"; + reg = <0x00 0xfdbac000 0x00 0x400>; + interrupts = <0x00 0x80 0x04>; + interrupt-names = "irq_jpege3"; + clocks = <0x02 0x1b2 0x02 0x1b3>; + clock-names = "aclk_vcodec\0hclk_vcodec"; + rockchip,normal-rates = <0x2367b880 0x00>; + assigned-clocks = <0x02 0x1b2>; + assigned-clock-rates = <0x2367b880>; + resets = <0x02 0x2d0 0x02 0x2d1>; + reset-names = "video_a\0video_h"; + rockchip,skip-pmu-idle-request; + rockchip,disable-auto-freq; + iommus = <0xc0>; + rockchip,srv = <0xb8>; + rockchip,taskqueue-node = <0x02>; + rockchip,ccu = <0xbd>; + power-domains = <0x60 0x15>; + status = "okay"; + phandle = <0x270>; + }; + + iommu@fdbac800 { + compatible = "rockchip,iommu-v2"; + reg = <0x00 0xfdbac800 0x00 0x40>; + interrupts = <0x00 0x7f 0x04>; + interrupt-names = "irq_jpege3_mmu"; + clocks = <0x02 0x1b2 0x02 0x1b3>; + clock-names = "aclk\0iface"; + power-domains = <0x60 0x15>; + #iommu-cells = <0x00>; + status = "okay"; + phandle = <0xc0>; + }; + + iep@fdbb0000 { + compatible = "rockchip,iep-v2"; + reg = <0x00 0xfdbb0000 0x00 0x500>; + interrupts = <0x00 0x75 0x04>; + interrupt-names = "irq_iep"; + clocks = <0x02 0x1aa 0x02 0x1a9 0x02 0x1ab>; + clock-names = "aclk\0hclk\0sclk"; + rockchip,normal-rates = <0x2367b880 0x00>; + assigned-clocks = <0x02 0x1aa>; + assigned-clock-rates = <0x2367b880>; + resets = <0x02 0x2d5 0x02 0x2d4 0x02 0x2d6>; + reset-names = "rst_a\0rst_h\0rst_s"; + rockchip,skip-pmu-idle-request; + rockchip,disable-auto-freq; + power-domains = <0x60 0x15>; + rockchip,srv = <0xb8>; + rockchip,taskqueue-node = <0x06>; + iommus = <0xc1>; + status = "okay"; + phandle = <0x271>; + }; + + iommu@fdbb0800 { + compatible = "rockchip,iommu-v2"; + reg = <0x00 0xfdbb0800 0x00 0x100>; + interrupts = <0x00 0x75 0x04>; + interrupt-names = "irq_iep_mmu"; + clocks = <0x02 0x1aa 0x02 0x1a9>; + clock-names = "aclk\0iface"; + #iommu-cells = <0x00>; + power-domains = <0x60 0x15>; + status = "okay"; + phandle = <0xc1>; + }; + + rkvenc-core@fdbd0000 { + compatible = "rockchip,rkv-encoder-v2-core"; + reg = <0x00 0xfdbd0000 0x00 0x6000>; + interrupts = <0x00 0x65 0x04>; + interrupt-names = "irq_rkvenc0"; + clocks = <0x02 0x1c5 0x02 0x1c4 0x02 0x1c6>; + clock-names = "aclk_vcodec\0hclk_vcodec\0clk_core"; + rockchip,normal-rates = <0x1dcd6500 0x00 0x2faf0800>; + assigned-clocks = <0x02 0x1c5 0x02 0x1c6>; + assigned-clock-rates = <0x1dcd6500 0x2faf0800>; + resets = <0x02 0x2f5 0x02 0x2f4 0x02 0x2f6>; + reset-names = "video_a\0video_h\0video_core"; + rockchip,skip-pmu-idle-request; + iommus = <0xc2>; + rockchip,srv = <0xb8>; + rockchip,ccu = <0xc3>; + rockchip,taskqueue-node = <0x07>; + rockchip,task-capacity = <0x08>; + power-domains = <0x60 0x10>; + operating-points-v2 = <0xc4>; + status = "okay"; + phandle = <0x272>; + }; + + iommu@fdbdf000 { + compatible = "rockchip,iommu-v2"; + reg = <0x00 0xfdbdf000 0x00 0x40 0x00 0xfdbdf040 0x00 0x40>; + interrupts = <0x00 0x63 0x04 0x00 0x64 0x04>; + interrupt-names = "irq_rkvenc0_mmu0\0irq_rkvenc0_mmu1"; + clocks = <0x02 0x1c5 0x02 0x1c4>; + clock-names = "aclk\0iface"; + rockchip,disable-mmu-reset; + rockchip,enable-cmd-retry; + rockchip,shootdown-entire; + #iommu-cells = <0x00>; + power-domains = <0x60 0x10>; + status = "okay"; + phandle = <0xc2>; + }; + + rkvenc-core@fdbe0000 { + compatible = "rockchip,rkv-encoder-v2-core"; + reg = <0x00 0xfdbe0000 0x00 0x6000>; + interrupts = <0x00 0x68 0x04>; + interrupt-names = "irq_rkvenc1"; + clocks = <0x02 0x1ca 0x02 0x1c9 0x02 0x1cb>; + clock-names = "aclk_vcodec\0hclk_vcodec\0clk_core"; + rockchip,normal-rates = <0x1dcd6500 0x00 0x2faf0800>; + assigned-clocks = <0x02 0x1ca 0x02 0x1cb>; + assigned-clock-rates = <0x1dcd6500 0x2faf0800>; + resets = <0x02 0x305 0x02 0x304 0x02 0x306>; + reset-names = "video_a\0video_h\0video_core"; + rockchip,skip-pmu-idle-request; + iommus = <0xc5>; + rockchip,srv = <0xb8>; + rockchip,ccu = <0xc3>; + rockchip,taskqueue-node = <0x07>; + rockchip,task-capacity = <0x08>; + power-domains = <0x60 0x11>; + operating-points-v2 = <0xc4>; + status = "okay"; + phandle = <0x273>; + }; + + iommu@fdbef000 { + compatible = "rockchip,iommu-v2"; + reg = <0x00 0xfdbef000 0x00 0x40 0x00 0xfdbef040 0x00 0x40>; + interrupts = <0x00 0x66 0x04 0x00 0x67 0x04>; + interrupt-names = "irq_rkvenc1_mmu0\0irq_rkvenc1_mmu1"; + clocks = <0x02 0x1ca 0x02 0x1c9>; + lock-names = "aclk\0iface"; + rockchip,disable-mmu-reset; + rockchip,enable-cmd-retry; + rockchip,shootdown-entire; + #iommu-cells = <0x00>; + power-domains = <0x60 0x11>; + status = "okay"; + phandle = <0xc5>; + }; + + venc-opp-table { + compatible = "operating-points-v2"; + nvmem-cells = <0xc6 0xc7>; + nvmem-cell-names = "leakage\0opp-info"; + rockchip,leakage-voltage-sel = <0x01 0x0f 0x00 0x10 0x19 0x01 0x1a 0xfe 0x02>; + rockchip,grf = <0xc8>; + volt-mem-read-margin = <0xd0bd8 0x01 0xbac48 0x02 0xa4cb8 0x03 0x78d98 0x04>; + phandle = <0xc4>; + + opp-800000000 { + opp-hz = <0x00 0x2faf0800>; + opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; + opp-microvolt-L0 = <0xc3500 0xc3500 0xcf850 0xc3500 0xc3500 0xcf850>; + opp-microvolt-L1 = <0xbd358 0xbd358 0xcf850 0xbd358 0xbd358 0xcf850>; + opp-microvolt-L2 = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; + }; + }; + + rkvdec-ccu@fdc30000 { + compatible = "rockchip,rkv-decoder-v2-ccu"; + reg = <0x00 0xfdc30000 0x00 0x100>; + reg-names = "ccu"; + clocks = <0x02 0x18e>; + clock-names = "aclk_ccu"; + assigned-clocks = <0x02 0x18e>; + assigned-clock-rates = <0x23c34600>; + resets = <0x02 0x282>; + reset-names = "video_ccu"; + rockchip,skip-pmu-idle-request; + rockchip,ccu-mode = <0x01>; + power-domains = <0x60 0x0e>; + status = "okay"; + phandle = <0xca>; + }; + + rkvdec-core@fdc38000 { + compatible = "rockchip,rkv-decoder-v2"; + reg = <0x00 0xfdc38100 0x00 0x400 0x00 0xfdc38000 0x00 0x100>; + reg-names = "regs\0link"; + interrupts = <0x00 0x5f 0x04>; + interrupt-names = "irq_rkvdec0"; + clocks = <0x02 0x190 0x02 0x18f 0x02 0x193 0x02 0x191 0x02 0x192>; + clock-names = "aclk_vcodec\0hclk_vcodec\0clk_core\0clk_cabac\0clk_hevc_cabac"; + rockchip,normal-rates = <0x2faf0800 0x00 0x23c34600 0x23c34600 0x3b9aca00>; + assigned-clocks = <0x02 0x190 0x02 0x193 0x02 0x191 0x02 0x192>; + assigned-clock-rates = <0x2faf0800 0x23c34600 0x23c34600 0x3b9aca00>; + resets = <0x02 0x284 0x02 0x283 0x02 0x289 0x02 0x287 0x02 0x288>; + reset-names = "video_a\0video_h\0video_core\0video_cabac\0video_hevc_cabac"; + rockchip,skip-pmu-idle-request; + iommus = <0xc9>; + rockchip,srv = <0xb8>; + rockchip,ccu = <0xca>; + rockchip,core-mask = <0x10001>; + rockchip,task-capacity = <0x10>; + rockchip,taskqueue-node = <0x09>; + rockchip,sram = <0xcb>; + rockchip,rcb-iova = <0xfff00000 0x100000>; + rockchip,rcb-info = <0x88 0x6000 0x89 0xc000 0x8d 0x16000 0x8c 0xc000 0x8b 0x2c000 0x85 0xc000 0x86 0x2000 0x87 0x1100 0x8a 0x3300 0x8e 0x47300>; + rockchip,rcb-min-width = <0x200>; + power-domains = <0x60 0x0e>; + status = "okay"; + phandle = <0x274>; + }; + + iommu@fdc38700 { + compatible = "rockchip,iommu-v2"; + reg = <0x00 0xfdc38700 0x00 0x40 0x00 0xfdc38740 0x00 0x40>; + interrupts = <0x00 0x60 0x04>; + interrupt-names = "irq_rkvdec0_mmu"; + clocks = <0x02 0x190 0x02 0x18f>; + clock-names = "aclk\0iface"; + rockchip,disable-mmu-reset; + rockchip,enable-cmd-retry; + rockchip,shootdown-entire; + rockchip,master-handle-irq; + #iommu-cells = <0x00>; + power-domains = <0x60 0x0e>; + status = "okay"; + phandle = <0xc9>; + }; + + rkvdec-core@fdc48000 { + compatible = "rockchip,rkv-decoder-v2"; + reg = <0x00 0xfdc48100 0x00 0x400 0x00 0xfdc48000 0x00 0x100>; + reg-names = "regs\0link"; + interrupts = <0x00 0x61 0x04>; + interrupt-names = "irq_rkvdec1"; + clocks = <0x02 0x195 0x02 0x194 0x02 0x198 0x02 0x196 0x02 0x197>; + clock-names = "aclk_vcodec\0hclk_vcodec\0clk_core\0clk_cabac\0clk_hevc_cabac"; + rockchip,normal-rates = <0x2faf0800 0x00 0x23c34600 0x23c34600 0x3b9aca00>; + assigned-clocks = <0x02 0x195 0x02 0x198 0x02 0x196 0x02 0x197>; + assigned-clock-rates = <0x2faf0800 0x23c34600 0x23c34600 0x3b9aca00>; + resets = <0x02 0x293 0x02 0x292 0x02 0x298 0x02 0x296 0x02 0x297>; + reset-names = "video_a\0video_h\0video_core\0video_cabac\0video_hevc_cabac"; + rockchip,skip-pmu-idle-request; + iommus = <0xcc>; + rockchip,srv = <0xb8>; + rockchip,ccu = <0xca>; + rockchip,core-mask = <0x20002>; + rockchip,task-capacity = <0x10>; + rockchip,taskqueue-node = <0x09>; + rockchip,sram = <0xcd>; + rockchip,rcb-iova = <0xffe00000 0x100000>; + rockchip,rcb-info = <0x88 0x6000 0x89 0xc000 0x8d 0x16000 0x8c 0xc000 0x8b 0x2c000 0x85 0xc000 0x86 0x2000 0x87 0x1100 0x8a 0x3300 0x8e 0x47300>; + rockchip,rcb-min-width = <0x200>; + power-domains = <0x60 0x0f>; + status = "okay"; + phandle = <0x275>; + }; + + iommu@fdc48700 { + compatible = "rockchip,iommu-v2"; + reg = <0x00 0xfdc48700 0x00 0x40 0x00 0xfdc48740 0x00 0x40>; + interrupts = <0x00 0x62 0x04>; + interrupt-names = "irq_rkvdec1_mmu"; + clocks = <0x02 0x195 0x02 0x194>; + clock-names = "aclk\0iface"; + rockchip,disable-mmu-reset; + rockchip,enable-cmd-retry; + rockchip,shootdown-entire; + rockchip,master-handle-irq; + #iommu-cells = <0x00>; + power-domains = <0x60 0x0f>; + status = "okay"; + phandle = <0xcc>; + }; + + av1d@fdc70000 { + compatible = "rockchip,av1-decoder"; + reg = <0x00 0xfdc70000 0x00 0x800 0x00 0xfdc80000 0x00 0x400 0x00 0xfdc90000 0x00 0x400>; + reg-names = "vcd\0cache\0afbc"; + interrupts = <0x00 0x6c 0x04 0x00 0x6b 0x04 0x00 0x6a 0x04>; + interrupt-names = "irq_av1d\0irq_cache\0irq_afbc"; + clocks = <0x02 0x49 0x02 0x4b>; + clock-names = "aclk_vcodec\0hclk_vcodec"; + rockchip,normal-rates = <0x17d78400 0x17d78400>; + assigned-clocks = <0x02 0x49 0x02 0x4b>; + assigned-clock-rates = <0x17d78400 0x17d78400>; + resets = <0x02 0x442 0x02 0x445>; + reset-names = "video_a\0video_h"; + iommus = <0xce>; + rockchip,srv = <0xb8>; + rockchip,taskqueue-node = <0x0b>; + power-domains = <0x60 0x17>; + status = "okay"; + phandle = <0x276>; + }; + + iommu@fdca0000 { + compatible = "rockchip,iommu-av1"; + reg = <0x00 0xfdca0000 0x00 0x600>; + interrupts = <0x00 0x6d 0x04>; + interrupt-names = "irq_av1d_mmu"; + clocks = <0x02 0x49 0x02 0x4b>; + clock-names = "aclk\0iface"; + #iommu-cells = <0x00>; + power-domains = <0x60 0x17>; + status = "okay"; + phandle = <0xce>; + }; + + rkisp-unite@fdcb0000 { + compatible = "rockchip,rk3588-rkisp-unite"; + reg = <0x00 0xfdcb0000 0x00 0x10000 0x00 0xfdcc0000 0x00 0x10000>; + interrupts = <0x00 0x87 0x04 0x00 0x89 0x04 0x00 0x8a 0x04>; + interrupt-names = "isp_irq\0mi_irq\0mipi_irq"; + clocks = <0x02 0x1de 0x02 0x1df 0x02 0x1db 0x02 0x1dc 0x02 0x1dd 0x02 0x120 0x02 0x121 0x02 0x11d 0x02 0x11e 0x02 0x11f>; + clock-names = "aclk_isp0\0hclk_isp0\0clk_isp_core0\0clk_isp_core_marvin0\0clk_isp_core_vicap0\0aclk_isp1\0hclk_isp1\0clk_isp_core1\0clk_isp_core_marvin1\0clk_isp_core_vicap1"; + power-domains = <0x60 0x1c>; + iommus = <0xcf>; + status = "disabled"; + phandle = <0x277>; + }; + + rkisp@fdcb0000 { + compatible = "rockchip,rk3588-rkisp"; + reg = <0x00 0xfdcb0000 0x00 0x7f00>; + interrupts = <0x00 0x83 0x04 0x00 0x85 0x04 0x00 0x86 0x04>; + interrupt-names = "isp_irq\0mi_irq\0mipi_irq"; + clocks = <0x02 0x1de 0x02 0x1df 0x02 0x1db 0x02 0x1dc 0x02 0x1dd>; + clock-names = "aclk_isp\0hclk_isp\0clk_isp_core\0clk_isp_core_marvin\0clk_isp_core_vicap"; + power-domains = <0x60 0x1b>; + iommus = <0xd0>; + status = "okay"; + phandle = <0x58>; + }; + + rkisp-unite-mmu@fdcb7f00 { + compatible = "rockchip,iommu-v2"; + reg = <0x00 0xfdcb7f00 0x00 0x100 0x00 0xfdcc7f00 0x00 0x100>; + interrupts = <0x00 0x84 0x04 0x00 0x88 0x04>; + interrupt-names = "isp0_mmu\0isp1_mmu"; + clocks = <0x02 0x1de 0x02 0x1df 0x02 0x120 0x02 0x121>; + clock-names = "aclk0\0iface0\0aclk1\0iface1"; + power-domains = <0x60 0x1c>; + #iommu-cells = <0x00>; + rockchip,disable-mmu-reset; + status = "disabled"; + phandle = <0xcf>; + }; + + iommu@fdcb7f00 { + compatible = "rockchip,iommu-v2"; + reg = <0x00 0xfdcb7f00 0x00 0x100>; + interrupts = <0x00 0x84 0x04>; + interrupt-names = "isp0_mmu"; + clocks = <0x02 0x1de 0x02 0x1df>; + clock-names = "aclk\0iface"; + power-domains = <0x60 0x1b>; + #iommu-cells = <0x00>; + rockchip,disable-mmu-reset; + status = "okay"; + phandle = <0xd0>; + }; + + rkisp@fdcc0000 { + compatible = "rockchip,rk3588-rkisp"; + reg = <0x00 0xfdcc0000 0x00 0x7f00>; + interrupts = <0x00 0x87 0x04 0x00 0x89 0x04 0x00 0x8a 0x04>; + interrupt-names = "isp_irq\0mi_irq\0mipi_irq"; + clocks = <0x02 0x120 0x02 0x121 0x02 0x11d 0x02 0x11e 0x02 0x11f>; + clock-names = "aclk_isp\0hclk_isp\0clk_isp_core\0clk_isp_core_marvin\0clk_isp_core_vicap"; + power-domains = <0x60 0x1c>; + iommus = <0xd1>; + status = "disabled"; + phandle = <0x5a>; + }; + + iommu@fdcc7f00 { + compatible = "rockchip,iommu-v2"; + reg = <0x00 0xfdcc7f00 0x00 0x100>; + interrupts = <0x00 0x88 0x04>; + interrupt-names = "isp1_mmu"; + clocks = <0x02 0x120 0x02 0x121>; + clock-names = "aclk\0iface"; + power-domains = <0x60 0x1c>; + #iommu-cells = <0x00>; + rockchip,disable-mmu-reset; + status = "disabled"; + phandle = <0xd1>; + }; + + rkispp@fdcd0000 { + compatible = "rockchip,rk3588-rkispp"; + reg = <0x00 0xfdcd0000 0x00 0xf00>; + interrupts = <0x00 0x8b 0x04>; + interrupt-names = "fec_irq"; + clocks = <0x02 0x1d5 0x02 0x1d6 0x02 0x1d7>; + clock-names = "aclk_ispp\0hclk_ispp\0clk_ispp"; + assigned-clocks = <0x02 0x1d6>; + assigned-clock-rates = <0x5f5e100>; + power-domains = <0x60 0x1d>; + iommus = <0xd2>; + status = "disabled"; + phandle = <0x5b>; + }; + + iommu@fdcd0f00 { + compatible = "rockchip,iommu-v2"; + reg = <0x00 0xfdcd0f00 0x00 0x100>; + interrupts = <0x00 0x8c 0x04>; + interrupt-names = "fec0_mmu"; + clocks = <0x02 0x1d5 0x02 0x1d6 0x02 0x1d7>; + clock-names = "aclk\0iface\0pclk"; + power-domains = <0x60 0x1d>; + #iommu-cells = <0x00>; + rockchip,disable-mmu-reset; + status = "disabled"; + phandle = <0xd2>; + }; + + rkispp@fdcd8000 { + compatible = "rockchip,rk3588-rkispp"; + reg = <0x00 0xfdcd8000 0x00 0xf00>; + interrupts = <0x00 0x8d 0x04>; + interrupt-names = "fec_irq"; + clocks = <0x02 0x1d8 0x02 0x1d9 0x02 0x1da>; + clock-names = "aclk_ispp\0hclk_ispp\0clk_ispp"; + assigned-clocks = <0x02 0x1d9>; + assigned-clock-rates = <0x5f5e100>; + power-domains = <0x60 0x1d>; + iommus = <0xd3>; + status = "disabled"; + phandle = <0x5c>; + }; + + iommu@fdcd8f00 { + compatible = "rockchip,iommu-v2"; + reg = <0x00 0xfdcd8f00 0x00 0x100>; + interrupts = <0x00 0x8e 0x04>; + interrupt-names = "fec1_mmu"; + clocks = <0x02 0x1d8 0x02 0x1d9 0x02 0x1da>; + clock-names = "aclk\0iface\0pclk"; + power-domains = <0x60 0x1d>; + #iommu-cells = <0x00>; + rockchip,disable-mmu-reset; + status = "disabled"; + phandle = <0xd3>; + }; + + rkcif@fdce0000 { + compatible = "rockchip,rk3588-cif"; + reg = <0x00 0xfdce0000 0x00 0x800>; + reg-names = "cif_regs"; + interrupts = <0x00 0x9b 0x04>; + interrupt-names = "cif-intr"; + clocks = <0x02 0x1e4 0x02 0x1e5 0x02 0x1e3 0x02 0x1cd 0x02 0x1ce>; + clock-names = "aclk_cif\0hclk_cif\0dclk_cif\0iclk_host0\0iclk_host1"; + resets = <0x02 0x317 0x02 0x318 0x02 0x316 0x02 0x334 0x02 0x335 0x02 0x336 0x02 0x337 0x02 0x338 0x02 0x339>; + reset-names = "rst_cif_a\0rst_cif_h\0rst_cif_d\0rst_cif_host0\0rst_cif_host1\0rst_cif_host2\0rst_cif_host3\0rst_cif_host4\0rst_cif_host5"; + assigned-clocks = <0x02 0x1e3>; + assigned-clock-rates = <0x23c34600>; + power-domains = <0x60 0x1b>; + rockchip,grf = <0xc8>; + iommus = <0x50>; + nvmem-cells = <0x21 0xd4 0xd5>; + nvmem-cell-names = "specification\0package_low\0package_high"; + status = "okay"; + phandle = <0x4f>; + }; + + iommu@fdce0800 { + compatible = "rockchip,iommu-v2"; + reg = <0x00 0xfdce0800 0x00 0x100 0x00 0xfdce0900 0x00 0x100>; + interrupts = <0x00 0x71 0x04>; + interrupt-names = "cif_mmu"; + clocks = <0x02 0x1e4 0x02 0x1e5>; + clock-names = "aclk\0iface"; + power-domains = <0x60 0x1b>; + rockchip,disable-mmu-reset; + #iommu-cells = <0x00>; + status = "okay"; + phandle = <0x50>; + }; + + mipi0-csi2-hw@fdd10000 { + compatible = "rockchip,rk3588-mipi-csi2-hw"; + reg = <0x00 0xfdd10000 0x00 0x10000>; + reg-names = "csihost_regs"; + interrupts = <0x00 0x8f 0x04 0x00 0x90 0x04>; + interrupt-names = "csi-intr1\0csi-intr2"; + clocks = <0x02 0x1cf>; + clock-names = "pclk_csi2host"; + resets = <0x02 0x324>; + reset-names = "srst_csihost_p"; + status = "okay"; + phandle = <0x47>; + }; + + mipi1-csi2-hw@fdd20000 { + compatible = "rockchip,rk3588-mipi-csi2-hw"; + reg = <0x00 0xfdd20000 0x00 0x10000>; + reg-names = "csihost_regs"; + interrupts = <0x00 0x91 0x04 0x00 0x92 0x04>; + interrupt-names = "csi-intr1\0csi-intr2"; + clocks = <0x02 0x1d0>; + clock-names = "pclk_csi2host"; + resets = <0x02 0x325>; + reset-names = "srst_csihost_p"; + status = "okay"; + phandle = <0x48>; + }; + + mipi2-csi2-hw@fdd30000 { + compatible = "rockchip,rk3588-mipi-csi2-hw"; + reg = <0x00 0xfdd30000 0x00 0x10000>; + reg-names = "csihost_regs"; + interrupts = <0x00 0x93 0x04 0x00 0x94 0x04>; + interrupt-names = "csi-intr1\0csi-intr2"; + clocks = <0x02 0x1d1>; + clock-names = "pclk_csi2host"; + resets = <0x02 0x326>; + reset-names = "srst_csihost_p"; + status = "okay"; + phandle = <0x49>; + }; + + mipi3-csi2-hw@fdd40000 { + compatible = "rockchip,rk3588-mipi-csi2-hw"; + reg = <0x00 0xfdd40000 0x00 0x10000>; + reg-names = "csihost_regs"; + interrupts = <0x00 0x95 0x04 0x00 0x96 0x04>; + interrupt-names = "csi-intr1\0csi-intr2"; + clocks = <0x02 0x1d2>; + clock-names = "pclk_csi2host"; + resets = <0x02 0x327>; + reset-names = "srst_csihost_p"; + status = "okay"; + phandle = <0x4a>; + }; + + mipi4-csi2-hw@fdd50000 { + compatible = "rockchip,rk3588-mipi-csi2-hw"; + reg = <0x00 0xfdd50000 0x00 0x10000>; + reg-names = "csihost_regs"; + interrupts = <0x00 0x97 0x04 0x00 0x98 0x04>; + interrupt-names = "csi-intr1\0csi-intr2"; + clocks = <0x02 0x1d3>; + clock-names = "pclk_csi2host"; + resets = <0x02 0x328>; + reset-names = "srst_csihost_p"; + status = "okay"; + phandle = <0x4b>; + }; + + mipi5-csi2-hw@fdd60000 { + compatible = "rockchip,rk3588-mipi-csi2-hw"; + reg = <0x00 0xfdd60000 0x00 0x10000>; + reg-names = "csihost_regs"; + interrupts = <0x00 0x99 0x04 0x00 0x9a 0x04>; + interrupt-names = "csi-intr1\0csi-intr2"; + clocks = <0x02 0x1d4>; + clock-names = "pclk_csi2host"; + resets = <0x02 0x329>; + reset-names = "srst_csihost_p"; + status = "okay"; + phandle = <0x4c>; + }; + + vop@fdd90000 { + compatible = "rockchip,rk3588-vop"; + reg = <0x00 0xfdd90000 0x00 0x4200 0x00 0xfdd95000 0x00 0x1000>; + reg-names = "regs\0gamma_lut"; + interrupts = <0x00 0x9c 0x04>; + clocks = <0x02 0x270 0x02 0x26f 0x02 0x274 0x02 0x275 0x02 0x276 0x02 0x277 0x02 0x26e 0x02 0x271 0x02 0x272 0x02 0x273>; + clock-names = "aclk_vop\0hclk_vop\0dclk_vp0\0dclk_vp1\0dclk_vp2\0dclk_vp3\0pclk_vop\0dclk_src_vp0\0dclk_src_vp1\0dclk_src_vp2"; + assigned-clocks = <0x02 0x270>; + assigned-clock-rates = <0x2cb41780>; + resets = <0x02 0x349 0x02 0x348 0x02 0x34d 0x02 0x350 0x02 0x351 0x02 0x352>; + reset-names = "axi\0ahb\0dclk_vp0\0dclk_vp1\0dclk_vp2\0dclk_vp3"; + iommus = <0xd6>; + power-domains = <0x60 0x18>; + rockchip,grf = <0xc8>; + rockchip,vop-grf = <0xd7>; + rockchip,vo1-grf = <0xd8>; + rockchip,pmu = <0xd9>; + status = "okay"; + phandle = <0x278>; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + phandle = <0x34>; + + port@0 { + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x00>; + rockchip,plane-mask = <0x05>; + rockchip,primary-plane = <0x02>; + assigned-clocks = <0x02 0x270>; + assigned-clock-rates = <0x2faf0800>; + phandle = <0x279>; + + endpoint@0 { + reg = <0x00>; + remote-endpoint = <0xda>; + phandle = <0xf7>; + }; + + endpoint@1 { + reg = <0x01>; + remote-endpoint = <0xdb>; + phandle = <0x102>; + }; + + endpoint@2 { + reg = <0x02>; + remote-endpoint = <0xdc>; + phandle = <0x3c>; + }; + + endpoint@3 { + reg = <0x03>; + remote-endpoint = <0xdd>; + phandle = <0x1a6>; + }; + + endpoint@4 { + reg = <0x04>; + remote-endpoint = <0xde>; + phandle = <0x1b0>; + }; + + endpoint@5 { + reg = <0x05>; + remote-endpoint = <0xdf>; + phandle = <0x1ad>; + }; + }; + + port@1 { + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x01>; + rockchip,plane-mask = <0x0a>; + rockchip,primary-plane = <0x03>; + phandle = <0x27a>; + + endpoint@0 { + reg = <0x00>; + remote-endpoint = <0xe0>; + phandle = <0x38>; + }; + + endpoint@1 { + reg = <0x01>; + remote-endpoint = <0xe1>; + phandle = <0x103>; + }; + + endpoint@2 { + reg = <0x02>; + remote-endpoint = <0xe2>; + phandle = <0xff>; + }; + + endpoint@3 { + reg = <0x03>; + remote-endpoint = <0xe3>; + phandle = <0x3e>; + }; + + endpoint@4 { + reg = <0x04>; + remote-endpoint = <0xe4>; + phandle = <0x1b1>; + }; + + endpoint@5 { + reg = <0x05>; + remote-endpoint = <0xe5>; + phandle = <0x3f>; + }; + }; + + port@2 { + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x02>; + assigned-clocks = <0x02 0x273>; + assigned-clock-parents = <0x02 0x04>; + rockchip,plane-mask = <0x140>; + rockchip,primary-plane = <0x08>; + phandle = <0x27b>; + + endpoint@0 { + reg = <0x00>; + remote-endpoint = <0xe6>; + phandle = <0xf8>; + }; + + endpoint@1 { + reg = <0x01>; + remote-endpoint = <0xe7>; + phandle = <0x3b>; + }; + + endpoint@2 { + reg = <0x02>; + remote-endpoint = <0xe8>; + phandle = <0x100>; + }; + + endpoint@3 { + reg = <0x03>; + remote-endpoint = <0xe9>; + phandle = <0xf3>; + }; + + endpoint@4 { + reg = <0x04>; + remote-endpoint = <0xea>; + phandle = <0xf4>; + }; + + endpoint@5 { + reg = <0x05>; + remote-endpoint = <0xeb>; + phandle = <0x1a7>; + }; + + endpoint@6 { + reg = <0x06>; + remote-endpoint = <0xec>; + phandle = <0x1b2>; + }; + + endpoint@7 { + reg = <0x07>; + remote-endpoint = <0xed>; + phandle = <0x1ae>; + }; + }; + + port@3 { + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x03>; + rockchip,plane-mask = <0x280>; + rockchip,primary-plane = <0x09>; + phandle = <0x27c>; + + endpoint@0 { + reg = <0x00>; + remote-endpoint = <0xee>; + phandle = <0x39>; + }; + + endpoint@1 { + reg = <0x01>; + remote-endpoint = <0xef>; + phandle = <0x3a>; + }; + + endpoint@2 { + reg = <0x02>; + remote-endpoint = <0xf0>; + phandle = <0x3d>; + }; + }; + }; + }; + + iommu@fdd97e00 { + compatible = "rockchip,iommu-v2"; + reg = <0x00 0xfdd97e00 0x00 0x100 0x00 0xfdd97f00 0x00 0x100>; + interrupts = <0x00 0x9c 0x04>; + interrupt-names = "vop_mmu"; + clocks = <0x02 0x270 0x02 0x26f>; + clock-names = "aclk\0iface"; + #iommu-cells = <0x00>; + rockchip,disable-device-link-resume; + rockchip,shootdown-entire; + status = "okay"; + phandle = <0xd6>; + }; + + spdif-tx@fddb0000 { + compatible = "rockchip,rk3588-spdif\0rockchip,rk3568-spdif"; + reg = <0x00 0xfddb0000 0x00 0x1000>; + interrupts = <0x00 0xc3 0x04>; + dmas = <0xf1 0x06>; + dma-names = "tx"; + clock-names = "mclk\0hclk"; + clocks = <0x02 0x209 0x02 0x204>; + assigned-clocks = <0x02 0x205>; + assigned-clock-parents = <0x02 0x05>; + power-domains = <0x60 0x19>; + #sound-dai-cells = <0x00>; + status = "disabled"; + phandle = <0x1d5>; + }; + + i2s@fddc0000 { + compatible = "rockchip,rk3588-i2s-tdm"; + reg = <0x00 0xfddc0000 0x00 0x1000>; + interrupts = <0x00 0xb8 0x04>; + clocks = <0x02 0x1fb 0x02 0x1fb 0x02 0x1f0>; + clock-names = "mclk_tx\0mclk_rx\0hclk"; + assigned-clocks = <0x02 0x1f9>; + assigned-clock-parents = <0x02 0x05>; + dmas = <0xf2 0x00>; + dma-names = "tx"; + power-domains = <0x60 0x19>; + resets = <0x02 0x38d>; + reset-names = "tx-m"; + rockchip,playback-only; + #sound-dai-cells = <0x00>; + status = "disabled"; + phandle = <0x27d>; + }; + + spdif-tx@fdde0000 { + compatible = "rockchip,rk3588-spdif\0rockchip,rk3568-spdif"; + reg = <0x00 0xfdde0000 0x00 0x1000>; + interrupts = <0x00 0xc4 0x04>; + dmas = <0xf1 0x07>; + dma-names = "tx"; + clock-names = "mclk\0hclk"; + clocks = <0x02 0x257 0x02 0x253>; + assigned-clocks = <0x02 0x254>; + assigned-clock-parents = <0x02 0x05>; + power-domains = <0x60 0x1a>; + #sound-dai-cells = <0x00>; + status = "disabled"; + phandle = <0x27e>; + }; + + i2s@fddf0000 { + compatible = "rockchip,rk3588-i2s-tdm"; + reg = <0x00 0xfddf0000 0x00 0x1000>; + interrupts = <0x00 0xb9 0x04>; + clocks = <0x02 0x246 0x02 0x246 0x02 0x248>; + clock-names = "mclk_tx\0mclk_rx\0hclk"; + assigned-clocks = <0x02 0x243>; + assigned-clock-parents = <0x02 0x07>; + dmas = <0xf2 0x02>; + dma-names = "tx"; + power-domains = <0x60 0x1a>; + resets = <0x02 0x3e8>; + reset-names = "tx-m"; + rockchip,always-on; + rockchip,hdmi-path; + rockchip,playback-only; + #sound-dai-cells = <0x00>; + status = "okay"; + phandle = <0x1d3>; + }; + + i2s@fddfc000 { + compatible = "rockchip,rk3588-i2s-tdm"; + reg = <0x00 0xfddfc000 0x00 0x1000>; + interrupts = <0x00 0xbd 0x04>; + clocks = <0x02 0x242 0x02 0x242 0x02 0x23e>; + clock-names = "mclk_tx\0mclk_rx\0hclk"; + assigned-clocks = <0x02 0x23f>; + assigned-clock-parents = <0x02 0x05>; + dmas = <0xf2 0x17>; + dma-names = "rx"; + power-domains = <0x60 0x1a>; + resets = <0x02 0x413>; + reset-names = "rx-m"; + rockchip,capture-only; + #sound-dai-cells = <0x00>; + status = "disabled"; + phandle = <0x27f>; + }; + + spdif-rx@fde08000 { + compatible = "rockchip,rk3588-spdifrx\0rockchip,rk3308-spdifrx"; + reg = <0x00 0xfde08000 0x00 0x1000>; + interrupts = <0x00 0xc7 0x04>; + clocks = <0x02 0x25e 0x02 0x25d>; + clock-names = "mclk\0hclk"; + assigned-clocks = <0x02 0x25e>; + assigned-clock-parents = <0x02 0x05>; + dmas = <0x7c 0x15>; + dma-names = "rx"; + power-domains = <0x60 0x1a>; + resets = <0x02 0x3fd>; + reset-names = "spdifrx-m"; + #sound-dai-cells = <0x00>; + status = "disabled"; + phandle = <0x280>; + }; + + dsi@fde20000 { + compatible = "rockchip,rk3588-mipi-dsi2"; + reg = <0x00 0xfde20000 0x00 0x10000>; + interrupts = <0x00 0xa7 0x04>; + clocks = <0x02 0x278 0x02 0x27a>; + clock-names = "pclk\0sys_clk"; + resets = <0x02 0x354>; + reset-names = "apb"; + power-domains = <0x60 0x18>; + phys = <0x2f>; + phy-names = "dcphy"; + rockchip,grf = <0xd7>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "disabled"; + phandle = <0x281>; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + reg = <0x00>; + #address-cells = <0x01>; + #size-cells = <0x00>; + phandle = <0x282>; + + endpoint@0 { + reg = <0x00>; + remote-endpoint = <0xf3>; + status = "disabled"; + phandle = <0xe9>; + }; + + endpoint@1 { + reg = <0x01>; + remote-endpoint = <0x39>; + status = "disabled"; + phandle = <0xee>; + }; + }; + }; + }; + + dsi@fde30000 { + compatible = "rockchip,rk3588-mipi-dsi2"; + reg = <0x00 0xfde30000 0x00 0x10000>; + interrupts = <0x00 0xa8 0x04>; + clocks = <0x02 0x279 0x02 0x27b>; + clock-names = "pclk\0sys_clk"; + resets = <0x02 0x355>; + reset-names = "apb"; + power-domains = <0x60 0x18>; + phys = <0x30>; + phy-names = "dcphy"; + rockchip,grf = <0xd7>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "disabled"; + phandle = <0x283>; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + reg = <0x00>; + #address-cells = <0x01>; + #size-cells = <0x00>; + phandle = <0x284>; + + endpoint@0 { + reg = <0x00>; + remote-endpoint = <0xf4>; + status = "disabled"; + phandle = <0xea>; + }; + + endpoint@1 { + reg = <0x01>; + remote-endpoint = <0x3a>; + status = "disabled"; + phandle = <0xef>; + }; + }; + }; + }; + + hdcp@fde40000 { + compatible = "rockchip,rk3588-hdcp"; + reg = <0x00 0xfde40000 0x00 0x80>; + interrupts = <0x00 0x9f 0x04>; + clocks = <0x02 0x1ed 0x02 0x1ef 0x02 0x1ee 0x02 0x1ec 0x02 0x1f1 0x02 0x1f2>; + clock-names = "aclk\0pclk\0hclk\0hclk_key\0aclk_trng\0pclk_trng"; + resets = <0x02 0x37f 0x02 0x37d 0x02 0x37c 0x02 0x37b 0x02 0x381>; + reset-names = "hdcp\0h_hdcp\0a_hdcp\0hdcp_key\0trng"; + power-domains = <0x60 0x19>; + rockchip,vo-grf = <0xf5>; + status = "disabled"; + phandle = <0x285>; + }; + + dp@fde50000 { + compatible = "rockchip,rk3588-dp"; + reg = <0x00 0xfde50000 0x00 0x4000>; + interrupts = <0x00 0xa1 0x04>; + clocks = <0x02 0x1e6 0x02 0x2cc 0x02 0x1fb 0x02 0x207 0x04 0x02 0x1ea>; + clock-names = "apb\0aux\0i2s\0spdif\0hclk\0hdcp"; + assigned-clocks = <0x02 0x2cc>; + assigned-clock-rates = <0xf42400>; + resets = <0x02 0x388>; + phys = <0xf6>; + power-domains = <0x60 0x19>; + #sound-dai-cells = <0x01>; + status = "disabled"; + phandle = <0x1d6>; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + reg = <0x00>; + #address-cells = <0x01>; + #size-cells = <0x00>; + + endpoint@0 { + reg = <0x00>; + remote-endpoint = <0xf7>; + status = "disabled"; + phandle = <0xda>; + }; + + endpoint@1 { + reg = <0x01>; + remote-endpoint = <0x38>; + status = "disabled"; + phandle = <0xe0>; + }; + + endpoint@2 { + reg = <0x02>; + remote-endpoint = <0xf8>; + status = "disabled"; + phandle = <0xe6>; + }; + }; + + port@1 { + reg = <0x01>; + + endpoint { + phandle = <0x286>; + }; + }; + }; + }; + + hdcp@fde70000 { + compatible = "rockchip,rk3588-hdcp"; + reg = <0x00 0xfde70000 0x00 0x80>; + interrupts = <0x00 0xa0 0x04>; + clocks = <0x02 0x217 0x02 0x219 0x02 0x218 0x02 0x216 0x02 0x228 0x02 0x229>; + clock-names = "aclk\0pclk\0hclk\0hclk_key\0aclk_trng\0pclk_trng"; + resets = <0x02 0x3c8 0x02 0x3c6 0x02 0x3c5 0x02 0x3c4 0x02 0x3ca>; + reset-names = "hdcp\0h_hdcp\0a_hdcp\0hdcp_key\0trng"; + power-domains = <0x60 0x1a>; + rockchip,vo-grf = <0xd8>; + status = "disabled"; + phandle = <0x287>; + }; + + hdmi@fde80000 { + compatible = "rockchip,rk3588-dw-hdmi"; + reg = <0x00 0xfde80000 0x00 0x10000 0x00 0xfde90000 0x00 0x10000>; + interrupts = <0x00 0xa9 0x04 0x00 0xaa 0x04 0x00 0xab 0x04 0x00 0xac 0x04 0x00 0x168 0x04>; + clocks = <0x02 0x221 0x02 0x265 0x02 0x222 0x02 0x223 0x02 0x246 0x02 0x274 0x02 0x275 0x02 0x276 0x02 0x277 0x05 0x35>; + clock-names = "pclk\0hpd\0earc\0hdmitx_ref\0aud\0dclk_vp0\0dclk_vp1\0dclk_vp2\0dclk_vp3\0hclk_vo1\0link_clk"; + resets = <0x02 0x3d0 0x02 0x49c>; + reset-names = "ref\0hdp"; + power-domains = <0x60 0x1a>; + pinctrl-names = "default"; + pinctrl-0 = <0xf9 0xfa 0xfb 0xfc>; + reg-io-width = <0x04>; + rockchip,grf = <0xc8>; + rockchip,vo1_grf = <0xd8>; + phys = <0xfd>; + phy-names = "hdmi"; + #sound-dai-cells = <0x00>; + status = "okay"; + enable-gpios = <0xfe 0x08 0x00>; + phandle = <0x1d4>; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + reg = <0x00>; + #address-cells = <0x01>; + #size-cells = <0x00>; + phandle = <0x288>; + + endpoint@0 { + reg = <0x00>; + remote-endpoint = <0x3c>; + status = "okay"; + phandle = <0xdc>; + }; + + endpoint@1 { + reg = <0x01>; + remote-endpoint = <0xff>; + status = "disabled"; + phandle = <0xe2>; + }; + + endpoint@2 { + reg = <0x02>; + remote-endpoint = <0x100>; + status = "disabled"; + phandle = <0xe8>; + }; + }; + }; + }; + + edp@fdec0000 { + compatible = "rockchip,rk3588-edp"; + reg = <0x00 0xfdec0000 0x00 0x1000>; + interrupts = <0x00 0xa3 0x04>; + clocks = <0x02 0x211 0x02 0x210 0x02 0x212 0x05>; + clock-names = "dp\0pclk\0spdif\0hclk"; + resets = <0x02 0x3e1 0x02 0x3e0>; + reset-names = "dp\0apb"; + phys = <0x101>; + phy-names = "dp"; + power-domains = <0x60 0x1a>; + rockchip,grf = <0xd8>; + status = "disabled"; + phandle = <0x289>; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + reg = <0x00>; + #address-cells = <0x01>; + #size-cells = <0x00>; + + endpoint@0 { + reg = <0x00>; + remote-endpoint = <0x102>; + status = "disabled"; + phandle = <0xdb>; + }; + + endpoint@1 { + reg = <0x01>; + remote-endpoint = <0x103>; + status = "disabled"; + phandle = <0xe1>; + }; + + endpoint@2 { + reg = <0x02>; + remote-endpoint = <0x3b>; + status = "disabled"; + phandle = <0xe7>; + }; + }; + + port@1 { + reg = <0x01>; + + endpoint { + phandle = <0x28a>; + }; + }; + }; + }; + + qos@fdf35000 { + compatible = "syscon"; + reg = <0x00 0xfdf35000 0x00 0x20>; + phandle = <0x87>; + }; + + qos@fdf35200 { + compatible = "syscon"; + reg = <0x00 0xfdf35200 0x00 0x20>; + phandle = <0x88>; + }; + + qos@fdf35400 { + compatible = "syscon"; + reg = <0x00 0xfdf35400 0x00 0x20>; + phandle = <0x89>; + }; + + qos@fdf35600 { + compatible = "syscon"; + reg = <0x00 0xfdf35600 0x00 0x20>; + phandle = <0x8a>; + }; + + qos@fdf36000 { + compatible = "syscon"; + reg = <0x00 0xfdf36000 0x00 0x20>; + phandle = <0xaa>; + }; + + qos@fdf39000 { + compatible = "syscon"; + reg = <0x00 0xfdf39000 0x00 0x20>; + phandle = <0xaf>; + }; + + qos@fdf3d800 { + compatible = "syscon"; + reg = <0x00 0xfdf3d800 0x00 0x20>; + phandle = <0xb0>; + }; + + qos@fdf3e000 { + compatible = "syscon"; + reg = <0x00 0xfdf3e000 0x00 0x20>; + phandle = <0xac>; + }; + + qos@fdf3e200 { + compatible = "syscon"; + reg = <0x00 0xfdf3e200 0x00 0x20>; + phandle = <0xab>; + }; + + qos@fdf3e400 { + compatible = "syscon"; + reg = <0x00 0xfdf3e400 0x00 0x20>; + phandle = <0xad>; + }; + + qos@fdf3e600 { + compatible = "syscon"; + reg = <0x00 0xfdf3e600 0x00 0x20>; + phandle = <0xae>; + }; + + qos@fdf40000 { + compatible = "syscon"; + reg = <0x00 0xfdf40000 0x00 0x20>; + phandle = <0xa8>; + }; + + qos@fdf40200 { + compatible = "syscon"; + reg = <0x00 0xfdf40200 0x00 0x20>; + phandle = <0xa9>; + }; + + qos@fdf40400 { + compatible = "syscon"; + reg = <0x00 0xfdf40400 0x00 0x20>; + phandle = <0xa2>; + }; + + qos@fdf40500 { + compatible = "syscon"; + reg = <0x00 0xfdf40500 0x00 0x20>; + phandle = <0xa3>; + }; + + qos@fdf40600 { + compatible = "syscon"; + reg = <0x00 0xfdf40600 0x00 0x20>; + phandle = <0xa4>; + }; + + qos@fdf40800 { + compatible = "syscon"; + reg = <0x00 0xfdf40800 0x00 0x20>; + phandle = <0xa5>; + }; + + qos@fdf41000 { + compatible = "syscon"; + reg = <0x00 0xfdf41000 0x00 0x20>; + phandle = <0xa6>; + }; + + qos@fdf41100 { + compatible = "syscon"; + reg = <0x00 0xfdf41100 0x00 0x20>; + phandle = <0xa7>; + }; + + qos@fdf60000 { + compatible = "syscon"; + reg = <0x00 0xfdf60000 0x00 0x20>; + phandle = <0x8d>; + }; + + qos@fdf60200 { + compatible = "syscon"; + reg = <0x00 0xfdf60200 0x00 0x20>; + phandle = <0x8e>; + }; + + qos@fdf60400 { + compatible = "syscon"; + reg = <0x00 0xfdf60400 0x00 0x20>; + phandle = <0x8f>; + }; + + qos@fdf61000 { + compatible = "syscon"; + reg = <0x00 0xfdf61000 0x00 0x20>; + phandle = <0x90>; + }; + + qos@fdf61200 { + compatible = "syscon"; + reg = <0x00 0xfdf61200 0x00 0x20>; + phandle = <0x91>; + }; + + qos@fdf61400 { + compatible = "syscon"; + reg = <0x00 0xfdf61400 0x00 0x20>; + phandle = <0x92>; + }; + + qos@fdf62000 { + compatible = "syscon"; + reg = <0x00 0xfdf62000 0x00 0x20>; + phandle = <0x8b>; + }; + + qos@fdf63000 { + compatible = "syscon"; + reg = <0x00 0xfdf63000 0x00 0x20>; + phandle = <0x8c>; + }; + + qos@fdf64000 { + compatible = "syscon"; + reg = <0x00 0xfdf64000 0x00 0x20>; + phandle = <0x9b>; + }; + + qos@fdf66000 { + compatible = "syscon"; + reg = <0x00 0xfdf66000 0x00 0x20>; + phandle = <0x93>; + }; + + qos@fdf66200 { + compatible = "syscon"; + reg = <0x00 0xfdf66200 0x00 0x20>; + phandle = <0x94>; + }; + + qos@fdf66400 { + compatible = "syscon"; + reg = <0x00 0xfdf66400 0x00 0x20>; + phandle = <0x95>; + }; + + qos@fdf66600 { + compatible = "syscon"; + reg = <0x00 0xfdf66600 0x00 0x20>; + phandle = <0x96>; + }; + + qos@fdf66800 { + compatible = "syscon"; + reg = <0x00 0xfdf66800 0x00 0x20>; + phandle = <0x97>; + }; + + qos@fdf66a00 { + compatible = "syscon"; + reg = <0x00 0xfdf66a00 0x00 0x20>; + phandle = <0x98>; + }; + + qos@fdf66c00 { + compatible = "syscon"; + reg = <0x00 0xfdf66c00 0x00 0x20>; + phandle = <0x99>; + }; + + qos@fdf66e00 { + compatible = "syscon"; + reg = <0x00 0xfdf66e00 0x00 0x20>; + phandle = <0x9a>; + }; + + qos@fdf67000 { + compatible = "syscon"; + reg = <0x00 0xfdf67000 0x00 0x20>; + phandle = <0x9c>; + }; + + qos@fdf67200 { + compatible = "syscon"; + reg = <0x00 0xfdf67200 0x00 0x20>; + phandle = <0x28b>; + }; + + qos@fdf70000 { + compatible = "syscon"; + reg = <0x00 0xfdf70000 0x00 0x20>; + phandle = <0x85>; + }; + + qos@fdf71000 { + compatible = "syscon"; + reg = <0x00 0xfdf71000 0x00 0x20>; + phandle = <0x86>; + }; + + qos@fdf72000 { + compatible = "syscon"; + reg = <0x00 0xfdf72000 0x00 0x20>; + phandle = <0x82>; + }; + + qos@fdf72200 { + compatible = "syscon"; + reg = <0x00 0xfdf72200 0x00 0x20>; + phandle = <0x83>; + }; + + qos@fdf72400 { + compatible = "syscon"; + reg = <0x00 0xfdf72400 0x00 0x20>; + phandle = <0x84>; + }; + + qos@fdf80000 { + compatible = "syscon"; + reg = <0x00 0xfdf80000 0x00 0x20>; + phandle = <0x9f>; + }; + + qos@fdf81000 { + compatible = "syscon"; + reg = <0x00 0xfdf81000 0x00 0x20>; + phandle = <0xa0>; + }; + + qos@fdf81200 { + compatible = "syscon"; + reg = <0x00 0xfdf81200 0x00 0x20>; + phandle = <0xa1>; + }; + + qos@fdf82000 { + compatible = "syscon"; + reg = <0x00 0xfdf82000 0x00 0x20>; + phandle = <0x9d>; + }; + + qos@fdf82200 { + compatible = "syscon"; + reg = <0x00 0xfdf82200 0x00 0x20>; + phandle = <0x9e>; + }; + + dfi@fe060000 { + compatible = "rockchip,rk3588-dfi"; + reg = <0x00 0xfe060000 0x00 0x10000>; + rockchip,pmu_grf = <0x104>; + status = "disabled"; + phandle = <0x40>; + }; + + pcie@fe180000 { + compatible = "rockchip,rk3588-pcie\0snps,dw-pcie"; + #address-cells = <0x03>; + #size-cells = <0x02>; + bus-range = <0x30 0x3f>; + clocks = <0x02 0x151 0x02 0x156 0x02 0x14c 0x02 0x15c 0x02 0x161 0x02 0x2c5>; + clock-names = "aclk_mst\0aclk_slv\0aclk_dbi\0pclk\0aux\0pipe"; + device_type = "pci"; + interrupts = <0x00 0xf8 0x04 0x00 0xf7 0x04 0x00 0xf6 0x04 0x00 0xf5 0x04 0x00 0xf4 0x04>; + interrupt-names = "sys\0pmc\0msg\0legacy\0err"; + #interrupt-cells = <0x01>; + interrupt-map-mask = <0x00 0x00 0x00 0x07>; + interrupt-map = <0x00 0x00 0x00 0x01 0x105 0x00 0x00 0x00 0x00 0x02 0x105 0x01 0x00 0x00 0x00 0x03 0x105 0x02 0x00 0x00 0x00 0x04 0x105 0x03>; + linux,pci-domain = <0x03>; + num-ib-windows = <0x08>; + num-ob-windows = <0x08>; + num-viewport = <0x04>; + max-link-speed = <0x02>; + msi-map = <0x3000 0x106 0x3000 0x1000>; + num-lanes = <0x01>; + phys = <0x70 0x02>; + phy-names = "pcie-phy"; + ranges = <0x800 0x00 0xf3000000 0x00 0xf3000000 0x00 0x100000 0x81000000 0x00 0xf3100000 0x00 0xf3100000 0x00 0x100000 0x82000000 0x00 0xf3200000 0x00 0xf3200000 0x00 0xe00000 0xc3000000 0x09 0xc0000000 0x09 0xc0000000 0x00 0x40000000>; + reg = <0x00 0xfe180000 0x00 0x10000 0x0a 0x40c00000 0x00 0x400000>; + reg-names = "pcie-apb\0pcie-dbi"; + resets = <0x02 0x210 0x02 0x21f>; + reset-names = "pcie\0periph"; + rockchip,pipe-grf = <0x76>; + status = "disabled"; + phandle = <0x28c>; + + legacy-interrupt-controller { + interrupt-controller; + #address-cells = <0x00>; + #interrupt-cells = <0x01>; + interrupt-parent = <0x01>; + interrupts = <0x00 0xf5 0x01>; + phandle = <0x105>; + }; + }; + + pcie@fe190000 { + compatible = "rockchip,rk3588-pcie\0snps,dw-pcie"; + #address-cells = <0x03>; + #size-cells = <0x02>; + bus-range = <0x40 0x4f>; + clocks = <0x02 0x152 0x02 0x157 0x02 0x14d 0x02 0x15d 0x02 0x162 0x02 0x182>; + clock-names = "aclk_mst\0aclk_slv\0aclk_dbi\0pclk\0aux\0pipe"; + device_type = "pci"; + interrupts = <0x00 0xfd 0x04 0x00 0xfc 0x04 0x00 0xfb 0x04 0x00 0xfa 0x04 0x00 0xf9 0x04>; + interrupt-names = "sys\0pmc\0msg\0legacy\0err"; + #interrupt-cells = <0x01>; + interrupt-map-mask = <0x00 0x00 0x00 0x07>; + interrupt-map = <0x00 0x00 0x00 0x01 0x107 0x00 0x00 0x00 0x00 0x02 0x107 0x01 0x00 0x00 0x00 0x03 0x107 0x02 0x00 0x00 0x00 0x04 0x107 0x03>; + linux,pci-domain = <0x04>; + num-ib-windows = <0x08>; + num-ob-windows = <0x08>; + num-viewport = <0x04>; + max-link-speed = <0x02>; + msi-map = <0x4000 0x106 0x4000 0x1000>; + num-lanes = <0x01>; + phys = <0x108 0x02>; + phy-names = "pcie-phy"; + ranges = <0x800 0x00 0xf4000000 0x00 0xf4000000 0x00 0x100000 0x81000000 0x00 0xf4100000 0x00 0xf4100000 0x00 0x100000 0x82000000 0x00 0xf4200000 0x00 0xf4200000 0x00 0xe00000 0xc3000000 0x0a 0x00 0x0a 0x00 0x00 0x40000000>; + reg = <0x00 0xfe190000 0x00 0x10000 0x0a 0x41000000 0x00 0x400000>; + reg-names = "pcie-apb\0pcie-dbi"; + resets = <0x02 0x211 0x02 0x220>; + reset-names = "pcie\0periph"; + rockchip,pipe-grf = <0x76>; + status = "disabled"; + phandle = <0x28d>; + + legacy-interrupt-controller { + interrupt-controller; + #address-cells = <0x00>; + #interrupt-cells = <0x01>; + interrupt-parent = <0x01>; + interrupts = <0x00 0xfa 0x01>; + phandle = <0x107>; + }; + }; + + uio@fe1c0000 { + compatible = "rockchip,uio-gmac"; + reg = <0x00 0xfe1c0000 0x00 0x10000>; + rockchip,ethernet = <0x109>; + status = "disabled"; + phandle = <0x28e>; + }; + + ethernet@fe1c0000 { + compatible = "rockchip,rk3588-gmac\0snps,dwmac-4.20a"; + reg = <0x00 0xfe1c0000 0x00 0x10000>; + interrupts = <0x00 0xea 0x04 0x00 0xe9 0x04>; + interrupt-names = "macirq\0eth_wake_irq"; + rockchip,grf = <0xc8>; + rockchip,php_grf = <0x76>; + clocks = <0x02 0x144 0x02 0x145 0x02 0x168 0x02 0x16d 0x02 0x143>; + clock-names = "stmmaceth\0clk_mac_ref\0pclk_mac\0aclk_mac\0ptp_ref"; + resets = <0x02 0x20b>; + reset-names = "stmmaceth"; + power-domains = <0x60 0x21>; + snps,mixed-burst; + snps,tso; + snps,axi-config = <0x10a>; + snps,mtl-rx-config = <0x10b>; + snps,mtl-tx-config = <0x10c>; + status = "okay"; + phy-mode = "rgmii-rxid"; + clock_in_out = "output"; + snps,reset-gpio = <0x10d 0x08 0x01>; + snps,reset-active-low; + snps,reset-delays-us = <0x00 0x4e20 0x186a0>; + pinctrl-names = "default"; + pinctrl-0 = <0x10e 0x10f 0x110 0x111 0x112>; + tx_delay = <0x40>; + phy-handle = <0x113>; + phandle = <0x109>; + + mdio { + compatible = "snps,dwmac-mdio"; + #address-cells = <0x01>; + #size-cells = <0x00>; + phandle = <0x28f>; + + phy@1 { + compatible = "ethernet-phy-ieee802.3-c22"; + reg = <0x01>; + phandle = <0x113>; + }; + }; + + stmmac-axi-config { + snps,wr_osr_lmt = <0x04>; + snps,rd_osr_lmt = <0x08>; + snps,blen = <0x00 0x00 0x00 0x00 0x10 0x08 0x04>; + phandle = <0x10a>; + }; + + rx-queues-config { + snps,rx-queues-to-use = <0x01>; + phandle = <0x10b>; + + queue0 { + }; + }; + + tx-queues-config { + snps,tx-queues-to-use = <0x01>; + phandle = <0x10c>; + + queue0 { + }; + }; + }; + + sata@fe210000 { + compatible = "rockchip,rk-ahci\0snps,dwc-ahci"; + reg = <0x00 0xfe210000 0x00 0x1000>; + clocks = <0x02 0x171 0x02 0x16e 0x02 0x174 0x02 0x163 0x02 0x17e>; + clock-names = "sata\0pmalive\0rxoob\0ref\0asic"; + interrupts = <0x00 0x111 0x04>; + interrupt-names = "hostc"; + phys = <0x108 0x01>; + phy-names = "sata-phy"; + ports-implemented = <0x01>; + status = "okay"; + phandle = <0x290>; + }; + + sata@fe230000 { + compatible = "rockchip,rk-ahci\0snps,dwc-ahci"; + reg = <0x00 0xfe230000 0x00 0x1000>; + clocks = <0x02 0x173 0x02 0x170 0x02 0x176 0x02 0x165 0x02 0x180>; + clock-names = "sata\0pmalive\0rxoob\0ref\0asic"; + interrupts = <0x00 0x113 0x04>; + interrupt-names = "hostc"; + phys = <0x70 0x01>; + phy-names = "sata-phy"; + ports-implemented = <0x01>; + status = "disabled"; + phandle = <0x291>; + }; + + spi@fe2b0000 { + compatible = "rockchip,sfc"; + reg = <0x00 0xfe2b0000 0x00 0x4000>; + interrupts = <0x00 0xce 0x04>; + clocks = <0x02 0x13d 0x02 0x13e>; + clock-names = "clk_sfc\0hclk_sfc"; + assigned-clocks = <0x02 0x13d>; + assigned-clock-rates = <0x5f5e100>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "disabled"; + phandle = <0x292>; + }; + + mmc@fe2c0000 { + compatible = "rockchip,rk3588-dw-mshc\0rockchip,rk3288-dw-mshc"; + reg = <0x00 0xfe2c0000 0x00 0x4000>; + interrupts = <0x00 0xcb 0x04>; + clocks = <0x0e 0x17 0x0e 0x09 0x02 0x2c2 0x02 0x2c3>; + clock-names = "biu\0ciu\0ciu-drive\0ciu-sample"; + fifo-depth = <0x100>; + max-frequency = <0x8f0d180>; + pinctrl-names = "default"; + pinctrl-0 = <0x114 0x115 0x116 0x117>; + power-domains = <0x60 0x28>; + status = "okay"; + no-sdio; + no-mmc; + bus-width = <0x04>; + cap-mmc-highspeed; + cap-sd-highspeed; + disable-wp; + sd-uhs-sdr104; + vqmmc-supply = <0x118>; + phandle = <0x293>; + }; + + mmc@fe2d0000 { + compatible = "rockchip,rk3588-dw-mshc\0rockchip,rk3288-dw-mshc"; + reg = <0x00 0xfe2d0000 0x00 0x4000>; + interrupts = <0x00 0xcc 0x04>; + clocks = <0x02 0x199 0x02 0x19a 0x02 0x2c0 0x02 0x2c1>; + clock-names = "biu\0ciu\0ciu-drive\0ciu-sample"; + fifo-depth = <0x100>; + max-frequency = <0xbebc200>; + pinctrl-names = "default"; + pinctrl-0 = <0x119>; + power-domains = <0x60 0x25>; + status = "disabled"; + phandle = <0x294>; + }; + + mmc@fe2e0000 { + compatible = "rockchip,rk3588-dwcmshc\0rockchip,dwcmshc-sdhci"; + reg = <0x00 0xfe2e0000 0x00 0x10000>; + interrupts = <0x00 0xcd 0x04>; + assigned-clocks = <0x02 0x13b 0x02 0x13c 0x02 0x13a>; + assigned-clock-rates = <0xbebc200 0x16e3600 0xbebc200>; + clocks = <0x02 0x13a 0x02 0x138 0x02 0x139 0x02 0x13b 0x02 0x13c>; + clock-names = "core\0bus\0axi\0block\0timer"; + resets = <0x02 0x1f6 0x02 0x1f4 0x02 0x1f5 0x02 0x1f7 0x02 0x1f8>; + reset-names = "core\0bus\0axi\0block\0timer"; + max-frequency = <0xbebc200>; + status = "okay"; + bus-width = <0x08>; + no-sdio; + no-sd; + non-removable; + mmc-hs400-1_8v; + mmc-hs400-enhanced-strobe; + phandle = <0x295>; + }; + + crypto@fe370000 { + compatible = "rockchip,rk3588-crypto"; + reg = <0x00 0xfe370000 0x00 0x2000>; + interrupts = <0x00 0xd1 0x04>; + clocks = <0x0e 0x0b 0x0e 0x0c 0x0e 0x14 0x0e 0x15>; + clock-names = "aclk\0hclk\0sclk\0pka"; + resets = <0x11a 0x0f>; + reset-names = "crypto-rst"; + status = "disabled"; + phandle = <0x296>; + }; + + rng@fe378000 { + compatible = "rockchip,trngv1"; + reg = <0x00 0xfe378000 0x00 0x200>; + interrupts = <0x00 0x190 0x04>; + clocks = <0x0e 0x0c>; + clock-names = "hclk_trng"; + resets = <0x11a 0x30>; + reset-names = "reset"; + status = "okay"; + phandle = <0x297>; + }; + + i2s@fe470000 { + compatible = "rockchip,rk3588-i2s-tdm"; + reg = <0x00 0xfe470000 0x00 0x1000>; + interrupts = <0x00 0xb4 0x04>; + clocks = <0x02 0x33 0x02 0x37 0x02 0x30>; + clock-names = "mclk_tx\0mclk_rx\0hclk"; + assigned-clocks = <0x02 0x31 0x02 0x35>; + assigned-clock-parents = <0x02 0x05 0x02 0x05>; + dmas = <0x7c 0x00 0x7c 0x01>; + dma-names = "tx\0rx"; + power-domains = <0x60 0x26>; + resets = <0x02 0x77 0x02 0x7a>; + reset-names = "tx-m\0rx-m"; + rockchip,clk-trcm = <0x01>; + pinctrl-names = "default\0idle\0clk"; + pinctrl-0 = <0x11b 0x11c 0x11d 0x11e>; + pinctrl-1 = <0x11f>; + pinctrl-2 = <0x11b 0x11c>; + #sound-dai-cells = <0x00>; + status = "okay"; + phandle = <0x1da>; + }; + + i2s@fe480000 { + compatible = "rockchip,rk3588-i2s-tdm"; + reg = <0x00 0xfe480000 0x00 0x1000>; + interrupts = <0x00 0xb5 0x04>; + clocks = <0x02 0x28c 0x02 0x290 0x02 0x288>; + clock-names = "mclk_tx\0mclk_rx\0hclk"; + dmas = <0x7c 0x02 0x7c 0x03>; + dma-names = "tx\0rx"; + resets = <0x02 0xc002a 0x02 0xc002d>; + reset-names = "tx-m\0rx-m"; + rockchip,clk-trcm = <0x01>; + pinctrl-names = "default"; + pinctrl-0 = <0x120 0x121 0x122 0x123 0x124 0x125 0x126 0x127 0x128 0x129>; + #sound-dai-cells = <0x00>; + status = "disabled"; + phandle = <0x1d1>; + }; + + i2s@fe490000 { + compatible = "rockchip,rk3588-i2s\0rockchip,rk3066-i2s"; + reg = <0x00 0xfe490000 0x00 0x1000>; + interrupts = <0x00 0xb6 0x04>; + clocks = <0x02 0x27 0x02 0x22>; + clock-names = "i2s_clk\0i2s_hclk"; + assigned-clocks = <0x02 0x24>; + assigned-clock-parents = <0x02 0x05>; + dmas = <0xf1 0x00 0xf1 0x01>; + dma-names = "tx\0rx"; + power-domains = <0x60 0x26>; + rockchip,clk-trcm = <0x01>; + pinctrl-names = "default\0idle\0clk"; + pinctrl-0 = <0x12a 0x12b>; + pinctrl-1 = <0x12c>; + pinctrl-2 = <0x12d 0x12e>; + #sound-dai-cells = <0x00>; + status = "disabled"; + phandle = <0x298>; + }; + + i2s@fe4a0000 { + compatible = "rockchip,rk3588-i2s\0rockchip,rk3066-i2s"; + reg = <0x00 0xfe4a0000 0x00 0x1000>; + interrupts = <0x00 0xb7 0x04>; + clocks = <0x02 0x2d 0x02 0x23>; + clock-names = "i2s_clk\0i2s_hclk"; + assigned-clocks = <0x02 0x2a>; + assigned-clock-parents = <0x02 0x05>; + dmas = <0xf1 0x02 0xf1 0x03>; + dma-names = "tx\0rx"; + power-domains = <0x60 0x26>; + rockchip,clk-trcm = <0x01>; + pinctrl-names = "default\0idle\0clk"; + pinctrl-0 = <0x12f 0x130>; + pinctrl-1 = <0x131>; + pinctrl-2 = <0x132 0x133>; + #sound-dai-cells = <0x00>; + status = "disabled"; + phandle = <0x299>; + }; + + pdm@fe4b0000 { + compatible = "rockchip,rk3588-pdm"; + reg = <0x00 0xfe4b0000 0x00 0x1000>; + clocks = <0x02 0x29f 0x02 0x29e>; + clock-names = "pdm_clk\0pdm_hclk"; + dmas = <0x7c 0x04>; + dma-names = "rx"; + pinctrl-names = "default\0idle\0clk"; + pinctrl-0 = <0x134 0x135 0x136 0x137>; + pinctrl-1 = <0x138>; + pinctrl-2 = <0x139 0x13a>; + #sound-dai-cells = <0x00>; + status = "disabled"; + phandle = <0x29a>; + }; + + pdm@fe4c0000 { + compatible = "rockchip,rk3588-pdm"; + reg = <0x00 0xfe4c0000 0x00 0x1000>; + clocks = <0x02 0x3b 0x02 0x3a>; + clock-names = "pdm_clk\0pdm_hclk"; + assigned-clocks = <0x02 0x3b>; + assigned-clock-parents = <0x02 0x05>; + dmas = <0xf1 0x04>; + dma-names = "rx"; + power-domains = <0x60 0x26>; + pinctrl-names = "default\0idle\0clk"; + pinctrl-0 = <0x13b 0x13c 0x13d 0x13e>; + pinctrl-1 = <0x13f>; + pinctrl-2 = <0x140 0x141>; + #sound-dai-cells = <0x00>; + status = "disabled"; + phandle = <0x29b>; + }; + + vad@fe4d0000 { + compatible = "rockchip,rk3588-vad"; + reg = <0x00 0xfe4d0000 0x00 0x1000>; + reg-names = "vad"; + clocks = <0x02 0x2a0>; + clock-names = "hclk"; + interrupts = <0x00 0xca 0x04>; + rockchip,audio-src = <0x00>; + rockchip,det-channel = <0x00>; + rockchip,mode = <0x00>; + #sound-dai-cells = <0x00>; + status = "disabled"; + phandle = <0x29c>; + }; + + spdif-tx@fe4e0000 { + compatible = "rockchip,rk3588-spdif\0rockchip,rk3568-spdif"; + reg = <0x00 0xfe4e0000 0x00 0x1000>; + interrupts = <0x00 0xc1 0x04>; + dmas = <0x7c 0x05>; + dma-names = "tx"; + clock-names = "mclk\0hclk"; + clocks = <0x02 0x41 0x02 0x3e>; + assigned-clocks = <0x02 0x3f>; + assigned-clock-parents = <0x02 0x05>; + power-domains = <0x60 0x26>; + pinctrl-names = "default"; + pinctrl-0 = <0x142>; + #sound-dai-cells = <0x00>; + status = "disabled"; + phandle = <0x29d>; + }; + + spdif-tx@fe4f0000 { + compatible = "rockchip,rk3588-spdif\0rockchip,rk3568-spdif"; + reg = <0x00 0xfe4f0000 0x00 0x1000>; + interrupts = <0x00 0xc2 0x04>; + dmas = <0xf1 0x05>; + dma-names = "tx"; + clock-names = "mclk\0hclk"; + clocks = <0x02 0x47 0x02 0x44>; + assigned-clocks = <0x02 0x45>; + assigned-clock-parents = <0x02 0x05>; + power-domains = <0x60 0x26>; + pinctrl-names = "default"; + pinctrl-0 = <0x143>; + #sound-dai-cells = <0x00>; + status = "disabled"; + phandle = <0x1d7>; + }; + + codec-digital@fe500000 { + compatible = "rockchip,rk3588-codec-digital\0rockchip,codec-digital-v1"; + reg = <0x00 0xfe500000 0x00 0x1000>; + clocks = <0x02 0x29 0x02 0x2f>; + clock-names = "dac\0pclk"; + power-domains = <0x60 0x26>; + resets = <0x02 0x84>; + reset-names = "reset"; + rockchip,grf = <0xc8>; + rockchip,pwm-output-mode; + pinctrl-names = "default"; + pinctrl-0 = <0x144>; + #sound-dai-cells = <0x00>; + status = "disabled"; + phandle = <0x29e>; + }; + + hwspinlock@fe5a0000 { + compatible = "rockchip,hwspinlock"; + reg = <0x00 0xfe5a0000 0x00 0x100>; + #hwlock-cells = <0x01>; + phandle = <0x29f>; + }; + + interrupt-controller@fe600000 { + compatible = "arm,gic-v3"; + #interrupt-cells = <0x03>; + #address-cells = <0x02>; + #size-cells = <0x02>; + ranges; + interrupt-controller; + reg = <0x00 0xfe600000 0x00 0x10000 0x00 0xfe680000 0x00 0x100000>; + interrupts = <0x01 0x09 0x04>; + phandle = <0x01>; + + msi-controller@fe640000 { + compatible = "arm,gic-v3-its"; + msi-controller; + #msi-cells = <0x01>; + reg = <0x00 0xfe640000 0x00 0x20000>; + phandle = <0x106>; + }; + + msi-controller@fe660000 { + compatible = "arm,gic-v3-its"; + msi-controller; + #msi-cells = <0x01>; + reg = <0x00 0xfe660000 0x00 0x20000>; + phandle = <0x1b6>; + }; + }; + + dma-controller@fea10000 { + compatible = "arm,pl330\0arm,primecell"; + reg = <0x00 0xfea10000 0x00 0x4000>; + interrupts = <0x00 0x56 0x04 0x00 0x57 0x04>; + clocks = <0x02 0x78>; + clock-names = "apb_pclk"; + #dma-cells = <0x01>; + arm,pl330-periph-burst; + phandle = <0x7c>; + }; + + dma-controller@fea30000 { + compatible = "arm,pl330\0arm,primecell"; + reg = <0x00 0xfea30000 0x00 0x4000>; + interrupts = <0x00 0x58 0x04 0x00 0x59 0x04>; + clocks = <0x02 0x79>; + clock-names = "apb_pclk"; + #dma-cells = <0x01>; + arm,pl330-periph-burst; + phandle = <0xf1>; + }; + + can@fea50000 { + compatible = "rockchip,can-2.0"; + reg = <0x00 0xfea50000 0x00 0x1000>; + interrupts = <0x00 0x155 0x04>; + clocks = <0x02 0x70 0x02 0x6f>; + clock-names = "baudclk\0apb_pclk"; + resets = <0x02 0xb9 0x02 0xb8>; + reset-names = "can\0can-apb"; + pinctrl-names = "default"; + pinctrl-0 = <0x145>; + tx-fifo-depth = <0x01>; + rx-fifo-depth = <0x06>; + status = "disabled"; + phandle = <0x2a0>; + }; + + can@fea60000 { + compatible = "rockchip,can-2.0"; + reg = <0x00 0xfea60000 0x00 0x1000>; + interrupts = <0x00 0x156 0x04>; + clocks = <0x02 0x72 0x02 0x71>; + clock-names = "baudclk\0apb_pclk"; + resets = <0x02 0xbb 0x02 0xba>; + reset-names = "can\0can-apb"; + pinctrl-names = "default"; + pinctrl-0 = <0x146>; + tx-fifo-depth = <0x01>; + rx-fifo-depth = <0x06>; + status = "okay"; + assigned-clocks = <0x02 0x72>; + assigned-clock-rates = <0xbebc200>; + phandle = <0x2a1>; + }; + + can@fea70000 { + compatible = "rockchip,can-2.0"; + reg = <0x00 0xfea70000 0x00 0x1000>; + interrupts = <0x00 0x157 0x04>; + clocks = <0x02 0x74 0x02 0x73>; + clock-names = "baudclk\0apb_pclk"; + resets = <0x02 0xbd 0x02 0xbc>; + reset-names = "can\0can-apb"; + pinctrl-names = "default"; + pinctrl-0 = <0x147>; + tx-fifo-depth = <0x01>; + rx-fifo-depth = <0x06>; + status = "disabled"; + phandle = <0x2a2>; + }; + + decompress@fea80000 { + compatible = "rockchip,hw-decompress"; + reg = <0x00 0xfea80000 0x00 0x1000>; + interrupts = <0x00 0x55 0x04>; + clocks = <0x02 0x75 0x02 0x77 0x02 0x76>; + clock-names = "aclk\0dclk\0pclk"; + resets = <0x02 0x118>; + reset-names = "dresetn"; + status = "disabled"; + phandle = <0x2a3>; + }; + + i2c@fea90000 { + compatible = "rockchip,rk3588-i2c\0rockchip,rk3399-i2c"; + reg = <0x00 0xfea90000 0x00 0x1000>; + clocks = <0x02 0x8d 0x02 0x85>; + clock-names = "i2c\0pclk"; + interrupts = <0x00 0x13e 0x04>; + pinctrl-names = "default"; + pinctrl-0 = <0x148>; + resets = <0x02 0xb0 0x02 0xa8>; + reset-names = "i2c\0apb"; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "okay"; + phandle = <0x2a4>; + + rk8602@42 { + compatible = "rockchip,rk8602"; + reg = <0x42>; + vin-supply = <0x78>; + regulator-compatible = "rk860x-reg"; + regulator-name = "vdd_npu_s0"; + regulator-min-microvolt = <0x86470>; + regulator-max-microvolt = <0xe7ef0>; + regulator-ramp-delay = <0x8fc>; + rockchip,suspend-voltage-selector = <0x01>; + regulator-boot-on; + regulator-always-on; + phandle = <0xb3>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + }; + + i2c@feaa0000 { + compatible = "rockchip,rk3588-i2c\0rockchip,rk3399-i2c"; + reg = <0x00 0xfeaa0000 0x00 0x1000>; + clocks = <0x02 0x8e 0x02 0x86>; + clock-names = "i2c\0pclk"; + interrupts = <0x00 0x13f 0x04>; + pinctrl-names = "default"; + pinctrl-0 = <0x149>; + resets = <0x02 0xb1 0x02 0xa9>; + reset-names = "i2c\0apb"; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "disabled"; + phandle = <0x2a5>; + }; + + i2c@feab0000 { + compatible = "rockchip,rk3588-i2c\0rockchip,rk3399-i2c"; + reg = <0x00 0xfeab0000 0x00 0x1000>; + clocks = <0x02 0x8f 0x02 0x87>; + clock-names = "i2c\0pclk"; + interrupts = <0x00 0x140 0x04>; + pinctrl-names = "default"; + pinctrl-0 = <0x14a>; + resets = <0x02 0xb2 0x02 0xaa>; + reset-names = "i2c\0apb"; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "okay"; + phandle = <0x2a6>; + + gpio@21 { + status = "okay"; + compatible = "nxp,pca9555"; + reg = <0x21>; + gpio-controller; + #gpio-cells = <0x02>; + gpio-group-num = <0xc8>; + phandle = <0x182>; + }; + }; + + i2c@feac0000 { + compatible = "rockchip,rk3588-i2c\0rockchip,rk3399-i2c"; + reg = <0x00 0xfeac0000 0x00 0x1000>; + clocks = <0x02 0x90 0x02 0x88>; + clock-names = "i2c\0pclk"; + interrupts = <0x00 0x141 0x04>; + pinctrl-names = "default"; + pinctrl-0 = <0x14b>; + resets = <0x02 0xb3 0x02 0xab>; + reset-names = "i2c\0apb"; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "okay"; + phandle = <0x2a7>; + + pc9202@3c { + status = "okay"; + compatible = "firefly,pc9202"; + reg = <0x3c>; + index = <0x01>; + pinctrl-names = "default"; + pinctrl-0 = <0x14c>; + wd-en-gpio = <0x7b 0x14 0x00>; + driver-names = "wdt_base"; + }; + }; + + i2c@fead0000 { + compatible = "rockchip,rk3588-i2c\0rockchip,rk3399-i2c"; + reg = <0x00 0xfead0000 0x00 0x1000>; + clocks = <0x02 0x91 0x02 0x89>; + clock-names = "i2c\0pclk"; + interrupts = <0x00 0x142 0x04>; + pinctrl-names = "default"; + pinctrl-0 = <0x14d>; + resets = <0x02 0xb4 0x02 0xac>; + reset-names = "i2c\0apb"; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "disabled"; + phandle = <0x2a8>; + }; + + timer@feae0000 { + compatible = "rockchip,rk3588-timer\0rockchip,rk3288-timer"; + reg = <0x00 0xfeae0000 0x00 0x20>; + interrupts = <0x00 0x121 0x04>; + clocks = <0x02 0x5c 0x02 0x5f>; + clock-names = "pclk\0timer"; + phandle = <0x2a9>; + }; + + watchdog@feaf0000 { + compatible = "snps,dw-wdt"; + reg = <0x00 0xfeaf0000 0x00 0x100>; + clocks = <0x02 0x6c 0x02 0x6b>; + clock-names = "tclk\0pclk"; + interrupts = <0x00 0x13b 0x04>; + status = "okay"; + phandle = <0x2aa>; + }; + + spi@feb00000 { + compatible = "rockchip,rk3066-spi"; + reg = <0x00 0xfeb00000 0x00 0x1000>; + interrupts = <0x00 0x146 0x04>; + #address-cells = <0x01>; + #size-cells = <0x00>; + clocks = <0x02 0xa3 0x02 0x9e>; + clock-names = "spiclk\0apb_pclk"; + dmas = <0x7c 0x0e 0x7c 0x0f>; + dma-names = "tx\0rx"; + pinctrl-names = "default"; + pinctrl-0 = <0x14e 0x14f 0x150>; + num-cs = <0x02>; + status = "disabled"; + phandle = <0x2ab>; + }; + + spi@feb10000 { + compatible = "rockchip,rk3066-spi"; + reg = <0x00 0xfeb10000 0x00 0x1000>; + interrupts = <0x00 0x147 0x04>; + #address-cells = <0x01>; + #size-cells = <0x00>; + clocks = <0x02 0xa4 0x02 0x9f>; + clock-names = "spiclk\0apb_pclk"; + dmas = <0x7c 0x10 0x7c 0x11>; + dma-names = "tx\0rx"; + pinctrl-names = "default"; + pinctrl-0 = <0x151 0x152 0x153>; + num-cs = <0x02>; + status = "disabled"; + phandle = <0x2ac>; + }; + + spi@feb20000 { + compatible = "rockchip,rk3066-spi"; + reg = <0x00 0xfeb20000 0x00 0x1000>; + interrupts = <0x00 0x148 0x04>; + #address-cells = <0x01>; + #size-cells = <0x00>; + clocks = <0x02 0xa5 0x02 0xa0>; + clock-names = "spiclk\0apb_pclk"; + dmas = <0xf1 0x0f 0xf1 0x10>; + dma-names = "tx\0rx"; + pinctrl-names = "default"; + pinctrl-0 = <0x154 0x155>; + num-cs = <0x01>; + status = "okay"; + assigned-clocks = <0x02 0xa5>; + assigned-clock-rates = <0xbebc200>; + phandle = <0x2ad>; + + rk806single@0 { + compatible = "rockchip,rk806"; + spi-max-frequency = <0xf4240>; + reg = <0x00>; + interrupt-parent = <0x7b>; + interrupts = <0x07 0x08>; + pinctrl-names = "default\0pmic-power-off"; + pinctrl-0 = <0x156 0x157 0x158 0x159>; + pinctrl-1 = <0x15a>; + low_voltage_threshold = <0xbb8>; + shutdown_voltage_threshold = <0xa8c>; + shutdown_temperture_threshold = <0xa0>; + hotdie_temperture_threshold = <0x73>; + pmic-reset-func = <0x01>; + vcc1-supply = <0x78>; + vcc2-supply = <0x78>; + vcc3-supply = <0x78>; + vcc4-supply = <0x78>; + vcc5-supply = <0x78>; + vcc6-supply = <0x78>; + vcc7-supply = <0x78>; + vcc8-supply = <0x78>; + vcc9-supply = <0x78>; + vcc10-supply = <0x78>; + vcc11-supply = <0x15b>; + vcc12-supply = <0x78>; + vcc13-supply = <0x15c>; + vcc14-supply = <0x15c>; + vcca-supply = <0x78>; + phandle = <0x2ae>; + + pwrkey { + status = "okay"; + }; + + pinctrl_rk806 { + gpio-controller; + #gpio-cells = <0x02>; + phandle = <0x2af>; + + rk806_dvs1_null { + pins = "gpio_pwrctrl2"; + function = "pin_fun0"; + phandle = <0x157>; + }; + + rk806_dvs1_slp { + pins = "gpio_pwrctrl1"; + function = "pin_fun1"; + phandle = <0x2b0>; + }; + + rk806_dvs1_pwrdn { + pins = "gpio_pwrctrl1"; + function = "pin_fun2"; + phandle = <0x15a>; + }; + + rk806_dvs1_rst { + pins = "gpio_pwrctrl1"; + function = "pin_fun3"; + phandle = <0x2b1>; + }; + + rk806_dvs2_null { + pins = "gpio_pwrctrl2"; + function = "pin_fun0"; + phandle = <0x158>; + }; + + rk806_dvs2_slp { + pins = "gpio_pwrctrl2"; + function = "pin_fun1"; + phandle = <0x2b2>; + }; + + rk806_dvs2_pwrdn { + pins = "gpio_pwrctrl2"; + function = "pin_fun2"; + phandle = <0x2b3>; + }; + + rk806_dvs2_rst { + pins = "gpio_pwrctrl2"; + function = "pin_fun3"; + phandle = <0x2b4>; + }; + + rk806_dvs2_dvs { + pins = "gpio_pwrctrl2"; + function = "pin_fun4"; + phandle = <0x2b5>; + }; + + rk806_dvs2_gpio { + pins = "gpio_pwrctrl2"; + function = "pin_fun5"; + phandle = <0x2b6>; + }; + + rk806_dvs3_null { + pins = "gpio_pwrctrl3"; + function = "pin_fun0"; + phandle = <0x159>; + }; + + rk806_dvs3_slp { + pins = "gpio_pwrctrl3"; + function = "pin_fun1"; + phandle = <0x2b7>; + }; + + rk806_dvs3_pwrdn { + pins = "gpio_pwrctrl3"; + function = "pin_fun2"; + phandle = <0x2b8>; + }; + + rk806_dvs3_rst { + pins = "gpio_pwrctrl3"; + function = "pin_fun3"; + phandle = <0x2b9>; + }; + + rk806_dvs3_dvs { + pins = "gpio_pwrctrl3"; + function = "pin_fun4"; + phandle = <0x2ba>; + }; + + rk806_dvs3_gpio { + pins = "gpio_pwrctrl3"; + function = "pin_fun5"; + phandle = <0x2bb>; + }; + }; + + regulators { + + DCDC_REG1 { + regulator-boot-on; + regulator-min-microvolt = <0x86470>; + regulator-max-microvolt = <0xe7ef0>; + regulator-ramp-delay = <0x30d4>; + regulator-name = "vdd_gpu_s0"; + regulator-enable-ramp-delay = <0x190>; + phandle = <0x62>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + DCDC_REG2 { + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <0x86470>; + regulator-max-microvolt = <0xe7ef0>; + regulator-ramp-delay = <0x30d4>; + regulator-name = "vdd_cpu_lit_s0"; + phandle = <0x12>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + DCDC_REG3 { + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <0xa4cb8>; + regulator-max-microvolt = <0xb71b0>; + regulator-ramp-delay = <0x30d4>; + regulator-name = "vdd_log_s0"; + phandle = <0x43>; + + regulator-state-mem { + regulator-suspend-microvolt = <0xb71b0>; + regulator-on-in-suspend; + }; + }; + + DCDC_REG4 { + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <0x86470>; + regulator-max-microvolt = <0xe7ef0>; + regulator-init-microvolt = <0xb71b0>; + regulator-ramp-delay = <0x30d4>; + regulator-name = "vdd_vdenc_s0"; + phandle = <0x2bc>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + DCDC_REG5 { + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <0xa4cb8>; + regulator-max-microvolt = <0xdbba0>; + regulator-ramp-delay = <0x30d4>; + regulator-name = "vdd_ddr_s0"; + phandle = <0x42>; + + regulator-state-mem { + regulator-off-in-suspend; + regulator-suspend-microvolt = <0xcf850>; + }; + }; + + DCDC_REG6 { + regulator-always-on; + regulator-boot-on; + regulator-name = "vdd2_ddr_s3"; + phandle = <0x2bd>; + + regulator-state-mem { + regulator-on-in-suspend; + }; + }; + + DCDC_REG7 { + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <0x1e8480>; + regulator-max-microvolt = <0x1e8480>; + regulator-name = "vdd_2v0_pldo_s3"; + phandle = <0x15b>; + + regulator-state-mem { + regulator-on-in-suspend; + regulator-suspend-microvolt = <0x1e8480>; + }; + }; + + DCDC_REG8 { + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <0x325aa0>; + regulator-max-microvolt = <0x325aa0>; + regulator-name = "vcc_3v3_s3"; + phandle = <0x2be>; + + regulator-state-mem { + regulator-on-in-suspend; + regulator-suspend-microvolt = <0x325aa0>; + }; + }; + + DCDC_REG9 { + regulator-always-on; + regulator-boot-on; + regulator-name = "vddq_ddr_s0"; + phandle = <0x2bf>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + DCDC_REG10 { + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <0x1b7740>; + regulator-max-microvolt = <0x1b7740>; + regulator-name = "vcc_1v8_s3"; + phandle = <0x2c0>; + + regulator-state-mem { + regulator-on-in-suspend; + regulator-suspend-microvolt = <0x1b7740>; + }; + }; + + PLDO_REG1 { + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <0x1b7740>; + regulator-max-microvolt = <0x1b7740>; + regulator-name = "avcc_1v8_s0"; + phandle = <0x1de>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + PLDO_REG2 { + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <0x1b7740>; + regulator-max-microvolt = <0x1b7740>; + regulator-name = "vcc_1v8_s0"; + phandle = <0x177>; + + regulator-state-mem { + regulator-off-in-suspend; + regulator-suspend-microvolt = <0x1b7740>; + }; + }; + + PLDO_REG3 { + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <0x124f80>; + regulator-max-microvolt = <0x124f80>; + regulator-name = "avdd_1v2_s0"; + phandle = <0x2c1>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + PLDO_REG4 { + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <0x325aa0>; + regulator-max-microvolt = <0x325aa0>; + regulator-name = "vcc_3v3_s0"; + phandle = <0x2c2>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + PLDO_REG5 { + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <0x1b7740>; + regulator-max-microvolt = <0x325aa0>; + regulator-name = "vccio_sd_s0"; + phandle = <0x118>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + PLDO_REG6 { + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <0x1b7740>; + regulator-max-microvolt = <0x1b7740>; + regulator-name = "pldo6_s3"; + phandle = <0x2c3>; + + regulator-state-mem { + regulator-on-in-suspend; + regulator-suspend-microvolt = <0x1b7740>; + }; + }; + + NLDO_REG1 { + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <0xb71b0>; + regulator-max-microvolt = <0xb71b0>; + regulator-name = "vdd_0v75_s3"; + phandle = <0x2c4>; + + regulator-state-mem { + regulator-on-in-suspend; + regulator-suspend-microvolt = <0xb71b0>; + }; + }; + + NLDO_REG2 { + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <0xcf850>; + regulator-max-microvolt = <0xcf850>; + regulator-name = "vdd_ddr_pll_s0"; + phandle = <0x2c5>; + + regulator-state-mem { + regulator-off-in-suspend; + regulator-suspend-microvolt = <0xcf850>; + }; + }; + + NLDO_REG3 { + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <0xb71b0>; + regulator-max-microvolt = <0xb71b0>; + regulator-name = "avdd_0v75_s0"; + phandle = <0x1df>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + NLDO_REG4 { + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <0xcf850>; + regulator-max-microvolt = <0xcf850>; + regulator-name = "vdd_0v85_s0"; + phandle = <0x2c6>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + NLDO_REG5 { + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <0xb71b0>; + regulator-max-microvolt = <0xb71b0>; + regulator-name = "vdd_0v75_s0"; + phandle = <0x2c7>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + }; + }; + }; + + spi@feb30000 { + compatible = "rockchip,rk3066-spi"; + reg = <0x00 0xfeb30000 0x00 0x1000>; + interrupts = <0x00 0x149 0x04>; + #address-cells = <0x01>; + #size-cells = <0x00>; + clocks = <0x02 0xa6 0x02 0xa1>; + clock-names = "spiclk\0apb_pclk"; + dmas = <0xf1 0x11 0xf1 0x12>; + dma-names = "tx\0rx"; + pinctrl-names = "default"; + pinctrl-0 = <0x15d 0x15e 0x15f>; + num-cs = <0x02>; + status = "disabled"; + phandle = <0x2c8>; + }; + + serial@feb40000 { + compatible = "rockchip,rk3588-uart\0snps,dw-apb-uart"; + reg = <0x00 0xfeb40000 0x00 0x100>; + interrupts = <0x00 0x14c 0x04>; + clocks = <0x02 0xb7 0x02 0xab>; + clock-names = "baudclk\0apb_pclk"; + reg-shift = <0x02>; + reg-io-width = <0x04>; + dmas = <0x7c 0x08 0x7c 0x09>; + pinctrl-names = "default"; + pinctrl-0 = <0x160>; + status = "okay"; + phandle = <0x2c9>; + }; + + serial@feb50000 { + compatible = "rockchip,rk3588-uart\0snps,dw-apb-uart"; + reg = <0x00 0xfeb50000 0x00 0x100>; + interrupts = <0x00 0x14d 0x04>; + clocks = <0x02 0xbb 0x02 0xac>; + clock-names = "baudclk\0apb_pclk"; + reg-shift = <0x02>; + reg-io-width = <0x04>; + dmas = <0x7c 0x0a 0x7c 0x0b>; + pinctrl-names = "default"; + pinctrl-0 = <0x161>; + status = "disabled"; + phandle = <0x2ca>; + }; + + serial@feb60000 { + compatible = "rockchip,rk3588-uart\0snps,dw-apb-uart"; + reg = <0x00 0xfeb60000 0x00 0x100>; + interrupts = <0x00 0x14e 0x04>; + clocks = <0x02 0xbf 0x02 0xad>; + clock-names = "baudclk\0apb_pclk"; + reg-shift = <0x02>; + reg-io-width = <0x04>; + dmas = <0x7c 0x0c 0x7c 0x0d>; + pinctrl-names = "default"; + pinctrl-0 = <0x162>; + status = "disabled"; + phandle = <0x2cb>; + }; + + serial@feb70000 { + compatible = "rockchip,rk3588-uart\0snps,dw-apb-uart"; + reg = <0x00 0xfeb70000 0x00 0x100>; + interrupts = <0x00 0x14f 0x04>; + clocks = <0x02 0xc3 0x02 0xae>; + clock-names = "baudclk\0apb_pclk"; + reg-shift = <0x02>; + reg-io-width = <0x04>; + dmas = <0xf1 0x09 0xf1 0x0a>; + pinctrl-names = "default"; + pinctrl-0 = <0x163>; + status = "disabled"; + phandle = <0x2cc>; + }; + + serial@feb80000 { + compatible = "rockchip,rk3588-uart\0snps,dw-apb-uart"; + reg = <0x00 0xfeb80000 0x00 0x100>; + interrupts = <0x00 0x150 0x04>; + clocks = <0x02 0xc7 0x02 0xaf>; + clock-names = "baudclk\0apb_pclk"; + reg-shift = <0x02>; + reg-io-width = <0x04>; + dmas = <0xf1 0x0b 0xf1 0x0c>; + pinctrl-names = "default"; + pinctrl-0 = <0x164>; + status = "disabled"; + phandle = <0x2cd>; + }; + + serial@feb90000 { + compatible = "rockchip,rk3588-uart\0snps,dw-apb-uart"; + reg = <0x00 0xfeb90000 0x00 0x100>; + interrupts = <0x00 0x151 0x04>; + clocks = <0x02 0xcb 0x02 0xb0>; + clock-names = "baudclk\0apb_pclk"; + reg-shift = <0x02>; + reg-io-width = <0x04>; + dmas = <0xf1 0x0d 0xf1 0x0e>; + pinctrl-names = "default"; + pinctrl-0 = <0x165>; + status = "okay"; + phandle = <0x2ce>; + }; + + serial@feba0000 { + compatible = "rockchip,rk3588-uart\0snps,dw-apb-uart"; + reg = <0x00 0xfeba0000 0x00 0x100>; + interrupts = <0x00 0x152 0x04>; + clocks = <0x02 0xcf 0x02 0xb1>; + clock-names = "baudclk\0apb_pclk"; + reg-shift = <0x02>; + reg-io-width = <0x04>; + dmas = <0xf2 0x07 0xf2 0x08>; + pinctrl-names = "default"; + pinctrl-0 = <0x166>; + status = "disabled"; + phandle = <0x2cf>; + }; + + serial@febb0000 { + compatible = "rockchip,rk3588-uart\0snps,dw-apb-uart"; + reg = <0x00 0xfebb0000 0x00 0x100>; + interrupts = <0x00 0x153 0x04>; + clocks = <0x02 0xd3 0x02 0xb2>; + clock-names = "baudclk\0apb_pclk"; + reg-shift = <0x02>; + reg-io-width = <0x04>; + dmas = <0xf2 0x09 0xf2 0x0a>; + pinctrl-names = "default"; + pinctrl-0 = <0x167>; + status = "disabled"; + phandle = <0x2d0>; + }; + + serial@febc0000 { + compatible = "rockchip,rk3588-uart\0snps,dw-apb-uart"; + reg = <0x00 0xfebc0000 0x00 0x100>; + interrupts = <0x00 0x154 0x04>; + clocks = <0x02 0xd7 0x02 0xb3>; + clock-names = "baudclk\0apb_pclk"; + reg-shift = <0x02>; + reg-io-width = <0x04>; + dmas = <0xf2 0x0b 0xf2 0x0c>; + pinctrl-names = "default"; + pinctrl-0 = <0x168>; + status = "disabled"; + phandle = <0x2d1>; + }; + + pwm@febd0000 { + compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; + reg = <0x00 0xfebd0000 0x00 0x10>; + interrupts = <0x00 0x15a 0x04>; + #pwm-cells = <0x03>; + pinctrl-names = "active"; + pinctrl-0 = <0x169>; + clocks = <0x02 0x54 0x02 0x53>; + clock-names = "pwm\0pclk"; + status = "disabled"; + phandle = <0x2d2>; + }; + + pwm@febd0010 { + compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; + reg = <0x00 0xfebd0010 0x00 0x10>; + interrupts = <0x00 0x15a 0x04>; + #pwm-cells = <0x03>; + pinctrl-names = "active"; + pinctrl-0 = <0x16a>; + clocks = <0x02 0x54 0x02 0x53>; + clock-names = "pwm\0pclk"; + status = "okay"; + phandle = <0x1ed>; + }; + + pwm@febd0020 { + compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; + reg = <0x00 0xfebd0020 0x00 0x10>; + interrupts = <0x00 0x15a 0x04>; + #pwm-cells = <0x03>; + pinctrl-names = "active"; + pinctrl-0 = <0x16b>; + clocks = <0x02 0x54 0x02 0x53>; + clock-names = "pwm\0pclk"; + status = "disabled"; + phandle = <0x2d3>; + }; + + pwm@febd0030 { + compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; + reg = <0x00 0xfebd0030 0x00 0x10>; + interrupts = <0x00 0x15a 0x04 0x00 0x15b 0x04>; + #pwm-cells = <0x03>; + pinctrl-names = "active"; + pinctrl-0 = <0x16c>; + clocks = <0x02 0x54 0x02 0x53>; + clock-names = "pwm\0pclk"; + status = "disabled"; + phandle = <0x2d4>; + }; + + pwm@febe0000 { + compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; + reg = <0x00 0xfebe0000 0x00 0x10>; + interrupts = <0x00 0x15c 0x04>; + #pwm-cells = <0x03>; + pinctrl-names = "active"; + pinctrl-0 = <0x16d>; + clocks = <0x02 0x57 0x02 0x56>; + clock-names = "pwm\0pclk"; + status = "disabled"; + phandle = <0x2d5>; + }; + + pwm@febe0010 { + compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; + reg = <0x00 0xfebe0010 0x00 0x10>; + interrupts = <0x00 0x15c 0x04>; + #pwm-cells = <0x03>; + pinctrl-names = "active"; + pinctrl-0 = <0x16e>; + clocks = <0x02 0x57 0x02 0x56>; + clock-names = "pwm\0pclk"; + status = "disabled"; + phandle = <0x2d6>; + }; + + pwm@febe0020 { + compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; + reg = <0x00 0xfebe0020 0x00 0x10>; + interrupts = <0x00 0x15c 0x04>; + #pwm-cells = <0x03>; + pinctrl-names = "active"; + pinctrl-0 = <0x16f>; + clocks = <0x02 0x57 0x02 0x56>; + clock-names = "pwm\0pclk"; + status = "disabled"; + phandle = <0x2d7>; + }; + + pwm@febe0030 { + compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; + reg = <0x00 0xfebe0030 0x00 0x10>; + interrupts = <0x00 0x15c 0x04 0x00 0x15d 0x04>; + #pwm-cells = <0x03>; + pinctrl-names = "active"; + pinctrl-0 = <0x170>; + clocks = <0x02 0x57 0x02 0x56>; + clock-names = "pwm\0pclk"; + status = "disabled"; + phandle = <0x2d8>; + }; + + pwm@febf0000 { + compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; + reg = <0x00 0xfebf0000 0x00 0x10>; + interrupts = <0x00 0x15e 0x04>; + #pwm-cells = <0x03>; + pinctrl-names = "active"; + pinctrl-0 = <0x171>; + clocks = <0x02 0x5a 0x02 0x59>; + clock-names = "pwm\0pclk"; + status = "disabled"; + phandle = <0x2d9>; + }; + + pwm@febf0010 { + compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; + reg = <0x00 0xfebf0010 0x00 0x10>; + interrupts = <0x00 0x15e 0x04>; + #pwm-cells = <0x03>; + pinctrl-names = "active"; + pinctrl-0 = <0x172>; + clocks = <0x02 0x5a 0x02 0x59>; + clock-names = "pwm\0pclk"; + status = "disabled"; + phandle = <0x2da>; + }; + + pwm@febf0020 { + compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; + reg = <0x00 0xfebf0020 0x00 0x10>; + interrupts = <0x00 0x15e 0x04>; + #pwm-cells = <0x03>; + pinctrl-names = "active"; + pinctrl-0 = <0x173>; + clocks = <0x02 0x5a 0x02 0x59>; + clock-names = "pwm\0pclk"; + status = "disabled"; + phandle = <0x2db>; + }; + + pwm@febf0030 { + compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; + reg = <0x00 0xfebf0030 0x00 0x10>; + interrupts = <0x00 0x15e 0x04 0x00 0x15f 0x04>; + #pwm-cells = <0x03>; + pinctrl-names = "active"; + pinctrl-0 = <0x174>; + clocks = <0x02 0x5a 0x02 0x59>; + clock-names = "pwm\0pclk"; + status = "disabled"; + phandle = <0x2dc>; + }; + + tsadc@fec00000 { + compatible = "rockchip,rk3588-tsadc"; + reg = <0x00 0xfec00000 0x00 0x400>; + interrupts = <0x00 0x18d 0x04>; + clocks = <0x02 0xaa 0x02 0xa9>; + clock-names = "tsadc\0apb_pclk"; + assigned-clocks = <0x02 0xaa>; + assigned-clock-rates = <0x1e8480>; + resets = <0x02 0xc1 0x02 0xc0>; + reset-names = "tsadc\0tsadc-apb"; + #thermal-sensor-cells = <0x01>; + rockchip,hw-tshut-temp = <0x1d4c0>; + rockchip,hw-tshut-mode = <0x00>; + rockchip,hw-tshut-polarity = <0x00>; + pinctrl-names = "gpio\0otpout"; + pinctrl-0 = <0x175>; + pinctrl-1 = <0x176>; + status = "okay"; + phandle = <0x5d>; + }; + + saradc@fec10000 { + compatible = "rockchip,rk3588-saradc"; + reg = <0x00 0xfec10000 0x00 0x10000>; + interrupts = <0x00 0x18e 0x04>; + #io-channel-cells = <0x01>; + clocks = <0x02 0x9d 0x02 0x9c>; + clock-names = "saradc\0apb_pclk"; + resets = <0x02 0xbe>; + reset-names = "saradc-apb"; + status = "okay"; + vref-supply = <0x177>; + phandle = <0x1d9>; + }; + + mailbox@fec60000 { + compatible = "rockchip,rk3588-mailbox\0rockchip,rk3368-mailbox"; + reg = <0x00 0xfec60000 0x00 0x200>; + interrupts = <0x00 0x3d 0x04 0x00 0x3e 0x04 0x00 0x3f 0x04 0x00 0x40 0x04>; + clocks = <0x02 0x4c>; + clock-names = "pclk_mailbox"; + #mbox-cells = <0x01>; + status = "disabled"; + phandle = <0x2dd>; + }; + + mailbox@fec70000 { + compatible = "rockchip,rk3588-mailbox\0rockchip,rk3368-mailbox"; + reg = <0x00 0xfec70000 0x00 0x200>; + interrupts = <0x00 0x45 0x04 0x00 0x46 0x04 0x00 0x47 0x04 0x00 0x48 0x04>; + clocks = <0x02 0x4d>; + clock-names = "pclk_mailbox"; + #mbox-cells = <0x01>; + status = "disabled"; + phandle = <0x2de>; + }; + + i2c@fec80000 { + compatible = "rockchip,rk3588-i2c\0rockchip,rk3399-i2c"; + reg = <0x00 0xfec80000 0x00 0x1000>; + clocks = <0x02 0x92 0x02 0x8a>; + clock-names = "i2c\0pclk"; + interrupts = <0x00 0x143 0x04>; + pinctrl-names = "default"; + pinctrl-0 = <0x178>; + resets = <0x02 0xb5 0x02 0xad>; + reset-names = "i2c\0apb"; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "okay"; + phandle = <0x2df>; + + es8388@11 { + status = "okay"; + #sound-dai-cells = <0x00>; + compatible = "everest,es8388\0everest,es8323"; + reg = <0x11>; + clocks = <0x179>; + clock-names = "mclk"; + assigned-clocks = <0x179>; + assigned-clock-rates = <0xbb8000>; + pinctrl-names = "default"; + pinctrl-0 = <0x17a>; + phandle = <0x1db>; + }; + + fusb302@22 { + compatible = "fcs,fusb302"; + reg = <0x22>; + interrupt-parent = <0x7b>; + interrupts = <0x1b 0x08>; + pinctrl-names = "default"; + pinctrl-0 = <0x17b>; + vbus-supply = <0x17c>; + status = "disabled"; + phandle = <0x2e0>; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + reg = <0x00>; + + endpoint@0 { + remote-endpoint = <0x17d>; + phandle = <0x68>; + }; + }; + }; + + connector { + compatible = "usb-c-connector"; + label = "USB-C"; + data-role = "dual"; + power-role = "dual"; + try-power-role = "sink"; + op-sink-microwatt = <0xf4240>; + sink-pdos = <0x4019064>; + source-pdos = <0x401912c>; + phandle = <0x2e1>; + + altmodes { + #address-cells = <0x01>; + #size-cells = <0x00>; + + altmode@0 { + reg = <0x00>; + svid = <0xff01>; + vdo = <0xffffffff>; + }; + }; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + reg = <0x00>; + + endpoint { + remote-endpoint = <0x17e>; + phandle = <0x18e>; + }; + }; + + port@1 { + reg = <0x01>; + + endpoint { + remote-endpoint = <0x17f>; + phandle = <0x18f>; + }; + }; + }; + }; + }; + + XC7160b@1b { + compatible = "firefly,xc7160"; + reg = <0x1b>; + clocks = <0x02 0x100>; + clock-names = "xvclk"; + pinctrl-names = "default"; + pinctrl-0 = <0x180>; + power-domains = <0x60 0x1b>; + power-gpios = <0x181 0x1d 0x01>; + reset-gpios = <0x182 0x05 0x00>; + pwdn-gpios = <0xfe 0x04 0x00>; + firefly,clkout-enabled-index = <0x00>; + rockchip,camera-module-index = <0x00>; + rockchip,camera-module-facing = "back"; + rockchip,camera-module-name = "NC"; + rockchip,camera-module-lens-name = "NC"; + phandle = <0x2e2>; + + port { + + endpoint { + remote-endpoint = <0x183>; + data-lanes = <0x01 0x02 0x03 0x04>; + phandle = <0x31>; + }; + }; + }; + + imx415@37 { + compatible = "sony,imx415"; + reg = <0x37>; + clocks = <0x02 0x100>; + clock-names = "xvclk"; + pinctrl-names = "default"; + pinctrl-0 = <0x180>; + power-domains = <0x60 0x1b>; + power-gpios = <0x181 0x1d 0x00>; + reset-gpios = <0x182 0x05 0x01>; + firefly,clkout-enabled-index = <0x00>; + rockchip,camera-module-index = <0x00>; + rockchip,camera-module-facing = "back"; + rockchip,camera-module-name = "CMK-OT2022-PX1"; + rockchip,camera-module-lens-name = "IR0147-50IRC-8M-F20"; + phandle = <0x2e3>; + + port { + + endpoint { + remote-endpoint = <0x184>; + data-lanes = <0x01 0x02 0x03 0x04>; + phandle = <0x32>; + }; + }; + }; + }; + + i2c@fec90000 { + compatible = "rockchip,rk3588-i2c\0rockchip,rk3399-i2c"; + reg = <0x00 0xfec90000 0x00 0x1000>; + clocks = <0x02 0x93 0x02 0x8b>; + clock-names = "i2c\0pclk"; + interrupts = <0x00 0x144 0x04>; + pinctrl-names = "default"; + pinctrl-0 = <0x185>; + resets = <0x02 0xb6 0x02 0xae>; + reset-names = "i2c\0apb"; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "disabled"; + phandle = <0x2e4>; + }; + + i2c@feca0000 { + compatible = "rockchip,rk3588-i2c\0rockchip,rk3399-i2c"; + reg = <0x00 0xfeca0000 0x00 0x1000>; + clocks = <0x02 0x94 0x02 0x8c>; + clock-names = "i2c\0pclk"; + interrupts = <0x00 0x145 0x04>; + pinctrl-names = "default"; + pinctrl-0 = <0x186>; + resets = <0x02 0xb7 0x02 0xaf>; + reset-names = "i2c\0apb"; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "disabled"; + phandle = <0x2e5>; + }; + + spi@fecb0000 { + compatible = "rockchip,rk3066-spi"; + reg = <0x00 0xfecb0000 0x00 0x1000>; + interrupts = <0x00 0x14a 0x04>; + #address-cells = <0x01>; + #size-cells = <0x00>; + clocks = <0x02 0xa7 0x02 0xa2>; + clock-names = "spiclk\0apb_pclk"; + dmas = <0xf2 0x0d 0xf2 0x0e>; + dma-names = "tx\0rx"; + pinctrl-names = "default"; + pinctrl-0 = <0x187 0x188 0x189>; + num-cs = <0x02>; + status = "disabled"; + phandle = <0x2e6>; + }; + + otp@fecc0000 { + compatible = "rockchip,rk3588-otp"; + reg = <0x00 0xfecc0000 0x00 0x400>; + #address-cells = <0x01>; + #size-cells = <0x01>; + clocks = <0x02 0x96 0x02 0x95 0x02 0x97 0x02 0x99>; + clock-names = "otpc\0apb\0arb\0phy"; + resets = <0x02 0x12a 0x02 0x129 0x02 0x12b>; + reset-names = "otpc\0apb\0arb"; + phandle = <0x2e7>; + + cpu-code@2 { + reg = <0x02 0x02>; + phandle = <0x2c>; + }; + + package-serial-number-high@5 { + reg = <0x05 0x01>; + bits = <0x00 0x01>; + phandle = <0xd5>; + }; + + package-serial-number-low@6 { + reg = <0x06 0x01>; + bits = <0x05 0x03>; + phandle = <0xd4>; + }; + + specification-serial-number@6 { + reg = <0x06 0x01>; + bits = <0x00 0x05>; + phandle = <0x21>; + }; + + id@7 { + reg = <0x07 0x10>; + phandle = <0x2a>; + }; + + cpu-version@1c { + reg = <0x1c 0x01>; + bits = <0x03 0x03>; + phandle = <0x2b>; + }; + + cpub0-leakage@17 { + reg = <0x17 0x01>; + phandle = <0x24>; + }; + + cpub1-leakage@18 { + reg = <0x18 0x01>; + phandle = <0x27>; + }; + + cpul-leakage@19 { + reg = <0x19 0x01>; + phandle = <0x1f>; + }; + + log-leakage@1a { + reg = <0x1a 0x01>; + phandle = <0x44>; + }; + + gpu-leakage@1b { + reg = <0x1b 0x01>; + phandle = <0x63>; + }; + + npu-leakage@28 { + reg = <0x28 0x01>; + phandle = <0xb4>; + }; + + codec-leakage@29 { + reg = <0x29 0x01>; + phandle = <0xc6>; + }; + + cpul-opp-info@3d { + reg = <0x3d 0x06>; + phandle = <0x20>; + }; + + cpub01-opp-info@43 { + reg = <0x43 0x06>; + phandle = <0x25>; + }; + + cpub23-opp-info@49 { + reg = <0x49 0x06>; + phandle = <0x28>; + }; + + gpu-opp-info@4f { + reg = <0x4f 0x06>; + phandle = <0x64>; + }; + + npu-opp-info@55 { + reg = <0x55 0x06>; + phandle = <0xb5>; + }; + + dmc-opp-info@5b { + reg = <0x5b 0x06>; + phandle = <0x45>; + }; + + vop-opp-info@61 { + reg = <0x61 0x06>; + phandle = <0x2e8>; + }; + + venc-opp-info@67 { + reg = <0x67 0x06>; + phandle = <0xc7>; + }; + }; + + mailbox@fece0000 { + compatible = "rockchip,rk3588-mailbox\0rockchip,rk3368-mailbox"; + reg = <0x00 0xfece0000 0x00 0x200>; + interrupts = <0x00 0x4d 0x04 0x00 0x4e 0x04 0x00 0x4f 0x04 0x00 0x50 0x04>; + clocks = <0x02 0x4e>; + clock-names = "pclk_mailbox"; + #mbox-cells = <0x01>; + status = "disabled"; + phandle = <0x2e9>; + }; + + dma-controller@fed10000 { + compatible = "arm,pl330\0arm,primecell"; + reg = <0x00 0xfed10000 0x00 0x4000>; + interrupts = <0x00 0x5a 0x04 0x00 0x5b 0x04>; + clocks = <0x02 0x7a>; + clock-names = "apb_pclk"; + #dma-cells = <0x01>; + arm,pl330-periph-burst; + phandle = <0xf2>; + }; + + phy@fed60000 { + compatible = "rockchip,rk3588-hdptx-phy"; + reg = <0x00 0xfed60000 0x00 0x2000>; + clocks = <0x02 0x2b5 0x02 0x267>; + clock-names = "ref\0apb"; + resets = <0x02 0x485 0x02 0xc003b 0x02 0xc003c 0x02 0xc003d>; + reset-names = "apb\0init\0cmn\0lane"; + rockchip,grf = <0x18a>; + #phy-cells = <0x00>; + status = "disabled"; + phandle = <0x101>; + }; + + hdmiphy@fed60000 { + compatible = "rockchip,rk3588-hdptx-phy-hdmi"; + reg = <0x00 0xfed60000 0x00 0x2000>; + clocks = <0x02 0x2b5 0x02 0x267>; + clock-names = "ref\0apb"; + resets = <0x02 0x48e 0x02 0x485 0x02 0xc003b 0x02 0xc003c 0x02 0xc003d 0x02 0x48c 0x02 0x48d>; + reset-names = "phy\0apb\0init\0cmn\0lane\0ropll\0lcpll"; + rockchip,grf = <0x18a>; + #phy-cells = <0x00>; + status = "okay"; + phandle = <0xfd>; + + clk-port { + #clock-cells = <0x00>; + status = "okay"; + phandle = <0x35>; + }; + }; + + phy@fed80000 { + compatible = "rockchip,rk3588-usbdp-phy"; + reg = <0x00 0xfed80000 0x00 0x10000>; + rockchip,u2phy-grf = <0x18b>; + rockchip,usb-grf = <0x74>; + rockchip,usbdpphy-grf = <0x18c>; + rockchip,vo-grf = <0xf5>; + clocks = <0x02 0x2b6 0x02 0x27f 0x02 0x269 0x18d>; + clock-names = "refclk\0immortal\0pclk\0utmi"; + resets = <0x02 0x28 0x02 0x29 0x02 0x2a 0x02 0x2b 0x02 0x482>; + reset-names = "init\0cmn\0lane\0pcs_apb\0pma_apb"; + status = "okay"; + orientation-switch; + svid = <0xff01>; + sbu1-dc-gpios = <0x10d 0x06 0x00>; + sbu2-dc-gpios = <0x10d 0x07 0x00>; + phandle = <0x2ea>; + + dp-port { + #phy-cells = <0x00>; + status = "okay"; + phandle = <0xf6>; + }; + + u3-port { + #phy-cells = <0x00>; + status = "okay"; + phandle = <0x67>; + }; + + port { + #address-cells = <0x01>; + #size-cells = <0x00>; + + endpoint@0 { + reg = <0x00>; + remote-endpoint = <0x18e>; + phandle = <0x17e>; + }; + + endpoint@1 { + reg = <0x01>; + remote-endpoint = <0x18f>; + phandle = <0x17f>; + }; + }; + }; + + phy@feda0000 { + compatible = "rockchip,rk3588-mipi-dcphy"; + reg = <0x00 0xfeda0000 0x00 0x10000>; + rockchip,grf = <0x190>; + clocks = <0x02 0x108 0x02 0x2b6>; + clock-names = "pclk\0ref"; + resets = <0x02 0xc0043 0x02 0x3e 0x02 0x3f 0x02 0xc0044>; + reset-names = "m_phy\0apb\0grf\0s_phy"; + #phy-cells = <0x00>; + status = "okay"; + phandle = <0x2f>; + }; + + phy@fedb0000 { + compatible = "rockchip,rk3588-mipi-dcphy"; + reg = <0x00 0xfedb0000 0x00 0x10000>; + rockchip,grf = <0x191>; + clocks = <0x02 0x109 0x02 0x2b6>; + clock-names = "pclk\0ref"; + resets = <0x02 0xc0045 0x02 0x43 0x02 0x44 0x02 0xc0046>; + reset-names = "m_phy\0apb\0grf\0s_phy"; + #phy-cells = <0x00>; + status = "okay"; + phandle = <0x30>; + }; + + csi2-dphy0-hw@fedc0000 { + compatible = "rockchip,rk3588-csi2-dphy-hw"; + reg = <0x00 0xfedc0000 0x00 0x8000>; + clocks = <0x02 0x10c>; + clock-names = "pclk"; + resets = <0x02 0x17 0x02 0x16>; + reset-names = "srst_csiphy0\0srst_p_csiphy0"; + rockchip,grf = <0x192>; + rockchip,sys_grf = <0xc8>; + status = "okay"; + phandle = <0x2d>; + }; + + csi2-dphy1-hw@fedc8000 { + compatible = "rockchip,rk3588-csi2-dphy-hw"; + reg = <0x00 0xfedc8000 0x00 0x8000>; + clocks = <0x02 0x10d>; + clock-names = "pclk"; + resets = <0x02 0x19 0x02 0x18>; + reset-names = "srst_csiphy1\0srst_p_csiphy1"; + rockchip,grf = <0x193>; + rockchip,sys_grf = <0xc8>; + status = "okay"; + phandle = <0x2e>; + }; + + phy@fee00000 { + compatible = "rockchip,rk3588-naneng-combphy"; + reg = <0x00 0xfee00000 0x00 0x100>; + #phy-cells = <0x01>; + clocks = <0x02 0x2bd 0x02 0x185 0x02 0x166>; + clock-names = "refclk\0apbclk\0phpclk"; + assigned-clocks = <0x02 0x2bd>; + assigned-clock-rates = <0x5f5e100>; + resets = <0x02 0x20005 0x02 0x4d6>; + reset-names = "combphy-apb\0combphy"; + rockchip,pipe-grf = <0x76>; + rockchip,pipe-phy-grf = <0x194>; + status = "okay"; + phandle = <0x108>; + }; + + phy@fee20000 { + compatible = "rockchip,rk3588-naneng-combphy"; + reg = <0x00 0xfee20000 0x00 0x100>; + #phy-cells = <0x01>; + clocks = <0x02 0x2bf 0x02 0x187 0x02 0x166>; + clock-names = "refclk\0apbclk\0phpclk"; + assigned-clocks = <0x02 0x2bf>; + assigned-clock-rates = <0x5f5e100>; + resets = <0x02 0x20007 0x02 0x4d8>; + reset-names = "combphy-apb\0combphy"; + rockchip,pipe-grf = <0x76>; + rockchip,pipe-phy-grf = <0x195>; + rockchip,pcie1ln-sel-bits = <0x100 0x01 0x01 0x00>; + status = "disabled"; + phandle = <0x70>; + }; + + sram@ff001000 { + compatible = "mmio-sram"; + reg = <0x00 0xff001000 0x00 0xef000>; + #address-cells = <0x01>; + #size-cells = <0x01>; + ranges = <0x00 0x00 0xff001000 0xef000>; + phandle = <0x2eb>; + + rkvdec-sram@0 { + reg = <0x00 0x78000>; + phandle = <0xcb>; + }; + + rkvdec-sram@78000 { + reg = <0x78000 0x77000>; + phandle = <0xcd>; + }; + }; + + pinctrl { + compatible = "rockchip,rk3588-pinctrl"; + rockchip,grf = <0x196>; + #address-cells = <0x02>; + #size-cells = <0x02>; + ranges; + phandle = <0x197>; + + gpio@fd8a0000 { + compatible = "rockchip,gpio-bank"; + reg = <0x00 0xfd8a0000 0x00 0x100>; + interrupts = <0x00 0x115 0x04>; + clocks = <0x02 0x284 0x02 0x285>; + gpio-controller; + #gpio-cells = <0x02>; + gpio-ranges = <0x197 0x00 0x00 0x20>; + interrupt-controller; + #interrupt-cells = <0x02>; + phandle = <0x7b>; + }; + + gpio@fec20000 { + compatible = "rockchip,gpio-bank"; + reg = <0x00 0xfec20000 0x00 0x100>; + interrupts = <0x00 0x116 0x04>; + clocks = <0x02 0x7d 0x02 0x7e>; + gpio-controller; + #gpio-cells = <0x02>; + gpio-ranges = <0x197 0x00 0x20 0x20>; + interrupt-controller; + #interrupt-cells = <0x02>; + phandle = <0xfe>; + }; + + gpio@fec30000 { + compatible = "rockchip,gpio-bank"; + reg = <0x00 0xfec30000 0x00 0x100>; + interrupts = <0x00 0x117 0x04>; + clocks = <0x02 0x7f 0x02 0x80>; + gpio-controller; + #gpio-cells = <0x02>; + gpio-ranges = <0x197 0x00 0x40 0x20>; + interrupt-controller; + #interrupt-cells = <0x02>; + phandle = <0x79>; + }; + + gpio@fec40000 { + compatible = "rockchip,gpio-bank"; + reg = <0x00 0xfec40000 0x00 0x100>; + interrupts = <0x00 0x118 0x04>; + clocks = <0x02 0x81 0x02 0x82>; + gpio-controller; + #gpio-cells = <0x02>; + gpio-ranges = <0x197 0x00 0x60 0x20>; + interrupt-controller; + #interrupt-cells = <0x02>; + phandle = <0x181>; + }; + + gpio@fec50000 { + compatible = "rockchip,gpio-bank"; + reg = <0x00 0xfec50000 0x00 0x100>; + interrupts = <0x00 0x119 0x04>; + clocks = <0x02 0x83 0x02 0x84>; + gpio-controller; + #gpio-cells = <0x02>; + gpio-ranges = <0x197 0x00 0x80 0x20>; + interrupt-controller; + #interrupt-cells = <0x02>; + phandle = <0x10d>; + }; + + pcfg-pull-up { + bias-pull-up; + phandle = <0x19e>; + }; + + pcfg-pull-down { + bias-pull-down; + phandle = <0x2ec>; + }; + + pcfg-pull-none { + bias-disable; + phandle = <0x198>; + }; + + pcfg-pull-none-drv-level-0 { + bias-disable; + drive-strength = <0x00>; + phandle = <0x2ed>; + }; + + pcfg-pull-none-drv-level-1 { + bias-disable; + drive-strength = <0x01>; + phandle = <0x2ee>; + }; + + pcfg-pull-none-drv-level-2 { + bias-disable; + drive-strength = <0x02>; + phandle = <0x1a0>; + }; + + pcfg-pull-none-drv-level-3 { + bias-disable; + drive-strength = <0x03>; + phandle = <0x2ef>; + }; + + pcfg-pull-none-drv-level-4 { + bias-disable; + drive-strength = <0x04>; + phandle = <0x2f0>; + }; + + pcfg-pull-none-drv-level-5 { + bias-disable; + drive-strength = <0x05>; + phandle = <0x2f1>; + }; + + pcfg-pull-none-drv-level-6 { + bias-disable; + drive-strength = <0x06>; + phandle = <0x2f2>; + }; + + pcfg-pull-up-drv-level-0 { + bias-pull-up; + drive-strength = <0x00>; + phandle = <0x2f3>; + }; + + pcfg-pull-up-drv-level-1 { + bias-pull-up; + drive-strength = <0x01>; + phandle = <0x19f>; + }; + + pcfg-pull-up-drv-level-2 { + bias-pull-up; + drive-strength = <0x02>; + phandle = <0x199>; + }; + + pcfg-pull-up-drv-level-3 { + bias-pull-up; + drive-strength = <0x03>; + phandle = <0x2f4>; + }; + + pcfg-pull-up-drv-level-4 { + bias-pull-up; + drive-strength = <0x04>; + phandle = <0x2f5>; + }; + + pcfg-pull-up-drv-level-5 { + bias-pull-up; + drive-strength = <0x05>; + phandle = <0x2f6>; + }; + + pcfg-pull-up-drv-level-6 { + bias-pull-up; + drive-strength = <0x06>; + phandle = <0x19a>; + }; + + pcfg-pull-down-drv-level-0 { + bias-pull-down; + drive-strength = <0x00>; + phandle = <0x2f7>; + }; + + pcfg-pull-down-drv-level-1 { + bias-pull-down; + drive-strength = <0x01>; + phandle = <0x2f8>; + }; + + pcfg-pull-down-drv-level-2 { + bias-pull-down; + drive-strength = <0x02>; + phandle = <0x2f9>; + }; + + pcfg-pull-down-drv-level-3 { + bias-pull-down; + drive-strength = <0x03>; + phandle = <0x2fa>; + }; + + pcfg-pull-down-drv-level-4 { + bias-pull-down; + drive-strength = <0x04>; + phandle = <0x2fb>; + }; + + pcfg-pull-down-drv-level-5 { + bias-pull-down; + drive-strength = <0x05>; + phandle = <0x2fc>; + }; + + pcfg-pull-down-drv-level-6 { + bias-pull-down; + drive-strength = <0x06>; + phandle = <0x2fd>; + }; + + pcfg-pull-up-smt { + bias-pull-up; + input-schmitt-enable; + phandle = <0x2fe>; + }; + + pcfg-pull-down-smt { + bias-pull-down; + input-schmitt-enable; + phandle = <0x2ff>; + }; + + pcfg-pull-none-smt { + bias-disable; + input-schmitt-enable; + phandle = <0x19d>; + }; + + pcfg-pull-none-drv-level-0-smt { + bias-disable; + drive-strength = <0x00>; + input-schmitt-enable; + phandle = <0x300>; + }; + + pcfg-pull-none-drv-level-1-smt { + bias-disable; + drive-strength = <0x01>; + input-schmitt-enable; + phandle = <0x19c>; + }; + + pcfg-pull-none-drv-level-2-smt { + bias-disable; + drive-strength = <0x02>; + input-schmitt-enable; + phandle = <0x301>; + }; + + pcfg-pull-none-drv-level-3-smt { + bias-disable; + drive-strength = <0x03>; + input-schmitt-enable; + phandle = <0x302>; + }; + + pcfg-pull-none-drv-level-4-smt { + bias-disable; + drive-strength = <0x04>; + input-schmitt-enable; + phandle = <0x303>; + }; + + pcfg-pull-none-drv-level-5-smt { + bias-disable; + drive-strength = <0x05>; + input-schmitt-enable; + phandle = <0x19b>; + }; + + pcfg-pull-none-drv-level-6-smt { + bias-disable; + drive-strength = <0x06>; + input-schmitt-enable; + phandle = <0x304>; + }; + + pcfg-output-high { + output-high; + phandle = <0x305>; + }; + + pcfg-output-high-pull-up { + output-high; + bias-pull-up; + phandle = <0x306>; + }; + + pcfg-output-high-pull-down { + output-high; + bias-pull-down; + phandle = <0x307>; + }; + + pcfg-output-high-pull-none { + output-high; + bias-disable; + phandle = <0x308>; + }; + + pcfg-output-low { + output-low; + phandle = <0x309>; + }; + + pcfg-output-low-pull-up { + output-low; + bias-pull-up; + phandle = <0x30a>; + }; + + pcfg-output-low-pull-down { + output-low; + bias-pull-down; + phandle = <0x30b>; + }; + + pcfg-output-low-pull-none { + output-low; + bias-disable; + phandle = <0x30c>; + }; + + auddsm { + + auddsm-pins { + rockchip,pins = <0x03 0x01 0x04 0x198 0x03 0x02 0x04 0x198 0x03 0x03 0x04 0x198 0x03 0x04 0x04 0x198>; + phandle = <0x144>; + }; + }; + + bt1120 { + + bt1120-pins { + rockchip,pins = <0x04 0x08 0x02 0x198 0x04 0x00 0x02 0x198 0x04 0x01 0x02 0x198 0x04 0x02 0x02 0x198 0x04 0x03 0x02 0x198 0x04 0x04 0x02 0x198 0x04 0x05 0x02 0x198 0x04 0x06 0x02 0x198 0x04 0x07 0x02 0x198 0x04 0x0a 0x02 0x198 0x04 0x0b 0x02 0x198 0x04 0x0c 0x02 0x198 0x04 0x0d 0x02 0x198 0x04 0x0e 0x02 0x198 0x04 0x0f 0x02 0x198 0x04 0x10 0x02 0x198 0x04 0x11 0x02 0x198>; + phandle = <0x71>; + }; + }; + + can0 { + + can0m0-pins { + rockchip,pins = <0x00 0x10 0x0b 0x198 0x00 0x0f 0x0b 0x198>; + phandle = <0x145>; + }; + + can0m1-pins { + rockchip,pins = <0x04 0x1d 0x09 0x198 0x04 0x1c 0x09 0x198>; + phandle = <0x30d>; + }; + }; + + can1 { + + can1m0-pins { + rockchip,pins = <0x03 0x0d 0x09 0x198 0x03 0x0e 0x09 0x198>; + phandle = <0x30e>; + }; + + can1m1-pins { + rockchip,pins = <0x04 0x0a 0x0c 0x198 0x04 0x0b 0x0c 0x198>; + phandle = <0x146>; + }; + }; + + can2 { + + can2m0-pins { + rockchip,pins = <0x03 0x14 0x09 0x198 0x03 0x15 0x09 0x198>; + phandle = <0x147>; + }; + + can2m1-pins { + rockchip,pins = <0x00 0x1c 0x0a 0x198 0x00 0x1d 0x0a 0x198>; + phandle = <0x30f>; + }; + }; + + cif { + + cif-clk { + rockchip,pins = <0x04 0x0c 0x01 0x198>; + phandle = <0x310>; + }; + + cif-dvp-clk { + rockchip,pins = <0x04 0x08 0x01 0x198 0x04 0x0a 0x01 0x198 0x04 0x0b 0x01 0x198>; + phandle = <0x311>; + }; + + cif-dvp-bus16 { + rockchip,pins = <0x03 0x14 0x01 0x198 0x03 0x15 0x01 0x198 0x03 0x16 0x01 0x198 0x03 0x17 0x01 0x198 0x03 0x18 0x01 0x198 0x03 0x19 0x01 0x198 0x03 0x1a 0x01 0x198 0x03 0x1b 0x01 0x198>; + phandle = <0x312>; + }; + + cif-dvp-bus8 { + rockchip,pins = <0x04 0x00 0x01 0x198 0x04 0x01 0x01 0x198 0x04 0x02 0x01 0x198 0x04 0x03 0x01 0x198 0x04 0x04 0x01 0x198 0x04 0x05 0x01 0x198 0x04 0x06 0x01 0x198 0x04 0x07 0x01 0x198>; + phandle = <0x313>; + }; + }; + + clk32k { + + clk32k-in { + rockchip,pins = <0x00 0x0a 0x01 0x198>; + phandle = <0x314>; + }; + + clk32k-out0 { + rockchip,pins = <0x00 0x0a 0x02 0x198>; + phandle = <0x315>; + }; + + clk32k-out1 { + rockchip,pins = <0x02 0x15 0x01 0x198>; + phandle = <0x316>; + }; + }; + + cpu { + + cpu-pins { + rockchip,pins = <0x00 0x19 0x02 0x198 0x00 0x1d 0x02 0x198>; + phandle = <0x317>; + }; + }; + + ddrphych0 { + + ddrphych0-pins { + rockchip,pins = <0x04 0x00 0x07 0x198 0x04 0x01 0x07 0x198 0x04 0x02 0x07 0x198 0x04 0x03 0x07 0x198>; + phandle = <0x318>; + }; + }; + + ddrphych1 { + + ddrphych1-pins { + rockchip,pins = <0x04 0x04 0x07 0x198 0x04 0x05 0x07 0x198 0x04 0x06 0x07 0x198 0x04 0x07 0x07 0x198>; + phandle = <0x319>; + }; + }; + + ddrphych2 { + + ddrphych2-pins { + rockchip,pins = <0x04 0x08 0x07 0x198 0x04 0x09 0x07 0x198 0x04 0x0a 0x07 0x198 0x04 0x0b 0x07 0x198>; + phandle = <0x31a>; + }; + }; + + ddrphych3 { + + ddrphych3-pins { + rockchip,pins = <0x04 0x0c 0x07 0x198 0x04 0x0d 0x07 0x198 0x04 0x0e 0x07 0x198 0x04 0x0f 0x07 0x198>; + phandle = <0x31b>; + }; + }; + + dp0 { + + dp0m0-pins { + rockchip,pins = <0x04 0x0c 0x05 0x198>; + phandle = <0x31c>; + }; + + dp0m1-pins { + rockchip,pins = <0x00 0x14 0x0a 0x198>; + phandle = <0x31d>; + }; + + dp0m2-pins { + rockchip,pins = <0x01 0x00 0x05 0x198>; + phandle = <0x31e>; + }; + }; + + dp1 { + + dp1m0-pins { + rockchip,pins = <0x03 0x1d 0x05 0x198>; + phandle = <0x31f>; + }; + + dp1m1-pins { + rockchip,pins = <0x00 0x15 0x0a 0x198>; + phandle = <0x320>; + }; + + dp1m2-pins { + rockchip,pins = <0x01 0x01 0x05 0x198>; + phandle = <0x321>; + }; + }; + + emmc { + + emmc-rstnout { + rockchip,pins = <0x02 0x03 0x01 0x198>; + phandle = <0x322>; + }; + + emmc-bus8 { + rockchip,pins = <0x02 0x18 0x01 0x199 0x02 0x19 0x01 0x199 0x02 0x1a 0x01 0x199 0x02 0x1b 0x01 0x199 0x02 0x1c 0x01 0x199 0x02 0x1d 0x01 0x199 0x02 0x1e 0x01 0x199 0x02 0x1f 0x01 0x199>; + phandle = <0x323>; + }; + + emmc-clk { + rockchip,pins = <0x02 0x01 0x01 0x199>; + phandle = <0x324>; + }; + + emmc-cmd { + rockchip,pins = <0x02 0x00 0x01 0x199>; + phandle = <0x325>; + }; + + emmc-data-strobe { + rockchip,pins = <0x02 0x02 0x01 0x198>; + phandle = <0x326>; + }; + }; + + eth1 { + + eth1-pins { + rockchip,pins = <0x03 0x06 0x01 0x198>; + phandle = <0x327>; + }; + }; + + fspi { + + fspim0-pins { + rockchip,pins = <0x02 0x00 0x02 0x199 0x02 0x1e 0x02 0x199 0x02 0x18 0x02 0x199 0x02 0x19 0x02 0x199 0x02 0x1a 0x02 0x199 0x02 0x1b 0x02 0x199>; + phandle = <0x328>; + }; + + fspim0-cs1 { + rockchip,pins = <0x02 0x1f 0x02 0x199>; + phandle = <0x329>; + }; + + fspim2-pins { + rockchip,pins = <0x03 0x05 0x05 0x199 0x03 0x14 0x02 0x199 0x03 0x00 0x05 0x199 0x03 0x01 0x05 0x199 0x03 0x02 0x05 0x199 0x03 0x03 0x05 0x199>; + phandle = <0x32a>; + }; + + fspim2-cs1 { + rockchip,pins = <0x03 0x15 0x02 0x199>; + phandle = <0x32b>; + }; + + fspim1-pins { + rockchip,pins = <0x02 0x0b 0x03 0x199 0x02 0x0c 0x03 0x199 0x02 0x06 0x03 0x199 0x02 0x07 0x03 0x199 0x02 0x08 0x03 0x199 0x02 0x09 0x03 0x199>; + phandle = <0x32c>; + }; + + fspim1-cs1 { + rockchip,pins = <0x02 0x0d 0x03 0x199>; + phandle = <0x32d>; + }; + }; + + gmac1 { + + gmac1-miim { + rockchip,pins = <0x03 0x12 0x01 0x198 0x03 0x13 0x01 0x198>; + phandle = <0x10e>; + }; + + gmac1-clkinout { + rockchip,pins = <0x03 0x0e 0x01 0x198>; + phandle = <0x32e>; + }; + + gmac1-rx-bus2 { + rockchip,pins = <0x03 0x07 0x01 0x198 0x03 0x08 0x01 0x198 0x03 0x09 0x01 0x198>; + phandle = <0x110>; + }; + + gmac1-tx-bus2 { + rockchip,pins = <0x03 0x0b 0x01 0x19a 0x03 0x0c 0x01 0x19a 0x03 0x0d 0x01 0x198>; + phandle = <0x10f>; + }; + + gmac1-rgmii-clk { + rockchip,pins = <0x03 0x05 0x01 0x198 0x03 0x04 0x01 0x198>; + phandle = <0x111>; + }; + + gmac1-rgmii-bus { + rockchip,pins = <0x03 0x02 0x01 0x198 0x03 0x03 0x01 0x198 0x03 0x00 0x01 0x19a 0x03 0x01 0x01 0x19a>; + phandle = <0x112>; + }; + + gmac1-ppsclk { + rockchip,pins = <0x03 0x11 0x01 0x198>; + phandle = <0x32f>; + }; + + gmac1-ppstrig { + rockchip,pins = <0x03 0x10 0x01 0x198>; + phandle = <0x330>; + }; + + gmac1-ptp-ref-clk { + rockchip,pins = <0x03 0x0f 0x01 0x198>; + phandle = <0x331>; + }; + + gmac1-txer { + rockchip,pins = <0x03 0x0a 0x01 0x198>; + phandle = <0x332>; + }; + }; + + gpu { + + gpu-pins { + rockchip,pins = <0x00 0x15 0x02 0x198>; + phandle = <0x333>; + }; + }; + + hdmi { + + hdmim0-rx-cec { + rockchip,pins = <0x04 0x0d 0x05 0x198>; + phandle = <0x334>; + }; + + hdmim0-rx-hpdin { + rockchip,pins = <0x04 0x0e 0x05 0x198>; + phandle = <0x335>; + }; + + hdmim0-rx-scl { + rockchip,pins = <0x00 0x1a 0x0b 0x198>; + phandle = <0x336>; + }; + + hdmim0-rx-sda { + rockchip,pins = <0x00 0x19 0x0b 0x198>; + phandle = <0x337>; + }; + + hdmim0-tx0-cec { + rockchip,pins = <0x04 0x11 0x05 0x198>; + phandle = <0xf9>; + }; + + hdmim0-tx0-hpd { + rockchip,pins = <0x01 0x05 0x05 0x198>; + phandle = <0xfa>; + }; + + hdmim0-tx0-scl { + rockchip,pins = <0x04 0x0f 0x05 0x19b>; + phandle = <0xfb>; + }; + + hdmim0-tx0-sda { + rockchip,pins = <0x04 0x10 0x05 0x19c>; + phandle = <0xfc>; + }; + + hdmim0-tx1-hpd { + rockchip,pins = <0x01 0x06 0x05 0x198>; + phandle = <0x1a9>; + }; + + hdmim1-rx { + rockchip,pins = <0x03 0x19 0x05 0x198 0x03 0x1a 0x05 0x19d 0x03 0x1b 0x05 0x19d 0x03 0x1c 0x05 0x198>; + phandle = <0x1b3>; + }; + + hdmim1-rx-cec { + rockchip,pins = <0x03 0x19 0x05 0x198>; + phandle = <0x338>; + }; + + hdmim1-rx-hpdin { + rockchip,pins = <0x03 0x1c 0x05 0x198>; + phandle = <0x339>; + }; + + hdmim1-rx-scl { + rockchip,pins = <0x03 0x1a 0x05 0x19d>; + phandle = <0x33a>; + }; + + hdmim1-rx-sda { + rockchip,pins = <0x03 0x1b 0x05 0x19d>; + phandle = <0x33b>; + }; + + hdmim1-tx0-cec { + rockchip,pins = <0x00 0x19 0x0d 0x198>; + phandle = <0x33c>; + }; + + hdmim1-tx0-hpd { + rockchip,pins = <0x03 0x1c 0x03 0x198>; + phandle = <0x33d>; + }; + + hdmim1-tx0-scl { + rockchip,pins = <0x00 0x1d 0x0b 0x19b>; + phandle = <0x33e>; + }; + + hdmim1-tx0-sda { + rockchip,pins = <0x00 0x1c 0x0b 0x19c>; + phandle = <0x33f>; + }; + + hdmim1-tx1-cec { + rockchip,pins = <0x00 0x1a 0x0d 0x198>; + phandle = <0x340>; + }; + + hdmim1-tx1-hpd { + rockchip,pins = <0x03 0x0f 0x05 0x198>; + phandle = <0x341>; + }; + + hdmim1-tx1-scl { + rockchip,pins = <0x03 0x16 0x05 0x19b>; + phandle = <0x1aa>; + }; + + hdmim1-tx1-sda { + rockchip,pins = <0x03 0x15 0x05 0x19c>; + phandle = <0x1ab>; + }; + + hdmim2-rx-cec { + rockchip,pins = <0x01 0x0f 0x05 0x198>; + phandle = <0x342>; + }; + + hdmim2-rx-hpdin { + rockchip,pins = <0x01 0x0e 0x05 0x198>; + phandle = <0x343>; + }; + + hdmim2-rx-scl { + rockchip,pins = <0x01 0x1e 0x05 0x198>; + phandle = <0x344>; + }; + + hdmim2-rx-sda { + rockchip,pins = <0x01 0x1f 0x05 0x198>; + phandle = <0x345>; + }; + + hdmim2-tx0-scl { + rockchip,pins = <0x03 0x17 0x05 0x19b>; + phandle = <0x346>; + }; + + hdmim2-tx0-sda { + rockchip,pins = <0x03 0x18 0x05 0x19c>; + phandle = <0x347>; + }; + + hdmim2-tx1-cec { + rockchip,pins = <0x03 0x14 0x05 0x198>; + phandle = <0x1a8>; + }; + + hdmim2-tx1-scl { + rockchip,pins = <0x01 0x04 0x05 0x19b>; + phandle = <0x348>; + }; + + hdmim2-tx1-sda { + rockchip,pins = <0x01 0x03 0x05 0x19c>; + phandle = <0x349>; + }; + + hdmi-debug0 { + rockchip,pins = <0x01 0x07 0x07 0x198>; + phandle = <0x34a>; + }; + + hdmi-debug1 { + rockchip,pins = <0x01 0x08 0x07 0x198>; + phandle = <0x34b>; + }; + + hdmi-debug2 { + rockchip,pins = <0x01 0x09 0x07 0x198>; + phandle = <0x34c>; + }; + + hdmi-debug3 { + rockchip,pins = <0x01 0x0a 0x07 0x198>; + phandle = <0x34d>; + }; + + hdmi-debug4 { + rockchip,pins = <0x01 0x0b 0x07 0x198>; + phandle = <0x34e>; + }; + + hdmi-debug5 { + rockchip,pins = <0x01 0x0c 0x07 0x198>; + phandle = <0x34f>; + }; + + hdmi-debug6 { + rockchip,pins = <0x01 0x00 0x07 0x198>; + phandle = <0x350>; + }; + + hdmim0-tx1-cec { + rockchip,pins = <0x02 0x14 0x04 0x198>; + phandle = <0x351>; + }; + + hdmim0-tx1-scl { + rockchip,pins = <0x02 0x0d 0x04 0x198>; + phandle = <0x352>; + }; + + hdmim0-tx1-sda { + rockchip,pins = <0x02 0x0c 0x04 0x198>; + phandle = <0x353>; + }; + }; + + i2c0 { + + i2c0m0-xfer { + rockchip,pins = <0x00 0x0b 0x02 0x19d 0x00 0x06 0x02 0x19d>; + phandle = <0x354>; + }; + + i2c0m2-xfer { + rockchip,pins = <0x00 0x19 0x03 0x19d 0x00 0x1a 0x03 0x19d>; + phandle = <0x77>; + }; + + i2c0m1-xfer { + rockchip,pins = <0x04 0x15 0x09 0x19d 0x04 0x16 0x09 0x19d>; + phandle = <0x355>; + }; + }; + + i2c1 { + + i2c1m0-xfer { + rockchip,pins = <0x00 0x0d 0x09 0x19d 0x00 0x0e 0x09 0x19d>; + phandle = <0x356>; + }; + + i2c1m1-xfer { + rockchip,pins = <0x00 0x08 0x02 0x19d 0x00 0x09 0x02 0x19d>; + phandle = <0x357>; + }; + + i2c1m2-xfer { + rockchip,pins = <0x00 0x1c 0x09 0x19d 0x00 0x1d 0x09 0x19d>; + phandle = <0x148>; + }; + + i2c1m3-xfer { + rockchip,pins = <0x02 0x1c 0x09 0x19d 0x02 0x1d 0x09 0x19d>; + phandle = <0x358>; + }; + + i2c1m4-xfer { + rockchip,pins = <0x01 0x1a 0x09 0x19d 0x01 0x1b 0x09 0x19d>; + phandle = <0x359>; + }; + }; + + i2c2 { + + i2c2m0-xfer { + rockchip,pins = <0x00 0x0f 0x09 0x19d 0x00 0x10 0x09 0x19d>; + phandle = <0x149>; + }; + + i2c2m2-xfer { + rockchip,pins = <0x02 0x03 0x09 0x19d 0x02 0x02 0x09 0x19d>; + phandle = <0x35a>; + }; + + i2c2m3-xfer { + rockchip,pins = <0x01 0x15 0x09 0x19d 0x01 0x14 0x09 0x19d>; + phandle = <0x35b>; + }; + + i2c2m4-xfer { + rockchip,pins = <0x01 0x01 0x09 0x19d 0x01 0x00 0x09 0x19d>; + phandle = <0x35c>; + }; + + i2c2m1-xfer { + rockchip,pins = <0x02 0x11 0x09 0x19d 0x02 0x10 0x09 0x19d>; + phandle = <0x35d>; + }; + }; + + i2c3 { + + i2c3m0-xfer { + rockchip,pins = <0x01 0x11 0x09 0x19d 0x01 0x10 0x09 0x19d>; + phandle = <0x35e>; + }; + + i2c3m1-xfer { + rockchip,pins = <0x03 0x0f 0x09 0x19d 0x03 0x10 0x09 0x19d>; + phandle = <0x35f>; + }; + + i2c3m2-xfer { + rockchip,pins = <0x04 0x04 0x09 0x19d 0x04 0x05 0x09 0x19d>; + phandle = <0x14a>; + }; + + i2c3m4-xfer { + rockchip,pins = <0x04 0x18 0x09 0x19d 0x04 0x19 0x09 0x19d>; + phandle = <0x360>; + }; + + i2c3m3-xfer { + rockchip,pins = <0x02 0x0a 0x09 0x19d 0x02 0x0b 0x09 0x19d>; + phandle = <0x361>; + }; + }; + + i2c4 { + + i2c4m0-xfer { + rockchip,pins = <0x03 0x06 0x09 0x19d 0x03 0x05 0x09 0x19d>; + phandle = <0x362>; + }; + + i2c4m2-xfer { + rockchip,pins = <0x00 0x15 0x09 0x19d 0x00 0x14 0x09 0x19d>; + phandle = <0x363>; + }; + + i2c4m3-xfer { + rockchip,pins = <0x01 0x03 0x09 0x19d 0x01 0x02 0x09 0x19d>; + phandle = <0x364>; + }; + + i2c4m4-xfer { + rockchip,pins = <0x01 0x17 0x09 0x19d 0x01 0x16 0x09 0x19d>; + phandle = <0x365>; + }; + + i2c4m1-xfer { + rockchip,pins = <0x02 0x0d 0x09 0x19d 0x02 0x0c 0x09 0x19d>; + phandle = <0x14b>; + }; + }; + + i2c5 { + + i2c5m0-xfer { + rockchip,pins = <0x03 0x17 0x09 0x19d 0x03 0x18 0x09 0x19d>; + phandle = <0x14d>; + }; + + i2c5m1-xfer { + rockchip,pins = <0x04 0x0e 0x09 0x19d 0x04 0x0f 0x09 0x19d>; + phandle = <0x366>; + }; + + i2c5m2-xfer { + rockchip,pins = <0x04 0x06 0x09 0x19d 0x04 0x07 0x09 0x19d>; + phandle = <0x367>; + }; + + i2c5m3-xfer { + rockchip,pins = <0x01 0x0e 0x09 0x19d 0x01 0x0f 0x09 0x19d>; + phandle = <0x368>; + }; + + i2c5m4-xfer { + rockchip,pins = <0x02 0x0e 0x09 0x19d 0x02 0x0f 0x09 0x19d>; + phandle = <0x369>; + }; + }; + + i2c6 { + + i2c6m0-xfer { + rockchip,pins = <0x00 0x18 0x09 0x19d 0x00 0x17 0x09 0x19d>; + phandle = <0x178>; + }; + + i2c6m1-xfer { + rockchip,pins = <0x01 0x13 0x09 0x19d 0x01 0x12 0x09 0x19d>; + phandle = <0x36a>; + }; + + i2c6m3-xfer { + rockchip,pins = <0x04 0x09 0x09 0x19d 0x04 0x08 0x09 0x19d>; + phandle = <0x36b>; + }; + + i2c6m4-xfer { + rockchip,pins = <0x03 0x01 0x09 0x19d 0x03 0x00 0x09 0x19d>; + phandle = <0x36c>; + }; + + i2c6m2-xfer { + rockchip,pins = <0x02 0x13 0x09 0x19d 0x02 0x12 0x09 0x19d>; + phandle = <0x36d>; + }; + }; + + i2c7 { + + i2c7m0-xfer { + rockchip,pins = <0x01 0x18 0x09 0x19d 0x01 0x19 0x09 0x19d>; + phandle = <0x185>; + }; + + i2c7m2-xfer { + rockchip,pins = <0x03 0x1a 0x09 0x19d 0x03 0x1b 0x09 0x19d>; + phandle = <0x36e>; + }; + + i2c7m3-xfer { + rockchip,pins = <0x04 0x0a 0x09 0x19d 0x04 0x0b 0x09 0x19d>; + phandle = <0x36f>; + }; + + i2c7m1-xfer { + rockchip,pins = <0x04 0x13 0x09 0x19d 0x04 0x14 0x09 0x19d>; + phandle = <0x370>; + }; + }; + + i2c8 { + + i2c8m0-xfer { + rockchip,pins = <0x04 0x1a 0x09 0x19d 0x04 0x1b 0x09 0x19d>; + phandle = <0x186>; + }; + + i2c8m2-xfer { + rockchip,pins = <0x01 0x1e 0x09 0x19d 0x01 0x1f 0x09 0x19d>; + phandle = <0x371>; + }; + + i2c8m3-xfer { + rockchip,pins = <0x04 0x10 0x09 0x19d 0x04 0x11 0x09 0x19d>; + phandle = <0x372>; + }; + + i2c8m4-xfer { + rockchip,pins = <0x03 0x12 0x09 0x19d 0x03 0x13 0x09 0x19d>; + phandle = <0x373>; + }; + + i2c8m1-xfer { + rockchip,pins = <0x02 0x08 0x09 0x19d 0x02 0x09 0x09 0x19d>; + phandle = <0x374>; + }; + }; + + i2s0 { + + i2s0-idle { + rockchip,pins = <0x01 0x15 0x00 0x198 0x01 0x13 0x00 0x198>; + phandle = <0x11f>; + }; + + i2s0-lrck { + rockchip,pins = <0x01 0x15 0x01 0x19d>; + phandle = <0x11b>; + }; + + i2s0-mclk { + rockchip,pins = <0x01 0x12 0x01 0x19d>; + phandle = <0x17a>; + }; + + i2s0-sclk { + rockchip,pins = <0x01 0x13 0x01 0x19d>; + phandle = <0x11c>; + }; + + i2s0-sdi0 { + rockchip,pins = <0x01 0x1c 0x02 0x198>; + phandle = <0x11d>; + }; + + i2s0-sdi1 { + rockchip,pins = <0x01 0x1b 0x02 0x198>; + phandle = <0x375>; + }; + + i2s0-sdi2 { + rockchip,pins = <0x01 0x1a 0x02 0x198>; + phandle = <0x376>; + }; + + i2s0-sdi3 { + rockchip,pins = <0x01 0x19 0x02 0x198>; + phandle = <0x377>; + }; + + i2s0-sdo0 { + rockchip,pins = <0x01 0x17 0x01 0x198>; + phandle = <0x11e>; + }; + + i2s0-sdo1 { + rockchip,pins = <0x01 0x18 0x01 0x198>; + phandle = <0x378>; + }; + + i2s0-sdo2 { + rockchip,pins = <0x01 0x19 0x01 0x198>; + phandle = <0x379>; + }; + + i2s0-sdo3 { + rockchip,pins = <0x01 0x1a 0x01 0x198>; + phandle = <0x37a>; + }; + }; + + i2s1 { + + i2s1m0-lrck { + rockchip,pins = <0x04 0x02 0x03 0x19d>; + phandle = <0x120>; + }; + + i2s1m0-mclk { + rockchip,pins = <0x04 0x00 0x03 0x19d>; + phandle = <0x37b>; + }; + + i2s1m0-sclk { + rockchip,pins = <0x04 0x01 0x03 0x19d>; + phandle = <0x121>; + }; + + i2s1m0-sdi0 { + rockchip,pins = <0x04 0x05 0x03 0x198>; + phandle = <0x122>; + }; + + i2s1m0-sdi1 { + rockchip,pins = <0x04 0x06 0x03 0x198>; + phandle = <0x123>; + }; + + i2s1m0-sdi2 { + rockchip,pins = <0x04 0x07 0x03 0x198>; + phandle = <0x124>; + }; + + i2s1m0-sdi3 { + rockchip,pins = <0x04 0x08 0x03 0x198>; + phandle = <0x125>; + }; + + i2s1m0-sdo0 { + rockchip,pins = <0x04 0x09 0x03 0x198>; + phandle = <0x126>; + }; + + i2s1m0-sdo1 { + rockchip,pins = <0x04 0x0a 0x03 0x198>; + phandle = <0x127>; + }; + + i2s1m0-sdo2 { + rockchip,pins = <0x04 0x0b 0x03 0x198>; + phandle = <0x128>; + }; + + i2s1m0-sdo3 { + rockchip,pins = <0x04 0x0c 0x03 0x198>; + phandle = <0x129>; + }; + + i2s1m1-lrck { + rockchip,pins = <0x00 0x0f 0x01 0x19d>; + phandle = <0x37c>; + }; + + i2s1m1-mclk { + rockchip,pins = <0x00 0x0d 0x01 0x19d>; + phandle = <0x37d>; + }; + + i2s1m1-sclk { + rockchip,pins = <0x00 0x0e 0x01 0x19d>; + phandle = <0x37e>; + }; + + i2s1m1-sdi0 { + rockchip,pins = <0x00 0x15 0x01 0x198>; + phandle = <0x37f>; + }; + + i2s1m1-sdi1 { + rockchip,pins = <0x00 0x16 0x01 0x198>; + phandle = <0x380>; + }; + + i2s1m1-sdi2 { + rockchip,pins = <0x00 0x17 0x01 0x198>; + phandle = <0x381>; + }; + + i2s1m1-sdi3 { + rockchip,pins = <0x00 0x18 0x01 0x198>; + phandle = <0x382>; + }; + + i2s1m1-sdo0 { + rockchip,pins = <0x00 0x19 0x01 0x198>; + phandle = <0x383>; + }; + + i2s1m1-sdo1 { + rockchip,pins = <0x00 0x1a 0x01 0x198>; + phandle = <0x384>; + }; + + i2s1m1-sdo2 { + rockchip,pins = <0x00 0x1c 0x01 0x198>; + phandle = <0x385>; + }; + + i2s1m1-sdo3 { + rockchip,pins = <0x00 0x1d 0x01 0x198>; + phandle = <0x386>; + }; + }; + + i2s2 { + + i2s2m1-idle { + rockchip,pins = <0x03 0x0e 0x00 0x198 0x03 0x0d 0x00 0x198>; + phandle = <0x12c>; + }; + + i2s2m1-lrck { + rockchip,pins = <0x03 0x0e 0x03 0x19d>; + phandle = <0x12d>; + }; + + i2s2m1-mclk { + rockchip,pins = <0x03 0x0c 0x03 0x19d>; + phandle = <0x387>; + }; + + i2s2m1-sclk { + rockchip,pins = <0x03 0x0d 0x03 0x19d>; + phandle = <0x12e>; + }; + + i2s2m1-sdi { + rockchip,pins = <0x03 0x0a 0x03 0x198>; + phandle = <0x12a>; + }; + + i2s2m1-sdo { + rockchip,pins = <0x03 0x0b 0x03 0x198>; + phandle = <0x12b>; + }; + + i2s2m0-idle { + rockchip,pins = <0x02 0x10 0x00 0x198 0x02 0x0f 0x00 0x198>; + phandle = <0x388>; + }; + + i2s2m0-lrck { + rockchip,pins = <0x02 0x10 0x02 0x19d>; + phandle = <0x389>; + }; + + i2s2m0-mclk { + rockchip,pins = <0x02 0x0e 0x02 0x19d>; + phandle = <0x38a>; + }; + + i2s2m0-sclk { + rockchip,pins = <0x02 0x0f 0x02 0x19d>; + phandle = <0x38b>; + }; + + i2s2m0-sdi { + rockchip,pins = <0x02 0x13 0x02 0x198>; + phandle = <0x38c>; + }; + + i2s2m0-sdo { + rockchip,pins = <0x04 0x13 0x02 0x198>; + phandle = <0x38d>; + }; + }; + + i2s3 { + + i2s3-idle { + rockchip,pins = <0x03 0x02 0x00 0x198 0x03 0x01 0x00 0x198>; + phandle = <0x131>; + }; + + i2s3-lrck { + rockchip,pins = <0x03 0x02 0x03 0x19d>; + phandle = <0x132>; + }; + + i2s3-mclk { + rockchip,pins = <0x03 0x00 0x03 0x19d>; + phandle = <0x38e>; + }; + + i2s3-sclk { + rockchip,pins = <0x03 0x01 0x03 0x19d>; + phandle = <0x133>; + }; + + i2s3-sdi { + rockchip,pins = <0x03 0x04 0x03 0x198>; + phandle = <0x12f>; + }; + + i2s3-sdo { + rockchip,pins = <0x03 0x03 0x03 0x198>; + phandle = <0x130>; + }; + }; + + jtag { + + jtagm0-pins { + rockchip,pins = <0x04 0x1a 0x05 0x198 0x04 0x1b 0x05 0x198>; + phandle = <0x38f>; + }; + + jtagm1-pins { + rockchip,pins = <0x04 0x18 0x05 0x198 0x04 0x19 0x05 0x198>; + phandle = <0x390>; + }; + + jtagm2-pins { + rockchip,pins = <0x00 0x0d 0x02 0x198 0x00 0x0e 0x02 0x198>; + phandle = <0x391>; + }; + }; + + litcpu { + + litcpu-pins { + rockchip,pins = <0x00 0x1b 0x01 0x198>; + phandle = <0x392>; + }; + }; + + mcu { + + mcum0-pins { + rockchip,pins = <0x04 0x1c 0x05 0x198 0x04 0x1d 0x05 0x198>; + phandle = <0x393>; + }; + + mcum1-pins { + rockchip,pins = <0x03 0x1c 0x06 0x198 0x03 0x1d 0x06 0x198>; + phandle = <0x394>; + }; + }; + + mipi { + + mipim0-camera0-clk { + rockchip,pins = <0x04 0x09 0x01 0x198>; + phandle = <0x395>; + }; + + mipim0-camera1-clk { + rockchip,pins = <0x01 0x0e 0x02 0x198>; + phandle = <0x396>; + }; + + mipim0-camera2-clk { + rockchip,pins = <0x01 0x0f 0x02 0x198>; + phandle = <0x397>; + }; + + mipim0-camera3-clk { + rockchip,pins = <0x01 0x1e 0x02 0x198>; + phandle = <0x398>; + }; + + mipim0-camera4-clk { + rockchip,pins = <0x01 0x1f 0x02 0x198>; + phandle = <0x399>; + }; + + mipim1-camera0-clk { + rockchip,pins = <0x03 0x05 0x04 0x198>; + phandle = <0x39a>; + }; + + mipim1-camera1-clk { + rockchip,pins = <0x03 0x06 0x04 0x198>; + phandle = <0x180>; + }; + + mipim1-camera2-clk { + rockchip,pins = <0x03 0x07 0x04 0x198>; + phandle = <0x39b>; + }; + + mipim1-camera3-clk { + rockchip,pins = <0x03 0x08 0x04 0x198>; + phandle = <0x39c>; + }; + + mipim1-camera4-clk { + rockchip,pins = <0x03 0x09 0x04 0x198>; + phandle = <0x39d>; + }; + + mipi-te0 { + rockchip,pins = <0x03 0x12 0x02 0x198>; + phandle = <0x39e>; + }; + + mipi-te1 { + rockchip,pins = <0x03 0x13 0x02 0x198>; + phandle = <0x39f>; + }; + }; + + npu { + + npu-pins { + rockchip,pins = <0x00 0x16 0x02 0x198>; + phandle = <0x3a0>; + }; + }; + + pcie20x1 { + + pcie20x1m0-pins { + rockchip,pins = <0x03 0x17 0x04 0x198 0x03 0x19 0x04 0x198 0x03 0x18 0x04 0x198>; + phandle = <0x3a1>; + }; + + pcie20x1m1-pins { + rockchip,pins = <0x04 0x0f 0x04 0x198 0x04 0x11 0x04 0x198 0x04 0x10 0x04 0x198>; + phandle = <0x3a2>; + }; + + pcie20x1-2-button-rstn { + rockchip,pins = <0x04 0x0b 0x04 0x198>; + phandle = <0x3a3>; + }; + }; + + pcie30phy { + + pcie30phy-pins { + rockchip,pins = <0x01 0x14 0x04 0x198 0x01 0x19 0x04 0x198>; + phandle = <0x3a4>; + }; + }; + + pcie30x1 { + + pcie30x1m0-pins { + rockchip,pins = <0x00 0x10 0x0c 0x198 0x00 0x15 0x0c 0x198 0x00 0x14 0x0c 0x198 0x00 0x0d 0x0c 0x198 0x00 0x0f 0x0c 0x198 0x00 0x0e 0x0c 0x198>; + phandle = <0x3a5>; + }; + + pcie30x1m1-pins { + rockchip,pins = <0x04 0x03 0x04 0x198 0x04 0x05 0x04 0x198 0x04 0x04 0x04 0x198 0x04 0x00 0x04 0x198 0x04 0x02 0x04 0x198 0x04 0x01 0x04 0x198>; + phandle = <0x3a6>; + }; + + pcie30x1m2-pins { + rockchip,pins = <0x01 0x0d 0x04 0x198 0x01 0x0c 0x04 0x198 0x01 0x0b 0x04 0x198 0x01 0x00 0x04 0x198 0x01 0x07 0x04 0x198 0x01 0x01 0x04 0x198>; + phandle = <0x3a7>; + }; + + pcie30x1-0-button-rstn { + rockchip,pins = <0x04 0x09 0x04 0x198>; + phandle = <0x3a8>; + }; + + pcie30x1-1-button-rstn { + rockchip,pins = <0x04 0x0a 0x04 0x198>; + phandle = <0x3a9>; + }; + }; + + pcie30x2 { + + pcie30x2m0-pins { + rockchip,pins = <0x00 0x19 0x0c 0x198 0x00 0x1c 0x0c 0x198 0x00 0x1a 0x0c 0x198>; + phandle = <0x3aa>; + }; + + pcie30x2m1-pins { + rockchip,pins = <0x04 0x06 0x04 0x198 0x04 0x08 0x04 0x198 0x04 0x07 0x04 0x198>; + phandle = <0x3ab>; + }; + + pcie30x2m2-pins { + rockchip,pins = <0x03 0x1a 0x04 0x198 0x03 0x1c 0x04 0x198 0x03 0x1b 0x04 0x198>; + phandle = <0x3ac>; + }; + + pcie30x2m3-pins { + rockchip,pins = <0x01 0x1f 0x04 0x198 0x01 0x0f 0x04 0x198 0x01 0x0e 0x04 0x198>; + phandle = <0x3ad>; + }; + + pcie30x2-button-rstn { + rockchip,pins = <0x03 0x11 0x04 0x198>; + phandle = <0x3ae>; + }; + }; + + pcie30x4 { + + pcie30x4m0-pins { + rockchip,pins = <0x00 0x16 0x0c 0x198 0x00 0x18 0x0c 0x198 0x00 0x17 0x0c 0x198>; + phandle = <0x3af>; + }; + + pcie30x4m1-pins { + rockchip,pins = <0x04 0x0c 0x04 0x198 0x04 0x0e 0x04 0x198 0x04 0x0d 0x04 0x198>; + phandle = <0x3b0>; + }; + + pcie30x4m2-pins { + rockchip,pins = <0x03 0x14 0x04 0x198 0x03 0x16 0x04 0x198 0x03 0x15 0x04 0x198>; + phandle = <0x3b1>; + }; + + pcie30x4m3-pins { + rockchip,pins = <0x01 0x08 0x04 0x198 0x01 0x0a 0x04 0x198 0x01 0x09 0x04 0x198>; + phandle = <0x3b2>; + }; + + pcie30x4-button-rstn { + rockchip,pins = <0x03 0x1d 0x04 0x198>; + phandle = <0x3b3>; + }; + }; + + pdm0 { + + pdm0m0-clk { + rockchip,pins = <0x01 0x16 0x03 0x198>; + phandle = <0x139>; + }; + + pdm0m0-clk1 { + rockchip,pins = <0x01 0x14 0x03 0x198>; + phandle = <0x13a>; + }; + + pdm0m0-idle { + rockchip,pins = <0x01 0x16 0x00 0x198 0x01 0x14 0x00 0x198>; + phandle = <0x138>; + }; + + pdm0m0-sdi0 { + rockchip,pins = <0x01 0x1d 0x03 0x198>; + phandle = <0x134>; + }; + + pdm0m0-sdi1 { + rockchip,pins = <0x01 0x19 0x03 0x198>; + phandle = <0x135>; + }; + + pdm0m0-sdi2 { + rockchip,pins = <0x01 0x1a 0x03 0x198>; + phandle = <0x136>; + }; + + pdm0m0-sdi3 { + rockchip,pins = <0x01 0x1b 0x03 0x198>; + phandle = <0x137>; + }; + + pdm0m1-clk { + rockchip,pins = <0x00 0x10 0x02 0x198>; + phandle = <0x3b4>; + }; + + pdm0m1-clk1 { + rockchip,pins = <0x00 0x14 0x02 0x198>; + phandle = <0x3b5>; + }; + + pdm0m1-idle { + rockchip,pins = <0x00 0x10 0x00 0x198 0x00 0x14 0x00 0x198>; + phandle = <0x3b6>; + }; + + pdm0m1-sdi0 { + rockchip,pins = <0x00 0x17 0x02 0x198>; + phandle = <0x3b7>; + }; + + pdm0m1-sdi1 { + rockchip,pins = <0x00 0x18 0x02 0x198>; + phandle = <0x3b8>; + }; + + pdm0m1-sdi2 { + rockchip,pins = <0x00 0x1c 0x02 0x198>; + phandle = <0x3b9>; + }; + + pdm0m1-sdi3 { + rockchip,pins = <0x00 0x1e 0x02 0x198>; + phandle = <0x3ba>; + }; + }; + + pdm1 { + + pdm1m0-clk { + rockchip,pins = <0x04 0x1d 0x02 0x198>; + phandle = <0x140>; + }; + + pdm1m0-clk1 { + rockchip,pins = <0x04 0x1c 0x02 0x198>; + phandle = <0x141>; + }; + + pdm1m0-idle { + rockchip,pins = <0x04 0x1d 0x00 0x198 0x04 0x1c 0x00 0x198>; + phandle = <0x13f>; + }; + + pdm1m0-sdi0 { + rockchip,pins = <0x04 0x1b 0x02 0x198>; + phandle = <0x13b>; + }; + + pdm1m0-sdi1 { + rockchip,pins = <0x04 0x1a 0x02 0x198>; + phandle = <0x13c>; + }; + + pdm1m0-sdi2 { + rockchip,pins = <0x04 0x19 0x02 0x198>; + phandle = <0x13d>; + }; + + pdm1m0-sdi3 { + rockchip,pins = <0x04 0x18 0x02 0x198>; + phandle = <0x13e>; + }; + + pdm1m1-clk { + rockchip,pins = <0x01 0x0c 0x02 0x198>; + phandle = <0x3bb>; + }; + + pdm1m1-clk1 { + rockchip,pins = <0x01 0x0b 0x02 0x198>; + phandle = <0x3bc>; + }; + + pdm1m1-idle { + rockchip,pins = <0x01 0x0c 0x00 0x198 0x01 0x0b 0x00 0x198>; + phandle = <0x3bd>; + }; + + pdm1m1-sdi0 { + rockchip,pins = <0x01 0x07 0x02 0x198>; + phandle = <0x3be>; + }; + + pdm1m1-sdi1 { + rockchip,pins = <0x01 0x08 0x02 0x198>; + phandle = <0x3bf>; + }; + + pdm1m1-sdi2 { + rockchip,pins = <0x01 0x09 0x02 0x198>; + phandle = <0x3c0>; + }; + + pdm1m1-sdi3 { + rockchip,pins = <0x01 0x0a 0x02 0x198>; + phandle = <0x3c1>; + }; + }; + + pmic { + + pmic-pins { + rockchip,pins = <0x00 0x07 0x00 0x19e 0x00 0x02 0x01 0x198 0x00 0x03 0x01 0x198 0x00 0x11 0x01 0x198 0x00 0x12 0x01 0x198 0x00 0x13 0x01 0x198 0x00 0x1e 0x01 0x198>; + phandle = <0x156>; + }; + }; + + pmu { + + pmu-pins { + rockchip,pins = <0x00 0x05 0x03 0x198>; + phandle = <0x3c2>; + }; + }; + + pwm0 { + + pwm0m0-pins { + rockchip,pins = <0x00 0x0f 0x03 0x198>; + phandle = <0x7e>; + }; + + pwm0m1-pins { + rockchip,pins = <0x01 0x1a 0x0b 0x198>; + phandle = <0x3c3>; + }; + + pwm0m2-pins { + rockchip,pins = <0x01 0x02 0x0b 0x198>; + phandle = <0x3c4>; + }; + }; + + pwm1 { + + pwm1m0-pins { + rockchip,pins = <0x00 0x10 0x03 0x198>; + phandle = <0x7f>; + }; + + pwm1m1-pins { + rockchip,pins = <0x01 0x1b 0x0b 0x198>; + phandle = <0x3c5>; + }; + + pwm1m2-pins { + rockchip,pins = <0x01 0x03 0x0b 0x198>; + phandle = <0x3c6>; + }; + }; + + pwm2 { + + pwm2m0-pins { + rockchip,pins = <0x00 0x14 0x03 0x198>; + phandle = <0x80>; + }; + + pwm2m1-pins { + rockchip,pins = <0x03 0x09 0x0b 0x198>; + phandle = <0x3c7>; + }; + + pwm2m2-pins { + rockchip,pins = <0x04 0x12 0x0b 0x198>; + phandle = <0x3c8>; + }; + }; + + pwm3 { + + pwm3m0-pins { + rockchip,pins = <0x00 0x1c 0x03 0x198>; + phandle = <0x81>; + }; + + pwm3m1-pins { + rockchip,pins = <0x03 0x0a 0x0b 0x198>; + phandle = <0x3c9>; + }; + + pwm3m2-pins { + rockchip,pins = <0x01 0x12 0x0b 0x198>; + phandle = <0x3ca>; + }; + + pwm3m3-pins { + rockchip,pins = <0x01 0x07 0x0b 0x198>; + phandle = <0x3cb>; + }; + }; + + pwm4 { + + pwm4m0-pins { + rockchip,pins = <0x00 0x15 0x0b 0x198>; + phandle = <0x169>; + }; + + pwm4m1-pins { + rockchip,pins = <0x04 0x13 0x0b 0x198>; + phandle = <0x3cc>; + }; + }; + + pwm5 { + + pwm5m0-pins { + rockchip,pins = <0x00 0x09 0x03 0x198>; + phandle = <0x3cd>; + }; + + pwm5m1-pins { + rockchip,pins = <0x00 0x16 0x0b 0x198>; + phandle = <0x16a>; + }; + + pwm5m2-pins { + rockchip,pins = <0x04 0x14 0x0b 0x198>; + phandle = <0x3ce>; + }; + }; + + pwm6 { + + pwm6m0-pins { + rockchip,pins = <0x00 0x17 0x0b 0x198>; + phandle = <0x16b>; + }; + + pwm6m1-pins { + rockchip,pins = <0x04 0x11 0x0b 0x198>; + phandle = <0x3cf>; + }; + + pwm6m2-pins { + rockchip,pins = <0x04 0x15 0x0b 0x198>; + phandle = <0x3d0>; + }; + }; + + pwm7 { + + pwm7m0-pins { + rockchip,pins = <0x00 0x18 0x0b 0x198>; + phandle = <0x16c>; + }; + + pwm7m1-pins { + rockchip,pins = <0x04 0x1c 0x0b 0x198>; + phandle = <0x3d1>; + }; + + pwm7m2-pins { + rockchip,pins = <0x01 0x13 0x0b 0x198>; + phandle = <0x3d2>; + }; + + pwm7m3-pins { + rockchip,pins = <0x04 0x16 0x0b 0x198>; + phandle = <0x3d3>; + }; + }; + + pwm8 { + + pwm8m0-pins { + rockchip,pins = <0x03 0x07 0x0b 0x198>; + phandle = <0x16d>; + }; + + pwm8m1-pins { + rockchip,pins = <0x04 0x18 0x0b 0x198>; + phandle = <0x3d4>; + }; + + pwm8m2-pins { + rockchip,pins = <0x03 0x18 0x0b 0x198>; + phandle = <0x3d5>; + }; + }; + + pwm9 { + + pwm9m0-pins { + rockchip,pins = <0x03 0x08 0x0b 0x198>; + phandle = <0x16e>; + }; + + pwm9m1-pins { + rockchip,pins = <0x04 0x19 0x0b 0x198>; + phandle = <0x3d6>; + }; + + pwm9m2-pins { + rockchip,pins = <0x03 0x19 0x0b 0x198>; + phandle = <0x3d7>; + }; + }; + + pwm10 { + + pwm10m0-pins { + rockchip,pins = <0x03 0x00 0x0b 0x198>; + phandle = <0x16f>; + }; + + pwm10m1-pins { + rockchip,pins = <0x04 0x1b 0x0b 0x198>; + phandle = <0x3d8>; + }; + + pwm10m2-pins { + rockchip,pins = <0x03 0x1b 0x0b 0x198>; + phandle = <0x3d9>; + }; + }; + + pwm11 { + + pwm11m0-pins { + rockchip,pins = <0x03 0x01 0x0b 0x198>; + phandle = <0x170>; + }; + + pwm11m1-pins { + rockchip,pins = <0x04 0x0c 0x0b 0x198>; + phandle = <0x3da>; + }; + + pwm11m2-pins { + rockchip,pins = <0x01 0x14 0x0b 0x198>; + phandle = <0x3db>; + }; + + pwm11m3-pins { + rockchip,pins = <0x03 0x1d 0x0b 0x198>; + phandle = <0x3dc>; + }; + }; + + pwm12 { + + pwm12m0-pins { + rockchip,pins = <0x03 0x0d 0x0b 0x198>; + phandle = <0x171>; + }; + + pwm12m1-pins { + rockchip,pins = <0x04 0x0d 0x0b 0x198>; + phandle = <0x3dd>; + }; + }; + + pwm13 { + + pwm13m0-pins { + rockchip,pins = <0x03 0x0e 0x0b 0x198>; + phandle = <0x172>; + }; + + pwm13m1-pins { + rockchip,pins = <0x04 0x0e 0x0b 0x198>; + phandle = <0x3de>; + }; + + pwm13m2-pins { + rockchip,pins = <0x01 0x0f 0x0b 0x198>; + phandle = <0x3df>; + }; + }; + + pwm14 { + + pwm14m0-pins { + rockchip,pins = <0x03 0x12 0x0b 0x198>; + phandle = <0x173>; + }; + + pwm14m1-pins { + rockchip,pins = <0x04 0x0a 0x0b 0x198>; + phandle = <0x3e0>; + }; + + pwm14m2-pins { + rockchip,pins = <0x01 0x1e 0x0b 0x198>; + phandle = <0x3e1>; + }; + }; + + pwm15 { + + pwm15m0-pins { + rockchip,pins = <0x03 0x13 0x0b 0x198>; + phandle = <0x174>; + }; + + pwm15m1-pins { + rockchip,pins = <0x04 0x0b 0x0b 0x198>; + phandle = <0x3e2>; + }; + + pwm15m2-pins { + rockchip,pins = <0x01 0x16 0x0b 0x198>; + phandle = <0x3e3>; + }; + + pwm15m3-pins { + rockchip,pins = <0x01 0x1f 0x0b 0x198>; + phandle = <0x3e4>; + }; + }; + + refclk { + + refclk-pins { + rockchip,pins = <0x00 0x00 0x01 0x198>; + phandle = <0x3e5>; + }; + }; + + sata { + + sata-pins { + rockchip,pins = <0x00 0x16 0x0d 0x198 0x00 0x1c 0x0d 0x198 0x00 0x1d 0x0d 0x198>; + phandle = <0x3e6>; + }; + + sata-reset { + rockchip,pins = <0x04 0x11 0x00 0x198>; + phandle = <0x3e7>; + }; + }; + + sata0 { + + sata0m0-pins { + rockchip,pins = <0x04 0x0e 0x06 0x198>; + phandle = <0x3e8>; + }; + + sata0m1-pins { + rockchip,pins = <0x01 0x0b 0x06 0x198>; + phandle = <0x3e9>; + }; + }; + + sata1 { + + sata1m0-pins { + rockchip,pins = <0x04 0x0d 0x06 0x198>; + phandle = <0x3ea>; + }; + + sata1m1-pins { + rockchip,pins = <0x01 0x01 0x06 0x198>; + phandle = <0x3eb>; + }; + }; + + sata2 { + + sata2m0-pins { + rockchip,pins = <0x04 0x09 0x06 0x198>; + phandle = <0x3ec>; + }; + + sata2m1-pins { + rockchip,pins = <0x01 0x0f 0x06 0x198>; + phandle = <0x3ed>; + }; + }; + + sdio { + + sdiom1-pins { + rockchip,pins = <0x03 0x05 0x02 0x198 0x03 0x04 0x02 0x19e 0x03 0x00 0x02 0x19e 0x03 0x01 0x02 0x19e 0x03 0x02 0x02 0x19e 0x03 0x03 0x02 0x19e>; + phandle = <0x119>; + }; + + sdiom0-pins { + rockchip,pins = <0x02 0x0b 0x02 0x198 0x02 0x0a 0x02 0x19e 0x02 0x06 0x02 0x19e 0x02 0x07 0x02 0x19e 0x02 0x08 0x02 0x19e 0x02 0x09 0x02 0x19e>; + phandle = <0x3ee>; + }; + }; + + sdmmc { + + sdmmc-bus4 { + rockchip,pins = <0x04 0x18 0x01 0x199 0x04 0x19 0x01 0x199 0x04 0x1a 0x01 0x199 0x04 0x1b 0x01 0x199>; + phandle = <0x117>; + }; + + sdmmc-clk { + rockchip,pins = <0x04 0x1d 0x01 0x199>; + phandle = <0x114>; + }; + + sdmmc-cmd { + rockchip,pins = <0x04 0x1c 0x01 0x199>; + phandle = <0x115>; + }; + + sdmmc-det { + rockchip,pins = <0x00 0x04 0x01 0x19e>; + phandle = <0x116>; + }; + + sdmmc-pwren { + rockchip,pins = <0x00 0x05 0x02 0x198>; + phandle = <0x3ef>; + }; + }; + + spdif0 { + + spdif0m0-tx { + rockchip,pins = <0x01 0x0e 0x03 0x198>; + phandle = <0x142>; + }; + + spdif0m1-tx { + rockchip,pins = <0x04 0x0c 0x06 0x198>; + phandle = <0x3f0>; + }; + }; + + spdif1 { + + spdif1m0-tx { + rockchip,pins = <0x01 0x0f 0x03 0x198>; + phandle = <0x143>; + }; + + spdif1m1-tx { + rockchip,pins = <0x04 0x09 0x02 0x198>; + phandle = <0x3f1>; + }; + + spdif1m2-tx { + rockchip,pins = <0x04 0x11 0x03 0x198>; + phandle = <0x3f2>; + }; + }; + + spi0 { + + spi0m0-pins { + rockchip,pins = <0x00 0x16 0x08 0x19a 0x00 0x17 0x08 0x19a 0x00 0x10 0x08 0x19a>; + phandle = <0x150>; + }; + + spi0m0-cs0 { + rockchip,pins = <0x00 0x19 0x08 0x19a>; + phandle = <0x14e>; + }; + + spi0m0-cs1 { + rockchip,pins = <0x00 0x0f 0x08 0x19a>; + phandle = <0x14f>; + }; + + spi0m1-pins { + rockchip,pins = <0x04 0x02 0x08 0x19a 0x04 0x00 0x08 0x19a 0x04 0x01 0x08 0x19a>; + phandle = <0x3f3>; + }; + + spi0m1-cs0 { + rockchip,pins = <0x04 0x0a 0x08 0x19a>; + phandle = <0x3f4>; + }; + + spi0m1-cs1 { + rockchip,pins = <0x04 0x09 0x08 0x19a>; + phandle = <0x3f5>; + }; + + spi0m2-pins { + rockchip,pins = <0x01 0x0b 0x08 0x19a 0x01 0x09 0x08 0x19a 0x01 0x0a 0x08 0x19a>; + phandle = <0x3f6>; + }; + + spi0m2-cs0 { + rockchip,pins = <0x01 0x0c 0x08 0x19a>; + phandle = <0x3f7>; + }; + + spi0m2-cs1 { + rockchip,pins = <0x01 0x0d 0x08 0x19a>; + phandle = <0x3f8>; + }; + + spi0m3-pins { + rockchip,pins = <0x03 0x1b 0x08 0x19a 0x03 0x19 0x08 0x19a 0x03 0x1a 0x08 0x19a>; + phandle = <0x3f9>; + }; + + spi0m3-cs0 { + rockchip,pins = <0x03 0x1c 0x08 0x19a>; + phandle = <0x3fa>; + }; + + spi0m3-cs1 { + rockchip,pins = <0x03 0x1d 0x08 0x19a>; + phandle = <0x3fb>; + }; + }; + + spi1 { + + spi1m1-pins { + rockchip,pins = <0x03 0x11 0x08 0x19a 0x03 0x10 0x08 0x19a 0x03 0x0f 0x08 0x19a>; + phandle = <0x153>; + }; + + spi1m1-cs0 { + rockchip,pins = <0x03 0x12 0x08 0x19a>; + phandle = <0x151>; + }; + + spi1m1-cs1 { + rockchip,pins = <0x03 0x13 0x08 0x19a>; + phandle = <0x152>; + }; + + spi1m2-pins { + rockchip,pins = <0x01 0x1a 0x08 0x19a 0x01 0x18 0x08 0x19a 0x01 0x19 0x08 0x19a>; + phandle = <0x3fc>; + }; + + spi1m2-cs0 { + rockchip,pins = <0x01 0x1b 0x08 0x19a>; + phandle = <0x3fd>; + }; + + spi1m2-cs1 { + rockchip,pins = <0x01 0x1d 0x08 0x19a>; + phandle = <0x3fe>; + }; + + spi1m0-pins { + rockchip,pins = <0x02 0x10 0x08 0x19f 0x02 0x11 0x08 0x19f 0x02 0x12 0x08 0x19f>; + phandle = <0x3ff>; + }; + + spi1m0-cs0 { + rockchip,pins = <0x02 0x13 0x08 0x19f>; + phandle = <0x400>; + }; + + spi1m0-cs1 { + rockchip,pins = <0x02 0x14 0x08 0x19f>; + phandle = <0x401>; + }; + }; + + spi2 { + + spi2m0-pins { + rockchip,pins = <0x01 0x06 0x08 0x19a 0x01 0x04 0x08 0x19a 0x01 0x05 0x08 0x19a>; + phandle = <0x402>; + }; + + spi2m0-cs0 { + rockchip,pins = <0x01 0x07 0x08 0x19a>; + phandle = <0x403>; + }; + + spi2m0-cs1 { + rockchip,pins = <0x01 0x08 0x08 0x19a>; + phandle = <0x404>; + }; + + spi2m1-pins { + rockchip,pins = <0x04 0x06 0x08 0x19a 0x04 0x04 0x08 0x19a 0x04 0x05 0x08 0x19a>; + phandle = <0x405>; + }; + + spi2m1-cs0 { + rockchip,pins = <0x04 0x07 0x08 0x19a>; + phandle = <0x406>; + }; + + spi2m1-cs1 { + rockchip,pins = <0x04 0x08 0x08 0x19a>; + phandle = <0x407>; + }; + + spi2m2-pins { + rockchip,pins = <0x00 0x05 0x01 0x19f 0x00 0x0b 0x01 0x19f 0x00 0x06 0x01 0x19f>; + phandle = <0x155>; + }; + + spi2m2-cs0 { + rockchip,pins = <0x00 0x09 0x01 0x19f>; + phandle = <0x154>; + }; + + spi2m2-cs1 { + rockchip,pins = <0x00 0x08 0x01 0x19f>; + phandle = <0x408>; + }; + }; + + spi3 { + + spi3m1-pins { + rockchip,pins = <0x04 0x0f 0x08 0x19a 0x04 0x0d 0x08 0x19a 0x04 0x0e 0x08 0x19a>; + phandle = <0x15f>; + }; + + spi3m1-cs0 { + rockchip,pins = <0x04 0x10 0x08 0x19a>; + phandle = <0x15d>; + }; + + spi3m1-cs1 { + rockchip,pins = <0x04 0x11 0x08 0x19a>; + phandle = <0x15e>; + }; + + spi3m2-pins { + rockchip,pins = <0x00 0x1b 0x08 0x19a 0x00 0x18 0x08 0x19a 0x00 0x1a 0x08 0x19a>; + phandle = <0x409>; + }; + + spi3m2-cs0 { + rockchip,pins = <0x00 0x1c 0x08 0x19a>; + phandle = <0x40a>; + }; + + spi3m2-cs1 { + rockchip,pins = <0x00 0x1d 0x08 0x19a>; + phandle = <0x40b>; + }; + + spi3m3-pins { + rockchip,pins = <0x03 0x18 0x08 0x19a 0x03 0x16 0x08 0x19a 0x03 0x17 0x08 0x19a>; + phandle = <0x40c>; + }; + + spi3m3-cs0 { + rockchip,pins = <0x03 0x14 0x08 0x19a>; + phandle = <0x40d>; + }; + + spi3m3-cs1 { + rockchip,pins = <0x03 0x15 0x08 0x19a>; + phandle = <0x40e>; + }; + + spi3m0-pins { + rockchip,pins = <0x04 0x16 0x08 0x19f 0x04 0x14 0x08 0x19f 0x04 0x15 0x08 0x19f>; + phandle = <0x40f>; + }; + + spi3m0-cs0 { + rockchip,pins = <0x04 0x12 0x08 0x19f>; + phandle = <0x410>; + }; + + spi3m0-cs1 { + rockchip,pins = <0x04 0x13 0x08 0x19f>; + phandle = <0x411>; + }; + }; + + spi4 { + + spi4m0-pins { + rockchip,pins = <0x01 0x12 0x08 0x19a 0x01 0x10 0x08 0x19a 0x01 0x11 0x08 0x19a>; + phandle = <0x189>; + }; + + spi4m0-cs0 { + rockchip,pins = <0x01 0x13 0x08 0x19a>; + phandle = <0x187>; + }; + + spi4m0-cs1 { + rockchip,pins = <0x01 0x14 0x08 0x19a>; + phandle = <0x188>; + }; + + spi4m1-pins { + rockchip,pins = <0x03 0x02 0x08 0x19a 0x03 0x00 0x08 0x19a 0x03 0x01 0x08 0x19a>; + phandle = <0x412>; + }; + + spi4m1-cs0 { + rockchip,pins = <0x03 0x03 0x08 0x19a>; + phandle = <0x413>; + }; + + spi4m1-cs1 { + rockchip,pins = <0x03 0x04 0x08 0x19a>; + phandle = <0x414>; + }; + + spi4m2-pins { + rockchip,pins = <0x01 0x02 0x08 0x19a 0x01 0x00 0x08 0x19a 0x01 0x01 0x08 0x19a>; + phandle = <0x415>; + }; + + spi4m2-cs0 { + rockchip,pins = <0x01 0x03 0x08 0x19a>; + phandle = <0x416>; + }; + }; + + tsadc { + + tsadcm1-shut { + rockchip,pins = <0x00 0x02 0x02 0x198>; + phandle = <0x417>; + }; + + tsadc-shut { + rockchip,pins = <0x00 0x01 0x02 0x198>; + phandle = <0x176>; + }; + + tsadc-shut-org { + rockchip,pins = <0x00 0x01 0x01 0x198>; + phandle = <0x418>; + }; + }; + + uart0 { + + uart0m0-xfer { + rockchip,pins = <0x00 0x14 0x04 0x19e 0x00 0x15 0x04 0x19e>; + phandle = <0x419>; + }; + + uart0m1-xfer { + rockchip,pins = <0x00 0x08 0x04 0x19e 0x00 0x09 0x04 0x19e>; + phandle = <0x7d>; + }; + + uart0m2-xfer { + rockchip,pins = <0x04 0x04 0x0a 0x19e 0x04 0x03 0x0a 0x19e>; + phandle = <0x41a>; + }; + + uart0-ctsn { + rockchip,pins = <0x00 0x19 0x04 0x198>; + phandle = <0x41b>; + }; + + uart0-rtsn { + rockchip,pins = <0x00 0x16 0x04 0x198>; + phandle = <0x41c>; + }; + }; + + uart1 { + + uart1m1-xfer { + rockchip,pins = <0x01 0x0f 0x0a 0x19e 0x01 0x0e 0x0a 0x19e>; + phandle = <0x160>; + }; + + uart1m1-ctsn { + rockchip,pins = <0x01 0x1f 0x0a 0x198>; + phandle = <0x41d>; + }; + + uart1m1-rtsn { + rockchip,pins = <0x01 0x1e 0x0a 0x198>; + phandle = <0x41e>; + }; + + uart1m2-xfer { + rockchip,pins = <0x00 0x1a 0x0a 0x19e 0x00 0x19 0x0a 0x19e>; + phandle = <0x41f>; + }; + + uart1m2-ctsn { + rockchip,pins = <0x00 0x18 0x0a 0x198>; + phandle = <0x420>; + }; + + uart1m2-rtsn { + rockchip,pins = <0x00 0x17 0x0a 0x198>; + phandle = <0x421>; + }; + + uart1m0-xfer { + rockchip,pins = <0x02 0x0e 0x0a 0x19e 0x02 0x0f 0x0a 0x19e>; + phandle = <0x422>; + }; + + uart1m0-ctsn { + rockchip,pins = <0x02 0x11 0x0a 0x198>; + phandle = <0x423>; + }; + + uart1m0-rtsn { + rockchip,pins = <0x02 0x10 0x0a 0x198>; + phandle = <0x424>; + }; + }; + + uart2 { + + uart2m0-xfer { + rockchip,pins = <0x00 0x0e 0x0a 0x19e 0x00 0x0d 0x0a 0x19e>; + phandle = <0x1ce>; + }; + + uart2m1-xfer { + rockchip,pins = <0x04 0x19 0x0a 0x19e 0x04 0x18 0x0a 0x19e>; + phandle = <0x161>; + }; + + uart2m2-xfer { + rockchip,pins = <0x03 0x0a 0x0a 0x19e 0x03 0x09 0x0a 0x19e>; + phandle = <0x425>; + }; + + uart2-ctsn { + rockchip,pins = <0x03 0x0c 0x0a 0x198>; + phandle = <0x426>; + }; + + uart2-rtsn { + rockchip,pins = <0x03 0x0b 0x0a 0x198>; + phandle = <0x427>; + }; + }; + + uart3 { + + uart3m0-xfer { + rockchip,pins = <0x01 0x10 0x0a 0x19e 0x01 0x11 0x0a 0x19e>; + phandle = <0x428>; + }; + + uart3m1-xfer { + rockchip,pins = <0x03 0x0e 0x0a 0x19e 0x03 0x0d 0x0a 0x19e>; + phandle = <0x162>; + }; + + uart3m2-xfer { + rockchip,pins = <0x04 0x06 0x0a 0x19e 0x04 0x05 0x0a 0x19e>; + phandle = <0x429>; + }; + + uart3-ctsn { + rockchip,pins = <0x01 0x13 0x0a 0x198>; + phandle = <0x42a>; + }; + + uart3-rtsn { + rockchip,pins = <0x01 0x12 0x0a 0x198>; + phandle = <0x42b>; + }; + }; + + uart4 { + + uart4m0-xfer { + rockchip,pins = <0x01 0x1b 0x0a 0x19e 0x01 0x1a 0x0a 0x19e>; + phandle = <0x42c>; + }; + + uart4m1-xfer { + rockchip,pins = <0x03 0x18 0x0a 0x19e 0x03 0x19 0x0a 0x19e>; + phandle = <0x163>; + }; + + uart4m2-xfer { + rockchip,pins = <0x01 0x0a 0x0a 0x19e 0x01 0x0b 0x0a 0x19e>; + phandle = <0x42d>; + }; + + uart4-ctsn { + rockchip,pins = <0x01 0x17 0x0a 0x198>; + phandle = <0x42e>; + }; + + uart4-rtsn { + rockchip,pins = <0x01 0x15 0x0a 0x198>; + phandle = <0x42f>; + }; + }; + + uart5 { + + uart5m0-xfer { + rockchip,pins = <0x04 0x1c 0x0a 0x19e 0x04 0x1d 0x0a 0x19e>; + phandle = <0x430>; + }; + + uart5m0-ctsn { + rockchip,pins = <0x04 0x1a 0x0a 0x198>; + phandle = <0x431>; + }; + + uart5m0-rtsn { + rockchip,pins = <0x04 0x1b 0x0a 0x198>; + phandle = <0x432>; + }; + + uart5m1-xfer { + rockchip,pins = <0x03 0x15 0x0a 0x19e 0x03 0x14 0x0a 0x19e>; + phandle = <0x164>; + }; + + uart5m1-ctsn { + rockchip,pins = <0x02 0x02 0x0a 0x198>; + phandle = <0x433>; + }; + + uart5m1-rtsn { + rockchip,pins = <0x02 0x03 0x0a 0x198>; + phandle = <0x434>; + }; + + uart5m2-xfer { + rockchip,pins = <0x02 0x1c 0x0a 0x19e 0x02 0x1d 0x0a 0x19e>; + phandle = <0x435>; + }; + }; + + uart6 { + + uart6m1-xfer { + rockchip,pins = <0x01 0x00 0x0a 0x19e 0x01 0x01 0x0a 0x19e>; + phandle = <0x165>; + }; + + uart6m1-ctsn { + rockchip,pins = <0x01 0x03 0x0a 0x198>; + phandle = <0x436>; + }; + + uart6m1-rtsn { + rockchip,pins = <0x01 0x02 0x0a 0x198>; + phandle = <0x1e5>; + }; + + uart6m2-xfer { + rockchip,pins = <0x01 0x19 0x0a 0x19e 0x01 0x18 0x0a 0x19e>; + phandle = <0x437>; + }; + + uart6m0-xfer { + rockchip,pins = <0x02 0x06 0x0a 0x19e 0x02 0x07 0x0a 0x19e>; + phandle = <0x438>; + }; + + uart6m0-ctsn { + rockchip,pins = <0x02 0x09 0x0a 0x198>; + phandle = <0x439>; + }; + + uart6m0-rtsn { + rockchip,pins = <0x02 0x08 0x0a 0x198>; + phandle = <0x43a>; + }; + }; + + uart7 { + + uart7m1-xfer { + rockchip,pins = <0x03 0x11 0x0a 0x19e 0x03 0x10 0x0a 0x19e>; + phandle = <0x166>; + }; + + uart7m1-ctsn { + rockchip,pins = <0x03 0x13 0x0a 0x198>; + phandle = <0x43b>; + }; + + uart7m1-rtsn { + rockchip,pins = <0x03 0x12 0x0a 0x198>; + phandle = <0x43c>; + }; + + uart7m2-xfer { + rockchip,pins = <0x01 0x0c 0x0a 0x19e 0x01 0x0d 0x0a 0x19e>; + phandle = <0x43d>; + }; + + uart7m0-xfer { + rockchip,pins = <0x02 0x0c 0x0a 0x19e 0x02 0x0d 0x0a 0x19e>; + phandle = <0x43e>; + }; + + uart7m0-ctsn { + rockchip,pins = <0x04 0x16 0x0a 0x198>; + phandle = <0x43f>; + }; + + uart7m0-rtsn { + rockchip,pins = <0x04 0x12 0x0a 0x198>; + phandle = <0x440>; + }; + }; + + uart8 { + + uart8m0-xfer { + rockchip,pins = <0x04 0x09 0x0a 0x19e 0x04 0x08 0x0a 0x19e>; + phandle = <0x441>; + }; + + uart8m0-ctsn { + rockchip,pins = <0x04 0x0b 0x0a 0x198>; + phandle = <0x442>; + }; + + uart8m0-rtsn { + rockchip,pins = <0x04 0x0a 0x0a 0x198>; + phandle = <0x443>; + }; + + uart8m1-xfer { + rockchip,pins = <0x03 0x03 0x0a 0x19e 0x03 0x02 0x0a 0x19e>; + phandle = <0x167>; + }; + + uart8m1-ctsn { + rockchip,pins = <0x03 0x05 0x0a 0x198>; + phandle = <0x444>; + }; + + uart8m1-rtsn { + rockchip,pins = <0x03 0x04 0x0a 0x198>; + phandle = <0x445>; + }; + + uart8-xfer { + rockchip,pins = <0x04 0x09 0x0a 0x19e>; + phandle = <0x446>; + }; + }; + + uart9 { + + uart9m1-xfer { + rockchip,pins = <0x04 0x0d 0x0a 0x19e 0x04 0x0c 0x0a 0x19e>; + phandle = <0x168>; + }; + + uart9m1-ctsn { + rockchip,pins = <0x04 0x01 0x0a 0x198>; + phandle = <0x447>; + }; + + uart9m1-rtsn { + rockchip,pins = <0x04 0x00 0x0a 0x198>; + phandle = <0x448>; + }; + + uart9m2-xfer { + rockchip,pins = <0x03 0x1c 0x0a 0x19e 0x03 0x1d 0x0a 0x19e>; + phandle = <0x449>; + }; + + uart9m2-ctsn { + rockchip,pins = <0x03 0x1b 0x0a 0x198>; + phandle = <0x44a>; + }; + + uart9m2-rtsn { + rockchip,pins = <0x03 0x1a 0x0a 0x198>; + phandle = <0x44b>; + }; + + uart9m0-xfer { + rockchip,pins = <0x02 0x14 0x0a 0x19e 0x02 0x12 0x0a 0x19e>; + phandle = <0x44c>; + }; + + uart9m0-ctsn { + rockchip,pins = <0x04 0x15 0x0a 0x198>; + phandle = <0x44d>; + }; + + uart9m0-rtsn { + rockchip,pins = <0x04 0x14 0x0a 0x198>; + phandle = <0x44e>; + }; + }; + + vop { + + vop-pins { + rockchip,pins = <0x01 0x02 0x01 0x198>; + phandle = <0x44f>; + }; + }; + + bt656 { + + bt656-pins { + rockchip,pins = <0x04 0x08 0x02 0x1a0 0x04 0x00 0x02 0x1a0 0x04 0x01 0x02 0x1a0 0x04 0x02 0x02 0x1a0 0x04 0x03 0x02 0x1a0 0x04 0x04 0x02 0x1a0 0x04 0x05 0x02 0x1a0 0x04 0x06 0x02 0x1a0 0x04 0x07 0x02 0x1a0>; + phandle = <0x450>; + }; + }; + + gpio-func { + + tsadc-gpio-func { + rockchip,pins = <0x00 0x01 0x00 0x198>; + phandle = <0x175>; + }; + }; + + pcfg-pull-none-drv-level-7 { + bias-disable; + drive-strength = <0x07>; + phandle = <0x451>; + }; + + pcfg-pull-none-drv-level-8 { + bias-disable; + drive-strength = <0x08>; + phandle = <0x452>; + }; + + pcfg-pull-none-drv-level-9 { + bias-disable; + drive-strength = <0x09>; + phandle = <0x453>; + }; + + pcfg-pull-none-drv-level-10 { + bias-disable; + drive-strength = <0x0a>; + phandle = <0x454>; + }; + + pcfg-pull-none-drv-level-11 { + bias-disable; + drive-strength = <0x0b>; + phandle = <0x455>; + }; + + pcfg-pull-none-drv-level-12 { + bias-disable; + drive-strength = <0x0c>; + phandle = <0x456>; + }; + + pcfg-pull-none-drv-level-13 { + bias-disable; + drive-strength = <0x0d>; + phandle = <0x457>; + }; + + pcfg-pull-none-drv-level-14 { + bias-disable; + drive-strength = <0x0e>; + phandle = <0x458>; + }; + + pcfg-pull-none-drv-level-15 { + bias-disable; + drive-strength = <0x0f>; + phandle = <0x459>; + }; + + pcfg-pull-up-drv-level-7 { + bias-pull-up; + drive-strength = <0x07>; + phandle = <0x45a>; + }; + + pcfg-pull-up-drv-level-8 { + bias-pull-up; + drive-strength = <0x08>; + phandle = <0x45b>; + }; + + pcfg-pull-up-drv-level-9 { + bias-pull-up; + drive-strength = <0x09>; + phandle = <0x45c>; + }; + + pcfg-pull-up-drv-level-10 { + bias-pull-up; + drive-strength = <0x0a>; + phandle = <0x45d>; + }; + + pcfg-pull-up-drv-level-11 { + bias-pull-up; + drive-strength = <0x0b>; + phandle = <0x45e>; + }; + + pcfg-pull-up-drv-level-12 { + bias-pull-up; + drive-strength = <0x0c>; + phandle = <0x45f>; + }; + + pcfg-pull-up-drv-level-13 { + bias-pull-up; + drive-strength = <0x0d>; + phandle = <0x460>; + }; + + pcfg-pull-up-drv-level-14 { + bias-pull-up; + drive-strength = <0x0e>; + phandle = <0x461>; + }; + + pcfg-pull-up-drv-level-15 { + bias-pull-up; + drive-strength = <0x0f>; + phandle = <0x462>; + }; + + pcfg-pull-down-drv-level-7 { + bias-pull-down; + drive-strength = <0x07>; + phandle = <0x463>; + }; + + pcfg-pull-down-drv-level-8 { + bias-pull-down; + drive-strength = <0x08>; + phandle = <0x464>; + }; + + pcfg-pull-down-drv-level-9 { + bias-pull-down; + drive-strength = <0x09>; + phandle = <0x465>; + }; + + pcfg-pull-down-drv-level-10 { + bias-pull-down; + drive-strength = <0x0a>; + phandle = <0x466>; + }; + + pcfg-pull-down-drv-level-11 { + bias-pull-down; + drive-strength = <0x0b>; + phandle = <0x467>; + }; + + pcfg-pull-down-drv-level-12 { + bias-pull-down; + drive-strength = <0x0c>; + phandle = <0x468>; + }; + + pcfg-pull-down-drv-level-13 { + bias-pull-down; + drive-strength = <0x0d>; + phandle = <0x469>; + }; + + pcfg-pull-down-drv-level-14 { + bias-pull-down; + drive-strength = <0x0e>; + phandle = <0x46a>; + }; + + pcfg-pull-down-drv-level-15 { + bias-pull-down; + drive-strength = <0x0f>; + phandle = <0x46b>; + }; + + eth0 { + + eth0-pins { + rockchip,pins = <0x02 0x13 0x01 0x198>; + phandle = <0x46c>; + }; + }; + + gmac0 { + + gmac0-miim { + rockchip,pins = <0x04 0x14 0x01 0x198 0x04 0x15 0x01 0x198>; + phandle = <0x1c1>; + }; + + gmac0-clkinout { + rockchip,pins = <0x04 0x13 0x01 0x198>; + phandle = <0x46d>; + }; + + gmac0-rx-bus2 { + rockchip,pins = <0x02 0x11 0x01 0x198 0x02 0x12 0x01 0x198 0x04 0x12 0x01 0x198>; + phandle = <0x1c3>; + }; + + gmac0-tx-bus2 { + rockchip,pins = <0x02 0x0e 0x01 0x19a 0x02 0x0f 0x01 0x19a 0x02 0x10 0x01 0x198>; + phandle = <0x1c2>; + }; + + gmac0-rgmii-clk { + rockchip,pins = <0x02 0x08 0x01 0x198 0x02 0x0b 0x01 0x198>; + phandle = <0x1c4>; + }; + + gmac0-rgmii-bus { + rockchip,pins = <0x02 0x06 0x01 0x198 0x02 0x07 0x01 0x198 0x02 0x09 0x01 0x19a 0x02 0x0a 0x01 0x19a>; + phandle = <0x1c5>; + }; + + gmac0-ppsclk { + rockchip,pins = <0x02 0x14 0x01 0x198>; + phandle = <0x46e>; + }; + + gmac0-ppstring { + rockchip,pins = <0x02 0x0d 0x01 0x198>; + phandle = <0x46f>; + }; + + gmac0-ptp-refclk { + rockchip,pins = <0x02 0x0c 0x01 0x198>; + phandle = <0x470>; + }; + + gmac0-txer { + rockchip,pins = <0x04 0x16 0x01 0x198>; + phandle = <0x471>; + }; + }; + + hym8563 { + + hym8563-int { + rockchip,pins = <0x00 0x08 0x00 0x198>; + phandle = <0x7a>; + }; + }; + + leds { + + leds-gpio { + rockchip,pins = <0x00 0x15 0x00 0x198>; + phandle = <0x1ee>; + }; + }; + + headphone { + + hp-det { + rockchip,pins = <0x02 0x13 0x00 0x198>; + phandle = <0x1dc>; + }; + }; + + usb-typec { + + usb-5v-ctrl { + rockchip,pins = <0x01 0x03 0x00 0x198>; + phandle = <0x1ef>; + }; + + usbc0-int { + rockchip,pins = <0x00 0x1b 0x00 0x198>; + phandle = <0x17b>; + }; + }; + + hdmirx { + + hdmirx-det { + rockchip,pins = <0x01 0x1d 0x00 0x198>; + phandle = <0x1b4>; + }; + }; + + wireless-bluetooth { + + uart6-gpios { + rockchip,pins = <0x01 0x02 0x00 0x198>; + phandle = <0x1e9>; + }; + + bt-reset-gpio { + rockchip,pins = <0x00 0x16 0x00 0x198>; + phandle = <0x1e6>; + }; + + bt-wake-gpio { + rockchip,pins = <0x00 0x15 0x00 0x198>; + phandle = <0x1e7>; + }; + + bt-irq-gpio { + rockchip,pins = <0x00 0x00 0x00 0x198>; + phandle = <0x1e8>; + }; + }; + + wireless-wlan { + + wifi-host-wake-irq { + rockchip,pins = <0x00 0x0a 0x00 0x198>; + phandle = <0x1ea>; + }; + }; + + wdt-pc9202 { + + wdt-en-base { + rockchip,pins = <0x00 0x14 0x00 0x198>; + phandle = <0x14c>; + }; + }; + + cam { + + cam0-or-cam1-switch-pin { + rockchip,pins = <0x03 0x11 0x00 0x198>; + phandle = <0x1f0>; + }; + }; + }; + + rkcif-mipi-lvds4 { + compatible = "rockchip,rkcif-mipi-lvds"; + rockchip,hw = <0x4f>; + iommus = <0x50>; + status = "disabled"; + phandle = <0x1a1>; + }; + + rkcif-mipi-lvds4-sditf { + compatible = "rockchip,rkcif-sditf"; + rockchip,cif = <0x1a1>; + status = "disabled"; + phandle = <0x472>; + }; + + rkcif-mipi-lvds4-sditf-vir1 { + compatible = "rockchip,rkcif-sditf"; + rockchip,cif = <0x1a1>; + status = "disabled"; + phandle = <0x473>; + }; + + rkcif-mipi-lvds4-sditf-vir2 { + compatible = "rockchip,rkcif-sditf"; + rockchip,cif = <0x1a1>; + status = "disabled"; + phandle = <0x474>; + }; + + rkcif-mipi-lvds4-sditf-vir3 { + compatible = "rockchip,rkcif-sditf"; + rockchip,cif = <0x1a1>; + status = "disabled"; + phandle = <0x475>; + }; + + rkcif-mipi-lvds5 { + compatible = "rockchip,rkcif-mipi-lvds"; + rockchip,hw = <0x4f>; + iommus = <0x50>; + status = "disabled"; + phandle = <0x1a2>; + }; + + rkcif-mipi-lvds5-sditf { + compatible = "rockchip,rkcif-sditf"; + rockchip,cif = <0x1a2>; + status = "disabled"; + phandle = <0x476>; + }; + + rkcif-mipi-lvds5-sditf-vir1 { + compatible = "rockchip,rkcif-sditf"; + rockchip,cif = <0x1a2>; + status = "disabled"; + phandle = <0x477>; + }; + + rkcif-mipi-lvds5-sditf-vir2 { + compatible = "rockchip,rkcif-sditf"; + rockchip,cif = <0x1a2>; + status = "disabled"; + phandle = <0x478>; + }; + + rkcif-mipi-lvds5-sditf-vir3 { + compatible = "rockchip,rkcif-sditf"; + rockchip,cif = <0x1a2>; + status = "disabled"; + phandle = <0x479>; + }; + + usbdrd3_1 { + compatible = "rockchip,rk3588-dwc3\0rockchip,rk3399-dwc3"; + clocks = <0x02 0x1a6 0x02 0x1a5 0x02 0x1a4>; + clock-names = "ref\0suspend\0bus"; + #address-cells = <0x02>; + #size-cells = <0x02>; + ranges; + status = "okay"; + phandle = <0x47a>; + + usb@fc400000 { + compatible = "snps,dwc3"; + reg = <0x00 0xfc400000 0x00 0x400000>; + interrupts = <0x00 0xdd 0x04>; + power-domains = <0x60 0x1f>; + resets = <0x02 0x2a7>; + reset-names = "usb3-otg"; + dr_mode = "host"; + phys = <0x1a3 0x1a4>; + phy-names = "usb2-phy\0usb3-phy"; + phy_type = "utmi_wide"; + snps,dis_enblslpm_quirk; + snps,dis-u1-entry-quirk; + snps,dis-u2-entry-quirk; + snps,dis-u2-freeclk-exists-quirk; + snps,dis-del-phy-power-chg-quirk; + snps,dis-tx-ipgap-linecheck-quirk; + snps,parkmode-disable-hs-quirk; + snps,parkmode-disable-ss-quirk; + status = "okay"; + phandle = <0x47b>; + }; + }; + + syscon@fd5b8000 { + compatible = "rockchip,pcie30-phy-grf\0syscon"; + reg = <0x00 0xfd5b8000 0x00 0x10000>; + phandle = <0x1cc>; + }; + + syscon@fd5c0000 { + compatible = "rockchip,pipe-phy-grf\0syscon"; + reg = <0x00 0xfd5c0000 0x00 0x100>; + phandle = <0x1cb>; + }; + + syscon@fd5cc000 { + compatible = "rockchip,rk3588-usbdpphy-grf\0syscon"; + reg = <0x00 0xfd5cc000 0x00 0x4000>; + phandle = <0x1c9>; + }; + + syscon@fd5d4000 { + compatible = "rockchip,rk3588-usb2phy-grf\0syscon\0simple-mfd"; + reg = <0x00 0xfd5d4000 0x00 0x4000>; + #address-cells = <0x01>; + #size-cells = <0x01>; + phandle = <0x1c8>; + + usb2-phy@4000 { + compatible = "rockchip,rk3588-usb2phy"; + reg = <0x4000 0x10>; + interrupts = <0x00 0x18a 0x04>; + resets = <0x02 0xc0048 0x02 0x489>; + reset-names = "phy\0apb"; + clocks = <0x02 0x2b5>; + clock-names = "phyclk"; + clock-output-names = "usb480m_phy1"; + #clock-cells = <0x00>; + rockchip,usbctrl-grf = <0x74>; + status = "okay"; + phandle = <0x1ca>; + + otg-port { + #phy-cells = <0x00>; + status = "okay"; + phy-supply = <0x75>; + phandle = <0x1a3>; + }; + }; + }; + + syscon@fd5e4000 { + compatible = "rockchip,rk3588-hdptxphy-grf\0syscon"; + reg = <0x00 0xfd5e4000 0x00 0x100>; + phandle = <0x1c7>; + }; + + spdif-tx@fddb8000 { + compatible = "rockchip,rk3588-spdif\0rockchip,rk3568-spdif"; + reg = <0x00 0xfddb8000 0x00 0x1000>; + interrupts = <0x00 0xc6 0x04>; + dmas = <0xf1 0x16>; + dma-names = "tx"; + clock-names = "mclk\0hclk"; + clocks = <0x02 0x20f 0x02 0x20a>; + assigned-clocks = <0x02 0x20b>; + assigned-clock-parents = <0x02 0x05>; + power-domains = <0x60 0x19>; + #sound-dai-cells = <0x00>; + status = "disabled"; + phandle = <0x1e2>; + }; + + i2s@fddc8000 { + compatible = "rockchip,rk3588-i2s-tdm"; + reg = <0x00 0xfddc8000 0x00 0x1000>; + interrupts = <0x00 0xbc 0x04>; + clocks = <0x02 0x201 0x02 0x1fe>; + clock-names = "mclk_tx\0hclk"; + assigned-clocks = <0x02 0x1ff>; + assigned-clock-parents = <0x02 0x05>; + dmas = <0xf2 0x16>; + dma-names = "tx"; + power-domains = <0x60 0x19>; + resets = <0x02 0x391>; + reset-names = "tx-m"; + rockchip,playback-only; + #sound-dai-cells = <0x00>; + status = "disabled"; + phandle = <0x47c>; + }; + + spdif-tx@fdde8000 { + compatible = "rockchip,rk3588-spdif\0rockchip,rk3568-spdif"; + reg = <0x00 0xfdde8000 0x00 0x1000>; + interrupts = <0x00 0xc5 0x04>; + dmas = <0xf1 0x08>; + dma-names = "tx"; + clock-names = "mclk\0hclk"; + clocks = <0x02 0x25c 0x02 0x258>; + assigned-clocks = <0x02 0x259>; + assigned-clock-parents = <0x02 0x05>; + power-domains = <0x60 0x1a>; + #sound-dai-cells = <0x00>; + status = "disabled"; + phandle = <0x47d>; + }; + + i2s@fddf4000 { + compatible = "rockchip,rk3588-i2s-tdm"; + reg = <0x00 0xfddf4000 0x00 0x1000>; + interrupts = <0x00 0xba 0x04>; + clocks = <0x02 0x24c 0x02 0x24c 0x02 0x252>; + clock-names = "mclk_tx\0mclk_rx\0hclk"; + assigned-clocks = <0x02 0x249>; + assigned-clock-parents = <0x02 0x07>; + dmas = <0xf2 0x04>; + dma-names = "tx"; + power-domains = <0x60 0x1a>; + resets = <0x02 0x3ef>; + reset-names = "tx-m"; + rockchip,always-on; + rockchip,hdmi-path; + rockchip,playback-only; + #sound-dai-cells = <0x00>; + status = "okay"; + phandle = <0x1e0>; + }; + + i2s@fddf8000 { + compatible = "rockchip,rk3588-i2s-tdm"; + reg = <0x00 0xfddf8000 0x00 0x1000>; + interrupts = <0x00 0xbb 0x04>; + clocks = <0x02 0x23c 0x02 0x23c 0x02 0x238>; + clock-names = "mclk_tx\0mclk_rx\0hclk"; + assigned-clocks = <0x02 0x239>; + assigned-clock-parents = <0x02 0x05>; + dmas = <0xf2 0x15>; + dma-names = "rx"; + power-domains = <0x60 0x1a>; + resets = <0x02 0x3c3>; + reset-names = "rx-m"; + rockchip,capture-only; + #sound-dai-cells = <0x00>; + status = "okay"; + phandle = <0x1ec>; + }; + + i2s@fde00000 { + compatible = "rockchip,rk3588-i2s-tdm"; + reg = <0x00 0xfde00000 0x00 0x1000>; + interrupts = <0x00 0xbe 0x04>; + clocks = <0x02 0x237 0x02 0x237 0x02 0x233>; + clock-names = "mclk_tx\0mclk_rx\0hclk"; + assigned-clocks = <0x02 0x234>; + assigned-clock-parents = <0x02 0x05>; + dmas = <0xf2 0x18>; + dma-names = "rx"; + power-domains = <0x60 0x1a>; + resets = <0x02 0x417>; + reset-names = "rx-m"; + rockchip,capture-only; + #sound-dai-cells = <0x00>; + status = "disabled"; + phandle = <0x47e>; + }; + + spdif-rx@fde10000 { + compatible = "rockchip,rk3588-spdifrx\0rockchip,rk3308-spdifrx"; + reg = <0x00 0xfde10000 0x00 0x1000>; + interrupts = <0x00 0xc8 0x04>; + clocks = <0x02 0x260 0x02 0x25f>; + clock-names = "mclk\0hclk"; + assigned-clocks = <0x02 0x260>; + assigned-clock-parents = <0x02 0x05>; + dmas = <0x7c 0x16>; + dma-names = "rx"; + power-domains = <0x60 0x1a>; + resets = <0x02 0x3ff>; + reset-names = "spdifrx-m"; + #sound-dai-cells = <0x00>; + status = "disabled"; + phandle = <0x47f>; + }; + + spdif-rx@fde18000 { + compatible = "rockchip,rk3588-spdifrx\0rockchip,rk3308-spdifrx"; + reg = <0x00 0xfde18000 0x00 0x1000>; + interrupts = <0x00 0xc9 0x04>; + clocks = <0x02 0x262 0x02 0x261>; + clock-names = "mclk\0hclk"; + assigned-clocks = <0x02 0x262>; + assigned-clock-parents = <0x02 0x05>; + dmas = <0x7c 0x17>; + dma-names = "rx"; + power-domains = <0x60 0x1a>; + resets = <0x02 0x401>; + reset-names = "spdifrx-m"; + #sound-dai-cells = <0x00>; + status = "disabled"; + phandle = <0x480>; + }; + + dp@fde60000 { + compatible = "rockchip,rk3588-dp"; + reg = <0x00 0xfde60000 0x00 0x4000>; + interrupts = <0x00 0xa2 0x04>; + clocks = <0x02 0x1e7 0x02 0x2cd 0x02 0x201 0x02 0x20d 0x04 0x02 0x1eb>; + clock-names = "apb\0aux\0i2s\0spdif\0hclk\0hdcp"; + assigned-clocks = <0x02 0x2cd>; + assigned-clock-rates = <0xf42400>; + resets = <0x02 0x389>; + phys = <0x1a5>; + power-domains = <0x60 0x19>; + #sound-dai-cells = <0x01>; + status = "disabled"; + phandle = <0x1e3>; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + reg = <0x00>; + #address-cells = <0x01>; + #size-cells = <0x00>; + + endpoint@0 { + reg = <0x00>; + remote-endpoint = <0x1a6>; + status = "disabled"; + phandle = <0xdd>; + }; + + endpoint@1 { + reg = <0x01>; + remote-endpoint = <0x3e>; + status = "disabled"; + phandle = <0xe3>; + }; + + endpoint@2 { + reg = <0x02>; + remote-endpoint = <0x1a7>; + status = "disabled"; + phandle = <0xeb>; + }; + }; + + port@1 { + reg = <0x01>; + + endpoint { + phandle = <0x481>; + }; + }; + }; + }; + + hdmi@fdea0000 { + compatible = "rockchip,rk3588-dw-hdmi"; + reg = <0x00 0xfdea0000 0x00 0x10000 0x00 0xfdeb0000 0x00 0x10000>; + interrupts = <0x00 0xad 0x04 0x00 0xae 0x04 0x00 0xaf 0x04 0x00 0xb0 0x04 0x00 0x169 0x04>; + clocks = <0x02 0x224 0x02 0x266 0x02 0x225 0x02 0x226 0x02 0x24c 0x02 0x274 0x02 0x275 0x02 0x276 0x02 0x277 0x05 0x36>; + clock-names = "pclk\0hpd\0earc\0hdmitx_ref\0aud\0dclk_vp0\0dclk_vp1\0dclk_vp2\0dclk_vp3\0hclk_vo1\0link_clk"; + resets = <0x02 0x3d7 0x02 0x49d>; + reset-names = "ref\0hdp"; + power-domains = <0x60 0x1a>; + pinctrl-names = "default"; + pinctrl-0 = <0x1a8 0x1a9 0x1aa 0x1ab>; + reg-io-width = <0x04>; + rockchip,grf = <0xc8>; + rockchip,vo1_grf = <0xd8>; + phys = <0x1ac>; + phy-names = "hdmi"; + #sound-dai-cells = <0x00>; + status = "disabled"; + phandle = <0x1e1>; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + reg = <0x00>; + #address-cells = <0x01>; + #size-cells = <0x00>; + phandle = <0x482>; + + endpoint@0 { + reg = <0x00>; + remote-endpoint = <0x1ad>; + status = "disabled"; + phandle = <0xdf>; + }; + + endpoint@1 { + reg = <0x01>; + remote-endpoint = <0x3f>; + status = "disabled"; + phandle = <0xe5>; + }; + + endpoint@2 { + reg = <0x02>; + remote-endpoint = <0x1ae>; + status = "disabled"; + phandle = <0xed>; + }; + }; + }; + }; + + edp@fded0000 { + compatible = "rockchip,rk3588-edp"; + reg = <0x00 0xfded0000 0x00 0x1000>; + interrupts = <0x00 0xa4 0x04>; + clocks = <0x02 0x214 0x02 0x213 0x02 0x215 0x05>; + clock-names = "dp\0pclk\0spdif\0hclk"; + resets = <0x02 0x3e4 0x02 0x3e3>; + reset-names = "dp\0apb"; + phys = <0x1af>; + phy-names = "dp"; + power-domains = <0x60 0x1a>; + rockchip,grf = <0xd8>; + status = "disabled"; + phandle = <0x483>; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + reg = <0x00>; + #address-cells = <0x01>; + #size-cells = <0x00>; + + endpoint@0 { + reg = <0x00>; + remote-endpoint = <0x1b0>; + status = "disabled"; + phandle = <0xde>; + }; + + endpoint@1 { + reg = <0x01>; + remote-endpoint = <0x1b1>; + status = "disabled"; + phandle = <0xe4>; + }; + + endpoint@2 { + reg = <0x02>; + remote-endpoint = <0x1b2>; + status = "disabled"; + phandle = <0xec>; + }; + }; + + port@1 { + reg = <0x01>; + + endpoint { + phandle = <0x484>; + }; + }; + }; + }; + + hdmirx-controller@fdee0000 { + compatible = "rockchip,rk3588-hdmirx-ctrler\0rockchip,hdmirx-ctrler"; + reg = <0x00 0xfdee0000 0x00 0x6000>; + reg-names = "hdmirx_regs"; + power-domains = <0x60 0x1a>; + rockchip,grf = <0xc8>; + rockchip,vo1_grf = <0xd8>; + interrupts = <0x00 0xb1 0x04 0x00 0x1b4 0x04 0x00 0xb3 0x04>; + interrupt-names = "cec\0hdmi\0dma"; + clocks = <0x02 0x21a 0x02 0x21f 0x02 0x2b2 0x02 0x21b 0x02 0x21c 0x02 0x232 0x05>; + clock-names = "aclk\0audio\0cr_para\0pclk\0ref\0hclk_s_hdmirx\0hclk_vo1"; + resets = <0x02 0x3d9 0x02 0x3da 0x02 0x3db 0x02 0x3b7>; + reset-names = "rst_a\0rst_p\0rst_ref\0rst_biu"; + pinctrl-0 = <0x1b3 0x1b4>; + pinctrl-names = "default"; + status = "disabled"; + #sound-dai-cells = <0x01>; + hpd-trigger-level = <0x01>; + hdmirx-det-gpios = <0xfe 0x1d 0x01>; + phandle = <0x1eb>; + }; + + pcie@fe150000 { + compatible = "rockchip,rk3588-pcie\0snps,dw-pcie"; + #address-cells = <0x03>; + #size-cells = <0x02>; + bus-range = <0x00 0x0f>; + clocks = <0x02 0x14e 0x02 0x153 0x02 0x149 0x02 0x158 0x02 0x15e 0x02 0x183>; + clock-names = "aclk_mst\0aclk_slv\0aclk_dbi\0pclk\0aux\0pipe"; + device_type = "pci"; + interrupts = <0x00 0x107 0x04 0x00 0x106 0x04 0x00 0x105 0x04 0x00 0x104 0x04 0x00 0x103 0x04>; + interrupt-names = "sys\0pmc\0msg\0legacy\0err"; + #interrupt-cells = <0x01>; + interrupt-map-mask = <0x00 0x00 0x00 0x07>; + interrupt-map = <0x00 0x00 0x00 0x01 0x1b5 0x00 0x00 0x00 0x00 0x02 0x1b5 0x01 0x00 0x00 0x00 0x03 0x1b5 0x02 0x00 0x00 0x00 0x04 0x1b5 0x03>; + linux,pci-domain = <0x00>; + num-ib-windows = <0x10>; + num-ob-windows = <0x10>; + num-viewport = <0x08>; + max-link-speed = <0x03>; + msi-map = <0x00 0x1b6 0x00 0x1000>; + num-lanes = <0x01>; + phys = <0x1b7>; + phy-names = "pcie-phy"; + power-domains = <0x60 0x22>; + ranges = <0x800 0x00 0xf0000000 0x00 0xf0000000 0x00 0x100000 0x81000000 0x00 0xf0100000 0x00 0xf0100000 0x00 0x100000 0x82000000 0x00 0xf0200000 0x00 0xf0200000 0x00 0xe00000 0xc3000000 0x09 0x00 0x09 0x00 0x00 0x40000000>; + reg = <0x00 0xfe150000 0x00 0x10000 0x0a 0x40000000 0x00 0x400000>; + reg-names = "pcie-apb\0pcie-dbi"; + resets = <0x02 0x20d 0x02 0x21c>; + reset-names = "pcie\0periph"; + rockchip,pipe-grf = <0x76>; + status = "okay"; + reset-gpios = <0x10d 0x0e 0x00>; + vpcie3v3-supply = <0x1b8>; + phandle = <0x485>; + + legacy-interrupt-controller { + interrupt-controller; + #address-cells = <0x00>; + #interrupt-cells = <0x01>; + interrupt-parent = <0x01>; + interrupts = <0x00 0x104 0x01>; + phandle = <0x1b5>; + }; + }; + + pcie@fe160000 { + compatible = "rockchip,rk3588-pcie\0snps,dw-pcie"; + #address-cells = <0x03>; + #size-cells = <0x02>; + bus-range = <0x10 0x1f>; + clocks = <0x02 0x14f 0x02 0x154 0x02 0x14a 0x02 0x159 0x02 0x15f 0x02 0x184>; + clock-names = "aclk_mst\0aclk_slv\0aclk_dbi\0pclk\0aux\0pipe"; + device_type = "pci"; + interrupts = <0x00 0x102 0x04 0x00 0x101 0x04 0x00 0x100 0x04 0x00 0xff 0x04 0x00 0xfe 0x04>; + interrupt-names = "sys\0pmc\0msg\0legacy\0err"; + #interrupt-cells = <0x01>; + interrupt-map-mask = <0x00 0x00 0x00 0x07>; + interrupt-map = <0x00 0x00 0x00 0x01 0x1b9 0x00 0x00 0x00 0x00 0x02 0x1b9 0x01 0x00 0x00 0x00 0x03 0x1b9 0x02 0x00 0x00 0x00 0x04 0x1b9 0x03>; + linux,pci-domain = <0x01>; + num-ib-windows = <0x10>; + num-ob-windows = <0x10>; + num-viewport = <0x08>; + max-link-speed = <0x03>; + msi-map = <0x1000 0x1b6 0x1000 0x1000>; + num-lanes = <0x02>; + phys = <0x1b7>; + phy-names = "pcie-phy"; + power-domains = <0x60 0x22>; + ranges = <0x800 0x00 0xf1000000 0x00 0xf1000000 0x00 0x100000 0x81000000 0x00 0xf1100000 0x00 0xf1100000 0x00 0x100000 0x82000000 0x00 0xf1200000 0x00 0xf1200000 0x00 0xe00000 0xc3000000 0x09 0x40000000 0x09 0x40000000 0x00 0x40000000>; + reg = <0x00 0xfe160000 0x00 0x10000 0x0a 0x40400000 0x00 0x400000>; + reg-names = "pcie-apb\0pcie-dbi"; + resets = <0x02 0x20e 0x02 0x21d>; + reset-names = "pcie\0periph"; + rockchip,pipe-grf = <0x76>; + status = "disabled"; + reset-gpios = <0x10d 0x08 0x00>; + vpcie3v3-supply = <0x1ba>; + phandle = <0x486>; + + legacy-interrupt-controller { + interrupt-controller; + #address-cells = <0x00>; + #interrupt-cells = <0x01>; + interrupt-parent = <0x01>; + interrupts = <0x00 0xff 0x01>; + phandle = <0x1b9>; + }; + }; + + pcie@fe170000 { + compatible = "rockchip,rk3588-pcie\0snps,dw-pcie"; + #address-cells = <0x03>; + #size-cells = <0x02>; + bus-range = <0x20 0x2f>; + clocks = <0x02 0x150 0x02 0x155 0x02 0x14b 0x02 0x15b 0x02 0x160 0x02 0x2c4>; + clock-names = "aclk_mst\0aclk_slv\0aclk_dbi\0pclk\0aux\0pipe"; + device_type = "pci"; + interrupts = <0x00 0xf3 0x04 0x00 0xf2 0x04 0x00 0xf1 0x04 0x00 0xf0 0x04 0x00 0xef 0x04>; + interrupt-names = "sys\0pmc\0msg\0legacy\0err"; + #interrupt-cells = <0x01>; + interrupt-map-mask = <0x00 0x00 0x00 0x07>; + interrupt-map = <0x00 0x00 0x00 0x01 0x1bb 0x00 0x00 0x00 0x00 0x02 0x1bb 0x01 0x00 0x00 0x00 0x03 0x1bb 0x02 0x00 0x00 0x00 0x04 0x1bb 0x03>; + linux,pci-domain = <0x02>; + num-ib-windows = <0x08>; + num-ob-windows = <0x08>; + num-viewport = <0x04>; + max-link-speed = <0x02>; + msi-map = <0x2000 0x106 0x2000 0x1000>; + num-lanes = <0x01>; + phys = <0x1bc 0x02>; + phy-names = "pcie-phy"; + ranges = <0x800 0x00 0xf2000000 0x00 0xf2000000 0x00 0x100000 0x81000000 0x00 0xf2100000 0x00 0xf2100000 0x00 0x100000 0x82000000 0x00 0xf2200000 0x00 0xf2200000 0x00 0xe00000 0xc3000000 0x09 0x80000000 0x09 0x80000000 0x00 0x40000000>; + reg = <0x00 0xfe170000 0x00 0x10000 0x0a 0x40800000 0x00 0x400000>; + reg-names = "pcie-apb\0pcie-dbi"; + resets = <0x02 0x20f 0x02 0x21e>; + reset-names = "pcie\0periph"; + rockchip,pipe-grf = <0x76>; + status = "disabled"; + phandle = <0x487>; + + legacy-interrupt-controller { + interrupt-controller; + #address-cells = <0x00>; + #interrupt-cells = <0x01>; + interrupt-parent = <0x01>; + interrupts = <0x00 0xf0 0x01>; + phandle = <0x1bb>; + }; + }; + + uio@fe1b0000 { + compatible = "rockchip,uio-gmac"; + reg = <0x00 0xfe1b0000 0x00 0x10000>; + rockchip,ethernet = <0x1bd>; + status = "disabled"; + phandle = <0x488>; + }; + + ethernet@fe1b0000 { + compatible = "rockchip,rk3588-gmac\0snps,dwmac-4.20a"; + reg = <0x00 0xfe1b0000 0x00 0x10000>; + interrupts = <0x00 0xe3 0x04 0x00 0xe2 0x04>; + interrupt-names = "macirq\0eth_wake_irq"; + rockchip,grf = <0xc8>; + rockchip,php_grf = <0x76>; + clocks = <0x02 0x144 0x02 0x145 0x02 0x167 0x02 0x16c 0x02 0x142>; + clock-names = "stmmaceth\0clk_mac_ref\0pclk_mac\0aclk_mac\0ptp_ref"; + resets = <0x02 0x20a>; + reset-names = "stmmaceth"; + power-domains = <0x60 0x21>; + snps,mixed-burst; + snps,tso; + snps,axi-config = <0x1be>; + snps,mtl-rx-config = <0x1bf>; + snps,mtl-tx-config = <0x1c0>; + status = "okay"; + phy-mode = "rgmii-rxid"; + clock_in_out = "output"; + snps,reset-gpio = <0x10d 0x02 0x01>; + snps,reset-active-low; + snps,reset-delays-us = <0x00 0x4e20 0x186a0>; + pinctrl-names = "default"; + pinctrl-0 = <0x1c1 0x1c2 0x1c3 0x1c4 0x1c5>; + tx_delay = <0x31>; + phy-handle = <0x1c6>; + phandle = <0x1bd>; + + mdio { + compatible = "snps,dwmac-mdio"; + #address-cells = <0x01>; + #size-cells = <0x00>; + phandle = <0x489>; + + phy@1 { + compatible = "ethernet-phy-ieee802.3-c22"; + reg = <0x01>; + phandle = <0x1c6>; + }; + }; + + stmmac-axi-config { + snps,wr_osr_lmt = <0x04>; + snps,rd_osr_lmt = <0x08>; + snps,blen = <0x00 0x00 0x00 0x00 0x10 0x08 0x04>; + phandle = <0x1be>; + }; + + rx-queues-config { + snps,rx-queues-to-use = <0x01>; + phandle = <0x1bf>; + + queue0 { + }; + }; + + tx-queues-config { + snps,tx-queues-to-use = <0x01>; + phandle = <0x1c0>; + + queue0 { + }; + }; + }; + + sata@fe220000 { + compatible = "rockchip,rk-ahci\0snps,dwc-ahci"; + reg = <0x00 0xfe220000 0x00 0x1000>; + clocks = <0x02 0x172 0x02 0x16f 0x02 0x175 0x02 0x164 0x02 0x17f>; + clock-names = "sata\0pmalive\0rxoob\0ref\0asic"; + interrupts = <0x00 0x112 0x04>; + interrupt-names = "hostc"; + phys = <0x1bc 0x01>; + phy-names = "sata-phy"; + ports-implemented = <0x01>; + status = "disabled"; + phandle = <0x48a>; + }; + + phy@fed70000 { + compatible = "rockchip,rk3588-hdptx-phy"; + reg = <0x00 0xfed70000 0x00 0x2000>; + clocks = <0x02 0x2b5 0x02 0x268>; + clock-names = "ref\0apb"; + resets = <0x02 0x486 0x02 0xc003f 0x02 0xc0040 0x02 0xc0041>; + reset-names = "apb\0init\0cmn\0lane"; + rockchip,grf = <0x1c7>; + #phy-cells = <0x00>; + status = "disabled"; + phandle = <0x1af>; + }; + + hdmiphy@fed70000 { + compatible = "rockchip,rk3588-hdptx-phy-hdmi"; + reg = <0x00 0xfed70000 0x00 0x2000>; + clocks = <0x02 0x2b5 0x02 0x268>; + clock-names = "ref\0apb"; + resets = <0x02 0x491 0x02 0x486 0x02 0xc003f 0x02 0xc0040 0x02 0xc0041 0x02 0x48f 0x02 0x490>; + reset-names = "phy\0apb\0init\0cmn\0lane\0ropll\0lcpll"; + rockchip,grf = <0x1c7>; + #phy-cells = <0x00>; + status = "disabled"; + phandle = <0x1ac>; + + clk-port { + #clock-cells = <0x00>; + status = "okay"; + phandle = <0x36>; + }; + }; + + phy@fed90000 { + compatible = "rockchip,rk3588-usbdp-phy"; + reg = <0x00 0xfed90000 0x00 0x10000>; + rockchip,u2phy-grf = <0x1c8>; + rockchip,usb-grf = <0x74>; + rockchip,usbdpphy-grf = <0x1c9>; + rockchip,vo-grf = <0xf5>; + clocks = <0x02 0x2b6 0x02 0x280 0x02 0x26a 0x1ca>; + clock-names = "refclk\0immortal\0pclk\0utmi"; + resets = <0x02 0x2f 0x02 0x30 0x02 0x31 0x02 0x32 0x02 0x484>; + reset-names = "init\0cmn\0lane\0pcs_apb\0pma_apb"; + status = "okay"; + rockchip,dp-lane-mux = <0x02 0x03>; + phandle = <0x48b>; + + dp-port { + #phy-cells = <0x00>; + status = "okay"; + phandle = <0x1a5>; + }; + + u3-port { + #phy-cells = <0x00>; + status = "okay"; + phandle = <0x1a4>; + }; + }; + + phy@fee10000 { + compatible = "rockchip,rk3588-naneng-combphy"; + reg = <0x00 0xfee10000 0x00 0x100>; + #phy-cells = <0x01>; + clocks = <0x02 0x2be 0x02 0x186 0x02 0x166>; + clock-names = "refclk\0apbclk\0phpclk"; + assigned-clocks = <0x02 0x2be>; + assigned-clock-rates = <0x5f5e100>; + resets = <0x02 0x20006 0x02 0x4d7>; + reset-names = "combphy-apb\0combphy"; + rockchip,pipe-grf = <0x76>; + rockchip,pipe-phy-grf = <0x1cb>; + rockchip,pcie1ln-sel-bits = <0x100 0x00 0x00 0x00>; + status = "disabled"; + phandle = <0x1bc>; + }; + + phy@fee80000 { + compatible = "rockchip,rk3588-pcie3-phy"; + reg = <0x00 0xfee80000 0x00 0x20000>; + #phy-cells = <0x00>; + clocks = <0x02 0x188>; + clock-names = "pclk"; + resets = <0x02 0x2000a>; + reset-names = "phy"; + rockchip,pipe-grf = <0x76>; + rockchip,phy-grf = <0x1cc>; + status = "okay"; + rockchip,pcie30-phymode = <0x01>; + phandle = <0x1b7>; + }; + + test-power { + status = "okay"; + }; + + vcc12v-dcin { + compatible = "regulator-fixed"; + regulator-name = "vcc12v_dcin"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <0xb71b00>; + regulator-max-microvolt = <0xb71b00>; + phandle = <0x1cd>; + }; + + vcc5v0-sys { + compatible = "regulator-fixed"; + regulator-name = "vcc5v0_sys"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <0x4c4b40>; + regulator-max-microvolt = <0x4c4b40>; + vin-supply = <0x1cd>; + phandle = <0x78>; + }; + + vcc5v0-usbdcin { + compatible = "regulator-fixed"; + regulator-name = "vcc5v0_usbdcin"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <0x4c4b40>; + regulator-max-microvolt = <0x4c4b40>; + vin-supply = <0x1cd>; + phandle = <0x48c>; + }; + + vcc5v0-usb { + compatible = "regulator-fixed"; + regulator-name = "vcc5v0_usb"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <0x4c4b40>; + regulator-max-microvolt = <0x4c4b40>; + vin-supply = <0x1cd>; + phandle = <0x1dd>; + }; + + vcc-1v1-nldo-s3 { + compatible = "regulator-fixed"; + regulator-name = "vcc_1v1_nldo_s3"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <0x10c8e0>; + regulator-max-microvolt = <0x10c8e0>; + vin-supply = <0x78>; + phandle = <0x15c>; + }; + + chosen { + bootargs = "earlycon=uart8250,mmio32,0xfeb50000 console=ttyFIQ0 irqchip.gicv3_pseudo_nmi=0 root=PARTLABEL=rootfs rootfstype=ext4 ro rootwait overlayroot=device:dev=PARTLABEL=userdata,fstype=ext4,mkfs=1 coherent_pool=1m systemd.gpt_auto=0 cgroup_enable=memory swapaccount=1 net.ifnames=0 rcupdate.rcu_expedited=1 rcu_nocbs=all"; + phandle = <0x48d>; + }; + + cspmu@fd10c000 { + compatible = "rockchip,cspmu"; + reg = <0x00 0xfd10c000 0x00 0x1000 0x00 0xfd10d000 0x00 0x1000 0x00 0xfd10e000 0x00 0x1000 0x00 0xfd10f000 0x00 0x1000 0x00 0xfd12c000 0x00 0x1000 0x00 0xfd12d000 0x00 0x1000 0x00 0xfd12e000 0x00 0x1000 0x00 0xfd12f000 0x00 0x1000>; + phandle = <0x48e>; + }; + + debug@fd104000 { + compatible = "rockchip,debug"; + reg = <0x00 0xfd104000 0x00 0x1000 0x00 0xfd105000 0x00 0x1000 0x00 0xfd106000 0x00 0x1000 0x00 0xfd107000 0x00 0x1000 0x00 0xfd124000 0x00 0x1000 0x00 0xfd125000 0x00 0x1000 0x00 0xfd126000 0x00 0x1000 0x00 0xfd127000 0x00 0x1000>; + phandle = <0x48f>; + }; + + fiq-debugger { + compatible = "rockchip,fiq-debugger"; + rockchip,serial-id = <0x02>; + rockchip,wake-irq = <0x00>; + rockchip,irq-mode-enable = <0x01>; + rockchip,baudrate = <0x1c200>; + interrupts = <0x00 0x1a7 0x08>; + pinctrl-names = "default"; + pinctrl-0 = <0x1ce>; + status = "okay"; + phandle = <0x490>; + }; + + minidump { + compatible = "rockchip,minidump"; + smem-region = <0x1cf>; + minidump-region = <0x1d0>; + status = "disabled"; + phandle = <0x491>; + }; + + reserved-memory { + #address-cells = <0x02>; + #size-cells = <0x02>; + ranges; + + cma { + compatible = "shared-dma-pool"; + reusable; + size = <0x00 0x800000>; + linux,cma-default; + reg = <0x00 0x10000000 0x00 0x10000000>; + }; + + drm-logo@00000000 { + compatible = "rockchip,drm-logo"; + reg = <0x00 0x00 0x00 0x00>; + phandle = <0x37>; + }; + + drm-cubic-lut@00000000 { + compatible = "rockchip,drm-cubic-lut"; + reg = <0x00 0x00 0x00 0x00>; + phandle = <0x492>; + }; + + ramoops@110000 { + compatible = "ramoops"; + reg = <0x00 0x110000 0x00 0xe0000>; + boot-log-size = <0x8000>; + boot-log-count = <0x01>; + console-size = <0x80000>; + pmsg-size = <0x30000>; + ftrace-size = <0x00>; + record-size = <0x14000>; + phandle = <0x493>; + }; + + minidump-smem@1f0000 { + reg = <0x00 0x1f0000 0x00 0x100>; + no-map; + status = "disabled"; + phandle = <0x1cf>; + }; + + minidump-mem@c000000 { + reg = <0x00 0xc000000 0x00 0x2000000>; + no-map; + status = "disabled"; + phandle = <0x1d0>; + }; + }; + + pcie-essd { + compatible = "regulator-fixed"; + regulator-name = "pcie_essd"; + regulator-min-microvolt = <0x2625a0>; + regulator-max-microvolt = <0x2625a0>; + enable-active-high; + gpios = <0x181 0x0f 0x00>; + startup-delay-us = <0x1388>; + vin-supply = <0x1cd>; + status = "disabled"; + phandle = <0x1ba>; + }; + + pcie-clk1 { + compatible = "regulator-fixed"; + regulator-name = "pcie_clk1"; + regulator-boot-on; + regulator-always-on; + gpios = <0x181 0x15 0x01>; + vin-supply = <0x1cd>; + status = "okay"; + phandle = <0x494>; + }; + + pcie-clk2 { + compatible = "regulator-fixed"; + regulator-name = "pcie_clk2"; + regulator-boot-on; + regulator-always-on; + gpios = <0x181 0x16 0x01>; + status = "okay"; + phandle = <0x495>; + }; + + pcie-clk3 { + compatible = "regulator-fixed"; + regulator-name = "pcie_clk3"; + regulator-boot-on; + regulator-always-on; + gpios = <0xfe 0x09 0x01>; + status = "okay"; + phandle = <0x496>; + }; + + leds { + compatible = "gpio-leds"; + status = "okay"; + phandle = <0x497>; + + power { + label = ":power"; + linux,default-trigger = "ir-power-click"; + default-state = "on"; + gpios = <0x7b 0x15 0x00>; + status = "disabled"; + phandle = <0x498>; + }; + + user { + label = ":user"; + linux,default-trigger = "ir-user-click"; + default-state = "off"; + gpios = <0x182 0x03 0x00>; + phandle = <0x499>; + }; + }; + + bt-sco { + status = "disabled"; + compatible = "delta,dfbmcs320"; + #sound-dai-cells = <0x01>; + phandle = <0x1d2>; + }; + + bt-sound { + status = "disabled"; + compatible = "simple-audio-card"; + simple-audio-card,format = "dsp_a"; + simple-audio-card,bitclock-inversion = <0x00>; + simple-audio-card,mclk-fs = <0x100>; + simple-audio-card,name = "rockchip,bt"; + phandle = <0x49a>; + + simple-audio-card,cpu { + sound-dai = <0x1d1>; + }; + + simple-audio-card,codec { + sound-dai = <0x1d2 0x01>; + }; + }; + + hdmi0-sound { + status = "okay"; + compatible = "rockchip,hdmi"; + rockchip,mclk-fs = <0x80>; + rockchip,card-name = "rockchip-hdmi0"; + rockchip,cpu = <0x1d3>; + rockchip,codec = <0x1d4>; + rockchip,jack-det; + phandle = <0x49b>; + }; + + dp0-sound { + status = "disabled"; + compatible = "rockchip,hdmi"; + rockchip,card-name = "rockchip-dp0"; + rockchip,mclk-fs = <0x200>; + rockchip,cpu = <0x1d5>; + rockchip,codec = <0x1d6 0x01>; + rockchip,jack-det; + phandle = <0x49c>; + }; + + spdif-tx1-dc { + status = "disabled"; + compatible = "linux,spdif-dit"; + #sound-dai-cells = <0x00>; + phandle = <0x1d8>; + }; + + spdif-tx1-sound { + status = "disabled"; + compatible = "simple-audio-card"; + simple-audio-card,mclk-fs = <0x80>; + simple-audio-card,name = "rockchip,spdif-tx1"; + phandle = <0x49d>; + + simple-audio-card,cpu { + sound-dai = <0x1d7>; + }; + + simple-audio-card,codec { + sound-dai = <0x1d8>; + }; + }; + + adc-keys { + status = "okay"; + compatible = "adc-keys"; + io-channels = <0x1d9 0x01>; + io-channel-names = "buttons"; + keyup-threshold-microvolt = <0x1b7740>; + poll-interval = <0x64>; + phandle = <0x49e>; + + recovery-key { + label = "F12"; + linux,code = <0x58>; + press-threshold-microvolt = <0x4268>; + }; + }; + + es8388-sound { + status = "okay"; + compatible = "firefly,multicodecs-card"; + rockchip,card-name = "rockchip-es8388"; + hp-det-gpio = <0x79 0x13 0x00>; + hp-con-gpio = <0x182 0x0b 0x00>; + linein-type = <0x01>; + rockchip,format = "i2s"; + rockchip,mclk-fs = <0x180>; + rockchip,cpu = <0x1da>; + rockchip,codec = <0x1db>; + rockchip,audio-routing = "Headphone\0LOUT1\0Headphone\0ROUT1\0Speaker\0LOUT2\0Speaker\0ROUT2\0Headphone\0Headphone Power\0Headphone\0Headphone Power\0LINPUT2\0Main Mic\0RINPUT2\0Main Mic\0LINPUT1\0Headset Mic\0RINPUT1\0Headset Mic"; + pinctrl-names = "default"; + pinctrl-0 = <0x1dc>; + firefly,not-use-dapm; + phandle = <0x49f>; + }; + + vcc5v0-host { + compatible = "regulator-fixed"; + regulator-name = "vcc5v0_host"; + regulator-boot-on; + regulator-always-on; + regulator-min-microvolt = <0x4c4b40>; + regulator-max-microvolt = <0x4c4b40>; + enable-active-high; + gpio = <0x182 0x02 0x00>; + vin-supply = <0x1dd>; + status = "okay"; + phandle = <0x75>; + }; + + vcc-hub-reset-regulator { + compatible = "regulator-fixed"; + regulator-name = "vcc_hub_reset"; + regulator-boot-on; + regulator-always-on; + enable-active-high; + status = "disabled"; + gpio = <0x182 0x04 0x00>; + phandle = <0x4a0>; + }; + + vbus5v0-typec-pwr-en-regulator { + compatible = "regulator-fixed"; + regulator-name = "vbus5v0_typec_pwr_en"; + enable-active-high; + status = "disabled"; + gpio = <0x182 0x0c 0x00>; + phandle = <0x17c>; + }; + + vcc-hub3-reset-regulator { + compatible = "regulator-fixed"; + regulator-name = "vcc_hub3_reset"; + regulator-always-on; + enable-active-high; + status = "disabled"; + gpio = <0x182 0x06 0x00>; + phandle = <0x4a1>; + }; + + vcc5v0-host3 { + compatible = "regulator-fixed"; + regulator-name = "vcc5v0_host3"; + regulator-boot-on; + regulator-always-on; + regulator-min-microvolt = <0x4c4b40>; + regulator-max-microvolt = <0x4c4b40>; + enable-active-high; + gpio = <0x182 0x07 0x00>; + vin-supply = <0x1dd>; + status = "disabled"; + phandle = <0x4a2>; + }; + + vcc-sata-pwr-en-regulator { + compatible = "regulator-fixed"; + regulator-name = "vcc_sata_pwr_en"; + regulator-boot-on; + regulator-always-on; + enable-active-high; + status = "okay"; + gpio = <0x182 0x0c 0x00>; + regulator-min-microvolt = <0x325aa0>; + regulator-max-microvolt = <0x325aa0>; + startup-delay-us = <0x1388>; + vin-supply = <0x1cd>; + phandle = <0x4a3>; + }; + + vcc-fan-pwr-en-regulator { + compatible = "regulator-fixed"; + regulator-name = "vcc_fan_pwr_en"; + regulator-boot-on; + regulator-always-on; + enable-active-high; + status = "disabled"; + gpio = <0x182 0x0b 0x00>; + phandle = <0x4a4>; + }; + + vcc-sdcard-pwr-en-regulator { + compatible = "regulator-fixed"; + regulator-name = "vcc_sdcard_pwr_en"; + regulator-boot-on; + regulator-always-on; + enable-active-high; + gpio = <0xfe 0x07 0x00>; + status = "okay"; + phandle = <0x4a5>; + }; + + vcc3v3-pcie30 { + compatible = "regulator-fixed"; + regulator-name = "vcc3v3_pcie30"; + regulator-min-microvolt = <0x325aa0>; + regulator-max-microvolt = <0x325aa0>; + enable-active-high; + gpios = <0x182 0x04 0x00>; + startup-delay-us = <0x1388>; + vin-supply = <0x1cd>; + status = "okay"; + phandle = <0x1b8>; + }; + + pcie30-avdd1v8 { + compatible = "regulator-fixed"; + regulator-name = "pcie30_avdd1v8"; + regulator-boot-on; + regulator-always-on; + regulator-min-microvolt = <0x1b7740>; + regulator-max-microvolt = <0x1b7740>; + vin-supply = <0x1de>; + phandle = <0x4a6>; + }; + + pcie30-avdd0v75 { + compatible = "regulator-fixed"; + regulator-name = "pcie30_avdd0v75"; + regulator-boot-on; + regulator-always-on; + regulator-min-microvolt = <0xb71b0>; + regulator-max-microvolt = <0xb71b0>; + vin-supply = <0x1df>; + phandle = <0x4a7>; + }; + + hdmi1-sound { + status = "disabled"; + compatible = "rockchip,hdmi"; + rockchip,mclk-fs = <0x80>; + rockchip,card-name = "rockchip-hdmi1"; + rockchip,cpu = <0x1e0>; + rockchip,codec = <0x1e1>; + rockchip,jack-det; + phandle = <0x4a8>; + }; + + dp1-sound { + status = "disabled"; + compatible = "rockchip,hdmi"; + rockchip,card-name = "rockchip,dp1"; + rockchip,mclk-fs = <0x200>; + rockchip,cpu = <0x1e2>; + rockchip,codec = <0x1e3 0x01>; + rockchip,jack-det; + phandle = <0x4a9>; + }; + + wireless-bluetooth { + compatible = "bluetooth-platdata"; + clocks = <0x1e4>; + clock-names = "ext_clock"; + uart_rts_gpios = <0xfe 0x02 0x01>; + pinctrl-names = "default\0rts_gpio"; + pinctrl-0 = <0x1e5 0x1e6 0x1e7 0x1e8>; + pinctrl-1 = <0x1e9>; + BT,power_gpio = <0x7b 0x16 0x00>; + BT,wake_gpio = <0x7b 0x15 0x00>; + BT,wake_host_irq = <0x7b 0x00 0x00>; + status = "disabled"; + phandle = <0x4aa>; + }; + + wireless-wlan { + compatible = "wlan-platdata"; + wifi_chip_type = "rtl8822ce"; + pinctrl-names = "default"; + pinctrl-0 = <0x1ea>; + WIFI,host_wake_irq = <0x182 0x0a 0x00>; + status = "okay"; + phandle = <0x4ab>; + }; + + hdmiin-sound { + compatible = "rockchip,hdmi"; + rockchip,mclk-fs = <0x80>; + rockchip,format = "i2s"; + rockchip,bitclock-master = <0x1eb>; + rockchip,frame-master = <0x1eb>; + rockchip,card-name = "rockchip,hdmiin"; + rockchip,cpu = <0x1ec>; + rockchip,codec = <0x1eb 0x00>; + rockchip,jack-det; + phandle = <0x4ac>; + }; + + pwm-fan { + compatible = "pwm-fan"; + #cooling-cells = <0x02>; + fan-supply = <0x78>; + pwms = <0x1ed 0x00 0xc350 0x00>; + cooling-levels = <0x32 0x32 0x64 0x96 0xc8 0xff>; + rockchip,temp-trips = <0xc350 0x01 0xd6d8 0x02 0xea60 0x03 0xfde8 0x04 0x11170 0x05>; + phandle = <0x4ad>; + }; + + mod-sleep-regulator { + compatible = "regulator-fixed"; + regulator-name = "mod_sleep"; + regulator-boot-on; + regulator-always-on; + enable-active-high; + status = "okay"; + gpio = <0x7b 0x15 0x00>; + pinctrl-names = "default"; + pinctrl-0 = <0x1ee>; + phandle = <0x4ae>; + + regulator-state-mem { + regulator-on-in-suspend; + }; + }; + + vcc-hub-regulator { + compatible = "regulator-fixed"; + regulator-name = "vcc_hub"; + regulator-boot-on; + regulator-always-on; + enable-active-high; + status = "okay"; + gpio = <0x182 0x01 0x00>; + phandle = <0x4af>; + }; + + vcc-4g-regulator { + compatible = "regulator-fixed"; + regulator-name = "vcc_4g"; + regulator-boot-on; + regulator-always-on; + enable-active-high; + status = "okay"; + gpio = <0x182 0x00 0x00>; + phandle = <0x4b0>; + }; + + usb-5v { + compatible = "regulator-fixed"; + regulator-name = "usb_5v"; + regulator-boot-on; + regulator-always-on; + enable-active-high; + status = "okay"; + gpio = <0xfe 0x03 0x00>; + pinctrl-names = "default"; + pinctrl-0 = <0x1ef>; + phandle = <0x4b1>; + }; + + cam0-cam1-switch { + compatible = "regulator-fixed"; + regulator-name = "cam0_cam1_switch"; + regulator-min-microvolt = <0x1b7740>; + regulator-max-microvolt = <0x1b7740>; + regulator-boot-on; + regulator-always-on; + status = "okay"; + enable-active-high; + gpio = <0x181 0x11 0x00>; + pinctrl-names = "default"; + pinctrl-0 = <0x1f0>; + phandle = <0x4b2>; + }; + + __symbols__ { + spll = "/clocks/spll"; + xin32k = "/clocks/xin32k"; + xin24m = "/clocks/xin24m"; + hclk_vo1 = "/clocks/hclk_vo1@fd7c08ec"; + aclk_vdpu_low_pre = "/clocks/aclk_vdpu_low_pre@fd7c08b0"; + hclk_vo0 = "/clocks/hclk_vo0@fd7c08dc"; + hclk_usb = "/clocks/hclk_usb@fd7c08a8"; + hclk_nvm = "/clocks/hclk_nvm@fd7c087c"; + aclk_usb = "/clocks/aclk_usb@fd7c08a8"; + hclk_isp1_pre = "/clocks/hclk_isp1_pre@fd7c0868"; + aclk_isp1_pre = "/clocks/aclk_isp1_pre@fd7c0868"; + aclk_rkvdec0_pre = "/clocks/aclk_rkvdec0_pre@fd7c08a0"; + hclk_rkvdec0_pre = "/clocks/hclk_rkvdec0_pre@fd7c08a0"; + aclk_rkvdec1_pre = "/clocks/aclk_rkvdec1_pre@fd7c08a4"; + hclk_rkvdec1_pre = "/clocks/hclk_rkvdec1_pre@fd7c08a4"; + aclk_jpeg_decoder_pre = "/clocks/aclk_jpeg_decoder_pre@fd7c08b0"; + aclk_rkvenc1_pre = "/clocks/aclk_rkvenc1_pre@fd7c08c0"; + hclk_rkvenc1_pre = "/clocks/hclk_rkvenc1_pre@fd7c08c0"; + aclk_hdcp0_pre = "/clocks/aclk_hdcp0_pre@fd7c08dc"; + aclk_hdcp1_pre = "/clocks/aclk_hdcp1_pre@fd7c08ec"; + pclk_av1_pre = "/clocks/pclk_av1_pre@fd7c0910"; + aclk_av1_pre = "/clocks/aclk_av1_pre@fd7c0910"; + hclk_sdio_pre = "/clocks/hclk_sdio_pre@fd7c092c"; + pclk_vo0_grf = "/clocks/pclk_vo0_grf@fd7c08dc"; + pclk_vo1_grf = "/clocks/pclk_vo1_grf@fd7c08ec"; + mclkin_i2s0 = "/clocks/mclkin-i2s0"; + mclkin_i2s1 = "/clocks/mclkin-i2s1"; + mclkin_i2s2 = "/clocks/mclkin-i2s2"; + mclkin_i2s3 = "/clocks/mclkin-i2s3"; + mclkout_i2s0 = "/clocks/mclkout-i2s0@fd58c318"; + mclkout_i2s1 = "/clocks/mclkout-i2s1@fd58c318"; + mclkout_i2s1m1 = "/clocks/mclkout-i2s1@fd58a000"; + mclkout_i2s2 = "/clocks/mclkout-i2s2@fd58c318"; + mclkout_i2s3 = "/clocks/mclkout-i2s3@fd58c318"; + cpu_l0 = "/cpus/cpu@0"; + cpu_l1 = "/cpus/cpu@100"; + cpu_l2 = "/cpus/cpu@200"; + cpu_l3 = "/cpus/cpu@300"; + cpu_b0 = "/cpus/cpu@400"; + cpu_b1 = "/cpus/cpu@500"; + cpu_b2 = "/cpus/cpu@600"; + cpu_b3 = "/cpus/cpu@700"; + CPU_SLEEP = "/cpus/idle-states/cpu-sleep"; + l2_cache_l0 = "/cpus/l2-cache-l0"; + l2_cache_l1 = "/cpus/l2-cache-l1"; + l2_cache_l2 = "/cpus/l2-cache-l2"; + l2_cache_l3 = "/cpus/l2-cache-l3"; + l2_cache_b0 = "/cpus/l2-cache-b0"; + l2_cache_b1 = "/cpus/l2-cache-b1"; + l2_cache_b2 = "/cpus/l2-cache-b2"; + l2_cache_b3 = "/cpus/l2-cache-b3"; + l3_cache = "/cpus/l3-cache"; + cluster0_opp_table = "/cluster0-opp-table"; + cluster1_opp_table = "/cluster1-opp-table"; + cluster2_opp_table = "/cluster2-opp-table"; + arm_pmu = "/arm-pmu"; + csi2_dcphy0 = "/csi2-dcphy0"; + csi2_dcphy1 = "/csi2-dcphy1"; + csi2_dphy0 = "/csi2-dphy0"; + mipidphy0_in_ucam0 = "/csi2-dphy0/ports/port@0/endpoint@0"; + mipidphy0_in_ucam1 = "/csi2-dphy0/ports/port@0/endpoint@1"; + csidphy0_out1 = "/csi2-dphy0/ports/port@1/endpoint@0"; + csidphy0_out = "/csi2-dphy0/ports/port@1/endpoint@0"; + csi2_dphy1 = "/csi2-dphy1"; + csi2_dphy2 = "/csi2-dphy2"; + csi2_dphy3 = "/csi2-dphy3"; + csi2_dphy4 = "/csi2-dphy4"; + csi2_dphy5 = "/csi2-dphy5"; + display_subsystem = "/display-subsystem"; + route_dp0 = "/display-subsystem/route/route-dp0"; + route_dsi0 = "/display-subsystem/route/route-dsi0"; + route_dsi1 = "/display-subsystem/route/route-dsi1"; + route_edp0 = "/display-subsystem/route/route-edp0"; + route_edp1 = "/display-subsystem/route/route-edp1"; + route_hdmi0 = "/display-subsystem/route/route-hdmi0"; + route_rgb = "/display-subsystem/route/route-rgb"; + route_dp1 = "/display-subsystem/route/route-dp1"; + route_hdmi1 = "/display-subsystem/route/route-hdmi1"; + dmc = "/dmc"; + dmc_opp_table = "/dmc-opp-table"; + scmi = "/firmware/scmi"; + scmi_clk = "/firmware/scmi/protocol@14"; + scmi_reset = "/firmware/scmi/protocol@16"; + sdei = "/firmware/sdei"; + optee = "/firmware/optee"; + jpege_ccu = "/jpege-ccu"; + mipi_dcphy1 = "/mipi-dcphy-dummy"; + mipi_dcphy0 = "/mipi-dcphy-dummy"; + mipi0_csi2 = "/mipi0-csi2"; + mipi1_csi2 = "/mipi1-csi2"; + mipi2_csi2 = "/mipi2-csi2"; + mipi2_csi2_input1 = "/mipi2-csi2/ports/port@0/endpoint@0"; + mipi2_csi2_input0 = "/mipi2-csi2/ports/port@0/endpoint@0"; + mipi2_csi2_output1 = "/mipi2-csi2/ports/port@1/endpoint@0"; + mipi2_csi2_output = "/mipi2-csi2/ports/port@1/endpoint@0"; + mipi3_csi2 = "/mipi3-csi2"; + mipi4_csi2 = "/mipi4-csi2"; + mipi5_csi2 = "/mipi5-csi2"; + mpp_srv = "/mpp-srv"; + rkcif_dvp = "/rkcif-dvp"; + rkcif_dvp_sditf = "/rkcif-dvp-sditf"; + rkcif_mipi_lvds = "/rkcif-mipi-lvds"; + rkcif_mipi_lvds_sditf = "/rkcif-mipi-lvds-sditf"; + rkcif_mipi_lvds_sditf_vir1 = "/rkcif-mipi-lvds-sditf-vir1"; + rkcif_mipi_lvds_sditf_vir2 = "/rkcif-mipi-lvds-sditf-vir2"; + rkcif_mipi_lvds_sditf_vir3 = "/rkcif-mipi-lvds-sditf-vir3"; + rkcif_mipi_lvds1 = "/rkcif-mipi-lvds1"; + rkcif_mipi_lvds1_sditf = "/rkcif-mipi-lvds1-sditf"; + rkcif_mipi_lvds1_sditf_vir1 = "/rkcif-mipi-lvds1-sditf-vir1"; + rkcif_mipi_lvds1_sditf_vir2 = "/rkcif-mipi-lvds1-sditf-vir2"; + rkcif_mipi_lvds1_sditf_vir3 = "/rkcif-mipi-lvds1-sditf-vir3"; + rkcif_mipi_lvds2 = "/rkcif-mipi-lvds2"; + cif_mipi2_in1 = "/rkcif-mipi-lvds2/port/endpoint"; + cif_mipi2_in0 = "/rkcif-mipi-lvds2/port/endpoint"; + rkcif_mipi_lvds2_sditf = "/rkcif-mipi-lvds2-sditf"; + mipi2_lvds2_sditf = "/rkcif-mipi-lvds2-sditf/port/endpoint"; + rkcif_mipi_lvds2_sditf_vir1 = "/rkcif-mipi-lvds2-sditf-vir1"; + rkcif_mipi_lvds2_sditf_vir2 = "/rkcif-mipi-lvds2-sditf-vir2"; + rkcif_mipi_lvds2_sditf_vir3 = "/rkcif-mipi-lvds2-sditf-vir3"; + rkcif_mipi_lvds3 = "/rkcif-mipi-lvds3"; + rkcif_mipi_lvds3_sditf = "/rkcif-mipi-lvds3-sditf"; + rkcif_mipi_lvds3_sditf_vir1 = "/rkcif-mipi-lvds3-sditf-vir1"; + rkcif_mipi_lvds3_sditf_vir2 = "/rkcif-mipi-lvds3-sditf-vir2"; + rkcif_mipi_lvds3_sditf_vir3 = "/rkcif-mipi-lvds3-sditf-vir3"; + rkisp0_vir0 = "/rkisp0-vir0"; + rkisp0_vir1 = "/rkisp0-vir1"; + rkisp0_vir2 = "/rkisp0-vir2"; + isp0_vir2 = "/rkisp0-vir2/port/endpoint@0"; + rkisp0_vir3 = "/rkisp0-vir3"; + rkisp1_vir0 = "/rkisp1-vir0"; + rkisp1_vir1 = "/rkisp1-vir1"; + rkisp1_vir2 = "/rkisp1-vir2"; + rkisp1_vir3 = "/rkisp1-vir3"; + rkispp0_vir0 = "/rkispp0-vir0"; + rkispp1_vir0 = "/rkispp1-vir0"; + rkvenc_ccu = "/rkvenc-ccu"; + rkvtunnel = "/rkvtunnel"; + rockchip_suspend = "/rockchip-suspend"; + rockchip_system_monitor = "/rockchip-system-monitor"; + thermal_zones = "/thermal-zones"; + soc_thermal = "/thermal-zones/soc-thermal"; + threshold = "/thermal-zones/soc-thermal/trips/trip-point-0"; + target = "/thermal-zones/soc-thermal/trips/trip-point-1"; + soc_crit = "/thermal-zones/soc-thermal/trips/soc-crit"; + bigcore0_thermal = "/thermal-zones/bigcore0-thermal"; + bigcore1_thermal = "/thermal-zones/bigcore1-thermal"; + little_core_thermal = "/thermal-zones/littlecore-thermal"; + center_thermal = "/thermal-zones/center-thermal"; + gpu_thermal = "/thermal-zones/gpu-thermal"; + npu_thermal = "/thermal-zones/npu-thermal"; + scmi_shmem = "/sram@10f000/sram@0"; + gpu = "/gpu@fb000000"; + gpu_opp_table = "/gpu-opp-table"; + usbdrd3_0 = "/usbdrd3_0"; + usbdrd_dwc3_0 = "/usbdrd3_0/usb@fc000000"; + dwc3_0_role_switch = "/usbdrd3_0/usb@fc000000/port/endpoint@0"; + usb_host0_ehci = "/usb@fc800000"; + usb_host0_ohci = "/usb@fc840000"; + usb_host1_ehci = "/usb@fc880000"; + usb_host1_ohci = "/usb@fc8c0000"; + mmu600_pcie = "/iommu@fc900000"; + mmu600_php = "/iommu@fcb00000"; + usbhost3_0 = "/usbhost3_0"; + usbhost_dwc3_0 = "/usbhost3_0/usb@fcd00000"; + pmu0_grf = "/syscon@fd588000"; + reboot_mode = "/syscon@fd588000/reboot-mode"; + pmu1_grf = "/syscon@fd58a000"; + sys_grf = "/syscon@fd58c000"; + rgb = "/syscon@fd58c000/rgb"; + rgb_in_vp3 = "/syscon@fd58c000/rgb/ports/port@0/endpoint@2"; + bigcore0_grf = "/syscon@fd590000"; + bigcore1_grf = "/syscon@fd592000"; + litcore_grf = "/syscon@fd594000"; + dsu_grf = "/syscon@fd598000"; + gpu_grf = "/syscon@fd5a0000"; + npu_grf = "/syscon@fd5a2000"; + vop_grf = "/syscon@fd5a4000"; + vo0_grf = "/syscon@fd5a6000"; + vo1_grf = "/syscon@fd5a8000"; + usb_grf = "/syscon@fd5ac000"; + php_grf = "/syscon@fd5b0000"; + mipidphy0_grf = "/syscon@fd5b4000"; + mipidphy1_grf = "/syscon@fd5b5000"; + pipe_phy0_grf = "/syscon@fd5bc000"; + pipe_phy2_grf = "/syscon@fd5c4000"; + usbdpphy0_grf = "/syscon@fd5c8000"; + usb2phy0_grf = "/syscon@fd5d0000"; + u2phy0 = "/syscon@fd5d0000/usb2-phy@0"; + u2phy0_otg = "/syscon@fd5d0000/usb2-phy@0/otg-port"; + usb2phy2_grf = "/syscon@fd5d8000"; + u2phy2 = "/syscon@fd5d8000/usb2-phy@8000"; + u2phy2_host = "/syscon@fd5d8000/usb2-phy@8000/host-port"; + usb2phy3_grf = "/syscon@fd5dc000"; + u2phy3 = "/syscon@fd5dc000/usb2-phy@c000"; + u2phy3_host = "/syscon@fd5dc000/usb2-phy@c000/host-port"; + hdptxphy0_grf = "/syscon@fd5e0000"; + mipidcphy0_grf = "/syscon@fd5e8000"; + mipidcphy1_grf = "/syscon@fd5ec000"; + ioc = "/syscon@fd5f0000"; + cru = "/clock-controller@fd7c0000"; + i2c0 = "/i2c@fd880000"; + vdd_cpu_big0_s0 = "/i2c@fd880000/rk8602@42"; + vdd_cpu_big0_mem_s0 = "/i2c@fd880000/rk8602@42"; + vdd_cpu_big1_s0 = "/i2c@fd880000/rk8603@43"; + vdd_cpu_big1_mem_s0 = "/i2c@fd880000/rk8603@43"; + hym8563 = "/i2c@fd880000/hym8563@51"; + uart0 = "/serial@fd890000"; + pwm0 = "/pwm@fd8b0000"; + pwm1 = "/pwm@fd8b0010"; + pwm2 = "/pwm@fd8b0020"; + pwm3 = "/pwm@fd8b0030"; + pmu = "/power-management@fd8d8000"; + power = "/power-management@fd8d8000/power-controller"; + rknpu = "/npu@fdab0000"; + npu_opp_table = "/npu-opp-table"; + rknpu_mmu = "/iommu@fdab9000"; + vepu = "/vepu@fdb50000"; + vdpu = "/vdpu@fdb50400"; + vdpu_mmu = "/iommu@fdb50800"; + avsd = "/avsd-plus@fdb51000"; + rga3_core0 = "/rga@fdb60000"; + rga3_0_mmu = "/iommu@fdb60f00"; + rga3_core1 = "/rga@fdb70000"; + rga3_1_mmu = "/iommu@fdb70f00"; + rga2 = "/rga@fdb80000"; + jpegd = "/jpegd@fdb90000"; + jpegd_mmu = "/iommu@fdb90480"; + jpege0 = "/jpege-core@fdba0000"; + jpege0_mmu = "/iommu@fdba0800"; + jpege1 = "/jpege-core@fdba4000"; + jpege1_mmu = "/iommu@fdba4800"; + jpege2 = "/jpege-core@fdba8000"; + jpege2_mmu = "/iommu@fdba8800"; + jpege3 = "/jpege-core@fdbac000"; + jpege3_mmu = "/iommu@fdbac800"; + iep = "/iep@fdbb0000"; + iep_mmu = "/iommu@fdbb0800"; + rkvenc0 = "/rkvenc-core@fdbd0000"; + rkvenc0_mmu = "/iommu@fdbdf000"; + rkvenc1 = "/rkvenc-core@fdbe0000"; + rkvenc1_mmu = "/iommu@fdbef000"; + venc_opp_table = "/venc-opp-table"; + rkvdec_ccu = "/rkvdec-ccu@fdc30000"; + rkvdec0 = "/rkvdec-core@fdc38000"; + rkvdec0_mmu = "/iommu@fdc38700"; + rkvdec1 = "/rkvdec-core@fdc48000"; + rkvdec1_mmu = "/iommu@fdc48700"; + av1d = "/av1d@fdc70000"; + av1d_mmu = "/iommu@fdca0000"; + rkisp_unite = "/rkisp-unite@fdcb0000"; + rkisp0 = "/rkisp@fdcb0000"; + rkisp_unite_mmu = "/rkisp-unite-mmu@fdcb7f00"; + isp0_mmu = "/iommu@fdcb7f00"; + rkisp1 = "/rkisp@fdcc0000"; + isp1_mmu = "/iommu@fdcc7f00"; + rkispp0 = "/rkispp@fdcd0000"; + fec0_mmu = "/iommu@fdcd0f00"; + rkispp1 = "/rkispp@fdcd8000"; + fec1_mmu = "/iommu@fdcd8f00"; + rkcif = "/rkcif@fdce0000"; + rkcif_mmu = "/iommu@fdce0800"; + mipi0_csi2_hw = "/mipi0-csi2-hw@fdd10000"; + mipi1_csi2_hw = "/mipi1-csi2-hw@fdd20000"; + mipi2_csi2_hw = "/mipi2-csi2-hw@fdd30000"; + mipi3_csi2_hw = "/mipi3-csi2-hw@fdd40000"; + mipi4_csi2_hw = "/mipi4-csi2-hw@fdd50000"; + mipi5_csi2_hw = "/mipi5-csi2-hw@fdd60000"; + vop = "/vop@fdd90000"; + vop_out = "/vop@fdd90000/ports"; + vp0 = "/vop@fdd90000/ports/port@0"; + vp0_out_dp0 = "/vop@fdd90000/ports/port@0/endpoint@0"; + vp0_out_edp0 = "/vop@fdd90000/ports/port@0/endpoint@1"; + vp0_out_hdmi0 = "/vop@fdd90000/ports/port@0/endpoint@2"; + vp0_out_dp1 = "/vop@fdd90000/ports/port@0/endpoint@3"; + vp0_out_edp1 = "/vop@fdd90000/ports/port@0/endpoint@4"; + vp0_out_hdmi1 = "/vop@fdd90000/ports/port@0/endpoint@5"; + vp1 = "/vop@fdd90000/ports/port@1"; + vp1_out_dp0 = "/vop@fdd90000/ports/port@1/endpoint@0"; + vp1_out_edp0 = "/vop@fdd90000/ports/port@1/endpoint@1"; + vp1_out_hdmi0 = "/vop@fdd90000/ports/port@1/endpoint@2"; + vp1_out_dp1 = "/vop@fdd90000/ports/port@1/endpoint@3"; + vp1_out_edp1 = "/vop@fdd90000/ports/port@1/endpoint@4"; + vp1_out_hdmi1 = "/vop@fdd90000/ports/port@1/endpoint@5"; + vp2 = "/vop@fdd90000/ports/port@2"; + vp2_out_dp0 = "/vop@fdd90000/ports/port@2/endpoint@0"; + vp2_out_edp0 = "/vop@fdd90000/ports/port@2/endpoint@1"; + vp2_out_hdmi0 = "/vop@fdd90000/ports/port@2/endpoint@2"; + vp2_out_dsi0 = "/vop@fdd90000/ports/port@2/endpoint@3"; + vp2_out_dsi1 = "/vop@fdd90000/ports/port@2/endpoint@4"; + vp2_out_dp1 = "/vop@fdd90000/ports/port@2/endpoint@5"; + vp2_out_edp1 = "/vop@fdd90000/ports/port@2/endpoint@6"; + vp2_out_hdmi1 = "/vop@fdd90000/ports/port@2/endpoint@7"; + vp3 = "/vop@fdd90000/ports/port@3"; + vp3_out_dsi0 = "/vop@fdd90000/ports/port@3/endpoint@0"; + vp3_out_dsi1 = "/vop@fdd90000/ports/port@3/endpoint@1"; + vp3_out_rgb = "/vop@fdd90000/ports/port@3/endpoint@2"; + vop_mmu = "/iommu@fdd97e00"; + spdif_tx2 = "/spdif-tx@fddb0000"; + i2s4_8ch = "/i2s@fddc0000"; + spdif_tx3 = "/spdif-tx@fdde0000"; + i2s5_8ch = "/i2s@fddf0000"; + i2s9_8ch = "/i2s@fddfc000"; + spdif_rx0 = "/spdif-rx@fde08000"; + dsi0 = "/dsi@fde20000"; + dsi0_in = "/dsi@fde20000/ports/port@0"; + dsi0_in_vp2 = "/dsi@fde20000/ports/port@0/endpoint@0"; + dsi0_in_vp3 = "/dsi@fde20000/ports/port@0/endpoint@1"; + dsi1 = "/dsi@fde30000"; + dsi1_in = "/dsi@fde30000/ports/port@0"; + dsi1_in_vp2 = "/dsi@fde30000/ports/port@0/endpoint@0"; + dsi1_in_vp3 = "/dsi@fde30000/ports/port@0/endpoint@1"; + hdcp0 = "/hdcp@fde40000"; + dp0 = "/dp@fde50000"; + dp0_in_vp0 = "/dp@fde50000/ports/port@0/endpoint@0"; + dp0_in_vp1 = "/dp@fde50000/ports/port@0/endpoint@1"; + dp0_in_vp2 = "/dp@fde50000/ports/port@0/endpoint@2"; + dp0_out = "/dp@fde50000/ports/port@1/endpoint"; + hdcp1 = "/hdcp@fde70000"; + hdmi0 = "/hdmi@fde80000"; + hdmi0_in = "/hdmi@fde80000/ports/port@0"; + hdmi0_in_vp0 = "/hdmi@fde80000/ports/port@0/endpoint@0"; + hdmi0_in_vp1 = "/hdmi@fde80000/ports/port@0/endpoint@1"; + hdmi0_in_vp2 = "/hdmi@fde80000/ports/port@0/endpoint@2"; + edp0 = "/edp@fdec0000"; + edp0_in_vp0 = "/edp@fdec0000/ports/port@0/endpoint@0"; + edp0_in_vp1 = "/edp@fdec0000/ports/port@0/endpoint@1"; + edp0_in_vp2 = "/edp@fdec0000/ports/port@0/endpoint@2"; + edp0_out = "/edp@fdec0000/ports/port@1/endpoint"; + qos_gpu_m0 = "/qos@fdf35000"; + qos_gpu_m1 = "/qos@fdf35200"; + qos_gpu_m2 = "/qos@fdf35400"; + qos_gpu_m3 = "/qos@fdf35600"; + qos_rga3_1 = "/qos@fdf36000"; + qos_sdio = "/qos@fdf39000"; + qos_sdmmc = "/qos@fdf3d800"; + qos_usb3_1 = "/qos@fdf3e000"; + qos_usb3_0 = "/qos@fdf3e200"; + qos_usb2host_0 = "/qos@fdf3e400"; + qos_usb2host_1 = "/qos@fdf3e600"; + qos_fisheye0 = "/qos@fdf40000"; + qos_fisheye1 = "/qos@fdf40200"; + qos_isp0_mro = "/qos@fdf40400"; + qos_isp0_mwo = "/qos@fdf40500"; + qos_vicap_m0 = "/qos@fdf40600"; + qos_vicap_m1 = "/qos@fdf40800"; + qos_isp1_mwo = "/qos@fdf41000"; + qos_isp1_mro = "/qos@fdf41100"; + qos_rkvenc0_m0ro = "/qos@fdf60000"; + qos_rkvenc0_m1ro = "/qos@fdf60200"; + qos_rkvenc0_m2wo = "/qos@fdf60400"; + qos_rkvenc1_m0ro = "/qos@fdf61000"; + qos_rkvenc1_m1ro = "/qos@fdf61200"; + qos_rkvenc1_m2wo = "/qos@fdf61400"; + qos_rkvdec0 = "/qos@fdf62000"; + qos_rkvdec1 = "/qos@fdf63000"; + qos_av1 = "/qos@fdf64000"; + qos_iep = "/qos@fdf66000"; + qos_jpeg_dec = "/qos@fdf66200"; + qos_jpeg_enc0 = "/qos@fdf66400"; + qos_jpeg_enc1 = "/qos@fdf66600"; + qos_jpeg_enc2 = "/qos@fdf66800"; + qos_jpeg_enc3 = "/qos@fdf66a00"; + qos_rga2_mro = "/qos@fdf66c00"; + qos_rga2_mwo = "/qos@fdf66e00"; + qos_rga3_0 = "/qos@fdf67000"; + qos_vdpu = "/qos@fdf67200"; + qos_npu1 = "/qos@fdf70000"; + qos_npu2 = "/qos@fdf71000"; + qos_npu0_mwr = "/qos@fdf72000"; + qos_npu0_mro = "/qos@fdf72200"; + qos_mcu_npu = "/qos@fdf72400"; + qos_hdcp0 = "/qos@fdf80000"; + qos_hdcp1 = "/qos@fdf81000"; + qos_hdmirx = "/qos@fdf81200"; + qos_vop_m0 = "/qos@fdf82000"; + qos_vop_m1 = "/qos@fdf82200"; + dfi = "/dfi@fe060000"; + pcie2x1l1 = "/pcie@fe180000"; + pcie2x1l1_intc = "/pcie@fe180000/legacy-interrupt-controller"; + pcie2x1l2 = "/pcie@fe190000"; + pcie2x1l2_intc = "/pcie@fe190000/legacy-interrupt-controller"; + gmac_uio1 = "/uio@fe1c0000"; + gmac1 = "/ethernet@fe1c0000"; + mdio1 = "/ethernet@fe1c0000/mdio"; + rgmii_phy1 = "/ethernet@fe1c0000/mdio/phy@1"; + gmac1_stmmac_axi_setup = "/ethernet@fe1c0000/stmmac-axi-config"; + gmac1_mtl_rx_setup = "/ethernet@fe1c0000/rx-queues-config"; + gmac1_mtl_tx_setup = "/ethernet@fe1c0000/tx-queues-config"; + sata0 = "/sata@fe210000"; + sata2 = "/sata@fe230000"; + sfc = "/spi@fe2b0000"; + sdmmc = "/mmc@fe2c0000"; + sdio = "/mmc@fe2d0000"; + sdhci = "/mmc@fe2e0000"; + crypto = "/crypto@fe370000"; + rng = "/rng@fe378000"; + i2s0_8ch = "/i2s@fe470000"; + i2s1_8ch = "/i2s@fe480000"; + i2s2_2ch = "/i2s@fe490000"; + i2s3_2ch = "/i2s@fe4a0000"; + pdm0 = "/pdm@fe4b0000"; + pdm1 = "/pdm@fe4c0000"; + vad = "/vad@fe4d0000"; + spdif_tx0 = "/spdif-tx@fe4e0000"; + spdif_tx1 = "/spdif-tx@fe4f0000"; + acdcdig_dsm = "/codec-digital@fe500000"; + hwlock = "/hwspinlock@fe5a0000"; + gic = "/interrupt-controller@fe600000"; + its0 = "/interrupt-controller@fe600000/msi-controller@fe640000"; + its1 = "/interrupt-controller@fe600000/msi-controller@fe660000"; + dmac0 = "/dma-controller@fea10000"; + dmac1 = "/dma-controller@fea30000"; + can0 = "/can@fea50000"; + can1 = "/can@fea60000"; + can2 = "/can@fea70000"; + hw_decompress = "/decompress@fea80000"; + i2c1 = "/i2c@fea90000"; + vdd_npu_s0 = "/i2c@fea90000/rk8602@42"; + vdd_npu_mem_s0 = "/i2c@fea90000/rk8602@42"; + i2c2 = "/i2c@feaa0000"; + i2c3 = "/i2c@feab0000"; + pca9555 = "/i2c@feab0000/gpio@21"; + i2c4 = "/i2c@feac0000"; + i2c5 = "/i2c@fead0000"; + rktimer = "/timer@feae0000"; + wdt = "/watchdog@feaf0000"; + spi0 = "/spi@feb00000"; + spi1 = "/spi@feb10000"; + spi2 = "/spi@feb20000"; + rk806single = "/spi@feb20000/rk806single@0"; + pinctrl_rk806 = "/spi@feb20000/rk806single@0/pinctrl_rk806"; + rk806_dvs1_null = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs1_null"; + rk806_dvs1_slp = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs1_slp"; + rk806_dvs1_pwrdn = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs1_pwrdn"; + rk806_dvs1_rst = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs1_rst"; + rk806_dvs2_null = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs2_null"; + rk806_dvs2_slp = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs2_slp"; + rk806_dvs2_pwrdn = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs2_pwrdn"; + rk806_dvs2_rst = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs2_rst"; + rk806_dvs2_dvs = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs2_dvs"; + rk806_dvs2_gpio = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs2_gpio"; + rk806_dvs3_null = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs3_null"; + rk806_dvs3_slp = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs3_slp"; + rk806_dvs3_pwrdn = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs3_pwrdn"; + rk806_dvs3_rst = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs3_rst"; + rk806_dvs3_dvs = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs3_dvs"; + rk806_dvs3_gpio = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs3_gpio"; + vdd_gpu_s0 = "/spi@feb20000/rk806single@0/regulators/DCDC_REG1"; + vdd_gpu_mem_s0 = "/spi@feb20000/rk806single@0/regulators/DCDC_REG1"; + vdd_cpu_lit_s0 = "/spi@feb20000/rk806single@0/regulators/DCDC_REG2"; + vdd_cpu_lit_mem_s0 = "/spi@feb20000/rk806single@0/regulators/DCDC_REG2"; + vdd_log_s0 = "/spi@feb20000/rk806single@0/regulators/DCDC_REG3"; + vdd_vdenc_s0 = "/spi@feb20000/rk806single@0/regulators/DCDC_REG4"; + vdd_vdenc_mem_s0 = "/spi@feb20000/rk806single@0/regulators/DCDC_REG4"; + vdd_ddr_s0 = "/spi@feb20000/rk806single@0/regulators/DCDC_REG5"; + vdd2_ddr_s3 = "/spi@feb20000/rk806single@0/regulators/DCDC_REG6"; + vcc_2v0_pldo_s3 = "/spi@feb20000/rk806single@0/regulators/DCDC_REG7"; + vcc_3v3_s3 = "/spi@feb20000/rk806single@0/regulators/DCDC_REG8"; + vddq_ddr_s0 = "/spi@feb20000/rk806single@0/regulators/DCDC_REG9"; + vcc_1v8_s3 = "/spi@feb20000/rk806single@0/regulators/DCDC_REG10"; + avcc_1v8_s0 = "/spi@feb20000/rk806single@0/regulators/PLDO_REG1"; + vcc_1v8_s0 = "/spi@feb20000/rk806single@0/regulators/PLDO_REG2"; + avdd_1v2_s0 = "/spi@feb20000/rk806single@0/regulators/PLDO_REG3"; + vcc_3v3_s0 = "/spi@feb20000/rk806single@0/regulators/PLDO_REG4"; + vccio_sd_s0 = "/spi@feb20000/rk806single@0/regulators/PLDO_REG5"; + pldo6_s3 = "/spi@feb20000/rk806single@0/regulators/PLDO_REG6"; + vdd_0v75_s3 = "/spi@feb20000/rk806single@0/regulators/NLDO_REG1"; + vdd_ddr_pll_s0 = "/spi@feb20000/rk806single@0/regulators/NLDO_REG2"; + avdd_0v75_s0 = "/spi@feb20000/rk806single@0/regulators/NLDO_REG3"; + vdd_0v85_s0 = "/spi@feb20000/rk806single@0/regulators/NLDO_REG4"; + vdd_0v75_s0 = "/spi@feb20000/rk806single@0/regulators/NLDO_REG5"; + spi3 = "/spi@feb30000"; + uart1 = "/serial@feb40000"; + uart2 = "/serial@feb50000"; + uart3 = "/serial@feb60000"; + uart4 = "/serial@feb70000"; + uart5 = "/serial@feb80000"; + uart6 = "/serial@feb90000"; + uart7 = "/serial@feba0000"; + uart8 = "/serial@febb0000"; + uart9 = "/serial@febc0000"; + pwm4 = "/pwm@febd0000"; + pwm5 = "/pwm@febd0010"; + pwm6 = "/pwm@febd0020"; + pwm7 = "/pwm@febd0030"; + pwm8 = "/pwm@febe0000"; + pwm9 = "/pwm@febe0010"; + pwm10 = "/pwm@febe0020"; + pwm11 = "/pwm@febe0030"; + pwm12 = "/pwm@febf0000"; + pwm13 = "/pwm@febf0010"; + pwm14 = "/pwm@febf0020"; + pwm15 = "/pwm@febf0030"; + tsadc = "/tsadc@fec00000"; + saradc = "/saradc@fec10000"; + mailbox0 = "/mailbox@fec60000"; + mailbox1 = "/mailbox@fec70000"; + i2c6 = "/i2c@fec80000"; + es8388 = "/i2c@fec80000/es8388@11"; + usbc0 = "/i2c@fec80000/fusb302@22"; + usbc0_role_sw = "/i2c@fec80000/fusb302@22/ports/port@0/endpoint@0"; + usb_con = "/i2c@fec80000/fusb302@22/connector"; + usbc0_orien_sw = "/i2c@fec80000/fusb302@22/connector/ports/port@0/endpoint"; + dp_altmode_mux = "/i2c@fec80000/fusb302@22/connector/ports/port@1/endpoint"; + XC7160 = "/i2c@fec80000/XC7160b@1b"; + xc7160_out0 = "/i2c@fec80000/XC7160b@1b/port/endpoint"; + imx415 = "/i2c@fec80000/imx415@37"; + imx415_out0 = "/i2c@fec80000/imx415@37/port/endpoint"; + i2c7 = "/i2c@fec90000"; + i2c8 = "/i2c@feca0000"; + spi4 = "/spi@fecb0000"; + otp = "/otp@fecc0000"; + cpu_code = "/otp@fecc0000/cpu-code@2"; + package_serial_number_high = "/otp@fecc0000/package-serial-number-high@5"; + package_serial_number_low = "/otp@fecc0000/package-serial-number-low@6"; + specification_serial_number = "/otp@fecc0000/specification-serial-number@6"; + otp_id = "/otp@fecc0000/id@7"; + otp_cpu_version = "/otp@fecc0000/cpu-version@1c"; + cpub0_leakage = "/otp@fecc0000/cpub0-leakage@17"; + cpub1_leakage = "/otp@fecc0000/cpub1-leakage@18"; + cpul_leakage = "/otp@fecc0000/cpul-leakage@19"; + log_leakage = "/otp@fecc0000/log-leakage@1a"; + gpu_leakage = "/otp@fecc0000/gpu-leakage@1b"; + npu_leakage = "/otp@fecc0000/npu-leakage@28"; + codec_leakage = "/otp@fecc0000/codec-leakage@29"; + cpul_opp_info = "/otp@fecc0000/cpul-opp-info@3d"; + cpub01_opp_info = "/otp@fecc0000/cpub01-opp-info@43"; + cpub23_opp_info = "/otp@fecc0000/cpub23-opp-info@49"; + gpu_opp_info = "/otp@fecc0000/gpu-opp-info@4f"; + npu_opp_info = "/otp@fecc0000/npu-opp-info@55"; + dmc_opp_info = "/otp@fecc0000/dmc-opp-info@5b"; + vop_opp_info = "/otp@fecc0000/vop-opp-info@61"; + venc_opp_info = "/otp@fecc0000/venc-opp-info@67"; + mailbox2 = "/mailbox@fece0000"; + dmac2 = "/dma-controller@fed10000"; + hdptxphy0 = "/phy@fed60000"; + hdptxphy_hdmi0 = "/hdmiphy@fed60000"; + hdptxphy_hdmi_clk0 = "/hdmiphy@fed60000/clk-port"; + usbdp_phy0 = "/phy@fed80000"; + usbdp_phy0_dp = "/phy@fed80000/dp-port"; + usbdp_phy0_u3 = "/phy@fed80000/u3-port"; + usbdp_phy0_orientation_switch = "/phy@fed80000/port/endpoint@0"; + usbdp_phy0_dp_altmode_mux = "/phy@fed80000/port/endpoint@1"; + mipidcphy0 = "/phy@feda0000"; + mipidcphy1 = "/phy@fedb0000"; + csi2_dphy0_hw = "/csi2-dphy0-hw@fedc0000"; + csi2_dphy1_hw = "/csi2-dphy1-hw@fedc8000"; + combphy0_ps = "/phy@fee00000"; + combphy2_psu = "/phy@fee20000"; + syssram = "/sram@ff001000"; + rkvdec0_sram = "/sram@ff001000/rkvdec-sram@0"; + rkvdec1_sram = "/sram@ff001000/rkvdec-sram@78000"; + pinctrl = "/pinctrl"; + gpio0 = "/pinctrl/gpio@fd8a0000"; + gpio1 = "/pinctrl/gpio@fec20000"; + gpio2 = "/pinctrl/gpio@fec30000"; + gpio3 = "/pinctrl/gpio@fec40000"; + gpio4 = "/pinctrl/gpio@fec50000"; + pcfg_pull_up = "/pinctrl/pcfg-pull-up"; + pcfg_pull_down = "/pinctrl/pcfg-pull-down"; + pcfg_pull_none = "/pinctrl/pcfg-pull-none"; + pcfg_pull_none_drv_level_0 = "/pinctrl/pcfg-pull-none-drv-level-0"; + pcfg_pull_none_drv_level_1 = "/pinctrl/pcfg-pull-none-drv-level-1"; + pcfg_pull_none_drv_level_2 = "/pinctrl/pcfg-pull-none-drv-level-2"; + pcfg_pull_none_drv_level_3 = "/pinctrl/pcfg-pull-none-drv-level-3"; + pcfg_pull_none_drv_level_4 = "/pinctrl/pcfg-pull-none-drv-level-4"; + pcfg_pull_none_drv_level_5 = "/pinctrl/pcfg-pull-none-drv-level-5"; + pcfg_pull_none_drv_level_6 = "/pinctrl/pcfg-pull-none-drv-level-6"; + pcfg_pull_up_drv_level_0 = "/pinctrl/pcfg-pull-up-drv-level-0"; + pcfg_pull_up_drv_level_1 = "/pinctrl/pcfg-pull-up-drv-level-1"; + pcfg_pull_up_drv_level_2 = "/pinctrl/pcfg-pull-up-drv-level-2"; + pcfg_pull_up_drv_level_3 = "/pinctrl/pcfg-pull-up-drv-level-3"; + pcfg_pull_up_drv_level_4 = "/pinctrl/pcfg-pull-up-drv-level-4"; + pcfg_pull_up_drv_level_5 = "/pinctrl/pcfg-pull-up-drv-level-5"; + pcfg_pull_up_drv_level_6 = "/pinctrl/pcfg-pull-up-drv-level-6"; + pcfg_pull_down_drv_level_0 = "/pinctrl/pcfg-pull-down-drv-level-0"; + pcfg_pull_down_drv_level_1 = "/pinctrl/pcfg-pull-down-drv-level-1"; + pcfg_pull_down_drv_level_2 = "/pinctrl/pcfg-pull-down-drv-level-2"; + pcfg_pull_down_drv_level_3 = "/pinctrl/pcfg-pull-down-drv-level-3"; + pcfg_pull_down_drv_level_4 = "/pinctrl/pcfg-pull-down-drv-level-4"; + pcfg_pull_down_drv_level_5 = "/pinctrl/pcfg-pull-down-drv-level-5"; + pcfg_pull_down_drv_level_6 = "/pinctrl/pcfg-pull-down-drv-level-6"; + pcfg_pull_up_smt = "/pinctrl/pcfg-pull-up-smt"; + pcfg_pull_down_smt = "/pinctrl/pcfg-pull-down-smt"; + pcfg_pull_none_smt = "/pinctrl/pcfg-pull-none-smt"; + pcfg_pull_none_drv_level_0_smt = "/pinctrl/pcfg-pull-none-drv-level-0-smt"; + pcfg_pull_none_drv_level_1_smt = "/pinctrl/pcfg-pull-none-drv-level-1-smt"; + pcfg_pull_none_drv_level_2_smt = "/pinctrl/pcfg-pull-none-drv-level-2-smt"; + pcfg_pull_none_drv_level_3_smt = "/pinctrl/pcfg-pull-none-drv-level-3-smt"; + pcfg_pull_none_drv_level_4_smt = "/pinctrl/pcfg-pull-none-drv-level-4-smt"; + pcfg_pull_none_drv_level_5_smt = "/pinctrl/pcfg-pull-none-drv-level-5-smt"; + pcfg_pull_none_drv_level_6_smt = "/pinctrl/pcfg-pull-none-drv-level-6-smt"; + pcfg_output_high = "/pinctrl/pcfg-output-high"; + pcfg_output_high_pull_up = "/pinctrl/pcfg-output-high-pull-up"; + pcfg_output_high_pull_down = "/pinctrl/pcfg-output-high-pull-down"; + pcfg_output_high_pull_none = "/pinctrl/pcfg-output-high-pull-none"; + pcfg_output_low = "/pinctrl/pcfg-output-low"; + pcfg_output_low_pull_up = "/pinctrl/pcfg-output-low-pull-up"; + pcfg_output_low_pull_down = "/pinctrl/pcfg-output-low-pull-down"; + pcfg_output_low_pull_none = "/pinctrl/pcfg-output-low-pull-none"; + auddsm_pins = "/pinctrl/auddsm/auddsm-pins"; + bt1120_pins = "/pinctrl/bt1120/bt1120-pins"; + can0m0_pins = "/pinctrl/can0/can0m0-pins"; + can0m1_pins = "/pinctrl/can0/can0m1-pins"; + can1m0_pins = "/pinctrl/can1/can1m0-pins"; + can1m1_pins = "/pinctrl/can1/can1m1-pins"; + can2m0_pins = "/pinctrl/can2/can2m0-pins"; + can2m1_pins = "/pinctrl/can2/can2m1-pins"; + cif_clk = "/pinctrl/cif/cif-clk"; + cif_dvp_clk = "/pinctrl/cif/cif-dvp-clk"; + cif_dvp_bus16 = "/pinctrl/cif/cif-dvp-bus16"; + cif_dvp_bus8 = "/pinctrl/cif/cif-dvp-bus8"; + clk32k_in = "/pinctrl/clk32k/clk32k-in"; + clk32k_out0 = "/pinctrl/clk32k/clk32k-out0"; + clk32k_out1 = "/pinctrl/clk32k/clk32k-out1"; + cpu_pins = "/pinctrl/cpu/cpu-pins"; + ddrphych0_pins = "/pinctrl/ddrphych0/ddrphych0-pins"; + ddrphych1_pins = "/pinctrl/ddrphych1/ddrphych1-pins"; + ddrphych2_pins = "/pinctrl/ddrphych2/ddrphych2-pins"; + ddrphych3_pins = "/pinctrl/ddrphych3/ddrphych3-pins"; + dp0m0_pins = "/pinctrl/dp0/dp0m0-pins"; + dp0m1_pins = "/pinctrl/dp0/dp0m1-pins"; + dp0m2_pins = "/pinctrl/dp0/dp0m2-pins"; + dp1m0_pins = "/pinctrl/dp1/dp1m0-pins"; + dp1m1_pins = "/pinctrl/dp1/dp1m1-pins"; + dp1m2_pins = "/pinctrl/dp1/dp1m2-pins"; + emmc_rstnout = "/pinctrl/emmc/emmc-rstnout"; + emmc_bus8 = "/pinctrl/emmc/emmc-bus8"; + emmc_clk = "/pinctrl/emmc/emmc-clk"; + emmc_cmd = "/pinctrl/emmc/emmc-cmd"; + emmc_data_strobe = "/pinctrl/emmc/emmc-data-strobe"; + eth1_pins = "/pinctrl/eth1/eth1-pins"; + fspim0_pins = "/pinctrl/fspi/fspim0-pins"; + fspim0_cs1 = "/pinctrl/fspi/fspim0-cs1"; + fspim2_pins = "/pinctrl/fspi/fspim2-pins"; + fspim2_cs1 = "/pinctrl/fspi/fspim2-cs1"; + fspim1_pins = "/pinctrl/fspi/fspim1-pins"; + fspim1_cs1 = "/pinctrl/fspi/fspim1-cs1"; + gmac1_miim = "/pinctrl/gmac1/gmac1-miim"; + gmac1_clkinout = "/pinctrl/gmac1/gmac1-clkinout"; + gmac1_rx_bus2 = "/pinctrl/gmac1/gmac1-rx-bus2"; + gmac1_tx_bus2 = "/pinctrl/gmac1/gmac1-tx-bus2"; + gmac1_rgmii_clk = "/pinctrl/gmac1/gmac1-rgmii-clk"; + gmac1_rgmii_bus = "/pinctrl/gmac1/gmac1-rgmii-bus"; + gmac1_ppsclk = "/pinctrl/gmac1/gmac1-ppsclk"; + gmac1_ppstrig = "/pinctrl/gmac1/gmac1-ppstrig"; + gmac1_ptp_ref_clk = "/pinctrl/gmac1/gmac1-ptp-ref-clk"; + gmac1_txer = "/pinctrl/gmac1/gmac1-txer"; + gpu_pins = "/pinctrl/gpu/gpu-pins"; + hdmim0_rx_cec = "/pinctrl/hdmi/hdmim0-rx-cec"; + hdmim0_rx_hpdin = "/pinctrl/hdmi/hdmim0-rx-hpdin"; + hdmim0_rx_scl = "/pinctrl/hdmi/hdmim0-rx-scl"; + hdmim0_rx_sda = "/pinctrl/hdmi/hdmim0-rx-sda"; + hdmim0_tx0_cec = "/pinctrl/hdmi/hdmim0-tx0-cec"; + hdmim0_tx0_hpd = "/pinctrl/hdmi/hdmim0-tx0-hpd"; + hdmim0_tx0_scl = "/pinctrl/hdmi/hdmim0-tx0-scl"; + hdmim0_tx0_sda = "/pinctrl/hdmi/hdmim0-tx0-sda"; + hdmim0_tx1_hpd = "/pinctrl/hdmi/hdmim0-tx1-hpd"; + hdmim1_rx = "/pinctrl/hdmi/hdmim1-rx"; + hdmim1_rx_cec = "/pinctrl/hdmi/hdmim1-rx-cec"; + hdmim1_rx_hpdin = "/pinctrl/hdmi/hdmim1-rx-hpdin"; + hdmim1_rx_scl = "/pinctrl/hdmi/hdmim1-rx-scl"; + hdmim1_rx_sda = "/pinctrl/hdmi/hdmim1-rx-sda"; + hdmim1_tx0_cec = "/pinctrl/hdmi/hdmim1-tx0-cec"; + hdmim1_tx0_hpd = "/pinctrl/hdmi/hdmim1-tx0-hpd"; + hdmim1_tx0_scl = "/pinctrl/hdmi/hdmim1-tx0-scl"; + hdmim1_tx0_sda = "/pinctrl/hdmi/hdmim1-tx0-sda"; + hdmim1_tx1_cec = "/pinctrl/hdmi/hdmim1-tx1-cec"; + hdmim1_tx1_hpd = "/pinctrl/hdmi/hdmim1-tx1-hpd"; + hdmim1_tx1_scl = "/pinctrl/hdmi/hdmim1-tx1-scl"; + hdmim1_tx1_sda = "/pinctrl/hdmi/hdmim1-tx1-sda"; + hdmim2_rx_cec = "/pinctrl/hdmi/hdmim2-rx-cec"; + hdmim2_rx_hpdin = "/pinctrl/hdmi/hdmim2-rx-hpdin"; + hdmim2_rx_scl = "/pinctrl/hdmi/hdmim2-rx-scl"; + hdmim2_rx_sda = "/pinctrl/hdmi/hdmim2-rx-sda"; + hdmim2_tx0_scl = "/pinctrl/hdmi/hdmim2-tx0-scl"; + hdmim2_tx0_sda = "/pinctrl/hdmi/hdmim2-tx0-sda"; + hdmim2_tx1_cec = "/pinctrl/hdmi/hdmim2-tx1-cec"; + hdmim2_tx1_scl = "/pinctrl/hdmi/hdmim2-tx1-scl"; + hdmim2_tx1_sda = "/pinctrl/hdmi/hdmim2-tx1-sda"; + hdmi_debug0 = "/pinctrl/hdmi/hdmi-debug0"; + hdmi_debug1 = "/pinctrl/hdmi/hdmi-debug1"; + hdmi_debug2 = "/pinctrl/hdmi/hdmi-debug2"; + hdmi_debug3 = "/pinctrl/hdmi/hdmi-debug3"; + hdmi_debug4 = "/pinctrl/hdmi/hdmi-debug4"; + hdmi_debug5 = "/pinctrl/hdmi/hdmi-debug5"; + hdmi_debug6 = "/pinctrl/hdmi/hdmi-debug6"; + hdmim0_tx1_cec = "/pinctrl/hdmi/hdmim0-tx1-cec"; + hdmim0_tx1_scl = "/pinctrl/hdmi/hdmim0-tx1-scl"; + hdmim0_tx1_sda = "/pinctrl/hdmi/hdmim0-tx1-sda"; + i2c0m0_xfer = "/pinctrl/i2c0/i2c0m0-xfer"; + i2c0m2_xfer = "/pinctrl/i2c0/i2c0m2-xfer"; + i2c0m1_xfer = "/pinctrl/i2c0/i2c0m1-xfer"; + i2c1m0_xfer = "/pinctrl/i2c1/i2c1m0-xfer"; + i2c1m1_xfer = "/pinctrl/i2c1/i2c1m1-xfer"; + i2c1m2_xfer = "/pinctrl/i2c1/i2c1m2-xfer"; + i2c1m3_xfer = "/pinctrl/i2c1/i2c1m3-xfer"; + i2c1m4_xfer = "/pinctrl/i2c1/i2c1m4-xfer"; + i2c2m0_xfer = "/pinctrl/i2c2/i2c2m0-xfer"; + i2c2m2_xfer = "/pinctrl/i2c2/i2c2m2-xfer"; + i2c2m3_xfer = "/pinctrl/i2c2/i2c2m3-xfer"; + i2c2m4_xfer = "/pinctrl/i2c2/i2c2m4-xfer"; + i2c2m1_xfer = "/pinctrl/i2c2/i2c2m1-xfer"; + i2c3m0_xfer = "/pinctrl/i2c3/i2c3m0-xfer"; + i2c3m1_xfer = "/pinctrl/i2c3/i2c3m1-xfer"; + i2c3m2_xfer = "/pinctrl/i2c3/i2c3m2-xfer"; + i2c3m4_xfer = "/pinctrl/i2c3/i2c3m4-xfer"; + i2c3m3_xfer = "/pinctrl/i2c3/i2c3m3-xfer"; + i2c4m0_xfer = "/pinctrl/i2c4/i2c4m0-xfer"; + i2c4m2_xfer = "/pinctrl/i2c4/i2c4m2-xfer"; + i2c4m3_xfer = "/pinctrl/i2c4/i2c4m3-xfer"; + i2c4m4_xfer = "/pinctrl/i2c4/i2c4m4-xfer"; + i2c4m1_xfer = "/pinctrl/i2c4/i2c4m1-xfer"; + i2c5m0_xfer = "/pinctrl/i2c5/i2c5m0-xfer"; + i2c5m1_xfer = "/pinctrl/i2c5/i2c5m1-xfer"; + i2c5m2_xfer = "/pinctrl/i2c5/i2c5m2-xfer"; + i2c5m3_xfer = "/pinctrl/i2c5/i2c5m3-xfer"; + i2c5m4_xfer = "/pinctrl/i2c5/i2c5m4-xfer"; + i2c6m0_xfer = "/pinctrl/i2c6/i2c6m0-xfer"; + i2c6m1_xfer = "/pinctrl/i2c6/i2c6m1-xfer"; + i2c6m3_xfer = "/pinctrl/i2c6/i2c6m3-xfer"; + i2c6m4_xfer = "/pinctrl/i2c6/i2c6m4-xfer"; + i2c6m2_xfer = "/pinctrl/i2c6/i2c6m2-xfer"; + i2c7m0_xfer = "/pinctrl/i2c7/i2c7m0-xfer"; + i2c7m2_xfer = "/pinctrl/i2c7/i2c7m2-xfer"; + i2c7m3_xfer = "/pinctrl/i2c7/i2c7m3-xfer"; + i2c7m1_xfer = "/pinctrl/i2c7/i2c7m1-xfer"; + i2c8m0_xfer = "/pinctrl/i2c8/i2c8m0-xfer"; + i2c8m2_xfer = "/pinctrl/i2c8/i2c8m2-xfer"; + i2c8m3_xfer = "/pinctrl/i2c8/i2c8m3-xfer"; + i2c8m4_xfer = "/pinctrl/i2c8/i2c8m4-xfer"; + i2c8m1_xfer = "/pinctrl/i2c8/i2c8m1-xfer"; + i2s0_idle = "/pinctrl/i2s0/i2s0-idle"; + i2s0_lrck = "/pinctrl/i2s0/i2s0-lrck"; + i2s0_mclk = "/pinctrl/i2s0/i2s0-mclk"; + i2s0_sclk = "/pinctrl/i2s0/i2s0-sclk"; + i2s0_sdi0 = "/pinctrl/i2s0/i2s0-sdi0"; + i2s0_sdi1 = "/pinctrl/i2s0/i2s0-sdi1"; + i2s0_sdi2 = "/pinctrl/i2s0/i2s0-sdi2"; + i2s0_sdi3 = "/pinctrl/i2s0/i2s0-sdi3"; + i2s0_sdo0 = "/pinctrl/i2s0/i2s0-sdo0"; + i2s0_sdo1 = "/pinctrl/i2s0/i2s0-sdo1"; + i2s0_sdo2 = "/pinctrl/i2s0/i2s0-sdo2"; + i2s0_sdo3 = "/pinctrl/i2s0/i2s0-sdo3"; + i2s1m0_lrck = "/pinctrl/i2s1/i2s1m0-lrck"; + i2s1m0_mclk = "/pinctrl/i2s1/i2s1m0-mclk"; + i2s1m0_sclk = "/pinctrl/i2s1/i2s1m0-sclk"; + i2s1m0_sdi0 = "/pinctrl/i2s1/i2s1m0-sdi0"; + i2s1m0_sdi1 = "/pinctrl/i2s1/i2s1m0-sdi1"; + i2s1m0_sdi2 = "/pinctrl/i2s1/i2s1m0-sdi2"; + i2s1m0_sdi3 = "/pinctrl/i2s1/i2s1m0-sdi3"; + i2s1m0_sdo0 = "/pinctrl/i2s1/i2s1m0-sdo0"; + i2s1m0_sdo1 = "/pinctrl/i2s1/i2s1m0-sdo1"; + i2s1m0_sdo2 = "/pinctrl/i2s1/i2s1m0-sdo2"; + i2s1m0_sdo3 = "/pinctrl/i2s1/i2s1m0-sdo3"; + i2s1m1_lrck = "/pinctrl/i2s1/i2s1m1-lrck"; + i2s1m1_mclk = "/pinctrl/i2s1/i2s1m1-mclk"; + i2s1m1_sclk = "/pinctrl/i2s1/i2s1m1-sclk"; + i2s1m1_sdi0 = "/pinctrl/i2s1/i2s1m1-sdi0"; + i2s1m1_sdi1 = "/pinctrl/i2s1/i2s1m1-sdi1"; + i2s1m1_sdi2 = "/pinctrl/i2s1/i2s1m1-sdi2"; + i2s1m1_sdi3 = "/pinctrl/i2s1/i2s1m1-sdi3"; + i2s1m1_sdo0 = "/pinctrl/i2s1/i2s1m1-sdo0"; + i2s1m1_sdo1 = "/pinctrl/i2s1/i2s1m1-sdo1"; + i2s1m1_sdo2 = "/pinctrl/i2s1/i2s1m1-sdo2"; + i2s1m1_sdo3 = "/pinctrl/i2s1/i2s1m1-sdo3"; + i2s2m1_idle = "/pinctrl/i2s2/i2s2m1-idle"; + i2s2m1_lrck = "/pinctrl/i2s2/i2s2m1-lrck"; + i2s2m1_mclk = "/pinctrl/i2s2/i2s2m1-mclk"; + i2s2m1_sclk = "/pinctrl/i2s2/i2s2m1-sclk"; + i2s2m1_sdi = "/pinctrl/i2s2/i2s2m1-sdi"; + i2s2m1_sdo = "/pinctrl/i2s2/i2s2m1-sdo"; + i2s2m0_idle = "/pinctrl/i2s2/i2s2m0-idle"; + i2s2m0_lrck = "/pinctrl/i2s2/i2s2m0-lrck"; + i2s2m0_mclk = "/pinctrl/i2s2/i2s2m0-mclk"; + i2s2m0_sclk = "/pinctrl/i2s2/i2s2m0-sclk"; + i2s2m0_sdi = "/pinctrl/i2s2/i2s2m0-sdi"; + i2s2m0_sdo = "/pinctrl/i2s2/i2s2m0-sdo"; + i2s3_idle = "/pinctrl/i2s3/i2s3-idle"; + i2s3_lrck = "/pinctrl/i2s3/i2s3-lrck"; + i2s3_mclk = "/pinctrl/i2s3/i2s3-mclk"; + i2s3_sclk = "/pinctrl/i2s3/i2s3-sclk"; + i2s3_sdi = "/pinctrl/i2s3/i2s3-sdi"; + i2s3_sdo = "/pinctrl/i2s3/i2s3-sdo"; + jtagm0_pins = "/pinctrl/jtag/jtagm0-pins"; + jtagm1_pins = "/pinctrl/jtag/jtagm1-pins"; + jtagm2_pins = "/pinctrl/jtag/jtagm2-pins"; + litcpu_pins = "/pinctrl/litcpu/litcpu-pins"; + mcum0_pins = "/pinctrl/mcu/mcum0-pins"; + mcum1_pins = "/pinctrl/mcu/mcum1-pins"; + mipim0_camera0_clk = "/pinctrl/mipi/mipim0-camera0-clk"; + mipim0_camera1_clk = "/pinctrl/mipi/mipim0-camera1-clk"; + mipim0_camera2_clk = "/pinctrl/mipi/mipim0-camera2-clk"; + mipim0_camera3_clk = "/pinctrl/mipi/mipim0-camera3-clk"; + mipim0_camera4_clk = "/pinctrl/mipi/mipim0-camera4-clk"; + mipim1_camera0_clk = "/pinctrl/mipi/mipim1-camera0-clk"; + mipim1_camera1_clk = "/pinctrl/mipi/mipim1-camera1-clk"; + mipim1_camera2_clk = "/pinctrl/mipi/mipim1-camera2-clk"; + mipim1_camera3_clk = "/pinctrl/mipi/mipim1-camera3-clk"; + mipim1_camera4_clk = "/pinctrl/mipi/mipim1-camera4-clk"; + mipi_te0 = "/pinctrl/mipi/mipi-te0"; + mipi_te1 = "/pinctrl/mipi/mipi-te1"; + npu_pins = "/pinctrl/npu/npu-pins"; + pcie20x1m0_pins = "/pinctrl/pcie20x1/pcie20x1m0-pins"; + pcie20x1m1_pins = "/pinctrl/pcie20x1/pcie20x1m1-pins"; + pcie20x1_2_button_rstn = "/pinctrl/pcie20x1/pcie20x1-2-button-rstn"; + pcie30phy_pins = "/pinctrl/pcie30phy/pcie30phy-pins"; + pcie30x1m0_pins = "/pinctrl/pcie30x1/pcie30x1m0-pins"; + pcie30x1m1_pins = "/pinctrl/pcie30x1/pcie30x1m1-pins"; + pcie30x1m2_pins = "/pinctrl/pcie30x1/pcie30x1m2-pins"; + pcie30x1_0_button_rstn = "/pinctrl/pcie30x1/pcie30x1-0-button-rstn"; + pcie30x1_1_button_rstn = "/pinctrl/pcie30x1/pcie30x1-1-button-rstn"; + pcie30x2m0_pins = "/pinctrl/pcie30x2/pcie30x2m0-pins"; + pcie30x2m1_pins = "/pinctrl/pcie30x2/pcie30x2m1-pins"; + pcie30x2m2_pins = "/pinctrl/pcie30x2/pcie30x2m2-pins"; + pcie30x2m3_pins = "/pinctrl/pcie30x2/pcie30x2m3-pins"; + pcie30x2_button_rstn = "/pinctrl/pcie30x2/pcie30x2-button-rstn"; + pcie30x4m0_pins = "/pinctrl/pcie30x4/pcie30x4m0-pins"; + pcie30x4m1_pins = "/pinctrl/pcie30x4/pcie30x4m1-pins"; + pcie30x4m2_pins = "/pinctrl/pcie30x4/pcie30x4m2-pins"; + pcie30x4m3_pins = "/pinctrl/pcie30x4/pcie30x4m3-pins"; + pcie30x4_button_rstn = "/pinctrl/pcie30x4/pcie30x4-button-rstn"; + pdm0m0_clk = "/pinctrl/pdm0/pdm0m0-clk"; + pdm0m0_clk1 = "/pinctrl/pdm0/pdm0m0-clk1"; + pdm0m0_idle = "/pinctrl/pdm0/pdm0m0-idle"; + pdm0m0_sdi0 = "/pinctrl/pdm0/pdm0m0-sdi0"; + pdm0m0_sdi1 = "/pinctrl/pdm0/pdm0m0-sdi1"; + pdm0m0_sdi2 = "/pinctrl/pdm0/pdm0m0-sdi2"; + pdm0m0_sdi3 = "/pinctrl/pdm0/pdm0m0-sdi3"; + pdm0m1_clk = "/pinctrl/pdm0/pdm0m1-clk"; + pdm0m1_clk1 = "/pinctrl/pdm0/pdm0m1-clk1"; + pdm0m1_idle = "/pinctrl/pdm0/pdm0m1-idle"; + pdm0m1_sdi0 = "/pinctrl/pdm0/pdm0m1-sdi0"; + pdm0m1_sdi1 = "/pinctrl/pdm0/pdm0m1-sdi1"; + pdm0m1_sdi2 = "/pinctrl/pdm0/pdm0m1-sdi2"; + pdm0m1_sdi3 = "/pinctrl/pdm0/pdm0m1-sdi3"; + pdm1m0_clk = "/pinctrl/pdm1/pdm1m0-clk"; + pdm1m0_clk1 = "/pinctrl/pdm1/pdm1m0-clk1"; + pdm1m0_idle = "/pinctrl/pdm1/pdm1m0-idle"; + pdm1m0_sdi0 = "/pinctrl/pdm1/pdm1m0-sdi0"; + pdm1m0_sdi1 = "/pinctrl/pdm1/pdm1m0-sdi1"; + pdm1m0_sdi2 = "/pinctrl/pdm1/pdm1m0-sdi2"; + pdm1m0_sdi3 = "/pinctrl/pdm1/pdm1m0-sdi3"; + pdm1m1_clk = "/pinctrl/pdm1/pdm1m1-clk"; + pdm1m1_clk1 = "/pinctrl/pdm1/pdm1m1-clk1"; + pdm1m1_idle = "/pinctrl/pdm1/pdm1m1-idle"; + pdm1m1_sdi0 = "/pinctrl/pdm1/pdm1m1-sdi0"; + pdm1m1_sdi1 = "/pinctrl/pdm1/pdm1m1-sdi1"; + pdm1m1_sdi2 = "/pinctrl/pdm1/pdm1m1-sdi2"; + pdm1m1_sdi3 = "/pinctrl/pdm1/pdm1m1-sdi3"; + pmic_pins = "/pinctrl/pmic/pmic-pins"; + pmu_pins = "/pinctrl/pmu/pmu-pins"; + pwm0m0_pins = "/pinctrl/pwm0/pwm0m0-pins"; + pwm0m1_pins = "/pinctrl/pwm0/pwm0m1-pins"; + pwm0m2_pins = "/pinctrl/pwm0/pwm0m2-pins"; + pwm1m0_pins = "/pinctrl/pwm1/pwm1m0-pins"; + pwm1m1_pins = "/pinctrl/pwm1/pwm1m1-pins"; + pwm1m2_pins = "/pinctrl/pwm1/pwm1m2-pins"; + pwm2m0_pins = "/pinctrl/pwm2/pwm2m0-pins"; + pwm2m1_pins = "/pinctrl/pwm2/pwm2m1-pins"; + pwm2m2_pins = "/pinctrl/pwm2/pwm2m2-pins"; + pwm3m0_pins = "/pinctrl/pwm3/pwm3m0-pins"; + pwm3m1_pins = "/pinctrl/pwm3/pwm3m1-pins"; + pwm3m2_pins = "/pinctrl/pwm3/pwm3m2-pins"; + pwm3m3_pins = "/pinctrl/pwm3/pwm3m3-pins"; + pwm4m0_pins = "/pinctrl/pwm4/pwm4m0-pins"; + pwm4m1_pins = "/pinctrl/pwm4/pwm4m1-pins"; + pwm5m0_pins = "/pinctrl/pwm5/pwm5m0-pins"; + pwm5m1_pins = "/pinctrl/pwm5/pwm5m1-pins"; + pwm5m2_pins = "/pinctrl/pwm5/pwm5m2-pins"; + pwm6m0_pins = "/pinctrl/pwm6/pwm6m0-pins"; + pwm6m1_pins = "/pinctrl/pwm6/pwm6m1-pins"; + pwm6m2_pins = "/pinctrl/pwm6/pwm6m2-pins"; + pwm7m0_pins = "/pinctrl/pwm7/pwm7m0-pins"; + pwm7m1_pins = "/pinctrl/pwm7/pwm7m1-pins"; + pwm7m2_pins = "/pinctrl/pwm7/pwm7m2-pins"; + pwm7m3_pins = "/pinctrl/pwm7/pwm7m3-pins"; + pwm8m0_pins = "/pinctrl/pwm8/pwm8m0-pins"; + pwm8m1_pins = "/pinctrl/pwm8/pwm8m1-pins"; + pwm8m2_pins = "/pinctrl/pwm8/pwm8m2-pins"; + pwm9m0_pins = "/pinctrl/pwm9/pwm9m0-pins"; + pwm9m1_pins = "/pinctrl/pwm9/pwm9m1-pins"; + pwm9m2_pins = "/pinctrl/pwm9/pwm9m2-pins"; + pwm10m0_pins = "/pinctrl/pwm10/pwm10m0-pins"; + pwm10m1_pins = "/pinctrl/pwm10/pwm10m1-pins"; + pwm10m2_pins = "/pinctrl/pwm10/pwm10m2-pins"; + pwm11m0_pins = "/pinctrl/pwm11/pwm11m0-pins"; + pwm11m1_pins = "/pinctrl/pwm11/pwm11m1-pins"; + pwm11m2_pins = "/pinctrl/pwm11/pwm11m2-pins"; + pwm11m3_pins = "/pinctrl/pwm11/pwm11m3-pins"; + pwm12m0_pins = "/pinctrl/pwm12/pwm12m0-pins"; + pwm12m1_pins = "/pinctrl/pwm12/pwm12m1-pins"; + pwm13m0_pins = "/pinctrl/pwm13/pwm13m0-pins"; + pwm13m1_pins = "/pinctrl/pwm13/pwm13m1-pins"; + pwm13m2_pins = "/pinctrl/pwm13/pwm13m2-pins"; + pwm14m0_pins = "/pinctrl/pwm14/pwm14m0-pins"; + pwm14m1_pins = "/pinctrl/pwm14/pwm14m1-pins"; + pwm14m2_pins = "/pinctrl/pwm14/pwm14m2-pins"; + pwm15m0_pins = "/pinctrl/pwm15/pwm15m0-pins"; + pwm15m1_pins = "/pinctrl/pwm15/pwm15m1-pins"; + pwm15m2_pins = "/pinctrl/pwm15/pwm15m2-pins"; + pwm15m3_pins = "/pinctrl/pwm15/pwm15m3-pins"; + refclk_pins = "/pinctrl/refclk/refclk-pins"; + sata_pins = "/pinctrl/sata/sata-pins"; + sata_reset = "/pinctrl/sata/sata-reset"; + sata0m0_pins = "/pinctrl/sata0/sata0m0-pins"; + sata0m1_pins = "/pinctrl/sata0/sata0m1-pins"; + sata1m0_pins = "/pinctrl/sata1/sata1m0-pins"; + sata1m1_pins = "/pinctrl/sata1/sata1m1-pins"; + sata2m0_pins = "/pinctrl/sata2/sata2m0-pins"; + sata2m1_pins = "/pinctrl/sata2/sata2m1-pins"; + sdiom1_pins = "/pinctrl/sdio/sdiom1-pins"; + sdiom0_pins = "/pinctrl/sdio/sdiom0-pins"; + sdmmc_bus4 = "/pinctrl/sdmmc/sdmmc-bus4"; + sdmmc_clk = "/pinctrl/sdmmc/sdmmc-clk"; + sdmmc_cmd = "/pinctrl/sdmmc/sdmmc-cmd"; + sdmmc_det = "/pinctrl/sdmmc/sdmmc-det"; + sdmmc_pwren = "/pinctrl/sdmmc/sdmmc-pwren"; + spdif0m0_tx = "/pinctrl/spdif0/spdif0m0-tx"; + spdif0m1_tx = "/pinctrl/spdif0/spdif0m1-tx"; + spdif1m0_tx = "/pinctrl/spdif1/spdif1m0-tx"; + spdif1m1_tx = "/pinctrl/spdif1/spdif1m1-tx"; + spdif1m2_tx = "/pinctrl/spdif1/spdif1m2-tx"; + spi0m0_pins = "/pinctrl/spi0/spi0m0-pins"; + spi0m0_cs0 = "/pinctrl/spi0/spi0m0-cs0"; + spi0m0_cs1 = "/pinctrl/spi0/spi0m0-cs1"; + spi0m1_pins = "/pinctrl/spi0/spi0m1-pins"; + spi0m1_cs0 = "/pinctrl/spi0/spi0m1-cs0"; + spi0m1_cs1 = "/pinctrl/spi0/spi0m1-cs1"; + spi0m2_pins = "/pinctrl/spi0/spi0m2-pins"; + spi0m2_cs0 = "/pinctrl/spi0/spi0m2-cs0"; + spi0m2_cs1 = "/pinctrl/spi0/spi0m2-cs1"; + spi0m3_pins = "/pinctrl/spi0/spi0m3-pins"; + spi0m3_cs0 = "/pinctrl/spi0/spi0m3-cs0"; + spi0m3_cs1 = "/pinctrl/spi0/spi0m3-cs1"; + spi1m1_pins = "/pinctrl/spi1/spi1m1-pins"; + spi1m1_cs0 = "/pinctrl/spi1/spi1m1-cs0"; + spi1m1_cs1 = "/pinctrl/spi1/spi1m1-cs1"; + spi1m2_pins = "/pinctrl/spi1/spi1m2-pins"; + spi1m2_cs0 = "/pinctrl/spi1/spi1m2-cs0"; + spi1m2_cs1 = "/pinctrl/spi1/spi1m2-cs1"; + spi1m0_pins = "/pinctrl/spi1/spi1m0-pins"; + spi1m0_cs0 = "/pinctrl/spi1/spi1m0-cs0"; + spi1m0_cs1 = "/pinctrl/spi1/spi1m0-cs1"; + spi2m0_pins = "/pinctrl/spi2/spi2m0-pins"; + spi2m0_cs0 = "/pinctrl/spi2/spi2m0-cs0"; + spi2m0_cs1 = "/pinctrl/spi2/spi2m0-cs1"; + spi2m1_pins = "/pinctrl/spi2/spi2m1-pins"; + spi2m1_cs0 = "/pinctrl/spi2/spi2m1-cs0"; + spi2m1_cs1 = "/pinctrl/spi2/spi2m1-cs1"; + spi2m2_pins = "/pinctrl/spi2/spi2m2-pins"; + spi2m2_cs0 = "/pinctrl/spi2/spi2m2-cs0"; + spi2m2_cs1 = "/pinctrl/spi2/spi2m2-cs1"; + spi3m1_pins = "/pinctrl/spi3/spi3m1-pins"; + spi3m1_cs0 = "/pinctrl/spi3/spi3m1-cs0"; + spi3m1_cs1 = "/pinctrl/spi3/spi3m1-cs1"; + spi3m2_pins = "/pinctrl/spi3/spi3m2-pins"; + spi3m2_cs0 = "/pinctrl/spi3/spi3m2-cs0"; + spi3m2_cs1 = "/pinctrl/spi3/spi3m2-cs1"; + spi3m3_pins = "/pinctrl/spi3/spi3m3-pins"; + spi3m3_cs0 = "/pinctrl/spi3/spi3m3-cs0"; + spi3m3_cs1 = "/pinctrl/spi3/spi3m3-cs1"; + spi3m0_pins = "/pinctrl/spi3/spi3m0-pins"; + spi3m0_cs0 = "/pinctrl/spi3/spi3m0-cs0"; + spi3m0_cs1 = "/pinctrl/spi3/spi3m0-cs1"; + spi4m0_pins = "/pinctrl/spi4/spi4m0-pins"; + spi4m0_cs0 = "/pinctrl/spi4/spi4m0-cs0"; + spi4m0_cs1 = "/pinctrl/spi4/spi4m0-cs1"; + spi4m1_pins = "/pinctrl/spi4/spi4m1-pins"; + spi4m1_cs0 = "/pinctrl/spi4/spi4m1-cs0"; + spi4m1_cs1 = "/pinctrl/spi4/spi4m1-cs1"; + spi4m2_pins = "/pinctrl/spi4/spi4m2-pins"; + spi4m2_cs0 = "/pinctrl/spi4/spi4m2-cs0"; + tsadcm1_shut = "/pinctrl/tsadc/tsadcm1-shut"; + tsadc_shut = "/pinctrl/tsadc/tsadc-shut"; + tsadc_shut_org = "/pinctrl/tsadc/tsadc-shut-org"; + uart0m0_xfer = "/pinctrl/uart0/uart0m0-xfer"; + uart0m1_xfer = "/pinctrl/uart0/uart0m1-xfer"; + uart0m2_xfer = "/pinctrl/uart0/uart0m2-xfer"; + uart0_ctsn = "/pinctrl/uart0/uart0-ctsn"; + uart0_rtsn = "/pinctrl/uart0/uart0-rtsn"; + uart1m1_xfer = "/pinctrl/uart1/uart1m1-xfer"; + uart1m1_ctsn = "/pinctrl/uart1/uart1m1-ctsn"; + uart1m1_rtsn = "/pinctrl/uart1/uart1m1-rtsn"; + uart1m2_xfer = "/pinctrl/uart1/uart1m2-xfer"; + uart1m2_ctsn = "/pinctrl/uart1/uart1m2-ctsn"; + uart1m2_rtsn = "/pinctrl/uart1/uart1m2-rtsn"; + uart1m0_xfer = "/pinctrl/uart1/uart1m0-xfer"; + uart1m0_ctsn = "/pinctrl/uart1/uart1m0-ctsn"; + uart1m0_rtsn = "/pinctrl/uart1/uart1m0-rtsn"; + uart2m0_xfer = "/pinctrl/uart2/uart2m0-xfer"; + uart2m1_xfer = "/pinctrl/uart2/uart2m1-xfer"; + uart2m2_xfer = "/pinctrl/uart2/uart2m2-xfer"; + uart2_ctsn = "/pinctrl/uart2/uart2-ctsn"; + uart2_rtsn = "/pinctrl/uart2/uart2-rtsn"; + uart3m0_xfer = "/pinctrl/uart3/uart3m0-xfer"; + uart3m1_xfer = "/pinctrl/uart3/uart3m1-xfer"; + uart3m2_xfer = "/pinctrl/uart3/uart3m2-xfer"; + uart3_ctsn = "/pinctrl/uart3/uart3-ctsn"; + uart3_rtsn = "/pinctrl/uart3/uart3-rtsn"; + uart4m0_xfer = "/pinctrl/uart4/uart4m0-xfer"; + uart4m1_xfer = "/pinctrl/uart4/uart4m1-xfer"; + uart4m2_xfer = "/pinctrl/uart4/uart4m2-xfer"; + uart4_ctsn = "/pinctrl/uart4/uart4-ctsn"; + uart4_rtsn = "/pinctrl/uart4/uart4-rtsn"; + uart5m0_xfer = "/pinctrl/uart5/uart5m0-xfer"; + uart5m0_ctsn = "/pinctrl/uart5/uart5m0-ctsn"; + uart5m0_rtsn = "/pinctrl/uart5/uart5m0-rtsn"; + uart5m1_xfer = "/pinctrl/uart5/uart5m1-xfer"; + uart5m1_ctsn = "/pinctrl/uart5/uart5m1-ctsn"; + uart5m1_rtsn = "/pinctrl/uart5/uart5m1-rtsn"; + uart5m2_xfer = "/pinctrl/uart5/uart5m2-xfer"; + uart6m1_xfer = "/pinctrl/uart6/uart6m1-xfer"; + uart6m1_ctsn = "/pinctrl/uart6/uart6m1-ctsn"; + uart6m1_rtsn = "/pinctrl/uart6/uart6m1-rtsn"; + uart6m2_xfer = "/pinctrl/uart6/uart6m2-xfer"; + uart6m0_xfer = "/pinctrl/uart6/uart6m0-xfer"; + uart6m0_ctsn = "/pinctrl/uart6/uart6m0-ctsn"; + uart6m0_rtsn = "/pinctrl/uart6/uart6m0-rtsn"; + uart7m1_xfer = "/pinctrl/uart7/uart7m1-xfer"; + uart7m1_ctsn = "/pinctrl/uart7/uart7m1-ctsn"; + uart7m1_rtsn = "/pinctrl/uart7/uart7m1-rtsn"; + uart7m2_xfer = "/pinctrl/uart7/uart7m2-xfer"; + uart7m0_xfer = "/pinctrl/uart7/uart7m0-xfer"; + uart7m0_ctsn = "/pinctrl/uart7/uart7m0-ctsn"; + uart7m0_rtsn = "/pinctrl/uart7/uart7m0-rtsn"; + uart8m0_xfer = "/pinctrl/uart8/uart8m0-xfer"; + uart8m0_ctsn = "/pinctrl/uart8/uart8m0-ctsn"; + uart8m0_rtsn = "/pinctrl/uart8/uart8m0-rtsn"; + uart8m1_xfer = "/pinctrl/uart8/uart8m1-xfer"; + uart8m1_ctsn = "/pinctrl/uart8/uart8m1-ctsn"; + uart8m1_rtsn = "/pinctrl/uart8/uart8m1-rtsn"; + uart8_xfer = "/pinctrl/uart8/uart8-xfer"; + uart9m1_xfer = "/pinctrl/uart9/uart9m1-xfer"; + uart9m1_ctsn = "/pinctrl/uart9/uart9m1-ctsn"; + uart9m1_rtsn = "/pinctrl/uart9/uart9m1-rtsn"; + uart9m2_xfer = "/pinctrl/uart9/uart9m2-xfer"; + uart9m2_ctsn = "/pinctrl/uart9/uart9m2-ctsn"; + uart9m2_rtsn = "/pinctrl/uart9/uart9m2-rtsn"; + uart9m0_xfer = "/pinctrl/uart9/uart9m0-xfer"; + uart9m0_ctsn = "/pinctrl/uart9/uart9m0-ctsn"; + uart9m0_rtsn = "/pinctrl/uart9/uart9m0-rtsn"; + vop_pins = "/pinctrl/vop/vop-pins"; + bt656_pins = "/pinctrl/bt656/bt656-pins"; + tsadc_gpio_func = "/pinctrl/gpio-func/tsadc-gpio-func"; + pcfg_pull_none_drv_level_7 = "/pinctrl/pcfg-pull-none-drv-level-7"; + pcfg_pull_none_drv_level_8 = "/pinctrl/pcfg-pull-none-drv-level-8"; + pcfg_pull_none_drv_level_9 = "/pinctrl/pcfg-pull-none-drv-level-9"; + pcfg_pull_none_drv_level_10 = "/pinctrl/pcfg-pull-none-drv-level-10"; + pcfg_pull_none_drv_level_11 = "/pinctrl/pcfg-pull-none-drv-level-11"; + pcfg_pull_none_drv_level_12 = "/pinctrl/pcfg-pull-none-drv-level-12"; + pcfg_pull_none_drv_level_13 = "/pinctrl/pcfg-pull-none-drv-level-13"; + pcfg_pull_none_drv_level_14 = "/pinctrl/pcfg-pull-none-drv-level-14"; + pcfg_pull_none_drv_level_15 = "/pinctrl/pcfg-pull-none-drv-level-15"; + pcfg_pull_up_drv_level_7 = "/pinctrl/pcfg-pull-up-drv-level-7"; + pcfg_pull_up_drv_level_8 = "/pinctrl/pcfg-pull-up-drv-level-8"; + pcfg_pull_up_drv_level_9 = "/pinctrl/pcfg-pull-up-drv-level-9"; + pcfg_pull_up_drv_level_10 = "/pinctrl/pcfg-pull-up-drv-level-10"; + pcfg_pull_up_drv_level_11 = "/pinctrl/pcfg-pull-up-drv-level-11"; + pcfg_pull_up_drv_level_12 = "/pinctrl/pcfg-pull-up-drv-level-12"; + pcfg_pull_up_drv_level_13 = "/pinctrl/pcfg-pull-up-drv-level-13"; + pcfg_pull_up_drv_level_14 = "/pinctrl/pcfg-pull-up-drv-level-14"; + pcfg_pull_up_drv_level_15 = "/pinctrl/pcfg-pull-up-drv-level-15"; + pcfg_pull_down_drv_level_7 = "/pinctrl/pcfg-pull-down-drv-level-7"; + pcfg_pull_down_drv_level_8 = "/pinctrl/pcfg-pull-down-drv-level-8"; + pcfg_pull_down_drv_level_9 = "/pinctrl/pcfg-pull-down-drv-level-9"; + pcfg_pull_down_drv_level_10 = "/pinctrl/pcfg-pull-down-drv-level-10"; + pcfg_pull_down_drv_level_11 = "/pinctrl/pcfg-pull-down-drv-level-11"; + pcfg_pull_down_drv_level_12 = "/pinctrl/pcfg-pull-down-drv-level-12"; + pcfg_pull_down_drv_level_13 = "/pinctrl/pcfg-pull-down-drv-level-13"; + pcfg_pull_down_drv_level_14 = "/pinctrl/pcfg-pull-down-drv-level-14"; + pcfg_pull_down_drv_level_15 = "/pinctrl/pcfg-pull-down-drv-level-15"; + eth0_pins = "/pinctrl/eth0/eth0-pins"; + gmac0_miim = "/pinctrl/gmac0/gmac0-miim"; + gmac0_clkinout = "/pinctrl/gmac0/gmac0-clkinout"; + gmac0_rx_bus2 = "/pinctrl/gmac0/gmac0-rx-bus2"; + gmac0_tx_bus2 = "/pinctrl/gmac0/gmac0-tx-bus2"; + gmac0_rgmii_clk = "/pinctrl/gmac0/gmac0-rgmii-clk"; + gmac0_rgmii_bus = "/pinctrl/gmac0/gmac0-rgmii-bus"; + gmac0_ppsclk = "/pinctrl/gmac0/gmac0-ppsclk"; + gmac0_ppstring = "/pinctrl/gmac0/gmac0-ppstring"; + gmac0_ptp_refclk = "/pinctrl/gmac0/gmac0-ptp-refclk"; + gmac0_txer = "/pinctrl/gmac0/gmac0-txer"; + hym8563_int = "/pinctrl/hym8563/hym8563-int"; + leds_gpio = "/pinctrl/leds/leds-gpio"; + hp_det = "/pinctrl/headphone/hp-det"; + usb_5v_ctrl = "/pinctrl/usb-typec/usb-5v-ctrl"; + usbc0_int = "/pinctrl/usb-typec/usbc0-int"; + hdmirx_det = "/pinctrl/hdmirx/hdmirx-det"; + uart6_gpios = "/pinctrl/wireless-bluetooth/uart6-gpios"; + bt_reset_gpio = "/pinctrl/wireless-bluetooth/bt-reset-gpio"; + bt_wake_gpio = "/pinctrl/wireless-bluetooth/bt-wake-gpio"; + bt_irq_gpio = "/pinctrl/wireless-bluetooth/bt-irq-gpio"; + wifi_host_wake_irq = "/pinctrl/wireless-wlan/wifi-host-wake-irq"; + wdt_en_base = "/pinctrl/wdt-pc9202/wdt-en-base"; + cam0_or_cam1_switch_pin = "/pinctrl/cam/cam0-or-cam1-switch-pin"; + rkcif_mipi_lvds4 = "/rkcif-mipi-lvds4"; + rkcif_mipi_lvds4_sditf = "/rkcif-mipi-lvds4-sditf"; + rkcif_mipi_lvds4_sditf_vir1 = "/rkcif-mipi-lvds4-sditf-vir1"; + rkcif_mipi_lvds4_sditf_vir2 = "/rkcif-mipi-lvds4-sditf-vir2"; + rkcif_mipi_lvds4_sditf_vir3 = "/rkcif-mipi-lvds4-sditf-vir3"; + rkcif_mipi_lvds5 = "/rkcif-mipi-lvds5"; + rkcif_mipi_lvds5_sditf = "/rkcif-mipi-lvds5-sditf"; + rkcif_mipi_lvds5_sditf_vir1 = "/rkcif-mipi-lvds5-sditf-vir1"; + rkcif_mipi_lvds5_sditf_vir2 = "/rkcif-mipi-lvds5-sditf-vir2"; + rkcif_mipi_lvds5_sditf_vir3 = "/rkcif-mipi-lvds5-sditf-vir3"; + usbdrd3_1 = "/usbdrd3_1"; + usbdrd_dwc3_1 = "/usbdrd3_1/usb@fc400000"; + pcie30_phy_grf = "/syscon@fd5b8000"; + pipe_phy1_grf = "/syscon@fd5c0000"; + usbdpphy1_grf = "/syscon@fd5cc000"; + usb2phy1_grf = "/syscon@fd5d4000"; + u2phy1 = "/syscon@fd5d4000/usb2-phy@4000"; + u2phy1_otg = "/syscon@fd5d4000/usb2-phy@4000/otg-port"; + hdptxphy1_grf = "/syscon@fd5e4000"; + spdif_tx5 = "/spdif-tx@fddb8000"; + i2s8_8ch = "/i2s@fddc8000"; + spdif_tx4 = "/spdif-tx@fdde8000"; + i2s6_8ch = "/i2s@fddf4000"; + i2s7_8ch = "/i2s@fddf8000"; + i2s10_8ch = "/i2s@fde00000"; + spdif_rx1 = "/spdif-rx@fde10000"; + spdif_rx2 = "/spdif-rx@fde18000"; + dp1 = "/dp@fde60000"; + dp1_in_vp0 = "/dp@fde60000/ports/port@0/endpoint@0"; + dp1_in_vp1 = "/dp@fde60000/ports/port@0/endpoint@1"; + dp1_in_vp2 = "/dp@fde60000/ports/port@0/endpoint@2"; + dp1_out = "/dp@fde60000/ports/port@1/endpoint"; + hdmi1 = "/hdmi@fdea0000"; + hdmi1_in = "/hdmi@fdea0000/ports/port@0"; + hdmi1_in_vp0 = "/hdmi@fdea0000/ports/port@0/endpoint@0"; + hdmi1_in_vp1 = "/hdmi@fdea0000/ports/port@0/endpoint@1"; + hdmi1_in_vp2 = "/hdmi@fdea0000/ports/port@0/endpoint@2"; + edp1 = "/edp@fded0000"; + edp1_in_vp0 = "/edp@fded0000/ports/port@0/endpoint@0"; + edp1_in_vp1 = "/edp@fded0000/ports/port@0/endpoint@1"; + edp1_in_vp2 = "/edp@fded0000/ports/port@0/endpoint@2"; + edp1_out = "/edp@fded0000/ports/port@1/endpoint"; + hdmirx_ctrler = "/hdmirx-controller@fdee0000"; + pcie3x4 = "/pcie@fe150000"; + pcie3x4_intc = "/pcie@fe150000/legacy-interrupt-controller"; + pcie3x2 = "/pcie@fe160000"; + pcie3x2_intc = "/pcie@fe160000/legacy-interrupt-controller"; + pcie2x1l0 = "/pcie@fe170000"; + pcie2x1l0_intc = "/pcie@fe170000/legacy-interrupt-controller"; + gmac_uio0 = "/uio@fe1b0000"; + gmac0 = "/ethernet@fe1b0000"; + mdio0 = "/ethernet@fe1b0000/mdio"; + rgmii_phy0 = "/ethernet@fe1b0000/mdio/phy@1"; + gmac0_stmmac_axi_setup = "/ethernet@fe1b0000/stmmac-axi-config"; + gmac0_mtl_rx_setup = "/ethernet@fe1b0000/rx-queues-config"; + gmac0_mtl_tx_setup = "/ethernet@fe1b0000/tx-queues-config"; + sata1 = "/sata@fe220000"; + hdptxphy1 = "/phy@fed70000"; + hdptxphy_hdmi1 = "/hdmiphy@fed70000"; + hdptxphy_hdmi_clk1 = "/hdmiphy@fed70000/clk-port"; + usbdp_phy1 = "/phy@fed90000"; + usbdp_phy1_dp = "/phy@fed90000/dp-port"; + usbdp_phy1_u3 = "/phy@fed90000/u3-port"; + combphy1_ps = "/phy@fee10000"; + pcie30phy = "/phy@fee80000"; + vcc12v_dcin = "/vcc12v-dcin"; + vcc5v0_sys = "/vcc5v0-sys"; + vcc5v0_usbdcin = "/vcc5v0-usbdcin"; + vcc5v0_usb = "/vcc5v0-usb"; + vcc_1v1_nldo_s3 = "/vcc-1v1-nldo-s3"; + chosen = "/chosen"; + cspmu = "/cspmu@fd10c000"; + debug = "/debug@fd104000"; + fiq_debugger = "/fiq-debugger"; + minidump = "/minidump"; + drm_logo = "/reserved-memory/drm-logo@00000000"; + drm_cubic_lut = "/reserved-memory/drm-cubic-lut@00000000"; + ramoops = "/reserved-memory/ramoops@110000"; + minidump_smem = "/reserved-memory/minidump-smem@1f0000"; + minidump_mem = "/reserved-memory/minidump-mem@c000000"; + pcie_essd = "/pcie-essd"; + pcie_clk1 = "/pcie-clk1"; + pcie_clk2 = "/pcie-clk2"; + pcie_clk3 = "/pcie-clk3"; + firefly_leds = "/leds"; + power_led = "/leds/power"; + user_led = "/leds/user"; + bt_sco = "/bt-sco"; + bt_sound = "/bt-sound"; + hdmi0_sound = "/hdmi0-sound"; + dp0_sound = "/dp0-sound"; + spdif_tx1_dc = "/spdif-tx1-dc"; + spdif_tx1_sound = "/spdif-tx1-sound"; + adc_keys = "/adc-keys"; + es8388_sound = "/es8388-sound"; + vcc5v0_host = "/vcc5v0-host"; + vcc_hub_reset = "/vcc-hub-reset-regulator"; + vbus5v0_typec_pwr_en = "/vbus5v0-typec-pwr-en-regulator"; + vcc_hub3_reset = "/vcc-hub3-reset-regulator"; + vcc5v0_host3 = "/vcc5v0-host3"; + vcc_sata_pwr_en = "/vcc-sata-pwr-en-regulator"; + vcc_fan_pwr_en = "/vcc-fan-pwr-en-regulator"; + vcc_sdcard_pwr_en = "/vcc-sdcard-pwr-en-regulator"; + vcc3v3_pcie30 = "/vcc3v3-pcie30"; + pcie30_avdd1v8 = "/pcie30-avdd1v8"; + pcie30_avdd0v75 = "/pcie30-avdd0v75"; + hdmi1_sound = "/hdmi1-sound"; + dp1_sound = "/dp1-sound"; + wireless_bluetooth = "/wireless-bluetooth"; + wireless_wlan = "/wireless-wlan"; + hdmiin_sound = "/hdmiin-sound"; + fan = "/pwm-fan"; + mod_sleep = "/mod-sleep-regulator"; + vcc_hub = "/vcc-hub-regulator"; + vcc_4g = "/vcc-4g-regulator"; + usb_5v = "/usb-5v"; + cam0_cam1_switch = "/cam0-cam1-switch"; + }; +}; diff --git a/configs/vms/linux-rk3588-aarch64-smp.toml b/configs/vms/linux-rk3588-aarch64-smp.toml index a62e75a8..85feee8b 100644 --- a/configs/vms/linux-rk3588-aarch64-smp.toml +++ b/configs/vms/linux-rk3588-aarch64-smp.toml @@ -19,18 +19,18 @@ phys_cpu_sets = [1, 2, 4, 8] # [kernel] # The entry point of the kernel image. -entry_point = 0x1008_0000 +entry_point = 0x1020_0000 # The load address of the kernel image. -kernel_load_addr = 0x1008_0000 +kernel_load_addr = 0x1020_0000 # The load address of the device tree blob (DTB). dtb_load_addr = 0x1000_0000 # The location of image: "memory" | "fs". # load from memory image_location = "memory" # The file path of the kernel image. -kernel_path = "/path/to/linux-aarch64.bin" +kernel_path = "Image-5.10.198" # The file path of the device tree blob (DTB). -dtb_path = "/path/to/dtb" +dtb_path = "aio-3588jd4.dtb" # load from file system. # image_location = "fs". diff --git a/scripts/make/rk3588.mk b/scripts/make/rk3588.mk index 49c0a444..51f795cf 100644 --- a/scripts/make/rk3588.mk +++ b/scripts/make/rk3588.mk @@ -1,13 +1,16 @@ RK3588_GITHUB_URL = https://github.com/arceos-hypervisor/platform_tools/releases/download/latest/rk3588.zip -RK3588_MKIMG_FILE = ./tools/rk3588/mkimg -check-download: -ifeq ("$(wildcard $(RK3588_MKIMG_FILE))","") +RK3588_MKIMAGE = ./tools/rk3588/mkimage + +OUT_IMG := $(OUT_DIR)/$(APP_NAME)_$(PLAT_NAME).img + +.PHONY: build_image + +build_image: build +ifeq ($(wildcard $(RK3588_MKIMAGE)),) @echo "file not found, downloading from $(RK3588_GITHUB_URL)..."; wget $(RK3588_GITHUB_URL); unzip -o rk3588.zip -d tools; - rm rk3588.zip; + rm rk3588.zip; endif - -kernel: check-download build - $(RK3588_MKIMG_FILE) --dtb rk3588-firefly-itx-3588j.dtb --img $(OUT_BIN) - @echo 'Built the FIT-uImage boot.img' + $(RK3588_MKIMAGE) -n axvisor -A arm64 -O linux -T kernel -C none -a 0x00480000 -e 0x00480000 -d $(OUT_BIN) $(OUT_IMG) + @echo 'Built the uboot image ${OUT_IMG} successfully!' \ No newline at end of file From 8a016067f55db7459d6a397229b339e6e2105617 Mon Sep 17 00:00:00 2001 From: hky1999 <976929993@qq.com> Date: Thu, 29 May 2025 15:58:57 +0800 Subject: [PATCH 019/219] [wip] on dtb parsing --- Cargo.lock | 9 +- Cargo.toml | 2 + configs/vms/linux-qemu-aarch64.toml | 4 +- configs/vms/{aio-3588jd4.dts => rk3588.dts} | 22668 +++++++++--------- src/vmm/images.rs | 34 + 5 files changed, 11385 insertions(+), 11332 deletions(-) rename configs/vms/{aio-3588jd4.dts => rk3588.dts} (99%) diff --git a/Cargo.lock b/Cargo.lock index 1eb589a4..8947f7b0 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -167,7 +167,7 @@ dependencies = [ [[package]] name = "arm_vcpu" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arm_vcpu.git#e537c7b5125130e85b12a57390a251a86227c2ec" +source = "git+https://github.com/arceos-hypervisor/arm_vcpu.git#4dd7e5df7949336a11936c50b99ab1c608871060" dependencies = [ "aarch64-cpu 9.4.0", "aarch64_sysreg", @@ -571,6 +571,7 @@ dependencies = [ "bitflags 2.9.0", "cfg-if", "crate_interface", + "fdt-parser", "kspin", "lazyinit", "log", @@ -879,6 +880,12 @@ dependencies = [ "log", ] +[[package]] +name = "fdt-parser" +version = "0.4.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d09dfa244d6891db105eefae4f3aa5752adcab254a95e24c17c3ebd76f6d77ba" + [[package]] name = "getrandom" version = "0.2.15" diff --git a/Cargo.toml b/Cargo.toml index d5a4b78b..d51befc9 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -45,6 +45,8 @@ page_table_entry = { version = "0.5", features = ["arm-el2"] } page_table_multiarch = "0.5" percpu = { version = "0.2.0", features = ["arm-el2"] } +fdt-parser = "0.4" + [build-dependencies] toml = { git = "https://github.com/arceos-hypervisor/toml.git", branch = "no_std" } axconfig = { git = "https://github.com/arceos-hypervisor/arceos.git", branch = "vmm" } diff --git a/configs/vms/linux-qemu-aarch64.toml b/configs/vms/linux-qemu-aarch64.toml index c2674378..6816883d 100644 --- a/configs/vms/linux-qemu-aarch64.toml +++ b/configs/vms/linux-qemu-aarch64.toml @@ -22,11 +22,11 @@ entry_point = 0x8008_0000 # load from memory. image_location = "memory" # The file path of the kernel image. -kernel_path = "linux-6.6.62.bin" +kernel_path = "rk3588.dtb" # The load address of the kernel image. kernel_load_addr = 0x8008_0000 # The file path of the device tree blob (DTB). -dtb_path = "linux-qemu.dtb" +dtb_path = "rk3588.dtb" # The load address of the device tree blob (DTB). dtb_load_addr = 0x8000_0000 diff --git a/configs/vms/aio-3588jd4.dts b/configs/vms/rk3588.dts similarity index 99% rename from configs/vms/aio-3588jd4.dts rename to configs/vms/rk3588.dts index e4289218..9f4eeb7a 100644 --- a/configs/vms/aio-3588jd4.dts +++ b/configs/vms/rk3588.dts @@ -1,13131 +1,13141 @@ /dts-v1/; / { - compatible = "rockchip,aio-3588jd4\0rockchip,rk3588"; - interrupt-parent = <0x01>; #address-cells = <0x02>; - #size-cells = <0x02>; model = "Firefly AIO-3588JD4"; + serial-number = "a0deeea630de3975"; + #size-cells = <0x02>; + interrupt-parent = <0x01>; + compatible = "rockchip,aio-3588jd4\0rockchip,rk3588"; - aliases { - csi2dcphy0 = "/csi2-dcphy0"; - csi2dcphy1 = "/csi2-dcphy1"; - csi2dphy0 = "/csi2-dphy0"; - csi2dphy1 = "/csi2-dphy1"; - csi2dphy2 = "/csi2-dphy2"; - csi2dphy3 = "/csi2-dphy3"; - csi2dphy4 = "/csi2-dphy4"; - csi2dphy5 = "/csi2-dphy5"; - dsi0 = "/dsi@fde20000"; - dsi1 = "/dsi@fde30000"; - ethernet1 = "/ethernet@fe1c0000"; - gpio0 = "/pinctrl/gpio@fd8a0000"; - gpio1 = "/pinctrl/gpio@fec20000"; - gpio2 = "/pinctrl/gpio@fec30000"; - gpio3 = "/pinctrl/gpio@fec40000"; - gpio4 = "/pinctrl/gpio@fec50000"; - i2c0 = "/i2c@fd880000"; - i2c1 = "/i2c@fea90000"; - i2c2 = "/i2c@feaa0000"; - i2c3 = "/i2c@feab0000"; - i2c4 = "/i2c@feac0000"; - i2c5 = "/i2c@fead0000"; - i2c6 = "/i2c@fec80000"; - i2c7 = "/i2c@fec90000"; - i2c8 = "/i2c@feca0000"; - rkcif_mipi_lvds0 = "/rkcif-mipi-lvds"; - rkcif_mipi_lvds1 = "/rkcif-mipi-lvds1"; - rkcif_mipi_lvds2 = "/rkcif-mipi-lvds2"; - rkcif_mipi_lvds3 = "/rkcif-mipi-lvds3"; - rkvdec0 = "/rkvdec-core@fdc38000"; - rkvdec1 = "/rkvdec-core@fdc48000"; - rkvenc0 = "/rkvenc-core@fdbd0000"; - rkvenc1 = "/rkvenc-core@fdbe0000"; - jpege0 = "/jpege-core@fdba0000"; - jpege1 = "/jpege-core@fdba4000"; - jpege2 = "/jpege-core@fdba8000"; - jpege3 = "/jpege-core@fdbac000"; - serial0 = "/serial@fd890000"; - serial1 = "/serial@feb40000"; - serial2 = "/serial@feb50000"; - serial3 = "/serial@feb60000"; - serial4 = "/serial@feb70000"; - serial5 = "/serial@feb80000"; - serial6 = "/serial@feb90000"; - serial7 = "/serial@feba0000"; - serial8 = "/serial@febb0000"; - serial9 = "/serial@febc0000"; - spi0 = "/spi@feb00000"; - spi1 = "/spi@feb10000"; - spi2 = "/spi@feb20000"; - spi3 = "/spi@feb30000"; - spi4 = "/spi@fecb0000"; - spi5 = "/spi@fe2b0000"; - hdcp0 = "/hdcp@fde40000"; - hdcp1 = "/hdcp@fde70000"; - pwm0 = "/pwm@fd8b0000"; - pwm1 = "/pwm@fd8b0010"; - pwm2 = "/pwm@fd8b0020"; - pwm3 = "/pwm@fd8b0030"; - pwm4 = "/pwm@febd0000"; - pwm5 = "/pwm@febd0010"; - pwm6 = "/pwm@febd0020"; - pwm7 = "/pwm@febd0030"; - pwm8 = "/pwm@febe0000"; - pwm9 = "/pwm@febe0010"; - pwm10 = "/pwm@febe0020"; - pwm11 = "/pwm@febe0030"; - pwm12 = "/pwm@febf0000"; - pwm13 = "/pwm@febf0010"; - pwm14 = "/pwm@febf0020"; - pwm15 = "/pwm@febf0030"; - dp0 = "/dp@fde50000"; - dp1 = "/dp@fde60000"; - edp0 = "/edp@fdec0000"; - edp1 = "/edp@fded0000"; - ethernet0 = "/ethernet@fe1b0000"; - hdptx0 = "/phy@fed60000"; - hdptx1 = "/phy@fed70000"; - hdptxhdmi0 = "/hdmiphy@fed60000"; - hdptxhdmi1 = "/hdmiphy@fed70000"; - hdmi0 = "/hdmi@fde80000"; - hdmi1 = "/hdmi@fdea0000"; - hdmirx0 = "/hdmirx-controller@fdee0000"; - rkcif_mipi_lvds4 = "/rkcif-mipi-lvds4"; - rkcif_mipi_lvds5 = "/rkcif-mipi-lvds5"; - usbdp0 = "/phy@fed80000"; - usbdp1 = "/phy@fed90000"; - mmc0 = "/mmc@fe2e0000"; - mmc1 = "/mmc@fe2c0000"; - mmc2 = "/mmc@fe2d0000"; + pcie30-avdd1v8 { + regulator-max-microvolt = <0x1b7740>; + regulator-boot-on; + regulator-always-on; + regulator-min-microvolt = <0x1b7740>; + regulator-name = "pcie30_avdd1v8"; + compatible = "regulator-fixed"; + phandle = <0x4a6>; + vin-supply = <0x1de>; }; - clocks { - compatible = "simple-bus"; - #address-cells = <0x02>; - #size-cells = <0x02>; - ranges; - - spll { - compatible = "fixed-clock"; - #clock-cells = <0x00>; - clock-frequency = <0x29d7ab80>; - clock-output-names = "spll"; - phandle = <0x1f1>; - }; + syscon@fd5bc000 { + compatible = "rockchip,pipe-phy-grf\0syscon"; + reg = <0x00 0xfd5bc000 0x00 0x100>; + phandle = <0x194>; + }; - xin32k { - compatible = "fixed-clock"; - #clock-cells = <0x00>; - clock-frequency = <0x8000>; - clock-output-names = "xin32k"; - phandle = <0x1f2>; - }; + vcc5v0-host3 { + regulator-max-microvolt = <0x4c4b40>; + regulator-boot-on; + gpio = <0x182 0x07 0x00>; + regulator-always-on; + enable-active-high; + regulator-min-microvolt = <0x4c4b40>; + regulator-name = "vcc5v0_host3"; + compatible = "regulator-fixed"; + status = "disabled"; + phandle = <0x4a2>; + vin-supply = <0x1dd>; + }; - xin24m { - compatible = "fixed-clock"; - #clock-cells = <0x00>; - clock-frequency = <0x16e3600>; - clock-output-names = "xin24m"; - phandle = <0x1f3>; - }; + pwm@febd0030 { + pinctrl-names = "active"; + pinctrl-0 = <0x16c>; + clock-names = "pwm\0pclk"; + interrupts = <0x00 0x15a 0x04 0x00 0x15b 0x04>; + clocks = <0x02 0x54 0x02 0x53>; + #pwm-cells = <0x03>; + compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; + status = "disabled"; + reg = <0x00 0xfebd0030 0x00 0x10>; + phandle = <0x2d4>; + }; - hclk_vo1@fd7c08ec { - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c08ec 0x00 0x10>; - clock-names = "link"; - clocks = <0x02 0x264>; - #power-domain-cells = <0x01>; - #clock-cells = <0x00>; - phandle = <0x05>; - }; + rkisp@fdcc0000 { + power-domains = <0x60 0x1c>; + iommus = <0xd1>; + clock-names = "aclk_isp\0hclk_isp\0clk_isp_core\0clk_isp_core_marvin\0clk_isp_core_vicap"; + interrupts = <0x00 0x87 0x04 0x00 0x89 0x04 0x00 0x8a 0x04>; + clocks = <0x02 0x120 0x02 0x121 0x02 0x11d 0x02 0x11e 0x02 0x11f>; + compatible = "rockchip,rk3588-rkisp"; + status = "disabled"; + interrupt-names = "isp_irq\0mi_irq\0mipi_irq"; + reg = <0x00 0xfdcc0000 0x00 0x7f00>; + phandle = <0x5a>; + }; - aclk_vdpu_low_pre@fd7c08b0 { - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c08b0 0x00 0x10>; - clock-names = "link"; - clocks = <0x02 0x1bc>; - #power-domain-cells = <0x01>; - #clock-cells = <0x00>; - phandle = <0x1f4>; - }; + qos@fdf66600 { + compatible = "syscon"; + reg = <0x00 0xfdf66600 0x00 0x20>; + phandle = <0x96>; + }; - hclk_vo0@fd7c08dc { - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c08dc 0x00 0x10>; - clock-names = "link"; - clocks = <0x02 0x26d>; - #power-domain-cells = <0x01>; - #clock-cells = <0x00>; - phandle = <0x04>; - }; + serial@febb0000 { + reg-io-width = <0x04>; + pinctrl-names = "default"; + pinctrl-0 = <0x167>; + clock-names = "baudclk\0apb_pclk"; + interrupts = <0x00 0x153 0x04>; + clocks = <0x02 0xd3 0x02 0xb2>; + compatible = "rockchip,rk3588-uart\0snps,dw-apb-uart"; + status = "disabled"; + reg = <0x00 0xfebb0000 0x00 0x100>; + phandle = <0x2d0>; + dmas = <0xf2 0x09 0xf2 0x0a>; + reg-shift = <0x02>; + }; - hclk_usb@fd7c08a8 { - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c08a8 0x00 0x10>; - clock-names = "link"; - clocks = <0x02 0x264>; - #power-domain-cells = <0x01>; - #clock-cells = <0x00>; - phandle = <0x1f5>; - }; + qos@fdf41000 { + compatible = "syscon"; + reg = <0x00 0xfdf41000 0x00 0x20>; + phandle = <0xa6>; + }; - hclk_nvm@fd7c087c { - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c087c 0x00 0x10>; - clock-names = "link"; - clocks = <0x02 0x141>; - #power-domain-cells = <0x01>; - #clock-cells = <0x00>; - phandle = <0x03>; - }; + csi2-dcphy1 { + rockchip,hw = <0x2d 0x2e>; + phy-names = "dcphy0\0dcphy1"; + compatible = "rockchip,rk3588-csi2-dphy"; + status = "disabled"; + phys = <0x2f 0x30>; + phandle = <0x20e>; + }; - aclk_usb@fd7c08a8 { - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c08a8 0x00 0x10>; - clock-names = "link"; - clocks = <0x02 0x263>; - #power-domain-cells = <0x01>; - #clock-cells = <0x00>; - phandle = <0x6a>; - }; - - hclk_isp1_pre@fd7c0868 { - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c0868 0x00 0x10>; - clock-names = "link"; - clocks = <0x02 0x1e1>; - #power-domain-cells = <0x01>; - #clock-cells = <0x00>; - phandle = <0x1f6>; - }; + rkispp0-vir0 { + rockchip,hw = <0x5b>; + compatible = "rockchip,rk3588-rkispp-vir"; + status = "disabled"; + phandle = <0x243>; + }; - aclk_isp1_pre@fd7c0868 { - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c0868 0x00 0x10>; - clock-names = "link"; - clocks = <0x02 0x1e0>; - #power-domain-cells = <0x01>; - #clock-cells = <0x00>; - phandle = <0x1f7>; - }; + wireless-bluetooth { + pinctrl-names = "default\0rts_gpio"; + pinctrl-0 = <0x1e5 0x1e6 0x1e7 0x1e8>; + clock-names = "ext_clock"; + BT,power_gpio = <0x7b 0x16 0x00>; + clocks = <0x1e4>; + BT,wake_gpio = <0x7b 0x15 0x00>; + uart_rts_gpios = <0xfe 0x02 0x01>; + compatible = "bluetooth-platdata"; + BT,wake_host_irq = <0x7b 0x00 0x00>; + pinctrl-1 = <0x1e9>; + status = "disabled"; + phandle = <0x4aa>; + }; - aclk_rkvdec0_pre@fd7c08a0 { - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c08a0 0x00 0x10>; - clock-names = "link"; - clocks = <0x02 0x1bc>; - #power-domain-cells = <0x01>; - #clock-cells = <0x00>; - phandle = <0x1f8>; - }; + pwm@febd0020 { + pinctrl-names = "active"; + pinctrl-0 = <0x16b>; + clock-names = "pwm\0pclk"; + interrupts = <0x00 0x15a 0x04>; + clocks = <0x02 0x54 0x02 0x53>; + #pwm-cells = <0x03>; + compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; + status = "disabled"; + reg = <0x00 0xfebd0020 0x00 0x10>; + phandle = <0x2d3>; + }; - hclk_rkvdec0_pre@fd7c08a0 { - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c08a0 0x00 0x10>; - clock-names = "link"; - clocks = <0x02 0x1be>; - #power-domain-cells = <0x01>; - #clock-cells = <0x00>; - phandle = <0x1f9>; - }; + qos@fdf39000 { + compatible = "syscon"; + reg = <0x00 0xfdf39000 0x00 0x20>; + phandle = <0xaf>; + }; - aclk_rkvdec1_pre@fd7c08a4 { - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c08a4 0x00 0x10>; - clock-names = "link"; - clocks = <0x02 0x1bc>; - #power-domain-cells = <0x01>; - #clock-cells = <0x00>; - phandle = <0x1fa>; - }; + cam0-cam1-switch { + regulator-max-microvolt = <0x1b7740>; + pinctrl-names = "default"; + regulator-boot-on; + gpio = <0x181 0x11 0x00>; + pinctrl-0 = <0x1f0>; + regulator-always-on; + enable-active-high; + regulator-min-microvolt = <0x1b7740>; + regulator-name = "cam0_cam1_switch"; + compatible = "regulator-fixed"; + status = "okay"; + phandle = <0x4b2>; + }; - hclk_rkvdec1_pre@fd7c08a4 { - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c08a4 0x00 0x10>; - clock-names = "link"; - clocks = <0x02 0x1be>; - #power-domain-cells = <0x01>; - #clock-cells = <0x00>; - phandle = <0x1fb>; - }; + qos@fdf3e400 { + compatible = "syscon"; + reg = <0x00 0xfdf3e400 0x00 0x20>; + phandle = <0xad>; + }; - aclk_jpeg_decoder_pre@fd7c08b0 { - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c08b0 0x00 0x10>; - clock-names = "link"; - clocks = <0x02 0x1bc>; - #power-domain-cells = <0x01>; - #clock-cells = <0x00>; - phandle = <0x1fc>; - }; + mipi2-csi2 { + rockchip,hw = <0x47 0x48 0x49 0x4a 0x4b 0x4c>; + compatible = "rockchip,rk3588-mipi-csi2"; + status = "okay"; + firefly-compatible; + phandle = <0x226>; - aclk_rkvenc1_pre@fd7c08c0 { - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c08c0 0x00 0x10>; - clock-names = "link"; - clocks = <0x02 0x1c5>; - #power-domain-cells = <0x01>; - #clock-cells = <0x00>; - phandle = <0x1fd>; - }; + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; - hclk_rkvenc1_pre@fd7c08c0 { - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c08c0 0x00 0x10>; - clock-names = "link"; - clocks = <0x02 0x1c4>; - #power-domain-cells = <0x01>; - #clock-cells = <0x00>; - phandle = <0x1fe>; - }; + port@0 { + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x00>; - aclk_hdcp0_pre@fd7c08dc { - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c08dc 0x00 0x10>; - clock-names = "link"; - clocks = <0x02 0x26c>; - #power-domain-cells = <0x01>; - #clock-cells = <0x00>; - phandle = <0x1ff>; - }; + endpoint@0 { + remote-endpoint = <0x4d>; + reg = <0x00>; + phandle = <0x33>; + }; + }; - aclk_hdcp1_pre@fd7c08ec { - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c08ec 0x00 0x10>; - clock-names = "link"; - clocks = <0x02 0x263>; - #power-domain-cells = <0x01>; - #clock-cells = <0x00>; - phandle = <0x200>; - }; + port@1 { + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x01>; - pclk_av1_pre@fd7c0910 { - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c0910 0x00 0x10>; - clock-names = "link"; - clocks = <0x02 0x1be>; - #power-domain-cells = <0x01>; - #clock-cells = <0x00>; - phandle = <0x201>; + endpoint@0 { + remote-endpoint = <0x4e>; + reg = <0x00>; + phandle = <0x54>; + }; + }; }; + }; - aclk_av1_pre@fd7c0910 { - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c0910 0x00 0x10>; - clock-names = "link"; - clocks = <0x02 0x1bc>; - #power-domain-cells = <0x01>; - #clock-cells = <0x00>; - phandle = <0x202>; - }; + iommu@fdc48700 { + power-domains = <0x60 0x0f>; + rockchip,shootdown-entire; + clock-names = "aclk\0iface"; + interrupts = <0x00 0x62 0x04>; + clocks = <0x02 0x195 0x02 0x194>; + rockchip,enable-cmd-retry; + #iommu-cells = <0x00>; + compatible = "rockchip,iommu-v2"; + rockchip,disable-mmu-reset; + status = "okay"; + interrupt-names = "irq_rkvdec1_mmu"; + reg = <0x00 0xfdc48700 0x00 0x40 0x00 0xfdc48740 0x00 0x40>; + phandle = <0xcc>; + rockchip,master-handle-irq; + }; - hclk_sdio_pre@fd7c092c { - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c092c 0x00 0x10>; - clock-names = "link"; - clocks = <0x03>; - #power-domain-cells = <0x01>; - #clock-cells = <0x00>; - phandle = <0x203>; - }; + clock-controller@fd7c0000 { + #reset-cells = <0x01>; + assigned-clocks = <0x02 0x09 0x02 0x05 0x02 0x08 0x02 0x07 0x02 0xd8 0x02 0xda 0x02 0xd9 0x02 0x10e 0x02 0x10f 0x02 0x110 0x02 0x299 0x02 0x29a 0x02 0x7b 0x02 0xec 0x02 0x114 0x02 0x208 0x02 0x20e 0x02 0x21f 0x02 0x77>; + assigned-clock-rates = <0x4190ab00 0x2ee00000 0x32a9f880 0x46cf7100 0x29d7ab80 0x17d78400 0x1dcd6500 0x2cb41780 0x5f5e100 0x17d78400 0x5f5e100 0xbebc200 0x165a0bc0 0x8f0d180 0xbebc200 0xb71b00 0xb71b00 0x5e69ec0 0x1312d00>; + #clock-cells = <0x01>; + compatible = "rockchip,rk3588-cru"; + rockchip,grf = <0x76>; + reg = <0x00 0xfd7c0000 0x00 0x5c000>; + phandle = <0x02>; + }; - pclk_vo0_grf@fd7c08dc { - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c08dc 0x00 0x04>; - clocks = <0x04>; - clock-names = "link"; - #clock-cells = <0x00>; - phandle = <0x72>; - }; + qos@fdf81000 { + compatible = "syscon"; + reg = <0x00 0xfdf81000 0x00 0x20>; + phandle = <0xa0>; + }; - pclk_vo1_grf@fd7c08ec { - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c08ec 0x00 0x04>; - clocks = <0x05>; - clock-names = "link"; - #clock-cells = <0x00>; - phandle = <0x73>; - }; + qos@fdf36000 { + compatible = "syscon"; + reg = <0x00 0xfdf36000 0x00 0x20>; + phandle = <0xaa>; + }; - mclkin-i2s0 { - compatible = "fixed-clock"; - #clock-cells = <0x00>; - clock-frequency = <0x00>; - clock-output-names = "i2s0_mclkin"; - phandle = <0x204>; - }; + i2s@fe4a0000 { + power-domains = <0x60 0x26>; + pinctrl-names = "default\0idle\0clk"; + pinctrl-2 = <0x132 0x133>; + pinctrl-0 = <0x12f 0x130>; + clock-names = "i2s_clk\0i2s_hclk"; + assigned-clocks = <0x02 0x2a>; + assigned-clock-parents = <0x02 0x05>; + interrupts = <0x00 0xb7 0x04>; + clocks = <0x02 0x2d 0x02 0x23>; + dma-names = "tx\0rx"; + #sound-dai-cells = <0x00>; + compatible = "rockchip,rk3588-i2s\0rockchip,rk3066-i2s"; + pinctrl-1 = <0x131>; + status = "disabled"; + reg = <0x00 0xfe4a0000 0x00 0x1000>; + phandle = <0x299>; + dmas = <0xf1 0x02 0xf1 0x03>; + rockchip,clk-trcm = <0x01>; + }; - mclkin-i2s1 { - compatible = "fixed-clock"; - #clock-cells = <0x00>; - clock-frequency = <0x00>; - clock-output-names = "i2s1_mclkin"; - phandle = <0x205>; - }; + syscon@fd5c4000 { + compatible = "rockchip,pipe-phy-grf\0syscon"; + reg = <0x00 0xfd5c4000 0x00 0x100>; + phandle = <0x195>; + }; - mclkin-i2s2 { - compatible = "fixed-clock"; - #clock-cells = <0x00>; - clock-frequency = <0x00>; - clock-output-names = "i2s2_mclkin"; - phandle = <0x206>; - }; + sram@ff001000 { + #address-cells = <0x01>; + #size-cells = <0x01>; + compatible = "mmio-sram"; + ranges = <0x00 0x00 0xff001000 0xef000>; + reg = <0x00 0xff001000 0x00 0xef000>; + phandle = <0x2eb>; - mclkin-i2s3 { - compatible = "fixed-clock"; - #clock-cells = <0x00>; - clock-frequency = <0x00>; - clock-output-names = "i2s3_mclkin"; - phandle = <0x207>; + rkvdec-sram@0 { + reg = <0x00 0x78000>; + phandle = <0xcb>; }; - mclkout-i2s0@fd58c318 { - compatible = "rockchip,clk-out"; - reg = <0x00 0xfd58c318 0x00 0x04>; - clocks = <0x02 0x39>; - #clock-cells = <0x00>; - clock-output-names = "i2s0_mclkout_to_io"; - rockchip,bit-shift = <0x00>; - rockchip,bit-set-to-disable; - rockchip,clk-ignore-unused; - phandle = <0x179>; + rkvdec-sram@78000 { + reg = <0x78000 0x77000>; + phandle = <0xcd>; }; + }; - mclkout-i2s1@fd58c318 { - compatible = "rockchip,clk-out"; - reg = <0x00 0xfd58c318 0x00 0x04>; - clocks = <0x02 0x291>; - #clock-cells = <0x00>; - clock-output-names = "i2s1_mclkout_to_io"; - rockchip,bit-shift = <0x01>; - rockchip,bit-set-to-disable; - rockchip,clk-ignore-unused; - phandle = <0x208>; - }; + uio@fe1c0000 { + compatible = "rockchip,uio-gmac"; + status = "disabled"; + reg = <0x00 0xfe1c0000 0x00 0x10000>; + phandle = <0x28e>; + rockchip,ethernet = <0x109>; + }; - mclkout-i2s1@fd58a000 { - compatible = "rockchip,clk-out"; - reg = <0x00 0xfd58a000 0x00 0x04>; - clocks = <0x02 0x291>; - #clock-cells = <0x00>; - clock-output-names = "i2s1m1_mclkout_to_io"; - rockchip,bit-shift = <0x06>; - rockchip,clk-ignore-unused; - phandle = <0x209>; - }; + pwm@febd0010 { + pinctrl-names = "active"; + pinctrl-0 = <0x16a>; + clock-names = "pwm\0pclk"; + interrupts = <0x00 0x15a 0x04>; + clocks = <0x02 0x54 0x02 0x53>; + #pwm-cells = <0x03>; + compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; + status = "okay"; + reg = <0x00 0xfebd0010 0x00 0x10>; + phandle = <0x1ed>; + }; - mclkout-i2s2@fd58c318 { - compatible = "rockchip,clk-out"; - reg = <0x00 0xfd58c318 0x00 0x04>; - clocks = <0x02 0x28>; - #clock-cells = <0x00>; - clock-output-names = "i2s2_mclkout_to_io"; - rockchip,bit-shift = <0x02>; - rockchip,bit-set-to-disable; - rockchip,clk-ignore-unused; - phandle = <0x20a>; - }; + rkisp1-vir3 { + rockchip,hw = <0x5a>; + compatible = "rockchip,rkisp-vir"; + status = "disabled"; + phandle = <0x242>; + }; - mclkout-i2s3@fd58c318 { - compatible = "rockchip,clk-out"; - reg = <0x00 0xfd58c318 0x00 0x04>; - clocks = <0x02 0x2e>; - #clock-cells = <0x00>; - clock-output-names = "i2s3_mclkout_to_io"; - rockchip,bit-shift = <0x07>; - rockchip,bit-set-to-disable; - rockchip,clk-ignore-unused; - phandle = <0x20b>; - }; + pcie-clk2 { + regulator-boot-on; + regulator-always-on; + regulator-name = "pcie_clk2"; + compatible = "regulator-fixed"; + status = "okay"; + phandle = <0x495>; + gpios = <0x181 0x16 0x01>; }; - cpus { - #address-cells = <0x01>; - #size-cells = <0x00>; + serial@feb40000 { + reg-io-width = <0x04>; + pinctrl-names = "default"; + pinctrl-0 = <0x160>; + clock-names = "baudclk\0apb_pclk"; + interrupts = <0x00 0x14c 0x04>; + clocks = <0x02 0xb7 0x02 0xab>; + compatible = "rockchip,rk3588-uart\0snps,dw-apb-uart"; + status = "okay"; + reg = <0x00 0xfeb40000 0x00 0x100>; + phandle = <0x2c9>; + dmas = <0x7c 0x08 0x7c 0x09>; + reg-shift = <0x02>; + }; - cpu-map { + pinctrl { + #address-cells = <0x02>; + #size-cells = <0x02>; + compatible = "rockchip,rk3588-pinctrl"; + ranges; + rockchip,grf = <0x196>; + phandle = <0x197>; - cluster0 { + eth0 { - core0 { - cpu = <0x06>; - }; + eth0-pins { + rockchip,pins = <0x02 0x13 0x01 0x198>; + phandle = <0x46c>; + }; + }; - core1 { - cpu = <0x07>; - }; + i2c3 { - core2 { - cpu = <0x08>; - }; + i2c3m3-xfer { + rockchip,pins = <0x02 0x0a 0x09 0x19d 0x02 0x0b 0x09 0x19d>; + phandle = <0x361>; + }; - core3 { - cpu = <0x09>; - }; + i2c3m2-xfer { + rockchip,pins = <0x04 0x04 0x09 0x19d 0x04 0x05 0x09 0x19d>; + phandle = <0x14a>; }; - cluster1 { + i2c3m1-xfer { + rockchip,pins = <0x03 0x0f 0x09 0x19d 0x03 0x10 0x09 0x19d>; + phandle = <0x35f>; + }; - core0 { - cpu = <0x0a>; - }; + i2c3m0-xfer { + rockchip,pins = <0x01 0x11 0x09 0x19d 0x01 0x10 0x09 0x19d>; + phandle = <0x35e>; + }; - core1 { - cpu = <0x0b>; - }; + i2c3m4-xfer { + rockchip,pins = <0x04 0x18 0x09 0x19d 0x04 0x19 0x09 0x19d>; + phandle = <0x360>; }; + }; - cluster2 { + pwm9 { - core0 { - cpu = <0x0c>; - }; + pwm9m2-pins { + rockchip,pins = <0x03 0x19 0x0b 0x198>; + phandle = <0x3d7>; + }; - core1 { - cpu = <0x0d>; - }; + pwm9m1-pins { + rockchip,pins = <0x04 0x19 0x0b 0x198>; + phandle = <0x3d6>; + }; + + pwm9m0-pins { + rockchip,pins = <0x03 0x08 0x0b 0x198>; + phandle = <0x16e>; }; }; - cpu@0 { - device_type = "cpu"; - compatible = "arm,cortex-a55"; - reg = <0x00>; - enable-method = "psci"; - capacity-dmips-mhz = <0x212>; - clocks = <0x0e 0x00>; - operating-points-v2 = <0x0f>; - cpu-idle-states = <0x10>; - i-cache-size = <0x8000>; - i-cache-line-size = <0x40>; - i-cache-sets = <0x80>; - d-cache-size = <0x8000>; - d-cache-line-size = <0x40>; - d-cache-sets = <0x80>; - next-level-cache = <0x11>; - #cooling-cells = <0x02>; - dynamic-power-coefficient = <0x64>; - cpu-supply = <0x12>; - mem-supply = <0x12>; - phandle = <0x06>; + pcfg-pull-none-drv-level-7 { + drive-strength = <0x07>; + bias-disable; + phandle = <0x451>; }; - cpu@100 { - device_type = "cpu"; - compatible = "arm,cortex-a55"; - reg = <0x100>; - enable-method = "psci"; - capacity-dmips-mhz = <0x212>; - clocks = <0x0e 0x00>; - operating-points-v2 = <0x0f>; - cpu-idle-states = <0x10>; - i-cache-size = <0x8000>; - i-cache-line-size = <0x40>; - i-cache-sets = <0x80>; - d-cache-size = <0x8000>; - d-cache-line-size = <0x40>; - d-cache-sets = <0x80>; - next-level-cache = <0x13>; - phandle = <0x07>; - }; + mipi { - cpu@200 { - device_type = "cpu"; - compatible = "arm,cortex-a55"; - reg = <0x200>; - enable-method = "psci"; - capacity-dmips-mhz = <0x212>; - clocks = <0x0e 0x00>; - operating-points-v2 = <0x0f>; - cpu-idle-states = <0x10>; - i-cache-size = <0x8000>; - i-cache-line-size = <0x40>; - i-cache-sets = <0x80>; - d-cache-size = <0x8000>; - d-cache-line-size = <0x40>; - d-cache-sets = <0x80>; - next-level-cache = <0x14>; - phandle = <0x08>; - }; + mipi-te1 { + rockchip,pins = <0x03 0x13 0x02 0x198>; + phandle = <0x39f>; + }; - cpu@300 { - device_type = "cpu"; - compatible = "arm,cortex-a55"; - reg = <0x300>; - enable-method = "psci"; - capacity-dmips-mhz = <0x212>; - clocks = <0x0e 0x00>; - operating-points-v2 = <0x0f>; - cpu-idle-states = <0x10>; - i-cache-size = <0x8000>; - i-cache-line-size = <0x40>; - i-cache-sets = <0x80>; - d-cache-size = <0x8000>; - d-cache-line-size = <0x40>; - d-cache-sets = <0x80>; - next-level-cache = <0x15>; - phandle = <0x09>; - }; + mipim1-camera2-clk { + rockchip,pins = <0x03 0x07 0x04 0x198>; + phandle = <0x39b>; + }; - cpu@400 { - device_type = "cpu"; - compatible = "arm,cortex-a76"; - reg = <0x400>; - enable-method = "psci"; - capacity-dmips-mhz = <0x400>; - clocks = <0x0e 0x02>; - operating-points-v2 = <0x16>; - cpu-idle-states = <0x10>; - i-cache-size = <0x10000>; - i-cache-line-size = <0x40>; - i-cache-sets = <0x100>; - d-cache-size = <0x10000>; - d-cache-line-size = <0x40>; - d-cache-sets = <0x100>; - next-level-cache = <0x17>; - #cooling-cells = <0x02>; - dynamic-power-coefficient = <0x12c>; - cpu-supply = <0x18>; - mem-supply = <0x18>; - phandle = <0x0a>; - }; + mipim0-camera0-clk { + rockchip,pins = <0x04 0x09 0x01 0x198>; + phandle = <0x395>; + }; - cpu@500 { - device_type = "cpu"; - compatible = "arm,cortex-a76"; - reg = <0x500>; - enable-method = "psci"; - capacity-dmips-mhz = <0x400>; - clocks = <0x0e 0x02>; - operating-points-v2 = <0x16>; - cpu-idle-states = <0x10>; - i-cache-size = <0x10000>; - i-cache-line-size = <0x40>; - i-cache-sets = <0x100>; - d-cache-size = <0x10000>; - d-cache-line-size = <0x40>; - d-cache-sets = <0x100>; - next-level-cache = <0x19>; - phandle = <0x0b>; - }; + mipim0-camera4-clk { + rockchip,pins = <0x01 0x1f 0x02 0x198>; + phandle = <0x399>; + }; - cpu@600 { - device_type = "cpu"; - compatible = "arm,cortex-a76"; - reg = <0x600>; - enable-method = "psci"; - capacity-dmips-mhz = <0x400>; - clocks = <0x0e 0x03>; - operating-points-v2 = <0x1a>; - cpu-idle-states = <0x10>; - i-cache-size = <0x10000>; - i-cache-line-size = <0x40>; - i-cache-sets = <0x100>; - d-cache-size = <0x10000>; - d-cache-line-size = <0x40>; - d-cache-sets = <0x100>; - next-level-cache = <0x1b>; - #cooling-cells = <0x02>; - dynamic-power-coefficient = <0x12c>; - cpu-supply = <0x1c>; - mem-supply = <0x1c>; - phandle = <0x0c>; - }; + mipim1-camera3-clk { + rockchip,pins = <0x03 0x08 0x04 0x198>; + phandle = <0x39c>; + }; - cpu@700 { - device_type = "cpu"; - compatible = "arm,cortex-a76"; - reg = <0x700>; - enable-method = "psci"; - capacity-dmips-mhz = <0x400>; - clocks = <0x0e 0x03>; - operating-points-v2 = <0x1a>; - cpu-idle-states = <0x10>; - i-cache-size = <0x10000>; - i-cache-line-size = <0x40>; - i-cache-sets = <0x100>; - d-cache-size = <0x10000>; - d-cache-line-size = <0x40>; - d-cache-sets = <0x100>; - next-level-cache = <0x1d>; - phandle = <0x0d>; - }; + mipim0-camera1-clk { + rockchip,pins = <0x01 0x0e 0x02 0x198>; + phandle = <0x396>; + }; - idle-states { - entry-method = "psci"; + mipim1-camera0-clk { + rockchip,pins = <0x03 0x05 0x04 0x198>; + phandle = <0x39a>; + }; - cpu-sleep { - compatible = "arm,idle-state"; - local-timer-stop; - arm,psci-suspend-param = <0x10000>; - entry-latency-us = <0x64>; - exit-latency-us = <0x78>; - min-residency-us = <0x3e8>; - phandle = <0x10>; + mipim1-camera4-clk { + rockchip,pins = <0x03 0x09 0x04 0x198>; + phandle = <0x39d>; }; - }; - l2-cache-l0 { - compatible = "cache"; - cache-size = <0x20000>; - cache-line-size = <0x40>; - cache-sets = <0x200>; - next-level-cache = <0x1e>; - phandle = <0x11>; - }; + mipim0-camera2-clk { + rockchip,pins = <0x01 0x0f 0x02 0x198>; + phandle = <0x397>; + }; - l2-cache-l1 { - compatible = "cache"; - cache-size = <0x20000>; - cache-line-size = <0x40>; - cache-sets = <0x200>; - next-level-cache = <0x1e>; - phandle = <0x13>; - }; + mipi-te0 { + rockchip,pins = <0x03 0x12 0x02 0x198>; + phandle = <0x39e>; + }; - l2-cache-l2 { - compatible = "cache"; - cache-size = <0x20000>; - cache-line-size = <0x40>; - cache-sets = <0x200>; - next-level-cache = <0x1e>; - phandle = <0x14>; - }; + mipim1-camera1-clk { + rockchip,pins = <0x03 0x06 0x04 0x198>; + phandle = <0x180>; + }; - l2-cache-l3 { - compatible = "cache"; - cache-size = <0x20000>; - cache-line-size = <0x40>; - cache-sets = <0x200>; - next-level-cache = <0x1e>; - phandle = <0x15>; + mipim0-camera3-clk { + rockchip,pins = <0x01 0x1e 0x02 0x198>; + phandle = <0x398>; + }; }; - l2-cache-b0 { - compatible = "cache"; - cache-size = <0x80000>; - cache-line-size = <0x40>; - cache-sets = <0x400>; - next-level-cache = <0x1e>; - phandle = <0x17>; - }; + pwm14 { - l2-cache-b1 { - compatible = "cache"; - cache-size = <0x80000>; - cache-line-size = <0x40>; - cache-sets = <0x400>; - next-level-cache = <0x1e>; - phandle = <0x19>; - }; + pwm14m2-pins { + rockchip,pins = <0x01 0x1e 0x0b 0x198>; + phandle = <0x3e1>; + }; - l2-cache-b2 { - compatible = "cache"; - cache-size = <0x80000>; - cache-line-size = <0x40>; - cache-sets = <0x400>; - next-level-cache = <0x1e>; - phandle = <0x1b>; - }; + pwm14m1-pins { + rockchip,pins = <0x04 0x0a 0x0b 0x198>; + phandle = <0x3e0>; + }; - l2-cache-b3 { - compatible = "cache"; - cache-size = <0x80000>; - cache-line-size = <0x40>; - cache-sets = <0x400>; - next-level-cache = <0x1e>; - phandle = <0x1d>; + pwm14m0-pins { + rockchip,pins = <0x03 0x12 0x0b 0x198>; + phandle = <0x173>; + }; }; - l3-cache { - compatible = "cache"; - cache-size = <0x300000>; - cache-line-size = <0x40>; - cache-sets = <0x1000>; - phandle = <0x1e>; + pcfg-pull-none-drv-level-4-smt { + drive-strength = <0x04>; + bias-disable; + input-schmitt-enable; + phandle = <0x303>; }; - }; - cluster0-opp-table { - compatible = "operating-points-v2"; - opp-shared; - nvmem-cells = <0x1f 0x20 0x21>; - nvmem-cell-names = "leakage\0opp-info\0specification_serial_number"; - rockchip,supported-hw; - rockchip,opp-shared-dsu; - rockchip,pvtm-hw = <0x06>; - rockchip,pvtm-voltage-sel-hw = <0x00 0x555 0x00 0x556 0x56b 0x01 0x56c 0x581 0x02 0x582 0x597 0x03 0x598 0x5ad 0x04 0x5ae 0x5c3 0x05 0x5c4 0x270f 0x06>; - rockchip,pvtm-voltage-sel = <0x00 0x582 0x00 0x583 0x59a 0x01 0x59b 0x5b2 0x02 0x5b3 0x5ca 0x03 0x5cb 0x5e2 0x04 0x5e3 0x5fa 0x05 0x5fb 0x270f 0x06>; - rockchip,pvtm-pvtpll; - rockchip,pvtm-offset = <0x64>; - rockchip,pvtm-sample-time = <0x44c>; - rockchip,pvtm-freq = <0x159b40>; - rockchip,pvtm-volt = <0xb71b0>; - rockchip,pvtm-ref-temp = <0x19>; - rockchip,pvtm-temp-prop = <0xf4 0xf4>; - rockchip,pvtm-thermal-zone = "soc-thermal"; - rockchip,grf = <0x22>; - rockchip,dsu-grf = <0x23>; - volt-mem-read-margin = <0xd0bd8 0x01 0xbac48 0x02 0xa4cb8 0x03 0x78d98 0x04>; - low-volt-mem-read-margin = <0x04>; - intermediate-threshold-freq = <0xf6180>; - rockchip,reboot-freq = <0x159b40>; - rockchip,temp-hysteresis = <0x1388>; - rockchip,low-temp = <0x2710>; - rockchip,low-temp-min-volt = <0xb71b0>; - rockchip,high-temp = <0x14c08>; - rockchip,high-temp-max-freq = <0x188940>; - phandle = <0x0f>; + headphone { - opp-408000000 { - opp-supported-hw = <0xf9 0xffff>; - opp-hz = <0x00 0x18519600>; - opp-microvolt = <0xa4cb8 0xa4cb8 0xe7ef0 0xa4cb8 0xa4cb8 0xe7ef0>; - clock-latency-ns = <0x9c40>; + hp-det { + rockchip,pins = <0x02 0x13 0x00 0x198>; + phandle = <0x1dc>; + }; }; - opp-600000000 { - opp-supported-hw = <0xf9 0xffff>; - opp-hz = <0x00 0x23c34600>; - opp-microvolt = <0xa4cb8 0xa4cb8 0xe7ef0 0xa4cb8 0xa4cb8 0xe7ef0>; - clock-latency-ns = <0x9c40>; - }; + npu { - opp-816000000 { - opp-supported-hw = <0xf9 0xffff>; - opp-hz = <0x00 0x30a32c00>; - opp-microvolt = <0xa4cb8 0xa4cb8 0xe7ef0 0xa4cb8 0xa4cb8 0xe7ef0>; - clock-latency-ns = <0x9c40>; + npu-pins { + rockchip,pins = <0x00 0x16 0x02 0x198>; + phandle = <0x3a0>; + }; }; - opp-1008000000 { - opp-supported-hw = <0xf9 0xffff>; - opp-hz = <0x00 0x3c14dc00>; - opp-microvolt = <0xa4cb8 0xa4cb8 0xe7ef0 0xa4cb8 0xa4cb8 0xe7ef0>; - clock-latency-ns = <0x9c40>; - }; + wireless-bluetooth { - opp-1200000000 { - opp-supported-hw = <0xf9 0xffff>; - opp-hz = <0x00 0x47868c00>; - opp-microvolt = <0xadf34 0xadf34 0xe7ef0 0xadf34 0xadf34 0xe7ef0>; - opp-microvolt-L1 = <0xaae60 0xaae60 0xe7ef0 0xaae60 0xaae60 0xe7ef0>; - opp-microvolt-L2 = <0xaae60 0xaae60 0xe7ef0 0xaae60 0xaae60 0xe7ef0>; - opp-microvolt-L3 = <0xa7d8c 0xa7d8c 0xe7ef0 0xa7d8c 0xa7d8c 0xe7ef0>; - opp-microvolt-L4 = <0xa4cb8 0xa4cb8 0xe7ef0 0xa4cb8 0xa4cb8 0xe7ef0>; - opp-microvolt-L5 = <0xa4cb8 0xa4cb8 0xe7ef0 0xa4cb8 0xa4cb8 0xe7ef0>; - opp-microvolt-L6 = <0xa4cb8 0xa4cb8 0xe7ef0 0xa4cb8 0xa4cb8 0xe7ef0>; - clock-latency-ns = <0x9c40>; - }; + bt-reset-gpio { + rockchip,pins = <0x00 0x16 0x00 0x198>; + phandle = <0x1e6>; + }; - opp-1416000000 { - opp-supported-hw = <0xf9 0xffff>; - opp-hz = <0x00 0x54667200>; - opp-microvolt = <0xba284 0xba284 0xe7ef0 0xba284 0xba284 0xe7ef0>; - opp-microvolt-L1 = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - opp-microvolt-L2 = <0xb40dc 0xb40dc 0xe7ef0 0xb40dc 0xb40dc 0xe7ef0>; - opp-microvolt-L3 = <0xb1008 0xb1008 0xe7ef0 0xb1008 0xb1008 0xe7ef0>; - opp-microvolt-L4 = <0xb1008 0xb1008 0xe7ef0 0xb1008 0xb1008 0xe7ef0>; - opp-microvolt-L5 = <0xadf34 0xadf34 0xe7ef0 0xadf34 0xadf34 0xe7ef0>; - opp-microvolt-L6 = <0xadf34 0xadf34 0xe7ef0 0xadf34 0xadf34 0xe7ef0>; - clock-latency-ns = <0x9c40>; - opp-suspend; - }; + bt-irq-gpio { + rockchip,pins = <0x00 0x00 0x00 0x198>; + phandle = <0x1e8>; + }; - opp-1608000000 { - opp-supported-hw = <0xf9 0xffff>; - opp-hz = <0x00 0x5fd82200>; - opp-microvolt = <0xcf850 0xcf850 0xe7ef0 0xcf850 0xcf850 0xe7ef0>; - opp-microvolt-L1 = <0xcc77c 0xcc77c 0xe7ef0 0xcc77c 0xcc77c 0xe7ef0>; - opp-microvolt-L2 = <0xc96a8 0xc96a8 0xe7ef0 0xc96a8 0xc96a8 0xe7ef0>; - opp-microvolt-L3 = <0xc65d4 0xc65d4 0xe7ef0 0xc65d4 0xc65d4 0xe7ef0>; - opp-microvolt-L4 = <0xc3500 0xc3500 0xe7ef0 0xc3500 0xc3500 0xe7ef0>; - opp-microvolt-L5 = <0xc3500 0xc3500 0xe7ef0 0xc3500 0xc3500 0xe7ef0>; - opp-microvolt-L6 = <0xc042c 0xc042c 0xe7ef0 0xc042c 0xc042c 0xe7ef0>; - clock-latency-ns = <0x9c40>; - }; + bt-wake-gpio { + rockchip,pins = <0x00 0x15 0x00 0x198>; + phandle = <0x1e7>; + }; - opp-1800000000 { - opp-supported-hw = <0xf9 0xffff>; - opp-hz = <0x00 0x6b49d200>; - opp-microvolt = <0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0>; - opp-microvolt-L1 = <0xe4e1c 0xe4e1c 0xe7ef0 0xe4e1c 0xe4e1c 0xe7ef0>; - opp-microvolt-L2 = <0xe1d48 0xe1d48 0xe7ef0 0xe1d48 0xe1d48 0xe7ef0>; - opp-microvolt-L3 = <0xdec74 0xdec74 0xe7ef0 0xdec74 0xdec74 0xe7ef0>; - opp-microvolt-L4 = <0xdbba0 0xdbba0 0xe7ef0 0xdbba0 0xdbba0 0xe7ef0>; - opp-microvolt-L5 = <0xd8acc 0xd8acc 0xe7ef0 0xd8acc 0xd8acc 0xe7ef0>; - opp-microvolt-L6 = <0xd59f8 0xd59f8 0xe7ef0 0xd59f8 0xd59f8 0xe7ef0>; - clock-latency-ns = <0x9c40>; + uart6-gpios { + rockchip,pins = <0x01 0x02 0x00 0x198>; + phandle = <0x1e9>; + }; }; - opp-j-m-408000000 { - opp-supported-hw = <0x06 0xffff>; - opp-hz = <0x00 0x18519600>; - opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - clock-latency-ns = <0x9c40>; - }; + pcie30x1 { - opp-j-m-600000000 { - opp-supported-hw = <0x06 0xffff>; - opp-hz = <0x00 0x23c34600>; - opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - clock-latency-ns = <0x9c40>; - }; + pcie30x1-1-button-rstn { + rockchip,pins = <0x04 0x0a 0x04 0x198>; + phandle = <0x3a9>; + }; - opp-j-m-816000000 { - opp-supported-hw = <0x06 0xffff>; - opp-hz = <0x00 0x30a32c00>; - opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - clock-latency-ns = <0x9c40>; - }; + pcie30x1m1-pins { + rockchip,pins = <0x04 0x03 0x04 0x198 0x04 0x05 0x04 0x198 0x04 0x04 0x04 0x198 0x04 0x00 0x04 0x198 0x04 0x02 0x04 0x198 0x04 0x01 0x04 0x198>; + phandle = <0x3a6>; + }; - opp-j-m-1008000000 { - opp-supported-hw = <0x06 0xffff>; - opp-hz = <0x00 0x3c14dc00>; - opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - clock-latency-ns = <0x9c40>; - }; + pcie30x1m0-pins { + rockchip,pins = <0x00 0x10 0x0c 0x198 0x00 0x15 0x0c 0x198 0x00 0x14 0x0c 0x198 0x00 0x0d 0x0c 0x198 0x00 0x0f 0x0c 0x198 0x00 0x0e 0x0c 0x198>; + phandle = <0x3a5>; + }; - opp-j-m-1200000000 { - opp-supported-hw = <0x06 0xffff>; - opp-hz = <0x00 0x47868c00>; - opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - clock-latency-ns = <0x9c40>; - }; + pcie30x1-0-button-rstn { + rockchip,pins = <0x04 0x09 0x04 0x198>; + phandle = <0x3a8>; + }; - opp-j-1296000000 { - opp-supported-hw = <0x04 0xffff>; - opp-hz = <0x00 0x4d3f6400>; - opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - opp-microvolt-L0 = <0xbd358 0xbd358 0xe7ef0 0xbd358 0xbd358 0xe7ef0>; - opp-microvolt-L1 = <0xba284 0xba284 0xe7ef0 0xba284 0xba284 0xe7ef0>; - clock-latency-ns = <0x9c40>; + pcie30x1m2-pins { + rockchip,pins = <0x01 0x0d 0x04 0x198 0x01 0x0c 0x04 0x198 0x01 0x0b 0x04 0x198 0x01 0x00 0x04 0x198 0x01 0x07 0x04 0x198 0x01 0x01 0x04 0x198>; + phandle = <0x3a7>; + }; }; - opp-j-m-1416000000 { - opp-supported-hw = <0x06 0xffff>; - opp-hz = <0x00 0x54667200>; - opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - opp-microvolt-L0 = <0xc042c 0xc042c 0xe7ef0 0xc042c 0xc042c 0xe7ef0>; - opp-microvolt-L1 = <0xbd358 0xbd358 0xe7ef0 0xbd358 0xbd358 0xe7ef0>; - opp-microvolt-L2 = <0xba284 0xba284 0xe7ef0 0xba284 0xba284 0xe7ef0>; - clock-latency-ns = <0x9c40>; - opp-suspend; - }; + uart8 { - opp-j-m-1608000000 { - opp-supported-hw = <0x06 0xffff>; - opp-hz = <0x00 0x5fd82200>; - opp-microvolt = <0xd8acc 0xd8acc 0xe7ef0 0xd8acc 0xd8acc 0xe7ef0>; - opp-microvolt-L1 = <0xd59f8 0xd59f8 0xe7ef0 0xd59f8 0xd59f8 0xe7ef0>; - opp-microvolt-L2 = <0xd2924 0xd2924 0xe7ef0 0xd2924 0xd2924 0xe7ef0>; - opp-microvolt-L3 = <0xcf850 0xcf850 0xe7ef0 0xcf850 0xcf850 0xe7ef0>; - opp-microvolt-L4 = <0xcc77c 0xcc77c 0xe7ef0 0xcc77c 0xcc77c 0xe7ef0>; - opp-microvolt-L5 = <0xc96a8 0xc96a8 0xe7ef0 0xc96a8 0xc96a8 0xe7ef0>; - opp-microvolt-L6 = <0xc65d4 0xc65d4 0xe7ef0 0xc65d4 0xc65d4 0xe7ef0>; - clock-latency-ns = <0x9c40>; - }; + uart8m0-rtsn { + rockchip,pins = <0x04 0x0a 0x0a 0x198>; + phandle = <0x443>; + }; - opp-j-m-1704000000 { - opp-supported-hw = <0x06 0xffff>; - opp-hz = <0x00 0x6590fa00>; - opp-microvolt = <0xe4e1c 0xe4e1c 0xe7ef0 0xe4e1c 0xe4e1c 0xe7ef0>; - opp-microvolt-L1 = <0xe1d48 0xe1d48 0xe7ef0 0xe1d48 0xe1d48 0xe7ef0>; - opp-microvolt-L2 = <0xdec74 0xdec74 0xe7ef0 0xdec74 0xdec74 0xe7ef0>; - opp-microvolt-L3 = <0xdbba0 0xdbba0 0xe7ef0 0xdbba0 0xdbba0 0xe7ef0>; - opp-microvolt-L4 = <0xd8acc 0xd8acc 0xe7ef0 0xd8acc 0xd8acc 0xe7ef0>; - opp-microvolt-L5 = <0xd59f8 0xd59f8 0xe7ef0 0xd59f8 0xd59f8 0xe7ef0>; - opp-microvolt-L6 = <0xd2924 0xd2924 0xe7ef0 0xd2924 0xd2924 0xe7ef0>; - clock-latency-ns = <0x9c40>; - }; - }; + uart8m1-ctsn { + rockchip,pins = <0x03 0x05 0x0a 0x198>; + phandle = <0x444>; + }; - cluster1-opp-table { - compatible = "operating-points-v2"; - opp-shared; - nvmem-cells = <0x24 0x25 0x21>; - nvmem-cell-names = "leakage\0opp-info\0specification_serial_number"; - rockchip,supported-hw; - rockchip,pvtm-hw = <0x06>; - rockchip,pvtm-voltage-sel-hw = <0x00 0x603 0x00 0x604 0x61c 0x01 0x61d 0x635 0x02 0x636 0x64e 0x03 0x64f 0x66c 0x04 0x66d 0x68a 0x05 0x68b 0x6a8 0x06 0x6a9 0x270f 0x07>; - rockchip,pvtm-voltage-sel = <0x00 0x63b 0x00 0x63c 0x64f 0x01 0x650 0x668 0x02 0x669 0x68b 0x03 0x68c 0x6ae 0x04 0x6af 0x6cf 0x05 0x6d0 0x6f0 0x06 0x6f1 0x270f 0x07>; - rockchip,pvtm-pvtpll; - rockchip,pvtm-offset = <0x18>; - rockchip,pvtm-sample-time = <0x44c>; - rockchip,pvtm-freq = <0x188940>; - rockchip,pvtm-volt = <0xb71b0>; - rockchip,pvtm-ref-temp = <0x19>; - rockchip,pvtm-temp-prop = <0x10e 0x10e>; - rockchip,pvtm-thermal-zone = "soc-thermal"; - rockchip,pvtm-low-len-sel = <0x03>; - rockchip,grf = <0x26>; - volt-mem-read-margin = <0xd0bd8 0x01 0xbac48 0x02 0xa4cb8 0x03 0x78d98 0x04>; - low-volt-mem-read-margin = <0x04>; - intermediate-threshold-freq = <0xf6180>; - rockchip,idle-threshold-freq = <0x21b100>; - rockchip,reboot-freq = <0x1b7740>; - rockchip,temp-hysteresis = <0x1388>; - rockchip,low-temp = <0x2710>; - rockchip,low-temp-min-volt = <0xb71b0>; - rockchip,high-temp = <0x14c08>; - rockchip,high-temp-max-freq = <0x21b100>; - phandle = <0x16>; + uart8m0-ctsn { + rockchip,pins = <0x04 0x0b 0x0a 0x198>; + phandle = <0x442>; + }; - opp-408000000 { - opp-supported-hw = <0xf9 0xffff>; - opp-hz = <0x00 0x18519600>; - opp-microvolt = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; - clock-latency-ns = <0x9c40>; - opp-suspend; - }; + uart8m1-xfer { + rockchip,pins = <0x03 0x03 0x0a 0x19e 0x03 0x02 0x0a 0x19e>; + phandle = <0x167>; + }; - opp-600000000 { - opp-supported-hw = <0xf9 0xffff>; - opp-hz = <0x00 0x23c34600>; - opp-microvolt = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; - clock-latency-ns = <0x9c40>; - }; + uart8m0-xfer { + rockchip,pins = <0x04 0x09 0x0a 0x19e 0x04 0x08 0x0a 0x19e>; + phandle = <0x441>; + }; - opp-816000000 { - opp-supported-hw = <0xf9 0xffff>; - opp-hz = <0x00 0x30a32c00>; - opp-microvolt = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; - clock-latency-ns = <0x9c40>; - }; + uart8-xfer { + rockchip,pins = <0x04 0x09 0x0a 0x19e>; + phandle = <0x446>; + }; - opp-1008000000 { - opp-supported-hw = <0xf9 0xffff>; - opp-hz = <0x00 0x3c14dc00>; - opp-microvolt = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; - clock-latency-ns = <0x9c40>; + uart8m1-rtsn { + rockchip,pins = <0x03 0x04 0x0a 0x198>; + phandle = <0x445>; + }; }; - opp-1200000000 { - opp-supported-hw = <0xf9 0xffff>; - opp-hz = <0x00 0x47868c00>; - opp-microvolt = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; - clock-latency-ns = <0x9c40>; - }; + spi2 { - opp-1416000000 { - opp-supported-hw = <0xf9 0xffff>; - opp-hz = <0x00 0x54667200>; - opp-microvolt = <0xb1008 0xb1008 0xf4240 0xb1008 0xb1008 0xf4240>; - opp-microvolt-L2 = <0xadf34 0xadf34 0xf4240 0xadf34 0xadf34 0xf4240>; - opp-microvolt-L3 = <0xaae60 0xaae60 0xf4240 0xaae60 0xaae60 0xf4240>; - opp-microvolt-L4 = <0xaae60 0xaae60 0xf4240 0xaae60 0xaae60 0xf4240>; - opp-microvolt-L5 = <0xa7d8c 0xa7d8c 0xf4240 0xa7d8c 0xa7d8c 0xf4240>; - opp-microvolt-L6 = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; - opp-microvolt-L7 = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; - clock-latency-ns = <0x9c40>; - }; + spi2m0-cs1 { + rockchip,pins = <0x01 0x08 0x08 0x19a>; + phandle = <0x404>; + }; - opp-1608000000 { - opp-supported-hw = <0xf9 0xffff>; - opp-hz = <0x00 0x5fd82200>; - opp-microvolt = <0xba284 0xba284 0xf4240 0xba284 0xba284 0xf4240>; - opp-microvolt-L2 = <0xb71b0 0xb71b0 0xf4240 0xb71b0 0xb71b0 0xf4240>; - opp-microvolt-L3 = <0xb40dc 0xb40dc 0xf4240 0xb40dc 0xb40dc 0xf4240>; - opp-microvolt-L4 = <0xb1008 0xb1008 0xf4240 0xb1008 0xb1008 0xf4240>; - opp-microvolt-L5 = <0xadf34 0xadf34 0xf4240 0xadf34 0xadf34 0xf4240>; - opp-microvolt-L6 = <0xaae60 0xaae60 0xf4240 0xaae60 0xaae60 0xf4240>; - opp-microvolt-L7 = <0xaae60 0xaae60 0xf4240 0xaae60 0xaae60 0xf4240>; - clock-latency-ns = <0x9c40>; - }; + spi2m2-cs0 { + rockchip,pins = <0x00 0x09 0x01 0x19f>; + phandle = <0x154>; + }; - opp-1800000000 { - opp-supported-hw = <0xf9 0xffff>; - opp-hz = <0x00 0x6b49d200>; - opp-microvolt = <0xcf850 0xcf850 0xf4240 0xcf850 0xcf850 0xf4240>; - opp-microvolt-L1 = <0xcc77c 0xcc77c 0xf4240 0xcc77c 0xcc77c 0xf4240>; - opp-microvolt-L2 = <0xc96a8 0xc96a8 0xf4240 0xc96a8 0xc96a8 0xf4240>; - opp-microvolt-L3 = <0xc65d4 0xc65d4 0xf4240 0xc65d4 0xc65d4 0xf4240>; - opp-microvolt-L4 = <0xc3500 0xc3500 0xf4240 0xc3500 0xc3500 0xf4240>; - opp-microvolt-L5 = <0xc042c 0xc042c 0xf4240 0xc042c 0xc042c 0xf4240>; - opp-microvolt-L6 = <0xbd358 0xbd358 0xf4240 0xbd358 0xbd358 0xf4240>; - opp-microvolt-L7 = <0xba284 0xba284 0xf4240 0xba284 0xba284 0xf4240>; - clock-latency-ns = <0x9c40>; - }; + spi2m1-cs1 { + rockchip,pins = <0x04 0x08 0x08 0x19a>; + phandle = <0x407>; + }; - opp-2016000000 { - opp-supported-hw = <0xf9 0xffff>; - opp-hz = <0x00 0x7829b800>; - opp-microvolt = <0xe1d48 0xe1d48 0xf4240 0xe1d48 0xe1d48 0xf4240>; - opp-microvolt-L1 = <0xdec74 0xdec74 0xf4240 0xdec74 0xdec74 0xf4240>; - opp-microvolt-L2 = <0xdbba0 0xdbba0 0xf4240 0xdbba0 0xdbba0 0xf4240>; - opp-microvolt-L3 = <0xd8acc 0xd8acc 0xf4240 0xd8acc 0xd8acc 0xf4240>; - opp-microvolt-L4 = <0xd59f8 0xd59f8 0xf4240 0xd59f8 0xd59f8 0xf4240>; - opp-microvolt-L5 = <0xd2924 0xd2924 0xf4240 0xd2924 0xd2924 0xf4240>; - opp-microvolt-L6 = <0xcf850 0xcf850 0xf4240 0xcf850 0xcf850 0xf4240>; - opp-microvolt-L7 = <0xcc77c 0xcc77c 0xf4240 0xcc77c 0xcc77c 0xf4240>; - clock-latency-ns = <0x9c40>; - }; + spi2m2-pins { + rockchip,pins = <0x00 0x05 0x01 0x19f 0x00 0x0b 0x01 0x19f 0x00 0x06 0x01 0x19f>; + phandle = <0x155>; + }; - opp-2208000000 { - opp-supported-hw = <0xf9 0xffff>; - opp-hz = <0x00 0x839b6800>; - opp-microvolt = <0xf116c 0xf116c 0xf4240 0xf116c 0xf116c 0xf4240>; - opp-microvolt-L1 = <0xee098 0xee098 0xf4240 0xee098 0xee098 0xf4240>; - opp-microvolt-L2 = <0xeafc4 0xeafc4 0xf4240 0xeafc4 0xeafc4 0xf4240>; - opp-microvolt-L3 = <0xe7ef0 0xe7ef0 0xf4240 0xe7ef0 0xe7ef0 0xf4240>; - opp-microvolt-L4 = <0xeafc4 0xeafc4 0xf4240 0xeafc4 0xeafc4 0xf4240>; - opp-microvolt-L5 = <0xe7ef0 0xe7ef0 0xf4240 0xe7ef0 0xe7ef0 0xf4240>; - opp-microvolt-L6 = <0xe1d48 0xe1d48 0xf4240 0xe1d48 0xe1d48 0xf4240>; - opp-microvolt-L7 = <0xdec74 0xdec74 0xf4240 0xdec74 0xdec74 0xf4240>; - clock-latency-ns = <0x9c40>; - }; + spi2m1-pins { + rockchip,pins = <0x04 0x06 0x08 0x19a 0x04 0x04 0x08 0x19a 0x04 0x05 0x08 0x19a>; + phandle = <0x405>; + }; - opp-2256000000 { - opp-supported-hw = <0xf9 0x13>; - opp-hz = <0x00 0x8677d400>; - opp-microvolt = <0xf4240 0xf4240 0xf4240 0xf4240 0xf4240 0xf4240>; - clock-latency-ns = <0x9c40>; - }; + spi2m2-cs1 { + rockchip,pins = <0x00 0x08 0x01 0x19f>; + phandle = <0x408>; + }; - opp-2304000000 { - opp-supported-hw = <0xf9 0x24>; - opp-hz = <0x00 0x89544000>; - opp-microvolt = <0xf4240 0xf4240 0xf4240 0xf4240 0xf4240 0xf4240>; - clock-latency-ns = <0x9c40>; - }; + spi2m0-cs0 { + rockchip,pins = <0x01 0x07 0x08 0x19a>; + phandle = <0x403>; + }; - opp-2352000000 { - opp-supported-hw = <0xf9 0x48>; - opp-hz = <0x00 0x8c30ac00>; - opp-microvolt = <0xf4240 0xf4240 0xf4240 0xf4240 0xf4240 0xf4240>; - clock-latency-ns = <0x9c40>; - }; + spi2m0-pins { + rockchip,pins = <0x01 0x06 0x08 0x19a 0x01 0x04 0x08 0x19a 0x01 0x05 0x08 0x19a>; + phandle = <0x402>; + }; - opp-2400000000 { - opp-supported-hw = <0xf9 0x80>; - opp-hz = <0x00 0x8f0d1800>; - opp-microvolt = <0xf4240 0xf4240 0xf4240 0xf4240 0xf4240 0xf4240>; - clock-latency-ns = <0x9c40>; + spi2m1-cs0 { + rockchip,pins = <0x04 0x07 0x08 0x19a>; + phandle = <0x406>; + }; }; - opp-j-m-408000000 { - opp-supported-hw = <0x06 0xffff>; - opp-hz = <0x00 0x18519600>; - opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - clock-latency-ns = <0x9c40>; + pcfg-pull-up-drv-level-15 { + drive-strength = <0x0f>; + phandle = <0x462>; + bias-pull-up; }; - opp-j-m-600000000 { - opp-supported-hw = <0x06 0xffff>; - opp-hz = <0x00 0x23c34600>; - opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - clock-latency-ns = <0x9c40>; + pcfg-pull-down-drv-level-13 { + drive-strength = <0x0d>; + bias-pull-down; + phandle = <0x469>; }; - opp-j-m-816000000 { - opp-supported-hw = <0x06 0xffff>; - opp-hz = <0x00 0x30a32c00>; - opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - clock-latency-ns = <0x9c40>; + pcfg-pull-up-drv-level-2 { + drive-strength = <0x02>; + phandle = <0x199>; + bias-pull-up; }; - opp-j-m-1008000000 { - opp-supported-hw = <0x06 0xffff>; - opp-hz = <0x00 0x3c14dc00>; - opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - clock-latency-ns = <0x9c40>; - }; + i2s1 { - opp-j-m-1200000000 { - opp-supported-hw = <0x06 0xffff>; - opp-hz = <0x00 0x47868c00>; - opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - clock-latency-ns = <0x9c40>; - }; + i2s1m0-sdo1 { + rockchip,pins = <0x04 0x0a 0x03 0x198>; + phandle = <0x127>; + }; - opp-j-m-1416000000 { - opp-supported-hw = <0x06 0xffff>; - opp-hz = <0x00 0x54667200>; - opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - opp-microvolt-L0 = <0xba284 0xba284 0xe7ef0 0xba284 0xba284 0xe7ef0>; - clock-latency-ns = <0x9c40>; - opp-suspend; - }; + i2s1m1-sdi1 { + rockchip,pins = <0x00 0x16 0x01 0x198>; + phandle = <0x380>; + }; - opp-j-m-1608000000 { - opp-supported-hw = <0x06 0xffff>; - opp-hz = <0x00 0x5fd82200>; - opp-microvolt = <0xc042c 0xc042c 0xe7ef0 0xc042c 0xc042c 0xe7ef0>; - opp-microvolt-L2 = <0xbd358 0xbd358 0xe7ef0 0xbd358 0xbd358 0xe7ef0>; - opp-microvolt-L3 = <0xba284 0xba284 0xe7ef0 0xba284 0xba284 0xe7ef0>; - opp-microvolt-L4 = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - opp-microvolt-L5 = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - opp-microvolt-L6 = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - opp-microvolt-L7 = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - clock-latency-ns = <0x9c40>; - }; + i2s1m0-sdi3 { + rockchip,pins = <0x04 0x08 0x03 0x198>; + phandle = <0x125>; + }; - opp-j-m-1800000000 { - opp-supported-hw = <0x06 0xffff>; - opp-hz = <0x00 0x6b49d200>; - opp-microvolt = <0xd59f8 0xd59f8 0xe7ef0 0xd59f8 0xd59f8 0xe7ef0>; - opp-microvolt-L1 = <0xd2924 0xd2924 0xe7ef0 0xd2924 0xd2924 0xe7ef0>; - opp-microvolt-L2 = <0xcf850 0xcf850 0xe7ef0 0xcf850 0xcf850 0xe7ef0>; - opp-microvolt-L3 = <0xcc77c 0xcc77c 0xe7ef0 0xcc77c 0xcc77c 0xe7ef0>; - opp-microvolt-L4 = <0xc96a8 0xc96a8 0xe7ef0 0xc96a8 0xc96a8 0xe7ef0>; - opp-microvolt-L5 = <0xc65d4 0xc65d4 0xe7ef0 0xc65d4 0xc65d4 0xe7ef0>; - opp-microvolt-L6 = <0xc3500 0xc3500 0xe7ef0 0xc3500 0xc3500 0xe7ef0>; - opp-microvolt-L7 = <0xc042c 0xc042c 0xe7ef0 0xc042c 0xc042c 0xe7ef0>; - clock-latency-ns = <0x9c40>; - }; + i2s1m0-mclk { + rockchip,pins = <0x04 0x00 0x03 0x19d>; + phandle = <0x37b>; + }; - opp-j-m-2016000000 { - opp-supported-hw = <0x06 0xffff>; - opp-hz = <0x00 0x7829b800>; - opp-microvolt = <0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0>; - opp-microvolt-L1 = <0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0>; - opp-microvolt-L2 = <0xe4e1c 0xe4e1c 0xe7ef0 0xe4e1c 0xe4e1c 0xe7ef0>; - opp-microvolt-L3 = <0xe1d48 0xe1d48 0xe7ef0 0xe1d48 0xe1d48 0xe7ef0>; - opp-microvolt-L4 = <0xdec74 0xdec74 0xe7ef0 0xdec74 0xdec74 0xe7ef0>; - opp-microvolt-L5 = <0xdbba0 0xdbba0 0xe7ef0 0xdbba0 0xdbba0 0xe7ef0>; - opp-microvolt-L6 = <0xd8acc 0xd8acc 0xe7ef0 0xd8acc 0xd8acc 0xe7ef0>; - opp-microvolt-L7 = <0xd59f8 0xd59f8 0xe7ef0 0xd59f8 0xd59f8 0xe7ef0>; - clock-latency-ns = <0x9c40>; - }; - }; + i2s1m0-sdi1 { + rockchip,pins = <0x04 0x06 0x03 0x198>; + phandle = <0x123>; + }; - cluster2-opp-table { - compatible = "operating-points-v2"; - opp-shared; - nvmem-cells = <0x27 0x28 0x21>; - nvmem-cell-names = "leakage\0opp-info\0specification_serial_number"; - rockchip,supported-hw; - rockchip,pvtm-hw = <0x06>; - rockchip,pvtm-voltage-sel-hw = <0x00 0x603 0x00 0x604 0x61c 0x01 0x61d 0x635 0x02 0x636 0x64e 0x03 0x64f 0x66c 0x04 0x66d 0x68a 0x05 0x68b 0x6a8 0x06 0x6a9 0x270f 0x07>; - rockchip,pvtm-voltage-sel = <0x00 0x63b 0x00 0x63c 0x64f 0x01 0x650 0x668 0x02 0x669 0x68b 0x03 0x68c 0x6ae 0x04 0x6af 0x6cf 0x05 0x6d0 0x6f0 0x06 0x6f1 0x270f 0x07>; - rockchip,pvtm-pvtpll; - rockchip,pvtm-offset = <0x18>; - rockchip,pvtm-sample-time = <0x44c>; - rockchip,pvtm-freq = <0x188940>; - rockchip,pvtm-volt = <0xb71b0>; - rockchip,pvtm-ref-temp = <0x19>; - rockchip,pvtm-temp-prop = <0x10e 0x10e>; - rockchip,pvtm-thermal-zone = "soc-thermal"; - rockchip,pvtm-low-len-sel = <0x03>; - rockchip,grf = <0x29>; - volt-mem-read-margin = <0xd0bd8 0x01 0xbac48 0x02 0xa4cb8 0x03 0x78d98 0x04>; - low-volt-mem-read-margin = <0x04>; - intermediate-threshold-freq = <0xf6180>; - rockchip,idle-threshold-freq = <0x21b100>; - rockchip,reboot-freq = <0x1b7740>; - rockchip,temp-hysteresis = <0x1388>; - rockchip,low-temp = <0x2710>; - rockchip,low-temp-min-volt = <0xb71b0>; - rockchip,high-temp = <0x14c08>; - rockchip,high-temp-max-freq = <0x21b100>; - phandle = <0x1a>; + i2s1m1-sdo2 { + rockchip,pins = <0x00 0x1c 0x01 0x198>; + phandle = <0x385>; + }; - opp-408000000 { - opp-supported-hw = <0xf9 0xffff>; - opp-hz = <0x00 0x18519600>; - opp-microvolt = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; - clock-latency-ns = <0x9c40>; - opp-suspend; - }; + i2s1m1-sdo0 { + rockchip,pins = <0x00 0x19 0x01 0x198>; + phandle = <0x383>; + }; - opp-600000000 { - opp-supported-hw = <0xf9 0xffff>; - opp-hz = <0x00 0x23c34600>; - opp-microvolt = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; - clock-latency-ns = <0x9c40>; - }; + i2s1m0-sdo2 { + rockchip,pins = <0x04 0x0b 0x03 0x198>; + phandle = <0x128>; + }; - opp-816000000 { - opp-supported-hw = <0xf9 0xffff>; - opp-hz = <0x00 0x30a32c00>; - opp-microvolt = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; - clock-latency-ns = <0x9c40>; - }; + i2s1m1-sdi2 { + rockchip,pins = <0x00 0x17 0x01 0x198>; + phandle = <0x381>; + }; - opp-1008000000 { - opp-supported-hw = <0xf9 0xffff>; - opp-hz = <0x00 0x3c14dc00>; - opp-microvolt = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; - clock-latency-ns = <0x9c40>; - }; + i2s1m0-sdo0 { + rockchip,pins = <0x04 0x09 0x03 0x198>; + phandle = <0x126>; + }; - opp-1200000000 { - opp-supported-hw = <0xf9 0xffff>; - opp-hz = <0x00 0x47868c00>; - opp-microvolt = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; - clock-latency-ns = <0x9c40>; - }; + i2s1m1-sdi0 { + rockchip,pins = <0x00 0x15 0x01 0x198>; + phandle = <0x37f>; + }; - opp-1416000000 { - opp-supported-hw = <0xf9 0xffff>; - opp-hz = <0x00 0x54667200>; - opp-microvolt = <0xb1008 0xb1008 0xf4240 0xb1008 0xb1008 0xf4240>; - opp-microvolt-L2 = <0xadf34 0xadf34 0xf4240 0xadf34 0xadf34 0xf4240>; - opp-microvolt-L3 = <0xaae60 0xaae60 0xf4240 0xaae60 0xaae60 0xf4240>; - opp-microvolt-L4 = <0xaae60 0xaae60 0xf4240 0xaae60 0xaae60 0xf4240>; - opp-microvolt-L5 = <0xa7d8c 0xa7d8c 0xf4240 0xa7d8c 0xa7d8c 0xf4240>; - opp-microvolt-L6 = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; - opp-microvolt-L7 = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; - clock-latency-ns = <0x9c40>; - }; + i2s1m0-sdi2 { + rockchip,pins = <0x04 0x07 0x03 0x198>; + phandle = <0x124>; + }; - opp-1608000000 { - opp-supported-hw = <0xf9 0xffff>; - opp-hz = <0x00 0x5fd82200>; - opp-microvolt = <0xba284 0xba284 0xf4240 0xba284 0xba284 0xf4240>; - opp-microvolt-L2 = <0xb71b0 0xb71b0 0xf4240 0xb71b0 0xb71b0 0xf4240>; - opp-microvolt-L3 = <0xb40dc 0xb40dc 0xf4240 0xb40dc 0xb40dc 0xf4240>; - opp-microvolt-L4 = <0xb1008 0xb1008 0xf4240 0xb1008 0xb1008 0xf4240>; - opp-microvolt-L5 = <0xadf34 0xadf34 0xf4240 0xadf34 0xadf34 0xf4240>; - opp-microvolt-L6 = <0xaae60 0xaae60 0xf4240 0xaae60 0xaae60 0xf4240>; - opp-microvolt-L7 = <0xaae60 0xaae60 0xf4240 0xaae60 0xaae60 0xf4240>; - clock-latency-ns = <0x9c40>; - }; + i2s1m1-sclk { + rockchip,pins = <0x00 0x0e 0x01 0x19d>; + phandle = <0x37e>; + }; - opp-1800000000 { - opp-supported-hw = <0xf9 0xffff>; - opp-hz = <0x00 0x6b49d200>; - opp-microvolt = <0xcf850 0xcf850 0xf4240 0xcf850 0xcf850 0xf4240>; - opp-microvolt-L1 = <0xcc77c 0xcc77c 0xf4240 0xcc77c 0xcc77c 0xf4240>; - opp-microvolt-L2 = <0xc96a8 0xc96a8 0xf4240 0xc96a8 0xc96a8 0xf4240>; - opp-microvolt-L3 = <0xc65d4 0xc65d4 0xf4240 0xc65d4 0xc65d4 0xf4240>; - opp-microvolt-L4 = <0xc3500 0xc3500 0xf4240 0xc3500 0xc3500 0xf4240>; - opp-microvolt-L5 = <0xc042c 0xc042c 0xf4240 0xc042c 0xc042c 0xf4240>; - opp-microvolt-L6 = <0xbd358 0xbd358 0xf4240 0xbd358 0xbd358 0xf4240>; - opp-microvolt-L7 = <0xba284 0xba284 0xf4240 0xba284 0xba284 0xf4240>; - clock-latency-ns = <0x9c40>; - }; + i2s1m0-sdi0 { + rockchip,pins = <0x04 0x05 0x03 0x198>; + phandle = <0x122>; + }; - opp-2016000000 { - opp-supported-hw = <0xf9 0xffff>; - opp-hz = <0x00 0x7829b800>; - opp-microvolt = <0xe1d48 0xe1d48 0xf4240 0xe1d48 0xe1d48 0xf4240>; - opp-microvolt-L1 = <0xdec74 0xdec74 0xf4240 0xdec74 0xdec74 0xf4240>; - opp-microvolt-L2 = <0xdbba0 0xdbba0 0xf4240 0xdbba0 0xdbba0 0xf4240>; - opp-microvolt-L3 = <0xd8acc 0xd8acc 0xf4240 0xd8acc 0xd8acc 0xf4240>; - opp-microvolt-L4 = <0xd59f8 0xd59f8 0xf4240 0xd59f8 0xd59f8 0xf4240>; - opp-microvolt-L5 = <0xd2924 0xd2924 0xf4240 0xd2924 0xd2924 0xf4240>; - opp-microvolt-L6 = <0xcf850 0xcf850 0xf4240 0xcf850 0xcf850 0xf4240>; - opp-microvolt-L7 = <0xcc77c 0xcc77c 0xf4240 0xcc77c 0xcc77c 0xf4240>; - clock-latency-ns = <0x9c40>; - }; + i2s1m1-sdo3 { + rockchip,pins = <0x00 0x1d 0x01 0x198>; + phandle = <0x386>; + }; - opp-2208000000 { - opp-supported-hw = <0xf9 0xffff>; - opp-hz = <0x00 0x839b6800>; - opp-microvolt = <0xf116c 0xf116c 0xf4240 0xf116c 0xf116c 0xf4240>; - opp-microvolt-L3 = <0xee098 0xee098 0xf4240 0xee098 0xee098 0xf4240>; - opp-microvolt-L4 = <0xeafc4 0xeafc4 0xf4240 0xeafc4 0xeafc4 0xf4240>; - opp-microvolt-L5 = <0xe7ef0 0xe7ef0 0xf4240 0xe7ef0 0xe7ef0 0xf4240>; - opp-microvolt-L6 = <0xe1d48 0xe1d48 0xf4240 0xe1d48 0xe1d48 0xf4240>; - opp-microvolt-L7 = <0xdec74 0xdec74 0xf4240 0xdec74 0xdec74 0xf4240>; - clock-latency-ns = <0x9c40>; - }; + i2s1m1-lrck { + rockchip,pins = <0x00 0x0f 0x01 0x19d>; + phandle = <0x37c>; + }; - opp-2256000000 { - opp-supported-hw = <0xf9 0x13>; - opp-hz = <0x00 0x8677d400>; - opp-microvolt = <0xf4240 0xf4240 0xf4240 0xf4240 0xf4240 0xf4240>; - clock-latency-ns = <0x9c40>; - }; + i2s1m0-sclk { + rockchip,pins = <0x04 0x01 0x03 0x19d>; + phandle = <0x121>; + }; - opp-2304000000 { - opp-supported-hw = <0xf9 0x24>; - opp-hz = <0x00 0x89544000>; - opp-microvolt = <0xf4240 0xf4240 0xf4240 0xf4240 0xf4240 0xf4240>; - clock-latency-ns = <0x9c40>; - }; + i2s1m1-sdo1 { + rockchip,pins = <0x00 0x1a 0x01 0x198>; + phandle = <0x384>; + }; - opp-2352000000 { - opp-supported-hw = <0xf9 0x48>; - opp-hz = <0x00 0x8c30ac00>; - opp-microvolt = <0xf4240 0xf4240 0xf4240 0xf4240 0xf4240 0xf4240>; - clock-latency-ns = <0x9c40>; - }; + i2s1m0-sdo3 { + rockchip,pins = <0x04 0x0c 0x03 0x198>; + phandle = <0x129>; + }; - opp-2400000000 { - opp-supported-hw = <0xf9 0x80>; - opp-hz = <0x00 0x8f0d1800>; - opp-microvolt = <0xf4240 0xf4240 0xf4240 0xf4240 0xf4240 0xf4240>; - clock-latency-ns = <0x9c40>; - }; + i2s1m1-sdi3 { + rockchip,pins = <0x00 0x18 0x01 0x198>; + phandle = <0x382>; + }; - opp-j-m-408000000 { - opp-supported-hw = <0x06 0xffff>; - opp-hz = <0x00 0x18519600>; - opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - clock-latency-ns = <0x9c40>; - }; + i2s1m0-lrck { + rockchip,pins = <0x04 0x02 0x03 0x19d>; + phandle = <0x120>; + }; - opp-j-m-600000000 { - opp-supported-hw = <0x06 0xffff>; - opp-hz = <0x00 0x23c34600>; - opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - clock-latency-ns = <0x9c40>; + i2s1m1-mclk { + rockchip,pins = <0x00 0x0d 0x01 0x19d>; + phandle = <0x37d>; + }; }; - opp-j-m-816000000 { - opp-supported-hw = <0x06 0xffff>; - opp-hz = <0x00 0x30a32c00>; - opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - clock-latency-ns = <0x9c40>; - }; + ddrphych2 { - opp-j-m-1008000000 { - opp-supported-hw = <0x06 0xffff>; - opp-hz = <0x00 0x3c14dc00>; - opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - clock-latency-ns = <0x9c40>; + ddrphych2-pins { + rockchip,pins = <0x04 0x08 0x07 0x198 0x04 0x09 0x07 0x198 0x04 0x0a 0x07 0x198 0x04 0x0b 0x07 0x198>; + phandle = <0x31a>; + }; }; - opp-j-m-1200000000 { - opp-supported-hw = <0x06 0xffff>; - opp-hz = <0x00 0x47868c00>; - opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - clock-latency-ns = <0x9c40>; + pcfg-pull-none-drv-level-12 { + drive-strength = <0x0c>; + bias-disable; + phandle = <0x456>; }; - opp-j-m-1416000000 { - opp-supported-hw = <0x06 0xffff>; - opp-hz = <0x00 0x54667200>; - opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - opp-microvolt-L0 = <0xba284 0xba284 0xe7ef0 0xba284 0xba284 0xe7ef0>; - clock-latency-ns = <0x9c40>; - opp-suspend; - }; + i2c1 { - opp-j-m-1608000000 { - opp-supported-hw = <0x06 0xffff>; - opp-hz = <0x00 0x5fd82200>; - opp-microvolt = <0xc042c 0xc042c 0xe7ef0 0xc042c 0xc042c 0xe7ef0>; - opp-microvolt-L2 = <0xbd358 0xbd358 0xe7ef0 0xbd358 0xbd358 0xe7ef0>; - opp-microvolt-L3 = <0xba284 0xba284 0xe7ef0 0xba284 0xba284 0xe7ef0>; - opp-microvolt-L4 = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - opp-microvolt-L5 = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - opp-microvolt-L6 = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - opp-microvolt-L7 = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - clock-latency-ns = <0x9c40>; - }; + i2c1m2-xfer { + rockchip,pins = <0x00 0x1c 0x09 0x19d 0x00 0x1d 0x09 0x19d>; + phandle = <0x148>; + }; - opp-j-m-1800000000 { - opp-supported-hw = <0x06 0xffff>; - opp-hz = <0x00 0x6b49d200>; - opp-microvolt = <0xd59f8 0xd59f8 0xe7ef0 0xd59f8 0xd59f8 0xe7ef0>; - opp-microvolt-L1 = <0xd2924 0xd2924 0xe7ef0 0xd2924 0xd2924 0xe7ef0>; - opp-microvolt-L2 = <0xcf850 0xcf850 0xe7ef0 0xcf850 0xcf850 0xe7ef0>; - opp-microvolt-L3 = <0xcc77c 0xcc77c 0xe7ef0 0xcc77c 0xcc77c 0xe7ef0>; - opp-microvolt-L4 = <0xc96a8 0xc96a8 0xe7ef0 0xc96a8 0xc96a8 0xe7ef0>; - opp-microvolt-L5 = <0xc65d4 0xc65d4 0xe7ef0 0xc65d4 0xc65d4 0xe7ef0>; - opp-microvolt-L6 = <0xc3500 0xc3500 0xe7ef0 0xc3500 0xc3500 0xe7ef0>; - opp-microvolt-L7 = <0xc042c 0xc042c 0xe7ef0 0xc042c 0xc042c 0xe7ef0>; - clock-latency-ns = <0x9c40>; - }; + i2c1m1-xfer { + rockchip,pins = <0x00 0x08 0x02 0x19d 0x00 0x09 0x02 0x19d>; + phandle = <0x357>; + }; - opp-j-m-2016000000 { - opp-supported-hw = <0x06 0xffff>; - opp-hz = <0x00 0x7829b800>; - opp-microvolt = <0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0>; - opp-microvolt-L1 = <0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0>; - opp-microvolt-L2 = <0xe4e1c 0xe4e1c 0xe7ef0 0xe4e1c 0xe4e1c 0xe7ef0>; - opp-microvolt-L3 = <0xe1d48 0xe1d48 0xe7ef0 0xe1d48 0xe1d48 0xe7ef0>; - opp-microvolt-L4 = <0xdec74 0xdec74 0xe7ef0 0xdec74 0xdec74 0xe7ef0>; - opp-microvolt-L5 = <0xdbba0 0xdbba0 0xe7ef0 0xdbba0 0xdbba0 0xe7ef0>; - opp-microvolt-L6 = <0xd8acc 0xd8acc 0xe7ef0 0xd8acc 0xd8acc 0xe7ef0>; - opp-microvolt-L7 = <0xd59f8 0xd59f8 0xe7ef0 0xd59f8 0xd59f8 0xe7ef0>; - clock-latency-ns = <0x9c40>; + i2c1m0-xfer { + rockchip,pins = <0x00 0x0d 0x09 0x19d 0x00 0x0e 0x09 0x19d>; + phandle = <0x356>; + }; + + i2c1m4-xfer { + rockchip,pins = <0x01 0x1a 0x09 0x19d 0x01 0x1b 0x09 0x19d>; + phandle = <0x359>; + }; + + i2c1m3-xfer { + rockchip,pins = <0x02 0x1c 0x09 0x19d 0x02 0x1d 0x09 0x19d>; + phandle = <0x358>; + }; }; - }; - arm-pmu { - compatible = "arm,armv8-pmuv3"; - interrupts = <0x01 0x07 0x08>; - interrupt-affinity = <0x06 0x07 0x08 0x09 0x0a 0x0b 0x0c 0x0d>; - phandle = <0x20c>; - }; + pwm7 { - cpuinfo { - compatible = "rockchip,cpuinfo"; - nvmem-cells = <0x2a 0x2b 0x2c>; - nvmem-cell-names = "id\0cpu-version\0cpu-code"; - }; + pwm7m3-pins { + rockchip,pins = <0x04 0x16 0x0b 0x198>; + phandle = <0x3d3>; + }; - csi2-dcphy0 { - compatible = "rockchip,rk3588-csi2-dphy"; - rockchip,hw = <0x2d 0x2e>; - phys = <0x2f 0x30>; - phy-names = "dcphy0\0dcphy1"; - status = "disabled"; - phandle = <0x20d>; - }; + pwm7m2-pins { + rockchip,pins = <0x01 0x13 0x0b 0x198>; + phandle = <0x3d2>; + }; - csi2-dcphy1 { - compatible = "rockchip,rk3588-csi2-dphy"; - rockchip,hw = <0x2d 0x2e>; - phys = <0x2f 0x30>; - phy-names = "dcphy0\0dcphy1"; - status = "disabled"; - phandle = <0x20e>; - }; + pwm7m1-pins { + rockchip,pins = <0x04 0x1c 0x0b 0x198>; + phandle = <0x3d1>; + }; - csi2-dphy0 { - compatible = "rockchip,rk3588-csi2-dphy"; - rockchip,hw = <0x2d 0x2e>; - phys = <0x2f 0x30>; - phy-names = "dcphy0\0dcphy1"; - status = "okay"; - firefly-compatible; - phandle = <0x20f>; + pwm7m0-pins { + rockchip,pins = <0x00 0x18 0x0b 0x198>; + phandle = <0x16c>; + }; + }; - ports { - #address-cells = <0x01>; - #size-cells = <0x00>; + pcfg-pull-none-drv-level-5 { + drive-strength = <0x05>; + bias-disable; + phandle = <0x2f1>; + }; - port@0 { - reg = <0x00>; - #address-cells = <0x01>; - #size-cells = <0x00>; + gmac0 { - endpoint@0 { - reg = <0x00>; - remote-endpoint = <0x31>; - data-lanes = <0x01 0x02 0x03 0x04>; - phandle = <0x183>; - }; + gmac0-clkinout { + rockchip,pins = <0x04 0x13 0x01 0x198>; + phandle = <0x46d>; + }; - endpoint@1 { - reg = <0x01>; - remote-endpoint = <0x32>; - data-lanes = <0x01 0x02 0x03 0x04>; - phandle = <0x184>; - }; + gmac0-miim { + rockchip,pins = <0x04 0x14 0x01 0x198 0x04 0x15 0x01 0x198>; + phandle = <0x1c1>; }; - port@1 { - reg = <0x01>; - #address-cells = <0x01>; - #size-cells = <0x00>; + gmac0-tx-bus2 { + rockchip,pins = <0x02 0x0e 0x01 0x19a 0x02 0x0f 0x01 0x19a 0x02 0x10 0x01 0x198>; + phandle = <0x1c2>; + }; - endpoint@0 { - reg = <0x00>; - remote-endpoint = <0x33>; - phandle = <0x4d>; - }; + gmac0-rgmii-bus { + rockchip,pins = <0x02 0x06 0x01 0x198 0x02 0x07 0x01 0x198 0x02 0x09 0x01 0x19a 0x02 0x0a 0x01 0x19a>; + phandle = <0x1c5>; }; - }; - }; - csi2-dphy1 { - compatible = "rockchip,rk3588-csi2-dphy"; - rockchip,hw = <0x2d 0x2e>; - phys = <0x2f 0x30>; - phy-names = "dcphy0\0dcphy1"; - status = "disabled"; - phandle = <0x210>; - }; + gmac0-ppsclk { + rockchip,pins = <0x02 0x14 0x01 0x198>; + phandle = <0x46e>; + }; - csi2-dphy2 { - compatible = "rockchip,rk3588-csi2-dphy"; - rockchip,hw = <0x2d 0x2e>; - phys = <0x2f 0x30>; - phy-names = "dcphy0\0dcphy1"; - status = "disabled"; - phandle = <0x211>; - }; + gmac0-txer { + rockchip,pins = <0x04 0x16 0x01 0x198>; + phandle = <0x471>; + }; - csi2-dphy3 { - compatible = "rockchip,rk3588-csi2-dphy"; - rockchip,hw = <0x2d 0x2e>; - phys = <0x2f 0x30>; - phy-names = "dcphy0\0dcphy1"; - status = "disabled"; - phandle = <0x212>; - }; + gmac0-ptp-refclk { + rockchip,pins = <0x02 0x0c 0x01 0x198>; + phandle = <0x470>; + }; - csi2-dphy4 { - compatible = "rockchip,rk3588-csi2-dphy"; - rockchip,hw = <0x2d 0x2e>; - phys = <0x2f 0x30>; - phy-names = "dcphy0\0dcphy1"; - status = "disabled"; - phandle = <0x213>; - }; + gmac0-rx-bus2 { + rockchip,pins = <0x02 0x11 0x01 0x198 0x02 0x12 0x01 0x198 0x04 0x12 0x01 0x198>; + phandle = <0x1c3>; + }; - csi2-dphy5 { - compatible = "rockchip,rk3588-csi2-dphy"; - rockchip,hw = <0x2d 0x2e>; - phys = <0x2f 0x30>; - phy-names = "dcphy0\0dcphy1"; - status = "disabled"; - phandle = <0x214>; - }; + gmac0-rgmii-clk { + rockchip,pins = <0x02 0x08 0x01 0x198 0x02 0x0b 0x01 0x198>; + phandle = <0x1c4>; + }; - display-subsystem { - compatible = "rockchip,display-subsystem"; - ports = <0x34>; - clocks = <0x35 0x36>; - clock-names = "hdmi0_phy_pll\0hdmi1_phy_pll"; - memory-region = <0x37>; - memory-region-names = "drm-logo"; - phandle = <0x215>; + gmac0-ppstring { + rockchip,pins = <0x02 0x0d 0x01 0x198>; + phandle = <0x46f>; + }; + }; - route { + pwm12 { - route-dp0 { - status = "disabled"; - logo,uboot = "logo.bmp"; - logo,kernel = "logo_kernel.bmp"; - logo,mode = "center"; - charge_logo,mode = "center"; - connect = <0x38>; - phandle = <0x216>; + pwm12m1-pins { + rockchip,pins = <0x04 0x0d 0x0b 0x198>; + phandle = <0x3dd>; }; - route-dsi0 { - status = "disabled"; - logo,uboot = "logo.bmp"; - logo,kernel = "logo_kernel.bmp"; - logo,mode = "center"; - charge_logo,mode = "center"; - connect = <0x39>; - phandle = <0x217>; + pwm12m0-pins { + rockchip,pins = <0x03 0x0d 0x0b 0x198>; + phandle = <0x171>; }; + }; - route-dsi1 { - status = "disabled"; - logo,uboot = "logo.bmp"; - logo,kernel = "logo_kernel.bmp"; - logo,mode = "center"; - charge_logo,mode = "center"; - connect = <0x3a>; - phandle = <0x218>; - }; + usb-typec { - route-edp0 { - status = "disabled"; - logo,uboot = "logo.bmp"; - logo,kernel = "logo_kernel.bmp"; - logo,mode = "center"; - charge_logo,mode = "center"; - connect = <0x3b>; - phandle = <0x219>; + usbc0-int { + rockchip,pins = <0x00 0x1b 0x00 0x198>; + phandle = <0x17b>; }; - route-edp1 { - status = "disabled"; - logo,uboot = "logo.bmp"; - logo,kernel = "logo_kernel.bmp"; - logo,mode = "center"; - charge_logo,mode = "center"; - phandle = <0x21a>; + usb-5v-ctrl { + rockchip,pins = <0x01 0x03 0x00 0x198>; + phandle = <0x1ef>; }; + }; - route-hdmi0 { - status = "okay"; - logo,uboot = "logo.bmp"; - logo,kernel = "logo_kernel.bmp"; - logo,mode = "center"; - charge_logo,mode = "center"; - connect = <0x3c>; - phandle = <0x21b>; + uart6 { + + uart6m1-ctsn { + rockchip,pins = <0x01 0x03 0x0a 0x198>; + phandle = <0x436>; }; - route-rgb { - status = "disabled"; - logo,uboot = "logo.bmp"; - logo,kernel = "logo_kernel.bmp"; - logo,mode = "center"; - charge_logo,mode = "center"; - connect = <0x3d>; - phandle = <0x21c>; + uart6m2-xfer { + rockchip,pins = <0x01 0x19 0x0a 0x19e 0x01 0x18 0x0a 0x19e>; + phandle = <0x437>; }; - route-dp1 { - status = "disabled"; - logo,uboot = "logo.bmp"; - logo,kernel = "logo_kernel.bmp"; - logo,mode = "center"; - charge_logo,mode = "center"; - connect = <0x3e>; - phandle = <0x21d>; + uart6m0-ctsn { + rockchip,pins = <0x02 0x09 0x0a 0x198>; + phandle = <0x439>; }; - route-hdmi1 { - status = "disabled"; - logo,uboot = "logo.bmp"; - logo,kernel = "logo_kernel.bmp"; - logo,mode = "center"; - charge_logo,mode = "center"; - connect = <0x3f>; - phandle = <0x21e>; + uart6m1-xfer { + rockchip,pins = <0x01 0x00 0x0a 0x19e 0x01 0x01 0x0a 0x19e>; + phandle = <0x165>; }; - }; - }; - dmc { - compatible = "rockchip,rk3588-dmc"; - interrupts = <0x00 0x49 0x04>; - interrupt-names = "complete"; - devfreq-events = <0x40>; - clocks = <0x0e 0x04>; - clock-names = "dmc_clk"; - operating-points-v2 = <0x41>; - upthreshold = <0x28>; - downdifferential = <0x14>; - system-status-level = <0x01 0x04 0x08 0x08 0x02 0x01 0x10 0x04 0x10000 0x04 0x80000 0x04 0x1000 0x08 0x4000 0x08 0x2000 0x08 0xc00 0x08 0x40000 0x08 0x200000 0x08>; - auto-freq-en = <0x01>; - status = "disabled"; - center-supply = <0x42>; - mem-supply = <0x43>; - phandle = <0x21f>; - }; + uart6m0-xfer { + rockchip,pins = <0x02 0x06 0x0a 0x19e 0x02 0x07 0x0a 0x19e>; + phandle = <0x438>; + }; - dmc-opp-table { - compatible = "operating-points-v2"; - nvmem-cells = <0x44 0x45 0x21>; - nvmem-cell-names = "leakage\0opp-info\0specification_serial_number"; - rockchip,supported-hw; - rockchip,leakage-voltage-sel = <0x01 0x1f 0x00 0x20 0x2c 0x01 0x2d 0x39 0x02 0x3a 0xfe 0x03>; - rockchip,temp-hysteresis = <0x1388>; - rockchip,low-temp = <0x2710>; - rockchip,low-temp-min-volt = <0xb71b0>; - phandle = <0x41>; + uart6m1-rtsn { + rockchip,pins = <0x01 0x02 0x0a 0x198>; + phandle = <0x1e5>; + }; - opp-528000000 { - opp-supported-hw = <0xf9 0xffff>; - opp-hz = <0x00 0x1f78a400>; - opp-microvolt = <0xa4cb8 0xa4cb8 0xd59f8 0xb1008 0xb1008 0xb71b0>; - opp-microvolt-L1 = <0xa4cb8 0xa4cb8 0xd59f8 0xaae60 0xaae60 0xb71b0>; - opp-microvolt-L2 = <0xa4cb8 0xa4cb8 0xd59f8 0xa7d8c 0xa7d8c 0xb71b0>; - opp-microvolt-L3 = <0xa4cb8 0xa4cb8 0xd59f8 0xa4cb8 0xa4cb8 0xb71b0>; + uart6m0-rtsn { + rockchip,pins = <0x02 0x08 0x0a 0x198>; + phandle = <0x43a>; + }; }; - opp-1068000000 { - opp-supported-hw = <0xf9 0xffff>; - opp-hz = <0x00 0x3fa86300>; - opp-microvolt = <0xb1008 0xb1008 0xd59f8 0xb40dc 0xb40dc 0xb71b0>; - opp-microvolt-L1 = <0xaae60 0xaae60 0xd59f8 0xadf34 0xadf34 0xb71b0>; - opp-microvolt-L2 = <0xa4cb8 0xa4cb8 0xd59f8 0xaae60 0xaae60 0xb71b0>; - opp-microvolt-L3 = <0xa4cb8 0xa4cb8 0xd59f8 0xa7d8c 0xa7d8c 0xb71b0>; + pcfg-pull-down-drv-level-8 { + drive-strength = <0x08>; + bias-pull-down; + phandle = <0x464>; }; - opp-1560000000 { - opp-supported-hw = <0xf9 0xffff>; - opp-hz = <0x00 0x5cfbb600>; - opp-microvolt = <0xc3500 0xc3500 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; - opp-microvolt-L1 = <0xbd358 0xbd358 0xd59f8 0xb1008 0xb1008 0xb71b0>; - opp-microvolt-L2 = <0xb71b0 0xb71b0 0xd59f8 0xadf34 0xadf34 0xb71b0>; - opp-microvolt-L3 = <0xb1008 0xb1008 0xd59f8 0xaae60 0xaae60 0xb71b0>; - }; + gpu { - opp-2750000000 { - opp-supported-hw = <0xf9 0xffff>; - opp-hz = <0x00 0xa3e9ab80>; - opp-microvolt = <0xd59f8 0xd59f8 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; - opp-microvolt-L1 = <0xcf850 0xcf850 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; - opp-microvolt-L2 = <0xcc77c 0xcc77c 0xd59f8 0xb1008 0xb1008 0xb71b0>; - opp-microvolt-L3 = <0xc96a8 0xc8320 0xd59f8 0xaae60 0xaae60 0xb71b0>; + gpu-pins { + rockchip,pins = <0x00 0x15 0x02 0x198>; + phandle = <0x333>; + }; }; - opp-j-m-528000000 { - opp-supported-hw = <0x06 0xffff>; - opp-hz = <0x00 0x1f78a400>; - opp-microvolt = <0xb71b0 0xb71b0 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; - }; + spi0 { - opp-j-m-1068000000 { - opp-supported-hw = <0x06 0xffff>; - opp-hz = <0x00 0x3fa86300>; - opp-microvolt = <0xb71b0 0xb71b0 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; - }; + spi0m2-cs1 { + rockchip,pins = <0x01 0x0d 0x08 0x19a>; + phandle = <0x3f8>; + }; - opp-j-m-1560000000 { - opp-supported-hw = <0x06 0xffff>; - opp-hz = <0x00 0x5cfbb600>; - opp-microvolt = <0xc3500 0xc3500 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; - opp-microvolt-L1 = <0xbd358 0xbd358 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; - opp-microvolt-L2 = <0xb71b0 0xb71b0 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; - opp-microvolt-L3 = <0xb71b0 0xb71b0 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; - }; + spi0m0-cs0 { + rockchip,pins = <0x00 0x19 0x08 0x19a>; + phandle = <0x14e>; + }; - opp-j-m-2750000000 { - opp-supported-hw = <0x06 0xffff>; - opp-hz = <0x00 0xa3e9ab80>; - opp-microvolt = <0xd59f8 0xd59f8 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; - opp-microvolt-L1 = <0xcf850 0xcf850 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; - opp-microvolt-L2 = <0xcc77c 0xcc77c 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; - opp-microvolt-L3 = <0xc96a8 0xc8320 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; - }; - }; + spi0m3-pins { + rockchip,pins = <0x03 0x1b 0x08 0x19a 0x03 0x19 0x08 0x19a 0x03 0x1a 0x08 0x19a>; + phandle = <0x3f9>; + }; - firmware { + spi0m3-cs1 { + rockchip,pins = <0x03 0x1d 0x08 0x19a>; + phandle = <0x3fb>; + }; - scmi { - compatible = "arm,scmi-smc"; - shmem = <0x46>; - arm,smc-id = <0x82000010>; - #address-cells = <0x01>; - #size-cells = <0x00>; - phandle = <0x220>; + spi0m2-pins { + rockchip,pins = <0x01 0x0b 0x08 0x19a 0x01 0x09 0x08 0x19a 0x01 0x0a 0x08 0x19a>; + phandle = <0x3f6>; + }; - protocol@14 { - reg = <0x14>; - #clock-cells = <0x01>; - assigned-clocks = <0x0e 0x00 0x0e 0x02 0x0e 0x03>; - assigned-clock-rates = <0x30a32c00 0x30a32c00 0x30a32c00>; - phandle = <0x0e>; + spi0m1-cs0 { + rockchip,pins = <0x04 0x0a 0x08 0x19a>; + phandle = <0x3f4>; }; - protocol@16 { - reg = <0x16>; - #reset-cells = <0x01>; - phandle = <0x11a>; + spi0m1-pins { + rockchip,pins = <0x04 0x02 0x08 0x19a 0x04 0x00 0x08 0x19a 0x04 0x01 0x08 0x19a>; + phandle = <0x3f3>; }; - }; - sdei { - compatible = "arm,sdei-1.0"; - method = "smc"; - phandle = <0x221>; - }; + spi0m0-cs1 { + rockchip,pins = <0x00 0x0f 0x08 0x19a>; + phandle = <0x14f>; + }; - optee { - compatible = "linaro,optee-tz"; - method = "smc"; - phandle = <0x222>; - }; - }; + spi0m2-cs0 { + rockchip,pins = <0x01 0x0c 0x08 0x19a>; + phandle = <0x3f7>; + }; - jpege-ccu { - compatible = "rockchip,vpu-jpege-ccu"; - status = "okay"; - phandle = <0xbd>; - }; + spi0m0-pins { + rockchip,pins = <0x00 0x16 0x08 0x19a 0x00 0x17 0x08 0x19a 0x00 0x10 0x08 0x19a>; + phandle = <0x150>; + }; - mipi-dcphy-dummy { - phandle = <0x223>; - }; + spi0m1-cs1 { + rockchip,pins = <0x04 0x09 0x08 0x19a>; + phandle = <0x3f5>; + }; - mipi0-csi2 { - compatible = "rockchip,rk3588-mipi-csi2"; - rockchip,hw = <0x47 0x48 0x49 0x4a 0x4b 0x4c>; - status = "disabled"; - phandle = <0x224>; - }; + spi0m3-cs0 { + rockchip,pins = <0x03 0x1c 0x08 0x19a>; + phandle = <0x3fa>; + }; + }; - mipi1-csi2 { - compatible = "rockchip,rk3588-mipi-csi2"; - rockchip,hw = <0x47 0x48 0x49 0x4a 0x4b 0x4c>; - status = "disabled"; - phandle = <0x225>; - }; + fspi { - mipi2-csi2 { - compatible = "rockchip,rk3588-mipi-csi2"; - rockchip,hw = <0x47 0x48 0x49 0x4a 0x4b 0x4c>; - status = "okay"; - firefly-compatible; - phandle = <0x226>; + fspim0-cs1 { + rockchip,pins = <0x02 0x1f 0x02 0x199>; + phandle = <0x329>; + }; - ports { - #address-cells = <0x01>; - #size-cells = <0x00>; + fspim1-pins { + rockchip,pins = <0x02 0x0b 0x03 0x199 0x02 0x0c 0x03 0x199 0x02 0x06 0x03 0x199 0x02 0x07 0x03 0x199 0x02 0x08 0x03 0x199 0x02 0x09 0x03 0x199>; + phandle = <0x32c>; + }; - port@0 { - reg = <0x00>; - #address-cells = <0x01>; - #size-cells = <0x00>; + fspim0-pins { + rockchip,pins = <0x02 0x00 0x02 0x199 0x02 0x1e 0x02 0x199 0x02 0x18 0x02 0x199 0x02 0x19 0x02 0x199 0x02 0x1a 0x02 0x199 0x02 0x1b 0x02 0x199>; + phandle = <0x328>; + }; - endpoint@0 { - reg = <0x00>; - remote-endpoint = <0x4d>; - phandle = <0x33>; - }; + fspim1-cs1 { + rockchip,pins = <0x02 0x0d 0x03 0x199>; + phandle = <0x32d>; }; - port@1 { - reg = <0x01>; - #address-cells = <0x01>; - #size-cells = <0x00>; + fspim2-cs1 { + rockchip,pins = <0x03 0x15 0x02 0x199>; + phandle = <0x32b>; + }; - endpoint@0 { - reg = <0x00>; - remote-endpoint = <0x4e>; - phandle = <0x54>; - }; + fspim2-pins { + rockchip,pins = <0x03 0x05 0x05 0x199 0x03 0x14 0x02 0x199 0x03 0x00 0x05 0x199 0x03 0x01 0x05 0x199 0x03 0x02 0x05 0x199 0x03 0x03 0x05 0x199>; + phandle = <0x32a>; }; }; - }; - mipi3-csi2 { - compatible = "rockchip,rk3588-mipi-csi2"; - rockchip,hw = <0x47 0x48 0x49 0x4a 0x4b 0x4c>; - status = "disabled"; - phandle = <0x227>; - }; + pcfg-pull-up-drv-level-13 { + drive-strength = <0x0d>; + phandle = <0x460>; + bias-pull-up; + }; - mipi4-csi2 { - compatible = "rockchip,rk3588-mipi-csi2"; - rockchip,hw = <0x47 0x48 0x49 0x4a 0x4b 0x4c>; - status = "disabled"; - phandle = <0x228>; - }; + clk32k { - mipi5-csi2 { - compatible = "rockchip,rk3588-mipi-csi2"; - rockchip,hw = <0x47 0x48 0x49 0x4a 0x4b 0x4c>; - status = "disabled"; - phandle = <0x229>; - }; + clk32k-out0 { + rockchip,pins = <0x00 0x0a 0x02 0x198>; + phandle = <0x315>; + }; - mpp-srv { - compatible = "rockchip,mpp-service"; - rockchip,taskqueue-count = <0x0c>; - rockchip,resetgroup-count = <0x01>; - status = "okay"; - phandle = <0xb8>; - }; + clk32k-in { + rockchip,pins = <0x00 0x0a 0x01 0x198>; + phandle = <0x314>; + }; - psci { - compatible = "arm,psci-1.0"; - method = "smc"; - }; + clk32k-out1 { + rockchip,pins = <0x02 0x15 0x01 0x198>; + phandle = <0x316>; + }; + }; - rkcif-dvp { - compatible = "rockchip,rkcif-dvp"; - rockchip,hw = <0x4f>; - iommus = <0x50>; - status = "disabled"; - phandle = <0x51>; - }; + pcfg-pull-down-drv-level-11 { + drive-strength = <0x0b>; + bias-pull-down; + phandle = <0x467>; + }; - rkcif-dvp-sditf { - compatible = "rockchip,rkcif-sditf"; - rockchip,cif = <0x51>; - status = "disabled"; - phandle = <0x22a>; - }; + pcie30phy { - rkcif-mipi-lvds { - compatible = "rockchip,rkcif-mipi-lvds"; - rockchip,hw = <0x4f>; - iommus = <0x50>; - status = "disabled"; - phandle = <0x52>; - }; + pcie30phy-pins { + rockchip,pins = <0x01 0x14 0x04 0x198 0x01 0x19 0x04 0x198>; + phandle = <0x3a4>; + }; + }; - rkcif-mipi-lvds-sditf { - compatible = "rockchip,rkcif-sditf"; - rockchip,cif = <0x52>; - status = "disabled"; - phandle = <0x22b>; - }; + pcfg-pull-up-drv-level-0 { + drive-strength = <0x00>; + phandle = <0x2f3>; + bias-pull-up; + }; - rkcif-mipi-lvds-sditf-vir1 { - compatible = "rockchip,rkcif-sditf"; - rockchip,cif = <0x52>; - status = "disabled"; - phandle = <0x22c>; - }; + ddrphych0 { - rkcif-mipi-lvds-sditf-vir2 { - compatible = "rockchip,rkcif-sditf"; - rockchip,cif = <0x52>; - status = "disabled"; - phandle = <0x22d>; - }; + ddrphych0-pins { + rockchip,pins = <0x04 0x00 0x07 0x198 0x04 0x01 0x07 0x198 0x04 0x02 0x07 0x198 0x04 0x03 0x07 0x198>; + phandle = <0x318>; + }; + }; - rkcif-mipi-lvds-sditf-vir3 { - compatible = "rockchip,rkcif-sditf"; - rockchip,cif = <0x52>; - status = "disabled"; - phandle = <0x22e>; - }; + pcfg-pull-none-drv-level-10 { + drive-strength = <0x0a>; + bias-disable; + phandle = <0x454>; + }; - rkcif-mipi-lvds1 { - compatible = "rockchip,rkcif-mipi-lvds"; - rockchip,hw = <0x4f>; - iommus = <0x50>; - status = "disabled"; - phandle = <0x53>; - }; + pwm5 { - rkcif-mipi-lvds1-sditf { - compatible = "rockchip,rkcif-sditf"; - rockchip,cif = <0x53>; - status = "disabled"; - phandle = <0x22f>; - }; + pwm5m2-pins { + rockchip,pins = <0x04 0x14 0x0b 0x198>; + phandle = <0x3ce>; + }; - rkcif-mipi-lvds1-sditf-vir1 { - compatible = "rockchip,rkcif-sditf"; - rockchip,cif = <0x53>; - status = "disabled"; - phandle = <0x230>; - }; + pwm5m1-pins { + rockchip,pins = <0x00 0x16 0x0b 0x198>; + phandle = <0x16a>; + }; - rkcif-mipi-lvds1-sditf-vir2 { - compatible = "rockchip,rkcif-sditf"; - rockchip,cif = <0x53>; - status = "disabled"; - phandle = <0x231>; - }; + pwm5m0-pins { + rockchip,pins = <0x00 0x09 0x03 0x198>; + phandle = <0x3cd>; + }; + }; - rkcif-mipi-lvds1-sditf-vir3 { - compatible = "rockchip,rkcif-sditf"; - rockchip,cif = <0x53>; - status = "disabled"; - phandle = <0x232>; - }; + pcfg-pull-none-drv-level-3 { + drive-strength = <0x03>; + bias-disable; + phandle = <0x2ef>; + }; - rkcif-mipi-lvds2 { - compatible = "rockchip,rkcif-mipi-lvds"; - rockchip,hw = <0x4f>; - iommus = <0x50>; - status = "okay"; - phandle = <0x55>; + pwm10 { - port { + pwm10m2-pins { + rockchip,pins = <0x03 0x1b 0x0b 0x198>; + phandle = <0x3d9>; + }; - endpoint { - remote-endpoint = <0x54>; - phandle = <0x4e>; + pwm10m1-pins { + rockchip,pins = <0x04 0x1b 0x0b 0x198>; + phandle = <0x3d8>; + }; + + pwm10m0-pins { + rockchip,pins = <0x03 0x00 0x0b 0x198>; + phandle = <0x16f>; }; }; - }; - rkcif-mipi-lvds2-sditf { - compatible = "rockchip,rkcif-sditf"; - rockchip,cif = <0x55>; - status = "okay"; - phandle = <0x233>; + pcfg-pull-down-smt { + input-schmitt-enable; + bias-pull-down; + phandle = <0x2ff>; + }; - port { + gpio@fec50000 { + gpio-controller; + interrupts = <0x00 0x119 0x04>; + clocks = <0x02 0x83 0x02 0x84>; + compatible = "rockchip,gpio-bank"; + #interrupt-cells = <0x02>; + reg = <0x00 0xfec50000 0x00 0x100>; + phandle = <0x10d>; + #gpio-cells = <0x02>; + gpio-ranges = <0x197 0x00 0x80 0x20>; + interrupt-controller; + }; - endpoint { - remote-endpoint = <0x56>; - phandle = <0x59>; - }; + pcfg-pull-down { + bias-pull-down; + phandle = <0x2ec>; }; - }; - rkcif-mipi-lvds2-sditf-vir1 { - compatible = "rockchip,rkcif-sditf"; - rockchip,cif = <0x55>; - status = "disabled"; - phandle = <0x234>; - }; + uart4 { - rkcif-mipi-lvds2-sditf-vir2 { - compatible = "rockchip,rkcif-sditf"; - rockchip,cif = <0x55>; - status = "disabled"; - phandle = <0x235>; - }; + uart4m2-xfer { + rockchip,pins = <0x01 0x0a 0x0a 0x19e 0x01 0x0b 0x0a 0x19e>; + phandle = <0x42d>; + }; - rkcif-mipi-lvds2-sditf-vir3 { - compatible = "rockchip,rkcif-sditf"; - rockchip,cif = <0x55>; - status = "disabled"; - phandle = <0x236>; - }; + uart4-ctsn { + rockchip,pins = <0x01 0x17 0x0a 0x198>; + phandle = <0x42e>; + }; - rkcif-mipi-lvds3 { - compatible = "rockchip,rkcif-mipi-lvds"; - rockchip,hw = <0x4f>; - iommus = <0x50>; - status = "disabled"; - phandle = <0x57>; - }; + uart4m1-xfer { + rockchip,pins = <0x03 0x18 0x0a 0x19e 0x03 0x19 0x0a 0x19e>; + phandle = <0x163>; + }; - rkcif-mipi-lvds3-sditf { - compatible = "rockchip,rkcif-sditf"; - rockchip,cif = <0x57>; - status = "disabled"; - phandle = <0x237>; - }; + uart4m0-xfer { + rockchip,pins = <0x01 0x1b 0x0a 0x19e 0x01 0x1a 0x0a 0x19e>; + phandle = <0x42c>; + }; - rkcif-mipi-lvds3-sditf-vir1 { - compatible = "rockchip,rkcif-sditf"; - rockchip,cif = <0x57>; - status = "disabled"; - phandle = <0x238>; - }; + uart4-rtsn { + rockchip,pins = <0x01 0x15 0x0a 0x198>; + phandle = <0x42f>; + }; + }; - rkcif-mipi-lvds3-sditf-vir2 { - compatible = "rockchip,rkcif-sditf"; - rockchip,cif = <0x57>; - status = "disabled"; - phandle = <0x239>; - }; + spdif0 { - rkcif-mipi-lvds3-sditf-vir3 { - compatible = "rockchip,rkcif-sditf"; - rockchip,cif = <0x57>; - status = "disabled"; - phandle = <0x23a>; - }; + spdif0m0-tx { + rockchip,pins = <0x01 0x0e 0x03 0x198>; + phandle = <0x142>; + }; - rkisp0-vir0 { - compatible = "rockchip,rkisp-vir"; - rockchip,hw = <0x58>; - status = "disabled"; - phandle = <0x23b>; - }; + spdif0m1-tx { + rockchip,pins = <0x04 0x0c 0x06 0x198>; + phandle = <0x3f0>; + }; + }; - rkisp0-vir1 { - compatible = "rockchip,rkisp-vir"; - rockchip,hw = <0x58>; - status = "disabled"; - phandle = <0x23c>; - }; + pcfg-pull-down-drv-level-6 { + drive-strength = <0x06>; + bias-pull-down; + phandle = <0x2fd>; + }; - rkisp0-vir2 { - compatible = "rockchip,rkisp-vir"; - rockchip,hw = <0x58>; - status = "okay"; - phandle = <0x23d>; + pcfg-pull-up-drv-level-9 { + drive-strength = <0x09>; + phandle = <0x45c>; + bias-pull-up; + }; - port { - #address-cells = <0x01>; - #size-cells = <0x00>; + pcfg-pull-none-drv-level-1-smt { + drive-strength = <0x01>; + bias-disable; + input-schmitt-enable; + phandle = <0x19c>; + }; - endpoint@0 { - reg = <0x00>; - remote-endpoint = <0x59>; - phandle = <0x56>; - }; + pcfg-pull-up-drv-level-11 { + drive-strength = <0x0b>; + phandle = <0x45e>; + bias-pull-up; }; - }; - rkisp0-vir3 { - compatible = "rockchip,rkisp-vir"; - rockchip,hw = <0x58>; - status = "disabled"; - phandle = <0x23e>; - }; - - rkisp1-vir0 { - compatible = "rockchip,rkisp-vir"; - rockchip,hw = <0x5a>; - status = "disabled"; - phandle = <0x23f>; - }; + mcu { - rkisp1-vir1 { - compatible = "rockchip,rkisp-vir"; - rockchip,hw = <0x5a>; - status = "disabled"; - phandle = <0x240>; - }; + mcum1-pins { + rockchip,pins = <0x03 0x1c 0x06 0x198 0x03 0x1d 0x06 0x198>; + phandle = <0x394>; + }; - rkisp1-vir2 { - compatible = "rockchip,rkisp-vir"; - rockchip,hw = <0x5a>; - status = "disabled"; - phandle = <0x241>; - }; + mcum0-pins { + rockchip,pins = <0x04 0x1c 0x05 0x198 0x04 0x1d 0x05 0x198>; + phandle = <0x393>; + }; + }; - rkisp1-vir3 { - compatible = "rockchip,rkisp-vir"; - rockchip,hw = <0x5a>; - status = "disabled"; - phandle = <0x242>; - }; + i2c8 { - rkispp0-vir0 { - compatible = "rockchip,rk3588-rkispp-vir"; - rockchip,hw = <0x5b>; - status = "disabled"; - phandle = <0x243>; - }; + i2c8m4-xfer { + rockchip,pins = <0x03 0x12 0x09 0x19d 0x03 0x13 0x09 0x19d>; + phandle = <0x373>; + }; - rkispp1-vir0 { - compatible = "rockchip,rk3588-rkispp-vir"; - rockchip,hw = <0x5c>; - status = "disabled"; - phandle = <0x244>; - }; + i2c8m3-xfer { + rockchip,pins = <0x04 0x10 0x09 0x19d 0x04 0x11 0x09 0x19d>; + phandle = <0x372>; + }; - rkvenc-ccu { - compatible = "rockchip,rkv-encoder-v2-ccu"; - status = "okay"; - phandle = <0xc3>; - }; + i2c8m2-xfer { + rockchip,pins = <0x01 0x1e 0x09 0x19d 0x01 0x1f 0x09 0x19d>; + phandle = <0x371>; + }; - rkvtunnel { - compatible = "rockchip,video-tunnel"; - status = "disabled"; - phandle = <0x245>; - }; + i2c8m1-xfer { + rockchip,pins = <0x02 0x08 0x09 0x19d 0x02 0x09 0x09 0x19d>; + phandle = <0x374>; + }; - rockchip-suspend { - compatible = "rockchip,pm-rk3588"; - status = "okay"; - rockchip,sleep-debug-en = <0x01>; - rockchip,sleep-mode-config = <0x5000604>; - rockchip,wakeup-config = <0x100>; - phandle = <0x246>; - }; + i2c8m0-xfer { + rockchip,pins = <0x04 0x1a 0x09 0x19d 0x04 0x1b 0x09 0x19d>; + phandle = <0x186>; + }; + }; - rockchip-system-monitor { - compatible = "rockchip,system-monitor"; - rockchip,thermal-zone = "soc-thermal"; - phandle = <0x247>; - }; + dp0 { - thermal-zones { - phandle = <0x248>; + dp0m0-pins { + rockchip,pins = <0x04 0x0c 0x05 0x198>; + phandle = <0x31c>; + }; - soc-thermal { - polling-delay-passive = <0x14>; - polling-delay = <0x3e8>; - sustainable-power = <0x834>; - thermal-sensors = <0x5d 0x00>; - phandle = <0x249>; + dp0m2-pins { + rockchip,pins = <0x01 0x00 0x05 0x198>; + phandle = <0x31e>; + }; - trips { + dp0m1-pins { + rockchip,pins = <0x00 0x14 0x0a 0x198>; + phandle = <0x31d>; + }; + }; - trip-point-0 { - temperature = <0x124f8>; - hysteresis = <0x7d0>; - type = "passive"; - phandle = <0x24a>; - }; + pcfg-pull-none-drv-level-5-smt { + drive-strength = <0x05>; + bias-disable; + input-schmitt-enable; + phandle = <0x19b>; + }; - trip-point-1 { - temperature = <0x14c08>; - hysteresis = <0x7d0>; - type = "passive"; - phandle = <0x5e>; - }; + pwm3 { - soc-crit { - temperature = <0x1c138>; - hysteresis = <0x7d0>; - type = "critical"; - phandle = <0x24b>; - }; + pwm3m2-pins { + rockchip,pins = <0x01 0x12 0x0b 0x198>; + phandle = <0x3ca>; }; - cooling-maps { - - map0 { - trip = <0x5e>; - cooling-device = <0x06 0xffffffff 0xffffffff>; - contribution = <0x400>; - }; - - map1 { - trip = <0x5e>; - cooling-device = <0x0a 0xffffffff 0xffffffff>; - contribution = <0x400>; - }; + pwm3m1-pins { + rockchip,pins = <0x03 0x0a 0x0b 0x198>; + phandle = <0x3c9>; + }; - map2 { - trip = <0x5e>; - cooling-device = <0x0c 0xffffffff 0xffffffff>; - contribution = <0x400>; - }; + pwm3m0-pins { + rockchip,pins = <0x00 0x1c 0x03 0x198>; + phandle = <0x81>; + }; - map3 { - trip = <0x5e>; - cooling-device = <0x5f 0xffffffff 0xffffffff>; - contribution = <0x400>; - }; + pwm3m3-pins { + rockchip,pins = <0x01 0x07 0x0b 0x198>; + phandle = <0x3cb>; }; }; - bigcore0-thermal { - polling-delay-passive = <0x14>; - polling-delay = <0x3e8>; - thermal-sensors = <0x5d 0x01>; - phandle = <0x24c>; + pcfg-pull-none-drv-level-1 { + drive-strength = <0x01>; + bias-disable; + phandle = <0x2ee>; }; - bigcore1-thermal { - polling-delay-passive = <0x14>; - polling-delay = <0x3e8>; - thermal-sensors = <0x5d 0x02>; - phandle = <0x24d>; - }; + sata2 { - littlecore-thermal { - polling-delay-passive = <0x14>; - polling-delay = <0x3e8>; - thermal-sensors = <0x5d 0x03>; - phandle = <0x24e>; - }; + sata2m1-pins { + rockchip,pins = <0x01 0x0f 0x06 0x198>; + phandle = <0x3ed>; + }; - center-thermal { - polling-delay-passive = <0x14>; - polling-delay = <0x3e8>; - thermal-sensors = <0x5d 0x04>; - phandle = <0x24f>; + sata2m0-pins { + rockchip,pins = <0x04 0x09 0x06 0x198>; + phandle = <0x3ec>; + }; }; - gpu-thermal { - polling-delay-passive = <0x14>; - polling-delay = <0x3e8>; - thermal-sensors = <0x5d 0x05>; - phandle = <0x250>; - }; + cam { - npu-thermal { - polling-delay-passive = <0x14>; - polling-delay = <0x3e8>; - thermal-sensors = <0x5d 0x06>; - phandle = <0x251>; + cam0-or-cam1-switch-pin { + rockchip,pins = <0x03 0x11 0x00 0x198>; + phandle = <0x1f0>; + }; }; - }; - timer { - compatible = "arm,armv8-timer"; - interrupts = <0x01 0x0d 0xf04 0x01 0x0e 0xf04 0x01 0x0b 0xf04 0x01 0x0a 0xf04>; - }; + uart2 { - sram@10f000 { - compatible = "mmio-sram"; - reg = <0x00 0x10f000 0x00 0x100>; - #address-cells = <0x01>; - #size-cells = <0x01>; - ranges = <0x00 0x00 0x10f000 0x100>; + uart2-rtsn { + rockchip,pins = <0x03 0x0b 0x0a 0x198>; + phandle = <0x427>; + }; - sram@0 { - compatible = "arm,scmi-shmem"; - reg = <0x00 0x100>; - phandle = <0x46>; - }; - }; + uart2m1-xfer { + rockchip,pins = <0x04 0x19 0x0a 0x19e 0x04 0x18 0x0a 0x19e>; + phandle = <0x161>; + }; - gpu@fb000000 { - compatible = "arm,mali-bifrost"; - reg = <0x00 0xfb000000 0x00 0x200000>; - interrupts = <0x00 0x5e 0x04 0x00 0x5d 0x04 0x00 0x5c 0x04>; - interrupt-names = "GPU\0MMU\0JOB"; - clocks = <0x0e 0x05 0x02 0x115 0x02 0x116 0x02 0x114>; - clock-names = "clk_mali\0clk_gpu_coregroup\0clk_gpu_stacks\0clk_gpu"; - assigned-clocks = <0x0e 0x05>; - assigned-clock-rates = <0xbebc200>; - power-domains = <0x60 0x0c>; - operating-points-v2 = <0x61>; - #cooling-cells = <0x02>; - dynamic-power-coefficient = <0xba6>; - upthreshold = <0x1e>; - downdifferential = <0x0a>; - status = "okay"; - mali-supply = <0x62>; - mem-supply = <0x62>; - phandle = <0x5f>; - }; + uart2m0-xfer { + rockchip,pins = <0x00 0x0e 0x0a 0x19e 0x00 0x0d 0x0a 0x19e>; + phandle = <0x1ce>; + }; - gpu-opp-table { - compatible = "operating-points-v2"; - nvmem-cells = <0x63 0x64 0x21>; - nvmem-cell-names = "leakage\0opp-info\0specification_serial_number"; - rockchip,supported-hw; - rockchip,pvtm-hw = <0x04>; - rockchip,pvtm-voltage-sel-hw = <0x00 0x31f 0x00 0x320 0x333 0x01 0x334 0x34c 0x02 0x34d 0x365 0x03 0x366 0x37e 0x04 0x37f 0x270f 0x05>; - rockchip,pvtm-voltage-sel = <0x00 0x32f 0x00 0x330 0x343 0x01 0x344 0x35c 0x02 0x35d 0x375 0x03 0x376 0x38e 0x04 0x38f 0x270f 0x05>; - rockchip,pvtm-pvtpll; - rockchip,pvtm-offset = <0x1c>; - rockchip,pvtm-sample-time = <0x44c>; - rockchip,pvtm-freq = "\0\f5"; - rockchip,pvtm-volt = <0xb71b0>; - rockchip,pvtm-ref-temp = <0x19>; - rockchip,pvtm-temp-prop = <0xffffff79 0xffffff79>; - rockchip,pvtm-thermal-zone = "gpu-thermal"; - rockchip,opp-clocks = <0x02 0x114>; - rockchip,grf = <0x65>; - volt-mem-read-margin = <0xd0bd8 0x01 0xbac48 0x02 0xa4cb8 0x03 0x78d98 0x04>; - low-volt-mem-read-margin = <0x04>; - intermediate-threshold-freq = <0x61a80>; - rockchip,temp-hysteresis = <0x1388>; - rockchip,low-temp = <0x2710>; - rockchip,low-temp-min-volt = <0xb71b0>; - rockchip,high-temp = <0x14c08>; - rockchip,high-temp-max-freq = "\0\f5"; - phandle = <0x61>; + uart2-ctsn { + rockchip,pins = <0x03 0x0c 0x0a 0x198>; + phandle = <0x426>; + }; - opp-300000000 { - opp-supported-hw = <0xf9 0xffff>; - opp-hz = <0x00 0x11e1a300>; - opp-microvolt = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + uart2m2-xfer { + rockchip,pins = <0x03 0x0a 0x0a 0x19e 0x03 0x09 0x0a 0x19e>; + phandle = <0x425>; + }; }; - opp-400000000 { - opp-supported-hw = <0xf9 0xffff>; - opp-hz = <0x00 0x17d78400>; - opp-microvolt = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + pcfg-pull-down-drv-level-4 { + drive-strength = <0x04>; + bias-pull-down; + phandle = <0x2fb>; }; - opp-500000000 { - opp-supported-hw = <0xf9 0xffff>; - opp-hz = <0x00 0x1dcd6500>; - opp-microvolt = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + pcfg-pull-up-drv-level-7 { + drive-strength = <0x07>; + phandle = <0x45a>; + bias-pull-up; }; - opp-600000000 { - opp-supported-hw = <0xf9 0xffff>; - opp-hz = <0x00 0x23c34600>; - opp-microvolt = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; - }; + i2c6 { - opp-700000000 { - opp-supported-hw = <0xf9 0xffff>; - opp-hz = <0x00 0x29b92700>; - opp-microvolt = <0xaae60 0xaae60 0xcf850 0xaae60 0xaae60 0xcf850>; - opp-microvolt-L2 = <0xa7d8c 0xa7d8c 0xcf850 0xa7d8c 0xa7d8c 0xcf850>; - opp-microvolt-L3 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; - opp-microvolt-L4 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; - opp-microvolt-L5 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; - }; + i2c6m4-xfer { + rockchip,pins = <0x03 0x01 0x09 0x19d 0x03 0x00 0x09 0x19d>; + phandle = <0x36c>; + }; - opp-800000000 { - opp-supported-hw = <0xf9 0xffff>; - opp-hz = <0x00 0x2faf0800>; - opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; - opp-microvolt-L1 = <0xb40dc 0xb40dc 0xcf850 0xb40dc 0xb40dc 0xcf850>; - opp-microvolt-L2 = <0xb1008 0xb1008 0xcf850 0xb1008 0xb1008 0xcf850>; - opp-microvolt-L3 = <0xadf34 0xadf34 0xcf850 0xadf34 0xadf34 0xcf850>; - opp-microvolt-L4 = <0xaae60 0xaae60 0xcf850 0xaae60 0xaae60 0xcf850>; - opp-microvolt-L5 = <0xaae60 0xaae60 0xcf850 0xaae60 0xaae60 0xcf850>; - }; + i2c6m3-xfer { + rockchip,pins = <0x04 0x09 0x09 0x19d 0x04 0x08 0x09 0x19d>; + phandle = <0x36b>; + }; - opp-900000000 { - opp-supported-hw = <0xf9 0xffff>; - opp-hz = <0x00 0x35a4e900>; - opp-microvolt = <0xc3500 0xc3500 0xcf850 0xc3500 0xc3500 0xcf850>; - opp-microvolt-L1 = <0xc042c 0xc042c 0xcf850 0xc042c 0xc042c 0xcf850>; - opp-microvolt-L2 = <0xbd358 0xbd358 0xcf850 0xbd358 0xbd358 0xcf850>; - opp-microvolt-L3 = <0xba284 0xba284 0xcf850 0xba284 0xba284 0xcf850>; - opp-microvolt-L4 = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; - opp-microvolt-L5 = <0xb40dc 0xb40dc 0xcf850 0xb40dc 0xb40dc 0xcf850>; - }; + i2c6m2-xfer { + rockchip,pins = <0x02 0x13 0x09 0x19d 0x02 0x12 0x09 0x19d>; + phandle = <0x36d>; + }; - opp-1000000000 { - opp-supported-hw = <0xf9 0xffff>; - opp-hz = <0x00 0x3b9aca00>; - opp-microvolt = <0xcf850 0xcf850 0xcf850 0xcf850 0xcf850 0xcf850>; - opp-microvolt-L1 = <0xcc77c 0xcc77c 0xcf850 0xcc77c 0xcc77c 0xcf850>; - opp-microvolt-L2 = <0xc96a8 0xc96a8 0xcf850 0xc96a8 0xc96a8 0xcf850>; - opp-microvolt-L3 = <0xc65d4 0xc65d4 0xcf850 0xc65d4 0xc65d4 0xcf850>; - opp-microvolt-L4 = <0xc3500 0xc3500 0xcf850 0xc3500 0xc3500 0xcf850>; - opp-microvolt-L5 = <0xc042c 0xc042c 0xcf850 0xc042c 0xc042c 0xcf850>; - }; + i2c6m1-xfer { + rockchip,pins = <0x01 0x13 0x09 0x19d 0x01 0x12 0x09 0x19d>; + phandle = <0x36a>; + }; - opp-j-m-300000000 { - opp-supported-hw = <0x06 0xffff>; - opp-hz = <0x00 0x11e1a300>; - opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; + i2c6m0-xfer { + rockchip,pins = <0x00 0x18 0x09 0x19d 0x00 0x17 0x09 0x19d>; + phandle = <0x178>; + }; }; - opp-j-m-400000000 { - opp-supported-hw = <0x06 0xffff>; - opp-hz = <0x00 0x17d78400>; - opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; - }; + pdm1 { - opp-j-m-500000000 { - opp-supported-hw = <0x06 0xffff>; - opp-hz = <0x00 0x1dcd6500>; - opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; - }; + pdm1m1-sdi3 { + rockchip,pins = <0x01 0x0a 0x02 0x198>; + phandle = <0x3c1>; + }; - opp-j-m-600000000 { - opp-supported-hw = <0x06 0xffff>; - opp-hz = <0x00 0x23c34600>; - opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; - }; + pdm1m0-clk { + rockchip,pins = <0x04 0x1d 0x02 0x198>; + phandle = <0x140>; + }; - opp-j-m-700000000 { - opp-supported-hw = <0x06 0xffff>; - opp-hz = <0x00 0x29b92700>; - opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; - }; + pdm1m1-sdi1 { + rockchip,pins = <0x01 0x08 0x02 0x198>; + phandle = <0x3bf>; + }; - opp-j-850000000 { - opp-supported-hw = <0x04 0xffff>; - opp-hz = <0x00 0x32a9f880>; - opp-microvolt = <0xc042c 0xc042c 0xcf850 0xc042c 0xc042c 0xcf850>; - opp-microvolt-L1 = <0xbd358 0xbd358 0xcf850 0xbd358 0xbd358 0xcf850>; - opp-microvolt-L2 = <0xba284 0xba284 0xcf850 0xba284 0xba284 0xcf850>; - opp-microvolt-L3 = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; - opp-microvolt-L4 = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; - opp-microvolt-L5 = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; - }; + pdm1m0-sdi3 { + rockchip,pins = <0x04 0x18 0x02 0x198>; + phandle = <0x13e>; + }; - opp-m-800000000 { - opp-supported-hw = <0x02 0xffff>; - opp-hz = <0x00 0x2faf0800>; - opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; - }; + pdm1m0-sdi1 { + rockchip,pins = <0x04 0x1a 0x02 0x198>; + phandle = <0x13c>; + }; - opp-m-900000000 { - opp-supported-hw = <0x02 0xffff>; - opp-hz = <0x00 0x35a4e900>; - opp-microvolt = <0xc3500 0xc3500 0xcf850 0xc3500 0xc3500 0xcf850>; - opp-microvolt-L1 = <0xc042c 0xc042c 0xcf850 0xc042c 0xc042c 0xcf850>; - opp-microvolt-L2 = <0xbd358 0xbd358 0xcf850 0xbd358 0xbd358 0xcf850>; - opp-microvolt-L3 = <0xba284 0xba284 0xcf850 0xba284 0xba284 0xcf850>; - opp-microvolt-L4 = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; - opp-microvolt-L5 = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; - }; + pdm1m1-clk { + rockchip,pins = <0x01 0x0c 0x02 0x198>; + phandle = <0x3bb>; + }; - opp-m-1000000000 { - opp-supported-hw = <0x02 0xffff>; - opp-hz = <0x00 0x3b9aca00>; - opp-microvolt = <0xcf850 0xcf850 0xcf850 0xcf850 0xcf850 0xcf850>; - opp-microvolt-L1 = <0xcc77c 0xcc77c 0xcf850 0xcc77c 0xcc77c 0xcf850>; - opp-microvolt-L2 = <0xc96a8 0xc96a8 0xcf850 0xc96a8 0xc96a8 0xcf850>; - opp-microvolt-L3 = <0xc65d4 0xc65d4 0xcf850 0xc65d4 0xc65d4 0xcf850>; - opp-microvolt-L4 = <0xc3500 0xc3500 0xcf850 0xc3500 0xc3500 0xcf850>; - opp-microvolt-L5 = <0xc042c 0xc042c 0xcf850 0xc042c 0xc042c 0xcf850>; - }; - }; + pdm1m1-clk1 { + rockchip,pins = <0x01 0x0b 0x02 0x198>; + phandle = <0x3bc>; + }; - usbdrd3_0 { - compatible = "rockchip,rk3588-dwc3\0rockchip,rk3399-dwc3"; - clocks = <0x02 0x1a3 0x02 0x1a2 0x02 0x1a1>; - clock-names = "ref\0suspend\0bus"; - #address-cells = <0x02>; - #size-cells = <0x02>; - ranges; - status = "okay"; - phandle = <0x252>; + pdm1m1-idle { + rockchip,pins = <0x01 0x0c 0x00 0x198 0x01 0x0b 0x00 0x198>; + phandle = <0x3bd>; + }; - usb@fc000000 { - compatible = "snps,dwc3"; - reg = <0x00 0xfc000000 0x00 0x400000>; - interrupts = <0x00 0xdc 0x04>; - power-domains = <0x60 0x1f>; - resets = <0x02 0x2a4>; - reset-names = "usb3-otg"; - dr_mode = "host"; - phys = <0x66 0x67>; - phy-names = "usb2-phy\0usb3-phy"; - phy_type = "utmi_wide"; - snps,dis_enblslpm_quirk; - snps,dis-u1-entry-quirk; - snps,dis-u2-entry-quirk; - snps,dis-u2-freeclk-exists-quirk; - snps,dis-del-phy-power-chg-quirk; - snps,dis-tx-ipgap-linecheck-quirk; - snps,parkmode-disable-hs-quirk; - snps,parkmode-disable-ss-quirk; - quirk-skip-phy-init; - status = "okay"; - usb-role-switch; - phandle = <0x253>; + pdm1m0-clk1 { + rockchip,pins = <0x04 0x1c 0x02 0x198>; + phandle = <0x141>; + }; - port { - #address-cells = <0x01>; - #size-cells = <0x00>; + pdm1m1-sdi2 { + rockchip,pins = <0x01 0x09 0x02 0x198>; + phandle = <0x3c0>; + }; - endpoint@0 { - reg = <0x00>; - remote-endpoint = <0x68>; - phandle = <0x17d>; - }; + pdm1m0-idle { + rockchip,pins = <0x04 0x1d 0x00 0x198 0x04 0x1c 0x00 0x198>; + phandle = <0x13f>; + }; + + pdm1m1-sdi0 { + rockchip,pins = <0x01 0x07 0x02 0x198>; + phandle = <0x3be>; + }; + + pdm1m0-sdi2 { + rockchip,pins = <0x04 0x19 0x02 0x198>; + phandle = <0x13d>; + }; + + pdm1m0-sdi0 { + rockchip,pins = <0x04 0x1b 0x02 0x198>; + phandle = <0x13b>; }; }; - }; - usb@fc800000 { - compatible = "rockchip,rk3588-ehci\0generic-ehci"; - reg = <0x00 0xfc800000 0x00 0x40000>; - interrupts = <0x00 0xd7 0x04>; - clocks = <0x02 0x19d 0x02 0x19e 0x69 0x6a>; - clock-names = "usbhost\0arbiter\0utmi\0alk_usb"; - companion = <0x6b>; - phys = <0x6c>; - phy-names = "usb2-phy"; - power-domains = <0x60 0x1f>; - status = "okay"; - phandle = <0x254>; - }; + cpu { - usb@fc840000 { - compatible = "rockchip,rk3588-ohci\0generic-ohci"; - reg = <0x00 0xfc840000 0x00 0x40000>; - interrupts = <0x00 0xd8 0x04>; - clocks = <0x02 0x19d 0x02 0x19e 0x69 0x6a>; - clock-names = "usbhost\0arbiter\0utmi\0alk_usb"; - phys = <0x6c>; - phy-names = "usb2-phy"; - power-domains = <0x60 0x1f>; - status = "okay"; - phandle = <0x6b>; - }; + cpu-pins { + rockchip,pins = <0x00 0x19 0x02 0x198 0x00 0x1d 0x02 0x198>; + phandle = <0x317>; + }; + }; - usb@fc880000 { - compatible = "rockchip,rk3588-ehci\0generic-ehci"; - reg = <0x00 0xfc880000 0x00 0x40000>; - interrupts = <0x00 0xda 0x04>; - clocks = <0x02 0x19f 0x02 0x1a0 0x6d 0x6a>; - clock-names = "usbhost\0arbiter\0utmi\0alk_usb"; - companion = <0x6e>; - phys = <0x6f>; - phy-names = "usb2-phy"; - power-domains = <0x60 0x1f>; - status = "okay"; - phandle = <0x255>; - }; + gpio-func { - usb@fc8c0000 { - compatible = "rockchip,rk3588-ohci\0generic-ohci"; - reg = <0x00 0xfc8c0000 0x00 0x40000>; - interrupts = <0x00 0xdb 0x04>; - clocks = <0x02 0x19f 0x02 0x1a0 0x6d 0x6a>; - clock-names = "usbhost\0arbiter\0utmi\0alk_usb"; - phys = <0x6f>; - phy-names = "usb2-phy"; - power-domains = <0x60 0x1f>; - status = "okay"; - phandle = <0x6e>; - }; + tsadc-gpio-func { + rockchip,pins = <0x00 0x01 0x00 0x198>; + phandle = <0x175>; + }; + }; - iommu@fc900000 { - compatible = "arm,smmu-v3"; - reg = <0x00 0xfc900000 0x00 0x200000>; - interrupts = <0x00 0x171 0x04 0x00 0x173 0x04 0x00 0x176 0x04 0x00 0x16f 0x04>; - interrupt-names = "eventq\0gerror\0priq\0cmdq-sync"; - #iommu-cells = <0x01>; - status = "disabled"; - phandle = <0x256>; - }; + pcie20x1 { - iommu@fcb00000 { - compatible = "arm,smmu-v3"; - reg = <0x00 0xfcb00000 0x00 0x200000>; - interrupts = <0x00 0x17d 0x04 0x00 0x17f 0x04 0x00 0x182 0x04 0x00 0x17b 0x04>; - interrupt-names = "eventq\0gerror\0priq\0cmdq-sync"; - #iommu-cells = <0x01>; - status = "disabled"; - phandle = <0x257>; - }; + pcie20x1-2-button-rstn { + rockchip,pins = <0x04 0x0b 0x04 0x198>; + phandle = <0x3a3>; + }; - usbhost3_0 { - compatible = "rockchip,rk3588-dwc3\0rockchip,rk3399-dwc3"; - clocks = <0x02 0x179 0x02 0x178 0x02 0x177 0x02 0x17a 0x02 0x166 0x02 0x181>; - clock-names = "ref\0suspend\0bus\0utmi\0php\0pipe"; - #address-cells = <0x02>; - #size-cells = <0x02>; - ranges; - status = "disabled"; - phandle = <0x258>; + pcie20x1m1-pins { + rockchip,pins = <0x04 0x0f 0x04 0x198 0x04 0x11 0x04 0x198 0x04 0x10 0x04 0x198>; + phandle = <0x3a2>; + }; - usb@fcd00000 { - compatible = "snps,dwc3"; - reg = <0x00 0xfcd00000 0x00 0x400000>; - interrupts = <0x00 0xde 0x04>; - resets = <0x02 0x237>; - reset-names = "usb3-host"; - dr_mode = "host"; - phys = <0x70 0x04>; - phy-names = "usb3-phy"; - phy_type = "utmi_wide"; - snps,dis_enblslpm_quirk; - snps,dis-u2-freeclk-exists-quirk; - snps,dis-del-phy-power-chg-quirk; - snps,dis-tx-ipgap-linecheck-quirk; - snps,dis_rxdet_inp3_quirk; - snps,parkmode-disable-hs-quirk; - snps,parkmode-disable-ss-quirk; - status = "disabled"; - phandle = <0x259>; + pcie20x1m0-pins { + rockchip,pins = <0x03 0x17 0x04 0x198 0x03 0x19 0x04 0x198 0x03 0x18 0x04 0x198>; + phandle = <0x3a1>; + }; }; - }; - syscon@fd588000 { - compatible = "rockchip,rk3588-pmu0-grf\0syscon\0simple-mfd"; - reg = <0x00 0xfd588000 0x00 0x2000>; - phandle = <0x25a>; + leds { - reboot-mode { - compatible = "syscon-reboot-mode"; - offset = <0x80>; - mode-bootloader = <0x5242c301>; - mode-charge = <0x5242c30b>; - mode-fastboot = <0x5242c309>; - mode-loader = <0x5242c301>; - mode-normal = <0x5242c300>; - mode-recovery = <0x5242c303>; - mode-ums = <0x5242c30c>; - mode-panic = <0x5242c307>; - mode-watchdog = <0x5242c308>; - mode-quiescent = <0x5242c30e>; - mode-winusb = <0x5242c30f>; - phandle = <0x25b>; + leds-gpio { + rockchip,pins = <0x00 0x15 0x00 0x198>; + phandle = <0x1ee>; + }; }; - }; - syscon@fd58a000 { - compatible = "rockchip,rk3588-pmu1-grf\0syscon"; - reg = <0x00 0xfd58a000 0x00 0x2000>; - phandle = <0x104>; - }; + pwm1 { - syscon@fd58c000 { - compatible = "rockchip,rk3588-sys-grf\0syscon\0simple-mfd"; - reg = <0x00 0xfd58c000 0x00 0x1000>; - phandle = <0xc8>; + pwm1m1-pins { + rockchip,pins = <0x01 0x1b 0x0b 0x198>; + phandle = <0x3c5>; + }; - rgb { - compatible = "rockchip,rk3588-rgb"; - pinctrl-names = "default"; - pinctrl-0 = <0x71>; - status = "disabled"; - phandle = <0x25c>; + pwm1m0-pins { + rockchip,pins = <0x00 0x10 0x03 0x198>; + phandle = <0x7f>; + }; - ports { - #address-cells = <0x01>; - #size-cells = <0x00>; + pwm1m2-pins { + rockchip,pins = <0x01 0x03 0x0b 0x198>; + phandle = <0x3c6>; + }; + }; - port@0 { - reg = <0x00>; - #address-cells = <0x01>; - #size-cells = <0x00>; + sata0 { - endpoint@2 { - reg = <0x02>; - remote-endpoint = <0x3d>; - status = "disabled"; - phandle = <0xf0>; - }; - }; + sata0m1-pins { + rockchip,pins = <0x01 0x0b 0x06 0x198>; + phandle = <0x3e9>; + }; + + sata0m0-pins { + rockchip,pins = <0x04 0x0e 0x06 0x198>; + phandle = <0x3e8>; }; }; - }; - syscon@fd590000 { - compatible = "rockchip,rk3588-bigcore0-grf\0syscon"; - reg = <0x00 0xfd590000 0x00 0x100>; - phandle = <0x26>; - }; + refclk { - syscon@fd592000 { - compatible = "rockchip,rk3588-bigcore1-grf\0syscon"; - reg = <0x00 0xfd592000 0x00 0x100>; - phandle = <0x29>; - }; + refclk-pins { + rockchip,pins = <0x00 0x00 0x01 0x198>; + phandle = <0x3e5>; + }; + }; - syscon@fd594000 { - compatible = "rockchip,rk3588-litcore-grf\0syscon"; - reg = <0x00 0xfd594000 0x00 0x100>; - phandle = <0x22>; - }; + pcie30x4 { - syscon@fd598000 { - compatible = "rockchip,rk3588-dsu-grf\0syscon"; - reg = <0x00 0xfd598000 0x00 0x100>; - phandle = <0x23>; - }; + pcie30x4m2-pins { + rockchip,pins = <0x03 0x14 0x04 0x198 0x03 0x16 0x04 0x198 0x03 0x15 0x04 0x198>; + phandle = <0x3b1>; + }; - syscon@fd5a0000 { - compatible = "rockchip,rk3588-gpu-grf\0syscon"; - reg = <0x00 0xfd5a0000 0x00 0x100>; - phandle = <0x65>; - }; + pcie30x4m1-pins { + rockchip,pins = <0x04 0x0c 0x04 0x198 0x04 0x0e 0x04 0x198 0x04 0x0d 0x04 0x198>; + phandle = <0x3b0>; + }; - syscon@fd5a2000 { - compatible = "rockchip,rk3588-npu-grf\0syscon"; - reg = <0x00 0xfd5a2000 0x00 0x100>; - phandle = <0xb6>; - }; + pcie30x4-button-rstn { + rockchip,pins = <0x03 0x1d 0x04 0x198>; + phandle = <0x3b3>; + }; - syscon@fd5a4000 { - compatible = "rockchip,rk3588-vop-grf\0syscon"; - reg = <0x00 0xfd5a4000 0x00 0x2000>; - phandle = <0xd7>; - }; + pcie30x4m0-pins { + rockchip,pins = <0x00 0x16 0x0c 0x198 0x00 0x18 0x0c 0x198 0x00 0x17 0x0c 0x198>; + phandle = <0x3af>; + }; - syscon@fd5a6000 { - compatible = "rockchip,rk3588-vo-grf\0syscon"; - reg = <0x00 0xfd5a6000 0x00 0x2000>; - clocks = <0x72>; - phandle = <0xf5>; - }; + pcie30x4m3-pins { + rockchip,pins = <0x01 0x08 0x04 0x198 0x01 0x0a 0x04 0x198 0x01 0x09 0x04 0x198>; + phandle = <0x3b2>; + }; + }; - syscon@fd5a8000 { - compatible = "rockchip,rk3588-vo-grf\0syscon"; - reg = <0x00 0xfd5a8000 0x00 0x100>; - clocks = <0x73>; - phandle = <0xd8>; - }; + can2 { - syscon@fd5ac000 { - compatible = "rockchip,rk3588-usb-grf\0syscon"; - reg = <0x00 0xfd5ac000 0x00 0x4000>; - phandle = <0x74>; - }; + can2m1-pins { + rockchip,pins = <0x00 0x1c 0x0a 0x198 0x00 0x1d 0x0a 0x198>; + phandle = <0x30f>; + }; - syscon@fd5b0000 { - compatible = "rockchip,rk3588-php-grf\0syscon"; - reg = <0x00 0xfd5b0000 0x00 0x1000>; - phandle = <0x76>; - }; + can2m0-pins { + rockchip,pins = <0x03 0x14 0x09 0x198 0x03 0x15 0x09 0x198>; + phandle = <0x147>; + }; + }; - syscon@fd5b4000 { - compatible = "rockchip,mipi-dphy-grf\0syscon"; - reg = <0x00 0xfd5b4000 0x00 0x1000>; - phandle = <0x192>; - }; + litcpu { - syscon@fd5b5000 { - compatible = "rockchip,mipi-dphy-grf\0syscon"; - reg = <0x00 0xfd5b5000 0x00 0x1000>; - phandle = <0x193>; - }; + litcpu-pins { + rockchip,pins = <0x00 0x1b 0x01 0x198>; + phandle = <0x392>; + }; + }; - syscon@fd5bc000 { - compatible = "rockchip,pipe-phy-grf\0syscon"; - reg = <0x00 0xfd5bc000 0x00 0x100>; - phandle = <0x194>; - }; + sata { - syscon@fd5c4000 { - compatible = "rockchip,pipe-phy-grf\0syscon"; - reg = <0x00 0xfd5c4000 0x00 0x100>; - phandle = <0x195>; - }; + sata-reset { + rockchip,pins = <0x04 0x11 0x00 0x198>; + phandle = <0x3e7>; + }; - syscon@fd5c8000 { - compatible = "rockchip,rk3588-usbdpphy-grf\0syscon"; - reg = <0x00 0xfd5c8000 0x00 0x4000>; - phandle = <0x18c>; - }; + sata-pins { + rockchip,pins = <0x00 0x16 0x0d 0x198 0x00 0x1c 0x0d 0x198 0x00 0x1d 0x0d 0x198>; + phandle = <0x3e6>; + }; + }; - syscon@fd5d0000 { - compatible = "rockchip,rk3588-usb2phy-grf\0syscon\0simple-mfd"; - reg = <0x00 0xfd5d0000 0x00 0x4000>; - #address-cells = <0x01>; - #size-cells = <0x01>; - phandle = <0x18b>; + tsadc { - usb2-phy@0 { - compatible = "rockchip,rk3588-usb2phy"; - reg = <0x00 0x10>; - interrupts = <0x00 0x189 0x04>; - resets = <0x02 0xc0047 0x02 0x488>; - reset-names = "phy\0apb"; - clocks = <0x02 0x2b5>; - clock-names = "phyclk"; - clock-output-names = "usb480m_phy0"; - #clock-cells = <0x00>; - rockchip,usbctrl-grf = <0x74>; - status = "okay"; - phandle = <0x18d>; + tsadc-shut { + rockchip,pins = <0x00 0x01 0x02 0x198>; + phandle = <0x176>; + }; - otg-port { - #phy-cells = <0x00>; - status = "okay"; - rockchip,typec-vbus-det; - phandle = <0x66>; + tsadc-shut-org { + rockchip,pins = <0x00 0x01 0x01 0x198>; + phandle = <0x418>; + }; + + tsadcm1-shut { + rockchip,pins = <0x00 0x02 0x02 0x198>; + phandle = <0x417>; }; }; - }; - syscon@fd5d8000 { - compatible = "rockchip,rk3588-usb2phy-grf\0syscon\0simple-mfd"; - reg = <0x00 0xfd5d8000 0x00 0x4000>; - #address-cells = <0x01>; - #size-cells = <0x01>; - phandle = <0x25d>; + uart0 { - usb2-phy@8000 { - compatible = "rockchip,rk3588-usb2phy"; - reg = <0x8000 0x10>; - interrupts = <0x00 0x187 0x04>; - resets = <0x02 0xc0049 0x02 0x48a>; - reset-names = "phy\0apb"; - clocks = <0x02 0x2b5>; - clock-names = "phyclk"; - clock-output-names = "usb480m_phy2"; - #clock-cells = <0x00>; - status = "okay"; - phandle = <0x69>; + uart0m1-xfer { + rockchip,pins = <0x00 0x08 0x04 0x19e 0x00 0x09 0x04 0x19e>; + phandle = <0x7d>; + }; - host-port { - #phy-cells = <0x00>; - status = "okay"; - phy-supply = <0x75>; - phandle = <0x6c>; + uart0m0-xfer { + rockchip,pins = <0x00 0x14 0x04 0x19e 0x00 0x15 0x04 0x19e>; + phandle = <0x419>; }; - }; - }; - syscon@fd5dc000 { - compatible = "rockchip,rk3588-usb2phy-grf\0syscon\0simple-mfd"; - reg = <0x00 0xfd5dc000 0x00 0x4000>; - #address-cells = <0x01>; - #size-cells = <0x01>; - phandle = <0x25e>; + uart0-rtsn { + rockchip,pins = <0x00 0x16 0x04 0x198>; + phandle = <0x41c>; + }; - usb2-phy@c000 { - compatible = "rockchip,rk3588-usb2phy"; - reg = <0xc000 0x10>; - interrupts = <0x00 0x188 0x04>; - resets = <0x02 0xc004a 0x02 0x48b>; - reset-names = "phy\0apb"; - clocks = <0x02 0x2b5>; - clock-names = "phyclk"; - clock-output-names = "usb480m_phy3"; - #clock-cells = <0x00>; - status = "okay"; - phandle = <0x6d>; + uart0-ctsn { + rockchip,pins = <0x00 0x19 0x04 0x198>; + phandle = <0x41b>; + }; - host-port { - #phy-cells = <0x00>; - status = "okay"; - phy-supply = <0x75>; - phandle = <0x6f>; + uart0m2-xfer { + rockchip,pins = <0x04 0x04 0x0a 0x19e 0x04 0x03 0x0a 0x19e>; + phandle = <0x41a>; }; }; - }; - - syscon@fd5e0000 { - compatible = "rockchip,rk3588-hdptxphy-grf\0syscon"; - reg = <0x00 0xfd5e0000 0x00 0x100>; - phandle = <0x18a>; - }; - syscon@fd5e8000 { - compatible = "rockchip,mipi-dcphy-grf\0syscon"; - reg = <0x00 0xfd5e8000 0x00 0x4000>; - phandle = <0x190>; - }; + pcfg-pull-down-drv-level-2 { + drive-strength = <0x02>; + bias-pull-down; + phandle = <0x2f9>; + }; - syscon@fd5ec000 { - compatible = "rockchip,mipi-dcphy-grf\0syscon"; - reg = <0x00 0xfd5ec000 0x00 0x4000>; - phandle = <0x191>; - }; - - syscon@fd5f0000 { - compatible = "rockchip,rk3588-ioc\0syscon"; - reg = <0x00 0xfd5f0000 0x00 0x10000>; - phandle = <0x196>; - }; - - clock-controller@fd7c0000 { - compatible = "rockchip,rk3588-cru"; - rockchip,grf = <0x76>; - reg = <0x00 0xfd7c0000 0x00 0x5c000>; - #clock-cells = <0x01>; - #reset-cells = <0x01>; - assigned-clocks = <0x02 0x09 0x02 0x05 0x02 0x08 0x02 0x07 0x02 0xd8 0x02 0xda 0x02 0xd9 0x02 0x10e 0x02 0x10f 0x02 0x110 0x02 0x299 0x02 0x29a 0x02 0x7b 0x02 0xec 0x02 0x114 0x02 0x208 0x02 0x20e 0x02 0x21f 0x02 0x77>; - assigned-clock-rates = <0x4190ab00 0x2ee00000 0x32a9f880 0x46cf7100 0x29d7ab80 0x17d78400 0x1dcd6500 0x2cb41780 0x5f5e100 0x17d78400 0x5f5e100 0xbebc200 0x165a0bc0 0x8f0d180 0xbebc200 0xb71b00 0xb71b00 0x5e69ec0 0x1312d00>; - phandle = <0x02>; - }; - - i2c@fd880000 { - compatible = "rockchip,rk3588-i2c\0rockchip,rk3399-i2c"; - reg = <0x00 0xfd880000 0x00 0x1000>; - clocks = <0x02 0x287 0x02 0x286>; - clock-names = "i2c\0pclk"; - interrupts = <0x00 0x13d 0x04>; - pinctrl-names = "default"; - pinctrl-0 = <0x77>; - resets = <0x02 0xc0022 0x02 0xc0021>; - reset-names = "i2c\0apb"; - #address-cells = <0x01>; - #size-cells = <0x00>; - status = "okay"; - phandle = <0x25f>; - - rk8602@42 { - compatible = "rockchip,rk8602"; - reg = <0x42>; - vin-supply = <0x78>; - regulator-compatible = "rk860x-reg"; - regulator-name = "vdd_cpu_big0_s0"; - regulator-min-microvolt = <0x86470>; - regulator-max-microvolt = <0x100590>; - regulator-ramp-delay = <0x8fc>; - rockchip,suspend-voltage-selector = <0x01>; - regulator-boot-on; - regulator-always-on; - phandle = <0x18>; - - regulator-state-mem { - regulator-off-in-suspend; - }; + pcfg-pull-up-drv-level-5 { + drive-strength = <0x05>; + phandle = <0x2f6>; + bias-pull-up; }; - rk8603@43 { - compatible = "rockchip,rk8603"; - reg = <0x43>; - vin-supply = <0x78>; - regulator-compatible = "rk860x-reg"; - regulator-name = "vdd_cpu_big1_s0"; - regulator-min-microvolt = <0x86470>; - regulator-max-microvolt = <0x100590>; - regulator-ramp-delay = <0x8fc>; - rockchip,suspend-voltage-selector = <0x01>; - regulator-boot-on; - regulator-always-on; - phandle = <0x1c>; - - regulator-state-mem { - regulator-off-in-suspend; - }; + gpio@fec20000 { + gpio-controller; + interrupts = <0x00 0x116 0x04>; + clocks = <0x02 0x7d 0x02 0x7e>; + compatible = "rockchip,gpio-bank"; + #interrupt-cells = <0x02>; + reg = <0x00 0xfec20000 0x00 0x100>; + phandle = <0xfe>; + #gpio-cells = <0x02>; + gpio-ranges = <0x197 0x00 0x20 0x20>; + interrupt-controller; }; - pc9202@3c { - status = "okay"; - compatible = "firefly,pc9202"; - reg = <0x3c>; - index = <0x00>; - wd-en-gpio = <0x79 0x15 0x00>; - driver-names = "wdt_core"; + pcfg-pull-none-drv-level-15 { + drive-strength = <0x0f>; + bias-disable; + phandle = <0x459>; }; - hym8563@51 { - status = "okay"; - compatible = "haoyu,hym8563"; - reg = <0x51>; - #clock-cells = <0x00>; - clock-frequency = <0x8000>; - clock-output-names = "hym8563"; - pinctrl-names = "default"; - pinctrl-0 = <0x7a>; - interrupt-parent = <0x7b>; - interrupts = <0x08 0x08>; - wakeup-source; - phandle = <0x1e4>; + eth1 { + + eth1-pins { + rockchip,pins = <0x03 0x06 0x01 0x198>; + phandle = <0x327>; + }; }; - }; - serial@fd890000 { - compatible = "rockchip,rk3588-uart\0snps,dw-apb-uart"; - reg = <0x00 0xfd890000 0x00 0x100>; - interrupts = <0x00 0x14b 0x04>; - clocks = <0x02 0x2ae 0x02 0x2af>; - clock-names = "baudclk\0apb_pclk"; - reg-shift = <0x02>; - reg-io-width = <0x04>; - dmas = <0x7c 0x06 0x7c 0x07>; - pinctrl-names = "default"; - pinctrl-0 = <0x7d>; - status = "disabled"; - phandle = <0x260>; - }; + i2c4 { - pwm@fd8b0000 { - compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; - reg = <0x00 0xfd8b0000 0x00 0x10>; - interrupts = <0x00 0x158 0x04>; - #pwm-cells = <0x03>; - pinctrl-names = "active"; - pinctrl-0 = <0x7e>; - clocks = <0x02 0x2a5 0x02 0x2a4>; - clock-names = "pwm\0pclk"; - status = "disabled"; - phandle = <0x261>; - }; + i2c4m3-xfer { + rockchip,pins = <0x01 0x03 0x09 0x19d 0x01 0x02 0x09 0x19d>; + phandle = <0x364>; + }; - pwm@fd8b0010 { - compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; - reg = <0x00 0xfd8b0010 0x00 0x10>; - interrupts = <0x00 0x158 0x04>; - #pwm-cells = <0x03>; - pinctrl-names = "active"; - pinctrl-0 = <0x7f>; - clocks = <0x02 0x2a5 0x02 0x2a4>; - clock-names = "pwm\0pclk"; - status = "disabled"; - phandle = <0x262>; - }; + i2c4m2-xfer { + rockchip,pins = <0x00 0x15 0x09 0x19d 0x00 0x14 0x09 0x19d>; + phandle = <0x363>; + }; - pwm@fd8b0020 { - compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; - reg = <0x00 0xfd8b0020 0x00 0x10>; - interrupts = <0x00 0x158 0x04>; - #pwm-cells = <0x03>; - pinctrl-names = "active"; - pinctrl-0 = <0x80>; - clocks = <0x02 0x2a5 0x02 0x2a4>; - clock-names = "pwm\0pclk"; - status = "disabled"; - phandle = <0x263>; - }; + i2c4m1-xfer { + rockchip,pins = <0x02 0x0d 0x09 0x19d 0x02 0x0c 0x09 0x19d>; + phandle = <0x14b>; + }; - pwm@fd8b0030 { - compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; - reg = <0x00 0xfd8b0030 0x00 0x10>; - interrupts = <0x00 0x158 0x04 0x00 0x159 0x04>; - #pwm-cells = <0x03>; - pinctrl-names = "active"; - pinctrl-0 = <0x81>; - clocks = <0x02 0x2a5 0x02 0x2a4>; - clock-names = "pwm\0pclk"; - status = "disabled"; - phandle = <0x264>; - }; + i2c4m0-xfer { + rockchip,pins = <0x03 0x06 0x09 0x19d 0x03 0x05 0x09 0x19d>; + phandle = <0x362>; + }; - power-management@fd8d8000 { - compatible = "rockchip,rk3588-pmu\0syscon\0simple-mfd"; - reg = <0x00 0xfd8d8000 0x00 0x400>; - phandle = <0xd9>; + i2c4m4-xfer { + rockchip,pins = <0x01 0x17 0x09 0x19d 0x01 0x16 0x09 0x19d>; + phandle = <0x365>; + }; + }; - power-controller { - compatible = "rockchip,rk3588-power-controller"; - #power-domain-cells = <0x01>; - #address-cells = <0x01>; - #size-cells = <0x00>; - status = "okay"; - phandle = <0x60>; + emmc { - power-domain@8 { - reg = <0x08>; - #address-cells = <0x01>; - #size-cells = <0x00>; + emmc-data-strobe { + rockchip,pins = <0x02 0x02 0x01 0x198>; + phandle = <0x326>; + }; - power-domain@9 { - reg = <0x09>; - #address-cells = <0x01>; - #size-cells = <0x00>; - clocks = <0x02 0x12f 0x02 0x131 0x02 0x130 0x02 0x126>; - pm_qos = <0x82 0x83 0x84>; + emmc-clk { + rockchip,pins = <0x02 0x01 0x01 0x199>; + phandle = <0x324>; + }; - power-domain@10 { - reg = <0x0a>; - clocks = <0x02 0x12f 0x02 0x131 0x02 0x130>; - pm_qos = <0x85>; - }; + emmc-bus8 { + rockchip,pins = <0x02 0x18 0x01 0x199 0x02 0x19 0x01 0x199 0x02 0x1a 0x01 0x199 0x02 0x1b 0x01 0x199 0x02 0x1c 0x01 0x199 0x02 0x1d 0x01 0x199 0x02 0x1e 0x01 0x199 0x02 0x1f 0x01 0x199>; + phandle = <0x323>; + }; - power-domain@11 { - reg = <0x0b>; - clocks = <0x02 0x12f 0x02 0x131 0x02 0x130>; - pm_qos = <0x86>; - }; - }; + emmc-cmd { + rockchip,pins = <0x02 0x00 0x01 0x199>; + phandle = <0x325>; }; - power-domain@12 { - reg = <0x0c>; - clocks = <0x02 0x114 0x02 0x115 0x02 0x116>; - pm_qos = <0x87 0x88 0x89 0x8a>; + emmc-rstnout { + rockchip,pins = <0x02 0x03 0x01 0x198>; + phandle = <0x322>; }; + }; - power-domain@13 { - reg = <0x0d>; - #address-cells = <0x01>; - #size-cells = <0x00>; - - power-domain@14 { - reg = <0x0e>; - clocks = <0x02 0x18f 0x02 0x1be 0x02 0x1bc 0x02 0x190 0x02 0x18e>; - pm_qos = <0x8b>; - }; + pcfg-pull-none-drv-level-8 { + drive-strength = <0x08>; + bias-disable; + phandle = <0x452>; + }; - power-domain@15 { - reg = <0x0f>; - clocks = <0x02 0x194 0x02 0x1be 0x02 0x1bc 0x02 0x195>; - pm_qos = <0x8c>; - }; + pwm15 { - power-domain@16 { - reg = <0x10>; - #address-cells = <0x01>; - #size-cells = <0x00>; - clocks = <0x02 0x1c4 0x02 0x1c5>; - pm_qos = <0x8d 0x8e 0x8f>; + pwm15m0-pins { + rockchip,pins = <0x03 0x13 0x0b 0x198>; + phandle = <0x174>; + }; - power-domain@17 { - reg = <0x11>; - clocks = <0x02 0x1c9 0x02 0x1c4 0x02 0x1c5 0x02 0x1ca>; - pm_qos = <0x90 0x91 0x92>; - }; - }; + pwm15m3-pins { + rockchip,pins = <0x01 0x1f 0x0b 0x198>; + phandle = <0x3e4>; }; - power-domain@21 { - reg = <0x15>; - #address-cells = <0x01>; - #size-cells = <0x00>; - clocks = <0x02 0x1be 0x02 0x1bd 0x02 0x1bc 0x02 0x1bf 0x02 0x1aa 0x02 0x1a9 0x02 0x1ac 0x02 0x1ad 0x02 0x1ae 0x02 0x1af 0x02 0x1b0 0x02 0x1b1 0x02 0x1b2 0x02 0x1b3 0x02 0x1b4 0x02 0x1b5 0x02 0x1b7 0x02 0x1b6>; - pm_qos = <0x93 0x94 0x95 0x96 0x97 0x98 0x99 0x9a>; + pwm15m2-pins { + rockchip,pins = <0x01 0x16 0x0b 0x198>; + phandle = <0x3e3>; + }; - power-domain@23 { - reg = <0x17>; - clocks = <0x02 0x4b 0x02 0x49 0x02 0x1be>; - pm_qos = <0x9b>; - }; + pwm15m1-pins { + rockchip,pins = <0x04 0x0b 0x0b 0x198>; + phandle = <0x3e2>; + }; + }; - power-domain@14 { - reg = <0x0e>; - clocks = <0x02 0x18f 0x02 0x1be 0x02 0x1bc 0x02 0x190>; - pm_qos = <0x8b>; - }; + pcie30x2 { - power-domain@15 { - reg = <0x0f>; - clocks = <0x02 0x194 0x02 0x1be 0x02 0x1bc>; - pm_qos = <0x8c>; - }; + pcie30x2m2-pins { + rockchip,pins = <0x03 0x1a 0x04 0x198 0x03 0x1c 0x04 0x198 0x03 0x1b 0x04 0x198>; + phandle = <0x3ac>; + }; - power-domain@22 { - reg = <0x16>; - clocks = <0x02 0x1ba 0x02 0x1b9>; - pm_qos = <0x9c>; - }; + pcie30x2m1-pins { + rockchip,pins = <0x04 0x06 0x04 0x198 0x04 0x08 0x04 0x198 0x04 0x07 0x04 0x198>; + phandle = <0x3ab>; }; - power-domain@24 { - reg = <0x18>; - #address-cells = <0x01>; - #size-cells = <0x00>; - clocks = <0x02 0x26e 0x02 0x26d 0x02 0x270>; - pm_qos = <0x9d 0x9e>; + pcie30x2-button-rstn { + rockchip,pins = <0x03 0x11 0x04 0x198>; + phandle = <0x3ae>; + }; - power-domain@25 { - reg = <0x19>; - clocks = <0x02 0x1f6 0x02 0x1f7 0x02 0x1f5 0x02 0x1f3 0x02 0x1ee 0x02 0x1ed 0x02 0x26d>; - pm_qos = <0x9f>; - }; + pcie30x2m0-pins { + rockchip,pins = <0x00 0x19 0x0c 0x198 0x00 0x1c 0x0c 0x198 0x00 0x1a 0x0c 0x198>; + phandle = <0x3aa>; }; - power-domain@26 { - reg = <0x1a>; - clocks = <0x02 0x22e 0x02 0x22f 0x02 0x22d 0x02 0x218 0x02 0x217 0x02 0x22b 0x02 0x264>; - pm_qos = <0xa0 0xa1>; + pcie30x2m3-pins { + rockchip,pins = <0x01 0x1f 0x04 0x198 0x01 0x0f 0x04 0x198 0x01 0x0e 0x04 0x198>; + phandle = <0x3ad>; }; + }; - power-domain@27 { - reg = <0x1b>; - #address-cells = <0x01>; - #size-cells = <0x00>; - clocks = <0x02 0x1e1 0x02 0x1e2 0x02 0x1df 0x02 0x1de 0x02 0x1e5 0x02 0x1e4>; - pm_qos = <0xa2 0xa3 0xa4 0xa5>; + can0 { - power-domain@28 { - reg = <0x1c>; - clocks = <0x02 0x121 0x02 0x120 0x02 0x1e1 0x02 0x1e2>; - pm_qos = <0xa6 0xa7>; - }; + can0m0-pins { + rockchip,pins = <0x00 0x10 0x0b 0x198 0x00 0x0f 0x0b 0x198>; + phandle = <0x145>; + }; - power-domain@29 { - reg = <0x1d>; - clocks = <0x02 0x1d6 0x02 0x1d5 0x02 0x1d9 0x02 0x1d8 0x02 0x1e2>; - pm_qos = <0xa8 0xa9>; - }; + can0m1-pins { + rockchip,pins = <0x04 0x1d 0x09 0x198 0x04 0x1c 0x09 0x198>; + phandle = <0x30d>; }; + }; - power-domain@30 { - reg = <0x1e>; - clocks = <0x02 0x189 0x02 0x18a>; - pm_qos = <0xaa>; + pcfg-output-high { + output-high; + phandle = <0x305>; + }; + + uart9 { + + uart9m0-rtsn { + rockchip,pins = <0x04 0x14 0x0a 0x198>; + phandle = <0x44e>; }; - power-domain@31 { - reg = <0x1f>; - clocks = <0x02 0x166 0x02 0x1a1 0x02 0x1a4 0x02 0x19d 0x02 0x19e 0x02 0x19f 0x02 0x1a0>; - pm_qos = <0xab 0xac 0xad 0xae>; + uart9m2-ctsn { + rockchip,pins = <0x03 0x1b 0x0a 0x198>; + phandle = <0x44a>; }; - power-domain@33 { - reg = <0x21>; - clocks = <0x02 0x166 0x02 0x169 0x02 0x16a>; + uart9m1-ctsn { + rockchip,pins = <0x04 0x01 0x0a 0x198>; + phandle = <0x447>; }; - power-domain@34 { - reg = <0x22>; - clocks = <0x02 0x166 0x02 0x169 0x02 0x16a>; + uart9m2-xfer { + rockchip,pins = <0x03 0x1c 0x0a 0x19e 0x03 0x1d 0x0a 0x19e>; + phandle = <0x449>; }; - power-domain@37 { - reg = <0x25>; - clocks = <0x02 0x199 0x02 0x140>; - pm_qos = <0xaf>; + uart9m0-ctsn { + rockchip,pins = <0x04 0x15 0x0a 0x198>; + phandle = <0x44d>; }; - power-domain@38 { - reg = <0x26>; - clocks = <0x02 0x3c 0x02 0x3d>; + uart9m1-xfer { + rockchip,pins = <0x04 0x0d 0x0a 0x19e 0x04 0x0c 0x0a 0x19e>; + phandle = <0x168>; }; - power-domain@40 { - reg = <0x28>; - pm_qos = <0xb0>; + uart9m0-xfer { + rockchip,pins = <0x02 0x14 0x0a 0x19e 0x02 0x12 0x0a 0x19e>; + phandle = <0x44c>; }; - }; - }; - pvtm@fda40000 { - compatible = "rockchip,rk3588-bigcore0-pvtm"; - reg = <0x00 0xfda40000 0x00 0x100>; - #address-cells = <0x01>; - #size-cells = <0x00>; + uart9m2-rtsn { + rockchip,pins = <0x03 0x1a 0x0a 0x198>; + phandle = <0x44b>; + }; - pvtm@0 { - reg = <0x00>; - clocks = <0x02 0x2c6 0x02 0x15>; - clock-names = "clk\0pclk"; + uart9m1-rtsn { + rockchip,pins = <0x04 0x00 0x0a 0x198>; + phandle = <0x448>; + }; }; - }; - - pvtm@fda50000 { - compatible = "rockchip,rk3588-bigcore1-pvtm"; - reg = <0x00 0xfda50000 0x00 0x100>; - #address-cells = <0x01>; - #size-cells = <0x00>; - pvtm@1 { - reg = <0x01>; - clocks = <0x02 0x2c8 0x02 0x17>; - clock-names = "clk\0pclk"; + pcfg-pull-none-drv-level-2-smt { + drive-strength = <0x02>; + bias-disable; + input-schmitt-enable; + phandle = <0x301>; }; - }; - - pvtm@fda60000 { - compatible = "rockchip,rk3588-litcore-pvtm"; - reg = <0x00 0xfda60000 0x00 0x100>; - #address-cells = <0x01>; - #size-cells = <0x00>; - pvtm@2 { - reg = <0x02>; - clocks = <0x02 0x2ca 0x02 0x1b>; - clock-names = "clk\0pclk"; + pcfg-pull-up { + phandle = <0x19e>; + bias-pull-up; }; - }; - pvtm@fdaf0000 { - compatible = "rockchip,rk3588-npu-pvtm"; - reg = <0x00 0xfdaf0000 0x00 0x100>; - #address-cells = <0x01>; - #size-cells = <0x00>; + spi3 { - pvtm@3 { - reg = <0x03>; - clocks = <0x02 0x12b 0x02 0x129>; - clock-names = "clk\0pclk"; - resets = <0x02 0x1de 0x02 0x1dc>; - reset-names = "rts\0rst-p"; - }; - }; + spi3m3-cs1 { + rockchip,pins = <0x03 0x15 0x08 0x19a>; + phandle = <0x40e>; + }; - pvtm@fdb30000 { - compatible = "rockchip,rk3588-gpu-pvtm"; - reg = <0x00 0xfdb30000 0x00 0x100>; - #address-cells = <0x01>; - #size-cells = <0x00>; - - pvtm@4 { - reg = <0x04>; - clocks = <0x02 0x118>; - clock-names = "clk"; - resets = <0x02 0x430 0x02 0x42f>; - reset-names = "rts\0rst-p"; - }; - }; + spi3m1-cs0 { + rockchip,pins = <0x04 0x10 0x08 0x19a>; + phandle = <0x15d>; + }; - npu@fdab0000 { - compatible = "rockchip,rk3588-rknpu"; - reg = <0x00 0xfdab0000 0x00 0x10000 0x00 0xfdac0000 0x00 0x10000 0x00 0xfdad0000 0x00 0x10000>; - interrupts = <0x00 0x6e 0x04 0x00 0x6f 0x04 0x00 0x70 0x04>; - interrupt-names = "npu0_irq\0npu1_irq\0npu2_irq"; - clocks = <0x0e 0x06 0x02 0x12d 0x02 0x122 0x02 0x124 0x02 0x12e 0x02 0x123 0x02 0x125 0x02 0x131>; - clock-names = "clk_npu\0aclk0\0aclk1\0aclk2\0hclk0\0hclk1\0hclk2\0pclk"; - assigned-clocks = <0x0e 0x06>; - assigned-clock-rates = <0xbebc200>; - resets = <0x02 0x1e6 0x02 0x1b0 0x02 0x1c0 0x02 0x1e8 0x02 0x1b2 0x02 0x1c2>; - reset-names = "srst_a0\0srst_a1\0srst_a2\0srst_h0\0srst_h1\0srst_h2"; - power-domains = <0x60 0x09 0x60 0x0a 0x60 0x0b>; - power-domain-names = "npu0\0npu1\0npu2"; - operating-points-v2 = <0xb1>; - iommus = <0xb2>; - status = "okay"; - rknpu-supply = <0xb3>; - mem-supply = <0xb3>; - phandle = <0x265>; - }; + spi3m3-pins { + rockchip,pins = <0x03 0x18 0x08 0x19a 0x03 0x16 0x08 0x19a 0x03 0x17 0x08 0x19a>; + phandle = <0x40c>; + }; - npu-opp-table { - compatible = "operating-points-v2"; - nvmem-cells = <0xb4 0xb5 0x21>; - nvmem-cell-names = "leakage\0opp-info\0specification_serial_number"; - rockchip,supported-hw; - rockchip,pvtm-hw = <0x06>; - rockchip,pvtm-voltage-sel-hw = <0x00 0x31f 0x00 0x320 0x333 0x01 0x334 0x34c 0x02 0x34d 0x365 0x03 0x366 0x37e 0x04 0x37f 0x270f 0x05>; - rockchip,pvtm-voltage-sel = <0x00 0x32f 0x00 0x330 0x343 0x01 0x344 0x35c 0x02 0x35d 0x375 0x03 0x376 0x38e 0x04 0x38f 0x270f 0x05>; - rockchip,pvtm-pvtpll; - rockchip,pvtm-offset = <0x50>; - rockchip,pvtm-sample-time = <0x44c>; - rockchip,pvtm-freq = "\0\f5"; - rockchip,pvtm-volt = <0xb71b0>; - rockchip,pvtm-ref-temp = <0x19>; - rockchip,pvtm-temp-prop = <0xffffff8f 0xffffff8f>; - rockchip,pvtm-thermal-zone = "npu-thermal"; - rockchip,opp-clocks = <0x02 0x12a 0x02 0x12f>; - rockchip,grf = <0xb6>; - volt-mem-read-margin = <0xd0bd8 0x01 0xbac48 0x02 0xa4cb8 0x03 0x78d98 0x04>; - low-volt-mem-read-margin = <0x04>; - intermediate-threshold-freq = <0x7a120>; - rockchip,init-freq = <0xf4240>; - rockchip,temp-hysteresis = <0x1388>; - rockchip,low-temp = <0x2710>; - rockchip,low-temp-min-volt = <0xb71b0>; - rockchip,high-temp = <0x14c08>; - rockchip,high-temp-max-freq = "\0\f5"; - phandle = <0xb1>; + spi3m0-cs1 { + rockchip,pins = <0x04 0x13 0x08 0x19f>; + phandle = <0x411>; + }; - opp-300000000 { - opp-supported-hw = <0xf9 0xffff>; - opp-hz = <0x00 0x11e1a300>; - opp-microvolt = <0xaae60 0xaae60 0xcf850 0xaae60 0xaae60 0xcf850>; - opp-microvolt-L1 = <0xa7d8c 0xa7d8c 0xcf850 0xa7d8c 0xa7d8c 0xcf850>; - opp-microvolt-L2 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; - opp-microvolt-L3 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; - opp-microvolt-L4 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; - opp-microvolt-L5 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; - }; + spi3m2-cs0 { + rockchip,pins = <0x00 0x1c 0x08 0x19a>; + phandle = <0x40a>; + }; - opp-400000000 { - opp-supported-hw = <0xf9 0xffff>; - opp-hz = <0x00 0x17d78400>; - opp-microvolt = <0xaae60 0xaae60 0xcf850 0xaae60 0xaae60 0xcf850>; - opp-microvolt-L1 = <0xa7d8c 0xa7d8c 0xcf850 0xa7d8c 0xa7d8c 0xcf850>; - opp-microvolt-L2 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; - opp-microvolt-L3 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; - opp-microvolt-L4 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; - opp-microvolt-L5 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; - }; + spi3m2-pins { + rockchip,pins = <0x00 0x1b 0x08 0x19a 0x00 0x18 0x08 0x19a 0x00 0x1a 0x08 0x19a>; + phandle = <0x409>; + }; - opp-500000000 { - opp-supported-hw = <0xf9 0xffff>; - opp-hz = <0x00 0x1dcd6500>; - opp-microvolt = <0xaae60 0xaae60 0xcf850 0xaae60 0xaae60 0xcf850>; - opp-microvolt-L1 = <0xa7d8c 0xa7d8c 0xcf850 0xa7d8c 0xa7d8c 0xcf850>; - opp-microvolt-L2 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; - opp-microvolt-L3 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; - opp-microvolt-L4 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; - opp-microvolt-L5 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; - }; + spi3m1-cs1 { + rockchip,pins = <0x04 0x11 0x08 0x19a>; + phandle = <0x15e>; + }; - opp-600000000 { - opp-supported-hw = <0xf9 0xffff>; - opp-hz = <0x00 0x23c34600>; - opp-microvolt = <0xaae60 0xaae60 0xcf850 0xaae60 0xaae60 0xcf850>; - opp-microvolt-L1 = <0xa7d8c 0xa7d8c 0xcf850 0xa7d8c 0xa7d8c 0xcf850>; - opp-microvolt-L2 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; - opp-microvolt-L3 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; - opp-microvolt-L4 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; - opp-microvolt-L5 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; - }; + spi3m1-pins { + rockchip,pins = <0x04 0x0f 0x08 0x19a 0x04 0x0d 0x08 0x19a 0x04 0x0e 0x08 0x19a>; + phandle = <0x15f>; + }; - opp-700000000 { - opp-supported-hw = <0xf9 0xffff>; - opp-hz = <0x00 0x29b92700>; - opp-microvolt = <0xaae60 0xaae60 0xcf850 0xaae60 0xaae60 0xcf850>; - opp-microvolt-L3 = <0xa7d8c 0xa7d8c 0xcf850 0xa7d8c 0xa7d8c 0xcf850>; - opp-microvolt-L4 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; - opp-microvolt-L5 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; - }; + spi3m3-cs0 { + rockchip,pins = <0x03 0x14 0x08 0x19a>; + phandle = <0x40d>; + }; - opp-800000000 { - opp-supported-hw = <0xf9 0xffff>; - opp-hz = <0x00 0x2faf0800>; - opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; - opp-microvolt-L2 = <0xb40dc 0xb40dc 0xcf850 0xb40dc 0xb40dc 0xcf850>; - opp-microvolt-L3 = <0xb1008 0xb1008 0xcf850 0xb1008 0xb1008 0xcf850>; - opp-microvolt-L4 = <0xadf34 0xadf34 0xcf850 0xadf34 0xadf34 0xcf850>; - opp-microvolt-L5 = <0xaae60 0xaae60 0xcf850 0xaae60 0xaae60 0xcf850>; - }; + spi3m0-pins { + rockchip,pins = <0x04 0x16 0x08 0x19f 0x04 0x14 0x08 0x19f 0x04 0x15 0x08 0x19f>; + phandle = <0x40f>; + }; - opp-900000000 { - opp-supported-hw = <0xf9 0xffff>; - opp-hz = <0x00 0x35a4e900>; - opp-microvolt = <0xc3500 0xc3500 0xcf850 0xc3500 0xc3500 0xcf850>; - opp-microvolt-L1 = <0xc042c 0xc042c 0xcf850 0xc042c 0xc042c 0xcf850>; - opp-microvolt-L2 = <0xbd358 0xbd358 0xcf850 0xbd358 0xbd358 0xcf850>; - opp-microvolt-L3 = <0xba284 0xba284 0xcf850 0xba284 0xba284 0xcf850>; - opp-microvolt-L4 = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; - opp-microvolt-L5 = <0xb40dc 0xb40dc 0xcf850 0xb40dc 0xb40dc 0xcf850>; - }; + spi3m2-cs1 { + rockchip,pins = <0x00 0x1d 0x08 0x19a>; + phandle = <0x40b>; + }; - opp-1000000000 { - opp-supported-hw = <0xf9 0xffff>; - opp-hz = <0x00 0x3b9aca00>; - opp-microvolt = <0xcf850 0xcf850 0xcf850 0xcf850 0xcf850 0xcf850>; - opp-microvolt-L1 = <0xcc77c 0xcc77c 0xcf850 0xcc77c 0xcc77c 0xcf850>; - opp-microvolt-L2 = <0xc96a8 0xc96a8 0xcf850 0xc96a8 0xc96a8 0xcf850>; - opp-microvolt-L3 = <0xc65d4 0xc65d4 0xcf850 0xc65d4 0xc65d4 0xcf850>; - opp-microvolt-L4 = <0xc3500 0xc3500 0xcf850 0xc3500 0xc3500 0xcf850>; - opp-microvolt-L5 = <0xc042c 0xc042c 0xcf850 0xc042c 0xc042c 0xcf850>; + spi3m0-cs0 { + rockchip,pins = <0x04 0x12 0x08 0x19f>; + phandle = <0x410>; + }; }; - opp-j-m-300000000 { - opp-supported-hw = <0x06 0xffff>; - opp-hz = <0x00 0x11e1a300>; - opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; + pcfg-pull-down-drv-level-14 { + drive-strength = <0x0e>; + bias-pull-down; + phandle = <0x46a>; }; - opp-j-m-400000000 { - opp-supported-hw = <0x06 0xffff>; - opp-hz = <0x00 0x17d78400>; - opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; - }; + bt656 { - opp-j-m-500000000 { - opp-supported-hw = <0x06 0xffff>; - opp-hz = <0x00 0x1dcd6500>; - opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; + bt656-pins { + rockchip,pins = <0x04 0x08 0x02 0x1a0 0x04 0x00 0x02 0x1a0 0x04 0x01 0x02 0x1a0 0x04 0x02 0x02 0x1a0 0x04 0x03 0x02 0x1a0 0x04 0x04 0x02 0x1a0 0x04 0x05 0x02 0x1a0 0x04 0x06 0x02 0x1a0 0x04 0x07 0x02 0x1a0>; + phandle = <0x450>; + }; }; - opp-j-m-600000000 { - opp-supported-hw = <0x06 0xffff>; - opp-hz = <0x00 0x23c34600>; - opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; + pcfg-pull-down-drv-level-0 { + drive-strength = <0x00>; + bias-pull-down; + phandle = <0x2f7>; }; - opp-j-m-700000000 { - opp-supported-hw = <0x06 0xffff>; - opp-hz = <0x00 0x29b92700>; - opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; + pcfg-pull-up-drv-level-3 { + drive-strength = <0x03>; + phandle = <0x2f4>; + bias-pull-up; }; - opp-j-m-800000000 { - opp-supported-hw = <0x06 0xffff>; - opp-hz = <0x00 0x2faf0800>; - opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; - }; + i2s2 { - opp-j-m-950000000 { - opp-supported-hw = <0x06 0xffff>; - opp-hz = <0x00 0x389fd980>; - opp-microvolt = <0xcc77c 0xcc77c 0xcf850 0xcc77c 0xcc77c 0xcf850>; - opp-microvolt-L1 = <0xc96a8 0xc96a8 0xcf850 0xc96a8 0xc96a8 0xcf850>; - opp-microvolt-L2 = <0xc65d4 0xc65d4 0xcf850 0xc65d4 0xc65d4 0xcf850>; - opp-microvolt-L3 = <0xc3500 0xc3500 0xcf850 0xc3500 0xc3500 0xcf850>; - opp-microvolt-L4 = <0xc042c 0xc042c 0xcf850 0xc042c 0xc042c 0xcf850>; - opp-microvolt-L5 = <0xbd358 0xbd358 0xcf850 0xbd358 0xbd358 0xcf850>; - }; - }; + i2s2m0-lrck { + rockchip,pins = <0x02 0x10 0x02 0x19d>; + phandle = <0x389>; + }; - iommu@fdab9000 { - compatible = "rockchip,iommu-v2"; - reg = <0x00 0xfdab9000 0x00 0x100 0x00 0xfdaba000 0x00 0x100 0x00 0xfdaca000 0x00 0x100 0x00 0xfdada000 0x00 0x100>; - interrupts = <0x00 0x6e 0x04 0x00 0x6f 0x04 0x00 0x70 0x04>; - interrupt-names = "npu0_mmu\0npu1_mmu\0npu2_mmu"; - clocks = <0x02 0x12d 0x02 0x122 0x02 0x124 0x02 0x12e 0x02 0x123 0x02 0x125>; - clock-names = "aclk0\0aclk1\0aclk2\0iface0\0iface1\0iface2"; - #iommu-cells = <0x00>; - status = "okay"; - phandle = <0xb2>; - }; + i2s2m1-mclk { + rockchip,pins = <0x03 0x0c 0x03 0x19d>; + phandle = <0x387>; + }; - vepu@fdb50000 { - compatible = "rockchip,vpu-encoder-v2"; - reg = <0x00 0xfdb50000 0x00 0x400>; - interrupts = <0x00 0x78 0x04>; - interrupt-names = "irq_vepu"; - clocks = <0x02 0x1c0 0x02 0x1c1>; - clock-names = "aclk_vcodec\0hclk_vcodec"; - rockchip,normal-rates = <0x2367b880 0x00>; - assigned-clocks = <0x02 0x1c0>; - assigned-clock-rates = <0x2367b880>; - resets = <0x02 0x2c8 0x02 0x2c9>; - reset-names = "shared_video_a\0shared_video_h"; - rockchip,skip-pmu-idle-request; - rockchip,disable-auto-freq; - iommus = <0xb7>; - rockchip,srv = <0xb8>; - rockchip,taskqueue-node = <0x00>; - rockchip,resetgroup-node = <0x00>; - power-domains = <0x60 0x15>; - status = "disabled"; - phandle = <0x266>; - }; + i2s2m0-mclk { + rockchip,pins = <0x02 0x0e 0x02 0x19d>; + phandle = <0x38a>; + }; - vdpu@fdb50400 { - compatible = "rockchip,vpu-decoder-v2"; - reg = <0x00 0xfdb50400 0x00 0x400>; - interrupts = <0x00 0x77 0x04>; - interrupt-names = "irq_vdpu"; - clocks = <0x02 0x1c0 0x02 0x1c1>; - clock-names = "aclk_vcodec\0hclk_vcodec"; - rockchip,normal-rates = <0x2367b880 0x00>; - assigned-clocks = <0x02 0x1c0>; - assigned-clock-rates = <0x2367b880>; - resets = <0x02 0x2c8 0x02 0x2c9>; - reset-names = "shared_video_a\0shared_video_h"; - rockchip,skip-pmu-idle-request; - rockchip,disable-auto-freq; - iommus = <0xb7>; - rockchip,srv = <0xb8>; - rockchip,taskqueue-node = <0x00>; - rockchip,resetgroup-node = <0x00>; - power-domains = <0x60 0x15>; - status = "okay"; - phandle = <0x267>; - }; + i2s2m1-sdo { + rockchip,pins = <0x03 0x0b 0x03 0x198>; + phandle = <0x12b>; + }; - iommu@fdb50800 { - compatible = "rockchip,iommu-v2"; - reg = <0x00 0xfdb50800 0x00 0x40>; - interrupts = <0x00 0x76 0x04>; - interrupt-names = "irq_vdpu_mmu"; - clocks = <0x02 0x1c0 0x02 0x1c1>; - clock-names = "aclk\0iface"; - power-domains = <0x60 0x15>; - #iommu-cells = <0x00>; - status = "okay"; - phandle = <0xb7>; - }; + i2s2m0-sdi { + rockchip,pins = <0x02 0x13 0x02 0x198>; + phandle = <0x38c>; + }; - avsd-plus@fdb51000 { - compatible = "rockchip,avs-plus-decoder"; - reg = <0x00 0xfdb51000 0x00 0x200>; - interrupts = <0x00 0x77 0x04>; - interrupt-names = "irq_avsd"; - clocks = <0x02 0x1c0 0x02 0x1c1>; - clock-names = "aclk_vcodec\0hclk_vcodec"; - rockchip,normal-rates = <0x2367b880 0x00>; - assigned-clocks = <0x02 0x1c0>; - assigned-clock-rates = <0x2367b880>; - resets = <0x02 0x2c8 0x02 0x2c9>; - reset-names = "shared_video_a\0shared_video_h"; - rockchip,skip-pmu-idle-request; - rockchip,disable-auto-freq; - iommus = <0xb7>; - power-domains = <0x60 0x15>; - rockchip,srv = <0xb8>; - rockchip,taskqueue-node = <0x00>; - rockchip,resetgroup-node = <0x00>; - status = "disabled"; - phandle = <0x268>; - }; + i2s2m1-idle { + rockchip,pins = <0x03 0x0e 0x00 0x198 0x03 0x0d 0x00 0x198>; + phandle = <0x12c>; + }; - rga@fdb60000 { - compatible = "rockchip,rga3_core0"; - reg = <0x00 0xfdb60000 0x00 0x1000>; - interrupts = <0x00 0x72 0x04>; - interrupt-names = "rga3_core0_irq"; - clocks = <0x02 0x1ba 0x02 0x1b9 0x02 0x1bb>; - clock-names = "aclk_rga3_0\0hclk_rga3_0\0clk_rga3_0"; - power-domains = <0x60 0x16>; - iommus = <0xb9>; - status = "okay"; - phandle = <0x269>; - }; + i2s2m1-sdi { + rockchip,pins = <0x03 0x0a 0x03 0x198>; + phandle = <0x12a>; + }; - iommu@fdb60f00 { - compatible = "rockchip,iommu-v2"; - reg = <0x00 0xfdb60f00 0x00 0x100>; - interrupts = <0x00 0x72 0x04>; - interrupt-names = "rga3_0_mmu"; - clocks = <0x02 0x1ba 0x02 0x1b9>; - clock-names = "aclk\0iface"; - power-domains = <0x60 0x16>; - #iommu-cells = <0x00>; - status = "okay"; - phandle = <0xb9>; - }; + i2s2m0-idle { + rockchip,pins = <0x02 0x10 0x00 0x198 0x02 0x0f 0x00 0x198>; + phandle = <0x388>; + }; - rga@fdb70000 { - compatible = "rockchip,rga3_core1"; - reg = <0x00 0xfdb70000 0x00 0x1000>; - interrupts = <0x00 0x73 0x04>; - interrupt-names = "rga3_core1_irq"; - clocks = <0x02 0x18a 0x02 0x189 0x02 0x18b>; - clock-names = "aclk_rga3_1\0hclk_rga3_1\0clk_rga3_1"; - power-domains = <0x60 0x1e>; - iommus = <0xba>; - status = "okay"; - phandle = <0x26a>; - }; + i2s2m1-sclk { + rockchip,pins = <0x03 0x0d 0x03 0x19d>; + phandle = <0x12e>; + }; - iommu@fdb70f00 { - compatible = "rockchip,iommu-v2"; - reg = <0x00 0xfdb70f00 0x00 0x100>; - interrupts = <0x00 0x73 0x04>; - interrupt-names = "rga3_1_mmu"; - clocks = <0x02 0x18a 0x02 0x189>; - clock-names = "aclk\0iface"; - power-domains = <0x60 0x1e>; - #iommu-cells = <0x00>; - status = "okay"; - phandle = <0xba>; - }; + i2s2m1-lrck { + rockchip,pins = <0x03 0x0e 0x03 0x19d>; + phandle = <0x12d>; + }; - rga@fdb80000 { - compatible = "rockchip,rga2_core0"; - reg = <0x00 0xfdb80000 0x00 0x1000>; - interrupts = <0x00 0x74 0x04>; - interrupt-names = "rga2_irq"; - clocks = <0x02 0x1b7 0x02 0x1b6 0x02 0x1b8>; - clock-names = "aclk_rga2\0hclk_rga2\0clk_rga2"; - power-domains = <0x60 0x15>; - status = "okay"; - phandle = <0x26b>; - }; + i2s2m0-sclk { + rockchip,pins = <0x02 0x0f 0x02 0x19d>; + phandle = <0x38b>; + }; - jpegd@fdb90000 { - compatible = "rockchip,rkv-jpeg-decoder-v1"; - reg = <0x00 0xfdb90000 0x00 0x400>; - interrupts = <0x00 0x81 0x04>; - interrupt-names = "irq_jpegd"; - clocks = <0x02 0x1b4 0x02 0x1b5>; - clock-names = "aclk_vcodec\0hclk_vcodec"; - rockchip,normal-rates = <0x23c34600 0x00>; - assigned-clocks = <0x02 0x1b4>; - assigned-clock-rates = <0x23c34600>; - resets = <0x02 0x2d2 0x02 0x2d3>; - reset-names = "video_a\0video_h"; - rockchip,skip-pmu-idle-request; - iommus = <0xbb>; - rockchip,srv = <0xb8>; - rockchip,taskqueue-node = <0x01>; - power-domains = <0x60 0x15>; - status = "okay"; - phandle = <0x26c>; - }; + i2s2m0-sdo { + rockchip,pins = <0x04 0x13 0x02 0x198>; + phandle = <0x38d>; + }; + }; - iommu@fdb90480 { - compatible = "rockchip,iommu-v2"; - reg = <0x00 0xfdb90480 0x00 0x40>; - interrupts = <0x00 0x82 0x04>; - interrupt-names = "irq_jpegd_mmu"; - clocks = <0x02 0x1b4 0x02 0x1b5>; - clock-names = "aclk\0iface"; - power-domains = <0x60 0x15>; - #iommu-cells = <0x00>; - status = "okay"; - phandle = <0xbb>; - }; + pcfg-pull-none-drv-level-6-smt { + drive-strength = <0x06>; + bias-disable; + input-schmitt-enable; + phandle = <0x304>; + }; - jpege-core@fdba0000 { - compatible = "rockchip,vpu-jpege-core"; - reg = <0x00 0xfdba0000 0x00 0x400>; - interrupts = <0x00 0x7a 0x04>; - interrupt-names = "irq_jpege0"; - clocks = <0x02 0x1ac 0x02 0x1ad>; - clock-names = "aclk_vcodec\0hclk_vcodec"; - rockchip,normal-rates = <0x2367b880 0x00>; - assigned-clocks = <0x02 0x1ac>; - assigned-clock-rates = <0x2367b880>; - resets = <0x02 0x2ca 0x02 0x2cb>; - reset-names = "video_a\0video_h"; - rockchip,skip-pmu-idle-request; - rockchip,disable-auto-freq; - iommus = <0xbc>; - rockchip,srv = <0xb8>; - rockchip,taskqueue-node = <0x02>; - rockchip,ccu = <0xbd>; - power-domains = <0x60 0x15>; - status = "okay"; - phandle = <0x26d>; - }; + ddrphych3 { - iommu@fdba0800 { - compatible = "rockchip,iommu-v2"; - reg = <0x00 0xfdba0800 0x00 0x40>; - interrupts = <0x00 0x79 0x04>; - interrupt-names = "irq_jpege0_mmu"; - clocks = <0x02 0x1ac 0x02 0x1ad>; - clock-names = "aclk\0iface"; - power-domains = <0x60 0x15>; - #iommu-cells = <0x00>; - status = "okay"; - phandle = <0xbc>; - }; + ddrphych3-pins { + rockchip,pins = <0x04 0x0c 0x07 0x198 0x04 0x0d 0x07 0x198 0x04 0x0e 0x07 0x198 0x04 0x0f 0x07 0x198>; + phandle = <0x31b>; + }; + }; - jpege-core@fdba4000 { - compatible = "rockchip,vpu-jpege-core"; - reg = <0x00 0xfdba4000 0x00 0x400>; - interrupts = <0x00 0x7c 0x04>; - interrupt-names = "irq_jpege1"; - clocks = <0x02 0x1ae 0x02 0x1af>; - clock-names = "aclk_vcodec\0hclk_vcodec"; - rockchip,normal-rates = <0x2367b880 0x00>; - assigned-clocks = <0x02 0x1ae>; - assigned-clock-rates = <0x2367b880>; - resets = <0x02 0x2cc 0x02 0x2cd>; - reset-names = "video_a\0video_h"; - rockchip,skip-pmu-idle-request; - rockchip,disable-auto-freq; - iommus = <0xbe>; - rockchip,srv = <0xb8>; - rockchip,taskqueue-node = <0x02>; - rockchip,ccu = <0xbd>; - power-domains = <0x60 0x15>; - status = "okay"; - phandle = <0x26e>; - }; + pcfg-pull-none-drv-level-13 { + drive-strength = <0x0d>; + bias-disable; + phandle = <0x457>; + }; - iommu@fdba4800 { - compatible = "rockchip,iommu-v2"; - reg = <0x00 0xfdba4800 0x00 0x40>; - interrupts = <0x00 0x7b 0x04>; - interrupt-names = "irq_jpege1_mmu"; - clocks = <0x02 0x1ae 0x02 0x1af>; - clock-names = "aclk\0iface"; - power-domains = <0x60 0x15>; - #iommu-cells = <0x00>; - status = "okay"; - phandle = <0xbe>; - }; + i2c2 { - jpege-core@fdba8000 { - compatible = "rockchip,vpu-jpege-core"; - reg = <0x00 0xfdba8000 0x00 0x400>; - interrupts = <0x00 0x7e 0x04>; - interrupt-names = "irq_jpege2"; - clocks = <0x02 0x1b0 0x02 0x1b1>; - clock-names = "aclk_vcodec\0hclk_vcodec"; - rockchip,normal-rates = <0x2367b880 0x00>; - assigned-clocks = <0x02 0x1b0>; - assigned-clock-rates = <0x2367b880>; - resets = <0x02 0x2ce 0x02 0x2cf>; - reset-names = "video_a\0video_h"; - rockchip,skip-pmu-idle-request; - rockchip,disable-auto-freq; - iommus = <0xbf>; - rockchip,srv = <0xb8>; - rockchip,taskqueue-node = <0x02>; - rockchip,ccu = <0xbd>; - power-domains = <0x60 0x15>; - status = "okay"; - phandle = <0x26f>; - }; + i2c2m2-xfer { + rockchip,pins = <0x02 0x03 0x09 0x19d 0x02 0x02 0x09 0x19d>; + phandle = <0x35a>; + }; - iommu@fdba8800 { - compatible = "rockchip,iommu-v2"; - reg = <0x00 0xfdba8800 0x00 0x40>; - interrupts = <0x00 0x7d 0x04>; - interrupt-names = "irq_jpege2_mmu"; - clocks = <0x02 0x1b0 0x02 0x1b1>; - clock-names = "aclk\0iface"; - power-domains = <0x60 0x15>; - #iommu-cells = <0x00>; - status = "okay"; - phandle = <0xbf>; - }; + i2c2m1-xfer { + rockchip,pins = <0x02 0x11 0x09 0x19d 0x02 0x10 0x09 0x19d>; + phandle = <0x35d>; + }; - jpege-core@fdbac000 { - compatible = "rockchip,vpu-jpege-core"; - reg = <0x00 0xfdbac000 0x00 0x400>; - interrupts = <0x00 0x80 0x04>; - interrupt-names = "irq_jpege3"; - clocks = <0x02 0x1b2 0x02 0x1b3>; - clock-names = "aclk_vcodec\0hclk_vcodec"; - rockchip,normal-rates = <0x2367b880 0x00>; - assigned-clocks = <0x02 0x1b2>; - assigned-clock-rates = <0x2367b880>; - resets = <0x02 0x2d0 0x02 0x2d1>; - reset-names = "video_a\0video_h"; - rockchip,skip-pmu-idle-request; - rockchip,disable-auto-freq; - iommus = <0xc0>; - rockchip,srv = <0xb8>; - rockchip,taskqueue-node = <0x02>; - rockchip,ccu = <0xbd>; - power-domains = <0x60 0x15>; - status = "okay"; - phandle = <0x270>; - }; + i2c2m0-xfer { + rockchip,pins = <0x00 0x0f 0x09 0x19d 0x00 0x10 0x09 0x19d>; + phandle = <0x149>; + }; - iommu@fdbac800 { - compatible = "rockchip,iommu-v2"; - reg = <0x00 0xfdbac800 0x00 0x40>; - interrupts = <0x00 0x7f 0x04>; - interrupt-names = "irq_jpege3_mmu"; - clocks = <0x02 0x1b2 0x02 0x1b3>; - clock-names = "aclk\0iface"; - power-domains = <0x60 0x15>; - #iommu-cells = <0x00>; - status = "okay"; - phandle = <0xc0>; - }; + i2c2m4-xfer { + rockchip,pins = <0x01 0x01 0x09 0x19d 0x01 0x00 0x09 0x19d>; + phandle = <0x35c>; + }; - iep@fdbb0000 { - compatible = "rockchip,iep-v2"; - reg = <0x00 0xfdbb0000 0x00 0x500>; - interrupts = <0x00 0x75 0x04>; - interrupt-names = "irq_iep"; - clocks = <0x02 0x1aa 0x02 0x1a9 0x02 0x1ab>; - clock-names = "aclk\0hclk\0sclk"; - rockchip,normal-rates = <0x2367b880 0x00>; - assigned-clocks = <0x02 0x1aa>; - assigned-clock-rates = <0x2367b880>; - resets = <0x02 0x2d5 0x02 0x2d4 0x02 0x2d6>; - reset-names = "rst_a\0rst_h\0rst_s"; - rockchip,skip-pmu-idle-request; - rockchip,disable-auto-freq; - power-domains = <0x60 0x15>; - rockchip,srv = <0xb8>; - rockchip,taskqueue-node = <0x06>; - iommus = <0xc1>; - status = "okay"; - phandle = <0x271>; - }; + i2c2m3-xfer { + rockchip,pins = <0x01 0x15 0x09 0x19d 0x01 0x14 0x09 0x19d>; + phandle = <0x35b>; + }; + }; - iommu@fdbb0800 { - compatible = "rockchip,iommu-v2"; - reg = <0x00 0xfdbb0800 0x00 0x100>; - interrupts = <0x00 0x75 0x04>; - interrupt-names = "irq_iep_mmu"; - clocks = <0x02 0x1aa 0x02 0x1a9>; - clock-names = "aclk\0iface"; - #iommu-cells = <0x00>; - power-domains = <0x60 0x15>; - status = "okay"; - phandle = <0xc1>; - }; + auddsm { - rkvenc-core@fdbd0000 { - compatible = "rockchip,rkv-encoder-v2-core"; - reg = <0x00 0xfdbd0000 0x00 0x6000>; - interrupts = <0x00 0x65 0x04>; - interrupt-names = "irq_rkvenc0"; - clocks = <0x02 0x1c5 0x02 0x1c4 0x02 0x1c6>; - clock-names = "aclk_vcodec\0hclk_vcodec\0clk_core"; - rockchip,normal-rates = <0x1dcd6500 0x00 0x2faf0800>; - assigned-clocks = <0x02 0x1c5 0x02 0x1c6>; - assigned-clock-rates = <0x1dcd6500 0x2faf0800>; - resets = <0x02 0x2f5 0x02 0x2f4 0x02 0x2f6>; - reset-names = "video_a\0video_h\0video_core"; - rockchip,skip-pmu-idle-request; - iommus = <0xc2>; - rockchip,srv = <0xb8>; - rockchip,ccu = <0xc3>; - rockchip,taskqueue-node = <0x07>; - rockchip,task-capacity = <0x08>; - power-domains = <0x60 0x10>; - operating-points-v2 = <0xc4>; - status = "okay"; - phandle = <0x272>; - }; + auddsm-pins { + rockchip,pins = <0x03 0x01 0x04 0x198 0x03 0x02 0x04 0x198 0x03 0x03 0x04 0x198 0x03 0x04 0x04 0x198>; + phandle = <0x144>; + }; + }; - iommu@fdbdf000 { - compatible = "rockchip,iommu-v2"; - reg = <0x00 0xfdbdf000 0x00 0x40 0x00 0xfdbdf040 0x00 0x40>; - interrupts = <0x00 0x63 0x04 0x00 0x64 0x04>; - interrupt-names = "irq_rkvenc0_mmu0\0irq_rkvenc0_mmu1"; - clocks = <0x02 0x1c5 0x02 0x1c4>; - clock-names = "aclk\0iface"; - rockchip,disable-mmu-reset; - rockchip,enable-cmd-retry; - rockchip,shootdown-entire; - #iommu-cells = <0x00>; - power-domains = <0x60 0x10>; - status = "okay"; - phandle = <0xc2>; - }; + pwm8 { - rkvenc-core@fdbe0000 { - compatible = "rockchip,rkv-encoder-v2-core"; - reg = <0x00 0xfdbe0000 0x00 0x6000>; - interrupts = <0x00 0x68 0x04>; - interrupt-names = "irq_rkvenc1"; - clocks = <0x02 0x1ca 0x02 0x1c9 0x02 0x1cb>; - clock-names = "aclk_vcodec\0hclk_vcodec\0clk_core"; - rockchip,normal-rates = <0x1dcd6500 0x00 0x2faf0800>; - assigned-clocks = <0x02 0x1ca 0x02 0x1cb>; - assigned-clock-rates = <0x1dcd6500 0x2faf0800>; - resets = <0x02 0x305 0x02 0x304 0x02 0x306>; - reset-names = "video_a\0video_h\0video_core"; - rockchip,skip-pmu-idle-request; - iommus = <0xc5>; - rockchip,srv = <0xb8>; - rockchip,ccu = <0xc3>; - rockchip,taskqueue-node = <0x07>; - rockchip,task-capacity = <0x08>; - power-domains = <0x60 0x11>; - operating-points-v2 = <0xc4>; - status = "okay"; - phandle = <0x273>; - }; + pwm8m2-pins { + rockchip,pins = <0x03 0x18 0x0b 0x198>; + phandle = <0x3d5>; + }; - iommu@fdbef000 { - compatible = "rockchip,iommu-v2"; - reg = <0x00 0xfdbef000 0x00 0x40 0x00 0xfdbef040 0x00 0x40>; - interrupts = <0x00 0x66 0x04 0x00 0x67 0x04>; - interrupt-names = "irq_rkvenc1_mmu0\0irq_rkvenc1_mmu1"; - clocks = <0x02 0x1ca 0x02 0x1c9>; - lock-names = "aclk\0iface"; - rockchip,disable-mmu-reset; - rockchip,enable-cmd-retry; - rockchip,shootdown-entire; - #iommu-cells = <0x00>; - power-domains = <0x60 0x11>; - status = "okay"; - phandle = <0xc5>; - }; + pwm8m1-pins { + rockchip,pins = <0x04 0x18 0x0b 0x198>; + phandle = <0x3d4>; + }; - venc-opp-table { - compatible = "operating-points-v2"; - nvmem-cells = <0xc6 0xc7>; - nvmem-cell-names = "leakage\0opp-info"; - rockchip,leakage-voltage-sel = <0x01 0x0f 0x00 0x10 0x19 0x01 0x1a 0xfe 0x02>; - rockchip,grf = <0xc8>; - volt-mem-read-margin = <0xd0bd8 0x01 0xbac48 0x02 0xa4cb8 0x03 0x78d98 0x04>; - phandle = <0xc4>; + pwm8m0-pins { + rockchip,pins = <0x03 0x07 0x0b 0x198>; + phandle = <0x16d>; + }; + }; - opp-800000000 { - opp-hz = <0x00 0x2faf0800>; - opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; - opp-microvolt-L0 = <0xc3500 0xc3500 0xcf850 0xc3500 0xc3500 0xcf850>; - opp-microvolt-L1 = <0xbd358 0xbd358 0xcf850 0xbd358 0xbd358 0xcf850>; - opp-microvolt-L2 = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; + pmic { + + pmic-pins { + rockchip,pins = <0x00 0x07 0x00 0x19e 0x00 0x02 0x01 0x198 0x00 0x03 0x01 0x198 0x00 0x11 0x01 0x198 0x00 0x12 0x01 0x198 0x00 0x13 0x01 0x198 0x00 0x1e 0x01 0x198>; + phandle = <0x156>; + }; }; - }; - rkvdec-ccu@fdc30000 { - compatible = "rockchip,rkv-decoder-v2-ccu"; - reg = <0x00 0xfdc30000 0x00 0x100>; - reg-names = "ccu"; - clocks = <0x02 0x18e>; - clock-names = "aclk_ccu"; - assigned-clocks = <0x02 0x18e>; - assigned-clock-rates = <0x23c34600>; - resets = <0x02 0x282>; - reset-names = "video_ccu"; - rockchip,skip-pmu-idle-request; - rockchip,ccu-mode = <0x01>; - power-domains = <0x60 0x0e>; - status = "okay"; - phandle = <0xca>; - }; + pcfg-pull-none-drv-level-6 { + drive-strength = <0x06>; + bias-disable; + phandle = <0x2f2>; + }; - rkvdec-core@fdc38000 { - compatible = "rockchip,rkv-decoder-v2"; - reg = <0x00 0xfdc38100 0x00 0x400 0x00 0xfdc38000 0x00 0x100>; - reg-names = "regs\0link"; - interrupts = <0x00 0x5f 0x04>; - interrupt-names = "irq_rkvdec0"; - clocks = <0x02 0x190 0x02 0x18f 0x02 0x193 0x02 0x191 0x02 0x192>; - clock-names = "aclk_vcodec\0hclk_vcodec\0clk_core\0clk_cabac\0clk_hevc_cabac"; - rockchip,normal-rates = <0x2faf0800 0x00 0x23c34600 0x23c34600 0x3b9aca00>; - assigned-clocks = <0x02 0x190 0x02 0x193 0x02 0x191 0x02 0x192>; - assigned-clock-rates = <0x2faf0800 0x23c34600 0x23c34600 0x3b9aca00>; - resets = <0x02 0x284 0x02 0x283 0x02 0x289 0x02 0x287 0x02 0x288>; - reset-names = "video_a\0video_h\0video_core\0video_cabac\0video_hevc_cabac"; - rockchip,skip-pmu-idle-request; - iommus = <0xc9>; - rockchip,srv = <0xb8>; - rockchip,ccu = <0xca>; - rockchip,core-mask = <0x10001>; - rockchip,task-capacity = <0x10>; - rockchip,taskqueue-node = <0x09>; - rockchip,sram = <0xcb>; - rockchip,rcb-iova = <0xfff00000 0x100000>; - rockchip,rcb-info = <0x88 0x6000 0x89 0xc000 0x8d 0x16000 0x8c 0xc000 0x8b 0x2c000 0x85 0xc000 0x86 0x2000 0x87 0x1100 0x8a 0x3300 0x8e 0x47300>; - rockchip,rcb-min-width = <0x200>; - power-domains = <0x60 0x0e>; - status = "okay"; - phandle = <0x274>; - }; + jtag { - iommu@fdc38700 { - compatible = "rockchip,iommu-v2"; - reg = <0x00 0xfdc38700 0x00 0x40 0x00 0xfdc38740 0x00 0x40>; - interrupts = <0x00 0x60 0x04>; - interrupt-names = "irq_rkvdec0_mmu"; - clocks = <0x02 0x190 0x02 0x18f>; - clock-names = "aclk\0iface"; - rockchip,disable-mmu-reset; - rockchip,enable-cmd-retry; - rockchip,shootdown-entire; - rockchip,master-handle-irq; - #iommu-cells = <0x00>; - power-domains = <0x60 0x0e>; - status = "okay"; - phandle = <0xc9>; - }; + jtagm2-pins { + rockchip,pins = <0x00 0x0d 0x02 0x198 0x00 0x0e 0x02 0x198>; + phandle = <0x391>; + }; - rkvdec-core@fdc48000 { - compatible = "rockchip,rkv-decoder-v2"; - reg = <0x00 0xfdc48100 0x00 0x400 0x00 0xfdc48000 0x00 0x100>; - reg-names = "regs\0link"; - interrupts = <0x00 0x61 0x04>; - interrupt-names = "irq_rkvdec1"; - clocks = <0x02 0x195 0x02 0x194 0x02 0x198 0x02 0x196 0x02 0x197>; - clock-names = "aclk_vcodec\0hclk_vcodec\0clk_core\0clk_cabac\0clk_hevc_cabac"; - rockchip,normal-rates = <0x2faf0800 0x00 0x23c34600 0x23c34600 0x3b9aca00>; - assigned-clocks = <0x02 0x195 0x02 0x198 0x02 0x196 0x02 0x197>; - assigned-clock-rates = <0x2faf0800 0x23c34600 0x23c34600 0x3b9aca00>; - resets = <0x02 0x293 0x02 0x292 0x02 0x298 0x02 0x296 0x02 0x297>; - reset-names = "video_a\0video_h\0video_core\0video_cabac\0video_hevc_cabac"; - rockchip,skip-pmu-idle-request; - iommus = <0xcc>; - rockchip,srv = <0xb8>; - rockchip,ccu = <0xca>; - rockchip,core-mask = <0x20002>; - rockchip,task-capacity = <0x10>; - rockchip,taskqueue-node = <0x09>; - rockchip,sram = <0xcd>; - rockchip,rcb-iova = <0xffe00000 0x100000>; - rockchip,rcb-info = <0x88 0x6000 0x89 0xc000 0x8d 0x16000 0x8c 0xc000 0x8b 0x2c000 0x85 0xc000 0x86 0x2000 0x87 0x1100 0x8a 0x3300 0x8e 0x47300>; - rockchip,rcb-min-width = <0x200>; - power-domains = <0x60 0x0f>; - status = "okay"; - phandle = <0x275>; - }; + jtagm1-pins { + rockchip,pins = <0x04 0x18 0x05 0x198 0x04 0x19 0x05 0x198>; + phandle = <0x390>; + }; - iommu@fdc48700 { - compatible = "rockchip,iommu-v2"; - reg = <0x00 0xfdc48700 0x00 0x40 0x00 0xfdc48740 0x00 0x40>; - interrupts = <0x00 0x62 0x04>; - interrupt-names = "irq_rkvdec1_mmu"; - clocks = <0x02 0x195 0x02 0x194>; - clock-names = "aclk\0iface"; - rockchip,disable-mmu-reset; - rockchip,enable-cmd-retry; - rockchip,shootdown-entire; - rockchip,master-handle-irq; - #iommu-cells = <0x00>; - power-domains = <0x60 0x0f>; - status = "okay"; - phandle = <0xcc>; - }; + jtagm0-pins { + rockchip,pins = <0x04 0x1a 0x05 0x198 0x04 0x1b 0x05 0x198>; + phandle = <0x38f>; + }; + }; - av1d@fdc70000 { - compatible = "rockchip,av1-decoder"; - reg = <0x00 0xfdc70000 0x00 0x800 0x00 0xfdc80000 0x00 0x400 0x00 0xfdc90000 0x00 0x400>; - reg-names = "vcd\0cache\0afbc"; - interrupts = <0x00 0x6c 0x04 0x00 0x6b 0x04 0x00 0x6a 0x04>; - interrupt-names = "irq_av1d\0irq_cache\0irq_afbc"; - clocks = <0x02 0x49 0x02 0x4b>; - clock-names = "aclk_vcodec\0hclk_vcodec"; - rockchip,normal-rates = <0x17d78400 0x17d78400>; - assigned-clocks = <0x02 0x49 0x02 0x4b>; - assigned-clock-rates = <0x17d78400 0x17d78400>; - resets = <0x02 0x442 0x02 0x445>; - reset-names = "video_a\0video_h"; - iommus = <0xce>; - rockchip,srv = <0xb8>; - rockchip,taskqueue-node = <0x0b>; - power-domains = <0x60 0x17>; - status = "okay"; - phandle = <0x276>; - }; + gpio@fd8a0000 { + gpio-controller; + interrupts = <0x00 0x115 0x04>; + clocks = <0x02 0x284 0x02 0x285>; + compatible = "rockchip,gpio-bank"; + #interrupt-cells = <0x02>; + reg = <0x00 0xfd8a0000 0x00 0x100>; + phandle = <0x7b>; + #gpio-cells = <0x02>; + gpio-ranges = <0x197 0x00 0x00 0x20>; + interrupt-controller; + }; - iommu@fdca0000 { - compatible = "rockchip,iommu-av1"; - reg = <0x00 0xfdca0000 0x00 0x600>; - interrupts = <0x00 0x6d 0x04>; - interrupt-names = "irq_av1d_mmu"; - clocks = <0x02 0x49 0x02 0x4b>; - clock-names = "aclk\0iface"; - #iommu-cells = <0x00>; - power-domains = <0x60 0x17>; - status = "okay"; - phandle = <0xce>; - }; + gmac1 { - rkisp-unite@fdcb0000 { - compatible = "rockchip,rk3588-rkisp-unite"; - reg = <0x00 0xfdcb0000 0x00 0x10000 0x00 0xfdcc0000 0x00 0x10000>; - interrupts = <0x00 0x87 0x04 0x00 0x89 0x04 0x00 0x8a 0x04>; - interrupt-names = "isp_irq\0mi_irq\0mipi_irq"; - clocks = <0x02 0x1de 0x02 0x1df 0x02 0x1db 0x02 0x1dc 0x02 0x1dd 0x02 0x120 0x02 0x121 0x02 0x11d 0x02 0x11e 0x02 0x11f>; - clock-names = "aclk_isp0\0hclk_isp0\0clk_isp_core0\0clk_isp_core_marvin0\0clk_isp_core_vicap0\0aclk_isp1\0hclk_isp1\0clk_isp_core1\0clk_isp_core_marvin1\0clk_isp_core_vicap1"; - power-domains = <0x60 0x1c>; - iommus = <0xcf>; - status = "disabled"; - phandle = <0x277>; - }; + gmac1-rgmii-clk { + rockchip,pins = <0x03 0x05 0x01 0x198 0x03 0x04 0x01 0x198>; + phandle = <0x111>; + }; - rkisp@fdcb0000 { - compatible = "rockchip,rk3588-rkisp"; - reg = <0x00 0xfdcb0000 0x00 0x7f00>; - interrupts = <0x00 0x83 0x04 0x00 0x85 0x04 0x00 0x86 0x04>; - interrupt-names = "isp_irq\0mi_irq\0mipi_irq"; - clocks = <0x02 0x1de 0x02 0x1df 0x02 0x1db 0x02 0x1dc 0x02 0x1dd>; - clock-names = "aclk_isp\0hclk_isp\0clk_isp_core\0clk_isp_core_marvin\0clk_isp_core_vicap"; - power-domains = <0x60 0x1b>; - iommus = <0xd0>; - status = "okay"; - phandle = <0x58>; - }; + gmac1-rx-bus2 { + rockchip,pins = <0x03 0x07 0x01 0x198 0x03 0x08 0x01 0x198 0x03 0x09 0x01 0x198>; + phandle = <0x110>; + }; - rkisp-unite-mmu@fdcb7f00 { - compatible = "rockchip,iommu-v2"; - reg = <0x00 0xfdcb7f00 0x00 0x100 0x00 0xfdcc7f00 0x00 0x100>; - interrupts = <0x00 0x84 0x04 0x00 0x88 0x04>; - interrupt-names = "isp0_mmu\0isp1_mmu"; - clocks = <0x02 0x1de 0x02 0x1df 0x02 0x120 0x02 0x121>; - clock-names = "aclk0\0iface0\0aclk1\0iface1"; - power-domains = <0x60 0x1c>; - #iommu-cells = <0x00>; - rockchip,disable-mmu-reset; - status = "disabled"; - phandle = <0xcf>; - }; + gmac1-txer { + rockchip,pins = <0x03 0x0a 0x01 0x198>; + phandle = <0x332>; + }; - iommu@fdcb7f00 { - compatible = "rockchip,iommu-v2"; - reg = <0x00 0xfdcb7f00 0x00 0x100>; - interrupts = <0x00 0x84 0x04>; - interrupt-names = "isp0_mmu"; - clocks = <0x02 0x1de 0x02 0x1df>; - clock-names = "aclk\0iface"; - power-domains = <0x60 0x1b>; - #iommu-cells = <0x00>; - rockchip,disable-mmu-reset; - status = "okay"; - phandle = <0xd0>; - }; + gmac1-clkinout { + rockchip,pins = <0x03 0x0e 0x01 0x198>; + phandle = <0x32e>; + }; - rkisp@fdcc0000 { - compatible = "rockchip,rk3588-rkisp"; - reg = <0x00 0xfdcc0000 0x00 0x7f00>; - interrupts = <0x00 0x87 0x04 0x00 0x89 0x04 0x00 0x8a 0x04>; - interrupt-names = "isp_irq\0mi_irq\0mipi_irq"; - clocks = <0x02 0x120 0x02 0x121 0x02 0x11d 0x02 0x11e 0x02 0x11f>; - clock-names = "aclk_isp\0hclk_isp\0clk_isp_core\0clk_isp_core_marvin\0clk_isp_core_vicap"; - power-domains = <0x60 0x1c>; - iommus = <0xd1>; - status = "disabled"; - phandle = <0x5a>; - }; + gmac1-ptp-ref-clk { + rockchip,pins = <0x03 0x0f 0x01 0x198>; + phandle = <0x331>; + }; - iommu@fdcc7f00 { - compatible = "rockchip,iommu-v2"; - reg = <0x00 0xfdcc7f00 0x00 0x100>; - interrupts = <0x00 0x88 0x04>; - interrupt-names = "isp1_mmu"; - clocks = <0x02 0x120 0x02 0x121>; - clock-names = "aclk\0iface"; - power-domains = <0x60 0x1c>; - #iommu-cells = <0x00>; - rockchip,disable-mmu-reset; - status = "disabled"; - phandle = <0xd1>; - }; + gmac1-ppsclk { + rockchip,pins = <0x03 0x11 0x01 0x198>; + phandle = <0x32f>; + }; - rkispp@fdcd0000 { - compatible = "rockchip,rk3588-rkispp"; - reg = <0x00 0xfdcd0000 0x00 0xf00>; - interrupts = <0x00 0x8b 0x04>; - interrupt-names = "fec_irq"; - clocks = <0x02 0x1d5 0x02 0x1d6 0x02 0x1d7>; - clock-names = "aclk_ispp\0hclk_ispp\0clk_ispp"; - assigned-clocks = <0x02 0x1d6>; - assigned-clock-rates = <0x5f5e100>; - power-domains = <0x60 0x1d>; - iommus = <0xd2>; - status = "disabled"; - phandle = <0x5b>; - }; + gmac1-ppstrig { + rockchip,pins = <0x03 0x10 0x01 0x198>; + phandle = <0x330>; + }; - iommu@fdcd0f00 { - compatible = "rockchip,iommu-v2"; - reg = <0x00 0xfdcd0f00 0x00 0x100>; - interrupts = <0x00 0x8c 0x04>; - interrupt-names = "fec0_mmu"; - clocks = <0x02 0x1d5 0x02 0x1d6 0x02 0x1d7>; - clock-names = "aclk\0iface\0pclk"; - power-domains = <0x60 0x1d>; - #iommu-cells = <0x00>; - rockchip,disable-mmu-reset; - status = "disabled"; - phandle = <0xd2>; - }; + gmac1-rgmii-bus { + rockchip,pins = <0x03 0x02 0x01 0x198 0x03 0x03 0x01 0x198 0x03 0x00 0x01 0x19a 0x03 0x01 0x01 0x19a>; + phandle = <0x112>; + }; - rkispp@fdcd8000 { - compatible = "rockchip,rk3588-rkispp"; - reg = <0x00 0xfdcd8000 0x00 0xf00>; - interrupts = <0x00 0x8d 0x04>; - interrupt-names = "fec_irq"; - clocks = <0x02 0x1d8 0x02 0x1d9 0x02 0x1da>; - clock-names = "aclk_ispp\0hclk_ispp\0clk_ispp"; - assigned-clocks = <0x02 0x1d9>; - assigned-clock-rates = <0x5f5e100>; - power-domains = <0x60 0x1d>; - iommus = <0xd3>; - status = "disabled"; - phandle = <0x5c>; - }; + gmac1-tx-bus2 { + rockchip,pins = <0x03 0x0b 0x01 0x19a 0x03 0x0c 0x01 0x19a 0x03 0x0d 0x01 0x198>; + phandle = <0x10f>; + }; - iommu@fdcd8f00 { - compatible = "rockchip,iommu-v2"; - reg = <0x00 0xfdcd8f00 0x00 0x100>; - interrupts = <0x00 0x8e 0x04>; - interrupt-names = "fec1_mmu"; - clocks = <0x02 0x1d8 0x02 0x1d9 0x02 0x1da>; - clock-names = "aclk\0iface\0pclk"; - power-domains = <0x60 0x1d>; - #iommu-cells = <0x00>; - rockchip,disable-mmu-reset; - status = "disabled"; - phandle = <0xd3>; - }; + gmac1-miim { + rockchip,pins = <0x03 0x12 0x01 0x198 0x03 0x13 0x01 0x198>; + phandle = <0x10e>; + }; + }; - rkcif@fdce0000 { - compatible = "rockchip,rk3588-cif"; - reg = <0x00 0xfdce0000 0x00 0x800>; - reg-names = "cif_regs"; - interrupts = <0x00 0x9b 0x04>; - interrupt-names = "cif-intr"; - clocks = <0x02 0x1e4 0x02 0x1e5 0x02 0x1e3 0x02 0x1cd 0x02 0x1ce>; - clock-names = "aclk_cif\0hclk_cif\0dclk_cif\0iclk_host0\0iclk_host1"; - resets = <0x02 0x317 0x02 0x318 0x02 0x316 0x02 0x334 0x02 0x335 0x02 0x336 0x02 0x337 0x02 0x338 0x02 0x339>; - reset-names = "rst_cif_a\0rst_cif_h\0rst_cif_d\0rst_cif_host0\0rst_cif_host1\0rst_cif_host2\0rst_cif_host3\0rst_cif_host4\0rst_cif_host5"; - assigned-clocks = <0x02 0x1e3>; - assigned-clock-rates = <0x23c34600>; - power-domains = <0x60 0x1b>; - rockchip,grf = <0xc8>; - iommus = <0x50>; - nvmem-cells = <0x21 0xd4 0xd5>; - nvmem-cell-names = "specification\0package_low\0package_high"; - status = "okay"; - phandle = <0x4f>; - }; + pcfg-pull-none { + bias-disable; + phandle = <0x198>; + }; - iommu@fdce0800 { - compatible = "rockchip,iommu-v2"; - reg = <0x00 0xfdce0800 0x00 0x100 0x00 0xfdce0900 0x00 0x100>; - interrupts = <0x00 0x71 0x04>; - interrupt-names = "cif_mmu"; - clocks = <0x02 0x1e4 0x02 0x1e5>; - clock-names = "aclk\0iface"; - power-domains = <0x60 0x1b>; - rockchip,disable-mmu-reset; - #iommu-cells = <0x00>; - status = "okay"; - phandle = <0x50>; - }; + pwm13 { - mipi0-csi2-hw@fdd10000 { - compatible = "rockchip,rk3588-mipi-csi2-hw"; - reg = <0x00 0xfdd10000 0x00 0x10000>; - reg-names = "csihost_regs"; - interrupts = <0x00 0x8f 0x04 0x00 0x90 0x04>; - interrupt-names = "csi-intr1\0csi-intr2"; - clocks = <0x02 0x1cf>; - clock-names = "pclk_csi2host"; - resets = <0x02 0x324>; - reset-names = "srst_csihost_p"; - status = "okay"; - phandle = <0x47>; - }; + pwm13m2-pins { + rockchip,pins = <0x01 0x0f 0x0b 0x198>; + phandle = <0x3df>; + }; - mipi1-csi2-hw@fdd20000 { - compatible = "rockchip,rk3588-mipi-csi2-hw"; - reg = <0x00 0xfdd20000 0x00 0x10000>; - reg-names = "csihost_regs"; - interrupts = <0x00 0x91 0x04 0x00 0x92 0x04>; - interrupt-names = "csi-intr1\0csi-intr2"; - clocks = <0x02 0x1d0>; - clock-names = "pclk_csi2host"; - resets = <0x02 0x325>; - reset-names = "srst_csihost_p"; - status = "okay"; - phandle = <0x48>; - }; + pwm13m1-pins { + rockchip,pins = <0x04 0x0e 0x0b 0x198>; + phandle = <0x3de>; + }; - mipi2-csi2-hw@fdd30000 { - compatible = "rockchip,rk3588-mipi-csi2-hw"; - reg = <0x00 0xfdd30000 0x00 0x10000>; - reg-names = "csihost_regs"; - interrupts = <0x00 0x93 0x04 0x00 0x94 0x04>; - interrupt-names = "csi-intr1\0csi-intr2"; - clocks = <0x02 0x1d1>; - clock-names = "pclk_csi2host"; - resets = <0x02 0x326>; - reset-names = "srst_csihost_p"; - status = "okay"; - phandle = <0x49>; - }; + pwm13m0-pins { + rockchip,pins = <0x03 0x0e 0x0b 0x198>; + phandle = <0x172>; + }; + }; - mipi3-csi2-hw@fdd40000 { - compatible = "rockchip,rk3588-mipi-csi2-hw"; - reg = <0x00 0xfdd40000 0x00 0x10000>; - reg-names = "csihost_regs"; - interrupts = <0x00 0x95 0x04 0x00 0x96 0x04>; - interrupt-names = "csi-intr1\0csi-intr2"; - clocks = <0x02 0x1d2>; - clock-names = "pclk_csi2host"; - resets = <0x02 0x327>; - reset-names = "srst_csihost_p"; - status = "okay"; - phandle = <0x4a>; - }; + pcfg-output-high-pull-down { + output-high; + bias-pull-down; + phandle = <0x307>; + }; - mipi4-csi2-hw@fdd50000 { - compatible = "rockchip,rk3588-mipi-csi2-hw"; - reg = <0x00 0xfdd50000 0x00 0x10000>; - reg-names = "csihost_regs"; - interrupts = <0x00 0x97 0x04 0x00 0x98 0x04>; - interrupt-names = "csi-intr1\0csi-intr2"; - clocks = <0x02 0x1d3>; - clock-names = "pclk_csi2host"; - resets = <0x02 0x328>; - reset-names = "srst_csihost_p"; - status = "okay"; - phandle = <0x4b>; - }; + uart7 { - mipi5-csi2-hw@fdd60000 { - compatible = "rockchip,rk3588-mipi-csi2-hw"; - reg = <0x00 0xfdd60000 0x00 0x10000>; - reg-names = "csihost_regs"; - interrupts = <0x00 0x99 0x04 0x00 0x9a 0x04>; - interrupt-names = "csi-intr1\0csi-intr2"; - clocks = <0x02 0x1d4>; - clock-names = "pclk_csi2host"; - resets = <0x02 0x329>; - reset-names = "srst_csihost_p"; - status = "okay"; - phandle = <0x4c>; - }; + uart7m1-ctsn { + rockchip,pins = <0x03 0x13 0x0a 0x198>; + phandle = <0x43b>; + }; - vop@fdd90000 { - compatible = "rockchip,rk3588-vop"; - reg = <0x00 0xfdd90000 0x00 0x4200 0x00 0xfdd95000 0x00 0x1000>; - reg-names = "regs\0gamma_lut"; - interrupts = <0x00 0x9c 0x04>; - clocks = <0x02 0x270 0x02 0x26f 0x02 0x274 0x02 0x275 0x02 0x276 0x02 0x277 0x02 0x26e 0x02 0x271 0x02 0x272 0x02 0x273>; - clock-names = "aclk_vop\0hclk_vop\0dclk_vp0\0dclk_vp1\0dclk_vp2\0dclk_vp3\0pclk_vop\0dclk_src_vp0\0dclk_src_vp1\0dclk_src_vp2"; - assigned-clocks = <0x02 0x270>; - assigned-clock-rates = <0x2cb41780>; - resets = <0x02 0x349 0x02 0x348 0x02 0x34d 0x02 0x350 0x02 0x351 0x02 0x352>; - reset-names = "axi\0ahb\0dclk_vp0\0dclk_vp1\0dclk_vp2\0dclk_vp3"; - iommus = <0xd6>; - power-domains = <0x60 0x18>; - rockchip,grf = <0xc8>; - rockchip,vop-grf = <0xd7>; - rockchip,vo1-grf = <0xd8>; - rockchip,pmu = <0xd9>; - status = "okay"; - phandle = <0x278>; + uart7m2-xfer { + rockchip,pins = <0x01 0x0c 0x0a 0x19e 0x01 0x0d 0x0a 0x19e>; + phandle = <0x43d>; + }; - ports { - #address-cells = <0x01>; - #size-cells = <0x00>; - phandle = <0x34>; + uart7m0-ctsn { + rockchip,pins = <0x04 0x16 0x0a 0x198>; + phandle = <0x43f>; + }; - port@0 { - #address-cells = <0x01>; - #size-cells = <0x00>; - reg = <0x00>; - rockchip,plane-mask = <0x05>; - rockchip,primary-plane = <0x02>; - assigned-clocks = <0x02 0x270>; - assigned-clock-rates = <0x2faf0800>; - phandle = <0x279>; + uart7m1-xfer { + rockchip,pins = <0x03 0x11 0x0a 0x19e 0x03 0x10 0x0a 0x19e>; + phandle = <0x166>; + }; - endpoint@0 { - reg = <0x00>; - remote-endpoint = <0xda>; - phandle = <0xf7>; - }; + uart7m0-xfer { + rockchip,pins = <0x02 0x0c 0x0a 0x19e 0x02 0x0d 0x0a 0x19e>; + phandle = <0x43e>; + }; - endpoint@1 { - reg = <0x01>; - remote-endpoint = <0xdb>; - phandle = <0x102>; - }; + uart7m1-rtsn { + rockchip,pins = <0x03 0x12 0x0a 0x198>; + phandle = <0x43c>; + }; - endpoint@2 { - reg = <0x02>; - remote-endpoint = <0xdc>; - phandle = <0x3c>; - }; + uart7m0-rtsn { + rockchip,pins = <0x04 0x12 0x0a 0x198>; + phandle = <0x440>; + }; + }; - endpoint@3 { - reg = <0x03>; - remote-endpoint = <0xdd>; - phandle = <0x1a6>; - }; + pcfg-pull-down-drv-level-9 { + drive-strength = <0x09>; + bias-pull-down; + phandle = <0x465>; + }; - endpoint@4 { - reg = <0x04>; - remote-endpoint = <0xde>; - phandle = <0x1b0>; - }; + spi1 { - endpoint@5 { - reg = <0x05>; - remote-endpoint = <0xdf>; - phandle = <0x1ad>; - }; + spi1m1-cs1 { + rockchip,pins = <0x03 0x13 0x08 0x19a>; + phandle = <0x152>; }; - port@1 { - #address-cells = <0x01>; - #size-cells = <0x00>; - reg = <0x01>; - rockchip,plane-mask = <0x0a>; - rockchip,primary-plane = <0x03>; - phandle = <0x27a>; + spi1m2-cs1 { + rockchip,pins = <0x01 0x1d 0x08 0x19a>; + phandle = <0x3fe>; + }; - endpoint@0 { - reg = <0x00>; - remote-endpoint = <0xe0>; - phandle = <0x38>; - }; + spi1m0-cs0 { + rockchip,pins = <0x02 0x13 0x08 0x19f>; + phandle = <0x400>; + }; - endpoint@1 { - reg = <0x01>; - remote-endpoint = <0xe1>; - phandle = <0x103>; - }; + spi1m2-pins { + rockchip,pins = <0x01 0x1a 0x08 0x19a 0x01 0x18 0x08 0x19a 0x01 0x19 0x08 0x19a>; + phandle = <0x3fc>; + }; - endpoint@2 { - reg = <0x02>; - remote-endpoint = <0xe2>; - phandle = <0xff>; - }; + spi1m1-pins { + rockchip,pins = <0x03 0x11 0x08 0x19a 0x03 0x10 0x08 0x19a 0x03 0x0f 0x08 0x19a>; + phandle = <0x153>; + }; - endpoint@3 { - reg = <0x03>; - remote-endpoint = <0xe3>; - phandle = <0x3e>; - }; + spi1m1-cs0 { + rockchip,pins = <0x03 0x12 0x08 0x19a>; + phandle = <0x151>; + }; - endpoint@4 { - reg = <0x04>; - remote-endpoint = <0xe4>; - phandle = <0x1b1>; - }; + spi1m0-pins { + rockchip,pins = <0x02 0x10 0x08 0x19f 0x02 0x11 0x08 0x19f 0x02 0x12 0x08 0x19f>; + phandle = <0x3ff>; + }; - endpoint@5 { - reg = <0x05>; - remote-endpoint = <0xe5>; - phandle = <0x3f>; - }; + spi1m0-cs1 { + rockchip,pins = <0x02 0x14 0x08 0x19f>; + phandle = <0x401>; }; - port@2 { - #address-cells = <0x01>; - #size-cells = <0x00>; - reg = <0x02>; - assigned-clocks = <0x02 0x273>; - assigned-clock-parents = <0x02 0x04>; - rockchip,plane-mask = <0x140>; - rockchip,primary-plane = <0x08>; - phandle = <0x27b>; + spi1m2-cs0 { + rockchip,pins = <0x01 0x1b 0x08 0x19a>; + phandle = <0x3fd>; + }; + }; - endpoint@0 { - reg = <0x00>; - remote-endpoint = <0xe6>; - phandle = <0xf8>; - }; + pcfg-pull-up-drv-level-14 { + drive-strength = <0x0e>; + phandle = <0x461>; + bias-pull-up; + }; - endpoint@1 { - reg = <0x01>; - remote-endpoint = <0xe7>; - phandle = <0x3b>; - }; + pcfg-output-low-pull-down { + bias-pull-down; + phandle = <0x30b>; + output-low; + }; - endpoint@2 { - reg = <0x02>; - remote-endpoint = <0xe8>; - phandle = <0x100>; - }; + pcfg-pull-down-drv-level-12 { + drive-strength = <0x0c>; + bias-pull-down; + phandle = <0x468>; + }; - endpoint@3 { - reg = <0x03>; - remote-endpoint = <0xe9>; - phandle = <0xf3>; - }; + pcfg-pull-up-drv-level-1 { + drive-strength = <0x01>; + phandle = <0x19f>; + bias-pull-up; + }; - endpoint@4 { - reg = <0x04>; - remote-endpoint = <0xea>; - phandle = <0xf4>; - }; + pcfg-pull-none-smt { + bias-disable; + input-schmitt-enable; + phandle = <0x19d>; + }; - endpoint@5 { - reg = <0x05>; - remote-endpoint = <0xeb>; - phandle = <0x1a7>; - }; + sdmmc { - endpoint@6 { - reg = <0x06>; - remote-endpoint = <0xec>; - phandle = <0x1b2>; - }; + sdmmc-det { + rockchip,pins = <0x00 0x04 0x01 0x19e>; + phandle = <0x116>; + }; - endpoint@7 { - reg = <0x07>; - remote-endpoint = <0xed>; - phandle = <0x1ae>; - }; + sdmmc-pwren { + rockchip,pins = <0x00 0x05 0x02 0x198>; + phandle = <0x3ef>; }; - port@3 { - #address-cells = <0x01>; - #size-cells = <0x00>; - reg = <0x03>; - rockchip,plane-mask = <0x280>; - rockchip,primary-plane = <0x09>; - phandle = <0x27c>; + sdmmc-bus4 { + rockchip,pins = <0x04 0x18 0x01 0x199 0x04 0x19 0x01 0x199 0x04 0x1a 0x01 0x199 0x04 0x1b 0x01 0x199>; + phandle = <0x117>; + }; - endpoint@0 { - reg = <0x00>; - remote-endpoint = <0xee>; - phandle = <0x39>; - }; + sdmmc-cmd { + rockchip,pins = <0x04 0x1c 0x01 0x199>; + phandle = <0x115>; + }; - endpoint@1 { - reg = <0x01>; - remote-endpoint = <0xef>; - phandle = <0x3a>; - }; - - endpoint@2 { - reg = <0x02>; - remote-endpoint = <0xf0>; - phandle = <0x3d>; - }; + sdmmc-clk { + rockchip,pins = <0x04 0x1d 0x01 0x199>; + phandle = <0x114>; }; }; - }; - iommu@fdd97e00 { - compatible = "rockchip,iommu-v2"; - reg = <0x00 0xfdd97e00 0x00 0x100 0x00 0xfdd97f00 0x00 0x100>; - interrupts = <0x00 0x9c 0x04>; - interrupt-names = "vop_mmu"; - clocks = <0x02 0x270 0x02 0x26f>; - clock-names = "aclk\0iface"; - #iommu-cells = <0x00>; - rockchip,disable-device-link-resume; - rockchip,shootdown-entire; - status = "okay"; - phandle = <0xd6>; - }; + i2s0 { - spdif-tx@fddb0000 { - compatible = "rockchip,rk3588-spdif\0rockchip,rk3568-spdif"; - reg = <0x00 0xfddb0000 0x00 0x1000>; - interrupts = <0x00 0xc3 0x04>; - dmas = <0xf1 0x06>; - dma-names = "tx"; - clock-names = "mclk\0hclk"; - clocks = <0x02 0x209 0x02 0x204>; - assigned-clocks = <0x02 0x205>; - assigned-clock-parents = <0x02 0x05>; - power-domains = <0x60 0x19>; - #sound-dai-cells = <0x00>; - status = "disabled"; - phandle = <0x1d5>; - }; + i2s0-sclk { + rockchip,pins = <0x01 0x13 0x01 0x19d>; + phandle = <0x11c>; + }; - i2s@fddc0000 { - compatible = "rockchip,rk3588-i2s-tdm"; - reg = <0x00 0xfddc0000 0x00 0x1000>; - interrupts = <0x00 0xb8 0x04>; - clocks = <0x02 0x1fb 0x02 0x1fb 0x02 0x1f0>; - clock-names = "mclk_tx\0mclk_rx\0hclk"; - assigned-clocks = <0x02 0x1f9>; - assigned-clock-parents = <0x02 0x05>; - dmas = <0xf2 0x00>; - dma-names = "tx"; - power-domains = <0x60 0x19>; - resets = <0x02 0x38d>; - reset-names = "tx-m"; - rockchip,playback-only; - #sound-dai-cells = <0x00>; - status = "disabled"; - phandle = <0x27d>; - }; + i2s0-sdo3 { + rockchip,pins = <0x01 0x1a 0x01 0x198>; + phandle = <0x37a>; + }; - spdif-tx@fdde0000 { - compatible = "rockchip,rk3588-spdif\0rockchip,rk3568-spdif"; - reg = <0x00 0xfdde0000 0x00 0x1000>; - interrupts = <0x00 0xc4 0x04>; - dmas = <0xf1 0x07>; - dma-names = "tx"; - clock-names = "mclk\0hclk"; - clocks = <0x02 0x257 0x02 0x253>; - assigned-clocks = <0x02 0x254>; - assigned-clock-parents = <0x02 0x05>; - power-domains = <0x60 0x1a>; - #sound-dai-cells = <0x00>; - status = "disabled"; - phandle = <0x27e>; - }; + i2s0-lrck { + rockchip,pins = <0x01 0x15 0x01 0x19d>; + phandle = <0x11b>; + }; - i2s@fddf0000 { - compatible = "rockchip,rk3588-i2s-tdm"; - reg = <0x00 0xfddf0000 0x00 0x1000>; - interrupts = <0x00 0xb9 0x04>; - clocks = <0x02 0x246 0x02 0x246 0x02 0x248>; - clock-names = "mclk_tx\0mclk_rx\0hclk"; - assigned-clocks = <0x02 0x243>; - assigned-clock-parents = <0x02 0x07>; - dmas = <0xf2 0x02>; - dma-names = "tx"; - power-domains = <0x60 0x1a>; - resets = <0x02 0x3e8>; - reset-names = "tx-m"; - rockchip,always-on; - rockchip,hdmi-path; - rockchip,playback-only; - #sound-dai-cells = <0x00>; - status = "okay"; - phandle = <0x1d3>; - }; + i2s0-sdo1 { + rockchip,pins = <0x01 0x18 0x01 0x198>; + phandle = <0x378>; + }; - i2s@fddfc000 { - compatible = "rockchip,rk3588-i2s-tdm"; - reg = <0x00 0xfddfc000 0x00 0x1000>; - interrupts = <0x00 0xbd 0x04>; - clocks = <0x02 0x242 0x02 0x242 0x02 0x23e>; - clock-names = "mclk_tx\0mclk_rx\0hclk"; - assigned-clocks = <0x02 0x23f>; - assigned-clock-parents = <0x02 0x05>; - dmas = <0xf2 0x17>; - dma-names = "rx"; - power-domains = <0x60 0x1a>; - resets = <0x02 0x413>; - reset-names = "rx-m"; - rockchip,capture-only; - #sound-dai-cells = <0x00>; - status = "disabled"; - phandle = <0x27f>; - }; + i2s0-sdi3 { + rockchip,pins = <0x01 0x19 0x02 0x198>; + phandle = <0x377>; + }; - spdif-rx@fde08000 { - compatible = "rockchip,rk3588-spdifrx\0rockchip,rk3308-spdifrx"; - reg = <0x00 0xfde08000 0x00 0x1000>; - interrupts = <0x00 0xc7 0x04>; - clocks = <0x02 0x25e 0x02 0x25d>; - clock-names = "mclk\0hclk"; - assigned-clocks = <0x02 0x25e>; - assigned-clock-parents = <0x02 0x05>; - dmas = <0x7c 0x15>; - dma-names = "rx"; - power-domains = <0x60 0x1a>; - resets = <0x02 0x3fd>; - reset-names = "spdifrx-m"; - #sound-dai-cells = <0x00>; - status = "disabled"; - phandle = <0x280>; - }; + i2s0-mclk { + rockchip,pins = <0x01 0x12 0x01 0x19d>; + phandle = <0x17a>; + }; - dsi@fde20000 { - compatible = "rockchip,rk3588-mipi-dsi2"; - reg = <0x00 0xfde20000 0x00 0x10000>; - interrupts = <0x00 0xa7 0x04>; - clocks = <0x02 0x278 0x02 0x27a>; - clock-names = "pclk\0sys_clk"; - resets = <0x02 0x354>; - reset-names = "apb"; - power-domains = <0x60 0x18>; - phys = <0x2f>; - phy-names = "dcphy"; - rockchip,grf = <0xd7>; - #address-cells = <0x01>; - #size-cells = <0x00>; - status = "disabled"; - phandle = <0x281>; + i2s0-sdi1 { + rockchip,pins = <0x01 0x1b 0x02 0x198>; + phandle = <0x375>; + }; - ports { - #address-cells = <0x01>; - #size-cells = <0x00>; + i2s0-sdo2 { + rockchip,pins = <0x01 0x19 0x01 0x198>; + phandle = <0x379>; + }; - port@0 { - reg = <0x00>; - #address-cells = <0x01>; - #size-cells = <0x00>; - phandle = <0x282>; + i2s0-idle { + rockchip,pins = <0x01 0x15 0x00 0x198 0x01 0x13 0x00 0x198>; + phandle = <0x11f>; + }; - endpoint@0 { - reg = <0x00>; - remote-endpoint = <0xf3>; - status = "disabled"; - phandle = <0xe9>; - }; + i2s0-sdo0 { + rockchip,pins = <0x01 0x17 0x01 0x198>; + phandle = <0x11e>; + }; - endpoint@1 { - reg = <0x01>; - remote-endpoint = <0x39>; - status = "disabled"; - phandle = <0xee>; - }; + i2s0-sdi2 { + rockchip,pins = <0x01 0x1a 0x02 0x198>; + phandle = <0x376>; + }; + + i2s0-sdi0 { + rockchip,pins = <0x01 0x1c 0x02 0x198>; + phandle = <0x11d>; }; }; - }; - dsi@fde30000 { - compatible = "rockchip,rk3588-mipi-dsi2"; - reg = <0x00 0xfde30000 0x00 0x10000>; - interrupts = <0x00 0xa8 0x04>; - clocks = <0x02 0x279 0x02 0x27b>; - clock-names = "pclk\0sys_clk"; - resets = <0x02 0x355>; - reset-names = "apb"; - power-domains = <0x60 0x18>; - phys = <0x30>; - phy-names = "dcphy"; - rockchip,grf = <0xd7>; - #address-cells = <0x01>; - #size-cells = <0x00>; - status = "disabled"; - phandle = <0x283>; + ddrphych1 { - ports { - #address-cells = <0x01>; - #size-cells = <0x00>; + ddrphych1-pins { + rockchip,pins = <0x04 0x04 0x07 0x198 0x04 0x05 0x07 0x198 0x04 0x06 0x07 0x198 0x04 0x07 0x07 0x198>; + phandle = <0x319>; + }; + }; - port@0 { - reg = <0x00>; - #address-cells = <0x01>; - #size-cells = <0x00>; - phandle = <0x284>; + pcfg-pull-none-drv-level-11 { + drive-strength = <0x0b>; + bias-disable; + phandle = <0x455>; + }; - endpoint@0 { - reg = <0x00>; - remote-endpoint = <0xf4>; - status = "disabled"; - phandle = <0xea>; - }; + i2c0 { - endpoint@1 { - reg = <0x01>; - remote-endpoint = <0x3a>; - status = "disabled"; - phandle = <0xef>; - }; + i2c0m2-xfer { + rockchip,pins = <0x00 0x19 0x03 0x19d 0x00 0x1a 0x03 0x19d>; + phandle = <0x77>; }; - }; - }; - - hdcp@fde40000 { - compatible = "rockchip,rk3588-hdcp"; - reg = <0x00 0xfde40000 0x00 0x80>; - interrupts = <0x00 0x9f 0x04>; - clocks = <0x02 0x1ed 0x02 0x1ef 0x02 0x1ee 0x02 0x1ec 0x02 0x1f1 0x02 0x1f2>; - clock-names = "aclk\0pclk\0hclk\0hclk_key\0aclk_trng\0pclk_trng"; - resets = <0x02 0x37f 0x02 0x37d 0x02 0x37c 0x02 0x37b 0x02 0x381>; - reset-names = "hdcp\0h_hdcp\0a_hdcp\0hdcp_key\0trng"; - power-domains = <0x60 0x19>; - rockchip,vo-grf = <0xf5>; - status = "disabled"; - phandle = <0x285>; - }; - dp@fde50000 { - compatible = "rockchip,rk3588-dp"; - reg = <0x00 0xfde50000 0x00 0x4000>; - interrupts = <0x00 0xa1 0x04>; - clocks = <0x02 0x1e6 0x02 0x2cc 0x02 0x1fb 0x02 0x207 0x04 0x02 0x1ea>; - clock-names = "apb\0aux\0i2s\0spdif\0hclk\0hdcp"; - assigned-clocks = <0x02 0x2cc>; - assigned-clock-rates = <0xf42400>; - resets = <0x02 0x388>; - phys = <0xf6>; - power-domains = <0x60 0x19>; - #sound-dai-cells = <0x01>; - status = "disabled"; - phandle = <0x1d6>; + i2c0m1-xfer { + rockchip,pins = <0x04 0x15 0x09 0x19d 0x04 0x16 0x09 0x19d>; + phandle = <0x355>; + }; - ports { - #address-cells = <0x01>; - #size-cells = <0x00>; + i2c0m0-xfer { + rockchip,pins = <0x00 0x0b 0x02 0x19d 0x00 0x06 0x02 0x19d>; + phandle = <0x354>; + }; + }; - port@0 { - reg = <0x00>; - #address-cells = <0x01>; - #size-cells = <0x00>; + pwm6 { - endpoint@0 { - reg = <0x00>; - remote-endpoint = <0xf7>; - status = "disabled"; - phandle = <0xda>; - }; + pwm6m2-pins { + rockchip,pins = <0x04 0x15 0x0b 0x198>; + phandle = <0x3d0>; + }; - endpoint@1 { - reg = <0x01>; - remote-endpoint = <0x38>; - status = "disabled"; - phandle = <0xe0>; - }; + pwm6m1-pins { + rockchip,pins = <0x04 0x11 0x0b 0x198>; + phandle = <0x3cf>; + }; - endpoint@2 { - reg = <0x02>; - remote-endpoint = <0xf8>; - status = "disabled"; - phandle = <0xe6>; - }; + pwm6m0-pins { + rockchip,pins = <0x00 0x17 0x0b 0x198>; + phandle = <0x16b>; }; + }; - port@1 { - reg = <0x01>; + hym8563 { - endpoint { - phandle = <0x286>; - }; + hym8563-int { + rockchip,pins = <0x00 0x08 0x00 0x198>; + phandle = <0x7a>; }; }; - }; - hdcp@fde70000 { - compatible = "rockchip,rk3588-hdcp"; - reg = <0x00 0xfde70000 0x00 0x80>; - interrupts = <0x00 0xa0 0x04>; - clocks = <0x02 0x217 0x02 0x219 0x02 0x218 0x02 0x216 0x02 0x228 0x02 0x229>; - clock-names = "aclk\0pclk\0hclk\0hclk_key\0aclk_trng\0pclk_trng"; - resets = <0x02 0x3c8 0x02 0x3c6 0x02 0x3c5 0x02 0x3c4 0x02 0x3ca>; - reset-names = "hdcp\0h_hdcp\0a_hdcp\0hdcp_key\0trng"; - power-domains = <0x60 0x1a>; - rockchip,vo-grf = <0xd8>; - status = "disabled"; - phandle = <0x287>; - }; + pcfg-pull-none-drv-level-4 { + drive-strength = <0x04>; + bias-disable; + phandle = <0x2f0>; + }; - hdmi@fde80000 { - compatible = "rockchip,rk3588-dw-hdmi"; - reg = <0x00 0xfde80000 0x00 0x10000 0x00 0xfde90000 0x00 0x10000>; - interrupts = <0x00 0xa9 0x04 0x00 0xaa 0x04 0x00 0xab 0x04 0x00 0xac 0x04 0x00 0x168 0x04>; - clocks = <0x02 0x221 0x02 0x265 0x02 0x222 0x02 0x223 0x02 0x246 0x02 0x274 0x02 0x275 0x02 0x276 0x02 0x277 0x05 0x35>; - clock-names = "pclk\0hpd\0earc\0hdmitx_ref\0aud\0dclk_vp0\0dclk_vp1\0dclk_vp2\0dclk_vp3\0hclk_vo1\0link_clk"; - resets = <0x02 0x3d0 0x02 0x49c>; - reset-names = "ref\0hdp"; - power-domains = <0x60 0x1a>; - pinctrl-names = "default"; - pinctrl-0 = <0xf9 0xfa 0xfb 0xfc>; - reg-io-width = <0x04>; - rockchip,grf = <0xc8>; - rockchip,vo1_grf = <0xd8>; - phys = <0xfd>; - phy-names = "hdmi"; - #sound-dai-cells = <0x00>; - status = "okay"; - enable-gpios = <0xfe 0x08 0x00>; - phandle = <0x1d4>; + pcfg-output-high-pull-up { + output-high; + phandle = <0x306>; + bias-pull-up; + }; - ports { - #address-cells = <0x01>; - #size-cells = <0x00>; + pwm11 { - port@0 { - reg = <0x00>; - #address-cells = <0x01>; - #size-cells = <0x00>; - phandle = <0x288>; + pwm11m3-pins { + rockchip,pins = <0x03 0x1d 0x0b 0x198>; + phandle = <0x3dc>; + }; - endpoint@0 { - reg = <0x00>; - remote-endpoint = <0x3c>; - status = "okay"; - phandle = <0xdc>; - }; + pwm11m2-pins { + rockchip,pins = <0x01 0x14 0x0b 0x198>; + phandle = <0x3db>; + }; - endpoint@1 { - reg = <0x01>; - remote-endpoint = <0xff>; - status = "disabled"; - phandle = <0xe2>; - }; + pwm11m1-pins { + rockchip,pins = <0x04 0x0c 0x0b 0x198>; + phandle = <0x3da>; + }; - endpoint@2 { - reg = <0x02>; - remote-endpoint = <0x100>; - status = "disabled"; - phandle = <0xe8>; - }; + pwm11m0-pins { + rockchip,pins = <0x03 0x01 0x0b 0x198>; + phandle = <0x170>; }; }; - }; - edp@fdec0000 { - compatible = "rockchip,rk3588-edp"; - reg = <0x00 0xfdec0000 0x00 0x1000>; - interrupts = <0x00 0xa3 0x04>; - clocks = <0x02 0x211 0x02 0x210 0x02 0x212 0x05>; - clock-names = "dp\0pclk\0spdif\0hclk"; - resets = <0x02 0x3e1 0x02 0x3e0>; - reset-names = "dp\0apb"; - phys = <0x101>; - phy-names = "dp"; - power-domains = <0x60 0x1a>; - rockchip,grf = <0xd8>; - status = "disabled"; - phandle = <0x289>; + bt1120 { - ports { - #address-cells = <0x01>; - #size-cells = <0x00>; + bt1120-pins { + rockchip,pins = <0x04 0x08 0x02 0x198 0x04 0x00 0x02 0x198 0x04 0x01 0x02 0x198 0x04 0x02 0x02 0x198 0x04 0x03 0x02 0x198 0x04 0x04 0x02 0x198 0x04 0x05 0x02 0x198 0x04 0x06 0x02 0x198 0x04 0x07 0x02 0x198 0x04 0x0a 0x02 0x198 0x04 0x0b 0x02 0x198 0x04 0x0c 0x02 0x198 0x04 0x0d 0x02 0x198 0x04 0x0e 0x02 0x198 0x04 0x0f 0x02 0x198 0x04 0x10 0x02 0x198 0x04 0x11 0x02 0x198>; + phandle = <0x71>; + }; + }; - port@0 { - reg = <0x00>; - #address-cells = <0x01>; - #size-cells = <0x00>; + pcfg-output-low-pull-up { + phandle = <0x30a>; + bias-pull-up; + output-low; + }; - endpoint@0 { - reg = <0x00>; - remote-endpoint = <0x102>; - status = "disabled"; - phandle = <0xdb>; - }; + uart5 { - endpoint@1 { - reg = <0x01>; - remote-endpoint = <0x103>; - status = "disabled"; - phandle = <0xe1>; - }; + uart5m1-ctsn { + rockchip,pins = <0x02 0x02 0x0a 0x198>; + phandle = <0x433>; + }; - endpoint@2 { - reg = <0x02>; - remote-endpoint = <0x3b>; - status = "disabled"; - phandle = <0xe7>; - }; + uart5m2-xfer { + rockchip,pins = <0x02 0x1c 0x0a 0x19e 0x02 0x1d 0x0a 0x19e>; + phandle = <0x435>; }; - port@1 { - reg = <0x01>; + uart5m0-ctsn { + rockchip,pins = <0x04 0x1a 0x0a 0x198>; + phandle = <0x431>; + }; - endpoint { - phandle = <0x28a>; - }; + uart5m1-xfer { + rockchip,pins = <0x03 0x15 0x0a 0x19e 0x03 0x14 0x0a 0x19e>; + phandle = <0x164>; }; - }; - }; - qos@fdf35000 { - compatible = "syscon"; - reg = <0x00 0xfdf35000 0x00 0x20>; - phandle = <0x87>; - }; + uart5m0-xfer { + rockchip,pins = <0x04 0x1c 0x0a 0x19e 0x04 0x1d 0x0a 0x19e>; + phandle = <0x430>; + }; - qos@fdf35200 { - compatible = "syscon"; - reg = <0x00 0xfdf35200 0x00 0x20>; - phandle = <0x88>; - }; + uart5m1-rtsn { + rockchip,pins = <0x02 0x03 0x0a 0x198>; + phandle = <0x434>; + }; - qos@fdf35400 { - compatible = "syscon"; - reg = <0x00 0xfdf35400 0x00 0x20>; - phandle = <0x89>; - }; + uart5m0-rtsn { + rockchip,pins = <0x04 0x1b 0x0a 0x198>; + phandle = <0x432>; + }; + }; - qos@fdf35600 { - compatible = "syscon"; - reg = <0x00 0xfdf35600 0x00 0x20>; - phandle = <0x8a>; - }; + sdio { - qos@fdf36000 { - compatible = "syscon"; - reg = <0x00 0xfdf36000 0x00 0x20>; - phandle = <0xaa>; - }; + sdiom1-pins { + rockchip,pins = <0x03 0x05 0x02 0x198 0x03 0x04 0x02 0x19e 0x03 0x00 0x02 0x19e 0x03 0x01 0x02 0x19e 0x03 0x02 0x02 0x19e 0x03 0x03 0x02 0x19e>; + phandle = <0x119>; + }; - qos@fdf39000 { - compatible = "syscon"; - reg = <0x00 0xfdf39000 0x00 0x20>; - phandle = <0xaf>; - }; + sdiom0-pins { + rockchip,pins = <0x02 0x0b 0x02 0x198 0x02 0x0a 0x02 0x19e 0x02 0x06 0x02 0x19e 0x02 0x07 0x02 0x19e 0x02 0x08 0x02 0x19e 0x02 0x09 0x02 0x19e>; + phandle = <0x3ee>; + }; + }; - qos@fdf3d800 { - compatible = "syscon"; - reg = <0x00 0xfdf3d800 0x00 0x20>; - phandle = <0xb0>; - }; + spdif1 { - qos@fdf3e000 { - compatible = "syscon"; - reg = <0x00 0xfdf3e000 0x00 0x20>; - phandle = <0xac>; - }; + spdif1m0-tx { + rockchip,pins = <0x01 0x0f 0x03 0x198>; + phandle = <0x143>; + }; - qos@fdf3e200 { - compatible = "syscon"; - reg = <0x00 0xfdf3e200 0x00 0x20>; - phandle = <0xab>; - }; + spdif1m2-tx { + rockchip,pins = <0x04 0x11 0x03 0x198>; + phandle = <0x3f2>; + }; - qos@fdf3e400 { - compatible = "syscon"; - reg = <0x00 0xfdf3e400 0x00 0x20>; - phandle = <0xad>; - }; + spdif1m1-tx { + rockchip,pins = <0x04 0x09 0x02 0x198>; + phandle = <0x3f1>; + }; + }; - qos@fdf3e600 { - compatible = "syscon"; - reg = <0x00 0xfdf3e600 0x00 0x20>; - phandle = <0xae>; - }; + pcfg-pull-down-drv-level-7 { + drive-strength = <0x07>; + bias-pull-down; + phandle = <0x463>; + }; - qos@fdf40000 { - compatible = "syscon"; - reg = <0x00 0xfdf40000 0x00 0x20>; - phandle = <0xa8>; - }; + gpio@fec30000 { + gpio-controller; + interrupts = <0x00 0x117 0x04>; + clocks = <0x02 0x7f 0x02 0x80>; + compatible = "rockchip,gpio-bank"; + #interrupt-cells = <0x02>; + reg = <0x00 0xfec30000 0x00 0x100>; + phandle = <0x79>; + #gpio-cells = <0x02>; + gpio-ranges = <0x197 0x00 0x40 0x20>; + interrupt-controller; + }; - qos@fdf40200 { - compatible = "syscon"; - reg = <0x00 0xfdf40200 0x00 0x20>; - phandle = <0xa9>; - }; + pcfg-pull-up-drv-level-12 { + drive-strength = <0x0c>; + phandle = <0x45f>; + bias-pull-up; + }; - qos@fdf40400 { - compatible = "syscon"; - reg = <0x00 0xfdf40400 0x00 0x20>; - phandle = <0xa2>; - }; + pcfg-pull-down-drv-level-10 { + drive-strength = <0x0a>; + bias-pull-down; + phandle = <0x466>; + }; - qos@fdf40500 { - compatible = "syscon"; - reg = <0x00 0xfdf40500 0x00 0x20>; - phandle = <0xa3>; - }; + dp1 { - qos@fdf40600 { - compatible = "syscon"; - reg = <0x00 0xfdf40600 0x00 0x20>; - phandle = <0xa4>; - }; + dp1m1-pins { + rockchip,pins = <0x00 0x15 0x0a 0x198>; + phandle = <0x320>; + }; - qos@fdf40800 { - compatible = "syscon"; - reg = <0x00 0xfdf40800 0x00 0x20>; - phandle = <0xa5>; - }; + dp1m0-pins { + rockchip,pins = <0x03 0x1d 0x05 0x198>; + phandle = <0x31f>; + }; - qos@fdf41000 { - compatible = "syscon"; - reg = <0x00 0xfdf41000 0x00 0x20>; - phandle = <0xa6>; - }; + dp1m2-pins { + rockchip,pins = <0x01 0x01 0x05 0x198>; + phandle = <0x321>; + }; + }; - qos@fdf41100 { - compatible = "syscon"; - reg = <0x00 0xfdf41100 0x00 0x20>; - phandle = <0xa7>; - }; + vop { - qos@fdf60000 { - compatible = "syscon"; - reg = <0x00 0xfdf60000 0x00 0x20>; - phandle = <0x8d>; - }; + vop-pins { + rockchip,pins = <0x01 0x02 0x01 0x198>; + phandle = <0x44f>; + }; + }; - qos@fdf60200 { - compatible = "syscon"; - reg = <0x00 0xfdf60200 0x00 0x20>; - phandle = <0x8e>; - }; + pwm4 { - qos@fdf60400 { - compatible = "syscon"; - reg = <0x00 0xfdf60400 0x00 0x20>; - phandle = <0x8f>; - }; + pwm4m1-pins { + rockchip,pins = <0x04 0x13 0x0b 0x198>; + phandle = <0x3cc>; + }; - qos@fdf61000 { - compatible = "syscon"; - reg = <0x00 0xfdf61000 0x00 0x20>; - phandle = <0x90>; - }; + pwm4m0-pins { + rockchip,pins = <0x00 0x15 0x0b 0x198>; + phandle = <0x169>; + }; + }; - qos@fdf61200 { - compatible = "syscon"; - reg = <0x00 0xfdf61200 0x00 0x20>; - phandle = <0x91>; - }; + pcfg-pull-none-drv-level-2 { + drive-strength = <0x02>; + bias-disable; + phandle = <0x1a0>; + }; - qos@fdf61400 { - compatible = "syscon"; - reg = <0x00 0xfdf61400 0x00 0x20>; - phandle = <0x92>; - }; + pcfg-pull-none-drv-level-3-smt { + drive-strength = <0x03>; + bias-disable; + input-schmitt-enable; + phandle = <0x302>; + }; - qos@fdf62000 { - compatible = "syscon"; - reg = <0x00 0xfdf62000 0x00 0x20>; - phandle = <0x8b>; - }; + uart3 { - qos@fdf63000 { - compatible = "syscon"; - reg = <0x00 0xfdf63000 0x00 0x20>; - phandle = <0x8c>; - }; + uart3m2-xfer { + rockchip,pins = <0x04 0x06 0x0a 0x19e 0x04 0x05 0x0a 0x19e>; + phandle = <0x429>; + }; - qos@fdf64000 { - compatible = "syscon"; - reg = <0x00 0xfdf64000 0x00 0x20>; - phandle = <0x9b>; - }; + uart3m1-xfer { + rockchip,pins = <0x03 0x0e 0x0a 0x19e 0x03 0x0d 0x0a 0x19e>; + phandle = <0x162>; + }; - qos@fdf66000 { - compatible = "syscon"; - reg = <0x00 0xfdf66000 0x00 0x20>; - phandle = <0x93>; - }; + uart3-ctsn { + rockchip,pins = <0x01 0x13 0x0a 0x198>; + phandle = <0x42a>; + }; - qos@fdf66200 { - compatible = "syscon"; - reg = <0x00 0xfdf66200 0x00 0x20>; - phandle = <0x94>; - }; + uart3m0-xfer { + rockchip,pins = <0x01 0x10 0x0a 0x19e 0x01 0x11 0x0a 0x19e>; + phandle = <0x428>; + }; - qos@fdf66400 { - compatible = "syscon"; - reg = <0x00 0xfdf66400 0x00 0x20>; - phandle = <0x95>; - }; + uart3-rtsn { + rockchip,pins = <0x01 0x12 0x0a 0x198>; + phandle = <0x42b>; + }; + }; - qos@fdf66600 { - compatible = "syscon"; - reg = <0x00 0xfdf66600 0x00 0x20>; - phandle = <0x96>; - }; + pcfg-pull-down-drv-level-5 { + drive-strength = <0x05>; + bias-pull-down; + phandle = <0x2fc>; + }; - qos@fdf66800 { - compatible = "syscon"; - reg = <0x00 0xfdf66800 0x00 0x20>; - phandle = <0x97>; - }; + pcfg-pull-up-drv-level-8 { + drive-strength = <0x08>; + phandle = <0x45b>; + bias-pull-up; + }; - qos@fdf66a00 { - compatible = "syscon"; - reg = <0x00 0xfdf66a00 0x00 0x20>; - phandle = <0x98>; - }; + pcfg-pull-up-drv-level-10 { + drive-strength = <0x0a>; + phandle = <0x45d>; + bias-pull-up; + }; - qos@fdf66c00 { - compatible = "syscon"; - reg = <0x00 0xfdf66c00 0x00 0x20>; - phandle = <0x99>; - }; + pcfg-output-low { + phandle = <0x309>; + output-low; + }; - qos@fdf66e00 { - compatible = "syscon"; - reg = <0x00 0xfdf66e00 0x00 0x20>; - phandle = <0x9a>; - }; + i2c7 { - qos@fdf67000 { - compatible = "syscon"; - reg = <0x00 0xfdf67000 0x00 0x20>; - phandle = <0x9c>; - }; + i2c7m3-xfer { + rockchip,pins = <0x04 0x0a 0x09 0x19d 0x04 0x0b 0x09 0x19d>; + phandle = <0x36f>; + }; - qos@fdf67200 { - compatible = "syscon"; - reg = <0x00 0xfdf67200 0x00 0x20>; - phandle = <0x28b>; - }; + i2c7m2-xfer { + rockchip,pins = <0x03 0x1a 0x09 0x19d 0x03 0x1b 0x09 0x19d>; + phandle = <0x36e>; + }; - qos@fdf70000 { - compatible = "syscon"; - reg = <0x00 0xfdf70000 0x00 0x20>; - phandle = <0x85>; - }; + i2c7m1-xfer { + rockchip,pins = <0x04 0x13 0x09 0x19d 0x04 0x14 0x09 0x19d>; + phandle = <0x370>; + }; - qos@fdf71000 { - compatible = "syscon"; - reg = <0x00 0xfdf71000 0x00 0x20>; - phandle = <0x86>; - }; + i2c7m0-xfer { + rockchip,pins = <0x01 0x18 0x09 0x19d 0x01 0x19 0x09 0x19d>; + phandle = <0x185>; + }; + }; - qos@fdf72000 { - compatible = "syscon"; - reg = <0x00 0xfdf72000 0x00 0x20>; - phandle = <0x82>; - }; + pwm2 { - qos@fdf72200 { - compatible = "syscon"; - reg = <0x00 0xfdf72200 0x00 0x20>; - phandle = <0x83>; - }; + pwm2m2-pins { + rockchip,pins = <0x04 0x12 0x0b 0x198>; + phandle = <0x3c8>; + }; - qos@fdf72400 { - compatible = "syscon"; - reg = <0x00 0xfdf72400 0x00 0x20>; - phandle = <0x84>; - }; + pwm2m1-pins { + rockchip,pins = <0x03 0x09 0x0b 0x198>; + phandle = <0x3c7>; + }; - qos@fdf80000 { - compatible = "syscon"; - reg = <0x00 0xfdf80000 0x00 0x20>; - phandle = <0x9f>; - }; + pwm2m0-pins { + rockchip,pins = <0x00 0x14 0x03 0x198>; + phandle = <0x80>; + }; + }; - qos@fdf81000 { - compatible = "syscon"; - reg = <0x00 0xfdf81000 0x00 0x20>; - phandle = <0xa0>; - }; + pcfg-pull-none-drv-level-0 { + drive-strength = <0x00>; + bias-disable; + phandle = <0x2ed>; + }; - qos@fdf81200 { - compatible = "syscon"; - reg = <0x00 0xfdf81200 0x00 0x20>; - phandle = <0xa1>; - }; + sata1 { - qos@fdf82000 { - compatible = "syscon"; - reg = <0x00 0xfdf82000 0x00 0x20>; - phandle = <0x9d>; - }; + sata1m1-pins { + rockchip,pins = <0x01 0x01 0x06 0x198>; + phandle = <0x3eb>; + }; - qos@fdf82200 { - compatible = "syscon"; - reg = <0x00 0xfdf82200 0x00 0x20>; - phandle = <0x9e>; - }; + sata1m0-pins { + rockchip,pins = <0x04 0x0d 0x06 0x198>; + phandle = <0x3ea>; + }; + }; - dfi@fe060000 { - compatible = "rockchip,rk3588-dfi"; - reg = <0x00 0xfe060000 0x00 0x10000>; - rockchip,pmu_grf = <0x104>; - status = "disabled"; - phandle = <0x40>; - }; + pmu { - pcie@fe180000 { - compatible = "rockchip,rk3588-pcie\0snps,dw-pcie"; - #address-cells = <0x03>; - #size-cells = <0x02>; - bus-range = <0x30 0x3f>; - clocks = <0x02 0x151 0x02 0x156 0x02 0x14c 0x02 0x15c 0x02 0x161 0x02 0x2c5>; - clock-names = "aclk_mst\0aclk_slv\0aclk_dbi\0pclk\0aux\0pipe"; - device_type = "pci"; - interrupts = <0x00 0xf8 0x04 0x00 0xf7 0x04 0x00 0xf6 0x04 0x00 0xf5 0x04 0x00 0xf4 0x04>; - interrupt-names = "sys\0pmc\0msg\0legacy\0err"; - #interrupt-cells = <0x01>; - interrupt-map-mask = <0x00 0x00 0x00 0x07>; - interrupt-map = <0x00 0x00 0x00 0x01 0x105 0x00 0x00 0x00 0x00 0x02 0x105 0x01 0x00 0x00 0x00 0x03 0x105 0x02 0x00 0x00 0x00 0x04 0x105 0x03>; - linux,pci-domain = <0x03>; - num-ib-windows = <0x08>; - num-ob-windows = <0x08>; - num-viewport = <0x04>; - max-link-speed = <0x02>; - msi-map = <0x3000 0x106 0x3000 0x1000>; - num-lanes = <0x01>; - phys = <0x70 0x02>; - phy-names = "pcie-phy"; - ranges = <0x800 0x00 0xf3000000 0x00 0xf3000000 0x00 0x100000 0x81000000 0x00 0xf3100000 0x00 0xf3100000 0x00 0x100000 0x82000000 0x00 0xf3200000 0x00 0xf3200000 0x00 0xe00000 0xc3000000 0x09 0xc0000000 0x09 0xc0000000 0x00 0x40000000>; - reg = <0x00 0xfe180000 0x00 0x10000 0x0a 0x40c00000 0x00 0x400000>; - reg-names = "pcie-apb\0pcie-dbi"; - resets = <0x02 0x210 0x02 0x21f>; - reset-names = "pcie\0periph"; - rockchip,pipe-grf = <0x76>; - status = "disabled"; - phandle = <0x28c>; + pmu-pins { + rockchip,pins = <0x00 0x05 0x03 0x198>; + phandle = <0x3c2>; + }; + }; - legacy-interrupt-controller { - interrupt-controller; - #address-cells = <0x00>; - #interrupt-cells = <0x01>; - interrupt-parent = <0x01>; - interrupts = <0x00 0xf5 0x01>; - phandle = <0x105>; + hdmirx { + + hdmirx-det { + rockchip,pins = <0x01 0x1d 0x00 0x198>; + phandle = <0x1b4>; + }; }; - }; - pcie@fe190000 { - compatible = "rockchip,rk3588-pcie\0snps,dw-pcie"; - #address-cells = <0x03>; - #size-cells = <0x02>; - bus-range = <0x40 0x4f>; - clocks = <0x02 0x152 0x02 0x157 0x02 0x14d 0x02 0x15d 0x02 0x162 0x02 0x182>; - clock-names = "aclk_mst\0aclk_slv\0aclk_dbi\0pclk\0aux\0pipe"; - device_type = "pci"; - interrupts = <0x00 0xfd 0x04 0x00 0xfc 0x04 0x00 0xfb 0x04 0x00 0xfa 0x04 0x00 0xf9 0x04>; - interrupt-names = "sys\0pmc\0msg\0legacy\0err"; - #interrupt-cells = <0x01>; - interrupt-map-mask = <0x00 0x00 0x00 0x07>; - interrupt-map = <0x00 0x00 0x00 0x01 0x107 0x00 0x00 0x00 0x00 0x02 0x107 0x01 0x00 0x00 0x00 0x03 0x107 0x02 0x00 0x00 0x00 0x04 0x107 0x03>; - linux,pci-domain = <0x04>; - num-ib-windows = <0x08>; - num-ob-windows = <0x08>; - num-viewport = <0x04>; - max-link-speed = <0x02>; - msi-map = <0x4000 0x106 0x4000 0x1000>; - num-lanes = <0x01>; - phys = <0x108 0x02>; - phy-names = "pcie-phy"; - ranges = <0x800 0x00 0xf4000000 0x00 0xf4000000 0x00 0x100000 0x81000000 0x00 0xf4100000 0x00 0xf4100000 0x00 0x100000 0x82000000 0x00 0xf4200000 0x00 0xf4200000 0x00 0xe00000 0xc3000000 0x0a 0x00 0x0a 0x00 0x00 0x40000000>; - reg = <0x00 0xfe190000 0x00 0x10000 0x0a 0x41000000 0x00 0x400000>; - reg-names = "pcie-apb\0pcie-dbi"; - resets = <0x02 0x211 0x02 0x220>; - reset-names = "pcie\0periph"; - rockchip,pipe-grf = <0x76>; - status = "disabled"; - phandle = <0x28d>; + uart1 { - legacy-interrupt-controller { - interrupt-controller; - #address-cells = <0x00>; - #interrupt-cells = <0x01>; - interrupt-parent = <0x01>; - interrupts = <0x00 0xfa 0x01>; - phandle = <0x107>; - }; - }; + uart1m0-ctsn { + rockchip,pins = <0x02 0x11 0x0a 0x198>; + phandle = <0x423>; + }; - uio@fe1c0000 { - compatible = "rockchip,uio-gmac"; - reg = <0x00 0xfe1c0000 0x00 0x10000>; - rockchip,ethernet = <0x109>; - status = "disabled"; - phandle = <0x28e>; - }; + uart1m1-xfer { + rockchip,pins = <0x01 0x0f 0x0a 0x19e 0x01 0x0e 0x0a 0x19e>; + phandle = <0x160>; + }; - ethernet@fe1c0000 { - compatible = "rockchip,rk3588-gmac\0snps,dwmac-4.20a"; - reg = <0x00 0xfe1c0000 0x00 0x10000>; - interrupts = <0x00 0xea 0x04 0x00 0xe9 0x04>; - interrupt-names = "macirq\0eth_wake_irq"; - rockchip,grf = <0xc8>; - rockchip,php_grf = <0x76>; - clocks = <0x02 0x144 0x02 0x145 0x02 0x168 0x02 0x16d 0x02 0x143>; - clock-names = "stmmaceth\0clk_mac_ref\0pclk_mac\0aclk_mac\0ptp_ref"; - resets = <0x02 0x20b>; - reset-names = "stmmaceth"; - power-domains = <0x60 0x21>; - snps,mixed-burst; - snps,tso; - snps,axi-config = <0x10a>; - snps,mtl-rx-config = <0x10b>; - snps,mtl-tx-config = <0x10c>; - status = "okay"; - phy-mode = "rgmii-rxid"; - clock_in_out = "output"; - snps,reset-gpio = <0x10d 0x08 0x01>; - snps,reset-active-low; - snps,reset-delays-us = <0x00 0x4e20 0x186a0>; - pinctrl-names = "default"; - pinctrl-0 = <0x10e 0x10f 0x110 0x111 0x112>; - tx_delay = <0x40>; - phy-handle = <0x113>; - phandle = <0x109>; + uart1m0-xfer { + rockchip,pins = <0x02 0x0e 0x0a 0x19e 0x02 0x0f 0x0a 0x19e>; + phandle = <0x422>; + }; - mdio { - compatible = "snps,dwmac-mdio"; - #address-cells = <0x01>; - #size-cells = <0x00>; - phandle = <0x28f>; + uart1m2-rtsn { + rockchip,pins = <0x00 0x17 0x0a 0x198>; + phandle = <0x421>; + }; - phy@1 { - compatible = "ethernet-phy-ieee802.3-c22"; - reg = <0x01>; - phandle = <0x113>; + uart1m1-rtsn { + rockchip,pins = <0x01 0x1e 0x0a 0x198>; + phandle = <0x41e>; }; - }; - stmmac-axi-config { - snps,wr_osr_lmt = <0x04>; - snps,rd_osr_lmt = <0x08>; - snps,blen = <0x00 0x00 0x00 0x00 0x10 0x08 0x04>; - phandle = <0x10a>; - }; + uart1m0-rtsn { + rockchip,pins = <0x02 0x10 0x0a 0x198>; + phandle = <0x424>; + }; - rx-queues-config { - snps,rx-queues-to-use = <0x01>; - phandle = <0x10b>; + uart1m2-ctsn { + rockchip,pins = <0x00 0x18 0x0a 0x198>; + phandle = <0x420>; + }; - queue0 { + uart1m1-ctsn { + rockchip,pins = <0x01 0x1f 0x0a 0x198>; + phandle = <0x41d>; + }; + + uart1m2-xfer { + rockchip,pins = <0x00 0x1a 0x0a 0x19e 0x00 0x19 0x0a 0x19e>; + phandle = <0x41f>; }; }; - tx-queues-config { - snps,tx-queues-to-use = <0x01>; - phandle = <0x10c>; + hdmi { - queue0 { + hdmim1-rx-cec { + rockchip,pins = <0x03 0x19 0x05 0x198>; + phandle = <0x338>; }; - }; - }; - sata@fe210000 { - compatible = "rockchip,rk-ahci\0snps,dwc-ahci"; - reg = <0x00 0xfe210000 0x00 0x1000>; - clocks = <0x02 0x171 0x02 0x16e 0x02 0x174 0x02 0x163 0x02 0x17e>; - clock-names = "sata\0pmalive\0rxoob\0ref\0asic"; - interrupts = <0x00 0x111 0x04>; - interrupt-names = "hostc"; - phys = <0x108 0x01>; - phy-names = "sata-phy"; - ports-implemented = <0x01>; - status = "okay"; - phandle = <0x290>; - }; + hdmim0-rx-scl { + rockchip,pins = <0x00 0x1a 0x0b 0x198>; + phandle = <0x336>; + }; - sata@fe230000 { - compatible = "rockchip,rk-ahci\0snps,dwc-ahci"; - reg = <0x00 0xfe230000 0x00 0x1000>; - clocks = <0x02 0x173 0x02 0x170 0x02 0x176 0x02 0x165 0x02 0x180>; - clock-names = "sata\0pmalive\0rxoob\0ref\0asic"; - interrupts = <0x00 0x113 0x04>; - interrupt-names = "hostc"; - phys = <0x70 0x01>; - phy-names = "sata-phy"; - ports-implemented = <0x01>; - status = "disabled"; - phandle = <0x291>; - }; + hdmim0-rx-sda { + rockchip,pins = <0x00 0x19 0x0b 0x198>; + phandle = <0x337>; + }; - spi@fe2b0000 { - compatible = "rockchip,sfc"; - reg = <0x00 0xfe2b0000 0x00 0x4000>; - interrupts = <0x00 0xce 0x04>; - clocks = <0x02 0x13d 0x02 0x13e>; - clock-names = "clk_sfc\0hclk_sfc"; - assigned-clocks = <0x02 0x13d>; - assigned-clock-rates = <0x5f5e100>; - #address-cells = <0x01>; - #size-cells = <0x00>; - status = "disabled"; - phandle = <0x292>; - }; + hdmim0-tx0-cec { + rockchip,pins = <0x04 0x11 0x05 0x198>; + phandle = <0xf9>; + }; - mmc@fe2c0000 { - compatible = "rockchip,rk3588-dw-mshc\0rockchip,rk3288-dw-mshc"; - reg = <0x00 0xfe2c0000 0x00 0x4000>; - interrupts = <0x00 0xcb 0x04>; - clocks = <0x0e 0x17 0x0e 0x09 0x02 0x2c2 0x02 0x2c3>; - clock-names = "biu\0ciu\0ciu-drive\0ciu-sample"; - fifo-depth = <0x100>; - max-frequency = <0x8f0d180>; - pinctrl-names = "default"; - pinctrl-0 = <0x114 0x115 0x116 0x117>; - power-domains = <0x60 0x28>; - status = "okay"; - no-sdio; - no-mmc; - bus-width = <0x04>; - cap-mmc-highspeed; - cap-sd-highspeed; - disable-wp; - sd-uhs-sdr104; - vqmmc-supply = <0x118>; - phandle = <0x293>; - }; + hdmim2-rx-cec { + rockchip,pins = <0x01 0x0f 0x05 0x198>; + phandle = <0x342>; + }; - mmc@fe2d0000 { - compatible = "rockchip,rk3588-dw-mshc\0rockchip,rk3288-dw-mshc"; - reg = <0x00 0xfe2d0000 0x00 0x4000>; - interrupts = <0x00 0xcc 0x04>; - clocks = <0x02 0x199 0x02 0x19a 0x02 0x2c0 0x02 0x2c1>; - clock-names = "biu\0ciu\0ciu-drive\0ciu-sample"; - fifo-depth = <0x100>; - max-frequency = <0xbebc200>; - pinctrl-names = "default"; - pinctrl-0 = <0x119>; - power-domains = <0x60 0x25>; - status = "disabled"; - phandle = <0x294>; - }; + hdmim1-rx-scl { + rockchip,pins = <0x03 0x1a 0x05 0x19d>; + phandle = <0x33a>; + }; - mmc@fe2e0000 { - compatible = "rockchip,rk3588-dwcmshc\0rockchip,dwcmshc-sdhci"; - reg = <0x00 0xfe2e0000 0x00 0x10000>; - interrupts = <0x00 0xcd 0x04>; - assigned-clocks = <0x02 0x13b 0x02 0x13c 0x02 0x13a>; - assigned-clock-rates = <0xbebc200 0x16e3600 0xbebc200>; - clocks = <0x02 0x13a 0x02 0x138 0x02 0x139 0x02 0x13b 0x02 0x13c>; - clock-names = "core\0bus\0axi\0block\0timer"; - resets = <0x02 0x1f6 0x02 0x1f4 0x02 0x1f5 0x02 0x1f7 0x02 0x1f8>; - reset-names = "core\0bus\0axi\0block\0timer"; - max-frequency = <0xbebc200>; - status = "okay"; - bus-width = <0x08>; - no-sdio; - no-sd; - non-removable; - mmc-hs400-1_8v; - mmc-hs400-enhanced-strobe; - phandle = <0x295>; - }; + hdmim1-rx-sda { + rockchip,pins = <0x03 0x1b 0x05 0x19d>; + phandle = <0x33b>; + }; - crypto@fe370000 { - compatible = "rockchip,rk3588-crypto"; - reg = <0x00 0xfe370000 0x00 0x2000>; - interrupts = <0x00 0xd1 0x04>; - clocks = <0x0e 0x0b 0x0e 0x0c 0x0e 0x14 0x0e 0x15>; - clock-names = "aclk\0hclk\0sclk\0pka"; - resets = <0x11a 0x0f>; - reset-names = "crypto-rst"; - status = "disabled"; - phandle = <0x296>; - }; + hdmim0-tx0-scl { + rockchip,pins = <0x04 0x0f 0x05 0x19b>; + phandle = <0xfb>; + }; - rng@fe378000 { - compatible = "rockchip,trngv1"; - reg = <0x00 0xfe378000 0x00 0x200>; - interrupts = <0x00 0x190 0x04>; - clocks = <0x0e 0x0c>; - clock-names = "hclk_trng"; - resets = <0x11a 0x30>; - reset-names = "reset"; - status = "okay"; - phandle = <0x297>; - }; + hdmim0-tx0-sda { + rockchip,pins = <0x04 0x10 0x05 0x19c>; + phandle = <0xfc>; + }; - i2s@fe470000 { - compatible = "rockchip,rk3588-i2s-tdm"; - reg = <0x00 0xfe470000 0x00 0x1000>; - interrupts = <0x00 0xb4 0x04>; - clocks = <0x02 0x33 0x02 0x37 0x02 0x30>; - clock-names = "mclk_tx\0mclk_rx\0hclk"; - assigned-clocks = <0x02 0x31 0x02 0x35>; - assigned-clock-parents = <0x02 0x05 0x02 0x05>; - dmas = <0x7c 0x00 0x7c 0x01>; - dma-names = "tx\0rx"; - power-domains = <0x60 0x26>; - resets = <0x02 0x77 0x02 0x7a>; - reset-names = "tx-m\0rx-m"; - rockchip,clk-trcm = <0x01>; - pinctrl-names = "default\0idle\0clk"; - pinctrl-0 = <0x11b 0x11c 0x11d 0x11e>; - pinctrl-1 = <0x11f>; - pinctrl-2 = <0x11b 0x11c>; - #sound-dai-cells = <0x00>; - status = "okay"; - phandle = <0x1da>; - }; + hdmim2-rx-scl { + rockchip,pins = <0x01 0x1e 0x05 0x198>; + phandle = <0x344>; + }; - i2s@fe480000 { - compatible = "rockchip,rk3588-i2s-tdm"; - reg = <0x00 0xfe480000 0x00 0x1000>; - interrupts = <0x00 0xb5 0x04>; - clocks = <0x02 0x28c 0x02 0x290 0x02 0x288>; - clock-names = "mclk_tx\0mclk_rx\0hclk"; - dmas = <0x7c 0x02 0x7c 0x03>; - dma-names = "tx\0rx"; - resets = <0x02 0xc002a 0x02 0xc002d>; - reset-names = "tx-m\0rx-m"; - rockchip,clk-trcm = <0x01>; - pinctrl-names = "default"; - pinctrl-0 = <0x120 0x121 0x122 0x123 0x124 0x125 0x126 0x127 0x128 0x129>; - #sound-dai-cells = <0x00>; - status = "disabled"; - phandle = <0x1d1>; - }; + hdmim2-rx-sda { + rockchip,pins = <0x01 0x1f 0x05 0x198>; + phandle = <0x345>; + }; - i2s@fe490000 { - compatible = "rockchip,rk3588-i2s\0rockchip,rk3066-i2s"; - reg = <0x00 0xfe490000 0x00 0x1000>; - interrupts = <0x00 0xb6 0x04>; - clocks = <0x02 0x27 0x02 0x22>; - clock-names = "i2s_clk\0i2s_hclk"; - assigned-clocks = <0x02 0x24>; - assigned-clock-parents = <0x02 0x05>; - dmas = <0xf1 0x00 0xf1 0x01>; - dma-names = "tx\0rx"; - power-domains = <0x60 0x26>; - rockchip,clk-trcm = <0x01>; - pinctrl-names = "default\0idle\0clk"; - pinctrl-0 = <0x12a 0x12b>; - pinctrl-1 = <0x12c>; - pinctrl-2 = <0x12d 0x12e>; - #sound-dai-cells = <0x00>; - status = "disabled"; - phandle = <0x298>; - }; + hdmim0-tx0-hpd { + rockchip,pins = <0x01 0x05 0x05 0x198>; + phandle = <0xfa>; + }; - i2s@fe4a0000 { - compatible = "rockchip,rk3588-i2s\0rockchip,rk3066-i2s"; - reg = <0x00 0xfe4a0000 0x00 0x1000>; - interrupts = <0x00 0xb7 0x04>; - clocks = <0x02 0x2d 0x02 0x23>; - clock-names = "i2s_clk\0i2s_hclk"; - assigned-clocks = <0x02 0x2a>; - assigned-clock-parents = <0x02 0x05>; - dmas = <0xf1 0x02 0xf1 0x03>; - dma-names = "tx\0rx"; - power-domains = <0x60 0x26>; - rockchip,clk-trcm = <0x01>; - pinctrl-names = "default\0idle\0clk"; - pinctrl-0 = <0x12f 0x130>; - pinctrl-1 = <0x131>; - pinctrl-2 = <0x132 0x133>; - #sound-dai-cells = <0x00>; - status = "disabled"; - phandle = <0x299>; - }; + hdmim2-rx-hpdin { + rockchip,pins = <0x01 0x0e 0x05 0x198>; + phandle = <0x343>; + }; - pdm@fe4b0000 { - compatible = "rockchip,rk3588-pdm"; - reg = <0x00 0xfe4b0000 0x00 0x1000>; - clocks = <0x02 0x29f 0x02 0x29e>; - clock-names = "pdm_clk\0pdm_hclk"; - dmas = <0x7c 0x04>; - dma-names = "rx"; - pinctrl-names = "default\0idle\0clk"; - pinctrl-0 = <0x134 0x135 0x136 0x137>; - pinctrl-1 = <0x138>; - pinctrl-2 = <0x139 0x13a>; - #sound-dai-cells = <0x00>; - status = "disabled"; - phandle = <0x29a>; - }; + hdmi-debug6 { + rockchip,pins = <0x01 0x00 0x07 0x198>; + phandle = <0x350>; + }; - pdm@fe4c0000 { - compatible = "rockchip,rk3588-pdm"; - reg = <0x00 0xfe4c0000 0x00 0x1000>; - clocks = <0x02 0x3b 0x02 0x3a>; - clock-names = "pdm_clk\0pdm_hclk"; - assigned-clocks = <0x02 0x3b>; - assigned-clock-parents = <0x02 0x05>; - dmas = <0xf1 0x04>; - dma-names = "rx"; - power-domains = <0x60 0x26>; - pinctrl-names = "default\0idle\0clk"; - pinctrl-0 = <0x13b 0x13c 0x13d 0x13e>; - pinctrl-1 = <0x13f>; - pinctrl-2 = <0x140 0x141>; - #sound-dai-cells = <0x00>; - status = "disabled"; - phandle = <0x29b>; - }; + hdmim2-tx0-scl { + rockchip,pins = <0x03 0x17 0x05 0x19b>; + phandle = <0x346>; + }; - vad@fe4d0000 { - compatible = "rockchip,rk3588-vad"; - reg = <0x00 0xfe4d0000 0x00 0x1000>; - reg-names = "vad"; - clocks = <0x02 0x2a0>; - clock-names = "hclk"; - interrupts = <0x00 0xca 0x04>; - rockchip,audio-src = <0x00>; - rockchip,det-channel = <0x00>; - rockchip,mode = <0x00>; - #sound-dai-cells = <0x00>; - status = "disabled"; - phandle = <0x29c>; - }; + hdmim2-tx0-sda { + rockchip,pins = <0x03 0x18 0x05 0x19c>; + phandle = <0x347>; + }; - spdif-tx@fe4e0000 { - compatible = "rockchip,rk3588-spdif\0rockchip,rk3568-spdif"; - reg = <0x00 0xfe4e0000 0x00 0x1000>; - interrupts = <0x00 0xc1 0x04>; - dmas = <0x7c 0x05>; - dma-names = "tx"; - clock-names = "mclk\0hclk"; - clocks = <0x02 0x41 0x02 0x3e>; - assigned-clocks = <0x02 0x3f>; - assigned-clock-parents = <0x02 0x05>; - power-domains = <0x60 0x26>; - pinctrl-names = "default"; - pinctrl-0 = <0x142>; - #sound-dai-cells = <0x00>; - status = "disabled"; - phandle = <0x29d>; - }; + hdmi-debug4 { + rockchip,pins = <0x01 0x0b 0x07 0x198>; + phandle = <0x34e>; + }; - spdif-tx@fe4f0000 { - compatible = "rockchip,rk3588-spdif\0rockchip,rk3568-spdif"; - reg = <0x00 0xfe4f0000 0x00 0x1000>; - interrupts = <0x00 0xc2 0x04>; - dmas = <0xf1 0x05>; - dma-names = "tx"; - clock-names = "mclk\0hclk"; - clocks = <0x02 0x47 0x02 0x44>; - assigned-clocks = <0x02 0x45>; - assigned-clock-parents = <0x02 0x05>; - power-domains = <0x60 0x26>; - pinctrl-names = "default"; - pinctrl-0 = <0x143>; - #sound-dai-cells = <0x00>; - status = "disabled"; - phandle = <0x1d7>; - }; + hdmim0-tx1-cec { + rockchip,pins = <0x02 0x14 0x04 0x198>; + phandle = <0x351>; + }; - codec-digital@fe500000 { - compatible = "rockchip,rk3588-codec-digital\0rockchip,codec-digital-v1"; - reg = <0x00 0xfe500000 0x00 0x1000>; - clocks = <0x02 0x29 0x02 0x2f>; - clock-names = "dac\0pclk"; - power-domains = <0x60 0x26>; - resets = <0x02 0x84>; - reset-names = "reset"; - rockchip,grf = <0xc8>; - rockchip,pwm-output-mode; - pinctrl-names = "default"; - pinctrl-0 = <0x144>; - #sound-dai-cells = <0x00>; - status = "disabled"; - phandle = <0x29e>; - }; + hdmim0-tx1-scl { + rockchip,pins = <0x02 0x0d 0x04 0x198>; + phandle = <0x352>; + }; - hwspinlock@fe5a0000 { - compatible = "rockchip,hwspinlock"; - reg = <0x00 0xfe5a0000 0x00 0x100>; - #hwlock-cells = <0x01>; - phandle = <0x29f>; - }; + hdmim0-tx1-sda { + rockchip,pins = <0x02 0x0c 0x04 0x198>; + phandle = <0x353>; + }; - interrupt-controller@fe600000 { - compatible = "arm,gic-v3"; - #interrupt-cells = <0x03>; - #address-cells = <0x02>; - #size-cells = <0x02>; - ranges; - interrupt-controller; - reg = <0x00 0xfe600000 0x00 0x10000 0x00 0xfe680000 0x00 0x100000>; - interrupts = <0x01 0x09 0x04>; - phandle = <0x01>; + hdmi-debug2 { + rockchip,pins = <0x01 0x09 0x07 0x198>; + phandle = <0x34c>; + }; - msi-controller@fe640000 { - compatible = "arm,gic-v3-its"; - msi-controller; - #msi-cells = <0x01>; - reg = <0x00 0xfe640000 0x00 0x20000>; - phandle = <0x106>; - }; + hdmim0-tx1-hpd { + rockchip,pins = <0x01 0x06 0x05 0x198>; + phandle = <0x1a9>; + }; - msi-controller@fe660000 { - compatible = "arm,gic-v3-its"; - msi-controller; - #msi-cells = <0x01>; - reg = <0x00 0xfe660000 0x00 0x20000>; - phandle = <0x1b6>; - }; - }; + hdmim1-rx { + rockchip,pins = <0x03 0x19 0x05 0x198 0x03 0x1a 0x05 0x19d 0x03 0x1b 0x05 0x19d 0x03 0x1c 0x05 0x198>; + phandle = <0x1b3>; + }; - dma-controller@fea10000 { - compatible = "arm,pl330\0arm,primecell"; - reg = <0x00 0xfea10000 0x00 0x4000>; - interrupts = <0x00 0x56 0x04 0x00 0x57 0x04>; - clocks = <0x02 0x78>; - clock-names = "apb_pclk"; - #dma-cells = <0x01>; - arm,pl330-periph-burst; - phandle = <0x7c>; - }; + hdmim2-tx1-cec { + rockchip,pins = <0x03 0x14 0x05 0x198>; + phandle = <0x1a8>; + }; - dma-controller@fea30000 { - compatible = "arm,pl330\0arm,primecell"; - reg = <0x00 0xfea30000 0x00 0x4000>; - interrupts = <0x00 0x58 0x04 0x00 0x59 0x04>; - clocks = <0x02 0x79>; - clock-names = "apb_pclk"; - #dma-cells = <0x01>; - arm,pl330-periph-burst; - phandle = <0xf1>; - }; + hdmi-debug0 { + rockchip,pins = <0x01 0x07 0x07 0x198>; + phandle = <0x34a>; + }; - can@fea50000 { - compatible = "rockchip,can-2.0"; - reg = <0x00 0xfea50000 0x00 0x1000>; - interrupts = <0x00 0x155 0x04>; - clocks = <0x02 0x70 0x02 0x6f>; - clock-names = "baudclk\0apb_pclk"; - resets = <0x02 0xb9 0x02 0xb8>; - reset-names = "can\0can-apb"; - pinctrl-names = "default"; - pinctrl-0 = <0x145>; - tx-fifo-depth = <0x01>; - rx-fifo-depth = <0x06>; - status = "disabled"; - phandle = <0x2a0>; - }; + hdmim2-tx1-scl { + rockchip,pins = <0x01 0x04 0x05 0x19b>; + phandle = <0x348>; + }; - can@fea60000 { - compatible = "rockchip,can-2.0"; - reg = <0x00 0xfea60000 0x00 0x1000>; - interrupts = <0x00 0x156 0x04>; - clocks = <0x02 0x72 0x02 0x71>; - clock-names = "baudclk\0apb_pclk"; - resets = <0x02 0xbb 0x02 0xba>; - reset-names = "can\0can-apb"; - pinctrl-names = "default"; - pinctrl-0 = <0x146>; - tx-fifo-depth = <0x01>; - rx-fifo-depth = <0x06>; - status = "okay"; - assigned-clocks = <0x02 0x72>; - assigned-clock-rates = <0xbebc200>; - phandle = <0x2a1>; - }; + hdmim2-tx1-sda { + rockchip,pins = <0x01 0x03 0x05 0x19c>; + phandle = <0x349>; + }; - can@fea70000 { - compatible = "rockchip,can-2.0"; - reg = <0x00 0xfea70000 0x00 0x1000>; - interrupts = <0x00 0x157 0x04>; - clocks = <0x02 0x74 0x02 0x73>; - clock-names = "baudclk\0apb_pclk"; - resets = <0x02 0xbd 0x02 0xbc>; - reset-names = "can\0can-apb"; - pinctrl-names = "default"; - pinctrl-0 = <0x147>; - tx-fifo-depth = <0x01>; - rx-fifo-depth = <0x06>; - status = "disabled"; - phandle = <0x2a2>; - }; + hdmim1-tx0-cec { + rockchip,pins = <0x00 0x19 0x0d 0x198>; + phandle = <0x33c>; + }; - decompress@fea80000 { - compatible = "rockchip,hw-decompress"; - reg = <0x00 0xfea80000 0x00 0x1000>; - interrupts = <0x00 0x55 0x04>; - clocks = <0x02 0x75 0x02 0x77 0x02 0x76>; - clock-names = "aclk\0dclk\0pclk"; - resets = <0x02 0x118>; - reset-names = "dresetn"; - status = "disabled"; - phandle = <0x2a3>; - }; + hdmim1-tx0-scl { + rockchip,pins = <0x00 0x1d 0x0b 0x19b>; + phandle = <0x33e>; + }; - i2c@fea90000 { - compatible = "rockchip,rk3588-i2c\0rockchip,rk3399-i2c"; - reg = <0x00 0xfea90000 0x00 0x1000>; - clocks = <0x02 0x8d 0x02 0x85>; - clock-names = "i2c\0pclk"; - interrupts = <0x00 0x13e 0x04>; - pinctrl-names = "default"; - pinctrl-0 = <0x148>; - resets = <0x02 0xb0 0x02 0xa8>; - reset-names = "i2c\0apb"; - #address-cells = <0x01>; - #size-cells = <0x00>; - status = "okay"; - phandle = <0x2a4>; + hdmim1-tx0-sda { + rockchip,pins = <0x00 0x1c 0x0b 0x19c>; + phandle = <0x33f>; + }; - rk8602@42 { - compatible = "rockchip,rk8602"; - reg = <0x42>; - vin-supply = <0x78>; - regulator-compatible = "rk860x-reg"; - regulator-name = "vdd_npu_s0"; - regulator-min-microvolt = <0x86470>; - regulator-max-microvolt = <0xe7ef0>; - regulator-ramp-delay = <0x8fc>; - rockchip,suspend-voltage-selector = <0x01>; - regulator-boot-on; - regulator-always-on; - phandle = <0xb3>; + hdmim1-tx0-hpd { + rockchip,pins = <0x03 0x1c 0x03 0x198>; + phandle = <0x33d>; + }; - regulator-state-mem { - regulator-off-in-suspend; + hdmim0-rx-hpdin { + rockchip,pins = <0x04 0x0e 0x05 0x198>; + phandle = <0x335>; }; - }; - }; - i2c@feaa0000 { - compatible = "rockchip,rk3588-i2c\0rockchip,rk3399-i2c"; - reg = <0x00 0xfeaa0000 0x00 0x1000>; - clocks = <0x02 0x8e 0x02 0x86>; - clock-names = "i2c\0pclk"; - interrupts = <0x00 0x13f 0x04>; - pinctrl-names = "default"; - pinctrl-0 = <0x149>; - resets = <0x02 0xb1 0x02 0xa9>; - reset-names = "i2c\0apb"; - #address-cells = <0x01>; - #size-cells = <0x00>; - status = "disabled"; - phandle = <0x2a5>; - }; + hdmi-debug5 { + rockchip,pins = <0x01 0x0c 0x07 0x198>; + phandle = <0x34f>; + }; - i2c@feab0000 { - compatible = "rockchip,rk3588-i2c\0rockchip,rk3399-i2c"; - reg = <0x00 0xfeab0000 0x00 0x1000>; - clocks = <0x02 0x8f 0x02 0x87>; - clock-names = "i2c\0pclk"; - interrupts = <0x00 0x140 0x04>; - pinctrl-names = "default"; - pinctrl-0 = <0x14a>; - resets = <0x02 0xb2 0x02 0xaa>; - reset-names = "i2c\0apb"; - #address-cells = <0x01>; - #size-cells = <0x00>; - status = "okay"; - phandle = <0x2a6>; + hdmi-debug3 { + rockchip,pins = <0x01 0x0a 0x07 0x198>; + phandle = <0x34d>; + }; - gpio@21 { - status = "okay"; - compatible = "nxp,pca9555"; - reg = <0x21>; - gpio-controller; - #gpio-cells = <0x02>; - gpio-group-num = <0xc8>; - phandle = <0x182>; - }; - }; + hdmim1-tx1-cec { + rockchip,pins = <0x00 0x1a 0x0d 0x198>; + phandle = <0x340>; + }; - i2c@feac0000 { - compatible = "rockchip,rk3588-i2c\0rockchip,rk3399-i2c"; - reg = <0x00 0xfeac0000 0x00 0x1000>; - clocks = <0x02 0x90 0x02 0x88>; - clock-names = "i2c\0pclk"; - interrupts = <0x00 0x141 0x04>; - pinctrl-names = "default"; - pinctrl-0 = <0x14b>; - resets = <0x02 0xb3 0x02 0xab>; - reset-names = "i2c\0apb"; - #address-cells = <0x01>; - #size-cells = <0x00>; - status = "okay"; - phandle = <0x2a7>; + hdmi-debug1 { + rockchip,pins = <0x01 0x08 0x07 0x198>; + phandle = <0x34b>; + }; - pc9202@3c { - status = "okay"; - compatible = "firefly,pc9202"; - reg = <0x3c>; - index = <0x01>; - pinctrl-names = "default"; - pinctrl-0 = <0x14c>; - wd-en-gpio = <0x7b 0x14 0x00>; - driver-names = "wdt_base"; - }; - }; + hdmim1-tx1-scl { + rockchip,pins = <0x03 0x16 0x05 0x19b>; + phandle = <0x1aa>; + }; - i2c@fead0000 { - compatible = "rockchip,rk3588-i2c\0rockchip,rk3399-i2c"; - reg = <0x00 0xfead0000 0x00 0x1000>; - clocks = <0x02 0x91 0x02 0x89>; - clock-names = "i2c\0pclk"; - interrupts = <0x00 0x142 0x04>; - pinctrl-names = "default"; - pinctrl-0 = <0x14d>; - resets = <0x02 0xb4 0x02 0xac>; - reset-names = "i2c\0apb"; - #address-cells = <0x01>; - #size-cells = <0x00>; - status = "disabled"; - phandle = <0x2a8>; - }; + hdmim1-tx1-sda { + rockchip,pins = <0x03 0x15 0x05 0x19c>; + phandle = <0x1ab>; + }; - timer@feae0000 { - compatible = "rockchip,rk3588-timer\0rockchip,rk3288-timer"; - reg = <0x00 0xfeae0000 0x00 0x20>; - interrupts = <0x00 0x121 0x04>; - clocks = <0x02 0x5c 0x02 0x5f>; - clock-names = "pclk\0timer"; - phandle = <0x2a9>; - }; + hdmim1-tx1-hpd { + rockchip,pins = <0x03 0x0f 0x05 0x198>; + phandle = <0x341>; + }; - watchdog@feaf0000 { - compatible = "snps,dw-wdt"; - reg = <0x00 0xfeaf0000 0x00 0x100>; - clocks = <0x02 0x6c 0x02 0x6b>; - clock-names = "tclk\0pclk"; - interrupts = <0x00 0x13b 0x04>; - status = "okay"; - phandle = <0x2aa>; - }; + hdmim1-rx-hpdin { + rockchip,pins = <0x03 0x1c 0x05 0x198>; + phandle = <0x339>; + }; - spi@feb00000 { - compatible = "rockchip,rk3066-spi"; - reg = <0x00 0xfeb00000 0x00 0x1000>; - interrupts = <0x00 0x146 0x04>; - #address-cells = <0x01>; - #size-cells = <0x00>; - clocks = <0x02 0xa3 0x02 0x9e>; - clock-names = "spiclk\0apb_pclk"; - dmas = <0x7c 0x0e 0x7c 0x0f>; - dma-names = "tx\0rx"; - pinctrl-names = "default"; - pinctrl-0 = <0x14e 0x14f 0x150>; - num-cs = <0x02>; - status = "disabled"; - phandle = <0x2ab>; - }; + hdmim0-rx-cec { + rockchip,pins = <0x04 0x0d 0x05 0x198>; + phandle = <0x334>; + }; + }; - spi@feb10000 { - compatible = "rockchip,rk3066-spi"; - reg = <0x00 0xfeb10000 0x00 0x1000>; - interrupts = <0x00 0x147 0x04>; - #address-cells = <0x01>; - #size-cells = <0x00>; - clocks = <0x02 0xa4 0x02 0x9f>; - clock-names = "spiclk\0apb_pclk"; - dmas = <0x7c 0x10 0x7c 0x11>; - dma-names = "tx\0rx"; - pinctrl-names = "default"; - pinctrl-0 = <0x151 0x152 0x153>; - num-cs = <0x02>; - status = "disabled"; - phandle = <0x2ac>; - }; + pcfg-pull-down-drv-level-3 { + drive-strength = <0x03>; + bias-pull-down; + phandle = <0x2fa>; + }; - spi@feb20000 { - compatible = "rockchip,rk3066-spi"; - reg = <0x00 0xfeb20000 0x00 0x1000>; - interrupts = <0x00 0x148 0x04>; - #address-cells = <0x01>; - #size-cells = <0x00>; - clocks = <0x02 0xa5 0x02 0xa0>; - clock-names = "spiclk\0apb_pclk"; - dmas = <0xf1 0x0f 0xf1 0x10>; - dma-names = "tx\0rx"; - pinctrl-names = "default"; - pinctrl-0 = <0x154 0x155>; - num-cs = <0x01>; - status = "okay"; - assigned-clocks = <0x02 0xa5>; - assigned-clock-rates = <0xbebc200>; - phandle = <0x2ad>; + pcfg-pull-up-drv-level-6 { + drive-strength = <0x06>; + phandle = <0x19a>; + bias-pull-up; + }; - rk806single@0 { - compatible = "rockchip,rk806"; - spi-max-frequency = <0xf4240>; - reg = <0x00>; - interrupt-parent = <0x7b>; - interrupts = <0x07 0x08>; - pinctrl-names = "default\0pmic-power-off"; - pinctrl-0 = <0x156 0x157 0x158 0x159>; - pinctrl-1 = <0x15a>; - low_voltage_threshold = <0xbb8>; - shutdown_voltage_threshold = <0xa8c>; - shutdown_temperture_threshold = <0xa0>; - hotdie_temperture_threshold = <0x73>; - pmic-reset-func = <0x01>; - vcc1-supply = <0x78>; - vcc2-supply = <0x78>; - vcc3-supply = <0x78>; - vcc4-supply = <0x78>; - vcc5-supply = <0x78>; - vcc6-supply = <0x78>; - vcc7-supply = <0x78>; - vcc8-supply = <0x78>; - vcc9-supply = <0x78>; - vcc10-supply = <0x78>; - vcc11-supply = <0x15b>; - vcc12-supply = <0x78>; - vcc13-supply = <0x15c>; - vcc14-supply = <0x15c>; - vcca-supply = <0x78>; - phandle = <0x2ae>; + i2c5 { - pwrkey { - status = "okay"; + i2c5m3-xfer { + rockchip,pins = <0x01 0x0e 0x09 0x19d 0x01 0x0f 0x09 0x19d>; + phandle = <0x368>; }; - pinctrl_rk806 { - gpio-controller; - #gpio-cells = <0x02>; - phandle = <0x2af>; + i2c5m2-xfer { + rockchip,pins = <0x04 0x06 0x09 0x19d 0x04 0x07 0x09 0x19d>; + phandle = <0x367>; + }; - rk806_dvs1_null { - pins = "gpio_pwrctrl2"; - function = "pin_fun0"; - phandle = <0x157>; - }; + i2c5m1-xfer { + rockchip,pins = <0x04 0x0e 0x09 0x19d 0x04 0x0f 0x09 0x19d>; + phandle = <0x366>; + }; - rk806_dvs1_slp { - pins = "gpio_pwrctrl1"; - function = "pin_fun1"; - phandle = <0x2b0>; - }; + i2c5m0-xfer { + rockchip,pins = <0x03 0x17 0x09 0x19d 0x03 0x18 0x09 0x19d>; + phandle = <0x14d>; + }; - rk806_dvs1_pwrdn { - pins = "gpio_pwrctrl1"; - function = "pin_fun2"; - phandle = <0x15a>; - }; + i2c5m4-xfer { + rockchip,pins = <0x02 0x0e 0x09 0x19d 0x02 0x0f 0x09 0x19d>; + phandle = <0x369>; + }; + }; - rk806_dvs1_rst { - pins = "gpio_pwrctrl1"; - function = "pin_fun3"; - phandle = <0x2b1>; - }; + pcfg-pull-none-drv-level-9 { + drive-strength = <0x09>; + bias-disable; + phandle = <0x453>; + }; - rk806_dvs2_null { - pins = "gpio_pwrctrl2"; - function = "pin_fun0"; - phandle = <0x158>; - }; + pdm0 { - rk806_dvs2_slp { - pins = "gpio_pwrctrl2"; - function = "pin_fun1"; - phandle = <0x2b2>; - }; + pdm0m1-sdi3 { + rockchip,pins = <0x00 0x1e 0x02 0x198>; + phandle = <0x3ba>; + }; - rk806_dvs2_pwrdn { - pins = "gpio_pwrctrl2"; - function = "pin_fun2"; - phandle = <0x2b3>; - }; + pdm0m1-clk { + rockchip,pins = <0x00 0x10 0x02 0x198>; + phandle = <0x3b4>; + }; - rk806_dvs2_rst { - pins = "gpio_pwrctrl2"; - function = "pin_fun3"; - phandle = <0x2b4>; - }; + pdm0m1-sdi1 { + rockchip,pins = <0x00 0x18 0x02 0x198>; + phandle = <0x3b8>; + }; - rk806_dvs2_dvs { - pins = "gpio_pwrctrl2"; - function = "pin_fun4"; - phandle = <0x2b5>; - }; + pdm0m0-sdi3 { + rockchip,pins = <0x01 0x1b 0x03 0x198>; + phandle = <0x137>; + }; - rk806_dvs2_gpio { - pins = "gpio_pwrctrl2"; - function = "pin_fun5"; - phandle = <0x2b6>; - }; + pdm0m0-sdi1 { + rockchip,pins = <0x01 0x19 0x03 0x198>; + phandle = <0x135>; + }; - rk806_dvs3_null { - pins = "gpio_pwrctrl3"; - function = "pin_fun0"; - phandle = <0x159>; - }; + pdm0m1-clk1 { + rockchip,pins = <0x00 0x14 0x02 0x198>; + phandle = <0x3b5>; + }; - rk806_dvs3_slp { - pins = "gpio_pwrctrl3"; - function = "pin_fun1"; - phandle = <0x2b7>; - }; + pdm0m1-idle { + rockchip,pins = <0x00 0x10 0x00 0x198 0x00 0x14 0x00 0x198>; + phandle = <0x3b6>; + }; - rk806_dvs3_pwrdn { - pins = "gpio_pwrctrl3"; - function = "pin_fun2"; - phandle = <0x2b8>; - }; + pdm0m0-clk1 { + rockchip,pins = <0x01 0x14 0x03 0x198>; + phandle = <0x13a>; + }; - rk806_dvs3_rst { - pins = "gpio_pwrctrl3"; - function = "pin_fun3"; - phandle = <0x2b9>; - }; + pdm0m1-sdi2 { + rockchip,pins = <0x00 0x1c 0x02 0x198>; + phandle = <0x3b9>; + }; - rk806_dvs3_dvs { - pins = "gpio_pwrctrl3"; - function = "pin_fun4"; - phandle = <0x2ba>; - }; + pdm0m0-idle { + rockchip,pins = <0x01 0x16 0x00 0x198 0x01 0x14 0x00 0x198>; + phandle = <0x138>; + }; - rk806_dvs3_gpio { - pins = "gpio_pwrctrl3"; - function = "pin_fun5"; - phandle = <0x2bb>; - }; + pdm0m1-sdi0 { + rockchip,pins = <0x00 0x17 0x02 0x198>; + phandle = <0x3b7>; }; - regulators { + pdm0m0-sdi2 { + rockchip,pins = <0x01 0x1a 0x03 0x198>; + phandle = <0x136>; + }; - DCDC_REG1 { - regulator-boot-on; - regulator-min-microvolt = <0x86470>; - regulator-max-microvolt = <0xe7ef0>; - regulator-ramp-delay = <0x30d4>; - regulator-name = "vdd_gpu_s0"; - regulator-enable-ramp-delay = <0x190>; - phandle = <0x62>; + pdm0m0-sdi0 { + rockchip,pins = <0x01 0x1d 0x03 0x198>; + phandle = <0x134>; + }; - regulator-state-mem { - regulator-off-in-suspend; - }; - }; + pdm0m0-clk { + rockchip,pins = <0x01 0x16 0x03 0x198>; + phandle = <0x139>; + }; + }; - DCDC_REG2 { - regulator-always-on; - regulator-boot-on; - regulator-min-microvolt = <0x86470>; - regulator-max-microvolt = <0xe7ef0>; - regulator-ramp-delay = <0x30d4>; - regulator-name = "vdd_cpu_lit_s0"; - phandle = <0x12>; + pcfg-output-high-pull-none { + bias-disable; + output-high; + phandle = <0x308>; + }; - regulator-state-mem { - regulator-off-in-suspend; - }; - }; + pwm0 { - DCDC_REG3 { - regulator-always-on; - regulator-boot-on; - regulator-min-microvolt = <0xa4cb8>; - regulator-max-microvolt = <0xb71b0>; - regulator-ramp-delay = <0x30d4>; - regulator-name = "vdd_log_s0"; - phandle = <0x43>; + pwm0m1-pins { + rockchip,pins = <0x01 0x1a 0x0b 0x198>; + phandle = <0x3c3>; + }; - regulator-state-mem { - regulator-suspend-microvolt = <0xb71b0>; - regulator-on-in-suspend; - }; - }; + pwm0m0-pins { + rockchip,pins = <0x00 0x0f 0x03 0x198>; + phandle = <0x7e>; + }; - DCDC_REG4 { - regulator-always-on; - regulator-boot-on; - regulator-min-microvolt = <0x86470>; - regulator-max-microvolt = <0xe7ef0>; - regulator-init-microvolt = <0xb71b0>; - regulator-ramp-delay = <0x30d4>; - regulator-name = "vdd_vdenc_s0"; - phandle = <0x2bc>; + pwm0m2-pins { + rockchip,pins = <0x01 0x02 0x0b 0x198>; + phandle = <0x3c4>; + }; + }; - regulator-state-mem { - regulator-off-in-suspend; - }; - }; + cif { - DCDC_REG5 { - regulator-always-on; - regulator-boot-on; - regulator-min-microvolt = <0xa4cb8>; - regulator-max-microvolt = <0xdbba0>; - regulator-ramp-delay = <0x30d4>; - regulator-name = "vdd_ddr_s0"; - phandle = <0x42>; + cif-dvp-clk { + rockchip,pins = <0x04 0x08 0x01 0x198 0x04 0x0a 0x01 0x198 0x04 0x0b 0x01 0x198>; + phandle = <0x311>; + }; - regulator-state-mem { - regulator-off-in-suspend; - regulator-suspend-microvolt = <0xcf850>; - }; - }; + cif-clk { + rockchip,pins = <0x04 0x0c 0x01 0x198>; + phandle = <0x310>; + }; - DCDC_REG6 { - regulator-always-on; - regulator-boot-on; - regulator-name = "vdd2_ddr_s3"; - phandle = <0x2bd>; + cif-dvp-bus8 { + rockchip,pins = <0x04 0x00 0x01 0x198 0x04 0x01 0x01 0x198 0x04 0x02 0x01 0x198 0x04 0x03 0x01 0x198 0x04 0x04 0x01 0x198 0x04 0x05 0x01 0x198 0x04 0x06 0x01 0x198 0x04 0x07 0x01 0x198>; + phandle = <0x313>; + }; - regulator-state-mem { - regulator-on-in-suspend; - }; - }; + cif-dvp-bus16 { + rockchip,pins = <0x03 0x14 0x01 0x198 0x03 0x15 0x01 0x198 0x03 0x16 0x01 0x198 0x03 0x17 0x01 0x198 0x03 0x18 0x01 0x198 0x03 0x19 0x01 0x198 0x03 0x1a 0x01 0x198 0x03 0x1b 0x01 0x198>; + phandle = <0x312>; + }; + }; - DCDC_REG7 { - regulator-always-on; - regulator-boot-on; - regulator-min-microvolt = <0x1e8480>; - regulator-max-microvolt = <0x1e8480>; - regulator-name = "vdd_2v0_pldo_s3"; - phandle = <0x15b>; + can1 { - regulator-state-mem { - regulator-on-in-suspend; - regulator-suspend-microvolt = <0x1e8480>; - }; - }; + can1m1-pins { + rockchip,pins = <0x04 0x0a 0x0c 0x198 0x04 0x0b 0x0c 0x198>; + phandle = <0x146>; + }; - DCDC_REG8 { - regulator-always-on; - regulator-boot-on; - regulator-min-microvolt = <0x325aa0>; - regulator-max-microvolt = <0x325aa0>; - regulator-name = "vcc_3v3_s3"; - phandle = <0x2be>; + can1m0-pins { + rockchip,pins = <0x03 0x0d 0x09 0x198 0x03 0x0e 0x09 0x198>; + phandle = <0x30e>; + }; + }; - regulator-state-mem { - regulator-on-in-suspend; - regulator-suspend-microvolt = <0x325aa0>; - }; - }; + pcfg-output-low-pull-none { + bias-disable; + phandle = <0x30c>; + output-low; + }; - DCDC_REG9 { - regulator-always-on; - regulator-boot-on; - regulator-name = "vddq_ddr_s0"; - phandle = <0x2bf>; + gpio@fec40000 { + gpio-controller; + interrupts = <0x00 0x118 0x04>; + clocks = <0x02 0x81 0x02 0x82>; + compatible = "rockchip,gpio-bank"; + #interrupt-cells = <0x02>; + reg = <0x00 0xfec40000 0x00 0x100>; + phandle = <0x181>; + #gpio-cells = <0x02>; + gpio-ranges = <0x197 0x00 0x60 0x20>; + interrupt-controller; + }; - regulator-state-mem { - regulator-off-in-suspend; - }; - }; + spi4 { - DCDC_REG10 { - regulator-always-on; - regulator-boot-on; - regulator-min-microvolt = <0x1b7740>; - regulator-max-microvolt = <0x1b7740>; - regulator-name = "vcc_1v8_s3"; - phandle = <0x2c0>; + spi4m0-cs0 { + rockchip,pins = <0x01 0x13 0x08 0x19a>; + phandle = <0x187>; + }; - regulator-state-mem { - regulator-on-in-suspend; - regulator-suspend-microvolt = <0x1b7740>; - }; - }; + spi4m1-cs0 { + rockchip,pins = <0x03 0x03 0x08 0x19a>; + phandle = <0x413>; + }; - PLDO_REG1 { - regulator-always-on; - regulator-boot-on; - regulator-min-microvolt = <0x1b7740>; - regulator-max-microvolt = <0x1b7740>; - regulator-name = "avcc_1v8_s0"; - phandle = <0x1de>; + spi4m2-pins { + rockchip,pins = <0x01 0x02 0x08 0x19a 0x01 0x00 0x08 0x19a 0x01 0x01 0x08 0x19a>; + phandle = <0x415>; + }; - regulator-state-mem { - regulator-off-in-suspend; - }; - }; + spi4m0-cs1 { + rockchip,pins = <0x01 0x14 0x08 0x19a>; + phandle = <0x188>; + }; - PLDO_REG2 { - regulator-always-on; - regulator-boot-on; - regulator-min-microvolt = <0x1b7740>; - regulator-max-microvolt = <0x1b7740>; - regulator-name = "vcc_1v8_s0"; - phandle = <0x177>; + spi4m1-pins { + rockchip,pins = <0x03 0x02 0x08 0x19a 0x03 0x00 0x08 0x19a 0x03 0x01 0x08 0x19a>; + phandle = <0x412>; + }; - regulator-state-mem { - regulator-off-in-suspend; - regulator-suspend-microvolt = <0x1b7740>; - }; - }; + spi4m2-cs0 { + rockchip,pins = <0x01 0x03 0x08 0x19a>; + phandle = <0x416>; + }; - PLDO_REG3 { - regulator-always-on; - regulator-boot-on; - regulator-min-microvolt = <0x124f80>; - regulator-max-microvolt = <0x124f80>; - regulator-name = "avdd_1v2_s0"; - phandle = <0x2c1>; + spi4m0-pins { + rockchip,pins = <0x01 0x12 0x08 0x19a 0x01 0x10 0x08 0x19a 0x01 0x11 0x08 0x19a>; + phandle = <0x189>; + }; - regulator-state-mem { - regulator-off-in-suspend; - }; - }; + spi4m1-cs1 { + rockchip,pins = <0x03 0x04 0x08 0x19a>; + phandle = <0x414>; + }; + }; - PLDO_REG4 { - regulator-always-on; - regulator-boot-on; - regulator-min-microvolt = <0x325aa0>; - regulator-max-microvolt = <0x325aa0>; - regulator-name = "vcc_3v3_s0"; - phandle = <0x2c2>; + pcfg-pull-down-drv-level-15 { + drive-strength = <0x0f>; + bias-pull-down; + phandle = <0x46b>; + }; - regulator-state-mem { - regulator-off-in-suspend; - }; - }; + pcfg-pull-up-smt { + input-schmitt-enable; + phandle = <0x2fe>; + bias-pull-up; + }; - PLDO_REG5 { - regulator-always-on; - regulator-boot-on; - regulator-min-microvolt = <0x1b7740>; - regulator-max-microvolt = <0x325aa0>; - regulator-name = "vccio_sd_s0"; - phandle = <0x118>; + pcfg-pull-down-drv-level-1 { + drive-strength = <0x01>; + bias-pull-down; + phandle = <0x2f8>; + }; - regulator-state-mem { - regulator-off-in-suspend; - }; - }; + pcfg-pull-up-drv-level-4 { + drive-strength = <0x04>; + phandle = <0x2f5>; + bias-pull-up; + }; - PLDO_REG6 { - regulator-always-on; - regulator-boot-on; - regulator-min-microvolt = <0x1b7740>; - regulator-max-microvolt = <0x1b7740>; - regulator-name = "pldo6_s3"; - phandle = <0x2c3>; + wireless-wlan { - regulator-state-mem { - regulator-on-in-suspend; - regulator-suspend-microvolt = <0x1b7740>; - }; - }; + wifi-host-wake-irq { + rockchip,pins = <0x00 0x0a 0x00 0x198>; + phandle = <0x1ea>; + }; + }; - NLDO_REG1 { - regulator-always-on; - regulator-boot-on; - regulator-min-microvolt = <0xb71b0>; - regulator-max-microvolt = <0xb71b0>; - regulator-name = "vdd_0v75_s3"; - phandle = <0x2c4>; + wdt-pc9202 { - regulator-state-mem { - regulator-on-in-suspend; - regulator-suspend-microvolt = <0xb71b0>; - }; - }; + wdt-en-base { + rockchip,pins = <0x00 0x14 0x00 0x198>; + phandle = <0x14c>; + }; + }; - NLDO_REG2 { - regulator-always-on; - regulator-boot-on; - regulator-min-microvolt = <0xcf850>; - regulator-max-microvolt = <0xcf850>; - regulator-name = "vdd_ddr_pll_s0"; - phandle = <0x2c5>; + pcfg-pull-none-drv-level-0-smt { + drive-strength = <0x00>; + bias-disable; + input-schmitt-enable; + phandle = <0x300>; + }; - regulator-state-mem { - regulator-off-in-suspend; - regulator-suspend-microvolt = <0xcf850>; - }; - }; + i2s3 { - NLDO_REG3 { - regulator-always-on; - regulator-boot-on; - regulator-min-microvolt = <0xb71b0>; - regulator-max-microvolt = <0xb71b0>; - regulator-name = "avdd_0v75_s0"; - phandle = <0x1df>; + i2s3-sdi { + rockchip,pins = <0x03 0x04 0x03 0x198>; + phandle = <0x12f>; + }; - regulator-state-mem { - regulator-off-in-suspend; - }; - }; + i2s3-idle { + rockchip,pins = <0x03 0x02 0x00 0x198 0x03 0x01 0x00 0x198>; + phandle = <0x131>; + }; - NLDO_REG4 { - regulator-always-on; - regulator-boot-on; - regulator-min-microvolt = <0xcf850>; - regulator-max-microvolt = <0xcf850>; - regulator-name = "vdd_0v85_s0"; - phandle = <0x2c6>; + i2s3-sclk { + rockchip,pins = <0x03 0x01 0x03 0x19d>; + phandle = <0x133>; + }; - regulator-state-mem { - regulator-off-in-suspend; - }; - }; + i2s3-lrck { + rockchip,pins = <0x03 0x02 0x03 0x19d>; + phandle = <0x132>; + }; - NLDO_REG5 { - regulator-always-on; - regulator-boot-on; - regulator-min-microvolt = <0xb71b0>; - regulator-max-microvolt = <0xb71b0>; - regulator-name = "vdd_0v75_s0"; - phandle = <0x2c7>; + i2s3-sdo { + rockchip,pins = <0x03 0x03 0x03 0x198>; + phandle = <0x130>; + }; - regulator-state-mem { - regulator-off-in-suspend; - }; - }; + i2s3-mclk { + rockchip,pins = <0x03 0x00 0x03 0x19d>; + phandle = <0x38e>; }; }; - }; - - spi@feb30000 { - compatible = "rockchip,rk3066-spi"; - reg = <0x00 0xfeb30000 0x00 0x1000>; - interrupts = <0x00 0x149 0x04>; - #address-cells = <0x01>; - #size-cells = <0x00>; - clocks = <0x02 0xa6 0x02 0xa1>; - clock-names = "spiclk\0apb_pclk"; - dmas = <0xf1 0x11 0xf1 0x12>; - dma-names = "tx\0rx"; - pinctrl-names = "default"; - pinctrl-0 = <0x15d 0x15e 0x15f>; - num-cs = <0x02>; - status = "disabled"; - phandle = <0x2c8>; - }; - serial@feb40000 { - compatible = "rockchip,rk3588-uart\0snps,dw-apb-uart"; - reg = <0x00 0xfeb40000 0x00 0x100>; - interrupts = <0x00 0x14c 0x04>; - clocks = <0x02 0xb7 0x02 0xab>; - clock-names = "baudclk\0apb_pclk"; - reg-shift = <0x02>; - reg-io-width = <0x04>; - dmas = <0x7c 0x08 0x7c 0x09>; - pinctrl-names = "default"; - pinctrl-0 = <0x160>; - status = "okay"; - phandle = <0x2c9>; + pcfg-pull-none-drv-level-14 { + drive-strength = <0x0e>; + bias-disable; + phandle = <0x458>; + }; }; - serial@feb50000 { - compatible = "rockchip,rk3588-uart\0snps,dw-apb-uart"; - reg = <0x00 0xfeb50000 0x00 0x100>; - interrupts = <0x00 0x14d 0x04>; - clocks = <0x02 0xbb 0x02 0xac>; - clock-names = "baudclk\0apb_pclk"; - reg-shift = <0x02>; - reg-io-width = <0x04>; - dmas = <0x7c 0x0a 0x7c 0x0b>; - pinctrl-names = "default"; - pinctrl-0 = <0x161>; + rkcif-mipi-lvds4-sditf-vir1 { + compatible = "rockchip,rkcif-sditf"; status = "disabled"; - phandle = <0x2ca>; + rockchip,cif = <0x1a1>; + phandle = <0x473>; }; - serial@feb60000 { - compatible = "rockchip,rk3588-uart\0snps,dw-apb-uart"; - reg = <0x00 0xfeb60000 0x00 0x100>; - interrupts = <0x00 0x14e 0x04>; - clocks = <0x02 0xbf 0x02 0xad>; - clock-names = "baudclk\0apb_pclk"; - reg-shift = <0x02>; - reg-io-width = <0x04>; - dmas = <0x7c 0x0c 0x7c 0x0d>; - pinctrl-names = "default"; - pinctrl-0 = <0x162>; + bt-sco { + #sound-dai-cells = <0x01>; + compatible = "delta,dfbmcs320"; status = "disabled"; - phandle = <0x2cb>; + phandle = <0x1d2>; }; - serial@feb70000 { - compatible = "rockchip,rk3588-uart\0snps,dw-apb-uart"; - reg = <0x00 0xfeb70000 0x00 0x100>; - interrupts = <0x00 0x14f 0x04>; - clocks = <0x02 0xc3 0x02 0xae>; - clock-names = "baudclk\0apb_pclk"; - reg-shift = <0x02>; - reg-io-width = <0x04>; - dmas = <0xf1 0x09 0xf1 0x0a>; - pinctrl-names = "default"; - pinctrl-0 = <0x163>; - status = "disabled"; - phandle = <0x2cc>; + phy@fed80000 { + svid = <0xff01>; + orientation-switch; + sbu2-dc-gpios = <0x10d 0x07 0x00>; + clock-names = "refclk\0immortal\0pclk\0utmi"; + resets = <0x02 0x28 0x02 0x29 0x02 0x2a 0x02 0x2b 0x02 0x482>; + clocks = <0x02 0x2b6 0x02 0x27f 0x02 0x269 0x18d>; + compatible = "rockchip,rk3588-usbdp-phy"; + status = "okay"; + reg = <0x00 0xfed80000 0x00 0x10000>; + phandle = <0x2ea>; + rockchip,usb-grf = <0x74>; + reset-names = "init\0cmn\0lane\0pcs_apb\0pma_apb"; + rockchip,u2phy-grf = <0x18b>; + sbu1-dc-gpios = <0x10d 0x06 0x00>; + rockchip,usbdpphy-grf = <0x18c>; + rockchip,vo-grf = <0xf5>; + + dp-port { + #phy-cells = <0x00>; + status = "okay"; + phandle = <0xf6>; + }; + + port { + #address-cells = <0x01>; + #size-cells = <0x00>; + + endpoint@1 { + remote-endpoint = <0x18f>; + reg = <0x01>; + phandle = <0x17f>; + }; + + endpoint@0 { + remote-endpoint = <0x18e>; + reg = <0x00>; + phandle = <0x17e>; + }; + }; + + u3-port { + #phy-cells = <0x00>; + status = "okay"; + phandle = <0x67>; + }; }; - serial@feb80000 { - compatible = "rockchip,rk3588-uart\0snps,dw-apb-uart"; - reg = <0x00 0xfeb80000 0x00 0x100>; - interrupts = <0x00 0x150 0x04>; - clocks = <0x02 0xc7 0x02 0xaf>; - clock-names = "baudclk\0apb_pclk"; - reg-shift = <0x02>; - reg-io-width = <0x04>; - dmas = <0xf1 0x0b 0xf1 0x0c>; - pinctrl-names = "default"; - pinctrl-0 = <0x164>; - status = "disabled"; - phandle = <0x2cd>; + interrupt-controller@fe600000 { + #address-cells = <0x02>; + interrupts = <0x01 0x09 0x04>; + #size-cells = <0x02>; + compatible = "arm,gic-v3"; + ranges; + #interrupt-cells = <0x03>; + reg = <0x00 0xfe600000 0x00 0x10000 0x00 0xfe680000 0x00 0x100000>; + phandle = <0x01>; + interrupt-controller; + + msi-controller@fe640000 { + msi-controller; + compatible = "arm,gic-v3-its"; + reg = <0x00 0xfe640000 0x00 0x20000>; + phandle = <0x106>; + #msi-cells = <0x01>; + }; + + msi-controller@fe660000 { + msi-controller; + compatible = "arm,gic-v3-its"; + reg = <0x00 0xfe660000 0x00 0x20000>; + phandle = <0x1b6>; + #msi-cells = <0x01>; + }; }; - serial@feb90000 { - compatible = "rockchip,rk3588-uart\0snps,dw-apb-uart"; - reg = <0x00 0xfeb90000 0x00 0x100>; - interrupts = <0x00 0x151 0x04>; - clocks = <0x02 0xcb 0x02 0xb0>; - clock-names = "baudclk\0apb_pclk"; - reg-shift = <0x02>; - reg-io-width = <0x04>; - dmas = <0xf1 0x0d 0xf1 0x0e>; + ethernet@fe1c0000 { + power-domains = <0x60 0x21>; pinctrl-names = "default"; - pinctrl-0 = <0x165>; + phy-mode = "rgmii-rxid"; + snps,mixed-burst; + snps,mtl-rx-config = <0x10b>; + snps,reset-active-low; + pinctrl-0 = <0x10e 0x10f 0x110 0x111 0x112>; + clock-names = "stmmaceth\0clk_mac_ref\0pclk_mac\0aclk_mac\0ptp_ref"; + snps,mtl-tx-config = <0x10c>; + local-mac-address = [de 2f 1a d4 a9 85]; + resets = <0x02 0x20b>; + interrupts = <0x00 0xea 0x04 0x00 0xe9 0x04>; + clocks = <0x02 0x144 0x02 0x145 0x02 0x168 0x02 0x16d 0x02 0x143>; + clock_in_out = "output"; + snps,tso; + compatible = "rockchip,rk3588-gmac\0snps,dwmac-4.20a"; status = "okay"; - phandle = <0x2ce>; - }; + rockchip,grf = <0xc8>; + interrupt-names = "macirq\0eth_wake_irq"; + snps,reset-gpio = <0x10d 0x08 0x01>; + reg = <0x00 0xfe1c0000 0x00 0x10000>; + rockchip,php_grf = <0x76>; + phandle = <0x109>; + phy-handle = <0x113>; + reset-names = "stmmaceth"; + tx_delay = <0x40>; + snps,axi-config = <0x10a>; + snps,reset-delays-us = <0x00 0x4e20 0x186a0>; - serial@feba0000 { - compatible = "rockchip,rk3588-uart\0snps,dw-apb-uart"; - reg = <0x00 0xfeba0000 0x00 0x100>; - interrupts = <0x00 0x152 0x04>; - clocks = <0x02 0xcf 0x02 0xb1>; - clock-names = "baudclk\0apb_pclk"; - reg-shift = <0x02>; - reg-io-width = <0x04>; - dmas = <0xf2 0x07 0xf2 0x08>; - pinctrl-names = "default"; - pinctrl-0 = <0x166>; - status = "disabled"; - phandle = <0x2cf>; - }; + mdio { + #address-cells = <0x01>; + #size-cells = <0x00>; + compatible = "snps,dwmac-mdio"; + phandle = <0x28f>; - serial@febb0000 { - compatible = "rockchip,rk3588-uart\0snps,dw-apb-uart"; - reg = <0x00 0xfebb0000 0x00 0x100>; - interrupts = <0x00 0x153 0x04>; - clocks = <0x02 0xd3 0x02 0xb2>; - clock-names = "baudclk\0apb_pclk"; - reg-shift = <0x02>; - reg-io-width = <0x04>; - dmas = <0xf2 0x09 0xf2 0x0a>; - pinctrl-names = "default"; - pinctrl-0 = <0x167>; - status = "disabled"; - phandle = <0x2d0>; - }; + phy@1 { + compatible = "ethernet-phy-ieee802.3-c22"; + reg = <0x01>; + phandle = <0x113>; + }; + }; - serial@febc0000 { - compatible = "rockchip,rk3588-uart\0snps,dw-apb-uart"; - reg = <0x00 0xfebc0000 0x00 0x100>; - interrupts = <0x00 0x154 0x04>; - clocks = <0x02 0xd7 0x02 0xb3>; - clock-names = "baudclk\0apb_pclk"; - reg-shift = <0x02>; - reg-io-width = <0x04>; - dmas = <0xf2 0x0b 0xf2 0x0c>; - pinctrl-names = "default"; - pinctrl-0 = <0x168>; - status = "disabled"; - phandle = <0x2d1>; + tx-queues-config { + phandle = <0x10c>; + snps,tx-queues-to-use = <0x01>; + + queue0 { + }; + }; + + stmmac-axi-config { + snps,wr_osr_lmt = <0x04>; + phandle = <0x10a>; + snps,blen = <0x00 0x00 0x00 0x00 0x10 0x08 0x04>; + snps,rd_osr_lmt = <0x08>; + }; + + rx-queues-config { + snps,rx-queues-to-use = <0x01>; + phandle = <0x10b>; + + queue0 { + }; + }; }; - pwm@febd0000 { - compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; - reg = <0x00 0xfebd0000 0x00 0x10>; - interrupts = <0x00 0x15a 0x04>; - #pwm-cells = <0x03>; - pinctrl-names = "active"; - pinctrl-0 = <0x169>; - clocks = <0x02 0x54 0x02 0x53>; - clock-names = "pwm\0pclk"; + pcie-essd { + regulator-max-microvolt = <0x2625a0>; + enable-active-high; + regulator-min-microvolt = <0x2625a0>; + regulator-name = "pcie_essd"; + startup-delay-us = <0x1388>; + compatible = "regulator-fixed"; status = "disabled"; - phandle = <0x2d2>; + phandle = <0x1ba>; + vin-supply = <0x1cd>; + gpios = <0x181 0x0f 0x00>; }; - pwm@febd0010 { - compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; - reg = <0x00 0xfebd0010 0x00 0x10>; - interrupts = <0x00 0x15a 0x04>; - #pwm-cells = <0x03>; - pinctrl-names = "active"; - pinctrl-0 = <0x16a>; - clocks = <0x02 0x54 0x02 0x53>; - clock-names = "pwm\0pclk"; + iommu@fdab9000 { + clock-names = "aclk0\0aclk1\0aclk2\0iface0\0iface1\0iface2"; + interrupts = <0x00 0x6e 0x04 0x00 0x6f 0x04 0x00 0x70 0x04>; + clocks = <0x02 0x12d 0x02 0x122 0x02 0x124 0x02 0x12e 0x02 0x123 0x02 0x125>; + #iommu-cells = <0x00>; + compatible = "rockchip,iommu-v2"; status = "okay"; - phandle = <0x1ed>; + interrupt-names = "npu0_mmu\0npu1_mmu\0npu2_mmu"; + reg = <0x00 0xfdab9000 0x00 0x100 0x00 0xfdaba000 0x00 0x100 0x00 0xfdaca000 0x00 0x100 0x00 0xfdada000 0x00 0x100>; + phandle = <0xb2>; }; - pwm@febd0020 { - compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; - reg = <0x00 0xfebd0020 0x00 0x10>; - interrupts = <0x00 0x15a 0x04>; - #pwm-cells = <0x03>; - pinctrl-names = "active"; - pinctrl-0 = <0x16b>; - clocks = <0x02 0x54 0x02 0x53>; - clock-names = "pwm\0pclk"; - status = "disabled"; - phandle = <0x2d3>; - }; + otp@fecc0000 { + #address-cells = <0x01>; + clock-names = "otpc\0apb\0arb\0phy"; + resets = <0x02 0x12a 0x02 0x129 0x02 0x12b>; + clocks = <0x02 0x96 0x02 0x95 0x02 0x97 0x02 0x99>; + #size-cells = <0x01>; + compatible = "rockchip,rk3588-otp"; + reg = <0x00 0xfecc0000 0x00 0x400>; + phandle = <0x2e7>; + reset-names = "otpc\0apb\0arb"; - pwm@febd0030 { - compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; - reg = <0x00 0xfebd0030 0x00 0x10>; - interrupts = <0x00 0x15a 0x04 0x00 0x15b 0x04>; - #pwm-cells = <0x03>; - pinctrl-names = "active"; - pinctrl-0 = <0x16c>; - clocks = <0x02 0x54 0x02 0x53>; - clock-names = "pwm\0pclk"; - status = "disabled"; - phandle = <0x2d4>; - }; + id@7 { + reg = <0x07 0x10>; + phandle = <0x2a>; + }; - pwm@febe0000 { - compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; - reg = <0x00 0xfebe0000 0x00 0x10>; - interrupts = <0x00 0x15c 0x04>; - #pwm-cells = <0x03>; - pinctrl-names = "active"; - pinctrl-0 = <0x16d>; - clocks = <0x02 0x57 0x02 0x56>; - clock-names = "pwm\0pclk"; - status = "disabled"; - phandle = <0x2d5>; - }; + cpul-opp-info@3d { + reg = <0x3d 0x06>; + phandle = <0x20>; + }; - pwm@febe0010 { - compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; - reg = <0x00 0xfebe0010 0x00 0x10>; - interrupts = <0x00 0x15c 0x04>; - #pwm-cells = <0x03>; - pinctrl-names = "active"; - pinctrl-0 = <0x16e>; - clocks = <0x02 0x57 0x02 0x56>; - clock-names = "pwm\0pclk"; - status = "disabled"; - phandle = <0x2d6>; - }; + cpub1-leakage@18 { + reg = <0x18 0x01>; + phandle = <0x27>; + }; - pwm@febe0020 { - compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; - reg = <0x00 0xfebe0020 0x00 0x10>; - interrupts = <0x00 0x15c 0x04>; - #pwm-cells = <0x03>; - pinctrl-names = "active"; - pinctrl-0 = <0x16f>; - clocks = <0x02 0x57 0x02 0x56>; - clock-names = "pwm\0pclk"; - status = "disabled"; - phandle = <0x2d7>; - }; + vop-opp-info@61 { + reg = <0x61 0x06>; + phandle = <0x2e8>; + }; - pwm@febe0030 { - compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; - reg = <0x00 0xfebe0030 0x00 0x10>; - interrupts = <0x00 0x15c 0x04 0x00 0x15d 0x04>; - #pwm-cells = <0x03>; - pinctrl-names = "active"; - pinctrl-0 = <0x170>; - clocks = <0x02 0x57 0x02 0x56>; - clock-names = "pwm\0pclk"; - status = "disabled"; - phandle = <0x2d8>; - }; + cpul-leakage@19 { + reg = <0x19 0x01>; + phandle = <0x1f>; + }; - pwm@febf0000 { - compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; - reg = <0x00 0xfebf0000 0x00 0x10>; - interrupts = <0x00 0x15e 0x04>; - #pwm-cells = <0x03>; - pinctrl-names = "active"; - pinctrl-0 = <0x171>; - clocks = <0x02 0x5a 0x02 0x59>; - clock-names = "pwm\0pclk"; - status = "disabled"; - phandle = <0x2d9>; + codec-leakage@29 { + reg = <0x29 0x01>; + phandle = <0xc6>; + }; + + cpu-version@1c { + bits = <0x03 0x03>; + reg = <0x1c 0x01>; + phandle = <0x2b>; + }; + + cpub0-leakage@17 { + reg = <0x17 0x01>; + phandle = <0x24>; + }; + + log-leakage@1a { + reg = <0x1a 0x01>; + phandle = <0x44>; + }; + + cpu-code@2 { + reg = <0x02 0x02>; + phandle = <0x2c>; + }; + + package-serial-number-low@6 { + bits = <0x05 0x03>; + reg = <0x06 0x01>; + phandle = <0xd4>; + }; + + npu-opp-info@55 { + reg = <0x55 0x06>; + phandle = <0xb5>; + }; + + package-serial-number-high@5 { + bits = <0x00 0x01>; + reg = <0x05 0x01>; + phandle = <0xd5>; + }; + + cpub01-opp-info@43 { + reg = <0x43 0x06>; + phandle = <0x25>; + }; + + dmc-opp-info@5b { + reg = <0x5b 0x06>; + phandle = <0x45>; + }; + + npu-leakage@28 { + reg = <0x28 0x01>; + phandle = <0xb4>; + }; + + gpu-leakage@1b { + reg = <0x1b 0x01>; + phandle = <0x63>; + }; + + specification-serial-number@6 { + bits = <0x00 0x05>; + reg = <0x06 0x01>; + phandle = <0x21>; + }; + + venc-opp-info@67 { + reg = <0x67 0x06>; + phandle = <0xc7>; + }; + + gpu-opp-info@4f { + reg = <0x4f 0x06>; + phandle = <0x64>; + }; + + cpub23-opp-info@49 { + reg = <0x49 0x06>; + phandle = <0x28>; + }; }; - pwm@febf0010 { - compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; - reg = <0x00 0xfebf0010 0x00 0x10>; - interrupts = <0x00 0x15e 0x04>; - #pwm-cells = <0x03>; - pinctrl-names = "active"; - pinctrl-0 = <0x172>; - clocks = <0x02 0x5a 0x02 0x59>; - clock-names = "pwm\0pclk"; - status = "disabled"; - phandle = <0x2da>; + i2s@fddf0000 { + power-domains = <0x60 0x1a>; + rockchip,always-on; + clock-names = "mclk_tx\0mclk_rx\0hclk"; + assigned-clocks = <0x02 0x243>; + assigned-clock-parents = <0x02 0x07>; + resets = <0x02 0x3e8>; + interrupts = <0x00 0xb9 0x04>; + clocks = <0x02 0x246 0x02 0x246 0x02 0x248>; + dma-names = "tx"; + #sound-dai-cells = <0x00>; + compatible = "rockchip,rk3588-i2s-tdm"; + rockchip,playback-only; + status = "okay"; + reg = <0x00 0xfddf0000 0x00 0x1000>; + phandle = <0x1d3>; + dmas = <0xf2 0x02>; + reset-names = "tx-m"; + rockchip,hdmi-path; }; - pwm@febf0020 { - compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; - reg = <0x00 0xfebf0020 0x00 0x10>; - interrupts = <0x00 0x15e 0x04>; - #pwm-cells = <0x03>; - pinctrl-names = "active"; - pinctrl-0 = <0x173>; - clocks = <0x02 0x5a 0x02 0x59>; - clock-names = "pwm\0pclk"; - status = "disabled"; - phandle = <0x2db>; + dma-controller@fea10000 { + clock-names = "apb_pclk"; + interrupts = <0x00 0x56 0x04 0x00 0x57 0x04>; + clocks = <0x02 0x78>; + arm,pl330-periph-burst; + compatible = "arm,pl330\0arm,primecell"; + reg = <0x00 0xfea10000 0x00 0x4000>; + phandle = <0x7c>; + #dma-cells = <0x01>; }; - pwm@febf0030 { - compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; - reg = <0x00 0xfebf0030 0x00 0x10>; - interrupts = <0x00 0x15e 0x04 0x00 0x15f 0x04>; - #pwm-cells = <0x03>; + pwm@febd0000 { pinctrl-names = "active"; - pinctrl-0 = <0x174>; - clocks = <0x02 0x5a 0x02 0x59>; + pinctrl-0 = <0x169>; clock-names = "pwm\0pclk"; + interrupts = <0x00 0x15a 0x04>; + clocks = <0x02 0x54 0x02 0x53>; + #pwm-cells = <0x03>; + compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; status = "disabled"; - phandle = <0x2dc>; + reg = <0x00 0xfebd0000 0x00 0x10>; + phandle = <0x2d2>; }; - tsadc@fec00000 { - compatible = "rockchip,rk3588-tsadc"; - reg = <0x00 0xfec00000 0x00 0x400>; - interrupts = <0x00 0x18d 0x04>; - clocks = <0x02 0xaa 0x02 0xa9>; - clock-names = "tsadc\0apb_pclk"; - assigned-clocks = <0x02 0xaa>; - assigned-clock-rates = <0x1e8480>; - resets = <0x02 0xc1 0x02 0xc0>; - reset-names = "tsadc\0tsadc-apb"; - #thermal-sensor-cells = <0x01>; - rockchip,hw-tshut-temp = <0x1d4c0>; - rockchip,hw-tshut-mode = <0x00>; - rockchip,hw-tshut-polarity = <0x00>; - pinctrl-names = "gpio\0otpout"; - pinctrl-0 = <0x175>; - pinctrl-1 = <0x176>; - status = "okay"; - phandle = <0x5d>; - }; - - saradc@fec10000 { - compatible = "rockchip,rk3588-saradc"; - reg = <0x00 0xfec10000 0x00 0x10000>; - interrupts = <0x00 0x18e 0x04>; - #io-channel-cells = <0x01>; - clocks = <0x02 0x9d 0x02 0x9c>; - clock-names = "saradc\0apb_pclk"; - resets = <0x02 0xbe>; - reset-names = "saradc-apb"; + rkvenc-ccu { + compatible = "rockchip,rkv-encoder-v2-ccu"; status = "okay"; - vref-supply = <0x177>; - phandle = <0x1d9>; - }; - - mailbox@fec60000 { - compatible = "rockchip,rk3588-mailbox\0rockchip,rk3368-mailbox"; - reg = <0x00 0xfec60000 0x00 0x200>; - interrupts = <0x00 0x3d 0x04 0x00 0x3e 0x04 0x00 0x3f 0x04 0x00 0x40 0x04>; - clocks = <0x02 0x4c>; - clock-names = "pclk_mailbox"; - #mbox-cells = <0x01>; - status = "disabled"; - phandle = <0x2dd>; - }; - - mailbox@fec70000 { - compatible = "rockchip,rk3588-mailbox\0rockchip,rk3368-mailbox"; - reg = <0x00 0xfec70000 0x00 0x200>; - interrupts = <0x00 0x45 0x04 0x00 0x46 0x04 0x00 0x47 0x04 0x00 0x48 0x04>; - clocks = <0x02 0x4d>; - clock-names = "pclk_mailbox"; - #mbox-cells = <0x01>; - status = "disabled"; - phandle = <0x2de>; + phandle = <0xc3>; }; - i2c@fec80000 { - compatible = "rockchip,rk3588-i2c\0rockchip,rk3399-i2c"; - reg = <0x00 0xfec80000 0x00 0x1000>; - clocks = <0x02 0x92 0x02 0x8a>; - clock-names = "i2c\0pclk"; - interrupts = <0x00 0x143 0x04>; - pinctrl-names = "default"; - pinctrl-0 = <0x178>; - resets = <0x02 0xb5 0x02 0xad>; - reset-names = "i2c\0apb"; - #address-cells = <0x01>; - #size-cells = <0x00>; - status = "okay"; - phandle = <0x2df>; - - es8388@11 { - status = "okay"; - #sound-dai-cells = <0x00>; - compatible = "everest,es8388\0everest,es8323"; - reg = <0x11>; - clocks = <0x179>; - clock-names = "mclk"; - assigned-clocks = <0x179>; - assigned-clock-rates = <0xbb8000>; - pinctrl-names = "default"; - pinctrl-0 = <0x17a>; - phandle = <0x1db>; - }; + syscon@fd58c000 { + compatible = "rockchip,rk3588-sys-grf\0syscon\0simple-mfd"; + reg = <0x00 0xfd58c000 0x00 0x1000>; + phandle = <0xc8>; - fusb302@22 { - compatible = "fcs,fusb302"; - reg = <0x22>; - interrupt-parent = <0x7b>; - interrupts = <0x1b 0x08>; + rgb { pinctrl-names = "default"; - pinctrl-0 = <0x17b>; - vbus-supply = <0x17c>; + pinctrl-0 = <0x71>; + compatible = "rockchip,rk3588-rgb"; status = "disabled"; - phandle = <0x2e0>; + phandle = <0x25c>; ports { #address-cells = <0x01>; #size-cells = <0x00>; port@0 { - reg = <0x00>; - - endpoint@0 { - remote-endpoint = <0x17d>; - phandle = <0x68>; - }; - }; - }; - - connector { - compatible = "usb-c-connector"; - label = "USB-C"; - data-role = "dual"; - power-role = "dual"; - try-power-role = "sink"; - op-sink-microwatt = <0xf4240>; - sink-pdos = <0x4019064>; - source-pdos = <0x401912c>; - phandle = <0x2e1>; - - altmodes { - #address-cells = <0x01>; - #size-cells = <0x00>; - - altmode@0 { - reg = <0x00>; - svid = <0xff01>; - vdo = <0xffffffff>; - }; - }; - - ports { #address-cells = <0x01>; #size-cells = <0x00>; + reg = <0x00>; - port@0 { - reg = <0x00>; - - endpoint { - remote-endpoint = <0x17e>; - phandle = <0x18e>; - }; - }; - - port@1 { - reg = <0x01>; - - endpoint { - remote-endpoint = <0x17f>; - phandle = <0x18f>; - }; + endpoint@2 { + remote-endpoint = <0x3d>; + status = "disabled"; + reg = <0x02>; + phandle = <0xf0>; }; }; }; }; - - XC7160b@1b { - compatible = "firefly,xc7160"; - reg = <0x1b>; - clocks = <0x02 0x100>; - clock-names = "xvclk"; - pinctrl-names = "default"; - pinctrl-0 = <0x180>; - power-domains = <0x60 0x1b>; - power-gpios = <0x181 0x1d 0x01>; - reset-gpios = <0x182 0x05 0x00>; - pwdn-gpios = <0xfe 0x04 0x00>; - firefly,clkout-enabled-index = <0x00>; - rockchip,camera-module-index = <0x00>; - rockchip,camera-module-facing = "back"; - rockchip,camera-module-name = "NC"; - rockchip,camera-module-lens-name = "NC"; - phandle = <0x2e2>; - - port { - - endpoint { - remote-endpoint = <0x183>; - data-lanes = <0x01 0x02 0x03 0x04>; - phandle = <0x31>; - }; - }; - }; - - imx415@37 { - compatible = "sony,imx415"; - reg = <0x37>; - clocks = <0x02 0x100>; - clock-names = "xvclk"; - pinctrl-names = "default"; - pinctrl-0 = <0x180>; - power-domains = <0x60 0x1b>; - power-gpios = <0x181 0x1d 0x00>; - reset-gpios = <0x182 0x05 0x01>; - firefly,clkout-enabled-index = <0x00>; - rockchip,camera-module-index = <0x00>; - rockchip,camera-module-facing = "back"; - rockchip,camera-module-name = "CMK-OT2022-PX1"; - rockchip,camera-module-lens-name = "IR0147-50IRC-8M-F20"; - phandle = <0x2e3>; - - port { - - endpoint { - remote-endpoint = <0x184>; - data-lanes = <0x01 0x02 0x03 0x04>; - phandle = <0x32>; - }; - }; - }; }; - i2c@fec90000 { - compatible = "rockchip,rk3588-i2c\0rockchip,rk3399-i2c"; - reg = <0x00 0xfec90000 0x00 0x1000>; - clocks = <0x02 0x93 0x02 0x8b>; - clock-names = "i2c\0pclk"; - interrupts = <0x00 0x144 0x04>; - pinctrl-names = "default"; - pinctrl-0 = <0x185>; - resets = <0x02 0xb6 0x02 0xae>; - reset-names = "i2c\0apb"; + spi@fe2b0000 { #address-cells = <0x01>; + clock-names = "clk_sfc\0hclk_sfc"; + assigned-clocks = <0x02 0x13d>; + assigned-clock-rates = <0x5f5e100>; + interrupts = <0x00 0xce 0x04>; + clocks = <0x02 0x13d 0x02 0x13e>; #size-cells = <0x00>; + compatible = "rockchip,sfc"; status = "disabled"; - phandle = <0x2e4>; + reg = <0x00 0xfe2b0000 0x00 0x4000>; + phandle = <0x292>; }; - i2c@feca0000 { - compatible = "rockchip,rk3588-i2c\0rockchip,rk3399-i2c"; - reg = <0x00 0xfeca0000 0x00 0x1000>; - clocks = <0x02 0x94 0x02 0x8c>; - clock-names = "i2c\0pclk"; - interrupts = <0x00 0x145 0x04>; - pinctrl-names = "default"; - pinctrl-0 = <0x186>; - resets = <0x02 0xb7 0x02 0xaf>; - reset-names = "i2c\0apb"; - #address-cells = <0x01>; - #size-cells = <0x00>; - status = "disabled"; - phandle = <0x2e5>; + qos@fdf82200 { + compatible = "syscon"; + reg = <0x00 0xfdf82200 0x00 0x20>; + phandle = <0x9e>; }; - spi@fecb0000 { - compatible = "rockchip,rk3066-spi"; - reg = <0x00 0xfecb0000 0x00 0x1000>; - interrupts = <0x00 0x14a 0x04>; - #address-cells = <0x01>; - #size-cells = <0x00>; - clocks = <0x02 0xa7 0x02 0xa2>; - clock-names = "spiclk\0apb_pclk"; - dmas = <0xf2 0x0d 0xf2 0x0e>; - dma-names = "tx\0rx"; - pinctrl-names = "default"; - pinctrl-0 = <0x187 0x188 0x189>; - num-cs = <0x02>; - status = "disabled"; - phandle = <0x2e6>; + mmc@fe2c0000 { + power-domains = <0x60 0x28>; + fifo-depth = <0x100>; + pinctrl-names = "default"; + pinctrl-0 = <0x114 0x115 0x116 0x117>; + clock-names = "biu\0ciu\0ciu-drive\0ciu-sample"; + cap-sd-highspeed; + vqmmc-supply = <0x118>; + no-mmc; + bus-width = <0x04>; + no-sdio; + interrupts = <0x00 0xcb 0x04>; + clocks = <0x0e 0x17 0x0e 0x09 0x02 0x2c2 0x02 0x2c3>; + compatible = "rockchip,rk3588-dw-mshc\0rockchip,rk3288-dw-mshc"; + status = "okay"; + disable-wp; + reg = <0x00 0xfe2c0000 0x00 0x4000>; + phandle = <0x293>; + sd-uhs-sdr104; + max-frequency = <0x8f0d180>; + cap-mmc-highspeed; }; - otp@fecc0000 { - compatible = "rockchip,rk3588-otp"; - reg = <0x00 0xfecc0000 0x00 0x400>; - #address-cells = <0x01>; - #size-cells = <0x01>; - clocks = <0x02 0x96 0x02 0x95 0x02 0x97 0x02 0x99>; - clock-names = "otpc\0apb\0arb\0phy"; - resets = <0x02 0x12a 0x02 0x129 0x02 0x12b>; - reset-names = "otpc\0apb\0arb"; - phandle = <0x2e7>; + serial@feb80000 { + reg-io-width = <0x04>; + pinctrl-names = "default"; + pinctrl-0 = <0x164>; + clock-names = "baudclk\0apb_pclk"; + interrupts = <0x00 0x150 0x04>; + clocks = <0x02 0xc7 0x02 0xaf>; + compatible = "rockchip,rk3588-uart\0snps,dw-apb-uart"; + status = "disabled"; + reg = <0x00 0xfeb80000 0x00 0x100>; + phandle = <0x2cd>; + dmas = <0xf1 0x0b 0xf1 0x0c>; + reg-shift = <0x02>; + }; - cpu-code@2 { - reg = <0x02 0x02>; - phandle = <0x2c>; - }; + phy@fee10000 { + rockchip,pipe-grf = <0x76>; + clock-names = "refclk\0apbclk\0phpclk"; + assigned-clocks = <0x02 0x2be>; + assigned-clock-rates = <0x5f5e100>; + resets = <0x02 0x20006 0x02 0x4d7>; + clocks = <0x02 0x2be 0x02 0x186 0x02 0x166>; + #phy-cells = <0x01>; + compatible = "rockchip,rk3588-naneng-combphy"; + status = "disabled"; + rockchip,pipe-phy-grf = <0x1cb>; + reg = <0x00 0xfee10000 0x00 0x100>; + phandle = <0x1bc>; + reset-names = "combphy-apb\0combphy"; + rockchip,pcie1ln-sel-bits = <0x100 0x00 0x00 0x00>; + }; - package-serial-number-high@5 { - reg = <0x05 0x01>; - bits = <0x00 0x01>; - phandle = <0xd5>; - }; + can@fea60000 { + pinctrl-names = "default"; + pinctrl-0 = <0x146>; + clock-names = "baudclk\0apb_pclk"; + assigned-clocks = <0x02 0x72>; + assigned-clock-rates = <0xbebc200>; + resets = <0x02 0xbb 0x02 0xba>; + interrupts = <0x00 0x156 0x04>; + clocks = <0x02 0x72 0x02 0x71>; + compatible = "rockchip,can-2.0"; + status = "okay"; + tx-fifo-depth = <0x01>; + rx-fifo-depth = <0x06>; + reg = <0x00 0xfea60000 0x00 0x1000>; + phandle = <0x2a1>; + reset-names = "can\0can-apb"; + }; - package-serial-number-low@6 { - reg = <0x06 0x01>; - bits = <0x05 0x03>; - phandle = <0xd4>; - }; + pdm@fe4c0000 { + power-domains = <0x60 0x26>; + pinctrl-names = "default\0idle\0clk"; + pinctrl-2 = <0x140 0x141>; + pinctrl-0 = <0x13b 0x13c 0x13d 0x13e>; + clock-names = "pdm_clk\0pdm_hclk"; + assigned-clocks = <0x02 0x3b>; + assigned-clock-parents = <0x02 0x05>; + clocks = <0x02 0x3b 0x02 0x3a>; + dma-names = "rx"; + #sound-dai-cells = <0x00>; + compatible = "rockchip,rk3588-pdm"; + pinctrl-1 = <0x13f>; + status = "disabled"; + reg = <0x00 0xfe4c0000 0x00 0x1000>; + phandle = <0x29b>; + dmas = <0xf1 0x04>; + }; - specification-serial-number@6 { - reg = <0x06 0x01>; - bits = <0x00 0x05>; - phandle = <0x21>; - }; + rkcif-mipi-lvds3-sditf-vir2 { + compatible = "rockchip,rkcif-sditf"; + status = "disabled"; + rockchip,cif = <0x57>; + phandle = <0x239>; + }; - id@7 { - reg = <0x07 0x10>; - phandle = <0x2a>; - }; + qos@fdf66e00 { + compatible = "syscon"; + reg = <0x00 0xfdf66e00 0x00 0x20>; + phandle = <0x9a>; + }; - cpu-version@1c { - reg = <0x1c 0x01>; - bits = <0x03 0x03>; - phandle = <0x2b>; - }; + usb@fc800000 { + power-domains = <0x60 0x1f>; + phy-names = "usb2-phy"; + clock-names = "usbhost\0arbiter\0utmi\0alk_usb"; + companion = <0x6b>; + interrupts = <0x00 0xd7 0x04>; + clocks = <0x02 0x19d 0x02 0x19e 0x69 0x6a>; + compatible = "rockchip,rk3588-ehci\0generic-ehci"; + status = "okay"; + phys = <0x6c>; + reg = <0x00 0xfc800000 0x00 0x40000>; + phandle = <0x254>; + }; - cpub0-leakage@17 { - reg = <0x17 0x01>; - phandle = <0x24>; - }; + i2c@fd880000 { + pinctrl-names = "default"; + #address-cells = <0x01>; + pinctrl-0 = <0x77>; + clock-names = "i2c\0pclk"; + resets = <0x02 0xc0022 0x02 0xc0021>; + interrupts = <0x00 0x13d 0x04>; + clocks = <0x02 0x287 0x02 0x286>; + #size-cells = <0x00>; + compatible = "rockchip,rk3588-i2c\0rockchip,rk3399-i2c"; + status = "okay"; + reg = <0x00 0xfd880000 0x00 0x1000>; + phandle = <0x25f>; + reset-names = "i2c\0apb"; - cpub1-leakage@18 { - reg = <0x18 0x01>; - phandle = <0x27>; + hym8563@51 { + pinctrl-names = "default"; + clock-output-names = "hym8563"; + pinctrl-0 = <0x7a>; + wakeup-source; + interrupts = <0x08 0x08>; + #clock-cells = <0x00>; + interrupt-parent = <0x7b>; + clock-frequency = <0x8000>; + compatible = "haoyu,hym8563"; + status = "okay"; + reg = <0x51>; + phandle = <0x1e4>; }; - cpul-leakage@19 { - reg = <0x19 0x01>; - phandle = <0x1f>; - }; + rk8602@42 { + regulator-max-microvolt = <0x100590>; + regulator-boot-on; + rockchip,suspend-voltage-selector = <0x01>; + regulator-always-on; + regulator-min-microvolt = <0x86470>; + regulator-name = "vdd_cpu_big0_s0"; + regulator-ramp-delay = <0x8fc>; + compatible = "rockchip,rk8602"; + reg = <0x42>; + phandle = <0x18>; + vin-supply = <0x78>; + regulator-compatible = "rk860x-reg"; - log-leakage@1a { - reg = <0x1a 0x01>; - phandle = <0x44>; + regulator-state-mem { + regulator-off-in-suspend; + }; }; - gpu-leakage@1b { - reg = <0x1b 0x01>; - phandle = <0x63>; - }; + rk8603@43 { + regulator-max-microvolt = <0x100590>; + regulator-boot-on; + rockchip,suspend-voltage-selector = <0x01>; + regulator-always-on; + regulator-min-microvolt = <0x86470>; + regulator-name = "vdd_cpu_big1_s0"; + regulator-ramp-delay = <0x8fc>; + compatible = "rockchip,rk8603"; + reg = <0x43>; + phandle = <0x1c>; + vin-supply = <0x78>; + regulator-compatible = "rk860x-reg"; - npu-leakage@28 { - reg = <0x28 0x01>; - phandle = <0xb4>; + regulator-state-mem { + regulator-off-in-suspend; + }; }; - codec-leakage@29 { - reg = <0x29 0x01>; - phandle = <0xc6>; + pc9202@3c { + index = <0x00>; + compatible = "firefly,pc9202"; + status = "okay"; + wd-en-gpio = <0x79 0x15 0x00>; + driver-names = "wdt_core"; + reg = <0x3c>; }; + }; - cpul-opp-info@3d { - reg = <0x3d 0x06>; - phandle = <0x20>; - }; + rkcif-mipi-lvds3-sditf { + compatible = "rockchip,rkcif-sditf"; + status = "disabled"; + rockchip,cif = <0x57>; + phandle = <0x237>; + }; - cpub01-opp-info@43 { - reg = <0x43 0x06>; - phandle = <0x25>; - }; + serial@fd890000 { + reg-io-width = <0x04>; + pinctrl-names = "default"; + pinctrl-0 = <0x7d>; + clock-names = "baudclk\0apb_pclk"; + interrupts = <0x00 0x14b 0x04>; + clocks = <0x02 0x2ae 0x02 0x2af>; + compatible = "rockchip,rk3588-uart\0snps,dw-apb-uart"; + status = "disabled"; + reg = <0x00 0xfd890000 0x00 0x100>; + phandle = <0x260>; + dmas = <0x7c 0x06 0x7c 0x07>; + reg-shift = <0x02>; + }; - cpub23-opp-info@49 { - reg = <0x49 0x06>; - phandle = <0x28>; - }; + qos@fdf70000 { + compatible = "syscon"; + reg = <0x00 0xfdf70000 0x00 0x20>; + phandle = <0x85>; + }; - gpu-opp-info@4f { - reg = <0x4f 0x06>; - phandle = <0x64>; + gpu-opp-table { + rockchip,pvtm-offset = <0x1c>; + rockchip,pvtm-sample-time = <0x44c>; + rockchip,pvtm-hw = <0x04>; + nvmem-cells = <0x63 0x64 0x21>; + rockchip,low-temp = <0x2710>; + rockchip,pvtm-voltage-sel-hw = <0x00 0x31f 0x00 0x320 0x333 0x01 0x334 0x34c 0x02 0x34d 0x365 0x03 0x366 0x37e 0x04 0x37f 0x270f 0x05>; + rockchip,pvtm-thermal-zone = "gpu-thermal"; + rockchip,high-temp-max-freq = "\0\f5"; + rockchip,opp-clocks = <0x02 0x114>; + rockchip,pvtm-freq = "\0\f5"; + rockchip,pvtm-ref-temp = <0x19>; + low-volt-mem-read-margin = <0x04>; + volt-mem-read-margin = <0xd0bd8 0x01 0xbac48 0x02 0xa4cb8 0x03 0x78d98 0x04>; + compatible = "operating-points-v2"; + rockchip,low-temp-min-volt = <0xb71b0>; + rockchip,grf = <0x65>; + nvmem-cell-names = "leakage\0opp-info\0specification_serial_number"; + rockchip,pvtm-voltage-sel = <0x00 0x32f 0x00 0x330 0x343 0x01 0x344 0x35c 0x02 0x35d 0x375 0x03 0x376 0x38e 0x04 0x38f 0x270f 0x05>; + phandle = <0x61>; + rockchip,pvtm-temp-prop = <0xffffff79 0xffffff79>; + rockchip,temp-hysteresis = <0x1388>; + rockchip,high-temp = <0x14c08>; + rockchip,pvtm-pvtpll; + rockchip,supported-hw; + intermediate-threshold-freq = <0x61a80>; + rockchip,pvtm-volt = <0xb71b0>; + + opp-j-m-700000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; + opp-hz = <0x00 0x29b92700>; + opp-supported-hw = <0x06 0xffff>; }; - npu-opp-info@55 { - reg = <0x55 0x06>; - phandle = <0xb5>; + opp-300000000 { + opp-microvolt = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + opp-hz = <0x00 0x11e1a300>; + opp-supported-hw = <0xf9 0xffff>; }; - dmc-opp-info@5b { - reg = <0x5b 0x06>; - phandle = <0x45>; + opp-500000000 { + opp-microvolt = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + opp-hz = <0x00 0x1dcd6500>; + opp-supported-hw = <0xf9 0xffff>; }; - vop-opp-info@61 { - reg = <0x61 0x06>; - phandle = <0x2e8>; + opp-m-800000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; + opp-hz = <0x00 0x2faf0800>; + opp-supported-hw = <0x02 0xffff>; }; - venc-opp-info@67 { - reg = <0x67 0x06>; - phandle = <0xc7>; + opp-j-850000000 { + opp-microvolt = <0xc042c 0xc042c 0xcf850 0xc042c 0xc042c 0xcf850>; + opp-microvolt-L4 = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; + opp-microvolt-L2 = <0xba284 0xba284 0xcf850 0xba284 0xba284 0xcf850>; + opp-hz = <0x00 0x32a9f880>; + opp-supported-hw = <0x04 0xffff>; + opp-microvolt-L5 = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; + opp-microvolt-L3 = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; + opp-microvolt-L1 = <0xbd358 0xbd358 0xcf850 0xbd358 0xbd358 0xcf850>; }; - }; - mailbox@fece0000 { - compatible = "rockchip,rk3588-mailbox\0rockchip,rk3368-mailbox"; - reg = <0x00 0xfece0000 0x00 0x200>; - interrupts = <0x00 0x4d 0x04 0x00 0x4e 0x04 0x00 0x4f 0x04 0x00 0x50 0x04>; - clocks = <0x02 0x4e>; - clock-names = "pclk_mailbox"; - #mbox-cells = <0x01>; - status = "disabled"; - phandle = <0x2e9>; - }; + opp-j-m-400000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; + opp-hz = <0x00 0x17d78400>; + opp-supported-hw = <0x06 0xffff>; + }; - dma-controller@fed10000 { - compatible = "arm,pl330\0arm,primecell"; - reg = <0x00 0xfed10000 0x00 0x4000>; - interrupts = <0x00 0x5a 0x04 0x00 0x5b 0x04>; - clocks = <0x02 0x7a>; - clock-names = "apb_pclk"; - #dma-cells = <0x01>; - arm,pl330-periph-burst; - phandle = <0xf2>; - }; + opp-700000000 { + opp-microvolt = <0xaae60 0xaae60 0xcf850 0xaae60 0xaae60 0xcf850>; + opp-microvolt-L4 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + opp-microvolt-L2 = <0xa7d8c 0xa7d8c 0xcf850 0xa7d8c 0xa7d8c 0xcf850>; + opp-hz = <0x00 0x29b92700>; + opp-supported-hw = <0xf9 0xffff>; + opp-microvolt-L5 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + opp-microvolt-L3 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + }; - phy@fed60000 { - compatible = "rockchip,rk3588-hdptx-phy"; - reg = <0x00 0xfed60000 0x00 0x2000>; - clocks = <0x02 0x2b5 0x02 0x267>; - clock-names = "ref\0apb"; - resets = <0x02 0x485 0x02 0xc003b 0x02 0xc003c 0x02 0xc003d>; - reset-names = "apb\0init\0cmn\0lane"; - rockchip,grf = <0x18a>; - #phy-cells = <0x00>; - status = "disabled"; - phandle = <0x101>; - }; + opp-j-m-600000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; + opp-hz = <0x00 0x23c34600>; + opp-supported-hw = <0x06 0xffff>; + }; - hdmiphy@fed60000 { - compatible = "rockchip,rk3588-hdptx-phy-hdmi"; - reg = <0x00 0xfed60000 0x00 0x2000>; - clocks = <0x02 0x2b5 0x02 0x267>; - clock-names = "ref\0apb"; - resets = <0x02 0x48e 0x02 0x485 0x02 0xc003b 0x02 0xc003c 0x02 0xc003d 0x02 0x48c 0x02 0x48d>; - reset-names = "phy\0apb\0init\0cmn\0lane\0ropll\0lcpll"; - rockchip,grf = <0x18a>; - #phy-cells = <0x00>; - status = "okay"; - phandle = <0xfd>; + opp-900000000 { + opp-microvolt = <0xc3500 0xc3500 0xcf850 0xc3500 0xc3500 0xcf850>; + opp-microvolt-L4 = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; + opp-microvolt-L2 = <0xbd358 0xbd358 0xcf850 0xbd358 0xbd358 0xcf850>; + opp-hz = <0x00 0x35a4e900>; + opp-supported-hw = <0xf9 0xffff>; + opp-microvolt-L5 = <0xb40dc 0xb40dc 0xcf850 0xb40dc 0xb40dc 0xcf850>; + opp-microvolt-L3 = <0xba284 0xba284 0xcf850 0xba284 0xba284 0xcf850>; + opp-microvolt-L1 = <0xc042c 0xc042c 0xcf850 0xc042c 0xc042c 0xcf850>; + }; - clk-port { - #clock-cells = <0x00>; - status = "okay"; - phandle = <0x35>; + opp-m-1000000000 { + opp-microvolt = <0xcf850 0xcf850 0xcf850 0xcf850 0xcf850 0xcf850>; + opp-microvolt-L4 = <0xc3500 0xc3500 0xcf850 0xc3500 0xc3500 0xcf850>; + opp-microvolt-L2 = <0xc96a8 0xc96a8 0xcf850 0xc96a8 0xc96a8 0xcf850>; + opp-hz = <0x00 0x3b9aca00>; + opp-supported-hw = <0x02 0xffff>; + opp-microvolt-L5 = <0xc042c 0xc042c 0xcf850 0xc042c 0xc042c 0xcf850>; + opp-microvolt-L3 = <0xc65d4 0xc65d4 0xcf850 0xc65d4 0xc65d4 0xcf850>; + opp-microvolt-L1 = <0xcc77c 0xcc77c 0xcf850 0xcc77c 0xcc77c 0xcf850>; }; - }; - phy@fed80000 { - compatible = "rockchip,rk3588-usbdp-phy"; - reg = <0x00 0xfed80000 0x00 0x10000>; - rockchip,u2phy-grf = <0x18b>; - rockchip,usb-grf = <0x74>; - rockchip,usbdpphy-grf = <0x18c>; - rockchip,vo-grf = <0xf5>; - clocks = <0x02 0x2b6 0x02 0x27f 0x02 0x269 0x18d>; - clock-names = "refclk\0immortal\0pclk\0utmi"; - resets = <0x02 0x28 0x02 0x29 0x02 0x2a 0x02 0x2b 0x02 0x482>; - reset-names = "init\0cmn\0lane\0pcs_apb\0pma_apb"; - status = "okay"; - orientation-switch; - svid = <0xff01>; - sbu1-dc-gpios = <0x10d 0x06 0x00>; - sbu2-dc-gpios = <0x10d 0x07 0x00>; - phandle = <0x2ea>; + opp-400000000 { + opp-microvolt = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + opp-hz = <0x00 0x17d78400>; + opp-supported-hw = <0xf9 0xffff>; + }; - dp-port { - #phy-cells = <0x00>; - status = "okay"; - phandle = <0xf6>; + opp-j-m-300000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; + opp-hz = <0x00 0x11e1a300>; + opp-supported-hw = <0x06 0xffff>; }; - u3-port { - #phy-cells = <0x00>; - status = "okay"; - phandle = <0x67>; + opp-600000000 { + opp-microvolt = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + opp-hz = <0x00 0x23c34600>; + opp-supported-hw = <0xf9 0xffff>; }; - port { - #address-cells = <0x01>; - #size-cells = <0x00>; + opp-m-900000000 { + opp-microvolt = <0xc3500 0xc3500 0xcf850 0xc3500 0xc3500 0xcf850>; + opp-microvolt-L4 = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; + opp-microvolt-L2 = <0xbd358 0xbd358 0xcf850 0xbd358 0xbd358 0xcf850>; + opp-hz = <0x00 0x35a4e900>; + opp-supported-hw = <0x02 0xffff>; + opp-microvolt-L5 = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; + opp-microvolt-L3 = <0xba284 0xba284 0xcf850 0xba284 0xba284 0xcf850>; + opp-microvolt-L1 = <0xc042c 0xc042c 0xcf850 0xc042c 0xc042c 0xcf850>; + }; - endpoint@0 { - reg = <0x00>; - remote-endpoint = <0x18e>; - phandle = <0x17e>; - }; + opp-1000000000 { + opp-microvolt = <0xcf850 0xcf850 0xcf850 0xcf850 0xcf850 0xcf850>; + opp-microvolt-L4 = <0xc3500 0xc3500 0xcf850 0xc3500 0xc3500 0xcf850>; + opp-microvolt-L2 = <0xc96a8 0xc96a8 0xcf850 0xc96a8 0xc96a8 0xcf850>; + opp-hz = <0x00 0x3b9aca00>; + opp-supported-hw = <0xf9 0xffff>; + opp-microvolt-L5 = <0xc042c 0xc042c 0xcf850 0xc042c 0xc042c 0xcf850>; + opp-microvolt-L3 = <0xc65d4 0xc65d4 0xcf850 0xc65d4 0xc65d4 0xcf850>; + opp-microvolt-L1 = <0xcc77c 0xcc77c 0xcf850 0xcc77c 0xcc77c 0xcf850>; + }; - endpoint@1 { - reg = <0x01>; - remote-endpoint = <0x18f>; - phandle = <0x17f>; - }; + opp-j-m-500000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; + opp-hz = <0x00 0x1dcd6500>; + opp-supported-hw = <0x06 0xffff>; }; - }; - phy@feda0000 { - compatible = "rockchip,rk3588-mipi-dcphy"; - reg = <0x00 0xfeda0000 0x00 0x10000>; - rockchip,grf = <0x190>; - clocks = <0x02 0x108 0x02 0x2b6>; - clock-names = "pclk\0ref"; - resets = <0x02 0xc0043 0x02 0x3e 0x02 0x3f 0x02 0xc0044>; - reset-names = "m_phy\0apb\0grf\0s_phy"; - #phy-cells = <0x00>; - status = "okay"; - phandle = <0x2f>; - }; - - phy@fedb0000 { - compatible = "rockchip,rk3588-mipi-dcphy"; - reg = <0x00 0xfedb0000 0x00 0x10000>; - rockchip,grf = <0x191>; - clocks = <0x02 0x109 0x02 0x2b6>; - clock-names = "pclk\0ref"; - resets = <0x02 0xc0045 0x02 0x43 0x02 0x44 0x02 0xc0046>; - reset-names = "m_phy\0apb\0grf\0s_phy"; - #phy-cells = <0x00>; - status = "okay"; - phandle = <0x30>; - }; - - csi2-dphy0-hw@fedc0000 { - compatible = "rockchip,rk3588-csi2-dphy-hw"; - reg = <0x00 0xfedc0000 0x00 0x8000>; - clocks = <0x02 0x10c>; - clock-names = "pclk"; - resets = <0x02 0x17 0x02 0x16>; - reset-names = "srst_csiphy0\0srst_p_csiphy0"; - rockchip,grf = <0x192>; - rockchip,sys_grf = <0xc8>; - status = "okay"; - phandle = <0x2d>; + opp-800000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; + opp-microvolt-L4 = <0xaae60 0xaae60 0xcf850 0xaae60 0xaae60 0xcf850>; + opp-microvolt-L2 = <0xb1008 0xb1008 0xcf850 0xb1008 0xb1008 0xcf850>; + opp-hz = <0x00 0x2faf0800>; + opp-supported-hw = <0xf9 0xffff>; + opp-microvolt-L5 = <0xaae60 0xaae60 0xcf850 0xaae60 0xaae60 0xcf850>; + opp-microvolt-L3 = <0xadf34 0xadf34 0xcf850 0xadf34 0xadf34 0xcf850>; + opp-microvolt-L1 = <0xb40dc 0xb40dc 0xcf850 0xb40dc 0xb40dc 0xcf850>; + }; }; csi2-dphy1-hw@fedc8000 { - compatible = "rockchip,rk3588-csi2-dphy-hw"; - reg = <0x00 0xfedc8000 0x00 0x8000>; - clocks = <0x02 0x10d>; clock-names = "pclk"; resets = <0x02 0x19 0x02 0x18>; - reset-names = "srst_csiphy1\0srst_p_csiphy1"; - rockchip,grf = <0x193>; - rockchip,sys_grf = <0xc8>; + clocks = <0x02 0x10d>; + compatible = "rockchip,rk3588-csi2-dphy-hw"; status = "okay"; + rockchip,grf = <0x193>; + reg = <0x00 0xfedc8000 0x00 0x8000>; phandle = <0x2e>; + reset-names = "srst_csiphy1\0srst_p_csiphy1"; + rockchip,sys_grf = <0xc8>; }; - phy@fee00000 { - compatible = "rockchip,rk3588-naneng-combphy"; - reg = <0x00 0xfee00000 0x00 0x100>; - #phy-cells = <0x01>; - clocks = <0x02 0x2bd 0x02 0x185 0x02 0x166>; - clock-names = "refclk\0apbclk\0phpclk"; - assigned-clocks = <0x02 0x2bd>; - assigned-clock-rates = <0x5f5e100>; - resets = <0x02 0x20005 0x02 0x4d6>; - reset-names = "combphy-apb\0combphy"; - rockchip,pipe-grf = <0x76>; - rockchip,pipe-phy-grf = <0x194>; - status = "okay"; - phandle = <0x108>; + hdcp@fde40000 { + power-domains = <0x60 0x19>; + clock-names = "aclk\0pclk\0hclk\0hclk_key\0aclk_trng\0pclk_trng"; + resets = <0x02 0x37f 0x02 0x37d 0x02 0x37c 0x02 0x37b 0x02 0x381>; + interrupts = <0x00 0x9f 0x04>; + clocks = <0x02 0x1ed 0x02 0x1ef 0x02 0x1ee 0x02 0x1ec 0x02 0x1f1 0x02 0x1f2>; + compatible = "rockchip,rk3588-hdcp"; + status = "disabled"; + reg = <0x00 0xfde40000 0x00 0x80>; + phandle = <0x285>; + reset-names = "hdcp\0h_hdcp\0a_hdcp\0hdcp_key\0trng"; + rockchip,vo-grf = <0xf5>; }; - phy@fee20000 { - compatible = "rockchip,rk3588-naneng-combphy"; - reg = <0x00 0xfee20000 0x00 0x100>; - #phy-cells = <0x01>; - clocks = <0x02 0x2bf 0x02 0x187 0x02 0x166>; - clock-names = "refclk\0apbclk\0phpclk"; - assigned-clocks = <0x02 0x2bf>; - assigned-clock-rates = <0x5f5e100>; - resets = <0x02 0x20007 0x02 0x4d8>; - reset-names = "combphy-apb\0combphy"; - rockchip,pipe-grf = <0x76>; - rockchip,pipe-phy-grf = <0x195>; - rockchip,pcie1ln-sel-bits = <0x100 0x01 0x01 0x00>; - status = "disabled"; - phandle = <0x70>; + iommu@fdbac800 { + power-domains = <0x60 0x15>; + clock-names = "aclk\0iface"; + interrupts = <0x00 0x7f 0x04>; + clocks = <0x02 0x1b2 0x02 0x1b3>; + #iommu-cells = <0x00>; + compatible = "rockchip,iommu-v2"; + status = "okay"; + interrupt-names = "irq_jpege3_mmu"; + reg = <0x00 0xfdbac800 0x00 0x40>; + phandle = <0xc0>; }; - sram@ff001000 { - compatible = "mmio-sram"; - reg = <0x00 0xff001000 0x00 0xef000>; - #address-cells = <0x01>; - #size-cells = <0x01>; - ranges = <0x00 0x00 0xff001000 0xef000>; - phandle = <0x2eb>; + qos@fdf40400 { + compatible = "syscon"; + reg = <0x00 0xfdf40400 0x00 0x20>; + phandle = <0xa2>; + }; - rkvdec-sram@0 { - reg = <0x00 0x78000>; - phandle = <0xcb>; - }; + rga@fdb70000 { + power-domains = <0x60 0x1e>; + iommus = <0xba>; + clock-names = "aclk_rga3_1\0hclk_rga3_1\0clk_rga3_1"; + interrupts = <0x00 0x73 0x04>; + clocks = <0x02 0x18a 0x02 0x189 0x02 0x18b>; + compatible = "rockchip,rga3_core1"; + status = "okay"; + interrupt-names = "rga3_core1_irq"; + reg = <0x00 0xfdb70000 0x00 0x1000>; + phandle = <0x26a>; + }; - rkvdec-sram@78000 { - reg = <0x78000 0x77000>; - phandle = <0xcd>; - }; + spi@feb00000 { + pinctrl-names = "default"; + #address-cells = <0x01>; + num-cs = <0x02>; + pinctrl-0 = <0x14e 0x14f 0x150>; + clock-names = "spiclk\0apb_pclk"; + interrupts = <0x00 0x146 0x04>; + clocks = <0x02 0xa3 0x02 0x9e>; + #size-cells = <0x00>; + dma-names = "tx\0rx"; + compatible = "rockchip,rk3066-spi"; + status = "disabled"; + reg = <0x00 0xfeb00000 0x00 0x1000>; + phandle = <0x2ab>; + dmas = <0x7c 0x0e 0x7c 0x0f>; }; - pinctrl { - compatible = "rockchip,rk3588-pinctrl"; - rockchip,grf = <0x196>; - #address-cells = <0x02>; + pcie@fe170000 { + #address-cells = <0x03>; + rockchip,pipe-grf = <0x76>; + phy-names = "pcie-phy"; + bus-range = <0x20 0x2f>; + clock-names = "aclk_mst\0aclk_slv\0aclk_dbi\0pclk\0aux\0pipe"; + reg-names = "pcie-apb\0pcie-dbi"; + num-ob-windows = <0x08>; + resets = <0x02 0x20f 0x02 0x21e>; + interrupts = <0x00 0xf3 0x04 0x00 0xf2 0x04 0x00 0xf1 0x04 0x00 0xf0 0x04 0x00 0xef 0x04>; + clocks = <0x02 0x150 0x02 0x155 0x02 0x14b 0x02 0x15b 0x02 0x160 0x02 0x2c4>; + interrupt-map = <0x00 0x00 0x00 0x01 0x1bb 0x00 0x00 0x00 0x00 0x02 0x1bb 0x01 0x00 0x00 0x00 0x03 0x1bb 0x02 0x00 0x00 0x00 0x04 0x1bb 0x03>; #size-cells = <0x02>; - ranges; - phandle = <0x197>; - - gpio@fd8a0000 { - compatible = "rockchip,gpio-bank"; - reg = <0x00 0xfd8a0000 0x00 0x100>; - interrupts = <0x00 0x115 0x04>; - clocks = <0x02 0x284 0x02 0x285>; - gpio-controller; - #gpio-cells = <0x02>; - gpio-ranges = <0x197 0x00 0x00 0x20>; - interrupt-controller; - #interrupt-cells = <0x02>; - phandle = <0x7b>; - }; + max-link-speed = <0x02>; + device_type = "pci"; + interrupt-map-mask = <0x00 0x00 0x00 0x07>; + num-lanes = <0x01>; + compatible = "rockchip,rk3588-pcie\0snps,dw-pcie"; + ranges = <0x800 0x00 0xf2000000 0x00 0xf2000000 0x00 0x100000 0x81000000 0x00 0xf2100000 0x00 0xf2100000 0x00 0x100000 0x82000000 0x00 0xf2200000 0x00 0xf2200000 0x00 0xe00000 0xc3000000 0x09 0x80000000 0x09 0x80000000 0x00 0x40000000>; + msi-map = <0x2000 0x106 0x2000 0x1000>; + #interrupt-cells = <0x01>; + status = "disabled"; + interrupt-names = "sys\0pmc\0msg\0legacy\0err"; + phys = <0x1bc 0x02>; + num-viewport = <0x04>; + reg = <0x00 0xfe170000 0x00 0x10000 0x0a 0x40800000 0x00 0x400000>; + linux,pci-domain = <0x02>; + phandle = <0x487>; + reset-names = "pcie\0periph"; + num-ib-windows = <0x08>; - gpio@fec20000 { - compatible = "rockchip,gpio-bank"; - reg = <0x00 0xfec20000 0x00 0x100>; - interrupts = <0x00 0x116 0x04>; - clocks = <0x02 0x7d 0x02 0x7e>; - gpio-controller; - #gpio-cells = <0x02>; - gpio-ranges = <0x197 0x00 0x20 0x20>; + legacy-interrupt-controller { + #address-cells = <0x00>; + interrupts = <0x00 0xf0 0x01>; + interrupt-parent = <0x01>; + #interrupt-cells = <0x01>; + phandle = <0x1bb>; interrupt-controller; - #interrupt-cells = <0x02>; - phandle = <0xfe>; }; + }; - gpio@fec30000 { - compatible = "rockchip,gpio-bank"; - reg = <0x00 0xfec30000 0x00 0x100>; - interrupts = <0x00 0x117 0x04>; - clocks = <0x02 0x7f 0x02 0x80>; - gpio-controller; - #gpio-cells = <0x02>; - gpio-ranges = <0x197 0x00 0x40 0x20>; - interrupt-controller; - #interrupt-cells = <0x02>; - phandle = <0x79>; - }; + i2s@fe470000 { + power-domains = <0x60 0x26>; + pinctrl-names = "default\0idle\0clk"; + pinctrl-2 = <0x11b 0x11c>; + pinctrl-0 = <0x11b 0x11c 0x11d 0x11e>; + clock-names = "mclk_tx\0mclk_rx\0hclk"; + assigned-clocks = <0x02 0x31 0x02 0x35>; + assigned-clock-parents = <0x02 0x05 0x02 0x05>; + resets = <0x02 0x77 0x02 0x7a>; + interrupts = <0x00 0xb4 0x04>; + clocks = <0x02 0x33 0x02 0x37 0x02 0x30>; + dma-names = "tx\0rx"; + #sound-dai-cells = <0x00>; + compatible = "rockchip,rk3588-i2s-tdm"; + pinctrl-1 = <0x11f>; + status = "okay"; + reg = <0x00 0xfe470000 0x00 0x1000>; + phandle = <0x1da>; + dmas = <0x7c 0x00 0x7c 0x01>; + reset-names = "tx-m\0rx-m"; + rockchip,clk-trcm = <0x01>; + }; - gpio@fec40000 { - compatible = "rockchip,gpio-bank"; - reg = <0x00 0xfec40000 0x00 0x100>; - interrupts = <0x00 0x118 0x04>; - clocks = <0x02 0x81 0x02 0x82>; - gpio-controller; - #gpio-cells = <0x02>; - gpio-ranges = <0x197 0x00 0x60 0x20>; - interrupt-controller; - #interrupt-cells = <0x02>; - phandle = <0x181>; - }; + syscon@fd594000 { + compatible = "rockchip,rk3588-litcore-grf\0syscon"; + reg = <0x00 0xfd594000 0x00 0x100>; + phandle = <0x22>; + }; - gpio@fec50000 { - compatible = "rockchip,gpio-bank"; - reg = <0x00 0xfec50000 0x00 0x100>; - interrupts = <0x00 0x119 0x04>; - clocks = <0x02 0x83 0x02 0x84>; - gpio-controller; - #gpio-cells = <0x02>; - gpio-ranges = <0x197 0x00 0x80 0x20>; - interrupt-controller; - #interrupt-cells = <0x02>; - phandle = <0x10d>; - }; + csi2-dphy5 { + rockchip,hw = <0x2d 0x2e>; + phy-names = "dcphy0\0dcphy1"; + compatible = "rockchip,rk3588-csi2-dphy"; + status = "disabled"; + phys = <0x2f 0x30>; + phandle = <0x214>; + }; - pcfg-pull-up { - bias-pull-up; - phandle = <0x19e>; - }; + usb@fc840000 { + power-domains = <0x60 0x1f>; + phy-names = "usb2-phy"; + clock-names = "usbhost\0arbiter\0utmi\0alk_usb"; + interrupts = <0x00 0xd8 0x04>; + clocks = <0x02 0x19d 0x02 0x19e 0x69 0x6a>; + compatible = "rockchip,rk3588-ohci\0generic-ohci"; + status = "okay"; + phys = <0x6c>; + reg = <0x00 0xfc840000 0x00 0x40000>; + phandle = <0x6b>; + }; - pcfg-pull-down { - bias-pull-down; - phandle = <0x2ec>; - }; + syscon@fd5b0000 { + compatible = "rockchip,rk3588-php-grf\0syscon"; + reg = <0x00 0xfd5b0000 0x00 0x1000>; + phandle = <0x76>; + }; - pcfg-pull-none { - bias-disable; - phandle = <0x198>; - }; + rkcif-mipi-lvds2-sditf-vir3 { + compatible = "rockchip,rkcif-sditf"; + status = "disabled"; + rockchip,cif = <0x55>; + phandle = <0x236>; + }; - pcfg-pull-none-drv-level-0 { - bias-disable; - drive-strength = <0x00>; - phandle = <0x2ed>; - }; + rkisp1-vir1 { + rockchip,hw = <0x5a>; + compatible = "rockchip,rkisp-vir"; + status = "disabled"; + phandle = <0x240>; + }; - pcfg-pull-none-drv-level-1 { - bias-disable; - drive-strength = <0x01>; - phandle = <0x2ee>; - }; + i2c@feaa0000 { + pinctrl-names = "default"; + #address-cells = <0x01>; + pinctrl-0 = <0x149>; + clock-names = "i2c\0pclk"; + resets = <0x02 0xb1 0x02 0xa9>; + interrupts = <0x00 0x13f 0x04>; + clocks = <0x02 0x8e 0x02 0x86>; + #size-cells = <0x00>; + compatible = "rockchip,rk3588-i2c\0rockchip,rk3399-i2c"; + status = "disabled"; + reg = <0x00 0xfeaa0000 0x00 0x1000>; + phandle = <0x2a5>; + reset-names = "i2c\0apb"; + }; - pcfg-pull-none-drv-level-2 { - bias-disable; - drive-strength = <0x02>; - phandle = <0x1a0>; - }; + dmc { + downdifferential = <0x14>; + clock-names = "dmc_clk"; + interrupts = <0x00 0x49 0x04>; + clocks = <0x0e 0x04>; + upthreshold = <0x28>; + center-supply = <0x42>; + devfreq-events = <0x40>; + compatible = "rockchip,rk3588-dmc"; + status = "disabled"; + interrupt-names = "complete"; + mem-supply = <0x43>; + phandle = <0x21f>; + operating-points-v2 = <0x41>; + system-status-level = <0x01 0x04 0x08 0x08 0x02 0x01 0x10 0x04 0x10000 0x04 0x80000 0x04 0x1000 0x08 0x4000 0x08 0x2000 0x08 0xc00 0x08 0x40000 0x08 0x200000 0x08>; + auto-freq-en = <0x01>; + }; - pcfg-pull-none-drv-level-3 { - bias-disable; - drive-strength = <0x03>; - phandle = <0x2ef>; - }; + hdmi1-sound { + rockchip,jack-det; + rockchip,cpu = <0x1e0>; + rockchip,codec = <0x1e1>; + rockchip,card-name = "rockchip-hdmi1"; + compatible = "rockchip,hdmi"; + status = "disabled"; + phandle = <0x4a8>; + rockchip,mclk-fs = <0x80>; + }; - pcfg-pull-none-drv-level-4 { - bias-disable; - drive-strength = <0x04>; - phandle = <0x2f0>; - }; + qos@fdf3d800 { + compatible = "syscon"; + reg = <0x00 0xfdf3d800 0x00 0x20>; + phandle = <0xb0>; + }; - pcfg-pull-none-drv-level-5 { - bias-disable; - drive-strength = <0x05>; - phandle = <0x2f1>; - }; + mipi-dcphy-dummy { + phandle = <0x223>; + }; - pcfg-pull-none-drv-level-6 { - bias-disable; - drive-strength = <0x06>; - phandle = <0x2f2>; - }; + jpege-core@fdbac000 { + power-domains = <0x60 0x15>; + iommus = <0xc0>; + rockchip,ccu = <0xbd>; + clock-names = "aclk_vcodec\0hclk_vcodec"; + assigned-clocks = <0x02 0x1b2>; + rockchip,normal-rates = <0x2367b880 0x00>; + assigned-clock-rates = <0x2367b880>; + resets = <0x02 0x2d0 0x02 0x2d1>; + interrupts = <0x00 0x80 0x04>; + clocks = <0x02 0x1b2 0x02 0x1b3>; + rockchip,srv = <0xb8>; + rockchip,taskqueue-node = <0x02>; + rockchip,disable-auto-freq; + compatible = "rockchip,vpu-jpege-core"; + status = "okay"; + interrupt-names = "irq_jpege3"; + rockchip,skip-pmu-idle-request; + reg = <0x00 0xfdbac000 0x00 0x400>; + phandle = <0x270>; + reset-names = "video_a\0video_h"; + }; - pcfg-pull-up-drv-level-0 { - bias-pull-up; - drive-strength = <0x00>; - phandle = <0x2f3>; - }; + iommu@fdce0800 { + power-domains = <0x60 0x1b>; + clock-names = "aclk\0iface"; + interrupts = <0x00 0x71 0x04>; + clocks = <0x02 0x1e4 0x02 0x1e5>; + #iommu-cells = <0x00>; + compatible = "rockchip,iommu-v2"; + rockchip,disable-mmu-reset; + status = "okay"; + interrupt-names = "cif_mmu"; + reg = <0x00 0xfdce0800 0x00 0x100 0x00 0xfdce0900 0x00 0x100>; + phandle = <0x50>; + }; - pcfg-pull-up-drv-level-1 { - bias-pull-up; - drive-strength = <0x01>; - phandle = <0x19f>; - }; + qos@fdf35400 { + compatible = "syscon"; + reg = <0x00 0xfdf35400 0x00 0x20>; + phandle = <0x89>; + }; - pcfg-pull-up-drv-level-2 { - bias-pull-up; - drive-strength = <0x02>; - phandle = <0x199>; - }; + syscon@fd5a8000 { + clocks = <0x73>; + compatible = "rockchip,rk3588-vo-grf\0syscon"; + reg = <0x00 0xfd5a8000 0x00 0x100>; + phandle = <0xd8>; + }; - pcfg-pull-up-drv-level-3 { - bias-pull-up; - drive-strength = <0x03>; - phandle = <0x2f4>; - }; + dp0-sound { + rockchip,jack-det; + rockchip,cpu = <0x1d5>; + rockchip,codec = <0x1d6 0x01>; + rockchip,card-name = "rockchip-dp0"; + compatible = "rockchip,hdmi"; + status = "disabled"; + phandle = <0x49c>; + rockchip,mclk-fs = <0x200>; + }; - pcfg-pull-up-drv-level-4 { - bias-pull-up; - drive-strength = <0x04>; - phandle = <0x2f5>; - }; + rkcif-mipi-lvds4 { + iommus = <0x50>; + rockchip,hw = <0x4f>; + compatible = "rockchip,rkcif-mipi-lvds"; + status = "disabled"; + phandle = <0x1a1>; + }; - pcfg-pull-up-drv-level-5 { - bias-pull-up; - drive-strength = <0x05>; - phandle = <0x2f6>; - }; - - pcfg-pull-up-drv-level-6 { - bias-pull-up; - drive-strength = <0x06>; - phandle = <0x19a>; - }; + usb@fc880000 { + power-domains = <0x60 0x1f>; + phy-names = "usb2-phy"; + clock-names = "usbhost\0arbiter\0utmi\0alk_usb"; + companion = <0x6e>; + interrupts = <0x00 0xda 0x04>; + clocks = <0x02 0x19f 0x02 0x1a0 0x6d 0x6a>; + compatible = "rockchip,rk3588-ehci\0generic-ehci"; + status = "okay"; + phys = <0x6f>; + reg = <0x00 0xfc880000 0x00 0x40000>; + phandle = <0x255>; + }; - pcfg-pull-down-drv-level-0 { - bias-pull-down; - drive-strength = <0x00>; - phandle = <0x2f7>; - }; + qos@fdf62000 { + compatible = "syscon"; + reg = <0x00 0xfdf62000 0x00 0x20>; + phandle = <0x8b>; + }; - pcfg-pull-down-drv-level-1 { - bias-pull-down; - drive-strength = <0x01>; - phandle = <0x2f8>; - }; + syscon@fd5f0000 { + compatible = "rockchip,rk3588-ioc\0syscon"; + reg = <0x00 0xfd5f0000 0x00 0x10000>; + phandle = <0x196>; + }; - pcfg-pull-down-drv-level-2 { - bias-pull-down; - drive-strength = <0x02>; - phandle = <0x2f9>; - }; + mipi1-csi2 { + rockchip,hw = <0x47 0x48 0x49 0x4a 0x4b 0x4c>; + compatible = "rockchip,rk3588-mipi-csi2"; + status = "disabled"; + phandle = <0x225>; + }; - pcfg-pull-down-drv-level-3 { - bias-pull-down; - drive-strength = <0x03>; - phandle = <0x2fa>; - }; + hdmiphy@fed70000 { + clock-names = "ref\0apb"; + resets = <0x02 0x491 0x02 0x486 0x02 0xc003f 0x02 0xc0040 0x02 0xc0041 0x02 0x48f 0x02 0x490>; + clocks = <0x02 0x2b5 0x02 0x268>; + #phy-cells = <0x00>; + compatible = "rockchip,rk3588-hdptx-phy-hdmi"; + status = "disabled"; + rockchip,grf = <0x1c7>; + reg = <0x00 0xfed70000 0x00 0x2000>; + phandle = <0x1ac>; + reset-names = "phy\0apb\0init\0cmn\0lane\0ropll\0lcpll"; - pcfg-pull-down-drv-level-4 { - bias-pull-down; - drive-strength = <0x04>; - phandle = <0x2fb>; + clk-port { + #clock-cells = <0x00>; + status = "okay"; + phandle = <0x36>; }; + }; - pcfg-pull-down-drv-level-5 { - bias-pull-down; - drive-strength = <0x05>; - phandle = <0x2fc>; - }; + i2c@fec80000 { + pinctrl-names = "default"; + #address-cells = <0x01>; + pinctrl-0 = <0x178>; + clock-names = "i2c\0pclk"; + resets = <0x02 0xb5 0x02 0xad>; + interrupts = <0x00 0x143 0x04>; + clocks = <0x02 0x92 0x02 0x8a>; + #size-cells = <0x00>; + compatible = "rockchip,rk3588-i2c\0rockchip,rk3399-i2c"; + status = "okay"; + reg = <0x00 0xfec80000 0x00 0x1000>; + phandle = <0x2df>; + reset-names = "i2c\0apb"; - pcfg-pull-down-drv-level-6 { - bias-pull-down; - drive-strength = <0x06>; - phandle = <0x2fd>; - }; + imx415@37 { + power-domains = <0x60 0x1b>; + pinctrl-names = "default"; + pinctrl-0 = <0x180>; + clock-names = "xvclk"; + clocks = <0x02 0x100>; + firefly,clkout-enabled-index = <0x00>; + rockchip,camera-module-name = "CMK-OT2022-PX1"; + reset-gpios = <0x182 0x05 0x01>; + rockchip,camera-module-index = <0x00>; + compatible = "sony,imx415"; + rockchip,camera-module-facing = "back"; + power-gpios = <0x181 0x1d 0x00>; + reg = <0x37>; + rockchip,camera-module-lens-name = "IR0147-50IRC-8M-F20"; + phandle = <0x2e3>; - pcfg-pull-up-smt { - bias-pull-up; - input-schmitt-enable; - phandle = <0x2fe>; - }; + port { - pcfg-pull-down-smt { - bias-pull-down; - input-schmitt-enable; - phandle = <0x2ff>; + endpoint { + data-lanes = <0x01 0x02 0x03 0x04>; + remote-endpoint = <0x184>; + phandle = <0x32>; + }; + }; }; - pcfg-pull-none-smt { - bias-disable; - input-schmitt-enable; - phandle = <0x19d>; + es8388@11 { + pinctrl-names = "default"; + pinctrl-0 = <0x17a>; + clock-names = "mclk"; + assigned-clocks = <0x179>; + assigned-clock-rates = <0xbb8000>; + clocks = <0x179>; + #sound-dai-cells = <0x00>; + compatible = "everest,es8388\0everest,es8323"; + status = "okay"; + reg = <0x11>; + phandle = <0x1db>; }; - pcfg-pull-none-drv-level-0-smt { - bias-disable; - drive-strength = <0x00>; - input-schmitt-enable; - phandle = <0x300>; - }; + XC7160b@1b { + power-domains = <0x60 0x1b>; + pinctrl-names = "default"; + pinctrl-0 = <0x180>; + clock-names = "xvclk"; + pwdn-gpios = <0xfe 0x04 0x00>; + clocks = <0x02 0x100>; + firefly,clkout-enabled-index = <0x00>; + rockchip,camera-module-name = "NC"; + reset-gpios = <0x182 0x05 0x00>; + rockchip,camera-module-index = <0x00>; + compatible = "firefly,xc7160"; + rockchip,camera-module-facing = "back"; + power-gpios = <0x181 0x1d 0x01>; + reg = <0x1b>; + rockchip,camera-module-lens-name = "NC"; + phandle = <0x2e2>; - pcfg-pull-none-drv-level-1-smt { - bias-disable; - drive-strength = <0x01>; - input-schmitt-enable; - phandle = <0x19c>; - }; + port { - pcfg-pull-none-drv-level-2-smt { - bias-disable; - drive-strength = <0x02>; - input-schmitt-enable; - phandle = <0x301>; + endpoint { + data-lanes = <0x01 0x02 0x03 0x04>; + remote-endpoint = <0x183>; + phandle = <0x31>; + }; + }; }; - pcfg-pull-none-drv-level-3-smt { - bias-disable; - drive-strength = <0x03>; - input-schmitt-enable; - phandle = <0x302>; - }; + fusb302@22 { + pinctrl-names = "default"; + pinctrl-0 = <0x17b>; + interrupts = <0x1b 0x08>; + vbus-supply = <0x17c>; + interrupt-parent = <0x7b>; + compatible = "fcs,fusb302"; + status = "disabled"; + reg = <0x22>; + phandle = <0x2e0>; - pcfg-pull-none-drv-level-4-smt { - bias-disable; - drive-strength = <0x04>; - input-schmitt-enable; - phandle = <0x303>; - }; + connector { + sink-pdos = <0x4019064>; + power-role = "dual"; + source-pdos = <0x401912c>; + data-role = "dual"; + label = "USB-C"; + try-power-role = "sink"; + compatible = "usb-c-connector"; + op-sink-microwatt = <0xf4240>; + phandle = <0x2e1>; - pcfg-pull-none-drv-level-5-smt { - bias-disable; - drive-strength = <0x05>; - input-schmitt-enable; - phandle = <0x19b>; - }; + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; - pcfg-pull-none-drv-level-6-smt { - bias-disable; - drive-strength = <0x06>; - input-schmitt-enable; - phandle = <0x304>; - }; + port@0 { + reg = <0x00>; - pcfg-output-high { - output-high; - phandle = <0x305>; - }; + endpoint { + remote-endpoint = <0x17e>; + phandle = <0x18e>; + }; + }; - pcfg-output-high-pull-up { - output-high; - bias-pull-up; - phandle = <0x306>; - }; + port@1 { + reg = <0x01>; - pcfg-output-high-pull-down { - output-high; - bias-pull-down; - phandle = <0x307>; - }; - - pcfg-output-high-pull-none { - output-high; - bias-disable; - phandle = <0x308>; - }; - - pcfg-output-low { - output-low; - phandle = <0x309>; - }; + endpoint { + remote-endpoint = <0x17f>; + phandle = <0x18f>; + }; + }; + }; - pcfg-output-low-pull-up { - output-low; - bias-pull-up; - phandle = <0x30a>; - }; + altmodes { + #address-cells = <0x01>; + #size-cells = <0x00>; - pcfg-output-low-pull-down { - output-low; - bias-pull-down; - phandle = <0x30b>; - }; + altmode@0 { + svid = <0xff01>; + vdo = <0xffffffff>; + reg = <0x00>; + }; + }; + }; - pcfg-output-low-pull-none { - output-low; - bias-disable; - phandle = <0x30c>; - }; + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; - auddsm { + port@0 { + reg = <0x00>; - auddsm-pins { - rockchip,pins = <0x03 0x01 0x04 0x198 0x03 0x02 0x04 0x198 0x03 0x03 0x04 0x198 0x03 0x04 0x04 0x198>; - phandle = <0x144>; + endpoint@0 { + remote-endpoint = <0x17d>; + phandle = <0x68>; + }; + }; }; }; + }; - bt1120 { + syscon@fd5e8000 { + compatible = "rockchip,mipi-dcphy-grf\0syscon"; + reg = <0x00 0xfd5e8000 0x00 0x4000>; + phandle = <0x190>; + }; - bt1120-pins { - rockchip,pins = <0x04 0x08 0x02 0x198 0x04 0x00 0x02 0x198 0x04 0x01 0x02 0x198 0x04 0x02 0x02 0x198 0x04 0x03 0x02 0x198 0x04 0x04 0x02 0x198 0x04 0x05 0x02 0x198 0x04 0x06 0x02 0x198 0x04 0x07 0x02 0x198 0x04 0x0a 0x02 0x198 0x04 0x0b 0x02 0x198 0x04 0x0c 0x02 0x198 0x04 0x0d 0x02 0x198 0x04 0x0e 0x02 0x198 0x04 0x0f 0x02 0x198 0x04 0x10 0x02 0x198 0x04 0x11 0x02 0x198>; - phandle = <0x71>; - }; - }; + vbus5v0-typec-pwr-en-regulator { + gpio = <0x182 0x0c 0x00>; + enable-active-high; + regulator-name = "vbus5v0_typec_pwr_en"; + compatible = "regulator-fixed"; + status = "disabled"; + phandle = <0x17c>; + }; - can0 { + mipi2-csi2-hw@fdd30000 { + clock-names = "pclk_csi2host"; + reg-names = "csihost_regs"; + resets = <0x02 0x326>; + interrupts = <0x00 0x93 0x04 0x00 0x94 0x04>; + clocks = <0x02 0x1d1>; + compatible = "rockchip,rk3588-mipi-csi2-hw"; + status = "okay"; + interrupt-names = "csi-intr1\0csi-intr2"; + reg = <0x00 0xfdd30000 0x00 0x10000>; + phandle = <0x49>; + reset-names = "srst_csihost_p"; + }; - can0m0-pins { - rockchip,pins = <0x00 0x10 0x0b 0x198 0x00 0x0f 0x0b 0x198>; - phandle = <0x145>; - }; + spdif-rx@fde18000 { + power-domains = <0x60 0x1a>; + clock-names = "mclk\0hclk"; + assigned-clocks = <0x02 0x262>; + assigned-clock-parents = <0x02 0x05>; + resets = <0x02 0x401>; + interrupts = <0x00 0xc9 0x04>; + clocks = <0x02 0x262 0x02 0x261>; + dma-names = "rx"; + #sound-dai-cells = <0x00>; + compatible = "rockchip,rk3588-spdifrx\0rockchip,rk3308-spdifrx"; + status = "disabled"; + reg = <0x00 0xfde18000 0x00 0x1000>; + phandle = <0x480>; + dmas = <0x7c 0x17>; + reset-names = "spdifrx-m"; + }; - can0m1-pins { - rockchip,pins = <0x04 0x1d 0x09 0x198 0x04 0x1c 0x09 0x198>; - phandle = <0x30d>; - }; - }; + syscon@fd5a2000 { + compatible = "rockchip,rk3588-npu-grf\0syscon"; + reg = <0x00 0xfd5a2000 0x00 0x100>; + phandle = <0xb6>; + }; - can1 { + rkisp0-vir3 { + rockchip,hw = <0x58>; + compatible = "rockchip,rkisp-vir"; + status = "disabled"; + phandle = <0x23e>; + }; - can1m0-pins { - rockchip,pins = <0x03 0x0d 0x09 0x198 0x03 0x0e 0x09 0x198>; - phandle = <0x30e>; - }; + qos@fdf66200 { + compatible = "syscon"; + reg = <0x00 0xfdf66200 0x00 0x20>; + phandle = <0x94>; + }; - can1m1-pins { - rockchip,pins = <0x04 0x0a 0x0c 0x198 0x04 0x0b 0x0c 0x198>; - phandle = <0x146>; - }; - }; + rkcif@fdce0000 { + power-domains = <0x60 0x1b>; + iommus = <0x50>; + nvmem-cells = <0x21 0xd4 0xd5>; + clock-names = "aclk_cif\0hclk_cif\0dclk_cif\0iclk_host0\0iclk_host1"; + reg-names = "cif_regs"; + assigned-clocks = <0x02 0x1e3>; + assigned-clock-rates = <0x23c34600>; + resets = <0x02 0x317 0x02 0x318 0x02 0x316 0x02 0x334 0x02 0x335 0x02 0x336 0x02 0x337 0x02 0x338 0x02 0x339>; + interrupts = <0x00 0x9b 0x04>; + clocks = <0x02 0x1e4 0x02 0x1e5 0x02 0x1e3 0x02 0x1cd 0x02 0x1ce>; + compatible = "rockchip,rk3588-cif"; + status = "okay"; + rockchip,grf = <0xc8>; + interrupt-names = "cif-intr"; + nvmem-cell-names = "specification\0package_low\0package_high"; + reg = <0x00 0xfdce0000 0x00 0x800>; + phandle = <0x4f>; + reset-names = "rst_cif_a\0rst_cif_h\0rst_cif_d\0rst_cif_host0\0rst_cif_host1\0rst_cif_host2\0rst_cif_host3\0rst_cif_host4\0rst_cif_host5"; + }; - can2 { + edp@fdec0000 { + power-domains = <0x60 0x1a>; + phy-names = "dp"; + clock-names = "dp\0pclk\0spdif\0hclk"; + resets = <0x02 0x3e1 0x02 0x3e0>; + interrupts = <0x00 0xa3 0x04>; + clocks = <0x02 0x211 0x02 0x210 0x02 0x212 0x05>; + compatible = "rockchip,rk3588-edp"; + status = "disabled"; + rockchip,grf = <0xd8>; + phys = <0x101>; + reg = <0x00 0xfdec0000 0x00 0x1000>; + phandle = <0x289>; + reset-names = "dp\0apb"; - can2m0-pins { - rockchip,pins = <0x03 0x14 0x09 0x198 0x03 0x15 0x09 0x198>; - phandle = <0x147>; - }; + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; - can2m1-pins { - rockchip,pins = <0x00 0x1c 0x0a 0x198 0x00 0x1d 0x0a 0x198>; - phandle = <0x30f>; - }; - }; + port@0 { + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x00>; - cif { + endpoint@1 { + remote-endpoint = <0x103>; + status = "disabled"; + reg = <0x01>; + phandle = <0xe1>; + }; - cif-clk { - rockchip,pins = <0x04 0x0c 0x01 0x198>; - phandle = <0x310>; - }; + endpoint@2 { + remote-endpoint = <0x3b>; + status = "disabled"; + reg = <0x02>; + phandle = <0xe7>; + }; - cif-dvp-clk { - rockchip,pins = <0x04 0x08 0x01 0x198 0x04 0x0a 0x01 0x198 0x04 0x0b 0x01 0x198>; - phandle = <0x311>; + endpoint@0 { + remote-endpoint = <0x102>; + status = "disabled"; + reg = <0x00>; + phandle = <0xdb>; + }; }; - cif-dvp-bus16 { - rockchip,pins = <0x03 0x14 0x01 0x198 0x03 0x15 0x01 0x198 0x03 0x16 0x01 0x198 0x03 0x17 0x01 0x198 0x03 0x18 0x01 0x198 0x03 0x19 0x01 0x198 0x03 0x1a 0x01 0x198 0x03 0x1b 0x01 0x198>; - phandle = <0x312>; - }; + port@1 { + reg = <0x01>; - cif-dvp-bus8 { - rockchip,pins = <0x04 0x00 0x01 0x198 0x04 0x01 0x01 0x198 0x04 0x02 0x01 0x198 0x04 0x03 0x01 0x198 0x04 0x04 0x01 0x198 0x04 0x05 0x01 0x198 0x04 0x06 0x01 0x198 0x04 0x07 0x01 0x198>; - phandle = <0x313>; + endpoint { + phandle = <0x28a>; + }; }; }; + }; - clk32k { - - clk32k-in { - rockchip,pins = <0x00 0x0a 0x01 0x198>; - phandle = <0x314>; - }; - - clk32k-out0 { - rockchip,pins = <0x00 0x0a 0x02 0x198>; - phandle = <0x315>; - }; - - clk32k-out1 { - rockchip,pins = <0x02 0x15 0x01 0x198>; - phandle = <0x316>; - }; - }; + qos@fdf72400 { + compatible = "syscon"; + reg = <0x00 0xfdf72400 0x00 0x20>; + phandle = <0x84>; + }; - cpu { + dp@fde60000 { + power-domains = <0x60 0x19>; + clock-names = "apb\0aux\0i2s\0spdif\0hclk\0hdcp"; + assigned-clocks = <0x02 0x2cd>; + assigned-clock-rates = <0xf42400>; + resets = <0x02 0x389>; + interrupts = <0x00 0xa2 0x04>; + clocks = <0x02 0x1e7 0x02 0x2cd 0x02 0x201 0x02 0x20d 0x04 0x02 0x1eb>; + #sound-dai-cells = <0x01>; + compatible = "rockchip,rk3588-dp"; + status = "disabled"; + phys = <0x1a5>; + reg = <0x00 0xfde60000 0x00 0x4000>; + phandle = <0x1e3>; - cpu-pins { - rockchip,pins = <0x00 0x19 0x02 0x198 0x00 0x1d 0x02 0x198>; - phandle = <0x317>; - }; - }; + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; - ddrphych0 { + port@0 { + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x00>; - ddrphych0-pins { - rockchip,pins = <0x04 0x00 0x07 0x198 0x04 0x01 0x07 0x198 0x04 0x02 0x07 0x198 0x04 0x03 0x07 0x198>; - phandle = <0x318>; - }; - }; + endpoint@1 { + remote-endpoint = <0x3e>; + status = "disabled"; + reg = <0x01>; + phandle = <0xe3>; + }; - ddrphych1 { + endpoint@2 { + remote-endpoint = <0x1a7>; + status = "disabled"; + reg = <0x02>; + phandle = <0xeb>; + }; - ddrphych1-pins { - rockchip,pins = <0x04 0x04 0x07 0x198 0x04 0x05 0x07 0x198 0x04 0x06 0x07 0x198 0x04 0x07 0x07 0x198>; - phandle = <0x319>; + endpoint@0 { + remote-endpoint = <0x1a6>; + status = "disabled"; + reg = <0x00>; + phandle = <0xdd>; + }; }; - }; - ddrphych2 { + port@1 { + reg = <0x01>; - ddrphych2-pins { - rockchip,pins = <0x04 0x08 0x07 0x198 0x04 0x09 0x07 0x198 0x04 0x0a 0x07 0x198 0x04 0x0b 0x07 0x198>; - phandle = <0x31a>; + endpoint { + phandle = <0x481>; + }; }; }; + }; - ddrphych3 { + vcc5v0-usbdcin { + regulator-max-microvolt = <0x4c4b40>; + regulator-boot-on; + regulator-always-on; + regulator-min-microvolt = <0x4c4b40>; + regulator-name = "vcc5v0_usbdcin"; + compatible = "regulator-fixed"; + phandle = <0x48c>; + vin-supply = <0x1cd>; + }; - ddrphych3-pins { - rockchip,pins = <0x04 0x0c 0x07 0x198 0x04 0x0d 0x07 0x198 0x04 0x0e 0x07 0x198 0x04 0x0f 0x07 0x198>; - phandle = <0x31b>; - }; - }; + rkvdec-core@fdc48000 { + power-domains = <0x60 0x0f>; + iommus = <0xcc>; + rockchip,ccu = <0xca>; + clock-names = "aclk_vcodec\0hclk_vcodec\0clk_core\0clk_cabac\0clk_hevc_cabac"; + reg-names = "regs\0link"; + assigned-clocks = <0x02 0x195 0x02 0x198 0x02 0x196 0x02 0x197>; + rockchip,core-mask = <0x20002>; + rockchip,task-capacity = <0x10>; + rockchip,normal-rates = <0x2faf0800 0x00 0x23c34600 0x23c34600 0x3b9aca00>; + assigned-clock-rates = <0x2faf0800 0x23c34600 0x23c34600 0x3b9aca00>; + resets = <0x02 0x293 0x02 0x292 0x02 0x298 0x02 0x296 0x02 0x297>; + interrupts = <0x00 0x61 0x04>; + rockchip,rcb-info = <0x88 0x6000 0x89 0xc000 0x8d 0x16000 0x8c 0xc000 0x8b 0x2c000 0x85 0xc000 0x86 0x2000 0x87 0x1100 0x8a 0x3300 0x8e 0x47300>; + clocks = <0x02 0x195 0x02 0x194 0x02 0x198 0x02 0x196 0x02 0x197>; + rockchip,rcb-min-width = <0x200>; + rockchip,srv = <0xb8>; + rockchip,taskqueue-node = <0x09>; + compatible = "rockchip,rkv-decoder-v2"; + status = "okay"; + interrupt-names = "irq_rkvdec1"; + rockchip,skip-pmu-idle-request; + rockchip,rcb-iova = <0xffe00000 0x100000>; + reg = <0x00 0xfdc48100 0x00 0x400 0x00 0xfdc48000 0x00 0x100>; + phandle = <0x275>; + reset-names = "video_a\0video_h\0video_core\0video_cabac\0video_hevc_cabac"; + rockchip,sram = <0xcd>; + }; - dp0 { + vcc-1v1-nldo-s3 { + regulator-max-microvolt = <0x10c8e0>; + regulator-boot-on; + regulator-always-on; + regulator-min-microvolt = <0x10c8e0>; + regulator-name = "vcc_1v1_nldo_s3"; + compatible = "regulator-fixed"; + phandle = <0x15c>; + vin-supply = <0x78>; + }; - dp0m0-pins { - rockchip,pins = <0x04 0x0c 0x05 0x198>; - phandle = <0x31c>; - }; + power-management@fd8d8000 { + compatible = "rockchip,rk3588-pmu\0syscon\0simple-mfd"; + reg = <0x00 0xfd8d8000 0x00 0x400>; + phandle = <0xd9>; - dp0m1-pins { - rockchip,pins = <0x00 0x14 0x0a 0x198>; - phandle = <0x31d>; - }; + power-controller { + #address-cells = <0x01>; + #size-cells = <0x00>; + #power-domain-cells = <0x01>; + compatible = "rockchip,rk3588-power-controller"; + status = "okay"; + phandle = <0x60>; - dp0m2-pins { - rockchip,pins = <0x01 0x00 0x05 0x198>; - phandle = <0x31e>; + power-domain@37 { + clocks = <0x02 0x199 0x02 0x140>; + reg = <0x25>; + pm_qos = <0xaf>; }; - }; - dp1 { + power-domain@27 { + #address-cells = <0x01>; + clocks = <0x02 0x1e1 0x02 0x1e2 0x02 0x1df 0x02 0x1de 0x02 0x1e5 0x02 0x1e4>; + #size-cells = <0x00>; + reg = <0x1b>; + pm_qos = <0xa2 0xa3 0xa4 0xa5>; - dp1m0-pins { - rockchip,pins = <0x03 0x1d 0x05 0x198>; - phandle = <0x31f>; - }; + power-domain@29 { + clocks = <0x02 0x1d6 0x02 0x1d5 0x02 0x1d9 0x02 0x1d8 0x02 0x1e2>; + reg = <0x1d>; + pm_qos = <0xa8 0xa9>; + }; - dp1m1-pins { - rockchip,pins = <0x00 0x15 0x0a 0x198>; - phandle = <0x320>; + power-domain@28 { + clocks = <0x02 0x121 0x02 0x120 0x02 0x1e1 0x02 0x1e2>; + reg = <0x1c>; + pm_qos = <0xa6 0xa7>; + }; }; - dp1m2-pins { - rockchip,pins = <0x01 0x01 0x05 0x198>; - phandle = <0x321>; + power-domain@33 { + clocks = <0x02 0x166 0x02 0x169 0x02 0x16a>; + reg = <0x21>; }; - }; - emmc { + power-domain@13 { + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x0d>; - emmc-rstnout { - rockchip,pins = <0x02 0x03 0x01 0x198>; - phandle = <0x322>; - }; + power-domain@15 { + clocks = <0x02 0x194 0x02 0x1be 0x02 0x1bc 0x02 0x195>; + reg = <0x0f>; + pm_qos = <0x8c>; + }; - emmc-bus8 { - rockchip,pins = <0x02 0x18 0x01 0x199 0x02 0x19 0x01 0x199 0x02 0x1a 0x01 0x199 0x02 0x1b 0x01 0x199 0x02 0x1c 0x01 0x199 0x02 0x1d 0x01 0x199 0x02 0x1e 0x01 0x199 0x02 0x1f 0x01 0x199>; - phandle = <0x323>; - }; + power-domain@16 { + #address-cells = <0x01>; + clocks = <0x02 0x1c4 0x02 0x1c5>; + #size-cells = <0x00>; + reg = <0x10>; + pm_qos = <0x8d 0x8e 0x8f>; - emmc-clk { - rockchip,pins = <0x02 0x01 0x01 0x199>; - phandle = <0x324>; - }; + power-domain@17 { + clocks = <0x02 0x1c9 0x02 0x1c4 0x02 0x1c5 0x02 0x1ca>; + reg = <0x11>; + pm_qos = <0x90 0x91 0x92>; + }; + }; - emmc-cmd { - rockchip,pins = <0x02 0x00 0x01 0x199>; - phandle = <0x325>; + power-domain@14 { + clocks = <0x02 0x18f 0x02 0x1be 0x02 0x1bc 0x02 0x190 0x02 0x18e>; + reg = <0x0e>; + pm_qos = <0x8b>; + }; }; - emmc-data-strobe { - rockchip,pins = <0x02 0x02 0x01 0x198>; - phandle = <0x326>; + power-domain@31 { + clocks = <0x02 0x166 0x02 0x1a1 0x02 0x1a4 0x02 0x19d 0x02 0x19e 0x02 0x19f 0x02 0x1a0>; + reg = <0x1f>; + pm_qos = <0xab 0xac 0xad 0xae>; }; - }; - eth1 { + power-domain@21 { + #address-cells = <0x01>; + clocks = <0x02 0x1be 0x02 0x1bd 0x02 0x1bc 0x02 0x1bf 0x02 0x1aa 0x02 0x1a9 0x02 0x1ac 0x02 0x1ad 0x02 0x1ae 0x02 0x1af 0x02 0x1b0 0x02 0x1b1 0x02 0x1b2 0x02 0x1b3 0x02 0x1b4 0x02 0x1b5 0x02 0x1b7 0x02 0x1b6>; + #size-cells = <0x00>; + reg = <0x15>; + pm_qos = <0x93 0x94 0x95 0x96 0x97 0x98 0x99 0x9a>; - eth1-pins { - rockchip,pins = <0x03 0x06 0x01 0x198>; - phandle = <0x327>; - }; - }; + power-domain@15 { + clocks = <0x02 0x194 0x02 0x1be 0x02 0x1bc>; + reg = <0x0f>; + pm_qos = <0x8c>; + }; - fspi { + power-domain@23 { + clocks = <0x02 0x4b 0x02 0x49 0x02 0x1be>; + reg = <0x17>; + pm_qos = <0x9b>; + }; - fspim0-pins { - rockchip,pins = <0x02 0x00 0x02 0x199 0x02 0x1e 0x02 0x199 0x02 0x18 0x02 0x199 0x02 0x19 0x02 0x199 0x02 0x1a 0x02 0x199 0x02 0x1b 0x02 0x199>; - phandle = <0x328>; - }; - - fspim0-cs1 { - rockchip,pins = <0x02 0x1f 0x02 0x199>; - phandle = <0x329>; - }; + power-domain@14 { + clocks = <0x02 0x18f 0x02 0x1be 0x02 0x1bc 0x02 0x190>; + reg = <0x0e>; + pm_qos = <0x8b>; + }; - fspim2-pins { - rockchip,pins = <0x03 0x05 0x05 0x199 0x03 0x14 0x02 0x199 0x03 0x00 0x05 0x199 0x03 0x01 0x05 0x199 0x03 0x02 0x05 0x199 0x03 0x03 0x05 0x199>; - phandle = <0x32a>; + power-domain@22 { + clocks = <0x02 0x1ba 0x02 0x1b9>; + reg = <0x16>; + pm_qos = <0x9c>; + }; }; - fspim2-cs1 { - rockchip,pins = <0x03 0x15 0x02 0x199>; - phandle = <0x32b>; + power-domain@38 { + clocks = <0x02 0x3c 0x02 0x3d>; + reg = <0x26>; }; - fspim1-pins { - rockchip,pins = <0x02 0x0b 0x03 0x199 0x02 0x0c 0x03 0x199 0x02 0x06 0x03 0x199 0x02 0x07 0x03 0x199 0x02 0x08 0x03 0x199 0x02 0x09 0x03 0x199>; - phandle = <0x32c>; - }; + power-domain@8 { + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x08>; - fspim1-cs1 { - rockchip,pins = <0x02 0x0d 0x03 0x199>; - phandle = <0x32d>; - }; - }; + power-domain@9 { + #address-cells = <0x01>; + clocks = <0x02 0x12f 0x02 0x131 0x02 0x130 0x02 0x126>; + #size-cells = <0x00>; + reg = <0x09>; + pm_qos = <0x82 0x83 0x84>; - gmac1 { + power-domain@11 { + clocks = <0x02 0x12f 0x02 0x131 0x02 0x130>; + reg = <0x0b>; + pm_qos = <0x86>; + }; - gmac1-miim { - rockchip,pins = <0x03 0x12 0x01 0x198 0x03 0x13 0x01 0x198>; - phandle = <0x10e>; + power-domain@10 { + clocks = <0x02 0x12f 0x02 0x131 0x02 0x130>; + reg = <0x0a>; + pm_qos = <0x85>; + }; + }; }; - gmac1-clkinout { - rockchip,pins = <0x03 0x0e 0x01 0x198>; - phandle = <0x32e>; + power-domain@26 { + clocks = <0x02 0x22e 0x02 0x22f 0x02 0x22d 0x02 0x218 0x02 0x217 0x02 0x22b 0x02 0x264>; + reg = <0x1a>; + pm_qos = <0xa0 0xa1>; }; - gmac1-rx-bus2 { - rockchip,pins = <0x03 0x07 0x01 0x198 0x03 0x08 0x01 0x198 0x03 0x09 0x01 0x198>; - phandle = <0x110>; + power-domain@34 { + clocks = <0x02 0x166 0x02 0x169 0x02 0x16a>; + reg = <0x22>; }; - gmac1-tx-bus2 { - rockchip,pins = <0x03 0x0b 0x01 0x19a 0x03 0x0c 0x01 0x19a 0x03 0x0d 0x01 0x198>; - phandle = <0x10f>; - }; + power-domain@24 { + #address-cells = <0x01>; + clocks = <0x02 0x26e 0x02 0x26d 0x02 0x270>; + #size-cells = <0x00>; + reg = <0x18>; + pm_qos = <0x9d 0x9e>; - gmac1-rgmii-clk { - rockchip,pins = <0x03 0x05 0x01 0x198 0x03 0x04 0x01 0x198>; - phandle = <0x111>; + power-domain@25 { + clocks = <0x02 0x1f6 0x02 0x1f7 0x02 0x1f5 0x02 0x1f3 0x02 0x1ee 0x02 0x1ed 0x02 0x26d>; + reg = <0x19>; + pm_qos = <0x9f>; + }; }; - gmac1-rgmii-bus { - rockchip,pins = <0x03 0x02 0x01 0x198 0x03 0x03 0x01 0x198 0x03 0x00 0x01 0x19a 0x03 0x01 0x01 0x19a>; - phandle = <0x112>; + power-domain@12 { + clocks = <0x02 0x114 0x02 0x115 0x02 0x116>; + reg = <0x0c>; + pm_qos = <0x87 0x88 0x89 0x8a>; }; - gmac1-ppsclk { - rockchip,pins = <0x03 0x11 0x01 0x198>; - phandle = <0x32f>; + power-domain@40 { + reg = <0x28>; + pm_qos = <0xb0>; }; - gmac1-ppstrig { - rockchip,pins = <0x03 0x10 0x01 0x198>; - phandle = <0x330>; + power-domain@30 { + clocks = <0x02 0x189 0x02 0x18a>; + reg = <0x1e>; + pm_qos = <0xaa>; }; + }; + }; - gmac1-ptp-ref-clk { - rockchip,pins = <0x03 0x0f 0x01 0x198>; - phandle = <0x331>; - }; + csi2-dphy3 { + rockchip,hw = <0x2d 0x2e>; + phy-names = "dcphy0\0dcphy1"; + compatible = "rockchip,rk3588-csi2-dphy"; + status = "disabled"; + phys = <0x2f 0x30>; + phandle = <0x212>; + }; - gmac1-txer { - rockchip,pins = <0x03 0x0a 0x01 0x198>; - phandle = <0x332>; - }; - }; + qos@fdf3e000 { + compatible = "syscon"; + reg = <0x00 0xfdf3e000 0x00 0x20>; + phandle = <0xac>; + }; - gpu { + pwm@fd8b0030 { + pinctrl-names = "active"; + pinctrl-0 = <0x81>; + clock-names = "pwm\0pclk"; + interrupts = <0x00 0x158 0x04 0x00 0x159 0x04>; + clocks = <0x02 0x2a5 0x02 0x2a4>; + #pwm-cells = <0x03>; + compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; + status = "disabled"; + reg = <0x00 0xfd8b0030 0x00 0x10>; + phandle = <0x264>; + }; - gpu-pins { - rockchip,pins = <0x00 0x15 0x02 0x198>; - phandle = <0x333>; - }; - }; + rkcif-mipi-lvds2-sditf-vir1 { + compatible = "rockchip,rkcif-sditf"; + status = "disabled"; + rockchip,cif = <0x55>; + phandle = <0x234>; + }; - hdmi { + syscon@fd5cc000 { + compatible = "rockchip,rk3588-usbdpphy-grf\0syscon"; + reg = <0x00 0xfd5cc000 0x00 0x4000>; + phandle = <0x1c9>; + }; - hdmim0-rx-cec { - rockchip,pins = <0x04 0x0d 0x05 0x198>; - phandle = <0x334>; - }; + vdpu@fdb50400 { + power-domains = <0x60 0x15>; + iommus = <0xb7>; + clock-names = "aclk_vcodec\0hclk_vcodec"; + assigned-clocks = <0x02 0x1c0>; + rockchip,normal-rates = <0x2367b880 0x00>; + assigned-clock-rates = <0x2367b880>; + resets = <0x02 0x2c8 0x02 0x2c9>; + interrupts = <0x00 0x77 0x04>; + clocks = <0x02 0x1c0 0x02 0x1c1>; + rockchip,srv = <0xb8>; + rockchip,taskqueue-node = <0x00>; + rockchip,disable-auto-freq; + compatible = "rockchip,vpu-decoder-v2"; + rockchip,resetgroup-node = <0x00>; + status = "okay"; + interrupt-names = "irq_vdpu"; + rockchip,skip-pmu-idle-request; + reg = <0x00 0xfdb50400 0x00 0x400>; + phandle = <0x267>; + reset-names = "shared_video_a\0shared_video_h"; + }; - hdmim0-rx-hpdin { - rockchip,pins = <0x04 0x0e 0x05 0x198>; - phandle = <0x335>; - }; + qos@fdf60200 { + compatible = "syscon"; + reg = <0x00 0xfdf60200 0x00 0x20>; + phandle = <0x8e>; + }; - hdmim0-rx-scl { - rockchip,pins = <0x00 0x1a 0x0b 0x198>; - phandle = <0x336>; - }; + pwm@febe0030 { + pinctrl-names = "active"; + pinctrl-0 = <0x170>; + clock-names = "pwm\0pclk"; + interrupts = <0x00 0x15c 0x04 0x00 0x15d 0x04>; + clocks = <0x02 0x57 0x02 0x56>; + #pwm-cells = <0x03>; + compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; + status = "disabled"; + reg = <0x00 0xfebe0030 0x00 0x10>; + phandle = <0x2d8>; + }; - hdmim0-rx-sda { - rockchip,pins = <0x00 0x19 0x0b 0x198>; - phandle = <0x337>; - }; + display-subsystem { + memory-region-names = "drm-logo"; + clock-names = "hdmi0_phy_pll\0hdmi1_phy_pll"; + ports = <0x34>; + memory-region = <0x37>; + clocks = <0x35 0x36>; + compatible = "rockchip,display-subsystem"; + phandle = <0x215>; - hdmim0-tx0-cec { - rockchip,pins = <0x04 0x11 0x05 0x198>; - phandle = <0xf9>; - }; + route { - hdmim0-tx0-hpd { - rockchip,pins = <0x01 0x05 0x05 0x198>; - phandle = <0xfa>; + route-edp1 { + logo,kernel = "logo_kernel.bmp"; + logo,uboot = "logo.bmp"; + charge_logo,mode = "center"; + logo,mode = "center"; + status = "disabled"; + phandle = <0x21a>; }; - hdmim0-tx0-scl { - rockchip,pins = <0x04 0x0f 0x05 0x19b>; - phandle = <0xfb>; + route-hdmi1 { + logo,kernel = "logo_kernel.bmp"; + logo,uboot = "logo.bmp"; + charge_logo,mode = "center"; + connect = <0x3f>; + logo,mode = "center"; + status = "disabled"; + phandle = <0x21e>; }; - hdmim0-tx0-sda { - rockchip,pins = <0x04 0x10 0x05 0x19c>; - phandle = <0xfc>; - }; - - hdmim0-tx1-hpd { - rockchip,pins = <0x01 0x06 0x05 0x198>; - phandle = <0x1a9>; + route-dp1 { + logo,kernel = "logo_kernel.bmp"; + logo,uboot = "logo.bmp"; + charge_logo,mode = "center"; + connect = <0x3e>; + logo,mode = "center"; + status = "disabled"; + phandle = <0x21d>; }; - hdmim1-rx { - rockchip,pins = <0x03 0x19 0x05 0x198 0x03 0x1a 0x05 0x19d 0x03 0x1b 0x05 0x19d 0x03 0x1c 0x05 0x198>; - phandle = <0x1b3>; + route-dsi1 { + logo,kernel = "logo_kernel.bmp"; + logo,uboot = "logo.bmp"; + charge_logo,mode = "center"; + connect = <0x3a>; + logo,mode = "center"; + status = "disabled"; + phandle = <0x218>; }; - hdmim1-rx-cec { - rockchip,pins = <0x03 0x19 0x05 0x198>; - phandle = <0x338>; + route-edp0 { + logo,kernel = "logo_kernel.bmp"; + logo,uboot = "logo.bmp"; + charge_logo,mode = "center"; + connect = <0x3b>; + logo,mode = "center"; + status = "disabled"; + phandle = <0x219>; }; - hdmim1-rx-hpdin { - rockchip,pins = <0x03 0x1c 0x05 0x198>; - phandle = <0x339>; + route-hdmi0 { + logo,kernel = "logo_kernel.bmp"; + logo,uboot = "logo.bmp"; + charge_logo,mode = "center"; + connect = <0x3c>; + logo,mode = "center"; + status = "okay"; + phandle = <0x21b>; }; - hdmim1-rx-scl { - rockchip,pins = <0x03 0x1a 0x05 0x19d>; - phandle = <0x33a>; + route-dp0 { + logo,kernel = "logo_kernel.bmp"; + logo,uboot = "logo.bmp"; + charge_logo,mode = "center"; + connect = <0x38>; + logo,mode = "center"; + status = "disabled"; + phandle = <0x216>; }; - hdmim1-rx-sda { - rockchip,pins = <0x03 0x1b 0x05 0x19d>; - phandle = <0x33b>; + route-rgb { + logo,kernel = "logo_kernel.bmp"; + logo,uboot = "logo.bmp"; + charge_logo,mode = "center"; + connect = <0x3d>; + logo,mode = "center"; + status = "disabled"; + phandle = <0x21c>; }; - hdmim1-tx0-cec { - rockchip,pins = <0x00 0x19 0x0d 0x198>; - phandle = <0x33c>; + route-dsi0 { + logo,kernel = "logo_kernel.bmp"; + logo,uboot = "logo.bmp"; + charge_logo,mode = "center"; + connect = <0x39>; + logo,mode = "center"; + status = "disabled"; + phandle = <0x217>; }; + }; + }; - hdmim1-tx0-hpd { - rockchip,pins = <0x03 0x1c 0x03 0x198>; - phandle = <0x33d>; - }; + serial@febc0000 { + reg-io-width = <0x04>; + pinctrl-names = "default"; + pinctrl-0 = <0x168>; + clock-names = "baudclk\0apb_pclk"; + interrupts = <0x00 0x154 0x04>; + clocks = <0x02 0xd7 0x02 0xb3>; + compatible = "rockchip,rk3588-uart\0snps,dw-apb-uart"; + status = "disabled"; + reg = <0x00 0xfebc0000 0x00 0x100>; + phandle = <0x2d1>; + dmas = <0xf2 0x0b 0xf2 0x0c>; + reg-shift = <0x02>; + }; - hdmim1-tx0-scl { - rockchip,pins = <0x00 0x1d 0x0b 0x19b>; - phandle = <0x33e>; - }; + adc-keys { + io-channels = <0x1d9 0x01>; + poll-interval = <0x64>; + keyup-threshold-microvolt = <0x1b7740>; + compatible = "adc-keys"; + status = "okay"; + phandle = <0x49e>; + io-channel-names = "buttons"; - hdmim1-tx0-sda { - rockchip,pins = <0x00 0x1c 0x0b 0x19c>; - phandle = <0x33f>; - }; + recovery-key { + press-threshold-microvolt = <0x4268>; + label = "F12"; + linux,code = <0x58>; + }; + }; - hdmim1-tx1-cec { - rockchip,pins = <0x00 0x1a 0x0d 0x198>; - phandle = <0x340>; - }; + pvtm@fdaf0000 { + #address-cells = <0x01>; + #size-cells = <0x00>; + compatible = "rockchip,rk3588-npu-pvtm"; + reg = <0x00 0xfdaf0000 0x00 0x100>; - hdmim1-tx1-hpd { - rockchip,pins = <0x03 0x0f 0x05 0x198>; - phandle = <0x341>; - }; + pvtm@3 { + clock-names = "clk\0pclk"; + resets = <0x02 0x1de 0x02 0x1dc>; + clocks = <0x02 0x12b 0x02 0x129>; + reg = <0x03>; + reset-names = "rts\0rst-p"; + }; + }; - hdmim1-tx1-scl { - rockchip,pins = <0x03 0x16 0x05 0x19b>; - phandle = <0x1aa>; - }; + codec-digital@fe500000 { + power-domains = <0x60 0x26>; + pinctrl-names = "default"; + pinctrl-0 = <0x144>; + clock-names = "dac\0pclk"; + resets = <0x02 0x84>; + clocks = <0x02 0x29 0x02 0x2f>; + #sound-dai-cells = <0x00>; + compatible = "rockchip,rk3588-codec-digital\0rockchip,codec-digital-v1"; + status = "disabled"; + rockchip,grf = <0xc8>; + reg = <0x00 0xfe500000 0x00 0x1000>; + phandle = <0x29e>; + reset-names = "reset"; + rockchip,pwm-output-mode; + }; - hdmim1-tx1-sda { - rockchip,pins = <0x03 0x15 0x05 0x19c>; - phandle = <0x1ab>; - }; + pwm@fd8b0020 { + pinctrl-names = "active"; + pinctrl-0 = <0x80>; + clock-names = "pwm\0pclk"; + interrupts = <0x00 0x158 0x04>; + clocks = <0x02 0x2a5 0x02 0x2a4>; + #pwm-cells = <0x03>; + compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; + status = "disabled"; + reg = <0x00 0xfd8b0020 0x00 0x10>; + phandle = <0x263>; + }; - hdmim2-rx-cec { - rockchip,pins = <0x01 0x0f 0x05 0x198>; - phandle = <0x342>; - }; + rkcif-mipi-lvds2 { + iommus = <0x50>; + rockchip,hw = <0x4f>; + compatible = "rockchip,rkcif-mipi-lvds"; + status = "okay"; + phandle = <0x55>; - hdmim2-rx-hpdin { - rockchip,pins = <0x01 0x0e 0x05 0x198>; - phandle = <0x343>; - }; + port { - hdmim2-rx-scl { - rockchip,pins = <0x01 0x1e 0x05 0x198>; - phandle = <0x344>; + endpoint { + remote-endpoint = <0x54>; + phandle = <0x4e>; }; + }; + }; - hdmim2-rx-sda { - rockchip,pins = <0x01 0x1f 0x05 0x198>; - phandle = <0x345>; - }; + pwm@febe0020 { + pinctrl-names = "active"; + pinctrl-0 = <0x16f>; + clock-names = "pwm\0pclk"; + interrupts = <0x00 0x15c 0x04>; + clocks = <0x02 0x57 0x02 0x56>; + #pwm-cells = <0x03>; + compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; + status = "disabled"; + reg = <0x00 0xfebe0020 0x00 0x10>; + phandle = <0x2d7>; + }; - hdmim2-tx0-scl { - rockchip,pins = <0x03 0x17 0x05 0x19b>; - phandle = <0x346>; - }; + vcc-fan-pwr-en-regulator { + regulator-boot-on; + gpio = <0x182 0x0b 0x00>; + regulator-always-on; + enable-active-high; + regulator-name = "vcc_fan_pwr_en"; + compatible = "regulator-fixed"; + status = "disabled"; + phandle = <0x4a4>; + }; - hdmim2-tx0-sda { - rockchip,pins = <0x03 0x18 0x05 0x19c>; - phandle = <0x347>; - }; + iommu@fdba0800 { + power-domains = <0x60 0x15>; + clock-names = "aclk\0iface"; + interrupts = <0x00 0x79 0x04>; + clocks = <0x02 0x1ac 0x02 0x1ad>; + #iommu-cells = <0x00>; + compatible = "rockchip,iommu-v2"; + status = "okay"; + interrupt-names = "irq_jpege0_mmu"; + reg = <0x00 0xfdba0800 0x00 0x40>; + phandle = <0xbc>; + }; - hdmim2-tx1-cec { - rockchip,pins = <0x03 0x14 0x05 0x198>; - phandle = <0x1a8>; - }; + rkcif-mipi-lvds1-sditf-vir2 { + compatible = "rockchip,rkcif-sditf"; + status = "disabled"; + rockchip,cif = <0x53>; + phandle = <0x231>; + }; - hdmim2-tx1-scl { - rockchip,pins = <0x01 0x04 0x05 0x19b>; - phandle = <0x348>; - }; - - hdmim2-tx1-sda { - rockchip,pins = <0x01 0x03 0x05 0x19c>; - phandle = <0x349>; - }; - - hdmi-debug0 { - rockchip,pins = <0x01 0x07 0x07 0x198>; - phandle = <0x34a>; - }; - - hdmi-debug1 { - rockchip,pins = <0x01 0x08 0x07 0x198>; - phandle = <0x34b>; - }; + arm-pmu { + interrupt-affinity = <0x06 0x07 0x08 0x09 0x0a 0x0b 0x0c 0x0d>; + interrupts = <0x01 0x07 0x08>; + compatible = "arm,armv8-pmuv3"; + phandle = <0x20c>; + }; - hdmi-debug2 { - rockchip,pins = <0x01 0x09 0x07 0x198>; - phandle = <0x34c>; - }; + pvtm@fda40000 { + #address-cells = <0x01>; + #size-cells = <0x00>; + compatible = "rockchip,rk3588-bigcore0-pvtm"; + reg = <0x00 0xfda40000 0x00 0x100>; - hdmi-debug3 { - rockchip,pins = <0x01 0x0a 0x07 0x198>; - phandle = <0x34d>; - }; + pvtm@0 { + clock-names = "clk\0pclk"; + clocks = <0x02 0x2c6 0x02 0x15>; + reg = <0x00>; + }; + }; - hdmi-debug4 { - rockchip,pins = <0x01 0x0b 0x07 0x198>; - phandle = <0x34e>; - }; + pwm@fd8b0010 { + pinctrl-names = "active"; + pinctrl-0 = <0x7f>; + clock-names = "pwm\0pclk"; + interrupts = <0x00 0x158 0x04>; + clocks = <0x02 0x2a5 0x02 0x2a4>; + #pwm-cells = <0x03>; + compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; + status = "disabled"; + reg = <0x00 0xfd8b0010 0x00 0x10>; + phandle = <0x262>; + }; - hdmi-debug5 { - rockchip,pins = <0x01 0x0c 0x07 0x198>; - phandle = <0x34f>; - }; + i2s@fddc0000 { + power-domains = <0x60 0x19>; + clock-names = "mclk_tx\0mclk_rx\0hclk"; + assigned-clocks = <0x02 0x1f9>; + assigned-clock-parents = <0x02 0x05>; + resets = <0x02 0x38d>; + interrupts = <0x00 0xb8 0x04>; + clocks = <0x02 0x1fb 0x02 0x1fb 0x02 0x1f0>; + dma-names = "tx"; + #sound-dai-cells = <0x00>; + compatible = "rockchip,rk3588-i2s-tdm"; + rockchip,playback-only; + status = "disabled"; + reg = <0x00 0xfddc0000 0x00 0x1000>; + phandle = <0x27d>; + dmas = <0xf2 0x00>; + reset-names = "tx-m"; + }; - hdmi-debug6 { - rockchip,pins = <0x01 0x00 0x07 0x198>; - phandle = <0x350>; - }; + qos@fdf61400 { + compatible = "syscon"; + reg = <0x00 0xfdf61400 0x00 0x20>; + phandle = <0x92>; + }; - hdmim0-tx1-cec { - rockchip,pins = <0x02 0x14 0x04 0x198>; - phandle = <0x351>; - }; + syscon@fd5d4000 { + #address-cells = <0x01>; + #size-cells = <0x01>; + compatible = "rockchip,rk3588-usb2phy-grf\0syscon\0simple-mfd"; + reg = <0x00 0xfd5d4000 0x00 0x4000>; + phandle = <0x1c8>; - hdmim0-tx1-scl { - rockchip,pins = <0x02 0x0d 0x04 0x198>; - phandle = <0x352>; - }; + usb2-phy@4000 { + clock-output-names = "usb480m_phy1"; + clock-names = "phyclk"; + resets = <0x02 0xc0048 0x02 0x489>; + interrupts = <0x00 0x18a 0x04>; + clocks = <0x02 0x2b5>; + #clock-cells = <0x00>; + rockchip,usbctrl-grf = <0x74>; + compatible = "rockchip,rk3588-usb2phy"; + status = "okay"; + reg = <0x4000 0x10>; + phandle = <0x1ca>; + reset-names = "phy\0apb"; - hdmim0-tx1-sda { - rockchip,pins = <0x02 0x0c 0x04 0x198>; - phandle = <0x353>; + otg-port { + phy-supply = <0x75>; + #phy-cells = <0x00>; + status = "okay"; + phandle = <0x1a3>; }; }; + }; - i2c0 { + rkisp0-vir1 { + rockchip,hw = <0x58>; + compatible = "rockchip,rkisp-vir"; + status = "disabled"; + phandle = <0x23c>; + }; - i2c0m0-xfer { - rockchip,pins = <0x00 0x0b 0x02 0x19d 0x00 0x06 0x02 0x19d>; - phandle = <0x354>; - }; + pwm@febe0010 { + pinctrl-names = "active"; + pinctrl-0 = <0x16e>; + clock-names = "pwm\0pclk"; + interrupts = <0x00 0x15c 0x04>; + clocks = <0x02 0x57 0x02 0x56>; + #pwm-cells = <0x03>; + compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; + status = "disabled"; + reg = <0x00 0xfebe0010 0x00 0x10>; + phandle = <0x2d6>; + }; - i2c0m2-xfer { - rockchip,pins = <0x00 0x19 0x03 0x19d 0x00 0x1a 0x03 0x19d>; - phandle = <0x77>; - }; + thermal-zones { + phandle = <0x248>; - i2c0m1-xfer { - rockchip,pins = <0x04 0x15 0x09 0x19d 0x04 0x16 0x09 0x19d>; - phandle = <0x355>; - }; + bigcore1-thermal { + polling-delay = <0x3e8>; + polling-delay-passive = <0x14>; + thermal-sensors = <0x5d 0x02>; + phandle = <0x24d>; }; - i2c1 { - - i2c1m0-xfer { - rockchip,pins = <0x00 0x0d 0x09 0x19d 0x00 0x0e 0x09 0x19d>; - phandle = <0x356>; - }; + soc-thermal { + polling-delay = <0x3e8>; + polling-delay-passive = <0x14>; + thermal-sensors = <0x5d 0x00>; + sustainable-power = <0x834>; + phandle = <0x249>; - i2c1m1-xfer { - rockchip,pins = <0x00 0x08 0x02 0x19d 0x00 0x09 0x02 0x19d>; - phandle = <0x357>; - }; + trips { - i2c1m2-xfer { - rockchip,pins = <0x00 0x1c 0x09 0x19d 0x00 0x1d 0x09 0x19d>; - phandle = <0x148>; - }; + trip-point-0 { + temperature = <0x124f8>; + hysteresis = <0x7d0>; + type = "passive"; + phandle = <0x24a>; + }; - i2c1m3-xfer { - rockchip,pins = <0x02 0x1c 0x09 0x19d 0x02 0x1d 0x09 0x19d>; - phandle = <0x358>; - }; + trip-point-1 { + temperature = <0x14c08>; + hysteresis = <0x7d0>; + type = "passive"; + phandle = <0x5e>; + }; - i2c1m4-xfer { - rockchip,pins = <0x01 0x1a 0x09 0x19d 0x01 0x1b 0x09 0x19d>; - phandle = <0x359>; + soc-crit { + temperature = <0x1c138>; + hysteresis = <0x7d0>; + type = "critical"; + phandle = <0x24b>; + }; }; - }; - i2c2 { - - i2c2m0-xfer { - rockchip,pins = <0x00 0x0f 0x09 0x19d 0x00 0x10 0x09 0x19d>; - phandle = <0x149>; - }; + cooling-maps { - i2c2m2-xfer { - rockchip,pins = <0x02 0x03 0x09 0x19d 0x02 0x02 0x09 0x19d>; - phandle = <0x35a>; - }; + map2 { + trip = <0x5e>; + cooling-device = <0x0c 0xffffffff 0xffffffff>; + contribution = <0x400>; + }; - i2c2m3-xfer { - rockchip,pins = <0x01 0x15 0x09 0x19d 0x01 0x14 0x09 0x19d>; - phandle = <0x35b>; - }; + map0 { + trip = <0x5e>; + cooling-device = <0x06 0xffffffff 0xffffffff>; + contribution = <0x400>; + }; - i2c2m4-xfer { - rockchip,pins = <0x01 0x01 0x09 0x19d 0x01 0x00 0x09 0x19d>; - phandle = <0x35c>; - }; + map3 { + trip = <0x5e>; + cooling-device = <0x5f 0xffffffff 0xffffffff>; + contribution = <0x400>; + }; - i2c2m1-xfer { - rockchip,pins = <0x02 0x11 0x09 0x19d 0x02 0x10 0x09 0x19d>; - phandle = <0x35d>; + map1 { + trip = <0x5e>; + cooling-device = <0x0a 0xffffffff 0xffffffff>; + contribution = <0x400>; + }; }; }; - i2c3 { - - i2c3m0-xfer { - rockchip,pins = <0x01 0x11 0x09 0x19d 0x01 0x10 0x09 0x19d>; - phandle = <0x35e>; - }; + npu-thermal { + polling-delay = <0x3e8>; + polling-delay-passive = <0x14>; + thermal-sensors = <0x5d 0x06>; + phandle = <0x251>; + }; - i2c3m1-xfer { - rockchip,pins = <0x03 0x0f 0x09 0x19d 0x03 0x10 0x09 0x19d>; - phandle = <0x35f>; - }; + center-thermal { + polling-delay = <0x3e8>; + polling-delay-passive = <0x14>; + thermal-sensors = <0x5d 0x04>; + phandle = <0x24f>; + }; - i2c3m2-xfer { - rockchip,pins = <0x04 0x04 0x09 0x19d 0x04 0x05 0x09 0x19d>; - phandle = <0x14a>; - }; + gpu-thermal { + polling-delay = <0x3e8>; + polling-delay-passive = <0x14>; + thermal-sensors = <0x5d 0x05>; + phandle = <0x250>; + }; - i2c3m4-xfer { - rockchip,pins = <0x04 0x18 0x09 0x19d 0x04 0x19 0x09 0x19d>; - phandle = <0x360>; - }; + littlecore-thermal { + polling-delay = <0x3e8>; + polling-delay-passive = <0x14>; + thermal-sensors = <0x5d 0x03>; + phandle = <0x24e>; + }; - i2c3m3-xfer { - rockchip,pins = <0x02 0x0a 0x09 0x19d 0x02 0x0b 0x09 0x19d>; - phandle = <0x361>; - }; + bigcore0-thermal { + polling-delay = <0x3e8>; + polling-delay-passive = <0x14>; + thermal-sensors = <0x5d 0x01>; + phandle = <0x24c>; }; + }; - i2c4 { + iommu@fdbdf000 { + power-domains = <0x60 0x10>; + rockchip,shootdown-entire; + clock-names = "aclk\0iface"; + interrupts = <0x00 0x63 0x04 0x00 0x64 0x04>; + clocks = <0x02 0x1c5 0x02 0x1c4>; + rockchip,enable-cmd-retry; + #iommu-cells = <0x00>; + compatible = "rockchip,iommu-v2"; + rockchip,disable-mmu-reset; + status = "okay"; + interrupt-names = "irq_rkvenc0_mmu0\0irq_rkvenc0_mmu1"; + reg = <0x00 0xfdbdf000 0x00 0x40 0x00 0xfdbdf040 0x00 0x40>; + phandle = <0xc2>; + }; - i2c4m0-xfer { - rockchip,pins = <0x03 0x06 0x09 0x19d 0x03 0x05 0x09 0x19d>; - phandle = <0x362>; - }; + serial@feb50000 { + reg-io-width = <0x04>; + pinctrl-names = "default"; + pinctrl-0 = <0x161>; + clock-names = "baudclk\0apb_pclk"; + interrupts = <0x00 0x14d 0x04>; + clocks = <0x02 0xbb 0x02 0xac>; + compatible = "rockchip,rk3588-uart\0snps,dw-apb-uart"; + status = "disabled"; + reg = <0x00 0xfeb50000 0x00 0x100>; + phandle = <0x2ca>; + dmas = <0x7c 0x0a 0x7c 0x0b>; + reg-shift = <0x02>; + }; - i2c4m2-xfer { - rockchip,pins = <0x00 0x15 0x09 0x19d 0x00 0x14 0x09 0x19d>; - phandle = <0x363>; - }; + iommu@fdcd0f00 { + power-domains = <0x60 0x1d>; + clock-names = "aclk\0iface\0pclk"; + interrupts = <0x00 0x8c 0x04>; + clocks = <0x02 0x1d5 0x02 0x1d6 0x02 0x1d7>; + #iommu-cells = <0x00>; + compatible = "rockchip,iommu-v2"; + rockchip,disable-mmu-reset; + status = "disabled"; + interrupt-names = "fec0_mmu"; + reg = <0x00 0xfdcd0f00 0x00 0x100>; + phandle = <0xd2>; + }; - i2c4m3-xfer { - rockchip,pins = <0x01 0x03 0x09 0x19d 0x01 0x02 0x09 0x19d>; - phandle = <0x364>; - }; + vcc5v0-host { + regulator-max-microvolt = <0x4c4b40>; + regulator-boot-on; + gpio = <0x182 0x02 0x00>; + regulator-always-on; + enable-active-high; + regulator-min-microvolt = <0x4c4b40>; + regulator-name = "vcc5v0_host"; + compatible = "regulator-fixed"; + status = "okay"; + phandle = <0x75>; + vin-supply = <0x1dd>; + }; - i2c4m4-xfer { - rockchip,pins = <0x01 0x17 0x09 0x19d 0x01 0x16 0x09 0x19d>; - phandle = <0x365>; - }; + qos@fdf66a00 { + compatible = "syscon"; + reg = <0x00 0xfdf66a00 0x00 0x20>; + phandle = <0x98>; + }; - i2c4m1-xfer { - rockchip,pins = <0x02 0x0d 0x09 0x19d 0x02 0x0c 0x09 0x19d>; - phandle = <0x14b>; - }; + phy@fed90000 { + clock-names = "refclk\0immortal\0pclk\0utmi"; + resets = <0x02 0x2f 0x02 0x30 0x02 0x31 0x02 0x32 0x02 0x484>; + clocks = <0x02 0x2b6 0x02 0x280 0x02 0x26a 0x1ca>; + compatible = "rockchip,rk3588-usbdp-phy"; + status = "okay"; + rockchip,dp-lane-mux = <0x02 0x03>; + reg = <0x00 0xfed90000 0x00 0x10000>; + phandle = <0x48b>; + rockchip,usb-grf = <0x74>; + reset-names = "init\0cmn\0lane\0pcs_apb\0pma_apb"; + rockchip,u2phy-grf = <0x1c8>; + rockchip,usbdpphy-grf = <0x1c9>; + rockchip,vo-grf = <0xf5>; + + dp-port { + #phy-cells = <0x00>; + status = "okay"; + phandle = <0x1a5>; }; - i2c5 { + u3-port { + #phy-cells = <0x00>; + status = "okay"; + phandle = <0x1a4>; + }; + }; - i2c5m0-xfer { - rockchip,pins = <0x03 0x17 0x09 0x19d 0x03 0x18 0x09 0x19d>; - phandle = <0x14d>; - }; + jpege-core@fdba0000 { + power-domains = <0x60 0x15>; + iommus = <0xbc>; + rockchip,ccu = <0xbd>; + clock-names = "aclk_vcodec\0hclk_vcodec"; + assigned-clocks = <0x02 0x1ac>; + rockchip,normal-rates = <0x2367b880 0x00>; + assigned-clock-rates = <0x2367b880>; + resets = <0x02 0x2ca 0x02 0x2cb>; + interrupts = <0x00 0x7a 0x04>; + clocks = <0x02 0x1ac 0x02 0x1ad>; + rockchip,srv = <0xb8>; + rockchip,taskqueue-node = <0x02>; + rockchip,disable-auto-freq; + compatible = "rockchip,vpu-jpege-core"; + status = "okay"; + interrupt-names = "irq_jpege0"; + rockchip,skip-pmu-idle-request; + reg = <0x00 0xfdba0000 0x00 0x400>; + phandle = <0x26d>; + reset-names = "video_a\0video_h"; + }; - i2c5m1-xfer { - rockchip,pins = <0x04 0x0e 0x09 0x19d 0x04 0x0f 0x09 0x19d>; - phandle = <0x366>; - }; + vcc5v0-sys { + regulator-max-microvolt = <0x4c4b40>; + regulator-boot-on; + regulator-always-on; + regulator-min-microvolt = <0x4c4b40>; + regulator-name = "vcc5v0_sys"; + compatible = "regulator-fixed"; + phandle = <0x78>; + vin-supply = <0x1cd>; + }; - i2c5m2-xfer { - rockchip,pins = <0x04 0x06 0x09 0x19d 0x04 0x07 0x09 0x19d>; - phandle = <0x367>; - }; + pwm@fd8b0000 { + pinctrl-names = "active"; + pinctrl-0 = <0x7e>; + clock-names = "pwm\0pclk"; + interrupts = <0x00 0x158 0x04>; + clocks = <0x02 0x2a5 0x02 0x2a4>; + #pwm-cells = <0x03>; + compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; + status = "disabled"; + reg = <0x00 0xfd8b0000 0x00 0x10>; + phandle = <0x261>; + }; - i2c5m3-xfer { - rockchip,pins = <0x01 0x0e 0x09 0x19d 0x01 0x0f 0x09 0x19d>; - phandle = <0x368>; - }; + vop@fdd90000 { + power-domains = <0x60 0x18>; + iommus = <0xd6>; + rockchip,vop-grf = <0xd7>; + clock-names = "aclk_vop\0hclk_vop\0dclk_vp0\0dclk_vp1\0dclk_vp2\0dclk_vp3\0pclk_vop\0dclk_src_vp0\0dclk_src_vp1\0dclk_src_vp2"; + reg-names = "regs\0gamma_lut"; + assigned-clocks = <0x02 0x270>; + assigned-clock-rates = <0x2cb41780>; + resets = <0x02 0x349 0x02 0x348 0x02 0x34d 0x02 0x350 0x02 0x351 0x02 0x352>; + interrupts = <0x00 0x9c 0x04>; + clocks = <0x02 0x270 0x02 0x26f 0x02 0x274 0x02 0x275 0x02 0x276 0x02 0x277 0x02 0x26e 0x02 0x271 0x02 0x272 0x02 0x273>; + compatible = "rockchip,rk3588-vop"; + rockchip,pmu = <0xd9>; + status = "okay"; + rockchip,grf = <0xc8>; + reg = <0x00 0xfdd90000 0x00 0x4200 0x00 0xfdd95000 0x00 0x1000>; + phandle = <0x278>; + rockchip,vo1-grf = <0xd8>; + reset-names = "axi\0ahb\0dclk_vp0\0dclk_vp1\0dclk_vp2\0dclk_vp3"; - i2c5m4-xfer { - rockchip,pins = <0x02 0x0e 0x09 0x19d 0x02 0x0f 0x09 0x19d>; - phandle = <0x369>; - }; - }; + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + phandle = <0x34>; - i2c6 { + port@0 { + rockchip,primary-plane = <0x02>; + rockchip,plane-mask = <0x05>; + #address-cells = <0x01>; + assigned-clocks = <0x02 0x270>; + assigned-clock-rates = <0x2faf0800>; + #size-cells = <0x00>; + reg = <0x00>; + phandle = <0x279>; - i2c6m0-xfer { - rockchip,pins = <0x00 0x18 0x09 0x19d 0x00 0x17 0x09 0x19d>; - phandle = <0x178>; - }; - - i2c6m1-xfer { - rockchip,pins = <0x01 0x13 0x09 0x19d 0x01 0x12 0x09 0x19d>; - phandle = <0x36a>; - }; - - i2c6m3-xfer { - rockchip,pins = <0x04 0x09 0x09 0x19d 0x04 0x08 0x09 0x19d>; - phandle = <0x36b>; - }; - - i2c6m4-xfer { - rockchip,pins = <0x03 0x01 0x09 0x19d 0x03 0x00 0x09 0x19d>; - phandle = <0x36c>; - }; + endpoint@5 { + remote-endpoint = <0xdf>; + reg = <0x05>; + phandle = <0x1ad>; + }; - i2c6m2-xfer { - rockchip,pins = <0x02 0x13 0x09 0x19d 0x02 0x12 0x09 0x19d>; - phandle = <0x36d>; - }; - }; + endpoint@3 { + remote-endpoint = <0xdd>; + reg = <0x03>; + phandle = <0x1a6>; + }; - i2c7 { + endpoint@1 { + remote-endpoint = <0xdb>; + reg = <0x01>; + phandle = <0x102>; + }; - i2c7m0-xfer { - rockchip,pins = <0x01 0x18 0x09 0x19d 0x01 0x19 0x09 0x19d>; - phandle = <0x185>; - }; + endpoint@4 { + remote-endpoint = <0xde>; + reg = <0x04>; + phandle = <0x1b0>; + }; - i2c7m2-xfer { - rockchip,pins = <0x03 0x1a 0x09 0x19d 0x03 0x1b 0x09 0x19d>; - phandle = <0x36e>; - }; + endpoint@2 { + remote-endpoint = <0xdc>; + reg = <0x02>; + phandle = <0x3c>; + }; - i2c7m3-xfer { - rockchip,pins = <0x04 0x0a 0x09 0x19d 0x04 0x0b 0x09 0x19d>; - phandle = <0x36f>; + endpoint@0 { + remote-endpoint = <0xda>; + reg = <0x00>; + phandle = <0xf7>; + }; }; - i2c7m1-xfer { - rockchip,pins = <0x04 0x13 0x09 0x19d 0x04 0x14 0x09 0x19d>; - phandle = <0x370>; - }; - }; + port@3 { + rockchip,primary-plane = <0x09>; + rockchip,plane-mask = <0x280>; + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x03>; + phandle = <0x27c>; - i2c8 { + endpoint@1 { + remote-endpoint = <0xef>; + reg = <0x01>; + phandle = <0x3a>; + }; - i2c8m0-xfer { - rockchip,pins = <0x04 0x1a 0x09 0x19d 0x04 0x1b 0x09 0x19d>; - phandle = <0x186>; - }; + endpoint@2 { + remote-endpoint = <0xf0>; + reg = <0x02>; + phandle = <0x3d>; + }; - i2c8m2-xfer { - rockchip,pins = <0x01 0x1e 0x09 0x19d 0x01 0x1f 0x09 0x19d>; - phandle = <0x371>; + endpoint@0 { + remote-endpoint = <0xee>; + reg = <0x00>; + phandle = <0x39>; + }; }; - i2c8m3-xfer { - rockchip,pins = <0x04 0x10 0x09 0x19d 0x04 0x11 0x09 0x19d>; - phandle = <0x372>; - }; + port@1 { + rockchip,primary-plane = <0x03>; + rockchip,plane-mask = <0x0a>; + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x01>; + phandle = <0x27a>; - i2c8m4-xfer { - rockchip,pins = <0x03 0x12 0x09 0x19d 0x03 0x13 0x09 0x19d>; - phandle = <0x373>; - }; + endpoint@5 { + remote-endpoint = <0xe5>; + reg = <0x05>; + phandle = <0x3f>; + }; - i2c8m1-xfer { - rockchip,pins = <0x02 0x08 0x09 0x19d 0x02 0x09 0x09 0x19d>; - phandle = <0x374>; - }; - }; + endpoint@3 { + remote-endpoint = <0xe3>; + reg = <0x03>; + phandle = <0x3e>; + }; - i2s0 { + endpoint@1 { + remote-endpoint = <0xe1>; + reg = <0x01>; + phandle = <0x103>; + }; - i2s0-idle { - rockchip,pins = <0x01 0x15 0x00 0x198 0x01 0x13 0x00 0x198>; - phandle = <0x11f>; - }; + endpoint@4 { + remote-endpoint = <0xe4>; + reg = <0x04>; + phandle = <0x1b1>; + }; - i2s0-lrck { - rockchip,pins = <0x01 0x15 0x01 0x19d>; - phandle = <0x11b>; - }; + endpoint@2 { + remote-endpoint = <0xe2>; + reg = <0x02>; + phandle = <0xff>; + }; - i2s0-mclk { - rockchip,pins = <0x01 0x12 0x01 0x19d>; - phandle = <0x17a>; + endpoint@0 { + remote-endpoint = <0xe0>; + reg = <0x00>; + phandle = <0x38>; + }; }; - i2s0-sclk { - rockchip,pins = <0x01 0x13 0x01 0x19d>; - phandle = <0x11c>; - }; + port@2 { + rockchip,primary-plane = <0x08>; + rockchip,plane-mask = <0x140>; + #address-cells = <0x01>; + assigned-clocks = <0x02 0x273>; + assigned-clock-parents = <0x02 0x04>; + #size-cells = <0x00>; + reg = <0x02>; + phandle = <0x27b>; - i2s0-sdi0 { - rockchip,pins = <0x01 0x1c 0x02 0x198>; - phandle = <0x11d>; - }; + endpoint@5 { + remote-endpoint = <0xeb>; + reg = <0x05>; + phandle = <0x1a7>; + }; - i2s0-sdi1 { - rockchip,pins = <0x01 0x1b 0x02 0x198>; - phandle = <0x375>; - }; + endpoint@3 { + remote-endpoint = <0xe9>; + reg = <0x03>; + phandle = <0xf3>; + }; - i2s0-sdi2 { - rockchip,pins = <0x01 0x1a 0x02 0x198>; - phandle = <0x376>; - }; + endpoint@1 { + remote-endpoint = <0xe7>; + reg = <0x01>; + phandle = <0x3b>; + }; - i2s0-sdi3 { - rockchip,pins = <0x01 0x19 0x02 0x198>; - phandle = <0x377>; - }; + endpoint@6 { + remote-endpoint = <0xec>; + reg = <0x06>; + phandle = <0x1b2>; + }; - i2s0-sdo0 { - rockchip,pins = <0x01 0x17 0x01 0x198>; - phandle = <0x11e>; - }; + endpoint@4 { + remote-endpoint = <0xea>; + reg = <0x04>; + phandle = <0xf4>; + }; - i2s0-sdo1 { - rockchip,pins = <0x01 0x18 0x01 0x198>; - phandle = <0x378>; - }; + endpoint@2 { + remote-endpoint = <0xe8>; + reg = <0x02>; + phandle = <0x100>; + }; - i2s0-sdo2 { - rockchip,pins = <0x01 0x19 0x01 0x198>; - phandle = <0x379>; - }; + endpoint@0 { + remote-endpoint = <0xe6>; + reg = <0x00>; + phandle = <0xf8>; + }; - i2s0-sdo3 { - rockchip,pins = <0x01 0x1a 0x01 0x198>; - phandle = <0x37a>; + endpoint@7 { + remote-endpoint = <0xed>; + reg = <0x07>; + phandle = <0x1ae>; + }; }; }; + }; - i2s1 { + csi2-dphy1 { + rockchip,hw = <0x2d 0x2e>; + phy-names = "dcphy0\0dcphy1"; + compatible = "rockchip,rk3588-csi2-dphy"; + status = "disabled"; + phys = <0x2f 0x30>; + phandle = <0x210>; + }; - i2s1m0-lrck { - rockchip,pins = <0x04 0x02 0x03 0x19d>; - phandle = <0x120>; - }; - - i2s1m0-mclk { - rockchip,pins = <0x04 0x00 0x03 0x19d>; - phandle = <0x37b>; - }; - - i2s1m0-sclk { - rockchip,pins = <0x04 0x01 0x03 0x19d>; - phandle = <0x121>; - }; - - i2s1m0-sdi0 { - rockchip,pins = <0x04 0x05 0x03 0x198>; - phandle = <0x122>; - }; + pwm@febe0000 { + pinctrl-names = "active"; + pinctrl-0 = <0x16d>; + clock-names = "pwm\0pclk"; + interrupts = <0x00 0x15c 0x04>; + clocks = <0x02 0x57 0x02 0x56>; + #pwm-cells = <0x03>; + compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; + status = "disabled"; + reg = <0x00 0xfebe0000 0x00 0x10>; + phandle = <0x2d5>; + }; - i2s1m0-sdi1 { - rockchip,pins = <0x04 0x06 0x03 0x198>; - phandle = <0x123>; - }; + clocks { + #address-cells = <0x02>; + #size-cells = <0x02>; + compatible = "simple-bus"; + ranges; - i2s1m0-sdi2 { - rockchip,pins = <0x04 0x07 0x03 0x198>; - phandle = <0x124>; - }; + hclk_nvm@fd7c087c { + clock-names = "link"; + clocks = <0x02 0x141>; + #clock-cells = <0x00>; + #power-domain-cells = <0x01>; + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c087c 0x00 0x10>; + phandle = <0x03>; + }; - i2s1m0-sdi3 { - rockchip,pins = <0x04 0x08 0x03 0x198>; - phandle = <0x125>; - }; + mclkin-i2s0 { + clock-output-names = "i2s0_mclkin"; + #clock-cells = <0x00>; + clock-frequency = <0x00>; + compatible = "fixed-clock"; + phandle = <0x204>; + }; - i2s1m0-sdo0 { - rockchip,pins = <0x04 0x09 0x03 0x198>; - phandle = <0x126>; - }; + hclk_rkvenc1_pre@fd7c08c0 { + clock-names = "link"; + clocks = <0x02 0x1c4>; + #clock-cells = <0x00>; + #power-domain-cells = <0x01>; + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c08c0 0x00 0x10>; + phandle = <0x1fe>; + }; - i2s1m0-sdo1 { - rockchip,pins = <0x04 0x0a 0x03 0x198>; - phandle = <0x127>; - }; + mclkout-i2s1@fd58c318 { + rockchip,clk-ignore-unused; + clock-output-names = "i2s1_mclkout_to_io"; + clocks = <0x02 0x291>; + rockchip,bit-set-to-disable; + #clock-cells = <0x00>; + compatible = "rockchip,clk-out"; + reg = <0x00 0xfd58c318 0x00 0x04>; + phandle = <0x208>; + rockchip,bit-shift = <0x01>; + }; - i2s1m0-sdo2 { - rockchip,pins = <0x04 0x0b 0x03 0x198>; - phandle = <0x128>; - }; + mclkout-i2s1@fd58a000 { + rockchip,clk-ignore-unused; + clock-output-names = "i2s1m1_mclkout_to_io"; + clocks = <0x02 0x291>; + #clock-cells = <0x00>; + compatible = "rockchip,clk-out"; + reg = <0x00 0xfd58a000 0x00 0x04>; + phandle = <0x209>; + rockchip,bit-shift = <0x06>; + }; - i2s1m0-sdo3 { - rockchip,pins = <0x04 0x0c 0x03 0x198>; - phandle = <0x129>; - }; + aclk_hdcp0_pre@fd7c08dc { + clock-names = "link"; + clocks = <0x02 0x26c>; + #clock-cells = <0x00>; + #power-domain-cells = <0x01>; + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c08dc 0x00 0x10>; + phandle = <0x1ff>; + }; - i2s1m1-lrck { - rockchip,pins = <0x00 0x0f 0x01 0x19d>; - phandle = <0x37c>; - }; + xin32k { + clock-output-names = "xin32k"; + #clock-cells = <0x00>; + clock-frequency = <0x8000>; + compatible = "fixed-clock"; + phandle = <0x1f2>; + }; - i2s1m1-mclk { - rockchip,pins = <0x00 0x0d 0x01 0x19d>; - phandle = <0x37d>; - }; + aclk_usb@fd7c08a8 { + clock-names = "link"; + clocks = <0x02 0x263>; + #clock-cells = <0x00>; + #power-domain-cells = <0x01>; + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c08a8 0x00 0x10>; + phandle = <0x6a>; + }; - i2s1m1-sclk { - rockchip,pins = <0x00 0x0e 0x01 0x19d>; - phandle = <0x37e>; - }; + hclk_usb@fd7c08a8 { + clock-names = "link"; + clocks = <0x02 0x264>; + #clock-cells = <0x00>; + #power-domain-cells = <0x01>; + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c08a8 0x00 0x10>; + phandle = <0x1f5>; + }; - i2s1m1-sdi0 { - rockchip,pins = <0x00 0x15 0x01 0x198>; - phandle = <0x37f>; - }; + hclk_vo0@fd7c08dc { + clock-names = "link"; + clocks = <0x02 0x26d>; + #clock-cells = <0x00>; + #power-domain-cells = <0x01>; + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c08dc 0x00 0x10>; + phandle = <0x04>; + }; - i2s1m1-sdi1 { - rockchip,pins = <0x00 0x16 0x01 0x198>; - phandle = <0x380>; - }; + pclk_av1_pre@fd7c0910 { + clock-names = "link"; + clocks = <0x02 0x1be>; + #clock-cells = <0x00>; + #power-domain-cells = <0x01>; + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c0910 0x00 0x10>; + phandle = <0x201>; + }; - i2s1m1-sdi2 { - rockchip,pins = <0x00 0x17 0x01 0x198>; - phandle = <0x381>; - }; + mclkout-i2s2@fd58c318 { + rockchip,clk-ignore-unused; + clock-output-names = "i2s2_mclkout_to_io"; + clocks = <0x02 0x28>; + rockchip,bit-set-to-disable; + #clock-cells = <0x00>; + compatible = "rockchip,clk-out"; + reg = <0x00 0xfd58c318 0x00 0x04>; + phandle = <0x20a>; + rockchip,bit-shift = <0x02>; + }; - i2s1m1-sdi3 { - rockchip,pins = <0x00 0x18 0x01 0x198>; - phandle = <0x382>; - }; + aclk_vdpu_low_pre@fd7c08b0 { + clock-names = "link"; + clocks = <0x02 0x1bc>; + #clock-cells = <0x00>; + #power-domain-cells = <0x01>; + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c08b0 0x00 0x10>; + phandle = <0x1f4>; + }; - i2s1m1-sdo0 { - rockchip,pins = <0x00 0x19 0x01 0x198>; - phandle = <0x383>; - }; + mclkin-i2s3 { + clock-output-names = "i2s3_mclkin"; + #clock-cells = <0x00>; + clock-frequency = <0x00>; + compatible = "fixed-clock"; + phandle = <0x207>; + }; - i2s1m1-sdo1 { - rockchip,pins = <0x00 0x1a 0x01 0x198>; - phandle = <0x384>; - }; + spll { + clock-output-names = "spll"; + #clock-cells = <0x00>; + clock-frequency = <0x29d7ab80>; + compatible = "fixed-clock"; + phandle = <0x1f1>; + }; - i2s1m1-sdo2 { - rockchip,pins = <0x00 0x1c 0x01 0x198>; - phandle = <0x385>; - }; + xin24m { + clock-output-names = "xin24m"; + #clock-cells = <0x00>; + clock-frequency = <0x16e3600>; + compatible = "fixed-clock"; + phandle = <0x1f3>; + }; - i2s1m1-sdo3 { - rockchip,pins = <0x00 0x1d 0x01 0x198>; - phandle = <0x386>; - }; + aclk_av1_pre@fd7c0910 { + clock-names = "link"; + clocks = <0x02 0x1bc>; + #clock-cells = <0x00>; + #power-domain-cells = <0x01>; + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c0910 0x00 0x10>; + phandle = <0x202>; }; - i2s2 { - - i2s2m1-idle { - rockchip,pins = <0x03 0x0e 0x00 0x198 0x03 0x0d 0x00 0x198>; - phandle = <0x12c>; - }; - - i2s2m1-lrck { - rockchip,pins = <0x03 0x0e 0x03 0x19d>; - phandle = <0x12d>; - }; - - i2s2m1-mclk { - rockchip,pins = <0x03 0x0c 0x03 0x19d>; - phandle = <0x387>; - }; - - i2s2m1-sclk { - rockchip,pins = <0x03 0x0d 0x03 0x19d>; - phandle = <0x12e>; - }; - - i2s2m1-sdi { - rockchip,pins = <0x03 0x0a 0x03 0x198>; - phandle = <0x12a>; - }; - - i2s2m1-sdo { - rockchip,pins = <0x03 0x0b 0x03 0x198>; - phandle = <0x12b>; - }; - - i2s2m0-idle { - rockchip,pins = <0x02 0x10 0x00 0x198 0x02 0x0f 0x00 0x198>; - phandle = <0x388>; - }; - - i2s2m0-lrck { - rockchip,pins = <0x02 0x10 0x02 0x19d>; - phandle = <0x389>; - }; - - i2s2m0-mclk { - rockchip,pins = <0x02 0x0e 0x02 0x19d>; - phandle = <0x38a>; - }; - - i2s2m0-sclk { - rockchip,pins = <0x02 0x0f 0x02 0x19d>; - phandle = <0x38b>; - }; - - i2s2m0-sdi { - rockchip,pins = <0x02 0x13 0x02 0x198>; - phandle = <0x38c>; - }; - - i2s2m0-sdo { - rockchip,pins = <0x04 0x13 0x02 0x198>; - phandle = <0x38d>; - }; + pclk_vo0_grf@fd7c08dc { + clock-names = "link"; + clocks = <0x04>; + #clock-cells = <0x00>; + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c08dc 0x00 0x04>; + phandle = <0x72>; }; - i2s3 { - - i2s3-idle { - rockchip,pins = <0x03 0x02 0x00 0x198 0x03 0x01 0x00 0x198>; - phandle = <0x131>; - }; - - i2s3-lrck { - rockchip,pins = <0x03 0x02 0x03 0x19d>; - phandle = <0x132>; - }; + aclk_jpeg_decoder_pre@fd7c08b0 { + clock-names = "link"; + clocks = <0x02 0x1bc>; + #clock-cells = <0x00>; + #power-domain-cells = <0x01>; + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c08b0 0x00 0x10>; + phandle = <0x1fc>; + }; - i2s3-mclk { - rockchip,pins = <0x03 0x00 0x03 0x19d>; - phandle = <0x38e>; - }; + aclk_hdcp1_pre@fd7c08ec { + clock-names = "link"; + clocks = <0x02 0x263>; + #clock-cells = <0x00>; + #power-domain-cells = <0x01>; + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c08ec 0x00 0x10>; + phandle = <0x200>; + }; - i2s3-sclk { - rockchip,pins = <0x03 0x01 0x03 0x19d>; - phandle = <0x133>; - }; + mclkin-i2s1 { + clock-output-names = "i2s1_mclkin"; + #clock-cells = <0x00>; + clock-frequency = <0x00>; + compatible = "fixed-clock"; + phandle = <0x205>; + }; - i2s3-sdi { - rockchip,pins = <0x03 0x04 0x03 0x198>; - phandle = <0x12f>; - }; + hclk_vo1@fd7c08ec { + clock-names = "link"; + clocks = <0x02 0x264>; + #clock-cells = <0x00>; + #power-domain-cells = <0x01>; + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c08ec 0x00 0x10>; + phandle = <0x05>; + }; - i2s3-sdo { - rockchip,pins = <0x03 0x03 0x03 0x198>; - phandle = <0x130>; - }; + mclkout-i2s3@fd58c318 { + rockchip,clk-ignore-unused; + clock-output-names = "i2s3_mclkout_to_io"; + clocks = <0x02 0x2e>; + rockchip,bit-set-to-disable; + #clock-cells = <0x00>; + compatible = "rockchip,clk-out"; + reg = <0x00 0xfd58c318 0x00 0x04>; + phandle = <0x20b>; + rockchip,bit-shift = <0x07>; }; - jtag { + aclk_rkvdec0_pre@fd7c08a0 { + clock-names = "link"; + clocks = <0x02 0x1bc>; + #clock-cells = <0x00>; + #power-domain-cells = <0x01>; + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c08a0 0x00 0x10>; + phandle = <0x1f8>; + }; - jtagm0-pins { - rockchip,pins = <0x04 0x1a 0x05 0x198 0x04 0x1b 0x05 0x198>; - phandle = <0x38f>; - }; + aclk_isp1_pre@fd7c0868 { + clock-names = "link"; + clocks = <0x02 0x1e0>; + #clock-cells = <0x00>; + #power-domain-cells = <0x01>; + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c0868 0x00 0x10>; + phandle = <0x1f7>; + }; - jtagm1-pins { - rockchip,pins = <0x04 0x18 0x05 0x198 0x04 0x19 0x05 0x198>; - phandle = <0x390>; - }; + pclk_vo1_grf@fd7c08ec { + clock-names = "link"; + clocks = <0x05>; + #clock-cells = <0x00>; + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c08ec 0x00 0x04>; + phandle = <0x73>; + }; - jtagm2-pins { - rockchip,pins = <0x00 0x0d 0x02 0x198 0x00 0x0e 0x02 0x198>; - phandle = <0x391>; - }; + aclk_rkvdec1_pre@fd7c08a4 { + clock-names = "link"; + clocks = <0x02 0x1bc>; + #clock-cells = <0x00>; + #power-domain-cells = <0x01>; + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c08a4 0x00 0x10>; + phandle = <0x1fa>; }; - litcpu { + hclk_rkvdec0_pre@fd7c08a0 { + clock-names = "link"; + clocks = <0x02 0x1be>; + #clock-cells = <0x00>; + #power-domain-cells = <0x01>; + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c08a0 0x00 0x10>; + phandle = <0x1f9>; + }; - litcpu-pins { - rockchip,pins = <0x00 0x1b 0x01 0x198>; - phandle = <0x392>; - }; + hclk_sdio_pre@fd7c092c { + clock-names = "link"; + clocks = <0x03>; + #clock-cells = <0x00>; + #power-domain-cells = <0x01>; + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c092c 0x00 0x10>; + phandle = <0x203>; }; - mcu { + hclk_rkvdec1_pre@fd7c08a4 { + clock-names = "link"; + clocks = <0x02 0x1be>; + #clock-cells = <0x00>; + #power-domain-cells = <0x01>; + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c08a4 0x00 0x10>; + phandle = <0x1fb>; + }; - mcum0-pins { - rockchip,pins = <0x04 0x1c 0x05 0x198 0x04 0x1d 0x05 0x198>; - phandle = <0x393>; - }; + hclk_isp1_pre@fd7c0868 { + clock-names = "link"; + clocks = <0x02 0x1e1>; + #clock-cells = <0x00>; + #power-domain-cells = <0x01>; + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c0868 0x00 0x10>; + phandle = <0x1f6>; + }; - mcum1-pins { - rockchip,pins = <0x03 0x1c 0x06 0x198 0x03 0x1d 0x06 0x198>; - phandle = <0x394>; - }; + mclkout-i2s0@fd58c318 { + rockchip,clk-ignore-unused; + clock-output-names = "i2s0_mclkout_to_io"; + clocks = <0x02 0x39>; + rockchip,bit-set-to-disable; + #clock-cells = <0x00>; + compatible = "rockchip,clk-out"; + reg = <0x00 0xfd58c318 0x00 0x04>; + phandle = <0x179>; + rockchip,bit-shift = <0x00>; }; - mipi { + mclkin-i2s2 { + clock-output-names = "i2s2_mclkin"; + #clock-cells = <0x00>; + clock-frequency = <0x00>; + compatible = "fixed-clock"; + phandle = <0x206>; + }; - mipim0-camera0-clk { - rockchip,pins = <0x04 0x09 0x01 0x198>; - phandle = <0x395>; - }; - - mipim0-camera1-clk { - rockchip,pins = <0x01 0x0e 0x02 0x198>; - phandle = <0x396>; - }; + aclk_rkvenc1_pre@fd7c08c0 { + clock-names = "link"; + clocks = <0x02 0x1c5>; + #clock-cells = <0x00>; + #power-domain-cells = <0x01>; + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c08c0 0x00 0x10>; + phandle = <0x1fd>; + }; + }; - mipim0-camera2-clk { - rockchip,pins = <0x01 0x0f 0x02 0x198>; - phandle = <0x397>; - }; + usb@fc8c0000 { + power-domains = <0x60 0x1f>; + phy-names = "usb2-phy"; + clock-names = "usbhost\0arbiter\0utmi\0alk_usb"; + interrupts = <0x00 0xdb 0x04>; + clocks = <0x02 0x19f 0x02 0x1a0 0x6d 0x6a>; + compatible = "rockchip,rk3588-ohci\0generic-ohci"; + status = "okay"; + phys = <0x6f>; + reg = <0x00 0xfc8c0000 0x00 0x40000>; + phandle = <0x6e>; + }; - mipim0-camera3-clk { - rockchip,pins = <0x01 0x1e 0x02 0x198>; - phandle = <0x398>; - }; + qos@fdf40000 { + compatible = "syscon"; + reg = <0x00 0xfdf40000 0x00 0x20>; + phandle = <0xa8>; + }; - mipim0-camera4-clk { - rockchip,pins = <0x01 0x1f 0x02 0x198>; - phandle = <0x399>; - }; + mipi0-csi2 { + rockchip,hw = <0x47 0x48 0x49 0x4a 0x4b 0x4c>; + compatible = "rockchip,rk3588-mipi-csi2"; + status = "disabled"; + phandle = <0x224>; + }; - mipim1-camera0-clk { - rockchip,pins = <0x03 0x05 0x04 0x198>; - phandle = <0x39a>; - }; + cluster1-opp-table { + rockchip,pvtm-offset = <0x18>; + rockchip,pvtm-sample-time = <0x44c>; + rockchip,pvtm-hw = <0x06>; + nvmem-cells = <0x24 0x25 0x21>; + rockchip,low-temp = <0x2710>; + rockchip,pvtm-voltage-sel-hw = <0x00 0x603 0x00 0x604 0x61c 0x01 0x61d 0x635 0x02 0x636 0x64e 0x03 0x64f 0x66c 0x04 0x66d 0x68a 0x05 0x68b 0x6a8 0x06 0x6a9 0x270f 0x07>; + rockchip,pvtm-thermal-zone = "soc-thermal"; + rockchip,pvtm-low-len-sel = <0x03>; + rockchip,high-temp-max-freq = <0x21b100>; + opp-shared; + rockchip,reboot-freq = <0x1b7740>; + rockchip,pvtm-freq = <0x188940>; + rockchip,pvtm-ref-temp = <0x19>; + low-volt-mem-read-margin = <0x04>; + volt-mem-read-margin = <0xd0bd8 0x01 0xbac48 0x02 0xa4cb8 0x03 0x78d98 0x04>; + compatible = "operating-points-v2"; + rockchip,low-temp-min-volt = <0xb71b0>; + rockchip,grf = <0x26>; + nvmem-cell-names = "leakage\0opp-info\0specification_serial_number"; + rockchip,pvtm-voltage-sel = <0x00 0x63b 0x00 0x63c 0x64f 0x01 0x650 0x668 0x02 0x669 0x68b 0x03 0x68c 0x6ae 0x04 0x6af 0x6cf 0x05 0x6d0 0x6f0 0x06 0x6f1 0x270f 0x07>; + phandle = <0x16>; + rockchip,idle-threshold-freq = <0x21b100>; + rockchip,pvtm-temp-prop = <0x10e 0x10e>; + rockchip,temp-hysteresis = <0x1388>; + rockchip,high-temp = <0x14c08>; + rockchip,pvtm-pvtpll; + rockchip,supported-hw; + intermediate-threshold-freq = <0xf6180>; + rockchip,pvtm-volt = <0xb71b0>; - mipim1-camera1-clk { - rockchip,pins = <0x03 0x06 0x04 0x198>; - phandle = <0x180>; - }; + opp-j-m-2016000000 { + opp-microvolt = <0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0>; + opp-microvolt-L6 = <0xd8acc 0xd8acc 0xe7ef0 0xd8acc 0xd8acc 0xe7ef0>; + opp-microvolt-L4 = <0xdec74 0xdec74 0xe7ef0 0xdec74 0xdec74 0xe7ef0>; + opp-microvolt-L2 = <0xe4e1c 0xe4e1c 0xe7ef0 0xe4e1c 0xe4e1c 0xe7ef0>; + opp-hz = <0x00 0x7829b800>; + opp-supported-hw = <0x06 0xffff>; + opp-microvolt-L7 = <0xd59f8 0xd59f8 0xe7ef0 0xd59f8 0xd59f8 0xe7ef0>; + opp-microvolt-L5 = <0xdbba0 0xdbba0 0xe7ef0 0xdbba0 0xdbba0 0xe7ef0>; + opp-microvolt-L3 = <0xe1d48 0xe1d48 0xe7ef0 0xe1d48 0xe1d48 0xe7ef0>; + clock-latency-ns = <0x9c40>; + opp-microvolt-L1 = <0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0>; + }; - mipim1-camera2-clk { - rockchip,pins = <0x03 0x07 0x04 0x198>; - phandle = <0x39b>; - }; + opp-1200000000 { + opp-microvolt = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; + opp-hz = <0x00 0x47868c00>; + opp-supported-hw = <0xf9 0xffff>; + clock-latency-ns = <0x9c40>; + }; - mipim1-camera3-clk { - rockchip,pins = <0x03 0x08 0x04 0x198>; - phandle = <0x39c>; - }; + opp-j-m-1416000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + opp-hz = <0x00 0x54667200>; + opp-microvolt-L0 = <0xba284 0xba284 0xe7ef0 0xba284 0xba284 0xe7ef0>; + opp-supported-hw = <0x06 0xffff>; + opp-suspend; + clock-latency-ns = <0x9c40>; + }; - mipim1-camera4-clk { - rockchip,pins = <0x03 0x09 0x04 0x198>; - phandle = <0x39d>; - }; + opp-1008000000 { + opp-microvolt = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; + opp-hz = <0x00 0x3c14dc00>; + opp-supported-hw = <0xf9 0xffff>; + clock-latency-ns = <0x9c40>; + }; - mipi-te0 { - rockchip,pins = <0x03 0x12 0x02 0x198>; - phandle = <0x39e>; - }; + opp-2256000000 { + opp-microvolt = <0xf4240 0xf4240 0xf4240 0xf4240 0xf4240 0xf4240>; + opp-hz = <0x00 0x8677d400>; + opp-supported-hw = <0xf9 0x13>; + clock-latency-ns = <0x9c40>; + }; - mipi-te1 { - rockchip,pins = <0x03 0x13 0x02 0x198>; - phandle = <0x39f>; - }; + opp-j-m-1200000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + opp-hz = <0x00 0x47868c00>; + opp-supported-hw = <0x06 0xffff>; + clock-latency-ns = <0x9c40>; }; - npu { + opp-j-m-1008000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + opp-hz = <0x00 0x3c14dc00>; + opp-supported-hw = <0x06 0xffff>; + clock-latency-ns = <0x9c40>; + }; - npu-pins { - rockchip,pins = <0x00 0x16 0x02 0x198>; - phandle = <0x3a0>; - }; + opp-j-m-816000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + opp-hz = <0x00 0x30a32c00>; + opp-supported-hw = <0x06 0xffff>; + clock-latency-ns = <0x9c40>; }; - pcie20x1 { + opp-2400000000 { + opp-microvolt = <0xf4240 0xf4240 0xf4240 0xf4240 0xf4240 0xf4240>; + opp-hz = <0x00 0x8f0d1800>; + opp-supported-hw = <0xf9 0x80>; + clock-latency-ns = <0x9c40>; + }; - pcie20x1m0-pins { - rockchip,pins = <0x03 0x17 0x04 0x198 0x03 0x19 0x04 0x198 0x03 0x18 0x04 0x198>; - phandle = <0x3a1>; - }; + opp-1800000000 { + opp-microvolt = <0xcf850 0xcf850 0xf4240 0xcf850 0xcf850 0xf4240>; + opp-microvolt-L6 = <0xbd358 0xbd358 0xf4240 0xbd358 0xbd358 0xf4240>; + opp-microvolt-L4 = <0xc3500 0xc3500 0xf4240 0xc3500 0xc3500 0xf4240>; + opp-microvolt-L2 = <0xc96a8 0xc96a8 0xf4240 0xc96a8 0xc96a8 0xf4240>; + opp-hz = <0x00 0x6b49d200>; + opp-supported-hw = <0xf9 0xffff>; + opp-microvolt-L7 = <0xba284 0xba284 0xf4240 0xba284 0xba284 0xf4240>; + opp-microvolt-L5 = <0xc042c 0xc042c 0xf4240 0xc042c 0xc042c 0xf4240>; + opp-microvolt-L3 = <0xc65d4 0xc65d4 0xf4240 0xc65d4 0xc65d4 0xf4240>; + clock-latency-ns = <0x9c40>; + opp-microvolt-L1 = <0xcc77c 0xcc77c 0xf4240 0xcc77c 0xcc77c 0xf4240>; + }; - pcie20x1m1-pins { - rockchip,pins = <0x04 0x0f 0x04 0x198 0x04 0x11 0x04 0x198 0x04 0x10 0x04 0x198>; - phandle = <0x3a2>; - }; + opp-j-m-600000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + opp-hz = <0x00 0x23c34600>; + opp-supported-hw = <0x06 0xffff>; + clock-latency-ns = <0x9c40>; + }; - pcie20x1-2-button-rstn { - rockchip,pins = <0x04 0x0b 0x04 0x198>; - phandle = <0x3a3>; - }; + opp-2208000000 { + opp-microvolt = <0xf116c 0xf116c 0xf4240 0xf116c 0xf116c 0xf4240>; + opp-microvolt-L6 = <0xe1d48 0xe1d48 0xf4240 0xe1d48 0xe1d48 0xf4240>; + opp-microvolt-L4 = <0xeafc4 0xeafc4 0xf4240 0xeafc4 0xeafc4 0xf4240>; + opp-microvolt-L2 = <0xeafc4 0xeafc4 0xf4240 0xeafc4 0xeafc4 0xf4240>; + opp-hz = <0x00 0x839b6800>; + opp-supported-hw = <0xf9 0xffff>; + opp-microvolt-L7 = <0xdec74 0xdec74 0xf4240 0xdec74 0xdec74 0xf4240>; + opp-microvolt-L5 = <0xe7ef0 0xe7ef0 0xf4240 0xe7ef0 0xe7ef0 0xf4240>; + opp-microvolt-L3 = <0xe7ef0 0xe7ef0 0xf4240 0xe7ef0 0xe7ef0 0xf4240>; + clock-latency-ns = <0x9c40>; + opp-microvolt-L1 = <0xee098 0xee098 0xf4240 0xee098 0xee098 0xf4240>; }; - pcie30phy { + opp-1608000000 { + opp-microvolt = <0xba284 0xba284 0xf4240 0xba284 0xba284 0xf4240>; + opp-microvolt-L6 = <0xaae60 0xaae60 0xf4240 0xaae60 0xaae60 0xf4240>; + opp-microvolt-L4 = <0xb1008 0xb1008 0xf4240 0xb1008 0xb1008 0xf4240>; + opp-microvolt-L2 = <0xb71b0 0xb71b0 0xf4240 0xb71b0 0xb71b0 0xf4240>; + opp-hz = <0x00 0x5fd82200>; + opp-supported-hw = <0xf9 0xffff>; + opp-microvolt-L7 = <0xaae60 0xaae60 0xf4240 0xaae60 0xaae60 0xf4240>; + opp-microvolt-L5 = <0xadf34 0xadf34 0xf4240 0xadf34 0xadf34 0xf4240>; + opp-microvolt-L3 = <0xb40dc 0xb40dc 0xf4240 0xb40dc 0xb40dc 0xf4240>; + clock-latency-ns = <0x9c40>; + }; - pcie30phy-pins { - rockchip,pins = <0x01 0x14 0x04 0x198 0x01 0x19 0x04 0x198>; - phandle = <0x3a4>; - }; + opp-j-m-408000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + opp-hz = <0x00 0x18519600>; + opp-supported-hw = <0x06 0xffff>; + clock-latency-ns = <0x9c40>; }; - pcie30x1 { + opp-j-m-1800000000 { + opp-microvolt = <0xd59f8 0xd59f8 0xe7ef0 0xd59f8 0xd59f8 0xe7ef0>; + opp-microvolt-L6 = <0xc3500 0xc3500 0xe7ef0 0xc3500 0xc3500 0xe7ef0>; + opp-microvolt-L4 = <0xc96a8 0xc96a8 0xe7ef0 0xc96a8 0xc96a8 0xe7ef0>; + opp-microvolt-L2 = <0xcf850 0xcf850 0xe7ef0 0xcf850 0xcf850 0xe7ef0>; + opp-hz = <0x00 0x6b49d200>; + opp-supported-hw = <0x06 0xffff>; + opp-microvolt-L7 = <0xc042c 0xc042c 0xe7ef0 0xc042c 0xc042c 0xe7ef0>; + opp-microvolt-L5 = <0xc65d4 0xc65d4 0xe7ef0 0xc65d4 0xc65d4 0xe7ef0>; + opp-microvolt-L3 = <0xcc77c 0xcc77c 0xe7ef0 0xcc77c 0xcc77c 0xe7ef0>; + clock-latency-ns = <0x9c40>; + opp-microvolt-L1 = <0xd2924 0xd2924 0xe7ef0 0xd2924 0xd2924 0xe7ef0>; + }; - pcie30x1m0-pins { - rockchip,pins = <0x00 0x10 0x0c 0x198 0x00 0x15 0x0c 0x198 0x00 0x14 0x0c 0x198 0x00 0x0d 0x0c 0x198 0x00 0x0f 0x0c 0x198 0x00 0x0e 0x0c 0x198>; - phandle = <0x3a5>; - }; - - pcie30x1m1-pins { - rockchip,pins = <0x04 0x03 0x04 0x198 0x04 0x05 0x04 0x198 0x04 0x04 0x04 0x198 0x04 0x00 0x04 0x198 0x04 0x02 0x04 0x198 0x04 0x01 0x04 0x198>; - phandle = <0x3a6>; - }; - - pcie30x1m2-pins { - rockchip,pins = <0x01 0x0d 0x04 0x198 0x01 0x0c 0x04 0x198 0x01 0x0b 0x04 0x198 0x01 0x00 0x04 0x198 0x01 0x07 0x04 0x198 0x01 0x01 0x04 0x198>; - phandle = <0x3a7>; - }; - - pcie30x1-0-button-rstn { - rockchip,pins = <0x04 0x09 0x04 0x198>; - phandle = <0x3a8>; - }; + opp-2352000000 { + opp-microvolt = <0xf4240 0xf4240 0xf4240 0xf4240 0xf4240 0xf4240>; + opp-hz = <0x00 0x8c30ac00>; + opp-supported-hw = <0xf9 0x48>; + clock-latency-ns = <0x9c40>; + }; - pcie30x1-1-button-rstn { - rockchip,pins = <0x04 0x0a 0x04 0x198>; - phandle = <0x3a9>; - }; + opp-816000000 { + opp-microvolt = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; + opp-hz = <0x00 0x30a32c00>; + opp-supported-hw = <0xf9 0xffff>; + clock-latency-ns = <0x9c40>; }; - pcie30x2 { + opp-j-m-1608000000 { + opp-microvolt = <0xc042c 0xc042c 0xe7ef0 0xc042c 0xc042c 0xe7ef0>; + opp-microvolt-L6 = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + opp-microvolt-L4 = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + opp-microvolt-L2 = <0xbd358 0xbd358 0xe7ef0 0xbd358 0xbd358 0xe7ef0>; + opp-hz = <0x00 0x5fd82200>; + opp-supported-hw = <0x06 0xffff>; + opp-microvolt-L7 = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + opp-microvolt-L5 = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + opp-microvolt-L3 = <0xba284 0xba284 0xe7ef0 0xba284 0xba284 0xe7ef0>; + clock-latency-ns = <0x9c40>; + }; - pcie30x2m0-pins { - rockchip,pins = <0x00 0x19 0x0c 0x198 0x00 0x1c 0x0c 0x198 0x00 0x1a 0x0c 0x198>; - phandle = <0x3aa>; - }; + opp-600000000 { + opp-microvolt = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; + opp-hz = <0x00 0x23c34600>; + opp-supported-hw = <0xf9 0xffff>; + clock-latency-ns = <0x9c40>; + }; - pcie30x2m1-pins { - rockchip,pins = <0x04 0x06 0x04 0x198 0x04 0x08 0x04 0x198 0x04 0x07 0x04 0x198>; - phandle = <0x3ab>; - }; + opp-2016000000 { + opp-microvolt = <0xe1d48 0xe1d48 0xf4240 0xe1d48 0xe1d48 0xf4240>; + opp-microvolt-L6 = <0xcf850 0xcf850 0xf4240 0xcf850 0xcf850 0xf4240>; + opp-microvolt-L4 = <0xd59f8 0xd59f8 0xf4240 0xd59f8 0xd59f8 0xf4240>; + opp-microvolt-L2 = <0xdbba0 0xdbba0 0xf4240 0xdbba0 0xdbba0 0xf4240>; + opp-hz = <0x00 0x7829b800>; + opp-supported-hw = <0xf9 0xffff>; + opp-microvolt-L7 = <0xcc77c 0xcc77c 0xf4240 0xcc77c 0xcc77c 0xf4240>; + opp-microvolt-L5 = <0xd2924 0xd2924 0xf4240 0xd2924 0xd2924 0xf4240>; + opp-microvolt-L3 = <0xd8acc 0xd8acc 0xf4240 0xd8acc 0xd8acc 0xf4240>; + clock-latency-ns = <0x9c40>; + opp-microvolt-L1 = <0xdec74 0xdec74 0xf4240 0xdec74 0xdec74 0xf4240>; + }; - pcie30x2m2-pins { - rockchip,pins = <0x03 0x1a 0x04 0x198 0x03 0x1c 0x04 0x198 0x03 0x1b 0x04 0x198>; - phandle = <0x3ac>; - }; + opp-1416000000 { + opp-microvolt = <0xb1008 0xb1008 0xf4240 0xb1008 0xb1008 0xf4240>; + opp-microvolt-L6 = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; + opp-microvolt-L4 = <0xaae60 0xaae60 0xf4240 0xaae60 0xaae60 0xf4240>; + opp-microvolt-L2 = <0xadf34 0xadf34 0xf4240 0xadf34 0xadf34 0xf4240>; + opp-hz = <0x00 0x54667200>; + opp-supported-hw = <0xf9 0xffff>; + opp-microvolt-L7 = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; + opp-microvolt-L5 = <0xa7d8c 0xa7d8c 0xf4240 0xa7d8c 0xa7d8c 0xf4240>; + opp-microvolt-L3 = <0xaae60 0xaae60 0xf4240 0xaae60 0xaae60 0xf4240>; + clock-latency-ns = <0x9c40>; + }; - pcie30x2m3-pins { - rockchip,pins = <0x01 0x1f 0x04 0x198 0x01 0x0f 0x04 0x198 0x01 0x0e 0x04 0x198>; - phandle = <0x3ad>; - }; + opp-408000000 { + opp-microvolt = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; + opp-hz = <0x00 0x18519600>; + opp-supported-hw = <0xf9 0xffff>; + opp-suspend; + clock-latency-ns = <0x9c40>; + }; - pcie30x2-button-rstn { - rockchip,pins = <0x03 0x11 0x04 0x198>; - phandle = <0x3ae>; - }; + opp-2304000000 { + opp-microvolt = <0xf4240 0xf4240 0xf4240 0xf4240 0xf4240 0xf4240>; + opp-hz = <0x00 0x89544000>; + opp-supported-hw = <0xf9 0x24>; + clock-latency-ns = <0x9c40>; }; + }; - pcie30x4 { + mmc@fe2d0000 { + power-domains = <0x60 0x25>; + fifo-depth = <0x100>; + pinctrl-names = "default"; + pinctrl-0 = <0x119>; + clock-names = "biu\0ciu\0ciu-drive\0ciu-sample"; + interrupts = <0x00 0xcc 0x04>; + clocks = <0x02 0x199 0x02 0x19a 0x02 0x2c0 0x02 0x2c1>; + compatible = "rockchip,rk3588-dw-mshc\0rockchip,rk3288-dw-mshc"; + status = "disabled"; + reg = <0x00 0xfe2d0000 0x00 0x4000>; + phandle = <0x294>; + max-frequency = <0xbebc200>; + }; - pcie30x4m0-pins { - rockchip,pins = <0x00 0x16 0x0c 0x198 0x00 0x18 0x0c 0x198 0x00 0x17 0x0c 0x198>; - phandle = <0x3af>; - }; + rkcif-mipi-lvds-sditf-vir3 { + compatible = "rockchip,rkcif-sditf"; + status = "disabled"; + rockchip,cif = <0x52>; + phandle = <0x22e>; + }; - pcie30x4m1-pins { - rockchip,pins = <0x04 0x0c 0x04 0x198 0x04 0x0e 0x04 0x198 0x04 0x0d 0x04 0x198>; - phandle = <0x3b0>; - }; + serial@feb90000 { + reg-io-width = <0x04>; + pinctrl-names = "default"; + pinctrl-0 = <0x165>; + clock-names = "baudclk\0apb_pclk"; + interrupts = <0x00 0x151 0x04>; + clocks = <0x02 0xcb 0x02 0xb0>; + compatible = "rockchip,rk3588-uart\0snps,dw-apb-uart"; + status = "okay"; + reg = <0x00 0xfeb90000 0x00 0x100>; + phandle = <0x2ce>; + dmas = <0xf1 0x0d 0xf1 0x0e>; + reg-shift = <0x02>; + }; - pcie30x4m2-pins { - rockchip,pins = <0x03 0x14 0x04 0x198 0x03 0x16 0x04 0x198 0x03 0x15 0x04 0x198>; - phandle = <0x3b1>; - }; + i2s@fddf8000 { + power-domains = <0x60 0x1a>; + clock-names = "mclk_tx\0mclk_rx\0hclk"; + assigned-clocks = <0x02 0x239>; + assigned-clock-parents = <0x02 0x05>; + rockchip,capture-only; + resets = <0x02 0x3c3>; + interrupts = <0x00 0xbb 0x04>; + clocks = <0x02 0x23c 0x02 0x23c 0x02 0x238>; + dma-names = "rx"; + #sound-dai-cells = <0x00>; + compatible = "rockchip,rk3588-i2s-tdm"; + status = "okay"; + reg = <0x00 0xfddf8000 0x00 0x1000>; + phandle = <0x1ec>; + dmas = <0xf2 0x15>; + reset-names = "rx-m"; + }; - pcie30x4m3-pins { - rockchip,pins = <0x01 0x08 0x04 0x198 0x01 0x0a 0x04 0x198 0x01 0x09 0x04 0x198>; - phandle = <0x3b2>; - }; + phy@fee20000 { + rockchip,pipe-grf = <0x76>; + clock-names = "refclk\0apbclk\0phpclk"; + assigned-clocks = <0x02 0x2bf>; + assigned-clock-rates = <0x5f5e100>; + resets = <0x02 0x20007 0x02 0x4d8>; + clocks = <0x02 0x2bf 0x02 0x187 0x02 0x166>; + #phy-cells = <0x01>; + compatible = "rockchip,rk3588-naneng-combphy"; + status = "disabled"; + rockchip,pipe-phy-grf = <0x195>; + reg = <0x00 0xfee20000 0x00 0x100>; + phandle = <0x70>; + reset-names = "combphy-apb\0combphy"; + rockchip,pcie1ln-sel-bits = <0x100 0x01 0x01 0x00>; + }; - pcie30x4-button-rstn { - rockchip,pins = <0x03 0x1d 0x04 0x198>; - phandle = <0x3b3>; - }; - }; + csi2-dphy0-hw@fedc0000 { + clock-names = "pclk"; + resets = <0x02 0x17 0x02 0x16>; + clocks = <0x02 0x10c>; + compatible = "rockchip,rk3588-csi2-dphy-hw"; + status = "okay"; + rockchip,grf = <0x192>; + reg = <0x00 0xfedc0000 0x00 0x8000>; + phandle = <0x2d>; + reset-names = "srst_csiphy0\0srst_p_csiphy0"; + rockchip,sys_grf = <0xc8>; + }; - pdm0 { + can@fea70000 { + pinctrl-names = "default"; + pinctrl-0 = <0x147>; + clock-names = "baudclk\0apb_pclk"; + resets = <0x02 0xbd 0x02 0xbc>; + interrupts = <0x00 0x157 0x04>; + clocks = <0x02 0x74 0x02 0x73>; + compatible = "rockchip,can-2.0"; + status = "disabled"; + tx-fifo-depth = <0x01>; + rx-fifo-depth = <0x06>; + reg = <0x00 0xfea70000 0x00 0x1000>; + phandle = <0x2a2>; + reset-names = "can\0can-apb"; + }; - pdm0m0-clk { - rockchip,pins = <0x01 0x16 0x03 0x198>; - phandle = <0x139>; - }; + mailbox@fec60000 { + clock-names = "pclk_mailbox"; + interrupts = <0x00 0x3d 0x04 0x00 0x3e 0x04 0x00 0x3f 0x04 0x00 0x40 0x04>; + clocks = <0x02 0x4c>; + #mbox-cells = <0x01>; + compatible = "rockchip,rk3588-mailbox\0rockchip,rk3368-mailbox"; + status = "disabled"; + reg = <0x00 0xfec60000 0x00 0x200>; + phandle = <0x2dd>; + }; - pdm0m0-clk1 { - rockchip,pins = <0x01 0x14 0x03 0x198>; - phandle = <0x13a>; - }; + usbdrd3_1 { + #address-cells = <0x02>; + clock-names = "ref\0suspend\0bus"; + clocks = <0x02 0x1a6 0x02 0x1a5 0x02 0x1a4>; + #size-cells = <0x02>; + compatible = "rockchip,rk3588-dwc3\0rockchip,rk3399-dwc3"; + ranges; + status = "okay"; + phandle = <0x47a>; - pdm0m0-idle { - rockchip,pins = <0x01 0x16 0x00 0x198 0x01 0x14 0x00 0x198>; - phandle = <0x138>; - }; - - pdm0m0-sdi0 { - rockchip,pins = <0x01 0x1d 0x03 0x198>; - phandle = <0x134>; - }; + usb@fc400000 { + power-domains = <0x60 0x1f>; + snps,dis-u1-entry-quirk; + snps,dis_enblslpm_quirk; + phy-names = "usb2-phy\0usb3-phy"; + snps,dis-u2-freeclk-exists-quirk; + phy_type = "utmi_wide"; + resets = <0x02 0x2a7>; + interrupts = <0x00 0xdd 0x04>; + snps,dis-u2-entry-quirk; + compatible = "snps,dwc3"; + snps,parkmode-disable-hs-quirk; + snps,dis-del-phy-power-chg-quirk; + status = "okay"; + snps,parkmode-disable-ss-quirk; + phys = <0x1a3 0x1a4>; + reg = <0x00 0xfc400000 0x00 0x400000>; + phandle = <0x47b>; + dr_mode = "host"; + reset-names = "usb3-otg"; + snps,dis-tx-ipgap-linecheck-quirk; + }; + }; - pdm0m0-sdi1 { - rockchip,pins = <0x01 0x19 0x03 0x198>; - phandle = <0x135>; - }; + sata@fe210000 { + phy-names = "sata-phy"; + clock-names = "sata\0pmalive\0rxoob\0ref\0asic"; + interrupts = <0x00 0x111 0x04>; + clocks = <0x02 0x171 0x02 0x16e 0x02 0x174 0x02 0x163 0x02 0x17e>; + compatible = "rockchip,rk-ahci\0snps,dwc-ahci"; + status = "okay"; + interrupt-names = "hostc"; + phys = <0x108 0x01>; + reg = <0x00 0xfe210000 0x00 0x1000>; + phandle = <0x290>; + ports-implemented = <0x01>; + }; - pdm0m0-sdi2 { - rockchip,pins = <0x01 0x1a 0x03 0x198>; - phandle = <0x136>; - }; + leds { + compatible = "gpio-leds"; + status = "okay"; + phandle = <0x497>; - pdm0m0-sdi3 { - rockchip,pins = <0x01 0x1b 0x03 0x198>; - phandle = <0x137>; - }; + user { + linux,default-trigger = "ir-user-click"; + label = ":user"; + default-state = "off"; + phandle = <0x499>; + gpios = <0x182 0x03 0x00>; + }; - pdm0m1-clk { - rockchip,pins = <0x00 0x10 0x02 0x198>; - phandle = <0x3b4>; - }; + power { + linux,default-trigger = "ir-power-click"; + label = ":power"; + default-state = "on"; + status = "disabled"; + phandle = <0x498>; + gpios = <0x7b 0x15 0x00>; + }; + }; - pdm0m1-clk1 { - rockchip,pins = <0x00 0x14 0x02 0x198>; - phandle = <0x3b5>; - }; + rkcif-mipi-lvds5-sditf-vir3 { + compatible = "rockchip,rkcif-sditf"; + status = "disabled"; + rockchip,cif = <0x1a2>; + phandle = <0x479>; + }; - pdm0m1-idle { - rockchip,pins = <0x00 0x10 0x00 0x198 0x00 0x14 0x00 0x198>; - phandle = <0x3b6>; - }; + qos@fdf80000 { + compatible = "syscon"; + reg = <0x00 0xfdf80000 0x00 0x20>; + phandle = <0x9f>; + }; - pdm0m1-sdi0 { - rockchip,pins = <0x00 0x17 0x02 0x198>; - phandle = <0x3b7>; - }; + spdif-tx@fdde0000 { + power-domains = <0x60 0x1a>; + clock-names = "mclk\0hclk"; + assigned-clocks = <0x02 0x254>; + assigned-clock-parents = <0x02 0x05>; + interrupts = <0x00 0xc4 0x04>; + clocks = <0x02 0x257 0x02 0x253>; + dma-names = "tx"; + #sound-dai-cells = <0x00>; + compatible = "rockchip,rk3588-spdif\0rockchip,rk3568-spdif"; + status = "disabled"; + reg = <0x00 0xfdde0000 0x00 0x1000>; + phandle = <0x27e>; + dmas = <0xf1 0x07>; + }; - pdm0m1-sdi1 { - rockchip,pins = <0x00 0x18 0x02 0x198>; - phandle = <0x3b8>; - }; + qos@fdf35000 { + compatible = "syscon"; + reg = <0x00 0xfdf35000 0x00 0x20>; + phandle = <0x87>; + }; - pdm0m1-sdi2 { - rockchip,pins = <0x00 0x1c 0x02 0x198>; - phandle = <0x3b9>; - }; + psci { + method = "smc"; + compatible = "arm,psci-1.0"; + }; - pdm0m1-sdi3 { - rockchip,pins = <0x00 0x1e 0x02 0x198>; - phandle = <0x3ba>; - }; - }; + rkcif-mipi-lvds { + iommus = <0x50>; + rockchip,hw = <0x4f>; + compatible = "rockchip,rkcif-mipi-lvds"; + status = "disabled"; + phandle = <0x52>; + }; - pdm1 { + rga@fdb80000 { + power-domains = <0x60 0x15>; + clock-names = "aclk_rga2\0hclk_rga2\0clk_rga2"; + interrupts = <0x00 0x74 0x04>; + clocks = <0x02 0x1b7 0x02 0x1b6 0x02 0x1b8>; + compatible = "rockchip,rga2_core0"; + status = "okay"; + interrupt-names = "rga2_irq"; + reg = <0x00 0xfdb80000 0x00 0x1000>; + phandle = <0x26b>; + }; - pdm1m0-clk { - rockchip,pins = <0x04 0x1d 0x02 0x198>; - phandle = <0x140>; - }; + qos@fdf66800 { + compatible = "syscon"; + reg = <0x00 0xfdf66800 0x00 0x20>; + phandle = <0x97>; + }; - pdm1m0-clk1 { - rockchip,pins = <0x04 0x1c 0x02 0x198>; - phandle = <0x141>; - }; + spi@feb10000 { + pinctrl-names = "default"; + #address-cells = <0x01>; + num-cs = <0x02>; + pinctrl-0 = <0x151 0x152 0x153>; + clock-names = "spiclk\0apb_pclk"; + interrupts = <0x00 0x147 0x04>; + clocks = <0x02 0xa4 0x02 0x9f>; + #size-cells = <0x00>; + dma-names = "tx\0rx"; + compatible = "rockchip,rk3066-spi"; + status = "disabled"; + reg = <0x00 0xfeb10000 0x00 0x1000>; + phandle = <0x2ac>; + dmas = <0x7c 0x10 0x7c 0x11>; + }; - pdm1m0-idle { - rockchip,pins = <0x04 0x1d 0x00 0x198 0x04 0x1c 0x00 0x198>; - phandle = <0x13f>; - }; + rkcif-mipi-lvds4-sditf { + compatible = "rockchip,rkcif-sditf"; + status = "disabled"; + rockchip,cif = <0x1a1>; + phandle = <0x472>; + }; - pdm1m0-sdi0 { - rockchip,pins = <0x04 0x1b 0x02 0x198>; - phandle = <0x13b>; - }; + hdmi@fdea0000 { + power-domains = <0x60 0x1a>; + reg-io-width = <0x04>; + pinctrl-names = "default"; + phy-names = "hdmi"; + pinctrl-0 = <0x1a8 0x1a9 0x1aa 0x1ab>; + clock-names = "pclk\0hpd\0earc\0hdmitx_ref\0aud\0dclk_vp0\0dclk_vp1\0dclk_vp2\0dclk_vp3\0hclk_vo1\0link_clk"; + resets = <0x02 0x3d7 0x02 0x49d>; + interrupts = <0x00 0xad 0x04 0x00 0xae 0x04 0x00 0xaf 0x04 0x00 0xb0 0x04 0x00 0x169 0x04>; + clocks = <0x02 0x224 0x02 0x266 0x02 0x225 0x02 0x226 0x02 0x24c 0x02 0x274 0x02 0x275 0x02 0x276 0x02 0x277 0x05 0x36>; + #sound-dai-cells = <0x00>; + compatible = "rockchip,rk3588-dw-hdmi"; + status = "disabled"; + rockchip,grf = <0xc8>; + phys = <0x1ac>; + reg = <0x00 0xfdea0000 0x00 0x10000 0x00 0xfdeb0000 0x00 0x10000>; + phandle = <0x1e1>; + reset-names = "ref\0hdp"; + rockchip,vo1_grf = <0xd8>; - pdm1m0-sdi1 { - rockchip,pins = <0x04 0x1a 0x02 0x198>; - phandle = <0x13c>; - }; + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; - pdm1m0-sdi2 { - rockchip,pins = <0x04 0x19 0x02 0x198>; - phandle = <0x13d>; - }; + port@0 { + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x00>; + phandle = <0x482>; - pdm1m0-sdi3 { - rockchip,pins = <0x04 0x18 0x02 0x198>; - phandle = <0x13e>; - }; + endpoint@1 { + remote-endpoint = <0x3f>; + status = "disabled"; + reg = <0x01>; + phandle = <0xe5>; + }; - pdm1m1-clk { - rockchip,pins = <0x01 0x0c 0x02 0x198>; - phandle = <0x3bb>; - }; + endpoint@2 { + remote-endpoint = <0x1ae>; + status = "disabled"; + reg = <0x02>; + phandle = <0xed>; + }; - pdm1m1-clk1 { - rockchip,pins = <0x01 0x0b 0x02 0x198>; - phandle = <0x3bc>; - }; - - pdm1m1-idle { - rockchip,pins = <0x01 0x0c 0x00 0x198 0x01 0x0b 0x00 0x198>; - phandle = <0x3bd>; - }; - - pdm1m1-sdi0 { - rockchip,pins = <0x01 0x07 0x02 0x198>; - phandle = <0x3be>; - }; - - pdm1m1-sdi1 { - rockchip,pins = <0x01 0x08 0x02 0x198>; - phandle = <0x3bf>; - }; - - pdm1m1-sdi2 { - rockchip,pins = <0x01 0x09 0x02 0x198>; - phandle = <0x3c0>; - }; - - pdm1m1-sdi3 { - rockchip,pins = <0x01 0x0a 0x02 0x198>; - phandle = <0x3c1>; - }; - }; - - pmic { - - pmic-pins { - rockchip,pins = <0x00 0x07 0x00 0x19e 0x00 0x02 0x01 0x198 0x00 0x03 0x01 0x198 0x00 0x11 0x01 0x198 0x00 0x12 0x01 0x198 0x00 0x13 0x01 0x198 0x00 0x1e 0x01 0x198>; - phandle = <0x156>; + endpoint@0 { + remote-endpoint = <0x1ad>; + status = "disabled"; + reg = <0x00>; + phandle = <0xdf>; + }; }; }; + }; - pmu { + pcie@fe180000 { + #address-cells = <0x03>; + rockchip,pipe-grf = <0x76>; + phy-names = "pcie-phy"; + bus-range = <0x30 0x3f>; + clock-names = "aclk_mst\0aclk_slv\0aclk_dbi\0pclk\0aux\0pipe"; + reg-names = "pcie-apb\0pcie-dbi"; + num-ob-windows = <0x08>; + resets = <0x02 0x210 0x02 0x21f>; + interrupts = <0x00 0xf8 0x04 0x00 0xf7 0x04 0x00 0xf6 0x04 0x00 0xf5 0x04 0x00 0xf4 0x04>; + clocks = <0x02 0x151 0x02 0x156 0x02 0x14c 0x02 0x15c 0x02 0x161 0x02 0x2c5>; + interrupt-map = <0x00 0x00 0x00 0x01 0x105 0x00 0x00 0x00 0x00 0x02 0x105 0x01 0x00 0x00 0x00 0x03 0x105 0x02 0x00 0x00 0x00 0x04 0x105 0x03>; + #size-cells = <0x02>; + max-link-speed = <0x02>; + device_type = "pci"; + interrupt-map-mask = <0x00 0x00 0x00 0x07>; + num-lanes = <0x01>; + compatible = "rockchip,rk3588-pcie\0snps,dw-pcie"; + ranges = <0x800 0x00 0xf3000000 0x00 0xf3000000 0x00 0x100000 0x81000000 0x00 0xf3100000 0x00 0xf3100000 0x00 0x100000 0x82000000 0x00 0xf3200000 0x00 0xf3200000 0x00 0xe00000 0xc3000000 0x09 0xc0000000 0x09 0xc0000000 0x00 0x40000000>; + msi-map = <0x3000 0x106 0x3000 0x1000>; + #interrupt-cells = <0x01>; + status = "disabled"; + interrupt-names = "sys\0pmc\0msg\0legacy\0err"; + phys = <0x70 0x02>; + num-viewport = <0x04>; + reg = <0x00 0xfe180000 0x00 0x10000 0x0a 0x40c00000 0x00 0x400000>; + linux,pci-domain = <0x03>; + phandle = <0x28c>; + reset-names = "pcie\0periph"; + num-ib-windows = <0x08>; - pmu-pins { - rockchip,pins = <0x00 0x05 0x03 0x198>; - phandle = <0x3c2>; - }; + legacy-interrupt-controller { + #address-cells = <0x00>; + interrupts = <0x00 0xf5 0x01>; + interrupt-parent = <0x01>; + #interrupt-cells = <0x01>; + phandle = <0x105>; + interrupt-controller; }; + }; - pwm0 { + i2s@fe480000 { + pinctrl-names = "default"; + pinctrl-0 = <0x120 0x121 0x122 0x123 0x124 0x125 0x126 0x127 0x128 0x129>; + clock-names = "mclk_tx\0mclk_rx\0hclk"; + resets = <0x02 0xc002a 0x02 0xc002d>; + interrupts = <0x00 0xb5 0x04>; + clocks = <0x02 0x28c 0x02 0x290 0x02 0x288>; + dma-names = "tx\0rx"; + #sound-dai-cells = <0x00>; + compatible = "rockchip,rk3588-i2s-tdm"; + status = "disabled"; + reg = <0x00 0xfe480000 0x00 0x1000>; + phandle = <0x1d1>; + dmas = <0x7c 0x02 0x7c 0x03>; + reset-names = "tx-m\0rx-m"; + rockchip,clk-trcm = <0x01>; + }; - pwm0m0-pins { - rockchip,pins = <0x00 0x0f 0x03 0x198>; - phandle = <0x7e>; - }; + syscon@fd5c0000 { + compatible = "rockchip,pipe-phy-grf\0syscon"; + reg = <0x00 0xfd5c0000 0x00 0x100>; + phandle = <0x1cb>; + }; - pwm0m1-pins { - rockchip,pins = <0x01 0x1a 0x0b 0x198>; - phandle = <0x3c3>; - }; + i2c@feab0000 { + pinctrl-names = "default"; + #address-cells = <0x01>; + pinctrl-0 = <0x14a>; + clock-names = "i2c\0pclk"; + resets = <0x02 0xb2 0x02 0xaa>; + interrupts = <0x00 0x140 0x04>; + clocks = <0x02 0x8f 0x02 0x87>; + #size-cells = <0x00>; + compatible = "rockchip,rk3588-i2c\0rockchip,rk3399-i2c"; + status = "okay"; + reg = <0x00 0xfeab0000 0x00 0x1000>; + phandle = <0x2a6>; + reset-names = "i2c\0apb"; - pwm0m2-pins { - rockchip,pins = <0x01 0x02 0x0b 0x198>; - phandle = <0x3c4>; - }; + gpio@21 { + gpio-controller; + gpio-group-num = <0xc8>; + compatible = "nxp,pca9555"; + status = "okay"; + reg = <0x21>; + phandle = <0x182>; + #gpio-cells = <0x02>; }; + }; - pwm1 { - - pwm1m0-pins { - rockchip,pins = <0x00 0x10 0x03 0x198>; - phandle = <0x7f>; - }; - - pwm1m1-pins { - rockchip,pins = <0x01 0x1b 0x0b 0x198>; - phandle = <0x3c5>; - }; - - pwm1m2-pins { - rockchip,pins = <0x01 0x03 0x0b 0x198>; - phandle = <0x3c6>; - }; - }; + iommu@fdcb7f00 { + power-domains = <0x60 0x1b>; + clock-names = "aclk\0iface"; + interrupts = <0x00 0x84 0x04>; + clocks = <0x02 0x1de 0x02 0x1df>; + #iommu-cells = <0x00>; + compatible = "rockchip,iommu-v2"; + rockchip,disable-mmu-reset; + status = "okay"; + interrupt-names = "isp0_mmu"; + reg = <0x00 0xfdcb7f00 0x00 0x100>; + phandle = <0xd0>; + }; - pwm2 { + qos@fdf3e600 { + compatible = "syscon"; + reg = <0x00 0xfdf3e600 0x00 0x20>; + phandle = <0xae>; + }; - pwm2m0-pins { - rockchip,pins = <0x00 0x14 0x03 0x198>; - phandle = <0x80>; - }; + syscon@fd5b8000 { + compatible = "rockchip,pcie30-phy-grf\0syscon"; + reg = <0x00 0xfd5b8000 0x00 0x10000>; + phandle = <0x1cc>; + }; - pwm2m1-pins { - rockchip,pins = <0x03 0x09 0x0b 0x198>; - phandle = <0x3c7>; - }; + qos@fdf81200 { + compatible = "syscon"; + reg = <0x00 0xfdf81200 0x00 0x20>; + phandle = <0xa1>; + }; - pwm2m2-pins { - rockchip,pins = <0x04 0x12 0x0b 0x198>; - phandle = <0x3c8>; - }; - }; + mipi5-csi2-hw@fdd60000 { + clock-names = "pclk_csi2host"; + reg-names = "csihost_regs"; + resets = <0x02 0x329>; + interrupts = <0x00 0x99 0x04 0x00 0x9a 0x04>; + clocks = <0x02 0x1d4>; + compatible = "rockchip,rk3588-mipi-csi2-hw"; + status = "okay"; + interrupt-names = "csi-intr1\0csi-intr2"; + reg = <0x00 0xfdd60000 0x00 0x10000>; + phandle = <0x4c>; + reset-names = "srst_csihost_p"; + }; - pwm3 { + qos@fdf72000 { + compatible = "syscon"; + reg = <0x00 0xfdf72000 0x00 0x20>; + phandle = <0x82>; + }; - pwm3m0-pins { - rockchip,pins = <0x00 0x1c 0x03 0x198>; - phandle = <0x81>; - }; + timer@feae0000 { + clock-names = "pclk\0timer"; + interrupts = <0x00 0x121 0x04>; + clocks = <0x02 0x5c 0x02 0x5f>; + compatible = "rockchip,rk3588-timer\0rockchip,rk3288-timer"; + reg = <0x00 0xfeae0000 0x00 0x20>; + phandle = <0x2a9>; + }; - pwm3m1-pins { - rockchip,pins = <0x03 0x0a 0x0b 0x198>; - phandle = <0x3c9>; - }; + rkcif-mipi-lvds-sditf-vir1 { + compatible = "rockchip,rkcif-sditf"; + status = "disabled"; + rockchip,cif = <0x52>; + phandle = <0x22c>; + }; - pwm3m2-pins { - rockchip,pins = <0x01 0x12 0x0b 0x198>; - phandle = <0x3ca>; - }; + syscon@fd5b5000 { + compatible = "rockchip,mipi-dphy-grf\0syscon"; + reg = <0x00 0xfd5b5000 0x00 0x1000>; + phandle = <0x193>; + }; - pwm3m3-pins { - rockchip,pins = <0x01 0x07 0x0b 0x198>; - phandle = <0x3cb>; - }; - }; - - pwm4 { - - pwm4m0-pins { - rockchip,pins = <0x00 0x15 0x0b 0x198>; - phandle = <0x169>; - }; + i2c@fec90000 { + pinctrl-names = "default"; + #address-cells = <0x01>; + pinctrl-0 = <0x185>; + clock-names = "i2c\0pclk"; + resets = <0x02 0xb6 0x02 0xae>; + interrupts = <0x00 0x144 0x04>; + clocks = <0x02 0x93 0x02 0x8b>; + #size-cells = <0x00>; + compatible = "rockchip,rk3588-i2c\0rockchip,rk3399-i2c"; + status = "disabled"; + reg = <0x00 0xfec90000 0x00 0x1000>; + phandle = <0x2e4>; + reset-names = "i2c\0apb"; + }; - pwm4m1-pins { - rockchip,pins = <0x04 0x13 0x0b 0x198>; - phandle = <0x3cc>; - }; - }; + avsd-plus@fdb51000 { + power-domains = <0x60 0x15>; + iommus = <0xb7>; + clock-names = "aclk_vcodec\0hclk_vcodec"; + assigned-clocks = <0x02 0x1c0>; + rockchip,normal-rates = <0x2367b880 0x00>; + assigned-clock-rates = <0x2367b880>; + resets = <0x02 0x2c8 0x02 0x2c9>; + interrupts = <0x00 0x77 0x04>; + clocks = <0x02 0x1c0 0x02 0x1c1>; + rockchip,srv = <0xb8>; + rockchip,taskqueue-node = <0x00>; + rockchip,disable-auto-freq; + compatible = "rockchip,avs-plus-decoder"; + rockchip,resetgroup-node = <0x00>; + status = "disabled"; + interrupt-names = "irq_avsd"; + rockchip,skip-pmu-idle-request; + reg = <0x00 0xfdb51000 0x00 0x200>; + phandle = <0x268>; + reset-names = "shared_video_a\0shared_video_h"; + }; - pwm5 { + dp1-sound { + rockchip,jack-det; + rockchip,cpu = <0x1e2>; + rockchip,codec = <0x1e3 0x01>; + rockchip,card-name = "rockchip,dp1"; + compatible = "rockchip,hdmi"; + status = "disabled"; + phandle = <0x4a9>; + rockchip,mclk-fs = <0x200>; + }; - pwm5m0-pins { - rockchip,pins = <0x00 0x09 0x03 0x198>; - phandle = <0x3cd>; - }; + mipi1-csi2-hw@fdd20000 { + clock-names = "pclk_csi2host"; + reg-names = "csihost_regs"; + resets = <0x02 0x325>; + interrupts = <0x00 0x91 0x04 0x00 0x92 0x04>; + clocks = <0x02 0x1d0>; + compatible = "rockchip,rk3588-mipi-csi2-hw"; + status = "okay"; + interrupt-names = "csi-intr1\0csi-intr2"; + reg = <0x00 0xfdd20000 0x00 0x10000>; + phandle = <0x48>; + reset-names = "srst_csihost_p"; + }; - pwm5m1-pins { - rockchip,pins = <0x00 0x16 0x0b 0x198>; - phandle = <0x16a>; - }; + iep@fdbb0000 { + power-domains = <0x60 0x15>; + iommus = <0xc1>; + clock-names = "aclk\0hclk\0sclk"; + assigned-clocks = <0x02 0x1aa>; + rockchip,normal-rates = <0x2367b880 0x00>; + assigned-clock-rates = <0x2367b880>; + resets = <0x02 0x2d5 0x02 0x2d4 0x02 0x2d6>; + interrupts = <0x00 0x75 0x04>; + clocks = <0x02 0x1aa 0x02 0x1a9 0x02 0x1ab>; + rockchip,srv = <0xb8>; + rockchip,taskqueue-node = <0x06>; + rockchip,disable-auto-freq; + compatible = "rockchip,iep-v2"; + status = "okay"; + interrupt-names = "irq_iep"; + rockchip,skip-pmu-idle-request; + reg = <0x00 0xfdbb0000 0x00 0x500>; + phandle = <0x271>; + reset-names = "rst_a\0rst_h\0rst_s"; + }; - pwm5m2-pins { - rockchip,pins = <0x04 0x14 0x0b 0x198>; - phandle = <0x3ce>; - }; - }; + dsi@fde20000 { + power-domains = <0x60 0x18>; + #address-cells = <0x01>; + phy-names = "dcphy"; + clock-names = "pclk\0sys_clk"; + resets = <0x02 0x354>; + interrupts = <0x00 0xa7 0x04>; + clocks = <0x02 0x278 0x02 0x27a>; + #size-cells = <0x00>; + compatible = "rockchip,rk3588-mipi-dsi2"; + status = "disabled"; + rockchip,grf = <0xd7>; + phys = <0x2f>; + reg = <0x00 0xfde20000 0x00 0x10000>; + phandle = <0x281>; + reset-names = "apb"; - pwm6 { + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; - pwm6m0-pins { - rockchip,pins = <0x00 0x17 0x0b 0x198>; - phandle = <0x16b>; - }; + port@0 { + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x00>; + phandle = <0x282>; - pwm6m1-pins { - rockchip,pins = <0x04 0x11 0x0b 0x198>; - phandle = <0x3cf>; - }; + endpoint@1 { + remote-endpoint = <0x39>; + status = "disabled"; + reg = <0x01>; + phandle = <0xee>; + }; - pwm6m2-pins { - rockchip,pins = <0x04 0x15 0x0b 0x198>; - phandle = <0x3d0>; + endpoint@0 { + remote-endpoint = <0xf3>; + status = "disabled"; + reg = <0x00>; + phandle = <0xe9>; + }; }; }; + }; - pwm7 { + rkcif-mipi-lvds5-sditf-vir1 { + compatible = "rockchip,rkcif-sditf"; + status = "disabled"; + rockchip,cif = <0x1a2>; + phandle = <0x477>; + }; - pwm7m0-pins { - rockchip,pins = <0x00 0x18 0x0b 0x198>; - phandle = <0x16c>; - }; + edp@fded0000 { + power-domains = <0x60 0x1a>; + phy-names = "dp"; + clock-names = "dp\0pclk\0spdif\0hclk"; + resets = <0x02 0x3e4 0x02 0x3e3>; + interrupts = <0x00 0xa4 0x04>; + clocks = <0x02 0x214 0x02 0x213 0x02 0x215 0x05>; + compatible = "rockchip,rk3588-edp"; + status = "disabled"; + rockchip,grf = <0xd8>; + phys = <0x1af>; + reg = <0x00 0xfded0000 0x00 0x1000>; + phandle = <0x483>; + reset-names = "dp\0apb"; - pwm7m1-pins { - rockchip,pins = <0x04 0x1c 0x0b 0x198>; - phandle = <0x3d1>; - }; + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; - pwm7m2-pins { - rockchip,pins = <0x01 0x13 0x0b 0x198>; - phandle = <0x3d2>; - }; + port@0 { + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x00>; - pwm7m3-pins { - rockchip,pins = <0x04 0x16 0x0b 0x198>; - phandle = <0x3d3>; - }; - }; + endpoint@1 { + remote-endpoint = <0x1b1>; + status = "disabled"; + reg = <0x01>; + phandle = <0xe4>; + }; - pwm8 { + endpoint@2 { + remote-endpoint = <0x1b2>; + status = "disabled"; + reg = <0x02>; + phandle = <0xec>; + }; - pwm8m0-pins { - rockchip,pins = <0x03 0x07 0x0b 0x198>; - phandle = <0x16d>; + endpoint@0 { + remote-endpoint = <0x1b0>; + status = "disabled"; + reg = <0x00>; + phandle = <0xde>; + }; }; - pwm8m1-pins { - rockchip,pins = <0x04 0x18 0x0b 0x198>; - phandle = <0x3d4>; - }; + port@1 { + reg = <0x01>; - pwm8m2-pins { - rockchip,pins = <0x03 0x18 0x0b 0x198>; - phandle = <0x3d5>; + endpoint { + phandle = <0x484>; + }; }; }; + }; - pwm9 { + qos@fdf67000 { + compatible = "syscon"; + reg = <0x00 0xfdf67000 0x00 0x20>; + phandle = <0x9c>; + }; - pwm9m0-pins { - rockchip,pins = <0x03 0x08 0x0b 0x198>; - phandle = <0x16e>; - }; + qos@fdf64000 { + compatible = "syscon"; + reg = <0x00 0xfdf64000 0x00 0x20>; + phandle = <0x9b>; + }; - pwm9m1-pins { - rockchip,pins = <0x04 0x19 0x0b 0x198>; - phandle = <0x3d6>; - }; + npu-opp-table { + rockchip,pvtm-offset = <0x50>; + rockchip,pvtm-sample-time = <0x44c>; + rockchip,init-freq = <0xf4240>; + rockchip,pvtm-hw = <0x06>; + nvmem-cells = <0xb4 0xb5 0x21>; + rockchip,low-temp = <0x2710>; + rockchip,pvtm-voltage-sel-hw = <0x00 0x31f 0x00 0x320 0x333 0x01 0x334 0x34c 0x02 0x34d 0x365 0x03 0x366 0x37e 0x04 0x37f 0x270f 0x05>; + rockchip,pvtm-thermal-zone = "npu-thermal"; + rockchip,high-temp-max-freq = "\0\f5"; + rockchip,opp-clocks = <0x02 0x12a 0x02 0x12f>; + rockchip,pvtm-freq = "\0\f5"; + rockchip,pvtm-ref-temp = <0x19>; + low-volt-mem-read-margin = <0x04>; + volt-mem-read-margin = <0xd0bd8 0x01 0xbac48 0x02 0xa4cb8 0x03 0x78d98 0x04>; + compatible = "operating-points-v2"; + rockchip,low-temp-min-volt = <0xb71b0>; + rockchip,grf = <0xb6>; + nvmem-cell-names = "leakage\0opp-info\0specification_serial_number"; + rockchip,pvtm-voltage-sel = <0x00 0x32f 0x00 0x330 0x343 0x01 0x344 0x35c 0x02 0x35d 0x375 0x03 0x376 0x38e 0x04 0x38f 0x270f 0x05>; + phandle = <0xb1>; + rockchip,pvtm-temp-prop = <0xffffff8f 0xffffff8f>; + rockchip,temp-hysteresis = <0x1388>; + rockchip,high-temp = <0x14c08>; + rockchip,pvtm-pvtpll; + rockchip,supported-hw; + intermediate-threshold-freq = <0x7a120>; + rockchip,pvtm-volt = <0xb71b0>; - pwm9m2-pins { - rockchip,pins = <0x03 0x19 0x0b 0x198>; - phandle = <0x3d7>; - }; + opp-j-m-700000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; + opp-hz = <0x00 0x29b92700>; + opp-supported-hw = <0x06 0xffff>; }; - pwm10 { - - pwm10m0-pins { - rockchip,pins = <0x03 0x00 0x0b 0x198>; - phandle = <0x16f>; - }; - - pwm10m1-pins { - rockchip,pins = <0x04 0x1b 0x0b 0x198>; - phandle = <0x3d8>; - }; + opp-300000000 { + opp-microvolt = <0xaae60 0xaae60 0xcf850 0xaae60 0xaae60 0xcf850>; + opp-microvolt-L4 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + opp-microvolt-L2 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + opp-hz = <0x00 0x11e1a300>; + opp-supported-hw = <0xf9 0xffff>; + opp-microvolt-L5 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + opp-microvolt-L3 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + opp-microvolt-L1 = <0xa7d8c 0xa7d8c 0xcf850 0xa7d8c 0xa7d8c 0xcf850>; + }; - pwm10m2-pins { - rockchip,pins = <0x03 0x1b 0x0b 0x198>; - phandle = <0x3d9>; - }; + opp-500000000 { + opp-microvolt = <0xaae60 0xaae60 0xcf850 0xaae60 0xaae60 0xcf850>; + opp-microvolt-L4 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + opp-microvolt-L2 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + opp-hz = <0x00 0x1dcd6500>; + opp-supported-hw = <0xf9 0xffff>; + opp-microvolt-L5 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + opp-microvolt-L3 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + opp-microvolt-L1 = <0xa7d8c 0xa7d8c 0xcf850 0xa7d8c 0xa7d8c 0xcf850>; }; - pwm11 { + opp-j-m-400000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; + opp-hz = <0x00 0x17d78400>; + opp-supported-hw = <0x06 0xffff>; + }; - pwm11m0-pins { - rockchip,pins = <0x03 0x01 0x0b 0x198>; - phandle = <0x170>; - }; + opp-700000000 { + opp-microvolt = <0xaae60 0xaae60 0xcf850 0xaae60 0xaae60 0xcf850>; + opp-microvolt-L4 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + opp-hz = <0x00 0x29b92700>; + opp-supported-hw = <0xf9 0xffff>; + opp-microvolt-L5 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + opp-microvolt-L3 = <0xa7d8c 0xa7d8c 0xcf850 0xa7d8c 0xa7d8c 0xcf850>; + }; - pwm11m1-pins { - rockchip,pins = <0x04 0x0c 0x0b 0x198>; - phandle = <0x3da>; - }; + opp-j-m-950000000 { + opp-microvolt = <0xcc77c 0xcc77c 0xcf850 0xcc77c 0xcc77c 0xcf850>; + opp-microvolt-L4 = <0xc042c 0xc042c 0xcf850 0xc042c 0xc042c 0xcf850>; + opp-microvolt-L2 = <0xc65d4 0xc65d4 0xcf850 0xc65d4 0xc65d4 0xcf850>; + opp-hz = <0x00 0x389fd980>; + opp-supported-hw = <0x06 0xffff>; + opp-microvolt-L5 = <0xbd358 0xbd358 0xcf850 0xbd358 0xbd358 0xcf850>; + opp-microvolt-L3 = <0xc3500 0xc3500 0xcf850 0xc3500 0xc3500 0xcf850>; + opp-microvolt-L1 = <0xc96a8 0xc96a8 0xcf850 0xc96a8 0xc96a8 0xcf850>; + }; - pwm11m2-pins { - rockchip,pins = <0x01 0x14 0x0b 0x198>; - phandle = <0x3db>; - }; + opp-j-m-600000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; + opp-hz = <0x00 0x23c34600>; + opp-supported-hw = <0x06 0xffff>; + }; - pwm11m3-pins { - rockchip,pins = <0x03 0x1d 0x0b 0x198>; - phandle = <0x3dc>; - }; + opp-900000000 { + opp-microvolt = <0xc3500 0xc3500 0xcf850 0xc3500 0xc3500 0xcf850>; + opp-microvolt-L4 = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; + opp-microvolt-L2 = <0xbd358 0xbd358 0xcf850 0xbd358 0xbd358 0xcf850>; + opp-hz = <0x00 0x35a4e900>; + opp-supported-hw = <0xf9 0xffff>; + opp-microvolt-L5 = <0xb40dc 0xb40dc 0xcf850 0xb40dc 0xb40dc 0xcf850>; + opp-microvolt-L3 = <0xba284 0xba284 0xcf850 0xba284 0xba284 0xcf850>; + opp-microvolt-L1 = <0xc042c 0xc042c 0xcf850 0xc042c 0xc042c 0xcf850>; }; - pwm12 { + opp-j-m-800000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; + opp-hz = <0x00 0x2faf0800>; + opp-supported-hw = <0x06 0xffff>; + }; - pwm12m0-pins { - rockchip,pins = <0x03 0x0d 0x0b 0x198>; - phandle = <0x171>; - }; + opp-400000000 { + opp-microvolt = <0xaae60 0xaae60 0xcf850 0xaae60 0xaae60 0xcf850>; + opp-microvolt-L4 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + opp-microvolt-L2 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + opp-hz = <0x00 0x17d78400>; + opp-supported-hw = <0xf9 0xffff>; + opp-microvolt-L5 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + opp-microvolt-L3 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + opp-microvolt-L1 = <0xa7d8c 0xa7d8c 0xcf850 0xa7d8c 0xa7d8c 0xcf850>; + }; - pwm12m1-pins { - rockchip,pins = <0x04 0x0d 0x0b 0x198>; - phandle = <0x3dd>; - }; + opp-j-m-300000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; + opp-hz = <0x00 0x11e1a300>; + opp-supported-hw = <0x06 0xffff>; }; - pwm13 { + opp-600000000 { + opp-microvolt = <0xaae60 0xaae60 0xcf850 0xaae60 0xaae60 0xcf850>; + opp-microvolt-L4 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + opp-microvolt-L2 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + opp-hz = <0x00 0x23c34600>; + opp-supported-hw = <0xf9 0xffff>; + opp-microvolt-L5 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + opp-microvolt-L3 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + opp-microvolt-L1 = <0xa7d8c 0xa7d8c 0xcf850 0xa7d8c 0xa7d8c 0xcf850>; + }; - pwm13m0-pins { - rockchip,pins = <0x03 0x0e 0x0b 0x198>; - phandle = <0x172>; - }; + opp-1000000000 { + opp-microvolt = <0xcf850 0xcf850 0xcf850 0xcf850 0xcf850 0xcf850>; + opp-microvolt-L4 = <0xc3500 0xc3500 0xcf850 0xc3500 0xc3500 0xcf850>; + opp-microvolt-L2 = <0xc96a8 0xc96a8 0xcf850 0xc96a8 0xc96a8 0xcf850>; + opp-hz = <0x00 0x3b9aca00>; + opp-supported-hw = <0xf9 0xffff>; + opp-microvolt-L5 = <0xc042c 0xc042c 0xcf850 0xc042c 0xc042c 0xcf850>; + opp-microvolt-L3 = <0xc65d4 0xc65d4 0xcf850 0xc65d4 0xc65d4 0xcf850>; + opp-microvolt-L1 = <0xcc77c 0xcc77c 0xcf850 0xcc77c 0xcc77c 0xcf850>; + }; - pwm13m1-pins { - rockchip,pins = <0x04 0x0e 0x0b 0x198>; - phandle = <0x3de>; - }; + opp-j-m-500000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; + opp-hz = <0x00 0x1dcd6500>; + opp-supported-hw = <0x06 0xffff>; + }; - pwm13m2-pins { - rockchip,pins = <0x01 0x0f 0x0b 0x198>; - phandle = <0x3df>; - }; + opp-800000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; + opp-microvolt-L4 = <0xadf34 0xadf34 0xcf850 0xadf34 0xadf34 0xcf850>; + opp-microvolt-L2 = <0xb40dc 0xb40dc 0xcf850 0xb40dc 0xb40dc 0xcf850>; + opp-hz = <0x00 0x2faf0800>; + opp-supported-hw = <0xf9 0xffff>; + opp-microvolt-L5 = <0xaae60 0xaae60 0xcf850 0xaae60 0xaae60 0xcf850>; + opp-microvolt-L3 = <0xb1008 0xb1008 0xcf850 0xb1008 0xb1008 0xcf850>; }; + }; - pwm14 { + syscon@fd590000 { + compatible = "rockchip,rk3588-bigcore0-grf\0syscon"; + reg = <0x00 0xfd590000 0x00 0x100>; + phandle = <0x26>; + }; - pwm14m0-pins { - rockchip,pins = <0x03 0x12 0x0b 0x198>; - phandle = <0x173>; - }; + syscon@fd5dc000 { + #address-cells = <0x01>; + #size-cells = <0x01>; + compatible = "rockchip,rk3588-usb2phy-grf\0syscon\0simple-mfd"; + reg = <0x00 0xfd5dc000 0x00 0x4000>; + phandle = <0x25e>; - pwm14m1-pins { - rockchip,pins = <0x04 0x0a 0x0b 0x198>; - phandle = <0x3e0>; - }; + usb2-phy@c000 { + clock-output-names = "usb480m_phy3"; + clock-names = "phyclk"; + resets = <0x02 0xc004a 0x02 0x48b>; + interrupts = <0x00 0x188 0x04>; + clocks = <0x02 0x2b5>; + #clock-cells = <0x00>; + compatible = "rockchip,rk3588-usb2phy"; + status = "okay"; + reg = <0xc000 0x10>; + phandle = <0x6d>; + reset-names = "phy\0apb"; - pwm14m2-pins { - rockchip,pins = <0x01 0x1e 0x0b 0x198>; - phandle = <0x3e1>; + host-port { + phy-supply = <0x75>; + #phy-cells = <0x00>; + status = "okay"; + phandle = <0x6f>; }; }; + }; - pwm15 { - - pwm15m0-pins { - rockchip,pins = <0x03 0x13 0x0b 0x198>; - phandle = <0x174>; - }; + pcie-clk3 { + regulator-boot-on; + regulator-always-on; + regulator-name = "pcie_clk3"; + compatible = "regulator-fixed"; + status = "okay"; + phandle = <0x496>; + gpios = <0xfe 0x09 0x01>; + }; - pwm15m1-pins { - rockchip,pins = <0x04 0x0b 0x0b 0x198>; - phandle = <0x3e2>; - }; + pwm@febf0030 { + pinctrl-names = "active"; + pinctrl-0 = <0x174>; + clock-names = "pwm\0pclk"; + interrupts = <0x00 0x15e 0x04 0x00 0x15f 0x04>; + clocks = <0x02 0x5a 0x02 0x59>; + #pwm-cells = <0x03>; + compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; + status = "disabled"; + reg = <0x00 0xfebf0030 0x00 0x10>; + phandle = <0x2dc>; + }; - pwm15m2-pins { - rockchip,pins = <0x01 0x16 0x0b 0x198>; - phandle = <0x3e3>; - }; + hwspinlock@fe5a0000 { + compatible = "rockchip,hwspinlock"; + reg = <0x00 0xfe5a0000 0x00 0x100>; + phandle = <0x29f>; + #hwlock-cells = <0x01>; + }; - pwm15m3-pins { - rockchip,pins = <0x01 0x1f 0x0b 0x198>; - phandle = <0x3e4>; - }; - }; + rkcif-mipi-lvds4-sditf-vir2 { + compatible = "rockchip,rkcif-sditf"; + status = "disabled"; + rockchip,cif = <0x1a1>; + phandle = <0x474>; + }; - refclk { + sram@10f000 { + #address-cells = <0x01>; + #size-cells = <0x01>; + compatible = "mmio-sram"; + ranges = <0x00 0x00 0x10f000 0x100>; + reg = <0x00 0x10f000 0x00 0x100>; - refclk-pins { - rockchip,pins = <0x00 0x00 0x01 0x198>; - phandle = <0x3e5>; - }; + sram@0 { + compatible = "arm,scmi-shmem"; + reg = <0x00 0x100>; + phandle = <0x46>; }; + }; - sata { - - sata-pins { - rockchip,pins = <0x00 0x16 0x0d 0x198 0x00 0x1c 0x0d 0x198 0x00 0x1d 0x0d 0x198>; - phandle = <0x3e6>; - }; + hdmirx-controller@fdee0000 { + power-domains = <0x60 0x1a>; + pinctrl-names = "default"; + pinctrl-0 = <0x1b3 0x1b4>; + clock-names = "aclk\0audio\0cr_para\0pclk\0ref\0hclk_s_hdmirx\0hclk_vo1"; + reg-names = "hdmirx_regs"; + resets = <0x02 0x3d9 0x02 0x3da 0x02 0x3db 0x02 0x3b7>; + interrupts = <0x00 0xb1 0x04 0x00 0x1b4 0x04 0x00 0xb3 0x04>; + clocks = <0x02 0x21a 0x02 0x21f 0x02 0x2b2 0x02 0x21b 0x02 0x21c 0x02 0x232 0x05>; + hpd-trigger-level = <0x01>; + #sound-dai-cells = <0x01>; + compatible = "rockchip,rk3588-hdmirx-ctrler\0rockchip,hdmirx-ctrler"; + status = "disabled"; + rockchip,grf = <0xc8>; + interrupt-names = "cec\0hdmi\0dma"; + hdmirx-det-gpios = <0xfe 0x1d 0x01>; + reg = <0x00 0xfdee0000 0x00 0x6000>; + phandle = <0x1eb>; + reset-names = "rst_a\0rst_p\0rst_ref\0rst_biu"; + rockchip,vo1_grf = <0xd8>; + }; - sata-reset { - rockchip,pins = <0x04 0x11 0x00 0x198>; - phandle = <0x3e7>; - }; - }; + qos@fdf61000 { + compatible = "syscon"; + reg = <0x00 0xfdf61000 0x00 0x20>; + phandle = <0x90>; + }; - sata0 { + qos@fdf40600 { + compatible = "syscon"; + reg = <0x00 0xfdf40600 0x00 0x20>; + phandle = <0xa4>; + }; - sata0m0-pins { - rockchip,pins = <0x04 0x0e 0x06 0x198>; - phandle = <0x3e8>; - }; + syscon@fd588000 { + compatible = "rockchip,rk3588-pmu0-grf\0syscon\0simple-mfd"; + reg = <0x00 0xfd588000 0x00 0x2000>; + phandle = <0x25a>; - sata0m1-pins { - rockchip,pins = <0x01 0x0b 0x06 0x198>; - phandle = <0x3e9>; - }; + reboot-mode { + mode-normal = <0x5242c300>; + mode-loader = <0x5242c301>; + mode-quiescent = <0x5242c30e>; + mode-bootloader = <0x5242c301>; + mode-recovery = <0x5242c303>; + mode-watchdog = <0x5242c308>; + mode-ums = <0x5242c30c>; + mode-fastboot = <0x5242c309>; + offset = <0x80>; + compatible = "syscon-reboot-mode"; + mode-winusb = <0x5242c30f>; + phandle = <0x25b>; + mode-charge = <0x5242c30b>; + mode-panic = <0x5242c307>; }; + }; - sata1 { + syscon@fd5a4000 { + compatible = "rockchip,rk3588-vop-grf\0syscon"; + reg = <0x00 0xfd5a4000 0x00 0x2000>; + phandle = <0xd7>; + }; - sata1m0-pins { - rockchip,pins = <0x04 0x0d 0x06 0x198>; - phandle = <0x3ea>; - }; + iommu@fdb60f00 { + power-domains = <0x60 0x16>; + clock-names = "aclk\0iface"; + interrupts = <0x00 0x72 0x04>; + clocks = <0x02 0x1ba 0x02 0x1b9>; + #iommu-cells = <0x00>; + compatible = "rockchip,iommu-v2"; + status = "okay"; + interrupt-names = "rga3_0_mmu"; + reg = <0x00 0xfdb60f00 0x00 0x100>; + phandle = <0xb9>; + }; - sata1m1-pins { - rockchip,pins = <0x01 0x01 0x06 0x198>; - phandle = <0x3eb>; - }; - }; + pwm@febf0020 { + pinctrl-names = "active"; + pinctrl-0 = <0x173>; + clock-names = "pwm\0pclk"; + interrupts = <0x00 0x15e 0x04>; + clocks = <0x02 0x5a 0x02 0x59>; + #pwm-cells = <0x03>; + compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; + status = "disabled"; + reg = <0x00 0xfebf0020 0x00 0x10>; + phandle = <0x2db>; + }; - sata2 { + rkispp@fdcd0000 { + power-domains = <0x60 0x1d>; + iommus = <0xd2>; + clock-names = "aclk_ispp\0hclk_ispp\0clk_ispp"; + assigned-clocks = <0x02 0x1d6>; + assigned-clock-rates = <0x5f5e100>; + interrupts = <0x00 0x8b 0x04>; + clocks = <0x02 0x1d5 0x02 0x1d6 0x02 0x1d7>; + compatible = "rockchip,rk3588-rkispp"; + status = "disabled"; + interrupt-names = "fec_irq"; + reg = <0x00 0xfdcd0000 0x00 0xf00>; + phandle = <0x5b>; + }; - sata2m0-pins { - rockchip,pins = <0x04 0x09 0x06 0x198>; - phandle = <0x3ec>; - }; + tsadc@fec00000 { + pinctrl-names = "gpio\0otpout"; + pinctrl-0 = <0x175>; + clock-names = "tsadc\0apb_pclk"; + rockchip,hw-tshut-polarity = <0x00>; + assigned-clocks = <0x02 0xaa>; + assigned-clock-rates = <0x1e8480>; + resets = <0x02 0xc1 0x02 0xc0>; + interrupts = <0x00 0x18d 0x04>; + rockchip,hw-tshut-mode = <0x00>; + clocks = <0x02 0xaa 0x02 0xa9>; + #thermal-sensor-cells = <0x01>; + compatible = "rockchip,rk3588-tsadc"; + pinctrl-1 = <0x176>; + status = "okay"; + reg = <0x00 0xfec00000 0x00 0x400>; + phandle = <0x5d>; + reset-names = "tsadc\0tsadc-apb"; + rockchip,hw-tshut-temp = <0x1d4c0>; + }; - sata2m1-pins { - rockchip,pins = <0x01 0x0f 0x06 0x198>; - phandle = <0x3ed>; - }; - }; + iommu@fdbb0800 { + power-domains = <0x60 0x15>; + clock-names = "aclk\0iface"; + interrupts = <0x00 0x75 0x04>; + clocks = <0x02 0x1aa 0x02 0x1a9>; + #iommu-cells = <0x00>; + compatible = "rockchip,iommu-v2"; + status = "okay"; + interrupt-names = "irq_iep_mmu"; + reg = <0x00 0xfdbb0800 0x00 0x100>; + phandle = <0xc1>; + }; - sdio { + phy@fed60000 { + clock-names = "ref\0apb"; + resets = <0x02 0x485 0x02 0xc003b 0x02 0xc003c 0x02 0xc003d>; + clocks = <0x02 0x2b5 0x02 0x267>; + #phy-cells = <0x00>; + compatible = "rockchip,rk3588-hdptx-phy"; + status = "disabled"; + rockchip,grf = <0x18a>; + reg = <0x00 0xfed60000 0x00 0x2000>; + phandle = <0x101>; + reset-names = "apb\0init\0cmn\0lane"; + }; - sdiom1-pins { - rockchip,pins = <0x03 0x05 0x02 0x198 0x03 0x04 0x02 0x19e 0x03 0x00 0x02 0x19e 0x03 0x01 0x02 0x19e 0x03 0x02 0x02 0x19e 0x03 0x03 0x02 0x19e>; - phandle = <0x119>; - }; + pvtm@fda50000 { + #address-cells = <0x01>; + #size-cells = <0x00>; + compatible = "rockchip,rk3588-bigcore1-pvtm"; + reg = <0x00 0xfda50000 0x00 0x100>; - sdiom0-pins { - rockchip,pins = <0x02 0x0b 0x02 0x198 0x02 0x0a 0x02 0x19e 0x02 0x06 0x02 0x19e 0x02 0x07 0x02 0x19e 0x02 0x08 0x02 0x19e 0x02 0x09 0x02 0x19e>; - phandle = <0x3ee>; - }; + pvtm@1 { + clock-names = "clk\0pclk"; + clocks = <0x02 0x2c8 0x02 0x17>; + reg = <0x01>; }; + }; - sdmmc { - - sdmmc-bus4 { - rockchip,pins = <0x04 0x18 0x01 0x199 0x04 0x19 0x01 0x199 0x04 0x1a 0x01 0x199 0x04 0x1b 0x01 0x199>; - phandle = <0x117>; - }; + csi2-dcphy0 { + rockchip,hw = <0x2d 0x2e>; + phy-names = "dcphy0\0dcphy1"; + compatible = "rockchip,rk3588-csi2-dphy"; + status = "disabled"; + phys = <0x2f 0x30>; + phandle = <0x20d>; + }; - sdmmc-clk { - rockchip,pins = <0x04 0x1d 0x01 0x199>; - phandle = <0x114>; - }; + mailbox@fece0000 { + clock-names = "pclk_mailbox"; + interrupts = <0x00 0x4d 0x04 0x00 0x4e 0x04 0x00 0x4f 0x04 0x00 0x50 0x04>; + clocks = <0x02 0x4e>; + #mbox-cells = <0x01>; + compatible = "rockchip,rk3588-mailbox\0rockchip,rk3368-mailbox"; + status = "disabled"; + reg = <0x00 0xfece0000 0x00 0x200>; + phandle = <0x2e9>; + }; - sdmmc-cmd { - rockchip,pins = <0x04 0x1c 0x01 0x199>; - phandle = <0x115>; - }; + rkcif-mipi-lvds3-sditf-vir3 { + compatible = "rockchip,rkcif-sditf"; + status = "disabled"; + rockchip,cif = <0x57>; + phandle = <0x23a>; + }; - sdmmc-det { - rockchip,pins = <0x00 0x04 0x01 0x19e>; - phandle = <0x116>; - }; + rkcif-mipi-lvds1-sditf { + compatible = "rockchip,rkcif-sditf"; + status = "disabled"; + rockchip,cif = <0x53>; + phandle = <0x22f>; + }; - sdmmc-pwren { - rockchip,pins = <0x00 0x05 0x02 0x198>; - phandle = <0x3ef>; - }; - }; + dfi@fe060000 { + rockchip,pmu_grf = <0x104>; + compatible = "rockchip,rk3588-dfi"; + status = "disabled"; + reg = <0x00 0xfe060000 0x00 0x10000>; + phandle = <0x40>; + }; - spdif0 { + iommu@fdca0000 { + power-domains = <0x60 0x17>; + clock-names = "aclk\0iface"; + interrupts = <0x00 0x6d 0x04>; + clocks = <0x02 0x49 0x02 0x4b>; + #iommu-cells = <0x00>; + compatible = "rockchip,iommu-av1"; + status = "okay"; + interrupt-names = "irq_av1d_mmu"; + reg = <0x00 0xfdca0000 0x00 0x600>; + phandle = <0xce>; + }; - spdif0m0-tx { - rockchip,pins = <0x01 0x0e 0x03 0x198>; - phandle = <0x142>; - }; + mipi5-csi2 { + rockchip,hw = <0x47 0x48 0x49 0x4a 0x4b 0x4c>; + compatible = "rockchip,rk3588-mipi-csi2"; + status = "disabled"; + phandle = <0x229>; + }; - spdif0m1-tx { - rockchip,pins = <0x04 0x0c 0x06 0x198>; - phandle = <0x3f0>; - }; - }; + qos@fdf35600 { + compatible = "syscon"; + reg = <0x00 0xfdf35600 0x00 0x20>; + phandle = <0x8a>; + }; - spdif1 { + syscon@fd5e4000 { + compatible = "rockchip,rk3588-hdptxphy-grf\0syscon"; + reg = <0x00 0xfd5e4000 0x00 0x100>; + phandle = <0x1c7>; + }; - spdif1m0-tx { - rockchip,pins = <0x01 0x0f 0x03 0x198>; - phandle = <0x143>; - }; + iommu@fdba8800 { + power-domains = <0x60 0x15>; + clock-names = "aclk\0iface"; + interrupts = <0x00 0x7d 0x04>; + clocks = <0x02 0x1b0 0x02 0x1b1>; + #iommu-cells = <0x00>; + compatible = "rockchip,iommu-v2"; + status = "okay"; + interrupt-names = "irq_jpege2_mmu"; + reg = <0x00 0xfdba8800 0x00 0x40>; + phandle = <0xbf>; + }; - spdif1m1-tx { - rockchip,pins = <0x04 0x09 0x02 0x198>; - phandle = <0x3f1>; - }; + mpp-srv { + rockchip,resetgroup-count = <0x01>; + rockchip,taskqueue-count = <0x0c>; + compatible = "rockchip,mpp-service"; + status = "okay"; + phandle = <0xb8>; + }; - spdif1m2-tx { - rockchip,pins = <0x04 0x11 0x03 0x198>; - phandle = <0x3f2>; - }; - }; + cspmu@fd10c000 { + compatible = "rockchip,cspmu"; + reg = <0x00 0xfd10c000 0x00 0x1000 0x00 0xfd10d000 0x00 0x1000 0x00 0xfd10e000 0x00 0x1000 0x00 0xfd10f000 0x00 0x1000 0x00 0xfd12c000 0x00 0x1000 0x00 0xfd12d000 0x00 0x1000 0x00 0xfd12e000 0x00 0x1000 0x00 0xfd12f000 0x00 0x1000>; + phandle = <0x48e>; + }; - spi0 { + pwm@febf0010 { + pinctrl-names = "active"; + pinctrl-0 = <0x172>; + clock-names = "pwm\0pclk"; + interrupts = <0x00 0x15e 0x04>; + clocks = <0x02 0x5a 0x02 0x59>; + #pwm-cells = <0x03>; + compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; + status = "disabled"; + reg = <0x00 0xfebf0010 0x00 0x10>; + phandle = <0x2da>; + }; - spi0m0-pins { - rockchip,pins = <0x00 0x16 0x08 0x19a 0x00 0x17 0x08 0x19a 0x00 0x10 0x08 0x19a>; - phandle = <0x150>; - }; + iommu@fdbef000 { + power-domains = <0x60 0x11>; + rockchip,shootdown-entire; + interrupts = <0x00 0x66 0x04 0x00 0x67 0x04>; + clocks = <0x02 0x1ca 0x02 0x1c9>; + rockchip,enable-cmd-retry; + #iommu-cells = <0x00>; + compatible = "rockchip,iommu-v2"; + rockchip,disable-mmu-reset; + status = "okay"; + interrupt-names = "irq_rkvenc1_mmu0\0irq_rkvenc1_mmu1"; + reg = <0x00 0xfdbef000 0x00 0x40 0x00 0xfdbef040 0x00 0x40>; + phandle = <0xc5>; + lock-names = "aclk\0iface"; + }; - spi0m0-cs0 { - rockchip,pins = <0x00 0x19 0x08 0x19a>; - phandle = <0x14e>; - }; + serial@feb60000 { + reg-io-width = <0x04>; + pinctrl-names = "default"; + pinctrl-0 = <0x162>; + clock-names = "baudclk\0apb_pclk"; + interrupts = <0x00 0x14e 0x04>; + clocks = <0x02 0xbf 0x02 0xad>; + compatible = "rockchip,rk3588-uart\0snps,dw-apb-uart"; + status = "disabled"; + reg = <0x00 0xfeb60000 0x00 0x100>; + phandle = <0x2cb>; + dmas = <0x7c 0x0c 0x7c 0x0d>; + reg-shift = <0x02>; + }; - spi0m0-cs1 { - rockchip,pins = <0x00 0x0f 0x08 0x19a>; - phandle = <0x14f>; - }; + hdmiin-sound { + rockchip,jack-det; + rockchip,cpu = <0x1ec>; + rockchip,codec = <0x1eb 0x00>; + rockchip,bitclock-master = <0x1eb>; + rockchip,card-name = "rockchip,hdmiin"; + rockchip,format = "i2s"; + compatible = "rockchip,hdmi"; + phandle = <0x4ac>; + rockchip,frame-master = <0x1eb>; + rockchip,mclk-fs = <0x80>; + }; - spi0m1-pins { - rockchip,pins = <0x04 0x02 0x08 0x19a 0x04 0x00 0x08 0x19a 0x04 0x01 0x08 0x19a>; - phandle = <0x3f3>; - }; + i2s@fddc8000 { + power-domains = <0x60 0x19>; + clock-names = "mclk_tx\0hclk"; + assigned-clocks = <0x02 0x1ff>; + assigned-clock-parents = <0x02 0x05>; + resets = <0x02 0x391>; + interrupts = <0x00 0xbc 0x04>; + clocks = <0x02 0x201 0x02 0x1fe>; + dma-names = "tx"; + #sound-dai-cells = <0x00>; + compatible = "rockchip,rk3588-i2s-tdm"; + rockchip,playback-only; + status = "disabled"; + reg = <0x00 0xfddc8000 0x00 0x1000>; + phandle = <0x47c>; + dmas = <0xf2 0x16>; + reset-names = "tx-m"; + }; - spi0m1-cs0 { - rockchip,pins = <0x04 0x0a 0x08 0x19a>; - phandle = <0x3f4>; - }; + pcie30-avdd0v75 { + regulator-max-microvolt = <0xb71b0>; + regulator-boot-on; + regulator-always-on; + regulator-min-microvolt = <0xb71b0>; + regulator-name = "pcie30_avdd0v75"; + compatible = "regulator-fixed"; + phandle = <0x4a7>; + vin-supply = <0x1df>; + }; - spi0m1-cs1 { - rockchip,pins = <0x04 0x09 0x08 0x19a>; - phandle = <0x3f5>; - }; + timer { + interrupts = <0x01 0x0d 0xf04 0x01 0x0e 0xf04 0x01 0x0b 0xf04 0x01 0x0a 0xf04>; + compatible = "arm,armv8-timer"; + }; - spi0m2-pins { - rockchip,pins = <0x01 0x0b 0x08 0x19a 0x01 0x09 0x08 0x19a 0x01 0x0a 0x08 0x19a>; - phandle = <0x3f6>; - }; + rockchip-suspend { + rockchip,sleep-debug-en = <0x01>; + rockchip,sleep-mode-config = <0x5000604>; + compatible = "rockchip,pm-rk3588"; + status = "okay"; + rockchip,wakeup-config = <0x100>; + phandle = <0x246>; + }; - spi0m2-cs0 { - rockchip,pins = <0x01 0x0c 0x08 0x19a>; - phandle = <0x3f7>; - }; - - spi0m2-cs1 { - rockchip,pins = <0x01 0x0d 0x08 0x19a>; - phandle = <0x3f8>; - }; - - spi0m3-pins { - rockchip,pins = <0x03 0x1b 0x08 0x19a 0x03 0x19 0x08 0x19a 0x03 0x1a 0x08 0x19a>; - phandle = <0x3f9>; - }; - - spi0m3-cs0 { - rockchip,pins = <0x03 0x1c 0x08 0x19a>; - phandle = <0x3fa>; - }; - - spi0m3-cs1 { - rockchip,pins = <0x03 0x1d 0x08 0x19a>; - phandle = <0x3fb>; - }; - }; + decompress@fea80000 { + clock-names = "aclk\0dclk\0pclk"; + resets = <0x02 0x118>; + interrupts = <0x00 0x55 0x04>; + clocks = <0x02 0x75 0x02 0x77 0x02 0x76>; + compatible = "rockchip,hw-decompress"; + status = "disabled"; + reg = <0x00 0xfea80000 0x00 0x1000>; + phandle = <0x2a3>; + reset-names = "dresetn"; + }; - spi1 { + dma-controller@fea30000 { + clock-names = "apb_pclk"; + interrupts = <0x00 0x58 0x04 0x00 0x59 0x04>; + clocks = <0x02 0x79>; + arm,pl330-periph-burst; + compatible = "arm,pl330\0arm,primecell"; + reg = <0x00 0xfea30000 0x00 0x4000>; + phandle = <0xf1>; + #dma-cells = <0x01>; + }; - spi1m1-pins { - rockchip,pins = <0x03 0x11 0x08 0x19a 0x03 0x10 0x08 0x19a 0x03 0x0f 0x08 0x19a>; - phandle = <0x153>; - }; + pwm@febf0000 { + pinctrl-names = "active"; + pinctrl-0 = <0x171>; + clock-names = "pwm\0pclk"; + interrupts = <0x00 0x15e 0x04>; + clocks = <0x02 0x5a 0x02 0x59>; + #pwm-cells = <0x03>; + compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; + status = "disabled"; + reg = <0x00 0xfebf0000 0x00 0x10>; + phandle = <0x2d9>; + }; - spi1m1-cs0 { - rockchip,pins = <0x03 0x12 0x08 0x19a>; - phandle = <0x151>; - }; + iommu@fdcd8f00 { + power-domains = <0x60 0x1d>; + clock-names = "aclk\0iface\0pclk"; + interrupts = <0x00 0x8e 0x04>; + clocks = <0x02 0x1d8 0x02 0x1d9 0x02 0x1da>; + #iommu-cells = <0x00>; + compatible = "rockchip,iommu-v2"; + rockchip,disable-mmu-reset; + status = "disabled"; + interrupt-names = "fec1_mmu"; + reg = <0x00 0xfdcd8f00 0x00 0x100>; + phandle = <0xd3>; + }; - spi1m1-cs1 { - rockchip,pins = <0x03 0x13 0x08 0x19a>; - phandle = <0x152>; - }; + spdif-tx@fddb0000 { + power-domains = <0x60 0x19>; + clock-names = "mclk\0hclk"; + assigned-clocks = <0x02 0x205>; + assigned-clock-parents = <0x02 0x05>; + interrupts = <0x00 0xc3 0x04>; + clocks = <0x02 0x209 0x02 0x204>; + dma-names = "tx"; + #sound-dai-cells = <0x00>; + compatible = "rockchip,rk3588-spdif\0rockchip,rk3568-spdif"; + status = "disabled"; + reg = <0x00 0xfddb0000 0x00 0x1000>; + phandle = <0x1d5>; + dmas = <0xf1 0x06>; + }; - spi1m2-pins { - rockchip,pins = <0x01 0x1a 0x08 0x19a 0x01 0x18 0x08 0x19a 0x01 0x19 0x08 0x19a>; - phandle = <0x3fc>; - }; + rkisp1-vir2 { + rockchip,hw = <0x5a>; + compatible = "rockchip,rkisp-vir"; + status = "disabled"; + phandle = <0x241>; + }; - spi1m2-cs0 { - rockchip,pins = <0x01 0x1b 0x08 0x19a>; - phandle = <0x3fd>; - }; + pcie-clk1 { + regulator-boot-on; + regulator-always-on; + regulator-name = "pcie_clk1"; + compatible = "regulator-fixed"; + status = "okay"; + phandle = <0x494>; + vin-supply = <0x1cd>; + gpios = <0x181 0x15 0x01>; + }; - spi1m2-cs1 { - rockchip,pins = <0x01 0x1d 0x08 0x19a>; - phandle = <0x3fe>; - }; + jpege-core@fdba8000 { + power-domains = <0x60 0x15>; + iommus = <0xbf>; + rockchip,ccu = <0xbd>; + clock-names = "aclk_vcodec\0hclk_vcodec"; + assigned-clocks = <0x02 0x1b0>; + rockchip,normal-rates = <0x2367b880 0x00>; + assigned-clock-rates = <0x2367b880>; + resets = <0x02 0x2ce 0x02 0x2cf>; + interrupts = <0x00 0x7e 0x04>; + clocks = <0x02 0x1b0 0x02 0x1b1>; + rockchip,srv = <0xb8>; + rockchip,taskqueue-node = <0x02>; + rockchip,disable-auto-freq; + compatible = "rockchip,vpu-jpege-core"; + status = "okay"; + interrupt-names = "irq_jpege2"; + rockchip,skip-pmu-idle-request; + reg = <0x00 0xfdba8000 0x00 0x400>; + phandle = <0x26f>; + reset-names = "video_a\0video_h"; + }; - spi1m0-pins { - rockchip,pins = <0x02 0x10 0x08 0x19f 0x02 0x11 0x08 0x19f 0x02 0x12 0x08 0x19f>; - phandle = <0x3ff>; - }; + qos@fdf66400 { + compatible = "syscon"; + reg = <0x00 0xfdf66400 0x00 0x20>; + phandle = <0x95>; + }; - spi1m0-cs0 { - rockchip,pins = <0x02 0x13 0x08 0x19f>; - phandle = <0x400>; - }; + spdif-tx1-sound { + simple-audio-card,name = "rockchip,spdif-tx1"; + compatible = "simple-audio-card"; + status = "disabled"; + phandle = <0x49d>; + simple-audio-card,mclk-fs = <0x80>; - spi1m0-cs1 { - rockchip,pins = <0x02 0x14 0x08 0x19f>; - phandle = <0x401>; - }; + simple-audio-card,cpu { + sound-dai = <0x1d7>; }; - spi2 { - - spi2m0-pins { - rockchip,pins = <0x01 0x06 0x08 0x19a 0x01 0x04 0x08 0x19a 0x01 0x05 0x08 0x19a>; - phandle = <0x402>; - }; - - spi2m0-cs0 { - rockchip,pins = <0x01 0x07 0x08 0x19a>; - phandle = <0x403>; - }; - - spi2m0-cs1 { - rockchip,pins = <0x01 0x08 0x08 0x19a>; - phandle = <0x404>; - }; + simple-audio-card,codec { + sound-dai = <0x1d8>; + }; + }; - spi2m1-pins { - rockchip,pins = <0x04 0x06 0x08 0x19a 0x04 0x04 0x08 0x19a 0x04 0x05 0x08 0x19a>; - phandle = <0x405>; - }; + mmc@fe2e0000 { + mmc-hs400-enhanced-strobe; + clock-names = "core\0bus\0axi\0block\0timer"; + assigned-clocks = <0x02 0x13b 0x02 0x13c 0x02 0x13a>; + bus-width = <0x08>; + non-removable; + no-sdio; + assigned-clock-rates = <0xbebc200 0x16e3600 0xbebc200>; + resets = <0x02 0x1f6 0x02 0x1f4 0x02 0x1f5 0x02 0x1f7 0x02 0x1f8>; + mmc-hs400-1_8v; + interrupts = <0x00 0xcd 0x04>; + clocks = <0x02 0x13a 0x02 0x138 0x02 0x139 0x02 0x13b 0x02 0x13c>; + no-sd; + compatible = "rockchip,rk3588-dwcmshc\0rockchip,dwcmshc-sdhci"; + status = "okay"; + reg = <0x00 0xfe2e0000 0x00 0x10000>; + phandle = <0x295>; + max-frequency = <0xbebc200>; + reset-names = "core\0bus\0axi\0block\0timer"; + }; - spi2m1-cs0 { - rockchip,pins = <0x04 0x07 0x08 0x19a>; - phandle = <0x406>; - }; + dma-controller@fed10000 { + clock-names = "apb_pclk"; + interrupts = <0x00 0x5a 0x04 0x00 0x5b 0x04>; + clocks = <0x02 0x7a>; + arm,pl330-periph-burst; + compatible = "arm,pl330\0arm,primecell"; + reg = <0x00 0xfed10000 0x00 0x4000>; + phandle = <0xf2>; + #dma-cells = <0x01>; + }; - spi2m1-cs1 { - rockchip,pins = <0x04 0x08 0x08 0x19a>; - phandle = <0x407>; - }; + iommu@fc900000 { + interrupts = <0x00 0x171 0x04 0x00 0x173 0x04 0x00 0x176 0x04 0x00 0x16f 0x04>; + #iommu-cells = <0x01>; + compatible = "arm,smmu-v3"; + status = "disabled"; + interrupt-names = "eventq\0gerror\0priq\0cmdq-sync"; + reg = <0x00 0xfc900000 0x00 0x200000>; + phandle = <0x256>; + }; - spi2m2-pins { - rockchip,pins = <0x00 0x05 0x01 0x19f 0x00 0x0b 0x01 0x19f 0x00 0x06 0x01 0x19f>; - phandle = <0x155>; - }; + mailbox@fec70000 { + clock-names = "pclk_mailbox"; + interrupts = <0x00 0x45 0x04 0x00 0x46 0x04 0x00 0x47 0x04 0x00 0x48 0x04>; + clocks = <0x02 0x4d>; + #mbox-cells = <0x01>; + compatible = "rockchip,rk3588-mailbox\0rockchip,rk3368-mailbox"; + status = "disabled"; + reg = <0x00 0xfec70000 0x00 0x200>; + phandle = <0x2de>; + }; - spi2m2-cs0 { - rockchip,pins = <0x00 0x09 0x01 0x19f>; - phandle = <0x154>; - }; + pcie@fe150000 { + power-domains = <0x60 0x22>; + vpcie3v3-supply = <0x1b8>; + #address-cells = <0x03>; + rockchip,pipe-grf = <0x76>; + phy-names = "pcie-phy"; + bus-range = <0x00 0x0f>; + clock-names = "aclk_mst\0aclk_slv\0aclk_dbi\0pclk\0aux\0pipe"; + reg-names = "pcie-apb\0pcie-dbi"; + num-ob-windows = <0x10>; + resets = <0x02 0x20d 0x02 0x21c>; + interrupts = <0x00 0x107 0x04 0x00 0x106 0x04 0x00 0x105 0x04 0x00 0x104 0x04 0x00 0x103 0x04>; + clocks = <0x02 0x14e 0x02 0x153 0x02 0x149 0x02 0x158 0x02 0x15e 0x02 0x183>; + interrupt-map = <0x00 0x00 0x00 0x01 0x1b5 0x00 0x00 0x00 0x00 0x02 0x1b5 0x01 0x00 0x00 0x00 0x03 0x1b5 0x02 0x00 0x00 0x00 0x04 0x1b5 0x03>; + #size-cells = <0x02>; + max-link-speed = <0x03>; + device_type = "pci"; + interrupt-map-mask = <0x00 0x00 0x00 0x07>; + reset-gpios = <0x10d 0x0e 0x00>; + num-lanes = <0x01>; + compatible = "rockchip,rk3588-pcie\0snps,dw-pcie"; + ranges = <0x800 0x00 0xf0000000 0x00 0xf0000000 0x00 0x100000 0x81000000 0x00 0xf0100000 0x00 0xf0100000 0x00 0x100000 0x82000000 0x00 0xf0200000 0x00 0xf0200000 0x00 0xe00000 0xc3000000 0x09 0x00 0x09 0x00 0x00 0x40000000>; + msi-map = <0x00 0x1b6 0x00 0x1000>; + #interrupt-cells = <0x01>; + status = "okay"; + interrupt-names = "sys\0pmc\0msg\0legacy\0err"; + phys = <0x1b7>; + num-viewport = <0x08>; + reg = <0x00 0xfe150000 0x00 0x10000 0x0a 0x40000000 0x00 0x400000>; + linux,pci-domain = <0x00>; + phandle = <0x485>; + reset-names = "pcie\0periph"; + num-ib-windows = <0x10>; - spi2m2-cs1 { - rockchip,pins = <0x00 0x08 0x01 0x19f>; - phandle = <0x408>; - }; + legacy-interrupt-controller { + #address-cells = <0x00>; + interrupts = <0x00 0x104 0x01>; + interrupt-parent = <0x01>; + #interrupt-cells = <0x01>; + phandle = <0x1b5>; + interrupt-controller; }; + }; - spi3 { - - spi3m1-pins { - rockchip,pins = <0x04 0x0f 0x08 0x19a 0x04 0x0d 0x08 0x19a 0x04 0x0e 0x08 0x19a>; - phandle = <0x15f>; - }; - - spi3m1-cs0 { - rockchip,pins = <0x04 0x10 0x08 0x19a>; - phandle = <0x15d>; - }; - - spi3m1-cs1 { - rockchip,pins = <0x04 0x11 0x08 0x19a>; - phandle = <0x15e>; - }; - - spi3m2-pins { - rockchip,pins = <0x00 0x1b 0x08 0x19a 0x00 0x18 0x08 0x19a 0x00 0x1a 0x08 0x19a>; - phandle = <0x409>; - }; - - spi3m2-cs0 { - rockchip,pins = <0x00 0x1c 0x08 0x19a>; - phandle = <0x40a>; - }; + rng@fe378000 { + clock-names = "hclk_trng"; + resets = <0x11a 0x30>; + interrupts = <0x00 0x190 0x04>; + clocks = <0x0e 0x0c>; + compatible = "rockchip,trngv1"; + status = "okay"; + reg = <0x00 0xfe378000 0x00 0x200>; + phandle = <0x297>; + reset-names = "reset"; + }; - spi3m2-cs1 { - rockchip,pins = <0x00 0x1d 0x08 0x19a>; - phandle = <0x40b>; - }; + sata@fe220000 { + phy-names = "sata-phy"; + clock-names = "sata\0pmalive\0rxoob\0ref\0asic"; + interrupts = <0x00 0x112 0x04>; + clocks = <0x02 0x172 0x02 0x16f 0x02 0x175 0x02 0x164 0x02 0x17f>; + compatible = "rockchip,rk-ahci\0snps,dwc-ahci"; + status = "disabled"; + interrupt-names = "hostc"; + phys = <0x1bc 0x01>; + reg = <0x00 0xfe220000 0x00 0x1000>; + phandle = <0x48a>; + ports-implemented = <0x01>; + }; - spi3m3-pins { - rockchip,pins = <0x03 0x18 0x08 0x19a 0x03 0x16 0x08 0x19a 0x03 0x17 0x08 0x19a>; - phandle = <0x40c>; - }; + rkcif-mipi-lvds5 { + iommus = <0x50>; + rockchip,hw = <0x4f>; + compatible = "rockchip,rkcif-mipi-lvds"; + status = "disabled"; + phandle = <0x1a2>; + }; - spi3m3-cs0 { - rockchip,pins = <0x03 0x14 0x08 0x19a>; - phandle = <0x40d>; - }; + vcc-sata-pwr-en-regulator { + regulator-max-microvolt = <0x325aa0>; + regulator-boot-on; + gpio = <0x182 0x0c 0x00>; + regulator-always-on; + enable-active-high; + regulator-min-microvolt = <0x325aa0>; + regulator-name = "vcc_sata_pwr_en"; + startup-delay-us = <0x1388>; + compatible = "regulator-fixed"; + status = "okay"; + phandle = <0x4a3>; + vin-supply = <0x1cd>; + }; - spi3m3-cs1 { - rockchip,pins = <0x03 0x15 0x08 0x19a>; - phandle = <0x40e>; - }; + pwm-fan { + cooling-levels = <0x32 0x32 0x64 0x96 0xc8 0xff>; + rockchip,temp-trips = <0xc350 0x01 0xd6d8 0x02 0xea60 0x03 0xfde8 0x04 0x11170 0x05>; + compatible = "pwm-fan"; + phandle = <0x4ad>; + pwms = <0x1ed 0x00 0xc350 0x00>; + #cooling-cells = <0x02>; + fan-supply = <0x78>; + }; - spi3m0-pins { - rockchip,pins = <0x04 0x16 0x08 0x19f 0x04 0x14 0x08 0x19f 0x04 0x15 0x08 0x19f>; - phandle = <0x40f>; - }; + qos@fdf3e200 { + compatible = "syscon"; + reg = <0x00 0xfdf3e200 0x00 0x20>; + phandle = <0xab>; + }; - spi3m0-cs0 { - rockchip,pins = <0x04 0x12 0x08 0x19f>; - phandle = <0x410>; - }; + spdif-tx@fe4e0000 { + power-domains = <0x60 0x26>; + pinctrl-names = "default"; + pinctrl-0 = <0x142>; + clock-names = "mclk\0hclk"; + assigned-clocks = <0x02 0x3f>; + assigned-clock-parents = <0x02 0x05>; + interrupts = <0x00 0xc1 0x04>; + clocks = <0x02 0x41 0x02 0x3e>; + dma-names = "tx"; + #sound-dai-cells = <0x00>; + compatible = "rockchip,rk3588-spdif\0rockchip,rk3568-spdif"; + status = "disabled"; + reg = <0x00 0xfe4e0000 0x00 0x1000>; + phandle = <0x29d>; + dmas = <0x7c 0x05>; + }; - spi3m0-cs1 { - rockchip,pins = <0x04 0x13 0x08 0x19f>; - phandle = <0x411>; - }; - }; + vad@fe4d0000 { + rockchip,det-channel = <0x00>; + rockchip,audio-src = <0x00>; + clock-names = "hclk"; + reg-names = "vad"; + interrupts = <0x00 0xca 0x04>; + clocks = <0x02 0x2a0>; + #sound-dai-cells = <0x00>; + compatible = "rockchip,rk3588-vad"; + status = "disabled"; + rockchip,mode = <0x00>; + reg = <0x00 0xfe4d0000 0x00 0x1000>; + phandle = <0x29c>; + }; - spi4 { + jpegd@fdb90000 { + power-domains = <0x60 0x15>; + iommus = <0xbb>; + clock-names = "aclk_vcodec\0hclk_vcodec"; + assigned-clocks = <0x02 0x1b4>; + rockchip,normal-rates = <0x23c34600 0x00>; + assigned-clock-rates = <0x23c34600>; + resets = <0x02 0x2d2 0x02 0x2d3>; + interrupts = <0x00 0x81 0x04>; + clocks = <0x02 0x1b4 0x02 0x1b5>; + rockchip,srv = <0xb8>; + rockchip,taskqueue-node = <0x01>; + compatible = "rockchip,rkv-jpeg-decoder-v1"; + status = "okay"; + interrupt-names = "irq_jpegd"; + rockchip,skip-pmu-idle-request; + reg = <0x00 0xfdb90000 0x00 0x400>; + phandle = <0x26c>; + reset-names = "video_a\0video_h"; + }; - spi4m0-pins { - rockchip,pins = <0x01 0x12 0x08 0x19a 0x01 0x10 0x08 0x19a 0x01 0x11 0x08 0x19a>; - phandle = <0x189>; - }; + cpuinfo { + nvmem-cells = <0x2a 0x2b 0x2c>; + compatible = "rockchip,cpuinfo"; + nvmem-cell-names = "id\0cpu-version\0cpu-code"; + }; - spi4m0-cs0 { - rockchip,pins = <0x01 0x13 0x08 0x19a>; - phandle = <0x187>; - }; + qos@fdf60400 { + compatible = "syscon"; + reg = <0x00 0xfdf60400 0x00 0x20>; + phandle = <0x8f>; + }; - spi4m0-cs1 { - rockchip,pins = <0x01 0x14 0x08 0x19a>; - phandle = <0x188>; - }; + spi@feb20000 { + pinctrl-names = "default"; + #address-cells = <0x01>; + num-cs = <0x01>; + pinctrl-0 = <0x154 0x155>; + clock-names = "spiclk\0apb_pclk"; + assigned-clocks = <0x02 0xa5>; + assigned-clock-rates = <0xbebc200>; + interrupts = <0x00 0x148 0x04>; + clocks = <0x02 0xa5 0x02 0xa0>; + #size-cells = <0x00>; + dma-names = "tx\0rx"; + compatible = "rockchip,rk3066-spi"; + status = "okay"; + reg = <0x00 0xfeb20000 0x00 0x1000>; + phandle = <0x2ad>; + dmas = <0xf1 0x0f 0xf1 0x10>; - spi4m1-pins { - rockchip,pins = <0x03 0x02 0x08 0x19a 0x03 0x00 0x08 0x19a 0x03 0x01 0x08 0x19a>; - phandle = <0x412>; - }; + rk806single@0 { + vcc11-supply = <0x15b>; + pinctrl-names = "default\0pmic-power-off"; + vcc12-supply = <0x78>; + vcc13-supply = <0x15c>; + vcc14-supply = <0x15c>; + pinctrl-0 = <0x156 0x157 0x158 0x159>; + interrupts = <0x07 0x08>; + spi-max-frequency = <0xf4240>; + interrupt-parent = <0x7b>; + low_voltage_threshold = <0xbb8>; + vcca-supply = <0x78>; + vcc1-supply = <0x78>; + pmic-reset-func = <0x01>; + vcc2-supply = <0x78>; + hotdie_temperture_threshold = <0x73>; + compatible = "rockchip,rk806"; + vcc3-supply = <0x78>; + pinctrl-1 = <0x15a>; + vcc4-supply = <0x78>; + vcc5-supply = <0x78>; + reg = <0x00>; + phandle = <0x2ae>; + vcc6-supply = <0x78>; + shutdown_voltage_threshold = <0xa8c>; + vcc7-supply = <0x78>; + vcc8-supply = <0x78>; + shutdown_temperture_threshold = <0xa0>; + vcc9-supply = <0x78>; + vcc10-supply = <0x78>; - spi4m1-cs0 { - rockchip,pins = <0x03 0x03 0x08 0x19a>; - phandle = <0x413>; - }; + pinctrl_rk806 { + gpio-controller; + phandle = <0x2af>; + #gpio-cells = <0x02>; - spi4m1-cs1 { - rockchip,pins = <0x03 0x04 0x08 0x19a>; - phandle = <0x414>; - }; + rk806_dvs2_rst { + function = "pin_fun3"; + pins = "gpio_pwrctrl2"; + phandle = <0x2b4>; + }; - spi4m2-pins { - rockchip,pins = <0x01 0x02 0x08 0x19a 0x01 0x00 0x08 0x19a 0x01 0x01 0x08 0x19a>; - phandle = <0x415>; - }; + rk806_dvs3_null { + function = "pin_fun0"; + pins = "gpio_pwrctrl3"; + phandle = <0x159>; + }; - spi4m2-cs0 { - rockchip,pins = <0x01 0x03 0x08 0x19a>; - phandle = <0x416>; - }; - }; + rk806_dvs3_dvs { + function = "pin_fun4"; + pins = "gpio_pwrctrl3"; + phandle = <0x2ba>; + }; - tsadc { + rk806_dvs3_rst { + function = "pin_fun3"; + pins = "gpio_pwrctrl3"; + phandle = <0x2b9>; + }; - tsadcm1-shut { - rockchip,pins = <0x00 0x02 0x02 0x198>; - phandle = <0x417>; - }; + rk806_dvs2_null { + function = "pin_fun0"; + pins = "gpio_pwrctrl2"; + phandle = <0x158>; + }; - tsadc-shut { - rockchip,pins = <0x00 0x01 0x02 0x198>; - phandle = <0x176>; - }; + rk806_dvs1_pwrdn { + function = "pin_fun2"; + pins = "gpio_pwrctrl1"; + phandle = <0x15a>; + }; - tsadc-shut-org { - rockchip,pins = <0x00 0x01 0x01 0x198>; - phandle = <0x418>; - }; - }; + rk806_dvs1_slp { + function = "pin_fun1"; + pins = "gpio_pwrctrl1"; + phandle = <0x2b0>; + }; - uart0 { + rk806_dvs1_null { + function = "pin_fun0"; + pins = "gpio_pwrctrl2"; + phandle = <0x157>; + }; - uart0m0-xfer { - rockchip,pins = <0x00 0x14 0x04 0x19e 0x00 0x15 0x04 0x19e>; - phandle = <0x419>; - }; + rk806_dvs3_gpio { + function = "pin_fun5"; + pins = "gpio_pwrctrl3"; + phandle = <0x2bb>; + }; - uart0m1-xfer { - rockchip,pins = <0x00 0x08 0x04 0x19e 0x00 0x09 0x04 0x19e>; - phandle = <0x7d>; - }; + rk806_dvs2_gpio { + function = "pin_fun5"; + pins = "gpio_pwrctrl2"; + phandle = <0x2b6>; + }; - uart0m2-xfer { - rockchip,pins = <0x04 0x04 0x0a 0x19e 0x04 0x03 0x0a 0x19e>; - phandle = <0x41a>; - }; + rk806_dvs2_slp { + function = "pin_fun1"; + pins = "gpio_pwrctrl2"; + phandle = <0x2b2>; + }; - uart0-ctsn { - rockchip,pins = <0x00 0x19 0x04 0x198>; - phandle = <0x41b>; - }; + rk806_dvs2_pwrdn { + function = "pin_fun2"; + pins = "gpio_pwrctrl2"; + phandle = <0x2b3>; + }; - uart0-rtsn { - rockchip,pins = <0x00 0x16 0x04 0x198>; - phandle = <0x41c>; - }; - }; + rk806_dvs1_rst { + function = "pin_fun3"; + pins = "gpio_pwrctrl1"; + phandle = <0x2b1>; + }; - uart1 { + rk806_dvs3_slp { + function = "pin_fun1"; + pins = "gpio_pwrctrl3"; + phandle = <0x2b7>; + }; - uart1m1-xfer { - rockchip,pins = <0x01 0x0f 0x0a 0x19e 0x01 0x0e 0x0a 0x19e>; - phandle = <0x160>; - }; + rk806_dvs2_dvs { + function = "pin_fun4"; + pins = "gpio_pwrctrl2"; + phandle = <0x2b5>; + }; - uart1m1-ctsn { - rockchip,pins = <0x01 0x1f 0x0a 0x198>; - phandle = <0x41d>; + rk806_dvs3_pwrdn { + function = "pin_fun2"; + pins = "gpio_pwrctrl3"; + phandle = <0x2b8>; + }; }; - uart1m1-rtsn { - rockchip,pins = <0x01 0x1e 0x0a 0x198>; - phandle = <0x41e>; + pwrkey { + status = "okay"; }; - uart1m2-xfer { - rockchip,pins = <0x00 0x1a 0x0a 0x19e 0x00 0x19 0x0a 0x19e>; - phandle = <0x41f>; - }; + regulators { - uart1m2-ctsn { - rockchip,pins = <0x00 0x18 0x0a 0x198>; - phandle = <0x420>; - }; + PLDO_REG2 { + regulator-max-microvolt = <0x1b7740>; + regulator-boot-on; + regulator-always-on; + regulator-min-microvolt = <0x1b7740>; + regulator-name = "vcc_1v8_s0"; + phandle = <0x177>; - uart1m2-rtsn { - rockchip,pins = <0x00 0x17 0x0a 0x198>; - phandle = <0x421>; - }; + regulator-state-mem { + regulator-off-in-suspend; + regulator-suspend-microvolt = <0x1b7740>; + }; + }; - uart1m0-xfer { - rockchip,pins = <0x02 0x0e 0x0a 0x19e 0x02 0x0f 0x0a 0x19e>; - phandle = <0x422>; - }; + DCDC_REG4 { + regulator-max-microvolt = <0xe7ef0>; + regulator-boot-on; + regulator-init-microvolt = <0xb71b0>; + regulator-always-on; + regulator-min-microvolt = <0x86470>; + regulator-name = "vdd_vdenc_s0"; + regulator-ramp-delay = <0x30d4>; + phandle = <0x2bc>; - uart1m0-ctsn { - rockchip,pins = <0x02 0x11 0x0a 0x198>; - phandle = <0x423>; - }; + regulator-state-mem { + regulator-off-in-suspend; + }; + }; - uart1m0-rtsn { - rockchip,pins = <0x02 0x10 0x0a 0x198>; - phandle = <0x424>; - }; - }; + DCDC_REG2 { + regulator-max-microvolt = <0xe7ef0>; + regulator-boot-on; + regulator-always-on; + regulator-min-microvolt = <0x86470>; + regulator-name = "vdd_cpu_lit_s0"; + regulator-ramp-delay = <0x30d4>; + phandle = <0x12>; - uart2 { + regulator-state-mem { + regulator-off-in-suspend; + }; + }; - uart2m0-xfer { - rockchip,pins = <0x00 0x0e 0x0a 0x19e 0x00 0x0d 0x0a 0x19e>; - phandle = <0x1ce>; - }; + NLDO_REG4 { + regulator-max-microvolt = <0xcf850>; + regulator-boot-on; + regulator-always-on; + regulator-min-microvolt = <0xcf850>; + regulator-name = "vdd_0v85_s0"; + phandle = <0x2c6>; - uart2m1-xfer { - rockchip,pins = <0x04 0x19 0x0a 0x19e 0x04 0x18 0x0a 0x19e>; - phandle = <0x161>; - }; + regulator-state-mem { + regulator-off-in-suspend; + }; + }; - uart2m2-xfer { - rockchip,pins = <0x03 0x0a 0x0a 0x19e 0x03 0x09 0x0a 0x19e>; - phandle = <0x425>; - }; + DCDC_REG9 { + regulator-boot-on; + regulator-always-on; + regulator-name = "vddq_ddr_s0"; + phandle = <0x2bf>; - uart2-ctsn { - rockchip,pins = <0x03 0x0c 0x0a 0x198>; - phandle = <0x426>; - }; + regulator-state-mem { + regulator-off-in-suspend; + }; + }; - uart2-rtsn { - rockchip,pins = <0x03 0x0b 0x0a 0x198>; - phandle = <0x427>; - }; - }; + NLDO_REG2 { + regulator-max-microvolt = <0xcf850>; + regulator-boot-on; + regulator-always-on; + regulator-min-microvolt = <0xcf850>; + regulator-name = "vdd_ddr_pll_s0"; + phandle = <0x2c5>; - uart3 { + regulator-state-mem { + regulator-off-in-suspend; + regulator-suspend-microvolt = <0xcf850>; + }; + }; - uart3m0-xfer { - rockchip,pins = <0x01 0x10 0x0a 0x19e 0x01 0x11 0x0a 0x19e>; - phandle = <0x428>; - }; + PLDO_REG5 { + regulator-max-microvolt = <0x325aa0>; + regulator-boot-on; + regulator-always-on; + regulator-min-microvolt = <0x1b7740>; + regulator-name = "vccio_sd_s0"; + phandle = <0x118>; - uart3m1-xfer { - rockchip,pins = <0x03 0x0e 0x0a 0x19e 0x03 0x0d 0x0a 0x19e>; - phandle = <0x162>; - }; + regulator-state-mem { + regulator-off-in-suspend; + }; + }; - uart3m2-xfer { - rockchip,pins = <0x04 0x06 0x0a 0x19e 0x04 0x05 0x0a 0x19e>; - phandle = <0x429>; - }; + DCDC_REG7 { + regulator-max-microvolt = <0x1e8480>; + regulator-boot-on; + regulator-always-on; + regulator-min-microvolt = <0x1e8480>; + regulator-name = "vdd_2v0_pldo_s3"; + phandle = <0x15b>; - uart3-ctsn { - rockchip,pins = <0x01 0x13 0x0a 0x198>; - phandle = <0x42a>; - }; + regulator-state-mem { + regulator-suspend-microvolt = <0x1e8480>; + regulator-on-in-suspend; + }; + }; - uart3-rtsn { - rockchip,pins = <0x01 0x12 0x0a 0x198>; - phandle = <0x42b>; - }; - }; + PLDO_REG3 { + regulator-max-microvolt = <0x124f80>; + regulator-boot-on; + regulator-always-on; + regulator-min-microvolt = <0x124f80>; + regulator-name = "avdd_1v2_s0"; + phandle = <0x2c1>; - uart4 { + regulator-state-mem { + regulator-off-in-suspend; + }; + }; - uart4m0-xfer { - rockchip,pins = <0x01 0x1b 0x0a 0x19e 0x01 0x1a 0x0a 0x19e>; - phandle = <0x42c>; - }; + DCDC_REG5 { + regulator-max-microvolt = <0xdbba0>; + regulator-boot-on; + regulator-always-on; + regulator-min-microvolt = <0xa4cb8>; + regulator-name = "vdd_ddr_s0"; + regulator-ramp-delay = <0x30d4>; + phandle = <0x42>; - uart4m1-xfer { - rockchip,pins = <0x03 0x18 0x0a 0x19e 0x03 0x19 0x0a 0x19e>; - phandle = <0x163>; - }; + regulator-state-mem { + regulator-off-in-suspend; + regulator-suspend-microvolt = <0xcf850>; + }; + }; - uart4m2-xfer { - rockchip,pins = <0x01 0x0a 0x0a 0x19e 0x01 0x0b 0x0a 0x19e>; - phandle = <0x42d>; - }; + DCDC_REG10 { + regulator-max-microvolt = <0x1b7740>; + regulator-boot-on; + regulator-always-on; + regulator-min-microvolt = <0x1b7740>; + regulator-name = "vcc_1v8_s3"; + phandle = <0x2c0>; - uart4-ctsn { - rockchip,pins = <0x01 0x17 0x0a 0x198>; - phandle = <0x42e>; - }; + regulator-state-mem { + regulator-suspend-microvolt = <0x1b7740>; + regulator-on-in-suspend; + }; + }; - uart4-rtsn { - rockchip,pins = <0x01 0x15 0x0a 0x198>; - phandle = <0x42f>; - }; - }; + PLDO_REG1 { + regulator-max-microvolt = <0x1b7740>; + regulator-boot-on; + regulator-always-on; + regulator-min-microvolt = <0x1b7740>; + regulator-name = "avcc_1v8_s0"; + phandle = <0x1de>; - uart5 { + regulator-state-mem { + regulator-off-in-suspend; + }; + }; - uart5m0-xfer { - rockchip,pins = <0x04 0x1c 0x0a 0x19e 0x04 0x1d 0x0a 0x19e>; - phandle = <0x430>; - }; + DCDC_REG3 { + regulator-max-microvolt = <0xb71b0>; + regulator-boot-on; + regulator-always-on; + regulator-min-microvolt = <0xa4cb8>; + regulator-name = "vdd_log_s0"; + regulator-ramp-delay = <0x30d4>; + phandle = <0x43>; - uart5m0-ctsn { - rockchip,pins = <0x04 0x1a 0x0a 0x198>; - phandle = <0x431>; - }; + regulator-state-mem { + regulator-suspend-microvolt = <0xb71b0>; + regulator-on-in-suspend; + }; + }; - uart5m0-rtsn { - rockchip,pins = <0x04 0x1b 0x0a 0x198>; - phandle = <0x432>; - }; + DCDC_REG1 { + regulator-max-microvolt = <0xe7ef0>; + regulator-boot-on; + regulator-enable-ramp-delay = <0x190>; + regulator-min-microvolt = <0x86470>; + regulator-name = "vdd_gpu_s0"; + regulator-ramp-delay = <0x30d4>; + phandle = <0x62>; - uart5m1-xfer { - rockchip,pins = <0x03 0x15 0x0a 0x19e 0x03 0x14 0x0a 0x19e>; - phandle = <0x164>; - }; + regulator-state-mem { + regulator-off-in-suspend; + }; + }; - uart5m1-ctsn { - rockchip,pins = <0x02 0x02 0x0a 0x198>; - phandle = <0x433>; - }; + NLDO_REG5 { + regulator-max-microvolt = <0xb71b0>; + regulator-boot-on; + regulator-always-on; + regulator-min-microvolt = <0xb71b0>; + regulator-name = "vdd_0v75_s0"; + phandle = <0x2c7>; - uart5m1-rtsn { - rockchip,pins = <0x02 0x03 0x0a 0x198>; - phandle = <0x434>; - }; + regulator-state-mem { + regulator-off-in-suspend; + }; + }; - uart5m2-xfer { - rockchip,pins = <0x02 0x1c 0x0a 0x19e 0x02 0x1d 0x0a 0x19e>; - phandle = <0x435>; - }; - }; + NLDO_REG3 { + regulator-max-microvolt = <0xb71b0>; + regulator-boot-on; + regulator-always-on; + regulator-min-microvolt = <0xb71b0>; + regulator-name = "avdd_0v75_s0"; + phandle = <0x1df>; - uart6 { + regulator-state-mem { + regulator-off-in-suspend; + }; + }; - uart6m1-xfer { - rockchip,pins = <0x01 0x00 0x0a 0x19e 0x01 0x01 0x0a 0x19e>; - phandle = <0x165>; - }; + PLDO_REG6 { + regulator-max-microvolt = <0x1b7740>; + regulator-boot-on; + regulator-always-on; + regulator-min-microvolt = <0x1b7740>; + regulator-name = "pldo6_s3"; + phandle = <0x2c3>; - uart6m1-ctsn { - rockchip,pins = <0x01 0x03 0x0a 0x198>; - phandle = <0x436>; - }; + regulator-state-mem { + regulator-suspend-microvolt = <0x1b7740>; + regulator-on-in-suspend; + }; + }; - uart6m1-rtsn { - rockchip,pins = <0x01 0x02 0x0a 0x198>; - phandle = <0x1e5>; - }; - - uart6m2-xfer { - rockchip,pins = <0x01 0x19 0x0a 0x19e 0x01 0x18 0x0a 0x19e>; - phandle = <0x437>; - }; - - uart6m0-xfer { - rockchip,pins = <0x02 0x06 0x0a 0x19e 0x02 0x07 0x0a 0x19e>; - phandle = <0x438>; - }; - - uart6m0-ctsn { - rockchip,pins = <0x02 0x09 0x0a 0x198>; - phandle = <0x439>; - }; - - uart6m0-rtsn { - rockchip,pins = <0x02 0x08 0x0a 0x198>; - phandle = <0x43a>; - }; - }; - - uart7 { + DCDC_REG8 { + regulator-max-microvolt = <0x325aa0>; + regulator-boot-on; + regulator-always-on; + regulator-min-microvolt = <0x325aa0>; + regulator-name = "vcc_3v3_s3"; + phandle = <0x2be>; - uart7m1-xfer { - rockchip,pins = <0x03 0x11 0x0a 0x19e 0x03 0x10 0x0a 0x19e>; - phandle = <0x166>; - }; + regulator-state-mem { + regulator-suspend-microvolt = <0x325aa0>; + regulator-on-in-suspend; + }; + }; - uart7m1-ctsn { - rockchip,pins = <0x03 0x13 0x0a 0x198>; - phandle = <0x43b>; - }; + NLDO_REG1 { + regulator-max-microvolt = <0xb71b0>; + regulator-boot-on; + regulator-always-on; + regulator-min-microvolt = <0xb71b0>; + regulator-name = "vdd_0v75_s3"; + phandle = <0x2c4>; - uart7m1-rtsn { - rockchip,pins = <0x03 0x12 0x0a 0x198>; - phandle = <0x43c>; - }; + regulator-state-mem { + regulator-suspend-microvolt = <0xb71b0>; + regulator-on-in-suspend; + }; + }; - uart7m2-xfer { - rockchip,pins = <0x01 0x0c 0x0a 0x19e 0x01 0x0d 0x0a 0x19e>; - phandle = <0x43d>; - }; + PLDO_REG4 { + regulator-max-microvolt = <0x325aa0>; + regulator-boot-on; + regulator-always-on; + regulator-min-microvolt = <0x325aa0>; + regulator-name = "vcc_3v3_s0"; + phandle = <0x2c2>; - uart7m0-xfer { - rockchip,pins = <0x02 0x0c 0x0a 0x19e 0x02 0x0d 0x0a 0x19e>; - phandle = <0x43e>; - }; + regulator-state-mem { + regulator-off-in-suspend; + }; + }; - uart7m0-ctsn { - rockchip,pins = <0x04 0x16 0x0a 0x198>; - phandle = <0x43f>; - }; + DCDC_REG6 { + regulator-boot-on; + regulator-always-on; + regulator-name = "vdd2_ddr_s3"; + phandle = <0x2bd>; - uart7m0-rtsn { - rockchip,pins = <0x04 0x12 0x0a 0x198>; - phandle = <0x440>; + regulator-state-mem { + regulator-on-in-suspend; + }; + }; }; }; + }; - uart8 { - - uart8m0-xfer { - rockchip,pins = <0x04 0x09 0x0a 0x19e 0x04 0x08 0x0a 0x19e>; - phandle = <0x441>; - }; - - uart8m0-ctsn { - rockchip,pins = <0x04 0x0b 0x0a 0x198>; - phandle = <0x442>; - }; - - uart8m0-rtsn { - rockchip,pins = <0x04 0x0a 0x0a 0x198>; - phandle = <0x443>; - }; - - uart8m1-xfer { - rockchip,pins = <0x03 0x03 0x0a 0x19e 0x03 0x02 0x0a 0x19e>; - phandle = <0x167>; - }; - - uart8m1-ctsn { - rockchip,pins = <0x03 0x05 0x0a 0x198>; - phandle = <0x444>; - }; - - uart8m1-rtsn { - rockchip,pins = <0x03 0x04 0x0a 0x198>; - phandle = <0x445>; - }; + usbhost3_0 { + #address-cells = <0x02>; + clock-names = "ref\0suspend\0bus\0utmi\0php\0pipe"; + clocks = <0x02 0x179 0x02 0x178 0x02 0x177 0x02 0x17a 0x02 0x166 0x02 0x181>; + #size-cells = <0x02>; + compatible = "rockchip,rk3588-dwc3\0rockchip,rk3399-dwc3"; + ranges; + status = "disabled"; + phandle = <0x258>; - uart8-xfer { - rockchip,pins = <0x04 0x09 0x0a 0x19e>; - phandle = <0x446>; - }; + usb@fcd00000 { + snps,dis_enblslpm_quirk; + phy-names = "usb3-phy"; + snps,dis-u2-freeclk-exists-quirk; + phy_type = "utmi_wide"; + resets = <0x02 0x237>; + interrupts = <0x00 0xde 0x04>; + snps,dis_rxdet_inp3_quirk; + compatible = "snps,dwc3"; + snps,parkmode-disable-hs-quirk; + snps,dis-del-phy-power-chg-quirk; + status = "disabled"; + snps,parkmode-disable-ss-quirk; + phys = <0x70 0x04>; + reg = <0x00 0xfcd00000 0x00 0x400000>; + phandle = <0x259>; + dr_mode = "host"; + reset-names = "usb3-host"; + snps,dis-tx-ipgap-linecheck-quirk; }; + }; - uart9 { - - uart9m1-xfer { - rockchip,pins = <0x04 0x0d 0x0a 0x19e 0x04 0x0c 0x0a 0x19e>; - phandle = <0x168>; - }; - - uart9m1-ctsn { - rockchip,pins = <0x04 0x01 0x0a 0x198>; - phandle = <0x447>; - }; - - uart9m1-rtsn { - rockchip,pins = <0x04 0x00 0x0a 0x198>; - phandle = <0x448>; - }; - - uart9m2-xfer { - rockchip,pins = <0x03 0x1c 0x0a 0x19e 0x03 0x1d 0x0a 0x19e>; - phandle = <0x449>; - }; - - uart9m2-ctsn { - rockchip,pins = <0x03 0x1b 0x0a 0x198>; - phandle = <0x44a>; - }; - - uart9m2-rtsn { - rockchip,pins = <0x03 0x1a 0x0a 0x198>; - phandle = <0x44b>; - }; - - uart9m0-xfer { - rockchip,pins = <0x02 0x14 0x0a 0x19e 0x02 0x12 0x0a 0x19e>; - phandle = <0x44c>; - }; - - uart9m0-ctsn { - rockchip,pins = <0x04 0x15 0x0a 0x198>; - phandle = <0x44d>; - }; + pcie@fe190000 { + #address-cells = <0x03>; + rockchip,pipe-grf = <0x76>; + phy-names = "pcie-phy"; + bus-range = <0x40 0x4f>; + clock-names = "aclk_mst\0aclk_slv\0aclk_dbi\0pclk\0aux\0pipe"; + reg-names = "pcie-apb\0pcie-dbi"; + num-ob-windows = <0x08>; + resets = <0x02 0x211 0x02 0x220>; + interrupts = <0x00 0xfd 0x04 0x00 0xfc 0x04 0x00 0xfb 0x04 0x00 0xfa 0x04 0x00 0xf9 0x04>; + clocks = <0x02 0x152 0x02 0x157 0x02 0x14d 0x02 0x15d 0x02 0x162 0x02 0x182>; + interrupt-map = <0x00 0x00 0x00 0x01 0x107 0x00 0x00 0x00 0x00 0x02 0x107 0x01 0x00 0x00 0x00 0x03 0x107 0x02 0x00 0x00 0x00 0x04 0x107 0x03>; + #size-cells = <0x02>; + max-link-speed = <0x02>; + device_type = "pci"; + interrupt-map-mask = <0x00 0x00 0x00 0x07>; + num-lanes = <0x01>; + compatible = "rockchip,rk3588-pcie\0snps,dw-pcie"; + ranges = <0x800 0x00 0xf4000000 0x00 0xf4000000 0x00 0x100000 0x81000000 0x00 0xf4100000 0x00 0xf4100000 0x00 0x100000 0x82000000 0x00 0xf4200000 0x00 0xf4200000 0x00 0xe00000 0xc3000000 0x0a 0x00 0x0a 0x00 0x00 0x40000000>; + msi-map = <0x4000 0x106 0x4000 0x1000>; + #interrupt-cells = <0x01>; + status = "disabled"; + interrupt-names = "sys\0pmc\0msg\0legacy\0err"; + phys = <0x108 0x02>; + num-viewport = <0x04>; + reg = <0x00 0xfe190000 0x00 0x10000 0x0a 0x41000000 0x00 0x400000>; + linux,pci-domain = <0x04>; + phandle = <0x28d>; + reset-names = "pcie\0periph"; + num-ib-windows = <0x08>; - uart9m0-rtsn { - rockchip,pins = <0x04 0x14 0x0a 0x198>; - phandle = <0x44e>; - }; + legacy-interrupt-controller { + #address-cells = <0x00>; + interrupts = <0x00 0xfa 0x01>; + interrupt-parent = <0x01>; + #interrupt-cells = <0x01>; + phandle = <0x107>; + interrupt-controller; }; + }; - vop { + rkcif-mipi-lvds3-sditf-vir1 { + compatible = "rockchip,rkcif-sditf"; + status = "disabled"; + rockchip,cif = <0x57>; + phandle = <0x238>; + }; - vop-pins { - rockchip,pins = <0x01 0x02 0x01 0x198>; - phandle = <0x44f>; - }; - }; + aliases { + i2c3 = "/i2c@feab0000"; + ethernet0 = "/ethernet@fe1b0000"; + pwm9 = "/pwm@febe0010"; + pwm14 = "/pwm@febf0020"; + spi2 = "/spi@feb20000"; + usbdp0 = "/phy@fed80000"; + gpio0 = "/pinctrl/gpio@fd8a0000"; + dsi1 = "/dsi@fde30000"; + hdmi1 = "/hdmi@fdea0000"; + serial7 = "/serial@feba0000"; + i2c1 = "/i2c@fea90000"; + pwm7 = "/pwm@febd0030"; + pwm12 = "/pwm@febf0000"; + jpege3 = "/jpege-core@fdbac000"; + spi0 = "/spi@feb00000"; + hdptx1 = "/phy@fed70000"; + csi2dphy5 = "/csi2-dphy5"; + serial5 = "/serial@feb80000"; + csi2dcphy1 = "/csi2-dcphy1"; + pwm5 = "/pwm@febd0010"; + mmc1 = "/mmc@fe2c0000"; + pwm10 = "/pwm@febe0020"; + jpege1 = "/jpege-core@fdba4000"; + rkcif_mipi_lvds4 = "/rkcif-mipi-lvds4"; + i2c8 = "/i2c@feca0000"; + dp0 = "/dp@fde50000"; + csi2dphy3 = "/csi2-dphy3"; + serial3 = "/serial@feb60000"; + edp0 = "/edp@fdec0000"; + pwm3 = "/pwm@fd8b0030"; + hdcp1 = "/hdcp@fde70000"; + rkcif_mipi_lvds2 = "/rkcif-mipi-lvds2"; + i2c6 = "/i2c@fec80000"; + csi2dphy1 = "/csi2-dphy1"; + serial1 = "/serial@feb40000"; + pwm1 = "/pwm@fd8b0010"; + rkvenc0 = "/rkvenc-core@fdbd0000"; + spi5 = "/spi@fe2b0000"; + gpio3 = "/pinctrl/gpio@fec40000"; + hdptxhdmi1 = "/hdmiphy@fed70000"; + rkcif_mipi_lvds0 = "/rkcif-mipi-lvds"; + i2c4 = "/i2c@feac0000"; + ethernet1 = "/ethernet@fe1c0000"; + rkvdec0 = "/rkvdec-core@fdc38000"; + pwm15 = "/pwm@febf0030"; + hdmirx0 = "/hdmirx-controller@fdee0000"; + spi3 = "/spi@feb30000"; + usbdp1 = "/phy@fed90000"; + gpio1 = "/pinctrl/gpio@fec20000"; + serial8 = "/serial@febb0000"; + i2c2 = "/i2c@feaa0000"; + pwm8 = "/pwm@febe0000"; + pwm13 = "/pwm@febf0010"; + spi1 = "/spi@feb10000"; + dsi0 = "/dsi@fde20000"; + hdmi0 = "/hdmi@fde80000"; + serial6 = "/serial@feb90000"; + i2c0 = "/i2c@fd880000"; + pwm6 = "/pwm@febd0020"; + mmc2 = "/mmc@fe2d0000"; + pwm11 = "/pwm@febe0030"; + jpege2 = "/jpege-core@fdba8000"; + hdptx0 = "/phy@fed60000"; + rkcif_mipi_lvds5 = "/rkcif-mipi-lvds5"; + dp1 = "/dp@fde60000"; + csi2dphy4 = "/csi2-dphy4"; + serial4 = "/serial@feb70000"; + edp1 = "/edp@fded0000"; + csi2dcphy0 = "/csi2-dcphy0"; + pwm4 = "/pwm@febd0000"; + mmc0 = "/mmc@fe2e0000"; + jpege0 = "/jpege-core@fdba0000"; + rkcif_mipi_lvds3 = "/rkcif-mipi-lvds3"; + i2c7 = "/i2c@fec90000"; + csi2dphy2 = "/csi2-dphy2"; + serial2 = "/serial@feb50000"; + pwm2 = "/pwm@fd8b0020"; + rkvenc1 = "/rkvenc-core@fdbe0000"; + gpio4 = "/pinctrl/gpio@fec50000"; + hdcp0 = "/hdcp@fde40000"; + rkcif_mipi_lvds1 = "/rkcif-mipi-lvds1"; + i2c5 = "/i2c@fead0000"; + csi2dphy0 = "/csi2-dphy0"; + serial0 = "/serial@fd890000"; + rkvdec1 = "/rkvdec-core@fdc48000"; + pwm0 = "/pwm@fd8b0000"; + spi4 = "/spi@fecb0000"; + gpio2 = "/pinctrl/gpio@fec30000"; + hdptxhdmi0 = "/hdmiphy@fed60000"; + serial9 = "/serial@febc0000"; + }; - bt656 { + spdif-tx@fdde8000 { + power-domains = <0x60 0x1a>; + clock-names = "mclk\0hclk"; + assigned-clocks = <0x02 0x259>; + assigned-clock-parents = <0x02 0x05>; + interrupts = <0x00 0xc5 0x04>; + clocks = <0x02 0x25c 0x02 0x258>; + dma-names = "tx"; + #sound-dai-cells = <0x00>; + compatible = "rockchip,rk3588-spdif\0rockchip,rk3568-spdif"; + status = "disabled"; + reg = <0x00 0xfdde8000 0x00 0x1000>; + phandle = <0x47d>; + dmas = <0xf1 0x08>; + }; - bt656-pins { - rockchip,pins = <0x04 0x08 0x02 0x1a0 0x04 0x00 0x02 0x1a0 0x04 0x01 0x02 0x1a0 0x04 0x02 0x02 0x1a0 0x04 0x03 0x02 0x1a0 0x04 0x04 0x02 0x1a0 0x04 0x05 0x02 0x1a0 0x04 0x06 0x02 0x1a0 0x04 0x07 0x02 0x1a0>; - phandle = <0x450>; - }; - }; + i2s@fe490000 { + power-domains = <0x60 0x26>; + pinctrl-names = "default\0idle\0clk"; + pinctrl-2 = <0x12d 0x12e>; + pinctrl-0 = <0x12a 0x12b>; + clock-names = "i2s_clk\0i2s_hclk"; + assigned-clocks = <0x02 0x24>; + assigned-clock-parents = <0x02 0x05>; + interrupts = <0x00 0xb6 0x04>; + clocks = <0x02 0x27 0x02 0x22>; + dma-names = "tx\0rx"; + #sound-dai-cells = <0x00>; + compatible = "rockchip,rk3588-i2s\0rockchip,rk3066-i2s"; + pinctrl-1 = <0x12c>; + status = "disabled"; + reg = <0x00 0xfe490000 0x00 0x1000>; + phandle = <0x298>; + dmas = <0xf1 0x00 0xf1 0x01>; + rockchip,clk-trcm = <0x01>; + }; - gpio-func { + syscon@fd5d0000 { + #address-cells = <0x01>; + #size-cells = <0x01>; + compatible = "rockchip,rk3588-usb2phy-grf\0syscon\0simple-mfd"; + reg = <0x00 0xfd5d0000 0x00 0x4000>; + phandle = <0x18b>; - tsadc-gpio-func { - rockchip,pins = <0x00 0x01 0x00 0x198>; - phandle = <0x175>; + usb2-phy@0 { + clock-output-names = "usb480m_phy0"; + clock-names = "phyclk"; + resets = <0x02 0xc0047 0x02 0x488>; + interrupts = <0x00 0x189 0x04>; + clocks = <0x02 0x2b5>; + #clock-cells = <0x00>; + rockchip,usbctrl-grf = <0x74>; + compatible = "rockchip,rk3588-usb2phy"; + status = "okay"; + reg = <0x00 0x10>; + phandle = <0x18d>; + reset-names = "phy\0apb"; + + otg-port { + #phy-cells = <0x00>; + rockchip,typec-vbus-det; + status = "okay"; + phandle = <0x66>; }; }; + }; - pcfg-pull-none-drv-level-7 { - bias-disable; - drive-strength = <0x07>; - phandle = <0x451>; - }; + i2c@feac0000 { + pinctrl-names = "default"; + #address-cells = <0x01>; + pinctrl-0 = <0x14b>; + clock-names = "i2c\0pclk"; + resets = <0x02 0xb3 0x02 0xab>; + interrupts = <0x00 0x141 0x04>; + clocks = <0x02 0x90 0x02 0x88>; + #size-cells = <0x00>; + compatible = "rockchip,rk3588-i2c\0rockchip,rk3399-i2c"; + status = "okay"; + reg = <0x00 0xfeac0000 0x00 0x1000>; + phandle = <0x2a7>; + reset-names = "i2c\0apb"; - pcfg-pull-none-drv-level-8 { - bias-disable; - drive-strength = <0x08>; - phandle = <0x452>; + pc9202@3c { + pinctrl-names = "default"; + pinctrl-0 = <0x14c>; + index = <0x01>; + compatible = "firefly,pc9202"; + status = "okay"; + wd-en-gpio = <0x7b 0x14 0x00>; + driver-names = "wdt_base"; + reg = <0x3c>; }; + }; - pcfg-pull-none-drv-level-9 { - bias-disable; - drive-strength = <0x09>; - phandle = <0x453>; - }; + rkcif-mipi-lvds5-sditf { + compatible = "rockchip,rkcif-sditf"; + status = "disabled"; + rockchip,cif = <0x1a2>; + phandle = <0x476>; + }; - pcfg-pull-none-drv-level-10 { - bias-disable; - drive-strength = <0x0a>; - phandle = <0x454>; - }; + firmware { - pcfg-pull-none-drv-level-11 { - bias-disable; - drive-strength = <0x0b>; - phandle = <0x455>; + optee { + method = "smc"; + compatible = "linaro,optee-tz"; + phandle = <0x222>; }; - pcfg-pull-none-drv-level-12 { - bias-disable; - drive-strength = <0x0c>; - phandle = <0x456>; + sdei { + method = "smc"; + compatible = "arm,sdei-1.0"; + phandle = <0x221>; }; - pcfg-pull-none-drv-level-13 { - bias-disable; - drive-strength = <0x0d>; - phandle = <0x457>; - }; + scmi { + shmem = <0x46>; + #address-cells = <0x01>; + #size-cells = <0x00>; + compatible = "arm,scmi-smc"; + phandle = <0x220>; + arm,smc-id = <0x82000010>; - pcfg-pull-none-drv-level-14 { - bias-disable; - drive-strength = <0x0e>; - phandle = <0x458>; - }; + protocol@16 { + #reset-cells = <0x01>; + reg = <0x16>; + phandle = <0x11a>; + }; - pcfg-pull-none-drv-level-15 { - bias-disable; - drive-strength = <0x0f>; - phandle = <0x459>; - }; - - pcfg-pull-up-drv-level-7 { - bias-pull-up; - drive-strength = <0x07>; - phandle = <0x45a>; - }; - - pcfg-pull-up-drv-level-8 { - bias-pull-up; - drive-strength = <0x08>; - phandle = <0x45b>; + protocol@14 { + assigned-clocks = <0x0e 0x00 0x0e 0x02 0x0e 0x03>; + assigned-clock-rates = <0x30a32c00 0x30a32c00 0x30a32c00>; + #clock-cells = <0x01>; + reg = <0x14>; + phandle = <0x0e>; + }; }; + }; - pcfg-pull-up-drv-level-9 { - bias-pull-up; - drive-strength = <0x09>; - phandle = <0x45c>; - }; + rkvenc-core@fdbd0000 { + power-domains = <0x60 0x10>; + iommus = <0xc2>; + rockchip,ccu = <0xc3>; + clock-names = "aclk_vcodec\0hclk_vcodec\0clk_core"; + assigned-clocks = <0x02 0x1c5 0x02 0x1c6>; + rockchip,task-capacity = <0x08>; + rockchip,normal-rates = <0x1dcd6500 0x00 0x2faf0800>; + assigned-clock-rates = <0x1dcd6500 0x2faf0800>; + resets = <0x02 0x2f5 0x02 0x2f4 0x02 0x2f6>; + interrupts = <0x00 0x65 0x04>; + clocks = <0x02 0x1c5 0x02 0x1c4 0x02 0x1c6>; + rockchip,srv = <0xb8>; + rockchip,taskqueue-node = <0x07>; + compatible = "rockchip,rkv-encoder-v2-core"; + status = "okay"; + interrupt-names = "irq_rkvenc0"; + rockchip,skip-pmu-idle-request; + reg = <0x00 0xfdbd0000 0x00 0x6000>; + phandle = <0x272>; + reset-names = "video_a\0video_h\0video_core"; + operating-points-v2 = <0xc4>; + }; - pcfg-pull-up-drv-level-10 { - bias-pull-up; - drive-strength = <0x0a>; - phandle = <0x45d>; - }; + iommu@fdcc7f00 { + power-domains = <0x60 0x1c>; + clock-names = "aclk\0iface"; + interrupts = <0x00 0x88 0x04>; + clocks = <0x02 0x120 0x02 0x121>; + #iommu-cells = <0x00>; + compatible = "rockchip,iommu-v2"; + rockchip,disable-mmu-reset; + status = "disabled"; + interrupt-names = "isp1_mmu"; + reg = <0x00 0xfdcc7f00 0x00 0x100>; + phandle = <0xd1>; + }; - pcfg-pull-up-drv-level-11 { - bias-pull-up; - drive-strength = <0x0b>; - phandle = <0x45e>; - }; + rkcif-mipi-lvds-sditf { + compatible = "rockchip,rkcif-sditf"; + status = "disabled"; + rockchip,cif = <0x52>; + phandle = <0x22b>; + }; - pcfg-pull-up-drv-level-12 { - bias-pull-up; - drive-strength = <0x0c>; - phandle = <0x45f>; - }; + syscon@fd5c8000 { + compatible = "rockchip,rk3588-usbdpphy-grf\0syscon"; + reg = <0x00 0xfd5c8000 0x00 0x4000>; + phandle = <0x18c>; + }; - pcfg-pull-up-drv-level-13 { - bias-pull-up; - drive-strength = <0x0d>; - phandle = <0x460>; - }; + gpu@fb000000 { + power-domains = <0x60 0x0c>; + downdifferential = <0x0a>; + mali-supply = <0x62>; + clock-names = "clk_mali\0clk_gpu_coregroup\0clk_gpu_stacks\0clk_gpu"; + assigned-clocks = <0x0e 0x05>; + assigned-clock-rates = <0xbebc200>; + interrupts = <0x00 0x5e 0x04 0x00 0x5d 0x04 0x00 0x5c 0x04>; + clocks = <0x0e 0x05 0x02 0x115 0x02 0x116 0x02 0x114>; + upthreshold = <0x1e>; + compatible = "arm,mali-bifrost"; + dynamic-power-coefficient = <0xba6>; + status = "okay"; + interrupt-names = "GPU\0MMU\0JOB"; + mem-supply = <0x62>; + reg = <0x00 0xfb000000 0x00 0x200000>; + phandle = <0x5f>; + operating-points-v2 = <0x61>; + #cooling-cells = <0x02>; + }; - pcfg-pull-up-drv-level-14 { - bias-pull-up; - drive-strength = <0x0e>; - phandle = <0x461>; - }; + csi2-dphy4 { + rockchip,hw = <0x2d 0x2e>; + phy-names = "dcphy0\0dcphy1"; + compatible = "rockchip,rk3588-csi2-dphy"; + status = "disabled"; + phys = <0x2f 0x30>; + phandle = <0x213>; + }; - pcfg-pull-up-drv-level-15 { - bias-pull-up; - drive-strength = <0x0f>; - phandle = <0x462>; - }; + mipi4-csi2-hw@fdd50000 { + clock-names = "pclk_csi2host"; + reg-names = "csihost_regs"; + resets = <0x02 0x328>; + interrupts = <0x00 0x97 0x04 0x00 0x98 0x04>; + clocks = <0x02 0x1d3>; + compatible = "rockchip,rk3588-mipi-csi2-hw"; + status = "okay"; + interrupt-names = "csi-intr1\0csi-intr2"; + reg = <0x00 0xfdd50000 0x00 0x10000>; + phandle = <0x4b>; + reset-names = "srst_csihost_p"; + }; - pcfg-pull-down-drv-level-7 { - bias-pull-down; - drive-strength = <0x07>; - phandle = <0x463>; - }; + qos@fdf82000 { + compatible = "syscon"; + reg = <0x00 0xfdf82000 0x00 0x20>; + phandle = <0x9d>; + }; - pcfg-pull-down-drv-level-8 { - bias-pull-down; - drive-strength = <0x08>; - phandle = <0x464>; - }; + rkcif-mipi-lvds2-sditf-vir2 { + compatible = "rockchip,rkcif-sditf"; + status = "disabled"; + rockchip,cif = <0x55>; + phandle = <0x235>; + }; - pcfg-pull-down-drv-level-9 { - bias-pull-down; - drive-strength = <0x09>; - phandle = <0x465>; - }; + rkisp1-vir0 { + rockchip,hw = <0x5a>; + compatible = "rockchip,rkisp-vir"; + status = "disabled"; + phandle = <0x23f>; + }; - pcfg-pull-down-drv-level-10 { - bias-pull-down; - drive-strength = <0x0a>; - phandle = <0x466>; - }; + qos@fdf41100 { + compatible = "syscon"; + reg = <0x00 0xfdf41100 0x00 0x20>; + phandle = <0xa7>; + }; - pcfg-pull-down-drv-level-11 { - bias-pull-down; - drive-strength = <0x0b>; - phandle = <0x467>; - }; + test-power { + status = "okay"; + }; - pcfg-pull-down-drv-level-12 { - bias-pull-down; - drive-strength = <0x0c>; - phandle = <0x468>; - }; + usb-5v { + pinctrl-names = "default"; + regulator-boot-on; + gpio = <0xfe 0x03 0x00>; + pinctrl-0 = <0x1ef>; + regulator-always-on; + enable-active-high; + regulator-name = "usb_5v"; + compatible = "regulator-fixed"; + status = "okay"; + phandle = <0x4b1>; + }; - pcfg-pull-down-drv-level-13 { - bias-pull-down; - drive-strength = <0x0d>; - phandle = <0x469>; - }; + phy@feda0000 { + clock-names = "pclk\0ref"; + resets = <0x02 0xc0043 0x02 0x3e 0x02 0x3f 0x02 0xc0044>; + clocks = <0x02 0x108 0x02 0x2b6>; + #phy-cells = <0x00>; + compatible = "rockchip,rk3588-mipi-dcphy"; + status = "okay"; + rockchip,grf = <0x190>; + reg = <0x00 0xfeda0000 0x00 0x10000>; + phandle = <0x2f>; + reset-names = "m_phy\0apb\0grf\0s_phy"; + }; - pcfg-pull-down-drv-level-14 { - bias-pull-down; - drive-strength = <0x0e>; - phandle = <0x46a>; - }; + mod-sleep-regulator { + pinctrl-names = "default"; + regulator-boot-on; + gpio = <0x7b 0x15 0x00>; + pinctrl-0 = <0x1ee>; + regulator-always-on; + enable-active-high; + regulator-name = "mod_sleep"; + compatible = "regulator-fixed"; + status = "okay"; + phandle = <0x4ae>; - pcfg-pull-down-drv-level-15 { - bias-pull-down; - drive-strength = <0x0f>; - phandle = <0x46b>; + regulator-state-mem { + regulator-on-in-suspend; }; + }; - eth0 { + qos@fdf66c00 { + compatible = "syscon"; + reg = <0x00 0xfdf66c00 0x00 0x20>; + phandle = <0x99>; + }; - eth0-pins { - rockchip,pins = <0x02 0x13 0x01 0x198>; - phandle = <0x46c>; - }; - }; - - gmac0 { - - gmac0-miim { - rockchip,pins = <0x04 0x14 0x01 0x198 0x04 0x15 0x01 0x198>; - phandle = <0x1c1>; - }; - - gmac0-clkinout { - rockchip,pins = <0x04 0x13 0x01 0x198>; - phandle = <0x46d>; - }; - - gmac0-rx-bus2 { - rockchip,pins = <0x02 0x11 0x01 0x198 0x02 0x12 0x01 0x198 0x04 0x12 0x01 0x198>; - phandle = <0x1c3>; - }; - - gmac0-tx-bus2 { - rockchip,pins = <0x02 0x0e 0x01 0x19a 0x02 0x0f 0x01 0x19a 0x02 0x10 0x01 0x198>; - phandle = <0x1c2>; - }; - - gmac0-rgmii-clk { - rockchip,pins = <0x02 0x08 0x01 0x198 0x02 0x0b 0x01 0x198>; - phandle = <0x1c4>; - }; + crypto@fe370000 { + clock-names = "aclk\0hclk\0sclk\0pka"; + resets = <0x11a 0x0f>; + interrupts = <0x00 0xd1 0x04>; + clocks = <0x0e 0x0b 0x0e 0x0c 0x0e 0x14 0x0e 0x15>; + compatible = "rockchip,rk3588-crypto"; + status = "disabled"; + reg = <0x00 0xfe370000 0x00 0x2000>; + phandle = <0x296>; + reset-names = "crypto-rst"; + }; - gmac0-rgmii-bus { - rockchip,pins = <0x02 0x06 0x01 0x198 0x02 0x07 0x01 0x198 0x02 0x09 0x01 0x19a 0x02 0x0a 0x01 0x19a>; - phandle = <0x1c5>; - }; + i2s@fddf4000 { + power-domains = <0x60 0x1a>; + rockchip,always-on; + clock-names = "mclk_tx\0mclk_rx\0hclk"; + assigned-clocks = <0x02 0x249>; + assigned-clock-parents = <0x02 0x07>; + resets = <0x02 0x3ef>; + interrupts = <0x00 0xba 0x04>; + clocks = <0x02 0x24c 0x02 0x24c 0x02 0x252>; + dma-names = "tx"; + #sound-dai-cells = <0x00>; + compatible = "rockchip,rk3588-i2s-tdm"; + rockchip,playback-only; + status = "okay"; + reg = <0x00 0xfddf4000 0x00 0x1000>; + phandle = <0x1e0>; + dmas = <0xf2 0x04>; + reset-names = "tx-m"; + rockchip,hdmi-path; + }; - gmac0-ppsclk { - rockchip,pins = <0x02 0x14 0x01 0x198>; - phandle = <0x46e>; - }; + mipi0-csi2-hw@fdd10000 { + clock-names = "pclk_csi2host"; + reg-names = "csihost_regs"; + resets = <0x02 0x324>; + interrupts = <0x00 0x8f 0x04 0x00 0x90 0x04>; + clocks = <0x02 0x1cf>; + compatible = "rockchip,rk3588-mipi-csi2-hw"; + status = "okay"; + interrupt-names = "csi-intr1\0csi-intr2"; + reg = <0x00 0xfdd10000 0x00 0x10000>; + phandle = <0x47>; + reset-names = "srst_csihost_p"; + }; - gmac0-ppstring { - rockchip,pins = <0x02 0x0d 0x01 0x198>; - phandle = <0x46f>; - }; + mipi4-csi2 { + rockchip,hw = <0x47 0x48 0x49 0x4a 0x4b 0x4c>; + compatible = "rockchip,rk3588-mipi-csi2"; + status = "disabled"; + phandle = <0x228>; + }; - gmac0-ptp-refclk { - rockchip,pins = <0x02 0x0c 0x01 0x198>; - phandle = <0x470>; - }; + jpege-ccu { + compatible = "rockchip,vpu-jpege-ccu"; + status = "okay"; + phandle = <0xbd>; + }; - gmac0-txer { - rockchip,pins = <0x04 0x16 0x01 0x198>; - phandle = <0x471>; - }; - }; + dsi@fde30000 { + power-domains = <0x60 0x18>; + #address-cells = <0x01>; + phy-names = "dcphy"; + clock-names = "pclk\0sys_clk"; + resets = <0x02 0x355>; + interrupts = <0x00 0xa8 0x04>; + clocks = <0x02 0x279 0x02 0x27b>; + #size-cells = <0x00>; + compatible = "rockchip,rk3588-mipi-dsi2"; + status = "disabled"; + rockchip,grf = <0xd7>; + phys = <0x30>; + reg = <0x00 0xfde30000 0x00 0x10000>; + phandle = <0x283>; + reset-names = "apb"; - hym8563 { + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; - hym8563-int { - rockchip,pins = <0x00 0x08 0x00 0x198>; - phandle = <0x7a>; - }; - }; + port@0 { + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x00>; + phandle = <0x284>; - leds { + endpoint@1 { + remote-endpoint = <0x3a>; + status = "disabled"; + reg = <0x01>; + phandle = <0xef>; + }; - leds-gpio { - rockchip,pins = <0x00 0x15 0x00 0x198>; - phandle = <0x1ee>; + endpoint@0 { + remote-endpoint = <0xf4>; + status = "disabled"; + reg = <0x00>; + phandle = <0xea>; + }; }; }; + }; - headphone { + iommu@fcb00000 { + interrupts = <0x00 0x17d 0x04 0x00 0x17f 0x04 0x00 0x182 0x04 0x00 0x17b 0x04>; + #iommu-cells = <0x01>; + compatible = "arm,smmu-v3"; + status = "disabled"; + interrupt-names = "eventq\0gerror\0priq\0cmdq-sync"; + reg = <0x00 0xfcb00000 0x00 0x200000>; + phandle = <0x257>; + }; - hp-det { - rockchip,pins = <0x02 0x13 0x00 0x198>; - phandle = <0x1dc>; - }; - }; + rkcif-mipi-lvds3 { + iommus = <0x50>; + rockchip,hw = <0x4f>; + compatible = "rockchip,rkcif-mipi-lvds"; + status = "disabled"; + phandle = <0x57>; + }; - usb-typec { + vcc-hub-regulator { + regulator-boot-on; + gpio = <0x182 0x01 0x00>; + regulator-always-on; + enable-active-high; + regulator-name = "vcc_hub"; + compatible = "regulator-fixed"; + status = "okay"; + phandle = <0x4af>; + }; - usb-5v-ctrl { - rockchip,pins = <0x01 0x03 0x00 0x198>; - phandle = <0x1ef>; - }; + syscon@fd5ac000 { + compatible = "rockchip,rk3588-usb-grf\0syscon"; + reg = <0x00 0xfd5ac000 0x00 0x4000>; + phandle = <0x74>; + }; - usbc0-int { - rockchip,pins = <0x00 0x1b 0x00 0x198>; - phandle = <0x17b>; - }; - }; + qos@fdf40200 { + compatible = "syscon"; + reg = <0x00 0xfdf40200 0x00 0x20>; + phandle = <0xa9>; + }; - hdmirx { + rkisp@fdcb0000 { + power-domains = <0x60 0x1b>; + iommus = <0xd0>; + clock-names = "aclk_isp\0hclk_isp\0clk_isp_core\0clk_isp_core_marvin\0clk_isp_core_vicap"; + interrupts = <0x00 0x83 0x04 0x00 0x85 0x04 0x00 0x86 0x04>; + clocks = <0x02 0x1de 0x02 0x1df 0x02 0x1db 0x02 0x1dc 0x02 0x1dd>; + compatible = "rockchip,rk3588-rkisp"; + status = "okay"; + interrupt-names = "isp_irq\0mi_irq\0mipi_irq"; + reg = <0x00 0xfdcb0000 0x00 0x7f00>; + phandle = <0x58>; + }; - hdmirx-det { - rockchip,pins = <0x01 0x1d 0x00 0x198>; - phandle = <0x1b4>; - }; - }; + serial@feba0000 { + reg-io-width = <0x04>; + pinctrl-names = "default"; + pinctrl-0 = <0x166>; + clock-names = "baudclk\0apb_pclk"; + interrupts = <0x00 0x152 0x04>; + clocks = <0x02 0xcf 0x02 0xb1>; + compatible = "rockchip,rk3588-uart\0snps,dw-apb-uart"; + status = "disabled"; + reg = <0x00 0xfeba0000 0x00 0x100>; + phandle = <0x2cf>; + dmas = <0xf2 0x07 0xf2 0x08>; + reg-shift = <0x02>; + }; - wireless-bluetooth { + rkcif-mipi-lvds1-sditf-vir3 { + compatible = "rockchip,rkcif-sditf"; + status = "disabled"; + rockchip,cif = <0x53>; + phandle = <0x232>; + }; - uart6-gpios { - rockchip,pins = <0x01 0x02 0x00 0x198>; - phandle = <0x1e9>; - }; + chosen { + linux,initrd-end = <0x00 0xaac72ae>; + bootargs = "storagemedia=emmc androidboot.storagemedia=emmc androidboot.mode=normal storagenode=/mmc@fe2e0000 androidboot.verifiedbootstate=orange ro rootwait earlycon=uart8250,mmio32,0xfeb50000 console=ttyFIQ0 irqchip.gicv3_pseudo_nmi=0 root=PARTLABEL=rootfs rootfstype=ext4 overlayroot=device:dev=PARTLABEL=userdata,fstype=ext4,mkfs=1 coherent_pool=1m systemd.gpt_auto=0 cgroup_enable=memory swapaccount=1 net.ifnames=0 rcupdate.rcu_expedited=1 rcu_nocbs=all comm-05/28/2025 androidboot.fwver=ddr-v1.15-d5483af87d,spl-v1.13,bl31-v1.44,bl32-v1.15,uboot--boot"; + linux,initrd-start = <0x00 0xa200000>; + phandle = <0x48d>; + }; - bt-reset-gpio { - rockchip,pins = <0x00 0x16 0x00 0x198>; - phandle = <0x1e6>; - }; + hdmi@fde80000 { + power-domains = <0x60 0x1a>; + reg-io-width = <0x04>; + pinctrl-names = "default"; + phy-names = "hdmi"; + pinctrl-0 = <0xf9 0xfa 0xfb 0xfc>; + clock-names = "pclk\0hpd\0earc\0hdmitx_ref\0aud\0dclk_vp0\0dclk_vp1\0dclk_vp2\0dclk_vp3\0hclk_vo1\0link_clk"; + resets = <0x02 0x3d0 0x02 0x49c>; + interrupts = <0x00 0xa9 0x04 0x00 0xaa 0x04 0x00 0xab 0x04 0x00 0xac 0x04 0x00 0x168 0x04>; + clocks = <0x02 0x221 0x02 0x265 0x02 0x222 0x02 0x223 0x02 0x246 0x02 0x274 0x02 0x275 0x02 0x276 0x02 0x277 0x05 0x35>; + #sound-dai-cells = <0x00>; + compatible = "rockchip,rk3588-dw-hdmi"; + status = "okay"; + rockchip,grf = <0xc8>; + phys = <0xfd>; + enable-gpios = <0xfe 0x08 0x00>; + reg = <0x00 0xfde80000 0x00 0x10000 0x00 0xfde90000 0x00 0x10000>; + phandle = <0x1d4>; + reset-names = "ref\0hdp"; + rockchip,vo1_grf = <0xd8>; - bt-wake-gpio { - rockchip,pins = <0x00 0x15 0x00 0x198>; - phandle = <0x1e7>; - }; + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; - bt-irq-gpio { - rockchip,pins = <0x00 0x00 0x00 0x198>; - phandle = <0x1e8>; - }; - }; + port@0 { + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x00>; + phandle = <0x288>; - wireless-wlan { + endpoint@1 { + remote-endpoint = <0xff>; + status = "disabled"; + reg = <0x01>; + phandle = <0xe2>; + }; - wifi-host-wake-irq { - rockchip,pins = <0x00 0x0a 0x00 0x198>; - phandle = <0x1ea>; + endpoint@2 { + remote-endpoint = <0x100>; + status = "disabled"; + reg = <0x02>; + phandle = <0xe8>; + }; + + endpoint@0 { + remote-endpoint = <0x3c>; + status = "okay"; + reg = <0x00>; + phandle = <0xdc>; + }; }; }; + }; - wdt-pc9202 { + cluster2-opp-table { + rockchip,pvtm-offset = <0x18>; + rockchip,pvtm-sample-time = <0x44c>; + rockchip,pvtm-hw = <0x06>; + nvmem-cells = <0x27 0x28 0x21>; + rockchip,low-temp = <0x2710>; + rockchip,pvtm-voltage-sel-hw = <0x00 0x603 0x00 0x604 0x61c 0x01 0x61d 0x635 0x02 0x636 0x64e 0x03 0x64f 0x66c 0x04 0x66d 0x68a 0x05 0x68b 0x6a8 0x06 0x6a9 0x270f 0x07>; + rockchip,pvtm-thermal-zone = "soc-thermal"; + rockchip,pvtm-low-len-sel = <0x03>; + rockchip,high-temp-max-freq = <0x21b100>; + opp-shared; + rockchip,reboot-freq = <0x1b7740>; + rockchip,pvtm-freq = <0x188940>; + rockchip,pvtm-ref-temp = <0x19>; + low-volt-mem-read-margin = <0x04>; + volt-mem-read-margin = <0xd0bd8 0x01 0xbac48 0x02 0xa4cb8 0x03 0x78d98 0x04>; + compatible = "operating-points-v2"; + rockchip,low-temp-min-volt = <0xb71b0>; + rockchip,grf = <0x29>; + nvmem-cell-names = "leakage\0opp-info\0specification_serial_number"; + rockchip,pvtm-voltage-sel = <0x00 0x63b 0x00 0x63c 0x64f 0x01 0x650 0x668 0x02 0x669 0x68b 0x03 0x68c 0x6ae 0x04 0x6af 0x6cf 0x05 0x6d0 0x6f0 0x06 0x6f1 0x270f 0x07>; + phandle = <0x1a>; + rockchip,idle-threshold-freq = <0x21b100>; + rockchip,pvtm-temp-prop = <0x10e 0x10e>; + rockchip,temp-hysteresis = <0x1388>; + rockchip,high-temp = <0x14c08>; + rockchip,pvtm-pvtpll; + rockchip,supported-hw; + intermediate-threshold-freq = <0xf6180>; + rockchip,pvtm-volt = <0xb71b0>; - wdt-en-base { - rockchip,pins = <0x00 0x14 0x00 0x198>; - phandle = <0x14c>; - }; + opp-j-m-2016000000 { + opp-microvolt = <0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0>; + opp-microvolt-L6 = <0xd8acc 0xd8acc 0xe7ef0 0xd8acc 0xd8acc 0xe7ef0>; + opp-microvolt-L4 = <0xdec74 0xdec74 0xe7ef0 0xdec74 0xdec74 0xe7ef0>; + opp-microvolt-L2 = <0xe4e1c 0xe4e1c 0xe7ef0 0xe4e1c 0xe4e1c 0xe7ef0>; + opp-hz = <0x00 0x7829b800>; + opp-supported-hw = <0x06 0xffff>; + opp-microvolt-L7 = <0xd59f8 0xd59f8 0xe7ef0 0xd59f8 0xd59f8 0xe7ef0>; + opp-microvolt-L5 = <0xdbba0 0xdbba0 0xe7ef0 0xdbba0 0xdbba0 0xe7ef0>; + opp-microvolt-L3 = <0xe1d48 0xe1d48 0xe7ef0 0xe1d48 0xe1d48 0xe7ef0>; + clock-latency-ns = <0x9c40>; + opp-microvolt-L1 = <0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0>; }; - cam { - - cam0-or-cam1-switch-pin { - rockchip,pins = <0x03 0x11 0x00 0x198>; - phandle = <0x1f0>; - }; + opp-1200000000 { + opp-microvolt = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; + opp-hz = <0x00 0x47868c00>; + opp-supported-hw = <0xf9 0xffff>; + clock-latency-ns = <0x9c40>; }; - }; - rkcif-mipi-lvds4 { - compatible = "rockchip,rkcif-mipi-lvds"; - rockchip,hw = <0x4f>; - iommus = <0x50>; - status = "disabled"; - phandle = <0x1a1>; - }; + opp-j-m-1416000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + opp-hz = <0x00 0x54667200>; + opp-microvolt-L0 = <0xba284 0xba284 0xe7ef0 0xba284 0xba284 0xe7ef0>; + opp-supported-hw = <0x06 0xffff>; + opp-suspend; + clock-latency-ns = <0x9c40>; + }; - rkcif-mipi-lvds4-sditf { - compatible = "rockchip,rkcif-sditf"; - rockchip,cif = <0x1a1>; - status = "disabled"; - phandle = <0x472>; - }; + opp-1008000000 { + opp-microvolt = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; + opp-hz = <0x00 0x3c14dc00>; + opp-supported-hw = <0xf9 0xffff>; + clock-latency-ns = <0x9c40>; + }; - rkcif-mipi-lvds4-sditf-vir1 { - compatible = "rockchip,rkcif-sditf"; - rockchip,cif = <0x1a1>; - status = "disabled"; - phandle = <0x473>; - }; + opp-2256000000 { + opp-microvolt = <0xf4240 0xf4240 0xf4240 0xf4240 0xf4240 0xf4240>; + opp-hz = <0x00 0x8677d400>; + opp-supported-hw = <0xf9 0x13>; + clock-latency-ns = <0x9c40>; + }; - rkcif-mipi-lvds4-sditf-vir2 { - compatible = "rockchip,rkcif-sditf"; - rockchip,cif = <0x1a1>; - status = "disabled"; - phandle = <0x474>; - }; + opp-j-m-1200000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + opp-hz = <0x00 0x47868c00>; + opp-supported-hw = <0x06 0xffff>; + clock-latency-ns = <0x9c40>; + }; - rkcif-mipi-lvds4-sditf-vir3 { - compatible = "rockchip,rkcif-sditf"; - rockchip,cif = <0x1a1>; - status = "disabled"; - phandle = <0x475>; - }; + opp-j-m-1008000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + opp-hz = <0x00 0x3c14dc00>; + opp-supported-hw = <0x06 0xffff>; + clock-latency-ns = <0x9c40>; + }; - rkcif-mipi-lvds5 { - compatible = "rockchip,rkcif-mipi-lvds"; - rockchip,hw = <0x4f>; - iommus = <0x50>; - status = "disabled"; - phandle = <0x1a2>; - }; + opp-j-m-816000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + opp-hz = <0x00 0x30a32c00>; + opp-supported-hw = <0x06 0xffff>; + clock-latency-ns = <0x9c40>; + }; - rkcif-mipi-lvds5-sditf { - compatible = "rockchip,rkcif-sditf"; - rockchip,cif = <0x1a2>; - status = "disabled"; - phandle = <0x476>; - }; + opp-2400000000 { + opp-microvolt = <0xf4240 0xf4240 0xf4240 0xf4240 0xf4240 0xf4240>; + opp-hz = <0x00 0x8f0d1800>; + opp-supported-hw = <0xf9 0x80>; + clock-latency-ns = <0x9c40>; + }; - rkcif-mipi-lvds5-sditf-vir1 { - compatible = "rockchip,rkcif-sditf"; - rockchip,cif = <0x1a2>; - status = "disabled"; - phandle = <0x477>; - }; + opp-1800000000 { + opp-microvolt = <0xcf850 0xcf850 0xf4240 0xcf850 0xcf850 0xf4240>; + opp-microvolt-L6 = <0xbd358 0xbd358 0xf4240 0xbd358 0xbd358 0xf4240>; + opp-microvolt-L4 = <0xc3500 0xc3500 0xf4240 0xc3500 0xc3500 0xf4240>; + opp-microvolt-L2 = <0xc96a8 0xc96a8 0xf4240 0xc96a8 0xc96a8 0xf4240>; + opp-hz = <0x00 0x6b49d200>; + opp-supported-hw = <0xf9 0xffff>; + opp-microvolt-L7 = <0xba284 0xba284 0xf4240 0xba284 0xba284 0xf4240>; + opp-microvolt-L5 = <0xc042c 0xc042c 0xf4240 0xc042c 0xc042c 0xf4240>; + opp-microvolt-L3 = <0xc65d4 0xc65d4 0xf4240 0xc65d4 0xc65d4 0xf4240>; + clock-latency-ns = <0x9c40>; + opp-microvolt-L1 = <0xcc77c 0xcc77c 0xf4240 0xcc77c 0xcc77c 0xf4240>; + }; - rkcif-mipi-lvds5-sditf-vir2 { - compatible = "rockchip,rkcif-sditf"; - rockchip,cif = <0x1a2>; - status = "disabled"; - phandle = <0x478>; - }; + opp-j-m-600000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + opp-hz = <0x00 0x23c34600>; + opp-supported-hw = <0x06 0xffff>; + clock-latency-ns = <0x9c40>; + }; - rkcif-mipi-lvds5-sditf-vir3 { - compatible = "rockchip,rkcif-sditf"; - rockchip,cif = <0x1a2>; - status = "disabled"; - phandle = <0x479>; - }; + opp-2208000000 { + opp-microvolt = <0xf116c 0xf116c 0xf4240 0xf116c 0xf116c 0xf4240>; + opp-microvolt-L6 = <0xe1d48 0xe1d48 0xf4240 0xe1d48 0xe1d48 0xf4240>; + opp-microvolt-L4 = <0xeafc4 0xeafc4 0xf4240 0xeafc4 0xeafc4 0xf4240>; + opp-hz = <0x00 0x839b6800>; + opp-supported-hw = <0xf9 0xffff>; + opp-microvolt-L7 = <0xdec74 0xdec74 0xf4240 0xdec74 0xdec74 0xf4240>; + opp-microvolt-L5 = <0xe7ef0 0xe7ef0 0xf4240 0xe7ef0 0xe7ef0 0xf4240>; + opp-microvolt-L3 = <0xee098 0xee098 0xf4240 0xee098 0xee098 0xf4240>; + clock-latency-ns = <0x9c40>; + }; - usbdrd3_1 { - compatible = "rockchip,rk3588-dwc3\0rockchip,rk3399-dwc3"; - clocks = <0x02 0x1a6 0x02 0x1a5 0x02 0x1a4>; - clock-names = "ref\0suspend\0bus"; - #address-cells = <0x02>; - #size-cells = <0x02>; - ranges; - status = "okay"; - phandle = <0x47a>; + opp-1608000000 { + opp-microvolt = <0xba284 0xba284 0xf4240 0xba284 0xba284 0xf4240>; + opp-microvolt-L6 = <0xaae60 0xaae60 0xf4240 0xaae60 0xaae60 0xf4240>; + opp-microvolt-L4 = <0xb1008 0xb1008 0xf4240 0xb1008 0xb1008 0xf4240>; + opp-microvolt-L2 = <0xb71b0 0xb71b0 0xf4240 0xb71b0 0xb71b0 0xf4240>; + opp-hz = <0x00 0x5fd82200>; + opp-supported-hw = <0xf9 0xffff>; + opp-microvolt-L7 = <0xaae60 0xaae60 0xf4240 0xaae60 0xaae60 0xf4240>; + opp-microvolt-L5 = <0xadf34 0xadf34 0xf4240 0xadf34 0xadf34 0xf4240>; + opp-microvolt-L3 = <0xb40dc 0xb40dc 0xf4240 0xb40dc 0xb40dc 0xf4240>; + clock-latency-ns = <0x9c40>; + }; - usb@fc400000 { - compatible = "snps,dwc3"; - reg = <0x00 0xfc400000 0x00 0x400000>; - interrupts = <0x00 0xdd 0x04>; - power-domains = <0x60 0x1f>; - resets = <0x02 0x2a7>; - reset-names = "usb3-otg"; - dr_mode = "host"; - phys = <0x1a3 0x1a4>; - phy-names = "usb2-phy\0usb3-phy"; - phy_type = "utmi_wide"; - snps,dis_enblslpm_quirk; - snps,dis-u1-entry-quirk; - snps,dis-u2-entry-quirk; - snps,dis-u2-freeclk-exists-quirk; - snps,dis-del-phy-power-chg-quirk; - snps,dis-tx-ipgap-linecheck-quirk; - snps,parkmode-disable-hs-quirk; - snps,parkmode-disable-ss-quirk; - status = "okay"; - phandle = <0x47b>; + opp-j-m-408000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + opp-hz = <0x00 0x18519600>; + opp-supported-hw = <0x06 0xffff>; + clock-latency-ns = <0x9c40>; }; - }; - syscon@fd5b8000 { - compatible = "rockchip,pcie30-phy-grf\0syscon"; - reg = <0x00 0xfd5b8000 0x00 0x10000>; - phandle = <0x1cc>; + opp-j-m-1800000000 { + opp-microvolt = <0xd59f8 0xd59f8 0xe7ef0 0xd59f8 0xd59f8 0xe7ef0>; + opp-microvolt-L6 = <0xc3500 0xc3500 0xe7ef0 0xc3500 0xc3500 0xe7ef0>; + opp-microvolt-L4 = <0xc96a8 0xc96a8 0xe7ef0 0xc96a8 0xc96a8 0xe7ef0>; + opp-microvolt-L2 = <0xcf850 0xcf850 0xe7ef0 0xcf850 0xcf850 0xe7ef0>; + opp-hz = <0x00 0x6b49d200>; + opp-supported-hw = <0x06 0xffff>; + opp-microvolt-L7 = <0xc042c 0xc042c 0xe7ef0 0xc042c 0xc042c 0xe7ef0>; + opp-microvolt-L5 = <0xc65d4 0xc65d4 0xe7ef0 0xc65d4 0xc65d4 0xe7ef0>; + opp-microvolt-L3 = <0xcc77c 0xcc77c 0xe7ef0 0xcc77c 0xcc77c 0xe7ef0>; + clock-latency-ns = <0x9c40>; + opp-microvolt-L1 = <0xd2924 0xd2924 0xe7ef0 0xd2924 0xd2924 0xe7ef0>; + }; + + opp-2352000000 { + opp-microvolt = <0xf4240 0xf4240 0xf4240 0xf4240 0xf4240 0xf4240>; + opp-hz = <0x00 0x8c30ac00>; + opp-supported-hw = <0xf9 0x48>; + clock-latency-ns = <0x9c40>; + }; + + opp-816000000 { + opp-microvolt = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; + opp-hz = <0x00 0x30a32c00>; + opp-supported-hw = <0xf9 0xffff>; + clock-latency-ns = <0x9c40>; + }; + + opp-j-m-1608000000 { + opp-microvolt = <0xc042c 0xc042c 0xe7ef0 0xc042c 0xc042c 0xe7ef0>; + opp-microvolt-L6 = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + opp-microvolt-L4 = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + opp-microvolt-L2 = <0xbd358 0xbd358 0xe7ef0 0xbd358 0xbd358 0xe7ef0>; + opp-hz = <0x00 0x5fd82200>; + opp-supported-hw = <0x06 0xffff>; + opp-microvolt-L7 = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + opp-microvolt-L5 = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + opp-microvolt-L3 = <0xba284 0xba284 0xe7ef0 0xba284 0xba284 0xe7ef0>; + clock-latency-ns = <0x9c40>; + }; + + opp-600000000 { + opp-microvolt = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; + opp-hz = <0x00 0x23c34600>; + opp-supported-hw = <0xf9 0xffff>; + clock-latency-ns = <0x9c40>; + }; + + opp-2016000000 { + opp-microvolt = <0xe1d48 0xe1d48 0xf4240 0xe1d48 0xe1d48 0xf4240>; + opp-microvolt-L6 = <0xcf850 0xcf850 0xf4240 0xcf850 0xcf850 0xf4240>; + opp-microvolt-L4 = <0xd59f8 0xd59f8 0xf4240 0xd59f8 0xd59f8 0xf4240>; + opp-microvolt-L2 = <0xdbba0 0xdbba0 0xf4240 0xdbba0 0xdbba0 0xf4240>; + opp-hz = <0x00 0x7829b800>; + opp-supported-hw = <0xf9 0xffff>; + opp-microvolt-L7 = <0xcc77c 0xcc77c 0xf4240 0xcc77c 0xcc77c 0xf4240>; + opp-microvolt-L5 = <0xd2924 0xd2924 0xf4240 0xd2924 0xd2924 0xf4240>; + opp-microvolt-L3 = <0xd8acc 0xd8acc 0xf4240 0xd8acc 0xd8acc 0xf4240>; + clock-latency-ns = <0x9c40>; + opp-microvolt-L1 = <0xdec74 0xdec74 0xf4240 0xdec74 0xdec74 0xf4240>; + }; + + opp-1416000000 { + opp-microvolt = <0xb1008 0xb1008 0xf4240 0xb1008 0xb1008 0xf4240>; + opp-microvolt-L6 = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; + opp-microvolt-L4 = <0xaae60 0xaae60 0xf4240 0xaae60 0xaae60 0xf4240>; + opp-microvolt-L2 = <0xadf34 0xadf34 0xf4240 0xadf34 0xadf34 0xf4240>; + opp-hz = <0x00 0x54667200>; + opp-supported-hw = <0xf9 0xffff>; + opp-microvolt-L7 = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; + opp-microvolt-L5 = <0xa7d8c 0xa7d8c 0xf4240 0xa7d8c 0xa7d8c 0xf4240>; + opp-microvolt-L3 = <0xaae60 0xaae60 0xf4240 0xaae60 0xaae60 0xf4240>; + clock-latency-ns = <0x9c40>; + }; + + opp-408000000 { + opp-microvolt = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; + opp-hz = <0x00 0x18519600>; + opp-supported-hw = <0xf9 0xffff>; + opp-suspend; + clock-latency-ns = <0x9c40>; + }; + + opp-2304000000 { + opp-microvolt = <0xf4240 0xf4240 0xf4240 0xf4240 0xf4240 0xf4240>; + opp-hz = <0x00 0x89544000>; + opp-supported-hw = <0xf9 0x24>; + clock-latency-ns = <0x9c40>; + }; }; - syscon@fd5c0000 { - compatible = "rockchip,pipe-phy-grf\0syscon"; - reg = <0x00 0xfd5c0000 0x00 0x100>; - phandle = <0x1cb>; + rkcif-dvp { + iommus = <0x50>; + rockchip,hw = <0x4f>; + compatible = "rockchip,rkcif-dvp"; + status = "disabled"; + phandle = <0x51>; }; - syscon@fd5cc000 { - compatible = "rockchip,rk3588-usbdpphy-grf\0syscon"; - reg = <0x00 0xfd5cc000 0x00 0x4000>; - phandle = <0x1c9>; + rkisp0-vir2 { + rockchip,hw = <0x58>; + compatible = "rockchip,rkisp-vir"; + status = "okay"; + phandle = <0x23d>; + + port { + #address-cells = <0x01>; + #size-cells = <0x00>; + + endpoint@0 { + remote-endpoint = <0x59>; + reg = <0x00>; + phandle = <0x56>; + }; + }; }; - syscon@fd5d4000 { - compatible = "rockchip,rk3588-usb2phy-grf\0syscon\0simple-mfd"; - reg = <0x00 0xfd5d4000 0x00 0x4000>; + i2c@fea90000 { + pinctrl-names = "default"; #address-cells = <0x01>; - #size-cells = <0x01>; - phandle = <0x1c8>; + pinctrl-0 = <0x148>; + clock-names = "i2c\0pclk"; + resets = <0x02 0xb0 0x02 0xa8>; + interrupts = <0x00 0x13e 0x04>; + clocks = <0x02 0x8d 0x02 0x85>; + #size-cells = <0x00>; + compatible = "rockchip,rk3588-i2c\0rockchip,rk3399-i2c"; + status = "okay"; + reg = <0x00 0xfea90000 0x00 0x1000>; + phandle = <0x2a4>; + reset-names = "i2c\0apb"; - usb2-phy@4000 { - compatible = "rockchip,rk3588-usb2phy"; - reg = <0x4000 0x10>; - interrupts = <0x00 0x18a 0x04>; - resets = <0x02 0xc0048 0x02 0x489>; - reset-names = "phy\0apb"; - clocks = <0x02 0x2b5>; - clock-names = "phyclk"; - clock-output-names = "usb480m_phy1"; - #clock-cells = <0x00>; - rockchip,usbctrl-grf = <0x74>; - status = "okay"; - phandle = <0x1ca>; + rk8602@42 { + regulator-max-microvolt = <0xe7ef0>; + regulator-boot-on; + rockchip,suspend-voltage-selector = <0x01>; + regulator-always-on; + regulator-min-microvolt = <0x86470>; + regulator-name = "vdd_npu_s0"; + regulator-ramp-delay = <0x8fc>; + compatible = "rockchip,rk8602"; + reg = <0x42>; + phandle = <0xb3>; + vin-supply = <0x78>; + regulator-compatible = "rk860x-reg"; - otg-port { - #phy-cells = <0x00>; - status = "okay"; - phy-supply = <0x75>; - phandle = <0x1a3>; + regulator-state-mem { + regulator-off-in-suspend; }; }; }; - syscon@fd5e4000 { - compatible = "rockchip,rk3588-hdptxphy-grf\0syscon"; - reg = <0x00 0xfd5e4000 0x00 0x100>; - phandle = <0x1c7>; + syscon@fd58a000 { + compatible = "rockchip,rk3588-pmu1-grf\0syscon"; + reg = <0x00 0xfd58a000 0x00 0x2000>; + phandle = <0x104>; }; - spdif-tx@fddb8000 { - compatible = "rockchip,rk3588-spdif\0rockchip,rk3568-spdif"; - reg = <0x00 0xfddb8000 0x00 0x1000>; - interrupts = <0x00 0xc6 0x04>; - dmas = <0xf1 0x16>; - dma-names = "tx"; - clock-names = "mclk\0hclk"; - clocks = <0x02 0x20f 0x02 0x20a>; - assigned-clocks = <0x02 0x20b>; - assigned-clock-parents = <0x02 0x05>; - power-domains = <0x60 0x19>; - #sound-dai-cells = <0x00>; - status = "disabled"; - phandle = <0x1e2>; + syscon@fd5ec000 { + compatible = "rockchip,mipi-dcphy-grf\0syscon"; + reg = <0x00 0xfd5ec000 0x00 0x4000>; + phandle = <0x191>; }; - i2s@fddc8000 { - compatible = "rockchip,rk3588-i2s-tdm"; - reg = <0x00 0xfddc8000 0x00 0x1000>; - interrupts = <0x00 0xbc 0x04>; - clocks = <0x02 0x201 0x02 0x1fe>; - clock-names = "mclk_tx\0hclk"; - assigned-clocks = <0x02 0x1ff>; - assigned-clock-parents = <0x02 0x05>; - dmas = <0xf2 0x16>; - dma-names = "tx"; - power-domains = <0x60 0x19>; - resets = <0x02 0x391>; - reset-names = "tx-m"; - rockchip,playback-only; - #sound-dai-cells = <0x00>; - status = "disabled"; - phandle = <0x47c>; - }; + venc-opp-table { + nvmem-cells = <0xc6 0xc7>; + rockchip,leakage-voltage-sel = <0x01 0x0f 0x00 0x10 0x19 0x01 0x1a 0xfe 0x02>; + volt-mem-read-margin = <0xd0bd8 0x01 0xbac48 0x02 0xa4cb8 0x03 0x78d98 0x04>; + compatible = "operating-points-v2"; + rockchip,grf = <0xc8>; + nvmem-cell-names = "leakage\0opp-info"; + phandle = <0xc4>; - spdif-tx@fdde8000 { - compatible = "rockchip,rk3588-spdif\0rockchip,rk3568-spdif"; - reg = <0x00 0xfdde8000 0x00 0x1000>; - interrupts = <0x00 0xc5 0x04>; - dmas = <0xf1 0x08>; - dma-names = "tx"; - clock-names = "mclk\0hclk"; - clocks = <0x02 0x25c 0x02 0x258>; - assigned-clocks = <0x02 0x259>; - assigned-clock-parents = <0x02 0x05>; - power-domains = <0x60 0x1a>; - #sound-dai-cells = <0x00>; - status = "disabled"; - phandle = <0x47d>; + opp-800000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; + opp-microvolt-L2 = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; + opp-hz = <0x00 0x2faf0800>; + opp-microvolt-L0 = <0xc3500 0xc3500 0xcf850 0xc3500 0xc3500 0xcf850>; + opp-microvolt-L1 = <0xbd358 0xbd358 0xcf850 0xbd358 0xbd358 0xcf850>; + }; }; - i2s@fddf4000 { - compatible = "rockchip,rk3588-i2s-tdm"; - reg = <0x00 0xfddf4000 0x00 0x1000>; - interrupts = <0x00 0xba 0x04>; - clocks = <0x02 0x24c 0x02 0x24c 0x02 0x252>; - clock-names = "mclk_tx\0mclk_rx\0hclk"; - assigned-clocks = <0x02 0x249>; - assigned-clock-parents = <0x02 0x07>; - dmas = <0xf2 0x04>; - dma-names = "tx"; - power-domains = <0x60 0x1a>; - resets = <0x02 0x3ef>; - reset-names = "tx-m"; - rockchip,always-on; - rockchip,hdmi-path; - rockchip,playback-only; - #sound-dai-cells = <0x00>; + iommu@fdc38700 { + power-domains = <0x60 0x0e>; + rockchip,shootdown-entire; + clock-names = "aclk\0iface"; + interrupts = <0x00 0x60 0x04>; + clocks = <0x02 0x190 0x02 0x18f>; + rockchip,enable-cmd-retry; + #iommu-cells = <0x00>; + compatible = "rockchip,iommu-v2"; + rockchip,disable-mmu-reset; status = "okay"; - phandle = <0x1e0>; + interrupt-names = "irq_rkvdec0_mmu"; + reg = <0x00 0xfdc38700 0x00 0x40 0x00 0xfdc38740 0x00 0x40>; + phandle = <0xc9>; + rockchip,master-handle-irq; }; - i2s@fddf8000 { - compatible = "rockchip,rk3588-i2s-tdm"; - reg = <0x00 0xfddf8000 0x00 0x1000>; - interrupts = <0x00 0xbb 0x04>; - clocks = <0x02 0x23c 0x02 0x23c 0x02 0x238>; - clock-names = "mclk_tx\0mclk_rx\0hclk"; - assigned-clocks = <0x02 0x239>; - assigned-clock-parents = <0x02 0x05>; - dmas = <0xf2 0x15>; - dma-names = "rx"; - power-domains = <0x60 0x1a>; - resets = <0x02 0x3c3>; - reset-names = "rx-m"; - rockchip,capture-only; - #sound-dai-cells = <0x00>; - status = "okay"; - phandle = <0x1ec>; + qos@fdf35200 { + compatible = "syscon"; + reg = <0x00 0xfdf35200 0x00 0x20>; + phandle = <0x88>; }; - i2s@fde00000 { - compatible = "rockchip,rk3588-i2s-tdm"; - reg = <0x00 0xfde00000 0x00 0x1000>; - interrupts = <0x00 0xbe 0x04>; - clocks = <0x02 0x237 0x02 0x237 0x02 0x233>; - clock-names = "mclk_tx\0mclk_rx\0hclk"; - assigned-clocks = <0x02 0x234>; - assigned-clock-parents = <0x02 0x05>; - dmas = <0xf2 0x18>; - dma-names = "rx"; - power-domains = <0x60 0x1a>; - resets = <0x02 0x417>; - reset-names = "rx-m"; - rockchip,capture-only; - #sound-dai-cells = <0x00>; - status = "disabled"; - phandle = <0x47e>; + qos@fdf71000 { + compatible = "syscon"; + reg = <0x00 0xfdf71000 0x00 0x20>; + phandle = <0x86>; }; - spdif-rx@fde10000 { - compatible = "rockchip,rk3588-spdifrx\0rockchip,rk3308-spdifrx"; - reg = <0x00 0xfde10000 0x00 0x1000>; - interrupts = <0x00 0xc8 0x04>; - clocks = <0x02 0x260 0x02 0x25f>; - clock-names = "mclk\0hclk"; - assigned-clocks = <0x02 0x260>; - assigned-clock-parents = <0x02 0x05>; - dmas = <0x7c 0x16>; - dma-names = "rx"; - power-domains = <0x60 0x1a>; - resets = <0x02 0x3ff>; - reset-names = "spdifrx-m"; - #sound-dai-cells = <0x00>; - status = "disabled"; - phandle = <0x47f>; + syscon@fd598000 { + compatible = "rockchip,rk3588-dsu-grf\0syscon"; + reg = <0x00 0xfd598000 0x00 0x100>; + phandle = <0x23>; }; - spdif-rx@fde18000 { - compatible = "rockchip,rk3588-spdifrx\0rockchip,rk3308-spdifrx"; - reg = <0x00 0xfde18000 0x00 0x1000>; - interrupts = <0x00 0xc9 0x04>; - clocks = <0x02 0x262 0x02 0x261>; - clock-names = "mclk\0hclk"; - assigned-clocks = <0x02 0x262>; - assigned-clock-parents = <0x02 0x05>; - dmas = <0x7c 0x17>; - dma-names = "rx"; - power-domains = <0x60 0x1a>; - resets = <0x02 0x401>; - reset-names = "spdifrx-m"; - #sound-dai-cells = <0x00>; + csi2-dphy2 { + rockchip,hw = <0x2d 0x2e>; + phy-names = "dcphy0\0dcphy1"; + compatible = "rockchip,rk3588-csi2-dphy"; status = "disabled"; - phandle = <0x480>; + phys = <0x2f 0x30>; + phandle = <0x211>; }; - dp@fde60000 { - compatible = "rockchip,rk3588-dp"; - reg = <0x00 0xfde60000 0x00 0x4000>; - interrupts = <0x00 0xa2 0x04>; - clocks = <0x02 0x1e7 0x02 0x2cd 0x02 0x201 0x02 0x20d 0x04 0x02 0x1eb>; - clock-names = "apb\0aux\0i2s\0spdif\0hclk\0hdcp"; - assigned-clocks = <0x02 0x2cd>; - assigned-clock-rates = <0xf42400>; - resets = <0x02 0x389>; - phys = <0x1a5>; - power-domains = <0x60 0x19>; - #sound-dai-cells = <0x01>; - status = "disabled"; - phandle = <0x1e3>; - - ports { - #address-cells = <0x01>; - #size-cells = <0x00>; - - port@0 { - reg = <0x00>; - #address-cells = <0x01>; - #size-cells = <0x00>; - - endpoint@0 { - reg = <0x00>; - remote-endpoint = <0x1a6>; - status = "disabled"; - phandle = <0xdd>; - }; - - endpoint@1 { - reg = <0x01>; - remote-endpoint = <0x3e>; - status = "disabled"; - phandle = <0xe3>; - }; + syscon@fd5b4000 { + compatible = "rockchip,mipi-dphy-grf\0syscon"; + reg = <0x00 0xfd5b4000 0x00 0x1000>; + phandle = <0x192>; + }; - endpoint@2 { - reg = <0x02>; - remote-endpoint = <0x1a7>; - status = "disabled"; - phandle = <0xeb>; - }; - }; + uio@fe1b0000 { + compatible = "rockchip,uio-gmac"; + status = "disabled"; + reg = <0x00 0xfe1b0000 0x00 0x10000>; + phandle = <0x488>; + rockchip,ethernet = <0x1bd>; + }; - port@1 { - reg = <0x01>; + iommu@fdb70f00 { + power-domains = <0x60 0x1e>; + clock-names = "aclk\0iface"; + interrupts = <0x00 0x73 0x04>; + clocks = <0x02 0x18a 0x02 0x189>; + #iommu-cells = <0x00>; + compatible = "rockchip,iommu-v2"; + status = "okay"; + interrupt-names = "rga3_1_mmu"; + reg = <0x00 0xfdb70f00 0x00 0x100>; + phandle = <0xba>; + }; - endpoint { - phandle = <0x481>; - }; - }; - }; + vcc5v0-usb { + regulator-max-microvolt = <0x4c4b40>; + regulator-boot-on; + regulator-always-on; + regulator-min-microvolt = <0x4c4b40>; + regulator-name = "vcc5v0_usb"; + compatible = "regulator-fixed"; + phandle = <0x1dd>; + vin-supply = <0x1cd>; }; - hdmi@fdea0000 { - compatible = "rockchip,rk3588-dw-hdmi"; - reg = <0x00 0xfdea0000 0x00 0x10000 0x00 0xfdeb0000 0x00 0x10000>; - interrupts = <0x00 0xad 0x04 0x00 0xae 0x04 0x00 0xaf 0x04 0x00 0xb0 0x04 0x00 0x169 0x04>; - clocks = <0x02 0x224 0x02 0x266 0x02 0x225 0x02 0x226 0x02 0x24c 0x02 0x274 0x02 0x275 0x02 0x276 0x02 0x277 0x05 0x36>; - clock-names = "pclk\0hpd\0earc\0hdmitx_ref\0aud\0dclk_vp0\0dclk_vp1\0dclk_vp2\0dclk_vp3\0hclk_vo1\0link_clk"; - resets = <0x02 0x3d7 0x02 0x49d>; - reset-names = "ref\0hdp"; - power-domains = <0x60 0x1a>; + fiq-debugger { pinctrl-names = "default"; - pinctrl-0 = <0x1a8 0x1a9 0x1aa 0x1ab>; - reg-io-width = <0x04>; - rockchip,grf = <0xc8>; - rockchip,vo1_grf = <0xd8>; - phys = <0x1ac>; - phy-names = "hdmi"; - #sound-dai-cells = <0x00>; - status = "disabled"; - phandle = <0x1e1>; - - ports { - #address-cells = <0x01>; - #size-cells = <0x00>; + rockchip,irq-mode-enable = <0x01>; + rockchip,baudrate = <0x1c200>; + pinctrl-0 = <0x1ce>; + interrupts = <0x00 0x1a7 0x08>; + rockchip,wake-irq = <0x00>; + compatible = "rockchip,fiq-debugger"; + status = "okay"; + phandle = <0x490>; + rockchip,serial-id = <0x02>; + }; - port@0 { - reg = <0x00>; - #address-cells = <0x01>; - #size-cells = <0x00>; - phandle = <0x482>; + phy@fed70000 { + clock-names = "ref\0apb"; + resets = <0x02 0x486 0x02 0xc003f 0x02 0xc0040 0x02 0xc0041>; + clocks = <0x02 0x2b5 0x02 0x268>; + #phy-cells = <0x00>; + compatible = "rockchip,rk3588-hdptx-phy"; + status = "disabled"; + rockchip,grf = <0x1c7>; + reg = <0x00 0xfed70000 0x00 0x2000>; + phandle = <0x1af>; + reset-names = "apb\0init\0cmn\0lane"; + }; - endpoint@0 { - reg = <0x00>; - remote-endpoint = <0x1ad>; - status = "disabled"; - phandle = <0xdf>; - }; + ethernet@fe1b0000 { + power-domains = <0x60 0x21>; + pinctrl-names = "default"; + phy-mode = "rgmii-rxid"; + snps,mixed-burst; + snps,mtl-rx-config = <0x1bf>; + snps,reset-active-low; + pinctrl-0 = <0x1c1 0x1c2 0x1c3 0x1c4 0x1c5>; + clock-names = "stmmaceth\0clk_mac_ref\0pclk_mac\0aclk_mac\0ptp_ref"; + snps,mtl-tx-config = <0x1c0>; + local-mac-address = [da 2f 1a d4 a9 85]; + resets = <0x02 0x20a>; + interrupts = <0x00 0xe3 0x04 0x00 0xe2 0x04>; + clocks = <0x02 0x144 0x02 0x145 0x02 0x167 0x02 0x16c 0x02 0x142>; + clock_in_out = "output"; + snps,tso; + compatible = "rockchip,rk3588-gmac\0snps,dwmac-4.20a"; + status = "okay"; + rockchip,grf = <0xc8>; + interrupt-names = "macirq\0eth_wake_irq"; + snps,reset-gpio = <0x10d 0x02 0x01>; + reg = <0x00 0xfe1b0000 0x00 0x10000>; + rockchip,php_grf = <0x76>; + phandle = <0x1bd>; + phy-handle = <0x1c6>; + reset-names = "stmmaceth"; + tx_delay = <0x31>; + snps,axi-config = <0x1be>; + snps,reset-delays-us = <0x00 0x4e20 0x186a0>; - endpoint@1 { - reg = <0x01>; - remote-endpoint = <0x3f>; - status = "disabled"; - phandle = <0xe5>; - }; + mdio { + #address-cells = <0x01>; + #size-cells = <0x00>; + compatible = "snps,dwmac-mdio"; + phandle = <0x489>; - endpoint@2 { - reg = <0x02>; - remote-endpoint = <0x1ae>; - status = "disabled"; - phandle = <0xed>; - }; + phy@1 { + compatible = "ethernet-phy-ieee802.3-c22"; + reg = <0x01>; + phandle = <0x1c6>; }; }; - }; - - edp@fded0000 { - compatible = "rockchip,rk3588-edp"; - reg = <0x00 0xfded0000 0x00 0x1000>; - interrupts = <0x00 0xa4 0x04>; - clocks = <0x02 0x214 0x02 0x213 0x02 0x215 0x05>; - clock-names = "dp\0pclk\0spdif\0hclk"; - resets = <0x02 0x3e4 0x02 0x3e3>; - reset-names = "dp\0apb"; - phys = <0x1af>; - phy-names = "dp"; - power-domains = <0x60 0x1a>; - rockchip,grf = <0xd8>; - status = "disabled"; - phandle = <0x483>; - ports { - #address-cells = <0x01>; - #size-cells = <0x00>; + tx-queues-config { + phandle = <0x1c0>; + snps,tx-queues-to-use = <0x01>; - port@0 { - reg = <0x00>; - #address-cells = <0x01>; - #size-cells = <0x00>; + queue0 { + }; + }; - endpoint@0 { - reg = <0x00>; - remote-endpoint = <0x1b0>; - status = "disabled"; - phandle = <0xde>; - }; + stmmac-axi-config { + snps,wr_osr_lmt = <0x04>; + phandle = <0x1be>; + snps,blen = <0x00 0x00 0x00 0x00 0x10 0x08 0x04>; + snps,rd_osr_lmt = <0x08>; + }; - endpoint@1 { - reg = <0x01>; - remote-endpoint = <0x1b1>; - status = "disabled"; - phandle = <0xe4>; - }; + rx-queues-config { + snps,rx-queues-to-use = <0x01>; + phandle = <0x1bf>; - endpoint@2 { - reg = <0x02>; - remote-endpoint = <0x1b2>; - status = "disabled"; - phandle = <0xec>; - }; + queue0 { }; + }; + }; - port@1 { - reg = <0x01>; + pvtm@fda60000 { + #address-cells = <0x01>; + #size-cells = <0x00>; + compatible = "rockchip,rk3588-litcore-pvtm"; + reg = <0x00 0xfda60000 0x00 0x100>; - endpoint { - phandle = <0x484>; - }; - }; + pvtm@2 { + clock-names = "clk\0pclk"; + clocks = <0x02 0x2ca 0x02 0x1b>; + reg = <0x02>; }; }; - hdmirx-controller@fdee0000 { - compatible = "rockchip,rk3588-hdmirx-ctrler\0rockchip,hdmirx-ctrler"; - reg = <0x00 0xfdee0000 0x00 0x6000>; - reg-names = "hdmirx_regs"; - power-domains = <0x60 0x1a>; - rockchip,grf = <0xc8>; - rockchip,vo1_grf = <0xd8>; - interrupts = <0x00 0xb1 0x04 0x00 0x1b4 0x04 0x00 0xb3 0x04>; - interrupt-names = "cec\0hdmi\0dma"; - clocks = <0x02 0x21a 0x02 0x21f 0x02 0x2b2 0x02 0x21b 0x02 0x21c 0x02 0x232 0x05>; - clock-names = "aclk\0audio\0cr_para\0pclk\0ref\0hclk_s_hdmirx\0hclk_vo1"; - resets = <0x02 0x3d9 0x02 0x3da 0x02 0x3db 0x02 0x3b7>; - reset-names = "rst_a\0rst_p\0rst_ref\0rst_biu"; - pinctrl-0 = <0x1b3 0x1b4>; - pinctrl-names = "default"; + rkispp@fdcd8000 { + power-domains = <0x60 0x1d>; + iommus = <0xd3>; + clock-names = "aclk_ispp\0hclk_ispp\0clk_ispp"; + assigned-clocks = <0x02 0x1d9>; + assigned-clock-rates = <0x5f5e100>; + interrupts = <0x00 0x8d 0x04>; + clocks = <0x02 0x1d8 0x02 0x1d9 0x02 0x1da>; + compatible = "rockchip,rk3588-rkispp"; status = "disabled"; - #sound-dai-cells = <0x01>; - hpd-trigger-level = <0x01>; - hdmirx-det-gpios = <0xfe 0x1d 0x01>; - phandle = <0x1eb>; + interrupt-names = "fec_irq"; + reg = <0x00 0xfdcd8000 0x00 0xf00>; + phandle = <0x5c>; }; - pcie@fe150000 { - compatible = "rockchip,rk3588-pcie\0snps,dw-pcie"; - #address-cells = <0x03>; - #size-cells = <0x02>; - bus-range = <0x00 0x0f>; - clocks = <0x02 0x14e 0x02 0x153 0x02 0x149 0x02 0x158 0x02 0x15e 0x02 0x183>; - clock-names = "aclk_mst\0aclk_slv\0aclk_dbi\0pclk\0aux\0pipe"; - device_type = "pci"; - interrupts = <0x00 0x107 0x04 0x00 0x106 0x04 0x00 0x105 0x04 0x00 0x104 0x04 0x00 0x103 0x04>; - interrupt-names = "sys\0pmc\0msg\0legacy\0err"; - #interrupt-cells = <0x01>; - interrupt-map-mask = <0x00 0x00 0x00 0x07>; - interrupt-map = <0x00 0x00 0x00 0x01 0x1b5 0x00 0x00 0x00 0x00 0x02 0x1b5 0x01 0x00 0x00 0x00 0x03 0x1b5 0x02 0x00 0x00 0x00 0x04 0x1b5 0x03>; - linux,pci-domain = <0x00>; - num-ib-windows = <0x10>; - num-ob-windows = <0x10>; - num-viewport = <0x08>; - max-link-speed = <0x03>; - msi-map = <0x00 0x1b6 0x00 0x1000>; - num-lanes = <0x01>; - phys = <0x1b7>; - phy-names = "pcie-phy"; - power-domains = <0x60 0x22>; - ranges = <0x800 0x00 0xf0000000 0x00 0xf0000000 0x00 0x100000 0x81000000 0x00 0xf0100000 0x00 0xf0100000 0x00 0x100000 0x82000000 0x00 0xf0200000 0x00 0xf0200000 0x00 0xe00000 0xc3000000 0x09 0x00 0x09 0x00 0x00 0x40000000>; - reg = <0x00 0xfe150000 0x00 0x10000 0x0a 0x40000000 0x00 0x400000>; - reg-names = "pcie-apb\0pcie-dbi"; - resets = <0x02 0x20d 0x02 0x21c>; - reset-names = "pcie\0periph"; - rockchip,pipe-grf = <0x76>; - status = "okay"; - reset-gpios = <0x10d 0x0e 0x00>; - vpcie3v3-supply = <0x1b8>; - phandle = <0x485>; + qos@fdf66000 { + compatible = "syscon"; + reg = <0x00 0xfdf66000 0x00 0x20>; + phandle = <0x93>; + }; - legacy-interrupt-controller { - interrupt-controller; - #address-cells = <0x00>; - #interrupt-cells = <0x01>; - interrupt-parent = <0x01>; - interrupts = <0x00 0x104 0x01>; - phandle = <0x1b5>; - }; + syscon@fd592000 { + compatible = "rockchip,rk3588-bigcore1-grf\0syscon"; + reg = <0x00 0xfd592000 0x00 0x100>; + phandle = <0x29>; }; - pcie@fe160000 { - compatible = "rockchip,rk3588-pcie\0snps,dw-pcie"; - #address-cells = <0x03>; - #size-cells = <0x02>; - bus-range = <0x10 0x1f>; - clocks = <0x02 0x14f 0x02 0x154 0x02 0x14a 0x02 0x159 0x02 0x15f 0x02 0x184>; - clock-names = "aclk_mst\0aclk_slv\0aclk_dbi\0pclk\0aux\0pipe"; - device_type = "pci"; - interrupts = <0x00 0x102 0x04 0x00 0x101 0x04 0x00 0x100 0x04 0x00 0xff 0x04 0x00 0xfe 0x04>; - interrupt-names = "sys\0pmc\0msg\0legacy\0err"; - #interrupt-cells = <0x01>; - interrupt-map-mask = <0x00 0x00 0x00 0x07>; - interrupt-map = <0x00 0x00 0x00 0x01 0x1b9 0x00 0x00 0x00 0x00 0x02 0x1b9 0x01 0x00 0x00 0x00 0x03 0x1b9 0x02 0x00 0x00 0x00 0x04 0x1b9 0x03>; - linux,pci-domain = <0x01>; - num-ib-windows = <0x10>; - num-ob-windows = <0x10>; - num-viewport = <0x08>; - max-link-speed = <0x03>; - msi-map = <0x1000 0x1b6 0x1000 0x1000>; - num-lanes = <0x02>; - phys = <0x1b7>; - phy-names = "pcie-phy"; - power-domains = <0x60 0x22>; - ranges = <0x800 0x00 0xf1000000 0x00 0xf1000000 0x00 0x100000 0x81000000 0x00 0xf1100000 0x00 0xf1100000 0x00 0x100000 0x82000000 0x00 0xf1200000 0x00 0xf1200000 0x00 0xe00000 0xc3000000 0x09 0x40000000 0x09 0x40000000 0x00 0x40000000>; - reg = <0x00 0xfe160000 0x00 0x10000 0x0a 0x40400000 0x00 0x400000>; - reg-names = "pcie-apb\0pcie-dbi"; - resets = <0x02 0x20e 0x02 0x21d>; - reset-names = "pcie\0periph"; - rockchip,pipe-grf = <0x76>; + rkcif-mipi-lvds1 { + iommus = <0x50>; + rockchip,hw = <0x4f>; + compatible = "rockchip,rkcif-mipi-lvds"; status = "disabled"; - reset-gpios = <0x10d 0x08 0x00>; - vpcie3v3-supply = <0x1ba>; - phandle = <0x486>; + phandle = <0x53>; + }; - legacy-interrupt-controller { - interrupt-controller; - #address-cells = <0x00>; - #interrupt-cells = <0x01>; - interrupt-parent = <0x01>; - interrupts = <0x00 0xff 0x01>; - phandle = <0x1b9>; - }; + av1d@fdc70000 { + power-domains = <0x60 0x17>; + iommus = <0xce>; + clock-names = "aclk_vcodec\0hclk_vcodec"; + reg-names = "vcd\0cache\0afbc"; + assigned-clocks = <0x02 0x49 0x02 0x4b>; + rockchip,normal-rates = <0x17d78400 0x17d78400>; + assigned-clock-rates = <0x17d78400 0x17d78400>; + resets = <0x02 0x442 0x02 0x445>; + interrupts = <0x00 0x6c 0x04 0x00 0x6b 0x04 0x00 0x6a 0x04>; + clocks = <0x02 0x49 0x02 0x4b>; + rockchip,srv = <0xb8>; + rockchip,taskqueue-node = <0x0b>; + compatible = "rockchip,av1-decoder"; + status = "okay"; + interrupt-names = "irq_av1d\0irq_cache\0irq_afbc"; + reg = <0x00 0xfdc70000 0x00 0x800 0x00 0xfdc80000 0x00 0x400 0x00 0xfdc90000 0x00 0x400>; + phandle = <0x276>; + reset-names = "video_a\0video_h"; }; - pcie@fe170000 { - compatible = "rockchip,rk3588-pcie\0snps,dw-pcie"; - #address-cells = <0x03>; - #size-cells = <0x02>; - bus-range = <0x20 0x2f>; - clocks = <0x02 0x150 0x02 0x155 0x02 0x14b 0x02 0x15b 0x02 0x160 0x02 0x2c4>; - clock-names = "aclk_mst\0aclk_slv\0aclk_dbi\0pclk\0aux\0pipe"; - device_type = "pci"; - interrupts = <0x00 0xf3 0x04 0x00 0xf2 0x04 0x00 0xf1 0x04 0x00 0xf0 0x04 0x00 0xef 0x04>; - interrupt-names = "sys\0pmc\0msg\0legacy\0err"; - #interrupt-cells = <0x01>; - interrupt-map-mask = <0x00 0x00 0x00 0x07>; - interrupt-map = <0x00 0x00 0x00 0x01 0x1bb 0x00 0x00 0x00 0x00 0x02 0x1bb 0x01 0x00 0x00 0x00 0x03 0x1bb 0x02 0x00 0x00 0x00 0x04 0x1bb 0x03>; - linux,pci-domain = <0x02>; - num-ib-windows = <0x08>; - num-ob-windows = <0x08>; - num-viewport = <0x04>; - max-link-speed = <0x02>; - msi-map = <0x2000 0x106 0x2000 0x1000>; - num-lanes = <0x01>; - phys = <0x1bc 0x02>; - phy-names = "pcie-phy"; - ranges = <0x800 0x00 0xf2000000 0x00 0xf2000000 0x00 0x100000 0x81000000 0x00 0xf2100000 0x00 0xf2100000 0x00 0x100000 0x82000000 0x00 0xf2200000 0x00 0xf2200000 0x00 0xe00000 0xc3000000 0x09 0x80000000 0x09 0x80000000 0x00 0x40000000>; - reg = <0x00 0xfe170000 0x00 0x10000 0x0a 0x40800000 0x00 0x400000>; - reg-names = "pcie-apb\0pcie-dbi"; - resets = <0x02 0x20f 0x02 0x21e>; - reset-names = "pcie\0periph"; - rockchip,pipe-grf = <0x76>; + qos@fdf40500 { + compatible = "syscon"; + reg = <0x00 0xfdf40500 0x00 0x20>; + phandle = <0xa3>; + }; + + vcc-hub-reset-regulator { + regulator-boot-on; + gpio = <0x182 0x04 0x00>; + regulator-always-on; + enable-active-high; + regulator-name = "vcc_hub_reset"; + compatible = "regulator-fixed"; status = "disabled"; - phandle = <0x487>; + phandle = <0x4a0>; + }; - legacy-interrupt-controller { - interrupt-controller; - #address-cells = <0x00>; - #interrupt-cells = <0x01>; - interrupt-parent = <0x01>; - interrupts = <0x00 0xf0 0x01>; - phandle = <0x1bb>; - }; + qos@fdf72200 { + compatible = "syscon"; + reg = <0x00 0xfdf72200 0x00 0x20>; + phandle = <0x83>; }; - uio@fe1b0000 { - compatible = "rockchip,uio-gmac"; - reg = <0x00 0xfe1b0000 0x00 0x10000>; - rockchip,ethernet = <0x1bd>; + serial@feb70000 { + reg-io-width = <0x04>; + pinctrl-names = "default"; + pinctrl-0 = <0x163>; + clock-names = "baudclk\0apb_pclk"; + interrupts = <0x00 0x14f 0x04>; + clocks = <0x02 0xc3 0x02 0xae>; + compatible = "rockchip,rk3588-uart\0snps,dw-apb-uart"; status = "disabled"; - phandle = <0x488>; + reg = <0x00 0xfeb70000 0x00 0x100>; + phandle = <0x2cc>; + dmas = <0xf1 0x09 0xf1 0x0a>; + reg-shift = <0x02>; }; - ethernet@fe1b0000 { - compatible = "rockchip,rk3588-gmac\0snps,dwmac-4.20a"; - reg = <0x00 0xfe1b0000 0x00 0x10000>; - interrupts = <0x00 0xe3 0x04 0x00 0xe2 0x04>; - interrupt-names = "macirq\0eth_wake_irq"; - rockchip,grf = <0xc8>; - rockchip,php_grf = <0x76>; - clocks = <0x02 0x144 0x02 0x145 0x02 0x167 0x02 0x16c 0x02 0x142>; - clock-names = "stmmaceth\0clk_mac_ref\0pclk_mac\0aclk_mac\0ptp_ref"; - resets = <0x02 0x20a>; - reset-names = "stmmaceth"; - power-domains = <0x60 0x21>; - snps,mixed-burst; - snps,tso; - snps,axi-config = <0x1be>; - snps,mtl-rx-config = <0x1bf>; - snps,mtl-tx-config = <0x1c0>; + rkcif-mipi-lvds2-sditf { + compatible = "rockchip,rkcif-sditf"; status = "okay"; - phy-mode = "rgmii-rxid"; - clock_in_out = "output"; - snps,reset-gpio = <0x10d 0x02 0x01>; - snps,reset-active-low; - snps,reset-delays-us = <0x00 0x4e20 0x186a0>; - pinctrl-names = "default"; - pinctrl-0 = <0x1c1 0x1c2 0x1c3 0x1c4 0x1c5>; - tx_delay = <0x31>; - phy-handle = <0x1c6>; - phandle = <0x1bd>; - - mdio { - compatible = "snps,dwmac-mdio"; - #address-cells = <0x01>; - #size-cells = <0x00>; - phandle = <0x489>; - - phy@1 { - compatible = "ethernet-phy-ieee802.3-c22"; - reg = <0x01>; - phandle = <0x1c6>; - }; - }; - - stmmac-axi-config { - snps,wr_osr_lmt = <0x04>; - snps,rd_osr_lmt = <0x08>; - snps,blen = <0x00 0x00 0x00 0x00 0x10 0x08 0x04>; - phandle = <0x1be>; - }; - - rx-queues-config { - snps,rx-queues-to-use = <0x01>; - phandle = <0x1bf>; - - queue0 { - }; - }; + rockchip,cif = <0x55>; + phandle = <0x233>; - tx-queues-config { - snps,tx-queues-to-use = <0x01>; - phandle = <0x1c0>; + port { - queue0 { + endpoint { + remote-endpoint = <0x56>; + phandle = <0x59>; }; }; }; - sata@fe220000 { - compatible = "rockchip,rk-ahci\0snps,dwc-ahci"; - reg = <0x00 0xfe220000 0x00 0x1000>; - clocks = <0x02 0x172 0x02 0x16f 0x02 0x175 0x02 0x164 0x02 0x17f>; - clock-names = "sata\0pmalive\0rxoob\0ref\0asic"; - interrupts = <0x00 0x112 0x04>; - interrupt-names = "hostc"; - phys = <0x1bc 0x01>; - phy-names = "sata-phy"; - ports-implemented = <0x01>; + i2c@feca0000 { + pinctrl-names = "default"; + #address-cells = <0x01>; + pinctrl-0 = <0x186>; + clock-names = "i2c\0pclk"; + resets = <0x02 0xb7 0x02 0xaf>; + interrupts = <0x00 0x145 0x04>; + clocks = <0x02 0x94 0x02 0x8c>; + #size-cells = <0x00>; + compatible = "rockchip,rk3588-i2c\0rockchip,rk3399-i2c"; status = "disabled"; - phandle = <0x48a>; + reg = <0x00 0xfeca0000 0x00 0x1000>; + phandle = <0x2e5>; + reset-names = "i2c\0apb"; }; - phy@fed70000 { - compatible = "rockchip,rk3588-hdptx-phy"; - reg = <0x00 0xfed70000 0x00 0x2000>; - clocks = <0x02 0x2b5 0x02 0x268>; - clock-names = "ref\0apb"; - resets = <0x02 0x486 0x02 0xc003f 0x02 0xc0040 0x02 0xc0041>; - reset-names = "apb\0init\0cmn\0lane"; - rockchip,grf = <0x1c7>; - #phy-cells = <0x00>; - status = "disabled"; - phandle = <0x1af>; + vcc-sdcard-pwr-en-regulator { + regulator-boot-on; + gpio = <0xfe 0x07 0x00>; + regulator-always-on; + enable-active-high; + regulator-name = "vcc_sdcard_pwr_en"; + compatible = "regulator-fixed"; + status = "okay"; + phandle = <0x4a5>; }; - hdmiphy@fed70000 { - compatible = "rockchip,rk3588-hdptx-phy-hdmi"; - reg = <0x00 0xfed70000 0x00 0x2000>; - clocks = <0x02 0x2b5 0x02 0x268>; - clock-names = "ref\0apb"; - resets = <0x02 0x491 0x02 0x486 0x02 0xc003f 0x02 0xc0040 0x02 0xc0041 0x02 0x48f 0x02 0x490>; - reset-names = "phy\0apb\0init\0cmn\0lane\0ropll\0lcpll"; - rockchip,grf = <0x1c7>; - #phy-cells = <0x00>; + rkcif-mipi-lvds1-sditf-vir1 { + compatible = "rockchip,rkcif-sditf"; status = "disabled"; - phandle = <0x1ac>; - - clk-port { - #clock-cells = <0x00>; - status = "okay"; - phandle = <0x36>; - }; + rockchip,cif = <0x53>; + phandle = <0x230>; }; - phy@fed90000 { - compatible = "rockchip,rk3588-usbdp-phy"; - reg = <0x00 0xfed90000 0x00 0x10000>; - rockchip,u2phy-grf = <0x1c8>; - rockchip,usb-grf = <0x74>; - rockchip,usbdpphy-grf = <0x1c9>; - rockchip,vo-grf = <0xf5>; - clocks = <0x02 0x2b6 0x02 0x280 0x02 0x26a 0x1ca>; - clock-names = "refclk\0immortal\0pclk\0utmi"; - resets = <0x02 0x2f 0x02 0x30 0x02 0x31 0x02 0x32 0x02 0x484>; - reset-names = "init\0cmn\0lane\0pcs_apb\0pma_apb"; - status = "okay"; - rockchip,dp-lane-mux = <0x02 0x03>; - phandle = <0x48b>; - - dp-port { - #phy-cells = <0x00>; - status = "okay"; - phandle = <0x1a5>; - }; - - u3-port { - #phy-cells = <0x00>; - status = "okay"; - phandle = <0x1a4>; - }; + qos@fdf63000 { + compatible = "syscon"; + reg = <0x00 0xfdf63000 0x00 0x20>; + phandle = <0x8c>; }; - phy@fee10000 { - compatible = "rockchip,rk3588-naneng-combphy"; - reg = <0x00 0xfee10000 0x00 0x100>; - #phy-cells = <0x01>; - clocks = <0x02 0x2be 0x02 0x186 0x02 0x166>; + phy@fee00000 { + rockchip,pipe-grf = <0x76>; clock-names = "refclk\0apbclk\0phpclk"; - assigned-clocks = <0x02 0x2be>; + assigned-clocks = <0x02 0x2bd>; assigned-clock-rates = <0x5f5e100>; - resets = <0x02 0x20006 0x02 0x4d7>; - reset-names = "combphy-apb\0combphy"; - rockchip,pipe-grf = <0x76>; - rockchip,pipe-phy-grf = <0x1cb>; - rockchip,pcie1ln-sel-bits = <0x100 0x00 0x00 0x00>; - status = "disabled"; - phandle = <0x1bc>; - }; - - phy@fee80000 { - compatible = "rockchip,rk3588-pcie3-phy"; - reg = <0x00 0xfee80000 0x00 0x20000>; - #phy-cells = <0x00>; - clocks = <0x02 0x188>; - clock-names = "pclk"; - resets = <0x02 0x2000a>; - reset-names = "phy"; - rockchip,pipe-grf = <0x76>; - rockchip,phy-grf = <0x1cc>; - status = "okay"; - rockchip,pcie30-phymode = <0x01>; - phandle = <0x1b7>; - }; - - test-power { + resets = <0x02 0x20005 0x02 0x4d6>; + clocks = <0x02 0x2bd 0x02 0x185 0x02 0x166>; + #phy-cells = <0x01>; + compatible = "rockchip,rk3588-naneng-combphy"; status = "okay"; + rockchip,pipe-phy-grf = <0x194>; + reg = <0x00 0xfee00000 0x00 0x100>; + phandle = <0x108>; + reset-names = "combphy-apb\0combphy"; }; - vcc12v-dcin { - compatible = "regulator-fixed"; - regulator-name = "vcc12v_dcin"; - regulator-always-on; - regulator-boot-on; - regulator-min-microvolt = <0xb71b00>; - regulator-max-microvolt = <0xb71b00>; - phandle = <0x1cd>; - }; - - vcc5v0-sys { - compatible = "regulator-fixed"; - regulator-name = "vcc5v0_sys"; - regulator-always-on; - regulator-boot-on; - regulator-min-microvolt = <0x4c4b40>; - regulator-max-microvolt = <0x4c4b40>; - vin-supply = <0x1cd>; - phandle = <0x78>; - }; - - vcc5v0-usbdcin { - compatible = "regulator-fixed"; - regulator-name = "vcc5v0_usbdcin"; - regulator-always-on; - regulator-boot-on; - regulator-min-microvolt = <0x4c4b40>; - regulator-max-microvolt = <0x4c4b40>; - vin-supply = <0x1cd>; - phandle = <0x48c>; - }; - - vcc5v0-usb { - compatible = "regulator-fixed"; - regulator-name = "vcc5v0_usb"; - regulator-always-on; - regulator-boot-on; - regulator-min-microvolt = <0x4c4b40>; - regulator-max-microvolt = <0x4c4b40>; - vin-supply = <0x1cd>; - phandle = <0x1dd>; - }; - - vcc-1v1-nldo-s3 { - compatible = "regulator-fixed"; - regulator-name = "vcc_1v1_nldo_s3"; - regulator-always-on; - regulator-boot-on; - regulator-min-microvolt = <0x10c8e0>; - regulator-max-microvolt = <0x10c8e0>; - vin-supply = <0x78>; - phandle = <0x15c>; - }; - - chosen { - bootargs = "earlycon=uart8250,mmio32,0xfeb50000 console=ttyFIQ0 irqchip.gicv3_pseudo_nmi=0 root=PARTLABEL=rootfs rootfstype=ext4 ro rootwait overlayroot=device:dev=PARTLABEL=userdata,fstype=ext4,mkfs=1 coherent_pool=1m systemd.gpt_auto=0 cgroup_enable=memory swapaccount=1 net.ifnames=0 rcupdate.rcu_expedited=1 rcu_nocbs=all"; - phandle = <0x48d>; - }; - - cspmu@fd10c000 { - compatible = "rockchip,cspmu"; - reg = <0x00 0xfd10c000 0x00 0x1000 0x00 0xfd10d000 0x00 0x1000 0x00 0xfd10e000 0x00 0x1000 0x00 0xfd10f000 0x00 0x1000 0x00 0xfd12c000 0x00 0x1000 0x00 0xfd12d000 0x00 0x1000 0x00 0xfd12e000 0x00 0x1000 0x00 0xfd12f000 0x00 0x1000>; - phandle = <0x48e>; + can@fea50000 { + pinctrl-names = "default"; + pinctrl-0 = <0x145>; + clock-names = "baudclk\0apb_pclk"; + resets = <0x02 0xb9 0x02 0xb8>; + interrupts = <0x00 0x155 0x04>; + clocks = <0x02 0x70 0x02 0x6f>; + compatible = "rockchip,can-2.0"; + status = "disabled"; + tx-fifo-depth = <0x01>; + rx-fifo-depth = <0x06>; + reg = <0x00 0xfea50000 0x00 0x1000>; + phandle = <0x2a0>; + reset-names = "can\0can-apb"; }; - debug@fd104000 { - compatible = "rockchip,debug"; - reg = <0x00 0xfd104000 0x00 0x1000 0x00 0xfd105000 0x00 0x1000 0x00 0xfd106000 0x00 0x1000 0x00 0xfd107000 0x00 0x1000 0x00 0xfd124000 0x00 0x1000 0x00 0xfd125000 0x00 0x1000 0x00 0xfd126000 0x00 0x1000 0x00 0xfd127000 0x00 0x1000>; - phandle = <0x48f>; + pdm@fe4b0000 { + pinctrl-names = "default\0idle\0clk"; + pinctrl-2 = <0x139 0x13a>; + pinctrl-0 = <0x134 0x135 0x136 0x137>; + clock-names = "pdm_clk\0pdm_hclk"; + clocks = <0x02 0x29f 0x02 0x29e>; + dma-names = "rx"; + #sound-dai-cells = <0x00>; + compatible = "rockchip,rk3588-pdm"; + pinctrl-1 = <0x138>; + status = "disabled"; + reg = <0x00 0xfe4b0000 0x00 0x1000>; + phandle = <0x29a>; + dmas = <0x7c 0x04>; }; - fiq-debugger { - compatible = "rockchip,fiq-debugger"; - rockchip,serial-id = <0x02>; - rockchip,wake-irq = <0x00>; - rockchip,irq-mode-enable = <0x01>; - rockchip,baudrate = <0x1c200>; - interrupts = <0x00 0x1a7 0x08>; - pinctrl-names = "default"; - pinctrl-0 = <0x1ce>; - status = "okay"; - phandle = <0x490>; + rkisp-unite-mmu@fdcb7f00 { + power-domains = <0x60 0x1c>; + clock-names = "aclk0\0iface0\0aclk1\0iface1"; + interrupts = <0x00 0x84 0x04 0x00 0x88 0x04>; + clocks = <0x02 0x1de 0x02 0x1df 0x02 0x120 0x02 0x121>; + #iommu-cells = <0x00>; + compatible = "rockchip,iommu-v2"; + rockchip,disable-mmu-reset; + status = "disabled"; + interrupt-names = "isp0_mmu\0isp1_mmu"; + reg = <0x00 0xfdcb7f00 0x00 0x100 0x00 0xfdcc7f00 0x00 0x100>; + phandle = <0xcf>; }; - minidump { - compatible = "rockchip,minidump"; - smem-region = <0x1cf>; - minidump-region = <0x1d0>; - status = "disabled"; - phandle = <0x491>; + syscon@fd5a6000 { + clocks = <0x72>; + compatible = "rockchip,rk3588-vo-grf\0syscon"; + reg = <0x00 0xfd5a6000 0x00 0x2000>; + phandle = <0xf5>; }; - reserved-memory { - #address-cells = <0x02>; - #size-cells = <0x02>; - ranges; + cpus { + #address-cells = <0x01>; + #size-cells = <0x00>; - cma { - compatible = "shared-dma-pool"; - reusable; - size = <0x00 0x800000>; - linux,cma-default; - reg = <0x00 0x10000000 0x00 0x10000000>; + l2-cache-b0 { + cache-size = <0x80000>; + cache-sets = <0x400>; + compatible = "cache"; + cache-line-size = <0x40>; + next-level-cache = <0x1e>; + phandle = <0x17>; }; - drm-logo@00000000 { - compatible = "rockchip,drm-logo"; - reg = <0x00 0x00 0x00 0x00>; - phandle = <0x37>; + l2-cache-l3 { + cache-size = <0x20000>; + cache-sets = <0x200>; + compatible = "cache"; + cache-line-size = <0x40>; + next-level-cache = <0x1e>; + phandle = <0x15>; }; - drm-cubic-lut@00000000 { - compatible = "rockchip,drm-cubic-lut"; - reg = <0x00 0x00 0x00 0x00>; - phandle = <0x492>; + cpu@300 { + d-cache-line-size = <0x40>; + capacity-dmips-mhz = <0x212>; + clocks = <0x0e 0x00>; + i-cache-line-size = <0x40>; + cpu-idle-states = <0x10>; + device_type = "cpu"; + compatible = "arm,cortex-a55"; + d-cache-size = <0x8000>; + next-level-cache = <0x15>; + i-cache-size = <0x8000>; + reg = <0x300>; + enable-method = "psci"; + phandle = <0x09>; + d-cache-sets = <0x80>; + operating-points-v2 = <0x0f>; + i-cache-sets = <0x80>; }; - ramoops@110000 { - compatible = "ramoops"; - reg = <0x00 0x110000 0x00 0xe0000>; - boot-log-size = <0x8000>; - boot-log-count = <0x01>; - console-size = <0x80000>; - pmsg-size = <0x30000>; - ftrace-size = <0x00>; - record-size = <0x14000>; - phandle = <0x493>; + l2-cache-l1 { + cache-size = <0x20000>; + cache-sets = <0x200>; + compatible = "cache"; + cache-line-size = <0x40>; + next-level-cache = <0x1e>; + phandle = <0x13>; }; - minidump-smem@1f0000 { - reg = <0x00 0x1f0000 0x00 0x100>; - no-map; - status = "disabled"; - phandle = <0x1cf>; + cpu@600 { + d-cache-line-size = <0x40>; + capacity-dmips-mhz = <0x400>; + cpu-supply = <0x1c>; + clocks = <0x0e 0x03>; + i-cache-line-size = <0x40>; + cpu-idle-states = <0x10>; + device_type = "cpu"; + compatible = "arm,cortex-a76"; + dynamic-power-coefficient = <0x12c>; + d-cache-size = <0x10000>; + next-level-cache = <0x1b>; + i-cache-size = <0x10000>; + mem-supply = <0x1c>; + reg = <0x600>; + enable-method = "psci"; + phandle = <0x0c>; + d-cache-sets = <0x100>; + operating-points-v2 = <0x1a>; + i-cache-sets = <0x100>; + #cooling-cells = <0x02>; }; - minidump-mem@c000000 { - reg = <0x00 0xc000000 0x00 0x2000000>; - no-map; - status = "disabled"; - phandle = <0x1d0>; + l2-cache-b3 { + cache-size = <0x80000>; + cache-sets = <0x400>; + compatible = "cache"; + cache-line-size = <0x40>; + next-level-cache = <0x1e>; + phandle = <0x1d>; }; - }; - - pcie-essd { - compatible = "regulator-fixed"; - regulator-name = "pcie_essd"; - regulator-min-microvolt = <0x2625a0>; - regulator-max-microvolt = <0x2625a0>; - enable-active-high; - gpios = <0x181 0x0f 0x00>; - startup-delay-us = <0x1388>; - vin-supply = <0x1cd>; - status = "disabled"; - phandle = <0x1ba>; - }; - pcie-clk1 { - compatible = "regulator-fixed"; - regulator-name = "pcie_clk1"; - regulator-boot-on; - regulator-always-on; - gpios = <0x181 0x15 0x01>; - vin-supply = <0x1cd>; - status = "okay"; - phandle = <0x494>; - }; - - pcie-clk2 { - compatible = "regulator-fixed"; - regulator-name = "pcie_clk2"; - regulator-boot-on; - regulator-always-on; - gpios = <0x181 0x16 0x01>; - status = "okay"; - phandle = <0x495>; - }; + idle-states { + entry-method = "psci"; - pcie-clk3 { - compatible = "regulator-fixed"; - regulator-name = "pcie_clk3"; - regulator-boot-on; - regulator-always-on; - gpios = <0xfe 0x09 0x01>; - status = "okay"; - phandle = <0x496>; - }; + cpu-sleep { + entry-latency-us = <0x64>; + local-timer-stop; + exit-latency-us = <0x78>; + arm,psci-suspend-param = <0x10000>; + compatible = "arm,idle-state"; + phandle = <0x10>; + min-residency-us = <0x3e8>; + }; + }; - leds { - compatible = "gpio-leds"; - status = "okay"; - phandle = <0x497>; + cpu-map { - power { - label = ":power"; - linux,default-trigger = "ir-power-click"; - default-state = "on"; - gpios = <0x7b 0x15 0x00>; - status = "disabled"; - phandle = <0x498>; - }; + cluster2 { - user { - label = ":user"; - linux,default-trigger = "ir-user-click"; - default-state = "off"; - gpios = <0x182 0x03 0x00>; - phandle = <0x499>; - }; - }; + core1 { + cpu = <0x0d>; + }; - bt-sco { - status = "disabled"; - compatible = "delta,dfbmcs320"; - #sound-dai-cells = <0x01>; - phandle = <0x1d2>; - }; + core0 { + cpu = <0x0c>; + }; + }; - bt-sound { - status = "disabled"; - compatible = "simple-audio-card"; - simple-audio-card,format = "dsp_a"; - simple-audio-card,bitclock-inversion = <0x00>; - simple-audio-card,mclk-fs = <0x100>; - simple-audio-card,name = "rockchip,bt"; - phandle = <0x49a>; + cluster0 { - simple-audio-card,cpu { - sound-dai = <0x1d1>; - }; + core3 { + cpu = <0x09>; + }; - simple-audio-card,codec { - sound-dai = <0x1d2 0x01>; - }; - }; + core1 { + cpu = <0x07>; + }; - hdmi0-sound { - status = "okay"; - compatible = "rockchip,hdmi"; - rockchip,mclk-fs = <0x80>; - rockchip,card-name = "rockchip-hdmi0"; - rockchip,cpu = <0x1d3>; - rockchip,codec = <0x1d4>; - rockchip,jack-det; - phandle = <0x49b>; - }; + core2 { + cpu = <0x08>; + }; - dp0-sound { - status = "disabled"; - compatible = "rockchip,hdmi"; - rockchip,card-name = "rockchip-dp0"; - rockchip,mclk-fs = <0x200>; - rockchip,cpu = <0x1d5>; - rockchip,codec = <0x1d6 0x01>; - rockchip,jack-det; - phandle = <0x49c>; - }; + core0 { + cpu = <0x06>; + }; + }; - spdif-tx1-dc { - status = "disabled"; - compatible = "linux,spdif-dit"; - #sound-dai-cells = <0x00>; - phandle = <0x1d8>; - }; + cluster1 { - spdif-tx1-sound { - status = "disabled"; - compatible = "simple-audio-card"; - simple-audio-card,mclk-fs = <0x80>; - simple-audio-card,name = "rockchip,spdif-tx1"; - phandle = <0x49d>; + core1 { + cpu = <0x0b>; + }; - simple-audio-card,cpu { - sound-dai = <0x1d7>; + core0 { + cpu = <0x0a>; + }; + }; }; - simple-audio-card,codec { - sound-dai = <0x1d8>; + l3-cache { + cache-size = <0x300000>; + cache-sets = <0x1000>; + compatible = "cache"; + cache-line-size = <0x40>; + phandle = <0x1e>; }; - }; - - adc-keys { - status = "okay"; - compatible = "adc-keys"; - io-channels = <0x1d9 0x01>; - io-channel-names = "buttons"; - keyup-threshold-microvolt = <0x1b7740>; - poll-interval = <0x64>; - phandle = <0x49e>; - recovery-key { - label = "F12"; - linux,code = <0x58>; - press-threshold-microvolt = <0x4268>; + cpu@200 { + d-cache-line-size = <0x40>; + capacity-dmips-mhz = <0x212>; + clocks = <0x0e 0x00>; + i-cache-line-size = <0x40>; + cpu-idle-states = <0x10>; + device_type = "cpu"; + compatible = "arm,cortex-a55"; + d-cache-size = <0x8000>; + next-level-cache = <0x14>; + i-cache-size = <0x8000>; + reg = <0x200>; + enable-method = "psci"; + phandle = <0x08>; + d-cache-sets = <0x80>; + operating-points-v2 = <0x0f>; + i-cache-sets = <0x80>; }; - }; - es8388-sound { - status = "okay"; - compatible = "firefly,multicodecs-card"; - rockchip,card-name = "rockchip-es8388"; - hp-det-gpio = <0x79 0x13 0x00>; - hp-con-gpio = <0x182 0x0b 0x00>; - linein-type = <0x01>; - rockchip,format = "i2s"; - rockchip,mclk-fs = <0x180>; - rockchip,cpu = <0x1da>; - rockchip,codec = <0x1db>; - rockchip,audio-routing = "Headphone\0LOUT1\0Headphone\0ROUT1\0Speaker\0LOUT2\0Speaker\0ROUT2\0Headphone\0Headphone Power\0Headphone\0Headphone Power\0LINPUT2\0Main Mic\0RINPUT2\0Main Mic\0LINPUT1\0Headset Mic\0RINPUT1\0Headset Mic"; - pinctrl-names = "default"; - pinctrl-0 = <0x1dc>; - firefly,not-use-dapm; - phandle = <0x49f>; - }; + l2-cache-b1 { + cache-size = <0x80000>; + cache-sets = <0x400>; + compatible = "cache"; + cache-line-size = <0x40>; + next-level-cache = <0x1e>; + phandle = <0x19>; + }; - vcc5v0-host { - compatible = "regulator-fixed"; - regulator-name = "vcc5v0_host"; - regulator-boot-on; - regulator-always-on; - regulator-min-microvolt = <0x4c4b40>; - regulator-max-microvolt = <0x4c4b40>; - enable-active-high; - gpio = <0x182 0x02 0x00>; - vin-supply = <0x1dd>; - status = "okay"; - phandle = <0x75>; - }; + cpu@500 { + d-cache-line-size = <0x40>; + capacity-dmips-mhz = <0x400>; + clocks = <0x0e 0x02>; + i-cache-line-size = <0x40>; + cpu-idle-states = <0x10>; + device_type = "cpu"; + compatible = "arm,cortex-a76"; + d-cache-size = <0x10000>; + next-level-cache = <0x19>; + i-cache-size = <0x10000>; + reg = <0x500>; + enable-method = "psci"; + phandle = <0x0b>; + d-cache-sets = <0x100>; + operating-points-v2 = <0x16>; + i-cache-sets = <0x100>; + }; - vcc-hub-reset-regulator { - compatible = "regulator-fixed"; - regulator-name = "vcc_hub_reset"; - regulator-boot-on; - regulator-always-on; - enable-active-high; - status = "disabled"; - gpio = <0x182 0x04 0x00>; - phandle = <0x4a0>; - }; + cpu@0 { + d-cache-line-size = <0x40>; + capacity-dmips-mhz = <0x212>; + cpu-supply = <0x12>; + clocks = <0x0e 0x00>; + i-cache-line-size = <0x40>; + cpu-idle-states = <0x10>; + device_type = "cpu"; + compatible = "arm,cortex-a55"; + dynamic-power-coefficient = <0x64>; + d-cache-size = <0x8000>; + next-level-cache = <0x11>; + i-cache-size = <0x8000>; + mem-supply = <0x12>; + reg = <0x00>; + enable-method = "psci"; + phandle = <0x06>; + d-cache-sets = <0x80>; + operating-points-v2 = <0x0f>; + i-cache-sets = <0x80>; + #cooling-cells = <0x02>; + }; - vbus5v0-typec-pwr-en-regulator { - compatible = "regulator-fixed"; - regulator-name = "vbus5v0_typec_pwr_en"; - enable-active-high; - status = "disabled"; - gpio = <0x182 0x0c 0x00>; - phandle = <0x17c>; + l2-cache-l2 { + cache-size = <0x20000>; + cache-sets = <0x200>; + compatible = "cache"; + cache-line-size = <0x40>; + next-level-cache = <0x1e>; + phandle = <0x14>; + }; + + l2-cache-l0 { + cache-size = <0x20000>; + cache-sets = <0x200>; + compatible = "cache"; + cache-line-size = <0x40>; + next-level-cache = <0x1e>; + phandle = <0x11>; + }; + + cpu@100 { + d-cache-line-size = <0x40>; + capacity-dmips-mhz = <0x212>; + clocks = <0x0e 0x00>; + i-cache-line-size = <0x40>; + cpu-idle-states = <0x10>; + device_type = "cpu"; + compatible = "arm,cortex-a55"; + d-cache-size = <0x8000>; + next-level-cache = <0x13>; + i-cache-size = <0x8000>; + reg = <0x100>; + enable-method = "psci"; + phandle = <0x07>; + d-cache-sets = <0x80>; + operating-points-v2 = <0x0f>; + i-cache-sets = <0x80>; + }; + + cpu@400 { + d-cache-line-size = <0x40>; + capacity-dmips-mhz = <0x400>; + cpu-supply = <0x18>; + clocks = <0x0e 0x02>; + i-cache-line-size = <0x40>; + cpu-idle-states = <0x10>; + device_type = "cpu"; + compatible = "arm,cortex-a76"; + dynamic-power-coefficient = <0x12c>; + d-cache-size = <0x10000>; + next-level-cache = <0x17>; + i-cache-size = <0x10000>; + mem-supply = <0x18>; + reg = <0x400>; + enable-method = "psci"; + phandle = <0x0a>; + d-cache-sets = <0x100>; + operating-points-v2 = <0x16>; + i-cache-sets = <0x100>; + #cooling-cells = <0x02>; + }; + + l2-cache-b2 { + cache-size = <0x80000>; + cache-sets = <0x400>; + compatible = "cache"; + cache-line-size = <0x40>; + next-level-cache = <0x1e>; + phandle = <0x1b>; + }; + + cpu@700 { + d-cache-line-size = <0x40>; + capacity-dmips-mhz = <0x400>; + clocks = <0x0e 0x03>; + i-cache-line-size = <0x40>; + cpu-idle-states = <0x10>; + device_type = "cpu"; + compatible = "arm,cortex-a76"; + d-cache-size = <0x10000>; + next-level-cache = <0x1d>; + i-cache-size = <0x10000>; + reg = <0x700>; + enable-method = "psci"; + phandle = <0x0d>; + d-cache-sets = <0x100>; + operating-points-v2 = <0x1a>; + i-cache-sets = <0x100>; + }; }; vcc-hub3-reset-regulator { - compatible = "regulator-fixed"; - regulator-name = "vcc_hub3_reset"; + gpio = <0x182 0x06 0x00>; regulator-always-on; enable-active-high; + regulator-name = "vcc_hub3_reset"; + compatible = "regulator-fixed"; status = "disabled"; - gpio = <0x182 0x06 0x00>; phandle = <0x4a1>; }; - vcc5v0-host3 { - compatible = "regulator-fixed"; - regulator-name = "vcc5v0_host3"; - regulator-boot-on; - regulator-always-on; - regulator-min-microvolt = <0x4c4b40>; - regulator-max-microvolt = <0x4c4b40>; - enable-active-high; - gpio = <0x182 0x07 0x00>; - vin-supply = <0x1dd>; + rkispp1-vir0 { + rockchip,hw = <0x5c>; + compatible = "rockchip,rk3588-rkispp-vir"; status = "disabled"; - phandle = <0x4a2>; + phandle = <0x244>; }; - vcc-sata-pwr-en-regulator { - compatible = "regulator-fixed"; - regulator-name = "vcc_sata_pwr_en"; - regulator-boot-on; - regulator-always-on; - enable-active-high; + saradc@fec10000 { + vref-supply = <0x177>; + clock-names = "saradc\0apb_pclk"; + resets = <0x02 0xbe>; + interrupts = <0x00 0x18e 0x04>; + clocks = <0x02 0x9d 0x02 0x9c>; + #io-channel-cells = <0x01>; + compatible = "rockchip,rk3588-saradc"; status = "okay"; - gpio = <0x182 0x0c 0x00>; - regulator-min-microvolt = <0x325aa0>; - regulator-max-microvolt = <0x325aa0>; - startup-delay-us = <0x1388>; - vin-supply = <0x1cd>; - phandle = <0x4a3>; + reg = <0x00 0xfec10000 0x00 0x10000>; + phandle = <0x1d9>; + reset-names = "saradc-apb"; }; - vcc-fan-pwr-en-regulator { - compatible = "regulator-fixed"; - regulator-name = "vcc_fan_pwr_en"; - regulator-boot-on; - regulator-always-on; - enable-active-high; + rkisp0-vir0 { + rockchip,hw = <0x58>; + compatible = "rockchip,rkisp-vir"; status = "disabled"; - gpio = <0x182 0x0b 0x00>; - phandle = <0x4a4>; - }; - - vcc-sdcard-pwr-en-regulator { - compatible = "regulator-fixed"; - regulator-name = "vcc_sdcard_pwr_en"; - regulator-boot-on; - regulator-always-on; - enable-active-high; - gpio = <0xfe 0x07 0x00>; - status = "okay"; - phandle = <0x4a5>; - }; - - vcc3v3-pcie30 { - compatible = "regulator-fixed"; - regulator-name = "vcc3v3_pcie30"; - regulator-min-microvolt = <0x325aa0>; - regulator-max-microvolt = <0x325aa0>; - enable-active-high; - gpios = <0x182 0x04 0x00>; - startup-delay-us = <0x1388>; - vin-supply = <0x1cd>; - status = "okay"; - phandle = <0x1b8>; - }; - - pcie30-avdd1v8 { - compatible = "regulator-fixed"; - regulator-name = "pcie30_avdd1v8"; - regulator-boot-on; - regulator-always-on; - regulator-min-microvolt = <0x1b7740>; - regulator-max-microvolt = <0x1b7740>; - vin-supply = <0x1de>; - phandle = <0x4a6>; - }; - - pcie30-avdd0v75 { - compatible = "regulator-fixed"; - regulator-name = "pcie30_avdd0v75"; - regulator-boot-on; - regulator-always-on; - regulator-min-microvolt = <0xb71b0>; - regulator-max-microvolt = <0xb71b0>; - vin-supply = <0x1df>; - phandle = <0x4a7>; - }; - - hdmi1-sound { - status = "disabled"; - compatible = "rockchip,hdmi"; - rockchip,mclk-fs = <0x80>; - rockchip,card-name = "rockchip-hdmi1"; - rockchip,cpu = <0x1e0>; - rockchip,codec = <0x1e1>; - rockchip,jack-det; - phandle = <0x4a8>; - }; - - dp1-sound { - status = "disabled"; - compatible = "rockchip,hdmi"; - rockchip,card-name = "rockchip,dp1"; - rockchip,mclk-fs = <0x200>; - rockchip,cpu = <0x1e2>; - rockchip,codec = <0x1e3 0x01>; - rockchip,jack-det; - phandle = <0x4a9>; - }; - - wireless-bluetooth { - compatible = "bluetooth-platdata"; - clocks = <0x1e4>; - clock-names = "ext_clock"; - uart_rts_gpios = <0xfe 0x02 0x01>; - pinctrl-names = "default\0rts_gpio"; - pinctrl-0 = <0x1e5 0x1e6 0x1e7 0x1e8>; - pinctrl-1 = <0x1e9>; - BT,power_gpio = <0x7b 0x16 0x00>; - BT,wake_gpio = <0x7b 0x15 0x00>; - BT,wake_host_irq = <0x7b 0x00 0x00>; - status = "disabled"; - phandle = <0x4aa>; - }; - - wireless-wlan { - compatible = "wlan-platdata"; - wifi_chip_type = "rtl8822ce"; - pinctrl-names = "default"; - pinctrl-0 = <0x1ea>; - WIFI,host_wake_irq = <0x182 0x0a 0x00>; - status = "okay"; - phandle = <0x4ab>; - }; - - hdmiin-sound { - compatible = "rockchip,hdmi"; - rockchip,mclk-fs = <0x80>; - rockchip,format = "i2s"; - rockchip,bitclock-master = <0x1eb>; - rockchip,frame-master = <0x1eb>; - rockchip,card-name = "rockchip,hdmiin"; - rockchip,cpu = <0x1ec>; - rockchip,codec = <0x1eb 0x00>; - rockchip,jack-det; - phandle = <0x4ac>; - }; - - pwm-fan { - compatible = "pwm-fan"; - #cooling-cells = <0x02>; - fan-supply = <0x78>; - pwms = <0x1ed 0x00 0xc350 0x00>; - cooling-levels = <0x32 0x32 0x64 0x96 0xc8 0xff>; - rockchip,temp-trips = <0xc350 0x01 0xd6d8 0x02 0xea60 0x03 0xfde8 0x04 0x11170 0x05>; - phandle = <0x4ad>; - }; - - mod-sleep-regulator { - compatible = "regulator-fixed"; - regulator-name = "mod_sleep"; - regulator-boot-on; - regulator-always-on; - enable-active-high; - status = "okay"; - gpio = <0x7b 0x15 0x00>; - pinctrl-names = "default"; - pinctrl-0 = <0x1ee>; - phandle = <0x4ae>; - - regulator-state-mem { - regulator-on-in-suspend; - }; - }; - - vcc-hub-regulator { - compatible = "regulator-fixed"; - regulator-name = "vcc_hub"; - regulator-boot-on; - regulator-always-on; - enable-active-high; - status = "okay"; - gpio = <0x182 0x01 0x00>; - phandle = <0x4af>; - }; - - vcc-4g-regulator { - compatible = "regulator-fixed"; - regulator-name = "vcc_4g"; - regulator-boot-on; - regulator-always-on; - enable-active-high; - status = "okay"; - gpio = <0x182 0x00 0x00>; - phandle = <0x4b0>; - }; - - usb-5v { - compatible = "regulator-fixed"; - regulator-name = "usb_5v"; - regulator-boot-on; - regulator-always-on; - enable-active-high; - status = "okay"; - gpio = <0xfe 0x03 0x00>; - pinctrl-names = "default"; - pinctrl-0 = <0x1ef>; - phandle = <0x4b1>; - }; - - cam0-cam1-switch { - compatible = "regulator-fixed"; - regulator-name = "cam0_cam1_switch"; - regulator-min-microvolt = <0x1b7740>; - regulator-max-microvolt = <0x1b7740>; - regulator-boot-on; - regulator-always-on; - status = "okay"; - enable-active-high; - gpio = <0x181 0x11 0x00>; - pinctrl-names = "default"; - pinctrl-0 = <0x1f0>; - phandle = <0x4b2>; + phandle = <0x23b>; }; __symbols__ { - spll = "/clocks/spll"; - xin32k = "/clocks/xin32k"; - xin24m = "/clocks/xin24m"; - hclk_vo1 = "/clocks/hclk_vo1@fd7c08ec"; - aclk_vdpu_low_pre = "/clocks/aclk_vdpu_low_pre@fd7c08b0"; - hclk_vo0 = "/clocks/hclk_vo0@fd7c08dc"; - hclk_usb = "/clocks/hclk_usb@fd7c08a8"; - hclk_nvm = "/clocks/hclk_nvm@fd7c087c"; - aclk_usb = "/clocks/aclk_usb@fd7c08a8"; - hclk_isp1_pre = "/clocks/hclk_isp1_pre@fd7c0868"; - aclk_isp1_pre = "/clocks/aclk_isp1_pre@fd7c0868"; - aclk_rkvdec0_pre = "/clocks/aclk_rkvdec0_pre@fd7c08a0"; - hclk_rkvdec0_pre = "/clocks/hclk_rkvdec0_pre@fd7c08a0"; - aclk_rkvdec1_pre = "/clocks/aclk_rkvdec1_pre@fd7c08a4"; - hclk_rkvdec1_pre = "/clocks/hclk_rkvdec1_pre@fd7c08a4"; - aclk_jpeg_decoder_pre = "/clocks/aclk_jpeg_decoder_pre@fd7c08b0"; - aclk_rkvenc1_pre = "/clocks/aclk_rkvenc1_pre@fd7c08c0"; - hclk_rkvenc1_pre = "/clocks/hclk_rkvenc1_pre@fd7c08c0"; - aclk_hdcp0_pre = "/clocks/aclk_hdcp0_pre@fd7c08dc"; - aclk_hdcp1_pre = "/clocks/aclk_hdcp1_pre@fd7c08ec"; - pclk_av1_pre = "/clocks/pclk_av1_pre@fd7c0910"; - aclk_av1_pre = "/clocks/aclk_av1_pre@fd7c0910"; - hclk_sdio_pre = "/clocks/hclk_sdio_pre@fd7c092c"; - pclk_vo0_grf = "/clocks/pclk_vo0_grf@fd7c08dc"; - pclk_vo1_grf = "/clocks/pclk_vo1_grf@fd7c08ec"; + i2s2m0_lrck = "/pinctrl/i2s2/i2s2m0-lrck"; + i2c3 = "/i2c@feab0000"; + scmi_shmem = "/sram@10f000/sram@0"; + rkispp0_vir0 = "/rkispp0-vir0"; + qos_jpeg_enc0 = "/qos@fdf66400"; + i2s1m1_sdi1 = "/pinctrl/i2s1/i2s1m1-sdi1"; + dp_altmode_mux = "/i2c@fec80000/fusb302@22/connector/ports/port@1/endpoint"; + pmic_pins = "/pinctrl/pmic/pmic-pins"; + usb_host1_ohci = "/usb@fc8c0000"; + pwm9 = "/pwm@febe0010"; + i2c6m4_xfer = "/pinctrl/i2c6/i2c6m4-xfer"; + leds_gpio = "/pinctrl/leds/leds-gpio"; + i2c3m3_xfer = "/pinctrl/i2c3/i2c3m3-xfer"; + qos_usb3_1 = "/qos@fdf3e000"; + hdmi_debug4 = "/pinctrl/hdmi/hdmi-debug4"; + i2c0m2_xfer = "/pinctrl/i2c0/i2c0m2-xfer"; + gmac0_rgmii_bus = "/pinctrl/gmac0/gmac0-rgmii-bus"; + pcie30x2m2_pins = "/pinctrl/pcie30x2/pcie30x2m2-pins"; + sdmmc_clk = "/pinctrl/sdmmc/sdmmc-clk"; + spi0m3_cs0 = "/pinctrl/spi0/spi0m3-cs0"; + hwlock = "/hwspinlock@fe5a0000"; + pcie3x2 = "/pcie@fe160000"; + i2s2m1_mclk = "/pinctrl/i2s2/i2s2m1-mclk"; + mipim0_camera3_clk = "/pinctrl/mipi/mipim0-camera3-clk"; mclkin_i2s0 = "/clocks/mclkin-i2s0"; - mclkin_i2s1 = "/clocks/mclkin-i2s1"; - mclkin_i2s2 = "/clocks/mclkin-i2s2"; - mclkin_i2s3 = "/clocks/mclkin-i2s3"; - mclkout_i2s0 = "/clocks/mclkout-i2s0@fd58c318"; - mclkout_i2s1 = "/clocks/mclkout-i2s1@fd58c318"; - mclkout_i2s1m1 = "/clocks/mclkout-i2s1@fd58a000"; - mclkout_i2s2 = "/clocks/mclkout-i2s2@fd58c318"; - mclkout_i2s3 = "/clocks/mclkout-i2s3@fd58c318"; - cpu_l0 = "/cpus/cpu@0"; - cpu_l1 = "/cpus/cpu@100"; - cpu_l2 = "/cpus/cpu@200"; - cpu_l3 = "/cpus/cpu@300"; - cpu_b0 = "/cpus/cpu@400"; - cpu_b1 = "/cpus/cpu@500"; - cpu_b2 = "/cpus/cpu@600"; - cpu_b3 = "/cpus/cpu@700"; - CPU_SLEEP = "/cpus/idle-states/cpu-sleep"; - l2_cache_l0 = "/cpus/l2-cache-l0"; - l2_cache_l1 = "/cpus/l2-cache-l1"; - l2_cache_l2 = "/cpus/l2-cache-l2"; - l2_cache_l3 = "/cpus/l2-cache-l3"; - l2_cache_b0 = "/cpus/l2-cache-b0"; - l2_cache_b1 = "/cpus/l2-cache-b1"; + edp1_in_vp1 = "/edp@fded0000/ports/port@0/endpoint@1"; + rkvenc0_mmu = "/iommu@fdbdf000"; + pwm14 = "/pwm@febf0020"; + rk806_dvs2_rst = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs2_rst"; + mipi2_csi2 = "/mipi2-csi2"; + can2m1_pins = "/pinctrl/can2/can2m1-pins"; + pcie2x1l1 = "/pcie@fe180000"; + hdmi0_in_vp2 = "/hdmi@fde80000/ports/port@0/endpoint@2"; + qos_rkvenc0_m2wo = "/qos@fdf60400"; + pwm3m2_pins = "/pinctrl/pwm3/pwm3m2-pins"; + optee = "/firmware/optee"; l2_cache_b2 = "/cpus/l2-cache-b2"; - l2_cache_b3 = "/cpus/l2-cache-b3"; - l3_cache = "/cpus/l3-cache"; - cluster0_opp_table = "/cluster0-opp-table"; - cluster1_opp_table = "/cluster1-opp-table"; - cluster2_opp_table = "/cluster2-opp-table"; - arm_pmu = "/arm-pmu"; - csi2_dcphy0 = "/csi2-dcphy0"; - csi2_dcphy1 = "/csi2-dcphy1"; - csi2_dphy0 = "/csi2-dphy0"; - mipidphy0_in_ucam0 = "/csi2-dphy0/ports/port@0/endpoint@0"; - mipidphy0_in_ucam1 = "/csi2-dphy0/ports/port@0/endpoint@1"; - csidphy0_out1 = "/csi2-dphy0/ports/port@1/endpoint@0"; - csidphy0_out = "/csi2-dphy0/ports/port@1/endpoint@0"; + pwm0m1_pins = "/pinctrl/pwm0/pwm0m1-pins"; + vdpu = "/vdpu@fdb50400"; + i2s3_sdo = "/pinctrl/i2s3/i2s3-sdo"; + usbdp_phy0_u3 = "/phy@fed80000/u3-port"; + thermal_zones = "/thermal-zones"; + hdmim2_rx_scl = "/pinctrl/hdmi/hdmim2-rx-scl"; + hdmim2_rx_sda = "/pinctrl/hdmi/hdmim2-rx-sda"; + uart9m0_rtsn = "/pinctrl/uart9/uart9m0-rtsn"; + spi1m2_cs0 = "/pinctrl/spi1/spi1m2-cs0"; + pcie2x1l1_intc = "/pcie@fe180000/legacy-interrupt-controller"; + spdif1m1_tx = "/pinctrl/spdif1/spdif1m1-tx"; + venc_opp_info = "/otp@fecc0000/venc-opp-info@67"; + qos_iep = "/qos@fdf66000"; + pcfg_pull_none_drv_level_3 = "/pinctrl/pcfg-pull-none-drv-level-3"; + spi3m2_cs1 = "/pinctrl/spi3/spi3m2-cs1"; + uart4m2_xfer = "/pinctrl/uart4/uart4m2-xfer"; + vp1 = "/vop@fdd90000/ports/port@1"; + bigcore1_grf = "/syscon@fd592000"; + uart1m1_xfer = "/pinctrl/uart1/uart1m1-xfer"; + uart5m1_ctsn = "/pinctrl/uart5/uart5m1-ctsn"; + fspim1_pins = "/pinctrl/fspi/fspim1-pins"; + cpu_l1 = "/cpus/cpu@100"; + uart8 = "/serial@febb0000"; + rkisp1_vir3 = "/rkisp1-vir3"; + qos_vop_m1 = "/qos@fdf82200"; + pcie_clk2 = "/pcie-clk2"; + cluster2_opp_table = "/cluster2-opp-table"; + usb_grf = "/syscon@fd5ac000"; + pcfg_pull_none_smt = "/pinctrl/pcfg-pull-none-smt"; + jpege0_mmu = "/iommu@fdba0800"; + spi2m1_cs0 = "/pinctrl/spi2/spi2m1-cs0"; + u2phy3 = "/syscon@fd5dc000/usb2-phy@c000"; + power_led = "/leds/power"; + aclk_usb = "/clocks/aclk_usb@fd7c08a8"; csi2_dphy1 = "/csi2-dphy1"; - csi2_dphy2 = "/csi2-dphy2"; - csi2_dphy3 = "/csi2-dphy3"; - csi2_dphy4 = "/csi2-dphy4"; - csi2_dphy5 = "/csi2-dphy5"; - display_subsystem = "/display-subsystem"; - route_dp0 = "/display-subsystem/route/route-dp0"; - route_dsi0 = "/display-subsystem/route/route-dsi0"; - route_dsi1 = "/display-subsystem/route/route-dsi1"; - route_edp0 = "/display-subsystem/route/route-edp0"; + spi2 = "/spi@feb20000"; + uart2_rtsn = "/pinctrl/uart2/uart2-rtsn"; + spi4m1_cs1 = "/pinctrl/spi4/spi4m1-cs1"; + pcfg_pull_up_drv_level_15 = "/pinctrl/pcfg-pull-up-drv-level-15"; + vo1_grf = "/syscon@fd5a8000"; + pcie_essd = "/pcie-essd"; + i2c4m3_xfer = "/pinctrl/i2c4/i2c4m3-xfer"; + gpio0 = "/pinctrl/gpio@fd8a0000"; + saradc = "/saradc@fec10000"; + i2s1m0_sdi3 = "/pinctrl/i2s1/i2s1m0-sdi3"; + i2c1m2_xfer = "/pinctrl/i2c1/i2c1m2-xfer"; + csidphy0_out = "/csi2-dphy0/ports/port@1/endpoint@0"; + emmc_rstnout = "/pinctrl/emmc/emmc-rstnout"; + mclkout_i2s3 = "/clocks/mclkout-i2s3@fd58c318"; + xc7160_out0 = "/i2c@fec80000/XC7160b@1b/port/endpoint"; + rkcif_mipi_lvds1_sditf_vir1 = "/rkcif-mipi-lvds1-sditf-vir1"; + dsi1 = "/dsi@fde30000"; + venc_opp_table = "/venc-opp-table"; + qos_isp0_mwo = "/qos@fdf40500"; + pmu_pins = "/pinctrl/pmu/pmu-pins"; + gmac0_miim = "/pinctrl/gmac0/gmac0-miim"; + spi3m0_cs0 = "/pinctrl/spi3/spi3m0-cs0"; + mipi_dcphy0 = "/mipi-dcphy-dummy"; + minidump_mem = "/reserved-memory/minidump-mem@c000000"; + avdd_1v2_s0 = "/spi@feb20000/rk806single@0/regulators/PLDO_REG3"; + pwm7m3_pins = "/pinctrl/pwm7/pwm7m3-pins"; route_edp1 = "/display-subsystem/route/route-edp1"; - route_hdmi0 = "/display-subsystem/route/route-hdmi0"; - route_rgb = "/display-subsystem/route/route-rgb"; - route_dp1 = "/display-subsystem/route/route-dp1"; - route_hdmi1 = "/display-subsystem/route/route-hdmi1"; - dmc = "/dmc"; - dmc_opp_table = "/dmc-opp-table"; - scmi = "/firmware/scmi"; - scmi_clk = "/firmware/scmi/protocol@14"; - scmi_reset = "/firmware/scmi/protocol@16"; + hdmi1 = "/hdmi@fdea0000"; + crypto = "/crypto@fe370000"; + hdmi1_in_vp2 = "/hdmi@fdea0000/ports/port@0/endpoint@2"; + dfi = "/dfi@fe060000"; + can0m0_pins = "/pinctrl/can0/can0m0-pins"; + pcfg_pull_up_drv_level_2 = "/pinctrl/pcfg-pull-up-drv-level-2"; + pinctrl = "/pinctrl"; + rgmii_phy0 = "/ethernet@fe1b0000/mdio/phy@1"; + pcfg_pull_down_drv_level_6 = "/pinctrl/pcfg-pull-down-drv-level-6"; + dp0m0_pins = "/pinctrl/dp0/dp0m0-pins"; + i2s0_sdo3 = "/pinctrl/i2s0/i2s0-sdo3"; + vcc_sata_pwr_en = "/vcc-sata-pwr-en-regulator"; + pwm1m1_pins = "/pinctrl/pwm1/pwm1m1-pins"; + pcie30_avdd1v8 = "/pcie30-avdd1v8"; + usb2phy3_grf = "/syscon@fd5dc000"; + u2phy2_host = "/syscon@fd5d8000/usb2-phy@8000/host-port"; + hym8563_int = "/pinctrl/hym8563/hym8563-int"; + mailbox1 = "/mailbox@fec70000"; + pdm0m1_sdi3 = "/pinctrl/pdm0/pdm0m1-sdi3"; + combphy1_ps = "/phy@fee10000"; + hdptxphy0_grf = "/syscon@fd5e0000"; sdei = "/firmware/sdei"; - optee = "/firmware/optee"; - jpege_ccu = "/jpege-ccu"; - mipi_dcphy1 = "/mipi-dcphy-dummy"; - mipi_dcphy0 = "/mipi-dcphy-dummy"; - mipi0_csi2 = "/mipi0-csi2"; - mipi1_csi2 = "/mipi1-csi2"; - mipi2_csi2 = "/mipi2-csi2"; - mipi2_csi2_input1 = "/mipi2-csi2/ports/port@0/endpoint@0"; - mipi2_csi2_input0 = "/mipi2-csi2/ports/port@0/endpoint@0"; - mipi2_csi2_output1 = "/mipi2-csi2/ports/port@1/endpoint@0"; - mipi2_csi2_output = "/mipi2-csi2/ports/port@1/endpoint@0"; - mipi3_csi2 = "/mipi3-csi2"; - mipi4_csi2 = "/mipi4-csi2"; - mipi5_csi2 = "/mipi5-csi2"; - mpp_srv = "/mpp-srv"; - rkcif_dvp = "/rkcif-dvp"; - rkcif_dvp_sditf = "/rkcif-dvp-sditf"; - rkcif_mipi_lvds = "/rkcif-mipi-lvds"; - rkcif_mipi_lvds_sditf = "/rkcif-mipi-lvds-sditf"; - rkcif_mipi_lvds_sditf_vir1 = "/rkcif-mipi-lvds-sditf-vir1"; - rkcif_mipi_lvds_sditf_vir2 = "/rkcif-mipi-lvds-sditf-vir2"; - rkcif_mipi_lvds_sditf_vir3 = "/rkcif-mipi-lvds-sditf-vir3"; - rkcif_mipi_lvds1 = "/rkcif-mipi-lvds1"; - rkcif_mipi_lvds1_sditf = "/rkcif-mipi-lvds1-sditf"; - rkcif_mipi_lvds1_sditf_vir1 = "/rkcif-mipi-lvds1-sditf-vir1"; - rkcif_mipi_lvds1_sditf_vir2 = "/rkcif-mipi-lvds1-sditf-vir2"; - rkcif_mipi_lvds1_sditf_vir3 = "/rkcif-mipi-lvds1-sditf-vir3"; - rkcif_mipi_lvds2 = "/rkcif-mipi-lvds2"; - cif_mipi2_in1 = "/rkcif-mipi-lvds2/port/endpoint"; - cif_mipi2_in0 = "/rkcif-mipi-lvds2/port/endpoint"; - rkcif_mipi_lvds2_sditf = "/rkcif-mipi-lvds2-sditf"; - mipi2_lvds2_sditf = "/rkcif-mipi-lvds2-sditf/port/endpoint"; - rkcif_mipi_lvds2_sditf_vir1 = "/rkcif-mipi-lvds2-sditf-vir1"; - rkcif_mipi_lvds2_sditf_vir2 = "/rkcif-mipi-lvds2-sditf-vir2"; - rkcif_mipi_lvds2_sditf_vir3 = "/rkcif-mipi-lvds2-sditf-vir3"; - rkcif_mipi_lvds3 = "/rkcif-mipi-lvds3"; - rkcif_mipi_lvds3_sditf = "/rkcif-mipi-lvds3-sditf"; - rkcif_mipi_lvds3_sditf_vir1 = "/rkcif-mipi-lvds3-sditf-vir1"; - rkcif_mipi_lvds3_sditf_vir2 = "/rkcif-mipi-lvds3-sditf-vir2"; - rkcif_mipi_lvds3_sditf_vir3 = "/rkcif-mipi-lvds3-sditf-vir3"; - rkisp0_vir0 = "/rkisp0-vir0"; - rkisp0_vir1 = "/rkisp0-vir1"; - rkisp0_vir2 = "/rkisp0-vir2"; - isp0_vir2 = "/rkisp0-vir2/port/endpoint@0"; - rkisp0_vir3 = "/rkisp0-vir3"; - rkisp1_vir0 = "/rkisp1-vir0"; - rkisp1_vir1 = "/rkisp1-vir1"; - rkisp1_vir2 = "/rkisp1-vir2"; - rkisp1_vir3 = "/rkisp1-vir3"; - rkispp0_vir0 = "/rkispp0-vir0"; - rkispp1_vir0 = "/rkispp1-vir0"; - rkvenc_ccu = "/rkvenc-ccu"; - rkvtunnel = "/rkvtunnel"; - rockchip_suspend = "/rockchip-suspend"; + vp0_out_dp1 = "/vop@fdd90000/ports/port@0/endpoint@3"; + uart5m2_xfer = "/pinctrl/uart5/uart5m2-xfer"; + uart9m2_ctsn = "/pinctrl/uart9/uart9m2-ctsn"; + uart2m1_xfer = "/pinctrl/uart2/uart2m1-xfer"; + dp0_out = "/dp@fde50000/ports/port@1/endpoint"; + uart6m1_ctsn = "/pinctrl/uart6/uart6m1-ctsn"; + route_rgb = "/display-subsystem/route/route-rgb"; + csidphy0_out1 = "/csi2-dphy0/ports/port@1/endpoint@0"; + i2c1 = "/i2c@fea90000"; + pinctrl_rk806 = "/spi@feb20000/rk806single@0/pinctrl_rk806"; + cpu_code = "/otp@fecc0000/cpu-code@2"; + pwm7 = "/pwm@febd0030"; + mipi5_csi2_hw = "/mipi5-csi2-hw@fdd60000"; + gpu_leakage = "/otp@fecc0000/gpu-leakage@1b"; + hdmi_debug2 = "/pinctrl/hdmi/hdmi-debug2"; + pdm0m0_clk = "/pinctrl/pdm0/pdm0m0-clk"; + gmac0_ppsclk = "/pinctrl/gmac0/gmac0-ppsclk"; + i2c8m4_xfer = "/pinctrl/i2c8/i2c8m4-xfer"; + vdd_npu_s0 = "/i2c@fea90000/rk8602@42"; + i2c5m3_xfer = "/pinctrl/i2c5/i2c5m3-xfer"; + gmac0 = "/ethernet@fe1b0000"; + i2c2m2_xfer = "/pinctrl/i2c2/i2c2m2-xfer"; rockchip_system_monitor = "/rockchip-system-monitor"; - thermal_zones = "/thermal-zones"; - soc_thermal = "/thermal-zones/soc-thermal"; - threshold = "/thermal-zones/soc-thermal/trips/trip-point-0"; + pcie30x4m2_pins = "/pinctrl/pcie30x4/pcie30x4m2-pins"; + pwm12 = "/pwm@febf0000"; + emmc_cmd = "/pinctrl/emmc/emmc-cmd"; + i2s1_8ch = "/i2s@fe480000"; + pcie30x1m1_pins = "/pinctrl/pcie30x1/pcie30x1m1-pins"; + uart4_ctsn = "/pinctrl/uart4/uart4-ctsn"; + vdd_cpu_big0_mem_s0 = "/i2c@fd880000/rk8602@42"; + pcfg_pull_none = "/pinctrl/pcfg-pull-none"; + i2s1m0_mclk = "/pinctrl/i2s1/i2s1m0-mclk"; + vp1_out_edp1 = "/vop@fdd90000/ports/port@1/endpoint@4"; + hdmi0_in_vp0 = "/hdmi@fde80000/ports/port@0/endpoint@0"; + vcc_4g = "/vcc-4g-regulator"; + firefly_leds = "/leds"; + jpege3 = "/jpege-core@fdbac000"; + l2_cache_b0 = "/cpus/l2-cache-b0"; + pmu1_grf = "/syscon@fd58a000"; + aclk_rkvenc1_pre = "/clocks/aclk_rkvenc1_pre@fd7c08c0"; + can1m0_pins = "/pinctrl/can1/can1m0-pins"; + spi0m3_pins = "/pinctrl/spi0/spi0m3-pins"; + pwm5m2_pins = "/pinctrl/pwm5/pwm5m2-pins"; + mipidphy0_in_ucam1 = "/csi2-dphy0/ports/port@0/endpoint@1"; + i2s0_lrck = "/pinctrl/i2s0/i2s0-lrck"; + clk32k_out0 = "/pinctrl/clk32k/clk32k-out0"; + dp1m0_pins = "/pinctrl/dp1/dp1m0-pins"; + pwm2m1_pins = "/pinctrl/pwm2/pwm2m1-pins"; + usbc0 = "/i2c@fec80000/fusb302@22"; + eth1_pins = "/pinctrl/eth1/eth1-pins"; + pcfg_pull_none_drv_level_1 = "/pinctrl/pcfg-pull-none-drv-level-1"; + csi2_dphy0_hw = "/csi2-dphy0-hw@fedc0000"; + pdm1m1_sdi3 = "/pinctrl/pdm1/pdm1m1-sdi3"; + dsi0_in_vp3 = "/dsi@fde20000/ports/port@0/endpoint@1"; + hdmim1_tx1_cec = "/pinctrl/hdmi/hdmim1-tx1-cec"; + usbc0_role_sw = "/i2c@fec80000/fusb302@22/ports/port@0/endpoint@0"; + uart6 = "/serial@feb90000"; + rkisp1_vir1 = "/rkisp1-vir1"; + sdhci = "/mmc@fe2e0000"; + uart6m2_xfer = "/pinctrl/uart6/uart6m2-xfer"; target = "/thermal-zones/soc-thermal/trips/trip-point-1"; - soc_crit = "/thermal-zones/soc-thermal/trips/soc-crit"; - bigcore0_thermal = "/thermal-zones/bigcore0-thermal"; - bigcore1_thermal = "/thermal-zones/bigcore1-thermal"; - little_core_thermal = "/thermal-zones/littlecore-thermal"; - center_thermal = "/thermal-zones/center-thermal"; - gpu_thermal = "/thermal-zones/gpu-thermal"; - npu_thermal = "/thermal-zones/npu-thermal"; - scmi_shmem = "/sram@10f000/sram@0"; + rkcif_mipi_lvds_sditf_vir3 = "/rkcif-mipi-lvds-sditf-vir3"; + pcfg_pull_none_drv_level_0_smt = "/pinctrl/pcfg-pull-none-drv-level-0-smt"; + uart3m1_xfer = "/pinctrl/uart3/uart3m1-xfer"; + uart7m1_ctsn = "/pinctrl/uart7/uart7m1-ctsn"; + uart0m0_xfer = "/pinctrl/uart0/uart0m0-xfer"; + rgb_in_vp3 = "/syscon@fd58c000/rgb/ports/port@0/endpoint@2"; + rkcif_mipi_lvds5_sditf_vir2 = "/rkcif-mipi-lvds5-sditf-vir2"; + u2phy1 = "/syscon@fd5d4000/usb2-phy@4000"; + i2s5_8ch = "/i2s@fddf0000"; + i2s2m0_sdo = "/pinctrl/i2s2/i2s2m0-sdo"; gpu = "/gpu@fb000000"; - gpu_opp_table = "/gpu-opp-table"; - usbdrd3_0 = "/usbdrd3_0"; - usbdrd_dwc3_0 = "/usbdrd3_0/usb@fc000000"; - dwc3_0_role_switch = "/usbdrd3_0/usb@fc000000/port/endpoint@0"; - usb_host0_ehci = "/usb@fc800000"; + spi0 = "/spi@feb00000"; + iep = "/iep@fdbb0000"; + pcfg_pull_up_drv_level_13 = "/pinctrl/pcfg-pull-up-drv-level-13"; + spdif_tx5 = "/spdif-tx@fddb8000"; + hdptxphy_hdmi_clk1 = "/hdmiphy@fed70000/clk-port"; + drm_logo = "/reserved-memory/drm-logo@00000000"; + i2s1m0_sdi1 = "/pinctrl/i2s1/i2s1m0-sdi1"; + rk806_dvs3_null = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs3_null"; + gmac1_ppsclk = "/pinctrl/gmac1/gmac1-ppsclk"; usb_host0_ohci = "/usb@fc840000"; - usb_host1_ehci = "/usb@fc880000"; - usb_host1_ohci = "/usb@fc8c0000"; - mmu600_pcie = "/iommu@fc900000"; - mmu600_php = "/iommu@fcb00000"; - usbhost3_0 = "/usbhost3_0"; - usbhost_dwc3_0 = "/usbhost3_0/usb@fcd00000"; - pmu0_grf = "/syscon@fd588000"; - reboot_mode = "/syscon@fd588000/reboot-mode"; - pmu1_grf = "/syscon@fd58a000"; - sys_grf = "/syscon@fd58c000"; - rgb = "/syscon@fd58c000/rgb"; - rgb_in_vp3 = "/syscon@fd58c000/rgb/ports/port@0/endpoint@2"; - bigcore0_grf = "/syscon@fd590000"; - bigcore1_grf = "/syscon@fd592000"; - litcore_grf = "/syscon@fd594000"; - dsu_grf = "/syscon@fd598000"; - gpu_grf = "/syscon@fd5a0000"; - npu_grf = "/syscon@fd5a2000"; - vop_grf = "/syscon@fd5a4000"; - vo0_grf = "/syscon@fd5a6000"; - vo1_grf = "/syscon@fd5a8000"; - usb_grf = "/syscon@fd5ac000"; - php_grf = "/syscon@fd5b0000"; - mipidphy0_grf = "/syscon@fd5b4000"; - mipidphy1_grf = "/syscon@fd5b5000"; - pipe_phy0_grf = "/syscon@fd5bc000"; - pipe_phy2_grf = "/syscon@fd5c4000"; - usbdpphy0_grf = "/syscon@fd5c8000"; - usb2phy0_grf = "/syscon@fd5d0000"; - u2phy0 = "/syscon@fd5d0000/usb2-phy@0"; - u2phy0_otg = "/syscon@fd5d0000/usb2-phy@0/otg-port"; - usb2phy2_grf = "/syscon@fd5d8000"; - u2phy2 = "/syscon@fd5d8000/usb2-phy@8000"; - u2phy2_host = "/syscon@fd5d8000/usb2-phy@8000/host-port"; - usb2phy3_grf = "/syscon@fd5dc000"; - u2phy3 = "/syscon@fd5dc000/usb2-phy@c000"; - u2phy3_host = "/syscon@fd5dc000/usb2-phy@c000/host-port"; - hdptxphy0_grf = "/syscon@fd5e0000"; + mclkout_i2s1 = "/clocks/mclkout-i2s1@fd58c318"; + i2c6m3_xfer = "/pinctrl/i2c6/i2c6m3-xfer"; + i2c3m2_xfer = "/pinctrl/i2c3/i2c3m2-xfer"; + vop_opp_info = "/otp@fecc0000/vop-opp-info@61"; + cif_dvp_bus16 = "/pinctrl/cif/cif-dvp-bus16"; + i2c0m1_xfer = "/pinctrl/i2c0/i2c0m1-xfer"; + pcie30x2m1_pins = "/pinctrl/pcie30x2/pcie30x2m1-pins"; mipidcphy0_grf = "/syscon@fd5e8000"; - mipidcphy1_grf = "/syscon@fd5ec000"; - ioc = "/syscon@fd5f0000"; - cru = "/clock-controller@fd7c0000"; - i2c0 = "/i2c@fd880000"; - vdd_cpu_big0_s0 = "/i2c@fd880000/rk8602@42"; - vdd_cpu_big0_mem_s0 = "/i2c@fd880000/rk8602@42"; - vdd_cpu_big1_s0 = "/i2c@fd880000/rk8603@43"; vdd_cpu_big1_mem_s0 = "/i2c@fd880000/rk8603@43"; - hym8563 = "/i2c@fd880000/hym8563@51"; - uart0 = "/serial@fd890000"; - pwm0 = "/pwm@fd8b0000"; - pwm1 = "/pwm@fd8b0010"; - pwm2 = "/pwm@fd8b0020"; - pwm3 = "/pwm@fd8b0030"; - pmu = "/power-management@fd8d8000"; - power = "/power-management@fd8d8000/power-controller"; - rknpu = "/npu@fdab0000"; - npu_opp_table = "/npu-opp-table"; - rknpu_mmu = "/iommu@fdab9000"; - vepu = "/vepu@fdb50000"; - vdpu = "/vdpu@fdb50400"; - vdpu_mmu = "/iommu@fdb50800"; - avsd = "/avsd-plus@fdb51000"; - rga3_core0 = "/rga@fdb60000"; - rga3_0_mmu = "/iommu@fdb60f00"; - rga3_core1 = "/rga@fdb70000"; - rga3_1_mmu = "/iommu@fdb70f00"; - rga2 = "/rga@fdb80000"; - jpegd = "/jpegd@fdb90000"; - jpegd_mmu = "/iommu@fdb90480"; - jpege0 = "/jpege-core@fdba0000"; - jpege0_mmu = "/iommu@fdba0800"; - jpege1 = "/jpege-core@fdba4000"; - jpege1_mmu = "/iommu@fdba4800"; - jpege2 = "/jpege-core@fdba8000"; - jpege2_mmu = "/iommu@fdba8800"; - jpege3 = "/jpege-core@fdbac000"; - jpege3_mmu = "/iommu@fdbac800"; - iep = "/iep@fdbb0000"; - iep_mmu = "/iommu@fdbb0800"; - rkvenc0 = "/rkvenc-core@fdbd0000"; - rkvenc0_mmu = "/iommu@fdbdf000"; - rkvenc1 = "/rkvenc-core@fdbe0000"; - rkvenc1_mmu = "/iommu@fdbef000"; - venc_opp_table = "/venc-opp-table"; - rkvdec_ccu = "/rkvdec-ccu@fdc30000"; - rkvdec0 = "/rkvdec-core@fdc38000"; - rkvdec0_mmu = "/iommu@fdc38700"; - rkvdec1 = "/rkvdec-core@fdc48000"; - rkvdec1_mmu = "/iommu@fdc48700"; - av1d = "/av1d@fdc70000"; - av1d_mmu = "/iommu@fdca0000"; - rkisp_unite = "/rkisp-unite@fdcb0000"; - rkisp0 = "/rkisp@fdcb0000"; - rkisp_unite_mmu = "/rkisp-unite-mmu@fdcb7f00"; - isp0_mmu = "/iommu@fdcb7f00"; - rkisp1 = "/rkisp@fdcc0000"; - isp1_mmu = "/iommu@fdcc7f00"; - rkispp0 = "/rkispp@fdcd0000"; - fec0_mmu = "/iommu@fdcd0f00"; - rkispp1 = "/rkispp@fdcd8000"; - fec1_mmu = "/iommu@fdcd8f00"; - rkcif = "/rkcif@fdce0000"; - rkcif_mmu = "/iommu@fdce0800"; - mipi0_csi2_hw = "/mipi0-csi2-hw@fdd10000"; - mipi1_csi2_hw = "/mipi1-csi2-hw@fdd20000"; - mipi2_csi2_hw = "/mipi2-csi2-hw@fdd30000"; - mipi3_csi2_hw = "/mipi3-csi2-hw@fdd40000"; - mipi4_csi2_hw = "/mipi4-csi2-hw@fdd50000"; - mipi5_csi2_hw = "/mipi5-csi2-hw@fdd60000"; - vop = "/vop@fdd90000"; - vop_out = "/vop@fdd90000/ports"; - vp0 = "/vop@fdd90000/ports/port@0"; - vp0_out_dp0 = "/vop@fdd90000/ports/port@0/endpoint@0"; - vp0_out_edp0 = "/vop@fdd90000/ports/port@0/endpoint@1"; - vp0_out_hdmi0 = "/vop@fdd90000/ports/port@0/endpoint@2"; - vp0_out_dp1 = "/vop@fdd90000/ports/port@0/endpoint@3"; - vp0_out_edp1 = "/vop@fdd90000/ports/port@0/endpoint@4"; - vp0_out_hdmi1 = "/vop@fdd90000/ports/port@0/endpoint@5"; - vp1 = "/vop@fdd90000/ports/port@1"; + pcie30phy = "/phy@fee80000"; + dmc = "/dmc"; + i2s2m0_mclk = "/pinctrl/i2s2/i2s2m0-mclk"; + mipidcphy1 = "/phy@fedb0000"; + dp1_sound = "/dp1-sound"; + hdmi1_in_vp0 = "/hdmi@fdea0000/ports/port@0/endpoint@0"; + scmi = "/firmware/scmi"; + pcfg_pull_up_drv_level_0 = "/pinctrl/pcfg-pull-up-drv-level-0"; + gmac1_clkinout = "/pinctrl/gmac1/gmac1-clkinout"; + pcfg_pull_down_drv_level_4 = "/pinctrl/pcfg-pull-down-drv-level-4"; + i2s0_sdo1 = "/pinctrl/i2s0/i2s0-sdo1"; + l3_cache = "/cpus/l3-cache"; + i2s3_idle = "/pinctrl/i2s3/i2s3-idle"; + pcfg_pull_none_drv_level_4_smt = "/pinctrl/pcfg-pull-none-drv-level-4-smt"; + litcpu_pins = "/pinctrl/litcpu/litcpu-pins"; + mipi1_csi2 = "/mipi1-csi2"; + can2m0_pins = "/pinctrl/can2/can2m0-pins"; + pwm6m2_pins = "/pinctrl/pwm6/pwm6m2-pins"; + usbdp_phy0 = "/phy@fed80000"; + pdm0m1_sdi1 = "/pinctrl/pdm0/pdm0m1-sdi1"; + pwm3m1_pins = "/pinctrl/pwm3/pwm3m1-pins"; + vdd_log_s0 = "/spi@feb20000/rk806single@0/regulators/DCDC_REG3"; + i2s9_8ch = "/i2s@fddfc000"; + pwm0m0_pins = "/pinctrl/pwm0/pwm0m0-pins"; + vcc_hub3_reset = "/vcc-hub3-reset-regulator"; + dsi1_in_vp3 = "/dsi@fde30000/ports/port@0/endpoint@1"; + otp_cpu_version = "/otp@fecc0000/cpu-version@1c"; + pcie2x1l0_intc = "/pcie@fe170000/legacy-interrupt-controller"; + spdif0m1_tx = "/pinctrl/spdif0/spdif0m1-tx"; + pcfg_pull_down_drv_level_15 = "/pinctrl/pcfg-pull-down-drv-level-15"; + XC7160 = "/i2c@fec80000/XC7160b@1b"; + rkcif_mipi_lvds4_sditf_vir3 = "/rkcif-mipi-lvds4-sditf-vir3"; + uart7m2_xfer = "/pinctrl/uart7/uart7m2-xfer"; + uart4m1_xfer = "/pinctrl/uart4/uart4m1-xfer"; + hdmim1_tx1_scl = "/pinctrl/hdmi/hdmim1-tx1-scl"; + hdmim1_tx1_sda = "/pinctrl/hdmi/hdmim1-tx1-sda"; + uart8m1_ctsn = "/pinctrl/uart8/uart8m1-ctsn"; + i2s2_2ch = "/i2s@fe490000"; + pwm5 = "/pwm@febd0010"; + uart1m0_xfer = "/pinctrl/uart1/uart1m0-xfer"; + uart5m0_ctsn = "/pinctrl/uart5/uart5m0-ctsn"; + fspim0_cs1 = "/pinctrl/fspi/fspim0-cs1"; + fspim0_pins = "/pinctrl/fspi/fspim0-pins"; + rkisp0_vir3 = "/rkisp0-vir3"; + l2_cache_l3 = "/cpus/l2-cache-l3"; + rk806_dvs3_dvs = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs3_dvs"; + hdmi_debug0 = "/pinctrl/hdmi/hdmi-debug0"; + hdmim1_tx1_hpd = "/pinctrl/hdmi/hdmim1-tx1-hpd"; vp1_out_dp0 = "/vop@fdd90000/ports/port@1/endpoint@0"; - vp1_out_edp0 = "/vop@fdd90000/ports/port@1/endpoint@1"; - vp1_out_hdmi0 = "/vop@fdd90000/ports/port@1/endpoint@2"; - vp1_out_dp1 = "/vop@fdd90000/ports/port@1/endpoint@3"; - vp1_out_edp1 = "/vop@fdd90000/ports/port@1/endpoint@4"; - vp1_out_hdmi1 = "/vop@fdd90000/ports/port@1/endpoint@5"; - vp2 = "/vop@fdd90000/ports/port@2"; - vp2_out_dp0 = "/vop@fdd90000/ports/port@2/endpoint@0"; - vp2_out_edp0 = "/vop@fdd90000/ports/port@2/endpoint@1"; - vp2_out_hdmi0 = "/vop@fdd90000/ports/port@2/endpoint@2"; - vp2_out_dsi0 = "/vop@fdd90000/ports/port@2/endpoint@3"; - vp2_out_dsi1 = "/vop@fdd90000/ports/port@2/endpoint@4"; + qos_isp0_mro = "/qos@fdf40400"; + spi0m2_cs1 = "/pinctrl/spi0/spi0m2-cs1"; + vdd_gpu_s0 = "/spi@feb20000/rk806single@0/regulators/DCDC_REG1"; + tsadc_shut = "/pinctrl/tsadc/tsadc-shut"; + pwm10 = "/pwm@febe0020"; + i2c7m3_xfer = "/pinctrl/i2c7/i2c7m3-xfer"; + rktimer = "/timer@feae0000"; + cpub0_leakage = "/otp@fecc0000/cpub0-leakage@17"; + i2c4m2_xfer = "/pinctrl/i2c4/i2c4m2-xfer"; + hclk_rkvdec1_pre = "/clocks/hclk_rkvdec1_pre@fd7c08a4"; + pcie30phy_pins = "/pinctrl/pcie30phy/pcie30phy-pins"; + jpege1 = "/jpege-core@fdba4000"; + pcfg_pull_none_drv_level_14 = "/pinctrl/pcfg-pull-none-drv-level-14"; + i2c1m1_xfer = "/pinctrl/i2c1/i2c1m1-xfer"; + rkcif_dvp_sditf = "/rkcif-dvp-sditf"; + rkcif_mipi_lvds4_sditf = "/rkcif-mipi-lvds4-sditf"; vp2_out_dp1 = "/vop@fdd90000/ports/port@2/endpoint@5"; - vp2_out_edp1 = "/vop@fdd90000/ports/port@2/endpoint@6"; - vp2_out_hdmi1 = "/vop@fdd90000/ports/port@2/endpoint@7"; - vp3 = "/vop@fdd90000/ports/port@3"; - vp3_out_dsi0 = "/vop@fdd90000/ports/port@3/endpoint@0"; - vp3_out_dsi1 = "/vop@fdd90000/ports/port@3/endpoint@1"; - vp3_out_rgb = "/vop@fdd90000/ports/port@3/endpoint@2"; - vop_mmu = "/iommu@fdd97e00"; - spdif_tx2 = "/spdif-tx@fddb0000"; - i2s4_8ch = "/i2s@fddc0000"; + vp2_out_dsi0 = "/vop@fdd90000/ports/port@2/endpoint@3"; + its1 = "/interrupt-controller@fe600000/msi-controller@fe660000"; + cpu_b3 = "/cpus/cpu@700"; + vcc_hub_reset = "/vcc-hub-reset-regulator"; + spi1m1_cs1 = "/pinctrl/spi1/spi1m1-cs1"; + vdd_npu_mem_s0 = "/i2c@fea90000/rk8602@42"; + pwm7m2_pins = "/pinctrl/pwm7/pwm7m2-pins"; + pdm1m1_sdi1 = "/pinctrl/pdm1/pdm1m1-sdi1"; + vbus5v0_typec_pwr_en = "/vbus5v0-typec-pwr-en-regulator"; + pwm4m1_pins = "/pinctrl/pwm4/pwm4m1-pins"; + dmc_opp_table = "/dmc-opp-table"; + pcie30x4_button_rstn = "/pinctrl/pcie30x4/pcie30x4-button-rstn"; + uart4 = "/serial@feb70000"; + pwm1m0_pins = "/pinctrl/pwm1/pwm1m0-pins"; + spi0m0_cs0 = "/pinctrl/spi0/spi0m0-cs0"; + pldo6_s3 = "/spi@feb20000/rk806single@0/regulators/PLDO_REG6"; + mipim1_camera2_clk = "/pinctrl/mipi/mipim1-camera2-clk"; + mipim0_camera0_clk = "/pinctrl/mipi/mipim0-camera0-clk"; + rkcif_mipi_lvds_sditf_vir1 = "/rkcif-mipi-lvds-sditf-vir1"; + pcfg_pull_up_drv_level_9 = "/pinctrl/pcfg-pull-up-drv-level-9"; + dmac2 = "/dma-controller@fed10000"; + pdm0m0_sdi3 = "/pinctrl/pdm0/pdm0m0-sdi3"; + qos_gpu_m2 = "/qos@fdf35400"; + i2s0_sdi3 = "/pinctrl/i2s0/i2s0-sdi3"; + cluster0_opp_table = "/cluster0-opp-table"; + spi2m0_cs1 = "/pinctrl/spi2/spi2m0-cs1"; + otp_id = "/otp@fecc0000/id@7"; + uart5m1_xfer = "/pinctrl/uart5/uart5m1-xfer"; + uart9m1_ctsn = "/pinctrl/uart9/uart9m1-ctsn"; + qos_rga3_0 = "/qos@fdf67000"; + usbdp_phy0_dp = "/phy@fed80000/dp-port"; + uart2m0_xfer = "/pinctrl/uart2/uart2m0-xfer"; + uart6m0_ctsn = "/pinctrl/uart6/uart6m0-ctsn"; + npu_pins = "/pinctrl/npu/npu-pins"; + pcfg_pull_up_drv_level_11 = "/pinctrl/pcfg-pull-up-drv-level-11"; spdif_tx3 = "/spdif-tx@fdde0000"; - i2s5_8ch = "/i2s@fddf0000"; - i2s9_8ch = "/i2s@fddfc000"; - spdif_rx0 = "/spdif-rx@fde08000"; - dsi0 = "/dsi@fde20000"; - dsi0_in = "/dsi@fde20000/ports/port@0"; - dsi0_in_vp2 = "/dsi@fde20000/ports/port@0/endpoint@0"; - dsi0_in_vp3 = "/dsi@fde20000/ports/port@0/endpoint@1"; - dsi1 = "/dsi@fde30000"; - dsi1_in = "/dsi@fde30000/ports/port@0"; - dsi1_in_vp2 = "/dsi@fde30000/ports/port@0/endpoint@0"; - dsi1_in_vp3 = "/dsi@fde30000/ports/port@0/endpoint@1"; - hdcp0 = "/hdcp@fde40000"; + rkispp0 = "/rkispp@fdcd0000"; + xin32k = "/clocks/xin32k"; + vcc_1v8_s3 = "/spi@feb20000/rk806single@0/regulators/DCDC_REG10"; + qos_usb2host_1 = "/qos@fdf3e600"; + bt_sco = "/bt-sco"; + pcfg_output_high_pull_none = "/pinctrl/pcfg-output-high-pull-none"; + adc_keys = "/adc-keys"; + rkcif_mipi_lvds4 = "/rkcif-mipi-lvds4"; + i2c8 = "/i2c@feca0000"; dp0 = "/dp@fde50000"; - dp0_in_vp0 = "/dp@fde50000/ports/port@0/endpoint@0"; - dp0_in_vp1 = "/dp@fde50000/ports/port@0/endpoint@1"; - dp0_in_vp2 = "/dp@fde50000/ports/port@0/endpoint@2"; - dp0_out = "/dp@fde50000/ports/port@1/endpoint"; - hdcp1 = "/hdcp@fde70000"; - hdmi0 = "/hdmi@fde80000"; - hdmi0_in = "/hdmi@fde80000/ports/port@0"; - hdmi0_in_vp0 = "/hdmi@fde80000/ports/port@0/endpoint@0"; - hdmi0_in_vp1 = "/hdmi@fde80000/ports/port@0/endpoint@1"; - hdmi0_in_vp2 = "/hdmi@fde80000/ports/port@0/endpoint@2"; + mipi_te1 = "/pinctrl/mipi/mipi-te1"; + i2c8m3_xfer = "/pinctrl/i2c8/i2c8m3-xfer"; + i2c5m2_xfer = "/pinctrl/i2c5/i2c5m2-xfer"; + pcie30x2_button_rstn = "/pinctrl/pcie30x2/pcie30x2-button-rstn"; + syssram = "/sram@ff001000"; + pcfg_pull_down_drv_level_2 = "/pinctrl/pcfg-pull-down-drv-level-2"; + qos_hdmirx = "/qos@fdf81200"; + i2c2m1_xfer = "/pinctrl/i2c2/i2c2m1-xfer"; + pcie30x4m1_pins = "/pinctrl/pcie30x4/pcie30x4m1-pins"; + vdd_0v75_s0 = "/spi@feb20000/rk806single@0/regulators/NLDO_REG5"; + hw_decompress = "/decompress@fea80000"; + pcie30x1m0_pins = "/pinctrl/pcie30x1/pcie30x1m0-pins"; + mipim0_camera4_clk = "/pinctrl/mipi/mipim0-camera4-clk"; + gmac1_txer = "/pinctrl/gmac1/gmac1-txer"; + uart3_ctsn = "/pinctrl/uart3/uart3-ctsn"; + vcc_sdcard_pwr_en = "/vcc-sdcard-pwr-en-regulator"; + mipi0_csi2_hw = "/mipi0-csi2-hw@fdd10000"; + rkvenc1_mmu = "/iommu@fdbef000"; edp0 = "/edp@fdec0000"; - edp0_in_vp0 = "/edp@fdec0000/ports/port@0/endpoint@0"; - edp0_in_vp1 = "/edp@fdec0000/ports/port@0/endpoint@1"; - edp0_in_vp2 = "/edp@fdec0000/ports/port@0/endpoint@2"; + rkvenc_ccu = "/rkvenc-ccu"; + rk806_dvs3_rst = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs3_rst"; + power = "/power-management@fd8d8000/power-controller"; + vad = "/vad@fe4d0000"; + spi3m3_pins = "/pinctrl/spi3/spi3m3-pins"; + pwm8m2_pins = "/pinctrl/pwm8/pwm8m2-pins"; + spi0m2_pins = "/pinctrl/spi0/spi0m2-pins"; + pwm5m1_pins = "/pinctrl/pwm5/pwm5m1-pins"; + vcc_3v3_s0 = "/spi@feb20000/rk806single@0/regulators/PLDO_REG4"; + aclk_isp1_pre = "/clocks/aclk_isp1_pre@fd7c0868"; + pwm2m0_pins = "/pinctrl/pwm2/pwm2m0-pins"; + i2s1m1_sdo2 = "/pinctrl/i2s1/i2s1m1-sdo2"; + pcfg_pull_down_drv_level_13 = "/pinctrl/pcfg-pull-down-drv-level-13"; + eth0_pins = "/pinctrl/eth0/eth0-pins"; + rkcif_mipi_lvds4_sditf_vir1 = "/rkcif-mipi-lvds4-sditf-vir1"; + pwm3 = "/pwm@fd8b0030"; + pdm1m0_sdi3 = "/pinctrl/pdm1/pdm1m0-sdi3"; + rkcif_mmu = "/iommu@fdce0800"; + usbc0_int = "/pinctrl/usb-typec/usbc0-int"; + gmac0_tx_bus2 = "/pinctrl/gmac0/gmac0-tx-bus2"; + sata2 = "/sata@fe230000"; + uart9m2_xfer = "/pinctrl/uart9/uart9m2-xfer"; + dp0_in_vp2 = "/dp@fde50000/ports/port@0/endpoint@2"; + hdmiin_sound = "/hdmiin-sound"; + rkisp0_vir1 = "/rkisp0-vir1"; + uart6_gpios = "/pinctrl/wireless-bluetooth/uart6-gpios"; + spi3m3_cs1 = "/pinctrl/spi3/spi3m3-cs1"; + l2_cache_l1 = "/cpus/l2-cache-l1"; + pcfg_pull_none_drv_level_8 = "/pinctrl/pcfg-pull-none-drv-level-8"; + uart6m1_xfer = "/pinctrl/uart6/uart6m1-xfer"; + pwm11m3_pins = "/pinctrl/pwm11/pwm11m3-pins"; + vp2_out_hdmi0 = "/vop@fdd90000/ports/port@2/endpoint@2"; + qos_hdcp1 = "/qos@fdf81000"; + scmi_reset = "/firmware/scmi/protocol@16"; + vdd_cpu_lit_mem_s0 = "/spi@feb20000/rk806single@0/regulators/DCDC_REG2"; + i2s0_mclk = "/pinctrl/i2s0/i2s0-mclk"; + uart3m0_xfer = "/pinctrl/uart3/uart3m0-xfer"; + uart7m0_ctsn = "/pinctrl/uart7/uart7m0-ctsn"; + usbhost_dwc3_0 = "/usbhost3_0/usb@fcd00000"; + hdmim0_rx_hpdin = "/pinctrl/hdmi/hdmim0-rx-hpdin"; edp0_out = "/edp@fdec0000/ports/port@1/endpoint"; - qos_gpu_m0 = "/qos@fdf35000"; - qos_gpu_m1 = "/qos@fdf35200"; - qos_gpu_m2 = "/qos@fdf35400"; - qos_gpu_m3 = "/qos@fdf35600"; - qos_rga3_1 = "/qos@fdf36000"; - qos_sdio = "/qos@fdf39000"; - qos_sdmmc = "/qos@fdf3d800"; - qos_usb3_1 = "/qos@fdf3e000"; - qos_usb3_0 = "/qos@fdf3e200"; - qos_usb2host_0 = "/qos@fdf3e400"; - qos_usb2host_1 = "/qos@fdf3e600"; - qos_fisheye0 = "/qos@fdf40000"; - qos_fisheye1 = "/qos@fdf40200"; - qos_isp0_mro = "/qos@fdf40400"; - qos_isp0_mwo = "/qos@fdf40500"; - qos_vicap_m0 = "/qos@fdf40600"; - qos_vicap_m1 = "/qos@fdf40800"; - qos_isp1_mwo = "/qos@fdf41000"; - qos_isp1_mro = "/qos@fdf41100"; - qos_rkvenc0_m0ro = "/qos@fdf60000"; - qos_rkvenc0_m1ro = "/qos@fdf60200"; - qos_rkvenc0_m2wo = "/qos@fdf60400"; - qos_rkvenc1_m0ro = "/qos@fdf61000"; + rkisp0 = "/rkisp@fdcb0000"; + dsu_grf = "/syscon@fd598000"; + vcc_fan_pwr_en = "/vcc-fan-pwr-en-regulator"; + gmac1_rx_bus2 = "/pinctrl/gmac1/gmac1-rx-bus2"; + uart1m2_rtsn = "/pinctrl/uart1/uart1m2-rtsn"; + csi2_dcphy0 = "/csi2-dcphy0"; + usb2phy0_grf = "/syscon@fd5d0000"; + scmi_clk = "/firmware/scmi/protocol@14"; + emmc_clk = "/pinctrl/emmc/emmc-clk"; + jpege1_mmu = "/iommu@fdba4800"; qos_rkvenc1_m1ro = "/qos@fdf61200"; - qos_rkvenc1_m2wo = "/qos@fdf61400"; - qos_rkvdec0 = "/qos@fdf62000"; + spi2m2_cs0 = "/pinctrl/spi2/spi2m2-cs0"; + vcc5v0_host = "/vcc5v0-host"; + cru = "/clock-controller@fd7c0000"; + hdmim0_tx0_cec = "/pinctrl/hdmi/hdmim0-tx0-cec"; + pcfg_pull_none_drv_level_12 = "/pinctrl/pcfg-pull-none-drv-level-12"; + rk806_dvs2_null = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs2_null"; + cpub01_opp_info = "/otp@fecc0000/cpub01-opp-info@43"; + i2s3_sdi = "/pinctrl/i2s3/i2s3-sdi"; + aclk_rkvdec0_pre = "/clocks/aclk_rkvdec0_pre@fd7c08a0"; + cpu_b1 = "/cpus/cpu@500"; + i2c6m2_xfer = "/pinctrl/i2c6/i2c6m2-xfer"; + rknpu_mmu = "/iommu@fdab9000"; + rkcif_mipi_lvds_sditf = "/rkcif-mipi-lvds-sditf"; + i2c3m1_xfer = "/pinctrl/i2c3/i2c3m1-xfer"; + i2c0m0_xfer = "/pinctrl/i2c0/i2c0m0-xfer"; + pcie30x2m0_pins = "/pinctrl/pcie30x2/pcie30x2m0-pins"; + qos_isp1_mwo = "/qos@fdf41000"; + mipi2_csi2_output1 = "/mipi2-csi2/ports/port@1/endpoint@0"; + gmac1_stmmac_axi_setup = "/ethernet@fe1c0000/stmmac-axi-config"; + vcc5v0_usbdcin = "/vcc5v0-usbdcin"; + spi3m1_cs0 = "/pinctrl/spi3/spi3m1-cs0"; + reboot_mode = "/syscon@fd588000/reboot-mode"; + rga3_0_mmu = "/iommu@fdb60f00"; + uart2 = "/serial@feb50000"; + imx415_out0 = "/i2c@fec80000/imx415@37/port/endpoint"; + rkcif_mipi_lvds3_sditf_vir2 = "/rkcif-mipi-lvds3-sditf-vir2"; + pwm9m2_pins = "/pinctrl/pwm9/pwm9m2-pins"; + fec0_mmu = "/iommu@fdcd0f00"; + mipi0_csi2 = "/mipi0-csi2"; + spi1m2_pins = "/pinctrl/spi1/spi1m2-pins"; + pcfg_pull_up_drv_level_7 = "/pinctrl/pcfg-pull-up-drv-level-7"; + pwm6m1_pins = "/pinctrl/pwm6/pwm6m1-pins"; + tsadc_shut_org = "/pinctrl/tsadc/tsadc-shut-org"; qos_rkvdec1 = "/qos@fdf63000"; + dmac0 = "/dma-controller@fea10000"; + vp2_out_edp1 = "/vop@fdd90000/ports/port@2/endpoint@6"; + pdm0m0_sdi1 = "/pinctrl/pdm0/pdm0m0-sdi1"; + qos_gpu_m0 = "/qos@fdf35000"; + pwm3m0_pins = "/pinctrl/pwm3/pwm3m0-pins"; + i2s0_sdi1 = "/pinctrl/i2s0/i2s0-sdi1"; qos_av1 = "/qos@fdf64000"; - qos_iep = "/qos@fdf66000"; - qos_jpeg_dec = "/qos@fdf66200"; - qos_jpeg_enc0 = "/qos@fdf66400"; - qos_jpeg_enc1 = "/qos@fdf66600"; - qos_jpeg_enc2 = "/qos@fdf66800"; + pcfg_output_low = "/pinctrl/pcfg-output-low"; + spdif_tx1 = "/spdif-tx@fe4f0000"; + hdptxphy1_grf = "/syscon@fd5e4000"; + spi4m0_cs0 = "/pinctrl/spi4/spi4m0-cs0"; + dp1_in_vp2 = "/dp@fde60000/ports/port@0/endpoint@2"; + jpegd_mmu = "/iommu@fdb90480"; + sata0m1_pins = "/pinctrl/sata0/sata0m1-pins"; + uart7m1_xfer = "/pinctrl/uart7/uart7m1-xfer"; + vp1_out_hdmi1 = "/vop@fdd90000/ports/port@1/endpoint@5"; + dp1_out = "/dp@fde60000/ports/port@1/endpoint"; + otp = "/otp@fecc0000"; + uart4m0_xfer = "/pinctrl/uart4/uart4m0-xfer"; + uart8m0_ctsn = "/pinctrl/uart8/uart8m0-ctsn"; + hdcp1 = "/hdcp@fde70000"; + rkcif_mipi_lvds2 = "/rkcif-mipi-lvds2"; + i2c6 = "/i2c@fec80000"; qos_jpeg_enc3 = "/qos@fdf66a00"; - qos_rga2_mro = "/qos@fdf66c00"; - qos_rga2_mwo = "/qos@fdf66e00"; - qos_rga3_0 = "/qos@fdf67000"; - qos_vdpu = "/qos@fdf67200"; - qos_npu1 = "/qos@fdf70000"; - qos_npu2 = "/qos@fdf71000"; - qos_npu0_mwr = "/qos@fdf72000"; - qos_npu0_mro = "/qos@fdf72200"; - qos_mcu_npu = "/qos@fdf72400"; - qos_hdcp0 = "/qos@fdf80000"; - qos_hdcp1 = "/qos@fdf81000"; - qos_hdmirx = "/qos@fdf81200"; - qos_vop_m0 = "/qos@fdf82000"; - qos_vop_m1 = "/qos@fdf82200"; - dfi = "/dfi@fe060000"; - pcie2x1l1 = "/pcie@fe180000"; - pcie2x1l1_intc = "/pcie@fe180000/legacy-interrupt-controller"; - pcie2x1l2 = "/pcie@fe190000"; - pcie2x1l2_intc = "/pcie@fe190000/legacy-interrupt-controller"; - gmac_uio1 = "/uio@fe1c0000"; - gmac1 = "/ethernet@fe1c0000"; - mdio1 = "/ethernet@fe1c0000/mdio"; - rgmii_phy1 = "/ethernet@fe1c0000/mdio/phy@1"; - gmac1_stmmac_axi_setup = "/ethernet@fe1c0000/stmmac-axi-config"; - gmac1_mtl_rx_setup = "/ethernet@fe1c0000/rx-queues-config"; - gmac1_mtl_tx_setup = "/ethernet@fe1c0000/tx-queues-config"; - sata0 = "/sata@fe210000"; - sata2 = "/sata@fe230000"; - sfc = "/spi@fe2b0000"; - sdmmc = "/mmc@fe2c0000"; - sdio = "/mmc@fe2d0000"; - sdhci = "/mmc@fe2e0000"; - crypto = "/crypto@fe370000"; - rng = "/rng@fe378000"; - i2s0_8ch = "/i2s@fe470000"; - i2s1_8ch = "/i2s@fe480000"; - i2s2_2ch = "/i2s@fe490000"; - i2s3_2ch = "/i2s@fe4a0000"; - pdm0 = "/pdm@fe4b0000"; + i2s2m1_idle = "/pinctrl/i2s2/i2s2m1-idle"; + refclk_pins = "/pinctrl/refclk/refclk-pins"; + pcie3x4_intc = "/pcie@fe150000/legacy-interrupt-controller"; + hdptxphy_hdmi1 = "/hdmiphy@fed70000"; + mipi2_lvds2_sditf = "/rkcif-mipi-lvds2-sditf/port/endpoint"; pdm1 = "/pdm@fe4c0000"; - vad = "/vad@fe4d0000"; - spdif_tx0 = "/spdif-tx@fe4e0000"; - spdif_tx1 = "/spdif-tx@fe4f0000"; - acdcdig_dsm = "/codec-digital@fe500000"; - hwlock = "/hwspinlock@fe5a0000"; + vdd_cpu_lit_s0 = "/spi@feb20000/rk806single@0/regulators/DCDC_REG2"; + pdm0m1_clk = "/pinctrl/pdm0/pdm0m1-clk"; + pcfg_pull_down_drv_level_0 = "/pinctrl/pcfg-pull-down-drv-level-0"; + qos_vicap_m0 = "/qos@fdf40600"; gic = "/interrupt-controller@fe600000"; - its0 = "/interrupt-controller@fe600000/msi-controller@fe640000"; - its1 = "/interrupt-controller@fe600000/msi-controller@fe660000"; - dmac0 = "/dma-controller@fea10000"; - dmac1 = "/dma-controller@fea30000"; - can0 = "/can@fea50000"; - can1 = "/can@fea60000"; + vdd_cpu_big1_s0 = "/i2c@fd880000/rk8603@43"; + uart0_rtsn = "/pinctrl/uart0/uart0-rtsn"; + i2c7m2_xfer = "/pinctrl/i2c7/i2c7m2-xfer"; + mclkin_i2s3 = "/clocks/mclkin-i2s3"; + hdmim0_tx0_scl = "/pinctrl/hdmi/hdmim0-tx0-scl"; + hdmim0_tx0_sda = "/pinctrl/hdmi/hdmim0-tx0-sda"; + i2c4m1_xfer = "/pinctrl/i2c4/i2c4m1-xfer"; + spdif1m0_tx = "/pinctrl/spdif1/spdif1m0-tx"; + sdmmc_det = "/pinctrl/sdmmc/sdmmc-det"; + i2c1m0_xfer = "/pinctrl/i2c1/i2c1m0-xfer"; + rkcif_mipi_lvds2_sditf_vir3 = "/rkcif-mipi-lvds2-sditf-vir3"; + hdptxphy1 = "/phy@fed70000"; + route_dp1 = "/display-subsystem/route/route-dp1"; + hdmim0_tx0_hpd = "/pinctrl/hdmi/hdmim0-tx0-hpd"; + i2s1m1_sdo0 = "/pinctrl/i2s1/i2s1m1-sdo0"; + pdm1m0_clk = "/pinctrl/pdm1/pdm1m0-clk"; + pcfg_pull_down_drv_level_11 = "/pinctrl/pcfg-pull-down-drv-level-11"; + usbdrd3_1 = "/usbdrd3_1"; + spi2m2_pins = "/pinctrl/spi2/spi2m2-pins"; + pwm7m1_pins = "/pinctrl/pwm7/pwm7m1-pins"; + rkcif_mipi_lvds1_sditf = "/rkcif-mipi-lvds1-sditf"; + pwm1 = "/pwm@fd8b0010"; + pdm1m0_sdi1 = "/pinctrl/pdm1/pdm1m0-sdi1"; + threshold = "/thermal-zones/soc-thermal/trips/trip-point-0"; + pwm4m0_pins = "/pinctrl/pwm4/pwm4m0-pins"; + gmac0_mtl_rx_setup = "/ethernet@fe1b0000/rx-queues-config"; + sata0 = "/sata@fe210000"; + dp0_in_vp0 = "/dp@fde50000/ports/port@0/endpoint@0"; can2 = "/can@fea70000"; - hw_decompress = "/decompress@fea80000"; - i2c1 = "/i2c@fea90000"; - vdd_npu_s0 = "/i2c@fea90000/rk8602@42"; - vdd_npu_mem_s0 = "/i2c@fea90000/rk8602@42"; - i2c2 = "/i2c@feaa0000"; - i2c3 = "/i2c@feab0000"; - pca9555 = "/i2c@feab0000/gpio@21"; - i2c4 = "/i2c@feac0000"; - i2c5 = "/i2c@fead0000"; - rktimer = "/timer@feae0000"; - wdt = "/watchdog@feaf0000"; - spi0 = "/spi@feb00000"; - spi1 = "/spi@feb10000"; - spi2 = "/spi@feb20000"; - rk806single = "/spi@feb20000/rk806single@0"; - pinctrl_rk806 = "/spi@feb20000/rk806single@0/pinctrl_rk806"; - rk806_dvs1_null = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs1_null"; - rk806_dvs1_slp = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs1_slp"; + pcfg_pull_none_drv_level_6 = "/pinctrl/pcfg-pull-none-drv-level-6"; + usbdrd_dwc3_0 = "/usbdrd3_0/usb@fc000000"; + rkvenc0 = "/rkvenc-core@fdbd0000"; + bt_reset_gpio = "/pinctrl/wireless-bluetooth/bt-reset-gpio"; + sata1m1_pins = "/pinctrl/sata1/sata1m1-pins"; + spll = "/clocks/spll"; + uart8m1_xfer = "/pinctrl/uart8/uart8m1-xfer"; + sata_pins = "/pinctrl/sata/sata-pins"; + pcfg_pull_none_drv_level_1_smt = "/pinctrl/pcfg-pull-none-drv-level-1-smt"; + qos_npu1 = "/qos@fdf70000"; + uart5m0_xfer = "/pinctrl/uart5/uart5m0-xfer"; + uart9m0_ctsn = "/pinctrl/uart9/uart9m0-ctsn"; + pwm10m2_pins = "/pinctrl/pwm10/pwm10m2-pins"; rk806_dvs1_pwrdn = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs1_pwrdn"; - rk806_dvs1_rst = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs1_rst"; - rk806_dvs2_null = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs2_null"; - rk806_dvs2_slp = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs2_slp"; - rk806_dvs2_pwrdn = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs2_pwrdn"; - rk806_dvs2_rst = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs2_rst"; - rk806_dvs2_dvs = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs2_dvs"; - rk806_dvs2_gpio = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs2_gpio"; - rk806_dvs3_null = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs3_null"; - rk806_dvs3_slp = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs3_slp"; - rk806_dvs3_pwrdn = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs3_pwrdn"; - rk806_dvs3_rst = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs3_rst"; - rk806_dvs3_dvs = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs3_dvs"; - rk806_dvs3_gpio = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs3_gpio"; - vdd_gpu_s0 = "/spi@feb20000/rk806single@0/regulators/DCDC_REG1"; - vdd_gpu_mem_s0 = "/spi@feb20000/rk806single@0/regulators/DCDC_REG1"; - vdd_cpu_lit_s0 = "/spi@feb20000/rk806single@0/regulators/DCDC_REG2"; - vdd_cpu_lit_mem_s0 = "/spi@feb20000/rk806single@0/regulators/DCDC_REG2"; - vdd_log_s0 = "/spi@feb20000/rk806single@0/regulators/DCDC_REG3"; - vdd_vdenc_s0 = "/spi@feb20000/rk806single@0/regulators/DCDC_REG4"; - vdd_vdenc_mem_s0 = "/spi@feb20000/rk806single@0/regulators/DCDC_REG4"; - vdd_ddr_s0 = "/spi@feb20000/rk806single@0/regulators/DCDC_REG5"; - vdd2_ddr_s3 = "/spi@feb20000/rk806single@0/regulators/DCDC_REG6"; - vcc_2v0_pldo_s3 = "/spi@feb20000/rk806single@0/regulators/DCDC_REG7"; - vcc_3v3_s3 = "/spi@feb20000/rk806single@0/regulators/DCDC_REG8"; - vddq_ddr_s0 = "/spi@feb20000/rk806single@0/regulators/DCDC_REG9"; - vcc_1v8_s3 = "/spi@feb20000/rk806single@0/regulators/DCDC_REG10"; - avcc_1v8_s0 = "/spi@feb20000/rk806single@0/regulators/PLDO_REG1"; - vcc_1v8_s0 = "/spi@feb20000/rk806single@0/regulators/PLDO_REG2"; - avdd_1v2_s0 = "/spi@feb20000/rk806single@0/regulators/PLDO_REG3"; - vcc_3v3_s0 = "/spi@feb20000/rk806single@0/regulators/PLDO_REG4"; - vccio_sd_s0 = "/spi@feb20000/rk806single@0/regulators/PLDO_REG5"; - pldo6_s3 = "/spi@feb20000/rk806single@0/regulators/PLDO_REG6"; - vdd_0v75_s3 = "/spi@feb20000/rk806single@0/regulators/NLDO_REG1"; - vdd_ddr_pll_s0 = "/spi@feb20000/rk806single@0/regulators/NLDO_REG2"; - avdd_0v75_s0 = "/spi@feb20000/rk806single@0/regulators/NLDO_REG3"; - vdd_0v85_s0 = "/spi@feb20000/rk806single@0/regulators/NLDO_REG4"; - vdd_0v75_s0 = "/spi@feb20000/rk806single@0/regulators/NLDO_REG5"; - spi3 = "/spi@feb30000"; - uart1 = "/serial@feb40000"; - uart2 = "/serial@feb50000"; - uart3 = "/serial@feb60000"; - uart4 = "/serial@feb70000"; - uart5 = "/serial@feb80000"; - uart6 = "/serial@feb90000"; - uart7 = "/serial@feba0000"; - uart8 = "/serial@febb0000"; - uart9 = "/serial@febc0000"; - pwm4 = "/pwm@febd0000"; - pwm5 = "/pwm@febd0010"; - pwm6 = "/pwm@febd0020"; - pwm7 = "/pwm@febd0030"; - pwm8 = "/pwm@febe0000"; - pwm9 = "/pwm@febe0010"; - pwm10 = "/pwm@febe0020"; - pwm11 = "/pwm@febe0030"; - pwm12 = "/pwm@febf0000"; - pwm13 = "/pwm@febf0010"; - pwm14 = "/pwm@febf0020"; - pwm15 = "/pwm@febf0030"; - tsadc = "/tsadc@fec00000"; - saradc = "/saradc@fec10000"; - mailbox0 = "/mailbox@fec60000"; - mailbox1 = "/mailbox@fec70000"; - i2c6 = "/i2c@fec80000"; + pipe_phy0_grf = "/syscon@fd5bc000"; es8388 = "/i2c@fec80000/es8388@11"; - usbc0 = "/i2c@fec80000/fusb302@22"; - usbc0_role_sw = "/i2c@fec80000/fusb302@22/ports/port@0/endpoint@0"; - usb_con = "/i2c@fec80000/fusb302@22/connector"; - usbc0_orien_sw = "/i2c@fec80000/fusb302@22/connector/ports/port@0/endpoint"; - dp_altmode_mux = "/i2c@fec80000/fusb302@22/connector/ports/port@1/endpoint"; - XC7160 = "/i2c@fec80000/XC7160b@1b"; - xc7160_out0 = "/i2c@fec80000/XC7160b@1b/port/endpoint"; - imx415 = "/i2c@fec80000/imx415@37"; - imx415_out0 = "/i2c@fec80000/imx415@37/port/endpoint"; - i2c7 = "/i2c@fec90000"; - i2c8 = "/i2c@feca0000"; - spi4 = "/spi@fecb0000"; - otp = "/otp@fecc0000"; - cpu_code = "/otp@fecc0000/cpu-code@2"; - package_serial_number_high = "/otp@fecc0000/package-serial-number-high@5"; - package_serial_number_low = "/otp@fecc0000/package-serial-number-low@6"; - specification_serial_number = "/otp@fecc0000/specification-serial-number@6"; - otp_id = "/otp@fecc0000/id@7"; - otp_cpu_version = "/otp@fecc0000/cpu-version@1c"; - cpub0_leakage = "/otp@fecc0000/cpub0-leakage@17"; - cpub1_leakage = "/otp@fecc0000/cpub1-leakage@18"; - cpul_leakage = "/otp@fecc0000/cpul-leakage@19"; - log_leakage = "/otp@fecc0000/log-leakage@1a"; - gpu_leakage = "/otp@fecc0000/gpu-leakage@1b"; - npu_leakage = "/otp@fecc0000/npu-leakage@28"; - codec_leakage = "/otp@fecc0000/codec-leakage@29"; - cpul_opp_info = "/otp@fecc0000/cpul-opp-info@3d"; - cpub01_opp_info = "/otp@fecc0000/cpub01-opp-info@43"; - cpub23_opp_info = "/otp@fecc0000/cpub23-opp-info@49"; - gpu_opp_info = "/otp@fecc0000/gpu-opp-info@4f"; - npu_opp_info = "/otp@fecc0000/npu-opp-info@55"; - dmc_opp_info = "/otp@fecc0000/dmc-opp-info@5b"; - vop_opp_info = "/otp@fecc0000/vop-opp-info@61"; - venc_opp_info = "/otp@fecc0000/venc-opp-info@67"; - mailbox2 = "/mailbox@fece0000"; - dmac2 = "/dma-controller@fed10000"; - hdptxphy0 = "/phy@fed60000"; - hdptxphy_hdmi0 = "/hdmiphy@fed60000"; - hdptxphy_hdmi_clk0 = "/hdmiphy@fed60000/clk-port"; - usbdp_phy0 = "/phy@fed80000"; - usbdp_phy0_dp = "/phy@fed80000/dp-port"; - usbdp_phy0_u3 = "/phy@fed80000/u3-port"; - usbdp_phy0_orientation_switch = "/phy@fed80000/port/endpoint@0"; - usbdp_phy0_dp_altmode_mux = "/phy@fed80000/port/endpoint@1"; - mipidcphy0 = "/phy@feda0000"; - mipidcphy1 = "/phy@fedb0000"; - csi2_dphy0_hw = "/csi2-dphy0-hw@fedc0000"; - csi2_dphy1_hw = "/csi2-dphy1-hw@fedc8000"; - combphy0_ps = "/phy@fee00000"; - combphy2_psu = "/phy@fee20000"; - syssram = "/sram@ff001000"; - rkvdec0_sram = "/sram@ff001000/rkvdec-sram@0"; - rkvdec1_sram = "/sram@ff001000/rkvdec-sram@78000"; - pinctrl = "/pinctrl"; - gpio0 = "/pinctrl/gpio@fd8a0000"; - gpio1 = "/pinctrl/gpio@fec20000"; - gpio2 = "/pinctrl/gpio@fec30000"; + spdif_rx2 = "/spdif-rx@fde18000"; + usb_host1_ehci = "/usb@fc880000"; + xin24m = "/clocks/xin24m"; + pcie20x1_2_button_rstn = "/pinctrl/pcie20x1/pcie20x1-2-button-rstn"; + mipi2_csi2_hw = "/mipi2-csi2-hw@fdd30000"; + acdcdig_dsm = "/codec-digital@fe500000"; + vop_grf = "/syscon@fd5a4000"; + rk806_dvs1_slp = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs1_slp"; + i2s6_8ch = "/i2s@fddf4000"; + i2s2m1_sdo = "/pinctrl/i2s2/i2s2m1-sdo"; + pcie30x1_1_button_rstn = "/pinctrl/pcie30x1/pcie30x1-1-button-rstn"; + pcfg_output_low_pull_down = "/pinctrl/pcfg-output-low-pull-down"; + pcfg_pull_none_drv_level_10 = "/pinctrl/pcfg-pull-none-drv-level-10"; + pdm0m1_clk1 = "/pinctrl/pdm0/pdm0m1-clk1"; + mipidphy0_grf = "/syscon@fd5b4000"; + route_dsi1 = "/display-subsystem/route/route-dsi1"; + route_hdmi0 = "/display-subsystem/route/route-hdmi0"; + rkvdec_ccu = "/rkvdec-ccu@fdc30000"; + csi2_dphy4 = "/csi2-dphy4"; + gmac1_rgmii_bus = "/pinctrl/gmac1/gmac1-rgmii-bus"; + qos_sdio = "/qos@fdf39000"; + tsadc = "/tsadc@fec00000"; + pcfg_output_high_pull_up = "/pinctrl/pcfg-output-high-pull-up"; + hclk_usb = "/clocks/hclk_usb@fd7c08a8"; + avcc_1v8_s0 = "/spi@feb20000/rk806single@0/regulators/PLDO_REG1"; + edp0_in_vp2 = "/edp@fdec0000/ports/port@0/endpoint@2"; + mdio1 = "/ethernet@fe1c0000/mdio"; gpio3 = "/pinctrl/gpio@fec40000"; - gpio4 = "/pinctrl/gpio@fec50000"; - pcfg_pull_up = "/pinctrl/pcfg-pull-up"; - pcfg_pull_down = "/pinctrl/pcfg-pull-down"; - pcfg_pull_none = "/pinctrl/pcfg-pull-none"; - pcfg_pull_none_drv_level_0 = "/pinctrl/pcfg-pull-none-drv-level-0"; - pcfg_pull_none_drv_level_1 = "/pinctrl/pcfg-pull-none-drv-level-1"; - pcfg_pull_none_drv_level_2 = "/pinctrl/pcfg-pull-none-drv-level-2"; - pcfg_pull_none_drv_level_3 = "/pinctrl/pcfg-pull-none-drv-level-3"; - pcfg_pull_none_drv_level_4 = "/pinctrl/pcfg-pull-none-drv-level-4"; - pcfg_pull_none_drv_level_5 = "/pinctrl/pcfg-pull-none-drv-level-5"; - pcfg_pull_none_drv_level_6 = "/pinctrl/pcfg-pull-none-drv-level-6"; - pcfg_pull_up_drv_level_0 = "/pinctrl/pcfg-pull-up-drv-level-0"; - pcfg_pull_up_drv_level_1 = "/pinctrl/pcfg-pull-up-drv-level-1"; - pcfg_pull_up_drv_level_2 = "/pinctrl/pcfg-pull-up-drv-level-2"; - pcfg_pull_up_drv_level_3 = "/pinctrl/pcfg-pull-up-drv-level-3"; - pcfg_pull_up_drv_level_4 = "/pinctrl/pcfg-pull-up-drv-level-4"; + gpu_opp_table = "/gpu-opp-table"; + cif_mipi2_in0 = "/rkcif-mipi-lvds2/port/endpoint"; + pcfg_output_high = "/pinctrl/pcfg-output-high"; + i2c8m2_xfer = "/pinctrl/i2c8/i2c8m2-xfer"; + vdpu_mmu = "/iommu@fdb50800"; + i2c5m1_xfer = "/pinctrl/i2c5/i2c5m1-xfer"; + combphy0_ps = "/phy@fee00000"; + rgb = "/syscon@fd58c000/rgb"; + hclk_vo1 = "/clocks/hclk_vo1@fd7c08ec"; + i2c2m0_xfer = "/pinctrl/i2c2/i2c2m0-xfer"; + uart0 = "/serial@fd890000"; + mipidcphy1_grf = "/syscon@fd5ec000"; + pcie30x4m0_pins = "/pinctrl/pcie30x4/pcie30x4m0-pins"; + vdd_ddr_pll_s0 = "/spi@feb20000/rk806single@0/regulators/NLDO_REG2"; + gmac0_txer = "/pinctrl/gmac0/gmac0-txer"; + uart2_ctsn = "/pinctrl/uart2/uart2-ctsn"; pcfg_pull_up_drv_level_5 = "/pinctrl/pcfg-pull-up-drv-level-5"; - pcfg_pull_up_drv_level_6 = "/pinctrl/pcfg-pull-up-drv-level-6"; - pcfg_pull_down_drv_level_0 = "/pinctrl/pcfg-pull-down-drv-level-0"; - pcfg_pull_down_drv_level_1 = "/pinctrl/pcfg-pull-down-drv-level-1"; - pcfg_pull_down_drv_level_2 = "/pinctrl/pcfg-pull-down-drv-level-2"; - pcfg_pull_down_drv_level_3 = "/pinctrl/pcfg-pull-down-drv-level-3"; - pcfg_pull_down_drv_level_4 = "/pinctrl/pcfg-pull-down-drv-level-4"; - pcfg_pull_down_drv_level_5 = "/pinctrl/pcfg-pull-down-drv-level-5"; - pcfg_pull_down_drv_level_6 = "/pinctrl/pcfg-pull-down-drv-level-6"; - pcfg_pull_up_smt = "/pinctrl/pcfg-pull-up-smt"; - pcfg_pull_down_smt = "/pinctrl/pcfg-pull-down-smt"; - pcfg_pull_none_smt = "/pinctrl/pcfg-pull-none-smt"; - pcfg_pull_none_drv_level_0_smt = "/pinctrl/pcfg-pull-none-drv-level-0-smt"; - pcfg_pull_none_drv_level_1_smt = "/pinctrl/pcfg-pull-none-drv-level-1-smt"; - pcfg_pull_none_drv_level_2_smt = "/pinctrl/pcfg-pull-none-drv-level-2-smt"; - pcfg_pull_none_drv_level_3_smt = "/pinctrl/pcfg-pull-none-drv-level-3-smt"; - pcfg_pull_none_drv_level_4_smt = "/pinctrl/pcfg-pull-none-drv-level-4-smt"; + pcfg_pull_down_drv_level_9 = "/pinctrl/pcfg-pull-down-drv-level-9"; pcfg_pull_none_drv_level_5_smt = "/pinctrl/pcfg-pull-none-drv-level-5-smt"; - pcfg_pull_none_drv_level_6_smt = "/pinctrl/pcfg-pull-none-drv-level-6-smt"; - pcfg_output_high = "/pinctrl/pcfg-output-high"; - pcfg_output_high_pull_up = "/pinctrl/pcfg-output-high-pull-up"; - pcfg_output_high_pull_down = "/pinctrl/pcfg-output-high-pull-down"; - pcfg_output_high_pull_none = "/pinctrl/pcfg-output-high-pull-none"; - pcfg_output_low = "/pinctrl/pcfg-output-low"; - pcfg_output_low_pull_up = "/pinctrl/pcfg-output-low-pull-up"; - pcfg_output_low_pull_down = "/pinctrl/pcfg-output-low-pull-down"; - pcfg_output_low_pull_none = "/pinctrl/pcfg-output-low-pull-none"; - auddsm_pins = "/pinctrl/auddsm/auddsm-pins"; + i2s2m0_sdi = "/pinctrl/i2s2/i2s2m0-sdi"; + qos_rga2_mwo = "/qos@fdf66e00"; + spi3m2_pins = "/pinctrl/spi3/spi3m2-pins"; + pwm8m1_pins = "/pinctrl/pwm8/pwm8m1-pins"; + dsi1_in = "/dsi@fde30000/ports/port@0"; + vp3_out_dsi0 = "/vop@fdd90000/ports/port@3/endpoint@0"; + pclk_vo0_grf = "/clocks/pclk_vo0_grf@fd7c08dc"; + spi0m1_pins = "/pinctrl/spi0/spi0m1-pins"; + pwm5m0_pins = "/pinctrl/pwm5/pwm5m0-pins"; bt1120_pins = "/pinctrl/bt1120/bt1120-pins"; - can0m0_pins = "/pinctrl/can0/can0m0-pins"; - can0m1_pins = "/pinctrl/can0/can0m1-pins"; - can1m0_pins = "/pinctrl/can1/can1m0-pins"; - can1m1_pins = "/pinctrl/can1/can1m1-pins"; - can2m0_pins = "/pinctrl/can2/can2m0-pins"; - can2m1_pins = "/pinctrl/can2/can2m1-pins"; - cif_clk = "/pinctrl/cif/cif-clk"; - cif_dvp_clk = "/pinctrl/cif/cif-dvp-clk"; - cif_dvp_bus16 = "/pinctrl/cif/cif-dvp-bus16"; - cif_dvp_bus8 = "/pinctrl/cif/cif-dvp-bus8"; - clk32k_in = "/pinctrl/clk32k/clk32k-in"; - clk32k_out0 = "/pinctrl/clk32k/clk32k-out0"; - clk32k_out1 = "/pinctrl/clk32k/clk32k-out1"; - cpu_pins = "/pinctrl/cpu/cpu-pins"; - ddrphych0_pins = "/pinctrl/ddrphych0/ddrphych0-pins"; - ddrphych1_pins = "/pinctrl/ddrphych1/ddrphych1-pins"; - ddrphych2_pins = "/pinctrl/ddrphych2/ddrphych2-pins"; - ddrphych3_pins = "/pinctrl/ddrphych3/ddrphych3-pins"; - dp0m0_pins = "/pinctrl/dp0/dp0m0-pins"; - dp0m1_pins = "/pinctrl/dp0/dp0m1-pins"; - dp0m2_pins = "/pinctrl/dp0/dp0m2-pins"; - dp1m0_pins = "/pinctrl/dp1/dp1m0-pins"; - dp1m1_pins = "/pinctrl/dp1/dp1m1-pins"; - dp1m2_pins = "/pinctrl/dp1/dp1m2-pins"; - emmc_rstnout = "/pinctrl/emmc/emmc-rstnout"; - emmc_bus8 = "/pinctrl/emmc/emmc-bus8"; - emmc_clk = "/pinctrl/emmc/emmc-clk"; - emmc_cmd = "/pinctrl/emmc/emmc-cmd"; - emmc_data_strobe = "/pinctrl/emmc/emmc-data-strobe"; - eth1_pins = "/pinctrl/eth1/eth1-pins"; - fspim0_pins = "/pinctrl/fspi/fspim0-pins"; - fspim0_cs1 = "/pinctrl/fspi/fspim0-cs1"; - fspim2_pins = "/pinctrl/fspi/fspim2-pins"; - fspim2_cs1 = "/pinctrl/fspi/fspim2-cs1"; - fspim1_pins = "/pinctrl/fspi/fspim1-pins"; + dp1_in_vp0 = "/dp@fde60000/ports/port@0/endpoint@0"; + i2s1m0_sdo2 = "/pinctrl/i2s1/i2s1m0-sdo2"; + mipi2_csi2_input0 = "/mipi2-csi2/ports/port@0/endpoint@0"; + u2phy0_otg = "/syscon@fd5d0000/usb2-phy@0/otg-port"; + vp0_out_edp0 = "/vop@fdd90000/ports/port@0/endpoint@1"; + qos_fisheye0 = "/qos@fdf40000"; + i2c4 = "/i2c@feac0000"; + sata2m1_pins = "/pinctrl/sata2/sata2m1-pins"; + uart9m1_xfer = "/pinctrl/uart9/uart9m1-xfer"; + qos_jpeg_enc1 = "/qos@fdf66600"; + i2s1m1_sdi2 = "/pinctrl/i2s1/i2s1m1-sdi2"; + i2s3_2ch = "/i2s@fe4a0000"; + uart6m0_xfer = "/pinctrl/uart6/uart6m0-xfer"; + cpul_leakage = "/otp@fecc0000/cpul-leakage@19"; + pwm11m2_pins = "/pinctrl/pwm11/pwm11m2-pins"; fspim1_cs1 = "/pinctrl/fspi/fspim1-cs1"; - gmac1_miim = "/pinctrl/gmac1/gmac1-miim"; - gmac1_clkinout = "/pinctrl/gmac1/gmac1-clkinout"; - gmac1_rx_bus2 = "/pinctrl/gmac1/gmac1-rx-bus2"; - gmac1_tx_bus2 = "/pinctrl/gmac1/gmac1-tx-bus2"; - gmac1_rgmii_clk = "/pinctrl/gmac1/gmac1-rgmii-clk"; - gmac1_rgmii_bus = "/pinctrl/gmac1/gmac1-rgmii-bus"; - gmac1_ppsclk = "/pinctrl/gmac1/gmac1-ppsclk"; - gmac1_ppstrig = "/pinctrl/gmac1/gmac1-ppstrig"; - gmac1_ptp_ref_clk = "/pinctrl/gmac1/gmac1-ptp-ref-clk"; - gmac1_txer = "/pinctrl/gmac1/gmac1-txer"; - gpu_pins = "/pinctrl/gpu/gpu-pins"; - hdmim0_rx_cec = "/pinctrl/hdmi/hdmim0-rx-cec"; - hdmim0_rx_hpdin = "/pinctrl/hdmi/hdmim0-rx-hpdin"; - hdmim0_rx_scl = "/pinctrl/hdmi/hdmim0-rx-scl"; - hdmim0_rx_sda = "/pinctrl/hdmi/hdmim0-rx-sda"; - hdmim0_tx0_cec = "/pinctrl/hdmi/hdmim0-tx0-cec"; - hdmim0_tx0_hpd = "/pinctrl/hdmi/hdmim0-tx0-hpd"; - hdmim0_tx0_scl = "/pinctrl/hdmi/hdmim0-tx0-scl"; - hdmim0_tx0_sda = "/pinctrl/hdmi/hdmim0-tx0-sda"; - hdmim0_tx1_hpd = "/pinctrl/hdmi/hdmim0-tx1-hpd"; - hdmim1_rx = "/pinctrl/hdmi/hdmim1-rx"; - hdmim1_rx_cec = "/pinctrl/hdmi/hdmim1-rx-cec"; - hdmim1_rx_hpdin = "/pinctrl/hdmi/hdmim1-rx-hpdin"; - hdmim1_rx_scl = "/pinctrl/hdmi/hdmim1-rx-scl"; - hdmim1_rx_sda = "/pinctrl/hdmi/hdmim1-rx-sda"; - hdmim1_tx0_cec = "/pinctrl/hdmi/hdmim1-tx0-cec"; - hdmim1_tx0_hpd = "/pinctrl/hdmi/hdmim1-tx0-hpd"; - hdmim1_tx0_scl = "/pinctrl/hdmi/hdmim1-tx0-scl"; - hdmim1_tx0_sda = "/pinctrl/hdmi/hdmim1-tx0-sda"; - hdmim1_tx1_cec = "/pinctrl/hdmi/hdmim1-tx1-cec"; - hdmim1_tx1_hpd = "/pinctrl/hdmi/hdmim1-tx1-hpd"; - hdmim1_tx1_scl = "/pinctrl/hdmi/hdmim1-tx1-scl"; - hdmim1_tx1_sda = "/pinctrl/hdmi/hdmim1-tx1-sda"; - hdmim2_rx_cec = "/pinctrl/hdmi/hdmim2-rx-cec"; - hdmim2_rx_hpdin = "/pinctrl/hdmi/hdmim2-rx-hpdin"; - hdmim2_rx_scl = "/pinctrl/hdmi/hdmim2-rx-scl"; - hdmim2_rx_sda = "/pinctrl/hdmi/hdmim2-rx-sda"; - hdmim2_tx0_scl = "/pinctrl/hdmi/hdmim2-tx0-scl"; - hdmim2_tx0_sda = "/pinctrl/hdmi/hdmim2-tx0-sda"; - hdmim2_tx1_cec = "/pinctrl/hdmi/hdmim2-tx1-cec"; - hdmim2_tx1_scl = "/pinctrl/hdmi/hdmim2-tx1-scl"; - hdmim2_tx1_sda = "/pinctrl/hdmi/hdmim2-tx1-sda"; - hdmi_debug0 = "/pinctrl/hdmi/hdmi-debug0"; - hdmi_debug1 = "/pinctrl/hdmi/hdmi-debug1"; - hdmi_debug2 = "/pinctrl/hdmi/hdmi-debug2"; - hdmi_debug3 = "/pinctrl/hdmi/hdmi-debug3"; - hdmi_debug4 = "/pinctrl/hdmi/hdmi-debug4"; + vdd_vdenc_s0 = "/spi@feb20000/rk806single@0/regulators/DCDC_REG4"; + pdm1m1_clk1 = "/pinctrl/pdm1/pdm1m1-clk1"; hdmi_debug5 = "/pinctrl/hdmi/hdmi-debug5"; - hdmi_debug6 = "/pinctrl/hdmi/hdmi-debug6"; - hdmim0_tx1_cec = "/pinctrl/hdmi/hdmim0-tx1-cec"; - hdmim0_tx1_scl = "/pinctrl/hdmi/hdmim0-tx1-scl"; - hdmim0_tx1_sda = "/pinctrl/hdmi/hdmim0-tx1-sda"; - i2c0m0_xfer = "/pinctrl/i2c0/i2c0m0-xfer"; - i2c0m2_xfer = "/pinctrl/i2c0/i2c0m2-xfer"; - i2c0m1_xfer = "/pinctrl/i2c0/i2c0m1-xfer"; - i2c1m0_xfer = "/pinctrl/i2c1/i2c1m0-xfer"; - i2c1m1_xfer = "/pinctrl/i2c1/i2c1m1-xfer"; - i2c1m2_xfer = "/pinctrl/i2c1/i2c1m2-xfer"; - i2c1m3_xfer = "/pinctrl/i2c1/i2c1m3-xfer"; - i2c1m4_xfer = "/pinctrl/i2c1/i2c1m4-xfer"; - i2c2m0_xfer = "/pinctrl/i2c2/i2c2m0-xfer"; - i2c2m2_xfer = "/pinctrl/i2c2/i2c2m2-xfer"; - i2c2m3_xfer = "/pinctrl/i2c2/i2c2m3-xfer"; - i2c2m4_xfer = "/pinctrl/i2c2/i2c2m4-xfer"; - i2c2m1_xfer = "/pinctrl/i2c2/i2c2m1-xfer"; - i2c3m0_xfer = "/pinctrl/i2c3/i2c3m0-xfer"; - i2c3m1_xfer = "/pinctrl/i2c3/i2c3m1-xfer"; - i2c3m2_xfer = "/pinctrl/i2c3/i2c3m2-xfer"; - i2c3m4_xfer = "/pinctrl/i2c3/i2c3m4-xfer"; - i2c3m3_xfer = "/pinctrl/i2c3/i2c3m3-xfer"; - i2c4m0_xfer = "/pinctrl/i2c4/i2c4m0-xfer"; - i2c4m2_xfer = "/pinctrl/i2c4/i2c4m2-xfer"; - i2c4m3_xfer = "/pinctrl/i2c4/i2c4m3-xfer"; - i2c4m4_xfer = "/pinctrl/i2c4/i2c4m4-xfer"; - i2c4m1_xfer = "/pinctrl/i2c4/i2c4m1-xfer"; - i2c5m0_xfer = "/pinctrl/i2c5/i2c5m0-xfer"; - i2c5m1_xfer = "/pinctrl/i2c5/i2c5m1-xfer"; - i2c5m2_xfer = "/pinctrl/i2c5/i2c5m2-xfer"; - i2c5m3_xfer = "/pinctrl/i2c5/i2c5m3-xfer"; - i2c5m4_xfer = "/pinctrl/i2c5/i2c5m4-xfer"; - i2c6m0_xfer = "/pinctrl/i2c6/i2c6m0-xfer"; + uart1m1_rtsn = "/pinctrl/uart1/uart1m1-rtsn"; + qos_isp1_mro = "/qos@fdf41100"; + ddrphych3_pins = "/pinctrl/ddrphych3/ddrphych3-pins"; + spi0m3_cs1 = "/pinctrl/spi0/spi0m3-cs1"; + qos_rkvenc0_m1ro = "/qos@fdf60200"; + qos_jpeg_dec = "/qos@fdf66200"; + mclkin_i2s1 = "/clocks/mclkin-i2s1"; + edp1_in_vp2 = "/edp@fded0000/ports/port@0/endpoint@2"; + pcie30_avdd0v75 = "/pcie30-avdd0v75"; + isp0_mmu = "/iommu@fdcb7f00"; + qos_npu0_mwr = "/qos@fdf72000"; + rkvdec0 = "/rkvdec-core@fdc38000"; + rkvdec0_mmu = "/iommu@fdc38700"; + rk806_dvs1_null = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs1_null"; + pwm15 = "/pwm@febf0030"; + vop_mmu = "/iommu@fdd97e00"; + rkcif_mipi_lvds2_sditf_vir1 = "/rkcif-mipi-lvds2-sditf-vir1"; + pcie2x1l2 = "/pcie@fe190000"; i2c6m1_xfer = "/pinctrl/i2c6/i2c6m1-xfer"; - i2c6m3_xfer = "/pinctrl/i2c6/i2c6m3-xfer"; - i2c6m4_xfer = "/pinctrl/i2c6/i2c6m4-xfer"; - i2c6m2_xfer = "/pinctrl/i2c6/i2c6m2-xfer"; - i2c7m0_xfer = "/pinctrl/i2c7/i2c7m0-xfer"; - i2c7m2_xfer = "/pinctrl/i2c7/i2c7m2-xfer"; - i2c7m3_xfer = "/pinctrl/i2c7/i2c7m3-xfer"; + package_serial_number_low = "/otp@fecc0000/package-serial-number-low@6"; + iep_mmu = "/iommu@fdbb0800"; + l2_cache_b3 = "/cpus/l2-cache-b3"; + i2c3m0_xfer = "/pinctrl/i2c3/i2c3m0-xfer"; + vcc_1v1_nldo_s3 = "/vcc-1v1-nldo-s3"; + spi1m2_cs1 = "/pinctrl/spi1/spi1m2-cs1"; + pdm0m1_idle = "/pinctrl/pdm0/pdm0m1-idle"; + can0 = "/can@fea50000"; + spi4m2_pins = "/pinctrl/spi4/spi4m2-pins"; + pcfg_pull_none_drv_level_4 = "/pinctrl/pcfg-pull-none-drv-level-4"; + pwm9m1_pins = "/pinctrl/pwm9/pwm9m1-pins"; + arm_pmu = "/arm-pmu"; + vp2 = "/vop@fdd90000/ports/port@2"; + rk806single = "/spi@feb20000/rk806single@0"; + spi1m1_pins = "/pinctrl/spi1/spi1m1-pins"; + pwm6m0_pins = "/pinctrl/pwm6/pwm6m0-pins"; + gmac0_mtl_tx_setup = "/ethernet@fe1b0000/tx-queues-config"; + rng = "/rng@fe378000"; + cpu_l2 = "/cpus/cpu@200"; + uart9 = "/serial@febc0000"; + spi0m1_cs0 = "/pinctrl/spi0/spi0m1-cs0"; + rk806_dvs3_gpio = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs3_gpio"; + rkcif_mipi_lvds5_sditf = "/rkcif-mipi-lvds5-sditf"; + usbdpphy0_grf = "/syscon@fd5c8000"; + mipim1_camera3_clk = "/pinctrl/mipi/mipim1-camera3-clk"; + pcie_clk3 = "/pcie-clk3"; + mipim0_camera1_clk = "/pinctrl/mipi/mipim0-camera1-clk"; + vp0_out_hdmi0 = "/vop@fdd90000/ports/port@0/endpoint@2"; + rkcif = "/rkcif@fdce0000"; + gmac0_rgmii_clk = "/pinctrl/gmac0/gmac0-rgmii-clk"; + wdt_en_base = "/pinctrl/wdt-pc9202/wdt-en-base"; + vp3_out_rgb = "/vop@fdd90000/ports/port@3/endpoint@2"; + spdif_rx0 = "/spdif-rx@fde08000"; + sdmmc_bus4 = "/pinctrl/sdmmc/sdmmc-bus4"; + hdmim2_tx0_scl = "/pinctrl/hdmi/hdmim2-tx0-scl"; + hdmim2_tx0_sda = "/pinctrl/hdmi/hdmim2-tx0-sda"; + spi2m1_cs1 = "/pinctrl/spi2/spi2m1-cs1"; + pwm15m3_pins = "/pinctrl/pwm15/pwm15m3-pins"; + sata0m0_pins = "/pinctrl/sata0/sata0m0-pins"; + uart7m0_xfer = "/pinctrl/uart7/uart7m0-xfer"; + csi2_dphy2 = "/csi2-dphy2"; + spi3 = "/spi@feb30000"; + edp0_in_vp0 = "/edp@fdec0000/ports/port@0/endpoint@0"; + gpio1 = "/pinctrl/gpio@fec20000"; + tsadcm1_shut = "/pinctrl/tsadc/tsadcm1-shut"; + usbdp_phy0_dp_altmode_mux = "/phy@fed80000/port/endpoint@1"; + i2s2m0_idle = "/pinctrl/i2s2/i2s2m0-idle"; + spi1m0_cs0 = "/pinctrl/spi1/spi1m0-cs0"; + rkcif_mipi_lvds1_sditf_vir2 = "/rkcif-mipi-lvds1-sditf-vir2"; + i2s3_sclk = "/pinctrl/i2s3/i2s3-sclk"; + hdmim1_rx_hpdin = "/pinctrl/hdmi/hdmim1-rx-hpdin"; + spi3m0_cs1 = "/pinctrl/spi3/spi3m0-cs1"; + mipi_dcphy1 = "/mipi-dcphy-dummy"; + vcc5v0_sys = "/vcc5v0-sys"; + aclk_hdcp0_pre = "/clocks/aclk_hdcp0_pre@fd7c08dc"; + usb_con = "/i2c@fec80000/fusb302@22/connector"; + hdmirx_ctrler = "/hdmirx-controller@fdee0000"; i2c7m1_xfer = "/pinctrl/i2c7/i2c7m1-xfer"; - i2c8m0_xfer = "/pinctrl/i2c8/i2c8m0-xfer"; - i2c8m2_xfer = "/pinctrl/i2c8/i2c8m2-xfer"; - i2c8m3_xfer = "/pinctrl/i2c8/i2c8m3-xfer"; - i2c8m4_xfer = "/pinctrl/i2c8/i2c8m4-xfer"; - i2c8m1_xfer = "/pinctrl/i2c8/i2c8m1-xfer"; - i2s0_idle = "/pinctrl/i2s0/i2s0-idle"; - i2s0_lrck = "/pinctrl/i2s0/i2s0-lrck"; - i2s0_mclk = "/pinctrl/i2s0/i2s0-mclk"; - i2s0_sclk = "/pinctrl/i2s0/i2s0-sclk"; - i2s0_sdi0 = "/pinctrl/i2s0/i2s0-sdi0"; - i2s0_sdi1 = "/pinctrl/i2s0/i2s0-sdi1"; - i2s0_sdi2 = "/pinctrl/i2s0/i2s0-sdi2"; - i2s0_sdi3 = "/pinctrl/i2s0/i2s0-sdi3"; - i2s0_sdo0 = "/pinctrl/i2s0/i2s0-sdo0"; - i2s0_sdo1 = "/pinctrl/i2s0/i2s0-sdo1"; - i2s0_sdo2 = "/pinctrl/i2s0/i2s0-sdo2"; - i2s0_sdo3 = "/pinctrl/i2s0/i2s0-sdo3"; - i2s1m0_lrck = "/pinctrl/i2s1/i2s1m0-lrck"; - i2s1m0_mclk = "/pinctrl/i2s1/i2s1m0-mclk"; - i2s1m0_sclk = "/pinctrl/i2s1/i2s1m0-sclk"; - i2s1m0_sdi0 = "/pinctrl/i2s1/i2s1m0-sdi0"; - i2s1m0_sdi1 = "/pinctrl/i2s1/i2s1m0-sdi1"; - i2s1m0_sdi2 = "/pinctrl/i2s1/i2s1m0-sdi2"; - i2s1m0_sdi3 = "/pinctrl/i2s1/i2s1m0-sdi3"; + pcfg_pull_up_drv_level_3 = "/pinctrl/pcfg-pull-up-drv-level-3"; + rgmii_phy1 = "/ethernet@fe1c0000/mdio/phy@1"; + i2c4m0_xfer = "/pinctrl/i2c4/i2c4m0-xfer"; + pcfg_pull_down_drv_level_7 = "/pinctrl/pcfg-pull-down-drv-level-7"; + spdif0m0_tx = "/pinctrl/spdif0/spdif0m0-tx"; + wdt = "/watchdog@feaf0000"; + vdd_0v85_s0 = "/spi@feb20000/rk806single@0/regulators/NLDO_REG4"; + cspmu = "/cspmu@fd10c000"; + gmac_uio0 = "/uio@fe1b0000"; + av1d_mmu = "/iommu@fdca0000"; + mailbox2 = "/mailbox@fece0000"; + mipi4_csi2_hw = "/mipi4-csi2-hw@fdd50000"; + pdm1m1_idle = "/pinctrl/pdm1/pdm1m1-idle"; + rga3_core0 = "/rga@fdb60000"; i2s1m0_sdo0 = "/pinctrl/i2s1/i2s1m0-sdo0"; - i2s1m0_sdo1 = "/pinctrl/i2s1/i2s1m0-sdo1"; - i2s1m0_sdo2 = "/pinctrl/i2s1/i2s1m0-sdo2"; - i2s1m0_sdo3 = "/pinctrl/i2s1/i2s1m0-sdo3"; - i2s1m1_lrck = "/pinctrl/i2s1/i2s1m1-lrck"; - i2s1m1_mclk = "/pinctrl/i2s1/i2s1m1-mclk"; - i2s1m1_sclk = "/pinctrl/i2s1/i2s1m1-sclk"; + bigcore1_thermal = "/thermal-zones/bigcore1-thermal"; + pcfg_output_low_pull_up = "/pinctrl/pcfg-output-low-pull-up"; + spi2m1_pins = "/pinctrl/spi2/spi2m1-pins"; + pwm7m0_pins = "/pinctrl/pwm7/pwm7m0-pins"; + i2c2 = "/i2c@feaa0000"; + npu_grf = "/syscon@fd5a2000"; i2s1m1_sdi0 = "/pinctrl/i2s1/i2s1m1-sdi0"; - i2s1m1_sdi1 = "/pinctrl/i2s1/i2s1m1-sdi1"; - i2s1m1_sdi2 = "/pinctrl/i2s1/i2s1m1-sdi2"; - i2s1m1_sdi3 = "/pinctrl/i2s1/i2s1m1-sdi3"; - i2s1m1_sdo0 = "/pinctrl/i2s1/i2s1m1-sdo0"; - i2s1m1_sdo1 = "/pinctrl/i2s1/i2s1m1-sdo1"; - i2s1m1_sdo2 = "/pinctrl/i2s1/i2s1m1-sdo2"; - i2s1m1_sdo3 = "/pinctrl/i2s1/i2s1m1-sdo3"; - i2s2m1_idle = "/pinctrl/i2s2/i2s2m1-idle"; - i2s2m1_lrck = "/pinctrl/i2s2/i2s2m1-lrck"; - i2s2m1_mclk = "/pinctrl/i2s2/i2s2m1-mclk"; - i2s2m1_sclk = "/pinctrl/i2s2/i2s2m1-sclk"; - i2s2m1_sdi = "/pinctrl/i2s2/i2s2m1-sdi"; - i2s2m1_sdo = "/pinctrl/i2s2/i2s2m1-sdo"; - i2s2m0_idle = "/pinctrl/i2s2/i2s2m0-idle"; - i2s2m0_lrck = "/pinctrl/i2s2/i2s2m0-lrck"; - i2s2m0_mclk = "/pinctrl/i2s2/i2s2m0-mclk"; - i2s2m0_sclk = "/pinctrl/i2s2/i2s2m0-sclk"; - i2s2m0_sdi = "/pinctrl/i2s2/i2s2m0-sdi"; - i2s2m0_sdo = "/pinctrl/i2s2/i2s2m0-sdo"; - i2s3_idle = "/pinctrl/i2s3/i2s3-idle"; - i2s3_lrck = "/pinctrl/i2s3/i2s3-lrck"; - i2s3_mclk = "/pinctrl/i2s3/i2s3-mclk"; - i2s3_sclk = "/pinctrl/i2s3/i2s3-sclk"; - i2s3_sdi = "/pinctrl/i2s3/i2s3-sdi"; - i2s3_sdo = "/pinctrl/i2s3/i2s3-sdo"; - jtagm0_pins = "/pinctrl/jtag/jtagm0-pins"; - jtagm1_pins = "/pinctrl/jtag/jtagm1-pins"; - jtagm2_pins = "/pinctrl/jtag/jtagm2-pins"; - litcpu_pins = "/pinctrl/litcpu/litcpu-pins"; - mcum0_pins = "/pinctrl/mcu/mcum0-pins"; + mipi5_csi2 = "/mipi5-csi2"; + pwm8 = "/pwm@febe0000"; + log_leakage = "/otp@fecc0000/log-leakage@1a"; + cpub23_opp_info = "/otp@fecc0000/cpub23-opp-info@49"; + vdd_vdenc_mem_s0 = "/spi@feb20000/rk806single@0/regulators/DCDC_REG4"; + rga2 = "/rga@fdb80000"; + emmc_bus8 = "/pinctrl/emmc/emmc-bus8"; + qos_usb3_0 = "/qos@fdf3e200"; + sata1m0_pins = "/pinctrl/sata1/sata1m0-pins"; + uart8m0_xfer = "/pinctrl/uart8/uart8m0-xfer"; + pwm13m2_pins = "/pinctrl/pwm13/pwm13m2-pins"; + hdmi_debug3 = "/pinctrl/hdmi/hdmi-debug3"; + cam0_or_cam1_switch_pin = "/pinctrl/cam/cam0-or-cam1-switch-pin"; mcum1_pins = "/pinctrl/mcu/mcum1-pins"; - mipim0_camera0_clk = "/pinctrl/mipi/mipim0-camera0-clk"; - mipim0_camera1_clk = "/pinctrl/mipi/mipim0-camera1-clk"; - mipim0_camera2_clk = "/pinctrl/mipi/mipim0-camera2-clk"; - mipim0_camera3_clk = "/pinctrl/mipi/mipim0-camera3-clk"; - mipim0_camera4_clk = "/pinctrl/mipi/mipim0-camera4-clk"; - mipim1_camera0_clk = "/pinctrl/mipi/mipim1-camera0-clk"; - mipim1_camera1_clk = "/pinctrl/mipi/mipim1-camera1-clk"; - mipim1_camera2_clk = "/pinctrl/mipi/mipim1-camera2-clk"; - mipim1_camera3_clk = "/pinctrl/mipi/mipim1-camera3-clk"; - mipim1_camera4_clk = "/pinctrl/mipi/mipim1-camera4-clk"; - mipi_te0 = "/pinctrl/mipi/mipi-te0"; - mipi_te1 = "/pinctrl/mipi/mipi-te1"; - npu_pins = "/pinctrl/npu/npu-pins"; - pcie20x1m0_pins = "/pinctrl/pcie20x1/pcie20x1m0-pins"; - pcie20x1m1_pins = "/pinctrl/pcie20x1/pcie20x1m1-pins"; - pcie20x1_2_button_rstn = "/pinctrl/pcie20x1/pcie20x1-2-button-rstn"; - pcie30phy_pins = "/pinctrl/pcie30phy/pcie30phy-pins"; - pcie30x1m0_pins = "/pinctrl/pcie30x1/pcie30x1m0-pins"; - pcie30x1m1_pins = "/pinctrl/pcie30x1/pcie30x1m1-pins"; - pcie30x1m2_pins = "/pinctrl/pcie30x1/pcie30x1m2-pins"; - pcie30x1_0_button_rstn = "/pinctrl/pcie30x1/pcie30x1-0-button-rstn"; - pcie30x1_1_button_rstn = "/pinctrl/pcie30x1/pcie30x1-1-button-rstn"; - pcie30x2m0_pins = "/pinctrl/pcie30x2/pcie30x2m0-pins"; - pcie30x2m1_pins = "/pinctrl/pcie30x2/pcie30x2m1-pins"; - pcie30x2m2_pins = "/pinctrl/pcie30x2/pcie30x2m2-pins"; - pcie30x2m3_pins = "/pinctrl/pcie30x2/pcie30x2m3-pins"; - pcie30x2_button_rstn = "/pinctrl/pcie30x2/pcie30x2-button-rstn"; - pcie30x4m0_pins = "/pinctrl/pcie30x4/pcie30x4m0-pins"; - pcie30x4m1_pins = "/pinctrl/pcie30x4/pcie30x4m1-pins"; - pcie30x4m2_pins = "/pinctrl/pcie30x4/pcie30x4m2-pins"; - pcie30x4m3_pins = "/pinctrl/pcie30x4/pcie30x4m3-pins"; - pcie30x4_button_rstn = "/pinctrl/pcie30x4/pcie30x4-button-rstn"; - pdm0m0_clk = "/pinctrl/pdm0/pdm0m0-clk"; + pwm10m1_pins = "/pinctrl/pwm10/pwm10m1-pins"; + edp1_out = "/edp@fded0000/ports/port@1/endpoint"; + hclk_sdio_pre = "/clocks/hclk_sdio_pre@fd7c092c"; + usb_host0_ehci = "/usb@fc800000"; + edp1_in_vp0 = "/edp@fded0000/ports/port@0/endpoint@0"; + gmac1 = "/ethernet@fe1c0000"; + i2s10_8ch = "/i2s@fde00000"; + hdmi1_in = "/hdmi@fdea0000/ports/port@0"; + usb2phy1_grf = "/syscon@fd5d4000"; pdm0m0_clk1 = "/pinctrl/pdm0/pdm0m0-clk1"; - pdm0m0_idle = "/pinctrl/pdm0/pdm0m0-idle"; - pdm0m0_sdi0 = "/pinctrl/pdm0/pdm0m0-sdi0"; - pdm0m0_sdi1 = "/pinctrl/pdm0/pdm0m0-sdi1"; - pdm0m0_sdi2 = "/pinctrl/pdm0/pdm0m0-sdi2"; - pdm0m0_sdi3 = "/pinctrl/pdm0/pdm0m0-sdi3"; - pdm0m1_clk = "/pinctrl/pdm0/pdm0m1-clk"; - pdm0m1_clk1 = "/pinctrl/pdm0/pdm0m1-clk1"; - pdm0m1_idle = "/pinctrl/pdm0/pdm0m1-idle"; - pdm0m1_sdi0 = "/pinctrl/pdm0/pdm0m1-sdi0"; - pdm0m1_sdi1 = "/pinctrl/pdm0/pdm0m1-sdi1"; - pdm0m1_sdi2 = "/pinctrl/pdm0/pdm0m1-sdi2"; - pdm0m1_sdi3 = "/pinctrl/pdm0/pdm0m1-sdi3"; - pdm1m0_clk = "/pinctrl/pdm1/pdm1m0-clk"; + jpege2_mmu = "/iommu@fdba8800"; + pwm13 = "/pwm@febf0010"; + pcie2x1l0 = "/pcie@fe170000"; + hdmi0_in_vp1 = "/hdmi@fde80000/ports/port@0/endpoint@1"; + hdmim0_tx1_cec = "/pinctrl/hdmi/hdmim0-tx1-cec"; + l2_cache_b1 = "/cpus/l2-cache-b1"; + cif_dvp_bus8 = "/pinctrl/cif/cif-dvp-bus8"; + qos_rga2_mro = "/qos@fdf66c00"; + aclk_rkvdec1_pre = "/clocks/aclk_rkvdec1_pre@fd7c08a4"; + i2c8m1_xfer = "/pinctrl/i2c8/i2c8m1-xfer"; + vdd_ddr_s0 = "/spi@feb20000/rk806single@0/regulators/DCDC_REG5"; + hdmirx_det = "/pinctrl/hdmirx/hdmirx-det"; + pca9555 = "/i2c@feab0000/gpio@21"; + qos_sdmmc = "/qos@fdf3d800"; + clk32k_out1 = "/pinctrl/clk32k/clk32k-out1"; + i2c5m0_xfer = "/pinctrl/i2c5/i2c5m0-xfer"; + cif_dvp_clk = "/pinctrl/cif/cif-dvp-clk"; + rknpu = "/npu@fdab0000"; + pcfg_pull_none_drv_level_2 = "/pinctrl/pcfg-pull-none-drv-level-2"; + spi3m2_cs0 = "/pinctrl/spi3/spi3m2-cs0"; + vp0 = "/vop@fdd90000/ports/port@0"; + rga3_1_mmu = "/iommu@fdb70f00"; + jtagm2_pins = "/pinctrl/jtag/jtagm2-pins"; + cpu_l0 = "/cpus/cpu@0"; + uart7 = "/serial@feba0000"; + rkisp1_vir2 = "/rkisp1-vir2"; + fec1_mmu = "/iommu@fdcd8f00"; + qos_vop_m0 = "/qos@fdf82000"; + pcie_clk1 = "/pcie-clk1"; + gmac1_ptp_ref_clk = "/pinctrl/gmac1/gmac1-ptp-ref-clk"; + spi3m1_pins = "/pinctrl/spi3/spi3m1-pins"; + pwm8m0_pins = "/pinctrl/pwm8/pwm8m0-pins"; + hdmi0_sound = "/hdmi0-sound"; + ioc = "/syscon@fd5f0000"; + spi0m0_pins = "/pinctrl/spi0/spi0m0-pins"; + avsd = "/avsd-plus@fdb51000"; + rkcif_mipi_lvds5_sditf_vir3 = "/rkcif-mipi-lvds5-sditf-vir3"; + u2phy2 = "/syscon@fd5d8000/usb2-phy@8000"; + sfc = "/spi@fe2b0000"; + csi2_dphy0 = "/csi2-dphy0"; + spi1 = "/spi@feb10000"; + spi4m1_cs0 = "/pinctrl/spi4/spi4m1-cs0"; + gpu_grf = "/syscon@fd5a0000"; + pcfg_pull_up_drv_level_14 = "/pinctrl/pcfg-pull-up-drv-level-14"; + wireless_bluetooth = "/wireless-bluetooth"; + pclk_av1_pre = "/clocks/pclk_av1_pre@fd7c0910"; + sata2m0_pins = "/pinctrl/sata2/sata2m0-pins"; + uart9m0_xfer = "/pinctrl/uart9/uart9m0-xfer"; + pwm14m2_pins = "/pinctrl/pwm14/pwm14m2-pins"; + i2s1m0_sdi2 = "/pinctrl/i2s1/i2s1m0-sdi2"; + pwm11m1_pins = "/pinctrl/pwm11/pwm11m1-pins"; + bt_sound = "/bt-sound"; + qos_rkvenc1_m0ro = "/qos@fdf61000"; + mclkout_i2s2 = "/clocks/mclkout-i2s2@fd58c318"; + dsi0 = "/dsi@fde20000"; pdm1m0_clk1 = "/pinctrl/pdm1/pdm1m0-clk1"; - pdm1m0_idle = "/pinctrl/pdm1/pdm1m0-idle"; - pdm1m0_sdi0 = "/pinctrl/pdm1/pdm1m0-sdi0"; - pdm1m0_sdi1 = "/pinctrl/pdm1/pdm1m0-sdi1"; - pdm1m0_sdi2 = "/pinctrl/pdm1/pdm1m0-sdi2"; - pdm1m0_sdi3 = "/pinctrl/pdm1/pdm1m0-sdi3"; + uart1m0_rtsn = "/pinctrl/uart1/uart1m0-rtsn"; + ddrphych2_pins = "/pinctrl/ddrphych2/ddrphych2-pins"; + route_edp0 = "/display-subsystem/route/route-edp0"; + hdmi0 = "/hdmi@fde80000"; + es8388_sound = "/es8388-sound"; + hdmi1_in_vp1 = "/hdmi@fdea0000/ports/port@0/endpoint@1"; + pcfg_pull_up_drv_level_1 = "/pinctrl/pcfg-pull-up-drv-level-1"; + pcfg_pull_down_drv_level_5 = "/pinctrl/pcfg-pull-down-drv-level-5"; + i2s0_sdo2 = "/pinctrl/i2s0/i2s0-sdo2"; + vop_out = "/vop@fdd90000/ports"; + vdd_0v75_s3 = "/spi@feb20000/rk806single@0/regulators/NLDO_REG1"; + hdmim1_rx = "/pinctrl/hdmi/hdmim1-rx"; + pcfg_pull_down_smt = "/pinctrl/pcfg-pull-down-smt"; + hdmim0_tx1_scl = "/pinctrl/hdmi/hdmim0-tx1-scl"; + hdmim0_tx1_sda = "/pinctrl/hdmi/hdmim0-tx1-sda"; + cpul_opp_info = "/otp@fecc0000/cpul-opp-info@3d"; + clk32k_in = "/pinctrl/clk32k/clk32k-in"; + usbdp_phy1 = "/phy@fed90000"; + mailbox0 = "/mailbox@fec60000"; + i2c6m0_xfer = "/pinctrl/i2c6/i2c6m0-xfer"; + pdm0m1_sdi2 = "/pinctrl/pdm0/pdm0m1-sdi2"; + sdmmc = "/mmc@fe2c0000"; + hclk_nvm = "/clocks/hclk_nvm@fd7c087c"; + hdmim0_tx1_hpd = "/pinctrl/hdmi/hdmim0-tx1-hpd"; + vp0_out_dp0 = "/vop@fdd90000/ports/port@0/endpoint@0"; + vddq_ddr_s0 = "/spi@feb20000/rk806single@0/regulators/DCDC_REG9"; + vcc_3v3_s3 = "/spi@feb20000/rk806single@0/regulators/DCDC_REG8"; + gmac0_ppstring = "/pinctrl/gmac0/gmac0-ppstring"; + i2c0 = "/i2c@fd880000"; pdm1m1_clk = "/pinctrl/pdm1/pdm1m1-clk"; - pdm1m1_clk1 = "/pinctrl/pdm1/pdm1m1-clk1"; - pdm1m1_idle = "/pinctrl/pdm1/pdm1m1-idle"; - pdm1m1_sdi0 = "/pinctrl/pdm1/pdm1m1-sdi0"; - pdm1m1_sdi1 = "/pinctrl/pdm1/pdm1m1-sdi1"; - pdm1m1_sdi2 = "/pinctrl/pdm1/pdm1m1-sdi2"; - pdm1m1_sdi3 = "/pinctrl/pdm1/pdm1m1-sdi3"; - pmic_pins = "/pinctrl/pmic/pmic-pins"; - pmu_pins = "/pinctrl/pmu/pmu-pins"; - pwm0m0_pins = "/pinctrl/pwm0/pwm0m0-pins"; - pwm0m1_pins = "/pinctrl/pwm0/pwm0m1-pins"; - pwm0m2_pins = "/pinctrl/pwm0/pwm0m2-pins"; - pwm1m0_pins = "/pinctrl/pwm1/pwm1m0-pins"; - pwm1m1_pins = "/pinctrl/pwm1/pwm1m1-pins"; - pwm1m2_pins = "/pinctrl/pwm1/pwm1m2-pins"; - pwm2m0_pins = "/pinctrl/pwm2/pwm2m0-pins"; - pwm2m1_pins = "/pinctrl/pwm2/pwm2m1-pins"; - pwm2m2_pins = "/pinctrl/pwm2/pwm2m2-pins"; - pwm3m0_pins = "/pinctrl/pwm3/pwm3m0-pins"; - pwm3m1_pins = "/pinctrl/pwm3/pwm3m1-pins"; - pwm3m2_pins = "/pinctrl/pwm3/pwm3m2-pins"; - pwm3m3_pins = "/pinctrl/pwm3/pwm3m3-pins"; - pwm4m0_pins = "/pinctrl/pwm4/pwm4m0-pins"; - pwm4m1_pins = "/pinctrl/pwm4/pwm4m1-pins"; - pwm5m0_pins = "/pinctrl/pwm5/pwm5m0-pins"; - pwm5m1_pins = "/pinctrl/pwm5/pwm5m1-pins"; - pwm5m2_pins = "/pinctrl/pwm5/pwm5m2-pins"; - pwm6m0_pins = "/pinctrl/pwm6/pwm6m0-pins"; - pwm6m1_pins = "/pinctrl/pwm6/pwm6m1-pins"; - pwm6m2_pins = "/pinctrl/pwm6/pwm6m2-pins"; - pwm7m0_pins = "/pinctrl/pwm7/pwm7m0-pins"; - pwm7m1_pins = "/pinctrl/pwm7/pwm7m1-pins"; - pwm7m2_pins = "/pinctrl/pwm7/pwm7m2-pins"; - pwm7m3_pins = "/pinctrl/pwm7/pwm7m3-pins"; - pwm8m0_pins = "/pinctrl/pwm8/pwm8m0-pins"; - pwm8m1_pins = "/pinctrl/pwm8/pwm8m1-pins"; - pwm8m2_pins = "/pinctrl/pwm8/pwm8m2-pins"; + pdm0m0_idle = "/pinctrl/pdm0/pdm0m0-idle"; + soc_thermal = "/thermal-zones/soc-thermal"; + cluster1_opp_table = "/cluster1-opp-table"; + i2s0_idle = "/pinctrl/i2s0/i2s0-idle"; + spi4m1_pins = "/pinctrl/spi4/spi4m1-pins"; + npu_opp_info = "/otp@fecc0000/npu-opp-info@55"; pwm9m0_pins = "/pinctrl/pwm9/pwm9m0-pins"; - pwm9m1_pins = "/pinctrl/pwm9/pwm9m1-pins"; - pwm9m2_pins = "/pinctrl/pwm9/pwm9m2-pins"; - pwm10m0_pins = "/pinctrl/pwm10/pwm10m0-pins"; - pwm10m1_pins = "/pinctrl/pwm10/pwm10m1-pins"; - pwm10m2_pins = "/pinctrl/pwm10/pwm10m2-pins"; - pwm11m0_pins = "/pinctrl/pwm11/pwm11m0-pins"; - pwm11m1_pins = "/pinctrl/pwm11/pwm11m1-pins"; - pwm11m2_pins = "/pinctrl/pwm11/pwm11m2-pins"; - pwm11m3_pins = "/pinctrl/pwm11/pwm11m3-pins"; - pwm12m0_pins = "/pinctrl/pwm12/pwm12m0-pins"; - pwm12m1_pins = "/pinctrl/pwm12/pwm12m1-pins"; - pwm13m0_pins = "/pinctrl/pwm13/pwm13m0-pins"; - pwm13m1_pins = "/pinctrl/pwm13/pwm13m1-pins"; - pwm13m2_pins = "/pinctrl/pwm13/pwm13m2-pins"; - pwm14m0_pins = "/pinctrl/pwm14/pwm14m0-pins"; - pwm14m1_pins = "/pinctrl/pwm14/pwm14m1-pins"; - pwm14m2_pins = "/pinctrl/pwm14/pwm14m2-pins"; - pwm15m0_pins = "/pinctrl/pwm15/pwm15m0-pins"; - pwm15m1_pins = "/pinctrl/pwm15/pwm15m1-pins"; + pwm6 = "/pwm@febd0020"; + spi1m0_pins = "/pinctrl/spi1/spi1m0-pins"; + hym8563 = "/i2c@fd880000/hym8563@51"; + i2s1m1_sclk = "/pinctrl/i2s1/i2s1m1-sclk"; + rk806_dvs2_gpio = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs2_gpio"; + hp_det = "/pinctrl/headphone/hp-det"; + hdmi_debug1 = "/pinctrl/hdmi/hdmi-debug1"; + vp1_out_dp1 = "/vop@fdd90000/ports/port@1/endpoint@3"; + qos_mcu_npu = "/qos@fdf72400"; + auddsm_pins = "/pinctrl/auddsm/auddsm-pins"; + i2s3_lrck = "/pinctrl/i2s3/i2s3-lrck"; + pcfg_pull_none_drv_level_2_smt = "/pinctrl/pcfg-pull-none-drv-level-2-smt"; pwm15m2_pins = "/pinctrl/pwm15/pwm15m2-pins"; - pwm15m3_pins = "/pinctrl/pwm15/pwm15m3-pins"; - refclk_pins = "/pinctrl/refclk/refclk-pins"; - sata_pins = "/pinctrl/sata/sata-pins"; - sata_reset = "/pinctrl/sata/sata-reset"; - sata0m0_pins = "/pinctrl/sata0/sata0m0-pins"; - sata0m1_pins = "/pinctrl/sata0/sata0m1-pins"; - sata1m0_pins = "/pinctrl/sata1/sata1m0-pins"; - sata1m1_pins = "/pinctrl/sata1/sata1m1-pins"; - sata2m0_pins = "/pinctrl/sata2/sata2m0-pins"; - sata2m1_pins = "/pinctrl/sata2/sata2m1-pins"; + pipe_phy1_grf = "/syscon@fd5c0000"; + pwm12m1_pins = "/pinctrl/pwm12/pwm12m1-pins"; + pwm11 = "/pwm@febe0030"; + rkisp_unite = "/rkisp-unite@fdcb0000"; + rkcif_mipi_lvds2_sditf = "/rkcif-mipi-lvds2-sditf"; + vp1_out_edp0 = "/vop@fdd90000/ports/port@1/endpoint@1"; + hclk_isp1_pre = "/clocks/hclk_isp1_pre@fd7c0868"; + rk806_dvs2_slp = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs2_slp"; + i2s7_8ch = "/i2s@fddf8000"; + uart5m1_rtsn = "/pinctrl/uart5/uart5m1-rtsn"; + mipidphy1_grf = "/syscon@fd5b5000"; + usbhost3_0 = "/usbhost3_0"; + jpege2 = "/jpege-core@fdba8000"; + pcfg_pull_none_drv_level_15 = "/pinctrl/pcfg-pull-none-drv-level-15"; + pcie3x2_intc = "/pcie@fe160000/legacy-interrupt-controller"; + vp2_out_dsi1 = "/vop@fdd90000/ports/port@2/endpoint@4"; + mipidphy0_in_ucam0 = "/csi2-dphy0/ports/port@0/endpoint@0"; + av1d = "/av1d@fdc70000"; + uart1m2_ctsn = "/pinctrl/uart1/uart1m2-ctsn"; sdiom1_pins = "/pinctrl/sdio/sdiom1-pins"; - sdiom0_pins = "/pinctrl/sdio/sdiom0-pins"; - sdmmc_bus4 = "/pinctrl/sdmmc/sdmmc-bus4"; - sdmmc_clk = "/pinctrl/sdmmc/sdmmc-clk"; - sdmmc_cmd = "/pinctrl/sdmmc/sdmmc-cmd"; - sdmmc_det = "/pinctrl/sdmmc/sdmmc-det"; - sdmmc_pwren = "/pinctrl/sdmmc/sdmmc-pwren"; - spdif0m0_tx = "/pinctrl/spdif0/spdif0m0-tx"; - spdif0m1_tx = "/pinctrl/spdif0/spdif0m1-tx"; - spdif1m0_tx = "/pinctrl/spdif1/spdif1m0-tx"; - spdif1m1_tx = "/pinctrl/spdif1/spdif1m1-tx"; - spdif1m2_tx = "/pinctrl/spdif1/spdif1m2-tx"; - spi0m0_pins = "/pinctrl/spi0/spi0m0-pins"; - spi0m0_cs0 = "/pinctrl/spi0/spi0m0-cs0"; + rockchip_suspend = "/rockchip-suspend"; + rk806_dvs2_pwrdn = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs2_pwrdn"; + pcfg_pull_none_drv_level_0 = "/pinctrl/pcfg-pull-none-drv-level-0"; + npu_thermal = "/thermal-zones/npu-thermal"; + i2c7m0_xfer = "/pinctrl/i2c7/i2c7m0-xfer"; + pdm1m1_sdi2 = "/pinctrl/pdm1/pdm1m1-sdi2"; + cpu_pins = "/pinctrl/cpu/cpu-pins"; + dsi0_in_vp2 = "/dsi@fde20000/ports/port@0/endpoint@0"; + bt_wake_gpio = "/pinctrl/wireless-bluetooth/bt-wake-gpio"; + uart5 = "/serial@feb80000"; + dwc3_0_role_switch = "/usbdrd3_0/usb@fc000000/port/endpoint@0"; + rkisp1_vir0 = "/rkisp1-vir0"; + fiq_debugger = "/fiq-debugger"; + usbdp_phy1_u3 = "/phy@fed90000/u3-port"; spi0m0_cs1 = "/pinctrl/spi0/spi0m0-cs1"; - spi0m1_pins = "/pinctrl/spi0/spi0m1-pins"; - spi0m1_cs0 = "/pinctrl/spi0/spi0m1-cs0"; - spi0m1_cs1 = "/pinctrl/spi0/spi0m1-cs1"; - spi0m2_pins = "/pinctrl/spi0/spi0m2-pins"; - spi0m2_cs0 = "/pinctrl/spi0/spi0m2-cs0"; - spi0m2_cs1 = "/pinctrl/spi0/spi0m2-cs1"; - spi0m3_pins = "/pinctrl/spi0/spi0m3-pins"; - spi0m3_cs0 = "/pinctrl/spi0/spi0m3-cs0"; - spi0m3_cs1 = "/pinctrl/spi0/spi0m3-cs1"; - spi1m1_pins = "/pinctrl/spi1/spi1m1-pins"; - spi1m1_cs0 = "/pinctrl/spi1/spi1m1-cs0"; - spi1m1_cs1 = "/pinctrl/spi1/spi1m1-cs1"; - spi1m2_pins = "/pinctrl/spi1/spi1m2-pins"; - spi1m2_cs0 = "/pinctrl/spi1/spi1m2-cs0"; - spi1m2_cs1 = "/pinctrl/spi1/spi1m2-cs1"; - spi1m0_pins = "/pinctrl/spi1/spi1m0-pins"; - spi1m0_cs0 = "/pinctrl/spi1/spi1m0-cs0"; - spi1m0_cs1 = "/pinctrl/spi1/spi1m0-cs1"; + sdio = "/mmc@fe2d0000"; + rkcif_mipi_lvds_sditf_vir2 = "/rkcif-mipi-lvds-sditf-vir2"; + spdif1m2_tx = "/pinctrl/spdif1/spdif1m2-tx"; + qos_gpu_m3 = "/qos@fdf35600"; + pdm1m0_idle = "/pinctrl/pdm1/pdm1m0-idle"; + pcfg_pull_none_drv_level_6_smt = "/pinctrl/pcfg-pull-none-drv-level-6-smt"; + user_led = "/leds/user"; + rkcif_mipi_lvds5_sditf_vir1 = "/rkcif-mipi-lvds5-sditf-vir1"; + i2s2m1_sdi = "/pinctrl/i2s2/i2s2m1-sdi"; + uart8_xfer = "/pinctrl/uart8/uart8-xfer"; + u2phy0 = "/syscon@fd5d0000/usb2-phy@0"; + pclk_vo1_grf = "/clocks/pclk_vo1_grf@fd7c08ec"; + vdd_gpu_mem_s0 = "/spi@feb20000/rk806single@0/regulators/DCDC_REG1"; spi2m0_pins = "/pinctrl/spi2/spi2m0-pins"; - spi2m0_cs0 = "/pinctrl/spi2/spi2m0-cs0"; - spi2m0_cs1 = "/pinctrl/spi2/spi2m0-cs1"; - spi2m1_pins = "/pinctrl/spi2/spi2m1-pins"; - spi2m1_cs0 = "/pinctrl/spi2/spi2m1-cs0"; - spi2m1_cs1 = "/pinctrl/spi2/spi2m1-cs1"; - spi2m2_pins = "/pinctrl/spi2/spi2m2-pins"; - spi2m2_cs0 = "/pinctrl/spi2/spi2m2-cs0"; - spi2m2_cs1 = "/pinctrl/spi2/spi2m2-cs1"; - spi3m1_pins = "/pinctrl/spi3/spi3m1-pins"; - spi3m1_cs0 = "/pinctrl/spi3/spi3m1-cs0"; - spi3m1_cs1 = "/pinctrl/spi3/spi3m1-cs1"; - spi3m2_pins = "/pinctrl/spi3/spi3m2-pins"; - spi3m2_cs0 = "/pinctrl/spi3/spi3m2-cs0"; - spi3m2_cs1 = "/pinctrl/spi3/spi3m2-cs1"; - spi3m3_pins = "/pinctrl/spi3/spi3m3-pins"; - spi3m3_cs0 = "/pinctrl/spi3/spi3m3-cs0"; - spi3m3_cs1 = "/pinctrl/spi3/spi3m3-cs1"; - spi3m0_pins = "/pinctrl/spi3/spi3m0-pins"; - spi3m0_cs0 = "/pinctrl/spi3/spi3m0-cs0"; - spi3m0_cs1 = "/pinctrl/spi3/spi3m0-cs1"; - spi4m0_pins = "/pinctrl/spi4/spi4m0-pins"; - spi4m0_cs0 = "/pinctrl/spi4/spi4m0-cs0"; - spi4m0_cs1 = "/pinctrl/spi4/spi4m0-cs1"; - spi4m1_pins = "/pinctrl/spi4/spi4m1-pins"; - spi4m1_cs0 = "/pinctrl/spi4/spi4m1-cs0"; - spi4m1_cs1 = "/pinctrl/spi4/spi4m1-cs1"; - spi4m2_pins = "/pinctrl/spi4/spi4m2-pins"; - spi4m2_cs0 = "/pinctrl/spi4/spi4m2-cs0"; - tsadcm1_shut = "/pinctrl/tsadc/tsadcm1-shut"; - tsadc_shut = "/pinctrl/tsadc/tsadc-shut"; - tsadc_shut_org = "/pinctrl/tsadc/tsadc-shut-org"; - uart0m0_xfer = "/pinctrl/uart0/uart0m0-xfer"; - uart0m1_xfer = "/pinctrl/uart0/uart0m1-xfer"; - uart0m2_xfer = "/pinctrl/uart0/uart0m2-xfer"; + qos_rga3_1 = "/qos@fdf36000"; + i2s2m1_sclk = "/pinctrl/i2s2/i2s2m1-sclk"; + pcfg_pull_up_drv_level_12 = "/pinctrl/pcfg-pull-up-drv-level-12"; + spdif_tx4 = "/spdif-tx@fdde8000"; + gmac1_mtl_rx_setup = "/ethernet@fe1c0000/rx-queues-config"; + rkispp1 = "/rkispp@fdcd8000"; + hdmim2_tx1_cec = "/pinctrl/hdmi/hdmim2-tx1-cec"; + u2phy1_otg = "/syscon@fd5d4000/usb2-phy@4000/otg-port"; + hdptxphy_hdmi_clk0 = "/hdmiphy@fed60000/clk-port"; + i2s1m0_sdi0 = "/pinctrl/i2s1/i2s1m0-sdi0"; + mipi4_csi2 = "/mipi4-csi2"; + mclkout_i2s0 = "/clocks/mclkout-i2s0@fd58c318"; + vcc5v0_host3 = "/vcc5v0-host3"; + rkcif_mipi_lvds5 = "/rkcif-mipi-lvds5"; + vdd_cpu_big0_s0 = "/i2c@fd880000/rk8602@42"; + dp1 = "/dp@fde60000"; + emmc_data_strobe = "/pinctrl/emmc/emmc-data-strobe"; + pwm13m1_pins = "/pinctrl/pwm13/pwm13m1-pins"; + vop_pins = "/pinctrl/vop/vop-pins"; + pcie20x1m1_pins = "/pinctrl/pcie20x1/pcie20x1m1-pins"; + fspim2_cs1 = "/pinctrl/fspi/fspim2-cs1"; + vcc_hub = "/vcc-hub-regulator"; + mcum0_pins = "/pinctrl/mcu/mcum0-pins"; + pwm10m0_pins = "/pinctrl/pwm10/pwm10m0-pins"; + uart9m2_rtsn = "/pinctrl/uart9/uart9m2-rtsn"; + mipidcphy0 = "/phy@feda0000"; + uart6m1_rtsn = "/pinctrl/uart6/uart6m1-rtsn"; + vcc3v3_pcie30 = "/vcc3v3-pcie30"; + pcfg_pull_down_drv_level_3 = "/pinctrl/pcfg-pull-down-drv-level-3"; + mipim1_camera0_clk = "/pinctrl/mipi/mipim1-camera0-clk"; + i2s0_sdo0 = "/pinctrl/i2s0/i2s0-sdo0"; + vop = "/vop@fdd90000"; + gmac0_ptp_refclk = "/pinctrl/gmac0/gmac0-ptp-refclk"; + usbdp_phy0_orientation_switch = "/phy@fed80000/port/endpoint@0"; + vepu = "/vepu@fdb50000"; + cif_clk = "/pinctrl/cif/cif-clk"; + pcie30_phy_grf = "/syscon@fd5b8000"; + isp1_mmu = "/iommu@fdcc7f00"; + pdm0m1_sdi0 = "/pinctrl/pdm0/pdm0m1-sdi0"; + rkvdec1_mmu = "/iommu@fdc48700"; + edp1 = "/edp@fded0000"; + cam0_cam1_switch = "/cam0-cam1-switch"; + gmac1_ppstrig = "/pinctrl/gmac1/gmac1-ppstrig"; + i2c8m0_xfer = "/pinctrl/i2c8/i2c8m0-xfer"; + dsi1_in_vp2 = "/dsi@fde30000/ports/port@0/endpoint@0"; + hdmim2_rx_hpdin = "/pinctrl/hdmi/hdmim2-rx-hpdin"; + i2s1m1_sdo3 = "/pinctrl/i2s1/i2s1m1-sdo3"; + pcfg_pull_down_drv_level_14 = "/pinctrl/pcfg-pull-down-drv-level-14"; + gmac0_rx_bus2 = "/pinctrl/gmac0/gmac0-rx-bus2"; + rkcif_mipi_lvds4_sditf_vir2 = "/rkcif-mipi-lvds4-sditf-vir2"; + center_thermal = "/thermal-zones/center-thermal"; uart0_ctsn = "/pinctrl/uart0/uart0-ctsn"; - uart0_rtsn = "/pinctrl/uart0/uart0-rtsn"; - uart1m1_xfer = "/pinctrl/uart1/uart1m1-xfer"; - uart1m1_ctsn = "/pinctrl/uart1/uart1m1-ctsn"; - uart1m1_rtsn = "/pinctrl/uart1/uart1m1-rtsn"; - uart1m2_xfer = "/pinctrl/uart1/uart1m2-xfer"; - uart1m2_ctsn = "/pinctrl/uart1/uart1m2-ctsn"; - uart1m2_rtsn = "/pinctrl/uart1/uart1m2-rtsn"; - uart1m0_xfer = "/pinctrl/uart1/uart1m0-xfer"; - uart1m0_ctsn = "/pinctrl/uart1/uart1m0-ctsn"; - uart1m0_rtsn = "/pinctrl/uart1/uart1m0-rtsn"; - uart2m0_xfer = "/pinctrl/uart2/uart2m0-xfer"; - uart2m1_xfer = "/pinctrl/uart2/uart2m1-xfer"; - uart2m2_xfer = "/pinctrl/uart2/uart2m2-xfer"; - uart2_ctsn = "/pinctrl/uart2/uart2-ctsn"; - uart2_rtsn = "/pinctrl/uart2/uart2-rtsn"; - uart3m0_xfer = "/pinctrl/uart3/uart3m0-xfer"; - uart3m1_xfer = "/pinctrl/uart3/uart3m1-xfer"; - uart3m2_xfer = "/pinctrl/uart3/uart3m2-xfer"; - uart3_ctsn = "/pinctrl/uart3/uart3-ctsn"; - uart3_rtsn = "/pinctrl/uart3/uart3-rtsn"; - uart4m0_xfer = "/pinctrl/uart4/uart4m0-xfer"; - uart4m1_xfer = "/pinctrl/uart4/uart4m1-xfer"; - uart4m2_xfer = "/pinctrl/uart4/uart4m2-xfer"; - uart4_ctsn = "/pinctrl/uart4/uart4-ctsn"; uart4_rtsn = "/pinctrl/uart4/uart4-rtsn"; - uart5m0_xfer = "/pinctrl/uart5/uart5m0-xfer"; - uart5m0_ctsn = "/pinctrl/uart5/uart5m0-ctsn"; - uart5m0_rtsn = "/pinctrl/uart5/uart5m0-rtsn"; - uart5m1_xfer = "/pinctrl/uart5/uart5m1-xfer"; - uart5m1_ctsn = "/pinctrl/uart5/uart5m1-ctsn"; - uart5m1_rtsn = "/pinctrl/uart5/uart5m1-rtsn"; - uart5m2_xfer = "/pinctrl/uart5/uart5m2-xfer"; - uart6m1_xfer = "/pinctrl/uart6/uart6m1-xfer"; - uart6m1_ctsn = "/pinctrl/uart6/uart6m1-ctsn"; - uart6m1_rtsn = "/pinctrl/uart6/uart6m1-rtsn"; - uart6m2_xfer = "/pinctrl/uart6/uart6m2-xfer"; - uart6m0_xfer = "/pinctrl/uart6/uart6m0-xfer"; - uart6m0_ctsn = "/pinctrl/uart6/uart6m0-ctsn"; - uart6m0_rtsn = "/pinctrl/uart6/uart6m0-rtsn"; - uart7m1_xfer = "/pinctrl/uart7/uart7m1-xfer"; - uart7m1_ctsn = "/pinctrl/uart7/uart7m1-ctsn"; - uart7m1_rtsn = "/pinctrl/uart7/uart7m1-rtsn"; - uart7m2_xfer = "/pinctrl/uart7/uart7m2-xfer"; - uart7m0_xfer = "/pinctrl/uart7/uart7m0-xfer"; - uart7m0_ctsn = "/pinctrl/uart7/uart7m0-ctsn"; - uart7m0_rtsn = "/pinctrl/uart7/uart7m0-rtsn"; - uart8m0_xfer = "/pinctrl/uart8/uart8m0-xfer"; - uart8m0_ctsn = "/pinctrl/uart8/uart8m0-ctsn"; - uart8m0_rtsn = "/pinctrl/uart8/uart8m0-rtsn"; - uart8m1_xfer = "/pinctrl/uart8/uart8m1-xfer"; - uart8m1_ctsn = "/pinctrl/uart8/uart8m1-ctsn"; - uart8m1_rtsn = "/pinctrl/uart8/uart8m1-rtsn"; - uart8_xfer = "/pinctrl/uart8/uart8-xfer"; - uart9m1_xfer = "/pinctrl/uart9/uart9m1-xfer"; - uart9m1_ctsn = "/pinctrl/uart9/uart9m1-ctsn"; - uart9m1_rtsn = "/pinctrl/uart9/uart9m1-rtsn"; - uart9m2_xfer = "/pinctrl/uart9/uart9m2-xfer"; - uart9m2_ctsn = "/pinctrl/uart9/uart9m2-ctsn"; - uart9m2_rtsn = "/pinctrl/uart9/uart9m2-rtsn"; - uart9m0_xfer = "/pinctrl/uart9/uart9m0-xfer"; - uart9m0_ctsn = "/pinctrl/uart9/uart9m0-ctsn"; - uart9m0_rtsn = "/pinctrl/uart9/uart9m0-rtsn"; - vop_pins = "/pinctrl/vop/vop-pins"; - bt656_pins = "/pinctrl/bt656/bt656-pins"; - tsadc_gpio_func = "/pinctrl/gpio-func/tsadc-gpio-func"; - pcfg_pull_none_drv_level_7 = "/pinctrl/pcfg-pull-none-drv-level-7"; - pcfg_pull_none_drv_level_8 = "/pinctrl/pcfg-pull-none-drv-level-8"; + pwm4 = "/pwm@febd0000"; + vdd2_ddr_s3 = "/spi@feb20000/rk806single@0/regulators/DCDC_REG6"; + jtagm1_pins = "/pinctrl/jtag/jtagm1-pins"; + rkisp0_vir2 = "/rkisp0-vir2"; + i2c1m4_xfer = "/pinctrl/i2c1/i2c1m4-xfer"; + l2_cache_l2 = "/cpus/l2-cache-l2"; pcfg_pull_none_drv_level_9 = "/pinctrl/pcfg-pull-none-drv-level-9"; - pcfg_pull_none_drv_level_10 = "/pinctrl/pcfg-pull-none-drv-level-10"; - pcfg_pull_none_drv_level_11 = "/pinctrl/pcfg-pull-none-drv-level-11"; - pcfg_pull_none_drv_level_12 = "/pinctrl/pcfg-pull-none-drv-level-12"; - pcfg_pull_none_drv_level_13 = "/pinctrl/pcfg-pull-none-drv-level-13"; - pcfg_pull_none_drv_level_14 = "/pinctrl/pcfg-pull-none-drv-level-14"; - pcfg_pull_none_drv_level_15 = "/pinctrl/pcfg-pull-none-drv-level-15"; - pcfg_pull_up_drv_level_7 = "/pinctrl/pcfg-pull-up-drv-level-7"; - pcfg_pull_up_drv_level_8 = "/pinctrl/pcfg-pull-up-drv-level-8"; - pcfg_pull_up_drv_level_9 = "/pinctrl/pcfg-pull-up-drv-level-9"; - pcfg_pull_up_drv_level_10 = "/pinctrl/pcfg-pull-up-drv-level-10"; - pcfg_pull_up_drv_level_11 = "/pinctrl/pcfg-pull-up-drv-level-11"; - pcfg_pull_up_drv_level_12 = "/pinctrl/pcfg-pull-up-drv-level-12"; - pcfg_pull_up_drv_level_13 = "/pinctrl/pcfg-pull-up-drv-level-13"; - pcfg_pull_up_drv_level_14 = "/pinctrl/pcfg-pull-up-drv-level-14"; - pcfg_pull_up_drv_level_15 = "/pinctrl/pcfg-pull-up-drv-level-15"; - pcfg_pull_down_drv_level_7 = "/pinctrl/pcfg-pull-down-drv-level-7"; - pcfg_pull_down_drv_level_8 = "/pinctrl/pcfg-pull-down-drv-level-8"; - pcfg_pull_down_drv_level_9 = "/pinctrl/pcfg-pull-down-drv-level-9"; - pcfg_pull_down_drv_level_10 = "/pinctrl/pcfg-pull-down-drv-level-10"; - pcfg_pull_down_drv_level_11 = "/pinctrl/pcfg-pull-down-drv-level-11"; - pcfg_pull_down_drv_level_12 = "/pinctrl/pcfg-pull-down-drv-level-12"; - pcfg_pull_down_drv_level_13 = "/pinctrl/pcfg-pull-down-drv-level-13"; - pcfg_pull_down_drv_level_14 = "/pinctrl/pcfg-pull-down-drv-level-14"; - pcfg_pull_down_drv_level_15 = "/pinctrl/pcfg-pull-down-drv-level-15"; - eth0_pins = "/pinctrl/eth0/eth0-pins"; - gmac0_miim = "/pinctrl/gmac0/gmac0-miim"; - gmac0_clkinout = "/pinctrl/gmac0/gmac0-clkinout"; - gmac0_rx_bus2 = "/pinctrl/gmac0/gmac0-rx-bus2"; - gmac0_tx_bus2 = "/pinctrl/gmac0/gmac0-tx-bus2"; - gmac0_rgmii_clk = "/pinctrl/gmac0/gmac0-rgmii-clk"; - gmac0_rgmii_bus = "/pinctrl/gmac0/gmac0-rgmii-bus"; - gmac0_ppsclk = "/pinctrl/gmac0/gmac0-ppsclk"; - gmac0_ppstring = "/pinctrl/gmac0/gmac0-ppstring"; - gmac0_ptp_refclk = "/pinctrl/gmac0/gmac0-ptp-refclk"; - gmac0_txer = "/pinctrl/gmac0/gmac0-txer"; - hym8563_int = "/pinctrl/hym8563/hym8563-int"; - leds_gpio = "/pinctrl/leds/leds-gpio"; - hp_det = "/pinctrl/headphone/hp-det"; - usb_5v_ctrl = "/pinctrl/usb-typec/usb-5v-ctrl"; - usbc0_int = "/pinctrl/usb-typec/usbc0-int"; - hdmirx_det = "/pinctrl/hdmirx/hdmirx-det"; - uart6_gpios = "/pinctrl/wireless-bluetooth/uart6-gpios"; - bt_reset_gpio = "/pinctrl/wireless-bluetooth/bt-reset-gpio"; - bt_wake_gpio = "/pinctrl/wireless-bluetooth/bt-wake-gpio"; - bt_irq_gpio = "/pinctrl/wireless-bluetooth/bt-irq-gpio"; - wifi_host_wake_irq = "/pinctrl/wireless-wlan/wifi-host-wake-irq"; - wdt_en_base = "/pinctrl/wdt-pc9202/wdt-en-base"; - cam0_or_cam1_switch_pin = "/pinctrl/cam/cam0-or-cam1-switch-pin"; - rkcif_mipi_lvds4 = "/rkcif-mipi-lvds4"; - rkcif_mipi_lvds4_sditf = "/rkcif-mipi-lvds4-sditf"; - rkcif_mipi_lvds4_sditf_vir1 = "/rkcif-mipi-lvds4-sditf-vir1"; - rkcif_mipi_lvds4_sditf_vir2 = "/rkcif-mipi-lvds4-sditf-vir2"; - rkcif_mipi_lvds4_sditf_vir3 = "/rkcif-mipi-lvds4-sditf-vir3"; - rkcif_mipi_lvds5 = "/rkcif-mipi-lvds5"; - rkcif_mipi_lvds5_sditf = "/rkcif-mipi-lvds5-sditf"; - rkcif_mipi_lvds5_sditf_vir1 = "/rkcif-mipi-lvds5-sditf-vir1"; - rkcif_mipi_lvds5_sditf_vir2 = "/rkcif-mipi-lvds5-sditf-vir2"; - rkcif_mipi_lvds5_sditf_vir3 = "/rkcif-mipi-lvds5-sditf-vir3"; - usbdrd3_1 = "/usbdrd3_1"; - usbdrd_dwc3_1 = "/usbdrd3_1/usb@fc400000"; - pcie30_phy_grf = "/syscon@fd5b8000"; - pipe_phy1_grf = "/syscon@fd5c0000"; + qos_vdpu = "/qos@fdf67200"; + vp2_out_hdmi1 = "/vop@fdd90000/ports/port@2/endpoint@7"; + spi3m0_pins = "/pinctrl/spi3/spi3m0-pins"; + pcfg_output_low_pull_none = "/pinctrl/pcfg-output-low-pull-none"; + spi0m2_cs0 = "/pinctrl/spi0/spi0m2-cs0"; + rkisp1 = "/rkisp@fdcc0000"; usbdpphy1_grf = "/syscon@fd5cc000"; - usb2phy1_grf = "/syscon@fd5d4000"; - u2phy1 = "/syscon@fd5d4000/usb2-phy@4000"; - u2phy1_otg = "/syscon@fd5d4000/usb2-phy@4000/otg-port"; - hdptxphy1_grf = "/syscon@fd5e4000"; - spdif_tx5 = "/spdif-tx@fddb8000"; - i2s8_8ch = "/i2s@fddc8000"; - spdif_tx4 = "/spdif-tx@fdde8000"; - i2s6_8ch = "/i2s@fddf4000"; - i2s7_8ch = "/i2s@fddf8000"; - i2s10_8ch = "/i2s@fde00000"; - spdif_rx1 = "/spdif-rx@fde10000"; - spdif_rx2 = "/spdif-rx@fde18000"; - dp1 = "/dp@fde60000"; - dp1_in_vp0 = "/dp@fde60000/ports/port@0/endpoint@0"; - dp1_in_vp1 = "/dp@fde60000/ports/port@0/endpoint@1"; - dp1_in_vp2 = "/dp@fde60000/ports/port@0/endpoint@2"; - dp1_out = "/dp@fde60000/ports/port@1/endpoint"; - hdmi1 = "/hdmi@fdea0000"; - hdmi1_in = "/hdmi@fdea0000/ports/port@0"; - hdmi1_in_vp0 = "/hdmi@fdea0000/ports/port@0/endpoint@0"; - hdmi1_in_vp1 = "/hdmi@fdea0000/ports/port@0/endpoint@1"; - hdmi1_in_vp2 = "/hdmi@fdea0000/ports/port@0/endpoint@2"; - edp1 = "/edp@fded0000"; - edp1_in_vp0 = "/edp@fded0000/ports/port@0/endpoint@0"; - edp1_in_vp1 = "/edp@fded0000/ports/port@0/endpoint@1"; - edp1_in_vp2 = "/edp@fded0000/ports/port@0/endpoint@2"; - edp1_out = "/edp@fded0000/ports/port@1/endpoint"; - hdmirx_ctrler = "/hdmirx-controller@fdee0000"; - pcie3x4 = "/pcie@fe150000"; - pcie3x4_intc = "/pcie@fe150000/legacy-interrupt-controller"; - pcie3x2 = "/pcie@fe160000"; - pcie3x2_intc = "/pcie@fe160000/legacy-interrupt-controller"; - pcie2x1l0 = "/pcie@fe170000"; - pcie2x1l0_intc = "/pcie@fe170000/legacy-interrupt-controller"; - gmac_uio0 = "/uio@fe1b0000"; - gmac0 = "/ethernet@fe1b0000"; - mdio0 = "/ethernet@fe1b0000/mdio"; - rgmii_phy0 = "/ethernet@fe1b0000/mdio/phy@1"; - gmac0_stmmac_axi_setup = "/ethernet@fe1b0000/stmmac-axi-config"; - gmac0_mtl_rx_setup = "/ethernet@fe1b0000/rx-queues-config"; - gmac0_mtl_tx_setup = "/ethernet@fe1b0000/tx-queues-config"; - sata1 = "/sata@fe220000"; - hdptxphy1 = "/phy@fed70000"; - hdptxphy_hdmi1 = "/hdmiphy@fed70000"; - hdptxphy_hdmi_clk1 = "/hdmiphy@fed70000/clk-port"; - usbdp_phy1 = "/phy@fed90000"; - usbdp_phy1_dp = "/phy@fed90000/dp-port"; - usbdp_phy1_u3 = "/phy@fed90000/u3-port"; - combphy1_ps = "/phy@fee10000"; - pcie30phy = "/phy@fee80000"; - vcc12v_dcin = "/vcc12v-dcin"; - vcc5v0_sys = "/vcc5v0-sys"; - vcc5v0_usbdcin = "/vcc5v0-usbdcin"; - vcc5v0_usb = "/vcc5v0-usb"; - vcc_1v1_nldo_s3 = "/vcc-1v1-nldo-s3"; + mipim1_camera4_clk = "/pinctrl/mipi/mipim1-camera4-clk"; + mipim0_camera2_clk = "/pinctrl/mipi/mipim0-camera2-clk"; + csi2_dcphy1 = "/csi2-dcphy1"; + hdmim2_tx1_scl = "/pinctrl/hdmi/hdmim2-tx1-scl"; + hdmim2_tx1_sda = "/pinctrl/hdmi/hdmim2-tx1-sda"; + spi2m2_cs1 = "/pinctrl/spi2/spi2m2-cs1"; chosen = "/chosen"; - cspmu = "/cspmu@fd10c000"; + soc_crit = "/thermal-zones/soc-thermal/trips/soc-crit"; + rk806_dvs1_rst = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs1_rst"; + mpp_srv = "/mpp-srv"; + hclk_rkvenc1_pre = "/clocks/hclk_rkvenc1_pre@fd7c08c0"; + dp0m2_pins = "/pinctrl/dp0/dp0m2-pins"; debug = "/debug@fd104000"; - fiq_debugger = "/fiq-debugger"; - minidump = "/minidump"; - drm_logo = "/reserved-memory/drm-logo@00000000"; - drm_cubic_lut = "/reserved-memory/drm-cubic-lut@00000000"; - ramoops = "/reserved-memory/ramoops@110000"; - minidump_smem = "/reserved-memory/minidump-smem@1f0000"; - minidump_mem = "/reserved-memory/minidump-mem@c000000"; - pcie_essd = "/pcie-essd"; - pcie_clk1 = "/pcie-clk1"; - pcie_clk2 = "/pcie-clk2"; - pcie_clk3 = "/pcie-clk3"; - firefly_leds = "/leds"; - power_led = "/leds/power"; - user_led = "/leds/user"; - bt_sco = "/bt-sco"; - bt_sound = "/bt-sound"; - hdmi0_sound = "/hdmi0-sound"; - dp0_sound = "/dp0-sound"; + jpege0 = "/jpege-core@fdba0000"; + pcfg_pull_none_drv_level_13 = "/pinctrl/pcfg-pull-none-drv-level-13"; + pwm14m1_pins = "/pinctrl/pwm14/pwm14m1-pins"; + pwm11m0_pins = "/pinctrl/pwm11/pwm11m0-pins"; + vp2_out_dp0 = "/vop@fdd90000/ports/port@2/endpoint@0"; + qos_rkvenc0_m0ro = "/qos@fdf60000"; + its0 = "/interrupt-controller@fe600000/msi-controller@fe640000"; + cpu_b2 = "/cpus/cpu@600"; + uart7m1_rtsn = "/pinctrl/uart7/uart7m1-rtsn"; + usb_5v_ctrl = "/pinctrl/usb-typec/usb-5v-ctrl"; + tsadc_gpio_func = "/pinctrl/gpio-func/tsadc-gpio-func"; + spi1m1_cs0 = "/pinctrl/spi1/spi1m1-cs0"; + pcfg_pull_down = "/pinctrl/pcfg-pull-down"; + dmc_opp_info = "/otp@fecc0000/dmc-opp-info@5b"; + ddrphych1_pins = "/pinctrl/ddrphych1/ddrphych1-pins"; + dsi0_in = "/dsi@fde20000/ports/port@0"; + pdm1m1_sdi0 = "/pinctrl/pdm1/pdm1m1-sdi0"; + spi3m1_cs1 = "/pinctrl/spi3/spi3m1-cs1"; + bigcore0_grf = "/syscon@fd590000"; + cpub1_leakage = "/otp@fecc0000/cpub1-leakage@18"; + uart3 = "/serial@feb60000"; + aclk_hdcp1_pre = "/clocks/aclk_hdcp1_pre@fd7c08ec"; + pcfg_pull_up = "/pinctrl/pcfg-pull-up"; + rkcif_mipi_lvds3_sditf_vir3 = "/rkcif-mipi-lvds3-sditf-vir3"; + codec_leakage = "/otp@fecc0000/codec-leakage@29"; + pcfg_pull_up_drv_level_8 = "/pinctrl/pcfg-pull-up-drv-level-8"; + dmac1 = "/dma-controller@fea30000"; + pdm0m0_sdi2 = "/pinctrl/pdm0/pdm0m0-sdi2"; + i2s1m1_lrck = "/pinctrl/i2s1/i2s1m1-lrck"; + qos_gpu_m1 = "/qos@fdf35200"; + i2s0_sdi2 = "/pinctrl/i2s0/i2s0-sdi2"; + spi2m0_cs0 = "/pinctrl/spi2/spi2m0-cs0"; + gpu_opp_info = "/otp@fecc0000/gpu-opp-info@4f"; + csi2_dphy1_hw = "/csi2-dphy1-hw@fedc8000"; + pcfg_pull_up_drv_level_10 = "/pinctrl/pcfg-pull-up-drv-level-10"; + spdif_tx2 = "/spdif-tx@fddb0000"; + npu_opp_table = "/npu-opp-table"; + spi4m0_cs1 = "/pinctrl/spi4/spi4m0-cs1"; + vo0_grf = "/syscon@fd5a6000"; + i2c2m4_xfer = "/pinctrl/i2c2/i2c2m4-xfer"; + qos_usb2host_0 = "/qos@fdf3e400"; + spi4m0_pins = "/pinctrl/spi4/spi4m0-pins"; + gmac1_mtl_tx_setup = "/ethernet@fe1c0000/tx-queues-config"; + rkcif_mipi_lvds3 = "/rkcif-mipi-lvds3"; + i2s1m0_sclk = "/pinctrl/i2s1/i2s1m0-sclk"; + i2c7 = "/i2c@fec90000"; + mipi2_csi2_output = "/mipi2-csi2/ports/port@1/endpoint@0"; + mipi_te0 = "/pinctrl/mipi/mipi-te0"; + sata_reset = "/pinctrl/sata/sata-reset"; + dp1m2_pins = "/pinctrl/dp1/dp1m2-pins"; + pwm15m1_pins = "/pinctrl/pwm15/pwm15m1-pins"; + pcfg_pull_down_drv_level_1 = "/pinctrl/pcfg-pull-down-drv-level-1"; + pwm12m0_pins = "/pinctrl/pwm12/pwm12m0-pins"; + qos_vicap_m1 = "/qos@fdf40800"; + sdmmc_cmd = "/pinctrl/sdmmc/sdmmc-cmd"; + uart8m1_rtsn = "/pinctrl/uart8/uart8m1-rtsn"; + usb2phy2_grf = "/syscon@fd5d8000"; + rkvdec1_sram = "/sram@ff001000/rkvdec-sram@78000"; + uart5m0_rtsn = "/pinctrl/uart5/uart5m0-rtsn"; + jpege3_mmu = "/iommu@fdbac800"; + vcc_2v0_pldo_s3 = "/spi@feb20000/rk806single@0/regulators/DCDC_REG7"; + i2s3_mclk = "/pinctrl/i2s3/i2s3-mclk"; + mclkout_i2s1m1 = "/clocks/mclkout-i2s1@fd58a000"; spdif_tx1_dc = "/spdif-tx1-dc"; - spdif_tx1_sound = "/spdif-tx1-sound"; - adc_keys = "/adc-keys"; - es8388_sound = "/es8388-sound"; - vcc5v0_host = "/vcc5v0-host"; - vcc_hub_reset = "/vcc-hub-reset-regulator"; - vbus5v0_typec_pwr_en = "/vbus5v0-typec-pwr-en-regulator"; - vcc_hub3_reset = "/vcc-hub3-reset-regulator"; - vcc5v0_host3 = "/vcc5v0-host3"; - vcc_sata_pwr_en = "/vcc-sata-pwr-en-regulator"; - vcc_fan_pwr_en = "/vcc-fan-pwr-en-regulator"; - vcc_sdcard_pwr_en = "/vcc-sdcard-pwr-en-regulator"; - vcc3v3_pcie30 = "/vcc3v3-pcie30"; - pcie30_avdd1v8 = "/pcie30-avdd1v8"; - pcie30_avdd0v75 = "/pcie30-avdd0v75"; - hdmi1_sound = "/hdmi1-sound"; - dp1_sound = "/dp1-sound"; - wireless_bluetooth = "/wireless-bluetooth"; - wireless_wlan = "/wireless-wlan"; - hdmiin_sound = "/hdmiin-sound"; - fan = "/pwm-fan"; - mod_sleep = "/mod-sleep-regulator"; - vcc_hub = "/vcc-hub-regulator"; - vcc_4g = "/vcc-4g-regulator"; - usb_5v = "/usb-5v"; - cam0_cam1_switch = "/cam0-cam1-switch"; + uart0m2_xfer = "/pinctrl/uart0/uart0m2-xfer"; + wifi_host_wake_irq = "/pinctrl/wireless-wlan/wifi-host-wake-irq"; + i2s1m1_sdo1 = "/pinctrl/i2s1/i2s1m1-sdo1"; + uart1m1_ctsn = "/pinctrl/uart1/uart1m1-ctsn"; + pcfg_pull_down_drv_level_12 = "/pinctrl/pcfg-pull-down-drv-level-12"; + sdiom0_pins = "/pinctrl/sdio/sdiom0-pins"; + pcfg_pull_up_smt = "/pinctrl/pcfg-pull-up-smt"; + php_grf = "/syscon@fd5b0000"; + pwm2 = "/pwm@fd8b0020"; + pdm1m0_sdi2 = "/pinctrl/pdm1/pdm1m0-sdi2"; + i2s2m1_lrck = "/pinctrl/i2s2/i2s2m1-lrck"; + gmac0_stmmac_axi_setup = "/ethernet@fe1b0000/stmmac-axi-config"; + mipi1_csi2_hw = "/mipi1-csi2-hw@fdd20000"; + sata1 = "/sata@fe220000"; + rkispp1_vir0 = "/rkispp1-vir0"; + dp0_in_vp1 = "/dp@fde50000/ports/port@0/endpoint@1"; + CPU_SLEEP = "/cpus/idle-states/cpu-sleep"; + rkisp0_vir0 = "/rkisp0-vir0"; + spi3m3_cs0 = "/pinctrl/spi3/spi3m3-cs0"; + specification_serial_number = "/otp@fecc0000/specification-serial-number@6"; + l2_cache_l0 = "/cpus/l2-cache-l0"; + pcfg_pull_none_drv_level_7 = "/pinctrl/pcfg-pull-none-drv-level-7"; + qos_hdcp0 = "/qos@fdf80000"; + qos_npu0_mro = "/qos@fdf72200"; + usbdrd_dwc3_1 = "/usbdrd3_1/usb@fc400000"; + rkvenc1 = "/rkvenc-core@fdbe0000"; + display_subsystem = "/display-subsystem"; + i2c3m4_xfer = "/pinctrl/i2c3/i2c3m4-xfer"; + pcie30x2m3_pins = "/pinctrl/pcie30x2/pcie30x2m3-pins"; + qos_npu2 = "/qos@fdf71000"; + i2s0_8ch = "/i2s@fe470000"; + i2s2m0_sclk = "/pinctrl/i2s2/i2s2m0-sclk"; + pmu = "/power-management@fd8d8000"; + gmac1_tx_bus2 = "/pinctrl/gmac1/gmac1-tx-bus2"; + pcfg_pull_none_drv_level_11 = "/pinctrl/pcfg-pull-none-drv-level-11"; + route_hdmi1 = "/display-subsystem/route/route-hdmi1"; + csi2_dphy5 = "/csi2-dphy5"; + spi4m2_cs0 = "/pinctrl/spi4/spi4m2-cs0"; + mipi3_csi2 = "/mipi3-csi2"; + pmu0_grf = "/syscon@fd588000"; + fan = "/pwm-fan"; + cpu_b0 = "/cpus/cpu@400"; + vccio_sd_s0 = "/spi@feb20000/rk806single@0/regulators/PLDO_REG5"; + qos_rkvenc1_m2wo = "/qos@fdf61400"; + gpio4 = "/pinctrl/gpio@fec50000"; + hdmim0_rx_cec = "/pinctrl/hdmi/hdmim0-rx-cec"; + pwm3m3_pins = "/pinctrl/pwm3/pwm3m3-pins"; + aclk_vdpu_low_pre = "/clocks/aclk_vdpu_low_pre@fd7c08b0"; + mmu600_php = "/iommu@fcb00000"; + cif_mipi2_in1 = "/rkcif-mipi-lvds2/port/endpoint"; + pwm0m2_pins = "/pinctrl/pwm0/pwm0m2-pins"; + pwm13m0_pins = "/pinctrl/pwm13/pwm13m0-pins"; + pcie20x1m0_pins = "/pinctrl/pcie20x1/pcie20x1m0-pins"; + bt656_pins = "/pinctrl/bt656/bt656-pins"; + hdmi1_sound = "/hdmi1-sound"; + uart9m1_rtsn = "/pinctrl/uart9/uart9m1-rtsn"; + uart6m0_rtsn = "/pinctrl/uart6/uart6m0-rtsn"; + pcie2x1l2_intc = "/pcie@fe190000/legacy-interrupt-controller"; + mod_sleep = "/mod-sleep-regulator"; + gpu_thermal = "/thermal-zones/gpu-thermal"; + hdmim1_tx0_cec = "/pinctrl/hdmi/hdmim1-tx0-cec"; + uart1 = "/serial@feb40000"; + rkcif_mipi_lvds3_sditf_vir1 = "/rkcif-mipi-lvds3-sditf-vir1"; + pcfg_pull_up_drv_level_6 = "/pinctrl/pcfg-pull-up-drv-level-6"; + qos_rkvdec0 = "/qos@fdf62000"; + vp2_out_edp0 = "/vop@fdd90000/ports/port@2/endpoint@1"; + uart1m2_xfer = "/pinctrl/uart1/uart1m2-xfer"; + pdm0m0_sdi0 = "/pinctrl/pdm0/pdm0m0-sdi0"; + fspim2_pins = "/pinctrl/fspi/fspim2-pins"; + i2s0_sdi0 = "/pinctrl/i2s0/i2s0-sdi0"; + gpu_pins = "/pinctrl/gpu/gpu-pins"; + imx415 = "/i2c@fec80000/imx415@37"; + vp3_out_dsi1 = "/vop@fdd90000/ports/port@3/endpoint@1"; + i2s4_8ch = "/i2s@fddc0000"; + ramoops = "/reserved-memory/ramoops@110000"; + dp0_sound = "/dp0-sound"; + spdif_tx0 = "/spdif-tx@fe4e0000"; + dp1_in_vp1 = "/dp@fde60000/ports/port@0/endpoint@1"; + i2s1m0_sdo3 = "/pinctrl/i2s1/i2s1m0-sdo3"; + mipi2_csi2_input1 = "/mipi2-csi2/ports/port@0/endpoint@0"; + vcc_1v8_s0 = "/spi@feb20000/rk806single@0/regulators/PLDO_REG2"; + vp1_out_hdmi0 = "/vop@fdd90000/ports/port@1/endpoint@2"; + vcc12v_dcin = "/vcc12v-dcin"; + vp0_out_edp1 = "/vop@fdd90000/ports/port@0/endpoint@4"; + uart3_rtsn = "/pinctrl/uart3/uart3-rtsn"; + gmac1_rgmii_clk = "/pinctrl/gmac1/gmac1-rgmii-clk"; + package_serial_number_high = "/otp@fecc0000/package-serial-number-high@5"; + hdcp0 = "/hdcp@fde40000"; + qos_fisheye1 = "/qos@fdf40200"; + rkcif_mipi_lvds1 = "/rkcif-mipi-lvds1"; + i2c5 = "/i2c@fead0000"; + jtagm0_pins = "/pinctrl/jtag/jtagm0-pins"; + i2c4m4_xfer = "/pinctrl/i2c4/i2c4m4-xfer"; + spdif_tx1_sound = "/spdif-tx1-sound"; + qos_jpeg_enc2 = "/qos@fdf66800"; + hdmi0_in = "/hdmi@fde80000/ports/port@0"; + i2s1m1_sdi3 = "/pinctrl/i2s1/i2s1m1-sdi3"; + i2c1m3_xfer = "/pinctrl/i2c1/i2c1m3-xfer"; + hdptxphy_hdmi0 = "/hdmiphy@fed60000"; + sdmmc_pwren = "/pinctrl/sdmmc/sdmmc-pwren"; + usbdp_phy1_dp = "/phy@fed90000/dp-port"; + npu_leakage = "/otp@fecc0000/npu-leakage@28"; + aclk_jpeg_decoder_pre = "/clocks/aclk_jpeg_decoder_pre@fd7c08b0"; + pdm0 = "/pdm@fe4b0000"; + gmac1_miim = "/pinctrl/gmac1/gmac1-miim"; + pcfg_output_high_pull_down = "/pinctrl/pcfg-output-high-pull-down"; + hdmi_debug6 = "/pinctrl/hdmi/hdmi-debug6"; + pcie3x4 = "/pcie@fe150000"; + can0m1_pins = "/pinctrl/can0/can0m1-pins"; + mclkin_i2s2 = "/clocks/mclkin-i2s2"; + jpege_ccu = "/jpege-ccu"; + pcfg_pull_none_drv_level_3_smt = "/pinctrl/pcfg-pull-none-drv-level-3-smt"; + hdmim1_rx_cec = "/pinctrl/hdmi/hdmim1-rx-cec"; + pipe_phy2_grf = "/syscon@fd5c4000"; + dp0m1_pins = "/pinctrl/dp0/dp0m1-pins"; + rkvdec1 = "/rkvdec-core@fdc48000"; + pwm1m2_pins = "/pinctrl/pwm1/pwm1m2-pins"; + pwm14m0_pins = "/pinctrl/pwm14/pwm14m0-pins"; + little_core_thermal = "/thermal-zones/littlecore-thermal"; + rk806_dvs3_slp = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs3_slp"; + usb_5v = "/usb-5v"; + i2s8_8ch = "/i2s@fddc8000"; + drm_cubic_lut = "/reserved-memory/drm-cubic-lut@00000000"; + rkcif_mipi_lvds2_sditf_vir2 = "/rkcif-mipi-lvds2-sditf-vir2"; + hdptxphy0 = "/phy@fed60000"; + pcie30x1_0_button_rstn = "/pinctrl/pcie30x1/pcie30x1-0-button-rstn"; + u2phy3_host = "/syscon@fd5dc000/usb2-phy@c000/host-port"; + route_dp0 = "/display-subsystem/route/route-dp0"; + hdmim0_rx_scl = "/pinctrl/hdmi/hdmim0-rx-scl"; + hdmim0_rx_sda = "/pinctrl/hdmi/hdmim0-rx-sda"; + uart7m0_rtsn = "/pinctrl/uart7/uart7m0-rtsn"; + pcfg_pull_down_drv_level_10 = "/pinctrl/pcfg-pull-down-drv-level-10"; + usbdrd3_0 = "/usbdrd3_0"; + ddrphych0_pins = "/pinctrl/ddrphych0/ddrphych0-pins"; + bt_irq_gpio = "/pinctrl/wireless-bluetooth/bt-irq-gpio"; + pwm0 = "/pwm@fd8b0000"; + uart2m2_xfer = "/pinctrl/uart2/uart2m2-xfer"; + pdm1m0_sdi0 = "/pinctrl/pdm1/pdm1m0-sdi0"; + hdmim1_tx0_scl = "/pinctrl/hdmi/hdmim1-tx0-scl"; + hdmim1_tx0_sda = "/pinctrl/hdmi/hdmim1-tx0-sda"; + can1 = "/can@fea60000"; + rkvtunnel = "/rkvtunnel"; + pcfg_pull_none_drv_level_5 = "/pinctrl/pcfg-pull-none-drv-level-5"; + rkcif_mipi_lvds3_sditf = "/rkcif-mipi-lvds3-sditf"; + combphy2_psu = "/phy@fee20000"; + vp3 = "/vop@fdd90000/ports/port@3"; + rk806_dvs2_dvs = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs2_dvs"; + mmu600_pcie = "/iommu@fc900000"; + hdmim1_tx0_hpd = "/pinctrl/hdmi/hdmim1-tx0-hpd"; + i2s1m0_lrck = "/pinctrl/i2s1/i2s1m0-lrck"; + cpu_l3 = "/cpus/cpu@300"; + spi0m1_cs1 = "/pinctrl/spi0/spi0m1-cs1"; + vp0_out_hdmi1 = "/vop@fdd90000/ports/port@0/endpoint@5"; + spdif_rx1 = "/spdif-rx@fde10000"; + gmac0_clkinout = "/pinctrl/gmac0/gmac0-clkinout"; + rkcif_dvp = "/rkcif-dvp"; + i2c5m4_xfer = "/pinctrl/i2c5/i2c5m4-xfer"; + wireless_wlan = "/wireless-wlan"; + rkcif_mipi_lvds = "/rkcif-mipi-lvds"; + avdd_0v75_s0 = "/spi@feb20000/rk806single@0/regulators/NLDO_REG3"; + i2c2m3_xfer = "/pinctrl/i2c2/i2c2m3-xfer"; + pcie30x4m3_pins = "/pinctrl/pcie30x4/pcie30x4m3-pins"; + hclk_rkvdec0_pre = "/clocks/hclk_rkvdec0_pre@fd7c08a0"; + route_dsi0 = "/display-subsystem/route/route-dsi0"; + rk806_dvs3_pwrdn = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs3_pwrdn"; + csi2_dphy3 = "/csi2-dphy3"; + pcie30x1m2_pins = "/pinctrl/pcie30x1/pcie30x1m2-pins"; + spi4 = "/spi@fecb0000"; + litcore_grf = "/syscon@fd594000"; + isp0_vir2 = "/rkisp0-vir2/port/endpoint@0"; + i2s1m1_mclk = "/pinctrl/i2s1/i2s1m1-mclk"; + sys_grf = "/syscon@fd58c000"; + edp0_in_vp1 = "/edp@fdec0000/ports/port@0/endpoint@1"; + mdio0 = "/ethernet@fe1b0000/mdio"; + rkisp_unite_mmu = "/rkisp-unite-mmu@fdcb7f00"; + gpio2 = "/pinctrl/gpio@fec30000"; + spi1m0_cs1 = "/pinctrl/spi1/spi1m0-cs1"; + aclk_av1_pre = "/clocks/aclk_av1_pre@fd7c0910"; + can1m1_pins = "/pinctrl/can1/can1m1-pins"; + rkcif_mipi_lvds1_sditf_vir3 = "/rkcif-mipi-lvds1-sditf-vir3"; + hdmim2_rx_cec = "/pinctrl/hdmi/hdmim2-rx-cec"; + mipi3_csi2_hw = "/mipi3-csi2-hw@fdd40000"; + dp1m1_pins = "/pinctrl/dp1/dp1m1-pins"; + pwm2m2_pins = "/pinctrl/pwm2/pwm2m2-pins"; + pwm15m0_pins = "/pinctrl/pwm15/pwm15m0-pins"; + hclk_vo0 = "/clocks/hclk_vo0@fd7c08dc"; + bigcore0_thermal = "/thermal-zones/bigcore0-thermal"; + hdmim1_rx_scl = "/pinctrl/hdmi/hdmim1-rx-scl"; + hdmim1_rx_sda = "/pinctrl/hdmi/hdmim1-rx-sda"; + uart8m0_rtsn = "/pinctrl/uart8/uart8m0-rtsn"; + pcfg_pull_up_drv_level_4 = "/pinctrl/pcfg-pull-up-drv-level-4"; + mipim1_camera1_clk = "/pinctrl/mipi/mipim1-camera1-clk"; + rkvdec0_sram = "/sram@ff001000/rkvdec-sram@0"; + pcfg_pull_down_drv_level_8 = "/pinctrl/pcfg-pull-down-drv-level-8"; + gmac_uio1 = "/uio@fe1c0000"; + usbc0_orien_sw = "/i2c@fec80000/fusb302@22/connector/ports/port@0/endpoint"; + jpegd = "/jpegd@fdb90000"; + uart3m2_xfer = "/pinctrl/uart3/uart3m2-xfer"; + minidump_smem = "/reserved-memory/minidump-smem@1f0000"; + i2s0_sclk = "/pinctrl/i2s0/i2s0-sclk"; + uart0m1_xfer = "/pinctrl/uart0/uart0m1-xfer"; + rga3_core1 = "/rga@fdb70000"; + i2s1m0_sdo1 = "/pinctrl/i2s1/i2s1m0-sdo1"; + uart1m0_ctsn = "/pinctrl/uart1/uart1m0-ctsn"; + vcc5v0_usb = "/vcc5v0-usb"; + minidump = "/minidump"; + }; + + rkvdec-ccu@fdc30000 { + power-domains = <0x60 0x0e>; + rockchip,ccu-mode = <0x01>; + clock-names = "aclk_ccu"; + reg-names = "ccu"; + assigned-clocks = <0x02 0x18e>; + assigned-clock-rates = <0x23c34600>; + resets = <0x02 0x282>; + clocks = <0x02 0x18e>; + compatible = "rockchip,rkv-decoder-v2-ccu"; + status = "okay"; + rockchip,skip-pmu-idle-request; + reg = <0x00 0xfdc30000 0x00 0x100>; + phandle = <0xca>; + reset-names = "video_ccu"; + }; + + qos@fdf60000 { + compatible = "syscon"; + reg = <0x00 0xfdf60000 0x00 0x20>; + phandle = <0x8d>; + }; + + iommu@fdb50800 { + power-domains = <0x60 0x15>; + clock-names = "aclk\0iface"; + interrupts = <0x00 0x76 0x04>; + clocks = <0x02 0x1c0 0x02 0x1c1>; + #iommu-cells = <0x00>; + compatible = "rockchip,iommu-v2"; + status = "okay"; + interrupt-names = "irq_vdpu_mmu"; + reg = <0x00 0xfdb50800 0x00 0x40>; + phandle = <0xb7>; + }; + + rga@fdb60000 { + power-domains = <0x60 0x16>; + iommus = <0xb9>; + clock-names = "aclk_rga3_0\0hclk_rga3_0\0clk_rga3_0"; + interrupts = <0x00 0x72 0x04>; + clocks = <0x02 0x1ba 0x02 0x1b9 0x02 0x1bb>; + compatible = "rockchip,rga3_core0"; + status = "okay"; + interrupt-names = "rga3_core0_irq"; + reg = <0x00 0xfdb60000 0x00 0x1000>; + phandle = <0x269>; + }; + + qos@fdf67200 { + compatible = "syscon"; + reg = <0x00 0xfdf67200 0x00 0x20>; + phandle = <0x28b>; + }; + + vepu@fdb50000 { + power-domains = <0x60 0x15>; + iommus = <0xb7>; + clock-names = "aclk_vcodec\0hclk_vcodec"; + assigned-clocks = <0x02 0x1c0>; + rockchip,normal-rates = <0x2367b880 0x00>; + assigned-clock-rates = <0x2367b880>; + resets = <0x02 0x2c8 0x02 0x2c9>; + interrupts = <0x00 0x78 0x04>; + clocks = <0x02 0x1c0 0x02 0x1c1>; + rockchip,srv = <0xb8>; + rockchip,taskqueue-node = <0x00>; + rockchip,disable-auto-freq; + compatible = "rockchip,vpu-encoder-v2"; + rockchip,resetgroup-node = <0x00>; + status = "disabled"; + interrupt-names = "irq_vepu"; + rockchip,skip-pmu-idle-request; + reg = <0x00 0xfdb50000 0x00 0x400>; + phandle = <0x266>; + reset-names = "shared_video_a\0shared_video_h"; + }; + + mipi3-csi2 { + rockchip,hw = <0x47 0x48 0x49 0x4a 0x4b 0x4c>; + compatible = "rockchip,rk3588-mipi-csi2"; + status = "disabled"; + phandle = <0x227>; + }; + + hdmi0-sound { + rockchip,jack-det; + rockchip,cpu = <0x1d3>; + rockchip,codec = <0x1d4>; + rockchip,card-name = "rockchip-hdmi0"; + compatible = "rockchip,hdmi"; + status = "okay"; + phandle = <0x49b>; + rockchip,mclk-fs = <0x80>; + }; + + reserved-memory { + #address-cells = <0x02>; + #size-cells = <0x02>; + ranges; + + minidump-smem@1f0000 { + status = "disabled"; + reg = <0x00 0x1f0000 0x00 0x100>; + phandle = <0x1cf>; + no-map; + }; + + minidump-mem@c000000 { + status = "disabled"; + reg = <0x00 0xc000000 0x00 0x2000000>; + phandle = <0x1d0>; + no-map; + }; + + cma { + linux,cma-default; + compatible = "shared-dma-pool"; + size = <0x00 0x800000>; + reg = <0x00 0x10000000 0x00 0x10000000>; + reusable; + }; + + drm-logo@00000000 { + compatible = "rockchip,drm-logo"; + reg = <0x00 0xedf00000 0x00 0x2e0000>; + phandle = <0x37>; + }; + + ramoops@110000 { + boot-log-count = <0x01>; + record-size = <0x14000>; + pmsg-size = <0x30000>; + compatible = "ramoops"; + console-size = <0x80000>; + reg = <0x00 0x110000 0x00 0xe0000>; + phandle = <0x493>; + boot-log-size = <0x8000>; + ftrace-size = <0x00>; + }; + + drm-cubic-lut@00000000 { + compatible = "rockchip,drm-cubic-lut"; + reg = <0x00 0x00 0x00 0x00>; + phandle = <0x492>; + }; + }; + + pcie@fe160000 { + power-domains = <0x60 0x22>; + vpcie3v3-supply = <0x1ba>; + #address-cells = <0x03>; + rockchip,pipe-grf = <0x76>; + phy-names = "pcie-phy"; + bus-range = <0x10 0x1f>; + clock-names = "aclk_mst\0aclk_slv\0aclk_dbi\0pclk\0aux\0pipe"; + reg-names = "pcie-apb\0pcie-dbi"; + num-ob-windows = <0x10>; + resets = <0x02 0x20e 0x02 0x21d>; + interrupts = <0x00 0x102 0x04 0x00 0x101 0x04 0x00 0x100 0x04 0x00 0xff 0x04 0x00 0xfe 0x04>; + clocks = <0x02 0x14f 0x02 0x154 0x02 0x14a 0x02 0x159 0x02 0x15f 0x02 0x184>; + interrupt-map = <0x00 0x00 0x00 0x01 0x1b9 0x00 0x00 0x00 0x00 0x02 0x1b9 0x01 0x00 0x00 0x00 0x03 0x1b9 0x02 0x00 0x00 0x00 0x04 0x1b9 0x03>; + #size-cells = <0x02>; + max-link-speed = <0x03>; + device_type = "pci"; + interrupt-map-mask = <0x00 0x00 0x00 0x07>; + reset-gpios = <0x10d 0x08 0x00>; + num-lanes = <0x02>; + compatible = "rockchip,rk3588-pcie\0snps,dw-pcie"; + ranges = <0x800 0x00 0xf1000000 0x00 0xf1000000 0x00 0x100000 0x81000000 0x00 0xf1100000 0x00 0xf1100000 0x00 0x100000 0x82000000 0x00 0xf1200000 0x00 0xf1200000 0x00 0xe00000 0xc3000000 0x09 0x40000000 0x09 0x40000000 0x00 0x40000000>; + msi-map = <0x1000 0x1b6 0x1000 0x1000>; + #interrupt-cells = <0x01>; + status = "disabled"; + interrupt-names = "sys\0pmc\0msg\0legacy\0err"; + phys = <0x1b7>; + num-viewport = <0x08>; + reg = <0x00 0xfe160000 0x00 0x10000 0x0a 0x40400000 0x00 0x400000>; + linux,pci-domain = <0x01>; + phandle = <0x486>; + reset-names = "pcie\0periph"; + num-ib-windows = <0x10>; + + legacy-interrupt-controller { + #address-cells = <0x00>; + interrupts = <0x00 0xff 0x01>; + interrupt-parent = <0x01>; + #interrupt-cells = <0x01>; + phandle = <0x1b9>; + interrupt-controller; + }; + }; + + spdif-tx@fddb8000 { + power-domains = <0x60 0x19>; + clock-names = "mclk\0hclk"; + assigned-clocks = <0x02 0x20b>; + assigned-clock-parents = <0x02 0x05>; + interrupts = <0x00 0xc6 0x04>; + clocks = <0x02 0x20f 0x02 0x20a>; + dma-names = "tx"; + #sound-dai-cells = <0x00>; + compatible = "rockchip,rk3588-spdif\0rockchip,rk3568-spdif"; + status = "disabled"; + reg = <0x00 0xfddb8000 0x00 0x1000>; + phandle = <0x1e2>; + dmas = <0xf1 0x16>; + }; + + pvtm@fdb30000 { + #address-cells = <0x01>; + #size-cells = <0x00>; + compatible = "rockchip,rk3588-gpu-pvtm"; + reg = <0x00 0xfdb30000 0x00 0x100>; + + pvtm@4 { + clock-names = "clk"; + resets = <0x02 0x430 0x02 0x42f>; + clocks = <0x02 0x118>; + reg = <0x04>; + reset-names = "rts\0rst-p"; + }; + }; + + spdif-tx1-dc { + #sound-dai-cells = <0x00>; + compatible = "linux,spdif-dit"; + status = "disabled"; + phandle = <0x1d8>; + }; + + csi2-dphy0 { + rockchip,hw = <0x2d 0x2e>; + phy-names = "dcphy0\0dcphy1"; + compatible = "rockchip,rk3588-csi2-dphy"; + status = "okay"; + phys = <0x2f 0x30>; + firefly-compatible; + phandle = <0x20f>; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x00>; + + endpoint@1 { + data-lanes = <0x01 0x02 0x03 0x04>; + remote-endpoint = <0x32>; + reg = <0x01>; + phandle = <0x184>; + }; + + endpoint@0 { + data-lanes = <0x01 0x02 0x03 0x04>; + remote-endpoint = <0x31>; + reg = <0x00>; + phandle = <0x183>; + }; + }; + + port@1 { + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x01>; + + endpoint@0 { + remote-endpoint = <0x33>; + reg = <0x00>; + phandle = <0x4d>; + }; + }; + }; + }; + + rkisp-unite@fdcb0000 { + power-domains = <0x60 0x1c>; + iommus = <0xcf>; + clock-names = "aclk_isp0\0hclk_isp0\0clk_isp_core0\0clk_isp_core_marvin0\0clk_isp_core_vicap0\0aclk_isp1\0hclk_isp1\0clk_isp_core1\0clk_isp_core_marvin1\0clk_isp_core_vicap1"; + interrupts = <0x00 0x87 0x04 0x00 0x89 0x04 0x00 0x8a 0x04>; + clocks = <0x02 0x1de 0x02 0x1df 0x02 0x1db 0x02 0x1dc 0x02 0x1dd 0x02 0x120 0x02 0x121 0x02 0x11d 0x02 0x11e 0x02 0x11f>; + compatible = "rockchip,rk3588-rkisp-unite"; + status = "disabled"; + interrupt-names = "isp_irq\0mi_irq\0mipi_irq"; + reg = <0x00 0xfdcb0000 0x00 0x10000 0x00 0xfdcc0000 0x00 0x10000>; + phandle = <0x277>; + }; + + sata@fe230000 { + phy-names = "sata-phy"; + clock-names = "sata\0pmalive\0rxoob\0ref\0asic"; + interrupts = <0x00 0x113 0x04>; + clocks = <0x02 0x173 0x02 0x170 0x02 0x176 0x02 0x165 0x02 0x180>; + compatible = "rockchip,rk-ahci\0snps,dwc-ahci"; + status = "disabled"; + interrupt-names = "hostc"; + phys = <0x70 0x01>; + reg = <0x00 0xfe230000 0x00 0x1000>; + phandle = <0x291>; + ports-implemented = <0x01>; + }; + + syscon@fd5a0000 { + compatible = "rockchip,rk3588-gpu-grf\0syscon"; + reg = <0x00 0xfd5a0000 0x00 0x100>; + phandle = <0x65>; + }; + + bt-sound { + simple-audio-card,name = "rockchip,bt"; + simple-audio-card,format = "dsp_a"; + simple-audio-card,bitclock-inversion = <0x00>; + compatible = "simple-audio-card"; + status = "disabled"; + phandle = <0x49a>; + simple-audio-card,mclk-fs = <0x100>; + + simple-audio-card,cpu { + sound-dai = <0x1d1>; + }; + + simple-audio-card,codec { + sound-dai = <0x1d2 0x01>; + }; + }; + + iommu@fdb90480 { + power-domains = <0x60 0x15>; + clock-names = "aclk\0iface"; + interrupts = <0x00 0x82 0x04>; + clocks = <0x02 0x1b4 0x02 0x1b5>; + #iommu-cells = <0x00>; + compatible = "rockchip,iommu-v2"; + status = "okay"; + interrupt-names = "irq_jpegd_mmu"; + reg = <0x00 0xfdb90480 0x00 0x40>; + phandle = <0xbb>; + }; + + hdcp@fde70000 { + power-domains = <0x60 0x1a>; + clock-names = "aclk\0pclk\0hclk\0hclk_key\0aclk_trng\0pclk_trng"; + resets = <0x02 0x3c8 0x02 0x3c6 0x02 0x3c5 0x02 0x3c4 0x02 0x3ca>; + interrupts = <0x00 0xa0 0x04>; + clocks = <0x02 0x217 0x02 0x219 0x02 0x218 0x02 0x216 0x02 0x228 0x02 0x229>; + compatible = "rockchip,rk3588-hdcp"; + status = "disabled"; + reg = <0x00 0xfde70000 0x00 0x80>; + phandle = <0x287>; + reset-names = "hdcp\0h_hdcp\0a_hdcp\0hdcp_key\0trng"; + rockchip,vo-grf = <0xd8>; + }; + + spdif-tx@fe4f0000 { + power-domains = <0x60 0x26>; + pinctrl-names = "default"; + pinctrl-0 = <0x143>; + clock-names = "mclk\0hclk"; + assigned-clocks = <0x02 0x45>; + assigned-clock-parents = <0x02 0x05>; + interrupts = <0x00 0xc2 0x04>; + clocks = <0x02 0x47 0x02 0x44>; + dma-names = "tx"; + #sound-dai-cells = <0x00>; + compatible = "rockchip,rk3588-spdif\0rockchip,rk3568-spdif"; + status = "disabled"; + reg = <0x00 0xfe4f0000 0x00 0x1000>; + phandle = <0x1d7>; + dmas = <0xf1 0x05>; + }; + + rkcif-mipi-lvds-sditf-vir2 { + compatible = "rockchip,rkcif-sditf"; + status = "disabled"; + rockchip,cif = <0x52>; + phandle = <0x22d>; + }; + + es8388-sound { + pinctrl-names = "default"; + rockchip,cpu = <0x1da>; + pinctrl-0 = <0x1dc>; + rockchip,codec = <0x1db>; + hp-det-gpio = <0x79 0x13 0x00>; + rockchip,card-name = "rockchip-es8388"; + rockchip,format = "i2s"; + rockchip,audio-routing = "Headphone\0LOUT1\0Headphone\0ROUT1\0Speaker\0LOUT2\0Speaker\0ROUT2\0Headphone\0Headphone Power\0Headphone\0Headphone Power\0LINPUT2\0Main Mic\0RINPUT2\0Main Mic\0LINPUT1\0Headset Mic\0RINPUT1\0Headset Mic"; + compatible = "firefly,multicodecs-card"; + linein-type = <0x01>; + status = "okay"; + phandle = <0x49f>; + hp-con-gpio = <0x182 0x0b 0x00>; + firefly,not-use-dapm; + rockchip,mclk-fs = <0x180>; + }; + + spi@feb30000 { + pinctrl-names = "default"; + #address-cells = <0x01>; + num-cs = <0x02>; + pinctrl-0 = <0x15d 0x15e 0x15f>; + clock-names = "spiclk\0apb_pclk"; + interrupts = <0x00 0x149 0x04>; + clocks = <0x02 0xa6 0x02 0xa1>; + #size-cells = <0x00>; + dma-names = "tx\0rx"; + compatible = "rockchip,rk3066-spi"; + status = "disabled"; + reg = <0x00 0xfeb30000 0x00 0x1000>; + phandle = <0x2c8>; + dmas = <0xf1 0x11 0xf1 0x12>; + }; + + phy@fee80000 { + rockchip,pipe-grf = <0x76>; + clock-names = "pclk"; + rockchip,pcie30-phymode = <0x01>; + resets = <0x02 0x2000a>; + clocks = <0x02 0x188>; + #phy-cells = <0x00>; + compatible = "rockchip,rk3588-pcie3-phy"; + status = "okay"; + reg = <0x00 0xfee80000 0x00 0x20000>; + phandle = <0x1b7>; + reset-names = "phy"; + rockchip,phy-grf = <0x1cc>; + }; + + vcc12v-dcin { + regulator-max-microvolt = <0xb71b00>; + regulator-boot-on; + regulator-always-on; + regulator-min-microvolt = <0xb71b00>; + regulator-name = "vcc12v_dcin"; + compatible = "regulator-fixed"; + phandle = <0x1cd>; + }; + + qos@fdf61200 { + compatible = "syscon"; + reg = <0x00 0xfdf61200 0x00 0x20>; + phandle = <0x91>; + }; + + i2s@fde00000 { + power-domains = <0x60 0x1a>; + clock-names = "mclk_tx\0mclk_rx\0hclk"; + assigned-clocks = <0x02 0x234>; + assigned-clock-parents = <0x02 0x05>; + rockchip,capture-only; + resets = <0x02 0x417>; + interrupts = <0x00 0xbe 0x04>; + clocks = <0x02 0x237 0x02 0x237 0x02 0x233>; + dma-names = "rx"; + #sound-dai-cells = <0x00>; + compatible = "rockchip,rk3588-i2s-tdm"; + status = "disabled"; + reg = <0x00 0xfde00000 0x00 0x1000>; + phandle = <0x47e>; + dmas = <0xf2 0x18>; + reset-names = "rx-m"; + }; + + qos@fdf40800 { + compatible = "syscon"; + reg = <0x00 0xfdf40800 0x00 0x20>; + phandle = <0xa5>; + }; + + i2s@fddfc000 { + power-domains = <0x60 0x1a>; + clock-names = "mclk_tx\0mclk_rx\0hclk"; + assigned-clocks = <0x02 0x23f>; + assigned-clock-parents = <0x02 0x05>; + rockchip,capture-only; + resets = <0x02 0x413>; + interrupts = <0x00 0xbd 0x04>; + clocks = <0x02 0x242 0x02 0x242 0x02 0x23e>; + dma-names = "rx"; + #sound-dai-cells = <0x00>; + compatible = "rockchip,rk3588-i2s-tdm"; + status = "disabled"; + reg = <0x00 0xfddfc000 0x00 0x1000>; + phandle = <0x27f>; + dmas = <0xf2 0x17>; + reset-names = "rx-m"; + }; + + usbdrd3_0 { + #address-cells = <0x02>; + clock-names = "ref\0suspend\0bus"; + clocks = <0x02 0x1a3 0x02 0x1a2 0x02 0x1a1>; + #size-cells = <0x02>; + compatible = "rockchip,rk3588-dwc3\0rockchip,rk3399-dwc3"; + ranges; + status = "okay"; + phandle = <0x252>; + + usb@fc000000 { + power-domains = <0x60 0x1f>; + snps,dis-u1-entry-quirk; + snps,dis_enblslpm_quirk; + phy-names = "usb2-phy\0usb3-phy"; + snps,dis-u2-freeclk-exists-quirk; + usb-role-switch; + phy_type = "utmi_wide"; + quirk-skip-phy-init; + resets = <0x02 0x2a4>; + interrupts = <0x00 0xdc 0x04>; + snps,dis-u2-entry-quirk; + compatible = "snps,dwc3"; + snps,parkmode-disable-hs-quirk; + snps,dis-del-phy-power-chg-quirk; + status = "okay"; + snps,parkmode-disable-ss-quirk; + phys = <0x66 0x67>; + reg = <0x00 0xfc000000 0x00 0x400000>; + phandle = <0x253>; + dr_mode = "host"; + reset-names = "usb3-otg"; + snps,dis-tx-ipgap-linecheck-quirk; + + port { + #address-cells = <0x01>; + #size-cells = <0x00>; + + endpoint@0 { + remote-endpoint = <0x68>; + reg = <0x00>; + phandle = <0x17d>; + }; + }; + }; + }; + + rkcif-mipi-lvds5-sditf-vir2 { + compatible = "rockchip,rkcif-sditf"; + status = "disabled"; + rockchip,cif = <0x1a2>; + phandle = <0x478>; + }; + + rkcif-dvp-sditf { + compatible = "rockchip,rkcif-sditf"; + status = "disabled"; + rockchip,cif = <0x51>; + phandle = <0x22a>; + }; + + iommu@fdd97e00 { + rockchip,shootdown-entire; + clock-names = "aclk\0iface"; + interrupts = <0x00 0x9c 0x04>; + clocks = <0x02 0x270 0x02 0x26f>; + #iommu-cells = <0x00>; + compatible = "rockchip,iommu-v2"; + status = "okay"; + interrupt-names = "vop_mmu"; + reg = <0x00 0xfdd97e00 0x00 0x100 0x00 0xfdd97f00 0x00 0x100>; + phandle = <0xd6>; + rockchip,disable-device-link-resume; + }; + + rkvtunnel { + compatible = "rockchip,video-tunnel"; + status = "disabled"; + phandle = <0x245>; + }; + + syscon@fd5e0000 { + compatible = "rockchip,rk3588-hdptxphy-grf\0syscon"; + reg = <0x00 0xfd5e0000 0x00 0x100>; + phandle = <0x18a>; + }; + + i2c@fead0000 { + pinctrl-names = "default"; + #address-cells = <0x01>; + pinctrl-0 = <0x14d>; + clock-names = "i2c\0pclk"; + resets = <0x02 0xb4 0x02 0xac>; + interrupts = <0x00 0x142 0x04>; + clocks = <0x02 0x91 0x02 0x89>; + #size-cells = <0x00>; + compatible = "rockchip,rk3588-i2c\0rockchip,rk3399-i2c"; + status = "disabled"; + reg = <0x00 0xfead0000 0x00 0x1000>; + phandle = <0x2a8>; + reset-names = "i2c\0apb"; + }; + + iommu@fdba4800 { + power-domains = <0x60 0x15>; + clock-names = "aclk\0iface"; + interrupts = <0x00 0x7b 0x04>; + clocks = <0x02 0x1ae 0x02 0x1af>; + #iommu-cells = <0x00>; + compatible = "rockchip,iommu-v2"; + status = "okay"; + interrupt-names = "irq_jpege1_mmu"; + reg = <0x00 0xfdba4800 0x00 0x40>; + phandle = <0xbe>; + }; + + spdif-rx@fde10000 { + power-domains = <0x60 0x1a>; + clock-names = "mclk\0hclk"; + assigned-clocks = <0x02 0x260>; + assigned-clock-parents = <0x02 0x05>; + resets = <0x02 0x3ff>; + interrupts = <0x00 0xc8 0x04>; + clocks = <0x02 0x260 0x02 0x25f>; + dma-names = "rx"; + #sound-dai-cells = <0x00>; + compatible = "rockchip,rk3588-spdifrx\0rockchip,rk3308-spdifrx"; + status = "disabled"; + reg = <0x00 0xfde10000 0x00 0x1000>; + phandle = <0x47f>; + dmas = <0x7c 0x16>; + reset-names = "spdifrx-m"; + }; + + npu@fdab0000 { + power-domains = <0x60 0x09 0x60 0x0a 0x60 0x0b>; + iommus = <0xb2>; + clock-names = "clk_npu\0aclk0\0aclk1\0aclk2\0hclk0\0hclk1\0hclk2\0pclk"; + assigned-clocks = <0x0e 0x06>; + power-domain-names = "npu0\0npu1\0npu2"; + rknpu-supply = <0xb3>; + assigned-clock-rates = <0xbebc200>; + resets = <0x02 0x1e6 0x02 0x1b0 0x02 0x1c0 0x02 0x1e8 0x02 0x1b2 0x02 0x1c2>; + interrupts = <0x00 0x6e 0x04 0x00 0x6f 0x04 0x00 0x70 0x04>; + clocks = <0x0e 0x06 0x02 0x12d 0x02 0x122 0x02 0x124 0x02 0x12e 0x02 0x123 0x02 0x125 0x02 0x131>; + compatible = "rockchip,rk3588-rknpu"; + status = "okay"; + interrupt-names = "npu0_irq\0npu1_irq\0npu2_irq"; + mem-supply = <0xb3>; + reg = <0x00 0xfdab0000 0x00 0x10000 0x00 0xfdac0000 0x00 0x10000 0x00 0xfdad0000 0x00 0x10000>; + phandle = <0x265>; + reset-names = "srst_a0\0srst_a1\0srst_a2\0srst_h0\0srst_h1\0srst_h2"; + operating-points-v2 = <0xb1>; + }; + + hdmiphy@fed60000 { + clock-names = "ref\0apb"; + resets = <0x02 0x48e 0x02 0x485 0x02 0xc003b 0x02 0xc003c 0x02 0xc003d 0x02 0x48c 0x02 0x48d>; + clocks = <0x02 0x2b5 0x02 0x267>; + #phy-cells = <0x00>; + compatible = "rockchip,rk3588-hdptx-phy-hdmi"; + status = "okay"; + rockchip,grf = <0x18a>; + reg = <0x00 0xfed60000 0x00 0x2000>; + phandle = <0xfd>; + reset-names = "phy\0apb\0init\0cmn\0lane\0ropll\0lcpll"; + + clk-port { + #clock-cells = <0x00>; + status = "okay"; + phandle = <0x35>; + }; + }; + + dmc-opp-table { + nvmem-cells = <0x44 0x45 0x21>; + rockchip,low-temp = <0x2710>; + rockchip,leakage-voltage-sel = <0x01 0x1f 0x00 0x20 0x2c 0x01 0x2d 0x39 0x02 0x3a 0xfe 0x03>; + compatible = "operating-points-v2"; + rockchip,low-temp-min-volt = <0xb71b0>; + nvmem-cell-names = "leakage\0opp-info\0specification_serial_number"; + phandle = <0x41>; + rockchip,temp-hysteresis = <0x1388>; + rockchip,supported-hw; + + opp-1560000000 { + opp-microvolt = <0xc3500 0xc3500 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; + opp-microvolt-L2 = <0xb71b0 0xb71b0 0xd59f8 0xadf34 0xadf34 0xb71b0>; + opp-hz = <0x00 0x5cfbb600>; + opp-supported-hw = <0xf9 0xffff>; + opp-microvolt-L3 = <0xb1008 0xb1008 0xd59f8 0xaae60 0xaae60 0xb71b0>; + opp-microvolt-L1 = <0xbd358 0xbd358 0xd59f8 0xb1008 0xb1008 0xb71b0>; + }; + + opp-j-m-1560000000 { + opp-microvolt = <0xc3500 0xc3500 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; + opp-microvolt-L2 = <0xb71b0 0xb71b0 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; + opp-hz = <0x00 0x5cfbb600>; + opp-supported-hw = <0x06 0xffff>; + opp-microvolt-L3 = <0xb71b0 0xb71b0 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; + opp-microvolt-L1 = <0xbd358 0xbd358 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; + }; + + opp-j-m-528000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; + opp-hz = <0x00 0x1f78a400>; + opp-supported-hw = <0x06 0xffff>; + }; + + opp-2750000000 { + opp-microvolt = <0xd59f8 0xd59f8 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; + opp-microvolt-L2 = <0xcc77c 0xcc77c 0xd59f8 0xb1008 0xb1008 0xb71b0>; + opp-hz = <0x00 0xa3e9ab80>; + opp-supported-hw = <0xf9 0xffff>; + opp-microvolt-L3 = <0xc96a8 0xc8320 0xd59f8 0xaae60 0xaae60 0xb71b0>; + opp-microvolt-L1 = <0xcf850 0xcf850 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; + }; + + opp-1068000000 { + opp-microvolt = <0xb1008 0xb1008 0xd59f8 0xb40dc 0xb40dc 0xb71b0>; + opp-microvolt-L2 = <0xa4cb8 0xa4cb8 0xd59f8 0xaae60 0xaae60 0xb71b0>; + opp-hz = <0x00 0x3fa86300>; + opp-supported-hw = <0xf9 0xffff>; + opp-microvolt-L3 = <0xa4cb8 0xa4cb8 0xd59f8 0xa7d8c 0xa7d8c 0xb71b0>; + opp-microvolt-L1 = <0xaae60 0xaae60 0xd59f8 0xadf34 0xadf34 0xb71b0>; + }; + + opp-j-m-2750000000 { + opp-microvolt = <0xd59f8 0xd59f8 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; + opp-microvolt-L2 = <0xcc77c 0xcc77c 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; + opp-hz = <0x00 0xa3e9ab80>; + opp-supported-hw = <0x06 0xffff>; + opp-microvolt-L3 = <0xc96a8 0xc8320 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; + opp-microvolt-L1 = <0xcf850 0xcf850 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; + }; + + opp-528000000 { + opp-microvolt = <0xa4cb8 0xa4cb8 0xd59f8 0xb1008 0xb1008 0xb71b0>; + opp-microvolt-L2 = <0xa4cb8 0xa4cb8 0xd59f8 0xa7d8c 0xa7d8c 0xb71b0>; + opp-hz = <0x00 0x1f78a400>; + opp-supported-hw = <0xf9 0xffff>; + opp-microvolt-L3 = <0xa4cb8 0xa4cb8 0xd59f8 0xa4cb8 0xa4cb8 0xb71b0>; + opp-microvolt-L1 = <0xa4cb8 0xa4cb8 0xd59f8 0xaae60 0xaae60 0xb71b0>; + }; + + opp-j-m-1068000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; + opp-hz = <0x00 0x3fa86300>; + opp-supported-hw = <0x06 0xffff>; + }; + }; + + rkvenc-core@fdbe0000 { + power-domains = <0x60 0x11>; + iommus = <0xc5>; + rockchip,ccu = <0xc3>; + clock-names = "aclk_vcodec\0hclk_vcodec\0clk_core"; + assigned-clocks = <0x02 0x1ca 0x02 0x1cb>; + rockchip,task-capacity = <0x08>; + rockchip,normal-rates = <0x1dcd6500 0x00 0x2faf0800>; + assigned-clock-rates = <0x1dcd6500 0x2faf0800>; + resets = <0x02 0x305 0x02 0x304 0x02 0x306>; + interrupts = <0x00 0x68 0x04>; + clocks = <0x02 0x1ca 0x02 0x1c9 0x02 0x1cb>; + rockchip,srv = <0xb8>; + rockchip,taskqueue-node = <0x07>; + compatible = "rockchip,rkv-encoder-v2-core"; + status = "okay"; + interrupt-names = "irq_rkvenc1"; + rockchip,skip-pmu-idle-request; + reg = <0x00 0xfdbe0000 0x00 0x6000>; + phandle = <0x273>; + reset-names = "video_a\0video_h\0video_core"; + operating-points-v2 = <0xc4>; + }; + + debug@fd104000 { + compatible = "rockchip,debug"; + reg = <0x00 0xfd104000 0x00 0x1000 0x00 0xfd105000 0x00 0x1000 0x00 0xfd106000 0x00 0x1000 0x00 0xfd107000 0x00 0x1000 0x00 0xfd124000 0x00 0x1000 0x00 0xfd125000 0x00 0x1000 0x00 0xfd126000 0x00 0x1000 0x00 0xfd127000 0x00 0x1000>; + phandle = <0x48f>; + }; + + watchdog@feaf0000 { + clock-names = "tclk\0pclk"; + interrupts = <0x00 0x13b 0x04>; + clocks = <0x02 0x6c 0x02 0x6b>; + compatible = "snps,dw-wdt"; + status = "okay"; + reg = <0x00 0xfeaf0000 0x00 0x100>; + phandle = <0x2aa>; + }; + + syscon@fd5d8000 { + #address-cells = <0x01>; + #size-cells = <0x01>; + compatible = "rockchip,rk3588-usb2phy-grf\0syscon\0simple-mfd"; + reg = <0x00 0xfd5d8000 0x00 0x4000>; + phandle = <0x25d>; + + usb2-phy@8000 { + clock-output-names = "usb480m_phy2"; + clock-names = "phyclk"; + resets = <0x02 0xc0049 0x02 0x48a>; + interrupts = <0x00 0x187 0x04>; + clocks = <0x02 0x2b5>; + #clock-cells = <0x00>; + compatible = "rockchip,rk3588-usb2phy"; + status = "okay"; + reg = <0x8000 0x10>; + phandle = <0x69>; + reset-names = "phy\0apb"; + + host-port { + phy-supply = <0x75>; + #phy-cells = <0x00>; + status = "okay"; + phandle = <0x6c>; + }; + }; + }; + + cluster0-opp-table { + rockchip,pvtm-offset = <0x64>; + rockchip,pvtm-sample-time = <0x44c>; + rockchip,dsu-grf = <0x23>; + rockchip,pvtm-hw = <0x06>; + nvmem-cells = <0x1f 0x20 0x21>; + rockchip,low-temp = <0x2710>; + rockchip,pvtm-voltage-sel-hw = <0x00 0x555 0x00 0x556 0x56b 0x01 0x56c 0x581 0x02 0x582 0x597 0x03 0x598 0x5ad 0x04 0x5ae 0x5c3 0x05 0x5c4 0x270f 0x06>; + rockchip,pvtm-thermal-zone = "soc-thermal"; + rockchip,opp-shared-dsu; + rockchip,high-temp-max-freq = <0x188940>; + opp-shared; + rockchip,reboot-freq = <0x159b40>; + rockchip,pvtm-freq = <0x159b40>; + rockchip,pvtm-ref-temp = <0x19>; + low-volt-mem-read-margin = <0x04>; + volt-mem-read-margin = <0xd0bd8 0x01 0xbac48 0x02 0xa4cb8 0x03 0x78d98 0x04>; + compatible = "operating-points-v2"; + rockchip,low-temp-min-volt = <0xb71b0>; + rockchip,grf = <0x22>; + nvmem-cell-names = "leakage\0opp-info\0specification_serial_number"; + rockchip,pvtm-voltage-sel = <0x00 0x582 0x00 0x583 0x59a 0x01 0x59b 0x5b2 0x02 0x5b3 0x5ca 0x03 0x5cb 0x5e2 0x04 0x5e3 0x5fa 0x05 0x5fb 0x270f 0x06>; + phandle = <0x0f>; + rockchip,pvtm-temp-prop = <0xf4 0xf4>; + rockchip,temp-hysteresis = <0x1388>; + rockchip,high-temp = <0x14c08>; + rockchip,pvtm-pvtpll; + rockchip,supported-hw; + intermediate-threshold-freq = <0xf6180>; + rockchip,pvtm-volt = <0xb71b0>; + + opp-1200000000 { + opp-microvolt = <0xadf34 0xadf34 0xe7ef0 0xadf34 0xadf34 0xe7ef0>; + opp-microvolt-L6 = <0xa4cb8 0xa4cb8 0xe7ef0 0xa4cb8 0xa4cb8 0xe7ef0>; + opp-microvolt-L4 = <0xa4cb8 0xa4cb8 0xe7ef0 0xa4cb8 0xa4cb8 0xe7ef0>; + opp-microvolt-L2 = <0xaae60 0xaae60 0xe7ef0 0xaae60 0xaae60 0xe7ef0>; + opp-hz = <0x00 0x47868c00>; + opp-supported-hw = <0xf9 0xffff>; + opp-microvolt-L5 = <0xa4cb8 0xa4cb8 0xe7ef0 0xa4cb8 0xa4cb8 0xe7ef0>; + opp-microvolt-L3 = <0xa7d8c 0xa7d8c 0xe7ef0 0xa7d8c 0xa7d8c 0xe7ef0>; + clock-latency-ns = <0x9c40>; + opp-microvolt-L1 = <0xaae60 0xaae60 0xe7ef0 0xaae60 0xaae60 0xe7ef0>; + }; + + opp-j-m-1416000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + opp-microvolt-L2 = <0xba284 0xba284 0xe7ef0 0xba284 0xba284 0xe7ef0>; + opp-hz = <0x00 0x54667200>; + opp-microvolt-L0 = <0xc042c 0xc042c 0xe7ef0 0xc042c 0xc042c 0xe7ef0>; + opp-supported-hw = <0x06 0xffff>; + opp-suspend; + clock-latency-ns = <0x9c40>; + opp-microvolt-L1 = <0xbd358 0xbd358 0xe7ef0 0xbd358 0xbd358 0xe7ef0>; + }; + + opp-1008000000 { + opp-microvolt = <0xa4cb8 0xa4cb8 0xe7ef0 0xa4cb8 0xa4cb8 0xe7ef0>; + opp-hz = <0x00 0x3c14dc00>; + opp-supported-hw = <0xf9 0xffff>; + clock-latency-ns = <0x9c40>; + }; + + opp-j-m-1704000000 { + opp-microvolt = <0xe4e1c 0xe4e1c 0xe7ef0 0xe4e1c 0xe4e1c 0xe7ef0>; + opp-microvolt-L6 = <0xd2924 0xd2924 0xe7ef0 0xd2924 0xd2924 0xe7ef0>; + opp-microvolt-L4 = <0xd8acc 0xd8acc 0xe7ef0 0xd8acc 0xd8acc 0xe7ef0>; + opp-microvolt-L2 = <0xdec74 0xdec74 0xe7ef0 0xdec74 0xdec74 0xe7ef0>; + opp-hz = <0x00 0x6590fa00>; + opp-supported-hw = <0x06 0xffff>; + opp-microvolt-L5 = <0xd59f8 0xd59f8 0xe7ef0 0xd59f8 0xd59f8 0xe7ef0>; + opp-microvolt-L3 = <0xdbba0 0xdbba0 0xe7ef0 0xdbba0 0xdbba0 0xe7ef0>; + clock-latency-ns = <0x9c40>; + opp-microvolt-L1 = <0xe1d48 0xe1d48 0xe7ef0 0xe1d48 0xe1d48 0xe7ef0>; + }; + + opp-j-m-1200000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + opp-hz = <0x00 0x47868c00>; + opp-supported-hw = <0x06 0xffff>; + clock-latency-ns = <0x9c40>; + }; + + opp-j-m-1008000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + opp-hz = <0x00 0x3c14dc00>; + opp-supported-hw = <0x06 0xffff>; + clock-latency-ns = <0x9c40>; + }; + + opp-j-m-816000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + opp-hz = <0x00 0x30a32c00>; + opp-supported-hw = <0x06 0xffff>; + clock-latency-ns = <0x9c40>; + }; + + opp-1800000000 { + opp-microvolt = <0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0>; + opp-microvolt-L6 = <0xd59f8 0xd59f8 0xe7ef0 0xd59f8 0xd59f8 0xe7ef0>; + opp-microvolt-L4 = <0xdbba0 0xdbba0 0xe7ef0 0xdbba0 0xdbba0 0xe7ef0>; + opp-microvolt-L2 = <0xe1d48 0xe1d48 0xe7ef0 0xe1d48 0xe1d48 0xe7ef0>; + opp-hz = <0x00 0x6b49d200>; + opp-supported-hw = <0xf9 0xffff>; + opp-microvolt-L5 = <0xd8acc 0xd8acc 0xe7ef0 0xd8acc 0xd8acc 0xe7ef0>; + opp-microvolt-L3 = <0xdec74 0xdec74 0xe7ef0 0xdec74 0xdec74 0xe7ef0>; + clock-latency-ns = <0x9c40>; + opp-microvolt-L1 = <0xe4e1c 0xe4e1c 0xe7ef0 0xe4e1c 0xe4e1c 0xe7ef0>; + }; + + opp-j-m-600000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + opp-hz = <0x00 0x23c34600>; + opp-supported-hw = <0x06 0xffff>; + clock-latency-ns = <0x9c40>; + }; + + opp-1608000000 { + opp-microvolt = <0xcf850 0xcf850 0xe7ef0 0xcf850 0xcf850 0xe7ef0>; + opp-microvolt-L6 = <0xc042c 0xc042c 0xe7ef0 0xc042c 0xc042c 0xe7ef0>; + opp-microvolt-L4 = <0xc3500 0xc3500 0xe7ef0 0xc3500 0xc3500 0xe7ef0>; + opp-microvolt-L2 = <0xc96a8 0xc96a8 0xe7ef0 0xc96a8 0xc96a8 0xe7ef0>; + opp-hz = <0x00 0x5fd82200>; + opp-supported-hw = <0xf9 0xffff>; + opp-microvolt-L5 = <0xc3500 0xc3500 0xe7ef0 0xc3500 0xc3500 0xe7ef0>; + opp-microvolt-L3 = <0xc65d4 0xc65d4 0xe7ef0 0xc65d4 0xc65d4 0xe7ef0>; + clock-latency-ns = <0x9c40>; + opp-microvolt-L1 = <0xcc77c 0xcc77c 0xe7ef0 0xcc77c 0xcc77c 0xe7ef0>; + }; + + opp-j-1296000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + opp-hz = <0x00 0x4d3f6400>; + opp-microvolt-L0 = <0xbd358 0xbd358 0xe7ef0 0xbd358 0xbd358 0xe7ef0>; + opp-supported-hw = <0x04 0xffff>; + clock-latency-ns = <0x9c40>; + opp-microvolt-L1 = <0xba284 0xba284 0xe7ef0 0xba284 0xba284 0xe7ef0>; + }; + + opp-j-m-408000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + opp-hz = <0x00 0x18519600>; + opp-supported-hw = <0x06 0xffff>; + clock-latency-ns = <0x9c40>; + }; + + opp-816000000 { + opp-microvolt = <0xa4cb8 0xa4cb8 0xe7ef0 0xa4cb8 0xa4cb8 0xe7ef0>; + opp-hz = <0x00 0x30a32c00>; + opp-supported-hw = <0xf9 0xffff>; + clock-latency-ns = <0x9c40>; + }; + + opp-j-m-1608000000 { + opp-microvolt = <0xd8acc 0xd8acc 0xe7ef0 0xd8acc 0xd8acc 0xe7ef0>; + opp-microvolt-L6 = <0xc65d4 0xc65d4 0xe7ef0 0xc65d4 0xc65d4 0xe7ef0>; + opp-microvolt-L4 = <0xcc77c 0xcc77c 0xe7ef0 0xcc77c 0xcc77c 0xe7ef0>; + opp-microvolt-L2 = <0xd2924 0xd2924 0xe7ef0 0xd2924 0xd2924 0xe7ef0>; + opp-hz = <0x00 0x5fd82200>; + opp-supported-hw = <0x06 0xffff>; + opp-microvolt-L5 = <0xc96a8 0xc96a8 0xe7ef0 0xc96a8 0xc96a8 0xe7ef0>; + opp-microvolt-L3 = <0xcf850 0xcf850 0xe7ef0 0xcf850 0xcf850 0xe7ef0>; + clock-latency-ns = <0x9c40>; + opp-microvolt-L1 = <0xd59f8 0xd59f8 0xe7ef0 0xd59f8 0xd59f8 0xe7ef0>; + }; + + opp-600000000 { + opp-microvolt = <0xa4cb8 0xa4cb8 0xe7ef0 0xa4cb8 0xa4cb8 0xe7ef0>; + opp-hz = <0x00 0x23c34600>; + opp-supported-hw = <0xf9 0xffff>; + clock-latency-ns = <0x9c40>; + }; + + opp-1416000000 { + opp-microvolt = <0xba284 0xba284 0xe7ef0 0xba284 0xba284 0xe7ef0>; + opp-microvolt-L6 = <0xadf34 0xadf34 0xe7ef0 0xadf34 0xadf34 0xe7ef0>; + opp-microvolt-L4 = <0xb1008 0xb1008 0xe7ef0 0xb1008 0xb1008 0xe7ef0>; + opp-microvolt-L2 = <0xb40dc 0xb40dc 0xe7ef0 0xb40dc 0xb40dc 0xe7ef0>; + opp-hz = <0x00 0x54667200>; + opp-supported-hw = <0xf9 0xffff>; + opp-microvolt-L5 = <0xadf34 0xadf34 0xe7ef0 0xadf34 0xadf34 0xe7ef0>; + opp-suspend; + opp-microvolt-L3 = <0xb1008 0xb1008 0xe7ef0 0xb1008 0xb1008 0xe7ef0>; + clock-latency-ns = <0x9c40>; + opp-microvolt-L1 = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + }; + + opp-408000000 { + opp-microvolt = <0xa4cb8 0xa4cb8 0xe7ef0 0xa4cb8 0xa4cb8 0xe7ef0>; + opp-hz = <0x00 0x18519600>; + opp-supported-hw = <0xf9 0xffff>; + clock-latency-ns = <0x9c40>; + }; + }; + + vcc-4g-regulator { + regulator-boot-on; + gpio = <0x182 0x00 0x00>; + regulator-always-on; + enable-active-high; + regulator-name = "vcc_4g"; + compatible = "regulator-fixed"; + status = "okay"; + phandle = <0x4b0>; + }; + + spi@fecb0000 { + pinctrl-names = "default"; + #address-cells = <0x01>; + num-cs = <0x02>; + pinctrl-0 = <0x187 0x188 0x189>; + clock-names = "spiclk\0apb_pclk"; + interrupts = <0x00 0x14a 0x04>; + clocks = <0x02 0xa7 0x02 0xa2>; + #size-cells = <0x00>; + dma-names = "tx\0rx"; + compatible = "rockchip,rk3066-spi"; + status = "disabled"; + reg = <0x00 0xfecb0000 0x00 0x1000>; + phandle = <0x2e6>; + dmas = <0xf2 0x0d 0xf2 0x0e>; + }; + + spdif-rx@fde08000 { + power-domains = <0x60 0x1a>; + clock-names = "mclk\0hclk"; + assigned-clocks = <0x02 0x25e>; + assigned-clock-parents = <0x02 0x05>; + resets = <0x02 0x3fd>; + interrupts = <0x00 0xc7 0x04>; + clocks = <0x02 0x25e 0x02 0x25d>; + dma-names = "rx"; + #sound-dai-cells = <0x00>; + compatible = "rockchip,rk3588-spdifrx\0rockchip,rk3308-spdifrx"; + status = "disabled"; + reg = <0x00 0xfde08000 0x00 0x1000>; + phandle = <0x280>; + dmas = <0x7c 0x15>; + reset-names = "spdifrx-m"; + }; + + mipi3-csi2-hw@fdd40000 { + clock-names = "pclk_csi2host"; + reg-names = "csihost_regs"; + resets = <0x02 0x327>; + interrupts = <0x00 0x95 0x04 0x00 0x96 0x04>; + clocks = <0x02 0x1d2>; + compatible = "rockchip,rk3588-mipi-csi2-hw"; + status = "okay"; + interrupt-names = "csi-intr1\0csi-intr2"; + reg = <0x00 0xfdd40000 0x00 0x10000>; + phandle = <0x4a>; + reset-names = "srst_csihost_p"; + }; + + memory { + device_type = "memory"; + reg = <0x00 0x200000 0x00 0x8200000 0x00 0x9400000 0x00 0xe6c00000 0x01 0x00 0x01 0x00 0x02 0xf0000000 0x00 0x10000000 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00>; + }; + + jpege-core@fdba4000 { + power-domains = <0x60 0x15>; + iommus = <0xbe>; + rockchip,ccu = <0xbd>; + clock-names = "aclk_vcodec\0hclk_vcodec"; + assigned-clocks = <0x02 0x1ae>; + rockchip,normal-rates = <0x2367b880 0x00>; + assigned-clock-rates = <0x2367b880>; + resets = <0x02 0x2cc 0x02 0x2cd>; + interrupts = <0x00 0x7c 0x04>; + clocks = <0x02 0x1ae 0x02 0x1af>; + rockchip,srv = <0xb8>; + rockchip,taskqueue-node = <0x02>; + rockchip,disable-auto-freq; + compatible = "rockchip,vpu-jpege-core"; + status = "okay"; + interrupt-names = "irq_jpege1"; + rockchip,skip-pmu-idle-request; + reg = <0x00 0xfdba4000 0x00 0x400>; + phandle = <0x26e>; + reset-names = "video_a\0video_h"; + }; + + wireless-wlan { + pinctrl-names = "default"; + pinctrl-0 = <0x1ea>; + WIFI,host_wake_irq = <0x182 0x0a 0x00>; + wifi_chip_type = "rtl8822ce"; + compatible = "wlan-platdata"; + status = "okay"; + phandle = <0x4ab>; + }; + + rkcif-mipi-lvds4-sditf-vir3 { + compatible = "rockchip,rkcif-sditf"; + status = "disabled"; + rockchip,cif = <0x1a1>; + phandle = <0x475>; + }; + + dp@fde50000 { + power-domains = <0x60 0x19>; + clock-names = "apb\0aux\0i2s\0spdif\0hclk\0hdcp"; + assigned-clocks = <0x02 0x2cc>; + assigned-clock-rates = <0xf42400>; + resets = <0x02 0x388>; + interrupts = <0x00 0xa1 0x04>; + clocks = <0x02 0x1e6 0x02 0x2cc 0x02 0x1fb 0x02 0x207 0x04 0x02 0x1ea>; + #sound-dai-cells = <0x01>; + compatible = "rockchip,rk3588-dp"; + status = "disabled"; + phys = <0xf6>; + reg = <0x00 0xfde50000 0x00 0x4000>; + phandle = <0x1d6>; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x00>; + + endpoint@1 { + remote-endpoint = <0x38>; + status = "disabled"; + reg = <0x01>; + phandle = <0xe0>; + }; + + endpoint@2 { + remote-endpoint = <0xf8>; + status = "disabled"; + reg = <0x02>; + phandle = <0xe6>; + }; + + endpoint@0 { + remote-endpoint = <0xf7>; + status = "disabled"; + reg = <0x00>; + phandle = <0xda>; + }; + }; + + port@1 { + reg = <0x01>; + + endpoint { + phandle = <0x286>; + }; + }; + }; + }; + + rockchip-system-monitor { + rockchip,thermal-zone = "soc-thermal"; + compatible = "rockchip,system-monitor"; + phandle = <0x247>; + }; + + vcc3v3-pcie30 { + regulator-max-microvolt = <0x325aa0>; + enable-active-high; + regulator-min-microvolt = <0x325aa0>; + regulator-name = "vcc3v3_pcie30"; + startup-delay-us = <0x1388>; + compatible = "regulator-fixed"; + status = "okay"; + phandle = <0x1b8>; + vin-supply = <0x1cd>; + gpios = <0x182 0x04 0x00>; + }; + + phy@fedb0000 { + clock-names = "pclk\0ref"; + resets = <0x02 0xc0045 0x02 0x43 0x02 0x44 0x02 0xc0046>; + clocks = <0x02 0x109 0x02 0x2b6>; + #phy-cells = <0x00>; + compatible = "rockchip,rk3588-mipi-dcphy"; + status = "okay"; + rockchip,grf = <0x191>; + reg = <0x00 0xfedb0000 0x00 0x10000>; + phandle = <0x30>; + reset-names = "m_phy\0apb\0grf\0s_phy"; + }; + + rkvdec-core@fdc38000 { + power-domains = <0x60 0x0e>; + iommus = <0xc9>; + rockchip,ccu = <0xca>; + clock-names = "aclk_vcodec\0hclk_vcodec\0clk_core\0clk_cabac\0clk_hevc_cabac"; + reg-names = "regs\0link"; + assigned-clocks = <0x02 0x190 0x02 0x193 0x02 0x191 0x02 0x192>; + rockchip,core-mask = <0x10001>; + rockchip,task-capacity = <0x10>; + rockchip,normal-rates = <0x2faf0800 0x00 0x23c34600 0x23c34600 0x3b9aca00>; + assigned-clock-rates = <0x2faf0800 0x23c34600 0x23c34600 0x3b9aca00>; + resets = <0x02 0x284 0x02 0x283 0x02 0x289 0x02 0x287 0x02 0x288>; + interrupts = <0x00 0x5f 0x04>; + rockchip,rcb-info = <0x88 0x6000 0x89 0xc000 0x8d 0x16000 0x8c 0xc000 0x8b 0x2c000 0x85 0xc000 0x86 0x2000 0x87 0x1100 0x8a 0x3300 0x8e 0x47300>; + clocks = <0x02 0x190 0x02 0x18f 0x02 0x193 0x02 0x191 0x02 0x192>; + rockchip,rcb-min-width = <0x200>; + rockchip,srv = <0xb8>; + rockchip,taskqueue-node = <0x09>; + compatible = "rockchip,rkv-decoder-v2"; + status = "okay"; + interrupt-names = "irq_rkvdec0"; + rockchip,skip-pmu-idle-request; + rockchip,rcb-iova = <0xfff00000 0x100000>; + reg = <0x00 0xfdc38100 0x00 0x400 0x00 0xfdc38000 0x00 0x100>; + phandle = <0x274>; + reset-names = "video_a\0video_h\0video_core\0video_cabac\0video_hevc_cabac"; + rockchip,sram = <0xcb>; + }; + + minidump { + smem-region = <0x1cf>; + minidump-region = <0x1d0>; + compatible = "rockchip,minidump"; + status = "disabled"; + phandle = <0x491>; }; }; diff --git a/src/vmm/images.rs b/src/vmm/images.rs index 478e6e12..c1314129 100644 --- a/src/vmm/images.rs +++ b/src/vmm/images.rs @@ -35,6 +35,40 @@ fn load_vm_images_from_memory(config: AxVMCrateConfig, vm: VMRef) -> AxResult { // Load DTB image if let Some(buffer) = vm_imags.dtb { + // extern crate fdt_rs; + + // use fdt_rs::base::*; + // use fdt_rs::prelude::*; + // // Initialize the devtree using an &[u8] array. + // let devtree = unsafe { + // // Get the actual size of the device tree after reading its header. + // let size = DevTree::read_totalsize(buffer).unwrap(); + // let buf = &buffer[..size]; + + // // Create the device tree handle + // DevTree::new(buf).unwrap() + // }; + + // let mut node_iter = devtree.nodes(); + // while let Some(node) = node_iter.next().unwrap() { + // warn!("DTB {}", node.name().unwrap()); + // } + + use fdt_parser::Fdt; + + let fdt = Fdt::from_bytes(buffer) + .expect("Failed to parse DTB image, perhaps the DTB is invalid or corrupted"); + + for nodes in fdt.all_nodes() { + warn!("DTB node: {:?}", nodes.name()); + } + + for mem in fdt.memory() { + for region in mem.regions() { + warn!("DTB memory region: {:?}", region); + } + } + load_vm_image_from_memory(buffer, config.kernel.dtb_load_addr.unwrap(), vm.clone()) .expect("Failed to load DTB images"); } From 7f150749065af5b1fc6fdba31f2290a911f1b262 Mon Sep 17 00:00:00 2001 From: hky1999 <976929993@qq.com> Date: Thu, 29 May 2025 22:32:16 +0800 Subject: [PATCH 020/219] [feat] introduce dtb parsing during vm config setup --- Boot-on-rk3588.md | 27 +++- Cargo.lock | 45 +++---- Cargo.toml | 22 ++++ .../vms/{rk3588.dts => aio-rk3588-jd4.dts} | 2 +- configs/vms/linux-qemu-aarch64.toml | 20 +-- configs/vms/linux-rk3588-aarch64-smp.toml | 4 +- src/vmm/config.rs | 124 +++++++++++++++++- src/vmm/images.rs | 34 ----- 8 files changed, 201 insertions(+), 77 deletions(-) rename configs/vms/{rk3588.dts => aio-rk3588-jd4.dts} (99%) diff --git a/Boot-on-rk3588.md b/Boot-on-rk3588.md index 881b5566..9d1db8e7 100644 --- a/Boot-on-rk3588.md +++ b/Boot-on-rk3588.md @@ -1,3 +1,28 @@ +## Setup TFTP Server + +```bash +sudo apt-get install tftpd-hpa tftp-hpa +sudo chmod 777 /srv/tftp +``` + +judge if TFTP works + +```bash +echo "TFTP Server Test" > /srv/tftp/testfile.txt +tftp localhost +tftp> get testfile.txt +tftp> quit +cat testfile.txt +``` + +You should see `TFTP Server Test` on your screen. + +## Compile device tree + +```bash +dtc -o aio-rk3588-jd4.dtb -O dtb -I dts aio-rk3588-jd4.dts +``` + ## Compile AxVisor * compile @@ -20,7 +45,7 @@ cp axvisor_aarch64-rk3588j.img /srv/tftp/axvisor ```bash # 这是 tftp 服务器所在的主机 ip -setenv serverip 192.168.50.18 +setenv serverip 192.168.50.97 # 这是 rk3588 所在设备的 ip (Firefly Linux 自己 DHCP 拿到的地址) setenv ipaddr 192.168.50.8 # 使用 tftp 加载镜像到指定内存地址并 boot diff --git a/Cargo.lock b/Cargo.lock index 8947f7b0..4a102467 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -117,10 +117,9 @@ dependencies = [ [[package]] name = "arceos_api" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm#20d52d36d2eeb05edd7240c0e0b0cf17993c38bc" dependencies = [ "axalloc", - "axconfig", + "axconfig 0.1.0", "axdriver", "axerrno", "axfeat", @@ -150,7 +149,6 @@ dependencies = [ [[package]] name = "arm_gicv2" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arm_gicv2#eee14941d490719f6689e82f9a87caea6767bdc3" dependencies = [ "tock-registers 0.8.1", ] @@ -167,7 +165,6 @@ dependencies = [ [[package]] name = "arm_vcpu" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arm_vcpu.git#4dd7e5df7949336a11936c50b99ab1c608871060" dependencies = [ "aarch64-cpu 9.4.0", "aarch64_sysreg", @@ -190,7 +187,6 @@ checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" [[package]] name = "axaddrspace" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/axaddrspace.git#2ed4d076e01f966710bd6480131abd3a9ffb8930" dependencies = [ "axerrno", "bit_field", @@ -208,7 +204,6 @@ dependencies = [ [[package]] name = "axalloc" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm#20d52d36d2eeb05edd7240c0e0b0cf17993c38bc" dependencies = [ "allocator", "axerrno", @@ -218,6 +213,13 @@ dependencies = [ "memory_addr", ] +[[package]] +name = "axconfig" +version = "0.1.0" +dependencies = [ + "axconfig-gen-macros", +] + [[package]] name = "axconfig" version = "0.1.0" @@ -251,7 +253,6 @@ dependencies = [ [[package]] name = "axdevice" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/axdevice.git#8652ce80b2c53310fb7b0f8ac275f2dfcfbb1338" dependencies = [ "axaddrspace", "axdevice_base", @@ -265,7 +266,6 @@ dependencies = [ [[package]] name = "axdevice_base" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/axdevice_crates.git#28d49f147793997a9db1ebb75a34295cde2a107d" dependencies = [ "axaddrspace", "axerrno", @@ -277,10 +277,9 @@ dependencies = [ [[package]] name = "axdriver" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm#20d52d36d2eeb05edd7240c0e0b0cf17993c38bc" dependencies = [ "axalloc", - "axconfig", + "axconfig 0.1.0", "axdriver_base", "axdriver_block", "axdriver_pci", @@ -335,7 +334,6 @@ dependencies = [ [[package]] name = "axfeat" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm#20d52d36d2eeb05edd7240c0e0b0cf17993c38bc" dependencies = [ "axalloc", "axdriver", @@ -350,7 +348,6 @@ dependencies = [ [[package]] name = "axfs" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm#20d52d36d2eeb05edd7240c0e0b0cf17993c38bc" dependencies = [ "axdriver", "axdriver_block", @@ -404,14 +401,13 @@ dependencies = [ [[package]] name = "axhal" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm#20d52d36d2eeb05edd7240c0e0b0cf17993c38bc" dependencies = [ "aarch64-cpu 10.0.0", "arm-gic-driver", "arm_gicv2", "arm_pl011", "axalloc", - "axconfig", + "axconfig 0.1.0", "axlog", "bitflags 2.9.0", "cfg-if", @@ -453,7 +449,6 @@ dependencies = [ [[package]] name = "axlog" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm#20d52d36d2eeb05edd7240c0e0b0cf17993c38bc" dependencies = [ "cfg-if", "crate_interface", @@ -464,10 +459,9 @@ dependencies = [ [[package]] name = "axmm" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm#20d52d36d2eeb05edd7240c0e0b0cf17993c38bc" dependencies = [ "axalloc", - "axconfig", + "axconfig 0.1.0", "axerrno", "axhal", "kspin", @@ -480,7 +474,6 @@ dependencies = [ [[package]] name = "axns" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm#20d52d36d2eeb05edd7240c0e0b0cf17993c38bc" dependencies = [ "crate_interface", "lazyinit", @@ -489,10 +482,9 @@ dependencies = [ [[package]] name = "axruntime" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm#20d52d36d2eeb05edd7240c0e0b0cf17993c38bc" dependencies = [ "axalloc", - "axconfig", + "axconfig 0.1.0", "axdriver", "axfs", "axhal", @@ -509,7 +501,6 @@ dependencies = [ [[package]] name = "axstd" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm#20d52d36d2eeb05edd7240c0e0b0cf17993c38bc" dependencies = [ "arceos_api", "axerrno", @@ -521,7 +512,6 @@ dependencies = [ [[package]] name = "axsync" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm#20d52d36d2eeb05edd7240c0e0b0cf17993c38bc" dependencies = [ "axtask", "kspin", @@ -530,9 +520,8 @@ dependencies = [ [[package]] name = "axtask" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm#20d52d36d2eeb05edd7240c0e0b0cf17993c38bc" dependencies = [ - "axconfig", + "axconfig 0.1.0", "axhal", "cfg-if", "cpumask", @@ -550,7 +539,6 @@ dependencies = [ [[package]] name = "axvcpu" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/axvcpu.git#34fc1067c4e9dddf3e43e7d290bcb5cf4127382e" dependencies = [ "axaddrspace", "axerrno", @@ -563,7 +551,7 @@ name = "axvisor" version = "0.1.0" dependencies = [ "axaddrspace", - "axconfig", + "axconfig 0.1.0 (git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm)", "axerrno", "axstd", "axvcpu", @@ -590,7 +578,6 @@ dependencies = [ [[package]] name = "axvm" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/axvm.git#69b48a93cedb031a78f59d6219bd323d12e96a71" dependencies = [ "arm_vcpu", "axaddrspace", @@ -1809,3 +1796,7 @@ dependencies = [ "quote", "syn 2.0.100", ] + +[[patch.unused]] +name = "arm_vgic" +version = "0.0.0" diff --git a/Cargo.toml b/Cargo.toml index d51befc9..304687fe 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -53,3 +53,25 @@ axconfig = { git = "https://github.com/arceos-hypervisor/arceos.git", branch = " prettyplease = "0.2" quote = "1.0" syn = "2.0" + + +[patch."https://github.com/arceos-hypervisor/arceos.git".axstd] +path = "crates/arceos/ulib/axstd" +[patch."https://github.com/arceos-hypervisor/arceos.git".axhal] +path = "crates/arceos/modules/axhal" +[patch."https://github.com/arceos-hypervisor/axvm.git".axvm] +path = "crates/axvm" +[patch."https://github.com/arceos-hypervisor/axvcpu.git".axvcpu] +path = "crates/axvcpu" +[patch."https://github.com/arceos-hypervisor/axaddrspace.git".axaddrspace] +path = "crates/axaddrspace" +[patch."https://github.com/arceos-hypervisor/arm_vcpu.git".arm_vcpu] +path = "crates/arm_vcpu" +[patch."https://github.com/arceos-hypervisor/axdevice.git".axdevice] +path = "crates/axdevice" +[patch."https://github.com/arceos-hypervisor/arm_vgic.git".arm_vgic] +path = "crates/arm_vgic" +[patch."https://github.com/arceos-hypervisor/axdevice_crates.git".axdevice_base] +path = "crates/axdevice_crates/axdevice_base" +[patch."https://github.com/arceos-hypervisor/arm_gicv2.git".arm_gicv2] +path = "crates/arm_gicv2" diff --git a/configs/vms/rk3588.dts b/configs/vms/aio-rk3588-jd4.dts similarity index 99% rename from configs/vms/rk3588.dts rename to configs/vms/aio-rk3588-jd4.dts index 9f4eeb7a..bfe760b8 100644 --- a/configs/vms/rk3588.dts +++ b/configs/vms/aio-rk3588-jd4.dts @@ -12971,7 +12971,7 @@ memory { device_type = "memory"; - reg = <0x00 0x200000 0x00 0x8200000 0x00 0x9400000 0x00 0xe6c00000 0x01 0x00 0x01 0x00 0x02 0xf0000000 0x00 0x10000000 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00>; + reg = <0x00 0x9400000 0x00 0xe6c00000 0x01 0x00 0x01 0x00 0x02 0xf0000000 0x00 0x10000000 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00>; }; jpege-core@fdba4000 { diff --git a/configs/vms/linux-qemu-aarch64.toml b/configs/vms/linux-qemu-aarch64.toml index 6816883d..3459987f 100644 --- a/configs/vms/linux-qemu-aarch64.toml +++ b/configs/vms/linux-qemu-aarch64.toml @@ -22,11 +22,11 @@ entry_point = 0x8008_0000 # load from memory. image_location = "memory" # The file path of the kernel image. -kernel_path = "rk3588.dtb" +kernel_path = "Image-5.10.198.bin" # The load address of the kernel image. kernel_load_addr = 0x8008_0000 # The file path of the device tree blob (DTB). -dtb_path = "rk3588.dtb" +dtb_path = "aio-rk3588-jd4.dtb" # The load address of the device tree blob (DTB). dtb_load_addr = 0x8000_0000 @@ -47,7 +47,7 @@ dtb_load_addr = 0x8000_0000 # Memory regions with format (`base_paddr`, `size`, `flags`, `map_type`). # For `map_type`, 0 means `MAP_ALLOC`, 1 means `MAP_IDENTICAL`. memory_regions = [ - [0x8000_0000, 0x4000_0000, 0x7, 1], # System RAM 1G MAP_IDENTICAL + # [0x8000_0000, 0x4000_0000, 0x7, 1], # System RAM 1G MAP_IDENTICAL ] # @@ -56,13 +56,13 @@ memory_regions = [ [devices] # Pass-through devices. passthrough_devices = [ - ["intc@8000000", 0x800_0000, 0x800_0000, 0x50_000, 0x1], - ["pl011@9000000", 0x900_0000, 0x900_0000, 0x1000, 0x1], - ["pl031@9010000", 0x901_0000, 0x901_0000, 0x1000, 0x1], - ["pl061@9030000", 0x903_0000, 0x903_0000, 0x1000, 0x1], - # a003000.virtio_mmio virtio_mmio@a003000 - # a003200.virtio_mmio virtio_mmio@a003200 - ["virtio_mmio", 0xa00_0000, 0xa00_0000, 0x4000, 0x1], + # ["intc@8000000", 0x800_0000, 0x800_0000, 0x50_000, 0x1], + # ["pl011@9000000", 0x900_0000, 0x900_0000, 0x1000, 0x1], + # ["pl031@9010000", 0x901_0000, 0x901_0000, 0x1000, 0x1], + # ["pl061@9030000", 0x903_0000, 0x903_0000, 0x1000, 0x1], + # # a003000.virtio_mmio virtio_mmio@a003000 + # # a003200.virtio_mmio virtio_mmio@a003200 + # ["virtio_mmio", 0xa00_0000, 0xa00_0000, 0x4000, 0x1], ] # Emu_devices. diff --git a/configs/vms/linux-rk3588-aarch64-smp.toml b/configs/vms/linux-rk3588-aarch64-smp.toml index 85feee8b..c7ed47d4 100644 --- a/configs/vms/linux-rk3588-aarch64-smp.toml +++ b/configs/vms/linux-rk3588-aarch64-smp.toml @@ -28,9 +28,9 @@ dtb_load_addr = 0x1000_0000 # load from memory image_location = "memory" # The file path of the kernel image. -kernel_path = "Image-5.10.198" +kernel_path = "Image-5.10.198.bin" # The file path of the device tree blob (DTB). -dtb_path = "aio-3588jd4.dtb" +dtb_path = "aio-rk3588-jd4.dtb" # load from file system. # image_location = "fs". diff --git a/src/vmm/config.rs b/src/vmm/config.rs index 32d2e181..64013a18 100644 --- a/src/vmm/config.rs +++ b/src/vmm/config.rs @@ -1,4 +1,10 @@ -use axvm::config::{AxVMConfig, AxVMCrateConfig}; +use alloc::string::ToString; +use alloc::vec::Vec; + +use axaddrspace::MappingFlags; +use axvm::config::{ + AxVMConfig, AxVMCrateConfig, PassThroughDeviceConfig, VmMemConfig, VmMemMappingType, +}; use crate::vmm::{VM, images::load_vm_images, vm_list::push_vm}; @@ -22,13 +28,127 @@ pub mod config { include!(concat!(env!("OUT_DIR"), "/vm_configs.rs")); } +pub fn get_vm_dtb(vm_cfg: &AxVMConfig) -> Option<&'static [u8]> { + let vm_imags = config::get_memory_images() + .iter() + .find(|&v| v.id == vm_cfg.id()) + .expect("VM images is missed, Perhaps add `VM_CONFIGS=PATH/CONFIGS/FILE` command."); + vm_imags.dtb +} + +pub fn parse_vm_dtb(vm_cfg: &mut AxVMConfig, dtb: &[u8]) { + use fdt_parser::{Fdt, Status}; + + let fdt = Fdt::from_bytes(dtb) + .expect("Failed to parse DTB image, perhaps the DTB is invalid or corrupted"); + + let mut dram_regions = Vec::new(); + for mem in fdt.memory() { + for region in mem.regions() { + if region.size == 0 { + continue; + } + dram_regions.push((region.address as usize, region.size as usize)); + } + } + + for mem in fdt.memory() { + for region in mem.regions() { + // Skip empty regions + if region.size == 0 { + continue; + } + warn!("DTB memory region: {:?}", region); + vm_cfg.add_memory_region(VmMemConfig { + gpa: region.address as usize, + size: region.size as usize, + flags: (MappingFlags::READ | MappingFlags::WRITE | MappingFlags::EXECUTE).bits(), + map_type: VmMemMappingType::MapIentical, + }); + } + } + + for reserved in fdt.reserved_memory() { + warn!("Find reserved memory: {:?}", reserved.name()); + } + + for mem_reserved in fdt.memory_reservation_block() { + warn!("Find memory reservation block: {:?}", mem_reserved); + } + + for node in fdt.all_nodes() { + trace!("DTB node: {:?}", node.name()); + let name = node.name(); + if name == "memory" { + // Skip the memory node, as we handle memory regions separately. + continue; + } + + if let Some(status) = node.status() { + if status == Status::Disabled { + // Skip disabled nodes + warn!("Skipping disabled DTB node: {}", name); + continue; + } + } + + if let Some(regs) = node.reg() { + for reg in regs { + if reg.address < 0x1000 { + // Skip registers with address less than 0x10000. + warn!( + "Skipping DTB node {} with register address {:#x} < 0x10000", + node.name(), + reg.address + ); + continue; + } + + if let Some(size) = reg.size { + let start = reg.address as usize; + let end = start + size as usize; + if vm_cfg.contains_memory_range(&(start..end)) { + warn!( + "Skipping DTB node {} with register address {:#x} and size {:#x} as it overlaps with existing memory regions", + node.name(), + reg.address, + size + ); + continue; + } + + let pt_dev = PassThroughDeviceConfig { + name: node.name().to_string(), + base_gpa: reg.address as _, + base_hpa: reg.address as _, + length: size as _, + irq_id: 0, + }; + info!("Adding {:x?}", pt_dev); + vm_cfg.add_pass_through_device(pt_dev); + } + } + } + } +} + pub fn init_guest_vms() { let gvm_raw_configs = config::static_vm_configs(); for raw_cfg_str in gvm_raw_configs { let vm_create_config = AxVMCrateConfig::from_toml(raw_cfg_str).expect("Failed to resolve VM config"); - let vm_config = AxVMConfig::from(vm_create_config.clone()); + let mut vm_config = AxVMConfig::from(vm_create_config.clone()); + + // Overlay VM config with the given DTB. + if let Some(dtb) = get_vm_dtb(&vm_config) { + parse_vm_dtb(&mut vm_config, dtb); + } else { + warn!( + "VM[{}] DTB not found in memory, skipping...", + vm_config.id() + ); + } info!("Creating VM[{}] {:?}", vm_config.id(), vm_config.name()); diff --git a/src/vmm/images.rs b/src/vmm/images.rs index c1314129..478e6e12 100644 --- a/src/vmm/images.rs +++ b/src/vmm/images.rs @@ -35,40 +35,6 @@ fn load_vm_images_from_memory(config: AxVMCrateConfig, vm: VMRef) -> AxResult { // Load DTB image if let Some(buffer) = vm_imags.dtb { - // extern crate fdt_rs; - - // use fdt_rs::base::*; - // use fdt_rs::prelude::*; - // // Initialize the devtree using an &[u8] array. - // let devtree = unsafe { - // // Get the actual size of the device tree after reading its header. - // let size = DevTree::read_totalsize(buffer).unwrap(); - // let buf = &buffer[..size]; - - // // Create the device tree handle - // DevTree::new(buf).unwrap() - // }; - - // let mut node_iter = devtree.nodes(); - // while let Some(node) = node_iter.next().unwrap() { - // warn!("DTB {}", node.name().unwrap()); - // } - - use fdt_parser::Fdt; - - let fdt = Fdt::from_bytes(buffer) - .expect("Failed to parse DTB image, perhaps the DTB is invalid or corrupted"); - - for nodes in fdt.all_nodes() { - warn!("DTB node: {:?}", nodes.name()); - } - - for mem in fdt.memory() { - for region in mem.regions() { - warn!("DTB memory region: {:?}", region); - } - } - load_vm_image_from_memory(buffer, config.kernel.dtb_load_addr.unwrap(), vm.clone()) .expect("Failed to load DTB images"); } From fc70c4b860d3b0221b8a4387eb15b32185f6f8d9 Mon Sep 17 00:00:00 2001 From: hky1999 <976929993@qq.com> Date: Sun, 1 Jun 2025 21:55:37 +0800 Subject: [PATCH 021/219] [wip] data abort @1000a0 --- Boot-on-rk3588.md | 8 +- Makefile | 3 + configs/platforms/aarch64-rk3588j-hv.toml | 9 +- configs/vms/aio-rk3588-jd4.dts | 298 +- configs/vms/linux-rk3588-aarch64-smp.toml | 100 +- configs/vms/rk3588jd4.dts | 13141 ++++++++++++++++++++ scripts/make/rk3588.mk | 13 +- src/hal.rs | 2 +- src/vmm/config.rs | 10 +- 9 files changed, 13202 insertions(+), 382 deletions(-) create mode 100644 configs/vms/rk3588jd4.dts diff --git a/Boot-on-rk3588.md b/Boot-on-rk3588.md index 9d1db8e7..6a95b7ad 100644 --- a/Boot-on-rk3588.md +++ b/Boot-on-rk3588.md @@ -29,11 +29,10 @@ dtc -o aio-rk3588-jd4.dtb -O dtb -I dts aio-rk3588-jd4.dts ```bash make ARCH=aarch64 PLATFORM=configs/platforms/aarch64-rk3588j-hv.toml defconfig -make ARCH=aarch64 PLATFORM=configs/platforms/aarch64-rk3588j-hv.toml image -make ARCH=aarch64 PLATFORM=configs/platforms/aarch64-rk3588j-hv.toml VM_CONFIGS=configs/vms/linux-rk3588-aarch64-smp.toml image +make ARCH=aarch64 PLATFORM=configs/platforms/aarch64-rk3588j-hv.toml VM_CONFIGS=configs/vms/linux-rk3588-aarch64-smp.toml LOG=debug GICV3=y upload ``` -* copy to tftp dir +* copy to tftp dir (make xxx upload will copy the image to `/srv/tftp/axvisor` automatically) ```bash cp axvisor_aarch64-rk3588j.img /srv/tftp/axvisor @@ -49,6 +48,7 @@ setenv serverip 192.168.50.97 # 这是 rk3588 所在设备的 ip (Firefly Linux 自己 DHCP 拿到的地址) setenv ipaddr 192.168.50.8 # 使用 tftp 加载镜像到指定内存地址并 boot -tftp 0x00480000 ${serverip}:axvisor;tftp 0x10000000 ${serverip}:rk3588_dtb.bin;bootm 0x00480000 - 0x10000000; +setenv serverip 192.168.50.97;setenv ipaddr 192.168.50.8;tftp 0x00480000 ${serverip}:axvisor;tftp 0x10000000 ${serverip}:rk3588_dtb.bin;bootm 0x00480000 - 0x10000000; ``` +tftp 0x00480000 ${serverip}:Image.bin;tftp 0x10000000 ${serverip}:rk3588_dtb.bin;bootm 0x00480000 - 0x10000000; diff --git a/Makefile b/Makefile index 3dd0e426..75350f82 100644 --- a/Makefile +++ b/Makefile @@ -187,6 +187,9 @@ gdb: # Temporarily used for building image for the `aarch64-rk3588j` platform. image: build_image +upload: image + $(call upload_image) + clippy: oldconfig ifeq ($(origin ARCH), command line) $(call cargo_clippy,--target $(TARGET)) diff --git a/configs/platforms/aarch64-rk3588j-hv.toml b/configs/platforms/aarch64-rk3588j-hv.toml index de34e4ab..14e0602d 100644 --- a/configs/platforms/aarch64-rk3588j-hv.toml +++ b/configs/platforms/aarch64-rk3588j-hv.toml @@ -32,11 +32,6 @@ kernel-aspace-size = "0x0000_ffff_ffff_f000" [devices] # MMIO regions with format (`base_paddr`, `size`). mmio-regions = [ - # ["0x0900_0000", "0x1000"], # PL011 UART - # ["0x0800_0000", "0x5_0000"], # GICv2 with Virtualization (GICV@0x0803_0000, GICH@0x0804_0000) - # ["0x0a00_0000", "0x4000"], # VirtIO - # ["0x1000_0000", "0x2eff_0000"], # PCI memory ranges (ranges 1: 32-bit MMIO space) - # ["0x40_1000_0000", "0x1000_0000"], # PCI config space [0xfeb50000, 0x1000], # uart8250 UART0 [0xfe600000, 0x10000], # gic-v3 gicd [0xfe680000, 0x100000], # gic-v3 gicr @@ -59,10 +54,10 @@ uart-paddr = 0xfeb5_0000 # uint uart-irq = 0x14d # uint # GICC Address +gicc-paddr = 0xfe610000 # uint +# GICD Address gicd-paddr = 0xfe600000 # uint # GICR Address -gicc-paddr = 0xfe680000 # uint -# GICR Address gicr-paddr = 0xfe680000 # uint # PSCI diff --git a/configs/vms/aio-rk3588-jd4.dts b/configs/vms/aio-rk3588-jd4.dts index bfe760b8..40549136 100644 --- a/configs/vms/aio-rk3588-jd4.dts +++ b/configs/vms/aio-rk3588-jd4.dts @@ -9539,7 +9539,7 @@ chosen { linux,initrd-end = <0x00 0xaac72ae>; - bootargs = "storagemedia=emmc androidboot.storagemedia=emmc androidboot.mode=normal storagenode=/mmc@fe2e0000 androidboot.verifiedbootstate=orange ro rootwait earlycon=uart8250,mmio32,0xfeb50000 console=ttyFIQ0 irqchip.gicv3_pseudo_nmi=0 root=PARTLABEL=rootfs rootfstype=ext4 overlayroot=device:dev=PARTLABEL=userdata,fstype=ext4,mkfs=1 coherent_pool=1m systemd.gpt_auto=0 cgroup_enable=memory swapaccount=1 net.ifnames=0 rcupdate.rcu_expedited=1 rcu_nocbs=all comm-05/28/2025 androidboot.fwver=ddr-v1.15-d5483af87d,spl-v1.13,bl31-v1.44,bl32-v1.15,uboot--boot"; + bootargs = "storagemedia=emmc androidboot.storagemedia=emmc androidboot.mode=normal storagenode=/mmc@fe2e0000 androidboot.verifiedbootstate=orange ro rootwait earlycon=uart8250,mmio32,0xfeb50000 console=ttyFIQ0 irqchip.gicv3_pseudo_nmi=0 root=PARTLABEL=rootfs rootfstype=ext4 overlayroot=device:dev=PARTLABEL=userdata,fstype=ext4,mkfs=1 coherent_pool=1m systemd.gpt_auto=0 cgroup_enable=memory swapaccount=1 net.ifnames=0 rcupdate.rcu_expedited=0 comm-05/28/2025 androidboot.fwver=ddr-v1.15-d5483af87d,spl-v1.13,bl31-v1.44,bl32-v1.15,uboot--boot"; linux,initrd-start = <0x00 0xa200000>; phandle = <0x48d>; }; @@ -10347,306 +10347,70 @@ #address-cells = <0x01>; #size-cells = <0x00>; - l2-cache-b0 { - cache-size = <0x80000>; - cache-sets = <0x400>; - compatible = "cache"; - cache-line-size = <0x40>; - next-level-cache = <0x1e>; - phandle = <0x17>; - }; - - l2-cache-l3 { - cache-size = <0x20000>; - cache-sets = <0x200>; - compatible = "cache"; - cache-line-size = <0x40>; - next-level-cache = <0x1e>; - phandle = <0x15>; - }; - - cpu@300 { - d-cache-line-size = <0x40>; - capacity-dmips-mhz = <0x212>; - clocks = <0x0e 0x00>; - i-cache-line-size = <0x40>; - cpu-idle-states = <0x10>; + cpu@0 { device_type = "cpu"; compatible = "arm,cortex-a55"; - d-cache-size = <0x8000>; - next-level-cache = <0x15>; - i-cache-size = <0x8000>; - reg = <0x300>; + reg = <0x00>; enable-method = "psci"; - phandle = <0x09>; - d-cache-sets = <0x80>; + clocks = <0x0e 0x00>; + cpu-idle-states = <0x10>; operating-points-v2 = <0x0f>; + capacity-dmips-mhz = <0x212>; + + cpu-supply = <0x12>; + mem-supply = <0x12>; + dynamic-power-coefficient = <0x64>; + + i-cache-line-size = <0x40>; + i-cache-size = <0x8000>; i-cache-sets = <0x80>; + + d-cache-line-size = <0x40>; + d-cache-size = <0x8000>; + d-cache-sets = <0x80>; + + next-level-cache = <0x11>; + #cooling-cells = <0x02>; + phandle = <0x06>; }; - l2-cache-l1 { + l2-cache-l0 { + compatible = "cache"; cache-size = <0x20000>; cache-sets = <0x200>; - compatible = "cache"; cache-line-size = <0x40>; next-level-cache = <0x1e>; - phandle = <0x13>; - }; - - cpu@600 { - d-cache-line-size = <0x40>; - capacity-dmips-mhz = <0x400>; - cpu-supply = <0x1c>; - clocks = <0x0e 0x03>; - i-cache-line-size = <0x40>; - cpu-idle-states = <0x10>; - device_type = "cpu"; - compatible = "arm,cortex-a76"; - dynamic-power-coefficient = <0x12c>; - d-cache-size = <0x10000>; - next-level-cache = <0x1b>; - i-cache-size = <0x10000>; - mem-supply = <0x1c>; - reg = <0x600>; - enable-method = "psci"; - phandle = <0x0c>; - d-cache-sets = <0x100>; - operating-points-v2 = <0x1a>; - i-cache-sets = <0x100>; - #cooling-cells = <0x02>; + phandle = <0x11>; }; - l2-cache-b3 { - cache-size = <0x80000>; - cache-sets = <0x400>; + l3-cache { compatible = "cache"; + cache-size = <0x300000>; + cache-sets = <0x1000>; cache-line-size = <0x40>; - next-level-cache = <0x1e>; - phandle = <0x1d>; + phandle = <0x1e>; }; idle-states { entry-method = "psci"; cpu-sleep { + compatible = "arm,idle-state"; entry-latency-us = <0x64>; - local-timer-stop; exit-latency-us = <0x78>; + min-residency-us = <0x3e8>; + local-timer-stop; arm,psci-suspend-param = <0x10000>; - compatible = "arm,idle-state"; phandle = <0x10>; - min-residency-us = <0x3e8>; }; }; cpu-map { - - cluster2 { - - core1 { - cpu = <0x0d>; - }; - - core0 { - cpu = <0x0c>; - }; - }; - cluster0 { - - core3 { - cpu = <0x09>; - }; - - core1 { - cpu = <0x07>; - }; - - core2 { - cpu = <0x08>; - }; - core0 { cpu = <0x06>; }; }; - - cluster1 { - - core1 { - cpu = <0x0b>; - }; - - core0 { - cpu = <0x0a>; - }; - }; - }; - - l3-cache { - cache-size = <0x300000>; - cache-sets = <0x1000>; - compatible = "cache"; - cache-line-size = <0x40>; - phandle = <0x1e>; - }; - - cpu@200 { - d-cache-line-size = <0x40>; - capacity-dmips-mhz = <0x212>; - clocks = <0x0e 0x00>; - i-cache-line-size = <0x40>; - cpu-idle-states = <0x10>; - device_type = "cpu"; - compatible = "arm,cortex-a55"; - d-cache-size = <0x8000>; - next-level-cache = <0x14>; - i-cache-size = <0x8000>; - reg = <0x200>; - enable-method = "psci"; - phandle = <0x08>; - d-cache-sets = <0x80>; - operating-points-v2 = <0x0f>; - i-cache-sets = <0x80>; - }; - - l2-cache-b1 { - cache-size = <0x80000>; - cache-sets = <0x400>; - compatible = "cache"; - cache-line-size = <0x40>; - next-level-cache = <0x1e>; - phandle = <0x19>; - }; - - cpu@500 { - d-cache-line-size = <0x40>; - capacity-dmips-mhz = <0x400>; - clocks = <0x0e 0x02>; - i-cache-line-size = <0x40>; - cpu-idle-states = <0x10>; - device_type = "cpu"; - compatible = "arm,cortex-a76"; - d-cache-size = <0x10000>; - next-level-cache = <0x19>; - i-cache-size = <0x10000>; - reg = <0x500>; - enable-method = "psci"; - phandle = <0x0b>; - d-cache-sets = <0x100>; - operating-points-v2 = <0x16>; - i-cache-sets = <0x100>; - }; - - cpu@0 { - d-cache-line-size = <0x40>; - capacity-dmips-mhz = <0x212>; - cpu-supply = <0x12>; - clocks = <0x0e 0x00>; - i-cache-line-size = <0x40>; - cpu-idle-states = <0x10>; - device_type = "cpu"; - compatible = "arm,cortex-a55"; - dynamic-power-coefficient = <0x64>; - d-cache-size = <0x8000>; - next-level-cache = <0x11>; - i-cache-size = <0x8000>; - mem-supply = <0x12>; - reg = <0x00>; - enable-method = "psci"; - phandle = <0x06>; - d-cache-sets = <0x80>; - operating-points-v2 = <0x0f>; - i-cache-sets = <0x80>; - #cooling-cells = <0x02>; - }; - - l2-cache-l2 { - cache-size = <0x20000>; - cache-sets = <0x200>; - compatible = "cache"; - cache-line-size = <0x40>; - next-level-cache = <0x1e>; - phandle = <0x14>; - }; - - l2-cache-l0 { - cache-size = <0x20000>; - cache-sets = <0x200>; - compatible = "cache"; - cache-line-size = <0x40>; - next-level-cache = <0x1e>; - phandle = <0x11>; - }; - - cpu@100 { - d-cache-line-size = <0x40>; - capacity-dmips-mhz = <0x212>; - clocks = <0x0e 0x00>; - i-cache-line-size = <0x40>; - cpu-idle-states = <0x10>; - device_type = "cpu"; - compatible = "arm,cortex-a55"; - d-cache-size = <0x8000>; - next-level-cache = <0x13>; - i-cache-size = <0x8000>; - reg = <0x100>; - enable-method = "psci"; - phandle = <0x07>; - d-cache-sets = <0x80>; - operating-points-v2 = <0x0f>; - i-cache-sets = <0x80>; - }; - - cpu@400 { - d-cache-line-size = <0x40>; - capacity-dmips-mhz = <0x400>; - cpu-supply = <0x18>; - clocks = <0x0e 0x02>; - i-cache-line-size = <0x40>; - cpu-idle-states = <0x10>; - device_type = "cpu"; - compatible = "arm,cortex-a76"; - dynamic-power-coefficient = <0x12c>; - d-cache-size = <0x10000>; - next-level-cache = <0x17>; - i-cache-size = <0x10000>; - mem-supply = <0x18>; - reg = <0x400>; - enable-method = "psci"; - phandle = <0x0a>; - d-cache-sets = <0x100>; - operating-points-v2 = <0x16>; - i-cache-sets = <0x100>; - #cooling-cells = <0x02>; - }; - - l2-cache-b2 { - cache-size = <0x80000>; - cache-sets = <0x400>; - compatible = "cache"; - cache-line-size = <0x40>; - next-level-cache = <0x1e>; - phandle = <0x1b>; - }; - - cpu@700 { - d-cache-line-size = <0x40>; - capacity-dmips-mhz = <0x400>; - clocks = <0x0e 0x03>; - i-cache-line-size = <0x40>; - cpu-idle-states = <0x10>; - device_type = "cpu"; - compatible = "arm,cortex-a76"; - d-cache-size = <0x10000>; - next-level-cache = <0x1d>; - i-cache-size = <0x10000>; - reg = <0x700>; - enable-method = "psci"; - phandle = <0x0d>; - d-cache-sets = <0x100>; - operating-points-v2 = <0x1a>; - i-cache-sets = <0x100>; }; }; diff --git a/configs/vms/linux-rk3588-aarch64-smp.toml b/configs/vms/linux-rk3588-aarch64-smp.toml index c7ed47d4..b91a14c3 100644 --- a/configs/vms/linux-rk3588-aarch64-smp.toml +++ b/configs/vms/linux-rk3588-aarch64-smp.toml @@ -28,7 +28,7 @@ dtb_load_addr = 0x1000_0000 # load from memory image_location = "memory" # The file path of the kernel image. -kernel_path = "Image-5.10.198.bin" +kernel_path = "Image.bin" # The file path of the device tree blob (DTB). dtb_path = "aio-rk3588-jd4.dtb" @@ -50,7 +50,7 @@ dtb_path = "aio-rk3588-jd4.dtb" # For `map_type`, 0 means `MAP_ALLOC`, 1 means `MAP_IDENTICAL`. memory_regions = [ # [0x0, 0x10_f000, 0x7, 1], # passthrough uncahed MAP_IDENTICAL - [0x940_0000, 0xe6c00000, 0x7, 1], # ram 3G MAP_IDENTICAL + # [0x940_0000, 0xe6c00000, 0x7, 1], # ram 3G MAP_IDENTICAL # [0x4000_0000, 0x4000_0000, 0x7, 1], # ram 1G MAP_IDENTICAL ] @@ -64,98 +64,4 @@ emu_devices = [] # Pass-through devices. # Name Base-Ipa Base-Pa Length Alloc-Irq. -passthrough_devices = [ - [ - "ramoops", - 0x11_0000, - 0x11_0000, - 0xf_0000, - 0x17, - ], - [ - "sram", - 0x10_f000, - 0x10_f000, - 0x1000, - 0x17, - ], - [ - "gpu", - 0xfb00_0000, - 0xfb00_0000, - 0x20_0000, - 0x17, - ], - [ - "uart8250 UART", - 0xfd00_0000, - 0xfd00_0000, - 0x200_0000, - 0x17, - ], - [ - "usb", - 0xfc00_0000, - 0xfc00_0000, - 0x100_0000, - 0x17, - ], - [ - "uncached", - 0x0, - 0x0, - 0x10_f000, - 0x17, - ], - # [ - # "gicr", - # 0xfe68_0000, - # 0xfe68_0000, - # 0x10_0000, - # 0x1, - # ], - # [ - # "uncached", - # 0xf300_0000, - # 0xf300_0000, - # 0x100_0000, - # 0x17, - # ], - # [ - # "uncached", - # 0xf400_0000, - # 0xf400_0000, - # 0x100_0000, - # 0x17, - # ], - # [ - # "uncached", - # 0xa_4100_0000, - # 0xa_4100_0000, - # 0x40_0000, - # 0x17, - # ], - # [ - # "uncached", - # 0xa_40c0_0000, - # 0xa_40c0_0000, - # 0x40_0000, - # 0x17, - # ], - # [ - # "uncached", - # 0x920_0000, - # 0x920_0000, - # 0x20_0000, - # 0x17, - # ], -] - - -# [0xfe600000, 0x10000], # gic-v3 gicd -# [0xfe680000, 0x10_0000], # gic-v3 gicr - - # [0xa41000000, 0x400000], - # [0xa40c00000, 0x400000], - # [0xf4000000,0x1000000], - # [0xf3000000,0x1000000], \ No newline at end of file +passthrough_devices = [] diff --git a/configs/vms/rk3588jd4.dts b/configs/vms/rk3588jd4.dts new file mode 100644 index 00000000..9f4eeb7a --- /dev/null +++ b/configs/vms/rk3588jd4.dts @@ -0,0 +1,13141 @@ +/dts-v1/; + +/ { + #address-cells = <0x02>; + model = "Firefly AIO-3588JD4"; + serial-number = "a0deeea630de3975"; + #size-cells = <0x02>; + interrupt-parent = <0x01>; + compatible = "rockchip,aio-3588jd4\0rockchip,rk3588"; + + pcie30-avdd1v8 { + regulator-max-microvolt = <0x1b7740>; + regulator-boot-on; + regulator-always-on; + regulator-min-microvolt = <0x1b7740>; + regulator-name = "pcie30_avdd1v8"; + compatible = "regulator-fixed"; + phandle = <0x4a6>; + vin-supply = <0x1de>; + }; + + syscon@fd5bc000 { + compatible = "rockchip,pipe-phy-grf\0syscon"; + reg = <0x00 0xfd5bc000 0x00 0x100>; + phandle = <0x194>; + }; + + vcc5v0-host3 { + regulator-max-microvolt = <0x4c4b40>; + regulator-boot-on; + gpio = <0x182 0x07 0x00>; + regulator-always-on; + enable-active-high; + regulator-min-microvolt = <0x4c4b40>; + regulator-name = "vcc5v0_host3"; + compatible = "regulator-fixed"; + status = "disabled"; + phandle = <0x4a2>; + vin-supply = <0x1dd>; + }; + + pwm@febd0030 { + pinctrl-names = "active"; + pinctrl-0 = <0x16c>; + clock-names = "pwm\0pclk"; + interrupts = <0x00 0x15a 0x04 0x00 0x15b 0x04>; + clocks = <0x02 0x54 0x02 0x53>; + #pwm-cells = <0x03>; + compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; + status = "disabled"; + reg = <0x00 0xfebd0030 0x00 0x10>; + phandle = <0x2d4>; + }; + + rkisp@fdcc0000 { + power-domains = <0x60 0x1c>; + iommus = <0xd1>; + clock-names = "aclk_isp\0hclk_isp\0clk_isp_core\0clk_isp_core_marvin\0clk_isp_core_vicap"; + interrupts = <0x00 0x87 0x04 0x00 0x89 0x04 0x00 0x8a 0x04>; + clocks = <0x02 0x120 0x02 0x121 0x02 0x11d 0x02 0x11e 0x02 0x11f>; + compatible = "rockchip,rk3588-rkisp"; + status = "disabled"; + interrupt-names = "isp_irq\0mi_irq\0mipi_irq"; + reg = <0x00 0xfdcc0000 0x00 0x7f00>; + phandle = <0x5a>; + }; + + qos@fdf66600 { + compatible = "syscon"; + reg = <0x00 0xfdf66600 0x00 0x20>; + phandle = <0x96>; + }; + + serial@febb0000 { + reg-io-width = <0x04>; + pinctrl-names = "default"; + pinctrl-0 = <0x167>; + clock-names = "baudclk\0apb_pclk"; + interrupts = <0x00 0x153 0x04>; + clocks = <0x02 0xd3 0x02 0xb2>; + compatible = "rockchip,rk3588-uart\0snps,dw-apb-uart"; + status = "disabled"; + reg = <0x00 0xfebb0000 0x00 0x100>; + phandle = <0x2d0>; + dmas = <0xf2 0x09 0xf2 0x0a>; + reg-shift = <0x02>; + }; + + qos@fdf41000 { + compatible = "syscon"; + reg = <0x00 0xfdf41000 0x00 0x20>; + phandle = <0xa6>; + }; + + csi2-dcphy1 { + rockchip,hw = <0x2d 0x2e>; + phy-names = "dcphy0\0dcphy1"; + compatible = "rockchip,rk3588-csi2-dphy"; + status = "disabled"; + phys = <0x2f 0x30>; + phandle = <0x20e>; + }; + + rkispp0-vir0 { + rockchip,hw = <0x5b>; + compatible = "rockchip,rk3588-rkispp-vir"; + status = "disabled"; + phandle = <0x243>; + }; + + wireless-bluetooth { + pinctrl-names = "default\0rts_gpio"; + pinctrl-0 = <0x1e5 0x1e6 0x1e7 0x1e8>; + clock-names = "ext_clock"; + BT,power_gpio = <0x7b 0x16 0x00>; + clocks = <0x1e4>; + BT,wake_gpio = <0x7b 0x15 0x00>; + uart_rts_gpios = <0xfe 0x02 0x01>; + compatible = "bluetooth-platdata"; + BT,wake_host_irq = <0x7b 0x00 0x00>; + pinctrl-1 = <0x1e9>; + status = "disabled"; + phandle = <0x4aa>; + }; + + pwm@febd0020 { + pinctrl-names = "active"; + pinctrl-0 = <0x16b>; + clock-names = "pwm\0pclk"; + interrupts = <0x00 0x15a 0x04>; + clocks = <0x02 0x54 0x02 0x53>; + #pwm-cells = <0x03>; + compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; + status = "disabled"; + reg = <0x00 0xfebd0020 0x00 0x10>; + phandle = <0x2d3>; + }; + + qos@fdf39000 { + compatible = "syscon"; + reg = <0x00 0xfdf39000 0x00 0x20>; + phandle = <0xaf>; + }; + + cam0-cam1-switch { + regulator-max-microvolt = <0x1b7740>; + pinctrl-names = "default"; + regulator-boot-on; + gpio = <0x181 0x11 0x00>; + pinctrl-0 = <0x1f0>; + regulator-always-on; + enable-active-high; + regulator-min-microvolt = <0x1b7740>; + regulator-name = "cam0_cam1_switch"; + compatible = "regulator-fixed"; + status = "okay"; + phandle = <0x4b2>; + }; + + qos@fdf3e400 { + compatible = "syscon"; + reg = <0x00 0xfdf3e400 0x00 0x20>; + phandle = <0xad>; + }; + + mipi2-csi2 { + rockchip,hw = <0x47 0x48 0x49 0x4a 0x4b 0x4c>; + compatible = "rockchip,rk3588-mipi-csi2"; + status = "okay"; + firefly-compatible; + phandle = <0x226>; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x00>; + + endpoint@0 { + remote-endpoint = <0x4d>; + reg = <0x00>; + phandle = <0x33>; + }; + }; + + port@1 { + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x01>; + + endpoint@0 { + remote-endpoint = <0x4e>; + reg = <0x00>; + phandle = <0x54>; + }; + }; + }; + }; + + iommu@fdc48700 { + power-domains = <0x60 0x0f>; + rockchip,shootdown-entire; + clock-names = "aclk\0iface"; + interrupts = <0x00 0x62 0x04>; + clocks = <0x02 0x195 0x02 0x194>; + rockchip,enable-cmd-retry; + #iommu-cells = <0x00>; + compatible = "rockchip,iommu-v2"; + rockchip,disable-mmu-reset; + status = "okay"; + interrupt-names = "irq_rkvdec1_mmu"; + reg = <0x00 0xfdc48700 0x00 0x40 0x00 0xfdc48740 0x00 0x40>; + phandle = <0xcc>; + rockchip,master-handle-irq; + }; + + clock-controller@fd7c0000 { + #reset-cells = <0x01>; + assigned-clocks = <0x02 0x09 0x02 0x05 0x02 0x08 0x02 0x07 0x02 0xd8 0x02 0xda 0x02 0xd9 0x02 0x10e 0x02 0x10f 0x02 0x110 0x02 0x299 0x02 0x29a 0x02 0x7b 0x02 0xec 0x02 0x114 0x02 0x208 0x02 0x20e 0x02 0x21f 0x02 0x77>; + assigned-clock-rates = <0x4190ab00 0x2ee00000 0x32a9f880 0x46cf7100 0x29d7ab80 0x17d78400 0x1dcd6500 0x2cb41780 0x5f5e100 0x17d78400 0x5f5e100 0xbebc200 0x165a0bc0 0x8f0d180 0xbebc200 0xb71b00 0xb71b00 0x5e69ec0 0x1312d00>; + #clock-cells = <0x01>; + compatible = "rockchip,rk3588-cru"; + rockchip,grf = <0x76>; + reg = <0x00 0xfd7c0000 0x00 0x5c000>; + phandle = <0x02>; + }; + + qos@fdf81000 { + compatible = "syscon"; + reg = <0x00 0xfdf81000 0x00 0x20>; + phandle = <0xa0>; + }; + + qos@fdf36000 { + compatible = "syscon"; + reg = <0x00 0xfdf36000 0x00 0x20>; + phandle = <0xaa>; + }; + + i2s@fe4a0000 { + power-domains = <0x60 0x26>; + pinctrl-names = "default\0idle\0clk"; + pinctrl-2 = <0x132 0x133>; + pinctrl-0 = <0x12f 0x130>; + clock-names = "i2s_clk\0i2s_hclk"; + assigned-clocks = <0x02 0x2a>; + assigned-clock-parents = <0x02 0x05>; + interrupts = <0x00 0xb7 0x04>; + clocks = <0x02 0x2d 0x02 0x23>; + dma-names = "tx\0rx"; + #sound-dai-cells = <0x00>; + compatible = "rockchip,rk3588-i2s\0rockchip,rk3066-i2s"; + pinctrl-1 = <0x131>; + status = "disabled"; + reg = <0x00 0xfe4a0000 0x00 0x1000>; + phandle = <0x299>; + dmas = <0xf1 0x02 0xf1 0x03>; + rockchip,clk-trcm = <0x01>; + }; + + syscon@fd5c4000 { + compatible = "rockchip,pipe-phy-grf\0syscon"; + reg = <0x00 0xfd5c4000 0x00 0x100>; + phandle = <0x195>; + }; + + sram@ff001000 { + #address-cells = <0x01>; + #size-cells = <0x01>; + compatible = "mmio-sram"; + ranges = <0x00 0x00 0xff001000 0xef000>; + reg = <0x00 0xff001000 0x00 0xef000>; + phandle = <0x2eb>; + + rkvdec-sram@0 { + reg = <0x00 0x78000>; + phandle = <0xcb>; + }; + + rkvdec-sram@78000 { + reg = <0x78000 0x77000>; + phandle = <0xcd>; + }; + }; + + uio@fe1c0000 { + compatible = "rockchip,uio-gmac"; + status = "disabled"; + reg = <0x00 0xfe1c0000 0x00 0x10000>; + phandle = <0x28e>; + rockchip,ethernet = <0x109>; + }; + + pwm@febd0010 { + pinctrl-names = "active"; + pinctrl-0 = <0x16a>; + clock-names = "pwm\0pclk"; + interrupts = <0x00 0x15a 0x04>; + clocks = <0x02 0x54 0x02 0x53>; + #pwm-cells = <0x03>; + compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; + status = "okay"; + reg = <0x00 0xfebd0010 0x00 0x10>; + phandle = <0x1ed>; + }; + + rkisp1-vir3 { + rockchip,hw = <0x5a>; + compatible = "rockchip,rkisp-vir"; + status = "disabled"; + phandle = <0x242>; + }; + + pcie-clk2 { + regulator-boot-on; + regulator-always-on; + regulator-name = "pcie_clk2"; + compatible = "regulator-fixed"; + status = "okay"; + phandle = <0x495>; + gpios = <0x181 0x16 0x01>; + }; + + serial@feb40000 { + reg-io-width = <0x04>; + pinctrl-names = "default"; + pinctrl-0 = <0x160>; + clock-names = "baudclk\0apb_pclk"; + interrupts = <0x00 0x14c 0x04>; + clocks = <0x02 0xb7 0x02 0xab>; + compatible = "rockchip,rk3588-uart\0snps,dw-apb-uart"; + status = "okay"; + reg = <0x00 0xfeb40000 0x00 0x100>; + phandle = <0x2c9>; + dmas = <0x7c 0x08 0x7c 0x09>; + reg-shift = <0x02>; + }; + + pinctrl { + #address-cells = <0x02>; + #size-cells = <0x02>; + compatible = "rockchip,rk3588-pinctrl"; + ranges; + rockchip,grf = <0x196>; + phandle = <0x197>; + + eth0 { + + eth0-pins { + rockchip,pins = <0x02 0x13 0x01 0x198>; + phandle = <0x46c>; + }; + }; + + i2c3 { + + i2c3m3-xfer { + rockchip,pins = <0x02 0x0a 0x09 0x19d 0x02 0x0b 0x09 0x19d>; + phandle = <0x361>; + }; + + i2c3m2-xfer { + rockchip,pins = <0x04 0x04 0x09 0x19d 0x04 0x05 0x09 0x19d>; + phandle = <0x14a>; + }; + + i2c3m1-xfer { + rockchip,pins = <0x03 0x0f 0x09 0x19d 0x03 0x10 0x09 0x19d>; + phandle = <0x35f>; + }; + + i2c3m0-xfer { + rockchip,pins = <0x01 0x11 0x09 0x19d 0x01 0x10 0x09 0x19d>; + phandle = <0x35e>; + }; + + i2c3m4-xfer { + rockchip,pins = <0x04 0x18 0x09 0x19d 0x04 0x19 0x09 0x19d>; + phandle = <0x360>; + }; + }; + + pwm9 { + + pwm9m2-pins { + rockchip,pins = <0x03 0x19 0x0b 0x198>; + phandle = <0x3d7>; + }; + + pwm9m1-pins { + rockchip,pins = <0x04 0x19 0x0b 0x198>; + phandle = <0x3d6>; + }; + + pwm9m0-pins { + rockchip,pins = <0x03 0x08 0x0b 0x198>; + phandle = <0x16e>; + }; + }; + + pcfg-pull-none-drv-level-7 { + drive-strength = <0x07>; + bias-disable; + phandle = <0x451>; + }; + + mipi { + + mipi-te1 { + rockchip,pins = <0x03 0x13 0x02 0x198>; + phandle = <0x39f>; + }; + + mipim1-camera2-clk { + rockchip,pins = <0x03 0x07 0x04 0x198>; + phandle = <0x39b>; + }; + + mipim0-camera0-clk { + rockchip,pins = <0x04 0x09 0x01 0x198>; + phandle = <0x395>; + }; + + mipim0-camera4-clk { + rockchip,pins = <0x01 0x1f 0x02 0x198>; + phandle = <0x399>; + }; + + mipim1-camera3-clk { + rockchip,pins = <0x03 0x08 0x04 0x198>; + phandle = <0x39c>; + }; + + mipim0-camera1-clk { + rockchip,pins = <0x01 0x0e 0x02 0x198>; + phandle = <0x396>; + }; + + mipim1-camera0-clk { + rockchip,pins = <0x03 0x05 0x04 0x198>; + phandle = <0x39a>; + }; + + mipim1-camera4-clk { + rockchip,pins = <0x03 0x09 0x04 0x198>; + phandle = <0x39d>; + }; + + mipim0-camera2-clk { + rockchip,pins = <0x01 0x0f 0x02 0x198>; + phandle = <0x397>; + }; + + mipi-te0 { + rockchip,pins = <0x03 0x12 0x02 0x198>; + phandle = <0x39e>; + }; + + mipim1-camera1-clk { + rockchip,pins = <0x03 0x06 0x04 0x198>; + phandle = <0x180>; + }; + + mipim0-camera3-clk { + rockchip,pins = <0x01 0x1e 0x02 0x198>; + phandle = <0x398>; + }; + }; + + pwm14 { + + pwm14m2-pins { + rockchip,pins = <0x01 0x1e 0x0b 0x198>; + phandle = <0x3e1>; + }; + + pwm14m1-pins { + rockchip,pins = <0x04 0x0a 0x0b 0x198>; + phandle = <0x3e0>; + }; + + pwm14m0-pins { + rockchip,pins = <0x03 0x12 0x0b 0x198>; + phandle = <0x173>; + }; + }; + + pcfg-pull-none-drv-level-4-smt { + drive-strength = <0x04>; + bias-disable; + input-schmitt-enable; + phandle = <0x303>; + }; + + headphone { + + hp-det { + rockchip,pins = <0x02 0x13 0x00 0x198>; + phandle = <0x1dc>; + }; + }; + + npu { + + npu-pins { + rockchip,pins = <0x00 0x16 0x02 0x198>; + phandle = <0x3a0>; + }; + }; + + wireless-bluetooth { + + bt-reset-gpio { + rockchip,pins = <0x00 0x16 0x00 0x198>; + phandle = <0x1e6>; + }; + + bt-irq-gpio { + rockchip,pins = <0x00 0x00 0x00 0x198>; + phandle = <0x1e8>; + }; + + bt-wake-gpio { + rockchip,pins = <0x00 0x15 0x00 0x198>; + phandle = <0x1e7>; + }; + + uart6-gpios { + rockchip,pins = <0x01 0x02 0x00 0x198>; + phandle = <0x1e9>; + }; + }; + + pcie30x1 { + + pcie30x1-1-button-rstn { + rockchip,pins = <0x04 0x0a 0x04 0x198>; + phandle = <0x3a9>; + }; + + pcie30x1m1-pins { + rockchip,pins = <0x04 0x03 0x04 0x198 0x04 0x05 0x04 0x198 0x04 0x04 0x04 0x198 0x04 0x00 0x04 0x198 0x04 0x02 0x04 0x198 0x04 0x01 0x04 0x198>; + phandle = <0x3a6>; + }; + + pcie30x1m0-pins { + rockchip,pins = <0x00 0x10 0x0c 0x198 0x00 0x15 0x0c 0x198 0x00 0x14 0x0c 0x198 0x00 0x0d 0x0c 0x198 0x00 0x0f 0x0c 0x198 0x00 0x0e 0x0c 0x198>; + phandle = <0x3a5>; + }; + + pcie30x1-0-button-rstn { + rockchip,pins = <0x04 0x09 0x04 0x198>; + phandle = <0x3a8>; + }; + + pcie30x1m2-pins { + rockchip,pins = <0x01 0x0d 0x04 0x198 0x01 0x0c 0x04 0x198 0x01 0x0b 0x04 0x198 0x01 0x00 0x04 0x198 0x01 0x07 0x04 0x198 0x01 0x01 0x04 0x198>; + phandle = <0x3a7>; + }; + }; + + uart8 { + + uart8m0-rtsn { + rockchip,pins = <0x04 0x0a 0x0a 0x198>; + phandle = <0x443>; + }; + + uart8m1-ctsn { + rockchip,pins = <0x03 0x05 0x0a 0x198>; + phandle = <0x444>; + }; + + uart8m0-ctsn { + rockchip,pins = <0x04 0x0b 0x0a 0x198>; + phandle = <0x442>; + }; + + uart8m1-xfer { + rockchip,pins = <0x03 0x03 0x0a 0x19e 0x03 0x02 0x0a 0x19e>; + phandle = <0x167>; + }; + + uart8m0-xfer { + rockchip,pins = <0x04 0x09 0x0a 0x19e 0x04 0x08 0x0a 0x19e>; + phandle = <0x441>; + }; + + uart8-xfer { + rockchip,pins = <0x04 0x09 0x0a 0x19e>; + phandle = <0x446>; + }; + + uart8m1-rtsn { + rockchip,pins = <0x03 0x04 0x0a 0x198>; + phandle = <0x445>; + }; + }; + + spi2 { + + spi2m0-cs1 { + rockchip,pins = <0x01 0x08 0x08 0x19a>; + phandle = <0x404>; + }; + + spi2m2-cs0 { + rockchip,pins = <0x00 0x09 0x01 0x19f>; + phandle = <0x154>; + }; + + spi2m1-cs1 { + rockchip,pins = <0x04 0x08 0x08 0x19a>; + phandle = <0x407>; + }; + + spi2m2-pins { + rockchip,pins = <0x00 0x05 0x01 0x19f 0x00 0x0b 0x01 0x19f 0x00 0x06 0x01 0x19f>; + phandle = <0x155>; + }; + + spi2m1-pins { + rockchip,pins = <0x04 0x06 0x08 0x19a 0x04 0x04 0x08 0x19a 0x04 0x05 0x08 0x19a>; + phandle = <0x405>; + }; + + spi2m2-cs1 { + rockchip,pins = <0x00 0x08 0x01 0x19f>; + phandle = <0x408>; + }; + + spi2m0-cs0 { + rockchip,pins = <0x01 0x07 0x08 0x19a>; + phandle = <0x403>; + }; + + spi2m0-pins { + rockchip,pins = <0x01 0x06 0x08 0x19a 0x01 0x04 0x08 0x19a 0x01 0x05 0x08 0x19a>; + phandle = <0x402>; + }; + + spi2m1-cs0 { + rockchip,pins = <0x04 0x07 0x08 0x19a>; + phandle = <0x406>; + }; + }; + + pcfg-pull-up-drv-level-15 { + drive-strength = <0x0f>; + phandle = <0x462>; + bias-pull-up; + }; + + pcfg-pull-down-drv-level-13 { + drive-strength = <0x0d>; + bias-pull-down; + phandle = <0x469>; + }; + + pcfg-pull-up-drv-level-2 { + drive-strength = <0x02>; + phandle = <0x199>; + bias-pull-up; + }; + + i2s1 { + + i2s1m0-sdo1 { + rockchip,pins = <0x04 0x0a 0x03 0x198>; + phandle = <0x127>; + }; + + i2s1m1-sdi1 { + rockchip,pins = <0x00 0x16 0x01 0x198>; + phandle = <0x380>; + }; + + i2s1m0-sdi3 { + rockchip,pins = <0x04 0x08 0x03 0x198>; + phandle = <0x125>; + }; + + i2s1m0-mclk { + rockchip,pins = <0x04 0x00 0x03 0x19d>; + phandle = <0x37b>; + }; + + i2s1m0-sdi1 { + rockchip,pins = <0x04 0x06 0x03 0x198>; + phandle = <0x123>; + }; + + i2s1m1-sdo2 { + rockchip,pins = <0x00 0x1c 0x01 0x198>; + phandle = <0x385>; + }; + + i2s1m1-sdo0 { + rockchip,pins = <0x00 0x19 0x01 0x198>; + phandle = <0x383>; + }; + + i2s1m0-sdo2 { + rockchip,pins = <0x04 0x0b 0x03 0x198>; + phandle = <0x128>; + }; + + i2s1m1-sdi2 { + rockchip,pins = <0x00 0x17 0x01 0x198>; + phandle = <0x381>; + }; + + i2s1m0-sdo0 { + rockchip,pins = <0x04 0x09 0x03 0x198>; + phandle = <0x126>; + }; + + i2s1m1-sdi0 { + rockchip,pins = <0x00 0x15 0x01 0x198>; + phandle = <0x37f>; + }; + + i2s1m0-sdi2 { + rockchip,pins = <0x04 0x07 0x03 0x198>; + phandle = <0x124>; + }; + + i2s1m1-sclk { + rockchip,pins = <0x00 0x0e 0x01 0x19d>; + phandle = <0x37e>; + }; + + i2s1m0-sdi0 { + rockchip,pins = <0x04 0x05 0x03 0x198>; + phandle = <0x122>; + }; + + i2s1m1-sdo3 { + rockchip,pins = <0x00 0x1d 0x01 0x198>; + phandle = <0x386>; + }; + + i2s1m1-lrck { + rockchip,pins = <0x00 0x0f 0x01 0x19d>; + phandle = <0x37c>; + }; + + i2s1m0-sclk { + rockchip,pins = <0x04 0x01 0x03 0x19d>; + phandle = <0x121>; + }; + + i2s1m1-sdo1 { + rockchip,pins = <0x00 0x1a 0x01 0x198>; + phandle = <0x384>; + }; + + i2s1m0-sdo3 { + rockchip,pins = <0x04 0x0c 0x03 0x198>; + phandle = <0x129>; + }; + + i2s1m1-sdi3 { + rockchip,pins = <0x00 0x18 0x01 0x198>; + phandle = <0x382>; + }; + + i2s1m0-lrck { + rockchip,pins = <0x04 0x02 0x03 0x19d>; + phandle = <0x120>; + }; + + i2s1m1-mclk { + rockchip,pins = <0x00 0x0d 0x01 0x19d>; + phandle = <0x37d>; + }; + }; + + ddrphych2 { + + ddrphych2-pins { + rockchip,pins = <0x04 0x08 0x07 0x198 0x04 0x09 0x07 0x198 0x04 0x0a 0x07 0x198 0x04 0x0b 0x07 0x198>; + phandle = <0x31a>; + }; + }; + + pcfg-pull-none-drv-level-12 { + drive-strength = <0x0c>; + bias-disable; + phandle = <0x456>; + }; + + i2c1 { + + i2c1m2-xfer { + rockchip,pins = <0x00 0x1c 0x09 0x19d 0x00 0x1d 0x09 0x19d>; + phandle = <0x148>; + }; + + i2c1m1-xfer { + rockchip,pins = <0x00 0x08 0x02 0x19d 0x00 0x09 0x02 0x19d>; + phandle = <0x357>; + }; + + i2c1m0-xfer { + rockchip,pins = <0x00 0x0d 0x09 0x19d 0x00 0x0e 0x09 0x19d>; + phandle = <0x356>; + }; + + i2c1m4-xfer { + rockchip,pins = <0x01 0x1a 0x09 0x19d 0x01 0x1b 0x09 0x19d>; + phandle = <0x359>; + }; + + i2c1m3-xfer { + rockchip,pins = <0x02 0x1c 0x09 0x19d 0x02 0x1d 0x09 0x19d>; + phandle = <0x358>; + }; + }; + + pwm7 { + + pwm7m3-pins { + rockchip,pins = <0x04 0x16 0x0b 0x198>; + phandle = <0x3d3>; + }; + + pwm7m2-pins { + rockchip,pins = <0x01 0x13 0x0b 0x198>; + phandle = <0x3d2>; + }; + + pwm7m1-pins { + rockchip,pins = <0x04 0x1c 0x0b 0x198>; + phandle = <0x3d1>; + }; + + pwm7m0-pins { + rockchip,pins = <0x00 0x18 0x0b 0x198>; + phandle = <0x16c>; + }; + }; + + pcfg-pull-none-drv-level-5 { + drive-strength = <0x05>; + bias-disable; + phandle = <0x2f1>; + }; + + gmac0 { + + gmac0-clkinout { + rockchip,pins = <0x04 0x13 0x01 0x198>; + phandle = <0x46d>; + }; + + gmac0-miim { + rockchip,pins = <0x04 0x14 0x01 0x198 0x04 0x15 0x01 0x198>; + phandle = <0x1c1>; + }; + + gmac0-tx-bus2 { + rockchip,pins = <0x02 0x0e 0x01 0x19a 0x02 0x0f 0x01 0x19a 0x02 0x10 0x01 0x198>; + phandle = <0x1c2>; + }; + + gmac0-rgmii-bus { + rockchip,pins = <0x02 0x06 0x01 0x198 0x02 0x07 0x01 0x198 0x02 0x09 0x01 0x19a 0x02 0x0a 0x01 0x19a>; + phandle = <0x1c5>; + }; + + gmac0-ppsclk { + rockchip,pins = <0x02 0x14 0x01 0x198>; + phandle = <0x46e>; + }; + + gmac0-txer { + rockchip,pins = <0x04 0x16 0x01 0x198>; + phandle = <0x471>; + }; + + gmac0-ptp-refclk { + rockchip,pins = <0x02 0x0c 0x01 0x198>; + phandle = <0x470>; + }; + + gmac0-rx-bus2 { + rockchip,pins = <0x02 0x11 0x01 0x198 0x02 0x12 0x01 0x198 0x04 0x12 0x01 0x198>; + phandle = <0x1c3>; + }; + + gmac0-rgmii-clk { + rockchip,pins = <0x02 0x08 0x01 0x198 0x02 0x0b 0x01 0x198>; + phandle = <0x1c4>; + }; + + gmac0-ppstring { + rockchip,pins = <0x02 0x0d 0x01 0x198>; + phandle = <0x46f>; + }; + }; + + pwm12 { + + pwm12m1-pins { + rockchip,pins = <0x04 0x0d 0x0b 0x198>; + phandle = <0x3dd>; + }; + + pwm12m0-pins { + rockchip,pins = <0x03 0x0d 0x0b 0x198>; + phandle = <0x171>; + }; + }; + + usb-typec { + + usbc0-int { + rockchip,pins = <0x00 0x1b 0x00 0x198>; + phandle = <0x17b>; + }; + + usb-5v-ctrl { + rockchip,pins = <0x01 0x03 0x00 0x198>; + phandle = <0x1ef>; + }; + }; + + uart6 { + + uart6m1-ctsn { + rockchip,pins = <0x01 0x03 0x0a 0x198>; + phandle = <0x436>; + }; + + uart6m2-xfer { + rockchip,pins = <0x01 0x19 0x0a 0x19e 0x01 0x18 0x0a 0x19e>; + phandle = <0x437>; + }; + + uart6m0-ctsn { + rockchip,pins = <0x02 0x09 0x0a 0x198>; + phandle = <0x439>; + }; + + uart6m1-xfer { + rockchip,pins = <0x01 0x00 0x0a 0x19e 0x01 0x01 0x0a 0x19e>; + phandle = <0x165>; + }; + + uart6m0-xfer { + rockchip,pins = <0x02 0x06 0x0a 0x19e 0x02 0x07 0x0a 0x19e>; + phandle = <0x438>; + }; + + uart6m1-rtsn { + rockchip,pins = <0x01 0x02 0x0a 0x198>; + phandle = <0x1e5>; + }; + + uart6m0-rtsn { + rockchip,pins = <0x02 0x08 0x0a 0x198>; + phandle = <0x43a>; + }; + }; + + pcfg-pull-down-drv-level-8 { + drive-strength = <0x08>; + bias-pull-down; + phandle = <0x464>; + }; + + gpu { + + gpu-pins { + rockchip,pins = <0x00 0x15 0x02 0x198>; + phandle = <0x333>; + }; + }; + + spi0 { + + spi0m2-cs1 { + rockchip,pins = <0x01 0x0d 0x08 0x19a>; + phandle = <0x3f8>; + }; + + spi0m0-cs0 { + rockchip,pins = <0x00 0x19 0x08 0x19a>; + phandle = <0x14e>; + }; + + spi0m3-pins { + rockchip,pins = <0x03 0x1b 0x08 0x19a 0x03 0x19 0x08 0x19a 0x03 0x1a 0x08 0x19a>; + phandle = <0x3f9>; + }; + + spi0m3-cs1 { + rockchip,pins = <0x03 0x1d 0x08 0x19a>; + phandle = <0x3fb>; + }; + + spi0m2-pins { + rockchip,pins = <0x01 0x0b 0x08 0x19a 0x01 0x09 0x08 0x19a 0x01 0x0a 0x08 0x19a>; + phandle = <0x3f6>; + }; + + spi0m1-cs0 { + rockchip,pins = <0x04 0x0a 0x08 0x19a>; + phandle = <0x3f4>; + }; + + spi0m1-pins { + rockchip,pins = <0x04 0x02 0x08 0x19a 0x04 0x00 0x08 0x19a 0x04 0x01 0x08 0x19a>; + phandle = <0x3f3>; + }; + + spi0m0-cs1 { + rockchip,pins = <0x00 0x0f 0x08 0x19a>; + phandle = <0x14f>; + }; + + spi0m2-cs0 { + rockchip,pins = <0x01 0x0c 0x08 0x19a>; + phandle = <0x3f7>; + }; + + spi0m0-pins { + rockchip,pins = <0x00 0x16 0x08 0x19a 0x00 0x17 0x08 0x19a 0x00 0x10 0x08 0x19a>; + phandle = <0x150>; + }; + + spi0m1-cs1 { + rockchip,pins = <0x04 0x09 0x08 0x19a>; + phandle = <0x3f5>; + }; + + spi0m3-cs0 { + rockchip,pins = <0x03 0x1c 0x08 0x19a>; + phandle = <0x3fa>; + }; + }; + + fspi { + + fspim0-cs1 { + rockchip,pins = <0x02 0x1f 0x02 0x199>; + phandle = <0x329>; + }; + + fspim1-pins { + rockchip,pins = <0x02 0x0b 0x03 0x199 0x02 0x0c 0x03 0x199 0x02 0x06 0x03 0x199 0x02 0x07 0x03 0x199 0x02 0x08 0x03 0x199 0x02 0x09 0x03 0x199>; + phandle = <0x32c>; + }; + + fspim0-pins { + rockchip,pins = <0x02 0x00 0x02 0x199 0x02 0x1e 0x02 0x199 0x02 0x18 0x02 0x199 0x02 0x19 0x02 0x199 0x02 0x1a 0x02 0x199 0x02 0x1b 0x02 0x199>; + phandle = <0x328>; + }; + + fspim1-cs1 { + rockchip,pins = <0x02 0x0d 0x03 0x199>; + phandle = <0x32d>; + }; + + fspim2-cs1 { + rockchip,pins = <0x03 0x15 0x02 0x199>; + phandle = <0x32b>; + }; + + fspim2-pins { + rockchip,pins = <0x03 0x05 0x05 0x199 0x03 0x14 0x02 0x199 0x03 0x00 0x05 0x199 0x03 0x01 0x05 0x199 0x03 0x02 0x05 0x199 0x03 0x03 0x05 0x199>; + phandle = <0x32a>; + }; + }; + + pcfg-pull-up-drv-level-13 { + drive-strength = <0x0d>; + phandle = <0x460>; + bias-pull-up; + }; + + clk32k { + + clk32k-out0 { + rockchip,pins = <0x00 0x0a 0x02 0x198>; + phandle = <0x315>; + }; + + clk32k-in { + rockchip,pins = <0x00 0x0a 0x01 0x198>; + phandle = <0x314>; + }; + + clk32k-out1 { + rockchip,pins = <0x02 0x15 0x01 0x198>; + phandle = <0x316>; + }; + }; + + pcfg-pull-down-drv-level-11 { + drive-strength = <0x0b>; + bias-pull-down; + phandle = <0x467>; + }; + + pcie30phy { + + pcie30phy-pins { + rockchip,pins = <0x01 0x14 0x04 0x198 0x01 0x19 0x04 0x198>; + phandle = <0x3a4>; + }; + }; + + pcfg-pull-up-drv-level-0 { + drive-strength = <0x00>; + phandle = <0x2f3>; + bias-pull-up; + }; + + ddrphych0 { + + ddrphych0-pins { + rockchip,pins = <0x04 0x00 0x07 0x198 0x04 0x01 0x07 0x198 0x04 0x02 0x07 0x198 0x04 0x03 0x07 0x198>; + phandle = <0x318>; + }; + }; + + pcfg-pull-none-drv-level-10 { + drive-strength = <0x0a>; + bias-disable; + phandle = <0x454>; + }; + + pwm5 { + + pwm5m2-pins { + rockchip,pins = <0x04 0x14 0x0b 0x198>; + phandle = <0x3ce>; + }; + + pwm5m1-pins { + rockchip,pins = <0x00 0x16 0x0b 0x198>; + phandle = <0x16a>; + }; + + pwm5m0-pins { + rockchip,pins = <0x00 0x09 0x03 0x198>; + phandle = <0x3cd>; + }; + }; + + pcfg-pull-none-drv-level-3 { + drive-strength = <0x03>; + bias-disable; + phandle = <0x2ef>; + }; + + pwm10 { + + pwm10m2-pins { + rockchip,pins = <0x03 0x1b 0x0b 0x198>; + phandle = <0x3d9>; + }; + + pwm10m1-pins { + rockchip,pins = <0x04 0x1b 0x0b 0x198>; + phandle = <0x3d8>; + }; + + pwm10m0-pins { + rockchip,pins = <0x03 0x00 0x0b 0x198>; + phandle = <0x16f>; + }; + }; + + pcfg-pull-down-smt { + input-schmitt-enable; + bias-pull-down; + phandle = <0x2ff>; + }; + + gpio@fec50000 { + gpio-controller; + interrupts = <0x00 0x119 0x04>; + clocks = <0x02 0x83 0x02 0x84>; + compatible = "rockchip,gpio-bank"; + #interrupt-cells = <0x02>; + reg = <0x00 0xfec50000 0x00 0x100>; + phandle = <0x10d>; + #gpio-cells = <0x02>; + gpio-ranges = <0x197 0x00 0x80 0x20>; + interrupt-controller; + }; + + pcfg-pull-down { + bias-pull-down; + phandle = <0x2ec>; + }; + + uart4 { + + uart4m2-xfer { + rockchip,pins = <0x01 0x0a 0x0a 0x19e 0x01 0x0b 0x0a 0x19e>; + phandle = <0x42d>; + }; + + uart4-ctsn { + rockchip,pins = <0x01 0x17 0x0a 0x198>; + phandle = <0x42e>; + }; + + uart4m1-xfer { + rockchip,pins = <0x03 0x18 0x0a 0x19e 0x03 0x19 0x0a 0x19e>; + phandle = <0x163>; + }; + + uart4m0-xfer { + rockchip,pins = <0x01 0x1b 0x0a 0x19e 0x01 0x1a 0x0a 0x19e>; + phandle = <0x42c>; + }; + + uart4-rtsn { + rockchip,pins = <0x01 0x15 0x0a 0x198>; + phandle = <0x42f>; + }; + }; + + spdif0 { + + spdif0m0-tx { + rockchip,pins = <0x01 0x0e 0x03 0x198>; + phandle = <0x142>; + }; + + spdif0m1-tx { + rockchip,pins = <0x04 0x0c 0x06 0x198>; + phandle = <0x3f0>; + }; + }; + + pcfg-pull-down-drv-level-6 { + drive-strength = <0x06>; + bias-pull-down; + phandle = <0x2fd>; + }; + + pcfg-pull-up-drv-level-9 { + drive-strength = <0x09>; + phandle = <0x45c>; + bias-pull-up; + }; + + pcfg-pull-none-drv-level-1-smt { + drive-strength = <0x01>; + bias-disable; + input-schmitt-enable; + phandle = <0x19c>; + }; + + pcfg-pull-up-drv-level-11 { + drive-strength = <0x0b>; + phandle = <0x45e>; + bias-pull-up; + }; + + mcu { + + mcum1-pins { + rockchip,pins = <0x03 0x1c 0x06 0x198 0x03 0x1d 0x06 0x198>; + phandle = <0x394>; + }; + + mcum0-pins { + rockchip,pins = <0x04 0x1c 0x05 0x198 0x04 0x1d 0x05 0x198>; + phandle = <0x393>; + }; + }; + + i2c8 { + + i2c8m4-xfer { + rockchip,pins = <0x03 0x12 0x09 0x19d 0x03 0x13 0x09 0x19d>; + phandle = <0x373>; + }; + + i2c8m3-xfer { + rockchip,pins = <0x04 0x10 0x09 0x19d 0x04 0x11 0x09 0x19d>; + phandle = <0x372>; + }; + + i2c8m2-xfer { + rockchip,pins = <0x01 0x1e 0x09 0x19d 0x01 0x1f 0x09 0x19d>; + phandle = <0x371>; + }; + + i2c8m1-xfer { + rockchip,pins = <0x02 0x08 0x09 0x19d 0x02 0x09 0x09 0x19d>; + phandle = <0x374>; + }; + + i2c8m0-xfer { + rockchip,pins = <0x04 0x1a 0x09 0x19d 0x04 0x1b 0x09 0x19d>; + phandle = <0x186>; + }; + }; + + dp0 { + + dp0m0-pins { + rockchip,pins = <0x04 0x0c 0x05 0x198>; + phandle = <0x31c>; + }; + + dp0m2-pins { + rockchip,pins = <0x01 0x00 0x05 0x198>; + phandle = <0x31e>; + }; + + dp0m1-pins { + rockchip,pins = <0x00 0x14 0x0a 0x198>; + phandle = <0x31d>; + }; + }; + + pcfg-pull-none-drv-level-5-smt { + drive-strength = <0x05>; + bias-disable; + input-schmitt-enable; + phandle = <0x19b>; + }; + + pwm3 { + + pwm3m2-pins { + rockchip,pins = <0x01 0x12 0x0b 0x198>; + phandle = <0x3ca>; + }; + + pwm3m1-pins { + rockchip,pins = <0x03 0x0a 0x0b 0x198>; + phandle = <0x3c9>; + }; + + pwm3m0-pins { + rockchip,pins = <0x00 0x1c 0x03 0x198>; + phandle = <0x81>; + }; + + pwm3m3-pins { + rockchip,pins = <0x01 0x07 0x0b 0x198>; + phandle = <0x3cb>; + }; + }; + + pcfg-pull-none-drv-level-1 { + drive-strength = <0x01>; + bias-disable; + phandle = <0x2ee>; + }; + + sata2 { + + sata2m1-pins { + rockchip,pins = <0x01 0x0f 0x06 0x198>; + phandle = <0x3ed>; + }; + + sata2m0-pins { + rockchip,pins = <0x04 0x09 0x06 0x198>; + phandle = <0x3ec>; + }; + }; + + cam { + + cam0-or-cam1-switch-pin { + rockchip,pins = <0x03 0x11 0x00 0x198>; + phandle = <0x1f0>; + }; + }; + + uart2 { + + uart2-rtsn { + rockchip,pins = <0x03 0x0b 0x0a 0x198>; + phandle = <0x427>; + }; + + uart2m1-xfer { + rockchip,pins = <0x04 0x19 0x0a 0x19e 0x04 0x18 0x0a 0x19e>; + phandle = <0x161>; + }; + + uart2m0-xfer { + rockchip,pins = <0x00 0x0e 0x0a 0x19e 0x00 0x0d 0x0a 0x19e>; + phandle = <0x1ce>; + }; + + uart2-ctsn { + rockchip,pins = <0x03 0x0c 0x0a 0x198>; + phandle = <0x426>; + }; + + uart2m2-xfer { + rockchip,pins = <0x03 0x0a 0x0a 0x19e 0x03 0x09 0x0a 0x19e>; + phandle = <0x425>; + }; + }; + + pcfg-pull-down-drv-level-4 { + drive-strength = <0x04>; + bias-pull-down; + phandle = <0x2fb>; + }; + + pcfg-pull-up-drv-level-7 { + drive-strength = <0x07>; + phandle = <0x45a>; + bias-pull-up; + }; + + i2c6 { + + i2c6m4-xfer { + rockchip,pins = <0x03 0x01 0x09 0x19d 0x03 0x00 0x09 0x19d>; + phandle = <0x36c>; + }; + + i2c6m3-xfer { + rockchip,pins = <0x04 0x09 0x09 0x19d 0x04 0x08 0x09 0x19d>; + phandle = <0x36b>; + }; + + i2c6m2-xfer { + rockchip,pins = <0x02 0x13 0x09 0x19d 0x02 0x12 0x09 0x19d>; + phandle = <0x36d>; + }; + + i2c6m1-xfer { + rockchip,pins = <0x01 0x13 0x09 0x19d 0x01 0x12 0x09 0x19d>; + phandle = <0x36a>; + }; + + i2c6m0-xfer { + rockchip,pins = <0x00 0x18 0x09 0x19d 0x00 0x17 0x09 0x19d>; + phandle = <0x178>; + }; + }; + + pdm1 { + + pdm1m1-sdi3 { + rockchip,pins = <0x01 0x0a 0x02 0x198>; + phandle = <0x3c1>; + }; + + pdm1m0-clk { + rockchip,pins = <0x04 0x1d 0x02 0x198>; + phandle = <0x140>; + }; + + pdm1m1-sdi1 { + rockchip,pins = <0x01 0x08 0x02 0x198>; + phandle = <0x3bf>; + }; + + pdm1m0-sdi3 { + rockchip,pins = <0x04 0x18 0x02 0x198>; + phandle = <0x13e>; + }; + + pdm1m0-sdi1 { + rockchip,pins = <0x04 0x1a 0x02 0x198>; + phandle = <0x13c>; + }; + + pdm1m1-clk { + rockchip,pins = <0x01 0x0c 0x02 0x198>; + phandle = <0x3bb>; + }; + + pdm1m1-clk1 { + rockchip,pins = <0x01 0x0b 0x02 0x198>; + phandle = <0x3bc>; + }; + + pdm1m1-idle { + rockchip,pins = <0x01 0x0c 0x00 0x198 0x01 0x0b 0x00 0x198>; + phandle = <0x3bd>; + }; + + pdm1m0-clk1 { + rockchip,pins = <0x04 0x1c 0x02 0x198>; + phandle = <0x141>; + }; + + pdm1m1-sdi2 { + rockchip,pins = <0x01 0x09 0x02 0x198>; + phandle = <0x3c0>; + }; + + pdm1m0-idle { + rockchip,pins = <0x04 0x1d 0x00 0x198 0x04 0x1c 0x00 0x198>; + phandle = <0x13f>; + }; + + pdm1m1-sdi0 { + rockchip,pins = <0x01 0x07 0x02 0x198>; + phandle = <0x3be>; + }; + + pdm1m0-sdi2 { + rockchip,pins = <0x04 0x19 0x02 0x198>; + phandle = <0x13d>; + }; + + pdm1m0-sdi0 { + rockchip,pins = <0x04 0x1b 0x02 0x198>; + phandle = <0x13b>; + }; + }; + + cpu { + + cpu-pins { + rockchip,pins = <0x00 0x19 0x02 0x198 0x00 0x1d 0x02 0x198>; + phandle = <0x317>; + }; + }; + + gpio-func { + + tsadc-gpio-func { + rockchip,pins = <0x00 0x01 0x00 0x198>; + phandle = <0x175>; + }; + }; + + pcie20x1 { + + pcie20x1-2-button-rstn { + rockchip,pins = <0x04 0x0b 0x04 0x198>; + phandle = <0x3a3>; + }; + + pcie20x1m1-pins { + rockchip,pins = <0x04 0x0f 0x04 0x198 0x04 0x11 0x04 0x198 0x04 0x10 0x04 0x198>; + phandle = <0x3a2>; + }; + + pcie20x1m0-pins { + rockchip,pins = <0x03 0x17 0x04 0x198 0x03 0x19 0x04 0x198 0x03 0x18 0x04 0x198>; + phandle = <0x3a1>; + }; + }; + + leds { + + leds-gpio { + rockchip,pins = <0x00 0x15 0x00 0x198>; + phandle = <0x1ee>; + }; + }; + + pwm1 { + + pwm1m1-pins { + rockchip,pins = <0x01 0x1b 0x0b 0x198>; + phandle = <0x3c5>; + }; + + pwm1m0-pins { + rockchip,pins = <0x00 0x10 0x03 0x198>; + phandle = <0x7f>; + }; + + pwm1m2-pins { + rockchip,pins = <0x01 0x03 0x0b 0x198>; + phandle = <0x3c6>; + }; + }; + + sata0 { + + sata0m1-pins { + rockchip,pins = <0x01 0x0b 0x06 0x198>; + phandle = <0x3e9>; + }; + + sata0m0-pins { + rockchip,pins = <0x04 0x0e 0x06 0x198>; + phandle = <0x3e8>; + }; + }; + + refclk { + + refclk-pins { + rockchip,pins = <0x00 0x00 0x01 0x198>; + phandle = <0x3e5>; + }; + }; + + pcie30x4 { + + pcie30x4m2-pins { + rockchip,pins = <0x03 0x14 0x04 0x198 0x03 0x16 0x04 0x198 0x03 0x15 0x04 0x198>; + phandle = <0x3b1>; + }; + + pcie30x4m1-pins { + rockchip,pins = <0x04 0x0c 0x04 0x198 0x04 0x0e 0x04 0x198 0x04 0x0d 0x04 0x198>; + phandle = <0x3b0>; + }; + + pcie30x4-button-rstn { + rockchip,pins = <0x03 0x1d 0x04 0x198>; + phandle = <0x3b3>; + }; + + pcie30x4m0-pins { + rockchip,pins = <0x00 0x16 0x0c 0x198 0x00 0x18 0x0c 0x198 0x00 0x17 0x0c 0x198>; + phandle = <0x3af>; + }; + + pcie30x4m3-pins { + rockchip,pins = <0x01 0x08 0x04 0x198 0x01 0x0a 0x04 0x198 0x01 0x09 0x04 0x198>; + phandle = <0x3b2>; + }; + }; + + can2 { + + can2m1-pins { + rockchip,pins = <0x00 0x1c 0x0a 0x198 0x00 0x1d 0x0a 0x198>; + phandle = <0x30f>; + }; + + can2m0-pins { + rockchip,pins = <0x03 0x14 0x09 0x198 0x03 0x15 0x09 0x198>; + phandle = <0x147>; + }; + }; + + litcpu { + + litcpu-pins { + rockchip,pins = <0x00 0x1b 0x01 0x198>; + phandle = <0x392>; + }; + }; + + sata { + + sata-reset { + rockchip,pins = <0x04 0x11 0x00 0x198>; + phandle = <0x3e7>; + }; + + sata-pins { + rockchip,pins = <0x00 0x16 0x0d 0x198 0x00 0x1c 0x0d 0x198 0x00 0x1d 0x0d 0x198>; + phandle = <0x3e6>; + }; + }; + + tsadc { + + tsadc-shut { + rockchip,pins = <0x00 0x01 0x02 0x198>; + phandle = <0x176>; + }; + + tsadc-shut-org { + rockchip,pins = <0x00 0x01 0x01 0x198>; + phandle = <0x418>; + }; + + tsadcm1-shut { + rockchip,pins = <0x00 0x02 0x02 0x198>; + phandle = <0x417>; + }; + }; + + uart0 { + + uart0m1-xfer { + rockchip,pins = <0x00 0x08 0x04 0x19e 0x00 0x09 0x04 0x19e>; + phandle = <0x7d>; + }; + + uart0m0-xfer { + rockchip,pins = <0x00 0x14 0x04 0x19e 0x00 0x15 0x04 0x19e>; + phandle = <0x419>; + }; + + uart0-rtsn { + rockchip,pins = <0x00 0x16 0x04 0x198>; + phandle = <0x41c>; + }; + + uart0-ctsn { + rockchip,pins = <0x00 0x19 0x04 0x198>; + phandle = <0x41b>; + }; + + uart0m2-xfer { + rockchip,pins = <0x04 0x04 0x0a 0x19e 0x04 0x03 0x0a 0x19e>; + phandle = <0x41a>; + }; + }; + + pcfg-pull-down-drv-level-2 { + drive-strength = <0x02>; + bias-pull-down; + phandle = <0x2f9>; + }; + + pcfg-pull-up-drv-level-5 { + drive-strength = <0x05>; + phandle = <0x2f6>; + bias-pull-up; + }; + + gpio@fec20000 { + gpio-controller; + interrupts = <0x00 0x116 0x04>; + clocks = <0x02 0x7d 0x02 0x7e>; + compatible = "rockchip,gpio-bank"; + #interrupt-cells = <0x02>; + reg = <0x00 0xfec20000 0x00 0x100>; + phandle = <0xfe>; + #gpio-cells = <0x02>; + gpio-ranges = <0x197 0x00 0x20 0x20>; + interrupt-controller; + }; + + pcfg-pull-none-drv-level-15 { + drive-strength = <0x0f>; + bias-disable; + phandle = <0x459>; + }; + + eth1 { + + eth1-pins { + rockchip,pins = <0x03 0x06 0x01 0x198>; + phandle = <0x327>; + }; + }; + + i2c4 { + + i2c4m3-xfer { + rockchip,pins = <0x01 0x03 0x09 0x19d 0x01 0x02 0x09 0x19d>; + phandle = <0x364>; + }; + + i2c4m2-xfer { + rockchip,pins = <0x00 0x15 0x09 0x19d 0x00 0x14 0x09 0x19d>; + phandle = <0x363>; + }; + + i2c4m1-xfer { + rockchip,pins = <0x02 0x0d 0x09 0x19d 0x02 0x0c 0x09 0x19d>; + phandle = <0x14b>; + }; + + i2c4m0-xfer { + rockchip,pins = <0x03 0x06 0x09 0x19d 0x03 0x05 0x09 0x19d>; + phandle = <0x362>; + }; + + i2c4m4-xfer { + rockchip,pins = <0x01 0x17 0x09 0x19d 0x01 0x16 0x09 0x19d>; + phandle = <0x365>; + }; + }; + + emmc { + + emmc-data-strobe { + rockchip,pins = <0x02 0x02 0x01 0x198>; + phandle = <0x326>; + }; + + emmc-clk { + rockchip,pins = <0x02 0x01 0x01 0x199>; + phandle = <0x324>; + }; + + emmc-bus8 { + rockchip,pins = <0x02 0x18 0x01 0x199 0x02 0x19 0x01 0x199 0x02 0x1a 0x01 0x199 0x02 0x1b 0x01 0x199 0x02 0x1c 0x01 0x199 0x02 0x1d 0x01 0x199 0x02 0x1e 0x01 0x199 0x02 0x1f 0x01 0x199>; + phandle = <0x323>; + }; + + emmc-cmd { + rockchip,pins = <0x02 0x00 0x01 0x199>; + phandle = <0x325>; + }; + + emmc-rstnout { + rockchip,pins = <0x02 0x03 0x01 0x198>; + phandle = <0x322>; + }; + }; + + pcfg-pull-none-drv-level-8 { + drive-strength = <0x08>; + bias-disable; + phandle = <0x452>; + }; + + pwm15 { + + pwm15m0-pins { + rockchip,pins = <0x03 0x13 0x0b 0x198>; + phandle = <0x174>; + }; + + pwm15m3-pins { + rockchip,pins = <0x01 0x1f 0x0b 0x198>; + phandle = <0x3e4>; + }; + + pwm15m2-pins { + rockchip,pins = <0x01 0x16 0x0b 0x198>; + phandle = <0x3e3>; + }; + + pwm15m1-pins { + rockchip,pins = <0x04 0x0b 0x0b 0x198>; + phandle = <0x3e2>; + }; + }; + + pcie30x2 { + + pcie30x2m2-pins { + rockchip,pins = <0x03 0x1a 0x04 0x198 0x03 0x1c 0x04 0x198 0x03 0x1b 0x04 0x198>; + phandle = <0x3ac>; + }; + + pcie30x2m1-pins { + rockchip,pins = <0x04 0x06 0x04 0x198 0x04 0x08 0x04 0x198 0x04 0x07 0x04 0x198>; + phandle = <0x3ab>; + }; + + pcie30x2-button-rstn { + rockchip,pins = <0x03 0x11 0x04 0x198>; + phandle = <0x3ae>; + }; + + pcie30x2m0-pins { + rockchip,pins = <0x00 0x19 0x0c 0x198 0x00 0x1c 0x0c 0x198 0x00 0x1a 0x0c 0x198>; + phandle = <0x3aa>; + }; + + pcie30x2m3-pins { + rockchip,pins = <0x01 0x1f 0x04 0x198 0x01 0x0f 0x04 0x198 0x01 0x0e 0x04 0x198>; + phandle = <0x3ad>; + }; + }; + + can0 { + + can0m0-pins { + rockchip,pins = <0x00 0x10 0x0b 0x198 0x00 0x0f 0x0b 0x198>; + phandle = <0x145>; + }; + + can0m1-pins { + rockchip,pins = <0x04 0x1d 0x09 0x198 0x04 0x1c 0x09 0x198>; + phandle = <0x30d>; + }; + }; + + pcfg-output-high { + output-high; + phandle = <0x305>; + }; + + uart9 { + + uart9m0-rtsn { + rockchip,pins = <0x04 0x14 0x0a 0x198>; + phandle = <0x44e>; + }; + + uart9m2-ctsn { + rockchip,pins = <0x03 0x1b 0x0a 0x198>; + phandle = <0x44a>; + }; + + uart9m1-ctsn { + rockchip,pins = <0x04 0x01 0x0a 0x198>; + phandle = <0x447>; + }; + + uart9m2-xfer { + rockchip,pins = <0x03 0x1c 0x0a 0x19e 0x03 0x1d 0x0a 0x19e>; + phandle = <0x449>; + }; + + uart9m0-ctsn { + rockchip,pins = <0x04 0x15 0x0a 0x198>; + phandle = <0x44d>; + }; + + uart9m1-xfer { + rockchip,pins = <0x04 0x0d 0x0a 0x19e 0x04 0x0c 0x0a 0x19e>; + phandle = <0x168>; + }; + + uart9m0-xfer { + rockchip,pins = <0x02 0x14 0x0a 0x19e 0x02 0x12 0x0a 0x19e>; + phandle = <0x44c>; + }; + + uart9m2-rtsn { + rockchip,pins = <0x03 0x1a 0x0a 0x198>; + phandle = <0x44b>; + }; + + uart9m1-rtsn { + rockchip,pins = <0x04 0x00 0x0a 0x198>; + phandle = <0x448>; + }; + }; + + pcfg-pull-none-drv-level-2-smt { + drive-strength = <0x02>; + bias-disable; + input-schmitt-enable; + phandle = <0x301>; + }; + + pcfg-pull-up { + phandle = <0x19e>; + bias-pull-up; + }; + + spi3 { + + spi3m3-cs1 { + rockchip,pins = <0x03 0x15 0x08 0x19a>; + phandle = <0x40e>; + }; + + spi3m1-cs0 { + rockchip,pins = <0x04 0x10 0x08 0x19a>; + phandle = <0x15d>; + }; + + spi3m3-pins { + rockchip,pins = <0x03 0x18 0x08 0x19a 0x03 0x16 0x08 0x19a 0x03 0x17 0x08 0x19a>; + phandle = <0x40c>; + }; + + spi3m0-cs1 { + rockchip,pins = <0x04 0x13 0x08 0x19f>; + phandle = <0x411>; + }; + + spi3m2-cs0 { + rockchip,pins = <0x00 0x1c 0x08 0x19a>; + phandle = <0x40a>; + }; + + spi3m2-pins { + rockchip,pins = <0x00 0x1b 0x08 0x19a 0x00 0x18 0x08 0x19a 0x00 0x1a 0x08 0x19a>; + phandle = <0x409>; + }; + + spi3m1-cs1 { + rockchip,pins = <0x04 0x11 0x08 0x19a>; + phandle = <0x15e>; + }; + + spi3m1-pins { + rockchip,pins = <0x04 0x0f 0x08 0x19a 0x04 0x0d 0x08 0x19a 0x04 0x0e 0x08 0x19a>; + phandle = <0x15f>; + }; + + spi3m3-cs0 { + rockchip,pins = <0x03 0x14 0x08 0x19a>; + phandle = <0x40d>; + }; + + spi3m0-pins { + rockchip,pins = <0x04 0x16 0x08 0x19f 0x04 0x14 0x08 0x19f 0x04 0x15 0x08 0x19f>; + phandle = <0x40f>; + }; + + spi3m2-cs1 { + rockchip,pins = <0x00 0x1d 0x08 0x19a>; + phandle = <0x40b>; + }; + + spi3m0-cs0 { + rockchip,pins = <0x04 0x12 0x08 0x19f>; + phandle = <0x410>; + }; + }; + + pcfg-pull-down-drv-level-14 { + drive-strength = <0x0e>; + bias-pull-down; + phandle = <0x46a>; + }; + + bt656 { + + bt656-pins { + rockchip,pins = <0x04 0x08 0x02 0x1a0 0x04 0x00 0x02 0x1a0 0x04 0x01 0x02 0x1a0 0x04 0x02 0x02 0x1a0 0x04 0x03 0x02 0x1a0 0x04 0x04 0x02 0x1a0 0x04 0x05 0x02 0x1a0 0x04 0x06 0x02 0x1a0 0x04 0x07 0x02 0x1a0>; + phandle = <0x450>; + }; + }; + + pcfg-pull-down-drv-level-0 { + drive-strength = <0x00>; + bias-pull-down; + phandle = <0x2f7>; + }; + + pcfg-pull-up-drv-level-3 { + drive-strength = <0x03>; + phandle = <0x2f4>; + bias-pull-up; + }; + + i2s2 { + + i2s2m0-lrck { + rockchip,pins = <0x02 0x10 0x02 0x19d>; + phandle = <0x389>; + }; + + i2s2m1-mclk { + rockchip,pins = <0x03 0x0c 0x03 0x19d>; + phandle = <0x387>; + }; + + i2s2m0-mclk { + rockchip,pins = <0x02 0x0e 0x02 0x19d>; + phandle = <0x38a>; + }; + + i2s2m1-sdo { + rockchip,pins = <0x03 0x0b 0x03 0x198>; + phandle = <0x12b>; + }; + + i2s2m0-sdi { + rockchip,pins = <0x02 0x13 0x02 0x198>; + phandle = <0x38c>; + }; + + i2s2m1-idle { + rockchip,pins = <0x03 0x0e 0x00 0x198 0x03 0x0d 0x00 0x198>; + phandle = <0x12c>; + }; + + i2s2m1-sdi { + rockchip,pins = <0x03 0x0a 0x03 0x198>; + phandle = <0x12a>; + }; + + i2s2m0-idle { + rockchip,pins = <0x02 0x10 0x00 0x198 0x02 0x0f 0x00 0x198>; + phandle = <0x388>; + }; + + i2s2m1-sclk { + rockchip,pins = <0x03 0x0d 0x03 0x19d>; + phandle = <0x12e>; + }; + + i2s2m1-lrck { + rockchip,pins = <0x03 0x0e 0x03 0x19d>; + phandle = <0x12d>; + }; + + i2s2m0-sclk { + rockchip,pins = <0x02 0x0f 0x02 0x19d>; + phandle = <0x38b>; + }; + + i2s2m0-sdo { + rockchip,pins = <0x04 0x13 0x02 0x198>; + phandle = <0x38d>; + }; + }; + + pcfg-pull-none-drv-level-6-smt { + drive-strength = <0x06>; + bias-disable; + input-schmitt-enable; + phandle = <0x304>; + }; + + ddrphych3 { + + ddrphych3-pins { + rockchip,pins = <0x04 0x0c 0x07 0x198 0x04 0x0d 0x07 0x198 0x04 0x0e 0x07 0x198 0x04 0x0f 0x07 0x198>; + phandle = <0x31b>; + }; + }; + + pcfg-pull-none-drv-level-13 { + drive-strength = <0x0d>; + bias-disable; + phandle = <0x457>; + }; + + i2c2 { + + i2c2m2-xfer { + rockchip,pins = <0x02 0x03 0x09 0x19d 0x02 0x02 0x09 0x19d>; + phandle = <0x35a>; + }; + + i2c2m1-xfer { + rockchip,pins = <0x02 0x11 0x09 0x19d 0x02 0x10 0x09 0x19d>; + phandle = <0x35d>; + }; + + i2c2m0-xfer { + rockchip,pins = <0x00 0x0f 0x09 0x19d 0x00 0x10 0x09 0x19d>; + phandle = <0x149>; + }; + + i2c2m4-xfer { + rockchip,pins = <0x01 0x01 0x09 0x19d 0x01 0x00 0x09 0x19d>; + phandle = <0x35c>; + }; + + i2c2m3-xfer { + rockchip,pins = <0x01 0x15 0x09 0x19d 0x01 0x14 0x09 0x19d>; + phandle = <0x35b>; + }; + }; + + auddsm { + + auddsm-pins { + rockchip,pins = <0x03 0x01 0x04 0x198 0x03 0x02 0x04 0x198 0x03 0x03 0x04 0x198 0x03 0x04 0x04 0x198>; + phandle = <0x144>; + }; + }; + + pwm8 { + + pwm8m2-pins { + rockchip,pins = <0x03 0x18 0x0b 0x198>; + phandle = <0x3d5>; + }; + + pwm8m1-pins { + rockchip,pins = <0x04 0x18 0x0b 0x198>; + phandle = <0x3d4>; + }; + + pwm8m0-pins { + rockchip,pins = <0x03 0x07 0x0b 0x198>; + phandle = <0x16d>; + }; + }; + + pmic { + + pmic-pins { + rockchip,pins = <0x00 0x07 0x00 0x19e 0x00 0x02 0x01 0x198 0x00 0x03 0x01 0x198 0x00 0x11 0x01 0x198 0x00 0x12 0x01 0x198 0x00 0x13 0x01 0x198 0x00 0x1e 0x01 0x198>; + phandle = <0x156>; + }; + }; + + pcfg-pull-none-drv-level-6 { + drive-strength = <0x06>; + bias-disable; + phandle = <0x2f2>; + }; + + jtag { + + jtagm2-pins { + rockchip,pins = <0x00 0x0d 0x02 0x198 0x00 0x0e 0x02 0x198>; + phandle = <0x391>; + }; + + jtagm1-pins { + rockchip,pins = <0x04 0x18 0x05 0x198 0x04 0x19 0x05 0x198>; + phandle = <0x390>; + }; + + jtagm0-pins { + rockchip,pins = <0x04 0x1a 0x05 0x198 0x04 0x1b 0x05 0x198>; + phandle = <0x38f>; + }; + }; + + gpio@fd8a0000 { + gpio-controller; + interrupts = <0x00 0x115 0x04>; + clocks = <0x02 0x284 0x02 0x285>; + compatible = "rockchip,gpio-bank"; + #interrupt-cells = <0x02>; + reg = <0x00 0xfd8a0000 0x00 0x100>; + phandle = <0x7b>; + #gpio-cells = <0x02>; + gpio-ranges = <0x197 0x00 0x00 0x20>; + interrupt-controller; + }; + + gmac1 { + + gmac1-rgmii-clk { + rockchip,pins = <0x03 0x05 0x01 0x198 0x03 0x04 0x01 0x198>; + phandle = <0x111>; + }; + + gmac1-rx-bus2 { + rockchip,pins = <0x03 0x07 0x01 0x198 0x03 0x08 0x01 0x198 0x03 0x09 0x01 0x198>; + phandle = <0x110>; + }; + + gmac1-txer { + rockchip,pins = <0x03 0x0a 0x01 0x198>; + phandle = <0x332>; + }; + + gmac1-clkinout { + rockchip,pins = <0x03 0x0e 0x01 0x198>; + phandle = <0x32e>; + }; + + gmac1-ptp-ref-clk { + rockchip,pins = <0x03 0x0f 0x01 0x198>; + phandle = <0x331>; + }; + + gmac1-ppsclk { + rockchip,pins = <0x03 0x11 0x01 0x198>; + phandle = <0x32f>; + }; + + gmac1-ppstrig { + rockchip,pins = <0x03 0x10 0x01 0x198>; + phandle = <0x330>; + }; + + gmac1-rgmii-bus { + rockchip,pins = <0x03 0x02 0x01 0x198 0x03 0x03 0x01 0x198 0x03 0x00 0x01 0x19a 0x03 0x01 0x01 0x19a>; + phandle = <0x112>; + }; + + gmac1-tx-bus2 { + rockchip,pins = <0x03 0x0b 0x01 0x19a 0x03 0x0c 0x01 0x19a 0x03 0x0d 0x01 0x198>; + phandle = <0x10f>; + }; + + gmac1-miim { + rockchip,pins = <0x03 0x12 0x01 0x198 0x03 0x13 0x01 0x198>; + phandle = <0x10e>; + }; + }; + + pcfg-pull-none { + bias-disable; + phandle = <0x198>; + }; + + pwm13 { + + pwm13m2-pins { + rockchip,pins = <0x01 0x0f 0x0b 0x198>; + phandle = <0x3df>; + }; + + pwm13m1-pins { + rockchip,pins = <0x04 0x0e 0x0b 0x198>; + phandle = <0x3de>; + }; + + pwm13m0-pins { + rockchip,pins = <0x03 0x0e 0x0b 0x198>; + phandle = <0x172>; + }; + }; + + pcfg-output-high-pull-down { + output-high; + bias-pull-down; + phandle = <0x307>; + }; + + uart7 { + + uart7m1-ctsn { + rockchip,pins = <0x03 0x13 0x0a 0x198>; + phandle = <0x43b>; + }; + + uart7m2-xfer { + rockchip,pins = <0x01 0x0c 0x0a 0x19e 0x01 0x0d 0x0a 0x19e>; + phandle = <0x43d>; + }; + + uart7m0-ctsn { + rockchip,pins = <0x04 0x16 0x0a 0x198>; + phandle = <0x43f>; + }; + + uart7m1-xfer { + rockchip,pins = <0x03 0x11 0x0a 0x19e 0x03 0x10 0x0a 0x19e>; + phandle = <0x166>; + }; + + uart7m0-xfer { + rockchip,pins = <0x02 0x0c 0x0a 0x19e 0x02 0x0d 0x0a 0x19e>; + phandle = <0x43e>; + }; + + uart7m1-rtsn { + rockchip,pins = <0x03 0x12 0x0a 0x198>; + phandle = <0x43c>; + }; + + uart7m0-rtsn { + rockchip,pins = <0x04 0x12 0x0a 0x198>; + phandle = <0x440>; + }; + }; + + pcfg-pull-down-drv-level-9 { + drive-strength = <0x09>; + bias-pull-down; + phandle = <0x465>; + }; + + spi1 { + + spi1m1-cs1 { + rockchip,pins = <0x03 0x13 0x08 0x19a>; + phandle = <0x152>; + }; + + spi1m2-cs1 { + rockchip,pins = <0x01 0x1d 0x08 0x19a>; + phandle = <0x3fe>; + }; + + spi1m0-cs0 { + rockchip,pins = <0x02 0x13 0x08 0x19f>; + phandle = <0x400>; + }; + + spi1m2-pins { + rockchip,pins = <0x01 0x1a 0x08 0x19a 0x01 0x18 0x08 0x19a 0x01 0x19 0x08 0x19a>; + phandle = <0x3fc>; + }; + + spi1m1-pins { + rockchip,pins = <0x03 0x11 0x08 0x19a 0x03 0x10 0x08 0x19a 0x03 0x0f 0x08 0x19a>; + phandle = <0x153>; + }; + + spi1m1-cs0 { + rockchip,pins = <0x03 0x12 0x08 0x19a>; + phandle = <0x151>; + }; + + spi1m0-pins { + rockchip,pins = <0x02 0x10 0x08 0x19f 0x02 0x11 0x08 0x19f 0x02 0x12 0x08 0x19f>; + phandle = <0x3ff>; + }; + + spi1m0-cs1 { + rockchip,pins = <0x02 0x14 0x08 0x19f>; + phandle = <0x401>; + }; + + spi1m2-cs0 { + rockchip,pins = <0x01 0x1b 0x08 0x19a>; + phandle = <0x3fd>; + }; + }; + + pcfg-pull-up-drv-level-14 { + drive-strength = <0x0e>; + phandle = <0x461>; + bias-pull-up; + }; + + pcfg-output-low-pull-down { + bias-pull-down; + phandle = <0x30b>; + output-low; + }; + + pcfg-pull-down-drv-level-12 { + drive-strength = <0x0c>; + bias-pull-down; + phandle = <0x468>; + }; + + pcfg-pull-up-drv-level-1 { + drive-strength = <0x01>; + phandle = <0x19f>; + bias-pull-up; + }; + + pcfg-pull-none-smt { + bias-disable; + input-schmitt-enable; + phandle = <0x19d>; + }; + + sdmmc { + + sdmmc-det { + rockchip,pins = <0x00 0x04 0x01 0x19e>; + phandle = <0x116>; + }; + + sdmmc-pwren { + rockchip,pins = <0x00 0x05 0x02 0x198>; + phandle = <0x3ef>; + }; + + sdmmc-bus4 { + rockchip,pins = <0x04 0x18 0x01 0x199 0x04 0x19 0x01 0x199 0x04 0x1a 0x01 0x199 0x04 0x1b 0x01 0x199>; + phandle = <0x117>; + }; + + sdmmc-cmd { + rockchip,pins = <0x04 0x1c 0x01 0x199>; + phandle = <0x115>; + }; + + sdmmc-clk { + rockchip,pins = <0x04 0x1d 0x01 0x199>; + phandle = <0x114>; + }; + }; + + i2s0 { + + i2s0-sclk { + rockchip,pins = <0x01 0x13 0x01 0x19d>; + phandle = <0x11c>; + }; + + i2s0-sdo3 { + rockchip,pins = <0x01 0x1a 0x01 0x198>; + phandle = <0x37a>; + }; + + i2s0-lrck { + rockchip,pins = <0x01 0x15 0x01 0x19d>; + phandle = <0x11b>; + }; + + i2s0-sdo1 { + rockchip,pins = <0x01 0x18 0x01 0x198>; + phandle = <0x378>; + }; + + i2s0-sdi3 { + rockchip,pins = <0x01 0x19 0x02 0x198>; + phandle = <0x377>; + }; + + i2s0-mclk { + rockchip,pins = <0x01 0x12 0x01 0x19d>; + phandle = <0x17a>; + }; + + i2s0-sdi1 { + rockchip,pins = <0x01 0x1b 0x02 0x198>; + phandle = <0x375>; + }; + + i2s0-sdo2 { + rockchip,pins = <0x01 0x19 0x01 0x198>; + phandle = <0x379>; + }; + + i2s0-idle { + rockchip,pins = <0x01 0x15 0x00 0x198 0x01 0x13 0x00 0x198>; + phandle = <0x11f>; + }; + + i2s0-sdo0 { + rockchip,pins = <0x01 0x17 0x01 0x198>; + phandle = <0x11e>; + }; + + i2s0-sdi2 { + rockchip,pins = <0x01 0x1a 0x02 0x198>; + phandle = <0x376>; + }; + + i2s0-sdi0 { + rockchip,pins = <0x01 0x1c 0x02 0x198>; + phandle = <0x11d>; + }; + }; + + ddrphych1 { + + ddrphych1-pins { + rockchip,pins = <0x04 0x04 0x07 0x198 0x04 0x05 0x07 0x198 0x04 0x06 0x07 0x198 0x04 0x07 0x07 0x198>; + phandle = <0x319>; + }; + }; + + pcfg-pull-none-drv-level-11 { + drive-strength = <0x0b>; + bias-disable; + phandle = <0x455>; + }; + + i2c0 { + + i2c0m2-xfer { + rockchip,pins = <0x00 0x19 0x03 0x19d 0x00 0x1a 0x03 0x19d>; + phandle = <0x77>; + }; + + i2c0m1-xfer { + rockchip,pins = <0x04 0x15 0x09 0x19d 0x04 0x16 0x09 0x19d>; + phandle = <0x355>; + }; + + i2c0m0-xfer { + rockchip,pins = <0x00 0x0b 0x02 0x19d 0x00 0x06 0x02 0x19d>; + phandle = <0x354>; + }; + }; + + pwm6 { + + pwm6m2-pins { + rockchip,pins = <0x04 0x15 0x0b 0x198>; + phandle = <0x3d0>; + }; + + pwm6m1-pins { + rockchip,pins = <0x04 0x11 0x0b 0x198>; + phandle = <0x3cf>; + }; + + pwm6m0-pins { + rockchip,pins = <0x00 0x17 0x0b 0x198>; + phandle = <0x16b>; + }; + }; + + hym8563 { + + hym8563-int { + rockchip,pins = <0x00 0x08 0x00 0x198>; + phandle = <0x7a>; + }; + }; + + pcfg-pull-none-drv-level-4 { + drive-strength = <0x04>; + bias-disable; + phandle = <0x2f0>; + }; + + pcfg-output-high-pull-up { + output-high; + phandle = <0x306>; + bias-pull-up; + }; + + pwm11 { + + pwm11m3-pins { + rockchip,pins = <0x03 0x1d 0x0b 0x198>; + phandle = <0x3dc>; + }; + + pwm11m2-pins { + rockchip,pins = <0x01 0x14 0x0b 0x198>; + phandle = <0x3db>; + }; + + pwm11m1-pins { + rockchip,pins = <0x04 0x0c 0x0b 0x198>; + phandle = <0x3da>; + }; + + pwm11m0-pins { + rockchip,pins = <0x03 0x01 0x0b 0x198>; + phandle = <0x170>; + }; + }; + + bt1120 { + + bt1120-pins { + rockchip,pins = <0x04 0x08 0x02 0x198 0x04 0x00 0x02 0x198 0x04 0x01 0x02 0x198 0x04 0x02 0x02 0x198 0x04 0x03 0x02 0x198 0x04 0x04 0x02 0x198 0x04 0x05 0x02 0x198 0x04 0x06 0x02 0x198 0x04 0x07 0x02 0x198 0x04 0x0a 0x02 0x198 0x04 0x0b 0x02 0x198 0x04 0x0c 0x02 0x198 0x04 0x0d 0x02 0x198 0x04 0x0e 0x02 0x198 0x04 0x0f 0x02 0x198 0x04 0x10 0x02 0x198 0x04 0x11 0x02 0x198>; + phandle = <0x71>; + }; + }; + + pcfg-output-low-pull-up { + phandle = <0x30a>; + bias-pull-up; + output-low; + }; + + uart5 { + + uart5m1-ctsn { + rockchip,pins = <0x02 0x02 0x0a 0x198>; + phandle = <0x433>; + }; + + uart5m2-xfer { + rockchip,pins = <0x02 0x1c 0x0a 0x19e 0x02 0x1d 0x0a 0x19e>; + phandle = <0x435>; + }; + + uart5m0-ctsn { + rockchip,pins = <0x04 0x1a 0x0a 0x198>; + phandle = <0x431>; + }; + + uart5m1-xfer { + rockchip,pins = <0x03 0x15 0x0a 0x19e 0x03 0x14 0x0a 0x19e>; + phandle = <0x164>; + }; + + uart5m0-xfer { + rockchip,pins = <0x04 0x1c 0x0a 0x19e 0x04 0x1d 0x0a 0x19e>; + phandle = <0x430>; + }; + + uart5m1-rtsn { + rockchip,pins = <0x02 0x03 0x0a 0x198>; + phandle = <0x434>; + }; + + uart5m0-rtsn { + rockchip,pins = <0x04 0x1b 0x0a 0x198>; + phandle = <0x432>; + }; + }; + + sdio { + + sdiom1-pins { + rockchip,pins = <0x03 0x05 0x02 0x198 0x03 0x04 0x02 0x19e 0x03 0x00 0x02 0x19e 0x03 0x01 0x02 0x19e 0x03 0x02 0x02 0x19e 0x03 0x03 0x02 0x19e>; + phandle = <0x119>; + }; + + sdiom0-pins { + rockchip,pins = <0x02 0x0b 0x02 0x198 0x02 0x0a 0x02 0x19e 0x02 0x06 0x02 0x19e 0x02 0x07 0x02 0x19e 0x02 0x08 0x02 0x19e 0x02 0x09 0x02 0x19e>; + phandle = <0x3ee>; + }; + }; + + spdif1 { + + spdif1m0-tx { + rockchip,pins = <0x01 0x0f 0x03 0x198>; + phandle = <0x143>; + }; + + spdif1m2-tx { + rockchip,pins = <0x04 0x11 0x03 0x198>; + phandle = <0x3f2>; + }; + + spdif1m1-tx { + rockchip,pins = <0x04 0x09 0x02 0x198>; + phandle = <0x3f1>; + }; + }; + + pcfg-pull-down-drv-level-7 { + drive-strength = <0x07>; + bias-pull-down; + phandle = <0x463>; + }; + + gpio@fec30000 { + gpio-controller; + interrupts = <0x00 0x117 0x04>; + clocks = <0x02 0x7f 0x02 0x80>; + compatible = "rockchip,gpio-bank"; + #interrupt-cells = <0x02>; + reg = <0x00 0xfec30000 0x00 0x100>; + phandle = <0x79>; + #gpio-cells = <0x02>; + gpio-ranges = <0x197 0x00 0x40 0x20>; + interrupt-controller; + }; + + pcfg-pull-up-drv-level-12 { + drive-strength = <0x0c>; + phandle = <0x45f>; + bias-pull-up; + }; + + pcfg-pull-down-drv-level-10 { + drive-strength = <0x0a>; + bias-pull-down; + phandle = <0x466>; + }; + + dp1 { + + dp1m1-pins { + rockchip,pins = <0x00 0x15 0x0a 0x198>; + phandle = <0x320>; + }; + + dp1m0-pins { + rockchip,pins = <0x03 0x1d 0x05 0x198>; + phandle = <0x31f>; + }; + + dp1m2-pins { + rockchip,pins = <0x01 0x01 0x05 0x198>; + phandle = <0x321>; + }; + }; + + vop { + + vop-pins { + rockchip,pins = <0x01 0x02 0x01 0x198>; + phandle = <0x44f>; + }; + }; + + pwm4 { + + pwm4m1-pins { + rockchip,pins = <0x04 0x13 0x0b 0x198>; + phandle = <0x3cc>; + }; + + pwm4m0-pins { + rockchip,pins = <0x00 0x15 0x0b 0x198>; + phandle = <0x169>; + }; + }; + + pcfg-pull-none-drv-level-2 { + drive-strength = <0x02>; + bias-disable; + phandle = <0x1a0>; + }; + + pcfg-pull-none-drv-level-3-smt { + drive-strength = <0x03>; + bias-disable; + input-schmitt-enable; + phandle = <0x302>; + }; + + uart3 { + + uart3m2-xfer { + rockchip,pins = <0x04 0x06 0x0a 0x19e 0x04 0x05 0x0a 0x19e>; + phandle = <0x429>; + }; + + uart3m1-xfer { + rockchip,pins = <0x03 0x0e 0x0a 0x19e 0x03 0x0d 0x0a 0x19e>; + phandle = <0x162>; + }; + + uart3-ctsn { + rockchip,pins = <0x01 0x13 0x0a 0x198>; + phandle = <0x42a>; + }; + + uart3m0-xfer { + rockchip,pins = <0x01 0x10 0x0a 0x19e 0x01 0x11 0x0a 0x19e>; + phandle = <0x428>; + }; + + uart3-rtsn { + rockchip,pins = <0x01 0x12 0x0a 0x198>; + phandle = <0x42b>; + }; + }; + + pcfg-pull-down-drv-level-5 { + drive-strength = <0x05>; + bias-pull-down; + phandle = <0x2fc>; + }; + + pcfg-pull-up-drv-level-8 { + drive-strength = <0x08>; + phandle = <0x45b>; + bias-pull-up; + }; + + pcfg-pull-up-drv-level-10 { + drive-strength = <0x0a>; + phandle = <0x45d>; + bias-pull-up; + }; + + pcfg-output-low { + phandle = <0x309>; + output-low; + }; + + i2c7 { + + i2c7m3-xfer { + rockchip,pins = <0x04 0x0a 0x09 0x19d 0x04 0x0b 0x09 0x19d>; + phandle = <0x36f>; + }; + + i2c7m2-xfer { + rockchip,pins = <0x03 0x1a 0x09 0x19d 0x03 0x1b 0x09 0x19d>; + phandle = <0x36e>; + }; + + i2c7m1-xfer { + rockchip,pins = <0x04 0x13 0x09 0x19d 0x04 0x14 0x09 0x19d>; + phandle = <0x370>; + }; + + i2c7m0-xfer { + rockchip,pins = <0x01 0x18 0x09 0x19d 0x01 0x19 0x09 0x19d>; + phandle = <0x185>; + }; + }; + + pwm2 { + + pwm2m2-pins { + rockchip,pins = <0x04 0x12 0x0b 0x198>; + phandle = <0x3c8>; + }; + + pwm2m1-pins { + rockchip,pins = <0x03 0x09 0x0b 0x198>; + phandle = <0x3c7>; + }; + + pwm2m0-pins { + rockchip,pins = <0x00 0x14 0x03 0x198>; + phandle = <0x80>; + }; + }; + + pcfg-pull-none-drv-level-0 { + drive-strength = <0x00>; + bias-disable; + phandle = <0x2ed>; + }; + + sata1 { + + sata1m1-pins { + rockchip,pins = <0x01 0x01 0x06 0x198>; + phandle = <0x3eb>; + }; + + sata1m0-pins { + rockchip,pins = <0x04 0x0d 0x06 0x198>; + phandle = <0x3ea>; + }; + }; + + pmu { + + pmu-pins { + rockchip,pins = <0x00 0x05 0x03 0x198>; + phandle = <0x3c2>; + }; + }; + + hdmirx { + + hdmirx-det { + rockchip,pins = <0x01 0x1d 0x00 0x198>; + phandle = <0x1b4>; + }; + }; + + uart1 { + + uart1m0-ctsn { + rockchip,pins = <0x02 0x11 0x0a 0x198>; + phandle = <0x423>; + }; + + uart1m1-xfer { + rockchip,pins = <0x01 0x0f 0x0a 0x19e 0x01 0x0e 0x0a 0x19e>; + phandle = <0x160>; + }; + + uart1m0-xfer { + rockchip,pins = <0x02 0x0e 0x0a 0x19e 0x02 0x0f 0x0a 0x19e>; + phandle = <0x422>; + }; + + uart1m2-rtsn { + rockchip,pins = <0x00 0x17 0x0a 0x198>; + phandle = <0x421>; + }; + + uart1m1-rtsn { + rockchip,pins = <0x01 0x1e 0x0a 0x198>; + phandle = <0x41e>; + }; + + uart1m0-rtsn { + rockchip,pins = <0x02 0x10 0x0a 0x198>; + phandle = <0x424>; + }; + + uart1m2-ctsn { + rockchip,pins = <0x00 0x18 0x0a 0x198>; + phandle = <0x420>; + }; + + uart1m1-ctsn { + rockchip,pins = <0x01 0x1f 0x0a 0x198>; + phandle = <0x41d>; + }; + + uart1m2-xfer { + rockchip,pins = <0x00 0x1a 0x0a 0x19e 0x00 0x19 0x0a 0x19e>; + phandle = <0x41f>; + }; + }; + + hdmi { + + hdmim1-rx-cec { + rockchip,pins = <0x03 0x19 0x05 0x198>; + phandle = <0x338>; + }; + + hdmim0-rx-scl { + rockchip,pins = <0x00 0x1a 0x0b 0x198>; + phandle = <0x336>; + }; + + hdmim0-rx-sda { + rockchip,pins = <0x00 0x19 0x0b 0x198>; + phandle = <0x337>; + }; + + hdmim0-tx0-cec { + rockchip,pins = <0x04 0x11 0x05 0x198>; + phandle = <0xf9>; + }; + + hdmim2-rx-cec { + rockchip,pins = <0x01 0x0f 0x05 0x198>; + phandle = <0x342>; + }; + + hdmim1-rx-scl { + rockchip,pins = <0x03 0x1a 0x05 0x19d>; + phandle = <0x33a>; + }; + + hdmim1-rx-sda { + rockchip,pins = <0x03 0x1b 0x05 0x19d>; + phandle = <0x33b>; + }; + + hdmim0-tx0-scl { + rockchip,pins = <0x04 0x0f 0x05 0x19b>; + phandle = <0xfb>; + }; + + hdmim0-tx0-sda { + rockchip,pins = <0x04 0x10 0x05 0x19c>; + phandle = <0xfc>; + }; + + hdmim2-rx-scl { + rockchip,pins = <0x01 0x1e 0x05 0x198>; + phandle = <0x344>; + }; + + hdmim2-rx-sda { + rockchip,pins = <0x01 0x1f 0x05 0x198>; + phandle = <0x345>; + }; + + hdmim0-tx0-hpd { + rockchip,pins = <0x01 0x05 0x05 0x198>; + phandle = <0xfa>; + }; + + hdmim2-rx-hpdin { + rockchip,pins = <0x01 0x0e 0x05 0x198>; + phandle = <0x343>; + }; + + hdmi-debug6 { + rockchip,pins = <0x01 0x00 0x07 0x198>; + phandle = <0x350>; + }; + + hdmim2-tx0-scl { + rockchip,pins = <0x03 0x17 0x05 0x19b>; + phandle = <0x346>; + }; + + hdmim2-tx0-sda { + rockchip,pins = <0x03 0x18 0x05 0x19c>; + phandle = <0x347>; + }; + + hdmi-debug4 { + rockchip,pins = <0x01 0x0b 0x07 0x198>; + phandle = <0x34e>; + }; + + hdmim0-tx1-cec { + rockchip,pins = <0x02 0x14 0x04 0x198>; + phandle = <0x351>; + }; + + hdmim0-tx1-scl { + rockchip,pins = <0x02 0x0d 0x04 0x198>; + phandle = <0x352>; + }; + + hdmim0-tx1-sda { + rockchip,pins = <0x02 0x0c 0x04 0x198>; + phandle = <0x353>; + }; + + hdmi-debug2 { + rockchip,pins = <0x01 0x09 0x07 0x198>; + phandle = <0x34c>; + }; + + hdmim0-tx1-hpd { + rockchip,pins = <0x01 0x06 0x05 0x198>; + phandle = <0x1a9>; + }; + + hdmim1-rx { + rockchip,pins = <0x03 0x19 0x05 0x198 0x03 0x1a 0x05 0x19d 0x03 0x1b 0x05 0x19d 0x03 0x1c 0x05 0x198>; + phandle = <0x1b3>; + }; + + hdmim2-tx1-cec { + rockchip,pins = <0x03 0x14 0x05 0x198>; + phandle = <0x1a8>; + }; + + hdmi-debug0 { + rockchip,pins = <0x01 0x07 0x07 0x198>; + phandle = <0x34a>; + }; + + hdmim2-tx1-scl { + rockchip,pins = <0x01 0x04 0x05 0x19b>; + phandle = <0x348>; + }; + + hdmim2-tx1-sda { + rockchip,pins = <0x01 0x03 0x05 0x19c>; + phandle = <0x349>; + }; + + hdmim1-tx0-cec { + rockchip,pins = <0x00 0x19 0x0d 0x198>; + phandle = <0x33c>; + }; + + hdmim1-tx0-scl { + rockchip,pins = <0x00 0x1d 0x0b 0x19b>; + phandle = <0x33e>; + }; + + hdmim1-tx0-sda { + rockchip,pins = <0x00 0x1c 0x0b 0x19c>; + phandle = <0x33f>; + }; + + hdmim1-tx0-hpd { + rockchip,pins = <0x03 0x1c 0x03 0x198>; + phandle = <0x33d>; + }; + + hdmim0-rx-hpdin { + rockchip,pins = <0x04 0x0e 0x05 0x198>; + phandle = <0x335>; + }; + + hdmi-debug5 { + rockchip,pins = <0x01 0x0c 0x07 0x198>; + phandle = <0x34f>; + }; + + hdmi-debug3 { + rockchip,pins = <0x01 0x0a 0x07 0x198>; + phandle = <0x34d>; + }; + + hdmim1-tx1-cec { + rockchip,pins = <0x00 0x1a 0x0d 0x198>; + phandle = <0x340>; + }; + + hdmi-debug1 { + rockchip,pins = <0x01 0x08 0x07 0x198>; + phandle = <0x34b>; + }; + + hdmim1-tx1-scl { + rockchip,pins = <0x03 0x16 0x05 0x19b>; + phandle = <0x1aa>; + }; + + hdmim1-tx1-sda { + rockchip,pins = <0x03 0x15 0x05 0x19c>; + phandle = <0x1ab>; + }; + + hdmim1-tx1-hpd { + rockchip,pins = <0x03 0x0f 0x05 0x198>; + phandle = <0x341>; + }; + + hdmim1-rx-hpdin { + rockchip,pins = <0x03 0x1c 0x05 0x198>; + phandle = <0x339>; + }; + + hdmim0-rx-cec { + rockchip,pins = <0x04 0x0d 0x05 0x198>; + phandle = <0x334>; + }; + }; + + pcfg-pull-down-drv-level-3 { + drive-strength = <0x03>; + bias-pull-down; + phandle = <0x2fa>; + }; + + pcfg-pull-up-drv-level-6 { + drive-strength = <0x06>; + phandle = <0x19a>; + bias-pull-up; + }; + + i2c5 { + + i2c5m3-xfer { + rockchip,pins = <0x01 0x0e 0x09 0x19d 0x01 0x0f 0x09 0x19d>; + phandle = <0x368>; + }; + + i2c5m2-xfer { + rockchip,pins = <0x04 0x06 0x09 0x19d 0x04 0x07 0x09 0x19d>; + phandle = <0x367>; + }; + + i2c5m1-xfer { + rockchip,pins = <0x04 0x0e 0x09 0x19d 0x04 0x0f 0x09 0x19d>; + phandle = <0x366>; + }; + + i2c5m0-xfer { + rockchip,pins = <0x03 0x17 0x09 0x19d 0x03 0x18 0x09 0x19d>; + phandle = <0x14d>; + }; + + i2c5m4-xfer { + rockchip,pins = <0x02 0x0e 0x09 0x19d 0x02 0x0f 0x09 0x19d>; + phandle = <0x369>; + }; + }; + + pcfg-pull-none-drv-level-9 { + drive-strength = <0x09>; + bias-disable; + phandle = <0x453>; + }; + + pdm0 { + + pdm0m1-sdi3 { + rockchip,pins = <0x00 0x1e 0x02 0x198>; + phandle = <0x3ba>; + }; + + pdm0m1-clk { + rockchip,pins = <0x00 0x10 0x02 0x198>; + phandle = <0x3b4>; + }; + + pdm0m1-sdi1 { + rockchip,pins = <0x00 0x18 0x02 0x198>; + phandle = <0x3b8>; + }; + + pdm0m0-sdi3 { + rockchip,pins = <0x01 0x1b 0x03 0x198>; + phandle = <0x137>; + }; + + pdm0m0-sdi1 { + rockchip,pins = <0x01 0x19 0x03 0x198>; + phandle = <0x135>; + }; + + pdm0m1-clk1 { + rockchip,pins = <0x00 0x14 0x02 0x198>; + phandle = <0x3b5>; + }; + + pdm0m1-idle { + rockchip,pins = <0x00 0x10 0x00 0x198 0x00 0x14 0x00 0x198>; + phandle = <0x3b6>; + }; + + pdm0m0-clk1 { + rockchip,pins = <0x01 0x14 0x03 0x198>; + phandle = <0x13a>; + }; + + pdm0m1-sdi2 { + rockchip,pins = <0x00 0x1c 0x02 0x198>; + phandle = <0x3b9>; + }; + + pdm0m0-idle { + rockchip,pins = <0x01 0x16 0x00 0x198 0x01 0x14 0x00 0x198>; + phandle = <0x138>; + }; + + pdm0m1-sdi0 { + rockchip,pins = <0x00 0x17 0x02 0x198>; + phandle = <0x3b7>; + }; + + pdm0m0-sdi2 { + rockchip,pins = <0x01 0x1a 0x03 0x198>; + phandle = <0x136>; + }; + + pdm0m0-sdi0 { + rockchip,pins = <0x01 0x1d 0x03 0x198>; + phandle = <0x134>; + }; + + pdm0m0-clk { + rockchip,pins = <0x01 0x16 0x03 0x198>; + phandle = <0x139>; + }; + }; + + pcfg-output-high-pull-none { + bias-disable; + output-high; + phandle = <0x308>; + }; + + pwm0 { + + pwm0m1-pins { + rockchip,pins = <0x01 0x1a 0x0b 0x198>; + phandle = <0x3c3>; + }; + + pwm0m0-pins { + rockchip,pins = <0x00 0x0f 0x03 0x198>; + phandle = <0x7e>; + }; + + pwm0m2-pins { + rockchip,pins = <0x01 0x02 0x0b 0x198>; + phandle = <0x3c4>; + }; + }; + + cif { + + cif-dvp-clk { + rockchip,pins = <0x04 0x08 0x01 0x198 0x04 0x0a 0x01 0x198 0x04 0x0b 0x01 0x198>; + phandle = <0x311>; + }; + + cif-clk { + rockchip,pins = <0x04 0x0c 0x01 0x198>; + phandle = <0x310>; + }; + + cif-dvp-bus8 { + rockchip,pins = <0x04 0x00 0x01 0x198 0x04 0x01 0x01 0x198 0x04 0x02 0x01 0x198 0x04 0x03 0x01 0x198 0x04 0x04 0x01 0x198 0x04 0x05 0x01 0x198 0x04 0x06 0x01 0x198 0x04 0x07 0x01 0x198>; + phandle = <0x313>; + }; + + cif-dvp-bus16 { + rockchip,pins = <0x03 0x14 0x01 0x198 0x03 0x15 0x01 0x198 0x03 0x16 0x01 0x198 0x03 0x17 0x01 0x198 0x03 0x18 0x01 0x198 0x03 0x19 0x01 0x198 0x03 0x1a 0x01 0x198 0x03 0x1b 0x01 0x198>; + phandle = <0x312>; + }; + }; + + can1 { + + can1m1-pins { + rockchip,pins = <0x04 0x0a 0x0c 0x198 0x04 0x0b 0x0c 0x198>; + phandle = <0x146>; + }; + + can1m0-pins { + rockchip,pins = <0x03 0x0d 0x09 0x198 0x03 0x0e 0x09 0x198>; + phandle = <0x30e>; + }; + }; + + pcfg-output-low-pull-none { + bias-disable; + phandle = <0x30c>; + output-low; + }; + + gpio@fec40000 { + gpio-controller; + interrupts = <0x00 0x118 0x04>; + clocks = <0x02 0x81 0x02 0x82>; + compatible = "rockchip,gpio-bank"; + #interrupt-cells = <0x02>; + reg = <0x00 0xfec40000 0x00 0x100>; + phandle = <0x181>; + #gpio-cells = <0x02>; + gpio-ranges = <0x197 0x00 0x60 0x20>; + interrupt-controller; + }; + + spi4 { + + spi4m0-cs0 { + rockchip,pins = <0x01 0x13 0x08 0x19a>; + phandle = <0x187>; + }; + + spi4m1-cs0 { + rockchip,pins = <0x03 0x03 0x08 0x19a>; + phandle = <0x413>; + }; + + spi4m2-pins { + rockchip,pins = <0x01 0x02 0x08 0x19a 0x01 0x00 0x08 0x19a 0x01 0x01 0x08 0x19a>; + phandle = <0x415>; + }; + + spi4m0-cs1 { + rockchip,pins = <0x01 0x14 0x08 0x19a>; + phandle = <0x188>; + }; + + spi4m1-pins { + rockchip,pins = <0x03 0x02 0x08 0x19a 0x03 0x00 0x08 0x19a 0x03 0x01 0x08 0x19a>; + phandle = <0x412>; + }; + + spi4m2-cs0 { + rockchip,pins = <0x01 0x03 0x08 0x19a>; + phandle = <0x416>; + }; + + spi4m0-pins { + rockchip,pins = <0x01 0x12 0x08 0x19a 0x01 0x10 0x08 0x19a 0x01 0x11 0x08 0x19a>; + phandle = <0x189>; + }; + + spi4m1-cs1 { + rockchip,pins = <0x03 0x04 0x08 0x19a>; + phandle = <0x414>; + }; + }; + + pcfg-pull-down-drv-level-15 { + drive-strength = <0x0f>; + bias-pull-down; + phandle = <0x46b>; + }; + + pcfg-pull-up-smt { + input-schmitt-enable; + phandle = <0x2fe>; + bias-pull-up; + }; + + pcfg-pull-down-drv-level-1 { + drive-strength = <0x01>; + bias-pull-down; + phandle = <0x2f8>; + }; + + pcfg-pull-up-drv-level-4 { + drive-strength = <0x04>; + phandle = <0x2f5>; + bias-pull-up; + }; + + wireless-wlan { + + wifi-host-wake-irq { + rockchip,pins = <0x00 0x0a 0x00 0x198>; + phandle = <0x1ea>; + }; + }; + + wdt-pc9202 { + + wdt-en-base { + rockchip,pins = <0x00 0x14 0x00 0x198>; + phandle = <0x14c>; + }; + }; + + pcfg-pull-none-drv-level-0-smt { + drive-strength = <0x00>; + bias-disable; + input-schmitt-enable; + phandle = <0x300>; + }; + + i2s3 { + + i2s3-sdi { + rockchip,pins = <0x03 0x04 0x03 0x198>; + phandle = <0x12f>; + }; + + i2s3-idle { + rockchip,pins = <0x03 0x02 0x00 0x198 0x03 0x01 0x00 0x198>; + phandle = <0x131>; + }; + + i2s3-sclk { + rockchip,pins = <0x03 0x01 0x03 0x19d>; + phandle = <0x133>; + }; + + i2s3-lrck { + rockchip,pins = <0x03 0x02 0x03 0x19d>; + phandle = <0x132>; + }; + + i2s3-sdo { + rockchip,pins = <0x03 0x03 0x03 0x198>; + phandle = <0x130>; + }; + + i2s3-mclk { + rockchip,pins = <0x03 0x00 0x03 0x19d>; + phandle = <0x38e>; + }; + }; + + pcfg-pull-none-drv-level-14 { + drive-strength = <0x0e>; + bias-disable; + phandle = <0x458>; + }; + }; + + rkcif-mipi-lvds4-sditf-vir1 { + compatible = "rockchip,rkcif-sditf"; + status = "disabled"; + rockchip,cif = <0x1a1>; + phandle = <0x473>; + }; + + bt-sco { + #sound-dai-cells = <0x01>; + compatible = "delta,dfbmcs320"; + status = "disabled"; + phandle = <0x1d2>; + }; + + phy@fed80000 { + svid = <0xff01>; + orientation-switch; + sbu2-dc-gpios = <0x10d 0x07 0x00>; + clock-names = "refclk\0immortal\0pclk\0utmi"; + resets = <0x02 0x28 0x02 0x29 0x02 0x2a 0x02 0x2b 0x02 0x482>; + clocks = <0x02 0x2b6 0x02 0x27f 0x02 0x269 0x18d>; + compatible = "rockchip,rk3588-usbdp-phy"; + status = "okay"; + reg = <0x00 0xfed80000 0x00 0x10000>; + phandle = <0x2ea>; + rockchip,usb-grf = <0x74>; + reset-names = "init\0cmn\0lane\0pcs_apb\0pma_apb"; + rockchip,u2phy-grf = <0x18b>; + sbu1-dc-gpios = <0x10d 0x06 0x00>; + rockchip,usbdpphy-grf = <0x18c>; + rockchip,vo-grf = <0xf5>; + + dp-port { + #phy-cells = <0x00>; + status = "okay"; + phandle = <0xf6>; + }; + + port { + #address-cells = <0x01>; + #size-cells = <0x00>; + + endpoint@1 { + remote-endpoint = <0x18f>; + reg = <0x01>; + phandle = <0x17f>; + }; + + endpoint@0 { + remote-endpoint = <0x18e>; + reg = <0x00>; + phandle = <0x17e>; + }; + }; + + u3-port { + #phy-cells = <0x00>; + status = "okay"; + phandle = <0x67>; + }; + }; + + interrupt-controller@fe600000 { + #address-cells = <0x02>; + interrupts = <0x01 0x09 0x04>; + #size-cells = <0x02>; + compatible = "arm,gic-v3"; + ranges; + #interrupt-cells = <0x03>; + reg = <0x00 0xfe600000 0x00 0x10000 0x00 0xfe680000 0x00 0x100000>; + phandle = <0x01>; + interrupt-controller; + + msi-controller@fe640000 { + msi-controller; + compatible = "arm,gic-v3-its"; + reg = <0x00 0xfe640000 0x00 0x20000>; + phandle = <0x106>; + #msi-cells = <0x01>; + }; + + msi-controller@fe660000 { + msi-controller; + compatible = "arm,gic-v3-its"; + reg = <0x00 0xfe660000 0x00 0x20000>; + phandle = <0x1b6>; + #msi-cells = <0x01>; + }; + }; + + ethernet@fe1c0000 { + power-domains = <0x60 0x21>; + pinctrl-names = "default"; + phy-mode = "rgmii-rxid"; + snps,mixed-burst; + snps,mtl-rx-config = <0x10b>; + snps,reset-active-low; + pinctrl-0 = <0x10e 0x10f 0x110 0x111 0x112>; + clock-names = "stmmaceth\0clk_mac_ref\0pclk_mac\0aclk_mac\0ptp_ref"; + snps,mtl-tx-config = <0x10c>; + local-mac-address = [de 2f 1a d4 a9 85]; + resets = <0x02 0x20b>; + interrupts = <0x00 0xea 0x04 0x00 0xe9 0x04>; + clocks = <0x02 0x144 0x02 0x145 0x02 0x168 0x02 0x16d 0x02 0x143>; + clock_in_out = "output"; + snps,tso; + compatible = "rockchip,rk3588-gmac\0snps,dwmac-4.20a"; + status = "okay"; + rockchip,grf = <0xc8>; + interrupt-names = "macirq\0eth_wake_irq"; + snps,reset-gpio = <0x10d 0x08 0x01>; + reg = <0x00 0xfe1c0000 0x00 0x10000>; + rockchip,php_grf = <0x76>; + phandle = <0x109>; + phy-handle = <0x113>; + reset-names = "stmmaceth"; + tx_delay = <0x40>; + snps,axi-config = <0x10a>; + snps,reset-delays-us = <0x00 0x4e20 0x186a0>; + + mdio { + #address-cells = <0x01>; + #size-cells = <0x00>; + compatible = "snps,dwmac-mdio"; + phandle = <0x28f>; + + phy@1 { + compatible = "ethernet-phy-ieee802.3-c22"; + reg = <0x01>; + phandle = <0x113>; + }; + }; + + tx-queues-config { + phandle = <0x10c>; + snps,tx-queues-to-use = <0x01>; + + queue0 { + }; + }; + + stmmac-axi-config { + snps,wr_osr_lmt = <0x04>; + phandle = <0x10a>; + snps,blen = <0x00 0x00 0x00 0x00 0x10 0x08 0x04>; + snps,rd_osr_lmt = <0x08>; + }; + + rx-queues-config { + snps,rx-queues-to-use = <0x01>; + phandle = <0x10b>; + + queue0 { + }; + }; + }; + + pcie-essd { + regulator-max-microvolt = <0x2625a0>; + enable-active-high; + regulator-min-microvolt = <0x2625a0>; + regulator-name = "pcie_essd"; + startup-delay-us = <0x1388>; + compatible = "regulator-fixed"; + status = "disabled"; + phandle = <0x1ba>; + vin-supply = <0x1cd>; + gpios = <0x181 0x0f 0x00>; + }; + + iommu@fdab9000 { + clock-names = "aclk0\0aclk1\0aclk2\0iface0\0iface1\0iface2"; + interrupts = <0x00 0x6e 0x04 0x00 0x6f 0x04 0x00 0x70 0x04>; + clocks = <0x02 0x12d 0x02 0x122 0x02 0x124 0x02 0x12e 0x02 0x123 0x02 0x125>; + #iommu-cells = <0x00>; + compatible = "rockchip,iommu-v2"; + status = "okay"; + interrupt-names = "npu0_mmu\0npu1_mmu\0npu2_mmu"; + reg = <0x00 0xfdab9000 0x00 0x100 0x00 0xfdaba000 0x00 0x100 0x00 0xfdaca000 0x00 0x100 0x00 0xfdada000 0x00 0x100>; + phandle = <0xb2>; + }; + + otp@fecc0000 { + #address-cells = <0x01>; + clock-names = "otpc\0apb\0arb\0phy"; + resets = <0x02 0x12a 0x02 0x129 0x02 0x12b>; + clocks = <0x02 0x96 0x02 0x95 0x02 0x97 0x02 0x99>; + #size-cells = <0x01>; + compatible = "rockchip,rk3588-otp"; + reg = <0x00 0xfecc0000 0x00 0x400>; + phandle = <0x2e7>; + reset-names = "otpc\0apb\0arb"; + + id@7 { + reg = <0x07 0x10>; + phandle = <0x2a>; + }; + + cpul-opp-info@3d { + reg = <0x3d 0x06>; + phandle = <0x20>; + }; + + cpub1-leakage@18 { + reg = <0x18 0x01>; + phandle = <0x27>; + }; + + vop-opp-info@61 { + reg = <0x61 0x06>; + phandle = <0x2e8>; + }; + + cpul-leakage@19 { + reg = <0x19 0x01>; + phandle = <0x1f>; + }; + + codec-leakage@29 { + reg = <0x29 0x01>; + phandle = <0xc6>; + }; + + cpu-version@1c { + bits = <0x03 0x03>; + reg = <0x1c 0x01>; + phandle = <0x2b>; + }; + + cpub0-leakage@17 { + reg = <0x17 0x01>; + phandle = <0x24>; + }; + + log-leakage@1a { + reg = <0x1a 0x01>; + phandle = <0x44>; + }; + + cpu-code@2 { + reg = <0x02 0x02>; + phandle = <0x2c>; + }; + + package-serial-number-low@6 { + bits = <0x05 0x03>; + reg = <0x06 0x01>; + phandle = <0xd4>; + }; + + npu-opp-info@55 { + reg = <0x55 0x06>; + phandle = <0xb5>; + }; + + package-serial-number-high@5 { + bits = <0x00 0x01>; + reg = <0x05 0x01>; + phandle = <0xd5>; + }; + + cpub01-opp-info@43 { + reg = <0x43 0x06>; + phandle = <0x25>; + }; + + dmc-opp-info@5b { + reg = <0x5b 0x06>; + phandle = <0x45>; + }; + + npu-leakage@28 { + reg = <0x28 0x01>; + phandle = <0xb4>; + }; + + gpu-leakage@1b { + reg = <0x1b 0x01>; + phandle = <0x63>; + }; + + specification-serial-number@6 { + bits = <0x00 0x05>; + reg = <0x06 0x01>; + phandle = <0x21>; + }; + + venc-opp-info@67 { + reg = <0x67 0x06>; + phandle = <0xc7>; + }; + + gpu-opp-info@4f { + reg = <0x4f 0x06>; + phandle = <0x64>; + }; + + cpub23-opp-info@49 { + reg = <0x49 0x06>; + phandle = <0x28>; + }; + }; + + i2s@fddf0000 { + power-domains = <0x60 0x1a>; + rockchip,always-on; + clock-names = "mclk_tx\0mclk_rx\0hclk"; + assigned-clocks = <0x02 0x243>; + assigned-clock-parents = <0x02 0x07>; + resets = <0x02 0x3e8>; + interrupts = <0x00 0xb9 0x04>; + clocks = <0x02 0x246 0x02 0x246 0x02 0x248>; + dma-names = "tx"; + #sound-dai-cells = <0x00>; + compatible = "rockchip,rk3588-i2s-tdm"; + rockchip,playback-only; + status = "okay"; + reg = <0x00 0xfddf0000 0x00 0x1000>; + phandle = <0x1d3>; + dmas = <0xf2 0x02>; + reset-names = "tx-m"; + rockchip,hdmi-path; + }; + + dma-controller@fea10000 { + clock-names = "apb_pclk"; + interrupts = <0x00 0x56 0x04 0x00 0x57 0x04>; + clocks = <0x02 0x78>; + arm,pl330-periph-burst; + compatible = "arm,pl330\0arm,primecell"; + reg = <0x00 0xfea10000 0x00 0x4000>; + phandle = <0x7c>; + #dma-cells = <0x01>; + }; + + pwm@febd0000 { + pinctrl-names = "active"; + pinctrl-0 = <0x169>; + clock-names = "pwm\0pclk"; + interrupts = <0x00 0x15a 0x04>; + clocks = <0x02 0x54 0x02 0x53>; + #pwm-cells = <0x03>; + compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; + status = "disabled"; + reg = <0x00 0xfebd0000 0x00 0x10>; + phandle = <0x2d2>; + }; + + rkvenc-ccu { + compatible = "rockchip,rkv-encoder-v2-ccu"; + status = "okay"; + phandle = <0xc3>; + }; + + syscon@fd58c000 { + compatible = "rockchip,rk3588-sys-grf\0syscon\0simple-mfd"; + reg = <0x00 0xfd58c000 0x00 0x1000>; + phandle = <0xc8>; + + rgb { + pinctrl-names = "default"; + pinctrl-0 = <0x71>; + compatible = "rockchip,rk3588-rgb"; + status = "disabled"; + phandle = <0x25c>; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x00>; + + endpoint@2 { + remote-endpoint = <0x3d>; + status = "disabled"; + reg = <0x02>; + phandle = <0xf0>; + }; + }; + }; + }; + }; + + spi@fe2b0000 { + #address-cells = <0x01>; + clock-names = "clk_sfc\0hclk_sfc"; + assigned-clocks = <0x02 0x13d>; + assigned-clock-rates = <0x5f5e100>; + interrupts = <0x00 0xce 0x04>; + clocks = <0x02 0x13d 0x02 0x13e>; + #size-cells = <0x00>; + compatible = "rockchip,sfc"; + status = "disabled"; + reg = <0x00 0xfe2b0000 0x00 0x4000>; + phandle = <0x292>; + }; + + qos@fdf82200 { + compatible = "syscon"; + reg = <0x00 0xfdf82200 0x00 0x20>; + phandle = <0x9e>; + }; + + mmc@fe2c0000 { + power-domains = <0x60 0x28>; + fifo-depth = <0x100>; + pinctrl-names = "default"; + pinctrl-0 = <0x114 0x115 0x116 0x117>; + clock-names = "biu\0ciu\0ciu-drive\0ciu-sample"; + cap-sd-highspeed; + vqmmc-supply = <0x118>; + no-mmc; + bus-width = <0x04>; + no-sdio; + interrupts = <0x00 0xcb 0x04>; + clocks = <0x0e 0x17 0x0e 0x09 0x02 0x2c2 0x02 0x2c3>; + compatible = "rockchip,rk3588-dw-mshc\0rockchip,rk3288-dw-mshc"; + status = "okay"; + disable-wp; + reg = <0x00 0xfe2c0000 0x00 0x4000>; + phandle = <0x293>; + sd-uhs-sdr104; + max-frequency = <0x8f0d180>; + cap-mmc-highspeed; + }; + + serial@feb80000 { + reg-io-width = <0x04>; + pinctrl-names = "default"; + pinctrl-0 = <0x164>; + clock-names = "baudclk\0apb_pclk"; + interrupts = <0x00 0x150 0x04>; + clocks = <0x02 0xc7 0x02 0xaf>; + compatible = "rockchip,rk3588-uart\0snps,dw-apb-uart"; + status = "disabled"; + reg = <0x00 0xfeb80000 0x00 0x100>; + phandle = <0x2cd>; + dmas = <0xf1 0x0b 0xf1 0x0c>; + reg-shift = <0x02>; + }; + + phy@fee10000 { + rockchip,pipe-grf = <0x76>; + clock-names = "refclk\0apbclk\0phpclk"; + assigned-clocks = <0x02 0x2be>; + assigned-clock-rates = <0x5f5e100>; + resets = <0x02 0x20006 0x02 0x4d7>; + clocks = <0x02 0x2be 0x02 0x186 0x02 0x166>; + #phy-cells = <0x01>; + compatible = "rockchip,rk3588-naneng-combphy"; + status = "disabled"; + rockchip,pipe-phy-grf = <0x1cb>; + reg = <0x00 0xfee10000 0x00 0x100>; + phandle = <0x1bc>; + reset-names = "combphy-apb\0combphy"; + rockchip,pcie1ln-sel-bits = <0x100 0x00 0x00 0x00>; + }; + + can@fea60000 { + pinctrl-names = "default"; + pinctrl-0 = <0x146>; + clock-names = "baudclk\0apb_pclk"; + assigned-clocks = <0x02 0x72>; + assigned-clock-rates = <0xbebc200>; + resets = <0x02 0xbb 0x02 0xba>; + interrupts = <0x00 0x156 0x04>; + clocks = <0x02 0x72 0x02 0x71>; + compatible = "rockchip,can-2.0"; + status = "okay"; + tx-fifo-depth = <0x01>; + rx-fifo-depth = <0x06>; + reg = <0x00 0xfea60000 0x00 0x1000>; + phandle = <0x2a1>; + reset-names = "can\0can-apb"; + }; + + pdm@fe4c0000 { + power-domains = <0x60 0x26>; + pinctrl-names = "default\0idle\0clk"; + pinctrl-2 = <0x140 0x141>; + pinctrl-0 = <0x13b 0x13c 0x13d 0x13e>; + clock-names = "pdm_clk\0pdm_hclk"; + assigned-clocks = <0x02 0x3b>; + assigned-clock-parents = <0x02 0x05>; + clocks = <0x02 0x3b 0x02 0x3a>; + dma-names = "rx"; + #sound-dai-cells = <0x00>; + compatible = "rockchip,rk3588-pdm"; + pinctrl-1 = <0x13f>; + status = "disabled"; + reg = <0x00 0xfe4c0000 0x00 0x1000>; + phandle = <0x29b>; + dmas = <0xf1 0x04>; + }; + + rkcif-mipi-lvds3-sditf-vir2 { + compatible = "rockchip,rkcif-sditf"; + status = "disabled"; + rockchip,cif = <0x57>; + phandle = <0x239>; + }; + + qos@fdf66e00 { + compatible = "syscon"; + reg = <0x00 0xfdf66e00 0x00 0x20>; + phandle = <0x9a>; + }; + + usb@fc800000 { + power-domains = <0x60 0x1f>; + phy-names = "usb2-phy"; + clock-names = "usbhost\0arbiter\0utmi\0alk_usb"; + companion = <0x6b>; + interrupts = <0x00 0xd7 0x04>; + clocks = <0x02 0x19d 0x02 0x19e 0x69 0x6a>; + compatible = "rockchip,rk3588-ehci\0generic-ehci"; + status = "okay"; + phys = <0x6c>; + reg = <0x00 0xfc800000 0x00 0x40000>; + phandle = <0x254>; + }; + + i2c@fd880000 { + pinctrl-names = "default"; + #address-cells = <0x01>; + pinctrl-0 = <0x77>; + clock-names = "i2c\0pclk"; + resets = <0x02 0xc0022 0x02 0xc0021>; + interrupts = <0x00 0x13d 0x04>; + clocks = <0x02 0x287 0x02 0x286>; + #size-cells = <0x00>; + compatible = "rockchip,rk3588-i2c\0rockchip,rk3399-i2c"; + status = "okay"; + reg = <0x00 0xfd880000 0x00 0x1000>; + phandle = <0x25f>; + reset-names = "i2c\0apb"; + + hym8563@51 { + pinctrl-names = "default"; + clock-output-names = "hym8563"; + pinctrl-0 = <0x7a>; + wakeup-source; + interrupts = <0x08 0x08>; + #clock-cells = <0x00>; + interrupt-parent = <0x7b>; + clock-frequency = <0x8000>; + compatible = "haoyu,hym8563"; + status = "okay"; + reg = <0x51>; + phandle = <0x1e4>; + }; + + rk8602@42 { + regulator-max-microvolt = <0x100590>; + regulator-boot-on; + rockchip,suspend-voltage-selector = <0x01>; + regulator-always-on; + regulator-min-microvolt = <0x86470>; + regulator-name = "vdd_cpu_big0_s0"; + regulator-ramp-delay = <0x8fc>; + compatible = "rockchip,rk8602"; + reg = <0x42>; + phandle = <0x18>; + vin-supply = <0x78>; + regulator-compatible = "rk860x-reg"; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + rk8603@43 { + regulator-max-microvolt = <0x100590>; + regulator-boot-on; + rockchip,suspend-voltage-selector = <0x01>; + regulator-always-on; + regulator-min-microvolt = <0x86470>; + regulator-name = "vdd_cpu_big1_s0"; + regulator-ramp-delay = <0x8fc>; + compatible = "rockchip,rk8603"; + reg = <0x43>; + phandle = <0x1c>; + vin-supply = <0x78>; + regulator-compatible = "rk860x-reg"; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + pc9202@3c { + index = <0x00>; + compatible = "firefly,pc9202"; + status = "okay"; + wd-en-gpio = <0x79 0x15 0x00>; + driver-names = "wdt_core"; + reg = <0x3c>; + }; + }; + + rkcif-mipi-lvds3-sditf { + compatible = "rockchip,rkcif-sditf"; + status = "disabled"; + rockchip,cif = <0x57>; + phandle = <0x237>; + }; + + serial@fd890000 { + reg-io-width = <0x04>; + pinctrl-names = "default"; + pinctrl-0 = <0x7d>; + clock-names = "baudclk\0apb_pclk"; + interrupts = <0x00 0x14b 0x04>; + clocks = <0x02 0x2ae 0x02 0x2af>; + compatible = "rockchip,rk3588-uart\0snps,dw-apb-uart"; + status = "disabled"; + reg = <0x00 0xfd890000 0x00 0x100>; + phandle = <0x260>; + dmas = <0x7c 0x06 0x7c 0x07>; + reg-shift = <0x02>; + }; + + qos@fdf70000 { + compatible = "syscon"; + reg = <0x00 0xfdf70000 0x00 0x20>; + phandle = <0x85>; + }; + + gpu-opp-table { + rockchip,pvtm-offset = <0x1c>; + rockchip,pvtm-sample-time = <0x44c>; + rockchip,pvtm-hw = <0x04>; + nvmem-cells = <0x63 0x64 0x21>; + rockchip,low-temp = <0x2710>; + rockchip,pvtm-voltage-sel-hw = <0x00 0x31f 0x00 0x320 0x333 0x01 0x334 0x34c 0x02 0x34d 0x365 0x03 0x366 0x37e 0x04 0x37f 0x270f 0x05>; + rockchip,pvtm-thermal-zone = "gpu-thermal"; + rockchip,high-temp-max-freq = "\0\f5"; + rockchip,opp-clocks = <0x02 0x114>; + rockchip,pvtm-freq = "\0\f5"; + rockchip,pvtm-ref-temp = <0x19>; + low-volt-mem-read-margin = <0x04>; + volt-mem-read-margin = <0xd0bd8 0x01 0xbac48 0x02 0xa4cb8 0x03 0x78d98 0x04>; + compatible = "operating-points-v2"; + rockchip,low-temp-min-volt = <0xb71b0>; + rockchip,grf = <0x65>; + nvmem-cell-names = "leakage\0opp-info\0specification_serial_number"; + rockchip,pvtm-voltage-sel = <0x00 0x32f 0x00 0x330 0x343 0x01 0x344 0x35c 0x02 0x35d 0x375 0x03 0x376 0x38e 0x04 0x38f 0x270f 0x05>; + phandle = <0x61>; + rockchip,pvtm-temp-prop = <0xffffff79 0xffffff79>; + rockchip,temp-hysteresis = <0x1388>; + rockchip,high-temp = <0x14c08>; + rockchip,pvtm-pvtpll; + rockchip,supported-hw; + intermediate-threshold-freq = <0x61a80>; + rockchip,pvtm-volt = <0xb71b0>; + + opp-j-m-700000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; + opp-hz = <0x00 0x29b92700>; + opp-supported-hw = <0x06 0xffff>; + }; + + opp-300000000 { + opp-microvolt = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + opp-hz = <0x00 0x11e1a300>; + opp-supported-hw = <0xf9 0xffff>; + }; + + opp-500000000 { + opp-microvolt = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + opp-hz = <0x00 0x1dcd6500>; + opp-supported-hw = <0xf9 0xffff>; + }; + + opp-m-800000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; + opp-hz = <0x00 0x2faf0800>; + opp-supported-hw = <0x02 0xffff>; + }; + + opp-j-850000000 { + opp-microvolt = <0xc042c 0xc042c 0xcf850 0xc042c 0xc042c 0xcf850>; + opp-microvolt-L4 = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; + opp-microvolt-L2 = <0xba284 0xba284 0xcf850 0xba284 0xba284 0xcf850>; + opp-hz = <0x00 0x32a9f880>; + opp-supported-hw = <0x04 0xffff>; + opp-microvolt-L5 = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; + opp-microvolt-L3 = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; + opp-microvolt-L1 = <0xbd358 0xbd358 0xcf850 0xbd358 0xbd358 0xcf850>; + }; + + opp-j-m-400000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; + opp-hz = <0x00 0x17d78400>; + opp-supported-hw = <0x06 0xffff>; + }; + + opp-700000000 { + opp-microvolt = <0xaae60 0xaae60 0xcf850 0xaae60 0xaae60 0xcf850>; + opp-microvolt-L4 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + opp-microvolt-L2 = <0xa7d8c 0xa7d8c 0xcf850 0xa7d8c 0xa7d8c 0xcf850>; + opp-hz = <0x00 0x29b92700>; + opp-supported-hw = <0xf9 0xffff>; + opp-microvolt-L5 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + opp-microvolt-L3 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + }; + + opp-j-m-600000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; + opp-hz = <0x00 0x23c34600>; + opp-supported-hw = <0x06 0xffff>; + }; + + opp-900000000 { + opp-microvolt = <0xc3500 0xc3500 0xcf850 0xc3500 0xc3500 0xcf850>; + opp-microvolt-L4 = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; + opp-microvolt-L2 = <0xbd358 0xbd358 0xcf850 0xbd358 0xbd358 0xcf850>; + opp-hz = <0x00 0x35a4e900>; + opp-supported-hw = <0xf9 0xffff>; + opp-microvolt-L5 = <0xb40dc 0xb40dc 0xcf850 0xb40dc 0xb40dc 0xcf850>; + opp-microvolt-L3 = <0xba284 0xba284 0xcf850 0xba284 0xba284 0xcf850>; + opp-microvolt-L1 = <0xc042c 0xc042c 0xcf850 0xc042c 0xc042c 0xcf850>; + }; + + opp-m-1000000000 { + opp-microvolt = <0xcf850 0xcf850 0xcf850 0xcf850 0xcf850 0xcf850>; + opp-microvolt-L4 = <0xc3500 0xc3500 0xcf850 0xc3500 0xc3500 0xcf850>; + opp-microvolt-L2 = <0xc96a8 0xc96a8 0xcf850 0xc96a8 0xc96a8 0xcf850>; + opp-hz = <0x00 0x3b9aca00>; + opp-supported-hw = <0x02 0xffff>; + opp-microvolt-L5 = <0xc042c 0xc042c 0xcf850 0xc042c 0xc042c 0xcf850>; + opp-microvolt-L3 = <0xc65d4 0xc65d4 0xcf850 0xc65d4 0xc65d4 0xcf850>; + opp-microvolt-L1 = <0xcc77c 0xcc77c 0xcf850 0xcc77c 0xcc77c 0xcf850>; + }; + + opp-400000000 { + opp-microvolt = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + opp-hz = <0x00 0x17d78400>; + opp-supported-hw = <0xf9 0xffff>; + }; + + opp-j-m-300000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; + opp-hz = <0x00 0x11e1a300>; + opp-supported-hw = <0x06 0xffff>; + }; + + opp-600000000 { + opp-microvolt = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + opp-hz = <0x00 0x23c34600>; + opp-supported-hw = <0xf9 0xffff>; + }; + + opp-m-900000000 { + opp-microvolt = <0xc3500 0xc3500 0xcf850 0xc3500 0xc3500 0xcf850>; + opp-microvolt-L4 = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; + opp-microvolt-L2 = <0xbd358 0xbd358 0xcf850 0xbd358 0xbd358 0xcf850>; + opp-hz = <0x00 0x35a4e900>; + opp-supported-hw = <0x02 0xffff>; + opp-microvolt-L5 = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; + opp-microvolt-L3 = <0xba284 0xba284 0xcf850 0xba284 0xba284 0xcf850>; + opp-microvolt-L1 = <0xc042c 0xc042c 0xcf850 0xc042c 0xc042c 0xcf850>; + }; + + opp-1000000000 { + opp-microvolt = <0xcf850 0xcf850 0xcf850 0xcf850 0xcf850 0xcf850>; + opp-microvolt-L4 = <0xc3500 0xc3500 0xcf850 0xc3500 0xc3500 0xcf850>; + opp-microvolt-L2 = <0xc96a8 0xc96a8 0xcf850 0xc96a8 0xc96a8 0xcf850>; + opp-hz = <0x00 0x3b9aca00>; + opp-supported-hw = <0xf9 0xffff>; + opp-microvolt-L5 = <0xc042c 0xc042c 0xcf850 0xc042c 0xc042c 0xcf850>; + opp-microvolt-L3 = <0xc65d4 0xc65d4 0xcf850 0xc65d4 0xc65d4 0xcf850>; + opp-microvolt-L1 = <0xcc77c 0xcc77c 0xcf850 0xcc77c 0xcc77c 0xcf850>; + }; + + opp-j-m-500000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; + opp-hz = <0x00 0x1dcd6500>; + opp-supported-hw = <0x06 0xffff>; + }; + + opp-800000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; + opp-microvolt-L4 = <0xaae60 0xaae60 0xcf850 0xaae60 0xaae60 0xcf850>; + opp-microvolt-L2 = <0xb1008 0xb1008 0xcf850 0xb1008 0xb1008 0xcf850>; + opp-hz = <0x00 0x2faf0800>; + opp-supported-hw = <0xf9 0xffff>; + opp-microvolt-L5 = <0xaae60 0xaae60 0xcf850 0xaae60 0xaae60 0xcf850>; + opp-microvolt-L3 = <0xadf34 0xadf34 0xcf850 0xadf34 0xadf34 0xcf850>; + opp-microvolt-L1 = <0xb40dc 0xb40dc 0xcf850 0xb40dc 0xb40dc 0xcf850>; + }; + }; + + csi2-dphy1-hw@fedc8000 { + clock-names = "pclk"; + resets = <0x02 0x19 0x02 0x18>; + clocks = <0x02 0x10d>; + compatible = "rockchip,rk3588-csi2-dphy-hw"; + status = "okay"; + rockchip,grf = <0x193>; + reg = <0x00 0xfedc8000 0x00 0x8000>; + phandle = <0x2e>; + reset-names = "srst_csiphy1\0srst_p_csiphy1"; + rockchip,sys_grf = <0xc8>; + }; + + hdcp@fde40000 { + power-domains = <0x60 0x19>; + clock-names = "aclk\0pclk\0hclk\0hclk_key\0aclk_trng\0pclk_trng"; + resets = <0x02 0x37f 0x02 0x37d 0x02 0x37c 0x02 0x37b 0x02 0x381>; + interrupts = <0x00 0x9f 0x04>; + clocks = <0x02 0x1ed 0x02 0x1ef 0x02 0x1ee 0x02 0x1ec 0x02 0x1f1 0x02 0x1f2>; + compatible = "rockchip,rk3588-hdcp"; + status = "disabled"; + reg = <0x00 0xfde40000 0x00 0x80>; + phandle = <0x285>; + reset-names = "hdcp\0h_hdcp\0a_hdcp\0hdcp_key\0trng"; + rockchip,vo-grf = <0xf5>; + }; + + iommu@fdbac800 { + power-domains = <0x60 0x15>; + clock-names = "aclk\0iface"; + interrupts = <0x00 0x7f 0x04>; + clocks = <0x02 0x1b2 0x02 0x1b3>; + #iommu-cells = <0x00>; + compatible = "rockchip,iommu-v2"; + status = "okay"; + interrupt-names = "irq_jpege3_mmu"; + reg = <0x00 0xfdbac800 0x00 0x40>; + phandle = <0xc0>; + }; + + qos@fdf40400 { + compatible = "syscon"; + reg = <0x00 0xfdf40400 0x00 0x20>; + phandle = <0xa2>; + }; + + rga@fdb70000 { + power-domains = <0x60 0x1e>; + iommus = <0xba>; + clock-names = "aclk_rga3_1\0hclk_rga3_1\0clk_rga3_1"; + interrupts = <0x00 0x73 0x04>; + clocks = <0x02 0x18a 0x02 0x189 0x02 0x18b>; + compatible = "rockchip,rga3_core1"; + status = "okay"; + interrupt-names = "rga3_core1_irq"; + reg = <0x00 0xfdb70000 0x00 0x1000>; + phandle = <0x26a>; + }; + + spi@feb00000 { + pinctrl-names = "default"; + #address-cells = <0x01>; + num-cs = <0x02>; + pinctrl-0 = <0x14e 0x14f 0x150>; + clock-names = "spiclk\0apb_pclk"; + interrupts = <0x00 0x146 0x04>; + clocks = <0x02 0xa3 0x02 0x9e>; + #size-cells = <0x00>; + dma-names = "tx\0rx"; + compatible = "rockchip,rk3066-spi"; + status = "disabled"; + reg = <0x00 0xfeb00000 0x00 0x1000>; + phandle = <0x2ab>; + dmas = <0x7c 0x0e 0x7c 0x0f>; + }; + + pcie@fe170000 { + #address-cells = <0x03>; + rockchip,pipe-grf = <0x76>; + phy-names = "pcie-phy"; + bus-range = <0x20 0x2f>; + clock-names = "aclk_mst\0aclk_slv\0aclk_dbi\0pclk\0aux\0pipe"; + reg-names = "pcie-apb\0pcie-dbi"; + num-ob-windows = <0x08>; + resets = <0x02 0x20f 0x02 0x21e>; + interrupts = <0x00 0xf3 0x04 0x00 0xf2 0x04 0x00 0xf1 0x04 0x00 0xf0 0x04 0x00 0xef 0x04>; + clocks = <0x02 0x150 0x02 0x155 0x02 0x14b 0x02 0x15b 0x02 0x160 0x02 0x2c4>; + interrupt-map = <0x00 0x00 0x00 0x01 0x1bb 0x00 0x00 0x00 0x00 0x02 0x1bb 0x01 0x00 0x00 0x00 0x03 0x1bb 0x02 0x00 0x00 0x00 0x04 0x1bb 0x03>; + #size-cells = <0x02>; + max-link-speed = <0x02>; + device_type = "pci"; + interrupt-map-mask = <0x00 0x00 0x00 0x07>; + num-lanes = <0x01>; + compatible = "rockchip,rk3588-pcie\0snps,dw-pcie"; + ranges = <0x800 0x00 0xf2000000 0x00 0xf2000000 0x00 0x100000 0x81000000 0x00 0xf2100000 0x00 0xf2100000 0x00 0x100000 0x82000000 0x00 0xf2200000 0x00 0xf2200000 0x00 0xe00000 0xc3000000 0x09 0x80000000 0x09 0x80000000 0x00 0x40000000>; + msi-map = <0x2000 0x106 0x2000 0x1000>; + #interrupt-cells = <0x01>; + status = "disabled"; + interrupt-names = "sys\0pmc\0msg\0legacy\0err"; + phys = <0x1bc 0x02>; + num-viewport = <0x04>; + reg = <0x00 0xfe170000 0x00 0x10000 0x0a 0x40800000 0x00 0x400000>; + linux,pci-domain = <0x02>; + phandle = <0x487>; + reset-names = "pcie\0periph"; + num-ib-windows = <0x08>; + + legacy-interrupt-controller { + #address-cells = <0x00>; + interrupts = <0x00 0xf0 0x01>; + interrupt-parent = <0x01>; + #interrupt-cells = <0x01>; + phandle = <0x1bb>; + interrupt-controller; + }; + }; + + i2s@fe470000 { + power-domains = <0x60 0x26>; + pinctrl-names = "default\0idle\0clk"; + pinctrl-2 = <0x11b 0x11c>; + pinctrl-0 = <0x11b 0x11c 0x11d 0x11e>; + clock-names = "mclk_tx\0mclk_rx\0hclk"; + assigned-clocks = <0x02 0x31 0x02 0x35>; + assigned-clock-parents = <0x02 0x05 0x02 0x05>; + resets = <0x02 0x77 0x02 0x7a>; + interrupts = <0x00 0xb4 0x04>; + clocks = <0x02 0x33 0x02 0x37 0x02 0x30>; + dma-names = "tx\0rx"; + #sound-dai-cells = <0x00>; + compatible = "rockchip,rk3588-i2s-tdm"; + pinctrl-1 = <0x11f>; + status = "okay"; + reg = <0x00 0xfe470000 0x00 0x1000>; + phandle = <0x1da>; + dmas = <0x7c 0x00 0x7c 0x01>; + reset-names = "tx-m\0rx-m"; + rockchip,clk-trcm = <0x01>; + }; + + syscon@fd594000 { + compatible = "rockchip,rk3588-litcore-grf\0syscon"; + reg = <0x00 0xfd594000 0x00 0x100>; + phandle = <0x22>; + }; + + csi2-dphy5 { + rockchip,hw = <0x2d 0x2e>; + phy-names = "dcphy0\0dcphy1"; + compatible = "rockchip,rk3588-csi2-dphy"; + status = "disabled"; + phys = <0x2f 0x30>; + phandle = <0x214>; + }; + + usb@fc840000 { + power-domains = <0x60 0x1f>; + phy-names = "usb2-phy"; + clock-names = "usbhost\0arbiter\0utmi\0alk_usb"; + interrupts = <0x00 0xd8 0x04>; + clocks = <0x02 0x19d 0x02 0x19e 0x69 0x6a>; + compatible = "rockchip,rk3588-ohci\0generic-ohci"; + status = "okay"; + phys = <0x6c>; + reg = <0x00 0xfc840000 0x00 0x40000>; + phandle = <0x6b>; + }; + + syscon@fd5b0000 { + compatible = "rockchip,rk3588-php-grf\0syscon"; + reg = <0x00 0xfd5b0000 0x00 0x1000>; + phandle = <0x76>; + }; + + rkcif-mipi-lvds2-sditf-vir3 { + compatible = "rockchip,rkcif-sditf"; + status = "disabled"; + rockchip,cif = <0x55>; + phandle = <0x236>; + }; + + rkisp1-vir1 { + rockchip,hw = <0x5a>; + compatible = "rockchip,rkisp-vir"; + status = "disabled"; + phandle = <0x240>; + }; + + i2c@feaa0000 { + pinctrl-names = "default"; + #address-cells = <0x01>; + pinctrl-0 = <0x149>; + clock-names = "i2c\0pclk"; + resets = <0x02 0xb1 0x02 0xa9>; + interrupts = <0x00 0x13f 0x04>; + clocks = <0x02 0x8e 0x02 0x86>; + #size-cells = <0x00>; + compatible = "rockchip,rk3588-i2c\0rockchip,rk3399-i2c"; + status = "disabled"; + reg = <0x00 0xfeaa0000 0x00 0x1000>; + phandle = <0x2a5>; + reset-names = "i2c\0apb"; + }; + + dmc { + downdifferential = <0x14>; + clock-names = "dmc_clk"; + interrupts = <0x00 0x49 0x04>; + clocks = <0x0e 0x04>; + upthreshold = <0x28>; + center-supply = <0x42>; + devfreq-events = <0x40>; + compatible = "rockchip,rk3588-dmc"; + status = "disabled"; + interrupt-names = "complete"; + mem-supply = <0x43>; + phandle = <0x21f>; + operating-points-v2 = <0x41>; + system-status-level = <0x01 0x04 0x08 0x08 0x02 0x01 0x10 0x04 0x10000 0x04 0x80000 0x04 0x1000 0x08 0x4000 0x08 0x2000 0x08 0xc00 0x08 0x40000 0x08 0x200000 0x08>; + auto-freq-en = <0x01>; + }; + + hdmi1-sound { + rockchip,jack-det; + rockchip,cpu = <0x1e0>; + rockchip,codec = <0x1e1>; + rockchip,card-name = "rockchip-hdmi1"; + compatible = "rockchip,hdmi"; + status = "disabled"; + phandle = <0x4a8>; + rockchip,mclk-fs = <0x80>; + }; + + qos@fdf3d800 { + compatible = "syscon"; + reg = <0x00 0xfdf3d800 0x00 0x20>; + phandle = <0xb0>; + }; + + mipi-dcphy-dummy { + phandle = <0x223>; + }; + + jpege-core@fdbac000 { + power-domains = <0x60 0x15>; + iommus = <0xc0>; + rockchip,ccu = <0xbd>; + clock-names = "aclk_vcodec\0hclk_vcodec"; + assigned-clocks = <0x02 0x1b2>; + rockchip,normal-rates = <0x2367b880 0x00>; + assigned-clock-rates = <0x2367b880>; + resets = <0x02 0x2d0 0x02 0x2d1>; + interrupts = <0x00 0x80 0x04>; + clocks = <0x02 0x1b2 0x02 0x1b3>; + rockchip,srv = <0xb8>; + rockchip,taskqueue-node = <0x02>; + rockchip,disable-auto-freq; + compatible = "rockchip,vpu-jpege-core"; + status = "okay"; + interrupt-names = "irq_jpege3"; + rockchip,skip-pmu-idle-request; + reg = <0x00 0xfdbac000 0x00 0x400>; + phandle = <0x270>; + reset-names = "video_a\0video_h"; + }; + + iommu@fdce0800 { + power-domains = <0x60 0x1b>; + clock-names = "aclk\0iface"; + interrupts = <0x00 0x71 0x04>; + clocks = <0x02 0x1e4 0x02 0x1e5>; + #iommu-cells = <0x00>; + compatible = "rockchip,iommu-v2"; + rockchip,disable-mmu-reset; + status = "okay"; + interrupt-names = "cif_mmu"; + reg = <0x00 0xfdce0800 0x00 0x100 0x00 0xfdce0900 0x00 0x100>; + phandle = <0x50>; + }; + + qos@fdf35400 { + compatible = "syscon"; + reg = <0x00 0xfdf35400 0x00 0x20>; + phandle = <0x89>; + }; + + syscon@fd5a8000 { + clocks = <0x73>; + compatible = "rockchip,rk3588-vo-grf\0syscon"; + reg = <0x00 0xfd5a8000 0x00 0x100>; + phandle = <0xd8>; + }; + + dp0-sound { + rockchip,jack-det; + rockchip,cpu = <0x1d5>; + rockchip,codec = <0x1d6 0x01>; + rockchip,card-name = "rockchip-dp0"; + compatible = "rockchip,hdmi"; + status = "disabled"; + phandle = <0x49c>; + rockchip,mclk-fs = <0x200>; + }; + + rkcif-mipi-lvds4 { + iommus = <0x50>; + rockchip,hw = <0x4f>; + compatible = "rockchip,rkcif-mipi-lvds"; + status = "disabled"; + phandle = <0x1a1>; + }; + + usb@fc880000 { + power-domains = <0x60 0x1f>; + phy-names = "usb2-phy"; + clock-names = "usbhost\0arbiter\0utmi\0alk_usb"; + companion = <0x6e>; + interrupts = <0x00 0xda 0x04>; + clocks = <0x02 0x19f 0x02 0x1a0 0x6d 0x6a>; + compatible = "rockchip,rk3588-ehci\0generic-ehci"; + status = "okay"; + phys = <0x6f>; + reg = <0x00 0xfc880000 0x00 0x40000>; + phandle = <0x255>; + }; + + qos@fdf62000 { + compatible = "syscon"; + reg = <0x00 0xfdf62000 0x00 0x20>; + phandle = <0x8b>; + }; + + syscon@fd5f0000 { + compatible = "rockchip,rk3588-ioc\0syscon"; + reg = <0x00 0xfd5f0000 0x00 0x10000>; + phandle = <0x196>; + }; + + mipi1-csi2 { + rockchip,hw = <0x47 0x48 0x49 0x4a 0x4b 0x4c>; + compatible = "rockchip,rk3588-mipi-csi2"; + status = "disabled"; + phandle = <0x225>; + }; + + hdmiphy@fed70000 { + clock-names = "ref\0apb"; + resets = <0x02 0x491 0x02 0x486 0x02 0xc003f 0x02 0xc0040 0x02 0xc0041 0x02 0x48f 0x02 0x490>; + clocks = <0x02 0x2b5 0x02 0x268>; + #phy-cells = <0x00>; + compatible = "rockchip,rk3588-hdptx-phy-hdmi"; + status = "disabled"; + rockchip,grf = <0x1c7>; + reg = <0x00 0xfed70000 0x00 0x2000>; + phandle = <0x1ac>; + reset-names = "phy\0apb\0init\0cmn\0lane\0ropll\0lcpll"; + + clk-port { + #clock-cells = <0x00>; + status = "okay"; + phandle = <0x36>; + }; + }; + + i2c@fec80000 { + pinctrl-names = "default"; + #address-cells = <0x01>; + pinctrl-0 = <0x178>; + clock-names = "i2c\0pclk"; + resets = <0x02 0xb5 0x02 0xad>; + interrupts = <0x00 0x143 0x04>; + clocks = <0x02 0x92 0x02 0x8a>; + #size-cells = <0x00>; + compatible = "rockchip,rk3588-i2c\0rockchip,rk3399-i2c"; + status = "okay"; + reg = <0x00 0xfec80000 0x00 0x1000>; + phandle = <0x2df>; + reset-names = "i2c\0apb"; + + imx415@37 { + power-domains = <0x60 0x1b>; + pinctrl-names = "default"; + pinctrl-0 = <0x180>; + clock-names = "xvclk"; + clocks = <0x02 0x100>; + firefly,clkout-enabled-index = <0x00>; + rockchip,camera-module-name = "CMK-OT2022-PX1"; + reset-gpios = <0x182 0x05 0x01>; + rockchip,camera-module-index = <0x00>; + compatible = "sony,imx415"; + rockchip,camera-module-facing = "back"; + power-gpios = <0x181 0x1d 0x00>; + reg = <0x37>; + rockchip,camera-module-lens-name = "IR0147-50IRC-8M-F20"; + phandle = <0x2e3>; + + port { + + endpoint { + data-lanes = <0x01 0x02 0x03 0x04>; + remote-endpoint = <0x184>; + phandle = <0x32>; + }; + }; + }; + + es8388@11 { + pinctrl-names = "default"; + pinctrl-0 = <0x17a>; + clock-names = "mclk"; + assigned-clocks = <0x179>; + assigned-clock-rates = <0xbb8000>; + clocks = <0x179>; + #sound-dai-cells = <0x00>; + compatible = "everest,es8388\0everest,es8323"; + status = "okay"; + reg = <0x11>; + phandle = <0x1db>; + }; + + XC7160b@1b { + power-domains = <0x60 0x1b>; + pinctrl-names = "default"; + pinctrl-0 = <0x180>; + clock-names = "xvclk"; + pwdn-gpios = <0xfe 0x04 0x00>; + clocks = <0x02 0x100>; + firefly,clkout-enabled-index = <0x00>; + rockchip,camera-module-name = "NC"; + reset-gpios = <0x182 0x05 0x00>; + rockchip,camera-module-index = <0x00>; + compatible = "firefly,xc7160"; + rockchip,camera-module-facing = "back"; + power-gpios = <0x181 0x1d 0x01>; + reg = <0x1b>; + rockchip,camera-module-lens-name = "NC"; + phandle = <0x2e2>; + + port { + + endpoint { + data-lanes = <0x01 0x02 0x03 0x04>; + remote-endpoint = <0x183>; + phandle = <0x31>; + }; + }; + }; + + fusb302@22 { + pinctrl-names = "default"; + pinctrl-0 = <0x17b>; + interrupts = <0x1b 0x08>; + vbus-supply = <0x17c>; + interrupt-parent = <0x7b>; + compatible = "fcs,fusb302"; + status = "disabled"; + reg = <0x22>; + phandle = <0x2e0>; + + connector { + sink-pdos = <0x4019064>; + power-role = "dual"; + source-pdos = <0x401912c>; + data-role = "dual"; + label = "USB-C"; + try-power-role = "sink"; + compatible = "usb-c-connector"; + op-sink-microwatt = <0xf4240>; + phandle = <0x2e1>; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + reg = <0x00>; + + endpoint { + remote-endpoint = <0x17e>; + phandle = <0x18e>; + }; + }; + + port@1 { + reg = <0x01>; + + endpoint { + remote-endpoint = <0x17f>; + phandle = <0x18f>; + }; + }; + }; + + altmodes { + #address-cells = <0x01>; + #size-cells = <0x00>; + + altmode@0 { + svid = <0xff01>; + vdo = <0xffffffff>; + reg = <0x00>; + }; + }; + }; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + reg = <0x00>; + + endpoint@0 { + remote-endpoint = <0x17d>; + phandle = <0x68>; + }; + }; + }; + }; + }; + + syscon@fd5e8000 { + compatible = "rockchip,mipi-dcphy-grf\0syscon"; + reg = <0x00 0xfd5e8000 0x00 0x4000>; + phandle = <0x190>; + }; + + vbus5v0-typec-pwr-en-regulator { + gpio = <0x182 0x0c 0x00>; + enable-active-high; + regulator-name = "vbus5v0_typec_pwr_en"; + compatible = "regulator-fixed"; + status = "disabled"; + phandle = <0x17c>; + }; + + mipi2-csi2-hw@fdd30000 { + clock-names = "pclk_csi2host"; + reg-names = "csihost_regs"; + resets = <0x02 0x326>; + interrupts = <0x00 0x93 0x04 0x00 0x94 0x04>; + clocks = <0x02 0x1d1>; + compatible = "rockchip,rk3588-mipi-csi2-hw"; + status = "okay"; + interrupt-names = "csi-intr1\0csi-intr2"; + reg = <0x00 0xfdd30000 0x00 0x10000>; + phandle = <0x49>; + reset-names = "srst_csihost_p"; + }; + + spdif-rx@fde18000 { + power-domains = <0x60 0x1a>; + clock-names = "mclk\0hclk"; + assigned-clocks = <0x02 0x262>; + assigned-clock-parents = <0x02 0x05>; + resets = <0x02 0x401>; + interrupts = <0x00 0xc9 0x04>; + clocks = <0x02 0x262 0x02 0x261>; + dma-names = "rx"; + #sound-dai-cells = <0x00>; + compatible = "rockchip,rk3588-spdifrx\0rockchip,rk3308-spdifrx"; + status = "disabled"; + reg = <0x00 0xfde18000 0x00 0x1000>; + phandle = <0x480>; + dmas = <0x7c 0x17>; + reset-names = "spdifrx-m"; + }; + + syscon@fd5a2000 { + compatible = "rockchip,rk3588-npu-grf\0syscon"; + reg = <0x00 0xfd5a2000 0x00 0x100>; + phandle = <0xb6>; + }; + + rkisp0-vir3 { + rockchip,hw = <0x58>; + compatible = "rockchip,rkisp-vir"; + status = "disabled"; + phandle = <0x23e>; + }; + + qos@fdf66200 { + compatible = "syscon"; + reg = <0x00 0xfdf66200 0x00 0x20>; + phandle = <0x94>; + }; + + rkcif@fdce0000 { + power-domains = <0x60 0x1b>; + iommus = <0x50>; + nvmem-cells = <0x21 0xd4 0xd5>; + clock-names = "aclk_cif\0hclk_cif\0dclk_cif\0iclk_host0\0iclk_host1"; + reg-names = "cif_regs"; + assigned-clocks = <0x02 0x1e3>; + assigned-clock-rates = <0x23c34600>; + resets = <0x02 0x317 0x02 0x318 0x02 0x316 0x02 0x334 0x02 0x335 0x02 0x336 0x02 0x337 0x02 0x338 0x02 0x339>; + interrupts = <0x00 0x9b 0x04>; + clocks = <0x02 0x1e4 0x02 0x1e5 0x02 0x1e3 0x02 0x1cd 0x02 0x1ce>; + compatible = "rockchip,rk3588-cif"; + status = "okay"; + rockchip,grf = <0xc8>; + interrupt-names = "cif-intr"; + nvmem-cell-names = "specification\0package_low\0package_high"; + reg = <0x00 0xfdce0000 0x00 0x800>; + phandle = <0x4f>; + reset-names = "rst_cif_a\0rst_cif_h\0rst_cif_d\0rst_cif_host0\0rst_cif_host1\0rst_cif_host2\0rst_cif_host3\0rst_cif_host4\0rst_cif_host5"; + }; + + edp@fdec0000 { + power-domains = <0x60 0x1a>; + phy-names = "dp"; + clock-names = "dp\0pclk\0spdif\0hclk"; + resets = <0x02 0x3e1 0x02 0x3e0>; + interrupts = <0x00 0xa3 0x04>; + clocks = <0x02 0x211 0x02 0x210 0x02 0x212 0x05>; + compatible = "rockchip,rk3588-edp"; + status = "disabled"; + rockchip,grf = <0xd8>; + phys = <0x101>; + reg = <0x00 0xfdec0000 0x00 0x1000>; + phandle = <0x289>; + reset-names = "dp\0apb"; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x00>; + + endpoint@1 { + remote-endpoint = <0x103>; + status = "disabled"; + reg = <0x01>; + phandle = <0xe1>; + }; + + endpoint@2 { + remote-endpoint = <0x3b>; + status = "disabled"; + reg = <0x02>; + phandle = <0xe7>; + }; + + endpoint@0 { + remote-endpoint = <0x102>; + status = "disabled"; + reg = <0x00>; + phandle = <0xdb>; + }; + }; + + port@1 { + reg = <0x01>; + + endpoint { + phandle = <0x28a>; + }; + }; + }; + }; + + qos@fdf72400 { + compatible = "syscon"; + reg = <0x00 0xfdf72400 0x00 0x20>; + phandle = <0x84>; + }; + + dp@fde60000 { + power-domains = <0x60 0x19>; + clock-names = "apb\0aux\0i2s\0spdif\0hclk\0hdcp"; + assigned-clocks = <0x02 0x2cd>; + assigned-clock-rates = <0xf42400>; + resets = <0x02 0x389>; + interrupts = <0x00 0xa2 0x04>; + clocks = <0x02 0x1e7 0x02 0x2cd 0x02 0x201 0x02 0x20d 0x04 0x02 0x1eb>; + #sound-dai-cells = <0x01>; + compatible = "rockchip,rk3588-dp"; + status = "disabled"; + phys = <0x1a5>; + reg = <0x00 0xfde60000 0x00 0x4000>; + phandle = <0x1e3>; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x00>; + + endpoint@1 { + remote-endpoint = <0x3e>; + status = "disabled"; + reg = <0x01>; + phandle = <0xe3>; + }; + + endpoint@2 { + remote-endpoint = <0x1a7>; + status = "disabled"; + reg = <0x02>; + phandle = <0xeb>; + }; + + endpoint@0 { + remote-endpoint = <0x1a6>; + status = "disabled"; + reg = <0x00>; + phandle = <0xdd>; + }; + }; + + port@1 { + reg = <0x01>; + + endpoint { + phandle = <0x481>; + }; + }; + }; + }; + + vcc5v0-usbdcin { + regulator-max-microvolt = <0x4c4b40>; + regulator-boot-on; + regulator-always-on; + regulator-min-microvolt = <0x4c4b40>; + regulator-name = "vcc5v0_usbdcin"; + compatible = "regulator-fixed"; + phandle = <0x48c>; + vin-supply = <0x1cd>; + }; + + rkvdec-core@fdc48000 { + power-domains = <0x60 0x0f>; + iommus = <0xcc>; + rockchip,ccu = <0xca>; + clock-names = "aclk_vcodec\0hclk_vcodec\0clk_core\0clk_cabac\0clk_hevc_cabac"; + reg-names = "regs\0link"; + assigned-clocks = <0x02 0x195 0x02 0x198 0x02 0x196 0x02 0x197>; + rockchip,core-mask = <0x20002>; + rockchip,task-capacity = <0x10>; + rockchip,normal-rates = <0x2faf0800 0x00 0x23c34600 0x23c34600 0x3b9aca00>; + assigned-clock-rates = <0x2faf0800 0x23c34600 0x23c34600 0x3b9aca00>; + resets = <0x02 0x293 0x02 0x292 0x02 0x298 0x02 0x296 0x02 0x297>; + interrupts = <0x00 0x61 0x04>; + rockchip,rcb-info = <0x88 0x6000 0x89 0xc000 0x8d 0x16000 0x8c 0xc000 0x8b 0x2c000 0x85 0xc000 0x86 0x2000 0x87 0x1100 0x8a 0x3300 0x8e 0x47300>; + clocks = <0x02 0x195 0x02 0x194 0x02 0x198 0x02 0x196 0x02 0x197>; + rockchip,rcb-min-width = <0x200>; + rockchip,srv = <0xb8>; + rockchip,taskqueue-node = <0x09>; + compatible = "rockchip,rkv-decoder-v2"; + status = "okay"; + interrupt-names = "irq_rkvdec1"; + rockchip,skip-pmu-idle-request; + rockchip,rcb-iova = <0xffe00000 0x100000>; + reg = <0x00 0xfdc48100 0x00 0x400 0x00 0xfdc48000 0x00 0x100>; + phandle = <0x275>; + reset-names = "video_a\0video_h\0video_core\0video_cabac\0video_hevc_cabac"; + rockchip,sram = <0xcd>; + }; + + vcc-1v1-nldo-s3 { + regulator-max-microvolt = <0x10c8e0>; + regulator-boot-on; + regulator-always-on; + regulator-min-microvolt = <0x10c8e0>; + regulator-name = "vcc_1v1_nldo_s3"; + compatible = "regulator-fixed"; + phandle = <0x15c>; + vin-supply = <0x78>; + }; + + power-management@fd8d8000 { + compatible = "rockchip,rk3588-pmu\0syscon\0simple-mfd"; + reg = <0x00 0xfd8d8000 0x00 0x400>; + phandle = <0xd9>; + + power-controller { + #address-cells = <0x01>; + #size-cells = <0x00>; + #power-domain-cells = <0x01>; + compatible = "rockchip,rk3588-power-controller"; + status = "okay"; + phandle = <0x60>; + + power-domain@37 { + clocks = <0x02 0x199 0x02 0x140>; + reg = <0x25>; + pm_qos = <0xaf>; + }; + + power-domain@27 { + #address-cells = <0x01>; + clocks = <0x02 0x1e1 0x02 0x1e2 0x02 0x1df 0x02 0x1de 0x02 0x1e5 0x02 0x1e4>; + #size-cells = <0x00>; + reg = <0x1b>; + pm_qos = <0xa2 0xa3 0xa4 0xa5>; + + power-domain@29 { + clocks = <0x02 0x1d6 0x02 0x1d5 0x02 0x1d9 0x02 0x1d8 0x02 0x1e2>; + reg = <0x1d>; + pm_qos = <0xa8 0xa9>; + }; + + power-domain@28 { + clocks = <0x02 0x121 0x02 0x120 0x02 0x1e1 0x02 0x1e2>; + reg = <0x1c>; + pm_qos = <0xa6 0xa7>; + }; + }; + + power-domain@33 { + clocks = <0x02 0x166 0x02 0x169 0x02 0x16a>; + reg = <0x21>; + }; + + power-domain@13 { + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x0d>; + + power-domain@15 { + clocks = <0x02 0x194 0x02 0x1be 0x02 0x1bc 0x02 0x195>; + reg = <0x0f>; + pm_qos = <0x8c>; + }; + + power-domain@16 { + #address-cells = <0x01>; + clocks = <0x02 0x1c4 0x02 0x1c5>; + #size-cells = <0x00>; + reg = <0x10>; + pm_qos = <0x8d 0x8e 0x8f>; + + power-domain@17 { + clocks = <0x02 0x1c9 0x02 0x1c4 0x02 0x1c5 0x02 0x1ca>; + reg = <0x11>; + pm_qos = <0x90 0x91 0x92>; + }; + }; + + power-domain@14 { + clocks = <0x02 0x18f 0x02 0x1be 0x02 0x1bc 0x02 0x190 0x02 0x18e>; + reg = <0x0e>; + pm_qos = <0x8b>; + }; + }; + + power-domain@31 { + clocks = <0x02 0x166 0x02 0x1a1 0x02 0x1a4 0x02 0x19d 0x02 0x19e 0x02 0x19f 0x02 0x1a0>; + reg = <0x1f>; + pm_qos = <0xab 0xac 0xad 0xae>; + }; + + power-domain@21 { + #address-cells = <0x01>; + clocks = <0x02 0x1be 0x02 0x1bd 0x02 0x1bc 0x02 0x1bf 0x02 0x1aa 0x02 0x1a9 0x02 0x1ac 0x02 0x1ad 0x02 0x1ae 0x02 0x1af 0x02 0x1b0 0x02 0x1b1 0x02 0x1b2 0x02 0x1b3 0x02 0x1b4 0x02 0x1b5 0x02 0x1b7 0x02 0x1b6>; + #size-cells = <0x00>; + reg = <0x15>; + pm_qos = <0x93 0x94 0x95 0x96 0x97 0x98 0x99 0x9a>; + + power-domain@15 { + clocks = <0x02 0x194 0x02 0x1be 0x02 0x1bc>; + reg = <0x0f>; + pm_qos = <0x8c>; + }; + + power-domain@23 { + clocks = <0x02 0x4b 0x02 0x49 0x02 0x1be>; + reg = <0x17>; + pm_qos = <0x9b>; + }; + + power-domain@14 { + clocks = <0x02 0x18f 0x02 0x1be 0x02 0x1bc 0x02 0x190>; + reg = <0x0e>; + pm_qos = <0x8b>; + }; + + power-domain@22 { + clocks = <0x02 0x1ba 0x02 0x1b9>; + reg = <0x16>; + pm_qos = <0x9c>; + }; + }; + + power-domain@38 { + clocks = <0x02 0x3c 0x02 0x3d>; + reg = <0x26>; + }; + + power-domain@8 { + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x08>; + + power-domain@9 { + #address-cells = <0x01>; + clocks = <0x02 0x12f 0x02 0x131 0x02 0x130 0x02 0x126>; + #size-cells = <0x00>; + reg = <0x09>; + pm_qos = <0x82 0x83 0x84>; + + power-domain@11 { + clocks = <0x02 0x12f 0x02 0x131 0x02 0x130>; + reg = <0x0b>; + pm_qos = <0x86>; + }; + + power-domain@10 { + clocks = <0x02 0x12f 0x02 0x131 0x02 0x130>; + reg = <0x0a>; + pm_qos = <0x85>; + }; + }; + }; + + power-domain@26 { + clocks = <0x02 0x22e 0x02 0x22f 0x02 0x22d 0x02 0x218 0x02 0x217 0x02 0x22b 0x02 0x264>; + reg = <0x1a>; + pm_qos = <0xa0 0xa1>; + }; + + power-domain@34 { + clocks = <0x02 0x166 0x02 0x169 0x02 0x16a>; + reg = <0x22>; + }; + + power-domain@24 { + #address-cells = <0x01>; + clocks = <0x02 0x26e 0x02 0x26d 0x02 0x270>; + #size-cells = <0x00>; + reg = <0x18>; + pm_qos = <0x9d 0x9e>; + + power-domain@25 { + clocks = <0x02 0x1f6 0x02 0x1f7 0x02 0x1f5 0x02 0x1f3 0x02 0x1ee 0x02 0x1ed 0x02 0x26d>; + reg = <0x19>; + pm_qos = <0x9f>; + }; + }; + + power-domain@12 { + clocks = <0x02 0x114 0x02 0x115 0x02 0x116>; + reg = <0x0c>; + pm_qos = <0x87 0x88 0x89 0x8a>; + }; + + power-domain@40 { + reg = <0x28>; + pm_qos = <0xb0>; + }; + + power-domain@30 { + clocks = <0x02 0x189 0x02 0x18a>; + reg = <0x1e>; + pm_qos = <0xaa>; + }; + }; + }; + + csi2-dphy3 { + rockchip,hw = <0x2d 0x2e>; + phy-names = "dcphy0\0dcphy1"; + compatible = "rockchip,rk3588-csi2-dphy"; + status = "disabled"; + phys = <0x2f 0x30>; + phandle = <0x212>; + }; + + qos@fdf3e000 { + compatible = "syscon"; + reg = <0x00 0xfdf3e000 0x00 0x20>; + phandle = <0xac>; + }; + + pwm@fd8b0030 { + pinctrl-names = "active"; + pinctrl-0 = <0x81>; + clock-names = "pwm\0pclk"; + interrupts = <0x00 0x158 0x04 0x00 0x159 0x04>; + clocks = <0x02 0x2a5 0x02 0x2a4>; + #pwm-cells = <0x03>; + compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; + status = "disabled"; + reg = <0x00 0xfd8b0030 0x00 0x10>; + phandle = <0x264>; + }; + + rkcif-mipi-lvds2-sditf-vir1 { + compatible = "rockchip,rkcif-sditf"; + status = "disabled"; + rockchip,cif = <0x55>; + phandle = <0x234>; + }; + + syscon@fd5cc000 { + compatible = "rockchip,rk3588-usbdpphy-grf\0syscon"; + reg = <0x00 0xfd5cc000 0x00 0x4000>; + phandle = <0x1c9>; + }; + + vdpu@fdb50400 { + power-domains = <0x60 0x15>; + iommus = <0xb7>; + clock-names = "aclk_vcodec\0hclk_vcodec"; + assigned-clocks = <0x02 0x1c0>; + rockchip,normal-rates = <0x2367b880 0x00>; + assigned-clock-rates = <0x2367b880>; + resets = <0x02 0x2c8 0x02 0x2c9>; + interrupts = <0x00 0x77 0x04>; + clocks = <0x02 0x1c0 0x02 0x1c1>; + rockchip,srv = <0xb8>; + rockchip,taskqueue-node = <0x00>; + rockchip,disable-auto-freq; + compatible = "rockchip,vpu-decoder-v2"; + rockchip,resetgroup-node = <0x00>; + status = "okay"; + interrupt-names = "irq_vdpu"; + rockchip,skip-pmu-idle-request; + reg = <0x00 0xfdb50400 0x00 0x400>; + phandle = <0x267>; + reset-names = "shared_video_a\0shared_video_h"; + }; + + qos@fdf60200 { + compatible = "syscon"; + reg = <0x00 0xfdf60200 0x00 0x20>; + phandle = <0x8e>; + }; + + pwm@febe0030 { + pinctrl-names = "active"; + pinctrl-0 = <0x170>; + clock-names = "pwm\0pclk"; + interrupts = <0x00 0x15c 0x04 0x00 0x15d 0x04>; + clocks = <0x02 0x57 0x02 0x56>; + #pwm-cells = <0x03>; + compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; + status = "disabled"; + reg = <0x00 0xfebe0030 0x00 0x10>; + phandle = <0x2d8>; + }; + + display-subsystem { + memory-region-names = "drm-logo"; + clock-names = "hdmi0_phy_pll\0hdmi1_phy_pll"; + ports = <0x34>; + memory-region = <0x37>; + clocks = <0x35 0x36>; + compatible = "rockchip,display-subsystem"; + phandle = <0x215>; + + route { + + route-edp1 { + logo,kernel = "logo_kernel.bmp"; + logo,uboot = "logo.bmp"; + charge_logo,mode = "center"; + logo,mode = "center"; + status = "disabled"; + phandle = <0x21a>; + }; + + route-hdmi1 { + logo,kernel = "logo_kernel.bmp"; + logo,uboot = "logo.bmp"; + charge_logo,mode = "center"; + connect = <0x3f>; + logo,mode = "center"; + status = "disabled"; + phandle = <0x21e>; + }; + + route-dp1 { + logo,kernel = "logo_kernel.bmp"; + logo,uboot = "logo.bmp"; + charge_logo,mode = "center"; + connect = <0x3e>; + logo,mode = "center"; + status = "disabled"; + phandle = <0x21d>; + }; + + route-dsi1 { + logo,kernel = "logo_kernel.bmp"; + logo,uboot = "logo.bmp"; + charge_logo,mode = "center"; + connect = <0x3a>; + logo,mode = "center"; + status = "disabled"; + phandle = <0x218>; + }; + + route-edp0 { + logo,kernel = "logo_kernel.bmp"; + logo,uboot = "logo.bmp"; + charge_logo,mode = "center"; + connect = <0x3b>; + logo,mode = "center"; + status = "disabled"; + phandle = <0x219>; + }; + + route-hdmi0 { + logo,kernel = "logo_kernel.bmp"; + logo,uboot = "logo.bmp"; + charge_logo,mode = "center"; + connect = <0x3c>; + logo,mode = "center"; + status = "okay"; + phandle = <0x21b>; + }; + + route-dp0 { + logo,kernel = "logo_kernel.bmp"; + logo,uboot = "logo.bmp"; + charge_logo,mode = "center"; + connect = <0x38>; + logo,mode = "center"; + status = "disabled"; + phandle = <0x216>; + }; + + route-rgb { + logo,kernel = "logo_kernel.bmp"; + logo,uboot = "logo.bmp"; + charge_logo,mode = "center"; + connect = <0x3d>; + logo,mode = "center"; + status = "disabled"; + phandle = <0x21c>; + }; + + route-dsi0 { + logo,kernel = "logo_kernel.bmp"; + logo,uboot = "logo.bmp"; + charge_logo,mode = "center"; + connect = <0x39>; + logo,mode = "center"; + status = "disabled"; + phandle = <0x217>; + }; + }; + }; + + serial@febc0000 { + reg-io-width = <0x04>; + pinctrl-names = "default"; + pinctrl-0 = <0x168>; + clock-names = "baudclk\0apb_pclk"; + interrupts = <0x00 0x154 0x04>; + clocks = <0x02 0xd7 0x02 0xb3>; + compatible = "rockchip,rk3588-uart\0snps,dw-apb-uart"; + status = "disabled"; + reg = <0x00 0xfebc0000 0x00 0x100>; + phandle = <0x2d1>; + dmas = <0xf2 0x0b 0xf2 0x0c>; + reg-shift = <0x02>; + }; + + adc-keys { + io-channels = <0x1d9 0x01>; + poll-interval = <0x64>; + keyup-threshold-microvolt = <0x1b7740>; + compatible = "adc-keys"; + status = "okay"; + phandle = <0x49e>; + io-channel-names = "buttons"; + + recovery-key { + press-threshold-microvolt = <0x4268>; + label = "F12"; + linux,code = <0x58>; + }; + }; + + pvtm@fdaf0000 { + #address-cells = <0x01>; + #size-cells = <0x00>; + compatible = "rockchip,rk3588-npu-pvtm"; + reg = <0x00 0xfdaf0000 0x00 0x100>; + + pvtm@3 { + clock-names = "clk\0pclk"; + resets = <0x02 0x1de 0x02 0x1dc>; + clocks = <0x02 0x12b 0x02 0x129>; + reg = <0x03>; + reset-names = "rts\0rst-p"; + }; + }; + + codec-digital@fe500000 { + power-domains = <0x60 0x26>; + pinctrl-names = "default"; + pinctrl-0 = <0x144>; + clock-names = "dac\0pclk"; + resets = <0x02 0x84>; + clocks = <0x02 0x29 0x02 0x2f>; + #sound-dai-cells = <0x00>; + compatible = "rockchip,rk3588-codec-digital\0rockchip,codec-digital-v1"; + status = "disabled"; + rockchip,grf = <0xc8>; + reg = <0x00 0xfe500000 0x00 0x1000>; + phandle = <0x29e>; + reset-names = "reset"; + rockchip,pwm-output-mode; + }; + + pwm@fd8b0020 { + pinctrl-names = "active"; + pinctrl-0 = <0x80>; + clock-names = "pwm\0pclk"; + interrupts = <0x00 0x158 0x04>; + clocks = <0x02 0x2a5 0x02 0x2a4>; + #pwm-cells = <0x03>; + compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; + status = "disabled"; + reg = <0x00 0xfd8b0020 0x00 0x10>; + phandle = <0x263>; + }; + + rkcif-mipi-lvds2 { + iommus = <0x50>; + rockchip,hw = <0x4f>; + compatible = "rockchip,rkcif-mipi-lvds"; + status = "okay"; + phandle = <0x55>; + + port { + + endpoint { + remote-endpoint = <0x54>; + phandle = <0x4e>; + }; + }; + }; + + pwm@febe0020 { + pinctrl-names = "active"; + pinctrl-0 = <0x16f>; + clock-names = "pwm\0pclk"; + interrupts = <0x00 0x15c 0x04>; + clocks = <0x02 0x57 0x02 0x56>; + #pwm-cells = <0x03>; + compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; + status = "disabled"; + reg = <0x00 0xfebe0020 0x00 0x10>; + phandle = <0x2d7>; + }; + + vcc-fan-pwr-en-regulator { + regulator-boot-on; + gpio = <0x182 0x0b 0x00>; + regulator-always-on; + enable-active-high; + regulator-name = "vcc_fan_pwr_en"; + compatible = "regulator-fixed"; + status = "disabled"; + phandle = <0x4a4>; + }; + + iommu@fdba0800 { + power-domains = <0x60 0x15>; + clock-names = "aclk\0iface"; + interrupts = <0x00 0x79 0x04>; + clocks = <0x02 0x1ac 0x02 0x1ad>; + #iommu-cells = <0x00>; + compatible = "rockchip,iommu-v2"; + status = "okay"; + interrupt-names = "irq_jpege0_mmu"; + reg = <0x00 0xfdba0800 0x00 0x40>; + phandle = <0xbc>; + }; + + rkcif-mipi-lvds1-sditf-vir2 { + compatible = "rockchip,rkcif-sditf"; + status = "disabled"; + rockchip,cif = <0x53>; + phandle = <0x231>; + }; + + arm-pmu { + interrupt-affinity = <0x06 0x07 0x08 0x09 0x0a 0x0b 0x0c 0x0d>; + interrupts = <0x01 0x07 0x08>; + compatible = "arm,armv8-pmuv3"; + phandle = <0x20c>; + }; + + pvtm@fda40000 { + #address-cells = <0x01>; + #size-cells = <0x00>; + compatible = "rockchip,rk3588-bigcore0-pvtm"; + reg = <0x00 0xfda40000 0x00 0x100>; + + pvtm@0 { + clock-names = "clk\0pclk"; + clocks = <0x02 0x2c6 0x02 0x15>; + reg = <0x00>; + }; + }; + + pwm@fd8b0010 { + pinctrl-names = "active"; + pinctrl-0 = <0x7f>; + clock-names = "pwm\0pclk"; + interrupts = <0x00 0x158 0x04>; + clocks = <0x02 0x2a5 0x02 0x2a4>; + #pwm-cells = <0x03>; + compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; + status = "disabled"; + reg = <0x00 0xfd8b0010 0x00 0x10>; + phandle = <0x262>; + }; + + i2s@fddc0000 { + power-domains = <0x60 0x19>; + clock-names = "mclk_tx\0mclk_rx\0hclk"; + assigned-clocks = <0x02 0x1f9>; + assigned-clock-parents = <0x02 0x05>; + resets = <0x02 0x38d>; + interrupts = <0x00 0xb8 0x04>; + clocks = <0x02 0x1fb 0x02 0x1fb 0x02 0x1f0>; + dma-names = "tx"; + #sound-dai-cells = <0x00>; + compatible = "rockchip,rk3588-i2s-tdm"; + rockchip,playback-only; + status = "disabled"; + reg = <0x00 0xfddc0000 0x00 0x1000>; + phandle = <0x27d>; + dmas = <0xf2 0x00>; + reset-names = "tx-m"; + }; + + qos@fdf61400 { + compatible = "syscon"; + reg = <0x00 0xfdf61400 0x00 0x20>; + phandle = <0x92>; + }; + + syscon@fd5d4000 { + #address-cells = <0x01>; + #size-cells = <0x01>; + compatible = "rockchip,rk3588-usb2phy-grf\0syscon\0simple-mfd"; + reg = <0x00 0xfd5d4000 0x00 0x4000>; + phandle = <0x1c8>; + + usb2-phy@4000 { + clock-output-names = "usb480m_phy1"; + clock-names = "phyclk"; + resets = <0x02 0xc0048 0x02 0x489>; + interrupts = <0x00 0x18a 0x04>; + clocks = <0x02 0x2b5>; + #clock-cells = <0x00>; + rockchip,usbctrl-grf = <0x74>; + compatible = "rockchip,rk3588-usb2phy"; + status = "okay"; + reg = <0x4000 0x10>; + phandle = <0x1ca>; + reset-names = "phy\0apb"; + + otg-port { + phy-supply = <0x75>; + #phy-cells = <0x00>; + status = "okay"; + phandle = <0x1a3>; + }; + }; + }; + + rkisp0-vir1 { + rockchip,hw = <0x58>; + compatible = "rockchip,rkisp-vir"; + status = "disabled"; + phandle = <0x23c>; + }; + + pwm@febe0010 { + pinctrl-names = "active"; + pinctrl-0 = <0x16e>; + clock-names = "pwm\0pclk"; + interrupts = <0x00 0x15c 0x04>; + clocks = <0x02 0x57 0x02 0x56>; + #pwm-cells = <0x03>; + compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; + status = "disabled"; + reg = <0x00 0xfebe0010 0x00 0x10>; + phandle = <0x2d6>; + }; + + thermal-zones { + phandle = <0x248>; + + bigcore1-thermal { + polling-delay = <0x3e8>; + polling-delay-passive = <0x14>; + thermal-sensors = <0x5d 0x02>; + phandle = <0x24d>; + }; + + soc-thermal { + polling-delay = <0x3e8>; + polling-delay-passive = <0x14>; + thermal-sensors = <0x5d 0x00>; + sustainable-power = <0x834>; + phandle = <0x249>; + + trips { + + trip-point-0 { + temperature = <0x124f8>; + hysteresis = <0x7d0>; + type = "passive"; + phandle = <0x24a>; + }; + + trip-point-1 { + temperature = <0x14c08>; + hysteresis = <0x7d0>; + type = "passive"; + phandle = <0x5e>; + }; + + soc-crit { + temperature = <0x1c138>; + hysteresis = <0x7d0>; + type = "critical"; + phandle = <0x24b>; + }; + }; + + cooling-maps { + + map2 { + trip = <0x5e>; + cooling-device = <0x0c 0xffffffff 0xffffffff>; + contribution = <0x400>; + }; + + map0 { + trip = <0x5e>; + cooling-device = <0x06 0xffffffff 0xffffffff>; + contribution = <0x400>; + }; + + map3 { + trip = <0x5e>; + cooling-device = <0x5f 0xffffffff 0xffffffff>; + contribution = <0x400>; + }; + + map1 { + trip = <0x5e>; + cooling-device = <0x0a 0xffffffff 0xffffffff>; + contribution = <0x400>; + }; + }; + }; + + npu-thermal { + polling-delay = <0x3e8>; + polling-delay-passive = <0x14>; + thermal-sensors = <0x5d 0x06>; + phandle = <0x251>; + }; + + center-thermal { + polling-delay = <0x3e8>; + polling-delay-passive = <0x14>; + thermal-sensors = <0x5d 0x04>; + phandle = <0x24f>; + }; + + gpu-thermal { + polling-delay = <0x3e8>; + polling-delay-passive = <0x14>; + thermal-sensors = <0x5d 0x05>; + phandle = <0x250>; + }; + + littlecore-thermal { + polling-delay = <0x3e8>; + polling-delay-passive = <0x14>; + thermal-sensors = <0x5d 0x03>; + phandle = <0x24e>; + }; + + bigcore0-thermal { + polling-delay = <0x3e8>; + polling-delay-passive = <0x14>; + thermal-sensors = <0x5d 0x01>; + phandle = <0x24c>; + }; + }; + + iommu@fdbdf000 { + power-domains = <0x60 0x10>; + rockchip,shootdown-entire; + clock-names = "aclk\0iface"; + interrupts = <0x00 0x63 0x04 0x00 0x64 0x04>; + clocks = <0x02 0x1c5 0x02 0x1c4>; + rockchip,enable-cmd-retry; + #iommu-cells = <0x00>; + compatible = "rockchip,iommu-v2"; + rockchip,disable-mmu-reset; + status = "okay"; + interrupt-names = "irq_rkvenc0_mmu0\0irq_rkvenc0_mmu1"; + reg = <0x00 0xfdbdf000 0x00 0x40 0x00 0xfdbdf040 0x00 0x40>; + phandle = <0xc2>; + }; + + serial@feb50000 { + reg-io-width = <0x04>; + pinctrl-names = "default"; + pinctrl-0 = <0x161>; + clock-names = "baudclk\0apb_pclk"; + interrupts = <0x00 0x14d 0x04>; + clocks = <0x02 0xbb 0x02 0xac>; + compatible = "rockchip,rk3588-uart\0snps,dw-apb-uart"; + status = "disabled"; + reg = <0x00 0xfeb50000 0x00 0x100>; + phandle = <0x2ca>; + dmas = <0x7c 0x0a 0x7c 0x0b>; + reg-shift = <0x02>; + }; + + iommu@fdcd0f00 { + power-domains = <0x60 0x1d>; + clock-names = "aclk\0iface\0pclk"; + interrupts = <0x00 0x8c 0x04>; + clocks = <0x02 0x1d5 0x02 0x1d6 0x02 0x1d7>; + #iommu-cells = <0x00>; + compatible = "rockchip,iommu-v2"; + rockchip,disable-mmu-reset; + status = "disabled"; + interrupt-names = "fec0_mmu"; + reg = <0x00 0xfdcd0f00 0x00 0x100>; + phandle = <0xd2>; + }; + + vcc5v0-host { + regulator-max-microvolt = <0x4c4b40>; + regulator-boot-on; + gpio = <0x182 0x02 0x00>; + regulator-always-on; + enable-active-high; + regulator-min-microvolt = <0x4c4b40>; + regulator-name = "vcc5v0_host"; + compatible = "regulator-fixed"; + status = "okay"; + phandle = <0x75>; + vin-supply = <0x1dd>; + }; + + qos@fdf66a00 { + compatible = "syscon"; + reg = <0x00 0xfdf66a00 0x00 0x20>; + phandle = <0x98>; + }; + + phy@fed90000 { + clock-names = "refclk\0immortal\0pclk\0utmi"; + resets = <0x02 0x2f 0x02 0x30 0x02 0x31 0x02 0x32 0x02 0x484>; + clocks = <0x02 0x2b6 0x02 0x280 0x02 0x26a 0x1ca>; + compatible = "rockchip,rk3588-usbdp-phy"; + status = "okay"; + rockchip,dp-lane-mux = <0x02 0x03>; + reg = <0x00 0xfed90000 0x00 0x10000>; + phandle = <0x48b>; + rockchip,usb-grf = <0x74>; + reset-names = "init\0cmn\0lane\0pcs_apb\0pma_apb"; + rockchip,u2phy-grf = <0x1c8>; + rockchip,usbdpphy-grf = <0x1c9>; + rockchip,vo-grf = <0xf5>; + + dp-port { + #phy-cells = <0x00>; + status = "okay"; + phandle = <0x1a5>; + }; + + u3-port { + #phy-cells = <0x00>; + status = "okay"; + phandle = <0x1a4>; + }; + }; + + jpege-core@fdba0000 { + power-domains = <0x60 0x15>; + iommus = <0xbc>; + rockchip,ccu = <0xbd>; + clock-names = "aclk_vcodec\0hclk_vcodec"; + assigned-clocks = <0x02 0x1ac>; + rockchip,normal-rates = <0x2367b880 0x00>; + assigned-clock-rates = <0x2367b880>; + resets = <0x02 0x2ca 0x02 0x2cb>; + interrupts = <0x00 0x7a 0x04>; + clocks = <0x02 0x1ac 0x02 0x1ad>; + rockchip,srv = <0xb8>; + rockchip,taskqueue-node = <0x02>; + rockchip,disable-auto-freq; + compatible = "rockchip,vpu-jpege-core"; + status = "okay"; + interrupt-names = "irq_jpege0"; + rockchip,skip-pmu-idle-request; + reg = <0x00 0xfdba0000 0x00 0x400>; + phandle = <0x26d>; + reset-names = "video_a\0video_h"; + }; + + vcc5v0-sys { + regulator-max-microvolt = <0x4c4b40>; + regulator-boot-on; + regulator-always-on; + regulator-min-microvolt = <0x4c4b40>; + regulator-name = "vcc5v0_sys"; + compatible = "regulator-fixed"; + phandle = <0x78>; + vin-supply = <0x1cd>; + }; + + pwm@fd8b0000 { + pinctrl-names = "active"; + pinctrl-0 = <0x7e>; + clock-names = "pwm\0pclk"; + interrupts = <0x00 0x158 0x04>; + clocks = <0x02 0x2a5 0x02 0x2a4>; + #pwm-cells = <0x03>; + compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; + status = "disabled"; + reg = <0x00 0xfd8b0000 0x00 0x10>; + phandle = <0x261>; + }; + + vop@fdd90000 { + power-domains = <0x60 0x18>; + iommus = <0xd6>; + rockchip,vop-grf = <0xd7>; + clock-names = "aclk_vop\0hclk_vop\0dclk_vp0\0dclk_vp1\0dclk_vp2\0dclk_vp3\0pclk_vop\0dclk_src_vp0\0dclk_src_vp1\0dclk_src_vp2"; + reg-names = "regs\0gamma_lut"; + assigned-clocks = <0x02 0x270>; + assigned-clock-rates = <0x2cb41780>; + resets = <0x02 0x349 0x02 0x348 0x02 0x34d 0x02 0x350 0x02 0x351 0x02 0x352>; + interrupts = <0x00 0x9c 0x04>; + clocks = <0x02 0x270 0x02 0x26f 0x02 0x274 0x02 0x275 0x02 0x276 0x02 0x277 0x02 0x26e 0x02 0x271 0x02 0x272 0x02 0x273>; + compatible = "rockchip,rk3588-vop"; + rockchip,pmu = <0xd9>; + status = "okay"; + rockchip,grf = <0xc8>; + reg = <0x00 0xfdd90000 0x00 0x4200 0x00 0xfdd95000 0x00 0x1000>; + phandle = <0x278>; + rockchip,vo1-grf = <0xd8>; + reset-names = "axi\0ahb\0dclk_vp0\0dclk_vp1\0dclk_vp2\0dclk_vp3"; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + phandle = <0x34>; + + port@0 { + rockchip,primary-plane = <0x02>; + rockchip,plane-mask = <0x05>; + #address-cells = <0x01>; + assigned-clocks = <0x02 0x270>; + assigned-clock-rates = <0x2faf0800>; + #size-cells = <0x00>; + reg = <0x00>; + phandle = <0x279>; + + endpoint@5 { + remote-endpoint = <0xdf>; + reg = <0x05>; + phandle = <0x1ad>; + }; + + endpoint@3 { + remote-endpoint = <0xdd>; + reg = <0x03>; + phandle = <0x1a6>; + }; + + endpoint@1 { + remote-endpoint = <0xdb>; + reg = <0x01>; + phandle = <0x102>; + }; + + endpoint@4 { + remote-endpoint = <0xde>; + reg = <0x04>; + phandle = <0x1b0>; + }; + + endpoint@2 { + remote-endpoint = <0xdc>; + reg = <0x02>; + phandle = <0x3c>; + }; + + endpoint@0 { + remote-endpoint = <0xda>; + reg = <0x00>; + phandle = <0xf7>; + }; + }; + + port@3 { + rockchip,primary-plane = <0x09>; + rockchip,plane-mask = <0x280>; + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x03>; + phandle = <0x27c>; + + endpoint@1 { + remote-endpoint = <0xef>; + reg = <0x01>; + phandle = <0x3a>; + }; + + endpoint@2 { + remote-endpoint = <0xf0>; + reg = <0x02>; + phandle = <0x3d>; + }; + + endpoint@0 { + remote-endpoint = <0xee>; + reg = <0x00>; + phandle = <0x39>; + }; + }; + + port@1 { + rockchip,primary-plane = <0x03>; + rockchip,plane-mask = <0x0a>; + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x01>; + phandle = <0x27a>; + + endpoint@5 { + remote-endpoint = <0xe5>; + reg = <0x05>; + phandle = <0x3f>; + }; + + endpoint@3 { + remote-endpoint = <0xe3>; + reg = <0x03>; + phandle = <0x3e>; + }; + + endpoint@1 { + remote-endpoint = <0xe1>; + reg = <0x01>; + phandle = <0x103>; + }; + + endpoint@4 { + remote-endpoint = <0xe4>; + reg = <0x04>; + phandle = <0x1b1>; + }; + + endpoint@2 { + remote-endpoint = <0xe2>; + reg = <0x02>; + phandle = <0xff>; + }; + + endpoint@0 { + remote-endpoint = <0xe0>; + reg = <0x00>; + phandle = <0x38>; + }; + }; + + port@2 { + rockchip,primary-plane = <0x08>; + rockchip,plane-mask = <0x140>; + #address-cells = <0x01>; + assigned-clocks = <0x02 0x273>; + assigned-clock-parents = <0x02 0x04>; + #size-cells = <0x00>; + reg = <0x02>; + phandle = <0x27b>; + + endpoint@5 { + remote-endpoint = <0xeb>; + reg = <0x05>; + phandle = <0x1a7>; + }; + + endpoint@3 { + remote-endpoint = <0xe9>; + reg = <0x03>; + phandle = <0xf3>; + }; + + endpoint@1 { + remote-endpoint = <0xe7>; + reg = <0x01>; + phandle = <0x3b>; + }; + + endpoint@6 { + remote-endpoint = <0xec>; + reg = <0x06>; + phandle = <0x1b2>; + }; + + endpoint@4 { + remote-endpoint = <0xea>; + reg = <0x04>; + phandle = <0xf4>; + }; + + endpoint@2 { + remote-endpoint = <0xe8>; + reg = <0x02>; + phandle = <0x100>; + }; + + endpoint@0 { + remote-endpoint = <0xe6>; + reg = <0x00>; + phandle = <0xf8>; + }; + + endpoint@7 { + remote-endpoint = <0xed>; + reg = <0x07>; + phandle = <0x1ae>; + }; + }; + }; + }; + + csi2-dphy1 { + rockchip,hw = <0x2d 0x2e>; + phy-names = "dcphy0\0dcphy1"; + compatible = "rockchip,rk3588-csi2-dphy"; + status = "disabled"; + phys = <0x2f 0x30>; + phandle = <0x210>; + }; + + pwm@febe0000 { + pinctrl-names = "active"; + pinctrl-0 = <0x16d>; + clock-names = "pwm\0pclk"; + interrupts = <0x00 0x15c 0x04>; + clocks = <0x02 0x57 0x02 0x56>; + #pwm-cells = <0x03>; + compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; + status = "disabled"; + reg = <0x00 0xfebe0000 0x00 0x10>; + phandle = <0x2d5>; + }; + + clocks { + #address-cells = <0x02>; + #size-cells = <0x02>; + compatible = "simple-bus"; + ranges; + + hclk_nvm@fd7c087c { + clock-names = "link"; + clocks = <0x02 0x141>; + #clock-cells = <0x00>; + #power-domain-cells = <0x01>; + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c087c 0x00 0x10>; + phandle = <0x03>; + }; + + mclkin-i2s0 { + clock-output-names = "i2s0_mclkin"; + #clock-cells = <0x00>; + clock-frequency = <0x00>; + compatible = "fixed-clock"; + phandle = <0x204>; + }; + + hclk_rkvenc1_pre@fd7c08c0 { + clock-names = "link"; + clocks = <0x02 0x1c4>; + #clock-cells = <0x00>; + #power-domain-cells = <0x01>; + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c08c0 0x00 0x10>; + phandle = <0x1fe>; + }; + + mclkout-i2s1@fd58c318 { + rockchip,clk-ignore-unused; + clock-output-names = "i2s1_mclkout_to_io"; + clocks = <0x02 0x291>; + rockchip,bit-set-to-disable; + #clock-cells = <0x00>; + compatible = "rockchip,clk-out"; + reg = <0x00 0xfd58c318 0x00 0x04>; + phandle = <0x208>; + rockchip,bit-shift = <0x01>; + }; + + mclkout-i2s1@fd58a000 { + rockchip,clk-ignore-unused; + clock-output-names = "i2s1m1_mclkout_to_io"; + clocks = <0x02 0x291>; + #clock-cells = <0x00>; + compatible = "rockchip,clk-out"; + reg = <0x00 0xfd58a000 0x00 0x04>; + phandle = <0x209>; + rockchip,bit-shift = <0x06>; + }; + + aclk_hdcp0_pre@fd7c08dc { + clock-names = "link"; + clocks = <0x02 0x26c>; + #clock-cells = <0x00>; + #power-domain-cells = <0x01>; + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c08dc 0x00 0x10>; + phandle = <0x1ff>; + }; + + xin32k { + clock-output-names = "xin32k"; + #clock-cells = <0x00>; + clock-frequency = <0x8000>; + compatible = "fixed-clock"; + phandle = <0x1f2>; + }; + + aclk_usb@fd7c08a8 { + clock-names = "link"; + clocks = <0x02 0x263>; + #clock-cells = <0x00>; + #power-domain-cells = <0x01>; + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c08a8 0x00 0x10>; + phandle = <0x6a>; + }; + + hclk_usb@fd7c08a8 { + clock-names = "link"; + clocks = <0x02 0x264>; + #clock-cells = <0x00>; + #power-domain-cells = <0x01>; + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c08a8 0x00 0x10>; + phandle = <0x1f5>; + }; + + hclk_vo0@fd7c08dc { + clock-names = "link"; + clocks = <0x02 0x26d>; + #clock-cells = <0x00>; + #power-domain-cells = <0x01>; + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c08dc 0x00 0x10>; + phandle = <0x04>; + }; + + pclk_av1_pre@fd7c0910 { + clock-names = "link"; + clocks = <0x02 0x1be>; + #clock-cells = <0x00>; + #power-domain-cells = <0x01>; + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c0910 0x00 0x10>; + phandle = <0x201>; + }; + + mclkout-i2s2@fd58c318 { + rockchip,clk-ignore-unused; + clock-output-names = "i2s2_mclkout_to_io"; + clocks = <0x02 0x28>; + rockchip,bit-set-to-disable; + #clock-cells = <0x00>; + compatible = "rockchip,clk-out"; + reg = <0x00 0xfd58c318 0x00 0x04>; + phandle = <0x20a>; + rockchip,bit-shift = <0x02>; + }; + + aclk_vdpu_low_pre@fd7c08b0 { + clock-names = "link"; + clocks = <0x02 0x1bc>; + #clock-cells = <0x00>; + #power-domain-cells = <0x01>; + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c08b0 0x00 0x10>; + phandle = <0x1f4>; + }; + + mclkin-i2s3 { + clock-output-names = "i2s3_mclkin"; + #clock-cells = <0x00>; + clock-frequency = <0x00>; + compatible = "fixed-clock"; + phandle = <0x207>; + }; + + spll { + clock-output-names = "spll"; + #clock-cells = <0x00>; + clock-frequency = <0x29d7ab80>; + compatible = "fixed-clock"; + phandle = <0x1f1>; + }; + + xin24m { + clock-output-names = "xin24m"; + #clock-cells = <0x00>; + clock-frequency = <0x16e3600>; + compatible = "fixed-clock"; + phandle = <0x1f3>; + }; + + aclk_av1_pre@fd7c0910 { + clock-names = "link"; + clocks = <0x02 0x1bc>; + #clock-cells = <0x00>; + #power-domain-cells = <0x01>; + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c0910 0x00 0x10>; + phandle = <0x202>; + }; + + pclk_vo0_grf@fd7c08dc { + clock-names = "link"; + clocks = <0x04>; + #clock-cells = <0x00>; + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c08dc 0x00 0x04>; + phandle = <0x72>; + }; + + aclk_jpeg_decoder_pre@fd7c08b0 { + clock-names = "link"; + clocks = <0x02 0x1bc>; + #clock-cells = <0x00>; + #power-domain-cells = <0x01>; + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c08b0 0x00 0x10>; + phandle = <0x1fc>; + }; + + aclk_hdcp1_pre@fd7c08ec { + clock-names = "link"; + clocks = <0x02 0x263>; + #clock-cells = <0x00>; + #power-domain-cells = <0x01>; + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c08ec 0x00 0x10>; + phandle = <0x200>; + }; + + mclkin-i2s1 { + clock-output-names = "i2s1_mclkin"; + #clock-cells = <0x00>; + clock-frequency = <0x00>; + compatible = "fixed-clock"; + phandle = <0x205>; + }; + + hclk_vo1@fd7c08ec { + clock-names = "link"; + clocks = <0x02 0x264>; + #clock-cells = <0x00>; + #power-domain-cells = <0x01>; + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c08ec 0x00 0x10>; + phandle = <0x05>; + }; + + mclkout-i2s3@fd58c318 { + rockchip,clk-ignore-unused; + clock-output-names = "i2s3_mclkout_to_io"; + clocks = <0x02 0x2e>; + rockchip,bit-set-to-disable; + #clock-cells = <0x00>; + compatible = "rockchip,clk-out"; + reg = <0x00 0xfd58c318 0x00 0x04>; + phandle = <0x20b>; + rockchip,bit-shift = <0x07>; + }; + + aclk_rkvdec0_pre@fd7c08a0 { + clock-names = "link"; + clocks = <0x02 0x1bc>; + #clock-cells = <0x00>; + #power-domain-cells = <0x01>; + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c08a0 0x00 0x10>; + phandle = <0x1f8>; + }; + + aclk_isp1_pre@fd7c0868 { + clock-names = "link"; + clocks = <0x02 0x1e0>; + #clock-cells = <0x00>; + #power-domain-cells = <0x01>; + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c0868 0x00 0x10>; + phandle = <0x1f7>; + }; + + pclk_vo1_grf@fd7c08ec { + clock-names = "link"; + clocks = <0x05>; + #clock-cells = <0x00>; + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c08ec 0x00 0x04>; + phandle = <0x73>; + }; + + aclk_rkvdec1_pre@fd7c08a4 { + clock-names = "link"; + clocks = <0x02 0x1bc>; + #clock-cells = <0x00>; + #power-domain-cells = <0x01>; + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c08a4 0x00 0x10>; + phandle = <0x1fa>; + }; + + hclk_rkvdec0_pre@fd7c08a0 { + clock-names = "link"; + clocks = <0x02 0x1be>; + #clock-cells = <0x00>; + #power-domain-cells = <0x01>; + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c08a0 0x00 0x10>; + phandle = <0x1f9>; + }; + + hclk_sdio_pre@fd7c092c { + clock-names = "link"; + clocks = <0x03>; + #clock-cells = <0x00>; + #power-domain-cells = <0x01>; + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c092c 0x00 0x10>; + phandle = <0x203>; + }; + + hclk_rkvdec1_pre@fd7c08a4 { + clock-names = "link"; + clocks = <0x02 0x1be>; + #clock-cells = <0x00>; + #power-domain-cells = <0x01>; + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c08a4 0x00 0x10>; + phandle = <0x1fb>; + }; + + hclk_isp1_pre@fd7c0868 { + clock-names = "link"; + clocks = <0x02 0x1e1>; + #clock-cells = <0x00>; + #power-domain-cells = <0x01>; + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c0868 0x00 0x10>; + phandle = <0x1f6>; + }; + + mclkout-i2s0@fd58c318 { + rockchip,clk-ignore-unused; + clock-output-names = "i2s0_mclkout_to_io"; + clocks = <0x02 0x39>; + rockchip,bit-set-to-disable; + #clock-cells = <0x00>; + compatible = "rockchip,clk-out"; + reg = <0x00 0xfd58c318 0x00 0x04>; + phandle = <0x179>; + rockchip,bit-shift = <0x00>; + }; + + mclkin-i2s2 { + clock-output-names = "i2s2_mclkin"; + #clock-cells = <0x00>; + clock-frequency = <0x00>; + compatible = "fixed-clock"; + phandle = <0x206>; + }; + + aclk_rkvenc1_pre@fd7c08c0 { + clock-names = "link"; + clocks = <0x02 0x1c5>; + #clock-cells = <0x00>; + #power-domain-cells = <0x01>; + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c08c0 0x00 0x10>; + phandle = <0x1fd>; + }; + }; + + usb@fc8c0000 { + power-domains = <0x60 0x1f>; + phy-names = "usb2-phy"; + clock-names = "usbhost\0arbiter\0utmi\0alk_usb"; + interrupts = <0x00 0xdb 0x04>; + clocks = <0x02 0x19f 0x02 0x1a0 0x6d 0x6a>; + compatible = "rockchip,rk3588-ohci\0generic-ohci"; + status = "okay"; + phys = <0x6f>; + reg = <0x00 0xfc8c0000 0x00 0x40000>; + phandle = <0x6e>; + }; + + qos@fdf40000 { + compatible = "syscon"; + reg = <0x00 0xfdf40000 0x00 0x20>; + phandle = <0xa8>; + }; + + mipi0-csi2 { + rockchip,hw = <0x47 0x48 0x49 0x4a 0x4b 0x4c>; + compatible = "rockchip,rk3588-mipi-csi2"; + status = "disabled"; + phandle = <0x224>; + }; + + cluster1-opp-table { + rockchip,pvtm-offset = <0x18>; + rockchip,pvtm-sample-time = <0x44c>; + rockchip,pvtm-hw = <0x06>; + nvmem-cells = <0x24 0x25 0x21>; + rockchip,low-temp = <0x2710>; + rockchip,pvtm-voltage-sel-hw = <0x00 0x603 0x00 0x604 0x61c 0x01 0x61d 0x635 0x02 0x636 0x64e 0x03 0x64f 0x66c 0x04 0x66d 0x68a 0x05 0x68b 0x6a8 0x06 0x6a9 0x270f 0x07>; + rockchip,pvtm-thermal-zone = "soc-thermal"; + rockchip,pvtm-low-len-sel = <0x03>; + rockchip,high-temp-max-freq = <0x21b100>; + opp-shared; + rockchip,reboot-freq = <0x1b7740>; + rockchip,pvtm-freq = <0x188940>; + rockchip,pvtm-ref-temp = <0x19>; + low-volt-mem-read-margin = <0x04>; + volt-mem-read-margin = <0xd0bd8 0x01 0xbac48 0x02 0xa4cb8 0x03 0x78d98 0x04>; + compatible = "operating-points-v2"; + rockchip,low-temp-min-volt = <0xb71b0>; + rockchip,grf = <0x26>; + nvmem-cell-names = "leakage\0opp-info\0specification_serial_number"; + rockchip,pvtm-voltage-sel = <0x00 0x63b 0x00 0x63c 0x64f 0x01 0x650 0x668 0x02 0x669 0x68b 0x03 0x68c 0x6ae 0x04 0x6af 0x6cf 0x05 0x6d0 0x6f0 0x06 0x6f1 0x270f 0x07>; + phandle = <0x16>; + rockchip,idle-threshold-freq = <0x21b100>; + rockchip,pvtm-temp-prop = <0x10e 0x10e>; + rockchip,temp-hysteresis = <0x1388>; + rockchip,high-temp = <0x14c08>; + rockchip,pvtm-pvtpll; + rockchip,supported-hw; + intermediate-threshold-freq = <0xf6180>; + rockchip,pvtm-volt = <0xb71b0>; + + opp-j-m-2016000000 { + opp-microvolt = <0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0>; + opp-microvolt-L6 = <0xd8acc 0xd8acc 0xe7ef0 0xd8acc 0xd8acc 0xe7ef0>; + opp-microvolt-L4 = <0xdec74 0xdec74 0xe7ef0 0xdec74 0xdec74 0xe7ef0>; + opp-microvolt-L2 = <0xe4e1c 0xe4e1c 0xe7ef0 0xe4e1c 0xe4e1c 0xe7ef0>; + opp-hz = <0x00 0x7829b800>; + opp-supported-hw = <0x06 0xffff>; + opp-microvolt-L7 = <0xd59f8 0xd59f8 0xe7ef0 0xd59f8 0xd59f8 0xe7ef0>; + opp-microvolt-L5 = <0xdbba0 0xdbba0 0xe7ef0 0xdbba0 0xdbba0 0xe7ef0>; + opp-microvolt-L3 = <0xe1d48 0xe1d48 0xe7ef0 0xe1d48 0xe1d48 0xe7ef0>; + clock-latency-ns = <0x9c40>; + opp-microvolt-L1 = <0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0>; + }; + + opp-1200000000 { + opp-microvolt = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; + opp-hz = <0x00 0x47868c00>; + opp-supported-hw = <0xf9 0xffff>; + clock-latency-ns = <0x9c40>; + }; + + opp-j-m-1416000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + opp-hz = <0x00 0x54667200>; + opp-microvolt-L0 = <0xba284 0xba284 0xe7ef0 0xba284 0xba284 0xe7ef0>; + opp-supported-hw = <0x06 0xffff>; + opp-suspend; + clock-latency-ns = <0x9c40>; + }; + + opp-1008000000 { + opp-microvolt = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; + opp-hz = <0x00 0x3c14dc00>; + opp-supported-hw = <0xf9 0xffff>; + clock-latency-ns = <0x9c40>; + }; + + opp-2256000000 { + opp-microvolt = <0xf4240 0xf4240 0xf4240 0xf4240 0xf4240 0xf4240>; + opp-hz = <0x00 0x8677d400>; + opp-supported-hw = <0xf9 0x13>; + clock-latency-ns = <0x9c40>; + }; + + opp-j-m-1200000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + opp-hz = <0x00 0x47868c00>; + opp-supported-hw = <0x06 0xffff>; + clock-latency-ns = <0x9c40>; + }; + + opp-j-m-1008000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + opp-hz = <0x00 0x3c14dc00>; + opp-supported-hw = <0x06 0xffff>; + clock-latency-ns = <0x9c40>; + }; + + opp-j-m-816000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + opp-hz = <0x00 0x30a32c00>; + opp-supported-hw = <0x06 0xffff>; + clock-latency-ns = <0x9c40>; + }; + + opp-2400000000 { + opp-microvolt = <0xf4240 0xf4240 0xf4240 0xf4240 0xf4240 0xf4240>; + opp-hz = <0x00 0x8f0d1800>; + opp-supported-hw = <0xf9 0x80>; + clock-latency-ns = <0x9c40>; + }; + + opp-1800000000 { + opp-microvolt = <0xcf850 0xcf850 0xf4240 0xcf850 0xcf850 0xf4240>; + opp-microvolt-L6 = <0xbd358 0xbd358 0xf4240 0xbd358 0xbd358 0xf4240>; + opp-microvolt-L4 = <0xc3500 0xc3500 0xf4240 0xc3500 0xc3500 0xf4240>; + opp-microvolt-L2 = <0xc96a8 0xc96a8 0xf4240 0xc96a8 0xc96a8 0xf4240>; + opp-hz = <0x00 0x6b49d200>; + opp-supported-hw = <0xf9 0xffff>; + opp-microvolt-L7 = <0xba284 0xba284 0xf4240 0xba284 0xba284 0xf4240>; + opp-microvolt-L5 = <0xc042c 0xc042c 0xf4240 0xc042c 0xc042c 0xf4240>; + opp-microvolt-L3 = <0xc65d4 0xc65d4 0xf4240 0xc65d4 0xc65d4 0xf4240>; + clock-latency-ns = <0x9c40>; + opp-microvolt-L1 = <0xcc77c 0xcc77c 0xf4240 0xcc77c 0xcc77c 0xf4240>; + }; + + opp-j-m-600000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + opp-hz = <0x00 0x23c34600>; + opp-supported-hw = <0x06 0xffff>; + clock-latency-ns = <0x9c40>; + }; + + opp-2208000000 { + opp-microvolt = <0xf116c 0xf116c 0xf4240 0xf116c 0xf116c 0xf4240>; + opp-microvolt-L6 = <0xe1d48 0xe1d48 0xf4240 0xe1d48 0xe1d48 0xf4240>; + opp-microvolt-L4 = <0xeafc4 0xeafc4 0xf4240 0xeafc4 0xeafc4 0xf4240>; + opp-microvolt-L2 = <0xeafc4 0xeafc4 0xf4240 0xeafc4 0xeafc4 0xf4240>; + opp-hz = <0x00 0x839b6800>; + opp-supported-hw = <0xf9 0xffff>; + opp-microvolt-L7 = <0xdec74 0xdec74 0xf4240 0xdec74 0xdec74 0xf4240>; + opp-microvolt-L5 = <0xe7ef0 0xe7ef0 0xf4240 0xe7ef0 0xe7ef0 0xf4240>; + opp-microvolt-L3 = <0xe7ef0 0xe7ef0 0xf4240 0xe7ef0 0xe7ef0 0xf4240>; + clock-latency-ns = <0x9c40>; + opp-microvolt-L1 = <0xee098 0xee098 0xf4240 0xee098 0xee098 0xf4240>; + }; + + opp-1608000000 { + opp-microvolt = <0xba284 0xba284 0xf4240 0xba284 0xba284 0xf4240>; + opp-microvolt-L6 = <0xaae60 0xaae60 0xf4240 0xaae60 0xaae60 0xf4240>; + opp-microvolt-L4 = <0xb1008 0xb1008 0xf4240 0xb1008 0xb1008 0xf4240>; + opp-microvolt-L2 = <0xb71b0 0xb71b0 0xf4240 0xb71b0 0xb71b0 0xf4240>; + opp-hz = <0x00 0x5fd82200>; + opp-supported-hw = <0xf9 0xffff>; + opp-microvolt-L7 = <0xaae60 0xaae60 0xf4240 0xaae60 0xaae60 0xf4240>; + opp-microvolt-L5 = <0xadf34 0xadf34 0xf4240 0xadf34 0xadf34 0xf4240>; + opp-microvolt-L3 = <0xb40dc 0xb40dc 0xf4240 0xb40dc 0xb40dc 0xf4240>; + clock-latency-ns = <0x9c40>; + }; + + opp-j-m-408000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + opp-hz = <0x00 0x18519600>; + opp-supported-hw = <0x06 0xffff>; + clock-latency-ns = <0x9c40>; + }; + + opp-j-m-1800000000 { + opp-microvolt = <0xd59f8 0xd59f8 0xe7ef0 0xd59f8 0xd59f8 0xe7ef0>; + opp-microvolt-L6 = <0xc3500 0xc3500 0xe7ef0 0xc3500 0xc3500 0xe7ef0>; + opp-microvolt-L4 = <0xc96a8 0xc96a8 0xe7ef0 0xc96a8 0xc96a8 0xe7ef0>; + opp-microvolt-L2 = <0xcf850 0xcf850 0xe7ef0 0xcf850 0xcf850 0xe7ef0>; + opp-hz = <0x00 0x6b49d200>; + opp-supported-hw = <0x06 0xffff>; + opp-microvolt-L7 = <0xc042c 0xc042c 0xe7ef0 0xc042c 0xc042c 0xe7ef0>; + opp-microvolt-L5 = <0xc65d4 0xc65d4 0xe7ef0 0xc65d4 0xc65d4 0xe7ef0>; + opp-microvolt-L3 = <0xcc77c 0xcc77c 0xe7ef0 0xcc77c 0xcc77c 0xe7ef0>; + clock-latency-ns = <0x9c40>; + opp-microvolt-L1 = <0xd2924 0xd2924 0xe7ef0 0xd2924 0xd2924 0xe7ef0>; + }; + + opp-2352000000 { + opp-microvolt = <0xf4240 0xf4240 0xf4240 0xf4240 0xf4240 0xf4240>; + opp-hz = <0x00 0x8c30ac00>; + opp-supported-hw = <0xf9 0x48>; + clock-latency-ns = <0x9c40>; + }; + + opp-816000000 { + opp-microvolt = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; + opp-hz = <0x00 0x30a32c00>; + opp-supported-hw = <0xf9 0xffff>; + clock-latency-ns = <0x9c40>; + }; + + opp-j-m-1608000000 { + opp-microvolt = <0xc042c 0xc042c 0xe7ef0 0xc042c 0xc042c 0xe7ef0>; + opp-microvolt-L6 = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + opp-microvolt-L4 = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + opp-microvolt-L2 = <0xbd358 0xbd358 0xe7ef0 0xbd358 0xbd358 0xe7ef0>; + opp-hz = <0x00 0x5fd82200>; + opp-supported-hw = <0x06 0xffff>; + opp-microvolt-L7 = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + opp-microvolt-L5 = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + opp-microvolt-L3 = <0xba284 0xba284 0xe7ef0 0xba284 0xba284 0xe7ef0>; + clock-latency-ns = <0x9c40>; + }; + + opp-600000000 { + opp-microvolt = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; + opp-hz = <0x00 0x23c34600>; + opp-supported-hw = <0xf9 0xffff>; + clock-latency-ns = <0x9c40>; + }; + + opp-2016000000 { + opp-microvolt = <0xe1d48 0xe1d48 0xf4240 0xe1d48 0xe1d48 0xf4240>; + opp-microvolt-L6 = <0xcf850 0xcf850 0xf4240 0xcf850 0xcf850 0xf4240>; + opp-microvolt-L4 = <0xd59f8 0xd59f8 0xf4240 0xd59f8 0xd59f8 0xf4240>; + opp-microvolt-L2 = <0xdbba0 0xdbba0 0xf4240 0xdbba0 0xdbba0 0xf4240>; + opp-hz = <0x00 0x7829b800>; + opp-supported-hw = <0xf9 0xffff>; + opp-microvolt-L7 = <0xcc77c 0xcc77c 0xf4240 0xcc77c 0xcc77c 0xf4240>; + opp-microvolt-L5 = <0xd2924 0xd2924 0xf4240 0xd2924 0xd2924 0xf4240>; + opp-microvolt-L3 = <0xd8acc 0xd8acc 0xf4240 0xd8acc 0xd8acc 0xf4240>; + clock-latency-ns = <0x9c40>; + opp-microvolt-L1 = <0xdec74 0xdec74 0xf4240 0xdec74 0xdec74 0xf4240>; + }; + + opp-1416000000 { + opp-microvolt = <0xb1008 0xb1008 0xf4240 0xb1008 0xb1008 0xf4240>; + opp-microvolt-L6 = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; + opp-microvolt-L4 = <0xaae60 0xaae60 0xf4240 0xaae60 0xaae60 0xf4240>; + opp-microvolt-L2 = <0xadf34 0xadf34 0xf4240 0xadf34 0xadf34 0xf4240>; + opp-hz = <0x00 0x54667200>; + opp-supported-hw = <0xf9 0xffff>; + opp-microvolt-L7 = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; + opp-microvolt-L5 = <0xa7d8c 0xa7d8c 0xf4240 0xa7d8c 0xa7d8c 0xf4240>; + opp-microvolt-L3 = <0xaae60 0xaae60 0xf4240 0xaae60 0xaae60 0xf4240>; + clock-latency-ns = <0x9c40>; + }; + + opp-408000000 { + opp-microvolt = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; + opp-hz = <0x00 0x18519600>; + opp-supported-hw = <0xf9 0xffff>; + opp-suspend; + clock-latency-ns = <0x9c40>; + }; + + opp-2304000000 { + opp-microvolt = <0xf4240 0xf4240 0xf4240 0xf4240 0xf4240 0xf4240>; + opp-hz = <0x00 0x89544000>; + opp-supported-hw = <0xf9 0x24>; + clock-latency-ns = <0x9c40>; + }; + }; + + mmc@fe2d0000 { + power-domains = <0x60 0x25>; + fifo-depth = <0x100>; + pinctrl-names = "default"; + pinctrl-0 = <0x119>; + clock-names = "biu\0ciu\0ciu-drive\0ciu-sample"; + interrupts = <0x00 0xcc 0x04>; + clocks = <0x02 0x199 0x02 0x19a 0x02 0x2c0 0x02 0x2c1>; + compatible = "rockchip,rk3588-dw-mshc\0rockchip,rk3288-dw-mshc"; + status = "disabled"; + reg = <0x00 0xfe2d0000 0x00 0x4000>; + phandle = <0x294>; + max-frequency = <0xbebc200>; + }; + + rkcif-mipi-lvds-sditf-vir3 { + compatible = "rockchip,rkcif-sditf"; + status = "disabled"; + rockchip,cif = <0x52>; + phandle = <0x22e>; + }; + + serial@feb90000 { + reg-io-width = <0x04>; + pinctrl-names = "default"; + pinctrl-0 = <0x165>; + clock-names = "baudclk\0apb_pclk"; + interrupts = <0x00 0x151 0x04>; + clocks = <0x02 0xcb 0x02 0xb0>; + compatible = "rockchip,rk3588-uart\0snps,dw-apb-uart"; + status = "okay"; + reg = <0x00 0xfeb90000 0x00 0x100>; + phandle = <0x2ce>; + dmas = <0xf1 0x0d 0xf1 0x0e>; + reg-shift = <0x02>; + }; + + i2s@fddf8000 { + power-domains = <0x60 0x1a>; + clock-names = "mclk_tx\0mclk_rx\0hclk"; + assigned-clocks = <0x02 0x239>; + assigned-clock-parents = <0x02 0x05>; + rockchip,capture-only; + resets = <0x02 0x3c3>; + interrupts = <0x00 0xbb 0x04>; + clocks = <0x02 0x23c 0x02 0x23c 0x02 0x238>; + dma-names = "rx"; + #sound-dai-cells = <0x00>; + compatible = "rockchip,rk3588-i2s-tdm"; + status = "okay"; + reg = <0x00 0xfddf8000 0x00 0x1000>; + phandle = <0x1ec>; + dmas = <0xf2 0x15>; + reset-names = "rx-m"; + }; + + phy@fee20000 { + rockchip,pipe-grf = <0x76>; + clock-names = "refclk\0apbclk\0phpclk"; + assigned-clocks = <0x02 0x2bf>; + assigned-clock-rates = <0x5f5e100>; + resets = <0x02 0x20007 0x02 0x4d8>; + clocks = <0x02 0x2bf 0x02 0x187 0x02 0x166>; + #phy-cells = <0x01>; + compatible = "rockchip,rk3588-naneng-combphy"; + status = "disabled"; + rockchip,pipe-phy-grf = <0x195>; + reg = <0x00 0xfee20000 0x00 0x100>; + phandle = <0x70>; + reset-names = "combphy-apb\0combphy"; + rockchip,pcie1ln-sel-bits = <0x100 0x01 0x01 0x00>; + }; + + csi2-dphy0-hw@fedc0000 { + clock-names = "pclk"; + resets = <0x02 0x17 0x02 0x16>; + clocks = <0x02 0x10c>; + compatible = "rockchip,rk3588-csi2-dphy-hw"; + status = "okay"; + rockchip,grf = <0x192>; + reg = <0x00 0xfedc0000 0x00 0x8000>; + phandle = <0x2d>; + reset-names = "srst_csiphy0\0srst_p_csiphy0"; + rockchip,sys_grf = <0xc8>; + }; + + can@fea70000 { + pinctrl-names = "default"; + pinctrl-0 = <0x147>; + clock-names = "baudclk\0apb_pclk"; + resets = <0x02 0xbd 0x02 0xbc>; + interrupts = <0x00 0x157 0x04>; + clocks = <0x02 0x74 0x02 0x73>; + compatible = "rockchip,can-2.0"; + status = "disabled"; + tx-fifo-depth = <0x01>; + rx-fifo-depth = <0x06>; + reg = <0x00 0xfea70000 0x00 0x1000>; + phandle = <0x2a2>; + reset-names = "can\0can-apb"; + }; + + mailbox@fec60000 { + clock-names = "pclk_mailbox"; + interrupts = <0x00 0x3d 0x04 0x00 0x3e 0x04 0x00 0x3f 0x04 0x00 0x40 0x04>; + clocks = <0x02 0x4c>; + #mbox-cells = <0x01>; + compatible = "rockchip,rk3588-mailbox\0rockchip,rk3368-mailbox"; + status = "disabled"; + reg = <0x00 0xfec60000 0x00 0x200>; + phandle = <0x2dd>; + }; + + usbdrd3_1 { + #address-cells = <0x02>; + clock-names = "ref\0suspend\0bus"; + clocks = <0x02 0x1a6 0x02 0x1a5 0x02 0x1a4>; + #size-cells = <0x02>; + compatible = "rockchip,rk3588-dwc3\0rockchip,rk3399-dwc3"; + ranges; + status = "okay"; + phandle = <0x47a>; + + usb@fc400000 { + power-domains = <0x60 0x1f>; + snps,dis-u1-entry-quirk; + snps,dis_enblslpm_quirk; + phy-names = "usb2-phy\0usb3-phy"; + snps,dis-u2-freeclk-exists-quirk; + phy_type = "utmi_wide"; + resets = <0x02 0x2a7>; + interrupts = <0x00 0xdd 0x04>; + snps,dis-u2-entry-quirk; + compatible = "snps,dwc3"; + snps,parkmode-disable-hs-quirk; + snps,dis-del-phy-power-chg-quirk; + status = "okay"; + snps,parkmode-disable-ss-quirk; + phys = <0x1a3 0x1a4>; + reg = <0x00 0xfc400000 0x00 0x400000>; + phandle = <0x47b>; + dr_mode = "host"; + reset-names = "usb3-otg"; + snps,dis-tx-ipgap-linecheck-quirk; + }; + }; + + sata@fe210000 { + phy-names = "sata-phy"; + clock-names = "sata\0pmalive\0rxoob\0ref\0asic"; + interrupts = <0x00 0x111 0x04>; + clocks = <0x02 0x171 0x02 0x16e 0x02 0x174 0x02 0x163 0x02 0x17e>; + compatible = "rockchip,rk-ahci\0snps,dwc-ahci"; + status = "okay"; + interrupt-names = "hostc"; + phys = <0x108 0x01>; + reg = <0x00 0xfe210000 0x00 0x1000>; + phandle = <0x290>; + ports-implemented = <0x01>; + }; + + leds { + compatible = "gpio-leds"; + status = "okay"; + phandle = <0x497>; + + user { + linux,default-trigger = "ir-user-click"; + label = ":user"; + default-state = "off"; + phandle = <0x499>; + gpios = <0x182 0x03 0x00>; + }; + + power { + linux,default-trigger = "ir-power-click"; + label = ":power"; + default-state = "on"; + status = "disabled"; + phandle = <0x498>; + gpios = <0x7b 0x15 0x00>; + }; + }; + + rkcif-mipi-lvds5-sditf-vir3 { + compatible = "rockchip,rkcif-sditf"; + status = "disabled"; + rockchip,cif = <0x1a2>; + phandle = <0x479>; + }; + + qos@fdf80000 { + compatible = "syscon"; + reg = <0x00 0xfdf80000 0x00 0x20>; + phandle = <0x9f>; + }; + + spdif-tx@fdde0000 { + power-domains = <0x60 0x1a>; + clock-names = "mclk\0hclk"; + assigned-clocks = <0x02 0x254>; + assigned-clock-parents = <0x02 0x05>; + interrupts = <0x00 0xc4 0x04>; + clocks = <0x02 0x257 0x02 0x253>; + dma-names = "tx"; + #sound-dai-cells = <0x00>; + compatible = "rockchip,rk3588-spdif\0rockchip,rk3568-spdif"; + status = "disabled"; + reg = <0x00 0xfdde0000 0x00 0x1000>; + phandle = <0x27e>; + dmas = <0xf1 0x07>; + }; + + qos@fdf35000 { + compatible = "syscon"; + reg = <0x00 0xfdf35000 0x00 0x20>; + phandle = <0x87>; + }; + + psci { + method = "smc"; + compatible = "arm,psci-1.0"; + }; + + rkcif-mipi-lvds { + iommus = <0x50>; + rockchip,hw = <0x4f>; + compatible = "rockchip,rkcif-mipi-lvds"; + status = "disabled"; + phandle = <0x52>; + }; + + rga@fdb80000 { + power-domains = <0x60 0x15>; + clock-names = "aclk_rga2\0hclk_rga2\0clk_rga2"; + interrupts = <0x00 0x74 0x04>; + clocks = <0x02 0x1b7 0x02 0x1b6 0x02 0x1b8>; + compatible = "rockchip,rga2_core0"; + status = "okay"; + interrupt-names = "rga2_irq"; + reg = <0x00 0xfdb80000 0x00 0x1000>; + phandle = <0x26b>; + }; + + qos@fdf66800 { + compatible = "syscon"; + reg = <0x00 0xfdf66800 0x00 0x20>; + phandle = <0x97>; + }; + + spi@feb10000 { + pinctrl-names = "default"; + #address-cells = <0x01>; + num-cs = <0x02>; + pinctrl-0 = <0x151 0x152 0x153>; + clock-names = "spiclk\0apb_pclk"; + interrupts = <0x00 0x147 0x04>; + clocks = <0x02 0xa4 0x02 0x9f>; + #size-cells = <0x00>; + dma-names = "tx\0rx"; + compatible = "rockchip,rk3066-spi"; + status = "disabled"; + reg = <0x00 0xfeb10000 0x00 0x1000>; + phandle = <0x2ac>; + dmas = <0x7c 0x10 0x7c 0x11>; + }; + + rkcif-mipi-lvds4-sditf { + compatible = "rockchip,rkcif-sditf"; + status = "disabled"; + rockchip,cif = <0x1a1>; + phandle = <0x472>; + }; + + hdmi@fdea0000 { + power-domains = <0x60 0x1a>; + reg-io-width = <0x04>; + pinctrl-names = "default"; + phy-names = "hdmi"; + pinctrl-0 = <0x1a8 0x1a9 0x1aa 0x1ab>; + clock-names = "pclk\0hpd\0earc\0hdmitx_ref\0aud\0dclk_vp0\0dclk_vp1\0dclk_vp2\0dclk_vp3\0hclk_vo1\0link_clk"; + resets = <0x02 0x3d7 0x02 0x49d>; + interrupts = <0x00 0xad 0x04 0x00 0xae 0x04 0x00 0xaf 0x04 0x00 0xb0 0x04 0x00 0x169 0x04>; + clocks = <0x02 0x224 0x02 0x266 0x02 0x225 0x02 0x226 0x02 0x24c 0x02 0x274 0x02 0x275 0x02 0x276 0x02 0x277 0x05 0x36>; + #sound-dai-cells = <0x00>; + compatible = "rockchip,rk3588-dw-hdmi"; + status = "disabled"; + rockchip,grf = <0xc8>; + phys = <0x1ac>; + reg = <0x00 0xfdea0000 0x00 0x10000 0x00 0xfdeb0000 0x00 0x10000>; + phandle = <0x1e1>; + reset-names = "ref\0hdp"; + rockchip,vo1_grf = <0xd8>; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x00>; + phandle = <0x482>; + + endpoint@1 { + remote-endpoint = <0x3f>; + status = "disabled"; + reg = <0x01>; + phandle = <0xe5>; + }; + + endpoint@2 { + remote-endpoint = <0x1ae>; + status = "disabled"; + reg = <0x02>; + phandle = <0xed>; + }; + + endpoint@0 { + remote-endpoint = <0x1ad>; + status = "disabled"; + reg = <0x00>; + phandle = <0xdf>; + }; + }; + }; + }; + + pcie@fe180000 { + #address-cells = <0x03>; + rockchip,pipe-grf = <0x76>; + phy-names = "pcie-phy"; + bus-range = <0x30 0x3f>; + clock-names = "aclk_mst\0aclk_slv\0aclk_dbi\0pclk\0aux\0pipe"; + reg-names = "pcie-apb\0pcie-dbi"; + num-ob-windows = <0x08>; + resets = <0x02 0x210 0x02 0x21f>; + interrupts = <0x00 0xf8 0x04 0x00 0xf7 0x04 0x00 0xf6 0x04 0x00 0xf5 0x04 0x00 0xf4 0x04>; + clocks = <0x02 0x151 0x02 0x156 0x02 0x14c 0x02 0x15c 0x02 0x161 0x02 0x2c5>; + interrupt-map = <0x00 0x00 0x00 0x01 0x105 0x00 0x00 0x00 0x00 0x02 0x105 0x01 0x00 0x00 0x00 0x03 0x105 0x02 0x00 0x00 0x00 0x04 0x105 0x03>; + #size-cells = <0x02>; + max-link-speed = <0x02>; + device_type = "pci"; + interrupt-map-mask = <0x00 0x00 0x00 0x07>; + num-lanes = <0x01>; + compatible = "rockchip,rk3588-pcie\0snps,dw-pcie"; + ranges = <0x800 0x00 0xf3000000 0x00 0xf3000000 0x00 0x100000 0x81000000 0x00 0xf3100000 0x00 0xf3100000 0x00 0x100000 0x82000000 0x00 0xf3200000 0x00 0xf3200000 0x00 0xe00000 0xc3000000 0x09 0xc0000000 0x09 0xc0000000 0x00 0x40000000>; + msi-map = <0x3000 0x106 0x3000 0x1000>; + #interrupt-cells = <0x01>; + status = "disabled"; + interrupt-names = "sys\0pmc\0msg\0legacy\0err"; + phys = <0x70 0x02>; + num-viewport = <0x04>; + reg = <0x00 0xfe180000 0x00 0x10000 0x0a 0x40c00000 0x00 0x400000>; + linux,pci-domain = <0x03>; + phandle = <0x28c>; + reset-names = "pcie\0periph"; + num-ib-windows = <0x08>; + + legacy-interrupt-controller { + #address-cells = <0x00>; + interrupts = <0x00 0xf5 0x01>; + interrupt-parent = <0x01>; + #interrupt-cells = <0x01>; + phandle = <0x105>; + interrupt-controller; + }; + }; + + i2s@fe480000 { + pinctrl-names = "default"; + pinctrl-0 = <0x120 0x121 0x122 0x123 0x124 0x125 0x126 0x127 0x128 0x129>; + clock-names = "mclk_tx\0mclk_rx\0hclk"; + resets = <0x02 0xc002a 0x02 0xc002d>; + interrupts = <0x00 0xb5 0x04>; + clocks = <0x02 0x28c 0x02 0x290 0x02 0x288>; + dma-names = "tx\0rx"; + #sound-dai-cells = <0x00>; + compatible = "rockchip,rk3588-i2s-tdm"; + status = "disabled"; + reg = <0x00 0xfe480000 0x00 0x1000>; + phandle = <0x1d1>; + dmas = <0x7c 0x02 0x7c 0x03>; + reset-names = "tx-m\0rx-m"; + rockchip,clk-trcm = <0x01>; + }; + + syscon@fd5c0000 { + compatible = "rockchip,pipe-phy-grf\0syscon"; + reg = <0x00 0xfd5c0000 0x00 0x100>; + phandle = <0x1cb>; + }; + + i2c@feab0000 { + pinctrl-names = "default"; + #address-cells = <0x01>; + pinctrl-0 = <0x14a>; + clock-names = "i2c\0pclk"; + resets = <0x02 0xb2 0x02 0xaa>; + interrupts = <0x00 0x140 0x04>; + clocks = <0x02 0x8f 0x02 0x87>; + #size-cells = <0x00>; + compatible = "rockchip,rk3588-i2c\0rockchip,rk3399-i2c"; + status = "okay"; + reg = <0x00 0xfeab0000 0x00 0x1000>; + phandle = <0x2a6>; + reset-names = "i2c\0apb"; + + gpio@21 { + gpio-controller; + gpio-group-num = <0xc8>; + compatible = "nxp,pca9555"; + status = "okay"; + reg = <0x21>; + phandle = <0x182>; + #gpio-cells = <0x02>; + }; + }; + + iommu@fdcb7f00 { + power-domains = <0x60 0x1b>; + clock-names = "aclk\0iface"; + interrupts = <0x00 0x84 0x04>; + clocks = <0x02 0x1de 0x02 0x1df>; + #iommu-cells = <0x00>; + compatible = "rockchip,iommu-v2"; + rockchip,disable-mmu-reset; + status = "okay"; + interrupt-names = "isp0_mmu"; + reg = <0x00 0xfdcb7f00 0x00 0x100>; + phandle = <0xd0>; + }; + + qos@fdf3e600 { + compatible = "syscon"; + reg = <0x00 0xfdf3e600 0x00 0x20>; + phandle = <0xae>; + }; + + syscon@fd5b8000 { + compatible = "rockchip,pcie30-phy-grf\0syscon"; + reg = <0x00 0xfd5b8000 0x00 0x10000>; + phandle = <0x1cc>; + }; + + qos@fdf81200 { + compatible = "syscon"; + reg = <0x00 0xfdf81200 0x00 0x20>; + phandle = <0xa1>; + }; + + mipi5-csi2-hw@fdd60000 { + clock-names = "pclk_csi2host"; + reg-names = "csihost_regs"; + resets = <0x02 0x329>; + interrupts = <0x00 0x99 0x04 0x00 0x9a 0x04>; + clocks = <0x02 0x1d4>; + compatible = "rockchip,rk3588-mipi-csi2-hw"; + status = "okay"; + interrupt-names = "csi-intr1\0csi-intr2"; + reg = <0x00 0xfdd60000 0x00 0x10000>; + phandle = <0x4c>; + reset-names = "srst_csihost_p"; + }; + + qos@fdf72000 { + compatible = "syscon"; + reg = <0x00 0xfdf72000 0x00 0x20>; + phandle = <0x82>; + }; + + timer@feae0000 { + clock-names = "pclk\0timer"; + interrupts = <0x00 0x121 0x04>; + clocks = <0x02 0x5c 0x02 0x5f>; + compatible = "rockchip,rk3588-timer\0rockchip,rk3288-timer"; + reg = <0x00 0xfeae0000 0x00 0x20>; + phandle = <0x2a9>; + }; + + rkcif-mipi-lvds-sditf-vir1 { + compatible = "rockchip,rkcif-sditf"; + status = "disabled"; + rockchip,cif = <0x52>; + phandle = <0x22c>; + }; + + syscon@fd5b5000 { + compatible = "rockchip,mipi-dphy-grf\0syscon"; + reg = <0x00 0xfd5b5000 0x00 0x1000>; + phandle = <0x193>; + }; + + i2c@fec90000 { + pinctrl-names = "default"; + #address-cells = <0x01>; + pinctrl-0 = <0x185>; + clock-names = "i2c\0pclk"; + resets = <0x02 0xb6 0x02 0xae>; + interrupts = <0x00 0x144 0x04>; + clocks = <0x02 0x93 0x02 0x8b>; + #size-cells = <0x00>; + compatible = "rockchip,rk3588-i2c\0rockchip,rk3399-i2c"; + status = "disabled"; + reg = <0x00 0xfec90000 0x00 0x1000>; + phandle = <0x2e4>; + reset-names = "i2c\0apb"; + }; + + avsd-plus@fdb51000 { + power-domains = <0x60 0x15>; + iommus = <0xb7>; + clock-names = "aclk_vcodec\0hclk_vcodec"; + assigned-clocks = <0x02 0x1c0>; + rockchip,normal-rates = <0x2367b880 0x00>; + assigned-clock-rates = <0x2367b880>; + resets = <0x02 0x2c8 0x02 0x2c9>; + interrupts = <0x00 0x77 0x04>; + clocks = <0x02 0x1c0 0x02 0x1c1>; + rockchip,srv = <0xb8>; + rockchip,taskqueue-node = <0x00>; + rockchip,disable-auto-freq; + compatible = "rockchip,avs-plus-decoder"; + rockchip,resetgroup-node = <0x00>; + status = "disabled"; + interrupt-names = "irq_avsd"; + rockchip,skip-pmu-idle-request; + reg = <0x00 0xfdb51000 0x00 0x200>; + phandle = <0x268>; + reset-names = "shared_video_a\0shared_video_h"; + }; + + dp1-sound { + rockchip,jack-det; + rockchip,cpu = <0x1e2>; + rockchip,codec = <0x1e3 0x01>; + rockchip,card-name = "rockchip,dp1"; + compatible = "rockchip,hdmi"; + status = "disabled"; + phandle = <0x4a9>; + rockchip,mclk-fs = <0x200>; + }; + + mipi1-csi2-hw@fdd20000 { + clock-names = "pclk_csi2host"; + reg-names = "csihost_regs"; + resets = <0x02 0x325>; + interrupts = <0x00 0x91 0x04 0x00 0x92 0x04>; + clocks = <0x02 0x1d0>; + compatible = "rockchip,rk3588-mipi-csi2-hw"; + status = "okay"; + interrupt-names = "csi-intr1\0csi-intr2"; + reg = <0x00 0xfdd20000 0x00 0x10000>; + phandle = <0x48>; + reset-names = "srst_csihost_p"; + }; + + iep@fdbb0000 { + power-domains = <0x60 0x15>; + iommus = <0xc1>; + clock-names = "aclk\0hclk\0sclk"; + assigned-clocks = <0x02 0x1aa>; + rockchip,normal-rates = <0x2367b880 0x00>; + assigned-clock-rates = <0x2367b880>; + resets = <0x02 0x2d5 0x02 0x2d4 0x02 0x2d6>; + interrupts = <0x00 0x75 0x04>; + clocks = <0x02 0x1aa 0x02 0x1a9 0x02 0x1ab>; + rockchip,srv = <0xb8>; + rockchip,taskqueue-node = <0x06>; + rockchip,disable-auto-freq; + compatible = "rockchip,iep-v2"; + status = "okay"; + interrupt-names = "irq_iep"; + rockchip,skip-pmu-idle-request; + reg = <0x00 0xfdbb0000 0x00 0x500>; + phandle = <0x271>; + reset-names = "rst_a\0rst_h\0rst_s"; + }; + + dsi@fde20000 { + power-domains = <0x60 0x18>; + #address-cells = <0x01>; + phy-names = "dcphy"; + clock-names = "pclk\0sys_clk"; + resets = <0x02 0x354>; + interrupts = <0x00 0xa7 0x04>; + clocks = <0x02 0x278 0x02 0x27a>; + #size-cells = <0x00>; + compatible = "rockchip,rk3588-mipi-dsi2"; + status = "disabled"; + rockchip,grf = <0xd7>; + phys = <0x2f>; + reg = <0x00 0xfde20000 0x00 0x10000>; + phandle = <0x281>; + reset-names = "apb"; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x00>; + phandle = <0x282>; + + endpoint@1 { + remote-endpoint = <0x39>; + status = "disabled"; + reg = <0x01>; + phandle = <0xee>; + }; + + endpoint@0 { + remote-endpoint = <0xf3>; + status = "disabled"; + reg = <0x00>; + phandle = <0xe9>; + }; + }; + }; + }; + + rkcif-mipi-lvds5-sditf-vir1 { + compatible = "rockchip,rkcif-sditf"; + status = "disabled"; + rockchip,cif = <0x1a2>; + phandle = <0x477>; + }; + + edp@fded0000 { + power-domains = <0x60 0x1a>; + phy-names = "dp"; + clock-names = "dp\0pclk\0spdif\0hclk"; + resets = <0x02 0x3e4 0x02 0x3e3>; + interrupts = <0x00 0xa4 0x04>; + clocks = <0x02 0x214 0x02 0x213 0x02 0x215 0x05>; + compatible = "rockchip,rk3588-edp"; + status = "disabled"; + rockchip,grf = <0xd8>; + phys = <0x1af>; + reg = <0x00 0xfded0000 0x00 0x1000>; + phandle = <0x483>; + reset-names = "dp\0apb"; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x00>; + + endpoint@1 { + remote-endpoint = <0x1b1>; + status = "disabled"; + reg = <0x01>; + phandle = <0xe4>; + }; + + endpoint@2 { + remote-endpoint = <0x1b2>; + status = "disabled"; + reg = <0x02>; + phandle = <0xec>; + }; + + endpoint@0 { + remote-endpoint = <0x1b0>; + status = "disabled"; + reg = <0x00>; + phandle = <0xde>; + }; + }; + + port@1 { + reg = <0x01>; + + endpoint { + phandle = <0x484>; + }; + }; + }; + }; + + qos@fdf67000 { + compatible = "syscon"; + reg = <0x00 0xfdf67000 0x00 0x20>; + phandle = <0x9c>; + }; + + qos@fdf64000 { + compatible = "syscon"; + reg = <0x00 0xfdf64000 0x00 0x20>; + phandle = <0x9b>; + }; + + npu-opp-table { + rockchip,pvtm-offset = <0x50>; + rockchip,pvtm-sample-time = <0x44c>; + rockchip,init-freq = <0xf4240>; + rockchip,pvtm-hw = <0x06>; + nvmem-cells = <0xb4 0xb5 0x21>; + rockchip,low-temp = <0x2710>; + rockchip,pvtm-voltage-sel-hw = <0x00 0x31f 0x00 0x320 0x333 0x01 0x334 0x34c 0x02 0x34d 0x365 0x03 0x366 0x37e 0x04 0x37f 0x270f 0x05>; + rockchip,pvtm-thermal-zone = "npu-thermal"; + rockchip,high-temp-max-freq = "\0\f5"; + rockchip,opp-clocks = <0x02 0x12a 0x02 0x12f>; + rockchip,pvtm-freq = "\0\f5"; + rockchip,pvtm-ref-temp = <0x19>; + low-volt-mem-read-margin = <0x04>; + volt-mem-read-margin = <0xd0bd8 0x01 0xbac48 0x02 0xa4cb8 0x03 0x78d98 0x04>; + compatible = "operating-points-v2"; + rockchip,low-temp-min-volt = <0xb71b0>; + rockchip,grf = <0xb6>; + nvmem-cell-names = "leakage\0opp-info\0specification_serial_number"; + rockchip,pvtm-voltage-sel = <0x00 0x32f 0x00 0x330 0x343 0x01 0x344 0x35c 0x02 0x35d 0x375 0x03 0x376 0x38e 0x04 0x38f 0x270f 0x05>; + phandle = <0xb1>; + rockchip,pvtm-temp-prop = <0xffffff8f 0xffffff8f>; + rockchip,temp-hysteresis = <0x1388>; + rockchip,high-temp = <0x14c08>; + rockchip,pvtm-pvtpll; + rockchip,supported-hw; + intermediate-threshold-freq = <0x7a120>; + rockchip,pvtm-volt = <0xb71b0>; + + opp-j-m-700000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; + opp-hz = <0x00 0x29b92700>; + opp-supported-hw = <0x06 0xffff>; + }; + + opp-300000000 { + opp-microvolt = <0xaae60 0xaae60 0xcf850 0xaae60 0xaae60 0xcf850>; + opp-microvolt-L4 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + opp-microvolt-L2 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + opp-hz = <0x00 0x11e1a300>; + opp-supported-hw = <0xf9 0xffff>; + opp-microvolt-L5 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + opp-microvolt-L3 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + opp-microvolt-L1 = <0xa7d8c 0xa7d8c 0xcf850 0xa7d8c 0xa7d8c 0xcf850>; + }; + + opp-500000000 { + opp-microvolt = <0xaae60 0xaae60 0xcf850 0xaae60 0xaae60 0xcf850>; + opp-microvolt-L4 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + opp-microvolt-L2 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + opp-hz = <0x00 0x1dcd6500>; + opp-supported-hw = <0xf9 0xffff>; + opp-microvolt-L5 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + opp-microvolt-L3 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + opp-microvolt-L1 = <0xa7d8c 0xa7d8c 0xcf850 0xa7d8c 0xa7d8c 0xcf850>; + }; + + opp-j-m-400000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; + opp-hz = <0x00 0x17d78400>; + opp-supported-hw = <0x06 0xffff>; + }; + + opp-700000000 { + opp-microvolt = <0xaae60 0xaae60 0xcf850 0xaae60 0xaae60 0xcf850>; + opp-microvolt-L4 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + opp-hz = <0x00 0x29b92700>; + opp-supported-hw = <0xf9 0xffff>; + opp-microvolt-L5 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + opp-microvolt-L3 = <0xa7d8c 0xa7d8c 0xcf850 0xa7d8c 0xa7d8c 0xcf850>; + }; + + opp-j-m-950000000 { + opp-microvolt = <0xcc77c 0xcc77c 0xcf850 0xcc77c 0xcc77c 0xcf850>; + opp-microvolt-L4 = <0xc042c 0xc042c 0xcf850 0xc042c 0xc042c 0xcf850>; + opp-microvolt-L2 = <0xc65d4 0xc65d4 0xcf850 0xc65d4 0xc65d4 0xcf850>; + opp-hz = <0x00 0x389fd980>; + opp-supported-hw = <0x06 0xffff>; + opp-microvolt-L5 = <0xbd358 0xbd358 0xcf850 0xbd358 0xbd358 0xcf850>; + opp-microvolt-L3 = <0xc3500 0xc3500 0xcf850 0xc3500 0xc3500 0xcf850>; + opp-microvolt-L1 = <0xc96a8 0xc96a8 0xcf850 0xc96a8 0xc96a8 0xcf850>; + }; + + opp-j-m-600000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; + opp-hz = <0x00 0x23c34600>; + opp-supported-hw = <0x06 0xffff>; + }; + + opp-900000000 { + opp-microvolt = <0xc3500 0xc3500 0xcf850 0xc3500 0xc3500 0xcf850>; + opp-microvolt-L4 = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; + opp-microvolt-L2 = <0xbd358 0xbd358 0xcf850 0xbd358 0xbd358 0xcf850>; + opp-hz = <0x00 0x35a4e900>; + opp-supported-hw = <0xf9 0xffff>; + opp-microvolt-L5 = <0xb40dc 0xb40dc 0xcf850 0xb40dc 0xb40dc 0xcf850>; + opp-microvolt-L3 = <0xba284 0xba284 0xcf850 0xba284 0xba284 0xcf850>; + opp-microvolt-L1 = <0xc042c 0xc042c 0xcf850 0xc042c 0xc042c 0xcf850>; + }; + + opp-j-m-800000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; + opp-hz = <0x00 0x2faf0800>; + opp-supported-hw = <0x06 0xffff>; + }; + + opp-400000000 { + opp-microvolt = <0xaae60 0xaae60 0xcf850 0xaae60 0xaae60 0xcf850>; + opp-microvolt-L4 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + opp-microvolt-L2 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + opp-hz = <0x00 0x17d78400>; + opp-supported-hw = <0xf9 0xffff>; + opp-microvolt-L5 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + opp-microvolt-L3 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + opp-microvolt-L1 = <0xa7d8c 0xa7d8c 0xcf850 0xa7d8c 0xa7d8c 0xcf850>; + }; + + opp-j-m-300000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; + opp-hz = <0x00 0x11e1a300>; + opp-supported-hw = <0x06 0xffff>; + }; + + opp-600000000 { + opp-microvolt = <0xaae60 0xaae60 0xcf850 0xaae60 0xaae60 0xcf850>; + opp-microvolt-L4 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + opp-microvolt-L2 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + opp-hz = <0x00 0x23c34600>; + opp-supported-hw = <0xf9 0xffff>; + opp-microvolt-L5 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + opp-microvolt-L3 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + opp-microvolt-L1 = <0xa7d8c 0xa7d8c 0xcf850 0xa7d8c 0xa7d8c 0xcf850>; + }; + + opp-1000000000 { + opp-microvolt = <0xcf850 0xcf850 0xcf850 0xcf850 0xcf850 0xcf850>; + opp-microvolt-L4 = <0xc3500 0xc3500 0xcf850 0xc3500 0xc3500 0xcf850>; + opp-microvolt-L2 = <0xc96a8 0xc96a8 0xcf850 0xc96a8 0xc96a8 0xcf850>; + opp-hz = <0x00 0x3b9aca00>; + opp-supported-hw = <0xf9 0xffff>; + opp-microvolt-L5 = <0xc042c 0xc042c 0xcf850 0xc042c 0xc042c 0xcf850>; + opp-microvolt-L3 = <0xc65d4 0xc65d4 0xcf850 0xc65d4 0xc65d4 0xcf850>; + opp-microvolt-L1 = <0xcc77c 0xcc77c 0xcf850 0xcc77c 0xcc77c 0xcf850>; + }; + + opp-j-m-500000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; + opp-hz = <0x00 0x1dcd6500>; + opp-supported-hw = <0x06 0xffff>; + }; + + opp-800000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; + opp-microvolt-L4 = <0xadf34 0xadf34 0xcf850 0xadf34 0xadf34 0xcf850>; + opp-microvolt-L2 = <0xb40dc 0xb40dc 0xcf850 0xb40dc 0xb40dc 0xcf850>; + opp-hz = <0x00 0x2faf0800>; + opp-supported-hw = <0xf9 0xffff>; + opp-microvolt-L5 = <0xaae60 0xaae60 0xcf850 0xaae60 0xaae60 0xcf850>; + opp-microvolt-L3 = <0xb1008 0xb1008 0xcf850 0xb1008 0xb1008 0xcf850>; + }; + }; + + syscon@fd590000 { + compatible = "rockchip,rk3588-bigcore0-grf\0syscon"; + reg = <0x00 0xfd590000 0x00 0x100>; + phandle = <0x26>; + }; + + syscon@fd5dc000 { + #address-cells = <0x01>; + #size-cells = <0x01>; + compatible = "rockchip,rk3588-usb2phy-grf\0syscon\0simple-mfd"; + reg = <0x00 0xfd5dc000 0x00 0x4000>; + phandle = <0x25e>; + + usb2-phy@c000 { + clock-output-names = "usb480m_phy3"; + clock-names = "phyclk"; + resets = <0x02 0xc004a 0x02 0x48b>; + interrupts = <0x00 0x188 0x04>; + clocks = <0x02 0x2b5>; + #clock-cells = <0x00>; + compatible = "rockchip,rk3588-usb2phy"; + status = "okay"; + reg = <0xc000 0x10>; + phandle = <0x6d>; + reset-names = "phy\0apb"; + + host-port { + phy-supply = <0x75>; + #phy-cells = <0x00>; + status = "okay"; + phandle = <0x6f>; + }; + }; + }; + + pcie-clk3 { + regulator-boot-on; + regulator-always-on; + regulator-name = "pcie_clk3"; + compatible = "regulator-fixed"; + status = "okay"; + phandle = <0x496>; + gpios = <0xfe 0x09 0x01>; + }; + + pwm@febf0030 { + pinctrl-names = "active"; + pinctrl-0 = <0x174>; + clock-names = "pwm\0pclk"; + interrupts = <0x00 0x15e 0x04 0x00 0x15f 0x04>; + clocks = <0x02 0x5a 0x02 0x59>; + #pwm-cells = <0x03>; + compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; + status = "disabled"; + reg = <0x00 0xfebf0030 0x00 0x10>; + phandle = <0x2dc>; + }; + + hwspinlock@fe5a0000 { + compatible = "rockchip,hwspinlock"; + reg = <0x00 0xfe5a0000 0x00 0x100>; + phandle = <0x29f>; + #hwlock-cells = <0x01>; + }; + + rkcif-mipi-lvds4-sditf-vir2 { + compatible = "rockchip,rkcif-sditf"; + status = "disabled"; + rockchip,cif = <0x1a1>; + phandle = <0x474>; + }; + + sram@10f000 { + #address-cells = <0x01>; + #size-cells = <0x01>; + compatible = "mmio-sram"; + ranges = <0x00 0x00 0x10f000 0x100>; + reg = <0x00 0x10f000 0x00 0x100>; + + sram@0 { + compatible = "arm,scmi-shmem"; + reg = <0x00 0x100>; + phandle = <0x46>; + }; + }; + + hdmirx-controller@fdee0000 { + power-domains = <0x60 0x1a>; + pinctrl-names = "default"; + pinctrl-0 = <0x1b3 0x1b4>; + clock-names = "aclk\0audio\0cr_para\0pclk\0ref\0hclk_s_hdmirx\0hclk_vo1"; + reg-names = "hdmirx_regs"; + resets = <0x02 0x3d9 0x02 0x3da 0x02 0x3db 0x02 0x3b7>; + interrupts = <0x00 0xb1 0x04 0x00 0x1b4 0x04 0x00 0xb3 0x04>; + clocks = <0x02 0x21a 0x02 0x21f 0x02 0x2b2 0x02 0x21b 0x02 0x21c 0x02 0x232 0x05>; + hpd-trigger-level = <0x01>; + #sound-dai-cells = <0x01>; + compatible = "rockchip,rk3588-hdmirx-ctrler\0rockchip,hdmirx-ctrler"; + status = "disabled"; + rockchip,grf = <0xc8>; + interrupt-names = "cec\0hdmi\0dma"; + hdmirx-det-gpios = <0xfe 0x1d 0x01>; + reg = <0x00 0xfdee0000 0x00 0x6000>; + phandle = <0x1eb>; + reset-names = "rst_a\0rst_p\0rst_ref\0rst_biu"; + rockchip,vo1_grf = <0xd8>; + }; + + qos@fdf61000 { + compatible = "syscon"; + reg = <0x00 0xfdf61000 0x00 0x20>; + phandle = <0x90>; + }; + + qos@fdf40600 { + compatible = "syscon"; + reg = <0x00 0xfdf40600 0x00 0x20>; + phandle = <0xa4>; + }; + + syscon@fd588000 { + compatible = "rockchip,rk3588-pmu0-grf\0syscon\0simple-mfd"; + reg = <0x00 0xfd588000 0x00 0x2000>; + phandle = <0x25a>; + + reboot-mode { + mode-normal = <0x5242c300>; + mode-loader = <0x5242c301>; + mode-quiescent = <0x5242c30e>; + mode-bootloader = <0x5242c301>; + mode-recovery = <0x5242c303>; + mode-watchdog = <0x5242c308>; + mode-ums = <0x5242c30c>; + mode-fastboot = <0x5242c309>; + offset = <0x80>; + compatible = "syscon-reboot-mode"; + mode-winusb = <0x5242c30f>; + phandle = <0x25b>; + mode-charge = <0x5242c30b>; + mode-panic = <0x5242c307>; + }; + }; + + syscon@fd5a4000 { + compatible = "rockchip,rk3588-vop-grf\0syscon"; + reg = <0x00 0xfd5a4000 0x00 0x2000>; + phandle = <0xd7>; + }; + + iommu@fdb60f00 { + power-domains = <0x60 0x16>; + clock-names = "aclk\0iface"; + interrupts = <0x00 0x72 0x04>; + clocks = <0x02 0x1ba 0x02 0x1b9>; + #iommu-cells = <0x00>; + compatible = "rockchip,iommu-v2"; + status = "okay"; + interrupt-names = "rga3_0_mmu"; + reg = <0x00 0xfdb60f00 0x00 0x100>; + phandle = <0xb9>; + }; + + pwm@febf0020 { + pinctrl-names = "active"; + pinctrl-0 = <0x173>; + clock-names = "pwm\0pclk"; + interrupts = <0x00 0x15e 0x04>; + clocks = <0x02 0x5a 0x02 0x59>; + #pwm-cells = <0x03>; + compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; + status = "disabled"; + reg = <0x00 0xfebf0020 0x00 0x10>; + phandle = <0x2db>; + }; + + rkispp@fdcd0000 { + power-domains = <0x60 0x1d>; + iommus = <0xd2>; + clock-names = "aclk_ispp\0hclk_ispp\0clk_ispp"; + assigned-clocks = <0x02 0x1d6>; + assigned-clock-rates = <0x5f5e100>; + interrupts = <0x00 0x8b 0x04>; + clocks = <0x02 0x1d5 0x02 0x1d6 0x02 0x1d7>; + compatible = "rockchip,rk3588-rkispp"; + status = "disabled"; + interrupt-names = "fec_irq"; + reg = <0x00 0xfdcd0000 0x00 0xf00>; + phandle = <0x5b>; + }; + + tsadc@fec00000 { + pinctrl-names = "gpio\0otpout"; + pinctrl-0 = <0x175>; + clock-names = "tsadc\0apb_pclk"; + rockchip,hw-tshut-polarity = <0x00>; + assigned-clocks = <0x02 0xaa>; + assigned-clock-rates = <0x1e8480>; + resets = <0x02 0xc1 0x02 0xc0>; + interrupts = <0x00 0x18d 0x04>; + rockchip,hw-tshut-mode = <0x00>; + clocks = <0x02 0xaa 0x02 0xa9>; + #thermal-sensor-cells = <0x01>; + compatible = "rockchip,rk3588-tsadc"; + pinctrl-1 = <0x176>; + status = "okay"; + reg = <0x00 0xfec00000 0x00 0x400>; + phandle = <0x5d>; + reset-names = "tsadc\0tsadc-apb"; + rockchip,hw-tshut-temp = <0x1d4c0>; + }; + + iommu@fdbb0800 { + power-domains = <0x60 0x15>; + clock-names = "aclk\0iface"; + interrupts = <0x00 0x75 0x04>; + clocks = <0x02 0x1aa 0x02 0x1a9>; + #iommu-cells = <0x00>; + compatible = "rockchip,iommu-v2"; + status = "okay"; + interrupt-names = "irq_iep_mmu"; + reg = <0x00 0xfdbb0800 0x00 0x100>; + phandle = <0xc1>; + }; + + phy@fed60000 { + clock-names = "ref\0apb"; + resets = <0x02 0x485 0x02 0xc003b 0x02 0xc003c 0x02 0xc003d>; + clocks = <0x02 0x2b5 0x02 0x267>; + #phy-cells = <0x00>; + compatible = "rockchip,rk3588-hdptx-phy"; + status = "disabled"; + rockchip,grf = <0x18a>; + reg = <0x00 0xfed60000 0x00 0x2000>; + phandle = <0x101>; + reset-names = "apb\0init\0cmn\0lane"; + }; + + pvtm@fda50000 { + #address-cells = <0x01>; + #size-cells = <0x00>; + compatible = "rockchip,rk3588-bigcore1-pvtm"; + reg = <0x00 0xfda50000 0x00 0x100>; + + pvtm@1 { + clock-names = "clk\0pclk"; + clocks = <0x02 0x2c8 0x02 0x17>; + reg = <0x01>; + }; + }; + + csi2-dcphy0 { + rockchip,hw = <0x2d 0x2e>; + phy-names = "dcphy0\0dcphy1"; + compatible = "rockchip,rk3588-csi2-dphy"; + status = "disabled"; + phys = <0x2f 0x30>; + phandle = <0x20d>; + }; + + mailbox@fece0000 { + clock-names = "pclk_mailbox"; + interrupts = <0x00 0x4d 0x04 0x00 0x4e 0x04 0x00 0x4f 0x04 0x00 0x50 0x04>; + clocks = <0x02 0x4e>; + #mbox-cells = <0x01>; + compatible = "rockchip,rk3588-mailbox\0rockchip,rk3368-mailbox"; + status = "disabled"; + reg = <0x00 0xfece0000 0x00 0x200>; + phandle = <0x2e9>; + }; + + rkcif-mipi-lvds3-sditf-vir3 { + compatible = "rockchip,rkcif-sditf"; + status = "disabled"; + rockchip,cif = <0x57>; + phandle = <0x23a>; + }; + + rkcif-mipi-lvds1-sditf { + compatible = "rockchip,rkcif-sditf"; + status = "disabled"; + rockchip,cif = <0x53>; + phandle = <0x22f>; + }; + + dfi@fe060000 { + rockchip,pmu_grf = <0x104>; + compatible = "rockchip,rk3588-dfi"; + status = "disabled"; + reg = <0x00 0xfe060000 0x00 0x10000>; + phandle = <0x40>; + }; + + iommu@fdca0000 { + power-domains = <0x60 0x17>; + clock-names = "aclk\0iface"; + interrupts = <0x00 0x6d 0x04>; + clocks = <0x02 0x49 0x02 0x4b>; + #iommu-cells = <0x00>; + compatible = "rockchip,iommu-av1"; + status = "okay"; + interrupt-names = "irq_av1d_mmu"; + reg = <0x00 0xfdca0000 0x00 0x600>; + phandle = <0xce>; + }; + + mipi5-csi2 { + rockchip,hw = <0x47 0x48 0x49 0x4a 0x4b 0x4c>; + compatible = "rockchip,rk3588-mipi-csi2"; + status = "disabled"; + phandle = <0x229>; + }; + + qos@fdf35600 { + compatible = "syscon"; + reg = <0x00 0xfdf35600 0x00 0x20>; + phandle = <0x8a>; + }; + + syscon@fd5e4000 { + compatible = "rockchip,rk3588-hdptxphy-grf\0syscon"; + reg = <0x00 0xfd5e4000 0x00 0x100>; + phandle = <0x1c7>; + }; + + iommu@fdba8800 { + power-domains = <0x60 0x15>; + clock-names = "aclk\0iface"; + interrupts = <0x00 0x7d 0x04>; + clocks = <0x02 0x1b0 0x02 0x1b1>; + #iommu-cells = <0x00>; + compatible = "rockchip,iommu-v2"; + status = "okay"; + interrupt-names = "irq_jpege2_mmu"; + reg = <0x00 0xfdba8800 0x00 0x40>; + phandle = <0xbf>; + }; + + mpp-srv { + rockchip,resetgroup-count = <0x01>; + rockchip,taskqueue-count = <0x0c>; + compatible = "rockchip,mpp-service"; + status = "okay"; + phandle = <0xb8>; + }; + + cspmu@fd10c000 { + compatible = "rockchip,cspmu"; + reg = <0x00 0xfd10c000 0x00 0x1000 0x00 0xfd10d000 0x00 0x1000 0x00 0xfd10e000 0x00 0x1000 0x00 0xfd10f000 0x00 0x1000 0x00 0xfd12c000 0x00 0x1000 0x00 0xfd12d000 0x00 0x1000 0x00 0xfd12e000 0x00 0x1000 0x00 0xfd12f000 0x00 0x1000>; + phandle = <0x48e>; + }; + + pwm@febf0010 { + pinctrl-names = "active"; + pinctrl-0 = <0x172>; + clock-names = "pwm\0pclk"; + interrupts = <0x00 0x15e 0x04>; + clocks = <0x02 0x5a 0x02 0x59>; + #pwm-cells = <0x03>; + compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; + status = "disabled"; + reg = <0x00 0xfebf0010 0x00 0x10>; + phandle = <0x2da>; + }; + + iommu@fdbef000 { + power-domains = <0x60 0x11>; + rockchip,shootdown-entire; + interrupts = <0x00 0x66 0x04 0x00 0x67 0x04>; + clocks = <0x02 0x1ca 0x02 0x1c9>; + rockchip,enable-cmd-retry; + #iommu-cells = <0x00>; + compatible = "rockchip,iommu-v2"; + rockchip,disable-mmu-reset; + status = "okay"; + interrupt-names = "irq_rkvenc1_mmu0\0irq_rkvenc1_mmu1"; + reg = <0x00 0xfdbef000 0x00 0x40 0x00 0xfdbef040 0x00 0x40>; + phandle = <0xc5>; + lock-names = "aclk\0iface"; + }; + + serial@feb60000 { + reg-io-width = <0x04>; + pinctrl-names = "default"; + pinctrl-0 = <0x162>; + clock-names = "baudclk\0apb_pclk"; + interrupts = <0x00 0x14e 0x04>; + clocks = <0x02 0xbf 0x02 0xad>; + compatible = "rockchip,rk3588-uart\0snps,dw-apb-uart"; + status = "disabled"; + reg = <0x00 0xfeb60000 0x00 0x100>; + phandle = <0x2cb>; + dmas = <0x7c 0x0c 0x7c 0x0d>; + reg-shift = <0x02>; + }; + + hdmiin-sound { + rockchip,jack-det; + rockchip,cpu = <0x1ec>; + rockchip,codec = <0x1eb 0x00>; + rockchip,bitclock-master = <0x1eb>; + rockchip,card-name = "rockchip,hdmiin"; + rockchip,format = "i2s"; + compatible = "rockchip,hdmi"; + phandle = <0x4ac>; + rockchip,frame-master = <0x1eb>; + rockchip,mclk-fs = <0x80>; + }; + + i2s@fddc8000 { + power-domains = <0x60 0x19>; + clock-names = "mclk_tx\0hclk"; + assigned-clocks = <0x02 0x1ff>; + assigned-clock-parents = <0x02 0x05>; + resets = <0x02 0x391>; + interrupts = <0x00 0xbc 0x04>; + clocks = <0x02 0x201 0x02 0x1fe>; + dma-names = "tx"; + #sound-dai-cells = <0x00>; + compatible = "rockchip,rk3588-i2s-tdm"; + rockchip,playback-only; + status = "disabled"; + reg = <0x00 0xfddc8000 0x00 0x1000>; + phandle = <0x47c>; + dmas = <0xf2 0x16>; + reset-names = "tx-m"; + }; + + pcie30-avdd0v75 { + regulator-max-microvolt = <0xb71b0>; + regulator-boot-on; + regulator-always-on; + regulator-min-microvolt = <0xb71b0>; + regulator-name = "pcie30_avdd0v75"; + compatible = "regulator-fixed"; + phandle = <0x4a7>; + vin-supply = <0x1df>; + }; + + timer { + interrupts = <0x01 0x0d 0xf04 0x01 0x0e 0xf04 0x01 0x0b 0xf04 0x01 0x0a 0xf04>; + compatible = "arm,armv8-timer"; + }; + + rockchip-suspend { + rockchip,sleep-debug-en = <0x01>; + rockchip,sleep-mode-config = <0x5000604>; + compatible = "rockchip,pm-rk3588"; + status = "okay"; + rockchip,wakeup-config = <0x100>; + phandle = <0x246>; + }; + + decompress@fea80000 { + clock-names = "aclk\0dclk\0pclk"; + resets = <0x02 0x118>; + interrupts = <0x00 0x55 0x04>; + clocks = <0x02 0x75 0x02 0x77 0x02 0x76>; + compatible = "rockchip,hw-decompress"; + status = "disabled"; + reg = <0x00 0xfea80000 0x00 0x1000>; + phandle = <0x2a3>; + reset-names = "dresetn"; + }; + + dma-controller@fea30000 { + clock-names = "apb_pclk"; + interrupts = <0x00 0x58 0x04 0x00 0x59 0x04>; + clocks = <0x02 0x79>; + arm,pl330-periph-burst; + compatible = "arm,pl330\0arm,primecell"; + reg = <0x00 0xfea30000 0x00 0x4000>; + phandle = <0xf1>; + #dma-cells = <0x01>; + }; + + pwm@febf0000 { + pinctrl-names = "active"; + pinctrl-0 = <0x171>; + clock-names = "pwm\0pclk"; + interrupts = <0x00 0x15e 0x04>; + clocks = <0x02 0x5a 0x02 0x59>; + #pwm-cells = <0x03>; + compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; + status = "disabled"; + reg = <0x00 0xfebf0000 0x00 0x10>; + phandle = <0x2d9>; + }; + + iommu@fdcd8f00 { + power-domains = <0x60 0x1d>; + clock-names = "aclk\0iface\0pclk"; + interrupts = <0x00 0x8e 0x04>; + clocks = <0x02 0x1d8 0x02 0x1d9 0x02 0x1da>; + #iommu-cells = <0x00>; + compatible = "rockchip,iommu-v2"; + rockchip,disable-mmu-reset; + status = "disabled"; + interrupt-names = "fec1_mmu"; + reg = <0x00 0xfdcd8f00 0x00 0x100>; + phandle = <0xd3>; + }; + + spdif-tx@fddb0000 { + power-domains = <0x60 0x19>; + clock-names = "mclk\0hclk"; + assigned-clocks = <0x02 0x205>; + assigned-clock-parents = <0x02 0x05>; + interrupts = <0x00 0xc3 0x04>; + clocks = <0x02 0x209 0x02 0x204>; + dma-names = "tx"; + #sound-dai-cells = <0x00>; + compatible = "rockchip,rk3588-spdif\0rockchip,rk3568-spdif"; + status = "disabled"; + reg = <0x00 0xfddb0000 0x00 0x1000>; + phandle = <0x1d5>; + dmas = <0xf1 0x06>; + }; + + rkisp1-vir2 { + rockchip,hw = <0x5a>; + compatible = "rockchip,rkisp-vir"; + status = "disabled"; + phandle = <0x241>; + }; + + pcie-clk1 { + regulator-boot-on; + regulator-always-on; + regulator-name = "pcie_clk1"; + compatible = "regulator-fixed"; + status = "okay"; + phandle = <0x494>; + vin-supply = <0x1cd>; + gpios = <0x181 0x15 0x01>; + }; + + jpege-core@fdba8000 { + power-domains = <0x60 0x15>; + iommus = <0xbf>; + rockchip,ccu = <0xbd>; + clock-names = "aclk_vcodec\0hclk_vcodec"; + assigned-clocks = <0x02 0x1b0>; + rockchip,normal-rates = <0x2367b880 0x00>; + assigned-clock-rates = <0x2367b880>; + resets = <0x02 0x2ce 0x02 0x2cf>; + interrupts = <0x00 0x7e 0x04>; + clocks = <0x02 0x1b0 0x02 0x1b1>; + rockchip,srv = <0xb8>; + rockchip,taskqueue-node = <0x02>; + rockchip,disable-auto-freq; + compatible = "rockchip,vpu-jpege-core"; + status = "okay"; + interrupt-names = "irq_jpege2"; + rockchip,skip-pmu-idle-request; + reg = <0x00 0xfdba8000 0x00 0x400>; + phandle = <0x26f>; + reset-names = "video_a\0video_h"; + }; + + qos@fdf66400 { + compatible = "syscon"; + reg = <0x00 0xfdf66400 0x00 0x20>; + phandle = <0x95>; + }; + + spdif-tx1-sound { + simple-audio-card,name = "rockchip,spdif-tx1"; + compatible = "simple-audio-card"; + status = "disabled"; + phandle = <0x49d>; + simple-audio-card,mclk-fs = <0x80>; + + simple-audio-card,cpu { + sound-dai = <0x1d7>; + }; + + simple-audio-card,codec { + sound-dai = <0x1d8>; + }; + }; + + mmc@fe2e0000 { + mmc-hs400-enhanced-strobe; + clock-names = "core\0bus\0axi\0block\0timer"; + assigned-clocks = <0x02 0x13b 0x02 0x13c 0x02 0x13a>; + bus-width = <0x08>; + non-removable; + no-sdio; + assigned-clock-rates = <0xbebc200 0x16e3600 0xbebc200>; + resets = <0x02 0x1f6 0x02 0x1f4 0x02 0x1f5 0x02 0x1f7 0x02 0x1f8>; + mmc-hs400-1_8v; + interrupts = <0x00 0xcd 0x04>; + clocks = <0x02 0x13a 0x02 0x138 0x02 0x139 0x02 0x13b 0x02 0x13c>; + no-sd; + compatible = "rockchip,rk3588-dwcmshc\0rockchip,dwcmshc-sdhci"; + status = "okay"; + reg = <0x00 0xfe2e0000 0x00 0x10000>; + phandle = <0x295>; + max-frequency = <0xbebc200>; + reset-names = "core\0bus\0axi\0block\0timer"; + }; + + dma-controller@fed10000 { + clock-names = "apb_pclk"; + interrupts = <0x00 0x5a 0x04 0x00 0x5b 0x04>; + clocks = <0x02 0x7a>; + arm,pl330-periph-burst; + compatible = "arm,pl330\0arm,primecell"; + reg = <0x00 0xfed10000 0x00 0x4000>; + phandle = <0xf2>; + #dma-cells = <0x01>; + }; + + iommu@fc900000 { + interrupts = <0x00 0x171 0x04 0x00 0x173 0x04 0x00 0x176 0x04 0x00 0x16f 0x04>; + #iommu-cells = <0x01>; + compatible = "arm,smmu-v3"; + status = "disabled"; + interrupt-names = "eventq\0gerror\0priq\0cmdq-sync"; + reg = <0x00 0xfc900000 0x00 0x200000>; + phandle = <0x256>; + }; + + mailbox@fec70000 { + clock-names = "pclk_mailbox"; + interrupts = <0x00 0x45 0x04 0x00 0x46 0x04 0x00 0x47 0x04 0x00 0x48 0x04>; + clocks = <0x02 0x4d>; + #mbox-cells = <0x01>; + compatible = "rockchip,rk3588-mailbox\0rockchip,rk3368-mailbox"; + status = "disabled"; + reg = <0x00 0xfec70000 0x00 0x200>; + phandle = <0x2de>; + }; + + pcie@fe150000 { + power-domains = <0x60 0x22>; + vpcie3v3-supply = <0x1b8>; + #address-cells = <0x03>; + rockchip,pipe-grf = <0x76>; + phy-names = "pcie-phy"; + bus-range = <0x00 0x0f>; + clock-names = "aclk_mst\0aclk_slv\0aclk_dbi\0pclk\0aux\0pipe"; + reg-names = "pcie-apb\0pcie-dbi"; + num-ob-windows = <0x10>; + resets = <0x02 0x20d 0x02 0x21c>; + interrupts = <0x00 0x107 0x04 0x00 0x106 0x04 0x00 0x105 0x04 0x00 0x104 0x04 0x00 0x103 0x04>; + clocks = <0x02 0x14e 0x02 0x153 0x02 0x149 0x02 0x158 0x02 0x15e 0x02 0x183>; + interrupt-map = <0x00 0x00 0x00 0x01 0x1b5 0x00 0x00 0x00 0x00 0x02 0x1b5 0x01 0x00 0x00 0x00 0x03 0x1b5 0x02 0x00 0x00 0x00 0x04 0x1b5 0x03>; + #size-cells = <0x02>; + max-link-speed = <0x03>; + device_type = "pci"; + interrupt-map-mask = <0x00 0x00 0x00 0x07>; + reset-gpios = <0x10d 0x0e 0x00>; + num-lanes = <0x01>; + compatible = "rockchip,rk3588-pcie\0snps,dw-pcie"; + ranges = <0x800 0x00 0xf0000000 0x00 0xf0000000 0x00 0x100000 0x81000000 0x00 0xf0100000 0x00 0xf0100000 0x00 0x100000 0x82000000 0x00 0xf0200000 0x00 0xf0200000 0x00 0xe00000 0xc3000000 0x09 0x00 0x09 0x00 0x00 0x40000000>; + msi-map = <0x00 0x1b6 0x00 0x1000>; + #interrupt-cells = <0x01>; + status = "okay"; + interrupt-names = "sys\0pmc\0msg\0legacy\0err"; + phys = <0x1b7>; + num-viewport = <0x08>; + reg = <0x00 0xfe150000 0x00 0x10000 0x0a 0x40000000 0x00 0x400000>; + linux,pci-domain = <0x00>; + phandle = <0x485>; + reset-names = "pcie\0periph"; + num-ib-windows = <0x10>; + + legacy-interrupt-controller { + #address-cells = <0x00>; + interrupts = <0x00 0x104 0x01>; + interrupt-parent = <0x01>; + #interrupt-cells = <0x01>; + phandle = <0x1b5>; + interrupt-controller; + }; + }; + + rng@fe378000 { + clock-names = "hclk_trng"; + resets = <0x11a 0x30>; + interrupts = <0x00 0x190 0x04>; + clocks = <0x0e 0x0c>; + compatible = "rockchip,trngv1"; + status = "okay"; + reg = <0x00 0xfe378000 0x00 0x200>; + phandle = <0x297>; + reset-names = "reset"; + }; + + sata@fe220000 { + phy-names = "sata-phy"; + clock-names = "sata\0pmalive\0rxoob\0ref\0asic"; + interrupts = <0x00 0x112 0x04>; + clocks = <0x02 0x172 0x02 0x16f 0x02 0x175 0x02 0x164 0x02 0x17f>; + compatible = "rockchip,rk-ahci\0snps,dwc-ahci"; + status = "disabled"; + interrupt-names = "hostc"; + phys = <0x1bc 0x01>; + reg = <0x00 0xfe220000 0x00 0x1000>; + phandle = <0x48a>; + ports-implemented = <0x01>; + }; + + rkcif-mipi-lvds5 { + iommus = <0x50>; + rockchip,hw = <0x4f>; + compatible = "rockchip,rkcif-mipi-lvds"; + status = "disabled"; + phandle = <0x1a2>; + }; + + vcc-sata-pwr-en-regulator { + regulator-max-microvolt = <0x325aa0>; + regulator-boot-on; + gpio = <0x182 0x0c 0x00>; + regulator-always-on; + enable-active-high; + regulator-min-microvolt = <0x325aa0>; + regulator-name = "vcc_sata_pwr_en"; + startup-delay-us = <0x1388>; + compatible = "regulator-fixed"; + status = "okay"; + phandle = <0x4a3>; + vin-supply = <0x1cd>; + }; + + pwm-fan { + cooling-levels = <0x32 0x32 0x64 0x96 0xc8 0xff>; + rockchip,temp-trips = <0xc350 0x01 0xd6d8 0x02 0xea60 0x03 0xfde8 0x04 0x11170 0x05>; + compatible = "pwm-fan"; + phandle = <0x4ad>; + pwms = <0x1ed 0x00 0xc350 0x00>; + #cooling-cells = <0x02>; + fan-supply = <0x78>; + }; + + qos@fdf3e200 { + compatible = "syscon"; + reg = <0x00 0xfdf3e200 0x00 0x20>; + phandle = <0xab>; + }; + + spdif-tx@fe4e0000 { + power-domains = <0x60 0x26>; + pinctrl-names = "default"; + pinctrl-0 = <0x142>; + clock-names = "mclk\0hclk"; + assigned-clocks = <0x02 0x3f>; + assigned-clock-parents = <0x02 0x05>; + interrupts = <0x00 0xc1 0x04>; + clocks = <0x02 0x41 0x02 0x3e>; + dma-names = "tx"; + #sound-dai-cells = <0x00>; + compatible = "rockchip,rk3588-spdif\0rockchip,rk3568-spdif"; + status = "disabled"; + reg = <0x00 0xfe4e0000 0x00 0x1000>; + phandle = <0x29d>; + dmas = <0x7c 0x05>; + }; + + vad@fe4d0000 { + rockchip,det-channel = <0x00>; + rockchip,audio-src = <0x00>; + clock-names = "hclk"; + reg-names = "vad"; + interrupts = <0x00 0xca 0x04>; + clocks = <0x02 0x2a0>; + #sound-dai-cells = <0x00>; + compatible = "rockchip,rk3588-vad"; + status = "disabled"; + rockchip,mode = <0x00>; + reg = <0x00 0xfe4d0000 0x00 0x1000>; + phandle = <0x29c>; + }; + + jpegd@fdb90000 { + power-domains = <0x60 0x15>; + iommus = <0xbb>; + clock-names = "aclk_vcodec\0hclk_vcodec"; + assigned-clocks = <0x02 0x1b4>; + rockchip,normal-rates = <0x23c34600 0x00>; + assigned-clock-rates = <0x23c34600>; + resets = <0x02 0x2d2 0x02 0x2d3>; + interrupts = <0x00 0x81 0x04>; + clocks = <0x02 0x1b4 0x02 0x1b5>; + rockchip,srv = <0xb8>; + rockchip,taskqueue-node = <0x01>; + compatible = "rockchip,rkv-jpeg-decoder-v1"; + status = "okay"; + interrupt-names = "irq_jpegd"; + rockchip,skip-pmu-idle-request; + reg = <0x00 0xfdb90000 0x00 0x400>; + phandle = <0x26c>; + reset-names = "video_a\0video_h"; + }; + + cpuinfo { + nvmem-cells = <0x2a 0x2b 0x2c>; + compatible = "rockchip,cpuinfo"; + nvmem-cell-names = "id\0cpu-version\0cpu-code"; + }; + + qos@fdf60400 { + compatible = "syscon"; + reg = <0x00 0xfdf60400 0x00 0x20>; + phandle = <0x8f>; + }; + + spi@feb20000 { + pinctrl-names = "default"; + #address-cells = <0x01>; + num-cs = <0x01>; + pinctrl-0 = <0x154 0x155>; + clock-names = "spiclk\0apb_pclk"; + assigned-clocks = <0x02 0xa5>; + assigned-clock-rates = <0xbebc200>; + interrupts = <0x00 0x148 0x04>; + clocks = <0x02 0xa5 0x02 0xa0>; + #size-cells = <0x00>; + dma-names = "tx\0rx"; + compatible = "rockchip,rk3066-spi"; + status = "okay"; + reg = <0x00 0xfeb20000 0x00 0x1000>; + phandle = <0x2ad>; + dmas = <0xf1 0x0f 0xf1 0x10>; + + rk806single@0 { + vcc11-supply = <0x15b>; + pinctrl-names = "default\0pmic-power-off"; + vcc12-supply = <0x78>; + vcc13-supply = <0x15c>; + vcc14-supply = <0x15c>; + pinctrl-0 = <0x156 0x157 0x158 0x159>; + interrupts = <0x07 0x08>; + spi-max-frequency = <0xf4240>; + interrupt-parent = <0x7b>; + low_voltage_threshold = <0xbb8>; + vcca-supply = <0x78>; + vcc1-supply = <0x78>; + pmic-reset-func = <0x01>; + vcc2-supply = <0x78>; + hotdie_temperture_threshold = <0x73>; + compatible = "rockchip,rk806"; + vcc3-supply = <0x78>; + pinctrl-1 = <0x15a>; + vcc4-supply = <0x78>; + vcc5-supply = <0x78>; + reg = <0x00>; + phandle = <0x2ae>; + vcc6-supply = <0x78>; + shutdown_voltage_threshold = <0xa8c>; + vcc7-supply = <0x78>; + vcc8-supply = <0x78>; + shutdown_temperture_threshold = <0xa0>; + vcc9-supply = <0x78>; + vcc10-supply = <0x78>; + + pinctrl_rk806 { + gpio-controller; + phandle = <0x2af>; + #gpio-cells = <0x02>; + + rk806_dvs2_rst { + function = "pin_fun3"; + pins = "gpio_pwrctrl2"; + phandle = <0x2b4>; + }; + + rk806_dvs3_null { + function = "pin_fun0"; + pins = "gpio_pwrctrl3"; + phandle = <0x159>; + }; + + rk806_dvs3_dvs { + function = "pin_fun4"; + pins = "gpio_pwrctrl3"; + phandle = <0x2ba>; + }; + + rk806_dvs3_rst { + function = "pin_fun3"; + pins = "gpio_pwrctrl3"; + phandle = <0x2b9>; + }; + + rk806_dvs2_null { + function = "pin_fun0"; + pins = "gpio_pwrctrl2"; + phandle = <0x158>; + }; + + rk806_dvs1_pwrdn { + function = "pin_fun2"; + pins = "gpio_pwrctrl1"; + phandle = <0x15a>; + }; + + rk806_dvs1_slp { + function = "pin_fun1"; + pins = "gpio_pwrctrl1"; + phandle = <0x2b0>; + }; + + rk806_dvs1_null { + function = "pin_fun0"; + pins = "gpio_pwrctrl2"; + phandle = <0x157>; + }; + + rk806_dvs3_gpio { + function = "pin_fun5"; + pins = "gpio_pwrctrl3"; + phandle = <0x2bb>; + }; + + rk806_dvs2_gpio { + function = "pin_fun5"; + pins = "gpio_pwrctrl2"; + phandle = <0x2b6>; + }; + + rk806_dvs2_slp { + function = "pin_fun1"; + pins = "gpio_pwrctrl2"; + phandle = <0x2b2>; + }; + + rk806_dvs2_pwrdn { + function = "pin_fun2"; + pins = "gpio_pwrctrl2"; + phandle = <0x2b3>; + }; + + rk806_dvs1_rst { + function = "pin_fun3"; + pins = "gpio_pwrctrl1"; + phandle = <0x2b1>; + }; + + rk806_dvs3_slp { + function = "pin_fun1"; + pins = "gpio_pwrctrl3"; + phandle = <0x2b7>; + }; + + rk806_dvs2_dvs { + function = "pin_fun4"; + pins = "gpio_pwrctrl2"; + phandle = <0x2b5>; + }; + + rk806_dvs3_pwrdn { + function = "pin_fun2"; + pins = "gpio_pwrctrl3"; + phandle = <0x2b8>; + }; + }; + + pwrkey { + status = "okay"; + }; + + regulators { + + PLDO_REG2 { + regulator-max-microvolt = <0x1b7740>; + regulator-boot-on; + regulator-always-on; + regulator-min-microvolt = <0x1b7740>; + regulator-name = "vcc_1v8_s0"; + phandle = <0x177>; + + regulator-state-mem { + regulator-off-in-suspend; + regulator-suspend-microvolt = <0x1b7740>; + }; + }; + + DCDC_REG4 { + regulator-max-microvolt = <0xe7ef0>; + regulator-boot-on; + regulator-init-microvolt = <0xb71b0>; + regulator-always-on; + regulator-min-microvolt = <0x86470>; + regulator-name = "vdd_vdenc_s0"; + regulator-ramp-delay = <0x30d4>; + phandle = <0x2bc>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + DCDC_REG2 { + regulator-max-microvolt = <0xe7ef0>; + regulator-boot-on; + regulator-always-on; + regulator-min-microvolt = <0x86470>; + regulator-name = "vdd_cpu_lit_s0"; + regulator-ramp-delay = <0x30d4>; + phandle = <0x12>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + NLDO_REG4 { + regulator-max-microvolt = <0xcf850>; + regulator-boot-on; + regulator-always-on; + regulator-min-microvolt = <0xcf850>; + regulator-name = "vdd_0v85_s0"; + phandle = <0x2c6>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + DCDC_REG9 { + regulator-boot-on; + regulator-always-on; + regulator-name = "vddq_ddr_s0"; + phandle = <0x2bf>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + NLDO_REG2 { + regulator-max-microvolt = <0xcf850>; + regulator-boot-on; + regulator-always-on; + regulator-min-microvolt = <0xcf850>; + regulator-name = "vdd_ddr_pll_s0"; + phandle = <0x2c5>; + + regulator-state-mem { + regulator-off-in-suspend; + regulator-suspend-microvolt = <0xcf850>; + }; + }; + + PLDO_REG5 { + regulator-max-microvolt = <0x325aa0>; + regulator-boot-on; + regulator-always-on; + regulator-min-microvolt = <0x1b7740>; + regulator-name = "vccio_sd_s0"; + phandle = <0x118>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + DCDC_REG7 { + regulator-max-microvolt = <0x1e8480>; + regulator-boot-on; + regulator-always-on; + regulator-min-microvolt = <0x1e8480>; + regulator-name = "vdd_2v0_pldo_s3"; + phandle = <0x15b>; + + regulator-state-mem { + regulator-suspend-microvolt = <0x1e8480>; + regulator-on-in-suspend; + }; + }; + + PLDO_REG3 { + regulator-max-microvolt = <0x124f80>; + regulator-boot-on; + regulator-always-on; + regulator-min-microvolt = <0x124f80>; + regulator-name = "avdd_1v2_s0"; + phandle = <0x2c1>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + DCDC_REG5 { + regulator-max-microvolt = <0xdbba0>; + regulator-boot-on; + regulator-always-on; + regulator-min-microvolt = <0xa4cb8>; + regulator-name = "vdd_ddr_s0"; + regulator-ramp-delay = <0x30d4>; + phandle = <0x42>; + + regulator-state-mem { + regulator-off-in-suspend; + regulator-suspend-microvolt = <0xcf850>; + }; + }; + + DCDC_REG10 { + regulator-max-microvolt = <0x1b7740>; + regulator-boot-on; + regulator-always-on; + regulator-min-microvolt = <0x1b7740>; + regulator-name = "vcc_1v8_s3"; + phandle = <0x2c0>; + + regulator-state-mem { + regulator-suspend-microvolt = <0x1b7740>; + regulator-on-in-suspend; + }; + }; + + PLDO_REG1 { + regulator-max-microvolt = <0x1b7740>; + regulator-boot-on; + regulator-always-on; + regulator-min-microvolt = <0x1b7740>; + regulator-name = "avcc_1v8_s0"; + phandle = <0x1de>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + DCDC_REG3 { + regulator-max-microvolt = <0xb71b0>; + regulator-boot-on; + regulator-always-on; + regulator-min-microvolt = <0xa4cb8>; + regulator-name = "vdd_log_s0"; + regulator-ramp-delay = <0x30d4>; + phandle = <0x43>; + + regulator-state-mem { + regulator-suspend-microvolt = <0xb71b0>; + regulator-on-in-suspend; + }; + }; + + DCDC_REG1 { + regulator-max-microvolt = <0xe7ef0>; + regulator-boot-on; + regulator-enable-ramp-delay = <0x190>; + regulator-min-microvolt = <0x86470>; + regulator-name = "vdd_gpu_s0"; + regulator-ramp-delay = <0x30d4>; + phandle = <0x62>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + NLDO_REG5 { + regulator-max-microvolt = <0xb71b0>; + regulator-boot-on; + regulator-always-on; + regulator-min-microvolt = <0xb71b0>; + regulator-name = "vdd_0v75_s0"; + phandle = <0x2c7>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + NLDO_REG3 { + regulator-max-microvolt = <0xb71b0>; + regulator-boot-on; + regulator-always-on; + regulator-min-microvolt = <0xb71b0>; + regulator-name = "avdd_0v75_s0"; + phandle = <0x1df>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + PLDO_REG6 { + regulator-max-microvolt = <0x1b7740>; + regulator-boot-on; + regulator-always-on; + regulator-min-microvolt = <0x1b7740>; + regulator-name = "pldo6_s3"; + phandle = <0x2c3>; + + regulator-state-mem { + regulator-suspend-microvolt = <0x1b7740>; + regulator-on-in-suspend; + }; + }; + + DCDC_REG8 { + regulator-max-microvolt = <0x325aa0>; + regulator-boot-on; + regulator-always-on; + regulator-min-microvolt = <0x325aa0>; + regulator-name = "vcc_3v3_s3"; + phandle = <0x2be>; + + regulator-state-mem { + regulator-suspend-microvolt = <0x325aa0>; + regulator-on-in-suspend; + }; + }; + + NLDO_REG1 { + regulator-max-microvolt = <0xb71b0>; + regulator-boot-on; + regulator-always-on; + regulator-min-microvolt = <0xb71b0>; + regulator-name = "vdd_0v75_s3"; + phandle = <0x2c4>; + + regulator-state-mem { + regulator-suspend-microvolt = <0xb71b0>; + regulator-on-in-suspend; + }; + }; + + PLDO_REG4 { + regulator-max-microvolt = <0x325aa0>; + regulator-boot-on; + regulator-always-on; + regulator-min-microvolt = <0x325aa0>; + regulator-name = "vcc_3v3_s0"; + phandle = <0x2c2>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + DCDC_REG6 { + regulator-boot-on; + regulator-always-on; + regulator-name = "vdd2_ddr_s3"; + phandle = <0x2bd>; + + regulator-state-mem { + regulator-on-in-suspend; + }; + }; + }; + }; + }; + + usbhost3_0 { + #address-cells = <0x02>; + clock-names = "ref\0suspend\0bus\0utmi\0php\0pipe"; + clocks = <0x02 0x179 0x02 0x178 0x02 0x177 0x02 0x17a 0x02 0x166 0x02 0x181>; + #size-cells = <0x02>; + compatible = "rockchip,rk3588-dwc3\0rockchip,rk3399-dwc3"; + ranges; + status = "disabled"; + phandle = <0x258>; + + usb@fcd00000 { + snps,dis_enblslpm_quirk; + phy-names = "usb3-phy"; + snps,dis-u2-freeclk-exists-quirk; + phy_type = "utmi_wide"; + resets = <0x02 0x237>; + interrupts = <0x00 0xde 0x04>; + snps,dis_rxdet_inp3_quirk; + compatible = "snps,dwc3"; + snps,parkmode-disable-hs-quirk; + snps,dis-del-phy-power-chg-quirk; + status = "disabled"; + snps,parkmode-disable-ss-quirk; + phys = <0x70 0x04>; + reg = <0x00 0xfcd00000 0x00 0x400000>; + phandle = <0x259>; + dr_mode = "host"; + reset-names = "usb3-host"; + snps,dis-tx-ipgap-linecheck-quirk; + }; + }; + + pcie@fe190000 { + #address-cells = <0x03>; + rockchip,pipe-grf = <0x76>; + phy-names = "pcie-phy"; + bus-range = <0x40 0x4f>; + clock-names = "aclk_mst\0aclk_slv\0aclk_dbi\0pclk\0aux\0pipe"; + reg-names = "pcie-apb\0pcie-dbi"; + num-ob-windows = <0x08>; + resets = <0x02 0x211 0x02 0x220>; + interrupts = <0x00 0xfd 0x04 0x00 0xfc 0x04 0x00 0xfb 0x04 0x00 0xfa 0x04 0x00 0xf9 0x04>; + clocks = <0x02 0x152 0x02 0x157 0x02 0x14d 0x02 0x15d 0x02 0x162 0x02 0x182>; + interrupt-map = <0x00 0x00 0x00 0x01 0x107 0x00 0x00 0x00 0x00 0x02 0x107 0x01 0x00 0x00 0x00 0x03 0x107 0x02 0x00 0x00 0x00 0x04 0x107 0x03>; + #size-cells = <0x02>; + max-link-speed = <0x02>; + device_type = "pci"; + interrupt-map-mask = <0x00 0x00 0x00 0x07>; + num-lanes = <0x01>; + compatible = "rockchip,rk3588-pcie\0snps,dw-pcie"; + ranges = <0x800 0x00 0xf4000000 0x00 0xf4000000 0x00 0x100000 0x81000000 0x00 0xf4100000 0x00 0xf4100000 0x00 0x100000 0x82000000 0x00 0xf4200000 0x00 0xf4200000 0x00 0xe00000 0xc3000000 0x0a 0x00 0x0a 0x00 0x00 0x40000000>; + msi-map = <0x4000 0x106 0x4000 0x1000>; + #interrupt-cells = <0x01>; + status = "disabled"; + interrupt-names = "sys\0pmc\0msg\0legacy\0err"; + phys = <0x108 0x02>; + num-viewport = <0x04>; + reg = <0x00 0xfe190000 0x00 0x10000 0x0a 0x41000000 0x00 0x400000>; + linux,pci-domain = <0x04>; + phandle = <0x28d>; + reset-names = "pcie\0periph"; + num-ib-windows = <0x08>; + + legacy-interrupt-controller { + #address-cells = <0x00>; + interrupts = <0x00 0xfa 0x01>; + interrupt-parent = <0x01>; + #interrupt-cells = <0x01>; + phandle = <0x107>; + interrupt-controller; + }; + }; + + rkcif-mipi-lvds3-sditf-vir1 { + compatible = "rockchip,rkcif-sditf"; + status = "disabled"; + rockchip,cif = <0x57>; + phandle = <0x238>; + }; + + aliases { + i2c3 = "/i2c@feab0000"; + ethernet0 = "/ethernet@fe1b0000"; + pwm9 = "/pwm@febe0010"; + pwm14 = "/pwm@febf0020"; + spi2 = "/spi@feb20000"; + usbdp0 = "/phy@fed80000"; + gpio0 = "/pinctrl/gpio@fd8a0000"; + dsi1 = "/dsi@fde30000"; + hdmi1 = "/hdmi@fdea0000"; + serial7 = "/serial@feba0000"; + i2c1 = "/i2c@fea90000"; + pwm7 = "/pwm@febd0030"; + pwm12 = "/pwm@febf0000"; + jpege3 = "/jpege-core@fdbac000"; + spi0 = "/spi@feb00000"; + hdptx1 = "/phy@fed70000"; + csi2dphy5 = "/csi2-dphy5"; + serial5 = "/serial@feb80000"; + csi2dcphy1 = "/csi2-dcphy1"; + pwm5 = "/pwm@febd0010"; + mmc1 = "/mmc@fe2c0000"; + pwm10 = "/pwm@febe0020"; + jpege1 = "/jpege-core@fdba4000"; + rkcif_mipi_lvds4 = "/rkcif-mipi-lvds4"; + i2c8 = "/i2c@feca0000"; + dp0 = "/dp@fde50000"; + csi2dphy3 = "/csi2-dphy3"; + serial3 = "/serial@feb60000"; + edp0 = "/edp@fdec0000"; + pwm3 = "/pwm@fd8b0030"; + hdcp1 = "/hdcp@fde70000"; + rkcif_mipi_lvds2 = "/rkcif-mipi-lvds2"; + i2c6 = "/i2c@fec80000"; + csi2dphy1 = "/csi2-dphy1"; + serial1 = "/serial@feb40000"; + pwm1 = "/pwm@fd8b0010"; + rkvenc0 = "/rkvenc-core@fdbd0000"; + spi5 = "/spi@fe2b0000"; + gpio3 = "/pinctrl/gpio@fec40000"; + hdptxhdmi1 = "/hdmiphy@fed70000"; + rkcif_mipi_lvds0 = "/rkcif-mipi-lvds"; + i2c4 = "/i2c@feac0000"; + ethernet1 = "/ethernet@fe1c0000"; + rkvdec0 = "/rkvdec-core@fdc38000"; + pwm15 = "/pwm@febf0030"; + hdmirx0 = "/hdmirx-controller@fdee0000"; + spi3 = "/spi@feb30000"; + usbdp1 = "/phy@fed90000"; + gpio1 = "/pinctrl/gpio@fec20000"; + serial8 = "/serial@febb0000"; + i2c2 = "/i2c@feaa0000"; + pwm8 = "/pwm@febe0000"; + pwm13 = "/pwm@febf0010"; + spi1 = "/spi@feb10000"; + dsi0 = "/dsi@fde20000"; + hdmi0 = "/hdmi@fde80000"; + serial6 = "/serial@feb90000"; + i2c0 = "/i2c@fd880000"; + pwm6 = "/pwm@febd0020"; + mmc2 = "/mmc@fe2d0000"; + pwm11 = "/pwm@febe0030"; + jpege2 = "/jpege-core@fdba8000"; + hdptx0 = "/phy@fed60000"; + rkcif_mipi_lvds5 = "/rkcif-mipi-lvds5"; + dp1 = "/dp@fde60000"; + csi2dphy4 = "/csi2-dphy4"; + serial4 = "/serial@feb70000"; + edp1 = "/edp@fded0000"; + csi2dcphy0 = "/csi2-dcphy0"; + pwm4 = "/pwm@febd0000"; + mmc0 = "/mmc@fe2e0000"; + jpege0 = "/jpege-core@fdba0000"; + rkcif_mipi_lvds3 = "/rkcif-mipi-lvds3"; + i2c7 = "/i2c@fec90000"; + csi2dphy2 = "/csi2-dphy2"; + serial2 = "/serial@feb50000"; + pwm2 = "/pwm@fd8b0020"; + rkvenc1 = "/rkvenc-core@fdbe0000"; + gpio4 = "/pinctrl/gpio@fec50000"; + hdcp0 = "/hdcp@fde40000"; + rkcif_mipi_lvds1 = "/rkcif-mipi-lvds1"; + i2c5 = "/i2c@fead0000"; + csi2dphy0 = "/csi2-dphy0"; + serial0 = "/serial@fd890000"; + rkvdec1 = "/rkvdec-core@fdc48000"; + pwm0 = "/pwm@fd8b0000"; + spi4 = "/spi@fecb0000"; + gpio2 = "/pinctrl/gpio@fec30000"; + hdptxhdmi0 = "/hdmiphy@fed60000"; + serial9 = "/serial@febc0000"; + }; + + spdif-tx@fdde8000 { + power-domains = <0x60 0x1a>; + clock-names = "mclk\0hclk"; + assigned-clocks = <0x02 0x259>; + assigned-clock-parents = <0x02 0x05>; + interrupts = <0x00 0xc5 0x04>; + clocks = <0x02 0x25c 0x02 0x258>; + dma-names = "tx"; + #sound-dai-cells = <0x00>; + compatible = "rockchip,rk3588-spdif\0rockchip,rk3568-spdif"; + status = "disabled"; + reg = <0x00 0xfdde8000 0x00 0x1000>; + phandle = <0x47d>; + dmas = <0xf1 0x08>; + }; + + i2s@fe490000 { + power-domains = <0x60 0x26>; + pinctrl-names = "default\0idle\0clk"; + pinctrl-2 = <0x12d 0x12e>; + pinctrl-0 = <0x12a 0x12b>; + clock-names = "i2s_clk\0i2s_hclk"; + assigned-clocks = <0x02 0x24>; + assigned-clock-parents = <0x02 0x05>; + interrupts = <0x00 0xb6 0x04>; + clocks = <0x02 0x27 0x02 0x22>; + dma-names = "tx\0rx"; + #sound-dai-cells = <0x00>; + compatible = "rockchip,rk3588-i2s\0rockchip,rk3066-i2s"; + pinctrl-1 = <0x12c>; + status = "disabled"; + reg = <0x00 0xfe490000 0x00 0x1000>; + phandle = <0x298>; + dmas = <0xf1 0x00 0xf1 0x01>; + rockchip,clk-trcm = <0x01>; + }; + + syscon@fd5d0000 { + #address-cells = <0x01>; + #size-cells = <0x01>; + compatible = "rockchip,rk3588-usb2phy-grf\0syscon\0simple-mfd"; + reg = <0x00 0xfd5d0000 0x00 0x4000>; + phandle = <0x18b>; + + usb2-phy@0 { + clock-output-names = "usb480m_phy0"; + clock-names = "phyclk"; + resets = <0x02 0xc0047 0x02 0x488>; + interrupts = <0x00 0x189 0x04>; + clocks = <0x02 0x2b5>; + #clock-cells = <0x00>; + rockchip,usbctrl-grf = <0x74>; + compatible = "rockchip,rk3588-usb2phy"; + status = "okay"; + reg = <0x00 0x10>; + phandle = <0x18d>; + reset-names = "phy\0apb"; + + otg-port { + #phy-cells = <0x00>; + rockchip,typec-vbus-det; + status = "okay"; + phandle = <0x66>; + }; + }; + }; + + i2c@feac0000 { + pinctrl-names = "default"; + #address-cells = <0x01>; + pinctrl-0 = <0x14b>; + clock-names = "i2c\0pclk"; + resets = <0x02 0xb3 0x02 0xab>; + interrupts = <0x00 0x141 0x04>; + clocks = <0x02 0x90 0x02 0x88>; + #size-cells = <0x00>; + compatible = "rockchip,rk3588-i2c\0rockchip,rk3399-i2c"; + status = "okay"; + reg = <0x00 0xfeac0000 0x00 0x1000>; + phandle = <0x2a7>; + reset-names = "i2c\0apb"; + + pc9202@3c { + pinctrl-names = "default"; + pinctrl-0 = <0x14c>; + index = <0x01>; + compatible = "firefly,pc9202"; + status = "okay"; + wd-en-gpio = <0x7b 0x14 0x00>; + driver-names = "wdt_base"; + reg = <0x3c>; + }; + }; + + rkcif-mipi-lvds5-sditf { + compatible = "rockchip,rkcif-sditf"; + status = "disabled"; + rockchip,cif = <0x1a2>; + phandle = <0x476>; + }; + + firmware { + + optee { + method = "smc"; + compatible = "linaro,optee-tz"; + phandle = <0x222>; + }; + + sdei { + method = "smc"; + compatible = "arm,sdei-1.0"; + phandle = <0x221>; + }; + + scmi { + shmem = <0x46>; + #address-cells = <0x01>; + #size-cells = <0x00>; + compatible = "arm,scmi-smc"; + phandle = <0x220>; + arm,smc-id = <0x82000010>; + + protocol@16 { + #reset-cells = <0x01>; + reg = <0x16>; + phandle = <0x11a>; + }; + + protocol@14 { + assigned-clocks = <0x0e 0x00 0x0e 0x02 0x0e 0x03>; + assigned-clock-rates = <0x30a32c00 0x30a32c00 0x30a32c00>; + #clock-cells = <0x01>; + reg = <0x14>; + phandle = <0x0e>; + }; + }; + }; + + rkvenc-core@fdbd0000 { + power-domains = <0x60 0x10>; + iommus = <0xc2>; + rockchip,ccu = <0xc3>; + clock-names = "aclk_vcodec\0hclk_vcodec\0clk_core"; + assigned-clocks = <0x02 0x1c5 0x02 0x1c6>; + rockchip,task-capacity = <0x08>; + rockchip,normal-rates = <0x1dcd6500 0x00 0x2faf0800>; + assigned-clock-rates = <0x1dcd6500 0x2faf0800>; + resets = <0x02 0x2f5 0x02 0x2f4 0x02 0x2f6>; + interrupts = <0x00 0x65 0x04>; + clocks = <0x02 0x1c5 0x02 0x1c4 0x02 0x1c6>; + rockchip,srv = <0xb8>; + rockchip,taskqueue-node = <0x07>; + compatible = "rockchip,rkv-encoder-v2-core"; + status = "okay"; + interrupt-names = "irq_rkvenc0"; + rockchip,skip-pmu-idle-request; + reg = <0x00 0xfdbd0000 0x00 0x6000>; + phandle = <0x272>; + reset-names = "video_a\0video_h\0video_core"; + operating-points-v2 = <0xc4>; + }; + + iommu@fdcc7f00 { + power-domains = <0x60 0x1c>; + clock-names = "aclk\0iface"; + interrupts = <0x00 0x88 0x04>; + clocks = <0x02 0x120 0x02 0x121>; + #iommu-cells = <0x00>; + compatible = "rockchip,iommu-v2"; + rockchip,disable-mmu-reset; + status = "disabled"; + interrupt-names = "isp1_mmu"; + reg = <0x00 0xfdcc7f00 0x00 0x100>; + phandle = <0xd1>; + }; + + rkcif-mipi-lvds-sditf { + compatible = "rockchip,rkcif-sditf"; + status = "disabled"; + rockchip,cif = <0x52>; + phandle = <0x22b>; + }; + + syscon@fd5c8000 { + compatible = "rockchip,rk3588-usbdpphy-grf\0syscon"; + reg = <0x00 0xfd5c8000 0x00 0x4000>; + phandle = <0x18c>; + }; + + gpu@fb000000 { + power-domains = <0x60 0x0c>; + downdifferential = <0x0a>; + mali-supply = <0x62>; + clock-names = "clk_mali\0clk_gpu_coregroup\0clk_gpu_stacks\0clk_gpu"; + assigned-clocks = <0x0e 0x05>; + assigned-clock-rates = <0xbebc200>; + interrupts = <0x00 0x5e 0x04 0x00 0x5d 0x04 0x00 0x5c 0x04>; + clocks = <0x0e 0x05 0x02 0x115 0x02 0x116 0x02 0x114>; + upthreshold = <0x1e>; + compatible = "arm,mali-bifrost"; + dynamic-power-coefficient = <0xba6>; + status = "okay"; + interrupt-names = "GPU\0MMU\0JOB"; + mem-supply = <0x62>; + reg = <0x00 0xfb000000 0x00 0x200000>; + phandle = <0x5f>; + operating-points-v2 = <0x61>; + #cooling-cells = <0x02>; + }; + + csi2-dphy4 { + rockchip,hw = <0x2d 0x2e>; + phy-names = "dcphy0\0dcphy1"; + compatible = "rockchip,rk3588-csi2-dphy"; + status = "disabled"; + phys = <0x2f 0x30>; + phandle = <0x213>; + }; + + mipi4-csi2-hw@fdd50000 { + clock-names = "pclk_csi2host"; + reg-names = "csihost_regs"; + resets = <0x02 0x328>; + interrupts = <0x00 0x97 0x04 0x00 0x98 0x04>; + clocks = <0x02 0x1d3>; + compatible = "rockchip,rk3588-mipi-csi2-hw"; + status = "okay"; + interrupt-names = "csi-intr1\0csi-intr2"; + reg = <0x00 0xfdd50000 0x00 0x10000>; + phandle = <0x4b>; + reset-names = "srst_csihost_p"; + }; + + qos@fdf82000 { + compatible = "syscon"; + reg = <0x00 0xfdf82000 0x00 0x20>; + phandle = <0x9d>; + }; + + rkcif-mipi-lvds2-sditf-vir2 { + compatible = "rockchip,rkcif-sditf"; + status = "disabled"; + rockchip,cif = <0x55>; + phandle = <0x235>; + }; + + rkisp1-vir0 { + rockchip,hw = <0x5a>; + compatible = "rockchip,rkisp-vir"; + status = "disabled"; + phandle = <0x23f>; + }; + + qos@fdf41100 { + compatible = "syscon"; + reg = <0x00 0xfdf41100 0x00 0x20>; + phandle = <0xa7>; + }; + + test-power { + status = "okay"; + }; + + usb-5v { + pinctrl-names = "default"; + regulator-boot-on; + gpio = <0xfe 0x03 0x00>; + pinctrl-0 = <0x1ef>; + regulator-always-on; + enable-active-high; + regulator-name = "usb_5v"; + compatible = "regulator-fixed"; + status = "okay"; + phandle = <0x4b1>; + }; + + phy@feda0000 { + clock-names = "pclk\0ref"; + resets = <0x02 0xc0043 0x02 0x3e 0x02 0x3f 0x02 0xc0044>; + clocks = <0x02 0x108 0x02 0x2b6>; + #phy-cells = <0x00>; + compatible = "rockchip,rk3588-mipi-dcphy"; + status = "okay"; + rockchip,grf = <0x190>; + reg = <0x00 0xfeda0000 0x00 0x10000>; + phandle = <0x2f>; + reset-names = "m_phy\0apb\0grf\0s_phy"; + }; + + mod-sleep-regulator { + pinctrl-names = "default"; + regulator-boot-on; + gpio = <0x7b 0x15 0x00>; + pinctrl-0 = <0x1ee>; + regulator-always-on; + enable-active-high; + regulator-name = "mod_sleep"; + compatible = "regulator-fixed"; + status = "okay"; + phandle = <0x4ae>; + + regulator-state-mem { + regulator-on-in-suspend; + }; + }; + + qos@fdf66c00 { + compatible = "syscon"; + reg = <0x00 0xfdf66c00 0x00 0x20>; + phandle = <0x99>; + }; + + crypto@fe370000 { + clock-names = "aclk\0hclk\0sclk\0pka"; + resets = <0x11a 0x0f>; + interrupts = <0x00 0xd1 0x04>; + clocks = <0x0e 0x0b 0x0e 0x0c 0x0e 0x14 0x0e 0x15>; + compatible = "rockchip,rk3588-crypto"; + status = "disabled"; + reg = <0x00 0xfe370000 0x00 0x2000>; + phandle = <0x296>; + reset-names = "crypto-rst"; + }; + + i2s@fddf4000 { + power-domains = <0x60 0x1a>; + rockchip,always-on; + clock-names = "mclk_tx\0mclk_rx\0hclk"; + assigned-clocks = <0x02 0x249>; + assigned-clock-parents = <0x02 0x07>; + resets = <0x02 0x3ef>; + interrupts = <0x00 0xba 0x04>; + clocks = <0x02 0x24c 0x02 0x24c 0x02 0x252>; + dma-names = "tx"; + #sound-dai-cells = <0x00>; + compatible = "rockchip,rk3588-i2s-tdm"; + rockchip,playback-only; + status = "okay"; + reg = <0x00 0xfddf4000 0x00 0x1000>; + phandle = <0x1e0>; + dmas = <0xf2 0x04>; + reset-names = "tx-m"; + rockchip,hdmi-path; + }; + + mipi0-csi2-hw@fdd10000 { + clock-names = "pclk_csi2host"; + reg-names = "csihost_regs"; + resets = <0x02 0x324>; + interrupts = <0x00 0x8f 0x04 0x00 0x90 0x04>; + clocks = <0x02 0x1cf>; + compatible = "rockchip,rk3588-mipi-csi2-hw"; + status = "okay"; + interrupt-names = "csi-intr1\0csi-intr2"; + reg = <0x00 0xfdd10000 0x00 0x10000>; + phandle = <0x47>; + reset-names = "srst_csihost_p"; + }; + + mipi4-csi2 { + rockchip,hw = <0x47 0x48 0x49 0x4a 0x4b 0x4c>; + compatible = "rockchip,rk3588-mipi-csi2"; + status = "disabled"; + phandle = <0x228>; + }; + + jpege-ccu { + compatible = "rockchip,vpu-jpege-ccu"; + status = "okay"; + phandle = <0xbd>; + }; + + dsi@fde30000 { + power-domains = <0x60 0x18>; + #address-cells = <0x01>; + phy-names = "dcphy"; + clock-names = "pclk\0sys_clk"; + resets = <0x02 0x355>; + interrupts = <0x00 0xa8 0x04>; + clocks = <0x02 0x279 0x02 0x27b>; + #size-cells = <0x00>; + compatible = "rockchip,rk3588-mipi-dsi2"; + status = "disabled"; + rockchip,grf = <0xd7>; + phys = <0x30>; + reg = <0x00 0xfde30000 0x00 0x10000>; + phandle = <0x283>; + reset-names = "apb"; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x00>; + phandle = <0x284>; + + endpoint@1 { + remote-endpoint = <0x3a>; + status = "disabled"; + reg = <0x01>; + phandle = <0xef>; + }; + + endpoint@0 { + remote-endpoint = <0xf4>; + status = "disabled"; + reg = <0x00>; + phandle = <0xea>; + }; + }; + }; + }; + + iommu@fcb00000 { + interrupts = <0x00 0x17d 0x04 0x00 0x17f 0x04 0x00 0x182 0x04 0x00 0x17b 0x04>; + #iommu-cells = <0x01>; + compatible = "arm,smmu-v3"; + status = "disabled"; + interrupt-names = "eventq\0gerror\0priq\0cmdq-sync"; + reg = <0x00 0xfcb00000 0x00 0x200000>; + phandle = <0x257>; + }; + + rkcif-mipi-lvds3 { + iommus = <0x50>; + rockchip,hw = <0x4f>; + compatible = "rockchip,rkcif-mipi-lvds"; + status = "disabled"; + phandle = <0x57>; + }; + + vcc-hub-regulator { + regulator-boot-on; + gpio = <0x182 0x01 0x00>; + regulator-always-on; + enable-active-high; + regulator-name = "vcc_hub"; + compatible = "regulator-fixed"; + status = "okay"; + phandle = <0x4af>; + }; + + syscon@fd5ac000 { + compatible = "rockchip,rk3588-usb-grf\0syscon"; + reg = <0x00 0xfd5ac000 0x00 0x4000>; + phandle = <0x74>; + }; + + qos@fdf40200 { + compatible = "syscon"; + reg = <0x00 0xfdf40200 0x00 0x20>; + phandle = <0xa9>; + }; + + rkisp@fdcb0000 { + power-domains = <0x60 0x1b>; + iommus = <0xd0>; + clock-names = "aclk_isp\0hclk_isp\0clk_isp_core\0clk_isp_core_marvin\0clk_isp_core_vicap"; + interrupts = <0x00 0x83 0x04 0x00 0x85 0x04 0x00 0x86 0x04>; + clocks = <0x02 0x1de 0x02 0x1df 0x02 0x1db 0x02 0x1dc 0x02 0x1dd>; + compatible = "rockchip,rk3588-rkisp"; + status = "okay"; + interrupt-names = "isp_irq\0mi_irq\0mipi_irq"; + reg = <0x00 0xfdcb0000 0x00 0x7f00>; + phandle = <0x58>; + }; + + serial@feba0000 { + reg-io-width = <0x04>; + pinctrl-names = "default"; + pinctrl-0 = <0x166>; + clock-names = "baudclk\0apb_pclk"; + interrupts = <0x00 0x152 0x04>; + clocks = <0x02 0xcf 0x02 0xb1>; + compatible = "rockchip,rk3588-uart\0snps,dw-apb-uart"; + status = "disabled"; + reg = <0x00 0xfeba0000 0x00 0x100>; + phandle = <0x2cf>; + dmas = <0xf2 0x07 0xf2 0x08>; + reg-shift = <0x02>; + }; + + rkcif-mipi-lvds1-sditf-vir3 { + compatible = "rockchip,rkcif-sditf"; + status = "disabled"; + rockchip,cif = <0x53>; + phandle = <0x232>; + }; + + chosen { + linux,initrd-end = <0x00 0xaac72ae>; + bootargs = "storagemedia=emmc androidboot.storagemedia=emmc androidboot.mode=normal storagenode=/mmc@fe2e0000 androidboot.verifiedbootstate=orange ro rootwait earlycon=uart8250,mmio32,0xfeb50000 console=ttyFIQ0 irqchip.gicv3_pseudo_nmi=0 root=PARTLABEL=rootfs rootfstype=ext4 overlayroot=device:dev=PARTLABEL=userdata,fstype=ext4,mkfs=1 coherent_pool=1m systemd.gpt_auto=0 cgroup_enable=memory swapaccount=1 net.ifnames=0 rcupdate.rcu_expedited=1 rcu_nocbs=all comm-05/28/2025 androidboot.fwver=ddr-v1.15-d5483af87d,spl-v1.13,bl31-v1.44,bl32-v1.15,uboot--boot"; + linux,initrd-start = <0x00 0xa200000>; + phandle = <0x48d>; + }; + + hdmi@fde80000 { + power-domains = <0x60 0x1a>; + reg-io-width = <0x04>; + pinctrl-names = "default"; + phy-names = "hdmi"; + pinctrl-0 = <0xf9 0xfa 0xfb 0xfc>; + clock-names = "pclk\0hpd\0earc\0hdmitx_ref\0aud\0dclk_vp0\0dclk_vp1\0dclk_vp2\0dclk_vp3\0hclk_vo1\0link_clk"; + resets = <0x02 0x3d0 0x02 0x49c>; + interrupts = <0x00 0xa9 0x04 0x00 0xaa 0x04 0x00 0xab 0x04 0x00 0xac 0x04 0x00 0x168 0x04>; + clocks = <0x02 0x221 0x02 0x265 0x02 0x222 0x02 0x223 0x02 0x246 0x02 0x274 0x02 0x275 0x02 0x276 0x02 0x277 0x05 0x35>; + #sound-dai-cells = <0x00>; + compatible = "rockchip,rk3588-dw-hdmi"; + status = "okay"; + rockchip,grf = <0xc8>; + phys = <0xfd>; + enable-gpios = <0xfe 0x08 0x00>; + reg = <0x00 0xfde80000 0x00 0x10000 0x00 0xfde90000 0x00 0x10000>; + phandle = <0x1d4>; + reset-names = "ref\0hdp"; + rockchip,vo1_grf = <0xd8>; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x00>; + phandle = <0x288>; + + endpoint@1 { + remote-endpoint = <0xff>; + status = "disabled"; + reg = <0x01>; + phandle = <0xe2>; + }; + + endpoint@2 { + remote-endpoint = <0x100>; + status = "disabled"; + reg = <0x02>; + phandle = <0xe8>; + }; + + endpoint@0 { + remote-endpoint = <0x3c>; + status = "okay"; + reg = <0x00>; + phandle = <0xdc>; + }; + }; + }; + }; + + cluster2-opp-table { + rockchip,pvtm-offset = <0x18>; + rockchip,pvtm-sample-time = <0x44c>; + rockchip,pvtm-hw = <0x06>; + nvmem-cells = <0x27 0x28 0x21>; + rockchip,low-temp = <0x2710>; + rockchip,pvtm-voltage-sel-hw = <0x00 0x603 0x00 0x604 0x61c 0x01 0x61d 0x635 0x02 0x636 0x64e 0x03 0x64f 0x66c 0x04 0x66d 0x68a 0x05 0x68b 0x6a8 0x06 0x6a9 0x270f 0x07>; + rockchip,pvtm-thermal-zone = "soc-thermal"; + rockchip,pvtm-low-len-sel = <0x03>; + rockchip,high-temp-max-freq = <0x21b100>; + opp-shared; + rockchip,reboot-freq = <0x1b7740>; + rockchip,pvtm-freq = <0x188940>; + rockchip,pvtm-ref-temp = <0x19>; + low-volt-mem-read-margin = <0x04>; + volt-mem-read-margin = <0xd0bd8 0x01 0xbac48 0x02 0xa4cb8 0x03 0x78d98 0x04>; + compatible = "operating-points-v2"; + rockchip,low-temp-min-volt = <0xb71b0>; + rockchip,grf = <0x29>; + nvmem-cell-names = "leakage\0opp-info\0specification_serial_number"; + rockchip,pvtm-voltage-sel = <0x00 0x63b 0x00 0x63c 0x64f 0x01 0x650 0x668 0x02 0x669 0x68b 0x03 0x68c 0x6ae 0x04 0x6af 0x6cf 0x05 0x6d0 0x6f0 0x06 0x6f1 0x270f 0x07>; + phandle = <0x1a>; + rockchip,idle-threshold-freq = <0x21b100>; + rockchip,pvtm-temp-prop = <0x10e 0x10e>; + rockchip,temp-hysteresis = <0x1388>; + rockchip,high-temp = <0x14c08>; + rockchip,pvtm-pvtpll; + rockchip,supported-hw; + intermediate-threshold-freq = <0xf6180>; + rockchip,pvtm-volt = <0xb71b0>; + + opp-j-m-2016000000 { + opp-microvolt = <0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0>; + opp-microvolt-L6 = <0xd8acc 0xd8acc 0xe7ef0 0xd8acc 0xd8acc 0xe7ef0>; + opp-microvolt-L4 = <0xdec74 0xdec74 0xe7ef0 0xdec74 0xdec74 0xe7ef0>; + opp-microvolt-L2 = <0xe4e1c 0xe4e1c 0xe7ef0 0xe4e1c 0xe4e1c 0xe7ef0>; + opp-hz = <0x00 0x7829b800>; + opp-supported-hw = <0x06 0xffff>; + opp-microvolt-L7 = <0xd59f8 0xd59f8 0xe7ef0 0xd59f8 0xd59f8 0xe7ef0>; + opp-microvolt-L5 = <0xdbba0 0xdbba0 0xe7ef0 0xdbba0 0xdbba0 0xe7ef0>; + opp-microvolt-L3 = <0xe1d48 0xe1d48 0xe7ef0 0xe1d48 0xe1d48 0xe7ef0>; + clock-latency-ns = <0x9c40>; + opp-microvolt-L1 = <0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0>; + }; + + opp-1200000000 { + opp-microvolt = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; + opp-hz = <0x00 0x47868c00>; + opp-supported-hw = <0xf9 0xffff>; + clock-latency-ns = <0x9c40>; + }; + + opp-j-m-1416000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + opp-hz = <0x00 0x54667200>; + opp-microvolt-L0 = <0xba284 0xba284 0xe7ef0 0xba284 0xba284 0xe7ef0>; + opp-supported-hw = <0x06 0xffff>; + opp-suspend; + clock-latency-ns = <0x9c40>; + }; + + opp-1008000000 { + opp-microvolt = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; + opp-hz = <0x00 0x3c14dc00>; + opp-supported-hw = <0xf9 0xffff>; + clock-latency-ns = <0x9c40>; + }; + + opp-2256000000 { + opp-microvolt = <0xf4240 0xf4240 0xf4240 0xf4240 0xf4240 0xf4240>; + opp-hz = <0x00 0x8677d400>; + opp-supported-hw = <0xf9 0x13>; + clock-latency-ns = <0x9c40>; + }; + + opp-j-m-1200000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + opp-hz = <0x00 0x47868c00>; + opp-supported-hw = <0x06 0xffff>; + clock-latency-ns = <0x9c40>; + }; + + opp-j-m-1008000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + opp-hz = <0x00 0x3c14dc00>; + opp-supported-hw = <0x06 0xffff>; + clock-latency-ns = <0x9c40>; + }; + + opp-j-m-816000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + opp-hz = <0x00 0x30a32c00>; + opp-supported-hw = <0x06 0xffff>; + clock-latency-ns = <0x9c40>; + }; + + opp-2400000000 { + opp-microvolt = <0xf4240 0xf4240 0xf4240 0xf4240 0xf4240 0xf4240>; + opp-hz = <0x00 0x8f0d1800>; + opp-supported-hw = <0xf9 0x80>; + clock-latency-ns = <0x9c40>; + }; + + opp-1800000000 { + opp-microvolt = <0xcf850 0xcf850 0xf4240 0xcf850 0xcf850 0xf4240>; + opp-microvolt-L6 = <0xbd358 0xbd358 0xf4240 0xbd358 0xbd358 0xf4240>; + opp-microvolt-L4 = <0xc3500 0xc3500 0xf4240 0xc3500 0xc3500 0xf4240>; + opp-microvolt-L2 = <0xc96a8 0xc96a8 0xf4240 0xc96a8 0xc96a8 0xf4240>; + opp-hz = <0x00 0x6b49d200>; + opp-supported-hw = <0xf9 0xffff>; + opp-microvolt-L7 = <0xba284 0xba284 0xf4240 0xba284 0xba284 0xf4240>; + opp-microvolt-L5 = <0xc042c 0xc042c 0xf4240 0xc042c 0xc042c 0xf4240>; + opp-microvolt-L3 = <0xc65d4 0xc65d4 0xf4240 0xc65d4 0xc65d4 0xf4240>; + clock-latency-ns = <0x9c40>; + opp-microvolt-L1 = <0xcc77c 0xcc77c 0xf4240 0xcc77c 0xcc77c 0xf4240>; + }; + + opp-j-m-600000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + opp-hz = <0x00 0x23c34600>; + opp-supported-hw = <0x06 0xffff>; + clock-latency-ns = <0x9c40>; + }; + + opp-2208000000 { + opp-microvolt = <0xf116c 0xf116c 0xf4240 0xf116c 0xf116c 0xf4240>; + opp-microvolt-L6 = <0xe1d48 0xe1d48 0xf4240 0xe1d48 0xe1d48 0xf4240>; + opp-microvolt-L4 = <0xeafc4 0xeafc4 0xf4240 0xeafc4 0xeafc4 0xf4240>; + opp-hz = <0x00 0x839b6800>; + opp-supported-hw = <0xf9 0xffff>; + opp-microvolt-L7 = <0xdec74 0xdec74 0xf4240 0xdec74 0xdec74 0xf4240>; + opp-microvolt-L5 = <0xe7ef0 0xe7ef0 0xf4240 0xe7ef0 0xe7ef0 0xf4240>; + opp-microvolt-L3 = <0xee098 0xee098 0xf4240 0xee098 0xee098 0xf4240>; + clock-latency-ns = <0x9c40>; + }; + + opp-1608000000 { + opp-microvolt = <0xba284 0xba284 0xf4240 0xba284 0xba284 0xf4240>; + opp-microvolt-L6 = <0xaae60 0xaae60 0xf4240 0xaae60 0xaae60 0xf4240>; + opp-microvolt-L4 = <0xb1008 0xb1008 0xf4240 0xb1008 0xb1008 0xf4240>; + opp-microvolt-L2 = <0xb71b0 0xb71b0 0xf4240 0xb71b0 0xb71b0 0xf4240>; + opp-hz = <0x00 0x5fd82200>; + opp-supported-hw = <0xf9 0xffff>; + opp-microvolt-L7 = <0xaae60 0xaae60 0xf4240 0xaae60 0xaae60 0xf4240>; + opp-microvolt-L5 = <0xadf34 0xadf34 0xf4240 0xadf34 0xadf34 0xf4240>; + opp-microvolt-L3 = <0xb40dc 0xb40dc 0xf4240 0xb40dc 0xb40dc 0xf4240>; + clock-latency-ns = <0x9c40>; + }; + + opp-j-m-408000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + opp-hz = <0x00 0x18519600>; + opp-supported-hw = <0x06 0xffff>; + clock-latency-ns = <0x9c40>; + }; + + opp-j-m-1800000000 { + opp-microvolt = <0xd59f8 0xd59f8 0xe7ef0 0xd59f8 0xd59f8 0xe7ef0>; + opp-microvolt-L6 = <0xc3500 0xc3500 0xe7ef0 0xc3500 0xc3500 0xe7ef0>; + opp-microvolt-L4 = <0xc96a8 0xc96a8 0xe7ef0 0xc96a8 0xc96a8 0xe7ef0>; + opp-microvolt-L2 = <0xcf850 0xcf850 0xe7ef0 0xcf850 0xcf850 0xe7ef0>; + opp-hz = <0x00 0x6b49d200>; + opp-supported-hw = <0x06 0xffff>; + opp-microvolt-L7 = <0xc042c 0xc042c 0xe7ef0 0xc042c 0xc042c 0xe7ef0>; + opp-microvolt-L5 = <0xc65d4 0xc65d4 0xe7ef0 0xc65d4 0xc65d4 0xe7ef0>; + opp-microvolt-L3 = <0xcc77c 0xcc77c 0xe7ef0 0xcc77c 0xcc77c 0xe7ef0>; + clock-latency-ns = <0x9c40>; + opp-microvolt-L1 = <0xd2924 0xd2924 0xe7ef0 0xd2924 0xd2924 0xe7ef0>; + }; + + opp-2352000000 { + opp-microvolt = <0xf4240 0xf4240 0xf4240 0xf4240 0xf4240 0xf4240>; + opp-hz = <0x00 0x8c30ac00>; + opp-supported-hw = <0xf9 0x48>; + clock-latency-ns = <0x9c40>; + }; + + opp-816000000 { + opp-microvolt = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; + opp-hz = <0x00 0x30a32c00>; + opp-supported-hw = <0xf9 0xffff>; + clock-latency-ns = <0x9c40>; + }; + + opp-j-m-1608000000 { + opp-microvolt = <0xc042c 0xc042c 0xe7ef0 0xc042c 0xc042c 0xe7ef0>; + opp-microvolt-L6 = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + opp-microvolt-L4 = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + opp-microvolt-L2 = <0xbd358 0xbd358 0xe7ef0 0xbd358 0xbd358 0xe7ef0>; + opp-hz = <0x00 0x5fd82200>; + opp-supported-hw = <0x06 0xffff>; + opp-microvolt-L7 = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + opp-microvolt-L5 = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + opp-microvolt-L3 = <0xba284 0xba284 0xe7ef0 0xba284 0xba284 0xe7ef0>; + clock-latency-ns = <0x9c40>; + }; + + opp-600000000 { + opp-microvolt = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; + opp-hz = <0x00 0x23c34600>; + opp-supported-hw = <0xf9 0xffff>; + clock-latency-ns = <0x9c40>; + }; + + opp-2016000000 { + opp-microvolt = <0xe1d48 0xe1d48 0xf4240 0xe1d48 0xe1d48 0xf4240>; + opp-microvolt-L6 = <0xcf850 0xcf850 0xf4240 0xcf850 0xcf850 0xf4240>; + opp-microvolt-L4 = <0xd59f8 0xd59f8 0xf4240 0xd59f8 0xd59f8 0xf4240>; + opp-microvolt-L2 = <0xdbba0 0xdbba0 0xf4240 0xdbba0 0xdbba0 0xf4240>; + opp-hz = <0x00 0x7829b800>; + opp-supported-hw = <0xf9 0xffff>; + opp-microvolt-L7 = <0xcc77c 0xcc77c 0xf4240 0xcc77c 0xcc77c 0xf4240>; + opp-microvolt-L5 = <0xd2924 0xd2924 0xf4240 0xd2924 0xd2924 0xf4240>; + opp-microvolt-L3 = <0xd8acc 0xd8acc 0xf4240 0xd8acc 0xd8acc 0xf4240>; + clock-latency-ns = <0x9c40>; + opp-microvolt-L1 = <0xdec74 0xdec74 0xf4240 0xdec74 0xdec74 0xf4240>; + }; + + opp-1416000000 { + opp-microvolt = <0xb1008 0xb1008 0xf4240 0xb1008 0xb1008 0xf4240>; + opp-microvolt-L6 = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; + opp-microvolt-L4 = <0xaae60 0xaae60 0xf4240 0xaae60 0xaae60 0xf4240>; + opp-microvolt-L2 = <0xadf34 0xadf34 0xf4240 0xadf34 0xadf34 0xf4240>; + opp-hz = <0x00 0x54667200>; + opp-supported-hw = <0xf9 0xffff>; + opp-microvolt-L7 = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; + opp-microvolt-L5 = <0xa7d8c 0xa7d8c 0xf4240 0xa7d8c 0xa7d8c 0xf4240>; + opp-microvolt-L3 = <0xaae60 0xaae60 0xf4240 0xaae60 0xaae60 0xf4240>; + clock-latency-ns = <0x9c40>; + }; + + opp-408000000 { + opp-microvolt = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; + opp-hz = <0x00 0x18519600>; + opp-supported-hw = <0xf9 0xffff>; + opp-suspend; + clock-latency-ns = <0x9c40>; + }; + + opp-2304000000 { + opp-microvolt = <0xf4240 0xf4240 0xf4240 0xf4240 0xf4240 0xf4240>; + opp-hz = <0x00 0x89544000>; + opp-supported-hw = <0xf9 0x24>; + clock-latency-ns = <0x9c40>; + }; + }; + + rkcif-dvp { + iommus = <0x50>; + rockchip,hw = <0x4f>; + compatible = "rockchip,rkcif-dvp"; + status = "disabled"; + phandle = <0x51>; + }; + + rkisp0-vir2 { + rockchip,hw = <0x58>; + compatible = "rockchip,rkisp-vir"; + status = "okay"; + phandle = <0x23d>; + + port { + #address-cells = <0x01>; + #size-cells = <0x00>; + + endpoint@0 { + remote-endpoint = <0x59>; + reg = <0x00>; + phandle = <0x56>; + }; + }; + }; + + i2c@fea90000 { + pinctrl-names = "default"; + #address-cells = <0x01>; + pinctrl-0 = <0x148>; + clock-names = "i2c\0pclk"; + resets = <0x02 0xb0 0x02 0xa8>; + interrupts = <0x00 0x13e 0x04>; + clocks = <0x02 0x8d 0x02 0x85>; + #size-cells = <0x00>; + compatible = "rockchip,rk3588-i2c\0rockchip,rk3399-i2c"; + status = "okay"; + reg = <0x00 0xfea90000 0x00 0x1000>; + phandle = <0x2a4>; + reset-names = "i2c\0apb"; + + rk8602@42 { + regulator-max-microvolt = <0xe7ef0>; + regulator-boot-on; + rockchip,suspend-voltage-selector = <0x01>; + regulator-always-on; + regulator-min-microvolt = <0x86470>; + regulator-name = "vdd_npu_s0"; + regulator-ramp-delay = <0x8fc>; + compatible = "rockchip,rk8602"; + reg = <0x42>; + phandle = <0xb3>; + vin-supply = <0x78>; + regulator-compatible = "rk860x-reg"; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + }; + + syscon@fd58a000 { + compatible = "rockchip,rk3588-pmu1-grf\0syscon"; + reg = <0x00 0xfd58a000 0x00 0x2000>; + phandle = <0x104>; + }; + + syscon@fd5ec000 { + compatible = "rockchip,mipi-dcphy-grf\0syscon"; + reg = <0x00 0xfd5ec000 0x00 0x4000>; + phandle = <0x191>; + }; + + venc-opp-table { + nvmem-cells = <0xc6 0xc7>; + rockchip,leakage-voltage-sel = <0x01 0x0f 0x00 0x10 0x19 0x01 0x1a 0xfe 0x02>; + volt-mem-read-margin = <0xd0bd8 0x01 0xbac48 0x02 0xa4cb8 0x03 0x78d98 0x04>; + compatible = "operating-points-v2"; + rockchip,grf = <0xc8>; + nvmem-cell-names = "leakage\0opp-info"; + phandle = <0xc4>; + + opp-800000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; + opp-microvolt-L2 = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; + opp-hz = <0x00 0x2faf0800>; + opp-microvolt-L0 = <0xc3500 0xc3500 0xcf850 0xc3500 0xc3500 0xcf850>; + opp-microvolt-L1 = <0xbd358 0xbd358 0xcf850 0xbd358 0xbd358 0xcf850>; + }; + }; + + iommu@fdc38700 { + power-domains = <0x60 0x0e>; + rockchip,shootdown-entire; + clock-names = "aclk\0iface"; + interrupts = <0x00 0x60 0x04>; + clocks = <0x02 0x190 0x02 0x18f>; + rockchip,enable-cmd-retry; + #iommu-cells = <0x00>; + compatible = "rockchip,iommu-v2"; + rockchip,disable-mmu-reset; + status = "okay"; + interrupt-names = "irq_rkvdec0_mmu"; + reg = <0x00 0xfdc38700 0x00 0x40 0x00 0xfdc38740 0x00 0x40>; + phandle = <0xc9>; + rockchip,master-handle-irq; + }; + + qos@fdf35200 { + compatible = "syscon"; + reg = <0x00 0xfdf35200 0x00 0x20>; + phandle = <0x88>; + }; + + qos@fdf71000 { + compatible = "syscon"; + reg = <0x00 0xfdf71000 0x00 0x20>; + phandle = <0x86>; + }; + + syscon@fd598000 { + compatible = "rockchip,rk3588-dsu-grf\0syscon"; + reg = <0x00 0xfd598000 0x00 0x100>; + phandle = <0x23>; + }; + + csi2-dphy2 { + rockchip,hw = <0x2d 0x2e>; + phy-names = "dcphy0\0dcphy1"; + compatible = "rockchip,rk3588-csi2-dphy"; + status = "disabled"; + phys = <0x2f 0x30>; + phandle = <0x211>; + }; + + syscon@fd5b4000 { + compatible = "rockchip,mipi-dphy-grf\0syscon"; + reg = <0x00 0xfd5b4000 0x00 0x1000>; + phandle = <0x192>; + }; + + uio@fe1b0000 { + compatible = "rockchip,uio-gmac"; + status = "disabled"; + reg = <0x00 0xfe1b0000 0x00 0x10000>; + phandle = <0x488>; + rockchip,ethernet = <0x1bd>; + }; + + iommu@fdb70f00 { + power-domains = <0x60 0x1e>; + clock-names = "aclk\0iface"; + interrupts = <0x00 0x73 0x04>; + clocks = <0x02 0x18a 0x02 0x189>; + #iommu-cells = <0x00>; + compatible = "rockchip,iommu-v2"; + status = "okay"; + interrupt-names = "rga3_1_mmu"; + reg = <0x00 0xfdb70f00 0x00 0x100>; + phandle = <0xba>; + }; + + vcc5v0-usb { + regulator-max-microvolt = <0x4c4b40>; + regulator-boot-on; + regulator-always-on; + regulator-min-microvolt = <0x4c4b40>; + regulator-name = "vcc5v0_usb"; + compatible = "regulator-fixed"; + phandle = <0x1dd>; + vin-supply = <0x1cd>; + }; + + fiq-debugger { + pinctrl-names = "default"; + rockchip,irq-mode-enable = <0x01>; + rockchip,baudrate = <0x1c200>; + pinctrl-0 = <0x1ce>; + interrupts = <0x00 0x1a7 0x08>; + rockchip,wake-irq = <0x00>; + compatible = "rockchip,fiq-debugger"; + status = "okay"; + phandle = <0x490>; + rockchip,serial-id = <0x02>; + }; + + phy@fed70000 { + clock-names = "ref\0apb"; + resets = <0x02 0x486 0x02 0xc003f 0x02 0xc0040 0x02 0xc0041>; + clocks = <0x02 0x2b5 0x02 0x268>; + #phy-cells = <0x00>; + compatible = "rockchip,rk3588-hdptx-phy"; + status = "disabled"; + rockchip,grf = <0x1c7>; + reg = <0x00 0xfed70000 0x00 0x2000>; + phandle = <0x1af>; + reset-names = "apb\0init\0cmn\0lane"; + }; + + ethernet@fe1b0000 { + power-domains = <0x60 0x21>; + pinctrl-names = "default"; + phy-mode = "rgmii-rxid"; + snps,mixed-burst; + snps,mtl-rx-config = <0x1bf>; + snps,reset-active-low; + pinctrl-0 = <0x1c1 0x1c2 0x1c3 0x1c4 0x1c5>; + clock-names = "stmmaceth\0clk_mac_ref\0pclk_mac\0aclk_mac\0ptp_ref"; + snps,mtl-tx-config = <0x1c0>; + local-mac-address = [da 2f 1a d4 a9 85]; + resets = <0x02 0x20a>; + interrupts = <0x00 0xe3 0x04 0x00 0xe2 0x04>; + clocks = <0x02 0x144 0x02 0x145 0x02 0x167 0x02 0x16c 0x02 0x142>; + clock_in_out = "output"; + snps,tso; + compatible = "rockchip,rk3588-gmac\0snps,dwmac-4.20a"; + status = "okay"; + rockchip,grf = <0xc8>; + interrupt-names = "macirq\0eth_wake_irq"; + snps,reset-gpio = <0x10d 0x02 0x01>; + reg = <0x00 0xfe1b0000 0x00 0x10000>; + rockchip,php_grf = <0x76>; + phandle = <0x1bd>; + phy-handle = <0x1c6>; + reset-names = "stmmaceth"; + tx_delay = <0x31>; + snps,axi-config = <0x1be>; + snps,reset-delays-us = <0x00 0x4e20 0x186a0>; + + mdio { + #address-cells = <0x01>; + #size-cells = <0x00>; + compatible = "snps,dwmac-mdio"; + phandle = <0x489>; + + phy@1 { + compatible = "ethernet-phy-ieee802.3-c22"; + reg = <0x01>; + phandle = <0x1c6>; + }; + }; + + tx-queues-config { + phandle = <0x1c0>; + snps,tx-queues-to-use = <0x01>; + + queue0 { + }; + }; + + stmmac-axi-config { + snps,wr_osr_lmt = <0x04>; + phandle = <0x1be>; + snps,blen = <0x00 0x00 0x00 0x00 0x10 0x08 0x04>; + snps,rd_osr_lmt = <0x08>; + }; + + rx-queues-config { + snps,rx-queues-to-use = <0x01>; + phandle = <0x1bf>; + + queue0 { + }; + }; + }; + + pvtm@fda60000 { + #address-cells = <0x01>; + #size-cells = <0x00>; + compatible = "rockchip,rk3588-litcore-pvtm"; + reg = <0x00 0xfda60000 0x00 0x100>; + + pvtm@2 { + clock-names = "clk\0pclk"; + clocks = <0x02 0x2ca 0x02 0x1b>; + reg = <0x02>; + }; + }; + + rkispp@fdcd8000 { + power-domains = <0x60 0x1d>; + iommus = <0xd3>; + clock-names = "aclk_ispp\0hclk_ispp\0clk_ispp"; + assigned-clocks = <0x02 0x1d9>; + assigned-clock-rates = <0x5f5e100>; + interrupts = <0x00 0x8d 0x04>; + clocks = <0x02 0x1d8 0x02 0x1d9 0x02 0x1da>; + compatible = "rockchip,rk3588-rkispp"; + status = "disabled"; + interrupt-names = "fec_irq"; + reg = <0x00 0xfdcd8000 0x00 0xf00>; + phandle = <0x5c>; + }; + + qos@fdf66000 { + compatible = "syscon"; + reg = <0x00 0xfdf66000 0x00 0x20>; + phandle = <0x93>; + }; + + syscon@fd592000 { + compatible = "rockchip,rk3588-bigcore1-grf\0syscon"; + reg = <0x00 0xfd592000 0x00 0x100>; + phandle = <0x29>; + }; + + rkcif-mipi-lvds1 { + iommus = <0x50>; + rockchip,hw = <0x4f>; + compatible = "rockchip,rkcif-mipi-lvds"; + status = "disabled"; + phandle = <0x53>; + }; + + av1d@fdc70000 { + power-domains = <0x60 0x17>; + iommus = <0xce>; + clock-names = "aclk_vcodec\0hclk_vcodec"; + reg-names = "vcd\0cache\0afbc"; + assigned-clocks = <0x02 0x49 0x02 0x4b>; + rockchip,normal-rates = <0x17d78400 0x17d78400>; + assigned-clock-rates = <0x17d78400 0x17d78400>; + resets = <0x02 0x442 0x02 0x445>; + interrupts = <0x00 0x6c 0x04 0x00 0x6b 0x04 0x00 0x6a 0x04>; + clocks = <0x02 0x49 0x02 0x4b>; + rockchip,srv = <0xb8>; + rockchip,taskqueue-node = <0x0b>; + compatible = "rockchip,av1-decoder"; + status = "okay"; + interrupt-names = "irq_av1d\0irq_cache\0irq_afbc"; + reg = <0x00 0xfdc70000 0x00 0x800 0x00 0xfdc80000 0x00 0x400 0x00 0xfdc90000 0x00 0x400>; + phandle = <0x276>; + reset-names = "video_a\0video_h"; + }; + + qos@fdf40500 { + compatible = "syscon"; + reg = <0x00 0xfdf40500 0x00 0x20>; + phandle = <0xa3>; + }; + + vcc-hub-reset-regulator { + regulator-boot-on; + gpio = <0x182 0x04 0x00>; + regulator-always-on; + enable-active-high; + regulator-name = "vcc_hub_reset"; + compatible = "regulator-fixed"; + status = "disabled"; + phandle = <0x4a0>; + }; + + qos@fdf72200 { + compatible = "syscon"; + reg = <0x00 0xfdf72200 0x00 0x20>; + phandle = <0x83>; + }; + + serial@feb70000 { + reg-io-width = <0x04>; + pinctrl-names = "default"; + pinctrl-0 = <0x163>; + clock-names = "baudclk\0apb_pclk"; + interrupts = <0x00 0x14f 0x04>; + clocks = <0x02 0xc3 0x02 0xae>; + compatible = "rockchip,rk3588-uart\0snps,dw-apb-uart"; + status = "disabled"; + reg = <0x00 0xfeb70000 0x00 0x100>; + phandle = <0x2cc>; + dmas = <0xf1 0x09 0xf1 0x0a>; + reg-shift = <0x02>; + }; + + rkcif-mipi-lvds2-sditf { + compatible = "rockchip,rkcif-sditf"; + status = "okay"; + rockchip,cif = <0x55>; + phandle = <0x233>; + + port { + + endpoint { + remote-endpoint = <0x56>; + phandle = <0x59>; + }; + }; + }; + + i2c@feca0000 { + pinctrl-names = "default"; + #address-cells = <0x01>; + pinctrl-0 = <0x186>; + clock-names = "i2c\0pclk"; + resets = <0x02 0xb7 0x02 0xaf>; + interrupts = <0x00 0x145 0x04>; + clocks = <0x02 0x94 0x02 0x8c>; + #size-cells = <0x00>; + compatible = "rockchip,rk3588-i2c\0rockchip,rk3399-i2c"; + status = "disabled"; + reg = <0x00 0xfeca0000 0x00 0x1000>; + phandle = <0x2e5>; + reset-names = "i2c\0apb"; + }; + + vcc-sdcard-pwr-en-regulator { + regulator-boot-on; + gpio = <0xfe 0x07 0x00>; + regulator-always-on; + enable-active-high; + regulator-name = "vcc_sdcard_pwr_en"; + compatible = "regulator-fixed"; + status = "okay"; + phandle = <0x4a5>; + }; + + rkcif-mipi-lvds1-sditf-vir1 { + compatible = "rockchip,rkcif-sditf"; + status = "disabled"; + rockchip,cif = <0x53>; + phandle = <0x230>; + }; + + qos@fdf63000 { + compatible = "syscon"; + reg = <0x00 0xfdf63000 0x00 0x20>; + phandle = <0x8c>; + }; + + phy@fee00000 { + rockchip,pipe-grf = <0x76>; + clock-names = "refclk\0apbclk\0phpclk"; + assigned-clocks = <0x02 0x2bd>; + assigned-clock-rates = <0x5f5e100>; + resets = <0x02 0x20005 0x02 0x4d6>; + clocks = <0x02 0x2bd 0x02 0x185 0x02 0x166>; + #phy-cells = <0x01>; + compatible = "rockchip,rk3588-naneng-combphy"; + status = "okay"; + rockchip,pipe-phy-grf = <0x194>; + reg = <0x00 0xfee00000 0x00 0x100>; + phandle = <0x108>; + reset-names = "combphy-apb\0combphy"; + }; + + can@fea50000 { + pinctrl-names = "default"; + pinctrl-0 = <0x145>; + clock-names = "baudclk\0apb_pclk"; + resets = <0x02 0xb9 0x02 0xb8>; + interrupts = <0x00 0x155 0x04>; + clocks = <0x02 0x70 0x02 0x6f>; + compatible = "rockchip,can-2.0"; + status = "disabled"; + tx-fifo-depth = <0x01>; + rx-fifo-depth = <0x06>; + reg = <0x00 0xfea50000 0x00 0x1000>; + phandle = <0x2a0>; + reset-names = "can\0can-apb"; + }; + + pdm@fe4b0000 { + pinctrl-names = "default\0idle\0clk"; + pinctrl-2 = <0x139 0x13a>; + pinctrl-0 = <0x134 0x135 0x136 0x137>; + clock-names = "pdm_clk\0pdm_hclk"; + clocks = <0x02 0x29f 0x02 0x29e>; + dma-names = "rx"; + #sound-dai-cells = <0x00>; + compatible = "rockchip,rk3588-pdm"; + pinctrl-1 = <0x138>; + status = "disabled"; + reg = <0x00 0xfe4b0000 0x00 0x1000>; + phandle = <0x29a>; + dmas = <0x7c 0x04>; + }; + + rkisp-unite-mmu@fdcb7f00 { + power-domains = <0x60 0x1c>; + clock-names = "aclk0\0iface0\0aclk1\0iface1"; + interrupts = <0x00 0x84 0x04 0x00 0x88 0x04>; + clocks = <0x02 0x1de 0x02 0x1df 0x02 0x120 0x02 0x121>; + #iommu-cells = <0x00>; + compatible = "rockchip,iommu-v2"; + rockchip,disable-mmu-reset; + status = "disabled"; + interrupt-names = "isp0_mmu\0isp1_mmu"; + reg = <0x00 0xfdcb7f00 0x00 0x100 0x00 0xfdcc7f00 0x00 0x100>; + phandle = <0xcf>; + }; + + syscon@fd5a6000 { + clocks = <0x72>; + compatible = "rockchip,rk3588-vo-grf\0syscon"; + reg = <0x00 0xfd5a6000 0x00 0x2000>; + phandle = <0xf5>; + }; + + cpus { + #address-cells = <0x01>; + #size-cells = <0x00>; + + l2-cache-b0 { + cache-size = <0x80000>; + cache-sets = <0x400>; + compatible = "cache"; + cache-line-size = <0x40>; + next-level-cache = <0x1e>; + phandle = <0x17>; + }; + + l2-cache-l3 { + cache-size = <0x20000>; + cache-sets = <0x200>; + compatible = "cache"; + cache-line-size = <0x40>; + next-level-cache = <0x1e>; + phandle = <0x15>; + }; + + cpu@300 { + d-cache-line-size = <0x40>; + capacity-dmips-mhz = <0x212>; + clocks = <0x0e 0x00>; + i-cache-line-size = <0x40>; + cpu-idle-states = <0x10>; + device_type = "cpu"; + compatible = "arm,cortex-a55"; + d-cache-size = <0x8000>; + next-level-cache = <0x15>; + i-cache-size = <0x8000>; + reg = <0x300>; + enable-method = "psci"; + phandle = <0x09>; + d-cache-sets = <0x80>; + operating-points-v2 = <0x0f>; + i-cache-sets = <0x80>; + }; + + l2-cache-l1 { + cache-size = <0x20000>; + cache-sets = <0x200>; + compatible = "cache"; + cache-line-size = <0x40>; + next-level-cache = <0x1e>; + phandle = <0x13>; + }; + + cpu@600 { + d-cache-line-size = <0x40>; + capacity-dmips-mhz = <0x400>; + cpu-supply = <0x1c>; + clocks = <0x0e 0x03>; + i-cache-line-size = <0x40>; + cpu-idle-states = <0x10>; + device_type = "cpu"; + compatible = "arm,cortex-a76"; + dynamic-power-coefficient = <0x12c>; + d-cache-size = <0x10000>; + next-level-cache = <0x1b>; + i-cache-size = <0x10000>; + mem-supply = <0x1c>; + reg = <0x600>; + enable-method = "psci"; + phandle = <0x0c>; + d-cache-sets = <0x100>; + operating-points-v2 = <0x1a>; + i-cache-sets = <0x100>; + #cooling-cells = <0x02>; + }; + + l2-cache-b3 { + cache-size = <0x80000>; + cache-sets = <0x400>; + compatible = "cache"; + cache-line-size = <0x40>; + next-level-cache = <0x1e>; + phandle = <0x1d>; + }; + + idle-states { + entry-method = "psci"; + + cpu-sleep { + entry-latency-us = <0x64>; + local-timer-stop; + exit-latency-us = <0x78>; + arm,psci-suspend-param = <0x10000>; + compatible = "arm,idle-state"; + phandle = <0x10>; + min-residency-us = <0x3e8>; + }; + }; + + cpu-map { + + cluster2 { + + core1 { + cpu = <0x0d>; + }; + + core0 { + cpu = <0x0c>; + }; + }; + + cluster0 { + + core3 { + cpu = <0x09>; + }; + + core1 { + cpu = <0x07>; + }; + + core2 { + cpu = <0x08>; + }; + + core0 { + cpu = <0x06>; + }; + }; + + cluster1 { + + core1 { + cpu = <0x0b>; + }; + + core0 { + cpu = <0x0a>; + }; + }; + }; + + l3-cache { + cache-size = <0x300000>; + cache-sets = <0x1000>; + compatible = "cache"; + cache-line-size = <0x40>; + phandle = <0x1e>; + }; + + cpu@200 { + d-cache-line-size = <0x40>; + capacity-dmips-mhz = <0x212>; + clocks = <0x0e 0x00>; + i-cache-line-size = <0x40>; + cpu-idle-states = <0x10>; + device_type = "cpu"; + compatible = "arm,cortex-a55"; + d-cache-size = <0x8000>; + next-level-cache = <0x14>; + i-cache-size = <0x8000>; + reg = <0x200>; + enable-method = "psci"; + phandle = <0x08>; + d-cache-sets = <0x80>; + operating-points-v2 = <0x0f>; + i-cache-sets = <0x80>; + }; + + l2-cache-b1 { + cache-size = <0x80000>; + cache-sets = <0x400>; + compatible = "cache"; + cache-line-size = <0x40>; + next-level-cache = <0x1e>; + phandle = <0x19>; + }; + + cpu@500 { + d-cache-line-size = <0x40>; + capacity-dmips-mhz = <0x400>; + clocks = <0x0e 0x02>; + i-cache-line-size = <0x40>; + cpu-idle-states = <0x10>; + device_type = "cpu"; + compatible = "arm,cortex-a76"; + d-cache-size = <0x10000>; + next-level-cache = <0x19>; + i-cache-size = <0x10000>; + reg = <0x500>; + enable-method = "psci"; + phandle = <0x0b>; + d-cache-sets = <0x100>; + operating-points-v2 = <0x16>; + i-cache-sets = <0x100>; + }; + + cpu@0 { + d-cache-line-size = <0x40>; + capacity-dmips-mhz = <0x212>; + cpu-supply = <0x12>; + clocks = <0x0e 0x00>; + i-cache-line-size = <0x40>; + cpu-idle-states = <0x10>; + device_type = "cpu"; + compatible = "arm,cortex-a55"; + dynamic-power-coefficient = <0x64>; + d-cache-size = <0x8000>; + next-level-cache = <0x11>; + i-cache-size = <0x8000>; + mem-supply = <0x12>; + reg = <0x00>; + enable-method = "psci"; + phandle = <0x06>; + d-cache-sets = <0x80>; + operating-points-v2 = <0x0f>; + i-cache-sets = <0x80>; + #cooling-cells = <0x02>; + }; + + l2-cache-l2 { + cache-size = <0x20000>; + cache-sets = <0x200>; + compatible = "cache"; + cache-line-size = <0x40>; + next-level-cache = <0x1e>; + phandle = <0x14>; + }; + + l2-cache-l0 { + cache-size = <0x20000>; + cache-sets = <0x200>; + compatible = "cache"; + cache-line-size = <0x40>; + next-level-cache = <0x1e>; + phandle = <0x11>; + }; + + cpu@100 { + d-cache-line-size = <0x40>; + capacity-dmips-mhz = <0x212>; + clocks = <0x0e 0x00>; + i-cache-line-size = <0x40>; + cpu-idle-states = <0x10>; + device_type = "cpu"; + compatible = "arm,cortex-a55"; + d-cache-size = <0x8000>; + next-level-cache = <0x13>; + i-cache-size = <0x8000>; + reg = <0x100>; + enable-method = "psci"; + phandle = <0x07>; + d-cache-sets = <0x80>; + operating-points-v2 = <0x0f>; + i-cache-sets = <0x80>; + }; + + cpu@400 { + d-cache-line-size = <0x40>; + capacity-dmips-mhz = <0x400>; + cpu-supply = <0x18>; + clocks = <0x0e 0x02>; + i-cache-line-size = <0x40>; + cpu-idle-states = <0x10>; + device_type = "cpu"; + compatible = "arm,cortex-a76"; + dynamic-power-coefficient = <0x12c>; + d-cache-size = <0x10000>; + next-level-cache = <0x17>; + i-cache-size = <0x10000>; + mem-supply = <0x18>; + reg = <0x400>; + enable-method = "psci"; + phandle = <0x0a>; + d-cache-sets = <0x100>; + operating-points-v2 = <0x16>; + i-cache-sets = <0x100>; + #cooling-cells = <0x02>; + }; + + l2-cache-b2 { + cache-size = <0x80000>; + cache-sets = <0x400>; + compatible = "cache"; + cache-line-size = <0x40>; + next-level-cache = <0x1e>; + phandle = <0x1b>; + }; + + cpu@700 { + d-cache-line-size = <0x40>; + capacity-dmips-mhz = <0x400>; + clocks = <0x0e 0x03>; + i-cache-line-size = <0x40>; + cpu-idle-states = <0x10>; + device_type = "cpu"; + compatible = "arm,cortex-a76"; + d-cache-size = <0x10000>; + next-level-cache = <0x1d>; + i-cache-size = <0x10000>; + reg = <0x700>; + enable-method = "psci"; + phandle = <0x0d>; + d-cache-sets = <0x100>; + operating-points-v2 = <0x1a>; + i-cache-sets = <0x100>; + }; + }; + + vcc-hub3-reset-regulator { + gpio = <0x182 0x06 0x00>; + regulator-always-on; + enable-active-high; + regulator-name = "vcc_hub3_reset"; + compatible = "regulator-fixed"; + status = "disabled"; + phandle = <0x4a1>; + }; + + rkispp1-vir0 { + rockchip,hw = <0x5c>; + compatible = "rockchip,rk3588-rkispp-vir"; + status = "disabled"; + phandle = <0x244>; + }; + + saradc@fec10000 { + vref-supply = <0x177>; + clock-names = "saradc\0apb_pclk"; + resets = <0x02 0xbe>; + interrupts = <0x00 0x18e 0x04>; + clocks = <0x02 0x9d 0x02 0x9c>; + #io-channel-cells = <0x01>; + compatible = "rockchip,rk3588-saradc"; + status = "okay"; + reg = <0x00 0xfec10000 0x00 0x10000>; + phandle = <0x1d9>; + reset-names = "saradc-apb"; + }; + + rkisp0-vir0 { + rockchip,hw = <0x58>; + compatible = "rockchip,rkisp-vir"; + status = "disabled"; + phandle = <0x23b>; + }; + + __symbols__ { + i2s2m0_lrck = "/pinctrl/i2s2/i2s2m0-lrck"; + i2c3 = "/i2c@feab0000"; + scmi_shmem = "/sram@10f000/sram@0"; + rkispp0_vir0 = "/rkispp0-vir0"; + qos_jpeg_enc0 = "/qos@fdf66400"; + i2s1m1_sdi1 = "/pinctrl/i2s1/i2s1m1-sdi1"; + dp_altmode_mux = "/i2c@fec80000/fusb302@22/connector/ports/port@1/endpoint"; + pmic_pins = "/pinctrl/pmic/pmic-pins"; + usb_host1_ohci = "/usb@fc8c0000"; + pwm9 = "/pwm@febe0010"; + i2c6m4_xfer = "/pinctrl/i2c6/i2c6m4-xfer"; + leds_gpio = "/pinctrl/leds/leds-gpio"; + i2c3m3_xfer = "/pinctrl/i2c3/i2c3m3-xfer"; + qos_usb3_1 = "/qos@fdf3e000"; + hdmi_debug4 = "/pinctrl/hdmi/hdmi-debug4"; + i2c0m2_xfer = "/pinctrl/i2c0/i2c0m2-xfer"; + gmac0_rgmii_bus = "/pinctrl/gmac0/gmac0-rgmii-bus"; + pcie30x2m2_pins = "/pinctrl/pcie30x2/pcie30x2m2-pins"; + sdmmc_clk = "/pinctrl/sdmmc/sdmmc-clk"; + spi0m3_cs0 = "/pinctrl/spi0/spi0m3-cs0"; + hwlock = "/hwspinlock@fe5a0000"; + pcie3x2 = "/pcie@fe160000"; + i2s2m1_mclk = "/pinctrl/i2s2/i2s2m1-mclk"; + mipim0_camera3_clk = "/pinctrl/mipi/mipim0-camera3-clk"; + mclkin_i2s0 = "/clocks/mclkin-i2s0"; + edp1_in_vp1 = "/edp@fded0000/ports/port@0/endpoint@1"; + rkvenc0_mmu = "/iommu@fdbdf000"; + pwm14 = "/pwm@febf0020"; + rk806_dvs2_rst = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs2_rst"; + mipi2_csi2 = "/mipi2-csi2"; + can2m1_pins = "/pinctrl/can2/can2m1-pins"; + pcie2x1l1 = "/pcie@fe180000"; + hdmi0_in_vp2 = "/hdmi@fde80000/ports/port@0/endpoint@2"; + qos_rkvenc0_m2wo = "/qos@fdf60400"; + pwm3m2_pins = "/pinctrl/pwm3/pwm3m2-pins"; + optee = "/firmware/optee"; + l2_cache_b2 = "/cpus/l2-cache-b2"; + pwm0m1_pins = "/pinctrl/pwm0/pwm0m1-pins"; + vdpu = "/vdpu@fdb50400"; + i2s3_sdo = "/pinctrl/i2s3/i2s3-sdo"; + usbdp_phy0_u3 = "/phy@fed80000/u3-port"; + thermal_zones = "/thermal-zones"; + hdmim2_rx_scl = "/pinctrl/hdmi/hdmim2-rx-scl"; + hdmim2_rx_sda = "/pinctrl/hdmi/hdmim2-rx-sda"; + uart9m0_rtsn = "/pinctrl/uart9/uart9m0-rtsn"; + spi1m2_cs0 = "/pinctrl/spi1/spi1m2-cs0"; + pcie2x1l1_intc = "/pcie@fe180000/legacy-interrupt-controller"; + spdif1m1_tx = "/pinctrl/spdif1/spdif1m1-tx"; + venc_opp_info = "/otp@fecc0000/venc-opp-info@67"; + qos_iep = "/qos@fdf66000"; + pcfg_pull_none_drv_level_3 = "/pinctrl/pcfg-pull-none-drv-level-3"; + spi3m2_cs1 = "/pinctrl/spi3/spi3m2-cs1"; + uart4m2_xfer = "/pinctrl/uart4/uart4m2-xfer"; + vp1 = "/vop@fdd90000/ports/port@1"; + bigcore1_grf = "/syscon@fd592000"; + uart1m1_xfer = "/pinctrl/uart1/uart1m1-xfer"; + uart5m1_ctsn = "/pinctrl/uart5/uart5m1-ctsn"; + fspim1_pins = "/pinctrl/fspi/fspim1-pins"; + cpu_l1 = "/cpus/cpu@100"; + uart8 = "/serial@febb0000"; + rkisp1_vir3 = "/rkisp1-vir3"; + qos_vop_m1 = "/qos@fdf82200"; + pcie_clk2 = "/pcie-clk2"; + cluster2_opp_table = "/cluster2-opp-table"; + usb_grf = "/syscon@fd5ac000"; + pcfg_pull_none_smt = "/pinctrl/pcfg-pull-none-smt"; + jpege0_mmu = "/iommu@fdba0800"; + spi2m1_cs0 = "/pinctrl/spi2/spi2m1-cs0"; + u2phy3 = "/syscon@fd5dc000/usb2-phy@c000"; + power_led = "/leds/power"; + aclk_usb = "/clocks/aclk_usb@fd7c08a8"; + csi2_dphy1 = "/csi2-dphy1"; + spi2 = "/spi@feb20000"; + uart2_rtsn = "/pinctrl/uart2/uart2-rtsn"; + spi4m1_cs1 = "/pinctrl/spi4/spi4m1-cs1"; + pcfg_pull_up_drv_level_15 = "/pinctrl/pcfg-pull-up-drv-level-15"; + vo1_grf = "/syscon@fd5a8000"; + pcie_essd = "/pcie-essd"; + i2c4m3_xfer = "/pinctrl/i2c4/i2c4m3-xfer"; + gpio0 = "/pinctrl/gpio@fd8a0000"; + saradc = "/saradc@fec10000"; + i2s1m0_sdi3 = "/pinctrl/i2s1/i2s1m0-sdi3"; + i2c1m2_xfer = "/pinctrl/i2c1/i2c1m2-xfer"; + csidphy0_out = "/csi2-dphy0/ports/port@1/endpoint@0"; + emmc_rstnout = "/pinctrl/emmc/emmc-rstnout"; + mclkout_i2s3 = "/clocks/mclkout-i2s3@fd58c318"; + xc7160_out0 = "/i2c@fec80000/XC7160b@1b/port/endpoint"; + rkcif_mipi_lvds1_sditf_vir1 = "/rkcif-mipi-lvds1-sditf-vir1"; + dsi1 = "/dsi@fde30000"; + venc_opp_table = "/venc-opp-table"; + qos_isp0_mwo = "/qos@fdf40500"; + pmu_pins = "/pinctrl/pmu/pmu-pins"; + gmac0_miim = "/pinctrl/gmac0/gmac0-miim"; + spi3m0_cs0 = "/pinctrl/spi3/spi3m0-cs0"; + mipi_dcphy0 = "/mipi-dcphy-dummy"; + minidump_mem = "/reserved-memory/minidump-mem@c000000"; + avdd_1v2_s0 = "/spi@feb20000/rk806single@0/regulators/PLDO_REG3"; + pwm7m3_pins = "/pinctrl/pwm7/pwm7m3-pins"; + route_edp1 = "/display-subsystem/route/route-edp1"; + hdmi1 = "/hdmi@fdea0000"; + crypto = "/crypto@fe370000"; + hdmi1_in_vp2 = "/hdmi@fdea0000/ports/port@0/endpoint@2"; + dfi = "/dfi@fe060000"; + can0m0_pins = "/pinctrl/can0/can0m0-pins"; + pcfg_pull_up_drv_level_2 = "/pinctrl/pcfg-pull-up-drv-level-2"; + pinctrl = "/pinctrl"; + rgmii_phy0 = "/ethernet@fe1b0000/mdio/phy@1"; + pcfg_pull_down_drv_level_6 = "/pinctrl/pcfg-pull-down-drv-level-6"; + dp0m0_pins = "/pinctrl/dp0/dp0m0-pins"; + i2s0_sdo3 = "/pinctrl/i2s0/i2s0-sdo3"; + vcc_sata_pwr_en = "/vcc-sata-pwr-en-regulator"; + pwm1m1_pins = "/pinctrl/pwm1/pwm1m1-pins"; + pcie30_avdd1v8 = "/pcie30-avdd1v8"; + usb2phy3_grf = "/syscon@fd5dc000"; + u2phy2_host = "/syscon@fd5d8000/usb2-phy@8000/host-port"; + hym8563_int = "/pinctrl/hym8563/hym8563-int"; + mailbox1 = "/mailbox@fec70000"; + pdm0m1_sdi3 = "/pinctrl/pdm0/pdm0m1-sdi3"; + combphy1_ps = "/phy@fee10000"; + hdptxphy0_grf = "/syscon@fd5e0000"; + sdei = "/firmware/sdei"; + vp0_out_dp1 = "/vop@fdd90000/ports/port@0/endpoint@3"; + uart5m2_xfer = "/pinctrl/uart5/uart5m2-xfer"; + uart9m2_ctsn = "/pinctrl/uart9/uart9m2-ctsn"; + uart2m1_xfer = "/pinctrl/uart2/uart2m1-xfer"; + dp0_out = "/dp@fde50000/ports/port@1/endpoint"; + uart6m1_ctsn = "/pinctrl/uart6/uart6m1-ctsn"; + route_rgb = "/display-subsystem/route/route-rgb"; + csidphy0_out1 = "/csi2-dphy0/ports/port@1/endpoint@0"; + i2c1 = "/i2c@fea90000"; + pinctrl_rk806 = "/spi@feb20000/rk806single@0/pinctrl_rk806"; + cpu_code = "/otp@fecc0000/cpu-code@2"; + pwm7 = "/pwm@febd0030"; + mipi5_csi2_hw = "/mipi5-csi2-hw@fdd60000"; + gpu_leakage = "/otp@fecc0000/gpu-leakage@1b"; + hdmi_debug2 = "/pinctrl/hdmi/hdmi-debug2"; + pdm0m0_clk = "/pinctrl/pdm0/pdm0m0-clk"; + gmac0_ppsclk = "/pinctrl/gmac0/gmac0-ppsclk"; + i2c8m4_xfer = "/pinctrl/i2c8/i2c8m4-xfer"; + vdd_npu_s0 = "/i2c@fea90000/rk8602@42"; + i2c5m3_xfer = "/pinctrl/i2c5/i2c5m3-xfer"; + gmac0 = "/ethernet@fe1b0000"; + i2c2m2_xfer = "/pinctrl/i2c2/i2c2m2-xfer"; + rockchip_system_monitor = "/rockchip-system-monitor"; + pcie30x4m2_pins = "/pinctrl/pcie30x4/pcie30x4m2-pins"; + pwm12 = "/pwm@febf0000"; + emmc_cmd = "/pinctrl/emmc/emmc-cmd"; + i2s1_8ch = "/i2s@fe480000"; + pcie30x1m1_pins = "/pinctrl/pcie30x1/pcie30x1m1-pins"; + uart4_ctsn = "/pinctrl/uart4/uart4-ctsn"; + vdd_cpu_big0_mem_s0 = "/i2c@fd880000/rk8602@42"; + pcfg_pull_none = "/pinctrl/pcfg-pull-none"; + i2s1m0_mclk = "/pinctrl/i2s1/i2s1m0-mclk"; + vp1_out_edp1 = "/vop@fdd90000/ports/port@1/endpoint@4"; + hdmi0_in_vp0 = "/hdmi@fde80000/ports/port@0/endpoint@0"; + vcc_4g = "/vcc-4g-regulator"; + firefly_leds = "/leds"; + jpege3 = "/jpege-core@fdbac000"; + l2_cache_b0 = "/cpus/l2-cache-b0"; + pmu1_grf = "/syscon@fd58a000"; + aclk_rkvenc1_pre = "/clocks/aclk_rkvenc1_pre@fd7c08c0"; + can1m0_pins = "/pinctrl/can1/can1m0-pins"; + spi0m3_pins = "/pinctrl/spi0/spi0m3-pins"; + pwm5m2_pins = "/pinctrl/pwm5/pwm5m2-pins"; + mipidphy0_in_ucam1 = "/csi2-dphy0/ports/port@0/endpoint@1"; + i2s0_lrck = "/pinctrl/i2s0/i2s0-lrck"; + clk32k_out0 = "/pinctrl/clk32k/clk32k-out0"; + dp1m0_pins = "/pinctrl/dp1/dp1m0-pins"; + pwm2m1_pins = "/pinctrl/pwm2/pwm2m1-pins"; + usbc0 = "/i2c@fec80000/fusb302@22"; + eth1_pins = "/pinctrl/eth1/eth1-pins"; + pcfg_pull_none_drv_level_1 = "/pinctrl/pcfg-pull-none-drv-level-1"; + csi2_dphy0_hw = "/csi2-dphy0-hw@fedc0000"; + pdm1m1_sdi3 = "/pinctrl/pdm1/pdm1m1-sdi3"; + dsi0_in_vp3 = "/dsi@fde20000/ports/port@0/endpoint@1"; + hdmim1_tx1_cec = "/pinctrl/hdmi/hdmim1-tx1-cec"; + usbc0_role_sw = "/i2c@fec80000/fusb302@22/ports/port@0/endpoint@0"; + uart6 = "/serial@feb90000"; + rkisp1_vir1 = "/rkisp1-vir1"; + sdhci = "/mmc@fe2e0000"; + uart6m2_xfer = "/pinctrl/uart6/uart6m2-xfer"; + target = "/thermal-zones/soc-thermal/trips/trip-point-1"; + rkcif_mipi_lvds_sditf_vir3 = "/rkcif-mipi-lvds-sditf-vir3"; + pcfg_pull_none_drv_level_0_smt = "/pinctrl/pcfg-pull-none-drv-level-0-smt"; + uart3m1_xfer = "/pinctrl/uart3/uart3m1-xfer"; + uart7m1_ctsn = "/pinctrl/uart7/uart7m1-ctsn"; + uart0m0_xfer = "/pinctrl/uart0/uart0m0-xfer"; + rgb_in_vp3 = "/syscon@fd58c000/rgb/ports/port@0/endpoint@2"; + rkcif_mipi_lvds5_sditf_vir2 = "/rkcif-mipi-lvds5-sditf-vir2"; + u2phy1 = "/syscon@fd5d4000/usb2-phy@4000"; + i2s5_8ch = "/i2s@fddf0000"; + i2s2m0_sdo = "/pinctrl/i2s2/i2s2m0-sdo"; + gpu = "/gpu@fb000000"; + spi0 = "/spi@feb00000"; + iep = "/iep@fdbb0000"; + pcfg_pull_up_drv_level_13 = "/pinctrl/pcfg-pull-up-drv-level-13"; + spdif_tx5 = "/spdif-tx@fddb8000"; + hdptxphy_hdmi_clk1 = "/hdmiphy@fed70000/clk-port"; + drm_logo = "/reserved-memory/drm-logo@00000000"; + i2s1m0_sdi1 = "/pinctrl/i2s1/i2s1m0-sdi1"; + rk806_dvs3_null = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs3_null"; + gmac1_ppsclk = "/pinctrl/gmac1/gmac1-ppsclk"; + usb_host0_ohci = "/usb@fc840000"; + mclkout_i2s1 = "/clocks/mclkout-i2s1@fd58c318"; + i2c6m3_xfer = "/pinctrl/i2c6/i2c6m3-xfer"; + i2c3m2_xfer = "/pinctrl/i2c3/i2c3m2-xfer"; + vop_opp_info = "/otp@fecc0000/vop-opp-info@61"; + cif_dvp_bus16 = "/pinctrl/cif/cif-dvp-bus16"; + i2c0m1_xfer = "/pinctrl/i2c0/i2c0m1-xfer"; + pcie30x2m1_pins = "/pinctrl/pcie30x2/pcie30x2m1-pins"; + mipidcphy0_grf = "/syscon@fd5e8000"; + vdd_cpu_big1_mem_s0 = "/i2c@fd880000/rk8603@43"; + pcie30phy = "/phy@fee80000"; + dmc = "/dmc"; + i2s2m0_mclk = "/pinctrl/i2s2/i2s2m0-mclk"; + mipidcphy1 = "/phy@fedb0000"; + dp1_sound = "/dp1-sound"; + hdmi1_in_vp0 = "/hdmi@fdea0000/ports/port@0/endpoint@0"; + scmi = "/firmware/scmi"; + pcfg_pull_up_drv_level_0 = "/pinctrl/pcfg-pull-up-drv-level-0"; + gmac1_clkinout = "/pinctrl/gmac1/gmac1-clkinout"; + pcfg_pull_down_drv_level_4 = "/pinctrl/pcfg-pull-down-drv-level-4"; + i2s0_sdo1 = "/pinctrl/i2s0/i2s0-sdo1"; + l3_cache = "/cpus/l3-cache"; + i2s3_idle = "/pinctrl/i2s3/i2s3-idle"; + pcfg_pull_none_drv_level_4_smt = "/pinctrl/pcfg-pull-none-drv-level-4-smt"; + litcpu_pins = "/pinctrl/litcpu/litcpu-pins"; + mipi1_csi2 = "/mipi1-csi2"; + can2m0_pins = "/pinctrl/can2/can2m0-pins"; + pwm6m2_pins = "/pinctrl/pwm6/pwm6m2-pins"; + usbdp_phy0 = "/phy@fed80000"; + pdm0m1_sdi1 = "/pinctrl/pdm0/pdm0m1-sdi1"; + pwm3m1_pins = "/pinctrl/pwm3/pwm3m1-pins"; + vdd_log_s0 = "/spi@feb20000/rk806single@0/regulators/DCDC_REG3"; + i2s9_8ch = "/i2s@fddfc000"; + pwm0m0_pins = "/pinctrl/pwm0/pwm0m0-pins"; + vcc_hub3_reset = "/vcc-hub3-reset-regulator"; + dsi1_in_vp3 = "/dsi@fde30000/ports/port@0/endpoint@1"; + otp_cpu_version = "/otp@fecc0000/cpu-version@1c"; + pcie2x1l0_intc = "/pcie@fe170000/legacy-interrupt-controller"; + spdif0m1_tx = "/pinctrl/spdif0/spdif0m1-tx"; + pcfg_pull_down_drv_level_15 = "/pinctrl/pcfg-pull-down-drv-level-15"; + XC7160 = "/i2c@fec80000/XC7160b@1b"; + rkcif_mipi_lvds4_sditf_vir3 = "/rkcif-mipi-lvds4-sditf-vir3"; + uart7m2_xfer = "/pinctrl/uart7/uart7m2-xfer"; + uart4m1_xfer = "/pinctrl/uart4/uart4m1-xfer"; + hdmim1_tx1_scl = "/pinctrl/hdmi/hdmim1-tx1-scl"; + hdmim1_tx1_sda = "/pinctrl/hdmi/hdmim1-tx1-sda"; + uart8m1_ctsn = "/pinctrl/uart8/uart8m1-ctsn"; + i2s2_2ch = "/i2s@fe490000"; + pwm5 = "/pwm@febd0010"; + uart1m0_xfer = "/pinctrl/uart1/uart1m0-xfer"; + uart5m0_ctsn = "/pinctrl/uart5/uart5m0-ctsn"; + fspim0_cs1 = "/pinctrl/fspi/fspim0-cs1"; + fspim0_pins = "/pinctrl/fspi/fspim0-pins"; + rkisp0_vir3 = "/rkisp0-vir3"; + l2_cache_l3 = "/cpus/l2-cache-l3"; + rk806_dvs3_dvs = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs3_dvs"; + hdmi_debug0 = "/pinctrl/hdmi/hdmi-debug0"; + hdmim1_tx1_hpd = "/pinctrl/hdmi/hdmim1-tx1-hpd"; + vp1_out_dp0 = "/vop@fdd90000/ports/port@1/endpoint@0"; + qos_isp0_mro = "/qos@fdf40400"; + spi0m2_cs1 = "/pinctrl/spi0/spi0m2-cs1"; + vdd_gpu_s0 = "/spi@feb20000/rk806single@0/regulators/DCDC_REG1"; + tsadc_shut = "/pinctrl/tsadc/tsadc-shut"; + pwm10 = "/pwm@febe0020"; + i2c7m3_xfer = "/pinctrl/i2c7/i2c7m3-xfer"; + rktimer = "/timer@feae0000"; + cpub0_leakage = "/otp@fecc0000/cpub0-leakage@17"; + i2c4m2_xfer = "/pinctrl/i2c4/i2c4m2-xfer"; + hclk_rkvdec1_pre = "/clocks/hclk_rkvdec1_pre@fd7c08a4"; + pcie30phy_pins = "/pinctrl/pcie30phy/pcie30phy-pins"; + jpege1 = "/jpege-core@fdba4000"; + pcfg_pull_none_drv_level_14 = "/pinctrl/pcfg-pull-none-drv-level-14"; + i2c1m1_xfer = "/pinctrl/i2c1/i2c1m1-xfer"; + rkcif_dvp_sditf = "/rkcif-dvp-sditf"; + rkcif_mipi_lvds4_sditf = "/rkcif-mipi-lvds4-sditf"; + vp2_out_dp1 = "/vop@fdd90000/ports/port@2/endpoint@5"; + vp2_out_dsi0 = "/vop@fdd90000/ports/port@2/endpoint@3"; + its1 = "/interrupt-controller@fe600000/msi-controller@fe660000"; + cpu_b3 = "/cpus/cpu@700"; + vcc_hub_reset = "/vcc-hub-reset-regulator"; + spi1m1_cs1 = "/pinctrl/spi1/spi1m1-cs1"; + vdd_npu_mem_s0 = "/i2c@fea90000/rk8602@42"; + pwm7m2_pins = "/pinctrl/pwm7/pwm7m2-pins"; + pdm1m1_sdi1 = "/pinctrl/pdm1/pdm1m1-sdi1"; + vbus5v0_typec_pwr_en = "/vbus5v0-typec-pwr-en-regulator"; + pwm4m1_pins = "/pinctrl/pwm4/pwm4m1-pins"; + dmc_opp_table = "/dmc-opp-table"; + pcie30x4_button_rstn = "/pinctrl/pcie30x4/pcie30x4-button-rstn"; + uart4 = "/serial@feb70000"; + pwm1m0_pins = "/pinctrl/pwm1/pwm1m0-pins"; + spi0m0_cs0 = "/pinctrl/spi0/spi0m0-cs0"; + pldo6_s3 = "/spi@feb20000/rk806single@0/regulators/PLDO_REG6"; + mipim1_camera2_clk = "/pinctrl/mipi/mipim1-camera2-clk"; + mipim0_camera0_clk = "/pinctrl/mipi/mipim0-camera0-clk"; + rkcif_mipi_lvds_sditf_vir1 = "/rkcif-mipi-lvds-sditf-vir1"; + pcfg_pull_up_drv_level_9 = "/pinctrl/pcfg-pull-up-drv-level-9"; + dmac2 = "/dma-controller@fed10000"; + pdm0m0_sdi3 = "/pinctrl/pdm0/pdm0m0-sdi3"; + qos_gpu_m2 = "/qos@fdf35400"; + i2s0_sdi3 = "/pinctrl/i2s0/i2s0-sdi3"; + cluster0_opp_table = "/cluster0-opp-table"; + spi2m0_cs1 = "/pinctrl/spi2/spi2m0-cs1"; + otp_id = "/otp@fecc0000/id@7"; + uart5m1_xfer = "/pinctrl/uart5/uart5m1-xfer"; + uart9m1_ctsn = "/pinctrl/uart9/uart9m1-ctsn"; + qos_rga3_0 = "/qos@fdf67000"; + usbdp_phy0_dp = "/phy@fed80000/dp-port"; + uart2m0_xfer = "/pinctrl/uart2/uart2m0-xfer"; + uart6m0_ctsn = "/pinctrl/uart6/uart6m0-ctsn"; + npu_pins = "/pinctrl/npu/npu-pins"; + pcfg_pull_up_drv_level_11 = "/pinctrl/pcfg-pull-up-drv-level-11"; + spdif_tx3 = "/spdif-tx@fdde0000"; + rkispp0 = "/rkispp@fdcd0000"; + xin32k = "/clocks/xin32k"; + vcc_1v8_s3 = "/spi@feb20000/rk806single@0/regulators/DCDC_REG10"; + qos_usb2host_1 = "/qos@fdf3e600"; + bt_sco = "/bt-sco"; + pcfg_output_high_pull_none = "/pinctrl/pcfg-output-high-pull-none"; + adc_keys = "/adc-keys"; + rkcif_mipi_lvds4 = "/rkcif-mipi-lvds4"; + i2c8 = "/i2c@feca0000"; + dp0 = "/dp@fde50000"; + mipi_te1 = "/pinctrl/mipi/mipi-te1"; + i2c8m3_xfer = "/pinctrl/i2c8/i2c8m3-xfer"; + i2c5m2_xfer = "/pinctrl/i2c5/i2c5m2-xfer"; + pcie30x2_button_rstn = "/pinctrl/pcie30x2/pcie30x2-button-rstn"; + syssram = "/sram@ff001000"; + pcfg_pull_down_drv_level_2 = "/pinctrl/pcfg-pull-down-drv-level-2"; + qos_hdmirx = "/qos@fdf81200"; + i2c2m1_xfer = "/pinctrl/i2c2/i2c2m1-xfer"; + pcie30x4m1_pins = "/pinctrl/pcie30x4/pcie30x4m1-pins"; + vdd_0v75_s0 = "/spi@feb20000/rk806single@0/regulators/NLDO_REG5"; + hw_decompress = "/decompress@fea80000"; + pcie30x1m0_pins = "/pinctrl/pcie30x1/pcie30x1m0-pins"; + mipim0_camera4_clk = "/pinctrl/mipi/mipim0-camera4-clk"; + gmac1_txer = "/pinctrl/gmac1/gmac1-txer"; + uart3_ctsn = "/pinctrl/uart3/uart3-ctsn"; + vcc_sdcard_pwr_en = "/vcc-sdcard-pwr-en-regulator"; + mipi0_csi2_hw = "/mipi0-csi2-hw@fdd10000"; + rkvenc1_mmu = "/iommu@fdbef000"; + edp0 = "/edp@fdec0000"; + rkvenc_ccu = "/rkvenc-ccu"; + rk806_dvs3_rst = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs3_rst"; + power = "/power-management@fd8d8000/power-controller"; + vad = "/vad@fe4d0000"; + spi3m3_pins = "/pinctrl/spi3/spi3m3-pins"; + pwm8m2_pins = "/pinctrl/pwm8/pwm8m2-pins"; + spi0m2_pins = "/pinctrl/spi0/spi0m2-pins"; + pwm5m1_pins = "/pinctrl/pwm5/pwm5m1-pins"; + vcc_3v3_s0 = "/spi@feb20000/rk806single@0/regulators/PLDO_REG4"; + aclk_isp1_pre = "/clocks/aclk_isp1_pre@fd7c0868"; + pwm2m0_pins = "/pinctrl/pwm2/pwm2m0-pins"; + i2s1m1_sdo2 = "/pinctrl/i2s1/i2s1m1-sdo2"; + pcfg_pull_down_drv_level_13 = "/pinctrl/pcfg-pull-down-drv-level-13"; + eth0_pins = "/pinctrl/eth0/eth0-pins"; + rkcif_mipi_lvds4_sditf_vir1 = "/rkcif-mipi-lvds4-sditf-vir1"; + pwm3 = "/pwm@fd8b0030"; + pdm1m0_sdi3 = "/pinctrl/pdm1/pdm1m0-sdi3"; + rkcif_mmu = "/iommu@fdce0800"; + usbc0_int = "/pinctrl/usb-typec/usbc0-int"; + gmac0_tx_bus2 = "/pinctrl/gmac0/gmac0-tx-bus2"; + sata2 = "/sata@fe230000"; + uart9m2_xfer = "/pinctrl/uart9/uart9m2-xfer"; + dp0_in_vp2 = "/dp@fde50000/ports/port@0/endpoint@2"; + hdmiin_sound = "/hdmiin-sound"; + rkisp0_vir1 = "/rkisp0-vir1"; + uart6_gpios = "/pinctrl/wireless-bluetooth/uart6-gpios"; + spi3m3_cs1 = "/pinctrl/spi3/spi3m3-cs1"; + l2_cache_l1 = "/cpus/l2-cache-l1"; + pcfg_pull_none_drv_level_8 = "/pinctrl/pcfg-pull-none-drv-level-8"; + uart6m1_xfer = "/pinctrl/uart6/uart6m1-xfer"; + pwm11m3_pins = "/pinctrl/pwm11/pwm11m3-pins"; + vp2_out_hdmi0 = "/vop@fdd90000/ports/port@2/endpoint@2"; + qos_hdcp1 = "/qos@fdf81000"; + scmi_reset = "/firmware/scmi/protocol@16"; + vdd_cpu_lit_mem_s0 = "/spi@feb20000/rk806single@0/regulators/DCDC_REG2"; + i2s0_mclk = "/pinctrl/i2s0/i2s0-mclk"; + uart3m0_xfer = "/pinctrl/uart3/uart3m0-xfer"; + uart7m0_ctsn = "/pinctrl/uart7/uart7m0-ctsn"; + usbhost_dwc3_0 = "/usbhost3_0/usb@fcd00000"; + hdmim0_rx_hpdin = "/pinctrl/hdmi/hdmim0-rx-hpdin"; + edp0_out = "/edp@fdec0000/ports/port@1/endpoint"; + rkisp0 = "/rkisp@fdcb0000"; + dsu_grf = "/syscon@fd598000"; + vcc_fan_pwr_en = "/vcc-fan-pwr-en-regulator"; + gmac1_rx_bus2 = "/pinctrl/gmac1/gmac1-rx-bus2"; + uart1m2_rtsn = "/pinctrl/uart1/uart1m2-rtsn"; + csi2_dcphy0 = "/csi2-dcphy0"; + usb2phy0_grf = "/syscon@fd5d0000"; + scmi_clk = "/firmware/scmi/protocol@14"; + emmc_clk = "/pinctrl/emmc/emmc-clk"; + jpege1_mmu = "/iommu@fdba4800"; + qos_rkvenc1_m1ro = "/qos@fdf61200"; + spi2m2_cs0 = "/pinctrl/spi2/spi2m2-cs0"; + vcc5v0_host = "/vcc5v0-host"; + cru = "/clock-controller@fd7c0000"; + hdmim0_tx0_cec = "/pinctrl/hdmi/hdmim0-tx0-cec"; + pcfg_pull_none_drv_level_12 = "/pinctrl/pcfg-pull-none-drv-level-12"; + rk806_dvs2_null = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs2_null"; + cpub01_opp_info = "/otp@fecc0000/cpub01-opp-info@43"; + i2s3_sdi = "/pinctrl/i2s3/i2s3-sdi"; + aclk_rkvdec0_pre = "/clocks/aclk_rkvdec0_pre@fd7c08a0"; + cpu_b1 = "/cpus/cpu@500"; + i2c6m2_xfer = "/pinctrl/i2c6/i2c6m2-xfer"; + rknpu_mmu = "/iommu@fdab9000"; + rkcif_mipi_lvds_sditf = "/rkcif-mipi-lvds-sditf"; + i2c3m1_xfer = "/pinctrl/i2c3/i2c3m1-xfer"; + i2c0m0_xfer = "/pinctrl/i2c0/i2c0m0-xfer"; + pcie30x2m0_pins = "/pinctrl/pcie30x2/pcie30x2m0-pins"; + qos_isp1_mwo = "/qos@fdf41000"; + mipi2_csi2_output1 = "/mipi2-csi2/ports/port@1/endpoint@0"; + gmac1_stmmac_axi_setup = "/ethernet@fe1c0000/stmmac-axi-config"; + vcc5v0_usbdcin = "/vcc5v0-usbdcin"; + spi3m1_cs0 = "/pinctrl/spi3/spi3m1-cs0"; + reboot_mode = "/syscon@fd588000/reboot-mode"; + rga3_0_mmu = "/iommu@fdb60f00"; + uart2 = "/serial@feb50000"; + imx415_out0 = "/i2c@fec80000/imx415@37/port/endpoint"; + rkcif_mipi_lvds3_sditf_vir2 = "/rkcif-mipi-lvds3-sditf-vir2"; + pwm9m2_pins = "/pinctrl/pwm9/pwm9m2-pins"; + fec0_mmu = "/iommu@fdcd0f00"; + mipi0_csi2 = "/mipi0-csi2"; + spi1m2_pins = "/pinctrl/spi1/spi1m2-pins"; + pcfg_pull_up_drv_level_7 = "/pinctrl/pcfg-pull-up-drv-level-7"; + pwm6m1_pins = "/pinctrl/pwm6/pwm6m1-pins"; + tsadc_shut_org = "/pinctrl/tsadc/tsadc-shut-org"; + qos_rkvdec1 = "/qos@fdf63000"; + dmac0 = "/dma-controller@fea10000"; + vp2_out_edp1 = "/vop@fdd90000/ports/port@2/endpoint@6"; + pdm0m0_sdi1 = "/pinctrl/pdm0/pdm0m0-sdi1"; + qos_gpu_m0 = "/qos@fdf35000"; + pwm3m0_pins = "/pinctrl/pwm3/pwm3m0-pins"; + i2s0_sdi1 = "/pinctrl/i2s0/i2s0-sdi1"; + qos_av1 = "/qos@fdf64000"; + pcfg_output_low = "/pinctrl/pcfg-output-low"; + spdif_tx1 = "/spdif-tx@fe4f0000"; + hdptxphy1_grf = "/syscon@fd5e4000"; + spi4m0_cs0 = "/pinctrl/spi4/spi4m0-cs0"; + dp1_in_vp2 = "/dp@fde60000/ports/port@0/endpoint@2"; + jpegd_mmu = "/iommu@fdb90480"; + sata0m1_pins = "/pinctrl/sata0/sata0m1-pins"; + uart7m1_xfer = "/pinctrl/uart7/uart7m1-xfer"; + vp1_out_hdmi1 = "/vop@fdd90000/ports/port@1/endpoint@5"; + dp1_out = "/dp@fde60000/ports/port@1/endpoint"; + otp = "/otp@fecc0000"; + uart4m0_xfer = "/pinctrl/uart4/uart4m0-xfer"; + uart8m0_ctsn = "/pinctrl/uart8/uart8m0-ctsn"; + hdcp1 = "/hdcp@fde70000"; + rkcif_mipi_lvds2 = "/rkcif-mipi-lvds2"; + i2c6 = "/i2c@fec80000"; + qos_jpeg_enc3 = "/qos@fdf66a00"; + i2s2m1_idle = "/pinctrl/i2s2/i2s2m1-idle"; + refclk_pins = "/pinctrl/refclk/refclk-pins"; + pcie3x4_intc = "/pcie@fe150000/legacy-interrupt-controller"; + hdptxphy_hdmi1 = "/hdmiphy@fed70000"; + mipi2_lvds2_sditf = "/rkcif-mipi-lvds2-sditf/port/endpoint"; + pdm1 = "/pdm@fe4c0000"; + vdd_cpu_lit_s0 = "/spi@feb20000/rk806single@0/regulators/DCDC_REG2"; + pdm0m1_clk = "/pinctrl/pdm0/pdm0m1-clk"; + pcfg_pull_down_drv_level_0 = "/pinctrl/pcfg-pull-down-drv-level-0"; + qos_vicap_m0 = "/qos@fdf40600"; + gic = "/interrupt-controller@fe600000"; + vdd_cpu_big1_s0 = "/i2c@fd880000/rk8603@43"; + uart0_rtsn = "/pinctrl/uart0/uart0-rtsn"; + i2c7m2_xfer = "/pinctrl/i2c7/i2c7m2-xfer"; + mclkin_i2s3 = "/clocks/mclkin-i2s3"; + hdmim0_tx0_scl = "/pinctrl/hdmi/hdmim0-tx0-scl"; + hdmim0_tx0_sda = "/pinctrl/hdmi/hdmim0-tx0-sda"; + i2c4m1_xfer = "/pinctrl/i2c4/i2c4m1-xfer"; + spdif1m0_tx = "/pinctrl/spdif1/spdif1m0-tx"; + sdmmc_det = "/pinctrl/sdmmc/sdmmc-det"; + i2c1m0_xfer = "/pinctrl/i2c1/i2c1m0-xfer"; + rkcif_mipi_lvds2_sditf_vir3 = "/rkcif-mipi-lvds2-sditf-vir3"; + hdptxphy1 = "/phy@fed70000"; + route_dp1 = "/display-subsystem/route/route-dp1"; + hdmim0_tx0_hpd = "/pinctrl/hdmi/hdmim0-tx0-hpd"; + i2s1m1_sdo0 = "/pinctrl/i2s1/i2s1m1-sdo0"; + pdm1m0_clk = "/pinctrl/pdm1/pdm1m0-clk"; + pcfg_pull_down_drv_level_11 = "/pinctrl/pcfg-pull-down-drv-level-11"; + usbdrd3_1 = "/usbdrd3_1"; + spi2m2_pins = "/pinctrl/spi2/spi2m2-pins"; + pwm7m1_pins = "/pinctrl/pwm7/pwm7m1-pins"; + rkcif_mipi_lvds1_sditf = "/rkcif-mipi-lvds1-sditf"; + pwm1 = "/pwm@fd8b0010"; + pdm1m0_sdi1 = "/pinctrl/pdm1/pdm1m0-sdi1"; + threshold = "/thermal-zones/soc-thermal/trips/trip-point-0"; + pwm4m0_pins = "/pinctrl/pwm4/pwm4m0-pins"; + gmac0_mtl_rx_setup = "/ethernet@fe1b0000/rx-queues-config"; + sata0 = "/sata@fe210000"; + dp0_in_vp0 = "/dp@fde50000/ports/port@0/endpoint@0"; + can2 = "/can@fea70000"; + pcfg_pull_none_drv_level_6 = "/pinctrl/pcfg-pull-none-drv-level-6"; + usbdrd_dwc3_0 = "/usbdrd3_0/usb@fc000000"; + rkvenc0 = "/rkvenc-core@fdbd0000"; + bt_reset_gpio = "/pinctrl/wireless-bluetooth/bt-reset-gpio"; + sata1m1_pins = "/pinctrl/sata1/sata1m1-pins"; + spll = "/clocks/spll"; + uart8m1_xfer = "/pinctrl/uart8/uart8m1-xfer"; + sata_pins = "/pinctrl/sata/sata-pins"; + pcfg_pull_none_drv_level_1_smt = "/pinctrl/pcfg-pull-none-drv-level-1-smt"; + qos_npu1 = "/qos@fdf70000"; + uart5m0_xfer = "/pinctrl/uart5/uart5m0-xfer"; + uart9m0_ctsn = "/pinctrl/uart9/uart9m0-ctsn"; + pwm10m2_pins = "/pinctrl/pwm10/pwm10m2-pins"; + rk806_dvs1_pwrdn = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs1_pwrdn"; + pipe_phy0_grf = "/syscon@fd5bc000"; + es8388 = "/i2c@fec80000/es8388@11"; + spdif_rx2 = "/spdif-rx@fde18000"; + usb_host1_ehci = "/usb@fc880000"; + xin24m = "/clocks/xin24m"; + pcie20x1_2_button_rstn = "/pinctrl/pcie20x1/pcie20x1-2-button-rstn"; + mipi2_csi2_hw = "/mipi2-csi2-hw@fdd30000"; + acdcdig_dsm = "/codec-digital@fe500000"; + vop_grf = "/syscon@fd5a4000"; + rk806_dvs1_slp = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs1_slp"; + i2s6_8ch = "/i2s@fddf4000"; + i2s2m1_sdo = "/pinctrl/i2s2/i2s2m1-sdo"; + pcie30x1_1_button_rstn = "/pinctrl/pcie30x1/pcie30x1-1-button-rstn"; + pcfg_output_low_pull_down = "/pinctrl/pcfg-output-low-pull-down"; + pcfg_pull_none_drv_level_10 = "/pinctrl/pcfg-pull-none-drv-level-10"; + pdm0m1_clk1 = "/pinctrl/pdm0/pdm0m1-clk1"; + mipidphy0_grf = "/syscon@fd5b4000"; + route_dsi1 = "/display-subsystem/route/route-dsi1"; + route_hdmi0 = "/display-subsystem/route/route-hdmi0"; + rkvdec_ccu = "/rkvdec-ccu@fdc30000"; + csi2_dphy4 = "/csi2-dphy4"; + gmac1_rgmii_bus = "/pinctrl/gmac1/gmac1-rgmii-bus"; + qos_sdio = "/qos@fdf39000"; + tsadc = "/tsadc@fec00000"; + pcfg_output_high_pull_up = "/pinctrl/pcfg-output-high-pull-up"; + hclk_usb = "/clocks/hclk_usb@fd7c08a8"; + avcc_1v8_s0 = "/spi@feb20000/rk806single@0/regulators/PLDO_REG1"; + edp0_in_vp2 = "/edp@fdec0000/ports/port@0/endpoint@2"; + mdio1 = "/ethernet@fe1c0000/mdio"; + gpio3 = "/pinctrl/gpio@fec40000"; + gpu_opp_table = "/gpu-opp-table"; + cif_mipi2_in0 = "/rkcif-mipi-lvds2/port/endpoint"; + pcfg_output_high = "/pinctrl/pcfg-output-high"; + i2c8m2_xfer = "/pinctrl/i2c8/i2c8m2-xfer"; + vdpu_mmu = "/iommu@fdb50800"; + i2c5m1_xfer = "/pinctrl/i2c5/i2c5m1-xfer"; + combphy0_ps = "/phy@fee00000"; + rgb = "/syscon@fd58c000/rgb"; + hclk_vo1 = "/clocks/hclk_vo1@fd7c08ec"; + i2c2m0_xfer = "/pinctrl/i2c2/i2c2m0-xfer"; + uart0 = "/serial@fd890000"; + mipidcphy1_grf = "/syscon@fd5ec000"; + pcie30x4m0_pins = "/pinctrl/pcie30x4/pcie30x4m0-pins"; + vdd_ddr_pll_s0 = "/spi@feb20000/rk806single@0/regulators/NLDO_REG2"; + gmac0_txer = "/pinctrl/gmac0/gmac0-txer"; + uart2_ctsn = "/pinctrl/uart2/uart2-ctsn"; + pcfg_pull_up_drv_level_5 = "/pinctrl/pcfg-pull-up-drv-level-5"; + pcfg_pull_down_drv_level_9 = "/pinctrl/pcfg-pull-down-drv-level-9"; + pcfg_pull_none_drv_level_5_smt = "/pinctrl/pcfg-pull-none-drv-level-5-smt"; + i2s2m0_sdi = "/pinctrl/i2s2/i2s2m0-sdi"; + qos_rga2_mwo = "/qos@fdf66e00"; + spi3m2_pins = "/pinctrl/spi3/spi3m2-pins"; + pwm8m1_pins = "/pinctrl/pwm8/pwm8m1-pins"; + dsi1_in = "/dsi@fde30000/ports/port@0"; + vp3_out_dsi0 = "/vop@fdd90000/ports/port@3/endpoint@0"; + pclk_vo0_grf = "/clocks/pclk_vo0_grf@fd7c08dc"; + spi0m1_pins = "/pinctrl/spi0/spi0m1-pins"; + pwm5m0_pins = "/pinctrl/pwm5/pwm5m0-pins"; + bt1120_pins = "/pinctrl/bt1120/bt1120-pins"; + dp1_in_vp0 = "/dp@fde60000/ports/port@0/endpoint@0"; + i2s1m0_sdo2 = "/pinctrl/i2s1/i2s1m0-sdo2"; + mipi2_csi2_input0 = "/mipi2-csi2/ports/port@0/endpoint@0"; + u2phy0_otg = "/syscon@fd5d0000/usb2-phy@0/otg-port"; + vp0_out_edp0 = "/vop@fdd90000/ports/port@0/endpoint@1"; + qos_fisheye0 = "/qos@fdf40000"; + i2c4 = "/i2c@feac0000"; + sata2m1_pins = "/pinctrl/sata2/sata2m1-pins"; + uart9m1_xfer = "/pinctrl/uart9/uart9m1-xfer"; + qos_jpeg_enc1 = "/qos@fdf66600"; + i2s1m1_sdi2 = "/pinctrl/i2s1/i2s1m1-sdi2"; + i2s3_2ch = "/i2s@fe4a0000"; + uart6m0_xfer = "/pinctrl/uart6/uart6m0-xfer"; + cpul_leakage = "/otp@fecc0000/cpul-leakage@19"; + pwm11m2_pins = "/pinctrl/pwm11/pwm11m2-pins"; + fspim1_cs1 = "/pinctrl/fspi/fspim1-cs1"; + vdd_vdenc_s0 = "/spi@feb20000/rk806single@0/regulators/DCDC_REG4"; + pdm1m1_clk1 = "/pinctrl/pdm1/pdm1m1-clk1"; + hdmi_debug5 = "/pinctrl/hdmi/hdmi-debug5"; + uart1m1_rtsn = "/pinctrl/uart1/uart1m1-rtsn"; + qos_isp1_mro = "/qos@fdf41100"; + ddrphych3_pins = "/pinctrl/ddrphych3/ddrphych3-pins"; + spi0m3_cs1 = "/pinctrl/spi0/spi0m3-cs1"; + qos_rkvenc0_m1ro = "/qos@fdf60200"; + qos_jpeg_dec = "/qos@fdf66200"; + mclkin_i2s1 = "/clocks/mclkin-i2s1"; + edp1_in_vp2 = "/edp@fded0000/ports/port@0/endpoint@2"; + pcie30_avdd0v75 = "/pcie30-avdd0v75"; + isp0_mmu = "/iommu@fdcb7f00"; + qos_npu0_mwr = "/qos@fdf72000"; + rkvdec0 = "/rkvdec-core@fdc38000"; + rkvdec0_mmu = "/iommu@fdc38700"; + rk806_dvs1_null = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs1_null"; + pwm15 = "/pwm@febf0030"; + vop_mmu = "/iommu@fdd97e00"; + rkcif_mipi_lvds2_sditf_vir1 = "/rkcif-mipi-lvds2-sditf-vir1"; + pcie2x1l2 = "/pcie@fe190000"; + i2c6m1_xfer = "/pinctrl/i2c6/i2c6m1-xfer"; + package_serial_number_low = "/otp@fecc0000/package-serial-number-low@6"; + iep_mmu = "/iommu@fdbb0800"; + l2_cache_b3 = "/cpus/l2-cache-b3"; + i2c3m0_xfer = "/pinctrl/i2c3/i2c3m0-xfer"; + vcc_1v1_nldo_s3 = "/vcc-1v1-nldo-s3"; + spi1m2_cs1 = "/pinctrl/spi1/spi1m2-cs1"; + pdm0m1_idle = "/pinctrl/pdm0/pdm0m1-idle"; + can0 = "/can@fea50000"; + spi4m2_pins = "/pinctrl/spi4/spi4m2-pins"; + pcfg_pull_none_drv_level_4 = "/pinctrl/pcfg-pull-none-drv-level-4"; + pwm9m1_pins = "/pinctrl/pwm9/pwm9m1-pins"; + arm_pmu = "/arm-pmu"; + vp2 = "/vop@fdd90000/ports/port@2"; + rk806single = "/spi@feb20000/rk806single@0"; + spi1m1_pins = "/pinctrl/spi1/spi1m1-pins"; + pwm6m0_pins = "/pinctrl/pwm6/pwm6m0-pins"; + gmac0_mtl_tx_setup = "/ethernet@fe1b0000/tx-queues-config"; + rng = "/rng@fe378000"; + cpu_l2 = "/cpus/cpu@200"; + uart9 = "/serial@febc0000"; + spi0m1_cs0 = "/pinctrl/spi0/spi0m1-cs0"; + rk806_dvs3_gpio = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs3_gpio"; + rkcif_mipi_lvds5_sditf = "/rkcif-mipi-lvds5-sditf"; + usbdpphy0_grf = "/syscon@fd5c8000"; + mipim1_camera3_clk = "/pinctrl/mipi/mipim1-camera3-clk"; + pcie_clk3 = "/pcie-clk3"; + mipim0_camera1_clk = "/pinctrl/mipi/mipim0-camera1-clk"; + vp0_out_hdmi0 = "/vop@fdd90000/ports/port@0/endpoint@2"; + rkcif = "/rkcif@fdce0000"; + gmac0_rgmii_clk = "/pinctrl/gmac0/gmac0-rgmii-clk"; + wdt_en_base = "/pinctrl/wdt-pc9202/wdt-en-base"; + vp3_out_rgb = "/vop@fdd90000/ports/port@3/endpoint@2"; + spdif_rx0 = "/spdif-rx@fde08000"; + sdmmc_bus4 = "/pinctrl/sdmmc/sdmmc-bus4"; + hdmim2_tx0_scl = "/pinctrl/hdmi/hdmim2-tx0-scl"; + hdmim2_tx0_sda = "/pinctrl/hdmi/hdmim2-tx0-sda"; + spi2m1_cs1 = "/pinctrl/spi2/spi2m1-cs1"; + pwm15m3_pins = "/pinctrl/pwm15/pwm15m3-pins"; + sata0m0_pins = "/pinctrl/sata0/sata0m0-pins"; + uart7m0_xfer = "/pinctrl/uart7/uart7m0-xfer"; + csi2_dphy2 = "/csi2-dphy2"; + spi3 = "/spi@feb30000"; + edp0_in_vp0 = "/edp@fdec0000/ports/port@0/endpoint@0"; + gpio1 = "/pinctrl/gpio@fec20000"; + tsadcm1_shut = "/pinctrl/tsadc/tsadcm1-shut"; + usbdp_phy0_dp_altmode_mux = "/phy@fed80000/port/endpoint@1"; + i2s2m0_idle = "/pinctrl/i2s2/i2s2m0-idle"; + spi1m0_cs0 = "/pinctrl/spi1/spi1m0-cs0"; + rkcif_mipi_lvds1_sditf_vir2 = "/rkcif-mipi-lvds1-sditf-vir2"; + i2s3_sclk = "/pinctrl/i2s3/i2s3-sclk"; + hdmim1_rx_hpdin = "/pinctrl/hdmi/hdmim1-rx-hpdin"; + spi3m0_cs1 = "/pinctrl/spi3/spi3m0-cs1"; + mipi_dcphy1 = "/mipi-dcphy-dummy"; + vcc5v0_sys = "/vcc5v0-sys"; + aclk_hdcp0_pre = "/clocks/aclk_hdcp0_pre@fd7c08dc"; + usb_con = "/i2c@fec80000/fusb302@22/connector"; + hdmirx_ctrler = "/hdmirx-controller@fdee0000"; + i2c7m1_xfer = "/pinctrl/i2c7/i2c7m1-xfer"; + pcfg_pull_up_drv_level_3 = "/pinctrl/pcfg-pull-up-drv-level-3"; + rgmii_phy1 = "/ethernet@fe1c0000/mdio/phy@1"; + i2c4m0_xfer = "/pinctrl/i2c4/i2c4m0-xfer"; + pcfg_pull_down_drv_level_7 = "/pinctrl/pcfg-pull-down-drv-level-7"; + spdif0m0_tx = "/pinctrl/spdif0/spdif0m0-tx"; + wdt = "/watchdog@feaf0000"; + vdd_0v85_s0 = "/spi@feb20000/rk806single@0/regulators/NLDO_REG4"; + cspmu = "/cspmu@fd10c000"; + gmac_uio0 = "/uio@fe1b0000"; + av1d_mmu = "/iommu@fdca0000"; + mailbox2 = "/mailbox@fece0000"; + mipi4_csi2_hw = "/mipi4-csi2-hw@fdd50000"; + pdm1m1_idle = "/pinctrl/pdm1/pdm1m1-idle"; + rga3_core0 = "/rga@fdb60000"; + i2s1m0_sdo0 = "/pinctrl/i2s1/i2s1m0-sdo0"; + bigcore1_thermal = "/thermal-zones/bigcore1-thermal"; + pcfg_output_low_pull_up = "/pinctrl/pcfg-output-low-pull-up"; + spi2m1_pins = "/pinctrl/spi2/spi2m1-pins"; + pwm7m0_pins = "/pinctrl/pwm7/pwm7m0-pins"; + i2c2 = "/i2c@feaa0000"; + npu_grf = "/syscon@fd5a2000"; + i2s1m1_sdi0 = "/pinctrl/i2s1/i2s1m1-sdi0"; + mipi5_csi2 = "/mipi5-csi2"; + pwm8 = "/pwm@febe0000"; + log_leakage = "/otp@fecc0000/log-leakage@1a"; + cpub23_opp_info = "/otp@fecc0000/cpub23-opp-info@49"; + vdd_vdenc_mem_s0 = "/spi@feb20000/rk806single@0/regulators/DCDC_REG4"; + rga2 = "/rga@fdb80000"; + emmc_bus8 = "/pinctrl/emmc/emmc-bus8"; + qos_usb3_0 = "/qos@fdf3e200"; + sata1m0_pins = "/pinctrl/sata1/sata1m0-pins"; + uart8m0_xfer = "/pinctrl/uart8/uart8m0-xfer"; + pwm13m2_pins = "/pinctrl/pwm13/pwm13m2-pins"; + hdmi_debug3 = "/pinctrl/hdmi/hdmi-debug3"; + cam0_or_cam1_switch_pin = "/pinctrl/cam/cam0-or-cam1-switch-pin"; + mcum1_pins = "/pinctrl/mcu/mcum1-pins"; + pwm10m1_pins = "/pinctrl/pwm10/pwm10m1-pins"; + edp1_out = "/edp@fded0000/ports/port@1/endpoint"; + hclk_sdio_pre = "/clocks/hclk_sdio_pre@fd7c092c"; + usb_host0_ehci = "/usb@fc800000"; + edp1_in_vp0 = "/edp@fded0000/ports/port@0/endpoint@0"; + gmac1 = "/ethernet@fe1c0000"; + i2s10_8ch = "/i2s@fde00000"; + hdmi1_in = "/hdmi@fdea0000/ports/port@0"; + usb2phy1_grf = "/syscon@fd5d4000"; + pdm0m0_clk1 = "/pinctrl/pdm0/pdm0m0-clk1"; + jpege2_mmu = "/iommu@fdba8800"; + pwm13 = "/pwm@febf0010"; + pcie2x1l0 = "/pcie@fe170000"; + hdmi0_in_vp1 = "/hdmi@fde80000/ports/port@0/endpoint@1"; + hdmim0_tx1_cec = "/pinctrl/hdmi/hdmim0-tx1-cec"; + l2_cache_b1 = "/cpus/l2-cache-b1"; + cif_dvp_bus8 = "/pinctrl/cif/cif-dvp-bus8"; + qos_rga2_mro = "/qos@fdf66c00"; + aclk_rkvdec1_pre = "/clocks/aclk_rkvdec1_pre@fd7c08a4"; + i2c8m1_xfer = "/pinctrl/i2c8/i2c8m1-xfer"; + vdd_ddr_s0 = "/spi@feb20000/rk806single@0/regulators/DCDC_REG5"; + hdmirx_det = "/pinctrl/hdmirx/hdmirx-det"; + pca9555 = "/i2c@feab0000/gpio@21"; + qos_sdmmc = "/qos@fdf3d800"; + clk32k_out1 = "/pinctrl/clk32k/clk32k-out1"; + i2c5m0_xfer = "/pinctrl/i2c5/i2c5m0-xfer"; + cif_dvp_clk = "/pinctrl/cif/cif-dvp-clk"; + rknpu = "/npu@fdab0000"; + pcfg_pull_none_drv_level_2 = "/pinctrl/pcfg-pull-none-drv-level-2"; + spi3m2_cs0 = "/pinctrl/spi3/spi3m2-cs0"; + vp0 = "/vop@fdd90000/ports/port@0"; + rga3_1_mmu = "/iommu@fdb70f00"; + jtagm2_pins = "/pinctrl/jtag/jtagm2-pins"; + cpu_l0 = "/cpus/cpu@0"; + uart7 = "/serial@feba0000"; + rkisp1_vir2 = "/rkisp1-vir2"; + fec1_mmu = "/iommu@fdcd8f00"; + qos_vop_m0 = "/qos@fdf82000"; + pcie_clk1 = "/pcie-clk1"; + gmac1_ptp_ref_clk = "/pinctrl/gmac1/gmac1-ptp-ref-clk"; + spi3m1_pins = "/pinctrl/spi3/spi3m1-pins"; + pwm8m0_pins = "/pinctrl/pwm8/pwm8m0-pins"; + hdmi0_sound = "/hdmi0-sound"; + ioc = "/syscon@fd5f0000"; + spi0m0_pins = "/pinctrl/spi0/spi0m0-pins"; + avsd = "/avsd-plus@fdb51000"; + rkcif_mipi_lvds5_sditf_vir3 = "/rkcif-mipi-lvds5-sditf-vir3"; + u2phy2 = "/syscon@fd5d8000/usb2-phy@8000"; + sfc = "/spi@fe2b0000"; + csi2_dphy0 = "/csi2-dphy0"; + spi1 = "/spi@feb10000"; + spi4m1_cs0 = "/pinctrl/spi4/spi4m1-cs0"; + gpu_grf = "/syscon@fd5a0000"; + pcfg_pull_up_drv_level_14 = "/pinctrl/pcfg-pull-up-drv-level-14"; + wireless_bluetooth = "/wireless-bluetooth"; + pclk_av1_pre = "/clocks/pclk_av1_pre@fd7c0910"; + sata2m0_pins = "/pinctrl/sata2/sata2m0-pins"; + uart9m0_xfer = "/pinctrl/uart9/uart9m0-xfer"; + pwm14m2_pins = "/pinctrl/pwm14/pwm14m2-pins"; + i2s1m0_sdi2 = "/pinctrl/i2s1/i2s1m0-sdi2"; + pwm11m1_pins = "/pinctrl/pwm11/pwm11m1-pins"; + bt_sound = "/bt-sound"; + qos_rkvenc1_m0ro = "/qos@fdf61000"; + mclkout_i2s2 = "/clocks/mclkout-i2s2@fd58c318"; + dsi0 = "/dsi@fde20000"; + pdm1m0_clk1 = "/pinctrl/pdm1/pdm1m0-clk1"; + uart1m0_rtsn = "/pinctrl/uart1/uart1m0-rtsn"; + ddrphych2_pins = "/pinctrl/ddrphych2/ddrphych2-pins"; + route_edp0 = "/display-subsystem/route/route-edp0"; + hdmi0 = "/hdmi@fde80000"; + es8388_sound = "/es8388-sound"; + hdmi1_in_vp1 = "/hdmi@fdea0000/ports/port@0/endpoint@1"; + pcfg_pull_up_drv_level_1 = "/pinctrl/pcfg-pull-up-drv-level-1"; + pcfg_pull_down_drv_level_5 = "/pinctrl/pcfg-pull-down-drv-level-5"; + i2s0_sdo2 = "/pinctrl/i2s0/i2s0-sdo2"; + vop_out = "/vop@fdd90000/ports"; + vdd_0v75_s3 = "/spi@feb20000/rk806single@0/regulators/NLDO_REG1"; + hdmim1_rx = "/pinctrl/hdmi/hdmim1-rx"; + pcfg_pull_down_smt = "/pinctrl/pcfg-pull-down-smt"; + hdmim0_tx1_scl = "/pinctrl/hdmi/hdmim0-tx1-scl"; + hdmim0_tx1_sda = "/pinctrl/hdmi/hdmim0-tx1-sda"; + cpul_opp_info = "/otp@fecc0000/cpul-opp-info@3d"; + clk32k_in = "/pinctrl/clk32k/clk32k-in"; + usbdp_phy1 = "/phy@fed90000"; + mailbox0 = "/mailbox@fec60000"; + i2c6m0_xfer = "/pinctrl/i2c6/i2c6m0-xfer"; + pdm0m1_sdi2 = "/pinctrl/pdm0/pdm0m1-sdi2"; + sdmmc = "/mmc@fe2c0000"; + hclk_nvm = "/clocks/hclk_nvm@fd7c087c"; + hdmim0_tx1_hpd = "/pinctrl/hdmi/hdmim0-tx1-hpd"; + vp0_out_dp0 = "/vop@fdd90000/ports/port@0/endpoint@0"; + vddq_ddr_s0 = "/spi@feb20000/rk806single@0/regulators/DCDC_REG9"; + vcc_3v3_s3 = "/spi@feb20000/rk806single@0/regulators/DCDC_REG8"; + gmac0_ppstring = "/pinctrl/gmac0/gmac0-ppstring"; + i2c0 = "/i2c@fd880000"; + pdm1m1_clk = "/pinctrl/pdm1/pdm1m1-clk"; + pdm0m0_idle = "/pinctrl/pdm0/pdm0m0-idle"; + soc_thermal = "/thermal-zones/soc-thermal"; + cluster1_opp_table = "/cluster1-opp-table"; + i2s0_idle = "/pinctrl/i2s0/i2s0-idle"; + spi4m1_pins = "/pinctrl/spi4/spi4m1-pins"; + npu_opp_info = "/otp@fecc0000/npu-opp-info@55"; + pwm9m0_pins = "/pinctrl/pwm9/pwm9m0-pins"; + pwm6 = "/pwm@febd0020"; + spi1m0_pins = "/pinctrl/spi1/spi1m0-pins"; + hym8563 = "/i2c@fd880000/hym8563@51"; + i2s1m1_sclk = "/pinctrl/i2s1/i2s1m1-sclk"; + rk806_dvs2_gpio = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs2_gpio"; + hp_det = "/pinctrl/headphone/hp-det"; + hdmi_debug1 = "/pinctrl/hdmi/hdmi-debug1"; + vp1_out_dp1 = "/vop@fdd90000/ports/port@1/endpoint@3"; + qos_mcu_npu = "/qos@fdf72400"; + auddsm_pins = "/pinctrl/auddsm/auddsm-pins"; + i2s3_lrck = "/pinctrl/i2s3/i2s3-lrck"; + pcfg_pull_none_drv_level_2_smt = "/pinctrl/pcfg-pull-none-drv-level-2-smt"; + pwm15m2_pins = "/pinctrl/pwm15/pwm15m2-pins"; + pipe_phy1_grf = "/syscon@fd5c0000"; + pwm12m1_pins = "/pinctrl/pwm12/pwm12m1-pins"; + pwm11 = "/pwm@febe0030"; + rkisp_unite = "/rkisp-unite@fdcb0000"; + rkcif_mipi_lvds2_sditf = "/rkcif-mipi-lvds2-sditf"; + vp1_out_edp0 = "/vop@fdd90000/ports/port@1/endpoint@1"; + hclk_isp1_pre = "/clocks/hclk_isp1_pre@fd7c0868"; + rk806_dvs2_slp = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs2_slp"; + i2s7_8ch = "/i2s@fddf8000"; + uart5m1_rtsn = "/pinctrl/uart5/uart5m1-rtsn"; + mipidphy1_grf = "/syscon@fd5b5000"; + usbhost3_0 = "/usbhost3_0"; + jpege2 = "/jpege-core@fdba8000"; + pcfg_pull_none_drv_level_15 = "/pinctrl/pcfg-pull-none-drv-level-15"; + pcie3x2_intc = "/pcie@fe160000/legacy-interrupt-controller"; + vp2_out_dsi1 = "/vop@fdd90000/ports/port@2/endpoint@4"; + mipidphy0_in_ucam0 = "/csi2-dphy0/ports/port@0/endpoint@0"; + av1d = "/av1d@fdc70000"; + uart1m2_ctsn = "/pinctrl/uart1/uart1m2-ctsn"; + sdiom1_pins = "/pinctrl/sdio/sdiom1-pins"; + rockchip_suspend = "/rockchip-suspend"; + rk806_dvs2_pwrdn = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs2_pwrdn"; + pcfg_pull_none_drv_level_0 = "/pinctrl/pcfg-pull-none-drv-level-0"; + npu_thermal = "/thermal-zones/npu-thermal"; + i2c7m0_xfer = "/pinctrl/i2c7/i2c7m0-xfer"; + pdm1m1_sdi2 = "/pinctrl/pdm1/pdm1m1-sdi2"; + cpu_pins = "/pinctrl/cpu/cpu-pins"; + dsi0_in_vp2 = "/dsi@fde20000/ports/port@0/endpoint@0"; + bt_wake_gpio = "/pinctrl/wireless-bluetooth/bt-wake-gpio"; + uart5 = "/serial@feb80000"; + dwc3_0_role_switch = "/usbdrd3_0/usb@fc000000/port/endpoint@0"; + rkisp1_vir0 = "/rkisp1-vir0"; + fiq_debugger = "/fiq-debugger"; + usbdp_phy1_u3 = "/phy@fed90000/u3-port"; + spi0m0_cs1 = "/pinctrl/spi0/spi0m0-cs1"; + sdio = "/mmc@fe2d0000"; + rkcif_mipi_lvds_sditf_vir2 = "/rkcif-mipi-lvds-sditf-vir2"; + spdif1m2_tx = "/pinctrl/spdif1/spdif1m2-tx"; + qos_gpu_m3 = "/qos@fdf35600"; + pdm1m0_idle = "/pinctrl/pdm1/pdm1m0-idle"; + pcfg_pull_none_drv_level_6_smt = "/pinctrl/pcfg-pull-none-drv-level-6-smt"; + user_led = "/leds/user"; + rkcif_mipi_lvds5_sditf_vir1 = "/rkcif-mipi-lvds5-sditf-vir1"; + i2s2m1_sdi = "/pinctrl/i2s2/i2s2m1-sdi"; + uart8_xfer = "/pinctrl/uart8/uart8-xfer"; + u2phy0 = "/syscon@fd5d0000/usb2-phy@0"; + pclk_vo1_grf = "/clocks/pclk_vo1_grf@fd7c08ec"; + vdd_gpu_mem_s0 = "/spi@feb20000/rk806single@0/regulators/DCDC_REG1"; + spi2m0_pins = "/pinctrl/spi2/spi2m0-pins"; + qos_rga3_1 = "/qos@fdf36000"; + i2s2m1_sclk = "/pinctrl/i2s2/i2s2m1-sclk"; + pcfg_pull_up_drv_level_12 = "/pinctrl/pcfg-pull-up-drv-level-12"; + spdif_tx4 = "/spdif-tx@fdde8000"; + gmac1_mtl_rx_setup = "/ethernet@fe1c0000/rx-queues-config"; + rkispp1 = "/rkispp@fdcd8000"; + hdmim2_tx1_cec = "/pinctrl/hdmi/hdmim2-tx1-cec"; + u2phy1_otg = "/syscon@fd5d4000/usb2-phy@4000/otg-port"; + hdptxphy_hdmi_clk0 = "/hdmiphy@fed60000/clk-port"; + i2s1m0_sdi0 = "/pinctrl/i2s1/i2s1m0-sdi0"; + mipi4_csi2 = "/mipi4-csi2"; + mclkout_i2s0 = "/clocks/mclkout-i2s0@fd58c318"; + vcc5v0_host3 = "/vcc5v0-host3"; + rkcif_mipi_lvds5 = "/rkcif-mipi-lvds5"; + vdd_cpu_big0_s0 = "/i2c@fd880000/rk8602@42"; + dp1 = "/dp@fde60000"; + emmc_data_strobe = "/pinctrl/emmc/emmc-data-strobe"; + pwm13m1_pins = "/pinctrl/pwm13/pwm13m1-pins"; + vop_pins = "/pinctrl/vop/vop-pins"; + pcie20x1m1_pins = "/pinctrl/pcie20x1/pcie20x1m1-pins"; + fspim2_cs1 = "/pinctrl/fspi/fspim2-cs1"; + vcc_hub = "/vcc-hub-regulator"; + mcum0_pins = "/pinctrl/mcu/mcum0-pins"; + pwm10m0_pins = "/pinctrl/pwm10/pwm10m0-pins"; + uart9m2_rtsn = "/pinctrl/uart9/uart9m2-rtsn"; + mipidcphy0 = "/phy@feda0000"; + uart6m1_rtsn = "/pinctrl/uart6/uart6m1-rtsn"; + vcc3v3_pcie30 = "/vcc3v3-pcie30"; + pcfg_pull_down_drv_level_3 = "/pinctrl/pcfg-pull-down-drv-level-3"; + mipim1_camera0_clk = "/pinctrl/mipi/mipim1-camera0-clk"; + i2s0_sdo0 = "/pinctrl/i2s0/i2s0-sdo0"; + vop = "/vop@fdd90000"; + gmac0_ptp_refclk = "/pinctrl/gmac0/gmac0-ptp-refclk"; + usbdp_phy0_orientation_switch = "/phy@fed80000/port/endpoint@0"; + vepu = "/vepu@fdb50000"; + cif_clk = "/pinctrl/cif/cif-clk"; + pcie30_phy_grf = "/syscon@fd5b8000"; + isp1_mmu = "/iommu@fdcc7f00"; + pdm0m1_sdi0 = "/pinctrl/pdm0/pdm0m1-sdi0"; + rkvdec1_mmu = "/iommu@fdc48700"; + edp1 = "/edp@fded0000"; + cam0_cam1_switch = "/cam0-cam1-switch"; + gmac1_ppstrig = "/pinctrl/gmac1/gmac1-ppstrig"; + i2c8m0_xfer = "/pinctrl/i2c8/i2c8m0-xfer"; + dsi1_in_vp2 = "/dsi@fde30000/ports/port@0/endpoint@0"; + hdmim2_rx_hpdin = "/pinctrl/hdmi/hdmim2-rx-hpdin"; + i2s1m1_sdo3 = "/pinctrl/i2s1/i2s1m1-sdo3"; + pcfg_pull_down_drv_level_14 = "/pinctrl/pcfg-pull-down-drv-level-14"; + gmac0_rx_bus2 = "/pinctrl/gmac0/gmac0-rx-bus2"; + rkcif_mipi_lvds4_sditf_vir2 = "/rkcif-mipi-lvds4-sditf-vir2"; + center_thermal = "/thermal-zones/center-thermal"; + uart0_ctsn = "/pinctrl/uart0/uart0-ctsn"; + uart4_rtsn = "/pinctrl/uart4/uart4-rtsn"; + pwm4 = "/pwm@febd0000"; + vdd2_ddr_s3 = "/spi@feb20000/rk806single@0/regulators/DCDC_REG6"; + jtagm1_pins = "/pinctrl/jtag/jtagm1-pins"; + rkisp0_vir2 = "/rkisp0-vir2"; + i2c1m4_xfer = "/pinctrl/i2c1/i2c1m4-xfer"; + l2_cache_l2 = "/cpus/l2-cache-l2"; + pcfg_pull_none_drv_level_9 = "/pinctrl/pcfg-pull-none-drv-level-9"; + qos_vdpu = "/qos@fdf67200"; + vp2_out_hdmi1 = "/vop@fdd90000/ports/port@2/endpoint@7"; + spi3m0_pins = "/pinctrl/spi3/spi3m0-pins"; + pcfg_output_low_pull_none = "/pinctrl/pcfg-output-low-pull-none"; + spi0m2_cs0 = "/pinctrl/spi0/spi0m2-cs0"; + rkisp1 = "/rkisp@fdcc0000"; + usbdpphy1_grf = "/syscon@fd5cc000"; + mipim1_camera4_clk = "/pinctrl/mipi/mipim1-camera4-clk"; + mipim0_camera2_clk = "/pinctrl/mipi/mipim0-camera2-clk"; + csi2_dcphy1 = "/csi2-dcphy1"; + hdmim2_tx1_scl = "/pinctrl/hdmi/hdmim2-tx1-scl"; + hdmim2_tx1_sda = "/pinctrl/hdmi/hdmim2-tx1-sda"; + spi2m2_cs1 = "/pinctrl/spi2/spi2m2-cs1"; + chosen = "/chosen"; + soc_crit = "/thermal-zones/soc-thermal/trips/soc-crit"; + rk806_dvs1_rst = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs1_rst"; + mpp_srv = "/mpp-srv"; + hclk_rkvenc1_pre = "/clocks/hclk_rkvenc1_pre@fd7c08c0"; + dp0m2_pins = "/pinctrl/dp0/dp0m2-pins"; + debug = "/debug@fd104000"; + jpege0 = "/jpege-core@fdba0000"; + pcfg_pull_none_drv_level_13 = "/pinctrl/pcfg-pull-none-drv-level-13"; + pwm14m1_pins = "/pinctrl/pwm14/pwm14m1-pins"; + pwm11m0_pins = "/pinctrl/pwm11/pwm11m0-pins"; + vp2_out_dp0 = "/vop@fdd90000/ports/port@2/endpoint@0"; + qos_rkvenc0_m0ro = "/qos@fdf60000"; + its0 = "/interrupt-controller@fe600000/msi-controller@fe640000"; + cpu_b2 = "/cpus/cpu@600"; + uart7m1_rtsn = "/pinctrl/uart7/uart7m1-rtsn"; + usb_5v_ctrl = "/pinctrl/usb-typec/usb-5v-ctrl"; + tsadc_gpio_func = "/pinctrl/gpio-func/tsadc-gpio-func"; + spi1m1_cs0 = "/pinctrl/spi1/spi1m1-cs0"; + pcfg_pull_down = "/pinctrl/pcfg-pull-down"; + dmc_opp_info = "/otp@fecc0000/dmc-opp-info@5b"; + ddrphych1_pins = "/pinctrl/ddrphych1/ddrphych1-pins"; + dsi0_in = "/dsi@fde20000/ports/port@0"; + pdm1m1_sdi0 = "/pinctrl/pdm1/pdm1m1-sdi0"; + spi3m1_cs1 = "/pinctrl/spi3/spi3m1-cs1"; + bigcore0_grf = "/syscon@fd590000"; + cpub1_leakage = "/otp@fecc0000/cpub1-leakage@18"; + uart3 = "/serial@feb60000"; + aclk_hdcp1_pre = "/clocks/aclk_hdcp1_pre@fd7c08ec"; + pcfg_pull_up = "/pinctrl/pcfg-pull-up"; + rkcif_mipi_lvds3_sditf_vir3 = "/rkcif-mipi-lvds3-sditf-vir3"; + codec_leakage = "/otp@fecc0000/codec-leakage@29"; + pcfg_pull_up_drv_level_8 = "/pinctrl/pcfg-pull-up-drv-level-8"; + dmac1 = "/dma-controller@fea30000"; + pdm0m0_sdi2 = "/pinctrl/pdm0/pdm0m0-sdi2"; + i2s1m1_lrck = "/pinctrl/i2s1/i2s1m1-lrck"; + qos_gpu_m1 = "/qos@fdf35200"; + i2s0_sdi2 = "/pinctrl/i2s0/i2s0-sdi2"; + spi2m0_cs0 = "/pinctrl/spi2/spi2m0-cs0"; + gpu_opp_info = "/otp@fecc0000/gpu-opp-info@4f"; + csi2_dphy1_hw = "/csi2-dphy1-hw@fedc8000"; + pcfg_pull_up_drv_level_10 = "/pinctrl/pcfg-pull-up-drv-level-10"; + spdif_tx2 = "/spdif-tx@fddb0000"; + npu_opp_table = "/npu-opp-table"; + spi4m0_cs1 = "/pinctrl/spi4/spi4m0-cs1"; + vo0_grf = "/syscon@fd5a6000"; + i2c2m4_xfer = "/pinctrl/i2c2/i2c2m4-xfer"; + qos_usb2host_0 = "/qos@fdf3e400"; + spi4m0_pins = "/pinctrl/spi4/spi4m0-pins"; + gmac1_mtl_tx_setup = "/ethernet@fe1c0000/tx-queues-config"; + rkcif_mipi_lvds3 = "/rkcif-mipi-lvds3"; + i2s1m0_sclk = "/pinctrl/i2s1/i2s1m0-sclk"; + i2c7 = "/i2c@fec90000"; + mipi2_csi2_output = "/mipi2-csi2/ports/port@1/endpoint@0"; + mipi_te0 = "/pinctrl/mipi/mipi-te0"; + sata_reset = "/pinctrl/sata/sata-reset"; + dp1m2_pins = "/pinctrl/dp1/dp1m2-pins"; + pwm15m1_pins = "/pinctrl/pwm15/pwm15m1-pins"; + pcfg_pull_down_drv_level_1 = "/pinctrl/pcfg-pull-down-drv-level-1"; + pwm12m0_pins = "/pinctrl/pwm12/pwm12m0-pins"; + qos_vicap_m1 = "/qos@fdf40800"; + sdmmc_cmd = "/pinctrl/sdmmc/sdmmc-cmd"; + uart8m1_rtsn = "/pinctrl/uart8/uart8m1-rtsn"; + usb2phy2_grf = "/syscon@fd5d8000"; + rkvdec1_sram = "/sram@ff001000/rkvdec-sram@78000"; + uart5m0_rtsn = "/pinctrl/uart5/uart5m0-rtsn"; + jpege3_mmu = "/iommu@fdbac800"; + vcc_2v0_pldo_s3 = "/spi@feb20000/rk806single@0/regulators/DCDC_REG7"; + i2s3_mclk = "/pinctrl/i2s3/i2s3-mclk"; + mclkout_i2s1m1 = "/clocks/mclkout-i2s1@fd58a000"; + spdif_tx1_dc = "/spdif-tx1-dc"; + uart0m2_xfer = "/pinctrl/uart0/uart0m2-xfer"; + wifi_host_wake_irq = "/pinctrl/wireless-wlan/wifi-host-wake-irq"; + i2s1m1_sdo1 = "/pinctrl/i2s1/i2s1m1-sdo1"; + uart1m1_ctsn = "/pinctrl/uart1/uart1m1-ctsn"; + pcfg_pull_down_drv_level_12 = "/pinctrl/pcfg-pull-down-drv-level-12"; + sdiom0_pins = "/pinctrl/sdio/sdiom0-pins"; + pcfg_pull_up_smt = "/pinctrl/pcfg-pull-up-smt"; + php_grf = "/syscon@fd5b0000"; + pwm2 = "/pwm@fd8b0020"; + pdm1m0_sdi2 = "/pinctrl/pdm1/pdm1m0-sdi2"; + i2s2m1_lrck = "/pinctrl/i2s2/i2s2m1-lrck"; + gmac0_stmmac_axi_setup = "/ethernet@fe1b0000/stmmac-axi-config"; + mipi1_csi2_hw = "/mipi1-csi2-hw@fdd20000"; + sata1 = "/sata@fe220000"; + rkispp1_vir0 = "/rkispp1-vir0"; + dp0_in_vp1 = "/dp@fde50000/ports/port@0/endpoint@1"; + CPU_SLEEP = "/cpus/idle-states/cpu-sleep"; + rkisp0_vir0 = "/rkisp0-vir0"; + spi3m3_cs0 = "/pinctrl/spi3/spi3m3-cs0"; + specification_serial_number = "/otp@fecc0000/specification-serial-number@6"; + l2_cache_l0 = "/cpus/l2-cache-l0"; + pcfg_pull_none_drv_level_7 = "/pinctrl/pcfg-pull-none-drv-level-7"; + qos_hdcp0 = "/qos@fdf80000"; + qos_npu0_mro = "/qos@fdf72200"; + usbdrd_dwc3_1 = "/usbdrd3_1/usb@fc400000"; + rkvenc1 = "/rkvenc-core@fdbe0000"; + display_subsystem = "/display-subsystem"; + i2c3m4_xfer = "/pinctrl/i2c3/i2c3m4-xfer"; + pcie30x2m3_pins = "/pinctrl/pcie30x2/pcie30x2m3-pins"; + qos_npu2 = "/qos@fdf71000"; + i2s0_8ch = "/i2s@fe470000"; + i2s2m0_sclk = "/pinctrl/i2s2/i2s2m0-sclk"; + pmu = "/power-management@fd8d8000"; + gmac1_tx_bus2 = "/pinctrl/gmac1/gmac1-tx-bus2"; + pcfg_pull_none_drv_level_11 = "/pinctrl/pcfg-pull-none-drv-level-11"; + route_hdmi1 = "/display-subsystem/route/route-hdmi1"; + csi2_dphy5 = "/csi2-dphy5"; + spi4m2_cs0 = "/pinctrl/spi4/spi4m2-cs0"; + mipi3_csi2 = "/mipi3-csi2"; + pmu0_grf = "/syscon@fd588000"; + fan = "/pwm-fan"; + cpu_b0 = "/cpus/cpu@400"; + vccio_sd_s0 = "/spi@feb20000/rk806single@0/regulators/PLDO_REG5"; + qos_rkvenc1_m2wo = "/qos@fdf61400"; + gpio4 = "/pinctrl/gpio@fec50000"; + hdmim0_rx_cec = "/pinctrl/hdmi/hdmim0-rx-cec"; + pwm3m3_pins = "/pinctrl/pwm3/pwm3m3-pins"; + aclk_vdpu_low_pre = "/clocks/aclk_vdpu_low_pre@fd7c08b0"; + mmu600_php = "/iommu@fcb00000"; + cif_mipi2_in1 = "/rkcif-mipi-lvds2/port/endpoint"; + pwm0m2_pins = "/pinctrl/pwm0/pwm0m2-pins"; + pwm13m0_pins = "/pinctrl/pwm13/pwm13m0-pins"; + pcie20x1m0_pins = "/pinctrl/pcie20x1/pcie20x1m0-pins"; + bt656_pins = "/pinctrl/bt656/bt656-pins"; + hdmi1_sound = "/hdmi1-sound"; + uart9m1_rtsn = "/pinctrl/uart9/uart9m1-rtsn"; + uart6m0_rtsn = "/pinctrl/uart6/uart6m0-rtsn"; + pcie2x1l2_intc = "/pcie@fe190000/legacy-interrupt-controller"; + mod_sleep = "/mod-sleep-regulator"; + gpu_thermal = "/thermal-zones/gpu-thermal"; + hdmim1_tx0_cec = "/pinctrl/hdmi/hdmim1-tx0-cec"; + uart1 = "/serial@feb40000"; + rkcif_mipi_lvds3_sditf_vir1 = "/rkcif-mipi-lvds3-sditf-vir1"; + pcfg_pull_up_drv_level_6 = "/pinctrl/pcfg-pull-up-drv-level-6"; + qos_rkvdec0 = "/qos@fdf62000"; + vp2_out_edp0 = "/vop@fdd90000/ports/port@2/endpoint@1"; + uart1m2_xfer = "/pinctrl/uart1/uart1m2-xfer"; + pdm0m0_sdi0 = "/pinctrl/pdm0/pdm0m0-sdi0"; + fspim2_pins = "/pinctrl/fspi/fspim2-pins"; + i2s0_sdi0 = "/pinctrl/i2s0/i2s0-sdi0"; + gpu_pins = "/pinctrl/gpu/gpu-pins"; + imx415 = "/i2c@fec80000/imx415@37"; + vp3_out_dsi1 = "/vop@fdd90000/ports/port@3/endpoint@1"; + i2s4_8ch = "/i2s@fddc0000"; + ramoops = "/reserved-memory/ramoops@110000"; + dp0_sound = "/dp0-sound"; + spdif_tx0 = "/spdif-tx@fe4e0000"; + dp1_in_vp1 = "/dp@fde60000/ports/port@0/endpoint@1"; + i2s1m0_sdo3 = "/pinctrl/i2s1/i2s1m0-sdo3"; + mipi2_csi2_input1 = "/mipi2-csi2/ports/port@0/endpoint@0"; + vcc_1v8_s0 = "/spi@feb20000/rk806single@0/regulators/PLDO_REG2"; + vp1_out_hdmi0 = "/vop@fdd90000/ports/port@1/endpoint@2"; + vcc12v_dcin = "/vcc12v-dcin"; + vp0_out_edp1 = "/vop@fdd90000/ports/port@0/endpoint@4"; + uart3_rtsn = "/pinctrl/uart3/uart3-rtsn"; + gmac1_rgmii_clk = "/pinctrl/gmac1/gmac1-rgmii-clk"; + package_serial_number_high = "/otp@fecc0000/package-serial-number-high@5"; + hdcp0 = "/hdcp@fde40000"; + qos_fisheye1 = "/qos@fdf40200"; + rkcif_mipi_lvds1 = "/rkcif-mipi-lvds1"; + i2c5 = "/i2c@fead0000"; + jtagm0_pins = "/pinctrl/jtag/jtagm0-pins"; + i2c4m4_xfer = "/pinctrl/i2c4/i2c4m4-xfer"; + spdif_tx1_sound = "/spdif-tx1-sound"; + qos_jpeg_enc2 = "/qos@fdf66800"; + hdmi0_in = "/hdmi@fde80000/ports/port@0"; + i2s1m1_sdi3 = "/pinctrl/i2s1/i2s1m1-sdi3"; + i2c1m3_xfer = "/pinctrl/i2c1/i2c1m3-xfer"; + hdptxphy_hdmi0 = "/hdmiphy@fed60000"; + sdmmc_pwren = "/pinctrl/sdmmc/sdmmc-pwren"; + usbdp_phy1_dp = "/phy@fed90000/dp-port"; + npu_leakage = "/otp@fecc0000/npu-leakage@28"; + aclk_jpeg_decoder_pre = "/clocks/aclk_jpeg_decoder_pre@fd7c08b0"; + pdm0 = "/pdm@fe4b0000"; + gmac1_miim = "/pinctrl/gmac1/gmac1-miim"; + pcfg_output_high_pull_down = "/pinctrl/pcfg-output-high-pull-down"; + hdmi_debug6 = "/pinctrl/hdmi/hdmi-debug6"; + pcie3x4 = "/pcie@fe150000"; + can0m1_pins = "/pinctrl/can0/can0m1-pins"; + mclkin_i2s2 = "/clocks/mclkin-i2s2"; + jpege_ccu = "/jpege-ccu"; + pcfg_pull_none_drv_level_3_smt = "/pinctrl/pcfg-pull-none-drv-level-3-smt"; + hdmim1_rx_cec = "/pinctrl/hdmi/hdmim1-rx-cec"; + pipe_phy2_grf = "/syscon@fd5c4000"; + dp0m1_pins = "/pinctrl/dp0/dp0m1-pins"; + rkvdec1 = "/rkvdec-core@fdc48000"; + pwm1m2_pins = "/pinctrl/pwm1/pwm1m2-pins"; + pwm14m0_pins = "/pinctrl/pwm14/pwm14m0-pins"; + little_core_thermal = "/thermal-zones/littlecore-thermal"; + rk806_dvs3_slp = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs3_slp"; + usb_5v = "/usb-5v"; + i2s8_8ch = "/i2s@fddc8000"; + drm_cubic_lut = "/reserved-memory/drm-cubic-lut@00000000"; + rkcif_mipi_lvds2_sditf_vir2 = "/rkcif-mipi-lvds2-sditf-vir2"; + hdptxphy0 = "/phy@fed60000"; + pcie30x1_0_button_rstn = "/pinctrl/pcie30x1/pcie30x1-0-button-rstn"; + u2phy3_host = "/syscon@fd5dc000/usb2-phy@c000/host-port"; + route_dp0 = "/display-subsystem/route/route-dp0"; + hdmim0_rx_scl = "/pinctrl/hdmi/hdmim0-rx-scl"; + hdmim0_rx_sda = "/pinctrl/hdmi/hdmim0-rx-sda"; + uart7m0_rtsn = "/pinctrl/uart7/uart7m0-rtsn"; + pcfg_pull_down_drv_level_10 = "/pinctrl/pcfg-pull-down-drv-level-10"; + usbdrd3_0 = "/usbdrd3_0"; + ddrphych0_pins = "/pinctrl/ddrphych0/ddrphych0-pins"; + bt_irq_gpio = "/pinctrl/wireless-bluetooth/bt-irq-gpio"; + pwm0 = "/pwm@fd8b0000"; + uart2m2_xfer = "/pinctrl/uart2/uart2m2-xfer"; + pdm1m0_sdi0 = "/pinctrl/pdm1/pdm1m0-sdi0"; + hdmim1_tx0_scl = "/pinctrl/hdmi/hdmim1-tx0-scl"; + hdmim1_tx0_sda = "/pinctrl/hdmi/hdmim1-tx0-sda"; + can1 = "/can@fea60000"; + rkvtunnel = "/rkvtunnel"; + pcfg_pull_none_drv_level_5 = "/pinctrl/pcfg-pull-none-drv-level-5"; + rkcif_mipi_lvds3_sditf = "/rkcif-mipi-lvds3-sditf"; + combphy2_psu = "/phy@fee20000"; + vp3 = "/vop@fdd90000/ports/port@3"; + rk806_dvs2_dvs = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs2_dvs"; + mmu600_pcie = "/iommu@fc900000"; + hdmim1_tx0_hpd = "/pinctrl/hdmi/hdmim1-tx0-hpd"; + i2s1m0_lrck = "/pinctrl/i2s1/i2s1m0-lrck"; + cpu_l3 = "/cpus/cpu@300"; + spi0m1_cs1 = "/pinctrl/spi0/spi0m1-cs1"; + vp0_out_hdmi1 = "/vop@fdd90000/ports/port@0/endpoint@5"; + spdif_rx1 = "/spdif-rx@fde10000"; + gmac0_clkinout = "/pinctrl/gmac0/gmac0-clkinout"; + rkcif_dvp = "/rkcif-dvp"; + i2c5m4_xfer = "/pinctrl/i2c5/i2c5m4-xfer"; + wireless_wlan = "/wireless-wlan"; + rkcif_mipi_lvds = "/rkcif-mipi-lvds"; + avdd_0v75_s0 = "/spi@feb20000/rk806single@0/regulators/NLDO_REG3"; + i2c2m3_xfer = "/pinctrl/i2c2/i2c2m3-xfer"; + pcie30x4m3_pins = "/pinctrl/pcie30x4/pcie30x4m3-pins"; + hclk_rkvdec0_pre = "/clocks/hclk_rkvdec0_pre@fd7c08a0"; + route_dsi0 = "/display-subsystem/route/route-dsi0"; + rk806_dvs3_pwrdn = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs3_pwrdn"; + csi2_dphy3 = "/csi2-dphy3"; + pcie30x1m2_pins = "/pinctrl/pcie30x1/pcie30x1m2-pins"; + spi4 = "/spi@fecb0000"; + litcore_grf = "/syscon@fd594000"; + isp0_vir2 = "/rkisp0-vir2/port/endpoint@0"; + i2s1m1_mclk = "/pinctrl/i2s1/i2s1m1-mclk"; + sys_grf = "/syscon@fd58c000"; + edp0_in_vp1 = "/edp@fdec0000/ports/port@0/endpoint@1"; + mdio0 = "/ethernet@fe1b0000/mdio"; + rkisp_unite_mmu = "/rkisp-unite-mmu@fdcb7f00"; + gpio2 = "/pinctrl/gpio@fec30000"; + spi1m0_cs1 = "/pinctrl/spi1/spi1m0-cs1"; + aclk_av1_pre = "/clocks/aclk_av1_pre@fd7c0910"; + can1m1_pins = "/pinctrl/can1/can1m1-pins"; + rkcif_mipi_lvds1_sditf_vir3 = "/rkcif-mipi-lvds1-sditf-vir3"; + hdmim2_rx_cec = "/pinctrl/hdmi/hdmim2-rx-cec"; + mipi3_csi2_hw = "/mipi3-csi2-hw@fdd40000"; + dp1m1_pins = "/pinctrl/dp1/dp1m1-pins"; + pwm2m2_pins = "/pinctrl/pwm2/pwm2m2-pins"; + pwm15m0_pins = "/pinctrl/pwm15/pwm15m0-pins"; + hclk_vo0 = "/clocks/hclk_vo0@fd7c08dc"; + bigcore0_thermal = "/thermal-zones/bigcore0-thermal"; + hdmim1_rx_scl = "/pinctrl/hdmi/hdmim1-rx-scl"; + hdmim1_rx_sda = "/pinctrl/hdmi/hdmim1-rx-sda"; + uart8m0_rtsn = "/pinctrl/uart8/uart8m0-rtsn"; + pcfg_pull_up_drv_level_4 = "/pinctrl/pcfg-pull-up-drv-level-4"; + mipim1_camera1_clk = "/pinctrl/mipi/mipim1-camera1-clk"; + rkvdec0_sram = "/sram@ff001000/rkvdec-sram@0"; + pcfg_pull_down_drv_level_8 = "/pinctrl/pcfg-pull-down-drv-level-8"; + gmac_uio1 = "/uio@fe1c0000"; + usbc0_orien_sw = "/i2c@fec80000/fusb302@22/connector/ports/port@0/endpoint"; + jpegd = "/jpegd@fdb90000"; + uart3m2_xfer = "/pinctrl/uart3/uart3m2-xfer"; + minidump_smem = "/reserved-memory/minidump-smem@1f0000"; + i2s0_sclk = "/pinctrl/i2s0/i2s0-sclk"; + uart0m1_xfer = "/pinctrl/uart0/uart0m1-xfer"; + rga3_core1 = "/rga@fdb70000"; + i2s1m0_sdo1 = "/pinctrl/i2s1/i2s1m0-sdo1"; + uart1m0_ctsn = "/pinctrl/uart1/uart1m0-ctsn"; + vcc5v0_usb = "/vcc5v0-usb"; + minidump = "/minidump"; + }; + + rkvdec-ccu@fdc30000 { + power-domains = <0x60 0x0e>; + rockchip,ccu-mode = <0x01>; + clock-names = "aclk_ccu"; + reg-names = "ccu"; + assigned-clocks = <0x02 0x18e>; + assigned-clock-rates = <0x23c34600>; + resets = <0x02 0x282>; + clocks = <0x02 0x18e>; + compatible = "rockchip,rkv-decoder-v2-ccu"; + status = "okay"; + rockchip,skip-pmu-idle-request; + reg = <0x00 0xfdc30000 0x00 0x100>; + phandle = <0xca>; + reset-names = "video_ccu"; + }; + + qos@fdf60000 { + compatible = "syscon"; + reg = <0x00 0xfdf60000 0x00 0x20>; + phandle = <0x8d>; + }; + + iommu@fdb50800 { + power-domains = <0x60 0x15>; + clock-names = "aclk\0iface"; + interrupts = <0x00 0x76 0x04>; + clocks = <0x02 0x1c0 0x02 0x1c1>; + #iommu-cells = <0x00>; + compatible = "rockchip,iommu-v2"; + status = "okay"; + interrupt-names = "irq_vdpu_mmu"; + reg = <0x00 0xfdb50800 0x00 0x40>; + phandle = <0xb7>; + }; + + rga@fdb60000 { + power-domains = <0x60 0x16>; + iommus = <0xb9>; + clock-names = "aclk_rga3_0\0hclk_rga3_0\0clk_rga3_0"; + interrupts = <0x00 0x72 0x04>; + clocks = <0x02 0x1ba 0x02 0x1b9 0x02 0x1bb>; + compatible = "rockchip,rga3_core0"; + status = "okay"; + interrupt-names = "rga3_core0_irq"; + reg = <0x00 0xfdb60000 0x00 0x1000>; + phandle = <0x269>; + }; + + qos@fdf67200 { + compatible = "syscon"; + reg = <0x00 0xfdf67200 0x00 0x20>; + phandle = <0x28b>; + }; + + vepu@fdb50000 { + power-domains = <0x60 0x15>; + iommus = <0xb7>; + clock-names = "aclk_vcodec\0hclk_vcodec"; + assigned-clocks = <0x02 0x1c0>; + rockchip,normal-rates = <0x2367b880 0x00>; + assigned-clock-rates = <0x2367b880>; + resets = <0x02 0x2c8 0x02 0x2c9>; + interrupts = <0x00 0x78 0x04>; + clocks = <0x02 0x1c0 0x02 0x1c1>; + rockchip,srv = <0xb8>; + rockchip,taskqueue-node = <0x00>; + rockchip,disable-auto-freq; + compatible = "rockchip,vpu-encoder-v2"; + rockchip,resetgroup-node = <0x00>; + status = "disabled"; + interrupt-names = "irq_vepu"; + rockchip,skip-pmu-idle-request; + reg = <0x00 0xfdb50000 0x00 0x400>; + phandle = <0x266>; + reset-names = "shared_video_a\0shared_video_h"; + }; + + mipi3-csi2 { + rockchip,hw = <0x47 0x48 0x49 0x4a 0x4b 0x4c>; + compatible = "rockchip,rk3588-mipi-csi2"; + status = "disabled"; + phandle = <0x227>; + }; + + hdmi0-sound { + rockchip,jack-det; + rockchip,cpu = <0x1d3>; + rockchip,codec = <0x1d4>; + rockchip,card-name = "rockchip-hdmi0"; + compatible = "rockchip,hdmi"; + status = "okay"; + phandle = <0x49b>; + rockchip,mclk-fs = <0x80>; + }; + + reserved-memory { + #address-cells = <0x02>; + #size-cells = <0x02>; + ranges; + + minidump-smem@1f0000 { + status = "disabled"; + reg = <0x00 0x1f0000 0x00 0x100>; + phandle = <0x1cf>; + no-map; + }; + + minidump-mem@c000000 { + status = "disabled"; + reg = <0x00 0xc000000 0x00 0x2000000>; + phandle = <0x1d0>; + no-map; + }; + + cma { + linux,cma-default; + compatible = "shared-dma-pool"; + size = <0x00 0x800000>; + reg = <0x00 0x10000000 0x00 0x10000000>; + reusable; + }; + + drm-logo@00000000 { + compatible = "rockchip,drm-logo"; + reg = <0x00 0xedf00000 0x00 0x2e0000>; + phandle = <0x37>; + }; + + ramoops@110000 { + boot-log-count = <0x01>; + record-size = <0x14000>; + pmsg-size = <0x30000>; + compatible = "ramoops"; + console-size = <0x80000>; + reg = <0x00 0x110000 0x00 0xe0000>; + phandle = <0x493>; + boot-log-size = <0x8000>; + ftrace-size = <0x00>; + }; + + drm-cubic-lut@00000000 { + compatible = "rockchip,drm-cubic-lut"; + reg = <0x00 0x00 0x00 0x00>; + phandle = <0x492>; + }; + }; + + pcie@fe160000 { + power-domains = <0x60 0x22>; + vpcie3v3-supply = <0x1ba>; + #address-cells = <0x03>; + rockchip,pipe-grf = <0x76>; + phy-names = "pcie-phy"; + bus-range = <0x10 0x1f>; + clock-names = "aclk_mst\0aclk_slv\0aclk_dbi\0pclk\0aux\0pipe"; + reg-names = "pcie-apb\0pcie-dbi"; + num-ob-windows = <0x10>; + resets = <0x02 0x20e 0x02 0x21d>; + interrupts = <0x00 0x102 0x04 0x00 0x101 0x04 0x00 0x100 0x04 0x00 0xff 0x04 0x00 0xfe 0x04>; + clocks = <0x02 0x14f 0x02 0x154 0x02 0x14a 0x02 0x159 0x02 0x15f 0x02 0x184>; + interrupt-map = <0x00 0x00 0x00 0x01 0x1b9 0x00 0x00 0x00 0x00 0x02 0x1b9 0x01 0x00 0x00 0x00 0x03 0x1b9 0x02 0x00 0x00 0x00 0x04 0x1b9 0x03>; + #size-cells = <0x02>; + max-link-speed = <0x03>; + device_type = "pci"; + interrupt-map-mask = <0x00 0x00 0x00 0x07>; + reset-gpios = <0x10d 0x08 0x00>; + num-lanes = <0x02>; + compatible = "rockchip,rk3588-pcie\0snps,dw-pcie"; + ranges = <0x800 0x00 0xf1000000 0x00 0xf1000000 0x00 0x100000 0x81000000 0x00 0xf1100000 0x00 0xf1100000 0x00 0x100000 0x82000000 0x00 0xf1200000 0x00 0xf1200000 0x00 0xe00000 0xc3000000 0x09 0x40000000 0x09 0x40000000 0x00 0x40000000>; + msi-map = <0x1000 0x1b6 0x1000 0x1000>; + #interrupt-cells = <0x01>; + status = "disabled"; + interrupt-names = "sys\0pmc\0msg\0legacy\0err"; + phys = <0x1b7>; + num-viewport = <0x08>; + reg = <0x00 0xfe160000 0x00 0x10000 0x0a 0x40400000 0x00 0x400000>; + linux,pci-domain = <0x01>; + phandle = <0x486>; + reset-names = "pcie\0periph"; + num-ib-windows = <0x10>; + + legacy-interrupt-controller { + #address-cells = <0x00>; + interrupts = <0x00 0xff 0x01>; + interrupt-parent = <0x01>; + #interrupt-cells = <0x01>; + phandle = <0x1b9>; + interrupt-controller; + }; + }; + + spdif-tx@fddb8000 { + power-domains = <0x60 0x19>; + clock-names = "mclk\0hclk"; + assigned-clocks = <0x02 0x20b>; + assigned-clock-parents = <0x02 0x05>; + interrupts = <0x00 0xc6 0x04>; + clocks = <0x02 0x20f 0x02 0x20a>; + dma-names = "tx"; + #sound-dai-cells = <0x00>; + compatible = "rockchip,rk3588-spdif\0rockchip,rk3568-spdif"; + status = "disabled"; + reg = <0x00 0xfddb8000 0x00 0x1000>; + phandle = <0x1e2>; + dmas = <0xf1 0x16>; + }; + + pvtm@fdb30000 { + #address-cells = <0x01>; + #size-cells = <0x00>; + compatible = "rockchip,rk3588-gpu-pvtm"; + reg = <0x00 0xfdb30000 0x00 0x100>; + + pvtm@4 { + clock-names = "clk"; + resets = <0x02 0x430 0x02 0x42f>; + clocks = <0x02 0x118>; + reg = <0x04>; + reset-names = "rts\0rst-p"; + }; + }; + + spdif-tx1-dc { + #sound-dai-cells = <0x00>; + compatible = "linux,spdif-dit"; + status = "disabled"; + phandle = <0x1d8>; + }; + + csi2-dphy0 { + rockchip,hw = <0x2d 0x2e>; + phy-names = "dcphy0\0dcphy1"; + compatible = "rockchip,rk3588-csi2-dphy"; + status = "okay"; + phys = <0x2f 0x30>; + firefly-compatible; + phandle = <0x20f>; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x00>; + + endpoint@1 { + data-lanes = <0x01 0x02 0x03 0x04>; + remote-endpoint = <0x32>; + reg = <0x01>; + phandle = <0x184>; + }; + + endpoint@0 { + data-lanes = <0x01 0x02 0x03 0x04>; + remote-endpoint = <0x31>; + reg = <0x00>; + phandle = <0x183>; + }; + }; + + port@1 { + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x01>; + + endpoint@0 { + remote-endpoint = <0x33>; + reg = <0x00>; + phandle = <0x4d>; + }; + }; + }; + }; + + rkisp-unite@fdcb0000 { + power-domains = <0x60 0x1c>; + iommus = <0xcf>; + clock-names = "aclk_isp0\0hclk_isp0\0clk_isp_core0\0clk_isp_core_marvin0\0clk_isp_core_vicap0\0aclk_isp1\0hclk_isp1\0clk_isp_core1\0clk_isp_core_marvin1\0clk_isp_core_vicap1"; + interrupts = <0x00 0x87 0x04 0x00 0x89 0x04 0x00 0x8a 0x04>; + clocks = <0x02 0x1de 0x02 0x1df 0x02 0x1db 0x02 0x1dc 0x02 0x1dd 0x02 0x120 0x02 0x121 0x02 0x11d 0x02 0x11e 0x02 0x11f>; + compatible = "rockchip,rk3588-rkisp-unite"; + status = "disabled"; + interrupt-names = "isp_irq\0mi_irq\0mipi_irq"; + reg = <0x00 0xfdcb0000 0x00 0x10000 0x00 0xfdcc0000 0x00 0x10000>; + phandle = <0x277>; + }; + + sata@fe230000 { + phy-names = "sata-phy"; + clock-names = "sata\0pmalive\0rxoob\0ref\0asic"; + interrupts = <0x00 0x113 0x04>; + clocks = <0x02 0x173 0x02 0x170 0x02 0x176 0x02 0x165 0x02 0x180>; + compatible = "rockchip,rk-ahci\0snps,dwc-ahci"; + status = "disabled"; + interrupt-names = "hostc"; + phys = <0x70 0x01>; + reg = <0x00 0xfe230000 0x00 0x1000>; + phandle = <0x291>; + ports-implemented = <0x01>; + }; + + syscon@fd5a0000 { + compatible = "rockchip,rk3588-gpu-grf\0syscon"; + reg = <0x00 0xfd5a0000 0x00 0x100>; + phandle = <0x65>; + }; + + bt-sound { + simple-audio-card,name = "rockchip,bt"; + simple-audio-card,format = "dsp_a"; + simple-audio-card,bitclock-inversion = <0x00>; + compatible = "simple-audio-card"; + status = "disabled"; + phandle = <0x49a>; + simple-audio-card,mclk-fs = <0x100>; + + simple-audio-card,cpu { + sound-dai = <0x1d1>; + }; + + simple-audio-card,codec { + sound-dai = <0x1d2 0x01>; + }; + }; + + iommu@fdb90480 { + power-domains = <0x60 0x15>; + clock-names = "aclk\0iface"; + interrupts = <0x00 0x82 0x04>; + clocks = <0x02 0x1b4 0x02 0x1b5>; + #iommu-cells = <0x00>; + compatible = "rockchip,iommu-v2"; + status = "okay"; + interrupt-names = "irq_jpegd_mmu"; + reg = <0x00 0xfdb90480 0x00 0x40>; + phandle = <0xbb>; + }; + + hdcp@fde70000 { + power-domains = <0x60 0x1a>; + clock-names = "aclk\0pclk\0hclk\0hclk_key\0aclk_trng\0pclk_trng"; + resets = <0x02 0x3c8 0x02 0x3c6 0x02 0x3c5 0x02 0x3c4 0x02 0x3ca>; + interrupts = <0x00 0xa0 0x04>; + clocks = <0x02 0x217 0x02 0x219 0x02 0x218 0x02 0x216 0x02 0x228 0x02 0x229>; + compatible = "rockchip,rk3588-hdcp"; + status = "disabled"; + reg = <0x00 0xfde70000 0x00 0x80>; + phandle = <0x287>; + reset-names = "hdcp\0h_hdcp\0a_hdcp\0hdcp_key\0trng"; + rockchip,vo-grf = <0xd8>; + }; + + spdif-tx@fe4f0000 { + power-domains = <0x60 0x26>; + pinctrl-names = "default"; + pinctrl-0 = <0x143>; + clock-names = "mclk\0hclk"; + assigned-clocks = <0x02 0x45>; + assigned-clock-parents = <0x02 0x05>; + interrupts = <0x00 0xc2 0x04>; + clocks = <0x02 0x47 0x02 0x44>; + dma-names = "tx"; + #sound-dai-cells = <0x00>; + compatible = "rockchip,rk3588-spdif\0rockchip,rk3568-spdif"; + status = "disabled"; + reg = <0x00 0xfe4f0000 0x00 0x1000>; + phandle = <0x1d7>; + dmas = <0xf1 0x05>; + }; + + rkcif-mipi-lvds-sditf-vir2 { + compatible = "rockchip,rkcif-sditf"; + status = "disabled"; + rockchip,cif = <0x52>; + phandle = <0x22d>; + }; + + es8388-sound { + pinctrl-names = "default"; + rockchip,cpu = <0x1da>; + pinctrl-0 = <0x1dc>; + rockchip,codec = <0x1db>; + hp-det-gpio = <0x79 0x13 0x00>; + rockchip,card-name = "rockchip-es8388"; + rockchip,format = "i2s"; + rockchip,audio-routing = "Headphone\0LOUT1\0Headphone\0ROUT1\0Speaker\0LOUT2\0Speaker\0ROUT2\0Headphone\0Headphone Power\0Headphone\0Headphone Power\0LINPUT2\0Main Mic\0RINPUT2\0Main Mic\0LINPUT1\0Headset Mic\0RINPUT1\0Headset Mic"; + compatible = "firefly,multicodecs-card"; + linein-type = <0x01>; + status = "okay"; + phandle = <0x49f>; + hp-con-gpio = <0x182 0x0b 0x00>; + firefly,not-use-dapm; + rockchip,mclk-fs = <0x180>; + }; + + spi@feb30000 { + pinctrl-names = "default"; + #address-cells = <0x01>; + num-cs = <0x02>; + pinctrl-0 = <0x15d 0x15e 0x15f>; + clock-names = "spiclk\0apb_pclk"; + interrupts = <0x00 0x149 0x04>; + clocks = <0x02 0xa6 0x02 0xa1>; + #size-cells = <0x00>; + dma-names = "tx\0rx"; + compatible = "rockchip,rk3066-spi"; + status = "disabled"; + reg = <0x00 0xfeb30000 0x00 0x1000>; + phandle = <0x2c8>; + dmas = <0xf1 0x11 0xf1 0x12>; + }; + + phy@fee80000 { + rockchip,pipe-grf = <0x76>; + clock-names = "pclk"; + rockchip,pcie30-phymode = <0x01>; + resets = <0x02 0x2000a>; + clocks = <0x02 0x188>; + #phy-cells = <0x00>; + compatible = "rockchip,rk3588-pcie3-phy"; + status = "okay"; + reg = <0x00 0xfee80000 0x00 0x20000>; + phandle = <0x1b7>; + reset-names = "phy"; + rockchip,phy-grf = <0x1cc>; + }; + + vcc12v-dcin { + regulator-max-microvolt = <0xb71b00>; + regulator-boot-on; + regulator-always-on; + regulator-min-microvolt = <0xb71b00>; + regulator-name = "vcc12v_dcin"; + compatible = "regulator-fixed"; + phandle = <0x1cd>; + }; + + qos@fdf61200 { + compatible = "syscon"; + reg = <0x00 0xfdf61200 0x00 0x20>; + phandle = <0x91>; + }; + + i2s@fde00000 { + power-domains = <0x60 0x1a>; + clock-names = "mclk_tx\0mclk_rx\0hclk"; + assigned-clocks = <0x02 0x234>; + assigned-clock-parents = <0x02 0x05>; + rockchip,capture-only; + resets = <0x02 0x417>; + interrupts = <0x00 0xbe 0x04>; + clocks = <0x02 0x237 0x02 0x237 0x02 0x233>; + dma-names = "rx"; + #sound-dai-cells = <0x00>; + compatible = "rockchip,rk3588-i2s-tdm"; + status = "disabled"; + reg = <0x00 0xfde00000 0x00 0x1000>; + phandle = <0x47e>; + dmas = <0xf2 0x18>; + reset-names = "rx-m"; + }; + + qos@fdf40800 { + compatible = "syscon"; + reg = <0x00 0xfdf40800 0x00 0x20>; + phandle = <0xa5>; + }; + + i2s@fddfc000 { + power-domains = <0x60 0x1a>; + clock-names = "mclk_tx\0mclk_rx\0hclk"; + assigned-clocks = <0x02 0x23f>; + assigned-clock-parents = <0x02 0x05>; + rockchip,capture-only; + resets = <0x02 0x413>; + interrupts = <0x00 0xbd 0x04>; + clocks = <0x02 0x242 0x02 0x242 0x02 0x23e>; + dma-names = "rx"; + #sound-dai-cells = <0x00>; + compatible = "rockchip,rk3588-i2s-tdm"; + status = "disabled"; + reg = <0x00 0xfddfc000 0x00 0x1000>; + phandle = <0x27f>; + dmas = <0xf2 0x17>; + reset-names = "rx-m"; + }; + + usbdrd3_0 { + #address-cells = <0x02>; + clock-names = "ref\0suspend\0bus"; + clocks = <0x02 0x1a3 0x02 0x1a2 0x02 0x1a1>; + #size-cells = <0x02>; + compatible = "rockchip,rk3588-dwc3\0rockchip,rk3399-dwc3"; + ranges; + status = "okay"; + phandle = <0x252>; + + usb@fc000000 { + power-domains = <0x60 0x1f>; + snps,dis-u1-entry-quirk; + snps,dis_enblslpm_quirk; + phy-names = "usb2-phy\0usb3-phy"; + snps,dis-u2-freeclk-exists-quirk; + usb-role-switch; + phy_type = "utmi_wide"; + quirk-skip-phy-init; + resets = <0x02 0x2a4>; + interrupts = <0x00 0xdc 0x04>; + snps,dis-u2-entry-quirk; + compatible = "snps,dwc3"; + snps,parkmode-disable-hs-quirk; + snps,dis-del-phy-power-chg-quirk; + status = "okay"; + snps,parkmode-disable-ss-quirk; + phys = <0x66 0x67>; + reg = <0x00 0xfc000000 0x00 0x400000>; + phandle = <0x253>; + dr_mode = "host"; + reset-names = "usb3-otg"; + snps,dis-tx-ipgap-linecheck-quirk; + + port { + #address-cells = <0x01>; + #size-cells = <0x00>; + + endpoint@0 { + remote-endpoint = <0x68>; + reg = <0x00>; + phandle = <0x17d>; + }; + }; + }; + }; + + rkcif-mipi-lvds5-sditf-vir2 { + compatible = "rockchip,rkcif-sditf"; + status = "disabled"; + rockchip,cif = <0x1a2>; + phandle = <0x478>; + }; + + rkcif-dvp-sditf { + compatible = "rockchip,rkcif-sditf"; + status = "disabled"; + rockchip,cif = <0x51>; + phandle = <0x22a>; + }; + + iommu@fdd97e00 { + rockchip,shootdown-entire; + clock-names = "aclk\0iface"; + interrupts = <0x00 0x9c 0x04>; + clocks = <0x02 0x270 0x02 0x26f>; + #iommu-cells = <0x00>; + compatible = "rockchip,iommu-v2"; + status = "okay"; + interrupt-names = "vop_mmu"; + reg = <0x00 0xfdd97e00 0x00 0x100 0x00 0xfdd97f00 0x00 0x100>; + phandle = <0xd6>; + rockchip,disable-device-link-resume; + }; + + rkvtunnel { + compatible = "rockchip,video-tunnel"; + status = "disabled"; + phandle = <0x245>; + }; + + syscon@fd5e0000 { + compatible = "rockchip,rk3588-hdptxphy-grf\0syscon"; + reg = <0x00 0xfd5e0000 0x00 0x100>; + phandle = <0x18a>; + }; + + i2c@fead0000 { + pinctrl-names = "default"; + #address-cells = <0x01>; + pinctrl-0 = <0x14d>; + clock-names = "i2c\0pclk"; + resets = <0x02 0xb4 0x02 0xac>; + interrupts = <0x00 0x142 0x04>; + clocks = <0x02 0x91 0x02 0x89>; + #size-cells = <0x00>; + compatible = "rockchip,rk3588-i2c\0rockchip,rk3399-i2c"; + status = "disabled"; + reg = <0x00 0xfead0000 0x00 0x1000>; + phandle = <0x2a8>; + reset-names = "i2c\0apb"; + }; + + iommu@fdba4800 { + power-domains = <0x60 0x15>; + clock-names = "aclk\0iface"; + interrupts = <0x00 0x7b 0x04>; + clocks = <0x02 0x1ae 0x02 0x1af>; + #iommu-cells = <0x00>; + compatible = "rockchip,iommu-v2"; + status = "okay"; + interrupt-names = "irq_jpege1_mmu"; + reg = <0x00 0xfdba4800 0x00 0x40>; + phandle = <0xbe>; + }; + + spdif-rx@fde10000 { + power-domains = <0x60 0x1a>; + clock-names = "mclk\0hclk"; + assigned-clocks = <0x02 0x260>; + assigned-clock-parents = <0x02 0x05>; + resets = <0x02 0x3ff>; + interrupts = <0x00 0xc8 0x04>; + clocks = <0x02 0x260 0x02 0x25f>; + dma-names = "rx"; + #sound-dai-cells = <0x00>; + compatible = "rockchip,rk3588-spdifrx\0rockchip,rk3308-spdifrx"; + status = "disabled"; + reg = <0x00 0xfde10000 0x00 0x1000>; + phandle = <0x47f>; + dmas = <0x7c 0x16>; + reset-names = "spdifrx-m"; + }; + + npu@fdab0000 { + power-domains = <0x60 0x09 0x60 0x0a 0x60 0x0b>; + iommus = <0xb2>; + clock-names = "clk_npu\0aclk0\0aclk1\0aclk2\0hclk0\0hclk1\0hclk2\0pclk"; + assigned-clocks = <0x0e 0x06>; + power-domain-names = "npu0\0npu1\0npu2"; + rknpu-supply = <0xb3>; + assigned-clock-rates = <0xbebc200>; + resets = <0x02 0x1e6 0x02 0x1b0 0x02 0x1c0 0x02 0x1e8 0x02 0x1b2 0x02 0x1c2>; + interrupts = <0x00 0x6e 0x04 0x00 0x6f 0x04 0x00 0x70 0x04>; + clocks = <0x0e 0x06 0x02 0x12d 0x02 0x122 0x02 0x124 0x02 0x12e 0x02 0x123 0x02 0x125 0x02 0x131>; + compatible = "rockchip,rk3588-rknpu"; + status = "okay"; + interrupt-names = "npu0_irq\0npu1_irq\0npu2_irq"; + mem-supply = <0xb3>; + reg = <0x00 0xfdab0000 0x00 0x10000 0x00 0xfdac0000 0x00 0x10000 0x00 0xfdad0000 0x00 0x10000>; + phandle = <0x265>; + reset-names = "srst_a0\0srst_a1\0srst_a2\0srst_h0\0srst_h1\0srst_h2"; + operating-points-v2 = <0xb1>; + }; + + hdmiphy@fed60000 { + clock-names = "ref\0apb"; + resets = <0x02 0x48e 0x02 0x485 0x02 0xc003b 0x02 0xc003c 0x02 0xc003d 0x02 0x48c 0x02 0x48d>; + clocks = <0x02 0x2b5 0x02 0x267>; + #phy-cells = <0x00>; + compatible = "rockchip,rk3588-hdptx-phy-hdmi"; + status = "okay"; + rockchip,grf = <0x18a>; + reg = <0x00 0xfed60000 0x00 0x2000>; + phandle = <0xfd>; + reset-names = "phy\0apb\0init\0cmn\0lane\0ropll\0lcpll"; + + clk-port { + #clock-cells = <0x00>; + status = "okay"; + phandle = <0x35>; + }; + }; + + dmc-opp-table { + nvmem-cells = <0x44 0x45 0x21>; + rockchip,low-temp = <0x2710>; + rockchip,leakage-voltage-sel = <0x01 0x1f 0x00 0x20 0x2c 0x01 0x2d 0x39 0x02 0x3a 0xfe 0x03>; + compatible = "operating-points-v2"; + rockchip,low-temp-min-volt = <0xb71b0>; + nvmem-cell-names = "leakage\0opp-info\0specification_serial_number"; + phandle = <0x41>; + rockchip,temp-hysteresis = <0x1388>; + rockchip,supported-hw; + + opp-1560000000 { + opp-microvolt = <0xc3500 0xc3500 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; + opp-microvolt-L2 = <0xb71b0 0xb71b0 0xd59f8 0xadf34 0xadf34 0xb71b0>; + opp-hz = <0x00 0x5cfbb600>; + opp-supported-hw = <0xf9 0xffff>; + opp-microvolt-L3 = <0xb1008 0xb1008 0xd59f8 0xaae60 0xaae60 0xb71b0>; + opp-microvolt-L1 = <0xbd358 0xbd358 0xd59f8 0xb1008 0xb1008 0xb71b0>; + }; + + opp-j-m-1560000000 { + opp-microvolt = <0xc3500 0xc3500 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; + opp-microvolt-L2 = <0xb71b0 0xb71b0 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; + opp-hz = <0x00 0x5cfbb600>; + opp-supported-hw = <0x06 0xffff>; + opp-microvolt-L3 = <0xb71b0 0xb71b0 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; + opp-microvolt-L1 = <0xbd358 0xbd358 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; + }; + + opp-j-m-528000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; + opp-hz = <0x00 0x1f78a400>; + opp-supported-hw = <0x06 0xffff>; + }; + + opp-2750000000 { + opp-microvolt = <0xd59f8 0xd59f8 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; + opp-microvolt-L2 = <0xcc77c 0xcc77c 0xd59f8 0xb1008 0xb1008 0xb71b0>; + opp-hz = <0x00 0xa3e9ab80>; + opp-supported-hw = <0xf9 0xffff>; + opp-microvolt-L3 = <0xc96a8 0xc8320 0xd59f8 0xaae60 0xaae60 0xb71b0>; + opp-microvolt-L1 = <0xcf850 0xcf850 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; + }; + + opp-1068000000 { + opp-microvolt = <0xb1008 0xb1008 0xd59f8 0xb40dc 0xb40dc 0xb71b0>; + opp-microvolt-L2 = <0xa4cb8 0xa4cb8 0xd59f8 0xaae60 0xaae60 0xb71b0>; + opp-hz = <0x00 0x3fa86300>; + opp-supported-hw = <0xf9 0xffff>; + opp-microvolt-L3 = <0xa4cb8 0xa4cb8 0xd59f8 0xa7d8c 0xa7d8c 0xb71b0>; + opp-microvolt-L1 = <0xaae60 0xaae60 0xd59f8 0xadf34 0xadf34 0xb71b0>; + }; + + opp-j-m-2750000000 { + opp-microvolt = <0xd59f8 0xd59f8 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; + opp-microvolt-L2 = <0xcc77c 0xcc77c 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; + opp-hz = <0x00 0xa3e9ab80>; + opp-supported-hw = <0x06 0xffff>; + opp-microvolt-L3 = <0xc96a8 0xc8320 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; + opp-microvolt-L1 = <0xcf850 0xcf850 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; + }; + + opp-528000000 { + opp-microvolt = <0xa4cb8 0xa4cb8 0xd59f8 0xb1008 0xb1008 0xb71b0>; + opp-microvolt-L2 = <0xa4cb8 0xa4cb8 0xd59f8 0xa7d8c 0xa7d8c 0xb71b0>; + opp-hz = <0x00 0x1f78a400>; + opp-supported-hw = <0xf9 0xffff>; + opp-microvolt-L3 = <0xa4cb8 0xa4cb8 0xd59f8 0xa4cb8 0xa4cb8 0xb71b0>; + opp-microvolt-L1 = <0xa4cb8 0xa4cb8 0xd59f8 0xaae60 0xaae60 0xb71b0>; + }; + + opp-j-m-1068000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; + opp-hz = <0x00 0x3fa86300>; + opp-supported-hw = <0x06 0xffff>; + }; + }; + + rkvenc-core@fdbe0000 { + power-domains = <0x60 0x11>; + iommus = <0xc5>; + rockchip,ccu = <0xc3>; + clock-names = "aclk_vcodec\0hclk_vcodec\0clk_core"; + assigned-clocks = <0x02 0x1ca 0x02 0x1cb>; + rockchip,task-capacity = <0x08>; + rockchip,normal-rates = <0x1dcd6500 0x00 0x2faf0800>; + assigned-clock-rates = <0x1dcd6500 0x2faf0800>; + resets = <0x02 0x305 0x02 0x304 0x02 0x306>; + interrupts = <0x00 0x68 0x04>; + clocks = <0x02 0x1ca 0x02 0x1c9 0x02 0x1cb>; + rockchip,srv = <0xb8>; + rockchip,taskqueue-node = <0x07>; + compatible = "rockchip,rkv-encoder-v2-core"; + status = "okay"; + interrupt-names = "irq_rkvenc1"; + rockchip,skip-pmu-idle-request; + reg = <0x00 0xfdbe0000 0x00 0x6000>; + phandle = <0x273>; + reset-names = "video_a\0video_h\0video_core"; + operating-points-v2 = <0xc4>; + }; + + debug@fd104000 { + compatible = "rockchip,debug"; + reg = <0x00 0xfd104000 0x00 0x1000 0x00 0xfd105000 0x00 0x1000 0x00 0xfd106000 0x00 0x1000 0x00 0xfd107000 0x00 0x1000 0x00 0xfd124000 0x00 0x1000 0x00 0xfd125000 0x00 0x1000 0x00 0xfd126000 0x00 0x1000 0x00 0xfd127000 0x00 0x1000>; + phandle = <0x48f>; + }; + + watchdog@feaf0000 { + clock-names = "tclk\0pclk"; + interrupts = <0x00 0x13b 0x04>; + clocks = <0x02 0x6c 0x02 0x6b>; + compatible = "snps,dw-wdt"; + status = "okay"; + reg = <0x00 0xfeaf0000 0x00 0x100>; + phandle = <0x2aa>; + }; + + syscon@fd5d8000 { + #address-cells = <0x01>; + #size-cells = <0x01>; + compatible = "rockchip,rk3588-usb2phy-grf\0syscon\0simple-mfd"; + reg = <0x00 0xfd5d8000 0x00 0x4000>; + phandle = <0x25d>; + + usb2-phy@8000 { + clock-output-names = "usb480m_phy2"; + clock-names = "phyclk"; + resets = <0x02 0xc0049 0x02 0x48a>; + interrupts = <0x00 0x187 0x04>; + clocks = <0x02 0x2b5>; + #clock-cells = <0x00>; + compatible = "rockchip,rk3588-usb2phy"; + status = "okay"; + reg = <0x8000 0x10>; + phandle = <0x69>; + reset-names = "phy\0apb"; + + host-port { + phy-supply = <0x75>; + #phy-cells = <0x00>; + status = "okay"; + phandle = <0x6c>; + }; + }; + }; + + cluster0-opp-table { + rockchip,pvtm-offset = <0x64>; + rockchip,pvtm-sample-time = <0x44c>; + rockchip,dsu-grf = <0x23>; + rockchip,pvtm-hw = <0x06>; + nvmem-cells = <0x1f 0x20 0x21>; + rockchip,low-temp = <0x2710>; + rockchip,pvtm-voltage-sel-hw = <0x00 0x555 0x00 0x556 0x56b 0x01 0x56c 0x581 0x02 0x582 0x597 0x03 0x598 0x5ad 0x04 0x5ae 0x5c3 0x05 0x5c4 0x270f 0x06>; + rockchip,pvtm-thermal-zone = "soc-thermal"; + rockchip,opp-shared-dsu; + rockchip,high-temp-max-freq = <0x188940>; + opp-shared; + rockchip,reboot-freq = <0x159b40>; + rockchip,pvtm-freq = <0x159b40>; + rockchip,pvtm-ref-temp = <0x19>; + low-volt-mem-read-margin = <0x04>; + volt-mem-read-margin = <0xd0bd8 0x01 0xbac48 0x02 0xa4cb8 0x03 0x78d98 0x04>; + compatible = "operating-points-v2"; + rockchip,low-temp-min-volt = <0xb71b0>; + rockchip,grf = <0x22>; + nvmem-cell-names = "leakage\0opp-info\0specification_serial_number"; + rockchip,pvtm-voltage-sel = <0x00 0x582 0x00 0x583 0x59a 0x01 0x59b 0x5b2 0x02 0x5b3 0x5ca 0x03 0x5cb 0x5e2 0x04 0x5e3 0x5fa 0x05 0x5fb 0x270f 0x06>; + phandle = <0x0f>; + rockchip,pvtm-temp-prop = <0xf4 0xf4>; + rockchip,temp-hysteresis = <0x1388>; + rockchip,high-temp = <0x14c08>; + rockchip,pvtm-pvtpll; + rockchip,supported-hw; + intermediate-threshold-freq = <0xf6180>; + rockchip,pvtm-volt = <0xb71b0>; + + opp-1200000000 { + opp-microvolt = <0xadf34 0xadf34 0xe7ef0 0xadf34 0xadf34 0xe7ef0>; + opp-microvolt-L6 = <0xa4cb8 0xa4cb8 0xe7ef0 0xa4cb8 0xa4cb8 0xe7ef0>; + opp-microvolt-L4 = <0xa4cb8 0xa4cb8 0xe7ef0 0xa4cb8 0xa4cb8 0xe7ef0>; + opp-microvolt-L2 = <0xaae60 0xaae60 0xe7ef0 0xaae60 0xaae60 0xe7ef0>; + opp-hz = <0x00 0x47868c00>; + opp-supported-hw = <0xf9 0xffff>; + opp-microvolt-L5 = <0xa4cb8 0xa4cb8 0xe7ef0 0xa4cb8 0xa4cb8 0xe7ef0>; + opp-microvolt-L3 = <0xa7d8c 0xa7d8c 0xe7ef0 0xa7d8c 0xa7d8c 0xe7ef0>; + clock-latency-ns = <0x9c40>; + opp-microvolt-L1 = <0xaae60 0xaae60 0xe7ef0 0xaae60 0xaae60 0xe7ef0>; + }; + + opp-j-m-1416000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + opp-microvolt-L2 = <0xba284 0xba284 0xe7ef0 0xba284 0xba284 0xe7ef0>; + opp-hz = <0x00 0x54667200>; + opp-microvolt-L0 = <0xc042c 0xc042c 0xe7ef0 0xc042c 0xc042c 0xe7ef0>; + opp-supported-hw = <0x06 0xffff>; + opp-suspend; + clock-latency-ns = <0x9c40>; + opp-microvolt-L1 = <0xbd358 0xbd358 0xe7ef0 0xbd358 0xbd358 0xe7ef0>; + }; + + opp-1008000000 { + opp-microvolt = <0xa4cb8 0xa4cb8 0xe7ef0 0xa4cb8 0xa4cb8 0xe7ef0>; + opp-hz = <0x00 0x3c14dc00>; + opp-supported-hw = <0xf9 0xffff>; + clock-latency-ns = <0x9c40>; + }; + + opp-j-m-1704000000 { + opp-microvolt = <0xe4e1c 0xe4e1c 0xe7ef0 0xe4e1c 0xe4e1c 0xe7ef0>; + opp-microvolt-L6 = <0xd2924 0xd2924 0xe7ef0 0xd2924 0xd2924 0xe7ef0>; + opp-microvolt-L4 = <0xd8acc 0xd8acc 0xe7ef0 0xd8acc 0xd8acc 0xe7ef0>; + opp-microvolt-L2 = <0xdec74 0xdec74 0xe7ef0 0xdec74 0xdec74 0xe7ef0>; + opp-hz = <0x00 0x6590fa00>; + opp-supported-hw = <0x06 0xffff>; + opp-microvolt-L5 = <0xd59f8 0xd59f8 0xe7ef0 0xd59f8 0xd59f8 0xe7ef0>; + opp-microvolt-L3 = <0xdbba0 0xdbba0 0xe7ef0 0xdbba0 0xdbba0 0xe7ef0>; + clock-latency-ns = <0x9c40>; + opp-microvolt-L1 = <0xe1d48 0xe1d48 0xe7ef0 0xe1d48 0xe1d48 0xe7ef0>; + }; + + opp-j-m-1200000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + opp-hz = <0x00 0x47868c00>; + opp-supported-hw = <0x06 0xffff>; + clock-latency-ns = <0x9c40>; + }; + + opp-j-m-1008000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + opp-hz = <0x00 0x3c14dc00>; + opp-supported-hw = <0x06 0xffff>; + clock-latency-ns = <0x9c40>; + }; + + opp-j-m-816000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + opp-hz = <0x00 0x30a32c00>; + opp-supported-hw = <0x06 0xffff>; + clock-latency-ns = <0x9c40>; + }; + + opp-1800000000 { + opp-microvolt = <0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0>; + opp-microvolt-L6 = <0xd59f8 0xd59f8 0xe7ef0 0xd59f8 0xd59f8 0xe7ef0>; + opp-microvolt-L4 = <0xdbba0 0xdbba0 0xe7ef0 0xdbba0 0xdbba0 0xe7ef0>; + opp-microvolt-L2 = <0xe1d48 0xe1d48 0xe7ef0 0xe1d48 0xe1d48 0xe7ef0>; + opp-hz = <0x00 0x6b49d200>; + opp-supported-hw = <0xf9 0xffff>; + opp-microvolt-L5 = <0xd8acc 0xd8acc 0xe7ef0 0xd8acc 0xd8acc 0xe7ef0>; + opp-microvolt-L3 = <0xdec74 0xdec74 0xe7ef0 0xdec74 0xdec74 0xe7ef0>; + clock-latency-ns = <0x9c40>; + opp-microvolt-L1 = <0xe4e1c 0xe4e1c 0xe7ef0 0xe4e1c 0xe4e1c 0xe7ef0>; + }; + + opp-j-m-600000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + opp-hz = <0x00 0x23c34600>; + opp-supported-hw = <0x06 0xffff>; + clock-latency-ns = <0x9c40>; + }; + + opp-1608000000 { + opp-microvolt = <0xcf850 0xcf850 0xe7ef0 0xcf850 0xcf850 0xe7ef0>; + opp-microvolt-L6 = <0xc042c 0xc042c 0xe7ef0 0xc042c 0xc042c 0xe7ef0>; + opp-microvolt-L4 = <0xc3500 0xc3500 0xe7ef0 0xc3500 0xc3500 0xe7ef0>; + opp-microvolt-L2 = <0xc96a8 0xc96a8 0xe7ef0 0xc96a8 0xc96a8 0xe7ef0>; + opp-hz = <0x00 0x5fd82200>; + opp-supported-hw = <0xf9 0xffff>; + opp-microvolt-L5 = <0xc3500 0xc3500 0xe7ef0 0xc3500 0xc3500 0xe7ef0>; + opp-microvolt-L3 = <0xc65d4 0xc65d4 0xe7ef0 0xc65d4 0xc65d4 0xe7ef0>; + clock-latency-ns = <0x9c40>; + opp-microvolt-L1 = <0xcc77c 0xcc77c 0xe7ef0 0xcc77c 0xcc77c 0xe7ef0>; + }; + + opp-j-1296000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + opp-hz = <0x00 0x4d3f6400>; + opp-microvolt-L0 = <0xbd358 0xbd358 0xe7ef0 0xbd358 0xbd358 0xe7ef0>; + opp-supported-hw = <0x04 0xffff>; + clock-latency-ns = <0x9c40>; + opp-microvolt-L1 = <0xba284 0xba284 0xe7ef0 0xba284 0xba284 0xe7ef0>; + }; + + opp-j-m-408000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + opp-hz = <0x00 0x18519600>; + opp-supported-hw = <0x06 0xffff>; + clock-latency-ns = <0x9c40>; + }; + + opp-816000000 { + opp-microvolt = <0xa4cb8 0xa4cb8 0xe7ef0 0xa4cb8 0xa4cb8 0xe7ef0>; + opp-hz = <0x00 0x30a32c00>; + opp-supported-hw = <0xf9 0xffff>; + clock-latency-ns = <0x9c40>; + }; + + opp-j-m-1608000000 { + opp-microvolt = <0xd8acc 0xd8acc 0xe7ef0 0xd8acc 0xd8acc 0xe7ef0>; + opp-microvolt-L6 = <0xc65d4 0xc65d4 0xe7ef0 0xc65d4 0xc65d4 0xe7ef0>; + opp-microvolt-L4 = <0xcc77c 0xcc77c 0xe7ef0 0xcc77c 0xcc77c 0xe7ef0>; + opp-microvolt-L2 = <0xd2924 0xd2924 0xe7ef0 0xd2924 0xd2924 0xe7ef0>; + opp-hz = <0x00 0x5fd82200>; + opp-supported-hw = <0x06 0xffff>; + opp-microvolt-L5 = <0xc96a8 0xc96a8 0xe7ef0 0xc96a8 0xc96a8 0xe7ef0>; + opp-microvolt-L3 = <0xcf850 0xcf850 0xe7ef0 0xcf850 0xcf850 0xe7ef0>; + clock-latency-ns = <0x9c40>; + opp-microvolt-L1 = <0xd59f8 0xd59f8 0xe7ef0 0xd59f8 0xd59f8 0xe7ef0>; + }; + + opp-600000000 { + opp-microvolt = <0xa4cb8 0xa4cb8 0xe7ef0 0xa4cb8 0xa4cb8 0xe7ef0>; + opp-hz = <0x00 0x23c34600>; + opp-supported-hw = <0xf9 0xffff>; + clock-latency-ns = <0x9c40>; + }; + + opp-1416000000 { + opp-microvolt = <0xba284 0xba284 0xe7ef0 0xba284 0xba284 0xe7ef0>; + opp-microvolt-L6 = <0xadf34 0xadf34 0xe7ef0 0xadf34 0xadf34 0xe7ef0>; + opp-microvolt-L4 = <0xb1008 0xb1008 0xe7ef0 0xb1008 0xb1008 0xe7ef0>; + opp-microvolt-L2 = <0xb40dc 0xb40dc 0xe7ef0 0xb40dc 0xb40dc 0xe7ef0>; + opp-hz = <0x00 0x54667200>; + opp-supported-hw = <0xf9 0xffff>; + opp-microvolt-L5 = <0xadf34 0xadf34 0xe7ef0 0xadf34 0xadf34 0xe7ef0>; + opp-suspend; + opp-microvolt-L3 = <0xb1008 0xb1008 0xe7ef0 0xb1008 0xb1008 0xe7ef0>; + clock-latency-ns = <0x9c40>; + opp-microvolt-L1 = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + }; + + opp-408000000 { + opp-microvolt = <0xa4cb8 0xa4cb8 0xe7ef0 0xa4cb8 0xa4cb8 0xe7ef0>; + opp-hz = <0x00 0x18519600>; + opp-supported-hw = <0xf9 0xffff>; + clock-latency-ns = <0x9c40>; + }; + }; + + vcc-4g-regulator { + regulator-boot-on; + gpio = <0x182 0x00 0x00>; + regulator-always-on; + enable-active-high; + regulator-name = "vcc_4g"; + compatible = "regulator-fixed"; + status = "okay"; + phandle = <0x4b0>; + }; + + spi@fecb0000 { + pinctrl-names = "default"; + #address-cells = <0x01>; + num-cs = <0x02>; + pinctrl-0 = <0x187 0x188 0x189>; + clock-names = "spiclk\0apb_pclk"; + interrupts = <0x00 0x14a 0x04>; + clocks = <0x02 0xa7 0x02 0xa2>; + #size-cells = <0x00>; + dma-names = "tx\0rx"; + compatible = "rockchip,rk3066-spi"; + status = "disabled"; + reg = <0x00 0xfecb0000 0x00 0x1000>; + phandle = <0x2e6>; + dmas = <0xf2 0x0d 0xf2 0x0e>; + }; + + spdif-rx@fde08000 { + power-domains = <0x60 0x1a>; + clock-names = "mclk\0hclk"; + assigned-clocks = <0x02 0x25e>; + assigned-clock-parents = <0x02 0x05>; + resets = <0x02 0x3fd>; + interrupts = <0x00 0xc7 0x04>; + clocks = <0x02 0x25e 0x02 0x25d>; + dma-names = "rx"; + #sound-dai-cells = <0x00>; + compatible = "rockchip,rk3588-spdifrx\0rockchip,rk3308-spdifrx"; + status = "disabled"; + reg = <0x00 0xfde08000 0x00 0x1000>; + phandle = <0x280>; + dmas = <0x7c 0x15>; + reset-names = "spdifrx-m"; + }; + + mipi3-csi2-hw@fdd40000 { + clock-names = "pclk_csi2host"; + reg-names = "csihost_regs"; + resets = <0x02 0x327>; + interrupts = <0x00 0x95 0x04 0x00 0x96 0x04>; + clocks = <0x02 0x1d2>; + compatible = "rockchip,rk3588-mipi-csi2-hw"; + status = "okay"; + interrupt-names = "csi-intr1\0csi-intr2"; + reg = <0x00 0xfdd40000 0x00 0x10000>; + phandle = <0x4a>; + reset-names = "srst_csihost_p"; + }; + + memory { + device_type = "memory"; + reg = <0x00 0x200000 0x00 0x8200000 0x00 0x9400000 0x00 0xe6c00000 0x01 0x00 0x01 0x00 0x02 0xf0000000 0x00 0x10000000 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00>; + }; + + jpege-core@fdba4000 { + power-domains = <0x60 0x15>; + iommus = <0xbe>; + rockchip,ccu = <0xbd>; + clock-names = "aclk_vcodec\0hclk_vcodec"; + assigned-clocks = <0x02 0x1ae>; + rockchip,normal-rates = <0x2367b880 0x00>; + assigned-clock-rates = <0x2367b880>; + resets = <0x02 0x2cc 0x02 0x2cd>; + interrupts = <0x00 0x7c 0x04>; + clocks = <0x02 0x1ae 0x02 0x1af>; + rockchip,srv = <0xb8>; + rockchip,taskqueue-node = <0x02>; + rockchip,disable-auto-freq; + compatible = "rockchip,vpu-jpege-core"; + status = "okay"; + interrupt-names = "irq_jpege1"; + rockchip,skip-pmu-idle-request; + reg = <0x00 0xfdba4000 0x00 0x400>; + phandle = <0x26e>; + reset-names = "video_a\0video_h"; + }; + + wireless-wlan { + pinctrl-names = "default"; + pinctrl-0 = <0x1ea>; + WIFI,host_wake_irq = <0x182 0x0a 0x00>; + wifi_chip_type = "rtl8822ce"; + compatible = "wlan-platdata"; + status = "okay"; + phandle = <0x4ab>; + }; + + rkcif-mipi-lvds4-sditf-vir3 { + compatible = "rockchip,rkcif-sditf"; + status = "disabled"; + rockchip,cif = <0x1a1>; + phandle = <0x475>; + }; + + dp@fde50000 { + power-domains = <0x60 0x19>; + clock-names = "apb\0aux\0i2s\0spdif\0hclk\0hdcp"; + assigned-clocks = <0x02 0x2cc>; + assigned-clock-rates = <0xf42400>; + resets = <0x02 0x388>; + interrupts = <0x00 0xa1 0x04>; + clocks = <0x02 0x1e6 0x02 0x2cc 0x02 0x1fb 0x02 0x207 0x04 0x02 0x1ea>; + #sound-dai-cells = <0x01>; + compatible = "rockchip,rk3588-dp"; + status = "disabled"; + phys = <0xf6>; + reg = <0x00 0xfde50000 0x00 0x4000>; + phandle = <0x1d6>; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x00>; + + endpoint@1 { + remote-endpoint = <0x38>; + status = "disabled"; + reg = <0x01>; + phandle = <0xe0>; + }; + + endpoint@2 { + remote-endpoint = <0xf8>; + status = "disabled"; + reg = <0x02>; + phandle = <0xe6>; + }; + + endpoint@0 { + remote-endpoint = <0xf7>; + status = "disabled"; + reg = <0x00>; + phandle = <0xda>; + }; + }; + + port@1 { + reg = <0x01>; + + endpoint { + phandle = <0x286>; + }; + }; + }; + }; + + rockchip-system-monitor { + rockchip,thermal-zone = "soc-thermal"; + compatible = "rockchip,system-monitor"; + phandle = <0x247>; + }; + + vcc3v3-pcie30 { + regulator-max-microvolt = <0x325aa0>; + enable-active-high; + regulator-min-microvolt = <0x325aa0>; + regulator-name = "vcc3v3_pcie30"; + startup-delay-us = <0x1388>; + compatible = "regulator-fixed"; + status = "okay"; + phandle = <0x1b8>; + vin-supply = <0x1cd>; + gpios = <0x182 0x04 0x00>; + }; + + phy@fedb0000 { + clock-names = "pclk\0ref"; + resets = <0x02 0xc0045 0x02 0x43 0x02 0x44 0x02 0xc0046>; + clocks = <0x02 0x109 0x02 0x2b6>; + #phy-cells = <0x00>; + compatible = "rockchip,rk3588-mipi-dcphy"; + status = "okay"; + rockchip,grf = <0x191>; + reg = <0x00 0xfedb0000 0x00 0x10000>; + phandle = <0x30>; + reset-names = "m_phy\0apb\0grf\0s_phy"; + }; + + rkvdec-core@fdc38000 { + power-domains = <0x60 0x0e>; + iommus = <0xc9>; + rockchip,ccu = <0xca>; + clock-names = "aclk_vcodec\0hclk_vcodec\0clk_core\0clk_cabac\0clk_hevc_cabac"; + reg-names = "regs\0link"; + assigned-clocks = <0x02 0x190 0x02 0x193 0x02 0x191 0x02 0x192>; + rockchip,core-mask = <0x10001>; + rockchip,task-capacity = <0x10>; + rockchip,normal-rates = <0x2faf0800 0x00 0x23c34600 0x23c34600 0x3b9aca00>; + assigned-clock-rates = <0x2faf0800 0x23c34600 0x23c34600 0x3b9aca00>; + resets = <0x02 0x284 0x02 0x283 0x02 0x289 0x02 0x287 0x02 0x288>; + interrupts = <0x00 0x5f 0x04>; + rockchip,rcb-info = <0x88 0x6000 0x89 0xc000 0x8d 0x16000 0x8c 0xc000 0x8b 0x2c000 0x85 0xc000 0x86 0x2000 0x87 0x1100 0x8a 0x3300 0x8e 0x47300>; + clocks = <0x02 0x190 0x02 0x18f 0x02 0x193 0x02 0x191 0x02 0x192>; + rockchip,rcb-min-width = <0x200>; + rockchip,srv = <0xb8>; + rockchip,taskqueue-node = <0x09>; + compatible = "rockchip,rkv-decoder-v2"; + status = "okay"; + interrupt-names = "irq_rkvdec0"; + rockchip,skip-pmu-idle-request; + rockchip,rcb-iova = <0xfff00000 0x100000>; + reg = <0x00 0xfdc38100 0x00 0x400 0x00 0xfdc38000 0x00 0x100>; + phandle = <0x274>; + reset-names = "video_a\0video_h\0video_core\0video_cabac\0video_hevc_cabac"; + rockchip,sram = <0xcb>; + }; + + minidump { + smem-region = <0x1cf>; + minidump-region = <0x1d0>; + compatible = "rockchip,minidump"; + status = "disabled"; + phandle = <0x491>; + }; +}; diff --git a/scripts/make/rk3588.mk b/scripts/make/rk3588.mk index 51f795cf..34f534fc 100644 --- a/scripts/make/rk3588.mk +++ b/scripts/make/rk3588.mk @@ -13,4 +13,15 @@ ifeq ($(wildcard $(RK3588_MKIMAGE)),) rm rk3588.zip; endif $(RK3588_MKIMAGE) -n axvisor -A arm64 -O linux -T kernel -C none -a 0x00480000 -e 0x00480000 -d $(OUT_BIN) $(OUT_IMG) - @echo 'Built the uboot image ${OUT_IMG} successfully!' \ No newline at end of file + @echo 'Built the uboot image ${OUT_IMG} successfully!' + +define upload_image + @echo "Uploading image to RK3588..." + cp $(OUT_IMG) /srv/tftp/axvisor + @echo "Image uploaded to /srv/tftp/axvisor" + @echo "You can now boot the image using the RK3588 board." + @echo "Coping this command to uboot console:" + @echo "" + @echo 'setenv serverip 192.168.50.97;setenv ipaddr 192.168.50.8;tftp 0x00480000 192.168.50.97:axvisor;tftp 0x10000000 192.168.50.97:rk3588_dtb.bin;bootm 0x00480000 - 0x10000000;' + @echo "" +endef \ No newline at end of file diff --git a/src/hal.rs b/src/hal.rs index 3a73f51c..2893c04f 100644 --- a/src/hal.rs +++ b/src/hal.rs @@ -74,7 +74,7 @@ impl AxVCpuHal for AxVCpuHalImpl { #[cfg(target_arch = "aarch64")] fn irq_hanlder() { - let irq_num = axhal::irq::fetch_irq(); + let irq_num = Self::irq_fetch(); debug!("IRQ handler {irq_num}"); axhal::irq::handler_irq(irq_num); } diff --git a/src/vmm/config.rs b/src/vmm/config.rs index 64013a18..d36c155d 100644 --- a/src/vmm/config.rs +++ b/src/vmm/config.rs @@ -87,8 +87,8 @@ pub fn parse_vm_dtb(vm_cfg: &mut AxVMConfig, dtb: &[u8]) { if let Some(status) = node.status() { if status == Status::Disabled { // Skip disabled nodes - warn!("Skipping disabled DTB node: {}", name); - continue; + trace!("DTB node: {} is disabled", name); + // continue; } } @@ -96,7 +96,7 @@ pub fn parse_vm_dtb(vm_cfg: &mut AxVMConfig, dtb: &[u8]) { for reg in regs { if reg.address < 0x1000 { // Skip registers with address less than 0x10000. - warn!( + trace!( "Skipping DTB node {} with register address {:#x} < 0x10000", node.name(), reg.address @@ -108,7 +108,7 @@ pub fn parse_vm_dtb(vm_cfg: &mut AxVMConfig, dtb: &[u8]) { let start = reg.address as usize; let end = start + size as usize; if vm_cfg.contains_memory_range(&(start..end)) { - warn!( + trace!( "Skipping DTB node {} with register address {:#x} and size {:#x} as it overlaps with existing memory regions", node.name(), reg.address, @@ -124,7 +124,7 @@ pub fn parse_vm_dtb(vm_cfg: &mut AxVMConfig, dtb: &[u8]) { length: size as _, irq_id: 0, }; - info!("Adding {:x?}", pt_dev); + trace!("Adding {:x?}", pt_dev); vm_cfg.add_pass_through_device(pt_dev); } } From 526371e2882a5dd2910b3c5a94d44ff9393ae088 Mon Sep 17 00:00:00 2001 From: hky1999 <976929993@qq.com> Date: Sun, 1 Jun 2025 22:19:05 +0800 Subject: [PATCH 022/219] [wip] add how to prepare linux kernel binary --- Boot-on-rk3588.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/Boot-on-rk3588.md b/Boot-on-rk3588.md index 6a95b7ad..221eaaf5 100644 --- a/Boot-on-rk3588.md +++ b/Boot-on-rk3588.md @@ -23,8 +23,20 @@ You should see `TFTP Server Test` on your screen. dtc -o aio-rk3588-jd4.dtb -O dtb -I dts aio-rk3588-jd4.dts ``` +## Prepare Linux kernel bianry + +```bash +scp xxx@192.168.xxx.xxx:/home/xxx/firefly_rk3588_SDK/kernel/arch/arm64/boot/Image configs/vms/Image.bin +``` + ## Compile AxVisor +* get deps +```bash +./tool/dev_env.py +cd crates/arceos && git checkout rk3588_jd4 +``` + * compile ```bash From b441b8c9bb2c9cb613880aeb117f8ce8a51d6bb0 Mon Sep 17 00:00:00 2001 From: aarkegz Date: Thu, 5 Jun 2025 15:43:13 +0800 Subject: [PATCH 023/219] add place-holder implementation for new `axvisor_api`s --- Cargo.lock | 4 ++-- src/hal.rs | 17 +++++++++++++++++ 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 77563749..adc4b7f6 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -615,7 +615,7 @@ dependencies = [ [[package]] name = "axvisor_api" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/axvisor_api.git?branch=inject_interrupt#7782e173650a761a326bd1aeb5c3ed468d86e6db" +source = "git+https://github.com/arceos-hypervisor/axvisor_api.git?branch=inject_interrupt#a40fbf91fe582edae2b1fea274c52aab8804f97d" dependencies = [ "axaddrspace", "axvisor_api_proc", @@ -626,7 +626,7 @@ dependencies = [ [[package]] name = "axvisor_api_proc" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/axvisor_api.git?branch=inject_interrupt#7782e173650a761a326bd1aeb5c3ed468d86e6db" +source = "git+https://github.com/arceos-hypervisor/axvisor_api.git?branch=inject_interrupt#a40fbf91fe582edae2b1fea274c52aab8804f97d" dependencies = [ "proc-macro-crate", "proc-macro2", diff --git a/src/hal.rs b/src/hal.rs index ece30cbf..a97df904 100644 --- a/src/hal.rs +++ b/src/hal.rs @@ -274,4 +274,21 @@ mod arch_api_impl { use axstd::os::arceos::modules::axhal::irq::MyVgic; MyVgic::get_gicd().lock().get_iidr() } + + #[cfg(target_arch = "aarch64")] + extern fn get_host_gicd_base() -> memory_addr::PhysAddr { + unimplemented!() + } + + #[cfg(target_arch = "aarch64")] + extern fn get_host_gicr_base() -> memory_addr::PhysAddr { + unimplemented!() + } +} + +#[axvisor_api::api_mod_impl(axvisor_api::host)] +mod host_api_impl { + extern fn get_host_cpu_num() -> usize { + std::os::arceos::modules::axconfig::SMP + } } From 9d23528523c0a3c87382704f05cbd12ab47976e4 Mon Sep 17 00:00:00 2001 From: Gallium70 <52118815+Gallium70@users.noreply.github.com> Date: Fri, 6 Jun 2025 17:44:28 +0800 Subject: [PATCH 024/219] [feat] Support load ramdisk image from memory --- build.rs | 20 ++++++++++++++++++++ src/vmm/images.rs | 6 ++++++ 2 files changed, 26 insertions(+) diff --git a/build.rs b/build.rs index 0106e6ed..3d4c1fad 100644 --- a/build.rs +++ b/build.rs @@ -102,6 +102,7 @@ struct MemoryImage { pub kernel: PathBuf, pub dtb: Option, pub bios: Option, + pub ramdisk: Option, } fn parse_config_file(config_file: &ConfigFile) -> Option { @@ -138,11 +139,19 @@ fn parse_config_file(config_file: &ConfigFile) -> Option { .and_then(|v| v.as_str()) .map(|v| convert_to_absolute(CONFIGS_DIR_PATH, v)); + let ramdisk = config + .get("kernel")? + .as_table()? + .get("ramdisk_path") + .and_then(|v| v.as_str()) + .map(|v| convert_to_absolute(CONFIGS_DIR_PATH, v)); + Some(MemoryImage { id, kernel, dtb, bios, + ramdisk, }) } @@ -174,12 +183,21 @@ fn generate_guest_img_loading_functions( None => quote! { None }, }; + let ramdisk = match files.ramdisk { + Some(v) => { + let s = v.display().to_string(); + quote! { Some(include_bytes!(#s)) } + } + None => quote! { None }, + }; + memory_images.push(quote! { MemoryImage { id: #id, kernel: include_bytes!(#kernel), dtb: #dtb, bios: #bios, + ramdisk: #ramdisk, } }); } @@ -196,6 +214,8 @@ fn generate_guest_img_loading_functions( pub dtb: Option<&'static [u8]>, /// bios image pub bios: Option<&'static [u8]>, + /// ramdisk image + pub ramdisk: Option<&'static [u8]>, } /// Get memory images from config file. diff --git a/src/vmm/images.rs b/src/vmm/images.rs index 478e6e12..f894b304 100644 --- a/src/vmm/images.rs +++ b/src/vmm/images.rs @@ -44,6 +44,12 @@ fn load_vm_images_from_memory(config: AxVMCrateConfig, vm: VMRef) -> AxResult { load_vm_image_from_memory(buffer, config.kernel.bios_load_addr.unwrap(), vm.clone()) .expect("Failed to load BIOS images"); } + + // Load Ramdisk image + if let Some(buffer) = vm_imags.ramdisk { + load_vm_image_from_memory(buffer, config.kernel.ramdisk_load_addr.unwrap(), vm.clone()) + .expect("Failed to load Ramdisk images"); + }; #[cfg(target_arch = "aarch64")] { for mem_region in &config.kernel.memory_regions { From 1a9b3a3be4e3e3f54cd377e3d94a7813fb23171f Mon Sep 17 00:00:00 2001 From: Gallium70 <52118815+Gallium70@users.noreply.github.com> Date: Fri, 6 Jun 2025 17:45:06 +0800 Subject: [PATCH 025/219] [feat/rk3588] Add ramdisk image config for rk3588 --- Boot-on-rk3588.md | 5 +++-- configs/vms/linux-rk3588-aarch64-smp.toml | 5 +++++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/Boot-on-rk3588.md b/Boot-on-rk3588.md index 221eaaf5..dae08704 100644 --- a/Boot-on-rk3588.md +++ b/Boot-on-rk3588.md @@ -12,7 +12,7 @@ echo "TFTP Server Test" > /srv/tftp/testfile.txt tftp localhost tftp> get testfile.txt tftp> quit -cat testfile.txt +cat testfile.txt ``` You should see `TFTP Server Test` on your screen. @@ -27,6 +27,7 @@ dtc -o aio-rk3588-jd4.dtb -O dtb -I dts aio-rk3588-jd4.dts ```bash scp xxx@192.168.xxx.xxx:/home/xxx/firefly_rk3588_SDK/kernel/arch/arm64/boot/Image configs/vms/Image.bin +scp xxx@192.168.xxx.xxx:/home/xxx/firefly_rk3588_SDK/kernel/ramdisk.img configs/vms/ramdisk.img ``` ## Compile AxVisor @@ -58,7 +59,7 @@ cp axvisor_aarch64-rk3588j.img /srv/tftp/axvisor # 这是 tftp 服务器所在的主机 ip setenv serverip 192.168.50.97 # 这是 rk3588 所在设备的 ip (Firefly Linux 自己 DHCP 拿到的地址) -setenv ipaddr 192.168.50.8 +setenv ipaddr 192.168.50.8 # 使用 tftp 加载镜像到指定内存地址并 boot setenv serverip 192.168.50.97;setenv ipaddr 192.168.50.8;tftp 0x00480000 ${serverip}:axvisor;tftp 0x10000000 ${serverip}:rk3588_dtb.bin;bootm 0x00480000 - 0x10000000; ``` diff --git a/configs/vms/linux-rk3588-aarch64-smp.toml b/configs/vms/linux-rk3588-aarch64-smp.toml index b91a14c3..16d7c973 100644 --- a/configs/vms/linux-rk3588-aarch64-smp.toml +++ b/configs/vms/linux-rk3588-aarch64-smp.toml @@ -24,6 +24,8 @@ entry_point = 0x1020_0000 kernel_load_addr = 0x1020_0000 # The load address of the device tree blob (DTB). dtb_load_addr = 0x1000_0000 +# The load address of the ramdisk image. +ramdisk_load_addr = 0x0a20_0000 # The location of image: "memory" | "fs". # load from memory image_location = "memory" @@ -31,6 +33,9 @@ image_location = "memory" kernel_path = "Image.bin" # The file path of the device tree blob (DTB). dtb_path = "aio-rk3588-jd4.dtb" +# The file path of the ramdisk image. +ramdisk_path = "ramdisk.img" + # load from file system. # image_location = "fs". From a08744961a522b9293c36adba536b05a1d3e5eb9 Mon Sep 17 00:00:00 2001 From: hky1999 <976929993@qq.com> Date: Fri, 6 Jun 2025 17:49:29 +0800 Subject: [PATCH 026/219] [wip] boot Linux and arceos --- Cargo.lock | 4 - Cargo.toml | 3 + configs/platforms/aarch64-qemu-virt-hv.toml | 2 +- configs/vms/arceos-aarch64.toml | 13 +- configs/vms/linux-qemu-aarch64.toml | 6 +- configs/vms/qemu_gicv3.dts | 410 ++++++++++++++++++++ scripts/make/qemu.mk | 4 +- src/vmm/config.rs | 2 +- 8 files changed, 428 insertions(+), 16 deletions(-) create mode 100644 configs/vms/qemu_gicv3.dts diff --git a/Cargo.lock b/Cargo.lock index 4a102467..923238f8 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1083,8 +1083,6 @@ checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" [[package]] name = "page_table_entry" version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c097d641745a066856a26eed6e486d4430bb3e32c94f1203ea09c63239b360a0" dependencies = [ "aarch64-cpu 10.0.0", "bitflags 2.9.0", @@ -1095,8 +1093,6 @@ dependencies = [ [[package]] name = "page_table_multiarch" version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4647889585d29762d747be0916d6d28db72967a697d142be86f187a6b496832a" dependencies = [ "log", "memory_addr", diff --git a/Cargo.toml b/Cargo.toml index 304687fe..40063f26 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -75,3 +75,6 @@ path = "crates/arm_vgic" path = "crates/axdevice_crates/axdevice_base" [patch."https://github.com/arceos-hypervisor/arm_gicv2.git".arm_gicv2] path = "crates/arm_gicv2" +[patch.crates-io] +page_table_multiarch = {path = "crates/page_table_multiarch/page_table_multiarch"} +page_table_entry = {path = "crates/page_table_multiarch/page_table_entry"} \ No newline at end of file diff --git a/configs/platforms/aarch64-qemu-virt-hv.toml b/configs/platforms/aarch64-qemu-virt-hv.toml index b5c2001a..9e8aa6d8 100644 --- a/configs/platforms/aarch64-qemu-virt-hv.toml +++ b/configs/platforms/aarch64-qemu-virt-hv.toml @@ -90,7 +90,7 @@ pci-ranges = [ [0x80_0000_0000, 0x80_0000_0000], # 64-bit MMIO space ] # [(uint, uint)] # UART Address -uart-paddr = 0x0900_0000 # uint +uart-paddr = 0x0904_0000 # uint # UART IRQ number uart-irq = 1 # uint diff --git a/configs/vms/arceos-aarch64.toml b/configs/vms/arceos-aarch64.toml index d2f87d93..47271868 100644 --- a/configs/vms/arceos-aarch64.toml +++ b/configs/vms/arceos-aarch64.toml @@ -2,7 +2,7 @@ # [base] # Guest vm id. -id = 1 +id = 2 # Guest vm name. name = "arceos" # Virtualization type. @@ -10,21 +10,21 @@ vm_type = 1 # The number of virtual CPUs. cpu_num = 1 # Guest vm physical cpu sets. -phys_cpu_sets = [1] +phys_cpu_sets = [2] # # Vm kernel configs # [kernel] # The entry point of the kernel image. -entry_point = 0x4008_0000 +entry_point = 0x4020_0000 # The location of image: "memory" | "fs". # Load from file system. -image_location = "fs" +image_location = "memory" # The file path of the kernel image. -kernel_path = "arceos-aarch64.bin" +kernel_path = "/home/hky/workspace/arceos/axvisor/crates/arceos/examples/helloworld/helloworld_aarch64-qemu-virt_1.bin" # The load address of the kernel image. -kernel_load_addr = 0x4008_0000 +kernel_load_addr = 0x4020_0000 ## Load from memory # image_location = "memory" ## The file path of the kernel image. @@ -50,6 +50,7 @@ emu_devices = [] passthrough_devices = [ ["intc@8000000", 0x800_0000, 0x800_0000, 0x50_000, 0x1], ["pl011@9000000", 0x900_0000, 0x900_0000, 0x1000, 0x1], + ["pl011@9040000", 0x904_0000, 0x904_0000, 0x1000, 0x1], ["pl031@9010000", 0x901_0000, 0x901_0000, 0x1000, 0x1], ["pl061@9030000", 0x903_0000, 0x903_0000, 0x1000, 0x1], # a003000.virtio_mmio virtio_mmio@a003000 diff --git a/configs/vms/linux-qemu-aarch64.toml b/configs/vms/linux-qemu-aarch64.toml index 3459987f..9ad71adb 100644 --- a/configs/vms/linux-qemu-aarch64.toml +++ b/configs/vms/linux-qemu-aarch64.toml @@ -22,11 +22,11 @@ entry_point = 0x8008_0000 # load from memory. image_location = "memory" # The file path of the kernel image. -kernel_path = "Image-5.10.198.bin" +kernel_path = "linux-6.6.62.bin" # The load address of the kernel image. kernel_load_addr = 0x8008_0000 # The file path of the device tree blob (DTB). -dtb_path = "aio-rk3588-jd4.dtb" +dtb_path = "qemu_gicv3.dtb" # The load address of the device tree blob (DTB). dtb_load_addr = 0x8000_0000 @@ -63,6 +63,8 @@ passthrough_devices = [ # # a003000.virtio_mmio virtio_mmio@a003000 # # a003200.virtio_mmio virtio_mmio@a003200 # ["virtio_mmio", 0xa00_0000, 0xa00_0000, 0x4000, 0x1], + ["low-memory", 0x0, 0x0, 0x2000_0000, 0x1], + ["pci", 0x8000000000, 0x8000000000, 0x10000, 0x1], ] # Emu_devices. diff --git a/configs/vms/qemu_gicv3.dts b/configs/vms/qemu_gicv3.dts new file mode 100644 index 00000000..73b3158f --- /dev/null +++ b/configs/vms/qemu_gicv3.dts @@ -0,0 +1,410 @@ +/dts-v1/; + +/ { + interrupt-parent = <0x8003>; + dma-coherent; + model = "linux,dummy-virt"; + #size-cells = <0x02>; + #address-cells = <0x02>; + compatible = "linux,dummy-virt"; + + psci { + migrate = <0xc4000005>; + cpu_on = <0xc4000003>; + cpu_off = <0x84000002>; + cpu_suspend = <0xc4000001>; + method = "smc"; + compatible = "arm,psci-1.0\0arm,psci-0.2\0arm,psci"; + }; + + memory@40000000 { + reg = <0x00 0x80000000 0x00 0x40000000>; + device_type = "memory"; + }; + + platform-bus@c000000 { + interrupt-parent = <0x8003>; + ranges = <0x00 0x00 0xc000000 0x2000000>; + #address-cells = <0x01>; + #size-cells = <0x01>; + compatible = "qemu,platform\0simple-bus"; + }; + + fw-cfg@9020000 { + dma-coherent; + reg = <0x00 0x9020000 0x00 0x18>; + compatible = "qemu,fw-cfg-mmio"; + }; + + virtio_mmio@a000000 { + dma-coherent; + interrupts = <0x00 0x10 0x01>; + reg = <0x00 0xa000000 0x00 0x200>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@a000200 { + dma-coherent; + interrupts = <0x00 0x11 0x01>; + reg = <0x00 0xa000200 0x00 0x200>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@a000400 { + dma-coherent; + interrupts = <0x00 0x12 0x01>; + reg = <0x00 0xa000400 0x00 0x200>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@a000600 { + dma-coherent; + interrupts = <0x00 0x13 0x01>; + reg = <0x00 0xa000600 0x00 0x200>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@a000800 { + dma-coherent; + interrupts = <0x00 0x14 0x01>; + reg = <0x00 0xa000800 0x00 0x200>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@a000a00 { + dma-coherent; + interrupts = <0x00 0x15 0x01>; + reg = <0x00 0xa000a00 0x00 0x200>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@a000c00 { + dma-coherent; + interrupts = <0x00 0x16 0x01>; + reg = <0x00 0xa000c00 0x00 0x200>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@a000e00 { + dma-coherent; + interrupts = <0x00 0x17 0x01>; + reg = <0x00 0xa000e00 0x00 0x200>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@a001000 { + dma-coherent; + interrupts = <0x00 0x18 0x01>; + reg = <0x00 0xa001000 0x00 0x200>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@a001200 { + dma-coherent; + interrupts = <0x00 0x19 0x01>; + reg = <0x00 0xa001200 0x00 0x200>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@a001400 { + dma-coherent; + interrupts = <0x00 0x1a 0x01>; + reg = <0x00 0xa001400 0x00 0x200>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@a001600 { + dma-coherent; + interrupts = <0x00 0x1b 0x01>; + reg = <0x00 0xa001600 0x00 0x200>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@a001800 { + dma-coherent; + interrupts = <0x00 0x1c 0x01>; + reg = <0x00 0xa001800 0x00 0x200>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@a001a00 { + dma-coherent; + interrupts = <0x00 0x1d 0x01>; + reg = <0x00 0xa001a00 0x00 0x200>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@a001c00 { + dma-coherent; + interrupts = <0x00 0x1e 0x01>; + reg = <0x00 0xa001c00 0x00 0x200>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@a001e00 { + dma-coherent; + interrupts = <0x00 0x1f 0x01>; + reg = <0x00 0xa001e00 0x00 0x200>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@a002000 { + dma-coherent; + interrupts = <0x00 0x20 0x01>; + reg = <0x00 0xa002000 0x00 0x200>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@a002200 { + dma-coherent; + interrupts = <0x00 0x21 0x01>; + reg = <0x00 0xa002200 0x00 0x200>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@a002400 { + dma-coherent; + interrupts = <0x00 0x22 0x01>; + reg = <0x00 0xa002400 0x00 0x200>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@a002600 { + dma-coherent; + interrupts = <0x00 0x23 0x01>; + reg = <0x00 0xa002600 0x00 0x200>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@a002800 { + dma-coherent; + interrupts = <0x00 0x24 0x01>; + reg = <0x00 0xa002800 0x00 0x200>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@a002a00 { + dma-coherent; + interrupts = <0x00 0x25 0x01>; + reg = <0x00 0xa002a00 0x00 0x200>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@a002c00 { + dma-coherent; + interrupts = <0x00 0x26 0x01>; + reg = <0x00 0xa002c00 0x00 0x200>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@a002e00 { + dma-coherent; + interrupts = <0x00 0x27 0x01>; + reg = <0x00 0xa002e00 0x00 0x200>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@a003000 { + dma-coherent; + interrupts = <0x00 0x28 0x01>; + reg = <0x00 0xa003000 0x00 0x200>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@a003200 { + dma-coherent; + interrupts = <0x00 0x29 0x01>; + reg = <0x00 0xa003200 0x00 0x200>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@a003400 { + dma-coherent; + interrupts = <0x00 0x2a 0x01>; + reg = <0x00 0xa003400 0x00 0x200>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@a003600 { + dma-coherent; + interrupts = <0x00 0x2b 0x01>; + reg = <0x00 0xa003600 0x00 0x200>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@a003800 { + dma-coherent; + interrupts = <0x00 0x2c 0x01>; + reg = <0x00 0xa003800 0x00 0x200>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@a003a00 { + dma-coherent; + interrupts = <0x00 0x2d 0x01>; + reg = <0x00 0xa003a00 0x00 0x200>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@a003c00 { + dma-coherent; + interrupts = <0x00 0x2e 0x01>; + reg = <0x00 0xa003c00 0x00 0x200>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@a003e00 { + dma-coherent; + interrupts = <0x00 0x2f 0x01>; + reg = <0x00 0xa003e00 0x00 0x200>; + compatible = "virtio,mmio"; + }; + + gpio-keys { + compatible = "gpio-keys"; + + poweroff { + gpios = <0x8005 0x03 0x00>; + linux,code = <0x74>; + label = "GPIO Key Poweroff"; + }; + }; + + pl061@9030000 { + phandle = <0x8005>; + clock-names = "apb_pclk"; + clocks = <0x8000>; + interrupts = <0x00 0x07 0x04>; + gpio-controller; + #gpio-cells = <0x02>; + compatible = "arm,pl061\0arm,primecell"; + reg = <0x00 0x9030000 0x00 0x1000>; + }; + + pcie@10000000 { + interrupt-map-mask = <0x1800 0x00 0x00 0x07>; + interrupt-map = <0x00 0x00 0x00 0x01 0x8003 0x00 0x00 0x00 0x03 0x04 0x00 0x00 0x00 0x02 0x8003 0x00 0x00 0x00 0x04 0x04 0x00 0x00 0x00 0x03 0x8003 0x00 0x00 0x00 0x05 0x04 0x00 0x00 0x00 0x04 0x8003 0x00 0x00 0x00 0x06 0x04 0x800 0x00 0x00 0x01 0x8003 0x00 0x00 0x00 0x04 0x04 0x800 0x00 0x00 0x02 0x8003 0x00 0x00 0x00 0x05 0x04 0x800 0x00 0x00 0x03 0x8003 0x00 0x00 0x00 0x06 0x04 0x800 0x00 0x00 0x04 0x8003 0x00 0x00 0x00 0x03 0x04 0x1000 0x00 0x00 0x01 0x8003 0x00 0x00 0x00 0x05 0x04 0x1000 0x00 0x00 0x02 0x8003 0x00 0x00 0x00 0x06 0x04 0x1000 0x00 0x00 0x03 0x8003 0x00 0x00 0x00 0x03 0x04 0x1000 0x00 0x00 0x04 0x8003 0x00 0x00 0x00 0x04 0x04 0x1800 0x00 0x00 0x01 0x8003 0x00 0x00 0x00 0x06 0x04 0x1800 0x00 0x00 0x02 0x8003 0x00 0x00 0x00 0x03 0x04 0x1800 0x00 0x00 0x03 0x8003 0x00 0x00 0x00 0x04 0x04 0x1800 0x00 0x00 0x04 0x8003 0x00 0x00 0x00 0x05 0x04>; + #interrupt-cells = <0x01>; + ranges = <0x1000000 0x00 0x00 0x00 0x3eff0000 0x00 0x10000 0x2000000 0x00 0x10000000 0x00 0x10000000 0x00 0x2eff0000 0x3000000 0x80 0x00 0x80 0x00 0x80 0x00>; + reg = <0x40 0x10000000 0x00 0x10000000>; + msi-map = <0x00 0x8004 0x00 0x10000>; + dma-coherent; + bus-range = <0x00 0xff>; + linux,pci-domain = <0x00>; + #size-cells = <0x02>; + #address-cells = <0x03>; + device_type = "pci"; + compatible = "pci-host-ecam-generic"; + }; + + pl031@9010000 { + clock-names = "apb_pclk"; + clocks = <0x8000>; + interrupts = <0x00 0x02 0x04>; + reg = <0x00 0x9010000 0x00 0x1000>; + compatible = "arm,pl031\0arm,primecell"; + }; + + pl011@9000000 { + clock-names = "uartclk\0apb_pclk"; + clocks = <0x8000 0x8000>; + interrupts = <0x00 0x01 0x04>; + reg = <0x00 0x9000000 0x00 0x1000>; + compatible = "arm,pl011\0arm,primecell"; + }; + + pmu { + interrupts = <0x01 0x07 0x04>; + compatible = "arm,armv8-pmuv3"; + }; + + intc@8000000 { + phandle = <0x8003>; + interrupts = <0x01 0x09 0x04>; + reg = <0x00 0x8000000 0x00 0x10000 0x00 0x80a0000 0x00 0xf60000>; + #redistributor-regions = <0x01>; + compatible = "arm,gic-v3"; + ranges; + #size-cells = <0x02>; + #address-cells = <0x02>; + interrupt-controller; + #interrupt-cells = <0x03>; + + its@8080000 { + phandle = <0x8004>; + reg = <0x00 0x8080000 0x00 0x20000>; + #msi-cells = <0x01>; + msi-controller; + compatible = "arm,gic-v3-its"; + }; + }; + + flash@0 { + bank-width = <0x04>; + reg = <0x00 0x00 0x00 0x4000000 0x00 0x4000000 0x00 0x4000000>; + compatible = "cfi-flash"; + }; + + cpus { + #size-cells = <0x00>; + #address-cells = <0x01>; + + cpu-map { + + socket0 { + + cluster0 { + + core0 { + cpu = <0x8002>; + }; + + //core1 { + // cpu = <0x8001>; + //}; + }; + }; + }; + + cpu@0 { + phandle = <0x8002>; + reg = <0x00>; + enable-method = "psci"; + compatible = "arm,cortex-a57"; + device_type = "cpu"; + }; + + //cpu@1 { + // phandle = <0x8001>; + // reg = <0x01>; + // enable-method = "psci"; + // compatible = "arm,cortex-a57"; + // device_type = "cpu"; + //}; + }; + + timer { + interrupts = <0x01 0x0d 0x04 0x01 0x0e 0x04 0x01 0x0b 0x04 0x01 0x0a 0x04>; + always-on; + compatible = "arm,armv8-timer\0arm,armv7-timer"; + }; + + apb-pclk { + phandle = <0x8000>; + clock-output-names = "clk24mhz"; + clock-frequency = <0x16e3600>; + #clock-cells = <0x00>; + compatible = "fixed-clock"; + }; + + aliases { + serial0 = "/pl011@9000000"; + }; + + chosen { + bootargs = "earlycon console=ttyAMA0 root=/dev/vda rw audit=0 default_hugepagesz=32M hugepagesz=32M hugepages=4"; + stdout-path = "/pl011@9000000"; + rng-seed = <0x79361ef3 0x1a4e5964 0x9fb01da 0x749b376f 0x7036ec7c 0xdea25f0c 0x79d7ee4e 0xe2e216af>; + kaslr-seed = <0x2758c1 0xf528d3d5>; + }; +}; diff --git a/scripts/make/qemu.mk b/scripts/make/qemu.mk index 8f73b1d3..50b5058d 100644 --- a/scripts/make/qemu.mk +++ b/scripts/make/qemu.mk @@ -36,7 +36,7 @@ qemu_args-$(NET) += \ -device virtio-net-$(vdev-suffix),netdev=net0 ifeq ($(NET_DEV), user) - qemu_args-$(NET) += -netdev user,id=net0,hostfwd=tcp::5555-:5555,hostfwd=udp::5555-:5555 + qemu_args-$(NET) += -netdev user,id=net0,hostfwd=tcp::5555-:22,hostfwd=udp::5555-:5555 else ifeq ($(NET_DEV), tap) qemu_args-$(NET) += -netdev tap,id=net0,script=scripts/net/qemu-ifup.sh,downscript=no,vhost=$(VHOST),vhostforce=$(VHOST) QEMU := sudo $(QEMU) @@ -68,7 +68,7 @@ ifeq ($(ARCH), aarch64) ifeq ($(GICV3),y) qemu_args-y += -machine virt,virtualization=on,gic-version=3 else - qemu_args-y += -machine virt,virtualization=on,gic-version=2 + qemu_args-y += -machine virt,virtualization=on,gic-version=3 endif endif diff --git a/src/vmm/config.rs b/src/vmm/config.rs index d36c155d..ba21db7e 100644 --- a/src/vmm/config.rs +++ b/src/vmm/config.rs @@ -79,7 +79,7 @@ pub fn parse_vm_dtb(vm_cfg: &mut AxVMConfig, dtb: &[u8]) { for node in fdt.all_nodes() { trace!("DTB node: {:?}", node.name()); let name = node.name(); - if name == "memory" { + if name.starts_with("memory") { // Skip the memory node, as we handle memory regions separately. continue; } From a29e9407ac79edfc9a7c74eab89bd95ebe97150d Mon Sep 17 00:00:00 2001 From: hky1999 <976929993@qq.com> Date: Sat, 7 Jun 2025 15:52:37 +0800 Subject: [PATCH 027/219] [feat] add scripts of boot Linux and arceos on qemu --- Boot-on-qemu.md | 17 +++++++++++++++++ Boot-on-rk3588.md | 1 - 2 files changed, 17 insertions(+), 1 deletion(-) create mode 100644 Boot-on-qemu.md diff --git a/Boot-on-qemu.md b/Boot-on-qemu.md new file mode 100644 index 00000000..fbbf4dc8 --- /dev/null +++ b/Boot-on-qemu.md @@ -0,0 +1,17 @@ +## Compile AxVisor + +* get deps +```bash +./tool/dev_env.py +cd crates/arceos && git checkout rk3588_jd4_qemu +cd crates/axvm && git checkout dtb +cd crates/axvcpu && git checkout 4_level_paging +cd crates/axaddrspace && git checkout 4_level_paging +``` + + +```bash +make ARCH=aarch64 LOG=debug VM_CONFIGS=configs/vms/linux-qemu-aarch64.toml:configs/vms/arceos-aarch64.toml GICV3=y NET=y SMP=2 run DISK_IMG=/home/hky/workspace/Linux/ubuntu-22.04-rootfs_ext4.img SECOND_SERIAL=y + +telnet localhost 4321 +``` \ No newline at end of file diff --git a/Boot-on-rk3588.md b/Boot-on-rk3588.md index 221eaaf5..b59c5ec4 100644 --- a/Boot-on-rk3588.md +++ b/Boot-on-rk3588.md @@ -63,4 +63,3 @@ setenv ipaddr 192.168.50.8 setenv serverip 192.168.50.97;setenv ipaddr 192.168.50.8;tftp 0x00480000 ${serverip}:axvisor;tftp 0x10000000 ${serverip}:rk3588_dtb.bin;bootm 0x00480000 - 0x10000000; ``` tftp 0x00480000 ${serverip}:Image.bin;tftp 0x10000000 ${serverip}:rk3588_dtb.bin;bootm 0x00480000 - 0x10000000; - From 5e1367662d667350fb207d25414301c0c4ab6327 Mon Sep 17 00:00:00 2001 From: Gallium70 <52118815+Gallium70@users.noreply.github.com> Date: Sat, 7 Jun 2025 16:10:30 +0800 Subject: [PATCH 028/219] [feat] Remove unnecessary cooling-maps to allow automatic fan speed control after boot --- configs/vms/aio-rk3588-jd4.dts | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/configs/vms/aio-rk3588-jd4.dts b/configs/vms/aio-rk3588-jd4.dts index 40549136..b1681d82 100644 --- a/configs/vms/aio-rk3588-jd4.dts +++ b/configs/vms/aio-rk3588-jd4.dts @@ -5714,12 +5714,6 @@ cooling-maps { - map2 { - trip = <0x5e>; - cooling-device = <0x0c 0xffffffff 0xffffffff>; - contribution = <0x400>; - }; - map0 { trip = <0x5e>; cooling-device = <0x06 0xffffffff 0xffffffff>; @@ -5731,12 +5725,6 @@ cooling-device = <0x5f 0xffffffff 0xffffffff>; contribution = <0x400>; }; - - map1 { - trip = <0x5e>; - cooling-device = <0x0a 0xffffffff 0xffffffff>; - contribution = <0x400>; - }; }; }; From 634cac8a9371b5c9b7b6b2f6c92e2305097c22fa Mon Sep 17 00:00:00 2001 From: hky1999 <976929993@qq.com> Date: Sat, 7 Jun 2025 20:52:18 +0800 Subject: [PATCH 029/219] [fix] bad repo in Boot-on-qemu.md orz --- Boot-on-qemu.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Boot-on-qemu.md b/Boot-on-qemu.md index fbbf4dc8..b2a5ecab 100644 --- a/Boot-on-qemu.md +++ b/Boot-on-qemu.md @@ -5,7 +5,7 @@ ./tool/dev_env.py cd crates/arceos && git checkout rk3588_jd4_qemu cd crates/axvm && git checkout dtb -cd crates/axvcpu && git checkout 4_level_paging +cd crates/arm_vcpu && git checkout 4_level_paging cd crates/axaddrspace && git checkout 4_level_paging ``` From b5181943452eb9f6b264b4e2f72c188edc0bd908 Mon Sep 17 00:00:00 2001 From: Gallium70 <52118815+Gallium70@users.noreply.github.com> Date: Mon, 9 Jun 2025 22:43:46 +0800 Subject: [PATCH 030/219] [doc/rk3588] Update boot Linux VM instruction on custom kernel branch --- Boot-on-rk3588.md | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/Boot-on-rk3588.md b/Boot-on-rk3588.md index dae08704..e0997162 100644 --- a/Boot-on-rk3588.md +++ b/Boot-on-rk3588.md @@ -1,3 +1,5 @@ +# Boot A Linux VM on the Firefly AIO-3588JD4 Board + ## Setup TFTP Server ```bash @@ -5,7 +7,7 @@ sudo apt-get install tftpd-hpa tftp-hpa sudo chmod 777 /srv/tftp ``` -judge if TFTP works +Check if TFTP works ```bash echo "TFTP Server Test" > /srv/tftp/testfile.txt @@ -20,11 +22,15 @@ You should see `TFTP Server Test` on your screen. ## Compile device tree ```bash -dtc -o aio-rk3588-jd4.dtb -O dtb -I dts aio-rk3588-jd4.dts +dtc -o configs/vms/aio-rk3588-jd4.dtb -O dtb -I dts configs/vms/aio-rk3588-jd4.dts ``` ## Prepare Linux kernel bianry +Prepare RK3588 SDK following manufacturer's instruction, checkout the Linux kernel repository to this branch: https://github.com/arceos-hypervisor/firefly-linux-bsp/tree/axvisor-wip, then build the kernel. + +Copy the kernel and ramdisk image to AxVisor directory: + ```bash scp xxx@192.168.xxx.xxx:/home/xxx/firefly_rk3588_SDK/kernel/arch/arm64/boot/Image configs/vms/Image.bin scp xxx@192.168.xxx.xxx:/home/xxx/firefly_rk3588_SDK/kernel/ramdisk.img configs/vms/ramdisk.img @@ -33,6 +39,7 @@ scp xxx@192.168.xxx.xxx:/home/xxx/firefly_rk3588_SDK/kernel/ramdisk.img configs/ ## Compile AxVisor * get deps + ```bash ./tool/dev_env.py cd crates/arceos && git checkout rk3588_jd4 From 0720a7e2e05304637bfcbb9d983fa1067b7a8e25 Mon Sep 17 00:00:00 2001 From: Gallium70 <52118815+Gallium70@users.noreply.github.com> Date: Sat, 7 Jun 2025 16:16:22 +0800 Subject: [PATCH 031/219] [bug] Temporary fix for linux boot failure --- src/vmm/config.rs | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/vmm/config.rs b/src/vmm/config.rs index d36c155d..a47406b5 100644 --- a/src/vmm/config.rs +++ b/src/vmm/config.rs @@ -130,6 +130,14 @@ pub fn parse_vm_dtb(vm_cfg: &mut AxVMConfig, dtb: &[u8]) { } } } + + vm_cfg.add_pass_through_device(PassThroughDeviceConfig { + name: "Fake Node".to_string(), + base_gpa: 0x0, + base_hpa: 0x0, + length: 0x20_0000, + irq_id: 0, + }); } pub fn init_guest_vms() { From 4f4bf972a59d917176b5792883b59b8a070c8739 Mon Sep 17 00:00:00 2001 From: Gallium70 <52118815+Gallium70@users.noreply.github.com> Date: Mon, 9 Jun 2025 16:19:01 +0800 Subject: [PATCH 032/219] [feat/rk3588] Add device tree and config for booting 2 VMs (Linux+ArceOS) --- configs/vms/aio-rk3588-jd4-vm1.dts | 12795 +++++++++++++++ configs/vms/aio-rk3588-jd4-vm2.dts | 12823 ++++++++++++++++ configs/vms/arceos-rk3588-aarch64-vm2.toml | 50 + configs/vms/linux-rk3588-aarch64-smp-vm1.toml | 72 + 4 files changed, 25740 insertions(+) create mode 100644 configs/vms/aio-rk3588-jd4-vm1.dts create mode 100644 configs/vms/aio-rk3588-jd4-vm2.dts create mode 100644 configs/vms/arceos-rk3588-aarch64-vm2.toml create mode 100644 configs/vms/linux-rk3588-aarch64-smp-vm1.toml diff --git a/configs/vms/aio-rk3588-jd4-vm1.dts b/configs/vms/aio-rk3588-jd4-vm1.dts new file mode 100644 index 00000000..560b772b --- /dev/null +++ b/configs/vms/aio-rk3588-jd4-vm1.dts @@ -0,0 +1,12795 @@ +/dts-v1/; + +/ { + #address-cells = <0x02>; + model = "Firefly AIO-3588JD4"; + serial-number = "a0deeea630de3975"; + #size-cells = <0x02>; + interrupt-parent = <0x01>; + compatible = "rockchip,aio-3588jd4\0rockchip,rk3588"; + + pcie30-avdd1v8 { + regulator-max-microvolt = <0x1b7740>; + regulator-boot-on; + regulator-always-on; + regulator-min-microvolt = <0x1b7740>; + regulator-name = "pcie30_avdd1v8"; + compatible = "regulator-fixed"; + phandle = <0x4a6>; + vin-supply = <0x1de>; + }; + + syscon@fd5bc000 { + compatible = "rockchip,pipe-phy-grf\0syscon"; + reg = <0x00 0xfd5bc000 0x00 0x100>; + phandle = <0x194>; + }; + + vcc5v0-host3 { + regulator-max-microvolt = <0x4c4b40>; + regulator-boot-on; + gpio = <0x182 0x07 0x00>; + regulator-always-on; + enable-active-high; + regulator-min-microvolt = <0x4c4b40>; + regulator-name = "vcc5v0_host3"; + compatible = "regulator-fixed"; + status = "disabled"; + phandle = <0x4a2>; + vin-supply = <0x1dd>; + }; + + pwm@febd0030 { + pinctrl-names = "active"; + pinctrl-0 = <0x16c>; + clock-names = "pwm\0pclk"; + interrupts = <0x00 0x15a 0x04 0x00 0x15b 0x04>; + clocks = <0x02 0x54 0x02 0x53>; + #pwm-cells = <0x03>; + compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; + status = "disabled"; + reg = <0x00 0xfebd0030 0x00 0x10>; + phandle = <0x2d4>; + }; + + rkisp@fdcc0000 { + power-domains = <0x60 0x1c>; + iommus = <0xd1>; + clock-names = "aclk_isp\0hclk_isp\0clk_isp_core\0clk_isp_core_marvin\0clk_isp_core_vicap"; + interrupts = <0x00 0x87 0x04 0x00 0x89 0x04 0x00 0x8a 0x04>; + clocks = <0x02 0x120 0x02 0x121 0x02 0x11d 0x02 0x11e 0x02 0x11f>; + compatible = "rockchip,rk3588-rkisp"; + status = "disabled"; + interrupt-names = "isp_irq\0mi_irq\0mipi_irq"; + reg = <0x00 0xfdcc0000 0x00 0x7f00>; + phandle = <0x5a>; + }; + + qos@fdf66600 { + compatible = "syscon"; + reg = <0x00 0xfdf66600 0x00 0x20>; + phandle = <0x96>; + }; + + serial@febb0000 { + reg-io-width = <0x04>; + pinctrl-names = "default"; + pinctrl-0 = <0x167>; + clock-names = "baudclk\0apb_pclk"; + interrupts = <0x00 0x153 0x04>; + clocks = <0x02 0xd3 0x02 0xb2>; + compatible = "rockchip,rk3588-uart\0snps,dw-apb-uart"; + status = "disabled"; + reg = <0x00 0xfebb0000 0x00 0x100>; + phandle = <0x2d0>; + dmas = <0xf2 0x09 0xf2 0x0a>; + reg-shift = <0x02>; + }; + + qos@fdf41000 { + compatible = "syscon"; + reg = <0x00 0xfdf41000 0x00 0x20>; + phandle = <0xa6>; + }; + + csi2-dcphy1 { + rockchip,hw = <0x2d 0x2e>; + phy-names = "dcphy0\0dcphy1"; + compatible = "rockchip,rk3588-csi2-dphy"; + status = "disabled"; + phys = <0x2f 0x30>; + phandle = <0x20e>; + }; + + rkispp0-vir0 { + rockchip,hw = <0x5b>; + compatible = "rockchip,rk3588-rkispp-vir"; + status = "disabled"; + phandle = <0x243>; + }; + + wireless-bluetooth { + pinctrl-names = "default\0rts_gpio"; + pinctrl-0 = <0x1e5 0x1e6 0x1e7 0x1e8>; + clock-names = "ext_clock"; + BT,power_gpio = <0x7b 0x16 0x00>; + clocks = <0x1e4>; + BT,wake_gpio = <0x7b 0x15 0x00>; + uart_rts_gpios = <0xfe 0x02 0x01>; + compatible = "bluetooth-platdata"; + BT,wake_host_irq = <0x7b 0x00 0x00>; + pinctrl-1 = <0x1e9>; + status = "disabled"; + phandle = <0x4aa>; + }; + + pwm@febd0020 { + pinctrl-names = "active"; + pinctrl-0 = <0x16b>; + clock-names = "pwm\0pclk"; + interrupts = <0x00 0x15a 0x04>; + clocks = <0x02 0x54 0x02 0x53>; + #pwm-cells = <0x03>; + compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; + status = "disabled"; + reg = <0x00 0xfebd0020 0x00 0x10>; + phandle = <0x2d3>; + }; + + qos@fdf39000 { + compatible = "syscon"; + reg = <0x00 0xfdf39000 0x00 0x20>; + phandle = <0xaf>; + }; + + cam0-cam1-switch { + regulator-max-microvolt = <0x1b7740>; + pinctrl-names = "default"; + regulator-boot-on; + gpio = <0x181 0x11 0x00>; + pinctrl-0 = <0x1f0>; + regulator-always-on; + enable-active-high; + regulator-min-microvolt = <0x1b7740>; + regulator-name = "cam0_cam1_switch"; + compatible = "regulator-fixed"; + status = "okay"; + phandle = <0x4b2>; + }; + + qos@fdf3e400 { + compatible = "syscon"; + reg = <0x00 0xfdf3e400 0x00 0x20>; + phandle = <0xad>; + }; + + mipi2-csi2 { + rockchip,hw = <0x47 0x48 0x49 0x4a 0x4b 0x4c>; + compatible = "rockchip,rk3588-mipi-csi2"; + status = "okay"; + firefly-compatible; + phandle = <0x226>; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x00>; + + endpoint@0 { + remote-endpoint = <0x4d>; + reg = <0x00>; + phandle = <0x33>; + }; + }; + + port@1 { + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x01>; + + endpoint@0 { + remote-endpoint = <0x4e>; + reg = <0x00>; + phandle = <0x54>; + }; + }; + }; + }; + + iommu@fdc48700 { + power-domains = <0x60 0x0f>; + rockchip,shootdown-entire; + clock-names = "aclk\0iface"; + interrupts = <0x00 0x62 0x04>; + clocks = <0x02 0x195 0x02 0x194>; + rockchip,enable-cmd-retry; + #iommu-cells = <0x00>; + compatible = "rockchip,iommu-v2"; + rockchip,disable-mmu-reset; + status = "okay"; + interrupt-names = "irq_rkvdec1_mmu"; + reg = <0x00 0xfdc48700 0x00 0x40 0x00 0xfdc48740 0x00 0x40>; + phandle = <0xcc>; + rockchip,master-handle-irq; + }; + + clock-controller@fd7c0000 { + #reset-cells = <0x01>; + assigned-clocks = <0x02 0x09 0x02 0x05 0x02 0x08 0x02 0x07 0x02 0xd8 0x02 0xda 0x02 0xd9 0x02 0x10e 0x02 0x10f 0x02 0x110 0x02 0x299 0x02 0x29a 0x02 0x7b 0x02 0xec 0x02 0x114 0x02 0x208 0x02 0x20e 0x02 0x21f 0x02 0x77>; + assigned-clock-rates = <0x4190ab00 0x2ee00000 0x32a9f880 0x46cf7100 0x29d7ab80 0x17d78400 0x1dcd6500 0x2cb41780 0x5f5e100 0x17d78400 0x5f5e100 0xbebc200 0x165a0bc0 0x8f0d180 0xbebc200 0xb71b00 0xb71b00 0x5e69ec0 0x1312d00>; + #clock-cells = <0x01>; + compatible = "rockchip,rk3588-cru"; + rockchip,grf = <0x76>; + reg = <0x00 0xfd7c0000 0x00 0x5c000>; + phandle = <0x02>; + }; + + qos@fdf81000 { + compatible = "syscon"; + reg = <0x00 0xfdf81000 0x00 0x20>; + phandle = <0xa0>; + }; + + qos@fdf36000 { + compatible = "syscon"; + reg = <0x00 0xfdf36000 0x00 0x20>; + phandle = <0xaa>; + }; + + i2s@fe4a0000 { + power-domains = <0x60 0x26>; + pinctrl-names = "default\0idle\0clk"; + pinctrl-2 = <0x132 0x133>; + pinctrl-0 = <0x12f 0x130>; + clock-names = "i2s_clk\0i2s_hclk"; + assigned-clocks = <0x02 0x2a>; + assigned-clock-parents = <0x02 0x05>; + interrupts = <0x00 0xb7 0x04>; + clocks = <0x02 0x2d 0x02 0x23>; + dma-names = "tx\0rx"; + #sound-dai-cells = <0x00>; + compatible = "rockchip,rk3588-i2s\0rockchip,rk3066-i2s"; + pinctrl-1 = <0x131>; + status = "disabled"; + reg = <0x00 0xfe4a0000 0x00 0x1000>; + phandle = <0x299>; + dmas = <0xf1 0x02 0xf1 0x03>; + rockchip,clk-trcm = <0x01>; + }; + + syscon@fd5c4000 { + compatible = "rockchip,pipe-phy-grf\0syscon"; + reg = <0x00 0xfd5c4000 0x00 0x100>; + phandle = <0x195>; + }; + + sram@ff001000 { + #address-cells = <0x01>; + #size-cells = <0x01>; + compatible = "mmio-sram"; + ranges = <0x00 0x00 0xff001000 0xef000>; + reg = <0x00 0xff001000 0x00 0xef000>; + phandle = <0x2eb>; + + rkvdec-sram@0 { + reg = <0x00 0x78000>; + phandle = <0xcb>; + }; + + rkvdec-sram@78000 { + reg = <0x78000 0x77000>; + phandle = <0xcd>; + }; + }; + + pwm@febd0010 { + pinctrl-names = "active"; + pinctrl-0 = <0x16a>; + clock-names = "pwm\0pclk"; + interrupts = <0x00 0x15a 0x04>; + clocks = <0x02 0x54 0x02 0x53>; + #pwm-cells = <0x03>; + compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; + status = "okay"; + reg = <0x00 0xfebd0010 0x00 0x10>; + phandle = <0x1ed>; + }; + + rkisp1-vir3 { + rockchip,hw = <0x5a>; + compatible = "rockchip,rkisp-vir"; + status = "disabled"; + phandle = <0x242>; + }; + + pcie-clk2 { + regulator-boot-on; + regulator-always-on; + regulator-name = "pcie_clk2"; + compatible = "regulator-fixed"; + status = "okay"; + phandle = <0x495>; + gpios = <0x181 0x16 0x01>; + }; + + serial@feb40000 { + reg-io-width = <0x04>; + pinctrl-names = "default"; + pinctrl-0 = <0x160>; + clock-names = "baudclk\0apb_pclk"; + interrupts = <0x00 0x14c 0x04>; + clocks = <0x02 0xb7 0x02 0xab>; + compatible = "rockchip,rk3588-uart\0snps,dw-apb-uart"; + status = "okay"; + reg = <0x00 0xfeb40000 0x00 0x100>; + phandle = <0x2c9>; + dmas = <0x7c 0x08 0x7c 0x09>; + reg-shift = <0x02>; + }; + + pinctrl { + #address-cells = <0x02>; + #size-cells = <0x02>; + compatible = "rockchip,rk3588-pinctrl"; + ranges; + rockchip,grf = <0x196>; + phandle = <0x197>; + + eth0 { + + eth0-pins { + rockchip,pins = <0x02 0x13 0x01 0x198>; + phandle = <0x46c>; + }; + }; + + i2c3 { + + i2c3m3-xfer { + rockchip,pins = <0x02 0x0a 0x09 0x19d 0x02 0x0b 0x09 0x19d>; + phandle = <0x361>; + }; + + i2c3m2-xfer { + rockchip,pins = <0x04 0x04 0x09 0x19d 0x04 0x05 0x09 0x19d>; + phandle = <0x14a>; + }; + + i2c3m1-xfer { + rockchip,pins = <0x03 0x0f 0x09 0x19d 0x03 0x10 0x09 0x19d>; + phandle = <0x35f>; + }; + + i2c3m0-xfer { + rockchip,pins = <0x01 0x11 0x09 0x19d 0x01 0x10 0x09 0x19d>; + phandle = <0x35e>; + }; + + i2c3m4-xfer { + rockchip,pins = <0x04 0x18 0x09 0x19d 0x04 0x19 0x09 0x19d>; + phandle = <0x360>; + }; + }; + + pwm9 { + + pwm9m2-pins { + rockchip,pins = <0x03 0x19 0x0b 0x198>; + phandle = <0x3d7>; + }; + + pwm9m1-pins { + rockchip,pins = <0x04 0x19 0x0b 0x198>; + phandle = <0x3d6>; + }; + + pwm9m0-pins { + rockchip,pins = <0x03 0x08 0x0b 0x198>; + phandle = <0x16e>; + }; + }; + + pcfg-pull-none-drv-level-7 { + drive-strength = <0x07>; + bias-disable; + phandle = <0x451>; + }; + + mipi { + + mipi-te1 { + rockchip,pins = <0x03 0x13 0x02 0x198>; + phandle = <0x39f>; + }; + + mipim1-camera2-clk { + rockchip,pins = <0x03 0x07 0x04 0x198>; + phandle = <0x39b>; + }; + + mipim0-camera0-clk { + rockchip,pins = <0x04 0x09 0x01 0x198>; + phandle = <0x395>; + }; + + mipim0-camera4-clk { + rockchip,pins = <0x01 0x1f 0x02 0x198>; + phandle = <0x399>; + }; + + mipim1-camera3-clk { + rockchip,pins = <0x03 0x08 0x04 0x198>; + phandle = <0x39c>; + }; + + mipim0-camera1-clk { + rockchip,pins = <0x01 0x0e 0x02 0x198>; + phandle = <0x396>; + }; + + mipim1-camera0-clk { + rockchip,pins = <0x03 0x05 0x04 0x198>; + phandle = <0x39a>; + }; + + mipim1-camera4-clk { + rockchip,pins = <0x03 0x09 0x04 0x198>; + phandle = <0x39d>; + }; + + mipim0-camera2-clk { + rockchip,pins = <0x01 0x0f 0x02 0x198>; + phandle = <0x397>; + }; + + mipi-te0 { + rockchip,pins = <0x03 0x12 0x02 0x198>; + phandle = <0x39e>; + }; + + mipim1-camera1-clk { + rockchip,pins = <0x03 0x06 0x04 0x198>; + phandle = <0x180>; + }; + + mipim0-camera3-clk { + rockchip,pins = <0x01 0x1e 0x02 0x198>; + phandle = <0x398>; + }; + }; + + pwm14 { + + pwm14m2-pins { + rockchip,pins = <0x01 0x1e 0x0b 0x198>; + phandle = <0x3e1>; + }; + + pwm14m1-pins { + rockchip,pins = <0x04 0x0a 0x0b 0x198>; + phandle = <0x3e0>; + }; + + pwm14m0-pins { + rockchip,pins = <0x03 0x12 0x0b 0x198>; + phandle = <0x173>; + }; + }; + + pcfg-pull-none-drv-level-4-smt { + drive-strength = <0x04>; + bias-disable; + input-schmitt-enable; + phandle = <0x303>; + }; + + headphone { + + hp-det { + rockchip,pins = <0x02 0x13 0x00 0x198>; + phandle = <0x1dc>; + }; + }; + + npu { + + npu-pins { + rockchip,pins = <0x00 0x16 0x02 0x198>; + phandle = <0x3a0>; + }; + }; + + wireless-bluetooth { + + bt-reset-gpio { + rockchip,pins = <0x00 0x16 0x00 0x198>; + phandle = <0x1e6>; + }; + + bt-irq-gpio { + rockchip,pins = <0x00 0x00 0x00 0x198>; + phandle = <0x1e8>; + }; + + bt-wake-gpio { + rockchip,pins = <0x00 0x15 0x00 0x198>; + phandle = <0x1e7>; + }; + + uart6-gpios { + rockchip,pins = <0x01 0x02 0x00 0x198>; + phandle = <0x1e9>; + }; + }; + + pcie30x1 { + + pcie30x1-1-button-rstn { + rockchip,pins = <0x04 0x0a 0x04 0x198>; + phandle = <0x3a9>; + }; + + pcie30x1m1-pins { + rockchip,pins = <0x04 0x03 0x04 0x198 0x04 0x05 0x04 0x198 0x04 0x04 0x04 0x198 0x04 0x00 0x04 0x198 0x04 0x02 0x04 0x198 0x04 0x01 0x04 0x198>; + phandle = <0x3a6>; + }; + + pcie30x1m0-pins { + rockchip,pins = <0x00 0x10 0x0c 0x198 0x00 0x15 0x0c 0x198 0x00 0x14 0x0c 0x198 0x00 0x0d 0x0c 0x198 0x00 0x0f 0x0c 0x198 0x00 0x0e 0x0c 0x198>; + phandle = <0x3a5>; + }; + + pcie30x1-0-button-rstn { + rockchip,pins = <0x04 0x09 0x04 0x198>; + phandle = <0x3a8>; + }; + + pcie30x1m2-pins { + rockchip,pins = <0x01 0x0d 0x04 0x198 0x01 0x0c 0x04 0x198 0x01 0x0b 0x04 0x198 0x01 0x00 0x04 0x198 0x01 0x07 0x04 0x198 0x01 0x01 0x04 0x198>; + phandle = <0x3a7>; + }; + }; + + uart8 { + + uart8m0-rtsn { + rockchip,pins = <0x04 0x0a 0x0a 0x198>; + phandle = <0x443>; + }; + + uart8m1-ctsn { + rockchip,pins = <0x03 0x05 0x0a 0x198>; + phandle = <0x444>; + }; + + uart8m0-ctsn { + rockchip,pins = <0x04 0x0b 0x0a 0x198>; + phandle = <0x442>; + }; + + uart8m1-xfer { + rockchip,pins = <0x03 0x03 0x0a 0x19e 0x03 0x02 0x0a 0x19e>; + phandle = <0x167>; + }; + + uart8m0-xfer { + rockchip,pins = <0x04 0x09 0x0a 0x19e 0x04 0x08 0x0a 0x19e>; + phandle = <0x441>; + }; + + uart8-xfer { + rockchip,pins = <0x04 0x09 0x0a 0x19e>; + phandle = <0x446>; + }; + + uart8m1-rtsn { + rockchip,pins = <0x03 0x04 0x0a 0x198>; + phandle = <0x445>; + }; + }; + + spi2 { + + spi2m0-cs1 { + rockchip,pins = <0x01 0x08 0x08 0x19a>; + phandle = <0x404>; + }; + + spi2m2-cs0 { + rockchip,pins = <0x00 0x09 0x01 0x19f>; + phandle = <0x154>; + }; + + spi2m1-cs1 { + rockchip,pins = <0x04 0x08 0x08 0x19a>; + phandle = <0x407>; + }; + + spi2m2-pins { + rockchip,pins = <0x00 0x05 0x01 0x19f 0x00 0x0b 0x01 0x19f 0x00 0x06 0x01 0x19f>; + phandle = <0x155>; + }; + + spi2m1-pins { + rockchip,pins = <0x04 0x06 0x08 0x19a 0x04 0x04 0x08 0x19a 0x04 0x05 0x08 0x19a>; + phandle = <0x405>; + }; + + spi2m2-cs1 { + rockchip,pins = <0x00 0x08 0x01 0x19f>; + phandle = <0x408>; + }; + + spi2m0-cs0 { + rockchip,pins = <0x01 0x07 0x08 0x19a>; + phandle = <0x403>; + }; + + spi2m0-pins { + rockchip,pins = <0x01 0x06 0x08 0x19a 0x01 0x04 0x08 0x19a 0x01 0x05 0x08 0x19a>; + phandle = <0x402>; + }; + + spi2m1-cs0 { + rockchip,pins = <0x04 0x07 0x08 0x19a>; + phandle = <0x406>; + }; + }; + + pcfg-pull-up-drv-level-15 { + drive-strength = <0x0f>; + phandle = <0x462>; + bias-pull-up; + }; + + pcfg-pull-down-drv-level-13 { + drive-strength = <0x0d>; + bias-pull-down; + phandle = <0x469>; + }; + + pcfg-pull-up-drv-level-2 { + drive-strength = <0x02>; + phandle = <0x199>; + bias-pull-up; + }; + + i2s1 { + + i2s1m0-sdo1 { + rockchip,pins = <0x04 0x0a 0x03 0x198>; + phandle = <0x127>; + }; + + i2s1m1-sdi1 { + rockchip,pins = <0x00 0x16 0x01 0x198>; + phandle = <0x380>; + }; + + i2s1m0-sdi3 { + rockchip,pins = <0x04 0x08 0x03 0x198>; + phandle = <0x125>; + }; + + i2s1m0-mclk { + rockchip,pins = <0x04 0x00 0x03 0x19d>; + phandle = <0x37b>; + }; + + i2s1m0-sdi1 { + rockchip,pins = <0x04 0x06 0x03 0x198>; + phandle = <0x123>; + }; + + i2s1m1-sdo2 { + rockchip,pins = <0x00 0x1c 0x01 0x198>; + phandle = <0x385>; + }; + + i2s1m1-sdo0 { + rockchip,pins = <0x00 0x19 0x01 0x198>; + phandle = <0x383>; + }; + + i2s1m0-sdo2 { + rockchip,pins = <0x04 0x0b 0x03 0x198>; + phandle = <0x128>; + }; + + i2s1m1-sdi2 { + rockchip,pins = <0x00 0x17 0x01 0x198>; + phandle = <0x381>; + }; + + i2s1m0-sdo0 { + rockchip,pins = <0x04 0x09 0x03 0x198>; + phandle = <0x126>; + }; + + i2s1m1-sdi0 { + rockchip,pins = <0x00 0x15 0x01 0x198>; + phandle = <0x37f>; + }; + + i2s1m0-sdi2 { + rockchip,pins = <0x04 0x07 0x03 0x198>; + phandle = <0x124>; + }; + + i2s1m1-sclk { + rockchip,pins = <0x00 0x0e 0x01 0x19d>; + phandle = <0x37e>; + }; + + i2s1m0-sdi0 { + rockchip,pins = <0x04 0x05 0x03 0x198>; + phandle = <0x122>; + }; + + i2s1m1-sdo3 { + rockchip,pins = <0x00 0x1d 0x01 0x198>; + phandle = <0x386>; + }; + + i2s1m1-lrck { + rockchip,pins = <0x00 0x0f 0x01 0x19d>; + phandle = <0x37c>; + }; + + i2s1m0-sclk { + rockchip,pins = <0x04 0x01 0x03 0x19d>; + phandle = <0x121>; + }; + + i2s1m1-sdo1 { + rockchip,pins = <0x00 0x1a 0x01 0x198>; + phandle = <0x384>; + }; + + i2s1m0-sdo3 { + rockchip,pins = <0x04 0x0c 0x03 0x198>; + phandle = <0x129>; + }; + + i2s1m1-sdi3 { + rockchip,pins = <0x00 0x18 0x01 0x198>; + phandle = <0x382>; + }; + + i2s1m0-lrck { + rockchip,pins = <0x04 0x02 0x03 0x19d>; + phandle = <0x120>; + }; + + i2s1m1-mclk { + rockchip,pins = <0x00 0x0d 0x01 0x19d>; + phandle = <0x37d>; + }; + }; + + ddrphych2 { + + ddrphych2-pins { + rockchip,pins = <0x04 0x08 0x07 0x198 0x04 0x09 0x07 0x198 0x04 0x0a 0x07 0x198 0x04 0x0b 0x07 0x198>; + phandle = <0x31a>; + }; + }; + + pcfg-pull-none-drv-level-12 { + drive-strength = <0x0c>; + bias-disable; + phandle = <0x456>; + }; + + i2c1 { + + i2c1m2-xfer { + rockchip,pins = <0x00 0x1c 0x09 0x19d 0x00 0x1d 0x09 0x19d>; + phandle = <0x148>; + }; + + i2c1m1-xfer { + rockchip,pins = <0x00 0x08 0x02 0x19d 0x00 0x09 0x02 0x19d>; + phandle = <0x357>; + }; + + i2c1m0-xfer { + rockchip,pins = <0x00 0x0d 0x09 0x19d 0x00 0x0e 0x09 0x19d>; + phandle = <0x356>; + }; + + i2c1m4-xfer { + rockchip,pins = <0x01 0x1a 0x09 0x19d 0x01 0x1b 0x09 0x19d>; + phandle = <0x359>; + }; + + i2c1m3-xfer { + rockchip,pins = <0x02 0x1c 0x09 0x19d 0x02 0x1d 0x09 0x19d>; + phandle = <0x358>; + }; + }; + + pwm7 { + + pwm7m3-pins { + rockchip,pins = <0x04 0x16 0x0b 0x198>; + phandle = <0x3d3>; + }; + + pwm7m2-pins { + rockchip,pins = <0x01 0x13 0x0b 0x198>; + phandle = <0x3d2>; + }; + + pwm7m1-pins { + rockchip,pins = <0x04 0x1c 0x0b 0x198>; + phandle = <0x3d1>; + }; + + pwm7m0-pins { + rockchip,pins = <0x00 0x18 0x0b 0x198>; + phandle = <0x16c>; + }; + }; + + pcfg-pull-none-drv-level-5 { + drive-strength = <0x05>; + bias-disable; + phandle = <0x2f1>; + }; + + gmac0 { + + gmac0-clkinout { + rockchip,pins = <0x04 0x13 0x01 0x198>; + phandle = <0x46d>; + }; + + gmac0-miim { + rockchip,pins = <0x04 0x14 0x01 0x198 0x04 0x15 0x01 0x198>; + phandle = <0x1c1>; + }; + + gmac0-tx-bus2 { + rockchip,pins = <0x02 0x0e 0x01 0x19a 0x02 0x0f 0x01 0x19a 0x02 0x10 0x01 0x198>; + phandle = <0x1c2>; + }; + + gmac0-rgmii-bus { + rockchip,pins = <0x02 0x06 0x01 0x198 0x02 0x07 0x01 0x198 0x02 0x09 0x01 0x19a 0x02 0x0a 0x01 0x19a>; + phandle = <0x1c5>; + }; + + gmac0-ppsclk { + rockchip,pins = <0x02 0x14 0x01 0x198>; + phandle = <0x46e>; + }; + + gmac0-txer { + rockchip,pins = <0x04 0x16 0x01 0x198>; + phandle = <0x471>; + }; + + gmac0-ptp-refclk { + rockchip,pins = <0x02 0x0c 0x01 0x198>; + phandle = <0x470>; + }; + + gmac0-rx-bus2 { + rockchip,pins = <0x02 0x11 0x01 0x198 0x02 0x12 0x01 0x198 0x04 0x12 0x01 0x198>; + phandle = <0x1c3>; + }; + + gmac0-rgmii-clk { + rockchip,pins = <0x02 0x08 0x01 0x198 0x02 0x0b 0x01 0x198>; + phandle = <0x1c4>; + }; + + gmac0-ppstring { + rockchip,pins = <0x02 0x0d 0x01 0x198>; + phandle = <0x46f>; + }; + }; + + pwm12 { + + pwm12m1-pins { + rockchip,pins = <0x04 0x0d 0x0b 0x198>; + phandle = <0x3dd>; + }; + + pwm12m0-pins { + rockchip,pins = <0x03 0x0d 0x0b 0x198>; + phandle = <0x171>; + }; + }; + + usb-typec { + + usbc0-int { + rockchip,pins = <0x00 0x1b 0x00 0x198>; + phandle = <0x17b>; + }; + + usb-5v-ctrl { + rockchip,pins = <0x01 0x03 0x00 0x198>; + phandle = <0x1ef>; + }; + }; + + uart6 { + + uart6m1-ctsn { + rockchip,pins = <0x01 0x03 0x0a 0x198>; + phandle = <0x436>; + }; + + uart6m2-xfer { + rockchip,pins = <0x01 0x19 0x0a 0x19e 0x01 0x18 0x0a 0x19e>; + phandle = <0x437>; + }; + + uart6m0-ctsn { + rockchip,pins = <0x02 0x09 0x0a 0x198>; + phandle = <0x439>; + }; + + uart6m1-xfer { + rockchip,pins = <0x01 0x00 0x0a 0x19e 0x01 0x01 0x0a 0x19e>; + phandle = <0x165>; + }; + + uart6m0-xfer { + rockchip,pins = <0x02 0x06 0x0a 0x19e 0x02 0x07 0x0a 0x19e>; + phandle = <0x438>; + }; + + uart6m1-rtsn { + rockchip,pins = <0x01 0x02 0x0a 0x198>; + phandle = <0x1e5>; + }; + + uart6m0-rtsn { + rockchip,pins = <0x02 0x08 0x0a 0x198>; + phandle = <0x43a>; + }; + }; + + pcfg-pull-down-drv-level-8 { + drive-strength = <0x08>; + bias-pull-down; + phandle = <0x464>; + }; + + gpu { + + gpu-pins { + rockchip,pins = <0x00 0x15 0x02 0x198>; + phandle = <0x333>; + }; + }; + + spi0 { + + spi0m2-cs1 { + rockchip,pins = <0x01 0x0d 0x08 0x19a>; + phandle = <0x3f8>; + }; + + spi0m0-cs0 { + rockchip,pins = <0x00 0x19 0x08 0x19a>; + phandle = <0x14e>; + }; + + spi0m3-pins { + rockchip,pins = <0x03 0x1b 0x08 0x19a 0x03 0x19 0x08 0x19a 0x03 0x1a 0x08 0x19a>; + phandle = <0x3f9>; + }; + + spi0m3-cs1 { + rockchip,pins = <0x03 0x1d 0x08 0x19a>; + phandle = <0x3fb>; + }; + + spi0m2-pins { + rockchip,pins = <0x01 0x0b 0x08 0x19a 0x01 0x09 0x08 0x19a 0x01 0x0a 0x08 0x19a>; + phandle = <0x3f6>; + }; + + spi0m1-cs0 { + rockchip,pins = <0x04 0x0a 0x08 0x19a>; + phandle = <0x3f4>; + }; + + spi0m1-pins { + rockchip,pins = <0x04 0x02 0x08 0x19a 0x04 0x00 0x08 0x19a 0x04 0x01 0x08 0x19a>; + phandle = <0x3f3>; + }; + + spi0m0-cs1 { + rockchip,pins = <0x00 0x0f 0x08 0x19a>; + phandle = <0x14f>; + }; + + spi0m2-cs0 { + rockchip,pins = <0x01 0x0c 0x08 0x19a>; + phandle = <0x3f7>; + }; + + spi0m0-pins { + rockchip,pins = <0x00 0x16 0x08 0x19a 0x00 0x17 0x08 0x19a 0x00 0x10 0x08 0x19a>; + phandle = <0x150>; + }; + + spi0m1-cs1 { + rockchip,pins = <0x04 0x09 0x08 0x19a>; + phandle = <0x3f5>; + }; + + spi0m3-cs0 { + rockchip,pins = <0x03 0x1c 0x08 0x19a>; + phandle = <0x3fa>; + }; + }; + + fspi { + + fspim0-cs1 { + rockchip,pins = <0x02 0x1f 0x02 0x199>; + phandle = <0x329>; + }; + + fspim1-pins { + rockchip,pins = <0x02 0x0b 0x03 0x199 0x02 0x0c 0x03 0x199 0x02 0x06 0x03 0x199 0x02 0x07 0x03 0x199 0x02 0x08 0x03 0x199 0x02 0x09 0x03 0x199>; + phandle = <0x32c>; + }; + + fspim0-pins { + rockchip,pins = <0x02 0x00 0x02 0x199 0x02 0x1e 0x02 0x199 0x02 0x18 0x02 0x199 0x02 0x19 0x02 0x199 0x02 0x1a 0x02 0x199 0x02 0x1b 0x02 0x199>; + phandle = <0x328>; + }; + + fspim1-cs1 { + rockchip,pins = <0x02 0x0d 0x03 0x199>; + phandle = <0x32d>; + }; + + fspim2-cs1 { + rockchip,pins = <0x03 0x15 0x02 0x199>; + phandle = <0x32b>; + }; + + fspim2-pins { + rockchip,pins = <0x03 0x05 0x05 0x199 0x03 0x14 0x02 0x199 0x03 0x00 0x05 0x199 0x03 0x01 0x05 0x199 0x03 0x02 0x05 0x199 0x03 0x03 0x05 0x199>; + phandle = <0x32a>; + }; + }; + + pcfg-pull-up-drv-level-13 { + drive-strength = <0x0d>; + phandle = <0x460>; + bias-pull-up; + }; + + clk32k { + + clk32k-out0 { + rockchip,pins = <0x00 0x0a 0x02 0x198>; + phandle = <0x315>; + }; + + clk32k-in { + rockchip,pins = <0x00 0x0a 0x01 0x198>; + phandle = <0x314>; + }; + + clk32k-out1 { + rockchip,pins = <0x02 0x15 0x01 0x198>; + phandle = <0x316>; + }; + }; + + pcfg-pull-down-drv-level-11 { + drive-strength = <0x0b>; + bias-pull-down; + phandle = <0x467>; + }; + + pcie30phy { + + pcie30phy-pins { + rockchip,pins = <0x01 0x14 0x04 0x198 0x01 0x19 0x04 0x198>; + phandle = <0x3a4>; + }; + }; + + pcfg-pull-up-drv-level-0 { + drive-strength = <0x00>; + phandle = <0x2f3>; + bias-pull-up; + }; + + ddrphych0 { + + ddrphych0-pins { + rockchip,pins = <0x04 0x00 0x07 0x198 0x04 0x01 0x07 0x198 0x04 0x02 0x07 0x198 0x04 0x03 0x07 0x198>; + phandle = <0x318>; + }; + }; + + pcfg-pull-none-drv-level-10 { + drive-strength = <0x0a>; + bias-disable; + phandle = <0x454>; + }; + + pwm5 { + + pwm5m2-pins { + rockchip,pins = <0x04 0x14 0x0b 0x198>; + phandle = <0x3ce>; + }; + + pwm5m1-pins { + rockchip,pins = <0x00 0x16 0x0b 0x198>; + phandle = <0x16a>; + }; + + pwm5m0-pins { + rockchip,pins = <0x00 0x09 0x03 0x198>; + phandle = <0x3cd>; + }; + }; + + pcfg-pull-none-drv-level-3 { + drive-strength = <0x03>; + bias-disable; + phandle = <0x2ef>; + }; + + pwm10 { + + pwm10m2-pins { + rockchip,pins = <0x03 0x1b 0x0b 0x198>; + phandle = <0x3d9>; + }; + + pwm10m1-pins { + rockchip,pins = <0x04 0x1b 0x0b 0x198>; + phandle = <0x3d8>; + }; + + pwm10m0-pins { + rockchip,pins = <0x03 0x00 0x0b 0x198>; + phandle = <0x16f>; + }; + }; + + pcfg-pull-down-smt { + input-schmitt-enable; + bias-pull-down; + phandle = <0x2ff>; + }; + + gpio@fec50000 { + gpio-controller; + interrupts = <0x00 0x119 0x04>; + clocks = <0x02 0x83 0x02 0x84>; + compatible = "rockchip,gpio-bank"; + #interrupt-cells = <0x02>; + reg = <0x00 0xfec50000 0x00 0x100>; + phandle = <0x10d>; + #gpio-cells = <0x02>; + gpio-ranges = <0x197 0x00 0x80 0x20>; + interrupt-controller; + }; + + pcfg-pull-down { + bias-pull-down; + phandle = <0x2ec>; + }; + + uart4 { + + uart4m2-xfer { + rockchip,pins = <0x01 0x0a 0x0a 0x19e 0x01 0x0b 0x0a 0x19e>; + phandle = <0x42d>; + }; + + uart4-ctsn { + rockchip,pins = <0x01 0x17 0x0a 0x198>; + phandle = <0x42e>; + }; + + uart4m1-xfer { + rockchip,pins = <0x03 0x18 0x0a 0x19e 0x03 0x19 0x0a 0x19e>; + phandle = <0x163>; + }; + + uart4m0-xfer { + rockchip,pins = <0x01 0x1b 0x0a 0x19e 0x01 0x1a 0x0a 0x19e>; + phandle = <0x42c>; + }; + + uart4-rtsn { + rockchip,pins = <0x01 0x15 0x0a 0x198>; + phandle = <0x42f>; + }; + }; + + spdif0 { + + spdif0m0-tx { + rockchip,pins = <0x01 0x0e 0x03 0x198>; + phandle = <0x142>; + }; + + spdif0m1-tx { + rockchip,pins = <0x04 0x0c 0x06 0x198>; + phandle = <0x3f0>; + }; + }; + + pcfg-pull-down-drv-level-6 { + drive-strength = <0x06>; + bias-pull-down; + phandle = <0x2fd>; + }; + + pcfg-pull-up-drv-level-9 { + drive-strength = <0x09>; + phandle = <0x45c>; + bias-pull-up; + }; + + pcfg-pull-none-drv-level-1-smt { + drive-strength = <0x01>; + bias-disable; + input-schmitt-enable; + phandle = <0x19c>; + }; + + pcfg-pull-up-drv-level-11 { + drive-strength = <0x0b>; + phandle = <0x45e>; + bias-pull-up; + }; + + mcu { + + mcum1-pins { + rockchip,pins = <0x03 0x1c 0x06 0x198 0x03 0x1d 0x06 0x198>; + phandle = <0x394>; + }; + + mcum0-pins { + rockchip,pins = <0x04 0x1c 0x05 0x198 0x04 0x1d 0x05 0x198>; + phandle = <0x393>; + }; + }; + + i2c8 { + + i2c8m4-xfer { + rockchip,pins = <0x03 0x12 0x09 0x19d 0x03 0x13 0x09 0x19d>; + phandle = <0x373>; + }; + + i2c8m3-xfer { + rockchip,pins = <0x04 0x10 0x09 0x19d 0x04 0x11 0x09 0x19d>; + phandle = <0x372>; + }; + + i2c8m2-xfer { + rockchip,pins = <0x01 0x1e 0x09 0x19d 0x01 0x1f 0x09 0x19d>; + phandle = <0x371>; + }; + + i2c8m1-xfer { + rockchip,pins = <0x02 0x08 0x09 0x19d 0x02 0x09 0x09 0x19d>; + phandle = <0x374>; + }; + + i2c8m0-xfer { + rockchip,pins = <0x04 0x1a 0x09 0x19d 0x04 0x1b 0x09 0x19d>; + phandle = <0x186>; + }; + }; + + dp0 { + + dp0m0-pins { + rockchip,pins = <0x04 0x0c 0x05 0x198>; + phandle = <0x31c>; + }; + + dp0m2-pins { + rockchip,pins = <0x01 0x00 0x05 0x198>; + phandle = <0x31e>; + }; + + dp0m1-pins { + rockchip,pins = <0x00 0x14 0x0a 0x198>; + phandle = <0x31d>; + }; + }; + + pcfg-pull-none-drv-level-5-smt { + drive-strength = <0x05>; + bias-disable; + input-schmitt-enable; + phandle = <0x19b>; + }; + + pwm3 { + + pwm3m2-pins { + rockchip,pins = <0x01 0x12 0x0b 0x198>; + phandle = <0x3ca>; + }; + + pwm3m1-pins { + rockchip,pins = <0x03 0x0a 0x0b 0x198>; + phandle = <0x3c9>; + }; + + pwm3m0-pins { + rockchip,pins = <0x00 0x1c 0x03 0x198>; + phandle = <0x81>; + }; + + pwm3m3-pins { + rockchip,pins = <0x01 0x07 0x0b 0x198>; + phandle = <0x3cb>; + }; + }; + + pcfg-pull-none-drv-level-1 { + drive-strength = <0x01>; + bias-disable; + phandle = <0x2ee>; + }; + + sata2 { + + sata2m1-pins { + rockchip,pins = <0x01 0x0f 0x06 0x198>; + phandle = <0x3ed>; + }; + + sata2m0-pins { + rockchip,pins = <0x04 0x09 0x06 0x198>; + phandle = <0x3ec>; + }; + }; + + cam { + + cam0-or-cam1-switch-pin { + rockchip,pins = <0x03 0x11 0x00 0x198>; + phandle = <0x1f0>; + }; + }; + + uart2 { + + uart2-rtsn { + rockchip,pins = <0x03 0x0b 0x0a 0x198>; + phandle = <0x427>; + }; + + uart2m1-xfer { + rockchip,pins = <0x04 0x19 0x0a 0x19e 0x04 0x18 0x0a 0x19e>; + phandle = <0x161>; + }; + + uart2m0-xfer { + rockchip,pins = <0x00 0x0e 0x0a 0x19e 0x00 0x0d 0x0a 0x19e>; + phandle = <0x1ce>; + }; + + uart2-ctsn { + rockchip,pins = <0x03 0x0c 0x0a 0x198>; + phandle = <0x426>; + }; + + uart2m2-xfer { + rockchip,pins = <0x03 0x0a 0x0a 0x19e 0x03 0x09 0x0a 0x19e>; + phandle = <0x425>; + }; + }; + + pcfg-pull-down-drv-level-4 { + drive-strength = <0x04>; + bias-pull-down; + phandle = <0x2fb>; + }; + + pcfg-pull-up-drv-level-7 { + drive-strength = <0x07>; + phandle = <0x45a>; + bias-pull-up; + }; + + i2c6 { + + i2c6m4-xfer { + rockchip,pins = <0x03 0x01 0x09 0x19d 0x03 0x00 0x09 0x19d>; + phandle = <0x36c>; + }; + + i2c6m3-xfer { + rockchip,pins = <0x04 0x09 0x09 0x19d 0x04 0x08 0x09 0x19d>; + phandle = <0x36b>; + }; + + i2c6m2-xfer { + rockchip,pins = <0x02 0x13 0x09 0x19d 0x02 0x12 0x09 0x19d>; + phandle = <0x36d>; + }; + + i2c6m1-xfer { + rockchip,pins = <0x01 0x13 0x09 0x19d 0x01 0x12 0x09 0x19d>; + phandle = <0x36a>; + }; + + i2c6m0-xfer { + rockchip,pins = <0x00 0x18 0x09 0x19d 0x00 0x17 0x09 0x19d>; + phandle = <0x178>; + }; + }; + + pdm1 { + + pdm1m1-sdi3 { + rockchip,pins = <0x01 0x0a 0x02 0x198>; + phandle = <0x3c1>; + }; + + pdm1m0-clk { + rockchip,pins = <0x04 0x1d 0x02 0x198>; + phandle = <0x140>; + }; + + pdm1m1-sdi1 { + rockchip,pins = <0x01 0x08 0x02 0x198>; + phandle = <0x3bf>; + }; + + pdm1m0-sdi3 { + rockchip,pins = <0x04 0x18 0x02 0x198>; + phandle = <0x13e>; + }; + + pdm1m0-sdi1 { + rockchip,pins = <0x04 0x1a 0x02 0x198>; + phandle = <0x13c>; + }; + + pdm1m1-clk { + rockchip,pins = <0x01 0x0c 0x02 0x198>; + phandle = <0x3bb>; + }; + + pdm1m1-clk1 { + rockchip,pins = <0x01 0x0b 0x02 0x198>; + phandle = <0x3bc>; + }; + + pdm1m1-idle { + rockchip,pins = <0x01 0x0c 0x00 0x198 0x01 0x0b 0x00 0x198>; + phandle = <0x3bd>; + }; + + pdm1m0-clk1 { + rockchip,pins = <0x04 0x1c 0x02 0x198>; + phandle = <0x141>; + }; + + pdm1m1-sdi2 { + rockchip,pins = <0x01 0x09 0x02 0x198>; + phandle = <0x3c0>; + }; + + pdm1m0-idle { + rockchip,pins = <0x04 0x1d 0x00 0x198 0x04 0x1c 0x00 0x198>; + phandle = <0x13f>; + }; + + pdm1m1-sdi0 { + rockchip,pins = <0x01 0x07 0x02 0x198>; + phandle = <0x3be>; + }; + + pdm1m0-sdi2 { + rockchip,pins = <0x04 0x19 0x02 0x198>; + phandle = <0x13d>; + }; + + pdm1m0-sdi0 { + rockchip,pins = <0x04 0x1b 0x02 0x198>; + phandle = <0x13b>; + }; + }; + + cpu { + + cpu-pins { + rockchip,pins = <0x00 0x19 0x02 0x198 0x00 0x1d 0x02 0x198>; + phandle = <0x317>; + }; + }; + + gpio-func { + + tsadc-gpio-func { + rockchip,pins = <0x00 0x01 0x00 0x198>; + phandle = <0x175>; + }; + }; + + pcie20x1 { + + pcie20x1-2-button-rstn { + rockchip,pins = <0x04 0x0b 0x04 0x198>; + phandle = <0x3a3>; + }; + + pcie20x1m1-pins { + rockchip,pins = <0x04 0x0f 0x04 0x198 0x04 0x11 0x04 0x198 0x04 0x10 0x04 0x198>; + phandle = <0x3a2>; + }; + + pcie20x1m0-pins { + rockchip,pins = <0x03 0x17 0x04 0x198 0x03 0x19 0x04 0x198 0x03 0x18 0x04 0x198>; + phandle = <0x3a1>; + }; + }; + + leds { + + leds-gpio { + rockchip,pins = <0x00 0x15 0x00 0x198>; + phandle = <0x1ee>; + }; + }; + + pwm1 { + + pwm1m1-pins { + rockchip,pins = <0x01 0x1b 0x0b 0x198>; + phandle = <0x3c5>; + }; + + pwm1m0-pins { + rockchip,pins = <0x00 0x10 0x03 0x198>; + phandle = <0x7f>; + }; + + pwm1m2-pins { + rockchip,pins = <0x01 0x03 0x0b 0x198>; + phandle = <0x3c6>; + }; + }; + + sata0 { + + sata0m1-pins { + rockchip,pins = <0x01 0x0b 0x06 0x198>; + phandle = <0x3e9>; + }; + + sata0m0-pins { + rockchip,pins = <0x04 0x0e 0x06 0x198>; + phandle = <0x3e8>; + }; + }; + + refclk { + + refclk-pins { + rockchip,pins = <0x00 0x00 0x01 0x198>; + phandle = <0x3e5>; + }; + }; + + pcie30x4 { + + pcie30x4m2-pins { + rockchip,pins = <0x03 0x14 0x04 0x198 0x03 0x16 0x04 0x198 0x03 0x15 0x04 0x198>; + phandle = <0x3b1>; + }; + + pcie30x4m1-pins { + rockchip,pins = <0x04 0x0c 0x04 0x198 0x04 0x0e 0x04 0x198 0x04 0x0d 0x04 0x198>; + phandle = <0x3b0>; + }; + + pcie30x4-button-rstn { + rockchip,pins = <0x03 0x1d 0x04 0x198>; + phandle = <0x3b3>; + }; + + pcie30x4m0-pins { + rockchip,pins = <0x00 0x16 0x0c 0x198 0x00 0x18 0x0c 0x198 0x00 0x17 0x0c 0x198>; + phandle = <0x3af>; + }; + + pcie30x4m3-pins { + rockchip,pins = <0x01 0x08 0x04 0x198 0x01 0x0a 0x04 0x198 0x01 0x09 0x04 0x198>; + phandle = <0x3b2>; + }; + }; + + can2 { + + can2m1-pins { + rockchip,pins = <0x00 0x1c 0x0a 0x198 0x00 0x1d 0x0a 0x198>; + phandle = <0x30f>; + }; + + can2m0-pins { + rockchip,pins = <0x03 0x14 0x09 0x198 0x03 0x15 0x09 0x198>; + phandle = <0x147>; + }; + }; + + litcpu { + + litcpu-pins { + rockchip,pins = <0x00 0x1b 0x01 0x198>; + phandle = <0x392>; + }; + }; + + sata { + + sata-reset { + rockchip,pins = <0x04 0x11 0x00 0x198>; + phandle = <0x3e7>; + }; + + sata-pins { + rockchip,pins = <0x00 0x16 0x0d 0x198 0x00 0x1c 0x0d 0x198 0x00 0x1d 0x0d 0x198>; + phandle = <0x3e6>; + }; + }; + + tsadc { + + tsadc-shut { + rockchip,pins = <0x00 0x01 0x02 0x198>; + phandle = <0x176>; + }; + + tsadc-shut-org { + rockchip,pins = <0x00 0x01 0x01 0x198>; + phandle = <0x418>; + }; + + tsadcm1-shut { + rockchip,pins = <0x00 0x02 0x02 0x198>; + phandle = <0x417>; + }; + }; + + uart0 { + + uart0m1-xfer { + rockchip,pins = <0x00 0x08 0x04 0x19e 0x00 0x09 0x04 0x19e>; + phandle = <0x7d>; + }; + + uart0m0-xfer { + rockchip,pins = <0x00 0x14 0x04 0x19e 0x00 0x15 0x04 0x19e>; + phandle = <0x419>; + }; + + uart0-rtsn { + rockchip,pins = <0x00 0x16 0x04 0x198>; + phandle = <0x41c>; + }; + + uart0-ctsn { + rockchip,pins = <0x00 0x19 0x04 0x198>; + phandle = <0x41b>; + }; + + uart0m2-xfer { + rockchip,pins = <0x04 0x04 0x0a 0x19e 0x04 0x03 0x0a 0x19e>; + phandle = <0x41a>; + }; + }; + + pcfg-pull-down-drv-level-2 { + drive-strength = <0x02>; + bias-pull-down; + phandle = <0x2f9>; + }; + + pcfg-pull-up-drv-level-5 { + drive-strength = <0x05>; + phandle = <0x2f6>; + bias-pull-up; + }; + + gpio@fec20000 { + gpio-controller; + interrupts = <0x00 0x116 0x04>; + clocks = <0x02 0x7d 0x02 0x7e>; + compatible = "rockchip,gpio-bank"; + #interrupt-cells = <0x02>; + reg = <0x00 0xfec20000 0x00 0x100>; + phandle = <0xfe>; + #gpio-cells = <0x02>; + gpio-ranges = <0x197 0x00 0x20 0x20>; + interrupt-controller; + }; + + pcfg-pull-none-drv-level-15 { + drive-strength = <0x0f>; + bias-disable; + phandle = <0x459>; + }; + + eth1 { + + eth1-pins { + rockchip,pins = <0x03 0x06 0x01 0x198>; + phandle = <0x327>; + }; + }; + + i2c4 { + + i2c4m3-xfer { + rockchip,pins = <0x01 0x03 0x09 0x19d 0x01 0x02 0x09 0x19d>; + phandle = <0x364>; + }; + + i2c4m2-xfer { + rockchip,pins = <0x00 0x15 0x09 0x19d 0x00 0x14 0x09 0x19d>; + phandle = <0x363>; + }; + + i2c4m1-xfer { + rockchip,pins = <0x02 0x0d 0x09 0x19d 0x02 0x0c 0x09 0x19d>; + phandle = <0x14b>; + }; + + i2c4m0-xfer { + rockchip,pins = <0x03 0x06 0x09 0x19d 0x03 0x05 0x09 0x19d>; + phandle = <0x362>; + }; + + i2c4m4-xfer { + rockchip,pins = <0x01 0x17 0x09 0x19d 0x01 0x16 0x09 0x19d>; + phandle = <0x365>; + }; + }; + + emmc { + + emmc-data-strobe { + rockchip,pins = <0x02 0x02 0x01 0x198>; + phandle = <0x326>; + }; + + emmc-clk { + rockchip,pins = <0x02 0x01 0x01 0x199>; + phandle = <0x324>; + }; + + emmc-bus8 { + rockchip,pins = <0x02 0x18 0x01 0x199 0x02 0x19 0x01 0x199 0x02 0x1a 0x01 0x199 0x02 0x1b 0x01 0x199 0x02 0x1c 0x01 0x199 0x02 0x1d 0x01 0x199 0x02 0x1e 0x01 0x199 0x02 0x1f 0x01 0x199>; + phandle = <0x323>; + }; + + emmc-cmd { + rockchip,pins = <0x02 0x00 0x01 0x199>; + phandle = <0x325>; + }; + + emmc-rstnout { + rockchip,pins = <0x02 0x03 0x01 0x198>; + phandle = <0x322>; + }; + }; + + pcfg-pull-none-drv-level-8 { + drive-strength = <0x08>; + bias-disable; + phandle = <0x452>; + }; + + pwm15 { + + pwm15m0-pins { + rockchip,pins = <0x03 0x13 0x0b 0x198>; + phandle = <0x174>; + }; + + pwm15m3-pins { + rockchip,pins = <0x01 0x1f 0x0b 0x198>; + phandle = <0x3e4>; + }; + + pwm15m2-pins { + rockchip,pins = <0x01 0x16 0x0b 0x198>; + phandle = <0x3e3>; + }; + + pwm15m1-pins { + rockchip,pins = <0x04 0x0b 0x0b 0x198>; + phandle = <0x3e2>; + }; + }; + + pcie30x2 { + + pcie30x2m2-pins { + rockchip,pins = <0x03 0x1a 0x04 0x198 0x03 0x1c 0x04 0x198 0x03 0x1b 0x04 0x198>; + phandle = <0x3ac>; + }; + + pcie30x2m1-pins { + rockchip,pins = <0x04 0x06 0x04 0x198 0x04 0x08 0x04 0x198 0x04 0x07 0x04 0x198>; + phandle = <0x3ab>; + }; + + pcie30x2-button-rstn { + rockchip,pins = <0x03 0x11 0x04 0x198>; + phandle = <0x3ae>; + }; + + pcie30x2m0-pins { + rockchip,pins = <0x00 0x19 0x0c 0x198 0x00 0x1c 0x0c 0x198 0x00 0x1a 0x0c 0x198>; + phandle = <0x3aa>; + }; + + pcie30x2m3-pins { + rockchip,pins = <0x01 0x1f 0x04 0x198 0x01 0x0f 0x04 0x198 0x01 0x0e 0x04 0x198>; + phandle = <0x3ad>; + }; + }; + + can0 { + + can0m0-pins { + rockchip,pins = <0x00 0x10 0x0b 0x198 0x00 0x0f 0x0b 0x198>; + phandle = <0x145>; + }; + + can0m1-pins { + rockchip,pins = <0x04 0x1d 0x09 0x198 0x04 0x1c 0x09 0x198>; + phandle = <0x30d>; + }; + }; + + pcfg-output-high { + output-high; + phandle = <0x305>; + }; + + uart9 { + + uart9m0-rtsn { + rockchip,pins = <0x04 0x14 0x0a 0x198>; + phandle = <0x44e>; + }; + + uart9m2-ctsn { + rockchip,pins = <0x03 0x1b 0x0a 0x198>; + phandle = <0x44a>; + }; + + uart9m1-ctsn { + rockchip,pins = <0x04 0x01 0x0a 0x198>; + phandle = <0x447>; + }; + + uart9m2-xfer { + rockchip,pins = <0x03 0x1c 0x0a 0x19e 0x03 0x1d 0x0a 0x19e>; + phandle = <0x449>; + }; + + uart9m0-ctsn { + rockchip,pins = <0x04 0x15 0x0a 0x198>; + phandle = <0x44d>; + }; + + uart9m1-xfer { + rockchip,pins = <0x04 0x0d 0x0a 0x19e 0x04 0x0c 0x0a 0x19e>; + phandle = <0x168>; + }; + + uart9m0-xfer { + rockchip,pins = <0x02 0x14 0x0a 0x19e 0x02 0x12 0x0a 0x19e>; + phandle = <0x44c>; + }; + + uart9m2-rtsn { + rockchip,pins = <0x03 0x1a 0x0a 0x198>; + phandle = <0x44b>; + }; + + uart9m1-rtsn { + rockchip,pins = <0x04 0x00 0x0a 0x198>; + phandle = <0x448>; + }; + }; + + pcfg-pull-none-drv-level-2-smt { + drive-strength = <0x02>; + bias-disable; + input-schmitt-enable; + phandle = <0x301>; + }; + + pcfg-pull-up { + phandle = <0x19e>; + bias-pull-up; + }; + + spi3 { + + spi3m3-cs1 { + rockchip,pins = <0x03 0x15 0x08 0x19a>; + phandle = <0x40e>; + }; + + spi3m1-cs0 { + rockchip,pins = <0x04 0x10 0x08 0x19a>; + phandle = <0x15d>; + }; + + spi3m3-pins { + rockchip,pins = <0x03 0x18 0x08 0x19a 0x03 0x16 0x08 0x19a 0x03 0x17 0x08 0x19a>; + phandle = <0x40c>; + }; + + spi3m0-cs1 { + rockchip,pins = <0x04 0x13 0x08 0x19f>; + phandle = <0x411>; + }; + + spi3m2-cs0 { + rockchip,pins = <0x00 0x1c 0x08 0x19a>; + phandle = <0x40a>; + }; + + spi3m2-pins { + rockchip,pins = <0x00 0x1b 0x08 0x19a 0x00 0x18 0x08 0x19a 0x00 0x1a 0x08 0x19a>; + phandle = <0x409>; + }; + + spi3m1-cs1 { + rockchip,pins = <0x04 0x11 0x08 0x19a>; + phandle = <0x15e>; + }; + + spi3m1-pins { + rockchip,pins = <0x04 0x0f 0x08 0x19a 0x04 0x0d 0x08 0x19a 0x04 0x0e 0x08 0x19a>; + phandle = <0x15f>; + }; + + spi3m3-cs0 { + rockchip,pins = <0x03 0x14 0x08 0x19a>; + phandle = <0x40d>; + }; + + spi3m0-pins { + rockchip,pins = <0x04 0x16 0x08 0x19f 0x04 0x14 0x08 0x19f 0x04 0x15 0x08 0x19f>; + phandle = <0x40f>; + }; + + spi3m2-cs1 { + rockchip,pins = <0x00 0x1d 0x08 0x19a>; + phandle = <0x40b>; + }; + + spi3m0-cs0 { + rockchip,pins = <0x04 0x12 0x08 0x19f>; + phandle = <0x410>; + }; + }; + + pcfg-pull-down-drv-level-14 { + drive-strength = <0x0e>; + bias-pull-down; + phandle = <0x46a>; + }; + + bt656 { + + bt656-pins { + rockchip,pins = <0x04 0x08 0x02 0x1a0 0x04 0x00 0x02 0x1a0 0x04 0x01 0x02 0x1a0 0x04 0x02 0x02 0x1a0 0x04 0x03 0x02 0x1a0 0x04 0x04 0x02 0x1a0 0x04 0x05 0x02 0x1a0 0x04 0x06 0x02 0x1a0 0x04 0x07 0x02 0x1a0>; + phandle = <0x450>; + }; + }; + + pcfg-pull-down-drv-level-0 { + drive-strength = <0x00>; + bias-pull-down; + phandle = <0x2f7>; + }; + + pcfg-pull-up-drv-level-3 { + drive-strength = <0x03>; + phandle = <0x2f4>; + bias-pull-up; + }; + + i2s2 { + + i2s2m0-lrck { + rockchip,pins = <0x02 0x10 0x02 0x19d>; + phandle = <0x389>; + }; + + i2s2m1-mclk { + rockchip,pins = <0x03 0x0c 0x03 0x19d>; + phandle = <0x387>; + }; + + i2s2m0-mclk { + rockchip,pins = <0x02 0x0e 0x02 0x19d>; + phandle = <0x38a>; + }; + + i2s2m1-sdo { + rockchip,pins = <0x03 0x0b 0x03 0x198>; + phandle = <0x12b>; + }; + + i2s2m0-sdi { + rockchip,pins = <0x02 0x13 0x02 0x198>; + phandle = <0x38c>; + }; + + i2s2m1-idle { + rockchip,pins = <0x03 0x0e 0x00 0x198 0x03 0x0d 0x00 0x198>; + phandle = <0x12c>; + }; + + i2s2m1-sdi { + rockchip,pins = <0x03 0x0a 0x03 0x198>; + phandle = <0x12a>; + }; + + i2s2m0-idle { + rockchip,pins = <0x02 0x10 0x00 0x198 0x02 0x0f 0x00 0x198>; + phandle = <0x388>; + }; + + i2s2m1-sclk { + rockchip,pins = <0x03 0x0d 0x03 0x19d>; + phandle = <0x12e>; + }; + + i2s2m1-lrck { + rockchip,pins = <0x03 0x0e 0x03 0x19d>; + phandle = <0x12d>; + }; + + i2s2m0-sclk { + rockchip,pins = <0x02 0x0f 0x02 0x19d>; + phandle = <0x38b>; + }; + + i2s2m0-sdo { + rockchip,pins = <0x04 0x13 0x02 0x198>; + phandle = <0x38d>; + }; + }; + + pcfg-pull-none-drv-level-6-smt { + drive-strength = <0x06>; + bias-disable; + input-schmitt-enable; + phandle = <0x304>; + }; + + ddrphych3 { + + ddrphych3-pins { + rockchip,pins = <0x04 0x0c 0x07 0x198 0x04 0x0d 0x07 0x198 0x04 0x0e 0x07 0x198 0x04 0x0f 0x07 0x198>; + phandle = <0x31b>; + }; + }; + + pcfg-pull-none-drv-level-13 { + drive-strength = <0x0d>; + bias-disable; + phandle = <0x457>; + }; + + i2c2 { + + i2c2m2-xfer { + rockchip,pins = <0x02 0x03 0x09 0x19d 0x02 0x02 0x09 0x19d>; + phandle = <0x35a>; + }; + + i2c2m1-xfer { + rockchip,pins = <0x02 0x11 0x09 0x19d 0x02 0x10 0x09 0x19d>; + phandle = <0x35d>; + }; + + i2c2m0-xfer { + rockchip,pins = <0x00 0x0f 0x09 0x19d 0x00 0x10 0x09 0x19d>; + phandle = <0x149>; + }; + + i2c2m4-xfer { + rockchip,pins = <0x01 0x01 0x09 0x19d 0x01 0x00 0x09 0x19d>; + phandle = <0x35c>; + }; + + i2c2m3-xfer { + rockchip,pins = <0x01 0x15 0x09 0x19d 0x01 0x14 0x09 0x19d>; + phandle = <0x35b>; + }; + }; + + auddsm { + + auddsm-pins { + rockchip,pins = <0x03 0x01 0x04 0x198 0x03 0x02 0x04 0x198 0x03 0x03 0x04 0x198 0x03 0x04 0x04 0x198>; + phandle = <0x144>; + }; + }; + + pwm8 { + + pwm8m2-pins { + rockchip,pins = <0x03 0x18 0x0b 0x198>; + phandle = <0x3d5>; + }; + + pwm8m1-pins { + rockchip,pins = <0x04 0x18 0x0b 0x198>; + phandle = <0x3d4>; + }; + + pwm8m0-pins { + rockchip,pins = <0x03 0x07 0x0b 0x198>; + phandle = <0x16d>; + }; + }; + + pmic { + + pmic-pins { + rockchip,pins = <0x00 0x07 0x00 0x19e 0x00 0x02 0x01 0x198 0x00 0x03 0x01 0x198 0x00 0x11 0x01 0x198 0x00 0x12 0x01 0x198 0x00 0x13 0x01 0x198 0x00 0x1e 0x01 0x198>; + phandle = <0x156>; + }; + }; + + pcfg-pull-none-drv-level-6 { + drive-strength = <0x06>; + bias-disable; + phandle = <0x2f2>; + }; + + jtag { + + jtagm2-pins { + rockchip,pins = <0x00 0x0d 0x02 0x198 0x00 0x0e 0x02 0x198>; + phandle = <0x391>; + }; + + jtagm1-pins { + rockchip,pins = <0x04 0x18 0x05 0x198 0x04 0x19 0x05 0x198>; + phandle = <0x390>; + }; + + jtagm0-pins { + rockchip,pins = <0x04 0x1a 0x05 0x198 0x04 0x1b 0x05 0x198>; + phandle = <0x38f>; + }; + }; + + gpio@fd8a0000 { + gpio-controller; + interrupts = <0x00 0x115 0x04>; + clocks = <0x02 0x284 0x02 0x285>; + compatible = "rockchip,gpio-bank"; + #interrupt-cells = <0x02>; + reg = <0x00 0xfd8a0000 0x00 0x100>; + phandle = <0x7b>; + #gpio-cells = <0x02>; + gpio-ranges = <0x197 0x00 0x00 0x20>; + interrupt-controller; + }; + + gmac1 { + + gmac1-rgmii-clk { + rockchip,pins = <0x03 0x05 0x01 0x198 0x03 0x04 0x01 0x198>; + phandle = <0x111>; + }; + + gmac1-rx-bus2 { + rockchip,pins = <0x03 0x07 0x01 0x198 0x03 0x08 0x01 0x198 0x03 0x09 0x01 0x198>; + phandle = <0x110>; + }; + + gmac1-txer { + rockchip,pins = <0x03 0x0a 0x01 0x198>; + phandle = <0x332>; + }; + + gmac1-clkinout { + rockchip,pins = <0x03 0x0e 0x01 0x198>; + phandle = <0x32e>; + }; + + gmac1-ptp-ref-clk { + rockchip,pins = <0x03 0x0f 0x01 0x198>; + phandle = <0x331>; + }; + + gmac1-ppsclk { + rockchip,pins = <0x03 0x11 0x01 0x198>; + phandle = <0x32f>; + }; + + gmac1-ppstrig { + rockchip,pins = <0x03 0x10 0x01 0x198>; + phandle = <0x330>; + }; + + gmac1-rgmii-bus { + rockchip,pins = <0x03 0x02 0x01 0x198 0x03 0x03 0x01 0x198 0x03 0x00 0x01 0x19a 0x03 0x01 0x01 0x19a>; + phandle = <0x112>; + }; + + gmac1-tx-bus2 { + rockchip,pins = <0x03 0x0b 0x01 0x19a 0x03 0x0c 0x01 0x19a 0x03 0x0d 0x01 0x198>; + phandle = <0x10f>; + }; + + gmac1-miim { + rockchip,pins = <0x03 0x12 0x01 0x198 0x03 0x13 0x01 0x198>; + phandle = <0x10e>; + }; + }; + + pcfg-pull-none { + bias-disable; + phandle = <0x198>; + }; + + pwm13 { + + pwm13m2-pins { + rockchip,pins = <0x01 0x0f 0x0b 0x198>; + phandle = <0x3df>; + }; + + pwm13m1-pins { + rockchip,pins = <0x04 0x0e 0x0b 0x198>; + phandle = <0x3de>; + }; + + pwm13m0-pins { + rockchip,pins = <0x03 0x0e 0x0b 0x198>; + phandle = <0x172>; + }; + }; + + pcfg-output-high-pull-down { + output-high; + bias-pull-down; + phandle = <0x307>; + }; + + uart7 { + + uart7m1-ctsn { + rockchip,pins = <0x03 0x13 0x0a 0x198>; + phandle = <0x43b>; + }; + + uart7m2-xfer { + rockchip,pins = <0x01 0x0c 0x0a 0x19e 0x01 0x0d 0x0a 0x19e>; + phandle = <0x43d>; + }; + + uart7m0-ctsn { + rockchip,pins = <0x04 0x16 0x0a 0x198>; + phandle = <0x43f>; + }; + + uart7m1-xfer { + rockchip,pins = <0x03 0x11 0x0a 0x19e 0x03 0x10 0x0a 0x19e>; + phandle = <0x166>; + }; + + uart7m0-xfer { + rockchip,pins = <0x02 0x0c 0x0a 0x19e 0x02 0x0d 0x0a 0x19e>; + phandle = <0x43e>; + }; + + uart7m1-rtsn { + rockchip,pins = <0x03 0x12 0x0a 0x198>; + phandle = <0x43c>; + }; + + uart7m0-rtsn { + rockchip,pins = <0x04 0x12 0x0a 0x198>; + phandle = <0x440>; + }; + }; + + pcfg-pull-down-drv-level-9 { + drive-strength = <0x09>; + bias-pull-down; + phandle = <0x465>; + }; + + spi1 { + + spi1m1-cs1 { + rockchip,pins = <0x03 0x13 0x08 0x19a>; + phandle = <0x152>; + }; + + spi1m2-cs1 { + rockchip,pins = <0x01 0x1d 0x08 0x19a>; + phandle = <0x3fe>; + }; + + spi1m0-cs0 { + rockchip,pins = <0x02 0x13 0x08 0x19f>; + phandle = <0x400>; + }; + + spi1m2-pins { + rockchip,pins = <0x01 0x1a 0x08 0x19a 0x01 0x18 0x08 0x19a 0x01 0x19 0x08 0x19a>; + phandle = <0x3fc>; + }; + + spi1m1-pins { + rockchip,pins = <0x03 0x11 0x08 0x19a 0x03 0x10 0x08 0x19a 0x03 0x0f 0x08 0x19a>; + phandle = <0x153>; + }; + + spi1m1-cs0 { + rockchip,pins = <0x03 0x12 0x08 0x19a>; + phandle = <0x151>; + }; + + spi1m0-pins { + rockchip,pins = <0x02 0x10 0x08 0x19f 0x02 0x11 0x08 0x19f 0x02 0x12 0x08 0x19f>; + phandle = <0x3ff>; + }; + + spi1m0-cs1 { + rockchip,pins = <0x02 0x14 0x08 0x19f>; + phandle = <0x401>; + }; + + spi1m2-cs0 { + rockchip,pins = <0x01 0x1b 0x08 0x19a>; + phandle = <0x3fd>; + }; + }; + + pcfg-pull-up-drv-level-14 { + drive-strength = <0x0e>; + phandle = <0x461>; + bias-pull-up; + }; + + pcfg-output-low-pull-down { + bias-pull-down; + phandle = <0x30b>; + output-low; + }; + + pcfg-pull-down-drv-level-12 { + drive-strength = <0x0c>; + bias-pull-down; + phandle = <0x468>; + }; + + pcfg-pull-up-drv-level-1 { + drive-strength = <0x01>; + phandle = <0x19f>; + bias-pull-up; + }; + + pcfg-pull-none-smt { + bias-disable; + input-schmitt-enable; + phandle = <0x19d>; + }; + + sdmmc { + + sdmmc-det { + rockchip,pins = <0x00 0x04 0x01 0x19e>; + phandle = <0x116>; + }; + + sdmmc-pwren { + rockchip,pins = <0x00 0x05 0x02 0x198>; + phandle = <0x3ef>; + }; + + sdmmc-bus4 { + rockchip,pins = <0x04 0x18 0x01 0x199 0x04 0x19 0x01 0x199 0x04 0x1a 0x01 0x199 0x04 0x1b 0x01 0x199>; + phandle = <0x117>; + }; + + sdmmc-cmd { + rockchip,pins = <0x04 0x1c 0x01 0x199>; + phandle = <0x115>; + }; + + sdmmc-clk { + rockchip,pins = <0x04 0x1d 0x01 0x199>; + phandle = <0x114>; + }; + }; + + i2s0 { + + i2s0-sclk { + rockchip,pins = <0x01 0x13 0x01 0x19d>; + phandle = <0x11c>; + }; + + i2s0-sdo3 { + rockchip,pins = <0x01 0x1a 0x01 0x198>; + phandle = <0x37a>; + }; + + i2s0-lrck { + rockchip,pins = <0x01 0x15 0x01 0x19d>; + phandle = <0x11b>; + }; + + i2s0-sdo1 { + rockchip,pins = <0x01 0x18 0x01 0x198>; + phandle = <0x378>; + }; + + i2s0-sdi3 { + rockchip,pins = <0x01 0x19 0x02 0x198>; + phandle = <0x377>; + }; + + i2s0-mclk { + rockchip,pins = <0x01 0x12 0x01 0x19d>; + phandle = <0x17a>; + }; + + i2s0-sdi1 { + rockchip,pins = <0x01 0x1b 0x02 0x198>; + phandle = <0x375>; + }; + + i2s0-sdo2 { + rockchip,pins = <0x01 0x19 0x01 0x198>; + phandle = <0x379>; + }; + + i2s0-idle { + rockchip,pins = <0x01 0x15 0x00 0x198 0x01 0x13 0x00 0x198>; + phandle = <0x11f>; + }; + + i2s0-sdo0 { + rockchip,pins = <0x01 0x17 0x01 0x198>; + phandle = <0x11e>; + }; + + i2s0-sdi2 { + rockchip,pins = <0x01 0x1a 0x02 0x198>; + phandle = <0x376>; + }; + + i2s0-sdi0 { + rockchip,pins = <0x01 0x1c 0x02 0x198>; + phandle = <0x11d>; + }; + }; + + ddrphych1 { + + ddrphych1-pins { + rockchip,pins = <0x04 0x04 0x07 0x198 0x04 0x05 0x07 0x198 0x04 0x06 0x07 0x198 0x04 0x07 0x07 0x198>; + phandle = <0x319>; + }; + }; + + pcfg-pull-none-drv-level-11 { + drive-strength = <0x0b>; + bias-disable; + phandle = <0x455>; + }; + + i2c0 { + + i2c0m2-xfer { + rockchip,pins = <0x00 0x19 0x03 0x19d 0x00 0x1a 0x03 0x19d>; + phandle = <0x77>; + }; + + i2c0m1-xfer { + rockchip,pins = <0x04 0x15 0x09 0x19d 0x04 0x16 0x09 0x19d>; + phandle = <0x355>; + }; + + i2c0m0-xfer { + rockchip,pins = <0x00 0x0b 0x02 0x19d 0x00 0x06 0x02 0x19d>; + phandle = <0x354>; + }; + }; + + pwm6 { + + pwm6m2-pins { + rockchip,pins = <0x04 0x15 0x0b 0x198>; + phandle = <0x3d0>; + }; + + pwm6m1-pins { + rockchip,pins = <0x04 0x11 0x0b 0x198>; + phandle = <0x3cf>; + }; + + pwm6m0-pins { + rockchip,pins = <0x00 0x17 0x0b 0x198>; + phandle = <0x16b>; + }; + }; + + hym8563 { + + hym8563-int { + rockchip,pins = <0x00 0x08 0x00 0x198>; + phandle = <0x7a>; + }; + }; + + pcfg-pull-none-drv-level-4 { + drive-strength = <0x04>; + bias-disable; + phandle = <0x2f0>; + }; + + pcfg-output-high-pull-up { + output-high; + phandle = <0x306>; + bias-pull-up; + }; + + pwm11 { + + pwm11m3-pins { + rockchip,pins = <0x03 0x1d 0x0b 0x198>; + phandle = <0x3dc>; + }; + + pwm11m2-pins { + rockchip,pins = <0x01 0x14 0x0b 0x198>; + phandle = <0x3db>; + }; + + pwm11m1-pins { + rockchip,pins = <0x04 0x0c 0x0b 0x198>; + phandle = <0x3da>; + }; + + pwm11m0-pins { + rockchip,pins = <0x03 0x01 0x0b 0x198>; + phandle = <0x170>; + }; + }; + + bt1120 { + + bt1120-pins { + rockchip,pins = <0x04 0x08 0x02 0x198 0x04 0x00 0x02 0x198 0x04 0x01 0x02 0x198 0x04 0x02 0x02 0x198 0x04 0x03 0x02 0x198 0x04 0x04 0x02 0x198 0x04 0x05 0x02 0x198 0x04 0x06 0x02 0x198 0x04 0x07 0x02 0x198 0x04 0x0a 0x02 0x198 0x04 0x0b 0x02 0x198 0x04 0x0c 0x02 0x198 0x04 0x0d 0x02 0x198 0x04 0x0e 0x02 0x198 0x04 0x0f 0x02 0x198 0x04 0x10 0x02 0x198 0x04 0x11 0x02 0x198>; + phandle = <0x71>; + }; + }; + + pcfg-output-low-pull-up { + phandle = <0x30a>; + bias-pull-up; + output-low; + }; + + uart5 { + + uart5m1-ctsn { + rockchip,pins = <0x02 0x02 0x0a 0x198>; + phandle = <0x433>; + }; + + uart5m2-xfer { + rockchip,pins = <0x02 0x1c 0x0a 0x19e 0x02 0x1d 0x0a 0x19e>; + phandle = <0x435>; + }; + + uart5m0-ctsn { + rockchip,pins = <0x04 0x1a 0x0a 0x198>; + phandle = <0x431>; + }; + + uart5m1-xfer { + rockchip,pins = <0x03 0x15 0x0a 0x19e 0x03 0x14 0x0a 0x19e>; + phandle = <0x164>; + }; + + uart5m0-xfer { + rockchip,pins = <0x04 0x1c 0x0a 0x19e 0x04 0x1d 0x0a 0x19e>; + phandle = <0x430>; + }; + + uart5m1-rtsn { + rockchip,pins = <0x02 0x03 0x0a 0x198>; + phandle = <0x434>; + }; + + uart5m0-rtsn { + rockchip,pins = <0x04 0x1b 0x0a 0x198>; + phandle = <0x432>; + }; + }; + + sdio { + + sdiom1-pins { + rockchip,pins = <0x03 0x05 0x02 0x198 0x03 0x04 0x02 0x19e 0x03 0x00 0x02 0x19e 0x03 0x01 0x02 0x19e 0x03 0x02 0x02 0x19e 0x03 0x03 0x02 0x19e>; + phandle = <0x119>; + }; + + sdiom0-pins { + rockchip,pins = <0x02 0x0b 0x02 0x198 0x02 0x0a 0x02 0x19e 0x02 0x06 0x02 0x19e 0x02 0x07 0x02 0x19e 0x02 0x08 0x02 0x19e 0x02 0x09 0x02 0x19e>; + phandle = <0x3ee>; + }; + }; + + spdif1 { + + spdif1m0-tx { + rockchip,pins = <0x01 0x0f 0x03 0x198>; + phandle = <0x143>; + }; + + spdif1m2-tx { + rockchip,pins = <0x04 0x11 0x03 0x198>; + phandle = <0x3f2>; + }; + + spdif1m1-tx { + rockchip,pins = <0x04 0x09 0x02 0x198>; + phandle = <0x3f1>; + }; + }; + + pcfg-pull-down-drv-level-7 { + drive-strength = <0x07>; + bias-pull-down; + phandle = <0x463>; + }; + + gpio@fec30000 { + gpio-controller; + interrupts = <0x00 0x117 0x04>; + clocks = <0x02 0x7f 0x02 0x80>; + compatible = "rockchip,gpio-bank"; + #interrupt-cells = <0x02>; + reg = <0x00 0xfec30000 0x00 0x100>; + phandle = <0x79>; + #gpio-cells = <0x02>; + gpio-ranges = <0x197 0x00 0x40 0x20>; + interrupt-controller; + }; + + pcfg-pull-up-drv-level-12 { + drive-strength = <0x0c>; + phandle = <0x45f>; + bias-pull-up; + }; + + pcfg-pull-down-drv-level-10 { + drive-strength = <0x0a>; + bias-pull-down; + phandle = <0x466>; + }; + + dp1 { + + dp1m1-pins { + rockchip,pins = <0x00 0x15 0x0a 0x198>; + phandle = <0x320>; + }; + + dp1m0-pins { + rockchip,pins = <0x03 0x1d 0x05 0x198>; + phandle = <0x31f>; + }; + + dp1m2-pins { + rockchip,pins = <0x01 0x01 0x05 0x198>; + phandle = <0x321>; + }; + }; + + vop { + + vop-pins { + rockchip,pins = <0x01 0x02 0x01 0x198>; + phandle = <0x44f>; + }; + }; + + pwm4 { + + pwm4m1-pins { + rockchip,pins = <0x04 0x13 0x0b 0x198>; + phandle = <0x3cc>; + }; + + pwm4m0-pins { + rockchip,pins = <0x00 0x15 0x0b 0x198>; + phandle = <0x169>; + }; + }; + + pcfg-pull-none-drv-level-2 { + drive-strength = <0x02>; + bias-disable; + phandle = <0x1a0>; + }; + + pcfg-pull-none-drv-level-3-smt { + drive-strength = <0x03>; + bias-disable; + input-schmitt-enable; + phandle = <0x302>; + }; + + uart3 { + + uart3m2-xfer { + rockchip,pins = <0x04 0x06 0x0a 0x19e 0x04 0x05 0x0a 0x19e>; + phandle = <0x429>; + }; + + uart3m1-xfer { + rockchip,pins = <0x03 0x0e 0x0a 0x19e 0x03 0x0d 0x0a 0x19e>; + phandle = <0x162>; + }; + + uart3-ctsn { + rockchip,pins = <0x01 0x13 0x0a 0x198>; + phandle = <0x42a>; + }; + + uart3m0-xfer { + rockchip,pins = <0x01 0x10 0x0a 0x19e 0x01 0x11 0x0a 0x19e>; + phandle = <0x428>; + }; + + uart3-rtsn { + rockchip,pins = <0x01 0x12 0x0a 0x198>; + phandle = <0x42b>; + }; + }; + + pcfg-pull-down-drv-level-5 { + drive-strength = <0x05>; + bias-pull-down; + phandle = <0x2fc>; + }; + + pcfg-pull-up-drv-level-8 { + drive-strength = <0x08>; + phandle = <0x45b>; + bias-pull-up; + }; + + pcfg-pull-up-drv-level-10 { + drive-strength = <0x0a>; + phandle = <0x45d>; + bias-pull-up; + }; + + pcfg-output-low { + phandle = <0x309>; + output-low; + }; + + i2c7 { + + i2c7m3-xfer { + rockchip,pins = <0x04 0x0a 0x09 0x19d 0x04 0x0b 0x09 0x19d>; + phandle = <0x36f>; + }; + + i2c7m2-xfer { + rockchip,pins = <0x03 0x1a 0x09 0x19d 0x03 0x1b 0x09 0x19d>; + phandle = <0x36e>; + }; + + i2c7m1-xfer { + rockchip,pins = <0x04 0x13 0x09 0x19d 0x04 0x14 0x09 0x19d>; + phandle = <0x370>; + }; + + i2c7m0-xfer { + rockchip,pins = <0x01 0x18 0x09 0x19d 0x01 0x19 0x09 0x19d>; + phandle = <0x185>; + }; + }; + + pwm2 { + + pwm2m2-pins { + rockchip,pins = <0x04 0x12 0x0b 0x198>; + phandle = <0x3c8>; + }; + + pwm2m1-pins { + rockchip,pins = <0x03 0x09 0x0b 0x198>; + phandle = <0x3c7>; + }; + + pwm2m0-pins { + rockchip,pins = <0x00 0x14 0x03 0x198>; + phandle = <0x80>; + }; + }; + + pcfg-pull-none-drv-level-0 { + drive-strength = <0x00>; + bias-disable; + phandle = <0x2ed>; + }; + + sata1 { + + sata1m1-pins { + rockchip,pins = <0x01 0x01 0x06 0x198>; + phandle = <0x3eb>; + }; + + sata1m0-pins { + rockchip,pins = <0x04 0x0d 0x06 0x198>; + phandle = <0x3ea>; + }; + }; + + pmu { + + pmu-pins { + rockchip,pins = <0x00 0x05 0x03 0x198>; + phandle = <0x3c2>; + }; + }; + + hdmirx { + + hdmirx-det { + rockchip,pins = <0x01 0x1d 0x00 0x198>; + phandle = <0x1b4>; + }; + }; + + uart1 { + + uart1m0-ctsn { + rockchip,pins = <0x02 0x11 0x0a 0x198>; + phandle = <0x423>; + }; + + uart1m1-xfer { + rockchip,pins = <0x01 0x0f 0x0a 0x19e 0x01 0x0e 0x0a 0x19e>; + phandle = <0x160>; + }; + + uart1m0-xfer { + rockchip,pins = <0x02 0x0e 0x0a 0x19e 0x02 0x0f 0x0a 0x19e>; + phandle = <0x422>; + }; + + uart1m2-rtsn { + rockchip,pins = <0x00 0x17 0x0a 0x198>; + phandle = <0x421>; + }; + + uart1m1-rtsn { + rockchip,pins = <0x01 0x1e 0x0a 0x198>; + phandle = <0x41e>; + }; + + uart1m0-rtsn { + rockchip,pins = <0x02 0x10 0x0a 0x198>; + phandle = <0x424>; + }; + + uart1m2-ctsn { + rockchip,pins = <0x00 0x18 0x0a 0x198>; + phandle = <0x420>; + }; + + uart1m1-ctsn { + rockchip,pins = <0x01 0x1f 0x0a 0x198>; + phandle = <0x41d>; + }; + + uart1m2-xfer { + rockchip,pins = <0x00 0x1a 0x0a 0x19e 0x00 0x19 0x0a 0x19e>; + phandle = <0x41f>; + }; + }; + + hdmi { + + hdmim1-rx-cec { + rockchip,pins = <0x03 0x19 0x05 0x198>; + phandle = <0x338>; + }; + + hdmim0-rx-scl { + rockchip,pins = <0x00 0x1a 0x0b 0x198>; + phandle = <0x336>; + }; + + hdmim0-rx-sda { + rockchip,pins = <0x00 0x19 0x0b 0x198>; + phandle = <0x337>; + }; + + hdmim0-tx0-cec { + rockchip,pins = <0x04 0x11 0x05 0x198>; + phandle = <0xf9>; + }; + + hdmim2-rx-cec { + rockchip,pins = <0x01 0x0f 0x05 0x198>; + phandle = <0x342>; + }; + + hdmim1-rx-scl { + rockchip,pins = <0x03 0x1a 0x05 0x19d>; + phandle = <0x33a>; + }; + + hdmim1-rx-sda { + rockchip,pins = <0x03 0x1b 0x05 0x19d>; + phandle = <0x33b>; + }; + + hdmim0-tx0-scl { + rockchip,pins = <0x04 0x0f 0x05 0x19b>; + phandle = <0xfb>; + }; + + hdmim0-tx0-sda { + rockchip,pins = <0x04 0x10 0x05 0x19c>; + phandle = <0xfc>; + }; + + hdmim2-rx-scl { + rockchip,pins = <0x01 0x1e 0x05 0x198>; + phandle = <0x344>; + }; + + hdmim2-rx-sda { + rockchip,pins = <0x01 0x1f 0x05 0x198>; + phandle = <0x345>; + }; + + hdmim0-tx0-hpd { + rockchip,pins = <0x01 0x05 0x05 0x198>; + phandle = <0xfa>; + }; + + hdmim2-rx-hpdin { + rockchip,pins = <0x01 0x0e 0x05 0x198>; + phandle = <0x343>; + }; + + hdmi-debug6 { + rockchip,pins = <0x01 0x00 0x07 0x198>; + phandle = <0x350>; + }; + + hdmim2-tx0-scl { + rockchip,pins = <0x03 0x17 0x05 0x19b>; + phandle = <0x346>; + }; + + hdmim2-tx0-sda { + rockchip,pins = <0x03 0x18 0x05 0x19c>; + phandle = <0x347>; + }; + + hdmi-debug4 { + rockchip,pins = <0x01 0x0b 0x07 0x198>; + phandle = <0x34e>; + }; + + hdmim0-tx1-cec { + rockchip,pins = <0x02 0x14 0x04 0x198>; + phandle = <0x351>; + }; + + hdmim0-tx1-scl { + rockchip,pins = <0x02 0x0d 0x04 0x198>; + phandle = <0x352>; + }; + + hdmim0-tx1-sda { + rockchip,pins = <0x02 0x0c 0x04 0x198>; + phandle = <0x353>; + }; + + hdmi-debug2 { + rockchip,pins = <0x01 0x09 0x07 0x198>; + phandle = <0x34c>; + }; + + hdmim0-tx1-hpd { + rockchip,pins = <0x01 0x06 0x05 0x198>; + phandle = <0x1a9>; + }; + + hdmim1-rx { + rockchip,pins = <0x03 0x19 0x05 0x198 0x03 0x1a 0x05 0x19d 0x03 0x1b 0x05 0x19d 0x03 0x1c 0x05 0x198>; + phandle = <0x1b3>; + }; + + hdmim2-tx1-cec { + rockchip,pins = <0x03 0x14 0x05 0x198>; + phandle = <0x1a8>; + }; + + hdmi-debug0 { + rockchip,pins = <0x01 0x07 0x07 0x198>; + phandle = <0x34a>; + }; + + hdmim2-tx1-scl { + rockchip,pins = <0x01 0x04 0x05 0x19b>; + phandle = <0x348>; + }; + + hdmim2-tx1-sda { + rockchip,pins = <0x01 0x03 0x05 0x19c>; + phandle = <0x349>; + }; + + hdmim1-tx0-cec { + rockchip,pins = <0x00 0x19 0x0d 0x198>; + phandle = <0x33c>; + }; + + hdmim1-tx0-scl { + rockchip,pins = <0x00 0x1d 0x0b 0x19b>; + phandle = <0x33e>; + }; + + hdmim1-tx0-sda { + rockchip,pins = <0x00 0x1c 0x0b 0x19c>; + phandle = <0x33f>; + }; + + hdmim1-tx0-hpd { + rockchip,pins = <0x03 0x1c 0x03 0x198>; + phandle = <0x33d>; + }; + + hdmim0-rx-hpdin { + rockchip,pins = <0x04 0x0e 0x05 0x198>; + phandle = <0x335>; + }; + + hdmi-debug5 { + rockchip,pins = <0x01 0x0c 0x07 0x198>; + phandle = <0x34f>; + }; + + hdmi-debug3 { + rockchip,pins = <0x01 0x0a 0x07 0x198>; + phandle = <0x34d>; + }; + + hdmim1-tx1-cec { + rockchip,pins = <0x00 0x1a 0x0d 0x198>; + phandle = <0x340>; + }; + + hdmi-debug1 { + rockchip,pins = <0x01 0x08 0x07 0x198>; + phandle = <0x34b>; + }; + + hdmim1-tx1-scl { + rockchip,pins = <0x03 0x16 0x05 0x19b>; + phandle = <0x1aa>; + }; + + hdmim1-tx1-sda { + rockchip,pins = <0x03 0x15 0x05 0x19c>; + phandle = <0x1ab>; + }; + + hdmim1-tx1-hpd { + rockchip,pins = <0x03 0x0f 0x05 0x198>; + phandle = <0x341>; + }; + + hdmim1-rx-hpdin { + rockchip,pins = <0x03 0x1c 0x05 0x198>; + phandle = <0x339>; + }; + + hdmim0-rx-cec { + rockchip,pins = <0x04 0x0d 0x05 0x198>; + phandle = <0x334>; + }; + }; + + pcfg-pull-down-drv-level-3 { + drive-strength = <0x03>; + bias-pull-down; + phandle = <0x2fa>; + }; + + pcfg-pull-up-drv-level-6 { + drive-strength = <0x06>; + phandle = <0x19a>; + bias-pull-up; + }; + + i2c5 { + + i2c5m3-xfer { + rockchip,pins = <0x01 0x0e 0x09 0x19d 0x01 0x0f 0x09 0x19d>; + phandle = <0x368>; + }; + + i2c5m2-xfer { + rockchip,pins = <0x04 0x06 0x09 0x19d 0x04 0x07 0x09 0x19d>; + phandle = <0x367>; + }; + + i2c5m1-xfer { + rockchip,pins = <0x04 0x0e 0x09 0x19d 0x04 0x0f 0x09 0x19d>; + phandle = <0x366>; + }; + + i2c5m0-xfer { + rockchip,pins = <0x03 0x17 0x09 0x19d 0x03 0x18 0x09 0x19d>; + phandle = <0x14d>; + }; + + i2c5m4-xfer { + rockchip,pins = <0x02 0x0e 0x09 0x19d 0x02 0x0f 0x09 0x19d>; + phandle = <0x369>; + }; + }; + + pcfg-pull-none-drv-level-9 { + drive-strength = <0x09>; + bias-disable; + phandle = <0x453>; + }; + + pdm0 { + + pdm0m1-sdi3 { + rockchip,pins = <0x00 0x1e 0x02 0x198>; + phandle = <0x3ba>; + }; + + pdm0m1-clk { + rockchip,pins = <0x00 0x10 0x02 0x198>; + phandle = <0x3b4>; + }; + + pdm0m1-sdi1 { + rockchip,pins = <0x00 0x18 0x02 0x198>; + phandle = <0x3b8>; + }; + + pdm0m0-sdi3 { + rockchip,pins = <0x01 0x1b 0x03 0x198>; + phandle = <0x137>; + }; + + pdm0m0-sdi1 { + rockchip,pins = <0x01 0x19 0x03 0x198>; + phandle = <0x135>; + }; + + pdm0m1-clk1 { + rockchip,pins = <0x00 0x14 0x02 0x198>; + phandle = <0x3b5>; + }; + + pdm0m1-idle { + rockchip,pins = <0x00 0x10 0x00 0x198 0x00 0x14 0x00 0x198>; + phandle = <0x3b6>; + }; + + pdm0m0-clk1 { + rockchip,pins = <0x01 0x14 0x03 0x198>; + phandle = <0x13a>; + }; + + pdm0m1-sdi2 { + rockchip,pins = <0x00 0x1c 0x02 0x198>; + phandle = <0x3b9>; + }; + + pdm0m0-idle { + rockchip,pins = <0x01 0x16 0x00 0x198 0x01 0x14 0x00 0x198>; + phandle = <0x138>; + }; + + pdm0m1-sdi0 { + rockchip,pins = <0x00 0x17 0x02 0x198>; + phandle = <0x3b7>; + }; + + pdm0m0-sdi2 { + rockchip,pins = <0x01 0x1a 0x03 0x198>; + phandle = <0x136>; + }; + + pdm0m0-sdi0 { + rockchip,pins = <0x01 0x1d 0x03 0x198>; + phandle = <0x134>; + }; + + pdm0m0-clk { + rockchip,pins = <0x01 0x16 0x03 0x198>; + phandle = <0x139>; + }; + }; + + pcfg-output-high-pull-none { + bias-disable; + output-high; + phandle = <0x308>; + }; + + pwm0 { + + pwm0m1-pins { + rockchip,pins = <0x01 0x1a 0x0b 0x198>; + phandle = <0x3c3>; + }; + + pwm0m0-pins { + rockchip,pins = <0x00 0x0f 0x03 0x198>; + phandle = <0x7e>; + }; + + pwm0m2-pins { + rockchip,pins = <0x01 0x02 0x0b 0x198>; + phandle = <0x3c4>; + }; + }; + + cif { + + cif-dvp-clk { + rockchip,pins = <0x04 0x08 0x01 0x198 0x04 0x0a 0x01 0x198 0x04 0x0b 0x01 0x198>; + phandle = <0x311>; + }; + + cif-clk { + rockchip,pins = <0x04 0x0c 0x01 0x198>; + phandle = <0x310>; + }; + + cif-dvp-bus8 { + rockchip,pins = <0x04 0x00 0x01 0x198 0x04 0x01 0x01 0x198 0x04 0x02 0x01 0x198 0x04 0x03 0x01 0x198 0x04 0x04 0x01 0x198 0x04 0x05 0x01 0x198 0x04 0x06 0x01 0x198 0x04 0x07 0x01 0x198>; + phandle = <0x313>; + }; + + cif-dvp-bus16 { + rockchip,pins = <0x03 0x14 0x01 0x198 0x03 0x15 0x01 0x198 0x03 0x16 0x01 0x198 0x03 0x17 0x01 0x198 0x03 0x18 0x01 0x198 0x03 0x19 0x01 0x198 0x03 0x1a 0x01 0x198 0x03 0x1b 0x01 0x198>; + phandle = <0x312>; + }; + }; + + can1 { + + can1m1-pins { + rockchip,pins = <0x04 0x0a 0x0c 0x198 0x04 0x0b 0x0c 0x198>; + phandle = <0x146>; + }; + + can1m0-pins { + rockchip,pins = <0x03 0x0d 0x09 0x198 0x03 0x0e 0x09 0x198>; + phandle = <0x30e>; + }; + }; + + pcfg-output-low-pull-none { + bias-disable; + phandle = <0x30c>; + output-low; + }; + + gpio@fec40000 { + gpio-controller; + interrupts = <0x00 0x118 0x04>; + clocks = <0x02 0x81 0x02 0x82>; + compatible = "rockchip,gpio-bank"; + #interrupt-cells = <0x02>; + reg = <0x00 0xfec40000 0x00 0x100>; + phandle = <0x181>; + #gpio-cells = <0x02>; + gpio-ranges = <0x197 0x00 0x60 0x20>; + interrupt-controller; + }; + + spi4 { + + spi4m0-cs0 { + rockchip,pins = <0x01 0x13 0x08 0x19a>; + phandle = <0x187>; + }; + + spi4m1-cs0 { + rockchip,pins = <0x03 0x03 0x08 0x19a>; + phandle = <0x413>; + }; + + spi4m2-pins { + rockchip,pins = <0x01 0x02 0x08 0x19a 0x01 0x00 0x08 0x19a 0x01 0x01 0x08 0x19a>; + phandle = <0x415>; + }; + + spi4m0-cs1 { + rockchip,pins = <0x01 0x14 0x08 0x19a>; + phandle = <0x188>; + }; + + spi4m1-pins { + rockchip,pins = <0x03 0x02 0x08 0x19a 0x03 0x00 0x08 0x19a 0x03 0x01 0x08 0x19a>; + phandle = <0x412>; + }; + + spi4m2-cs0 { + rockchip,pins = <0x01 0x03 0x08 0x19a>; + phandle = <0x416>; + }; + + spi4m0-pins { + rockchip,pins = <0x01 0x12 0x08 0x19a 0x01 0x10 0x08 0x19a 0x01 0x11 0x08 0x19a>; + phandle = <0x189>; + }; + + spi4m1-cs1 { + rockchip,pins = <0x03 0x04 0x08 0x19a>; + phandle = <0x414>; + }; + }; + + pcfg-pull-down-drv-level-15 { + drive-strength = <0x0f>; + bias-pull-down; + phandle = <0x46b>; + }; + + pcfg-pull-up-smt { + input-schmitt-enable; + phandle = <0x2fe>; + bias-pull-up; + }; + + pcfg-pull-down-drv-level-1 { + drive-strength = <0x01>; + bias-pull-down; + phandle = <0x2f8>; + }; + + pcfg-pull-up-drv-level-4 { + drive-strength = <0x04>; + phandle = <0x2f5>; + bias-pull-up; + }; + + wireless-wlan { + + wifi-host-wake-irq { + rockchip,pins = <0x00 0x0a 0x00 0x198>; + phandle = <0x1ea>; + }; + }; + + wdt-pc9202 { + + wdt-en-base { + rockchip,pins = <0x00 0x14 0x00 0x198>; + phandle = <0x14c>; + }; + }; + + pcfg-pull-none-drv-level-0-smt { + drive-strength = <0x00>; + bias-disable; + input-schmitt-enable; + phandle = <0x300>; + }; + + i2s3 { + + i2s3-sdi { + rockchip,pins = <0x03 0x04 0x03 0x198>; + phandle = <0x12f>; + }; + + i2s3-idle { + rockchip,pins = <0x03 0x02 0x00 0x198 0x03 0x01 0x00 0x198>; + phandle = <0x131>; + }; + + i2s3-sclk { + rockchip,pins = <0x03 0x01 0x03 0x19d>; + phandle = <0x133>; + }; + + i2s3-lrck { + rockchip,pins = <0x03 0x02 0x03 0x19d>; + phandle = <0x132>; + }; + + i2s3-sdo { + rockchip,pins = <0x03 0x03 0x03 0x198>; + phandle = <0x130>; + }; + + i2s3-mclk { + rockchip,pins = <0x03 0x00 0x03 0x19d>; + phandle = <0x38e>; + }; + }; + + pcfg-pull-none-drv-level-14 { + drive-strength = <0x0e>; + bias-disable; + phandle = <0x458>; + }; + }; + + rkcif-mipi-lvds4-sditf-vir1 { + compatible = "rockchip,rkcif-sditf"; + status = "disabled"; + rockchip,cif = <0x1a1>; + phandle = <0x473>; + }; + + bt-sco { + #sound-dai-cells = <0x01>; + compatible = "delta,dfbmcs320"; + status = "disabled"; + phandle = <0x1d2>; + }; + + phy@fed80000 { + svid = <0xff01>; + orientation-switch; + sbu2-dc-gpios = <0x10d 0x07 0x00>; + clock-names = "refclk\0immortal\0pclk\0utmi"; + resets = <0x02 0x28 0x02 0x29 0x02 0x2a 0x02 0x2b 0x02 0x482>; + clocks = <0x02 0x2b6 0x02 0x27f 0x02 0x269 0x18d>; + compatible = "rockchip,rk3588-usbdp-phy"; + status = "okay"; + reg = <0x00 0xfed80000 0x00 0x10000>; + phandle = <0x2ea>; + rockchip,usb-grf = <0x74>; + reset-names = "init\0cmn\0lane\0pcs_apb\0pma_apb"; + rockchip,u2phy-grf = <0x18b>; + sbu1-dc-gpios = <0x10d 0x06 0x00>; + rockchip,usbdpphy-grf = <0x18c>; + rockchip,vo-grf = <0xf5>; + + dp-port { + #phy-cells = <0x00>; + status = "okay"; + phandle = <0xf6>; + }; + + port { + #address-cells = <0x01>; + #size-cells = <0x00>; + + endpoint@1 { + remote-endpoint = <0x18f>; + reg = <0x01>; + phandle = <0x17f>; + }; + + endpoint@0 { + remote-endpoint = <0x18e>; + reg = <0x00>; + phandle = <0x17e>; + }; + }; + + u3-port { + #phy-cells = <0x00>; + status = "okay"; + phandle = <0x67>; + }; + }; + + interrupt-controller@fe600000 { + #address-cells = <0x02>; + interrupts = <0x01 0x09 0x04>; + #size-cells = <0x02>; + compatible = "arm,gic-v3"; + ranges; + #interrupt-cells = <0x03>; + reg = <0x00 0xfe600000 0x00 0x10000 0x00 0xfe680000 0x00 0x100000>; + phandle = <0x01>; + interrupt-controller; + + msi-controller@fe640000 { + msi-controller; + compatible = "arm,gic-v3-its"; + reg = <0x00 0xfe640000 0x00 0x20000>; + phandle = <0x106>; + #msi-cells = <0x01>; + }; + + msi-controller@fe660000 { + msi-controller; + compatible = "arm,gic-v3-its"; + reg = <0x00 0xfe660000 0x00 0x20000>; + phandle = <0x1b6>; + #msi-cells = <0x01>; + }; + }; + + pcie-essd { + regulator-max-microvolt = <0x2625a0>; + enable-active-high; + regulator-min-microvolt = <0x2625a0>; + regulator-name = "pcie_essd"; + startup-delay-us = <0x1388>; + compatible = "regulator-fixed"; + status = "disabled"; + phandle = <0x1ba>; + vin-supply = <0x1cd>; + gpios = <0x181 0x0f 0x00>; + }; + + iommu@fdab9000 { + clock-names = "aclk0\0aclk1\0aclk2\0iface0\0iface1\0iface2"; + interrupts = <0x00 0x6e 0x04 0x00 0x6f 0x04 0x00 0x70 0x04>; + clocks = <0x02 0x12d 0x02 0x122 0x02 0x124 0x02 0x12e 0x02 0x123 0x02 0x125>; + #iommu-cells = <0x00>; + compatible = "rockchip,iommu-v2"; + status = "okay"; + interrupt-names = "npu0_mmu\0npu1_mmu\0npu2_mmu"; + reg = <0x00 0xfdab9000 0x00 0x100 0x00 0xfdaba000 0x00 0x100 0x00 0xfdaca000 0x00 0x100 0x00 0xfdada000 0x00 0x100>; + phandle = <0xb2>; + }; + + otp@fecc0000 { + #address-cells = <0x01>; + clock-names = "otpc\0apb\0arb\0phy"; + resets = <0x02 0x12a 0x02 0x129 0x02 0x12b>; + clocks = <0x02 0x96 0x02 0x95 0x02 0x97 0x02 0x99>; + #size-cells = <0x01>; + compatible = "rockchip,rk3588-otp"; + reg = <0x00 0xfecc0000 0x00 0x400>; + phandle = <0x2e7>; + reset-names = "otpc\0apb\0arb"; + + id@7 { + reg = <0x07 0x10>; + phandle = <0x2a>; + }; + + cpul-opp-info@3d { + reg = <0x3d 0x06>; + phandle = <0x20>; + }; + + cpub1-leakage@18 { + reg = <0x18 0x01>; + phandle = <0x27>; + }; + + vop-opp-info@61 { + reg = <0x61 0x06>; + phandle = <0x2e8>; + }; + + cpul-leakage@19 { + reg = <0x19 0x01>; + phandle = <0x1f>; + }; + + codec-leakage@29 { + reg = <0x29 0x01>; + phandle = <0xc6>; + }; + + cpu-version@1c { + bits = <0x03 0x03>; + reg = <0x1c 0x01>; + phandle = <0x2b>; + }; + + cpub0-leakage@17 { + reg = <0x17 0x01>; + phandle = <0x24>; + }; + + log-leakage@1a { + reg = <0x1a 0x01>; + phandle = <0x44>; + }; + + cpu-code@2 { + reg = <0x02 0x02>; + phandle = <0x2c>; + }; + + package-serial-number-low@6 { + bits = <0x05 0x03>; + reg = <0x06 0x01>; + phandle = <0xd4>; + }; + + npu-opp-info@55 { + reg = <0x55 0x06>; + phandle = <0xb5>; + }; + + package-serial-number-high@5 { + bits = <0x00 0x01>; + reg = <0x05 0x01>; + phandle = <0xd5>; + }; + + cpub01-opp-info@43 { + reg = <0x43 0x06>; + phandle = <0x25>; + }; + + dmc-opp-info@5b { + reg = <0x5b 0x06>; + phandle = <0x45>; + }; + + npu-leakage@28 { + reg = <0x28 0x01>; + phandle = <0xb4>; + }; + + gpu-leakage@1b { + reg = <0x1b 0x01>; + phandle = <0x63>; + }; + + specification-serial-number@6 { + bits = <0x00 0x05>; + reg = <0x06 0x01>; + phandle = <0x21>; + }; + + venc-opp-info@67 { + reg = <0x67 0x06>; + phandle = <0xc7>; + }; + + gpu-opp-info@4f { + reg = <0x4f 0x06>; + phandle = <0x64>; + }; + + cpub23-opp-info@49 { + reg = <0x49 0x06>; + phandle = <0x28>; + }; + }; + + i2s@fddf0000 { + power-domains = <0x60 0x1a>; + rockchip,always-on; + clock-names = "mclk_tx\0mclk_rx\0hclk"; + assigned-clocks = <0x02 0x243>; + assigned-clock-parents = <0x02 0x07>; + resets = <0x02 0x3e8>; + interrupts = <0x00 0xb9 0x04>; + clocks = <0x02 0x246 0x02 0x246 0x02 0x248>; + dma-names = "tx"; + #sound-dai-cells = <0x00>; + compatible = "rockchip,rk3588-i2s-tdm"; + rockchip,playback-only; + status = "okay"; + reg = <0x00 0xfddf0000 0x00 0x1000>; + phandle = <0x1d3>; + dmas = <0xf2 0x02>; + reset-names = "tx-m"; + rockchip,hdmi-path; + }; + + dma-controller@fea10000 { + clock-names = "apb_pclk"; + interrupts = <0x00 0x56 0x04 0x00 0x57 0x04>; + clocks = <0x02 0x78>; + arm,pl330-periph-burst; + compatible = "arm,pl330\0arm,primecell"; + reg = <0x00 0xfea10000 0x00 0x4000>; + phandle = <0x7c>; + #dma-cells = <0x01>; + }; + + pwm@febd0000 { + pinctrl-names = "active"; + pinctrl-0 = <0x169>; + clock-names = "pwm\0pclk"; + interrupts = <0x00 0x15a 0x04>; + clocks = <0x02 0x54 0x02 0x53>; + #pwm-cells = <0x03>; + compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; + status = "disabled"; + reg = <0x00 0xfebd0000 0x00 0x10>; + phandle = <0x2d2>; + }; + + rkvenc-ccu { + compatible = "rockchip,rkv-encoder-v2-ccu"; + status = "okay"; + phandle = <0xc3>; + }; + + syscon@fd58c000 { + compatible = "rockchip,rk3588-sys-grf\0syscon\0simple-mfd"; + reg = <0x00 0xfd58c000 0x00 0x1000>; + phandle = <0xc8>; + + rgb { + pinctrl-names = "default"; + pinctrl-0 = <0x71>; + compatible = "rockchip,rk3588-rgb"; + status = "disabled"; + phandle = <0x25c>; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x00>; + + endpoint@2 { + remote-endpoint = <0x3d>; + status = "disabled"; + reg = <0x02>; + phandle = <0xf0>; + }; + }; + }; + }; + }; + + spi@fe2b0000 { + #address-cells = <0x01>; + clock-names = "clk_sfc\0hclk_sfc"; + assigned-clocks = <0x02 0x13d>; + assigned-clock-rates = <0x5f5e100>; + interrupts = <0x00 0xce 0x04>; + clocks = <0x02 0x13d 0x02 0x13e>; + #size-cells = <0x00>; + compatible = "rockchip,sfc"; + status = "disabled"; + reg = <0x00 0xfe2b0000 0x00 0x4000>; + phandle = <0x292>; + }; + + qos@fdf82200 { + compatible = "syscon"; + reg = <0x00 0xfdf82200 0x00 0x20>; + phandle = <0x9e>; + }; + + mmc@fe2c0000 { + power-domains = <0x60 0x28>; + fifo-depth = <0x100>; + pinctrl-names = "default"; + pinctrl-0 = <0x114 0x115 0x116 0x117>; + clock-names = "biu\0ciu\0ciu-drive\0ciu-sample"; + cap-sd-highspeed; + vqmmc-supply = <0x118>; + no-mmc; + bus-width = <0x04>; + no-sdio; + interrupts = <0x00 0xcb 0x04>; + clocks = <0x0e 0x17 0x0e 0x09 0x02 0x2c2 0x02 0x2c3>; + compatible = "rockchip,rk3588-dw-mshc\0rockchip,rk3288-dw-mshc"; + status = "okay"; + disable-wp; + reg = <0x00 0xfe2c0000 0x00 0x4000>; + phandle = <0x293>; + sd-uhs-sdr104; + max-frequency = <0x8f0d180>; + cap-mmc-highspeed; + }; + + serial@feb80000 { + reg-io-width = <0x04>; + pinctrl-names = "default"; + pinctrl-0 = <0x164>; + clock-names = "baudclk\0apb_pclk"; + interrupts = <0x00 0x150 0x04>; + clocks = <0x02 0xc7 0x02 0xaf>; + compatible = "rockchip,rk3588-uart\0snps,dw-apb-uart"; + status = "disabled"; + reg = <0x00 0xfeb80000 0x00 0x100>; + phandle = <0x2cd>; + dmas = <0xf1 0x0b 0xf1 0x0c>; + reg-shift = <0x02>; + }; + + phy@fee10000 { + rockchip,pipe-grf = <0x76>; + clock-names = "refclk\0apbclk\0phpclk"; + assigned-clocks = <0x02 0x2be>; + assigned-clock-rates = <0x5f5e100>; + resets = <0x02 0x20006 0x02 0x4d7>; + clocks = <0x02 0x2be 0x02 0x186 0x02 0x166>; + #phy-cells = <0x01>; + compatible = "rockchip,rk3588-naneng-combphy"; + status = "disabled"; + rockchip,pipe-phy-grf = <0x1cb>; + reg = <0x00 0xfee10000 0x00 0x100>; + phandle = <0x1bc>; + reset-names = "combphy-apb\0combphy"; + rockchip,pcie1ln-sel-bits = <0x100 0x00 0x00 0x00>; + }; + + can@fea60000 { + pinctrl-names = "default"; + pinctrl-0 = <0x146>; + clock-names = "baudclk\0apb_pclk"; + assigned-clocks = <0x02 0x72>; + assigned-clock-rates = <0xbebc200>; + resets = <0x02 0xbb 0x02 0xba>; + interrupts = <0x00 0x156 0x04>; + clocks = <0x02 0x72 0x02 0x71>; + compatible = "rockchip,can-2.0"; + status = "okay"; + tx-fifo-depth = <0x01>; + rx-fifo-depth = <0x06>; + reg = <0x00 0xfea60000 0x00 0x1000>; + phandle = <0x2a1>; + reset-names = "can\0can-apb"; + }; + + pdm@fe4c0000 { + power-domains = <0x60 0x26>; + pinctrl-names = "default\0idle\0clk"; + pinctrl-2 = <0x140 0x141>; + pinctrl-0 = <0x13b 0x13c 0x13d 0x13e>; + clock-names = "pdm_clk\0pdm_hclk"; + assigned-clocks = <0x02 0x3b>; + assigned-clock-parents = <0x02 0x05>; + clocks = <0x02 0x3b 0x02 0x3a>; + dma-names = "rx"; + #sound-dai-cells = <0x00>; + compatible = "rockchip,rk3588-pdm"; + pinctrl-1 = <0x13f>; + status = "disabled"; + reg = <0x00 0xfe4c0000 0x00 0x1000>; + phandle = <0x29b>; + dmas = <0xf1 0x04>; + }; + + rkcif-mipi-lvds3-sditf-vir2 { + compatible = "rockchip,rkcif-sditf"; + status = "disabled"; + rockchip,cif = <0x57>; + phandle = <0x239>; + }; + + qos@fdf66e00 { + compatible = "syscon"; + reg = <0x00 0xfdf66e00 0x00 0x20>; + phandle = <0x9a>; + }; + + usb@fc800000 { + power-domains = <0x60 0x1f>; + phy-names = "usb2-phy"; + clock-names = "usbhost\0arbiter\0utmi\0alk_usb"; + companion = <0x6b>; + interrupts = <0x00 0xd7 0x04>; + clocks = <0x02 0x19d 0x02 0x19e 0x69 0x6a>; + compatible = "rockchip,rk3588-ehci\0generic-ehci"; + status = "okay"; + phys = <0x6c>; + reg = <0x00 0xfc800000 0x00 0x40000>; + phandle = <0x254>; + }; + + i2c@fd880000 { + pinctrl-names = "default"; + #address-cells = <0x01>; + pinctrl-0 = <0x77>; + clock-names = "i2c\0pclk"; + resets = <0x02 0xc0022 0x02 0xc0021>; + interrupts = <0x00 0x13d 0x04>; + clocks = <0x02 0x287 0x02 0x286>; + #size-cells = <0x00>; + compatible = "rockchip,rk3588-i2c\0rockchip,rk3399-i2c"; + status = "okay"; + reg = <0x00 0xfd880000 0x00 0x1000>; + phandle = <0x25f>; + reset-names = "i2c\0apb"; + + hym8563@51 { + pinctrl-names = "default"; + clock-output-names = "hym8563"; + pinctrl-0 = <0x7a>; + wakeup-source; + interrupts = <0x08 0x08>; + #clock-cells = <0x00>; + interrupt-parent = <0x7b>; + clock-frequency = <0x8000>; + compatible = "haoyu,hym8563"; + status = "okay"; + reg = <0x51>; + phandle = <0x1e4>; + }; + + rk8602@42 { + regulator-max-microvolt = <0x100590>; + regulator-boot-on; + rockchip,suspend-voltage-selector = <0x01>; + regulator-always-on; + regulator-min-microvolt = <0x86470>; + regulator-name = "vdd_cpu_big0_s0"; + regulator-ramp-delay = <0x8fc>; + compatible = "rockchip,rk8602"; + reg = <0x42>; + phandle = <0x18>; + vin-supply = <0x78>; + regulator-compatible = "rk860x-reg"; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + rk8603@43 { + regulator-max-microvolt = <0x100590>; + regulator-boot-on; + rockchip,suspend-voltage-selector = <0x01>; + regulator-always-on; + regulator-min-microvolt = <0x86470>; + regulator-name = "vdd_cpu_big1_s0"; + regulator-ramp-delay = <0x8fc>; + compatible = "rockchip,rk8603"; + reg = <0x43>; + phandle = <0x1c>; + vin-supply = <0x78>; + regulator-compatible = "rk860x-reg"; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + pc9202@3c { + index = <0x00>; + compatible = "firefly,pc9202"; + status = "okay"; + wd-en-gpio = <0x79 0x15 0x00>; + driver-names = "wdt_core"; + reg = <0x3c>; + }; + }; + + rkcif-mipi-lvds3-sditf { + compatible = "rockchip,rkcif-sditf"; + status = "disabled"; + rockchip,cif = <0x57>; + phandle = <0x237>; + }; + + serial@fd890000 { + reg-io-width = <0x04>; + pinctrl-names = "default"; + pinctrl-0 = <0x7d>; + clock-names = "baudclk\0apb_pclk"; + interrupts = <0x00 0x14b 0x04>; + clocks = <0x02 0x2ae 0x02 0x2af>; + compatible = "rockchip,rk3588-uart\0snps,dw-apb-uart"; + status = "disabled"; + reg = <0x00 0xfd890000 0x00 0x100>; + phandle = <0x260>; + dmas = <0x7c 0x06 0x7c 0x07>; + reg-shift = <0x02>; + }; + + qos@fdf70000 { + compatible = "syscon"; + reg = <0x00 0xfdf70000 0x00 0x20>; + phandle = <0x85>; + }; + + gpu-opp-table { + rockchip,pvtm-offset = <0x1c>; + rockchip,pvtm-sample-time = <0x44c>; + rockchip,pvtm-hw = <0x04>; + nvmem-cells = <0x63 0x64 0x21>; + rockchip,low-temp = <0x2710>; + rockchip,pvtm-voltage-sel-hw = <0x00 0x31f 0x00 0x320 0x333 0x01 0x334 0x34c 0x02 0x34d 0x365 0x03 0x366 0x37e 0x04 0x37f 0x270f 0x05>; + rockchip,pvtm-thermal-zone = "gpu-thermal"; + rockchip,high-temp-max-freq = "\0\f5"; + rockchip,opp-clocks = <0x02 0x114>; + rockchip,pvtm-freq = "\0\f5"; + rockchip,pvtm-ref-temp = <0x19>; + low-volt-mem-read-margin = <0x04>; + volt-mem-read-margin = <0xd0bd8 0x01 0xbac48 0x02 0xa4cb8 0x03 0x78d98 0x04>; + compatible = "operating-points-v2"; + rockchip,low-temp-min-volt = <0xb71b0>; + rockchip,grf = <0x65>; + nvmem-cell-names = "leakage\0opp-info\0specification_serial_number"; + rockchip,pvtm-voltage-sel = <0x00 0x32f 0x00 0x330 0x343 0x01 0x344 0x35c 0x02 0x35d 0x375 0x03 0x376 0x38e 0x04 0x38f 0x270f 0x05>; + phandle = <0x61>; + rockchip,pvtm-temp-prop = <0xffffff79 0xffffff79>; + rockchip,temp-hysteresis = <0x1388>; + rockchip,high-temp = <0x14c08>; + rockchip,pvtm-pvtpll; + rockchip,supported-hw; + intermediate-threshold-freq = <0x61a80>; + rockchip,pvtm-volt = <0xb71b0>; + + opp-j-m-700000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; + opp-hz = <0x00 0x29b92700>; + opp-supported-hw = <0x06 0xffff>; + }; + + opp-300000000 { + opp-microvolt = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + opp-hz = <0x00 0x11e1a300>; + opp-supported-hw = <0xf9 0xffff>; + }; + + opp-500000000 { + opp-microvolt = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + opp-hz = <0x00 0x1dcd6500>; + opp-supported-hw = <0xf9 0xffff>; + }; + + opp-m-800000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; + opp-hz = <0x00 0x2faf0800>; + opp-supported-hw = <0x02 0xffff>; + }; + + opp-j-850000000 { + opp-microvolt = <0xc042c 0xc042c 0xcf850 0xc042c 0xc042c 0xcf850>; + opp-microvolt-L4 = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; + opp-microvolt-L2 = <0xba284 0xba284 0xcf850 0xba284 0xba284 0xcf850>; + opp-hz = <0x00 0x32a9f880>; + opp-supported-hw = <0x04 0xffff>; + opp-microvolt-L5 = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; + opp-microvolt-L3 = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; + opp-microvolt-L1 = <0xbd358 0xbd358 0xcf850 0xbd358 0xbd358 0xcf850>; + }; + + opp-j-m-400000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; + opp-hz = <0x00 0x17d78400>; + opp-supported-hw = <0x06 0xffff>; + }; + + opp-700000000 { + opp-microvolt = <0xaae60 0xaae60 0xcf850 0xaae60 0xaae60 0xcf850>; + opp-microvolt-L4 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + opp-microvolt-L2 = <0xa7d8c 0xa7d8c 0xcf850 0xa7d8c 0xa7d8c 0xcf850>; + opp-hz = <0x00 0x29b92700>; + opp-supported-hw = <0xf9 0xffff>; + opp-microvolt-L5 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + opp-microvolt-L3 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + }; + + opp-j-m-600000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; + opp-hz = <0x00 0x23c34600>; + opp-supported-hw = <0x06 0xffff>; + }; + + opp-900000000 { + opp-microvolt = <0xc3500 0xc3500 0xcf850 0xc3500 0xc3500 0xcf850>; + opp-microvolt-L4 = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; + opp-microvolt-L2 = <0xbd358 0xbd358 0xcf850 0xbd358 0xbd358 0xcf850>; + opp-hz = <0x00 0x35a4e900>; + opp-supported-hw = <0xf9 0xffff>; + opp-microvolt-L5 = <0xb40dc 0xb40dc 0xcf850 0xb40dc 0xb40dc 0xcf850>; + opp-microvolt-L3 = <0xba284 0xba284 0xcf850 0xba284 0xba284 0xcf850>; + opp-microvolt-L1 = <0xc042c 0xc042c 0xcf850 0xc042c 0xc042c 0xcf850>; + }; + + opp-m-1000000000 { + opp-microvolt = <0xcf850 0xcf850 0xcf850 0xcf850 0xcf850 0xcf850>; + opp-microvolt-L4 = <0xc3500 0xc3500 0xcf850 0xc3500 0xc3500 0xcf850>; + opp-microvolt-L2 = <0xc96a8 0xc96a8 0xcf850 0xc96a8 0xc96a8 0xcf850>; + opp-hz = <0x00 0x3b9aca00>; + opp-supported-hw = <0x02 0xffff>; + opp-microvolt-L5 = <0xc042c 0xc042c 0xcf850 0xc042c 0xc042c 0xcf850>; + opp-microvolt-L3 = <0xc65d4 0xc65d4 0xcf850 0xc65d4 0xc65d4 0xcf850>; + opp-microvolt-L1 = <0xcc77c 0xcc77c 0xcf850 0xcc77c 0xcc77c 0xcf850>; + }; + + opp-400000000 { + opp-microvolt = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + opp-hz = <0x00 0x17d78400>; + opp-supported-hw = <0xf9 0xffff>; + }; + + opp-j-m-300000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; + opp-hz = <0x00 0x11e1a300>; + opp-supported-hw = <0x06 0xffff>; + }; + + opp-600000000 { + opp-microvolt = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + opp-hz = <0x00 0x23c34600>; + opp-supported-hw = <0xf9 0xffff>; + }; + + opp-m-900000000 { + opp-microvolt = <0xc3500 0xc3500 0xcf850 0xc3500 0xc3500 0xcf850>; + opp-microvolt-L4 = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; + opp-microvolt-L2 = <0xbd358 0xbd358 0xcf850 0xbd358 0xbd358 0xcf850>; + opp-hz = <0x00 0x35a4e900>; + opp-supported-hw = <0x02 0xffff>; + opp-microvolt-L5 = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; + opp-microvolt-L3 = <0xba284 0xba284 0xcf850 0xba284 0xba284 0xcf850>; + opp-microvolt-L1 = <0xc042c 0xc042c 0xcf850 0xc042c 0xc042c 0xcf850>; + }; + + opp-1000000000 { + opp-microvolt = <0xcf850 0xcf850 0xcf850 0xcf850 0xcf850 0xcf850>; + opp-microvolt-L4 = <0xc3500 0xc3500 0xcf850 0xc3500 0xc3500 0xcf850>; + opp-microvolt-L2 = <0xc96a8 0xc96a8 0xcf850 0xc96a8 0xc96a8 0xcf850>; + opp-hz = <0x00 0x3b9aca00>; + opp-supported-hw = <0xf9 0xffff>; + opp-microvolt-L5 = <0xc042c 0xc042c 0xcf850 0xc042c 0xc042c 0xcf850>; + opp-microvolt-L3 = <0xc65d4 0xc65d4 0xcf850 0xc65d4 0xc65d4 0xcf850>; + opp-microvolt-L1 = <0xcc77c 0xcc77c 0xcf850 0xcc77c 0xcc77c 0xcf850>; + }; + + opp-j-m-500000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; + opp-hz = <0x00 0x1dcd6500>; + opp-supported-hw = <0x06 0xffff>; + }; + + opp-800000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; + opp-microvolt-L4 = <0xaae60 0xaae60 0xcf850 0xaae60 0xaae60 0xcf850>; + opp-microvolt-L2 = <0xb1008 0xb1008 0xcf850 0xb1008 0xb1008 0xcf850>; + opp-hz = <0x00 0x2faf0800>; + opp-supported-hw = <0xf9 0xffff>; + opp-microvolt-L5 = <0xaae60 0xaae60 0xcf850 0xaae60 0xaae60 0xcf850>; + opp-microvolt-L3 = <0xadf34 0xadf34 0xcf850 0xadf34 0xadf34 0xcf850>; + opp-microvolt-L1 = <0xb40dc 0xb40dc 0xcf850 0xb40dc 0xb40dc 0xcf850>; + }; + }; + + csi2-dphy1-hw@fedc8000 { + clock-names = "pclk"; + resets = <0x02 0x19 0x02 0x18>; + clocks = <0x02 0x10d>; + compatible = "rockchip,rk3588-csi2-dphy-hw"; + status = "okay"; + rockchip,grf = <0x193>; + reg = <0x00 0xfedc8000 0x00 0x8000>; + phandle = <0x2e>; + reset-names = "srst_csiphy1\0srst_p_csiphy1"; + rockchip,sys_grf = <0xc8>; + }; + + hdcp@fde40000 { + power-domains = <0x60 0x19>; + clock-names = "aclk\0pclk\0hclk\0hclk_key\0aclk_trng\0pclk_trng"; + resets = <0x02 0x37f 0x02 0x37d 0x02 0x37c 0x02 0x37b 0x02 0x381>; + interrupts = <0x00 0x9f 0x04>; + clocks = <0x02 0x1ed 0x02 0x1ef 0x02 0x1ee 0x02 0x1ec 0x02 0x1f1 0x02 0x1f2>; + compatible = "rockchip,rk3588-hdcp"; + status = "disabled"; + reg = <0x00 0xfde40000 0x00 0x80>; + phandle = <0x285>; + reset-names = "hdcp\0h_hdcp\0a_hdcp\0hdcp_key\0trng"; + rockchip,vo-grf = <0xf5>; + }; + + iommu@fdbac800 { + power-domains = <0x60 0x15>; + clock-names = "aclk\0iface"; + interrupts = <0x00 0x7f 0x04>; + clocks = <0x02 0x1b2 0x02 0x1b3>; + #iommu-cells = <0x00>; + compatible = "rockchip,iommu-v2"; + status = "okay"; + interrupt-names = "irq_jpege3_mmu"; + reg = <0x00 0xfdbac800 0x00 0x40>; + phandle = <0xc0>; + }; + + qos@fdf40400 { + compatible = "syscon"; + reg = <0x00 0xfdf40400 0x00 0x20>; + phandle = <0xa2>; + }; + + rga@fdb70000 { + power-domains = <0x60 0x1e>; + iommus = <0xba>; + clock-names = "aclk_rga3_1\0hclk_rga3_1\0clk_rga3_1"; + interrupts = <0x00 0x73 0x04>; + clocks = <0x02 0x18a 0x02 0x189 0x02 0x18b>; + compatible = "rockchip,rga3_core1"; + status = "okay"; + interrupt-names = "rga3_core1_irq"; + reg = <0x00 0xfdb70000 0x00 0x1000>; + phandle = <0x26a>; + }; + + spi@feb00000 { + pinctrl-names = "default"; + #address-cells = <0x01>; + num-cs = <0x02>; + pinctrl-0 = <0x14e 0x14f 0x150>; + clock-names = "spiclk\0apb_pclk"; + interrupts = <0x00 0x146 0x04>; + clocks = <0x02 0xa3 0x02 0x9e>; + #size-cells = <0x00>; + dma-names = "tx\0rx"; + compatible = "rockchip,rk3066-spi"; + status = "disabled"; + reg = <0x00 0xfeb00000 0x00 0x1000>; + phandle = <0x2ab>; + dmas = <0x7c 0x0e 0x7c 0x0f>; + }; + + pcie@fe170000 { + #address-cells = <0x03>; + rockchip,pipe-grf = <0x76>; + phy-names = "pcie-phy"; + bus-range = <0x20 0x2f>; + clock-names = "aclk_mst\0aclk_slv\0aclk_dbi\0pclk\0aux\0pipe"; + reg-names = "pcie-apb\0pcie-dbi"; + num-ob-windows = <0x08>; + resets = <0x02 0x20f 0x02 0x21e>; + interrupts = <0x00 0xf3 0x04 0x00 0xf2 0x04 0x00 0xf1 0x04 0x00 0xf0 0x04 0x00 0xef 0x04>; + clocks = <0x02 0x150 0x02 0x155 0x02 0x14b 0x02 0x15b 0x02 0x160 0x02 0x2c4>; + interrupt-map = <0x00 0x00 0x00 0x01 0x1bb 0x00 0x00 0x00 0x00 0x02 0x1bb 0x01 0x00 0x00 0x00 0x03 0x1bb 0x02 0x00 0x00 0x00 0x04 0x1bb 0x03>; + #size-cells = <0x02>; + max-link-speed = <0x02>; + device_type = "pci"; + interrupt-map-mask = <0x00 0x00 0x00 0x07>; + num-lanes = <0x01>; + compatible = "rockchip,rk3588-pcie\0snps,dw-pcie"; + ranges = <0x800 0x00 0xf2000000 0x00 0xf2000000 0x00 0x100000 0x81000000 0x00 0xf2100000 0x00 0xf2100000 0x00 0x100000 0x82000000 0x00 0xf2200000 0x00 0xf2200000 0x00 0xe00000 0xc3000000 0x09 0x80000000 0x09 0x80000000 0x00 0x40000000>; + msi-map = <0x2000 0x106 0x2000 0x1000>; + #interrupt-cells = <0x01>; + status = "disabled"; + interrupt-names = "sys\0pmc\0msg\0legacy\0err"; + phys = <0x1bc 0x02>; + num-viewport = <0x04>; + reg = <0x00 0xfe170000 0x00 0x10000 0x0a 0x40800000 0x00 0x400000>; + linux,pci-domain = <0x02>; + phandle = <0x487>; + reset-names = "pcie\0periph"; + num-ib-windows = <0x08>; + + legacy-interrupt-controller { + #address-cells = <0x00>; + interrupts = <0x00 0xf0 0x01>; + interrupt-parent = <0x01>; + #interrupt-cells = <0x01>; + phandle = <0x1bb>; + interrupt-controller; + }; + }; + + i2s@fe470000 { + power-domains = <0x60 0x26>; + pinctrl-names = "default\0idle\0clk"; + pinctrl-2 = <0x11b 0x11c>; + pinctrl-0 = <0x11b 0x11c 0x11d 0x11e>; + clock-names = "mclk_tx\0mclk_rx\0hclk"; + assigned-clocks = <0x02 0x31 0x02 0x35>; + assigned-clock-parents = <0x02 0x05 0x02 0x05>; + resets = <0x02 0x77 0x02 0x7a>; + interrupts = <0x00 0xb4 0x04>; + clocks = <0x02 0x33 0x02 0x37 0x02 0x30>; + dma-names = "tx\0rx"; + #sound-dai-cells = <0x00>; + compatible = "rockchip,rk3588-i2s-tdm"; + pinctrl-1 = <0x11f>; + status = "okay"; + reg = <0x00 0xfe470000 0x00 0x1000>; + phandle = <0x1da>; + dmas = <0x7c 0x00 0x7c 0x01>; + reset-names = "tx-m\0rx-m"; + rockchip,clk-trcm = <0x01>; + }; + + syscon@fd594000 { + compatible = "rockchip,rk3588-litcore-grf\0syscon"; + reg = <0x00 0xfd594000 0x00 0x100>; + phandle = <0x22>; + }; + + csi2-dphy5 { + rockchip,hw = <0x2d 0x2e>; + phy-names = "dcphy0\0dcphy1"; + compatible = "rockchip,rk3588-csi2-dphy"; + status = "disabled"; + phys = <0x2f 0x30>; + phandle = <0x214>; + }; + + usb@fc840000 { + power-domains = <0x60 0x1f>; + phy-names = "usb2-phy"; + clock-names = "usbhost\0arbiter\0utmi\0alk_usb"; + interrupts = <0x00 0xd8 0x04>; + clocks = <0x02 0x19d 0x02 0x19e 0x69 0x6a>; + compatible = "rockchip,rk3588-ohci\0generic-ohci"; + status = "okay"; + phys = <0x6c>; + reg = <0x00 0xfc840000 0x00 0x40000>; + phandle = <0x6b>; + }; + + syscon@fd5b0000 { + compatible = "rockchip,rk3588-php-grf\0syscon"; + reg = <0x00 0xfd5b0000 0x00 0x1000>; + phandle = <0x76>; + }; + + rkcif-mipi-lvds2-sditf-vir3 { + compatible = "rockchip,rkcif-sditf"; + status = "disabled"; + rockchip,cif = <0x55>; + phandle = <0x236>; + }; + + rkisp1-vir1 { + rockchip,hw = <0x5a>; + compatible = "rockchip,rkisp-vir"; + status = "disabled"; + phandle = <0x240>; + }; + + i2c@feaa0000 { + pinctrl-names = "default"; + #address-cells = <0x01>; + pinctrl-0 = <0x149>; + clock-names = "i2c\0pclk"; + resets = <0x02 0xb1 0x02 0xa9>; + interrupts = <0x00 0x13f 0x04>; + clocks = <0x02 0x8e 0x02 0x86>; + #size-cells = <0x00>; + compatible = "rockchip,rk3588-i2c\0rockchip,rk3399-i2c"; + status = "disabled"; + reg = <0x00 0xfeaa0000 0x00 0x1000>; + phandle = <0x2a5>; + reset-names = "i2c\0apb"; + }; + + dmc { + downdifferential = <0x14>; + clock-names = "dmc_clk"; + interrupts = <0x00 0x49 0x04>; + clocks = <0x0e 0x04>; + upthreshold = <0x28>; + center-supply = <0x42>; + devfreq-events = <0x40>; + compatible = "rockchip,rk3588-dmc"; + status = "disabled"; + interrupt-names = "complete"; + mem-supply = <0x43>; + phandle = <0x21f>; + operating-points-v2 = <0x41>; + system-status-level = <0x01 0x04 0x08 0x08 0x02 0x01 0x10 0x04 0x10000 0x04 0x80000 0x04 0x1000 0x08 0x4000 0x08 0x2000 0x08 0xc00 0x08 0x40000 0x08 0x200000 0x08>; + auto-freq-en = <0x01>; + }; + + hdmi1-sound { + rockchip,jack-det; + rockchip,cpu = <0x1e0>; + rockchip,codec = <0x1e1>; + rockchip,card-name = "rockchip-hdmi1"; + compatible = "rockchip,hdmi"; + status = "disabled"; + phandle = <0x4a8>; + rockchip,mclk-fs = <0x80>; + }; + + qos@fdf3d800 { + compatible = "syscon"; + reg = <0x00 0xfdf3d800 0x00 0x20>; + phandle = <0xb0>; + }; + + mipi-dcphy-dummy { + phandle = <0x223>; + }; + + jpege-core@fdbac000 { + power-domains = <0x60 0x15>; + iommus = <0xc0>; + rockchip,ccu = <0xbd>; + clock-names = "aclk_vcodec\0hclk_vcodec"; + assigned-clocks = <0x02 0x1b2>; + rockchip,normal-rates = <0x2367b880 0x00>; + assigned-clock-rates = <0x2367b880>; + resets = <0x02 0x2d0 0x02 0x2d1>; + interrupts = <0x00 0x80 0x04>; + clocks = <0x02 0x1b2 0x02 0x1b3>; + rockchip,srv = <0xb8>; + rockchip,taskqueue-node = <0x02>; + rockchip,disable-auto-freq; + compatible = "rockchip,vpu-jpege-core"; + status = "okay"; + interrupt-names = "irq_jpege3"; + rockchip,skip-pmu-idle-request; + reg = <0x00 0xfdbac000 0x00 0x400>; + phandle = <0x270>; + reset-names = "video_a\0video_h"; + }; + + iommu@fdce0800 { + power-domains = <0x60 0x1b>; + clock-names = "aclk\0iface"; + interrupts = <0x00 0x71 0x04>; + clocks = <0x02 0x1e4 0x02 0x1e5>; + #iommu-cells = <0x00>; + compatible = "rockchip,iommu-v2"; + rockchip,disable-mmu-reset; + status = "okay"; + interrupt-names = "cif_mmu"; + reg = <0x00 0xfdce0800 0x00 0x100 0x00 0xfdce0900 0x00 0x100>; + phandle = <0x50>; + }; + + qos@fdf35400 { + compatible = "syscon"; + reg = <0x00 0xfdf35400 0x00 0x20>; + phandle = <0x89>; + }; + + syscon@fd5a8000 { + clocks = <0x73>; + compatible = "rockchip,rk3588-vo-grf\0syscon"; + reg = <0x00 0xfd5a8000 0x00 0x100>; + phandle = <0xd8>; + }; + + dp0-sound { + rockchip,jack-det; + rockchip,cpu = <0x1d5>; + rockchip,codec = <0x1d6 0x01>; + rockchip,card-name = "rockchip-dp0"; + compatible = "rockchip,hdmi"; + status = "disabled"; + phandle = <0x49c>; + rockchip,mclk-fs = <0x200>; + }; + + rkcif-mipi-lvds4 { + iommus = <0x50>; + rockchip,hw = <0x4f>; + compatible = "rockchip,rkcif-mipi-lvds"; + status = "disabled"; + phandle = <0x1a1>; + }; + + usb@fc880000 { + power-domains = <0x60 0x1f>; + phy-names = "usb2-phy"; + clock-names = "usbhost\0arbiter\0utmi\0alk_usb"; + companion = <0x6e>; + interrupts = <0x00 0xda 0x04>; + clocks = <0x02 0x19f 0x02 0x1a0 0x6d 0x6a>; + compatible = "rockchip,rk3588-ehci\0generic-ehci"; + status = "okay"; + phys = <0x6f>; + reg = <0x00 0xfc880000 0x00 0x40000>; + phandle = <0x255>; + }; + + qos@fdf62000 { + compatible = "syscon"; + reg = <0x00 0xfdf62000 0x00 0x20>; + phandle = <0x8b>; + }; + + syscon@fd5f0000 { + compatible = "rockchip,rk3588-ioc\0syscon"; + reg = <0x00 0xfd5f0000 0x00 0x10000>; + phandle = <0x196>; + }; + + mipi1-csi2 { + rockchip,hw = <0x47 0x48 0x49 0x4a 0x4b 0x4c>; + compatible = "rockchip,rk3588-mipi-csi2"; + status = "disabled"; + phandle = <0x225>; + }; + + hdmiphy@fed70000 { + clock-names = "ref\0apb"; + resets = <0x02 0x491 0x02 0x486 0x02 0xc003f 0x02 0xc0040 0x02 0xc0041 0x02 0x48f 0x02 0x490>; + clocks = <0x02 0x2b5 0x02 0x268>; + #phy-cells = <0x00>; + compatible = "rockchip,rk3588-hdptx-phy-hdmi"; + status = "disabled"; + rockchip,grf = <0x1c7>; + reg = <0x00 0xfed70000 0x00 0x2000>; + phandle = <0x1ac>; + reset-names = "phy\0apb\0init\0cmn\0lane\0ropll\0lcpll"; + + clk-port { + #clock-cells = <0x00>; + status = "okay"; + phandle = <0x36>; + }; + }; + + i2c@fec80000 { + pinctrl-names = "default"; + #address-cells = <0x01>; + pinctrl-0 = <0x178>; + clock-names = "i2c\0pclk"; + resets = <0x02 0xb5 0x02 0xad>; + interrupts = <0x00 0x143 0x04>; + clocks = <0x02 0x92 0x02 0x8a>; + #size-cells = <0x00>; + compatible = "rockchip,rk3588-i2c\0rockchip,rk3399-i2c"; + status = "okay"; + reg = <0x00 0xfec80000 0x00 0x1000>; + phandle = <0x2df>; + reset-names = "i2c\0apb"; + + imx415@37 { + power-domains = <0x60 0x1b>; + pinctrl-names = "default"; + pinctrl-0 = <0x180>; + clock-names = "xvclk"; + clocks = <0x02 0x100>; + firefly,clkout-enabled-index = <0x00>; + rockchip,camera-module-name = "CMK-OT2022-PX1"; + reset-gpios = <0x182 0x05 0x01>; + rockchip,camera-module-index = <0x00>; + compatible = "sony,imx415"; + rockchip,camera-module-facing = "back"; + power-gpios = <0x181 0x1d 0x00>; + reg = <0x37>; + rockchip,camera-module-lens-name = "IR0147-50IRC-8M-F20"; + phandle = <0x2e3>; + + port { + + endpoint { + data-lanes = <0x01 0x02 0x03 0x04>; + remote-endpoint = <0x184>; + phandle = <0x32>; + }; + }; + }; + + es8388@11 { + pinctrl-names = "default"; + pinctrl-0 = <0x17a>; + clock-names = "mclk"; + assigned-clocks = <0x179>; + assigned-clock-rates = <0xbb8000>; + clocks = <0x179>; + #sound-dai-cells = <0x00>; + compatible = "everest,es8388\0everest,es8323"; + status = "okay"; + reg = <0x11>; + phandle = <0x1db>; + }; + + XC7160b@1b { + power-domains = <0x60 0x1b>; + pinctrl-names = "default"; + pinctrl-0 = <0x180>; + clock-names = "xvclk"; + pwdn-gpios = <0xfe 0x04 0x00>; + clocks = <0x02 0x100>; + firefly,clkout-enabled-index = <0x00>; + rockchip,camera-module-name = "NC"; + reset-gpios = <0x182 0x05 0x00>; + rockchip,camera-module-index = <0x00>; + compatible = "firefly,xc7160"; + rockchip,camera-module-facing = "back"; + power-gpios = <0x181 0x1d 0x01>; + reg = <0x1b>; + rockchip,camera-module-lens-name = "NC"; + phandle = <0x2e2>; + + port { + + endpoint { + data-lanes = <0x01 0x02 0x03 0x04>; + remote-endpoint = <0x183>; + phandle = <0x31>; + }; + }; + }; + + fusb302@22 { + pinctrl-names = "default"; + pinctrl-0 = <0x17b>; + interrupts = <0x1b 0x08>; + vbus-supply = <0x17c>; + interrupt-parent = <0x7b>; + compatible = "fcs,fusb302"; + status = "disabled"; + reg = <0x22>; + phandle = <0x2e0>; + + connector { + sink-pdos = <0x4019064>; + power-role = "dual"; + source-pdos = <0x401912c>; + data-role = "dual"; + label = "USB-C"; + try-power-role = "sink"; + compatible = "usb-c-connector"; + op-sink-microwatt = <0xf4240>; + phandle = <0x2e1>; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + reg = <0x00>; + + endpoint { + remote-endpoint = <0x17e>; + phandle = <0x18e>; + }; + }; + + port@1 { + reg = <0x01>; + + endpoint { + remote-endpoint = <0x17f>; + phandle = <0x18f>; + }; + }; + }; + + altmodes { + #address-cells = <0x01>; + #size-cells = <0x00>; + + altmode@0 { + svid = <0xff01>; + vdo = <0xffffffff>; + reg = <0x00>; + }; + }; + }; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + reg = <0x00>; + + endpoint@0 { + remote-endpoint = <0x17d>; + phandle = <0x68>; + }; + }; + }; + }; + }; + + syscon@fd5e8000 { + compatible = "rockchip,mipi-dcphy-grf\0syscon"; + reg = <0x00 0xfd5e8000 0x00 0x4000>; + phandle = <0x190>; + }; + + vbus5v0-typec-pwr-en-regulator { + gpio = <0x182 0x0c 0x00>; + enable-active-high; + regulator-name = "vbus5v0_typec_pwr_en"; + compatible = "regulator-fixed"; + status = "disabled"; + phandle = <0x17c>; + }; + + mipi2-csi2-hw@fdd30000 { + clock-names = "pclk_csi2host"; + reg-names = "csihost_regs"; + resets = <0x02 0x326>; + interrupts = <0x00 0x93 0x04 0x00 0x94 0x04>; + clocks = <0x02 0x1d1>; + compatible = "rockchip,rk3588-mipi-csi2-hw"; + status = "okay"; + interrupt-names = "csi-intr1\0csi-intr2"; + reg = <0x00 0xfdd30000 0x00 0x10000>; + phandle = <0x49>; + reset-names = "srst_csihost_p"; + }; + + spdif-rx@fde18000 { + power-domains = <0x60 0x1a>; + clock-names = "mclk\0hclk"; + assigned-clocks = <0x02 0x262>; + assigned-clock-parents = <0x02 0x05>; + resets = <0x02 0x401>; + interrupts = <0x00 0xc9 0x04>; + clocks = <0x02 0x262 0x02 0x261>; + dma-names = "rx"; + #sound-dai-cells = <0x00>; + compatible = "rockchip,rk3588-spdifrx\0rockchip,rk3308-spdifrx"; + status = "disabled"; + reg = <0x00 0xfde18000 0x00 0x1000>; + phandle = <0x480>; + dmas = <0x7c 0x17>; + reset-names = "spdifrx-m"; + }; + + syscon@fd5a2000 { + compatible = "rockchip,rk3588-npu-grf\0syscon"; + reg = <0x00 0xfd5a2000 0x00 0x100>; + phandle = <0xb6>; + }; + + rkisp0-vir3 { + rockchip,hw = <0x58>; + compatible = "rockchip,rkisp-vir"; + status = "disabled"; + phandle = <0x23e>; + }; + + qos@fdf66200 { + compatible = "syscon"; + reg = <0x00 0xfdf66200 0x00 0x20>; + phandle = <0x94>; + }; + + rkcif@fdce0000 { + power-domains = <0x60 0x1b>; + iommus = <0x50>; + nvmem-cells = <0x21 0xd4 0xd5>; + clock-names = "aclk_cif\0hclk_cif\0dclk_cif\0iclk_host0\0iclk_host1"; + reg-names = "cif_regs"; + assigned-clocks = <0x02 0x1e3>; + assigned-clock-rates = <0x23c34600>; + resets = <0x02 0x317 0x02 0x318 0x02 0x316 0x02 0x334 0x02 0x335 0x02 0x336 0x02 0x337 0x02 0x338 0x02 0x339>; + interrupts = <0x00 0x9b 0x04>; + clocks = <0x02 0x1e4 0x02 0x1e5 0x02 0x1e3 0x02 0x1cd 0x02 0x1ce>; + compatible = "rockchip,rk3588-cif"; + status = "okay"; + rockchip,grf = <0xc8>; + interrupt-names = "cif-intr"; + nvmem-cell-names = "specification\0package_low\0package_high"; + reg = <0x00 0xfdce0000 0x00 0x800>; + phandle = <0x4f>; + reset-names = "rst_cif_a\0rst_cif_h\0rst_cif_d\0rst_cif_host0\0rst_cif_host1\0rst_cif_host2\0rst_cif_host3\0rst_cif_host4\0rst_cif_host5"; + }; + + edp@fdec0000 { + power-domains = <0x60 0x1a>; + phy-names = "dp"; + clock-names = "dp\0pclk\0spdif\0hclk"; + resets = <0x02 0x3e1 0x02 0x3e0>; + interrupts = <0x00 0xa3 0x04>; + clocks = <0x02 0x211 0x02 0x210 0x02 0x212 0x05>; + compatible = "rockchip,rk3588-edp"; + status = "disabled"; + rockchip,grf = <0xd8>; + phys = <0x101>; + reg = <0x00 0xfdec0000 0x00 0x1000>; + phandle = <0x289>; + reset-names = "dp\0apb"; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x00>; + + endpoint@1 { + remote-endpoint = <0x103>; + status = "disabled"; + reg = <0x01>; + phandle = <0xe1>; + }; + + endpoint@2 { + remote-endpoint = <0x3b>; + status = "disabled"; + reg = <0x02>; + phandle = <0xe7>; + }; + + endpoint@0 { + remote-endpoint = <0x102>; + status = "disabled"; + reg = <0x00>; + phandle = <0xdb>; + }; + }; + + port@1 { + reg = <0x01>; + + endpoint { + phandle = <0x28a>; + }; + }; + }; + }; + + qos@fdf72400 { + compatible = "syscon"; + reg = <0x00 0xfdf72400 0x00 0x20>; + phandle = <0x84>; + }; + + dp@fde60000 { + power-domains = <0x60 0x19>; + clock-names = "apb\0aux\0i2s\0spdif\0hclk\0hdcp"; + assigned-clocks = <0x02 0x2cd>; + assigned-clock-rates = <0xf42400>; + resets = <0x02 0x389>; + interrupts = <0x00 0xa2 0x04>; + clocks = <0x02 0x1e7 0x02 0x2cd 0x02 0x201 0x02 0x20d 0x04 0x02 0x1eb>; + #sound-dai-cells = <0x01>; + compatible = "rockchip,rk3588-dp"; + status = "disabled"; + phys = <0x1a5>; + reg = <0x00 0xfde60000 0x00 0x4000>; + phandle = <0x1e3>; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x00>; + + endpoint@1 { + remote-endpoint = <0x3e>; + status = "disabled"; + reg = <0x01>; + phandle = <0xe3>; + }; + + endpoint@2 { + remote-endpoint = <0x1a7>; + status = "disabled"; + reg = <0x02>; + phandle = <0xeb>; + }; + + endpoint@0 { + remote-endpoint = <0x1a6>; + status = "disabled"; + reg = <0x00>; + phandle = <0xdd>; + }; + }; + + port@1 { + reg = <0x01>; + + endpoint { + phandle = <0x481>; + }; + }; + }; + }; + + vcc5v0-usbdcin { + regulator-max-microvolt = <0x4c4b40>; + regulator-boot-on; + regulator-always-on; + regulator-min-microvolt = <0x4c4b40>; + regulator-name = "vcc5v0_usbdcin"; + compatible = "regulator-fixed"; + phandle = <0x48c>; + vin-supply = <0x1cd>; + }; + + rkvdec-core@fdc48000 { + power-domains = <0x60 0x0f>; + iommus = <0xcc>; + rockchip,ccu = <0xca>; + clock-names = "aclk_vcodec\0hclk_vcodec\0clk_core\0clk_cabac\0clk_hevc_cabac"; + reg-names = "regs\0link"; + assigned-clocks = <0x02 0x195 0x02 0x198 0x02 0x196 0x02 0x197>; + rockchip,core-mask = <0x20002>; + rockchip,task-capacity = <0x10>; + rockchip,normal-rates = <0x2faf0800 0x00 0x23c34600 0x23c34600 0x3b9aca00>; + assigned-clock-rates = <0x2faf0800 0x23c34600 0x23c34600 0x3b9aca00>; + resets = <0x02 0x293 0x02 0x292 0x02 0x298 0x02 0x296 0x02 0x297>; + interrupts = <0x00 0x61 0x04>; + rockchip,rcb-info = <0x88 0x6000 0x89 0xc000 0x8d 0x16000 0x8c 0xc000 0x8b 0x2c000 0x85 0xc000 0x86 0x2000 0x87 0x1100 0x8a 0x3300 0x8e 0x47300>; + clocks = <0x02 0x195 0x02 0x194 0x02 0x198 0x02 0x196 0x02 0x197>; + rockchip,rcb-min-width = <0x200>; + rockchip,srv = <0xb8>; + rockchip,taskqueue-node = <0x09>; + compatible = "rockchip,rkv-decoder-v2"; + status = "okay"; + interrupt-names = "irq_rkvdec1"; + rockchip,skip-pmu-idle-request; + rockchip,rcb-iova = <0xffe00000 0x100000>; + reg = <0x00 0xfdc48100 0x00 0x400 0x00 0xfdc48000 0x00 0x100>; + phandle = <0x275>; + reset-names = "video_a\0video_h\0video_core\0video_cabac\0video_hevc_cabac"; + rockchip,sram = <0xcd>; + }; + + vcc-1v1-nldo-s3 { + regulator-max-microvolt = <0x10c8e0>; + regulator-boot-on; + regulator-always-on; + regulator-min-microvolt = <0x10c8e0>; + regulator-name = "vcc_1v1_nldo_s3"; + compatible = "regulator-fixed"; + phandle = <0x15c>; + vin-supply = <0x78>; + }; + + power-management@fd8d8000 { + compatible = "rockchip,rk3588-pmu\0syscon\0simple-mfd"; + reg = <0x00 0xfd8d8000 0x00 0x400>; + phandle = <0xd9>; + + power-controller { + #address-cells = <0x01>; + #size-cells = <0x00>; + #power-domain-cells = <0x01>; + compatible = "rockchip,rk3588-power-controller"; + status = "okay"; + phandle = <0x60>; + + power-domain@37 { + clocks = <0x02 0x199 0x02 0x140>; + reg = <0x25>; + pm_qos = <0xaf>; + }; + + power-domain@27 { + #address-cells = <0x01>; + clocks = <0x02 0x1e1 0x02 0x1e2 0x02 0x1df 0x02 0x1de 0x02 0x1e5 0x02 0x1e4>; + #size-cells = <0x00>; + reg = <0x1b>; + pm_qos = <0xa2 0xa3 0xa4 0xa5>; + + power-domain@29 { + clocks = <0x02 0x1d6 0x02 0x1d5 0x02 0x1d9 0x02 0x1d8 0x02 0x1e2>; + reg = <0x1d>; + pm_qos = <0xa8 0xa9>; + }; + + power-domain@28 { + clocks = <0x02 0x121 0x02 0x120 0x02 0x1e1 0x02 0x1e2>; + reg = <0x1c>; + pm_qos = <0xa6 0xa7>; + }; + }; + + power-domain@33 { + clocks = <0x02 0x166 0x02 0x169 0x02 0x16a>; + reg = <0x21>; + }; + + power-domain@13 { + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x0d>; + + power-domain@15 { + clocks = <0x02 0x194 0x02 0x1be 0x02 0x1bc 0x02 0x195>; + reg = <0x0f>; + pm_qos = <0x8c>; + }; + + power-domain@16 { + #address-cells = <0x01>; + clocks = <0x02 0x1c4 0x02 0x1c5>; + #size-cells = <0x00>; + reg = <0x10>; + pm_qos = <0x8d 0x8e 0x8f>; + + power-domain@17 { + clocks = <0x02 0x1c9 0x02 0x1c4 0x02 0x1c5 0x02 0x1ca>; + reg = <0x11>; + pm_qos = <0x90 0x91 0x92>; + }; + }; + + power-domain@14 { + clocks = <0x02 0x18f 0x02 0x1be 0x02 0x1bc 0x02 0x190 0x02 0x18e>; + reg = <0x0e>; + pm_qos = <0x8b>; + }; + }; + + power-domain@31 { + clocks = <0x02 0x166 0x02 0x1a1 0x02 0x1a4 0x02 0x19d 0x02 0x19e 0x02 0x19f 0x02 0x1a0>; + reg = <0x1f>; + pm_qos = <0xab 0xac 0xad 0xae>; + }; + + power-domain@21 { + #address-cells = <0x01>; + clocks = <0x02 0x1be 0x02 0x1bd 0x02 0x1bc 0x02 0x1bf 0x02 0x1aa 0x02 0x1a9 0x02 0x1ac 0x02 0x1ad 0x02 0x1ae 0x02 0x1af 0x02 0x1b0 0x02 0x1b1 0x02 0x1b2 0x02 0x1b3 0x02 0x1b4 0x02 0x1b5 0x02 0x1b7 0x02 0x1b6>; + #size-cells = <0x00>; + reg = <0x15>; + pm_qos = <0x93 0x94 0x95 0x96 0x97 0x98 0x99 0x9a>; + + power-domain@15 { + clocks = <0x02 0x194 0x02 0x1be 0x02 0x1bc>; + reg = <0x0f>; + pm_qos = <0x8c>; + }; + + power-domain@23 { + clocks = <0x02 0x4b 0x02 0x49 0x02 0x1be>; + reg = <0x17>; + pm_qos = <0x9b>; + }; + + power-domain@14 { + clocks = <0x02 0x18f 0x02 0x1be 0x02 0x1bc 0x02 0x190>; + reg = <0x0e>; + pm_qos = <0x8b>; + }; + + power-domain@22 { + clocks = <0x02 0x1ba 0x02 0x1b9>; + reg = <0x16>; + pm_qos = <0x9c>; + }; + }; + + power-domain@38 { + clocks = <0x02 0x3c 0x02 0x3d>; + reg = <0x26>; + }; + + power-domain@8 { + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x08>; + + power-domain@9 { + #address-cells = <0x01>; + clocks = <0x02 0x12f 0x02 0x131 0x02 0x130 0x02 0x126>; + #size-cells = <0x00>; + reg = <0x09>; + pm_qos = <0x82 0x83 0x84>; + + power-domain@11 { + clocks = <0x02 0x12f 0x02 0x131 0x02 0x130>; + reg = <0x0b>; + pm_qos = <0x86>; + }; + + power-domain@10 { + clocks = <0x02 0x12f 0x02 0x131 0x02 0x130>; + reg = <0x0a>; + pm_qos = <0x85>; + }; + }; + }; + + power-domain@26 { + clocks = <0x02 0x22e 0x02 0x22f 0x02 0x22d 0x02 0x218 0x02 0x217 0x02 0x22b 0x02 0x264>; + reg = <0x1a>; + pm_qos = <0xa0 0xa1>; + }; + + power-domain@34 { + clocks = <0x02 0x166 0x02 0x169 0x02 0x16a>; + reg = <0x22>; + }; + + power-domain@24 { + #address-cells = <0x01>; + clocks = <0x02 0x26e 0x02 0x26d 0x02 0x270>; + #size-cells = <0x00>; + reg = <0x18>; + pm_qos = <0x9d 0x9e>; + + power-domain@25 { + clocks = <0x02 0x1f6 0x02 0x1f7 0x02 0x1f5 0x02 0x1f3 0x02 0x1ee 0x02 0x1ed 0x02 0x26d>; + reg = <0x19>; + pm_qos = <0x9f>; + }; + }; + + power-domain@12 { + clocks = <0x02 0x114 0x02 0x115 0x02 0x116>; + reg = <0x0c>; + pm_qos = <0x87 0x88 0x89 0x8a>; + }; + + power-domain@40 { + reg = <0x28>; + pm_qos = <0xb0>; + }; + + power-domain@30 { + clocks = <0x02 0x189 0x02 0x18a>; + reg = <0x1e>; + pm_qos = <0xaa>; + }; + }; + }; + + csi2-dphy3 { + rockchip,hw = <0x2d 0x2e>; + phy-names = "dcphy0\0dcphy1"; + compatible = "rockchip,rk3588-csi2-dphy"; + status = "disabled"; + phys = <0x2f 0x30>; + phandle = <0x212>; + }; + + qos@fdf3e000 { + compatible = "syscon"; + reg = <0x00 0xfdf3e000 0x00 0x20>; + phandle = <0xac>; + }; + + pwm@fd8b0030 { + pinctrl-names = "active"; + pinctrl-0 = <0x81>; + clock-names = "pwm\0pclk"; + interrupts = <0x00 0x158 0x04 0x00 0x159 0x04>; + clocks = <0x02 0x2a5 0x02 0x2a4>; + #pwm-cells = <0x03>; + compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; + status = "disabled"; + reg = <0x00 0xfd8b0030 0x00 0x10>; + phandle = <0x264>; + }; + + rkcif-mipi-lvds2-sditf-vir1 { + compatible = "rockchip,rkcif-sditf"; + status = "disabled"; + rockchip,cif = <0x55>; + phandle = <0x234>; + }; + + syscon@fd5cc000 { + compatible = "rockchip,rk3588-usbdpphy-grf\0syscon"; + reg = <0x00 0xfd5cc000 0x00 0x4000>; + phandle = <0x1c9>; + }; + + vdpu@fdb50400 { + power-domains = <0x60 0x15>; + iommus = <0xb7>; + clock-names = "aclk_vcodec\0hclk_vcodec"; + assigned-clocks = <0x02 0x1c0>; + rockchip,normal-rates = <0x2367b880 0x00>; + assigned-clock-rates = <0x2367b880>; + resets = <0x02 0x2c8 0x02 0x2c9>; + interrupts = <0x00 0x77 0x04>; + clocks = <0x02 0x1c0 0x02 0x1c1>; + rockchip,srv = <0xb8>; + rockchip,taskqueue-node = <0x00>; + rockchip,disable-auto-freq; + compatible = "rockchip,vpu-decoder-v2"; + rockchip,resetgroup-node = <0x00>; + status = "okay"; + interrupt-names = "irq_vdpu"; + rockchip,skip-pmu-idle-request; + reg = <0x00 0xfdb50400 0x00 0x400>; + phandle = <0x267>; + reset-names = "shared_video_a\0shared_video_h"; + }; + + qos@fdf60200 { + compatible = "syscon"; + reg = <0x00 0xfdf60200 0x00 0x20>; + phandle = <0x8e>; + }; + + pwm@febe0030 { + pinctrl-names = "active"; + pinctrl-0 = <0x170>; + clock-names = "pwm\0pclk"; + interrupts = <0x00 0x15c 0x04 0x00 0x15d 0x04>; + clocks = <0x02 0x57 0x02 0x56>; + #pwm-cells = <0x03>; + compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; + status = "disabled"; + reg = <0x00 0xfebe0030 0x00 0x10>; + phandle = <0x2d8>; + }; + + display-subsystem { + memory-region-names = "drm-logo"; + clock-names = "hdmi0_phy_pll\0hdmi1_phy_pll"; + ports = <0x34>; + memory-region = <0x37>; + clocks = <0x35 0x36>; + compatible = "rockchip,display-subsystem"; + phandle = <0x215>; + + route { + + route-edp1 { + logo,kernel = "logo_kernel.bmp"; + logo,uboot = "logo.bmp"; + charge_logo,mode = "center"; + logo,mode = "center"; + status = "disabled"; + phandle = <0x21a>; + }; + + route-hdmi1 { + logo,kernel = "logo_kernel.bmp"; + logo,uboot = "logo.bmp"; + charge_logo,mode = "center"; + connect = <0x3f>; + logo,mode = "center"; + status = "disabled"; + phandle = <0x21e>; + }; + + route-dp1 { + logo,kernel = "logo_kernel.bmp"; + logo,uboot = "logo.bmp"; + charge_logo,mode = "center"; + connect = <0x3e>; + logo,mode = "center"; + status = "disabled"; + phandle = <0x21d>; + }; + + route-dsi1 { + logo,kernel = "logo_kernel.bmp"; + logo,uboot = "logo.bmp"; + charge_logo,mode = "center"; + connect = <0x3a>; + logo,mode = "center"; + status = "disabled"; + phandle = <0x218>; + }; + + route-edp0 { + logo,kernel = "logo_kernel.bmp"; + logo,uboot = "logo.bmp"; + charge_logo,mode = "center"; + connect = <0x3b>; + logo,mode = "center"; + status = "disabled"; + phandle = <0x219>; + }; + + route-hdmi0 { + logo,kernel = "logo_kernel.bmp"; + logo,uboot = "logo.bmp"; + charge_logo,mode = "center"; + connect = <0x3c>; + logo,mode = "center"; + status = "okay"; + phandle = <0x21b>; + }; + + route-dp0 { + logo,kernel = "logo_kernel.bmp"; + logo,uboot = "logo.bmp"; + charge_logo,mode = "center"; + connect = <0x38>; + logo,mode = "center"; + status = "disabled"; + phandle = <0x216>; + }; + + route-rgb { + logo,kernel = "logo_kernel.bmp"; + logo,uboot = "logo.bmp"; + charge_logo,mode = "center"; + connect = <0x3d>; + logo,mode = "center"; + status = "disabled"; + phandle = <0x21c>; + }; + + route-dsi0 { + logo,kernel = "logo_kernel.bmp"; + logo,uboot = "logo.bmp"; + charge_logo,mode = "center"; + connect = <0x39>; + logo,mode = "center"; + status = "disabled"; + phandle = <0x217>; + }; + }; + }; + + serial@febc0000 { + reg-io-width = <0x04>; + pinctrl-names = "default"; + pinctrl-0 = <0x168>; + clock-names = "baudclk\0apb_pclk"; + interrupts = <0x00 0x154 0x04>; + clocks = <0x02 0xd7 0x02 0xb3>; + compatible = "rockchip,rk3588-uart\0snps,dw-apb-uart"; + status = "disabled"; + reg = <0x00 0xfebc0000 0x00 0x100>; + phandle = <0x2d1>; + dmas = <0xf2 0x0b 0xf2 0x0c>; + reg-shift = <0x02>; + }; + + adc-keys { + io-channels = <0x1d9 0x01>; + poll-interval = <0x64>; + keyup-threshold-microvolt = <0x1b7740>; + compatible = "adc-keys"; + status = "okay"; + phandle = <0x49e>; + io-channel-names = "buttons"; + + recovery-key { + press-threshold-microvolt = <0x4268>; + label = "F12"; + linux,code = <0x58>; + }; + }; + + pvtm@fdaf0000 { + #address-cells = <0x01>; + #size-cells = <0x00>; + compatible = "rockchip,rk3588-npu-pvtm"; + reg = <0x00 0xfdaf0000 0x00 0x100>; + + pvtm@3 { + clock-names = "clk\0pclk"; + resets = <0x02 0x1de 0x02 0x1dc>; + clocks = <0x02 0x12b 0x02 0x129>; + reg = <0x03>; + reset-names = "rts\0rst-p"; + }; + }; + + codec-digital@fe500000 { + power-domains = <0x60 0x26>; + pinctrl-names = "default"; + pinctrl-0 = <0x144>; + clock-names = "dac\0pclk"; + resets = <0x02 0x84>; + clocks = <0x02 0x29 0x02 0x2f>; + #sound-dai-cells = <0x00>; + compatible = "rockchip,rk3588-codec-digital\0rockchip,codec-digital-v1"; + status = "disabled"; + rockchip,grf = <0xc8>; + reg = <0x00 0xfe500000 0x00 0x1000>; + phandle = <0x29e>; + reset-names = "reset"; + rockchip,pwm-output-mode; + }; + + pwm@fd8b0020 { + pinctrl-names = "active"; + pinctrl-0 = <0x80>; + clock-names = "pwm\0pclk"; + interrupts = <0x00 0x158 0x04>; + clocks = <0x02 0x2a5 0x02 0x2a4>; + #pwm-cells = <0x03>; + compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; + status = "disabled"; + reg = <0x00 0xfd8b0020 0x00 0x10>; + phandle = <0x263>; + }; + + rkcif-mipi-lvds2 { + iommus = <0x50>; + rockchip,hw = <0x4f>; + compatible = "rockchip,rkcif-mipi-lvds"; + status = "okay"; + phandle = <0x55>; + + port { + + endpoint { + remote-endpoint = <0x54>; + phandle = <0x4e>; + }; + }; + }; + + pwm@febe0020 { + pinctrl-names = "active"; + pinctrl-0 = <0x16f>; + clock-names = "pwm\0pclk"; + interrupts = <0x00 0x15c 0x04>; + clocks = <0x02 0x57 0x02 0x56>; + #pwm-cells = <0x03>; + compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; + status = "disabled"; + reg = <0x00 0xfebe0020 0x00 0x10>; + phandle = <0x2d7>; + }; + + vcc-fan-pwr-en-regulator { + regulator-boot-on; + gpio = <0x182 0x0b 0x00>; + regulator-always-on; + enable-active-high; + regulator-name = "vcc_fan_pwr_en"; + compatible = "regulator-fixed"; + status = "disabled"; + phandle = <0x4a4>; + }; + + iommu@fdba0800 { + power-domains = <0x60 0x15>; + clock-names = "aclk\0iface"; + interrupts = <0x00 0x79 0x04>; + clocks = <0x02 0x1ac 0x02 0x1ad>; + #iommu-cells = <0x00>; + compatible = "rockchip,iommu-v2"; + status = "okay"; + interrupt-names = "irq_jpege0_mmu"; + reg = <0x00 0xfdba0800 0x00 0x40>; + phandle = <0xbc>; + }; + + rkcif-mipi-lvds1-sditf-vir2 { + compatible = "rockchip,rkcif-sditf"; + status = "disabled"; + rockchip,cif = <0x53>; + phandle = <0x231>; + }; + + arm-pmu { + interrupt-affinity = <0x06 0x07 0x08 0x09 0x0a 0x0b 0x0c 0x0d>; + interrupts = <0x01 0x07 0x08>; + compatible = "arm,armv8-pmuv3"; + phandle = <0x20c>; + }; + + pvtm@fda40000 { + #address-cells = <0x01>; + #size-cells = <0x00>; + compatible = "rockchip,rk3588-bigcore0-pvtm"; + reg = <0x00 0xfda40000 0x00 0x100>; + + pvtm@0 { + clock-names = "clk\0pclk"; + clocks = <0x02 0x2c6 0x02 0x15>; + reg = <0x00>; + }; + }; + + pwm@fd8b0010 { + pinctrl-names = "active"; + pinctrl-0 = <0x7f>; + clock-names = "pwm\0pclk"; + interrupts = <0x00 0x158 0x04>; + clocks = <0x02 0x2a5 0x02 0x2a4>; + #pwm-cells = <0x03>; + compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; + status = "disabled"; + reg = <0x00 0xfd8b0010 0x00 0x10>; + phandle = <0x262>; + }; + + i2s@fddc0000 { + power-domains = <0x60 0x19>; + clock-names = "mclk_tx\0mclk_rx\0hclk"; + assigned-clocks = <0x02 0x1f9>; + assigned-clock-parents = <0x02 0x05>; + resets = <0x02 0x38d>; + interrupts = <0x00 0xb8 0x04>; + clocks = <0x02 0x1fb 0x02 0x1fb 0x02 0x1f0>; + dma-names = "tx"; + #sound-dai-cells = <0x00>; + compatible = "rockchip,rk3588-i2s-tdm"; + rockchip,playback-only; + status = "disabled"; + reg = <0x00 0xfddc0000 0x00 0x1000>; + phandle = <0x27d>; + dmas = <0xf2 0x00>; + reset-names = "tx-m"; + }; + + qos@fdf61400 { + compatible = "syscon"; + reg = <0x00 0xfdf61400 0x00 0x20>; + phandle = <0x92>; + }; + + syscon@fd5d4000 { + #address-cells = <0x01>; + #size-cells = <0x01>; + compatible = "rockchip,rk3588-usb2phy-grf\0syscon\0simple-mfd"; + reg = <0x00 0xfd5d4000 0x00 0x4000>; + phandle = <0x1c8>; + + usb2-phy@4000 { + clock-output-names = "usb480m_phy1"; + clock-names = "phyclk"; + resets = <0x02 0xc0048 0x02 0x489>; + interrupts = <0x00 0x18a 0x04>; + clocks = <0x02 0x2b5>; + #clock-cells = <0x00>; + rockchip,usbctrl-grf = <0x74>; + compatible = "rockchip,rk3588-usb2phy"; + status = "okay"; + reg = <0x4000 0x10>; + phandle = <0x1ca>; + reset-names = "phy\0apb"; + + otg-port { + phy-supply = <0x75>; + #phy-cells = <0x00>; + status = "okay"; + phandle = <0x1a3>; + }; + }; + }; + + rkisp0-vir1 { + rockchip,hw = <0x58>; + compatible = "rockchip,rkisp-vir"; + status = "disabled"; + phandle = <0x23c>; + }; + + pwm@febe0010 { + pinctrl-names = "active"; + pinctrl-0 = <0x16e>; + clock-names = "pwm\0pclk"; + interrupts = <0x00 0x15c 0x04>; + clocks = <0x02 0x57 0x02 0x56>; + #pwm-cells = <0x03>; + compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; + status = "disabled"; + reg = <0x00 0xfebe0010 0x00 0x10>; + phandle = <0x2d6>; + }; + + thermal-zones { + phandle = <0x248>; + + bigcore1-thermal { + polling-delay = <0x3e8>; + polling-delay-passive = <0x14>; + thermal-sensors = <0x5d 0x02>; + phandle = <0x24d>; + }; + + soc-thermal { + polling-delay = <0x3e8>; + polling-delay-passive = <0x14>; + thermal-sensors = <0x5d 0x00>; + sustainable-power = <0x834>; + phandle = <0x249>; + + trips { + + trip-point-0 { + temperature = <0x124f8>; + hysteresis = <0x7d0>; + type = "passive"; + phandle = <0x24a>; + }; + + trip-point-1 { + temperature = <0x14c08>; + hysteresis = <0x7d0>; + type = "passive"; + phandle = <0x5e>; + }; + + soc-crit { + temperature = <0x1c138>; + hysteresis = <0x7d0>; + type = "critical"; + phandle = <0x24b>; + }; + }; + + cooling-maps { + map0 { + trip = <0x5e>; + cooling-device = <0x06 0xffffffff 0xffffffff>; + contribution = <0x400>; + }; + + map3 { + trip = <0x5e>; + cooling-device = <0x5f 0xffffffff 0xffffffff>; + contribution = <0x400>; + }; + }; + }; + + npu-thermal { + polling-delay = <0x3e8>; + polling-delay-passive = <0x14>; + thermal-sensors = <0x5d 0x06>; + phandle = <0x251>; + }; + + center-thermal { + polling-delay = <0x3e8>; + polling-delay-passive = <0x14>; + thermal-sensors = <0x5d 0x04>; + phandle = <0x24f>; + }; + + gpu-thermal { + polling-delay = <0x3e8>; + polling-delay-passive = <0x14>; + thermal-sensors = <0x5d 0x05>; + phandle = <0x250>; + }; + + littlecore-thermal { + polling-delay = <0x3e8>; + polling-delay-passive = <0x14>; + thermal-sensors = <0x5d 0x03>; + phandle = <0x24e>; + }; + + bigcore0-thermal { + polling-delay = <0x3e8>; + polling-delay-passive = <0x14>; + thermal-sensors = <0x5d 0x01>; + phandle = <0x24c>; + }; + }; + + iommu@fdbdf000 { + power-domains = <0x60 0x10>; + rockchip,shootdown-entire; + clock-names = "aclk\0iface"; + interrupts = <0x00 0x63 0x04 0x00 0x64 0x04>; + clocks = <0x02 0x1c5 0x02 0x1c4>; + rockchip,enable-cmd-retry; + #iommu-cells = <0x00>; + compatible = "rockchip,iommu-v2"; + rockchip,disable-mmu-reset; + status = "okay"; + interrupt-names = "irq_rkvenc0_mmu0\0irq_rkvenc0_mmu1"; + reg = <0x00 0xfdbdf000 0x00 0x40 0x00 0xfdbdf040 0x00 0x40>; + phandle = <0xc2>; + }; + + iommu@fdcd0f00 { + power-domains = <0x60 0x1d>; + clock-names = "aclk\0iface\0pclk"; + interrupts = <0x00 0x8c 0x04>; + clocks = <0x02 0x1d5 0x02 0x1d6 0x02 0x1d7>; + #iommu-cells = <0x00>; + compatible = "rockchip,iommu-v2"; + rockchip,disable-mmu-reset; + status = "disabled"; + interrupt-names = "fec0_mmu"; + reg = <0x00 0xfdcd0f00 0x00 0x100>; + phandle = <0xd2>; + }; + + vcc5v0-host { + regulator-max-microvolt = <0x4c4b40>; + regulator-boot-on; + gpio = <0x182 0x02 0x00>; + regulator-always-on; + enable-active-high; + regulator-min-microvolt = <0x4c4b40>; + regulator-name = "vcc5v0_host"; + compatible = "regulator-fixed"; + status = "okay"; + phandle = <0x75>; + vin-supply = <0x1dd>; + }; + + qos@fdf66a00 { + compatible = "syscon"; + reg = <0x00 0xfdf66a00 0x00 0x20>; + phandle = <0x98>; + }; + + phy@fed90000 { + clock-names = "refclk\0immortal\0pclk\0utmi"; + resets = <0x02 0x2f 0x02 0x30 0x02 0x31 0x02 0x32 0x02 0x484>; + clocks = <0x02 0x2b6 0x02 0x280 0x02 0x26a 0x1ca>; + compatible = "rockchip,rk3588-usbdp-phy"; + status = "okay"; + rockchip,dp-lane-mux = <0x02 0x03>; + reg = <0x00 0xfed90000 0x00 0x10000>; + phandle = <0x48b>; + rockchip,usb-grf = <0x74>; + reset-names = "init\0cmn\0lane\0pcs_apb\0pma_apb"; + rockchip,u2phy-grf = <0x1c8>; + rockchip,usbdpphy-grf = <0x1c9>; + rockchip,vo-grf = <0xf5>; + + dp-port { + #phy-cells = <0x00>; + status = "okay"; + phandle = <0x1a5>; + }; + + u3-port { + #phy-cells = <0x00>; + status = "okay"; + phandle = <0x1a4>; + }; + }; + + jpege-core@fdba0000 { + power-domains = <0x60 0x15>; + iommus = <0xbc>; + rockchip,ccu = <0xbd>; + clock-names = "aclk_vcodec\0hclk_vcodec"; + assigned-clocks = <0x02 0x1ac>; + rockchip,normal-rates = <0x2367b880 0x00>; + assigned-clock-rates = <0x2367b880>; + resets = <0x02 0x2ca 0x02 0x2cb>; + interrupts = <0x00 0x7a 0x04>; + clocks = <0x02 0x1ac 0x02 0x1ad>; + rockchip,srv = <0xb8>; + rockchip,taskqueue-node = <0x02>; + rockchip,disable-auto-freq; + compatible = "rockchip,vpu-jpege-core"; + status = "okay"; + interrupt-names = "irq_jpege0"; + rockchip,skip-pmu-idle-request; + reg = <0x00 0xfdba0000 0x00 0x400>; + phandle = <0x26d>; + reset-names = "video_a\0video_h"; + }; + + vcc5v0-sys { + regulator-max-microvolt = <0x4c4b40>; + regulator-boot-on; + regulator-always-on; + regulator-min-microvolt = <0x4c4b40>; + regulator-name = "vcc5v0_sys"; + compatible = "regulator-fixed"; + phandle = <0x78>; + vin-supply = <0x1cd>; + }; + + pwm@fd8b0000 { + pinctrl-names = "active"; + pinctrl-0 = <0x7e>; + clock-names = "pwm\0pclk"; + interrupts = <0x00 0x158 0x04>; + clocks = <0x02 0x2a5 0x02 0x2a4>; + #pwm-cells = <0x03>; + compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; + status = "disabled"; + reg = <0x00 0xfd8b0000 0x00 0x10>; + phandle = <0x261>; + }; + + vop@fdd90000 { + power-domains = <0x60 0x18>; + iommus = <0xd6>; + rockchip,vop-grf = <0xd7>; + clock-names = "aclk_vop\0hclk_vop\0dclk_vp0\0dclk_vp1\0dclk_vp2\0dclk_vp3\0pclk_vop\0dclk_src_vp0\0dclk_src_vp1\0dclk_src_vp2"; + reg-names = "regs\0gamma_lut"; + assigned-clocks = <0x02 0x270>; + assigned-clock-rates = <0x2cb41780>; + resets = <0x02 0x349 0x02 0x348 0x02 0x34d 0x02 0x350 0x02 0x351 0x02 0x352>; + interrupts = <0x00 0x9c 0x04>; + clocks = <0x02 0x270 0x02 0x26f 0x02 0x274 0x02 0x275 0x02 0x276 0x02 0x277 0x02 0x26e 0x02 0x271 0x02 0x272 0x02 0x273>; + compatible = "rockchip,rk3588-vop"; + rockchip,pmu = <0xd9>; + status = "okay"; + rockchip,grf = <0xc8>; + reg = <0x00 0xfdd90000 0x00 0x4200 0x00 0xfdd95000 0x00 0x1000>; + phandle = <0x278>; + rockchip,vo1-grf = <0xd8>; + reset-names = "axi\0ahb\0dclk_vp0\0dclk_vp1\0dclk_vp2\0dclk_vp3"; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + phandle = <0x34>; + + port@0 { + rockchip,primary-plane = <0x02>; + rockchip,plane-mask = <0x05>; + #address-cells = <0x01>; + assigned-clocks = <0x02 0x270>; + assigned-clock-rates = <0x2faf0800>; + #size-cells = <0x00>; + reg = <0x00>; + phandle = <0x279>; + + endpoint@5 { + remote-endpoint = <0xdf>; + reg = <0x05>; + phandle = <0x1ad>; + }; + + endpoint@3 { + remote-endpoint = <0xdd>; + reg = <0x03>; + phandle = <0x1a6>; + }; + + endpoint@1 { + remote-endpoint = <0xdb>; + reg = <0x01>; + phandle = <0x102>; + }; + + endpoint@4 { + remote-endpoint = <0xde>; + reg = <0x04>; + phandle = <0x1b0>; + }; + + endpoint@2 { + remote-endpoint = <0xdc>; + reg = <0x02>; + phandle = <0x3c>; + }; + + endpoint@0 { + remote-endpoint = <0xda>; + reg = <0x00>; + phandle = <0xf7>; + }; + }; + + port@3 { + rockchip,primary-plane = <0x09>; + rockchip,plane-mask = <0x280>; + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x03>; + phandle = <0x27c>; + + endpoint@1 { + remote-endpoint = <0xef>; + reg = <0x01>; + phandle = <0x3a>; + }; + + endpoint@2 { + remote-endpoint = <0xf0>; + reg = <0x02>; + phandle = <0x3d>; + }; + + endpoint@0 { + remote-endpoint = <0xee>; + reg = <0x00>; + phandle = <0x39>; + }; + }; + + port@1 { + rockchip,primary-plane = <0x03>; + rockchip,plane-mask = <0x0a>; + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x01>; + phandle = <0x27a>; + + endpoint@5 { + remote-endpoint = <0xe5>; + reg = <0x05>; + phandle = <0x3f>; + }; + + endpoint@3 { + remote-endpoint = <0xe3>; + reg = <0x03>; + phandle = <0x3e>; + }; + + endpoint@1 { + remote-endpoint = <0xe1>; + reg = <0x01>; + phandle = <0x103>; + }; + + endpoint@4 { + remote-endpoint = <0xe4>; + reg = <0x04>; + phandle = <0x1b1>; + }; + + endpoint@2 { + remote-endpoint = <0xe2>; + reg = <0x02>; + phandle = <0xff>; + }; + + endpoint@0 { + remote-endpoint = <0xe0>; + reg = <0x00>; + phandle = <0x38>; + }; + }; + + port@2 { + rockchip,primary-plane = <0x08>; + rockchip,plane-mask = <0x140>; + #address-cells = <0x01>; + assigned-clocks = <0x02 0x273>; + assigned-clock-parents = <0x02 0x04>; + #size-cells = <0x00>; + reg = <0x02>; + phandle = <0x27b>; + + endpoint@5 { + remote-endpoint = <0xeb>; + reg = <0x05>; + phandle = <0x1a7>; + }; + + endpoint@3 { + remote-endpoint = <0xe9>; + reg = <0x03>; + phandle = <0xf3>; + }; + + endpoint@1 { + remote-endpoint = <0xe7>; + reg = <0x01>; + phandle = <0x3b>; + }; + + endpoint@6 { + remote-endpoint = <0xec>; + reg = <0x06>; + phandle = <0x1b2>; + }; + + endpoint@4 { + remote-endpoint = <0xea>; + reg = <0x04>; + phandle = <0xf4>; + }; + + endpoint@2 { + remote-endpoint = <0xe8>; + reg = <0x02>; + phandle = <0x100>; + }; + + endpoint@0 { + remote-endpoint = <0xe6>; + reg = <0x00>; + phandle = <0xf8>; + }; + + endpoint@7 { + remote-endpoint = <0xed>; + reg = <0x07>; + phandle = <0x1ae>; + }; + }; + }; + }; + + csi2-dphy1 { + rockchip,hw = <0x2d 0x2e>; + phy-names = "dcphy0\0dcphy1"; + compatible = "rockchip,rk3588-csi2-dphy"; + status = "disabled"; + phys = <0x2f 0x30>; + phandle = <0x210>; + }; + + pwm@febe0000 { + pinctrl-names = "active"; + pinctrl-0 = <0x16d>; + clock-names = "pwm\0pclk"; + interrupts = <0x00 0x15c 0x04>; + clocks = <0x02 0x57 0x02 0x56>; + #pwm-cells = <0x03>; + compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; + status = "disabled"; + reg = <0x00 0xfebe0000 0x00 0x10>; + phandle = <0x2d5>; + }; + + clocks { + #address-cells = <0x02>; + #size-cells = <0x02>; + compatible = "simple-bus"; + ranges; + + hclk_nvm@fd7c087c { + clock-names = "link"; + clocks = <0x02 0x141>; + #clock-cells = <0x00>; + #power-domain-cells = <0x01>; + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c087c 0x00 0x10>; + phandle = <0x03>; + }; + + mclkin-i2s0 { + clock-output-names = "i2s0_mclkin"; + #clock-cells = <0x00>; + clock-frequency = <0x00>; + compatible = "fixed-clock"; + phandle = <0x204>; + }; + + hclk_rkvenc1_pre@fd7c08c0 { + clock-names = "link"; + clocks = <0x02 0x1c4>; + #clock-cells = <0x00>; + #power-domain-cells = <0x01>; + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c08c0 0x00 0x10>; + phandle = <0x1fe>; + }; + + mclkout-i2s1@fd58c318 { + rockchip,clk-ignore-unused; + clock-output-names = "i2s1_mclkout_to_io"; + clocks = <0x02 0x291>; + rockchip,bit-set-to-disable; + #clock-cells = <0x00>; + compatible = "rockchip,clk-out"; + reg = <0x00 0xfd58c318 0x00 0x04>; + phandle = <0x208>; + rockchip,bit-shift = <0x01>; + }; + + mclkout-i2s1@fd58a000 { + rockchip,clk-ignore-unused; + clock-output-names = "i2s1m1_mclkout_to_io"; + clocks = <0x02 0x291>; + #clock-cells = <0x00>; + compatible = "rockchip,clk-out"; + reg = <0x00 0xfd58a000 0x00 0x04>; + phandle = <0x209>; + rockchip,bit-shift = <0x06>; + }; + + aclk_hdcp0_pre@fd7c08dc { + clock-names = "link"; + clocks = <0x02 0x26c>; + #clock-cells = <0x00>; + #power-domain-cells = <0x01>; + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c08dc 0x00 0x10>; + phandle = <0x1ff>; + }; + + xin32k { + clock-output-names = "xin32k"; + #clock-cells = <0x00>; + clock-frequency = <0x8000>; + compatible = "fixed-clock"; + phandle = <0x1f2>; + }; + + aclk_usb@fd7c08a8 { + clock-names = "link"; + clocks = <0x02 0x263>; + #clock-cells = <0x00>; + #power-domain-cells = <0x01>; + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c08a8 0x00 0x10>; + phandle = <0x6a>; + }; + + hclk_usb@fd7c08a8 { + clock-names = "link"; + clocks = <0x02 0x264>; + #clock-cells = <0x00>; + #power-domain-cells = <0x01>; + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c08a8 0x00 0x10>; + phandle = <0x1f5>; + }; + + hclk_vo0@fd7c08dc { + clock-names = "link"; + clocks = <0x02 0x26d>; + #clock-cells = <0x00>; + #power-domain-cells = <0x01>; + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c08dc 0x00 0x10>; + phandle = <0x04>; + }; + + pclk_av1_pre@fd7c0910 { + clock-names = "link"; + clocks = <0x02 0x1be>; + #clock-cells = <0x00>; + #power-domain-cells = <0x01>; + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c0910 0x00 0x10>; + phandle = <0x201>; + }; + + mclkout-i2s2@fd58c318 { + rockchip,clk-ignore-unused; + clock-output-names = "i2s2_mclkout_to_io"; + clocks = <0x02 0x28>; + rockchip,bit-set-to-disable; + #clock-cells = <0x00>; + compatible = "rockchip,clk-out"; + reg = <0x00 0xfd58c318 0x00 0x04>; + phandle = <0x20a>; + rockchip,bit-shift = <0x02>; + }; + + aclk_vdpu_low_pre@fd7c08b0 { + clock-names = "link"; + clocks = <0x02 0x1bc>; + #clock-cells = <0x00>; + #power-domain-cells = <0x01>; + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c08b0 0x00 0x10>; + phandle = <0x1f4>; + }; + + mclkin-i2s3 { + clock-output-names = "i2s3_mclkin"; + #clock-cells = <0x00>; + clock-frequency = <0x00>; + compatible = "fixed-clock"; + phandle = <0x207>; + }; + + spll { + clock-output-names = "spll"; + #clock-cells = <0x00>; + clock-frequency = <0x29d7ab80>; + compatible = "fixed-clock"; + phandle = <0x1f1>; + }; + + xin24m { + clock-output-names = "xin24m"; + #clock-cells = <0x00>; + clock-frequency = <0x16e3600>; + compatible = "fixed-clock"; + phandle = <0x1f3>; + }; + + aclk_av1_pre@fd7c0910 { + clock-names = "link"; + clocks = <0x02 0x1bc>; + #clock-cells = <0x00>; + #power-domain-cells = <0x01>; + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c0910 0x00 0x10>; + phandle = <0x202>; + }; + + pclk_vo0_grf@fd7c08dc { + clock-names = "link"; + clocks = <0x04>; + #clock-cells = <0x00>; + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c08dc 0x00 0x04>; + phandle = <0x72>; + }; + + aclk_jpeg_decoder_pre@fd7c08b0 { + clock-names = "link"; + clocks = <0x02 0x1bc>; + #clock-cells = <0x00>; + #power-domain-cells = <0x01>; + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c08b0 0x00 0x10>; + phandle = <0x1fc>; + }; + + aclk_hdcp1_pre@fd7c08ec { + clock-names = "link"; + clocks = <0x02 0x263>; + #clock-cells = <0x00>; + #power-domain-cells = <0x01>; + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c08ec 0x00 0x10>; + phandle = <0x200>; + }; + + mclkin-i2s1 { + clock-output-names = "i2s1_mclkin"; + #clock-cells = <0x00>; + clock-frequency = <0x00>; + compatible = "fixed-clock"; + phandle = <0x205>; + }; + + hclk_vo1@fd7c08ec { + clock-names = "link"; + clocks = <0x02 0x264>; + #clock-cells = <0x00>; + #power-domain-cells = <0x01>; + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c08ec 0x00 0x10>; + phandle = <0x05>; + }; + + mclkout-i2s3@fd58c318 { + rockchip,clk-ignore-unused; + clock-output-names = "i2s3_mclkout_to_io"; + clocks = <0x02 0x2e>; + rockchip,bit-set-to-disable; + #clock-cells = <0x00>; + compatible = "rockchip,clk-out"; + reg = <0x00 0xfd58c318 0x00 0x04>; + phandle = <0x20b>; + rockchip,bit-shift = <0x07>; + }; + + aclk_rkvdec0_pre@fd7c08a0 { + clock-names = "link"; + clocks = <0x02 0x1bc>; + #clock-cells = <0x00>; + #power-domain-cells = <0x01>; + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c08a0 0x00 0x10>; + phandle = <0x1f8>; + }; + + aclk_isp1_pre@fd7c0868 { + clock-names = "link"; + clocks = <0x02 0x1e0>; + #clock-cells = <0x00>; + #power-domain-cells = <0x01>; + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c0868 0x00 0x10>; + phandle = <0x1f7>; + }; + + pclk_vo1_grf@fd7c08ec { + clock-names = "link"; + clocks = <0x05>; + #clock-cells = <0x00>; + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c08ec 0x00 0x04>; + phandle = <0x73>; + }; + + aclk_rkvdec1_pre@fd7c08a4 { + clock-names = "link"; + clocks = <0x02 0x1bc>; + #clock-cells = <0x00>; + #power-domain-cells = <0x01>; + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c08a4 0x00 0x10>; + phandle = <0x1fa>; + }; + + hclk_rkvdec0_pre@fd7c08a0 { + clock-names = "link"; + clocks = <0x02 0x1be>; + #clock-cells = <0x00>; + #power-domain-cells = <0x01>; + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c08a0 0x00 0x10>; + phandle = <0x1f9>; + }; + + hclk_sdio_pre@fd7c092c { + clock-names = "link"; + clocks = <0x03>; + #clock-cells = <0x00>; + #power-domain-cells = <0x01>; + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c092c 0x00 0x10>; + phandle = <0x203>; + }; + + hclk_rkvdec1_pre@fd7c08a4 { + clock-names = "link"; + clocks = <0x02 0x1be>; + #clock-cells = <0x00>; + #power-domain-cells = <0x01>; + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c08a4 0x00 0x10>; + phandle = <0x1fb>; + }; + + hclk_isp1_pre@fd7c0868 { + clock-names = "link"; + clocks = <0x02 0x1e1>; + #clock-cells = <0x00>; + #power-domain-cells = <0x01>; + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c0868 0x00 0x10>; + phandle = <0x1f6>; + }; + + mclkout-i2s0@fd58c318 { + rockchip,clk-ignore-unused; + clock-output-names = "i2s0_mclkout_to_io"; + clocks = <0x02 0x39>; + rockchip,bit-set-to-disable; + #clock-cells = <0x00>; + compatible = "rockchip,clk-out"; + reg = <0x00 0xfd58c318 0x00 0x04>; + phandle = <0x179>; + rockchip,bit-shift = <0x00>; + }; + + mclkin-i2s2 { + clock-output-names = "i2s2_mclkin"; + #clock-cells = <0x00>; + clock-frequency = <0x00>; + compatible = "fixed-clock"; + phandle = <0x206>; + }; + + aclk_rkvenc1_pre@fd7c08c0 { + clock-names = "link"; + clocks = <0x02 0x1c5>; + #clock-cells = <0x00>; + #power-domain-cells = <0x01>; + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c08c0 0x00 0x10>; + phandle = <0x1fd>; + }; + }; + + usb@fc8c0000 { + power-domains = <0x60 0x1f>; + phy-names = "usb2-phy"; + clock-names = "usbhost\0arbiter\0utmi\0alk_usb"; + interrupts = <0x00 0xdb 0x04>; + clocks = <0x02 0x19f 0x02 0x1a0 0x6d 0x6a>; + compatible = "rockchip,rk3588-ohci\0generic-ohci"; + status = "okay"; + phys = <0x6f>; + reg = <0x00 0xfc8c0000 0x00 0x40000>; + phandle = <0x6e>; + }; + + qos@fdf40000 { + compatible = "syscon"; + reg = <0x00 0xfdf40000 0x00 0x20>; + phandle = <0xa8>; + }; + + mipi0-csi2 { + rockchip,hw = <0x47 0x48 0x49 0x4a 0x4b 0x4c>; + compatible = "rockchip,rk3588-mipi-csi2"; + status = "disabled"; + phandle = <0x224>; + }; + + cluster1-opp-table { + rockchip,pvtm-offset = <0x18>; + rockchip,pvtm-sample-time = <0x44c>; + rockchip,pvtm-hw = <0x06>; + nvmem-cells = <0x24 0x25 0x21>; + rockchip,low-temp = <0x2710>; + rockchip,pvtm-voltage-sel-hw = <0x00 0x603 0x00 0x604 0x61c 0x01 0x61d 0x635 0x02 0x636 0x64e 0x03 0x64f 0x66c 0x04 0x66d 0x68a 0x05 0x68b 0x6a8 0x06 0x6a9 0x270f 0x07>; + rockchip,pvtm-thermal-zone = "soc-thermal"; + rockchip,pvtm-low-len-sel = <0x03>; + rockchip,high-temp-max-freq = <0x21b100>; + opp-shared; + rockchip,reboot-freq = <0x1b7740>; + rockchip,pvtm-freq = <0x188940>; + rockchip,pvtm-ref-temp = <0x19>; + low-volt-mem-read-margin = <0x04>; + volt-mem-read-margin = <0xd0bd8 0x01 0xbac48 0x02 0xa4cb8 0x03 0x78d98 0x04>; + compatible = "operating-points-v2"; + rockchip,low-temp-min-volt = <0xb71b0>; + rockchip,grf = <0x26>; + nvmem-cell-names = "leakage\0opp-info\0specification_serial_number"; + rockchip,pvtm-voltage-sel = <0x00 0x63b 0x00 0x63c 0x64f 0x01 0x650 0x668 0x02 0x669 0x68b 0x03 0x68c 0x6ae 0x04 0x6af 0x6cf 0x05 0x6d0 0x6f0 0x06 0x6f1 0x270f 0x07>; + phandle = <0x16>; + rockchip,idle-threshold-freq = <0x21b100>; + rockchip,pvtm-temp-prop = <0x10e 0x10e>; + rockchip,temp-hysteresis = <0x1388>; + rockchip,high-temp = <0x14c08>; + rockchip,pvtm-pvtpll; + rockchip,supported-hw; + intermediate-threshold-freq = <0xf6180>; + rockchip,pvtm-volt = <0xb71b0>; + + opp-j-m-2016000000 { + opp-microvolt = <0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0>; + opp-microvolt-L6 = <0xd8acc 0xd8acc 0xe7ef0 0xd8acc 0xd8acc 0xe7ef0>; + opp-microvolt-L4 = <0xdec74 0xdec74 0xe7ef0 0xdec74 0xdec74 0xe7ef0>; + opp-microvolt-L2 = <0xe4e1c 0xe4e1c 0xe7ef0 0xe4e1c 0xe4e1c 0xe7ef0>; + opp-hz = <0x00 0x7829b800>; + opp-supported-hw = <0x06 0xffff>; + opp-microvolt-L7 = <0xd59f8 0xd59f8 0xe7ef0 0xd59f8 0xd59f8 0xe7ef0>; + opp-microvolt-L5 = <0xdbba0 0xdbba0 0xe7ef0 0xdbba0 0xdbba0 0xe7ef0>; + opp-microvolt-L3 = <0xe1d48 0xe1d48 0xe7ef0 0xe1d48 0xe1d48 0xe7ef0>; + clock-latency-ns = <0x9c40>; + opp-microvolt-L1 = <0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0>; + }; + + opp-1200000000 { + opp-microvolt = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; + opp-hz = <0x00 0x47868c00>; + opp-supported-hw = <0xf9 0xffff>; + clock-latency-ns = <0x9c40>; + }; + + opp-j-m-1416000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + opp-hz = <0x00 0x54667200>; + opp-microvolt-L0 = <0xba284 0xba284 0xe7ef0 0xba284 0xba284 0xe7ef0>; + opp-supported-hw = <0x06 0xffff>; + opp-suspend; + clock-latency-ns = <0x9c40>; + }; + + opp-1008000000 { + opp-microvolt = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; + opp-hz = <0x00 0x3c14dc00>; + opp-supported-hw = <0xf9 0xffff>; + clock-latency-ns = <0x9c40>; + }; + + opp-2256000000 { + opp-microvolt = <0xf4240 0xf4240 0xf4240 0xf4240 0xf4240 0xf4240>; + opp-hz = <0x00 0x8677d400>; + opp-supported-hw = <0xf9 0x13>; + clock-latency-ns = <0x9c40>; + }; + + opp-j-m-1200000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + opp-hz = <0x00 0x47868c00>; + opp-supported-hw = <0x06 0xffff>; + clock-latency-ns = <0x9c40>; + }; + + opp-j-m-1008000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + opp-hz = <0x00 0x3c14dc00>; + opp-supported-hw = <0x06 0xffff>; + clock-latency-ns = <0x9c40>; + }; + + opp-j-m-816000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + opp-hz = <0x00 0x30a32c00>; + opp-supported-hw = <0x06 0xffff>; + clock-latency-ns = <0x9c40>; + }; + + opp-2400000000 { + opp-microvolt = <0xf4240 0xf4240 0xf4240 0xf4240 0xf4240 0xf4240>; + opp-hz = <0x00 0x8f0d1800>; + opp-supported-hw = <0xf9 0x80>; + clock-latency-ns = <0x9c40>; + }; + + opp-1800000000 { + opp-microvolt = <0xcf850 0xcf850 0xf4240 0xcf850 0xcf850 0xf4240>; + opp-microvolt-L6 = <0xbd358 0xbd358 0xf4240 0xbd358 0xbd358 0xf4240>; + opp-microvolt-L4 = <0xc3500 0xc3500 0xf4240 0xc3500 0xc3500 0xf4240>; + opp-microvolt-L2 = <0xc96a8 0xc96a8 0xf4240 0xc96a8 0xc96a8 0xf4240>; + opp-hz = <0x00 0x6b49d200>; + opp-supported-hw = <0xf9 0xffff>; + opp-microvolt-L7 = <0xba284 0xba284 0xf4240 0xba284 0xba284 0xf4240>; + opp-microvolt-L5 = <0xc042c 0xc042c 0xf4240 0xc042c 0xc042c 0xf4240>; + opp-microvolt-L3 = <0xc65d4 0xc65d4 0xf4240 0xc65d4 0xc65d4 0xf4240>; + clock-latency-ns = <0x9c40>; + opp-microvolt-L1 = <0xcc77c 0xcc77c 0xf4240 0xcc77c 0xcc77c 0xf4240>; + }; + + opp-j-m-600000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + opp-hz = <0x00 0x23c34600>; + opp-supported-hw = <0x06 0xffff>; + clock-latency-ns = <0x9c40>; + }; + + opp-2208000000 { + opp-microvolt = <0xf116c 0xf116c 0xf4240 0xf116c 0xf116c 0xf4240>; + opp-microvolt-L6 = <0xe1d48 0xe1d48 0xf4240 0xe1d48 0xe1d48 0xf4240>; + opp-microvolt-L4 = <0xeafc4 0xeafc4 0xf4240 0xeafc4 0xeafc4 0xf4240>; + opp-microvolt-L2 = <0xeafc4 0xeafc4 0xf4240 0xeafc4 0xeafc4 0xf4240>; + opp-hz = <0x00 0x839b6800>; + opp-supported-hw = <0xf9 0xffff>; + opp-microvolt-L7 = <0xdec74 0xdec74 0xf4240 0xdec74 0xdec74 0xf4240>; + opp-microvolt-L5 = <0xe7ef0 0xe7ef0 0xf4240 0xe7ef0 0xe7ef0 0xf4240>; + opp-microvolt-L3 = <0xe7ef0 0xe7ef0 0xf4240 0xe7ef0 0xe7ef0 0xf4240>; + clock-latency-ns = <0x9c40>; + opp-microvolt-L1 = <0xee098 0xee098 0xf4240 0xee098 0xee098 0xf4240>; + }; + + opp-1608000000 { + opp-microvolt = <0xba284 0xba284 0xf4240 0xba284 0xba284 0xf4240>; + opp-microvolt-L6 = <0xaae60 0xaae60 0xf4240 0xaae60 0xaae60 0xf4240>; + opp-microvolt-L4 = <0xb1008 0xb1008 0xf4240 0xb1008 0xb1008 0xf4240>; + opp-microvolt-L2 = <0xb71b0 0xb71b0 0xf4240 0xb71b0 0xb71b0 0xf4240>; + opp-hz = <0x00 0x5fd82200>; + opp-supported-hw = <0xf9 0xffff>; + opp-microvolt-L7 = <0xaae60 0xaae60 0xf4240 0xaae60 0xaae60 0xf4240>; + opp-microvolt-L5 = <0xadf34 0xadf34 0xf4240 0xadf34 0xadf34 0xf4240>; + opp-microvolt-L3 = <0xb40dc 0xb40dc 0xf4240 0xb40dc 0xb40dc 0xf4240>; + clock-latency-ns = <0x9c40>; + }; + + opp-j-m-408000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + opp-hz = <0x00 0x18519600>; + opp-supported-hw = <0x06 0xffff>; + clock-latency-ns = <0x9c40>; + }; + + opp-j-m-1800000000 { + opp-microvolt = <0xd59f8 0xd59f8 0xe7ef0 0xd59f8 0xd59f8 0xe7ef0>; + opp-microvolt-L6 = <0xc3500 0xc3500 0xe7ef0 0xc3500 0xc3500 0xe7ef0>; + opp-microvolt-L4 = <0xc96a8 0xc96a8 0xe7ef0 0xc96a8 0xc96a8 0xe7ef0>; + opp-microvolt-L2 = <0xcf850 0xcf850 0xe7ef0 0xcf850 0xcf850 0xe7ef0>; + opp-hz = <0x00 0x6b49d200>; + opp-supported-hw = <0x06 0xffff>; + opp-microvolt-L7 = <0xc042c 0xc042c 0xe7ef0 0xc042c 0xc042c 0xe7ef0>; + opp-microvolt-L5 = <0xc65d4 0xc65d4 0xe7ef0 0xc65d4 0xc65d4 0xe7ef0>; + opp-microvolt-L3 = <0xcc77c 0xcc77c 0xe7ef0 0xcc77c 0xcc77c 0xe7ef0>; + clock-latency-ns = <0x9c40>; + opp-microvolt-L1 = <0xd2924 0xd2924 0xe7ef0 0xd2924 0xd2924 0xe7ef0>; + }; + + opp-2352000000 { + opp-microvolt = <0xf4240 0xf4240 0xf4240 0xf4240 0xf4240 0xf4240>; + opp-hz = <0x00 0x8c30ac00>; + opp-supported-hw = <0xf9 0x48>; + clock-latency-ns = <0x9c40>; + }; + + opp-816000000 { + opp-microvolt = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; + opp-hz = <0x00 0x30a32c00>; + opp-supported-hw = <0xf9 0xffff>; + clock-latency-ns = <0x9c40>; + }; + + opp-j-m-1608000000 { + opp-microvolt = <0xc042c 0xc042c 0xe7ef0 0xc042c 0xc042c 0xe7ef0>; + opp-microvolt-L6 = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + opp-microvolt-L4 = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + opp-microvolt-L2 = <0xbd358 0xbd358 0xe7ef0 0xbd358 0xbd358 0xe7ef0>; + opp-hz = <0x00 0x5fd82200>; + opp-supported-hw = <0x06 0xffff>; + opp-microvolt-L7 = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + opp-microvolt-L5 = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + opp-microvolt-L3 = <0xba284 0xba284 0xe7ef0 0xba284 0xba284 0xe7ef0>; + clock-latency-ns = <0x9c40>; + }; + + opp-600000000 { + opp-microvolt = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; + opp-hz = <0x00 0x23c34600>; + opp-supported-hw = <0xf9 0xffff>; + clock-latency-ns = <0x9c40>; + }; + + opp-2016000000 { + opp-microvolt = <0xe1d48 0xe1d48 0xf4240 0xe1d48 0xe1d48 0xf4240>; + opp-microvolt-L6 = <0xcf850 0xcf850 0xf4240 0xcf850 0xcf850 0xf4240>; + opp-microvolt-L4 = <0xd59f8 0xd59f8 0xf4240 0xd59f8 0xd59f8 0xf4240>; + opp-microvolt-L2 = <0xdbba0 0xdbba0 0xf4240 0xdbba0 0xdbba0 0xf4240>; + opp-hz = <0x00 0x7829b800>; + opp-supported-hw = <0xf9 0xffff>; + opp-microvolt-L7 = <0xcc77c 0xcc77c 0xf4240 0xcc77c 0xcc77c 0xf4240>; + opp-microvolt-L5 = <0xd2924 0xd2924 0xf4240 0xd2924 0xd2924 0xf4240>; + opp-microvolt-L3 = <0xd8acc 0xd8acc 0xf4240 0xd8acc 0xd8acc 0xf4240>; + clock-latency-ns = <0x9c40>; + opp-microvolt-L1 = <0xdec74 0xdec74 0xf4240 0xdec74 0xdec74 0xf4240>; + }; + + opp-1416000000 { + opp-microvolt = <0xb1008 0xb1008 0xf4240 0xb1008 0xb1008 0xf4240>; + opp-microvolt-L6 = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; + opp-microvolt-L4 = <0xaae60 0xaae60 0xf4240 0xaae60 0xaae60 0xf4240>; + opp-microvolt-L2 = <0xadf34 0xadf34 0xf4240 0xadf34 0xadf34 0xf4240>; + opp-hz = <0x00 0x54667200>; + opp-supported-hw = <0xf9 0xffff>; + opp-microvolt-L7 = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; + opp-microvolt-L5 = <0xa7d8c 0xa7d8c 0xf4240 0xa7d8c 0xa7d8c 0xf4240>; + opp-microvolt-L3 = <0xaae60 0xaae60 0xf4240 0xaae60 0xaae60 0xf4240>; + clock-latency-ns = <0x9c40>; + }; + + opp-408000000 { + opp-microvolt = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; + opp-hz = <0x00 0x18519600>; + opp-supported-hw = <0xf9 0xffff>; + opp-suspend; + clock-latency-ns = <0x9c40>; + }; + + opp-2304000000 { + opp-microvolt = <0xf4240 0xf4240 0xf4240 0xf4240 0xf4240 0xf4240>; + opp-hz = <0x00 0x89544000>; + opp-supported-hw = <0xf9 0x24>; + clock-latency-ns = <0x9c40>; + }; + }; + + mmc@fe2d0000 { + power-domains = <0x60 0x25>; + fifo-depth = <0x100>; + pinctrl-names = "default"; + pinctrl-0 = <0x119>; + clock-names = "biu\0ciu\0ciu-drive\0ciu-sample"; + interrupts = <0x00 0xcc 0x04>; + clocks = <0x02 0x199 0x02 0x19a 0x02 0x2c0 0x02 0x2c1>; + compatible = "rockchip,rk3588-dw-mshc\0rockchip,rk3288-dw-mshc"; + status = "disabled"; + reg = <0x00 0xfe2d0000 0x00 0x4000>; + phandle = <0x294>; + max-frequency = <0xbebc200>; + }; + + rkcif-mipi-lvds-sditf-vir3 { + compatible = "rockchip,rkcif-sditf"; + status = "disabled"; + rockchip,cif = <0x52>; + phandle = <0x22e>; + }; + + serial@feb90000 { + reg-io-width = <0x04>; + pinctrl-names = "default"; + pinctrl-0 = <0x165>; + clock-names = "baudclk\0apb_pclk"; + interrupts = <0x00 0x151 0x04>; + clocks = <0x02 0xcb 0x02 0xb0>; + compatible = "rockchip,rk3588-uart\0snps,dw-apb-uart"; + status = "okay"; + reg = <0x00 0xfeb90000 0x00 0x100>; + phandle = <0x2ce>; + dmas = <0xf1 0x0d 0xf1 0x0e>; + reg-shift = <0x02>; + }; + + i2s@fddf8000 { + power-domains = <0x60 0x1a>; + clock-names = "mclk_tx\0mclk_rx\0hclk"; + assigned-clocks = <0x02 0x239>; + assigned-clock-parents = <0x02 0x05>; + rockchip,capture-only; + resets = <0x02 0x3c3>; + interrupts = <0x00 0xbb 0x04>; + clocks = <0x02 0x23c 0x02 0x23c 0x02 0x238>; + dma-names = "rx"; + #sound-dai-cells = <0x00>; + compatible = "rockchip,rk3588-i2s-tdm"; + status = "okay"; + reg = <0x00 0xfddf8000 0x00 0x1000>; + phandle = <0x1ec>; + dmas = <0xf2 0x15>; + reset-names = "rx-m"; + }; + + phy@fee20000 { + rockchip,pipe-grf = <0x76>; + clock-names = "refclk\0apbclk\0phpclk"; + assigned-clocks = <0x02 0x2bf>; + assigned-clock-rates = <0x5f5e100>; + resets = <0x02 0x20007 0x02 0x4d8>; + clocks = <0x02 0x2bf 0x02 0x187 0x02 0x166>; + #phy-cells = <0x01>; + compatible = "rockchip,rk3588-naneng-combphy"; + status = "disabled"; + rockchip,pipe-phy-grf = <0x195>; + reg = <0x00 0xfee20000 0x00 0x100>; + phandle = <0x70>; + reset-names = "combphy-apb\0combphy"; + rockchip,pcie1ln-sel-bits = <0x100 0x01 0x01 0x00>; + }; + + csi2-dphy0-hw@fedc0000 { + clock-names = "pclk"; + resets = <0x02 0x17 0x02 0x16>; + clocks = <0x02 0x10c>; + compatible = "rockchip,rk3588-csi2-dphy-hw"; + status = "okay"; + rockchip,grf = <0x192>; + reg = <0x00 0xfedc0000 0x00 0x8000>; + phandle = <0x2d>; + reset-names = "srst_csiphy0\0srst_p_csiphy0"; + rockchip,sys_grf = <0xc8>; + }; + + can@fea70000 { + pinctrl-names = "default"; + pinctrl-0 = <0x147>; + clock-names = "baudclk\0apb_pclk"; + resets = <0x02 0xbd 0x02 0xbc>; + interrupts = <0x00 0x157 0x04>; + clocks = <0x02 0x74 0x02 0x73>; + compatible = "rockchip,can-2.0"; + status = "disabled"; + tx-fifo-depth = <0x01>; + rx-fifo-depth = <0x06>; + reg = <0x00 0xfea70000 0x00 0x1000>; + phandle = <0x2a2>; + reset-names = "can\0can-apb"; + }; + + mailbox@fec60000 { + clock-names = "pclk_mailbox"; + interrupts = <0x00 0x3d 0x04 0x00 0x3e 0x04 0x00 0x3f 0x04 0x00 0x40 0x04>; + clocks = <0x02 0x4c>; + #mbox-cells = <0x01>; + compatible = "rockchip,rk3588-mailbox\0rockchip,rk3368-mailbox"; + status = "disabled"; + reg = <0x00 0xfec60000 0x00 0x200>; + phandle = <0x2dd>; + }; + + usbdrd3_1 { + #address-cells = <0x02>; + clock-names = "ref\0suspend\0bus"; + clocks = <0x02 0x1a6 0x02 0x1a5 0x02 0x1a4>; + #size-cells = <0x02>; + compatible = "rockchip,rk3588-dwc3\0rockchip,rk3399-dwc3"; + ranges; + status = "okay"; + phandle = <0x47a>; + + usb@fc400000 { + power-domains = <0x60 0x1f>; + snps,dis-u1-entry-quirk; + snps,dis_enblslpm_quirk; + phy-names = "usb2-phy\0usb3-phy"; + snps,dis-u2-freeclk-exists-quirk; + phy_type = "utmi_wide"; + resets = <0x02 0x2a7>; + interrupts = <0x00 0xdd 0x04>; + snps,dis-u2-entry-quirk; + compatible = "snps,dwc3"; + snps,parkmode-disable-hs-quirk; + snps,dis-del-phy-power-chg-quirk; + status = "okay"; + snps,parkmode-disable-ss-quirk; + phys = <0x1a3 0x1a4>; + reg = <0x00 0xfc400000 0x00 0x400000>; + phandle = <0x47b>; + dr_mode = "host"; + reset-names = "usb3-otg"; + snps,dis-tx-ipgap-linecheck-quirk; + }; + }; + + sata@fe210000 { + phy-names = "sata-phy"; + clock-names = "sata\0pmalive\0rxoob\0ref\0asic"; + interrupts = <0x00 0x111 0x04>; + clocks = <0x02 0x171 0x02 0x16e 0x02 0x174 0x02 0x163 0x02 0x17e>; + compatible = "rockchip,rk-ahci\0snps,dwc-ahci"; + status = "okay"; + interrupt-names = "hostc"; + phys = <0x108 0x01>; + reg = <0x00 0xfe210000 0x00 0x1000>; + phandle = <0x290>; + ports-implemented = <0x01>; + }; + + leds { + compatible = "gpio-leds"; + status = "okay"; + phandle = <0x497>; + + user { + linux,default-trigger = "ir-user-click"; + label = ":user"; + default-state = "off"; + phandle = <0x499>; + gpios = <0x182 0x03 0x00>; + }; + + power { + linux,default-trigger = "ir-power-click"; + label = ":power"; + default-state = "on"; + status = "disabled"; + phandle = <0x498>; + gpios = <0x7b 0x15 0x00>; + }; + }; + + rkcif-mipi-lvds5-sditf-vir3 { + compatible = "rockchip,rkcif-sditf"; + status = "disabled"; + rockchip,cif = <0x1a2>; + phandle = <0x479>; + }; + + qos@fdf80000 { + compatible = "syscon"; + reg = <0x00 0xfdf80000 0x00 0x20>; + phandle = <0x9f>; + }; + + spdif-tx@fdde0000 { + power-domains = <0x60 0x1a>; + clock-names = "mclk\0hclk"; + assigned-clocks = <0x02 0x254>; + assigned-clock-parents = <0x02 0x05>; + interrupts = <0x00 0xc4 0x04>; + clocks = <0x02 0x257 0x02 0x253>; + dma-names = "tx"; + #sound-dai-cells = <0x00>; + compatible = "rockchip,rk3588-spdif\0rockchip,rk3568-spdif"; + status = "disabled"; + reg = <0x00 0xfdde0000 0x00 0x1000>; + phandle = <0x27e>; + dmas = <0xf1 0x07>; + }; + + qos@fdf35000 { + compatible = "syscon"; + reg = <0x00 0xfdf35000 0x00 0x20>; + phandle = <0x87>; + }; + + psci { + method = "smc"; + compatible = "arm,psci-1.0"; + }; + + rkcif-mipi-lvds { + iommus = <0x50>; + rockchip,hw = <0x4f>; + compatible = "rockchip,rkcif-mipi-lvds"; + status = "disabled"; + phandle = <0x52>; + }; + + rga@fdb80000 { + power-domains = <0x60 0x15>; + clock-names = "aclk_rga2\0hclk_rga2\0clk_rga2"; + interrupts = <0x00 0x74 0x04>; + clocks = <0x02 0x1b7 0x02 0x1b6 0x02 0x1b8>; + compatible = "rockchip,rga2_core0"; + status = "okay"; + interrupt-names = "rga2_irq"; + reg = <0x00 0xfdb80000 0x00 0x1000>; + phandle = <0x26b>; + }; + + qos@fdf66800 { + compatible = "syscon"; + reg = <0x00 0xfdf66800 0x00 0x20>; + phandle = <0x97>; + }; + + spi@feb10000 { + pinctrl-names = "default"; + #address-cells = <0x01>; + num-cs = <0x02>; + pinctrl-0 = <0x151 0x152 0x153>; + clock-names = "spiclk\0apb_pclk"; + interrupts = <0x00 0x147 0x04>; + clocks = <0x02 0xa4 0x02 0x9f>; + #size-cells = <0x00>; + dma-names = "tx\0rx"; + compatible = "rockchip,rk3066-spi"; + status = "disabled"; + reg = <0x00 0xfeb10000 0x00 0x1000>; + phandle = <0x2ac>; + dmas = <0x7c 0x10 0x7c 0x11>; + }; + + rkcif-mipi-lvds4-sditf { + compatible = "rockchip,rkcif-sditf"; + status = "disabled"; + rockchip,cif = <0x1a1>; + phandle = <0x472>; + }; + + hdmi@fdea0000 { + power-domains = <0x60 0x1a>; + reg-io-width = <0x04>; + pinctrl-names = "default"; + phy-names = "hdmi"; + pinctrl-0 = <0x1a8 0x1a9 0x1aa 0x1ab>; + clock-names = "pclk\0hpd\0earc\0hdmitx_ref\0aud\0dclk_vp0\0dclk_vp1\0dclk_vp2\0dclk_vp3\0hclk_vo1\0link_clk"; + resets = <0x02 0x3d7 0x02 0x49d>; + interrupts = <0x00 0xad 0x04 0x00 0xae 0x04 0x00 0xaf 0x04 0x00 0xb0 0x04 0x00 0x169 0x04>; + clocks = <0x02 0x224 0x02 0x266 0x02 0x225 0x02 0x226 0x02 0x24c 0x02 0x274 0x02 0x275 0x02 0x276 0x02 0x277 0x05 0x36>; + #sound-dai-cells = <0x00>; + compatible = "rockchip,rk3588-dw-hdmi"; + status = "disabled"; + rockchip,grf = <0xc8>; + phys = <0x1ac>; + reg = <0x00 0xfdea0000 0x00 0x10000 0x00 0xfdeb0000 0x00 0x10000>; + phandle = <0x1e1>; + reset-names = "ref\0hdp"; + rockchip,vo1_grf = <0xd8>; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x00>; + phandle = <0x482>; + + endpoint@1 { + remote-endpoint = <0x3f>; + status = "disabled"; + reg = <0x01>; + phandle = <0xe5>; + }; + + endpoint@2 { + remote-endpoint = <0x1ae>; + status = "disabled"; + reg = <0x02>; + phandle = <0xed>; + }; + + endpoint@0 { + remote-endpoint = <0x1ad>; + status = "disabled"; + reg = <0x00>; + phandle = <0xdf>; + }; + }; + }; + }; + + pcie@fe180000 { + #address-cells = <0x03>; + rockchip,pipe-grf = <0x76>; + phy-names = "pcie-phy"; + bus-range = <0x30 0x3f>; + clock-names = "aclk_mst\0aclk_slv\0aclk_dbi\0pclk\0aux\0pipe"; + reg-names = "pcie-apb\0pcie-dbi"; + num-ob-windows = <0x08>; + resets = <0x02 0x210 0x02 0x21f>; + interrupts = <0x00 0xf8 0x04 0x00 0xf7 0x04 0x00 0xf6 0x04 0x00 0xf5 0x04 0x00 0xf4 0x04>; + clocks = <0x02 0x151 0x02 0x156 0x02 0x14c 0x02 0x15c 0x02 0x161 0x02 0x2c5>; + interrupt-map = <0x00 0x00 0x00 0x01 0x105 0x00 0x00 0x00 0x00 0x02 0x105 0x01 0x00 0x00 0x00 0x03 0x105 0x02 0x00 0x00 0x00 0x04 0x105 0x03>; + #size-cells = <0x02>; + max-link-speed = <0x02>; + device_type = "pci"; + interrupt-map-mask = <0x00 0x00 0x00 0x07>; + num-lanes = <0x01>; + compatible = "rockchip,rk3588-pcie\0snps,dw-pcie"; + ranges = <0x800 0x00 0xf3000000 0x00 0xf3000000 0x00 0x100000 0x81000000 0x00 0xf3100000 0x00 0xf3100000 0x00 0x100000 0x82000000 0x00 0xf3200000 0x00 0xf3200000 0x00 0xe00000 0xc3000000 0x09 0xc0000000 0x09 0xc0000000 0x00 0x40000000>; + msi-map = <0x3000 0x106 0x3000 0x1000>; + #interrupt-cells = <0x01>; + status = "disabled"; + interrupt-names = "sys\0pmc\0msg\0legacy\0err"; + phys = <0x70 0x02>; + num-viewport = <0x04>; + reg = <0x00 0xfe180000 0x00 0x10000 0x0a 0x40c00000 0x00 0x400000>; + linux,pci-domain = <0x03>; + phandle = <0x28c>; + reset-names = "pcie\0periph"; + num-ib-windows = <0x08>; + + legacy-interrupt-controller { + #address-cells = <0x00>; + interrupts = <0x00 0xf5 0x01>; + interrupt-parent = <0x01>; + #interrupt-cells = <0x01>; + phandle = <0x105>; + interrupt-controller; + }; + }; + + i2s@fe480000 { + pinctrl-names = "default"; + pinctrl-0 = <0x120 0x121 0x122 0x123 0x124 0x125 0x126 0x127 0x128 0x129>; + clock-names = "mclk_tx\0mclk_rx\0hclk"; + resets = <0x02 0xc002a 0x02 0xc002d>; + interrupts = <0x00 0xb5 0x04>; + clocks = <0x02 0x28c 0x02 0x290 0x02 0x288>; + dma-names = "tx\0rx"; + #sound-dai-cells = <0x00>; + compatible = "rockchip,rk3588-i2s-tdm"; + status = "disabled"; + reg = <0x00 0xfe480000 0x00 0x1000>; + phandle = <0x1d1>; + dmas = <0x7c 0x02 0x7c 0x03>; + reset-names = "tx-m\0rx-m"; + rockchip,clk-trcm = <0x01>; + }; + + syscon@fd5c0000 { + compatible = "rockchip,pipe-phy-grf\0syscon"; + reg = <0x00 0xfd5c0000 0x00 0x100>; + phandle = <0x1cb>; + }; + + i2c@feab0000 { + pinctrl-names = "default"; + #address-cells = <0x01>; + pinctrl-0 = <0x14a>; + clock-names = "i2c\0pclk"; + resets = <0x02 0xb2 0x02 0xaa>; + interrupts = <0x00 0x140 0x04>; + clocks = <0x02 0x8f 0x02 0x87>; + #size-cells = <0x00>; + compatible = "rockchip,rk3588-i2c\0rockchip,rk3399-i2c"; + status = "okay"; + reg = <0x00 0xfeab0000 0x00 0x1000>; + phandle = <0x2a6>; + reset-names = "i2c\0apb"; + + gpio@21 { + gpio-controller; + gpio-group-num = <0xc8>; + compatible = "nxp,pca9555"; + status = "okay"; + reg = <0x21>; + phandle = <0x182>; + #gpio-cells = <0x02>; + }; + }; + + iommu@fdcb7f00 { + power-domains = <0x60 0x1b>; + clock-names = "aclk\0iface"; + interrupts = <0x00 0x84 0x04>; + clocks = <0x02 0x1de 0x02 0x1df>; + #iommu-cells = <0x00>; + compatible = "rockchip,iommu-v2"; + rockchip,disable-mmu-reset; + status = "okay"; + interrupt-names = "isp0_mmu"; + reg = <0x00 0xfdcb7f00 0x00 0x100>; + phandle = <0xd0>; + }; + + qos@fdf3e600 { + compatible = "syscon"; + reg = <0x00 0xfdf3e600 0x00 0x20>; + phandle = <0xae>; + }; + + syscon@fd5b8000 { + compatible = "rockchip,pcie30-phy-grf\0syscon"; + reg = <0x00 0xfd5b8000 0x00 0x10000>; + phandle = <0x1cc>; + }; + + qos@fdf81200 { + compatible = "syscon"; + reg = <0x00 0xfdf81200 0x00 0x20>; + phandle = <0xa1>; + }; + + mipi5-csi2-hw@fdd60000 { + clock-names = "pclk_csi2host"; + reg-names = "csihost_regs"; + resets = <0x02 0x329>; + interrupts = <0x00 0x99 0x04 0x00 0x9a 0x04>; + clocks = <0x02 0x1d4>; + compatible = "rockchip,rk3588-mipi-csi2-hw"; + status = "okay"; + interrupt-names = "csi-intr1\0csi-intr2"; + reg = <0x00 0xfdd60000 0x00 0x10000>; + phandle = <0x4c>; + reset-names = "srst_csihost_p"; + }; + + qos@fdf72000 { + compatible = "syscon"; + reg = <0x00 0xfdf72000 0x00 0x20>; + phandle = <0x82>; + }; + + timer@feae0000 { + clock-names = "pclk\0timer"; + interrupts = <0x00 0x121 0x04>; + clocks = <0x02 0x5c 0x02 0x5f>; + compatible = "rockchip,rk3588-timer\0rockchip,rk3288-timer"; + reg = <0x00 0xfeae0000 0x00 0x20>; + phandle = <0x2a9>; + }; + + rkcif-mipi-lvds-sditf-vir1 { + compatible = "rockchip,rkcif-sditf"; + status = "disabled"; + rockchip,cif = <0x52>; + phandle = <0x22c>; + }; + + syscon@fd5b5000 { + compatible = "rockchip,mipi-dphy-grf\0syscon"; + reg = <0x00 0xfd5b5000 0x00 0x1000>; + phandle = <0x193>; + }; + + i2c@fec90000 { + pinctrl-names = "default"; + #address-cells = <0x01>; + pinctrl-0 = <0x185>; + clock-names = "i2c\0pclk"; + resets = <0x02 0xb6 0x02 0xae>; + interrupts = <0x00 0x144 0x04>; + clocks = <0x02 0x93 0x02 0x8b>; + #size-cells = <0x00>; + compatible = "rockchip,rk3588-i2c\0rockchip,rk3399-i2c"; + status = "disabled"; + reg = <0x00 0xfec90000 0x00 0x1000>; + phandle = <0x2e4>; + reset-names = "i2c\0apb"; + }; + + avsd-plus@fdb51000 { + power-domains = <0x60 0x15>; + iommus = <0xb7>; + clock-names = "aclk_vcodec\0hclk_vcodec"; + assigned-clocks = <0x02 0x1c0>; + rockchip,normal-rates = <0x2367b880 0x00>; + assigned-clock-rates = <0x2367b880>; + resets = <0x02 0x2c8 0x02 0x2c9>; + interrupts = <0x00 0x77 0x04>; + clocks = <0x02 0x1c0 0x02 0x1c1>; + rockchip,srv = <0xb8>; + rockchip,taskqueue-node = <0x00>; + rockchip,disable-auto-freq; + compatible = "rockchip,avs-plus-decoder"; + rockchip,resetgroup-node = <0x00>; + status = "disabled"; + interrupt-names = "irq_avsd"; + rockchip,skip-pmu-idle-request; + reg = <0x00 0xfdb51000 0x00 0x200>; + phandle = <0x268>; + reset-names = "shared_video_a\0shared_video_h"; + }; + + dp1-sound { + rockchip,jack-det; + rockchip,cpu = <0x1e2>; + rockchip,codec = <0x1e3 0x01>; + rockchip,card-name = "rockchip,dp1"; + compatible = "rockchip,hdmi"; + status = "disabled"; + phandle = <0x4a9>; + rockchip,mclk-fs = <0x200>; + }; + + mipi1-csi2-hw@fdd20000 { + clock-names = "pclk_csi2host"; + reg-names = "csihost_regs"; + resets = <0x02 0x325>; + interrupts = <0x00 0x91 0x04 0x00 0x92 0x04>; + clocks = <0x02 0x1d0>; + compatible = "rockchip,rk3588-mipi-csi2-hw"; + status = "okay"; + interrupt-names = "csi-intr1\0csi-intr2"; + reg = <0x00 0xfdd20000 0x00 0x10000>; + phandle = <0x48>; + reset-names = "srst_csihost_p"; + }; + + iep@fdbb0000 { + power-domains = <0x60 0x15>; + iommus = <0xc1>; + clock-names = "aclk\0hclk\0sclk"; + assigned-clocks = <0x02 0x1aa>; + rockchip,normal-rates = <0x2367b880 0x00>; + assigned-clock-rates = <0x2367b880>; + resets = <0x02 0x2d5 0x02 0x2d4 0x02 0x2d6>; + interrupts = <0x00 0x75 0x04>; + clocks = <0x02 0x1aa 0x02 0x1a9 0x02 0x1ab>; + rockchip,srv = <0xb8>; + rockchip,taskqueue-node = <0x06>; + rockchip,disable-auto-freq; + compatible = "rockchip,iep-v2"; + status = "okay"; + interrupt-names = "irq_iep"; + rockchip,skip-pmu-idle-request; + reg = <0x00 0xfdbb0000 0x00 0x500>; + phandle = <0x271>; + reset-names = "rst_a\0rst_h\0rst_s"; + }; + + dsi@fde20000 { + power-domains = <0x60 0x18>; + #address-cells = <0x01>; + phy-names = "dcphy"; + clock-names = "pclk\0sys_clk"; + resets = <0x02 0x354>; + interrupts = <0x00 0xa7 0x04>; + clocks = <0x02 0x278 0x02 0x27a>; + #size-cells = <0x00>; + compatible = "rockchip,rk3588-mipi-dsi2"; + status = "disabled"; + rockchip,grf = <0xd7>; + phys = <0x2f>; + reg = <0x00 0xfde20000 0x00 0x10000>; + phandle = <0x281>; + reset-names = "apb"; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x00>; + phandle = <0x282>; + + endpoint@1 { + remote-endpoint = <0x39>; + status = "disabled"; + reg = <0x01>; + phandle = <0xee>; + }; + + endpoint@0 { + remote-endpoint = <0xf3>; + status = "disabled"; + reg = <0x00>; + phandle = <0xe9>; + }; + }; + }; + }; + + rkcif-mipi-lvds5-sditf-vir1 { + compatible = "rockchip,rkcif-sditf"; + status = "disabled"; + rockchip,cif = <0x1a2>; + phandle = <0x477>; + }; + + edp@fded0000 { + power-domains = <0x60 0x1a>; + phy-names = "dp"; + clock-names = "dp\0pclk\0spdif\0hclk"; + resets = <0x02 0x3e4 0x02 0x3e3>; + interrupts = <0x00 0xa4 0x04>; + clocks = <0x02 0x214 0x02 0x213 0x02 0x215 0x05>; + compatible = "rockchip,rk3588-edp"; + status = "disabled"; + rockchip,grf = <0xd8>; + phys = <0x1af>; + reg = <0x00 0xfded0000 0x00 0x1000>; + phandle = <0x483>; + reset-names = "dp\0apb"; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x00>; + + endpoint@1 { + remote-endpoint = <0x1b1>; + status = "disabled"; + reg = <0x01>; + phandle = <0xe4>; + }; + + endpoint@2 { + remote-endpoint = <0x1b2>; + status = "disabled"; + reg = <0x02>; + phandle = <0xec>; + }; + + endpoint@0 { + remote-endpoint = <0x1b0>; + status = "disabled"; + reg = <0x00>; + phandle = <0xde>; + }; + }; + + port@1 { + reg = <0x01>; + + endpoint { + phandle = <0x484>; + }; + }; + }; + }; + + qos@fdf67000 { + compatible = "syscon"; + reg = <0x00 0xfdf67000 0x00 0x20>; + phandle = <0x9c>; + }; + + qos@fdf64000 { + compatible = "syscon"; + reg = <0x00 0xfdf64000 0x00 0x20>; + phandle = <0x9b>; + }; + + npu-opp-table { + rockchip,pvtm-offset = <0x50>; + rockchip,pvtm-sample-time = <0x44c>; + rockchip,init-freq = <0xf4240>; + rockchip,pvtm-hw = <0x06>; + nvmem-cells = <0xb4 0xb5 0x21>; + rockchip,low-temp = <0x2710>; + rockchip,pvtm-voltage-sel-hw = <0x00 0x31f 0x00 0x320 0x333 0x01 0x334 0x34c 0x02 0x34d 0x365 0x03 0x366 0x37e 0x04 0x37f 0x270f 0x05>; + rockchip,pvtm-thermal-zone = "npu-thermal"; + rockchip,high-temp-max-freq = "\0\f5"; + rockchip,opp-clocks = <0x02 0x12a 0x02 0x12f>; + rockchip,pvtm-freq = "\0\f5"; + rockchip,pvtm-ref-temp = <0x19>; + low-volt-mem-read-margin = <0x04>; + volt-mem-read-margin = <0xd0bd8 0x01 0xbac48 0x02 0xa4cb8 0x03 0x78d98 0x04>; + compatible = "operating-points-v2"; + rockchip,low-temp-min-volt = <0xb71b0>; + rockchip,grf = <0xb6>; + nvmem-cell-names = "leakage\0opp-info\0specification_serial_number"; + rockchip,pvtm-voltage-sel = <0x00 0x32f 0x00 0x330 0x343 0x01 0x344 0x35c 0x02 0x35d 0x375 0x03 0x376 0x38e 0x04 0x38f 0x270f 0x05>; + phandle = <0xb1>; + rockchip,pvtm-temp-prop = <0xffffff8f 0xffffff8f>; + rockchip,temp-hysteresis = <0x1388>; + rockchip,high-temp = <0x14c08>; + rockchip,pvtm-pvtpll; + rockchip,supported-hw; + intermediate-threshold-freq = <0x7a120>; + rockchip,pvtm-volt = <0xb71b0>; + + opp-j-m-700000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; + opp-hz = <0x00 0x29b92700>; + opp-supported-hw = <0x06 0xffff>; + }; + + opp-300000000 { + opp-microvolt = <0xaae60 0xaae60 0xcf850 0xaae60 0xaae60 0xcf850>; + opp-microvolt-L4 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + opp-microvolt-L2 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + opp-hz = <0x00 0x11e1a300>; + opp-supported-hw = <0xf9 0xffff>; + opp-microvolt-L5 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + opp-microvolt-L3 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + opp-microvolt-L1 = <0xa7d8c 0xa7d8c 0xcf850 0xa7d8c 0xa7d8c 0xcf850>; + }; + + opp-500000000 { + opp-microvolt = <0xaae60 0xaae60 0xcf850 0xaae60 0xaae60 0xcf850>; + opp-microvolt-L4 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + opp-microvolt-L2 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + opp-hz = <0x00 0x1dcd6500>; + opp-supported-hw = <0xf9 0xffff>; + opp-microvolt-L5 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + opp-microvolt-L3 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + opp-microvolt-L1 = <0xa7d8c 0xa7d8c 0xcf850 0xa7d8c 0xa7d8c 0xcf850>; + }; + + opp-j-m-400000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; + opp-hz = <0x00 0x17d78400>; + opp-supported-hw = <0x06 0xffff>; + }; + + opp-700000000 { + opp-microvolt = <0xaae60 0xaae60 0xcf850 0xaae60 0xaae60 0xcf850>; + opp-microvolt-L4 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + opp-hz = <0x00 0x29b92700>; + opp-supported-hw = <0xf9 0xffff>; + opp-microvolt-L5 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + opp-microvolt-L3 = <0xa7d8c 0xa7d8c 0xcf850 0xa7d8c 0xa7d8c 0xcf850>; + }; + + opp-j-m-950000000 { + opp-microvolt = <0xcc77c 0xcc77c 0xcf850 0xcc77c 0xcc77c 0xcf850>; + opp-microvolt-L4 = <0xc042c 0xc042c 0xcf850 0xc042c 0xc042c 0xcf850>; + opp-microvolt-L2 = <0xc65d4 0xc65d4 0xcf850 0xc65d4 0xc65d4 0xcf850>; + opp-hz = <0x00 0x389fd980>; + opp-supported-hw = <0x06 0xffff>; + opp-microvolt-L5 = <0xbd358 0xbd358 0xcf850 0xbd358 0xbd358 0xcf850>; + opp-microvolt-L3 = <0xc3500 0xc3500 0xcf850 0xc3500 0xc3500 0xcf850>; + opp-microvolt-L1 = <0xc96a8 0xc96a8 0xcf850 0xc96a8 0xc96a8 0xcf850>; + }; + + opp-j-m-600000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; + opp-hz = <0x00 0x23c34600>; + opp-supported-hw = <0x06 0xffff>; + }; + + opp-900000000 { + opp-microvolt = <0xc3500 0xc3500 0xcf850 0xc3500 0xc3500 0xcf850>; + opp-microvolt-L4 = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; + opp-microvolt-L2 = <0xbd358 0xbd358 0xcf850 0xbd358 0xbd358 0xcf850>; + opp-hz = <0x00 0x35a4e900>; + opp-supported-hw = <0xf9 0xffff>; + opp-microvolt-L5 = <0xb40dc 0xb40dc 0xcf850 0xb40dc 0xb40dc 0xcf850>; + opp-microvolt-L3 = <0xba284 0xba284 0xcf850 0xba284 0xba284 0xcf850>; + opp-microvolt-L1 = <0xc042c 0xc042c 0xcf850 0xc042c 0xc042c 0xcf850>; + }; + + opp-j-m-800000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; + opp-hz = <0x00 0x2faf0800>; + opp-supported-hw = <0x06 0xffff>; + }; + + opp-400000000 { + opp-microvolt = <0xaae60 0xaae60 0xcf850 0xaae60 0xaae60 0xcf850>; + opp-microvolt-L4 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + opp-microvolt-L2 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + opp-hz = <0x00 0x17d78400>; + opp-supported-hw = <0xf9 0xffff>; + opp-microvolt-L5 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + opp-microvolt-L3 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + opp-microvolt-L1 = <0xa7d8c 0xa7d8c 0xcf850 0xa7d8c 0xa7d8c 0xcf850>; + }; + + opp-j-m-300000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; + opp-hz = <0x00 0x11e1a300>; + opp-supported-hw = <0x06 0xffff>; + }; + + opp-600000000 { + opp-microvolt = <0xaae60 0xaae60 0xcf850 0xaae60 0xaae60 0xcf850>; + opp-microvolt-L4 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + opp-microvolt-L2 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + opp-hz = <0x00 0x23c34600>; + opp-supported-hw = <0xf9 0xffff>; + opp-microvolt-L5 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + opp-microvolt-L3 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + opp-microvolt-L1 = <0xa7d8c 0xa7d8c 0xcf850 0xa7d8c 0xa7d8c 0xcf850>; + }; + + opp-1000000000 { + opp-microvolt = <0xcf850 0xcf850 0xcf850 0xcf850 0xcf850 0xcf850>; + opp-microvolt-L4 = <0xc3500 0xc3500 0xcf850 0xc3500 0xc3500 0xcf850>; + opp-microvolt-L2 = <0xc96a8 0xc96a8 0xcf850 0xc96a8 0xc96a8 0xcf850>; + opp-hz = <0x00 0x3b9aca00>; + opp-supported-hw = <0xf9 0xffff>; + opp-microvolt-L5 = <0xc042c 0xc042c 0xcf850 0xc042c 0xc042c 0xcf850>; + opp-microvolt-L3 = <0xc65d4 0xc65d4 0xcf850 0xc65d4 0xc65d4 0xcf850>; + opp-microvolt-L1 = <0xcc77c 0xcc77c 0xcf850 0xcc77c 0xcc77c 0xcf850>; + }; + + opp-j-m-500000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; + opp-hz = <0x00 0x1dcd6500>; + opp-supported-hw = <0x06 0xffff>; + }; + + opp-800000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; + opp-microvolt-L4 = <0xadf34 0xadf34 0xcf850 0xadf34 0xadf34 0xcf850>; + opp-microvolt-L2 = <0xb40dc 0xb40dc 0xcf850 0xb40dc 0xb40dc 0xcf850>; + opp-hz = <0x00 0x2faf0800>; + opp-supported-hw = <0xf9 0xffff>; + opp-microvolt-L5 = <0xaae60 0xaae60 0xcf850 0xaae60 0xaae60 0xcf850>; + opp-microvolt-L3 = <0xb1008 0xb1008 0xcf850 0xb1008 0xb1008 0xcf850>; + }; + }; + + syscon@fd590000 { + compatible = "rockchip,rk3588-bigcore0-grf\0syscon"; + reg = <0x00 0xfd590000 0x00 0x100>; + phandle = <0x26>; + }; + + syscon@fd5dc000 { + #address-cells = <0x01>; + #size-cells = <0x01>; + compatible = "rockchip,rk3588-usb2phy-grf\0syscon\0simple-mfd"; + reg = <0x00 0xfd5dc000 0x00 0x4000>; + phandle = <0x25e>; + + usb2-phy@c000 { + clock-output-names = "usb480m_phy3"; + clock-names = "phyclk"; + resets = <0x02 0xc004a 0x02 0x48b>; + interrupts = <0x00 0x188 0x04>; + clocks = <0x02 0x2b5>; + #clock-cells = <0x00>; + compatible = "rockchip,rk3588-usb2phy"; + status = "okay"; + reg = <0xc000 0x10>; + phandle = <0x6d>; + reset-names = "phy\0apb"; + + host-port { + phy-supply = <0x75>; + #phy-cells = <0x00>; + status = "okay"; + phandle = <0x6f>; + }; + }; + }; + + pcie-clk3 { + regulator-boot-on; + regulator-always-on; + regulator-name = "pcie_clk3"; + compatible = "regulator-fixed"; + status = "okay"; + phandle = <0x496>; + gpios = <0xfe 0x09 0x01>; + }; + + pwm@febf0030 { + pinctrl-names = "active"; + pinctrl-0 = <0x174>; + clock-names = "pwm\0pclk"; + interrupts = <0x00 0x15e 0x04 0x00 0x15f 0x04>; + clocks = <0x02 0x5a 0x02 0x59>; + #pwm-cells = <0x03>; + compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; + status = "disabled"; + reg = <0x00 0xfebf0030 0x00 0x10>; + phandle = <0x2dc>; + }; + + hwspinlock@fe5a0000 { + compatible = "rockchip,hwspinlock"; + reg = <0x00 0xfe5a0000 0x00 0x100>; + phandle = <0x29f>; + #hwlock-cells = <0x01>; + }; + + rkcif-mipi-lvds4-sditf-vir2 { + compatible = "rockchip,rkcif-sditf"; + status = "disabled"; + rockchip,cif = <0x1a1>; + phandle = <0x474>; + }; + + sram@10f000 { + #address-cells = <0x01>; + #size-cells = <0x01>; + compatible = "mmio-sram"; + ranges = <0x00 0x00 0x10f000 0x100>; + reg = <0x00 0x10f000 0x00 0x100>; + + sram@0 { + compatible = "arm,scmi-shmem"; + reg = <0x00 0x100>; + phandle = <0x46>; + }; + }; + + hdmirx-controller@fdee0000 { + power-domains = <0x60 0x1a>; + pinctrl-names = "default"; + pinctrl-0 = <0x1b3 0x1b4>; + clock-names = "aclk\0audio\0cr_para\0pclk\0ref\0hclk_s_hdmirx\0hclk_vo1"; + reg-names = "hdmirx_regs"; + resets = <0x02 0x3d9 0x02 0x3da 0x02 0x3db 0x02 0x3b7>; + interrupts = <0x00 0xb1 0x04 0x00 0x1b4 0x04 0x00 0xb3 0x04>; + clocks = <0x02 0x21a 0x02 0x21f 0x02 0x2b2 0x02 0x21b 0x02 0x21c 0x02 0x232 0x05>; + hpd-trigger-level = <0x01>; + #sound-dai-cells = <0x01>; + compatible = "rockchip,rk3588-hdmirx-ctrler\0rockchip,hdmirx-ctrler"; + status = "disabled"; + rockchip,grf = <0xc8>; + interrupt-names = "cec\0hdmi\0dma"; + hdmirx-det-gpios = <0xfe 0x1d 0x01>; + reg = <0x00 0xfdee0000 0x00 0x6000>; + phandle = <0x1eb>; + reset-names = "rst_a\0rst_p\0rst_ref\0rst_biu"; + rockchip,vo1_grf = <0xd8>; + }; + + qos@fdf61000 { + compatible = "syscon"; + reg = <0x00 0xfdf61000 0x00 0x20>; + phandle = <0x90>; + }; + + qos@fdf40600 { + compatible = "syscon"; + reg = <0x00 0xfdf40600 0x00 0x20>; + phandle = <0xa4>; + }; + + syscon@fd588000 { + compatible = "rockchip,rk3588-pmu0-grf\0syscon\0simple-mfd"; + reg = <0x00 0xfd588000 0x00 0x2000>; + phandle = <0x25a>; + + reboot-mode { + mode-normal = <0x5242c300>; + mode-loader = <0x5242c301>; + mode-quiescent = <0x5242c30e>; + mode-bootloader = <0x5242c301>; + mode-recovery = <0x5242c303>; + mode-watchdog = <0x5242c308>; + mode-ums = <0x5242c30c>; + mode-fastboot = <0x5242c309>; + offset = <0x80>; + compatible = "syscon-reboot-mode"; + mode-winusb = <0x5242c30f>; + phandle = <0x25b>; + mode-charge = <0x5242c30b>; + mode-panic = <0x5242c307>; + }; + }; + + syscon@fd5a4000 { + compatible = "rockchip,rk3588-vop-grf\0syscon"; + reg = <0x00 0xfd5a4000 0x00 0x2000>; + phandle = <0xd7>; + }; + + iommu@fdb60f00 { + power-domains = <0x60 0x16>; + clock-names = "aclk\0iface"; + interrupts = <0x00 0x72 0x04>; + clocks = <0x02 0x1ba 0x02 0x1b9>; + #iommu-cells = <0x00>; + compatible = "rockchip,iommu-v2"; + status = "okay"; + interrupt-names = "rga3_0_mmu"; + reg = <0x00 0xfdb60f00 0x00 0x100>; + phandle = <0xb9>; + }; + + pwm@febf0020 { + pinctrl-names = "active"; + pinctrl-0 = <0x173>; + clock-names = "pwm\0pclk"; + interrupts = <0x00 0x15e 0x04>; + clocks = <0x02 0x5a 0x02 0x59>; + #pwm-cells = <0x03>; + compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; + status = "disabled"; + reg = <0x00 0xfebf0020 0x00 0x10>; + phandle = <0x2db>; + }; + + rkispp@fdcd0000 { + power-domains = <0x60 0x1d>; + iommus = <0xd2>; + clock-names = "aclk_ispp\0hclk_ispp\0clk_ispp"; + assigned-clocks = <0x02 0x1d6>; + assigned-clock-rates = <0x5f5e100>; + interrupts = <0x00 0x8b 0x04>; + clocks = <0x02 0x1d5 0x02 0x1d6 0x02 0x1d7>; + compatible = "rockchip,rk3588-rkispp"; + status = "disabled"; + interrupt-names = "fec_irq"; + reg = <0x00 0xfdcd0000 0x00 0xf00>; + phandle = <0x5b>; + }; + + tsadc@fec00000 { + pinctrl-names = "gpio\0otpout"; + pinctrl-0 = <0x175>; + clock-names = "tsadc\0apb_pclk"; + rockchip,hw-tshut-polarity = <0x00>; + assigned-clocks = <0x02 0xaa>; + assigned-clock-rates = <0x1e8480>; + resets = <0x02 0xc1 0x02 0xc0>; + interrupts = <0x00 0x18d 0x04>; + rockchip,hw-tshut-mode = <0x00>; + clocks = <0x02 0xaa 0x02 0xa9>; + #thermal-sensor-cells = <0x01>; + compatible = "rockchip,rk3588-tsadc"; + pinctrl-1 = <0x176>; + status = "okay"; + reg = <0x00 0xfec00000 0x00 0x400>; + phandle = <0x5d>; + reset-names = "tsadc\0tsadc-apb"; + rockchip,hw-tshut-temp = <0x1d4c0>; + }; + + iommu@fdbb0800 { + power-domains = <0x60 0x15>; + clock-names = "aclk\0iface"; + interrupts = <0x00 0x75 0x04>; + clocks = <0x02 0x1aa 0x02 0x1a9>; + #iommu-cells = <0x00>; + compatible = "rockchip,iommu-v2"; + status = "okay"; + interrupt-names = "irq_iep_mmu"; + reg = <0x00 0xfdbb0800 0x00 0x100>; + phandle = <0xc1>; + }; + + phy@fed60000 { + clock-names = "ref\0apb"; + resets = <0x02 0x485 0x02 0xc003b 0x02 0xc003c 0x02 0xc003d>; + clocks = <0x02 0x2b5 0x02 0x267>; + #phy-cells = <0x00>; + compatible = "rockchip,rk3588-hdptx-phy"; + status = "disabled"; + rockchip,grf = <0x18a>; + reg = <0x00 0xfed60000 0x00 0x2000>; + phandle = <0x101>; + reset-names = "apb\0init\0cmn\0lane"; + }; + + pvtm@fda50000 { + #address-cells = <0x01>; + #size-cells = <0x00>; + compatible = "rockchip,rk3588-bigcore1-pvtm"; + reg = <0x00 0xfda50000 0x00 0x100>; + + pvtm@1 { + clock-names = "clk\0pclk"; + clocks = <0x02 0x2c8 0x02 0x17>; + reg = <0x01>; + }; + }; + + csi2-dcphy0 { + rockchip,hw = <0x2d 0x2e>; + phy-names = "dcphy0\0dcphy1"; + compatible = "rockchip,rk3588-csi2-dphy"; + status = "disabled"; + phys = <0x2f 0x30>; + phandle = <0x20d>; + }; + + mailbox@fece0000 { + clock-names = "pclk_mailbox"; + interrupts = <0x00 0x4d 0x04 0x00 0x4e 0x04 0x00 0x4f 0x04 0x00 0x50 0x04>; + clocks = <0x02 0x4e>; + #mbox-cells = <0x01>; + compatible = "rockchip,rk3588-mailbox\0rockchip,rk3368-mailbox"; + status = "disabled"; + reg = <0x00 0xfece0000 0x00 0x200>; + phandle = <0x2e9>; + }; + + rkcif-mipi-lvds3-sditf-vir3 { + compatible = "rockchip,rkcif-sditf"; + status = "disabled"; + rockchip,cif = <0x57>; + phandle = <0x23a>; + }; + + rkcif-mipi-lvds1-sditf { + compatible = "rockchip,rkcif-sditf"; + status = "disabled"; + rockchip,cif = <0x53>; + phandle = <0x22f>; + }; + + dfi@fe060000 { + rockchip,pmu_grf = <0x104>; + compatible = "rockchip,rk3588-dfi"; + status = "disabled"; + reg = <0x00 0xfe060000 0x00 0x10000>; + phandle = <0x40>; + }; + + iommu@fdca0000 { + power-domains = <0x60 0x17>; + clock-names = "aclk\0iface"; + interrupts = <0x00 0x6d 0x04>; + clocks = <0x02 0x49 0x02 0x4b>; + #iommu-cells = <0x00>; + compatible = "rockchip,iommu-av1"; + status = "okay"; + interrupt-names = "irq_av1d_mmu"; + reg = <0x00 0xfdca0000 0x00 0x600>; + phandle = <0xce>; + }; + + mipi5-csi2 { + rockchip,hw = <0x47 0x48 0x49 0x4a 0x4b 0x4c>; + compatible = "rockchip,rk3588-mipi-csi2"; + status = "disabled"; + phandle = <0x229>; + }; + + qos@fdf35600 { + compatible = "syscon"; + reg = <0x00 0xfdf35600 0x00 0x20>; + phandle = <0x8a>; + }; + + syscon@fd5e4000 { + compatible = "rockchip,rk3588-hdptxphy-grf\0syscon"; + reg = <0x00 0xfd5e4000 0x00 0x100>; + phandle = <0x1c7>; + }; + + iommu@fdba8800 { + power-domains = <0x60 0x15>; + clock-names = "aclk\0iface"; + interrupts = <0x00 0x7d 0x04>; + clocks = <0x02 0x1b0 0x02 0x1b1>; + #iommu-cells = <0x00>; + compatible = "rockchip,iommu-v2"; + status = "okay"; + interrupt-names = "irq_jpege2_mmu"; + reg = <0x00 0xfdba8800 0x00 0x40>; + phandle = <0xbf>; + }; + + mpp-srv { + rockchip,resetgroup-count = <0x01>; + rockchip,taskqueue-count = <0x0c>; + compatible = "rockchip,mpp-service"; + status = "okay"; + phandle = <0xb8>; + }; + + cspmu@fd10c000 { + compatible = "rockchip,cspmu"; + reg = <0x00 0xfd10c000 0x00 0x1000 0x00 0xfd10d000 0x00 0x1000 0x00 0xfd10e000 0x00 0x1000 0x00 0xfd10f000 0x00 0x1000 0x00 0xfd12c000 0x00 0x1000 0x00 0xfd12d000 0x00 0x1000 0x00 0xfd12e000 0x00 0x1000 0x00 0xfd12f000 0x00 0x1000>; + phandle = <0x48e>; + }; + + pwm@febf0010 { + pinctrl-names = "active"; + pinctrl-0 = <0x172>; + clock-names = "pwm\0pclk"; + interrupts = <0x00 0x15e 0x04>; + clocks = <0x02 0x5a 0x02 0x59>; + #pwm-cells = <0x03>; + compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; + status = "disabled"; + reg = <0x00 0xfebf0010 0x00 0x10>; + phandle = <0x2da>; + }; + + iommu@fdbef000 { + power-domains = <0x60 0x11>; + rockchip,shootdown-entire; + interrupts = <0x00 0x66 0x04 0x00 0x67 0x04>; + clocks = <0x02 0x1ca 0x02 0x1c9>; + rockchip,enable-cmd-retry; + #iommu-cells = <0x00>; + compatible = "rockchip,iommu-v2"; + rockchip,disable-mmu-reset; + status = "okay"; + interrupt-names = "irq_rkvenc1_mmu0\0irq_rkvenc1_mmu1"; + reg = <0x00 0xfdbef000 0x00 0x40 0x00 0xfdbef040 0x00 0x40>; + phandle = <0xc5>; + lock-names = "aclk\0iface"; + }; + + serial@feb60000 { + reg-io-width = <0x04>; + pinctrl-names = "default"; + pinctrl-0 = <0x162>; + clock-names = "baudclk\0apb_pclk"; + interrupts = <0x00 0x14e 0x04>; + clocks = <0x02 0xbf 0x02 0xad>; + compatible = "rockchip,rk3588-uart\0snps,dw-apb-uart"; + status = "disabled"; + reg = <0x00 0xfeb60000 0x00 0x100>; + phandle = <0x2cb>; + dmas = <0x7c 0x0c 0x7c 0x0d>; + reg-shift = <0x02>; + }; + + hdmiin-sound { + rockchip,jack-det; + rockchip,cpu = <0x1ec>; + rockchip,codec = <0x1eb 0x00>; + rockchip,bitclock-master = <0x1eb>; + rockchip,card-name = "rockchip,hdmiin"; + rockchip,format = "i2s"; + compatible = "rockchip,hdmi"; + phandle = <0x4ac>; + rockchip,frame-master = <0x1eb>; + rockchip,mclk-fs = <0x80>; + }; + + i2s@fddc8000 { + power-domains = <0x60 0x19>; + clock-names = "mclk_tx\0hclk"; + assigned-clocks = <0x02 0x1ff>; + assigned-clock-parents = <0x02 0x05>; + resets = <0x02 0x391>; + interrupts = <0x00 0xbc 0x04>; + clocks = <0x02 0x201 0x02 0x1fe>; + dma-names = "tx"; + #sound-dai-cells = <0x00>; + compatible = "rockchip,rk3588-i2s-tdm"; + rockchip,playback-only; + status = "disabled"; + reg = <0x00 0xfddc8000 0x00 0x1000>; + phandle = <0x47c>; + dmas = <0xf2 0x16>; + reset-names = "tx-m"; + }; + + pcie30-avdd0v75 { + regulator-max-microvolt = <0xb71b0>; + regulator-boot-on; + regulator-always-on; + regulator-min-microvolt = <0xb71b0>; + regulator-name = "pcie30_avdd0v75"; + compatible = "regulator-fixed"; + phandle = <0x4a7>; + vin-supply = <0x1df>; + }; + + timer { + interrupts = <0x01 0x0d 0xf04 0x01 0x0e 0xf04 0x01 0x0b 0xf04 0x01 0x0a 0xf04>; + compatible = "arm,armv8-timer"; + }; + + rockchip-suspend { + rockchip,sleep-debug-en = <0x01>; + rockchip,sleep-mode-config = <0x5000604>; + compatible = "rockchip,pm-rk3588"; + status = "okay"; + rockchip,wakeup-config = <0x100>; + phandle = <0x246>; + }; + + decompress@fea80000 { + clock-names = "aclk\0dclk\0pclk"; + resets = <0x02 0x118>; + interrupts = <0x00 0x55 0x04>; + clocks = <0x02 0x75 0x02 0x77 0x02 0x76>; + compatible = "rockchip,hw-decompress"; + status = "disabled"; + reg = <0x00 0xfea80000 0x00 0x1000>; + phandle = <0x2a3>; + reset-names = "dresetn"; + }; + + dma-controller@fea30000 { + clock-names = "apb_pclk"; + interrupts = <0x00 0x58 0x04 0x00 0x59 0x04>; + clocks = <0x02 0x79>; + arm,pl330-periph-burst; + compatible = "arm,pl330\0arm,primecell"; + reg = <0x00 0xfea30000 0x00 0x4000>; + phandle = <0xf1>; + #dma-cells = <0x01>; + }; + + pwm@febf0000 { + pinctrl-names = "active"; + pinctrl-0 = <0x171>; + clock-names = "pwm\0pclk"; + interrupts = <0x00 0x15e 0x04>; + clocks = <0x02 0x5a 0x02 0x59>; + #pwm-cells = <0x03>; + compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; + status = "disabled"; + reg = <0x00 0xfebf0000 0x00 0x10>; + phandle = <0x2d9>; + }; + + iommu@fdcd8f00 { + power-domains = <0x60 0x1d>; + clock-names = "aclk\0iface\0pclk"; + interrupts = <0x00 0x8e 0x04>; + clocks = <0x02 0x1d8 0x02 0x1d9 0x02 0x1da>; + #iommu-cells = <0x00>; + compatible = "rockchip,iommu-v2"; + rockchip,disable-mmu-reset; + status = "disabled"; + interrupt-names = "fec1_mmu"; + reg = <0x00 0xfdcd8f00 0x00 0x100>; + phandle = <0xd3>; + }; + + spdif-tx@fddb0000 { + power-domains = <0x60 0x19>; + clock-names = "mclk\0hclk"; + assigned-clocks = <0x02 0x205>; + assigned-clock-parents = <0x02 0x05>; + interrupts = <0x00 0xc3 0x04>; + clocks = <0x02 0x209 0x02 0x204>; + dma-names = "tx"; + #sound-dai-cells = <0x00>; + compatible = "rockchip,rk3588-spdif\0rockchip,rk3568-spdif"; + status = "disabled"; + reg = <0x00 0xfddb0000 0x00 0x1000>; + phandle = <0x1d5>; + dmas = <0xf1 0x06>; + }; + + rkisp1-vir2 { + rockchip,hw = <0x5a>; + compatible = "rockchip,rkisp-vir"; + status = "disabled"; + phandle = <0x241>; + }; + + pcie-clk1 { + regulator-boot-on; + regulator-always-on; + regulator-name = "pcie_clk1"; + compatible = "regulator-fixed"; + status = "okay"; + phandle = <0x494>; + vin-supply = <0x1cd>; + gpios = <0x181 0x15 0x01>; + }; + + jpege-core@fdba8000 { + power-domains = <0x60 0x15>; + iommus = <0xbf>; + rockchip,ccu = <0xbd>; + clock-names = "aclk_vcodec\0hclk_vcodec"; + assigned-clocks = <0x02 0x1b0>; + rockchip,normal-rates = <0x2367b880 0x00>; + assigned-clock-rates = <0x2367b880>; + resets = <0x02 0x2ce 0x02 0x2cf>; + interrupts = <0x00 0x7e 0x04>; + clocks = <0x02 0x1b0 0x02 0x1b1>; + rockchip,srv = <0xb8>; + rockchip,taskqueue-node = <0x02>; + rockchip,disable-auto-freq; + compatible = "rockchip,vpu-jpege-core"; + status = "okay"; + interrupt-names = "irq_jpege2"; + rockchip,skip-pmu-idle-request; + reg = <0x00 0xfdba8000 0x00 0x400>; + phandle = <0x26f>; + reset-names = "video_a\0video_h"; + }; + + qos@fdf66400 { + compatible = "syscon"; + reg = <0x00 0xfdf66400 0x00 0x20>; + phandle = <0x95>; + }; + + spdif-tx1-sound { + simple-audio-card,name = "rockchip,spdif-tx1"; + compatible = "simple-audio-card"; + status = "disabled"; + phandle = <0x49d>; + simple-audio-card,mclk-fs = <0x80>; + + simple-audio-card,cpu { + sound-dai = <0x1d7>; + }; + + simple-audio-card,codec { + sound-dai = <0x1d8>; + }; + }; + + mmc@fe2e0000 { + mmc-hs400-enhanced-strobe; + clock-names = "core\0bus\0axi\0block\0timer"; + assigned-clocks = <0x02 0x13b 0x02 0x13c 0x02 0x13a>; + bus-width = <0x08>; + non-removable; + no-sdio; + assigned-clock-rates = <0xbebc200 0x16e3600 0xbebc200>; + resets = <0x02 0x1f6 0x02 0x1f4 0x02 0x1f5 0x02 0x1f7 0x02 0x1f8>; + mmc-hs400-1_8v; + interrupts = <0x00 0xcd 0x04>; + clocks = <0x02 0x13a 0x02 0x138 0x02 0x139 0x02 0x13b 0x02 0x13c>; + no-sd; + compatible = "rockchip,rk3588-dwcmshc\0rockchip,dwcmshc-sdhci"; + status = "okay"; + reg = <0x00 0xfe2e0000 0x00 0x10000>; + phandle = <0x295>; + max-frequency = <0xbebc200>; + reset-names = "core\0bus\0axi\0block\0timer"; + }; + + dma-controller@fed10000 { + clock-names = "apb_pclk"; + interrupts = <0x00 0x5a 0x04 0x00 0x5b 0x04>; + clocks = <0x02 0x7a>; + arm,pl330-periph-burst; + compatible = "arm,pl330\0arm,primecell"; + reg = <0x00 0xfed10000 0x00 0x4000>; + phandle = <0xf2>; + #dma-cells = <0x01>; + }; + + iommu@fc900000 { + interrupts = <0x00 0x171 0x04 0x00 0x173 0x04 0x00 0x176 0x04 0x00 0x16f 0x04>; + #iommu-cells = <0x01>; + compatible = "arm,smmu-v3"; + status = "disabled"; + interrupt-names = "eventq\0gerror\0priq\0cmdq-sync"; + reg = <0x00 0xfc900000 0x00 0x200000>; + phandle = <0x256>; + }; + + mailbox@fec70000 { + clock-names = "pclk_mailbox"; + interrupts = <0x00 0x45 0x04 0x00 0x46 0x04 0x00 0x47 0x04 0x00 0x48 0x04>; + clocks = <0x02 0x4d>; + #mbox-cells = <0x01>; + compatible = "rockchip,rk3588-mailbox\0rockchip,rk3368-mailbox"; + status = "disabled"; + reg = <0x00 0xfec70000 0x00 0x200>; + phandle = <0x2de>; + }; + + pcie@fe150000 { + power-domains = <0x60 0x22>; + vpcie3v3-supply = <0x1b8>; + #address-cells = <0x03>; + rockchip,pipe-grf = <0x76>; + phy-names = "pcie-phy"; + bus-range = <0x00 0x0f>; + clock-names = "aclk_mst\0aclk_slv\0aclk_dbi\0pclk\0aux\0pipe"; + reg-names = "pcie-apb\0pcie-dbi"; + num-ob-windows = <0x10>; + resets = <0x02 0x20d 0x02 0x21c>; + interrupts = <0x00 0x107 0x04 0x00 0x106 0x04 0x00 0x105 0x04 0x00 0x104 0x04 0x00 0x103 0x04>; + clocks = <0x02 0x14e 0x02 0x153 0x02 0x149 0x02 0x158 0x02 0x15e 0x02 0x183>; + interrupt-map = <0x00 0x00 0x00 0x01 0x1b5 0x00 0x00 0x00 0x00 0x02 0x1b5 0x01 0x00 0x00 0x00 0x03 0x1b5 0x02 0x00 0x00 0x00 0x04 0x1b5 0x03>; + #size-cells = <0x02>; + max-link-speed = <0x03>; + device_type = "pci"; + interrupt-map-mask = <0x00 0x00 0x00 0x07>; + reset-gpios = <0x10d 0x0e 0x00>; + num-lanes = <0x01>; + compatible = "rockchip,rk3588-pcie\0snps,dw-pcie"; + ranges = <0x800 0x00 0xf0000000 0x00 0xf0000000 0x00 0x100000 0x81000000 0x00 0xf0100000 0x00 0xf0100000 0x00 0x100000 0x82000000 0x00 0xf0200000 0x00 0xf0200000 0x00 0xe00000 0xc3000000 0x09 0x00 0x09 0x00 0x00 0x40000000>; + msi-map = <0x00 0x1b6 0x00 0x1000>; + #interrupt-cells = <0x01>; + status = "okay"; + interrupt-names = "sys\0pmc\0msg\0legacy\0err"; + phys = <0x1b7>; + num-viewport = <0x08>; + reg = <0x00 0xfe150000 0x00 0x10000 0x0a 0x40000000 0x00 0x400000>; + linux,pci-domain = <0x00>; + phandle = <0x485>; + reset-names = "pcie\0periph"; + num-ib-windows = <0x10>; + + legacy-interrupt-controller { + #address-cells = <0x00>; + interrupts = <0x00 0x104 0x01>; + interrupt-parent = <0x01>; + #interrupt-cells = <0x01>; + phandle = <0x1b5>; + interrupt-controller; + }; + }; + + rng@fe378000 { + clock-names = "hclk_trng"; + resets = <0x11a 0x30>; + interrupts = <0x00 0x190 0x04>; + clocks = <0x0e 0x0c>; + compatible = "rockchip,trngv1"; + status = "okay"; + reg = <0x00 0xfe378000 0x00 0x200>; + phandle = <0x297>; + reset-names = "reset"; + }; + + sata@fe220000 { + phy-names = "sata-phy"; + clock-names = "sata\0pmalive\0rxoob\0ref\0asic"; + interrupts = <0x00 0x112 0x04>; + clocks = <0x02 0x172 0x02 0x16f 0x02 0x175 0x02 0x164 0x02 0x17f>; + compatible = "rockchip,rk-ahci\0snps,dwc-ahci"; + status = "disabled"; + interrupt-names = "hostc"; + phys = <0x1bc 0x01>; + reg = <0x00 0xfe220000 0x00 0x1000>; + phandle = <0x48a>; + ports-implemented = <0x01>; + }; + + rkcif-mipi-lvds5 { + iommus = <0x50>; + rockchip,hw = <0x4f>; + compatible = "rockchip,rkcif-mipi-lvds"; + status = "disabled"; + phandle = <0x1a2>; + }; + + vcc-sata-pwr-en-regulator { + regulator-max-microvolt = <0x325aa0>; + regulator-boot-on; + gpio = <0x182 0x0c 0x00>; + regulator-always-on; + enable-active-high; + regulator-min-microvolt = <0x325aa0>; + regulator-name = "vcc_sata_pwr_en"; + startup-delay-us = <0x1388>; + compatible = "regulator-fixed"; + status = "okay"; + phandle = <0x4a3>; + vin-supply = <0x1cd>; + }; + + pwm-fan { + cooling-levels = <0x32 0x32 0x64 0x96 0xc8 0xff>; + rockchip,temp-trips = <0xc350 0x01 0xd6d8 0x02 0xea60 0x03 0xfde8 0x04 0x11170 0x05>; + compatible = "pwm-fan"; + phandle = <0x4ad>; + pwms = <0x1ed 0x00 0xc350 0x00>; + #cooling-cells = <0x02>; + fan-supply = <0x78>; + }; + + qos@fdf3e200 { + compatible = "syscon"; + reg = <0x00 0xfdf3e200 0x00 0x20>; + phandle = <0xab>; + }; + + spdif-tx@fe4e0000 { + power-domains = <0x60 0x26>; + pinctrl-names = "default"; + pinctrl-0 = <0x142>; + clock-names = "mclk\0hclk"; + assigned-clocks = <0x02 0x3f>; + assigned-clock-parents = <0x02 0x05>; + interrupts = <0x00 0xc1 0x04>; + clocks = <0x02 0x41 0x02 0x3e>; + dma-names = "tx"; + #sound-dai-cells = <0x00>; + compatible = "rockchip,rk3588-spdif\0rockchip,rk3568-spdif"; + status = "disabled"; + reg = <0x00 0xfe4e0000 0x00 0x1000>; + phandle = <0x29d>; + dmas = <0x7c 0x05>; + }; + + vad@fe4d0000 { + rockchip,det-channel = <0x00>; + rockchip,audio-src = <0x00>; + clock-names = "hclk"; + reg-names = "vad"; + interrupts = <0x00 0xca 0x04>; + clocks = <0x02 0x2a0>; + #sound-dai-cells = <0x00>; + compatible = "rockchip,rk3588-vad"; + status = "disabled"; + rockchip,mode = <0x00>; + reg = <0x00 0xfe4d0000 0x00 0x1000>; + phandle = <0x29c>; + }; + + jpegd@fdb90000 { + power-domains = <0x60 0x15>; + iommus = <0xbb>; + clock-names = "aclk_vcodec\0hclk_vcodec"; + assigned-clocks = <0x02 0x1b4>; + rockchip,normal-rates = <0x23c34600 0x00>; + assigned-clock-rates = <0x23c34600>; + resets = <0x02 0x2d2 0x02 0x2d3>; + interrupts = <0x00 0x81 0x04>; + clocks = <0x02 0x1b4 0x02 0x1b5>; + rockchip,srv = <0xb8>; + rockchip,taskqueue-node = <0x01>; + compatible = "rockchip,rkv-jpeg-decoder-v1"; + status = "okay"; + interrupt-names = "irq_jpegd"; + rockchip,skip-pmu-idle-request; + reg = <0x00 0xfdb90000 0x00 0x400>; + phandle = <0x26c>; + reset-names = "video_a\0video_h"; + }; + + cpuinfo { + nvmem-cells = <0x2a 0x2b 0x2c>; + compatible = "rockchip,cpuinfo"; + nvmem-cell-names = "id\0cpu-version\0cpu-code"; + }; + + qos@fdf60400 { + compatible = "syscon"; + reg = <0x00 0xfdf60400 0x00 0x20>; + phandle = <0x8f>; + }; + + spi@feb20000 { + pinctrl-names = "default"; + #address-cells = <0x01>; + num-cs = <0x01>; + pinctrl-0 = <0x154 0x155>; + clock-names = "spiclk\0apb_pclk"; + assigned-clocks = <0x02 0xa5>; + assigned-clock-rates = <0xbebc200>; + interrupts = <0x00 0x148 0x04>; + clocks = <0x02 0xa5 0x02 0xa0>; + #size-cells = <0x00>; + dma-names = "tx\0rx"; + compatible = "rockchip,rk3066-spi"; + status = "okay"; + reg = <0x00 0xfeb20000 0x00 0x1000>; + phandle = <0x2ad>; + dmas = <0xf1 0x0f 0xf1 0x10>; + + rk806single@0 { + vcc11-supply = <0x15b>; + pinctrl-names = "default\0pmic-power-off"; + vcc12-supply = <0x78>; + vcc13-supply = <0x15c>; + vcc14-supply = <0x15c>; + pinctrl-0 = <0x156 0x157 0x158 0x159>; + interrupts = <0x07 0x08>; + spi-max-frequency = <0xf4240>; + interrupt-parent = <0x7b>; + low_voltage_threshold = <0xbb8>; + vcca-supply = <0x78>; + vcc1-supply = <0x78>; + pmic-reset-func = <0x01>; + vcc2-supply = <0x78>; + hotdie_temperture_threshold = <0x73>; + compatible = "rockchip,rk806"; + vcc3-supply = <0x78>; + pinctrl-1 = <0x15a>; + vcc4-supply = <0x78>; + vcc5-supply = <0x78>; + reg = <0x00>; + phandle = <0x2ae>; + vcc6-supply = <0x78>; + shutdown_voltage_threshold = <0xa8c>; + vcc7-supply = <0x78>; + vcc8-supply = <0x78>; + shutdown_temperture_threshold = <0xa0>; + vcc9-supply = <0x78>; + vcc10-supply = <0x78>; + + pinctrl_rk806 { + gpio-controller; + phandle = <0x2af>; + #gpio-cells = <0x02>; + + rk806_dvs2_rst { + function = "pin_fun3"; + pins = "gpio_pwrctrl2"; + phandle = <0x2b4>; + }; + + rk806_dvs3_null { + function = "pin_fun0"; + pins = "gpio_pwrctrl3"; + phandle = <0x159>; + }; + + rk806_dvs3_dvs { + function = "pin_fun4"; + pins = "gpio_pwrctrl3"; + phandle = <0x2ba>; + }; + + rk806_dvs3_rst { + function = "pin_fun3"; + pins = "gpio_pwrctrl3"; + phandle = <0x2b9>; + }; + + rk806_dvs2_null { + function = "pin_fun0"; + pins = "gpio_pwrctrl2"; + phandle = <0x158>; + }; + + rk806_dvs1_pwrdn { + function = "pin_fun2"; + pins = "gpio_pwrctrl1"; + phandle = <0x15a>; + }; + + rk806_dvs1_slp { + function = "pin_fun1"; + pins = "gpio_pwrctrl1"; + phandle = <0x2b0>; + }; + + rk806_dvs1_null { + function = "pin_fun0"; + pins = "gpio_pwrctrl2"; + phandle = <0x157>; + }; + + rk806_dvs3_gpio { + function = "pin_fun5"; + pins = "gpio_pwrctrl3"; + phandle = <0x2bb>; + }; + + rk806_dvs2_gpio { + function = "pin_fun5"; + pins = "gpio_pwrctrl2"; + phandle = <0x2b6>; + }; + + rk806_dvs2_slp { + function = "pin_fun1"; + pins = "gpio_pwrctrl2"; + phandle = <0x2b2>; + }; + + rk806_dvs2_pwrdn { + function = "pin_fun2"; + pins = "gpio_pwrctrl2"; + phandle = <0x2b3>; + }; + + rk806_dvs1_rst { + function = "pin_fun3"; + pins = "gpio_pwrctrl1"; + phandle = <0x2b1>; + }; + + rk806_dvs3_slp { + function = "pin_fun1"; + pins = "gpio_pwrctrl3"; + phandle = <0x2b7>; + }; + + rk806_dvs2_dvs { + function = "pin_fun4"; + pins = "gpio_pwrctrl2"; + phandle = <0x2b5>; + }; + + rk806_dvs3_pwrdn { + function = "pin_fun2"; + pins = "gpio_pwrctrl3"; + phandle = <0x2b8>; + }; + }; + + pwrkey { + status = "okay"; + }; + + regulators { + + PLDO_REG2 { + regulator-max-microvolt = <0x1b7740>; + regulator-boot-on; + regulator-always-on; + regulator-min-microvolt = <0x1b7740>; + regulator-name = "vcc_1v8_s0"; + phandle = <0x177>; + + regulator-state-mem { + regulator-off-in-suspend; + regulator-suspend-microvolt = <0x1b7740>; + }; + }; + + DCDC_REG4 { + regulator-max-microvolt = <0xe7ef0>; + regulator-boot-on; + regulator-init-microvolt = <0xb71b0>; + regulator-always-on; + regulator-min-microvolt = <0x86470>; + regulator-name = "vdd_vdenc_s0"; + regulator-ramp-delay = <0x30d4>; + phandle = <0x2bc>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + DCDC_REG2 { + regulator-max-microvolt = <0xe7ef0>; + regulator-boot-on; + regulator-always-on; + regulator-min-microvolt = <0x86470>; + regulator-name = "vdd_cpu_lit_s0"; + regulator-ramp-delay = <0x30d4>; + phandle = <0x12>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + NLDO_REG4 { + regulator-max-microvolt = <0xcf850>; + regulator-boot-on; + regulator-always-on; + regulator-min-microvolt = <0xcf850>; + regulator-name = "vdd_0v85_s0"; + phandle = <0x2c6>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + DCDC_REG9 { + regulator-boot-on; + regulator-always-on; + regulator-name = "vddq_ddr_s0"; + phandle = <0x2bf>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + NLDO_REG2 { + regulator-max-microvolt = <0xcf850>; + regulator-boot-on; + regulator-always-on; + regulator-min-microvolt = <0xcf850>; + regulator-name = "vdd_ddr_pll_s0"; + phandle = <0x2c5>; + + regulator-state-mem { + regulator-off-in-suspend; + regulator-suspend-microvolt = <0xcf850>; + }; + }; + + PLDO_REG5 { + regulator-max-microvolt = <0x325aa0>; + regulator-boot-on; + regulator-always-on; + regulator-min-microvolt = <0x1b7740>; + regulator-name = "vccio_sd_s0"; + phandle = <0x118>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + DCDC_REG7 { + regulator-max-microvolt = <0x1e8480>; + regulator-boot-on; + regulator-always-on; + regulator-min-microvolt = <0x1e8480>; + regulator-name = "vdd_2v0_pldo_s3"; + phandle = <0x15b>; + + regulator-state-mem { + regulator-suspend-microvolt = <0x1e8480>; + regulator-on-in-suspend; + }; + }; + + PLDO_REG3 { + regulator-max-microvolt = <0x124f80>; + regulator-boot-on; + regulator-always-on; + regulator-min-microvolt = <0x124f80>; + regulator-name = "avdd_1v2_s0"; + phandle = <0x2c1>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + DCDC_REG5 { + regulator-max-microvolt = <0xdbba0>; + regulator-boot-on; + regulator-always-on; + regulator-min-microvolt = <0xa4cb8>; + regulator-name = "vdd_ddr_s0"; + regulator-ramp-delay = <0x30d4>; + phandle = <0x42>; + + regulator-state-mem { + regulator-off-in-suspend; + regulator-suspend-microvolt = <0xcf850>; + }; + }; + + DCDC_REG10 { + regulator-max-microvolt = <0x1b7740>; + regulator-boot-on; + regulator-always-on; + regulator-min-microvolt = <0x1b7740>; + regulator-name = "vcc_1v8_s3"; + phandle = <0x2c0>; + + regulator-state-mem { + regulator-suspend-microvolt = <0x1b7740>; + regulator-on-in-suspend; + }; + }; + + PLDO_REG1 { + regulator-max-microvolt = <0x1b7740>; + regulator-boot-on; + regulator-always-on; + regulator-min-microvolt = <0x1b7740>; + regulator-name = "avcc_1v8_s0"; + phandle = <0x1de>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + DCDC_REG3 { + regulator-max-microvolt = <0xb71b0>; + regulator-boot-on; + regulator-always-on; + regulator-min-microvolt = <0xa4cb8>; + regulator-name = "vdd_log_s0"; + regulator-ramp-delay = <0x30d4>; + phandle = <0x43>; + + regulator-state-mem { + regulator-suspend-microvolt = <0xb71b0>; + regulator-on-in-suspend; + }; + }; + + DCDC_REG1 { + regulator-max-microvolt = <0xe7ef0>; + regulator-boot-on; + regulator-enable-ramp-delay = <0x190>; + regulator-min-microvolt = <0x86470>; + regulator-name = "vdd_gpu_s0"; + regulator-ramp-delay = <0x30d4>; + phandle = <0x62>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + NLDO_REG5 { + regulator-max-microvolt = <0xb71b0>; + regulator-boot-on; + regulator-always-on; + regulator-min-microvolt = <0xb71b0>; + regulator-name = "vdd_0v75_s0"; + phandle = <0x2c7>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + NLDO_REG3 { + regulator-max-microvolt = <0xb71b0>; + regulator-boot-on; + regulator-always-on; + regulator-min-microvolt = <0xb71b0>; + regulator-name = "avdd_0v75_s0"; + phandle = <0x1df>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + PLDO_REG6 { + regulator-max-microvolt = <0x1b7740>; + regulator-boot-on; + regulator-always-on; + regulator-min-microvolt = <0x1b7740>; + regulator-name = "pldo6_s3"; + phandle = <0x2c3>; + + regulator-state-mem { + regulator-suspend-microvolt = <0x1b7740>; + regulator-on-in-suspend; + }; + }; + + DCDC_REG8 { + regulator-max-microvolt = <0x325aa0>; + regulator-boot-on; + regulator-always-on; + regulator-min-microvolt = <0x325aa0>; + regulator-name = "vcc_3v3_s3"; + phandle = <0x2be>; + + regulator-state-mem { + regulator-suspend-microvolt = <0x325aa0>; + regulator-on-in-suspend; + }; + }; + + NLDO_REG1 { + regulator-max-microvolt = <0xb71b0>; + regulator-boot-on; + regulator-always-on; + regulator-min-microvolt = <0xb71b0>; + regulator-name = "vdd_0v75_s3"; + phandle = <0x2c4>; + + regulator-state-mem { + regulator-suspend-microvolt = <0xb71b0>; + regulator-on-in-suspend; + }; + }; + + PLDO_REG4 { + regulator-max-microvolt = <0x325aa0>; + regulator-boot-on; + regulator-always-on; + regulator-min-microvolt = <0x325aa0>; + regulator-name = "vcc_3v3_s0"; + phandle = <0x2c2>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + DCDC_REG6 { + regulator-boot-on; + regulator-always-on; + regulator-name = "vdd2_ddr_s3"; + phandle = <0x2bd>; + + regulator-state-mem { + regulator-on-in-suspend; + }; + }; + }; + }; + }; + + usbhost3_0 { + #address-cells = <0x02>; + clock-names = "ref\0suspend\0bus\0utmi\0php\0pipe"; + clocks = <0x02 0x179 0x02 0x178 0x02 0x177 0x02 0x17a 0x02 0x166 0x02 0x181>; + #size-cells = <0x02>; + compatible = "rockchip,rk3588-dwc3\0rockchip,rk3399-dwc3"; + ranges; + status = "disabled"; + phandle = <0x258>; + + usb@fcd00000 { + snps,dis_enblslpm_quirk; + phy-names = "usb3-phy"; + snps,dis-u2-freeclk-exists-quirk; + phy_type = "utmi_wide"; + resets = <0x02 0x237>; + interrupts = <0x00 0xde 0x04>; + snps,dis_rxdet_inp3_quirk; + compatible = "snps,dwc3"; + snps,parkmode-disable-hs-quirk; + snps,dis-del-phy-power-chg-quirk; + status = "disabled"; + snps,parkmode-disable-ss-quirk; + phys = <0x70 0x04>; + reg = <0x00 0xfcd00000 0x00 0x400000>; + phandle = <0x259>; + dr_mode = "host"; + reset-names = "usb3-host"; + snps,dis-tx-ipgap-linecheck-quirk; + }; + }; + + pcie@fe190000 { + #address-cells = <0x03>; + rockchip,pipe-grf = <0x76>; + phy-names = "pcie-phy"; + bus-range = <0x40 0x4f>; + clock-names = "aclk_mst\0aclk_slv\0aclk_dbi\0pclk\0aux\0pipe"; + reg-names = "pcie-apb\0pcie-dbi"; + num-ob-windows = <0x08>; + resets = <0x02 0x211 0x02 0x220>; + interrupts = <0x00 0xfd 0x04 0x00 0xfc 0x04 0x00 0xfb 0x04 0x00 0xfa 0x04 0x00 0xf9 0x04>; + clocks = <0x02 0x152 0x02 0x157 0x02 0x14d 0x02 0x15d 0x02 0x162 0x02 0x182>; + interrupt-map = <0x00 0x00 0x00 0x01 0x107 0x00 0x00 0x00 0x00 0x02 0x107 0x01 0x00 0x00 0x00 0x03 0x107 0x02 0x00 0x00 0x00 0x04 0x107 0x03>; + #size-cells = <0x02>; + max-link-speed = <0x02>; + device_type = "pci"; + interrupt-map-mask = <0x00 0x00 0x00 0x07>; + num-lanes = <0x01>; + compatible = "rockchip,rk3588-pcie\0snps,dw-pcie"; + ranges = <0x800 0x00 0xf4000000 0x00 0xf4000000 0x00 0x100000 0x81000000 0x00 0xf4100000 0x00 0xf4100000 0x00 0x100000 0x82000000 0x00 0xf4200000 0x00 0xf4200000 0x00 0xe00000 0xc3000000 0x0a 0x00 0x0a 0x00 0x00 0x40000000>; + msi-map = <0x4000 0x106 0x4000 0x1000>; + #interrupt-cells = <0x01>; + status = "disabled"; + interrupt-names = "sys\0pmc\0msg\0legacy\0err"; + phys = <0x108 0x02>; + num-viewport = <0x04>; + reg = <0x00 0xfe190000 0x00 0x10000 0x0a 0x41000000 0x00 0x400000>; + linux,pci-domain = <0x04>; + phandle = <0x28d>; + reset-names = "pcie\0periph"; + num-ib-windows = <0x08>; + + legacy-interrupt-controller { + #address-cells = <0x00>; + interrupts = <0x00 0xfa 0x01>; + interrupt-parent = <0x01>; + #interrupt-cells = <0x01>; + phandle = <0x107>; + interrupt-controller; + }; + }; + + rkcif-mipi-lvds3-sditf-vir1 { + compatible = "rockchip,rkcif-sditf"; + status = "disabled"; + rockchip,cif = <0x57>; + phandle = <0x238>; + }; + + aliases { + i2c3 = "/i2c@feab0000"; + ethernet0 = "/ethernet@fe1b0000"; + pwm9 = "/pwm@febe0010"; + pwm14 = "/pwm@febf0020"; + spi2 = "/spi@feb20000"; + usbdp0 = "/phy@fed80000"; + gpio0 = "/pinctrl/gpio@fd8a0000"; + dsi1 = "/dsi@fde30000"; + hdmi1 = "/hdmi@fdea0000"; + serial7 = "/serial@feba0000"; + i2c1 = "/i2c@fea90000"; + pwm7 = "/pwm@febd0030"; + pwm12 = "/pwm@febf0000"; + jpege3 = "/jpege-core@fdbac000"; + spi0 = "/spi@feb00000"; + hdptx1 = "/phy@fed70000"; + csi2dphy5 = "/csi2-dphy5"; + serial5 = "/serial@feb80000"; + csi2dcphy1 = "/csi2-dcphy1"; + pwm5 = "/pwm@febd0010"; + mmc1 = "/mmc@fe2c0000"; + pwm10 = "/pwm@febe0020"; + jpege1 = "/jpege-core@fdba4000"; + rkcif_mipi_lvds4 = "/rkcif-mipi-lvds4"; + i2c8 = "/i2c@feca0000"; + dp0 = "/dp@fde50000"; + csi2dphy3 = "/csi2-dphy3"; + serial3 = "/serial@feb60000"; + edp0 = "/edp@fdec0000"; + pwm3 = "/pwm@fd8b0030"; + hdcp1 = "/hdcp@fde70000"; + rkcif_mipi_lvds2 = "/rkcif-mipi-lvds2"; + i2c6 = "/i2c@fec80000"; + csi2dphy1 = "/csi2-dphy1"; + serial1 = "/serial@feb40000"; + pwm1 = "/pwm@fd8b0010"; + rkvenc0 = "/rkvenc-core@fdbd0000"; + spi5 = "/spi@fe2b0000"; + gpio3 = "/pinctrl/gpio@fec40000"; + hdptxhdmi1 = "/hdmiphy@fed70000"; + rkcif_mipi_lvds0 = "/rkcif-mipi-lvds"; + i2c4 = "/i2c@feac0000"; + rkvdec0 = "/rkvdec-core@fdc38000"; + pwm15 = "/pwm@febf0030"; + hdmirx0 = "/hdmirx-controller@fdee0000"; + spi3 = "/spi@feb30000"; + usbdp1 = "/phy@fed90000"; + gpio1 = "/pinctrl/gpio@fec20000"; + serial8 = "/serial@febb0000"; + i2c2 = "/i2c@feaa0000"; + pwm8 = "/pwm@febe0000"; + pwm13 = "/pwm@febf0010"; + spi1 = "/spi@feb10000"; + dsi0 = "/dsi@fde20000"; + hdmi0 = "/hdmi@fde80000"; + serial6 = "/serial@feb90000"; + i2c0 = "/i2c@fd880000"; + pwm6 = "/pwm@febd0020"; + mmc2 = "/mmc@fe2d0000"; + pwm11 = "/pwm@febe0030"; + jpege2 = "/jpege-core@fdba8000"; + hdptx0 = "/phy@fed60000"; + rkcif_mipi_lvds5 = "/rkcif-mipi-lvds5"; + dp1 = "/dp@fde60000"; + csi2dphy4 = "/csi2-dphy4"; + serial4 = "/serial@feb70000"; + edp1 = "/edp@fded0000"; + csi2dcphy0 = "/csi2-dcphy0"; + pwm4 = "/pwm@febd0000"; + mmc0 = "/mmc@fe2e0000"; + jpege0 = "/jpege-core@fdba0000"; + rkcif_mipi_lvds3 = "/rkcif-mipi-lvds3"; + i2c7 = "/i2c@fec90000"; + csi2dphy2 = "/csi2-dphy2"; + pwm2 = "/pwm@fd8b0020"; + rkvenc1 = "/rkvenc-core@fdbe0000"; + gpio4 = "/pinctrl/gpio@fec50000"; + hdcp0 = "/hdcp@fde40000"; + rkcif_mipi_lvds1 = "/rkcif-mipi-lvds1"; + i2c5 = "/i2c@fead0000"; + csi2dphy0 = "/csi2-dphy0"; + serial0 = "/serial@fd890000"; + rkvdec1 = "/rkvdec-core@fdc48000"; + pwm0 = "/pwm@fd8b0000"; + spi4 = "/spi@fecb0000"; + gpio2 = "/pinctrl/gpio@fec30000"; + hdptxhdmi0 = "/hdmiphy@fed60000"; + serial9 = "/serial@febc0000"; + }; + + spdif-tx@fdde8000 { + power-domains = <0x60 0x1a>; + clock-names = "mclk\0hclk"; + assigned-clocks = <0x02 0x259>; + assigned-clock-parents = <0x02 0x05>; + interrupts = <0x00 0xc5 0x04>; + clocks = <0x02 0x25c 0x02 0x258>; + dma-names = "tx"; + #sound-dai-cells = <0x00>; + compatible = "rockchip,rk3588-spdif\0rockchip,rk3568-spdif"; + status = "disabled"; + reg = <0x00 0xfdde8000 0x00 0x1000>; + phandle = <0x47d>; + dmas = <0xf1 0x08>; + }; + + i2s@fe490000 { + power-domains = <0x60 0x26>; + pinctrl-names = "default\0idle\0clk"; + pinctrl-2 = <0x12d 0x12e>; + pinctrl-0 = <0x12a 0x12b>; + clock-names = "i2s_clk\0i2s_hclk"; + assigned-clocks = <0x02 0x24>; + assigned-clock-parents = <0x02 0x05>; + interrupts = <0x00 0xb6 0x04>; + clocks = <0x02 0x27 0x02 0x22>; + dma-names = "tx\0rx"; + #sound-dai-cells = <0x00>; + compatible = "rockchip,rk3588-i2s\0rockchip,rk3066-i2s"; + pinctrl-1 = <0x12c>; + status = "disabled"; + reg = <0x00 0xfe490000 0x00 0x1000>; + phandle = <0x298>; + dmas = <0xf1 0x00 0xf1 0x01>; + rockchip,clk-trcm = <0x01>; + }; + + syscon@fd5d0000 { + #address-cells = <0x01>; + #size-cells = <0x01>; + compatible = "rockchip,rk3588-usb2phy-grf\0syscon\0simple-mfd"; + reg = <0x00 0xfd5d0000 0x00 0x4000>; + phandle = <0x18b>; + + usb2-phy@0 { + clock-output-names = "usb480m_phy0"; + clock-names = "phyclk"; + resets = <0x02 0xc0047 0x02 0x488>; + interrupts = <0x00 0x189 0x04>; + clocks = <0x02 0x2b5>; + #clock-cells = <0x00>; + rockchip,usbctrl-grf = <0x74>; + compatible = "rockchip,rk3588-usb2phy"; + status = "okay"; + reg = <0x00 0x10>; + phandle = <0x18d>; + reset-names = "phy\0apb"; + + otg-port { + #phy-cells = <0x00>; + rockchip,typec-vbus-det; + status = "okay"; + phandle = <0x66>; + }; + }; + }; + + i2c@feac0000 { + pinctrl-names = "default"; + #address-cells = <0x01>; + pinctrl-0 = <0x14b>; + clock-names = "i2c\0pclk"; + resets = <0x02 0xb3 0x02 0xab>; + interrupts = <0x00 0x141 0x04>; + clocks = <0x02 0x90 0x02 0x88>; + #size-cells = <0x00>; + compatible = "rockchip,rk3588-i2c\0rockchip,rk3399-i2c"; + status = "okay"; + reg = <0x00 0xfeac0000 0x00 0x1000>; + phandle = <0x2a7>; + reset-names = "i2c\0apb"; + + pc9202@3c { + pinctrl-names = "default"; + pinctrl-0 = <0x14c>; + index = <0x01>; + compatible = "firefly,pc9202"; + status = "okay"; + wd-en-gpio = <0x7b 0x14 0x00>; + driver-names = "wdt_base"; + reg = <0x3c>; + }; + }; + + rkcif-mipi-lvds5-sditf { + compatible = "rockchip,rkcif-sditf"; + status = "disabled"; + rockchip,cif = <0x1a2>; + phandle = <0x476>; + }; + + firmware { + + optee { + method = "smc"; + compatible = "linaro,optee-tz"; + phandle = <0x222>; + }; + + sdei { + method = "smc"; + compatible = "arm,sdei-1.0"; + phandle = <0x221>; + }; + + scmi { + shmem = <0x46>; + #address-cells = <0x01>; + #size-cells = <0x00>; + compatible = "arm,scmi-smc"; + phandle = <0x220>; + arm,smc-id = <0x82000010>; + + protocol@16 { + #reset-cells = <0x01>; + reg = <0x16>; + phandle = <0x11a>; + }; + + protocol@14 { + assigned-clocks = <0x0e 0x00 0x0e 0x02 0x0e 0x03>; + assigned-clock-rates = <0x30a32c00 0x30a32c00 0x30a32c00>; + #clock-cells = <0x01>; + reg = <0x14>; + phandle = <0x0e>; + }; + }; + }; + + rkvenc-core@fdbd0000 { + power-domains = <0x60 0x10>; + iommus = <0xc2>; + rockchip,ccu = <0xc3>; + clock-names = "aclk_vcodec\0hclk_vcodec\0clk_core"; + assigned-clocks = <0x02 0x1c5 0x02 0x1c6>; + rockchip,task-capacity = <0x08>; + rockchip,normal-rates = <0x1dcd6500 0x00 0x2faf0800>; + assigned-clock-rates = <0x1dcd6500 0x2faf0800>; + resets = <0x02 0x2f5 0x02 0x2f4 0x02 0x2f6>; + interrupts = <0x00 0x65 0x04>; + clocks = <0x02 0x1c5 0x02 0x1c4 0x02 0x1c6>; + rockchip,srv = <0xb8>; + rockchip,taskqueue-node = <0x07>; + compatible = "rockchip,rkv-encoder-v2-core"; + status = "okay"; + interrupt-names = "irq_rkvenc0"; + rockchip,skip-pmu-idle-request; + reg = <0x00 0xfdbd0000 0x00 0x6000>; + phandle = <0x272>; + reset-names = "video_a\0video_h\0video_core"; + operating-points-v2 = <0xc4>; + }; + + iommu@fdcc7f00 { + power-domains = <0x60 0x1c>; + clock-names = "aclk\0iface"; + interrupts = <0x00 0x88 0x04>; + clocks = <0x02 0x120 0x02 0x121>; + #iommu-cells = <0x00>; + compatible = "rockchip,iommu-v2"; + rockchip,disable-mmu-reset; + status = "disabled"; + interrupt-names = "isp1_mmu"; + reg = <0x00 0xfdcc7f00 0x00 0x100>; + phandle = <0xd1>; + }; + + rkcif-mipi-lvds-sditf { + compatible = "rockchip,rkcif-sditf"; + status = "disabled"; + rockchip,cif = <0x52>; + phandle = <0x22b>; + }; + + syscon@fd5c8000 { + compatible = "rockchip,rk3588-usbdpphy-grf\0syscon"; + reg = <0x00 0xfd5c8000 0x00 0x4000>; + phandle = <0x18c>; + }; + + gpu@fb000000 { + power-domains = <0x60 0x0c>; + downdifferential = <0x0a>; + mali-supply = <0x62>; + clock-names = "clk_mali\0clk_gpu_coregroup\0clk_gpu_stacks\0clk_gpu"; + assigned-clocks = <0x0e 0x05>; + assigned-clock-rates = <0xbebc200>; + interrupts = <0x00 0x5e 0x04 0x00 0x5d 0x04 0x00 0x5c 0x04>; + clocks = <0x0e 0x05 0x02 0x115 0x02 0x116 0x02 0x114>; + upthreshold = <0x1e>; + compatible = "arm,mali-bifrost"; + dynamic-power-coefficient = <0xba6>; + status = "okay"; + interrupt-names = "GPU\0MMU\0JOB"; + mem-supply = <0x62>; + reg = <0x00 0xfb000000 0x00 0x200000>; + phandle = <0x5f>; + operating-points-v2 = <0x61>; + #cooling-cells = <0x02>; + }; + + csi2-dphy4 { + rockchip,hw = <0x2d 0x2e>; + phy-names = "dcphy0\0dcphy1"; + compatible = "rockchip,rk3588-csi2-dphy"; + status = "disabled"; + phys = <0x2f 0x30>; + phandle = <0x213>; + }; + + mipi4-csi2-hw@fdd50000 { + clock-names = "pclk_csi2host"; + reg-names = "csihost_regs"; + resets = <0x02 0x328>; + interrupts = <0x00 0x97 0x04 0x00 0x98 0x04>; + clocks = <0x02 0x1d3>; + compatible = "rockchip,rk3588-mipi-csi2-hw"; + status = "okay"; + interrupt-names = "csi-intr1\0csi-intr2"; + reg = <0x00 0xfdd50000 0x00 0x10000>; + phandle = <0x4b>; + reset-names = "srst_csihost_p"; + }; + + qos@fdf82000 { + compatible = "syscon"; + reg = <0x00 0xfdf82000 0x00 0x20>; + phandle = <0x9d>; + }; + + rkcif-mipi-lvds2-sditf-vir2 { + compatible = "rockchip,rkcif-sditf"; + status = "disabled"; + rockchip,cif = <0x55>; + phandle = <0x235>; + }; + + rkisp1-vir0 { + rockchip,hw = <0x5a>; + compatible = "rockchip,rkisp-vir"; + status = "disabled"; + phandle = <0x23f>; + }; + + qos@fdf41100 { + compatible = "syscon"; + reg = <0x00 0xfdf41100 0x00 0x20>; + phandle = <0xa7>; + }; + + test-power { + status = "okay"; + }; + + usb-5v { + pinctrl-names = "default"; + regulator-boot-on; + gpio = <0xfe 0x03 0x00>; + pinctrl-0 = <0x1ef>; + regulator-always-on; + enable-active-high; + regulator-name = "usb_5v"; + compatible = "regulator-fixed"; + status = "okay"; + phandle = <0x4b1>; + }; + + phy@feda0000 { + clock-names = "pclk\0ref"; + resets = <0x02 0xc0043 0x02 0x3e 0x02 0x3f 0x02 0xc0044>; + clocks = <0x02 0x108 0x02 0x2b6>; + #phy-cells = <0x00>; + compatible = "rockchip,rk3588-mipi-dcphy"; + status = "okay"; + rockchip,grf = <0x190>; + reg = <0x00 0xfeda0000 0x00 0x10000>; + phandle = <0x2f>; + reset-names = "m_phy\0apb\0grf\0s_phy"; + }; + + mod-sleep-regulator { + pinctrl-names = "default"; + regulator-boot-on; + gpio = <0x7b 0x15 0x00>; + pinctrl-0 = <0x1ee>; + regulator-always-on; + enable-active-high; + regulator-name = "mod_sleep"; + compatible = "regulator-fixed"; + status = "okay"; + phandle = <0x4ae>; + + regulator-state-mem { + regulator-on-in-suspend; + }; + }; + + qos@fdf66c00 { + compatible = "syscon"; + reg = <0x00 0xfdf66c00 0x00 0x20>; + phandle = <0x99>; + }; + + crypto@fe370000 { + clock-names = "aclk\0hclk\0sclk\0pka"; + resets = <0x11a 0x0f>; + interrupts = <0x00 0xd1 0x04>; + clocks = <0x0e 0x0b 0x0e 0x0c 0x0e 0x14 0x0e 0x15>; + compatible = "rockchip,rk3588-crypto"; + status = "disabled"; + reg = <0x00 0xfe370000 0x00 0x2000>; + phandle = <0x296>; + reset-names = "crypto-rst"; + }; + + i2s@fddf4000 { + power-domains = <0x60 0x1a>; + rockchip,always-on; + clock-names = "mclk_tx\0mclk_rx\0hclk"; + assigned-clocks = <0x02 0x249>; + assigned-clock-parents = <0x02 0x07>; + resets = <0x02 0x3ef>; + interrupts = <0x00 0xba 0x04>; + clocks = <0x02 0x24c 0x02 0x24c 0x02 0x252>; + dma-names = "tx"; + #sound-dai-cells = <0x00>; + compatible = "rockchip,rk3588-i2s-tdm"; + rockchip,playback-only; + status = "okay"; + reg = <0x00 0xfddf4000 0x00 0x1000>; + phandle = <0x1e0>; + dmas = <0xf2 0x04>; + reset-names = "tx-m"; + rockchip,hdmi-path; + }; + + mipi0-csi2-hw@fdd10000 { + clock-names = "pclk_csi2host"; + reg-names = "csihost_regs"; + resets = <0x02 0x324>; + interrupts = <0x00 0x8f 0x04 0x00 0x90 0x04>; + clocks = <0x02 0x1cf>; + compatible = "rockchip,rk3588-mipi-csi2-hw"; + status = "okay"; + interrupt-names = "csi-intr1\0csi-intr2"; + reg = <0x00 0xfdd10000 0x00 0x10000>; + phandle = <0x47>; + reset-names = "srst_csihost_p"; + }; + + mipi4-csi2 { + rockchip,hw = <0x47 0x48 0x49 0x4a 0x4b 0x4c>; + compatible = "rockchip,rk3588-mipi-csi2"; + status = "disabled"; + phandle = <0x228>; + }; + + jpege-ccu { + compatible = "rockchip,vpu-jpege-ccu"; + status = "okay"; + phandle = <0xbd>; + }; + + dsi@fde30000 { + power-domains = <0x60 0x18>; + #address-cells = <0x01>; + phy-names = "dcphy"; + clock-names = "pclk\0sys_clk"; + resets = <0x02 0x355>; + interrupts = <0x00 0xa8 0x04>; + clocks = <0x02 0x279 0x02 0x27b>; + #size-cells = <0x00>; + compatible = "rockchip,rk3588-mipi-dsi2"; + status = "disabled"; + rockchip,grf = <0xd7>; + phys = <0x30>; + reg = <0x00 0xfde30000 0x00 0x10000>; + phandle = <0x283>; + reset-names = "apb"; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x00>; + phandle = <0x284>; + + endpoint@1 { + remote-endpoint = <0x3a>; + status = "disabled"; + reg = <0x01>; + phandle = <0xef>; + }; + + endpoint@0 { + remote-endpoint = <0xf4>; + status = "disabled"; + reg = <0x00>; + phandle = <0xea>; + }; + }; + }; + }; + + iommu@fcb00000 { + interrupts = <0x00 0x17d 0x04 0x00 0x17f 0x04 0x00 0x182 0x04 0x00 0x17b 0x04>; + #iommu-cells = <0x01>; + compatible = "arm,smmu-v3"; + status = "disabled"; + interrupt-names = "eventq\0gerror\0priq\0cmdq-sync"; + reg = <0x00 0xfcb00000 0x00 0x200000>; + phandle = <0x257>; + }; + + rkcif-mipi-lvds3 { + iommus = <0x50>; + rockchip,hw = <0x4f>; + compatible = "rockchip,rkcif-mipi-lvds"; + status = "disabled"; + phandle = <0x57>; + }; + + vcc-hub-regulator { + regulator-boot-on; + gpio = <0x182 0x01 0x00>; + regulator-always-on; + enable-active-high; + regulator-name = "vcc_hub"; + compatible = "regulator-fixed"; + status = "okay"; + phandle = <0x4af>; + }; + + syscon@fd5ac000 { + compatible = "rockchip,rk3588-usb-grf\0syscon"; + reg = <0x00 0xfd5ac000 0x00 0x4000>; + phandle = <0x74>; + }; + + qos@fdf40200 { + compatible = "syscon"; + reg = <0x00 0xfdf40200 0x00 0x20>; + phandle = <0xa9>; + }; + + rkisp@fdcb0000 { + power-domains = <0x60 0x1b>; + iommus = <0xd0>; + clock-names = "aclk_isp\0hclk_isp\0clk_isp_core\0clk_isp_core_marvin\0clk_isp_core_vicap"; + interrupts = <0x00 0x83 0x04 0x00 0x85 0x04 0x00 0x86 0x04>; + clocks = <0x02 0x1de 0x02 0x1df 0x02 0x1db 0x02 0x1dc 0x02 0x1dd>; + compatible = "rockchip,rk3588-rkisp"; + status = "okay"; + interrupt-names = "isp_irq\0mi_irq\0mipi_irq"; + reg = <0x00 0xfdcb0000 0x00 0x7f00>; + phandle = <0x58>; + }; + + serial@feba0000 { + reg-io-width = <0x04>; + pinctrl-names = "default"; + pinctrl-0 = <0x166>; + clock-names = "baudclk\0apb_pclk"; + interrupts = <0x00 0x152 0x04>; + clocks = <0x02 0xcf 0x02 0xb1>; + compatible = "rockchip,rk3588-uart\0snps,dw-apb-uart"; + status = "disabled"; + reg = <0x00 0xfeba0000 0x00 0x100>; + phandle = <0x2cf>; + dmas = <0xf2 0x07 0xf2 0x08>; + reg-shift = <0x02>; + }; + + rkcif-mipi-lvds1-sditf-vir3 { + compatible = "rockchip,rkcif-sditf"; + status = "disabled"; + rockchip,cif = <0x53>; + phandle = <0x232>; + }; + + chosen { + linux,initrd-end = <0x00 0xaac72ae>; + bootargs = "storagemedia=emmc androidboot.storagemedia=emmc androidboot.mode=normal storagenode=/mmc@fe2e0000 androidboot.verifiedbootstate=orange ro rootwait console=ttyS1,115200n8 irqchip.gicv3_pseudo_nmi=0 root=PARTLABEL=rootfs rootfstype=ext4 overlayroot=device:dev=PARTLABEL=userdata,fstype=ext4,mkfs=1 coherent_pool=1m systemd.gpt_auto=0 cgroup_enable=memory swapaccount=1 net.ifnames=0 rcupdate.rcu_expedited=0 comm-05/28/2025 androidboot.fwver=ddr-v1.15-d5483af87d,spl-v1.13,bl31-v1.44,bl32-v1.15,uboot--boot"; + linux,initrd-start = <0x00 0xa200000>; + phandle = <0x48d>; + }; + + hdmi@fde80000 { + power-domains = <0x60 0x1a>; + reg-io-width = <0x04>; + pinctrl-names = "default"; + phy-names = "hdmi"; + pinctrl-0 = <0xf9 0xfa 0xfb 0xfc>; + clock-names = "pclk\0hpd\0earc\0hdmitx_ref\0aud\0dclk_vp0\0dclk_vp1\0dclk_vp2\0dclk_vp3\0hclk_vo1\0link_clk"; + resets = <0x02 0x3d0 0x02 0x49c>; + interrupts = <0x00 0xa9 0x04 0x00 0xaa 0x04 0x00 0xab 0x04 0x00 0xac 0x04 0x00 0x168 0x04>; + clocks = <0x02 0x221 0x02 0x265 0x02 0x222 0x02 0x223 0x02 0x246 0x02 0x274 0x02 0x275 0x02 0x276 0x02 0x277 0x05 0x35>; + #sound-dai-cells = <0x00>; + compatible = "rockchip,rk3588-dw-hdmi"; + status = "okay"; + rockchip,grf = <0xc8>; + phys = <0xfd>; + enable-gpios = <0xfe 0x08 0x00>; + reg = <0x00 0xfde80000 0x00 0x10000 0x00 0xfde90000 0x00 0x10000>; + phandle = <0x1d4>; + reset-names = "ref\0hdp"; + rockchip,vo1_grf = <0xd8>; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x00>; + phandle = <0x288>; + + endpoint@1 { + remote-endpoint = <0xff>; + status = "disabled"; + reg = <0x01>; + phandle = <0xe2>; + }; + + endpoint@2 { + remote-endpoint = <0x100>; + status = "disabled"; + reg = <0x02>; + phandle = <0xe8>; + }; + + endpoint@0 { + remote-endpoint = <0x3c>; + status = "okay"; + reg = <0x00>; + phandle = <0xdc>; + }; + }; + }; + }; + + cluster2-opp-table { + rockchip,pvtm-offset = <0x18>; + rockchip,pvtm-sample-time = <0x44c>; + rockchip,pvtm-hw = <0x06>; + nvmem-cells = <0x27 0x28 0x21>; + rockchip,low-temp = <0x2710>; + rockchip,pvtm-voltage-sel-hw = <0x00 0x603 0x00 0x604 0x61c 0x01 0x61d 0x635 0x02 0x636 0x64e 0x03 0x64f 0x66c 0x04 0x66d 0x68a 0x05 0x68b 0x6a8 0x06 0x6a9 0x270f 0x07>; + rockchip,pvtm-thermal-zone = "soc-thermal"; + rockchip,pvtm-low-len-sel = <0x03>; + rockchip,high-temp-max-freq = <0x21b100>; + opp-shared; + rockchip,reboot-freq = <0x1b7740>; + rockchip,pvtm-freq = <0x188940>; + rockchip,pvtm-ref-temp = <0x19>; + low-volt-mem-read-margin = <0x04>; + volt-mem-read-margin = <0xd0bd8 0x01 0xbac48 0x02 0xa4cb8 0x03 0x78d98 0x04>; + compatible = "operating-points-v2"; + rockchip,low-temp-min-volt = <0xb71b0>; + rockchip,grf = <0x29>; + nvmem-cell-names = "leakage\0opp-info\0specification_serial_number"; + rockchip,pvtm-voltage-sel = <0x00 0x63b 0x00 0x63c 0x64f 0x01 0x650 0x668 0x02 0x669 0x68b 0x03 0x68c 0x6ae 0x04 0x6af 0x6cf 0x05 0x6d0 0x6f0 0x06 0x6f1 0x270f 0x07>; + phandle = <0x1a>; + rockchip,idle-threshold-freq = <0x21b100>; + rockchip,pvtm-temp-prop = <0x10e 0x10e>; + rockchip,temp-hysteresis = <0x1388>; + rockchip,high-temp = <0x14c08>; + rockchip,pvtm-pvtpll; + rockchip,supported-hw; + intermediate-threshold-freq = <0xf6180>; + rockchip,pvtm-volt = <0xb71b0>; + + opp-j-m-2016000000 { + opp-microvolt = <0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0>; + opp-microvolt-L6 = <0xd8acc 0xd8acc 0xe7ef0 0xd8acc 0xd8acc 0xe7ef0>; + opp-microvolt-L4 = <0xdec74 0xdec74 0xe7ef0 0xdec74 0xdec74 0xe7ef0>; + opp-microvolt-L2 = <0xe4e1c 0xe4e1c 0xe7ef0 0xe4e1c 0xe4e1c 0xe7ef0>; + opp-hz = <0x00 0x7829b800>; + opp-supported-hw = <0x06 0xffff>; + opp-microvolt-L7 = <0xd59f8 0xd59f8 0xe7ef0 0xd59f8 0xd59f8 0xe7ef0>; + opp-microvolt-L5 = <0xdbba0 0xdbba0 0xe7ef0 0xdbba0 0xdbba0 0xe7ef0>; + opp-microvolt-L3 = <0xe1d48 0xe1d48 0xe7ef0 0xe1d48 0xe1d48 0xe7ef0>; + clock-latency-ns = <0x9c40>; + opp-microvolt-L1 = <0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0>; + }; + + opp-1200000000 { + opp-microvolt = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; + opp-hz = <0x00 0x47868c00>; + opp-supported-hw = <0xf9 0xffff>; + clock-latency-ns = <0x9c40>; + }; + + opp-j-m-1416000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + opp-hz = <0x00 0x54667200>; + opp-microvolt-L0 = <0xba284 0xba284 0xe7ef0 0xba284 0xba284 0xe7ef0>; + opp-supported-hw = <0x06 0xffff>; + opp-suspend; + clock-latency-ns = <0x9c40>; + }; + + opp-1008000000 { + opp-microvolt = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; + opp-hz = <0x00 0x3c14dc00>; + opp-supported-hw = <0xf9 0xffff>; + clock-latency-ns = <0x9c40>; + }; + + opp-2256000000 { + opp-microvolt = <0xf4240 0xf4240 0xf4240 0xf4240 0xf4240 0xf4240>; + opp-hz = <0x00 0x8677d400>; + opp-supported-hw = <0xf9 0x13>; + clock-latency-ns = <0x9c40>; + }; + + opp-j-m-1200000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + opp-hz = <0x00 0x47868c00>; + opp-supported-hw = <0x06 0xffff>; + clock-latency-ns = <0x9c40>; + }; + + opp-j-m-1008000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + opp-hz = <0x00 0x3c14dc00>; + opp-supported-hw = <0x06 0xffff>; + clock-latency-ns = <0x9c40>; + }; + + opp-j-m-816000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + opp-hz = <0x00 0x30a32c00>; + opp-supported-hw = <0x06 0xffff>; + clock-latency-ns = <0x9c40>; + }; + + opp-2400000000 { + opp-microvolt = <0xf4240 0xf4240 0xf4240 0xf4240 0xf4240 0xf4240>; + opp-hz = <0x00 0x8f0d1800>; + opp-supported-hw = <0xf9 0x80>; + clock-latency-ns = <0x9c40>; + }; + + opp-1800000000 { + opp-microvolt = <0xcf850 0xcf850 0xf4240 0xcf850 0xcf850 0xf4240>; + opp-microvolt-L6 = <0xbd358 0xbd358 0xf4240 0xbd358 0xbd358 0xf4240>; + opp-microvolt-L4 = <0xc3500 0xc3500 0xf4240 0xc3500 0xc3500 0xf4240>; + opp-microvolt-L2 = <0xc96a8 0xc96a8 0xf4240 0xc96a8 0xc96a8 0xf4240>; + opp-hz = <0x00 0x6b49d200>; + opp-supported-hw = <0xf9 0xffff>; + opp-microvolt-L7 = <0xba284 0xba284 0xf4240 0xba284 0xba284 0xf4240>; + opp-microvolt-L5 = <0xc042c 0xc042c 0xf4240 0xc042c 0xc042c 0xf4240>; + opp-microvolt-L3 = <0xc65d4 0xc65d4 0xf4240 0xc65d4 0xc65d4 0xf4240>; + clock-latency-ns = <0x9c40>; + opp-microvolt-L1 = <0xcc77c 0xcc77c 0xf4240 0xcc77c 0xcc77c 0xf4240>; + }; + + opp-j-m-600000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + opp-hz = <0x00 0x23c34600>; + opp-supported-hw = <0x06 0xffff>; + clock-latency-ns = <0x9c40>; + }; + + opp-2208000000 { + opp-microvolt = <0xf116c 0xf116c 0xf4240 0xf116c 0xf116c 0xf4240>; + opp-microvolt-L6 = <0xe1d48 0xe1d48 0xf4240 0xe1d48 0xe1d48 0xf4240>; + opp-microvolt-L4 = <0xeafc4 0xeafc4 0xf4240 0xeafc4 0xeafc4 0xf4240>; + opp-hz = <0x00 0x839b6800>; + opp-supported-hw = <0xf9 0xffff>; + opp-microvolt-L7 = <0xdec74 0xdec74 0xf4240 0xdec74 0xdec74 0xf4240>; + opp-microvolt-L5 = <0xe7ef0 0xe7ef0 0xf4240 0xe7ef0 0xe7ef0 0xf4240>; + opp-microvolt-L3 = <0xee098 0xee098 0xf4240 0xee098 0xee098 0xf4240>; + clock-latency-ns = <0x9c40>; + }; + + opp-1608000000 { + opp-microvolt = <0xba284 0xba284 0xf4240 0xba284 0xba284 0xf4240>; + opp-microvolt-L6 = <0xaae60 0xaae60 0xf4240 0xaae60 0xaae60 0xf4240>; + opp-microvolt-L4 = <0xb1008 0xb1008 0xf4240 0xb1008 0xb1008 0xf4240>; + opp-microvolt-L2 = <0xb71b0 0xb71b0 0xf4240 0xb71b0 0xb71b0 0xf4240>; + opp-hz = <0x00 0x5fd82200>; + opp-supported-hw = <0xf9 0xffff>; + opp-microvolt-L7 = <0xaae60 0xaae60 0xf4240 0xaae60 0xaae60 0xf4240>; + opp-microvolt-L5 = <0xadf34 0xadf34 0xf4240 0xadf34 0xadf34 0xf4240>; + opp-microvolt-L3 = <0xb40dc 0xb40dc 0xf4240 0xb40dc 0xb40dc 0xf4240>; + clock-latency-ns = <0x9c40>; + }; + + opp-j-m-408000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + opp-hz = <0x00 0x18519600>; + opp-supported-hw = <0x06 0xffff>; + clock-latency-ns = <0x9c40>; + }; + + opp-j-m-1800000000 { + opp-microvolt = <0xd59f8 0xd59f8 0xe7ef0 0xd59f8 0xd59f8 0xe7ef0>; + opp-microvolt-L6 = <0xc3500 0xc3500 0xe7ef0 0xc3500 0xc3500 0xe7ef0>; + opp-microvolt-L4 = <0xc96a8 0xc96a8 0xe7ef0 0xc96a8 0xc96a8 0xe7ef0>; + opp-microvolt-L2 = <0xcf850 0xcf850 0xe7ef0 0xcf850 0xcf850 0xe7ef0>; + opp-hz = <0x00 0x6b49d200>; + opp-supported-hw = <0x06 0xffff>; + opp-microvolt-L7 = <0xc042c 0xc042c 0xe7ef0 0xc042c 0xc042c 0xe7ef0>; + opp-microvolt-L5 = <0xc65d4 0xc65d4 0xe7ef0 0xc65d4 0xc65d4 0xe7ef0>; + opp-microvolt-L3 = <0xcc77c 0xcc77c 0xe7ef0 0xcc77c 0xcc77c 0xe7ef0>; + clock-latency-ns = <0x9c40>; + opp-microvolt-L1 = <0xd2924 0xd2924 0xe7ef0 0xd2924 0xd2924 0xe7ef0>; + }; + + opp-2352000000 { + opp-microvolt = <0xf4240 0xf4240 0xf4240 0xf4240 0xf4240 0xf4240>; + opp-hz = <0x00 0x8c30ac00>; + opp-supported-hw = <0xf9 0x48>; + clock-latency-ns = <0x9c40>; + }; + + opp-816000000 { + opp-microvolt = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; + opp-hz = <0x00 0x30a32c00>; + opp-supported-hw = <0xf9 0xffff>; + clock-latency-ns = <0x9c40>; + }; + + opp-j-m-1608000000 { + opp-microvolt = <0xc042c 0xc042c 0xe7ef0 0xc042c 0xc042c 0xe7ef0>; + opp-microvolt-L6 = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + opp-microvolt-L4 = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + opp-microvolt-L2 = <0xbd358 0xbd358 0xe7ef0 0xbd358 0xbd358 0xe7ef0>; + opp-hz = <0x00 0x5fd82200>; + opp-supported-hw = <0x06 0xffff>; + opp-microvolt-L7 = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + opp-microvolt-L5 = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + opp-microvolt-L3 = <0xba284 0xba284 0xe7ef0 0xba284 0xba284 0xe7ef0>; + clock-latency-ns = <0x9c40>; + }; + + opp-600000000 { + opp-microvolt = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; + opp-hz = <0x00 0x23c34600>; + opp-supported-hw = <0xf9 0xffff>; + clock-latency-ns = <0x9c40>; + }; + + opp-2016000000 { + opp-microvolt = <0xe1d48 0xe1d48 0xf4240 0xe1d48 0xe1d48 0xf4240>; + opp-microvolt-L6 = <0xcf850 0xcf850 0xf4240 0xcf850 0xcf850 0xf4240>; + opp-microvolt-L4 = <0xd59f8 0xd59f8 0xf4240 0xd59f8 0xd59f8 0xf4240>; + opp-microvolt-L2 = <0xdbba0 0xdbba0 0xf4240 0xdbba0 0xdbba0 0xf4240>; + opp-hz = <0x00 0x7829b800>; + opp-supported-hw = <0xf9 0xffff>; + opp-microvolt-L7 = <0xcc77c 0xcc77c 0xf4240 0xcc77c 0xcc77c 0xf4240>; + opp-microvolt-L5 = <0xd2924 0xd2924 0xf4240 0xd2924 0xd2924 0xf4240>; + opp-microvolt-L3 = <0xd8acc 0xd8acc 0xf4240 0xd8acc 0xd8acc 0xf4240>; + clock-latency-ns = <0x9c40>; + opp-microvolt-L1 = <0xdec74 0xdec74 0xf4240 0xdec74 0xdec74 0xf4240>; + }; + + opp-1416000000 { + opp-microvolt = <0xb1008 0xb1008 0xf4240 0xb1008 0xb1008 0xf4240>; + opp-microvolt-L6 = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; + opp-microvolt-L4 = <0xaae60 0xaae60 0xf4240 0xaae60 0xaae60 0xf4240>; + opp-microvolt-L2 = <0xadf34 0xadf34 0xf4240 0xadf34 0xadf34 0xf4240>; + opp-hz = <0x00 0x54667200>; + opp-supported-hw = <0xf9 0xffff>; + opp-microvolt-L7 = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; + opp-microvolt-L5 = <0xa7d8c 0xa7d8c 0xf4240 0xa7d8c 0xa7d8c 0xf4240>; + opp-microvolt-L3 = <0xaae60 0xaae60 0xf4240 0xaae60 0xaae60 0xf4240>; + clock-latency-ns = <0x9c40>; + }; + + opp-408000000 { + opp-microvolt = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; + opp-hz = <0x00 0x18519600>; + opp-supported-hw = <0xf9 0xffff>; + opp-suspend; + clock-latency-ns = <0x9c40>; + }; + + opp-2304000000 { + opp-microvolt = <0xf4240 0xf4240 0xf4240 0xf4240 0xf4240 0xf4240>; + opp-hz = <0x00 0x89544000>; + opp-supported-hw = <0xf9 0x24>; + clock-latency-ns = <0x9c40>; + }; + }; + + rkcif-dvp { + iommus = <0x50>; + rockchip,hw = <0x4f>; + compatible = "rockchip,rkcif-dvp"; + status = "disabled"; + phandle = <0x51>; + }; + + rkisp0-vir2 { + rockchip,hw = <0x58>; + compatible = "rockchip,rkisp-vir"; + status = "okay"; + phandle = <0x23d>; + + port { + #address-cells = <0x01>; + #size-cells = <0x00>; + + endpoint@0 { + remote-endpoint = <0x59>; + reg = <0x00>; + phandle = <0x56>; + }; + }; + }; + + i2c@fea90000 { + pinctrl-names = "default"; + #address-cells = <0x01>; + pinctrl-0 = <0x148>; + clock-names = "i2c\0pclk"; + resets = <0x02 0xb0 0x02 0xa8>; + interrupts = <0x00 0x13e 0x04>; + clocks = <0x02 0x8d 0x02 0x85>; + #size-cells = <0x00>; + compatible = "rockchip,rk3588-i2c\0rockchip,rk3399-i2c"; + status = "okay"; + reg = <0x00 0xfea90000 0x00 0x1000>; + phandle = <0x2a4>; + reset-names = "i2c\0apb"; + + rk8602@42 { + regulator-max-microvolt = <0xe7ef0>; + regulator-boot-on; + rockchip,suspend-voltage-selector = <0x01>; + regulator-always-on; + regulator-min-microvolt = <0x86470>; + regulator-name = "vdd_npu_s0"; + regulator-ramp-delay = <0x8fc>; + compatible = "rockchip,rk8602"; + reg = <0x42>; + phandle = <0xb3>; + vin-supply = <0x78>; + regulator-compatible = "rk860x-reg"; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + }; + + syscon@fd58a000 { + compatible = "rockchip,rk3588-pmu1-grf\0syscon"; + reg = <0x00 0xfd58a000 0x00 0x2000>; + phandle = <0x104>; + }; + + syscon@fd5ec000 { + compatible = "rockchip,mipi-dcphy-grf\0syscon"; + reg = <0x00 0xfd5ec000 0x00 0x4000>; + phandle = <0x191>; + }; + + venc-opp-table { + nvmem-cells = <0xc6 0xc7>; + rockchip,leakage-voltage-sel = <0x01 0x0f 0x00 0x10 0x19 0x01 0x1a 0xfe 0x02>; + volt-mem-read-margin = <0xd0bd8 0x01 0xbac48 0x02 0xa4cb8 0x03 0x78d98 0x04>; + compatible = "operating-points-v2"; + rockchip,grf = <0xc8>; + nvmem-cell-names = "leakage\0opp-info"; + phandle = <0xc4>; + + opp-800000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; + opp-microvolt-L2 = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; + opp-hz = <0x00 0x2faf0800>; + opp-microvolt-L0 = <0xc3500 0xc3500 0xcf850 0xc3500 0xc3500 0xcf850>; + opp-microvolt-L1 = <0xbd358 0xbd358 0xcf850 0xbd358 0xbd358 0xcf850>; + }; + }; + + iommu@fdc38700 { + power-domains = <0x60 0x0e>; + rockchip,shootdown-entire; + clock-names = "aclk\0iface"; + interrupts = <0x00 0x60 0x04>; + clocks = <0x02 0x190 0x02 0x18f>; + rockchip,enable-cmd-retry; + #iommu-cells = <0x00>; + compatible = "rockchip,iommu-v2"; + rockchip,disable-mmu-reset; + status = "okay"; + interrupt-names = "irq_rkvdec0_mmu"; + reg = <0x00 0xfdc38700 0x00 0x40 0x00 0xfdc38740 0x00 0x40>; + phandle = <0xc9>; + rockchip,master-handle-irq; + }; + + qos@fdf35200 { + compatible = "syscon"; + reg = <0x00 0xfdf35200 0x00 0x20>; + phandle = <0x88>; + }; + + qos@fdf71000 { + compatible = "syscon"; + reg = <0x00 0xfdf71000 0x00 0x20>; + phandle = <0x86>; + }; + + syscon@fd598000 { + compatible = "rockchip,rk3588-dsu-grf\0syscon"; + reg = <0x00 0xfd598000 0x00 0x100>; + phandle = <0x23>; + }; + + csi2-dphy2 { + rockchip,hw = <0x2d 0x2e>; + phy-names = "dcphy0\0dcphy1"; + compatible = "rockchip,rk3588-csi2-dphy"; + status = "disabled"; + phys = <0x2f 0x30>; + phandle = <0x211>; + }; + + syscon@fd5b4000 { + compatible = "rockchip,mipi-dphy-grf\0syscon"; + reg = <0x00 0xfd5b4000 0x00 0x1000>; + phandle = <0x192>; + }; + + uio@fe1b0000 { + compatible = "rockchip,uio-gmac"; + status = "disabled"; + reg = <0x00 0xfe1b0000 0x00 0x10000>; + phandle = <0x488>; + rockchip,ethernet = <0x1bd>; + }; + + iommu@fdb70f00 { + power-domains = <0x60 0x1e>; + clock-names = "aclk\0iface"; + interrupts = <0x00 0x73 0x04>; + clocks = <0x02 0x18a 0x02 0x189>; + #iommu-cells = <0x00>; + compatible = "rockchip,iommu-v2"; + status = "okay"; + interrupt-names = "rga3_1_mmu"; + reg = <0x00 0xfdb70f00 0x00 0x100>; + phandle = <0xba>; + }; + + vcc5v0-usb { + regulator-max-microvolt = <0x4c4b40>; + regulator-boot-on; + regulator-always-on; + regulator-min-microvolt = <0x4c4b40>; + regulator-name = "vcc5v0_usb"; + compatible = "regulator-fixed"; + phandle = <0x1dd>; + vin-supply = <0x1cd>; + }; + + fiq-debugger { + pinctrl-names = "default"; + rockchip,irq-mode-enable = <0x01>; + rockchip,baudrate = <0x1c200>; + pinctrl-0 = <0x1ce>; + interrupts = <0x00 0x1a7 0x08>; + rockchip,wake-irq = <0x00>; + compatible = "rockchip,fiq-debugger"; + status = "disabled"; + phandle = <0x490>; + rockchip,serial-id = <0x02>; + }; + + phy@fed70000 { + clock-names = "ref\0apb"; + resets = <0x02 0x486 0x02 0xc003f 0x02 0xc0040 0x02 0xc0041>; + clocks = <0x02 0x2b5 0x02 0x268>; + #phy-cells = <0x00>; + compatible = "rockchip,rk3588-hdptx-phy"; + status = "disabled"; + rockchip,grf = <0x1c7>; + reg = <0x00 0xfed70000 0x00 0x2000>; + phandle = <0x1af>; + reset-names = "apb\0init\0cmn\0lane"; + }; + + ethernet@fe1b0000 { + power-domains = <0x60 0x21>; + pinctrl-names = "default"; + phy-mode = "rgmii-rxid"; + snps,mixed-burst; + snps,mtl-rx-config = <0x1bf>; + snps,reset-active-low; + pinctrl-0 = <0x1c1 0x1c2 0x1c3 0x1c4 0x1c5>; + clock-names = "stmmaceth\0clk_mac_ref\0pclk_mac\0aclk_mac\0ptp_ref"; + snps,mtl-tx-config = <0x1c0>; + local-mac-address = [a6 50 47 45 20 4f]; + resets = <0x02 0x20a>; + interrupts = <0x00 0xe3 0x04 0x00 0xe2 0x04>; + clocks = <0x02 0x144 0x02 0x145 0x02 0x167 0x02 0x16c 0x02 0x142>; + clock_in_out = "output"; + snps,tso; + compatible = "rockchip,rk3588-gmac\0snps,dwmac-4.20a"; + status = "okay"; + rockchip,grf = <0xc8>; + interrupt-names = "macirq\0eth_wake_irq"; + snps,reset-gpio = <0x10d 0x02 0x01>; + reg = <0x00 0xfe1b0000 0x00 0x10000>; + rockchip,php_grf = <0x76>; + phandle = <0x1bd>; + phy-handle = <0x1c6>; + reset-names = "stmmaceth"; + tx_delay = <0x31>; + snps,axi-config = <0x1be>; + snps,reset-delays-us = <0x00 0x4e20 0x186a0>; + + mdio { + #address-cells = <0x01>; + #size-cells = <0x00>; + compatible = "snps,dwmac-mdio"; + phandle = <0x489>; + + phy@1 { + compatible = "ethernet-phy-ieee802.3-c22"; + reg = <0x01>; + phandle = <0x1c6>; + }; + }; + + tx-queues-config { + phandle = <0x1c0>; + snps,tx-queues-to-use = <0x01>; + + queue0 { + }; + }; + + stmmac-axi-config { + snps,wr_osr_lmt = <0x04>; + phandle = <0x1be>; + snps,blen = <0x00 0x00 0x00 0x00 0x10 0x08 0x04>; + snps,rd_osr_lmt = <0x08>; + }; + + rx-queues-config { + snps,rx-queues-to-use = <0x01>; + phandle = <0x1bf>; + + queue0 { + }; + }; + }; + + pvtm@fda60000 { + #address-cells = <0x01>; + #size-cells = <0x00>; + compatible = "rockchip,rk3588-litcore-pvtm"; + reg = <0x00 0xfda60000 0x00 0x100>; + + pvtm@2 { + clock-names = "clk\0pclk"; + clocks = <0x02 0x2ca 0x02 0x1b>; + reg = <0x02>; + }; + }; + + rkispp@fdcd8000 { + power-domains = <0x60 0x1d>; + iommus = <0xd3>; + clock-names = "aclk_ispp\0hclk_ispp\0clk_ispp"; + assigned-clocks = <0x02 0x1d9>; + assigned-clock-rates = <0x5f5e100>; + interrupts = <0x00 0x8d 0x04>; + clocks = <0x02 0x1d8 0x02 0x1d9 0x02 0x1da>; + compatible = "rockchip,rk3588-rkispp"; + status = "disabled"; + interrupt-names = "fec_irq"; + reg = <0x00 0xfdcd8000 0x00 0xf00>; + phandle = <0x5c>; + }; + + qos@fdf66000 { + compatible = "syscon"; + reg = <0x00 0xfdf66000 0x00 0x20>; + phandle = <0x93>; + }; + + syscon@fd592000 { + compatible = "rockchip,rk3588-bigcore1-grf\0syscon"; + reg = <0x00 0xfd592000 0x00 0x100>; + phandle = <0x29>; + }; + + rkcif-mipi-lvds1 { + iommus = <0x50>; + rockchip,hw = <0x4f>; + compatible = "rockchip,rkcif-mipi-lvds"; + status = "disabled"; + phandle = <0x53>; + }; + + av1d@fdc70000 { + power-domains = <0x60 0x17>; + iommus = <0xce>; + clock-names = "aclk_vcodec\0hclk_vcodec"; + reg-names = "vcd\0cache\0afbc"; + assigned-clocks = <0x02 0x49 0x02 0x4b>; + rockchip,normal-rates = <0x17d78400 0x17d78400>; + assigned-clock-rates = <0x17d78400 0x17d78400>; + resets = <0x02 0x442 0x02 0x445>; + interrupts = <0x00 0x6c 0x04 0x00 0x6b 0x04 0x00 0x6a 0x04>; + clocks = <0x02 0x49 0x02 0x4b>; + rockchip,srv = <0xb8>; + rockchip,taskqueue-node = <0x0b>; + compatible = "rockchip,av1-decoder"; + status = "okay"; + interrupt-names = "irq_av1d\0irq_cache\0irq_afbc"; + reg = <0x00 0xfdc70000 0x00 0x800 0x00 0xfdc80000 0x00 0x400 0x00 0xfdc90000 0x00 0x400>; + phandle = <0x276>; + reset-names = "video_a\0video_h"; + }; + + qos@fdf40500 { + compatible = "syscon"; + reg = <0x00 0xfdf40500 0x00 0x20>; + phandle = <0xa3>; + }; + + vcc-hub-reset-regulator { + regulator-boot-on; + gpio = <0x182 0x04 0x00>; + regulator-always-on; + enable-active-high; + regulator-name = "vcc_hub_reset"; + compatible = "regulator-fixed"; + status = "disabled"; + phandle = <0x4a0>; + }; + + qos@fdf72200 { + compatible = "syscon"; + reg = <0x00 0xfdf72200 0x00 0x20>; + phandle = <0x83>; + }; + + serial@feb70000 { + reg-io-width = <0x04>; + pinctrl-names = "default"; + pinctrl-0 = <0x163>; + clock-names = "baudclk\0apb_pclk"; + interrupts = <0x00 0x14f 0x04>; + clocks = <0x02 0xc3 0x02 0xae>; + compatible = "rockchip,rk3588-uart\0snps,dw-apb-uart"; + status = "disabled"; + reg = <0x00 0xfeb70000 0x00 0x100>; + phandle = <0x2cc>; + dmas = <0xf1 0x09 0xf1 0x0a>; + reg-shift = <0x02>; + }; + + rkcif-mipi-lvds2-sditf { + compatible = "rockchip,rkcif-sditf"; + status = "okay"; + rockchip,cif = <0x55>; + phandle = <0x233>; + + port { + + endpoint { + remote-endpoint = <0x56>; + phandle = <0x59>; + }; + }; + }; + + i2c@feca0000 { + pinctrl-names = "default"; + #address-cells = <0x01>; + pinctrl-0 = <0x186>; + clock-names = "i2c\0pclk"; + resets = <0x02 0xb7 0x02 0xaf>; + interrupts = <0x00 0x145 0x04>; + clocks = <0x02 0x94 0x02 0x8c>; + #size-cells = <0x00>; + compatible = "rockchip,rk3588-i2c\0rockchip,rk3399-i2c"; + status = "disabled"; + reg = <0x00 0xfeca0000 0x00 0x1000>; + phandle = <0x2e5>; + reset-names = "i2c\0apb"; + }; + + vcc-sdcard-pwr-en-regulator { + regulator-boot-on; + gpio = <0xfe 0x07 0x00>; + regulator-always-on; + enable-active-high; + regulator-name = "vcc_sdcard_pwr_en"; + compatible = "regulator-fixed"; + status = "okay"; + phandle = <0x4a5>; + }; + + rkcif-mipi-lvds1-sditf-vir1 { + compatible = "rockchip,rkcif-sditf"; + status = "disabled"; + rockchip,cif = <0x53>; + phandle = <0x230>; + }; + + qos@fdf63000 { + compatible = "syscon"; + reg = <0x00 0xfdf63000 0x00 0x20>; + phandle = <0x8c>; + }; + + phy@fee00000 { + rockchip,pipe-grf = <0x76>; + clock-names = "refclk\0apbclk\0phpclk"; + assigned-clocks = <0x02 0x2bd>; + assigned-clock-rates = <0x5f5e100>; + resets = <0x02 0x20005 0x02 0x4d6>; + clocks = <0x02 0x2bd 0x02 0x185 0x02 0x166>; + #phy-cells = <0x01>; + compatible = "rockchip,rk3588-naneng-combphy"; + status = "okay"; + rockchip,pipe-phy-grf = <0x194>; + reg = <0x00 0xfee00000 0x00 0x100>; + phandle = <0x108>; + reset-names = "combphy-apb\0combphy"; + }; + + can@fea50000 { + pinctrl-names = "default"; + pinctrl-0 = <0x145>; + clock-names = "baudclk\0apb_pclk"; + resets = <0x02 0xb9 0x02 0xb8>; + interrupts = <0x00 0x155 0x04>; + clocks = <0x02 0x70 0x02 0x6f>; + compatible = "rockchip,can-2.0"; + status = "disabled"; + tx-fifo-depth = <0x01>; + rx-fifo-depth = <0x06>; + reg = <0x00 0xfea50000 0x00 0x1000>; + phandle = <0x2a0>; + reset-names = "can\0can-apb"; + }; + + pdm@fe4b0000 { + pinctrl-names = "default\0idle\0clk"; + pinctrl-2 = <0x139 0x13a>; + pinctrl-0 = <0x134 0x135 0x136 0x137>; + clock-names = "pdm_clk\0pdm_hclk"; + clocks = <0x02 0x29f 0x02 0x29e>; + dma-names = "rx"; + #sound-dai-cells = <0x00>; + compatible = "rockchip,rk3588-pdm"; + pinctrl-1 = <0x138>; + status = "disabled"; + reg = <0x00 0xfe4b0000 0x00 0x1000>; + phandle = <0x29a>; + dmas = <0x7c 0x04>; + }; + + rkisp-unite-mmu@fdcb7f00 { + power-domains = <0x60 0x1c>; + clock-names = "aclk0\0iface0\0aclk1\0iface1"; + interrupts = <0x00 0x84 0x04 0x00 0x88 0x04>; + clocks = <0x02 0x1de 0x02 0x1df 0x02 0x120 0x02 0x121>; + #iommu-cells = <0x00>; + compatible = "rockchip,iommu-v2"; + rockchip,disable-mmu-reset; + status = "disabled"; + interrupt-names = "isp0_mmu\0isp1_mmu"; + reg = <0x00 0xfdcb7f00 0x00 0x100 0x00 0xfdcc7f00 0x00 0x100>; + phandle = <0xcf>; + }; + + syscon@fd5a6000 { + clocks = <0x72>; + compatible = "rockchip,rk3588-vo-grf\0syscon"; + reg = <0x00 0xfd5a6000 0x00 0x2000>; + phandle = <0xf5>; + }; + + cpus { + #address-cells = <0x01>; + #size-cells = <0x00>; + + cpu@0 { + device_type = "cpu"; + compatible = "arm,cortex-a55"; + reg = <0x00>; + enable-method = "psci"; + clocks = <0x0e 0x00>; + cpu-idle-states = <0x10>; + operating-points-v2 = <0x0f>; + capacity-dmips-mhz = <0x212>; + + cpu-supply = <0x12>; + mem-supply = <0x12>; + dynamic-power-coefficient = <0x64>; + + i-cache-line-size = <0x40>; + i-cache-size = <0x8000>; + i-cache-sets = <0x80>; + + d-cache-line-size = <0x40>; + d-cache-size = <0x8000>; + d-cache-sets = <0x80>; + + next-level-cache = <0x11>; + #cooling-cells = <0x02>; + phandle = <0x06>; + }; + + l2-cache-l0 { + compatible = "cache"; + cache-size = <0x20000>; + cache-sets = <0x200>; + cache-line-size = <0x40>; + next-level-cache = <0x1e>; + phandle = <0x11>; + }; + + l3-cache { + compatible = "cache"; + cache-size = <0x300000>; + cache-sets = <0x1000>; + cache-line-size = <0x40>; + phandle = <0x1e>; + }; + + idle-states { + entry-method = "psci"; + + cpu-sleep { + compatible = "arm,idle-state"; + entry-latency-us = <0x64>; + exit-latency-us = <0x78>; + min-residency-us = <0x3e8>; + local-timer-stop; + arm,psci-suspend-param = <0x10000>; + phandle = <0x10>; + }; + }; + + cpu-map { + cluster0 { + core0 { + cpu = <0x06>; + }; + }; + }; + }; + + vcc-hub3-reset-regulator { + gpio = <0x182 0x06 0x00>; + regulator-always-on; + enable-active-high; + regulator-name = "vcc_hub3_reset"; + compatible = "regulator-fixed"; + status = "disabled"; + phandle = <0x4a1>; + }; + + rkispp1-vir0 { + rockchip,hw = <0x5c>; + compatible = "rockchip,rk3588-rkispp-vir"; + status = "disabled"; + phandle = <0x244>; + }; + + saradc@fec10000 { + vref-supply = <0x177>; + clock-names = "saradc\0apb_pclk"; + resets = <0x02 0xbe>; + interrupts = <0x00 0x18e 0x04>; + clocks = <0x02 0x9d 0x02 0x9c>; + #io-channel-cells = <0x01>; + compatible = "rockchip,rk3588-saradc"; + status = "okay"; + reg = <0x00 0xfec10000 0x00 0x10000>; + phandle = <0x1d9>; + reset-names = "saradc-apb"; + }; + + rkisp0-vir0 { + rockchip,hw = <0x58>; + compatible = "rockchip,rkisp-vir"; + status = "disabled"; + phandle = <0x23b>; + }; + + __symbols__ { + i2s2m0_lrck = "/pinctrl/i2s2/i2s2m0-lrck"; + i2c3 = "/i2c@feab0000"; + scmi_shmem = "/sram@10f000/sram@0"; + rkispp0_vir0 = "/rkispp0-vir0"; + qos_jpeg_enc0 = "/qos@fdf66400"; + i2s1m1_sdi1 = "/pinctrl/i2s1/i2s1m1-sdi1"; + dp_altmode_mux = "/i2c@fec80000/fusb302@22/connector/ports/port@1/endpoint"; + pmic_pins = "/pinctrl/pmic/pmic-pins"; + usb_host1_ohci = "/usb@fc8c0000"; + pwm9 = "/pwm@febe0010"; + i2c6m4_xfer = "/pinctrl/i2c6/i2c6m4-xfer"; + leds_gpio = "/pinctrl/leds/leds-gpio"; + i2c3m3_xfer = "/pinctrl/i2c3/i2c3m3-xfer"; + qos_usb3_1 = "/qos@fdf3e000"; + hdmi_debug4 = "/pinctrl/hdmi/hdmi-debug4"; + i2c0m2_xfer = "/pinctrl/i2c0/i2c0m2-xfer"; + gmac0_rgmii_bus = "/pinctrl/gmac0/gmac0-rgmii-bus"; + pcie30x2m2_pins = "/pinctrl/pcie30x2/pcie30x2m2-pins"; + sdmmc_clk = "/pinctrl/sdmmc/sdmmc-clk"; + spi0m3_cs0 = "/pinctrl/spi0/spi0m3-cs0"; + hwlock = "/hwspinlock@fe5a0000"; + pcie3x2 = "/pcie@fe160000"; + i2s2m1_mclk = "/pinctrl/i2s2/i2s2m1-mclk"; + mipim0_camera3_clk = "/pinctrl/mipi/mipim0-camera3-clk"; + mclkin_i2s0 = "/clocks/mclkin-i2s0"; + edp1_in_vp1 = "/edp@fded0000/ports/port@0/endpoint@1"; + rkvenc0_mmu = "/iommu@fdbdf000"; + pwm14 = "/pwm@febf0020"; + rk806_dvs2_rst = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs2_rst"; + mipi2_csi2 = "/mipi2-csi2"; + can2m1_pins = "/pinctrl/can2/can2m1-pins"; + pcie2x1l1 = "/pcie@fe180000"; + hdmi0_in_vp2 = "/hdmi@fde80000/ports/port@0/endpoint@2"; + qos_rkvenc0_m2wo = "/qos@fdf60400"; + pwm3m2_pins = "/pinctrl/pwm3/pwm3m2-pins"; + optee = "/firmware/optee"; + l2_cache_b2 = "/cpus/l2-cache-b2"; + pwm0m1_pins = "/pinctrl/pwm0/pwm0m1-pins"; + vdpu = "/vdpu@fdb50400"; + i2s3_sdo = "/pinctrl/i2s3/i2s3-sdo"; + usbdp_phy0_u3 = "/phy@fed80000/u3-port"; + thermal_zones = "/thermal-zones"; + hdmim2_rx_scl = "/pinctrl/hdmi/hdmim2-rx-scl"; + hdmim2_rx_sda = "/pinctrl/hdmi/hdmim2-rx-sda"; + uart9m0_rtsn = "/pinctrl/uart9/uart9m0-rtsn"; + spi1m2_cs0 = "/pinctrl/spi1/spi1m2-cs0"; + pcie2x1l1_intc = "/pcie@fe180000/legacy-interrupt-controller"; + spdif1m1_tx = "/pinctrl/spdif1/spdif1m1-tx"; + venc_opp_info = "/otp@fecc0000/venc-opp-info@67"; + qos_iep = "/qos@fdf66000"; + pcfg_pull_none_drv_level_3 = "/pinctrl/pcfg-pull-none-drv-level-3"; + spi3m2_cs1 = "/pinctrl/spi3/spi3m2-cs1"; + uart4m2_xfer = "/pinctrl/uart4/uart4m2-xfer"; + vp1 = "/vop@fdd90000/ports/port@1"; + bigcore1_grf = "/syscon@fd592000"; + uart1m1_xfer = "/pinctrl/uart1/uart1m1-xfer"; + uart5m1_ctsn = "/pinctrl/uart5/uart5m1-ctsn"; + fspim1_pins = "/pinctrl/fspi/fspim1-pins"; + cpu_l1 = "/cpus/cpu@100"; + uart8 = "/serial@febb0000"; + rkisp1_vir3 = "/rkisp1-vir3"; + qos_vop_m1 = "/qos@fdf82200"; + pcie_clk2 = "/pcie-clk2"; + cluster2_opp_table = "/cluster2-opp-table"; + usb_grf = "/syscon@fd5ac000"; + pcfg_pull_none_smt = "/pinctrl/pcfg-pull-none-smt"; + jpege0_mmu = "/iommu@fdba0800"; + spi2m1_cs0 = "/pinctrl/spi2/spi2m1-cs0"; + u2phy3 = "/syscon@fd5dc000/usb2-phy@c000"; + power_led = "/leds/power"; + aclk_usb = "/clocks/aclk_usb@fd7c08a8"; + csi2_dphy1 = "/csi2-dphy1"; + spi2 = "/spi@feb20000"; + uart2_rtsn = "/pinctrl/uart2/uart2-rtsn"; + spi4m1_cs1 = "/pinctrl/spi4/spi4m1-cs1"; + pcfg_pull_up_drv_level_15 = "/pinctrl/pcfg-pull-up-drv-level-15"; + vo1_grf = "/syscon@fd5a8000"; + pcie_essd = "/pcie-essd"; + i2c4m3_xfer = "/pinctrl/i2c4/i2c4m3-xfer"; + gpio0 = "/pinctrl/gpio@fd8a0000"; + saradc = "/saradc@fec10000"; + i2s1m0_sdi3 = "/pinctrl/i2s1/i2s1m0-sdi3"; + i2c1m2_xfer = "/pinctrl/i2c1/i2c1m2-xfer"; + csidphy0_out = "/csi2-dphy0/ports/port@1/endpoint@0"; + emmc_rstnout = "/pinctrl/emmc/emmc-rstnout"; + mclkout_i2s3 = "/clocks/mclkout-i2s3@fd58c318"; + xc7160_out0 = "/i2c@fec80000/XC7160b@1b/port/endpoint"; + rkcif_mipi_lvds1_sditf_vir1 = "/rkcif-mipi-lvds1-sditf-vir1"; + dsi1 = "/dsi@fde30000"; + venc_opp_table = "/venc-opp-table"; + qos_isp0_mwo = "/qos@fdf40500"; + pmu_pins = "/pinctrl/pmu/pmu-pins"; + gmac0_miim = "/pinctrl/gmac0/gmac0-miim"; + spi3m0_cs0 = "/pinctrl/spi3/spi3m0-cs0"; + mipi_dcphy0 = "/mipi-dcphy-dummy"; + minidump_mem = "/reserved-memory/minidump-mem@c000000"; + avdd_1v2_s0 = "/spi@feb20000/rk806single@0/regulators/PLDO_REG3"; + pwm7m3_pins = "/pinctrl/pwm7/pwm7m3-pins"; + route_edp1 = "/display-subsystem/route/route-edp1"; + hdmi1 = "/hdmi@fdea0000"; + crypto = "/crypto@fe370000"; + hdmi1_in_vp2 = "/hdmi@fdea0000/ports/port@0/endpoint@2"; + dfi = "/dfi@fe060000"; + can0m0_pins = "/pinctrl/can0/can0m0-pins"; + pcfg_pull_up_drv_level_2 = "/pinctrl/pcfg-pull-up-drv-level-2"; + pinctrl = "/pinctrl"; + rgmii_phy0 = "/ethernet@fe1b0000/mdio/phy@1"; + pcfg_pull_down_drv_level_6 = "/pinctrl/pcfg-pull-down-drv-level-6"; + dp0m0_pins = "/pinctrl/dp0/dp0m0-pins"; + i2s0_sdo3 = "/pinctrl/i2s0/i2s0-sdo3"; + vcc_sata_pwr_en = "/vcc-sata-pwr-en-regulator"; + pwm1m1_pins = "/pinctrl/pwm1/pwm1m1-pins"; + pcie30_avdd1v8 = "/pcie30-avdd1v8"; + usb2phy3_grf = "/syscon@fd5dc000"; + u2phy2_host = "/syscon@fd5d8000/usb2-phy@8000/host-port"; + hym8563_int = "/pinctrl/hym8563/hym8563-int"; + mailbox1 = "/mailbox@fec70000"; + pdm0m1_sdi3 = "/pinctrl/pdm0/pdm0m1-sdi3"; + combphy1_ps = "/phy@fee10000"; + hdptxphy0_grf = "/syscon@fd5e0000"; + sdei = "/firmware/sdei"; + vp0_out_dp1 = "/vop@fdd90000/ports/port@0/endpoint@3"; + uart5m2_xfer = "/pinctrl/uart5/uart5m2-xfer"; + uart9m2_ctsn = "/pinctrl/uart9/uart9m2-ctsn"; + uart2m1_xfer = "/pinctrl/uart2/uart2m1-xfer"; + dp0_out = "/dp@fde50000/ports/port@1/endpoint"; + uart6m1_ctsn = "/pinctrl/uart6/uart6m1-ctsn"; + route_rgb = "/display-subsystem/route/route-rgb"; + csidphy0_out1 = "/csi2-dphy0/ports/port@1/endpoint@0"; + i2c1 = "/i2c@fea90000"; + pinctrl_rk806 = "/spi@feb20000/rk806single@0/pinctrl_rk806"; + cpu_code = "/otp@fecc0000/cpu-code@2"; + pwm7 = "/pwm@febd0030"; + mipi5_csi2_hw = "/mipi5-csi2-hw@fdd60000"; + gpu_leakage = "/otp@fecc0000/gpu-leakage@1b"; + hdmi_debug2 = "/pinctrl/hdmi/hdmi-debug2"; + pdm0m0_clk = "/pinctrl/pdm0/pdm0m0-clk"; + gmac0_ppsclk = "/pinctrl/gmac0/gmac0-ppsclk"; + i2c8m4_xfer = "/pinctrl/i2c8/i2c8m4-xfer"; + vdd_npu_s0 = "/i2c@fea90000/rk8602@42"; + i2c5m3_xfer = "/pinctrl/i2c5/i2c5m3-xfer"; + gmac0 = "/ethernet@fe1b0000"; + i2c2m2_xfer = "/pinctrl/i2c2/i2c2m2-xfer"; + rockchip_system_monitor = "/rockchip-system-monitor"; + pcie30x4m2_pins = "/pinctrl/pcie30x4/pcie30x4m2-pins"; + pwm12 = "/pwm@febf0000"; + emmc_cmd = "/pinctrl/emmc/emmc-cmd"; + i2s1_8ch = "/i2s@fe480000"; + pcie30x1m1_pins = "/pinctrl/pcie30x1/pcie30x1m1-pins"; + uart4_ctsn = "/pinctrl/uart4/uart4-ctsn"; + vdd_cpu_big0_mem_s0 = "/i2c@fd880000/rk8602@42"; + pcfg_pull_none = "/pinctrl/pcfg-pull-none"; + i2s1m0_mclk = "/pinctrl/i2s1/i2s1m0-mclk"; + vp1_out_edp1 = "/vop@fdd90000/ports/port@1/endpoint@4"; + hdmi0_in_vp0 = "/hdmi@fde80000/ports/port@0/endpoint@0"; + vcc_4g = "/vcc-4g-regulator"; + firefly_leds = "/leds"; + jpege3 = "/jpege-core@fdbac000"; + l2_cache_b0 = "/cpus/l2-cache-b0"; + pmu1_grf = "/syscon@fd58a000"; + aclk_rkvenc1_pre = "/clocks/aclk_rkvenc1_pre@fd7c08c0"; + can1m0_pins = "/pinctrl/can1/can1m0-pins"; + spi0m3_pins = "/pinctrl/spi0/spi0m3-pins"; + pwm5m2_pins = "/pinctrl/pwm5/pwm5m2-pins"; + mipidphy0_in_ucam1 = "/csi2-dphy0/ports/port@0/endpoint@1"; + i2s0_lrck = "/pinctrl/i2s0/i2s0-lrck"; + clk32k_out0 = "/pinctrl/clk32k/clk32k-out0"; + dp1m0_pins = "/pinctrl/dp1/dp1m0-pins"; + pwm2m1_pins = "/pinctrl/pwm2/pwm2m1-pins"; + usbc0 = "/i2c@fec80000/fusb302@22"; + eth1_pins = "/pinctrl/eth1/eth1-pins"; + pcfg_pull_none_drv_level_1 = "/pinctrl/pcfg-pull-none-drv-level-1"; + csi2_dphy0_hw = "/csi2-dphy0-hw@fedc0000"; + pdm1m1_sdi3 = "/pinctrl/pdm1/pdm1m1-sdi3"; + dsi0_in_vp3 = "/dsi@fde20000/ports/port@0/endpoint@1"; + hdmim1_tx1_cec = "/pinctrl/hdmi/hdmim1-tx1-cec"; + usbc0_role_sw = "/i2c@fec80000/fusb302@22/ports/port@0/endpoint@0"; + uart6 = "/serial@feb90000"; + rkisp1_vir1 = "/rkisp1-vir1"; + sdhci = "/mmc@fe2e0000"; + uart6m2_xfer = "/pinctrl/uart6/uart6m2-xfer"; + target = "/thermal-zones/soc-thermal/trips/trip-point-1"; + rkcif_mipi_lvds_sditf_vir3 = "/rkcif-mipi-lvds-sditf-vir3"; + pcfg_pull_none_drv_level_0_smt = "/pinctrl/pcfg-pull-none-drv-level-0-smt"; + uart3m1_xfer = "/pinctrl/uart3/uart3m1-xfer"; + uart7m1_ctsn = "/pinctrl/uart7/uart7m1-ctsn"; + uart0m0_xfer = "/pinctrl/uart0/uart0m0-xfer"; + rgb_in_vp3 = "/syscon@fd58c000/rgb/ports/port@0/endpoint@2"; + rkcif_mipi_lvds5_sditf_vir2 = "/rkcif-mipi-lvds5-sditf-vir2"; + u2phy1 = "/syscon@fd5d4000/usb2-phy@4000"; + i2s5_8ch = "/i2s@fddf0000"; + i2s2m0_sdo = "/pinctrl/i2s2/i2s2m0-sdo"; + gpu = "/gpu@fb000000"; + spi0 = "/spi@feb00000"; + iep = "/iep@fdbb0000"; + pcfg_pull_up_drv_level_13 = "/pinctrl/pcfg-pull-up-drv-level-13"; + spdif_tx5 = "/spdif-tx@fddb8000"; + hdptxphy_hdmi_clk1 = "/hdmiphy@fed70000/clk-port"; + drm_logo = "/reserved-memory/drm-logo@00000000"; + i2s1m0_sdi1 = "/pinctrl/i2s1/i2s1m0-sdi1"; + rk806_dvs3_null = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs3_null"; + gmac1_ppsclk = "/pinctrl/gmac1/gmac1-ppsclk"; + usb_host0_ohci = "/usb@fc840000"; + mclkout_i2s1 = "/clocks/mclkout-i2s1@fd58c318"; + i2c6m3_xfer = "/pinctrl/i2c6/i2c6m3-xfer"; + i2c3m2_xfer = "/pinctrl/i2c3/i2c3m2-xfer"; + vop_opp_info = "/otp@fecc0000/vop-opp-info@61"; + cif_dvp_bus16 = "/pinctrl/cif/cif-dvp-bus16"; + i2c0m1_xfer = "/pinctrl/i2c0/i2c0m1-xfer"; + pcie30x2m1_pins = "/pinctrl/pcie30x2/pcie30x2m1-pins"; + mipidcphy0_grf = "/syscon@fd5e8000"; + vdd_cpu_big1_mem_s0 = "/i2c@fd880000/rk8603@43"; + pcie30phy = "/phy@fee80000"; + dmc = "/dmc"; + i2s2m0_mclk = "/pinctrl/i2s2/i2s2m0-mclk"; + mipidcphy1 = "/phy@fedb0000"; + dp1_sound = "/dp1-sound"; + hdmi1_in_vp0 = "/hdmi@fdea0000/ports/port@0/endpoint@0"; + scmi = "/firmware/scmi"; + pcfg_pull_up_drv_level_0 = "/pinctrl/pcfg-pull-up-drv-level-0"; + gmac1_clkinout = "/pinctrl/gmac1/gmac1-clkinout"; + pcfg_pull_down_drv_level_4 = "/pinctrl/pcfg-pull-down-drv-level-4"; + i2s0_sdo1 = "/pinctrl/i2s0/i2s0-sdo1"; + l3_cache = "/cpus/l3-cache"; + i2s3_idle = "/pinctrl/i2s3/i2s3-idle"; + pcfg_pull_none_drv_level_4_smt = "/pinctrl/pcfg-pull-none-drv-level-4-smt"; + litcpu_pins = "/pinctrl/litcpu/litcpu-pins"; + mipi1_csi2 = "/mipi1-csi2"; + can2m0_pins = "/pinctrl/can2/can2m0-pins"; + pwm6m2_pins = "/pinctrl/pwm6/pwm6m2-pins"; + usbdp_phy0 = "/phy@fed80000"; + pdm0m1_sdi1 = "/pinctrl/pdm0/pdm0m1-sdi1"; + pwm3m1_pins = "/pinctrl/pwm3/pwm3m1-pins"; + vdd_log_s0 = "/spi@feb20000/rk806single@0/regulators/DCDC_REG3"; + i2s9_8ch = "/i2s@fddfc000"; + pwm0m0_pins = "/pinctrl/pwm0/pwm0m0-pins"; + vcc_hub3_reset = "/vcc-hub3-reset-regulator"; + dsi1_in_vp3 = "/dsi@fde30000/ports/port@0/endpoint@1"; + otp_cpu_version = "/otp@fecc0000/cpu-version@1c"; + pcie2x1l0_intc = "/pcie@fe170000/legacy-interrupt-controller"; + spdif0m1_tx = "/pinctrl/spdif0/spdif0m1-tx"; + pcfg_pull_down_drv_level_15 = "/pinctrl/pcfg-pull-down-drv-level-15"; + XC7160 = "/i2c@fec80000/XC7160b@1b"; + rkcif_mipi_lvds4_sditf_vir3 = "/rkcif-mipi-lvds4-sditf-vir3"; + uart7m2_xfer = "/pinctrl/uart7/uart7m2-xfer"; + uart4m1_xfer = "/pinctrl/uart4/uart4m1-xfer"; + hdmim1_tx1_scl = "/pinctrl/hdmi/hdmim1-tx1-scl"; + hdmim1_tx1_sda = "/pinctrl/hdmi/hdmim1-tx1-sda"; + uart8m1_ctsn = "/pinctrl/uart8/uart8m1-ctsn"; + i2s2_2ch = "/i2s@fe490000"; + pwm5 = "/pwm@febd0010"; + uart1m0_xfer = "/pinctrl/uart1/uart1m0-xfer"; + uart5m0_ctsn = "/pinctrl/uart5/uart5m0-ctsn"; + fspim0_cs1 = "/pinctrl/fspi/fspim0-cs1"; + fspim0_pins = "/pinctrl/fspi/fspim0-pins"; + rkisp0_vir3 = "/rkisp0-vir3"; + l2_cache_l3 = "/cpus/l2-cache-l3"; + rk806_dvs3_dvs = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs3_dvs"; + hdmi_debug0 = "/pinctrl/hdmi/hdmi-debug0"; + hdmim1_tx1_hpd = "/pinctrl/hdmi/hdmim1-tx1-hpd"; + vp1_out_dp0 = "/vop@fdd90000/ports/port@1/endpoint@0"; + qos_isp0_mro = "/qos@fdf40400"; + spi0m2_cs1 = "/pinctrl/spi0/spi0m2-cs1"; + vdd_gpu_s0 = "/spi@feb20000/rk806single@0/regulators/DCDC_REG1"; + tsadc_shut = "/pinctrl/tsadc/tsadc-shut"; + pwm10 = "/pwm@febe0020"; + i2c7m3_xfer = "/pinctrl/i2c7/i2c7m3-xfer"; + rktimer = "/timer@feae0000"; + cpub0_leakage = "/otp@fecc0000/cpub0-leakage@17"; + i2c4m2_xfer = "/pinctrl/i2c4/i2c4m2-xfer"; + hclk_rkvdec1_pre = "/clocks/hclk_rkvdec1_pre@fd7c08a4"; + pcie30phy_pins = "/pinctrl/pcie30phy/pcie30phy-pins"; + jpege1 = "/jpege-core@fdba4000"; + pcfg_pull_none_drv_level_14 = "/pinctrl/pcfg-pull-none-drv-level-14"; + i2c1m1_xfer = "/pinctrl/i2c1/i2c1m1-xfer"; + rkcif_dvp_sditf = "/rkcif-dvp-sditf"; + rkcif_mipi_lvds4_sditf = "/rkcif-mipi-lvds4-sditf"; + vp2_out_dp1 = "/vop@fdd90000/ports/port@2/endpoint@5"; + vp2_out_dsi0 = "/vop@fdd90000/ports/port@2/endpoint@3"; + its1 = "/interrupt-controller@fe600000/msi-controller@fe660000"; + cpu_b3 = "/cpus/cpu@700"; + vcc_hub_reset = "/vcc-hub-reset-regulator"; + spi1m1_cs1 = "/pinctrl/spi1/spi1m1-cs1"; + vdd_npu_mem_s0 = "/i2c@fea90000/rk8602@42"; + pwm7m2_pins = "/pinctrl/pwm7/pwm7m2-pins"; + pdm1m1_sdi1 = "/pinctrl/pdm1/pdm1m1-sdi1"; + vbus5v0_typec_pwr_en = "/vbus5v0-typec-pwr-en-regulator"; + pwm4m1_pins = "/pinctrl/pwm4/pwm4m1-pins"; + dmc_opp_table = "/dmc-opp-table"; + pcie30x4_button_rstn = "/pinctrl/pcie30x4/pcie30x4-button-rstn"; + uart4 = "/serial@feb70000"; + pwm1m0_pins = "/pinctrl/pwm1/pwm1m0-pins"; + spi0m0_cs0 = "/pinctrl/spi0/spi0m0-cs0"; + pldo6_s3 = "/spi@feb20000/rk806single@0/regulators/PLDO_REG6"; + mipim1_camera2_clk = "/pinctrl/mipi/mipim1-camera2-clk"; + mipim0_camera0_clk = "/pinctrl/mipi/mipim0-camera0-clk"; + rkcif_mipi_lvds_sditf_vir1 = "/rkcif-mipi-lvds-sditf-vir1"; + pcfg_pull_up_drv_level_9 = "/pinctrl/pcfg-pull-up-drv-level-9"; + dmac2 = "/dma-controller@fed10000"; + pdm0m0_sdi3 = "/pinctrl/pdm0/pdm0m0-sdi3"; + qos_gpu_m2 = "/qos@fdf35400"; + i2s0_sdi3 = "/pinctrl/i2s0/i2s0-sdi3"; + cluster0_opp_table = "/cluster0-opp-table"; + spi2m0_cs1 = "/pinctrl/spi2/spi2m0-cs1"; + otp_id = "/otp@fecc0000/id@7"; + uart5m1_xfer = "/pinctrl/uart5/uart5m1-xfer"; + uart9m1_ctsn = "/pinctrl/uart9/uart9m1-ctsn"; + qos_rga3_0 = "/qos@fdf67000"; + usbdp_phy0_dp = "/phy@fed80000/dp-port"; + uart2m0_xfer = "/pinctrl/uart2/uart2m0-xfer"; + uart6m0_ctsn = "/pinctrl/uart6/uart6m0-ctsn"; + npu_pins = "/pinctrl/npu/npu-pins"; + pcfg_pull_up_drv_level_11 = "/pinctrl/pcfg-pull-up-drv-level-11"; + spdif_tx3 = "/spdif-tx@fdde0000"; + rkispp0 = "/rkispp@fdcd0000"; + xin32k = "/clocks/xin32k"; + vcc_1v8_s3 = "/spi@feb20000/rk806single@0/regulators/DCDC_REG10"; + qos_usb2host_1 = "/qos@fdf3e600"; + bt_sco = "/bt-sco"; + pcfg_output_high_pull_none = "/pinctrl/pcfg-output-high-pull-none"; + adc_keys = "/adc-keys"; + rkcif_mipi_lvds4 = "/rkcif-mipi-lvds4"; + i2c8 = "/i2c@feca0000"; + dp0 = "/dp@fde50000"; + mipi_te1 = "/pinctrl/mipi/mipi-te1"; + i2c8m3_xfer = "/pinctrl/i2c8/i2c8m3-xfer"; + i2c5m2_xfer = "/pinctrl/i2c5/i2c5m2-xfer"; + pcie30x2_button_rstn = "/pinctrl/pcie30x2/pcie30x2-button-rstn"; + syssram = "/sram@ff001000"; + pcfg_pull_down_drv_level_2 = "/pinctrl/pcfg-pull-down-drv-level-2"; + qos_hdmirx = "/qos@fdf81200"; + i2c2m1_xfer = "/pinctrl/i2c2/i2c2m1-xfer"; + pcie30x4m1_pins = "/pinctrl/pcie30x4/pcie30x4m1-pins"; + vdd_0v75_s0 = "/spi@feb20000/rk806single@0/regulators/NLDO_REG5"; + hw_decompress = "/decompress@fea80000"; + pcie30x1m0_pins = "/pinctrl/pcie30x1/pcie30x1m0-pins"; + mipim0_camera4_clk = "/pinctrl/mipi/mipim0-camera4-clk"; + gmac1_txer = "/pinctrl/gmac1/gmac1-txer"; + uart3_ctsn = "/pinctrl/uart3/uart3-ctsn"; + vcc_sdcard_pwr_en = "/vcc-sdcard-pwr-en-regulator"; + mipi0_csi2_hw = "/mipi0-csi2-hw@fdd10000"; + rkvenc1_mmu = "/iommu@fdbef000"; + edp0 = "/edp@fdec0000"; + rkvenc_ccu = "/rkvenc-ccu"; + rk806_dvs3_rst = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs3_rst"; + power = "/power-management@fd8d8000/power-controller"; + vad = "/vad@fe4d0000"; + spi3m3_pins = "/pinctrl/spi3/spi3m3-pins"; + pwm8m2_pins = "/pinctrl/pwm8/pwm8m2-pins"; + spi0m2_pins = "/pinctrl/spi0/spi0m2-pins"; + pwm5m1_pins = "/pinctrl/pwm5/pwm5m1-pins"; + vcc_3v3_s0 = "/spi@feb20000/rk806single@0/regulators/PLDO_REG4"; + aclk_isp1_pre = "/clocks/aclk_isp1_pre@fd7c0868"; + pwm2m0_pins = "/pinctrl/pwm2/pwm2m0-pins"; + i2s1m1_sdo2 = "/pinctrl/i2s1/i2s1m1-sdo2"; + pcfg_pull_down_drv_level_13 = "/pinctrl/pcfg-pull-down-drv-level-13"; + eth0_pins = "/pinctrl/eth0/eth0-pins"; + rkcif_mipi_lvds4_sditf_vir1 = "/rkcif-mipi-lvds4-sditf-vir1"; + pwm3 = "/pwm@fd8b0030"; + pdm1m0_sdi3 = "/pinctrl/pdm1/pdm1m0-sdi3"; + rkcif_mmu = "/iommu@fdce0800"; + usbc0_int = "/pinctrl/usb-typec/usbc0-int"; + gmac0_tx_bus2 = "/pinctrl/gmac0/gmac0-tx-bus2"; + sata2 = "/sata@fe230000"; + uart9m2_xfer = "/pinctrl/uart9/uart9m2-xfer"; + dp0_in_vp2 = "/dp@fde50000/ports/port@0/endpoint@2"; + hdmiin_sound = "/hdmiin-sound"; + rkisp0_vir1 = "/rkisp0-vir1"; + uart6_gpios = "/pinctrl/wireless-bluetooth/uart6-gpios"; + spi3m3_cs1 = "/pinctrl/spi3/spi3m3-cs1"; + l2_cache_l1 = "/cpus/l2-cache-l1"; + pcfg_pull_none_drv_level_8 = "/pinctrl/pcfg-pull-none-drv-level-8"; + uart6m1_xfer = "/pinctrl/uart6/uart6m1-xfer"; + pwm11m3_pins = "/pinctrl/pwm11/pwm11m3-pins"; + vp2_out_hdmi0 = "/vop@fdd90000/ports/port@2/endpoint@2"; + qos_hdcp1 = "/qos@fdf81000"; + scmi_reset = "/firmware/scmi/protocol@16"; + vdd_cpu_lit_mem_s0 = "/spi@feb20000/rk806single@0/regulators/DCDC_REG2"; + i2s0_mclk = "/pinctrl/i2s0/i2s0-mclk"; + uart3m0_xfer = "/pinctrl/uart3/uart3m0-xfer"; + uart7m0_ctsn = "/pinctrl/uart7/uart7m0-ctsn"; + usbhost_dwc3_0 = "/usbhost3_0/usb@fcd00000"; + hdmim0_rx_hpdin = "/pinctrl/hdmi/hdmim0-rx-hpdin"; + edp0_out = "/edp@fdec0000/ports/port@1/endpoint"; + rkisp0 = "/rkisp@fdcb0000"; + dsu_grf = "/syscon@fd598000"; + vcc_fan_pwr_en = "/vcc-fan-pwr-en-regulator"; + gmac1_rx_bus2 = "/pinctrl/gmac1/gmac1-rx-bus2"; + uart1m2_rtsn = "/pinctrl/uart1/uart1m2-rtsn"; + csi2_dcphy0 = "/csi2-dcphy0"; + usb2phy0_grf = "/syscon@fd5d0000"; + scmi_clk = "/firmware/scmi/protocol@14"; + emmc_clk = "/pinctrl/emmc/emmc-clk"; + jpege1_mmu = "/iommu@fdba4800"; + qos_rkvenc1_m1ro = "/qos@fdf61200"; + spi2m2_cs0 = "/pinctrl/spi2/spi2m2-cs0"; + vcc5v0_host = "/vcc5v0-host"; + cru = "/clock-controller@fd7c0000"; + hdmim0_tx0_cec = "/pinctrl/hdmi/hdmim0-tx0-cec"; + pcfg_pull_none_drv_level_12 = "/pinctrl/pcfg-pull-none-drv-level-12"; + rk806_dvs2_null = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs2_null"; + cpub01_opp_info = "/otp@fecc0000/cpub01-opp-info@43"; + i2s3_sdi = "/pinctrl/i2s3/i2s3-sdi"; + aclk_rkvdec0_pre = "/clocks/aclk_rkvdec0_pre@fd7c08a0"; + cpu_b1 = "/cpus/cpu@500"; + i2c6m2_xfer = "/pinctrl/i2c6/i2c6m2-xfer"; + rknpu_mmu = "/iommu@fdab9000"; + rkcif_mipi_lvds_sditf = "/rkcif-mipi-lvds-sditf"; + i2c3m1_xfer = "/pinctrl/i2c3/i2c3m1-xfer"; + i2c0m0_xfer = "/pinctrl/i2c0/i2c0m0-xfer"; + pcie30x2m0_pins = "/pinctrl/pcie30x2/pcie30x2m0-pins"; + qos_isp1_mwo = "/qos@fdf41000"; + mipi2_csi2_output1 = "/mipi2-csi2/ports/port@1/endpoint@0"; + vcc5v0_usbdcin = "/vcc5v0-usbdcin"; + spi3m1_cs0 = "/pinctrl/spi3/spi3m1-cs0"; + reboot_mode = "/syscon@fd588000/reboot-mode"; + rga3_0_mmu = "/iommu@fdb60f00"; + imx415_out0 = "/i2c@fec80000/imx415@37/port/endpoint"; + rkcif_mipi_lvds3_sditf_vir2 = "/rkcif-mipi-lvds3-sditf-vir2"; + pwm9m2_pins = "/pinctrl/pwm9/pwm9m2-pins"; + fec0_mmu = "/iommu@fdcd0f00"; + mipi0_csi2 = "/mipi0-csi2"; + spi1m2_pins = "/pinctrl/spi1/spi1m2-pins"; + pcfg_pull_up_drv_level_7 = "/pinctrl/pcfg-pull-up-drv-level-7"; + pwm6m1_pins = "/pinctrl/pwm6/pwm6m1-pins"; + tsadc_shut_org = "/pinctrl/tsadc/tsadc-shut-org"; + qos_rkvdec1 = "/qos@fdf63000"; + dmac0 = "/dma-controller@fea10000"; + vp2_out_edp1 = "/vop@fdd90000/ports/port@2/endpoint@6"; + pdm0m0_sdi1 = "/pinctrl/pdm0/pdm0m0-sdi1"; + qos_gpu_m0 = "/qos@fdf35000"; + pwm3m0_pins = "/pinctrl/pwm3/pwm3m0-pins"; + i2s0_sdi1 = "/pinctrl/i2s0/i2s0-sdi1"; + qos_av1 = "/qos@fdf64000"; + pcfg_output_low = "/pinctrl/pcfg-output-low"; + spdif_tx1 = "/spdif-tx@fe4f0000"; + hdptxphy1_grf = "/syscon@fd5e4000"; + spi4m0_cs0 = "/pinctrl/spi4/spi4m0-cs0"; + dp1_in_vp2 = "/dp@fde60000/ports/port@0/endpoint@2"; + jpegd_mmu = "/iommu@fdb90480"; + sata0m1_pins = "/pinctrl/sata0/sata0m1-pins"; + uart7m1_xfer = "/pinctrl/uart7/uart7m1-xfer"; + vp1_out_hdmi1 = "/vop@fdd90000/ports/port@1/endpoint@5"; + dp1_out = "/dp@fde60000/ports/port@1/endpoint"; + otp = "/otp@fecc0000"; + uart4m0_xfer = "/pinctrl/uart4/uart4m0-xfer"; + uart8m0_ctsn = "/pinctrl/uart8/uart8m0-ctsn"; + hdcp1 = "/hdcp@fde70000"; + rkcif_mipi_lvds2 = "/rkcif-mipi-lvds2"; + i2c6 = "/i2c@fec80000"; + qos_jpeg_enc3 = "/qos@fdf66a00"; + i2s2m1_idle = "/pinctrl/i2s2/i2s2m1-idle"; + refclk_pins = "/pinctrl/refclk/refclk-pins"; + pcie3x4_intc = "/pcie@fe150000/legacy-interrupt-controller"; + hdptxphy_hdmi1 = "/hdmiphy@fed70000"; + mipi2_lvds2_sditf = "/rkcif-mipi-lvds2-sditf/port/endpoint"; + pdm1 = "/pdm@fe4c0000"; + vdd_cpu_lit_s0 = "/spi@feb20000/rk806single@0/regulators/DCDC_REG2"; + pdm0m1_clk = "/pinctrl/pdm0/pdm0m1-clk"; + pcfg_pull_down_drv_level_0 = "/pinctrl/pcfg-pull-down-drv-level-0"; + qos_vicap_m0 = "/qos@fdf40600"; + gic = "/interrupt-controller@fe600000"; + vdd_cpu_big1_s0 = "/i2c@fd880000/rk8603@43"; + uart0_rtsn = "/pinctrl/uart0/uart0-rtsn"; + i2c7m2_xfer = "/pinctrl/i2c7/i2c7m2-xfer"; + mclkin_i2s3 = "/clocks/mclkin-i2s3"; + hdmim0_tx0_scl = "/pinctrl/hdmi/hdmim0-tx0-scl"; + hdmim0_tx0_sda = "/pinctrl/hdmi/hdmim0-tx0-sda"; + i2c4m1_xfer = "/pinctrl/i2c4/i2c4m1-xfer"; + spdif1m0_tx = "/pinctrl/spdif1/spdif1m0-tx"; + sdmmc_det = "/pinctrl/sdmmc/sdmmc-det"; + i2c1m0_xfer = "/pinctrl/i2c1/i2c1m0-xfer"; + rkcif_mipi_lvds2_sditf_vir3 = "/rkcif-mipi-lvds2-sditf-vir3"; + hdptxphy1 = "/phy@fed70000"; + route_dp1 = "/display-subsystem/route/route-dp1"; + hdmim0_tx0_hpd = "/pinctrl/hdmi/hdmim0-tx0-hpd"; + i2s1m1_sdo0 = "/pinctrl/i2s1/i2s1m1-sdo0"; + pdm1m0_clk = "/pinctrl/pdm1/pdm1m0-clk"; + pcfg_pull_down_drv_level_11 = "/pinctrl/pcfg-pull-down-drv-level-11"; + usbdrd3_1 = "/usbdrd3_1"; + spi2m2_pins = "/pinctrl/spi2/spi2m2-pins"; + pwm7m1_pins = "/pinctrl/pwm7/pwm7m1-pins"; + rkcif_mipi_lvds1_sditf = "/rkcif-mipi-lvds1-sditf"; + pwm1 = "/pwm@fd8b0010"; + pdm1m0_sdi1 = "/pinctrl/pdm1/pdm1m0-sdi1"; + threshold = "/thermal-zones/soc-thermal/trips/trip-point-0"; + pwm4m0_pins = "/pinctrl/pwm4/pwm4m0-pins"; + gmac0_mtl_rx_setup = "/ethernet@fe1b0000/rx-queues-config"; + sata0 = "/sata@fe210000"; + dp0_in_vp0 = "/dp@fde50000/ports/port@0/endpoint@0"; + can2 = "/can@fea70000"; + pcfg_pull_none_drv_level_6 = "/pinctrl/pcfg-pull-none-drv-level-6"; + usbdrd_dwc3_0 = "/usbdrd3_0/usb@fc000000"; + rkvenc0 = "/rkvenc-core@fdbd0000"; + bt_reset_gpio = "/pinctrl/wireless-bluetooth/bt-reset-gpio"; + sata1m1_pins = "/pinctrl/sata1/sata1m1-pins"; + spll = "/clocks/spll"; + uart8m1_xfer = "/pinctrl/uart8/uart8m1-xfer"; + sata_pins = "/pinctrl/sata/sata-pins"; + pcfg_pull_none_drv_level_1_smt = "/pinctrl/pcfg-pull-none-drv-level-1-smt"; + qos_npu1 = "/qos@fdf70000"; + uart5m0_xfer = "/pinctrl/uart5/uart5m0-xfer"; + uart9m0_ctsn = "/pinctrl/uart9/uart9m0-ctsn"; + pwm10m2_pins = "/pinctrl/pwm10/pwm10m2-pins"; + rk806_dvs1_pwrdn = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs1_pwrdn"; + pipe_phy0_grf = "/syscon@fd5bc000"; + es8388 = "/i2c@fec80000/es8388@11"; + spdif_rx2 = "/spdif-rx@fde18000"; + usb_host1_ehci = "/usb@fc880000"; + xin24m = "/clocks/xin24m"; + pcie20x1_2_button_rstn = "/pinctrl/pcie20x1/pcie20x1-2-button-rstn"; + mipi2_csi2_hw = "/mipi2-csi2-hw@fdd30000"; + acdcdig_dsm = "/codec-digital@fe500000"; + vop_grf = "/syscon@fd5a4000"; + rk806_dvs1_slp = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs1_slp"; + i2s6_8ch = "/i2s@fddf4000"; + i2s2m1_sdo = "/pinctrl/i2s2/i2s2m1-sdo"; + pcie30x1_1_button_rstn = "/pinctrl/pcie30x1/pcie30x1-1-button-rstn"; + pcfg_output_low_pull_down = "/pinctrl/pcfg-output-low-pull-down"; + pcfg_pull_none_drv_level_10 = "/pinctrl/pcfg-pull-none-drv-level-10"; + pdm0m1_clk1 = "/pinctrl/pdm0/pdm0m1-clk1"; + mipidphy0_grf = "/syscon@fd5b4000"; + route_dsi1 = "/display-subsystem/route/route-dsi1"; + route_hdmi0 = "/display-subsystem/route/route-hdmi0"; + rkvdec_ccu = "/rkvdec-ccu@fdc30000"; + csi2_dphy4 = "/csi2-dphy4"; + gmac1_rgmii_bus = "/pinctrl/gmac1/gmac1-rgmii-bus"; + qos_sdio = "/qos@fdf39000"; + tsadc = "/tsadc@fec00000"; + pcfg_output_high_pull_up = "/pinctrl/pcfg-output-high-pull-up"; + hclk_usb = "/clocks/hclk_usb@fd7c08a8"; + avcc_1v8_s0 = "/spi@feb20000/rk806single@0/regulators/PLDO_REG1"; + edp0_in_vp2 = "/edp@fdec0000/ports/port@0/endpoint@2"; + gpio3 = "/pinctrl/gpio@fec40000"; + gpu_opp_table = "/gpu-opp-table"; + cif_mipi2_in0 = "/rkcif-mipi-lvds2/port/endpoint"; + pcfg_output_high = "/pinctrl/pcfg-output-high"; + i2c8m2_xfer = "/pinctrl/i2c8/i2c8m2-xfer"; + vdpu_mmu = "/iommu@fdb50800"; + i2c5m1_xfer = "/pinctrl/i2c5/i2c5m1-xfer"; + combphy0_ps = "/phy@fee00000"; + rgb = "/syscon@fd58c000/rgb"; + hclk_vo1 = "/clocks/hclk_vo1@fd7c08ec"; + i2c2m0_xfer = "/pinctrl/i2c2/i2c2m0-xfer"; + uart0 = "/serial@fd890000"; + mipidcphy1_grf = "/syscon@fd5ec000"; + pcie30x4m0_pins = "/pinctrl/pcie30x4/pcie30x4m0-pins"; + vdd_ddr_pll_s0 = "/spi@feb20000/rk806single@0/regulators/NLDO_REG2"; + gmac0_txer = "/pinctrl/gmac0/gmac0-txer"; + uart2_ctsn = "/pinctrl/uart2/uart2-ctsn"; + pcfg_pull_up_drv_level_5 = "/pinctrl/pcfg-pull-up-drv-level-5"; + pcfg_pull_down_drv_level_9 = "/pinctrl/pcfg-pull-down-drv-level-9"; + pcfg_pull_none_drv_level_5_smt = "/pinctrl/pcfg-pull-none-drv-level-5-smt"; + i2s2m0_sdi = "/pinctrl/i2s2/i2s2m0-sdi"; + qos_rga2_mwo = "/qos@fdf66e00"; + spi3m2_pins = "/pinctrl/spi3/spi3m2-pins"; + pwm8m1_pins = "/pinctrl/pwm8/pwm8m1-pins"; + dsi1_in = "/dsi@fde30000/ports/port@0"; + vp3_out_dsi0 = "/vop@fdd90000/ports/port@3/endpoint@0"; + pclk_vo0_grf = "/clocks/pclk_vo0_grf@fd7c08dc"; + spi0m1_pins = "/pinctrl/spi0/spi0m1-pins"; + pwm5m0_pins = "/pinctrl/pwm5/pwm5m0-pins"; + bt1120_pins = "/pinctrl/bt1120/bt1120-pins"; + dp1_in_vp0 = "/dp@fde60000/ports/port@0/endpoint@0"; + i2s1m0_sdo2 = "/pinctrl/i2s1/i2s1m0-sdo2"; + mipi2_csi2_input0 = "/mipi2-csi2/ports/port@0/endpoint@0"; + u2phy0_otg = "/syscon@fd5d0000/usb2-phy@0/otg-port"; + vp0_out_edp0 = "/vop@fdd90000/ports/port@0/endpoint@1"; + qos_fisheye0 = "/qos@fdf40000"; + i2c4 = "/i2c@feac0000"; + sata2m1_pins = "/pinctrl/sata2/sata2m1-pins"; + uart9m1_xfer = "/pinctrl/uart9/uart9m1-xfer"; + qos_jpeg_enc1 = "/qos@fdf66600"; + i2s1m1_sdi2 = "/pinctrl/i2s1/i2s1m1-sdi2"; + i2s3_2ch = "/i2s@fe4a0000"; + uart6m0_xfer = "/pinctrl/uart6/uart6m0-xfer"; + cpul_leakage = "/otp@fecc0000/cpul-leakage@19"; + pwm11m2_pins = "/pinctrl/pwm11/pwm11m2-pins"; + fspim1_cs1 = "/pinctrl/fspi/fspim1-cs1"; + vdd_vdenc_s0 = "/spi@feb20000/rk806single@0/regulators/DCDC_REG4"; + pdm1m1_clk1 = "/pinctrl/pdm1/pdm1m1-clk1"; + hdmi_debug5 = "/pinctrl/hdmi/hdmi-debug5"; + uart1m1_rtsn = "/pinctrl/uart1/uart1m1-rtsn"; + qos_isp1_mro = "/qos@fdf41100"; + ddrphych3_pins = "/pinctrl/ddrphych3/ddrphych3-pins"; + spi0m3_cs1 = "/pinctrl/spi0/spi0m3-cs1"; + qos_rkvenc0_m1ro = "/qos@fdf60200"; + qos_jpeg_dec = "/qos@fdf66200"; + mclkin_i2s1 = "/clocks/mclkin-i2s1"; + edp1_in_vp2 = "/edp@fded0000/ports/port@0/endpoint@2"; + pcie30_avdd0v75 = "/pcie30-avdd0v75"; + isp0_mmu = "/iommu@fdcb7f00"; + qos_npu0_mwr = "/qos@fdf72000"; + rkvdec0 = "/rkvdec-core@fdc38000"; + rkvdec0_mmu = "/iommu@fdc38700"; + rk806_dvs1_null = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs1_null"; + pwm15 = "/pwm@febf0030"; + vop_mmu = "/iommu@fdd97e00"; + rkcif_mipi_lvds2_sditf_vir1 = "/rkcif-mipi-lvds2-sditf-vir1"; + pcie2x1l2 = "/pcie@fe190000"; + i2c6m1_xfer = "/pinctrl/i2c6/i2c6m1-xfer"; + package_serial_number_low = "/otp@fecc0000/package-serial-number-low@6"; + iep_mmu = "/iommu@fdbb0800"; + l2_cache_b3 = "/cpus/l2-cache-b3"; + i2c3m0_xfer = "/pinctrl/i2c3/i2c3m0-xfer"; + vcc_1v1_nldo_s3 = "/vcc-1v1-nldo-s3"; + spi1m2_cs1 = "/pinctrl/spi1/spi1m2-cs1"; + pdm0m1_idle = "/pinctrl/pdm0/pdm0m1-idle"; + can0 = "/can@fea50000"; + spi4m2_pins = "/pinctrl/spi4/spi4m2-pins"; + pcfg_pull_none_drv_level_4 = "/pinctrl/pcfg-pull-none-drv-level-4"; + pwm9m1_pins = "/pinctrl/pwm9/pwm9m1-pins"; + arm_pmu = "/arm-pmu"; + vp2 = "/vop@fdd90000/ports/port@2"; + rk806single = "/spi@feb20000/rk806single@0"; + spi1m1_pins = "/pinctrl/spi1/spi1m1-pins"; + pwm6m0_pins = "/pinctrl/pwm6/pwm6m0-pins"; + gmac0_mtl_tx_setup = "/ethernet@fe1b0000/tx-queues-config"; + rng = "/rng@fe378000"; + cpu_l2 = "/cpus/cpu@200"; + uart9 = "/serial@febc0000"; + spi0m1_cs0 = "/pinctrl/spi0/spi0m1-cs0"; + rk806_dvs3_gpio = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs3_gpio"; + rkcif_mipi_lvds5_sditf = "/rkcif-mipi-lvds5-sditf"; + usbdpphy0_grf = "/syscon@fd5c8000"; + mipim1_camera3_clk = "/pinctrl/mipi/mipim1-camera3-clk"; + pcie_clk3 = "/pcie-clk3"; + mipim0_camera1_clk = "/pinctrl/mipi/mipim0-camera1-clk"; + vp0_out_hdmi0 = "/vop@fdd90000/ports/port@0/endpoint@2"; + rkcif = "/rkcif@fdce0000"; + gmac0_rgmii_clk = "/pinctrl/gmac0/gmac0-rgmii-clk"; + wdt_en_base = "/pinctrl/wdt-pc9202/wdt-en-base"; + vp3_out_rgb = "/vop@fdd90000/ports/port@3/endpoint@2"; + spdif_rx0 = "/spdif-rx@fde08000"; + sdmmc_bus4 = "/pinctrl/sdmmc/sdmmc-bus4"; + hdmim2_tx0_scl = "/pinctrl/hdmi/hdmim2-tx0-scl"; + hdmim2_tx0_sda = "/pinctrl/hdmi/hdmim2-tx0-sda"; + spi2m1_cs1 = "/pinctrl/spi2/spi2m1-cs1"; + pwm15m3_pins = "/pinctrl/pwm15/pwm15m3-pins"; + sata0m0_pins = "/pinctrl/sata0/sata0m0-pins"; + uart7m0_xfer = "/pinctrl/uart7/uart7m0-xfer"; + csi2_dphy2 = "/csi2-dphy2"; + spi3 = "/spi@feb30000"; + edp0_in_vp0 = "/edp@fdec0000/ports/port@0/endpoint@0"; + gpio1 = "/pinctrl/gpio@fec20000"; + tsadcm1_shut = "/pinctrl/tsadc/tsadcm1-shut"; + usbdp_phy0_dp_altmode_mux = "/phy@fed80000/port/endpoint@1"; + i2s2m0_idle = "/pinctrl/i2s2/i2s2m0-idle"; + spi1m0_cs0 = "/pinctrl/spi1/spi1m0-cs0"; + rkcif_mipi_lvds1_sditf_vir2 = "/rkcif-mipi-lvds1-sditf-vir2"; + i2s3_sclk = "/pinctrl/i2s3/i2s3-sclk"; + hdmim1_rx_hpdin = "/pinctrl/hdmi/hdmim1-rx-hpdin"; + spi3m0_cs1 = "/pinctrl/spi3/spi3m0-cs1"; + mipi_dcphy1 = "/mipi-dcphy-dummy"; + vcc5v0_sys = "/vcc5v0-sys"; + aclk_hdcp0_pre = "/clocks/aclk_hdcp0_pre@fd7c08dc"; + usb_con = "/i2c@fec80000/fusb302@22/connector"; + hdmirx_ctrler = "/hdmirx-controller@fdee0000"; + i2c7m1_xfer = "/pinctrl/i2c7/i2c7m1-xfer"; + pcfg_pull_up_drv_level_3 = "/pinctrl/pcfg-pull-up-drv-level-3"; + i2c4m0_xfer = "/pinctrl/i2c4/i2c4m0-xfer"; + pcfg_pull_down_drv_level_7 = "/pinctrl/pcfg-pull-down-drv-level-7"; + spdif0m0_tx = "/pinctrl/spdif0/spdif0m0-tx"; + wdt = "/watchdog@feaf0000"; + vdd_0v85_s0 = "/spi@feb20000/rk806single@0/regulators/NLDO_REG4"; + cspmu = "/cspmu@fd10c000"; + gmac_uio0 = "/uio@fe1b0000"; + av1d_mmu = "/iommu@fdca0000"; + mailbox2 = "/mailbox@fece0000"; + mipi4_csi2_hw = "/mipi4-csi2-hw@fdd50000"; + pdm1m1_idle = "/pinctrl/pdm1/pdm1m1-idle"; + rga3_core0 = "/rga@fdb60000"; + i2s1m0_sdo0 = "/pinctrl/i2s1/i2s1m0-sdo0"; + bigcore1_thermal = "/thermal-zones/bigcore1-thermal"; + pcfg_output_low_pull_up = "/pinctrl/pcfg-output-low-pull-up"; + spi2m1_pins = "/pinctrl/spi2/spi2m1-pins"; + pwm7m0_pins = "/pinctrl/pwm7/pwm7m0-pins"; + i2c2 = "/i2c@feaa0000"; + npu_grf = "/syscon@fd5a2000"; + i2s1m1_sdi0 = "/pinctrl/i2s1/i2s1m1-sdi0"; + mipi5_csi2 = "/mipi5-csi2"; + pwm8 = "/pwm@febe0000"; + log_leakage = "/otp@fecc0000/log-leakage@1a"; + cpub23_opp_info = "/otp@fecc0000/cpub23-opp-info@49"; + vdd_vdenc_mem_s0 = "/spi@feb20000/rk806single@0/regulators/DCDC_REG4"; + rga2 = "/rga@fdb80000"; + emmc_bus8 = "/pinctrl/emmc/emmc-bus8"; + qos_usb3_0 = "/qos@fdf3e200"; + sata1m0_pins = "/pinctrl/sata1/sata1m0-pins"; + uart8m0_xfer = "/pinctrl/uart8/uart8m0-xfer"; + pwm13m2_pins = "/pinctrl/pwm13/pwm13m2-pins"; + hdmi_debug3 = "/pinctrl/hdmi/hdmi-debug3"; + cam0_or_cam1_switch_pin = "/pinctrl/cam/cam0-or-cam1-switch-pin"; + mcum1_pins = "/pinctrl/mcu/mcum1-pins"; + pwm10m1_pins = "/pinctrl/pwm10/pwm10m1-pins"; + edp1_out = "/edp@fded0000/ports/port@1/endpoint"; + hclk_sdio_pre = "/clocks/hclk_sdio_pre@fd7c092c"; + usb_host0_ehci = "/usb@fc800000"; + edp1_in_vp0 = "/edp@fded0000/ports/port@0/endpoint@0"; + i2s10_8ch = "/i2s@fde00000"; + hdmi1_in = "/hdmi@fdea0000/ports/port@0"; + usb2phy1_grf = "/syscon@fd5d4000"; + pdm0m0_clk1 = "/pinctrl/pdm0/pdm0m0-clk1"; + jpege2_mmu = "/iommu@fdba8800"; + pwm13 = "/pwm@febf0010"; + pcie2x1l0 = "/pcie@fe170000"; + hdmi0_in_vp1 = "/hdmi@fde80000/ports/port@0/endpoint@1"; + hdmim0_tx1_cec = "/pinctrl/hdmi/hdmim0-tx1-cec"; + l2_cache_b1 = "/cpus/l2-cache-b1"; + cif_dvp_bus8 = "/pinctrl/cif/cif-dvp-bus8"; + qos_rga2_mro = "/qos@fdf66c00"; + aclk_rkvdec1_pre = "/clocks/aclk_rkvdec1_pre@fd7c08a4"; + i2c8m1_xfer = "/pinctrl/i2c8/i2c8m1-xfer"; + vdd_ddr_s0 = "/spi@feb20000/rk806single@0/regulators/DCDC_REG5"; + hdmirx_det = "/pinctrl/hdmirx/hdmirx-det"; + pca9555 = "/i2c@feab0000/gpio@21"; + qos_sdmmc = "/qos@fdf3d800"; + clk32k_out1 = "/pinctrl/clk32k/clk32k-out1"; + i2c5m0_xfer = "/pinctrl/i2c5/i2c5m0-xfer"; + cif_dvp_clk = "/pinctrl/cif/cif-dvp-clk"; + rknpu = "/npu@fdab0000"; + pcfg_pull_none_drv_level_2 = "/pinctrl/pcfg-pull-none-drv-level-2"; + spi3m2_cs0 = "/pinctrl/spi3/spi3m2-cs0"; + vp0 = "/vop@fdd90000/ports/port@0"; + rga3_1_mmu = "/iommu@fdb70f00"; + jtagm2_pins = "/pinctrl/jtag/jtagm2-pins"; + cpu_l0 = "/cpus/cpu@0"; + uart7 = "/serial@feba0000"; + rkisp1_vir2 = "/rkisp1-vir2"; + fec1_mmu = "/iommu@fdcd8f00"; + qos_vop_m0 = "/qos@fdf82000"; + pcie_clk1 = "/pcie-clk1"; + gmac1_ptp_ref_clk = "/pinctrl/gmac1/gmac1-ptp-ref-clk"; + spi3m1_pins = "/pinctrl/spi3/spi3m1-pins"; + pwm8m0_pins = "/pinctrl/pwm8/pwm8m0-pins"; + hdmi0_sound = "/hdmi0-sound"; + ioc = "/syscon@fd5f0000"; + spi0m0_pins = "/pinctrl/spi0/spi0m0-pins"; + avsd = "/avsd-plus@fdb51000"; + rkcif_mipi_lvds5_sditf_vir3 = "/rkcif-mipi-lvds5-sditf-vir3"; + u2phy2 = "/syscon@fd5d8000/usb2-phy@8000"; + sfc = "/spi@fe2b0000"; + csi2_dphy0 = "/csi2-dphy0"; + spi1 = "/spi@feb10000"; + spi4m1_cs0 = "/pinctrl/spi4/spi4m1-cs0"; + gpu_grf = "/syscon@fd5a0000"; + pcfg_pull_up_drv_level_14 = "/pinctrl/pcfg-pull-up-drv-level-14"; + wireless_bluetooth = "/wireless-bluetooth"; + pclk_av1_pre = "/clocks/pclk_av1_pre@fd7c0910"; + sata2m0_pins = "/pinctrl/sata2/sata2m0-pins"; + uart9m0_xfer = "/pinctrl/uart9/uart9m0-xfer"; + pwm14m2_pins = "/pinctrl/pwm14/pwm14m2-pins"; + i2s1m0_sdi2 = "/pinctrl/i2s1/i2s1m0-sdi2"; + pwm11m1_pins = "/pinctrl/pwm11/pwm11m1-pins"; + bt_sound = "/bt-sound"; + qos_rkvenc1_m0ro = "/qos@fdf61000"; + mclkout_i2s2 = "/clocks/mclkout-i2s2@fd58c318"; + dsi0 = "/dsi@fde20000"; + pdm1m0_clk1 = "/pinctrl/pdm1/pdm1m0-clk1"; + uart1m0_rtsn = "/pinctrl/uart1/uart1m0-rtsn"; + ddrphych2_pins = "/pinctrl/ddrphych2/ddrphych2-pins"; + route_edp0 = "/display-subsystem/route/route-edp0"; + hdmi0 = "/hdmi@fde80000"; + es8388_sound = "/es8388-sound"; + hdmi1_in_vp1 = "/hdmi@fdea0000/ports/port@0/endpoint@1"; + pcfg_pull_up_drv_level_1 = "/pinctrl/pcfg-pull-up-drv-level-1"; + pcfg_pull_down_drv_level_5 = "/pinctrl/pcfg-pull-down-drv-level-5"; + i2s0_sdo2 = "/pinctrl/i2s0/i2s0-sdo2"; + vop_out = "/vop@fdd90000/ports"; + vdd_0v75_s3 = "/spi@feb20000/rk806single@0/regulators/NLDO_REG1"; + hdmim1_rx = "/pinctrl/hdmi/hdmim1-rx"; + pcfg_pull_down_smt = "/pinctrl/pcfg-pull-down-smt"; + hdmim0_tx1_scl = "/pinctrl/hdmi/hdmim0-tx1-scl"; + hdmim0_tx1_sda = "/pinctrl/hdmi/hdmim0-tx1-sda"; + cpul_opp_info = "/otp@fecc0000/cpul-opp-info@3d"; + clk32k_in = "/pinctrl/clk32k/clk32k-in"; + usbdp_phy1 = "/phy@fed90000"; + mailbox0 = "/mailbox@fec60000"; + i2c6m0_xfer = "/pinctrl/i2c6/i2c6m0-xfer"; + pdm0m1_sdi2 = "/pinctrl/pdm0/pdm0m1-sdi2"; + sdmmc = "/mmc@fe2c0000"; + hclk_nvm = "/clocks/hclk_nvm@fd7c087c"; + hdmim0_tx1_hpd = "/pinctrl/hdmi/hdmim0-tx1-hpd"; + vp0_out_dp0 = "/vop@fdd90000/ports/port@0/endpoint@0"; + vddq_ddr_s0 = "/spi@feb20000/rk806single@0/regulators/DCDC_REG9"; + vcc_3v3_s3 = "/spi@feb20000/rk806single@0/regulators/DCDC_REG8"; + gmac0_ppstring = "/pinctrl/gmac0/gmac0-ppstring"; + i2c0 = "/i2c@fd880000"; + pdm1m1_clk = "/pinctrl/pdm1/pdm1m1-clk"; + pdm0m0_idle = "/pinctrl/pdm0/pdm0m0-idle"; + soc_thermal = "/thermal-zones/soc-thermal"; + cluster1_opp_table = "/cluster1-opp-table"; + i2s0_idle = "/pinctrl/i2s0/i2s0-idle"; + spi4m1_pins = "/pinctrl/spi4/spi4m1-pins"; + npu_opp_info = "/otp@fecc0000/npu-opp-info@55"; + pwm9m0_pins = "/pinctrl/pwm9/pwm9m0-pins"; + pwm6 = "/pwm@febd0020"; + spi1m0_pins = "/pinctrl/spi1/spi1m0-pins"; + hym8563 = "/i2c@fd880000/hym8563@51"; + i2s1m1_sclk = "/pinctrl/i2s1/i2s1m1-sclk"; + rk806_dvs2_gpio = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs2_gpio"; + hp_det = "/pinctrl/headphone/hp-det"; + hdmi_debug1 = "/pinctrl/hdmi/hdmi-debug1"; + vp1_out_dp1 = "/vop@fdd90000/ports/port@1/endpoint@3"; + qos_mcu_npu = "/qos@fdf72400"; + auddsm_pins = "/pinctrl/auddsm/auddsm-pins"; + i2s3_lrck = "/pinctrl/i2s3/i2s3-lrck"; + pcfg_pull_none_drv_level_2_smt = "/pinctrl/pcfg-pull-none-drv-level-2-smt"; + pwm15m2_pins = "/pinctrl/pwm15/pwm15m2-pins"; + pipe_phy1_grf = "/syscon@fd5c0000"; + pwm12m1_pins = "/pinctrl/pwm12/pwm12m1-pins"; + pwm11 = "/pwm@febe0030"; + rkisp_unite = "/rkisp-unite@fdcb0000"; + rkcif_mipi_lvds2_sditf = "/rkcif-mipi-lvds2-sditf"; + vp1_out_edp0 = "/vop@fdd90000/ports/port@1/endpoint@1"; + hclk_isp1_pre = "/clocks/hclk_isp1_pre@fd7c0868"; + rk806_dvs2_slp = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs2_slp"; + i2s7_8ch = "/i2s@fddf8000"; + uart5m1_rtsn = "/pinctrl/uart5/uart5m1-rtsn"; + mipidphy1_grf = "/syscon@fd5b5000"; + usbhost3_0 = "/usbhost3_0"; + jpege2 = "/jpege-core@fdba8000"; + pcfg_pull_none_drv_level_15 = "/pinctrl/pcfg-pull-none-drv-level-15"; + pcie3x2_intc = "/pcie@fe160000/legacy-interrupt-controller"; + vp2_out_dsi1 = "/vop@fdd90000/ports/port@2/endpoint@4"; + mipidphy0_in_ucam0 = "/csi2-dphy0/ports/port@0/endpoint@0"; + av1d = "/av1d@fdc70000"; + uart1m2_ctsn = "/pinctrl/uart1/uart1m2-ctsn"; + sdiom1_pins = "/pinctrl/sdio/sdiom1-pins"; + rockchip_suspend = "/rockchip-suspend"; + rk806_dvs2_pwrdn = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs2_pwrdn"; + pcfg_pull_none_drv_level_0 = "/pinctrl/pcfg-pull-none-drv-level-0"; + npu_thermal = "/thermal-zones/npu-thermal"; + i2c7m0_xfer = "/pinctrl/i2c7/i2c7m0-xfer"; + pdm1m1_sdi2 = "/pinctrl/pdm1/pdm1m1-sdi2"; + cpu_pins = "/pinctrl/cpu/cpu-pins"; + dsi0_in_vp2 = "/dsi@fde20000/ports/port@0/endpoint@0"; + bt_wake_gpio = "/pinctrl/wireless-bluetooth/bt-wake-gpio"; + uart5 = "/serial@feb80000"; + dwc3_0_role_switch = "/usbdrd3_0/usb@fc000000/port/endpoint@0"; + rkisp1_vir0 = "/rkisp1-vir0"; + fiq_debugger = "/fiq-debugger"; + usbdp_phy1_u3 = "/phy@fed90000/u3-port"; + spi0m0_cs1 = "/pinctrl/spi0/spi0m0-cs1"; + sdio = "/mmc@fe2d0000"; + rkcif_mipi_lvds_sditf_vir2 = "/rkcif-mipi-lvds-sditf-vir2"; + spdif1m2_tx = "/pinctrl/spdif1/spdif1m2-tx"; + qos_gpu_m3 = "/qos@fdf35600"; + pdm1m0_idle = "/pinctrl/pdm1/pdm1m0-idle"; + pcfg_pull_none_drv_level_6_smt = "/pinctrl/pcfg-pull-none-drv-level-6-smt"; + user_led = "/leds/user"; + rkcif_mipi_lvds5_sditf_vir1 = "/rkcif-mipi-lvds5-sditf-vir1"; + i2s2m1_sdi = "/pinctrl/i2s2/i2s2m1-sdi"; + uart8_xfer = "/pinctrl/uart8/uart8-xfer"; + u2phy0 = "/syscon@fd5d0000/usb2-phy@0"; + pclk_vo1_grf = "/clocks/pclk_vo1_grf@fd7c08ec"; + vdd_gpu_mem_s0 = "/spi@feb20000/rk806single@0/regulators/DCDC_REG1"; + spi2m0_pins = "/pinctrl/spi2/spi2m0-pins"; + qos_rga3_1 = "/qos@fdf36000"; + i2s2m1_sclk = "/pinctrl/i2s2/i2s2m1-sclk"; + pcfg_pull_up_drv_level_12 = "/pinctrl/pcfg-pull-up-drv-level-12"; + spdif_tx4 = "/spdif-tx@fdde8000"; + rkispp1 = "/rkispp@fdcd8000"; + hdmim2_tx1_cec = "/pinctrl/hdmi/hdmim2-tx1-cec"; + u2phy1_otg = "/syscon@fd5d4000/usb2-phy@4000/otg-port"; + hdptxphy_hdmi_clk0 = "/hdmiphy@fed60000/clk-port"; + i2s1m0_sdi0 = "/pinctrl/i2s1/i2s1m0-sdi0"; + mipi4_csi2 = "/mipi4-csi2"; + mclkout_i2s0 = "/clocks/mclkout-i2s0@fd58c318"; + vcc5v0_host3 = "/vcc5v0-host3"; + rkcif_mipi_lvds5 = "/rkcif-mipi-lvds5"; + vdd_cpu_big0_s0 = "/i2c@fd880000/rk8602@42"; + dp1 = "/dp@fde60000"; + emmc_data_strobe = "/pinctrl/emmc/emmc-data-strobe"; + pwm13m1_pins = "/pinctrl/pwm13/pwm13m1-pins"; + vop_pins = "/pinctrl/vop/vop-pins"; + pcie20x1m1_pins = "/pinctrl/pcie20x1/pcie20x1m1-pins"; + fspim2_cs1 = "/pinctrl/fspi/fspim2-cs1"; + vcc_hub = "/vcc-hub-regulator"; + mcum0_pins = "/pinctrl/mcu/mcum0-pins"; + pwm10m0_pins = "/pinctrl/pwm10/pwm10m0-pins"; + uart9m2_rtsn = "/pinctrl/uart9/uart9m2-rtsn"; + mipidcphy0 = "/phy@feda0000"; + uart6m1_rtsn = "/pinctrl/uart6/uart6m1-rtsn"; + vcc3v3_pcie30 = "/vcc3v3-pcie30"; + pcfg_pull_down_drv_level_3 = "/pinctrl/pcfg-pull-down-drv-level-3"; + mipim1_camera0_clk = "/pinctrl/mipi/mipim1-camera0-clk"; + i2s0_sdo0 = "/pinctrl/i2s0/i2s0-sdo0"; + vop = "/vop@fdd90000"; + gmac0_ptp_refclk = "/pinctrl/gmac0/gmac0-ptp-refclk"; + usbdp_phy0_orientation_switch = "/phy@fed80000/port/endpoint@0"; + vepu = "/vepu@fdb50000"; + cif_clk = "/pinctrl/cif/cif-clk"; + pcie30_phy_grf = "/syscon@fd5b8000"; + isp1_mmu = "/iommu@fdcc7f00"; + pdm0m1_sdi0 = "/pinctrl/pdm0/pdm0m1-sdi0"; + rkvdec1_mmu = "/iommu@fdc48700"; + edp1 = "/edp@fded0000"; + cam0_cam1_switch = "/cam0-cam1-switch"; + gmac1_ppstrig = "/pinctrl/gmac1/gmac1-ppstrig"; + i2c8m0_xfer = "/pinctrl/i2c8/i2c8m0-xfer"; + dsi1_in_vp2 = "/dsi@fde30000/ports/port@0/endpoint@0"; + hdmim2_rx_hpdin = "/pinctrl/hdmi/hdmim2-rx-hpdin"; + i2s1m1_sdo3 = "/pinctrl/i2s1/i2s1m1-sdo3"; + pcfg_pull_down_drv_level_14 = "/pinctrl/pcfg-pull-down-drv-level-14"; + gmac0_rx_bus2 = "/pinctrl/gmac0/gmac0-rx-bus2"; + rkcif_mipi_lvds4_sditf_vir2 = "/rkcif-mipi-lvds4-sditf-vir2"; + center_thermal = "/thermal-zones/center-thermal"; + uart0_ctsn = "/pinctrl/uart0/uart0-ctsn"; + uart4_rtsn = "/pinctrl/uart4/uart4-rtsn"; + pwm4 = "/pwm@febd0000"; + vdd2_ddr_s3 = "/spi@feb20000/rk806single@0/regulators/DCDC_REG6"; + jtagm1_pins = "/pinctrl/jtag/jtagm1-pins"; + rkisp0_vir2 = "/rkisp0-vir2"; + i2c1m4_xfer = "/pinctrl/i2c1/i2c1m4-xfer"; + l2_cache_l2 = "/cpus/l2-cache-l2"; + pcfg_pull_none_drv_level_9 = "/pinctrl/pcfg-pull-none-drv-level-9"; + qos_vdpu = "/qos@fdf67200"; + vp2_out_hdmi1 = "/vop@fdd90000/ports/port@2/endpoint@7"; + spi3m0_pins = "/pinctrl/spi3/spi3m0-pins"; + pcfg_output_low_pull_none = "/pinctrl/pcfg-output-low-pull-none"; + spi0m2_cs0 = "/pinctrl/spi0/spi0m2-cs0"; + rkisp1 = "/rkisp@fdcc0000"; + usbdpphy1_grf = "/syscon@fd5cc000"; + mipim1_camera4_clk = "/pinctrl/mipi/mipim1-camera4-clk"; + mipim0_camera2_clk = "/pinctrl/mipi/mipim0-camera2-clk"; + csi2_dcphy1 = "/csi2-dcphy1"; + hdmim2_tx1_scl = "/pinctrl/hdmi/hdmim2-tx1-scl"; + hdmim2_tx1_sda = "/pinctrl/hdmi/hdmim2-tx1-sda"; + spi2m2_cs1 = "/pinctrl/spi2/spi2m2-cs1"; + chosen = "/chosen"; + soc_crit = "/thermal-zones/soc-thermal/trips/soc-crit"; + rk806_dvs1_rst = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs1_rst"; + mpp_srv = "/mpp-srv"; + hclk_rkvenc1_pre = "/clocks/hclk_rkvenc1_pre@fd7c08c0"; + dp0m2_pins = "/pinctrl/dp0/dp0m2-pins"; + debug = "/debug@fd104000"; + jpege0 = "/jpege-core@fdba0000"; + pcfg_pull_none_drv_level_13 = "/pinctrl/pcfg-pull-none-drv-level-13"; + pwm14m1_pins = "/pinctrl/pwm14/pwm14m1-pins"; + pwm11m0_pins = "/pinctrl/pwm11/pwm11m0-pins"; + vp2_out_dp0 = "/vop@fdd90000/ports/port@2/endpoint@0"; + qos_rkvenc0_m0ro = "/qos@fdf60000"; + its0 = "/interrupt-controller@fe600000/msi-controller@fe640000"; + cpu_b2 = "/cpus/cpu@600"; + uart7m1_rtsn = "/pinctrl/uart7/uart7m1-rtsn"; + usb_5v_ctrl = "/pinctrl/usb-typec/usb-5v-ctrl"; + tsadc_gpio_func = "/pinctrl/gpio-func/tsadc-gpio-func"; + spi1m1_cs0 = "/pinctrl/spi1/spi1m1-cs0"; + pcfg_pull_down = "/pinctrl/pcfg-pull-down"; + dmc_opp_info = "/otp@fecc0000/dmc-opp-info@5b"; + ddrphych1_pins = "/pinctrl/ddrphych1/ddrphych1-pins"; + dsi0_in = "/dsi@fde20000/ports/port@0"; + pdm1m1_sdi0 = "/pinctrl/pdm1/pdm1m1-sdi0"; + spi3m1_cs1 = "/pinctrl/spi3/spi3m1-cs1"; + bigcore0_grf = "/syscon@fd590000"; + cpub1_leakage = "/otp@fecc0000/cpub1-leakage@18"; + uart3 = "/serial@feb60000"; + aclk_hdcp1_pre = "/clocks/aclk_hdcp1_pre@fd7c08ec"; + pcfg_pull_up = "/pinctrl/pcfg-pull-up"; + rkcif_mipi_lvds3_sditf_vir3 = "/rkcif-mipi-lvds3-sditf-vir3"; + codec_leakage = "/otp@fecc0000/codec-leakage@29"; + pcfg_pull_up_drv_level_8 = "/pinctrl/pcfg-pull-up-drv-level-8"; + dmac1 = "/dma-controller@fea30000"; + pdm0m0_sdi2 = "/pinctrl/pdm0/pdm0m0-sdi2"; + i2s1m1_lrck = "/pinctrl/i2s1/i2s1m1-lrck"; + qos_gpu_m1 = "/qos@fdf35200"; + i2s0_sdi2 = "/pinctrl/i2s0/i2s0-sdi2"; + spi2m0_cs0 = "/pinctrl/spi2/spi2m0-cs0"; + gpu_opp_info = "/otp@fecc0000/gpu-opp-info@4f"; + csi2_dphy1_hw = "/csi2-dphy1-hw@fedc8000"; + pcfg_pull_up_drv_level_10 = "/pinctrl/pcfg-pull-up-drv-level-10"; + spdif_tx2 = "/spdif-tx@fddb0000"; + npu_opp_table = "/npu-opp-table"; + spi4m0_cs1 = "/pinctrl/spi4/spi4m0-cs1"; + vo0_grf = "/syscon@fd5a6000"; + i2c2m4_xfer = "/pinctrl/i2c2/i2c2m4-xfer"; + qos_usb2host_0 = "/qos@fdf3e400"; + spi4m0_pins = "/pinctrl/spi4/spi4m0-pins"; + rkcif_mipi_lvds3 = "/rkcif-mipi-lvds3"; + i2s1m0_sclk = "/pinctrl/i2s1/i2s1m0-sclk"; + i2c7 = "/i2c@fec90000"; + mipi2_csi2_output = "/mipi2-csi2/ports/port@1/endpoint@0"; + mipi_te0 = "/pinctrl/mipi/mipi-te0"; + sata_reset = "/pinctrl/sata/sata-reset"; + dp1m2_pins = "/pinctrl/dp1/dp1m2-pins"; + pwm15m1_pins = "/pinctrl/pwm15/pwm15m1-pins"; + pcfg_pull_down_drv_level_1 = "/pinctrl/pcfg-pull-down-drv-level-1"; + pwm12m0_pins = "/pinctrl/pwm12/pwm12m0-pins"; + qos_vicap_m1 = "/qos@fdf40800"; + sdmmc_cmd = "/pinctrl/sdmmc/sdmmc-cmd"; + uart8m1_rtsn = "/pinctrl/uart8/uart8m1-rtsn"; + usb2phy2_grf = "/syscon@fd5d8000"; + rkvdec1_sram = "/sram@ff001000/rkvdec-sram@78000"; + uart5m0_rtsn = "/pinctrl/uart5/uart5m0-rtsn"; + jpege3_mmu = "/iommu@fdbac800"; + vcc_2v0_pldo_s3 = "/spi@feb20000/rk806single@0/regulators/DCDC_REG7"; + i2s3_mclk = "/pinctrl/i2s3/i2s3-mclk"; + mclkout_i2s1m1 = "/clocks/mclkout-i2s1@fd58a000"; + spdif_tx1_dc = "/spdif-tx1-dc"; + uart0m2_xfer = "/pinctrl/uart0/uart0m2-xfer"; + wifi_host_wake_irq = "/pinctrl/wireless-wlan/wifi-host-wake-irq"; + i2s1m1_sdo1 = "/pinctrl/i2s1/i2s1m1-sdo1"; + uart1m1_ctsn = "/pinctrl/uart1/uart1m1-ctsn"; + pcfg_pull_down_drv_level_12 = "/pinctrl/pcfg-pull-down-drv-level-12"; + sdiom0_pins = "/pinctrl/sdio/sdiom0-pins"; + pcfg_pull_up_smt = "/pinctrl/pcfg-pull-up-smt"; + php_grf = "/syscon@fd5b0000"; + pwm2 = "/pwm@fd8b0020"; + pdm1m0_sdi2 = "/pinctrl/pdm1/pdm1m0-sdi2"; + i2s2m1_lrck = "/pinctrl/i2s2/i2s2m1-lrck"; + gmac0_stmmac_axi_setup = "/ethernet@fe1b0000/stmmac-axi-config"; + mipi1_csi2_hw = "/mipi1-csi2-hw@fdd20000"; + sata1 = "/sata@fe220000"; + rkispp1_vir0 = "/rkispp1-vir0"; + dp0_in_vp1 = "/dp@fde50000/ports/port@0/endpoint@1"; + CPU_SLEEP = "/cpus/idle-states/cpu-sleep"; + rkisp0_vir0 = "/rkisp0-vir0"; + spi3m3_cs0 = "/pinctrl/spi3/spi3m3-cs0"; + specification_serial_number = "/otp@fecc0000/specification-serial-number@6"; + l2_cache_l0 = "/cpus/l2-cache-l0"; + pcfg_pull_none_drv_level_7 = "/pinctrl/pcfg-pull-none-drv-level-7"; + qos_hdcp0 = "/qos@fdf80000"; + qos_npu0_mro = "/qos@fdf72200"; + usbdrd_dwc3_1 = "/usbdrd3_1/usb@fc400000"; + rkvenc1 = "/rkvenc-core@fdbe0000"; + display_subsystem = "/display-subsystem"; + i2c3m4_xfer = "/pinctrl/i2c3/i2c3m4-xfer"; + pcie30x2m3_pins = "/pinctrl/pcie30x2/pcie30x2m3-pins"; + qos_npu2 = "/qos@fdf71000"; + i2s0_8ch = "/i2s@fe470000"; + i2s2m0_sclk = "/pinctrl/i2s2/i2s2m0-sclk"; + pmu = "/power-management@fd8d8000"; + gmac1_tx_bus2 = "/pinctrl/gmac1/gmac1-tx-bus2"; + pcfg_pull_none_drv_level_11 = "/pinctrl/pcfg-pull-none-drv-level-11"; + route_hdmi1 = "/display-subsystem/route/route-hdmi1"; + csi2_dphy5 = "/csi2-dphy5"; + spi4m2_cs0 = "/pinctrl/spi4/spi4m2-cs0"; + mipi3_csi2 = "/mipi3-csi2"; + pmu0_grf = "/syscon@fd588000"; + fan = "/pwm-fan"; + cpu_b0 = "/cpus/cpu@400"; + vccio_sd_s0 = "/spi@feb20000/rk806single@0/regulators/PLDO_REG5"; + qos_rkvenc1_m2wo = "/qos@fdf61400"; + gpio4 = "/pinctrl/gpio@fec50000"; + hdmim0_rx_cec = "/pinctrl/hdmi/hdmim0-rx-cec"; + pwm3m3_pins = "/pinctrl/pwm3/pwm3m3-pins"; + aclk_vdpu_low_pre = "/clocks/aclk_vdpu_low_pre@fd7c08b0"; + mmu600_php = "/iommu@fcb00000"; + cif_mipi2_in1 = "/rkcif-mipi-lvds2/port/endpoint"; + pwm0m2_pins = "/pinctrl/pwm0/pwm0m2-pins"; + pwm13m0_pins = "/pinctrl/pwm13/pwm13m0-pins"; + pcie20x1m0_pins = "/pinctrl/pcie20x1/pcie20x1m0-pins"; + bt656_pins = "/pinctrl/bt656/bt656-pins"; + hdmi1_sound = "/hdmi1-sound"; + uart9m1_rtsn = "/pinctrl/uart9/uart9m1-rtsn"; + uart6m0_rtsn = "/pinctrl/uart6/uart6m0-rtsn"; + pcie2x1l2_intc = "/pcie@fe190000/legacy-interrupt-controller"; + mod_sleep = "/mod-sleep-regulator"; + gpu_thermal = "/thermal-zones/gpu-thermal"; + hdmim1_tx0_cec = "/pinctrl/hdmi/hdmim1-tx0-cec"; + uart1 = "/serial@feb40000"; + rkcif_mipi_lvds3_sditf_vir1 = "/rkcif-mipi-lvds3-sditf-vir1"; + pcfg_pull_up_drv_level_6 = "/pinctrl/pcfg-pull-up-drv-level-6"; + qos_rkvdec0 = "/qos@fdf62000"; + vp2_out_edp0 = "/vop@fdd90000/ports/port@2/endpoint@1"; + uart1m2_xfer = "/pinctrl/uart1/uart1m2-xfer"; + pdm0m0_sdi0 = "/pinctrl/pdm0/pdm0m0-sdi0"; + fspim2_pins = "/pinctrl/fspi/fspim2-pins"; + i2s0_sdi0 = "/pinctrl/i2s0/i2s0-sdi0"; + gpu_pins = "/pinctrl/gpu/gpu-pins"; + imx415 = "/i2c@fec80000/imx415@37"; + vp3_out_dsi1 = "/vop@fdd90000/ports/port@3/endpoint@1"; + i2s4_8ch = "/i2s@fddc0000"; + ramoops = "/reserved-memory/ramoops@110000"; + dp0_sound = "/dp0-sound"; + spdif_tx0 = "/spdif-tx@fe4e0000"; + dp1_in_vp1 = "/dp@fde60000/ports/port@0/endpoint@1"; + i2s1m0_sdo3 = "/pinctrl/i2s1/i2s1m0-sdo3"; + mipi2_csi2_input1 = "/mipi2-csi2/ports/port@0/endpoint@0"; + vcc_1v8_s0 = "/spi@feb20000/rk806single@0/regulators/PLDO_REG2"; + vp1_out_hdmi0 = "/vop@fdd90000/ports/port@1/endpoint@2"; + vcc12v_dcin = "/vcc12v-dcin"; + vp0_out_edp1 = "/vop@fdd90000/ports/port@0/endpoint@4"; + uart3_rtsn = "/pinctrl/uart3/uart3-rtsn"; + gmac1_rgmii_clk = "/pinctrl/gmac1/gmac1-rgmii-clk"; + package_serial_number_high = "/otp@fecc0000/package-serial-number-high@5"; + hdcp0 = "/hdcp@fde40000"; + qos_fisheye1 = "/qos@fdf40200"; + rkcif_mipi_lvds1 = "/rkcif-mipi-lvds1"; + i2c5 = "/i2c@fead0000"; + jtagm0_pins = "/pinctrl/jtag/jtagm0-pins"; + i2c4m4_xfer = "/pinctrl/i2c4/i2c4m4-xfer"; + spdif_tx1_sound = "/spdif-tx1-sound"; + qos_jpeg_enc2 = "/qos@fdf66800"; + hdmi0_in = "/hdmi@fde80000/ports/port@0"; + i2s1m1_sdi3 = "/pinctrl/i2s1/i2s1m1-sdi3"; + i2c1m3_xfer = "/pinctrl/i2c1/i2c1m3-xfer"; + hdptxphy_hdmi0 = "/hdmiphy@fed60000"; + sdmmc_pwren = "/pinctrl/sdmmc/sdmmc-pwren"; + usbdp_phy1_dp = "/phy@fed90000/dp-port"; + npu_leakage = "/otp@fecc0000/npu-leakage@28"; + aclk_jpeg_decoder_pre = "/clocks/aclk_jpeg_decoder_pre@fd7c08b0"; + pdm0 = "/pdm@fe4b0000"; + gmac1_miim = "/pinctrl/gmac1/gmac1-miim"; + pcfg_output_high_pull_down = "/pinctrl/pcfg-output-high-pull-down"; + hdmi_debug6 = "/pinctrl/hdmi/hdmi-debug6"; + pcie3x4 = "/pcie@fe150000"; + can0m1_pins = "/pinctrl/can0/can0m1-pins"; + mclkin_i2s2 = "/clocks/mclkin-i2s2"; + jpege_ccu = "/jpege-ccu"; + pcfg_pull_none_drv_level_3_smt = "/pinctrl/pcfg-pull-none-drv-level-3-smt"; + hdmim1_rx_cec = "/pinctrl/hdmi/hdmim1-rx-cec"; + pipe_phy2_grf = "/syscon@fd5c4000"; + dp0m1_pins = "/pinctrl/dp0/dp0m1-pins"; + rkvdec1 = "/rkvdec-core@fdc48000"; + pwm1m2_pins = "/pinctrl/pwm1/pwm1m2-pins"; + pwm14m0_pins = "/pinctrl/pwm14/pwm14m0-pins"; + little_core_thermal = "/thermal-zones/littlecore-thermal"; + rk806_dvs3_slp = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs3_slp"; + usb_5v = "/usb-5v"; + i2s8_8ch = "/i2s@fddc8000"; + drm_cubic_lut = "/reserved-memory/drm-cubic-lut@00000000"; + rkcif_mipi_lvds2_sditf_vir2 = "/rkcif-mipi-lvds2-sditf-vir2"; + hdptxphy0 = "/phy@fed60000"; + pcie30x1_0_button_rstn = "/pinctrl/pcie30x1/pcie30x1-0-button-rstn"; + u2phy3_host = "/syscon@fd5dc000/usb2-phy@c000/host-port"; + route_dp0 = "/display-subsystem/route/route-dp0"; + hdmim0_rx_scl = "/pinctrl/hdmi/hdmim0-rx-scl"; + hdmim0_rx_sda = "/pinctrl/hdmi/hdmim0-rx-sda"; + uart7m0_rtsn = "/pinctrl/uart7/uart7m0-rtsn"; + pcfg_pull_down_drv_level_10 = "/pinctrl/pcfg-pull-down-drv-level-10"; + usbdrd3_0 = "/usbdrd3_0"; + ddrphych0_pins = "/pinctrl/ddrphych0/ddrphych0-pins"; + bt_irq_gpio = "/pinctrl/wireless-bluetooth/bt-irq-gpio"; + pwm0 = "/pwm@fd8b0000"; + uart2m2_xfer = "/pinctrl/uart2/uart2m2-xfer"; + pdm1m0_sdi0 = "/pinctrl/pdm1/pdm1m0-sdi0"; + hdmim1_tx0_scl = "/pinctrl/hdmi/hdmim1-tx0-scl"; + hdmim1_tx0_sda = "/pinctrl/hdmi/hdmim1-tx0-sda"; + can1 = "/can@fea60000"; + rkvtunnel = "/rkvtunnel"; + pcfg_pull_none_drv_level_5 = "/pinctrl/pcfg-pull-none-drv-level-5"; + rkcif_mipi_lvds3_sditf = "/rkcif-mipi-lvds3-sditf"; + combphy2_psu = "/phy@fee20000"; + vp3 = "/vop@fdd90000/ports/port@3"; + rk806_dvs2_dvs = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs2_dvs"; + mmu600_pcie = "/iommu@fc900000"; + hdmim1_tx0_hpd = "/pinctrl/hdmi/hdmim1-tx0-hpd"; + i2s1m0_lrck = "/pinctrl/i2s1/i2s1m0-lrck"; + cpu_l3 = "/cpus/cpu@300"; + spi0m1_cs1 = "/pinctrl/spi0/spi0m1-cs1"; + vp0_out_hdmi1 = "/vop@fdd90000/ports/port@0/endpoint@5"; + spdif_rx1 = "/spdif-rx@fde10000"; + gmac0_clkinout = "/pinctrl/gmac0/gmac0-clkinout"; + rkcif_dvp = "/rkcif-dvp"; + i2c5m4_xfer = "/pinctrl/i2c5/i2c5m4-xfer"; + wireless_wlan = "/wireless-wlan"; + rkcif_mipi_lvds = "/rkcif-mipi-lvds"; + avdd_0v75_s0 = "/spi@feb20000/rk806single@0/regulators/NLDO_REG3"; + i2c2m3_xfer = "/pinctrl/i2c2/i2c2m3-xfer"; + pcie30x4m3_pins = "/pinctrl/pcie30x4/pcie30x4m3-pins"; + hclk_rkvdec0_pre = "/clocks/hclk_rkvdec0_pre@fd7c08a0"; + route_dsi0 = "/display-subsystem/route/route-dsi0"; + rk806_dvs3_pwrdn = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs3_pwrdn"; + csi2_dphy3 = "/csi2-dphy3"; + pcie30x1m2_pins = "/pinctrl/pcie30x1/pcie30x1m2-pins"; + spi4 = "/spi@fecb0000"; + litcore_grf = "/syscon@fd594000"; + isp0_vir2 = "/rkisp0-vir2/port/endpoint@0"; + i2s1m1_mclk = "/pinctrl/i2s1/i2s1m1-mclk"; + sys_grf = "/syscon@fd58c000"; + edp0_in_vp1 = "/edp@fdec0000/ports/port@0/endpoint@1"; + mdio0 = "/ethernet@fe1b0000/mdio"; + rkisp_unite_mmu = "/rkisp-unite-mmu@fdcb7f00"; + gpio2 = "/pinctrl/gpio@fec30000"; + spi1m0_cs1 = "/pinctrl/spi1/spi1m0-cs1"; + aclk_av1_pre = "/clocks/aclk_av1_pre@fd7c0910"; + can1m1_pins = "/pinctrl/can1/can1m1-pins"; + rkcif_mipi_lvds1_sditf_vir3 = "/rkcif-mipi-lvds1-sditf-vir3"; + hdmim2_rx_cec = "/pinctrl/hdmi/hdmim2-rx-cec"; + mipi3_csi2_hw = "/mipi3-csi2-hw@fdd40000"; + dp1m1_pins = "/pinctrl/dp1/dp1m1-pins"; + pwm2m2_pins = "/pinctrl/pwm2/pwm2m2-pins"; + pwm15m0_pins = "/pinctrl/pwm15/pwm15m0-pins"; + hclk_vo0 = "/clocks/hclk_vo0@fd7c08dc"; + bigcore0_thermal = "/thermal-zones/bigcore0-thermal"; + hdmim1_rx_scl = "/pinctrl/hdmi/hdmim1-rx-scl"; + hdmim1_rx_sda = "/pinctrl/hdmi/hdmim1-rx-sda"; + uart8m0_rtsn = "/pinctrl/uart8/uart8m0-rtsn"; + pcfg_pull_up_drv_level_4 = "/pinctrl/pcfg-pull-up-drv-level-4"; + mipim1_camera1_clk = "/pinctrl/mipi/mipim1-camera1-clk"; + rkvdec0_sram = "/sram@ff001000/rkvdec-sram@0"; + pcfg_pull_down_drv_level_8 = "/pinctrl/pcfg-pull-down-drv-level-8"; + usbc0_orien_sw = "/i2c@fec80000/fusb302@22/connector/ports/port@0/endpoint"; + jpegd = "/jpegd@fdb90000"; + uart3m2_xfer = "/pinctrl/uart3/uart3m2-xfer"; + minidump_smem = "/reserved-memory/minidump-smem@1f0000"; + i2s0_sclk = "/pinctrl/i2s0/i2s0-sclk"; + uart0m1_xfer = "/pinctrl/uart0/uart0m1-xfer"; + rga3_core1 = "/rga@fdb70000"; + i2s1m0_sdo1 = "/pinctrl/i2s1/i2s1m0-sdo1"; + uart1m0_ctsn = "/pinctrl/uart1/uart1m0-ctsn"; + vcc5v0_usb = "/vcc5v0-usb"; + minidump = "/minidump"; + }; + + rkvdec-ccu@fdc30000 { + power-domains = <0x60 0x0e>; + rockchip,ccu-mode = <0x01>; + clock-names = "aclk_ccu"; + reg-names = "ccu"; + assigned-clocks = <0x02 0x18e>; + assigned-clock-rates = <0x23c34600>; + resets = <0x02 0x282>; + clocks = <0x02 0x18e>; + compatible = "rockchip,rkv-decoder-v2-ccu"; + status = "okay"; + rockchip,skip-pmu-idle-request; + reg = <0x00 0xfdc30000 0x00 0x100>; + phandle = <0xca>; + reset-names = "video_ccu"; + }; + + qos@fdf60000 { + compatible = "syscon"; + reg = <0x00 0xfdf60000 0x00 0x20>; + phandle = <0x8d>; + }; + + iommu@fdb50800 { + power-domains = <0x60 0x15>; + clock-names = "aclk\0iface"; + interrupts = <0x00 0x76 0x04>; + clocks = <0x02 0x1c0 0x02 0x1c1>; + #iommu-cells = <0x00>; + compatible = "rockchip,iommu-v2"; + status = "okay"; + interrupt-names = "irq_vdpu_mmu"; + reg = <0x00 0xfdb50800 0x00 0x40>; + phandle = <0xb7>; + }; + + rga@fdb60000 { + power-domains = <0x60 0x16>; + iommus = <0xb9>; + clock-names = "aclk_rga3_0\0hclk_rga3_0\0clk_rga3_0"; + interrupts = <0x00 0x72 0x04>; + clocks = <0x02 0x1ba 0x02 0x1b9 0x02 0x1bb>; + compatible = "rockchip,rga3_core0"; + status = "okay"; + interrupt-names = "rga3_core0_irq"; + reg = <0x00 0xfdb60000 0x00 0x1000>; + phandle = <0x269>; + }; + + qos@fdf67200 { + compatible = "syscon"; + reg = <0x00 0xfdf67200 0x00 0x20>; + phandle = <0x28b>; + }; + + vepu@fdb50000 { + power-domains = <0x60 0x15>; + iommus = <0xb7>; + clock-names = "aclk_vcodec\0hclk_vcodec"; + assigned-clocks = <0x02 0x1c0>; + rockchip,normal-rates = <0x2367b880 0x00>; + assigned-clock-rates = <0x2367b880>; + resets = <0x02 0x2c8 0x02 0x2c9>; + interrupts = <0x00 0x78 0x04>; + clocks = <0x02 0x1c0 0x02 0x1c1>; + rockchip,srv = <0xb8>; + rockchip,taskqueue-node = <0x00>; + rockchip,disable-auto-freq; + compatible = "rockchip,vpu-encoder-v2"; + rockchip,resetgroup-node = <0x00>; + status = "disabled"; + interrupt-names = "irq_vepu"; + rockchip,skip-pmu-idle-request; + reg = <0x00 0xfdb50000 0x00 0x400>; + phandle = <0x266>; + reset-names = "shared_video_a\0shared_video_h"; + }; + + mipi3-csi2 { + rockchip,hw = <0x47 0x48 0x49 0x4a 0x4b 0x4c>; + compatible = "rockchip,rk3588-mipi-csi2"; + status = "disabled"; + phandle = <0x227>; + }; + + hdmi0-sound { + rockchip,jack-det; + rockchip,cpu = <0x1d3>; + rockchip,codec = <0x1d4>; + rockchip,card-name = "rockchip-hdmi0"; + compatible = "rockchip,hdmi"; + status = "okay"; + phandle = <0x49b>; + rockchip,mclk-fs = <0x80>; + }; + + reserved-memory { + #address-cells = <0x02>; + #size-cells = <0x02>; + ranges; + + minidump-smem@1f0000 { + status = "disabled"; + reg = <0x00 0x1f0000 0x00 0x100>; + phandle = <0x1cf>; + no-map; + }; + + minidump-mem@c000000 { + status = "disabled"; + reg = <0x00 0xc000000 0x00 0x2000000>; + phandle = <0x1d0>; + no-map; + }; + + cma { + linux,cma-default; + compatible = "shared-dma-pool"; + size = <0x00 0x800000>; + reg = <0x00 0x10000000 0x00 0x10000000>; + reusable; + }; + + drm-logo@00000000 { + compatible = "rockchip,drm-logo"; + reg = <0x00 0xedf00000 0x00 0x2e0000>; + phandle = <0x37>; + }; + + ramoops@110000 { + boot-log-count = <0x01>; + record-size = <0x14000>; + pmsg-size = <0x30000>; + compatible = "ramoops"; + console-size = <0x80000>; + reg = <0x00 0x110000 0x00 0xe0000>; + phandle = <0x493>; + boot-log-size = <0x8000>; + ftrace-size = <0x00>; + }; + + drm-cubic-lut@00000000 { + compatible = "rockchip,drm-cubic-lut"; + reg = <0x00 0x00 0x00 0x00>; + phandle = <0x492>; + }; + }; + + pcie@fe160000 { + power-domains = <0x60 0x22>; + vpcie3v3-supply = <0x1ba>; + #address-cells = <0x03>; + rockchip,pipe-grf = <0x76>; + phy-names = "pcie-phy"; + bus-range = <0x10 0x1f>; + clock-names = "aclk_mst\0aclk_slv\0aclk_dbi\0pclk\0aux\0pipe"; + reg-names = "pcie-apb\0pcie-dbi"; + num-ob-windows = <0x10>; + resets = <0x02 0x20e 0x02 0x21d>; + interrupts = <0x00 0x102 0x04 0x00 0x101 0x04 0x00 0x100 0x04 0x00 0xff 0x04 0x00 0xfe 0x04>; + clocks = <0x02 0x14f 0x02 0x154 0x02 0x14a 0x02 0x159 0x02 0x15f 0x02 0x184>; + interrupt-map = <0x00 0x00 0x00 0x01 0x1b9 0x00 0x00 0x00 0x00 0x02 0x1b9 0x01 0x00 0x00 0x00 0x03 0x1b9 0x02 0x00 0x00 0x00 0x04 0x1b9 0x03>; + #size-cells = <0x02>; + max-link-speed = <0x03>; + device_type = "pci"; + interrupt-map-mask = <0x00 0x00 0x00 0x07>; + reset-gpios = <0x10d 0x08 0x00>; + num-lanes = <0x02>; + compatible = "rockchip,rk3588-pcie\0snps,dw-pcie"; + ranges = <0x800 0x00 0xf1000000 0x00 0xf1000000 0x00 0x100000 0x81000000 0x00 0xf1100000 0x00 0xf1100000 0x00 0x100000 0x82000000 0x00 0xf1200000 0x00 0xf1200000 0x00 0xe00000 0xc3000000 0x09 0x40000000 0x09 0x40000000 0x00 0x40000000>; + msi-map = <0x1000 0x1b6 0x1000 0x1000>; + #interrupt-cells = <0x01>; + status = "disabled"; + interrupt-names = "sys\0pmc\0msg\0legacy\0err"; + phys = <0x1b7>; + num-viewport = <0x08>; + reg = <0x00 0xfe160000 0x00 0x10000 0x0a 0x40400000 0x00 0x400000>; + linux,pci-domain = <0x01>; + phandle = <0x486>; + reset-names = "pcie\0periph"; + num-ib-windows = <0x10>; + + legacy-interrupt-controller { + #address-cells = <0x00>; + interrupts = <0x00 0xff 0x01>; + interrupt-parent = <0x01>; + #interrupt-cells = <0x01>; + phandle = <0x1b9>; + interrupt-controller; + }; + }; + + spdif-tx@fddb8000 { + power-domains = <0x60 0x19>; + clock-names = "mclk\0hclk"; + assigned-clocks = <0x02 0x20b>; + assigned-clock-parents = <0x02 0x05>; + interrupts = <0x00 0xc6 0x04>; + clocks = <0x02 0x20f 0x02 0x20a>; + dma-names = "tx"; + #sound-dai-cells = <0x00>; + compatible = "rockchip,rk3588-spdif\0rockchip,rk3568-spdif"; + status = "disabled"; + reg = <0x00 0xfddb8000 0x00 0x1000>; + phandle = <0x1e2>; + dmas = <0xf1 0x16>; + }; + + pvtm@fdb30000 { + #address-cells = <0x01>; + #size-cells = <0x00>; + compatible = "rockchip,rk3588-gpu-pvtm"; + reg = <0x00 0xfdb30000 0x00 0x100>; + + pvtm@4 { + clock-names = "clk"; + resets = <0x02 0x430 0x02 0x42f>; + clocks = <0x02 0x118>; + reg = <0x04>; + reset-names = "rts\0rst-p"; + }; + }; + + spdif-tx1-dc { + #sound-dai-cells = <0x00>; + compatible = "linux,spdif-dit"; + status = "disabled"; + phandle = <0x1d8>; + }; + + csi2-dphy0 { + rockchip,hw = <0x2d 0x2e>; + phy-names = "dcphy0\0dcphy1"; + compatible = "rockchip,rk3588-csi2-dphy"; + status = "okay"; + phys = <0x2f 0x30>; + firefly-compatible; + phandle = <0x20f>; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x00>; + + endpoint@1 { + data-lanes = <0x01 0x02 0x03 0x04>; + remote-endpoint = <0x32>; + reg = <0x01>; + phandle = <0x184>; + }; + + endpoint@0 { + data-lanes = <0x01 0x02 0x03 0x04>; + remote-endpoint = <0x31>; + reg = <0x00>; + phandle = <0x183>; + }; + }; + + port@1 { + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x01>; + + endpoint@0 { + remote-endpoint = <0x33>; + reg = <0x00>; + phandle = <0x4d>; + }; + }; + }; + }; + + rkisp-unite@fdcb0000 { + power-domains = <0x60 0x1c>; + iommus = <0xcf>; + clock-names = "aclk_isp0\0hclk_isp0\0clk_isp_core0\0clk_isp_core_marvin0\0clk_isp_core_vicap0\0aclk_isp1\0hclk_isp1\0clk_isp_core1\0clk_isp_core_marvin1\0clk_isp_core_vicap1"; + interrupts = <0x00 0x87 0x04 0x00 0x89 0x04 0x00 0x8a 0x04>; + clocks = <0x02 0x1de 0x02 0x1df 0x02 0x1db 0x02 0x1dc 0x02 0x1dd 0x02 0x120 0x02 0x121 0x02 0x11d 0x02 0x11e 0x02 0x11f>; + compatible = "rockchip,rk3588-rkisp-unite"; + status = "disabled"; + interrupt-names = "isp_irq\0mi_irq\0mipi_irq"; + reg = <0x00 0xfdcb0000 0x00 0x10000 0x00 0xfdcc0000 0x00 0x10000>; + phandle = <0x277>; + }; + + sata@fe230000 { + phy-names = "sata-phy"; + clock-names = "sata\0pmalive\0rxoob\0ref\0asic"; + interrupts = <0x00 0x113 0x04>; + clocks = <0x02 0x173 0x02 0x170 0x02 0x176 0x02 0x165 0x02 0x180>; + compatible = "rockchip,rk-ahci\0snps,dwc-ahci"; + status = "disabled"; + interrupt-names = "hostc"; + phys = <0x70 0x01>; + reg = <0x00 0xfe230000 0x00 0x1000>; + phandle = <0x291>; + ports-implemented = <0x01>; + }; + + syscon@fd5a0000 { + compatible = "rockchip,rk3588-gpu-grf\0syscon"; + reg = <0x00 0xfd5a0000 0x00 0x100>; + phandle = <0x65>; + }; + + bt-sound { + simple-audio-card,name = "rockchip,bt"; + simple-audio-card,format = "dsp_a"; + simple-audio-card,bitclock-inversion = <0x00>; + compatible = "simple-audio-card"; + status = "disabled"; + phandle = <0x49a>; + simple-audio-card,mclk-fs = <0x100>; + + simple-audio-card,cpu { + sound-dai = <0x1d1>; + }; + + simple-audio-card,codec { + sound-dai = <0x1d2 0x01>; + }; + }; + + iommu@fdb90480 { + power-domains = <0x60 0x15>; + clock-names = "aclk\0iface"; + interrupts = <0x00 0x82 0x04>; + clocks = <0x02 0x1b4 0x02 0x1b5>; + #iommu-cells = <0x00>; + compatible = "rockchip,iommu-v2"; + status = "okay"; + interrupt-names = "irq_jpegd_mmu"; + reg = <0x00 0xfdb90480 0x00 0x40>; + phandle = <0xbb>; + }; + + hdcp@fde70000 { + power-domains = <0x60 0x1a>; + clock-names = "aclk\0pclk\0hclk\0hclk_key\0aclk_trng\0pclk_trng"; + resets = <0x02 0x3c8 0x02 0x3c6 0x02 0x3c5 0x02 0x3c4 0x02 0x3ca>; + interrupts = <0x00 0xa0 0x04>; + clocks = <0x02 0x217 0x02 0x219 0x02 0x218 0x02 0x216 0x02 0x228 0x02 0x229>; + compatible = "rockchip,rk3588-hdcp"; + status = "disabled"; + reg = <0x00 0xfde70000 0x00 0x80>; + phandle = <0x287>; + reset-names = "hdcp\0h_hdcp\0a_hdcp\0hdcp_key\0trng"; + rockchip,vo-grf = <0xd8>; + }; + + spdif-tx@fe4f0000 { + power-domains = <0x60 0x26>; + pinctrl-names = "default"; + pinctrl-0 = <0x143>; + clock-names = "mclk\0hclk"; + assigned-clocks = <0x02 0x45>; + assigned-clock-parents = <0x02 0x05>; + interrupts = <0x00 0xc2 0x04>; + clocks = <0x02 0x47 0x02 0x44>; + dma-names = "tx"; + #sound-dai-cells = <0x00>; + compatible = "rockchip,rk3588-spdif\0rockchip,rk3568-spdif"; + status = "disabled"; + reg = <0x00 0xfe4f0000 0x00 0x1000>; + phandle = <0x1d7>; + dmas = <0xf1 0x05>; + }; + + rkcif-mipi-lvds-sditf-vir2 { + compatible = "rockchip,rkcif-sditf"; + status = "disabled"; + rockchip,cif = <0x52>; + phandle = <0x22d>; + }; + + es8388-sound { + pinctrl-names = "default"; + rockchip,cpu = <0x1da>; + pinctrl-0 = <0x1dc>; + rockchip,codec = <0x1db>; + hp-det-gpio = <0x79 0x13 0x00>; + rockchip,card-name = "rockchip-es8388"; + rockchip,format = "i2s"; + rockchip,audio-routing = "Headphone\0LOUT1\0Headphone\0ROUT1\0Speaker\0LOUT2\0Speaker\0ROUT2\0Headphone\0Headphone Power\0Headphone\0Headphone Power\0LINPUT2\0Main Mic\0RINPUT2\0Main Mic\0LINPUT1\0Headset Mic\0RINPUT1\0Headset Mic"; + compatible = "firefly,multicodecs-card"; + linein-type = <0x01>; + status = "okay"; + phandle = <0x49f>; + hp-con-gpio = <0x182 0x0b 0x00>; + firefly,not-use-dapm; + rockchip,mclk-fs = <0x180>; + }; + + spi@feb30000 { + pinctrl-names = "default"; + #address-cells = <0x01>; + num-cs = <0x02>; + pinctrl-0 = <0x15d 0x15e 0x15f>; + clock-names = "spiclk\0apb_pclk"; + interrupts = <0x00 0x149 0x04>; + clocks = <0x02 0xa6 0x02 0xa1>; + #size-cells = <0x00>; + dma-names = "tx\0rx"; + compatible = "rockchip,rk3066-spi"; + status = "disabled"; + reg = <0x00 0xfeb30000 0x00 0x1000>; + phandle = <0x2c8>; + dmas = <0xf1 0x11 0xf1 0x12>; + }; + + phy@fee80000 { + rockchip,pipe-grf = <0x76>; + clock-names = "pclk"; + rockchip,pcie30-phymode = <0x01>; + resets = <0x02 0x2000a>; + clocks = <0x02 0x188>; + #phy-cells = <0x00>; + compatible = "rockchip,rk3588-pcie3-phy"; + status = "okay"; + reg = <0x00 0xfee80000 0x00 0x20000>; + phandle = <0x1b7>; + reset-names = "phy"; + rockchip,phy-grf = <0x1cc>; + }; + + vcc12v-dcin { + regulator-max-microvolt = <0xb71b00>; + regulator-boot-on; + regulator-always-on; + regulator-min-microvolt = <0xb71b00>; + regulator-name = "vcc12v_dcin"; + compatible = "regulator-fixed"; + phandle = <0x1cd>; + }; + + qos@fdf61200 { + compatible = "syscon"; + reg = <0x00 0xfdf61200 0x00 0x20>; + phandle = <0x91>; + }; + + i2s@fde00000 { + power-domains = <0x60 0x1a>; + clock-names = "mclk_tx\0mclk_rx\0hclk"; + assigned-clocks = <0x02 0x234>; + assigned-clock-parents = <0x02 0x05>; + rockchip,capture-only; + resets = <0x02 0x417>; + interrupts = <0x00 0xbe 0x04>; + clocks = <0x02 0x237 0x02 0x237 0x02 0x233>; + dma-names = "rx"; + #sound-dai-cells = <0x00>; + compatible = "rockchip,rk3588-i2s-tdm"; + status = "disabled"; + reg = <0x00 0xfde00000 0x00 0x1000>; + phandle = <0x47e>; + dmas = <0xf2 0x18>; + reset-names = "rx-m"; + }; + + qos@fdf40800 { + compatible = "syscon"; + reg = <0x00 0xfdf40800 0x00 0x20>; + phandle = <0xa5>; + }; + + i2s@fddfc000 { + power-domains = <0x60 0x1a>; + clock-names = "mclk_tx\0mclk_rx\0hclk"; + assigned-clocks = <0x02 0x23f>; + assigned-clock-parents = <0x02 0x05>; + rockchip,capture-only; + resets = <0x02 0x413>; + interrupts = <0x00 0xbd 0x04>; + clocks = <0x02 0x242 0x02 0x242 0x02 0x23e>; + dma-names = "rx"; + #sound-dai-cells = <0x00>; + compatible = "rockchip,rk3588-i2s-tdm"; + status = "disabled"; + reg = <0x00 0xfddfc000 0x00 0x1000>; + phandle = <0x27f>; + dmas = <0xf2 0x17>; + reset-names = "rx-m"; + }; + + usbdrd3_0 { + #address-cells = <0x02>; + clock-names = "ref\0suspend\0bus"; + clocks = <0x02 0x1a3 0x02 0x1a2 0x02 0x1a1>; + #size-cells = <0x02>; + compatible = "rockchip,rk3588-dwc3\0rockchip,rk3399-dwc3"; + ranges; + status = "okay"; + phandle = <0x252>; + + usb@fc000000 { + power-domains = <0x60 0x1f>; + snps,dis-u1-entry-quirk; + snps,dis_enblslpm_quirk; + phy-names = "usb2-phy\0usb3-phy"; + snps,dis-u2-freeclk-exists-quirk; + usb-role-switch; + phy_type = "utmi_wide"; + quirk-skip-phy-init; + resets = <0x02 0x2a4>; + interrupts = <0x00 0xdc 0x04>; + snps,dis-u2-entry-quirk; + compatible = "snps,dwc3"; + snps,parkmode-disable-hs-quirk; + snps,dis-del-phy-power-chg-quirk; + status = "okay"; + snps,parkmode-disable-ss-quirk; + phys = <0x66 0x67>; + reg = <0x00 0xfc000000 0x00 0x400000>; + phandle = <0x253>; + dr_mode = "host"; + reset-names = "usb3-otg"; + snps,dis-tx-ipgap-linecheck-quirk; + + port { + #address-cells = <0x01>; + #size-cells = <0x00>; + + endpoint@0 { + remote-endpoint = <0x68>; + reg = <0x00>; + phandle = <0x17d>; + }; + }; + }; + }; + + rkcif-mipi-lvds5-sditf-vir2 { + compatible = "rockchip,rkcif-sditf"; + status = "disabled"; + rockchip,cif = <0x1a2>; + phandle = <0x478>; + }; + + rkcif-dvp-sditf { + compatible = "rockchip,rkcif-sditf"; + status = "disabled"; + rockchip,cif = <0x51>; + phandle = <0x22a>; + }; + + iommu@fdd97e00 { + rockchip,shootdown-entire; + clock-names = "aclk\0iface"; + interrupts = <0x00 0x9c 0x04>; + clocks = <0x02 0x270 0x02 0x26f>; + #iommu-cells = <0x00>; + compatible = "rockchip,iommu-v2"; + status = "okay"; + interrupt-names = "vop_mmu"; + reg = <0x00 0xfdd97e00 0x00 0x100 0x00 0xfdd97f00 0x00 0x100>; + phandle = <0xd6>; + rockchip,disable-device-link-resume; + }; + + rkvtunnel { + compatible = "rockchip,video-tunnel"; + status = "disabled"; + phandle = <0x245>; + }; + + syscon@fd5e0000 { + compatible = "rockchip,rk3588-hdptxphy-grf\0syscon"; + reg = <0x00 0xfd5e0000 0x00 0x100>; + phandle = <0x18a>; + }; + + i2c@fead0000 { + pinctrl-names = "default"; + #address-cells = <0x01>; + pinctrl-0 = <0x14d>; + clock-names = "i2c\0pclk"; + resets = <0x02 0xb4 0x02 0xac>; + interrupts = <0x00 0x142 0x04>; + clocks = <0x02 0x91 0x02 0x89>; + #size-cells = <0x00>; + compatible = "rockchip,rk3588-i2c\0rockchip,rk3399-i2c"; + status = "disabled"; + reg = <0x00 0xfead0000 0x00 0x1000>; + phandle = <0x2a8>; + reset-names = "i2c\0apb"; + }; + + iommu@fdba4800 { + power-domains = <0x60 0x15>; + clock-names = "aclk\0iface"; + interrupts = <0x00 0x7b 0x04>; + clocks = <0x02 0x1ae 0x02 0x1af>; + #iommu-cells = <0x00>; + compatible = "rockchip,iommu-v2"; + status = "okay"; + interrupt-names = "irq_jpege1_mmu"; + reg = <0x00 0xfdba4800 0x00 0x40>; + phandle = <0xbe>; + }; + + spdif-rx@fde10000 { + power-domains = <0x60 0x1a>; + clock-names = "mclk\0hclk"; + assigned-clocks = <0x02 0x260>; + assigned-clock-parents = <0x02 0x05>; + resets = <0x02 0x3ff>; + interrupts = <0x00 0xc8 0x04>; + clocks = <0x02 0x260 0x02 0x25f>; + dma-names = "rx"; + #sound-dai-cells = <0x00>; + compatible = "rockchip,rk3588-spdifrx\0rockchip,rk3308-spdifrx"; + status = "disabled"; + reg = <0x00 0xfde10000 0x00 0x1000>; + phandle = <0x47f>; + dmas = <0x7c 0x16>; + reset-names = "spdifrx-m"; + }; + + npu@fdab0000 { + power-domains = <0x60 0x09 0x60 0x0a 0x60 0x0b>; + iommus = <0xb2>; + clock-names = "clk_npu\0aclk0\0aclk1\0aclk2\0hclk0\0hclk1\0hclk2\0pclk"; + assigned-clocks = <0x0e 0x06>; + power-domain-names = "npu0\0npu1\0npu2"; + rknpu-supply = <0xb3>; + assigned-clock-rates = <0xbebc200>; + resets = <0x02 0x1e6 0x02 0x1b0 0x02 0x1c0 0x02 0x1e8 0x02 0x1b2 0x02 0x1c2>; + interrupts = <0x00 0x6e 0x04 0x00 0x6f 0x04 0x00 0x70 0x04>; + clocks = <0x0e 0x06 0x02 0x12d 0x02 0x122 0x02 0x124 0x02 0x12e 0x02 0x123 0x02 0x125 0x02 0x131>; + compatible = "rockchip,rk3588-rknpu"; + status = "okay"; + interrupt-names = "npu0_irq\0npu1_irq\0npu2_irq"; + mem-supply = <0xb3>; + reg = <0x00 0xfdab0000 0x00 0x10000 0x00 0xfdac0000 0x00 0x10000 0x00 0xfdad0000 0x00 0x10000>; + phandle = <0x265>; + reset-names = "srst_a0\0srst_a1\0srst_a2\0srst_h0\0srst_h1\0srst_h2"; + operating-points-v2 = <0xb1>; + }; + + hdmiphy@fed60000 { + clock-names = "ref\0apb"; + resets = <0x02 0x48e 0x02 0x485 0x02 0xc003b 0x02 0xc003c 0x02 0xc003d 0x02 0x48c 0x02 0x48d>; + clocks = <0x02 0x2b5 0x02 0x267>; + #phy-cells = <0x00>; + compatible = "rockchip,rk3588-hdptx-phy-hdmi"; + status = "okay"; + rockchip,grf = <0x18a>; + reg = <0x00 0xfed60000 0x00 0x2000>; + phandle = <0xfd>; + reset-names = "phy\0apb\0init\0cmn\0lane\0ropll\0lcpll"; + + clk-port { + #clock-cells = <0x00>; + status = "okay"; + phandle = <0x35>; + }; + }; + + dmc-opp-table { + nvmem-cells = <0x44 0x45 0x21>; + rockchip,low-temp = <0x2710>; + rockchip,leakage-voltage-sel = <0x01 0x1f 0x00 0x20 0x2c 0x01 0x2d 0x39 0x02 0x3a 0xfe 0x03>; + compatible = "operating-points-v2"; + rockchip,low-temp-min-volt = <0xb71b0>; + nvmem-cell-names = "leakage\0opp-info\0specification_serial_number"; + phandle = <0x41>; + rockchip,temp-hysteresis = <0x1388>; + rockchip,supported-hw; + + opp-1560000000 { + opp-microvolt = <0xc3500 0xc3500 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; + opp-microvolt-L2 = <0xb71b0 0xb71b0 0xd59f8 0xadf34 0xadf34 0xb71b0>; + opp-hz = <0x00 0x5cfbb600>; + opp-supported-hw = <0xf9 0xffff>; + opp-microvolt-L3 = <0xb1008 0xb1008 0xd59f8 0xaae60 0xaae60 0xb71b0>; + opp-microvolt-L1 = <0xbd358 0xbd358 0xd59f8 0xb1008 0xb1008 0xb71b0>; + }; + + opp-j-m-1560000000 { + opp-microvolt = <0xc3500 0xc3500 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; + opp-microvolt-L2 = <0xb71b0 0xb71b0 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; + opp-hz = <0x00 0x5cfbb600>; + opp-supported-hw = <0x06 0xffff>; + opp-microvolt-L3 = <0xb71b0 0xb71b0 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; + opp-microvolt-L1 = <0xbd358 0xbd358 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; + }; + + opp-j-m-528000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; + opp-hz = <0x00 0x1f78a400>; + opp-supported-hw = <0x06 0xffff>; + }; + + opp-2750000000 { + opp-microvolt = <0xd59f8 0xd59f8 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; + opp-microvolt-L2 = <0xcc77c 0xcc77c 0xd59f8 0xb1008 0xb1008 0xb71b0>; + opp-hz = <0x00 0xa3e9ab80>; + opp-supported-hw = <0xf9 0xffff>; + opp-microvolt-L3 = <0xc96a8 0xc8320 0xd59f8 0xaae60 0xaae60 0xb71b0>; + opp-microvolt-L1 = <0xcf850 0xcf850 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; + }; + + opp-1068000000 { + opp-microvolt = <0xb1008 0xb1008 0xd59f8 0xb40dc 0xb40dc 0xb71b0>; + opp-microvolt-L2 = <0xa4cb8 0xa4cb8 0xd59f8 0xaae60 0xaae60 0xb71b0>; + opp-hz = <0x00 0x3fa86300>; + opp-supported-hw = <0xf9 0xffff>; + opp-microvolt-L3 = <0xa4cb8 0xa4cb8 0xd59f8 0xa7d8c 0xa7d8c 0xb71b0>; + opp-microvolt-L1 = <0xaae60 0xaae60 0xd59f8 0xadf34 0xadf34 0xb71b0>; + }; + + opp-j-m-2750000000 { + opp-microvolt = <0xd59f8 0xd59f8 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; + opp-microvolt-L2 = <0xcc77c 0xcc77c 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; + opp-hz = <0x00 0xa3e9ab80>; + opp-supported-hw = <0x06 0xffff>; + opp-microvolt-L3 = <0xc96a8 0xc8320 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; + opp-microvolt-L1 = <0xcf850 0xcf850 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; + }; + + opp-528000000 { + opp-microvolt = <0xa4cb8 0xa4cb8 0xd59f8 0xb1008 0xb1008 0xb71b0>; + opp-microvolt-L2 = <0xa4cb8 0xa4cb8 0xd59f8 0xa7d8c 0xa7d8c 0xb71b0>; + opp-hz = <0x00 0x1f78a400>; + opp-supported-hw = <0xf9 0xffff>; + opp-microvolt-L3 = <0xa4cb8 0xa4cb8 0xd59f8 0xa4cb8 0xa4cb8 0xb71b0>; + opp-microvolt-L1 = <0xa4cb8 0xa4cb8 0xd59f8 0xaae60 0xaae60 0xb71b0>; + }; + + opp-j-m-1068000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; + opp-hz = <0x00 0x3fa86300>; + opp-supported-hw = <0x06 0xffff>; + }; + }; + + rkvenc-core@fdbe0000 { + power-domains = <0x60 0x11>; + iommus = <0xc5>; + rockchip,ccu = <0xc3>; + clock-names = "aclk_vcodec\0hclk_vcodec\0clk_core"; + assigned-clocks = <0x02 0x1ca 0x02 0x1cb>; + rockchip,task-capacity = <0x08>; + rockchip,normal-rates = <0x1dcd6500 0x00 0x2faf0800>; + assigned-clock-rates = <0x1dcd6500 0x2faf0800>; + resets = <0x02 0x305 0x02 0x304 0x02 0x306>; + interrupts = <0x00 0x68 0x04>; + clocks = <0x02 0x1ca 0x02 0x1c9 0x02 0x1cb>; + rockchip,srv = <0xb8>; + rockchip,taskqueue-node = <0x07>; + compatible = "rockchip,rkv-encoder-v2-core"; + status = "okay"; + interrupt-names = "irq_rkvenc1"; + rockchip,skip-pmu-idle-request; + reg = <0x00 0xfdbe0000 0x00 0x6000>; + phandle = <0x273>; + reset-names = "video_a\0video_h\0video_core"; + operating-points-v2 = <0xc4>; + }; + + debug@fd104000 { + compatible = "rockchip,debug"; + reg = <0x00 0xfd104000 0x00 0x1000 0x00 0xfd105000 0x00 0x1000 0x00 0xfd106000 0x00 0x1000 0x00 0xfd107000 0x00 0x1000 0x00 0xfd124000 0x00 0x1000 0x00 0xfd125000 0x00 0x1000 0x00 0xfd126000 0x00 0x1000 0x00 0xfd127000 0x00 0x1000>; + phandle = <0x48f>; + }; + + watchdog@feaf0000 { + clock-names = "tclk\0pclk"; + interrupts = <0x00 0x13b 0x04>; + clocks = <0x02 0x6c 0x02 0x6b>; + compatible = "snps,dw-wdt"; + status = "okay"; + reg = <0x00 0xfeaf0000 0x00 0x100>; + phandle = <0x2aa>; + }; + + syscon@fd5d8000 { + #address-cells = <0x01>; + #size-cells = <0x01>; + compatible = "rockchip,rk3588-usb2phy-grf\0syscon\0simple-mfd"; + reg = <0x00 0xfd5d8000 0x00 0x4000>; + phandle = <0x25d>; + + usb2-phy@8000 { + clock-output-names = "usb480m_phy2"; + clock-names = "phyclk"; + resets = <0x02 0xc0049 0x02 0x48a>; + interrupts = <0x00 0x187 0x04>; + clocks = <0x02 0x2b5>; + #clock-cells = <0x00>; + compatible = "rockchip,rk3588-usb2phy"; + status = "okay"; + reg = <0x8000 0x10>; + phandle = <0x69>; + reset-names = "phy\0apb"; + + host-port { + phy-supply = <0x75>; + #phy-cells = <0x00>; + status = "okay"; + phandle = <0x6c>; + }; + }; + }; + + cluster0-opp-table { + rockchip,pvtm-offset = <0x64>; + rockchip,pvtm-sample-time = <0x44c>; + rockchip,dsu-grf = <0x23>; + rockchip,pvtm-hw = <0x06>; + nvmem-cells = <0x1f 0x20 0x21>; + rockchip,low-temp = <0x2710>; + rockchip,pvtm-voltage-sel-hw = <0x00 0x555 0x00 0x556 0x56b 0x01 0x56c 0x581 0x02 0x582 0x597 0x03 0x598 0x5ad 0x04 0x5ae 0x5c3 0x05 0x5c4 0x270f 0x06>; + rockchip,pvtm-thermal-zone = "soc-thermal"; + rockchip,opp-shared-dsu; + rockchip,high-temp-max-freq = <0x188940>; + opp-shared; + rockchip,reboot-freq = <0x159b40>; + rockchip,pvtm-freq = <0x159b40>; + rockchip,pvtm-ref-temp = <0x19>; + low-volt-mem-read-margin = <0x04>; + volt-mem-read-margin = <0xd0bd8 0x01 0xbac48 0x02 0xa4cb8 0x03 0x78d98 0x04>; + compatible = "operating-points-v2"; + rockchip,low-temp-min-volt = <0xb71b0>; + rockchip,grf = <0x22>; + nvmem-cell-names = "leakage\0opp-info\0specification_serial_number"; + rockchip,pvtm-voltage-sel = <0x00 0x582 0x00 0x583 0x59a 0x01 0x59b 0x5b2 0x02 0x5b3 0x5ca 0x03 0x5cb 0x5e2 0x04 0x5e3 0x5fa 0x05 0x5fb 0x270f 0x06>; + phandle = <0x0f>; + rockchip,pvtm-temp-prop = <0xf4 0xf4>; + rockchip,temp-hysteresis = <0x1388>; + rockchip,high-temp = <0x14c08>; + rockchip,pvtm-pvtpll; + rockchip,supported-hw; + intermediate-threshold-freq = <0xf6180>; + rockchip,pvtm-volt = <0xb71b0>; + + opp-1200000000 { + opp-microvolt = <0xadf34 0xadf34 0xe7ef0 0xadf34 0xadf34 0xe7ef0>; + opp-microvolt-L6 = <0xa4cb8 0xa4cb8 0xe7ef0 0xa4cb8 0xa4cb8 0xe7ef0>; + opp-microvolt-L4 = <0xa4cb8 0xa4cb8 0xe7ef0 0xa4cb8 0xa4cb8 0xe7ef0>; + opp-microvolt-L2 = <0xaae60 0xaae60 0xe7ef0 0xaae60 0xaae60 0xe7ef0>; + opp-hz = <0x00 0x47868c00>; + opp-supported-hw = <0xf9 0xffff>; + opp-microvolt-L5 = <0xa4cb8 0xa4cb8 0xe7ef0 0xa4cb8 0xa4cb8 0xe7ef0>; + opp-microvolt-L3 = <0xa7d8c 0xa7d8c 0xe7ef0 0xa7d8c 0xa7d8c 0xe7ef0>; + clock-latency-ns = <0x9c40>; + opp-microvolt-L1 = <0xaae60 0xaae60 0xe7ef0 0xaae60 0xaae60 0xe7ef0>; + }; + + opp-j-m-1416000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + opp-microvolt-L2 = <0xba284 0xba284 0xe7ef0 0xba284 0xba284 0xe7ef0>; + opp-hz = <0x00 0x54667200>; + opp-microvolt-L0 = <0xc042c 0xc042c 0xe7ef0 0xc042c 0xc042c 0xe7ef0>; + opp-supported-hw = <0x06 0xffff>; + opp-suspend; + clock-latency-ns = <0x9c40>; + opp-microvolt-L1 = <0xbd358 0xbd358 0xe7ef0 0xbd358 0xbd358 0xe7ef0>; + }; + + opp-1008000000 { + opp-microvolt = <0xa4cb8 0xa4cb8 0xe7ef0 0xa4cb8 0xa4cb8 0xe7ef0>; + opp-hz = <0x00 0x3c14dc00>; + opp-supported-hw = <0xf9 0xffff>; + clock-latency-ns = <0x9c40>; + }; + + opp-j-m-1704000000 { + opp-microvolt = <0xe4e1c 0xe4e1c 0xe7ef0 0xe4e1c 0xe4e1c 0xe7ef0>; + opp-microvolt-L6 = <0xd2924 0xd2924 0xe7ef0 0xd2924 0xd2924 0xe7ef0>; + opp-microvolt-L4 = <0xd8acc 0xd8acc 0xe7ef0 0xd8acc 0xd8acc 0xe7ef0>; + opp-microvolt-L2 = <0xdec74 0xdec74 0xe7ef0 0xdec74 0xdec74 0xe7ef0>; + opp-hz = <0x00 0x6590fa00>; + opp-supported-hw = <0x06 0xffff>; + opp-microvolt-L5 = <0xd59f8 0xd59f8 0xe7ef0 0xd59f8 0xd59f8 0xe7ef0>; + opp-microvolt-L3 = <0xdbba0 0xdbba0 0xe7ef0 0xdbba0 0xdbba0 0xe7ef0>; + clock-latency-ns = <0x9c40>; + opp-microvolt-L1 = <0xe1d48 0xe1d48 0xe7ef0 0xe1d48 0xe1d48 0xe7ef0>; + }; + + opp-j-m-1200000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + opp-hz = <0x00 0x47868c00>; + opp-supported-hw = <0x06 0xffff>; + clock-latency-ns = <0x9c40>; + }; + + opp-j-m-1008000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + opp-hz = <0x00 0x3c14dc00>; + opp-supported-hw = <0x06 0xffff>; + clock-latency-ns = <0x9c40>; + }; + + opp-j-m-816000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + opp-hz = <0x00 0x30a32c00>; + opp-supported-hw = <0x06 0xffff>; + clock-latency-ns = <0x9c40>; + }; + + opp-1800000000 { + opp-microvolt = <0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0>; + opp-microvolt-L6 = <0xd59f8 0xd59f8 0xe7ef0 0xd59f8 0xd59f8 0xe7ef0>; + opp-microvolt-L4 = <0xdbba0 0xdbba0 0xe7ef0 0xdbba0 0xdbba0 0xe7ef0>; + opp-microvolt-L2 = <0xe1d48 0xe1d48 0xe7ef0 0xe1d48 0xe1d48 0xe7ef0>; + opp-hz = <0x00 0x6b49d200>; + opp-supported-hw = <0xf9 0xffff>; + opp-microvolt-L5 = <0xd8acc 0xd8acc 0xe7ef0 0xd8acc 0xd8acc 0xe7ef0>; + opp-microvolt-L3 = <0xdec74 0xdec74 0xe7ef0 0xdec74 0xdec74 0xe7ef0>; + clock-latency-ns = <0x9c40>; + opp-microvolt-L1 = <0xe4e1c 0xe4e1c 0xe7ef0 0xe4e1c 0xe4e1c 0xe7ef0>; + }; + + opp-j-m-600000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + opp-hz = <0x00 0x23c34600>; + opp-supported-hw = <0x06 0xffff>; + clock-latency-ns = <0x9c40>; + }; + + opp-1608000000 { + opp-microvolt = <0xcf850 0xcf850 0xe7ef0 0xcf850 0xcf850 0xe7ef0>; + opp-microvolt-L6 = <0xc042c 0xc042c 0xe7ef0 0xc042c 0xc042c 0xe7ef0>; + opp-microvolt-L4 = <0xc3500 0xc3500 0xe7ef0 0xc3500 0xc3500 0xe7ef0>; + opp-microvolt-L2 = <0xc96a8 0xc96a8 0xe7ef0 0xc96a8 0xc96a8 0xe7ef0>; + opp-hz = <0x00 0x5fd82200>; + opp-supported-hw = <0xf9 0xffff>; + opp-microvolt-L5 = <0xc3500 0xc3500 0xe7ef0 0xc3500 0xc3500 0xe7ef0>; + opp-microvolt-L3 = <0xc65d4 0xc65d4 0xe7ef0 0xc65d4 0xc65d4 0xe7ef0>; + clock-latency-ns = <0x9c40>; + opp-microvolt-L1 = <0xcc77c 0xcc77c 0xe7ef0 0xcc77c 0xcc77c 0xe7ef0>; + }; + + opp-j-1296000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + opp-hz = <0x00 0x4d3f6400>; + opp-microvolt-L0 = <0xbd358 0xbd358 0xe7ef0 0xbd358 0xbd358 0xe7ef0>; + opp-supported-hw = <0x04 0xffff>; + clock-latency-ns = <0x9c40>; + opp-microvolt-L1 = <0xba284 0xba284 0xe7ef0 0xba284 0xba284 0xe7ef0>; + }; + + opp-j-m-408000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + opp-hz = <0x00 0x18519600>; + opp-supported-hw = <0x06 0xffff>; + clock-latency-ns = <0x9c40>; + }; + + opp-816000000 { + opp-microvolt = <0xa4cb8 0xa4cb8 0xe7ef0 0xa4cb8 0xa4cb8 0xe7ef0>; + opp-hz = <0x00 0x30a32c00>; + opp-supported-hw = <0xf9 0xffff>; + clock-latency-ns = <0x9c40>; + }; + + opp-j-m-1608000000 { + opp-microvolt = <0xd8acc 0xd8acc 0xe7ef0 0xd8acc 0xd8acc 0xe7ef0>; + opp-microvolt-L6 = <0xc65d4 0xc65d4 0xe7ef0 0xc65d4 0xc65d4 0xe7ef0>; + opp-microvolt-L4 = <0xcc77c 0xcc77c 0xe7ef0 0xcc77c 0xcc77c 0xe7ef0>; + opp-microvolt-L2 = <0xd2924 0xd2924 0xe7ef0 0xd2924 0xd2924 0xe7ef0>; + opp-hz = <0x00 0x5fd82200>; + opp-supported-hw = <0x06 0xffff>; + opp-microvolt-L5 = <0xc96a8 0xc96a8 0xe7ef0 0xc96a8 0xc96a8 0xe7ef0>; + opp-microvolt-L3 = <0xcf850 0xcf850 0xe7ef0 0xcf850 0xcf850 0xe7ef0>; + clock-latency-ns = <0x9c40>; + opp-microvolt-L1 = <0xd59f8 0xd59f8 0xe7ef0 0xd59f8 0xd59f8 0xe7ef0>; + }; + + opp-600000000 { + opp-microvolt = <0xa4cb8 0xa4cb8 0xe7ef0 0xa4cb8 0xa4cb8 0xe7ef0>; + opp-hz = <0x00 0x23c34600>; + opp-supported-hw = <0xf9 0xffff>; + clock-latency-ns = <0x9c40>; + }; + + opp-1416000000 { + opp-microvolt = <0xba284 0xba284 0xe7ef0 0xba284 0xba284 0xe7ef0>; + opp-microvolt-L6 = <0xadf34 0xadf34 0xe7ef0 0xadf34 0xadf34 0xe7ef0>; + opp-microvolt-L4 = <0xb1008 0xb1008 0xe7ef0 0xb1008 0xb1008 0xe7ef0>; + opp-microvolt-L2 = <0xb40dc 0xb40dc 0xe7ef0 0xb40dc 0xb40dc 0xe7ef0>; + opp-hz = <0x00 0x54667200>; + opp-supported-hw = <0xf9 0xffff>; + opp-microvolt-L5 = <0xadf34 0xadf34 0xe7ef0 0xadf34 0xadf34 0xe7ef0>; + opp-suspend; + opp-microvolt-L3 = <0xb1008 0xb1008 0xe7ef0 0xb1008 0xb1008 0xe7ef0>; + clock-latency-ns = <0x9c40>; + opp-microvolt-L1 = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + }; + + opp-408000000 { + opp-microvolt = <0xa4cb8 0xa4cb8 0xe7ef0 0xa4cb8 0xa4cb8 0xe7ef0>; + opp-hz = <0x00 0x18519600>; + opp-supported-hw = <0xf9 0xffff>; + clock-latency-ns = <0x9c40>; + }; + }; + + vcc-4g-regulator { + regulator-boot-on; + gpio = <0x182 0x00 0x00>; + regulator-always-on; + enable-active-high; + regulator-name = "vcc_4g"; + compatible = "regulator-fixed"; + status = "okay"; + phandle = <0x4b0>; + }; + + spi@fecb0000 { + pinctrl-names = "default"; + #address-cells = <0x01>; + num-cs = <0x02>; + pinctrl-0 = <0x187 0x188 0x189>; + clock-names = "spiclk\0apb_pclk"; + interrupts = <0x00 0x14a 0x04>; + clocks = <0x02 0xa7 0x02 0xa2>; + #size-cells = <0x00>; + dma-names = "tx\0rx"; + compatible = "rockchip,rk3066-spi"; + status = "disabled"; + reg = <0x00 0xfecb0000 0x00 0x1000>; + phandle = <0x2e6>; + dmas = <0xf2 0x0d 0xf2 0x0e>; + }; + + spdif-rx@fde08000 { + power-domains = <0x60 0x1a>; + clock-names = "mclk\0hclk"; + assigned-clocks = <0x02 0x25e>; + assigned-clock-parents = <0x02 0x05>; + resets = <0x02 0x3fd>; + interrupts = <0x00 0xc7 0x04>; + clocks = <0x02 0x25e 0x02 0x25d>; + dma-names = "rx"; + #sound-dai-cells = <0x00>; + compatible = "rockchip,rk3588-spdifrx\0rockchip,rk3308-spdifrx"; + status = "disabled"; + reg = <0x00 0xfde08000 0x00 0x1000>; + phandle = <0x280>; + dmas = <0x7c 0x15>; + reset-names = "spdifrx-m"; + }; + + mipi3-csi2-hw@fdd40000 { + clock-names = "pclk_csi2host"; + reg-names = "csihost_regs"; + resets = <0x02 0x327>; + interrupts = <0x00 0x95 0x04 0x00 0x96 0x04>; + clocks = <0x02 0x1d2>; + compatible = "rockchip,rk3588-mipi-csi2-hw"; + status = "okay"; + interrupt-names = "csi-intr1\0csi-intr2"; + reg = <0x00 0xfdd40000 0x00 0x10000>; + phandle = <0x4a>; + reset-names = "srst_csihost_p"; + }; + + // DTB memory region: { address: 0x9400000, size: 0xe6c00000 } 3.6G + // DTB memory region: { address: 0x2f0000000, size: 0x10000000 } 256M + + memory { + device_type = "memory"; + reg = <0x00 0x9400000 0x00 0xe6c00000 0x02 0xf0000000 0x00 0x10000000 >; + }; + + jpege-core@fdba4000 { + power-domains = <0x60 0x15>; + iommus = <0xbe>; + rockchip,ccu = <0xbd>; + clock-names = "aclk_vcodec\0hclk_vcodec"; + assigned-clocks = <0x02 0x1ae>; + rockchip,normal-rates = <0x2367b880 0x00>; + assigned-clock-rates = <0x2367b880>; + resets = <0x02 0x2cc 0x02 0x2cd>; + interrupts = <0x00 0x7c 0x04>; + clocks = <0x02 0x1ae 0x02 0x1af>; + rockchip,srv = <0xb8>; + rockchip,taskqueue-node = <0x02>; + rockchip,disable-auto-freq; + compatible = "rockchip,vpu-jpege-core"; + status = "okay"; + interrupt-names = "irq_jpege1"; + rockchip,skip-pmu-idle-request; + reg = <0x00 0xfdba4000 0x00 0x400>; + phandle = <0x26e>; + reset-names = "video_a\0video_h"; + }; + + wireless-wlan { + pinctrl-names = "default"; + pinctrl-0 = <0x1ea>; + WIFI,host_wake_irq = <0x182 0x0a 0x00>; + wifi_chip_type = "rtl8822ce"; + compatible = "wlan-platdata"; + status = "okay"; + phandle = <0x4ab>; + }; + + rkcif-mipi-lvds4-sditf-vir3 { + compatible = "rockchip,rkcif-sditf"; + status = "disabled"; + rockchip,cif = <0x1a1>; + phandle = <0x475>; + }; + + dp@fde50000 { + power-domains = <0x60 0x19>; + clock-names = "apb\0aux\0i2s\0spdif\0hclk\0hdcp"; + assigned-clocks = <0x02 0x2cc>; + assigned-clock-rates = <0xf42400>; + resets = <0x02 0x388>; + interrupts = <0x00 0xa1 0x04>; + clocks = <0x02 0x1e6 0x02 0x2cc 0x02 0x1fb 0x02 0x207 0x04 0x02 0x1ea>; + #sound-dai-cells = <0x01>; + compatible = "rockchip,rk3588-dp"; + status = "disabled"; + phys = <0xf6>; + reg = <0x00 0xfde50000 0x00 0x4000>; + phandle = <0x1d6>; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x00>; + + endpoint@1 { + remote-endpoint = <0x38>; + status = "disabled"; + reg = <0x01>; + phandle = <0xe0>; + }; + + endpoint@2 { + remote-endpoint = <0xf8>; + status = "disabled"; + reg = <0x02>; + phandle = <0xe6>; + }; + + endpoint@0 { + remote-endpoint = <0xf7>; + status = "disabled"; + reg = <0x00>; + phandle = <0xda>; + }; + }; + + port@1 { + reg = <0x01>; + + endpoint { + phandle = <0x286>; + }; + }; + }; + }; + + rockchip-system-monitor { + rockchip,thermal-zone = "soc-thermal"; + compatible = "rockchip,system-monitor"; + phandle = <0x247>; + }; + + vcc3v3-pcie30 { + regulator-max-microvolt = <0x325aa0>; + enable-active-high; + regulator-min-microvolt = <0x325aa0>; + regulator-name = "vcc3v3_pcie30"; + startup-delay-us = <0x1388>; + compatible = "regulator-fixed"; + status = "okay"; + phandle = <0x1b8>; + vin-supply = <0x1cd>; + gpios = <0x182 0x04 0x00>; + }; + + phy@fedb0000 { + clock-names = "pclk\0ref"; + resets = <0x02 0xc0045 0x02 0x43 0x02 0x44 0x02 0xc0046>; + clocks = <0x02 0x109 0x02 0x2b6>; + #phy-cells = <0x00>; + compatible = "rockchip,rk3588-mipi-dcphy"; + status = "okay"; + rockchip,grf = <0x191>; + reg = <0x00 0xfedb0000 0x00 0x10000>; + phandle = <0x30>; + reset-names = "m_phy\0apb\0grf\0s_phy"; + }; + + rkvdec-core@fdc38000 { + power-domains = <0x60 0x0e>; + iommus = <0xc9>; + rockchip,ccu = <0xca>; + clock-names = "aclk_vcodec\0hclk_vcodec\0clk_core\0clk_cabac\0clk_hevc_cabac"; + reg-names = "regs\0link"; + assigned-clocks = <0x02 0x190 0x02 0x193 0x02 0x191 0x02 0x192>; + rockchip,core-mask = <0x10001>; + rockchip,task-capacity = <0x10>; + rockchip,normal-rates = <0x2faf0800 0x00 0x23c34600 0x23c34600 0x3b9aca00>; + assigned-clock-rates = <0x2faf0800 0x23c34600 0x23c34600 0x3b9aca00>; + resets = <0x02 0x284 0x02 0x283 0x02 0x289 0x02 0x287 0x02 0x288>; + interrupts = <0x00 0x5f 0x04>; + rockchip,rcb-info = <0x88 0x6000 0x89 0xc000 0x8d 0x16000 0x8c 0xc000 0x8b 0x2c000 0x85 0xc000 0x86 0x2000 0x87 0x1100 0x8a 0x3300 0x8e 0x47300>; + clocks = <0x02 0x190 0x02 0x18f 0x02 0x193 0x02 0x191 0x02 0x192>; + rockchip,rcb-min-width = <0x200>; + rockchip,srv = <0xb8>; + rockchip,taskqueue-node = <0x09>; + compatible = "rockchip,rkv-decoder-v2"; + status = "okay"; + interrupt-names = "irq_rkvdec0"; + rockchip,skip-pmu-idle-request; + rockchip,rcb-iova = <0xfff00000 0x100000>; + reg = <0x00 0xfdc38100 0x00 0x400 0x00 0xfdc38000 0x00 0x100>; + phandle = <0x274>; + reset-names = "video_a\0video_h\0video_core\0video_cabac\0video_hevc_cabac"; + rockchip,sram = <0xcb>; + }; + + minidump { + smem-region = <0x1cf>; + minidump-region = <0x1d0>; + compatible = "rockchip,minidump"; + status = "disabled"; + phandle = <0x491>; + }; +}; diff --git a/configs/vms/aio-rk3588-jd4-vm2.dts b/configs/vms/aio-rk3588-jd4-vm2.dts new file mode 100644 index 00000000..79cedc5f --- /dev/null +++ b/configs/vms/aio-rk3588-jd4-vm2.dts @@ -0,0 +1,12823 @@ +/dts-v1/; + +/ { + #address-cells = <0x02>; + model = "Firefly AIO-3588JD4"; + serial-number = "a0deeea630de3975"; + #size-cells = <0x02>; + interrupt-parent = <0x01>; + compatible = "rockchip,aio-3588jd4\0rockchip,rk3588"; + + pcie30-avdd1v8 { + regulator-max-microvolt = <0x1b7740>; + regulator-boot-on; + regulator-always-on; + regulator-min-microvolt = <0x1b7740>; + regulator-name = "pcie30_avdd1v8"; + compatible = "regulator-fixed"; + phandle = <0x4a6>; + vin-supply = <0x1de>; + }; + + syscon@fd5bc000 { + compatible = "rockchip,pipe-phy-grf\0syscon"; + reg = <0x00 0xfd5bc000 0x00 0x100>; + phandle = <0x194>; + }; + + vcc5v0-host3 { + regulator-max-microvolt = <0x4c4b40>; + regulator-boot-on; + gpio = <0x182 0x07 0x00>; + regulator-always-on; + enable-active-high; + regulator-min-microvolt = <0x4c4b40>; + regulator-name = "vcc5v0_host3"; + compatible = "regulator-fixed"; + status = "disabled"; + phandle = <0x4a2>; + vin-supply = <0x1dd>; + }; + + pwm@febd0030 { + pinctrl-names = "active"; + pinctrl-0 = <0x16c>; + clock-names = "pwm\0pclk"; + interrupts = <0x00 0x15a 0x04 0x00 0x15b 0x04>; + clocks = <0x02 0x54 0x02 0x53>; + #pwm-cells = <0x03>; + compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; + status = "disabled"; + reg = <0x00 0xfebd0030 0x00 0x10>; + phandle = <0x2d4>; + }; + + rkisp@fdcc0000 { + power-domains = <0x60 0x1c>; + iommus = <0xd1>; + clock-names = "aclk_isp\0hclk_isp\0clk_isp_core\0clk_isp_core_marvin\0clk_isp_core_vicap"; + interrupts = <0x00 0x87 0x04 0x00 0x89 0x04 0x00 0x8a 0x04>; + clocks = <0x02 0x120 0x02 0x121 0x02 0x11d 0x02 0x11e 0x02 0x11f>; + compatible = "rockchip,rk3588-rkisp"; + status = "disabled"; + interrupt-names = "isp_irq\0mi_irq\0mipi_irq"; + reg = <0x00 0xfdcc0000 0x00 0x7f00>; + phandle = <0x5a>; + }; + + qos@fdf66600 { + compatible = "syscon"; + reg = <0x00 0xfdf66600 0x00 0x20>; + phandle = <0x96>; + }; + + serial@febb0000 { + reg-io-width = <0x04>; + pinctrl-names = "default"; + pinctrl-0 = <0x167>; + clock-names = "baudclk\0apb_pclk"; + interrupts = <0x00 0x153 0x04>; + clocks = <0x02 0xd3 0x02 0xb2>; + compatible = "rockchip,rk3588-uart\0snps,dw-apb-uart"; + status = "disabled"; + reg = <0x00 0xfebb0000 0x00 0x100>; + phandle = <0x2d0>; + dmas = <0xf2 0x09 0xf2 0x0a>; + reg-shift = <0x02>; + }; + + qos@fdf41000 { + compatible = "syscon"; + reg = <0x00 0xfdf41000 0x00 0x20>; + phandle = <0xa6>; + }; + + csi2-dcphy1 { + rockchip,hw = <0x2d 0x2e>; + phy-names = "dcphy0\0dcphy1"; + compatible = "rockchip,rk3588-csi2-dphy"; + status = "disabled"; + phys = <0x2f 0x30>; + phandle = <0x20e>; + }; + + rkispp0-vir0 { + rockchip,hw = <0x5b>; + compatible = "rockchip,rk3588-rkispp-vir"; + status = "disabled"; + phandle = <0x243>; + }; + + wireless-bluetooth { + pinctrl-names = "default\0rts_gpio"; + pinctrl-0 = <0x1e5 0x1e6 0x1e7 0x1e8>; + clock-names = "ext_clock"; + BT,power_gpio = <0x7b 0x16 0x00>; + clocks = <0x1e4>; + BT,wake_gpio = <0x7b 0x15 0x00>; + uart_rts_gpios = <0xfe 0x02 0x01>; + compatible = "bluetooth-platdata"; + BT,wake_host_irq = <0x7b 0x00 0x00>; + pinctrl-1 = <0x1e9>; + status = "disabled"; + phandle = <0x4aa>; + }; + + pwm@febd0020 { + pinctrl-names = "active"; + pinctrl-0 = <0x16b>; + clock-names = "pwm\0pclk"; + interrupts = <0x00 0x15a 0x04>; + clocks = <0x02 0x54 0x02 0x53>; + #pwm-cells = <0x03>; + compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; + status = "disabled"; + reg = <0x00 0xfebd0020 0x00 0x10>; + phandle = <0x2d3>; + }; + + qos@fdf39000 { + compatible = "syscon"; + reg = <0x00 0xfdf39000 0x00 0x20>; + phandle = <0xaf>; + }; + + cam0-cam1-switch { + regulator-max-microvolt = <0x1b7740>; + pinctrl-names = "default"; + regulator-boot-on; + gpio = <0x181 0x11 0x00>; + pinctrl-0 = <0x1f0>; + regulator-always-on; + enable-active-high; + regulator-min-microvolt = <0x1b7740>; + regulator-name = "cam0_cam1_switch"; + compatible = "regulator-fixed"; + status = "okay"; + phandle = <0x4b2>; + }; + + qos@fdf3e400 { + compatible = "syscon"; + reg = <0x00 0xfdf3e400 0x00 0x20>; + phandle = <0xad>; + }; + + mipi2-csi2 { + rockchip,hw = <0x47 0x48 0x49 0x4a 0x4b 0x4c>; + compatible = "rockchip,rk3588-mipi-csi2"; + status = "okay"; + firefly-compatible; + phandle = <0x226>; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x00>; + + endpoint@0 { + remote-endpoint = <0x4d>; + reg = <0x00>; + phandle = <0x33>; + }; + }; + + port@1 { + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x01>; + + endpoint@0 { + remote-endpoint = <0x4e>; + reg = <0x00>; + phandle = <0x54>; + }; + }; + }; + }; + + iommu@fdc48700 { + power-domains = <0x60 0x0f>; + rockchip,shootdown-entire; + clock-names = "aclk\0iface"; + interrupts = <0x00 0x62 0x04>; + clocks = <0x02 0x195 0x02 0x194>; + rockchip,enable-cmd-retry; + #iommu-cells = <0x00>; + compatible = "rockchip,iommu-v2"; + rockchip,disable-mmu-reset; + status = "okay"; + interrupt-names = "irq_rkvdec1_mmu"; + reg = <0x00 0xfdc48700 0x00 0x40 0x00 0xfdc48740 0x00 0x40>; + phandle = <0xcc>; + rockchip,master-handle-irq; + }; + + clock-controller@fd7c0000 { + #reset-cells = <0x01>; + assigned-clocks = <0x02 0x09 0x02 0x05 0x02 0x08 0x02 0x07 0x02 0xd8 0x02 0xda 0x02 0xd9 0x02 0x10e 0x02 0x10f 0x02 0x110 0x02 0x299 0x02 0x29a 0x02 0x7b 0x02 0xec 0x02 0x114 0x02 0x208 0x02 0x20e 0x02 0x21f 0x02 0x77>; + assigned-clock-rates = <0x4190ab00 0x2ee00000 0x32a9f880 0x46cf7100 0x29d7ab80 0x17d78400 0x1dcd6500 0x2cb41780 0x5f5e100 0x17d78400 0x5f5e100 0xbebc200 0x165a0bc0 0x8f0d180 0xbebc200 0xb71b00 0xb71b00 0x5e69ec0 0x1312d00>; + #clock-cells = <0x01>; + compatible = "rockchip,rk3588-cru"; + rockchip,grf = <0x76>; + reg = <0x00 0xfd7c0000 0x00 0x5c000>; + phandle = <0x02>; + }; + + qos@fdf81000 { + compatible = "syscon"; + reg = <0x00 0xfdf81000 0x00 0x20>; + phandle = <0xa0>; + }; + + qos@fdf36000 { + compatible = "syscon"; + reg = <0x00 0xfdf36000 0x00 0x20>; + phandle = <0xaa>; + }; + + i2s@fe4a0000 { + power-domains = <0x60 0x26>; + pinctrl-names = "default\0idle\0clk"; + pinctrl-2 = <0x132 0x133>; + pinctrl-0 = <0x12f 0x130>; + clock-names = "i2s_clk\0i2s_hclk"; + assigned-clocks = <0x02 0x2a>; + assigned-clock-parents = <0x02 0x05>; + interrupts = <0x00 0xb7 0x04>; + clocks = <0x02 0x2d 0x02 0x23>; + dma-names = "tx\0rx"; + #sound-dai-cells = <0x00>; + compatible = "rockchip,rk3588-i2s\0rockchip,rk3066-i2s"; + pinctrl-1 = <0x131>; + status = "disabled"; + reg = <0x00 0xfe4a0000 0x00 0x1000>; + phandle = <0x299>; + dmas = <0xf1 0x02 0xf1 0x03>; + rockchip,clk-trcm = <0x01>; + }; + + syscon@fd5c4000 { + compatible = "rockchip,pipe-phy-grf\0syscon"; + reg = <0x00 0xfd5c4000 0x00 0x100>; + phandle = <0x195>; + }; + + sram@ff001000 { + #address-cells = <0x01>; + #size-cells = <0x01>; + compatible = "mmio-sram"; + ranges = <0x00 0x00 0xff001000 0xef000>; + reg = <0x00 0xff001000 0x00 0xef000>; + phandle = <0x2eb>; + + rkvdec-sram@0 { + reg = <0x00 0x78000>; + phandle = <0xcb>; + }; + + rkvdec-sram@78000 { + reg = <0x78000 0x77000>; + phandle = <0xcd>; + }; + }; + + uio@fe1c0000 { + compatible = "rockchip,uio-gmac"; + status = "disabled"; + reg = <0x00 0xfe1c0000 0x00 0x10000>; + phandle = <0x28e>; + rockchip,ethernet = <0x109>; + }; + + pwm@febd0010 { + pinctrl-names = "active"; + pinctrl-0 = <0x16a>; + clock-names = "pwm\0pclk"; + interrupts = <0x00 0x15a 0x04>; + clocks = <0x02 0x54 0x02 0x53>; + #pwm-cells = <0x03>; + compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; + status = "okay"; + reg = <0x00 0xfebd0010 0x00 0x10>; + phandle = <0x1ed>; + }; + + rkisp1-vir3 { + rockchip,hw = <0x5a>; + compatible = "rockchip,rkisp-vir"; + status = "disabled"; + phandle = <0x242>; + }; + + pcie-clk2 { + regulator-boot-on; + regulator-always-on; + regulator-name = "pcie_clk2"; + compatible = "regulator-fixed"; + status = "okay"; + phandle = <0x495>; + gpios = <0x181 0x16 0x01>; + }; + + serial@feb40000 { + reg-io-width = <0x04>; + pinctrl-names = "default"; + pinctrl-0 = <0x160>; + clock-names = "baudclk\0apb_pclk"; + interrupts = <0x00 0x14c 0x04>; + clocks = <0x02 0xb7 0x02 0xab>; + compatible = "rockchip,rk3588-uart\0snps,dw-apb-uart"; + status = "disabled"; + reg = <0x00 0xfeb40000 0x00 0x100>; + phandle = <0x2c9>; + dmas = <0x7c 0x08 0x7c 0x09>; + reg-shift = <0x02>; + }; + + pinctrl { + #address-cells = <0x02>; + #size-cells = <0x02>; + compatible = "rockchip,rk3588-pinctrl"; + ranges; + rockchip,grf = <0x196>; + phandle = <0x197>; + + eth0 { + + eth0-pins { + rockchip,pins = <0x02 0x13 0x01 0x198>; + phandle = <0x46c>; + }; + }; + + i2c3 { + + i2c3m3-xfer { + rockchip,pins = <0x02 0x0a 0x09 0x19d 0x02 0x0b 0x09 0x19d>; + phandle = <0x361>; + }; + + i2c3m2-xfer { + rockchip,pins = <0x04 0x04 0x09 0x19d 0x04 0x05 0x09 0x19d>; + phandle = <0x14a>; + }; + + i2c3m1-xfer { + rockchip,pins = <0x03 0x0f 0x09 0x19d 0x03 0x10 0x09 0x19d>; + phandle = <0x35f>; + }; + + i2c3m0-xfer { + rockchip,pins = <0x01 0x11 0x09 0x19d 0x01 0x10 0x09 0x19d>; + phandle = <0x35e>; + }; + + i2c3m4-xfer { + rockchip,pins = <0x04 0x18 0x09 0x19d 0x04 0x19 0x09 0x19d>; + phandle = <0x360>; + }; + }; + + pwm9 { + + pwm9m2-pins { + rockchip,pins = <0x03 0x19 0x0b 0x198>; + phandle = <0x3d7>; + }; + + pwm9m1-pins { + rockchip,pins = <0x04 0x19 0x0b 0x198>; + phandle = <0x3d6>; + }; + + pwm9m0-pins { + rockchip,pins = <0x03 0x08 0x0b 0x198>; + phandle = <0x16e>; + }; + }; + + pcfg-pull-none-drv-level-7 { + drive-strength = <0x07>; + bias-disable; + phandle = <0x451>; + }; + + mipi { + + mipi-te1 { + rockchip,pins = <0x03 0x13 0x02 0x198>; + phandle = <0x39f>; + }; + + mipim1-camera2-clk { + rockchip,pins = <0x03 0x07 0x04 0x198>; + phandle = <0x39b>; + }; + + mipim0-camera0-clk { + rockchip,pins = <0x04 0x09 0x01 0x198>; + phandle = <0x395>; + }; + + mipim0-camera4-clk { + rockchip,pins = <0x01 0x1f 0x02 0x198>; + phandle = <0x399>; + }; + + mipim1-camera3-clk { + rockchip,pins = <0x03 0x08 0x04 0x198>; + phandle = <0x39c>; + }; + + mipim0-camera1-clk { + rockchip,pins = <0x01 0x0e 0x02 0x198>; + phandle = <0x396>; + }; + + mipim1-camera0-clk { + rockchip,pins = <0x03 0x05 0x04 0x198>; + phandle = <0x39a>; + }; + + mipim1-camera4-clk { + rockchip,pins = <0x03 0x09 0x04 0x198>; + phandle = <0x39d>; + }; + + mipim0-camera2-clk { + rockchip,pins = <0x01 0x0f 0x02 0x198>; + phandle = <0x397>; + }; + + mipi-te0 { + rockchip,pins = <0x03 0x12 0x02 0x198>; + phandle = <0x39e>; + }; + + mipim1-camera1-clk { + rockchip,pins = <0x03 0x06 0x04 0x198>; + phandle = <0x180>; + }; + + mipim0-camera3-clk { + rockchip,pins = <0x01 0x1e 0x02 0x198>; + phandle = <0x398>; + }; + }; + + pwm14 { + + pwm14m2-pins { + rockchip,pins = <0x01 0x1e 0x0b 0x198>; + phandle = <0x3e1>; + }; + + pwm14m1-pins { + rockchip,pins = <0x04 0x0a 0x0b 0x198>; + phandle = <0x3e0>; + }; + + pwm14m0-pins { + rockchip,pins = <0x03 0x12 0x0b 0x198>; + phandle = <0x173>; + }; + }; + + pcfg-pull-none-drv-level-4-smt { + drive-strength = <0x04>; + bias-disable; + input-schmitt-enable; + phandle = <0x303>; + }; + + headphone { + + hp-det { + rockchip,pins = <0x02 0x13 0x00 0x198>; + phandle = <0x1dc>; + }; + }; + + npu { + + npu-pins { + rockchip,pins = <0x00 0x16 0x02 0x198>; + phandle = <0x3a0>; + }; + }; + + wireless-bluetooth { + + bt-reset-gpio { + rockchip,pins = <0x00 0x16 0x00 0x198>; + phandle = <0x1e6>; + }; + + bt-irq-gpio { + rockchip,pins = <0x00 0x00 0x00 0x198>; + phandle = <0x1e8>; + }; + + bt-wake-gpio { + rockchip,pins = <0x00 0x15 0x00 0x198>; + phandle = <0x1e7>; + }; + + uart6-gpios { + rockchip,pins = <0x01 0x02 0x00 0x198>; + phandle = <0x1e9>; + }; + }; + + pcie30x1 { + + pcie30x1-1-button-rstn { + rockchip,pins = <0x04 0x0a 0x04 0x198>; + phandle = <0x3a9>; + }; + + pcie30x1m1-pins { + rockchip,pins = <0x04 0x03 0x04 0x198 0x04 0x05 0x04 0x198 0x04 0x04 0x04 0x198 0x04 0x00 0x04 0x198 0x04 0x02 0x04 0x198 0x04 0x01 0x04 0x198>; + phandle = <0x3a6>; + }; + + pcie30x1m0-pins { + rockchip,pins = <0x00 0x10 0x0c 0x198 0x00 0x15 0x0c 0x198 0x00 0x14 0x0c 0x198 0x00 0x0d 0x0c 0x198 0x00 0x0f 0x0c 0x198 0x00 0x0e 0x0c 0x198>; + phandle = <0x3a5>; + }; + + pcie30x1-0-button-rstn { + rockchip,pins = <0x04 0x09 0x04 0x198>; + phandle = <0x3a8>; + }; + + pcie30x1m2-pins { + rockchip,pins = <0x01 0x0d 0x04 0x198 0x01 0x0c 0x04 0x198 0x01 0x0b 0x04 0x198 0x01 0x00 0x04 0x198 0x01 0x07 0x04 0x198 0x01 0x01 0x04 0x198>; + phandle = <0x3a7>; + }; + }; + + uart8 { + + uart8m0-rtsn { + rockchip,pins = <0x04 0x0a 0x0a 0x198>; + phandle = <0x443>; + }; + + uart8m1-ctsn { + rockchip,pins = <0x03 0x05 0x0a 0x198>; + phandle = <0x444>; + }; + + uart8m0-ctsn { + rockchip,pins = <0x04 0x0b 0x0a 0x198>; + phandle = <0x442>; + }; + + uart8m1-xfer { + rockchip,pins = <0x03 0x03 0x0a 0x19e 0x03 0x02 0x0a 0x19e>; + phandle = <0x167>; + }; + + uart8m0-xfer { + rockchip,pins = <0x04 0x09 0x0a 0x19e 0x04 0x08 0x0a 0x19e>; + phandle = <0x441>; + }; + + uart8-xfer { + rockchip,pins = <0x04 0x09 0x0a 0x19e>; + phandle = <0x446>; + }; + + uart8m1-rtsn { + rockchip,pins = <0x03 0x04 0x0a 0x198>; + phandle = <0x445>; + }; + }; + + spi2 { + + spi2m0-cs1 { + rockchip,pins = <0x01 0x08 0x08 0x19a>; + phandle = <0x404>; + }; + + spi2m2-cs0 { + rockchip,pins = <0x00 0x09 0x01 0x19f>; + phandle = <0x154>; + }; + + spi2m1-cs1 { + rockchip,pins = <0x04 0x08 0x08 0x19a>; + phandle = <0x407>; + }; + + spi2m2-pins { + rockchip,pins = <0x00 0x05 0x01 0x19f 0x00 0x0b 0x01 0x19f 0x00 0x06 0x01 0x19f>; + phandle = <0x155>; + }; + + spi2m1-pins { + rockchip,pins = <0x04 0x06 0x08 0x19a 0x04 0x04 0x08 0x19a 0x04 0x05 0x08 0x19a>; + phandle = <0x405>; + }; + + spi2m2-cs1 { + rockchip,pins = <0x00 0x08 0x01 0x19f>; + phandle = <0x408>; + }; + + spi2m0-cs0 { + rockchip,pins = <0x01 0x07 0x08 0x19a>; + phandle = <0x403>; + }; + + spi2m0-pins { + rockchip,pins = <0x01 0x06 0x08 0x19a 0x01 0x04 0x08 0x19a 0x01 0x05 0x08 0x19a>; + phandle = <0x402>; + }; + + spi2m1-cs0 { + rockchip,pins = <0x04 0x07 0x08 0x19a>; + phandle = <0x406>; + }; + }; + + pcfg-pull-up-drv-level-15 { + drive-strength = <0x0f>; + phandle = <0x462>; + bias-pull-up; + }; + + pcfg-pull-down-drv-level-13 { + drive-strength = <0x0d>; + bias-pull-down; + phandle = <0x469>; + }; + + pcfg-pull-up-drv-level-2 { + drive-strength = <0x02>; + phandle = <0x199>; + bias-pull-up; + }; + + i2s1 { + + i2s1m0-sdo1 { + rockchip,pins = <0x04 0x0a 0x03 0x198>; + phandle = <0x127>; + }; + + i2s1m1-sdi1 { + rockchip,pins = <0x00 0x16 0x01 0x198>; + phandle = <0x380>; + }; + + i2s1m0-sdi3 { + rockchip,pins = <0x04 0x08 0x03 0x198>; + phandle = <0x125>; + }; + + i2s1m0-mclk { + rockchip,pins = <0x04 0x00 0x03 0x19d>; + phandle = <0x37b>; + }; + + i2s1m0-sdi1 { + rockchip,pins = <0x04 0x06 0x03 0x198>; + phandle = <0x123>; + }; + + i2s1m1-sdo2 { + rockchip,pins = <0x00 0x1c 0x01 0x198>; + phandle = <0x385>; + }; + + i2s1m1-sdo0 { + rockchip,pins = <0x00 0x19 0x01 0x198>; + phandle = <0x383>; + }; + + i2s1m0-sdo2 { + rockchip,pins = <0x04 0x0b 0x03 0x198>; + phandle = <0x128>; + }; + + i2s1m1-sdi2 { + rockchip,pins = <0x00 0x17 0x01 0x198>; + phandle = <0x381>; + }; + + i2s1m0-sdo0 { + rockchip,pins = <0x04 0x09 0x03 0x198>; + phandle = <0x126>; + }; + + i2s1m1-sdi0 { + rockchip,pins = <0x00 0x15 0x01 0x198>; + phandle = <0x37f>; + }; + + i2s1m0-sdi2 { + rockchip,pins = <0x04 0x07 0x03 0x198>; + phandle = <0x124>; + }; + + i2s1m1-sclk { + rockchip,pins = <0x00 0x0e 0x01 0x19d>; + phandle = <0x37e>; + }; + + i2s1m0-sdi0 { + rockchip,pins = <0x04 0x05 0x03 0x198>; + phandle = <0x122>; + }; + + i2s1m1-sdo3 { + rockchip,pins = <0x00 0x1d 0x01 0x198>; + phandle = <0x386>; + }; + + i2s1m1-lrck { + rockchip,pins = <0x00 0x0f 0x01 0x19d>; + phandle = <0x37c>; + }; + + i2s1m0-sclk { + rockchip,pins = <0x04 0x01 0x03 0x19d>; + phandle = <0x121>; + }; + + i2s1m1-sdo1 { + rockchip,pins = <0x00 0x1a 0x01 0x198>; + phandle = <0x384>; + }; + + i2s1m0-sdo3 { + rockchip,pins = <0x04 0x0c 0x03 0x198>; + phandle = <0x129>; + }; + + i2s1m1-sdi3 { + rockchip,pins = <0x00 0x18 0x01 0x198>; + phandle = <0x382>; + }; + + i2s1m0-lrck { + rockchip,pins = <0x04 0x02 0x03 0x19d>; + phandle = <0x120>; + }; + + i2s1m1-mclk { + rockchip,pins = <0x00 0x0d 0x01 0x19d>; + phandle = <0x37d>; + }; + }; + + ddrphych2 { + + ddrphych2-pins { + rockchip,pins = <0x04 0x08 0x07 0x198 0x04 0x09 0x07 0x198 0x04 0x0a 0x07 0x198 0x04 0x0b 0x07 0x198>; + phandle = <0x31a>; + }; + }; + + pcfg-pull-none-drv-level-12 { + drive-strength = <0x0c>; + bias-disable; + phandle = <0x456>; + }; + + i2c1 { + + i2c1m2-xfer { + rockchip,pins = <0x00 0x1c 0x09 0x19d 0x00 0x1d 0x09 0x19d>; + phandle = <0x148>; + }; + + i2c1m1-xfer { + rockchip,pins = <0x00 0x08 0x02 0x19d 0x00 0x09 0x02 0x19d>; + phandle = <0x357>; + }; + + i2c1m0-xfer { + rockchip,pins = <0x00 0x0d 0x09 0x19d 0x00 0x0e 0x09 0x19d>; + phandle = <0x356>; + }; + + i2c1m4-xfer { + rockchip,pins = <0x01 0x1a 0x09 0x19d 0x01 0x1b 0x09 0x19d>; + phandle = <0x359>; + }; + + i2c1m3-xfer { + rockchip,pins = <0x02 0x1c 0x09 0x19d 0x02 0x1d 0x09 0x19d>; + phandle = <0x358>; + }; + }; + + pwm7 { + + pwm7m3-pins { + rockchip,pins = <0x04 0x16 0x0b 0x198>; + phandle = <0x3d3>; + }; + + pwm7m2-pins { + rockchip,pins = <0x01 0x13 0x0b 0x198>; + phandle = <0x3d2>; + }; + + pwm7m1-pins { + rockchip,pins = <0x04 0x1c 0x0b 0x198>; + phandle = <0x3d1>; + }; + + pwm7m0-pins { + rockchip,pins = <0x00 0x18 0x0b 0x198>; + phandle = <0x16c>; + }; + }; + + pcfg-pull-none-drv-level-5 { + drive-strength = <0x05>; + bias-disable; + phandle = <0x2f1>; + }; + + gmac0 { + + gmac0-clkinout { + rockchip,pins = <0x04 0x13 0x01 0x198>; + phandle = <0x46d>; + }; + + gmac0-miim { + rockchip,pins = <0x04 0x14 0x01 0x198 0x04 0x15 0x01 0x198>; + phandle = <0x1c1>; + }; + + gmac0-tx-bus2 { + rockchip,pins = <0x02 0x0e 0x01 0x19a 0x02 0x0f 0x01 0x19a 0x02 0x10 0x01 0x198>; + phandle = <0x1c2>; + }; + + gmac0-rgmii-bus { + rockchip,pins = <0x02 0x06 0x01 0x198 0x02 0x07 0x01 0x198 0x02 0x09 0x01 0x19a 0x02 0x0a 0x01 0x19a>; + phandle = <0x1c5>; + }; + + gmac0-ppsclk { + rockchip,pins = <0x02 0x14 0x01 0x198>; + phandle = <0x46e>; + }; + + gmac0-txer { + rockchip,pins = <0x04 0x16 0x01 0x198>; + phandle = <0x471>; + }; + + gmac0-ptp-refclk { + rockchip,pins = <0x02 0x0c 0x01 0x198>; + phandle = <0x470>; + }; + + gmac0-rx-bus2 { + rockchip,pins = <0x02 0x11 0x01 0x198 0x02 0x12 0x01 0x198 0x04 0x12 0x01 0x198>; + phandle = <0x1c3>; + }; + + gmac0-rgmii-clk { + rockchip,pins = <0x02 0x08 0x01 0x198 0x02 0x0b 0x01 0x198>; + phandle = <0x1c4>; + }; + + gmac0-ppstring { + rockchip,pins = <0x02 0x0d 0x01 0x198>; + phandle = <0x46f>; + }; + }; + + pwm12 { + + pwm12m1-pins { + rockchip,pins = <0x04 0x0d 0x0b 0x198>; + phandle = <0x3dd>; + }; + + pwm12m0-pins { + rockchip,pins = <0x03 0x0d 0x0b 0x198>; + phandle = <0x171>; + }; + }; + + usb-typec { + + usbc0-int { + rockchip,pins = <0x00 0x1b 0x00 0x198>; + phandle = <0x17b>; + }; + + usb-5v-ctrl { + rockchip,pins = <0x01 0x03 0x00 0x198>; + phandle = <0x1ef>; + }; + }; + + uart6 { + + uart6m1-ctsn { + rockchip,pins = <0x01 0x03 0x0a 0x198>; + phandle = <0x436>; + }; + + uart6m2-xfer { + rockchip,pins = <0x01 0x19 0x0a 0x19e 0x01 0x18 0x0a 0x19e>; + phandle = <0x437>; + }; + + uart6m0-ctsn { + rockchip,pins = <0x02 0x09 0x0a 0x198>; + phandle = <0x439>; + }; + + uart6m1-xfer { + rockchip,pins = <0x01 0x00 0x0a 0x19e 0x01 0x01 0x0a 0x19e>; + phandle = <0x165>; + }; + + uart6m0-xfer { + rockchip,pins = <0x02 0x06 0x0a 0x19e 0x02 0x07 0x0a 0x19e>; + phandle = <0x438>; + }; + + uart6m1-rtsn { + rockchip,pins = <0x01 0x02 0x0a 0x198>; + phandle = <0x1e5>; + }; + + uart6m0-rtsn { + rockchip,pins = <0x02 0x08 0x0a 0x198>; + phandle = <0x43a>; + }; + }; + + pcfg-pull-down-drv-level-8 { + drive-strength = <0x08>; + bias-pull-down; + phandle = <0x464>; + }; + + gpu { + + gpu-pins { + rockchip,pins = <0x00 0x15 0x02 0x198>; + phandle = <0x333>; + }; + }; + + spi0 { + + spi0m2-cs1 { + rockchip,pins = <0x01 0x0d 0x08 0x19a>; + phandle = <0x3f8>; + }; + + spi0m0-cs0 { + rockchip,pins = <0x00 0x19 0x08 0x19a>; + phandle = <0x14e>; + }; + + spi0m3-pins { + rockchip,pins = <0x03 0x1b 0x08 0x19a 0x03 0x19 0x08 0x19a 0x03 0x1a 0x08 0x19a>; + phandle = <0x3f9>; + }; + + spi0m3-cs1 { + rockchip,pins = <0x03 0x1d 0x08 0x19a>; + phandle = <0x3fb>; + }; + + spi0m2-pins { + rockchip,pins = <0x01 0x0b 0x08 0x19a 0x01 0x09 0x08 0x19a 0x01 0x0a 0x08 0x19a>; + phandle = <0x3f6>; + }; + + spi0m1-cs0 { + rockchip,pins = <0x04 0x0a 0x08 0x19a>; + phandle = <0x3f4>; + }; + + spi0m1-pins { + rockchip,pins = <0x04 0x02 0x08 0x19a 0x04 0x00 0x08 0x19a 0x04 0x01 0x08 0x19a>; + phandle = <0x3f3>; + }; + + spi0m0-cs1 { + rockchip,pins = <0x00 0x0f 0x08 0x19a>; + phandle = <0x14f>; + }; + + spi0m2-cs0 { + rockchip,pins = <0x01 0x0c 0x08 0x19a>; + phandle = <0x3f7>; + }; + + spi0m0-pins { + rockchip,pins = <0x00 0x16 0x08 0x19a 0x00 0x17 0x08 0x19a 0x00 0x10 0x08 0x19a>; + phandle = <0x150>; + }; + + spi0m1-cs1 { + rockchip,pins = <0x04 0x09 0x08 0x19a>; + phandle = <0x3f5>; + }; + + spi0m3-cs0 { + rockchip,pins = <0x03 0x1c 0x08 0x19a>; + phandle = <0x3fa>; + }; + }; + + fspi { + + fspim0-cs1 { + rockchip,pins = <0x02 0x1f 0x02 0x199>; + phandle = <0x329>; + }; + + fspim1-pins { + rockchip,pins = <0x02 0x0b 0x03 0x199 0x02 0x0c 0x03 0x199 0x02 0x06 0x03 0x199 0x02 0x07 0x03 0x199 0x02 0x08 0x03 0x199 0x02 0x09 0x03 0x199>; + phandle = <0x32c>; + }; + + fspim0-pins { + rockchip,pins = <0x02 0x00 0x02 0x199 0x02 0x1e 0x02 0x199 0x02 0x18 0x02 0x199 0x02 0x19 0x02 0x199 0x02 0x1a 0x02 0x199 0x02 0x1b 0x02 0x199>; + phandle = <0x328>; + }; + + fspim1-cs1 { + rockchip,pins = <0x02 0x0d 0x03 0x199>; + phandle = <0x32d>; + }; + + fspim2-cs1 { + rockchip,pins = <0x03 0x15 0x02 0x199>; + phandle = <0x32b>; + }; + + fspim2-pins { + rockchip,pins = <0x03 0x05 0x05 0x199 0x03 0x14 0x02 0x199 0x03 0x00 0x05 0x199 0x03 0x01 0x05 0x199 0x03 0x02 0x05 0x199 0x03 0x03 0x05 0x199>; + phandle = <0x32a>; + }; + }; + + pcfg-pull-up-drv-level-13 { + drive-strength = <0x0d>; + phandle = <0x460>; + bias-pull-up; + }; + + clk32k { + + clk32k-out0 { + rockchip,pins = <0x00 0x0a 0x02 0x198>; + phandle = <0x315>; + }; + + clk32k-in { + rockchip,pins = <0x00 0x0a 0x01 0x198>; + phandle = <0x314>; + }; + + clk32k-out1 { + rockchip,pins = <0x02 0x15 0x01 0x198>; + phandle = <0x316>; + }; + }; + + pcfg-pull-down-drv-level-11 { + drive-strength = <0x0b>; + bias-pull-down; + phandle = <0x467>; + }; + + pcie30phy { + + pcie30phy-pins { + rockchip,pins = <0x01 0x14 0x04 0x198 0x01 0x19 0x04 0x198>; + phandle = <0x3a4>; + }; + }; + + pcfg-pull-up-drv-level-0 { + drive-strength = <0x00>; + phandle = <0x2f3>; + bias-pull-up; + }; + + ddrphych0 { + + ddrphych0-pins { + rockchip,pins = <0x04 0x00 0x07 0x198 0x04 0x01 0x07 0x198 0x04 0x02 0x07 0x198 0x04 0x03 0x07 0x198>; + phandle = <0x318>; + }; + }; + + pcfg-pull-none-drv-level-10 { + drive-strength = <0x0a>; + bias-disable; + phandle = <0x454>; + }; + + pwm5 { + + pwm5m2-pins { + rockchip,pins = <0x04 0x14 0x0b 0x198>; + phandle = <0x3ce>; + }; + + pwm5m1-pins { + rockchip,pins = <0x00 0x16 0x0b 0x198>; + phandle = <0x16a>; + }; + + pwm5m0-pins { + rockchip,pins = <0x00 0x09 0x03 0x198>; + phandle = <0x3cd>; + }; + }; + + pcfg-pull-none-drv-level-3 { + drive-strength = <0x03>; + bias-disable; + phandle = <0x2ef>; + }; + + pwm10 { + + pwm10m2-pins { + rockchip,pins = <0x03 0x1b 0x0b 0x198>; + phandle = <0x3d9>; + }; + + pwm10m1-pins { + rockchip,pins = <0x04 0x1b 0x0b 0x198>; + phandle = <0x3d8>; + }; + + pwm10m0-pins { + rockchip,pins = <0x03 0x00 0x0b 0x198>; + phandle = <0x16f>; + }; + }; + + pcfg-pull-down-smt { + input-schmitt-enable; + bias-pull-down; + phandle = <0x2ff>; + }; + + gpio@fec50000 { + gpio-controller; + interrupts = <0x00 0x119 0x04>; + clocks = <0x02 0x83 0x02 0x84>; + compatible = "rockchip,gpio-bank"; + #interrupt-cells = <0x02>; + reg = <0x00 0xfec50000 0x00 0x100>; + phandle = <0x10d>; + #gpio-cells = <0x02>; + gpio-ranges = <0x197 0x00 0x80 0x20>; + interrupt-controller; + }; + + pcfg-pull-down { + bias-pull-down; + phandle = <0x2ec>; + }; + + uart4 { + + uart4m2-xfer { + rockchip,pins = <0x01 0x0a 0x0a 0x19e 0x01 0x0b 0x0a 0x19e>; + phandle = <0x42d>; + }; + + uart4-ctsn { + rockchip,pins = <0x01 0x17 0x0a 0x198>; + phandle = <0x42e>; + }; + + uart4m1-xfer { + rockchip,pins = <0x03 0x18 0x0a 0x19e 0x03 0x19 0x0a 0x19e>; + phandle = <0x163>; + }; + + uart4m0-xfer { + rockchip,pins = <0x01 0x1b 0x0a 0x19e 0x01 0x1a 0x0a 0x19e>; + phandle = <0x42c>; + }; + + uart4-rtsn { + rockchip,pins = <0x01 0x15 0x0a 0x198>; + phandle = <0x42f>; + }; + }; + + spdif0 { + + spdif0m0-tx { + rockchip,pins = <0x01 0x0e 0x03 0x198>; + phandle = <0x142>; + }; + + spdif0m1-tx { + rockchip,pins = <0x04 0x0c 0x06 0x198>; + phandle = <0x3f0>; + }; + }; + + pcfg-pull-down-drv-level-6 { + drive-strength = <0x06>; + bias-pull-down; + phandle = <0x2fd>; + }; + + pcfg-pull-up-drv-level-9 { + drive-strength = <0x09>; + phandle = <0x45c>; + bias-pull-up; + }; + + pcfg-pull-none-drv-level-1-smt { + drive-strength = <0x01>; + bias-disable; + input-schmitt-enable; + phandle = <0x19c>; + }; + + pcfg-pull-up-drv-level-11 { + drive-strength = <0x0b>; + phandle = <0x45e>; + bias-pull-up; + }; + + mcu { + + mcum1-pins { + rockchip,pins = <0x03 0x1c 0x06 0x198 0x03 0x1d 0x06 0x198>; + phandle = <0x394>; + }; + + mcum0-pins { + rockchip,pins = <0x04 0x1c 0x05 0x198 0x04 0x1d 0x05 0x198>; + phandle = <0x393>; + }; + }; + + i2c8 { + + i2c8m4-xfer { + rockchip,pins = <0x03 0x12 0x09 0x19d 0x03 0x13 0x09 0x19d>; + phandle = <0x373>; + }; + + i2c8m3-xfer { + rockchip,pins = <0x04 0x10 0x09 0x19d 0x04 0x11 0x09 0x19d>; + phandle = <0x372>; + }; + + i2c8m2-xfer { + rockchip,pins = <0x01 0x1e 0x09 0x19d 0x01 0x1f 0x09 0x19d>; + phandle = <0x371>; + }; + + i2c8m1-xfer { + rockchip,pins = <0x02 0x08 0x09 0x19d 0x02 0x09 0x09 0x19d>; + phandle = <0x374>; + }; + + i2c8m0-xfer { + rockchip,pins = <0x04 0x1a 0x09 0x19d 0x04 0x1b 0x09 0x19d>; + phandle = <0x186>; + }; + }; + + dp0 { + + dp0m0-pins { + rockchip,pins = <0x04 0x0c 0x05 0x198>; + phandle = <0x31c>; + }; + + dp0m2-pins { + rockchip,pins = <0x01 0x00 0x05 0x198>; + phandle = <0x31e>; + }; + + dp0m1-pins { + rockchip,pins = <0x00 0x14 0x0a 0x198>; + phandle = <0x31d>; + }; + }; + + pcfg-pull-none-drv-level-5-smt { + drive-strength = <0x05>; + bias-disable; + input-schmitt-enable; + phandle = <0x19b>; + }; + + pwm3 { + + pwm3m2-pins { + rockchip,pins = <0x01 0x12 0x0b 0x198>; + phandle = <0x3ca>; + }; + + pwm3m1-pins { + rockchip,pins = <0x03 0x0a 0x0b 0x198>; + phandle = <0x3c9>; + }; + + pwm3m0-pins { + rockchip,pins = <0x00 0x1c 0x03 0x198>; + phandle = <0x81>; + }; + + pwm3m3-pins { + rockchip,pins = <0x01 0x07 0x0b 0x198>; + phandle = <0x3cb>; + }; + }; + + pcfg-pull-none-drv-level-1 { + drive-strength = <0x01>; + bias-disable; + phandle = <0x2ee>; + }; + + sata2 { + + sata2m1-pins { + rockchip,pins = <0x01 0x0f 0x06 0x198>; + phandle = <0x3ed>; + }; + + sata2m0-pins { + rockchip,pins = <0x04 0x09 0x06 0x198>; + phandle = <0x3ec>; + }; + }; + + cam { + + cam0-or-cam1-switch-pin { + rockchip,pins = <0x03 0x11 0x00 0x198>; + phandle = <0x1f0>; + }; + }; + + uart2 { + + uart2-rtsn { + rockchip,pins = <0x03 0x0b 0x0a 0x198>; + phandle = <0x427>; + }; + + uart2m1-xfer { + rockchip,pins = <0x04 0x19 0x0a 0x19e 0x04 0x18 0x0a 0x19e>; + phandle = <0x161>; + }; + + uart2m0-xfer { + rockchip,pins = <0x00 0x0e 0x0a 0x19e 0x00 0x0d 0x0a 0x19e>; + phandle = <0x1ce>; + }; + + uart2-ctsn { + rockchip,pins = <0x03 0x0c 0x0a 0x198>; + phandle = <0x426>; + }; + + uart2m2-xfer { + rockchip,pins = <0x03 0x0a 0x0a 0x19e 0x03 0x09 0x0a 0x19e>; + phandle = <0x425>; + }; + }; + + pcfg-pull-down-drv-level-4 { + drive-strength = <0x04>; + bias-pull-down; + phandle = <0x2fb>; + }; + + pcfg-pull-up-drv-level-7 { + drive-strength = <0x07>; + phandle = <0x45a>; + bias-pull-up; + }; + + i2c6 { + + i2c6m4-xfer { + rockchip,pins = <0x03 0x01 0x09 0x19d 0x03 0x00 0x09 0x19d>; + phandle = <0x36c>; + }; + + i2c6m3-xfer { + rockchip,pins = <0x04 0x09 0x09 0x19d 0x04 0x08 0x09 0x19d>; + phandle = <0x36b>; + }; + + i2c6m2-xfer { + rockchip,pins = <0x02 0x13 0x09 0x19d 0x02 0x12 0x09 0x19d>; + phandle = <0x36d>; + }; + + i2c6m1-xfer { + rockchip,pins = <0x01 0x13 0x09 0x19d 0x01 0x12 0x09 0x19d>; + phandle = <0x36a>; + }; + + i2c6m0-xfer { + rockchip,pins = <0x00 0x18 0x09 0x19d 0x00 0x17 0x09 0x19d>; + phandle = <0x178>; + }; + }; + + pdm1 { + + pdm1m1-sdi3 { + rockchip,pins = <0x01 0x0a 0x02 0x198>; + phandle = <0x3c1>; + }; + + pdm1m0-clk { + rockchip,pins = <0x04 0x1d 0x02 0x198>; + phandle = <0x140>; + }; + + pdm1m1-sdi1 { + rockchip,pins = <0x01 0x08 0x02 0x198>; + phandle = <0x3bf>; + }; + + pdm1m0-sdi3 { + rockchip,pins = <0x04 0x18 0x02 0x198>; + phandle = <0x13e>; + }; + + pdm1m0-sdi1 { + rockchip,pins = <0x04 0x1a 0x02 0x198>; + phandle = <0x13c>; + }; + + pdm1m1-clk { + rockchip,pins = <0x01 0x0c 0x02 0x198>; + phandle = <0x3bb>; + }; + + pdm1m1-clk1 { + rockchip,pins = <0x01 0x0b 0x02 0x198>; + phandle = <0x3bc>; + }; + + pdm1m1-idle { + rockchip,pins = <0x01 0x0c 0x00 0x198 0x01 0x0b 0x00 0x198>; + phandle = <0x3bd>; + }; + + pdm1m0-clk1 { + rockchip,pins = <0x04 0x1c 0x02 0x198>; + phandle = <0x141>; + }; + + pdm1m1-sdi2 { + rockchip,pins = <0x01 0x09 0x02 0x198>; + phandle = <0x3c0>; + }; + + pdm1m0-idle { + rockchip,pins = <0x04 0x1d 0x00 0x198 0x04 0x1c 0x00 0x198>; + phandle = <0x13f>; + }; + + pdm1m1-sdi0 { + rockchip,pins = <0x01 0x07 0x02 0x198>; + phandle = <0x3be>; + }; + + pdm1m0-sdi2 { + rockchip,pins = <0x04 0x19 0x02 0x198>; + phandle = <0x13d>; + }; + + pdm1m0-sdi0 { + rockchip,pins = <0x04 0x1b 0x02 0x198>; + phandle = <0x13b>; + }; + }; + + cpu { + + cpu-pins { + rockchip,pins = <0x00 0x19 0x02 0x198 0x00 0x1d 0x02 0x198>; + phandle = <0x317>; + }; + }; + + gpio-func { + + tsadc-gpio-func { + rockchip,pins = <0x00 0x01 0x00 0x198>; + phandle = <0x175>; + }; + }; + + pcie20x1 { + + pcie20x1-2-button-rstn { + rockchip,pins = <0x04 0x0b 0x04 0x198>; + phandle = <0x3a3>; + }; + + pcie20x1m1-pins { + rockchip,pins = <0x04 0x0f 0x04 0x198 0x04 0x11 0x04 0x198 0x04 0x10 0x04 0x198>; + phandle = <0x3a2>; + }; + + pcie20x1m0-pins { + rockchip,pins = <0x03 0x17 0x04 0x198 0x03 0x19 0x04 0x198 0x03 0x18 0x04 0x198>; + phandle = <0x3a1>; + }; + }; + + leds { + + leds-gpio { + rockchip,pins = <0x00 0x15 0x00 0x198>; + phandle = <0x1ee>; + }; + }; + + pwm1 { + + pwm1m1-pins { + rockchip,pins = <0x01 0x1b 0x0b 0x198>; + phandle = <0x3c5>; + }; + + pwm1m0-pins { + rockchip,pins = <0x00 0x10 0x03 0x198>; + phandle = <0x7f>; + }; + + pwm1m2-pins { + rockchip,pins = <0x01 0x03 0x0b 0x198>; + phandle = <0x3c6>; + }; + }; + + sata0 { + + sata0m1-pins { + rockchip,pins = <0x01 0x0b 0x06 0x198>; + phandle = <0x3e9>; + }; + + sata0m0-pins { + rockchip,pins = <0x04 0x0e 0x06 0x198>; + phandle = <0x3e8>; + }; + }; + + refclk { + + refclk-pins { + rockchip,pins = <0x00 0x00 0x01 0x198>; + phandle = <0x3e5>; + }; + }; + + pcie30x4 { + + pcie30x4m2-pins { + rockchip,pins = <0x03 0x14 0x04 0x198 0x03 0x16 0x04 0x198 0x03 0x15 0x04 0x198>; + phandle = <0x3b1>; + }; + + pcie30x4m1-pins { + rockchip,pins = <0x04 0x0c 0x04 0x198 0x04 0x0e 0x04 0x198 0x04 0x0d 0x04 0x198>; + phandle = <0x3b0>; + }; + + pcie30x4-button-rstn { + rockchip,pins = <0x03 0x1d 0x04 0x198>; + phandle = <0x3b3>; + }; + + pcie30x4m0-pins { + rockchip,pins = <0x00 0x16 0x0c 0x198 0x00 0x18 0x0c 0x198 0x00 0x17 0x0c 0x198>; + phandle = <0x3af>; + }; + + pcie30x4m3-pins { + rockchip,pins = <0x01 0x08 0x04 0x198 0x01 0x0a 0x04 0x198 0x01 0x09 0x04 0x198>; + phandle = <0x3b2>; + }; + }; + + can2 { + + can2m1-pins { + rockchip,pins = <0x00 0x1c 0x0a 0x198 0x00 0x1d 0x0a 0x198>; + phandle = <0x30f>; + }; + + can2m0-pins { + rockchip,pins = <0x03 0x14 0x09 0x198 0x03 0x15 0x09 0x198>; + phandle = <0x147>; + }; + }; + + litcpu { + + litcpu-pins { + rockchip,pins = <0x00 0x1b 0x01 0x198>; + phandle = <0x392>; + }; + }; + + sata { + + sata-reset { + rockchip,pins = <0x04 0x11 0x00 0x198>; + phandle = <0x3e7>; + }; + + sata-pins { + rockchip,pins = <0x00 0x16 0x0d 0x198 0x00 0x1c 0x0d 0x198 0x00 0x1d 0x0d 0x198>; + phandle = <0x3e6>; + }; + }; + + tsadc { + + tsadc-shut { + rockchip,pins = <0x00 0x01 0x02 0x198>; + phandle = <0x176>; + }; + + tsadc-shut-org { + rockchip,pins = <0x00 0x01 0x01 0x198>; + phandle = <0x418>; + }; + + tsadcm1-shut { + rockchip,pins = <0x00 0x02 0x02 0x198>; + phandle = <0x417>; + }; + }; + + uart0 { + + uart0m1-xfer { + rockchip,pins = <0x00 0x08 0x04 0x19e 0x00 0x09 0x04 0x19e>; + phandle = <0x7d>; + }; + + uart0m0-xfer { + rockchip,pins = <0x00 0x14 0x04 0x19e 0x00 0x15 0x04 0x19e>; + phandle = <0x419>; + }; + + uart0-rtsn { + rockchip,pins = <0x00 0x16 0x04 0x198>; + phandle = <0x41c>; + }; + + uart0-ctsn { + rockchip,pins = <0x00 0x19 0x04 0x198>; + phandle = <0x41b>; + }; + + uart0m2-xfer { + rockchip,pins = <0x04 0x04 0x0a 0x19e 0x04 0x03 0x0a 0x19e>; + phandle = <0x41a>; + }; + }; + + pcfg-pull-down-drv-level-2 { + drive-strength = <0x02>; + bias-pull-down; + phandle = <0x2f9>; + }; + + pcfg-pull-up-drv-level-5 { + drive-strength = <0x05>; + phandle = <0x2f6>; + bias-pull-up; + }; + + gpio@fec20000 { + gpio-controller; + interrupts = <0x00 0x116 0x04>; + clocks = <0x02 0x7d 0x02 0x7e>; + compatible = "rockchip,gpio-bank"; + #interrupt-cells = <0x02>; + reg = <0x00 0xfec20000 0x00 0x100>; + phandle = <0xfe>; + #gpio-cells = <0x02>; + gpio-ranges = <0x197 0x00 0x20 0x20>; + interrupt-controller; + }; + + pcfg-pull-none-drv-level-15 { + drive-strength = <0x0f>; + bias-disable; + phandle = <0x459>; + }; + + eth1 { + + eth1-pins { + rockchip,pins = <0x03 0x06 0x01 0x198>; + phandle = <0x327>; + }; + }; + + i2c4 { + + i2c4m3-xfer { + rockchip,pins = <0x01 0x03 0x09 0x19d 0x01 0x02 0x09 0x19d>; + phandle = <0x364>; + }; + + i2c4m2-xfer { + rockchip,pins = <0x00 0x15 0x09 0x19d 0x00 0x14 0x09 0x19d>; + phandle = <0x363>; + }; + + i2c4m1-xfer { + rockchip,pins = <0x02 0x0d 0x09 0x19d 0x02 0x0c 0x09 0x19d>; + phandle = <0x14b>; + }; + + i2c4m0-xfer { + rockchip,pins = <0x03 0x06 0x09 0x19d 0x03 0x05 0x09 0x19d>; + phandle = <0x362>; + }; + + i2c4m4-xfer { + rockchip,pins = <0x01 0x17 0x09 0x19d 0x01 0x16 0x09 0x19d>; + phandle = <0x365>; + }; + }; + + emmc { + + emmc-data-strobe { + rockchip,pins = <0x02 0x02 0x01 0x198>; + phandle = <0x326>; + }; + + emmc-clk { + rockchip,pins = <0x02 0x01 0x01 0x199>; + phandle = <0x324>; + }; + + emmc-bus8 { + rockchip,pins = <0x02 0x18 0x01 0x199 0x02 0x19 0x01 0x199 0x02 0x1a 0x01 0x199 0x02 0x1b 0x01 0x199 0x02 0x1c 0x01 0x199 0x02 0x1d 0x01 0x199 0x02 0x1e 0x01 0x199 0x02 0x1f 0x01 0x199>; + phandle = <0x323>; + }; + + emmc-cmd { + rockchip,pins = <0x02 0x00 0x01 0x199>; + phandle = <0x325>; + }; + + emmc-rstnout { + rockchip,pins = <0x02 0x03 0x01 0x198>; + phandle = <0x322>; + }; + }; + + pcfg-pull-none-drv-level-8 { + drive-strength = <0x08>; + bias-disable; + phandle = <0x452>; + }; + + pwm15 { + + pwm15m0-pins { + rockchip,pins = <0x03 0x13 0x0b 0x198>; + phandle = <0x174>; + }; + + pwm15m3-pins { + rockchip,pins = <0x01 0x1f 0x0b 0x198>; + phandle = <0x3e4>; + }; + + pwm15m2-pins { + rockchip,pins = <0x01 0x16 0x0b 0x198>; + phandle = <0x3e3>; + }; + + pwm15m1-pins { + rockchip,pins = <0x04 0x0b 0x0b 0x198>; + phandle = <0x3e2>; + }; + }; + + pcie30x2 { + + pcie30x2m2-pins { + rockchip,pins = <0x03 0x1a 0x04 0x198 0x03 0x1c 0x04 0x198 0x03 0x1b 0x04 0x198>; + phandle = <0x3ac>; + }; + + pcie30x2m1-pins { + rockchip,pins = <0x04 0x06 0x04 0x198 0x04 0x08 0x04 0x198 0x04 0x07 0x04 0x198>; + phandle = <0x3ab>; + }; + + pcie30x2-button-rstn { + rockchip,pins = <0x03 0x11 0x04 0x198>; + phandle = <0x3ae>; + }; + + pcie30x2m0-pins { + rockchip,pins = <0x00 0x19 0x0c 0x198 0x00 0x1c 0x0c 0x198 0x00 0x1a 0x0c 0x198>; + phandle = <0x3aa>; + }; + + pcie30x2m3-pins { + rockchip,pins = <0x01 0x1f 0x04 0x198 0x01 0x0f 0x04 0x198 0x01 0x0e 0x04 0x198>; + phandle = <0x3ad>; + }; + }; + + can0 { + + can0m0-pins { + rockchip,pins = <0x00 0x10 0x0b 0x198 0x00 0x0f 0x0b 0x198>; + phandle = <0x145>; + }; + + can0m1-pins { + rockchip,pins = <0x04 0x1d 0x09 0x198 0x04 0x1c 0x09 0x198>; + phandle = <0x30d>; + }; + }; + + pcfg-output-high { + output-high; + phandle = <0x305>; + }; + + uart9 { + + uart9m0-rtsn { + rockchip,pins = <0x04 0x14 0x0a 0x198>; + phandle = <0x44e>; + }; + + uart9m2-ctsn { + rockchip,pins = <0x03 0x1b 0x0a 0x198>; + phandle = <0x44a>; + }; + + uart9m1-ctsn { + rockchip,pins = <0x04 0x01 0x0a 0x198>; + phandle = <0x447>; + }; + + uart9m2-xfer { + rockchip,pins = <0x03 0x1c 0x0a 0x19e 0x03 0x1d 0x0a 0x19e>; + phandle = <0x449>; + }; + + uart9m0-ctsn { + rockchip,pins = <0x04 0x15 0x0a 0x198>; + phandle = <0x44d>; + }; + + uart9m1-xfer { + rockchip,pins = <0x04 0x0d 0x0a 0x19e 0x04 0x0c 0x0a 0x19e>; + phandle = <0x168>; + }; + + uart9m0-xfer { + rockchip,pins = <0x02 0x14 0x0a 0x19e 0x02 0x12 0x0a 0x19e>; + phandle = <0x44c>; + }; + + uart9m2-rtsn { + rockchip,pins = <0x03 0x1a 0x0a 0x198>; + phandle = <0x44b>; + }; + + uart9m1-rtsn { + rockchip,pins = <0x04 0x00 0x0a 0x198>; + phandle = <0x448>; + }; + }; + + pcfg-pull-none-drv-level-2-smt { + drive-strength = <0x02>; + bias-disable; + input-schmitt-enable; + phandle = <0x301>; + }; + + pcfg-pull-up { + phandle = <0x19e>; + bias-pull-up; + }; + + spi3 { + + spi3m3-cs1 { + rockchip,pins = <0x03 0x15 0x08 0x19a>; + phandle = <0x40e>; + }; + + spi3m1-cs0 { + rockchip,pins = <0x04 0x10 0x08 0x19a>; + phandle = <0x15d>; + }; + + spi3m3-pins { + rockchip,pins = <0x03 0x18 0x08 0x19a 0x03 0x16 0x08 0x19a 0x03 0x17 0x08 0x19a>; + phandle = <0x40c>; + }; + + spi3m0-cs1 { + rockchip,pins = <0x04 0x13 0x08 0x19f>; + phandle = <0x411>; + }; + + spi3m2-cs0 { + rockchip,pins = <0x00 0x1c 0x08 0x19a>; + phandle = <0x40a>; + }; + + spi3m2-pins { + rockchip,pins = <0x00 0x1b 0x08 0x19a 0x00 0x18 0x08 0x19a 0x00 0x1a 0x08 0x19a>; + phandle = <0x409>; + }; + + spi3m1-cs1 { + rockchip,pins = <0x04 0x11 0x08 0x19a>; + phandle = <0x15e>; + }; + + spi3m1-pins { + rockchip,pins = <0x04 0x0f 0x08 0x19a 0x04 0x0d 0x08 0x19a 0x04 0x0e 0x08 0x19a>; + phandle = <0x15f>; + }; + + spi3m3-cs0 { + rockchip,pins = <0x03 0x14 0x08 0x19a>; + phandle = <0x40d>; + }; + + spi3m0-pins { + rockchip,pins = <0x04 0x16 0x08 0x19f 0x04 0x14 0x08 0x19f 0x04 0x15 0x08 0x19f>; + phandle = <0x40f>; + }; + + spi3m2-cs1 { + rockchip,pins = <0x00 0x1d 0x08 0x19a>; + phandle = <0x40b>; + }; + + spi3m0-cs0 { + rockchip,pins = <0x04 0x12 0x08 0x19f>; + phandle = <0x410>; + }; + }; + + pcfg-pull-down-drv-level-14 { + drive-strength = <0x0e>; + bias-pull-down; + phandle = <0x46a>; + }; + + bt656 { + + bt656-pins { + rockchip,pins = <0x04 0x08 0x02 0x1a0 0x04 0x00 0x02 0x1a0 0x04 0x01 0x02 0x1a0 0x04 0x02 0x02 0x1a0 0x04 0x03 0x02 0x1a0 0x04 0x04 0x02 0x1a0 0x04 0x05 0x02 0x1a0 0x04 0x06 0x02 0x1a0 0x04 0x07 0x02 0x1a0>; + phandle = <0x450>; + }; + }; + + pcfg-pull-down-drv-level-0 { + drive-strength = <0x00>; + bias-pull-down; + phandle = <0x2f7>; + }; + + pcfg-pull-up-drv-level-3 { + drive-strength = <0x03>; + phandle = <0x2f4>; + bias-pull-up; + }; + + i2s2 { + + i2s2m0-lrck { + rockchip,pins = <0x02 0x10 0x02 0x19d>; + phandle = <0x389>; + }; + + i2s2m1-mclk { + rockchip,pins = <0x03 0x0c 0x03 0x19d>; + phandle = <0x387>; + }; + + i2s2m0-mclk { + rockchip,pins = <0x02 0x0e 0x02 0x19d>; + phandle = <0x38a>; + }; + + i2s2m1-sdo { + rockchip,pins = <0x03 0x0b 0x03 0x198>; + phandle = <0x12b>; + }; + + i2s2m0-sdi { + rockchip,pins = <0x02 0x13 0x02 0x198>; + phandle = <0x38c>; + }; + + i2s2m1-idle { + rockchip,pins = <0x03 0x0e 0x00 0x198 0x03 0x0d 0x00 0x198>; + phandle = <0x12c>; + }; + + i2s2m1-sdi { + rockchip,pins = <0x03 0x0a 0x03 0x198>; + phandle = <0x12a>; + }; + + i2s2m0-idle { + rockchip,pins = <0x02 0x10 0x00 0x198 0x02 0x0f 0x00 0x198>; + phandle = <0x388>; + }; + + i2s2m1-sclk { + rockchip,pins = <0x03 0x0d 0x03 0x19d>; + phandle = <0x12e>; + }; + + i2s2m1-lrck { + rockchip,pins = <0x03 0x0e 0x03 0x19d>; + phandle = <0x12d>; + }; + + i2s2m0-sclk { + rockchip,pins = <0x02 0x0f 0x02 0x19d>; + phandle = <0x38b>; + }; + + i2s2m0-sdo { + rockchip,pins = <0x04 0x13 0x02 0x198>; + phandle = <0x38d>; + }; + }; + + pcfg-pull-none-drv-level-6-smt { + drive-strength = <0x06>; + bias-disable; + input-schmitt-enable; + phandle = <0x304>; + }; + + ddrphych3 { + + ddrphych3-pins { + rockchip,pins = <0x04 0x0c 0x07 0x198 0x04 0x0d 0x07 0x198 0x04 0x0e 0x07 0x198 0x04 0x0f 0x07 0x198>; + phandle = <0x31b>; + }; + }; + + pcfg-pull-none-drv-level-13 { + drive-strength = <0x0d>; + bias-disable; + phandle = <0x457>; + }; + + i2c2 { + + i2c2m2-xfer { + rockchip,pins = <0x02 0x03 0x09 0x19d 0x02 0x02 0x09 0x19d>; + phandle = <0x35a>; + }; + + i2c2m1-xfer { + rockchip,pins = <0x02 0x11 0x09 0x19d 0x02 0x10 0x09 0x19d>; + phandle = <0x35d>; + }; + + i2c2m0-xfer { + rockchip,pins = <0x00 0x0f 0x09 0x19d 0x00 0x10 0x09 0x19d>; + phandle = <0x149>; + }; + + i2c2m4-xfer { + rockchip,pins = <0x01 0x01 0x09 0x19d 0x01 0x00 0x09 0x19d>; + phandle = <0x35c>; + }; + + i2c2m3-xfer { + rockchip,pins = <0x01 0x15 0x09 0x19d 0x01 0x14 0x09 0x19d>; + phandle = <0x35b>; + }; + }; + + auddsm { + + auddsm-pins { + rockchip,pins = <0x03 0x01 0x04 0x198 0x03 0x02 0x04 0x198 0x03 0x03 0x04 0x198 0x03 0x04 0x04 0x198>; + phandle = <0x144>; + }; + }; + + pwm8 { + + pwm8m2-pins { + rockchip,pins = <0x03 0x18 0x0b 0x198>; + phandle = <0x3d5>; + }; + + pwm8m1-pins { + rockchip,pins = <0x04 0x18 0x0b 0x198>; + phandle = <0x3d4>; + }; + + pwm8m0-pins { + rockchip,pins = <0x03 0x07 0x0b 0x198>; + phandle = <0x16d>; + }; + }; + + pmic { + + pmic-pins { + rockchip,pins = <0x00 0x07 0x00 0x19e 0x00 0x02 0x01 0x198 0x00 0x03 0x01 0x198 0x00 0x11 0x01 0x198 0x00 0x12 0x01 0x198 0x00 0x13 0x01 0x198 0x00 0x1e 0x01 0x198>; + phandle = <0x156>; + }; + }; + + pcfg-pull-none-drv-level-6 { + drive-strength = <0x06>; + bias-disable; + phandle = <0x2f2>; + }; + + jtag { + + jtagm2-pins { + rockchip,pins = <0x00 0x0d 0x02 0x198 0x00 0x0e 0x02 0x198>; + phandle = <0x391>; + }; + + jtagm1-pins { + rockchip,pins = <0x04 0x18 0x05 0x198 0x04 0x19 0x05 0x198>; + phandle = <0x390>; + }; + + jtagm0-pins { + rockchip,pins = <0x04 0x1a 0x05 0x198 0x04 0x1b 0x05 0x198>; + phandle = <0x38f>; + }; + }; + + gpio@fd8a0000 { + gpio-controller; + interrupts = <0x00 0x115 0x04>; + clocks = <0x02 0x284 0x02 0x285>; + compatible = "rockchip,gpio-bank"; + #interrupt-cells = <0x02>; + reg = <0x00 0xfd8a0000 0x00 0x100>; + phandle = <0x7b>; + #gpio-cells = <0x02>; + gpio-ranges = <0x197 0x00 0x00 0x20>; + interrupt-controller; + }; + + gmac1 { + + gmac1-rgmii-clk { + rockchip,pins = <0x03 0x05 0x01 0x198 0x03 0x04 0x01 0x198>; + phandle = <0x111>; + }; + + gmac1-rx-bus2 { + rockchip,pins = <0x03 0x07 0x01 0x198 0x03 0x08 0x01 0x198 0x03 0x09 0x01 0x198>; + phandle = <0x110>; + }; + + gmac1-txer { + rockchip,pins = <0x03 0x0a 0x01 0x198>; + phandle = <0x332>; + }; + + gmac1-clkinout { + rockchip,pins = <0x03 0x0e 0x01 0x198>; + phandle = <0x32e>; + }; + + gmac1-ptp-ref-clk { + rockchip,pins = <0x03 0x0f 0x01 0x198>; + phandle = <0x331>; + }; + + gmac1-ppsclk { + rockchip,pins = <0x03 0x11 0x01 0x198>; + phandle = <0x32f>; + }; + + gmac1-ppstrig { + rockchip,pins = <0x03 0x10 0x01 0x198>; + phandle = <0x330>; + }; + + gmac1-rgmii-bus { + rockchip,pins = <0x03 0x02 0x01 0x198 0x03 0x03 0x01 0x198 0x03 0x00 0x01 0x19a 0x03 0x01 0x01 0x19a>; + phandle = <0x112>; + }; + + gmac1-tx-bus2 { + rockchip,pins = <0x03 0x0b 0x01 0x19a 0x03 0x0c 0x01 0x19a 0x03 0x0d 0x01 0x198>; + phandle = <0x10f>; + }; + + gmac1-miim { + rockchip,pins = <0x03 0x12 0x01 0x198 0x03 0x13 0x01 0x198>; + phandle = <0x10e>; + }; + }; + + pcfg-pull-none { + bias-disable; + phandle = <0x198>; + }; + + pwm13 { + + pwm13m2-pins { + rockchip,pins = <0x01 0x0f 0x0b 0x198>; + phandle = <0x3df>; + }; + + pwm13m1-pins { + rockchip,pins = <0x04 0x0e 0x0b 0x198>; + phandle = <0x3de>; + }; + + pwm13m0-pins { + rockchip,pins = <0x03 0x0e 0x0b 0x198>; + phandle = <0x172>; + }; + }; + + pcfg-output-high-pull-down { + output-high; + bias-pull-down; + phandle = <0x307>; + }; + + uart7 { + + uart7m1-ctsn { + rockchip,pins = <0x03 0x13 0x0a 0x198>; + phandle = <0x43b>; + }; + + uart7m2-xfer { + rockchip,pins = <0x01 0x0c 0x0a 0x19e 0x01 0x0d 0x0a 0x19e>; + phandle = <0x43d>; + }; + + uart7m0-ctsn { + rockchip,pins = <0x04 0x16 0x0a 0x198>; + phandle = <0x43f>; + }; + + uart7m1-xfer { + rockchip,pins = <0x03 0x11 0x0a 0x19e 0x03 0x10 0x0a 0x19e>; + phandle = <0x166>; + }; + + uart7m0-xfer { + rockchip,pins = <0x02 0x0c 0x0a 0x19e 0x02 0x0d 0x0a 0x19e>; + phandle = <0x43e>; + }; + + uart7m1-rtsn { + rockchip,pins = <0x03 0x12 0x0a 0x198>; + phandle = <0x43c>; + }; + + uart7m0-rtsn { + rockchip,pins = <0x04 0x12 0x0a 0x198>; + phandle = <0x440>; + }; + }; + + pcfg-pull-down-drv-level-9 { + drive-strength = <0x09>; + bias-pull-down; + phandle = <0x465>; + }; + + spi1 { + + spi1m1-cs1 { + rockchip,pins = <0x03 0x13 0x08 0x19a>; + phandle = <0x152>; + }; + + spi1m2-cs1 { + rockchip,pins = <0x01 0x1d 0x08 0x19a>; + phandle = <0x3fe>; + }; + + spi1m0-cs0 { + rockchip,pins = <0x02 0x13 0x08 0x19f>; + phandle = <0x400>; + }; + + spi1m2-pins { + rockchip,pins = <0x01 0x1a 0x08 0x19a 0x01 0x18 0x08 0x19a 0x01 0x19 0x08 0x19a>; + phandle = <0x3fc>; + }; + + spi1m1-pins { + rockchip,pins = <0x03 0x11 0x08 0x19a 0x03 0x10 0x08 0x19a 0x03 0x0f 0x08 0x19a>; + phandle = <0x153>; + }; + + spi1m1-cs0 { + rockchip,pins = <0x03 0x12 0x08 0x19a>; + phandle = <0x151>; + }; + + spi1m0-pins { + rockchip,pins = <0x02 0x10 0x08 0x19f 0x02 0x11 0x08 0x19f 0x02 0x12 0x08 0x19f>; + phandle = <0x3ff>; + }; + + spi1m0-cs1 { + rockchip,pins = <0x02 0x14 0x08 0x19f>; + phandle = <0x401>; + }; + + spi1m2-cs0 { + rockchip,pins = <0x01 0x1b 0x08 0x19a>; + phandle = <0x3fd>; + }; + }; + + pcfg-pull-up-drv-level-14 { + drive-strength = <0x0e>; + phandle = <0x461>; + bias-pull-up; + }; + + pcfg-output-low-pull-down { + bias-pull-down; + phandle = <0x30b>; + output-low; + }; + + pcfg-pull-down-drv-level-12 { + drive-strength = <0x0c>; + bias-pull-down; + phandle = <0x468>; + }; + + pcfg-pull-up-drv-level-1 { + drive-strength = <0x01>; + phandle = <0x19f>; + bias-pull-up; + }; + + pcfg-pull-none-smt { + bias-disable; + input-schmitt-enable; + phandle = <0x19d>; + }; + + sdmmc { + + sdmmc-det { + rockchip,pins = <0x00 0x04 0x01 0x19e>; + phandle = <0x116>; + }; + + sdmmc-pwren { + rockchip,pins = <0x00 0x05 0x02 0x198>; + phandle = <0x3ef>; + }; + + sdmmc-bus4 { + rockchip,pins = <0x04 0x18 0x01 0x199 0x04 0x19 0x01 0x199 0x04 0x1a 0x01 0x199 0x04 0x1b 0x01 0x199>; + phandle = <0x117>; + }; + + sdmmc-cmd { + rockchip,pins = <0x04 0x1c 0x01 0x199>; + phandle = <0x115>; + }; + + sdmmc-clk { + rockchip,pins = <0x04 0x1d 0x01 0x199>; + phandle = <0x114>; + }; + }; + + i2s0 { + + i2s0-sclk { + rockchip,pins = <0x01 0x13 0x01 0x19d>; + phandle = <0x11c>; + }; + + i2s0-sdo3 { + rockchip,pins = <0x01 0x1a 0x01 0x198>; + phandle = <0x37a>; + }; + + i2s0-lrck { + rockchip,pins = <0x01 0x15 0x01 0x19d>; + phandle = <0x11b>; + }; + + i2s0-sdo1 { + rockchip,pins = <0x01 0x18 0x01 0x198>; + phandle = <0x378>; + }; + + i2s0-sdi3 { + rockchip,pins = <0x01 0x19 0x02 0x198>; + phandle = <0x377>; + }; + + i2s0-mclk { + rockchip,pins = <0x01 0x12 0x01 0x19d>; + phandle = <0x17a>; + }; + + i2s0-sdi1 { + rockchip,pins = <0x01 0x1b 0x02 0x198>; + phandle = <0x375>; + }; + + i2s0-sdo2 { + rockchip,pins = <0x01 0x19 0x01 0x198>; + phandle = <0x379>; + }; + + i2s0-idle { + rockchip,pins = <0x01 0x15 0x00 0x198 0x01 0x13 0x00 0x198>; + phandle = <0x11f>; + }; + + i2s0-sdo0 { + rockchip,pins = <0x01 0x17 0x01 0x198>; + phandle = <0x11e>; + }; + + i2s0-sdi2 { + rockchip,pins = <0x01 0x1a 0x02 0x198>; + phandle = <0x376>; + }; + + i2s0-sdi0 { + rockchip,pins = <0x01 0x1c 0x02 0x198>; + phandle = <0x11d>; + }; + }; + + ddrphych1 { + + ddrphych1-pins { + rockchip,pins = <0x04 0x04 0x07 0x198 0x04 0x05 0x07 0x198 0x04 0x06 0x07 0x198 0x04 0x07 0x07 0x198>; + phandle = <0x319>; + }; + }; + + pcfg-pull-none-drv-level-11 { + drive-strength = <0x0b>; + bias-disable; + phandle = <0x455>; + }; + + i2c0 { + + i2c0m2-xfer { + rockchip,pins = <0x00 0x19 0x03 0x19d 0x00 0x1a 0x03 0x19d>; + phandle = <0x77>; + }; + + i2c0m1-xfer { + rockchip,pins = <0x04 0x15 0x09 0x19d 0x04 0x16 0x09 0x19d>; + phandle = <0x355>; + }; + + i2c0m0-xfer { + rockchip,pins = <0x00 0x0b 0x02 0x19d 0x00 0x06 0x02 0x19d>; + phandle = <0x354>; + }; + }; + + pwm6 { + + pwm6m2-pins { + rockchip,pins = <0x04 0x15 0x0b 0x198>; + phandle = <0x3d0>; + }; + + pwm6m1-pins { + rockchip,pins = <0x04 0x11 0x0b 0x198>; + phandle = <0x3cf>; + }; + + pwm6m0-pins { + rockchip,pins = <0x00 0x17 0x0b 0x198>; + phandle = <0x16b>; + }; + }; + + hym8563 { + + hym8563-int { + rockchip,pins = <0x00 0x08 0x00 0x198>; + phandle = <0x7a>; + }; + }; + + pcfg-pull-none-drv-level-4 { + drive-strength = <0x04>; + bias-disable; + phandle = <0x2f0>; + }; + + pcfg-output-high-pull-up { + output-high; + phandle = <0x306>; + bias-pull-up; + }; + + pwm11 { + + pwm11m3-pins { + rockchip,pins = <0x03 0x1d 0x0b 0x198>; + phandle = <0x3dc>; + }; + + pwm11m2-pins { + rockchip,pins = <0x01 0x14 0x0b 0x198>; + phandle = <0x3db>; + }; + + pwm11m1-pins { + rockchip,pins = <0x04 0x0c 0x0b 0x198>; + phandle = <0x3da>; + }; + + pwm11m0-pins { + rockchip,pins = <0x03 0x01 0x0b 0x198>; + phandle = <0x170>; + }; + }; + + bt1120 { + + bt1120-pins { + rockchip,pins = <0x04 0x08 0x02 0x198 0x04 0x00 0x02 0x198 0x04 0x01 0x02 0x198 0x04 0x02 0x02 0x198 0x04 0x03 0x02 0x198 0x04 0x04 0x02 0x198 0x04 0x05 0x02 0x198 0x04 0x06 0x02 0x198 0x04 0x07 0x02 0x198 0x04 0x0a 0x02 0x198 0x04 0x0b 0x02 0x198 0x04 0x0c 0x02 0x198 0x04 0x0d 0x02 0x198 0x04 0x0e 0x02 0x198 0x04 0x0f 0x02 0x198 0x04 0x10 0x02 0x198 0x04 0x11 0x02 0x198>; + phandle = <0x71>; + }; + }; + + pcfg-output-low-pull-up { + phandle = <0x30a>; + bias-pull-up; + output-low; + }; + + uart5 { + + uart5m1-ctsn { + rockchip,pins = <0x02 0x02 0x0a 0x198>; + phandle = <0x433>; + }; + + uart5m2-xfer { + rockchip,pins = <0x02 0x1c 0x0a 0x19e 0x02 0x1d 0x0a 0x19e>; + phandle = <0x435>; + }; + + uart5m0-ctsn { + rockchip,pins = <0x04 0x1a 0x0a 0x198>; + phandle = <0x431>; + }; + + uart5m1-xfer { + rockchip,pins = <0x03 0x15 0x0a 0x19e 0x03 0x14 0x0a 0x19e>; + phandle = <0x164>; + }; + + uart5m0-xfer { + rockchip,pins = <0x04 0x1c 0x0a 0x19e 0x04 0x1d 0x0a 0x19e>; + phandle = <0x430>; + }; + + uart5m1-rtsn { + rockchip,pins = <0x02 0x03 0x0a 0x198>; + phandle = <0x434>; + }; + + uart5m0-rtsn { + rockchip,pins = <0x04 0x1b 0x0a 0x198>; + phandle = <0x432>; + }; + }; + + sdio { + + sdiom1-pins { + rockchip,pins = <0x03 0x05 0x02 0x198 0x03 0x04 0x02 0x19e 0x03 0x00 0x02 0x19e 0x03 0x01 0x02 0x19e 0x03 0x02 0x02 0x19e 0x03 0x03 0x02 0x19e>; + phandle = <0x119>; + }; + + sdiom0-pins { + rockchip,pins = <0x02 0x0b 0x02 0x198 0x02 0x0a 0x02 0x19e 0x02 0x06 0x02 0x19e 0x02 0x07 0x02 0x19e 0x02 0x08 0x02 0x19e 0x02 0x09 0x02 0x19e>; + phandle = <0x3ee>; + }; + }; + + spdif1 { + + spdif1m0-tx { + rockchip,pins = <0x01 0x0f 0x03 0x198>; + phandle = <0x143>; + }; + + spdif1m2-tx { + rockchip,pins = <0x04 0x11 0x03 0x198>; + phandle = <0x3f2>; + }; + + spdif1m1-tx { + rockchip,pins = <0x04 0x09 0x02 0x198>; + phandle = <0x3f1>; + }; + }; + + pcfg-pull-down-drv-level-7 { + drive-strength = <0x07>; + bias-pull-down; + phandle = <0x463>; + }; + + gpio@fec30000 { + gpio-controller; + interrupts = <0x00 0x117 0x04>; + clocks = <0x02 0x7f 0x02 0x80>; + compatible = "rockchip,gpio-bank"; + #interrupt-cells = <0x02>; + reg = <0x00 0xfec30000 0x00 0x100>; + phandle = <0x79>; + #gpio-cells = <0x02>; + gpio-ranges = <0x197 0x00 0x40 0x20>; + interrupt-controller; + }; + + pcfg-pull-up-drv-level-12 { + drive-strength = <0x0c>; + phandle = <0x45f>; + bias-pull-up; + }; + + pcfg-pull-down-drv-level-10 { + drive-strength = <0x0a>; + bias-pull-down; + phandle = <0x466>; + }; + + dp1 { + + dp1m1-pins { + rockchip,pins = <0x00 0x15 0x0a 0x198>; + phandle = <0x320>; + }; + + dp1m0-pins { + rockchip,pins = <0x03 0x1d 0x05 0x198>; + phandle = <0x31f>; + }; + + dp1m2-pins { + rockchip,pins = <0x01 0x01 0x05 0x198>; + phandle = <0x321>; + }; + }; + + vop { + + vop-pins { + rockchip,pins = <0x01 0x02 0x01 0x198>; + phandle = <0x44f>; + }; + }; + + pwm4 { + + pwm4m1-pins { + rockchip,pins = <0x04 0x13 0x0b 0x198>; + phandle = <0x3cc>; + }; + + pwm4m0-pins { + rockchip,pins = <0x00 0x15 0x0b 0x198>; + phandle = <0x169>; + }; + }; + + pcfg-pull-none-drv-level-2 { + drive-strength = <0x02>; + bias-disable; + phandle = <0x1a0>; + }; + + pcfg-pull-none-drv-level-3-smt { + drive-strength = <0x03>; + bias-disable; + input-schmitt-enable; + phandle = <0x302>; + }; + + uart3 { + + uart3m2-xfer { + rockchip,pins = <0x04 0x06 0x0a 0x19e 0x04 0x05 0x0a 0x19e>; + phandle = <0x429>; + }; + + uart3m1-xfer { + rockchip,pins = <0x03 0x0e 0x0a 0x19e 0x03 0x0d 0x0a 0x19e>; + phandle = <0x162>; + }; + + uart3-ctsn { + rockchip,pins = <0x01 0x13 0x0a 0x198>; + phandle = <0x42a>; + }; + + uart3m0-xfer { + rockchip,pins = <0x01 0x10 0x0a 0x19e 0x01 0x11 0x0a 0x19e>; + phandle = <0x428>; + }; + + uart3-rtsn { + rockchip,pins = <0x01 0x12 0x0a 0x198>; + phandle = <0x42b>; + }; + }; + + pcfg-pull-down-drv-level-5 { + drive-strength = <0x05>; + bias-pull-down; + phandle = <0x2fc>; + }; + + pcfg-pull-up-drv-level-8 { + drive-strength = <0x08>; + phandle = <0x45b>; + bias-pull-up; + }; + + pcfg-pull-up-drv-level-10 { + drive-strength = <0x0a>; + phandle = <0x45d>; + bias-pull-up; + }; + + pcfg-output-low { + phandle = <0x309>; + output-low; + }; + + i2c7 { + + i2c7m3-xfer { + rockchip,pins = <0x04 0x0a 0x09 0x19d 0x04 0x0b 0x09 0x19d>; + phandle = <0x36f>; + }; + + i2c7m2-xfer { + rockchip,pins = <0x03 0x1a 0x09 0x19d 0x03 0x1b 0x09 0x19d>; + phandle = <0x36e>; + }; + + i2c7m1-xfer { + rockchip,pins = <0x04 0x13 0x09 0x19d 0x04 0x14 0x09 0x19d>; + phandle = <0x370>; + }; + + i2c7m0-xfer { + rockchip,pins = <0x01 0x18 0x09 0x19d 0x01 0x19 0x09 0x19d>; + phandle = <0x185>; + }; + }; + + pwm2 { + + pwm2m2-pins { + rockchip,pins = <0x04 0x12 0x0b 0x198>; + phandle = <0x3c8>; + }; + + pwm2m1-pins { + rockchip,pins = <0x03 0x09 0x0b 0x198>; + phandle = <0x3c7>; + }; + + pwm2m0-pins { + rockchip,pins = <0x00 0x14 0x03 0x198>; + phandle = <0x80>; + }; + }; + + pcfg-pull-none-drv-level-0 { + drive-strength = <0x00>; + bias-disable; + phandle = <0x2ed>; + }; + + sata1 { + + sata1m1-pins { + rockchip,pins = <0x01 0x01 0x06 0x198>; + phandle = <0x3eb>; + }; + + sata1m0-pins { + rockchip,pins = <0x04 0x0d 0x06 0x198>; + phandle = <0x3ea>; + }; + }; + + pmu { + + pmu-pins { + rockchip,pins = <0x00 0x05 0x03 0x198>; + phandle = <0x3c2>; + }; + }; + + hdmirx { + + hdmirx-det { + rockchip,pins = <0x01 0x1d 0x00 0x198>; + phandle = <0x1b4>; + }; + }; + + uart1 { + + uart1m0-ctsn { + rockchip,pins = <0x02 0x11 0x0a 0x198>; + phandle = <0x423>; + }; + + uart1m1-xfer { + rockchip,pins = <0x01 0x0f 0x0a 0x19e 0x01 0x0e 0x0a 0x19e>; + phandle = <0x160>; + }; + + uart1m0-xfer { + rockchip,pins = <0x02 0x0e 0x0a 0x19e 0x02 0x0f 0x0a 0x19e>; + phandle = <0x422>; + }; + + uart1m2-rtsn { + rockchip,pins = <0x00 0x17 0x0a 0x198>; + phandle = <0x421>; + }; + + uart1m1-rtsn { + rockchip,pins = <0x01 0x1e 0x0a 0x198>; + phandle = <0x41e>; + }; + + uart1m0-rtsn { + rockchip,pins = <0x02 0x10 0x0a 0x198>; + phandle = <0x424>; + }; + + uart1m2-ctsn { + rockchip,pins = <0x00 0x18 0x0a 0x198>; + phandle = <0x420>; + }; + + uart1m1-ctsn { + rockchip,pins = <0x01 0x1f 0x0a 0x198>; + phandle = <0x41d>; + }; + + uart1m2-xfer { + rockchip,pins = <0x00 0x1a 0x0a 0x19e 0x00 0x19 0x0a 0x19e>; + phandle = <0x41f>; + }; + }; + + hdmi { + + hdmim1-rx-cec { + rockchip,pins = <0x03 0x19 0x05 0x198>; + phandle = <0x338>; + }; + + hdmim0-rx-scl { + rockchip,pins = <0x00 0x1a 0x0b 0x198>; + phandle = <0x336>; + }; + + hdmim0-rx-sda { + rockchip,pins = <0x00 0x19 0x0b 0x198>; + phandle = <0x337>; + }; + + hdmim0-tx0-cec { + rockchip,pins = <0x04 0x11 0x05 0x198>; + phandle = <0xf9>; + }; + + hdmim2-rx-cec { + rockchip,pins = <0x01 0x0f 0x05 0x198>; + phandle = <0x342>; + }; + + hdmim1-rx-scl { + rockchip,pins = <0x03 0x1a 0x05 0x19d>; + phandle = <0x33a>; + }; + + hdmim1-rx-sda { + rockchip,pins = <0x03 0x1b 0x05 0x19d>; + phandle = <0x33b>; + }; + + hdmim0-tx0-scl { + rockchip,pins = <0x04 0x0f 0x05 0x19b>; + phandle = <0xfb>; + }; + + hdmim0-tx0-sda { + rockchip,pins = <0x04 0x10 0x05 0x19c>; + phandle = <0xfc>; + }; + + hdmim2-rx-scl { + rockchip,pins = <0x01 0x1e 0x05 0x198>; + phandle = <0x344>; + }; + + hdmim2-rx-sda { + rockchip,pins = <0x01 0x1f 0x05 0x198>; + phandle = <0x345>; + }; + + hdmim0-tx0-hpd { + rockchip,pins = <0x01 0x05 0x05 0x198>; + phandle = <0xfa>; + }; + + hdmim2-rx-hpdin { + rockchip,pins = <0x01 0x0e 0x05 0x198>; + phandle = <0x343>; + }; + + hdmi-debug6 { + rockchip,pins = <0x01 0x00 0x07 0x198>; + phandle = <0x350>; + }; + + hdmim2-tx0-scl { + rockchip,pins = <0x03 0x17 0x05 0x19b>; + phandle = <0x346>; + }; + + hdmim2-tx0-sda { + rockchip,pins = <0x03 0x18 0x05 0x19c>; + phandle = <0x347>; + }; + + hdmi-debug4 { + rockchip,pins = <0x01 0x0b 0x07 0x198>; + phandle = <0x34e>; + }; + + hdmim0-tx1-cec { + rockchip,pins = <0x02 0x14 0x04 0x198>; + phandle = <0x351>; + }; + + hdmim0-tx1-scl { + rockchip,pins = <0x02 0x0d 0x04 0x198>; + phandle = <0x352>; + }; + + hdmim0-tx1-sda { + rockchip,pins = <0x02 0x0c 0x04 0x198>; + phandle = <0x353>; + }; + + hdmi-debug2 { + rockchip,pins = <0x01 0x09 0x07 0x198>; + phandle = <0x34c>; + }; + + hdmim0-tx1-hpd { + rockchip,pins = <0x01 0x06 0x05 0x198>; + phandle = <0x1a9>; + }; + + hdmim1-rx { + rockchip,pins = <0x03 0x19 0x05 0x198 0x03 0x1a 0x05 0x19d 0x03 0x1b 0x05 0x19d 0x03 0x1c 0x05 0x198>; + phandle = <0x1b3>; + }; + + hdmim2-tx1-cec { + rockchip,pins = <0x03 0x14 0x05 0x198>; + phandle = <0x1a8>; + }; + + hdmi-debug0 { + rockchip,pins = <0x01 0x07 0x07 0x198>; + phandle = <0x34a>; + }; + + hdmim2-tx1-scl { + rockchip,pins = <0x01 0x04 0x05 0x19b>; + phandle = <0x348>; + }; + + hdmim2-tx1-sda { + rockchip,pins = <0x01 0x03 0x05 0x19c>; + phandle = <0x349>; + }; + + hdmim1-tx0-cec { + rockchip,pins = <0x00 0x19 0x0d 0x198>; + phandle = <0x33c>; + }; + + hdmim1-tx0-scl { + rockchip,pins = <0x00 0x1d 0x0b 0x19b>; + phandle = <0x33e>; + }; + + hdmim1-tx0-sda { + rockchip,pins = <0x00 0x1c 0x0b 0x19c>; + phandle = <0x33f>; + }; + + hdmim1-tx0-hpd { + rockchip,pins = <0x03 0x1c 0x03 0x198>; + phandle = <0x33d>; + }; + + hdmim0-rx-hpdin { + rockchip,pins = <0x04 0x0e 0x05 0x198>; + phandle = <0x335>; + }; + + hdmi-debug5 { + rockchip,pins = <0x01 0x0c 0x07 0x198>; + phandle = <0x34f>; + }; + + hdmi-debug3 { + rockchip,pins = <0x01 0x0a 0x07 0x198>; + phandle = <0x34d>; + }; + + hdmim1-tx1-cec { + rockchip,pins = <0x00 0x1a 0x0d 0x198>; + phandle = <0x340>; + }; + + hdmi-debug1 { + rockchip,pins = <0x01 0x08 0x07 0x198>; + phandle = <0x34b>; + }; + + hdmim1-tx1-scl { + rockchip,pins = <0x03 0x16 0x05 0x19b>; + phandle = <0x1aa>; + }; + + hdmim1-tx1-sda { + rockchip,pins = <0x03 0x15 0x05 0x19c>; + phandle = <0x1ab>; + }; + + hdmim1-tx1-hpd { + rockchip,pins = <0x03 0x0f 0x05 0x198>; + phandle = <0x341>; + }; + + hdmim1-rx-hpdin { + rockchip,pins = <0x03 0x1c 0x05 0x198>; + phandle = <0x339>; + }; + + hdmim0-rx-cec { + rockchip,pins = <0x04 0x0d 0x05 0x198>; + phandle = <0x334>; + }; + }; + + pcfg-pull-down-drv-level-3 { + drive-strength = <0x03>; + bias-pull-down; + phandle = <0x2fa>; + }; + + pcfg-pull-up-drv-level-6 { + drive-strength = <0x06>; + phandle = <0x19a>; + bias-pull-up; + }; + + i2c5 { + + i2c5m3-xfer { + rockchip,pins = <0x01 0x0e 0x09 0x19d 0x01 0x0f 0x09 0x19d>; + phandle = <0x368>; + }; + + i2c5m2-xfer { + rockchip,pins = <0x04 0x06 0x09 0x19d 0x04 0x07 0x09 0x19d>; + phandle = <0x367>; + }; + + i2c5m1-xfer { + rockchip,pins = <0x04 0x0e 0x09 0x19d 0x04 0x0f 0x09 0x19d>; + phandle = <0x366>; + }; + + i2c5m0-xfer { + rockchip,pins = <0x03 0x17 0x09 0x19d 0x03 0x18 0x09 0x19d>; + phandle = <0x14d>; + }; + + i2c5m4-xfer { + rockchip,pins = <0x02 0x0e 0x09 0x19d 0x02 0x0f 0x09 0x19d>; + phandle = <0x369>; + }; + }; + + pcfg-pull-none-drv-level-9 { + drive-strength = <0x09>; + bias-disable; + phandle = <0x453>; + }; + + pdm0 { + + pdm0m1-sdi3 { + rockchip,pins = <0x00 0x1e 0x02 0x198>; + phandle = <0x3ba>; + }; + + pdm0m1-clk { + rockchip,pins = <0x00 0x10 0x02 0x198>; + phandle = <0x3b4>; + }; + + pdm0m1-sdi1 { + rockchip,pins = <0x00 0x18 0x02 0x198>; + phandle = <0x3b8>; + }; + + pdm0m0-sdi3 { + rockchip,pins = <0x01 0x1b 0x03 0x198>; + phandle = <0x137>; + }; + + pdm0m0-sdi1 { + rockchip,pins = <0x01 0x19 0x03 0x198>; + phandle = <0x135>; + }; + + pdm0m1-clk1 { + rockchip,pins = <0x00 0x14 0x02 0x198>; + phandle = <0x3b5>; + }; + + pdm0m1-idle { + rockchip,pins = <0x00 0x10 0x00 0x198 0x00 0x14 0x00 0x198>; + phandle = <0x3b6>; + }; + + pdm0m0-clk1 { + rockchip,pins = <0x01 0x14 0x03 0x198>; + phandle = <0x13a>; + }; + + pdm0m1-sdi2 { + rockchip,pins = <0x00 0x1c 0x02 0x198>; + phandle = <0x3b9>; + }; + + pdm0m0-idle { + rockchip,pins = <0x01 0x16 0x00 0x198 0x01 0x14 0x00 0x198>; + phandle = <0x138>; + }; + + pdm0m1-sdi0 { + rockchip,pins = <0x00 0x17 0x02 0x198>; + phandle = <0x3b7>; + }; + + pdm0m0-sdi2 { + rockchip,pins = <0x01 0x1a 0x03 0x198>; + phandle = <0x136>; + }; + + pdm0m0-sdi0 { + rockchip,pins = <0x01 0x1d 0x03 0x198>; + phandle = <0x134>; + }; + + pdm0m0-clk { + rockchip,pins = <0x01 0x16 0x03 0x198>; + phandle = <0x139>; + }; + }; + + pcfg-output-high-pull-none { + bias-disable; + output-high; + phandle = <0x308>; + }; + + pwm0 { + + pwm0m1-pins { + rockchip,pins = <0x01 0x1a 0x0b 0x198>; + phandle = <0x3c3>; + }; + + pwm0m0-pins { + rockchip,pins = <0x00 0x0f 0x03 0x198>; + phandle = <0x7e>; + }; + + pwm0m2-pins { + rockchip,pins = <0x01 0x02 0x0b 0x198>; + phandle = <0x3c4>; + }; + }; + + cif { + + cif-dvp-clk { + rockchip,pins = <0x04 0x08 0x01 0x198 0x04 0x0a 0x01 0x198 0x04 0x0b 0x01 0x198>; + phandle = <0x311>; + }; + + cif-clk { + rockchip,pins = <0x04 0x0c 0x01 0x198>; + phandle = <0x310>; + }; + + cif-dvp-bus8 { + rockchip,pins = <0x04 0x00 0x01 0x198 0x04 0x01 0x01 0x198 0x04 0x02 0x01 0x198 0x04 0x03 0x01 0x198 0x04 0x04 0x01 0x198 0x04 0x05 0x01 0x198 0x04 0x06 0x01 0x198 0x04 0x07 0x01 0x198>; + phandle = <0x313>; + }; + + cif-dvp-bus16 { + rockchip,pins = <0x03 0x14 0x01 0x198 0x03 0x15 0x01 0x198 0x03 0x16 0x01 0x198 0x03 0x17 0x01 0x198 0x03 0x18 0x01 0x198 0x03 0x19 0x01 0x198 0x03 0x1a 0x01 0x198 0x03 0x1b 0x01 0x198>; + phandle = <0x312>; + }; + }; + + can1 { + + can1m1-pins { + rockchip,pins = <0x04 0x0a 0x0c 0x198 0x04 0x0b 0x0c 0x198>; + phandle = <0x146>; + }; + + can1m0-pins { + rockchip,pins = <0x03 0x0d 0x09 0x198 0x03 0x0e 0x09 0x198>; + phandle = <0x30e>; + }; + }; + + pcfg-output-low-pull-none { + bias-disable; + phandle = <0x30c>; + output-low; + }; + + gpio@fec40000 { + gpio-controller; + interrupts = <0x00 0x118 0x04>; + clocks = <0x02 0x81 0x02 0x82>; + compatible = "rockchip,gpio-bank"; + #interrupt-cells = <0x02>; + reg = <0x00 0xfec40000 0x00 0x100>; + phandle = <0x181>; + #gpio-cells = <0x02>; + gpio-ranges = <0x197 0x00 0x60 0x20>; + interrupt-controller; + }; + + spi4 { + + spi4m0-cs0 { + rockchip,pins = <0x01 0x13 0x08 0x19a>; + phandle = <0x187>; + }; + + spi4m1-cs0 { + rockchip,pins = <0x03 0x03 0x08 0x19a>; + phandle = <0x413>; + }; + + spi4m2-pins { + rockchip,pins = <0x01 0x02 0x08 0x19a 0x01 0x00 0x08 0x19a 0x01 0x01 0x08 0x19a>; + phandle = <0x415>; + }; + + spi4m0-cs1 { + rockchip,pins = <0x01 0x14 0x08 0x19a>; + phandle = <0x188>; + }; + + spi4m1-pins { + rockchip,pins = <0x03 0x02 0x08 0x19a 0x03 0x00 0x08 0x19a 0x03 0x01 0x08 0x19a>; + phandle = <0x412>; + }; + + spi4m2-cs0 { + rockchip,pins = <0x01 0x03 0x08 0x19a>; + phandle = <0x416>; + }; + + spi4m0-pins { + rockchip,pins = <0x01 0x12 0x08 0x19a 0x01 0x10 0x08 0x19a 0x01 0x11 0x08 0x19a>; + phandle = <0x189>; + }; + + spi4m1-cs1 { + rockchip,pins = <0x03 0x04 0x08 0x19a>; + phandle = <0x414>; + }; + }; + + pcfg-pull-down-drv-level-15 { + drive-strength = <0x0f>; + bias-pull-down; + phandle = <0x46b>; + }; + + pcfg-pull-up-smt { + input-schmitt-enable; + phandle = <0x2fe>; + bias-pull-up; + }; + + pcfg-pull-down-drv-level-1 { + drive-strength = <0x01>; + bias-pull-down; + phandle = <0x2f8>; + }; + + pcfg-pull-up-drv-level-4 { + drive-strength = <0x04>; + phandle = <0x2f5>; + bias-pull-up; + }; + + wireless-wlan { + + wifi-host-wake-irq { + rockchip,pins = <0x00 0x0a 0x00 0x198>; + phandle = <0x1ea>; + }; + }; + + wdt-pc9202 { + + wdt-en-base { + rockchip,pins = <0x00 0x14 0x00 0x198>; + phandle = <0x14c>; + }; + }; + + pcfg-pull-none-drv-level-0-smt { + drive-strength = <0x00>; + bias-disable; + input-schmitt-enable; + phandle = <0x300>; + }; + + i2s3 { + + i2s3-sdi { + rockchip,pins = <0x03 0x04 0x03 0x198>; + phandle = <0x12f>; + }; + + i2s3-idle { + rockchip,pins = <0x03 0x02 0x00 0x198 0x03 0x01 0x00 0x198>; + phandle = <0x131>; + }; + + i2s3-sclk { + rockchip,pins = <0x03 0x01 0x03 0x19d>; + phandle = <0x133>; + }; + + i2s3-lrck { + rockchip,pins = <0x03 0x02 0x03 0x19d>; + phandle = <0x132>; + }; + + i2s3-sdo { + rockchip,pins = <0x03 0x03 0x03 0x198>; + phandle = <0x130>; + }; + + i2s3-mclk { + rockchip,pins = <0x03 0x00 0x03 0x19d>; + phandle = <0x38e>; + }; + }; + + pcfg-pull-none-drv-level-14 { + drive-strength = <0x0e>; + bias-disable; + phandle = <0x458>; + }; + }; + + rkcif-mipi-lvds4-sditf-vir1 { + compatible = "rockchip,rkcif-sditf"; + status = "disabled"; + rockchip,cif = <0x1a1>; + phandle = <0x473>; + }; + + bt-sco { + #sound-dai-cells = <0x01>; + compatible = "delta,dfbmcs320"; + status = "disabled"; + phandle = <0x1d2>; + }; + + phy@fed80000 { + svid = <0xff01>; + orientation-switch; + sbu2-dc-gpios = <0x10d 0x07 0x00>; + clock-names = "refclk\0immortal\0pclk\0utmi"; + resets = <0x02 0x28 0x02 0x29 0x02 0x2a 0x02 0x2b 0x02 0x482>; + clocks = <0x02 0x2b6 0x02 0x27f 0x02 0x269 0x18d>; + compatible = "rockchip,rk3588-usbdp-phy"; + status = "okay"; + reg = <0x00 0xfed80000 0x00 0x10000>; + phandle = <0x2ea>; + rockchip,usb-grf = <0x74>; + reset-names = "init\0cmn\0lane\0pcs_apb\0pma_apb"; + rockchip,u2phy-grf = <0x18b>; + sbu1-dc-gpios = <0x10d 0x06 0x00>; + rockchip,usbdpphy-grf = <0x18c>; + rockchip,vo-grf = <0xf5>; + + dp-port { + #phy-cells = <0x00>; + status = "okay"; + phandle = <0xf6>; + }; + + port { + #address-cells = <0x01>; + #size-cells = <0x00>; + + endpoint@1 { + remote-endpoint = <0x18f>; + reg = <0x01>; + phandle = <0x17f>; + }; + + endpoint@0 { + remote-endpoint = <0x18e>; + reg = <0x00>; + phandle = <0x17e>; + }; + }; + + u3-port { + #phy-cells = <0x00>; + status = "okay"; + phandle = <0x67>; + }; + }; + + interrupt-controller@fe600000 { + #address-cells = <0x02>; + interrupts = <0x01 0x09 0x04>; + #size-cells = <0x02>; + compatible = "arm,gic-v3"; + ranges; + #interrupt-cells = <0x03>; + reg = <0x00 0xfe600000 0x00 0x10000 0x00 0xfe680000 0x00 0x100000>; + phandle = <0x01>; + interrupt-controller; + + msi-controller@fe640000 { + msi-controller; + compatible = "arm,gic-v3-its"; + reg = <0x00 0xfe640000 0x00 0x20000>; + phandle = <0x106>; + #msi-cells = <0x01>; + }; + + msi-controller@fe660000 { + msi-controller; + compatible = "arm,gic-v3-its"; + reg = <0x00 0xfe660000 0x00 0x20000>; + phandle = <0x1b6>; + #msi-cells = <0x01>; + }; + }; + + ethernet@fe1c0000 { + power-domains = <0x60 0x21>; + pinctrl-names = "default"; + phy-mode = "rgmii-rxid"; + snps,mixed-burst; + snps,mtl-rx-config = <0x10b>; + snps,reset-active-low; + pinctrl-0 = <0x10e 0x10f 0x110 0x111 0x112>; + clock-names = "stmmaceth\0clk_mac_ref\0pclk_mac\0aclk_mac\0ptp_ref"; + snps,mtl-tx-config = <0x10c>; + local-mac-address = [a6 50 47 45 20 1c]; + resets = <0x02 0x20b>; + interrupts = <0x00 0xea 0x04 0x00 0xe9 0x04>; + clocks = <0x02 0x144 0x02 0x145 0x02 0x168 0x02 0x16d 0x02 0x143>; + clock_in_out = "output"; + snps,tso; + compatible = "rockchip,rk3588-gmac\0snps,dwmac-4.20a"; + status = "okay"; + rockchip,grf = <0xc8>; + interrupt-names = "macirq\0eth_wake_irq"; + snps,reset-gpio = <0x10d 0x08 0x01>; + reg = <0x00 0xfe1c0000 0x00 0x10000>; + rockchip,php_grf = <0x76>; + phandle = <0x109>; + phy-handle = <0x113>; + reset-names = "stmmaceth"; + tx_delay = <0x40>; + snps,axi-config = <0x10a>; + snps,reset-delays-us = <0x00 0x4e20 0x186a0>; + + mdio { + #address-cells = <0x01>; + #size-cells = <0x00>; + compatible = "snps,dwmac-mdio"; + phandle = <0x28f>; + + phy@1 { + compatible = "ethernet-phy-ieee802.3-c22"; + reg = <0x01>; + phandle = <0x113>; + }; + }; + + tx-queues-config { + phandle = <0x10c>; + snps,tx-queues-to-use = <0x01>; + + queue0 { + }; + }; + + stmmac-axi-config { + snps,wr_osr_lmt = <0x04>; + phandle = <0x10a>; + snps,blen = <0x00 0x00 0x00 0x00 0x10 0x08 0x04>; + snps,rd_osr_lmt = <0x08>; + }; + + rx-queues-config { + snps,rx-queues-to-use = <0x01>; + phandle = <0x10b>; + + queue0 { + }; + }; + }; + + pcie-essd { + regulator-max-microvolt = <0x2625a0>; + enable-active-high; + regulator-min-microvolt = <0x2625a0>; + regulator-name = "pcie_essd"; + startup-delay-us = <0x1388>; + compatible = "regulator-fixed"; + status = "disabled"; + phandle = <0x1ba>; + vin-supply = <0x1cd>; + gpios = <0x181 0x0f 0x00>; + }; + + iommu@fdab9000 { + clock-names = "aclk0\0aclk1\0aclk2\0iface0\0iface1\0iface2"; + interrupts = <0x00 0x6e 0x04 0x00 0x6f 0x04 0x00 0x70 0x04>; + clocks = <0x02 0x12d 0x02 0x122 0x02 0x124 0x02 0x12e 0x02 0x123 0x02 0x125>; + #iommu-cells = <0x00>; + compatible = "rockchip,iommu-v2"; + status = "okay"; + interrupt-names = "npu0_mmu\0npu1_mmu\0npu2_mmu"; + reg = <0x00 0xfdab9000 0x00 0x100 0x00 0xfdaba000 0x00 0x100 0x00 0xfdaca000 0x00 0x100 0x00 0xfdada000 0x00 0x100>; + phandle = <0xb2>; + }; + + otp@fecc0000 { + #address-cells = <0x01>; + clock-names = "otpc\0apb\0arb\0phy"; + resets = <0x02 0x12a 0x02 0x129 0x02 0x12b>; + clocks = <0x02 0x96 0x02 0x95 0x02 0x97 0x02 0x99>; + #size-cells = <0x01>; + compatible = "rockchip,rk3588-otp"; + reg = <0x00 0xfecc0000 0x00 0x400>; + phandle = <0x2e7>; + reset-names = "otpc\0apb\0arb"; + + id@7 { + reg = <0x07 0x10>; + phandle = <0x2a>; + }; + + cpul-opp-info@3d { + reg = <0x3d 0x06>; + phandle = <0x20>; + }; + + cpub1-leakage@18 { + reg = <0x18 0x01>; + phandle = <0x27>; + }; + + vop-opp-info@61 { + reg = <0x61 0x06>; + phandle = <0x2e8>; + }; + + cpul-leakage@19 { + reg = <0x19 0x01>; + phandle = <0x1f>; + }; + + codec-leakage@29 { + reg = <0x29 0x01>; + phandle = <0xc6>; + }; + + cpu-version@1c { + bits = <0x03 0x03>; + reg = <0x1c 0x01>; + phandle = <0x2b>; + }; + + cpub0-leakage@17 { + reg = <0x17 0x01>; + phandle = <0x24>; + }; + + log-leakage@1a { + reg = <0x1a 0x01>; + phandle = <0x44>; + }; + + cpu-code@2 { + reg = <0x02 0x02>; + phandle = <0x2c>; + }; + + package-serial-number-low@6 { + bits = <0x05 0x03>; + reg = <0x06 0x01>; + phandle = <0xd4>; + }; + + npu-opp-info@55 { + reg = <0x55 0x06>; + phandle = <0xb5>; + }; + + package-serial-number-high@5 { + bits = <0x00 0x01>; + reg = <0x05 0x01>; + phandle = <0xd5>; + }; + + cpub01-opp-info@43 { + reg = <0x43 0x06>; + phandle = <0x25>; + }; + + dmc-opp-info@5b { + reg = <0x5b 0x06>; + phandle = <0x45>; + }; + + npu-leakage@28 { + reg = <0x28 0x01>; + phandle = <0xb4>; + }; + + gpu-leakage@1b { + reg = <0x1b 0x01>; + phandle = <0x63>; + }; + + specification-serial-number@6 { + bits = <0x00 0x05>; + reg = <0x06 0x01>; + phandle = <0x21>; + }; + + venc-opp-info@67 { + reg = <0x67 0x06>; + phandle = <0xc7>; + }; + + gpu-opp-info@4f { + reg = <0x4f 0x06>; + phandle = <0x64>; + }; + + cpub23-opp-info@49 { + reg = <0x49 0x06>; + phandle = <0x28>; + }; + }; + + i2s@fddf0000 { + power-domains = <0x60 0x1a>; + rockchip,always-on; + clock-names = "mclk_tx\0mclk_rx\0hclk"; + assigned-clocks = <0x02 0x243>; + assigned-clock-parents = <0x02 0x07>; + resets = <0x02 0x3e8>; + interrupts = <0x00 0xb9 0x04>; + clocks = <0x02 0x246 0x02 0x246 0x02 0x248>; + dma-names = "tx"; + #sound-dai-cells = <0x00>; + compatible = "rockchip,rk3588-i2s-tdm"; + rockchip,playback-only; + status = "okay"; + reg = <0x00 0xfddf0000 0x00 0x1000>; + phandle = <0x1d3>; + dmas = <0xf2 0x02>; + reset-names = "tx-m"; + rockchip,hdmi-path; + }; + + dma-controller@fea10000 { + clock-names = "apb_pclk"; + interrupts = <0x00 0x56 0x04 0x00 0x57 0x04>; + clocks = <0x02 0x78>; + arm,pl330-periph-burst; + compatible = "arm,pl330\0arm,primecell"; + reg = <0x00 0xfea10000 0x00 0x4000>; + phandle = <0x7c>; + #dma-cells = <0x01>; + }; + + pwm@febd0000 { + pinctrl-names = "active"; + pinctrl-0 = <0x169>; + clock-names = "pwm\0pclk"; + interrupts = <0x00 0x15a 0x04>; + clocks = <0x02 0x54 0x02 0x53>; + #pwm-cells = <0x03>; + compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; + status = "disabled"; + reg = <0x00 0xfebd0000 0x00 0x10>; + phandle = <0x2d2>; + }; + + rkvenc-ccu { + compatible = "rockchip,rkv-encoder-v2-ccu"; + status = "okay"; + phandle = <0xc3>; + }; + + syscon@fd58c000 { + compatible = "rockchip,rk3588-sys-grf\0syscon\0simple-mfd"; + reg = <0x00 0xfd58c000 0x00 0x1000>; + phandle = <0xc8>; + + rgb { + pinctrl-names = "default"; + pinctrl-0 = <0x71>; + compatible = "rockchip,rk3588-rgb"; + status = "disabled"; + phandle = <0x25c>; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x00>; + + endpoint@2 { + remote-endpoint = <0x3d>; + status = "disabled"; + reg = <0x02>; + phandle = <0xf0>; + }; + }; + }; + }; + }; + + spi@fe2b0000 { + #address-cells = <0x01>; + clock-names = "clk_sfc\0hclk_sfc"; + assigned-clocks = <0x02 0x13d>; + assigned-clock-rates = <0x5f5e100>; + interrupts = <0x00 0xce 0x04>; + clocks = <0x02 0x13d 0x02 0x13e>; + #size-cells = <0x00>; + compatible = "rockchip,sfc"; + status = "disabled"; + reg = <0x00 0xfe2b0000 0x00 0x4000>; + phandle = <0x292>; + }; + + qos@fdf82200 { + compatible = "syscon"; + reg = <0x00 0xfdf82200 0x00 0x20>; + phandle = <0x9e>; + }; + + mmc@fe2c0000 { + power-domains = <0x60 0x28>; + fifo-depth = <0x100>; + pinctrl-names = "default"; + pinctrl-0 = <0x114 0x115 0x116 0x117>; + clock-names = "biu\0ciu\0ciu-drive\0ciu-sample"; + cap-sd-highspeed; + vqmmc-supply = <0x118>; + no-mmc; + bus-width = <0x04>; + no-sdio; + interrupts = <0x00 0xcb 0x04>; + clocks = <0x0e 0x17 0x0e 0x09 0x02 0x2c2 0x02 0x2c3>; + compatible = "rockchip,rk3588-dw-mshc\0rockchip,rk3288-dw-mshc"; + status = "okay"; + disable-wp; + reg = <0x00 0xfe2c0000 0x00 0x4000>; + phandle = <0x293>; + sd-uhs-sdr104; + max-frequency = <0x8f0d180>; + cap-mmc-highspeed; + }; + + serial@feb80000 { + reg-io-width = <0x04>; + pinctrl-names = "default"; + pinctrl-0 = <0x164>; + clock-names = "baudclk\0apb_pclk"; + interrupts = <0x00 0x150 0x04>; + clocks = <0x02 0xc7 0x02 0xaf>; + compatible = "rockchip,rk3588-uart\0snps,dw-apb-uart"; + status = "disabled"; + reg = <0x00 0xfeb80000 0x00 0x100>; + phandle = <0x2cd>; + dmas = <0xf1 0x0b 0xf1 0x0c>; + reg-shift = <0x02>; + }; + + phy@fee10000 { + rockchip,pipe-grf = <0x76>; + clock-names = "refclk\0apbclk\0phpclk"; + assigned-clocks = <0x02 0x2be>; + assigned-clock-rates = <0x5f5e100>; + resets = <0x02 0x20006 0x02 0x4d7>; + clocks = <0x02 0x2be 0x02 0x186 0x02 0x166>; + #phy-cells = <0x01>; + compatible = "rockchip,rk3588-naneng-combphy"; + status = "disabled"; + rockchip,pipe-phy-grf = <0x1cb>; + reg = <0x00 0xfee10000 0x00 0x100>; + phandle = <0x1bc>; + reset-names = "combphy-apb\0combphy"; + rockchip,pcie1ln-sel-bits = <0x100 0x00 0x00 0x00>; + }; + + can@fea60000 { + pinctrl-names = "default"; + pinctrl-0 = <0x146>; + clock-names = "baudclk\0apb_pclk"; + assigned-clocks = <0x02 0x72>; + assigned-clock-rates = <0xbebc200>; + resets = <0x02 0xbb 0x02 0xba>; + interrupts = <0x00 0x156 0x04>; + clocks = <0x02 0x72 0x02 0x71>; + compatible = "rockchip,can-2.0"; + status = "okay"; + tx-fifo-depth = <0x01>; + rx-fifo-depth = <0x06>; + reg = <0x00 0xfea60000 0x00 0x1000>; + phandle = <0x2a1>; + reset-names = "can\0can-apb"; + }; + + pdm@fe4c0000 { + power-domains = <0x60 0x26>; + pinctrl-names = "default\0idle\0clk"; + pinctrl-2 = <0x140 0x141>; + pinctrl-0 = <0x13b 0x13c 0x13d 0x13e>; + clock-names = "pdm_clk\0pdm_hclk"; + assigned-clocks = <0x02 0x3b>; + assigned-clock-parents = <0x02 0x05>; + clocks = <0x02 0x3b 0x02 0x3a>; + dma-names = "rx"; + #sound-dai-cells = <0x00>; + compatible = "rockchip,rk3588-pdm"; + pinctrl-1 = <0x13f>; + status = "disabled"; + reg = <0x00 0xfe4c0000 0x00 0x1000>; + phandle = <0x29b>; + dmas = <0xf1 0x04>; + }; + + rkcif-mipi-lvds3-sditf-vir2 { + compatible = "rockchip,rkcif-sditf"; + status = "disabled"; + rockchip,cif = <0x57>; + phandle = <0x239>; + }; + + qos@fdf66e00 { + compatible = "syscon"; + reg = <0x00 0xfdf66e00 0x00 0x20>; + phandle = <0x9a>; + }; + + usb@fc800000 { + power-domains = <0x60 0x1f>; + phy-names = "usb2-phy"; + clock-names = "usbhost\0arbiter\0utmi\0alk_usb"; + companion = <0x6b>; + interrupts = <0x00 0xd7 0x04>; + clocks = <0x02 0x19d 0x02 0x19e 0x69 0x6a>; + compatible = "rockchip,rk3588-ehci\0generic-ehci"; + status = "okay"; + phys = <0x6c>; + reg = <0x00 0xfc800000 0x00 0x40000>; + phandle = <0x254>; + }; + + i2c@fd880000 { + pinctrl-names = "default"; + #address-cells = <0x01>; + pinctrl-0 = <0x77>; + clock-names = "i2c\0pclk"; + resets = <0x02 0xc0022 0x02 0xc0021>; + interrupts = <0x00 0x13d 0x04>; + clocks = <0x02 0x287 0x02 0x286>; + #size-cells = <0x00>; + compatible = "rockchip,rk3588-i2c\0rockchip,rk3399-i2c"; + status = "okay"; + reg = <0x00 0xfd880000 0x00 0x1000>; + phandle = <0x25f>; + reset-names = "i2c\0apb"; + + hym8563@51 { + pinctrl-names = "default"; + clock-output-names = "hym8563"; + pinctrl-0 = <0x7a>; + wakeup-source; + interrupts = <0x08 0x08>; + #clock-cells = <0x00>; + interrupt-parent = <0x7b>; + clock-frequency = <0x8000>; + compatible = "haoyu,hym8563"; + status = "okay"; + reg = <0x51>; + phandle = <0x1e4>; + }; + + rk8602@42 { + regulator-max-microvolt = <0x100590>; + regulator-boot-on; + rockchip,suspend-voltage-selector = <0x01>; + regulator-always-on; + regulator-min-microvolt = <0x86470>; + regulator-name = "vdd_cpu_big0_s0"; + regulator-ramp-delay = <0x8fc>; + compatible = "rockchip,rk8602"; + reg = <0x42>; + phandle = <0x18>; + vin-supply = <0x78>; + regulator-compatible = "rk860x-reg"; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + rk8603@43 { + regulator-max-microvolt = <0x100590>; + regulator-boot-on; + rockchip,suspend-voltage-selector = <0x01>; + regulator-always-on; + regulator-min-microvolt = <0x86470>; + regulator-name = "vdd_cpu_big1_s0"; + regulator-ramp-delay = <0x8fc>; + compatible = "rockchip,rk8603"; + reg = <0x43>; + phandle = <0x1c>; + vin-supply = <0x78>; + regulator-compatible = "rk860x-reg"; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + pc9202@3c { + index = <0x00>; + compatible = "firefly,pc9202"; + status = "okay"; + wd-en-gpio = <0x79 0x15 0x00>; + driver-names = "wdt_core"; + reg = <0x3c>; + }; + }; + + rkcif-mipi-lvds3-sditf { + compatible = "rockchip,rkcif-sditf"; + status = "disabled"; + rockchip,cif = <0x57>; + phandle = <0x237>; + }; + + serial@fd890000 { + reg-io-width = <0x04>; + pinctrl-names = "default"; + pinctrl-0 = <0x7d>; + clock-names = "baudclk\0apb_pclk"; + interrupts = <0x00 0x14b 0x04>; + clocks = <0x02 0x2ae 0x02 0x2af>; + compatible = "rockchip,rk3588-uart\0snps,dw-apb-uart"; + status = "disabled"; + reg = <0x00 0xfd890000 0x00 0x100>; + phandle = <0x260>; + dmas = <0x7c 0x06 0x7c 0x07>; + reg-shift = <0x02>; + }; + + qos@fdf70000 { + compatible = "syscon"; + reg = <0x00 0xfdf70000 0x00 0x20>; + phandle = <0x85>; + }; + + gpu-opp-table { + rockchip,pvtm-offset = <0x1c>; + rockchip,pvtm-sample-time = <0x44c>; + rockchip,pvtm-hw = <0x04>; + nvmem-cells = <0x63 0x64 0x21>; + rockchip,low-temp = <0x2710>; + rockchip,pvtm-voltage-sel-hw = <0x00 0x31f 0x00 0x320 0x333 0x01 0x334 0x34c 0x02 0x34d 0x365 0x03 0x366 0x37e 0x04 0x37f 0x270f 0x05>; + rockchip,pvtm-thermal-zone = "gpu-thermal"; + rockchip,high-temp-max-freq = "\0\f5"; + rockchip,opp-clocks = <0x02 0x114>; + rockchip,pvtm-freq = "\0\f5"; + rockchip,pvtm-ref-temp = <0x19>; + low-volt-mem-read-margin = <0x04>; + volt-mem-read-margin = <0xd0bd8 0x01 0xbac48 0x02 0xa4cb8 0x03 0x78d98 0x04>; + compatible = "operating-points-v2"; + rockchip,low-temp-min-volt = <0xb71b0>; + rockchip,grf = <0x65>; + nvmem-cell-names = "leakage\0opp-info\0specification_serial_number"; + rockchip,pvtm-voltage-sel = <0x00 0x32f 0x00 0x330 0x343 0x01 0x344 0x35c 0x02 0x35d 0x375 0x03 0x376 0x38e 0x04 0x38f 0x270f 0x05>; + phandle = <0x61>; + rockchip,pvtm-temp-prop = <0xffffff79 0xffffff79>; + rockchip,temp-hysteresis = <0x1388>; + rockchip,high-temp = <0x14c08>; + rockchip,pvtm-pvtpll; + rockchip,supported-hw; + intermediate-threshold-freq = <0x61a80>; + rockchip,pvtm-volt = <0xb71b0>; + + opp-j-m-700000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; + opp-hz = <0x00 0x29b92700>; + opp-supported-hw = <0x06 0xffff>; + }; + + opp-300000000 { + opp-microvolt = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + opp-hz = <0x00 0x11e1a300>; + opp-supported-hw = <0xf9 0xffff>; + }; + + opp-500000000 { + opp-microvolt = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + opp-hz = <0x00 0x1dcd6500>; + opp-supported-hw = <0xf9 0xffff>; + }; + + opp-m-800000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; + opp-hz = <0x00 0x2faf0800>; + opp-supported-hw = <0x02 0xffff>; + }; + + opp-j-850000000 { + opp-microvolt = <0xc042c 0xc042c 0xcf850 0xc042c 0xc042c 0xcf850>; + opp-microvolt-L4 = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; + opp-microvolt-L2 = <0xba284 0xba284 0xcf850 0xba284 0xba284 0xcf850>; + opp-hz = <0x00 0x32a9f880>; + opp-supported-hw = <0x04 0xffff>; + opp-microvolt-L5 = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; + opp-microvolt-L3 = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; + opp-microvolt-L1 = <0xbd358 0xbd358 0xcf850 0xbd358 0xbd358 0xcf850>; + }; + + opp-j-m-400000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; + opp-hz = <0x00 0x17d78400>; + opp-supported-hw = <0x06 0xffff>; + }; + + opp-700000000 { + opp-microvolt = <0xaae60 0xaae60 0xcf850 0xaae60 0xaae60 0xcf850>; + opp-microvolt-L4 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + opp-microvolt-L2 = <0xa7d8c 0xa7d8c 0xcf850 0xa7d8c 0xa7d8c 0xcf850>; + opp-hz = <0x00 0x29b92700>; + opp-supported-hw = <0xf9 0xffff>; + opp-microvolt-L5 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + opp-microvolt-L3 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + }; + + opp-j-m-600000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; + opp-hz = <0x00 0x23c34600>; + opp-supported-hw = <0x06 0xffff>; + }; + + opp-900000000 { + opp-microvolt = <0xc3500 0xc3500 0xcf850 0xc3500 0xc3500 0xcf850>; + opp-microvolt-L4 = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; + opp-microvolt-L2 = <0xbd358 0xbd358 0xcf850 0xbd358 0xbd358 0xcf850>; + opp-hz = <0x00 0x35a4e900>; + opp-supported-hw = <0xf9 0xffff>; + opp-microvolt-L5 = <0xb40dc 0xb40dc 0xcf850 0xb40dc 0xb40dc 0xcf850>; + opp-microvolt-L3 = <0xba284 0xba284 0xcf850 0xba284 0xba284 0xcf850>; + opp-microvolt-L1 = <0xc042c 0xc042c 0xcf850 0xc042c 0xc042c 0xcf850>; + }; + + opp-m-1000000000 { + opp-microvolt = <0xcf850 0xcf850 0xcf850 0xcf850 0xcf850 0xcf850>; + opp-microvolt-L4 = <0xc3500 0xc3500 0xcf850 0xc3500 0xc3500 0xcf850>; + opp-microvolt-L2 = <0xc96a8 0xc96a8 0xcf850 0xc96a8 0xc96a8 0xcf850>; + opp-hz = <0x00 0x3b9aca00>; + opp-supported-hw = <0x02 0xffff>; + opp-microvolt-L5 = <0xc042c 0xc042c 0xcf850 0xc042c 0xc042c 0xcf850>; + opp-microvolt-L3 = <0xc65d4 0xc65d4 0xcf850 0xc65d4 0xc65d4 0xcf850>; + opp-microvolt-L1 = <0xcc77c 0xcc77c 0xcf850 0xcc77c 0xcc77c 0xcf850>; + }; + + opp-400000000 { + opp-microvolt = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + opp-hz = <0x00 0x17d78400>; + opp-supported-hw = <0xf9 0xffff>; + }; + + opp-j-m-300000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; + opp-hz = <0x00 0x11e1a300>; + opp-supported-hw = <0x06 0xffff>; + }; + + opp-600000000 { + opp-microvolt = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + opp-hz = <0x00 0x23c34600>; + opp-supported-hw = <0xf9 0xffff>; + }; + + opp-m-900000000 { + opp-microvolt = <0xc3500 0xc3500 0xcf850 0xc3500 0xc3500 0xcf850>; + opp-microvolt-L4 = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; + opp-microvolt-L2 = <0xbd358 0xbd358 0xcf850 0xbd358 0xbd358 0xcf850>; + opp-hz = <0x00 0x35a4e900>; + opp-supported-hw = <0x02 0xffff>; + opp-microvolt-L5 = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; + opp-microvolt-L3 = <0xba284 0xba284 0xcf850 0xba284 0xba284 0xcf850>; + opp-microvolt-L1 = <0xc042c 0xc042c 0xcf850 0xc042c 0xc042c 0xcf850>; + }; + + opp-1000000000 { + opp-microvolt = <0xcf850 0xcf850 0xcf850 0xcf850 0xcf850 0xcf850>; + opp-microvolt-L4 = <0xc3500 0xc3500 0xcf850 0xc3500 0xc3500 0xcf850>; + opp-microvolt-L2 = <0xc96a8 0xc96a8 0xcf850 0xc96a8 0xc96a8 0xcf850>; + opp-hz = <0x00 0x3b9aca00>; + opp-supported-hw = <0xf9 0xffff>; + opp-microvolt-L5 = <0xc042c 0xc042c 0xcf850 0xc042c 0xc042c 0xcf850>; + opp-microvolt-L3 = <0xc65d4 0xc65d4 0xcf850 0xc65d4 0xc65d4 0xcf850>; + opp-microvolt-L1 = <0xcc77c 0xcc77c 0xcf850 0xcc77c 0xcc77c 0xcf850>; + }; + + opp-j-m-500000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; + opp-hz = <0x00 0x1dcd6500>; + opp-supported-hw = <0x06 0xffff>; + }; + + opp-800000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; + opp-microvolt-L4 = <0xaae60 0xaae60 0xcf850 0xaae60 0xaae60 0xcf850>; + opp-microvolt-L2 = <0xb1008 0xb1008 0xcf850 0xb1008 0xb1008 0xcf850>; + opp-hz = <0x00 0x2faf0800>; + opp-supported-hw = <0xf9 0xffff>; + opp-microvolt-L5 = <0xaae60 0xaae60 0xcf850 0xaae60 0xaae60 0xcf850>; + opp-microvolt-L3 = <0xadf34 0xadf34 0xcf850 0xadf34 0xadf34 0xcf850>; + opp-microvolt-L1 = <0xb40dc 0xb40dc 0xcf850 0xb40dc 0xb40dc 0xcf850>; + }; + }; + + csi2-dphy1-hw@fedc8000 { + clock-names = "pclk"; + resets = <0x02 0x19 0x02 0x18>; + clocks = <0x02 0x10d>; + compatible = "rockchip,rk3588-csi2-dphy-hw"; + status = "okay"; + rockchip,grf = <0x193>; + reg = <0x00 0xfedc8000 0x00 0x8000>; + phandle = <0x2e>; + reset-names = "srst_csiphy1\0srst_p_csiphy1"; + rockchip,sys_grf = <0xc8>; + }; + + hdcp@fde40000 { + power-domains = <0x60 0x19>; + clock-names = "aclk\0pclk\0hclk\0hclk_key\0aclk_trng\0pclk_trng"; + resets = <0x02 0x37f 0x02 0x37d 0x02 0x37c 0x02 0x37b 0x02 0x381>; + interrupts = <0x00 0x9f 0x04>; + clocks = <0x02 0x1ed 0x02 0x1ef 0x02 0x1ee 0x02 0x1ec 0x02 0x1f1 0x02 0x1f2>; + compatible = "rockchip,rk3588-hdcp"; + status = "disabled"; + reg = <0x00 0xfde40000 0x00 0x80>; + phandle = <0x285>; + reset-names = "hdcp\0h_hdcp\0a_hdcp\0hdcp_key\0trng"; + rockchip,vo-grf = <0xf5>; + }; + + iommu@fdbac800 { + power-domains = <0x60 0x15>; + clock-names = "aclk\0iface"; + interrupts = <0x00 0x7f 0x04>; + clocks = <0x02 0x1b2 0x02 0x1b3>; + #iommu-cells = <0x00>; + compatible = "rockchip,iommu-v2"; + status = "okay"; + interrupt-names = "irq_jpege3_mmu"; + reg = <0x00 0xfdbac800 0x00 0x40>; + phandle = <0xc0>; + }; + + qos@fdf40400 { + compatible = "syscon"; + reg = <0x00 0xfdf40400 0x00 0x20>; + phandle = <0xa2>; + }; + + rga@fdb70000 { + power-domains = <0x60 0x1e>; + iommus = <0xba>; + clock-names = "aclk_rga3_1\0hclk_rga3_1\0clk_rga3_1"; + interrupts = <0x00 0x73 0x04>; + clocks = <0x02 0x18a 0x02 0x189 0x02 0x18b>; + compatible = "rockchip,rga3_core1"; + status = "okay"; + interrupt-names = "rga3_core1_irq"; + reg = <0x00 0xfdb70000 0x00 0x1000>; + phandle = <0x26a>; + }; + + spi@feb00000 { + pinctrl-names = "default"; + #address-cells = <0x01>; + num-cs = <0x02>; + pinctrl-0 = <0x14e 0x14f 0x150>; + clock-names = "spiclk\0apb_pclk"; + interrupts = <0x00 0x146 0x04>; + clocks = <0x02 0xa3 0x02 0x9e>; + #size-cells = <0x00>; + dma-names = "tx\0rx"; + compatible = "rockchip,rk3066-spi"; + status = "disabled"; + reg = <0x00 0xfeb00000 0x00 0x1000>; + phandle = <0x2ab>; + dmas = <0x7c 0x0e 0x7c 0x0f>; + }; + + pcie@fe170000 { + #address-cells = <0x03>; + rockchip,pipe-grf = <0x76>; + phy-names = "pcie-phy"; + bus-range = <0x20 0x2f>; + clock-names = "aclk_mst\0aclk_slv\0aclk_dbi\0pclk\0aux\0pipe"; + reg-names = "pcie-apb\0pcie-dbi"; + num-ob-windows = <0x08>; + resets = <0x02 0x20f 0x02 0x21e>; + interrupts = <0x00 0xf3 0x04 0x00 0xf2 0x04 0x00 0xf1 0x04 0x00 0xf0 0x04 0x00 0xef 0x04>; + clocks = <0x02 0x150 0x02 0x155 0x02 0x14b 0x02 0x15b 0x02 0x160 0x02 0x2c4>; + interrupt-map = <0x00 0x00 0x00 0x01 0x1bb 0x00 0x00 0x00 0x00 0x02 0x1bb 0x01 0x00 0x00 0x00 0x03 0x1bb 0x02 0x00 0x00 0x00 0x04 0x1bb 0x03>; + #size-cells = <0x02>; + max-link-speed = <0x02>; + device_type = "pci"; + interrupt-map-mask = <0x00 0x00 0x00 0x07>; + num-lanes = <0x01>; + compatible = "rockchip,rk3588-pcie\0snps,dw-pcie"; + ranges = <0x800 0x00 0xf2000000 0x00 0xf2000000 0x00 0x100000 0x81000000 0x00 0xf2100000 0x00 0xf2100000 0x00 0x100000 0x82000000 0x00 0xf2200000 0x00 0xf2200000 0x00 0xe00000 0xc3000000 0x09 0x80000000 0x09 0x80000000 0x00 0x40000000>; + msi-map = <0x2000 0x106 0x2000 0x1000>; + #interrupt-cells = <0x01>; + status = "disabled"; + interrupt-names = "sys\0pmc\0msg\0legacy\0err"; + phys = <0x1bc 0x02>; + num-viewport = <0x04>; + reg = <0x00 0xfe170000 0x00 0x10000 0x0a 0x40800000 0x00 0x400000>; + linux,pci-domain = <0x02>; + phandle = <0x487>; + reset-names = "pcie\0periph"; + num-ib-windows = <0x08>; + + legacy-interrupt-controller { + #address-cells = <0x00>; + interrupts = <0x00 0xf0 0x01>; + interrupt-parent = <0x01>; + #interrupt-cells = <0x01>; + phandle = <0x1bb>; + interrupt-controller; + }; + }; + + i2s@fe470000 { + power-domains = <0x60 0x26>; + pinctrl-names = "default\0idle\0clk"; + pinctrl-2 = <0x11b 0x11c>; + pinctrl-0 = <0x11b 0x11c 0x11d 0x11e>; + clock-names = "mclk_tx\0mclk_rx\0hclk"; + assigned-clocks = <0x02 0x31 0x02 0x35>; + assigned-clock-parents = <0x02 0x05 0x02 0x05>; + resets = <0x02 0x77 0x02 0x7a>; + interrupts = <0x00 0xb4 0x04>; + clocks = <0x02 0x33 0x02 0x37 0x02 0x30>; + dma-names = "tx\0rx"; + #sound-dai-cells = <0x00>; + compatible = "rockchip,rk3588-i2s-tdm"; + pinctrl-1 = <0x11f>; + status = "okay"; + reg = <0x00 0xfe470000 0x00 0x1000>; + phandle = <0x1da>; + dmas = <0x7c 0x00 0x7c 0x01>; + reset-names = "tx-m\0rx-m"; + rockchip,clk-trcm = <0x01>; + }; + + syscon@fd594000 { + compatible = "rockchip,rk3588-litcore-grf\0syscon"; + reg = <0x00 0xfd594000 0x00 0x100>; + phandle = <0x22>; + }; + + csi2-dphy5 { + rockchip,hw = <0x2d 0x2e>; + phy-names = "dcphy0\0dcphy1"; + compatible = "rockchip,rk3588-csi2-dphy"; + status = "disabled"; + phys = <0x2f 0x30>; + phandle = <0x214>; + }; + + usb@fc840000 { + power-domains = <0x60 0x1f>; + phy-names = "usb2-phy"; + clock-names = "usbhost\0arbiter\0utmi\0alk_usb"; + interrupts = <0x00 0xd8 0x04>; + clocks = <0x02 0x19d 0x02 0x19e 0x69 0x6a>; + compatible = "rockchip,rk3588-ohci\0generic-ohci"; + status = "okay"; + phys = <0x6c>; + reg = <0x00 0xfc840000 0x00 0x40000>; + phandle = <0x6b>; + }; + + syscon@fd5b0000 { + compatible = "rockchip,rk3588-php-grf\0syscon"; + reg = <0x00 0xfd5b0000 0x00 0x1000>; + phandle = <0x76>; + }; + + rkcif-mipi-lvds2-sditf-vir3 { + compatible = "rockchip,rkcif-sditf"; + status = "disabled"; + rockchip,cif = <0x55>; + phandle = <0x236>; + }; + + rkisp1-vir1 { + rockchip,hw = <0x5a>; + compatible = "rockchip,rkisp-vir"; + status = "disabled"; + phandle = <0x240>; + }; + + i2c@feaa0000 { + pinctrl-names = "default"; + #address-cells = <0x01>; + pinctrl-0 = <0x149>; + clock-names = "i2c\0pclk"; + resets = <0x02 0xb1 0x02 0xa9>; + interrupts = <0x00 0x13f 0x04>; + clocks = <0x02 0x8e 0x02 0x86>; + #size-cells = <0x00>; + compatible = "rockchip,rk3588-i2c\0rockchip,rk3399-i2c"; + status = "disabled"; + reg = <0x00 0xfeaa0000 0x00 0x1000>; + phandle = <0x2a5>; + reset-names = "i2c\0apb"; + }; + + dmc { + downdifferential = <0x14>; + clock-names = "dmc_clk"; + interrupts = <0x00 0x49 0x04>; + clocks = <0x0e 0x04>; + upthreshold = <0x28>; + center-supply = <0x42>; + devfreq-events = <0x40>; + compatible = "rockchip,rk3588-dmc"; + status = "disabled"; + interrupt-names = "complete"; + mem-supply = <0x43>; + phandle = <0x21f>; + operating-points-v2 = <0x41>; + system-status-level = <0x01 0x04 0x08 0x08 0x02 0x01 0x10 0x04 0x10000 0x04 0x80000 0x04 0x1000 0x08 0x4000 0x08 0x2000 0x08 0xc00 0x08 0x40000 0x08 0x200000 0x08>; + auto-freq-en = <0x01>; + }; + + hdmi1-sound { + rockchip,jack-det; + rockchip,cpu = <0x1e0>; + rockchip,codec = <0x1e1>; + rockchip,card-name = "rockchip-hdmi1"; + compatible = "rockchip,hdmi"; + status = "disabled"; + phandle = <0x4a8>; + rockchip,mclk-fs = <0x80>; + }; + + qos@fdf3d800 { + compatible = "syscon"; + reg = <0x00 0xfdf3d800 0x00 0x20>; + phandle = <0xb0>; + }; + + mipi-dcphy-dummy { + phandle = <0x223>; + }; + + jpege-core@fdbac000 { + power-domains = <0x60 0x15>; + iommus = <0xc0>; + rockchip,ccu = <0xbd>; + clock-names = "aclk_vcodec\0hclk_vcodec"; + assigned-clocks = <0x02 0x1b2>; + rockchip,normal-rates = <0x2367b880 0x00>; + assigned-clock-rates = <0x2367b880>; + resets = <0x02 0x2d0 0x02 0x2d1>; + interrupts = <0x00 0x80 0x04>; + clocks = <0x02 0x1b2 0x02 0x1b3>; + rockchip,srv = <0xb8>; + rockchip,taskqueue-node = <0x02>; + rockchip,disable-auto-freq; + compatible = "rockchip,vpu-jpege-core"; + status = "okay"; + interrupt-names = "irq_jpege3"; + rockchip,skip-pmu-idle-request; + reg = <0x00 0xfdbac000 0x00 0x400>; + phandle = <0x270>; + reset-names = "video_a\0video_h"; + }; + + iommu@fdce0800 { + power-domains = <0x60 0x1b>; + clock-names = "aclk\0iface"; + interrupts = <0x00 0x71 0x04>; + clocks = <0x02 0x1e4 0x02 0x1e5>; + #iommu-cells = <0x00>; + compatible = "rockchip,iommu-v2"; + rockchip,disable-mmu-reset; + status = "okay"; + interrupt-names = "cif_mmu"; + reg = <0x00 0xfdce0800 0x00 0x100 0x00 0xfdce0900 0x00 0x100>; + phandle = <0x50>; + }; + + qos@fdf35400 { + compatible = "syscon"; + reg = <0x00 0xfdf35400 0x00 0x20>; + phandle = <0x89>; + }; + + syscon@fd5a8000 { + clocks = <0x73>; + compatible = "rockchip,rk3588-vo-grf\0syscon"; + reg = <0x00 0xfd5a8000 0x00 0x100>; + phandle = <0xd8>; + }; + + dp0-sound { + rockchip,jack-det; + rockchip,cpu = <0x1d5>; + rockchip,codec = <0x1d6 0x01>; + rockchip,card-name = "rockchip-dp0"; + compatible = "rockchip,hdmi"; + status = "disabled"; + phandle = <0x49c>; + rockchip,mclk-fs = <0x200>; + }; + + rkcif-mipi-lvds4 { + iommus = <0x50>; + rockchip,hw = <0x4f>; + compatible = "rockchip,rkcif-mipi-lvds"; + status = "disabled"; + phandle = <0x1a1>; + }; + + usb@fc880000 { + power-domains = <0x60 0x1f>; + phy-names = "usb2-phy"; + clock-names = "usbhost\0arbiter\0utmi\0alk_usb"; + companion = <0x6e>; + interrupts = <0x00 0xda 0x04>; + clocks = <0x02 0x19f 0x02 0x1a0 0x6d 0x6a>; + compatible = "rockchip,rk3588-ehci\0generic-ehci"; + status = "okay"; + phys = <0x6f>; + reg = <0x00 0xfc880000 0x00 0x40000>; + phandle = <0x255>; + }; + + qos@fdf62000 { + compatible = "syscon"; + reg = <0x00 0xfdf62000 0x00 0x20>; + phandle = <0x8b>; + }; + + syscon@fd5f0000 { + compatible = "rockchip,rk3588-ioc\0syscon"; + reg = <0x00 0xfd5f0000 0x00 0x10000>; + phandle = <0x196>; + }; + + mipi1-csi2 { + rockchip,hw = <0x47 0x48 0x49 0x4a 0x4b 0x4c>; + compatible = "rockchip,rk3588-mipi-csi2"; + status = "disabled"; + phandle = <0x225>; + }; + + hdmiphy@fed70000 { + clock-names = "ref\0apb"; + resets = <0x02 0x491 0x02 0x486 0x02 0xc003f 0x02 0xc0040 0x02 0xc0041 0x02 0x48f 0x02 0x490>; + clocks = <0x02 0x2b5 0x02 0x268>; + #phy-cells = <0x00>; + compatible = "rockchip,rk3588-hdptx-phy-hdmi"; + status = "disabled"; + rockchip,grf = <0x1c7>; + reg = <0x00 0xfed70000 0x00 0x2000>; + phandle = <0x1ac>; + reset-names = "phy\0apb\0init\0cmn\0lane\0ropll\0lcpll"; + + clk-port { + #clock-cells = <0x00>; + status = "okay"; + phandle = <0x36>; + }; + }; + + i2c@fec80000 { + pinctrl-names = "default"; + #address-cells = <0x01>; + pinctrl-0 = <0x178>; + clock-names = "i2c\0pclk"; + resets = <0x02 0xb5 0x02 0xad>; + interrupts = <0x00 0x143 0x04>; + clocks = <0x02 0x92 0x02 0x8a>; + #size-cells = <0x00>; + compatible = "rockchip,rk3588-i2c\0rockchip,rk3399-i2c"; + status = "okay"; + reg = <0x00 0xfec80000 0x00 0x1000>; + phandle = <0x2df>; + reset-names = "i2c\0apb"; + + imx415@37 { + power-domains = <0x60 0x1b>; + pinctrl-names = "default"; + pinctrl-0 = <0x180>; + clock-names = "xvclk"; + clocks = <0x02 0x100>; + firefly,clkout-enabled-index = <0x00>; + rockchip,camera-module-name = "CMK-OT2022-PX1"; + reset-gpios = <0x182 0x05 0x01>; + rockchip,camera-module-index = <0x00>; + compatible = "sony,imx415"; + rockchip,camera-module-facing = "back"; + power-gpios = <0x181 0x1d 0x00>; + reg = <0x37>; + rockchip,camera-module-lens-name = "IR0147-50IRC-8M-F20"; + phandle = <0x2e3>; + + port { + + endpoint { + data-lanes = <0x01 0x02 0x03 0x04>; + remote-endpoint = <0x184>; + phandle = <0x32>; + }; + }; + }; + + es8388@11 { + pinctrl-names = "default"; + pinctrl-0 = <0x17a>; + clock-names = "mclk"; + assigned-clocks = <0x179>; + assigned-clock-rates = <0xbb8000>; + clocks = <0x179>; + #sound-dai-cells = <0x00>; + compatible = "everest,es8388\0everest,es8323"; + status = "okay"; + reg = <0x11>; + phandle = <0x1db>; + }; + + XC7160b@1b { + power-domains = <0x60 0x1b>; + pinctrl-names = "default"; + pinctrl-0 = <0x180>; + clock-names = "xvclk"; + pwdn-gpios = <0xfe 0x04 0x00>; + clocks = <0x02 0x100>; + firefly,clkout-enabled-index = <0x00>; + rockchip,camera-module-name = "NC"; + reset-gpios = <0x182 0x05 0x00>; + rockchip,camera-module-index = <0x00>; + compatible = "firefly,xc7160"; + rockchip,camera-module-facing = "back"; + power-gpios = <0x181 0x1d 0x01>; + reg = <0x1b>; + rockchip,camera-module-lens-name = "NC"; + phandle = <0x2e2>; + + port { + + endpoint { + data-lanes = <0x01 0x02 0x03 0x04>; + remote-endpoint = <0x183>; + phandle = <0x31>; + }; + }; + }; + + fusb302@22 { + pinctrl-names = "default"; + pinctrl-0 = <0x17b>; + interrupts = <0x1b 0x08>; + vbus-supply = <0x17c>; + interrupt-parent = <0x7b>; + compatible = "fcs,fusb302"; + status = "disabled"; + reg = <0x22>; + phandle = <0x2e0>; + + connector { + sink-pdos = <0x4019064>; + power-role = "dual"; + source-pdos = <0x401912c>; + data-role = "dual"; + label = "USB-C"; + try-power-role = "sink"; + compatible = "usb-c-connector"; + op-sink-microwatt = <0xf4240>; + phandle = <0x2e1>; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + reg = <0x00>; + + endpoint { + remote-endpoint = <0x17e>; + phandle = <0x18e>; + }; + }; + + port@1 { + reg = <0x01>; + + endpoint { + remote-endpoint = <0x17f>; + phandle = <0x18f>; + }; + }; + }; + + altmodes { + #address-cells = <0x01>; + #size-cells = <0x00>; + + altmode@0 { + svid = <0xff01>; + vdo = <0xffffffff>; + reg = <0x00>; + }; + }; + }; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + reg = <0x00>; + + endpoint@0 { + remote-endpoint = <0x17d>; + phandle = <0x68>; + }; + }; + }; + }; + }; + + syscon@fd5e8000 { + compatible = "rockchip,mipi-dcphy-grf\0syscon"; + reg = <0x00 0xfd5e8000 0x00 0x4000>; + phandle = <0x190>; + }; + + vbus5v0-typec-pwr-en-regulator { + gpio = <0x182 0x0c 0x00>; + enable-active-high; + regulator-name = "vbus5v0_typec_pwr_en"; + compatible = "regulator-fixed"; + status = "disabled"; + phandle = <0x17c>; + }; + + mipi2-csi2-hw@fdd30000 { + clock-names = "pclk_csi2host"; + reg-names = "csihost_regs"; + resets = <0x02 0x326>; + interrupts = <0x00 0x93 0x04 0x00 0x94 0x04>; + clocks = <0x02 0x1d1>; + compatible = "rockchip,rk3588-mipi-csi2-hw"; + status = "okay"; + interrupt-names = "csi-intr1\0csi-intr2"; + reg = <0x00 0xfdd30000 0x00 0x10000>; + phandle = <0x49>; + reset-names = "srst_csihost_p"; + }; + + spdif-rx@fde18000 { + power-domains = <0x60 0x1a>; + clock-names = "mclk\0hclk"; + assigned-clocks = <0x02 0x262>; + assigned-clock-parents = <0x02 0x05>; + resets = <0x02 0x401>; + interrupts = <0x00 0xc9 0x04>; + clocks = <0x02 0x262 0x02 0x261>; + dma-names = "rx"; + #sound-dai-cells = <0x00>; + compatible = "rockchip,rk3588-spdifrx\0rockchip,rk3308-spdifrx"; + status = "disabled"; + reg = <0x00 0xfde18000 0x00 0x1000>; + phandle = <0x480>; + dmas = <0x7c 0x17>; + reset-names = "spdifrx-m"; + }; + + syscon@fd5a2000 { + compatible = "rockchip,rk3588-npu-grf\0syscon"; + reg = <0x00 0xfd5a2000 0x00 0x100>; + phandle = <0xb6>; + }; + + rkisp0-vir3 { + rockchip,hw = <0x58>; + compatible = "rockchip,rkisp-vir"; + status = "disabled"; + phandle = <0x23e>; + }; + + qos@fdf66200 { + compatible = "syscon"; + reg = <0x00 0xfdf66200 0x00 0x20>; + phandle = <0x94>; + }; + + rkcif@fdce0000 { + power-domains = <0x60 0x1b>; + iommus = <0x50>; + nvmem-cells = <0x21 0xd4 0xd5>; + clock-names = "aclk_cif\0hclk_cif\0dclk_cif\0iclk_host0\0iclk_host1"; + reg-names = "cif_regs"; + assigned-clocks = <0x02 0x1e3>; + assigned-clock-rates = <0x23c34600>; + resets = <0x02 0x317 0x02 0x318 0x02 0x316 0x02 0x334 0x02 0x335 0x02 0x336 0x02 0x337 0x02 0x338 0x02 0x339>; + interrupts = <0x00 0x9b 0x04>; + clocks = <0x02 0x1e4 0x02 0x1e5 0x02 0x1e3 0x02 0x1cd 0x02 0x1ce>; + compatible = "rockchip,rk3588-cif"; + status = "okay"; + rockchip,grf = <0xc8>; + interrupt-names = "cif-intr"; + nvmem-cell-names = "specification\0package_low\0package_high"; + reg = <0x00 0xfdce0000 0x00 0x800>; + phandle = <0x4f>; + reset-names = "rst_cif_a\0rst_cif_h\0rst_cif_d\0rst_cif_host0\0rst_cif_host1\0rst_cif_host2\0rst_cif_host3\0rst_cif_host4\0rst_cif_host5"; + }; + + edp@fdec0000 { + power-domains = <0x60 0x1a>; + phy-names = "dp"; + clock-names = "dp\0pclk\0spdif\0hclk"; + resets = <0x02 0x3e1 0x02 0x3e0>; + interrupts = <0x00 0xa3 0x04>; + clocks = <0x02 0x211 0x02 0x210 0x02 0x212 0x05>; + compatible = "rockchip,rk3588-edp"; + status = "disabled"; + rockchip,grf = <0xd8>; + phys = <0x101>; + reg = <0x00 0xfdec0000 0x00 0x1000>; + phandle = <0x289>; + reset-names = "dp\0apb"; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x00>; + + endpoint@1 { + remote-endpoint = <0x103>; + status = "disabled"; + reg = <0x01>; + phandle = <0xe1>; + }; + + endpoint@2 { + remote-endpoint = <0x3b>; + status = "disabled"; + reg = <0x02>; + phandle = <0xe7>; + }; + + endpoint@0 { + remote-endpoint = <0x102>; + status = "disabled"; + reg = <0x00>; + phandle = <0xdb>; + }; + }; + + port@1 { + reg = <0x01>; + + endpoint { + phandle = <0x28a>; + }; + }; + }; + }; + + qos@fdf72400 { + compatible = "syscon"; + reg = <0x00 0xfdf72400 0x00 0x20>; + phandle = <0x84>; + }; + + dp@fde60000 { + power-domains = <0x60 0x19>; + clock-names = "apb\0aux\0i2s\0spdif\0hclk\0hdcp"; + assigned-clocks = <0x02 0x2cd>; + assigned-clock-rates = <0xf42400>; + resets = <0x02 0x389>; + interrupts = <0x00 0xa2 0x04>; + clocks = <0x02 0x1e7 0x02 0x2cd 0x02 0x201 0x02 0x20d 0x04 0x02 0x1eb>; + #sound-dai-cells = <0x01>; + compatible = "rockchip,rk3588-dp"; + status = "disabled"; + phys = <0x1a5>; + reg = <0x00 0xfde60000 0x00 0x4000>; + phandle = <0x1e3>; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x00>; + + endpoint@1 { + remote-endpoint = <0x3e>; + status = "disabled"; + reg = <0x01>; + phandle = <0xe3>; + }; + + endpoint@2 { + remote-endpoint = <0x1a7>; + status = "disabled"; + reg = <0x02>; + phandle = <0xeb>; + }; + + endpoint@0 { + remote-endpoint = <0x1a6>; + status = "disabled"; + reg = <0x00>; + phandle = <0xdd>; + }; + }; + + port@1 { + reg = <0x01>; + + endpoint { + phandle = <0x481>; + }; + }; + }; + }; + + vcc5v0-usbdcin { + regulator-max-microvolt = <0x4c4b40>; + regulator-boot-on; + regulator-always-on; + regulator-min-microvolt = <0x4c4b40>; + regulator-name = "vcc5v0_usbdcin"; + compatible = "regulator-fixed"; + phandle = <0x48c>; + vin-supply = <0x1cd>; + }; + + rkvdec-core@fdc48000 { + power-domains = <0x60 0x0f>; + iommus = <0xcc>; + rockchip,ccu = <0xca>; + clock-names = "aclk_vcodec\0hclk_vcodec\0clk_core\0clk_cabac\0clk_hevc_cabac"; + reg-names = "regs\0link"; + assigned-clocks = <0x02 0x195 0x02 0x198 0x02 0x196 0x02 0x197>; + rockchip,core-mask = <0x20002>; + rockchip,task-capacity = <0x10>; + rockchip,normal-rates = <0x2faf0800 0x00 0x23c34600 0x23c34600 0x3b9aca00>; + assigned-clock-rates = <0x2faf0800 0x23c34600 0x23c34600 0x3b9aca00>; + resets = <0x02 0x293 0x02 0x292 0x02 0x298 0x02 0x296 0x02 0x297>; + interrupts = <0x00 0x61 0x04>; + rockchip,rcb-info = <0x88 0x6000 0x89 0xc000 0x8d 0x16000 0x8c 0xc000 0x8b 0x2c000 0x85 0xc000 0x86 0x2000 0x87 0x1100 0x8a 0x3300 0x8e 0x47300>; + clocks = <0x02 0x195 0x02 0x194 0x02 0x198 0x02 0x196 0x02 0x197>; + rockchip,rcb-min-width = <0x200>; + rockchip,srv = <0xb8>; + rockchip,taskqueue-node = <0x09>; + compatible = "rockchip,rkv-decoder-v2"; + status = "okay"; + interrupt-names = "irq_rkvdec1"; + rockchip,skip-pmu-idle-request; + rockchip,rcb-iova = <0xffe00000 0x100000>; + reg = <0x00 0xfdc48100 0x00 0x400 0x00 0xfdc48000 0x00 0x100>; + phandle = <0x275>; + reset-names = "video_a\0video_h\0video_core\0video_cabac\0video_hevc_cabac"; + rockchip,sram = <0xcd>; + }; + + vcc-1v1-nldo-s3 { + regulator-max-microvolt = <0x10c8e0>; + regulator-boot-on; + regulator-always-on; + regulator-min-microvolt = <0x10c8e0>; + regulator-name = "vcc_1v1_nldo_s3"; + compatible = "regulator-fixed"; + phandle = <0x15c>; + vin-supply = <0x78>; + }; + + power-management@fd8d8000 { + compatible = "rockchip,rk3588-pmu\0syscon\0simple-mfd"; + reg = <0x00 0xfd8d8000 0x00 0x400>; + phandle = <0xd9>; + + power-controller { + #address-cells = <0x01>; + #size-cells = <0x00>; + #power-domain-cells = <0x01>; + compatible = "rockchip,rk3588-power-controller"; + status = "okay"; + phandle = <0x60>; + + power-domain@37 { + clocks = <0x02 0x199 0x02 0x140>; + reg = <0x25>; + pm_qos = <0xaf>; + }; + + power-domain@27 { + #address-cells = <0x01>; + clocks = <0x02 0x1e1 0x02 0x1e2 0x02 0x1df 0x02 0x1de 0x02 0x1e5 0x02 0x1e4>; + #size-cells = <0x00>; + reg = <0x1b>; + pm_qos = <0xa2 0xa3 0xa4 0xa5>; + + power-domain@29 { + clocks = <0x02 0x1d6 0x02 0x1d5 0x02 0x1d9 0x02 0x1d8 0x02 0x1e2>; + reg = <0x1d>; + pm_qos = <0xa8 0xa9>; + }; + + power-domain@28 { + clocks = <0x02 0x121 0x02 0x120 0x02 0x1e1 0x02 0x1e2>; + reg = <0x1c>; + pm_qos = <0xa6 0xa7>; + }; + }; + + power-domain@33 { + clocks = <0x02 0x166 0x02 0x169 0x02 0x16a>; + reg = <0x21>; + }; + + power-domain@13 { + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x0d>; + + power-domain@15 { + clocks = <0x02 0x194 0x02 0x1be 0x02 0x1bc 0x02 0x195>; + reg = <0x0f>; + pm_qos = <0x8c>; + }; + + power-domain@16 { + #address-cells = <0x01>; + clocks = <0x02 0x1c4 0x02 0x1c5>; + #size-cells = <0x00>; + reg = <0x10>; + pm_qos = <0x8d 0x8e 0x8f>; + + power-domain@17 { + clocks = <0x02 0x1c9 0x02 0x1c4 0x02 0x1c5 0x02 0x1ca>; + reg = <0x11>; + pm_qos = <0x90 0x91 0x92>; + }; + }; + + power-domain@14 { + clocks = <0x02 0x18f 0x02 0x1be 0x02 0x1bc 0x02 0x190 0x02 0x18e>; + reg = <0x0e>; + pm_qos = <0x8b>; + }; + }; + + power-domain@31 { + clocks = <0x02 0x166 0x02 0x1a1 0x02 0x1a4 0x02 0x19d 0x02 0x19e 0x02 0x19f 0x02 0x1a0>; + reg = <0x1f>; + pm_qos = <0xab 0xac 0xad 0xae>; + }; + + power-domain@21 { + #address-cells = <0x01>; + clocks = <0x02 0x1be 0x02 0x1bd 0x02 0x1bc 0x02 0x1bf 0x02 0x1aa 0x02 0x1a9 0x02 0x1ac 0x02 0x1ad 0x02 0x1ae 0x02 0x1af 0x02 0x1b0 0x02 0x1b1 0x02 0x1b2 0x02 0x1b3 0x02 0x1b4 0x02 0x1b5 0x02 0x1b7 0x02 0x1b6>; + #size-cells = <0x00>; + reg = <0x15>; + pm_qos = <0x93 0x94 0x95 0x96 0x97 0x98 0x99 0x9a>; + + power-domain@15 { + clocks = <0x02 0x194 0x02 0x1be 0x02 0x1bc>; + reg = <0x0f>; + pm_qos = <0x8c>; + }; + + power-domain@23 { + clocks = <0x02 0x4b 0x02 0x49 0x02 0x1be>; + reg = <0x17>; + pm_qos = <0x9b>; + }; + + power-domain@14 { + clocks = <0x02 0x18f 0x02 0x1be 0x02 0x1bc 0x02 0x190>; + reg = <0x0e>; + pm_qos = <0x8b>; + }; + + power-domain@22 { + clocks = <0x02 0x1ba 0x02 0x1b9>; + reg = <0x16>; + pm_qos = <0x9c>; + }; + }; + + power-domain@38 { + clocks = <0x02 0x3c 0x02 0x3d>; + reg = <0x26>; + }; + + power-domain@8 { + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x08>; + + power-domain@9 { + #address-cells = <0x01>; + clocks = <0x02 0x12f 0x02 0x131 0x02 0x130 0x02 0x126>; + #size-cells = <0x00>; + reg = <0x09>; + pm_qos = <0x82 0x83 0x84>; + + power-domain@11 { + clocks = <0x02 0x12f 0x02 0x131 0x02 0x130>; + reg = <0x0b>; + pm_qos = <0x86>; + }; + + power-domain@10 { + clocks = <0x02 0x12f 0x02 0x131 0x02 0x130>; + reg = <0x0a>; + pm_qos = <0x85>; + }; + }; + }; + + power-domain@26 { + clocks = <0x02 0x22e 0x02 0x22f 0x02 0x22d 0x02 0x218 0x02 0x217 0x02 0x22b 0x02 0x264>; + reg = <0x1a>; + pm_qos = <0xa0 0xa1>; + }; + + power-domain@34 { + clocks = <0x02 0x166 0x02 0x169 0x02 0x16a>; + reg = <0x22>; + }; + + power-domain@24 { + #address-cells = <0x01>; + clocks = <0x02 0x26e 0x02 0x26d 0x02 0x270>; + #size-cells = <0x00>; + reg = <0x18>; + pm_qos = <0x9d 0x9e>; + + power-domain@25 { + clocks = <0x02 0x1f6 0x02 0x1f7 0x02 0x1f5 0x02 0x1f3 0x02 0x1ee 0x02 0x1ed 0x02 0x26d>; + reg = <0x19>; + pm_qos = <0x9f>; + }; + }; + + power-domain@12 { + clocks = <0x02 0x114 0x02 0x115 0x02 0x116>; + reg = <0x0c>; + pm_qos = <0x87 0x88 0x89 0x8a>; + }; + + power-domain@40 { + reg = <0x28>; + pm_qos = <0xb0>; + }; + + power-domain@30 { + clocks = <0x02 0x189 0x02 0x18a>; + reg = <0x1e>; + pm_qos = <0xaa>; + }; + }; + }; + + csi2-dphy3 { + rockchip,hw = <0x2d 0x2e>; + phy-names = "dcphy0\0dcphy1"; + compatible = "rockchip,rk3588-csi2-dphy"; + status = "disabled"; + phys = <0x2f 0x30>; + phandle = <0x212>; + }; + + qos@fdf3e000 { + compatible = "syscon"; + reg = <0x00 0xfdf3e000 0x00 0x20>; + phandle = <0xac>; + }; + + pwm@fd8b0030 { + pinctrl-names = "active"; + pinctrl-0 = <0x81>; + clock-names = "pwm\0pclk"; + interrupts = <0x00 0x158 0x04 0x00 0x159 0x04>; + clocks = <0x02 0x2a5 0x02 0x2a4>; + #pwm-cells = <0x03>; + compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; + status = "disabled"; + reg = <0x00 0xfd8b0030 0x00 0x10>; + phandle = <0x264>; + }; + + rkcif-mipi-lvds2-sditf-vir1 { + compatible = "rockchip,rkcif-sditf"; + status = "disabled"; + rockchip,cif = <0x55>; + phandle = <0x234>; + }; + + syscon@fd5cc000 { + compatible = "rockchip,rk3588-usbdpphy-grf\0syscon"; + reg = <0x00 0xfd5cc000 0x00 0x4000>; + phandle = <0x1c9>; + }; + + vdpu@fdb50400 { + power-domains = <0x60 0x15>; + iommus = <0xb7>; + clock-names = "aclk_vcodec\0hclk_vcodec"; + assigned-clocks = <0x02 0x1c0>; + rockchip,normal-rates = <0x2367b880 0x00>; + assigned-clock-rates = <0x2367b880>; + resets = <0x02 0x2c8 0x02 0x2c9>; + interrupts = <0x00 0x77 0x04>; + clocks = <0x02 0x1c0 0x02 0x1c1>; + rockchip,srv = <0xb8>; + rockchip,taskqueue-node = <0x00>; + rockchip,disable-auto-freq; + compatible = "rockchip,vpu-decoder-v2"; + rockchip,resetgroup-node = <0x00>; + status = "okay"; + interrupt-names = "irq_vdpu"; + rockchip,skip-pmu-idle-request; + reg = <0x00 0xfdb50400 0x00 0x400>; + phandle = <0x267>; + reset-names = "shared_video_a\0shared_video_h"; + }; + + qos@fdf60200 { + compatible = "syscon"; + reg = <0x00 0xfdf60200 0x00 0x20>; + phandle = <0x8e>; + }; + + pwm@febe0030 { + pinctrl-names = "active"; + pinctrl-0 = <0x170>; + clock-names = "pwm\0pclk"; + interrupts = <0x00 0x15c 0x04 0x00 0x15d 0x04>; + clocks = <0x02 0x57 0x02 0x56>; + #pwm-cells = <0x03>; + compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; + status = "disabled"; + reg = <0x00 0xfebe0030 0x00 0x10>; + phandle = <0x2d8>; + }; + + display-subsystem { + memory-region-names = "drm-logo"; + clock-names = "hdmi0_phy_pll\0hdmi1_phy_pll"; + ports = <0x34>; + memory-region = <0x37>; + clocks = <0x35 0x36>; + compatible = "rockchip,display-subsystem"; + phandle = <0x215>; + + route { + + route-edp1 { + logo,kernel = "logo_kernel.bmp"; + logo,uboot = "logo.bmp"; + charge_logo,mode = "center"; + logo,mode = "center"; + status = "disabled"; + phandle = <0x21a>; + }; + + route-hdmi1 { + logo,kernel = "logo_kernel.bmp"; + logo,uboot = "logo.bmp"; + charge_logo,mode = "center"; + connect = <0x3f>; + logo,mode = "center"; + status = "disabled"; + phandle = <0x21e>; + }; + + route-dp1 { + logo,kernel = "logo_kernel.bmp"; + logo,uboot = "logo.bmp"; + charge_logo,mode = "center"; + connect = <0x3e>; + logo,mode = "center"; + status = "disabled"; + phandle = <0x21d>; + }; + + route-dsi1 { + logo,kernel = "logo_kernel.bmp"; + logo,uboot = "logo.bmp"; + charge_logo,mode = "center"; + connect = <0x3a>; + logo,mode = "center"; + status = "disabled"; + phandle = <0x218>; + }; + + route-edp0 { + logo,kernel = "logo_kernel.bmp"; + logo,uboot = "logo.bmp"; + charge_logo,mode = "center"; + connect = <0x3b>; + logo,mode = "center"; + status = "disabled"; + phandle = <0x219>; + }; + + route-hdmi0 { + logo,kernel = "logo_kernel.bmp"; + logo,uboot = "logo.bmp"; + charge_logo,mode = "center"; + connect = <0x3c>; + logo,mode = "center"; + status = "okay"; + phandle = <0x21b>; + }; + + route-dp0 { + logo,kernel = "logo_kernel.bmp"; + logo,uboot = "logo.bmp"; + charge_logo,mode = "center"; + connect = <0x38>; + logo,mode = "center"; + status = "disabled"; + phandle = <0x216>; + }; + + route-rgb { + logo,kernel = "logo_kernel.bmp"; + logo,uboot = "logo.bmp"; + charge_logo,mode = "center"; + connect = <0x3d>; + logo,mode = "center"; + status = "disabled"; + phandle = <0x21c>; + }; + + route-dsi0 { + logo,kernel = "logo_kernel.bmp"; + logo,uboot = "logo.bmp"; + charge_logo,mode = "center"; + connect = <0x39>; + logo,mode = "center"; + status = "disabled"; + phandle = <0x217>; + }; + }; + }; + + serial@febc0000 { + reg-io-width = <0x04>; + pinctrl-names = "default"; + pinctrl-0 = <0x168>; + clock-names = "baudclk\0apb_pclk"; + interrupts = <0x00 0x154 0x04>; + clocks = <0x02 0xd7 0x02 0xb3>; + compatible = "rockchip,rk3588-uart\0snps,dw-apb-uart"; + status = "disabled"; + reg = <0x00 0xfebc0000 0x00 0x100>; + phandle = <0x2d1>; + dmas = <0xf2 0x0b 0xf2 0x0c>; + reg-shift = <0x02>; + }; + + adc-keys { + io-channels = <0x1d9 0x01>; + poll-interval = <0x64>; + keyup-threshold-microvolt = <0x1b7740>; + compatible = "adc-keys"; + status = "okay"; + phandle = <0x49e>; + io-channel-names = "buttons"; + + recovery-key { + press-threshold-microvolt = <0x4268>; + label = "F12"; + linux,code = <0x58>; + }; + }; + + pvtm@fdaf0000 { + #address-cells = <0x01>; + #size-cells = <0x00>; + compatible = "rockchip,rk3588-npu-pvtm"; + reg = <0x00 0xfdaf0000 0x00 0x100>; + + pvtm@3 { + clock-names = "clk\0pclk"; + resets = <0x02 0x1de 0x02 0x1dc>; + clocks = <0x02 0x12b 0x02 0x129>; + reg = <0x03>; + reset-names = "rts\0rst-p"; + }; + }; + + codec-digital@fe500000 { + power-domains = <0x60 0x26>; + pinctrl-names = "default"; + pinctrl-0 = <0x144>; + clock-names = "dac\0pclk"; + resets = <0x02 0x84>; + clocks = <0x02 0x29 0x02 0x2f>; + #sound-dai-cells = <0x00>; + compatible = "rockchip,rk3588-codec-digital\0rockchip,codec-digital-v1"; + status = "disabled"; + rockchip,grf = <0xc8>; + reg = <0x00 0xfe500000 0x00 0x1000>; + phandle = <0x29e>; + reset-names = "reset"; + rockchip,pwm-output-mode; + }; + + pwm@fd8b0020 { + pinctrl-names = "active"; + pinctrl-0 = <0x80>; + clock-names = "pwm\0pclk"; + interrupts = <0x00 0x158 0x04>; + clocks = <0x02 0x2a5 0x02 0x2a4>; + #pwm-cells = <0x03>; + compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; + status = "disabled"; + reg = <0x00 0xfd8b0020 0x00 0x10>; + phandle = <0x263>; + }; + + rkcif-mipi-lvds2 { + iommus = <0x50>; + rockchip,hw = <0x4f>; + compatible = "rockchip,rkcif-mipi-lvds"; + status = "okay"; + phandle = <0x55>; + + port { + + endpoint { + remote-endpoint = <0x54>; + phandle = <0x4e>; + }; + }; + }; + + pwm@febe0020 { + pinctrl-names = "active"; + pinctrl-0 = <0x16f>; + clock-names = "pwm\0pclk"; + interrupts = <0x00 0x15c 0x04>; + clocks = <0x02 0x57 0x02 0x56>; + #pwm-cells = <0x03>; + compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; + status = "disabled"; + reg = <0x00 0xfebe0020 0x00 0x10>; + phandle = <0x2d7>; + }; + + vcc-fan-pwr-en-regulator { + regulator-boot-on; + gpio = <0x182 0x0b 0x00>; + regulator-always-on; + enable-active-high; + regulator-name = "vcc_fan_pwr_en"; + compatible = "regulator-fixed"; + status = "disabled"; + phandle = <0x4a4>; + }; + + iommu@fdba0800 { + power-domains = <0x60 0x15>; + clock-names = "aclk\0iface"; + interrupts = <0x00 0x79 0x04>; + clocks = <0x02 0x1ac 0x02 0x1ad>; + #iommu-cells = <0x00>; + compatible = "rockchip,iommu-v2"; + status = "okay"; + interrupt-names = "irq_jpege0_mmu"; + reg = <0x00 0xfdba0800 0x00 0x40>; + phandle = <0xbc>; + }; + + rkcif-mipi-lvds1-sditf-vir2 { + compatible = "rockchip,rkcif-sditf"; + status = "disabled"; + rockchip,cif = <0x53>; + phandle = <0x231>; + }; + + arm-pmu { + interrupt-affinity = <0x06 0x07 0x08 0x09 0x0a 0x0b 0x0c 0x0d>; + interrupts = <0x01 0x07 0x08>; + compatible = "arm,armv8-pmuv3"; + phandle = <0x20c>; + }; + + pvtm@fda40000 { + #address-cells = <0x01>; + #size-cells = <0x00>; + compatible = "rockchip,rk3588-bigcore0-pvtm"; + reg = <0x00 0xfda40000 0x00 0x100>; + + pvtm@0 { + clock-names = "clk\0pclk"; + clocks = <0x02 0x2c6 0x02 0x15>; + reg = <0x00>; + }; + }; + + pwm@fd8b0010 { + pinctrl-names = "active"; + pinctrl-0 = <0x7f>; + clock-names = "pwm\0pclk"; + interrupts = <0x00 0x158 0x04>; + clocks = <0x02 0x2a5 0x02 0x2a4>; + #pwm-cells = <0x03>; + compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; + status = "disabled"; + reg = <0x00 0xfd8b0010 0x00 0x10>; + phandle = <0x262>; + }; + + i2s@fddc0000 { + power-domains = <0x60 0x19>; + clock-names = "mclk_tx\0mclk_rx\0hclk"; + assigned-clocks = <0x02 0x1f9>; + assigned-clock-parents = <0x02 0x05>; + resets = <0x02 0x38d>; + interrupts = <0x00 0xb8 0x04>; + clocks = <0x02 0x1fb 0x02 0x1fb 0x02 0x1f0>; + dma-names = "tx"; + #sound-dai-cells = <0x00>; + compatible = "rockchip,rk3588-i2s-tdm"; + rockchip,playback-only; + status = "disabled"; + reg = <0x00 0xfddc0000 0x00 0x1000>; + phandle = <0x27d>; + dmas = <0xf2 0x00>; + reset-names = "tx-m"; + }; + + qos@fdf61400 { + compatible = "syscon"; + reg = <0x00 0xfdf61400 0x00 0x20>; + phandle = <0x92>; + }; + + syscon@fd5d4000 { + #address-cells = <0x01>; + #size-cells = <0x01>; + compatible = "rockchip,rk3588-usb2phy-grf\0syscon\0simple-mfd"; + reg = <0x00 0xfd5d4000 0x00 0x4000>; + phandle = <0x1c8>; + + usb2-phy@4000 { + clock-output-names = "usb480m_phy1"; + clock-names = "phyclk"; + resets = <0x02 0xc0048 0x02 0x489>; + interrupts = <0x00 0x18a 0x04>; + clocks = <0x02 0x2b5>; + #clock-cells = <0x00>; + rockchip,usbctrl-grf = <0x74>; + compatible = "rockchip,rk3588-usb2phy"; + status = "okay"; + reg = <0x4000 0x10>; + phandle = <0x1ca>; + reset-names = "phy\0apb"; + + otg-port { + phy-supply = <0x75>; + #phy-cells = <0x00>; + status = "okay"; + phandle = <0x1a3>; + }; + }; + }; + + rkisp0-vir1 { + rockchip,hw = <0x58>; + compatible = "rockchip,rkisp-vir"; + status = "disabled"; + phandle = <0x23c>; + }; + + pwm@febe0010 { + pinctrl-names = "active"; + pinctrl-0 = <0x16e>; + clock-names = "pwm\0pclk"; + interrupts = <0x00 0x15c 0x04>; + clocks = <0x02 0x57 0x02 0x56>; + #pwm-cells = <0x03>; + compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; + status = "disabled"; + reg = <0x00 0xfebe0010 0x00 0x10>; + phandle = <0x2d6>; + }; + + thermal-zones { + phandle = <0x248>; + + bigcore1-thermal { + polling-delay = <0x3e8>; + polling-delay-passive = <0x14>; + thermal-sensors = <0x5d 0x02>; + phandle = <0x24d>; + }; + + soc-thermal { + polling-delay = <0x3e8>; + polling-delay-passive = <0x14>; + thermal-sensors = <0x5d 0x00>; + sustainable-power = <0x834>; + phandle = <0x249>; + + trips { + + trip-point-0 { + temperature = <0x124f8>; + hysteresis = <0x7d0>; + type = "passive"; + phandle = <0x24a>; + }; + + trip-point-1 { + temperature = <0x14c08>; + hysteresis = <0x7d0>; + type = "passive"; + phandle = <0x5e>; + }; + + soc-crit { + temperature = <0x1c138>; + hysteresis = <0x7d0>; + type = "critical"; + phandle = <0x24b>; + }; + }; + + cooling-maps { + + map2 { + trip = <0x5e>; + cooling-device = <0x0c 0xffffffff 0xffffffff>; + contribution = <0x400>; + }; + + map0 { + trip = <0x5e>; + cooling-device = <0x06 0xffffffff 0xffffffff>; + contribution = <0x400>; + }; + + map3 { + trip = <0x5e>; + cooling-device = <0x5f 0xffffffff 0xffffffff>; + contribution = <0x400>; + }; + + map1 { + trip = <0x5e>; + cooling-device = <0x0a 0xffffffff 0xffffffff>; + contribution = <0x400>; + }; + }; + }; + + npu-thermal { + polling-delay = <0x3e8>; + polling-delay-passive = <0x14>; + thermal-sensors = <0x5d 0x06>; + phandle = <0x251>; + }; + + center-thermal { + polling-delay = <0x3e8>; + polling-delay-passive = <0x14>; + thermal-sensors = <0x5d 0x04>; + phandle = <0x24f>; + }; + + gpu-thermal { + polling-delay = <0x3e8>; + polling-delay-passive = <0x14>; + thermal-sensors = <0x5d 0x05>; + phandle = <0x250>; + }; + + littlecore-thermal { + polling-delay = <0x3e8>; + polling-delay-passive = <0x14>; + thermal-sensors = <0x5d 0x03>; + phandle = <0x24e>; + }; + + bigcore0-thermal { + polling-delay = <0x3e8>; + polling-delay-passive = <0x14>; + thermal-sensors = <0x5d 0x01>; + phandle = <0x24c>; + }; + }; + + iommu@fdbdf000 { + power-domains = <0x60 0x10>; + rockchip,shootdown-entire; + clock-names = "aclk\0iface"; + interrupts = <0x00 0x63 0x04 0x00 0x64 0x04>; + clocks = <0x02 0x1c5 0x02 0x1c4>; + rockchip,enable-cmd-retry; + #iommu-cells = <0x00>; + compatible = "rockchip,iommu-v2"; + rockchip,disable-mmu-reset; + status = "okay"; + interrupt-names = "irq_rkvenc0_mmu0\0irq_rkvenc0_mmu1"; + reg = <0x00 0xfdbdf000 0x00 0x40 0x00 0xfdbdf040 0x00 0x40>; + phandle = <0xc2>; + }; + + serial@feb50000 { + reg-io-width = <0x04>; + pinctrl-names = "default"; + pinctrl-0 = <0x161>; + clock-names = "baudclk\0apb_pclk"; + interrupts = <0x00 0x14d 0x04>; + clocks = <0x02 0xbb 0x02 0xac>; + compatible = "rockchip,rk3588-uart\0snps,dw-apb-uart"; + status = "disabled"; + reg = <0x00 0xfeb50000 0x00 0x100>; + phandle = <0x2ca>; + dmas = <0x7c 0x0a 0x7c 0x0b>; + reg-shift = <0x02>; + }; + + iommu@fdcd0f00 { + power-domains = <0x60 0x1d>; + clock-names = "aclk\0iface\0pclk"; + interrupts = <0x00 0x8c 0x04>; + clocks = <0x02 0x1d5 0x02 0x1d6 0x02 0x1d7>; + #iommu-cells = <0x00>; + compatible = "rockchip,iommu-v2"; + rockchip,disable-mmu-reset; + status = "disabled"; + interrupt-names = "fec0_mmu"; + reg = <0x00 0xfdcd0f00 0x00 0x100>; + phandle = <0xd2>; + }; + + vcc5v0-host { + regulator-max-microvolt = <0x4c4b40>; + regulator-boot-on; + gpio = <0x182 0x02 0x00>; + regulator-always-on; + enable-active-high; + regulator-min-microvolt = <0x4c4b40>; + regulator-name = "vcc5v0_host"; + compatible = "regulator-fixed"; + status = "okay"; + phandle = <0x75>; + vin-supply = <0x1dd>; + }; + + qos@fdf66a00 { + compatible = "syscon"; + reg = <0x00 0xfdf66a00 0x00 0x20>; + phandle = <0x98>; + }; + + phy@fed90000 { + clock-names = "refclk\0immortal\0pclk\0utmi"; + resets = <0x02 0x2f 0x02 0x30 0x02 0x31 0x02 0x32 0x02 0x484>; + clocks = <0x02 0x2b6 0x02 0x280 0x02 0x26a 0x1ca>; + compatible = "rockchip,rk3588-usbdp-phy"; + status = "okay"; + rockchip,dp-lane-mux = <0x02 0x03>; + reg = <0x00 0xfed90000 0x00 0x10000>; + phandle = <0x48b>; + rockchip,usb-grf = <0x74>; + reset-names = "init\0cmn\0lane\0pcs_apb\0pma_apb"; + rockchip,u2phy-grf = <0x1c8>; + rockchip,usbdpphy-grf = <0x1c9>; + rockchip,vo-grf = <0xf5>; + + dp-port { + #phy-cells = <0x00>; + status = "okay"; + phandle = <0x1a5>; + }; + + u3-port { + #phy-cells = <0x00>; + status = "okay"; + phandle = <0x1a4>; + }; + }; + + jpege-core@fdba0000 { + power-domains = <0x60 0x15>; + iommus = <0xbc>; + rockchip,ccu = <0xbd>; + clock-names = "aclk_vcodec\0hclk_vcodec"; + assigned-clocks = <0x02 0x1ac>; + rockchip,normal-rates = <0x2367b880 0x00>; + assigned-clock-rates = <0x2367b880>; + resets = <0x02 0x2ca 0x02 0x2cb>; + interrupts = <0x00 0x7a 0x04>; + clocks = <0x02 0x1ac 0x02 0x1ad>; + rockchip,srv = <0xb8>; + rockchip,taskqueue-node = <0x02>; + rockchip,disable-auto-freq; + compatible = "rockchip,vpu-jpege-core"; + status = "okay"; + interrupt-names = "irq_jpege0"; + rockchip,skip-pmu-idle-request; + reg = <0x00 0xfdba0000 0x00 0x400>; + phandle = <0x26d>; + reset-names = "video_a\0video_h"; + }; + + vcc5v0-sys { + regulator-max-microvolt = <0x4c4b40>; + regulator-boot-on; + regulator-always-on; + regulator-min-microvolt = <0x4c4b40>; + regulator-name = "vcc5v0_sys"; + compatible = "regulator-fixed"; + phandle = <0x78>; + vin-supply = <0x1cd>; + }; + + pwm@fd8b0000 { + pinctrl-names = "active"; + pinctrl-0 = <0x7e>; + clock-names = "pwm\0pclk"; + interrupts = <0x00 0x158 0x04>; + clocks = <0x02 0x2a5 0x02 0x2a4>; + #pwm-cells = <0x03>; + compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; + status = "disabled"; + reg = <0x00 0xfd8b0000 0x00 0x10>; + phandle = <0x261>; + }; + + vop@fdd90000 { + power-domains = <0x60 0x18>; + iommus = <0xd6>; + rockchip,vop-grf = <0xd7>; + clock-names = "aclk_vop\0hclk_vop\0dclk_vp0\0dclk_vp1\0dclk_vp2\0dclk_vp3\0pclk_vop\0dclk_src_vp0\0dclk_src_vp1\0dclk_src_vp2"; + reg-names = "regs\0gamma_lut"; + assigned-clocks = <0x02 0x270>; + assigned-clock-rates = <0x2cb41780>; + resets = <0x02 0x349 0x02 0x348 0x02 0x34d 0x02 0x350 0x02 0x351 0x02 0x352>; + interrupts = <0x00 0x9c 0x04>; + clocks = <0x02 0x270 0x02 0x26f 0x02 0x274 0x02 0x275 0x02 0x276 0x02 0x277 0x02 0x26e 0x02 0x271 0x02 0x272 0x02 0x273>; + compatible = "rockchip,rk3588-vop"; + rockchip,pmu = <0xd9>; + status = "okay"; + rockchip,grf = <0xc8>; + reg = <0x00 0xfdd90000 0x00 0x4200 0x00 0xfdd95000 0x00 0x1000>; + phandle = <0x278>; + rockchip,vo1-grf = <0xd8>; + reset-names = "axi\0ahb\0dclk_vp0\0dclk_vp1\0dclk_vp2\0dclk_vp3"; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + phandle = <0x34>; + + port@0 { + rockchip,primary-plane = <0x02>; + rockchip,plane-mask = <0x05>; + #address-cells = <0x01>; + assigned-clocks = <0x02 0x270>; + assigned-clock-rates = <0x2faf0800>; + #size-cells = <0x00>; + reg = <0x00>; + phandle = <0x279>; + + endpoint@5 { + remote-endpoint = <0xdf>; + reg = <0x05>; + phandle = <0x1ad>; + }; + + endpoint@3 { + remote-endpoint = <0xdd>; + reg = <0x03>; + phandle = <0x1a6>; + }; + + endpoint@1 { + remote-endpoint = <0xdb>; + reg = <0x01>; + phandle = <0x102>; + }; + + endpoint@4 { + remote-endpoint = <0xde>; + reg = <0x04>; + phandle = <0x1b0>; + }; + + endpoint@2 { + remote-endpoint = <0xdc>; + reg = <0x02>; + phandle = <0x3c>; + }; + + endpoint@0 { + remote-endpoint = <0xda>; + reg = <0x00>; + phandle = <0xf7>; + }; + }; + + port@3 { + rockchip,primary-plane = <0x09>; + rockchip,plane-mask = <0x280>; + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x03>; + phandle = <0x27c>; + + endpoint@1 { + remote-endpoint = <0xef>; + reg = <0x01>; + phandle = <0x3a>; + }; + + endpoint@2 { + remote-endpoint = <0xf0>; + reg = <0x02>; + phandle = <0x3d>; + }; + + endpoint@0 { + remote-endpoint = <0xee>; + reg = <0x00>; + phandle = <0x39>; + }; + }; + + port@1 { + rockchip,primary-plane = <0x03>; + rockchip,plane-mask = <0x0a>; + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x01>; + phandle = <0x27a>; + + endpoint@5 { + remote-endpoint = <0xe5>; + reg = <0x05>; + phandle = <0x3f>; + }; + + endpoint@3 { + remote-endpoint = <0xe3>; + reg = <0x03>; + phandle = <0x3e>; + }; + + endpoint@1 { + remote-endpoint = <0xe1>; + reg = <0x01>; + phandle = <0x103>; + }; + + endpoint@4 { + remote-endpoint = <0xe4>; + reg = <0x04>; + phandle = <0x1b1>; + }; + + endpoint@2 { + remote-endpoint = <0xe2>; + reg = <0x02>; + phandle = <0xff>; + }; + + endpoint@0 { + remote-endpoint = <0xe0>; + reg = <0x00>; + phandle = <0x38>; + }; + }; + + port@2 { + rockchip,primary-plane = <0x08>; + rockchip,plane-mask = <0x140>; + #address-cells = <0x01>; + assigned-clocks = <0x02 0x273>; + assigned-clock-parents = <0x02 0x04>; + #size-cells = <0x00>; + reg = <0x02>; + phandle = <0x27b>; + + endpoint@5 { + remote-endpoint = <0xeb>; + reg = <0x05>; + phandle = <0x1a7>; + }; + + endpoint@3 { + remote-endpoint = <0xe9>; + reg = <0x03>; + phandle = <0xf3>; + }; + + endpoint@1 { + remote-endpoint = <0xe7>; + reg = <0x01>; + phandle = <0x3b>; + }; + + endpoint@6 { + remote-endpoint = <0xec>; + reg = <0x06>; + phandle = <0x1b2>; + }; + + endpoint@4 { + remote-endpoint = <0xea>; + reg = <0x04>; + phandle = <0xf4>; + }; + + endpoint@2 { + remote-endpoint = <0xe8>; + reg = <0x02>; + phandle = <0x100>; + }; + + endpoint@0 { + remote-endpoint = <0xe6>; + reg = <0x00>; + phandle = <0xf8>; + }; + + endpoint@7 { + remote-endpoint = <0xed>; + reg = <0x07>; + phandle = <0x1ae>; + }; + }; + }; + }; + + csi2-dphy1 { + rockchip,hw = <0x2d 0x2e>; + phy-names = "dcphy0\0dcphy1"; + compatible = "rockchip,rk3588-csi2-dphy"; + status = "disabled"; + phys = <0x2f 0x30>; + phandle = <0x210>; + }; + + pwm@febe0000 { + pinctrl-names = "active"; + pinctrl-0 = <0x16d>; + clock-names = "pwm\0pclk"; + interrupts = <0x00 0x15c 0x04>; + clocks = <0x02 0x57 0x02 0x56>; + #pwm-cells = <0x03>; + compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; + status = "disabled"; + reg = <0x00 0xfebe0000 0x00 0x10>; + phandle = <0x2d5>; + }; + + clocks { + #address-cells = <0x02>; + #size-cells = <0x02>; + compatible = "simple-bus"; + ranges; + + hclk_nvm@fd7c087c { + clock-names = "link"; + clocks = <0x02 0x141>; + #clock-cells = <0x00>; + #power-domain-cells = <0x01>; + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c087c 0x00 0x10>; + phandle = <0x03>; + }; + + mclkin-i2s0 { + clock-output-names = "i2s0_mclkin"; + #clock-cells = <0x00>; + clock-frequency = <0x00>; + compatible = "fixed-clock"; + phandle = <0x204>; + }; + + hclk_rkvenc1_pre@fd7c08c0 { + clock-names = "link"; + clocks = <0x02 0x1c4>; + #clock-cells = <0x00>; + #power-domain-cells = <0x01>; + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c08c0 0x00 0x10>; + phandle = <0x1fe>; + }; + + mclkout-i2s1@fd58c318 { + rockchip,clk-ignore-unused; + clock-output-names = "i2s1_mclkout_to_io"; + clocks = <0x02 0x291>; + rockchip,bit-set-to-disable; + #clock-cells = <0x00>; + compatible = "rockchip,clk-out"; + reg = <0x00 0xfd58c318 0x00 0x04>; + phandle = <0x208>; + rockchip,bit-shift = <0x01>; + }; + + mclkout-i2s1@fd58a000 { + rockchip,clk-ignore-unused; + clock-output-names = "i2s1m1_mclkout_to_io"; + clocks = <0x02 0x291>; + #clock-cells = <0x00>; + compatible = "rockchip,clk-out"; + reg = <0x00 0xfd58a000 0x00 0x04>; + phandle = <0x209>; + rockchip,bit-shift = <0x06>; + }; + + aclk_hdcp0_pre@fd7c08dc { + clock-names = "link"; + clocks = <0x02 0x26c>; + #clock-cells = <0x00>; + #power-domain-cells = <0x01>; + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c08dc 0x00 0x10>; + phandle = <0x1ff>; + }; + + xin32k { + clock-output-names = "xin32k"; + #clock-cells = <0x00>; + clock-frequency = <0x8000>; + compatible = "fixed-clock"; + phandle = <0x1f2>; + }; + + aclk_usb@fd7c08a8 { + clock-names = "link"; + clocks = <0x02 0x263>; + #clock-cells = <0x00>; + #power-domain-cells = <0x01>; + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c08a8 0x00 0x10>; + phandle = <0x6a>; + }; + + hclk_usb@fd7c08a8 { + clock-names = "link"; + clocks = <0x02 0x264>; + #clock-cells = <0x00>; + #power-domain-cells = <0x01>; + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c08a8 0x00 0x10>; + phandle = <0x1f5>; + }; + + hclk_vo0@fd7c08dc { + clock-names = "link"; + clocks = <0x02 0x26d>; + #clock-cells = <0x00>; + #power-domain-cells = <0x01>; + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c08dc 0x00 0x10>; + phandle = <0x04>; + }; + + pclk_av1_pre@fd7c0910 { + clock-names = "link"; + clocks = <0x02 0x1be>; + #clock-cells = <0x00>; + #power-domain-cells = <0x01>; + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c0910 0x00 0x10>; + phandle = <0x201>; + }; + + mclkout-i2s2@fd58c318 { + rockchip,clk-ignore-unused; + clock-output-names = "i2s2_mclkout_to_io"; + clocks = <0x02 0x28>; + rockchip,bit-set-to-disable; + #clock-cells = <0x00>; + compatible = "rockchip,clk-out"; + reg = <0x00 0xfd58c318 0x00 0x04>; + phandle = <0x20a>; + rockchip,bit-shift = <0x02>; + }; + + aclk_vdpu_low_pre@fd7c08b0 { + clock-names = "link"; + clocks = <0x02 0x1bc>; + #clock-cells = <0x00>; + #power-domain-cells = <0x01>; + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c08b0 0x00 0x10>; + phandle = <0x1f4>; + }; + + mclkin-i2s3 { + clock-output-names = "i2s3_mclkin"; + #clock-cells = <0x00>; + clock-frequency = <0x00>; + compatible = "fixed-clock"; + phandle = <0x207>; + }; + + spll { + clock-output-names = "spll"; + #clock-cells = <0x00>; + clock-frequency = <0x29d7ab80>; + compatible = "fixed-clock"; + phandle = <0x1f1>; + }; + + xin24m { + clock-output-names = "xin24m"; + #clock-cells = <0x00>; + clock-frequency = <0x16e3600>; + compatible = "fixed-clock"; + phandle = <0x1f3>; + }; + + aclk_av1_pre@fd7c0910 { + clock-names = "link"; + clocks = <0x02 0x1bc>; + #clock-cells = <0x00>; + #power-domain-cells = <0x01>; + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c0910 0x00 0x10>; + phandle = <0x202>; + }; + + pclk_vo0_grf@fd7c08dc { + clock-names = "link"; + clocks = <0x04>; + #clock-cells = <0x00>; + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c08dc 0x00 0x04>; + phandle = <0x72>; + }; + + aclk_jpeg_decoder_pre@fd7c08b0 { + clock-names = "link"; + clocks = <0x02 0x1bc>; + #clock-cells = <0x00>; + #power-domain-cells = <0x01>; + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c08b0 0x00 0x10>; + phandle = <0x1fc>; + }; + + aclk_hdcp1_pre@fd7c08ec { + clock-names = "link"; + clocks = <0x02 0x263>; + #clock-cells = <0x00>; + #power-domain-cells = <0x01>; + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c08ec 0x00 0x10>; + phandle = <0x200>; + }; + + mclkin-i2s1 { + clock-output-names = "i2s1_mclkin"; + #clock-cells = <0x00>; + clock-frequency = <0x00>; + compatible = "fixed-clock"; + phandle = <0x205>; + }; + + hclk_vo1@fd7c08ec { + clock-names = "link"; + clocks = <0x02 0x264>; + #clock-cells = <0x00>; + #power-domain-cells = <0x01>; + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c08ec 0x00 0x10>; + phandle = <0x05>; + }; + + mclkout-i2s3@fd58c318 { + rockchip,clk-ignore-unused; + clock-output-names = "i2s3_mclkout_to_io"; + clocks = <0x02 0x2e>; + rockchip,bit-set-to-disable; + #clock-cells = <0x00>; + compatible = "rockchip,clk-out"; + reg = <0x00 0xfd58c318 0x00 0x04>; + phandle = <0x20b>; + rockchip,bit-shift = <0x07>; + }; + + aclk_rkvdec0_pre@fd7c08a0 { + clock-names = "link"; + clocks = <0x02 0x1bc>; + #clock-cells = <0x00>; + #power-domain-cells = <0x01>; + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c08a0 0x00 0x10>; + phandle = <0x1f8>; + }; + + aclk_isp1_pre@fd7c0868 { + clock-names = "link"; + clocks = <0x02 0x1e0>; + #clock-cells = <0x00>; + #power-domain-cells = <0x01>; + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c0868 0x00 0x10>; + phandle = <0x1f7>; + }; + + pclk_vo1_grf@fd7c08ec { + clock-names = "link"; + clocks = <0x05>; + #clock-cells = <0x00>; + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c08ec 0x00 0x04>; + phandle = <0x73>; + }; + + aclk_rkvdec1_pre@fd7c08a4 { + clock-names = "link"; + clocks = <0x02 0x1bc>; + #clock-cells = <0x00>; + #power-domain-cells = <0x01>; + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c08a4 0x00 0x10>; + phandle = <0x1fa>; + }; + + hclk_rkvdec0_pre@fd7c08a0 { + clock-names = "link"; + clocks = <0x02 0x1be>; + #clock-cells = <0x00>; + #power-domain-cells = <0x01>; + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c08a0 0x00 0x10>; + phandle = <0x1f9>; + }; + + hclk_sdio_pre@fd7c092c { + clock-names = "link"; + clocks = <0x03>; + #clock-cells = <0x00>; + #power-domain-cells = <0x01>; + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c092c 0x00 0x10>; + phandle = <0x203>; + }; + + hclk_rkvdec1_pre@fd7c08a4 { + clock-names = "link"; + clocks = <0x02 0x1be>; + #clock-cells = <0x00>; + #power-domain-cells = <0x01>; + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c08a4 0x00 0x10>; + phandle = <0x1fb>; + }; + + hclk_isp1_pre@fd7c0868 { + clock-names = "link"; + clocks = <0x02 0x1e1>; + #clock-cells = <0x00>; + #power-domain-cells = <0x01>; + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c0868 0x00 0x10>; + phandle = <0x1f6>; + }; + + mclkout-i2s0@fd58c318 { + rockchip,clk-ignore-unused; + clock-output-names = "i2s0_mclkout_to_io"; + clocks = <0x02 0x39>; + rockchip,bit-set-to-disable; + #clock-cells = <0x00>; + compatible = "rockchip,clk-out"; + reg = <0x00 0xfd58c318 0x00 0x04>; + phandle = <0x179>; + rockchip,bit-shift = <0x00>; + }; + + mclkin-i2s2 { + clock-output-names = "i2s2_mclkin"; + #clock-cells = <0x00>; + clock-frequency = <0x00>; + compatible = "fixed-clock"; + phandle = <0x206>; + }; + + aclk_rkvenc1_pre@fd7c08c0 { + clock-names = "link"; + clocks = <0x02 0x1c5>; + #clock-cells = <0x00>; + #power-domain-cells = <0x01>; + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c08c0 0x00 0x10>; + phandle = <0x1fd>; + }; + }; + + usb@fc8c0000 { + power-domains = <0x60 0x1f>; + phy-names = "usb2-phy"; + clock-names = "usbhost\0arbiter\0utmi\0alk_usb"; + interrupts = <0x00 0xdb 0x04>; + clocks = <0x02 0x19f 0x02 0x1a0 0x6d 0x6a>; + compatible = "rockchip,rk3588-ohci\0generic-ohci"; + status = "okay"; + phys = <0x6f>; + reg = <0x00 0xfc8c0000 0x00 0x40000>; + phandle = <0x6e>; + }; + + qos@fdf40000 { + compatible = "syscon"; + reg = <0x00 0xfdf40000 0x00 0x20>; + phandle = <0xa8>; + }; + + mipi0-csi2 { + rockchip,hw = <0x47 0x48 0x49 0x4a 0x4b 0x4c>; + compatible = "rockchip,rk3588-mipi-csi2"; + status = "disabled"; + phandle = <0x224>; + }; + + cluster1-opp-table { + rockchip,pvtm-offset = <0x18>; + rockchip,pvtm-sample-time = <0x44c>; + rockchip,pvtm-hw = <0x06>; + nvmem-cells = <0x24 0x25 0x21>; + rockchip,low-temp = <0x2710>; + rockchip,pvtm-voltage-sel-hw = <0x00 0x603 0x00 0x604 0x61c 0x01 0x61d 0x635 0x02 0x636 0x64e 0x03 0x64f 0x66c 0x04 0x66d 0x68a 0x05 0x68b 0x6a8 0x06 0x6a9 0x270f 0x07>; + rockchip,pvtm-thermal-zone = "soc-thermal"; + rockchip,pvtm-low-len-sel = <0x03>; + rockchip,high-temp-max-freq = <0x21b100>; + opp-shared; + rockchip,reboot-freq = <0x1b7740>; + rockchip,pvtm-freq = <0x188940>; + rockchip,pvtm-ref-temp = <0x19>; + low-volt-mem-read-margin = <0x04>; + volt-mem-read-margin = <0xd0bd8 0x01 0xbac48 0x02 0xa4cb8 0x03 0x78d98 0x04>; + compatible = "operating-points-v2"; + rockchip,low-temp-min-volt = <0xb71b0>; + rockchip,grf = <0x26>; + nvmem-cell-names = "leakage\0opp-info\0specification_serial_number"; + rockchip,pvtm-voltage-sel = <0x00 0x63b 0x00 0x63c 0x64f 0x01 0x650 0x668 0x02 0x669 0x68b 0x03 0x68c 0x6ae 0x04 0x6af 0x6cf 0x05 0x6d0 0x6f0 0x06 0x6f1 0x270f 0x07>; + phandle = <0x16>; + rockchip,idle-threshold-freq = <0x21b100>; + rockchip,pvtm-temp-prop = <0x10e 0x10e>; + rockchip,temp-hysteresis = <0x1388>; + rockchip,high-temp = <0x14c08>; + rockchip,pvtm-pvtpll; + rockchip,supported-hw; + intermediate-threshold-freq = <0xf6180>; + rockchip,pvtm-volt = <0xb71b0>; + + opp-j-m-2016000000 { + opp-microvolt = <0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0>; + opp-microvolt-L6 = <0xd8acc 0xd8acc 0xe7ef0 0xd8acc 0xd8acc 0xe7ef0>; + opp-microvolt-L4 = <0xdec74 0xdec74 0xe7ef0 0xdec74 0xdec74 0xe7ef0>; + opp-microvolt-L2 = <0xe4e1c 0xe4e1c 0xe7ef0 0xe4e1c 0xe4e1c 0xe7ef0>; + opp-hz = <0x00 0x7829b800>; + opp-supported-hw = <0x06 0xffff>; + opp-microvolt-L7 = <0xd59f8 0xd59f8 0xe7ef0 0xd59f8 0xd59f8 0xe7ef0>; + opp-microvolt-L5 = <0xdbba0 0xdbba0 0xe7ef0 0xdbba0 0xdbba0 0xe7ef0>; + opp-microvolt-L3 = <0xe1d48 0xe1d48 0xe7ef0 0xe1d48 0xe1d48 0xe7ef0>; + clock-latency-ns = <0x9c40>; + opp-microvolt-L1 = <0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0>; + }; + + opp-1200000000 { + opp-microvolt = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; + opp-hz = <0x00 0x47868c00>; + opp-supported-hw = <0xf9 0xffff>; + clock-latency-ns = <0x9c40>; + }; + + opp-j-m-1416000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + opp-hz = <0x00 0x54667200>; + opp-microvolt-L0 = <0xba284 0xba284 0xe7ef0 0xba284 0xba284 0xe7ef0>; + opp-supported-hw = <0x06 0xffff>; + opp-suspend; + clock-latency-ns = <0x9c40>; + }; + + opp-1008000000 { + opp-microvolt = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; + opp-hz = <0x00 0x3c14dc00>; + opp-supported-hw = <0xf9 0xffff>; + clock-latency-ns = <0x9c40>; + }; + + opp-2256000000 { + opp-microvolt = <0xf4240 0xf4240 0xf4240 0xf4240 0xf4240 0xf4240>; + opp-hz = <0x00 0x8677d400>; + opp-supported-hw = <0xf9 0x13>; + clock-latency-ns = <0x9c40>; + }; + + opp-j-m-1200000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + opp-hz = <0x00 0x47868c00>; + opp-supported-hw = <0x06 0xffff>; + clock-latency-ns = <0x9c40>; + }; + + opp-j-m-1008000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + opp-hz = <0x00 0x3c14dc00>; + opp-supported-hw = <0x06 0xffff>; + clock-latency-ns = <0x9c40>; + }; + + opp-j-m-816000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + opp-hz = <0x00 0x30a32c00>; + opp-supported-hw = <0x06 0xffff>; + clock-latency-ns = <0x9c40>; + }; + + opp-2400000000 { + opp-microvolt = <0xf4240 0xf4240 0xf4240 0xf4240 0xf4240 0xf4240>; + opp-hz = <0x00 0x8f0d1800>; + opp-supported-hw = <0xf9 0x80>; + clock-latency-ns = <0x9c40>; + }; + + opp-1800000000 { + opp-microvolt = <0xcf850 0xcf850 0xf4240 0xcf850 0xcf850 0xf4240>; + opp-microvolt-L6 = <0xbd358 0xbd358 0xf4240 0xbd358 0xbd358 0xf4240>; + opp-microvolt-L4 = <0xc3500 0xc3500 0xf4240 0xc3500 0xc3500 0xf4240>; + opp-microvolt-L2 = <0xc96a8 0xc96a8 0xf4240 0xc96a8 0xc96a8 0xf4240>; + opp-hz = <0x00 0x6b49d200>; + opp-supported-hw = <0xf9 0xffff>; + opp-microvolt-L7 = <0xba284 0xba284 0xf4240 0xba284 0xba284 0xf4240>; + opp-microvolt-L5 = <0xc042c 0xc042c 0xf4240 0xc042c 0xc042c 0xf4240>; + opp-microvolt-L3 = <0xc65d4 0xc65d4 0xf4240 0xc65d4 0xc65d4 0xf4240>; + clock-latency-ns = <0x9c40>; + opp-microvolt-L1 = <0xcc77c 0xcc77c 0xf4240 0xcc77c 0xcc77c 0xf4240>; + }; + + opp-j-m-600000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + opp-hz = <0x00 0x23c34600>; + opp-supported-hw = <0x06 0xffff>; + clock-latency-ns = <0x9c40>; + }; + + opp-2208000000 { + opp-microvolt = <0xf116c 0xf116c 0xf4240 0xf116c 0xf116c 0xf4240>; + opp-microvolt-L6 = <0xe1d48 0xe1d48 0xf4240 0xe1d48 0xe1d48 0xf4240>; + opp-microvolt-L4 = <0xeafc4 0xeafc4 0xf4240 0xeafc4 0xeafc4 0xf4240>; + opp-microvolt-L2 = <0xeafc4 0xeafc4 0xf4240 0xeafc4 0xeafc4 0xf4240>; + opp-hz = <0x00 0x839b6800>; + opp-supported-hw = <0xf9 0xffff>; + opp-microvolt-L7 = <0xdec74 0xdec74 0xf4240 0xdec74 0xdec74 0xf4240>; + opp-microvolt-L5 = <0xe7ef0 0xe7ef0 0xf4240 0xe7ef0 0xe7ef0 0xf4240>; + opp-microvolt-L3 = <0xe7ef0 0xe7ef0 0xf4240 0xe7ef0 0xe7ef0 0xf4240>; + clock-latency-ns = <0x9c40>; + opp-microvolt-L1 = <0xee098 0xee098 0xf4240 0xee098 0xee098 0xf4240>; + }; + + opp-1608000000 { + opp-microvolt = <0xba284 0xba284 0xf4240 0xba284 0xba284 0xf4240>; + opp-microvolt-L6 = <0xaae60 0xaae60 0xf4240 0xaae60 0xaae60 0xf4240>; + opp-microvolt-L4 = <0xb1008 0xb1008 0xf4240 0xb1008 0xb1008 0xf4240>; + opp-microvolt-L2 = <0xb71b0 0xb71b0 0xf4240 0xb71b0 0xb71b0 0xf4240>; + opp-hz = <0x00 0x5fd82200>; + opp-supported-hw = <0xf9 0xffff>; + opp-microvolt-L7 = <0xaae60 0xaae60 0xf4240 0xaae60 0xaae60 0xf4240>; + opp-microvolt-L5 = <0xadf34 0xadf34 0xf4240 0xadf34 0xadf34 0xf4240>; + opp-microvolt-L3 = <0xb40dc 0xb40dc 0xf4240 0xb40dc 0xb40dc 0xf4240>; + clock-latency-ns = <0x9c40>; + }; + + opp-j-m-408000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + opp-hz = <0x00 0x18519600>; + opp-supported-hw = <0x06 0xffff>; + clock-latency-ns = <0x9c40>; + }; + + opp-j-m-1800000000 { + opp-microvolt = <0xd59f8 0xd59f8 0xe7ef0 0xd59f8 0xd59f8 0xe7ef0>; + opp-microvolt-L6 = <0xc3500 0xc3500 0xe7ef0 0xc3500 0xc3500 0xe7ef0>; + opp-microvolt-L4 = <0xc96a8 0xc96a8 0xe7ef0 0xc96a8 0xc96a8 0xe7ef0>; + opp-microvolt-L2 = <0xcf850 0xcf850 0xe7ef0 0xcf850 0xcf850 0xe7ef0>; + opp-hz = <0x00 0x6b49d200>; + opp-supported-hw = <0x06 0xffff>; + opp-microvolt-L7 = <0xc042c 0xc042c 0xe7ef0 0xc042c 0xc042c 0xe7ef0>; + opp-microvolt-L5 = <0xc65d4 0xc65d4 0xe7ef0 0xc65d4 0xc65d4 0xe7ef0>; + opp-microvolt-L3 = <0xcc77c 0xcc77c 0xe7ef0 0xcc77c 0xcc77c 0xe7ef0>; + clock-latency-ns = <0x9c40>; + opp-microvolt-L1 = <0xd2924 0xd2924 0xe7ef0 0xd2924 0xd2924 0xe7ef0>; + }; + + opp-2352000000 { + opp-microvolt = <0xf4240 0xf4240 0xf4240 0xf4240 0xf4240 0xf4240>; + opp-hz = <0x00 0x8c30ac00>; + opp-supported-hw = <0xf9 0x48>; + clock-latency-ns = <0x9c40>; + }; + + opp-816000000 { + opp-microvolt = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; + opp-hz = <0x00 0x30a32c00>; + opp-supported-hw = <0xf9 0xffff>; + clock-latency-ns = <0x9c40>; + }; + + opp-j-m-1608000000 { + opp-microvolt = <0xc042c 0xc042c 0xe7ef0 0xc042c 0xc042c 0xe7ef0>; + opp-microvolt-L6 = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + opp-microvolt-L4 = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + opp-microvolt-L2 = <0xbd358 0xbd358 0xe7ef0 0xbd358 0xbd358 0xe7ef0>; + opp-hz = <0x00 0x5fd82200>; + opp-supported-hw = <0x06 0xffff>; + opp-microvolt-L7 = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + opp-microvolt-L5 = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + opp-microvolt-L3 = <0xba284 0xba284 0xe7ef0 0xba284 0xba284 0xe7ef0>; + clock-latency-ns = <0x9c40>; + }; + + opp-600000000 { + opp-microvolt = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; + opp-hz = <0x00 0x23c34600>; + opp-supported-hw = <0xf9 0xffff>; + clock-latency-ns = <0x9c40>; + }; + + opp-2016000000 { + opp-microvolt = <0xe1d48 0xe1d48 0xf4240 0xe1d48 0xe1d48 0xf4240>; + opp-microvolt-L6 = <0xcf850 0xcf850 0xf4240 0xcf850 0xcf850 0xf4240>; + opp-microvolt-L4 = <0xd59f8 0xd59f8 0xf4240 0xd59f8 0xd59f8 0xf4240>; + opp-microvolt-L2 = <0xdbba0 0xdbba0 0xf4240 0xdbba0 0xdbba0 0xf4240>; + opp-hz = <0x00 0x7829b800>; + opp-supported-hw = <0xf9 0xffff>; + opp-microvolt-L7 = <0xcc77c 0xcc77c 0xf4240 0xcc77c 0xcc77c 0xf4240>; + opp-microvolt-L5 = <0xd2924 0xd2924 0xf4240 0xd2924 0xd2924 0xf4240>; + opp-microvolt-L3 = <0xd8acc 0xd8acc 0xf4240 0xd8acc 0xd8acc 0xf4240>; + clock-latency-ns = <0x9c40>; + opp-microvolt-L1 = <0xdec74 0xdec74 0xf4240 0xdec74 0xdec74 0xf4240>; + }; + + opp-1416000000 { + opp-microvolt = <0xb1008 0xb1008 0xf4240 0xb1008 0xb1008 0xf4240>; + opp-microvolt-L6 = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; + opp-microvolt-L4 = <0xaae60 0xaae60 0xf4240 0xaae60 0xaae60 0xf4240>; + opp-microvolt-L2 = <0xadf34 0xadf34 0xf4240 0xadf34 0xadf34 0xf4240>; + opp-hz = <0x00 0x54667200>; + opp-supported-hw = <0xf9 0xffff>; + opp-microvolt-L7 = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; + opp-microvolt-L5 = <0xa7d8c 0xa7d8c 0xf4240 0xa7d8c 0xa7d8c 0xf4240>; + opp-microvolt-L3 = <0xaae60 0xaae60 0xf4240 0xaae60 0xaae60 0xf4240>; + clock-latency-ns = <0x9c40>; + }; + + opp-408000000 { + opp-microvolt = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; + opp-hz = <0x00 0x18519600>; + opp-supported-hw = <0xf9 0xffff>; + opp-suspend; + clock-latency-ns = <0x9c40>; + }; + + opp-2304000000 { + opp-microvolt = <0xf4240 0xf4240 0xf4240 0xf4240 0xf4240 0xf4240>; + opp-hz = <0x00 0x89544000>; + opp-supported-hw = <0xf9 0x24>; + clock-latency-ns = <0x9c40>; + }; + }; + + mmc@fe2d0000 { + power-domains = <0x60 0x25>; + fifo-depth = <0x100>; + pinctrl-names = "default"; + pinctrl-0 = <0x119>; + clock-names = "biu\0ciu\0ciu-drive\0ciu-sample"; + interrupts = <0x00 0xcc 0x04>; + clocks = <0x02 0x199 0x02 0x19a 0x02 0x2c0 0x02 0x2c1>; + compatible = "rockchip,rk3588-dw-mshc\0rockchip,rk3288-dw-mshc"; + status = "disabled"; + reg = <0x00 0xfe2d0000 0x00 0x4000>; + phandle = <0x294>; + max-frequency = <0xbebc200>; + }; + + rkcif-mipi-lvds-sditf-vir3 { + compatible = "rockchip,rkcif-sditf"; + status = "disabled"; + rockchip,cif = <0x52>; + phandle = <0x22e>; + }; + + serial@feb90000 { + reg-io-width = <0x04>; + pinctrl-names = "default"; + pinctrl-0 = <0x165>; + clock-names = "baudclk\0apb_pclk"; + interrupts = <0x00 0x151 0x04>; + clocks = <0x02 0xcb 0x02 0xb0>; + compatible = "rockchip,rk3588-uart\0snps,dw-apb-uart"; + status = "okay"; + reg = <0x00 0xfeb90000 0x00 0x100>; + phandle = <0x2ce>; + dmas = <0xf1 0x0d 0xf1 0x0e>; + reg-shift = <0x02>; + }; + + i2s@fddf8000 { + power-domains = <0x60 0x1a>; + clock-names = "mclk_tx\0mclk_rx\0hclk"; + assigned-clocks = <0x02 0x239>; + assigned-clock-parents = <0x02 0x05>; + rockchip,capture-only; + resets = <0x02 0x3c3>; + interrupts = <0x00 0xbb 0x04>; + clocks = <0x02 0x23c 0x02 0x23c 0x02 0x238>; + dma-names = "rx"; + #sound-dai-cells = <0x00>; + compatible = "rockchip,rk3588-i2s-tdm"; + status = "okay"; + reg = <0x00 0xfddf8000 0x00 0x1000>; + phandle = <0x1ec>; + dmas = <0xf2 0x15>; + reset-names = "rx-m"; + }; + + phy@fee20000 { + rockchip,pipe-grf = <0x76>; + clock-names = "refclk\0apbclk\0phpclk"; + assigned-clocks = <0x02 0x2bf>; + assigned-clock-rates = <0x5f5e100>; + resets = <0x02 0x20007 0x02 0x4d8>; + clocks = <0x02 0x2bf 0x02 0x187 0x02 0x166>; + #phy-cells = <0x01>; + compatible = "rockchip,rk3588-naneng-combphy"; + status = "disabled"; + rockchip,pipe-phy-grf = <0x195>; + reg = <0x00 0xfee20000 0x00 0x100>; + phandle = <0x70>; + reset-names = "combphy-apb\0combphy"; + rockchip,pcie1ln-sel-bits = <0x100 0x01 0x01 0x00>; + }; + + csi2-dphy0-hw@fedc0000 { + clock-names = "pclk"; + resets = <0x02 0x17 0x02 0x16>; + clocks = <0x02 0x10c>; + compatible = "rockchip,rk3588-csi2-dphy-hw"; + status = "okay"; + rockchip,grf = <0x192>; + reg = <0x00 0xfedc0000 0x00 0x8000>; + phandle = <0x2d>; + reset-names = "srst_csiphy0\0srst_p_csiphy0"; + rockchip,sys_grf = <0xc8>; + }; + + can@fea70000 { + pinctrl-names = "default"; + pinctrl-0 = <0x147>; + clock-names = "baudclk\0apb_pclk"; + resets = <0x02 0xbd 0x02 0xbc>; + interrupts = <0x00 0x157 0x04>; + clocks = <0x02 0x74 0x02 0x73>; + compatible = "rockchip,can-2.0"; + status = "disabled"; + tx-fifo-depth = <0x01>; + rx-fifo-depth = <0x06>; + reg = <0x00 0xfea70000 0x00 0x1000>; + phandle = <0x2a2>; + reset-names = "can\0can-apb"; + }; + + mailbox@fec60000 { + clock-names = "pclk_mailbox"; + interrupts = <0x00 0x3d 0x04 0x00 0x3e 0x04 0x00 0x3f 0x04 0x00 0x40 0x04>; + clocks = <0x02 0x4c>; + #mbox-cells = <0x01>; + compatible = "rockchip,rk3588-mailbox\0rockchip,rk3368-mailbox"; + status = "disabled"; + reg = <0x00 0xfec60000 0x00 0x200>; + phandle = <0x2dd>; + }; + + usbdrd3_1 { + #address-cells = <0x02>; + clock-names = "ref\0suspend\0bus"; + clocks = <0x02 0x1a6 0x02 0x1a5 0x02 0x1a4>; + #size-cells = <0x02>; + compatible = "rockchip,rk3588-dwc3\0rockchip,rk3399-dwc3"; + ranges; + status = "okay"; + phandle = <0x47a>; + + usb@fc400000 { + power-domains = <0x60 0x1f>; + snps,dis-u1-entry-quirk; + snps,dis_enblslpm_quirk; + phy-names = "usb2-phy\0usb3-phy"; + snps,dis-u2-freeclk-exists-quirk; + phy_type = "utmi_wide"; + resets = <0x02 0x2a7>; + interrupts = <0x00 0xdd 0x04>; + snps,dis-u2-entry-quirk; + compatible = "snps,dwc3"; + snps,parkmode-disable-hs-quirk; + snps,dis-del-phy-power-chg-quirk; + status = "okay"; + snps,parkmode-disable-ss-quirk; + phys = <0x1a3 0x1a4>; + reg = <0x00 0xfc400000 0x00 0x400000>; + phandle = <0x47b>; + dr_mode = "host"; + reset-names = "usb3-otg"; + snps,dis-tx-ipgap-linecheck-quirk; + }; + }; + + sata@fe210000 { + phy-names = "sata-phy"; + clock-names = "sata\0pmalive\0rxoob\0ref\0asic"; + interrupts = <0x00 0x111 0x04>; + clocks = <0x02 0x171 0x02 0x16e 0x02 0x174 0x02 0x163 0x02 0x17e>; + compatible = "rockchip,rk-ahci\0snps,dwc-ahci"; + status = "okay"; + interrupt-names = "hostc"; + phys = <0x108 0x01>; + reg = <0x00 0xfe210000 0x00 0x1000>; + phandle = <0x290>; + ports-implemented = <0x01>; + }; + + leds { + compatible = "gpio-leds"; + status = "okay"; + phandle = <0x497>; + + user { + linux,default-trigger = "ir-user-click"; + label = ":user"; + default-state = "off"; + phandle = <0x499>; + gpios = <0x182 0x03 0x00>; + }; + + power { + linux,default-trigger = "ir-power-click"; + label = ":power"; + default-state = "on"; + status = "disabled"; + phandle = <0x498>; + gpios = <0x7b 0x15 0x00>; + }; + }; + + rkcif-mipi-lvds5-sditf-vir3 { + compatible = "rockchip,rkcif-sditf"; + status = "disabled"; + rockchip,cif = <0x1a2>; + phandle = <0x479>; + }; + + qos@fdf80000 { + compatible = "syscon"; + reg = <0x00 0xfdf80000 0x00 0x20>; + phandle = <0x9f>; + }; + + spdif-tx@fdde0000 { + power-domains = <0x60 0x1a>; + clock-names = "mclk\0hclk"; + assigned-clocks = <0x02 0x254>; + assigned-clock-parents = <0x02 0x05>; + interrupts = <0x00 0xc4 0x04>; + clocks = <0x02 0x257 0x02 0x253>; + dma-names = "tx"; + #sound-dai-cells = <0x00>; + compatible = "rockchip,rk3588-spdif\0rockchip,rk3568-spdif"; + status = "disabled"; + reg = <0x00 0xfdde0000 0x00 0x1000>; + phandle = <0x27e>; + dmas = <0xf1 0x07>; + }; + + qos@fdf35000 { + compatible = "syscon"; + reg = <0x00 0xfdf35000 0x00 0x20>; + phandle = <0x87>; + }; + + psci { + method = "smc"; + compatible = "arm,psci-1.0"; + }; + + rkcif-mipi-lvds { + iommus = <0x50>; + rockchip,hw = <0x4f>; + compatible = "rockchip,rkcif-mipi-lvds"; + status = "disabled"; + phandle = <0x52>; + }; + + rga@fdb80000 { + power-domains = <0x60 0x15>; + clock-names = "aclk_rga2\0hclk_rga2\0clk_rga2"; + interrupts = <0x00 0x74 0x04>; + clocks = <0x02 0x1b7 0x02 0x1b6 0x02 0x1b8>; + compatible = "rockchip,rga2_core0"; + status = "okay"; + interrupt-names = "rga2_irq"; + reg = <0x00 0xfdb80000 0x00 0x1000>; + phandle = <0x26b>; + }; + + qos@fdf66800 { + compatible = "syscon"; + reg = <0x00 0xfdf66800 0x00 0x20>; + phandle = <0x97>; + }; + + spi@feb10000 { + pinctrl-names = "default"; + #address-cells = <0x01>; + num-cs = <0x02>; + pinctrl-0 = <0x151 0x152 0x153>; + clock-names = "spiclk\0apb_pclk"; + interrupts = <0x00 0x147 0x04>; + clocks = <0x02 0xa4 0x02 0x9f>; + #size-cells = <0x00>; + dma-names = "tx\0rx"; + compatible = "rockchip,rk3066-spi"; + status = "disabled"; + reg = <0x00 0xfeb10000 0x00 0x1000>; + phandle = <0x2ac>; + dmas = <0x7c 0x10 0x7c 0x11>; + }; + + rkcif-mipi-lvds4-sditf { + compatible = "rockchip,rkcif-sditf"; + status = "disabled"; + rockchip,cif = <0x1a1>; + phandle = <0x472>; + }; + + hdmi@fdea0000 { + power-domains = <0x60 0x1a>; + reg-io-width = <0x04>; + pinctrl-names = "default"; + phy-names = "hdmi"; + pinctrl-0 = <0x1a8 0x1a9 0x1aa 0x1ab>; + clock-names = "pclk\0hpd\0earc\0hdmitx_ref\0aud\0dclk_vp0\0dclk_vp1\0dclk_vp2\0dclk_vp3\0hclk_vo1\0link_clk"; + resets = <0x02 0x3d7 0x02 0x49d>; + interrupts = <0x00 0xad 0x04 0x00 0xae 0x04 0x00 0xaf 0x04 0x00 0xb0 0x04 0x00 0x169 0x04>; + clocks = <0x02 0x224 0x02 0x266 0x02 0x225 0x02 0x226 0x02 0x24c 0x02 0x274 0x02 0x275 0x02 0x276 0x02 0x277 0x05 0x36>; + #sound-dai-cells = <0x00>; + compatible = "rockchip,rk3588-dw-hdmi"; + status = "disabled"; + rockchip,grf = <0xc8>; + phys = <0x1ac>; + reg = <0x00 0xfdea0000 0x00 0x10000 0x00 0xfdeb0000 0x00 0x10000>; + phandle = <0x1e1>; + reset-names = "ref\0hdp"; + rockchip,vo1_grf = <0xd8>; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x00>; + phandle = <0x482>; + + endpoint@1 { + remote-endpoint = <0x3f>; + status = "disabled"; + reg = <0x01>; + phandle = <0xe5>; + }; + + endpoint@2 { + remote-endpoint = <0x1ae>; + status = "disabled"; + reg = <0x02>; + phandle = <0xed>; + }; + + endpoint@0 { + remote-endpoint = <0x1ad>; + status = "disabled"; + reg = <0x00>; + phandle = <0xdf>; + }; + }; + }; + }; + + pcie@fe180000 { + #address-cells = <0x03>; + rockchip,pipe-grf = <0x76>; + phy-names = "pcie-phy"; + bus-range = <0x30 0x3f>; + clock-names = "aclk_mst\0aclk_slv\0aclk_dbi\0pclk\0aux\0pipe"; + reg-names = "pcie-apb\0pcie-dbi"; + num-ob-windows = <0x08>; + resets = <0x02 0x210 0x02 0x21f>; + interrupts = <0x00 0xf8 0x04 0x00 0xf7 0x04 0x00 0xf6 0x04 0x00 0xf5 0x04 0x00 0xf4 0x04>; + clocks = <0x02 0x151 0x02 0x156 0x02 0x14c 0x02 0x15c 0x02 0x161 0x02 0x2c5>; + interrupt-map = <0x00 0x00 0x00 0x01 0x105 0x00 0x00 0x00 0x00 0x02 0x105 0x01 0x00 0x00 0x00 0x03 0x105 0x02 0x00 0x00 0x00 0x04 0x105 0x03>; + #size-cells = <0x02>; + max-link-speed = <0x02>; + device_type = "pci"; + interrupt-map-mask = <0x00 0x00 0x00 0x07>; + num-lanes = <0x01>; + compatible = "rockchip,rk3588-pcie\0snps,dw-pcie"; + ranges = <0x800 0x00 0xf3000000 0x00 0xf3000000 0x00 0x100000 0x81000000 0x00 0xf3100000 0x00 0xf3100000 0x00 0x100000 0x82000000 0x00 0xf3200000 0x00 0xf3200000 0x00 0xe00000 0xc3000000 0x09 0xc0000000 0x09 0xc0000000 0x00 0x40000000>; + msi-map = <0x3000 0x106 0x3000 0x1000>; + #interrupt-cells = <0x01>; + status = "disabled"; + interrupt-names = "sys\0pmc\0msg\0legacy\0err"; + phys = <0x70 0x02>; + num-viewport = <0x04>; + reg = <0x00 0xfe180000 0x00 0x10000 0x0a 0x40c00000 0x00 0x400000>; + linux,pci-domain = <0x03>; + phandle = <0x28c>; + reset-names = "pcie\0periph"; + num-ib-windows = <0x08>; + + legacy-interrupt-controller { + #address-cells = <0x00>; + interrupts = <0x00 0xf5 0x01>; + interrupt-parent = <0x01>; + #interrupt-cells = <0x01>; + phandle = <0x105>; + interrupt-controller; + }; + }; + + i2s@fe480000 { + pinctrl-names = "default"; + pinctrl-0 = <0x120 0x121 0x122 0x123 0x124 0x125 0x126 0x127 0x128 0x129>; + clock-names = "mclk_tx\0mclk_rx\0hclk"; + resets = <0x02 0xc002a 0x02 0xc002d>; + interrupts = <0x00 0xb5 0x04>; + clocks = <0x02 0x28c 0x02 0x290 0x02 0x288>; + dma-names = "tx\0rx"; + #sound-dai-cells = <0x00>; + compatible = "rockchip,rk3588-i2s-tdm"; + status = "disabled"; + reg = <0x00 0xfe480000 0x00 0x1000>; + phandle = <0x1d1>; + dmas = <0x7c 0x02 0x7c 0x03>; + reset-names = "tx-m\0rx-m"; + rockchip,clk-trcm = <0x01>; + }; + + syscon@fd5c0000 { + compatible = "rockchip,pipe-phy-grf\0syscon"; + reg = <0x00 0xfd5c0000 0x00 0x100>; + phandle = <0x1cb>; + }; + + i2c@feab0000 { + pinctrl-names = "default"; + #address-cells = <0x01>; + pinctrl-0 = <0x14a>; + clock-names = "i2c\0pclk"; + resets = <0x02 0xb2 0x02 0xaa>; + interrupts = <0x00 0x140 0x04>; + clocks = <0x02 0x8f 0x02 0x87>; + #size-cells = <0x00>; + compatible = "rockchip,rk3588-i2c\0rockchip,rk3399-i2c"; + status = "okay"; + reg = <0x00 0xfeab0000 0x00 0x1000>; + phandle = <0x2a6>; + reset-names = "i2c\0apb"; + + gpio@21 { + gpio-controller; + gpio-group-num = <0xc8>; + compatible = "nxp,pca9555"; + status = "okay"; + reg = <0x21>; + phandle = <0x182>; + #gpio-cells = <0x02>; + }; + }; + + iommu@fdcb7f00 { + power-domains = <0x60 0x1b>; + clock-names = "aclk\0iface"; + interrupts = <0x00 0x84 0x04>; + clocks = <0x02 0x1de 0x02 0x1df>; + #iommu-cells = <0x00>; + compatible = "rockchip,iommu-v2"; + rockchip,disable-mmu-reset; + status = "okay"; + interrupt-names = "isp0_mmu"; + reg = <0x00 0xfdcb7f00 0x00 0x100>; + phandle = <0xd0>; + }; + + qos@fdf3e600 { + compatible = "syscon"; + reg = <0x00 0xfdf3e600 0x00 0x20>; + phandle = <0xae>; + }; + + syscon@fd5b8000 { + compatible = "rockchip,pcie30-phy-grf\0syscon"; + reg = <0x00 0xfd5b8000 0x00 0x10000>; + phandle = <0x1cc>; + }; + + qos@fdf81200 { + compatible = "syscon"; + reg = <0x00 0xfdf81200 0x00 0x20>; + phandle = <0xa1>; + }; + + mipi5-csi2-hw@fdd60000 { + clock-names = "pclk_csi2host"; + reg-names = "csihost_regs"; + resets = <0x02 0x329>; + interrupts = <0x00 0x99 0x04 0x00 0x9a 0x04>; + clocks = <0x02 0x1d4>; + compatible = "rockchip,rk3588-mipi-csi2-hw"; + status = "okay"; + interrupt-names = "csi-intr1\0csi-intr2"; + reg = <0x00 0xfdd60000 0x00 0x10000>; + phandle = <0x4c>; + reset-names = "srst_csihost_p"; + }; + + qos@fdf72000 { + compatible = "syscon"; + reg = <0x00 0xfdf72000 0x00 0x20>; + phandle = <0x82>; + }; + + timer@feae0000 { + clock-names = "pclk\0timer"; + interrupts = <0x00 0x121 0x04>; + clocks = <0x02 0x5c 0x02 0x5f>; + compatible = "rockchip,rk3588-timer\0rockchip,rk3288-timer"; + reg = <0x00 0xfeae0000 0x00 0x20>; + phandle = <0x2a9>; + }; + + rkcif-mipi-lvds-sditf-vir1 { + compatible = "rockchip,rkcif-sditf"; + status = "disabled"; + rockchip,cif = <0x52>; + phandle = <0x22c>; + }; + + syscon@fd5b5000 { + compatible = "rockchip,mipi-dphy-grf\0syscon"; + reg = <0x00 0xfd5b5000 0x00 0x1000>; + phandle = <0x193>; + }; + + i2c@fec90000 { + pinctrl-names = "default"; + #address-cells = <0x01>; + pinctrl-0 = <0x185>; + clock-names = "i2c\0pclk"; + resets = <0x02 0xb6 0x02 0xae>; + interrupts = <0x00 0x144 0x04>; + clocks = <0x02 0x93 0x02 0x8b>; + #size-cells = <0x00>; + compatible = "rockchip,rk3588-i2c\0rockchip,rk3399-i2c"; + status = "disabled"; + reg = <0x00 0xfec90000 0x00 0x1000>; + phandle = <0x2e4>; + reset-names = "i2c\0apb"; + }; + + avsd-plus@fdb51000 { + power-domains = <0x60 0x15>; + iommus = <0xb7>; + clock-names = "aclk_vcodec\0hclk_vcodec"; + assigned-clocks = <0x02 0x1c0>; + rockchip,normal-rates = <0x2367b880 0x00>; + assigned-clock-rates = <0x2367b880>; + resets = <0x02 0x2c8 0x02 0x2c9>; + interrupts = <0x00 0x77 0x04>; + clocks = <0x02 0x1c0 0x02 0x1c1>; + rockchip,srv = <0xb8>; + rockchip,taskqueue-node = <0x00>; + rockchip,disable-auto-freq; + compatible = "rockchip,avs-plus-decoder"; + rockchip,resetgroup-node = <0x00>; + status = "disabled"; + interrupt-names = "irq_avsd"; + rockchip,skip-pmu-idle-request; + reg = <0x00 0xfdb51000 0x00 0x200>; + phandle = <0x268>; + reset-names = "shared_video_a\0shared_video_h"; + }; + + dp1-sound { + rockchip,jack-det; + rockchip,cpu = <0x1e2>; + rockchip,codec = <0x1e3 0x01>; + rockchip,card-name = "rockchip,dp1"; + compatible = "rockchip,hdmi"; + status = "disabled"; + phandle = <0x4a9>; + rockchip,mclk-fs = <0x200>; + }; + + mipi1-csi2-hw@fdd20000 { + clock-names = "pclk_csi2host"; + reg-names = "csihost_regs"; + resets = <0x02 0x325>; + interrupts = <0x00 0x91 0x04 0x00 0x92 0x04>; + clocks = <0x02 0x1d0>; + compatible = "rockchip,rk3588-mipi-csi2-hw"; + status = "okay"; + interrupt-names = "csi-intr1\0csi-intr2"; + reg = <0x00 0xfdd20000 0x00 0x10000>; + phandle = <0x48>; + reset-names = "srst_csihost_p"; + }; + + iep@fdbb0000 { + power-domains = <0x60 0x15>; + iommus = <0xc1>; + clock-names = "aclk\0hclk\0sclk"; + assigned-clocks = <0x02 0x1aa>; + rockchip,normal-rates = <0x2367b880 0x00>; + assigned-clock-rates = <0x2367b880>; + resets = <0x02 0x2d5 0x02 0x2d4 0x02 0x2d6>; + interrupts = <0x00 0x75 0x04>; + clocks = <0x02 0x1aa 0x02 0x1a9 0x02 0x1ab>; + rockchip,srv = <0xb8>; + rockchip,taskqueue-node = <0x06>; + rockchip,disable-auto-freq; + compatible = "rockchip,iep-v2"; + status = "okay"; + interrupt-names = "irq_iep"; + rockchip,skip-pmu-idle-request; + reg = <0x00 0xfdbb0000 0x00 0x500>; + phandle = <0x271>; + reset-names = "rst_a\0rst_h\0rst_s"; + }; + + dsi@fde20000 { + power-domains = <0x60 0x18>; + #address-cells = <0x01>; + phy-names = "dcphy"; + clock-names = "pclk\0sys_clk"; + resets = <0x02 0x354>; + interrupts = <0x00 0xa7 0x04>; + clocks = <0x02 0x278 0x02 0x27a>; + #size-cells = <0x00>; + compatible = "rockchip,rk3588-mipi-dsi2"; + status = "disabled"; + rockchip,grf = <0xd7>; + phys = <0x2f>; + reg = <0x00 0xfde20000 0x00 0x10000>; + phandle = <0x281>; + reset-names = "apb"; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x00>; + phandle = <0x282>; + + endpoint@1 { + remote-endpoint = <0x39>; + status = "disabled"; + reg = <0x01>; + phandle = <0xee>; + }; + + endpoint@0 { + remote-endpoint = <0xf3>; + status = "disabled"; + reg = <0x00>; + phandle = <0xe9>; + }; + }; + }; + }; + + rkcif-mipi-lvds5-sditf-vir1 { + compatible = "rockchip,rkcif-sditf"; + status = "disabled"; + rockchip,cif = <0x1a2>; + phandle = <0x477>; + }; + + edp@fded0000 { + power-domains = <0x60 0x1a>; + phy-names = "dp"; + clock-names = "dp\0pclk\0spdif\0hclk"; + resets = <0x02 0x3e4 0x02 0x3e3>; + interrupts = <0x00 0xa4 0x04>; + clocks = <0x02 0x214 0x02 0x213 0x02 0x215 0x05>; + compatible = "rockchip,rk3588-edp"; + status = "disabled"; + rockchip,grf = <0xd8>; + phys = <0x1af>; + reg = <0x00 0xfded0000 0x00 0x1000>; + phandle = <0x483>; + reset-names = "dp\0apb"; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x00>; + + endpoint@1 { + remote-endpoint = <0x1b1>; + status = "disabled"; + reg = <0x01>; + phandle = <0xe4>; + }; + + endpoint@2 { + remote-endpoint = <0x1b2>; + status = "disabled"; + reg = <0x02>; + phandle = <0xec>; + }; + + endpoint@0 { + remote-endpoint = <0x1b0>; + status = "disabled"; + reg = <0x00>; + phandle = <0xde>; + }; + }; + + port@1 { + reg = <0x01>; + + endpoint { + phandle = <0x484>; + }; + }; + }; + }; + + qos@fdf67000 { + compatible = "syscon"; + reg = <0x00 0xfdf67000 0x00 0x20>; + phandle = <0x9c>; + }; + + qos@fdf64000 { + compatible = "syscon"; + reg = <0x00 0xfdf64000 0x00 0x20>; + phandle = <0x9b>; + }; + + npu-opp-table { + rockchip,pvtm-offset = <0x50>; + rockchip,pvtm-sample-time = <0x44c>; + rockchip,init-freq = <0xf4240>; + rockchip,pvtm-hw = <0x06>; + nvmem-cells = <0xb4 0xb5 0x21>; + rockchip,low-temp = <0x2710>; + rockchip,pvtm-voltage-sel-hw = <0x00 0x31f 0x00 0x320 0x333 0x01 0x334 0x34c 0x02 0x34d 0x365 0x03 0x366 0x37e 0x04 0x37f 0x270f 0x05>; + rockchip,pvtm-thermal-zone = "npu-thermal"; + rockchip,high-temp-max-freq = "\0\f5"; + rockchip,opp-clocks = <0x02 0x12a 0x02 0x12f>; + rockchip,pvtm-freq = "\0\f5"; + rockchip,pvtm-ref-temp = <0x19>; + low-volt-mem-read-margin = <0x04>; + volt-mem-read-margin = <0xd0bd8 0x01 0xbac48 0x02 0xa4cb8 0x03 0x78d98 0x04>; + compatible = "operating-points-v2"; + rockchip,low-temp-min-volt = <0xb71b0>; + rockchip,grf = <0xb6>; + nvmem-cell-names = "leakage\0opp-info\0specification_serial_number"; + rockchip,pvtm-voltage-sel = <0x00 0x32f 0x00 0x330 0x343 0x01 0x344 0x35c 0x02 0x35d 0x375 0x03 0x376 0x38e 0x04 0x38f 0x270f 0x05>; + phandle = <0xb1>; + rockchip,pvtm-temp-prop = <0xffffff8f 0xffffff8f>; + rockchip,temp-hysteresis = <0x1388>; + rockchip,high-temp = <0x14c08>; + rockchip,pvtm-pvtpll; + rockchip,supported-hw; + intermediate-threshold-freq = <0x7a120>; + rockchip,pvtm-volt = <0xb71b0>; + + opp-j-m-700000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; + opp-hz = <0x00 0x29b92700>; + opp-supported-hw = <0x06 0xffff>; + }; + + opp-300000000 { + opp-microvolt = <0xaae60 0xaae60 0xcf850 0xaae60 0xaae60 0xcf850>; + opp-microvolt-L4 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + opp-microvolt-L2 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + opp-hz = <0x00 0x11e1a300>; + opp-supported-hw = <0xf9 0xffff>; + opp-microvolt-L5 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + opp-microvolt-L3 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + opp-microvolt-L1 = <0xa7d8c 0xa7d8c 0xcf850 0xa7d8c 0xa7d8c 0xcf850>; + }; + + opp-500000000 { + opp-microvolt = <0xaae60 0xaae60 0xcf850 0xaae60 0xaae60 0xcf850>; + opp-microvolt-L4 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + opp-microvolt-L2 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + opp-hz = <0x00 0x1dcd6500>; + opp-supported-hw = <0xf9 0xffff>; + opp-microvolt-L5 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + opp-microvolt-L3 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + opp-microvolt-L1 = <0xa7d8c 0xa7d8c 0xcf850 0xa7d8c 0xa7d8c 0xcf850>; + }; + + opp-j-m-400000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; + opp-hz = <0x00 0x17d78400>; + opp-supported-hw = <0x06 0xffff>; + }; + + opp-700000000 { + opp-microvolt = <0xaae60 0xaae60 0xcf850 0xaae60 0xaae60 0xcf850>; + opp-microvolt-L4 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + opp-hz = <0x00 0x29b92700>; + opp-supported-hw = <0xf9 0xffff>; + opp-microvolt-L5 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + opp-microvolt-L3 = <0xa7d8c 0xa7d8c 0xcf850 0xa7d8c 0xa7d8c 0xcf850>; + }; + + opp-j-m-950000000 { + opp-microvolt = <0xcc77c 0xcc77c 0xcf850 0xcc77c 0xcc77c 0xcf850>; + opp-microvolt-L4 = <0xc042c 0xc042c 0xcf850 0xc042c 0xc042c 0xcf850>; + opp-microvolt-L2 = <0xc65d4 0xc65d4 0xcf850 0xc65d4 0xc65d4 0xcf850>; + opp-hz = <0x00 0x389fd980>; + opp-supported-hw = <0x06 0xffff>; + opp-microvolt-L5 = <0xbd358 0xbd358 0xcf850 0xbd358 0xbd358 0xcf850>; + opp-microvolt-L3 = <0xc3500 0xc3500 0xcf850 0xc3500 0xc3500 0xcf850>; + opp-microvolt-L1 = <0xc96a8 0xc96a8 0xcf850 0xc96a8 0xc96a8 0xcf850>; + }; + + opp-j-m-600000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; + opp-hz = <0x00 0x23c34600>; + opp-supported-hw = <0x06 0xffff>; + }; + + opp-900000000 { + opp-microvolt = <0xc3500 0xc3500 0xcf850 0xc3500 0xc3500 0xcf850>; + opp-microvolt-L4 = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; + opp-microvolt-L2 = <0xbd358 0xbd358 0xcf850 0xbd358 0xbd358 0xcf850>; + opp-hz = <0x00 0x35a4e900>; + opp-supported-hw = <0xf9 0xffff>; + opp-microvolt-L5 = <0xb40dc 0xb40dc 0xcf850 0xb40dc 0xb40dc 0xcf850>; + opp-microvolt-L3 = <0xba284 0xba284 0xcf850 0xba284 0xba284 0xcf850>; + opp-microvolt-L1 = <0xc042c 0xc042c 0xcf850 0xc042c 0xc042c 0xcf850>; + }; + + opp-j-m-800000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; + opp-hz = <0x00 0x2faf0800>; + opp-supported-hw = <0x06 0xffff>; + }; + + opp-400000000 { + opp-microvolt = <0xaae60 0xaae60 0xcf850 0xaae60 0xaae60 0xcf850>; + opp-microvolt-L4 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + opp-microvolt-L2 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + opp-hz = <0x00 0x17d78400>; + opp-supported-hw = <0xf9 0xffff>; + opp-microvolt-L5 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + opp-microvolt-L3 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + opp-microvolt-L1 = <0xa7d8c 0xa7d8c 0xcf850 0xa7d8c 0xa7d8c 0xcf850>; + }; + + opp-j-m-300000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; + opp-hz = <0x00 0x11e1a300>; + opp-supported-hw = <0x06 0xffff>; + }; + + opp-600000000 { + opp-microvolt = <0xaae60 0xaae60 0xcf850 0xaae60 0xaae60 0xcf850>; + opp-microvolt-L4 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + opp-microvolt-L2 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + opp-hz = <0x00 0x23c34600>; + opp-supported-hw = <0xf9 0xffff>; + opp-microvolt-L5 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + opp-microvolt-L3 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + opp-microvolt-L1 = <0xa7d8c 0xa7d8c 0xcf850 0xa7d8c 0xa7d8c 0xcf850>; + }; + + opp-1000000000 { + opp-microvolt = <0xcf850 0xcf850 0xcf850 0xcf850 0xcf850 0xcf850>; + opp-microvolt-L4 = <0xc3500 0xc3500 0xcf850 0xc3500 0xc3500 0xcf850>; + opp-microvolt-L2 = <0xc96a8 0xc96a8 0xcf850 0xc96a8 0xc96a8 0xcf850>; + opp-hz = <0x00 0x3b9aca00>; + opp-supported-hw = <0xf9 0xffff>; + opp-microvolt-L5 = <0xc042c 0xc042c 0xcf850 0xc042c 0xc042c 0xcf850>; + opp-microvolt-L3 = <0xc65d4 0xc65d4 0xcf850 0xc65d4 0xc65d4 0xcf850>; + opp-microvolt-L1 = <0xcc77c 0xcc77c 0xcf850 0xcc77c 0xcc77c 0xcf850>; + }; + + opp-j-m-500000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; + opp-hz = <0x00 0x1dcd6500>; + opp-supported-hw = <0x06 0xffff>; + }; + + opp-800000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; + opp-microvolt-L4 = <0xadf34 0xadf34 0xcf850 0xadf34 0xadf34 0xcf850>; + opp-microvolt-L2 = <0xb40dc 0xb40dc 0xcf850 0xb40dc 0xb40dc 0xcf850>; + opp-hz = <0x00 0x2faf0800>; + opp-supported-hw = <0xf9 0xffff>; + opp-microvolt-L5 = <0xaae60 0xaae60 0xcf850 0xaae60 0xaae60 0xcf850>; + opp-microvolt-L3 = <0xb1008 0xb1008 0xcf850 0xb1008 0xb1008 0xcf850>; + }; + }; + + syscon@fd590000 { + compatible = "rockchip,rk3588-bigcore0-grf\0syscon"; + reg = <0x00 0xfd590000 0x00 0x100>; + phandle = <0x26>; + }; + + syscon@fd5dc000 { + #address-cells = <0x01>; + #size-cells = <0x01>; + compatible = "rockchip,rk3588-usb2phy-grf\0syscon\0simple-mfd"; + reg = <0x00 0xfd5dc000 0x00 0x4000>; + phandle = <0x25e>; + + usb2-phy@c000 { + clock-output-names = "usb480m_phy3"; + clock-names = "phyclk"; + resets = <0x02 0xc004a 0x02 0x48b>; + interrupts = <0x00 0x188 0x04>; + clocks = <0x02 0x2b5>; + #clock-cells = <0x00>; + compatible = "rockchip,rk3588-usb2phy"; + status = "okay"; + reg = <0xc000 0x10>; + phandle = <0x6d>; + reset-names = "phy\0apb"; + + host-port { + phy-supply = <0x75>; + #phy-cells = <0x00>; + status = "okay"; + phandle = <0x6f>; + }; + }; + }; + + pcie-clk3 { + regulator-boot-on; + regulator-always-on; + regulator-name = "pcie_clk3"; + compatible = "regulator-fixed"; + status = "okay"; + phandle = <0x496>; + gpios = <0xfe 0x09 0x01>; + }; + + pwm@febf0030 { + pinctrl-names = "active"; + pinctrl-0 = <0x174>; + clock-names = "pwm\0pclk"; + interrupts = <0x00 0x15e 0x04 0x00 0x15f 0x04>; + clocks = <0x02 0x5a 0x02 0x59>; + #pwm-cells = <0x03>; + compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; + status = "disabled"; + reg = <0x00 0xfebf0030 0x00 0x10>; + phandle = <0x2dc>; + }; + + hwspinlock@fe5a0000 { + compatible = "rockchip,hwspinlock"; + reg = <0x00 0xfe5a0000 0x00 0x100>; + phandle = <0x29f>; + #hwlock-cells = <0x01>; + }; + + rkcif-mipi-lvds4-sditf-vir2 { + compatible = "rockchip,rkcif-sditf"; + status = "disabled"; + rockchip,cif = <0x1a1>; + phandle = <0x474>; + }; + + sram@10f000 { + #address-cells = <0x01>; + #size-cells = <0x01>; + compatible = "mmio-sram"; + ranges = <0x00 0x00 0x10f000 0x100>; + reg = <0x00 0x10f000 0x00 0x100>; + + sram@0 { + compatible = "arm,scmi-shmem"; + reg = <0x00 0x100>; + phandle = <0x46>; + }; + }; + + hdmirx-controller@fdee0000 { + power-domains = <0x60 0x1a>; + pinctrl-names = "default"; + pinctrl-0 = <0x1b3 0x1b4>; + clock-names = "aclk\0audio\0cr_para\0pclk\0ref\0hclk_s_hdmirx\0hclk_vo1"; + reg-names = "hdmirx_regs"; + resets = <0x02 0x3d9 0x02 0x3da 0x02 0x3db 0x02 0x3b7>; + interrupts = <0x00 0xb1 0x04 0x00 0x1b4 0x04 0x00 0xb3 0x04>; + clocks = <0x02 0x21a 0x02 0x21f 0x02 0x2b2 0x02 0x21b 0x02 0x21c 0x02 0x232 0x05>; + hpd-trigger-level = <0x01>; + #sound-dai-cells = <0x01>; + compatible = "rockchip,rk3588-hdmirx-ctrler\0rockchip,hdmirx-ctrler"; + status = "disabled"; + rockchip,grf = <0xc8>; + interrupt-names = "cec\0hdmi\0dma"; + hdmirx-det-gpios = <0xfe 0x1d 0x01>; + reg = <0x00 0xfdee0000 0x00 0x6000>; + phandle = <0x1eb>; + reset-names = "rst_a\0rst_p\0rst_ref\0rst_biu"; + rockchip,vo1_grf = <0xd8>; + }; + + qos@fdf61000 { + compatible = "syscon"; + reg = <0x00 0xfdf61000 0x00 0x20>; + phandle = <0x90>; + }; + + qos@fdf40600 { + compatible = "syscon"; + reg = <0x00 0xfdf40600 0x00 0x20>; + phandle = <0xa4>; + }; + + syscon@fd588000 { + compatible = "rockchip,rk3588-pmu0-grf\0syscon\0simple-mfd"; + reg = <0x00 0xfd588000 0x00 0x2000>; + phandle = <0x25a>; + + reboot-mode { + mode-normal = <0x5242c300>; + mode-loader = <0x5242c301>; + mode-quiescent = <0x5242c30e>; + mode-bootloader = <0x5242c301>; + mode-recovery = <0x5242c303>; + mode-watchdog = <0x5242c308>; + mode-ums = <0x5242c30c>; + mode-fastboot = <0x5242c309>; + offset = <0x80>; + compatible = "syscon-reboot-mode"; + mode-winusb = <0x5242c30f>; + phandle = <0x25b>; + mode-charge = <0x5242c30b>; + mode-panic = <0x5242c307>; + }; + }; + + syscon@fd5a4000 { + compatible = "rockchip,rk3588-vop-grf\0syscon"; + reg = <0x00 0xfd5a4000 0x00 0x2000>; + phandle = <0xd7>; + }; + + iommu@fdb60f00 { + power-domains = <0x60 0x16>; + clock-names = "aclk\0iface"; + interrupts = <0x00 0x72 0x04>; + clocks = <0x02 0x1ba 0x02 0x1b9>; + #iommu-cells = <0x00>; + compatible = "rockchip,iommu-v2"; + status = "okay"; + interrupt-names = "rga3_0_mmu"; + reg = <0x00 0xfdb60f00 0x00 0x100>; + phandle = <0xb9>; + }; + + pwm@febf0020 { + pinctrl-names = "active"; + pinctrl-0 = <0x173>; + clock-names = "pwm\0pclk"; + interrupts = <0x00 0x15e 0x04>; + clocks = <0x02 0x5a 0x02 0x59>; + #pwm-cells = <0x03>; + compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; + status = "disabled"; + reg = <0x00 0xfebf0020 0x00 0x10>; + phandle = <0x2db>; + }; + + rkispp@fdcd0000 { + power-domains = <0x60 0x1d>; + iommus = <0xd2>; + clock-names = "aclk_ispp\0hclk_ispp\0clk_ispp"; + assigned-clocks = <0x02 0x1d6>; + assigned-clock-rates = <0x5f5e100>; + interrupts = <0x00 0x8b 0x04>; + clocks = <0x02 0x1d5 0x02 0x1d6 0x02 0x1d7>; + compatible = "rockchip,rk3588-rkispp"; + status = "disabled"; + interrupt-names = "fec_irq"; + reg = <0x00 0xfdcd0000 0x00 0xf00>; + phandle = <0x5b>; + }; + + tsadc@fec00000 { + pinctrl-names = "gpio\0otpout"; + pinctrl-0 = <0x175>; + clock-names = "tsadc\0apb_pclk"; + rockchip,hw-tshut-polarity = <0x00>; + assigned-clocks = <0x02 0xaa>; + assigned-clock-rates = <0x1e8480>; + resets = <0x02 0xc1 0x02 0xc0>; + interrupts = <0x00 0x18d 0x04>; + rockchip,hw-tshut-mode = <0x00>; + clocks = <0x02 0xaa 0x02 0xa9>; + #thermal-sensor-cells = <0x01>; + compatible = "rockchip,rk3588-tsadc"; + pinctrl-1 = <0x176>; + status = "okay"; + reg = <0x00 0xfec00000 0x00 0x400>; + phandle = <0x5d>; + reset-names = "tsadc\0tsadc-apb"; + rockchip,hw-tshut-temp = <0x1d4c0>; + }; + + iommu@fdbb0800 { + power-domains = <0x60 0x15>; + clock-names = "aclk\0iface"; + interrupts = <0x00 0x75 0x04>; + clocks = <0x02 0x1aa 0x02 0x1a9>; + #iommu-cells = <0x00>; + compatible = "rockchip,iommu-v2"; + status = "okay"; + interrupt-names = "irq_iep_mmu"; + reg = <0x00 0xfdbb0800 0x00 0x100>; + phandle = <0xc1>; + }; + + phy@fed60000 { + clock-names = "ref\0apb"; + resets = <0x02 0x485 0x02 0xc003b 0x02 0xc003c 0x02 0xc003d>; + clocks = <0x02 0x2b5 0x02 0x267>; + #phy-cells = <0x00>; + compatible = "rockchip,rk3588-hdptx-phy"; + status = "disabled"; + rockchip,grf = <0x18a>; + reg = <0x00 0xfed60000 0x00 0x2000>; + phandle = <0x101>; + reset-names = "apb\0init\0cmn\0lane"; + }; + + pvtm@fda50000 { + #address-cells = <0x01>; + #size-cells = <0x00>; + compatible = "rockchip,rk3588-bigcore1-pvtm"; + reg = <0x00 0xfda50000 0x00 0x100>; + + pvtm@1 { + clock-names = "clk\0pclk"; + clocks = <0x02 0x2c8 0x02 0x17>; + reg = <0x01>; + }; + }; + + csi2-dcphy0 { + rockchip,hw = <0x2d 0x2e>; + phy-names = "dcphy0\0dcphy1"; + compatible = "rockchip,rk3588-csi2-dphy"; + status = "disabled"; + phys = <0x2f 0x30>; + phandle = <0x20d>; + }; + + mailbox@fece0000 { + clock-names = "pclk_mailbox"; + interrupts = <0x00 0x4d 0x04 0x00 0x4e 0x04 0x00 0x4f 0x04 0x00 0x50 0x04>; + clocks = <0x02 0x4e>; + #mbox-cells = <0x01>; + compatible = "rockchip,rk3588-mailbox\0rockchip,rk3368-mailbox"; + status = "disabled"; + reg = <0x00 0xfece0000 0x00 0x200>; + phandle = <0x2e9>; + }; + + rkcif-mipi-lvds3-sditf-vir3 { + compatible = "rockchip,rkcif-sditf"; + status = "disabled"; + rockchip,cif = <0x57>; + phandle = <0x23a>; + }; + + rkcif-mipi-lvds1-sditf { + compatible = "rockchip,rkcif-sditf"; + status = "disabled"; + rockchip,cif = <0x53>; + phandle = <0x22f>; + }; + + dfi@fe060000 { + rockchip,pmu_grf = <0x104>; + compatible = "rockchip,rk3588-dfi"; + status = "disabled"; + reg = <0x00 0xfe060000 0x00 0x10000>; + phandle = <0x40>; + }; + + iommu@fdca0000 { + power-domains = <0x60 0x17>; + clock-names = "aclk\0iface"; + interrupts = <0x00 0x6d 0x04>; + clocks = <0x02 0x49 0x02 0x4b>; + #iommu-cells = <0x00>; + compatible = "rockchip,iommu-av1"; + status = "okay"; + interrupt-names = "irq_av1d_mmu"; + reg = <0x00 0xfdca0000 0x00 0x600>; + phandle = <0xce>; + }; + + mipi5-csi2 { + rockchip,hw = <0x47 0x48 0x49 0x4a 0x4b 0x4c>; + compatible = "rockchip,rk3588-mipi-csi2"; + status = "disabled"; + phandle = <0x229>; + }; + + qos@fdf35600 { + compatible = "syscon"; + reg = <0x00 0xfdf35600 0x00 0x20>; + phandle = <0x8a>; + }; + + syscon@fd5e4000 { + compatible = "rockchip,rk3588-hdptxphy-grf\0syscon"; + reg = <0x00 0xfd5e4000 0x00 0x100>; + phandle = <0x1c7>; + }; + + iommu@fdba8800 { + power-domains = <0x60 0x15>; + clock-names = "aclk\0iface"; + interrupts = <0x00 0x7d 0x04>; + clocks = <0x02 0x1b0 0x02 0x1b1>; + #iommu-cells = <0x00>; + compatible = "rockchip,iommu-v2"; + status = "okay"; + interrupt-names = "irq_jpege2_mmu"; + reg = <0x00 0xfdba8800 0x00 0x40>; + phandle = <0xbf>; + }; + + mpp-srv { + rockchip,resetgroup-count = <0x01>; + rockchip,taskqueue-count = <0x0c>; + compatible = "rockchip,mpp-service"; + status = "okay"; + phandle = <0xb8>; + }; + + cspmu@fd10c000 { + compatible = "rockchip,cspmu"; + reg = <0x00 0xfd10c000 0x00 0x1000 0x00 0xfd10d000 0x00 0x1000 0x00 0xfd10e000 0x00 0x1000 0x00 0xfd10f000 0x00 0x1000 0x00 0xfd12c000 0x00 0x1000 0x00 0xfd12d000 0x00 0x1000 0x00 0xfd12e000 0x00 0x1000 0x00 0xfd12f000 0x00 0x1000>; + phandle = <0x48e>; + }; + + pwm@febf0010 { + pinctrl-names = "active"; + pinctrl-0 = <0x172>; + clock-names = "pwm\0pclk"; + interrupts = <0x00 0x15e 0x04>; + clocks = <0x02 0x5a 0x02 0x59>; + #pwm-cells = <0x03>; + compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; + status = "disabled"; + reg = <0x00 0xfebf0010 0x00 0x10>; + phandle = <0x2da>; + }; + + iommu@fdbef000 { + power-domains = <0x60 0x11>; + rockchip,shootdown-entire; + interrupts = <0x00 0x66 0x04 0x00 0x67 0x04>; + clocks = <0x02 0x1ca 0x02 0x1c9>; + rockchip,enable-cmd-retry; + #iommu-cells = <0x00>; + compatible = "rockchip,iommu-v2"; + rockchip,disable-mmu-reset; + status = "okay"; + interrupt-names = "irq_rkvenc1_mmu0\0irq_rkvenc1_mmu1"; + reg = <0x00 0xfdbef000 0x00 0x40 0x00 0xfdbef040 0x00 0x40>; + phandle = <0xc5>; + lock-names = "aclk\0iface"; + }; + + serial@feb60000 { + reg-io-width = <0x04>; + pinctrl-names = "default"; + pinctrl-0 = <0x162>; + clock-names = "baudclk\0apb_pclk"; + interrupts = <0x00 0x14e 0x04>; + clocks = <0x02 0xbf 0x02 0xad>; + compatible = "rockchip,rk3588-uart\0snps,dw-apb-uart"; + status = "disabled"; + reg = <0x00 0xfeb60000 0x00 0x100>; + phandle = <0x2cb>; + dmas = <0x7c 0x0c 0x7c 0x0d>; + reg-shift = <0x02>; + }; + + hdmiin-sound { + rockchip,jack-det; + rockchip,cpu = <0x1ec>; + rockchip,codec = <0x1eb 0x00>; + rockchip,bitclock-master = <0x1eb>; + rockchip,card-name = "rockchip,hdmiin"; + rockchip,format = "i2s"; + compatible = "rockchip,hdmi"; + phandle = <0x4ac>; + rockchip,frame-master = <0x1eb>; + rockchip,mclk-fs = <0x80>; + }; + + i2s@fddc8000 { + power-domains = <0x60 0x19>; + clock-names = "mclk_tx\0hclk"; + assigned-clocks = <0x02 0x1ff>; + assigned-clock-parents = <0x02 0x05>; + resets = <0x02 0x391>; + interrupts = <0x00 0xbc 0x04>; + clocks = <0x02 0x201 0x02 0x1fe>; + dma-names = "tx"; + #sound-dai-cells = <0x00>; + compatible = "rockchip,rk3588-i2s-tdm"; + rockchip,playback-only; + status = "disabled"; + reg = <0x00 0xfddc8000 0x00 0x1000>; + phandle = <0x47c>; + dmas = <0xf2 0x16>; + reset-names = "tx-m"; + }; + + pcie30-avdd0v75 { + regulator-max-microvolt = <0xb71b0>; + regulator-boot-on; + regulator-always-on; + regulator-min-microvolt = <0xb71b0>; + regulator-name = "pcie30_avdd0v75"; + compatible = "regulator-fixed"; + phandle = <0x4a7>; + vin-supply = <0x1df>; + }; + + timer { + interrupts = <0x01 0x0d 0xf04 0x01 0x0e 0xf04 0x01 0x0b 0xf04 0x01 0x0a 0xf04>; + compatible = "arm,armv8-timer"; + }; + + rockchip-suspend { + rockchip,sleep-debug-en = <0x01>; + rockchip,sleep-mode-config = <0x5000604>; + compatible = "rockchip,pm-rk3588"; + status = "okay"; + rockchip,wakeup-config = <0x100>; + phandle = <0x246>; + }; + + decompress@fea80000 { + clock-names = "aclk\0dclk\0pclk"; + resets = <0x02 0x118>; + interrupts = <0x00 0x55 0x04>; + clocks = <0x02 0x75 0x02 0x77 0x02 0x76>; + compatible = "rockchip,hw-decompress"; + status = "disabled"; + reg = <0x00 0xfea80000 0x00 0x1000>; + phandle = <0x2a3>; + reset-names = "dresetn"; + }; + + dma-controller@fea30000 { + clock-names = "apb_pclk"; + interrupts = <0x00 0x58 0x04 0x00 0x59 0x04>; + clocks = <0x02 0x79>; + arm,pl330-periph-burst; + compatible = "arm,pl330\0arm,primecell"; + reg = <0x00 0xfea30000 0x00 0x4000>; + phandle = <0xf1>; + #dma-cells = <0x01>; + }; + + pwm@febf0000 { + pinctrl-names = "active"; + pinctrl-0 = <0x171>; + clock-names = "pwm\0pclk"; + interrupts = <0x00 0x15e 0x04>; + clocks = <0x02 0x5a 0x02 0x59>; + #pwm-cells = <0x03>; + compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; + status = "disabled"; + reg = <0x00 0xfebf0000 0x00 0x10>; + phandle = <0x2d9>; + }; + + iommu@fdcd8f00 { + power-domains = <0x60 0x1d>; + clock-names = "aclk\0iface\0pclk"; + interrupts = <0x00 0x8e 0x04>; + clocks = <0x02 0x1d8 0x02 0x1d9 0x02 0x1da>; + #iommu-cells = <0x00>; + compatible = "rockchip,iommu-v2"; + rockchip,disable-mmu-reset; + status = "disabled"; + interrupt-names = "fec1_mmu"; + reg = <0x00 0xfdcd8f00 0x00 0x100>; + phandle = <0xd3>; + }; + + spdif-tx@fddb0000 { + power-domains = <0x60 0x19>; + clock-names = "mclk\0hclk"; + assigned-clocks = <0x02 0x205>; + assigned-clock-parents = <0x02 0x05>; + interrupts = <0x00 0xc3 0x04>; + clocks = <0x02 0x209 0x02 0x204>; + dma-names = "tx"; + #sound-dai-cells = <0x00>; + compatible = "rockchip,rk3588-spdif\0rockchip,rk3568-spdif"; + status = "disabled"; + reg = <0x00 0xfddb0000 0x00 0x1000>; + phandle = <0x1d5>; + dmas = <0xf1 0x06>; + }; + + rkisp1-vir2 { + rockchip,hw = <0x5a>; + compatible = "rockchip,rkisp-vir"; + status = "disabled"; + phandle = <0x241>; + }; + + pcie-clk1 { + regulator-boot-on; + regulator-always-on; + regulator-name = "pcie_clk1"; + compatible = "regulator-fixed"; + status = "okay"; + phandle = <0x494>; + vin-supply = <0x1cd>; + gpios = <0x181 0x15 0x01>; + }; + + jpege-core@fdba8000 { + power-domains = <0x60 0x15>; + iommus = <0xbf>; + rockchip,ccu = <0xbd>; + clock-names = "aclk_vcodec\0hclk_vcodec"; + assigned-clocks = <0x02 0x1b0>; + rockchip,normal-rates = <0x2367b880 0x00>; + assigned-clock-rates = <0x2367b880>; + resets = <0x02 0x2ce 0x02 0x2cf>; + interrupts = <0x00 0x7e 0x04>; + clocks = <0x02 0x1b0 0x02 0x1b1>; + rockchip,srv = <0xb8>; + rockchip,taskqueue-node = <0x02>; + rockchip,disable-auto-freq; + compatible = "rockchip,vpu-jpege-core"; + status = "okay"; + interrupt-names = "irq_jpege2"; + rockchip,skip-pmu-idle-request; + reg = <0x00 0xfdba8000 0x00 0x400>; + phandle = <0x26f>; + reset-names = "video_a\0video_h"; + }; + + qos@fdf66400 { + compatible = "syscon"; + reg = <0x00 0xfdf66400 0x00 0x20>; + phandle = <0x95>; + }; + + spdif-tx1-sound { + simple-audio-card,name = "rockchip,spdif-tx1"; + compatible = "simple-audio-card"; + status = "disabled"; + phandle = <0x49d>; + simple-audio-card,mclk-fs = <0x80>; + + simple-audio-card,cpu { + sound-dai = <0x1d7>; + }; + + simple-audio-card,codec { + sound-dai = <0x1d8>; + }; + }; + + mmc@fe2e0000 { + mmc-hs400-enhanced-strobe; + clock-names = "core\0bus\0axi\0block\0timer"; + assigned-clocks = <0x02 0x13b 0x02 0x13c 0x02 0x13a>; + bus-width = <0x08>; + non-removable; + no-sdio; + assigned-clock-rates = <0xbebc200 0x16e3600 0xbebc200>; + resets = <0x02 0x1f6 0x02 0x1f4 0x02 0x1f5 0x02 0x1f7 0x02 0x1f8>; + mmc-hs400-1_8v; + interrupts = <0x00 0xcd 0x04>; + clocks = <0x02 0x13a 0x02 0x138 0x02 0x139 0x02 0x13b 0x02 0x13c>; + no-sd; + compatible = "rockchip,rk3588-dwcmshc\0rockchip,dwcmshc-sdhci"; + status = "okay"; + reg = <0x00 0xfe2e0000 0x00 0x10000>; + phandle = <0x295>; + max-frequency = <0xbebc200>; + reset-names = "core\0bus\0axi\0block\0timer"; + }; + + dma-controller@fed10000 { + clock-names = "apb_pclk"; + interrupts = <0x00 0x5a 0x04 0x00 0x5b 0x04>; + clocks = <0x02 0x7a>; + arm,pl330-periph-burst; + compatible = "arm,pl330\0arm,primecell"; + reg = <0x00 0xfed10000 0x00 0x4000>; + phandle = <0xf2>; + #dma-cells = <0x01>; + }; + + iommu@fc900000 { + interrupts = <0x00 0x171 0x04 0x00 0x173 0x04 0x00 0x176 0x04 0x00 0x16f 0x04>; + #iommu-cells = <0x01>; + compatible = "arm,smmu-v3"; + status = "disabled"; + interrupt-names = "eventq\0gerror\0priq\0cmdq-sync"; + reg = <0x00 0xfc900000 0x00 0x200000>; + phandle = <0x256>; + }; + + mailbox@fec70000 { + clock-names = "pclk_mailbox"; + interrupts = <0x00 0x45 0x04 0x00 0x46 0x04 0x00 0x47 0x04 0x00 0x48 0x04>; + clocks = <0x02 0x4d>; + #mbox-cells = <0x01>; + compatible = "rockchip,rk3588-mailbox\0rockchip,rk3368-mailbox"; + status = "disabled"; + reg = <0x00 0xfec70000 0x00 0x200>; + phandle = <0x2de>; + }; + + pcie@fe150000 { + power-domains = <0x60 0x22>; + vpcie3v3-supply = <0x1b8>; + #address-cells = <0x03>; + rockchip,pipe-grf = <0x76>; + phy-names = "pcie-phy"; + bus-range = <0x00 0x0f>; + clock-names = "aclk_mst\0aclk_slv\0aclk_dbi\0pclk\0aux\0pipe"; + reg-names = "pcie-apb\0pcie-dbi"; + num-ob-windows = <0x10>; + resets = <0x02 0x20d 0x02 0x21c>; + interrupts = <0x00 0x107 0x04 0x00 0x106 0x04 0x00 0x105 0x04 0x00 0x104 0x04 0x00 0x103 0x04>; + clocks = <0x02 0x14e 0x02 0x153 0x02 0x149 0x02 0x158 0x02 0x15e 0x02 0x183>; + interrupt-map = <0x00 0x00 0x00 0x01 0x1b5 0x00 0x00 0x00 0x00 0x02 0x1b5 0x01 0x00 0x00 0x00 0x03 0x1b5 0x02 0x00 0x00 0x00 0x04 0x1b5 0x03>; + #size-cells = <0x02>; + max-link-speed = <0x03>; + device_type = "pci"; + interrupt-map-mask = <0x00 0x00 0x00 0x07>; + reset-gpios = <0x10d 0x0e 0x00>; + num-lanes = <0x01>; + compatible = "rockchip,rk3588-pcie\0snps,dw-pcie"; + ranges = <0x800 0x00 0xf0000000 0x00 0xf0000000 0x00 0x100000 0x81000000 0x00 0xf0100000 0x00 0xf0100000 0x00 0x100000 0x82000000 0x00 0xf0200000 0x00 0xf0200000 0x00 0xe00000 0xc3000000 0x09 0x00 0x09 0x00 0x00 0x40000000>; + msi-map = <0x00 0x1b6 0x00 0x1000>; + #interrupt-cells = <0x01>; + status = "okay"; + interrupt-names = "sys\0pmc\0msg\0legacy\0err"; + phys = <0x1b7>; + num-viewport = <0x08>; + reg = <0x00 0xfe150000 0x00 0x10000 0x0a 0x40000000 0x00 0x400000>; + linux,pci-domain = <0x00>; + phandle = <0x485>; + reset-names = "pcie\0periph"; + num-ib-windows = <0x10>; + + legacy-interrupt-controller { + #address-cells = <0x00>; + interrupts = <0x00 0x104 0x01>; + interrupt-parent = <0x01>; + #interrupt-cells = <0x01>; + phandle = <0x1b5>; + interrupt-controller; + }; + }; + + rng@fe378000 { + clock-names = "hclk_trng"; + resets = <0x11a 0x30>; + interrupts = <0x00 0x190 0x04>; + clocks = <0x0e 0x0c>; + compatible = "rockchip,trngv1"; + status = "okay"; + reg = <0x00 0xfe378000 0x00 0x200>; + phandle = <0x297>; + reset-names = "reset"; + }; + + sata@fe220000 { + phy-names = "sata-phy"; + clock-names = "sata\0pmalive\0rxoob\0ref\0asic"; + interrupts = <0x00 0x112 0x04>; + clocks = <0x02 0x172 0x02 0x16f 0x02 0x175 0x02 0x164 0x02 0x17f>; + compatible = "rockchip,rk-ahci\0snps,dwc-ahci"; + status = "disabled"; + interrupt-names = "hostc"; + phys = <0x1bc 0x01>; + reg = <0x00 0xfe220000 0x00 0x1000>; + phandle = <0x48a>; + ports-implemented = <0x01>; + }; + + rkcif-mipi-lvds5 { + iommus = <0x50>; + rockchip,hw = <0x4f>; + compatible = "rockchip,rkcif-mipi-lvds"; + status = "disabled"; + phandle = <0x1a2>; + }; + + vcc-sata-pwr-en-regulator { + regulator-max-microvolt = <0x325aa0>; + regulator-boot-on; + gpio = <0x182 0x0c 0x00>; + regulator-always-on; + enable-active-high; + regulator-min-microvolt = <0x325aa0>; + regulator-name = "vcc_sata_pwr_en"; + startup-delay-us = <0x1388>; + compatible = "regulator-fixed"; + status = "okay"; + phandle = <0x4a3>; + vin-supply = <0x1cd>; + }; + + pwm-fan { + cooling-levels = <0x32 0x32 0x64 0x96 0xc8 0xff>; + rockchip,temp-trips = <0xc350 0x01 0xd6d8 0x02 0xea60 0x03 0xfde8 0x04 0x11170 0x05>; + compatible = "pwm-fan"; + phandle = <0x4ad>; + pwms = <0x1ed 0x00 0xc350 0x00>; + #cooling-cells = <0x02>; + fan-supply = <0x78>; + }; + + qos@fdf3e200 { + compatible = "syscon"; + reg = <0x00 0xfdf3e200 0x00 0x20>; + phandle = <0xab>; + }; + + spdif-tx@fe4e0000 { + power-domains = <0x60 0x26>; + pinctrl-names = "default"; + pinctrl-0 = <0x142>; + clock-names = "mclk\0hclk"; + assigned-clocks = <0x02 0x3f>; + assigned-clock-parents = <0x02 0x05>; + interrupts = <0x00 0xc1 0x04>; + clocks = <0x02 0x41 0x02 0x3e>; + dma-names = "tx"; + #sound-dai-cells = <0x00>; + compatible = "rockchip,rk3588-spdif\0rockchip,rk3568-spdif"; + status = "disabled"; + reg = <0x00 0xfe4e0000 0x00 0x1000>; + phandle = <0x29d>; + dmas = <0x7c 0x05>; + }; + + vad@fe4d0000 { + rockchip,det-channel = <0x00>; + rockchip,audio-src = <0x00>; + clock-names = "hclk"; + reg-names = "vad"; + interrupts = <0x00 0xca 0x04>; + clocks = <0x02 0x2a0>; + #sound-dai-cells = <0x00>; + compatible = "rockchip,rk3588-vad"; + status = "disabled"; + rockchip,mode = <0x00>; + reg = <0x00 0xfe4d0000 0x00 0x1000>; + phandle = <0x29c>; + }; + + jpegd@fdb90000 { + power-domains = <0x60 0x15>; + iommus = <0xbb>; + clock-names = "aclk_vcodec\0hclk_vcodec"; + assigned-clocks = <0x02 0x1b4>; + rockchip,normal-rates = <0x23c34600 0x00>; + assigned-clock-rates = <0x23c34600>; + resets = <0x02 0x2d2 0x02 0x2d3>; + interrupts = <0x00 0x81 0x04>; + clocks = <0x02 0x1b4 0x02 0x1b5>; + rockchip,srv = <0xb8>; + rockchip,taskqueue-node = <0x01>; + compatible = "rockchip,rkv-jpeg-decoder-v1"; + status = "okay"; + interrupt-names = "irq_jpegd"; + rockchip,skip-pmu-idle-request; + reg = <0x00 0xfdb90000 0x00 0x400>; + phandle = <0x26c>; + reset-names = "video_a\0video_h"; + }; + + cpuinfo { + nvmem-cells = <0x2a 0x2b 0x2c>; + compatible = "rockchip,cpuinfo"; + nvmem-cell-names = "id\0cpu-version\0cpu-code"; + }; + + qos@fdf60400 { + compatible = "syscon"; + reg = <0x00 0xfdf60400 0x00 0x20>; + phandle = <0x8f>; + }; + + spi@feb20000 { + pinctrl-names = "default"; + #address-cells = <0x01>; + num-cs = <0x01>; + pinctrl-0 = <0x154 0x155>; + clock-names = "spiclk\0apb_pclk"; + assigned-clocks = <0x02 0xa5>; + assigned-clock-rates = <0xbebc200>; + interrupts = <0x00 0x148 0x04>; + clocks = <0x02 0xa5 0x02 0xa0>; + #size-cells = <0x00>; + dma-names = "tx\0rx"; + compatible = "rockchip,rk3066-spi"; + status = "okay"; + reg = <0x00 0xfeb20000 0x00 0x1000>; + phandle = <0x2ad>; + dmas = <0xf1 0x0f 0xf1 0x10>; + + rk806single@0 { + vcc11-supply = <0x15b>; + pinctrl-names = "default\0pmic-power-off"; + vcc12-supply = <0x78>; + vcc13-supply = <0x15c>; + vcc14-supply = <0x15c>; + pinctrl-0 = <0x156 0x157 0x158 0x159>; + interrupts = <0x07 0x08>; + spi-max-frequency = <0xf4240>; + interrupt-parent = <0x7b>; + low_voltage_threshold = <0xbb8>; + vcca-supply = <0x78>; + vcc1-supply = <0x78>; + pmic-reset-func = <0x01>; + vcc2-supply = <0x78>; + hotdie_temperture_threshold = <0x73>; + compatible = "rockchip,rk806"; + vcc3-supply = <0x78>; + pinctrl-1 = <0x15a>; + vcc4-supply = <0x78>; + vcc5-supply = <0x78>; + reg = <0x00>; + phandle = <0x2ae>; + vcc6-supply = <0x78>; + shutdown_voltage_threshold = <0xa8c>; + vcc7-supply = <0x78>; + vcc8-supply = <0x78>; + shutdown_temperture_threshold = <0xa0>; + vcc9-supply = <0x78>; + vcc10-supply = <0x78>; + + pinctrl_rk806 { + gpio-controller; + phandle = <0x2af>; + #gpio-cells = <0x02>; + + rk806_dvs2_rst { + function = "pin_fun3"; + pins = "gpio_pwrctrl2"; + phandle = <0x2b4>; + }; + + rk806_dvs3_null { + function = "pin_fun0"; + pins = "gpio_pwrctrl3"; + phandle = <0x159>; + }; + + rk806_dvs3_dvs { + function = "pin_fun4"; + pins = "gpio_pwrctrl3"; + phandle = <0x2ba>; + }; + + rk806_dvs3_rst { + function = "pin_fun3"; + pins = "gpio_pwrctrl3"; + phandle = <0x2b9>; + }; + + rk806_dvs2_null { + function = "pin_fun0"; + pins = "gpio_pwrctrl2"; + phandle = <0x158>; + }; + + rk806_dvs1_pwrdn { + function = "pin_fun2"; + pins = "gpio_pwrctrl1"; + phandle = <0x15a>; + }; + + rk806_dvs1_slp { + function = "pin_fun1"; + pins = "gpio_pwrctrl1"; + phandle = <0x2b0>; + }; + + rk806_dvs1_null { + function = "pin_fun0"; + pins = "gpio_pwrctrl2"; + phandle = <0x157>; + }; + + rk806_dvs3_gpio { + function = "pin_fun5"; + pins = "gpio_pwrctrl3"; + phandle = <0x2bb>; + }; + + rk806_dvs2_gpio { + function = "pin_fun5"; + pins = "gpio_pwrctrl2"; + phandle = <0x2b6>; + }; + + rk806_dvs2_slp { + function = "pin_fun1"; + pins = "gpio_pwrctrl2"; + phandle = <0x2b2>; + }; + + rk806_dvs2_pwrdn { + function = "pin_fun2"; + pins = "gpio_pwrctrl2"; + phandle = <0x2b3>; + }; + + rk806_dvs1_rst { + function = "pin_fun3"; + pins = "gpio_pwrctrl1"; + phandle = <0x2b1>; + }; + + rk806_dvs3_slp { + function = "pin_fun1"; + pins = "gpio_pwrctrl3"; + phandle = <0x2b7>; + }; + + rk806_dvs2_dvs { + function = "pin_fun4"; + pins = "gpio_pwrctrl2"; + phandle = <0x2b5>; + }; + + rk806_dvs3_pwrdn { + function = "pin_fun2"; + pins = "gpio_pwrctrl3"; + phandle = <0x2b8>; + }; + }; + + pwrkey { + status = "okay"; + }; + + regulators { + + PLDO_REG2 { + regulator-max-microvolt = <0x1b7740>; + regulator-boot-on; + regulator-always-on; + regulator-min-microvolt = <0x1b7740>; + regulator-name = "vcc_1v8_s0"; + phandle = <0x177>; + + regulator-state-mem { + regulator-off-in-suspend; + regulator-suspend-microvolt = <0x1b7740>; + }; + }; + + DCDC_REG4 { + regulator-max-microvolt = <0xe7ef0>; + regulator-boot-on; + regulator-init-microvolt = <0xb71b0>; + regulator-always-on; + regulator-min-microvolt = <0x86470>; + regulator-name = "vdd_vdenc_s0"; + regulator-ramp-delay = <0x30d4>; + phandle = <0x2bc>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + DCDC_REG2 { + regulator-max-microvolt = <0xe7ef0>; + regulator-boot-on; + regulator-always-on; + regulator-min-microvolt = <0x86470>; + regulator-name = "vdd_cpu_lit_s0"; + regulator-ramp-delay = <0x30d4>; + phandle = <0x12>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + NLDO_REG4 { + regulator-max-microvolt = <0xcf850>; + regulator-boot-on; + regulator-always-on; + regulator-min-microvolt = <0xcf850>; + regulator-name = "vdd_0v85_s0"; + phandle = <0x2c6>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + DCDC_REG9 { + regulator-boot-on; + regulator-always-on; + regulator-name = "vddq_ddr_s0"; + phandle = <0x2bf>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + NLDO_REG2 { + regulator-max-microvolt = <0xcf850>; + regulator-boot-on; + regulator-always-on; + regulator-min-microvolt = <0xcf850>; + regulator-name = "vdd_ddr_pll_s0"; + phandle = <0x2c5>; + + regulator-state-mem { + regulator-off-in-suspend; + regulator-suspend-microvolt = <0xcf850>; + }; + }; + + PLDO_REG5 { + regulator-max-microvolt = <0x325aa0>; + regulator-boot-on; + regulator-always-on; + regulator-min-microvolt = <0x1b7740>; + regulator-name = "vccio_sd_s0"; + phandle = <0x118>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + DCDC_REG7 { + regulator-max-microvolt = <0x1e8480>; + regulator-boot-on; + regulator-always-on; + regulator-min-microvolt = <0x1e8480>; + regulator-name = "vdd_2v0_pldo_s3"; + phandle = <0x15b>; + + regulator-state-mem { + regulator-suspend-microvolt = <0x1e8480>; + regulator-on-in-suspend; + }; + }; + + PLDO_REG3 { + regulator-max-microvolt = <0x124f80>; + regulator-boot-on; + regulator-always-on; + regulator-min-microvolt = <0x124f80>; + regulator-name = "avdd_1v2_s0"; + phandle = <0x2c1>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + DCDC_REG5 { + regulator-max-microvolt = <0xdbba0>; + regulator-boot-on; + regulator-always-on; + regulator-min-microvolt = <0xa4cb8>; + regulator-name = "vdd_ddr_s0"; + regulator-ramp-delay = <0x30d4>; + phandle = <0x42>; + + regulator-state-mem { + regulator-off-in-suspend; + regulator-suspend-microvolt = <0xcf850>; + }; + }; + + DCDC_REG10 { + regulator-max-microvolt = <0x1b7740>; + regulator-boot-on; + regulator-always-on; + regulator-min-microvolt = <0x1b7740>; + regulator-name = "vcc_1v8_s3"; + phandle = <0x2c0>; + + regulator-state-mem { + regulator-suspend-microvolt = <0x1b7740>; + regulator-on-in-suspend; + }; + }; + + PLDO_REG1 { + regulator-max-microvolt = <0x1b7740>; + regulator-boot-on; + regulator-always-on; + regulator-min-microvolt = <0x1b7740>; + regulator-name = "avcc_1v8_s0"; + phandle = <0x1de>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + DCDC_REG3 { + regulator-max-microvolt = <0xb71b0>; + regulator-boot-on; + regulator-always-on; + regulator-min-microvolt = <0xa4cb8>; + regulator-name = "vdd_log_s0"; + regulator-ramp-delay = <0x30d4>; + phandle = <0x43>; + + regulator-state-mem { + regulator-suspend-microvolt = <0xb71b0>; + regulator-on-in-suspend; + }; + }; + + DCDC_REG1 { + regulator-max-microvolt = <0xe7ef0>; + regulator-boot-on; + regulator-enable-ramp-delay = <0x190>; + regulator-min-microvolt = <0x86470>; + regulator-name = "vdd_gpu_s0"; + regulator-ramp-delay = <0x30d4>; + phandle = <0x62>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + NLDO_REG5 { + regulator-max-microvolt = <0xb71b0>; + regulator-boot-on; + regulator-always-on; + regulator-min-microvolt = <0xb71b0>; + regulator-name = "vdd_0v75_s0"; + phandle = <0x2c7>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + NLDO_REG3 { + regulator-max-microvolt = <0xb71b0>; + regulator-boot-on; + regulator-always-on; + regulator-min-microvolt = <0xb71b0>; + regulator-name = "avdd_0v75_s0"; + phandle = <0x1df>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + PLDO_REG6 { + regulator-max-microvolt = <0x1b7740>; + regulator-boot-on; + regulator-always-on; + regulator-min-microvolt = <0x1b7740>; + regulator-name = "pldo6_s3"; + phandle = <0x2c3>; + + regulator-state-mem { + regulator-suspend-microvolt = <0x1b7740>; + regulator-on-in-suspend; + }; + }; + + DCDC_REG8 { + regulator-max-microvolt = <0x325aa0>; + regulator-boot-on; + regulator-always-on; + regulator-min-microvolt = <0x325aa0>; + regulator-name = "vcc_3v3_s3"; + phandle = <0x2be>; + + regulator-state-mem { + regulator-suspend-microvolt = <0x325aa0>; + regulator-on-in-suspend; + }; + }; + + NLDO_REG1 { + regulator-max-microvolt = <0xb71b0>; + regulator-boot-on; + regulator-always-on; + regulator-min-microvolt = <0xb71b0>; + regulator-name = "vdd_0v75_s3"; + phandle = <0x2c4>; + + regulator-state-mem { + regulator-suspend-microvolt = <0xb71b0>; + regulator-on-in-suspend; + }; + }; + + PLDO_REG4 { + regulator-max-microvolt = <0x325aa0>; + regulator-boot-on; + regulator-always-on; + regulator-min-microvolt = <0x325aa0>; + regulator-name = "vcc_3v3_s0"; + phandle = <0x2c2>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + DCDC_REG6 { + regulator-boot-on; + regulator-always-on; + regulator-name = "vdd2_ddr_s3"; + phandle = <0x2bd>; + + regulator-state-mem { + regulator-on-in-suspend; + }; + }; + }; + }; + }; + + usbhost3_0 { + #address-cells = <0x02>; + clock-names = "ref\0suspend\0bus\0utmi\0php\0pipe"; + clocks = <0x02 0x179 0x02 0x178 0x02 0x177 0x02 0x17a 0x02 0x166 0x02 0x181>; + #size-cells = <0x02>; + compatible = "rockchip,rk3588-dwc3\0rockchip,rk3399-dwc3"; + ranges; + status = "disabled"; + phandle = <0x258>; + + usb@fcd00000 { + snps,dis_enblslpm_quirk; + phy-names = "usb3-phy"; + snps,dis-u2-freeclk-exists-quirk; + phy_type = "utmi_wide"; + resets = <0x02 0x237>; + interrupts = <0x00 0xde 0x04>; + snps,dis_rxdet_inp3_quirk; + compatible = "snps,dwc3"; + snps,parkmode-disable-hs-quirk; + snps,dis-del-phy-power-chg-quirk; + status = "disabled"; + snps,parkmode-disable-ss-quirk; + phys = <0x70 0x04>; + reg = <0x00 0xfcd00000 0x00 0x400000>; + phandle = <0x259>; + dr_mode = "host"; + reset-names = "usb3-host"; + snps,dis-tx-ipgap-linecheck-quirk; + }; + }; + + pcie@fe190000 { + #address-cells = <0x03>; + rockchip,pipe-grf = <0x76>; + phy-names = "pcie-phy"; + bus-range = <0x40 0x4f>; + clock-names = "aclk_mst\0aclk_slv\0aclk_dbi\0pclk\0aux\0pipe"; + reg-names = "pcie-apb\0pcie-dbi"; + num-ob-windows = <0x08>; + resets = <0x02 0x211 0x02 0x220>; + interrupts = <0x00 0xfd 0x04 0x00 0xfc 0x04 0x00 0xfb 0x04 0x00 0xfa 0x04 0x00 0xf9 0x04>; + clocks = <0x02 0x152 0x02 0x157 0x02 0x14d 0x02 0x15d 0x02 0x162 0x02 0x182>; + interrupt-map = <0x00 0x00 0x00 0x01 0x107 0x00 0x00 0x00 0x00 0x02 0x107 0x01 0x00 0x00 0x00 0x03 0x107 0x02 0x00 0x00 0x00 0x04 0x107 0x03>; + #size-cells = <0x02>; + max-link-speed = <0x02>; + device_type = "pci"; + interrupt-map-mask = <0x00 0x00 0x00 0x07>; + num-lanes = <0x01>; + compatible = "rockchip,rk3588-pcie\0snps,dw-pcie"; + ranges = <0x800 0x00 0xf4000000 0x00 0xf4000000 0x00 0x100000 0x81000000 0x00 0xf4100000 0x00 0xf4100000 0x00 0x100000 0x82000000 0x00 0xf4200000 0x00 0xf4200000 0x00 0xe00000 0xc3000000 0x0a 0x00 0x0a 0x00 0x00 0x40000000>; + msi-map = <0x4000 0x106 0x4000 0x1000>; + #interrupt-cells = <0x01>; + status = "disabled"; + interrupt-names = "sys\0pmc\0msg\0legacy\0err"; + phys = <0x108 0x02>; + num-viewport = <0x04>; + reg = <0x00 0xfe190000 0x00 0x10000 0x0a 0x41000000 0x00 0x400000>; + linux,pci-domain = <0x04>; + phandle = <0x28d>; + reset-names = "pcie\0periph"; + num-ib-windows = <0x08>; + + legacy-interrupt-controller { + #address-cells = <0x00>; + interrupts = <0x00 0xfa 0x01>; + interrupt-parent = <0x01>; + #interrupt-cells = <0x01>; + phandle = <0x107>; + interrupt-controller; + }; + }; + + rkcif-mipi-lvds3-sditf-vir1 { + compatible = "rockchip,rkcif-sditf"; + status = "disabled"; + rockchip,cif = <0x57>; + phandle = <0x238>; + }; + + aliases { + i2c3 = "/i2c@feab0000"; + pwm9 = "/pwm@febe0010"; + pwm14 = "/pwm@febf0020"; + spi2 = "/spi@feb20000"; + usbdp0 = "/phy@fed80000"; + gpio0 = "/pinctrl/gpio@fd8a0000"; + dsi1 = "/dsi@fde30000"; + hdmi1 = "/hdmi@fdea0000"; + serial7 = "/serial@feba0000"; + i2c1 = "/i2c@fea90000"; + pwm7 = "/pwm@febd0030"; + pwm12 = "/pwm@febf0000"; + jpege3 = "/jpege-core@fdbac000"; + spi0 = "/spi@feb00000"; + hdptx1 = "/phy@fed70000"; + csi2dphy5 = "/csi2-dphy5"; + serial5 = "/serial@feb80000"; + csi2dcphy1 = "/csi2-dcphy1"; + pwm5 = "/pwm@febd0010"; + mmc1 = "/mmc@fe2c0000"; + pwm10 = "/pwm@febe0020"; + jpege1 = "/jpege-core@fdba4000"; + rkcif_mipi_lvds4 = "/rkcif-mipi-lvds4"; + i2c8 = "/i2c@feca0000"; + dp0 = "/dp@fde50000"; + csi2dphy3 = "/csi2-dphy3"; + serial3 = "/serial@feb60000"; + edp0 = "/edp@fdec0000"; + pwm3 = "/pwm@fd8b0030"; + hdcp1 = "/hdcp@fde70000"; + rkcif_mipi_lvds2 = "/rkcif-mipi-lvds2"; + i2c6 = "/i2c@fec80000"; + csi2dphy1 = "/csi2-dphy1"; + serial1 = "/serial@feb40000"; + pwm1 = "/pwm@fd8b0010"; + rkvenc0 = "/rkvenc-core@fdbd0000"; + spi5 = "/spi@fe2b0000"; + gpio3 = "/pinctrl/gpio@fec40000"; + hdptxhdmi1 = "/hdmiphy@fed70000"; + rkcif_mipi_lvds0 = "/rkcif-mipi-lvds"; + i2c4 = "/i2c@feac0000"; + ethernet1 = "/ethernet@fe1c0000"; + rkvdec0 = "/rkvdec-core@fdc38000"; + pwm15 = "/pwm@febf0030"; + hdmirx0 = "/hdmirx-controller@fdee0000"; + spi3 = "/spi@feb30000"; + usbdp1 = "/phy@fed90000"; + gpio1 = "/pinctrl/gpio@fec20000"; + serial8 = "/serial@febb0000"; + i2c2 = "/i2c@feaa0000"; + pwm8 = "/pwm@febe0000"; + pwm13 = "/pwm@febf0010"; + spi1 = "/spi@feb10000"; + dsi0 = "/dsi@fde20000"; + hdmi0 = "/hdmi@fde80000"; + serial6 = "/serial@feb90000"; + i2c0 = "/i2c@fd880000"; + pwm6 = "/pwm@febd0020"; + mmc2 = "/mmc@fe2d0000"; + pwm11 = "/pwm@febe0030"; + jpege2 = "/jpege-core@fdba8000"; + hdptx0 = "/phy@fed60000"; + rkcif_mipi_lvds5 = "/rkcif-mipi-lvds5"; + dp1 = "/dp@fde60000"; + csi2dphy4 = "/csi2-dphy4"; + serial4 = "/serial@feb70000"; + edp1 = "/edp@fded0000"; + csi2dcphy0 = "/csi2-dcphy0"; + pwm4 = "/pwm@febd0000"; + mmc0 = "/mmc@fe2e0000"; + jpege0 = "/jpege-core@fdba0000"; + rkcif_mipi_lvds3 = "/rkcif-mipi-lvds3"; + i2c7 = "/i2c@fec90000"; + csi2dphy2 = "/csi2-dphy2"; + serial2 = "/serial@feb50000"; + pwm2 = "/pwm@fd8b0020"; + rkvenc1 = "/rkvenc-core@fdbe0000"; + gpio4 = "/pinctrl/gpio@fec50000"; + hdcp0 = "/hdcp@fde40000"; + rkcif_mipi_lvds1 = "/rkcif-mipi-lvds1"; + i2c5 = "/i2c@fead0000"; + csi2dphy0 = "/csi2-dphy0"; + serial0 = "/serial@fd890000"; + rkvdec1 = "/rkvdec-core@fdc48000"; + pwm0 = "/pwm@fd8b0000"; + spi4 = "/spi@fecb0000"; + gpio2 = "/pinctrl/gpio@fec30000"; + hdptxhdmi0 = "/hdmiphy@fed60000"; + serial9 = "/serial@febc0000"; + }; + + spdif-tx@fdde8000 { + power-domains = <0x60 0x1a>; + clock-names = "mclk\0hclk"; + assigned-clocks = <0x02 0x259>; + assigned-clock-parents = <0x02 0x05>; + interrupts = <0x00 0xc5 0x04>; + clocks = <0x02 0x25c 0x02 0x258>; + dma-names = "tx"; + #sound-dai-cells = <0x00>; + compatible = "rockchip,rk3588-spdif\0rockchip,rk3568-spdif"; + status = "disabled"; + reg = <0x00 0xfdde8000 0x00 0x1000>; + phandle = <0x47d>; + dmas = <0xf1 0x08>; + }; + + i2s@fe490000 { + power-domains = <0x60 0x26>; + pinctrl-names = "default\0idle\0clk"; + pinctrl-2 = <0x12d 0x12e>; + pinctrl-0 = <0x12a 0x12b>; + clock-names = "i2s_clk\0i2s_hclk"; + assigned-clocks = <0x02 0x24>; + assigned-clock-parents = <0x02 0x05>; + interrupts = <0x00 0xb6 0x04>; + clocks = <0x02 0x27 0x02 0x22>; + dma-names = "tx\0rx"; + #sound-dai-cells = <0x00>; + compatible = "rockchip,rk3588-i2s\0rockchip,rk3066-i2s"; + pinctrl-1 = <0x12c>; + status = "disabled"; + reg = <0x00 0xfe490000 0x00 0x1000>; + phandle = <0x298>; + dmas = <0xf1 0x00 0xf1 0x01>; + rockchip,clk-trcm = <0x01>; + }; + + syscon@fd5d0000 { + #address-cells = <0x01>; + #size-cells = <0x01>; + compatible = "rockchip,rk3588-usb2phy-grf\0syscon\0simple-mfd"; + reg = <0x00 0xfd5d0000 0x00 0x4000>; + phandle = <0x18b>; + + usb2-phy@0 { + clock-output-names = "usb480m_phy0"; + clock-names = "phyclk"; + resets = <0x02 0xc0047 0x02 0x488>; + interrupts = <0x00 0x189 0x04>; + clocks = <0x02 0x2b5>; + #clock-cells = <0x00>; + rockchip,usbctrl-grf = <0x74>; + compatible = "rockchip,rk3588-usb2phy"; + status = "okay"; + reg = <0x00 0x10>; + phandle = <0x18d>; + reset-names = "phy\0apb"; + + otg-port { + #phy-cells = <0x00>; + rockchip,typec-vbus-det; + status = "okay"; + phandle = <0x66>; + }; + }; + }; + + i2c@feac0000 { + pinctrl-names = "default"; + #address-cells = <0x01>; + pinctrl-0 = <0x14b>; + clock-names = "i2c\0pclk"; + resets = <0x02 0xb3 0x02 0xab>; + interrupts = <0x00 0x141 0x04>; + clocks = <0x02 0x90 0x02 0x88>; + #size-cells = <0x00>; + compatible = "rockchip,rk3588-i2c\0rockchip,rk3399-i2c"; + status = "okay"; + reg = <0x00 0xfeac0000 0x00 0x1000>; + phandle = <0x2a7>; + reset-names = "i2c\0apb"; + + pc9202@3c { + pinctrl-names = "default"; + pinctrl-0 = <0x14c>; + index = <0x01>; + compatible = "firefly,pc9202"; + status = "okay"; + wd-en-gpio = <0x7b 0x14 0x00>; + driver-names = "wdt_base"; + reg = <0x3c>; + }; + }; + + rkcif-mipi-lvds5-sditf { + compatible = "rockchip,rkcif-sditf"; + status = "disabled"; + rockchip,cif = <0x1a2>; + phandle = <0x476>; + }; + + firmware { + + optee { + method = "smc"; + compatible = "linaro,optee-tz"; + phandle = <0x222>; + }; + + sdei { + method = "smc"; + compatible = "arm,sdei-1.0"; + phandle = <0x221>; + }; + + scmi { + shmem = <0x46>; + #address-cells = <0x01>; + #size-cells = <0x00>; + compatible = "arm,scmi-smc"; + phandle = <0x220>; + arm,smc-id = <0x82000010>; + + protocol@16 { + #reset-cells = <0x01>; + reg = <0x16>; + phandle = <0x11a>; + }; + + protocol@14 { + assigned-clocks = <0x0e 0x00 0x0e 0x02 0x0e 0x03>; + assigned-clock-rates = <0x30a32c00 0x30a32c00 0x30a32c00>; + #clock-cells = <0x01>; + reg = <0x14>; + phandle = <0x0e>; + }; + }; + }; + + rkvenc-core@fdbd0000 { + power-domains = <0x60 0x10>; + iommus = <0xc2>; + rockchip,ccu = <0xc3>; + clock-names = "aclk_vcodec\0hclk_vcodec\0clk_core"; + assigned-clocks = <0x02 0x1c5 0x02 0x1c6>; + rockchip,task-capacity = <0x08>; + rockchip,normal-rates = <0x1dcd6500 0x00 0x2faf0800>; + assigned-clock-rates = <0x1dcd6500 0x2faf0800>; + resets = <0x02 0x2f5 0x02 0x2f4 0x02 0x2f6>; + interrupts = <0x00 0x65 0x04>; + clocks = <0x02 0x1c5 0x02 0x1c4 0x02 0x1c6>; + rockchip,srv = <0xb8>; + rockchip,taskqueue-node = <0x07>; + compatible = "rockchip,rkv-encoder-v2-core"; + status = "okay"; + interrupt-names = "irq_rkvenc0"; + rockchip,skip-pmu-idle-request; + reg = <0x00 0xfdbd0000 0x00 0x6000>; + phandle = <0x272>; + reset-names = "video_a\0video_h\0video_core"; + operating-points-v2 = <0xc4>; + }; + + iommu@fdcc7f00 { + power-domains = <0x60 0x1c>; + clock-names = "aclk\0iface"; + interrupts = <0x00 0x88 0x04>; + clocks = <0x02 0x120 0x02 0x121>; + #iommu-cells = <0x00>; + compatible = "rockchip,iommu-v2"; + rockchip,disable-mmu-reset; + status = "disabled"; + interrupt-names = "isp1_mmu"; + reg = <0x00 0xfdcc7f00 0x00 0x100>; + phandle = <0xd1>; + }; + + rkcif-mipi-lvds-sditf { + compatible = "rockchip,rkcif-sditf"; + status = "disabled"; + rockchip,cif = <0x52>; + phandle = <0x22b>; + }; + + syscon@fd5c8000 { + compatible = "rockchip,rk3588-usbdpphy-grf\0syscon"; + reg = <0x00 0xfd5c8000 0x00 0x4000>; + phandle = <0x18c>; + }; + + gpu@fb000000 { + power-domains = <0x60 0x0c>; + downdifferential = <0x0a>; + mali-supply = <0x62>; + clock-names = "clk_mali\0clk_gpu_coregroup\0clk_gpu_stacks\0clk_gpu"; + assigned-clocks = <0x0e 0x05>; + assigned-clock-rates = <0xbebc200>; + interrupts = <0x00 0x5e 0x04 0x00 0x5d 0x04 0x00 0x5c 0x04>; + clocks = <0x0e 0x05 0x02 0x115 0x02 0x116 0x02 0x114>; + upthreshold = <0x1e>; + compatible = "arm,mali-bifrost"; + dynamic-power-coefficient = <0xba6>; + status = "okay"; + interrupt-names = "GPU\0MMU\0JOB"; + mem-supply = <0x62>; + reg = <0x00 0xfb000000 0x00 0x200000>; + phandle = <0x5f>; + operating-points-v2 = <0x61>; + #cooling-cells = <0x02>; + }; + + csi2-dphy4 { + rockchip,hw = <0x2d 0x2e>; + phy-names = "dcphy0\0dcphy1"; + compatible = "rockchip,rk3588-csi2-dphy"; + status = "disabled"; + phys = <0x2f 0x30>; + phandle = <0x213>; + }; + + mipi4-csi2-hw@fdd50000 { + clock-names = "pclk_csi2host"; + reg-names = "csihost_regs"; + resets = <0x02 0x328>; + interrupts = <0x00 0x97 0x04 0x00 0x98 0x04>; + clocks = <0x02 0x1d3>; + compatible = "rockchip,rk3588-mipi-csi2-hw"; + status = "okay"; + interrupt-names = "csi-intr1\0csi-intr2"; + reg = <0x00 0xfdd50000 0x00 0x10000>; + phandle = <0x4b>; + reset-names = "srst_csihost_p"; + }; + + qos@fdf82000 { + compatible = "syscon"; + reg = <0x00 0xfdf82000 0x00 0x20>; + phandle = <0x9d>; + }; + + rkcif-mipi-lvds2-sditf-vir2 { + compatible = "rockchip,rkcif-sditf"; + status = "disabled"; + rockchip,cif = <0x55>; + phandle = <0x235>; + }; + + rkisp1-vir0 { + rockchip,hw = <0x5a>; + compatible = "rockchip,rkisp-vir"; + status = "disabled"; + phandle = <0x23f>; + }; + + qos@fdf41100 { + compatible = "syscon"; + reg = <0x00 0xfdf41100 0x00 0x20>; + phandle = <0xa7>; + }; + + test-power { + status = "okay"; + }; + + usb-5v { + pinctrl-names = "default"; + regulator-boot-on; + gpio = <0xfe 0x03 0x00>; + pinctrl-0 = <0x1ef>; + regulator-always-on; + enable-active-high; + regulator-name = "usb_5v"; + compatible = "regulator-fixed"; + status = "okay"; + phandle = <0x4b1>; + }; + + phy@feda0000 { + clock-names = "pclk\0ref"; + resets = <0x02 0xc0043 0x02 0x3e 0x02 0x3f 0x02 0xc0044>; + clocks = <0x02 0x108 0x02 0x2b6>; + #phy-cells = <0x00>; + compatible = "rockchip,rk3588-mipi-dcphy"; + status = "okay"; + rockchip,grf = <0x190>; + reg = <0x00 0xfeda0000 0x00 0x10000>; + phandle = <0x2f>; + reset-names = "m_phy\0apb\0grf\0s_phy"; + }; + + mod-sleep-regulator { + pinctrl-names = "default"; + regulator-boot-on; + gpio = <0x7b 0x15 0x00>; + pinctrl-0 = <0x1ee>; + regulator-always-on; + enable-active-high; + regulator-name = "mod_sleep"; + compatible = "regulator-fixed"; + status = "okay"; + phandle = <0x4ae>; + + regulator-state-mem { + regulator-on-in-suspend; + }; + }; + + qos@fdf66c00 { + compatible = "syscon"; + reg = <0x00 0xfdf66c00 0x00 0x20>; + phandle = <0x99>; + }; + + crypto@fe370000 { + clock-names = "aclk\0hclk\0sclk\0pka"; + resets = <0x11a 0x0f>; + interrupts = <0x00 0xd1 0x04>; + clocks = <0x0e 0x0b 0x0e 0x0c 0x0e 0x14 0x0e 0x15>; + compatible = "rockchip,rk3588-crypto"; + status = "disabled"; + reg = <0x00 0xfe370000 0x00 0x2000>; + phandle = <0x296>; + reset-names = "crypto-rst"; + }; + + i2s@fddf4000 { + power-domains = <0x60 0x1a>; + rockchip,always-on; + clock-names = "mclk_tx\0mclk_rx\0hclk"; + assigned-clocks = <0x02 0x249>; + assigned-clock-parents = <0x02 0x07>; + resets = <0x02 0x3ef>; + interrupts = <0x00 0xba 0x04>; + clocks = <0x02 0x24c 0x02 0x24c 0x02 0x252>; + dma-names = "tx"; + #sound-dai-cells = <0x00>; + compatible = "rockchip,rk3588-i2s-tdm"; + rockchip,playback-only; + status = "okay"; + reg = <0x00 0xfddf4000 0x00 0x1000>; + phandle = <0x1e0>; + dmas = <0xf2 0x04>; + reset-names = "tx-m"; + rockchip,hdmi-path; + }; + + mipi0-csi2-hw@fdd10000 { + clock-names = "pclk_csi2host"; + reg-names = "csihost_regs"; + resets = <0x02 0x324>; + interrupts = <0x00 0x8f 0x04 0x00 0x90 0x04>; + clocks = <0x02 0x1cf>; + compatible = "rockchip,rk3588-mipi-csi2-hw"; + status = "okay"; + interrupt-names = "csi-intr1\0csi-intr2"; + reg = <0x00 0xfdd10000 0x00 0x10000>; + phandle = <0x47>; + reset-names = "srst_csihost_p"; + }; + + mipi4-csi2 { + rockchip,hw = <0x47 0x48 0x49 0x4a 0x4b 0x4c>; + compatible = "rockchip,rk3588-mipi-csi2"; + status = "disabled"; + phandle = <0x228>; + }; + + jpege-ccu { + compatible = "rockchip,vpu-jpege-ccu"; + status = "okay"; + phandle = <0xbd>; + }; + + dsi@fde30000 { + power-domains = <0x60 0x18>; + #address-cells = <0x01>; + phy-names = "dcphy"; + clock-names = "pclk\0sys_clk"; + resets = <0x02 0x355>; + interrupts = <0x00 0xa8 0x04>; + clocks = <0x02 0x279 0x02 0x27b>; + #size-cells = <0x00>; + compatible = "rockchip,rk3588-mipi-dsi2"; + status = "disabled"; + rockchip,grf = <0xd7>; + phys = <0x30>; + reg = <0x00 0xfde30000 0x00 0x10000>; + phandle = <0x283>; + reset-names = "apb"; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x00>; + phandle = <0x284>; + + endpoint@1 { + remote-endpoint = <0x3a>; + status = "disabled"; + reg = <0x01>; + phandle = <0xef>; + }; + + endpoint@0 { + remote-endpoint = <0xf4>; + status = "disabled"; + reg = <0x00>; + phandle = <0xea>; + }; + }; + }; + }; + + iommu@fcb00000 { + interrupts = <0x00 0x17d 0x04 0x00 0x17f 0x04 0x00 0x182 0x04 0x00 0x17b 0x04>; + #iommu-cells = <0x01>; + compatible = "arm,smmu-v3"; + status = "disabled"; + interrupt-names = "eventq\0gerror\0priq\0cmdq-sync"; + reg = <0x00 0xfcb00000 0x00 0x200000>; + phandle = <0x257>; + }; + + rkcif-mipi-lvds3 { + iommus = <0x50>; + rockchip,hw = <0x4f>; + compatible = "rockchip,rkcif-mipi-lvds"; + status = "disabled"; + phandle = <0x57>; + }; + + vcc-hub-regulator { + regulator-boot-on; + gpio = <0x182 0x01 0x00>; + regulator-always-on; + enable-active-high; + regulator-name = "vcc_hub"; + compatible = "regulator-fixed"; + status = "okay"; + phandle = <0x4af>; + }; + + syscon@fd5ac000 { + compatible = "rockchip,rk3588-usb-grf\0syscon"; + reg = <0x00 0xfd5ac000 0x00 0x4000>; + phandle = <0x74>; + }; + + qos@fdf40200 { + compatible = "syscon"; + reg = <0x00 0xfdf40200 0x00 0x20>; + phandle = <0xa9>; + }; + + rkisp@fdcb0000 { + power-domains = <0x60 0x1b>; + iommus = <0xd0>; + clock-names = "aclk_isp\0hclk_isp\0clk_isp_core\0clk_isp_core_marvin\0clk_isp_core_vicap"; + interrupts = <0x00 0x83 0x04 0x00 0x85 0x04 0x00 0x86 0x04>; + clocks = <0x02 0x1de 0x02 0x1df 0x02 0x1db 0x02 0x1dc 0x02 0x1dd>; + compatible = "rockchip,rk3588-rkisp"; + status = "okay"; + interrupt-names = "isp_irq\0mi_irq\0mipi_irq"; + reg = <0x00 0xfdcb0000 0x00 0x7f00>; + phandle = <0x58>; + }; + + serial@feba0000 { + reg-io-width = <0x04>; + pinctrl-names = "default"; + pinctrl-0 = <0x166>; + clock-names = "baudclk\0apb_pclk"; + interrupts = <0x00 0x152 0x04>; + clocks = <0x02 0xcf 0x02 0xb1>; + compatible = "rockchip,rk3588-uart\0snps,dw-apb-uart"; + status = "disabled"; + reg = <0x00 0xfeba0000 0x00 0x100>; + phandle = <0x2cf>; + dmas = <0xf2 0x07 0xf2 0x08>; + reg-shift = <0x02>; + }; + + rkcif-mipi-lvds1-sditf-vir3 { + compatible = "rockchip,rkcif-sditf"; + status = "disabled"; + rockchip,cif = <0x53>; + phandle = <0x232>; + }; + + chosen { + linux,initrd-end = <0x00 0xaac72ae>; + bootargs = "storagemedia=emmc androidboot.storagemedia=emmc androidboot.mode=normal storagenode=/mmc@fe2e0000 androidboot.verifiedbootstate=orange ro rootwait earlycon=uart8250,mmio32,0xfeb50000 console=ttyS2,115200n8 irqchip.gicv3_pseudo_nmi=0 root=PARTLABEL=rootfs rootfstype=ext4 overlayroot=device:dev=PARTLABEL=userdata,fstype=ext4,mkfs=1 coherent_pool=1m systemd.gpt_auto=0 cgroup_enable=memory swapaccount=1 net.ifnames=0 rcupdate.rcu_expedited=0 comm-05/28/2025 androidboot.fwver=ddr-v1.15-d5483af87d,spl-v1.13,bl31-v1.44,bl32-v1.15,uboot--boot"; + linux,initrd-start = <0x00 0xa200000>; + phandle = <0x48d>; + }; + + hdmi@fde80000 { + power-domains = <0x60 0x1a>; + reg-io-width = <0x04>; + pinctrl-names = "default"; + phy-names = "hdmi"; + pinctrl-0 = <0xf9 0xfa 0xfb 0xfc>; + clock-names = "pclk\0hpd\0earc\0hdmitx_ref\0aud\0dclk_vp0\0dclk_vp1\0dclk_vp2\0dclk_vp3\0hclk_vo1\0link_clk"; + resets = <0x02 0x3d0 0x02 0x49c>; + interrupts = <0x00 0xa9 0x04 0x00 0xaa 0x04 0x00 0xab 0x04 0x00 0xac 0x04 0x00 0x168 0x04>; + clocks = <0x02 0x221 0x02 0x265 0x02 0x222 0x02 0x223 0x02 0x246 0x02 0x274 0x02 0x275 0x02 0x276 0x02 0x277 0x05 0x35>; + #sound-dai-cells = <0x00>; + compatible = "rockchip,rk3588-dw-hdmi"; + status = "okay"; + rockchip,grf = <0xc8>; + phys = <0xfd>; + enable-gpios = <0xfe 0x08 0x00>; + reg = <0x00 0xfde80000 0x00 0x10000 0x00 0xfde90000 0x00 0x10000>; + phandle = <0x1d4>; + reset-names = "ref\0hdp"; + rockchip,vo1_grf = <0xd8>; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x00>; + phandle = <0x288>; + + endpoint@1 { + remote-endpoint = <0xff>; + status = "disabled"; + reg = <0x01>; + phandle = <0xe2>; + }; + + endpoint@2 { + remote-endpoint = <0x100>; + status = "disabled"; + reg = <0x02>; + phandle = <0xe8>; + }; + + endpoint@0 { + remote-endpoint = <0x3c>; + status = "okay"; + reg = <0x00>; + phandle = <0xdc>; + }; + }; + }; + }; + + cluster2-opp-table { + rockchip,pvtm-offset = <0x18>; + rockchip,pvtm-sample-time = <0x44c>; + rockchip,pvtm-hw = <0x06>; + nvmem-cells = <0x27 0x28 0x21>; + rockchip,low-temp = <0x2710>; + rockchip,pvtm-voltage-sel-hw = <0x00 0x603 0x00 0x604 0x61c 0x01 0x61d 0x635 0x02 0x636 0x64e 0x03 0x64f 0x66c 0x04 0x66d 0x68a 0x05 0x68b 0x6a8 0x06 0x6a9 0x270f 0x07>; + rockchip,pvtm-thermal-zone = "soc-thermal"; + rockchip,pvtm-low-len-sel = <0x03>; + rockchip,high-temp-max-freq = <0x21b100>; + opp-shared; + rockchip,reboot-freq = <0x1b7740>; + rockchip,pvtm-freq = <0x188940>; + rockchip,pvtm-ref-temp = <0x19>; + low-volt-mem-read-margin = <0x04>; + volt-mem-read-margin = <0xd0bd8 0x01 0xbac48 0x02 0xa4cb8 0x03 0x78d98 0x04>; + compatible = "operating-points-v2"; + rockchip,low-temp-min-volt = <0xb71b0>; + rockchip,grf = <0x29>; + nvmem-cell-names = "leakage\0opp-info\0specification_serial_number"; + rockchip,pvtm-voltage-sel = <0x00 0x63b 0x00 0x63c 0x64f 0x01 0x650 0x668 0x02 0x669 0x68b 0x03 0x68c 0x6ae 0x04 0x6af 0x6cf 0x05 0x6d0 0x6f0 0x06 0x6f1 0x270f 0x07>; + phandle = <0x1a>; + rockchip,idle-threshold-freq = <0x21b100>; + rockchip,pvtm-temp-prop = <0x10e 0x10e>; + rockchip,temp-hysteresis = <0x1388>; + rockchip,high-temp = <0x14c08>; + rockchip,pvtm-pvtpll; + rockchip,supported-hw; + intermediate-threshold-freq = <0xf6180>; + rockchip,pvtm-volt = <0xb71b0>; + + opp-j-m-2016000000 { + opp-microvolt = <0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0>; + opp-microvolt-L6 = <0xd8acc 0xd8acc 0xe7ef0 0xd8acc 0xd8acc 0xe7ef0>; + opp-microvolt-L4 = <0xdec74 0xdec74 0xe7ef0 0xdec74 0xdec74 0xe7ef0>; + opp-microvolt-L2 = <0xe4e1c 0xe4e1c 0xe7ef0 0xe4e1c 0xe4e1c 0xe7ef0>; + opp-hz = <0x00 0x7829b800>; + opp-supported-hw = <0x06 0xffff>; + opp-microvolt-L7 = <0xd59f8 0xd59f8 0xe7ef0 0xd59f8 0xd59f8 0xe7ef0>; + opp-microvolt-L5 = <0xdbba0 0xdbba0 0xe7ef0 0xdbba0 0xdbba0 0xe7ef0>; + opp-microvolt-L3 = <0xe1d48 0xe1d48 0xe7ef0 0xe1d48 0xe1d48 0xe7ef0>; + clock-latency-ns = <0x9c40>; + opp-microvolt-L1 = <0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0>; + }; + + opp-1200000000 { + opp-microvolt = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; + opp-hz = <0x00 0x47868c00>; + opp-supported-hw = <0xf9 0xffff>; + clock-latency-ns = <0x9c40>; + }; + + opp-j-m-1416000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + opp-hz = <0x00 0x54667200>; + opp-microvolt-L0 = <0xba284 0xba284 0xe7ef0 0xba284 0xba284 0xe7ef0>; + opp-supported-hw = <0x06 0xffff>; + opp-suspend; + clock-latency-ns = <0x9c40>; + }; + + opp-1008000000 { + opp-microvolt = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; + opp-hz = <0x00 0x3c14dc00>; + opp-supported-hw = <0xf9 0xffff>; + clock-latency-ns = <0x9c40>; + }; + + opp-2256000000 { + opp-microvolt = <0xf4240 0xf4240 0xf4240 0xf4240 0xf4240 0xf4240>; + opp-hz = <0x00 0x8677d400>; + opp-supported-hw = <0xf9 0x13>; + clock-latency-ns = <0x9c40>; + }; + + opp-j-m-1200000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + opp-hz = <0x00 0x47868c00>; + opp-supported-hw = <0x06 0xffff>; + clock-latency-ns = <0x9c40>; + }; + + opp-j-m-1008000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + opp-hz = <0x00 0x3c14dc00>; + opp-supported-hw = <0x06 0xffff>; + clock-latency-ns = <0x9c40>; + }; + + opp-j-m-816000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + opp-hz = <0x00 0x30a32c00>; + opp-supported-hw = <0x06 0xffff>; + clock-latency-ns = <0x9c40>; + }; + + opp-2400000000 { + opp-microvolt = <0xf4240 0xf4240 0xf4240 0xf4240 0xf4240 0xf4240>; + opp-hz = <0x00 0x8f0d1800>; + opp-supported-hw = <0xf9 0x80>; + clock-latency-ns = <0x9c40>; + }; + + opp-1800000000 { + opp-microvolt = <0xcf850 0xcf850 0xf4240 0xcf850 0xcf850 0xf4240>; + opp-microvolt-L6 = <0xbd358 0xbd358 0xf4240 0xbd358 0xbd358 0xf4240>; + opp-microvolt-L4 = <0xc3500 0xc3500 0xf4240 0xc3500 0xc3500 0xf4240>; + opp-microvolt-L2 = <0xc96a8 0xc96a8 0xf4240 0xc96a8 0xc96a8 0xf4240>; + opp-hz = <0x00 0x6b49d200>; + opp-supported-hw = <0xf9 0xffff>; + opp-microvolt-L7 = <0xba284 0xba284 0xf4240 0xba284 0xba284 0xf4240>; + opp-microvolt-L5 = <0xc042c 0xc042c 0xf4240 0xc042c 0xc042c 0xf4240>; + opp-microvolt-L3 = <0xc65d4 0xc65d4 0xf4240 0xc65d4 0xc65d4 0xf4240>; + clock-latency-ns = <0x9c40>; + opp-microvolt-L1 = <0xcc77c 0xcc77c 0xf4240 0xcc77c 0xcc77c 0xf4240>; + }; + + opp-j-m-600000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + opp-hz = <0x00 0x23c34600>; + opp-supported-hw = <0x06 0xffff>; + clock-latency-ns = <0x9c40>; + }; + + opp-2208000000 { + opp-microvolt = <0xf116c 0xf116c 0xf4240 0xf116c 0xf116c 0xf4240>; + opp-microvolt-L6 = <0xe1d48 0xe1d48 0xf4240 0xe1d48 0xe1d48 0xf4240>; + opp-microvolt-L4 = <0xeafc4 0xeafc4 0xf4240 0xeafc4 0xeafc4 0xf4240>; + opp-hz = <0x00 0x839b6800>; + opp-supported-hw = <0xf9 0xffff>; + opp-microvolt-L7 = <0xdec74 0xdec74 0xf4240 0xdec74 0xdec74 0xf4240>; + opp-microvolt-L5 = <0xe7ef0 0xe7ef0 0xf4240 0xe7ef0 0xe7ef0 0xf4240>; + opp-microvolt-L3 = <0xee098 0xee098 0xf4240 0xee098 0xee098 0xf4240>; + clock-latency-ns = <0x9c40>; + }; + + opp-1608000000 { + opp-microvolt = <0xba284 0xba284 0xf4240 0xba284 0xba284 0xf4240>; + opp-microvolt-L6 = <0xaae60 0xaae60 0xf4240 0xaae60 0xaae60 0xf4240>; + opp-microvolt-L4 = <0xb1008 0xb1008 0xf4240 0xb1008 0xb1008 0xf4240>; + opp-microvolt-L2 = <0xb71b0 0xb71b0 0xf4240 0xb71b0 0xb71b0 0xf4240>; + opp-hz = <0x00 0x5fd82200>; + opp-supported-hw = <0xf9 0xffff>; + opp-microvolt-L7 = <0xaae60 0xaae60 0xf4240 0xaae60 0xaae60 0xf4240>; + opp-microvolt-L5 = <0xadf34 0xadf34 0xf4240 0xadf34 0xadf34 0xf4240>; + opp-microvolt-L3 = <0xb40dc 0xb40dc 0xf4240 0xb40dc 0xb40dc 0xf4240>; + clock-latency-ns = <0x9c40>; + }; + + opp-j-m-408000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + opp-hz = <0x00 0x18519600>; + opp-supported-hw = <0x06 0xffff>; + clock-latency-ns = <0x9c40>; + }; + + opp-j-m-1800000000 { + opp-microvolt = <0xd59f8 0xd59f8 0xe7ef0 0xd59f8 0xd59f8 0xe7ef0>; + opp-microvolt-L6 = <0xc3500 0xc3500 0xe7ef0 0xc3500 0xc3500 0xe7ef0>; + opp-microvolt-L4 = <0xc96a8 0xc96a8 0xe7ef0 0xc96a8 0xc96a8 0xe7ef0>; + opp-microvolt-L2 = <0xcf850 0xcf850 0xe7ef0 0xcf850 0xcf850 0xe7ef0>; + opp-hz = <0x00 0x6b49d200>; + opp-supported-hw = <0x06 0xffff>; + opp-microvolt-L7 = <0xc042c 0xc042c 0xe7ef0 0xc042c 0xc042c 0xe7ef0>; + opp-microvolt-L5 = <0xc65d4 0xc65d4 0xe7ef0 0xc65d4 0xc65d4 0xe7ef0>; + opp-microvolt-L3 = <0xcc77c 0xcc77c 0xe7ef0 0xcc77c 0xcc77c 0xe7ef0>; + clock-latency-ns = <0x9c40>; + opp-microvolt-L1 = <0xd2924 0xd2924 0xe7ef0 0xd2924 0xd2924 0xe7ef0>; + }; + + opp-2352000000 { + opp-microvolt = <0xf4240 0xf4240 0xf4240 0xf4240 0xf4240 0xf4240>; + opp-hz = <0x00 0x8c30ac00>; + opp-supported-hw = <0xf9 0x48>; + clock-latency-ns = <0x9c40>; + }; + + opp-816000000 { + opp-microvolt = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; + opp-hz = <0x00 0x30a32c00>; + opp-supported-hw = <0xf9 0xffff>; + clock-latency-ns = <0x9c40>; + }; + + opp-j-m-1608000000 { + opp-microvolt = <0xc042c 0xc042c 0xe7ef0 0xc042c 0xc042c 0xe7ef0>; + opp-microvolt-L6 = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + opp-microvolt-L4 = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + opp-microvolt-L2 = <0xbd358 0xbd358 0xe7ef0 0xbd358 0xbd358 0xe7ef0>; + opp-hz = <0x00 0x5fd82200>; + opp-supported-hw = <0x06 0xffff>; + opp-microvolt-L7 = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + opp-microvolt-L5 = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + opp-microvolt-L3 = <0xba284 0xba284 0xe7ef0 0xba284 0xba284 0xe7ef0>; + clock-latency-ns = <0x9c40>; + }; + + opp-600000000 { + opp-microvolt = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; + opp-hz = <0x00 0x23c34600>; + opp-supported-hw = <0xf9 0xffff>; + clock-latency-ns = <0x9c40>; + }; + + opp-2016000000 { + opp-microvolt = <0xe1d48 0xe1d48 0xf4240 0xe1d48 0xe1d48 0xf4240>; + opp-microvolt-L6 = <0xcf850 0xcf850 0xf4240 0xcf850 0xcf850 0xf4240>; + opp-microvolt-L4 = <0xd59f8 0xd59f8 0xf4240 0xd59f8 0xd59f8 0xf4240>; + opp-microvolt-L2 = <0xdbba0 0xdbba0 0xf4240 0xdbba0 0xdbba0 0xf4240>; + opp-hz = <0x00 0x7829b800>; + opp-supported-hw = <0xf9 0xffff>; + opp-microvolt-L7 = <0xcc77c 0xcc77c 0xf4240 0xcc77c 0xcc77c 0xf4240>; + opp-microvolt-L5 = <0xd2924 0xd2924 0xf4240 0xd2924 0xd2924 0xf4240>; + opp-microvolt-L3 = <0xd8acc 0xd8acc 0xf4240 0xd8acc 0xd8acc 0xf4240>; + clock-latency-ns = <0x9c40>; + opp-microvolt-L1 = <0xdec74 0xdec74 0xf4240 0xdec74 0xdec74 0xf4240>; + }; + + opp-1416000000 { + opp-microvolt = <0xb1008 0xb1008 0xf4240 0xb1008 0xb1008 0xf4240>; + opp-microvolt-L6 = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; + opp-microvolt-L4 = <0xaae60 0xaae60 0xf4240 0xaae60 0xaae60 0xf4240>; + opp-microvolt-L2 = <0xadf34 0xadf34 0xf4240 0xadf34 0xadf34 0xf4240>; + opp-hz = <0x00 0x54667200>; + opp-supported-hw = <0xf9 0xffff>; + opp-microvolt-L7 = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; + opp-microvolt-L5 = <0xa7d8c 0xa7d8c 0xf4240 0xa7d8c 0xa7d8c 0xf4240>; + opp-microvolt-L3 = <0xaae60 0xaae60 0xf4240 0xaae60 0xaae60 0xf4240>; + clock-latency-ns = <0x9c40>; + }; + + opp-408000000 { + opp-microvolt = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; + opp-hz = <0x00 0x18519600>; + opp-supported-hw = <0xf9 0xffff>; + opp-suspend; + clock-latency-ns = <0x9c40>; + }; + + opp-2304000000 { + opp-microvolt = <0xf4240 0xf4240 0xf4240 0xf4240 0xf4240 0xf4240>; + opp-hz = <0x00 0x89544000>; + opp-supported-hw = <0xf9 0x24>; + clock-latency-ns = <0x9c40>; + }; + }; + + rkcif-dvp { + iommus = <0x50>; + rockchip,hw = <0x4f>; + compatible = "rockchip,rkcif-dvp"; + status = "disabled"; + phandle = <0x51>; + }; + + rkisp0-vir2 { + rockchip,hw = <0x58>; + compatible = "rockchip,rkisp-vir"; + status = "okay"; + phandle = <0x23d>; + + port { + #address-cells = <0x01>; + #size-cells = <0x00>; + + endpoint@0 { + remote-endpoint = <0x59>; + reg = <0x00>; + phandle = <0x56>; + }; + }; + }; + + i2c@fea90000 { + pinctrl-names = "default"; + #address-cells = <0x01>; + pinctrl-0 = <0x148>; + clock-names = "i2c\0pclk"; + resets = <0x02 0xb0 0x02 0xa8>; + interrupts = <0x00 0x13e 0x04>; + clocks = <0x02 0x8d 0x02 0x85>; + #size-cells = <0x00>; + compatible = "rockchip,rk3588-i2c\0rockchip,rk3399-i2c"; + status = "okay"; + reg = <0x00 0xfea90000 0x00 0x1000>; + phandle = <0x2a4>; + reset-names = "i2c\0apb"; + + rk8602@42 { + regulator-max-microvolt = <0xe7ef0>; + regulator-boot-on; + rockchip,suspend-voltage-selector = <0x01>; + regulator-always-on; + regulator-min-microvolt = <0x86470>; + regulator-name = "vdd_npu_s0"; + regulator-ramp-delay = <0x8fc>; + compatible = "rockchip,rk8602"; + reg = <0x42>; + phandle = <0xb3>; + vin-supply = <0x78>; + regulator-compatible = "rk860x-reg"; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + }; + + syscon@fd58a000 { + compatible = "rockchip,rk3588-pmu1-grf\0syscon"; + reg = <0x00 0xfd58a000 0x00 0x2000>; + phandle = <0x104>; + }; + + syscon@fd5ec000 { + compatible = "rockchip,mipi-dcphy-grf\0syscon"; + reg = <0x00 0xfd5ec000 0x00 0x4000>; + phandle = <0x191>; + }; + + venc-opp-table { + nvmem-cells = <0xc6 0xc7>; + rockchip,leakage-voltage-sel = <0x01 0x0f 0x00 0x10 0x19 0x01 0x1a 0xfe 0x02>; + volt-mem-read-margin = <0xd0bd8 0x01 0xbac48 0x02 0xa4cb8 0x03 0x78d98 0x04>; + compatible = "operating-points-v2"; + rockchip,grf = <0xc8>; + nvmem-cell-names = "leakage\0opp-info"; + phandle = <0xc4>; + + opp-800000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; + opp-microvolt-L2 = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; + opp-hz = <0x00 0x2faf0800>; + opp-microvolt-L0 = <0xc3500 0xc3500 0xcf850 0xc3500 0xc3500 0xcf850>; + opp-microvolt-L1 = <0xbd358 0xbd358 0xcf850 0xbd358 0xbd358 0xcf850>; + }; + }; + + iommu@fdc38700 { + power-domains = <0x60 0x0e>; + rockchip,shootdown-entire; + clock-names = "aclk\0iface"; + interrupts = <0x00 0x60 0x04>; + clocks = <0x02 0x190 0x02 0x18f>; + rockchip,enable-cmd-retry; + #iommu-cells = <0x00>; + compatible = "rockchip,iommu-v2"; + rockchip,disable-mmu-reset; + status = "okay"; + interrupt-names = "irq_rkvdec0_mmu"; + reg = <0x00 0xfdc38700 0x00 0x40 0x00 0xfdc38740 0x00 0x40>; + phandle = <0xc9>; + rockchip,master-handle-irq; + }; + + qos@fdf35200 { + compatible = "syscon"; + reg = <0x00 0xfdf35200 0x00 0x20>; + phandle = <0x88>; + }; + + qos@fdf71000 { + compatible = "syscon"; + reg = <0x00 0xfdf71000 0x00 0x20>; + phandle = <0x86>; + }; + + syscon@fd598000 { + compatible = "rockchip,rk3588-dsu-grf\0syscon"; + reg = <0x00 0xfd598000 0x00 0x100>; + phandle = <0x23>; + }; + + csi2-dphy2 { + rockchip,hw = <0x2d 0x2e>; + phy-names = "dcphy0\0dcphy1"; + compatible = "rockchip,rk3588-csi2-dphy"; + status = "disabled"; + phys = <0x2f 0x30>; + phandle = <0x211>; + }; + + syscon@fd5b4000 { + compatible = "rockchip,mipi-dphy-grf\0syscon"; + reg = <0x00 0xfd5b4000 0x00 0x1000>; + phandle = <0x192>; + }; + + iommu@fdb70f00 { + power-domains = <0x60 0x1e>; + clock-names = "aclk\0iface"; + interrupts = <0x00 0x73 0x04>; + clocks = <0x02 0x18a 0x02 0x189>; + #iommu-cells = <0x00>; + compatible = "rockchip,iommu-v2"; + status = "okay"; + interrupt-names = "rga3_1_mmu"; + reg = <0x00 0xfdb70f00 0x00 0x100>; + phandle = <0xba>; + }; + + vcc5v0-usb { + regulator-max-microvolt = <0x4c4b40>; + regulator-boot-on; + regulator-always-on; + regulator-min-microvolt = <0x4c4b40>; + regulator-name = "vcc5v0_usb"; + compatible = "regulator-fixed"; + phandle = <0x1dd>; + vin-supply = <0x1cd>; + }; + + fiq-debugger { + pinctrl-names = "default"; + rockchip,irq-mode-enable = <0x01>; + rockchip,baudrate = <0x1c200>; + pinctrl-0 = <0x1ce>; + interrupts = <0x00 0x1a7 0x08>; + rockchip,wake-irq = <0x00>; + compatible = "rockchip,fiq-debugger"; + status = "okay"; + phandle = <0x490>; + rockchip,serial-id = <0x02>; + }; + + phy@fed70000 { + clock-names = "ref\0apb"; + resets = <0x02 0x486 0x02 0xc003f 0x02 0xc0040 0x02 0xc0041>; + clocks = <0x02 0x2b5 0x02 0x268>; + #phy-cells = <0x00>; + compatible = "rockchip,rk3588-hdptx-phy"; + status = "disabled"; + rockchip,grf = <0x1c7>; + reg = <0x00 0xfed70000 0x00 0x2000>; + phandle = <0x1af>; + reset-names = "apb\0init\0cmn\0lane"; + }; + + pvtm@fda60000 { + #address-cells = <0x01>; + #size-cells = <0x00>; + compatible = "rockchip,rk3588-litcore-pvtm"; + reg = <0x00 0xfda60000 0x00 0x100>; + + pvtm@2 { + clock-names = "clk\0pclk"; + clocks = <0x02 0x2ca 0x02 0x1b>; + reg = <0x02>; + }; + }; + + rkispp@fdcd8000 { + power-domains = <0x60 0x1d>; + iommus = <0xd3>; + clock-names = "aclk_ispp\0hclk_ispp\0clk_ispp"; + assigned-clocks = <0x02 0x1d9>; + assigned-clock-rates = <0x5f5e100>; + interrupts = <0x00 0x8d 0x04>; + clocks = <0x02 0x1d8 0x02 0x1d9 0x02 0x1da>; + compatible = "rockchip,rk3588-rkispp"; + status = "disabled"; + interrupt-names = "fec_irq"; + reg = <0x00 0xfdcd8000 0x00 0xf00>; + phandle = <0x5c>; + }; + + qos@fdf66000 { + compatible = "syscon"; + reg = <0x00 0xfdf66000 0x00 0x20>; + phandle = <0x93>; + }; + + syscon@fd592000 { + compatible = "rockchip,rk3588-bigcore1-grf\0syscon"; + reg = <0x00 0xfd592000 0x00 0x100>; + phandle = <0x29>; + }; + + rkcif-mipi-lvds1 { + iommus = <0x50>; + rockchip,hw = <0x4f>; + compatible = "rockchip,rkcif-mipi-lvds"; + status = "disabled"; + phandle = <0x53>; + }; + + av1d@fdc70000 { + power-domains = <0x60 0x17>; + iommus = <0xce>; + clock-names = "aclk_vcodec\0hclk_vcodec"; + reg-names = "vcd\0cache\0afbc"; + assigned-clocks = <0x02 0x49 0x02 0x4b>; + rockchip,normal-rates = <0x17d78400 0x17d78400>; + assigned-clock-rates = <0x17d78400 0x17d78400>; + resets = <0x02 0x442 0x02 0x445>; + interrupts = <0x00 0x6c 0x04 0x00 0x6b 0x04 0x00 0x6a 0x04>; + clocks = <0x02 0x49 0x02 0x4b>; + rockchip,srv = <0xb8>; + rockchip,taskqueue-node = <0x0b>; + compatible = "rockchip,av1-decoder"; + status = "okay"; + interrupt-names = "irq_av1d\0irq_cache\0irq_afbc"; + reg = <0x00 0xfdc70000 0x00 0x800 0x00 0xfdc80000 0x00 0x400 0x00 0xfdc90000 0x00 0x400>; + phandle = <0x276>; + reset-names = "video_a\0video_h"; + }; + + qos@fdf40500 { + compatible = "syscon"; + reg = <0x00 0xfdf40500 0x00 0x20>; + phandle = <0xa3>; + }; + + vcc-hub-reset-regulator { + regulator-boot-on; + gpio = <0x182 0x04 0x00>; + regulator-always-on; + enable-active-high; + regulator-name = "vcc_hub_reset"; + compatible = "regulator-fixed"; + status = "disabled"; + phandle = <0x4a0>; + }; + + qos@fdf72200 { + compatible = "syscon"; + reg = <0x00 0xfdf72200 0x00 0x20>; + phandle = <0x83>; + }; + + serial@feb70000 { + reg-io-width = <0x04>; + pinctrl-names = "default"; + pinctrl-0 = <0x163>; + clock-names = "baudclk\0apb_pclk"; + interrupts = <0x00 0x14f 0x04>; + clocks = <0x02 0xc3 0x02 0xae>; + compatible = "rockchip,rk3588-uart\0snps,dw-apb-uart"; + status = "disabled"; + reg = <0x00 0xfeb70000 0x00 0x100>; + phandle = <0x2cc>; + dmas = <0xf1 0x09 0xf1 0x0a>; + reg-shift = <0x02>; + }; + + rkcif-mipi-lvds2-sditf { + compatible = "rockchip,rkcif-sditf"; + status = "okay"; + rockchip,cif = <0x55>; + phandle = <0x233>; + + port { + + endpoint { + remote-endpoint = <0x56>; + phandle = <0x59>; + }; + }; + }; + + i2c@feca0000 { + pinctrl-names = "default"; + #address-cells = <0x01>; + pinctrl-0 = <0x186>; + clock-names = "i2c\0pclk"; + resets = <0x02 0xb7 0x02 0xaf>; + interrupts = <0x00 0x145 0x04>; + clocks = <0x02 0x94 0x02 0x8c>; + #size-cells = <0x00>; + compatible = "rockchip,rk3588-i2c\0rockchip,rk3399-i2c"; + status = "disabled"; + reg = <0x00 0xfeca0000 0x00 0x1000>; + phandle = <0x2e5>; + reset-names = "i2c\0apb"; + }; + + vcc-sdcard-pwr-en-regulator { + regulator-boot-on; + gpio = <0xfe 0x07 0x00>; + regulator-always-on; + enable-active-high; + regulator-name = "vcc_sdcard_pwr_en"; + compatible = "regulator-fixed"; + status = "okay"; + phandle = <0x4a5>; + }; + + rkcif-mipi-lvds1-sditf-vir1 { + compatible = "rockchip,rkcif-sditf"; + status = "disabled"; + rockchip,cif = <0x53>; + phandle = <0x230>; + }; + + qos@fdf63000 { + compatible = "syscon"; + reg = <0x00 0xfdf63000 0x00 0x20>; + phandle = <0x8c>; + }; + + phy@fee00000 { + rockchip,pipe-grf = <0x76>; + clock-names = "refclk\0apbclk\0phpclk"; + assigned-clocks = <0x02 0x2bd>; + assigned-clock-rates = <0x5f5e100>; + resets = <0x02 0x20005 0x02 0x4d6>; + clocks = <0x02 0x2bd 0x02 0x185 0x02 0x166>; + #phy-cells = <0x01>; + compatible = "rockchip,rk3588-naneng-combphy"; + status = "okay"; + rockchip,pipe-phy-grf = <0x194>; + reg = <0x00 0xfee00000 0x00 0x100>; + phandle = <0x108>; + reset-names = "combphy-apb\0combphy"; + }; + + can@fea50000 { + pinctrl-names = "default"; + pinctrl-0 = <0x145>; + clock-names = "baudclk\0apb_pclk"; + resets = <0x02 0xb9 0x02 0xb8>; + interrupts = <0x00 0x155 0x04>; + clocks = <0x02 0x70 0x02 0x6f>; + compatible = "rockchip,can-2.0"; + status = "disabled"; + tx-fifo-depth = <0x01>; + rx-fifo-depth = <0x06>; + reg = <0x00 0xfea50000 0x00 0x1000>; + phandle = <0x2a0>; + reset-names = "can\0can-apb"; + }; + + pdm@fe4b0000 { + pinctrl-names = "default\0idle\0clk"; + pinctrl-2 = <0x139 0x13a>; + pinctrl-0 = <0x134 0x135 0x136 0x137>; + clock-names = "pdm_clk\0pdm_hclk"; + clocks = <0x02 0x29f 0x02 0x29e>; + dma-names = "rx"; + #sound-dai-cells = <0x00>; + compatible = "rockchip,rk3588-pdm"; + pinctrl-1 = <0x138>; + status = "disabled"; + reg = <0x00 0xfe4b0000 0x00 0x1000>; + phandle = <0x29a>; + dmas = <0x7c 0x04>; + }; + + rkisp-unite-mmu@fdcb7f00 { + power-domains = <0x60 0x1c>; + clock-names = "aclk0\0iface0\0aclk1\0iface1"; + interrupts = <0x00 0x84 0x04 0x00 0x88 0x04>; + clocks = <0x02 0x1de 0x02 0x1df 0x02 0x120 0x02 0x121>; + #iommu-cells = <0x00>; + compatible = "rockchip,iommu-v2"; + rockchip,disable-mmu-reset; + status = "disabled"; + interrupt-names = "isp0_mmu\0isp1_mmu"; + reg = <0x00 0xfdcb7f00 0x00 0x100 0x00 0xfdcc7f00 0x00 0x100>; + phandle = <0xcf>; + }; + + syscon@fd5a6000 { + clocks = <0x72>; + compatible = "rockchip,rk3588-vo-grf\0syscon"; + reg = <0x00 0xfd5a6000 0x00 0x2000>; + phandle = <0xf5>; + }; + + cpus { + #address-cells = <0x01>; + #size-cells = <0x00>; + + cpu@0 { + device_type = "cpu"; + compatible = "arm,cortex-a55"; + reg = <0x00>; + enable-method = "psci"; + clocks = <0x0e 0x00>; + cpu-idle-states = <0x10>; + operating-points-v2 = <0x0f>; + capacity-dmips-mhz = <0x212>; + + cpu-supply = <0x12>; + mem-supply = <0x12>; + dynamic-power-coefficient = <0x64>; + + i-cache-line-size = <0x40>; + i-cache-size = <0x8000>; + i-cache-sets = <0x80>; + + d-cache-line-size = <0x40>; + d-cache-size = <0x8000>; + d-cache-sets = <0x80>; + + next-level-cache = <0x11>; + #cooling-cells = <0x02>; + phandle = <0x06>; + }; + + l2-cache-l0 { + compatible = "cache"; + cache-size = <0x20000>; + cache-sets = <0x200>; + cache-line-size = <0x40>; + next-level-cache = <0x1e>; + phandle = <0x11>; + }; + + l3-cache { + compatible = "cache"; + cache-size = <0x300000>; + cache-sets = <0x1000>; + cache-line-size = <0x40>; + phandle = <0x1e>; + }; + + idle-states { + entry-method = "psci"; + + cpu-sleep { + compatible = "arm,idle-state"; + entry-latency-us = <0x64>; + exit-latency-us = <0x78>; + min-residency-us = <0x3e8>; + local-timer-stop; + arm,psci-suspend-param = <0x10000>; + phandle = <0x10>; + }; + }; + + cpu-map { + cluster0 { + core0 { + cpu = <0x06>; + }; + }; + }; + }; + + vcc-hub3-reset-regulator { + gpio = <0x182 0x06 0x00>; + regulator-always-on; + enable-active-high; + regulator-name = "vcc_hub3_reset"; + compatible = "regulator-fixed"; + status = "disabled"; + phandle = <0x4a1>; + }; + + rkispp1-vir0 { + rockchip,hw = <0x5c>; + compatible = "rockchip,rk3588-rkispp-vir"; + status = "disabled"; + phandle = <0x244>; + }; + + saradc@fec10000 { + vref-supply = <0x177>; + clock-names = "saradc\0apb_pclk"; + resets = <0x02 0xbe>; + interrupts = <0x00 0x18e 0x04>; + clocks = <0x02 0x9d 0x02 0x9c>; + #io-channel-cells = <0x01>; + compatible = "rockchip,rk3588-saradc"; + status = "okay"; + reg = <0x00 0xfec10000 0x00 0x10000>; + phandle = <0x1d9>; + reset-names = "saradc-apb"; + }; + + rkisp0-vir0 { + rockchip,hw = <0x58>; + compatible = "rockchip,rkisp-vir"; + status = "disabled"; + phandle = <0x23b>; + }; + + __symbols__ { + i2s2m0_lrck = "/pinctrl/i2s2/i2s2m0-lrck"; + i2c3 = "/i2c@feab0000"; + scmi_shmem = "/sram@10f000/sram@0"; + rkispp0_vir0 = "/rkispp0-vir0"; + qos_jpeg_enc0 = "/qos@fdf66400"; + i2s1m1_sdi1 = "/pinctrl/i2s1/i2s1m1-sdi1"; + dp_altmode_mux = "/i2c@fec80000/fusb302@22/connector/ports/port@1/endpoint"; + pmic_pins = "/pinctrl/pmic/pmic-pins"; + usb_host1_ohci = "/usb@fc8c0000"; + pwm9 = "/pwm@febe0010"; + i2c6m4_xfer = "/pinctrl/i2c6/i2c6m4-xfer"; + leds_gpio = "/pinctrl/leds/leds-gpio"; + i2c3m3_xfer = "/pinctrl/i2c3/i2c3m3-xfer"; + qos_usb3_1 = "/qos@fdf3e000"; + hdmi_debug4 = "/pinctrl/hdmi/hdmi-debug4"; + i2c0m2_xfer = "/pinctrl/i2c0/i2c0m2-xfer"; + gmac0_rgmii_bus = "/pinctrl/gmac0/gmac0-rgmii-bus"; + pcie30x2m2_pins = "/pinctrl/pcie30x2/pcie30x2m2-pins"; + sdmmc_clk = "/pinctrl/sdmmc/sdmmc-clk"; + spi0m3_cs0 = "/pinctrl/spi0/spi0m3-cs0"; + hwlock = "/hwspinlock@fe5a0000"; + pcie3x2 = "/pcie@fe160000"; + i2s2m1_mclk = "/pinctrl/i2s2/i2s2m1-mclk"; + mipim0_camera3_clk = "/pinctrl/mipi/mipim0-camera3-clk"; + mclkin_i2s0 = "/clocks/mclkin-i2s0"; + edp1_in_vp1 = "/edp@fded0000/ports/port@0/endpoint@1"; + rkvenc0_mmu = "/iommu@fdbdf000"; + pwm14 = "/pwm@febf0020"; + rk806_dvs2_rst = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs2_rst"; + mipi2_csi2 = "/mipi2-csi2"; + can2m1_pins = "/pinctrl/can2/can2m1-pins"; + pcie2x1l1 = "/pcie@fe180000"; + hdmi0_in_vp2 = "/hdmi@fde80000/ports/port@0/endpoint@2"; + qos_rkvenc0_m2wo = "/qos@fdf60400"; + pwm3m2_pins = "/pinctrl/pwm3/pwm3m2-pins"; + optee = "/firmware/optee"; + l2_cache_b2 = "/cpus/l2-cache-b2"; + pwm0m1_pins = "/pinctrl/pwm0/pwm0m1-pins"; + vdpu = "/vdpu@fdb50400"; + i2s3_sdo = "/pinctrl/i2s3/i2s3-sdo"; + usbdp_phy0_u3 = "/phy@fed80000/u3-port"; + thermal_zones = "/thermal-zones"; + hdmim2_rx_scl = "/pinctrl/hdmi/hdmim2-rx-scl"; + hdmim2_rx_sda = "/pinctrl/hdmi/hdmim2-rx-sda"; + uart9m0_rtsn = "/pinctrl/uart9/uart9m0-rtsn"; + spi1m2_cs0 = "/pinctrl/spi1/spi1m2-cs0"; + pcie2x1l1_intc = "/pcie@fe180000/legacy-interrupt-controller"; + spdif1m1_tx = "/pinctrl/spdif1/spdif1m1-tx"; + venc_opp_info = "/otp@fecc0000/venc-opp-info@67"; + qos_iep = "/qos@fdf66000"; + pcfg_pull_none_drv_level_3 = "/pinctrl/pcfg-pull-none-drv-level-3"; + spi3m2_cs1 = "/pinctrl/spi3/spi3m2-cs1"; + uart4m2_xfer = "/pinctrl/uart4/uart4m2-xfer"; + vp1 = "/vop@fdd90000/ports/port@1"; + bigcore1_grf = "/syscon@fd592000"; + uart1m1_xfer = "/pinctrl/uart1/uart1m1-xfer"; + uart5m1_ctsn = "/pinctrl/uart5/uart5m1-ctsn"; + fspim1_pins = "/pinctrl/fspi/fspim1-pins"; + cpu_l1 = "/cpus/cpu@100"; + uart8 = "/serial@febb0000"; + rkisp1_vir3 = "/rkisp1-vir3"; + qos_vop_m1 = "/qos@fdf82200"; + pcie_clk2 = "/pcie-clk2"; + cluster2_opp_table = "/cluster2-opp-table"; + usb_grf = "/syscon@fd5ac000"; + pcfg_pull_none_smt = "/pinctrl/pcfg-pull-none-smt"; + jpege0_mmu = "/iommu@fdba0800"; + spi2m1_cs0 = "/pinctrl/spi2/spi2m1-cs0"; + u2phy3 = "/syscon@fd5dc000/usb2-phy@c000"; + power_led = "/leds/power"; + aclk_usb = "/clocks/aclk_usb@fd7c08a8"; + csi2_dphy1 = "/csi2-dphy1"; + spi2 = "/spi@feb20000"; + uart2_rtsn = "/pinctrl/uart2/uart2-rtsn"; + spi4m1_cs1 = "/pinctrl/spi4/spi4m1-cs1"; + pcfg_pull_up_drv_level_15 = "/pinctrl/pcfg-pull-up-drv-level-15"; + vo1_grf = "/syscon@fd5a8000"; + pcie_essd = "/pcie-essd"; + i2c4m3_xfer = "/pinctrl/i2c4/i2c4m3-xfer"; + gpio0 = "/pinctrl/gpio@fd8a0000"; + saradc = "/saradc@fec10000"; + i2s1m0_sdi3 = "/pinctrl/i2s1/i2s1m0-sdi3"; + i2c1m2_xfer = "/pinctrl/i2c1/i2c1m2-xfer"; + csidphy0_out = "/csi2-dphy0/ports/port@1/endpoint@0"; + emmc_rstnout = "/pinctrl/emmc/emmc-rstnout"; + mclkout_i2s3 = "/clocks/mclkout-i2s3@fd58c318"; + xc7160_out0 = "/i2c@fec80000/XC7160b@1b/port/endpoint"; + rkcif_mipi_lvds1_sditf_vir1 = "/rkcif-mipi-lvds1-sditf-vir1"; + dsi1 = "/dsi@fde30000"; + venc_opp_table = "/venc-opp-table"; + qos_isp0_mwo = "/qos@fdf40500"; + pmu_pins = "/pinctrl/pmu/pmu-pins"; + gmac0_miim = "/pinctrl/gmac0/gmac0-miim"; + spi3m0_cs0 = "/pinctrl/spi3/spi3m0-cs0"; + mipi_dcphy0 = "/mipi-dcphy-dummy"; + minidump_mem = "/reserved-memory/minidump-mem@c000000"; + avdd_1v2_s0 = "/spi@feb20000/rk806single@0/regulators/PLDO_REG3"; + pwm7m3_pins = "/pinctrl/pwm7/pwm7m3-pins"; + route_edp1 = "/display-subsystem/route/route-edp1"; + hdmi1 = "/hdmi@fdea0000"; + crypto = "/crypto@fe370000"; + hdmi1_in_vp2 = "/hdmi@fdea0000/ports/port@0/endpoint@2"; + dfi = "/dfi@fe060000"; + can0m0_pins = "/pinctrl/can0/can0m0-pins"; + pcfg_pull_up_drv_level_2 = "/pinctrl/pcfg-pull-up-drv-level-2"; + pinctrl = "/pinctrl"; + pcfg_pull_down_drv_level_6 = "/pinctrl/pcfg-pull-down-drv-level-6"; + dp0m0_pins = "/pinctrl/dp0/dp0m0-pins"; + i2s0_sdo3 = "/pinctrl/i2s0/i2s0-sdo3"; + vcc_sata_pwr_en = "/vcc-sata-pwr-en-regulator"; + pwm1m1_pins = "/pinctrl/pwm1/pwm1m1-pins"; + pcie30_avdd1v8 = "/pcie30-avdd1v8"; + usb2phy3_grf = "/syscon@fd5dc000"; + u2phy2_host = "/syscon@fd5d8000/usb2-phy@8000/host-port"; + hym8563_int = "/pinctrl/hym8563/hym8563-int"; + mailbox1 = "/mailbox@fec70000"; + pdm0m1_sdi3 = "/pinctrl/pdm0/pdm0m1-sdi3"; + combphy1_ps = "/phy@fee10000"; + hdptxphy0_grf = "/syscon@fd5e0000"; + sdei = "/firmware/sdei"; + vp0_out_dp1 = "/vop@fdd90000/ports/port@0/endpoint@3"; + uart5m2_xfer = "/pinctrl/uart5/uart5m2-xfer"; + uart9m2_ctsn = "/pinctrl/uart9/uart9m2-ctsn"; + uart2m1_xfer = "/pinctrl/uart2/uart2m1-xfer"; + dp0_out = "/dp@fde50000/ports/port@1/endpoint"; + uart6m1_ctsn = "/pinctrl/uart6/uart6m1-ctsn"; + route_rgb = "/display-subsystem/route/route-rgb"; + csidphy0_out1 = "/csi2-dphy0/ports/port@1/endpoint@0"; + i2c1 = "/i2c@fea90000"; + pinctrl_rk806 = "/spi@feb20000/rk806single@0/pinctrl_rk806"; + cpu_code = "/otp@fecc0000/cpu-code@2"; + pwm7 = "/pwm@febd0030"; + mipi5_csi2_hw = "/mipi5-csi2-hw@fdd60000"; + gpu_leakage = "/otp@fecc0000/gpu-leakage@1b"; + hdmi_debug2 = "/pinctrl/hdmi/hdmi-debug2"; + pdm0m0_clk = "/pinctrl/pdm0/pdm0m0-clk"; + gmac0_ppsclk = "/pinctrl/gmac0/gmac0-ppsclk"; + i2c8m4_xfer = "/pinctrl/i2c8/i2c8m4-xfer"; + vdd_npu_s0 = "/i2c@fea90000/rk8602@42"; + i2c5m3_xfer = "/pinctrl/i2c5/i2c5m3-xfer"; + i2c2m2_xfer = "/pinctrl/i2c2/i2c2m2-xfer"; + rockchip_system_monitor = "/rockchip-system-monitor"; + pcie30x4m2_pins = "/pinctrl/pcie30x4/pcie30x4m2-pins"; + pwm12 = "/pwm@febf0000"; + emmc_cmd = "/pinctrl/emmc/emmc-cmd"; + i2s1_8ch = "/i2s@fe480000"; + pcie30x1m1_pins = "/pinctrl/pcie30x1/pcie30x1m1-pins"; + uart4_ctsn = "/pinctrl/uart4/uart4-ctsn"; + vdd_cpu_big0_mem_s0 = "/i2c@fd880000/rk8602@42"; + pcfg_pull_none = "/pinctrl/pcfg-pull-none"; + i2s1m0_mclk = "/pinctrl/i2s1/i2s1m0-mclk"; + vp1_out_edp1 = "/vop@fdd90000/ports/port@1/endpoint@4"; + hdmi0_in_vp0 = "/hdmi@fde80000/ports/port@0/endpoint@0"; + vcc_4g = "/vcc-4g-regulator"; + firefly_leds = "/leds"; + jpege3 = "/jpege-core@fdbac000"; + l2_cache_b0 = "/cpus/l2-cache-b0"; + pmu1_grf = "/syscon@fd58a000"; + aclk_rkvenc1_pre = "/clocks/aclk_rkvenc1_pre@fd7c08c0"; + can1m0_pins = "/pinctrl/can1/can1m0-pins"; + spi0m3_pins = "/pinctrl/spi0/spi0m3-pins"; + pwm5m2_pins = "/pinctrl/pwm5/pwm5m2-pins"; + mipidphy0_in_ucam1 = "/csi2-dphy0/ports/port@0/endpoint@1"; + i2s0_lrck = "/pinctrl/i2s0/i2s0-lrck"; + clk32k_out0 = "/pinctrl/clk32k/clk32k-out0"; + dp1m0_pins = "/pinctrl/dp1/dp1m0-pins"; + pwm2m1_pins = "/pinctrl/pwm2/pwm2m1-pins"; + usbc0 = "/i2c@fec80000/fusb302@22"; + eth1_pins = "/pinctrl/eth1/eth1-pins"; + pcfg_pull_none_drv_level_1 = "/pinctrl/pcfg-pull-none-drv-level-1"; + csi2_dphy0_hw = "/csi2-dphy0-hw@fedc0000"; + pdm1m1_sdi3 = "/pinctrl/pdm1/pdm1m1-sdi3"; + dsi0_in_vp3 = "/dsi@fde20000/ports/port@0/endpoint@1"; + hdmim1_tx1_cec = "/pinctrl/hdmi/hdmim1-tx1-cec"; + usbc0_role_sw = "/i2c@fec80000/fusb302@22/ports/port@0/endpoint@0"; + uart6 = "/serial@feb90000"; + rkisp1_vir1 = "/rkisp1-vir1"; + sdhci = "/mmc@fe2e0000"; + uart6m2_xfer = "/pinctrl/uart6/uart6m2-xfer"; + target = "/thermal-zones/soc-thermal/trips/trip-point-1"; + rkcif_mipi_lvds_sditf_vir3 = "/rkcif-mipi-lvds-sditf-vir3"; + pcfg_pull_none_drv_level_0_smt = "/pinctrl/pcfg-pull-none-drv-level-0-smt"; + uart3m1_xfer = "/pinctrl/uart3/uart3m1-xfer"; + uart7m1_ctsn = "/pinctrl/uart7/uart7m1-ctsn"; + uart0m0_xfer = "/pinctrl/uart0/uart0m0-xfer"; + rgb_in_vp3 = "/syscon@fd58c000/rgb/ports/port@0/endpoint@2"; + rkcif_mipi_lvds5_sditf_vir2 = "/rkcif-mipi-lvds5-sditf-vir2"; + u2phy1 = "/syscon@fd5d4000/usb2-phy@4000"; + i2s5_8ch = "/i2s@fddf0000"; + i2s2m0_sdo = "/pinctrl/i2s2/i2s2m0-sdo"; + gpu = "/gpu@fb000000"; + spi0 = "/spi@feb00000"; + iep = "/iep@fdbb0000"; + pcfg_pull_up_drv_level_13 = "/pinctrl/pcfg-pull-up-drv-level-13"; + spdif_tx5 = "/spdif-tx@fddb8000"; + hdptxphy_hdmi_clk1 = "/hdmiphy@fed70000/clk-port"; + drm_logo = "/reserved-memory/drm-logo@00000000"; + i2s1m0_sdi1 = "/pinctrl/i2s1/i2s1m0-sdi1"; + rk806_dvs3_null = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs3_null"; + gmac1_ppsclk = "/pinctrl/gmac1/gmac1-ppsclk"; + usb_host0_ohci = "/usb@fc840000"; + mclkout_i2s1 = "/clocks/mclkout-i2s1@fd58c318"; + i2c6m3_xfer = "/pinctrl/i2c6/i2c6m3-xfer"; + i2c3m2_xfer = "/pinctrl/i2c3/i2c3m2-xfer"; + vop_opp_info = "/otp@fecc0000/vop-opp-info@61"; + cif_dvp_bus16 = "/pinctrl/cif/cif-dvp-bus16"; + i2c0m1_xfer = "/pinctrl/i2c0/i2c0m1-xfer"; + pcie30x2m1_pins = "/pinctrl/pcie30x2/pcie30x2m1-pins"; + mipidcphy0_grf = "/syscon@fd5e8000"; + vdd_cpu_big1_mem_s0 = "/i2c@fd880000/rk8603@43"; + pcie30phy = "/phy@fee80000"; + dmc = "/dmc"; + i2s2m0_mclk = "/pinctrl/i2s2/i2s2m0-mclk"; + mipidcphy1 = "/phy@fedb0000"; + dp1_sound = "/dp1-sound"; + hdmi1_in_vp0 = "/hdmi@fdea0000/ports/port@0/endpoint@0"; + scmi = "/firmware/scmi"; + pcfg_pull_up_drv_level_0 = "/pinctrl/pcfg-pull-up-drv-level-0"; + gmac1_clkinout = "/pinctrl/gmac1/gmac1-clkinout"; + pcfg_pull_down_drv_level_4 = "/pinctrl/pcfg-pull-down-drv-level-4"; + i2s0_sdo1 = "/pinctrl/i2s0/i2s0-sdo1"; + l3_cache = "/cpus/l3-cache"; + i2s3_idle = "/pinctrl/i2s3/i2s3-idle"; + pcfg_pull_none_drv_level_4_smt = "/pinctrl/pcfg-pull-none-drv-level-4-smt"; + litcpu_pins = "/pinctrl/litcpu/litcpu-pins"; + mipi1_csi2 = "/mipi1-csi2"; + can2m0_pins = "/pinctrl/can2/can2m0-pins"; + pwm6m2_pins = "/pinctrl/pwm6/pwm6m2-pins"; + usbdp_phy0 = "/phy@fed80000"; + pdm0m1_sdi1 = "/pinctrl/pdm0/pdm0m1-sdi1"; + pwm3m1_pins = "/pinctrl/pwm3/pwm3m1-pins"; + vdd_log_s0 = "/spi@feb20000/rk806single@0/regulators/DCDC_REG3"; + i2s9_8ch = "/i2s@fddfc000"; + pwm0m0_pins = "/pinctrl/pwm0/pwm0m0-pins"; + vcc_hub3_reset = "/vcc-hub3-reset-regulator"; + dsi1_in_vp3 = "/dsi@fde30000/ports/port@0/endpoint@1"; + otp_cpu_version = "/otp@fecc0000/cpu-version@1c"; + pcie2x1l0_intc = "/pcie@fe170000/legacy-interrupt-controller"; + spdif0m1_tx = "/pinctrl/spdif0/spdif0m1-tx"; + pcfg_pull_down_drv_level_15 = "/pinctrl/pcfg-pull-down-drv-level-15"; + XC7160 = "/i2c@fec80000/XC7160b@1b"; + rkcif_mipi_lvds4_sditf_vir3 = "/rkcif-mipi-lvds4-sditf-vir3"; + uart7m2_xfer = "/pinctrl/uart7/uart7m2-xfer"; + uart4m1_xfer = "/pinctrl/uart4/uart4m1-xfer"; + hdmim1_tx1_scl = "/pinctrl/hdmi/hdmim1-tx1-scl"; + hdmim1_tx1_sda = "/pinctrl/hdmi/hdmim1-tx1-sda"; + uart8m1_ctsn = "/pinctrl/uart8/uart8m1-ctsn"; + i2s2_2ch = "/i2s@fe490000"; + pwm5 = "/pwm@febd0010"; + uart1m0_xfer = "/pinctrl/uart1/uart1m0-xfer"; + uart5m0_ctsn = "/pinctrl/uart5/uart5m0-ctsn"; + fspim0_cs1 = "/pinctrl/fspi/fspim0-cs1"; + fspim0_pins = "/pinctrl/fspi/fspim0-pins"; + rkisp0_vir3 = "/rkisp0-vir3"; + l2_cache_l3 = "/cpus/l2-cache-l3"; + rk806_dvs3_dvs = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs3_dvs"; + hdmi_debug0 = "/pinctrl/hdmi/hdmi-debug0"; + hdmim1_tx1_hpd = "/pinctrl/hdmi/hdmim1-tx1-hpd"; + vp1_out_dp0 = "/vop@fdd90000/ports/port@1/endpoint@0"; + qos_isp0_mro = "/qos@fdf40400"; + spi0m2_cs1 = "/pinctrl/spi0/spi0m2-cs1"; + vdd_gpu_s0 = "/spi@feb20000/rk806single@0/regulators/DCDC_REG1"; + tsadc_shut = "/pinctrl/tsadc/tsadc-shut"; + pwm10 = "/pwm@febe0020"; + i2c7m3_xfer = "/pinctrl/i2c7/i2c7m3-xfer"; + rktimer = "/timer@feae0000"; + cpub0_leakage = "/otp@fecc0000/cpub0-leakage@17"; + i2c4m2_xfer = "/pinctrl/i2c4/i2c4m2-xfer"; + hclk_rkvdec1_pre = "/clocks/hclk_rkvdec1_pre@fd7c08a4"; + pcie30phy_pins = "/pinctrl/pcie30phy/pcie30phy-pins"; + jpege1 = "/jpege-core@fdba4000"; + pcfg_pull_none_drv_level_14 = "/pinctrl/pcfg-pull-none-drv-level-14"; + i2c1m1_xfer = "/pinctrl/i2c1/i2c1m1-xfer"; + rkcif_dvp_sditf = "/rkcif-dvp-sditf"; + rkcif_mipi_lvds4_sditf = "/rkcif-mipi-lvds4-sditf"; + vp2_out_dp1 = "/vop@fdd90000/ports/port@2/endpoint@5"; + vp2_out_dsi0 = "/vop@fdd90000/ports/port@2/endpoint@3"; + its1 = "/interrupt-controller@fe600000/msi-controller@fe660000"; + cpu_b3 = "/cpus/cpu@700"; + vcc_hub_reset = "/vcc-hub-reset-regulator"; + spi1m1_cs1 = "/pinctrl/spi1/spi1m1-cs1"; + vdd_npu_mem_s0 = "/i2c@fea90000/rk8602@42"; + pwm7m2_pins = "/pinctrl/pwm7/pwm7m2-pins"; + pdm1m1_sdi1 = "/pinctrl/pdm1/pdm1m1-sdi1"; + vbus5v0_typec_pwr_en = "/vbus5v0-typec-pwr-en-regulator"; + pwm4m1_pins = "/pinctrl/pwm4/pwm4m1-pins"; + dmc_opp_table = "/dmc-opp-table"; + pcie30x4_button_rstn = "/pinctrl/pcie30x4/pcie30x4-button-rstn"; + uart4 = "/serial@feb70000"; + pwm1m0_pins = "/pinctrl/pwm1/pwm1m0-pins"; + spi0m0_cs0 = "/pinctrl/spi0/spi0m0-cs0"; + pldo6_s3 = "/spi@feb20000/rk806single@0/regulators/PLDO_REG6"; + mipim1_camera2_clk = "/pinctrl/mipi/mipim1-camera2-clk"; + mipim0_camera0_clk = "/pinctrl/mipi/mipim0-camera0-clk"; + rkcif_mipi_lvds_sditf_vir1 = "/rkcif-mipi-lvds-sditf-vir1"; + pcfg_pull_up_drv_level_9 = "/pinctrl/pcfg-pull-up-drv-level-9"; + dmac2 = "/dma-controller@fed10000"; + pdm0m0_sdi3 = "/pinctrl/pdm0/pdm0m0-sdi3"; + qos_gpu_m2 = "/qos@fdf35400"; + i2s0_sdi3 = "/pinctrl/i2s0/i2s0-sdi3"; + cluster0_opp_table = "/cluster0-opp-table"; + spi2m0_cs1 = "/pinctrl/spi2/spi2m0-cs1"; + otp_id = "/otp@fecc0000/id@7"; + uart5m1_xfer = "/pinctrl/uart5/uart5m1-xfer"; + uart9m1_ctsn = "/pinctrl/uart9/uart9m1-ctsn"; + qos_rga3_0 = "/qos@fdf67000"; + usbdp_phy0_dp = "/phy@fed80000/dp-port"; + uart2m0_xfer = "/pinctrl/uart2/uart2m0-xfer"; + uart6m0_ctsn = "/pinctrl/uart6/uart6m0-ctsn"; + npu_pins = "/pinctrl/npu/npu-pins"; + pcfg_pull_up_drv_level_11 = "/pinctrl/pcfg-pull-up-drv-level-11"; + spdif_tx3 = "/spdif-tx@fdde0000"; + rkispp0 = "/rkispp@fdcd0000"; + xin32k = "/clocks/xin32k"; + vcc_1v8_s3 = "/spi@feb20000/rk806single@0/regulators/DCDC_REG10"; + qos_usb2host_1 = "/qos@fdf3e600"; + bt_sco = "/bt-sco"; + pcfg_output_high_pull_none = "/pinctrl/pcfg-output-high-pull-none"; + adc_keys = "/adc-keys"; + rkcif_mipi_lvds4 = "/rkcif-mipi-lvds4"; + i2c8 = "/i2c@feca0000"; + dp0 = "/dp@fde50000"; + mipi_te1 = "/pinctrl/mipi/mipi-te1"; + i2c8m3_xfer = "/pinctrl/i2c8/i2c8m3-xfer"; + i2c5m2_xfer = "/pinctrl/i2c5/i2c5m2-xfer"; + pcie30x2_button_rstn = "/pinctrl/pcie30x2/pcie30x2-button-rstn"; + syssram = "/sram@ff001000"; + pcfg_pull_down_drv_level_2 = "/pinctrl/pcfg-pull-down-drv-level-2"; + qos_hdmirx = "/qos@fdf81200"; + i2c2m1_xfer = "/pinctrl/i2c2/i2c2m1-xfer"; + pcie30x4m1_pins = "/pinctrl/pcie30x4/pcie30x4m1-pins"; + vdd_0v75_s0 = "/spi@feb20000/rk806single@0/regulators/NLDO_REG5"; + hw_decompress = "/decompress@fea80000"; + pcie30x1m0_pins = "/pinctrl/pcie30x1/pcie30x1m0-pins"; + mipim0_camera4_clk = "/pinctrl/mipi/mipim0-camera4-clk"; + gmac1_txer = "/pinctrl/gmac1/gmac1-txer"; + uart3_ctsn = "/pinctrl/uart3/uart3-ctsn"; + vcc_sdcard_pwr_en = "/vcc-sdcard-pwr-en-regulator"; + mipi0_csi2_hw = "/mipi0-csi2-hw@fdd10000"; + rkvenc1_mmu = "/iommu@fdbef000"; + edp0 = "/edp@fdec0000"; + rkvenc_ccu = "/rkvenc-ccu"; + rk806_dvs3_rst = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs3_rst"; + power = "/power-management@fd8d8000/power-controller"; + vad = "/vad@fe4d0000"; + spi3m3_pins = "/pinctrl/spi3/spi3m3-pins"; + pwm8m2_pins = "/pinctrl/pwm8/pwm8m2-pins"; + spi0m2_pins = "/pinctrl/spi0/spi0m2-pins"; + pwm5m1_pins = "/pinctrl/pwm5/pwm5m1-pins"; + vcc_3v3_s0 = "/spi@feb20000/rk806single@0/regulators/PLDO_REG4"; + aclk_isp1_pre = "/clocks/aclk_isp1_pre@fd7c0868"; + pwm2m0_pins = "/pinctrl/pwm2/pwm2m0-pins"; + i2s1m1_sdo2 = "/pinctrl/i2s1/i2s1m1-sdo2"; + pcfg_pull_down_drv_level_13 = "/pinctrl/pcfg-pull-down-drv-level-13"; + eth0_pins = "/pinctrl/eth0/eth0-pins"; + rkcif_mipi_lvds4_sditf_vir1 = "/rkcif-mipi-lvds4-sditf-vir1"; + pwm3 = "/pwm@fd8b0030"; + pdm1m0_sdi3 = "/pinctrl/pdm1/pdm1m0-sdi3"; + rkcif_mmu = "/iommu@fdce0800"; + usbc0_int = "/pinctrl/usb-typec/usbc0-int"; + gmac0_tx_bus2 = "/pinctrl/gmac0/gmac0-tx-bus2"; + sata2 = "/sata@fe230000"; + uart9m2_xfer = "/pinctrl/uart9/uart9m2-xfer"; + dp0_in_vp2 = "/dp@fde50000/ports/port@0/endpoint@2"; + hdmiin_sound = "/hdmiin-sound"; + rkisp0_vir1 = "/rkisp0-vir1"; + uart6_gpios = "/pinctrl/wireless-bluetooth/uart6-gpios"; + spi3m3_cs1 = "/pinctrl/spi3/spi3m3-cs1"; + l2_cache_l1 = "/cpus/l2-cache-l1"; + pcfg_pull_none_drv_level_8 = "/pinctrl/pcfg-pull-none-drv-level-8"; + uart6m1_xfer = "/pinctrl/uart6/uart6m1-xfer"; + pwm11m3_pins = "/pinctrl/pwm11/pwm11m3-pins"; + vp2_out_hdmi0 = "/vop@fdd90000/ports/port@2/endpoint@2"; + qos_hdcp1 = "/qos@fdf81000"; + scmi_reset = "/firmware/scmi/protocol@16"; + vdd_cpu_lit_mem_s0 = "/spi@feb20000/rk806single@0/regulators/DCDC_REG2"; + i2s0_mclk = "/pinctrl/i2s0/i2s0-mclk"; + uart3m0_xfer = "/pinctrl/uart3/uart3m0-xfer"; + uart7m0_ctsn = "/pinctrl/uart7/uart7m0-ctsn"; + usbhost_dwc3_0 = "/usbhost3_0/usb@fcd00000"; + hdmim0_rx_hpdin = "/pinctrl/hdmi/hdmim0-rx-hpdin"; + edp0_out = "/edp@fdec0000/ports/port@1/endpoint"; + rkisp0 = "/rkisp@fdcb0000"; + dsu_grf = "/syscon@fd598000"; + vcc_fan_pwr_en = "/vcc-fan-pwr-en-regulator"; + gmac1_rx_bus2 = "/pinctrl/gmac1/gmac1-rx-bus2"; + uart1m2_rtsn = "/pinctrl/uart1/uart1m2-rtsn"; + csi2_dcphy0 = "/csi2-dcphy0"; + usb2phy0_grf = "/syscon@fd5d0000"; + scmi_clk = "/firmware/scmi/protocol@14"; + emmc_clk = "/pinctrl/emmc/emmc-clk"; + jpege1_mmu = "/iommu@fdba4800"; + qos_rkvenc1_m1ro = "/qos@fdf61200"; + spi2m2_cs0 = "/pinctrl/spi2/spi2m2-cs0"; + vcc5v0_host = "/vcc5v0-host"; + cru = "/clock-controller@fd7c0000"; + hdmim0_tx0_cec = "/pinctrl/hdmi/hdmim0-tx0-cec"; + pcfg_pull_none_drv_level_12 = "/pinctrl/pcfg-pull-none-drv-level-12"; + rk806_dvs2_null = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs2_null"; + cpub01_opp_info = "/otp@fecc0000/cpub01-opp-info@43"; + i2s3_sdi = "/pinctrl/i2s3/i2s3-sdi"; + aclk_rkvdec0_pre = "/clocks/aclk_rkvdec0_pre@fd7c08a0"; + cpu_b1 = "/cpus/cpu@500"; + i2c6m2_xfer = "/pinctrl/i2c6/i2c6m2-xfer"; + rknpu_mmu = "/iommu@fdab9000"; + rkcif_mipi_lvds_sditf = "/rkcif-mipi-lvds-sditf"; + i2c3m1_xfer = "/pinctrl/i2c3/i2c3m1-xfer"; + i2c0m0_xfer = "/pinctrl/i2c0/i2c0m0-xfer"; + pcie30x2m0_pins = "/pinctrl/pcie30x2/pcie30x2m0-pins"; + qos_isp1_mwo = "/qos@fdf41000"; + mipi2_csi2_output1 = "/mipi2-csi2/ports/port@1/endpoint@0"; + gmac1_stmmac_axi_setup = "/ethernet@fe1c0000/stmmac-axi-config"; + vcc5v0_usbdcin = "/vcc5v0-usbdcin"; + spi3m1_cs0 = "/pinctrl/spi3/spi3m1-cs0"; + reboot_mode = "/syscon@fd588000/reboot-mode"; + rga3_0_mmu = "/iommu@fdb60f00"; + uart2 = "/serial@feb50000"; + imx415_out0 = "/i2c@fec80000/imx415@37/port/endpoint"; + rkcif_mipi_lvds3_sditf_vir2 = "/rkcif-mipi-lvds3-sditf-vir2"; + pwm9m2_pins = "/pinctrl/pwm9/pwm9m2-pins"; + fec0_mmu = "/iommu@fdcd0f00"; + mipi0_csi2 = "/mipi0-csi2"; + spi1m2_pins = "/pinctrl/spi1/spi1m2-pins"; + pcfg_pull_up_drv_level_7 = "/pinctrl/pcfg-pull-up-drv-level-7"; + pwm6m1_pins = "/pinctrl/pwm6/pwm6m1-pins"; + tsadc_shut_org = "/pinctrl/tsadc/tsadc-shut-org"; + qos_rkvdec1 = "/qos@fdf63000"; + dmac0 = "/dma-controller@fea10000"; + vp2_out_edp1 = "/vop@fdd90000/ports/port@2/endpoint@6"; + pdm0m0_sdi1 = "/pinctrl/pdm0/pdm0m0-sdi1"; + qos_gpu_m0 = "/qos@fdf35000"; + pwm3m0_pins = "/pinctrl/pwm3/pwm3m0-pins"; + i2s0_sdi1 = "/pinctrl/i2s0/i2s0-sdi1"; + qos_av1 = "/qos@fdf64000"; + pcfg_output_low = "/pinctrl/pcfg-output-low"; + spdif_tx1 = "/spdif-tx@fe4f0000"; + hdptxphy1_grf = "/syscon@fd5e4000"; + spi4m0_cs0 = "/pinctrl/spi4/spi4m0-cs0"; + dp1_in_vp2 = "/dp@fde60000/ports/port@0/endpoint@2"; + jpegd_mmu = "/iommu@fdb90480"; + sata0m1_pins = "/pinctrl/sata0/sata0m1-pins"; + uart7m1_xfer = "/pinctrl/uart7/uart7m1-xfer"; + vp1_out_hdmi1 = "/vop@fdd90000/ports/port@1/endpoint@5"; + dp1_out = "/dp@fde60000/ports/port@1/endpoint"; + otp = "/otp@fecc0000"; + uart4m0_xfer = "/pinctrl/uart4/uart4m0-xfer"; + uart8m0_ctsn = "/pinctrl/uart8/uart8m0-ctsn"; + hdcp1 = "/hdcp@fde70000"; + rkcif_mipi_lvds2 = "/rkcif-mipi-lvds2"; + i2c6 = "/i2c@fec80000"; + qos_jpeg_enc3 = "/qos@fdf66a00"; + i2s2m1_idle = "/pinctrl/i2s2/i2s2m1-idle"; + refclk_pins = "/pinctrl/refclk/refclk-pins"; + pcie3x4_intc = "/pcie@fe150000/legacy-interrupt-controller"; + hdptxphy_hdmi1 = "/hdmiphy@fed70000"; + mipi2_lvds2_sditf = "/rkcif-mipi-lvds2-sditf/port/endpoint"; + pdm1 = "/pdm@fe4c0000"; + vdd_cpu_lit_s0 = "/spi@feb20000/rk806single@0/regulators/DCDC_REG2"; + pdm0m1_clk = "/pinctrl/pdm0/pdm0m1-clk"; + pcfg_pull_down_drv_level_0 = "/pinctrl/pcfg-pull-down-drv-level-0"; + qos_vicap_m0 = "/qos@fdf40600"; + gic = "/interrupt-controller@fe600000"; + vdd_cpu_big1_s0 = "/i2c@fd880000/rk8603@43"; + uart0_rtsn = "/pinctrl/uart0/uart0-rtsn"; + i2c7m2_xfer = "/pinctrl/i2c7/i2c7m2-xfer"; + mclkin_i2s3 = "/clocks/mclkin-i2s3"; + hdmim0_tx0_scl = "/pinctrl/hdmi/hdmim0-tx0-scl"; + hdmim0_tx0_sda = "/pinctrl/hdmi/hdmim0-tx0-sda"; + i2c4m1_xfer = "/pinctrl/i2c4/i2c4m1-xfer"; + spdif1m0_tx = "/pinctrl/spdif1/spdif1m0-tx"; + sdmmc_det = "/pinctrl/sdmmc/sdmmc-det"; + i2c1m0_xfer = "/pinctrl/i2c1/i2c1m0-xfer"; + rkcif_mipi_lvds2_sditf_vir3 = "/rkcif-mipi-lvds2-sditf-vir3"; + hdptxphy1 = "/phy@fed70000"; + route_dp1 = "/display-subsystem/route/route-dp1"; + hdmim0_tx0_hpd = "/pinctrl/hdmi/hdmim0-tx0-hpd"; + i2s1m1_sdo0 = "/pinctrl/i2s1/i2s1m1-sdo0"; + pdm1m0_clk = "/pinctrl/pdm1/pdm1m0-clk"; + pcfg_pull_down_drv_level_11 = "/pinctrl/pcfg-pull-down-drv-level-11"; + usbdrd3_1 = "/usbdrd3_1"; + spi2m2_pins = "/pinctrl/spi2/spi2m2-pins"; + pwm7m1_pins = "/pinctrl/pwm7/pwm7m1-pins"; + rkcif_mipi_lvds1_sditf = "/rkcif-mipi-lvds1-sditf"; + pwm1 = "/pwm@fd8b0010"; + pdm1m0_sdi1 = "/pinctrl/pdm1/pdm1m0-sdi1"; + threshold = "/thermal-zones/soc-thermal/trips/trip-point-0"; + pwm4m0_pins = "/pinctrl/pwm4/pwm4m0-pins"; + sata0 = "/sata@fe210000"; + dp0_in_vp0 = "/dp@fde50000/ports/port@0/endpoint@0"; + can2 = "/can@fea70000"; + pcfg_pull_none_drv_level_6 = "/pinctrl/pcfg-pull-none-drv-level-6"; + usbdrd_dwc3_0 = "/usbdrd3_0/usb@fc000000"; + rkvenc0 = "/rkvenc-core@fdbd0000"; + bt_reset_gpio = "/pinctrl/wireless-bluetooth/bt-reset-gpio"; + sata1m1_pins = "/pinctrl/sata1/sata1m1-pins"; + spll = "/clocks/spll"; + uart8m1_xfer = "/pinctrl/uart8/uart8m1-xfer"; + sata_pins = "/pinctrl/sata/sata-pins"; + pcfg_pull_none_drv_level_1_smt = "/pinctrl/pcfg-pull-none-drv-level-1-smt"; + qos_npu1 = "/qos@fdf70000"; + uart5m0_xfer = "/pinctrl/uart5/uart5m0-xfer"; + uart9m0_ctsn = "/pinctrl/uart9/uart9m0-ctsn"; + pwm10m2_pins = "/pinctrl/pwm10/pwm10m2-pins"; + rk806_dvs1_pwrdn = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs1_pwrdn"; + pipe_phy0_grf = "/syscon@fd5bc000"; + es8388 = "/i2c@fec80000/es8388@11"; + spdif_rx2 = "/spdif-rx@fde18000"; + usb_host1_ehci = "/usb@fc880000"; + xin24m = "/clocks/xin24m"; + pcie20x1_2_button_rstn = "/pinctrl/pcie20x1/pcie20x1-2-button-rstn"; + mipi2_csi2_hw = "/mipi2-csi2-hw@fdd30000"; + acdcdig_dsm = "/codec-digital@fe500000"; + vop_grf = "/syscon@fd5a4000"; + rk806_dvs1_slp = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs1_slp"; + i2s6_8ch = "/i2s@fddf4000"; + i2s2m1_sdo = "/pinctrl/i2s2/i2s2m1-sdo"; + pcie30x1_1_button_rstn = "/pinctrl/pcie30x1/pcie30x1-1-button-rstn"; + pcfg_output_low_pull_down = "/pinctrl/pcfg-output-low-pull-down"; + pcfg_pull_none_drv_level_10 = "/pinctrl/pcfg-pull-none-drv-level-10"; + pdm0m1_clk1 = "/pinctrl/pdm0/pdm0m1-clk1"; + mipidphy0_grf = "/syscon@fd5b4000"; + route_dsi1 = "/display-subsystem/route/route-dsi1"; + route_hdmi0 = "/display-subsystem/route/route-hdmi0"; + rkvdec_ccu = "/rkvdec-ccu@fdc30000"; + csi2_dphy4 = "/csi2-dphy4"; + gmac1_rgmii_bus = "/pinctrl/gmac1/gmac1-rgmii-bus"; + qos_sdio = "/qos@fdf39000"; + tsadc = "/tsadc@fec00000"; + pcfg_output_high_pull_up = "/pinctrl/pcfg-output-high-pull-up"; + hclk_usb = "/clocks/hclk_usb@fd7c08a8"; + avcc_1v8_s0 = "/spi@feb20000/rk806single@0/regulators/PLDO_REG1"; + edp0_in_vp2 = "/edp@fdec0000/ports/port@0/endpoint@2"; + mdio1 = "/ethernet@fe1c0000/mdio"; + gpio3 = "/pinctrl/gpio@fec40000"; + gpu_opp_table = "/gpu-opp-table"; + cif_mipi2_in0 = "/rkcif-mipi-lvds2/port/endpoint"; + pcfg_output_high = "/pinctrl/pcfg-output-high"; + i2c8m2_xfer = "/pinctrl/i2c8/i2c8m2-xfer"; + vdpu_mmu = "/iommu@fdb50800"; + i2c5m1_xfer = "/pinctrl/i2c5/i2c5m1-xfer"; + combphy0_ps = "/phy@fee00000"; + rgb = "/syscon@fd58c000/rgb"; + hclk_vo1 = "/clocks/hclk_vo1@fd7c08ec"; + i2c2m0_xfer = "/pinctrl/i2c2/i2c2m0-xfer"; + uart0 = "/serial@fd890000"; + mipidcphy1_grf = "/syscon@fd5ec000"; + pcie30x4m0_pins = "/pinctrl/pcie30x4/pcie30x4m0-pins"; + vdd_ddr_pll_s0 = "/spi@feb20000/rk806single@0/regulators/NLDO_REG2"; + gmac0_txer = "/pinctrl/gmac0/gmac0-txer"; + uart2_ctsn = "/pinctrl/uart2/uart2-ctsn"; + pcfg_pull_up_drv_level_5 = "/pinctrl/pcfg-pull-up-drv-level-5"; + pcfg_pull_down_drv_level_9 = "/pinctrl/pcfg-pull-down-drv-level-9"; + pcfg_pull_none_drv_level_5_smt = "/pinctrl/pcfg-pull-none-drv-level-5-smt"; + i2s2m0_sdi = "/pinctrl/i2s2/i2s2m0-sdi"; + qos_rga2_mwo = "/qos@fdf66e00"; + spi3m2_pins = "/pinctrl/spi3/spi3m2-pins"; + pwm8m1_pins = "/pinctrl/pwm8/pwm8m1-pins"; + dsi1_in = "/dsi@fde30000/ports/port@0"; + vp3_out_dsi0 = "/vop@fdd90000/ports/port@3/endpoint@0"; + pclk_vo0_grf = "/clocks/pclk_vo0_grf@fd7c08dc"; + spi0m1_pins = "/pinctrl/spi0/spi0m1-pins"; + pwm5m0_pins = "/pinctrl/pwm5/pwm5m0-pins"; + bt1120_pins = "/pinctrl/bt1120/bt1120-pins"; + dp1_in_vp0 = "/dp@fde60000/ports/port@0/endpoint@0"; + i2s1m0_sdo2 = "/pinctrl/i2s1/i2s1m0-sdo2"; + mipi2_csi2_input0 = "/mipi2-csi2/ports/port@0/endpoint@0"; + u2phy0_otg = "/syscon@fd5d0000/usb2-phy@0/otg-port"; + vp0_out_edp0 = "/vop@fdd90000/ports/port@0/endpoint@1"; + qos_fisheye0 = "/qos@fdf40000"; + i2c4 = "/i2c@feac0000"; + sata2m1_pins = "/pinctrl/sata2/sata2m1-pins"; + uart9m1_xfer = "/pinctrl/uart9/uart9m1-xfer"; + qos_jpeg_enc1 = "/qos@fdf66600"; + i2s1m1_sdi2 = "/pinctrl/i2s1/i2s1m1-sdi2"; + i2s3_2ch = "/i2s@fe4a0000"; + uart6m0_xfer = "/pinctrl/uart6/uart6m0-xfer"; + cpul_leakage = "/otp@fecc0000/cpul-leakage@19"; + pwm11m2_pins = "/pinctrl/pwm11/pwm11m2-pins"; + fspim1_cs1 = "/pinctrl/fspi/fspim1-cs1"; + vdd_vdenc_s0 = "/spi@feb20000/rk806single@0/regulators/DCDC_REG4"; + pdm1m1_clk1 = "/pinctrl/pdm1/pdm1m1-clk1"; + hdmi_debug5 = "/pinctrl/hdmi/hdmi-debug5"; + uart1m1_rtsn = "/pinctrl/uart1/uart1m1-rtsn"; + qos_isp1_mro = "/qos@fdf41100"; + ddrphych3_pins = "/pinctrl/ddrphych3/ddrphych3-pins"; + spi0m3_cs1 = "/pinctrl/spi0/spi0m3-cs1"; + qos_rkvenc0_m1ro = "/qos@fdf60200"; + qos_jpeg_dec = "/qos@fdf66200"; + mclkin_i2s1 = "/clocks/mclkin-i2s1"; + edp1_in_vp2 = "/edp@fded0000/ports/port@0/endpoint@2"; + pcie30_avdd0v75 = "/pcie30-avdd0v75"; + isp0_mmu = "/iommu@fdcb7f00"; + qos_npu0_mwr = "/qos@fdf72000"; + rkvdec0 = "/rkvdec-core@fdc38000"; + rkvdec0_mmu = "/iommu@fdc38700"; + rk806_dvs1_null = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs1_null"; + pwm15 = "/pwm@febf0030"; + vop_mmu = "/iommu@fdd97e00"; + rkcif_mipi_lvds2_sditf_vir1 = "/rkcif-mipi-lvds2-sditf-vir1"; + pcie2x1l2 = "/pcie@fe190000"; + i2c6m1_xfer = "/pinctrl/i2c6/i2c6m1-xfer"; + package_serial_number_low = "/otp@fecc0000/package-serial-number-low@6"; + iep_mmu = "/iommu@fdbb0800"; + l2_cache_b3 = "/cpus/l2-cache-b3"; + i2c3m0_xfer = "/pinctrl/i2c3/i2c3m0-xfer"; + vcc_1v1_nldo_s3 = "/vcc-1v1-nldo-s3"; + spi1m2_cs1 = "/pinctrl/spi1/spi1m2-cs1"; + pdm0m1_idle = "/pinctrl/pdm0/pdm0m1-idle"; + can0 = "/can@fea50000"; + spi4m2_pins = "/pinctrl/spi4/spi4m2-pins"; + pcfg_pull_none_drv_level_4 = "/pinctrl/pcfg-pull-none-drv-level-4"; + pwm9m1_pins = "/pinctrl/pwm9/pwm9m1-pins"; + arm_pmu = "/arm-pmu"; + vp2 = "/vop@fdd90000/ports/port@2"; + rk806single = "/spi@feb20000/rk806single@0"; + spi1m1_pins = "/pinctrl/spi1/spi1m1-pins"; + pwm6m0_pins = "/pinctrl/pwm6/pwm6m0-pins"; + rng = "/rng@fe378000"; + cpu_l2 = "/cpus/cpu@200"; + uart9 = "/serial@febc0000"; + spi0m1_cs0 = "/pinctrl/spi0/spi0m1-cs0"; + rk806_dvs3_gpio = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs3_gpio"; + rkcif_mipi_lvds5_sditf = "/rkcif-mipi-lvds5-sditf"; + usbdpphy0_grf = "/syscon@fd5c8000"; + mipim1_camera3_clk = "/pinctrl/mipi/mipim1-camera3-clk"; + pcie_clk3 = "/pcie-clk3"; + mipim0_camera1_clk = "/pinctrl/mipi/mipim0-camera1-clk"; + vp0_out_hdmi0 = "/vop@fdd90000/ports/port@0/endpoint@2"; + rkcif = "/rkcif@fdce0000"; + gmac0_rgmii_clk = "/pinctrl/gmac0/gmac0-rgmii-clk"; + wdt_en_base = "/pinctrl/wdt-pc9202/wdt-en-base"; + vp3_out_rgb = "/vop@fdd90000/ports/port@3/endpoint@2"; + spdif_rx0 = "/spdif-rx@fde08000"; + sdmmc_bus4 = "/pinctrl/sdmmc/sdmmc-bus4"; + hdmim2_tx0_scl = "/pinctrl/hdmi/hdmim2-tx0-scl"; + hdmim2_tx0_sda = "/pinctrl/hdmi/hdmim2-tx0-sda"; + spi2m1_cs1 = "/pinctrl/spi2/spi2m1-cs1"; + pwm15m3_pins = "/pinctrl/pwm15/pwm15m3-pins"; + sata0m0_pins = "/pinctrl/sata0/sata0m0-pins"; + uart7m0_xfer = "/pinctrl/uart7/uart7m0-xfer"; + csi2_dphy2 = "/csi2-dphy2"; + spi3 = "/spi@feb30000"; + edp0_in_vp0 = "/edp@fdec0000/ports/port@0/endpoint@0"; + gpio1 = "/pinctrl/gpio@fec20000"; + tsadcm1_shut = "/pinctrl/tsadc/tsadcm1-shut"; + usbdp_phy0_dp_altmode_mux = "/phy@fed80000/port/endpoint@1"; + i2s2m0_idle = "/pinctrl/i2s2/i2s2m0-idle"; + spi1m0_cs0 = "/pinctrl/spi1/spi1m0-cs0"; + rkcif_mipi_lvds1_sditf_vir2 = "/rkcif-mipi-lvds1-sditf-vir2"; + i2s3_sclk = "/pinctrl/i2s3/i2s3-sclk"; + hdmim1_rx_hpdin = "/pinctrl/hdmi/hdmim1-rx-hpdin"; + spi3m0_cs1 = "/pinctrl/spi3/spi3m0-cs1"; + mipi_dcphy1 = "/mipi-dcphy-dummy"; + vcc5v0_sys = "/vcc5v0-sys"; + aclk_hdcp0_pre = "/clocks/aclk_hdcp0_pre@fd7c08dc"; + usb_con = "/i2c@fec80000/fusb302@22/connector"; + hdmirx_ctrler = "/hdmirx-controller@fdee0000"; + i2c7m1_xfer = "/pinctrl/i2c7/i2c7m1-xfer"; + pcfg_pull_up_drv_level_3 = "/pinctrl/pcfg-pull-up-drv-level-3"; + rgmii_phy1 = "/ethernet@fe1c0000/mdio/phy@1"; + i2c4m0_xfer = "/pinctrl/i2c4/i2c4m0-xfer"; + pcfg_pull_down_drv_level_7 = "/pinctrl/pcfg-pull-down-drv-level-7"; + spdif0m0_tx = "/pinctrl/spdif0/spdif0m0-tx"; + wdt = "/watchdog@feaf0000"; + vdd_0v85_s0 = "/spi@feb20000/rk806single@0/regulators/NLDO_REG4"; + cspmu = "/cspmu@fd10c000"; + av1d_mmu = "/iommu@fdca0000"; + mailbox2 = "/mailbox@fece0000"; + mipi4_csi2_hw = "/mipi4-csi2-hw@fdd50000"; + pdm1m1_idle = "/pinctrl/pdm1/pdm1m1-idle"; + rga3_core0 = "/rga@fdb60000"; + i2s1m0_sdo0 = "/pinctrl/i2s1/i2s1m0-sdo0"; + bigcore1_thermal = "/thermal-zones/bigcore1-thermal"; + pcfg_output_low_pull_up = "/pinctrl/pcfg-output-low-pull-up"; + spi2m1_pins = "/pinctrl/spi2/spi2m1-pins"; + pwm7m0_pins = "/pinctrl/pwm7/pwm7m0-pins"; + i2c2 = "/i2c@feaa0000"; + npu_grf = "/syscon@fd5a2000"; + i2s1m1_sdi0 = "/pinctrl/i2s1/i2s1m1-sdi0"; + mipi5_csi2 = "/mipi5-csi2"; + pwm8 = "/pwm@febe0000"; + log_leakage = "/otp@fecc0000/log-leakage@1a"; + cpub23_opp_info = "/otp@fecc0000/cpub23-opp-info@49"; + vdd_vdenc_mem_s0 = "/spi@feb20000/rk806single@0/regulators/DCDC_REG4"; + rga2 = "/rga@fdb80000"; + emmc_bus8 = "/pinctrl/emmc/emmc-bus8"; + qos_usb3_0 = "/qos@fdf3e200"; + sata1m0_pins = "/pinctrl/sata1/sata1m0-pins"; + uart8m0_xfer = "/pinctrl/uart8/uart8m0-xfer"; + pwm13m2_pins = "/pinctrl/pwm13/pwm13m2-pins"; + hdmi_debug3 = "/pinctrl/hdmi/hdmi-debug3"; + cam0_or_cam1_switch_pin = "/pinctrl/cam/cam0-or-cam1-switch-pin"; + mcum1_pins = "/pinctrl/mcu/mcum1-pins"; + pwm10m1_pins = "/pinctrl/pwm10/pwm10m1-pins"; + edp1_out = "/edp@fded0000/ports/port@1/endpoint"; + hclk_sdio_pre = "/clocks/hclk_sdio_pre@fd7c092c"; + usb_host0_ehci = "/usb@fc800000"; + edp1_in_vp0 = "/edp@fded0000/ports/port@0/endpoint@0"; + gmac1 = "/ethernet@fe1c0000"; + i2s10_8ch = "/i2s@fde00000"; + hdmi1_in = "/hdmi@fdea0000/ports/port@0"; + usb2phy1_grf = "/syscon@fd5d4000"; + pdm0m0_clk1 = "/pinctrl/pdm0/pdm0m0-clk1"; + jpege2_mmu = "/iommu@fdba8800"; + pwm13 = "/pwm@febf0010"; + pcie2x1l0 = "/pcie@fe170000"; + hdmi0_in_vp1 = "/hdmi@fde80000/ports/port@0/endpoint@1"; + hdmim0_tx1_cec = "/pinctrl/hdmi/hdmim0-tx1-cec"; + l2_cache_b1 = "/cpus/l2-cache-b1"; + cif_dvp_bus8 = "/pinctrl/cif/cif-dvp-bus8"; + qos_rga2_mro = "/qos@fdf66c00"; + aclk_rkvdec1_pre = "/clocks/aclk_rkvdec1_pre@fd7c08a4"; + i2c8m1_xfer = "/pinctrl/i2c8/i2c8m1-xfer"; + vdd_ddr_s0 = "/spi@feb20000/rk806single@0/regulators/DCDC_REG5"; + hdmirx_det = "/pinctrl/hdmirx/hdmirx-det"; + pca9555 = "/i2c@feab0000/gpio@21"; + qos_sdmmc = "/qos@fdf3d800"; + clk32k_out1 = "/pinctrl/clk32k/clk32k-out1"; + i2c5m0_xfer = "/pinctrl/i2c5/i2c5m0-xfer"; + cif_dvp_clk = "/pinctrl/cif/cif-dvp-clk"; + rknpu = "/npu@fdab0000"; + pcfg_pull_none_drv_level_2 = "/pinctrl/pcfg-pull-none-drv-level-2"; + spi3m2_cs0 = "/pinctrl/spi3/spi3m2-cs0"; + vp0 = "/vop@fdd90000/ports/port@0"; + rga3_1_mmu = "/iommu@fdb70f00"; + jtagm2_pins = "/pinctrl/jtag/jtagm2-pins"; + cpu_l0 = "/cpus/cpu@0"; + uart7 = "/serial@feba0000"; + rkisp1_vir2 = "/rkisp1-vir2"; + fec1_mmu = "/iommu@fdcd8f00"; + qos_vop_m0 = "/qos@fdf82000"; + pcie_clk1 = "/pcie-clk1"; + gmac1_ptp_ref_clk = "/pinctrl/gmac1/gmac1-ptp-ref-clk"; + spi3m1_pins = "/pinctrl/spi3/spi3m1-pins"; + pwm8m0_pins = "/pinctrl/pwm8/pwm8m0-pins"; + hdmi0_sound = "/hdmi0-sound"; + ioc = "/syscon@fd5f0000"; + spi0m0_pins = "/pinctrl/spi0/spi0m0-pins"; + avsd = "/avsd-plus@fdb51000"; + rkcif_mipi_lvds5_sditf_vir3 = "/rkcif-mipi-lvds5-sditf-vir3"; + u2phy2 = "/syscon@fd5d8000/usb2-phy@8000"; + sfc = "/spi@fe2b0000"; + csi2_dphy0 = "/csi2-dphy0"; + spi1 = "/spi@feb10000"; + spi4m1_cs0 = "/pinctrl/spi4/spi4m1-cs0"; + gpu_grf = "/syscon@fd5a0000"; + pcfg_pull_up_drv_level_14 = "/pinctrl/pcfg-pull-up-drv-level-14"; + wireless_bluetooth = "/wireless-bluetooth"; + pclk_av1_pre = "/clocks/pclk_av1_pre@fd7c0910"; + sata2m0_pins = "/pinctrl/sata2/sata2m0-pins"; + uart9m0_xfer = "/pinctrl/uart9/uart9m0-xfer"; + pwm14m2_pins = "/pinctrl/pwm14/pwm14m2-pins"; + i2s1m0_sdi2 = "/pinctrl/i2s1/i2s1m0-sdi2"; + pwm11m1_pins = "/pinctrl/pwm11/pwm11m1-pins"; + bt_sound = "/bt-sound"; + qos_rkvenc1_m0ro = "/qos@fdf61000"; + mclkout_i2s2 = "/clocks/mclkout-i2s2@fd58c318"; + dsi0 = "/dsi@fde20000"; + pdm1m0_clk1 = "/pinctrl/pdm1/pdm1m0-clk1"; + uart1m0_rtsn = "/pinctrl/uart1/uart1m0-rtsn"; + ddrphych2_pins = "/pinctrl/ddrphych2/ddrphych2-pins"; + route_edp0 = "/display-subsystem/route/route-edp0"; + hdmi0 = "/hdmi@fde80000"; + es8388_sound = "/es8388-sound"; + hdmi1_in_vp1 = "/hdmi@fdea0000/ports/port@0/endpoint@1"; + pcfg_pull_up_drv_level_1 = "/pinctrl/pcfg-pull-up-drv-level-1"; + pcfg_pull_down_drv_level_5 = "/pinctrl/pcfg-pull-down-drv-level-5"; + i2s0_sdo2 = "/pinctrl/i2s0/i2s0-sdo2"; + vop_out = "/vop@fdd90000/ports"; + vdd_0v75_s3 = "/spi@feb20000/rk806single@0/regulators/NLDO_REG1"; + hdmim1_rx = "/pinctrl/hdmi/hdmim1-rx"; + pcfg_pull_down_smt = "/pinctrl/pcfg-pull-down-smt"; + hdmim0_tx1_scl = "/pinctrl/hdmi/hdmim0-tx1-scl"; + hdmim0_tx1_sda = "/pinctrl/hdmi/hdmim0-tx1-sda"; + cpul_opp_info = "/otp@fecc0000/cpul-opp-info@3d"; + clk32k_in = "/pinctrl/clk32k/clk32k-in"; + usbdp_phy1 = "/phy@fed90000"; + mailbox0 = "/mailbox@fec60000"; + i2c6m0_xfer = "/pinctrl/i2c6/i2c6m0-xfer"; + pdm0m1_sdi2 = "/pinctrl/pdm0/pdm0m1-sdi2"; + sdmmc = "/mmc@fe2c0000"; + hclk_nvm = "/clocks/hclk_nvm@fd7c087c"; + hdmim0_tx1_hpd = "/pinctrl/hdmi/hdmim0-tx1-hpd"; + vp0_out_dp0 = "/vop@fdd90000/ports/port@0/endpoint@0"; + vddq_ddr_s0 = "/spi@feb20000/rk806single@0/regulators/DCDC_REG9"; + vcc_3v3_s3 = "/spi@feb20000/rk806single@0/regulators/DCDC_REG8"; + gmac0_ppstring = "/pinctrl/gmac0/gmac0-ppstring"; + i2c0 = "/i2c@fd880000"; + pdm1m1_clk = "/pinctrl/pdm1/pdm1m1-clk"; + pdm0m0_idle = "/pinctrl/pdm0/pdm0m0-idle"; + soc_thermal = "/thermal-zones/soc-thermal"; + cluster1_opp_table = "/cluster1-opp-table"; + i2s0_idle = "/pinctrl/i2s0/i2s0-idle"; + spi4m1_pins = "/pinctrl/spi4/spi4m1-pins"; + npu_opp_info = "/otp@fecc0000/npu-opp-info@55"; + pwm9m0_pins = "/pinctrl/pwm9/pwm9m0-pins"; + pwm6 = "/pwm@febd0020"; + spi1m0_pins = "/pinctrl/spi1/spi1m0-pins"; + hym8563 = "/i2c@fd880000/hym8563@51"; + i2s1m1_sclk = "/pinctrl/i2s1/i2s1m1-sclk"; + rk806_dvs2_gpio = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs2_gpio"; + hp_det = "/pinctrl/headphone/hp-det"; + hdmi_debug1 = "/pinctrl/hdmi/hdmi-debug1"; + vp1_out_dp1 = "/vop@fdd90000/ports/port@1/endpoint@3"; + qos_mcu_npu = "/qos@fdf72400"; + auddsm_pins = "/pinctrl/auddsm/auddsm-pins"; + i2s3_lrck = "/pinctrl/i2s3/i2s3-lrck"; + pcfg_pull_none_drv_level_2_smt = "/pinctrl/pcfg-pull-none-drv-level-2-smt"; + pwm15m2_pins = "/pinctrl/pwm15/pwm15m2-pins"; + pipe_phy1_grf = "/syscon@fd5c0000"; + pwm12m1_pins = "/pinctrl/pwm12/pwm12m1-pins"; + pwm11 = "/pwm@febe0030"; + rkisp_unite = "/rkisp-unite@fdcb0000"; + rkcif_mipi_lvds2_sditf = "/rkcif-mipi-lvds2-sditf"; + vp1_out_edp0 = "/vop@fdd90000/ports/port@1/endpoint@1"; + hclk_isp1_pre = "/clocks/hclk_isp1_pre@fd7c0868"; + rk806_dvs2_slp = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs2_slp"; + i2s7_8ch = "/i2s@fddf8000"; + uart5m1_rtsn = "/pinctrl/uart5/uart5m1-rtsn"; + mipidphy1_grf = "/syscon@fd5b5000"; + usbhost3_0 = "/usbhost3_0"; + jpege2 = "/jpege-core@fdba8000"; + pcfg_pull_none_drv_level_15 = "/pinctrl/pcfg-pull-none-drv-level-15"; + pcie3x2_intc = "/pcie@fe160000/legacy-interrupt-controller"; + vp2_out_dsi1 = "/vop@fdd90000/ports/port@2/endpoint@4"; + mipidphy0_in_ucam0 = "/csi2-dphy0/ports/port@0/endpoint@0"; + av1d = "/av1d@fdc70000"; + uart1m2_ctsn = "/pinctrl/uart1/uart1m2-ctsn"; + sdiom1_pins = "/pinctrl/sdio/sdiom1-pins"; + rockchip_suspend = "/rockchip-suspend"; + rk806_dvs2_pwrdn = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs2_pwrdn"; + pcfg_pull_none_drv_level_0 = "/pinctrl/pcfg-pull-none-drv-level-0"; + npu_thermal = "/thermal-zones/npu-thermal"; + i2c7m0_xfer = "/pinctrl/i2c7/i2c7m0-xfer"; + pdm1m1_sdi2 = "/pinctrl/pdm1/pdm1m1-sdi2"; + cpu_pins = "/pinctrl/cpu/cpu-pins"; + dsi0_in_vp2 = "/dsi@fde20000/ports/port@0/endpoint@0"; + bt_wake_gpio = "/pinctrl/wireless-bluetooth/bt-wake-gpio"; + uart5 = "/serial@feb80000"; + dwc3_0_role_switch = "/usbdrd3_0/usb@fc000000/port/endpoint@0"; + rkisp1_vir0 = "/rkisp1-vir0"; + fiq_debugger = "/fiq-debugger"; + usbdp_phy1_u3 = "/phy@fed90000/u3-port"; + spi0m0_cs1 = "/pinctrl/spi0/spi0m0-cs1"; + sdio = "/mmc@fe2d0000"; + rkcif_mipi_lvds_sditf_vir2 = "/rkcif-mipi-lvds-sditf-vir2"; + spdif1m2_tx = "/pinctrl/spdif1/spdif1m2-tx"; + qos_gpu_m3 = "/qos@fdf35600"; + pdm1m0_idle = "/pinctrl/pdm1/pdm1m0-idle"; + pcfg_pull_none_drv_level_6_smt = "/pinctrl/pcfg-pull-none-drv-level-6-smt"; + user_led = "/leds/user"; + rkcif_mipi_lvds5_sditf_vir1 = "/rkcif-mipi-lvds5-sditf-vir1"; + i2s2m1_sdi = "/pinctrl/i2s2/i2s2m1-sdi"; + uart8_xfer = "/pinctrl/uart8/uart8-xfer"; + u2phy0 = "/syscon@fd5d0000/usb2-phy@0"; + pclk_vo1_grf = "/clocks/pclk_vo1_grf@fd7c08ec"; + vdd_gpu_mem_s0 = "/spi@feb20000/rk806single@0/regulators/DCDC_REG1"; + spi2m0_pins = "/pinctrl/spi2/spi2m0-pins"; + qos_rga3_1 = "/qos@fdf36000"; + i2s2m1_sclk = "/pinctrl/i2s2/i2s2m1-sclk"; + pcfg_pull_up_drv_level_12 = "/pinctrl/pcfg-pull-up-drv-level-12"; + spdif_tx4 = "/spdif-tx@fdde8000"; + gmac1_mtl_rx_setup = "/ethernet@fe1c0000/rx-queues-config"; + rkispp1 = "/rkispp@fdcd8000"; + hdmim2_tx1_cec = "/pinctrl/hdmi/hdmim2-tx1-cec"; + u2phy1_otg = "/syscon@fd5d4000/usb2-phy@4000/otg-port"; + hdptxphy_hdmi_clk0 = "/hdmiphy@fed60000/clk-port"; + i2s1m0_sdi0 = "/pinctrl/i2s1/i2s1m0-sdi0"; + mipi4_csi2 = "/mipi4-csi2"; + mclkout_i2s0 = "/clocks/mclkout-i2s0@fd58c318"; + vcc5v0_host3 = "/vcc5v0-host3"; + rkcif_mipi_lvds5 = "/rkcif-mipi-lvds5"; + vdd_cpu_big0_s0 = "/i2c@fd880000/rk8602@42"; + dp1 = "/dp@fde60000"; + emmc_data_strobe = "/pinctrl/emmc/emmc-data-strobe"; + pwm13m1_pins = "/pinctrl/pwm13/pwm13m1-pins"; + vop_pins = "/pinctrl/vop/vop-pins"; + pcie20x1m1_pins = "/pinctrl/pcie20x1/pcie20x1m1-pins"; + fspim2_cs1 = "/pinctrl/fspi/fspim2-cs1"; + vcc_hub = "/vcc-hub-regulator"; + mcum0_pins = "/pinctrl/mcu/mcum0-pins"; + pwm10m0_pins = "/pinctrl/pwm10/pwm10m0-pins"; + uart9m2_rtsn = "/pinctrl/uart9/uart9m2-rtsn"; + mipidcphy0 = "/phy@feda0000"; + uart6m1_rtsn = "/pinctrl/uart6/uart6m1-rtsn"; + vcc3v3_pcie30 = "/vcc3v3-pcie30"; + pcfg_pull_down_drv_level_3 = "/pinctrl/pcfg-pull-down-drv-level-3"; + mipim1_camera0_clk = "/pinctrl/mipi/mipim1-camera0-clk"; + i2s0_sdo0 = "/pinctrl/i2s0/i2s0-sdo0"; + vop = "/vop@fdd90000"; + gmac0_ptp_refclk = "/pinctrl/gmac0/gmac0-ptp-refclk"; + usbdp_phy0_orientation_switch = "/phy@fed80000/port/endpoint@0"; + vepu = "/vepu@fdb50000"; + cif_clk = "/pinctrl/cif/cif-clk"; + pcie30_phy_grf = "/syscon@fd5b8000"; + isp1_mmu = "/iommu@fdcc7f00"; + pdm0m1_sdi0 = "/pinctrl/pdm0/pdm0m1-sdi0"; + rkvdec1_mmu = "/iommu@fdc48700"; + edp1 = "/edp@fded0000"; + cam0_cam1_switch = "/cam0-cam1-switch"; + gmac1_ppstrig = "/pinctrl/gmac1/gmac1-ppstrig"; + i2c8m0_xfer = "/pinctrl/i2c8/i2c8m0-xfer"; + dsi1_in_vp2 = "/dsi@fde30000/ports/port@0/endpoint@0"; + hdmim2_rx_hpdin = "/pinctrl/hdmi/hdmim2-rx-hpdin"; + i2s1m1_sdo3 = "/pinctrl/i2s1/i2s1m1-sdo3"; + pcfg_pull_down_drv_level_14 = "/pinctrl/pcfg-pull-down-drv-level-14"; + gmac0_rx_bus2 = "/pinctrl/gmac0/gmac0-rx-bus2"; + rkcif_mipi_lvds4_sditf_vir2 = "/rkcif-mipi-lvds4-sditf-vir2"; + center_thermal = "/thermal-zones/center-thermal"; + uart0_ctsn = "/pinctrl/uart0/uart0-ctsn"; + uart4_rtsn = "/pinctrl/uart4/uart4-rtsn"; + pwm4 = "/pwm@febd0000"; + vdd2_ddr_s3 = "/spi@feb20000/rk806single@0/regulators/DCDC_REG6"; + jtagm1_pins = "/pinctrl/jtag/jtagm1-pins"; + rkisp0_vir2 = "/rkisp0-vir2"; + i2c1m4_xfer = "/pinctrl/i2c1/i2c1m4-xfer"; + l2_cache_l2 = "/cpus/l2-cache-l2"; + pcfg_pull_none_drv_level_9 = "/pinctrl/pcfg-pull-none-drv-level-9"; + qos_vdpu = "/qos@fdf67200"; + vp2_out_hdmi1 = "/vop@fdd90000/ports/port@2/endpoint@7"; + spi3m0_pins = "/pinctrl/spi3/spi3m0-pins"; + pcfg_output_low_pull_none = "/pinctrl/pcfg-output-low-pull-none"; + spi0m2_cs0 = "/pinctrl/spi0/spi0m2-cs0"; + rkisp1 = "/rkisp@fdcc0000"; + usbdpphy1_grf = "/syscon@fd5cc000"; + mipim1_camera4_clk = "/pinctrl/mipi/mipim1-camera4-clk"; + mipim0_camera2_clk = "/pinctrl/mipi/mipim0-camera2-clk"; + csi2_dcphy1 = "/csi2-dcphy1"; + hdmim2_tx1_scl = "/pinctrl/hdmi/hdmim2-tx1-scl"; + hdmim2_tx1_sda = "/pinctrl/hdmi/hdmim2-tx1-sda"; + spi2m2_cs1 = "/pinctrl/spi2/spi2m2-cs1"; + chosen = "/chosen"; + soc_crit = "/thermal-zones/soc-thermal/trips/soc-crit"; + rk806_dvs1_rst = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs1_rst"; + mpp_srv = "/mpp-srv"; + hclk_rkvenc1_pre = "/clocks/hclk_rkvenc1_pre@fd7c08c0"; + dp0m2_pins = "/pinctrl/dp0/dp0m2-pins"; + debug = "/debug@fd104000"; + jpege0 = "/jpege-core@fdba0000"; + pcfg_pull_none_drv_level_13 = "/pinctrl/pcfg-pull-none-drv-level-13"; + pwm14m1_pins = "/pinctrl/pwm14/pwm14m1-pins"; + pwm11m0_pins = "/pinctrl/pwm11/pwm11m0-pins"; + vp2_out_dp0 = "/vop@fdd90000/ports/port@2/endpoint@0"; + qos_rkvenc0_m0ro = "/qos@fdf60000"; + its0 = "/interrupt-controller@fe600000/msi-controller@fe640000"; + cpu_b2 = "/cpus/cpu@600"; + uart7m1_rtsn = "/pinctrl/uart7/uart7m1-rtsn"; + usb_5v_ctrl = "/pinctrl/usb-typec/usb-5v-ctrl"; + tsadc_gpio_func = "/pinctrl/gpio-func/tsadc-gpio-func"; + spi1m1_cs0 = "/pinctrl/spi1/spi1m1-cs0"; + pcfg_pull_down = "/pinctrl/pcfg-pull-down"; + dmc_opp_info = "/otp@fecc0000/dmc-opp-info@5b"; + ddrphych1_pins = "/pinctrl/ddrphych1/ddrphych1-pins"; + dsi0_in = "/dsi@fde20000/ports/port@0"; + pdm1m1_sdi0 = "/pinctrl/pdm1/pdm1m1-sdi0"; + spi3m1_cs1 = "/pinctrl/spi3/spi3m1-cs1"; + bigcore0_grf = "/syscon@fd590000"; + cpub1_leakage = "/otp@fecc0000/cpub1-leakage@18"; + uart3 = "/serial@feb60000"; + aclk_hdcp1_pre = "/clocks/aclk_hdcp1_pre@fd7c08ec"; + pcfg_pull_up = "/pinctrl/pcfg-pull-up"; + rkcif_mipi_lvds3_sditf_vir3 = "/rkcif-mipi-lvds3-sditf-vir3"; + codec_leakage = "/otp@fecc0000/codec-leakage@29"; + pcfg_pull_up_drv_level_8 = "/pinctrl/pcfg-pull-up-drv-level-8"; + dmac1 = "/dma-controller@fea30000"; + pdm0m0_sdi2 = "/pinctrl/pdm0/pdm0m0-sdi2"; + i2s1m1_lrck = "/pinctrl/i2s1/i2s1m1-lrck"; + qos_gpu_m1 = "/qos@fdf35200"; + i2s0_sdi2 = "/pinctrl/i2s0/i2s0-sdi2"; + spi2m0_cs0 = "/pinctrl/spi2/spi2m0-cs0"; + gpu_opp_info = "/otp@fecc0000/gpu-opp-info@4f"; + csi2_dphy1_hw = "/csi2-dphy1-hw@fedc8000"; + pcfg_pull_up_drv_level_10 = "/pinctrl/pcfg-pull-up-drv-level-10"; + spdif_tx2 = "/spdif-tx@fddb0000"; + npu_opp_table = "/npu-opp-table"; + spi4m0_cs1 = "/pinctrl/spi4/spi4m0-cs1"; + vo0_grf = "/syscon@fd5a6000"; + i2c2m4_xfer = "/pinctrl/i2c2/i2c2m4-xfer"; + qos_usb2host_0 = "/qos@fdf3e400"; + spi4m0_pins = "/pinctrl/spi4/spi4m0-pins"; + gmac1_mtl_tx_setup = "/ethernet@fe1c0000/tx-queues-config"; + rkcif_mipi_lvds3 = "/rkcif-mipi-lvds3"; + i2s1m0_sclk = "/pinctrl/i2s1/i2s1m0-sclk"; + i2c7 = "/i2c@fec90000"; + mipi2_csi2_output = "/mipi2-csi2/ports/port@1/endpoint@0"; + mipi_te0 = "/pinctrl/mipi/mipi-te0"; + sata_reset = "/pinctrl/sata/sata-reset"; + dp1m2_pins = "/pinctrl/dp1/dp1m2-pins"; + pwm15m1_pins = "/pinctrl/pwm15/pwm15m1-pins"; + pcfg_pull_down_drv_level_1 = "/pinctrl/pcfg-pull-down-drv-level-1"; + pwm12m0_pins = "/pinctrl/pwm12/pwm12m0-pins"; + qos_vicap_m1 = "/qos@fdf40800"; + sdmmc_cmd = "/pinctrl/sdmmc/sdmmc-cmd"; + uart8m1_rtsn = "/pinctrl/uart8/uart8m1-rtsn"; + usb2phy2_grf = "/syscon@fd5d8000"; + rkvdec1_sram = "/sram@ff001000/rkvdec-sram@78000"; + uart5m0_rtsn = "/pinctrl/uart5/uart5m0-rtsn"; + jpege3_mmu = "/iommu@fdbac800"; + vcc_2v0_pldo_s3 = "/spi@feb20000/rk806single@0/regulators/DCDC_REG7"; + i2s3_mclk = "/pinctrl/i2s3/i2s3-mclk"; + mclkout_i2s1m1 = "/clocks/mclkout-i2s1@fd58a000"; + spdif_tx1_dc = "/spdif-tx1-dc"; + uart0m2_xfer = "/pinctrl/uart0/uart0m2-xfer"; + wifi_host_wake_irq = "/pinctrl/wireless-wlan/wifi-host-wake-irq"; + i2s1m1_sdo1 = "/pinctrl/i2s1/i2s1m1-sdo1"; + uart1m1_ctsn = "/pinctrl/uart1/uart1m1-ctsn"; + pcfg_pull_down_drv_level_12 = "/pinctrl/pcfg-pull-down-drv-level-12"; + sdiom0_pins = "/pinctrl/sdio/sdiom0-pins"; + pcfg_pull_up_smt = "/pinctrl/pcfg-pull-up-smt"; + php_grf = "/syscon@fd5b0000"; + pwm2 = "/pwm@fd8b0020"; + pdm1m0_sdi2 = "/pinctrl/pdm1/pdm1m0-sdi2"; + i2s2m1_lrck = "/pinctrl/i2s2/i2s2m1-lrck"; + mipi1_csi2_hw = "/mipi1-csi2-hw@fdd20000"; + sata1 = "/sata@fe220000"; + rkispp1_vir0 = "/rkispp1-vir0"; + dp0_in_vp1 = "/dp@fde50000/ports/port@0/endpoint@1"; + CPU_SLEEP = "/cpus/idle-states/cpu-sleep"; + rkisp0_vir0 = "/rkisp0-vir0"; + spi3m3_cs0 = "/pinctrl/spi3/spi3m3-cs0"; + specification_serial_number = "/otp@fecc0000/specification-serial-number@6"; + l2_cache_l0 = "/cpus/l2-cache-l0"; + pcfg_pull_none_drv_level_7 = "/pinctrl/pcfg-pull-none-drv-level-7"; + qos_hdcp0 = "/qos@fdf80000"; + qos_npu0_mro = "/qos@fdf72200"; + usbdrd_dwc3_1 = "/usbdrd3_1/usb@fc400000"; + rkvenc1 = "/rkvenc-core@fdbe0000"; + display_subsystem = "/display-subsystem"; + i2c3m4_xfer = "/pinctrl/i2c3/i2c3m4-xfer"; + pcie30x2m3_pins = "/pinctrl/pcie30x2/pcie30x2m3-pins"; + qos_npu2 = "/qos@fdf71000"; + i2s0_8ch = "/i2s@fe470000"; + i2s2m0_sclk = "/pinctrl/i2s2/i2s2m0-sclk"; + pmu = "/power-management@fd8d8000"; + gmac1_tx_bus2 = "/pinctrl/gmac1/gmac1-tx-bus2"; + pcfg_pull_none_drv_level_11 = "/pinctrl/pcfg-pull-none-drv-level-11"; + route_hdmi1 = "/display-subsystem/route/route-hdmi1"; + csi2_dphy5 = "/csi2-dphy5"; + spi4m2_cs0 = "/pinctrl/spi4/spi4m2-cs0"; + mipi3_csi2 = "/mipi3-csi2"; + pmu0_grf = "/syscon@fd588000"; + fan = "/pwm-fan"; + cpu_b0 = "/cpus/cpu@400"; + vccio_sd_s0 = "/spi@feb20000/rk806single@0/regulators/PLDO_REG5"; + qos_rkvenc1_m2wo = "/qos@fdf61400"; + gpio4 = "/pinctrl/gpio@fec50000"; + hdmim0_rx_cec = "/pinctrl/hdmi/hdmim0-rx-cec"; + pwm3m3_pins = "/pinctrl/pwm3/pwm3m3-pins"; + aclk_vdpu_low_pre = "/clocks/aclk_vdpu_low_pre@fd7c08b0"; + mmu600_php = "/iommu@fcb00000"; + cif_mipi2_in1 = "/rkcif-mipi-lvds2/port/endpoint"; + pwm0m2_pins = "/pinctrl/pwm0/pwm0m2-pins"; + pwm13m0_pins = "/pinctrl/pwm13/pwm13m0-pins"; + pcie20x1m0_pins = "/pinctrl/pcie20x1/pcie20x1m0-pins"; + bt656_pins = "/pinctrl/bt656/bt656-pins"; + hdmi1_sound = "/hdmi1-sound"; + uart9m1_rtsn = "/pinctrl/uart9/uart9m1-rtsn"; + uart6m0_rtsn = "/pinctrl/uart6/uart6m0-rtsn"; + pcie2x1l2_intc = "/pcie@fe190000/legacy-interrupt-controller"; + mod_sleep = "/mod-sleep-regulator"; + gpu_thermal = "/thermal-zones/gpu-thermal"; + hdmim1_tx0_cec = "/pinctrl/hdmi/hdmim1-tx0-cec"; + uart1 = "/serial@feb40000"; + rkcif_mipi_lvds3_sditf_vir1 = "/rkcif-mipi-lvds3-sditf-vir1"; + pcfg_pull_up_drv_level_6 = "/pinctrl/pcfg-pull-up-drv-level-6"; + qos_rkvdec0 = "/qos@fdf62000"; + vp2_out_edp0 = "/vop@fdd90000/ports/port@2/endpoint@1"; + uart1m2_xfer = "/pinctrl/uart1/uart1m2-xfer"; + pdm0m0_sdi0 = "/pinctrl/pdm0/pdm0m0-sdi0"; + fspim2_pins = "/pinctrl/fspi/fspim2-pins"; + i2s0_sdi0 = "/pinctrl/i2s0/i2s0-sdi0"; + gpu_pins = "/pinctrl/gpu/gpu-pins"; + imx415 = "/i2c@fec80000/imx415@37"; + vp3_out_dsi1 = "/vop@fdd90000/ports/port@3/endpoint@1"; + i2s4_8ch = "/i2s@fddc0000"; + ramoops = "/reserved-memory/ramoops@110000"; + dp0_sound = "/dp0-sound"; + spdif_tx0 = "/spdif-tx@fe4e0000"; + dp1_in_vp1 = "/dp@fde60000/ports/port@0/endpoint@1"; + i2s1m0_sdo3 = "/pinctrl/i2s1/i2s1m0-sdo3"; + mipi2_csi2_input1 = "/mipi2-csi2/ports/port@0/endpoint@0"; + vcc_1v8_s0 = "/spi@feb20000/rk806single@0/regulators/PLDO_REG2"; + vp1_out_hdmi0 = "/vop@fdd90000/ports/port@1/endpoint@2"; + vcc12v_dcin = "/vcc12v-dcin"; + vp0_out_edp1 = "/vop@fdd90000/ports/port@0/endpoint@4"; + uart3_rtsn = "/pinctrl/uart3/uart3-rtsn"; + gmac1_rgmii_clk = "/pinctrl/gmac1/gmac1-rgmii-clk"; + package_serial_number_high = "/otp@fecc0000/package-serial-number-high@5"; + hdcp0 = "/hdcp@fde40000"; + qos_fisheye1 = "/qos@fdf40200"; + rkcif_mipi_lvds1 = "/rkcif-mipi-lvds1"; + i2c5 = "/i2c@fead0000"; + jtagm0_pins = "/pinctrl/jtag/jtagm0-pins"; + i2c4m4_xfer = "/pinctrl/i2c4/i2c4m4-xfer"; + spdif_tx1_sound = "/spdif-tx1-sound"; + qos_jpeg_enc2 = "/qos@fdf66800"; + hdmi0_in = "/hdmi@fde80000/ports/port@0"; + i2s1m1_sdi3 = "/pinctrl/i2s1/i2s1m1-sdi3"; + i2c1m3_xfer = "/pinctrl/i2c1/i2c1m3-xfer"; + hdptxphy_hdmi0 = "/hdmiphy@fed60000"; + sdmmc_pwren = "/pinctrl/sdmmc/sdmmc-pwren"; + usbdp_phy1_dp = "/phy@fed90000/dp-port"; + npu_leakage = "/otp@fecc0000/npu-leakage@28"; + aclk_jpeg_decoder_pre = "/clocks/aclk_jpeg_decoder_pre@fd7c08b0"; + pdm0 = "/pdm@fe4b0000"; + gmac1_miim = "/pinctrl/gmac1/gmac1-miim"; + pcfg_output_high_pull_down = "/pinctrl/pcfg-output-high-pull-down"; + hdmi_debug6 = "/pinctrl/hdmi/hdmi-debug6"; + pcie3x4 = "/pcie@fe150000"; + can0m1_pins = "/pinctrl/can0/can0m1-pins"; + mclkin_i2s2 = "/clocks/mclkin-i2s2"; + jpege_ccu = "/jpege-ccu"; + pcfg_pull_none_drv_level_3_smt = "/pinctrl/pcfg-pull-none-drv-level-3-smt"; + hdmim1_rx_cec = "/pinctrl/hdmi/hdmim1-rx-cec"; + pipe_phy2_grf = "/syscon@fd5c4000"; + dp0m1_pins = "/pinctrl/dp0/dp0m1-pins"; + rkvdec1 = "/rkvdec-core@fdc48000"; + pwm1m2_pins = "/pinctrl/pwm1/pwm1m2-pins"; + pwm14m0_pins = "/pinctrl/pwm14/pwm14m0-pins"; + little_core_thermal = "/thermal-zones/littlecore-thermal"; + rk806_dvs3_slp = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs3_slp"; + usb_5v = "/usb-5v"; + i2s8_8ch = "/i2s@fddc8000"; + drm_cubic_lut = "/reserved-memory/drm-cubic-lut@00000000"; + rkcif_mipi_lvds2_sditf_vir2 = "/rkcif-mipi-lvds2-sditf-vir2"; + hdptxphy0 = "/phy@fed60000"; + pcie30x1_0_button_rstn = "/pinctrl/pcie30x1/pcie30x1-0-button-rstn"; + u2phy3_host = "/syscon@fd5dc000/usb2-phy@c000/host-port"; + route_dp0 = "/display-subsystem/route/route-dp0"; + hdmim0_rx_scl = "/pinctrl/hdmi/hdmim0-rx-scl"; + hdmim0_rx_sda = "/pinctrl/hdmi/hdmim0-rx-sda"; + uart7m0_rtsn = "/pinctrl/uart7/uart7m0-rtsn"; + pcfg_pull_down_drv_level_10 = "/pinctrl/pcfg-pull-down-drv-level-10"; + usbdrd3_0 = "/usbdrd3_0"; + ddrphych0_pins = "/pinctrl/ddrphych0/ddrphych0-pins"; + bt_irq_gpio = "/pinctrl/wireless-bluetooth/bt-irq-gpio"; + pwm0 = "/pwm@fd8b0000"; + uart2m2_xfer = "/pinctrl/uart2/uart2m2-xfer"; + pdm1m0_sdi0 = "/pinctrl/pdm1/pdm1m0-sdi0"; + hdmim1_tx0_scl = "/pinctrl/hdmi/hdmim1-tx0-scl"; + hdmim1_tx0_sda = "/pinctrl/hdmi/hdmim1-tx0-sda"; + can1 = "/can@fea60000"; + rkvtunnel = "/rkvtunnel"; + pcfg_pull_none_drv_level_5 = "/pinctrl/pcfg-pull-none-drv-level-5"; + rkcif_mipi_lvds3_sditf = "/rkcif-mipi-lvds3-sditf"; + combphy2_psu = "/phy@fee20000"; + vp3 = "/vop@fdd90000/ports/port@3"; + rk806_dvs2_dvs = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs2_dvs"; + mmu600_pcie = "/iommu@fc900000"; + hdmim1_tx0_hpd = "/pinctrl/hdmi/hdmim1-tx0-hpd"; + i2s1m0_lrck = "/pinctrl/i2s1/i2s1m0-lrck"; + cpu_l3 = "/cpus/cpu@300"; + spi0m1_cs1 = "/pinctrl/spi0/spi0m1-cs1"; + vp0_out_hdmi1 = "/vop@fdd90000/ports/port@0/endpoint@5"; + spdif_rx1 = "/spdif-rx@fde10000"; + gmac0_clkinout = "/pinctrl/gmac0/gmac0-clkinout"; + rkcif_dvp = "/rkcif-dvp"; + i2c5m4_xfer = "/pinctrl/i2c5/i2c5m4-xfer"; + wireless_wlan = "/wireless-wlan"; + rkcif_mipi_lvds = "/rkcif-mipi-lvds"; + avdd_0v75_s0 = "/spi@feb20000/rk806single@0/regulators/NLDO_REG3"; + i2c2m3_xfer = "/pinctrl/i2c2/i2c2m3-xfer"; + pcie30x4m3_pins = "/pinctrl/pcie30x4/pcie30x4m3-pins"; + hclk_rkvdec0_pre = "/clocks/hclk_rkvdec0_pre@fd7c08a0"; + route_dsi0 = "/display-subsystem/route/route-dsi0"; + rk806_dvs3_pwrdn = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs3_pwrdn"; + csi2_dphy3 = "/csi2-dphy3"; + pcie30x1m2_pins = "/pinctrl/pcie30x1/pcie30x1m2-pins"; + spi4 = "/spi@fecb0000"; + litcore_grf = "/syscon@fd594000"; + isp0_vir2 = "/rkisp0-vir2/port/endpoint@0"; + i2s1m1_mclk = "/pinctrl/i2s1/i2s1m1-mclk"; + sys_grf = "/syscon@fd58c000"; + edp0_in_vp1 = "/edp@fdec0000/ports/port@0/endpoint@1"; + rkisp_unite_mmu = "/rkisp-unite-mmu@fdcb7f00"; + gpio2 = "/pinctrl/gpio@fec30000"; + spi1m0_cs1 = "/pinctrl/spi1/spi1m0-cs1"; + aclk_av1_pre = "/clocks/aclk_av1_pre@fd7c0910"; + can1m1_pins = "/pinctrl/can1/can1m1-pins"; + rkcif_mipi_lvds1_sditf_vir3 = "/rkcif-mipi-lvds1-sditf-vir3"; + hdmim2_rx_cec = "/pinctrl/hdmi/hdmim2-rx-cec"; + mipi3_csi2_hw = "/mipi3-csi2-hw@fdd40000"; + dp1m1_pins = "/pinctrl/dp1/dp1m1-pins"; + pwm2m2_pins = "/pinctrl/pwm2/pwm2m2-pins"; + pwm15m0_pins = "/pinctrl/pwm15/pwm15m0-pins"; + hclk_vo0 = "/clocks/hclk_vo0@fd7c08dc"; + bigcore0_thermal = "/thermal-zones/bigcore0-thermal"; + hdmim1_rx_scl = "/pinctrl/hdmi/hdmim1-rx-scl"; + hdmim1_rx_sda = "/pinctrl/hdmi/hdmim1-rx-sda"; + uart8m0_rtsn = "/pinctrl/uart8/uart8m0-rtsn"; + pcfg_pull_up_drv_level_4 = "/pinctrl/pcfg-pull-up-drv-level-4"; + mipim1_camera1_clk = "/pinctrl/mipi/mipim1-camera1-clk"; + rkvdec0_sram = "/sram@ff001000/rkvdec-sram@0"; + pcfg_pull_down_drv_level_8 = "/pinctrl/pcfg-pull-down-drv-level-8"; + gmac_uio1 = "/uio@fe1c0000"; + usbc0_orien_sw = "/i2c@fec80000/fusb302@22/connector/ports/port@0/endpoint"; + jpegd = "/jpegd@fdb90000"; + uart3m2_xfer = "/pinctrl/uart3/uart3m2-xfer"; + minidump_smem = "/reserved-memory/minidump-smem@1f0000"; + i2s0_sclk = "/pinctrl/i2s0/i2s0-sclk"; + uart0m1_xfer = "/pinctrl/uart0/uart0m1-xfer"; + rga3_core1 = "/rga@fdb70000"; + i2s1m0_sdo1 = "/pinctrl/i2s1/i2s1m0-sdo1"; + uart1m0_ctsn = "/pinctrl/uart1/uart1m0-ctsn"; + vcc5v0_usb = "/vcc5v0-usb"; + minidump = "/minidump"; + }; + + rkvdec-ccu@fdc30000 { + power-domains = <0x60 0x0e>; + rockchip,ccu-mode = <0x01>; + clock-names = "aclk_ccu"; + reg-names = "ccu"; + assigned-clocks = <0x02 0x18e>; + assigned-clock-rates = <0x23c34600>; + resets = <0x02 0x282>; + clocks = <0x02 0x18e>; + compatible = "rockchip,rkv-decoder-v2-ccu"; + status = "okay"; + rockchip,skip-pmu-idle-request; + reg = <0x00 0xfdc30000 0x00 0x100>; + phandle = <0xca>; + reset-names = "video_ccu"; + }; + + qos@fdf60000 { + compatible = "syscon"; + reg = <0x00 0xfdf60000 0x00 0x20>; + phandle = <0x8d>; + }; + + iommu@fdb50800 { + power-domains = <0x60 0x15>; + clock-names = "aclk\0iface"; + interrupts = <0x00 0x76 0x04>; + clocks = <0x02 0x1c0 0x02 0x1c1>; + #iommu-cells = <0x00>; + compatible = "rockchip,iommu-v2"; + status = "okay"; + interrupt-names = "irq_vdpu_mmu"; + reg = <0x00 0xfdb50800 0x00 0x40>; + phandle = <0xb7>; + }; + + rga@fdb60000 { + power-domains = <0x60 0x16>; + iommus = <0xb9>; + clock-names = "aclk_rga3_0\0hclk_rga3_0\0clk_rga3_0"; + interrupts = <0x00 0x72 0x04>; + clocks = <0x02 0x1ba 0x02 0x1b9 0x02 0x1bb>; + compatible = "rockchip,rga3_core0"; + status = "okay"; + interrupt-names = "rga3_core0_irq"; + reg = <0x00 0xfdb60000 0x00 0x1000>; + phandle = <0x269>; + }; + + qos@fdf67200 { + compatible = "syscon"; + reg = <0x00 0xfdf67200 0x00 0x20>; + phandle = <0x28b>; + }; + + vepu@fdb50000 { + power-domains = <0x60 0x15>; + iommus = <0xb7>; + clock-names = "aclk_vcodec\0hclk_vcodec"; + assigned-clocks = <0x02 0x1c0>; + rockchip,normal-rates = <0x2367b880 0x00>; + assigned-clock-rates = <0x2367b880>; + resets = <0x02 0x2c8 0x02 0x2c9>; + interrupts = <0x00 0x78 0x04>; + clocks = <0x02 0x1c0 0x02 0x1c1>; + rockchip,srv = <0xb8>; + rockchip,taskqueue-node = <0x00>; + rockchip,disable-auto-freq; + compatible = "rockchip,vpu-encoder-v2"; + rockchip,resetgroup-node = <0x00>; + status = "disabled"; + interrupt-names = "irq_vepu"; + rockchip,skip-pmu-idle-request; + reg = <0x00 0xfdb50000 0x00 0x400>; + phandle = <0x266>; + reset-names = "shared_video_a\0shared_video_h"; + }; + + mipi3-csi2 { + rockchip,hw = <0x47 0x48 0x49 0x4a 0x4b 0x4c>; + compatible = "rockchip,rk3588-mipi-csi2"; + status = "disabled"; + phandle = <0x227>; + }; + + hdmi0-sound { + rockchip,jack-det; + rockchip,cpu = <0x1d3>; + rockchip,codec = <0x1d4>; + rockchip,card-name = "rockchip-hdmi0"; + compatible = "rockchip,hdmi"; + status = "okay"; + phandle = <0x49b>; + rockchip,mclk-fs = <0x80>; + }; + + reserved-memory { + #address-cells = <0x02>; + #size-cells = <0x02>; + ranges; + + minidump-smem@1f0000 { + status = "disabled"; + reg = <0x00 0x1f0000 0x00 0x100>; + phandle = <0x1cf>; + no-map; + }; + + minidump-mem@c000000 { + status = "disabled"; + reg = <0x00 0xc000000 0x00 0x2000000>; + phandle = <0x1d0>; + no-map; + }; + + cma { + linux,cma-default; + compatible = "shared-dma-pool"; + size = <0x00 0x800000>; + reg = <0x00 0x10000000 0x00 0x10000000>; + reusable; + }; + + drm-logo@00000000 { + compatible = "rockchip,drm-logo"; + reg = <0x00 0xedf00000 0x00 0x2e0000>; + phandle = <0x37>; + }; + + ramoops@110000 { + boot-log-count = <0x01>; + record-size = <0x14000>; + pmsg-size = <0x30000>; + compatible = "ramoops"; + console-size = <0x80000>; + reg = <0x00 0x110000 0x00 0xe0000>; + phandle = <0x493>; + boot-log-size = <0x8000>; + ftrace-size = <0x00>; + }; + + drm-cubic-lut@00000000 { + compatible = "rockchip,drm-cubic-lut"; + reg = <0x00 0x00 0x00 0x00>; + phandle = <0x492>; + }; + }; + + pcie@fe160000 { + power-domains = <0x60 0x22>; + vpcie3v3-supply = <0x1ba>; + #address-cells = <0x03>; + rockchip,pipe-grf = <0x76>; + phy-names = "pcie-phy"; + bus-range = <0x10 0x1f>; + clock-names = "aclk_mst\0aclk_slv\0aclk_dbi\0pclk\0aux\0pipe"; + reg-names = "pcie-apb\0pcie-dbi"; + num-ob-windows = <0x10>; + resets = <0x02 0x20e 0x02 0x21d>; + interrupts = <0x00 0x102 0x04 0x00 0x101 0x04 0x00 0x100 0x04 0x00 0xff 0x04 0x00 0xfe 0x04>; + clocks = <0x02 0x14f 0x02 0x154 0x02 0x14a 0x02 0x159 0x02 0x15f 0x02 0x184>; + interrupt-map = <0x00 0x00 0x00 0x01 0x1b9 0x00 0x00 0x00 0x00 0x02 0x1b9 0x01 0x00 0x00 0x00 0x03 0x1b9 0x02 0x00 0x00 0x00 0x04 0x1b9 0x03>; + #size-cells = <0x02>; + max-link-speed = <0x03>; + device_type = "pci"; + interrupt-map-mask = <0x00 0x00 0x00 0x07>; + reset-gpios = <0x10d 0x08 0x00>; + num-lanes = <0x02>; + compatible = "rockchip,rk3588-pcie\0snps,dw-pcie"; + ranges = <0x800 0x00 0xf1000000 0x00 0xf1000000 0x00 0x100000 0x81000000 0x00 0xf1100000 0x00 0xf1100000 0x00 0x100000 0x82000000 0x00 0xf1200000 0x00 0xf1200000 0x00 0xe00000 0xc3000000 0x09 0x40000000 0x09 0x40000000 0x00 0x40000000>; + msi-map = <0x1000 0x1b6 0x1000 0x1000>; + #interrupt-cells = <0x01>; + status = "disabled"; + interrupt-names = "sys\0pmc\0msg\0legacy\0err"; + phys = <0x1b7>; + num-viewport = <0x08>; + reg = <0x00 0xfe160000 0x00 0x10000 0x0a 0x40400000 0x00 0x400000>; + linux,pci-domain = <0x01>; + phandle = <0x486>; + reset-names = "pcie\0periph"; + num-ib-windows = <0x10>; + + legacy-interrupt-controller { + #address-cells = <0x00>; + interrupts = <0x00 0xff 0x01>; + interrupt-parent = <0x01>; + #interrupt-cells = <0x01>; + phandle = <0x1b9>; + interrupt-controller; + }; + }; + + spdif-tx@fddb8000 { + power-domains = <0x60 0x19>; + clock-names = "mclk\0hclk"; + assigned-clocks = <0x02 0x20b>; + assigned-clock-parents = <0x02 0x05>; + interrupts = <0x00 0xc6 0x04>; + clocks = <0x02 0x20f 0x02 0x20a>; + dma-names = "tx"; + #sound-dai-cells = <0x00>; + compatible = "rockchip,rk3588-spdif\0rockchip,rk3568-spdif"; + status = "disabled"; + reg = <0x00 0xfddb8000 0x00 0x1000>; + phandle = <0x1e2>; + dmas = <0xf1 0x16>; + }; + + pvtm@fdb30000 { + #address-cells = <0x01>; + #size-cells = <0x00>; + compatible = "rockchip,rk3588-gpu-pvtm"; + reg = <0x00 0xfdb30000 0x00 0x100>; + + pvtm@4 { + clock-names = "clk"; + resets = <0x02 0x430 0x02 0x42f>; + clocks = <0x02 0x118>; + reg = <0x04>; + reset-names = "rts\0rst-p"; + }; + }; + + spdif-tx1-dc { + #sound-dai-cells = <0x00>; + compatible = "linux,spdif-dit"; + status = "disabled"; + phandle = <0x1d8>; + }; + + csi2-dphy0 { + rockchip,hw = <0x2d 0x2e>; + phy-names = "dcphy0\0dcphy1"; + compatible = "rockchip,rk3588-csi2-dphy"; + status = "okay"; + phys = <0x2f 0x30>; + firefly-compatible; + phandle = <0x20f>; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x00>; + + endpoint@1 { + data-lanes = <0x01 0x02 0x03 0x04>; + remote-endpoint = <0x32>; + reg = <0x01>; + phandle = <0x184>; + }; + + endpoint@0 { + data-lanes = <0x01 0x02 0x03 0x04>; + remote-endpoint = <0x31>; + reg = <0x00>; + phandle = <0x183>; + }; + }; + + port@1 { + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x01>; + + endpoint@0 { + remote-endpoint = <0x33>; + reg = <0x00>; + phandle = <0x4d>; + }; + }; + }; + }; + + rkisp-unite@fdcb0000 { + power-domains = <0x60 0x1c>; + iommus = <0xcf>; + clock-names = "aclk_isp0\0hclk_isp0\0clk_isp_core0\0clk_isp_core_marvin0\0clk_isp_core_vicap0\0aclk_isp1\0hclk_isp1\0clk_isp_core1\0clk_isp_core_marvin1\0clk_isp_core_vicap1"; + interrupts = <0x00 0x87 0x04 0x00 0x89 0x04 0x00 0x8a 0x04>; + clocks = <0x02 0x1de 0x02 0x1df 0x02 0x1db 0x02 0x1dc 0x02 0x1dd 0x02 0x120 0x02 0x121 0x02 0x11d 0x02 0x11e 0x02 0x11f>; + compatible = "rockchip,rk3588-rkisp-unite"; + status = "disabled"; + interrupt-names = "isp_irq\0mi_irq\0mipi_irq"; + reg = <0x00 0xfdcb0000 0x00 0x10000 0x00 0xfdcc0000 0x00 0x10000>; + phandle = <0x277>; + }; + + sata@fe230000 { + phy-names = "sata-phy"; + clock-names = "sata\0pmalive\0rxoob\0ref\0asic"; + interrupts = <0x00 0x113 0x04>; + clocks = <0x02 0x173 0x02 0x170 0x02 0x176 0x02 0x165 0x02 0x180>; + compatible = "rockchip,rk-ahci\0snps,dwc-ahci"; + status = "disabled"; + interrupt-names = "hostc"; + phys = <0x70 0x01>; + reg = <0x00 0xfe230000 0x00 0x1000>; + phandle = <0x291>; + ports-implemented = <0x01>; + }; + + syscon@fd5a0000 { + compatible = "rockchip,rk3588-gpu-grf\0syscon"; + reg = <0x00 0xfd5a0000 0x00 0x100>; + phandle = <0x65>; + }; + + bt-sound { + simple-audio-card,name = "rockchip,bt"; + simple-audio-card,format = "dsp_a"; + simple-audio-card,bitclock-inversion = <0x00>; + compatible = "simple-audio-card"; + status = "disabled"; + phandle = <0x49a>; + simple-audio-card,mclk-fs = <0x100>; + + simple-audio-card,cpu { + sound-dai = <0x1d1>; + }; + + simple-audio-card,codec { + sound-dai = <0x1d2 0x01>; + }; + }; + + iommu@fdb90480 { + power-domains = <0x60 0x15>; + clock-names = "aclk\0iface"; + interrupts = <0x00 0x82 0x04>; + clocks = <0x02 0x1b4 0x02 0x1b5>; + #iommu-cells = <0x00>; + compatible = "rockchip,iommu-v2"; + status = "okay"; + interrupt-names = "irq_jpegd_mmu"; + reg = <0x00 0xfdb90480 0x00 0x40>; + phandle = <0xbb>; + }; + + hdcp@fde70000 { + power-domains = <0x60 0x1a>; + clock-names = "aclk\0pclk\0hclk\0hclk_key\0aclk_trng\0pclk_trng"; + resets = <0x02 0x3c8 0x02 0x3c6 0x02 0x3c5 0x02 0x3c4 0x02 0x3ca>; + interrupts = <0x00 0xa0 0x04>; + clocks = <0x02 0x217 0x02 0x219 0x02 0x218 0x02 0x216 0x02 0x228 0x02 0x229>; + compatible = "rockchip,rk3588-hdcp"; + status = "disabled"; + reg = <0x00 0xfde70000 0x00 0x80>; + phandle = <0x287>; + reset-names = "hdcp\0h_hdcp\0a_hdcp\0hdcp_key\0trng"; + rockchip,vo-grf = <0xd8>; + }; + + spdif-tx@fe4f0000 { + power-domains = <0x60 0x26>; + pinctrl-names = "default"; + pinctrl-0 = <0x143>; + clock-names = "mclk\0hclk"; + assigned-clocks = <0x02 0x45>; + assigned-clock-parents = <0x02 0x05>; + interrupts = <0x00 0xc2 0x04>; + clocks = <0x02 0x47 0x02 0x44>; + dma-names = "tx"; + #sound-dai-cells = <0x00>; + compatible = "rockchip,rk3588-spdif\0rockchip,rk3568-spdif"; + status = "disabled"; + reg = <0x00 0xfe4f0000 0x00 0x1000>; + phandle = <0x1d7>; + dmas = <0xf1 0x05>; + }; + + rkcif-mipi-lvds-sditf-vir2 { + compatible = "rockchip,rkcif-sditf"; + status = "disabled"; + rockchip,cif = <0x52>; + phandle = <0x22d>; + }; + + es8388-sound { + pinctrl-names = "default"; + rockchip,cpu = <0x1da>; + pinctrl-0 = <0x1dc>; + rockchip,codec = <0x1db>; + hp-det-gpio = <0x79 0x13 0x00>; + rockchip,card-name = "rockchip-es8388"; + rockchip,format = "i2s"; + rockchip,audio-routing = "Headphone\0LOUT1\0Headphone\0ROUT1\0Speaker\0LOUT2\0Speaker\0ROUT2\0Headphone\0Headphone Power\0Headphone\0Headphone Power\0LINPUT2\0Main Mic\0RINPUT2\0Main Mic\0LINPUT1\0Headset Mic\0RINPUT1\0Headset Mic"; + compatible = "firefly,multicodecs-card"; + linein-type = <0x01>; + status = "okay"; + phandle = <0x49f>; + hp-con-gpio = <0x182 0x0b 0x00>; + firefly,not-use-dapm; + rockchip,mclk-fs = <0x180>; + }; + + spi@feb30000 { + pinctrl-names = "default"; + #address-cells = <0x01>; + num-cs = <0x02>; + pinctrl-0 = <0x15d 0x15e 0x15f>; + clock-names = "spiclk\0apb_pclk"; + interrupts = <0x00 0x149 0x04>; + clocks = <0x02 0xa6 0x02 0xa1>; + #size-cells = <0x00>; + dma-names = "tx\0rx"; + compatible = "rockchip,rk3066-spi"; + status = "disabled"; + reg = <0x00 0xfeb30000 0x00 0x1000>; + phandle = <0x2c8>; + dmas = <0xf1 0x11 0xf1 0x12>; + }; + + phy@fee80000 { + rockchip,pipe-grf = <0x76>; + clock-names = "pclk"; + rockchip,pcie30-phymode = <0x01>; + resets = <0x02 0x2000a>; + clocks = <0x02 0x188>; + #phy-cells = <0x00>; + compatible = "rockchip,rk3588-pcie3-phy"; + status = "okay"; + reg = <0x00 0xfee80000 0x00 0x20000>; + phandle = <0x1b7>; + reset-names = "phy"; + rockchip,phy-grf = <0x1cc>; + }; + + vcc12v-dcin { + regulator-max-microvolt = <0xb71b00>; + regulator-boot-on; + regulator-always-on; + regulator-min-microvolt = <0xb71b00>; + regulator-name = "vcc12v_dcin"; + compatible = "regulator-fixed"; + phandle = <0x1cd>; + }; + + qos@fdf61200 { + compatible = "syscon"; + reg = <0x00 0xfdf61200 0x00 0x20>; + phandle = <0x91>; + }; + + i2s@fde00000 { + power-domains = <0x60 0x1a>; + clock-names = "mclk_tx\0mclk_rx\0hclk"; + assigned-clocks = <0x02 0x234>; + assigned-clock-parents = <0x02 0x05>; + rockchip,capture-only; + resets = <0x02 0x417>; + interrupts = <0x00 0xbe 0x04>; + clocks = <0x02 0x237 0x02 0x237 0x02 0x233>; + dma-names = "rx"; + #sound-dai-cells = <0x00>; + compatible = "rockchip,rk3588-i2s-tdm"; + status = "disabled"; + reg = <0x00 0xfde00000 0x00 0x1000>; + phandle = <0x47e>; + dmas = <0xf2 0x18>; + reset-names = "rx-m"; + }; + + qos@fdf40800 { + compatible = "syscon"; + reg = <0x00 0xfdf40800 0x00 0x20>; + phandle = <0xa5>; + }; + + i2s@fddfc000 { + power-domains = <0x60 0x1a>; + clock-names = "mclk_tx\0mclk_rx\0hclk"; + assigned-clocks = <0x02 0x23f>; + assigned-clock-parents = <0x02 0x05>; + rockchip,capture-only; + resets = <0x02 0x413>; + interrupts = <0x00 0xbd 0x04>; + clocks = <0x02 0x242 0x02 0x242 0x02 0x23e>; + dma-names = "rx"; + #sound-dai-cells = <0x00>; + compatible = "rockchip,rk3588-i2s-tdm"; + status = "disabled"; + reg = <0x00 0xfddfc000 0x00 0x1000>; + phandle = <0x27f>; + dmas = <0xf2 0x17>; + reset-names = "rx-m"; + }; + + usbdrd3_0 { + #address-cells = <0x02>; + clock-names = "ref\0suspend\0bus"; + clocks = <0x02 0x1a3 0x02 0x1a2 0x02 0x1a1>; + #size-cells = <0x02>; + compatible = "rockchip,rk3588-dwc3\0rockchip,rk3399-dwc3"; + ranges; + status = "okay"; + phandle = <0x252>; + + usb@fc000000 { + power-domains = <0x60 0x1f>; + snps,dis-u1-entry-quirk; + snps,dis_enblslpm_quirk; + phy-names = "usb2-phy\0usb3-phy"; + snps,dis-u2-freeclk-exists-quirk; + usb-role-switch; + phy_type = "utmi_wide"; + quirk-skip-phy-init; + resets = <0x02 0x2a4>; + interrupts = <0x00 0xdc 0x04>; + snps,dis-u2-entry-quirk; + compatible = "snps,dwc3"; + snps,parkmode-disable-hs-quirk; + snps,dis-del-phy-power-chg-quirk; + status = "okay"; + snps,parkmode-disable-ss-quirk; + phys = <0x66 0x67>; + reg = <0x00 0xfc000000 0x00 0x400000>; + phandle = <0x253>; + dr_mode = "host"; + reset-names = "usb3-otg"; + snps,dis-tx-ipgap-linecheck-quirk; + + port { + #address-cells = <0x01>; + #size-cells = <0x00>; + + endpoint@0 { + remote-endpoint = <0x68>; + reg = <0x00>; + phandle = <0x17d>; + }; + }; + }; + }; + + rkcif-mipi-lvds5-sditf-vir2 { + compatible = "rockchip,rkcif-sditf"; + status = "disabled"; + rockchip,cif = <0x1a2>; + phandle = <0x478>; + }; + + rkcif-dvp-sditf { + compatible = "rockchip,rkcif-sditf"; + status = "disabled"; + rockchip,cif = <0x51>; + phandle = <0x22a>; + }; + + iommu@fdd97e00 { + rockchip,shootdown-entire; + clock-names = "aclk\0iface"; + interrupts = <0x00 0x9c 0x04>; + clocks = <0x02 0x270 0x02 0x26f>; + #iommu-cells = <0x00>; + compatible = "rockchip,iommu-v2"; + status = "okay"; + interrupt-names = "vop_mmu"; + reg = <0x00 0xfdd97e00 0x00 0x100 0x00 0xfdd97f00 0x00 0x100>; + phandle = <0xd6>; + rockchip,disable-device-link-resume; + }; + + rkvtunnel { + compatible = "rockchip,video-tunnel"; + status = "disabled"; + phandle = <0x245>; + }; + + syscon@fd5e0000 { + compatible = "rockchip,rk3588-hdptxphy-grf\0syscon"; + reg = <0x00 0xfd5e0000 0x00 0x100>; + phandle = <0x18a>; + }; + + i2c@fead0000 { + pinctrl-names = "default"; + #address-cells = <0x01>; + pinctrl-0 = <0x14d>; + clock-names = "i2c\0pclk"; + resets = <0x02 0xb4 0x02 0xac>; + interrupts = <0x00 0x142 0x04>; + clocks = <0x02 0x91 0x02 0x89>; + #size-cells = <0x00>; + compatible = "rockchip,rk3588-i2c\0rockchip,rk3399-i2c"; + status = "disabled"; + reg = <0x00 0xfead0000 0x00 0x1000>; + phandle = <0x2a8>; + reset-names = "i2c\0apb"; + }; + + iommu@fdba4800 { + power-domains = <0x60 0x15>; + clock-names = "aclk\0iface"; + interrupts = <0x00 0x7b 0x04>; + clocks = <0x02 0x1ae 0x02 0x1af>; + #iommu-cells = <0x00>; + compatible = "rockchip,iommu-v2"; + status = "okay"; + interrupt-names = "irq_jpege1_mmu"; + reg = <0x00 0xfdba4800 0x00 0x40>; + phandle = <0xbe>; + }; + + spdif-rx@fde10000 { + power-domains = <0x60 0x1a>; + clock-names = "mclk\0hclk"; + assigned-clocks = <0x02 0x260>; + assigned-clock-parents = <0x02 0x05>; + resets = <0x02 0x3ff>; + interrupts = <0x00 0xc8 0x04>; + clocks = <0x02 0x260 0x02 0x25f>; + dma-names = "rx"; + #sound-dai-cells = <0x00>; + compatible = "rockchip,rk3588-spdifrx\0rockchip,rk3308-spdifrx"; + status = "disabled"; + reg = <0x00 0xfde10000 0x00 0x1000>; + phandle = <0x47f>; + dmas = <0x7c 0x16>; + reset-names = "spdifrx-m"; + }; + + npu@fdab0000 { + power-domains = <0x60 0x09 0x60 0x0a 0x60 0x0b>; + iommus = <0xb2>; + clock-names = "clk_npu\0aclk0\0aclk1\0aclk2\0hclk0\0hclk1\0hclk2\0pclk"; + assigned-clocks = <0x0e 0x06>; + power-domain-names = "npu0\0npu1\0npu2"; + rknpu-supply = <0xb3>; + assigned-clock-rates = <0xbebc200>; + resets = <0x02 0x1e6 0x02 0x1b0 0x02 0x1c0 0x02 0x1e8 0x02 0x1b2 0x02 0x1c2>; + interrupts = <0x00 0x6e 0x04 0x00 0x6f 0x04 0x00 0x70 0x04>; + clocks = <0x0e 0x06 0x02 0x12d 0x02 0x122 0x02 0x124 0x02 0x12e 0x02 0x123 0x02 0x125 0x02 0x131>; + compatible = "rockchip,rk3588-rknpu"; + status = "okay"; + interrupt-names = "npu0_irq\0npu1_irq\0npu2_irq"; + mem-supply = <0xb3>; + reg = <0x00 0xfdab0000 0x00 0x10000 0x00 0xfdac0000 0x00 0x10000 0x00 0xfdad0000 0x00 0x10000>; + phandle = <0x265>; + reset-names = "srst_a0\0srst_a1\0srst_a2\0srst_h0\0srst_h1\0srst_h2"; + operating-points-v2 = <0xb1>; + }; + + hdmiphy@fed60000 { + clock-names = "ref\0apb"; + resets = <0x02 0x48e 0x02 0x485 0x02 0xc003b 0x02 0xc003c 0x02 0xc003d 0x02 0x48c 0x02 0x48d>; + clocks = <0x02 0x2b5 0x02 0x267>; + #phy-cells = <0x00>; + compatible = "rockchip,rk3588-hdptx-phy-hdmi"; + status = "okay"; + rockchip,grf = <0x18a>; + reg = <0x00 0xfed60000 0x00 0x2000>; + phandle = <0xfd>; + reset-names = "phy\0apb\0init\0cmn\0lane\0ropll\0lcpll"; + + clk-port { + #clock-cells = <0x00>; + status = "okay"; + phandle = <0x35>; + }; + }; + + dmc-opp-table { + nvmem-cells = <0x44 0x45 0x21>; + rockchip,low-temp = <0x2710>; + rockchip,leakage-voltage-sel = <0x01 0x1f 0x00 0x20 0x2c 0x01 0x2d 0x39 0x02 0x3a 0xfe 0x03>; + compatible = "operating-points-v2"; + rockchip,low-temp-min-volt = <0xb71b0>; + nvmem-cell-names = "leakage\0opp-info\0specification_serial_number"; + phandle = <0x41>; + rockchip,temp-hysteresis = <0x1388>; + rockchip,supported-hw; + + opp-1560000000 { + opp-microvolt = <0xc3500 0xc3500 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; + opp-microvolt-L2 = <0xb71b0 0xb71b0 0xd59f8 0xadf34 0xadf34 0xb71b0>; + opp-hz = <0x00 0x5cfbb600>; + opp-supported-hw = <0xf9 0xffff>; + opp-microvolt-L3 = <0xb1008 0xb1008 0xd59f8 0xaae60 0xaae60 0xb71b0>; + opp-microvolt-L1 = <0xbd358 0xbd358 0xd59f8 0xb1008 0xb1008 0xb71b0>; + }; + + opp-j-m-1560000000 { + opp-microvolt = <0xc3500 0xc3500 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; + opp-microvolt-L2 = <0xb71b0 0xb71b0 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; + opp-hz = <0x00 0x5cfbb600>; + opp-supported-hw = <0x06 0xffff>; + opp-microvolt-L3 = <0xb71b0 0xb71b0 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; + opp-microvolt-L1 = <0xbd358 0xbd358 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; + }; + + opp-j-m-528000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; + opp-hz = <0x00 0x1f78a400>; + opp-supported-hw = <0x06 0xffff>; + }; + + opp-2750000000 { + opp-microvolt = <0xd59f8 0xd59f8 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; + opp-microvolt-L2 = <0xcc77c 0xcc77c 0xd59f8 0xb1008 0xb1008 0xb71b0>; + opp-hz = <0x00 0xa3e9ab80>; + opp-supported-hw = <0xf9 0xffff>; + opp-microvolt-L3 = <0xc96a8 0xc8320 0xd59f8 0xaae60 0xaae60 0xb71b0>; + opp-microvolt-L1 = <0xcf850 0xcf850 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; + }; + + opp-1068000000 { + opp-microvolt = <0xb1008 0xb1008 0xd59f8 0xb40dc 0xb40dc 0xb71b0>; + opp-microvolt-L2 = <0xa4cb8 0xa4cb8 0xd59f8 0xaae60 0xaae60 0xb71b0>; + opp-hz = <0x00 0x3fa86300>; + opp-supported-hw = <0xf9 0xffff>; + opp-microvolt-L3 = <0xa4cb8 0xa4cb8 0xd59f8 0xa7d8c 0xa7d8c 0xb71b0>; + opp-microvolt-L1 = <0xaae60 0xaae60 0xd59f8 0xadf34 0xadf34 0xb71b0>; + }; + + opp-j-m-2750000000 { + opp-microvolt = <0xd59f8 0xd59f8 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; + opp-microvolt-L2 = <0xcc77c 0xcc77c 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; + opp-hz = <0x00 0xa3e9ab80>; + opp-supported-hw = <0x06 0xffff>; + opp-microvolt-L3 = <0xc96a8 0xc8320 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; + opp-microvolt-L1 = <0xcf850 0xcf850 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; + }; + + opp-528000000 { + opp-microvolt = <0xa4cb8 0xa4cb8 0xd59f8 0xb1008 0xb1008 0xb71b0>; + opp-microvolt-L2 = <0xa4cb8 0xa4cb8 0xd59f8 0xa7d8c 0xa7d8c 0xb71b0>; + opp-hz = <0x00 0x1f78a400>; + opp-supported-hw = <0xf9 0xffff>; + opp-microvolt-L3 = <0xa4cb8 0xa4cb8 0xd59f8 0xa4cb8 0xa4cb8 0xb71b0>; + opp-microvolt-L1 = <0xa4cb8 0xa4cb8 0xd59f8 0xaae60 0xaae60 0xb71b0>; + }; + + opp-j-m-1068000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; + opp-hz = <0x00 0x3fa86300>; + opp-supported-hw = <0x06 0xffff>; + }; + }; + + rkvenc-core@fdbe0000 { + power-domains = <0x60 0x11>; + iommus = <0xc5>; + rockchip,ccu = <0xc3>; + clock-names = "aclk_vcodec\0hclk_vcodec\0clk_core"; + assigned-clocks = <0x02 0x1ca 0x02 0x1cb>; + rockchip,task-capacity = <0x08>; + rockchip,normal-rates = <0x1dcd6500 0x00 0x2faf0800>; + assigned-clock-rates = <0x1dcd6500 0x2faf0800>; + resets = <0x02 0x305 0x02 0x304 0x02 0x306>; + interrupts = <0x00 0x68 0x04>; + clocks = <0x02 0x1ca 0x02 0x1c9 0x02 0x1cb>; + rockchip,srv = <0xb8>; + rockchip,taskqueue-node = <0x07>; + compatible = "rockchip,rkv-encoder-v2-core"; + status = "okay"; + interrupt-names = "irq_rkvenc1"; + rockchip,skip-pmu-idle-request; + reg = <0x00 0xfdbe0000 0x00 0x6000>; + phandle = <0x273>; + reset-names = "video_a\0video_h\0video_core"; + operating-points-v2 = <0xc4>; + }; + + debug@fd104000 { + compatible = "rockchip,debug"; + reg = <0x00 0xfd104000 0x00 0x1000 0x00 0xfd105000 0x00 0x1000 0x00 0xfd106000 0x00 0x1000 0x00 0xfd107000 0x00 0x1000 0x00 0xfd124000 0x00 0x1000 0x00 0xfd125000 0x00 0x1000 0x00 0xfd126000 0x00 0x1000 0x00 0xfd127000 0x00 0x1000>; + phandle = <0x48f>; + }; + + watchdog@feaf0000 { + clock-names = "tclk\0pclk"; + interrupts = <0x00 0x13b 0x04>; + clocks = <0x02 0x6c 0x02 0x6b>; + compatible = "snps,dw-wdt"; + status = "okay"; + reg = <0x00 0xfeaf0000 0x00 0x100>; + phandle = <0x2aa>; + }; + + syscon@fd5d8000 { + #address-cells = <0x01>; + #size-cells = <0x01>; + compatible = "rockchip,rk3588-usb2phy-grf\0syscon\0simple-mfd"; + reg = <0x00 0xfd5d8000 0x00 0x4000>; + phandle = <0x25d>; + + usb2-phy@8000 { + clock-output-names = "usb480m_phy2"; + clock-names = "phyclk"; + resets = <0x02 0xc0049 0x02 0x48a>; + interrupts = <0x00 0x187 0x04>; + clocks = <0x02 0x2b5>; + #clock-cells = <0x00>; + compatible = "rockchip,rk3588-usb2phy"; + status = "okay"; + reg = <0x8000 0x10>; + phandle = <0x69>; + reset-names = "phy\0apb"; + + host-port { + phy-supply = <0x75>; + #phy-cells = <0x00>; + status = "okay"; + phandle = <0x6c>; + }; + }; + }; + + cluster0-opp-table { + rockchip,pvtm-offset = <0x64>; + rockchip,pvtm-sample-time = <0x44c>; + rockchip,dsu-grf = <0x23>; + rockchip,pvtm-hw = <0x06>; + nvmem-cells = <0x1f 0x20 0x21>; + rockchip,low-temp = <0x2710>; + rockchip,pvtm-voltage-sel-hw = <0x00 0x555 0x00 0x556 0x56b 0x01 0x56c 0x581 0x02 0x582 0x597 0x03 0x598 0x5ad 0x04 0x5ae 0x5c3 0x05 0x5c4 0x270f 0x06>; + rockchip,pvtm-thermal-zone = "soc-thermal"; + rockchip,opp-shared-dsu; + rockchip,high-temp-max-freq = <0x188940>; + opp-shared; + rockchip,reboot-freq = <0x159b40>; + rockchip,pvtm-freq = <0x159b40>; + rockchip,pvtm-ref-temp = <0x19>; + low-volt-mem-read-margin = <0x04>; + volt-mem-read-margin = <0xd0bd8 0x01 0xbac48 0x02 0xa4cb8 0x03 0x78d98 0x04>; + compatible = "operating-points-v2"; + rockchip,low-temp-min-volt = <0xb71b0>; + rockchip,grf = <0x22>; + nvmem-cell-names = "leakage\0opp-info\0specification_serial_number"; + rockchip,pvtm-voltage-sel = <0x00 0x582 0x00 0x583 0x59a 0x01 0x59b 0x5b2 0x02 0x5b3 0x5ca 0x03 0x5cb 0x5e2 0x04 0x5e3 0x5fa 0x05 0x5fb 0x270f 0x06>; + phandle = <0x0f>; + rockchip,pvtm-temp-prop = <0xf4 0xf4>; + rockchip,temp-hysteresis = <0x1388>; + rockchip,high-temp = <0x14c08>; + rockchip,pvtm-pvtpll; + rockchip,supported-hw; + intermediate-threshold-freq = <0xf6180>; + rockchip,pvtm-volt = <0xb71b0>; + + opp-1200000000 { + opp-microvolt = <0xadf34 0xadf34 0xe7ef0 0xadf34 0xadf34 0xe7ef0>; + opp-microvolt-L6 = <0xa4cb8 0xa4cb8 0xe7ef0 0xa4cb8 0xa4cb8 0xe7ef0>; + opp-microvolt-L4 = <0xa4cb8 0xa4cb8 0xe7ef0 0xa4cb8 0xa4cb8 0xe7ef0>; + opp-microvolt-L2 = <0xaae60 0xaae60 0xe7ef0 0xaae60 0xaae60 0xe7ef0>; + opp-hz = <0x00 0x47868c00>; + opp-supported-hw = <0xf9 0xffff>; + opp-microvolt-L5 = <0xa4cb8 0xa4cb8 0xe7ef0 0xa4cb8 0xa4cb8 0xe7ef0>; + opp-microvolt-L3 = <0xa7d8c 0xa7d8c 0xe7ef0 0xa7d8c 0xa7d8c 0xe7ef0>; + clock-latency-ns = <0x9c40>; + opp-microvolt-L1 = <0xaae60 0xaae60 0xe7ef0 0xaae60 0xaae60 0xe7ef0>; + }; + + opp-j-m-1416000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + opp-microvolt-L2 = <0xba284 0xba284 0xe7ef0 0xba284 0xba284 0xe7ef0>; + opp-hz = <0x00 0x54667200>; + opp-microvolt-L0 = <0xc042c 0xc042c 0xe7ef0 0xc042c 0xc042c 0xe7ef0>; + opp-supported-hw = <0x06 0xffff>; + opp-suspend; + clock-latency-ns = <0x9c40>; + opp-microvolt-L1 = <0xbd358 0xbd358 0xe7ef0 0xbd358 0xbd358 0xe7ef0>; + }; + + opp-1008000000 { + opp-microvolt = <0xa4cb8 0xa4cb8 0xe7ef0 0xa4cb8 0xa4cb8 0xe7ef0>; + opp-hz = <0x00 0x3c14dc00>; + opp-supported-hw = <0xf9 0xffff>; + clock-latency-ns = <0x9c40>; + }; + + opp-j-m-1704000000 { + opp-microvolt = <0xe4e1c 0xe4e1c 0xe7ef0 0xe4e1c 0xe4e1c 0xe7ef0>; + opp-microvolt-L6 = <0xd2924 0xd2924 0xe7ef0 0xd2924 0xd2924 0xe7ef0>; + opp-microvolt-L4 = <0xd8acc 0xd8acc 0xe7ef0 0xd8acc 0xd8acc 0xe7ef0>; + opp-microvolt-L2 = <0xdec74 0xdec74 0xe7ef0 0xdec74 0xdec74 0xe7ef0>; + opp-hz = <0x00 0x6590fa00>; + opp-supported-hw = <0x06 0xffff>; + opp-microvolt-L5 = <0xd59f8 0xd59f8 0xe7ef0 0xd59f8 0xd59f8 0xe7ef0>; + opp-microvolt-L3 = <0xdbba0 0xdbba0 0xe7ef0 0xdbba0 0xdbba0 0xe7ef0>; + clock-latency-ns = <0x9c40>; + opp-microvolt-L1 = <0xe1d48 0xe1d48 0xe7ef0 0xe1d48 0xe1d48 0xe7ef0>; + }; + + opp-j-m-1200000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + opp-hz = <0x00 0x47868c00>; + opp-supported-hw = <0x06 0xffff>; + clock-latency-ns = <0x9c40>; + }; + + opp-j-m-1008000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + opp-hz = <0x00 0x3c14dc00>; + opp-supported-hw = <0x06 0xffff>; + clock-latency-ns = <0x9c40>; + }; + + opp-j-m-816000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + opp-hz = <0x00 0x30a32c00>; + opp-supported-hw = <0x06 0xffff>; + clock-latency-ns = <0x9c40>; + }; + + opp-1800000000 { + opp-microvolt = <0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0>; + opp-microvolt-L6 = <0xd59f8 0xd59f8 0xe7ef0 0xd59f8 0xd59f8 0xe7ef0>; + opp-microvolt-L4 = <0xdbba0 0xdbba0 0xe7ef0 0xdbba0 0xdbba0 0xe7ef0>; + opp-microvolt-L2 = <0xe1d48 0xe1d48 0xe7ef0 0xe1d48 0xe1d48 0xe7ef0>; + opp-hz = <0x00 0x6b49d200>; + opp-supported-hw = <0xf9 0xffff>; + opp-microvolt-L5 = <0xd8acc 0xd8acc 0xe7ef0 0xd8acc 0xd8acc 0xe7ef0>; + opp-microvolt-L3 = <0xdec74 0xdec74 0xe7ef0 0xdec74 0xdec74 0xe7ef0>; + clock-latency-ns = <0x9c40>; + opp-microvolt-L1 = <0xe4e1c 0xe4e1c 0xe7ef0 0xe4e1c 0xe4e1c 0xe7ef0>; + }; + + opp-j-m-600000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + opp-hz = <0x00 0x23c34600>; + opp-supported-hw = <0x06 0xffff>; + clock-latency-ns = <0x9c40>; + }; + + opp-1608000000 { + opp-microvolt = <0xcf850 0xcf850 0xe7ef0 0xcf850 0xcf850 0xe7ef0>; + opp-microvolt-L6 = <0xc042c 0xc042c 0xe7ef0 0xc042c 0xc042c 0xe7ef0>; + opp-microvolt-L4 = <0xc3500 0xc3500 0xe7ef0 0xc3500 0xc3500 0xe7ef0>; + opp-microvolt-L2 = <0xc96a8 0xc96a8 0xe7ef0 0xc96a8 0xc96a8 0xe7ef0>; + opp-hz = <0x00 0x5fd82200>; + opp-supported-hw = <0xf9 0xffff>; + opp-microvolt-L5 = <0xc3500 0xc3500 0xe7ef0 0xc3500 0xc3500 0xe7ef0>; + opp-microvolt-L3 = <0xc65d4 0xc65d4 0xe7ef0 0xc65d4 0xc65d4 0xe7ef0>; + clock-latency-ns = <0x9c40>; + opp-microvolt-L1 = <0xcc77c 0xcc77c 0xe7ef0 0xcc77c 0xcc77c 0xe7ef0>; + }; + + opp-j-1296000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + opp-hz = <0x00 0x4d3f6400>; + opp-microvolt-L0 = <0xbd358 0xbd358 0xe7ef0 0xbd358 0xbd358 0xe7ef0>; + opp-supported-hw = <0x04 0xffff>; + clock-latency-ns = <0x9c40>; + opp-microvolt-L1 = <0xba284 0xba284 0xe7ef0 0xba284 0xba284 0xe7ef0>; + }; + + opp-j-m-408000000 { + opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + opp-hz = <0x00 0x18519600>; + opp-supported-hw = <0x06 0xffff>; + clock-latency-ns = <0x9c40>; + }; + + opp-816000000 { + opp-microvolt = <0xa4cb8 0xa4cb8 0xe7ef0 0xa4cb8 0xa4cb8 0xe7ef0>; + opp-hz = <0x00 0x30a32c00>; + opp-supported-hw = <0xf9 0xffff>; + clock-latency-ns = <0x9c40>; + }; + + opp-j-m-1608000000 { + opp-microvolt = <0xd8acc 0xd8acc 0xe7ef0 0xd8acc 0xd8acc 0xe7ef0>; + opp-microvolt-L6 = <0xc65d4 0xc65d4 0xe7ef0 0xc65d4 0xc65d4 0xe7ef0>; + opp-microvolt-L4 = <0xcc77c 0xcc77c 0xe7ef0 0xcc77c 0xcc77c 0xe7ef0>; + opp-microvolt-L2 = <0xd2924 0xd2924 0xe7ef0 0xd2924 0xd2924 0xe7ef0>; + opp-hz = <0x00 0x5fd82200>; + opp-supported-hw = <0x06 0xffff>; + opp-microvolt-L5 = <0xc96a8 0xc96a8 0xe7ef0 0xc96a8 0xc96a8 0xe7ef0>; + opp-microvolt-L3 = <0xcf850 0xcf850 0xe7ef0 0xcf850 0xcf850 0xe7ef0>; + clock-latency-ns = <0x9c40>; + opp-microvolt-L1 = <0xd59f8 0xd59f8 0xe7ef0 0xd59f8 0xd59f8 0xe7ef0>; + }; + + opp-600000000 { + opp-microvolt = <0xa4cb8 0xa4cb8 0xe7ef0 0xa4cb8 0xa4cb8 0xe7ef0>; + opp-hz = <0x00 0x23c34600>; + opp-supported-hw = <0xf9 0xffff>; + clock-latency-ns = <0x9c40>; + }; + + opp-1416000000 { + opp-microvolt = <0xba284 0xba284 0xe7ef0 0xba284 0xba284 0xe7ef0>; + opp-microvolt-L6 = <0xadf34 0xadf34 0xe7ef0 0xadf34 0xadf34 0xe7ef0>; + opp-microvolt-L4 = <0xb1008 0xb1008 0xe7ef0 0xb1008 0xb1008 0xe7ef0>; + opp-microvolt-L2 = <0xb40dc 0xb40dc 0xe7ef0 0xb40dc 0xb40dc 0xe7ef0>; + opp-hz = <0x00 0x54667200>; + opp-supported-hw = <0xf9 0xffff>; + opp-microvolt-L5 = <0xadf34 0xadf34 0xe7ef0 0xadf34 0xadf34 0xe7ef0>; + opp-suspend; + opp-microvolt-L3 = <0xb1008 0xb1008 0xe7ef0 0xb1008 0xb1008 0xe7ef0>; + clock-latency-ns = <0x9c40>; + opp-microvolt-L1 = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + }; + + opp-408000000 { + opp-microvolt = <0xa4cb8 0xa4cb8 0xe7ef0 0xa4cb8 0xa4cb8 0xe7ef0>; + opp-hz = <0x00 0x18519600>; + opp-supported-hw = <0xf9 0xffff>; + clock-latency-ns = <0x9c40>; + }; + }; + + vcc-4g-regulator { + regulator-boot-on; + gpio = <0x182 0x00 0x00>; + regulator-always-on; + enable-active-high; + regulator-name = "vcc_4g"; + compatible = "regulator-fixed"; + status = "okay"; + phandle = <0x4b0>; + }; + + spi@fecb0000 { + pinctrl-names = "default"; + #address-cells = <0x01>; + num-cs = <0x02>; + pinctrl-0 = <0x187 0x188 0x189>; + clock-names = "spiclk\0apb_pclk"; + interrupts = <0x00 0x14a 0x04>; + clocks = <0x02 0xa7 0x02 0xa2>; + #size-cells = <0x00>; + dma-names = "tx\0rx"; + compatible = "rockchip,rk3066-spi"; + status = "disabled"; + reg = <0x00 0xfecb0000 0x00 0x1000>; + phandle = <0x2e6>; + dmas = <0xf2 0x0d 0xf2 0x0e>; + }; + + spdif-rx@fde08000 { + power-domains = <0x60 0x1a>; + clock-names = "mclk\0hclk"; + assigned-clocks = <0x02 0x25e>; + assigned-clock-parents = <0x02 0x05>; + resets = <0x02 0x3fd>; + interrupts = <0x00 0xc7 0x04>; + clocks = <0x02 0x25e 0x02 0x25d>; + dma-names = "rx"; + #sound-dai-cells = <0x00>; + compatible = "rockchip,rk3588-spdifrx\0rockchip,rk3308-spdifrx"; + status = "disabled"; + reg = <0x00 0xfde08000 0x00 0x1000>; + phandle = <0x280>; + dmas = <0x7c 0x15>; + reset-names = "spdifrx-m"; + }; + + mipi3-csi2-hw@fdd40000 { + clock-names = "pclk_csi2host"; + reg-names = "csihost_regs"; + resets = <0x02 0x327>; + interrupts = <0x00 0x95 0x04 0x00 0x96 0x04>; + clocks = <0x02 0x1d2>; + compatible = "rockchip,rk3588-mipi-csi2-hw"; + status = "okay"; + interrupt-names = "csi-intr1\0csi-intr2"; + reg = <0x00 0xfdd40000 0x00 0x10000>; + phandle = <0x4a>; + reset-names = "srst_csihost_p"; + }; + + // DTB memory region: { address: 0x100000000, size: 0x100000000 } 4G + memory { + device_type = "memory"; + reg = <0x01 0x00000000 0x01 0x00000000>; + }; + + jpege-core@fdba4000 { + power-domains = <0x60 0x15>; + iommus = <0xbe>; + rockchip,ccu = <0xbd>; + clock-names = "aclk_vcodec\0hclk_vcodec"; + assigned-clocks = <0x02 0x1ae>; + rockchip,normal-rates = <0x2367b880 0x00>; + assigned-clock-rates = <0x2367b880>; + resets = <0x02 0x2cc 0x02 0x2cd>; + interrupts = <0x00 0x7c 0x04>; + clocks = <0x02 0x1ae 0x02 0x1af>; + rockchip,srv = <0xb8>; + rockchip,taskqueue-node = <0x02>; + rockchip,disable-auto-freq; + compatible = "rockchip,vpu-jpege-core"; + status = "okay"; + interrupt-names = "irq_jpege1"; + rockchip,skip-pmu-idle-request; + reg = <0x00 0xfdba4000 0x00 0x400>; + phandle = <0x26e>; + reset-names = "video_a\0video_h"; + }; + + wireless-wlan { + pinctrl-names = "default"; + pinctrl-0 = <0x1ea>; + WIFI,host_wake_irq = <0x182 0x0a 0x00>; + wifi_chip_type = "rtl8822ce"; + compatible = "wlan-platdata"; + status = "okay"; + phandle = <0x4ab>; + }; + + rkcif-mipi-lvds4-sditf-vir3 { + compatible = "rockchip,rkcif-sditf"; + status = "disabled"; + rockchip,cif = <0x1a1>; + phandle = <0x475>; + }; + + dp@fde50000 { + power-domains = <0x60 0x19>; + clock-names = "apb\0aux\0i2s\0spdif\0hclk\0hdcp"; + assigned-clocks = <0x02 0x2cc>; + assigned-clock-rates = <0xf42400>; + resets = <0x02 0x388>; + interrupts = <0x00 0xa1 0x04>; + clocks = <0x02 0x1e6 0x02 0x2cc 0x02 0x1fb 0x02 0x207 0x04 0x02 0x1ea>; + #sound-dai-cells = <0x01>; + compatible = "rockchip,rk3588-dp"; + status = "disabled"; + phys = <0xf6>; + reg = <0x00 0xfde50000 0x00 0x4000>; + phandle = <0x1d6>; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x00>; + + endpoint@1 { + remote-endpoint = <0x38>; + status = "disabled"; + reg = <0x01>; + phandle = <0xe0>; + }; + + endpoint@2 { + remote-endpoint = <0xf8>; + status = "disabled"; + reg = <0x02>; + phandle = <0xe6>; + }; + + endpoint@0 { + remote-endpoint = <0xf7>; + status = "disabled"; + reg = <0x00>; + phandle = <0xda>; + }; + }; + + port@1 { + reg = <0x01>; + + endpoint { + phandle = <0x286>; + }; + }; + }; + }; + + rockchip-system-monitor { + rockchip,thermal-zone = "soc-thermal"; + compatible = "rockchip,system-monitor"; + phandle = <0x247>; + }; + + vcc3v3-pcie30 { + regulator-max-microvolt = <0x325aa0>; + enable-active-high; + regulator-min-microvolt = <0x325aa0>; + regulator-name = "vcc3v3_pcie30"; + startup-delay-us = <0x1388>; + compatible = "regulator-fixed"; + status = "okay"; + phandle = <0x1b8>; + vin-supply = <0x1cd>; + gpios = <0x182 0x04 0x00>; + }; + + phy@fedb0000 { + clock-names = "pclk\0ref"; + resets = <0x02 0xc0045 0x02 0x43 0x02 0x44 0x02 0xc0046>; + clocks = <0x02 0x109 0x02 0x2b6>; + #phy-cells = <0x00>; + compatible = "rockchip,rk3588-mipi-dcphy"; + status = "okay"; + rockchip,grf = <0x191>; + reg = <0x00 0xfedb0000 0x00 0x10000>; + phandle = <0x30>; + reset-names = "m_phy\0apb\0grf\0s_phy"; + }; + + rkvdec-core@fdc38000 { + power-domains = <0x60 0x0e>; + iommus = <0xc9>; + rockchip,ccu = <0xca>; + clock-names = "aclk_vcodec\0hclk_vcodec\0clk_core\0clk_cabac\0clk_hevc_cabac"; + reg-names = "regs\0link"; + assigned-clocks = <0x02 0x190 0x02 0x193 0x02 0x191 0x02 0x192>; + rockchip,core-mask = <0x10001>; + rockchip,task-capacity = <0x10>; + rockchip,normal-rates = <0x2faf0800 0x00 0x23c34600 0x23c34600 0x3b9aca00>; + assigned-clock-rates = <0x2faf0800 0x23c34600 0x23c34600 0x3b9aca00>; + resets = <0x02 0x284 0x02 0x283 0x02 0x289 0x02 0x287 0x02 0x288>; + interrupts = <0x00 0x5f 0x04>; + rockchip,rcb-info = <0x88 0x6000 0x89 0xc000 0x8d 0x16000 0x8c 0xc000 0x8b 0x2c000 0x85 0xc000 0x86 0x2000 0x87 0x1100 0x8a 0x3300 0x8e 0x47300>; + clocks = <0x02 0x190 0x02 0x18f 0x02 0x193 0x02 0x191 0x02 0x192>; + rockchip,rcb-min-width = <0x200>; + rockchip,srv = <0xb8>; + rockchip,taskqueue-node = <0x09>; + compatible = "rockchip,rkv-decoder-v2"; + status = "okay"; + interrupt-names = "irq_rkvdec0"; + rockchip,skip-pmu-idle-request; + rockchip,rcb-iova = <0xfff00000 0x100000>; + reg = <0x00 0xfdc38100 0x00 0x400 0x00 0xfdc38000 0x00 0x100>; + phandle = <0x274>; + reset-names = "video_a\0video_h\0video_core\0video_cabac\0video_hevc_cabac"; + rockchip,sram = <0xcb>; + }; + + minidump { + smem-region = <0x1cf>; + minidump-region = <0x1d0>; + compatible = "rockchip,minidump"; + status = "disabled"; + phandle = <0x491>; + }; +}; diff --git a/configs/vms/arceos-rk3588-aarch64-vm2.toml b/configs/vms/arceos-rk3588-aarch64-vm2.toml new file mode 100644 index 00000000..92a96b70 --- /dev/null +++ b/configs/vms/arceos-rk3588-aarch64-vm2.toml @@ -0,0 +1,50 @@ +# Vm base info configs +# +[base] +# Guest vm id. +id = 2 +# Guest vm name. +name = "arceos" +# Virtualization type. +vm_type = 1 +# The number of virtual CPUs. +cpu_num = 1 +# Guest vm physical cpu sets. +phys_cpu_sets = [2] + +# +# Vm kernel configs +# +[kernel] +# The entry point of the kernel image. +entry_point = 0x1_0048_0000 +# The load address of the kernel image. +kernel_load_addr = 0x1_0048_0000 +# The location of image: "memory" | "fs". +# Load from memory +image_location = "memory" +# The file path of the kernel image. +kernel_path = "helloworld_aarch64-rk3588j.bin" +## The file path of the device tree blob (DTB). +# dtb_path = "" +# Memory regions with format (`base_paddr`, `size`, `flags`, `map_type`). +# For `map_type`, 0 means `MAP_ALLOC`, 1 means `MAP_IDENTICAL`. +memory_regions = [ + [0x1_0000_0000, 0x1000_0000, 0x7, 1], # ram 256M MAP_IDENTICAL + # [0x940_0000, 0xe6c0_0000, 0x7, 1], # ram 256M MAP_IDENTICAL +] + +# +# Device specifications +# +[devices] +# Emu_devices. +# Name Base-Ipa Ipa_len Alloc-Irq Emu-Type EmuConfig. +emu_devices = [] + +# Pass-through devices. +# Name Base-Ipa Base-Pa Length Alloc-Irq. +passthrough_devices = [ + ["uart@feb40000", 0xfeb4_0000, 0xfeb4_0000, 0x1000, 0x1], + ["uart@feb50000", 0xfeb5_0000, 0xfeb4_0000, 0x1000, 0x1], +] diff --git a/configs/vms/linux-rk3588-aarch64-smp-vm1.toml b/configs/vms/linux-rk3588-aarch64-smp-vm1.toml new file mode 100644 index 00000000..c60ecabb --- /dev/null +++ b/configs/vms/linux-rk3588-aarch64-smp-vm1.toml @@ -0,0 +1,72 @@ +# Vm base info configs +# +[base] +# Guest vm id. +id = 1 +# Guest vm name. +name = "linux" +# Virtualization type. +vm_type = 1 +# The number of virtual CPUs. +cpu_num = 4 +# Guest vm physical cpu sets. +# phys_cpu_sets = [1, 2, 4, 8, 16, 32, 64, 128] +phys_cpu_ids = [0x00, 0x100, 0x200, 0x300] +phys_cpu_sets = [1, 2, 4, 8] + +# +# Vm kernel configs +# +[kernel] +# The entry point of the kernel image. +entry_point = 0x1020_0000 +# The load address of the kernel image. +kernel_load_addr = 0x1020_0000 +# The load address of the device tree blob (DTB). +dtb_load_addr = 0x1000_0000 +# The load address of the ramdisk image. +ramdisk_load_addr = 0x0a20_0000 +# The location of image: "memory" | "fs". +# load from memory +image_location = "memory" +# The file path of the kernel image. +kernel_path = "Image.bin" +# The file path of the device tree blob (DTB). +dtb_path = "aio-rk3588-jd4-vm1.dtb" +# The file path of the ramdisk image. +ramdisk_path = "ramdisk.img" + + +# load from file system. +# image_location = "fs". +## The file path of the kernel image. +# kernel_path = "linux-arceos-aarch64.bin" +## The file path of the device tree blob (DTB). +# dtb_path = "linux-rk3588.dtb" + +## The file path of the ramdisk image. +# ramdisk_path = "" +## The load address of the ramdisk image. +# ramdisk_load_addr = 0 +## The path of the disk image. +# disk_path = "disk.img" + +# Memory regions with format (`base_paddr`, `size`, `flags`, `map_type`). +# For `map_type`, 0 means `MAP_ALLOC`, 1 means `MAP_IDENTICAL`. +memory_regions = [ + # [0x0, 0x10_f000, 0x7, 1], # passthrough uncahed MAP_IDENTICAL + # [0x940_0000, 0xe6c00000, 0x7, 1], # ram 3G MAP_IDENTICAL + # [0x4000_0000, 0x4000_0000, 0x7, 1], # ram 1G MAP_IDENTICAL +] + +# +# Device specifications +# +[devices] +# Emu_devices. +# Name Base-Ipa Ipa_len Alloc-Irq Emu-Type EmuConfig. +emu_devices = [] + +# Pass-through devices. +# Name Base-Ipa Base-Pa Length Alloc-Irq. +passthrough_devices = [] From e6672fbbfb799db432df976c689a31642fc2c19e Mon Sep 17 00:00:00 2001 From: Gallium70 <52118815+Gallium70@users.noreply.github.com> Date: Mon, 9 Jun 2025 16:13:09 +0800 Subject: [PATCH 033/219] Remove absolute path in config and readme --- Boot-on-qemu.md | 8 +++++++- configs/vms/arceos-aarch64.toml | 4 ++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/Boot-on-qemu.md b/Boot-on-qemu.md index b2a5ecab..a16276fb 100644 --- a/Boot-on-qemu.md +++ b/Boot-on-qemu.md @@ -9,9 +9,15 @@ cd crates/arm_vcpu && git checkout 4_level_paging cd crates/axaddrspace && git checkout 4_level_paging ``` +* build dtb ```bash -make ARCH=aarch64 LOG=debug VM_CONFIGS=configs/vms/linux-qemu-aarch64.toml:configs/vms/arceos-aarch64.toml GICV3=y NET=y SMP=2 run DISK_IMG=/home/hky/workspace/Linux/ubuntu-22.04-rootfs_ext4.img SECOND_SERIAL=y +dtc -o configs/vms/qemu_gicv3.dtb -O dtb -I dts configs/vms/qemu_gicv3.dts +``` + +```bash +make ARCH=aarch64 PLATFORM=configs/platforms/aarch64-qemu-virt-hv.toml defconfig +make ARCH=aarch64 PLATFORM=configs/platforms/aarch64-qemu-virt-hv.toml LOG=debug VM_CONFIGS=configs/vms/linux-qemu-aarch64.toml:configs/vms/arceos-aarch64.toml GICV3=y NET=y SMP=2 run DISK_IMG=configs/vms/ubuntu-22.04-rootfs_ext4.img SECOND_SERIAL=y telnet localhost 4321 ``` \ No newline at end of file diff --git a/configs/vms/arceos-aarch64.toml b/configs/vms/arceos-aarch64.toml index 47271868..c00ca0a2 100644 --- a/configs/vms/arceos-aarch64.toml +++ b/configs/vms/arceos-aarch64.toml @@ -22,7 +22,7 @@ entry_point = 0x4020_0000 # Load from file system. image_location = "memory" # The file path of the kernel image. -kernel_path = "/home/hky/workspace/arceos/axvisor/crates/arceos/examples/helloworld/helloworld_aarch64-qemu-virt_1.bin" +kernel_path = "helloworld_aarch64-qemu-virt_1.bin" # The load address of the kernel image. kernel_load_addr = 0x4020_0000 ## Load from memory @@ -53,7 +53,7 @@ passthrough_devices = [ ["pl011@9040000", 0x904_0000, 0x904_0000, 0x1000, 0x1], ["pl031@9010000", 0x901_0000, 0x901_0000, 0x1000, 0x1], ["pl061@9030000", 0x903_0000, 0x903_0000, 0x1000, 0x1], - # a003000.virtio_mmio virtio_mmio@a003000 + # a003000.virtio_mmio virtio_mmio@a003000 # a003200.virtio_mmio virtio_mmio@a003200 ["virtio_mmio", 0xa00_0000, 0xa00_0000, 0x4000, 0x1], ] \ No newline at end of file From 6b6c98163b7c78eaffdd71337a6dc9609c42d8c3 Mon Sep 17 00:00:00 2001 From: hky1999 <976929993@qq.com> Date: Mon, 9 Jun 2025 23:37:39 +0800 Subject: [PATCH 034/219] [wip] introduce ivc channel with publisher subscriber model --- Cargo.lock | 11 ++++ Cargo.toml | 6 +- configs/vms/linux-qemu-aarch64.toml | 2 +- scripts/make/rk3588.mk | 2 +- src/vmm/hvc.rs | 42 ++++++++++++++ src/vmm/ivc.rs | 88 +++++++++++++++++++++++++++++ src/vmm/mod.rs | 2 + src/vmm/vcpus.rs | 17 ++++++ tool/dev_env.py | 1 + 9 files changed, 167 insertions(+), 4 deletions(-) create mode 100644 src/vmm/hvc.rs create mode 100644 src/vmm/ivc.rs diff --git a/Cargo.lock b/Cargo.lock index 923238f8..59637ce4 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -149,6 +149,7 @@ dependencies = [ [[package]] name = "arm_gicv2" version = "0.1.0" +source = "git+https://github.com/arceos-hypervisor/arm_gicv2#eee14941d490719f6689e82f9a87caea6767bdc3" dependencies = [ "tock-registers 0.8.1", ] @@ -437,6 +438,15 @@ dependencies = [ "x86_64 0.15.2", ] +[[package]] +name = "axhvc" +version = "0.1.0" +dependencies = [ + "axerrno", + "bit_field", + "numeric-enum-macro", +] + [[package]] name = "axio" version = "0.1.1" @@ -553,6 +563,7 @@ dependencies = [ "axaddrspace", "axconfig 0.1.0 (git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm)", "axerrno", + "axhvc", "axstd", "axvcpu", "axvm", diff --git a/Cargo.toml b/Cargo.toml index 40063f26..faa50ae8 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -36,6 +36,7 @@ axstd = { git = "https://github.com/arceos-hypervisor/arceos.git", branch = "vmm axvm = { git = "https://github.com/arceos-hypervisor/axvm.git" } axvcpu = { git = "https://github.com/arceos-hypervisor/axvcpu.git" } axaddrspace = { git = "https://github.com/arceos-hypervisor/axaddrspace.git" } +axhvc = { git = "https://github.com/arceos-hypervisor/axhvc.git" } # System independent crates provided by ArceOS, these crates could be imported by remote url. crate_interface = "0.1" @@ -73,8 +74,9 @@ path = "crates/axdevice" path = "crates/arm_vgic" [patch."https://github.com/arceos-hypervisor/axdevice_crates.git".axdevice_base] path = "crates/axdevice_crates/axdevice_base" -[patch."https://github.com/arceos-hypervisor/arm_gicv2.git".arm_gicv2] -path = "crates/arm_gicv2" +[patch."https://github.com/arceos-hypervisor/axhvc.git".axhvc] +path = "crates/axhvc" + [patch.crates-io] page_table_multiarch = {path = "crates/page_table_multiarch/page_table_multiarch"} page_table_entry = {path = "crates/page_table_multiarch/page_table_entry"} \ No newline at end of file diff --git a/configs/vms/linux-qemu-aarch64.toml b/configs/vms/linux-qemu-aarch64.toml index 9ad71adb..dbcb8121 100644 --- a/configs/vms/linux-qemu-aarch64.toml +++ b/configs/vms/linux-qemu-aarch64.toml @@ -22,7 +22,7 @@ entry_point = 0x8008_0000 # load from memory. image_location = "memory" # The file path of the kernel image. -kernel_path = "linux-6.6.62.bin" +kernel_path = "linux-5.10.198.bin" # The load address of the kernel image. kernel_load_addr = 0x8008_0000 # The file path of the device tree blob (DTB). diff --git a/scripts/make/rk3588.mk b/scripts/make/rk3588.mk index 34f534fc..ecd40280 100644 --- a/scripts/make/rk3588.mk +++ b/scripts/make/rk3588.mk @@ -22,6 +22,6 @@ define upload_image @echo "You can now boot the image using the RK3588 board." @echo "Coping this command to uboot console:" @echo "" - @echo 'setenv serverip 192.168.50.97;setenv ipaddr 192.168.50.8;tftp 0x00480000 192.168.50.97:axvisor;tftp 0x10000000 192.168.50.97:rk3588_dtb.bin;bootm 0x00480000 - 0x10000000;' + @echo 'setenv serverip 192.168.50.138;setenv ipaddr 192.168.50.8;tftp 0x00480000 192.168.50.138:axvisor;tftp 0x10000000 192.168.50.138:rk3588_dtb.bin;bootm 0x00480000 - 0x10000000;' @echo "" endef \ No newline at end of file diff --git a/src/vmm/hvc.rs b/src/vmm/hvc.rs new file mode 100644 index 00000000..568c1793 --- /dev/null +++ b/src/vmm/hvc.rs @@ -0,0 +1,42 @@ +use axerrno::{AxResult, ax_err, ax_err_type}; +use axhvc::{HyperCallCode, HyperCallResult}; + +use crate::vmm::{VCpuRef, VMRef}; + +pub struct HyperCall { + vcpu: VCpuRef, + vm: VMRef, + code: HyperCallCode, + args: [u64; 6], +} + +impl HyperCall { + pub fn new(vcpu: VCpuRef, vm: VMRef, code: u64, args: [u64; 6]) -> AxResult { + let code = HyperCallCode::try_from(code as u32).map_err(|e| { + warn!("Invalid hypercall code: {} e {:?}", code, e); + ax_err_type!(InvalidInput) + })?; + + Ok(Self { + vcpu, + vm, + code, + args, + }) + } + + pub fn execute(&self) -> HyperCallResult { + match self.code { + HyperCallCode::HIVC_ALLOC_MEM => { + info!("VM[{}] HyperCall HIVC_ALLOC_MEM", self.vm.id()); + self.vm.map_region(gpa, hpa, size, flags); + + Ok(0) + } + _ => { + warn!("Unsupported hypercall code: {:?}", self.code); + return ax_err!(Unsupported); + } + } + } +} diff --git a/src/vmm/ivc.rs b/src/vmm/ivc.rs new file mode 100644 index 00000000..064392e9 --- /dev/null +++ b/src/vmm/ivc.rs @@ -0,0 +1,88 @@ +//! Inter-VM communication (IVC) module. +use alloc::vec::Vec; + +use axaddrspace::HostPhysAddr; +use axerrno::AxResult; +use page_table_multiarch::PagingHandler; + +pub struct IVCChannel { + publisher_vm_id: usize, + subscriber_vms: Vec, + shared_region_base: HostPhysAddr, + shared_region_size: usize, + _phatom: core::marker::PhantomData, +} + +impl core::fmt::Debug for IVCChannel { + fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { + write!( + f, + "IVCChannel(publisher[{}], subscribers {:?}, base: {:?}, size: {:#x})", + self.publisher_vm_id, + self.subscriber_vms, + self.shared_region_base, + self.shared_region_size + ) + } +} + +impl Drop for IVCChannel { + fn drop(&mut self) { + // Free the shared region frame when the channel is dropped. + debug!( + "Dropping IVCChannel for VM[{}], shared region base: {:?}", + self.publisher_vm_id, self.shared_region_base + ); + H::dealloc_frame(self.shared_region_base); + } +} + +impl IVCChannel { + pub fn alloc(published_vm_id: usize, shared_region_size: usize) -> AxResult { + // TODO: support larger shared region sizes with alloc_frames API. + let shared_region_size = shared_region_size.min(4096); + let shared_region_base = H::alloc_frame().ok_or_else(|| { + axerrno::ax_err_type!(NoMemory, "Failed to allocate shared region frame") + })?; + + Ok(Self { + publisher_vm_id: published_vm_id, + subscriber_vms: Vec::new(), + shared_region_base, + shared_region_size, + _phatom: core::marker::PhantomData, + }) + } + + pub fn base_hpa(&self) -> HostPhysAddr { + self.shared_region_base + } + + pub fn size(&self) -> usize { + self.shared_region_size + } + + pub fn publisher_vm_id(&self) -> usize { + self.publisher_vm_id + } + + pub fn add_subscriber(&mut self, subscriber_vm_id: usize) { + if !self.subscriber_vms.contains(&subscriber_vm_id) { + self.subscriber_vms.push(subscriber_vm_id); + } + } + + pub fn remove_subscriber(&mut self, subscriber_vm_id: usize) { + if let Some(pos) = self + .subscriber_vms + .iter() + .position(|&id| id == subscriber_vm_id) + { + self.subscriber_vms.remove(pos); + } + } + + pub fn subscribers(&self) -> &[usize] { + &self.subscriber_vms + } +} diff --git a/src/vmm/mod.rs b/src/vmm/mod.rs index 0e9ab075..7840f43c 100644 --- a/src/vmm/mod.rs +++ b/src/vmm/mod.rs @@ -4,6 +4,8 @@ mod images; mod timer; mod vcpus; mod vm_list; +mod hvc; +mod ivc; use std::os::arceos::api::task::{self, AxWaitQueueHandle}; diff --git a/src/vmm/vcpus.rs b/src/vmm/vcpus.rs index 1a084c01..10c58111 100644 --- a/src/vmm/vcpus.rs +++ b/src/vmm/vcpus.rs @@ -292,6 +292,23 @@ fn vcpu_run() { Ok(exit_reason) => match exit_reason { AxVCpuExitReason::Hypercall { nr, args } => { debug!("Hypercall [{}] args {:x?}", nr, args); + use crate::vmm::hvc::HyperCall; + + match HyperCall::new(vcpu.clone(), vm.clone(), nr, args) { + Ok(hypercall) => { + let ret_val = match hypercall.execute() { + Ok(ret_val) => ret_val as isize, + Err(err) => { + warn!("Hypercall [{:#x}] failed: {:?}", nr, err); + -1 + } + }; + // vcpu.set_return_value(ret_val as usize); + } + Err(err) => { + warn!("Hypercall [{:#x}] failed: {:?}", nr, err); + } + } } AxVCpuExitReason::FailEntry { hardware_entry_failure_reason, diff --git a/tool/dev_env.py b/tool/dev_env.py index 84c3c3d5..2dd2a40b 100755 --- a/tool/dev_env.py +++ b/tool/dev_env.py @@ -37,6 +37,7 @@ def main(): "arm_vgic", "arm_gicv2", "axdevice_crates", + "axhvc", ] for one in repos: From 4e2e1c22b05552a8337a537031dcac309ba35d36 Mon Sep 17 00:00:00 2001 From: hky1999 <976929993@qq.com> Date: Tue, 10 Jun 2025 15:59:56 +0800 Subject: [PATCH 035/219] [feat] introduce IVCChannelHeader --- src/vmm/hvc.rs | 118 +++++++++++++++++++++++++++- src/vmm/ivc.rs | 201 +++++++++++++++++++++++++++++++++++++++++------ src/vmm/mod.rs | 4 +- src/vmm/vcpus.rs | 2 +- 4 files changed, 294 insertions(+), 31 deletions(-) diff --git a/src/vmm/hvc.rs b/src/vmm/hvc.rs index 568c1793..770456b5 100644 --- a/src/vmm/hvc.rs +++ b/src/vmm/hvc.rs @@ -1,6 +1,8 @@ +use axaddrspace::{GuestPhysAddr, MappingFlags}; use axerrno::{AxResult, ax_err, ax_err_type}; use axhvc::{HyperCallCode, HyperCallResult}; +use crate::vmm::ivc::{self, IVCChannel}; use crate::vmm::{VCpuRef, VMRef}; pub struct HyperCall { @@ -27,11 +29,119 @@ impl HyperCall { pub fn execute(&self) -> HyperCallResult { match self.code { - HyperCallCode::HIVC_ALLOC_MEM => { - info!("VM[{}] HyperCall HIVC_ALLOC_MEM", self.vm.id()); - self.vm.map_region(gpa, hpa, size, flags); + HyperCallCode::HIVCPublishChannel => { + // This is just a placeholder for the shared memory base address, + // it should be allocated dynamically. + const SHM_BASE_GPA_RAW: usize = 0xd000_0000; + let shm_base_gpa = GuestPhysAddr::from_usize(SHM_BASE_GPA_RAW); - Ok(0) + let key = self.args[0] as usize; + let shm_base_gpa_ptr = GuestPhysAddr::from_usize(self.args[1] as usize); + let shm_size_ptr = GuestPhysAddr::from_usize(self.args[2] as usize); + + let shm_region_size = self.vm.read_from_guest_of::(shm_size_ptr)?; + + info!("VM[{}] HyperCall {:?}", self.vm.id(), self.code); + let ivc_channel = + IVCChannel::alloc(self.vm.id(), key, shm_region_size, shm_base_gpa)?; + + let actual_size = ivc_channel.size(); + + self.vm.map_region( + shm_base_gpa, + ivc_channel.base_hpa(), + actual_size, + MappingFlags::READ | MappingFlags::WRITE, + )?; + + self.vm + .write_to_guest_of(shm_base_gpa_ptr, &shm_base_gpa.as_usize())?; + self.vm.write_to_guest_of(shm_size_ptr, &actual_size)?; + + ivc::insert_channel(self.vm.id(), ivc_channel)?; + + Ok(0) + } + HyperCallCode::HIVCUnPublishChannel => { + let key = self.args[0] as usize; + + info!( + "VM[{}] HyperCall {:?} with key {:#x}", + self.vm.id(), + self.code, + key + ); + let channel = ivc::remove_channel(self.vm.id(), key)?; + + self.vm + .unmap_region(channel.base_gpa_in_publisher(), channel.size())?; + + for (subscriber_id, subscriber_base_gpa) in channel.subscribers() { + warn!( + "TODO, you should unmap subscriber VM[{}] base GPA: {:?} size {:#x}", + subscriber_id, + subscriber_base_gpa, + channel.size() + ); + } + + Ok(0) + } + HyperCallCode::HIVCSubscribChannel => { + // This is just a placeholder for the shared memory base address, + // it should be allocated dynamically. + const SHM_BASE_GPA_RAW: usize = 0xe000_0000; + let shm_base_gpa = GuestPhysAddr::from_usize(SHM_BASE_GPA_RAW); + + let publisher_vm_id = self.args[0] as usize; + let key = self.args[1] as usize; + let shm_base_gpa_ptr = GuestPhysAddr::from_usize(self.args[2] as usize); + let shm_size_ptr = GuestPhysAddr::from_usize(self.args[3] as usize); + + info!( + "VM[{}] HyperCall {:?} to VM[{}]", + self.vm.id(), + self.code, + publisher_vm_id + ); + let (base_hpa, actual_size) = ivc::subscribe_to_channel_of_publisher( + publisher_vm_id, + key, + self.vm.id(), + shm_base_gpa, + )?; + + self.vm + .map_region(shm_base_gpa, base_hpa, actual_size, MappingFlags::READ)?; + + self.vm + .write_to_guest_of(shm_base_gpa_ptr, &shm_base_gpa.as_usize())?; + self.vm.write_to_guest_of(shm_size_ptr, &actual_size)?; + + info!( + "VM[{}] HyperCall HIVC_REGISTER_SUBSCRIBER success, base GPA: {:#x}, size: {}", + self.vm.id(), + shm_base_gpa, + actual_size + ); + + Ok(0) + } + HyperCallCode::HIVCUnSubscribChannel => { + let publisher_vm_id = self.args[0] as usize; + let key = self.args[1] as usize; + + info!( + "VM[{}] HyperCall {:?} from VM[{}]", + self.vm.id(), + self.code, + publisher_vm_id + ); + let (base_gpa, size) = + ivc::unsubscribe_from_channel_of_publisher(publisher_vm_id, key, self.vm.id())?; + self.vm.unmap_region(base_gpa, size)?; + + Ok(0) } _ => { warn!("Unsupported hypercall code: {:?}", self.code); diff --git a/src/vmm/ivc.rs b/src/vmm/ivc.rs index 064392e9..9a5072e5 100644 --- a/src/vmm/ivc.rs +++ b/src/vmm/ivc.rs @@ -1,18 +1,159 @@ //! Inter-VM communication (IVC) module. +use alloc::collections::BTreeMap; use alloc::vec::Vec; -use axaddrspace::HostPhysAddr; +use std::os::arceos::modules::axhal::paging::PagingHandlerImpl; +use std::sync::Mutex; + +use axaddrspace::{GuestPhysAddr, HostPhysAddr}; use axerrno::AxResult; use page_table_multiarch::PagingHandler; +/// A global btree map to store IVC channels, +/// indexed by (publisher_vm_id, channel_key). +static IVC_CHANNELS: Mutex>> = + Mutex::new(BTreeMap::new()); + +pub fn insert_channel( + publisher_vm_id: usize, + channel: IVCChannel, +) -> AxResult<()> { + let mut channels = IVC_CHANNELS.lock(); + if channels + .insert((publisher_vm_id, channel.key), channel) + .is_some() + { + Err(axerrno::ax_err_type!( + AlreadyExists, + "IVC channel already exists" + )) + } else { + Ok(()) + } +} + +pub fn remove_channel( + publisher_vm_id: usize, + key: usize, +) -> AxResult> { + IVC_CHANNELS + .lock() + .remove(&(publisher_vm_id, key)) + .ok_or_else(|| { + axerrno::ax_err_type!( + NotFound, + format!( + "IVC channel for publisher VM {} with key {} not found", + publisher_vm_id, key + ) + ) + }) +} + +/// Subcribe to a channel of a publisher VM with the given key, +/// return the shared region base address and size. +pub fn subscribe_to_channel_of_publisher<'a>( + publisher_vm_id: usize, + key: usize, + subscriber_vm_id: usize, + subscriber_gpa: GuestPhysAddr, +) -> AxResult<(HostPhysAddr, usize)> { + let mut channels = IVC_CHANNELS.lock(); + if let Some(channel) = channels.get_mut(&(publisher_vm_id, key)) { + if channel.key == key { + // Add the subscriber VM ID to the channel. + channel.add_subscriber(subscriber_vm_id, subscriber_gpa); + Ok((channel.base_hpa(), channel.size())) + } else { + Err(axerrno::ax_err_type!( + NotFound, + format!( + "IVC channel with key {} not matched for publisher VM {}", + key, publisher_vm_id + ) + )) + } + } else { + Err(axerrno::ax_err_type!( + NotFound, + format!("IVC channel for publisher VM {} not found", publisher_vm_id) + )) + } +} + +pub fn unsubscribe_from_channel_of_publisher( + publisher_vm_id: usize, + key: usize, + subscriber_vm_id: usize, +) -> AxResult<(GuestPhysAddr, usize)> { + let mut channels = IVC_CHANNELS.lock(); + if let Some(channel) = channels.get_mut(&(publisher_vm_id, key)) { + // Remove the subscriber VM ID from the channel. + if let Some(subscriber_gpa) = channel.remove_subscriber(subscriber_vm_id) { + Ok((subscriber_gpa, channel.size())) + } else { + Err(axerrno::ax_err_type!( + NotFound, + format!( + "Subscriber VM {} not found in channel for publisher VM[{}] Key {:?}", + subscriber_vm_id, publisher_vm_id, key + ) + )) + } + } else { + Err(axerrno::ax_err_type!( + NotFound, + format!("IVC channel for publisher VM {} not found", publisher_vm_id) + )) + } +} + pub struct IVCChannel { publisher_vm_id: usize, - subscriber_vms: Vec, + key: usize, + /// A list of subscriber VM IDs that are subscribed to this channel. + /// The key is the subscriber VM ID, and the value is the base address of the shared region in + /// guest physical address of the subscriber VM. + subscriber_vms: BTreeMap, shared_region_base: HostPhysAddr, shared_region_size: usize, + /// The base address of the shared memory region in guest physical address of the publisher VM. + base_gpa: GuestPhysAddr, _phatom: core::marker::PhantomData, } +#[repr(C)] +pub struct IVCChannelHeader { + pub publisher_id: u64, + pub key: u64, + pub content_size: u64, +} + +impl IVCChannel { + pub fn header(&self) -> &IVCChannelHeader { + unsafe { + // Map the shared region base to the header structure. + &*H::phys_to_virt(self.shared_region_base).as_mut_ptr_of::() + } + } + + pub fn header_mut(&mut self) -> &mut IVCChannelHeader { + unsafe { + // Map the shared region base to the mutable header structure. + &mut *H::phys_to_virt(self.shared_region_base).as_mut_ptr_of::() + } + } + + pub fn data_region(&self) -> *const u8 { + unsafe { + // Return a pointer to the data region, which starts after the header. + H::phys_to_virt(self.shared_region_base) + .as_mut_ptr() + .add(core::mem::size_of::()) + } + } +} + impl core::fmt::Debug for IVCChannel { fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { write!( @@ -38,51 +179,63 @@ impl Drop for IVCChannel { } impl IVCChannel { - pub fn alloc(published_vm_id: usize, shared_region_size: usize) -> AxResult { + pub fn alloc( + publisher_vm_id: usize, + key: usize, + shared_region_size: usize, + base_gpa: GuestPhysAddr, + ) -> AxResult { // TODO: support larger shared region sizes with alloc_frames API. let shared_region_size = shared_region_size.min(4096); let shared_region_base = H::alloc_frame().ok_or_else(|| { axerrno::ax_err_type!(NoMemory, "Failed to allocate shared region frame") })?; - Ok(Self { - publisher_vm_id: published_vm_id, - subscriber_vms: Vec::new(), + let mut channel = IVCChannel { + publisher_vm_id, + key, + subscriber_vms: BTreeMap::new(), shared_region_base, shared_region_size, + base_gpa, _phatom: core::marker::PhantomData, - }) + }; + + channel.header_mut().publisher_id = publisher_vm_id as u64; + channel.header_mut().key = key as u64; + channel.header_mut().content_size = 0; + + debug!("Allocated IVCChannel: {:?}", channel); + + Ok(channel) } pub fn base_hpa(&self) -> HostPhysAddr { self.shared_region_base } - pub fn size(&self) -> usize { - self.shared_region_size + pub fn base_gpa_in_publisher(&self) -> GuestPhysAddr { + self.base_gpa } - pub fn publisher_vm_id(&self) -> usize { - self.publisher_vm_id + pub fn size(&self) -> usize { + self.shared_region_size } - pub fn add_subscriber(&mut self, subscriber_vm_id: usize) { - if !self.subscriber_vms.contains(&subscriber_vm_id) { - self.subscriber_vms.push(subscriber_vm_id); + pub fn add_subscriber(&mut self, subscriber_vm_id: usize, subscriber_gpa: GuestPhysAddr) { + if !self.subscriber_vms.contains_key(&subscriber_vm_id) { + self.subscriber_vms.insert(subscriber_vm_id, subscriber_gpa); } } - pub fn remove_subscriber(&mut self, subscriber_vm_id: usize) { - if let Some(pos) = self - .subscriber_vms - .iter() - .position(|&id| id == subscriber_vm_id) - { - self.subscriber_vms.remove(pos); - } + pub fn remove_subscriber(&mut self, subscriber_vm_id: usize) -> Option { + self.subscriber_vms.remove(&subscriber_vm_id) } - pub fn subscribers(&self) -> &[usize] { - &self.subscriber_vms + pub fn subscribers(&self) -> Vec<(usize, GuestPhysAddr)> { + self.subscriber_vms + .iter() + .map(|(vm_id, gpa)| (*vm_id, *gpa)) + .collect() } } diff --git a/src/vmm/mod.rs b/src/vmm/mod.rs index 7840f43c..1aca330e 100644 --- a/src/vmm/mod.rs +++ b/src/vmm/mod.rs @@ -1,11 +1,11 @@ mod config; +mod hvc; mod images; +mod ivc; #[allow(unused)] //TODO: remove this with "irq" feature. mod timer; mod vcpus; mod vm_list; -mod hvc; -mod ivc; use std::os::arceos::api::task::{self, AxWaitQueueHandle}; diff --git a/src/vmm/vcpus.rs b/src/vmm/vcpus.rs index 10c58111..bb21ac5d 100644 --- a/src/vmm/vcpus.rs +++ b/src/vmm/vcpus.rs @@ -303,7 +303,7 @@ fn vcpu_run() { -1 } }; - // vcpu.set_return_value(ret_val as usize); + vcpu.set_return_value(ret_val as usize); } Err(err) => { warn!("Hypercall [{:#x}] failed: {:?}", nr, err); From 1e9b6f91aebb03fb4e55b86cf22e1c6fb2097742 Mon Sep 17 00:00:00 2001 From: hky1999 <976929993@qq.com> Date: Tue, 10 Jun 2025 21:11:58 +0800 Subject: [PATCH 036/219] [feat] support simplex inter-VM communication channel --- Boot-on-qemu.md | 31 +++++++++++++++++++++++++++---- configs/vms/arceos-aarch64.toml | 2 +- src/vmm/ivc.rs | 27 ++++++++++++--------------- 3 files changed, 40 insertions(+), 20 deletions(-) diff --git a/Boot-on-qemu.md b/Boot-on-qemu.md index b2a5ecab..d5b42545 100644 --- a/Boot-on-qemu.md +++ b/Boot-on-qemu.md @@ -4,14 +4,37 @@ ```bash ./tool/dev_env.py cd crates/arceos && git checkout rk3588_jd4_qemu -cd crates/axvm && git checkout dtb -cd crates/arm_vcpu && git checkout 4_level_paging +cd crates/axvm && git checkout ivc +cd crates/axvcpu && git checkout ivc +cd crates/arm_vcpu && git checkout ivc_and_4lpt cd crates/axaddrspace && git checkout 4_level_paging +cd crates/axhvc && git checkout ivc ``` ```bash -make ARCH=aarch64 LOG=debug VM_CONFIGS=configs/vms/linux-qemu-aarch64.toml:configs/vms/arceos-aarch64.toml GICV3=y NET=y SMP=2 run DISK_IMG=/home/hky/workspace/Linux/ubuntu-22.04-rootfs_ext4.img SECOND_SERIAL=y +make ARCH=aarch64 LOG=info VM_CONFIGS=configs/vms/linux-qemu-aarch64.toml:configs/vms/arceos-aarch64.toml GICV3=y NET=y SMP=2 run DISK_IMG=/home/hky/workspace/Linux/ubuntu-22.04-rootfs_ext4.img SECOND_SERIAL=y telnet localhost 4321 -``` \ No newline at end of file +``` + +## Test AxVisor IVC + +* Compile arceos ivc tester as guest VM 2 + +repo: https://github.com/arceos-hypervisor/arceos/tree/ivc_tester + +```bash +make ARCH=aarch64 A=examples/ivc_tester defconfig +make ARCH=aarch64 A=examples/ivc_tester build +# You can get `examples/ivc_tester/ivc_tester_aarch64-qemu-virt.bin`, +# whose path should be set to `kernel_path` field in `configs/vms/arceos-aarch64.toml`. +``` + +* Build and install axvisor-driver + +```bash +git clone git@github.com:arceos-hypervisor/axvisor-tools.git --branch ivc +``` + +see its [README](https://github.com/arceos-hypervisor/axvisor-tools/blob/ivc/axvisor-driver/README.md) about how to compile it and how to subscribe messages from guest ArceOS's ivc publisher. diff --git a/configs/vms/arceos-aarch64.toml b/configs/vms/arceos-aarch64.toml index 47271868..bdcf16b9 100644 --- a/configs/vms/arceos-aarch64.toml +++ b/configs/vms/arceos-aarch64.toml @@ -22,7 +22,7 @@ entry_point = 0x4020_0000 # Load from file system. image_location = "memory" # The file path of the kernel image. -kernel_path = "/home/hky/workspace/arceos/axvisor/crates/arceos/examples/helloworld/helloworld_aarch64-qemu-virt_1.bin" +kernel_path = "/home/hky/workspace/arceos/arceos/examples/ivc_tester/ivc_tester_aarch64-qemu-virt.bin" # The load address of the kernel image. kernel_load_addr = 0x4020_0000 ## Load from memory diff --git a/src/vmm/ivc.rs b/src/vmm/ivc.rs index 9a5072e5..7d16d387 100644 --- a/src/vmm/ivc.rs +++ b/src/vmm/ivc.rs @@ -60,27 +60,22 @@ pub fn subscribe_to_channel_of_publisher<'a>( ) -> AxResult<(HostPhysAddr, usize)> { let mut channels = IVC_CHANNELS.lock(); if let Some(channel) = channels.get_mut(&(publisher_vm_id, key)) { - if channel.key == key { - // Add the subscriber VM ID to the channel. - channel.add_subscriber(subscriber_vm_id, subscriber_gpa); - Ok((channel.base_hpa(), channel.size())) - } else { - Err(axerrno::ax_err_type!( - NotFound, - format!( - "IVC channel with key {} not matched for publisher VM {}", - key, publisher_vm_id - ) - )) - } + // Add the subscriber VM ID to the channel. + channel.add_subscriber(subscriber_vm_id, subscriber_gpa); + Ok((channel.base_hpa(), channel.size())) } else { Err(axerrno::ax_err_type!( NotFound, - format!("IVC channel for publisher VM {} not found", publisher_vm_id) + format!( + "IVC channel for publisher VM [{}] key {:#x} not found", + publisher_vm_id, key + ) )) } } +/// Unsubscribe from a channel of a publisher VM with the given key, +/// return the shared region base address and size. pub fn unsubscribe_from_channel_of_publisher( publisher_vm_id: usize, key: usize, @@ -95,7 +90,7 @@ pub fn unsubscribe_from_channel_of_publisher( Err(axerrno::ax_err_type!( NotFound, format!( - "Subscriber VM {} not found in channel for publisher VM[{}] Key {:?}", + "VM[{}] tries to subcriber non-existed channel publisher VM[{}] Key {:#x}", subscriber_vm_id, publisher_vm_id, key ) )) @@ -130,6 +125,7 @@ pub struct IVCChannelHeader { } impl IVCChannel { + #[allow(unused)] pub fn header(&self) -> &IVCChannelHeader { unsafe { // Map the shared region base to the header structure. @@ -144,6 +140,7 @@ impl IVCChannel { } } + #[allow(unused)] pub fn data_region(&self) -> *const u8 { unsafe { // Return a pointer to the data region, which starts after the header. From 41957ee55ae143461d1be3a7a34bece918bd8b6b Mon Sep 17 00:00:00 2001 From: aarkegz Date: Wed, 11 Jun 2025 16:18:15 +0800 Subject: [PATCH 037/219] [MILESTONE] working version of 2 Linux VMs on QEMU The first VM has almost everything from QEMU, the second has only a GITS-deprived GICv3 and a serial, with a initramfs. --- .gitignore | 3 + Cargo.lock | 108 ++++- Cargo.toml | 20 + Makefile | 1 + configs/platforms/aarch64-qemu-virt-hv.toml | 10 +- configs/vms/linux-qemu-aarch64-gicv3-a.toml | 75 ++++ configs/vms/linux-qemu-aarch64-gicv3-b.toml | 79 ++++ configs/vms/linux-qemu_gicv3-b.dts | 414 ++++++++++++++++++++ configs/vms/linux-qemu_gicv3.dts | 411 +++++++++++++++++++ scripts/make/qemu.mk | 21 +- src/hal.rs | 35 +- src/vmm/mod.rs | 1 + 12 files changed, 1144 insertions(+), 34 deletions(-) create mode 100644 configs/vms/linux-qemu-aarch64-gicv3-a.toml create mode 100644 configs/vms/linux-qemu-aarch64-gicv3-b.toml create mode 100644 configs/vms/linux-qemu_gicv3-b.dts create mode 100644 configs/vms/linux-qemu_gicv3.dts diff --git a/.gitignore b/.gitignore index ae6943b0..f37efa7f 100644 --- a/.gitignore +++ b/.gitignore @@ -22,3 +22,6 @@ rusty-tags.vi # tools should be downloaded from github tools/* + +# initramfs +*.cpio.gz diff --git a/Cargo.lock b/Cargo.lock index adc4b7f6..d9182075 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -117,7 +117,6 @@ dependencies = [ [[package]] name = "arceos_api" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=debin%2Ftimer_api#1341bedc09fc28c093cab5a25518bfae6387f79a" dependencies = [ "axalloc", "axconfig", @@ -134,6 +133,18 @@ dependencies = [ "axtask", ] +[[package]] +name = "arm-gic-driver" +version = "0.13.0" +dependencies = [ + "aarch64-cpu 10.0.0", + "bitflags 2.9.0", + "enum_dispatch", + "log", + "rdif-intc", + "tock-registers 0.9.0", +] + [[package]] name = "arm_gicv2" version = "0.1.0" @@ -154,10 +165,10 @@ dependencies = [ [[package]] name = "arm_vcpu" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arm_vcpu.git?branch=debin%2Ftimer_api#4017f66587dc3c491987c92a8589ab86257d59ac" dependencies = [ "aarch64-cpu 9.4.0", "aarch64_sysreg", + "arm_vgic", "axaddrspace", "axdevice_base", "axerrno", @@ -173,19 +184,30 @@ dependencies = [ [[package]] name = "arm_vgic" version = "0.0.0" -source = "git+https://github.com/arceos-hypervisor/arm_vgic.git?branch=debin%2Ftimer_api#e1b039b7452ea387ee408fa4020542ba7134866c" dependencies = [ "arm_gicv2", "axaddrspace", "axdevice_base", "axerrno", "axvisor_api", + "bitmaps", "log", "memory_addr", "spin", "tock-registers 0.8.1", ] +[[package]] +name = "async-trait" +version = "0.1.88" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e539d3fca749fcee5236ab05e93a52867dd549cc157c8cb7f99595f3cedffdb5" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.100", +] + [[package]] name = "autocfg" version = "1.4.0" @@ -195,7 +217,6 @@ checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" [[package]] name = "axaddrspace" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/axaddrspace.git#2ed4d076e01f966710bd6480131abd3a9ffb8930" dependencies = [ "axerrno", "bit_field", @@ -213,7 +234,6 @@ dependencies = [ [[package]] name = "axalloc" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=debin%2Ftimer_api#1341bedc09fc28c093cab5a25518bfae6387f79a" dependencies = [ "allocator", "axerrno", @@ -226,7 +246,6 @@ dependencies = [ [[package]] name = "axconfig" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=debin%2Ftimer_api#1341bedc09fc28c093cab5a25518bfae6387f79a" dependencies = [ "axconfig-gen-macros", ] @@ -283,7 +302,6 @@ dependencies = [ [[package]] name = "axdriver" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=debin%2Ftimer_api#1341bedc09fc28c093cab5a25518bfae6387f79a" dependencies = [ "axalloc", "axconfig", @@ -341,7 +359,6 @@ dependencies = [ [[package]] name = "axfeat" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=debin%2Ftimer_api#1341bedc09fc28c093cab5a25518bfae6387f79a" dependencies = [ "axalloc", "axdriver", @@ -358,7 +375,6 @@ dependencies = [ [[package]] name = "axfs" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=debin%2Ftimer_api#1341bedc09fc28c093cab5a25518bfae6387f79a" dependencies = [ "axdriver", "axdriver_block", @@ -412,9 +428,9 @@ dependencies = [ [[package]] name = "axhal" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=debin%2Ftimer_api#1341bedc09fc28c093cab5a25518bfae6387f79a" dependencies = [ "aarch64-cpu 10.0.0", + "arm-gic-driver", "arm_gicv2", "arm_pl011", "axalloc", @@ -461,7 +477,6 @@ dependencies = [ [[package]] name = "axipi" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=debin%2Ftimer_api#1341bedc09fc28c093cab5a25518bfae6387f79a" dependencies = [ "axconfig", "axhal", @@ -474,7 +489,6 @@ dependencies = [ [[package]] name = "axlog" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=debin%2Ftimer_api#1341bedc09fc28c093cab5a25518bfae6387f79a" dependencies = [ "cfg-if", "crate_interface", @@ -485,7 +499,6 @@ dependencies = [ [[package]] name = "axmm" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=debin%2Ftimer_api#1341bedc09fc28c093cab5a25518bfae6387f79a" dependencies = [ "axalloc", "axconfig", @@ -501,7 +514,6 @@ dependencies = [ [[package]] name = "axns" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=debin%2Ftimer_api#1341bedc09fc28c093cab5a25518bfae6387f79a" dependencies = [ "crate_interface", "lazyinit", @@ -510,7 +522,6 @@ dependencies = [ [[package]] name = "axruntime" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=debin%2Ftimer_api#1341bedc09fc28c093cab5a25518bfae6387f79a" dependencies = [ "axalloc", "axconfig", @@ -531,7 +542,6 @@ dependencies = [ [[package]] name = "axstd" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=debin%2Ftimer_api#1341bedc09fc28c093cab5a25518bfae6387f79a" dependencies = [ "arceos_api", "axerrno", @@ -543,7 +553,6 @@ dependencies = [ [[package]] name = "axsync" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=debin%2Ftimer_api#1341bedc09fc28c093cab5a25518bfae6387f79a" dependencies = [ "axtask", "kspin", @@ -552,7 +561,6 @@ dependencies = [ [[package]] name = "axtask" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=debin%2Ftimer_api#1341bedc09fc28c093cab5a25518bfae6387f79a" dependencies = [ "axconfig", "axhal", @@ -637,7 +645,6 @@ dependencies = [ [[package]] name = "axvm" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/axvm.git?branch=inject_interrupt#605c6bd93962259021d0dfb9769eac6162edfb29" dependencies = [ "arm_vcpu", "axaddrspace", @@ -902,6 +909,18 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "361a90feb7004eca4019fb28352a9465666b24f840f5c3cddf0ff13920590b89" +[[package]] +name = "enum_dispatch" +version = "0.3.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa18ce2bc66555b3218614519ac839ddb759a7d6720732f979ef8d13be147ecd" +dependencies = [ + "once_cell", + "proc-macro2", + "quote", + "syn 2.0.100", +] + [[package]] name = "equivalent" version = "1.0.2" @@ -1233,6 +1252,37 @@ dependencies = [ "bitflags 2.9.0", ] +[[package]] +name = "rdif-base" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1eebdadebd31279dc6e240fef7bb0341ef09de1be05463553a11f1cfe1e9279a" +dependencies = [ + "async-trait", + "rdif-def", + "thiserror", +] + +[[package]] +name = "rdif-def" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c238eb44d86fabc99028adc973f896ce2202aeb6184cc8b89863f2d157d7ca06" +dependencies = [ + "thiserror", +] + +[[package]] +name = "rdif-intc" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c38f384a6e9001670f74ccf5c69ad2becfe29ae72a4469d6250041b280a4822d" +dependencies = [ + "cfg-if", + "rdif-base", + "thiserror", +] + [[package]] name = "regex" version = "1.11.1" @@ -1540,6 +1590,26 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "thiserror" +version = "2.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "2.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.100", +] + [[package]] name = "timer_list" version = "0.1.0" diff --git a/Cargo.toml b/Cargo.toml index 5450eb45..4febe574 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -32,6 +32,7 @@ axstd = { git = "https://github.com/arceos-hypervisor/arceos.git", branch = "deb "hv", "multitask", "smp", + "gicv3" # "sched_rr" ] } @@ -91,3 +92,22 @@ syn = "2.0" # "irq" # ]} # axconfig = { path = "../arceos-new/modules/axconfig" } + +[patch."https://github.com/arceos-hypervisor/arm_vcpu.git"] +arm_vcpu = { path = "../arm_vcpu" } + +[patch."https://github.com/arceos-hypervisor/arm_vgic.git"] +arm_vgic = { path = "../arm_vgic" } + +[patch."https://github.com/arceos-hypervisor/axvm.git"] +axvm = { path = "../axvm" } + +[patch."https://github.com/arceos-hypervisor/arceos.git"] +axstd = { path = "../arceos/ulib/axstd" } +axconfig = { path = "../arceos/modules/axconfig" } + +[patch."https://github.com/rcore-os/arm-gic-driver"] +arm-gic-driver = { path = "../arm-gic-driver" } + +[patch."https://github.com/arceos-hypervisor/axaddrspace.git"] +axaddrspace = { path = "../axaddrspace" } diff --git a/Makefile b/Makefile index 38d60386..c77bde43 100644 --- a/Makefile +++ b/Makefile @@ -39,6 +39,7 @@ SMP ?= 1 MODE ?= release LOG ?= warn V ?= +GICV3 ?= n EXTRA_CONFIG ?= OUT_CONFIG ?= $(PWD)/.axconfig.toml diff --git a/configs/platforms/aarch64-qemu-virt-hv.toml b/configs/platforms/aarch64-qemu-virt-hv.toml index a27b09e8..7c55124e 100644 --- a/configs/platforms/aarch64-qemu-virt-hv.toml +++ b/configs/platforms/aarch64-qemu-virt-hv.toml @@ -13,7 +13,7 @@ family = "aarch64-qemu-virt" # str # Base address of the whole physical memory. phys-memory-base = 0x4000_0000 # uint # Size of the whole physical memory. (2GB) -phys-memory-size = 0x8000_0000 # uint +phys-memory-size = 0x1_0000_0000 # uint # Base physical address of the kernel image. kernel-base-paddr = 0x4008_0000 # uint # Base virtual address of the kernel image. @@ -38,7 +38,8 @@ mmio-regions = [ [0x0900_0000, 0x1000], # PL011 UART1 [0x0904_0000, 0x1000], # PL011 UART2 [0x0910_0000, 0x1000], # PL031 RTC - [0x0800_0000, 0x5_0000], # GICv2 + # [0x0800_0000, 0x5_0000], # GICv2 + [0x0800_0000, 0x100_0000], # GICv3 [0x0a00_0000, 0x4000], # VirtIO [0x1000_0000, 0x2eff_0000], # PCI memory ranges (ranges 1: 32-bit MMIO space) [0x40_1000_0000, 0x1000_0000], # PCI config space @@ -97,8 +98,9 @@ uart-irq = 1 # uint gicc-paddr = 0x0801_0000 # uint # GIC Distributor base address gicd-paddr = 0x0800_0000 # uint -gicv-paddr = 0x0804_0000 -gich-paddr = 0x0803_0000 +gicv-paddr = 0x0804_0000 # uint +gich-paddr = 0x0803_0000 # uint +gicr-paddr = 0x080a_0000 # uint # PSCI psci-method = "smc" # str diff --git a/configs/vms/linux-qemu-aarch64-gicv3-a.toml b/configs/vms/linux-qemu-aarch64-gicv3-a.toml new file mode 100644 index 00000000..95642466 --- /dev/null +++ b/configs/vms/linux-qemu-aarch64-gicv3-a.toml @@ -0,0 +1,75 @@ +# Vm base info configs +# +[base] +# Guest vm id. +id = 1 +# Guest vm name. +name = "linux-qemu" +# Virtualization type. +vm_type = 1 +# The number of virtual CPUs. +cpu_num = 1 +# Guest vm physical cpu sets. +phys_cpu_sets = [1] +phys_cpu_ids = [0] + +# +# Vm kernel configs +# +[kernel] +# The entry point of the kernel image. +entry_point = 0x8008_0000 +# The location of image: "memory" | "fs". +# load from memory. +image_location = "memory" +# The file path of the kernel image. +kernel_path = "linux-6.6.62.bin" +# The load address of the kernel image. +kernel_load_addr = 0x8008_0000 +# The file path of the device tree blob (DTB). +dtb_path = "linux-qemu_gicv3.dtb" +# The load address of the device tree blob (DTB). +dtb_load_addr = 0x8000_0000 + +## load from file system +# image_location = "fs" +## The file path of the kernel image. +# kernel_path = "linux-arceos-aarch64.bin" +## The file path of the device tree blob (DTB). +# dtb_path = "linux-rk3588.dtb" + +## The file path of the ramdisk image. +# ramdisk_path = "" +## The load address of the ramdisk image. +# ramdisk_load_addr = 0 +## The path of the disk image. +# disk_path = "disk.img" + +# Memory regions with format (`base_paddr`, `size`, `flags`, `map_type`). +# For `map_type`, 0 means `MAP_ALLOC`, 1 means `MAP_IDENTICAL`. +memory_regions = [ + [0x8000_0000, 0x4000_0000, 0x7, 1], # System RAM 1G MAP_IDENTICAL +] + +# +# Device specifications +# +[devices] +# Pass-through devices. +passthrough_devices = [ + # ["intc@8000000", 0x800_0000, 0x800_0000, 0x50_000, 0x1], + # ["pl011@9000000", 0x900_0000, 0x900_0000, 0x1000, 0x1], + # ["pl031@9010000", 0x901_0000, 0x901_0000, 0x1000, 0x1], + # ["pl061@9030000", 0x903_0000, 0x903_0000, 0x1000, 0x1], + # a003000.virtio_mmio virtio_mmio@a003000 + # a003200.virtio_mmio virtio_mmio@a003200 + # ["virtio_mmio", 0xa00_0000, 0xa00_0000, 0x4000, 0x1], + ["low-devices", 0x0, 0x0, 0x0800_0000, 0x1], + ["low-devices2", 0x09000000, 0x09000000, 0x1000_0000, 0x1], + ["pci", 0x8000000000, 0x8000000000, 0x10000, 0x1], + ["pci", 0x4010000000, 0x4010000000, 0x100000, 0x1], +] + +# Emu_devices. +# Name Base-Ipa Ipa_len Alloc-Irq Emu-Type EmuConfig. +emu_devices = [] \ No newline at end of file diff --git a/configs/vms/linux-qemu-aarch64-gicv3-b.toml b/configs/vms/linux-qemu-aarch64-gicv3-b.toml new file mode 100644 index 00000000..d080a791 --- /dev/null +++ b/configs/vms/linux-qemu-aarch64-gicv3-b.toml @@ -0,0 +1,79 @@ +# Vm base info configs +# +[base] +# Guest vm id. +id = 2 +# Guest vm name. +name = "linux-qemu-b" +# Virtualization type. +vm_type = 1 +# The number of virtual CPUs. +cpu_num = 1 +# Guest vm physical cpu sets. +phys_cpu_sets = [2] +phys_cpu_ids = [1] + +# +# Vm kernel configs +# +[kernel] +# The entry point of the kernel image. +entry_point = 0xc008_0000 +# The location of image: "memory" | "fs". +# load from memory. +image_location = "memory" +# The file path of the kernel image. +kernel_path = "linux-6.6.62.bin" +# The load address of the kernel image. +kernel_load_addr = 0xc008_0000 +# The file path of the device tree blob (DTB). +dtb_path = "linux-qemu_gicv3-b.dtb" +# The load address of the device tree blob (DTB). +dtb_load_addr = 0xc000_0000 +# Use `bios` to load initramfs. +bios_path = "initramfs-busybox-arm64.cpio.gz" +bios_load_addr = 0xfe00_0000 + +## load from file system +# image_location = "fs" +## The file path of the kernel image. +# kernel_path = "linux-arceos-aarch64.bin" +## The file path of the device tree blob (DTB). +# dtb_path = "linux-rk3588.dtb" + +## The file path of the ramdisk image. +# ramdisk_path = "" +## The load address of the ramdisk image. +# ramdisk_load_addr = 0 +## The path of the disk image. +# disk_path = "disk.img" + +# Memory regions with format (`base_paddr`, `size`, `flags`, `map_type`). +# For `map_type`, 0 means `MAP_ALLOC`, 1 means `MAP_IDENTICAL`. +memory_regions = [ + [0xc000_0000, 0x4000_0000, 0x7, 1], # System RAM 1G MAP_IDENTICAL +] + +# +# Device specifications +# +[devices] +# Pass-through devices. +passthrough_devices = [ + # ["intc@8000000", 0x800_0000, 0x800_0000, 0x50_000, 0x1], + # ["pl011@9000000", 0x900_0000, 0x900_0000, 0x1000, 0x1], + # ["pl031@9010000", 0x901_0000, 0x901_0000, 0x1000, 0x1], + # ["pl061@9030000", 0x903_0000, 0x903_0000, 0x1000, 0x1], + # a003000.virtio_mmio virtio_mmio@a003000 + # a003200.virtio_mmio virtio_mmio@a003200 + # ["virtio_mmio", 0xa00_0000, 0xa00_0000, 0x4000, 0x1], + + # ["low-memory", 0x0, 0x0, 0x2000_0000, 0x1], + ["pl011@9100000", 0x910_0000, 0x910_0000, 0x1000, 0x1], + # ["pci", 0x8000000000, 0x8000000000, 0x10000, 0x1], + # ["pci", 0x4010000000, 0x4010000000, 0x100000, 0x1], +] + +# Emu_devices. +# Name Base-Ipa Ipa_len Alloc-Irq Emu-Type EmuConfig. +emu_devices = [] \ No newline at end of file diff --git a/configs/vms/linux-qemu_gicv3-b.dts b/configs/vms/linux-qemu_gicv3-b.dts new file mode 100644 index 00000000..d362d68d --- /dev/null +++ b/configs/vms/linux-qemu_gicv3-b.dts @@ -0,0 +1,414 @@ +/dts-v1/; + +/ { + interrupt-parent = <0x8003>; + dma-coherent; + model = "linux,dummy-virt"; + #size-cells = <0x02>; + #address-cells = <0x02>; + compatible = "linux,dummy-virt"; + + psci { + migrate = <0xc4000005>; + cpu_on = <0xc4000003>; + cpu_off = <0x84000002>; + cpu_suspend = <0xc4000001>; + method = "smc"; + compatible = "arm,psci-1.0\0arm,psci-0.2\0arm,psci"; + }; + + memory@c0000000 { + reg = <0x00 0xc0000000 0x00 0x40000000>; + device_type = "memory"; + }; + + // platform-bus@c000000 { + // interrupt-parent = <0x8003>; + // ranges = <0x00 0x00 0xc000000 0x2000000>; + // #address-cells = <0x01>; + // #size-cells = <0x01>; + // compatible = "qemu,platform\0simple-bus"; + // }; + + // fw-cfg@9020000 { + // dma-coherent; + // reg = <0x00 0x9020000 0x00 0x18>; + // compatible = "qemu,fw-cfg-mmio"; + // }; + + // virtio_mmio@a000000 { + // dma-coherent; + // interrupts = <0x00 0x10 0x01>; + // reg = <0x00 0xa000000 0x00 0x200>; + // compatible = "virtio,mmio"; + // }; + + // virtio_mmio@a000200 { + // dma-coherent; + // interrupts = <0x00 0x11 0x01>; + // reg = <0x00 0xa000200 0x00 0x200>; + // compatible = "virtio,mmio"; + // }; + + // virtio_mmio@a000400 { + // dma-coherent; + // interrupts = <0x00 0x12 0x01>; + // reg = <0x00 0xa000400 0x00 0x200>; + // compatible = "virtio,mmio"; + // }; + + // virtio_mmio@a000600 { + // dma-coherent; + // interrupts = <0x00 0x13 0x01>; + // reg = <0x00 0xa000600 0x00 0x200>; + // compatible = "virtio,mmio"; + // }; + + // virtio_mmio@a000800 { + // dma-coherent; + // interrupts = <0x00 0x14 0x01>; + // reg = <0x00 0xa000800 0x00 0x200>; + // compatible = "virtio,mmio"; + // }; + + // virtio_mmio@a000a00 { + // dma-coherent; + // interrupts = <0x00 0x15 0x01>; + // reg = <0x00 0xa000a00 0x00 0x200>; + // compatible = "virtio,mmio"; + // }; + + // virtio_mmio@a000c00 { + // dma-coherent; + // interrupts = <0x00 0x16 0x01>; + // reg = <0x00 0xa000c00 0x00 0x200>; + // compatible = "virtio,mmio"; + // }; + + // virtio_mmio@a000e00 { + // dma-coherent; + // interrupts = <0x00 0x17 0x01>; + // reg = <0x00 0xa000e00 0x00 0x200>; + // compatible = "virtio,mmio"; + // }; + + // virtio_mmio@a001000 { + // dma-coherent; + // interrupts = <0x00 0x18 0x01>; + // reg = <0x00 0xa001000 0x00 0x200>; + // compatible = "virtio,mmio"; + // }; + + // virtio_mmio@a001200 { + // dma-coherent; + // interrupts = <0x00 0x19 0x01>; + // reg = <0x00 0xa001200 0x00 0x200>; + // compatible = "virtio,mmio"; + // }; + + // virtio_mmio@a001400 { + // dma-coherent; + // interrupts = <0x00 0x1a 0x01>; + // reg = <0x00 0xa001400 0x00 0x200>; + // compatible = "virtio,mmio"; + // }; + + // virtio_mmio@a001600 { + // dma-coherent; + // interrupts = <0x00 0x1b 0x01>; + // reg = <0x00 0xa001600 0x00 0x200>; + // compatible = "virtio,mmio"; + // }; + + // virtio_mmio@a001800 { + // dma-coherent; + // interrupts = <0x00 0x1c 0x01>; + // reg = <0x00 0xa001800 0x00 0x200>; + // compatible = "virtio,mmio"; + // }; + + // virtio_mmio@a001a00 { + // dma-coherent; + // interrupts = <0x00 0x1d 0x01>; + // reg = <0x00 0xa001a00 0x00 0x200>; + // compatible = "virtio,mmio"; + // }; + + // virtio_mmio@a001c00 { + // dma-coherent; + // interrupts = <0x00 0x1e 0x01>; + // reg = <0x00 0xa001c00 0x00 0x200>; + // compatible = "virtio,mmio"; + // }; + + // virtio_mmio@a001e00 { + // dma-coherent; + // interrupts = <0x00 0x1f 0x01>; + // reg = <0x00 0xa001e00 0x00 0x200>; + // compatible = "virtio,mmio"; + // }; + + // virtio_mmio@a002000 { + // dma-coherent; + // interrupts = <0x00 0x20 0x01>; + // reg = <0x00 0xa002000 0x00 0x200>; + // compatible = "virtio,mmio"; + // }; + + // virtio_mmio@a002200 { + // dma-coherent; + // interrupts = <0x00 0x21 0x01>; + // reg = <0x00 0xa002200 0x00 0x200>; + // compatible = "virtio,mmio"; + // }; + + // virtio_mmio@a002400 { + // dma-coherent; + // interrupts = <0x00 0x22 0x01>; + // reg = <0x00 0xa002400 0x00 0x200>; + // compatible = "virtio,mmio"; + // }; + + // virtio_mmio@a002600 { + // dma-coherent; + // interrupts = <0x00 0x23 0x01>; + // reg = <0x00 0xa002600 0x00 0x200>; + // compatible = "virtio,mmio"; + // }; + + // virtio_mmio@a002800 { + // dma-coherent; + // interrupts = <0x00 0x24 0x01>; + // reg = <0x00 0xa002800 0x00 0x200>; + // compatible = "virtio,mmio"; + // }; + + // virtio_mmio@a002a00 { + // dma-coherent; + // interrupts = <0x00 0x25 0x01>; + // reg = <0x00 0xa002a00 0x00 0x200>; + // compatible = "virtio,mmio"; + // }; + + // virtio_mmio@a002c00 { + // dma-coherent; + // interrupts = <0x00 0x26 0x01>; + // reg = <0x00 0xa002c00 0x00 0x200>; + // compatible = "virtio,mmio"; + // }; + + // virtio_mmio@a002e00 { + // dma-coherent; + // interrupts = <0x00 0x27 0x01>; + // reg = <0x00 0xa002e00 0x00 0x200>; + // compatible = "virtio,mmio"; + // }; + + // virtio_mmio@a003000 { + // dma-coherent; + // interrupts = <0x00 0x28 0x01>; + // reg = <0x00 0xa003000 0x00 0x200>; + // compatible = "virtio,mmio"; + // }; + + // virtio_mmio@a003200 { + // dma-coherent; + // interrupts = <0x00 0x29 0x01>; + // reg = <0x00 0xa003200 0x00 0x200>; + // compatible = "virtio,mmio"; + // }; + + // virtio_mmio@a003400 { + // dma-coherent; + // interrupts = <0x00 0x2a 0x01>; + // reg = <0x00 0xa003400 0x00 0x200>; + // compatible = "virtio,mmio"; + // }; + + // virtio_mmio@a003600 { + // dma-coherent; + // interrupts = <0x00 0x2b 0x01>; + // reg = <0x00 0xa003600 0x00 0x200>; + // compatible = "virtio,mmio"; + // }; + + // virtio_mmio@a003800 { + // dma-coherent; + // interrupts = <0x00 0x2c 0x01>; + // reg = <0x00 0xa003800 0x00 0x200>; + // compatible = "virtio,mmio"; + // }; + + // virtio_mmio@a003a00 { + // dma-coherent; + // interrupts = <0x00 0x2d 0x01>; + // reg = <0x00 0xa003a00 0x00 0x200>; + // compatible = "virtio,mmio"; + // }; + + // virtio_mmio@a003c00 { + // dma-coherent; + // interrupts = <0x00 0x2e 0x01>; + // reg = <0x00 0xa003c00 0x00 0x200>; + // compatible = "virtio,mmio"; + // }; + + // virtio_mmio@a003e00 { + // dma-coherent; + // interrupts = <0x00 0x2f 0x01>; + // reg = <0x00 0xa003e00 0x00 0x200>; + // compatible = "virtio,mmio"; + // }; + + // gpio-keys { + // compatible = "gpio-keys"; + + // poweroff { + // gpios = <0x8005 0x03 0x00>; + // linux,code = <0x74>; + // label = "GPIO Key Poweroff"; + // }; + // }; + + // pl061@9030000 { + // phandle = <0x8005>; + // clock-names = "apb_pclk"; + // clocks = <0x8000>; + // interrupts = <0x00 0x07 0x04>; + // gpio-controller; + // #gpio-cells = <0x02>; + // compatible = "arm,pl061\0arm,primecell"; + // reg = <0x00 0x9030000 0x00 0x1000>; + // }; + + // pcie@10000000 { + // interrupt-map-mask = <0x1800 0x00 0x00 0x07>; + // interrupt-map = <0x00 0x00 0x00 0x01 0x8003 0x00 0x00 0x00 0x03 0x04 0x00 0x00 0x00 0x02 0x8003 0x00 0x00 0x00 0x04 0x04 0x00 0x00 0x00 0x03 0x8003 0x00 0x00 0x00 0x05 0x04 0x00 0x00 0x00 0x04 0x8003 0x00 0x00 0x00 0x06 0x04 0x800 0x00 0x00 0x01 0x8003 0x00 0x00 0x00 0x04 0x04 0x800 0x00 0x00 0x02 0x8003 0x00 0x00 0x00 0x05 0x04 0x800 0x00 0x00 0x03 0x8003 0x00 0x00 0x00 0x06 0x04 0x800 0x00 0x00 0x04 0x8003 0x00 0x00 0x00 0x03 0x04 0x1000 0x00 0x00 0x01 0x8003 0x00 0x00 0x00 0x05 0x04 0x1000 0x00 0x00 0x02 0x8003 0x00 0x00 0x00 0x06 0x04 0x1000 0x00 0x00 0x03 0x8003 0x00 0x00 0x00 0x03 0x04 0x1000 0x00 0x00 0x04 0x8003 0x00 0x00 0x00 0x04 0x04 0x1800 0x00 0x00 0x01 0x8003 0x00 0x00 0x00 0x06 0x04 0x1800 0x00 0x00 0x02 0x8003 0x00 0x00 0x00 0x03 0x04 0x1800 0x00 0x00 0x03 0x8003 0x00 0x00 0x00 0x04 0x04 0x1800 0x00 0x00 0x04 0x8003 0x00 0x00 0x00 0x05 0x04>; + // #interrupt-cells = <0x01>; + // ranges = <0x1000000 0x00 0x00 0x00 0x3eff0000 0x00 0x10000 0x2000000 0x00 0x10000000 0x00 0x10000000 0x00 0x2eff0000 0x3000000 0x80 0x00 0x80 0x00 0x80 0x00>; + // // reg = <0x40 0x10000000 0x00 0x10000000>; + // reg = <0x00 0x10000000>; + // msi-map = <0x00 0x8004 0x00 0x10000>; + // dma-coherent; + // bus-range = <0x00 0xff>; + // linux,pci-domain = <0x00>; + // #size-cells = <0x02>; + // #address-cells = <0x03>; + // device_type = "pci"; + // compatible = "pci-host-ecam-generic"; + // }; + + // pl031@9010000 { + // clock-names = "apb_pclk"; + // clocks = <0x8000>; + // interrupts = <0x00 0x02 0x04>; + // reg = <0x00 0x9010000 0x00 0x1000>; + // compatible = "arm,pl031\0arm,primecell"; + // }; + + // pl011@9000000 { + // clock-names = "uartclk\0apb_pclk"; + // clocks = <0x8000 0x8000>; + // interrupts = <0x00 0x01 0x04>; + // reg = <0x00 0x9000000 0x00 0x1000>; + // compatible = "arm,pl011\0arm,primecell"; + // }; + + pl011@9100000 { + clock-names = "uartclk\0apb_pclk"; + clocks = <0x8000 0x8000>; + interrupts = <0x00 0x0a 0x04>; + reg = <0x00 0x9100000 0x00 0x1000>; + compatible = "arm,pl011\0arm,primecell"; + }; + + pmu { + interrupts = <0x01 0x07 0x04>; + compatible = "arm,armv8-pmuv3"; + }; + + intc@8000000 { + phandle = <0x8003>; + interrupts = <0x01 0x09 0x04>; + reg = <0x00 0x8000000 0x00 0x10000 0x00 0x80c0000 0x00 0xf60000>; + #redistributor-regions = <0x01>; + compatible = "arm,gic-v3"; + ranges; + #size-cells = <0x02>; + #address-cells = <0x02>; + interrupt-controller; + #interrupt-cells = <0x03>; + + // its@8080000 { + // phandle = <0x8004>; + // reg = <0x00 0x8080000 0x00 0x20000>; + // #msi-cells = <0x01>; + // msi-controller; + // compatible = "arm,gic-v3-its"; + // }; + }; + + // flash@0 { + // bank-width = <0x04>; + // reg = <0x00 0x00 0x00 0x4000000 0x00 0x4000000 0x00 0x4000000>; + // compatible = "cfi-flash"; + // }; + + cpus { + #size-cells = <0x00>; + #address-cells = <0x01>; + + cpu-map { + + socket0 { + + cluster0 { + + core0 { + cpu = <0x8001>; + }; + + //core1 { + // cpu = <0x8001>; + //}; + }; + }; + }; + + cpu@0 { + phandle = <0x8001>; + reg = <0x01>; + enable-method = "psci"; + compatible = "arm,cortex-a57"; + device_type = "cpu"; + }; + }; + + timer { + interrupts = <0x01 0x0d 0x04 0x01 0x0e 0x04 0x01 0x0b 0x04 0x01 0x0a 0x04>; + always-on; + compatible = "arm,armv8-timer\0arm,armv7-timer"; + }; + + apb-pclk { + phandle = <0x8000>; + clock-output-names = "clk24mhz"; + clock-frequency = <0x16e3600>; + #clock-cells = <0x00>; + compatible = "fixed-clock"; + }; + + aliases { + serial0 = "/pl011@9100000"; + }; + + chosen { + // initrd-start = <0xfe000000>; + // initrd-end = <0xff000000>; + // bootargs = "earlycon console=ttyAMA0 root=/dev/ram rw audit=0 default_hugepagesz=32M hugepagesz=32M hugepages=4"; + bootargs = "earlycon console=ttyAMA0 initrd=0xfe000000,0x1000000 audit=0 default_hugepagesz=32M hugepagesz=32M hugepages=4"; + stdout-path = "/pl011@9100000"; + rng-seed = <0x79361ef3 0x1a4e5964 0x9fb01da 0x749b376f 0x7036ec7c 0xdea25f0c 0x79d7ee4e 0xe2e216af>; + kaslr-seed = <0x2758c1 0xf528d3d5>; + }; +}; diff --git a/configs/vms/linux-qemu_gicv3.dts b/configs/vms/linux-qemu_gicv3.dts new file mode 100644 index 00000000..d6309569 --- /dev/null +++ b/configs/vms/linux-qemu_gicv3.dts @@ -0,0 +1,411 @@ +/dts-v1/; + +/ { + interrupt-parent = <0x8003>; + dma-coherent; + model = "linux,dummy-virt"; + #size-cells = <0x02>; + #address-cells = <0x02>; + compatible = "linux,dummy-virt"; + + psci { + migrate = <0xc4000005>; + cpu_on = <0xc4000003>; + cpu_off = <0x84000002>; + cpu_suspend = <0xc4000001>; + method = "smc"; + compatible = "arm,psci-1.0\0arm,psci-0.2\0arm,psci"; + }; + + memory@40000000 { + reg = <0x00 0x80000000 0x00 0x40000000>; + device_type = "memory"; + }; + + platform-bus@c000000 { + interrupt-parent = <0x8003>; + ranges = <0x00 0x00 0xc000000 0x2000000>; + #address-cells = <0x01>; + #size-cells = <0x01>; + compatible = "qemu,platform\0simple-bus"; + }; + + fw-cfg@9020000 { + dma-coherent; + reg = <0x00 0x9020000 0x00 0x18>; + compatible = "qemu,fw-cfg-mmio"; + }; + + virtio_mmio@a000000 { + dma-coherent; + interrupts = <0x00 0x10 0x01>; + reg = <0x00 0xa000000 0x00 0x200>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@a000200 { + dma-coherent; + interrupts = <0x00 0x11 0x01>; + reg = <0x00 0xa000200 0x00 0x200>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@a000400 { + dma-coherent; + interrupts = <0x00 0x12 0x01>; + reg = <0x00 0xa000400 0x00 0x200>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@a000600 { + dma-coherent; + interrupts = <0x00 0x13 0x01>; + reg = <0x00 0xa000600 0x00 0x200>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@a000800 { + dma-coherent; + interrupts = <0x00 0x14 0x01>; + reg = <0x00 0xa000800 0x00 0x200>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@a000a00 { + dma-coherent; + interrupts = <0x00 0x15 0x01>; + reg = <0x00 0xa000a00 0x00 0x200>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@a000c00 { + dma-coherent; + interrupts = <0x00 0x16 0x01>; + reg = <0x00 0xa000c00 0x00 0x200>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@a000e00 { + dma-coherent; + interrupts = <0x00 0x17 0x01>; + reg = <0x00 0xa000e00 0x00 0x200>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@a001000 { + dma-coherent; + interrupts = <0x00 0x18 0x01>; + reg = <0x00 0xa001000 0x00 0x200>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@a001200 { + dma-coherent; + interrupts = <0x00 0x19 0x01>; + reg = <0x00 0xa001200 0x00 0x200>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@a001400 { + dma-coherent; + interrupts = <0x00 0x1a 0x01>; + reg = <0x00 0xa001400 0x00 0x200>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@a001600 { + dma-coherent; + interrupts = <0x00 0x1b 0x01>; + reg = <0x00 0xa001600 0x00 0x200>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@a001800 { + dma-coherent; + interrupts = <0x00 0x1c 0x01>; + reg = <0x00 0xa001800 0x00 0x200>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@a001a00 { + dma-coherent; + interrupts = <0x00 0x1d 0x01>; + reg = <0x00 0xa001a00 0x00 0x200>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@a001c00 { + dma-coherent; + interrupts = <0x00 0x1e 0x01>; + reg = <0x00 0xa001c00 0x00 0x200>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@a001e00 { + dma-coherent; + interrupts = <0x00 0x1f 0x01>; + reg = <0x00 0xa001e00 0x00 0x200>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@a002000 { + dma-coherent; + interrupts = <0x00 0x20 0x01>; + reg = <0x00 0xa002000 0x00 0x200>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@a002200 { + dma-coherent; + interrupts = <0x00 0x21 0x01>; + reg = <0x00 0xa002200 0x00 0x200>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@a002400 { + dma-coherent; + interrupts = <0x00 0x22 0x01>; + reg = <0x00 0xa002400 0x00 0x200>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@a002600 { + dma-coherent; + interrupts = <0x00 0x23 0x01>; + reg = <0x00 0xa002600 0x00 0x200>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@a002800 { + dma-coherent; + interrupts = <0x00 0x24 0x01>; + reg = <0x00 0xa002800 0x00 0x200>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@a002a00 { + dma-coherent; + interrupts = <0x00 0x25 0x01>; + reg = <0x00 0xa002a00 0x00 0x200>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@a002c00 { + dma-coherent; + interrupts = <0x00 0x26 0x01>; + reg = <0x00 0xa002c00 0x00 0x200>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@a002e00 { + dma-coherent; + interrupts = <0x00 0x27 0x01>; + reg = <0x00 0xa002e00 0x00 0x200>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@a003000 { + dma-coherent; + interrupts = <0x00 0x28 0x01>; + reg = <0x00 0xa003000 0x00 0x200>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@a003200 { + dma-coherent; + interrupts = <0x00 0x29 0x01>; + reg = <0x00 0xa003200 0x00 0x200>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@a003400 { + dma-coherent; + interrupts = <0x00 0x2a 0x01>; + reg = <0x00 0xa003400 0x00 0x200>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@a003600 { + dma-coherent; + interrupts = <0x00 0x2b 0x01>; + reg = <0x00 0xa003600 0x00 0x200>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@a003800 { + dma-coherent; + interrupts = <0x00 0x2c 0x01>; + reg = <0x00 0xa003800 0x00 0x200>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@a003a00 { + dma-coherent; + interrupts = <0x00 0x2d 0x01>; + reg = <0x00 0xa003a00 0x00 0x200>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@a003c00 { + dma-coherent; + interrupts = <0x00 0x2e 0x01>; + reg = <0x00 0xa003c00 0x00 0x200>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@a003e00 { + dma-coherent; + interrupts = <0x00 0x2f 0x01>; + reg = <0x00 0xa003e00 0x00 0x200>; + compatible = "virtio,mmio"; + }; + + gpio-keys { + compatible = "gpio-keys"; + + poweroff { + gpios = <0x8005 0x03 0x00>; + linux,code = <0x74>; + label = "GPIO Key Poweroff"; + }; + }; + + pl061@9030000 { + phandle = <0x8005>; + clock-names = "apb_pclk"; + clocks = <0x8000>; + interrupts = <0x00 0x07 0x04>; + gpio-controller; + #gpio-cells = <0x02>; + compatible = "arm,pl061\0arm,primecell"; + reg = <0x00 0x9030000 0x00 0x1000>; + }; + + pcie@10000000 { + interrupt-map-mask = <0x1800 0x00 0x00 0x07>; + interrupt-map = <0x00 0x00 0x00 0x01 0x8003 0x00 0x00 0x00 0x03 0x04 0x00 0x00 0x00 0x02 0x8003 0x00 0x00 0x00 0x04 0x04 0x00 0x00 0x00 0x03 0x8003 0x00 0x00 0x00 0x05 0x04 0x00 0x00 0x00 0x04 0x8003 0x00 0x00 0x00 0x06 0x04 0x800 0x00 0x00 0x01 0x8003 0x00 0x00 0x00 0x04 0x04 0x800 0x00 0x00 0x02 0x8003 0x00 0x00 0x00 0x05 0x04 0x800 0x00 0x00 0x03 0x8003 0x00 0x00 0x00 0x06 0x04 0x800 0x00 0x00 0x04 0x8003 0x00 0x00 0x00 0x03 0x04 0x1000 0x00 0x00 0x01 0x8003 0x00 0x00 0x00 0x05 0x04 0x1000 0x00 0x00 0x02 0x8003 0x00 0x00 0x00 0x06 0x04 0x1000 0x00 0x00 0x03 0x8003 0x00 0x00 0x00 0x03 0x04 0x1000 0x00 0x00 0x04 0x8003 0x00 0x00 0x00 0x04 0x04 0x1800 0x00 0x00 0x01 0x8003 0x00 0x00 0x00 0x06 0x04 0x1800 0x00 0x00 0x02 0x8003 0x00 0x00 0x00 0x03 0x04 0x1800 0x00 0x00 0x03 0x8003 0x00 0x00 0x00 0x04 0x04 0x1800 0x00 0x00 0x04 0x8003 0x00 0x00 0x00 0x05 0x04>; + #interrupt-cells = <0x01>; + ranges = <0x1000000 0x00 0x00 0x00 0x3eff0000 0x00 0x10000 0x2000000 0x00 0x10000000 0x00 0x10000000 0x00 0x2eff0000 0x3000000 0x80 0x00 0x80 0x00 0x80 0x00>; + reg = <0x40 0x10000000 0x00 0x10000000>; + // reg = <0x00 0x10000000>; + msi-map = <0x00 0x8004 0x00 0x10000>; + dma-coherent; + bus-range = <0x00 0xff>; + linux,pci-domain = <0x00>; + #size-cells = <0x02>; + #address-cells = <0x03>; + device_type = "pci"; + compatible = "pci-host-ecam-generic"; + }; + + pl031@9010000 { + clock-names = "apb_pclk"; + clocks = <0x8000>; + interrupts = <0x00 0x02 0x04>; + reg = <0x00 0x9010000 0x00 0x1000>; + compatible = "arm,pl031\0arm,primecell"; + }; + + pl011@9040000 { + clock-names = "uartclk\0apb_pclk"; + clocks = <0x8000 0x8000>; + interrupts = <0x00 0x08 0x04>; + reg = <0x00 0x9040000 0x00 0x1000>; + compatible = "arm,pl011\0arm,primecell"; + }; + + pmu { + interrupts = <0x01 0x07 0x04>; + compatible = "arm,armv8-pmuv3"; + }; + + intc@8000000 { + phandle = <0x8003>; + interrupts = <0x01 0x09 0x04>; + reg = <0x00 0x8000000 0x00 0x10000 0x00 0x80a0000 0x00 0xf60000>; + #redistributor-regions = <0x01>; + compatible = "arm,gic-v3"; + ranges; + #size-cells = <0x02>; + #address-cells = <0x02>; + interrupt-controller; + #interrupt-cells = <0x03>; + + its@8080000 { + phandle = <0x8004>; + reg = <0x00 0x8080000 0x00 0x20000>; + #msi-cells = <0x01>; + msi-controller; + compatible = "arm,gic-v3-its"; + }; + }; + + flash@0 { + bank-width = <0x04>; + reg = <0x00 0x00 0x00 0x4000000 0x00 0x4000000 0x00 0x4000000>; + compatible = "cfi-flash"; + }; + + cpus { + #size-cells = <0x00>; + #address-cells = <0x01>; + + cpu-map { + + socket0 { + + cluster0 { + + core0 { + cpu = <0x8002>; + }; + + //core1 { + // cpu = <0x8001>; + //}; + }; + }; + }; + + cpu@0 { + phandle = <0x8002>; + reg = <0x00>; + enable-method = "psci"; + compatible = "arm,cortex-a57"; + device_type = "cpu"; + }; + + //cpu@1 { + // phandle = <0x8001>; + // reg = <0x01>; + // enable-method = "psci"; + // compatible = "arm,cortex-a57"; + // device_type = "cpu"; + //}; + }; + + timer { + interrupts = <0x01 0x0d 0x04 0x01 0x0e 0x04 0x01 0x0b 0x04 0x01 0x0a 0x04>; + always-on; + compatible = "arm,armv8-timer\0arm,armv7-timer"; + }; + + apb-pclk { + phandle = <0x8000>; + clock-output-names = "clk24mhz"; + clock-frequency = <0x16e3600>; + #clock-cells = <0x00>; + compatible = "fixed-clock"; + }; + + aliases { + serial0 = "/pl011@9040000"; + }; + + chosen { + bootargs = "earlycon console=ttyAMA0 root=/dev/vda rw audit=0 default_hugepagesz=32M hugepagesz=32M hugepages=4"; + stdout-path = "/pl011@9040000"; + rng-seed = <0x79361ef3 0x1a4e5964 0x9fb01da 0x749b376f 0x7036ec7c 0xdea25f0c 0x79d7ee4e 0xe2e216af>; + kaslr-seed = <0x2758c1 0xf528d3d5>; + }; +}; diff --git a/scripts/make/qemu.mk b/scripts/make/qemu.mk index 3225a076..a792fe6d 100644 --- a/scripts/make/qemu.mk +++ b/scripts/make/qemu.mk @@ -3,7 +3,9 @@ QEMU := qemu-system-$(ARCH) TELNET_PORT ?= 4321 +AUX_TELNET_PORT ?= 4322 SECOND_SERIAL ?= n +THIRD_SERIAL ?= n ifeq ($(BUS), mmio) vdev-suffix := device @@ -24,9 +26,14 @@ qemu_args-riscv64 := \ qemu_args-aarch64 := \ -cpu cortex-a72 \ - -machine virt,virtualization=on,gic-version=2 \ -kernel $(OUT_BIN) +ifeq ($(GICV3),y) + qemu_args-aarch64 += -machine virt,virtualization=on,gic-version=3 +else + qemu_args-aarch64 += -machine virt,virtualization=on,gic-version=2,its=on +endif + qemu_args-y := -m $(MEM) -smp $(SMP) $(qemu_args-$(ARCH)) qemu_args-$(BLK) += \ @@ -63,19 +70,23 @@ qemu_args-$(GRAPHIC) += \ ifeq ($(GRAPHIC), n) qemu_args-y += -nographic -endif - -ifeq ($(ARCH), aarch64) - qemu_args-y += -machine virtualization=on,gic-version=2 endif ifeq ($(QEMU_LOG), y) qemu_args-y += -D qemu.log -d in_asm,int,mmu,pcall,cpu_reset,guest_errors endif +ifeq ($(SECOND_SERIAL), n) + ifeq ($(THIRD_SERIAL), y) + $(error "THIRD_SERIAL cannot be set to 'y' if SECOND_SERIAL is 'n'.") + endif +endif + qemu_args-$(SECOND_SERIAL) += -serial mon:stdio \ -serial telnet:localhost:$(TELNET_PORT),server +qemu_args-$(THIRD_SERIAL) += -serial telnet:localhost:$(AUX_TELNET_PORT),server + qemu_args-debug := $(qemu_args-y) -s -S # Do not use KVM for debugging diff --git a/src/hal.rs b/src/hal.rs index a97df904..80934d30 100644 --- a/src/hal.rs +++ b/src/hal.rs @@ -129,6 +129,8 @@ pub(crate) fn enable_virtualization() { static CORES: AtomicUsize = AtomicUsize::new(0); + info!("Enabling hardware virtualization support on all cores..."); + for cpu_id in 0..config::SMP { thread::spawn(move || { // Initialize cpu affinity here. @@ -137,6 +139,8 @@ pub(crate) fn enable_virtualization() { "Initialize CPU affinity failed!" ); + info!("Enabling hardware virtualization support on core {}", cpu_id); + vmm::init_timer_percpu(); let percpu = unsafe { AXVM_PER_CPU.current_ref_mut_raw() }; @@ -153,11 +157,15 @@ pub(crate) fn enable_virtualization() { }); } + info!("Waiting for all cores to enable hardware virtualization..."); + // Wait for all cores to enable virtualization. while CORES.load(Ordering::Acquire) != config::SMP { // Use `yield_now` instead of `core::hint::spin_loop` to avoid deadlock. thread::yield_now(); } + + info!("All cores have enabled hardware virtualization support."); } #[axvisor_api::api_mod_impl(axvisor_api::memory)] @@ -265,24 +273,39 @@ mod arch_api_impl { #[cfg(target_arch = "aarch64")] extern fn read_vgicd_typer() -> u32 { - use axstd::os::arceos::modules::axhal::irq::MyVgic; - MyVgic::get_gicd().lock().get_typer() + // use axstd::os::arceos::modules::axhal::irq::MyVgic; + // MyVgic::get_gicd().lock().get_typer() + + use std::os::arceos::modules::{axconfig, axhal}; + use memory_addr::pa; + + let typer_phys_addr = axconfig::devices::GICD_PADDR + 0x4; + let typer_virt_addr = axhal::mem::phys_to_virt(pa!(typer_phys_addr)); + + unsafe { + core::ptr::read_volatile(typer_virt_addr.as_ptr_of::()) + } } #[cfg(target_arch = "aarch64")] extern fn read_vgicd_iidr() -> u32 { - use axstd::os::arceos::modules::axhal::irq::MyVgic; - MyVgic::get_gicd().lock().get_iidr() + // use axstd::os::arceos::modules::axhal::irq::MyVgic; + // MyVgic::get_gicd().lock().get_iidr() +0 } #[cfg(target_arch = "aarch64")] extern fn get_host_gicd_base() -> memory_addr::PhysAddr { - unimplemented!() + use std::os::arceos::api::config; + + config::devices::GICD_PADDR.into() } #[cfg(target_arch = "aarch64")] extern fn get_host_gicr_base() -> memory_addr::PhysAddr { - unimplemented!() + use std::os::arceos::api::config; + + config::devices::GICR_PADDR.into() } } diff --git a/src/vmm/mod.rs b/src/vmm/mod.rs index b4624e86..ab170b14 100644 --- a/src/vmm/mod.rs +++ b/src/vmm/mod.rs @@ -28,6 +28,7 @@ static VMM: AxWaitQueueHandle = AxWaitQueueHandle::new(); static RUNNING_VM_COUNT: AtomicUsize = AtomicUsize::new(0); pub fn init() { + info!("Initializing VMM..."); // Initialize guest VM according to config file. config::init_guest_vms(); From 46785a6dd460694cc823e998d6845ff988797c52 Mon Sep 17 00:00:00 2001 From: aarkegz Date: Wed, 11 Jun 2025 17:35:09 +0800 Subject: [PATCH 038/219] remove patches --- Cargo.lock | 48 ++++++++++++++++++++++++++++++++++++---------- Cargo.toml | 56 +++--------------------------------------------------- 2 files changed, 41 insertions(+), 63 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index d9182075..333736f5 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -117,9 +117,10 @@ dependencies = [ [[package]] name = "arceos_api" version = "0.1.0" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_irq_gicv3#00480405fc3e89f40d6d4263054687ba5918c873" dependencies = [ "axalloc", - "axconfig", + "axconfig 0.1.0 (git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_irq_gicv3)", "axdriver", "axerrno", "axfeat", @@ -136,6 +137,7 @@ dependencies = [ [[package]] name = "arm-gic-driver" version = "0.13.0" +source = "git+https://github.com/rcore-os/arm-gic-driver?rev=ad1fddc194f1cf5b7602e7f35a7136f823465cb0#ad1fddc194f1cf5b7602e7f35a7136f823465cb0" dependencies = [ "aarch64-cpu 10.0.0", "bitflags 2.9.0", @@ -165,6 +167,7 @@ dependencies = [ [[package]] name = "arm_vcpu" version = "0.1.0" +source = "git+https://github.com/arceos-hypervisor/arm_vcpu.git?branch=inject_interrupt_vgicv3#1fb5ac158dca756fb94d7fb03f8182da5f20cce2" dependencies = [ "aarch64-cpu 9.4.0", "aarch64_sysreg", @@ -184,6 +187,7 @@ dependencies = [ [[package]] name = "arm_vgic" version = "0.0.0" +source = "git+https://github.com/arceos-hypervisor/arm_vgic.git?branch=vmm_irq_gicv3#453e7b070573abefeb2ef1658234285591ad4b1d" dependencies = [ "arm_gicv2", "axaddrspace", @@ -217,6 +221,7 @@ checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" [[package]] name = "axaddrspace" version = "0.1.0" +source = "git+https://github.com/arceos-hypervisor/axaddrspace.git#2ed4d076e01f966710bd6480131abd3a9ffb8930" dependencies = [ "axerrno", "bit_field", @@ -234,6 +239,7 @@ dependencies = [ [[package]] name = "axalloc" version = "0.1.0" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_irq_gicv3#00480405fc3e89f40d6d4263054687ba5918c873" dependencies = [ "allocator", "axerrno", @@ -246,6 +252,15 @@ dependencies = [ [[package]] name = "axconfig" version = "0.1.0" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=debin%2Ftimer_api#35b7bc57a6cca5ac063a1d7b2748433687660b7c" +dependencies = [ + "axconfig-gen-macros", +] + +[[package]] +name = "axconfig" +version = "0.1.0" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_irq_gicv3#00480405fc3e89f40d6d4263054687ba5918c873" dependencies = [ "axconfig-gen-macros", ] @@ -275,7 +290,7 @@ dependencies = [ [[package]] name = "axdevice" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/axdevice.git?branch=inject_interrupt#a568439b883322d5873c33b44dc531124ebbfd19" +source = "git+https://github.com/arceos-hypervisor/axdevice.git?branch=inject_interrupt_vgicv3#e806d495f17678ab43389dc6386fd37b317de713" dependencies = [ "arm_vgic", "axaddrspace", @@ -302,9 +317,10 @@ dependencies = [ [[package]] name = "axdriver" version = "0.1.0" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_irq_gicv3#00480405fc3e89f40d6d4263054687ba5918c873" dependencies = [ "axalloc", - "axconfig", + "axconfig 0.1.0 (git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_irq_gicv3)", "axdriver_base", "axdriver_block", "axdriver_pci", @@ -359,6 +375,7 @@ dependencies = [ [[package]] name = "axfeat" version = "0.1.0" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_irq_gicv3#00480405fc3e89f40d6d4263054687ba5918c873" dependencies = [ "axalloc", "axdriver", @@ -375,6 +392,7 @@ dependencies = [ [[package]] name = "axfs" version = "0.1.0" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_irq_gicv3#00480405fc3e89f40d6d4263054687ba5918c873" dependencies = [ "axdriver", "axdriver_block", @@ -428,13 +446,14 @@ dependencies = [ [[package]] name = "axhal" version = "0.1.0" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_irq_gicv3#00480405fc3e89f40d6d4263054687ba5918c873" dependencies = [ "aarch64-cpu 10.0.0", "arm-gic-driver", "arm_gicv2", "arm_pl011", "axalloc", - "axconfig", + "axconfig 0.1.0 (git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_irq_gicv3)", "axlog", "bitflags 2.9.0", "cfg-if", @@ -477,8 +496,9 @@ dependencies = [ [[package]] name = "axipi" version = "0.1.0" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_irq_gicv3#00480405fc3e89f40d6d4263054687ba5918c873" dependencies = [ - "axconfig", + "axconfig 0.1.0 (git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_irq_gicv3)", "axhal", "kspin", "lazyinit", @@ -489,6 +509,7 @@ dependencies = [ [[package]] name = "axlog" version = "0.1.0" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_irq_gicv3#00480405fc3e89f40d6d4263054687ba5918c873" dependencies = [ "cfg-if", "crate_interface", @@ -499,9 +520,10 @@ dependencies = [ [[package]] name = "axmm" version = "0.1.0" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_irq_gicv3#00480405fc3e89f40d6d4263054687ba5918c873" dependencies = [ "axalloc", - "axconfig", + "axconfig 0.1.0 (git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_irq_gicv3)", "axerrno", "axhal", "kspin", @@ -514,6 +536,7 @@ dependencies = [ [[package]] name = "axns" version = "0.1.0" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_irq_gicv3#00480405fc3e89f40d6d4263054687ba5918c873" dependencies = [ "crate_interface", "lazyinit", @@ -522,9 +545,10 @@ dependencies = [ [[package]] name = "axruntime" version = "0.1.0" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_irq_gicv3#00480405fc3e89f40d6d4263054687ba5918c873" dependencies = [ "axalloc", - "axconfig", + "axconfig 0.1.0 (git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_irq_gicv3)", "axdriver", "axfs", "axhal", @@ -542,6 +566,7 @@ dependencies = [ [[package]] name = "axstd" version = "0.1.0" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_irq_gicv3#00480405fc3e89f40d6d4263054687ba5918c873" dependencies = [ "arceos_api", "axerrno", @@ -553,6 +578,7 @@ dependencies = [ [[package]] name = "axsync" version = "0.1.0" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_irq_gicv3#00480405fc3e89f40d6d4263054687ba5918c873" dependencies = [ "axtask", "kspin", @@ -561,8 +587,9 @@ dependencies = [ [[package]] name = "axtask" version = "0.1.0" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_irq_gicv3#00480405fc3e89f40d6d4263054687ba5918c873" dependencies = [ - "axconfig", + "axconfig 0.1.0 (git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_irq_gicv3)", "axhal", "cfg-if", "cpumask", @@ -580,7 +607,7 @@ dependencies = [ [[package]] name = "axvcpu" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/axvcpu.git?branch=inject_interrupt#15bd90e3f175996a703b0e45fcfce22e91aa1d74" +source = "git+https://github.com/arceos-hypervisor/axvcpu.git?branch=inject_interrupt#8a45916dd597ab7473e6693658f66d850f6e0f0e" dependencies = [ "axaddrspace", "axerrno", @@ -593,7 +620,7 @@ name = "axvisor" version = "0.1.0" dependencies = [ "axaddrspace", - "axconfig", + "axconfig 0.1.0 (git+https://github.com/arceos-hypervisor/arceos.git?branch=debin%2Ftimer_api)", "axdevice", "axdevice_base", "axerrno", @@ -645,6 +672,7 @@ dependencies = [ [[package]] name = "axvm" version = "0.1.0" +source = "git+https://github.com/arceos-hypervisor/axvm.git?branch=inject_interrupt_vgicv3#02b4e6d49ac7386caad8f8724532580c4c87fd1f" dependencies = [ "arm_vcpu", "axaddrspace", diff --git a/Cargo.toml b/Cargo.toml index 4febe574..179ef36b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -23,7 +23,7 @@ lazyinit = "0.2" timer_list = "0.1.0" # System dependent modules provided by ArceOS. -axstd = { git = "https://github.com/arceos-hypervisor/arceos.git", branch = "debin/timer_api", features = [ +axstd = { git = "https://github.com/arceos-hypervisor/arceos.git", branch = "vmm_irq_gicv3", features = [ "alloc", "paging", # "fs", @@ -37,7 +37,7 @@ axstd = { git = "https://github.com/arceos-hypervisor/arceos.git", branch = "deb ] } # System dependent modules provided by ArceOS-Hypervisor. -axvm = { git = "https://github.com/arceos-hypervisor/axvm.git", branch = "inject_interrupt" } +axvm = { git = "https://github.com/arceos-hypervisor/axvm.git", branch = "inject_interrupt_vgicv3" } axvcpu = { git = "https://github.com/arceos-hypervisor/axvcpu.git", branch = "inject_interrupt" } axaddrspace = { git = "https://github.com/arceos-hypervisor/axaddrspace.git" } @@ -51,7 +51,7 @@ page_table_entry = { version = "0.5", features = ["arm-el2"] } page_table_multiarch = "0.5" percpu = { version = "0.2", features = ["arm-el2"] } -axdevice = { git = "https://github.com/arceos-hypervisor/axdevice.git", branch = "inject_interrupt" } +axdevice = { git = "https://github.com/arceos-hypervisor/axdevice.git", branch = "inject_interrupt_vgicv3" } axdevice_base = { git = "https://github.com/arceos-hypervisor/axdevice_crates.git", branch = "inject_interrupt" } axvisor_api = { git = "https://github.com/arceos-hypervisor/axvisor_api.git", branch = "inject_interrupt" } @@ -61,53 +61,3 @@ axconfig = { git = "https://github.com/arceos-hypervisor/arceos.git", branch = " prettyplease = "0.2" quote = "1.0" syn = "2.0" - -# [patch."https://github.com/arceos-hypervisor/axvcpu.git"] -# axvcpu = { path = "../axvcpu" } - -# [patch."https://github.com/arceos-hypervisor/axvisor_api.git"] -# axvisor_api = { path = "../axvisor_api" } - -# [patch."https://github.com/arceos-hypervisor/x86_vcpu.git"] -# x86_vcpu = { path = "../x86_vcpu" } - -# [patch."https://github.com/arceos-hypervisor/x86_vlapic.git"] -# x86_vlapic = { path = "../x86_vlapic" } - -# [patch."https://github.com/arceos-hypervisor/axvm.git"] -# axvm = { path = "../axvm" } - -# [patch."https://github.com/arceos-hypervisor/axdevice.git"] -# axdevice = { path = "../axdevice" } - -# [patch."https://github.com/arceos-hypervisor/axdevice_crates.git"] -# axdevice_base = { path = "../axdevice_crates/axdevice_base" } - -# [patch."https://github.com/arceos-hypervisor/arceos.git"] -# axstd = { path = "../arceos-new/ulib/axstd", features = [ -# "alloc", -# "paging", -# "ipi", -# "smp", -# "irq" -# ]} -# axconfig = { path = "../arceos-new/modules/axconfig" } - -[patch."https://github.com/arceos-hypervisor/arm_vcpu.git"] -arm_vcpu = { path = "../arm_vcpu" } - -[patch."https://github.com/arceos-hypervisor/arm_vgic.git"] -arm_vgic = { path = "../arm_vgic" } - -[patch."https://github.com/arceos-hypervisor/axvm.git"] -axvm = { path = "../axvm" } - -[patch."https://github.com/arceos-hypervisor/arceos.git"] -axstd = { path = "../arceos/ulib/axstd" } -axconfig = { path = "../arceos/modules/axconfig" } - -[patch."https://github.com/rcore-os/arm-gic-driver"] -arm-gic-driver = { path = "../arm-gic-driver" } - -[patch."https://github.com/arceos-hypervisor/axaddrspace.git"] -axaddrspace = { path = "../axaddrspace" } From fba41862ca244a4aae7aa469ba232fc507cae6ea Mon Sep 17 00:00:00 2001 From: Gallium70 <52118815+Gallium70@users.noreply.github.com> Date: Wed, 11 Jun 2025 17:57:19 +0800 Subject: [PATCH 039/219] [feat/rk3588] Add a minimal device tree and config for booting second Linux VM --- configs/vms/aio-rk3588-jd4-vm2.dts | 12912 +--------------- ...toml => linux-rk3588-aarch64-smp-vm2.toml} | 21 +- 2 files changed, 190 insertions(+), 12743 deletions(-) rename configs/vms/{linux-rk3588-aarch64-smp-vm1.toml => linux-rk3588-aarch64-smp-vm2.toml} (81%) diff --git a/configs/vms/aio-rk3588-jd4-vm2.dts b/configs/vms/aio-rk3588-jd4-vm2.dts index 79cedc5f..fc9561be 100644 --- a/configs/vms/aio-rk3588-jd4-vm2.dts +++ b/configs/vms/aio-rk3588-jd4-vm2.dts @@ -8,335 +8,193 @@ interrupt-parent = <0x01>; compatible = "rockchip,aio-3588jd4\0rockchip,rk3588"; - pcie30-avdd1v8 { - regulator-max-microvolt = <0x1b7740>; - regulator-boot-on; - regulator-always-on; - regulator-min-microvolt = <0x1b7740>; - regulator-name = "pcie30_avdd1v8"; - compatible = "regulator-fixed"; - phandle = <0x4a6>; - vin-supply = <0x1de>; + chosen { + linux,initrd-start = <0x01 0x0a200000>; + linux,initrd-end = <0x01 0x0a320410>; + bootargs = "rw earlycon=uart8250,mmio32,0xfeb50000 console=ttyS2,115200n8 irqchip.gicv3_pseudo_nmi=0 initcall_debug"; + phandle = <0x48d>; }; - syscon@fd5bc000 { - compatible = "rockchip,pipe-phy-grf\0syscon"; - reg = <0x00 0xfd5bc000 0x00 0x100>; - phandle = <0x194>; + memory { + device_type = "memory"; + reg = <0x01 0x00000000 0x00 0xe0000000 >; }; - vcc5v0-host3 { - regulator-max-microvolt = <0x4c4b40>; - regulator-boot-on; - gpio = <0x182 0x07 0x00>; - regulator-always-on; - enable-active-high; - regulator-min-microvolt = <0x4c4b40>; - regulator-name = "vcc5v0_host3"; - compatible = "regulator-fixed"; - status = "disabled"; - phandle = <0x4a2>; - vin-supply = <0x1dd>; - }; + cpus { + #address-cells = <0x01>; + #size-cells = <0x00>; - pwm@febd0030 { - pinctrl-names = "active"; - pinctrl-0 = <0x16c>; - clock-names = "pwm\0pclk"; - interrupts = <0x00 0x15a 0x04 0x00 0x15b 0x04>; - clocks = <0x02 0x54 0x02 0x53>; - #pwm-cells = <0x03>; - compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; - status = "disabled"; - reg = <0x00 0xfebd0030 0x00 0x10>; - phandle = <0x2d4>; - }; + cpu@0 { + device_type = "cpu"; + compatible = "arm,cortex-a55"; + reg = <0x00>; + enable-method = "psci"; + clocks = <0x0e 0x00>; + cpu-idle-states = <0x10>; + operating-points-v2 = <0x0f>; + capacity-dmips-mhz = <0x212>; - rkisp@fdcc0000 { - power-domains = <0x60 0x1c>; - iommus = <0xd1>; - clock-names = "aclk_isp\0hclk_isp\0clk_isp_core\0clk_isp_core_marvin\0clk_isp_core_vicap"; - interrupts = <0x00 0x87 0x04 0x00 0x89 0x04 0x00 0x8a 0x04>; - clocks = <0x02 0x120 0x02 0x121 0x02 0x11d 0x02 0x11e 0x02 0x11f>; - compatible = "rockchip,rk3588-rkisp"; - status = "disabled"; - interrupt-names = "isp_irq\0mi_irq\0mipi_irq"; - reg = <0x00 0xfdcc0000 0x00 0x7f00>; - phandle = <0x5a>; - }; + cpu-supply = <0x12>; + mem-supply = <0x12>; + dynamic-power-coefficient = <0x64>; - qos@fdf66600 { - compatible = "syscon"; - reg = <0x00 0xfdf66600 0x00 0x20>; - phandle = <0x96>; - }; + i-cache-line-size = <0x40>; + i-cache-size = <0x8000>; + i-cache-sets = <0x80>; - serial@febb0000 { - reg-io-width = <0x04>; - pinctrl-names = "default"; - pinctrl-0 = <0x167>; - clock-names = "baudclk\0apb_pclk"; - interrupts = <0x00 0x153 0x04>; - clocks = <0x02 0xd3 0x02 0xb2>; - compatible = "rockchip,rk3588-uart\0snps,dw-apb-uart"; - status = "disabled"; - reg = <0x00 0xfebb0000 0x00 0x100>; - phandle = <0x2d0>; - dmas = <0xf2 0x09 0xf2 0x0a>; - reg-shift = <0x02>; - }; + d-cache-line-size = <0x40>; + d-cache-size = <0x8000>; + d-cache-sets = <0x80>; - qos@fdf41000 { - compatible = "syscon"; - reg = <0x00 0xfdf41000 0x00 0x20>; - phandle = <0xa6>; - }; + next-level-cache = <0x11>; + #cooling-cells = <0x02>; + phandle = <0x06>; + }; - csi2-dcphy1 { - rockchip,hw = <0x2d 0x2e>; - phy-names = "dcphy0\0dcphy1"; - compatible = "rockchip,rk3588-csi2-dphy"; - status = "disabled"; - phys = <0x2f 0x30>; - phandle = <0x20e>; - }; + l2-cache-l0 { + compatible = "cache"; + cache-size = <0x20000>; + cache-sets = <0x200>; + cache-line-size = <0x40>; + next-level-cache = <0x1e>; + phandle = <0x11>; + }; - rkispp0-vir0 { - rockchip,hw = <0x5b>; - compatible = "rockchip,rk3588-rkispp-vir"; - status = "disabled"; - phandle = <0x243>; - }; + l3-cache { + compatible = "cache"; + cache-size = <0x300000>; + cache-sets = <0x1000>; + cache-line-size = <0x40>; + phandle = <0x1e>; + }; - wireless-bluetooth { - pinctrl-names = "default\0rts_gpio"; - pinctrl-0 = <0x1e5 0x1e6 0x1e7 0x1e8>; - clock-names = "ext_clock"; - BT,power_gpio = <0x7b 0x16 0x00>; - clocks = <0x1e4>; - BT,wake_gpio = <0x7b 0x15 0x00>; - uart_rts_gpios = <0xfe 0x02 0x01>; - compatible = "bluetooth-platdata"; - BT,wake_host_irq = <0x7b 0x00 0x00>; - pinctrl-1 = <0x1e9>; - status = "disabled"; - phandle = <0x4aa>; - }; + idle-states { + entry-method = "psci"; - pwm@febd0020 { - pinctrl-names = "active"; - pinctrl-0 = <0x16b>; - clock-names = "pwm\0pclk"; - interrupts = <0x00 0x15a 0x04>; - clocks = <0x02 0x54 0x02 0x53>; - #pwm-cells = <0x03>; - compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; - status = "disabled"; - reg = <0x00 0xfebd0020 0x00 0x10>; - phandle = <0x2d3>; - }; + cpu-sleep { + compatible = "arm,idle-state"; + entry-latency-us = <0x64>; + exit-latency-us = <0x78>; + min-residency-us = <0x3e8>; + local-timer-stop; + arm,psci-suspend-param = <0x10000>; + phandle = <0x10>; + }; + }; - qos@fdf39000 { - compatible = "syscon"; - reg = <0x00 0xfdf39000 0x00 0x20>; - phandle = <0xaf>; + cpu-map { + cluster0 { + core0 { + cpu = <0x06>; + }; + }; + }; }; - cam0-cam1-switch { - regulator-max-microvolt = <0x1b7740>; - pinctrl-names = "default"; - regulator-boot-on; - gpio = <0x181 0x11 0x00>; - pinctrl-0 = <0x1f0>; - regulator-always-on; - enable-active-high; - regulator-min-microvolt = <0x1b7740>; - regulator-name = "cam0_cam1_switch"; - compatible = "regulator-fixed"; - status = "okay"; - phandle = <0x4b2>; - }; + sram@10f000 { + #address-cells = <0x01>; + #size-cells = <0x01>; + compatible = "mmio-sram"; + ranges = <0x00 0x00 0x10f000 0x100>; + reg = <0x00 0x10f000 0x00 0x100>; - qos@fdf3e400 { - compatible = "syscon"; - reg = <0x00 0xfdf3e400 0x00 0x20>; - phandle = <0xad>; + sram@0 { + compatible = "arm,scmi-shmem"; + reg = <0x00 0x100>; + phandle = <0x46>; + }; }; - mipi2-csi2 { - rockchip,hw = <0x47 0x48 0x49 0x4a 0x4b 0x4c>; - compatible = "rockchip,rk3588-mipi-csi2"; - status = "okay"; - firefly-compatible; - phandle = <0x226>; + firmware { + sdei { + method = "smc"; + compatible = "arm,sdei-1.0"; + phandle = <0x221>; + }; - ports { + scmi { + shmem = <0x46>; #address-cells = <0x01>; #size-cells = <0x00>; + compatible = "arm,scmi-smc"; + phandle = <0x220>; + arm,smc-id = <0x82000010>; - port@0 { - #address-cells = <0x01>; - #size-cells = <0x00>; - reg = <0x00>; - - endpoint@0 { - remote-endpoint = <0x4d>; - reg = <0x00>; - phandle = <0x33>; - }; + protocol@16 { + #reset-cells = <0x01>; + reg = <0x16>; + phandle = <0x11a>; }; - port@1 { - #address-cells = <0x01>; - #size-cells = <0x00>; - reg = <0x01>; - - endpoint@0 { - remote-endpoint = <0x4e>; - reg = <0x00>; - phandle = <0x54>; - }; + protocol@14 { + assigned-clocks = <0x0e 0x00 0x0e 0x02 0x0e 0x03>; + assigned-clock-rates = <0x30a32c00 0x30a32c00 0x30a32c00>; + #clock-cells = <0x01>; + reg = <0x14>; + phandle = <0x0e>; }; }; }; - iommu@fdc48700 { - power-domains = <0x60 0x0f>; - rockchip,shootdown-entire; - clock-names = "aclk\0iface"; - interrupts = <0x00 0x62 0x04>; - clocks = <0x02 0x195 0x02 0x194>; - rockchip,enable-cmd-retry; - #iommu-cells = <0x00>; - compatible = "rockchip,iommu-v2"; - rockchip,disable-mmu-reset; - status = "okay"; - interrupt-names = "irq_rkvdec1_mmu"; - reg = <0x00 0xfdc48700 0x00 0x40 0x00 0xfdc48740 0x00 0x40>; - phandle = <0xcc>; - rockchip,master-handle-irq; - }; - - clock-controller@fd7c0000 { - #reset-cells = <0x01>; - assigned-clocks = <0x02 0x09 0x02 0x05 0x02 0x08 0x02 0x07 0x02 0xd8 0x02 0xda 0x02 0xd9 0x02 0x10e 0x02 0x10f 0x02 0x110 0x02 0x299 0x02 0x29a 0x02 0x7b 0x02 0xec 0x02 0x114 0x02 0x208 0x02 0x20e 0x02 0x21f 0x02 0x77>; - assigned-clock-rates = <0x4190ab00 0x2ee00000 0x32a9f880 0x46cf7100 0x29d7ab80 0x17d78400 0x1dcd6500 0x2cb41780 0x5f5e100 0x17d78400 0x5f5e100 0xbebc200 0x165a0bc0 0x8f0d180 0xbebc200 0xb71b00 0xb71b00 0x5e69ec0 0x1312d00>; - #clock-cells = <0x01>; - compatible = "rockchip,rk3588-cru"; - rockchip,grf = <0x76>; - reg = <0x00 0xfd7c0000 0x00 0x5c000>; - phandle = <0x02>; - }; - - qos@fdf81000 { - compatible = "syscon"; - reg = <0x00 0xfdf81000 0x00 0x20>; - phandle = <0xa0>; - }; - - qos@fdf36000 { - compatible = "syscon"; - reg = <0x00 0xfdf36000 0x00 0x20>; - phandle = <0xaa>; - }; - - i2s@fe4a0000 { - power-domains = <0x60 0x26>; - pinctrl-names = "default\0idle\0clk"; - pinctrl-2 = <0x132 0x133>; - pinctrl-0 = <0x12f 0x130>; - clock-names = "i2s_clk\0i2s_hclk"; - assigned-clocks = <0x02 0x2a>; - assigned-clock-parents = <0x02 0x05>; - interrupts = <0x00 0xb7 0x04>; - clocks = <0x02 0x2d 0x02 0x23>; - dma-names = "tx\0rx"; - #sound-dai-cells = <0x00>; - compatible = "rockchip,rk3588-i2s\0rockchip,rk3066-i2s"; - pinctrl-1 = <0x131>; - status = "disabled"; - reg = <0x00 0xfe4a0000 0x00 0x1000>; - phandle = <0x299>; - dmas = <0xf1 0x02 0xf1 0x03>; - rockchip,clk-trcm = <0x01>; - }; - - syscon@fd5c4000 { - compatible = "rockchip,pipe-phy-grf\0syscon"; - reg = <0x00 0xfd5c4000 0x00 0x100>; - phandle = <0x195>; + timer { + interrupts = <0x01 0x0d 0xf04 0x01 0x0e 0xf04 0x01 0x0b 0xf04 0x01 0x0a 0xf04>; + compatible = "arm,armv8-timer"; }; - sram@ff001000 { - #address-cells = <0x01>; - #size-cells = <0x01>; - compatible = "mmio-sram"; - ranges = <0x00 0x00 0xff001000 0xef000>; - reg = <0x00 0xff001000 0x00 0xef000>; - phandle = <0x2eb>; - - rkvdec-sram@0 { - reg = <0x00 0x78000>; - phandle = <0xcb>; - }; + interrupt-controller@fe600000 { + #address-cells = <0x02>; + interrupts = <0x01 0x09 0x04>; + #size-cells = <0x02>; + compatible = "arm,gic-v3"; + ranges; + #interrupt-cells = <0x03>; + reg = <0x00 0xfe600000 0x00 0x10000 0x00 0xfe680000 0x00 0x100000>; + phandle = <0x01>; + interrupt-controller; - rkvdec-sram@78000 { - reg = <0x78000 0x77000>; - phandle = <0xcd>; - }; }; - uio@fe1c0000 { - compatible = "rockchip,uio-gmac"; - status = "disabled"; - reg = <0x00 0xfe1c0000 0x00 0x10000>; - phandle = <0x28e>; - rockchip,ethernet = <0x109>; + psci { + method = "smc"; + compatible = "arm,psci-1.0"; }; - pwm@febd0010 { - pinctrl-names = "active"; - pinctrl-0 = <0x16a>; - clock-names = "pwm\0pclk"; - interrupts = <0x00 0x15a 0x04>; - clocks = <0x02 0x54 0x02 0x53>; - #pwm-cells = <0x03>; - compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; + serial@feb50000 { + reg-io-width = <0x04>; + pinctrl-names = "default"; + pinctrl-0 = <0x161>; + interrupts = <0x00 0x14d 0x04>; + // Avoid driver messing with CRU + clock-frequency = <24000000>; + // clock-names = "baudclk\0apb_pclk"; + // clocks = <0x02 0xbb 0x02 0xac>; + compatible = "rockchip,rk3588-uart\0snps,dw-apb-uart"; status = "okay"; - reg = <0x00 0xfebd0010 0x00 0x10>; - phandle = <0x1ed>; + reg = <0x00 0xfeb50000 0x00 0x100>; + phandle = <0x2ca>; + dmas = <0x7c 0x0a 0x7c 0x0b>; + reg-shift = <0x02>; }; - rkisp1-vir3 { - rockchip,hw = <0x5a>; - compatible = "rockchip,rkisp-vir"; - status = "disabled"; - phandle = <0x242>; + aliases { + serial2 = "/serial@feb50000"; }; - pcie-clk2 { - regulator-boot-on; - regulator-always-on; - regulator-name = "pcie_clk2"; - compatible = "regulator-fixed"; - status = "okay"; - phandle = <0x495>; - gpios = <0x181 0x16 0x01>; + __symbols__ { + chosen = "/chosen"; + gic = "/interrupt-controller@fe600000"; + uart2 = "/serial@feb50000"; + + scmi_shmem = "/sram@10f000/sram@0"; + scmi = "/firmware/scmi"; + scmi_reset = "/firmware/scmi/protocol@16"; + scmi_clk = "/firmware/scmi/protocol@14"; }; - serial@feb40000 { - reg-io-width = <0x04>; - pinctrl-names = "default"; - pinctrl-0 = <0x160>; - clock-names = "baudclk\0apb_pclk"; - interrupts = <0x00 0x14c 0x04>; - clocks = <0x02 0xb7 0x02 0xab>; - compatible = "rockchip,rk3588-uart\0snps,dw-apb-uart"; - status = "disabled"; - reg = <0x00 0xfeb40000 0x00 0x100>; - phandle = <0x2c9>; - dmas = <0x7c 0x08 0x7c 0x09>; - reg-shift = <0x02>; + syscon@fd5f0000 { + compatible = "rockchip,rk3588-ioc\0syscon"; + reg = <0x00 0xfd5f0000 0x00 0x10000>; + phandle = <0x196>; }; pinctrl { @@ -347,12477 +205,63 @@ rockchip,grf = <0x196>; phandle = <0x197>; - eth0 { - - eth0-pins { - rockchip,pins = <0x02 0x13 0x01 0x198>; - phandle = <0x46c>; - }; - }; - - i2c3 { + uart2 { - i2c3m3-xfer { - rockchip,pins = <0x02 0x0a 0x09 0x19d 0x02 0x0b 0x09 0x19d>; - phandle = <0x361>; + uart2-rtsn { + rockchip,pins = <0x03 0x0b 0x0a 0x198>; + phandle = <0x427>; }; - i2c3m2-xfer { - rockchip,pins = <0x04 0x04 0x09 0x19d 0x04 0x05 0x09 0x19d>; - phandle = <0x14a>; + uart2m1-xfer { + rockchip,pins = <0x04 0x19 0x0a 0x19e 0x04 0x18 0x0a 0x19e>; + phandle = <0x161>; }; - i2c3m1-xfer { - rockchip,pins = <0x03 0x0f 0x09 0x19d 0x03 0x10 0x09 0x19d>; - phandle = <0x35f>; + uart2m0-xfer { + rockchip,pins = <0x00 0x0e 0x0a 0x19e 0x00 0x0d 0x0a 0x19e>; + phandle = <0x1ce>; }; - i2c3m0-xfer { - rockchip,pins = <0x01 0x11 0x09 0x19d 0x01 0x10 0x09 0x19d>; - phandle = <0x35e>; + uart2-ctsn { + rockchip,pins = <0x03 0x0c 0x0a 0x198>; + phandle = <0x426>; }; - i2c3m4-xfer { - rockchip,pins = <0x04 0x18 0x09 0x19d 0x04 0x19 0x09 0x19d>; - phandle = <0x360>; + uart2m2-xfer { + rockchip,pins = <0x03 0x0a 0x0a 0x19e 0x03 0x09 0x0a 0x19e>; + phandle = <0x425>; }; }; - pwm9 { + // output - pwm9m2-pins { - rockchip,pins = <0x03 0x19 0x0b 0x198>; - phandle = <0x3d7>; - }; - - pwm9m1-pins { - rockchip,pins = <0x04 0x19 0x0b 0x198>; - phandle = <0x3d6>; - }; + // pull up - pwm9m0-pins { - rockchip,pins = <0x03 0x08 0x0b 0x198>; - phandle = <0x16e>; - }; + pcfg-pull-up { + phandle = <0x19e>; + bias-pull-up; }; - pcfg-pull-none-drv-level-7 { - drive-strength = <0x07>; - bias-disable; - phandle = <0x451>; + pcfg-pull-up-drv-level-2 { + drive-strength = <0x02>; + phandle = <0x199>; + bias-pull-up; }; - mipi { - - mipi-te1 { - rockchip,pins = <0x03 0x13 0x02 0x198>; - phandle = <0x39f>; - }; - - mipim1-camera2-clk { - rockchip,pins = <0x03 0x07 0x04 0x198>; - phandle = <0x39b>; - }; - - mipim0-camera0-clk { - rockchip,pins = <0x04 0x09 0x01 0x198>; - phandle = <0x395>; - }; - - mipim0-camera4-clk { - rockchip,pins = <0x01 0x1f 0x02 0x198>; - phandle = <0x399>; - }; - - mipim1-camera3-clk { - rockchip,pins = <0x03 0x08 0x04 0x198>; - phandle = <0x39c>; - }; - - mipim0-camera1-clk { - rockchip,pins = <0x01 0x0e 0x02 0x198>; - phandle = <0x396>; - }; - - mipim1-camera0-clk { - rockchip,pins = <0x03 0x05 0x04 0x198>; - phandle = <0x39a>; - }; - - mipim1-camera4-clk { - rockchip,pins = <0x03 0x09 0x04 0x198>; - phandle = <0x39d>; - }; - - mipim0-camera2-clk { - rockchip,pins = <0x01 0x0f 0x02 0x198>; - phandle = <0x397>; - }; - - mipi-te0 { - rockchip,pins = <0x03 0x12 0x02 0x198>; - phandle = <0x39e>; - }; - - mipim1-camera1-clk { - rockchip,pins = <0x03 0x06 0x04 0x198>; - phandle = <0x180>; - }; - - mipim0-camera3-clk { - rockchip,pins = <0x01 0x1e 0x02 0x198>; - phandle = <0x398>; - }; + pcfg-pull-up-drv-level-6 { + drive-strength = <0x06>; + phandle = <0x19a>; + bias-pull-up; }; - pwm14 { + // pull down - pwm14m2-pins { - rockchip,pins = <0x01 0x1e 0x0b 0x198>; - phandle = <0x3e1>; - }; - - pwm14m1-pins { - rockchip,pins = <0x04 0x0a 0x0b 0x198>; - phandle = <0x3e0>; - }; - - pwm14m0-pins { - rockchip,pins = <0x03 0x12 0x0b 0x198>; - phandle = <0x173>; - }; - }; + // pull none - pcfg-pull-none-drv-level-4-smt { - drive-strength = <0x04>; + pcfg-pull-none { bias-disable; - input-schmitt-enable; - phandle = <0x303>; - }; - - headphone { - - hp-det { - rockchip,pins = <0x02 0x13 0x00 0x198>; - phandle = <0x1dc>; - }; + phandle = <0x198>; }; + }; - npu { - - npu-pins { - rockchip,pins = <0x00 0x16 0x02 0x198>; - phandle = <0x3a0>; - }; - }; - - wireless-bluetooth { - - bt-reset-gpio { - rockchip,pins = <0x00 0x16 0x00 0x198>; - phandle = <0x1e6>; - }; - - bt-irq-gpio { - rockchip,pins = <0x00 0x00 0x00 0x198>; - phandle = <0x1e8>; - }; - - bt-wake-gpio { - rockchip,pins = <0x00 0x15 0x00 0x198>; - phandle = <0x1e7>; - }; - - uart6-gpios { - rockchip,pins = <0x01 0x02 0x00 0x198>; - phandle = <0x1e9>; - }; - }; - - pcie30x1 { - - pcie30x1-1-button-rstn { - rockchip,pins = <0x04 0x0a 0x04 0x198>; - phandle = <0x3a9>; - }; - - pcie30x1m1-pins { - rockchip,pins = <0x04 0x03 0x04 0x198 0x04 0x05 0x04 0x198 0x04 0x04 0x04 0x198 0x04 0x00 0x04 0x198 0x04 0x02 0x04 0x198 0x04 0x01 0x04 0x198>; - phandle = <0x3a6>; - }; - - pcie30x1m0-pins { - rockchip,pins = <0x00 0x10 0x0c 0x198 0x00 0x15 0x0c 0x198 0x00 0x14 0x0c 0x198 0x00 0x0d 0x0c 0x198 0x00 0x0f 0x0c 0x198 0x00 0x0e 0x0c 0x198>; - phandle = <0x3a5>; - }; - - pcie30x1-0-button-rstn { - rockchip,pins = <0x04 0x09 0x04 0x198>; - phandle = <0x3a8>; - }; - - pcie30x1m2-pins { - rockchip,pins = <0x01 0x0d 0x04 0x198 0x01 0x0c 0x04 0x198 0x01 0x0b 0x04 0x198 0x01 0x00 0x04 0x198 0x01 0x07 0x04 0x198 0x01 0x01 0x04 0x198>; - phandle = <0x3a7>; - }; - }; - - uart8 { - - uart8m0-rtsn { - rockchip,pins = <0x04 0x0a 0x0a 0x198>; - phandle = <0x443>; - }; - - uart8m1-ctsn { - rockchip,pins = <0x03 0x05 0x0a 0x198>; - phandle = <0x444>; - }; - - uart8m0-ctsn { - rockchip,pins = <0x04 0x0b 0x0a 0x198>; - phandle = <0x442>; - }; - - uart8m1-xfer { - rockchip,pins = <0x03 0x03 0x0a 0x19e 0x03 0x02 0x0a 0x19e>; - phandle = <0x167>; - }; - - uart8m0-xfer { - rockchip,pins = <0x04 0x09 0x0a 0x19e 0x04 0x08 0x0a 0x19e>; - phandle = <0x441>; - }; - - uart8-xfer { - rockchip,pins = <0x04 0x09 0x0a 0x19e>; - phandle = <0x446>; - }; - - uart8m1-rtsn { - rockchip,pins = <0x03 0x04 0x0a 0x198>; - phandle = <0x445>; - }; - }; - - spi2 { - - spi2m0-cs1 { - rockchip,pins = <0x01 0x08 0x08 0x19a>; - phandle = <0x404>; - }; - - spi2m2-cs0 { - rockchip,pins = <0x00 0x09 0x01 0x19f>; - phandle = <0x154>; - }; - - spi2m1-cs1 { - rockchip,pins = <0x04 0x08 0x08 0x19a>; - phandle = <0x407>; - }; - - spi2m2-pins { - rockchip,pins = <0x00 0x05 0x01 0x19f 0x00 0x0b 0x01 0x19f 0x00 0x06 0x01 0x19f>; - phandle = <0x155>; - }; - - spi2m1-pins { - rockchip,pins = <0x04 0x06 0x08 0x19a 0x04 0x04 0x08 0x19a 0x04 0x05 0x08 0x19a>; - phandle = <0x405>; - }; - - spi2m2-cs1 { - rockchip,pins = <0x00 0x08 0x01 0x19f>; - phandle = <0x408>; - }; - - spi2m0-cs0 { - rockchip,pins = <0x01 0x07 0x08 0x19a>; - phandle = <0x403>; - }; - - spi2m0-pins { - rockchip,pins = <0x01 0x06 0x08 0x19a 0x01 0x04 0x08 0x19a 0x01 0x05 0x08 0x19a>; - phandle = <0x402>; - }; - - spi2m1-cs0 { - rockchip,pins = <0x04 0x07 0x08 0x19a>; - phandle = <0x406>; - }; - }; - - pcfg-pull-up-drv-level-15 { - drive-strength = <0x0f>; - phandle = <0x462>; - bias-pull-up; - }; - - pcfg-pull-down-drv-level-13 { - drive-strength = <0x0d>; - bias-pull-down; - phandle = <0x469>; - }; - - pcfg-pull-up-drv-level-2 { - drive-strength = <0x02>; - phandle = <0x199>; - bias-pull-up; - }; - - i2s1 { - - i2s1m0-sdo1 { - rockchip,pins = <0x04 0x0a 0x03 0x198>; - phandle = <0x127>; - }; - - i2s1m1-sdi1 { - rockchip,pins = <0x00 0x16 0x01 0x198>; - phandle = <0x380>; - }; - - i2s1m0-sdi3 { - rockchip,pins = <0x04 0x08 0x03 0x198>; - phandle = <0x125>; - }; - - i2s1m0-mclk { - rockchip,pins = <0x04 0x00 0x03 0x19d>; - phandle = <0x37b>; - }; - - i2s1m0-sdi1 { - rockchip,pins = <0x04 0x06 0x03 0x198>; - phandle = <0x123>; - }; - - i2s1m1-sdo2 { - rockchip,pins = <0x00 0x1c 0x01 0x198>; - phandle = <0x385>; - }; - - i2s1m1-sdo0 { - rockchip,pins = <0x00 0x19 0x01 0x198>; - phandle = <0x383>; - }; - - i2s1m0-sdo2 { - rockchip,pins = <0x04 0x0b 0x03 0x198>; - phandle = <0x128>; - }; - - i2s1m1-sdi2 { - rockchip,pins = <0x00 0x17 0x01 0x198>; - phandle = <0x381>; - }; - - i2s1m0-sdo0 { - rockchip,pins = <0x04 0x09 0x03 0x198>; - phandle = <0x126>; - }; - - i2s1m1-sdi0 { - rockchip,pins = <0x00 0x15 0x01 0x198>; - phandle = <0x37f>; - }; - - i2s1m0-sdi2 { - rockchip,pins = <0x04 0x07 0x03 0x198>; - phandle = <0x124>; - }; - - i2s1m1-sclk { - rockchip,pins = <0x00 0x0e 0x01 0x19d>; - phandle = <0x37e>; - }; - - i2s1m0-sdi0 { - rockchip,pins = <0x04 0x05 0x03 0x198>; - phandle = <0x122>; - }; - - i2s1m1-sdo3 { - rockchip,pins = <0x00 0x1d 0x01 0x198>; - phandle = <0x386>; - }; - - i2s1m1-lrck { - rockchip,pins = <0x00 0x0f 0x01 0x19d>; - phandle = <0x37c>; - }; - - i2s1m0-sclk { - rockchip,pins = <0x04 0x01 0x03 0x19d>; - phandle = <0x121>; - }; - - i2s1m1-sdo1 { - rockchip,pins = <0x00 0x1a 0x01 0x198>; - phandle = <0x384>; - }; - - i2s1m0-sdo3 { - rockchip,pins = <0x04 0x0c 0x03 0x198>; - phandle = <0x129>; - }; - - i2s1m1-sdi3 { - rockchip,pins = <0x00 0x18 0x01 0x198>; - phandle = <0x382>; - }; - - i2s1m0-lrck { - rockchip,pins = <0x04 0x02 0x03 0x19d>; - phandle = <0x120>; - }; - - i2s1m1-mclk { - rockchip,pins = <0x00 0x0d 0x01 0x19d>; - phandle = <0x37d>; - }; - }; - - ddrphych2 { - - ddrphych2-pins { - rockchip,pins = <0x04 0x08 0x07 0x198 0x04 0x09 0x07 0x198 0x04 0x0a 0x07 0x198 0x04 0x0b 0x07 0x198>; - phandle = <0x31a>; - }; - }; - - pcfg-pull-none-drv-level-12 { - drive-strength = <0x0c>; - bias-disable; - phandle = <0x456>; - }; - - i2c1 { - - i2c1m2-xfer { - rockchip,pins = <0x00 0x1c 0x09 0x19d 0x00 0x1d 0x09 0x19d>; - phandle = <0x148>; - }; - - i2c1m1-xfer { - rockchip,pins = <0x00 0x08 0x02 0x19d 0x00 0x09 0x02 0x19d>; - phandle = <0x357>; - }; - - i2c1m0-xfer { - rockchip,pins = <0x00 0x0d 0x09 0x19d 0x00 0x0e 0x09 0x19d>; - phandle = <0x356>; - }; - - i2c1m4-xfer { - rockchip,pins = <0x01 0x1a 0x09 0x19d 0x01 0x1b 0x09 0x19d>; - phandle = <0x359>; - }; - - i2c1m3-xfer { - rockchip,pins = <0x02 0x1c 0x09 0x19d 0x02 0x1d 0x09 0x19d>; - phandle = <0x358>; - }; - }; - - pwm7 { - - pwm7m3-pins { - rockchip,pins = <0x04 0x16 0x0b 0x198>; - phandle = <0x3d3>; - }; - - pwm7m2-pins { - rockchip,pins = <0x01 0x13 0x0b 0x198>; - phandle = <0x3d2>; - }; - - pwm7m1-pins { - rockchip,pins = <0x04 0x1c 0x0b 0x198>; - phandle = <0x3d1>; - }; - - pwm7m0-pins { - rockchip,pins = <0x00 0x18 0x0b 0x198>; - phandle = <0x16c>; - }; - }; - - pcfg-pull-none-drv-level-5 { - drive-strength = <0x05>; - bias-disable; - phandle = <0x2f1>; - }; - - gmac0 { - - gmac0-clkinout { - rockchip,pins = <0x04 0x13 0x01 0x198>; - phandle = <0x46d>; - }; - - gmac0-miim { - rockchip,pins = <0x04 0x14 0x01 0x198 0x04 0x15 0x01 0x198>; - phandle = <0x1c1>; - }; - - gmac0-tx-bus2 { - rockchip,pins = <0x02 0x0e 0x01 0x19a 0x02 0x0f 0x01 0x19a 0x02 0x10 0x01 0x198>; - phandle = <0x1c2>; - }; - - gmac0-rgmii-bus { - rockchip,pins = <0x02 0x06 0x01 0x198 0x02 0x07 0x01 0x198 0x02 0x09 0x01 0x19a 0x02 0x0a 0x01 0x19a>; - phandle = <0x1c5>; - }; - - gmac0-ppsclk { - rockchip,pins = <0x02 0x14 0x01 0x198>; - phandle = <0x46e>; - }; - - gmac0-txer { - rockchip,pins = <0x04 0x16 0x01 0x198>; - phandle = <0x471>; - }; - - gmac0-ptp-refclk { - rockchip,pins = <0x02 0x0c 0x01 0x198>; - phandle = <0x470>; - }; - - gmac0-rx-bus2 { - rockchip,pins = <0x02 0x11 0x01 0x198 0x02 0x12 0x01 0x198 0x04 0x12 0x01 0x198>; - phandle = <0x1c3>; - }; - - gmac0-rgmii-clk { - rockchip,pins = <0x02 0x08 0x01 0x198 0x02 0x0b 0x01 0x198>; - phandle = <0x1c4>; - }; - - gmac0-ppstring { - rockchip,pins = <0x02 0x0d 0x01 0x198>; - phandle = <0x46f>; - }; - }; - - pwm12 { - - pwm12m1-pins { - rockchip,pins = <0x04 0x0d 0x0b 0x198>; - phandle = <0x3dd>; - }; - - pwm12m0-pins { - rockchip,pins = <0x03 0x0d 0x0b 0x198>; - phandle = <0x171>; - }; - }; - - usb-typec { - - usbc0-int { - rockchip,pins = <0x00 0x1b 0x00 0x198>; - phandle = <0x17b>; - }; - - usb-5v-ctrl { - rockchip,pins = <0x01 0x03 0x00 0x198>; - phandle = <0x1ef>; - }; - }; - - uart6 { - - uart6m1-ctsn { - rockchip,pins = <0x01 0x03 0x0a 0x198>; - phandle = <0x436>; - }; - - uart6m2-xfer { - rockchip,pins = <0x01 0x19 0x0a 0x19e 0x01 0x18 0x0a 0x19e>; - phandle = <0x437>; - }; - - uart6m0-ctsn { - rockchip,pins = <0x02 0x09 0x0a 0x198>; - phandle = <0x439>; - }; - - uart6m1-xfer { - rockchip,pins = <0x01 0x00 0x0a 0x19e 0x01 0x01 0x0a 0x19e>; - phandle = <0x165>; - }; - - uart6m0-xfer { - rockchip,pins = <0x02 0x06 0x0a 0x19e 0x02 0x07 0x0a 0x19e>; - phandle = <0x438>; - }; - - uart6m1-rtsn { - rockchip,pins = <0x01 0x02 0x0a 0x198>; - phandle = <0x1e5>; - }; - - uart6m0-rtsn { - rockchip,pins = <0x02 0x08 0x0a 0x198>; - phandle = <0x43a>; - }; - }; - - pcfg-pull-down-drv-level-8 { - drive-strength = <0x08>; - bias-pull-down; - phandle = <0x464>; - }; - - gpu { - - gpu-pins { - rockchip,pins = <0x00 0x15 0x02 0x198>; - phandle = <0x333>; - }; - }; - - spi0 { - - spi0m2-cs1 { - rockchip,pins = <0x01 0x0d 0x08 0x19a>; - phandle = <0x3f8>; - }; - - spi0m0-cs0 { - rockchip,pins = <0x00 0x19 0x08 0x19a>; - phandle = <0x14e>; - }; - - spi0m3-pins { - rockchip,pins = <0x03 0x1b 0x08 0x19a 0x03 0x19 0x08 0x19a 0x03 0x1a 0x08 0x19a>; - phandle = <0x3f9>; - }; - - spi0m3-cs1 { - rockchip,pins = <0x03 0x1d 0x08 0x19a>; - phandle = <0x3fb>; - }; - - spi0m2-pins { - rockchip,pins = <0x01 0x0b 0x08 0x19a 0x01 0x09 0x08 0x19a 0x01 0x0a 0x08 0x19a>; - phandle = <0x3f6>; - }; - - spi0m1-cs0 { - rockchip,pins = <0x04 0x0a 0x08 0x19a>; - phandle = <0x3f4>; - }; - - spi0m1-pins { - rockchip,pins = <0x04 0x02 0x08 0x19a 0x04 0x00 0x08 0x19a 0x04 0x01 0x08 0x19a>; - phandle = <0x3f3>; - }; - - spi0m0-cs1 { - rockchip,pins = <0x00 0x0f 0x08 0x19a>; - phandle = <0x14f>; - }; - - spi0m2-cs0 { - rockchip,pins = <0x01 0x0c 0x08 0x19a>; - phandle = <0x3f7>; - }; - - spi0m0-pins { - rockchip,pins = <0x00 0x16 0x08 0x19a 0x00 0x17 0x08 0x19a 0x00 0x10 0x08 0x19a>; - phandle = <0x150>; - }; - - spi0m1-cs1 { - rockchip,pins = <0x04 0x09 0x08 0x19a>; - phandle = <0x3f5>; - }; - - spi0m3-cs0 { - rockchip,pins = <0x03 0x1c 0x08 0x19a>; - phandle = <0x3fa>; - }; - }; - - fspi { - - fspim0-cs1 { - rockchip,pins = <0x02 0x1f 0x02 0x199>; - phandle = <0x329>; - }; - - fspim1-pins { - rockchip,pins = <0x02 0x0b 0x03 0x199 0x02 0x0c 0x03 0x199 0x02 0x06 0x03 0x199 0x02 0x07 0x03 0x199 0x02 0x08 0x03 0x199 0x02 0x09 0x03 0x199>; - phandle = <0x32c>; - }; - - fspim0-pins { - rockchip,pins = <0x02 0x00 0x02 0x199 0x02 0x1e 0x02 0x199 0x02 0x18 0x02 0x199 0x02 0x19 0x02 0x199 0x02 0x1a 0x02 0x199 0x02 0x1b 0x02 0x199>; - phandle = <0x328>; - }; - - fspim1-cs1 { - rockchip,pins = <0x02 0x0d 0x03 0x199>; - phandle = <0x32d>; - }; - - fspim2-cs1 { - rockchip,pins = <0x03 0x15 0x02 0x199>; - phandle = <0x32b>; - }; - - fspim2-pins { - rockchip,pins = <0x03 0x05 0x05 0x199 0x03 0x14 0x02 0x199 0x03 0x00 0x05 0x199 0x03 0x01 0x05 0x199 0x03 0x02 0x05 0x199 0x03 0x03 0x05 0x199>; - phandle = <0x32a>; - }; - }; - - pcfg-pull-up-drv-level-13 { - drive-strength = <0x0d>; - phandle = <0x460>; - bias-pull-up; - }; - - clk32k { - - clk32k-out0 { - rockchip,pins = <0x00 0x0a 0x02 0x198>; - phandle = <0x315>; - }; - - clk32k-in { - rockchip,pins = <0x00 0x0a 0x01 0x198>; - phandle = <0x314>; - }; - - clk32k-out1 { - rockchip,pins = <0x02 0x15 0x01 0x198>; - phandle = <0x316>; - }; - }; - - pcfg-pull-down-drv-level-11 { - drive-strength = <0x0b>; - bias-pull-down; - phandle = <0x467>; - }; - - pcie30phy { - - pcie30phy-pins { - rockchip,pins = <0x01 0x14 0x04 0x198 0x01 0x19 0x04 0x198>; - phandle = <0x3a4>; - }; - }; - - pcfg-pull-up-drv-level-0 { - drive-strength = <0x00>; - phandle = <0x2f3>; - bias-pull-up; - }; - - ddrphych0 { - - ddrphych0-pins { - rockchip,pins = <0x04 0x00 0x07 0x198 0x04 0x01 0x07 0x198 0x04 0x02 0x07 0x198 0x04 0x03 0x07 0x198>; - phandle = <0x318>; - }; - }; - - pcfg-pull-none-drv-level-10 { - drive-strength = <0x0a>; - bias-disable; - phandle = <0x454>; - }; - - pwm5 { - - pwm5m2-pins { - rockchip,pins = <0x04 0x14 0x0b 0x198>; - phandle = <0x3ce>; - }; - - pwm5m1-pins { - rockchip,pins = <0x00 0x16 0x0b 0x198>; - phandle = <0x16a>; - }; - - pwm5m0-pins { - rockchip,pins = <0x00 0x09 0x03 0x198>; - phandle = <0x3cd>; - }; - }; - - pcfg-pull-none-drv-level-3 { - drive-strength = <0x03>; - bias-disable; - phandle = <0x2ef>; - }; - - pwm10 { - - pwm10m2-pins { - rockchip,pins = <0x03 0x1b 0x0b 0x198>; - phandle = <0x3d9>; - }; - - pwm10m1-pins { - rockchip,pins = <0x04 0x1b 0x0b 0x198>; - phandle = <0x3d8>; - }; - - pwm10m0-pins { - rockchip,pins = <0x03 0x00 0x0b 0x198>; - phandle = <0x16f>; - }; - }; - - pcfg-pull-down-smt { - input-schmitt-enable; - bias-pull-down; - phandle = <0x2ff>; - }; - - gpio@fec50000 { - gpio-controller; - interrupts = <0x00 0x119 0x04>; - clocks = <0x02 0x83 0x02 0x84>; - compatible = "rockchip,gpio-bank"; - #interrupt-cells = <0x02>; - reg = <0x00 0xfec50000 0x00 0x100>; - phandle = <0x10d>; - #gpio-cells = <0x02>; - gpio-ranges = <0x197 0x00 0x80 0x20>; - interrupt-controller; - }; - - pcfg-pull-down { - bias-pull-down; - phandle = <0x2ec>; - }; - - uart4 { - - uart4m2-xfer { - rockchip,pins = <0x01 0x0a 0x0a 0x19e 0x01 0x0b 0x0a 0x19e>; - phandle = <0x42d>; - }; - - uart4-ctsn { - rockchip,pins = <0x01 0x17 0x0a 0x198>; - phandle = <0x42e>; - }; - - uart4m1-xfer { - rockchip,pins = <0x03 0x18 0x0a 0x19e 0x03 0x19 0x0a 0x19e>; - phandle = <0x163>; - }; - - uart4m0-xfer { - rockchip,pins = <0x01 0x1b 0x0a 0x19e 0x01 0x1a 0x0a 0x19e>; - phandle = <0x42c>; - }; - - uart4-rtsn { - rockchip,pins = <0x01 0x15 0x0a 0x198>; - phandle = <0x42f>; - }; - }; - - spdif0 { - - spdif0m0-tx { - rockchip,pins = <0x01 0x0e 0x03 0x198>; - phandle = <0x142>; - }; - - spdif0m1-tx { - rockchip,pins = <0x04 0x0c 0x06 0x198>; - phandle = <0x3f0>; - }; - }; - - pcfg-pull-down-drv-level-6 { - drive-strength = <0x06>; - bias-pull-down; - phandle = <0x2fd>; - }; - - pcfg-pull-up-drv-level-9 { - drive-strength = <0x09>; - phandle = <0x45c>; - bias-pull-up; - }; - - pcfg-pull-none-drv-level-1-smt { - drive-strength = <0x01>; - bias-disable; - input-schmitt-enable; - phandle = <0x19c>; - }; - - pcfg-pull-up-drv-level-11 { - drive-strength = <0x0b>; - phandle = <0x45e>; - bias-pull-up; - }; - - mcu { - - mcum1-pins { - rockchip,pins = <0x03 0x1c 0x06 0x198 0x03 0x1d 0x06 0x198>; - phandle = <0x394>; - }; - - mcum0-pins { - rockchip,pins = <0x04 0x1c 0x05 0x198 0x04 0x1d 0x05 0x198>; - phandle = <0x393>; - }; - }; - - i2c8 { - - i2c8m4-xfer { - rockchip,pins = <0x03 0x12 0x09 0x19d 0x03 0x13 0x09 0x19d>; - phandle = <0x373>; - }; - - i2c8m3-xfer { - rockchip,pins = <0x04 0x10 0x09 0x19d 0x04 0x11 0x09 0x19d>; - phandle = <0x372>; - }; - - i2c8m2-xfer { - rockchip,pins = <0x01 0x1e 0x09 0x19d 0x01 0x1f 0x09 0x19d>; - phandle = <0x371>; - }; - - i2c8m1-xfer { - rockchip,pins = <0x02 0x08 0x09 0x19d 0x02 0x09 0x09 0x19d>; - phandle = <0x374>; - }; - - i2c8m0-xfer { - rockchip,pins = <0x04 0x1a 0x09 0x19d 0x04 0x1b 0x09 0x19d>; - phandle = <0x186>; - }; - }; - - dp0 { - - dp0m0-pins { - rockchip,pins = <0x04 0x0c 0x05 0x198>; - phandle = <0x31c>; - }; - - dp0m2-pins { - rockchip,pins = <0x01 0x00 0x05 0x198>; - phandle = <0x31e>; - }; - - dp0m1-pins { - rockchip,pins = <0x00 0x14 0x0a 0x198>; - phandle = <0x31d>; - }; - }; - - pcfg-pull-none-drv-level-5-smt { - drive-strength = <0x05>; - bias-disable; - input-schmitt-enable; - phandle = <0x19b>; - }; - - pwm3 { - - pwm3m2-pins { - rockchip,pins = <0x01 0x12 0x0b 0x198>; - phandle = <0x3ca>; - }; - - pwm3m1-pins { - rockchip,pins = <0x03 0x0a 0x0b 0x198>; - phandle = <0x3c9>; - }; - - pwm3m0-pins { - rockchip,pins = <0x00 0x1c 0x03 0x198>; - phandle = <0x81>; - }; - - pwm3m3-pins { - rockchip,pins = <0x01 0x07 0x0b 0x198>; - phandle = <0x3cb>; - }; - }; - - pcfg-pull-none-drv-level-1 { - drive-strength = <0x01>; - bias-disable; - phandle = <0x2ee>; - }; - - sata2 { - - sata2m1-pins { - rockchip,pins = <0x01 0x0f 0x06 0x198>; - phandle = <0x3ed>; - }; - - sata2m0-pins { - rockchip,pins = <0x04 0x09 0x06 0x198>; - phandle = <0x3ec>; - }; - }; - - cam { - - cam0-or-cam1-switch-pin { - rockchip,pins = <0x03 0x11 0x00 0x198>; - phandle = <0x1f0>; - }; - }; - - uart2 { - - uart2-rtsn { - rockchip,pins = <0x03 0x0b 0x0a 0x198>; - phandle = <0x427>; - }; - - uart2m1-xfer { - rockchip,pins = <0x04 0x19 0x0a 0x19e 0x04 0x18 0x0a 0x19e>; - phandle = <0x161>; - }; - - uart2m0-xfer { - rockchip,pins = <0x00 0x0e 0x0a 0x19e 0x00 0x0d 0x0a 0x19e>; - phandle = <0x1ce>; - }; - - uart2-ctsn { - rockchip,pins = <0x03 0x0c 0x0a 0x198>; - phandle = <0x426>; - }; - - uart2m2-xfer { - rockchip,pins = <0x03 0x0a 0x0a 0x19e 0x03 0x09 0x0a 0x19e>; - phandle = <0x425>; - }; - }; - - pcfg-pull-down-drv-level-4 { - drive-strength = <0x04>; - bias-pull-down; - phandle = <0x2fb>; - }; - - pcfg-pull-up-drv-level-7 { - drive-strength = <0x07>; - phandle = <0x45a>; - bias-pull-up; - }; - - i2c6 { - - i2c6m4-xfer { - rockchip,pins = <0x03 0x01 0x09 0x19d 0x03 0x00 0x09 0x19d>; - phandle = <0x36c>; - }; - - i2c6m3-xfer { - rockchip,pins = <0x04 0x09 0x09 0x19d 0x04 0x08 0x09 0x19d>; - phandle = <0x36b>; - }; - - i2c6m2-xfer { - rockchip,pins = <0x02 0x13 0x09 0x19d 0x02 0x12 0x09 0x19d>; - phandle = <0x36d>; - }; - - i2c6m1-xfer { - rockchip,pins = <0x01 0x13 0x09 0x19d 0x01 0x12 0x09 0x19d>; - phandle = <0x36a>; - }; - - i2c6m0-xfer { - rockchip,pins = <0x00 0x18 0x09 0x19d 0x00 0x17 0x09 0x19d>; - phandle = <0x178>; - }; - }; - - pdm1 { - - pdm1m1-sdi3 { - rockchip,pins = <0x01 0x0a 0x02 0x198>; - phandle = <0x3c1>; - }; - - pdm1m0-clk { - rockchip,pins = <0x04 0x1d 0x02 0x198>; - phandle = <0x140>; - }; - - pdm1m1-sdi1 { - rockchip,pins = <0x01 0x08 0x02 0x198>; - phandle = <0x3bf>; - }; - - pdm1m0-sdi3 { - rockchip,pins = <0x04 0x18 0x02 0x198>; - phandle = <0x13e>; - }; - - pdm1m0-sdi1 { - rockchip,pins = <0x04 0x1a 0x02 0x198>; - phandle = <0x13c>; - }; - - pdm1m1-clk { - rockchip,pins = <0x01 0x0c 0x02 0x198>; - phandle = <0x3bb>; - }; - - pdm1m1-clk1 { - rockchip,pins = <0x01 0x0b 0x02 0x198>; - phandle = <0x3bc>; - }; - - pdm1m1-idle { - rockchip,pins = <0x01 0x0c 0x00 0x198 0x01 0x0b 0x00 0x198>; - phandle = <0x3bd>; - }; - - pdm1m0-clk1 { - rockchip,pins = <0x04 0x1c 0x02 0x198>; - phandle = <0x141>; - }; - - pdm1m1-sdi2 { - rockchip,pins = <0x01 0x09 0x02 0x198>; - phandle = <0x3c0>; - }; - - pdm1m0-idle { - rockchip,pins = <0x04 0x1d 0x00 0x198 0x04 0x1c 0x00 0x198>; - phandle = <0x13f>; - }; - - pdm1m1-sdi0 { - rockchip,pins = <0x01 0x07 0x02 0x198>; - phandle = <0x3be>; - }; - - pdm1m0-sdi2 { - rockchip,pins = <0x04 0x19 0x02 0x198>; - phandle = <0x13d>; - }; - - pdm1m0-sdi0 { - rockchip,pins = <0x04 0x1b 0x02 0x198>; - phandle = <0x13b>; - }; - }; - - cpu { - - cpu-pins { - rockchip,pins = <0x00 0x19 0x02 0x198 0x00 0x1d 0x02 0x198>; - phandle = <0x317>; - }; - }; - - gpio-func { - - tsadc-gpio-func { - rockchip,pins = <0x00 0x01 0x00 0x198>; - phandle = <0x175>; - }; - }; - - pcie20x1 { - - pcie20x1-2-button-rstn { - rockchip,pins = <0x04 0x0b 0x04 0x198>; - phandle = <0x3a3>; - }; - - pcie20x1m1-pins { - rockchip,pins = <0x04 0x0f 0x04 0x198 0x04 0x11 0x04 0x198 0x04 0x10 0x04 0x198>; - phandle = <0x3a2>; - }; - - pcie20x1m0-pins { - rockchip,pins = <0x03 0x17 0x04 0x198 0x03 0x19 0x04 0x198 0x03 0x18 0x04 0x198>; - phandle = <0x3a1>; - }; - }; - - leds { - - leds-gpio { - rockchip,pins = <0x00 0x15 0x00 0x198>; - phandle = <0x1ee>; - }; - }; - - pwm1 { - - pwm1m1-pins { - rockchip,pins = <0x01 0x1b 0x0b 0x198>; - phandle = <0x3c5>; - }; - - pwm1m0-pins { - rockchip,pins = <0x00 0x10 0x03 0x198>; - phandle = <0x7f>; - }; - - pwm1m2-pins { - rockchip,pins = <0x01 0x03 0x0b 0x198>; - phandle = <0x3c6>; - }; - }; - - sata0 { - - sata0m1-pins { - rockchip,pins = <0x01 0x0b 0x06 0x198>; - phandle = <0x3e9>; - }; - - sata0m0-pins { - rockchip,pins = <0x04 0x0e 0x06 0x198>; - phandle = <0x3e8>; - }; - }; - - refclk { - - refclk-pins { - rockchip,pins = <0x00 0x00 0x01 0x198>; - phandle = <0x3e5>; - }; - }; - - pcie30x4 { - - pcie30x4m2-pins { - rockchip,pins = <0x03 0x14 0x04 0x198 0x03 0x16 0x04 0x198 0x03 0x15 0x04 0x198>; - phandle = <0x3b1>; - }; - - pcie30x4m1-pins { - rockchip,pins = <0x04 0x0c 0x04 0x198 0x04 0x0e 0x04 0x198 0x04 0x0d 0x04 0x198>; - phandle = <0x3b0>; - }; - - pcie30x4-button-rstn { - rockchip,pins = <0x03 0x1d 0x04 0x198>; - phandle = <0x3b3>; - }; - - pcie30x4m0-pins { - rockchip,pins = <0x00 0x16 0x0c 0x198 0x00 0x18 0x0c 0x198 0x00 0x17 0x0c 0x198>; - phandle = <0x3af>; - }; - - pcie30x4m3-pins { - rockchip,pins = <0x01 0x08 0x04 0x198 0x01 0x0a 0x04 0x198 0x01 0x09 0x04 0x198>; - phandle = <0x3b2>; - }; - }; - - can2 { - - can2m1-pins { - rockchip,pins = <0x00 0x1c 0x0a 0x198 0x00 0x1d 0x0a 0x198>; - phandle = <0x30f>; - }; - - can2m0-pins { - rockchip,pins = <0x03 0x14 0x09 0x198 0x03 0x15 0x09 0x198>; - phandle = <0x147>; - }; - }; - - litcpu { - - litcpu-pins { - rockchip,pins = <0x00 0x1b 0x01 0x198>; - phandle = <0x392>; - }; - }; - - sata { - - sata-reset { - rockchip,pins = <0x04 0x11 0x00 0x198>; - phandle = <0x3e7>; - }; - - sata-pins { - rockchip,pins = <0x00 0x16 0x0d 0x198 0x00 0x1c 0x0d 0x198 0x00 0x1d 0x0d 0x198>; - phandle = <0x3e6>; - }; - }; - - tsadc { - - tsadc-shut { - rockchip,pins = <0x00 0x01 0x02 0x198>; - phandle = <0x176>; - }; - - tsadc-shut-org { - rockchip,pins = <0x00 0x01 0x01 0x198>; - phandle = <0x418>; - }; - - tsadcm1-shut { - rockchip,pins = <0x00 0x02 0x02 0x198>; - phandle = <0x417>; - }; - }; - - uart0 { - - uart0m1-xfer { - rockchip,pins = <0x00 0x08 0x04 0x19e 0x00 0x09 0x04 0x19e>; - phandle = <0x7d>; - }; - - uart0m0-xfer { - rockchip,pins = <0x00 0x14 0x04 0x19e 0x00 0x15 0x04 0x19e>; - phandle = <0x419>; - }; - - uart0-rtsn { - rockchip,pins = <0x00 0x16 0x04 0x198>; - phandle = <0x41c>; - }; - - uart0-ctsn { - rockchip,pins = <0x00 0x19 0x04 0x198>; - phandle = <0x41b>; - }; - - uart0m2-xfer { - rockchip,pins = <0x04 0x04 0x0a 0x19e 0x04 0x03 0x0a 0x19e>; - phandle = <0x41a>; - }; - }; - - pcfg-pull-down-drv-level-2 { - drive-strength = <0x02>; - bias-pull-down; - phandle = <0x2f9>; - }; - - pcfg-pull-up-drv-level-5 { - drive-strength = <0x05>; - phandle = <0x2f6>; - bias-pull-up; - }; - - gpio@fec20000 { - gpio-controller; - interrupts = <0x00 0x116 0x04>; - clocks = <0x02 0x7d 0x02 0x7e>; - compatible = "rockchip,gpio-bank"; - #interrupt-cells = <0x02>; - reg = <0x00 0xfec20000 0x00 0x100>; - phandle = <0xfe>; - #gpio-cells = <0x02>; - gpio-ranges = <0x197 0x00 0x20 0x20>; - interrupt-controller; - }; - - pcfg-pull-none-drv-level-15 { - drive-strength = <0x0f>; - bias-disable; - phandle = <0x459>; - }; - - eth1 { - - eth1-pins { - rockchip,pins = <0x03 0x06 0x01 0x198>; - phandle = <0x327>; - }; - }; - - i2c4 { - - i2c4m3-xfer { - rockchip,pins = <0x01 0x03 0x09 0x19d 0x01 0x02 0x09 0x19d>; - phandle = <0x364>; - }; - - i2c4m2-xfer { - rockchip,pins = <0x00 0x15 0x09 0x19d 0x00 0x14 0x09 0x19d>; - phandle = <0x363>; - }; - - i2c4m1-xfer { - rockchip,pins = <0x02 0x0d 0x09 0x19d 0x02 0x0c 0x09 0x19d>; - phandle = <0x14b>; - }; - - i2c4m0-xfer { - rockchip,pins = <0x03 0x06 0x09 0x19d 0x03 0x05 0x09 0x19d>; - phandle = <0x362>; - }; - - i2c4m4-xfer { - rockchip,pins = <0x01 0x17 0x09 0x19d 0x01 0x16 0x09 0x19d>; - phandle = <0x365>; - }; - }; - - emmc { - - emmc-data-strobe { - rockchip,pins = <0x02 0x02 0x01 0x198>; - phandle = <0x326>; - }; - - emmc-clk { - rockchip,pins = <0x02 0x01 0x01 0x199>; - phandle = <0x324>; - }; - - emmc-bus8 { - rockchip,pins = <0x02 0x18 0x01 0x199 0x02 0x19 0x01 0x199 0x02 0x1a 0x01 0x199 0x02 0x1b 0x01 0x199 0x02 0x1c 0x01 0x199 0x02 0x1d 0x01 0x199 0x02 0x1e 0x01 0x199 0x02 0x1f 0x01 0x199>; - phandle = <0x323>; - }; - - emmc-cmd { - rockchip,pins = <0x02 0x00 0x01 0x199>; - phandle = <0x325>; - }; - - emmc-rstnout { - rockchip,pins = <0x02 0x03 0x01 0x198>; - phandle = <0x322>; - }; - }; - - pcfg-pull-none-drv-level-8 { - drive-strength = <0x08>; - bias-disable; - phandle = <0x452>; - }; - - pwm15 { - - pwm15m0-pins { - rockchip,pins = <0x03 0x13 0x0b 0x198>; - phandle = <0x174>; - }; - - pwm15m3-pins { - rockchip,pins = <0x01 0x1f 0x0b 0x198>; - phandle = <0x3e4>; - }; - - pwm15m2-pins { - rockchip,pins = <0x01 0x16 0x0b 0x198>; - phandle = <0x3e3>; - }; - - pwm15m1-pins { - rockchip,pins = <0x04 0x0b 0x0b 0x198>; - phandle = <0x3e2>; - }; - }; - - pcie30x2 { - - pcie30x2m2-pins { - rockchip,pins = <0x03 0x1a 0x04 0x198 0x03 0x1c 0x04 0x198 0x03 0x1b 0x04 0x198>; - phandle = <0x3ac>; - }; - - pcie30x2m1-pins { - rockchip,pins = <0x04 0x06 0x04 0x198 0x04 0x08 0x04 0x198 0x04 0x07 0x04 0x198>; - phandle = <0x3ab>; - }; - - pcie30x2-button-rstn { - rockchip,pins = <0x03 0x11 0x04 0x198>; - phandle = <0x3ae>; - }; - - pcie30x2m0-pins { - rockchip,pins = <0x00 0x19 0x0c 0x198 0x00 0x1c 0x0c 0x198 0x00 0x1a 0x0c 0x198>; - phandle = <0x3aa>; - }; - - pcie30x2m3-pins { - rockchip,pins = <0x01 0x1f 0x04 0x198 0x01 0x0f 0x04 0x198 0x01 0x0e 0x04 0x198>; - phandle = <0x3ad>; - }; - }; - - can0 { - - can0m0-pins { - rockchip,pins = <0x00 0x10 0x0b 0x198 0x00 0x0f 0x0b 0x198>; - phandle = <0x145>; - }; - - can0m1-pins { - rockchip,pins = <0x04 0x1d 0x09 0x198 0x04 0x1c 0x09 0x198>; - phandle = <0x30d>; - }; - }; - - pcfg-output-high { - output-high; - phandle = <0x305>; - }; - - uart9 { - - uart9m0-rtsn { - rockchip,pins = <0x04 0x14 0x0a 0x198>; - phandle = <0x44e>; - }; - - uart9m2-ctsn { - rockchip,pins = <0x03 0x1b 0x0a 0x198>; - phandle = <0x44a>; - }; - - uart9m1-ctsn { - rockchip,pins = <0x04 0x01 0x0a 0x198>; - phandle = <0x447>; - }; - - uart9m2-xfer { - rockchip,pins = <0x03 0x1c 0x0a 0x19e 0x03 0x1d 0x0a 0x19e>; - phandle = <0x449>; - }; - - uart9m0-ctsn { - rockchip,pins = <0x04 0x15 0x0a 0x198>; - phandle = <0x44d>; - }; - - uart9m1-xfer { - rockchip,pins = <0x04 0x0d 0x0a 0x19e 0x04 0x0c 0x0a 0x19e>; - phandle = <0x168>; - }; - - uart9m0-xfer { - rockchip,pins = <0x02 0x14 0x0a 0x19e 0x02 0x12 0x0a 0x19e>; - phandle = <0x44c>; - }; - - uart9m2-rtsn { - rockchip,pins = <0x03 0x1a 0x0a 0x198>; - phandle = <0x44b>; - }; - - uart9m1-rtsn { - rockchip,pins = <0x04 0x00 0x0a 0x198>; - phandle = <0x448>; - }; - }; - - pcfg-pull-none-drv-level-2-smt { - drive-strength = <0x02>; - bias-disable; - input-schmitt-enable; - phandle = <0x301>; - }; - - pcfg-pull-up { - phandle = <0x19e>; - bias-pull-up; - }; - - spi3 { - - spi3m3-cs1 { - rockchip,pins = <0x03 0x15 0x08 0x19a>; - phandle = <0x40e>; - }; - - spi3m1-cs0 { - rockchip,pins = <0x04 0x10 0x08 0x19a>; - phandle = <0x15d>; - }; - - spi3m3-pins { - rockchip,pins = <0x03 0x18 0x08 0x19a 0x03 0x16 0x08 0x19a 0x03 0x17 0x08 0x19a>; - phandle = <0x40c>; - }; - - spi3m0-cs1 { - rockchip,pins = <0x04 0x13 0x08 0x19f>; - phandle = <0x411>; - }; - - spi3m2-cs0 { - rockchip,pins = <0x00 0x1c 0x08 0x19a>; - phandle = <0x40a>; - }; - - spi3m2-pins { - rockchip,pins = <0x00 0x1b 0x08 0x19a 0x00 0x18 0x08 0x19a 0x00 0x1a 0x08 0x19a>; - phandle = <0x409>; - }; - - spi3m1-cs1 { - rockchip,pins = <0x04 0x11 0x08 0x19a>; - phandle = <0x15e>; - }; - - spi3m1-pins { - rockchip,pins = <0x04 0x0f 0x08 0x19a 0x04 0x0d 0x08 0x19a 0x04 0x0e 0x08 0x19a>; - phandle = <0x15f>; - }; - - spi3m3-cs0 { - rockchip,pins = <0x03 0x14 0x08 0x19a>; - phandle = <0x40d>; - }; - - spi3m0-pins { - rockchip,pins = <0x04 0x16 0x08 0x19f 0x04 0x14 0x08 0x19f 0x04 0x15 0x08 0x19f>; - phandle = <0x40f>; - }; - - spi3m2-cs1 { - rockchip,pins = <0x00 0x1d 0x08 0x19a>; - phandle = <0x40b>; - }; - - spi3m0-cs0 { - rockchip,pins = <0x04 0x12 0x08 0x19f>; - phandle = <0x410>; - }; - }; - - pcfg-pull-down-drv-level-14 { - drive-strength = <0x0e>; - bias-pull-down; - phandle = <0x46a>; - }; - - bt656 { - - bt656-pins { - rockchip,pins = <0x04 0x08 0x02 0x1a0 0x04 0x00 0x02 0x1a0 0x04 0x01 0x02 0x1a0 0x04 0x02 0x02 0x1a0 0x04 0x03 0x02 0x1a0 0x04 0x04 0x02 0x1a0 0x04 0x05 0x02 0x1a0 0x04 0x06 0x02 0x1a0 0x04 0x07 0x02 0x1a0>; - phandle = <0x450>; - }; - }; - - pcfg-pull-down-drv-level-0 { - drive-strength = <0x00>; - bias-pull-down; - phandle = <0x2f7>; - }; - - pcfg-pull-up-drv-level-3 { - drive-strength = <0x03>; - phandle = <0x2f4>; - bias-pull-up; - }; - - i2s2 { - - i2s2m0-lrck { - rockchip,pins = <0x02 0x10 0x02 0x19d>; - phandle = <0x389>; - }; - - i2s2m1-mclk { - rockchip,pins = <0x03 0x0c 0x03 0x19d>; - phandle = <0x387>; - }; - - i2s2m0-mclk { - rockchip,pins = <0x02 0x0e 0x02 0x19d>; - phandle = <0x38a>; - }; - - i2s2m1-sdo { - rockchip,pins = <0x03 0x0b 0x03 0x198>; - phandle = <0x12b>; - }; - - i2s2m0-sdi { - rockchip,pins = <0x02 0x13 0x02 0x198>; - phandle = <0x38c>; - }; - - i2s2m1-idle { - rockchip,pins = <0x03 0x0e 0x00 0x198 0x03 0x0d 0x00 0x198>; - phandle = <0x12c>; - }; - - i2s2m1-sdi { - rockchip,pins = <0x03 0x0a 0x03 0x198>; - phandle = <0x12a>; - }; - - i2s2m0-idle { - rockchip,pins = <0x02 0x10 0x00 0x198 0x02 0x0f 0x00 0x198>; - phandle = <0x388>; - }; - - i2s2m1-sclk { - rockchip,pins = <0x03 0x0d 0x03 0x19d>; - phandle = <0x12e>; - }; - - i2s2m1-lrck { - rockchip,pins = <0x03 0x0e 0x03 0x19d>; - phandle = <0x12d>; - }; - - i2s2m0-sclk { - rockchip,pins = <0x02 0x0f 0x02 0x19d>; - phandle = <0x38b>; - }; - - i2s2m0-sdo { - rockchip,pins = <0x04 0x13 0x02 0x198>; - phandle = <0x38d>; - }; - }; - - pcfg-pull-none-drv-level-6-smt { - drive-strength = <0x06>; - bias-disable; - input-schmitt-enable; - phandle = <0x304>; - }; - - ddrphych3 { - - ddrphych3-pins { - rockchip,pins = <0x04 0x0c 0x07 0x198 0x04 0x0d 0x07 0x198 0x04 0x0e 0x07 0x198 0x04 0x0f 0x07 0x198>; - phandle = <0x31b>; - }; - }; - - pcfg-pull-none-drv-level-13 { - drive-strength = <0x0d>; - bias-disable; - phandle = <0x457>; - }; - - i2c2 { - - i2c2m2-xfer { - rockchip,pins = <0x02 0x03 0x09 0x19d 0x02 0x02 0x09 0x19d>; - phandle = <0x35a>; - }; - - i2c2m1-xfer { - rockchip,pins = <0x02 0x11 0x09 0x19d 0x02 0x10 0x09 0x19d>; - phandle = <0x35d>; - }; - - i2c2m0-xfer { - rockchip,pins = <0x00 0x0f 0x09 0x19d 0x00 0x10 0x09 0x19d>; - phandle = <0x149>; - }; - - i2c2m4-xfer { - rockchip,pins = <0x01 0x01 0x09 0x19d 0x01 0x00 0x09 0x19d>; - phandle = <0x35c>; - }; - - i2c2m3-xfer { - rockchip,pins = <0x01 0x15 0x09 0x19d 0x01 0x14 0x09 0x19d>; - phandle = <0x35b>; - }; - }; - - auddsm { - - auddsm-pins { - rockchip,pins = <0x03 0x01 0x04 0x198 0x03 0x02 0x04 0x198 0x03 0x03 0x04 0x198 0x03 0x04 0x04 0x198>; - phandle = <0x144>; - }; - }; - - pwm8 { - - pwm8m2-pins { - rockchip,pins = <0x03 0x18 0x0b 0x198>; - phandle = <0x3d5>; - }; - - pwm8m1-pins { - rockchip,pins = <0x04 0x18 0x0b 0x198>; - phandle = <0x3d4>; - }; - - pwm8m0-pins { - rockchip,pins = <0x03 0x07 0x0b 0x198>; - phandle = <0x16d>; - }; - }; - - pmic { - - pmic-pins { - rockchip,pins = <0x00 0x07 0x00 0x19e 0x00 0x02 0x01 0x198 0x00 0x03 0x01 0x198 0x00 0x11 0x01 0x198 0x00 0x12 0x01 0x198 0x00 0x13 0x01 0x198 0x00 0x1e 0x01 0x198>; - phandle = <0x156>; - }; - }; - - pcfg-pull-none-drv-level-6 { - drive-strength = <0x06>; - bias-disable; - phandle = <0x2f2>; - }; - - jtag { - - jtagm2-pins { - rockchip,pins = <0x00 0x0d 0x02 0x198 0x00 0x0e 0x02 0x198>; - phandle = <0x391>; - }; - - jtagm1-pins { - rockchip,pins = <0x04 0x18 0x05 0x198 0x04 0x19 0x05 0x198>; - phandle = <0x390>; - }; - - jtagm0-pins { - rockchip,pins = <0x04 0x1a 0x05 0x198 0x04 0x1b 0x05 0x198>; - phandle = <0x38f>; - }; - }; - - gpio@fd8a0000 { - gpio-controller; - interrupts = <0x00 0x115 0x04>; - clocks = <0x02 0x284 0x02 0x285>; - compatible = "rockchip,gpio-bank"; - #interrupt-cells = <0x02>; - reg = <0x00 0xfd8a0000 0x00 0x100>; - phandle = <0x7b>; - #gpio-cells = <0x02>; - gpio-ranges = <0x197 0x00 0x00 0x20>; - interrupt-controller; - }; - - gmac1 { - - gmac1-rgmii-clk { - rockchip,pins = <0x03 0x05 0x01 0x198 0x03 0x04 0x01 0x198>; - phandle = <0x111>; - }; - - gmac1-rx-bus2 { - rockchip,pins = <0x03 0x07 0x01 0x198 0x03 0x08 0x01 0x198 0x03 0x09 0x01 0x198>; - phandle = <0x110>; - }; - - gmac1-txer { - rockchip,pins = <0x03 0x0a 0x01 0x198>; - phandle = <0x332>; - }; - - gmac1-clkinout { - rockchip,pins = <0x03 0x0e 0x01 0x198>; - phandle = <0x32e>; - }; - - gmac1-ptp-ref-clk { - rockchip,pins = <0x03 0x0f 0x01 0x198>; - phandle = <0x331>; - }; - - gmac1-ppsclk { - rockchip,pins = <0x03 0x11 0x01 0x198>; - phandle = <0x32f>; - }; - - gmac1-ppstrig { - rockchip,pins = <0x03 0x10 0x01 0x198>; - phandle = <0x330>; - }; - - gmac1-rgmii-bus { - rockchip,pins = <0x03 0x02 0x01 0x198 0x03 0x03 0x01 0x198 0x03 0x00 0x01 0x19a 0x03 0x01 0x01 0x19a>; - phandle = <0x112>; - }; - - gmac1-tx-bus2 { - rockchip,pins = <0x03 0x0b 0x01 0x19a 0x03 0x0c 0x01 0x19a 0x03 0x0d 0x01 0x198>; - phandle = <0x10f>; - }; - - gmac1-miim { - rockchip,pins = <0x03 0x12 0x01 0x198 0x03 0x13 0x01 0x198>; - phandle = <0x10e>; - }; - }; - - pcfg-pull-none { - bias-disable; - phandle = <0x198>; - }; - - pwm13 { - - pwm13m2-pins { - rockchip,pins = <0x01 0x0f 0x0b 0x198>; - phandle = <0x3df>; - }; - - pwm13m1-pins { - rockchip,pins = <0x04 0x0e 0x0b 0x198>; - phandle = <0x3de>; - }; - - pwm13m0-pins { - rockchip,pins = <0x03 0x0e 0x0b 0x198>; - phandle = <0x172>; - }; - }; - - pcfg-output-high-pull-down { - output-high; - bias-pull-down; - phandle = <0x307>; - }; - - uart7 { - - uart7m1-ctsn { - rockchip,pins = <0x03 0x13 0x0a 0x198>; - phandle = <0x43b>; - }; - - uart7m2-xfer { - rockchip,pins = <0x01 0x0c 0x0a 0x19e 0x01 0x0d 0x0a 0x19e>; - phandle = <0x43d>; - }; - - uart7m0-ctsn { - rockchip,pins = <0x04 0x16 0x0a 0x198>; - phandle = <0x43f>; - }; - - uart7m1-xfer { - rockchip,pins = <0x03 0x11 0x0a 0x19e 0x03 0x10 0x0a 0x19e>; - phandle = <0x166>; - }; - - uart7m0-xfer { - rockchip,pins = <0x02 0x0c 0x0a 0x19e 0x02 0x0d 0x0a 0x19e>; - phandle = <0x43e>; - }; - - uart7m1-rtsn { - rockchip,pins = <0x03 0x12 0x0a 0x198>; - phandle = <0x43c>; - }; - - uart7m0-rtsn { - rockchip,pins = <0x04 0x12 0x0a 0x198>; - phandle = <0x440>; - }; - }; - - pcfg-pull-down-drv-level-9 { - drive-strength = <0x09>; - bias-pull-down; - phandle = <0x465>; - }; - - spi1 { - - spi1m1-cs1 { - rockchip,pins = <0x03 0x13 0x08 0x19a>; - phandle = <0x152>; - }; - - spi1m2-cs1 { - rockchip,pins = <0x01 0x1d 0x08 0x19a>; - phandle = <0x3fe>; - }; - - spi1m0-cs0 { - rockchip,pins = <0x02 0x13 0x08 0x19f>; - phandle = <0x400>; - }; - - spi1m2-pins { - rockchip,pins = <0x01 0x1a 0x08 0x19a 0x01 0x18 0x08 0x19a 0x01 0x19 0x08 0x19a>; - phandle = <0x3fc>; - }; - - spi1m1-pins { - rockchip,pins = <0x03 0x11 0x08 0x19a 0x03 0x10 0x08 0x19a 0x03 0x0f 0x08 0x19a>; - phandle = <0x153>; - }; - - spi1m1-cs0 { - rockchip,pins = <0x03 0x12 0x08 0x19a>; - phandle = <0x151>; - }; - - spi1m0-pins { - rockchip,pins = <0x02 0x10 0x08 0x19f 0x02 0x11 0x08 0x19f 0x02 0x12 0x08 0x19f>; - phandle = <0x3ff>; - }; - - spi1m0-cs1 { - rockchip,pins = <0x02 0x14 0x08 0x19f>; - phandle = <0x401>; - }; - - spi1m2-cs0 { - rockchip,pins = <0x01 0x1b 0x08 0x19a>; - phandle = <0x3fd>; - }; - }; - - pcfg-pull-up-drv-level-14 { - drive-strength = <0x0e>; - phandle = <0x461>; - bias-pull-up; - }; - - pcfg-output-low-pull-down { - bias-pull-down; - phandle = <0x30b>; - output-low; - }; - - pcfg-pull-down-drv-level-12 { - drive-strength = <0x0c>; - bias-pull-down; - phandle = <0x468>; - }; - - pcfg-pull-up-drv-level-1 { - drive-strength = <0x01>; - phandle = <0x19f>; - bias-pull-up; - }; - - pcfg-pull-none-smt { - bias-disable; - input-schmitt-enable; - phandle = <0x19d>; - }; - - sdmmc { - - sdmmc-det { - rockchip,pins = <0x00 0x04 0x01 0x19e>; - phandle = <0x116>; - }; - - sdmmc-pwren { - rockchip,pins = <0x00 0x05 0x02 0x198>; - phandle = <0x3ef>; - }; - - sdmmc-bus4 { - rockchip,pins = <0x04 0x18 0x01 0x199 0x04 0x19 0x01 0x199 0x04 0x1a 0x01 0x199 0x04 0x1b 0x01 0x199>; - phandle = <0x117>; - }; - - sdmmc-cmd { - rockchip,pins = <0x04 0x1c 0x01 0x199>; - phandle = <0x115>; - }; - - sdmmc-clk { - rockchip,pins = <0x04 0x1d 0x01 0x199>; - phandle = <0x114>; - }; - }; - - i2s0 { - - i2s0-sclk { - rockchip,pins = <0x01 0x13 0x01 0x19d>; - phandle = <0x11c>; - }; - - i2s0-sdo3 { - rockchip,pins = <0x01 0x1a 0x01 0x198>; - phandle = <0x37a>; - }; - - i2s0-lrck { - rockchip,pins = <0x01 0x15 0x01 0x19d>; - phandle = <0x11b>; - }; - - i2s0-sdo1 { - rockchip,pins = <0x01 0x18 0x01 0x198>; - phandle = <0x378>; - }; - - i2s0-sdi3 { - rockchip,pins = <0x01 0x19 0x02 0x198>; - phandle = <0x377>; - }; - - i2s0-mclk { - rockchip,pins = <0x01 0x12 0x01 0x19d>; - phandle = <0x17a>; - }; - - i2s0-sdi1 { - rockchip,pins = <0x01 0x1b 0x02 0x198>; - phandle = <0x375>; - }; - - i2s0-sdo2 { - rockchip,pins = <0x01 0x19 0x01 0x198>; - phandle = <0x379>; - }; - - i2s0-idle { - rockchip,pins = <0x01 0x15 0x00 0x198 0x01 0x13 0x00 0x198>; - phandle = <0x11f>; - }; - - i2s0-sdo0 { - rockchip,pins = <0x01 0x17 0x01 0x198>; - phandle = <0x11e>; - }; - - i2s0-sdi2 { - rockchip,pins = <0x01 0x1a 0x02 0x198>; - phandle = <0x376>; - }; - - i2s0-sdi0 { - rockchip,pins = <0x01 0x1c 0x02 0x198>; - phandle = <0x11d>; - }; - }; - - ddrphych1 { - - ddrphych1-pins { - rockchip,pins = <0x04 0x04 0x07 0x198 0x04 0x05 0x07 0x198 0x04 0x06 0x07 0x198 0x04 0x07 0x07 0x198>; - phandle = <0x319>; - }; - }; - - pcfg-pull-none-drv-level-11 { - drive-strength = <0x0b>; - bias-disable; - phandle = <0x455>; - }; - - i2c0 { - - i2c0m2-xfer { - rockchip,pins = <0x00 0x19 0x03 0x19d 0x00 0x1a 0x03 0x19d>; - phandle = <0x77>; - }; - - i2c0m1-xfer { - rockchip,pins = <0x04 0x15 0x09 0x19d 0x04 0x16 0x09 0x19d>; - phandle = <0x355>; - }; - - i2c0m0-xfer { - rockchip,pins = <0x00 0x0b 0x02 0x19d 0x00 0x06 0x02 0x19d>; - phandle = <0x354>; - }; - }; - - pwm6 { - - pwm6m2-pins { - rockchip,pins = <0x04 0x15 0x0b 0x198>; - phandle = <0x3d0>; - }; - - pwm6m1-pins { - rockchip,pins = <0x04 0x11 0x0b 0x198>; - phandle = <0x3cf>; - }; - - pwm6m0-pins { - rockchip,pins = <0x00 0x17 0x0b 0x198>; - phandle = <0x16b>; - }; - }; - - hym8563 { - - hym8563-int { - rockchip,pins = <0x00 0x08 0x00 0x198>; - phandle = <0x7a>; - }; - }; - - pcfg-pull-none-drv-level-4 { - drive-strength = <0x04>; - bias-disable; - phandle = <0x2f0>; - }; - - pcfg-output-high-pull-up { - output-high; - phandle = <0x306>; - bias-pull-up; - }; - - pwm11 { - - pwm11m3-pins { - rockchip,pins = <0x03 0x1d 0x0b 0x198>; - phandle = <0x3dc>; - }; - - pwm11m2-pins { - rockchip,pins = <0x01 0x14 0x0b 0x198>; - phandle = <0x3db>; - }; - - pwm11m1-pins { - rockchip,pins = <0x04 0x0c 0x0b 0x198>; - phandle = <0x3da>; - }; - - pwm11m0-pins { - rockchip,pins = <0x03 0x01 0x0b 0x198>; - phandle = <0x170>; - }; - }; - - bt1120 { - - bt1120-pins { - rockchip,pins = <0x04 0x08 0x02 0x198 0x04 0x00 0x02 0x198 0x04 0x01 0x02 0x198 0x04 0x02 0x02 0x198 0x04 0x03 0x02 0x198 0x04 0x04 0x02 0x198 0x04 0x05 0x02 0x198 0x04 0x06 0x02 0x198 0x04 0x07 0x02 0x198 0x04 0x0a 0x02 0x198 0x04 0x0b 0x02 0x198 0x04 0x0c 0x02 0x198 0x04 0x0d 0x02 0x198 0x04 0x0e 0x02 0x198 0x04 0x0f 0x02 0x198 0x04 0x10 0x02 0x198 0x04 0x11 0x02 0x198>; - phandle = <0x71>; - }; - }; - - pcfg-output-low-pull-up { - phandle = <0x30a>; - bias-pull-up; - output-low; - }; - - uart5 { - - uart5m1-ctsn { - rockchip,pins = <0x02 0x02 0x0a 0x198>; - phandle = <0x433>; - }; - - uart5m2-xfer { - rockchip,pins = <0x02 0x1c 0x0a 0x19e 0x02 0x1d 0x0a 0x19e>; - phandle = <0x435>; - }; - - uart5m0-ctsn { - rockchip,pins = <0x04 0x1a 0x0a 0x198>; - phandle = <0x431>; - }; - - uart5m1-xfer { - rockchip,pins = <0x03 0x15 0x0a 0x19e 0x03 0x14 0x0a 0x19e>; - phandle = <0x164>; - }; - - uart5m0-xfer { - rockchip,pins = <0x04 0x1c 0x0a 0x19e 0x04 0x1d 0x0a 0x19e>; - phandle = <0x430>; - }; - - uart5m1-rtsn { - rockchip,pins = <0x02 0x03 0x0a 0x198>; - phandle = <0x434>; - }; - - uart5m0-rtsn { - rockchip,pins = <0x04 0x1b 0x0a 0x198>; - phandle = <0x432>; - }; - }; - - sdio { - - sdiom1-pins { - rockchip,pins = <0x03 0x05 0x02 0x198 0x03 0x04 0x02 0x19e 0x03 0x00 0x02 0x19e 0x03 0x01 0x02 0x19e 0x03 0x02 0x02 0x19e 0x03 0x03 0x02 0x19e>; - phandle = <0x119>; - }; - - sdiom0-pins { - rockchip,pins = <0x02 0x0b 0x02 0x198 0x02 0x0a 0x02 0x19e 0x02 0x06 0x02 0x19e 0x02 0x07 0x02 0x19e 0x02 0x08 0x02 0x19e 0x02 0x09 0x02 0x19e>; - phandle = <0x3ee>; - }; - }; - - spdif1 { - - spdif1m0-tx { - rockchip,pins = <0x01 0x0f 0x03 0x198>; - phandle = <0x143>; - }; - - spdif1m2-tx { - rockchip,pins = <0x04 0x11 0x03 0x198>; - phandle = <0x3f2>; - }; - - spdif1m1-tx { - rockchip,pins = <0x04 0x09 0x02 0x198>; - phandle = <0x3f1>; - }; - }; - - pcfg-pull-down-drv-level-7 { - drive-strength = <0x07>; - bias-pull-down; - phandle = <0x463>; - }; - - gpio@fec30000 { - gpio-controller; - interrupts = <0x00 0x117 0x04>; - clocks = <0x02 0x7f 0x02 0x80>; - compatible = "rockchip,gpio-bank"; - #interrupt-cells = <0x02>; - reg = <0x00 0xfec30000 0x00 0x100>; - phandle = <0x79>; - #gpio-cells = <0x02>; - gpio-ranges = <0x197 0x00 0x40 0x20>; - interrupt-controller; - }; - - pcfg-pull-up-drv-level-12 { - drive-strength = <0x0c>; - phandle = <0x45f>; - bias-pull-up; - }; - - pcfg-pull-down-drv-level-10 { - drive-strength = <0x0a>; - bias-pull-down; - phandle = <0x466>; - }; - - dp1 { - - dp1m1-pins { - rockchip,pins = <0x00 0x15 0x0a 0x198>; - phandle = <0x320>; - }; - - dp1m0-pins { - rockchip,pins = <0x03 0x1d 0x05 0x198>; - phandle = <0x31f>; - }; - - dp1m2-pins { - rockchip,pins = <0x01 0x01 0x05 0x198>; - phandle = <0x321>; - }; - }; - - vop { - - vop-pins { - rockchip,pins = <0x01 0x02 0x01 0x198>; - phandle = <0x44f>; - }; - }; - - pwm4 { - - pwm4m1-pins { - rockchip,pins = <0x04 0x13 0x0b 0x198>; - phandle = <0x3cc>; - }; - - pwm4m0-pins { - rockchip,pins = <0x00 0x15 0x0b 0x198>; - phandle = <0x169>; - }; - }; - - pcfg-pull-none-drv-level-2 { - drive-strength = <0x02>; - bias-disable; - phandle = <0x1a0>; - }; - - pcfg-pull-none-drv-level-3-smt { - drive-strength = <0x03>; - bias-disable; - input-schmitt-enable; - phandle = <0x302>; - }; - - uart3 { - - uart3m2-xfer { - rockchip,pins = <0x04 0x06 0x0a 0x19e 0x04 0x05 0x0a 0x19e>; - phandle = <0x429>; - }; - - uart3m1-xfer { - rockchip,pins = <0x03 0x0e 0x0a 0x19e 0x03 0x0d 0x0a 0x19e>; - phandle = <0x162>; - }; - - uart3-ctsn { - rockchip,pins = <0x01 0x13 0x0a 0x198>; - phandle = <0x42a>; - }; - - uart3m0-xfer { - rockchip,pins = <0x01 0x10 0x0a 0x19e 0x01 0x11 0x0a 0x19e>; - phandle = <0x428>; - }; - - uart3-rtsn { - rockchip,pins = <0x01 0x12 0x0a 0x198>; - phandle = <0x42b>; - }; - }; - - pcfg-pull-down-drv-level-5 { - drive-strength = <0x05>; - bias-pull-down; - phandle = <0x2fc>; - }; - - pcfg-pull-up-drv-level-8 { - drive-strength = <0x08>; - phandle = <0x45b>; - bias-pull-up; - }; - - pcfg-pull-up-drv-level-10 { - drive-strength = <0x0a>; - phandle = <0x45d>; - bias-pull-up; - }; - - pcfg-output-low { - phandle = <0x309>; - output-low; - }; - - i2c7 { - - i2c7m3-xfer { - rockchip,pins = <0x04 0x0a 0x09 0x19d 0x04 0x0b 0x09 0x19d>; - phandle = <0x36f>; - }; - - i2c7m2-xfer { - rockchip,pins = <0x03 0x1a 0x09 0x19d 0x03 0x1b 0x09 0x19d>; - phandle = <0x36e>; - }; - - i2c7m1-xfer { - rockchip,pins = <0x04 0x13 0x09 0x19d 0x04 0x14 0x09 0x19d>; - phandle = <0x370>; - }; - - i2c7m0-xfer { - rockchip,pins = <0x01 0x18 0x09 0x19d 0x01 0x19 0x09 0x19d>; - phandle = <0x185>; - }; - }; - - pwm2 { - - pwm2m2-pins { - rockchip,pins = <0x04 0x12 0x0b 0x198>; - phandle = <0x3c8>; - }; - - pwm2m1-pins { - rockchip,pins = <0x03 0x09 0x0b 0x198>; - phandle = <0x3c7>; - }; - - pwm2m0-pins { - rockchip,pins = <0x00 0x14 0x03 0x198>; - phandle = <0x80>; - }; - }; - - pcfg-pull-none-drv-level-0 { - drive-strength = <0x00>; - bias-disable; - phandle = <0x2ed>; - }; - - sata1 { - - sata1m1-pins { - rockchip,pins = <0x01 0x01 0x06 0x198>; - phandle = <0x3eb>; - }; - - sata1m0-pins { - rockchip,pins = <0x04 0x0d 0x06 0x198>; - phandle = <0x3ea>; - }; - }; - - pmu { - - pmu-pins { - rockchip,pins = <0x00 0x05 0x03 0x198>; - phandle = <0x3c2>; - }; - }; - - hdmirx { - - hdmirx-det { - rockchip,pins = <0x01 0x1d 0x00 0x198>; - phandle = <0x1b4>; - }; - }; - - uart1 { - - uart1m0-ctsn { - rockchip,pins = <0x02 0x11 0x0a 0x198>; - phandle = <0x423>; - }; - - uart1m1-xfer { - rockchip,pins = <0x01 0x0f 0x0a 0x19e 0x01 0x0e 0x0a 0x19e>; - phandle = <0x160>; - }; - - uart1m0-xfer { - rockchip,pins = <0x02 0x0e 0x0a 0x19e 0x02 0x0f 0x0a 0x19e>; - phandle = <0x422>; - }; - - uart1m2-rtsn { - rockchip,pins = <0x00 0x17 0x0a 0x198>; - phandle = <0x421>; - }; - - uart1m1-rtsn { - rockchip,pins = <0x01 0x1e 0x0a 0x198>; - phandle = <0x41e>; - }; - - uart1m0-rtsn { - rockchip,pins = <0x02 0x10 0x0a 0x198>; - phandle = <0x424>; - }; - - uart1m2-ctsn { - rockchip,pins = <0x00 0x18 0x0a 0x198>; - phandle = <0x420>; - }; - - uart1m1-ctsn { - rockchip,pins = <0x01 0x1f 0x0a 0x198>; - phandle = <0x41d>; - }; - - uart1m2-xfer { - rockchip,pins = <0x00 0x1a 0x0a 0x19e 0x00 0x19 0x0a 0x19e>; - phandle = <0x41f>; - }; - }; - - hdmi { - - hdmim1-rx-cec { - rockchip,pins = <0x03 0x19 0x05 0x198>; - phandle = <0x338>; - }; - - hdmim0-rx-scl { - rockchip,pins = <0x00 0x1a 0x0b 0x198>; - phandle = <0x336>; - }; - - hdmim0-rx-sda { - rockchip,pins = <0x00 0x19 0x0b 0x198>; - phandle = <0x337>; - }; - - hdmim0-tx0-cec { - rockchip,pins = <0x04 0x11 0x05 0x198>; - phandle = <0xf9>; - }; - - hdmim2-rx-cec { - rockchip,pins = <0x01 0x0f 0x05 0x198>; - phandle = <0x342>; - }; - - hdmim1-rx-scl { - rockchip,pins = <0x03 0x1a 0x05 0x19d>; - phandle = <0x33a>; - }; - - hdmim1-rx-sda { - rockchip,pins = <0x03 0x1b 0x05 0x19d>; - phandle = <0x33b>; - }; - - hdmim0-tx0-scl { - rockchip,pins = <0x04 0x0f 0x05 0x19b>; - phandle = <0xfb>; - }; - - hdmim0-tx0-sda { - rockchip,pins = <0x04 0x10 0x05 0x19c>; - phandle = <0xfc>; - }; - - hdmim2-rx-scl { - rockchip,pins = <0x01 0x1e 0x05 0x198>; - phandle = <0x344>; - }; - - hdmim2-rx-sda { - rockchip,pins = <0x01 0x1f 0x05 0x198>; - phandle = <0x345>; - }; - - hdmim0-tx0-hpd { - rockchip,pins = <0x01 0x05 0x05 0x198>; - phandle = <0xfa>; - }; - - hdmim2-rx-hpdin { - rockchip,pins = <0x01 0x0e 0x05 0x198>; - phandle = <0x343>; - }; - - hdmi-debug6 { - rockchip,pins = <0x01 0x00 0x07 0x198>; - phandle = <0x350>; - }; - - hdmim2-tx0-scl { - rockchip,pins = <0x03 0x17 0x05 0x19b>; - phandle = <0x346>; - }; - - hdmim2-tx0-sda { - rockchip,pins = <0x03 0x18 0x05 0x19c>; - phandle = <0x347>; - }; - - hdmi-debug4 { - rockchip,pins = <0x01 0x0b 0x07 0x198>; - phandle = <0x34e>; - }; - - hdmim0-tx1-cec { - rockchip,pins = <0x02 0x14 0x04 0x198>; - phandle = <0x351>; - }; - - hdmim0-tx1-scl { - rockchip,pins = <0x02 0x0d 0x04 0x198>; - phandle = <0x352>; - }; - - hdmim0-tx1-sda { - rockchip,pins = <0x02 0x0c 0x04 0x198>; - phandle = <0x353>; - }; - - hdmi-debug2 { - rockchip,pins = <0x01 0x09 0x07 0x198>; - phandle = <0x34c>; - }; - - hdmim0-tx1-hpd { - rockchip,pins = <0x01 0x06 0x05 0x198>; - phandle = <0x1a9>; - }; - - hdmim1-rx { - rockchip,pins = <0x03 0x19 0x05 0x198 0x03 0x1a 0x05 0x19d 0x03 0x1b 0x05 0x19d 0x03 0x1c 0x05 0x198>; - phandle = <0x1b3>; - }; - - hdmim2-tx1-cec { - rockchip,pins = <0x03 0x14 0x05 0x198>; - phandle = <0x1a8>; - }; - - hdmi-debug0 { - rockchip,pins = <0x01 0x07 0x07 0x198>; - phandle = <0x34a>; - }; - - hdmim2-tx1-scl { - rockchip,pins = <0x01 0x04 0x05 0x19b>; - phandle = <0x348>; - }; - - hdmim2-tx1-sda { - rockchip,pins = <0x01 0x03 0x05 0x19c>; - phandle = <0x349>; - }; - - hdmim1-tx0-cec { - rockchip,pins = <0x00 0x19 0x0d 0x198>; - phandle = <0x33c>; - }; - - hdmim1-tx0-scl { - rockchip,pins = <0x00 0x1d 0x0b 0x19b>; - phandle = <0x33e>; - }; - - hdmim1-tx0-sda { - rockchip,pins = <0x00 0x1c 0x0b 0x19c>; - phandle = <0x33f>; - }; - - hdmim1-tx0-hpd { - rockchip,pins = <0x03 0x1c 0x03 0x198>; - phandle = <0x33d>; - }; - - hdmim0-rx-hpdin { - rockchip,pins = <0x04 0x0e 0x05 0x198>; - phandle = <0x335>; - }; - - hdmi-debug5 { - rockchip,pins = <0x01 0x0c 0x07 0x198>; - phandle = <0x34f>; - }; - - hdmi-debug3 { - rockchip,pins = <0x01 0x0a 0x07 0x198>; - phandle = <0x34d>; - }; - - hdmim1-tx1-cec { - rockchip,pins = <0x00 0x1a 0x0d 0x198>; - phandle = <0x340>; - }; - - hdmi-debug1 { - rockchip,pins = <0x01 0x08 0x07 0x198>; - phandle = <0x34b>; - }; - - hdmim1-tx1-scl { - rockchip,pins = <0x03 0x16 0x05 0x19b>; - phandle = <0x1aa>; - }; - - hdmim1-tx1-sda { - rockchip,pins = <0x03 0x15 0x05 0x19c>; - phandle = <0x1ab>; - }; - - hdmim1-tx1-hpd { - rockchip,pins = <0x03 0x0f 0x05 0x198>; - phandle = <0x341>; - }; - - hdmim1-rx-hpdin { - rockchip,pins = <0x03 0x1c 0x05 0x198>; - phandle = <0x339>; - }; - - hdmim0-rx-cec { - rockchip,pins = <0x04 0x0d 0x05 0x198>; - phandle = <0x334>; - }; - }; - - pcfg-pull-down-drv-level-3 { - drive-strength = <0x03>; - bias-pull-down; - phandle = <0x2fa>; - }; - - pcfg-pull-up-drv-level-6 { - drive-strength = <0x06>; - phandle = <0x19a>; - bias-pull-up; - }; - - i2c5 { - - i2c5m3-xfer { - rockchip,pins = <0x01 0x0e 0x09 0x19d 0x01 0x0f 0x09 0x19d>; - phandle = <0x368>; - }; - - i2c5m2-xfer { - rockchip,pins = <0x04 0x06 0x09 0x19d 0x04 0x07 0x09 0x19d>; - phandle = <0x367>; - }; - - i2c5m1-xfer { - rockchip,pins = <0x04 0x0e 0x09 0x19d 0x04 0x0f 0x09 0x19d>; - phandle = <0x366>; - }; - - i2c5m0-xfer { - rockchip,pins = <0x03 0x17 0x09 0x19d 0x03 0x18 0x09 0x19d>; - phandle = <0x14d>; - }; - - i2c5m4-xfer { - rockchip,pins = <0x02 0x0e 0x09 0x19d 0x02 0x0f 0x09 0x19d>; - phandle = <0x369>; - }; - }; - - pcfg-pull-none-drv-level-9 { - drive-strength = <0x09>; - bias-disable; - phandle = <0x453>; - }; - - pdm0 { - - pdm0m1-sdi3 { - rockchip,pins = <0x00 0x1e 0x02 0x198>; - phandle = <0x3ba>; - }; - - pdm0m1-clk { - rockchip,pins = <0x00 0x10 0x02 0x198>; - phandle = <0x3b4>; - }; - - pdm0m1-sdi1 { - rockchip,pins = <0x00 0x18 0x02 0x198>; - phandle = <0x3b8>; - }; - - pdm0m0-sdi3 { - rockchip,pins = <0x01 0x1b 0x03 0x198>; - phandle = <0x137>; - }; - - pdm0m0-sdi1 { - rockchip,pins = <0x01 0x19 0x03 0x198>; - phandle = <0x135>; - }; - - pdm0m1-clk1 { - rockchip,pins = <0x00 0x14 0x02 0x198>; - phandle = <0x3b5>; - }; - - pdm0m1-idle { - rockchip,pins = <0x00 0x10 0x00 0x198 0x00 0x14 0x00 0x198>; - phandle = <0x3b6>; - }; - - pdm0m0-clk1 { - rockchip,pins = <0x01 0x14 0x03 0x198>; - phandle = <0x13a>; - }; - - pdm0m1-sdi2 { - rockchip,pins = <0x00 0x1c 0x02 0x198>; - phandle = <0x3b9>; - }; - - pdm0m0-idle { - rockchip,pins = <0x01 0x16 0x00 0x198 0x01 0x14 0x00 0x198>; - phandle = <0x138>; - }; - - pdm0m1-sdi0 { - rockchip,pins = <0x00 0x17 0x02 0x198>; - phandle = <0x3b7>; - }; - - pdm0m0-sdi2 { - rockchip,pins = <0x01 0x1a 0x03 0x198>; - phandle = <0x136>; - }; - - pdm0m0-sdi0 { - rockchip,pins = <0x01 0x1d 0x03 0x198>; - phandle = <0x134>; - }; - - pdm0m0-clk { - rockchip,pins = <0x01 0x16 0x03 0x198>; - phandle = <0x139>; - }; - }; - - pcfg-output-high-pull-none { - bias-disable; - output-high; - phandle = <0x308>; - }; - - pwm0 { - - pwm0m1-pins { - rockchip,pins = <0x01 0x1a 0x0b 0x198>; - phandle = <0x3c3>; - }; - - pwm0m0-pins { - rockchip,pins = <0x00 0x0f 0x03 0x198>; - phandle = <0x7e>; - }; - - pwm0m2-pins { - rockchip,pins = <0x01 0x02 0x0b 0x198>; - phandle = <0x3c4>; - }; - }; - - cif { - - cif-dvp-clk { - rockchip,pins = <0x04 0x08 0x01 0x198 0x04 0x0a 0x01 0x198 0x04 0x0b 0x01 0x198>; - phandle = <0x311>; - }; - - cif-clk { - rockchip,pins = <0x04 0x0c 0x01 0x198>; - phandle = <0x310>; - }; - - cif-dvp-bus8 { - rockchip,pins = <0x04 0x00 0x01 0x198 0x04 0x01 0x01 0x198 0x04 0x02 0x01 0x198 0x04 0x03 0x01 0x198 0x04 0x04 0x01 0x198 0x04 0x05 0x01 0x198 0x04 0x06 0x01 0x198 0x04 0x07 0x01 0x198>; - phandle = <0x313>; - }; - - cif-dvp-bus16 { - rockchip,pins = <0x03 0x14 0x01 0x198 0x03 0x15 0x01 0x198 0x03 0x16 0x01 0x198 0x03 0x17 0x01 0x198 0x03 0x18 0x01 0x198 0x03 0x19 0x01 0x198 0x03 0x1a 0x01 0x198 0x03 0x1b 0x01 0x198>; - phandle = <0x312>; - }; - }; - - can1 { - - can1m1-pins { - rockchip,pins = <0x04 0x0a 0x0c 0x198 0x04 0x0b 0x0c 0x198>; - phandle = <0x146>; - }; - - can1m0-pins { - rockchip,pins = <0x03 0x0d 0x09 0x198 0x03 0x0e 0x09 0x198>; - phandle = <0x30e>; - }; - }; - - pcfg-output-low-pull-none { - bias-disable; - phandle = <0x30c>; - output-low; - }; - - gpio@fec40000 { - gpio-controller; - interrupts = <0x00 0x118 0x04>; - clocks = <0x02 0x81 0x02 0x82>; - compatible = "rockchip,gpio-bank"; - #interrupt-cells = <0x02>; - reg = <0x00 0xfec40000 0x00 0x100>; - phandle = <0x181>; - #gpio-cells = <0x02>; - gpio-ranges = <0x197 0x00 0x60 0x20>; - interrupt-controller; - }; - - spi4 { - - spi4m0-cs0 { - rockchip,pins = <0x01 0x13 0x08 0x19a>; - phandle = <0x187>; - }; - - spi4m1-cs0 { - rockchip,pins = <0x03 0x03 0x08 0x19a>; - phandle = <0x413>; - }; - - spi4m2-pins { - rockchip,pins = <0x01 0x02 0x08 0x19a 0x01 0x00 0x08 0x19a 0x01 0x01 0x08 0x19a>; - phandle = <0x415>; - }; - - spi4m0-cs1 { - rockchip,pins = <0x01 0x14 0x08 0x19a>; - phandle = <0x188>; - }; - - spi4m1-pins { - rockchip,pins = <0x03 0x02 0x08 0x19a 0x03 0x00 0x08 0x19a 0x03 0x01 0x08 0x19a>; - phandle = <0x412>; - }; - - spi4m2-cs0 { - rockchip,pins = <0x01 0x03 0x08 0x19a>; - phandle = <0x416>; - }; - - spi4m0-pins { - rockchip,pins = <0x01 0x12 0x08 0x19a 0x01 0x10 0x08 0x19a 0x01 0x11 0x08 0x19a>; - phandle = <0x189>; - }; - - spi4m1-cs1 { - rockchip,pins = <0x03 0x04 0x08 0x19a>; - phandle = <0x414>; - }; - }; - - pcfg-pull-down-drv-level-15 { - drive-strength = <0x0f>; - bias-pull-down; - phandle = <0x46b>; - }; - - pcfg-pull-up-smt { - input-schmitt-enable; - phandle = <0x2fe>; - bias-pull-up; - }; - - pcfg-pull-down-drv-level-1 { - drive-strength = <0x01>; - bias-pull-down; - phandle = <0x2f8>; - }; - - pcfg-pull-up-drv-level-4 { - drive-strength = <0x04>; - phandle = <0x2f5>; - bias-pull-up; - }; - - wireless-wlan { - - wifi-host-wake-irq { - rockchip,pins = <0x00 0x0a 0x00 0x198>; - phandle = <0x1ea>; - }; - }; - - wdt-pc9202 { - - wdt-en-base { - rockchip,pins = <0x00 0x14 0x00 0x198>; - phandle = <0x14c>; - }; - }; - - pcfg-pull-none-drv-level-0-smt { - drive-strength = <0x00>; - bias-disable; - input-schmitt-enable; - phandle = <0x300>; - }; - - i2s3 { - - i2s3-sdi { - rockchip,pins = <0x03 0x04 0x03 0x198>; - phandle = <0x12f>; - }; - - i2s3-idle { - rockchip,pins = <0x03 0x02 0x00 0x198 0x03 0x01 0x00 0x198>; - phandle = <0x131>; - }; - - i2s3-sclk { - rockchip,pins = <0x03 0x01 0x03 0x19d>; - phandle = <0x133>; - }; - - i2s3-lrck { - rockchip,pins = <0x03 0x02 0x03 0x19d>; - phandle = <0x132>; - }; - - i2s3-sdo { - rockchip,pins = <0x03 0x03 0x03 0x198>; - phandle = <0x130>; - }; - - i2s3-mclk { - rockchip,pins = <0x03 0x00 0x03 0x19d>; - phandle = <0x38e>; - }; - }; - - pcfg-pull-none-drv-level-14 { - drive-strength = <0x0e>; - bias-disable; - phandle = <0x458>; - }; - }; - - rkcif-mipi-lvds4-sditf-vir1 { - compatible = "rockchip,rkcif-sditf"; - status = "disabled"; - rockchip,cif = <0x1a1>; - phandle = <0x473>; - }; - - bt-sco { - #sound-dai-cells = <0x01>; - compatible = "delta,dfbmcs320"; - status = "disabled"; - phandle = <0x1d2>; - }; - - phy@fed80000 { - svid = <0xff01>; - orientation-switch; - sbu2-dc-gpios = <0x10d 0x07 0x00>; - clock-names = "refclk\0immortal\0pclk\0utmi"; - resets = <0x02 0x28 0x02 0x29 0x02 0x2a 0x02 0x2b 0x02 0x482>; - clocks = <0x02 0x2b6 0x02 0x27f 0x02 0x269 0x18d>; - compatible = "rockchip,rk3588-usbdp-phy"; - status = "okay"; - reg = <0x00 0xfed80000 0x00 0x10000>; - phandle = <0x2ea>; - rockchip,usb-grf = <0x74>; - reset-names = "init\0cmn\0lane\0pcs_apb\0pma_apb"; - rockchip,u2phy-grf = <0x18b>; - sbu1-dc-gpios = <0x10d 0x06 0x00>; - rockchip,usbdpphy-grf = <0x18c>; - rockchip,vo-grf = <0xf5>; - - dp-port { - #phy-cells = <0x00>; - status = "okay"; - phandle = <0xf6>; - }; - - port { - #address-cells = <0x01>; - #size-cells = <0x00>; - - endpoint@1 { - remote-endpoint = <0x18f>; - reg = <0x01>; - phandle = <0x17f>; - }; - - endpoint@0 { - remote-endpoint = <0x18e>; - reg = <0x00>; - phandle = <0x17e>; - }; - }; - - u3-port { - #phy-cells = <0x00>; - status = "okay"; - phandle = <0x67>; - }; - }; - - interrupt-controller@fe600000 { - #address-cells = <0x02>; - interrupts = <0x01 0x09 0x04>; - #size-cells = <0x02>; - compatible = "arm,gic-v3"; - ranges; - #interrupt-cells = <0x03>; - reg = <0x00 0xfe600000 0x00 0x10000 0x00 0xfe680000 0x00 0x100000>; - phandle = <0x01>; - interrupt-controller; - - msi-controller@fe640000 { - msi-controller; - compatible = "arm,gic-v3-its"; - reg = <0x00 0xfe640000 0x00 0x20000>; - phandle = <0x106>; - #msi-cells = <0x01>; - }; - - msi-controller@fe660000 { - msi-controller; - compatible = "arm,gic-v3-its"; - reg = <0x00 0xfe660000 0x00 0x20000>; - phandle = <0x1b6>; - #msi-cells = <0x01>; - }; - }; - - ethernet@fe1c0000 { - power-domains = <0x60 0x21>; - pinctrl-names = "default"; - phy-mode = "rgmii-rxid"; - snps,mixed-burst; - snps,mtl-rx-config = <0x10b>; - snps,reset-active-low; - pinctrl-0 = <0x10e 0x10f 0x110 0x111 0x112>; - clock-names = "stmmaceth\0clk_mac_ref\0pclk_mac\0aclk_mac\0ptp_ref"; - snps,mtl-tx-config = <0x10c>; - local-mac-address = [a6 50 47 45 20 1c]; - resets = <0x02 0x20b>; - interrupts = <0x00 0xea 0x04 0x00 0xe9 0x04>; - clocks = <0x02 0x144 0x02 0x145 0x02 0x168 0x02 0x16d 0x02 0x143>; - clock_in_out = "output"; - snps,tso; - compatible = "rockchip,rk3588-gmac\0snps,dwmac-4.20a"; - status = "okay"; - rockchip,grf = <0xc8>; - interrupt-names = "macirq\0eth_wake_irq"; - snps,reset-gpio = <0x10d 0x08 0x01>; - reg = <0x00 0xfe1c0000 0x00 0x10000>; - rockchip,php_grf = <0x76>; - phandle = <0x109>; - phy-handle = <0x113>; - reset-names = "stmmaceth"; - tx_delay = <0x40>; - snps,axi-config = <0x10a>; - snps,reset-delays-us = <0x00 0x4e20 0x186a0>; - - mdio { - #address-cells = <0x01>; - #size-cells = <0x00>; - compatible = "snps,dwmac-mdio"; - phandle = <0x28f>; - - phy@1 { - compatible = "ethernet-phy-ieee802.3-c22"; - reg = <0x01>; - phandle = <0x113>; - }; - }; - - tx-queues-config { - phandle = <0x10c>; - snps,tx-queues-to-use = <0x01>; - - queue0 { - }; - }; - - stmmac-axi-config { - snps,wr_osr_lmt = <0x04>; - phandle = <0x10a>; - snps,blen = <0x00 0x00 0x00 0x00 0x10 0x08 0x04>; - snps,rd_osr_lmt = <0x08>; - }; - - rx-queues-config { - snps,rx-queues-to-use = <0x01>; - phandle = <0x10b>; - - queue0 { - }; - }; - }; - - pcie-essd { - regulator-max-microvolt = <0x2625a0>; - enable-active-high; - regulator-min-microvolt = <0x2625a0>; - regulator-name = "pcie_essd"; - startup-delay-us = <0x1388>; - compatible = "regulator-fixed"; - status = "disabled"; - phandle = <0x1ba>; - vin-supply = <0x1cd>; - gpios = <0x181 0x0f 0x00>; - }; - - iommu@fdab9000 { - clock-names = "aclk0\0aclk1\0aclk2\0iface0\0iface1\0iface2"; - interrupts = <0x00 0x6e 0x04 0x00 0x6f 0x04 0x00 0x70 0x04>; - clocks = <0x02 0x12d 0x02 0x122 0x02 0x124 0x02 0x12e 0x02 0x123 0x02 0x125>; - #iommu-cells = <0x00>; - compatible = "rockchip,iommu-v2"; - status = "okay"; - interrupt-names = "npu0_mmu\0npu1_mmu\0npu2_mmu"; - reg = <0x00 0xfdab9000 0x00 0x100 0x00 0xfdaba000 0x00 0x100 0x00 0xfdaca000 0x00 0x100 0x00 0xfdada000 0x00 0x100>; - phandle = <0xb2>; - }; - - otp@fecc0000 { - #address-cells = <0x01>; - clock-names = "otpc\0apb\0arb\0phy"; - resets = <0x02 0x12a 0x02 0x129 0x02 0x12b>; - clocks = <0x02 0x96 0x02 0x95 0x02 0x97 0x02 0x99>; - #size-cells = <0x01>; - compatible = "rockchip,rk3588-otp"; - reg = <0x00 0xfecc0000 0x00 0x400>; - phandle = <0x2e7>; - reset-names = "otpc\0apb\0arb"; - - id@7 { - reg = <0x07 0x10>; - phandle = <0x2a>; - }; - - cpul-opp-info@3d { - reg = <0x3d 0x06>; - phandle = <0x20>; - }; - - cpub1-leakage@18 { - reg = <0x18 0x01>; - phandle = <0x27>; - }; - - vop-opp-info@61 { - reg = <0x61 0x06>; - phandle = <0x2e8>; - }; - - cpul-leakage@19 { - reg = <0x19 0x01>; - phandle = <0x1f>; - }; - - codec-leakage@29 { - reg = <0x29 0x01>; - phandle = <0xc6>; - }; - - cpu-version@1c { - bits = <0x03 0x03>; - reg = <0x1c 0x01>; - phandle = <0x2b>; - }; - - cpub0-leakage@17 { - reg = <0x17 0x01>; - phandle = <0x24>; - }; - - log-leakage@1a { - reg = <0x1a 0x01>; - phandle = <0x44>; - }; - - cpu-code@2 { - reg = <0x02 0x02>; - phandle = <0x2c>; - }; - - package-serial-number-low@6 { - bits = <0x05 0x03>; - reg = <0x06 0x01>; - phandle = <0xd4>; - }; - - npu-opp-info@55 { - reg = <0x55 0x06>; - phandle = <0xb5>; - }; - - package-serial-number-high@5 { - bits = <0x00 0x01>; - reg = <0x05 0x01>; - phandle = <0xd5>; - }; - - cpub01-opp-info@43 { - reg = <0x43 0x06>; - phandle = <0x25>; - }; - - dmc-opp-info@5b { - reg = <0x5b 0x06>; - phandle = <0x45>; - }; - - npu-leakage@28 { - reg = <0x28 0x01>; - phandle = <0xb4>; - }; - - gpu-leakage@1b { - reg = <0x1b 0x01>; - phandle = <0x63>; - }; - - specification-serial-number@6 { - bits = <0x00 0x05>; - reg = <0x06 0x01>; - phandle = <0x21>; - }; - - venc-opp-info@67 { - reg = <0x67 0x06>; - phandle = <0xc7>; - }; - - gpu-opp-info@4f { - reg = <0x4f 0x06>; - phandle = <0x64>; - }; - - cpub23-opp-info@49 { - reg = <0x49 0x06>; - phandle = <0x28>; - }; - }; - - i2s@fddf0000 { - power-domains = <0x60 0x1a>; - rockchip,always-on; - clock-names = "mclk_tx\0mclk_rx\0hclk"; - assigned-clocks = <0x02 0x243>; - assigned-clock-parents = <0x02 0x07>; - resets = <0x02 0x3e8>; - interrupts = <0x00 0xb9 0x04>; - clocks = <0x02 0x246 0x02 0x246 0x02 0x248>; - dma-names = "tx"; - #sound-dai-cells = <0x00>; - compatible = "rockchip,rk3588-i2s-tdm"; - rockchip,playback-only; - status = "okay"; - reg = <0x00 0xfddf0000 0x00 0x1000>; - phandle = <0x1d3>; - dmas = <0xf2 0x02>; - reset-names = "tx-m"; - rockchip,hdmi-path; - }; - - dma-controller@fea10000 { - clock-names = "apb_pclk"; - interrupts = <0x00 0x56 0x04 0x00 0x57 0x04>; - clocks = <0x02 0x78>; - arm,pl330-periph-burst; - compatible = "arm,pl330\0arm,primecell"; - reg = <0x00 0xfea10000 0x00 0x4000>; - phandle = <0x7c>; - #dma-cells = <0x01>; - }; - - pwm@febd0000 { - pinctrl-names = "active"; - pinctrl-0 = <0x169>; - clock-names = "pwm\0pclk"; - interrupts = <0x00 0x15a 0x04>; - clocks = <0x02 0x54 0x02 0x53>; - #pwm-cells = <0x03>; - compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; - status = "disabled"; - reg = <0x00 0xfebd0000 0x00 0x10>; - phandle = <0x2d2>; - }; - - rkvenc-ccu { - compatible = "rockchip,rkv-encoder-v2-ccu"; - status = "okay"; - phandle = <0xc3>; - }; - - syscon@fd58c000 { - compatible = "rockchip,rk3588-sys-grf\0syscon\0simple-mfd"; - reg = <0x00 0xfd58c000 0x00 0x1000>; - phandle = <0xc8>; - - rgb { - pinctrl-names = "default"; - pinctrl-0 = <0x71>; - compatible = "rockchip,rk3588-rgb"; - status = "disabled"; - phandle = <0x25c>; - - ports { - #address-cells = <0x01>; - #size-cells = <0x00>; - - port@0 { - #address-cells = <0x01>; - #size-cells = <0x00>; - reg = <0x00>; - - endpoint@2 { - remote-endpoint = <0x3d>; - status = "disabled"; - reg = <0x02>; - phandle = <0xf0>; - }; - }; - }; - }; - }; - - spi@fe2b0000 { - #address-cells = <0x01>; - clock-names = "clk_sfc\0hclk_sfc"; - assigned-clocks = <0x02 0x13d>; - assigned-clock-rates = <0x5f5e100>; - interrupts = <0x00 0xce 0x04>; - clocks = <0x02 0x13d 0x02 0x13e>; - #size-cells = <0x00>; - compatible = "rockchip,sfc"; - status = "disabled"; - reg = <0x00 0xfe2b0000 0x00 0x4000>; - phandle = <0x292>; - }; - - qos@fdf82200 { - compatible = "syscon"; - reg = <0x00 0xfdf82200 0x00 0x20>; - phandle = <0x9e>; - }; - - mmc@fe2c0000 { - power-domains = <0x60 0x28>; - fifo-depth = <0x100>; - pinctrl-names = "default"; - pinctrl-0 = <0x114 0x115 0x116 0x117>; - clock-names = "biu\0ciu\0ciu-drive\0ciu-sample"; - cap-sd-highspeed; - vqmmc-supply = <0x118>; - no-mmc; - bus-width = <0x04>; - no-sdio; - interrupts = <0x00 0xcb 0x04>; - clocks = <0x0e 0x17 0x0e 0x09 0x02 0x2c2 0x02 0x2c3>; - compatible = "rockchip,rk3588-dw-mshc\0rockchip,rk3288-dw-mshc"; - status = "okay"; - disable-wp; - reg = <0x00 0xfe2c0000 0x00 0x4000>; - phandle = <0x293>; - sd-uhs-sdr104; - max-frequency = <0x8f0d180>; - cap-mmc-highspeed; - }; - - serial@feb80000 { - reg-io-width = <0x04>; - pinctrl-names = "default"; - pinctrl-0 = <0x164>; - clock-names = "baudclk\0apb_pclk"; - interrupts = <0x00 0x150 0x04>; - clocks = <0x02 0xc7 0x02 0xaf>; - compatible = "rockchip,rk3588-uart\0snps,dw-apb-uart"; - status = "disabled"; - reg = <0x00 0xfeb80000 0x00 0x100>; - phandle = <0x2cd>; - dmas = <0xf1 0x0b 0xf1 0x0c>; - reg-shift = <0x02>; - }; - - phy@fee10000 { - rockchip,pipe-grf = <0x76>; - clock-names = "refclk\0apbclk\0phpclk"; - assigned-clocks = <0x02 0x2be>; - assigned-clock-rates = <0x5f5e100>; - resets = <0x02 0x20006 0x02 0x4d7>; - clocks = <0x02 0x2be 0x02 0x186 0x02 0x166>; - #phy-cells = <0x01>; - compatible = "rockchip,rk3588-naneng-combphy"; - status = "disabled"; - rockchip,pipe-phy-grf = <0x1cb>; - reg = <0x00 0xfee10000 0x00 0x100>; - phandle = <0x1bc>; - reset-names = "combphy-apb\0combphy"; - rockchip,pcie1ln-sel-bits = <0x100 0x00 0x00 0x00>; - }; - - can@fea60000 { - pinctrl-names = "default"; - pinctrl-0 = <0x146>; - clock-names = "baudclk\0apb_pclk"; - assigned-clocks = <0x02 0x72>; - assigned-clock-rates = <0xbebc200>; - resets = <0x02 0xbb 0x02 0xba>; - interrupts = <0x00 0x156 0x04>; - clocks = <0x02 0x72 0x02 0x71>; - compatible = "rockchip,can-2.0"; - status = "okay"; - tx-fifo-depth = <0x01>; - rx-fifo-depth = <0x06>; - reg = <0x00 0xfea60000 0x00 0x1000>; - phandle = <0x2a1>; - reset-names = "can\0can-apb"; - }; - - pdm@fe4c0000 { - power-domains = <0x60 0x26>; - pinctrl-names = "default\0idle\0clk"; - pinctrl-2 = <0x140 0x141>; - pinctrl-0 = <0x13b 0x13c 0x13d 0x13e>; - clock-names = "pdm_clk\0pdm_hclk"; - assigned-clocks = <0x02 0x3b>; - assigned-clock-parents = <0x02 0x05>; - clocks = <0x02 0x3b 0x02 0x3a>; - dma-names = "rx"; - #sound-dai-cells = <0x00>; - compatible = "rockchip,rk3588-pdm"; - pinctrl-1 = <0x13f>; - status = "disabled"; - reg = <0x00 0xfe4c0000 0x00 0x1000>; - phandle = <0x29b>; - dmas = <0xf1 0x04>; - }; - - rkcif-mipi-lvds3-sditf-vir2 { - compatible = "rockchip,rkcif-sditf"; - status = "disabled"; - rockchip,cif = <0x57>; - phandle = <0x239>; - }; - - qos@fdf66e00 { - compatible = "syscon"; - reg = <0x00 0xfdf66e00 0x00 0x20>; - phandle = <0x9a>; - }; - - usb@fc800000 { - power-domains = <0x60 0x1f>; - phy-names = "usb2-phy"; - clock-names = "usbhost\0arbiter\0utmi\0alk_usb"; - companion = <0x6b>; - interrupts = <0x00 0xd7 0x04>; - clocks = <0x02 0x19d 0x02 0x19e 0x69 0x6a>; - compatible = "rockchip,rk3588-ehci\0generic-ehci"; - status = "okay"; - phys = <0x6c>; - reg = <0x00 0xfc800000 0x00 0x40000>; - phandle = <0x254>; - }; - - i2c@fd880000 { - pinctrl-names = "default"; - #address-cells = <0x01>; - pinctrl-0 = <0x77>; - clock-names = "i2c\0pclk"; - resets = <0x02 0xc0022 0x02 0xc0021>; - interrupts = <0x00 0x13d 0x04>; - clocks = <0x02 0x287 0x02 0x286>; - #size-cells = <0x00>; - compatible = "rockchip,rk3588-i2c\0rockchip,rk3399-i2c"; - status = "okay"; - reg = <0x00 0xfd880000 0x00 0x1000>; - phandle = <0x25f>; - reset-names = "i2c\0apb"; - - hym8563@51 { - pinctrl-names = "default"; - clock-output-names = "hym8563"; - pinctrl-0 = <0x7a>; - wakeup-source; - interrupts = <0x08 0x08>; - #clock-cells = <0x00>; - interrupt-parent = <0x7b>; - clock-frequency = <0x8000>; - compatible = "haoyu,hym8563"; - status = "okay"; - reg = <0x51>; - phandle = <0x1e4>; - }; - - rk8602@42 { - regulator-max-microvolt = <0x100590>; - regulator-boot-on; - rockchip,suspend-voltage-selector = <0x01>; - regulator-always-on; - regulator-min-microvolt = <0x86470>; - regulator-name = "vdd_cpu_big0_s0"; - regulator-ramp-delay = <0x8fc>; - compatible = "rockchip,rk8602"; - reg = <0x42>; - phandle = <0x18>; - vin-supply = <0x78>; - regulator-compatible = "rk860x-reg"; - - regulator-state-mem { - regulator-off-in-suspend; - }; - }; - - rk8603@43 { - regulator-max-microvolt = <0x100590>; - regulator-boot-on; - rockchip,suspend-voltage-selector = <0x01>; - regulator-always-on; - regulator-min-microvolt = <0x86470>; - regulator-name = "vdd_cpu_big1_s0"; - regulator-ramp-delay = <0x8fc>; - compatible = "rockchip,rk8603"; - reg = <0x43>; - phandle = <0x1c>; - vin-supply = <0x78>; - regulator-compatible = "rk860x-reg"; - - regulator-state-mem { - regulator-off-in-suspend; - }; - }; - - pc9202@3c { - index = <0x00>; - compatible = "firefly,pc9202"; - status = "okay"; - wd-en-gpio = <0x79 0x15 0x00>; - driver-names = "wdt_core"; - reg = <0x3c>; - }; - }; - - rkcif-mipi-lvds3-sditf { - compatible = "rockchip,rkcif-sditf"; - status = "disabled"; - rockchip,cif = <0x57>; - phandle = <0x237>; - }; - - serial@fd890000 { - reg-io-width = <0x04>; - pinctrl-names = "default"; - pinctrl-0 = <0x7d>; - clock-names = "baudclk\0apb_pclk"; - interrupts = <0x00 0x14b 0x04>; - clocks = <0x02 0x2ae 0x02 0x2af>; - compatible = "rockchip,rk3588-uart\0snps,dw-apb-uart"; - status = "disabled"; - reg = <0x00 0xfd890000 0x00 0x100>; - phandle = <0x260>; - dmas = <0x7c 0x06 0x7c 0x07>; - reg-shift = <0x02>; - }; - - qos@fdf70000 { - compatible = "syscon"; - reg = <0x00 0xfdf70000 0x00 0x20>; - phandle = <0x85>; - }; - - gpu-opp-table { - rockchip,pvtm-offset = <0x1c>; - rockchip,pvtm-sample-time = <0x44c>; - rockchip,pvtm-hw = <0x04>; - nvmem-cells = <0x63 0x64 0x21>; - rockchip,low-temp = <0x2710>; - rockchip,pvtm-voltage-sel-hw = <0x00 0x31f 0x00 0x320 0x333 0x01 0x334 0x34c 0x02 0x34d 0x365 0x03 0x366 0x37e 0x04 0x37f 0x270f 0x05>; - rockchip,pvtm-thermal-zone = "gpu-thermal"; - rockchip,high-temp-max-freq = "\0\f5"; - rockchip,opp-clocks = <0x02 0x114>; - rockchip,pvtm-freq = "\0\f5"; - rockchip,pvtm-ref-temp = <0x19>; - low-volt-mem-read-margin = <0x04>; - volt-mem-read-margin = <0xd0bd8 0x01 0xbac48 0x02 0xa4cb8 0x03 0x78d98 0x04>; - compatible = "operating-points-v2"; - rockchip,low-temp-min-volt = <0xb71b0>; - rockchip,grf = <0x65>; - nvmem-cell-names = "leakage\0opp-info\0specification_serial_number"; - rockchip,pvtm-voltage-sel = <0x00 0x32f 0x00 0x330 0x343 0x01 0x344 0x35c 0x02 0x35d 0x375 0x03 0x376 0x38e 0x04 0x38f 0x270f 0x05>; - phandle = <0x61>; - rockchip,pvtm-temp-prop = <0xffffff79 0xffffff79>; - rockchip,temp-hysteresis = <0x1388>; - rockchip,high-temp = <0x14c08>; - rockchip,pvtm-pvtpll; - rockchip,supported-hw; - intermediate-threshold-freq = <0x61a80>; - rockchip,pvtm-volt = <0xb71b0>; - - opp-j-m-700000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; - opp-hz = <0x00 0x29b92700>; - opp-supported-hw = <0x06 0xffff>; - }; - - opp-300000000 { - opp-microvolt = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; - opp-hz = <0x00 0x11e1a300>; - opp-supported-hw = <0xf9 0xffff>; - }; - - opp-500000000 { - opp-microvolt = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; - opp-hz = <0x00 0x1dcd6500>; - opp-supported-hw = <0xf9 0xffff>; - }; - - opp-m-800000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; - opp-hz = <0x00 0x2faf0800>; - opp-supported-hw = <0x02 0xffff>; - }; - - opp-j-850000000 { - opp-microvolt = <0xc042c 0xc042c 0xcf850 0xc042c 0xc042c 0xcf850>; - opp-microvolt-L4 = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; - opp-microvolt-L2 = <0xba284 0xba284 0xcf850 0xba284 0xba284 0xcf850>; - opp-hz = <0x00 0x32a9f880>; - opp-supported-hw = <0x04 0xffff>; - opp-microvolt-L5 = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; - opp-microvolt-L3 = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; - opp-microvolt-L1 = <0xbd358 0xbd358 0xcf850 0xbd358 0xbd358 0xcf850>; - }; - - opp-j-m-400000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; - opp-hz = <0x00 0x17d78400>; - opp-supported-hw = <0x06 0xffff>; - }; - - opp-700000000 { - opp-microvolt = <0xaae60 0xaae60 0xcf850 0xaae60 0xaae60 0xcf850>; - opp-microvolt-L4 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; - opp-microvolt-L2 = <0xa7d8c 0xa7d8c 0xcf850 0xa7d8c 0xa7d8c 0xcf850>; - opp-hz = <0x00 0x29b92700>; - opp-supported-hw = <0xf9 0xffff>; - opp-microvolt-L5 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; - opp-microvolt-L3 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; - }; - - opp-j-m-600000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; - opp-hz = <0x00 0x23c34600>; - opp-supported-hw = <0x06 0xffff>; - }; - - opp-900000000 { - opp-microvolt = <0xc3500 0xc3500 0xcf850 0xc3500 0xc3500 0xcf850>; - opp-microvolt-L4 = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; - opp-microvolt-L2 = <0xbd358 0xbd358 0xcf850 0xbd358 0xbd358 0xcf850>; - opp-hz = <0x00 0x35a4e900>; - opp-supported-hw = <0xf9 0xffff>; - opp-microvolt-L5 = <0xb40dc 0xb40dc 0xcf850 0xb40dc 0xb40dc 0xcf850>; - opp-microvolt-L3 = <0xba284 0xba284 0xcf850 0xba284 0xba284 0xcf850>; - opp-microvolt-L1 = <0xc042c 0xc042c 0xcf850 0xc042c 0xc042c 0xcf850>; - }; - - opp-m-1000000000 { - opp-microvolt = <0xcf850 0xcf850 0xcf850 0xcf850 0xcf850 0xcf850>; - opp-microvolt-L4 = <0xc3500 0xc3500 0xcf850 0xc3500 0xc3500 0xcf850>; - opp-microvolt-L2 = <0xc96a8 0xc96a8 0xcf850 0xc96a8 0xc96a8 0xcf850>; - opp-hz = <0x00 0x3b9aca00>; - opp-supported-hw = <0x02 0xffff>; - opp-microvolt-L5 = <0xc042c 0xc042c 0xcf850 0xc042c 0xc042c 0xcf850>; - opp-microvolt-L3 = <0xc65d4 0xc65d4 0xcf850 0xc65d4 0xc65d4 0xcf850>; - opp-microvolt-L1 = <0xcc77c 0xcc77c 0xcf850 0xcc77c 0xcc77c 0xcf850>; - }; - - opp-400000000 { - opp-microvolt = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; - opp-hz = <0x00 0x17d78400>; - opp-supported-hw = <0xf9 0xffff>; - }; - - opp-j-m-300000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; - opp-hz = <0x00 0x11e1a300>; - opp-supported-hw = <0x06 0xffff>; - }; - - opp-600000000 { - opp-microvolt = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; - opp-hz = <0x00 0x23c34600>; - opp-supported-hw = <0xf9 0xffff>; - }; - - opp-m-900000000 { - opp-microvolt = <0xc3500 0xc3500 0xcf850 0xc3500 0xc3500 0xcf850>; - opp-microvolt-L4 = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; - opp-microvolt-L2 = <0xbd358 0xbd358 0xcf850 0xbd358 0xbd358 0xcf850>; - opp-hz = <0x00 0x35a4e900>; - opp-supported-hw = <0x02 0xffff>; - opp-microvolt-L5 = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; - opp-microvolt-L3 = <0xba284 0xba284 0xcf850 0xba284 0xba284 0xcf850>; - opp-microvolt-L1 = <0xc042c 0xc042c 0xcf850 0xc042c 0xc042c 0xcf850>; - }; - - opp-1000000000 { - opp-microvolt = <0xcf850 0xcf850 0xcf850 0xcf850 0xcf850 0xcf850>; - opp-microvolt-L4 = <0xc3500 0xc3500 0xcf850 0xc3500 0xc3500 0xcf850>; - opp-microvolt-L2 = <0xc96a8 0xc96a8 0xcf850 0xc96a8 0xc96a8 0xcf850>; - opp-hz = <0x00 0x3b9aca00>; - opp-supported-hw = <0xf9 0xffff>; - opp-microvolt-L5 = <0xc042c 0xc042c 0xcf850 0xc042c 0xc042c 0xcf850>; - opp-microvolt-L3 = <0xc65d4 0xc65d4 0xcf850 0xc65d4 0xc65d4 0xcf850>; - opp-microvolt-L1 = <0xcc77c 0xcc77c 0xcf850 0xcc77c 0xcc77c 0xcf850>; - }; - - opp-j-m-500000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; - opp-hz = <0x00 0x1dcd6500>; - opp-supported-hw = <0x06 0xffff>; - }; - - opp-800000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; - opp-microvolt-L4 = <0xaae60 0xaae60 0xcf850 0xaae60 0xaae60 0xcf850>; - opp-microvolt-L2 = <0xb1008 0xb1008 0xcf850 0xb1008 0xb1008 0xcf850>; - opp-hz = <0x00 0x2faf0800>; - opp-supported-hw = <0xf9 0xffff>; - opp-microvolt-L5 = <0xaae60 0xaae60 0xcf850 0xaae60 0xaae60 0xcf850>; - opp-microvolt-L3 = <0xadf34 0xadf34 0xcf850 0xadf34 0xadf34 0xcf850>; - opp-microvolt-L1 = <0xb40dc 0xb40dc 0xcf850 0xb40dc 0xb40dc 0xcf850>; - }; - }; - - csi2-dphy1-hw@fedc8000 { - clock-names = "pclk"; - resets = <0x02 0x19 0x02 0x18>; - clocks = <0x02 0x10d>; - compatible = "rockchip,rk3588-csi2-dphy-hw"; - status = "okay"; - rockchip,grf = <0x193>; - reg = <0x00 0xfedc8000 0x00 0x8000>; - phandle = <0x2e>; - reset-names = "srst_csiphy1\0srst_p_csiphy1"; - rockchip,sys_grf = <0xc8>; - }; - - hdcp@fde40000 { - power-domains = <0x60 0x19>; - clock-names = "aclk\0pclk\0hclk\0hclk_key\0aclk_trng\0pclk_trng"; - resets = <0x02 0x37f 0x02 0x37d 0x02 0x37c 0x02 0x37b 0x02 0x381>; - interrupts = <0x00 0x9f 0x04>; - clocks = <0x02 0x1ed 0x02 0x1ef 0x02 0x1ee 0x02 0x1ec 0x02 0x1f1 0x02 0x1f2>; - compatible = "rockchip,rk3588-hdcp"; - status = "disabled"; - reg = <0x00 0xfde40000 0x00 0x80>; - phandle = <0x285>; - reset-names = "hdcp\0h_hdcp\0a_hdcp\0hdcp_key\0trng"; - rockchip,vo-grf = <0xf5>; - }; - - iommu@fdbac800 { - power-domains = <0x60 0x15>; - clock-names = "aclk\0iface"; - interrupts = <0x00 0x7f 0x04>; - clocks = <0x02 0x1b2 0x02 0x1b3>; - #iommu-cells = <0x00>; - compatible = "rockchip,iommu-v2"; - status = "okay"; - interrupt-names = "irq_jpege3_mmu"; - reg = <0x00 0xfdbac800 0x00 0x40>; - phandle = <0xc0>; - }; - - qos@fdf40400 { - compatible = "syscon"; - reg = <0x00 0xfdf40400 0x00 0x20>; - phandle = <0xa2>; - }; - - rga@fdb70000 { - power-domains = <0x60 0x1e>; - iommus = <0xba>; - clock-names = "aclk_rga3_1\0hclk_rga3_1\0clk_rga3_1"; - interrupts = <0x00 0x73 0x04>; - clocks = <0x02 0x18a 0x02 0x189 0x02 0x18b>; - compatible = "rockchip,rga3_core1"; - status = "okay"; - interrupt-names = "rga3_core1_irq"; - reg = <0x00 0xfdb70000 0x00 0x1000>; - phandle = <0x26a>; - }; - - spi@feb00000 { - pinctrl-names = "default"; - #address-cells = <0x01>; - num-cs = <0x02>; - pinctrl-0 = <0x14e 0x14f 0x150>; - clock-names = "spiclk\0apb_pclk"; - interrupts = <0x00 0x146 0x04>; - clocks = <0x02 0xa3 0x02 0x9e>; - #size-cells = <0x00>; - dma-names = "tx\0rx"; - compatible = "rockchip,rk3066-spi"; - status = "disabled"; - reg = <0x00 0xfeb00000 0x00 0x1000>; - phandle = <0x2ab>; - dmas = <0x7c 0x0e 0x7c 0x0f>; - }; - - pcie@fe170000 { - #address-cells = <0x03>; - rockchip,pipe-grf = <0x76>; - phy-names = "pcie-phy"; - bus-range = <0x20 0x2f>; - clock-names = "aclk_mst\0aclk_slv\0aclk_dbi\0pclk\0aux\0pipe"; - reg-names = "pcie-apb\0pcie-dbi"; - num-ob-windows = <0x08>; - resets = <0x02 0x20f 0x02 0x21e>; - interrupts = <0x00 0xf3 0x04 0x00 0xf2 0x04 0x00 0xf1 0x04 0x00 0xf0 0x04 0x00 0xef 0x04>; - clocks = <0x02 0x150 0x02 0x155 0x02 0x14b 0x02 0x15b 0x02 0x160 0x02 0x2c4>; - interrupt-map = <0x00 0x00 0x00 0x01 0x1bb 0x00 0x00 0x00 0x00 0x02 0x1bb 0x01 0x00 0x00 0x00 0x03 0x1bb 0x02 0x00 0x00 0x00 0x04 0x1bb 0x03>; - #size-cells = <0x02>; - max-link-speed = <0x02>; - device_type = "pci"; - interrupt-map-mask = <0x00 0x00 0x00 0x07>; - num-lanes = <0x01>; - compatible = "rockchip,rk3588-pcie\0snps,dw-pcie"; - ranges = <0x800 0x00 0xf2000000 0x00 0xf2000000 0x00 0x100000 0x81000000 0x00 0xf2100000 0x00 0xf2100000 0x00 0x100000 0x82000000 0x00 0xf2200000 0x00 0xf2200000 0x00 0xe00000 0xc3000000 0x09 0x80000000 0x09 0x80000000 0x00 0x40000000>; - msi-map = <0x2000 0x106 0x2000 0x1000>; - #interrupt-cells = <0x01>; - status = "disabled"; - interrupt-names = "sys\0pmc\0msg\0legacy\0err"; - phys = <0x1bc 0x02>; - num-viewport = <0x04>; - reg = <0x00 0xfe170000 0x00 0x10000 0x0a 0x40800000 0x00 0x400000>; - linux,pci-domain = <0x02>; - phandle = <0x487>; - reset-names = "pcie\0periph"; - num-ib-windows = <0x08>; - - legacy-interrupt-controller { - #address-cells = <0x00>; - interrupts = <0x00 0xf0 0x01>; - interrupt-parent = <0x01>; - #interrupt-cells = <0x01>; - phandle = <0x1bb>; - interrupt-controller; - }; - }; - - i2s@fe470000 { - power-domains = <0x60 0x26>; - pinctrl-names = "default\0idle\0clk"; - pinctrl-2 = <0x11b 0x11c>; - pinctrl-0 = <0x11b 0x11c 0x11d 0x11e>; - clock-names = "mclk_tx\0mclk_rx\0hclk"; - assigned-clocks = <0x02 0x31 0x02 0x35>; - assigned-clock-parents = <0x02 0x05 0x02 0x05>; - resets = <0x02 0x77 0x02 0x7a>; - interrupts = <0x00 0xb4 0x04>; - clocks = <0x02 0x33 0x02 0x37 0x02 0x30>; - dma-names = "tx\0rx"; - #sound-dai-cells = <0x00>; - compatible = "rockchip,rk3588-i2s-tdm"; - pinctrl-1 = <0x11f>; - status = "okay"; - reg = <0x00 0xfe470000 0x00 0x1000>; - phandle = <0x1da>; - dmas = <0x7c 0x00 0x7c 0x01>; - reset-names = "tx-m\0rx-m"; - rockchip,clk-trcm = <0x01>; - }; - - syscon@fd594000 { - compatible = "rockchip,rk3588-litcore-grf\0syscon"; - reg = <0x00 0xfd594000 0x00 0x100>; - phandle = <0x22>; - }; - - csi2-dphy5 { - rockchip,hw = <0x2d 0x2e>; - phy-names = "dcphy0\0dcphy1"; - compatible = "rockchip,rk3588-csi2-dphy"; - status = "disabled"; - phys = <0x2f 0x30>; - phandle = <0x214>; - }; - - usb@fc840000 { - power-domains = <0x60 0x1f>; - phy-names = "usb2-phy"; - clock-names = "usbhost\0arbiter\0utmi\0alk_usb"; - interrupts = <0x00 0xd8 0x04>; - clocks = <0x02 0x19d 0x02 0x19e 0x69 0x6a>; - compatible = "rockchip,rk3588-ohci\0generic-ohci"; - status = "okay"; - phys = <0x6c>; - reg = <0x00 0xfc840000 0x00 0x40000>; - phandle = <0x6b>; - }; - - syscon@fd5b0000 { - compatible = "rockchip,rk3588-php-grf\0syscon"; - reg = <0x00 0xfd5b0000 0x00 0x1000>; - phandle = <0x76>; - }; - - rkcif-mipi-lvds2-sditf-vir3 { - compatible = "rockchip,rkcif-sditf"; - status = "disabled"; - rockchip,cif = <0x55>; - phandle = <0x236>; - }; - - rkisp1-vir1 { - rockchip,hw = <0x5a>; - compatible = "rockchip,rkisp-vir"; - status = "disabled"; - phandle = <0x240>; - }; - - i2c@feaa0000 { - pinctrl-names = "default"; - #address-cells = <0x01>; - pinctrl-0 = <0x149>; - clock-names = "i2c\0pclk"; - resets = <0x02 0xb1 0x02 0xa9>; - interrupts = <0x00 0x13f 0x04>; - clocks = <0x02 0x8e 0x02 0x86>; - #size-cells = <0x00>; - compatible = "rockchip,rk3588-i2c\0rockchip,rk3399-i2c"; - status = "disabled"; - reg = <0x00 0xfeaa0000 0x00 0x1000>; - phandle = <0x2a5>; - reset-names = "i2c\0apb"; - }; - - dmc { - downdifferential = <0x14>; - clock-names = "dmc_clk"; - interrupts = <0x00 0x49 0x04>; - clocks = <0x0e 0x04>; - upthreshold = <0x28>; - center-supply = <0x42>; - devfreq-events = <0x40>; - compatible = "rockchip,rk3588-dmc"; - status = "disabled"; - interrupt-names = "complete"; - mem-supply = <0x43>; - phandle = <0x21f>; - operating-points-v2 = <0x41>; - system-status-level = <0x01 0x04 0x08 0x08 0x02 0x01 0x10 0x04 0x10000 0x04 0x80000 0x04 0x1000 0x08 0x4000 0x08 0x2000 0x08 0xc00 0x08 0x40000 0x08 0x200000 0x08>; - auto-freq-en = <0x01>; - }; - - hdmi1-sound { - rockchip,jack-det; - rockchip,cpu = <0x1e0>; - rockchip,codec = <0x1e1>; - rockchip,card-name = "rockchip-hdmi1"; - compatible = "rockchip,hdmi"; - status = "disabled"; - phandle = <0x4a8>; - rockchip,mclk-fs = <0x80>; - }; - - qos@fdf3d800 { - compatible = "syscon"; - reg = <0x00 0xfdf3d800 0x00 0x20>; - phandle = <0xb0>; - }; - - mipi-dcphy-dummy { - phandle = <0x223>; - }; - - jpege-core@fdbac000 { - power-domains = <0x60 0x15>; - iommus = <0xc0>; - rockchip,ccu = <0xbd>; - clock-names = "aclk_vcodec\0hclk_vcodec"; - assigned-clocks = <0x02 0x1b2>; - rockchip,normal-rates = <0x2367b880 0x00>; - assigned-clock-rates = <0x2367b880>; - resets = <0x02 0x2d0 0x02 0x2d1>; - interrupts = <0x00 0x80 0x04>; - clocks = <0x02 0x1b2 0x02 0x1b3>; - rockchip,srv = <0xb8>; - rockchip,taskqueue-node = <0x02>; - rockchip,disable-auto-freq; - compatible = "rockchip,vpu-jpege-core"; - status = "okay"; - interrupt-names = "irq_jpege3"; - rockchip,skip-pmu-idle-request; - reg = <0x00 0xfdbac000 0x00 0x400>; - phandle = <0x270>; - reset-names = "video_a\0video_h"; - }; - - iommu@fdce0800 { - power-domains = <0x60 0x1b>; - clock-names = "aclk\0iface"; - interrupts = <0x00 0x71 0x04>; - clocks = <0x02 0x1e4 0x02 0x1e5>; - #iommu-cells = <0x00>; - compatible = "rockchip,iommu-v2"; - rockchip,disable-mmu-reset; - status = "okay"; - interrupt-names = "cif_mmu"; - reg = <0x00 0xfdce0800 0x00 0x100 0x00 0xfdce0900 0x00 0x100>; - phandle = <0x50>; - }; - - qos@fdf35400 { - compatible = "syscon"; - reg = <0x00 0xfdf35400 0x00 0x20>; - phandle = <0x89>; - }; - - syscon@fd5a8000 { - clocks = <0x73>; - compatible = "rockchip,rk3588-vo-grf\0syscon"; - reg = <0x00 0xfd5a8000 0x00 0x100>; - phandle = <0xd8>; - }; - - dp0-sound { - rockchip,jack-det; - rockchip,cpu = <0x1d5>; - rockchip,codec = <0x1d6 0x01>; - rockchip,card-name = "rockchip-dp0"; - compatible = "rockchip,hdmi"; - status = "disabled"; - phandle = <0x49c>; - rockchip,mclk-fs = <0x200>; - }; - - rkcif-mipi-lvds4 { - iommus = <0x50>; - rockchip,hw = <0x4f>; - compatible = "rockchip,rkcif-mipi-lvds"; - status = "disabled"; - phandle = <0x1a1>; - }; - - usb@fc880000 { - power-domains = <0x60 0x1f>; - phy-names = "usb2-phy"; - clock-names = "usbhost\0arbiter\0utmi\0alk_usb"; - companion = <0x6e>; - interrupts = <0x00 0xda 0x04>; - clocks = <0x02 0x19f 0x02 0x1a0 0x6d 0x6a>; - compatible = "rockchip,rk3588-ehci\0generic-ehci"; - status = "okay"; - phys = <0x6f>; - reg = <0x00 0xfc880000 0x00 0x40000>; - phandle = <0x255>; - }; - - qos@fdf62000 { - compatible = "syscon"; - reg = <0x00 0xfdf62000 0x00 0x20>; - phandle = <0x8b>; - }; - - syscon@fd5f0000 { - compatible = "rockchip,rk3588-ioc\0syscon"; - reg = <0x00 0xfd5f0000 0x00 0x10000>; - phandle = <0x196>; - }; - - mipi1-csi2 { - rockchip,hw = <0x47 0x48 0x49 0x4a 0x4b 0x4c>; - compatible = "rockchip,rk3588-mipi-csi2"; - status = "disabled"; - phandle = <0x225>; - }; - - hdmiphy@fed70000 { - clock-names = "ref\0apb"; - resets = <0x02 0x491 0x02 0x486 0x02 0xc003f 0x02 0xc0040 0x02 0xc0041 0x02 0x48f 0x02 0x490>; - clocks = <0x02 0x2b5 0x02 0x268>; - #phy-cells = <0x00>; - compatible = "rockchip,rk3588-hdptx-phy-hdmi"; - status = "disabled"; - rockchip,grf = <0x1c7>; - reg = <0x00 0xfed70000 0x00 0x2000>; - phandle = <0x1ac>; - reset-names = "phy\0apb\0init\0cmn\0lane\0ropll\0lcpll"; - - clk-port { - #clock-cells = <0x00>; - status = "okay"; - phandle = <0x36>; - }; - }; - - i2c@fec80000 { - pinctrl-names = "default"; - #address-cells = <0x01>; - pinctrl-0 = <0x178>; - clock-names = "i2c\0pclk"; - resets = <0x02 0xb5 0x02 0xad>; - interrupts = <0x00 0x143 0x04>; - clocks = <0x02 0x92 0x02 0x8a>; - #size-cells = <0x00>; - compatible = "rockchip,rk3588-i2c\0rockchip,rk3399-i2c"; - status = "okay"; - reg = <0x00 0xfec80000 0x00 0x1000>; - phandle = <0x2df>; - reset-names = "i2c\0apb"; - - imx415@37 { - power-domains = <0x60 0x1b>; - pinctrl-names = "default"; - pinctrl-0 = <0x180>; - clock-names = "xvclk"; - clocks = <0x02 0x100>; - firefly,clkout-enabled-index = <0x00>; - rockchip,camera-module-name = "CMK-OT2022-PX1"; - reset-gpios = <0x182 0x05 0x01>; - rockchip,camera-module-index = <0x00>; - compatible = "sony,imx415"; - rockchip,camera-module-facing = "back"; - power-gpios = <0x181 0x1d 0x00>; - reg = <0x37>; - rockchip,camera-module-lens-name = "IR0147-50IRC-8M-F20"; - phandle = <0x2e3>; - - port { - - endpoint { - data-lanes = <0x01 0x02 0x03 0x04>; - remote-endpoint = <0x184>; - phandle = <0x32>; - }; - }; - }; - - es8388@11 { - pinctrl-names = "default"; - pinctrl-0 = <0x17a>; - clock-names = "mclk"; - assigned-clocks = <0x179>; - assigned-clock-rates = <0xbb8000>; - clocks = <0x179>; - #sound-dai-cells = <0x00>; - compatible = "everest,es8388\0everest,es8323"; - status = "okay"; - reg = <0x11>; - phandle = <0x1db>; - }; - - XC7160b@1b { - power-domains = <0x60 0x1b>; - pinctrl-names = "default"; - pinctrl-0 = <0x180>; - clock-names = "xvclk"; - pwdn-gpios = <0xfe 0x04 0x00>; - clocks = <0x02 0x100>; - firefly,clkout-enabled-index = <0x00>; - rockchip,camera-module-name = "NC"; - reset-gpios = <0x182 0x05 0x00>; - rockchip,camera-module-index = <0x00>; - compatible = "firefly,xc7160"; - rockchip,camera-module-facing = "back"; - power-gpios = <0x181 0x1d 0x01>; - reg = <0x1b>; - rockchip,camera-module-lens-name = "NC"; - phandle = <0x2e2>; - - port { - - endpoint { - data-lanes = <0x01 0x02 0x03 0x04>; - remote-endpoint = <0x183>; - phandle = <0x31>; - }; - }; - }; - - fusb302@22 { - pinctrl-names = "default"; - pinctrl-0 = <0x17b>; - interrupts = <0x1b 0x08>; - vbus-supply = <0x17c>; - interrupt-parent = <0x7b>; - compatible = "fcs,fusb302"; - status = "disabled"; - reg = <0x22>; - phandle = <0x2e0>; - - connector { - sink-pdos = <0x4019064>; - power-role = "dual"; - source-pdos = <0x401912c>; - data-role = "dual"; - label = "USB-C"; - try-power-role = "sink"; - compatible = "usb-c-connector"; - op-sink-microwatt = <0xf4240>; - phandle = <0x2e1>; - - ports { - #address-cells = <0x01>; - #size-cells = <0x00>; - - port@0 { - reg = <0x00>; - - endpoint { - remote-endpoint = <0x17e>; - phandle = <0x18e>; - }; - }; - - port@1 { - reg = <0x01>; - - endpoint { - remote-endpoint = <0x17f>; - phandle = <0x18f>; - }; - }; - }; - - altmodes { - #address-cells = <0x01>; - #size-cells = <0x00>; - - altmode@0 { - svid = <0xff01>; - vdo = <0xffffffff>; - reg = <0x00>; - }; - }; - }; - - ports { - #address-cells = <0x01>; - #size-cells = <0x00>; - - port@0 { - reg = <0x00>; - - endpoint@0 { - remote-endpoint = <0x17d>; - phandle = <0x68>; - }; - }; - }; - }; - }; - - syscon@fd5e8000 { - compatible = "rockchip,mipi-dcphy-grf\0syscon"; - reg = <0x00 0xfd5e8000 0x00 0x4000>; - phandle = <0x190>; - }; - - vbus5v0-typec-pwr-en-regulator { - gpio = <0x182 0x0c 0x00>; - enable-active-high; - regulator-name = "vbus5v0_typec_pwr_en"; - compatible = "regulator-fixed"; - status = "disabled"; - phandle = <0x17c>; - }; - - mipi2-csi2-hw@fdd30000 { - clock-names = "pclk_csi2host"; - reg-names = "csihost_regs"; - resets = <0x02 0x326>; - interrupts = <0x00 0x93 0x04 0x00 0x94 0x04>; - clocks = <0x02 0x1d1>; - compatible = "rockchip,rk3588-mipi-csi2-hw"; - status = "okay"; - interrupt-names = "csi-intr1\0csi-intr2"; - reg = <0x00 0xfdd30000 0x00 0x10000>; - phandle = <0x49>; - reset-names = "srst_csihost_p"; - }; - - spdif-rx@fde18000 { - power-domains = <0x60 0x1a>; - clock-names = "mclk\0hclk"; - assigned-clocks = <0x02 0x262>; - assigned-clock-parents = <0x02 0x05>; - resets = <0x02 0x401>; - interrupts = <0x00 0xc9 0x04>; - clocks = <0x02 0x262 0x02 0x261>; - dma-names = "rx"; - #sound-dai-cells = <0x00>; - compatible = "rockchip,rk3588-spdifrx\0rockchip,rk3308-spdifrx"; - status = "disabled"; - reg = <0x00 0xfde18000 0x00 0x1000>; - phandle = <0x480>; - dmas = <0x7c 0x17>; - reset-names = "spdifrx-m"; - }; - - syscon@fd5a2000 { - compatible = "rockchip,rk3588-npu-grf\0syscon"; - reg = <0x00 0xfd5a2000 0x00 0x100>; - phandle = <0xb6>; - }; - - rkisp0-vir3 { - rockchip,hw = <0x58>; - compatible = "rockchip,rkisp-vir"; - status = "disabled"; - phandle = <0x23e>; - }; - - qos@fdf66200 { - compatible = "syscon"; - reg = <0x00 0xfdf66200 0x00 0x20>; - phandle = <0x94>; - }; - - rkcif@fdce0000 { - power-domains = <0x60 0x1b>; - iommus = <0x50>; - nvmem-cells = <0x21 0xd4 0xd5>; - clock-names = "aclk_cif\0hclk_cif\0dclk_cif\0iclk_host0\0iclk_host1"; - reg-names = "cif_regs"; - assigned-clocks = <0x02 0x1e3>; - assigned-clock-rates = <0x23c34600>; - resets = <0x02 0x317 0x02 0x318 0x02 0x316 0x02 0x334 0x02 0x335 0x02 0x336 0x02 0x337 0x02 0x338 0x02 0x339>; - interrupts = <0x00 0x9b 0x04>; - clocks = <0x02 0x1e4 0x02 0x1e5 0x02 0x1e3 0x02 0x1cd 0x02 0x1ce>; - compatible = "rockchip,rk3588-cif"; - status = "okay"; - rockchip,grf = <0xc8>; - interrupt-names = "cif-intr"; - nvmem-cell-names = "specification\0package_low\0package_high"; - reg = <0x00 0xfdce0000 0x00 0x800>; - phandle = <0x4f>; - reset-names = "rst_cif_a\0rst_cif_h\0rst_cif_d\0rst_cif_host0\0rst_cif_host1\0rst_cif_host2\0rst_cif_host3\0rst_cif_host4\0rst_cif_host5"; - }; - - edp@fdec0000 { - power-domains = <0x60 0x1a>; - phy-names = "dp"; - clock-names = "dp\0pclk\0spdif\0hclk"; - resets = <0x02 0x3e1 0x02 0x3e0>; - interrupts = <0x00 0xa3 0x04>; - clocks = <0x02 0x211 0x02 0x210 0x02 0x212 0x05>; - compatible = "rockchip,rk3588-edp"; - status = "disabled"; - rockchip,grf = <0xd8>; - phys = <0x101>; - reg = <0x00 0xfdec0000 0x00 0x1000>; - phandle = <0x289>; - reset-names = "dp\0apb"; - - ports { - #address-cells = <0x01>; - #size-cells = <0x00>; - - port@0 { - #address-cells = <0x01>; - #size-cells = <0x00>; - reg = <0x00>; - - endpoint@1 { - remote-endpoint = <0x103>; - status = "disabled"; - reg = <0x01>; - phandle = <0xe1>; - }; - - endpoint@2 { - remote-endpoint = <0x3b>; - status = "disabled"; - reg = <0x02>; - phandle = <0xe7>; - }; - - endpoint@0 { - remote-endpoint = <0x102>; - status = "disabled"; - reg = <0x00>; - phandle = <0xdb>; - }; - }; - - port@1 { - reg = <0x01>; - - endpoint { - phandle = <0x28a>; - }; - }; - }; - }; - - qos@fdf72400 { - compatible = "syscon"; - reg = <0x00 0xfdf72400 0x00 0x20>; - phandle = <0x84>; - }; - - dp@fde60000 { - power-domains = <0x60 0x19>; - clock-names = "apb\0aux\0i2s\0spdif\0hclk\0hdcp"; - assigned-clocks = <0x02 0x2cd>; - assigned-clock-rates = <0xf42400>; - resets = <0x02 0x389>; - interrupts = <0x00 0xa2 0x04>; - clocks = <0x02 0x1e7 0x02 0x2cd 0x02 0x201 0x02 0x20d 0x04 0x02 0x1eb>; - #sound-dai-cells = <0x01>; - compatible = "rockchip,rk3588-dp"; - status = "disabled"; - phys = <0x1a5>; - reg = <0x00 0xfde60000 0x00 0x4000>; - phandle = <0x1e3>; - - ports { - #address-cells = <0x01>; - #size-cells = <0x00>; - - port@0 { - #address-cells = <0x01>; - #size-cells = <0x00>; - reg = <0x00>; - - endpoint@1 { - remote-endpoint = <0x3e>; - status = "disabled"; - reg = <0x01>; - phandle = <0xe3>; - }; - - endpoint@2 { - remote-endpoint = <0x1a7>; - status = "disabled"; - reg = <0x02>; - phandle = <0xeb>; - }; - - endpoint@0 { - remote-endpoint = <0x1a6>; - status = "disabled"; - reg = <0x00>; - phandle = <0xdd>; - }; - }; - - port@1 { - reg = <0x01>; - - endpoint { - phandle = <0x481>; - }; - }; - }; - }; - - vcc5v0-usbdcin { - regulator-max-microvolt = <0x4c4b40>; - regulator-boot-on; - regulator-always-on; - regulator-min-microvolt = <0x4c4b40>; - regulator-name = "vcc5v0_usbdcin"; - compatible = "regulator-fixed"; - phandle = <0x48c>; - vin-supply = <0x1cd>; - }; - - rkvdec-core@fdc48000 { - power-domains = <0x60 0x0f>; - iommus = <0xcc>; - rockchip,ccu = <0xca>; - clock-names = "aclk_vcodec\0hclk_vcodec\0clk_core\0clk_cabac\0clk_hevc_cabac"; - reg-names = "regs\0link"; - assigned-clocks = <0x02 0x195 0x02 0x198 0x02 0x196 0x02 0x197>; - rockchip,core-mask = <0x20002>; - rockchip,task-capacity = <0x10>; - rockchip,normal-rates = <0x2faf0800 0x00 0x23c34600 0x23c34600 0x3b9aca00>; - assigned-clock-rates = <0x2faf0800 0x23c34600 0x23c34600 0x3b9aca00>; - resets = <0x02 0x293 0x02 0x292 0x02 0x298 0x02 0x296 0x02 0x297>; - interrupts = <0x00 0x61 0x04>; - rockchip,rcb-info = <0x88 0x6000 0x89 0xc000 0x8d 0x16000 0x8c 0xc000 0x8b 0x2c000 0x85 0xc000 0x86 0x2000 0x87 0x1100 0x8a 0x3300 0x8e 0x47300>; - clocks = <0x02 0x195 0x02 0x194 0x02 0x198 0x02 0x196 0x02 0x197>; - rockchip,rcb-min-width = <0x200>; - rockchip,srv = <0xb8>; - rockchip,taskqueue-node = <0x09>; - compatible = "rockchip,rkv-decoder-v2"; - status = "okay"; - interrupt-names = "irq_rkvdec1"; - rockchip,skip-pmu-idle-request; - rockchip,rcb-iova = <0xffe00000 0x100000>; - reg = <0x00 0xfdc48100 0x00 0x400 0x00 0xfdc48000 0x00 0x100>; - phandle = <0x275>; - reset-names = "video_a\0video_h\0video_core\0video_cabac\0video_hevc_cabac"; - rockchip,sram = <0xcd>; - }; - - vcc-1v1-nldo-s3 { - regulator-max-microvolt = <0x10c8e0>; - regulator-boot-on; - regulator-always-on; - regulator-min-microvolt = <0x10c8e0>; - regulator-name = "vcc_1v1_nldo_s3"; - compatible = "regulator-fixed"; - phandle = <0x15c>; - vin-supply = <0x78>; - }; - - power-management@fd8d8000 { - compatible = "rockchip,rk3588-pmu\0syscon\0simple-mfd"; - reg = <0x00 0xfd8d8000 0x00 0x400>; - phandle = <0xd9>; - - power-controller { - #address-cells = <0x01>; - #size-cells = <0x00>; - #power-domain-cells = <0x01>; - compatible = "rockchip,rk3588-power-controller"; - status = "okay"; - phandle = <0x60>; - - power-domain@37 { - clocks = <0x02 0x199 0x02 0x140>; - reg = <0x25>; - pm_qos = <0xaf>; - }; - - power-domain@27 { - #address-cells = <0x01>; - clocks = <0x02 0x1e1 0x02 0x1e2 0x02 0x1df 0x02 0x1de 0x02 0x1e5 0x02 0x1e4>; - #size-cells = <0x00>; - reg = <0x1b>; - pm_qos = <0xa2 0xa3 0xa4 0xa5>; - - power-domain@29 { - clocks = <0x02 0x1d6 0x02 0x1d5 0x02 0x1d9 0x02 0x1d8 0x02 0x1e2>; - reg = <0x1d>; - pm_qos = <0xa8 0xa9>; - }; - - power-domain@28 { - clocks = <0x02 0x121 0x02 0x120 0x02 0x1e1 0x02 0x1e2>; - reg = <0x1c>; - pm_qos = <0xa6 0xa7>; - }; - }; - - power-domain@33 { - clocks = <0x02 0x166 0x02 0x169 0x02 0x16a>; - reg = <0x21>; - }; - - power-domain@13 { - #address-cells = <0x01>; - #size-cells = <0x00>; - reg = <0x0d>; - - power-domain@15 { - clocks = <0x02 0x194 0x02 0x1be 0x02 0x1bc 0x02 0x195>; - reg = <0x0f>; - pm_qos = <0x8c>; - }; - - power-domain@16 { - #address-cells = <0x01>; - clocks = <0x02 0x1c4 0x02 0x1c5>; - #size-cells = <0x00>; - reg = <0x10>; - pm_qos = <0x8d 0x8e 0x8f>; - - power-domain@17 { - clocks = <0x02 0x1c9 0x02 0x1c4 0x02 0x1c5 0x02 0x1ca>; - reg = <0x11>; - pm_qos = <0x90 0x91 0x92>; - }; - }; - - power-domain@14 { - clocks = <0x02 0x18f 0x02 0x1be 0x02 0x1bc 0x02 0x190 0x02 0x18e>; - reg = <0x0e>; - pm_qos = <0x8b>; - }; - }; - - power-domain@31 { - clocks = <0x02 0x166 0x02 0x1a1 0x02 0x1a4 0x02 0x19d 0x02 0x19e 0x02 0x19f 0x02 0x1a0>; - reg = <0x1f>; - pm_qos = <0xab 0xac 0xad 0xae>; - }; - - power-domain@21 { - #address-cells = <0x01>; - clocks = <0x02 0x1be 0x02 0x1bd 0x02 0x1bc 0x02 0x1bf 0x02 0x1aa 0x02 0x1a9 0x02 0x1ac 0x02 0x1ad 0x02 0x1ae 0x02 0x1af 0x02 0x1b0 0x02 0x1b1 0x02 0x1b2 0x02 0x1b3 0x02 0x1b4 0x02 0x1b5 0x02 0x1b7 0x02 0x1b6>; - #size-cells = <0x00>; - reg = <0x15>; - pm_qos = <0x93 0x94 0x95 0x96 0x97 0x98 0x99 0x9a>; - - power-domain@15 { - clocks = <0x02 0x194 0x02 0x1be 0x02 0x1bc>; - reg = <0x0f>; - pm_qos = <0x8c>; - }; - - power-domain@23 { - clocks = <0x02 0x4b 0x02 0x49 0x02 0x1be>; - reg = <0x17>; - pm_qos = <0x9b>; - }; - - power-domain@14 { - clocks = <0x02 0x18f 0x02 0x1be 0x02 0x1bc 0x02 0x190>; - reg = <0x0e>; - pm_qos = <0x8b>; - }; - - power-domain@22 { - clocks = <0x02 0x1ba 0x02 0x1b9>; - reg = <0x16>; - pm_qos = <0x9c>; - }; - }; - - power-domain@38 { - clocks = <0x02 0x3c 0x02 0x3d>; - reg = <0x26>; - }; - - power-domain@8 { - #address-cells = <0x01>; - #size-cells = <0x00>; - reg = <0x08>; - - power-domain@9 { - #address-cells = <0x01>; - clocks = <0x02 0x12f 0x02 0x131 0x02 0x130 0x02 0x126>; - #size-cells = <0x00>; - reg = <0x09>; - pm_qos = <0x82 0x83 0x84>; - - power-domain@11 { - clocks = <0x02 0x12f 0x02 0x131 0x02 0x130>; - reg = <0x0b>; - pm_qos = <0x86>; - }; - - power-domain@10 { - clocks = <0x02 0x12f 0x02 0x131 0x02 0x130>; - reg = <0x0a>; - pm_qos = <0x85>; - }; - }; - }; - - power-domain@26 { - clocks = <0x02 0x22e 0x02 0x22f 0x02 0x22d 0x02 0x218 0x02 0x217 0x02 0x22b 0x02 0x264>; - reg = <0x1a>; - pm_qos = <0xa0 0xa1>; - }; - - power-domain@34 { - clocks = <0x02 0x166 0x02 0x169 0x02 0x16a>; - reg = <0x22>; - }; - - power-domain@24 { - #address-cells = <0x01>; - clocks = <0x02 0x26e 0x02 0x26d 0x02 0x270>; - #size-cells = <0x00>; - reg = <0x18>; - pm_qos = <0x9d 0x9e>; - - power-domain@25 { - clocks = <0x02 0x1f6 0x02 0x1f7 0x02 0x1f5 0x02 0x1f3 0x02 0x1ee 0x02 0x1ed 0x02 0x26d>; - reg = <0x19>; - pm_qos = <0x9f>; - }; - }; - - power-domain@12 { - clocks = <0x02 0x114 0x02 0x115 0x02 0x116>; - reg = <0x0c>; - pm_qos = <0x87 0x88 0x89 0x8a>; - }; - - power-domain@40 { - reg = <0x28>; - pm_qos = <0xb0>; - }; - - power-domain@30 { - clocks = <0x02 0x189 0x02 0x18a>; - reg = <0x1e>; - pm_qos = <0xaa>; - }; - }; - }; - - csi2-dphy3 { - rockchip,hw = <0x2d 0x2e>; - phy-names = "dcphy0\0dcphy1"; - compatible = "rockchip,rk3588-csi2-dphy"; - status = "disabled"; - phys = <0x2f 0x30>; - phandle = <0x212>; - }; - - qos@fdf3e000 { - compatible = "syscon"; - reg = <0x00 0xfdf3e000 0x00 0x20>; - phandle = <0xac>; - }; - - pwm@fd8b0030 { - pinctrl-names = "active"; - pinctrl-0 = <0x81>; - clock-names = "pwm\0pclk"; - interrupts = <0x00 0x158 0x04 0x00 0x159 0x04>; - clocks = <0x02 0x2a5 0x02 0x2a4>; - #pwm-cells = <0x03>; - compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; - status = "disabled"; - reg = <0x00 0xfd8b0030 0x00 0x10>; - phandle = <0x264>; - }; - - rkcif-mipi-lvds2-sditf-vir1 { - compatible = "rockchip,rkcif-sditf"; - status = "disabled"; - rockchip,cif = <0x55>; - phandle = <0x234>; - }; - - syscon@fd5cc000 { - compatible = "rockchip,rk3588-usbdpphy-grf\0syscon"; - reg = <0x00 0xfd5cc000 0x00 0x4000>; - phandle = <0x1c9>; - }; - - vdpu@fdb50400 { - power-domains = <0x60 0x15>; - iommus = <0xb7>; - clock-names = "aclk_vcodec\0hclk_vcodec"; - assigned-clocks = <0x02 0x1c0>; - rockchip,normal-rates = <0x2367b880 0x00>; - assigned-clock-rates = <0x2367b880>; - resets = <0x02 0x2c8 0x02 0x2c9>; - interrupts = <0x00 0x77 0x04>; - clocks = <0x02 0x1c0 0x02 0x1c1>; - rockchip,srv = <0xb8>; - rockchip,taskqueue-node = <0x00>; - rockchip,disable-auto-freq; - compatible = "rockchip,vpu-decoder-v2"; - rockchip,resetgroup-node = <0x00>; - status = "okay"; - interrupt-names = "irq_vdpu"; - rockchip,skip-pmu-idle-request; - reg = <0x00 0xfdb50400 0x00 0x400>; - phandle = <0x267>; - reset-names = "shared_video_a\0shared_video_h"; - }; - - qos@fdf60200 { - compatible = "syscon"; - reg = <0x00 0xfdf60200 0x00 0x20>; - phandle = <0x8e>; - }; - - pwm@febe0030 { - pinctrl-names = "active"; - pinctrl-0 = <0x170>; - clock-names = "pwm\0pclk"; - interrupts = <0x00 0x15c 0x04 0x00 0x15d 0x04>; - clocks = <0x02 0x57 0x02 0x56>; - #pwm-cells = <0x03>; - compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; - status = "disabled"; - reg = <0x00 0xfebe0030 0x00 0x10>; - phandle = <0x2d8>; - }; - - display-subsystem { - memory-region-names = "drm-logo"; - clock-names = "hdmi0_phy_pll\0hdmi1_phy_pll"; - ports = <0x34>; - memory-region = <0x37>; - clocks = <0x35 0x36>; - compatible = "rockchip,display-subsystem"; - phandle = <0x215>; - - route { - - route-edp1 { - logo,kernel = "logo_kernel.bmp"; - logo,uboot = "logo.bmp"; - charge_logo,mode = "center"; - logo,mode = "center"; - status = "disabled"; - phandle = <0x21a>; - }; - - route-hdmi1 { - logo,kernel = "logo_kernel.bmp"; - logo,uboot = "logo.bmp"; - charge_logo,mode = "center"; - connect = <0x3f>; - logo,mode = "center"; - status = "disabled"; - phandle = <0x21e>; - }; - - route-dp1 { - logo,kernel = "logo_kernel.bmp"; - logo,uboot = "logo.bmp"; - charge_logo,mode = "center"; - connect = <0x3e>; - logo,mode = "center"; - status = "disabled"; - phandle = <0x21d>; - }; - - route-dsi1 { - logo,kernel = "logo_kernel.bmp"; - logo,uboot = "logo.bmp"; - charge_logo,mode = "center"; - connect = <0x3a>; - logo,mode = "center"; - status = "disabled"; - phandle = <0x218>; - }; - - route-edp0 { - logo,kernel = "logo_kernel.bmp"; - logo,uboot = "logo.bmp"; - charge_logo,mode = "center"; - connect = <0x3b>; - logo,mode = "center"; - status = "disabled"; - phandle = <0x219>; - }; - - route-hdmi0 { - logo,kernel = "logo_kernel.bmp"; - logo,uboot = "logo.bmp"; - charge_logo,mode = "center"; - connect = <0x3c>; - logo,mode = "center"; - status = "okay"; - phandle = <0x21b>; - }; - - route-dp0 { - logo,kernel = "logo_kernel.bmp"; - logo,uboot = "logo.bmp"; - charge_logo,mode = "center"; - connect = <0x38>; - logo,mode = "center"; - status = "disabled"; - phandle = <0x216>; - }; - - route-rgb { - logo,kernel = "logo_kernel.bmp"; - logo,uboot = "logo.bmp"; - charge_logo,mode = "center"; - connect = <0x3d>; - logo,mode = "center"; - status = "disabled"; - phandle = <0x21c>; - }; - - route-dsi0 { - logo,kernel = "logo_kernel.bmp"; - logo,uboot = "logo.bmp"; - charge_logo,mode = "center"; - connect = <0x39>; - logo,mode = "center"; - status = "disabled"; - phandle = <0x217>; - }; - }; - }; - - serial@febc0000 { - reg-io-width = <0x04>; - pinctrl-names = "default"; - pinctrl-0 = <0x168>; - clock-names = "baudclk\0apb_pclk"; - interrupts = <0x00 0x154 0x04>; - clocks = <0x02 0xd7 0x02 0xb3>; - compatible = "rockchip,rk3588-uart\0snps,dw-apb-uart"; - status = "disabled"; - reg = <0x00 0xfebc0000 0x00 0x100>; - phandle = <0x2d1>; - dmas = <0xf2 0x0b 0xf2 0x0c>; - reg-shift = <0x02>; - }; - - adc-keys { - io-channels = <0x1d9 0x01>; - poll-interval = <0x64>; - keyup-threshold-microvolt = <0x1b7740>; - compatible = "adc-keys"; - status = "okay"; - phandle = <0x49e>; - io-channel-names = "buttons"; - - recovery-key { - press-threshold-microvolt = <0x4268>; - label = "F12"; - linux,code = <0x58>; - }; - }; - - pvtm@fdaf0000 { - #address-cells = <0x01>; - #size-cells = <0x00>; - compatible = "rockchip,rk3588-npu-pvtm"; - reg = <0x00 0xfdaf0000 0x00 0x100>; - - pvtm@3 { - clock-names = "clk\0pclk"; - resets = <0x02 0x1de 0x02 0x1dc>; - clocks = <0x02 0x12b 0x02 0x129>; - reg = <0x03>; - reset-names = "rts\0rst-p"; - }; - }; - - codec-digital@fe500000 { - power-domains = <0x60 0x26>; - pinctrl-names = "default"; - pinctrl-0 = <0x144>; - clock-names = "dac\0pclk"; - resets = <0x02 0x84>; - clocks = <0x02 0x29 0x02 0x2f>; - #sound-dai-cells = <0x00>; - compatible = "rockchip,rk3588-codec-digital\0rockchip,codec-digital-v1"; - status = "disabled"; - rockchip,grf = <0xc8>; - reg = <0x00 0xfe500000 0x00 0x1000>; - phandle = <0x29e>; - reset-names = "reset"; - rockchip,pwm-output-mode; - }; - - pwm@fd8b0020 { - pinctrl-names = "active"; - pinctrl-0 = <0x80>; - clock-names = "pwm\0pclk"; - interrupts = <0x00 0x158 0x04>; - clocks = <0x02 0x2a5 0x02 0x2a4>; - #pwm-cells = <0x03>; - compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; - status = "disabled"; - reg = <0x00 0xfd8b0020 0x00 0x10>; - phandle = <0x263>; - }; - - rkcif-mipi-lvds2 { - iommus = <0x50>; - rockchip,hw = <0x4f>; - compatible = "rockchip,rkcif-mipi-lvds"; - status = "okay"; - phandle = <0x55>; - - port { - - endpoint { - remote-endpoint = <0x54>; - phandle = <0x4e>; - }; - }; - }; - - pwm@febe0020 { - pinctrl-names = "active"; - pinctrl-0 = <0x16f>; - clock-names = "pwm\0pclk"; - interrupts = <0x00 0x15c 0x04>; - clocks = <0x02 0x57 0x02 0x56>; - #pwm-cells = <0x03>; - compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; - status = "disabled"; - reg = <0x00 0xfebe0020 0x00 0x10>; - phandle = <0x2d7>; - }; - - vcc-fan-pwr-en-regulator { - regulator-boot-on; - gpio = <0x182 0x0b 0x00>; - regulator-always-on; - enable-active-high; - regulator-name = "vcc_fan_pwr_en"; - compatible = "regulator-fixed"; - status = "disabled"; - phandle = <0x4a4>; - }; - - iommu@fdba0800 { - power-domains = <0x60 0x15>; - clock-names = "aclk\0iface"; - interrupts = <0x00 0x79 0x04>; - clocks = <0x02 0x1ac 0x02 0x1ad>; - #iommu-cells = <0x00>; - compatible = "rockchip,iommu-v2"; - status = "okay"; - interrupt-names = "irq_jpege0_mmu"; - reg = <0x00 0xfdba0800 0x00 0x40>; - phandle = <0xbc>; - }; - - rkcif-mipi-lvds1-sditf-vir2 { - compatible = "rockchip,rkcif-sditf"; - status = "disabled"; - rockchip,cif = <0x53>; - phandle = <0x231>; - }; - - arm-pmu { - interrupt-affinity = <0x06 0x07 0x08 0x09 0x0a 0x0b 0x0c 0x0d>; - interrupts = <0x01 0x07 0x08>; - compatible = "arm,armv8-pmuv3"; - phandle = <0x20c>; - }; - - pvtm@fda40000 { - #address-cells = <0x01>; - #size-cells = <0x00>; - compatible = "rockchip,rk3588-bigcore0-pvtm"; - reg = <0x00 0xfda40000 0x00 0x100>; - - pvtm@0 { - clock-names = "clk\0pclk"; - clocks = <0x02 0x2c6 0x02 0x15>; - reg = <0x00>; - }; - }; - - pwm@fd8b0010 { - pinctrl-names = "active"; - pinctrl-0 = <0x7f>; - clock-names = "pwm\0pclk"; - interrupts = <0x00 0x158 0x04>; - clocks = <0x02 0x2a5 0x02 0x2a4>; - #pwm-cells = <0x03>; - compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; - status = "disabled"; - reg = <0x00 0xfd8b0010 0x00 0x10>; - phandle = <0x262>; - }; - - i2s@fddc0000 { - power-domains = <0x60 0x19>; - clock-names = "mclk_tx\0mclk_rx\0hclk"; - assigned-clocks = <0x02 0x1f9>; - assigned-clock-parents = <0x02 0x05>; - resets = <0x02 0x38d>; - interrupts = <0x00 0xb8 0x04>; - clocks = <0x02 0x1fb 0x02 0x1fb 0x02 0x1f0>; - dma-names = "tx"; - #sound-dai-cells = <0x00>; - compatible = "rockchip,rk3588-i2s-tdm"; - rockchip,playback-only; - status = "disabled"; - reg = <0x00 0xfddc0000 0x00 0x1000>; - phandle = <0x27d>; - dmas = <0xf2 0x00>; - reset-names = "tx-m"; - }; - - qos@fdf61400 { - compatible = "syscon"; - reg = <0x00 0xfdf61400 0x00 0x20>; - phandle = <0x92>; - }; - - syscon@fd5d4000 { - #address-cells = <0x01>; - #size-cells = <0x01>; - compatible = "rockchip,rk3588-usb2phy-grf\0syscon\0simple-mfd"; - reg = <0x00 0xfd5d4000 0x00 0x4000>; - phandle = <0x1c8>; - - usb2-phy@4000 { - clock-output-names = "usb480m_phy1"; - clock-names = "phyclk"; - resets = <0x02 0xc0048 0x02 0x489>; - interrupts = <0x00 0x18a 0x04>; - clocks = <0x02 0x2b5>; - #clock-cells = <0x00>; - rockchip,usbctrl-grf = <0x74>; - compatible = "rockchip,rk3588-usb2phy"; - status = "okay"; - reg = <0x4000 0x10>; - phandle = <0x1ca>; - reset-names = "phy\0apb"; - - otg-port { - phy-supply = <0x75>; - #phy-cells = <0x00>; - status = "okay"; - phandle = <0x1a3>; - }; - }; - }; - - rkisp0-vir1 { - rockchip,hw = <0x58>; - compatible = "rockchip,rkisp-vir"; - status = "disabled"; - phandle = <0x23c>; - }; - - pwm@febe0010 { - pinctrl-names = "active"; - pinctrl-0 = <0x16e>; - clock-names = "pwm\0pclk"; - interrupts = <0x00 0x15c 0x04>; - clocks = <0x02 0x57 0x02 0x56>; - #pwm-cells = <0x03>; - compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; - status = "disabled"; - reg = <0x00 0xfebe0010 0x00 0x10>; - phandle = <0x2d6>; - }; - - thermal-zones { - phandle = <0x248>; - - bigcore1-thermal { - polling-delay = <0x3e8>; - polling-delay-passive = <0x14>; - thermal-sensors = <0x5d 0x02>; - phandle = <0x24d>; - }; - - soc-thermal { - polling-delay = <0x3e8>; - polling-delay-passive = <0x14>; - thermal-sensors = <0x5d 0x00>; - sustainable-power = <0x834>; - phandle = <0x249>; - - trips { - - trip-point-0 { - temperature = <0x124f8>; - hysteresis = <0x7d0>; - type = "passive"; - phandle = <0x24a>; - }; - - trip-point-1 { - temperature = <0x14c08>; - hysteresis = <0x7d0>; - type = "passive"; - phandle = <0x5e>; - }; - - soc-crit { - temperature = <0x1c138>; - hysteresis = <0x7d0>; - type = "critical"; - phandle = <0x24b>; - }; - }; - - cooling-maps { - - map2 { - trip = <0x5e>; - cooling-device = <0x0c 0xffffffff 0xffffffff>; - contribution = <0x400>; - }; - - map0 { - trip = <0x5e>; - cooling-device = <0x06 0xffffffff 0xffffffff>; - contribution = <0x400>; - }; - - map3 { - trip = <0x5e>; - cooling-device = <0x5f 0xffffffff 0xffffffff>; - contribution = <0x400>; - }; - - map1 { - trip = <0x5e>; - cooling-device = <0x0a 0xffffffff 0xffffffff>; - contribution = <0x400>; - }; - }; - }; - - npu-thermal { - polling-delay = <0x3e8>; - polling-delay-passive = <0x14>; - thermal-sensors = <0x5d 0x06>; - phandle = <0x251>; - }; - - center-thermal { - polling-delay = <0x3e8>; - polling-delay-passive = <0x14>; - thermal-sensors = <0x5d 0x04>; - phandle = <0x24f>; - }; - - gpu-thermal { - polling-delay = <0x3e8>; - polling-delay-passive = <0x14>; - thermal-sensors = <0x5d 0x05>; - phandle = <0x250>; - }; - - littlecore-thermal { - polling-delay = <0x3e8>; - polling-delay-passive = <0x14>; - thermal-sensors = <0x5d 0x03>; - phandle = <0x24e>; - }; - - bigcore0-thermal { - polling-delay = <0x3e8>; - polling-delay-passive = <0x14>; - thermal-sensors = <0x5d 0x01>; - phandle = <0x24c>; - }; - }; - - iommu@fdbdf000 { - power-domains = <0x60 0x10>; - rockchip,shootdown-entire; - clock-names = "aclk\0iface"; - interrupts = <0x00 0x63 0x04 0x00 0x64 0x04>; - clocks = <0x02 0x1c5 0x02 0x1c4>; - rockchip,enable-cmd-retry; - #iommu-cells = <0x00>; - compatible = "rockchip,iommu-v2"; - rockchip,disable-mmu-reset; - status = "okay"; - interrupt-names = "irq_rkvenc0_mmu0\0irq_rkvenc0_mmu1"; - reg = <0x00 0xfdbdf000 0x00 0x40 0x00 0xfdbdf040 0x00 0x40>; - phandle = <0xc2>; - }; - - serial@feb50000 { - reg-io-width = <0x04>; - pinctrl-names = "default"; - pinctrl-0 = <0x161>; - clock-names = "baudclk\0apb_pclk"; - interrupts = <0x00 0x14d 0x04>; - clocks = <0x02 0xbb 0x02 0xac>; - compatible = "rockchip,rk3588-uart\0snps,dw-apb-uart"; - status = "disabled"; - reg = <0x00 0xfeb50000 0x00 0x100>; - phandle = <0x2ca>; - dmas = <0x7c 0x0a 0x7c 0x0b>; - reg-shift = <0x02>; - }; - - iommu@fdcd0f00 { - power-domains = <0x60 0x1d>; - clock-names = "aclk\0iface\0pclk"; - interrupts = <0x00 0x8c 0x04>; - clocks = <0x02 0x1d5 0x02 0x1d6 0x02 0x1d7>; - #iommu-cells = <0x00>; - compatible = "rockchip,iommu-v2"; - rockchip,disable-mmu-reset; - status = "disabled"; - interrupt-names = "fec0_mmu"; - reg = <0x00 0xfdcd0f00 0x00 0x100>; - phandle = <0xd2>; - }; - - vcc5v0-host { - regulator-max-microvolt = <0x4c4b40>; - regulator-boot-on; - gpio = <0x182 0x02 0x00>; - regulator-always-on; - enable-active-high; - regulator-min-microvolt = <0x4c4b40>; - regulator-name = "vcc5v0_host"; - compatible = "regulator-fixed"; - status = "okay"; - phandle = <0x75>; - vin-supply = <0x1dd>; - }; - - qos@fdf66a00 { - compatible = "syscon"; - reg = <0x00 0xfdf66a00 0x00 0x20>; - phandle = <0x98>; - }; - - phy@fed90000 { - clock-names = "refclk\0immortal\0pclk\0utmi"; - resets = <0x02 0x2f 0x02 0x30 0x02 0x31 0x02 0x32 0x02 0x484>; - clocks = <0x02 0x2b6 0x02 0x280 0x02 0x26a 0x1ca>; - compatible = "rockchip,rk3588-usbdp-phy"; - status = "okay"; - rockchip,dp-lane-mux = <0x02 0x03>; - reg = <0x00 0xfed90000 0x00 0x10000>; - phandle = <0x48b>; - rockchip,usb-grf = <0x74>; - reset-names = "init\0cmn\0lane\0pcs_apb\0pma_apb"; - rockchip,u2phy-grf = <0x1c8>; - rockchip,usbdpphy-grf = <0x1c9>; - rockchip,vo-grf = <0xf5>; - - dp-port { - #phy-cells = <0x00>; - status = "okay"; - phandle = <0x1a5>; - }; - - u3-port { - #phy-cells = <0x00>; - status = "okay"; - phandle = <0x1a4>; - }; - }; - - jpege-core@fdba0000 { - power-domains = <0x60 0x15>; - iommus = <0xbc>; - rockchip,ccu = <0xbd>; - clock-names = "aclk_vcodec\0hclk_vcodec"; - assigned-clocks = <0x02 0x1ac>; - rockchip,normal-rates = <0x2367b880 0x00>; - assigned-clock-rates = <0x2367b880>; - resets = <0x02 0x2ca 0x02 0x2cb>; - interrupts = <0x00 0x7a 0x04>; - clocks = <0x02 0x1ac 0x02 0x1ad>; - rockchip,srv = <0xb8>; - rockchip,taskqueue-node = <0x02>; - rockchip,disable-auto-freq; - compatible = "rockchip,vpu-jpege-core"; - status = "okay"; - interrupt-names = "irq_jpege0"; - rockchip,skip-pmu-idle-request; - reg = <0x00 0xfdba0000 0x00 0x400>; - phandle = <0x26d>; - reset-names = "video_a\0video_h"; - }; - - vcc5v0-sys { - regulator-max-microvolt = <0x4c4b40>; - regulator-boot-on; - regulator-always-on; - regulator-min-microvolt = <0x4c4b40>; - regulator-name = "vcc5v0_sys"; - compatible = "regulator-fixed"; - phandle = <0x78>; - vin-supply = <0x1cd>; - }; - - pwm@fd8b0000 { - pinctrl-names = "active"; - pinctrl-0 = <0x7e>; - clock-names = "pwm\0pclk"; - interrupts = <0x00 0x158 0x04>; - clocks = <0x02 0x2a5 0x02 0x2a4>; - #pwm-cells = <0x03>; - compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; - status = "disabled"; - reg = <0x00 0xfd8b0000 0x00 0x10>; - phandle = <0x261>; - }; - - vop@fdd90000 { - power-domains = <0x60 0x18>; - iommus = <0xd6>; - rockchip,vop-grf = <0xd7>; - clock-names = "aclk_vop\0hclk_vop\0dclk_vp0\0dclk_vp1\0dclk_vp2\0dclk_vp3\0pclk_vop\0dclk_src_vp0\0dclk_src_vp1\0dclk_src_vp2"; - reg-names = "regs\0gamma_lut"; - assigned-clocks = <0x02 0x270>; - assigned-clock-rates = <0x2cb41780>; - resets = <0x02 0x349 0x02 0x348 0x02 0x34d 0x02 0x350 0x02 0x351 0x02 0x352>; - interrupts = <0x00 0x9c 0x04>; - clocks = <0x02 0x270 0x02 0x26f 0x02 0x274 0x02 0x275 0x02 0x276 0x02 0x277 0x02 0x26e 0x02 0x271 0x02 0x272 0x02 0x273>; - compatible = "rockchip,rk3588-vop"; - rockchip,pmu = <0xd9>; - status = "okay"; - rockchip,grf = <0xc8>; - reg = <0x00 0xfdd90000 0x00 0x4200 0x00 0xfdd95000 0x00 0x1000>; - phandle = <0x278>; - rockchip,vo1-grf = <0xd8>; - reset-names = "axi\0ahb\0dclk_vp0\0dclk_vp1\0dclk_vp2\0dclk_vp3"; - - ports { - #address-cells = <0x01>; - #size-cells = <0x00>; - phandle = <0x34>; - - port@0 { - rockchip,primary-plane = <0x02>; - rockchip,plane-mask = <0x05>; - #address-cells = <0x01>; - assigned-clocks = <0x02 0x270>; - assigned-clock-rates = <0x2faf0800>; - #size-cells = <0x00>; - reg = <0x00>; - phandle = <0x279>; - - endpoint@5 { - remote-endpoint = <0xdf>; - reg = <0x05>; - phandle = <0x1ad>; - }; - - endpoint@3 { - remote-endpoint = <0xdd>; - reg = <0x03>; - phandle = <0x1a6>; - }; - - endpoint@1 { - remote-endpoint = <0xdb>; - reg = <0x01>; - phandle = <0x102>; - }; - - endpoint@4 { - remote-endpoint = <0xde>; - reg = <0x04>; - phandle = <0x1b0>; - }; - - endpoint@2 { - remote-endpoint = <0xdc>; - reg = <0x02>; - phandle = <0x3c>; - }; - - endpoint@0 { - remote-endpoint = <0xda>; - reg = <0x00>; - phandle = <0xf7>; - }; - }; - - port@3 { - rockchip,primary-plane = <0x09>; - rockchip,plane-mask = <0x280>; - #address-cells = <0x01>; - #size-cells = <0x00>; - reg = <0x03>; - phandle = <0x27c>; - - endpoint@1 { - remote-endpoint = <0xef>; - reg = <0x01>; - phandle = <0x3a>; - }; - - endpoint@2 { - remote-endpoint = <0xf0>; - reg = <0x02>; - phandle = <0x3d>; - }; - - endpoint@0 { - remote-endpoint = <0xee>; - reg = <0x00>; - phandle = <0x39>; - }; - }; - - port@1 { - rockchip,primary-plane = <0x03>; - rockchip,plane-mask = <0x0a>; - #address-cells = <0x01>; - #size-cells = <0x00>; - reg = <0x01>; - phandle = <0x27a>; - - endpoint@5 { - remote-endpoint = <0xe5>; - reg = <0x05>; - phandle = <0x3f>; - }; - - endpoint@3 { - remote-endpoint = <0xe3>; - reg = <0x03>; - phandle = <0x3e>; - }; - - endpoint@1 { - remote-endpoint = <0xe1>; - reg = <0x01>; - phandle = <0x103>; - }; - - endpoint@4 { - remote-endpoint = <0xe4>; - reg = <0x04>; - phandle = <0x1b1>; - }; - - endpoint@2 { - remote-endpoint = <0xe2>; - reg = <0x02>; - phandle = <0xff>; - }; - - endpoint@0 { - remote-endpoint = <0xe0>; - reg = <0x00>; - phandle = <0x38>; - }; - }; - - port@2 { - rockchip,primary-plane = <0x08>; - rockchip,plane-mask = <0x140>; - #address-cells = <0x01>; - assigned-clocks = <0x02 0x273>; - assigned-clock-parents = <0x02 0x04>; - #size-cells = <0x00>; - reg = <0x02>; - phandle = <0x27b>; - - endpoint@5 { - remote-endpoint = <0xeb>; - reg = <0x05>; - phandle = <0x1a7>; - }; - - endpoint@3 { - remote-endpoint = <0xe9>; - reg = <0x03>; - phandle = <0xf3>; - }; - - endpoint@1 { - remote-endpoint = <0xe7>; - reg = <0x01>; - phandle = <0x3b>; - }; - - endpoint@6 { - remote-endpoint = <0xec>; - reg = <0x06>; - phandle = <0x1b2>; - }; - - endpoint@4 { - remote-endpoint = <0xea>; - reg = <0x04>; - phandle = <0xf4>; - }; - - endpoint@2 { - remote-endpoint = <0xe8>; - reg = <0x02>; - phandle = <0x100>; - }; - - endpoint@0 { - remote-endpoint = <0xe6>; - reg = <0x00>; - phandle = <0xf8>; - }; - - endpoint@7 { - remote-endpoint = <0xed>; - reg = <0x07>; - phandle = <0x1ae>; - }; - }; - }; - }; - - csi2-dphy1 { - rockchip,hw = <0x2d 0x2e>; - phy-names = "dcphy0\0dcphy1"; - compatible = "rockchip,rk3588-csi2-dphy"; - status = "disabled"; - phys = <0x2f 0x30>; - phandle = <0x210>; - }; - - pwm@febe0000 { - pinctrl-names = "active"; - pinctrl-0 = <0x16d>; - clock-names = "pwm\0pclk"; - interrupts = <0x00 0x15c 0x04>; - clocks = <0x02 0x57 0x02 0x56>; - #pwm-cells = <0x03>; - compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; - status = "disabled"; - reg = <0x00 0xfebe0000 0x00 0x10>; - phandle = <0x2d5>; - }; - - clocks { - #address-cells = <0x02>; - #size-cells = <0x02>; - compatible = "simple-bus"; - ranges; - - hclk_nvm@fd7c087c { - clock-names = "link"; - clocks = <0x02 0x141>; - #clock-cells = <0x00>; - #power-domain-cells = <0x01>; - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c087c 0x00 0x10>; - phandle = <0x03>; - }; - - mclkin-i2s0 { - clock-output-names = "i2s0_mclkin"; - #clock-cells = <0x00>; - clock-frequency = <0x00>; - compatible = "fixed-clock"; - phandle = <0x204>; - }; - - hclk_rkvenc1_pre@fd7c08c0 { - clock-names = "link"; - clocks = <0x02 0x1c4>; - #clock-cells = <0x00>; - #power-domain-cells = <0x01>; - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c08c0 0x00 0x10>; - phandle = <0x1fe>; - }; - - mclkout-i2s1@fd58c318 { - rockchip,clk-ignore-unused; - clock-output-names = "i2s1_mclkout_to_io"; - clocks = <0x02 0x291>; - rockchip,bit-set-to-disable; - #clock-cells = <0x00>; - compatible = "rockchip,clk-out"; - reg = <0x00 0xfd58c318 0x00 0x04>; - phandle = <0x208>; - rockchip,bit-shift = <0x01>; - }; - - mclkout-i2s1@fd58a000 { - rockchip,clk-ignore-unused; - clock-output-names = "i2s1m1_mclkout_to_io"; - clocks = <0x02 0x291>; - #clock-cells = <0x00>; - compatible = "rockchip,clk-out"; - reg = <0x00 0xfd58a000 0x00 0x04>; - phandle = <0x209>; - rockchip,bit-shift = <0x06>; - }; - - aclk_hdcp0_pre@fd7c08dc { - clock-names = "link"; - clocks = <0x02 0x26c>; - #clock-cells = <0x00>; - #power-domain-cells = <0x01>; - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c08dc 0x00 0x10>; - phandle = <0x1ff>; - }; - - xin32k { - clock-output-names = "xin32k"; - #clock-cells = <0x00>; - clock-frequency = <0x8000>; - compatible = "fixed-clock"; - phandle = <0x1f2>; - }; - - aclk_usb@fd7c08a8 { - clock-names = "link"; - clocks = <0x02 0x263>; - #clock-cells = <0x00>; - #power-domain-cells = <0x01>; - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c08a8 0x00 0x10>; - phandle = <0x6a>; - }; - - hclk_usb@fd7c08a8 { - clock-names = "link"; - clocks = <0x02 0x264>; - #clock-cells = <0x00>; - #power-domain-cells = <0x01>; - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c08a8 0x00 0x10>; - phandle = <0x1f5>; - }; - - hclk_vo0@fd7c08dc { - clock-names = "link"; - clocks = <0x02 0x26d>; - #clock-cells = <0x00>; - #power-domain-cells = <0x01>; - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c08dc 0x00 0x10>; - phandle = <0x04>; - }; - - pclk_av1_pre@fd7c0910 { - clock-names = "link"; - clocks = <0x02 0x1be>; - #clock-cells = <0x00>; - #power-domain-cells = <0x01>; - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c0910 0x00 0x10>; - phandle = <0x201>; - }; - - mclkout-i2s2@fd58c318 { - rockchip,clk-ignore-unused; - clock-output-names = "i2s2_mclkout_to_io"; - clocks = <0x02 0x28>; - rockchip,bit-set-to-disable; - #clock-cells = <0x00>; - compatible = "rockchip,clk-out"; - reg = <0x00 0xfd58c318 0x00 0x04>; - phandle = <0x20a>; - rockchip,bit-shift = <0x02>; - }; - - aclk_vdpu_low_pre@fd7c08b0 { - clock-names = "link"; - clocks = <0x02 0x1bc>; - #clock-cells = <0x00>; - #power-domain-cells = <0x01>; - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c08b0 0x00 0x10>; - phandle = <0x1f4>; - }; - - mclkin-i2s3 { - clock-output-names = "i2s3_mclkin"; - #clock-cells = <0x00>; - clock-frequency = <0x00>; - compatible = "fixed-clock"; - phandle = <0x207>; - }; - - spll { - clock-output-names = "spll"; - #clock-cells = <0x00>; - clock-frequency = <0x29d7ab80>; - compatible = "fixed-clock"; - phandle = <0x1f1>; - }; - - xin24m { - clock-output-names = "xin24m"; - #clock-cells = <0x00>; - clock-frequency = <0x16e3600>; - compatible = "fixed-clock"; - phandle = <0x1f3>; - }; - - aclk_av1_pre@fd7c0910 { - clock-names = "link"; - clocks = <0x02 0x1bc>; - #clock-cells = <0x00>; - #power-domain-cells = <0x01>; - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c0910 0x00 0x10>; - phandle = <0x202>; - }; - - pclk_vo0_grf@fd7c08dc { - clock-names = "link"; - clocks = <0x04>; - #clock-cells = <0x00>; - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c08dc 0x00 0x04>; - phandle = <0x72>; - }; - - aclk_jpeg_decoder_pre@fd7c08b0 { - clock-names = "link"; - clocks = <0x02 0x1bc>; - #clock-cells = <0x00>; - #power-domain-cells = <0x01>; - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c08b0 0x00 0x10>; - phandle = <0x1fc>; - }; - - aclk_hdcp1_pre@fd7c08ec { - clock-names = "link"; - clocks = <0x02 0x263>; - #clock-cells = <0x00>; - #power-domain-cells = <0x01>; - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c08ec 0x00 0x10>; - phandle = <0x200>; - }; - - mclkin-i2s1 { - clock-output-names = "i2s1_mclkin"; - #clock-cells = <0x00>; - clock-frequency = <0x00>; - compatible = "fixed-clock"; - phandle = <0x205>; - }; - - hclk_vo1@fd7c08ec { - clock-names = "link"; - clocks = <0x02 0x264>; - #clock-cells = <0x00>; - #power-domain-cells = <0x01>; - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c08ec 0x00 0x10>; - phandle = <0x05>; - }; - - mclkout-i2s3@fd58c318 { - rockchip,clk-ignore-unused; - clock-output-names = "i2s3_mclkout_to_io"; - clocks = <0x02 0x2e>; - rockchip,bit-set-to-disable; - #clock-cells = <0x00>; - compatible = "rockchip,clk-out"; - reg = <0x00 0xfd58c318 0x00 0x04>; - phandle = <0x20b>; - rockchip,bit-shift = <0x07>; - }; - - aclk_rkvdec0_pre@fd7c08a0 { - clock-names = "link"; - clocks = <0x02 0x1bc>; - #clock-cells = <0x00>; - #power-domain-cells = <0x01>; - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c08a0 0x00 0x10>; - phandle = <0x1f8>; - }; - - aclk_isp1_pre@fd7c0868 { - clock-names = "link"; - clocks = <0x02 0x1e0>; - #clock-cells = <0x00>; - #power-domain-cells = <0x01>; - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c0868 0x00 0x10>; - phandle = <0x1f7>; - }; - - pclk_vo1_grf@fd7c08ec { - clock-names = "link"; - clocks = <0x05>; - #clock-cells = <0x00>; - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c08ec 0x00 0x04>; - phandle = <0x73>; - }; - - aclk_rkvdec1_pre@fd7c08a4 { - clock-names = "link"; - clocks = <0x02 0x1bc>; - #clock-cells = <0x00>; - #power-domain-cells = <0x01>; - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c08a4 0x00 0x10>; - phandle = <0x1fa>; - }; - - hclk_rkvdec0_pre@fd7c08a0 { - clock-names = "link"; - clocks = <0x02 0x1be>; - #clock-cells = <0x00>; - #power-domain-cells = <0x01>; - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c08a0 0x00 0x10>; - phandle = <0x1f9>; - }; - - hclk_sdio_pre@fd7c092c { - clock-names = "link"; - clocks = <0x03>; - #clock-cells = <0x00>; - #power-domain-cells = <0x01>; - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c092c 0x00 0x10>; - phandle = <0x203>; - }; - - hclk_rkvdec1_pre@fd7c08a4 { - clock-names = "link"; - clocks = <0x02 0x1be>; - #clock-cells = <0x00>; - #power-domain-cells = <0x01>; - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c08a4 0x00 0x10>; - phandle = <0x1fb>; - }; - - hclk_isp1_pre@fd7c0868 { - clock-names = "link"; - clocks = <0x02 0x1e1>; - #clock-cells = <0x00>; - #power-domain-cells = <0x01>; - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c0868 0x00 0x10>; - phandle = <0x1f6>; - }; - - mclkout-i2s0@fd58c318 { - rockchip,clk-ignore-unused; - clock-output-names = "i2s0_mclkout_to_io"; - clocks = <0x02 0x39>; - rockchip,bit-set-to-disable; - #clock-cells = <0x00>; - compatible = "rockchip,clk-out"; - reg = <0x00 0xfd58c318 0x00 0x04>; - phandle = <0x179>; - rockchip,bit-shift = <0x00>; - }; - - mclkin-i2s2 { - clock-output-names = "i2s2_mclkin"; - #clock-cells = <0x00>; - clock-frequency = <0x00>; - compatible = "fixed-clock"; - phandle = <0x206>; - }; - - aclk_rkvenc1_pre@fd7c08c0 { - clock-names = "link"; - clocks = <0x02 0x1c5>; - #clock-cells = <0x00>; - #power-domain-cells = <0x01>; - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c08c0 0x00 0x10>; - phandle = <0x1fd>; - }; - }; - - usb@fc8c0000 { - power-domains = <0x60 0x1f>; - phy-names = "usb2-phy"; - clock-names = "usbhost\0arbiter\0utmi\0alk_usb"; - interrupts = <0x00 0xdb 0x04>; - clocks = <0x02 0x19f 0x02 0x1a0 0x6d 0x6a>; - compatible = "rockchip,rk3588-ohci\0generic-ohci"; - status = "okay"; - phys = <0x6f>; - reg = <0x00 0xfc8c0000 0x00 0x40000>; - phandle = <0x6e>; - }; - - qos@fdf40000 { - compatible = "syscon"; - reg = <0x00 0xfdf40000 0x00 0x20>; - phandle = <0xa8>; - }; - - mipi0-csi2 { - rockchip,hw = <0x47 0x48 0x49 0x4a 0x4b 0x4c>; - compatible = "rockchip,rk3588-mipi-csi2"; - status = "disabled"; - phandle = <0x224>; - }; - - cluster1-opp-table { - rockchip,pvtm-offset = <0x18>; - rockchip,pvtm-sample-time = <0x44c>; - rockchip,pvtm-hw = <0x06>; - nvmem-cells = <0x24 0x25 0x21>; - rockchip,low-temp = <0x2710>; - rockchip,pvtm-voltage-sel-hw = <0x00 0x603 0x00 0x604 0x61c 0x01 0x61d 0x635 0x02 0x636 0x64e 0x03 0x64f 0x66c 0x04 0x66d 0x68a 0x05 0x68b 0x6a8 0x06 0x6a9 0x270f 0x07>; - rockchip,pvtm-thermal-zone = "soc-thermal"; - rockchip,pvtm-low-len-sel = <0x03>; - rockchip,high-temp-max-freq = <0x21b100>; - opp-shared; - rockchip,reboot-freq = <0x1b7740>; - rockchip,pvtm-freq = <0x188940>; - rockchip,pvtm-ref-temp = <0x19>; - low-volt-mem-read-margin = <0x04>; - volt-mem-read-margin = <0xd0bd8 0x01 0xbac48 0x02 0xa4cb8 0x03 0x78d98 0x04>; - compatible = "operating-points-v2"; - rockchip,low-temp-min-volt = <0xb71b0>; - rockchip,grf = <0x26>; - nvmem-cell-names = "leakage\0opp-info\0specification_serial_number"; - rockchip,pvtm-voltage-sel = <0x00 0x63b 0x00 0x63c 0x64f 0x01 0x650 0x668 0x02 0x669 0x68b 0x03 0x68c 0x6ae 0x04 0x6af 0x6cf 0x05 0x6d0 0x6f0 0x06 0x6f1 0x270f 0x07>; - phandle = <0x16>; - rockchip,idle-threshold-freq = <0x21b100>; - rockchip,pvtm-temp-prop = <0x10e 0x10e>; - rockchip,temp-hysteresis = <0x1388>; - rockchip,high-temp = <0x14c08>; - rockchip,pvtm-pvtpll; - rockchip,supported-hw; - intermediate-threshold-freq = <0xf6180>; - rockchip,pvtm-volt = <0xb71b0>; - - opp-j-m-2016000000 { - opp-microvolt = <0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0>; - opp-microvolt-L6 = <0xd8acc 0xd8acc 0xe7ef0 0xd8acc 0xd8acc 0xe7ef0>; - opp-microvolt-L4 = <0xdec74 0xdec74 0xe7ef0 0xdec74 0xdec74 0xe7ef0>; - opp-microvolt-L2 = <0xe4e1c 0xe4e1c 0xe7ef0 0xe4e1c 0xe4e1c 0xe7ef0>; - opp-hz = <0x00 0x7829b800>; - opp-supported-hw = <0x06 0xffff>; - opp-microvolt-L7 = <0xd59f8 0xd59f8 0xe7ef0 0xd59f8 0xd59f8 0xe7ef0>; - opp-microvolt-L5 = <0xdbba0 0xdbba0 0xe7ef0 0xdbba0 0xdbba0 0xe7ef0>; - opp-microvolt-L3 = <0xe1d48 0xe1d48 0xe7ef0 0xe1d48 0xe1d48 0xe7ef0>; - clock-latency-ns = <0x9c40>; - opp-microvolt-L1 = <0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0>; - }; - - opp-1200000000 { - opp-microvolt = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; - opp-hz = <0x00 0x47868c00>; - opp-supported-hw = <0xf9 0xffff>; - clock-latency-ns = <0x9c40>; - }; - - opp-j-m-1416000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - opp-hz = <0x00 0x54667200>; - opp-microvolt-L0 = <0xba284 0xba284 0xe7ef0 0xba284 0xba284 0xe7ef0>; - opp-supported-hw = <0x06 0xffff>; - opp-suspend; - clock-latency-ns = <0x9c40>; - }; - - opp-1008000000 { - opp-microvolt = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; - opp-hz = <0x00 0x3c14dc00>; - opp-supported-hw = <0xf9 0xffff>; - clock-latency-ns = <0x9c40>; - }; - - opp-2256000000 { - opp-microvolt = <0xf4240 0xf4240 0xf4240 0xf4240 0xf4240 0xf4240>; - opp-hz = <0x00 0x8677d400>; - opp-supported-hw = <0xf9 0x13>; - clock-latency-ns = <0x9c40>; - }; - - opp-j-m-1200000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - opp-hz = <0x00 0x47868c00>; - opp-supported-hw = <0x06 0xffff>; - clock-latency-ns = <0x9c40>; - }; - - opp-j-m-1008000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - opp-hz = <0x00 0x3c14dc00>; - opp-supported-hw = <0x06 0xffff>; - clock-latency-ns = <0x9c40>; - }; - - opp-j-m-816000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - opp-hz = <0x00 0x30a32c00>; - opp-supported-hw = <0x06 0xffff>; - clock-latency-ns = <0x9c40>; - }; - - opp-2400000000 { - opp-microvolt = <0xf4240 0xf4240 0xf4240 0xf4240 0xf4240 0xf4240>; - opp-hz = <0x00 0x8f0d1800>; - opp-supported-hw = <0xf9 0x80>; - clock-latency-ns = <0x9c40>; - }; - - opp-1800000000 { - opp-microvolt = <0xcf850 0xcf850 0xf4240 0xcf850 0xcf850 0xf4240>; - opp-microvolt-L6 = <0xbd358 0xbd358 0xf4240 0xbd358 0xbd358 0xf4240>; - opp-microvolt-L4 = <0xc3500 0xc3500 0xf4240 0xc3500 0xc3500 0xf4240>; - opp-microvolt-L2 = <0xc96a8 0xc96a8 0xf4240 0xc96a8 0xc96a8 0xf4240>; - opp-hz = <0x00 0x6b49d200>; - opp-supported-hw = <0xf9 0xffff>; - opp-microvolt-L7 = <0xba284 0xba284 0xf4240 0xba284 0xba284 0xf4240>; - opp-microvolt-L5 = <0xc042c 0xc042c 0xf4240 0xc042c 0xc042c 0xf4240>; - opp-microvolt-L3 = <0xc65d4 0xc65d4 0xf4240 0xc65d4 0xc65d4 0xf4240>; - clock-latency-ns = <0x9c40>; - opp-microvolt-L1 = <0xcc77c 0xcc77c 0xf4240 0xcc77c 0xcc77c 0xf4240>; - }; - - opp-j-m-600000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - opp-hz = <0x00 0x23c34600>; - opp-supported-hw = <0x06 0xffff>; - clock-latency-ns = <0x9c40>; - }; - - opp-2208000000 { - opp-microvolt = <0xf116c 0xf116c 0xf4240 0xf116c 0xf116c 0xf4240>; - opp-microvolt-L6 = <0xe1d48 0xe1d48 0xf4240 0xe1d48 0xe1d48 0xf4240>; - opp-microvolt-L4 = <0xeafc4 0xeafc4 0xf4240 0xeafc4 0xeafc4 0xf4240>; - opp-microvolt-L2 = <0xeafc4 0xeafc4 0xf4240 0xeafc4 0xeafc4 0xf4240>; - opp-hz = <0x00 0x839b6800>; - opp-supported-hw = <0xf9 0xffff>; - opp-microvolt-L7 = <0xdec74 0xdec74 0xf4240 0xdec74 0xdec74 0xf4240>; - opp-microvolt-L5 = <0xe7ef0 0xe7ef0 0xf4240 0xe7ef0 0xe7ef0 0xf4240>; - opp-microvolt-L3 = <0xe7ef0 0xe7ef0 0xf4240 0xe7ef0 0xe7ef0 0xf4240>; - clock-latency-ns = <0x9c40>; - opp-microvolt-L1 = <0xee098 0xee098 0xf4240 0xee098 0xee098 0xf4240>; - }; - - opp-1608000000 { - opp-microvolt = <0xba284 0xba284 0xf4240 0xba284 0xba284 0xf4240>; - opp-microvolt-L6 = <0xaae60 0xaae60 0xf4240 0xaae60 0xaae60 0xf4240>; - opp-microvolt-L4 = <0xb1008 0xb1008 0xf4240 0xb1008 0xb1008 0xf4240>; - opp-microvolt-L2 = <0xb71b0 0xb71b0 0xf4240 0xb71b0 0xb71b0 0xf4240>; - opp-hz = <0x00 0x5fd82200>; - opp-supported-hw = <0xf9 0xffff>; - opp-microvolt-L7 = <0xaae60 0xaae60 0xf4240 0xaae60 0xaae60 0xf4240>; - opp-microvolt-L5 = <0xadf34 0xadf34 0xf4240 0xadf34 0xadf34 0xf4240>; - opp-microvolt-L3 = <0xb40dc 0xb40dc 0xf4240 0xb40dc 0xb40dc 0xf4240>; - clock-latency-ns = <0x9c40>; - }; - - opp-j-m-408000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - opp-hz = <0x00 0x18519600>; - opp-supported-hw = <0x06 0xffff>; - clock-latency-ns = <0x9c40>; - }; - - opp-j-m-1800000000 { - opp-microvolt = <0xd59f8 0xd59f8 0xe7ef0 0xd59f8 0xd59f8 0xe7ef0>; - opp-microvolt-L6 = <0xc3500 0xc3500 0xe7ef0 0xc3500 0xc3500 0xe7ef0>; - opp-microvolt-L4 = <0xc96a8 0xc96a8 0xe7ef0 0xc96a8 0xc96a8 0xe7ef0>; - opp-microvolt-L2 = <0xcf850 0xcf850 0xe7ef0 0xcf850 0xcf850 0xe7ef0>; - opp-hz = <0x00 0x6b49d200>; - opp-supported-hw = <0x06 0xffff>; - opp-microvolt-L7 = <0xc042c 0xc042c 0xe7ef0 0xc042c 0xc042c 0xe7ef0>; - opp-microvolt-L5 = <0xc65d4 0xc65d4 0xe7ef0 0xc65d4 0xc65d4 0xe7ef0>; - opp-microvolt-L3 = <0xcc77c 0xcc77c 0xe7ef0 0xcc77c 0xcc77c 0xe7ef0>; - clock-latency-ns = <0x9c40>; - opp-microvolt-L1 = <0xd2924 0xd2924 0xe7ef0 0xd2924 0xd2924 0xe7ef0>; - }; - - opp-2352000000 { - opp-microvolt = <0xf4240 0xf4240 0xf4240 0xf4240 0xf4240 0xf4240>; - opp-hz = <0x00 0x8c30ac00>; - opp-supported-hw = <0xf9 0x48>; - clock-latency-ns = <0x9c40>; - }; - - opp-816000000 { - opp-microvolt = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; - opp-hz = <0x00 0x30a32c00>; - opp-supported-hw = <0xf9 0xffff>; - clock-latency-ns = <0x9c40>; - }; - - opp-j-m-1608000000 { - opp-microvolt = <0xc042c 0xc042c 0xe7ef0 0xc042c 0xc042c 0xe7ef0>; - opp-microvolt-L6 = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - opp-microvolt-L4 = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - opp-microvolt-L2 = <0xbd358 0xbd358 0xe7ef0 0xbd358 0xbd358 0xe7ef0>; - opp-hz = <0x00 0x5fd82200>; - opp-supported-hw = <0x06 0xffff>; - opp-microvolt-L7 = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - opp-microvolt-L5 = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - opp-microvolt-L3 = <0xba284 0xba284 0xe7ef0 0xba284 0xba284 0xe7ef0>; - clock-latency-ns = <0x9c40>; - }; - - opp-600000000 { - opp-microvolt = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; - opp-hz = <0x00 0x23c34600>; - opp-supported-hw = <0xf9 0xffff>; - clock-latency-ns = <0x9c40>; - }; - - opp-2016000000 { - opp-microvolt = <0xe1d48 0xe1d48 0xf4240 0xe1d48 0xe1d48 0xf4240>; - opp-microvolt-L6 = <0xcf850 0xcf850 0xf4240 0xcf850 0xcf850 0xf4240>; - opp-microvolt-L4 = <0xd59f8 0xd59f8 0xf4240 0xd59f8 0xd59f8 0xf4240>; - opp-microvolt-L2 = <0xdbba0 0xdbba0 0xf4240 0xdbba0 0xdbba0 0xf4240>; - opp-hz = <0x00 0x7829b800>; - opp-supported-hw = <0xf9 0xffff>; - opp-microvolt-L7 = <0xcc77c 0xcc77c 0xf4240 0xcc77c 0xcc77c 0xf4240>; - opp-microvolt-L5 = <0xd2924 0xd2924 0xf4240 0xd2924 0xd2924 0xf4240>; - opp-microvolt-L3 = <0xd8acc 0xd8acc 0xf4240 0xd8acc 0xd8acc 0xf4240>; - clock-latency-ns = <0x9c40>; - opp-microvolt-L1 = <0xdec74 0xdec74 0xf4240 0xdec74 0xdec74 0xf4240>; - }; - - opp-1416000000 { - opp-microvolt = <0xb1008 0xb1008 0xf4240 0xb1008 0xb1008 0xf4240>; - opp-microvolt-L6 = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; - opp-microvolt-L4 = <0xaae60 0xaae60 0xf4240 0xaae60 0xaae60 0xf4240>; - opp-microvolt-L2 = <0xadf34 0xadf34 0xf4240 0xadf34 0xadf34 0xf4240>; - opp-hz = <0x00 0x54667200>; - opp-supported-hw = <0xf9 0xffff>; - opp-microvolt-L7 = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; - opp-microvolt-L5 = <0xa7d8c 0xa7d8c 0xf4240 0xa7d8c 0xa7d8c 0xf4240>; - opp-microvolt-L3 = <0xaae60 0xaae60 0xf4240 0xaae60 0xaae60 0xf4240>; - clock-latency-ns = <0x9c40>; - }; - - opp-408000000 { - opp-microvolt = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; - opp-hz = <0x00 0x18519600>; - opp-supported-hw = <0xf9 0xffff>; - opp-suspend; - clock-latency-ns = <0x9c40>; - }; - - opp-2304000000 { - opp-microvolt = <0xf4240 0xf4240 0xf4240 0xf4240 0xf4240 0xf4240>; - opp-hz = <0x00 0x89544000>; - opp-supported-hw = <0xf9 0x24>; - clock-latency-ns = <0x9c40>; - }; - }; - - mmc@fe2d0000 { - power-domains = <0x60 0x25>; - fifo-depth = <0x100>; - pinctrl-names = "default"; - pinctrl-0 = <0x119>; - clock-names = "biu\0ciu\0ciu-drive\0ciu-sample"; - interrupts = <0x00 0xcc 0x04>; - clocks = <0x02 0x199 0x02 0x19a 0x02 0x2c0 0x02 0x2c1>; - compatible = "rockchip,rk3588-dw-mshc\0rockchip,rk3288-dw-mshc"; - status = "disabled"; - reg = <0x00 0xfe2d0000 0x00 0x4000>; - phandle = <0x294>; - max-frequency = <0xbebc200>; - }; - - rkcif-mipi-lvds-sditf-vir3 { - compatible = "rockchip,rkcif-sditf"; - status = "disabled"; - rockchip,cif = <0x52>; - phandle = <0x22e>; - }; - - serial@feb90000 { - reg-io-width = <0x04>; - pinctrl-names = "default"; - pinctrl-0 = <0x165>; - clock-names = "baudclk\0apb_pclk"; - interrupts = <0x00 0x151 0x04>; - clocks = <0x02 0xcb 0x02 0xb0>; - compatible = "rockchip,rk3588-uart\0snps,dw-apb-uart"; - status = "okay"; - reg = <0x00 0xfeb90000 0x00 0x100>; - phandle = <0x2ce>; - dmas = <0xf1 0x0d 0xf1 0x0e>; - reg-shift = <0x02>; - }; - - i2s@fddf8000 { - power-domains = <0x60 0x1a>; - clock-names = "mclk_tx\0mclk_rx\0hclk"; - assigned-clocks = <0x02 0x239>; - assigned-clock-parents = <0x02 0x05>; - rockchip,capture-only; - resets = <0x02 0x3c3>; - interrupts = <0x00 0xbb 0x04>; - clocks = <0x02 0x23c 0x02 0x23c 0x02 0x238>; - dma-names = "rx"; - #sound-dai-cells = <0x00>; - compatible = "rockchip,rk3588-i2s-tdm"; - status = "okay"; - reg = <0x00 0xfddf8000 0x00 0x1000>; - phandle = <0x1ec>; - dmas = <0xf2 0x15>; - reset-names = "rx-m"; - }; - - phy@fee20000 { - rockchip,pipe-grf = <0x76>; - clock-names = "refclk\0apbclk\0phpclk"; - assigned-clocks = <0x02 0x2bf>; - assigned-clock-rates = <0x5f5e100>; - resets = <0x02 0x20007 0x02 0x4d8>; - clocks = <0x02 0x2bf 0x02 0x187 0x02 0x166>; - #phy-cells = <0x01>; - compatible = "rockchip,rk3588-naneng-combphy"; - status = "disabled"; - rockchip,pipe-phy-grf = <0x195>; - reg = <0x00 0xfee20000 0x00 0x100>; - phandle = <0x70>; - reset-names = "combphy-apb\0combphy"; - rockchip,pcie1ln-sel-bits = <0x100 0x01 0x01 0x00>; - }; - - csi2-dphy0-hw@fedc0000 { - clock-names = "pclk"; - resets = <0x02 0x17 0x02 0x16>; - clocks = <0x02 0x10c>; - compatible = "rockchip,rk3588-csi2-dphy-hw"; - status = "okay"; - rockchip,grf = <0x192>; - reg = <0x00 0xfedc0000 0x00 0x8000>; - phandle = <0x2d>; - reset-names = "srst_csiphy0\0srst_p_csiphy0"; - rockchip,sys_grf = <0xc8>; - }; - - can@fea70000 { - pinctrl-names = "default"; - pinctrl-0 = <0x147>; - clock-names = "baudclk\0apb_pclk"; - resets = <0x02 0xbd 0x02 0xbc>; - interrupts = <0x00 0x157 0x04>; - clocks = <0x02 0x74 0x02 0x73>; - compatible = "rockchip,can-2.0"; - status = "disabled"; - tx-fifo-depth = <0x01>; - rx-fifo-depth = <0x06>; - reg = <0x00 0xfea70000 0x00 0x1000>; - phandle = <0x2a2>; - reset-names = "can\0can-apb"; - }; - - mailbox@fec60000 { - clock-names = "pclk_mailbox"; - interrupts = <0x00 0x3d 0x04 0x00 0x3e 0x04 0x00 0x3f 0x04 0x00 0x40 0x04>; - clocks = <0x02 0x4c>; - #mbox-cells = <0x01>; - compatible = "rockchip,rk3588-mailbox\0rockchip,rk3368-mailbox"; - status = "disabled"; - reg = <0x00 0xfec60000 0x00 0x200>; - phandle = <0x2dd>; - }; - - usbdrd3_1 { - #address-cells = <0x02>; - clock-names = "ref\0suspend\0bus"; - clocks = <0x02 0x1a6 0x02 0x1a5 0x02 0x1a4>; - #size-cells = <0x02>; - compatible = "rockchip,rk3588-dwc3\0rockchip,rk3399-dwc3"; - ranges; - status = "okay"; - phandle = <0x47a>; - - usb@fc400000 { - power-domains = <0x60 0x1f>; - snps,dis-u1-entry-quirk; - snps,dis_enblslpm_quirk; - phy-names = "usb2-phy\0usb3-phy"; - snps,dis-u2-freeclk-exists-quirk; - phy_type = "utmi_wide"; - resets = <0x02 0x2a7>; - interrupts = <0x00 0xdd 0x04>; - snps,dis-u2-entry-quirk; - compatible = "snps,dwc3"; - snps,parkmode-disable-hs-quirk; - snps,dis-del-phy-power-chg-quirk; - status = "okay"; - snps,parkmode-disable-ss-quirk; - phys = <0x1a3 0x1a4>; - reg = <0x00 0xfc400000 0x00 0x400000>; - phandle = <0x47b>; - dr_mode = "host"; - reset-names = "usb3-otg"; - snps,dis-tx-ipgap-linecheck-quirk; - }; - }; - - sata@fe210000 { - phy-names = "sata-phy"; - clock-names = "sata\0pmalive\0rxoob\0ref\0asic"; - interrupts = <0x00 0x111 0x04>; - clocks = <0x02 0x171 0x02 0x16e 0x02 0x174 0x02 0x163 0x02 0x17e>; - compatible = "rockchip,rk-ahci\0snps,dwc-ahci"; - status = "okay"; - interrupt-names = "hostc"; - phys = <0x108 0x01>; - reg = <0x00 0xfe210000 0x00 0x1000>; - phandle = <0x290>; - ports-implemented = <0x01>; - }; - - leds { - compatible = "gpio-leds"; - status = "okay"; - phandle = <0x497>; - - user { - linux,default-trigger = "ir-user-click"; - label = ":user"; - default-state = "off"; - phandle = <0x499>; - gpios = <0x182 0x03 0x00>; - }; - - power { - linux,default-trigger = "ir-power-click"; - label = ":power"; - default-state = "on"; - status = "disabled"; - phandle = <0x498>; - gpios = <0x7b 0x15 0x00>; - }; - }; - - rkcif-mipi-lvds5-sditf-vir3 { - compatible = "rockchip,rkcif-sditf"; - status = "disabled"; - rockchip,cif = <0x1a2>; - phandle = <0x479>; - }; - - qos@fdf80000 { - compatible = "syscon"; - reg = <0x00 0xfdf80000 0x00 0x20>; - phandle = <0x9f>; - }; - - spdif-tx@fdde0000 { - power-domains = <0x60 0x1a>; - clock-names = "mclk\0hclk"; - assigned-clocks = <0x02 0x254>; - assigned-clock-parents = <0x02 0x05>; - interrupts = <0x00 0xc4 0x04>; - clocks = <0x02 0x257 0x02 0x253>; - dma-names = "tx"; - #sound-dai-cells = <0x00>; - compatible = "rockchip,rk3588-spdif\0rockchip,rk3568-spdif"; - status = "disabled"; - reg = <0x00 0xfdde0000 0x00 0x1000>; - phandle = <0x27e>; - dmas = <0xf1 0x07>; - }; - - qos@fdf35000 { - compatible = "syscon"; - reg = <0x00 0xfdf35000 0x00 0x20>; - phandle = <0x87>; - }; - - psci { - method = "smc"; - compatible = "arm,psci-1.0"; - }; - - rkcif-mipi-lvds { - iommus = <0x50>; - rockchip,hw = <0x4f>; - compatible = "rockchip,rkcif-mipi-lvds"; - status = "disabled"; - phandle = <0x52>; - }; - - rga@fdb80000 { - power-domains = <0x60 0x15>; - clock-names = "aclk_rga2\0hclk_rga2\0clk_rga2"; - interrupts = <0x00 0x74 0x04>; - clocks = <0x02 0x1b7 0x02 0x1b6 0x02 0x1b8>; - compatible = "rockchip,rga2_core0"; - status = "okay"; - interrupt-names = "rga2_irq"; - reg = <0x00 0xfdb80000 0x00 0x1000>; - phandle = <0x26b>; - }; - - qos@fdf66800 { - compatible = "syscon"; - reg = <0x00 0xfdf66800 0x00 0x20>; - phandle = <0x97>; - }; - - spi@feb10000 { - pinctrl-names = "default"; - #address-cells = <0x01>; - num-cs = <0x02>; - pinctrl-0 = <0x151 0x152 0x153>; - clock-names = "spiclk\0apb_pclk"; - interrupts = <0x00 0x147 0x04>; - clocks = <0x02 0xa4 0x02 0x9f>; - #size-cells = <0x00>; - dma-names = "tx\0rx"; - compatible = "rockchip,rk3066-spi"; - status = "disabled"; - reg = <0x00 0xfeb10000 0x00 0x1000>; - phandle = <0x2ac>; - dmas = <0x7c 0x10 0x7c 0x11>; - }; - - rkcif-mipi-lvds4-sditf { - compatible = "rockchip,rkcif-sditf"; - status = "disabled"; - rockchip,cif = <0x1a1>; - phandle = <0x472>; - }; - - hdmi@fdea0000 { - power-domains = <0x60 0x1a>; - reg-io-width = <0x04>; - pinctrl-names = "default"; - phy-names = "hdmi"; - pinctrl-0 = <0x1a8 0x1a9 0x1aa 0x1ab>; - clock-names = "pclk\0hpd\0earc\0hdmitx_ref\0aud\0dclk_vp0\0dclk_vp1\0dclk_vp2\0dclk_vp3\0hclk_vo1\0link_clk"; - resets = <0x02 0x3d7 0x02 0x49d>; - interrupts = <0x00 0xad 0x04 0x00 0xae 0x04 0x00 0xaf 0x04 0x00 0xb0 0x04 0x00 0x169 0x04>; - clocks = <0x02 0x224 0x02 0x266 0x02 0x225 0x02 0x226 0x02 0x24c 0x02 0x274 0x02 0x275 0x02 0x276 0x02 0x277 0x05 0x36>; - #sound-dai-cells = <0x00>; - compatible = "rockchip,rk3588-dw-hdmi"; - status = "disabled"; - rockchip,grf = <0xc8>; - phys = <0x1ac>; - reg = <0x00 0xfdea0000 0x00 0x10000 0x00 0xfdeb0000 0x00 0x10000>; - phandle = <0x1e1>; - reset-names = "ref\0hdp"; - rockchip,vo1_grf = <0xd8>; - - ports { - #address-cells = <0x01>; - #size-cells = <0x00>; - - port@0 { - #address-cells = <0x01>; - #size-cells = <0x00>; - reg = <0x00>; - phandle = <0x482>; - - endpoint@1 { - remote-endpoint = <0x3f>; - status = "disabled"; - reg = <0x01>; - phandle = <0xe5>; - }; - - endpoint@2 { - remote-endpoint = <0x1ae>; - status = "disabled"; - reg = <0x02>; - phandle = <0xed>; - }; - - endpoint@0 { - remote-endpoint = <0x1ad>; - status = "disabled"; - reg = <0x00>; - phandle = <0xdf>; - }; - }; - }; - }; - - pcie@fe180000 { - #address-cells = <0x03>; - rockchip,pipe-grf = <0x76>; - phy-names = "pcie-phy"; - bus-range = <0x30 0x3f>; - clock-names = "aclk_mst\0aclk_slv\0aclk_dbi\0pclk\0aux\0pipe"; - reg-names = "pcie-apb\0pcie-dbi"; - num-ob-windows = <0x08>; - resets = <0x02 0x210 0x02 0x21f>; - interrupts = <0x00 0xf8 0x04 0x00 0xf7 0x04 0x00 0xf6 0x04 0x00 0xf5 0x04 0x00 0xf4 0x04>; - clocks = <0x02 0x151 0x02 0x156 0x02 0x14c 0x02 0x15c 0x02 0x161 0x02 0x2c5>; - interrupt-map = <0x00 0x00 0x00 0x01 0x105 0x00 0x00 0x00 0x00 0x02 0x105 0x01 0x00 0x00 0x00 0x03 0x105 0x02 0x00 0x00 0x00 0x04 0x105 0x03>; - #size-cells = <0x02>; - max-link-speed = <0x02>; - device_type = "pci"; - interrupt-map-mask = <0x00 0x00 0x00 0x07>; - num-lanes = <0x01>; - compatible = "rockchip,rk3588-pcie\0snps,dw-pcie"; - ranges = <0x800 0x00 0xf3000000 0x00 0xf3000000 0x00 0x100000 0x81000000 0x00 0xf3100000 0x00 0xf3100000 0x00 0x100000 0x82000000 0x00 0xf3200000 0x00 0xf3200000 0x00 0xe00000 0xc3000000 0x09 0xc0000000 0x09 0xc0000000 0x00 0x40000000>; - msi-map = <0x3000 0x106 0x3000 0x1000>; - #interrupt-cells = <0x01>; - status = "disabled"; - interrupt-names = "sys\0pmc\0msg\0legacy\0err"; - phys = <0x70 0x02>; - num-viewport = <0x04>; - reg = <0x00 0xfe180000 0x00 0x10000 0x0a 0x40c00000 0x00 0x400000>; - linux,pci-domain = <0x03>; - phandle = <0x28c>; - reset-names = "pcie\0periph"; - num-ib-windows = <0x08>; - - legacy-interrupt-controller { - #address-cells = <0x00>; - interrupts = <0x00 0xf5 0x01>; - interrupt-parent = <0x01>; - #interrupt-cells = <0x01>; - phandle = <0x105>; - interrupt-controller; - }; - }; - - i2s@fe480000 { - pinctrl-names = "default"; - pinctrl-0 = <0x120 0x121 0x122 0x123 0x124 0x125 0x126 0x127 0x128 0x129>; - clock-names = "mclk_tx\0mclk_rx\0hclk"; - resets = <0x02 0xc002a 0x02 0xc002d>; - interrupts = <0x00 0xb5 0x04>; - clocks = <0x02 0x28c 0x02 0x290 0x02 0x288>; - dma-names = "tx\0rx"; - #sound-dai-cells = <0x00>; - compatible = "rockchip,rk3588-i2s-tdm"; - status = "disabled"; - reg = <0x00 0xfe480000 0x00 0x1000>; - phandle = <0x1d1>; - dmas = <0x7c 0x02 0x7c 0x03>; - reset-names = "tx-m\0rx-m"; - rockchip,clk-trcm = <0x01>; - }; - - syscon@fd5c0000 { - compatible = "rockchip,pipe-phy-grf\0syscon"; - reg = <0x00 0xfd5c0000 0x00 0x100>; - phandle = <0x1cb>; - }; - - i2c@feab0000 { - pinctrl-names = "default"; - #address-cells = <0x01>; - pinctrl-0 = <0x14a>; - clock-names = "i2c\0pclk"; - resets = <0x02 0xb2 0x02 0xaa>; - interrupts = <0x00 0x140 0x04>; - clocks = <0x02 0x8f 0x02 0x87>; - #size-cells = <0x00>; - compatible = "rockchip,rk3588-i2c\0rockchip,rk3399-i2c"; - status = "okay"; - reg = <0x00 0xfeab0000 0x00 0x1000>; - phandle = <0x2a6>; - reset-names = "i2c\0apb"; - - gpio@21 { - gpio-controller; - gpio-group-num = <0xc8>; - compatible = "nxp,pca9555"; - status = "okay"; - reg = <0x21>; - phandle = <0x182>; - #gpio-cells = <0x02>; - }; - }; - - iommu@fdcb7f00 { - power-domains = <0x60 0x1b>; - clock-names = "aclk\0iface"; - interrupts = <0x00 0x84 0x04>; - clocks = <0x02 0x1de 0x02 0x1df>; - #iommu-cells = <0x00>; - compatible = "rockchip,iommu-v2"; - rockchip,disable-mmu-reset; - status = "okay"; - interrupt-names = "isp0_mmu"; - reg = <0x00 0xfdcb7f00 0x00 0x100>; - phandle = <0xd0>; - }; - - qos@fdf3e600 { - compatible = "syscon"; - reg = <0x00 0xfdf3e600 0x00 0x20>; - phandle = <0xae>; - }; - - syscon@fd5b8000 { - compatible = "rockchip,pcie30-phy-grf\0syscon"; - reg = <0x00 0xfd5b8000 0x00 0x10000>; - phandle = <0x1cc>; - }; - - qos@fdf81200 { - compatible = "syscon"; - reg = <0x00 0xfdf81200 0x00 0x20>; - phandle = <0xa1>; - }; - - mipi5-csi2-hw@fdd60000 { - clock-names = "pclk_csi2host"; - reg-names = "csihost_regs"; - resets = <0x02 0x329>; - interrupts = <0x00 0x99 0x04 0x00 0x9a 0x04>; - clocks = <0x02 0x1d4>; - compatible = "rockchip,rk3588-mipi-csi2-hw"; - status = "okay"; - interrupt-names = "csi-intr1\0csi-intr2"; - reg = <0x00 0xfdd60000 0x00 0x10000>; - phandle = <0x4c>; - reset-names = "srst_csihost_p"; - }; - - qos@fdf72000 { - compatible = "syscon"; - reg = <0x00 0xfdf72000 0x00 0x20>; - phandle = <0x82>; - }; - - timer@feae0000 { - clock-names = "pclk\0timer"; - interrupts = <0x00 0x121 0x04>; - clocks = <0x02 0x5c 0x02 0x5f>; - compatible = "rockchip,rk3588-timer\0rockchip,rk3288-timer"; - reg = <0x00 0xfeae0000 0x00 0x20>; - phandle = <0x2a9>; - }; - - rkcif-mipi-lvds-sditf-vir1 { - compatible = "rockchip,rkcif-sditf"; - status = "disabled"; - rockchip,cif = <0x52>; - phandle = <0x22c>; - }; - - syscon@fd5b5000 { - compatible = "rockchip,mipi-dphy-grf\0syscon"; - reg = <0x00 0xfd5b5000 0x00 0x1000>; - phandle = <0x193>; - }; - - i2c@fec90000 { - pinctrl-names = "default"; - #address-cells = <0x01>; - pinctrl-0 = <0x185>; - clock-names = "i2c\0pclk"; - resets = <0x02 0xb6 0x02 0xae>; - interrupts = <0x00 0x144 0x04>; - clocks = <0x02 0x93 0x02 0x8b>; - #size-cells = <0x00>; - compatible = "rockchip,rk3588-i2c\0rockchip,rk3399-i2c"; - status = "disabled"; - reg = <0x00 0xfec90000 0x00 0x1000>; - phandle = <0x2e4>; - reset-names = "i2c\0apb"; - }; - - avsd-plus@fdb51000 { - power-domains = <0x60 0x15>; - iommus = <0xb7>; - clock-names = "aclk_vcodec\0hclk_vcodec"; - assigned-clocks = <0x02 0x1c0>; - rockchip,normal-rates = <0x2367b880 0x00>; - assigned-clock-rates = <0x2367b880>; - resets = <0x02 0x2c8 0x02 0x2c9>; - interrupts = <0x00 0x77 0x04>; - clocks = <0x02 0x1c0 0x02 0x1c1>; - rockchip,srv = <0xb8>; - rockchip,taskqueue-node = <0x00>; - rockchip,disable-auto-freq; - compatible = "rockchip,avs-plus-decoder"; - rockchip,resetgroup-node = <0x00>; - status = "disabled"; - interrupt-names = "irq_avsd"; - rockchip,skip-pmu-idle-request; - reg = <0x00 0xfdb51000 0x00 0x200>; - phandle = <0x268>; - reset-names = "shared_video_a\0shared_video_h"; - }; - - dp1-sound { - rockchip,jack-det; - rockchip,cpu = <0x1e2>; - rockchip,codec = <0x1e3 0x01>; - rockchip,card-name = "rockchip,dp1"; - compatible = "rockchip,hdmi"; - status = "disabled"; - phandle = <0x4a9>; - rockchip,mclk-fs = <0x200>; - }; - - mipi1-csi2-hw@fdd20000 { - clock-names = "pclk_csi2host"; - reg-names = "csihost_regs"; - resets = <0x02 0x325>; - interrupts = <0x00 0x91 0x04 0x00 0x92 0x04>; - clocks = <0x02 0x1d0>; - compatible = "rockchip,rk3588-mipi-csi2-hw"; - status = "okay"; - interrupt-names = "csi-intr1\0csi-intr2"; - reg = <0x00 0xfdd20000 0x00 0x10000>; - phandle = <0x48>; - reset-names = "srst_csihost_p"; - }; - - iep@fdbb0000 { - power-domains = <0x60 0x15>; - iommus = <0xc1>; - clock-names = "aclk\0hclk\0sclk"; - assigned-clocks = <0x02 0x1aa>; - rockchip,normal-rates = <0x2367b880 0x00>; - assigned-clock-rates = <0x2367b880>; - resets = <0x02 0x2d5 0x02 0x2d4 0x02 0x2d6>; - interrupts = <0x00 0x75 0x04>; - clocks = <0x02 0x1aa 0x02 0x1a9 0x02 0x1ab>; - rockchip,srv = <0xb8>; - rockchip,taskqueue-node = <0x06>; - rockchip,disable-auto-freq; - compatible = "rockchip,iep-v2"; - status = "okay"; - interrupt-names = "irq_iep"; - rockchip,skip-pmu-idle-request; - reg = <0x00 0xfdbb0000 0x00 0x500>; - phandle = <0x271>; - reset-names = "rst_a\0rst_h\0rst_s"; - }; - - dsi@fde20000 { - power-domains = <0x60 0x18>; - #address-cells = <0x01>; - phy-names = "dcphy"; - clock-names = "pclk\0sys_clk"; - resets = <0x02 0x354>; - interrupts = <0x00 0xa7 0x04>; - clocks = <0x02 0x278 0x02 0x27a>; - #size-cells = <0x00>; - compatible = "rockchip,rk3588-mipi-dsi2"; - status = "disabled"; - rockchip,grf = <0xd7>; - phys = <0x2f>; - reg = <0x00 0xfde20000 0x00 0x10000>; - phandle = <0x281>; - reset-names = "apb"; - - ports { - #address-cells = <0x01>; - #size-cells = <0x00>; - - port@0 { - #address-cells = <0x01>; - #size-cells = <0x00>; - reg = <0x00>; - phandle = <0x282>; - - endpoint@1 { - remote-endpoint = <0x39>; - status = "disabled"; - reg = <0x01>; - phandle = <0xee>; - }; - - endpoint@0 { - remote-endpoint = <0xf3>; - status = "disabled"; - reg = <0x00>; - phandle = <0xe9>; - }; - }; - }; - }; - - rkcif-mipi-lvds5-sditf-vir1 { - compatible = "rockchip,rkcif-sditf"; - status = "disabled"; - rockchip,cif = <0x1a2>; - phandle = <0x477>; - }; - - edp@fded0000 { - power-domains = <0x60 0x1a>; - phy-names = "dp"; - clock-names = "dp\0pclk\0spdif\0hclk"; - resets = <0x02 0x3e4 0x02 0x3e3>; - interrupts = <0x00 0xa4 0x04>; - clocks = <0x02 0x214 0x02 0x213 0x02 0x215 0x05>; - compatible = "rockchip,rk3588-edp"; - status = "disabled"; - rockchip,grf = <0xd8>; - phys = <0x1af>; - reg = <0x00 0xfded0000 0x00 0x1000>; - phandle = <0x483>; - reset-names = "dp\0apb"; - - ports { - #address-cells = <0x01>; - #size-cells = <0x00>; - - port@0 { - #address-cells = <0x01>; - #size-cells = <0x00>; - reg = <0x00>; - - endpoint@1 { - remote-endpoint = <0x1b1>; - status = "disabled"; - reg = <0x01>; - phandle = <0xe4>; - }; - - endpoint@2 { - remote-endpoint = <0x1b2>; - status = "disabled"; - reg = <0x02>; - phandle = <0xec>; - }; - - endpoint@0 { - remote-endpoint = <0x1b0>; - status = "disabled"; - reg = <0x00>; - phandle = <0xde>; - }; - }; - - port@1 { - reg = <0x01>; - - endpoint { - phandle = <0x484>; - }; - }; - }; - }; - - qos@fdf67000 { - compatible = "syscon"; - reg = <0x00 0xfdf67000 0x00 0x20>; - phandle = <0x9c>; - }; - - qos@fdf64000 { - compatible = "syscon"; - reg = <0x00 0xfdf64000 0x00 0x20>; - phandle = <0x9b>; - }; - - npu-opp-table { - rockchip,pvtm-offset = <0x50>; - rockchip,pvtm-sample-time = <0x44c>; - rockchip,init-freq = <0xf4240>; - rockchip,pvtm-hw = <0x06>; - nvmem-cells = <0xb4 0xb5 0x21>; - rockchip,low-temp = <0x2710>; - rockchip,pvtm-voltage-sel-hw = <0x00 0x31f 0x00 0x320 0x333 0x01 0x334 0x34c 0x02 0x34d 0x365 0x03 0x366 0x37e 0x04 0x37f 0x270f 0x05>; - rockchip,pvtm-thermal-zone = "npu-thermal"; - rockchip,high-temp-max-freq = "\0\f5"; - rockchip,opp-clocks = <0x02 0x12a 0x02 0x12f>; - rockchip,pvtm-freq = "\0\f5"; - rockchip,pvtm-ref-temp = <0x19>; - low-volt-mem-read-margin = <0x04>; - volt-mem-read-margin = <0xd0bd8 0x01 0xbac48 0x02 0xa4cb8 0x03 0x78d98 0x04>; - compatible = "operating-points-v2"; - rockchip,low-temp-min-volt = <0xb71b0>; - rockchip,grf = <0xb6>; - nvmem-cell-names = "leakage\0opp-info\0specification_serial_number"; - rockchip,pvtm-voltage-sel = <0x00 0x32f 0x00 0x330 0x343 0x01 0x344 0x35c 0x02 0x35d 0x375 0x03 0x376 0x38e 0x04 0x38f 0x270f 0x05>; - phandle = <0xb1>; - rockchip,pvtm-temp-prop = <0xffffff8f 0xffffff8f>; - rockchip,temp-hysteresis = <0x1388>; - rockchip,high-temp = <0x14c08>; - rockchip,pvtm-pvtpll; - rockchip,supported-hw; - intermediate-threshold-freq = <0x7a120>; - rockchip,pvtm-volt = <0xb71b0>; - - opp-j-m-700000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; - opp-hz = <0x00 0x29b92700>; - opp-supported-hw = <0x06 0xffff>; - }; - - opp-300000000 { - opp-microvolt = <0xaae60 0xaae60 0xcf850 0xaae60 0xaae60 0xcf850>; - opp-microvolt-L4 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; - opp-microvolt-L2 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; - opp-hz = <0x00 0x11e1a300>; - opp-supported-hw = <0xf9 0xffff>; - opp-microvolt-L5 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; - opp-microvolt-L3 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; - opp-microvolt-L1 = <0xa7d8c 0xa7d8c 0xcf850 0xa7d8c 0xa7d8c 0xcf850>; - }; - - opp-500000000 { - opp-microvolt = <0xaae60 0xaae60 0xcf850 0xaae60 0xaae60 0xcf850>; - opp-microvolt-L4 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; - opp-microvolt-L2 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; - opp-hz = <0x00 0x1dcd6500>; - opp-supported-hw = <0xf9 0xffff>; - opp-microvolt-L5 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; - opp-microvolt-L3 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; - opp-microvolt-L1 = <0xa7d8c 0xa7d8c 0xcf850 0xa7d8c 0xa7d8c 0xcf850>; - }; - - opp-j-m-400000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; - opp-hz = <0x00 0x17d78400>; - opp-supported-hw = <0x06 0xffff>; - }; - - opp-700000000 { - opp-microvolt = <0xaae60 0xaae60 0xcf850 0xaae60 0xaae60 0xcf850>; - opp-microvolt-L4 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; - opp-hz = <0x00 0x29b92700>; - opp-supported-hw = <0xf9 0xffff>; - opp-microvolt-L5 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; - opp-microvolt-L3 = <0xa7d8c 0xa7d8c 0xcf850 0xa7d8c 0xa7d8c 0xcf850>; - }; - - opp-j-m-950000000 { - opp-microvolt = <0xcc77c 0xcc77c 0xcf850 0xcc77c 0xcc77c 0xcf850>; - opp-microvolt-L4 = <0xc042c 0xc042c 0xcf850 0xc042c 0xc042c 0xcf850>; - opp-microvolt-L2 = <0xc65d4 0xc65d4 0xcf850 0xc65d4 0xc65d4 0xcf850>; - opp-hz = <0x00 0x389fd980>; - opp-supported-hw = <0x06 0xffff>; - opp-microvolt-L5 = <0xbd358 0xbd358 0xcf850 0xbd358 0xbd358 0xcf850>; - opp-microvolt-L3 = <0xc3500 0xc3500 0xcf850 0xc3500 0xc3500 0xcf850>; - opp-microvolt-L1 = <0xc96a8 0xc96a8 0xcf850 0xc96a8 0xc96a8 0xcf850>; - }; - - opp-j-m-600000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; - opp-hz = <0x00 0x23c34600>; - opp-supported-hw = <0x06 0xffff>; - }; - - opp-900000000 { - opp-microvolt = <0xc3500 0xc3500 0xcf850 0xc3500 0xc3500 0xcf850>; - opp-microvolt-L4 = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; - opp-microvolt-L2 = <0xbd358 0xbd358 0xcf850 0xbd358 0xbd358 0xcf850>; - opp-hz = <0x00 0x35a4e900>; - opp-supported-hw = <0xf9 0xffff>; - opp-microvolt-L5 = <0xb40dc 0xb40dc 0xcf850 0xb40dc 0xb40dc 0xcf850>; - opp-microvolt-L3 = <0xba284 0xba284 0xcf850 0xba284 0xba284 0xcf850>; - opp-microvolt-L1 = <0xc042c 0xc042c 0xcf850 0xc042c 0xc042c 0xcf850>; - }; - - opp-j-m-800000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; - opp-hz = <0x00 0x2faf0800>; - opp-supported-hw = <0x06 0xffff>; - }; - - opp-400000000 { - opp-microvolt = <0xaae60 0xaae60 0xcf850 0xaae60 0xaae60 0xcf850>; - opp-microvolt-L4 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; - opp-microvolt-L2 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; - opp-hz = <0x00 0x17d78400>; - opp-supported-hw = <0xf9 0xffff>; - opp-microvolt-L5 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; - opp-microvolt-L3 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; - opp-microvolt-L1 = <0xa7d8c 0xa7d8c 0xcf850 0xa7d8c 0xa7d8c 0xcf850>; - }; - - opp-j-m-300000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; - opp-hz = <0x00 0x11e1a300>; - opp-supported-hw = <0x06 0xffff>; - }; - - opp-600000000 { - opp-microvolt = <0xaae60 0xaae60 0xcf850 0xaae60 0xaae60 0xcf850>; - opp-microvolt-L4 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; - opp-microvolt-L2 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; - opp-hz = <0x00 0x23c34600>; - opp-supported-hw = <0xf9 0xffff>; - opp-microvolt-L5 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; - opp-microvolt-L3 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; - opp-microvolt-L1 = <0xa7d8c 0xa7d8c 0xcf850 0xa7d8c 0xa7d8c 0xcf850>; - }; - - opp-1000000000 { - opp-microvolt = <0xcf850 0xcf850 0xcf850 0xcf850 0xcf850 0xcf850>; - opp-microvolt-L4 = <0xc3500 0xc3500 0xcf850 0xc3500 0xc3500 0xcf850>; - opp-microvolt-L2 = <0xc96a8 0xc96a8 0xcf850 0xc96a8 0xc96a8 0xcf850>; - opp-hz = <0x00 0x3b9aca00>; - opp-supported-hw = <0xf9 0xffff>; - opp-microvolt-L5 = <0xc042c 0xc042c 0xcf850 0xc042c 0xc042c 0xcf850>; - opp-microvolt-L3 = <0xc65d4 0xc65d4 0xcf850 0xc65d4 0xc65d4 0xcf850>; - opp-microvolt-L1 = <0xcc77c 0xcc77c 0xcf850 0xcc77c 0xcc77c 0xcf850>; - }; - - opp-j-m-500000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; - opp-hz = <0x00 0x1dcd6500>; - opp-supported-hw = <0x06 0xffff>; - }; - - opp-800000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; - opp-microvolt-L4 = <0xadf34 0xadf34 0xcf850 0xadf34 0xadf34 0xcf850>; - opp-microvolt-L2 = <0xb40dc 0xb40dc 0xcf850 0xb40dc 0xb40dc 0xcf850>; - opp-hz = <0x00 0x2faf0800>; - opp-supported-hw = <0xf9 0xffff>; - opp-microvolt-L5 = <0xaae60 0xaae60 0xcf850 0xaae60 0xaae60 0xcf850>; - opp-microvolt-L3 = <0xb1008 0xb1008 0xcf850 0xb1008 0xb1008 0xcf850>; - }; - }; - - syscon@fd590000 { - compatible = "rockchip,rk3588-bigcore0-grf\0syscon"; - reg = <0x00 0xfd590000 0x00 0x100>; - phandle = <0x26>; - }; - - syscon@fd5dc000 { - #address-cells = <0x01>; - #size-cells = <0x01>; - compatible = "rockchip,rk3588-usb2phy-grf\0syscon\0simple-mfd"; - reg = <0x00 0xfd5dc000 0x00 0x4000>; - phandle = <0x25e>; - - usb2-phy@c000 { - clock-output-names = "usb480m_phy3"; - clock-names = "phyclk"; - resets = <0x02 0xc004a 0x02 0x48b>; - interrupts = <0x00 0x188 0x04>; - clocks = <0x02 0x2b5>; - #clock-cells = <0x00>; - compatible = "rockchip,rk3588-usb2phy"; - status = "okay"; - reg = <0xc000 0x10>; - phandle = <0x6d>; - reset-names = "phy\0apb"; - - host-port { - phy-supply = <0x75>; - #phy-cells = <0x00>; - status = "okay"; - phandle = <0x6f>; - }; - }; - }; - - pcie-clk3 { - regulator-boot-on; - regulator-always-on; - regulator-name = "pcie_clk3"; - compatible = "regulator-fixed"; - status = "okay"; - phandle = <0x496>; - gpios = <0xfe 0x09 0x01>; - }; - - pwm@febf0030 { - pinctrl-names = "active"; - pinctrl-0 = <0x174>; - clock-names = "pwm\0pclk"; - interrupts = <0x00 0x15e 0x04 0x00 0x15f 0x04>; - clocks = <0x02 0x5a 0x02 0x59>; - #pwm-cells = <0x03>; - compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; - status = "disabled"; - reg = <0x00 0xfebf0030 0x00 0x10>; - phandle = <0x2dc>; - }; - - hwspinlock@fe5a0000 { - compatible = "rockchip,hwspinlock"; - reg = <0x00 0xfe5a0000 0x00 0x100>; - phandle = <0x29f>; - #hwlock-cells = <0x01>; - }; - - rkcif-mipi-lvds4-sditf-vir2 { - compatible = "rockchip,rkcif-sditf"; - status = "disabled"; - rockchip,cif = <0x1a1>; - phandle = <0x474>; - }; - - sram@10f000 { - #address-cells = <0x01>; - #size-cells = <0x01>; - compatible = "mmio-sram"; - ranges = <0x00 0x00 0x10f000 0x100>; - reg = <0x00 0x10f000 0x00 0x100>; - - sram@0 { - compatible = "arm,scmi-shmem"; - reg = <0x00 0x100>; - phandle = <0x46>; - }; - }; - - hdmirx-controller@fdee0000 { - power-domains = <0x60 0x1a>; - pinctrl-names = "default"; - pinctrl-0 = <0x1b3 0x1b4>; - clock-names = "aclk\0audio\0cr_para\0pclk\0ref\0hclk_s_hdmirx\0hclk_vo1"; - reg-names = "hdmirx_regs"; - resets = <0x02 0x3d9 0x02 0x3da 0x02 0x3db 0x02 0x3b7>; - interrupts = <0x00 0xb1 0x04 0x00 0x1b4 0x04 0x00 0xb3 0x04>; - clocks = <0x02 0x21a 0x02 0x21f 0x02 0x2b2 0x02 0x21b 0x02 0x21c 0x02 0x232 0x05>; - hpd-trigger-level = <0x01>; - #sound-dai-cells = <0x01>; - compatible = "rockchip,rk3588-hdmirx-ctrler\0rockchip,hdmirx-ctrler"; - status = "disabled"; - rockchip,grf = <0xc8>; - interrupt-names = "cec\0hdmi\0dma"; - hdmirx-det-gpios = <0xfe 0x1d 0x01>; - reg = <0x00 0xfdee0000 0x00 0x6000>; - phandle = <0x1eb>; - reset-names = "rst_a\0rst_p\0rst_ref\0rst_biu"; - rockchip,vo1_grf = <0xd8>; - }; - - qos@fdf61000 { - compatible = "syscon"; - reg = <0x00 0xfdf61000 0x00 0x20>; - phandle = <0x90>; - }; - - qos@fdf40600 { - compatible = "syscon"; - reg = <0x00 0xfdf40600 0x00 0x20>; - phandle = <0xa4>; - }; - - syscon@fd588000 { - compatible = "rockchip,rk3588-pmu0-grf\0syscon\0simple-mfd"; - reg = <0x00 0xfd588000 0x00 0x2000>; - phandle = <0x25a>; - - reboot-mode { - mode-normal = <0x5242c300>; - mode-loader = <0x5242c301>; - mode-quiescent = <0x5242c30e>; - mode-bootloader = <0x5242c301>; - mode-recovery = <0x5242c303>; - mode-watchdog = <0x5242c308>; - mode-ums = <0x5242c30c>; - mode-fastboot = <0x5242c309>; - offset = <0x80>; - compatible = "syscon-reboot-mode"; - mode-winusb = <0x5242c30f>; - phandle = <0x25b>; - mode-charge = <0x5242c30b>; - mode-panic = <0x5242c307>; - }; - }; - - syscon@fd5a4000 { - compatible = "rockchip,rk3588-vop-grf\0syscon"; - reg = <0x00 0xfd5a4000 0x00 0x2000>; - phandle = <0xd7>; - }; - - iommu@fdb60f00 { - power-domains = <0x60 0x16>; - clock-names = "aclk\0iface"; - interrupts = <0x00 0x72 0x04>; - clocks = <0x02 0x1ba 0x02 0x1b9>; - #iommu-cells = <0x00>; - compatible = "rockchip,iommu-v2"; - status = "okay"; - interrupt-names = "rga3_0_mmu"; - reg = <0x00 0xfdb60f00 0x00 0x100>; - phandle = <0xb9>; - }; - - pwm@febf0020 { - pinctrl-names = "active"; - pinctrl-0 = <0x173>; - clock-names = "pwm\0pclk"; - interrupts = <0x00 0x15e 0x04>; - clocks = <0x02 0x5a 0x02 0x59>; - #pwm-cells = <0x03>; - compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; - status = "disabled"; - reg = <0x00 0xfebf0020 0x00 0x10>; - phandle = <0x2db>; - }; - - rkispp@fdcd0000 { - power-domains = <0x60 0x1d>; - iommus = <0xd2>; - clock-names = "aclk_ispp\0hclk_ispp\0clk_ispp"; - assigned-clocks = <0x02 0x1d6>; - assigned-clock-rates = <0x5f5e100>; - interrupts = <0x00 0x8b 0x04>; - clocks = <0x02 0x1d5 0x02 0x1d6 0x02 0x1d7>; - compatible = "rockchip,rk3588-rkispp"; - status = "disabled"; - interrupt-names = "fec_irq"; - reg = <0x00 0xfdcd0000 0x00 0xf00>; - phandle = <0x5b>; - }; - - tsadc@fec00000 { - pinctrl-names = "gpio\0otpout"; - pinctrl-0 = <0x175>; - clock-names = "tsadc\0apb_pclk"; - rockchip,hw-tshut-polarity = <0x00>; - assigned-clocks = <0x02 0xaa>; - assigned-clock-rates = <0x1e8480>; - resets = <0x02 0xc1 0x02 0xc0>; - interrupts = <0x00 0x18d 0x04>; - rockchip,hw-tshut-mode = <0x00>; - clocks = <0x02 0xaa 0x02 0xa9>; - #thermal-sensor-cells = <0x01>; - compatible = "rockchip,rk3588-tsadc"; - pinctrl-1 = <0x176>; - status = "okay"; - reg = <0x00 0xfec00000 0x00 0x400>; - phandle = <0x5d>; - reset-names = "tsadc\0tsadc-apb"; - rockchip,hw-tshut-temp = <0x1d4c0>; - }; - - iommu@fdbb0800 { - power-domains = <0x60 0x15>; - clock-names = "aclk\0iface"; - interrupts = <0x00 0x75 0x04>; - clocks = <0x02 0x1aa 0x02 0x1a9>; - #iommu-cells = <0x00>; - compatible = "rockchip,iommu-v2"; - status = "okay"; - interrupt-names = "irq_iep_mmu"; - reg = <0x00 0xfdbb0800 0x00 0x100>; - phandle = <0xc1>; - }; - - phy@fed60000 { - clock-names = "ref\0apb"; - resets = <0x02 0x485 0x02 0xc003b 0x02 0xc003c 0x02 0xc003d>; - clocks = <0x02 0x2b5 0x02 0x267>; - #phy-cells = <0x00>; - compatible = "rockchip,rk3588-hdptx-phy"; - status = "disabled"; - rockchip,grf = <0x18a>; - reg = <0x00 0xfed60000 0x00 0x2000>; - phandle = <0x101>; - reset-names = "apb\0init\0cmn\0lane"; - }; - - pvtm@fda50000 { - #address-cells = <0x01>; - #size-cells = <0x00>; - compatible = "rockchip,rk3588-bigcore1-pvtm"; - reg = <0x00 0xfda50000 0x00 0x100>; - - pvtm@1 { - clock-names = "clk\0pclk"; - clocks = <0x02 0x2c8 0x02 0x17>; - reg = <0x01>; - }; - }; - - csi2-dcphy0 { - rockchip,hw = <0x2d 0x2e>; - phy-names = "dcphy0\0dcphy1"; - compatible = "rockchip,rk3588-csi2-dphy"; - status = "disabled"; - phys = <0x2f 0x30>; - phandle = <0x20d>; - }; - - mailbox@fece0000 { - clock-names = "pclk_mailbox"; - interrupts = <0x00 0x4d 0x04 0x00 0x4e 0x04 0x00 0x4f 0x04 0x00 0x50 0x04>; - clocks = <0x02 0x4e>; - #mbox-cells = <0x01>; - compatible = "rockchip,rk3588-mailbox\0rockchip,rk3368-mailbox"; - status = "disabled"; - reg = <0x00 0xfece0000 0x00 0x200>; - phandle = <0x2e9>; - }; - - rkcif-mipi-lvds3-sditf-vir3 { - compatible = "rockchip,rkcif-sditf"; - status = "disabled"; - rockchip,cif = <0x57>; - phandle = <0x23a>; - }; - - rkcif-mipi-lvds1-sditf { - compatible = "rockchip,rkcif-sditf"; - status = "disabled"; - rockchip,cif = <0x53>; - phandle = <0x22f>; - }; - - dfi@fe060000 { - rockchip,pmu_grf = <0x104>; - compatible = "rockchip,rk3588-dfi"; - status = "disabled"; - reg = <0x00 0xfe060000 0x00 0x10000>; - phandle = <0x40>; - }; - - iommu@fdca0000 { - power-domains = <0x60 0x17>; - clock-names = "aclk\0iface"; - interrupts = <0x00 0x6d 0x04>; - clocks = <0x02 0x49 0x02 0x4b>; - #iommu-cells = <0x00>; - compatible = "rockchip,iommu-av1"; - status = "okay"; - interrupt-names = "irq_av1d_mmu"; - reg = <0x00 0xfdca0000 0x00 0x600>; - phandle = <0xce>; - }; - - mipi5-csi2 { - rockchip,hw = <0x47 0x48 0x49 0x4a 0x4b 0x4c>; - compatible = "rockchip,rk3588-mipi-csi2"; - status = "disabled"; - phandle = <0x229>; - }; - - qos@fdf35600 { - compatible = "syscon"; - reg = <0x00 0xfdf35600 0x00 0x20>; - phandle = <0x8a>; - }; - - syscon@fd5e4000 { - compatible = "rockchip,rk3588-hdptxphy-grf\0syscon"; - reg = <0x00 0xfd5e4000 0x00 0x100>; - phandle = <0x1c7>; - }; - - iommu@fdba8800 { - power-domains = <0x60 0x15>; - clock-names = "aclk\0iface"; - interrupts = <0x00 0x7d 0x04>; - clocks = <0x02 0x1b0 0x02 0x1b1>; - #iommu-cells = <0x00>; - compatible = "rockchip,iommu-v2"; - status = "okay"; - interrupt-names = "irq_jpege2_mmu"; - reg = <0x00 0xfdba8800 0x00 0x40>; - phandle = <0xbf>; - }; - - mpp-srv { - rockchip,resetgroup-count = <0x01>; - rockchip,taskqueue-count = <0x0c>; - compatible = "rockchip,mpp-service"; - status = "okay"; - phandle = <0xb8>; - }; - - cspmu@fd10c000 { - compatible = "rockchip,cspmu"; - reg = <0x00 0xfd10c000 0x00 0x1000 0x00 0xfd10d000 0x00 0x1000 0x00 0xfd10e000 0x00 0x1000 0x00 0xfd10f000 0x00 0x1000 0x00 0xfd12c000 0x00 0x1000 0x00 0xfd12d000 0x00 0x1000 0x00 0xfd12e000 0x00 0x1000 0x00 0xfd12f000 0x00 0x1000>; - phandle = <0x48e>; - }; - - pwm@febf0010 { - pinctrl-names = "active"; - pinctrl-0 = <0x172>; - clock-names = "pwm\0pclk"; - interrupts = <0x00 0x15e 0x04>; - clocks = <0x02 0x5a 0x02 0x59>; - #pwm-cells = <0x03>; - compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; - status = "disabled"; - reg = <0x00 0xfebf0010 0x00 0x10>; - phandle = <0x2da>; - }; - - iommu@fdbef000 { - power-domains = <0x60 0x11>; - rockchip,shootdown-entire; - interrupts = <0x00 0x66 0x04 0x00 0x67 0x04>; - clocks = <0x02 0x1ca 0x02 0x1c9>; - rockchip,enable-cmd-retry; - #iommu-cells = <0x00>; - compatible = "rockchip,iommu-v2"; - rockchip,disable-mmu-reset; - status = "okay"; - interrupt-names = "irq_rkvenc1_mmu0\0irq_rkvenc1_mmu1"; - reg = <0x00 0xfdbef000 0x00 0x40 0x00 0xfdbef040 0x00 0x40>; - phandle = <0xc5>; - lock-names = "aclk\0iface"; - }; - - serial@feb60000 { - reg-io-width = <0x04>; - pinctrl-names = "default"; - pinctrl-0 = <0x162>; - clock-names = "baudclk\0apb_pclk"; - interrupts = <0x00 0x14e 0x04>; - clocks = <0x02 0xbf 0x02 0xad>; - compatible = "rockchip,rk3588-uart\0snps,dw-apb-uart"; - status = "disabled"; - reg = <0x00 0xfeb60000 0x00 0x100>; - phandle = <0x2cb>; - dmas = <0x7c 0x0c 0x7c 0x0d>; - reg-shift = <0x02>; - }; - - hdmiin-sound { - rockchip,jack-det; - rockchip,cpu = <0x1ec>; - rockchip,codec = <0x1eb 0x00>; - rockchip,bitclock-master = <0x1eb>; - rockchip,card-name = "rockchip,hdmiin"; - rockchip,format = "i2s"; - compatible = "rockchip,hdmi"; - phandle = <0x4ac>; - rockchip,frame-master = <0x1eb>; - rockchip,mclk-fs = <0x80>; - }; - - i2s@fddc8000 { - power-domains = <0x60 0x19>; - clock-names = "mclk_tx\0hclk"; - assigned-clocks = <0x02 0x1ff>; - assigned-clock-parents = <0x02 0x05>; - resets = <0x02 0x391>; - interrupts = <0x00 0xbc 0x04>; - clocks = <0x02 0x201 0x02 0x1fe>; - dma-names = "tx"; - #sound-dai-cells = <0x00>; - compatible = "rockchip,rk3588-i2s-tdm"; - rockchip,playback-only; - status = "disabled"; - reg = <0x00 0xfddc8000 0x00 0x1000>; - phandle = <0x47c>; - dmas = <0xf2 0x16>; - reset-names = "tx-m"; - }; - - pcie30-avdd0v75 { - regulator-max-microvolt = <0xb71b0>; - regulator-boot-on; - regulator-always-on; - regulator-min-microvolt = <0xb71b0>; - regulator-name = "pcie30_avdd0v75"; - compatible = "regulator-fixed"; - phandle = <0x4a7>; - vin-supply = <0x1df>; - }; - - timer { - interrupts = <0x01 0x0d 0xf04 0x01 0x0e 0xf04 0x01 0x0b 0xf04 0x01 0x0a 0xf04>; - compatible = "arm,armv8-timer"; - }; - - rockchip-suspend { - rockchip,sleep-debug-en = <0x01>; - rockchip,sleep-mode-config = <0x5000604>; - compatible = "rockchip,pm-rk3588"; - status = "okay"; - rockchip,wakeup-config = <0x100>; - phandle = <0x246>; - }; - - decompress@fea80000 { - clock-names = "aclk\0dclk\0pclk"; - resets = <0x02 0x118>; - interrupts = <0x00 0x55 0x04>; - clocks = <0x02 0x75 0x02 0x77 0x02 0x76>; - compatible = "rockchip,hw-decompress"; - status = "disabled"; - reg = <0x00 0xfea80000 0x00 0x1000>; - phandle = <0x2a3>; - reset-names = "dresetn"; - }; - - dma-controller@fea30000 { - clock-names = "apb_pclk"; - interrupts = <0x00 0x58 0x04 0x00 0x59 0x04>; - clocks = <0x02 0x79>; - arm,pl330-periph-burst; - compatible = "arm,pl330\0arm,primecell"; - reg = <0x00 0xfea30000 0x00 0x4000>; - phandle = <0xf1>; - #dma-cells = <0x01>; - }; - - pwm@febf0000 { - pinctrl-names = "active"; - pinctrl-0 = <0x171>; - clock-names = "pwm\0pclk"; - interrupts = <0x00 0x15e 0x04>; - clocks = <0x02 0x5a 0x02 0x59>; - #pwm-cells = <0x03>; - compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; - status = "disabled"; - reg = <0x00 0xfebf0000 0x00 0x10>; - phandle = <0x2d9>; - }; - - iommu@fdcd8f00 { - power-domains = <0x60 0x1d>; - clock-names = "aclk\0iface\0pclk"; - interrupts = <0x00 0x8e 0x04>; - clocks = <0x02 0x1d8 0x02 0x1d9 0x02 0x1da>; - #iommu-cells = <0x00>; - compatible = "rockchip,iommu-v2"; - rockchip,disable-mmu-reset; - status = "disabled"; - interrupt-names = "fec1_mmu"; - reg = <0x00 0xfdcd8f00 0x00 0x100>; - phandle = <0xd3>; - }; - - spdif-tx@fddb0000 { - power-domains = <0x60 0x19>; - clock-names = "mclk\0hclk"; - assigned-clocks = <0x02 0x205>; - assigned-clock-parents = <0x02 0x05>; - interrupts = <0x00 0xc3 0x04>; - clocks = <0x02 0x209 0x02 0x204>; - dma-names = "tx"; - #sound-dai-cells = <0x00>; - compatible = "rockchip,rk3588-spdif\0rockchip,rk3568-spdif"; - status = "disabled"; - reg = <0x00 0xfddb0000 0x00 0x1000>; - phandle = <0x1d5>; - dmas = <0xf1 0x06>; - }; - - rkisp1-vir2 { - rockchip,hw = <0x5a>; - compatible = "rockchip,rkisp-vir"; - status = "disabled"; - phandle = <0x241>; - }; - - pcie-clk1 { - regulator-boot-on; - regulator-always-on; - regulator-name = "pcie_clk1"; - compatible = "regulator-fixed"; - status = "okay"; - phandle = <0x494>; - vin-supply = <0x1cd>; - gpios = <0x181 0x15 0x01>; - }; - - jpege-core@fdba8000 { - power-domains = <0x60 0x15>; - iommus = <0xbf>; - rockchip,ccu = <0xbd>; - clock-names = "aclk_vcodec\0hclk_vcodec"; - assigned-clocks = <0x02 0x1b0>; - rockchip,normal-rates = <0x2367b880 0x00>; - assigned-clock-rates = <0x2367b880>; - resets = <0x02 0x2ce 0x02 0x2cf>; - interrupts = <0x00 0x7e 0x04>; - clocks = <0x02 0x1b0 0x02 0x1b1>; - rockchip,srv = <0xb8>; - rockchip,taskqueue-node = <0x02>; - rockchip,disable-auto-freq; - compatible = "rockchip,vpu-jpege-core"; - status = "okay"; - interrupt-names = "irq_jpege2"; - rockchip,skip-pmu-idle-request; - reg = <0x00 0xfdba8000 0x00 0x400>; - phandle = <0x26f>; - reset-names = "video_a\0video_h"; - }; - - qos@fdf66400 { - compatible = "syscon"; - reg = <0x00 0xfdf66400 0x00 0x20>; - phandle = <0x95>; - }; - - spdif-tx1-sound { - simple-audio-card,name = "rockchip,spdif-tx1"; - compatible = "simple-audio-card"; - status = "disabled"; - phandle = <0x49d>; - simple-audio-card,mclk-fs = <0x80>; - - simple-audio-card,cpu { - sound-dai = <0x1d7>; - }; - - simple-audio-card,codec { - sound-dai = <0x1d8>; - }; - }; - - mmc@fe2e0000 { - mmc-hs400-enhanced-strobe; - clock-names = "core\0bus\0axi\0block\0timer"; - assigned-clocks = <0x02 0x13b 0x02 0x13c 0x02 0x13a>; - bus-width = <0x08>; - non-removable; - no-sdio; - assigned-clock-rates = <0xbebc200 0x16e3600 0xbebc200>; - resets = <0x02 0x1f6 0x02 0x1f4 0x02 0x1f5 0x02 0x1f7 0x02 0x1f8>; - mmc-hs400-1_8v; - interrupts = <0x00 0xcd 0x04>; - clocks = <0x02 0x13a 0x02 0x138 0x02 0x139 0x02 0x13b 0x02 0x13c>; - no-sd; - compatible = "rockchip,rk3588-dwcmshc\0rockchip,dwcmshc-sdhci"; - status = "okay"; - reg = <0x00 0xfe2e0000 0x00 0x10000>; - phandle = <0x295>; - max-frequency = <0xbebc200>; - reset-names = "core\0bus\0axi\0block\0timer"; - }; - - dma-controller@fed10000 { - clock-names = "apb_pclk"; - interrupts = <0x00 0x5a 0x04 0x00 0x5b 0x04>; - clocks = <0x02 0x7a>; - arm,pl330-periph-burst; - compatible = "arm,pl330\0arm,primecell"; - reg = <0x00 0xfed10000 0x00 0x4000>; - phandle = <0xf2>; - #dma-cells = <0x01>; - }; - - iommu@fc900000 { - interrupts = <0x00 0x171 0x04 0x00 0x173 0x04 0x00 0x176 0x04 0x00 0x16f 0x04>; - #iommu-cells = <0x01>; - compatible = "arm,smmu-v3"; - status = "disabled"; - interrupt-names = "eventq\0gerror\0priq\0cmdq-sync"; - reg = <0x00 0xfc900000 0x00 0x200000>; - phandle = <0x256>; - }; - - mailbox@fec70000 { - clock-names = "pclk_mailbox"; - interrupts = <0x00 0x45 0x04 0x00 0x46 0x04 0x00 0x47 0x04 0x00 0x48 0x04>; - clocks = <0x02 0x4d>; - #mbox-cells = <0x01>; - compatible = "rockchip,rk3588-mailbox\0rockchip,rk3368-mailbox"; - status = "disabled"; - reg = <0x00 0xfec70000 0x00 0x200>; - phandle = <0x2de>; - }; - - pcie@fe150000 { - power-domains = <0x60 0x22>; - vpcie3v3-supply = <0x1b8>; - #address-cells = <0x03>; - rockchip,pipe-grf = <0x76>; - phy-names = "pcie-phy"; - bus-range = <0x00 0x0f>; - clock-names = "aclk_mst\0aclk_slv\0aclk_dbi\0pclk\0aux\0pipe"; - reg-names = "pcie-apb\0pcie-dbi"; - num-ob-windows = <0x10>; - resets = <0x02 0x20d 0x02 0x21c>; - interrupts = <0x00 0x107 0x04 0x00 0x106 0x04 0x00 0x105 0x04 0x00 0x104 0x04 0x00 0x103 0x04>; - clocks = <0x02 0x14e 0x02 0x153 0x02 0x149 0x02 0x158 0x02 0x15e 0x02 0x183>; - interrupt-map = <0x00 0x00 0x00 0x01 0x1b5 0x00 0x00 0x00 0x00 0x02 0x1b5 0x01 0x00 0x00 0x00 0x03 0x1b5 0x02 0x00 0x00 0x00 0x04 0x1b5 0x03>; - #size-cells = <0x02>; - max-link-speed = <0x03>; - device_type = "pci"; - interrupt-map-mask = <0x00 0x00 0x00 0x07>; - reset-gpios = <0x10d 0x0e 0x00>; - num-lanes = <0x01>; - compatible = "rockchip,rk3588-pcie\0snps,dw-pcie"; - ranges = <0x800 0x00 0xf0000000 0x00 0xf0000000 0x00 0x100000 0x81000000 0x00 0xf0100000 0x00 0xf0100000 0x00 0x100000 0x82000000 0x00 0xf0200000 0x00 0xf0200000 0x00 0xe00000 0xc3000000 0x09 0x00 0x09 0x00 0x00 0x40000000>; - msi-map = <0x00 0x1b6 0x00 0x1000>; - #interrupt-cells = <0x01>; - status = "okay"; - interrupt-names = "sys\0pmc\0msg\0legacy\0err"; - phys = <0x1b7>; - num-viewport = <0x08>; - reg = <0x00 0xfe150000 0x00 0x10000 0x0a 0x40000000 0x00 0x400000>; - linux,pci-domain = <0x00>; - phandle = <0x485>; - reset-names = "pcie\0periph"; - num-ib-windows = <0x10>; - - legacy-interrupt-controller { - #address-cells = <0x00>; - interrupts = <0x00 0x104 0x01>; - interrupt-parent = <0x01>; - #interrupt-cells = <0x01>; - phandle = <0x1b5>; - interrupt-controller; - }; - }; - - rng@fe378000 { - clock-names = "hclk_trng"; - resets = <0x11a 0x30>; - interrupts = <0x00 0x190 0x04>; - clocks = <0x0e 0x0c>; - compatible = "rockchip,trngv1"; - status = "okay"; - reg = <0x00 0xfe378000 0x00 0x200>; - phandle = <0x297>; - reset-names = "reset"; - }; - - sata@fe220000 { - phy-names = "sata-phy"; - clock-names = "sata\0pmalive\0rxoob\0ref\0asic"; - interrupts = <0x00 0x112 0x04>; - clocks = <0x02 0x172 0x02 0x16f 0x02 0x175 0x02 0x164 0x02 0x17f>; - compatible = "rockchip,rk-ahci\0snps,dwc-ahci"; - status = "disabled"; - interrupt-names = "hostc"; - phys = <0x1bc 0x01>; - reg = <0x00 0xfe220000 0x00 0x1000>; - phandle = <0x48a>; - ports-implemented = <0x01>; - }; - - rkcif-mipi-lvds5 { - iommus = <0x50>; - rockchip,hw = <0x4f>; - compatible = "rockchip,rkcif-mipi-lvds"; - status = "disabled"; - phandle = <0x1a2>; - }; - - vcc-sata-pwr-en-regulator { - regulator-max-microvolt = <0x325aa0>; - regulator-boot-on; - gpio = <0x182 0x0c 0x00>; - regulator-always-on; - enable-active-high; - regulator-min-microvolt = <0x325aa0>; - regulator-name = "vcc_sata_pwr_en"; - startup-delay-us = <0x1388>; - compatible = "regulator-fixed"; - status = "okay"; - phandle = <0x4a3>; - vin-supply = <0x1cd>; - }; - - pwm-fan { - cooling-levels = <0x32 0x32 0x64 0x96 0xc8 0xff>; - rockchip,temp-trips = <0xc350 0x01 0xd6d8 0x02 0xea60 0x03 0xfde8 0x04 0x11170 0x05>; - compatible = "pwm-fan"; - phandle = <0x4ad>; - pwms = <0x1ed 0x00 0xc350 0x00>; - #cooling-cells = <0x02>; - fan-supply = <0x78>; - }; - - qos@fdf3e200 { - compatible = "syscon"; - reg = <0x00 0xfdf3e200 0x00 0x20>; - phandle = <0xab>; - }; - - spdif-tx@fe4e0000 { - power-domains = <0x60 0x26>; - pinctrl-names = "default"; - pinctrl-0 = <0x142>; - clock-names = "mclk\0hclk"; - assigned-clocks = <0x02 0x3f>; - assigned-clock-parents = <0x02 0x05>; - interrupts = <0x00 0xc1 0x04>; - clocks = <0x02 0x41 0x02 0x3e>; - dma-names = "tx"; - #sound-dai-cells = <0x00>; - compatible = "rockchip,rk3588-spdif\0rockchip,rk3568-spdif"; - status = "disabled"; - reg = <0x00 0xfe4e0000 0x00 0x1000>; - phandle = <0x29d>; - dmas = <0x7c 0x05>; - }; - - vad@fe4d0000 { - rockchip,det-channel = <0x00>; - rockchip,audio-src = <0x00>; - clock-names = "hclk"; - reg-names = "vad"; - interrupts = <0x00 0xca 0x04>; - clocks = <0x02 0x2a0>; - #sound-dai-cells = <0x00>; - compatible = "rockchip,rk3588-vad"; - status = "disabled"; - rockchip,mode = <0x00>; - reg = <0x00 0xfe4d0000 0x00 0x1000>; - phandle = <0x29c>; - }; - - jpegd@fdb90000 { - power-domains = <0x60 0x15>; - iommus = <0xbb>; - clock-names = "aclk_vcodec\0hclk_vcodec"; - assigned-clocks = <0x02 0x1b4>; - rockchip,normal-rates = <0x23c34600 0x00>; - assigned-clock-rates = <0x23c34600>; - resets = <0x02 0x2d2 0x02 0x2d3>; - interrupts = <0x00 0x81 0x04>; - clocks = <0x02 0x1b4 0x02 0x1b5>; - rockchip,srv = <0xb8>; - rockchip,taskqueue-node = <0x01>; - compatible = "rockchip,rkv-jpeg-decoder-v1"; - status = "okay"; - interrupt-names = "irq_jpegd"; - rockchip,skip-pmu-idle-request; - reg = <0x00 0xfdb90000 0x00 0x400>; - phandle = <0x26c>; - reset-names = "video_a\0video_h"; - }; - - cpuinfo { - nvmem-cells = <0x2a 0x2b 0x2c>; - compatible = "rockchip,cpuinfo"; - nvmem-cell-names = "id\0cpu-version\0cpu-code"; - }; - - qos@fdf60400 { - compatible = "syscon"; - reg = <0x00 0xfdf60400 0x00 0x20>; - phandle = <0x8f>; - }; - - spi@feb20000 { - pinctrl-names = "default"; - #address-cells = <0x01>; - num-cs = <0x01>; - pinctrl-0 = <0x154 0x155>; - clock-names = "spiclk\0apb_pclk"; - assigned-clocks = <0x02 0xa5>; - assigned-clock-rates = <0xbebc200>; - interrupts = <0x00 0x148 0x04>; - clocks = <0x02 0xa5 0x02 0xa0>; - #size-cells = <0x00>; - dma-names = "tx\0rx"; - compatible = "rockchip,rk3066-spi"; - status = "okay"; - reg = <0x00 0xfeb20000 0x00 0x1000>; - phandle = <0x2ad>; - dmas = <0xf1 0x0f 0xf1 0x10>; - - rk806single@0 { - vcc11-supply = <0x15b>; - pinctrl-names = "default\0pmic-power-off"; - vcc12-supply = <0x78>; - vcc13-supply = <0x15c>; - vcc14-supply = <0x15c>; - pinctrl-0 = <0x156 0x157 0x158 0x159>; - interrupts = <0x07 0x08>; - spi-max-frequency = <0xf4240>; - interrupt-parent = <0x7b>; - low_voltage_threshold = <0xbb8>; - vcca-supply = <0x78>; - vcc1-supply = <0x78>; - pmic-reset-func = <0x01>; - vcc2-supply = <0x78>; - hotdie_temperture_threshold = <0x73>; - compatible = "rockchip,rk806"; - vcc3-supply = <0x78>; - pinctrl-1 = <0x15a>; - vcc4-supply = <0x78>; - vcc5-supply = <0x78>; - reg = <0x00>; - phandle = <0x2ae>; - vcc6-supply = <0x78>; - shutdown_voltage_threshold = <0xa8c>; - vcc7-supply = <0x78>; - vcc8-supply = <0x78>; - shutdown_temperture_threshold = <0xa0>; - vcc9-supply = <0x78>; - vcc10-supply = <0x78>; - - pinctrl_rk806 { - gpio-controller; - phandle = <0x2af>; - #gpio-cells = <0x02>; - - rk806_dvs2_rst { - function = "pin_fun3"; - pins = "gpio_pwrctrl2"; - phandle = <0x2b4>; - }; - - rk806_dvs3_null { - function = "pin_fun0"; - pins = "gpio_pwrctrl3"; - phandle = <0x159>; - }; - - rk806_dvs3_dvs { - function = "pin_fun4"; - pins = "gpio_pwrctrl3"; - phandle = <0x2ba>; - }; - - rk806_dvs3_rst { - function = "pin_fun3"; - pins = "gpio_pwrctrl3"; - phandle = <0x2b9>; - }; - - rk806_dvs2_null { - function = "pin_fun0"; - pins = "gpio_pwrctrl2"; - phandle = <0x158>; - }; - - rk806_dvs1_pwrdn { - function = "pin_fun2"; - pins = "gpio_pwrctrl1"; - phandle = <0x15a>; - }; - - rk806_dvs1_slp { - function = "pin_fun1"; - pins = "gpio_pwrctrl1"; - phandle = <0x2b0>; - }; - - rk806_dvs1_null { - function = "pin_fun0"; - pins = "gpio_pwrctrl2"; - phandle = <0x157>; - }; - - rk806_dvs3_gpio { - function = "pin_fun5"; - pins = "gpio_pwrctrl3"; - phandle = <0x2bb>; - }; - - rk806_dvs2_gpio { - function = "pin_fun5"; - pins = "gpio_pwrctrl2"; - phandle = <0x2b6>; - }; - - rk806_dvs2_slp { - function = "pin_fun1"; - pins = "gpio_pwrctrl2"; - phandle = <0x2b2>; - }; - - rk806_dvs2_pwrdn { - function = "pin_fun2"; - pins = "gpio_pwrctrl2"; - phandle = <0x2b3>; - }; - - rk806_dvs1_rst { - function = "pin_fun3"; - pins = "gpio_pwrctrl1"; - phandle = <0x2b1>; - }; - - rk806_dvs3_slp { - function = "pin_fun1"; - pins = "gpio_pwrctrl3"; - phandle = <0x2b7>; - }; - - rk806_dvs2_dvs { - function = "pin_fun4"; - pins = "gpio_pwrctrl2"; - phandle = <0x2b5>; - }; - - rk806_dvs3_pwrdn { - function = "pin_fun2"; - pins = "gpio_pwrctrl3"; - phandle = <0x2b8>; - }; - }; - - pwrkey { - status = "okay"; - }; - - regulators { - - PLDO_REG2 { - regulator-max-microvolt = <0x1b7740>; - regulator-boot-on; - regulator-always-on; - regulator-min-microvolt = <0x1b7740>; - regulator-name = "vcc_1v8_s0"; - phandle = <0x177>; - - regulator-state-mem { - regulator-off-in-suspend; - regulator-suspend-microvolt = <0x1b7740>; - }; - }; - - DCDC_REG4 { - regulator-max-microvolt = <0xe7ef0>; - regulator-boot-on; - regulator-init-microvolt = <0xb71b0>; - regulator-always-on; - regulator-min-microvolt = <0x86470>; - regulator-name = "vdd_vdenc_s0"; - regulator-ramp-delay = <0x30d4>; - phandle = <0x2bc>; - - regulator-state-mem { - regulator-off-in-suspend; - }; - }; - - DCDC_REG2 { - regulator-max-microvolt = <0xe7ef0>; - regulator-boot-on; - regulator-always-on; - regulator-min-microvolt = <0x86470>; - regulator-name = "vdd_cpu_lit_s0"; - regulator-ramp-delay = <0x30d4>; - phandle = <0x12>; - - regulator-state-mem { - regulator-off-in-suspend; - }; - }; - - NLDO_REG4 { - regulator-max-microvolt = <0xcf850>; - regulator-boot-on; - regulator-always-on; - regulator-min-microvolt = <0xcf850>; - regulator-name = "vdd_0v85_s0"; - phandle = <0x2c6>; - - regulator-state-mem { - regulator-off-in-suspend; - }; - }; - - DCDC_REG9 { - regulator-boot-on; - regulator-always-on; - regulator-name = "vddq_ddr_s0"; - phandle = <0x2bf>; - - regulator-state-mem { - regulator-off-in-suspend; - }; - }; - - NLDO_REG2 { - regulator-max-microvolt = <0xcf850>; - regulator-boot-on; - regulator-always-on; - regulator-min-microvolt = <0xcf850>; - regulator-name = "vdd_ddr_pll_s0"; - phandle = <0x2c5>; - - regulator-state-mem { - regulator-off-in-suspend; - regulator-suspend-microvolt = <0xcf850>; - }; - }; - - PLDO_REG5 { - regulator-max-microvolt = <0x325aa0>; - regulator-boot-on; - regulator-always-on; - regulator-min-microvolt = <0x1b7740>; - regulator-name = "vccio_sd_s0"; - phandle = <0x118>; - - regulator-state-mem { - regulator-off-in-suspend; - }; - }; - - DCDC_REG7 { - regulator-max-microvolt = <0x1e8480>; - regulator-boot-on; - regulator-always-on; - regulator-min-microvolt = <0x1e8480>; - regulator-name = "vdd_2v0_pldo_s3"; - phandle = <0x15b>; - - regulator-state-mem { - regulator-suspend-microvolt = <0x1e8480>; - regulator-on-in-suspend; - }; - }; - - PLDO_REG3 { - regulator-max-microvolt = <0x124f80>; - regulator-boot-on; - regulator-always-on; - regulator-min-microvolt = <0x124f80>; - regulator-name = "avdd_1v2_s0"; - phandle = <0x2c1>; - - regulator-state-mem { - regulator-off-in-suspend; - }; - }; - - DCDC_REG5 { - regulator-max-microvolt = <0xdbba0>; - regulator-boot-on; - regulator-always-on; - regulator-min-microvolt = <0xa4cb8>; - regulator-name = "vdd_ddr_s0"; - regulator-ramp-delay = <0x30d4>; - phandle = <0x42>; - - regulator-state-mem { - regulator-off-in-suspend; - regulator-suspend-microvolt = <0xcf850>; - }; - }; - - DCDC_REG10 { - regulator-max-microvolt = <0x1b7740>; - regulator-boot-on; - regulator-always-on; - regulator-min-microvolt = <0x1b7740>; - regulator-name = "vcc_1v8_s3"; - phandle = <0x2c0>; - - regulator-state-mem { - regulator-suspend-microvolt = <0x1b7740>; - regulator-on-in-suspend; - }; - }; - - PLDO_REG1 { - regulator-max-microvolt = <0x1b7740>; - regulator-boot-on; - regulator-always-on; - regulator-min-microvolt = <0x1b7740>; - regulator-name = "avcc_1v8_s0"; - phandle = <0x1de>; - - regulator-state-mem { - regulator-off-in-suspend; - }; - }; - - DCDC_REG3 { - regulator-max-microvolt = <0xb71b0>; - regulator-boot-on; - regulator-always-on; - regulator-min-microvolt = <0xa4cb8>; - regulator-name = "vdd_log_s0"; - regulator-ramp-delay = <0x30d4>; - phandle = <0x43>; - - regulator-state-mem { - regulator-suspend-microvolt = <0xb71b0>; - regulator-on-in-suspend; - }; - }; - - DCDC_REG1 { - regulator-max-microvolt = <0xe7ef0>; - regulator-boot-on; - regulator-enable-ramp-delay = <0x190>; - regulator-min-microvolt = <0x86470>; - regulator-name = "vdd_gpu_s0"; - regulator-ramp-delay = <0x30d4>; - phandle = <0x62>; - - regulator-state-mem { - regulator-off-in-suspend; - }; - }; - - NLDO_REG5 { - regulator-max-microvolt = <0xb71b0>; - regulator-boot-on; - regulator-always-on; - regulator-min-microvolt = <0xb71b0>; - regulator-name = "vdd_0v75_s0"; - phandle = <0x2c7>; - - regulator-state-mem { - regulator-off-in-suspend; - }; - }; - - NLDO_REG3 { - regulator-max-microvolt = <0xb71b0>; - regulator-boot-on; - regulator-always-on; - regulator-min-microvolt = <0xb71b0>; - regulator-name = "avdd_0v75_s0"; - phandle = <0x1df>; - - regulator-state-mem { - regulator-off-in-suspend; - }; - }; - - PLDO_REG6 { - regulator-max-microvolt = <0x1b7740>; - regulator-boot-on; - regulator-always-on; - regulator-min-microvolt = <0x1b7740>; - regulator-name = "pldo6_s3"; - phandle = <0x2c3>; - - regulator-state-mem { - regulator-suspend-microvolt = <0x1b7740>; - regulator-on-in-suspend; - }; - }; - - DCDC_REG8 { - regulator-max-microvolt = <0x325aa0>; - regulator-boot-on; - regulator-always-on; - regulator-min-microvolt = <0x325aa0>; - regulator-name = "vcc_3v3_s3"; - phandle = <0x2be>; - - regulator-state-mem { - regulator-suspend-microvolt = <0x325aa0>; - regulator-on-in-suspend; - }; - }; - - NLDO_REG1 { - regulator-max-microvolt = <0xb71b0>; - regulator-boot-on; - regulator-always-on; - regulator-min-microvolt = <0xb71b0>; - regulator-name = "vdd_0v75_s3"; - phandle = <0x2c4>; - - regulator-state-mem { - regulator-suspend-microvolt = <0xb71b0>; - regulator-on-in-suspend; - }; - }; - - PLDO_REG4 { - regulator-max-microvolt = <0x325aa0>; - regulator-boot-on; - regulator-always-on; - regulator-min-microvolt = <0x325aa0>; - regulator-name = "vcc_3v3_s0"; - phandle = <0x2c2>; - - regulator-state-mem { - regulator-off-in-suspend; - }; - }; - - DCDC_REG6 { - regulator-boot-on; - regulator-always-on; - regulator-name = "vdd2_ddr_s3"; - phandle = <0x2bd>; - - regulator-state-mem { - regulator-on-in-suspend; - }; - }; - }; - }; - }; - - usbhost3_0 { - #address-cells = <0x02>; - clock-names = "ref\0suspend\0bus\0utmi\0php\0pipe"; - clocks = <0x02 0x179 0x02 0x178 0x02 0x177 0x02 0x17a 0x02 0x166 0x02 0x181>; - #size-cells = <0x02>; - compatible = "rockchip,rk3588-dwc3\0rockchip,rk3399-dwc3"; - ranges; - status = "disabled"; - phandle = <0x258>; - - usb@fcd00000 { - snps,dis_enblslpm_quirk; - phy-names = "usb3-phy"; - snps,dis-u2-freeclk-exists-quirk; - phy_type = "utmi_wide"; - resets = <0x02 0x237>; - interrupts = <0x00 0xde 0x04>; - snps,dis_rxdet_inp3_quirk; - compatible = "snps,dwc3"; - snps,parkmode-disable-hs-quirk; - snps,dis-del-phy-power-chg-quirk; - status = "disabled"; - snps,parkmode-disable-ss-quirk; - phys = <0x70 0x04>; - reg = <0x00 0xfcd00000 0x00 0x400000>; - phandle = <0x259>; - dr_mode = "host"; - reset-names = "usb3-host"; - snps,dis-tx-ipgap-linecheck-quirk; - }; - }; - - pcie@fe190000 { - #address-cells = <0x03>; - rockchip,pipe-grf = <0x76>; - phy-names = "pcie-phy"; - bus-range = <0x40 0x4f>; - clock-names = "aclk_mst\0aclk_slv\0aclk_dbi\0pclk\0aux\0pipe"; - reg-names = "pcie-apb\0pcie-dbi"; - num-ob-windows = <0x08>; - resets = <0x02 0x211 0x02 0x220>; - interrupts = <0x00 0xfd 0x04 0x00 0xfc 0x04 0x00 0xfb 0x04 0x00 0xfa 0x04 0x00 0xf9 0x04>; - clocks = <0x02 0x152 0x02 0x157 0x02 0x14d 0x02 0x15d 0x02 0x162 0x02 0x182>; - interrupt-map = <0x00 0x00 0x00 0x01 0x107 0x00 0x00 0x00 0x00 0x02 0x107 0x01 0x00 0x00 0x00 0x03 0x107 0x02 0x00 0x00 0x00 0x04 0x107 0x03>; - #size-cells = <0x02>; - max-link-speed = <0x02>; - device_type = "pci"; - interrupt-map-mask = <0x00 0x00 0x00 0x07>; - num-lanes = <0x01>; - compatible = "rockchip,rk3588-pcie\0snps,dw-pcie"; - ranges = <0x800 0x00 0xf4000000 0x00 0xf4000000 0x00 0x100000 0x81000000 0x00 0xf4100000 0x00 0xf4100000 0x00 0x100000 0x82000000 0x00 0xf4200000 0x00 0xf4200000 0x00 0xe00000 0xc3000000 0x0a 0x00 0x0a 0x00 0x00 0x40000000>; - msi-map = <0x4000 0x106 0x4000 0x1000>; - #interrupt-cells = <0x01>; - status = "disabled"; - interrupt-names = "sys\0pmc\0msg\0legacy\0err"; - phys = <0x108 0x02>; - num-viewport = <0x04>; - reg = <0x00 0xfe190000 0x00 0x10000 0x0a 0x41000000 0x00 0x400000>; - linux,pci-domain = <0x04>; - phandle = <0x28d>; - reset-names = "pcie\0periph"; - num-ib-windows = <0x08>; - - legacy-interrupt-controller { - #address-cells = <0x00>; - interrupts = <0x00 0xfa 0x01>; - interrupt-parent = <0x01>; - #interrupt-cells = <0x01>; - phandle = <0x107>; - interrupt-controller; - }; - }; - - rkcif-mipi-lvds3-sditf-vir1 { - compatible = "rockchip,rkcif-sditf"; - status = "disabled"; - rockchip,cif = <0x57>; - phandle = <0x238>; - }; - - aliases { - i2c3 = "/i2c@feab0000"; - pwm9 = "/pwm@febe0010"; - pwm14 = "/pwm@febf0020"; - spi2 = "/spi@feb20000"; - usbdp0 = "/phy@fed80000"; - gpio0 = "/pinctrl/gpio@fd8a0000"; - dsi1 = "/dsi@fde30000"; - hdmi1 = "/hdmi@fdea0000"; - serial7 = "/serial@feba0000"; - i2c1 = "/i2c@fea90000"; - pwm7 = "/pwm@febd0030"; - pwm12 = "/pwm@febf0000"; - jpege3 = "/jpege-core@fdbac000"; - spi0 = "/spi@feb00000"; - hdptx1 = "/phy@fed70000"; - csi2dphy5 = "/csi2-dphy5"; - serial5 = "/serial@feb80000"; - csi2dcphy1 = "/csi2-dcphy1"; - pwm5 = "/pwm@febd0010"; - mmc1 = "/mmc@fe2c0000"; - pwm10 = "/pwm@febe0020"; - jpege1 = "/jpege-core@fdba4000"; - rkcif_mipi_lvds4 = "/rkcif-mipi-lvds4"; - i2c8 = "/i2c@feca0000"; - dp0 = "/dp@fde50000"; - csi2dphy3 = "/csi2-dphy3"; - serial3 = "/serial@feb60000"; - edp0 = "/edp@fdec0000"; - pwm3 = "/pwm@fd8b0030"; - hdcp1 = "/hdcp@fde70000"; - rkcif_mipi_lvds2 = "/rkcif-mipi-lvds2"; - i2c6 = "/i2c@fec80000"; - csi2dphy1 = "/csi2-dphy1"; - serial1 = "/serial@feb40000"; - pwm1 = "/pwm@fd8b0010"; - rkvenc0 = "/rkvenc-core@fdbd0000"; - spi5 = "/spi@fe2b0000"; - gpio3 = "/pinctrl/gpio@fec40000"; - hdptxhdmi1 = "/hdmiphy@fed70000"; - rkcif_mipi_lvds0 = "/rkcif-mipi-lvds"; - i2c4 = "/i2c@feac0000"; - ethernet1 = "/ethernet@fe1c0000"; - rkvdec0 = "/rkvdec-core@fdc38000"; - pwm15 = "/pwm@febf0030"; - hdmirx0 = "/hdmirx-controller@fdee0000"; - spi3 = "/spi@feb30000"; - usbdp1 = "/phy@fed90000"; - gpio1 = "/pinctrl/gpio@fec20000"; - serial8 = "/serial@febb0000"; - i2c2 = "/i2c@feaa0000"; - pwm8 = "/pwm@febe0000"; - pwm13 = "/pwm@febf0010"; - spi1 = "/spi@feb10000"; - dsi0 = "/dsi@fde20000"; - hdmi0 = "/hdmi@fde80000"; - serial6 = "/serial@feb90000"; - i2c0 = "/i2c@fd880000"; - pwm6 = "/pwm@febd0020"; - mmc2 = "/mmc@fe2d0000"; - pwm11 = "/pwm@febe0030"; - jpege2 = "/jpege-core@fdba8000"; - hdptx0 = "/phy@fed60000"; - rkcif_mipi_lvds5 = "/rkcif-mipi-lvds5"; - dp1 = "/dp@fde60000"; - csi2dphy4 = "/csi2-dphy4"; - serial4 = "/serial@feb70000"; - edp1 = "/edp@fded0000"; - csi2dcphy0 = "/csi2-dcphy0"; - pwm4 = "/pwm@febd0000"; - mmc0 = "/mmc@fe2e0000"; - jpege0 = "/jpege-core@fdba0000"; - rkcif_mipi_lvds3 = "/rkcif-mipi-lvds3"; - i2c7 = "/i2c@fec90000"; - csi2dphy2 = "/csi2-dphy2"; - serial2 = "/serial@feb50000"; - pwm2 = "/pwm@fd8b0020"; - rkvenc1 = "/rkvenc-core@fdbe0000"; - gpio4 = "/pinctrl/gpio@fec50000"; - hdcp0 = "/hdcp@fde40000"; - rkcif_mipi_lvds1 = "/rkcif-mipi-lvds1"; - i2c5 = "/i2c@fead0000"; - csi2dphy0 = "/csi2-dphy0"; - serial0 = "/serial@fd890000"; - rkvdec1 = "/rkvdec-core@fdc48000"; - pwm0 = "/pwm@fd8b0000"; - spi4 = "/spi@fecb0000"; - gpio2 = "/pinctrl/gpio@fec30000"; - hdptxhdmi0 = "/hdmiphy@fed60000"; - serial9 = "/serial@febc0000"; - }; - - spdif-tx@fdde8000 { - power-domains = <0x60 0x1a>; - clock-names = "mclk\0hclk"; - assigned-clocks = <0x02 0x259>; - assigned-clock-parents = <0x02 0x05>; - interrupts = <0x00 0xc5 0x04>; - clocks = <0x02 0x25c 0x02 0x258>; - dma-names = "tx"; - #sound-dai-cells = <0x00>; - compatible = "rockchip,rk3588-spdif\0rockchip,rk3568-spdif"; - status = "disabled"; - reg = <0x00 0xfdde8000 0x00 0x1000>; - phandle = <0x47d>; - dmas = <0xf1 0x08>; - }; - - i2s@fe490000 { - power-domains = <0x60 0x26>; - pinctrl-names = "default\0idle\0clk"; - pinctrl-2 = <0x12d 0x12e>; - pinctrl-0 = <0x12a 0x12b>; - clock-names = "i2s_clk\0i2s_hclk"; - assigned-clocks = <0x02 0x24>; - assigned-clock-parents = <0x02 0x05>; - interrupts = <0x00 0xb6 0x04>; - clocks = <0x02 0x27 0x02 0x22>; - dma-names = "tx\0rx"; - #sound-dai-cells = <0x00>; - compatible = "rockchip,rk3588-i2s\0rockchip,rk3066-i2s"; - pinctrl-1 = <0x12c>; - status = "disabled"; - reg = <0x00 0xfe490000 0x00 0x1000>; - phandle = <0x298>; - dmas = <0xf1 0x00 0xf1 0x01>; - rockchip,clk-trcm = <0x01>; - }; - - syscon@fd5d0000 { - #address-cells = <0x01>; - #size-cells = <0x01>; - compatible = "rockchip,rk3588-usb2phy-grf\0syscon\0simple-mfd"; - reg = <0x00 0xfd5d0000 0x00 0x4000>; - phandle = <0x18b>; - - usb2-phy@0 { - clock-output-names = "usb480m_phy0"; - clock-names = "phyclk"; - resets = <0x02 0xc0047 0x02 0x488>; - interrupts = <0x00 0x189 0x04>; - clocks = <0x02 0x2b5>; - #clock-cells = <0x00>; - rockchip,usbctrl-grf = <0x74>; - compatible = "rockchip,rk3588-usb2phy"; - status = "okay"; - reg = <0x00 0x10>; - phandle = <0x18d>; - reset-names = "phy\0apb"; - - otg-port { - #phy-cells = <0x00>; - rockchip,typec-vbus-det; - status = "okay"; - phandle = <0x66>; - }; - }; - }; - - i2c@feac0000 { - pinctrl-names = "default"; - #address-cells = <0x01>; - pinctrl-0 = <0x14b>; - clock-names = "i2c\0pclk"; - resets = <0x02 0xb3 0x02 0xab>; - interrupts = <0x00 0x141 0x04>; - clocks = <0x02 0x90 0x02 0x88>; - #size-cells = <0x00>; - compatible = "rockchip,rk3588-i2c\0rockchip,rk3399-i2c"; - status = "okay"; - reg = <0x00 0xfeac0000 0x00 0x1000>; - phandle = <0x2a7>; - reset-names = "i2c\0apb"; - - pc9202@3c { - pinctrl-names = "default"; - pinctrl-0 = <0x14c>; - index = <0x01>; - compatible = "firefly,pc9202"; - status = "okay"; - wd-en-gpio = <0x7b 0x14 0x00>; - driver-names = "wdt_base"; - reg = <0x3c>; - }; - }; - - rkcif-mipi-lvds5-sditf { - compatible = "rockchip,rkcif-sditf"; - status = "disabled"; - rockchip,cif = <0x1a2>; - phandle = <0x476>; - }; - - firmware { - - optee { - method = "smc"; - compatible = "linaro,optee-tz"; - phandle = <0x222>; - }; - - sdei { - method = "smc"; - compatible = "arm,sdei-1.0"; - phandle = <0x221>; - }; - - scmi { - shmem = <0x46>; - #address-cells = <0x01>; - #size-cells = <0x00>; - compatible = "arm,scmi-smc"; - phandle = <0x220>; - arm,smc-id = <0x82000010>; - - protocol@16 { - #reset-cells = <0x01>; - reg = <0x16>; - phandle = <0x11a>; - }; - - protocol@14 { - assigned-clocks = <0x0e 0x00 0x0e 0x02 0x0e 0x03>; - assigned-clock-rates = <0x30a32c00 0x30a32c00 0x30a32c00>; - #clock-cells = <0x01>; - reg = <0x14>; - phandle = <0x0e>; - }; - }; - }; - - rkvenc-core@fdbd0000 { - power-domains = <0x60 0x10>; - iommus = <0xc2>; - rockchip,ccu = <0xc3>; - clock-names = "aclk_vcodec\0hclk_vcodec\0clk_core"; - assigned-clocks = <0x02 0x1c5 0x02 0x1c6>; - rockchip,task-capacity = <0x08>; - rockchip,normal-rates = <0x1dcd6500 0x00 0x2faf0800>; - assigned-clock-rates = <0x1dcd6500 0x2faf0800>; - resets = <0x02 0x2f5 0x02 0x2f4 0x02 0x2f6>; - interrupts = <0x00 0x65 0x04>; - clocks = <0x02 0x1c5 0x02 0x1c4 0x02 0x1c6>; - rockchip,srv = <0xb8>; - rockchip,taskqueue-node = <0x07>; - compatible = "rockchip,rkv-encoder-v2-core"; - status = "okay"; - interrupt-names = "irq_rkvenc0"; - rockchip,skip-pmu-idle-request; - reg = <0x00 0xfdbd0000 0x00 0x6000>; - phandle = <0x272>; - reset-names = "video_a\0video_h\0video_core"; - operating-points-v2 = <0xc4>; - }; - - iommu@fdcc7f00 { - power-domains = <0x60 0x1c>; - clock-names = "aclk\0iface"; - interrupts = <0x00 0x88 0x04>; - clocks = <0x02 0x120 0x02 0x121>; - #iommu-cells = <0x00>; - compatible = "rockchip,iommu-v2"; - rockchip,disable-mmu-reset; - status = "disabled"; - interrupt-names = "isp1_mmu"; - reg = <0x00 0xfdcc7f00 0x00 0x100>; - phandle = <0xd1>; - }; - - rkcif-mipi-lvds-sditf { - compatible = "rockchip,rkcif-sditf"; - status = "disabled"; - rockchip,cif = <0x52>; - phandle = <0x22b>; - }; - - syscon@fd5c8000 { - compatible = "rockchip,rk3588-usbdpphy-grf\0syscon"; - reg = <0x00 0xfd5c8000 0x00 0x4000>; - phandle = <0x18c>; - }; - - gpu@fb000000 { - power-domains = <0x60 0x0c>; - downdifferential = <0x0a>; - mali-supply = <0x62>; - clock-names = "clk_mali\0clk_gpu_coregroup\0clk_gpu_stacks\0clk_gpu"; - assigned-clocks = <0x0e 0x05>; - assigned-clock-rates = <0xbebc200>; - interrupts = <0x00 0x5e 0x04 0x00 0x5d 0x04 0x00 0x5c 0x04>; - clocks = <0x0e 0x05 0x02 0x115 0x02 0x116 0x02 0x114>; - upthreshold = <0x1e>; - compatible = "arm,mali-bifrost"; - dynamic-power-coefficient = <0xba6>; - status = "okay"; - interrupt-names = "GPU\0MMU\0JOB"; - mem-supply = <0x62>; - reg = <0x00 0xfb000000 0x00 0x200000>; - phandle = <0x5f>; - operating-points-v2 = <0x61>; - #cooling-cells = <0x02>; - }; - - csi2-dphy4 { - rockchip,hw = <0x2d 0x2e>; - phy-names = "dcphy0\0dcphy1"; - compatible = "rockchip,rk3588-csi2-dphy"; - status = "disabled"; - phys = <0x2f 0x30>; - phandle = <0x213>; - }; - - mipi4-csi2-hw@fdd50000 { - clock-names = "pclk_csi2host"; - reg-names = "csihost_regs"; - resets = <0x02 0x328>; - interrupts = <0x00 0x97 0x04 0x00 0x98 0x04>; - clocks = <0x02 0x1d3>; - compatible = "rockchip,rk3588-mipi-csi2-hw"; - status = "okay"; - interrupt-names = "csi-intr1\0csi-intr2"; - reg = <0x00 0xfdd50000 0x00 0x10000>; - phandle = <0x4b>; - reset-names = "srst_csihost_p"; - }; - - qos@fdf82000 { - compatible = "syscon"; - reg = <0x00 0xfdf82000 0x00 0x20>; - phandle = <0x9d>; - }; - - rkcif-mipi-lvds2-sditf-vir2 { - compatible = "rockchip,rkcif-sditf"; - status = "disabled"; - rockchip,cif = <0x55>; - phandle = <0x235>; - }; - - rkisp1-vir0 { - rockchip,hw = <0x5a>; - compatible = "rockchip,rkisp-vir"; - status = "disabled"; - phandle = <0x23f>; - }; - - qos@fdf41100 { - compatible = "syscon"; - reg = <0x00 0xfdf41100 0x00 0x20>; - phandle = <0xa7>; - }; - - test-power { - status = "okay"; - }; - - usb-5v { - pinctrl-names = "default"; - regulator-boot-on; - gpio = <0xfe 0x03 0x00>; - pinctrl-0 = <0x1ef>; - regulator-always-on; - enable-active-high; - regulator-name = "usb_5v"; - compatible = "regulator-fixed"; - status = "okay"; - phandle = <0x4b1>; - }; - - phy@feda0000 { - clock-names = "pclk\0ref"; - resets = <0x02 0xc0043 0x02 0x3e 0x02 0x3f 0x02 0xc0044>; - clocks = <0x02 0x108 0x02 0x2b6>; - #phy-cells = <0x00>; - compatible = "rockchip,rk3588-mipi-dcphy"; - status = "okay"; - rockchip,grf = <0x190>; - reg = <0x00 0xfeda0000 0x00 0x10000>; - phandle = <0x2f>; - reset-names = "m_phy\0apb\0grf\0s_phy"; - }; - - mod-sleep-regulator { - pinctrl-names = "default"; - regulator-boot-on; - gpio = <0x7b 0x15 0x00>; - pinctrl-0 = <0x1ee>; - regulator-always-on; - enable-active-high; - regulator-name = "mod_sleep"; - compatible = "regulator-fixed"; - status = "okay"; - phandle = <0x4ae>; - - regulator-state-mem { - regulator-on-in-suspend; - }; - }; - - qos@fdf66c00 { - compatible = "syscon"; - reg = <0x00 0xfdf66c00 0x00 0x20>; - phandle = <0x99>; - }; - - crypto@fe370000 { - clock-names = "aclk\0hclk\0sclk\0pka"; - resets = <0x11a 0x0f>; - interrupts = <0x00 0xd1 0x04>; - clocks = <0x0e 0x0b 0x0e 0x0c 0x0e 0x14 0x0e 0x15>; - compatible = "rockchip,rk3588-crypto"; - status = "disabled"; - reg = <0x00 0xfe370000 0x00 0x2000>; - phandle = <0x296>; - reset-names = "crypto-rst"; - }; - - i2s@fddf4000 { - power-domains = <0x60 0x1a>; - rockchip,always-on; - clock-names = "mclk_tx\0mclk_rx\0hclk"; - assigned-clocks = <0x02 0x249>; - assigned-clock-parents = <0x02 0x07>; - resets = <0x02 0x3ef>; - interrupts = <0x00 0xba 0x04>; - clocks = <0x02 0x24c 0x02 0x24c 0x02 0x252>; - dma-names = "tx"; - #sound-dai-cells = <0x00>; - compatible = "rockchip,rk3588-i2s-tdm"; - rockchip,playback-only; - status = "okay"; - reg = <0x00 0xfddf4000 0x00 0x1000>; - phandle = <0x1e0>; - dmas = <0xf2 0x04>; - reset-names = "tx-m"; - rockchip,hdmi-path; - }; - - mipi0-csi2-hw@fdd10000 { - clock-names = "pclk_csi2host"; - reg-names = "csihost_regs"; - resets = <0x02 0x324>; - interrupts = <0x00 0x8f 0x04 0x00 0x90 0x04>; - clocks = <0x02 0x1cf>; - compatible = "rockchip,rk3588-mipi-csi2-hw"; - status = "okay"; - interrupt-names = "csi-intr1\0csi-intr2"; - reg = <0x00 0xfdd10000 0x00 0x10000>; - phandle = <0x47>; - reset-names = "srst_csihost_p"; - }; - - mipi4-csi2 { - rockchip,hw = <0x47 0x48 0x49 0x4a 0x4b 0x4c>; - compatible = "rockchip,rk3588-mipi-csi2"; - status = "disabled"; - phandle = <0x228>; - }; - - jpege-ccu { - compatible = "rockchip,vpu-jpege-ccu"; - status = "okay"; - phandle = <0xbd>; - }; - - dsi@fde30000 { - power-domains = <0x60 0x18>; - #address-cells = <0x01>; - phy-names = "dcphy"; - clock-names = "pclk\0sys_clk"; - resets = <0x02 0x355>; - interrupts = <0x00 0xa8 0x04>; - clocks = <0x02 0x279 0x02 0x27b>; - #size-cells = <0x00>; - compatible = "rockchip,rk3588-mipi-dsi2"; - status = "disabled"; - rockchip,grf = <0xd7>; - phys = <0x30>; - reg = <0x00 0xfde30000 0x00 0x10000>; - phandle = <0x283>; - reset-names = "apb"; - - ports { - #address-cells = <0x01>; - #size-cells = <0x00>; - - port@0 { - #address-cells = <0x01>; - #size-cells = <0x00>; - reg = <0x00>; - phandle = <0x284>; - - endpoint@1 { - remote-endpoint = <0x3a>; - status = "disabled"; - reg = <0x01>; - phandle = <0xef>; - }; - - endpoint@0 { - remote-endpoint = <0xf4>; - status = "disabled"; - reg = <0x00>; - phandle = <0xea>; - }; - }; - }; - }; - - iommu@fcb00000 { - interrupts = <0x00 0x17d 0x04 0x00 0x17f 0x04 0x00 0x182 0x04 0x00 0x17b 0x04>; - #iommu-cells = <0x01>; - compatible = "arm,smmu-v3"; - status = "disabled"; - interrupt-names = "eventq\0gerror\0priq\0cmdq-sync"; - reg = <0x00 0xfcb00000 0x00 0x200000>; - phandle = <0x257>; - }; - - rkcif-mipi-lvds3 { - iommus = <0x50>; - rockchip,hw = <0x4f>; - compatible = "rockchip,rkcif-mipi-lvds"; - status = "disabled"; - phandle = <0x57>; - }; - - vcc-hub-regulator { - regulator-boot-on; - gpio = <0x182 0x01 0x00>; - regulator-always-on; - enable-active-high; - regulator-name = "vcc_hub"; - compatible = "regulator-fixed"; - status = "okay"; - phandle = <0x4af>; - }; - - syscon@fd5ac000 { - compatible = "rockchip,rk3588-usb-grf\0syscon"; - reg = <0x00 0xfd5ac000 0x00 0x4000>; - phandle = <0x74>; - }; - - qos@fdf40200 { - compatible = "syscon"; - reg = <0x00 0xfdf40200 0x00 0x20>; - phandle = <0xa9>; - }; - - rkisp@fdcb0000 { - power-domains = <0x60 0x1b>; - iommus = <0xd0>; - clock-names = "aclk_isp\0hclk_isp\0clk_isp_core\0clk_isp_core_marvin\0clk_isp_core_vicap"; - interrupts = <0x00 0x83 0x04 0x00 0x85 0x04 0x00 0x86 0x04>; - clocks = <0x02 0x1de 0x02 0x1df 0x02 0x1db 0x02 0x1dc 0x02 0x1dd>; - compatible = "rockchip,rk3588-rkisp"; - status = "okay"; - interrupt-names = "isp_irq\0mi_irq\0mipi_irq"; - reg = <0x00 0xfdcb0000 0x00 0x7f00>; - phandle = <0x58>; - }; - - serial@feba0000 { - reg-io-width = <0x04>; - pinctrl-names = "default"; - pinctrl-0 = <0x166>; - clock-names = "baudclk\0apb_pclk"; - interrupts = <0x00 0x152 0x04>; - clocks = <0x02 0xcf 0x02 0xb1>; - compatible = "rockchip,rk3588-uart\0snps,dw-apb-uart"; - status = "disabled"; - reg = <0x00 0xfeba0000 0x00 0x100>; - phandle = <0x2cf>; - dmas = <0xf2 0x07 0xf2 0x08>; - reg-shift = <0x02>; - }; - - rkcif-mipi-lvds1-sditf-vir3 { - compatible = "rockchip,rkcif-sditf"; - status = "disabled"; - rockchip,cif = <0x53>; - phandle = <0x232>; - }; - - chosen { - linux,initrd-end = <0x00 0xaac72ae>; - bootargs = "storagemedia=emmc androidboot.storagemedia=emmc androidboot.mode=normal storagenode=/mmc@fe2e0000 androidboot.verifiedbootstate=orange ro rootwait earlycon=uart8250,mmio32,0xfeb50000 console=ttyS2,115200n8 irqchip.gicv3_pseudo_nmi=0 root=PARTLABEL=rootfs rootfstype=ext4 overlayroot=device:dev=PARTLABEL=userdata,fstype=ext4,mkfs=1 coherent_pool=1m systemd.gpt_auto=0 cgroup_enable=memory swapaccount=1 net.ifnames=0 rcupdate.rcu_expedited=0 comm-05/28/2025 androidboot.fwver=ddr-v1.15-d5483af87d,spl-v1.13,bl31-v1.44,bl32-v1.15,uboot--boot"; - linux,initrd-start = <0x00 0xa200000>; - phandle = <0x48d>; - }; - - hdmi@fde80000 { - power-domains = <0x60 0x1a>; - reg-io-width = <0x04>; - pinctrl-names = "default"; - phy-names = "hdmi"; - pinctrl-0 = <0xf9 0xfa 0xfb 0xfc>; - clock-names = "pclk\0hpd\0earc\0hdmitx_ref\0aud\0dclk_vp0\0dclk_vp1\0dclk_vp2\0dclk_vp3\0hclk_vo1\0link_clk"; - resets = <0x02 0x3d0 0x02 0x49c>; - interrupts = <0x00 0xa9 0x04 0x00 0xaa 0x04 0x00 0xab 0x04 0x00 0xac 0x04 0x00 0x168 0x04>; - clocks = <0x02 0x221 0x02 0x265 0x02 0x222 0x02 0x223 0x02 0x246 0x02 0x274 0x02 0x275 0x02 0x276 0x02 0x277 0x05 0x35>; - #sound-dai-cells = <0x00>; - compatible = "rockchip,rk3588-dw-hdmi"; - status = "okay"; - rockchip,grf = <0xc8>; - phys = <0xfd>; - enable-gpios = <0xfe 0x08 0x00>; - reg = <0x00 0xfde80000 0x00 0x10000 0x00 0xfde90000 0x00 0x10000>; - phandle = <0x1d4>; - reset-names = "ref\0hdp"; - rockchip,vo1_grf = <0xd8>; - - ports { - #address-cells = <0x01>; - #size-cells = <0x00>; - - port@0 { - #address-cells = <0x01>; - #size-cells = <0x00>; - reg = <0x00>; - phandle = <0x288>; - - endpoint@1 { - remote-endpoint = <0xff>; - status = "disabled"; - reg = <0x01>; - phandle = <0xe2>; - }; - - endpoint@2 { - remote-endpoint = <0x100>; - status = "disabled"; - reg = <0x02>; - phandle = <0xe8>; - }; - - endpoint@0 { - remote-endpoint = <0x3c>; - status = "okay"; - reg = <0x00>; - phandle = <0xdc>; - }; - }; - }; - }; - - cluster2-opp-table { - rockchip,pvtm-offset = <0x18>; - rockchip,pvtm-sample-time = <0x44c>; - rockchip,pvtm-hw = <0x06>; - nvmem-cells = <0x27 0x28 0x21>; - rockchip,low-temp = <0x2710>; - rockchip,pvtm-voltage-sel-hw = <0x00 0x603 0x00 0x604 0x61c 0x01 0x61d 0x635 0x02 0x636 0x64e 0x03 0x64f 0x66c 0x04 0x66d 0x68a 0x05 0x68b 0x6a8 0x06 0x6a9 0x270f 0x07>; - rockchip,pvtm-thermal-zone = "soc-thermal"; - rockchip,pvtm-low-len-sel = <0x03>; - rockchip,high-temp-max-freq = <0x21b100>; - opp-shared; - rockchip,reboot-freq = <0x1b7740>; - rockchip,pvtm-freq = <0x188940>; - rockchip,pvtm-ref-temp = <0x19>; - low-volt-mem-read-margin = <0x04>; - volt-mem-read-margin = <0xd0bd8 0x01 0xbac48 0x02 0xa4cb8 0x03 0x78d98 0x04>; - compatible = "operating-points-v2"; - rockchip,low-temp-min-volt = <0xb71b0>; - rockchip,grf = <0x29>; - nvmem-cell-names = "leakage\0opp-info\0specification_serial_number"; - rockchip,pvtm-voltage-sel = <0x00 0x63b 0x00 0x63c 0x64f 0x01 0x650 0x668 0x02 0x669 0x68b 0x03 0x68c 0x6ae 0x04 0x6af 0x6cf 0x05 0x6d0 0x6f0 0x06 0x6f1 0x270f 0x07>; - phandle = <0x1a>; - rockchip,idle-threshold-freq = <0x21b100>; - rockchip,pvtm-temp-prop = <0x10e 0x10e>; - rockchip,temp-hysteresis = <0x1388>; - rockchip,high-temp = <0x14c08>; - rockchip,pvtm-pvtpll; - rockchip,supported-hw; - intermediate-threshold-freq = <0xf6180>; - rockchip,pvtm-volt = <0xb71b0>; - - opp-j-m-2016000000 { - opp-microvolt = <0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0>; - opp-microvolt-L6 = <0xd8acc 0xd8acc 0xe7ef0 0xd8acc 0xd8acc 0xe7ef0>; - opp-microvolt-L4 = <0xdec74 0xdec74 0xe7ef0 0xdec74 0xdec74 0xe7ef0>; - opp-microvolt-L2 = <0xe4e1c 0xe4e1c 0xe7ef0 0xe4e1c 0xe4e1c 0xe7ef0>; - opp-hz = <0x00 0x7829b800>; - opp-supported-hw = <0x06 0xffff>; - opp-microvolt-L7 = <0xd59f8 0xd59f8 0xe7ef0 0xd59f8 0xd59f8 0xe7ef0>; - opp-microvolt-L5 = <0xdbba0 0xdbba0 0xe7ef0 0xdbba0 0xdbba0 0xe7ef0>; - opp-microvolt-L3 = <0xe1d48 0xe1d48 0xe7ef0 0xe1d48 0xe1d48 0xe7ef0>; - clock-latency-ns = <0x9c40>; - opp-microvolt-L1 = <0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0>; - }; - - opp-1200000000 { - opp-microvolt = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; - opp-hz = <0x00 0x47868c00>; - opp-supported-hw = <0xf9 0xffff>; - clock-latency-ns = <0x9c40>; - }; - - opp-j-m-1416000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - opp-hz = <0x00 0x54667200>; - opp-microvolt-L0 = <0xba284 0xba284 0xe7ef0 0xba284 0xba284 0xe7ef0>; - opp-supported-hw = <0x06 0xffff>; - opp-suspend; - clock-latency-ns = <0x9c40>; - }; - - opp-1008000000 { - opp-microvolt = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; - opp-hz = <0x00 0x3c14dc00>; - opp-supported-hw = <0xf9 0xffff>; - clock-latency-ns = <0x9c40>; - }; - - opp-2256000000 { - opp-microvolt = <0xf4240 0xf4240 0xf4240 0xf4240 0xf4240 0xf4240>; - opp-hz = <0x00 0x8677d400>; - opp-supported-hw = <0xf9 0x13>; - clock-latency-ns = <0x9c40>; - }; - - opp-j-m-1200000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - opp-hz = <0x00 0x47868c00>; - opp-supported-hw = <0x06 0xffff>; - clock-latency-ns = <0x9c40>; - }; - - opp-j-m-1008000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - opp-hz = <0x00 0x3c14dc00>; - opp-supported-hw = <0x06 0xffff>; - clock-latency-ns = <0x9c40>; - }; - - opp-j-m-816000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - opp-hz = <0x00 0x30a32c00>; - opp-supported-hw = <0x06 0xffff>; - clock-latency-ns = <0x9c40>; - }; - - opp-2400000000 { - opp-microvolt = <0xf4240 0xf4240 0xf4240 0xf4240 0xf4240 0xf4240>; - opp-hz = <0x00 0x8f0d1800>; - opp-supported-hw = <0xf9 0x80>; - clock-latency-ns = <0x9c40>; - }; - - opp-1800000000 { - opp-microvolt = <0xcf850 0xcf850 0xf4240 0xcf850 0xcf850 0xf4240>; - opp-microvolt-L6 = <0xbd358 0xbd358 0xf4240 0xbd358 0xbd358 0xf4240>; - opp-microvolt-L4 = <0xc3500 0xc3500 0xf4240 0xc3500 0xc3500 0xf4240>; - opp-microvolt-L2 = <0xc96a8 0xc96a8 0xf4240 0xc96a8 0xc96a8 0xf4240>; - opp-hz = <0x00 0x6b49d200>; - opp-supported-hw = <0xf9 0xffff>; - opp-microvolt-L7 = <0xba284 0xba284 0xf4240 0xba284 0xba284 0xf4240>; - opp-microvolt-L5 = <0xc042c 0xc042c 0xf4240 0xc042c 0xc042c 0xf4240>; - opp-microvolt-L3 = <0xc65d4 0xc65d4 0xf4240 0xc65d4 0xc65d4 0xf4240>; - clock-latency-ns = <0x9c40>; - opp-microvolt-L1 = <0xcc77c 0xcc77c 0xf4240 0xcc77c 0xcc77c 0xf4240>; - }; - - opp-j-m-600000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - opp-hz = <0x00 0x23c34600>; - opp-supported-hw = <0x06 0xffff>; - clock-latency-ns = <0x9c40>; - }; - - opp-2208000000 { - opp-microvolt = <0xf116c 0xf116c 0xf4240 0xf116c 0xf116c 0xf4240>; - opp-microvolt-L6 = <0xe1d48 0xe1d48 0xf4240 0xe1d48 0xe1d48 0xf4240>; - opp-microvolt-L4 = <0xeafc4 0xeafc4 0xf4240 0xeafc4 0xeafc4 0xf4240>; - opp-hz = <0x00 0x839b6800>; - opp-supported-hw = <0xf9 0xffff>; - opp-microvolt-L7 = <0xdec74 0xdec74 0xf4240 0xdec74 0xdec74 0xf4240>; - opp-microvolt-L5 = <0xe7ef0 0xe7ef0 0xf4240 0xe7ef0 0xe7ef0 0xf4240>; - opp-microvolt-L3 = <0xee098 0xee098 0xf4240 0xee098 0xee098 0xf4240>; - clock-latency-ns = <0x9c40>; - }; - - opp-1608000000 { - opp-microvolt = <0xba284 0xba284 0xf4240 0xba284 0xba284 0xf4240>; - opp-microvolt-L6 = <0xaae60 0xaae60 0xf4240 0xaae60 0xaae60 0xf4240>; - opp-microvolt-L4 = <0xb1008 0xb1008 0xf4240 0xb1008 0xb1008 0xf4240>; - opp-microvolt-L2 = <0xb71b0 0xb71b0 0xf4240 0xb71b0 0xb71b0 0xf4240>; - opp-hz = <0x00 0x5fd82200>; - opp-supported-hw = <0xf9 0xffff>; - opp-microvolt-L7 = <0xaae60 0xaae60 0xf4240 0xaae60 0xaae60 0xf4240>; - opp-microvolt-L5 = <0xadf34 0xadf34 0xf4240 0xadf34 0xadf34 0xf4240>; - opp-microvolt-L3 = <0xb40dc 0xb40dc 0xf4240 0xb40dc 0xb40dc 0xf4240>; - clock-latency-ns = <0x9c40>; - }; - - opp-j-m-408000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - opp-hz = <0x00 0x18519600>; - opp-supported-hw = <0x06 0xffff>; - clock-latency-ns = <0x9c40>; - }; - - opp-j-m-1800000000 { - opp-microvolt = <0xd59f8 0xd59f8 0xe7ef0 0xd59f8 0xd59f8 0xe7ef0>; - opp-microvolt-L6 = <0xc3500 0xc3500 0xe7ef0 0xc3500 0xc3500 0xe7ef0>; - opp-microvolt-L4 = <0xc96a8 0xc96a8 0xe7ef0 0xc96a8 0xc96a8 0xe7ef0>; - opp-microvolt-L2 = <0xcf850 0xcf850 0xe7ef0 0xcf850 0xcf850 0xe7ef0>; - opp-hz = <0x00 0x6b49d200>; - opp-supported-hw = <0x06 0xffff>; - opp-microvolt-L7 = <0xc042c 0xc042c 0xe7ef0 0xc042c 0xc042c 0xe7ef0>; - opp-microvolt-L5 = <0xc65d4 0xc65d4 0xe7ef0 0xc65d4 0xc65d4 0xe7ef0>; - opp-microvolt-L3 = <0xcc77c 0xcc77c 0xe7ef0 0xcc77c 0xcc77c 0xe7ef0>; - clock-latency-ns = <0x9c40>; - opp-microvolt-L1 = <0xd2924 0xd2924 0xe7ef0 0xd2924 0xd2924 0xe7ef0>; - }; - - opp-2352000000 { - opp-microvolt = <0xf4240 0xf4240 0xf4240 0xf4240 0xf4240 0xf4240>; - opp-hz = <0x00 0x8c30ac00>; - opp-supported-hw = <0xf9 0x48>; - clock-latency-ns = <0x9c40>; - }; - - opp-816000000 { - opp-microvolt = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; - opp-hz = <0x00 0x30a32c00>; - opp-supported-hw = <0xf9 0xffff>; - clock-latency-ns = <0x9c40>; - }; - - opp-j-m-1608000000 { - opp-microvolt = <0xc042c 0xc042c 0xe7ef0 0xc042c 0xc042c 0xe7ef0>; - opp-microvolt-L6 = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - opp-microvolt-L4 = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - opp-microvolt-L2 = <0xbd358 0xbd358 0xe7ef0 0xbd358 0xbd358 0xe7ef0>; - opp-hz = <0x00 0x5fd82200>; - opp-supported-hw = <0x06 0xffff>; - opp-microvolt-L7 = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - opp-microvolt-L5 = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - opp-microvolt-L3 = <0xba284 0xba284 0xe7ef0 0xba284 0xba284 0xe7ef0>; - clock-latency-ns = <0x9c40>; - }; - - opp-600000000 { - opp-microvolt = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; - opp-hz = <0x00 0x23c34600>; - opp-supported-hw = <0xf9 0xffff>; - clock-latency-ns = <0x9c40>; - }; - - opp-2016000000 { - opp-microvolt = <0xe1d48 0xe1d48 0xf4240 0xe1d48 0xe1d48 0xf4240>; - opp-microvolt-L6 = <0xcf850 0xcf850 0xf4240 0xcf850 0xcf850 0xf4240>; - opp-microvolt-L4 = <0xd59f8 0xd59f8 0xf4240 0xd59f8 0xd59f8 0xf4240>; - opp-microvolt-L2 = <0xdbba0 0xdbba0 0xf4240 0xdbba0 0xdbba0 0xf4240>; - opp-hz = <0x00 0x7829b800>; - opp-supported-hw = <0xf9 0xffff>; - opp-microvolt-L7 = <0xcc77c 0xcc77c 0xf4240 0xcc77c 0xcc77c 0xf4240>; - opp-microvolt-L5 = <0xd2924 0xd2924 0xf4240 0xd2924 0xd2924 0xf4240>; - opp-microvolt-L3 = <0xd8acc 0xd8acc 0xf4240 0xd8acc 0xd8acc 0xf4240>; - clock-latency-ns = <0x9c40>; - opp-microvolt-L1 = <0xdec74 0xdec74 0xf4240 0xdec74 0xdec74 0xf4240>; - }; - - opp-1416000000 { - opp-microvolt = <0xb1008 0xb1008 0xf4240 0xb1008 0xb1008 0xf4240>; - opp-microvolt-L6 = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; - opp-microvolt-L4 = <0xaae60 0xaae60 0xf4240 0xaae60 0xaae60 0xf4240>; - opp-microvolt-L2 = <0xadf34 0xadf34 0xf4240 0xadf34 0xadf34 0xf4240>; - opp-hz = <0x00 0x54667200>; - opp-supported-hw = <0xf9 0xffff>; - opp-microvolt-L7 = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; - opp-microvolt-L5 = <0xa7d8c 0xa7d8c 0xf4240 0xa7d8c 0xa7d8c 0xf4240>; - opp-microvolt-L3 = <0xaae60 0xaae60 0xf4240 0xaae60 0xaae60 0xf4240>; - clock-latency-ns = <0x9c40>; - }; - - opp-408000000 { - opp-microvolt = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; - opp-hz = <0x00 0x18519600>; - opp-supported-hw = <0xf9 0xffff>; - opp-suspend; - clock-latency-ns = <0x9c40>; - }; - - opp-2304000000 { - opp-microvolt = <0xf4240 0xf4240 0xf4240 0xf4240 0xf4240 0xf4240>; - opp-hz = <0x00 0x89544000>; - opp-supported-hw = <0xf9 0x24>; - clock-latency-ns = <0x9c40>; - }; - }; - - rkcif-dvp { - iommus = <0x50>; - rockchip,hw = <0x4f>; - compatible = "rockchip,rkcif-dvp"; - status = "disabled"; - phandle = <0x51>; - }; - - rkisp0-vir2 { - rockchip,hw = <0x58>; - compatible = "rockchip,rkisp-vir"; - status = "okay"; - phandle = <0x23d>; - - port { - #address-cells = <0x01>; - #size-cells = <0x00>; - - endpoint@0 { - remote-endpoint = <0x59>; - reg = <0x00>; - phandle = <0x56>; - }; - }; - }; - - i2c@fea90000 { - pinctrl-names = "default"; - #address-cells = <0x01>; - pinctrl-0 = <0x148>; - clock-names = "i2c\0pclk"; - resets = <0x02 0xb0 0x02 0xa8>; - interrupts = <0x00 0x13e 0x04>; - clocks = <0x02 0x8d 0x02 0x85>; - #size-cells = <0x00>; - compatible = "rockchip,rk3588-i2c\0rockchip,rk3399-i2c"; - status = "okay"; - reg = <0x00 0xfea90000 0x00 0x1000>; - phandle = <0x2a4>; - reset-names = "i2c\0apb"; - - rk8602@42 { - regulator-max-microvolt = <0xe7ef0>; - regulator-boot-on; - rockchip,suspend-voltage-selector = <0x01>; - regulator-always-on; - regulator-min-microvolt = <0x86470>; - regulator-name = "vdd_npu_s0"; - regulator-ramp-delay = <0x8fc>; - compatible = "rockchip,rk8602"; - reg = <0x42>; - phandle = <0xb3>; - vin-supply = <0x78>; - regulator-compatible = "rk860x-reg"; - - regulator-state-mem { - regulator-off-in-suspend; - }; - }; - }; - - syscon@fd58a000 { - compatible = "rockchip,rk3588-pmu1-grf\0syscon"; - reg = <0x00 0xfd58a000 0x00 0x2000>; - phandle = <0x104>; - }; - - syscon@fd5ec000 { - compatible = "rockchip,mipi-dcphy-grf\0syscon"; - reg = <0x00 0xfd5ec000 0x00 0x4000>; - phandle = <0x191>; - }; - - venc-opp-table { - nvmem-cells = <0xc6 0xc7>; - rockchip,leakage-voltage-sel = <0x01 0x0f 0x00 0x10 0x19 0x01 0x1a 0xfe 0x02>; - volt-mem-read-margin = <0xd0bd8 0x01 0xbac48 0x02 0xa4cb8 0x03 0x78d98 0x04>; - compatible = "operating-points-v2"; - rockchip,grf = <0xc8>; - nvmem-cell-names = "leakage\0opp-info"; - phandle = <0xc4>; - - opp-800000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; - opp-microvolt-L2 = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; - opp-hz = <0x00 0x2faf0800>; - opp-microvolt-L0 = <0xc3500 0xc3500 0xcf850 0xc3500 0xc3500 0xcf850>; - opp-microvolt-L1 = <0xbd358 0xbd358 0xcf850 0xbd358 0xbd358 0xcf850>; - }; - }; - - iommu@fdc38700 { - power-domains = <0x60 0x0e>; - rockchip,shootdown-entire; - clock-names = "aclk\0iface"; - interrupts = <0x00 0x60 0x04>; - clocks = <0x02 0x190 0x02 0x18f>; - rockchip,enable-cmd-retry; - #iommu-cells = <0x00>; - compatible = "rockchip,iommu-v2"; - rockchip,disable-mmu-reset; - status = "okay"; - interrupt-names = "irq_rkvdec0_mmu"; - reg = <0x00 0xfdc38700 0x00 0x40 0x00 0xfdc38740 0x00 0x40>; - phandle = <0xc9>; - rockchip,master-handle-irq; - }; - - qos@fdf35200 { - compatible = "syscon"; - reg = <0x00 0xfdf35200 0x00 0x20>; - phandle = <0x88>; - }; - - qos@fdf71000 { - compatible = "syscon"; - reg = <0x00 0xfdf71000 0x00 0x20>; - phandle = <0x86>; - }; - - syscon@fd598000 { - compatible = "rockchip,rk3588-dsu-grf\0syscon"; - reg = <0x00 0xfd598000 0x00 0x100>; - phandle = <0x23>; - }; - - csi2-dphy2 { - rockchip,hw = <0x2d 0x2e>; - phy-names = "dcphy0\0dcphy1"; - compatible = "rockchip,rk3588-csi2-dphy"; - status = "disabled"; - phys = <0x2f 0x30>; - phandle = <0x211>; - }; - - syscon@fd5b4000 { - compatible = "rockchip,mipi-dphy-grf\0syscon"; - reg = <0x00 0xfd5b4000 0x00 0x1000>; - phandle = <0x192>; - }; - - iommu@fdb70f00 { - power-domains = <0x60 0x1e>; - clock-names = "aclk\0iface"; - interrupts = <0x00 0x73 0x04>; - clocks = <0x02 0x18a 0x02 0x189>; - #iommu-cells = <0x00>; - compatible = "rockchip,iommu-v2"; - status = "okay"; - interrupt-names = "rga3_1_mmu"; - reg = <0x00 0xfdb70f00 0x00 0x100>; - phandle = <0xba>; - }; - - vcc5v0-usb { - regulator-max-microvolt = <0x4c4b40>; - regulator-boot-on; - regulator-always-on; - regulator-min-microvolt = <0x4c4b40>; - regulator-name = "vcc5v0_usb"; - compatible = "regulator-fixed"; - phandle = <0x1dd>; - vin-supply = <0x1cd>; - }; - - fiq-debugger { - pinctrl-names = "default"; - rockchip,irq-mode-enable = <0x01>; - rockchip,baudrate = <0x1c200>; - pinctrl-0 = <0x1ce>; - interrupts = <0x00 0x1a7 0x08>; - rockchip,wake-irq = <0x00>; - compatible = "rockchip,fiq-debugger"; - status = "okay"; - phandle = <0x490>; - rockchip,serial-id = <0x02>; - }; - - phy@fed70000 { - clock-names = "ref\0apb"; - resets = <0x02 0x486 0x02 0xc003f 0x02 0xc0040 0x02 0xc0041>; - clocks = <0x02 0x2b5 0x02 0x268>; - #phy-cells = <0x00>; - compatible = "rockchip,rk3588-hdptx-phy"; - status = "disabled"; - rockchip,grf = <0x1c7>; - reg = <0x00 0xfed70000 0x00 0x2000>; - phandle = <0x1af>; - reset-names = "apb\0init\0cmn\0lane"; - }; - - pvtm@fda60000 { - #address-cells = <0x01>; - #size-cells = <0x00>; - compatible = "rockchip,rk3588-litcore-pvtm"; - reg = <0x00 0xfda60000 0x00 0x100>; - - pvtm@2 { - clock-names = "clk\0pclk"; - clocks = <0x02 0x2ca 0x02 0x1b>; - reg = <0x02>; - }; - }; - - rkispp@fdcd8000 { - power-domains = <0x60 0x1d>; - iommus = <0xd3>; - clock-names = "aclk_ispp\0hclk_ispp\0clk_ispp"; - assigned-clocks = <0x02 0x1d9>; - assigned-clock-rates = <0x5f5e100>; - interrupts = <0x00 0x8d 0x04>; - clocks = <0x02 0x1d8 0x02 0x1d9 0x02 0x1da>; - compatible = "rockchip,rk3588-rkispp"; - status = "disabled"; - interrupt-names = "fec_irq"; - reg = <0x00 0xfdcd8000 0x00 0xf00>; - phandle = <0x5c>; - }; - - qos@fdf66000 { - compatible = "syscon"; - reg = <0x00 0xfdf66000 0x00 0x20>; - phandle = <0x93>; - }; - - syscon@fd592000 { - compatible = "rockchip,rk3588-bigcore1-grf\0syscon"; - reg = <0x00 0xfd592000 0x00 0x100>; - phandle = <0x29>; - }; - - rkcif-mipi-lvds1 { - iommus = <0x50>; - rockchip,hw = <0x4f>; - compatible = "rockchip,rkcif-mipi-lvds"; - status = "disabled"; - phandle = <0x53>; - }; - - av1d@fdc70000 { - power-domains = <0x60 0x17>; - iommus = <0xce>; - clock-names = "aclk_vcodec\0hclk_vcodec"; - reg-names = "vcd\0cache\0afbc"; - assigned-clocks = <0x02 0x49 0x02 0x4b>; - rockchip,normal-rates = <0x17d78400 0x17d78400>; - assigned-clock-rates = <0x17d78400 0x17d78400>; - resets = <0x02 0x442 0x02 0x445>; - interrupts = <0x00 0x6c 0x04 0x00 0x6b 0x04 0x00 0x6a 0x04>; - clocks = <0x02 0x49 0x02 0x4b>; - rockchip,srv = <0xb8>; - rockchip,taskqueue-node = <0x0b>; - compatible = "rockchip,av1-decoder"; - status = "okay"; - interrupt-names = "irq_av1d\0irq_cache\0irq_afbc"; - reg = <0x00 0xfdc70000 0x00 0x800 0x00 0xfdc80000 0x00 0x400 0x00 0xfdc90000 0x00 0x400>; - phandle = <0x276>; - reset-names = "video_a\0video_h"; - }; - - qos@fdf40500 { - compatible = "syscon"; - reg = <0x00 0xfdf40500 0x00 0x20>; - phandle = <0xa3>; - }; - - vcc-hub-reset-regulator { - regulator-boot-on; - gpio = <0x182 0x04 0x00>; - regulator-always-on; - enable-active-high; - regulator-name = "vcc_hub_reset"; - compatible = "regulator-fixed"; - status = "disabled"; - phandle = <0x4a0>; - }; - - qos@fdf72200 { - compatible = "syscon"; - reg = <0x00 0xfdf72200 0x00 0x20>; - phandle = <0x83>; - }; - - serial@feb70000 { - reg-io-width = <0x04>; - pinctrl-names = "default"; - pinctrl-0 = <0x163>; - clock-names = "baudclk\0apb_pclk"; - interrupts = <0x00 0x14f 0x04>; - clocks = <0x02 0xc3 0x02 0xae>; - compatible = "rockchip,rk3588-uart\0snps,dw-apb-uart"; - status = "disabled"; - reg = <0x00 0xfeb70000 0x00 0x100>; - phandle = <0x2cc>; - dmas = <0xf1 0x09 0xf1 0x0a>; - reg-shift = <0x02>; - }; - - rkcif-mipi-lvds2-sditf { - compatible = "rockchip,rkcif-sditf"; - status = "okay"; - rockchip,cif = <0x55>; - phandle = <0x233>; - - port { - - endpoint { - remote-endpoint = <0x56>; - phandle = <0x59>; - }; - }; - }; - - i2c@feca0000 { - pinctrl-names = "default"; - #address-cells = <0x01>; - pinctrl-0 = <0x186>; - clock-names = "i2c\0pclk"; - resets = <0x02 0xb7 0x02 0xaf>; - interrupts = <0x00 0x145 0x04>; - clocks = <0x02 0x94 0x02 0x8c>; - #size-cells = <0x00>; - compatible = "rockchip,rk3588-i2c\0rockchip,rk3399-i2c"; - status = "disabled"; - reg = <0x00 0xfeca0000 0x00 0x1000>; - phandle = <0x2e5>; - reset-names = "i2c\0apb"; - }; - - vcc-sdcard-pwr-en-regulator { - regulator-boot-on; - gpio = <0xfe 0x07 0x00>; - regulator-always-on; - enable-active-high; - regulator-name = "vcc_sdcard_pwr_en"; - compatible = "regulator-fixed"; - status = "okay"; - phandle = <0x4a5>; - }; - - rkcif-mipi-lvds1-sditf-vir1 { - compatible = "rockchip,rkcif-sditf"; - status = "disabled"; - rockchip,cif = <0x53>; - phandle = <0x230>; - }; - - qos@fdf63000 { - compatible = "syscon"; - reg = <0x00 0xfdf63000 0x00 0x20>; - phandle = <0x8c>; - }; - - phy@fee00000 { - rockchip,pipe-grf = <0x76>; - clock-names = "refclk\0apbclk\0phpclk"; - assigned-clocks = <0x02 0x2bd>; - assigned-clock-rates = <0x5f5e100>; - resets = <0x02 0x20005 0x02 0x4d6>; - clocks = <0x02 0x2bd 0x02 0x185 0x02 0x166>; - #phy-cells = <0x01>; - compatible = "rockchip,rk3588-naneng-combphy"; - status = "okay"; - rockchip,pipe-phy-grf = <0x194>; - reg = <0x00 0xfee00000 0x00 0x100>; - phandle = <0x108>; - reset-names = "combphy-apb\0combphy"; - }; - - can@fea50000 { - pinctrl-names = "default"; - pinctrl-0 = <0x145>; - clock-names = "baudclk\0apb_pclk"; - resets = <0x02 0xb9 0x02 0xb8>; - interrupts = <0x00 0x155 0x04>; - clocks = <0x02 0x70 0x02 0x6f>; - compatible = "rockchip,can-2.0"; - status = "disabled"; - tx-fifo-depth = <0x01>; - rx-fifo-depth = <0x06>; - reg = <0x00 0xfea50000 0x00 0x1000>; - phandle = <0x2a0>; - reset-names = "can\0can-apb"; - }; - - pdm@fe4b0000 { - pinctrl-names = "default\0idle\0clk"; - pinctrl-2 = <0x139 0x13a>; - pinctrl-0 = <0x134 0x135 0x136 0x137>; - clock-names = "pdm_clk\0pdm_hclk"; - clocks = <0x02 0x29f 0x02 0x29e>; - dma-names = "rx"; - #sound-dai-cells = <0x00>; - compatible = "rockchip,rk3588-pdm"; - pinctrl-1 = <0x138>; - status = "disabled"; - reg = <0x00 0xfe4b0000 0x00 0x1000>; - phandle = <0x29a>; - dmas = <0x7c 0x04>; - }; - - rkisp-unite-mmu@fdcb7f00 { - power-domains = <0x60 0x1c>; - clock-names = "aclk0\0iface0\0aclk1\0iface1"; - interrupts = <0x00 0x84 0x04 0x00 0x88 0x04>; - clocks = <0x02 0x1de 0x02 0x1df 0x02 0x120 0x02 0x121>; - #iommu-cells = <0x00>; - compatible = "rockchip,iommu-v2"; - rockchip,disable-mmu-reset; - status = "disabled"; - interrupt-names = "isp0_mmu\0isp1_mmu"; - reg = <0x00 0xfdcb7f00 0x00 0x100 0x00 0xfdcc7f00 0x00 0x100>; - phandle = <0xcf>; - }; - - syscon@fd5a6000 { - clocks = <0x72>; - compatible = "rockchip,rk3588-vo-grf\0syscon"; - reg = <0x00 0xfd5a6000 0x00 0x2000>; - phandle = <0xf5>; - }; - - cpus { - #address-cells = <0x01>; - #size-cells = <0x00>; - - cpu@0 { - device_type = "cpu"; - compatible = "arm,cortex-a55"; - reg = <0x00>; - enable-method = "psci"; - clocks = <0x0e 0x00>; - cpu-idle-states = <0x10>; - operating-points-v2 = <0x0f>; - capacity-dmips-mhz = <0x212>; - - cpu-supply = <0x12>; - mem-supply = <0x12>; - dynamic-power-coefficient = <0x64>; - - i-cache-line-size = <0x40>; - i-cache-size = <0x8000>; - i-cache-sets = <0x80>; - - d-cache-line-size = <0x40>; - d-cache-size = <0x8000>; - d-cache-sets = <0x80>; - - next-level-cache = <0x11>; - #cooling-cells = <0x02>; - phandle = <0x06>; - }; - - l2-cache-l0 { - compatible = "cache"; - cache-size = <0x20000>; - cache-sets = <0x200>; - cache-line-size = <0x40>; - next-level-cache = <0x1e>; - phandle = <0x11>; - }; - - l3-cache { - compatible = "cache"; - cache-size = <0x300000>; - cache-sets = <0x1000>; - cache-line-size = <0x40>; - phandle = <0x1e>; - }; - - idle-states { - entry-method = "psci"; - - cpu-sleep { - compatible = "arm,idle-state"; - entry-latency-us = <0x64>; - exit-latency-us = <0x78>; - min-residency-us = <0x3e8>; - local-timer-stop; - arm,psci-suspend-param = <0x10000>; - phandle = <0x10>; - }; - }; - - cpu-map { - cluster0 { - core0 { - cpu = <0x06>; - }; - }; - }; - }; - - vcc-hub3-reset-regulator { - gpio = <0x182 0x06 0x00>; - regulator-always-on; - enable-active-high; - regulator-name = "vcc_hub3_reset"; - compatible = "regulator-fixed"; - status = "disabled"; - phandle = <0x4a1>; - }; - - rkispp1-vir0 { - rockchip,hw = <0x5c>; - compatible = "rockchip,rk3588-rkispp-vir"; - status = "disabled"; - phandle = <0x244>; - }; - - saradc@fec10000 { - vref-supply = <0x177>; - clock-names = "saradc\0apb_pclk"; - resets = <0x02 0xbe>; - interrupts = <0x00 0x18e 0x04>; - clocks = <0x02 0x9d 0x02 0x9c>; - #io-channel-cells = <0x01>; - compatible = "rockchip,rk3588-saradc"; - status = "okay"; - reg = <0x00 0xfec10000 0x00 0x10000>; - phandle = <0x1d9>; - reset-names = "saradc-apb"; - }; - - rkisp0-vir0 { - rockchip,hw = <0x58>; - compatible = "rockchip,rkisp-vir"; - status = "disabled"; - phandle = <0x23b>; - }; - - __symbols__ { - i2s2m0_lrck = "/pinctrl/i2s2/i2s2m0-lrck"; - i2c3 = "/i2c@feab0000"; - scmi_shmem = "/sram@10f000/sram@0"; - rkispp0_vir0 = "/rkispp0-vir0"; - qos_jpeg_enc0 = "/qos@fdf66400"; - i2s1m1_sdi1 = "/pinctrl/i2s1/i2s1m1-sdi1"; - dp_altmode_mux = "/i2c@fec80000/fusb302@22/connector/ports/port@1/endpoint"; - pmic_pins = "/pinctrl/pmic/pmic-pins"; - usb_host1_ohci = "/usb@fc8c0000"; - pwm9 = "/pwm@febe0010"; - i2c6m4_xfer = "/pinctrl/i2c6/i2c6m4-xfer"; - leds_gpio = "/pinctrl/leds/leds-gpio"; - i2c3m3_xfer = "/pinctrl/i2c3/i2c3m3-xfer"; - qos_usb3_1 = "/qos@fdf3e000"; - hdmi_debug4 = "/pinctrl/hdmi/hdmi-debug4"; - i2c0m2_xfer = "/pinctrl/i2c0/i2c0m2-xfer"; - gmac0_rgmii_bus = "/pinctrl/gmac0/gmac0-rgmii-bus"; - pcie30x2m2_pins = "/pinctrl/pcie30x2/pcie30x2m2-pins"; - sdmmc_clk = "/pinctrl/sdmmc/sdmmc-clk"; - spi0m3_cs0 = "/pinctrl/spi0/spi0m3-cs0"; - hwlock = "/hwspinlock@fe5a0000"; - pcie3x2 = "/pcie@fe160000"; - i2s2m1_mclk = "/pinctrl/i2s2/i2s2m1-mclk"; - mipim0_camera3_clk = "/pinctrl/mipi/mipim0-camera3-clk"; - mclkin_i2s0 = "/clocks/mclkin-i2s0"; - edp1_in_vp1 = "/edp@fded0000/ports/port@0/endpoint@1"; - rkvenc0_mmu = "/iommu@fdbdf000"; - pwm14 = "/pwm@febf0020"; - rk806_dvs2_rst = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs2_rst"; - mipi2_csi2 = "/mipi2-csi2"; - can2m1_pins = "/pinctrl/can2/can2m1-pins"; - pcie2x1l1 = "/pcie@fe180000"; - hdmi0_in_vp2 = "/hdmi@fde80000/ports/port@0/endpoint@2"; - qos_rkvenc0_m2wo = "/qos@fdf60400"; - pwm3m2_pins = "/pinctrl/pwm3/pwm3m2-pins"; - optee = "/firmware/optee"; - l2_cache_b2 = "/cpus/l2-cache-b2"; - pwm0m1_pins = "/pinctrl/pwm0/pwm0m1-pins"; - vdpu = "/vdpu@fdb50400"; - i2s3_sdo = "/pinctrl/i2s3/i2s3-sdo"; - usbdp_phy0_u3 = "/phy@fed80000/u3-port"; - thermal_zones = "/thermal-zones"; - hdmim2_rx_scl = "/pinctrl/hdmi/hdmim2-rx-scl"; - hdmim2_rx_sda = "/pinctrl/hdmi/hdmim2-rx-sda"; - uart9m0_rtsn = "/pinctrl/uart9/uart9m0-rtsn"; - spi1m2_cs0 = "/pinctrl/spi1/spi1m2-cs0"; - pcie2x1l1_intc = "/pcie@fe180000/legacy-interrupt-controller"; - spdif1m1_tx = "/pinctrl/spdif1/spdif1m1-tx"; - venc_opp_info = "/otp@fecc0000/venc-opp-info@67"; - qos_iep = "/qos@fdf66000"; - pcfg_pull_none_drv_level_3 = "/pinctrl/pcfg-pull-none-drv-level-3"; - spi3m2_cs1 = "/pinctrl/spi3/spi3m2-cs1"; - uart4m2_xfer = "/pinctrl/uart4/uart4m2-xfer"; - vp1 = "/vop@fdd90000/ports/port@1"; - bigcore1_grf = "/syscon@fd592000"; - uart1m1_xfer = "/pinctrl/uart1/uart1m1-xfer"; - uart5m1_ctsn = "/pinctrl/uart5/uart5m1-ctsn"; - fspim1_pins = "/pinctrl/fspi/fspim1-pins"; - cpu_l1 = "/cpus/cpu@100"; - uart8 = "/serial@febb0000"; - rkisp1_vir3 = "/rkisp1-vir3"; - qos_vop_m1 = "/qos@fdf82200"; - pcie_clk2 = "/pcie-clk2"; - cluster2_opp_table = "/cluster2-opp-table"; - usb_grf = "/syscon@fd5ac000"; - pcfg_pull_none_smt = "/pinctrl/pcfg-pull-none-smt"; - jpege0_mmu = "/iommu@fdba0800"; - spi2m1_cs0 = "/pinctrl/spi2/spi2m1-cs0"; - u2phy3 = "/syscon@fd5dc000/usb2-phy@c000"; - power_led = "/leds/power"; - aclk_usb = "/clocks/aclk_usb@fd7c08a8"; - csi2_dphy1 = "/csi2-dphy1"; - spi2 = "/spi@feb20000"; - uart2_rtsn = "/pinctrl/uart2/uart2-rtsn"; - spi4m1_cs1 = "/pinctrl/spi4/spi4m1-cs1"; - pcfg_pull_up_drv_level_15 = "/pinctrl/pcfg-pull-up-drv-level-15"; - vo1_grf = "/syscon@fd5a8000"; - pcie_essd = "/pcie-essd"; - i2c4m3_xfer = "/pinctrl/i2c4/i2c4m3-xfer"; - gpio0 = "/pinctrl/gpio@fd8a0000"; - saradc = "/saradc@fec10000"; - i2s1m0_sdi3 = "/pinctrl/i2s1/i2s1m0-sdi3"; - i2c1m2_xfer = "/pinctrl/i2c1/i2c1m2-xfer"; - csidphy0_out = "/csi2-dphy0/ports/port@1/endpoint@0"; - emmc_rstnout = "/pinctrl/emmc/emmc-rstnout"; - mclkout_i2s3 = "/clocks/mclkout-i2s3@fd58c318"; - xc7160_out0 = "/i2c@fec80000/XC7160b@1b/port/endpoint"; - rkcif_mipi_lvds1_sditf_vir1 = "/rkcif-mipi-lvds1-sditf-vir1"; - dsi1 = "/dsi@fde30000"; - venc_opp_table = "/venc-opp-table"; - qos_isp0_mwo = "/qos@fdf40500"; - pmu_pins = "/pinctrl/pmu/pmu-pins"; - gmac0_miim = "/pinctrl/gmac0/gmac0-miim"; - spi3m0_cs0 = "/pinctrl/spi3/spi3m0-cs0"; - mipi_dcphy0 = "/mipi-dcphy-dummy"; - minidump_mem = "/reserved-memory/minidump-mem@c000000"; - avdd_1v2_s0 = "/spi@feb20000/rk806single@0/regulators/PLDO_REG3"; - pwm7m3_pins = "/pinctrl/pwm7/pwm7m3-pins"; - route_edp1 = "/display-subsystem/route/route-edp1"; - hdmi1 = "/hdmi@fdea0000"; - crypto = "/crypto@fe370000"; - hdmi1_in_vp2 = "/hdmi@fdea0000/ports/port@0/endpoint@2"; - dfi = "/dfi@fe060000"; - can0m0_pins = "/pinctrl/can0/can0m0-pins"; - pcfg_pull_up_drv_level_2 = "/pinctrl/pcfg-pull-up-drv-level-2"; - pinctrl = "/pinctrl"; - pcfg_pull_down_drv_level_6 = "/pinctrl/pcfg-pull-down-drv-level-6"; - dp0m0_pins = "/pinctrl/dp0/dp0m0-pins"; - i2s0_sdo3 = "/pinctrl/i2s0/i2s0-sdo3"; - vcc_sata_pwr_en = "/vcc-sata-pwr-en-regulator"; - pwm1m1_pins = "/pinctrl/pwm1/pwm1m1-pins"; - pcie30_avdd1v8 = "/pcie30-avdd1v8"; - usb2phy3_grf = "/syscon@fd5dc000"; - u2phy2_host = "/syscon@fd5d8000/usb2-phy@8000/host-port"; - hym8563_int = "/pinctrl/hym8563/hym8563-int"; - mailbox1 = "/mailbox@fec70000"; - pdm0m1_sdi3 = "/pinctrl/pdm0/pdm0m1-sdi3"; - combphy1_ps = "/phy@fee10000"; - hdptxphy0_grf = "/syscon@fd5e0000"; - sdei = "/firmware/sdei"; - vp0_out_dp1 = "/vop@fdd90000/ports/port@0/endpoint@3"; - uart5m2_xfer = "/pinctrl/uart5/uart5m2-xfer"; - uart9m2_ctsn = "/pinctrl/uart9/uart9m2-ctsn"; - uart2m1_xfer = "/pinctrl/uart2/uart2m1-xfer"; - dp0_out = "/dp@fde50000/ports/port@1/endpoint"; - uart6m1_ctsn = "/pinctrl/uart6/uart6m1-ctsn"; - route_rgb = "/display-subsystem/route/route-rgb"; - csidphy0_out1 = "/csi2-dphy0/ports/port@1/endpoint@0"; - i2c1 = "/i2c@fea90000"; - pinctrl_rk806 = "/spi@feb20000/rk806single@0/pinctrl_rk806"; - cpu_code = "/otp@fecc0000/cpu-code@2"; - pwm7 = "/pwm@febd0030"; - mipi5_csi2_hw = "/mipi5-csi2-hw@fdd60000"; - gpu_leakage = "/otp@fecc0000/gpu-leakage@1b"; - hdmi_debug2 = "/pinctrl/hdmi/hdmi-debug2"; - pdm0m0_clk = "/pinctrl/pdm0/pdm0m0-clk"; - gmac0_ppsclk = "/pinctrl/gmac0/gmac0-ppsclk"; - i2c8m4_xfer = "/pinctrl/i2c8/i2c8m4-xfer"; - vdd_npu_s0 = "/i2c@fea90000/rk8602@42"; - i2c5m3_xfer = "/pinctrl/i2c5/i2c5m3-xfer"; - i2c2m2_xfer = "/pinctrl/i2c2/i2c2m2-xfer"; - rockchip_system_monitor = "/rockchip-system-monitor"; - pcie30x4m2_pins = "/pinctrl/pcie30x4/pcie30x4m2-pins"; - pwm12 = "/pwm@febf0000"; - emmc_cmd = "/pinctrl/emmc/emmc-cmd"; - i2s1_8ch = "/i2s@fe480000"; - pcie30x1m1_pins = "/pinctrl/pcie30x1/pcie30x1m1-pins"; - uart4_ctsn = "/pinctrl/uart4/uart4-ctsn"; - vdd_cpu_big0_mem_s0 = "/i2c@fd880000/rk8602@42"; - pcfg_pull_none = "/pinctrl/pcfg-pull-none"; - i2s1m0_mclk = "/pinctrl/i2s1/i2s1m0-mclk"; - vp1_out_edp1 = "/vop@fdd90000/ports/port@1/endpoint@4"; - hdmi0_in_vp0 = "/hdmi@fde80000/ports/port@0/endpoint@0"; - vcc_4g = "/vcc-4g-regulator"; - firefly_leds = "/leds"; - jpege3 = "/jpege-core@fdbac000"; - l2_cache_b0 = "/cpus/l2-cache-b0"; - pmu1_grf = "/syscon@fd58a000"; - aclk_rkvenc1_pre = "/clocks/aclk_rkvenc1_pre@fd7c08c0"; - can1m0_pins = "/pinctrl/can1/can1m0-pins"; - spi0m3_pins = "/pinctrl/spi0/spi0m3-pins"; - pwm5m2_pins = "/pinctrl/pwm5/pwm5m2-pins"; - mipidphy0_in_ucam1 = "/csi2-dphy0/ports/port@0/endpoint@1"; - i2s0_lrck = "/pinctrl/i2s0/i2s0-lrck"; - clk32k_out0 = "/pinctrl/clk32k/clk32k-out0"; - dp1m0_pins = "/pinctrl/dp1/dp1m0-pins"; - pwm2m1_pins = "/pinctrl/pwm2/pwm2m1-pins"; - usbc0 = "/i2c@fec80000/fusb302@22"; - eth1_pins = "/pinctrl/eth1/eth1-pins"; - pcfg_pull_none_drv_level_1 = "/pinctrl/pcfg-pull-none-drv-level-1"; - csi2_dphy0_hw = "/csi2-dphy0-hw@fedc0000"; - pdm1m1_sdi3 = "/pinctrl/pdm1/pdm1m1-sdi3"; - dsi0_in_vp3 = "/dsi@fde20000/ports/port@0/endpoint@1"; - hdmim1_tx1_cec = "/pinctrl/hdmi/hdmim1-tx1-cec"; - usbc0_role_sw = "/i2c@fec80000/fusb302@22/ports/port@0/endpoint@0"; - uart6 = "/serial@feb90000"; - rkisp1_vir1 = "/rkisp1-vir1"; - sdhci = "/mmc@fe2e0000"; - uart6m2_xfer = "/pinctrl/uart6/uart6m2-xfer"; - target = "/thermal-zones/soc-thermal/trips/trip-point-1"; - rkcif_mipi_lvds_sditf_vir3 = "/rkcif-mipi-lvds-sditf-vir3"; - pcfg_pull_none_drv_level_0_smt = "/pinctrl/pcfg-pull-none-drv-level-0-smt"; - uart3m1_xfer = "/pinctrl/uart3/uart3m1-xfer"; - uart7m1_ctsn = "/pinctrl/uart7/uart7m1-ctsn"; - uart0m0_xfer = "/pinctrl/uart0/uart0m0-xfer"; - rgb_in_vp3 = "/syscon@fd58c000/rgb/ports/port@0/endpoint@2"; - rkcif_mipi_lvds5_sditf_vir2 = "/rkcif-mipi-lvds5-sditf-vir2"; - u2phy1 = "/syscon@fd5d4000/usb2-phy@4000"; - i2s5_8ch = "/i2s@fddf0000"; - i2s2m0_sdo = "/pinctrl/i2s2/i2s2m0-sdo"; - gpu = "/gpu@fb000000"; - spi0 = "/spi@feb00000"; - iep = "/iep@fdbb0000"; - pcfg_pull_up_drv_level_13 = "/pinctrl/pcfg-pull-up-drv-level-13"; - spdif_tx5 = "/spdif-tx@fddb8000"; - hdptxphy_hdmi_clk1 = "/hdmiphy@fed70000/clk-port"; - drm_logo = "/reserved-memory/drm-logo@00000000"; - i2s1m0_sdi1 = "/pinctrl/i2s1/i2s1m0-sdi1"; - rk806_dvs3_null = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs3_null"; - gmac1_ppsclk = "/pinctrl/gmac1/gmac1-ppsclk"; - usb_host0_ohci = "/usb@fc840000"; - mclkout_i2s1 = "/clocks/mclkout-i2s1@fd58c318"; - i2c6m3_xfer = "/pinctrl/i2c6/i2c6m3-xfer"; - i2c3m2_xfer = "/pinctrl/i2c3/i2c3m2-xfer"; - vop_opp_info = "/otp@fecc0000/vop-opp-info@61"; - cif_dvp_bus16 = "/pinctrl/cif/cif-dvp-bus16"; - i2c0m1_xfer = "/pinctrl/i2c0/i2c0m1-xfer"; - pcie30x2m1_pins = "/pinctrl/pcie30x2/pcie30x2m1-pins"; - mipidcphy0_grf = "/syscon@fd5e8000"; - vdd_cpu_big1_mem_s0 = "/i2c@fd880000/rk8603@43"; - pcie30phy = "/phy@fee80000"; - dmc = "/dmc"; - i2s2m0_mclk = "/pinctrl/i2s2/i2s2m0-mclk"; - mipidcphy1 = "/phy@fedb0000"; - dp1_sound = "/dp1-sound"; - hdmi1_in_vp0 = "/hdmi@fdea0000/ports/port@0/endpoint@0"; - scmi = "/firmware/scmi"; - pcfg_pull_up_drv_level_0 = "/pinctrl/pcfg-pull-up-drv-level-0"; - gmac1_clkinout = "/pinctrl/gmac1/gmac1-clkinout"; - pcfg_pull_down_drv_level_4 = "/pinctrl/pcfg-pull-down-drv-level-4"; - i2s0_sdo1 = "/pinctrl/i2s0/i2s0-sdo1"; - l3_cache = "/cpus/l3-cache"; - i2s3_idle = "/pinctrl/i2s3/i2s3-idle"; - pcfg_pull_none_drv_level_4_smt = "/pinctrl/pcfg-pull-none-drv-level-4-smt"; - litcpu_pins = "/pinctrl/litcpu/litcpu-pins"; - mipi1_csi2 = "/mipi1-csi2"; - can2m0_pins = "/pinctrl/can2/can2m0-pins"; - pwm6m2_pins = "/pinctrl/pwm6/pwm6m2-pins"; - usbdp_phy0 = "/phy@fed80000"; - pdm0m1_sdi1 = "/pinctrl/pdm0/pdm0m1-sdi1"; - pwm3m1_pins = "/pinctrl/pwm3/pwm3m1-pins"; - vdd_log_s0 = "/spi@feb20000/rk806single@0/regulators/DCDC_REG3"; - i2s9_8ch = "/i2s@fddfc000"; - pwm0m0_pins = "/pinctrl/pwm0/pwm0m0-pins"; - vcc_hub3_reset = "/vcc-hub3-reset-regulator"; - dsi1_in_vp3 = "/dsi@fde30000/ports/port@0/endpoint@1"; - otp_cpu_version = "/otp@fecc0000/cpu-version@1c"; - pcie2x1l0_intc = "/pcie@fe170000/legacy-interrupt-controller"; - spdif0m1_tx = "/pinctrl/spdif0/spdif0m1-tx"; - pcfg_pull_down_drv_level_15 = "/pinctrl/pcfg-pull-down-drv-level-15"; - XC7160 = "/i2c@fec80000/XC7160b@1b"; - rkcif_mipi_lvds4_sditf_vir3 = "/rkcif-mipi-lvds4-sditf-vir3"; - uart7m2_xfer = "/pinctrl/uart7/uart7m2-xfer"; - uart4m1_xfer = "/pinctrl/uart4/uart4m1-xfer"; - hdmim1_tx1_scl = "/pinctrl/hdmi/hdmim1-tx1-scl"; - hdmim1_tx1_sda = "/pinctrl/hdmi/hdmim1-tx1-sda"; - uart8m1_ctsn = "/pinctrl/uart8/uart8m1-ctsn"; - i2s2_2ch = "/i2s@fe490000"; - pwm5 = "/pwm@febd0010"; - uart1m0_xfer = "/pinctrl/uart1/uart1m0-xfer"; - uart5m0_ctsn = "/pinctrl/uart5/uart5m0-ctsn"; - fspim0_cs1 = "/pinctrl/fspi/fspim0-cs1"; - fspim0_pins = "/pinctrl/fspi/fspim0-pins"; - rkisp0_vir3 = "/rkisp0-vir3"; - l2_cache_l3 = "/cpus/l2-cache-l3"; - rk806_dvs3_dvs = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs3_dvs"; - hdmi_debug0 = "/pinctrl/hdmi/hdmi-debug0"; - hdmim1_tx1_hpd = "/pinctrl/hdmi/hdmim1-tx1-hpd"; - vp1_out_dp0 = "/vop@fdd90000/ports/port@1/endpoint@0"; - qos_isp0_mro = "/qos@fdf40400"; - spi0m2_cs1 = "/pinctrl/spi0/spi0m2-cs1"; - vdd_gpu_s0 = "/spi@feb20000/rk806single@0/regulators/DCDC_REG1"; - tsadc_shut = "/pinctrl/tsadc/tsadc-shut"; - pwm10 = "/pwm@febe0020"; - i2c7m3_xfer = "/pinctrl/i2c7/i2c7m3-xfer"; - rktimer = "/timer@feae0000"; - cpub0_leakage = "/otp@fecc0000/cpub0-leakage@17"; - i2c4m2_xfer = "/pinctrl/i2c4/i2c4m2-xfer"; - hclk_rkvdec1_pre = "/clocks/hclk_rkvdec1_pre@fd7c08a4"; - pcie30phy_pins = "/pinctrl/pcie30phy/pcie30phy-pins"; - jpege1 = "/jpege-core@fdba4000"; - pcfg_pull_none_drv_level_14 = "/pinctrl/pcfg-pull-none-drv-level-14"; - i2c1m1_xfer = "/pinctrl/i2c1/i2c1m1-xfer"; - rkcif_dvp_sditf = "/rkcif-dvp-sditf"; - rkcif_mipi_lvds4_sditf = "/rkcif-mipi-lvds4-sditf"; - vp2_out_dp1 = "/vop@fdd90000/ports/port@2/endpoint@5"; - vp2_out_dsi0 = "/vop@fdd90000/ports/port@2/endpoint@3"; - its1 = "/interrupt-controller@fe600000/msi-controller@fe660000"; - cpu_b3 = "/cpus/cpu@700"; - vcc_hub_reset = "/vcc-hub-reset-regulator"; - spi1m1_cs1 = "/pinctrl/spi1/spi1m1-cs1"; - vdd_npu_mem_s0 = "/i2c@fea90000/rk8602@42"; - pwm7m2_pins = "/pinctrl/pwm7/pwm7m2-pins"; - pdm1m1_sdi1 = "/pinctrl/pdm1/pdm1m1-sdi1"; - vbus5v0_typec_pwr_en = "/vbus5v0-typec-pwr-en-regulator"; - pwm4m1_pins = "/pinctrl/pwm4/pwm4m1-pins"; - dmc_opp_table = "/dmc-opp-table"; - pcie30x4_button_rstn = "/pinctrl/pcie30x4/pcie30x4-button-rstn"; - uart4 = "/serial@feb70000"; - pwm1m0_pins = "/pinctrl/pwm1/pwm1m0-pins"; - spi0m0_cs0 = "/pinctrl/spi0/spi0m0-cs0"; - pldo6_s3 = "/spi@feb20000/rk806single@0/regulators/PLDO_REG6"; - mipim1_camera2_clk = "/pinctrl/mipi/mipim1-camera2-clk"; - mipim0_camera0_clk = "/pinctrl/mipi/mipim0-camera0-clk"; - rkcif_mipi_lvds_sditf_vir1 = "/rkcif-mipi-lvds-sditf-vir1"; - pcfg_pull_up_drv_level_9 = "/pinctrl/pcfg-pull-up-drv-level-9"; - dmac2 = "/dma-controller@fed10000"; - pdm0m0_sdi3 = "/pinctrl/pdm0/pdm0m0-sdi3"; - qos_gpu_m2 = "/qos@fdf35400"; - i2s0_sdi3 = "/pinctrl/i2s0/i2s0-sdi3"; - cluster0_opp_table = "/cluster0-opp-table"; - spi2m0_cs1 = "/pinctrl/spi2/spi2m0-cs1"; - otp_id = "/otp@fecc0000/id@7"; - uart5m1_xfer = "/pinctrl/uart5/uart5m1-xfer"; - uart9m1_ctsn = "/pinctrl/uart9/uart9m1-ctsn"; - qos_rga3_0 = "/qos@fdf67000"; - usbdp_phy0_dp = "/phy@fed80000/dp-port"; - uart2m0_xfer = "/pinctrl/uart2/uart2m0-xfer"; - uart6m0_ctsn = "/pinctrl/uart6/uart6m0-ctsn"; - npu_pins = "/pinctrl/npu/npu-pins"; - pcfg_pull_up_drv_level_11 = "/pinctrl/pcfg-pull-up-drv-level-11"; - spdif_tx3 = "/spdif-tx@fdde0000"; - rkispp0 = "/rkispp@fdcd0000"; - xin32k = "/clocks/xin32k"; - vcc_1v8_s3 = "/spi@feb20000/rk806single@0/regulators/DCDC_REG10"; - qos_usb2host_1 = "/qos@fdf3e600"; - bt_sco = "/bt-sco"; - pcfg_output_high_pull_none = "/pinctrl/pcfg-output-high-pull-none"; - adc_keys = "/adc-keys"; - rkcif_mipi_lvds4 = "/rkcif-mipi-lvds4"; - i2c8 = "/i2c@feca0000"; - dp0 = "/dp@fde50000"; - mipi_te1 = "/pinctrl/mipi/mipi-te1"; - i2c8m3_xfer = "/pinctrl/i2c8/i2c8m3-xfer"; - i2c5m2_xfer = "/pinctrl/i2c5/i2c5m2-xfer"; - pcie30x2_button_rstn = "/pinctrl/pcie30x2/pcie30x2-button-rstn"; - syssram = "/sram@ff001000"; - pcfg_pull_down_drv_level_2 = "/pinctrl/pcfg-pull-down-drv-level-2"; - qos_hdmirx = "/qos@fdf81200"; - i2c2m1_xfer = "/pinctrl/i2c2/i2c2m1-xfer"; - pcie30x4m1_pins = "/pinctrl/pcie30x4/pcie30x4m1-pins"; - vdd_0v75_s0 = "/spi@feb20000/rk806single@0/regulators/NLDO_REG5"; - hw_decompress = "/decompress@fea80000"; - pcie30x1m0_pins = "/pinctrl/pcie30x1/pcie30x1m0-pins"; - mipim0_camera4_clk = "/pinctrl/mipi/mipim0-camera4-clk"; - gmac1_txer = "/pinctrl/gmac1/gmac1-txer"; - uart3_ctsn = "/pinctrl/uart3/uart3-ctsn"; - vcc_sdcard_pwr_en = "/vcc-sdcard-pwr-en-regulator"; - mipi0_csi2_hw = "/mipi0-csi2-hw@fdd10000"; - rkvenc1_mmu = "/iommu@fdbef000"; - edp0 = "/edp@fdec0000"; - rkvenc_ccu = "/rkvenc-ccu"; - rk806_dvs3_rst = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs3_rst"; - power = "/power-management@fd8d8000/power-controller"; - vad = "/vad@fe4d0000"; - spi3m3_pins = "/pinctrl/spi3/spi3m3-pins"; - pwm8m2_pins = "/pinctrl/pwm8/pwm8m2-pins"; - spi0m2_pins = "/pinctrl/spi0/spi0m2-pins"; - pwm5m1_pins = "/pinctrl/pwm5/pwm5m1-pins"; - vcc_3v3_s0 = "/spi@feb20000/rk806single@0/regulators/PLDO_REG4"; - aclk_isp1_pre = "/clocks/aclk_isp1_pre@fd7c0868"; - pwm2m0_pins = "/pinctrl/pwm2/pwm2m0-pins"; - i2s1m1_sdo2 = "/pinctrl/i2s1/i2s1m1-sdo2"; - pcfg_pull_down_drv_level_13 = "/pinctrl/pcfg-pull-down-drv-level-13"; - eth0_pins = "/pinctrl/eth0/eth0-pins"; - rkcif_mipi_lvds4_sditf_vir1 = "/rkcif-mipi-lvds4-sditf-vir1"; - pwm3 = "/pwm@fd8b0030"; - pdm1m0_sdi3 = "/pinctrl/pdm1/pdm1m0-sdi3"; - rkcif_mmu = "/iommu@fdce0800"; - usbc0_int = "/pinctrl/usb-typec/usbc0-int"; - gmac0_tx_bus2 = "/pinctrl/gmac0/gmac0-tx-bus2"; - sata2 = "/sata@fe230000"; - uart9m2_xfer = "/pinctrl/uart9/uart9m2-xfer"; - dp0_in_vp2 = "/dp@fde50000/ports/port@0/endpoint@2"; - hdmiin_sound = "/hdmiin-sound"; - rkisp0_vir1 = "/rkisp0-vir1"; - uart6_gpios = "/pinctrl/wireless-bluetooth/uart6-gpios"; - spi3m3_cs1 = "/pinctrl/spi3/spi3m3-cs1"; - l2_cache_l1 = "/cpus/l2-cache-l1"; - pcfg_pull_none_drv_level_8 = "/pinctrl/pcfg-pull-none-drv-level-8"; - uart6m1_xfer = "/pinctrl/uart6/uart6m1-xfer"; - pwm11m3_pins = "/pinctrl/pwm11/pwm11m3-pins"; - vp2_out_hdmi0 = "/vop@fdd90000/ports/port@2/endpoint@2"; - qos_hdcp1 = "/qos@fdf81000"; - scmi_reset = "/firmware/scmi/protocol@16"; - vdd_cpu_lit_mem_s0 = "/spi@feb20000/rk806single@0/regulators/DCDC_REG2"; - i2s0_mclk = "/pinctrl/i2s0/i2s0-mclk"; - uart3m0_xfer = "/pinctrl/uart3/uart3m0-xfer"; - uart7m0_ctsn = "/pinctrl/uart7/uart7m0-ctsn"; - usbhost_dwc3_0 = "/usbhost3_0/usb@fcd00000"; - hdmim0_rx_hpdin = "/pinctrl/hdmi/hdmim0-rx-hpdin"; - edp0_out = "/edp@fdec0000/ports/port@1/endpoint"; - rkisp0 = "/rkisp@fdcb0000"; - dsu_grf = "/syscon@fd598000"; - vcc_fan_pwr_en = "/vcc-fan-pwr-en-regulator"; - gmac1_rx_bus2 = "/pinctrl/gmac1/gmac1-rx-bus2"; - uart1m2_rtsn = "/pinctrl/uart1/uart1m2-rtsn"; - csi2_dcphy0 = "/csi2-dcphy0"; - usb2phy0_grf = "/syscon@fd5d0000"; - scmi_clk = "/firmware/scmi/protocol@14"; - emmc_clk = "/pinctrl/emmc/emmc-clk"; - jpege1_mmu = "/iommu@fdba4800"; - qos_rkvenc1_m1ro = "/qos@fdf61200"; - spi2m2_cs0 = "/pinctrl/spi2/spi2m2-cs0"; - vcc5v0_host = "/vcc5v0-host"; - cru = "/clock-controller@fd7c0000"; - hdmim0_tx0_cec = "/pinctrl/hdmi/hdmim0-tx0-cec"; - pcfg_pull_none_drv_level_12 = "/pinctrl/pcfg-pull-none-drv-level-12"; - rk806_dvs2_null = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs2_null"; - cpub01_opp_info = "/otp@fecc0000/cpub01-opp-info@43"; - i2s3_sdi = "/pinctrl/i2s3/i2s3-sdi"; - aclk_rkvdec0_pre = "/clocks/aclk_rkvdec0_pre@fd7c08a0"; - cpu_b1 = "/cpus/cpu@500"; - i2c6m2_xfer = "/pinctrl/i2c6/i2c6m2-xfer"; - rknpu_mmu = "/iommu@fdab9000"; - rkcif_mipi_lvds_sditf = "/rkcif-mipi-lvds-sditf"; - i2c3m1_xfer = "/pinctrl/i2c3/i2c3m1-xfer"; - i2c0m0_xfer = "/pinctrl/i2c0/i2c0m0-xfer"; - pcie30x2m0_pins = "/pinctrl/pcie30x2/pcie30x2m0-pins"; - qos_isp1_mwo = "/qos@fdf41000"; - mipi2_csi2_output1 = "/mipi2-csi2/ports/port@1/endpoint@0"; - gmac1_stmmac_axi_setup = "/ethernet@fe1c0000/stmmac-axi-config"; - vcc5v0_usbdcin = "/vcc5v0-usbdcin"; - spi3m1_cs0 = "/pinctrl/spi3/spi3m1-cs0"; - reboot_mode = "/syscon@fd588000/reboot-mode"; - rga3_0_mmu = "/iommu@fdb60f00"; - uart2 = "/serial@feb50000"; - imx415_out0 = "/i2c@fec80000/imx415@37/port/endpoint"; - rkcif_mipi_lvds3_sditf_vir2 = "/rkcif-mipi-lvds3-sditf-vir2"; - pwm9m2_pins = "/pinctrl/pwm9/pwm9m2-pins"; - fec0_mmu = "/iommu@fdcd0f00"; - mipi0_csi2 = "/mipi0-csi2"; - spi1m2_pins = "/pinctrl/spi1/spi1m2-pins"; - pcfg_pull_up_drv_level_7 = "/pinctrl/pcfg-pull-up-drv-level-7"; - pwm6m1_pins = "/pinctrl/pwm6/pwm6m1-pins"; - tsadc_shut_org = "/pinctrl/tsadc/tsadc-shut-org"; - qos_rkvdec1 = "/qos@fdf63000"; - dmac0 = "/dma-controller@fea10000"; - vp2_out_edp1 = "/vop@fdd90000/ports/port@2/endpoint@6"; - pdm0m0_sdi1 = "/pinctrl/pdm0/pdm0m0-sdi1"; - qos_gpu_m0 = "/qos@fdf35000"; - pwm3m0_pins = "/pinctrl/pwm3/pwm3m0-pins"; - i2s0_sdi1 = "/pinctrl/i2s0/i2s0-sdi1"; - qos_av1 = "/qos@fdf64000"; - pcfg_output_low = "/pinctrl/pcfg-output-low"; - spdif_tx1 = "/spdif-tx@fe4f0000"; - hdptxphy1_grf = "/syscon@fd5e4000"; - spi4m0_cs0 = "/pinctrl/spi4/spi4m0-cs0"; - dp1_in_vp2 = "/dp@fde60000/ports/port@0/endpoint@2"; - jpegd_mmu = "/iommu@fdb90480"; - sata0m1_pins = "/pinctrl/sata0/sata0m1-pins"; - uart7m1_xfer = "/pinctrl/uart7/uart7m1-xfer"; - vp1_out_hdmi1 = "/vop@fdd90000/ports/port@1/endpoint@5"; - dp1_out = "/dp@fde60000/ports/port@1/endpoint"; - otp = "/otp@fecc0000"; - uart4m0_xfer = "/pinctrl/uart4/uart4m0-xfer"; - uart8m0_ctsn = "/pinctrl/uart8/uart8m0-ctsn"; - hdcp1 = "/hdcp@fde70000"; - rkcif_mipi_lvds2 = "/rkcif-mipi-lvds2"; - i2c6 = "/i2c@fec80000"; - qos_jpeg_enc3 = "/qos@fdf66a00"; - i2s2m1_idle = "/pinctrl/i2s2/i2s2m1-idle"; - refclk_pins = "/pinctrl/refclk/refclk-pins"; - pcie3x4_intc = "/pcie@fe150000/legacy-interrupt-controller"; - hdptxphy_hdmi1 = "/hdmiphy@fed70000"; - mipi2_lvds2_sditf = "/rkcif-mipi-lvds2-sditf/port/endpoint"; - pdm1 = "/pdm@fe4c0000"; - vdd_cpu_lit_s0 = "/spi@feb20000/rk806single@0/regulators/DCDC_REG2"; - pdm0m1_clk = "/pinctrl/pdm0/pdm0m1-clk"; - pcfg_pull_down_drv_level_0 = "/pinctrl/pcfg-pull-down-drv-level-0"; - qos_vicap_m0 = "/qos@fdf40600"; - gic = "/interrupt-controller@fe600000"; - vdd_cpu_big1_s0 = "/i2c@fd880000/rk8603@43"; - uart0_rtsn = "/pinctrl/uart0/uart0-rtsn"; - i2c7m2_xfer = "/pinctrl/i2c7/i2c7m2-xfer"; - mclkin_i2s3 = "/clocks/mclkin-i2s3"; - hdmim0_tx0_scl = "/pinctrl/hdmi/hdmim0-tx0-scl"; - hdmim0_tx0_sda = "/pinctrl/hdmi/hdmim0-tx0-sda"; - i2c4m1_xfer = "/pinctrl/i2c4/i2c4m1-xfer"; - spdif1m0_tx = "/pinctrl/spdif1/spdif1m0-tx"; - sdmmc_det = "/pinctrl/sdmmc/sdmmc-det"; - i2c1m0_xfer = "/pinctrl/i2c1/i2c1m0-xfer"; - rkcif_mipi_lvds2_sditf_vir3 = "/rkcif-mipi-lvds2-sditf-vir3"; - hdptxphy1 = "/phy@fed70000"; - route_dp1 = "/display-subsystem/route/route-dp1"; - hdmim0_tx0_hpd = "/pinctrl/hdmi/hdmim0-tx0-hpd"; - i2s1m1_sdo0 = "/pinctrl/i2s1/i2s1m1-sdo0"; - pdm1m0_clk = "/pinctrl/pdm1/pdm1m0-clk"; - pcfg_pull_down_drv_level_11 = "/pinctrl/pcfg-pull-down-drv-level-11"; - usbdrd3_1 = "/usbdrd3_1"; - spi2m2_pins = "/pinctrl/spi2/spi2m2-pins"; - pwm7m1_pins = "/pinctrl/pwm7/pwm7m1-pins"; - rkcif_mipi_lvds1_sditf = "/rkcif-mipi-lvds1-sditf"; - pwm1 = "/pwm@fd8b0010"; - pdm1m0_sdi1 = "/pinctrl/pdm1/pdm1m0-sdi1"; - threshold = "/thermal-zones/soc-thermal/trips/trip-point-0"; - pwm4m0_pins = "/pinctrl/pwm4/pwm4m0-pins"; - sata0 = "/sata@fe210000"; - dp0_in_vp0 = "/dp@fde50000/ports/port@0/endpoint@0"; - can2 = "/can@fea70000"; - pcfg_pull_none_drv_level_6 = "/pinctrl/pcfg-pull-none-drv-level-6"; - usbdrd_dwc3_0 = "/usbdrd3_0/usb@fc000000"; - rkvenc0 = "/rkvenc-core@fdbd0000"; - bt_reset_gpio = "/pinctrl/wireless-bluetooth/bt-reset-gpio"; - sata1m1_pins = "/pinctrl/sata1/sata1m1-pins"; - spll = "/clocks/spll"; - uart8m1_xfer = "/pinctrl/uart8/uart8m1-xfer"; - sata_pins = "/pinctrl/sata/sata-pins"; - pcfg_pull_none_drv_level_1_smt = "/pinctrl/pcfg-pull-none-drv-level-1-smt"; - qos_npu1 = "/qos@fdf70000"; - uart5m0_xfer = "/pinctrl/uart5/uart5m0-xfer"; - uart9m0_ctsn = "/pinctrl/uart9/uart9m0-ctsn"; - pwm10m2_pins = "/pinctrl/pwm10/pwm10m2-pins"; - rk806_dvs1_pwrdn = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs1_pwrdn"; - pipe_phy0_grf = "/syscon@fd5bc000"; - es8388 = "/i2c@fec80000/es8388@11"; - spdif_rx2 = "/spdif-rx@fde18000"; - usb_host1_ehci = "/usb@fc880000"; - xin24m = "/clocks/xin24m"; - pcie20x1_2_button_rstn = "/pinctrl/pcie20x1/pcie20x1-2-button-rstn"; - mipi2_csi2_hw = "/mipi2-csi2-hw@fdd30000"; - acdcdig_dsm = "/codec-digital@fe500000"; - vop_grf = "/syscon@fd5a4000"; - rk806_dvs1_slp = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs1_slp"; - i2s6_8ch = "/i2s@fddf4000"; - i2s2m1_sdo = "/pinctrl/i2s2/i2s2m1-sdo"; - pcie30x1_1_button_rstn = "/pinctrl/pcie30x1/pcie30x1-1-button-rstn"; - pcfg_output_low_pull_down = "/pinctrl/pcfg-output-low-pull-down"; - pcfg_pull_none_drv_level_10 = "/pinctrl/pcfg-pull-none-drv-level-10"; - pdm0m1_clk1 = "/pinctrl/pdm0/pdm0m1-clk1"; - mipidphy0_grf = "/syscon@fd5b4000"; - route_dsi1 = "/display-subsystem/route/route-dsi1"; - route_hdmi0 = "/display-subsystem/route/route-hdmi0"; - rkvdec_ccu = "/rkvdec-ccu@fdc30000"; - csi2_dphy4 = "/csi2-dphy4"; - gmac1_rgmii_bus = "/pinctrl/gmac1/gmac1-rgmii-bus"; - qos_sdio = "/qos@fdf39000"; - tsadc = "/tsadc@fec00000"; - pcfg_output_high_pull_up = "/pinctrl/pcfg-output-high-pull-up"; - hclk_usb = "/clocks/hclk_usb@fd7c08a8"; - avcc_1v8_s0 = "/spi@feb20000/rk806single@0/regulators/PLDO_REG1"; - edp0_in_vp2 = "/edp@fdec0000/ports/port@0/endpoint@2"; - mdio1 = "/ethernet@fe1c0000/mdio"; - gpio3 = "/pinctrl/gpio@fec40000"; - gpu_opp_table = "/gpu-opp-table"; - cif_mipi2_in0 = "/rkcif-mipi-lvds2/port/endpoint"; - pcfg_output_high = "/pinctrl/pcfg-output-high"; - i2c8m2_xfer = "/pinctrl/i2c8/i2c8m2-xfer"; - vdpu_mmu = "/iommu@fdb50800"; - i2c5m1_xfer = "/pinctrl/i2c5/i2c5m1-xfer"; - combphy0_ps = "/phy@fee00000"; - rgb = "/syscon@fd58c000/rgb"; - hclk_vo1 = "/clocks/hclk_vo1@fd7c08ec"; - i2c2m0_xfer = "/pinctrl/i2c2/i2c2m0-xfer"; - uart0 = "/serial@fd890000"; - mipidcphy1_grf = "/syscon@fd5ec000"; - pcie30x4m0_pins = "/pinctrl/pcie30x4/pcie30x4m0-pins"; - vdd_ddr_pll_s0 = "/spi@feb20000/rk806single@0/regulators/NLDO_REG2"; - gmac0_txer = "/pinctrl/gmac0/gmac0-txer"; - uart2_ctsn = "/pinctrl/uart2/uart2-ctsn"; - pcfg_pull_up_drv_level_5 = "/pinctrl/pcfg-pull-up-drv-level-5"; - pcfg_pull_down_drv_level_9 = "/pinctrl/pcfg-pull-down-drv-level-9"; - pcfg_pull_none_drv_level_5_smt = "/pinctrl/pcfg-pull-none-drv-level-5-smt"; - i2s2m0_sdi = "/pinctrl/i2s2/i2s2m0-sdi"; - qos_rga2_mwo = "/qos@fdf66e00"; - spi3m2_pins = "/pinctrl/spi3/spi3m2-pins"; - pwm8m1_pins = "/pinctrl/pwm8/pwm8m1-pins"; - dsi1_in = "/dsi@fde30000/ports/port@0"; - vp3_out_dsi0 = "/vop@fdd90000/ports/port@3/endpoint@0"; - pclk_vo0_grf = "/clocks/pclk_vo0_grf@fd7c08dc"; - spi0m1_pins = "/pinctrl/spi0/spi0m1-pins"; - pwm5m0_pins = "/pinctrl/pwm5/pwm5m0-pins"; - bt1120_pins = "/pinctrl/bt1120/bt1120-pins"; - dp1_in_vp0 = "/dp@fde60000/ports/port@0/endpoint@0"; - i2s1m0_sdo2 = "/pinctrl/i2s1/i2s1m0-sdo2"; - mipi2_csi2_input0 = "/mipi2-csi2/ports/port@0/endpoint@0"; - u2phy0_otg = "/syscon@fd5d0000/usb2-phy@0/otg-port"; - vp0_out_edp0 = "/vop@fdd90000/ports/port@0/endpoint@1"; - qos_fisheye0 = "/qos@fdf40000"; - i2c4 = "/i2c@feac0000"; - sata2m1_pins = "/pinctrl/sata2/sata2m1-pins"; - uart9m1_xfer = "/pinctrl/uart9/uart9m1-xfer"; - qos_jpeg_enc1 = "/qos@fdf66600"; - i2s1m1_sdi2 = "/pinctrl/i2s1/i2s1m1-sdi2"; - i2s3_2ch = "/i2s@fe4a0000"; - uart6m0_xfer = "/pinctrl/uart6/uart6m0-xfer"; - cpul_leakage = "/otp@fecc0000/cpul-leakage@19"; - pwm11m2_pins = "/pinctrl/pwm11/pwm11m2-pins"; - fspim1_cs1 = "/pinctrl/fspi/fspim1-cs1"; - vdd_vdenc_s0 = "/spi@feb20000/rk806single@0/regulators/DCDC_REG4"; - pdm1m1_clk1 = "/pinctrl/pdm1/pdm1m1-clk1"; - hdmi_debug5 = "/pinctrl/hdmi/hdmi-debug5"; - uart1m1_rtsn = "/pinctrl/uart1/uart1m1-rtsn"; - qos_isp1_mro = "/qos@fdf41100"; - ddrphych3_pins = "/pinctrl/ddrphych3/ddrphych3-pins"; - spi0m3_cs1 = "/pinctrl/spi0/spi0m3-cs1"; - qos_rkvenc0_m1ro = "/qos@fdf60200"; - qos_jpeg_dec = "/qos@fdf66200"; - mclkin_i2s1 = "/clocks/mclkin-i2s1"; - edp1_in_vp2 = "/edp@fded0000/ports/port@0/endpoint@2"; - pcie30_avdd0v75 = "/pcie30-avdd0v75"; - isp0_mmu = "/iommu@fdcb7f00"; - qos_npu0_mwr = "/qos@fdf72000"; - rkvdec0 = "/rkvdec-core@fdc38000"; - rkvdec0_mmu = "/iommu@fdc38700"; - rk806_dvs1_null = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs1_null"; - pwm15 = "/pwm@febf0030"; - vop_mmu = "/iommu@fdd97e00"; - rkcif_mipi_lvds2_sditf_vir1 = "/rkcif-mipi-lvds2-sditf-vir1"; - pcie2x1l2 = "/pcie@fe190000"; - i2c6m1_xfer = "/pinctrl/i2c6/i2c6m1-xfer"; - package_serial_number_low = "/otp@fecc0000/package-serial-number-low@6"; - iep_mmu = "/iommu@fdbb0800"; - l2_cache_b3 = "/cpus/l2-cache-b3"; - i2c3m0_xfer = "/pinctrl/i2c3/i2c3m0-xfer"; - vcc_1v1_nldo_s3 = "/vcc-1v1-nldo-s3"; - spi1m2_cs1 = "/pinctrl/spi1/spi1m2-cs1"; - pdm0m1_idle = "/pinctrl/pdm0/pdm0m1-idle"; - can0 = "/can@fea50000"; - spi4m2_pins = "/pinctrl/spi4/spi4m2-pins"; - pcfg_pull_none_drv_level_4 = "/pinctrl/pcfg-pull-none-drv-level-4"; - pwm9m1_pins = "/pinctrl/pwm9/pwm9m1-pins"; - arm_pmu = "/arm-pmu"; - vp2 = "/vop@fdd90000/ports/port@2"; - rk806single = "/spi@feb20000/rk806single@0"; - spi1m1_pins = "/pinctrl/spi1/spi1m1-pins"; - pwm6m0_pins = "/pinctrl/pwm6/pwm6m0-pins"; - rng = "/rng@fe378000"; - cpu_l2 = "/cpus/cpu@200"; - uart9 = "/serial@febc0000"; - spi0m1_cs0 = "/pinctrl/spi0/spi0m1-cs0"; - rk806_dvs3_gpio = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs3_gpio"; - rkcif_mipi_lvds5_sditf = "/rkcif-mipi-lvds5-sditf"; - usbdpphy0_grf = "/syscon@fd5c8000"; - mipim1_camera3_clk = "/pinctrl/mipi/mipim1-camera3-clk"; - pcie_clk3 = "/pcie-clk3"; - mipim0_camera1_clk = "/pinctrl/mipi/mipim0-camera1-clk"; - vp0_out_hdmi0 = "/vop@fdd90000/ports/port@0/endpoint@2"; - rkcif = "/rkcif@fdce0000"; - gmac0_rgmii_clk = "/pinctrl/gmac0/gmac0-rgmii-clk"; - wdt_en_base = "/pinctrl/wdt-pc9202/wdt-en-base"; - vp3_out_rgb = "/vop@fdd90000/ports/port@3/endpoint@2"; - spdif_rx0 = "/spdif-rx@fde08000"; - sdmmc_bus4 = "/pinctrl/sdmmc/sdmmc-bus4"; - hdmim2_tx0_scl = "/pinctrl/hdmi/hdmim2-tx0-scl"; - hdmim2_tx0_sda = "/pinctrl/hdmi/hdmim2-tx0-sda"; - spi2m1_cs1 = "/pinctrl/spi2/spi2m1-cs1"; - pwm15m3_pins = "/pinctrl/pwm15/pwm15m3-pins"; - sata0m0_pins = "/pinctrl/sata0/sata0m0-pins"; - uart7m0_xfer = "/pinctrl/uart7/uart7m0-xfer"; - csi2_dphy2 = "/csi2-dphy2"; - spi3 = "/spi@feb30000"; - edp0_in_vp0 = "/edp@fdec0000/ports/port@0/endpoint@0"; - gpio1 = "/pinctrl/gpio@fec20000"; - tsadcm1_shut = "/pinctrl/tsadc/tsadcm1-shut"; - usbdp_phy0_dp_altmode_mux = "/phy@fed80000/port/endpoint@1"; - i2s2m0_idle = "/pinctrl/i2s2/i2s2m0-idle"; - spi1m0_cs0 = "/pinctrl/spi1/spi1m0-cs0"; - rkcif_mipi_lvds1_sditf_vir2 = "/rkcif-mipi-lvds1-sditf-vir2"; - i2s3_sclk = "/pinctrl/i2s3/i2s3-sclk"; - hdmim1_rx_hpdin = "/pinctrl/hdmi/hdmim1-rx-hpdin"; - spi3m0_cs1 = "/pinctrl/spi3/spi3m0-cs1"; - mipi_dcphy1 = "/mipi-dcphy-dummy"; - vcc5v0_sys = "/vcc5v0-sys"; - aclk_hdcp0_pre = "/clocks/aclk_hdcp0_pre@fd7c08dc"; - usb_con = "/i2c@fec80000/fusb302@22/connector"; - hdmirx_ctrler = "/hdmirx-controller@fdee0000"; - i2c7m1_xfer = "/pinctrl/i2c7/i2c7m1-xfer"; - pcfg_pull_up_drv_level_3 = "/pinctrl/pcfg-pull-up-drv-level-3"; - rgmii_phy1 = "/ethernet@fe1c0000/mdio/phy@1"; - i2c4m0_xfer = "/pinctrl/i2c4/i2c4m0-xfer"; - pcfg_pull_down_drv_level_7 = "/pinctrl/pcfg-pull-down-drv-level-7"; - spdif0m0_tx = "/pinctrl/spdif0/spdif0m0-tx"; - wdt = "/watchdog@feaf0000"; - vdd_0v85_s0 = "/spi@feb20000/rk806single@0/regulators/NLDO_REG4"; - cspmu = "/cspmu@fd10c000"; - av1d_mmu = "/iommu@fdca0000"; - mailbox2 = "/mailbox@fece0000"; - mipi4_csi2_hw = "/mipi4-csi2-hw@fdd50000"; - pdm1m1_idle = "/pinctrl/pdm1/pdm1m1-idle"; - rga3_core0 = "/rga@fdb60000"; - i2s1m0_sdo0 = "/pinctrl/i2s1/i2s1m0-sdo0"; - bigcore1_thermal = "/thermal-zones/bigcore1-thermal"; - pcfg_output_low_pull_up = "/pinctrl/pcfg-output-low-pull-up"; - spi2m1_pins = "/pinctrl/spi2/spi2m1-pins"; - pwm7m0_pins = "/pinctrl/pwm7/pwm7m0-pins"; - i2c2 = "/i2c@feaa0000"; - npu_grf = "/syscon@fd5a2000"; - i2s1m1_sdi0 = "/pinctrl/i2s1/i2s1m1-sdi0"; - mipi5_csi2 = "/mipi5-csi2"; - pwm8 = "/pwm@febe0000"; - log_leakage = "/otp@fecc0000/log-leakage@1a"; - cpub23_opp_info = "/otp@fecc0000/cpub23-opp-info@49"; - vdd_vdenc_mem_s0 = "/spi@feb20000/rk806single@0/regulators/DCDC_REG4"; - rga2 = "/rga@fdb80000"; - emmc_bus8 = "/pinctrl/emmc/emmc-bus8"; - qos_usb3_0 = "/qos@fdf3e200"; - sata1m0_pins = "/pinctrl/sata1/sata1m0-pins"; - uart8m0_xfer = "/pinctrl/uart8/uart8m0-xfer"; - pwm13m2_pins = "/pinctrl/pwm13/pwm13m2-pins"; - hdmi_debug3 = "/pinctrl/hdmi/hdmi-debug3"; - cam0_or_cam1_switch_pin = "/pinctrl/cam/cam0-or-cam1-switch-pin"; - mcum1_pins = "/pinctrl/mcu/mcum1-pins"; - pwm10m1_pins = "/pinctrl/pwm10/pwm10m1-pins"; - edp1_out = "/edp@fded0000/ports/port@1/endpoint"; - hclk_sdio_pre = "/clocks/hclk_sdio_pre@fd7c092c"; - usb_host0_ehci = "/usb@fc800000"; - edp1_in_vp0 = "/edp@fded0000/ports/port@0/endpoint@0"; - gmac1 = "/ethernet@fe1c0000"; - i2s10_8ch = "/i2s@fde00000"; - hdmi1_in = "/hdmi@fdea0000/ports/port@0"; - usb2phy1_grf = "/syscon@fd5d4000"; - pdm0m0_clk1 = "/pinctrl/pdm0/pdm0m0-clk1"; - jpege2_mmu = "/iommu@fdba8800"; - pwm13 = "/pwm@febf0010"; - pcie2x1l0 = "/pcie@fe170000"; - hdmi0_in_vp1 = "/hdmi@fde80000/ports/port@0/endpoint@1"; - hdmim0_tx1_cec = "/pinctrl/hdmi/hdmim0-tx1-cec"; - l2_cache_b1 = "/cpus/l2-cache-b1"; - cif_dvp_bus8 = "/pinctrl/cif/cif-dvp-bus8"; - qos_rga2_mro = "/qos@fdf66c00"; - aclk_rkvdec1_pre = "/clocks/aclk_rkvdec1_pre@fd7c08a4"; - i2c8m1_xfer = "/pinctrl/i2c8/i2c8m1-xfer"; - vdd_ddr_s0 = "/spi@feb20000/rk806single@0/regulators/DCDC_REG5"; - hdmirx_det = "/pinctrl/hdmirx/hdmirx-det"; - pca9555 = "/i2c@feab0000/gpio@21"; - qos_sdmmc = "/qos@fdf3d800"; - clk32k_out1 = "/pinctrl/clk32k/clk32k-out1"; - i2c5m0_xfer = "/pinctrl/i2c5/i2c5m0-xfer"; - cif_dvp_clk = "/pinctrl/cif/cif-dvp-clk"; - rknpu = "/npu@fdab0000"; - pcfg_pull_none_drv_level_2 = "/pinctrl/pcfg-pull-none-drv-level-2"; - spi3m2_cs0 = "/pinctrl/spi3/spi3m2-cs0"; - vp0 = "/vop@fdd90000/ports/port@0"; - rga3_1_mmu = "/iommu@fdb70f00"; - jtagm2_pins = "/pinctrl/jtag/jtagm2-pins"; - cpu_l0 = "/cpus/cpu@0"; - uart7 = "/serial@feba0000"; - rkisp1_vir2 = "/rkisp1-vir2"; - fec1_mmu = "/iommu@fdcd8f00"; - qos_vop_m0 = "/qos@fdf82000"; - pcie_clk1 = "/pcie-clk1"; - gmac1_ptp_ref_clk = "/pinctrl/gmac1/gmac1-ptp-ref-clk"; - spi3m1_pins = "/pinctrl/spi3/spi3m1-pins"; - pwm8m0_pins = "/pinctrl/pwm8/pwm8m0-pins"; - hdmi0_sound = "/hdmi0-sound"; - ioc = "/syscon@fd5f0000"; - spi0m0_pins = "/pinctrl/spi0/spi0m0-pins"; - avsd = "/avsd-plus@fdb51000"; - rkcif_mipi_lvds5_sditf_vir3 = "/rkcif-mipi-lvds5-sditf-vir3"; - u2phy2 = "/syscon@fd5d8000/usb2-phy@8000"; - sfc = "/spi@fe2b0000"; - csi2_dphy0 = "/csi2-dphy0"; - spi1 = "/spi@feb10000"; - spi4m1_cs0 = "/pinctrl/spi4/spi4m1-cs0"; - gpu_grf = "/syscon@fd5a0000"; - pcfg_pull_up_drv_level_14 = "/pinctrl/pcfg-pull-up-drv-level-14"; - wireless_bluetooth = "/wireless-bluetooth"; - pclk_av1_pre = "/clocks/pclk_av1_pre@fd7c0910"; - sata2m0_pins = "/pinctrl/sata2/sata2m0-pins"; - uart9m0_xfer = "/pinctrl/uart9/uart9m0-xfer"; - pwm14m2_pins = "/pinctrl/pwm14/pwm14m2-pins"; - i2s1m0_sdi2 = "/pinctrl/i2s1/i2s1m0-sdi2"; - pwm11m1_pins = "/pinctrl/pwm11/pwm11m1-pins"; - bt_sound = "/bt-sound"; - qos_rkvenc1_m0ro = "/qos@fdf61000"; - mclkout_i2s2 = "/clocks/mclkout-i2s2@fd58c318"; - dsi0 = "/dsi@fde20000"; - pdm1m0_clk1 = "/pinctrl/pdm1/pdm1m0-clk1"; - uart1m0_rtsn = "/pinctrl/uart1/uart1m0-rtsn"; - ddrphych2_pins = "/pinctrl/ddrphych2/ddrphych2-pins"; - route_edp0 = "/display-subsystem/route/route-edp0"; - hdmi0 = "/hdmi@fde80000"; - es8388_sound = "/es8388-sound"; - hdmi1_in_vp1 = "/hdmi@fdea0000/ports/port@0/endpoint@1"; - pcfg_pull_up_drv_level_1 = "/pinctrl/pcfg-pull-up-drv-level-1"; - pcfg_pull_down_drv_level_5 = "/pinctrl/pcfg-pull-down-drv-level-5"; - i2s0_sdo2 = "/pinctrl/i2s0/i2s0-sdo2"; - vop_out = "/vop@fdd90000/ports"; - vdd_0v75_s3 = "/spi@feb20000/rk806single@0/regulators/NLDO_REG1"; - hdmim1_rx = "/pinctrl/hdmi/hdmim1-rx"; - pcfg_pull_down_smt = "/pinctrl/pcfg-pull-down-smt"; - hdmim0_tx1_scl = "/pinctrl/hdmi/hdmim0-tx1-scl"; - hdmim0_tx1_sda = "/pinctrl/hdmi/hdmim0-tx1-sda"; - cpul_opp_info = "/otp@fecc0000/cpul-opp-info@3d"; - clk32k_in = "/pinctrl/clk32k/clk32k-in"; - usbdp_phy1 = "/phy@fed90000"; - mailbox0 = "/mailbox@fec60000"; - i2c6m0_xfer = "/pinctrl/i2c6/i2c6m0-xfer"; - pdm0m1_sdi2 = "/pinctrl/pdm0/pdm0m1-sdi2"; - sdmmc = "/mmc@fe2c0000"; - hclk_nvm = "/clocks/hclk_nvm@fd7c087c"; - hdmim0_tx1_hpd = "/pinctrl/hdmi/hdmim0-tx1-hpd"; - vp0_out_dp0 = "/vop@fdd90000/ports/port@0/endpoint@0"; - vddq_ddr_s0 = "/spi@feb20000/rk806single@0/regulators/DCDC_REG9"; - vcc_3v3_s3 = "/spi@feb20000/rk806single@0/regulators/DCDC_REG8"; - gmac0_ppstring = "/pinctrl/gmac0/gmac0-ppstring"; - i2c0 = "/i2c@fd880000"; - pdm1m1_clk = "/pinctrl/pdm1/pdm1m1-clk"; - pdm0m0_idle = "/pinctrl/pdm0/pdm0m0-idle"; - soc_thermal = "/thermal-zones/soc-thermal"; - cluster1_opp_table = "/cluster1-opp-table"; - i2s0_idle = "/pinctrl/i2s0/i2s0-idle"; - spi4m1_pins = "/pinctrl/spi4/spi4m1-pins"; - npu_opp_info = "/otp@fecc0000/npu-opp-info@55"; - pwm9m0_pins = "/pinctrl/pwm9/pwm9m0-pins"; - pwm6 = "/pwm@febd0020"; - spi1m0_pins = "/pinctrl/spi1/spi1m0-pins"; - hym8563 = "/i2c@fd880000/hym8563@51"; - i2s1m1_sclk = "/pinctrl/i2s1/i2s1m1-sclk"; - rk806_dvs2_gpio = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs2_gpio"; - hp_det = "/pinctrl/headphone/hp-det"; - hdmi_debug1 = "/pinctrl/hdmi/hdmi-debug1"; - vp1_out_dp1 = "/vop@fdd90000/ports/port@1/endpoint@3"; - qos_mcu_npu = "/qos@fdf72400"; - auddsm_pins = "/pinctrl/auddsm/auddsm-pins"; - i2s3_lrck = "/pinctrl/i2s3/i2s3-lrck"; - pcfg_pull_none_drv_level_2_smt = "/pinctrl/pcfg-pull-none-drv-level-2-smt"; - pwm15m2_pins = "/pinctrl/pwm15/pwm15m2-pins"; - pipe_phy1_grf = "/syscon@fd5c0000"; - pwm12m1_pins = "/pinctrl/pwm12/pwm12m1-pins"; - pwm11 = "/pwm@febe0030"; - rkisp_unite = "/rkisp-unite@fdcb0000"; - rkcif_mipi_lvds2_sditf = "/rkcif-mipi-lvds2-sditf"; - vp1_out_edp0 = "/vop@fdd90000/ports/port@1/endpoint@1"; - hclk_isp1_pre = "/clocks/hclk_isp1_pre@fd7c0868"; - rk806_dvs2_slp = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs2_slp"; - i2s7_8ch = "/i2s@fddf8000"; - uart5m1_rtsn = "/pinctrl/uart5/uart5m1-rtsn"; - mipidphy1_grf = "/syscon@fd5b5000"; - usbhost3_0 = "/usbhost3_0"; - jpege2 = "/jpege-core@fdba8000"; - pcfg_pull_none_drv_level_15 = "/pinctrl/pcfg-pull-none-drv-level-15"; - pcie3x2_intc = "/pcie@fe160000/legacy-interrupt-controller"; - vp2_out_dsi1 = "/vop@fdd90000/ports/port@2/endpoint@4"; - mipidphy0_in_ucam0 = "/csi2-dphy0/ports/port@0/endpoint@0"; - av1d = "/av1d@fdc70000"; - uart1m2_ctsn = "/pinctrl/uart1/uart1m2-ctsn"; - sdiom1_pins = "/pinctrl/sdio/sdiom1-pins"; - rockchip_suspend = "/rockchip-suspend"; - rk806_dvs2_pwrdn = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs2_pwrdn"; - pcfg_pull_none_drv_level_0 = "/pinctrl/pcfg-pull-none-drv-level-0"; - npu_thermal = "/thermal-zones/npu-thermal"; - i2c7m0_xfer = "/pinctrl/i2c7/i2c7m0-xfer"; - pdm1m1_sdi2 = "/pinctrl/pdm1/pdm1m1-sdi2"; - cpu_pins = "/pinctrl/cpu/cpu-pins"; - dsi0_in_vp2 = "/dsi@fde20000/ports/port@0/endpoint@0"; - bt_wake_gpio = "/pinctrl/wireless-bluetooth/bt-wake-gpio"; - uart5 = "/serial@feb80000"; - dwc3_0_role_switch = "/usbdrd3_0/usb@fc000000/port/endpoint@0"; - rkisp1_vir0 = "/rkisp1-vir0"; - fiq_debugger = "/fiq-debugger"; - usbdp_phy1_u3 = "/phy@fed90000/u3-port"; - spi0m0_cs1 = "/pinctrl/spi0/spi0m0-cs1"; - sdio = "/mmc@fe2d0000"; - rkcif_mipi_lvds_sditf_vir2 = "/rkcif-mipi-lvds-sditf-vir2"; - spdif1m2_tx = "/pinctrl/spdif1/spdif1m2-tx"; - qos_gpu_m3 = "/qos@fdf35600"; - pdm1m0_idle = "/pinctrl/pdm1/pdm1m0-idle"; - pcfg_pull_none_drv_level_6_smt = "/pinctrl/pcfg-pull-none-drv-level-6-smt"; - user_led = "/leds/user"; - rkcif_mipi_lvds5_sditf_vir1 = "/rkcif-mipi-lvds5-sditf-vir1"; - i2s2m1_sdi = "/pinctrl/i2s2/i2s2m1-sdi"; - uart8_xfer = "/pinctrl/uart8/uart8-xfer"; - u2phy0 = "/syscon@fd5d0000/usb2-phy@0"; - pclk_vo1_grf = "/clocks/pclk_vo1_grf@fd7c08ec"; - vdd_gpu_mem_s0 = "/spi@feb20000/rk806single@0/regulators/DCDC_REG1"; - spi2m0_pins = "/pinctrl/spi2/spi2m0-pins"; - qos_rga3_1 = "/qos@fdf36000"; - i2s2m1_sclk = "/pinctrl/i2s2/i2s2m1-sclk"; - pcfg_pull_up_drv_level_12 = "/pinctrl/pcfg-pull-up-drv-level-12"; - spdif_tx4 = "/spdif-tx@fdde8000"; - gmac1_mtl_rx_setup = "/ethernet@fe1c0000/rx-queues-config"; - rkispp1 = "/rkispp@fdcd8000"; - hdmim2_tx1_cec = "/pinctrl/hdmi/hdmim2-tx1-cec"; - u2phy1_otg = "/syscon@fd5d4000/usb2-phy@4000/otg-port"; - hdptxphy_hdmi_clk0 = "/hdmiphy@fed60000/clk-port"; - i2s1m0_sdi0 = "/pinctrl/i2s1/i2s1m0-sdi0"; - mipi4_csi2 = "/mipi4-csi2"; - mclkout_i2s0 = "/clocks/mclkout-i2s0@fd58c318"; - vcc5v0_host3 = "/vcc5v0-host3"; - rkcif_mipi_lvds5 = "/rkcif-mipi-lvds5"; - vdd_cpu_big0_s0 = "/i2c@fd880000/rk8602@42"; - dp1 = "/dp@fde60000"; - emmc_data_strobe = "/pinctrl/emmc/emmc-data-strobe"; - pwm13m1_pins = "/pinctrl/pwm13/pwm13m1-pins"; - vop_pins = "/pinctrl/vop/vop-pins"; - pcie20x1m1_pins = "/pinctrl/pcie20x1/pcie20x1m1-pins"; - fspim2_cs1 = "/pinctrl/fspi/fspim2-cs1"; - vcc_hub = "/vcc-hub-regulator"; - mcum0_pins = "/pinctrl/mcu/mcum0-pins"; - pwm10m0_pins = "/pinctrl/pwm10/pwm10m0-pins"; - uart9m2_rtsn = "/pinctrl/uart9/uart9m2-rtsn"; - mipidcphy0 = "/phy@feda0000"; - uart6m1_rtsn = "/pinctrl/uart6/uart6m1-rtsn"; - vcc3v3_pcie30 = "/vcc3v3-pcie30"; - pcfg_pull_down_drv_level_3 = "/pinctrl/pcfg-pull-down-drv-level-3"; - mipim1_camera0_clk = "/pinctrl/mipi/mipim1-camera0-clk"; - i2s0_sdo0 = "/pinctrl/i2s0/i2s0-sdo0"; - vop = "/vop@fdd90000"; - gmac0_ptp_refclk = "/pinctrl/gmac0/gmac0-ptp-refclk"; - usbdp_phy0_orientation_switch = "/phy@fed80000/port/endpoint@0"; - vepu = "/vepu@fdb50000"; - cif_clk = "/pinctrl/cif/cif-clk"; - pcie30_phy_grf = "/syscon@fd5b8000"; - isp1_mmu = "/iommu@fdcc7f00"; - pdm0m1_sdi0 = "/pinctrl/pdm0/pdm0m1-sdi0"; - rkvdec1_mmu = "/iommu@fdc48700"; - edp1 = "/edp@fded0000"; - cam0_cam1_switch = "/cam0-cam1-switch"; - gmac1_ppstrig = "/pinctrl/gmac1/gmac1-ppstrig"; - i2c8m0_xfer = "/pinctrl/i2c8/i2c8m0-xfer"; - dsi1_in_vp2 = "/dsi@fde30000/ports/port@0/endpoint@0"; - hdmim2_rx_hpdin = "/pinctrl/hdmi/hdmim2-rx-hpdin"; - i2s1m1_sdo3 = "/pinctrl/i2s1/i2s1m1-sdo3"; - pcfg_pull_down_drv_level_14 = "/pinctrl/pcfg-pull-down-drv-level-14"; - gmac0_rx_bus2 = "/pinctrl/gmac0/gmac0-rx-bus2"; - rkcif_mipi_lvds4_sditf_vir2 = "/rkcif-mipi-lvds4-sditf-vir2"; - center_thermal = "/thermal-zones/center-thermal"; - uart0_ctsn = "/pinctrl/uart0/uart0-ctsn"; - uart4_rtsn = "/pinctrl/uart4/uart4-rtsn"; - pwm4 = "/pwm@febd0000"; - vdd2_ddr_s3 = "/spi@feb20000/rk806single@0/regulators/DCDC_REG6"; - jtagm1_pins = "/pinctrl/jtag/jtagm1-pins"; - rkisp0_vir2 = "/rkisp0-vir2"; - i2c1m4_xfer = "/pinctrl/i2c1/i2c1m4-xfer"; - l2_cache_l2 = "/cpus/l2-cache-l2"; - pcfg_pull_none_drv_level_9 = "/pinctrl/pcfg-pull-none-drv-level-9"; - qos_vdpu = "/qos@fdf67200"; - vp2_out_hdmi1 = "/vop@fdd90000/ports/port@2/endpoint@7"; - spi3m0_pins = "/pinctrl/spi3/spi3m0-pins"; - pcfg_output_low_pull_none = "/pinctrl/pcfg-output-low-pull-none"; - spi0m2_cs0 = "/pinctrl/spi0/spi0m2-cs0"; - rkisp1 = "/rkisp@fdcc0000"; - usbdpphy1_grf = "/syscon@fd5cc000"; - mipim1_camera4_clk = "/pinctrl/mipi/mipim1-camera4-clk"; - mipim0_camera2_clk = "/pinctrl/mipi/mipim0-camera2-clk"; - csi2_dcphy1 = "/csi2-dcphy1"; - hdmim2_tx1_scl = "/pinctrl/hdmi/hdmim2-tx1-scl"; - hdmim2_tx1_sda = "/pinctrl/hdmi/hdmim2-tx1-sda"; - spi2m2_cs1 = "/pinctrl/spi2/spi2m2-cs1"; - chosen = "/chosen"; - soc_crit = "/thermal-zones/soc-thermal/trips/soc-crit"; - rk806_dvs1_rst = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs1_rst"; - mpp_srv = "/mpp-srv"; - hclk_rkvenc1_pre = "/clocks/hclk_rkvenc1_pre@fd7c08c0"; - dp0m2_pins = "/pinctrl/dp0/dp0m2-pins"; - debug = "/debug@fd104000"; - jpege0 = "/jpege-core@fdba0000"; - pcfg_pull_none_drv_level_13 = "/pinctrl/pcfg-pull-none-drv-level-13"; - pwm14m1_pins = "/pinctrl/pwm14/pwm14m1-pins"; - pwm11m0_pins = "/pinctrl/pwm11/pwm11m0-pins"; - vp2_out_dp0 = "/vop@fdd90000/ports/port@2/endpoint@0"; - qos_rkvenc0_m0ro = "/qos@fdf60000"; - its0 = "/interrupt-controller@fe600000/msi-controller@fe640000"; - cpu_b2 = "/cpus/cpu@600"; - uart7m1_rtsn = "/pinctrl/uart7/uart7m1-rtsn"; - usb_5v_ctrl = "/pinctrl/usb-typec/usb-5v-ctrl"; - tsadc_gpio_func = "/pinctrl/gpio-func/tsadc-gpio-func"; - spi1m1_cs0 = "/pinctrl/spi1/spi1m1-cs0"; - pcfg_pull_down = "/pinctrl/pcfg-pull-down"; - dmc_opp_info = "/otp@fecc0000/dmc-opp-info@5b"; - ddrphych1_pins = "/pinctrl/ddrphych1/ddrphych1-pins"; - dsi0_in = "/dsi@fde20000/ports/port@0"; - pdm1m1_sdi0 = "/pinctrl/pdm1/pdm1m1-sdi0"; - spi3m1_cs1 = "/pinctrl/spi3/spi3m1-cs1"; - bigcore0_grf = "/syscon@fd590000"; - cpub1_leakage = "/otp@fecc0000/cpub1-leakage@18"; - uart3 = "/serial@feb60000"; - aclk_hdcp1_pre = "/clocks/aclk_hdcp1_pre@fd7c08ec"; - pcfg_pull_up = "/pinctrl/pcfg-pull-up"; - rkcif_mipi_lvds3_sditf_vir3 = "/rkcif-mipi-lvds3-sditf-vir3"; - codec_leakage = "/otp@fecc0000/codec-leakage@29"; - pcfg_pull_up_drv_level_8 = "/pinctrl/pcfg-pull-up-drv-level-8"; - dmac1 = "/dma-controller@fea30000"; - pdm0m0_sdi2 = "/pinctrl/pdm0/pdm0m0-sdi2"; - i2s1m1_lrck = "/pinctrl/i2s1/i2s1m1-lrck"; - qos_gpu_m1 = "/qos@fdf35200"; - i2s0_sdi2 = "/pinctrl/i2s0/i2s0-sdi2"; - spi2m0_cs0 = "/pinctrl/spi2/spi2m0-cs0"; - gpu_opp_info = "/otp@fecc0000/gpu-opp-info@4f"; - csi2_dphy1_hw = "/csi2-dphy1-hw@fedc8000"; - pcfg_pull_up_drv_level_10 = "/pinctrl/pcfg-pull-up-drv-level-10"; - spdif_tx2 = "/spdif-tx@fddb0000"; - npu_opp_table = "/npu-opp-table"; - spi4m0_cs1 = "/pinctrl/spi4/spi4m0-cs1"; - vo0_grf = "/syscon@fd5a6000"; - i2c2m4_xfer = "/pinctrl/i2c2/i2c2m4-xfer"; - qos_usb2host_0 = "/qos@fdf3e400"; - spi4m0_pins = "/pinctrl/spi4/spi4m0-pins"; - gmac1_mtl_tx_setup = "/ethernet@fe1c0000/tx-queues-config"; - rkcif_mipi_lvds3 = "/rkcif-mipi-lvds3"; - i2s1m0_sclk = "/pinctrl/i2s1/i2s1m0-sclk"; - i2c7 = "/i2c@fec90000"; - mipi2_csi2_output = "/mipi2-csi2/ports/port@1/endpoint@0"; - mipi_te0 = "/pinctrl/mipi/mipi-te0"; - sata_reset = "/pinctrl/sata/sata-reset"; - dp1m2_pins = "/pinctrl/dp1/dp1m2-pins"; - pwm15m1_pins = "/pinctrl/pwm15/pwm15m1-pins"; - pcfg_pull_down_drv_level_1 = "/pinctrl/pcfg-pull-down-drv-level-1"; - pwm12m0_pins = "/pinctrl/pwm12/pwm12m0-pins"; - qos_vicap_m1 = "/qos@fdf40800"; - sdmmc_cmd = "/pinctrl/sdmmc/sdmmc-cmd"; - uart8m1_rtsn = "/pinctrl/uart8/uart8m1-rtsn"; - usb2phy2_grf = "/syscon@fd5d8000"; - rkvdec1_sram = "/sram@ff001000/rkvdec-sram@78000"; - uart5m0_rtsn = "/pinctrl/uart5/uart5m0-rtsn"; - jpege3_mmu = "/iommu@fdbac800"; - vcc_2v0_pldo_s3 = "/spi@feb20000/rk806single@0/regulators/DCDC_REG7"; - i2s3_mclk = "/pinctrl/i2s3/i2s3-mclk"; - mclkout_i2s1m1 = "/clocks/mclkout-i2s1@fd58a000"; - spdif_tx1_dc = "/spdif-tx1-dc"; - uart0m2_xfer = "/pinctrl/uart0/uart0m2-xfer"; - wifi_host_wake_irq = "/pinctrl/wireless-wlan/wifi-host-wake-irq"; - i2s1m1_sdo1 = "/pinctrl/i2s1/i2s1m1-sdo1"; - uart1m1_ctsn = "/pinctrl/uart1/uart1m1-ctsn"; - pcfg_pull_down_drv_level_12 = "/pinctrl/pcfg-pull-down-drv-level-12"; - sdiom0_pins = "/pinctrl/sdio/sdiom0-pins"; - pcfg_pull_up_smt = "/pinctrl/pcfg-pull-up-smt"; - php_grf = "/syscon@fd5b0000"; - pwm2 = "/pwm@fd8b0020"; - pdm1m0_sdi2 = "/pinctrl/pdm1/pdm1m0-sdi2"; - i2s2m1_lrck = "/pinctrl/i2s2/i2s2m1-lrck"; - mipi1_csi2_hw = "/mipi1-csi2-hw@fdd20000"; - sata1 = "/sata@fe220000"; - rkispp1_vir0 = "/rkispp1-vir0"; - dp0_in_vp1 = "/dp@fde50000/ports/port@0/endpoint@1"; - CPU_SLEEP = "/cpus/idle-states/cpu-sleep"; - rkisp0_vir0 = "/rkisp0-vir0"; - spi3m3_cs0 = "/pinctrl/spi3/spi3m3-cs0"; - specification_serial_number = "/otp@fecc0000/specification-serial-number@6"; - l2_cache_l0 = "/cpus/l2-cache-l0"; - pcfg_pull_none_drv_level_7 = "/pinctrl/pcfg-pull-none-drv-level-7"; - qos_hdcp0 = "/qos@fdf80000"; - qos_npu0_mro = "/qos@fdf72200"; - usbdrd_dwc3_1 = "/usbdrd3_1/usb@fc400000"; - rkvenc1 = "/rkvenc-core@fdbe0000"; - display_subsystem = "/display-subsystem"; - i2c3m4_xfer = "/pinctrl/i2c3/i2c3m4-xfer"; - pcie30x2m3_pins = "/pinctrl/pcie30x2/pcie30x2m3-pins"; - qos_npu2 = "/qos@fdf71000"; - i2s0_8ch = "/i2s@fe470000"; - i2s2m0_sclk = "/pinctrl/i2s2/i2s2m0-sclk"; - pmu = "/power-management@fd8d8000"; - gmac1_tx_bus2 = "/pinctrl/gmac1/gmac1-tx-bus2"; - pcfg_pull_none_drv_level_11 = "/pinctrl/pcfg-pull-none-drv-level-11"; - route_hdmi1 = "/display-subsystem/route/route-hdmi1"; - csi2_dphy5 = "/csi2-dphy5"; - spi4m2_cs0 = "/pinctrl/spi4/spi4m2-cs0"; - mipi3_csi2 = "/mipi3-csi2"; - pmu0_grf = "/syscon@fd588000"; - fan = "/pwm-fan"; - cpu_b0 = "/cpus/cpu@400"; - vccio_sd_s0 = "/spi@feb20000/rk806single@0/regulators/PLDO_REG5"; - qos_rkvenc1_m2wo = "/qos@fdf61400"; - gpio4 = "/pinctrl/gpio@fec50000"; - hdmim0_rx_cec = "/pinctrl/hdmi/hdmim0-rx-cec"; - pwm3m3_pins = "/pinctrl/pwm3/pwm3m3-pins"; - aclk_vdpu_low_pre = "/clocks/aclk_vdpu_low_pre@fd7c08b0"; - mmu600_php = "/iommu@fcb00000"; - cif_mipi2_in1 = "/rkcif-mipi-lvds2/port/endpoint"; - pwm0m2_pins = "/pinctrl/pwm0/pwm0m2-pins"; - pwm13m0_pins = "/pinctrl/pwm13/pwm13m0-pins"; - pcie20x1m0_pins = "/pinctrl/pcie20x1/pcie20x1m0-pins"; - bt656_pins = "/pinctrl/bt656/bt656-pins"; - hdmi1_sound = "/hdmi1-sound"; - uart9m1_rtsn = "/pinctrl/uart9/uart9m1-rtsn"; - uart6m0_rtsn = "/pinctrl/uart6/uart6m0-rtsn"; - pcie2x1l2_intc = "/pcie@fe190000/legacy-interrupt-controller"; - mod_sleep = "/mod-sleep-regulator"; - gpu_thermal = "/thermal-zones/gpu-thermal"; - hdmim1_tx0_cec = "/pinctrl/hdmi/hdmim1-tx0-cec"; - uart1 = "/serial@feb40000"; - rkcif_mipi_lvds3_sditf_vir1 = "/rkcif-mipi-lvds3-sditf-vir1"; - pcfg_pull_up_drv_level_6 = "/pinctrl/pcfg-pull-up-drv-level-6"; - qos_rkvdec0 = "/qos@fdf62000"; - vp2_out_edp0 = "/vop@fdd90000/ports/port@2/endpoint@1"; - uart1m2_xfer = "/pinctrl/uart1/uart1m2-xfer"; - pdm0m0_sdi0 = "/pinctrl/pdm0/pdm0m0-sdi0"; - fspim2_pins = "/pinctrl/fspi/fspim2-pins"; - i2s0_sdi0 = "/pinctrl/i2s0/i2s0-sdi0"; - gpu_pins = "/pinctrl/gpu/gpu-pins"; - imx415 = "/i2c@fec80000/imx415@37"; - vp3_out_dsi1 = "/vop@fdd90000/ports/port@3/endpoint@1"; - i2s4_8ch = "/i2s@fddc0000"; - ramoops = "/reserved-memory/ramoops@110000"; - dp0_sound = "/dp0-sound"; - spdif_tx0 = "/spdif-tx@fe4e0000"; - dp1_in_vp1 = "/dp@fde60000/ports/port@0/endpoint@1"; - i2s1m0_sdo3 = "/pinctrl/i2s1/i2s1m0-sdo3"; - mipi2_csi2_input1 = "/mipi2-csi2/ports/port@0/endpoint@0"; - vcc_1v8_s0 = "/spi@feb20000/rk806single@0/regulators/PLDO_REG2"; - vp1_out_hdmi0 = "/vop@fdd90000/ports/port@1/endpoint@2"; - vcc12v_dcin = "/vcc12v-dcin"; - vp0_out_edp1 = "/vop@fdd90000/ports/port@0/endpoint@4"; - uart3_rtsn = "/pinctrl/uart3/uart3-rtsn"; - gmac1_rgmii_clk = "/pinctrl/gmac1/gmac1-rgmii-clk"; - package_serial_number_high = "/otp@fecc0000/package-serial-number-high@5"; - hdcp0 = "/hdcp@fde40000"; - qos_fisheye1 = "/qos@fdf40200"; - rkcif_mipi_lvds1 = "/rkcif-mipi-lvds1"; - i2c5 = "/i2c@fead0000"; - jtagm0_pins = "/pinctrl/jtag/jtagm0-pins"; - i2c4m4_xfer = "/pinctrl/i2c4/i2c4m4-xfer"; - spdif_tx1_sound = "/spdif-tx1-sound"; - qos_jpeg_enc2 = "/qos@fdf66800"; - hdmi0_in = "/hdmi@fde80000/ports/port@0"; - i2s1m1_sdi3 = "/pinctrl/i2s1/i2s1m1-sdi3"; - i2c1m3_xfer = "/pinctrl/i2c1/i2c1m3-xfer"; - hdptxphy_hdmi0 = "/hdmiphy@fed60000"; - sdmmc_pwren = "/pinctrl/sdmmc/sdmmc-pwren"; - usbdp_phy1_dp = "/phy@fed90000/dp-port"; - npu_leakage = "/otp@fecc0000/npu-leakage@28"; - aclk_jpeg_decoder_pre = "/clocks/aclk_jpeg_decoder_pre@fd7c08b0"; - pdm0 = "/pdm@fe4b0000"; - gmac1_miim = "/pinctrl/gmac1/gmac1-miim"; - pcfg_output_high_pull_down = "/pinctrl/pcfg-output-high-pull-down"; - hdmi_debug6 = "/pinctrl/hdmi/hdmi-debug6"; - pcie3x4 = "/pcie@fe150000"; - can0m1_pins = "/pinctrl/can0/can0m1-pins"; - mclkin_i2s2 = "/clocks/mclkin-i2s2"; - jpege_ccu = "/jpege-ccu"; - pcfg_pull_none_drv_level_3_smt = "/pinctrl/pcfg-pull-none-drv-level-3-smt"; - hdmim1_rx_cec = "/pinctrl/hdmi/hdmim1-rx-cec"; - pipe_phy2_grf = "/syscon@fd5c4000"; - dp0m1_pins = "/pinctrl/dp0/dp0m1-pins"; - rkvdec1 = "/rkvdec-core@fdc48000"; - pwm1m2_pins = "/pinctrl/pwm1/pwm1m2-pins"; - pwm14m0_pins = "/pinctrl/pwm14/pwm14m0-pins"; - little_core_thermal = "/thermal-zones/littlecore-thermal"; - rk806_dvs3_slp = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs3_slp"; - usb_5v = "/usb-5v"; - i2s8_8ch = "/i2s@fddc8000"; - drm_cubic_lut = "/reserved-memory/drm-cubic-lut@00000000"; - rkcif_mipi_lvds2_sditf_vir2 = "/rkcif-mipi-lvds2-sditf-vir2"; - hdptxphy0 = "/phy@fed60000"; - pcie30x1_0_button_rstn = "/pinctrl/pcie30x1/pcie30x1-0-button-rstn"; - u2phy3_host = "/syscon@fd5dc000/usb2-phy@c000/host-port"; - route_dp0 = "/display-subsystem/route/route-dp0"; - hdmim0_rx_scl = "/pinctrl/hdmi/hdmim0-rx-scl"; - hdmim0_rx_sda = "/pinctrl/hdmi/hdmim0-rx-sda"; - uart7m0_rtsn = "/pinctrl/uart7/uart7m0-rtsn"; - pcfg_pull_down_drv_level_10 = "/pinctrl/pcfg-pull-down-drv-level-10"; - usbdrd3_0 = "/usbdrd3_0"; - ddrphych0_pins = "/pinctrl/ddrphych0/ddrphych0-pins"; - bt_irq_gpio = "/pinctrl/wireless-bluetooth/bt-irq-gpio"; - pwm0 = "/pwm@fd8b0000"; - uart2m2_xfer = "/pinctrl/uart2/uart2m2-xfer"; - pdm1m0_sdi0 = "/pinctrl/pdm1/pdm1m0-sdi0"; - hdmim1_tx0_scl = "/pinctrl/hdmi/hdmim1-tx0-scl"; - hdmim1_tx0_sda = "/pinctrl/hdmi/hdmim1-tx0-sda"; - can1 = "/can@fea60000"; - rkvtunnel = "/rkvtunnel"; - pcfg_pull_none_drv_level_5 = "/pinctrl/pcfg-pull-none-drv-level-5"; - rkcif_mipi_lvds3_sditf = "/rkcif-mipi-lvds3-sditf"; - combphy2_psu = "/phy@fee20000"; - vp3 = "/vop@fdd90000/ports/port@3"; - rk806_dvs2_dvs = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs2_dvs"; - mmu600_pcie = "/iommu@fc900000"; - hdmim1_tx0_hpd = "/pinctrl/hdmi/hdmim1-tx0-hpd"; - i2s1m0_lrck = "/pinctrl/i2s1/i2s1m0-lrck"; - cpu_l3 = "/cpus/cpu@300"; - spi0m1_cs1 = "/pinctrl/spi0/spi0m1-cs1"; - vp0_out_hdmi1 = "/vop@fdd90000/ports/port@0/endpoint@5"; - spdif_rx1 = "/spdif-rx@fde10000"; - gmac0_clkinout = "/pinctrl/gmac0/gmac0-clkinout"; - rkcif_dvp = "/rkcif-dvp"; - i2c5m4_xfer = "/pinctrl/i2c5/i2c5m4-xfer"; - wireless_wlan = "/wireless-wlan"; - rkcif_mipi_lvds = "/rkcif-mipi-lvds"; - avdd_0v75_s0 = "/spi@feb20000/rk806single@0/regulators/NLDO_REG3"; - i2c2m3_xfer = "/pinctrl/i2c2/i2c2m3-xfer"; - pcie30x4m3_pins = "/pinctrl/pcie30x4/pcie30x4m3-pins"; - hclk_rkvdec0_pre = "/clocks/hclk_rkvdec0_pre@fd7c08a0"; - route_dsi0 = "/display-subsystem/route/route-dsi0"; - rk806_dvs3_pwrdn = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs3_pwrdn"; - csi2_dphy3 = "/csi2-dphy3"; - pcie30x1m2_pins = "/pinctrl/pcie30x1/pcie30x1m2-pins"; - spi4 = "/spi@fecb0000"; - litcore_grf = "/syscon@fd594000"; - isp0_vir2 = "/rkisp0-vir2/port/endpoint@0"; - i2s1m1_mclk = "/pinctrl/i2s1/i2s1m1-mclk"; - sys_grf = "/syscon@fd58c000"; - edp0_in_vp1 = "/edp@fdec0000/ports/port@0/endpoint@1"; - rkisp_unite_mmu = "/rkisp-unite-mmu@fdcb7f00"; - gpio2 = "/pinctrl/gpio@fec30000"; - spi1m0_cs1 = "/pinctrl/spi1/spi1m0-cs1"; - aclk_av1_pre = "/clocks/aclk_av1_pre@fd7c0910"; - can1m1_pins = "/pinctrl/can1/can1m1-pins"; - rkcif_mipi_lvds1_sditf_vir3 = "/rkcif-mipi-lvds1-sditf-vir3"; - hdmim2_rx_cec = "/pinctrl/hdmi/hdmim2-rx-cec"; - mipi3_csi2_hw = "/mipi3-csi2-hw@fdd40000"; - dp1m1_pins = "/pinctrl/dp1/dp1m1-pins"; - pwm2m2_pins = "/pinctrl/pwm2/pwm2m2-pins"; - pwm15m0_pins = "/pinctrl/pwm15/pwm15m0-pins"; - hclk_vo0 = "/clocks/hclk_vo0@fd7c08dc"; - bigcore0_thermal = "/thermal-zones/bigcore0-thermal"; - hdmim1_rx_scl = "/pinctrl/hdmi/hdmim1-rx-scl"; - hdmim1_rx_sda = "/pinctrl/hdmi/hdmim1-rx-sda"; - uart8m0_rtsn = "/pinctrl/uart8/uart8m0-rtsn"; - pcfg_pull_up_drv_level_4 = "/pinctrl/pcfg-pull-up-drv-level-4"; - mipim1_camera1_clk = "/pinctrl/mipi/mipim1-camera1-clk"; - rkvdec0_sram = "/sram@ff001000/rkvdec-sram@0"; - pcfg_pull_down_drv_level_8 = "/pinctrl/pcfg-pull-down-drv-level-8"; - gmac_uio1 = "/uio@fe1c0000"; - usbc0_orien_sw = "/i2c@fec80000/fusb302@22/connector/ports/port@0/endpoint"; - jpegd = "/jpegd@fdb90000"; - uart3m2_xfer = "/pinctrl/uart3/uart3m2-xfer"; - minidump_smem = "/reserved-memory/minidump-smem@1f0000"; - i2s0_sclk = "/pinctrl/i2s0/i2s0-sclk"; - uart0m1_xfer = "/pinctrl/uart0/uart0m1-xfer"; - rga3_core1 = "/rga@fdb70000"; - i2s1m0_sdo1 = "/pinctrl/i2s1/i2s1m0-sdo1"; - uart1m0_ctsn = "/pinctrl/uart1/uart1m0-ctsn"; - vcc5v0_usb = "/vcc5v0-usb"; - minidump = "/minidump"; - }; - - rkvdec-ccu@fdc30000 { - power-domains = <0x60 0x0e>; - rockchip,ccu-mode = <0x01>; - clock-names = "aclk_ccu"; - reg-names = "ccu"; - assigned-clocks = <0x02 0x18e>; - assigned-clock-rates = <0x23c34600>; - resets = <0x02 0x282>; - clocks = <0x02 0x18e>; - compatible = "rockchip,rkv-decoder-v2-ccu"; - status = "okay"; - rockchip,skip-pmu-idle-request; - reg = <0x00 0xfdc30000 0x00 0x100>; - phandle = <0xca>; - reset-names = "video_ccu"; - }; - - qos@fdf60000 { - compatible = "syscon"; - reg = <0x00 0xfdf60000 0x00 0x20>; - phandle = <0x8d>; - }; - - iommu@fdb50800 { - power-domains = <0x60 0x15>; - clock-names = "aclk\0iface"; - interrupts = <0x00 0x76 0x04>; - clocks = <0x02 0x1c0 0x02 0x1c1>; - #iommu-cells = <0x00>; - compatible = "rockchip,iommu-v2"; - status = "okay"; - interrupt-names = "irq_vdpu_mmu"; - reg = <0x00 0xfdb50800 0x00 0x40>; - phandle = <0xb7>; - }; - - rga@fdb60000 { - power-domains = <0x60 0x16>; - iommus = <0xb9>; - clock-names = "aclk_rga3_0\0hclk_rga3_0\0clk_rga3_0"; - interrupts = <0x00 0x72 0x04>; - clocks = <0x02 0x1ba 0x02 0x1b9 0x02 0x1bb>; - compatible = "rockchip,rga3_core0"; - status = "okay"; - interrupt-names = "rga3_core0_irq"; - reg = <0x00 0xfdb60000 0x00 0x1000>; - phandle = <0x269>; - }; - - qos@fdf67200 { - compatible = "syscon"; - reg = <0x00 0xfdf67200 0x00 0x20>; - phandle = <0x28b>; - }; - - vepu@fdb50000 { - power-domains = <0x60 0x15>; - iommus = <0xb7>; - clock-names = "aclk_vcodec\0hclk_vcodec"; - assigned-clocks = <0x02 0x1c0>; - rockchip,normal-rates = <0x2367b880 0x00>; - assigned-clock-rates = <0x2367b880>; - resets = <0x02 0x2c8 0x02 0x2c9>; - interrupts = <0x00 0x78 0x04>; - clocks = <0x02 0x1c0 0x02 0x1c1>; - rockchip,srv = <0xb8>; - rockchip,taskqueue-node = <0x00>; - rockchip,disable-auto-freq; - compatible = "rockchip,vpu-encoder-v2"; - rockchip,resetgroup-node = <0x00>; - status = "disabled"; - interrupt-names = "irq_vepu"; - rockchip,skip-pmu-idle-request; - reg = <0x00 0xfdb50000 0x00 0x400>; - phandle = <0x266>; - reset-names = "shared_video_a\0shared_video_h"; - }; - - mipi3-csi2 { - rockchip,hw = <0x47 0x48 0x49 0x4a 0x4b 0x4c>; - compatible = "rockchip,rk3588-mipi-csi2"; - status = "disabled"; - phandle = <0x227>; - }; - - hdmi0-sound { - rockchip,jack-det; - rockchip,cpu = <0x1d3>; - rockchip,codec = <0x1d4>; - rockchip,card-name = "rockchip-hdmi0"; - compatible = "rockchip,hdmi"; - status = "okay"; - phandle = <0x49b>; - rockchip,mclk-fs = <0x80>; - }; - - reserved-memory { - #address-cells = <0x02>; - #size-cells = <0x02>; - ranges; - - minidump-smem@1f0000 { - status = "disabled"; - reg = <0x00 0x1f0000 0x00 0x100>; - phandle = <0x1cf>; - no-map; - }; - - minidump-mem@c000000 { - status = "disabled"; - reg = <0x00 0xc000000 0x00 0x2000000>; - phandle = <0x1d0>; - no-map; - }; - - cma { - linux,cma-default; - compatible = "shared-dma-pool"; - size = <0x00 0x800000>; - reg = <0x00 0x10000000 0x00 0x10000000>; - reusable; - }; - - drm-logo@00000000 { - compatible = "rockchip,drm-logo"; - reg = <0x00 0xedf00000 0x00 0x2e0000>; - phandle = <0x37>; - }; - - ramoops@110000 { - boot-log-count = <0x01>; - record-size = <0x14000>; - pmsg-size = <0x30000>; - compatible = "ramoops"; - console-size = <0x80000>; - reg = <0x00 0x110000 0x00 0xe0000>; - phandle = <0x493>; - boot-log-size = <0x8000>; - ftrace-size = <0x00>; - }; - - drm-cubic-lut@00000000 { - compatible = "rockchip,drm-cubic-lut"; - reg = <0x00 0x00 0x00 0x00>; - phandle = <0x492>; - }; - }; - - pcie@fe160000 { - power-domains = <0x60 0x22>; - vpcie3v3-supply = <0x1ba>; - #address-cells = <0x03>; - rockchip,pipe-grf = <0x76>; - phy-names = "pcie-phy"; - bus-range = <0x10 0x1f>; - clock-names = "aclk_mst\0aclk_slv\0aclk_dbi\0pclk\0aux\0pipe"; - reg-names = "pcie-apb\0pcie-dbi"; - num-ob-windows = <0x10>; - resets = <0x02 0x20e 0x02 0x21d>; - interrupts = <0x00 0x102 0x04 0x00 0x101 0x04 0x00 0x100 0x04 0x00 0xff 0x04 0x00 0xfe 0x04>; - clocks = <0x02 0x14f 0x02 0x154 0x02 0x14a 0x02 0x159 0x02 0x15f 0x02 0x184>; - interrupt-map = <0x00 0x00 0x00 0x01 0x1b9 0x00 0x00 0x00 0x00 0x02 0x1b9 0x01 0x00 0x00 0x00 0x03 0x1b9 0x02 0x00 0x00 0x00 0x04 0x1b9 0x03>; - #size-cells = <0x02>; - max-link-speed = <0x03>; - device_type = "pci"; - interrupt-map-mask = <0x00 0x00 0x00 0x07>; - reset-gpios = <0x10d 0x08 0x00>; - num-lanes = <0x02>; - compatible = "rockchip,rk3588-pcie\0snps,dw-pcie"; - ranges = <0x800 0x00 0xf1000000 0x00 0xf1000000 0x00 0x100000 0x81000000 0x00 0xf1100000 0x00 0xf1100000 0x00 0x100000 0x82000000 0x00 0xf1200000 0x00 0xf1200000 0x00 0xe00000 0xc3000000 0x09 0x40000000 0x09 0x40000000 0x00 0x40000000>; - msi-map = <0x1000 0x1b6 0x1000 0x1000>; - #interrupt-cells = <0x01>; - status = "disabled"; - interrupt-names = "sys\0pmc\0msg\0legacy\0err"; - phys = <0x1b7>; - num-viewport = <0x08>; - reg = <0x00 0xfe160000 0x00 0x10000 0x0a 0x40400000 0x00 0x400000>; - linux,pci-domain = <0x01>; - phandle = <0x486>; - reset-names = "pcie\0periph"; - num-ib-windows = <0x10>; - - legacy-interrupt-controller { - #address-cells = <0x00>; - interrupts = <0x00 0xff 0x01>; - interrupt-parent = <0x01>; - #interrupt-cells = <0x01>; - phandle = <0x1b9>; - interrupt-controller; - }; - }; - - spdif-tx@fddb8000 { - power-domains = <0x60 0x19>; - clock-names = "mclk\0hclk"; - assigned-clocks = <0x02 0x20b>; - assigned-clock-parents = <0x02 0x05>; - interrupts = <0x00 0xc6 0x04>; - clocks = <0x02 0x20f 0x02 0x20a>; - dma-names = "tx"; - #sound-dai-cells = <0x00>; - compatible = "rockchip,rk3588-spdif\0rockchip,rk3568-spdif"; - status = "disabled"; - reg = <0x00 0xfddb8000 0x00 0x1000>; - phandle = <0x1e2>; - dmas = <0xf1 0x16>; - }; - - pvtm@fdb30000 { - #address-cells = <0x01>; - #size-cells = <0x00>; - compatible = "rockchip,rk3588-gpu-pvtm"; - reg = <0x00 0xfdb30000 0x00 0x100>; - - pvtm@4 { - clock-names = "clk"; - resets = <0x02 0x430 0x02 0x42f>; - clocks = <0x02 0x118>; - reg = <0x04>; - reset-names = "rts\0rst-p"; - }; - }; - - spdif-tx1-dc { - #sound-dai-cells = <0x00>; - compatible = "linux,spdif-dit"; - status = "disabled"; - phandle = <0x1d8>; - }; - - csi2-dphy0 { - rockchip,hw = <0x2d 0x2e>; - phy-names = "dcphy0\0dcphy1"; - compatible = "rockchip,rk3588-csi2-dphy"; - status = "okay"; - phys = <0x2f 0x30>; - firefly-compatible; - phandle = <0x20f>; - - ports { - #address-cells = <0x01>; - #size-cells = <0x00>; - - port@0 { - #address-cells = <0x01>; - #size-cells = <0x00>; - reg = <0x00>; - - endpoint@1 { - data-lanes = <0x01 0x02 0x03 0x04>; - remote-endpoint = <0x32>; - reg = <0x01>; - phandle = <0x184>; - }; - - endpoint@0 { - data-lanes = <0x01 0x02 0x03 0x04>; - remote-endpoint = <0x31>; - reg = <0x00>; - phandle = <0x183>; - }; - }; - - port@1 { - #address-cells = <0x01>; - #size-cells = <0x00>; - reg = <0x01>; - - endpoint@0 { - remote-endpoint = <0x33>; - reg = <0x00>; - phandle = <0x4d>; - }; - }; - }; - }; - - rkisp-unite@fdcb0000 { - power-domains = <0x60 0x1c>; - iommus = <0xcf>; - clock-names = "aclk_isp0\0hclk_isp0\0clk_isp_core0\0clk_isp_core_marvin0\0clk_isp_core_vicap0\0aclk_isp1\0hclk_isp1\0clk_isp_core1\0clk_isp_core_marvin1\0clk_isp_core_vicap1"; - interrupts = <0x00 0x87 0x04 0x00 0x89 0x04 0x00 0x8a 0x04>; - clocks = <0x02 0x1de 0x02 0x1df 0x02 0x1db 0x02 0x1dc 0x02 0x1dd 0x02 0x120 0x02 0x121 0x02 0x11d 0x02 0x11e 0x02 0x11f>; - compatible = "rockchip,rk3588-rkisp-unite"; - status = "disabled"; - interrupt-names = "isp_irq\0mi_irq\0mipi_irq"; - reg = <0x00 0xfdcb0000 0x00 0x10000 0x00 0xfdcc0000 0x00 0x10000>; - phandle = <0x277>; - }; - - sata@fe230000 { - phy-names = "sata-phy"; - clock-names = "sata\0pmalive\0rxoob\0ref\0asic"; - interrupts = <0x00 0x113 0x04>; - clocks = <0x02 0x173 0x02 0x170 0x02 0x176 0x02 0x165 0x02 0x180>; - compatible = "rockchip,rk-ahci\0snps,dwc-ahci"; - status = "disabled"; - interrupt-names = "hostc"; - phys = <0x70 0x01>; - reg = <0x00 0xfe230000 0x00 0x1000>; - phandle = <0x291>; - ports-implemented = <0x01>; - }; - - syscon@fd5a0000 { - compatible = "rockchip,rk3588-gpu-grf\0syscon"; - reg = <0x00 0xfd5a0000 0x00 0x100>; - phandle = <0x65>; - }; - - bt-sound { - simple-audio-card,name = "rockchip,bt"; - simple-audio-card,format = "dsp_a"; - simple-audio-card,bitclock-inversion = <0x00>; - compatible = "simple-audio-card"; - status = "disabled"; - phandle = <0x49a>; - simple-audio-card,mclk-fs = <0x100>; - - simple-audio-card,cpu { - sound-dai = <0x1d1>; - }; - - simple-audio-card,codec { - sound-dai = <0x1d2 0x01>; - }; - }; - - iommu@fdb90480 { - power-domains = <0x60 0x15>; - clock-names = "aclk\0iface"; - interrupts = <0x00 0x82 0x04>; - clocks = <0x02 0x1b4 0x02 0x1b5>; - #iommu-cells = <0x00>; - compatible = "rockchip,iommu-v2"; - status = "okay"; - interrupt-names = "irq_jpegd_mmu"; - reg = <0x00 0xfdb90480 0x00 0x40>; - phandle = <0xbb>; - }; - - hdcp@fde70000 { - power-domains = <0x60 0x1a>; - clock-names = "aclk\0pclk\0hclk\0hclk_key\0aclk_trng\0pclk_trng"; - resets = <0x02 0x3c8 0x02 0x3c6 0x02 0x3c5 0x02 0x3c4 0x02 0x3ca>; - interrupts = <0x00 0xa0 0x04>; - clocks = <0x02 0x217 0x02 0x219 0x02 0x218 0x02 0x216 0x02 0x228 0x02 0x229>; - compatible = "rockchip,rk3588-hdcp"; - status = "disabled"; - reg = <0x00 0xfde70000 0x00 0x80>; - phandle = <0x287>; - reset-names = "hdcp\0h_hdcp\0a_hdcp\0hdcp_key\0trng"; - rockchip,vo-grf = <0xd8>; - }; - - spdif-tx@fe4f0000 { - power-domains = <0x60 0x26>; - pinctrl-names = "default"; - pinctrl-0 = <0x143>; - clock-names = "mclk\0hclk"; - assigned-clocks = <0x02 0x45>; - assigned-clock-parents = <0x02 0x05>; - interrupts = <0x00 0xc2 0x04>; - clocks = <0x02 0x47 0x02 0x44>; - dma-names = "tx"; - #sound-dai-cells = <0x00>; - compatible = "rockchip,rk3588-spdif\0rockchip,rk3568-spdif"; - status = "disabled"; - reg = <0x00 0xfe4f0000 0x00 0x1000>; - phandle = <0x1d7>; - dmas = <0xf1 0x05>; - }; - - rkcif-mipi-lvds-sditf-vir2 { - compatible = "rockchip,rkcif-sditf"; - status = "disabled"; - rockchip,cif = <0x52>; - phandle = <0x22d>; - }; - - es8388-sound { - pinctrl-names = "default"; - rockchip,cpu = <0x1da>; - pinctrl-0 = <0x1dc>; - rockchip,codec = <0x1db>; - hp-det-gpio = <0x79 0x13 0x00>; - rockchip,card-name = "rockchip-es8388"; - rockchip,format = "i2s"; - rockchip,audio-routing = "Headphone\0LOUT1\0Headphone\0ROUT1\0Speaker\0LOUT2\0Speaker\0ROUT2\0Headphone\0Headphone Power\0Headphone\0Headphone Power\0LINPUT2\0Main Mic\0RINPUT2\0Main Mic\0LINPUT1\0Headset Mic\0RINPUT1\0Headset Mic"; - compatible = "firefly,multicodecs-card"; - linein-type = <0x01>; - status = "okay"; - phandle = <0x49f>; - hp-con-gpio = <0x182 0x0b 0x00>; - firefly,not-use-dapm; - rockchip,mclk-fs = <0x180>; - }; - - spi@feb30000 { - pinctrl-names = "default"; - #address-cells = <0x01>; - num-cs = <0x02>; - pinctrl-0 = <0x15d 0x15e 0x15f>; - clock-names = "spiclk\0apb_pclk"; - interrupts = <0x00 0x149 0x04>; - clocks = <0x02 0xa6 0x02 0xa1>; - #size-cells = <0x00>; - dma-names = "tx\0rx"; - compatible = "rockchip,rk3066-spi"; - status = "disabled"; - reg = <0x00 0xfeb30000 0x00 0x1000>; - phandle = <0x2c8>; - dmas = <0xf1 0x11 0xf1 0x12>; - }; - - phy@fee80000 { - rockchip,pipe-grf = <0x76>; - clock-names = "pclk"; - rockchip,pcie30-phymode = <0x01>; - resets = <0x02 0x2000a>; - clocks = <0x02 0x188>; - #phy-cells = <0x00>; - compatible = "rockchip,rk3588-pcie3-phy"; - status = "okay"; - reg = <0x00 0xfee80000 0x00 0x20000>; - phandle = <0x1b7>; - reset-names = "phy"; - rockchip,phy-grf = <0x1cc>; - }; - - vcc12v-dcin { - regulator-max-microvolt = <0xb71b00>; - regulator-boot-on; - regulator-always-on; - regulator-min-microvolt = <0xb71b00>; - regulator-name = "vcc12v_dcin"; - compatible = "regulator-fixed"; - phandle = <0x1cd>; - }; - - qos@fdf61200 { - compatible = "syscon"; - reg = <0x00 0xfdf61200 0x00 0x20>; - phandle = <0x91>; - }; - - i2s@fde00000 { - power-domains = <0x60 0x1a>; - clock-names = "mclk_tx\0mclk_rx\0hclk"; - assigned-clocks = <0x02 0x234>; - assigned-clock-parents = <0x02 0x05>; - rockchip,capture-only; - resets = <0x02 0x417>; - interrupts = <0x00 0xbe 0x04>; - clocks = <0x02 0x237 0x02 0x237 0x02 0x233>; - dma-names = "rx"; - #sound-dai-cells = <0x00>; - compatible = "rockchip,rk3588-i2s-tdm"; - status = "disabled"; - reg = <0x00 0xfde00000 0x00 0x1000>; - phandle = <0x47e>; - dmas = <0xf2 0x18>; - reset-names = "rx-m"; - }; - - qos@fdf40800 { - compatible = "syscon"; - reg = <0x00 0xfdf40800 0x00 0x20>; - phandle = <0xa5>; - }; - - i2s@fddfc000 { - power-domains = <0x60 0x1a>; - clock-names = "mclk_tx\0mclk_rx\0hclk"; - assigned-clocks = <0x02 0x23f>; - assigned-clock-parents = <0x02 0x05>; - rockchip,capture-only; - resets = <0x02 0x413>; - interrupts = <0x00 0xbd 0x04>; - clocks = <0x02 0x242 0x02 0x242 0x02 0x23e>; - dma-names = "rx"; - #sound-dai-cells = <0x00>; - compatible = "rockchip,rk3588-i2s-tdm"; - status = "disabled"; - reg = <0x00 0xfddfc000 0x00 0x1000>; - phandle = <0x27f>; - dmas = <0xf2 0x17>; - reset-names = "rx-m"; - }; - - usbdrd3_0 { - #address-cells = <0x02>; - clock-names = "ref\0suspend\0bus"; - clocks = <0x02 0x1a3 0x02 0x1a2 0x02 0x1a1>; - #size-cells = <0x02>; - compatible = "rockchip,rk3588-dwc3\0rockchip,rk3399-dwc3"; - ranges; - status = "okay"; - phandle = <0x252>; - - usb@fc000000 { - power-domains = <0x60 0x1f>; - snps,dis-u1-entry-quirk; - snps,dis_enblslpm_quirk; - phy-names = "usb2-phy\0usb3-phy"; - snps,dis-u2-freeclk-exists-quirk; - usb-role-switch; - phy_type = "utmi_wide"; - quirk-skip-phy-init; - resets = <0x02 0x2a4>; - interrupts = <0x00 0xdc 0x04>; - snps,dis-u2-entry-quirk; - compatible = "snps,dwc3"; - snps,parkmode-disable-hs-quirk; - snps,dis-del-phy-power-chg-quirk; - status = "okay"; - snps,parkmode-disable-ss-quirk; - phys = <0x66 0x67>; - reg = <0x00 0xfc000000 0x00 0x400000>; - phandle = <0x253>; - dr_mode = "host"; - reset-names = "usb3-otg"; - snps,dis-tx-ipgap-linecheck-quirk; - - port { - #address-cells = <0x01>; - #size-cells = <0x00>; - - endpoint@0 { - remote-endpoint = <0x68>; - reg = <0x00>; - phandle = <0x17d>; - }; - }; - }; - }; - - rkcif-mipi-lvds5-sditf-vir2 { - compatible = "rockchip,rkcif-sditf"; - status = "disabled"; - rockchip,cif = <0x1a2>; - phandle = <0x478>; - }; - - rkcif-dvp-sditf { - compatible = "rockchip,rkcif-sditf"; - status = "disabled"; - rockchip,cif = <0x51>; - phandle = <0x22a>; - }; - - iommu@fdd97e00 { - rockchip,shootdown-entire; - clock-names = "aclk\0iface"; - interrupts = <0x00 0x9c 0x04>; - clocks = <0x02 0x270 0x02 0x26f>; - #iommu-cells = <0x00>; - compatible = "rockchip,iommu-v2"; - status = "okay"; - interrupt-names = "vop_mmu"; - reg = <0x00 0xfdd97e00 0x00 0x100 0x00 0xfdd97f00 0x00 0x100>; - phandle = <0xd6>; - rockchip,disable-device-link-resume; - }; - - rkvtunnel { - compatible = "rockchip,video-tunnel"; - status = "disabled"; - phandle = <0x245>; - }; - - syscon@fd5e0000 { - compatible = "rockchip,rk3588-hdptxphy-grf\0syscon"; - reg = <0x00 0xfd5e0000 0x00 0x100>; - phandle = <0x18a>; - }; - - i2c@fead0000 { - pinctrl-names = "default"; - #address-cells = <0x01>; - pinctrl-0 = <0x14d>; - clock-names = "i2c\0pclk"; - resets = <0x02 0xb4 0x02 0xac>; - interrupts = <0x00 0x142 0x04>; - clocks = <0x02 0x91 0x02 0x89>; - #size-cells = <0x00>; - compatible = "rockchip,rk3588-i2c\0rockchip,rk3399-i2c"; - status = "disabled"; - reg = <0x00 0xfead0000 0x00 0x1000>; - phandle = <0x2a8>; - reset-names = "i2c\0apb"; - }; - - iommu@fdba4800 { - power-domains = <0x60 0x15>; - clock-names = "aclk\0iface"; - interrupts = <0x00 0x7b 0x04>; - clocks = <0x02 0x1ae 0x02 0x1af>; - #iommu-cells = <0x00>; - compatible = "rockchip,iommu-v2"; - status = "okay"; - interrupt-names = "irq_jpege1_mmu"; - reg = <0x00 0xfdba4800 0x00 0x40>; - phandle = <0xbe>; - }; - - spdif-rx@fde10000 { - power-domains = <0x60 0x1a>; - clock-names = "mclk\0hclk"; - assigned-clocks = <0x02 0x260>; - assigned-clock-parents = <0x02 0x05>; - resets = <0x02 0x3ff>; - interrupts = <0x00 0xc8 0x04>; - clocks = <0x02 0x260 0x02 0x25f>; - dma-names = "rx"; - #sound-dai-cells = <0x00>; - compatible = "rockchip,rk3588-spdifrx\0rockchip,rk3308-spdifrx"; - status = "disabled"; - reg = <0x00 0xfde10000 0x00 0x1000>; - phandle = <0x47f>; - dmas = <0x7c 0x16>; - reset-names = "spdifrx-m"; - }; - - npu@fdab0000 { - power-domains = <0x60 0x09 0x60 0x0a 0x60 0x0b>; - iommus = <0xb2>; - clock-names = "clk_npu\0aclk0\0aclk1\0aclk2\0hclk0\0hclk1\0hclk2\0pclk"; - assigned-clocks = <0x0e 0x06>; - power-domain-names = "npu0\0npu1\0npu2"; - rknpu-supply = <0xb3>; - assigned-clock-rates = <0xbebc200>; - resets = <0x02 0x1e6 0x02 0x1b0 0x02 0x1c0 0x02 0x1e8 0x02 0x1b2 0x02 0x1c2>; - interrupts = <0x00 0x6e 0x04 0x00 0x6f 0x04 0x00 0x70 0x04>; - clocks = <0x0e 0x06 0x02 0x12d 0x02 0x122 0x02 0x124 0x02 0x12e 0x02 0x123 0x02 0x125 0x02 0x131>; - compatible = "rockchip,rk3588-rknpu"; - status = "okay"; - interrupt-names = "npu0_irq\0npu1_irq\0npu2_irq"; - mem-supply = <0xb3>; - reg = <0x00 0xfdab0000 0x00 0x10000 0x00 0xfdac0000 0x00 0x10000 0x00 0xfdad0000 0x00 0x10000>; - phandle = <0x265>; - reset-names = "srst_a0\0srst_a1\0srst_a2\0srst_h0\0srst_h1\0srst_h2"; - operating-points-v2 = <0xb1>; - }; - - hdmiphy@fed60000 { - clock-names = "ref\0apb"; - resets = <0x02 0x48e 0x02 0x485 0x02 0xc003b 0x02 0xc003c 0x02 0xc003d 0x02 0x48c 0x02 0x48d>; - clocks = <0x02 0x2b5 0x02 0x267>; - #phy-cells = <0x00>; - compatible = "rockchip,rk3588-hdptx-phy-hdmi"; - status = "okay"; - rockchip,grf = <0x18a>; - reg = <0x00 0xfed60000 0x00 0x2000>; - phandle = <0xfd>; - reset-names = "phy\0apb\0init\0cmn\0lane\0ropll\0lcpll"; - - clk-port { - #clock-cells = <0x00>; - status = "okay"; - phandle = <0x35>; - }; - }; - - dmc-opp-table { - nvmem-cells = <0x44 0x45 0x21>; - rockchip,low-temp = <0x2710>; - rockchip,leakage-voltage-sel = <0x01 0x1f 0x00 0x20 0x2c 0x01 0x2d 0x39 0x02 0x3a 0xfe 0x03>; - compatible = "operating-points-v2"; - rockchip,low-temp-min-volt = <0xb71b0>; - nvmem-cell-names = "leakage\0opp-info\0specification_serial_number"; - phandle = <0x41>; - rockchip,temp-hysteresis = <0x1388>; - rockchip,supported-hw; - - opp-1560000000 { - opp-microvolt = <0xc3500 0xc3500 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; - opp-microvolt-L2 = <0xb71b0 0xb71b0 0xd59f8 0xadf34 0xadf34 0xb71b0>; - opp-hz = <0x00 0x5cfbb600>; - opp-supported-hw = <0xf9 0xffff>; - opp-microvolt-L3 = <0xb1008 0xb1008 0xd59f8 0xaae60 0xaae60 0xb71b0>; - opp-microvolt-L1 = <0xbd358 0xbd358 0xd59f8 0xb1008 0xb1008 0xb71b0>; - }; - - opp-j-m-1560000000 { - opp-microvolt = <0xc3500 0xc3500 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; - opp-microvolt-L2 = <0xb71b0 0xb71b0 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; - opp-hz = <0x00 0x5cfbb600>; - opp-supported-hw = <0x06 0xffff>; - opp-microvolt-L3 = <0xb71b0 0xb71b0 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; - opp-microvolt-L1 = <0xbd358 0xbd358 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; - }; - - opp-j-m-528000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; - opp-hz = <0x00 0x1f78a400>; - opp-supported-hw = <0x06 0xffff>; - }; - - opp-2750000000 { - opp-microvolt = <0xd59f8 0xd59f8 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; - opp-microvolt-L2 = <0xcc77c 0xcc77c 0xd59f8 0xb1008 0xb1008 0xb71b0>; - opp-hz = <0x00 0xa3e9ab80>; - opp-supported-hw = <0xf9 0xffff>; - opp-microvolt-L3 = <0xc96a8 0xc8320 0xd59f8 0xaae60 0xaae60 0xb71b0>; - opp-microvolt-L1 = <0xcf850 0xcf850 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; - }; - - opp-1068000000 { - opp-microvolt = <0xb1008 0xb1008 0xd59f8 0xb40dc 0xb40dc 0xb71b0>; - opp-microvolt-L2 = <0xa4cb8 0xa4cb8 0xd59f8 0xaae60 0xaae60 0xb71b0>; - opp-hz = <0x00 0x3fa86300>; - opp-supported-hw = <0xf9 0xffff>; - opp-microvolt-L3 = <0xa4cb8 0xa4cb8 0xd59f8 0xa7d8c 0xa7d8c 0xb71b0>; - opp-microvolt-L1 = <0xaae60 0xaae60 0xd59f8 0xadf34 0xadf34 0xb71b0>; - }; - - opp-j-m-2750000000 { - opp-microvolt = <0xd59f8 0xd59f8 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; - opp-microvolt-L2 = <0xcc77c 0xcc77c 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; - opp-hz = <0x00 0xa3e9ab80>; - opp-supported-hw = <0x06 0xffff>; - opp-microvolt-L3 = <0xc96a8 0xc8320 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; - opp-microvolt-L1 = <0xcf850 0xcf850 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; - }; - - opp-528000000 { - opp-microvolt = <0xa4cb8 0xa4cb8 0xd59f8 0xb1008 0xb1008 0xb71b0>; - opp-microvolt-L2 = <0xa4cb8 0xa4cb8 0xd59f8 0xa7d8c 0xa7d8c 0xb71b0>; - opp-hz = <0x00 0x1f78a400>; - opp-supported-hw = <0xf9 0xffff>; - opp-microvolt-L3 = <0xa4cb8 0xa4cb8 0xd59f8 0xa4cb8 0xa4cb8 0xb71b0>; - opp-microvolt-L1 = <0xa4cb8 0xa4cb8 0xd59f8 0xaae60 0xaae60 0xb71b0>; - }; - - opp-j-m-1068000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; - opp-hz = <0x00 0x3fa86300>; - opp-supported-hw = <0x06 0xffff>; - }; - }; - - rkvenc-core@fdbe0000 { - power-domains = <0x60 0x11>; - iommus = <0xc5>; - rockchip,ccu = <0xc3>; - clock-names = "aclk_vcodec\0hclk_vcodec\0clk_core"; - assigned-clocks = <0x02 0x1ca 0x02 0x1cb>; - rockchip,task-capacity = <0x08>; - rockchip,normal-rates = <0x1dcd6500 0x00 0x2faf0800>; - assigned-clock-rates = <0x1dcd6500 0x2faf0800>; - resets = <0x02 0x305 0x02 0x304 0x02 0x306>; - interrupts = <0x00 0x68 0x04>; - clocks = <0x02 0x1ca 0x02 0x1c9 0x02 0x1cb>; - rockchip,srv = <0xb8>; - rockchip,taskqueue-node = <0x07>; - compatible = "rockchip,rkv-encoder-v2-core"; - status = "okay"; - interrupt-names = "irq_rkvenc1"; - rockchip,skip-pmu-idle-request; - reg = <0x00 0xfdbe0000 0x00 0x6000>; - phandle = <0x273>; - reset-names = "video_a\0video_h\0video_core"; - operating-points-v2 = <0xc4>; - }; - - debug@fd104000 { - compatible = "rockchip,debug"; - reg = <0x00 0xfd104000 0x00 0x1000 0x00 0xfd105000 0x00 0x1000 0x00 0xfd106000 0x00 0x1000 0x00 0xfd107000 0x00 0x1000 0x00 0xfd124000 0x00 0x1000 0x00 0xfd125000 0x00 0x1000 0x00 0xfd126000 0x00 0x1000 0x00 0xfd127000 0x00 0x1000>; - phandle = <0x48f>; - }; - - watchdog@feaf0000 { - clock-names = "tclk\0pclk"; - interrupts = <0x00 0x13b 0x04>; - clocks = <0x02 0x6c 0x02 0x6b>; - compatible = "snps,dw-wdt"; - status = "okay"; - reg = <0x00 0xfeaf0000 0x00 0x100>; - phandle = <0x2aa>; - }; - - syscon@fd5d8000 { - #address-cells = <0x01>; - #size-cells = <0x01>; - compatible = "rockchip,rk3588-usb2phy-grf\0syscon\0simple-mfd"; - reg = <0x00 0xfd5d8000 0x00 0x4000>; - phandle = <0x25d>; - - usb2-phy@8000 { - clock-output-names = "usb480m_phy2"; - clock-names = "phyclk"; - resets = <0x02 0xc0049 0x02 0x48a>; - interrupts = <0x00 0x187 0x04>; - clocks = <0x02 0x2b5>; - #clock-cells = <0x00>; - compatible = "rockchip,rk3588-usb2phy"; - status = "okay"; - reg = <0x8000 0x10>; - phandle = <0x69>; - reset-names = "phy\0apb"; - - host-port { - phy-supply = <0x75>; - #phy-cells = <0x00>; - status = "okay"; - phandle = <0x6c>; - }; - }; - }; - - cluster0-opp-table { - rockchip,pvtm-offset = <0x64>; - rockchip,pvtm-sample-time = <0x44c>; - rockchip,dsu-grf = <0x23>; - rockchip,pvtm-hw = <0x06>; - nvmem-cells = <0x1f 0x20 0x21>; - rockchip,low-temp = <0x2710>; - rockchip,pvtm-voltage-sel-hw = <0x00 0x555 0x00 0x556 0x56b 0x01 0x56c 0x581 0x02 0x582 0x597 0x03 0x598 0x5ad 0x04 0x5ae 0x5c3 0x05 0x5c4 0x270f 0x06>; - rockchip,pvtm-thermal-zone = "soc-thermal"; - rockchip,opp-shared-dsu; - rockchip,high-temp-max-freq = <0x188940>; - opp-shared; - rockchip,reboot-freq = <0x159b40>; - rockchip,pvtm-freq = <0x159b40>; - rockchip,pvtm-ref-temp = <0x19>; - low-volt-mem-read-margin = <0x04>; - volt-mem-read-margin = <0xd0bd8 0x01 0xbac48 0x02 0xa4cb8 0x03 0x78d98 0x04>; - compatible = "operating-points-v2"; - rockchip,low-temp-min-volt = <0xb71b0>; - rockchip,grf = <0x22>; - nvmem-cell-names = "leakage\0opp-info\0specification_serial_number"; - rockchip,pvtm-voltage-sel = <0x00 0x582 0x00 0x583 0x59a 0x01 0x59b 0x5b2 0x02 0x5b3 0x5ca 0x03 0x5cb 0x5e2 0x04 0x5e3 0x5fa 0x05 0x5fb 0x270f 0x06>; - phandle = <0x0f>; - rockchip,pvtm-temp-prop = <0xf4 0xf4>; - rockchip,temp-hysteresis = <0x1388>; - rockchip,high-temp = <0x14c08>; - rockchip,pvtm-pvtpll; - rockchip,supported-hw; - intermediate-threshold-freq = <0xf6180>; - rockchip,pvtm-volt = <0xb71b0>; - - opp-1200000000 { - opp-microvolt = <0xadf34 0xadf34 0xe7ef0 0xadf34 0xadf34 0xe7ef0>; - opp-microvolt-L6 = <0xa4cb8 0xa4cb8 0xe7ef0 0xa4cb8 0xa4cb8 0xe7ef0>; - opp-microvolt-L4 = <0xa4cb8 0xa4cb8 0xe7ef0 0xa4cb8 0xa4cb8 0xe7ef0>; - opp-microvolt-L2 = <0xaae60 0xaae60 0xe7ef0 0xaae60 0xaae60 0xe7ef0>; - opp-hz = <0x00 0x47868c00>; - opp-supported-hw = <0xf9 0xffff>; - opp-microvolt-L5 = <0xa4cb8 0xa4cb8 0xe7ef0 0xa4cb8 0xa4cb8 0xe7ef0>; - opp-microvolt-L3 = <0xa7d8c 0xa7d8c 0xe7ef0 0xa7d8c 0xa7d8c 0xe7ef0>; - clock-latency-ns = <0x9c40>; - opp-microvolt-L1 = <0xaae60 0xaae60 0xe7ef0 0xaae60 0xaae60 0xe7ef0>; - }; - - opp-j-m-1416000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - opp-microvolt-L2 = <0xba284 0xba284 0xe7ef0 0xba284 0xba284 0xe7ef0>; - opp-hz = <0x00 0x54667200>; - opp-microvolt-L0 = <0xc042c 0xc042c 0xe7ef0 0xc042c 0xc042c 0xe7ef0>; - opp-supported-hw = <0x06 0xffff>; - opp-suspend; - clock-latency-ns = <0x9c40>; - opp-microvolt-L1 = <0xbd358 0xbd358 0xe7ef0 0xbd358 0xbd358 0xe7ef0>; - }; - - opp-1008000000 { - opp-microvolt = <0xa4cb8 0xa4cb8 0xe7ef0 0xa4cb8 0xa4cb8 0xe7ef0>; - opp-hz = <0x00 0x3c14dc00>; - opp-supported-hw = <0xf9 0xffff>; - clock-latency-ns = <0x9c40>; - }; - - opp-j-m-1704000000 { - opp-microvolt = <0xe4e1c 0xe4e1c 0xe7ef0 0xe4e1c 0xe4e1c 0xe7ef0>; - opp-microvolt-L6 = <0xd2924 0xd2924 0xe7ef0 0xd2924 0xd2924 0xe7ef0>; - opp-microvolt-L4 = <0xd8acc 0xd8acc 0xe7ef0 0xd8acc 0xd8acc 0xe7ef0>; - opp-microvolt-L2 = <0xdec74 0xdec74 0xe7ef0 0xdec74 0xdec74 0xe7ef0>; - opp-hz = <0x00 0x6590fa00>; - opp-supported-hw = <0x06 0xffff>; - opp-microvolt-L5 = <0xd59f8 0xd59f8 0xe7ef0 0xd59f8 0xd59f8 0xe7ef0>; - opp-microvolt-L3 = <0xdbba0 0xdbba0 0xe7ef0 0xdbba0 0xdbba0 0xe7ef0>; - clock-latency-ns = <0x9c40>; - opp-microvolt-L1 = <0xe1d48 0xe1d48 0xe7ef0 0xe1d48 0xe1d48 0xe7ef0>; - }; - - opp-j-m-1200000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - opp-hz = <0x00 0x47868c00>; - opp-supported-hw = <0x06 0xffff>; - clock-latency-ns = <0x9c40>; - }; - - opp-j-m-1008000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - opp-hz = <0x00 0x3c14dc00>; - opp-supported-hw = <0x06 0xffff>; - clock-latency-ns = <0x9c40>; - }; - - opp-j-m-816000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - opp-hz = <0x00 0x30a32c00>; - opp-supported-hw = <0x06 0xffff>; - clock-latency-ns = <0x9c40>; - }; - - opp-1800000000 { - opp-microvolt = <0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0>; - opp-microvolt-L6 = <0xd59f8 0xd59f8 0xe7ef0 0xd59f8 0xd59f8 0xe7ef0>; - opp-microvolt-L4 = <0xdbba0 0xdbba0 0xe7ef0 0xdbba0 0xdbba0 0xe7ef0>; - opp-microvolt-L2 = <0xe1d48 0xe1d48 0xe7ef0 0xe1d48 0xe1d48 0xe7ef0>; - opp-hz = <0x00 0x6b49d200>; - opp-supported-hw = <0xf9 0xffff>; - opp-microvolt-L5 = <0xd8acc 0xd8acc 0xe7ef0 0xd8acc 0xd8acc 0xe7ef0>; - opp-microvolt-L3 = <0xdec74 0xdec74 0xe7ef0 0xdec74 0xdec74 0xe7ef0>; - clock-latency-ns = <0x9c40>; - opp-microvolt-L1 = <0xe4e1c 0xe4e1c 0xe7ef0 0xe4e1c 0xe4e1c 0xe7ef0>; - }; - - opp-j-m-600000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - opp-hz = <0x00 0x23c34600>; - opp-supported-hw = <0x06 0xffff>; - clock-latency-ns = <0x9c40>; - }; - - opp-1608000000 { - opp-microvolt = <0xcf850 0xcf850 0xe7ef0 0xcf850 0xcf850 0xe7ef0>; - opp-microvolt-L6 = <0xc042c 0xc042c 0xe7ef0 0xc042c 0xc042c 0xe7ef0>; - opp-microvolt-L4 = <0xc3500 0xc3500 0xe7ef0 0xc3500 0xc3500 0xe7ef0>; - opp-microvolt-L2 = <0xc96a8 0xc96a8 0xe7ef0 0xc96a8 0xc96a8 0xe7ef0>; - opp-hz = <0x00 0x5fd82200>; - opp-supported-hw = <0xf9 0xffff>; - opp-microvolt-L5 = <0xc3500 0xc3500 0xe7ef0 0xc3500 0xc3500 0xe7ef0>; - opp-microvolt-L3 = <0xc65d4 0xc65d4 0xe7ef0 0xc65d4 0xc65d4 0xe7ef0>; - clock-latency-ns = <0x9c40>; - opp-microvolt-L1 = <0xcc77c 0xcc77c 0xe7ef0 0xcc77c 0xcc77c 0xe7ef0>; - }; - - opp-j-1296000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - opp-hz = <0x00 0x4d3f6400>; - opp-microvolt-L0 = <0xbd358 0xbd358 0xe7ef0 0xbd358 0xbd358 0xe7ef0>; - opp-supported-hw = <0x04 0xffff>; - clock-latency-ns = <0x9c40>; - opp-microvolt-L1 = <0xba284 0xba284 0xe7ef0 0xba284 0xba284 0xe7ef0>; - }; - - opp-j-m-408000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - opp-hz = <0x00 0x18519600>; - opp-supported-hw = <0x06 0xffff>; - clock-latency-ns = <0x9c40>; - }; - - opp-816000000 { - opp-microvolt = <0xa4cb8 0xa4cb8 0xe7ef0 0xa4cb8 0xa4cb8 0xe7ef0>; - opp-hz = <0x00 0x30a32c00>; - opp-supported-hw = <0xf9 0xffff>; - clock-latency-ns = <0x9c40>; - }; - - opp-j-m-1608000000 { - opp-microvolt = <0xd8acc 0xd8acc 0xe7ef0 0xd8acc 0xd8acc 0xe7ef0>; - opp-microvolt-L6 = <0xc65d4 0xc65d4 0xe7ef0 0xc65d4 0xc65d4 0xe7ef0>; - opp-microvolt-L4 = <0xcc77c 0xcc77c 0xe7ef0 0xcc77c 0xcc77c 0xe7ef0>; - opp-microvolt-L2 = <0xd2924 0xd2924 0xe7ef0 0xd2924 0xd2924 0xe7ef0>; - opp-hz = <0x00 0x5fd82200>; - opp-supported-hw = <0x06 0xffff>; - opp-microvolt-L5 = <0xc96a8 0xc96a8 0xe7ef0 0xc96a8 0xc96a8 0xe7ef0>; - opp-microvolt-L3 = <0xcf850 0xcf850 0xe7ef0 0xcf850 0xcf850 0xe7ef0>; - clock-latency-ns = <0x9c40>; - opp-microvolt-L1 = <0xd59f8 0xd59f8 0xe7ef0 0xd59f8 0xd59f8 0xe7ef0>; - }; - - opp-600000000 { - opp-microvolt = <0xa4cb8 0xa4cb8 0xe7ef0 0xa4cb8 0xa4cb8 0xe7ef0>; - opp-hz = <0x00 0x23c34600>; - opp-supported-hw = <0xf9 0xffff>; - clock-latency-ns = <0x9c40>; - }; - - opp-1416000000 { - opp-microvolt = <0xba284 0xba284 0xe7ef0 0xba284 0xba284 0xe7ef0>; - opp-microvolt-L6 = <0xadf34 0xadf34 0xe7ef0 0xadf34 0xadf34 0xe7ef0>; - opp-microvolt-L4 = <0xb1008 0xb1008 0xe7ef0 0xb1008 0xb1008 0xe7ef0>; - opp-microvolt-L2 = <0xb40dc 0xb40dc 0xe7ef0 0xb40dc 0xb40dc 0xe7ef0>; - opp-hz = <0x00 0x54667200>; - opp-supported-hw = <0xf9 0xffff>; - opp-microvolt-L5 = <0xadf34 0xadf34 0xe7ef0 0xadf34 0xadf34 0xe7ef0>; - opp-suspend; - opp-microvolt-L3 = <0xb1008 0xb1008 0xe7ef0 0xb1008 0xb1008 0xe7ef0>; - clock-latency-ns = <0x9c40>; - opp-microvolt-L1 = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - }; - - opp-408000000 { - opp-microvolt = <0xa4cb8 0xa4cb8 0xe7ef0 0xa4cb8 0xa4cb8 0xe7ef0>; - opp-hz = <0x00 0x18519600>; - opp-supported-hw = <0xf9 0xffff>; - clock-latency-ns = <0x9c40>; - }; - }; - - vcc-4g-regulator { - regulator-boot-on; - gpio = <0x182 0x00 0x00>; - regulator-always-on; - enable-active-high; - regulator-name = "vcc_4g"; - compatible = "regulator-fixed"; - status = "okay"; - phandle = <0x4b0>; - }; - - spi@fecb0000 { - pinctrl-names = "default"; - #address-cells = <0x01>; - num-cs = <0x02>; - pinctrl-0 = <0x187 0x188 0x189>; - clock-names = "spiclk\0apb_pclk"; - interrupts = <0x00 0x14a 0x04>; - clocks = <0x02 0xa7 0x02 0xa2>; - #size-cells = <0x00>; - dma-names = "tx\0rx"; - compatible = "rockchip,rk3066-spi"; - status = "disabled"; - reg = <0x00 0xfecb0000 0x00 0x1000>; - phandle = <0x2e6>; - dmas = <0xf2 0x0d 0xf2 0x0e>; - }; - - spdif-rx@fde08000 { - power-domains = <0x60 0x1a>; - clock-names = "mclk\0hclk"; - assigned-clocks = <0x02 0x25e>; - assigned-clock-parents = <0x02 0x05>; - resets = <0x02 0x3fd>; - interrupts = <0x00 0xc7 0x04>; - clocks = <0x02 0x25e 0x02 0x25d>; - dma-names = "rx"; - #sound-dai-cells = <0x00>; - compatible = "rockchip,rk3588-spdifrx\0rockchip,rk3308-spdifrx"; - status = "disabled"; - reg = <0x00 0xfde08000 0x00 0x1000>; - phandle = <0x280>; - dmas = <0x7c 0x15>; - reset-names = "spdifrx-m"; - }; - - mipi3-csi2-hw@fdd40000 { - clock-names = "pclk_csi2host"; - reg-names = "csihost_regs"; - resets = <0x02 0x327>; - interrupts = <0x00 0x95 0x04 0x00 0x96 0x04>; - clocks = <0x02 0x1d2>; - compatible = "rockchip,rk3588-mipi-csi2-hw"; - status = "okay"; - interrupt-names = "csi-intr1\0csi-intr2"; - reg = <0x00 0xfdd40000 0x00 0x10000>; - phandle = <0x4a>; - reset-names = "srst_csihost_p"; - }; - - // DTB memory region: { address: 0x100000000, size: 0x100000000 } 4G - memory { - device_type = "memory"; - reg = <0x01 0x00000000 0x01 0x00000000>; - }; - - jpege-core@fdba4000 { - power-domains = <0x60 0x15>; - iommus = <0xbe>; - rockchip,ccu = <0xbd>; - clock-names = "aclk_vcodec\0hclk_vcodec"; - assigned-clocks = <0x02 0x1ae>; - rockchip,normal-rates = <0x2367b880 0x00>; - assigned-clock-rates = <0x2367b880>; - resets = <0x02 0x2cc 0x02 0x2cd>; - interrupts = <0x00 0x7c 0x04>; - clocks = <0x02 0x1ae 0x02 0x1af>; - rockchip,srv = <0xb8>; - rockchip,taskqueue-node = <0x02>; - rockchip,disable-auto-freq; - compatible = "rockchip,vpu-jpege-core"; - status = "okay"; - interrupt-names = "irq_jpege1"; - rockchip,skip-pmu-idle-request; - reg = <0x00 0xfdba4000 0x00 0x400>; - phandle = <0x26e>; - reset-names = "video_a\0video_h"; - }; - - wireless-wlan { - pinctrl-names = "default"; - pinctrl-0 = <0x1ea>; - WIFI,host_wake_irq = <0x182 0x0a 0x00>; - wifi_chip_type = "rtl8822ce"; - compatible = "wlan-platdata"; - status = "okay"; - phandle = <0x4ab>; - }; - - rkcif-mipi-lvds4-sditf-vir3 { - compatible = "rockchip,rkcif-sditf"; - status = "disabled"; - rockchip,cif = <0x1a1>; - phandle = <0x475>; - }; - - dp@fde50000 { - power-domains = <0x60 0x19>; - clock-names = "apb\0aux\0i2s\0spdif\0hclk\0hdcp"; - assigned-clocks = <0x02 0x2cc>; - assigned-clock-rates = <0xf42400>; - resets = <0x02 0x388>; - interrupts = <0x00 0xa1 0x04>; - clocks = <0x02 0x1e6 0x02 0x2cc 0x02 0x1fb 0x02 0x207 0x04 0x02 0x1ea>; - #sound-dai-cells = <0x01>; - compatible = "rockchip,rk3588-dp"; - status = "disabled"; - phys = <0xf6>; - reg = <0x00 0xfde50000 0x00 0x4000>; - phandle = <0x1d6>; - - ports { - #address-cells = <0x01>; - #size-cells = <0x00>; - - port@0 { - #address-cells = <0x01>; - #size-cells = <0x00>; - reg = <0x00>; - - endpoint@1 { - remote-endpoint = <0x38>; - status = "disabled"; - reg = <0x01>; - phandle = <0xe0>; - }; - - endpoint@2 { - remote-endpoint = <0xf8>; - status = "disabled"; - reg = <0x02>; - phandle = <0xe6>; - }; - - endpoint@0 { - remote-endpoint = <0xf7>; - status = "disabled"; - reg = <0x00>; - phandle = <0xda>; - }; - }; - - port@1 { - reg = <0x01>; - - endpoint { - phandle = <0x286>; - }; - }; - }; - }; - - rockchip-system-monitor { - rockchip,thermal-zone = "soc-thermal"; - compatible = "rockchip,system-monitor"; - phandle = <0x247>; - }; - - vcc3v3-pcie30 { - regulator-max-microvolt = <0x325aa0>; - enable-active-high; - regulator-min-microvolt = <0x325aa0>; - regulator-name = "vcc3v3_pcie30"; - startup-delay-us = <0x1388>; - compatible = "regulator-fixed"; - status = "okay"; - phandle = <0x1b8>; - vin-supply = <0x1cd>; - gpios = <0x182 0x04 0x00>; - }; - - phy@fedb0000 { - clock-names = "pclk\0ref"; - resets = <0x02 0xc0045 0x02 0x43 0x02 0x44 0x02 0xc0046>; - clocks = <0x02 0x109 0x02 0x2b6>; - #phy-cells = <0x00>; - compatible = "rockchip,rk3588-mipi-dcphy"; - status = "okay"; - rockchip,grf = <0x191>; - reg = <0x00 0xfedb0000 0x00 0x10000>; - phandle = <0x30>; - reset-names = "m_phy\0apb\0grf\0s_phy"; - }; - - rkvdec-core@fdc38000 { - power-domains = <0x60 0x0e>; - iommus = <0xc9>; - rockchip,ccu = <0xca>; - clock-names = "aclk_vcodec\0hclk_vcodec\0clk_core\0clk_cabac\0clk_hevc_cabac"; - reg-names = "regs\0link"; - assigned-clocks = <0x02 0x190 0x02 0x193 0x02 0x191 0x02 0x192>; - rockchip,core-mask = <0x10001>; - rockchip,task-capacity = <0x10>; - rockchip,normal-rates = <0x2faf0800 0x00 0x23c34600 0x23c34600 0x3b9aca00>; - assigned-clock-rates = <0x2faf0800 0x23c34600 0x23c34600 0x3b9aca00>; - resets = <0x02 0x284 0x02 0x283 0x02 0x289 0x02 0x287 0x02 0x288>; - interrupts = <0x00 0x5f 0x04>; - rockchip,rcb-info = <0x88 0x6000 0x89 0xc000 0x8d 0x16000 0x8c 0xc000 0x8b 0x2c000 0x85 0xc000 0x86 0x2000 0x87 0x1100 0x8a 0x3300 0x8e 0x47300>; - clocks = <0x02 0x190 0x02 0x18f 0x02 0x193 0x02 0x191 0x02 0x192>; - rockchip,rcb-min-width = <0x200>; - rockchip,srv = <0xb8>; - rockchip,taskqueue-node = <0x09>; - compatible = "rockchip,rkv-decoder-v2"; - status = "okay"; - interrupt-names = "irq_rkvdec0"; - rockchip,skip-pmu-idle-request; - rockchip,rcb-iova = <0xfff00000 0x100000>; - reg = <0x00 0xfdc38100 0x00 0x400 0x00 0xfdc38000 0x00 0x100>; - phandle = <0x274>; - reset-names = "video_a\0video_h\0video_core\0video_cabac\0video_hevc_cabac"; - rockchip,sram = <0xcb>; - }; - - minidump { - smem-region = <0x1cf>; - minidump-region = <0x1d0>; - compatible = "rockchip,minidump"; - status = "disabled"; - phandle = <0x491>; - }; }; diff --git a/configs/vms/linux-rk3588-aarch64-smp-vm1.toml b/configs/vms/linux-rk3588-aarch64-smp-vm2.toml similarity index 81% rename from configs/vms/linux-rk3588-aarch64-smp-vm1.toml rename to configs/vms/linux-rk3588-aarch64-smp-vm2.toml index c60ecabb..f66b2d04 100644 --- a/configs/vms/linux-rk3588-aarch64-smp-vm1.toml +++ b/configs/vms/linux-rk3588-aarch64-smp-vm2.toml @@ -2,9 +2,9 @@ # [base] # Guest vm id. -id = 1 +id = 2 # Guest vm name. -name = "linux" +name = "linux-minimal" # Virtualization type. vm_type = 1 # The number of virtual CPUs. @@ -19,22 +19,22 @@ phys_cpu_sets = [1, 2, 4, 8] # [kernel] # The entry point of the kernel image. -entry_point = 0x1020_0000 +entry_point = 0x1_1020_0000 # The load address of the kernel image. -kernel_load_addr = 0x1020_0000 +kernel_load_addr = 0x1_1020_0000 # The load address of the device tree blob (DTB). -dtb_load_addr = 0x1000_0000 +dtb_load_addr = 0x1_1000_0000 # The load address of the ramdisk image. -ramdisk_load_addr = 0x0a20_0000 +ramdisk_load_addr = 0x1_0a20_0000 # The location of image: "memory" | "fs". # load from memory image_location = "memory" # The file path of the kernel image. kernel_path = "Image.bin" # The file path of the device tree blob (DTB). -dtb_path = "aio-rk3588-jd4-vm1.dtb" +dtb_path = "aio-rk3588-jd4-vm2.dtb" # The file path of the ramdisk image. -ramdisk_path = "ramdisk.img" +ramdisk_path = "initramfs-busybox-arm64.img" # load from file system. @@ -69,4 +69,7 @@ emu_devices = [] # Pass-through devices. # Name Base-Ipa Base-Pa Length Alloc-Irq. -passthrough_devices = [] +passthrough_devices = [ + # ["uart@feb40000", 0xfeb4_0000, 0xfeb4_0000, 0x1000, 0x1], + # ["uart@feb50000", 0xfeb5_0000, 0xfeb4_0000, 0x1000, 0x1], +] From 37af056fb0ad90cbe60ea6d4d3fac850d8e9d127 Mon Sep 17 00:00:00 2001 From: aarkegz Date: Thu, 12 Jun 2025 22:39:51 +0800 Subject: [PATCH 040/219] test with kernel 5.10.198 --- Cargo.lock | 37 +++++++----- Cargo.toml | 33 +++-------- configs/platforms/aarch64-qemu-virt-hv.toml | 1 - configs/vms/arceos-aarch64-gicv3-tester.toml | 60 ++++++++++++++++++++ configs/vms/linux-qemu-aarch64-gicv3-a.toml | 3 +- configs/vms/linux-qemu-aarch64-gicv3-b.toml | 3 +- tool/conn_2_serial.sh | 35 ++++++++++++ 7 files changed, 130 insertions(+), 42 deletions(-) create mode 100644 configs/vms/arceos-aarch64-gicv3-tester.toml create mode 100755 tool/conn_2_serial.sh diff --git a/Cargo.lock b/Cargo.lock index 3c8a75d7..d973c52e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -167,7 +167,7 @@ dependencies = [ [[package]] name = "arm_vcpu" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arm_vcpu.git?branch=inject_interrupt_vgicv3#1fb5ac158dca756fb94d7fb03f8182da5f20cce2" +source = "git+https://github.com/arceos-hypervisor/arm_vcpu.git?branch=inject_interrupt_vgicv3_ivc#f8e65147cf8801f590678388c05b005044fe3522" dependencies = [ "aarch64-cpu 9.4.0", "aarch64_sysreg", @@ -175,7 +175,7 @@ dependencies = [ "axaddrspace", "axdevice_base", "axerrno", - "axvcpu", + "axvcpu 0.1.0 (git+https://github.com/arceos-hypervisor/axvcpu.git?branch=inject_interrupt_vgicv3_ivc)", "axvisor_api", "log", "numeric-enum-macro", @@ -623,6 +623,17 @@ dependencies = [ "percpu", ] +[[package]] +name = "axvcpu" +version = "0.1.0" +source = "git+https://github.com/arceos-hypervisor/axvcpu.git?branch=inject_interrupt_vgicv3_ivc#aed8ed74c9be9bd0c0a71a8a38bf5a144540f87f" +dependencies = [ + "axaddrspace", + "axerrno", + "memory_addr", + "percpu", +] + [[package]] name = "axvisor" version = "0.1.0" @@ -634,16 +645,15 @@ dependencies = [ "axerrno", "axhvc", "axstd", - "axvcpu", + "axvcpu 0.1.0 (git+https://github.com/arceos-hypervisor/axvcpu.git?branch=inject_interrupt_vgicv3_ivc)", "axvisor_api", "axvm", "bitflags 2.9.0", - "cpumask", - "crate_interface", - "kernel_guard", "cfg-if", + "cpumask", "crate_interface", "fdt-parser", + "kernel_guard", "kspin", "lazyinit", "log", @@ -684,14 +694,13 @@ dependencies = [ [[package]] name = "axvm" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/axvm.git?branch=inject_interrupt_vgicv3#02b4e6d49ac7386caad8f8724532580c4c87fd1f" dependencies = [ "arm_vcpu", "axaddrspace", "axdevice", "axdevice_base", "axerrno", - "axvcpu", + "axvcpu 0.1.0 (git+https://github.com/arceos-hypervisor/axvcpu.git?branch=inject_interrupt_vgicv3_ivc)", "axvmconfig", "cfg-if", "cpumask", @@ -1192,6 +1201,8 @@ checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" [[package]] name = "page_table_entry" version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c097d641745a066856a26eed6e486d4430bb3e32c94f1203ea09c63239b360a0" dependencies = [ "aarch64-cpu 10.0.0", "bitflags 2.9.0", @@ -1202,6 +1213,8 @@ dependencies = [ [[package]] name = "page_table_multiarch" version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4647889585d29762d747be0916d6d28db72967a697d142be86f187a6b496832a" dependencies = [ "log", "memory_addr", @@ -1427,7 +1440,7 @@ source = "git+https://github.com/arceos-hypervisor/riscv_vcpu.git?branch=inject_ dependencies = [ "axaddrspace", "axerrno", - "axvcpu", + "axvcpu 0.1.0 (git+https://github.com/arceos-hypervisor/axvcpu.git?branch=inject_interrupt)", "bit_field", "bitflags 2.9.0", "cfg-if", @@ -1921,7 +1934,7 @@ dependencies = [ "axaddrspace", "axdevice_base", "axerrno", - "axvcpu", + "axvcpu 0.1.0 (git+https://github.com/arceos-hypervisor/axvcpu.git?branch=inject_interrupt)", "bit_field", "bitflags 2.9.0", "cfg-if", @@ -1973,7 +1986,3 @@ dependencies = [ "quote", "syn 2.0.100", ] - -[[patch.unused]] -name = "arm_vgic" -version = "0.0.0" diff --git a/Cargo.toml b/Cargo.toml index a425ad3c..c4d9f00d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -38,8 +38,8 @@ axstd = { git = "https://github.com/arceos-hypervisor/arceos.git", branch = "vmm ] } # System dependent modules provided by ArceOS-Hypervisor. -axvm = { git = "https://github.com/arceos-hypervisor/axvm.git", branch = "inject_interrupt_vgicv3" } -axvcpu = { git = "https://github.com/arceos-hypervisor/axvcpu.git", branch = "inject_interrupt" } +axvm = { git = "https://github.com/arceos-hypervisor/axvm.git", branch = "inject_interrupt_vgicv3_ivc" } +axvcpu = { git = "https://github.com/arceos-hypervisor/axvcpu.git", branch = "inject_interrupt_vgicv3_ivc" } axaddrspace = { git = "https://github.com/arceos-hypervisor/axaddrspace.git" } axhvc = { git = "https://github.com/arceos-hypervisor/axhvc.git" } @@ -66,28 +66,11 @@ prettyplease = "0.2" quote = "1.0" syn = "2.0" +[patch."https://github.com/arceos-hypervisor/axvm.git"] +axvm = { path = "../axvm" } -[patch."https://github.com/arceos-hypervisor/arceos.git".axstd] -path = "crates/arceos/ulib/axstd" -[patch."https://github.com/arceos-hypervisor/arceos.git".axhal] -path = "crates/arceos/modules/axhal" -[patch."https://github.com/arceos-hypervisor/axvm.git".axvm] -path = "crates/axvm" -[patch."https://github.com/arceos-hypervisor/axvcpu.git".axvcpu] -path = "crates/axvcpu" -[patch."https://github.com/arceos-hypervisor/axaddrspace.git".axaddrspace] -path = "crates/axaddrspace" -[patch."https://github.com/arceos-hypervisor/arm_vcpu.git".arm_vcpu] -path = "crates/arm_vcpu" -[patch."https://github.com/arceos-hypervisor/axdevice.git".axdevice] -path = "crates/axdevice" -[patch."https://github.com/arceos-hypervisor/arm_vgic.git".arm_vgic] -path = "crates/arm_vgic" -[patch."https://github.com/arceos-hypervisor/axdevice_crates.git".axdevice_base] -path = "crates/axdevice_crates/axdevice_base" -[patch."https://github.com/arceos-hypervisor/axhvc.git".axhvc] -path = "crates/axhvc" +[patch."https://github.com/arceos-hypervisor/axaddrspace.git"] +axaddrspace = { path = "../axaddrspace" } -[patch.crates-io] -page_table_multiarch = {path = "crates/page_table_multiarch/page_table_multiarch"} -page_table_entry = {path = "crates/page_table_multiarch/page_table_entry"} \ No newline at end of file +[patch."https://github.com/arceos-hypervisor/axhvc.git"] +axhvc = { path = "../axhvc" } diff --git a/configs/platforms/aarch64-qemu-virt-hv.toml b/configs/platforms/aarch64-qemu-virt-hv.toml index c3f06e09..66e18305 100644 --- a/configs/platforms/aarch64-qemu-virt-hv.toml +++ b/configs/platforms/aarch64-qemu-virt-hv.toml @@ -101,7 +101,6 @@ gicc-paddr = 0x0801_0000 # uint gicd-paddr = 0x0800_0000 # uint gicv-paddr = 0x0804_0000 # uint gich-paddr = 0x0803_0000 # uint -gicr-paddr = 0x080a_0000 # uint # GIC Redistributor base address gicr-paddr = 0x080a_0000 diff --git a/configs/vms/arceos-aarch64-gicv3-tester.toml b/configs/vms/arceos-aarch64-gicv3-tester.toml new file mode 100644 index 00000000..e2952adb --- /dev/null +++ b/configs/vms/arceos-aarch64-gicv3-tester.toml @@ -0,0 +1,60 @@ +# Vm base info configs +# +[base] +# Guest vm id. +id = 1 +# Guest vm name. +name = "arceos" +# Virtualization type. +vm_type = 1 +# The number of virtual CPUs. +cpu_num = 1 +# Guest vm physical cpu sets. +phys_cpu_sets = [1] + +# +# Vm kernel configs +# +[kernel] +# The entry point of the kernel image. +entry_point = 0x4020_0000 +# The location of image: "memory" | "fs". +# Load from file system. +image_location = "memory" +# The file path of the kernel image. +kernel_path = "/home/smx/source/lectures/arceos-repos/arceos-new/zignore-gicv3-test/gicv3_tester_aarch64-qemu-virt-01-task-print-time-smp1.bin" +# The load address of the kernel image. +kernel_load_addr = 0x4020_0000 +## Load from memory +# image_location = "memory" +## The file path of the kernel image. +# kernel_path = "" +## The file path of the device tree blob (DTB). +# dtb_path = "" +# Memory regions with format (`base_paddr`, `size`, `flags`, `map_type`). +# For `map_type`, 0 means `MAP_ALLOC`, 1 means `MAP_IDENTICAL`. +memory_regions = [ + [0x4000_0000, 0x100_0000, 0x7, 0], # Low RAM 16M 0b00111 R|W|EXECUTE + +] + +# +# Device specifications +# +[devices] +# Emu_devices. +# Name Base-Ipa Ipa_len Alloc-Irq Emu-Type EmuConfig. +emu_devices = [] + +# Pass-through devices. +# Name Base-Ipa Base-Pa Length Alloc-Irq. +passthrough_devices = [ + # ["intc@8000000", 0x800_0000, 0x800_0000, 0x50_000, 0x1], + # ["intc@8000000", 0x800_0000, 0x800_0000, 0x100_0000, 0x1], + ["pl011@9000000", 0x900_0000, 0x900_0000, 0x1000, 0x1], + ["pl031@9010000", 0x901_0000, 0x901_0000, 0x1000, 0x1], + ["pl061@9030000", 0x903_0000, 0x903_0000, 0x1000, 0x1], + # a003000.virtio_mmio virtio_mmio@a003000 + # a003200.virtio_mmio virtio_mmio@a003200 + ["virtio_mmio", 0xa00_0000, 0xa00_0000, 0x4000, 0x1], +] \ No newline at end of file diff --git a/configs/vms/linux-qemu-aarch64-gicv3-a.toml b/configs/vms/linux-qemu-aarch64-gicv3-a.toml index 95642466..93f90902 100644 --- a/configs/vms/linux-qemu-aarch64-gicv3-a.toml +++ b/configs/vms/linux-qemu-aarch64-gicv3-a.toml @@ -23,7 +23,8 @@ entry_point = 0x8008_0000 # load from memory. image_location = "memory" # The file path of the kernel image. -kernel_path = "linux-6.6.62.bin" +# kernel_path = "linux-6.6.62.bin" +kernel_path = "linux-5.10.198.bin" # The load address of the kernel image. kernel_load_addr = 0x8008_0000 # The file path of the device tree blob (DTB). diff --git a/configs/vms/linux-qemu-aarch64-gicv3-b.toml b/configs/vms/linux-qemu-aarch64-gicv3-b.toml index d080a791..bfa38d10 100644 --- a/configs/vms/linux-qemu-aarch64-gicv3-b.toml +++ b/configs/vms/linux-qemu-aarch64-gicv3-b.toml @@ -23,7 +23,8 @@ entry_point = 0xc008_0000 # load from memory. image_location = "memory" # The file path of the kernel image. -kernel_path = "linux-6.6.62.bin" +# kernel_path = "linux-6.6.62.bin" +kernel_path = "linux-5.10.198.bin" # The load address of the kernel image. kernel_load_addr = 0xc008_0000 # The file path of the device tree blob (DTB). diff --git a/tool/conn_2_serial.sh b/tool/conn_2_serial.sh new file mode 100755 index 00000000..a925c9d3 --- /dev/null +++ b/tool/conn_2_serial.sh @@ -0,0 +1,35 @@ +#!/bin/bash + +# Print usage information +if [[ "$1" == "--help" || "$1" == "-h" ]]; then + echo "Usage: $0 [FIRST_PORT] [SECOND_PORT]" + echo "Default ports are 4321 and 4322 if not specified." + exit 0 +fi + +# Determine the first and second ports to use +FIRST_PORT=${1:-4321} +SECOND_PORT=${2:-4322} + +# Create tmux session if it doesn't exist +if ! tmux has-session -t "mysession"; then + tmux new-session -d -s mysession + tmux split-window -h +fi + +# Send C-c to both panes to clear any previous commands +tmux send-keys -t mysession:0.0 C-c +tmux send-keys -t mysession:0.1 C-c + +# Send telnet commands to both panes +tmux send-keys -t mysession:0.0 "telnet localhost ${FIRST_PORT}" C-m +tmux send-keys -t mysession:0.1 "sleep 2; telnet localhost ${SECOND_PORT}" C-m + +# Attach to the tmux session if not already attached +session=$(tmux list-sessions 2>/dev/null | grep 'mysession') +if [[ -n "$session" && "$session" == *"attached"* ]]; then + echo "Session 'mysession' is already attached." + exit 0 +fi + +tmux attach-session -t mysession From 454e98cfbf05ea12a81f81e1f32ab74f082bf915 Mon Sep 17 00:00:00 2001 From: Gallium70 <52118815+Gallium70@users.noreply.github.com> Date: Fri, 13 Jun 2025 15:53:53 +0800 Subject: [PATCH 041/219] [feat] Delay boot of second VM to allow first VM to initialize clocks --- Cargo.lock | 44 ++++++++++---------------------------------- src/vmm/vcpus.rs | 14 +++++++++++--- 2 files changed, 21 insertions(+), 37 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index a37e16cb..28e51dde 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -117,10 +117,9 @@ dependencies = [ [[package]] name = "arceos_api" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_irq_gicv3#00480405fc3e89f40d6d4263054687ba5918c873" dependencies = [ "axalloc", - "axconfig 0.1.0 (git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_irq_gicv3)", + "axconfig 0.1.0", "axdriver", "axerrno", "axfeat", @@ -150,7 +149,6 @@ dependencies = [ [[package]] name = "arm_gicv2" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arm_gicv2?branch=debin%2F2vm_timer#0ad077649e030b9836a5dc55a5a01b1fd0246e11" dependencies = [ "tock-registers 0.8.1", ] @@ -167,7 +165,6 @@ dependencies = [ [[package]] name = "arm_vcpu" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arm_vcpu.git?branch=inject_interrupt_vgicv3#1fb5ac158dca756fb94d7fb03f8182da5f20cce2" dependencies = [ "aarch64-cpu 9.4.0", "aarch64_sysreg", @@ -187,7 +184,6 @@ dependencies = [ [[package]] name = "arm_vgic" version = "0.0.0" -source = "git+https://github.com/arceos-hypervisor/arm_vgic.git?branch=vmm_irq_gicv3#453e7b070573abefeb2ef1658234285591ad4b1d" dependencies = [ "arm_gicv2", "axaddrspace", @@ -238,7 +234,6 @@ dependencies = [ [[package]] name = "axalloc" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_irq_gicv3#00480405fc3e89f40d6d4263054687ba5918c873" dependencies = [ "allocator", "axerrno", @@ -251,7 +246,6 @@ dependencies = [ [[package]] name = "axconfig" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=debin%2Ftimer_api#35b7bc57a6cca5ac063a1d7b2748433687660b7c" dependencies = [ "axconfig-gen-macros", ] @@ -259,7 +253,7 @@ dependencies = [ [[package]] name = "axconfig" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_irq_gicv3#00480405fc3e89f40d6d4263054687ba5918c873" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=debin%2Ftimer_api#35b7bc57a6cca5ac063a1d7b2748433687660b7c" dependencies = [ "axconfig-gen-macros", ] @@ -289,7 +283,6 @@ dependencies = [ [[package]] name = "axdevice" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/axdevice.git?branch=inject_interrupt_vgicv3#e806d495f17678ab43389dc6386fd37b317de713" dependencies = [ "arm_vgic", "axaddrspace", @@ -304,7 +297,6 @@ dependencies = [ [[package]] name = "axdevice_base" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/axdevice_crates.git?branch=inject_interrupt#9e42a6c1714b42d352d7f8c8a146024c29bf3888" dependencies = [ "axaddrspace", "axerrno", @@ -316,10 +308,9 @@ dependencies = [ [[package]] name = "axdriver" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_irq_gicv3#00480405fc3e89f40d6d4263054687ba5918c873" dependencies = [ "axalloc", - "axconfig 0.1.0 (git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_irq_gicv3)", + "axconfig 0.1.0", "axdriver_base", "axdriver_block", "axdriver_pci", @@ -374,7 +365,6 @@ dependencies = [ [[package]] name = "axfeat" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_irq_gicv3#00480405fc3e89f40d6d4263054687ba5918c873" dependencies = [ "axalloc", "axdriver", @@ -391,7 +381,6 @@ dependencies = [ [[package]] name = "axfs" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_irq_gicv3#00480405fc3e89f40d6d4263054687ba5918c873" dependencies = [ "axdriver", "axdriver_block", @@ -445,14 +434,13 @@ dependencies = [ [[package]] name = "axhal" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_irq_gicv3#00480405fc3e89f40d6d4263054687ba5918c873" dependencies = [ "aarch64-cpu 10.0.0", "arm-gic-driver", "arm_gicv2", "arm_pl011", "axalloc", - "axconfig 0.1.0 (git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_irq_gicv3)", + "axconfig 0.1.0", "axlog", "bitflags 2.9.0", "cfg-if", @@ -495,9 +483,8 @@ dependencies = [ [[package]] name = "axipi" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_irq_gicv3#00480405fc3e89f40d6d4263054687ba5918c873" dependencies = [ - "axconfig 0.1.0 (git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_irq_gicv3)", + "axconfig 0.1.0", "axhal", "kspin", "lazyinit", @@ -508,7 +495,6 @@ dependencies = [ [[package]] name = "axlog" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_irq_gicv3#00480405fc3e89f40d6d4263054687ba5918c873" dependencies = [ "cfg-if", "crate_interface", @@ -519,10 +505,9 @@ dependencies = [ [[package]] name = "axmm" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_irq_gicv3#00480405fc3e89f40d6d4263054687ba5918c873" dependencies = [ "axalloc", - "axconfig 0.1.0 (git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_irq_gicv3)", + "axconfig 0.1.0", "axerrno", "axhal", "kspin", @@ -535,7 +520,6 @@ dependencies = [ [[package]] name = "axns" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_irq_gicv3#00480405fc3e89f40d6d4263054687ba5918c873" dependencies = [ "crate_interface", "lazyinit", @@ -544,10 +528,9 @@ dependencies = [ [[package]] name = "axruntime" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_irq_gicv3#00480405fc3e89f40d6d4263054687ba5918c873" dependencies = [ "axalloc", - "axconfig 0.1.0 (git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_irq_gicv3)", + "axconfig 0.1.0", "axdriver", "axfs", "axhal", @@ -565,7 +548,6 @@ dependencies = [ [[package]] name = "axstd" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_irq_gicv3#00480405fc3e89f40d6d4263054687ba5918c873" dependencies = [ "arceos_api", "axerrno", @@ -577,7 +559,6 @@ dependencies = [ [[package]] name = "axsync" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_irq_gicv3#00480405fc3e89f40d6d4263054687ba5918c873" dependencies = [ "axtask", "kspin", @@ -586,9 +567,8 @@ dependencies = [ [[package]] name = "axtask" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_irq_gicv3#00480405fc3e89f40d6d4263054687ba5918c873" dependencies = [ - "axconfig 0.1.0 (git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_irq_gicv3)", + "axconfig 0.1.0", "axhal", "cfg-if", "cpumask", @@ -606,7 +586,6 @@ dependencies = [ [[package]] name = "axvcpu" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/axvcpu.git?branch=inject_interrupt#8a45916dd597ab7473e6693658f66d850f6e0f0e" dependencies = [ "axaddrspace", "axerrno", @@ -628,8 +607,10 @@ dependencies = [ "axvisor_api", "axvm", "bitflags 2.9.0", + "cfg-if", "cpumask", "crate_interface", + "fdt-parser", "kernel_guard", "kspin", "lazyinit", @@ -671,7 +652,6 @@ dependencies = [ [[package]] name = "axvm" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/axvm.git?branch=inject_interrupt_vgicv3#02b4e6d49ac7386caad8f8724532580c4c87fd1f" dependencies = [ "arm_vcpu", "axaddrspace", @@ -1960,7 +1940,3 @@ dependencies = [ "quote", "syn 2.0.100", ] - -[[patch.unused]] -name = "arm_vgic" -version = "0.0.0" diff --git a/src/vmm/vcpus.rs b/src/vmm/vcpus.rs index 4180a61a..2ed4ddf0 100644 --- a/src/vmm/vcpus.rs +++ b/src/vmm/vcpus.rs @@ -1,11 +1,14 @@ use alloc::{collections::BTreeMap, vec::Vec}; -use std::os::arceos::api; -use std::os::arceos::modules::{axhal, axtask}; - use axaddrspace::GuestPhysAddr; +use axstd::sync::atomic::{AtomicUsize, Ordering}; use axtask::{AxTaskRef, TaskExtRef, TaskInner, WaitQueue}; use axvcpu::{AxVCpuExitReason, VCpuState}; +use core::time::Duration; +use std::os::arceos::api; +use std::os::arceos::api::task::{AxCpuMask, ax_wait_queue_wake}; +use std::os::arceos::modules::axhal::time::busy_wait; +use std::os::arceos::modules::{axhal, axtask}; use crate::task::TaskExt; use crate::vmm::{VCpuRef, VMRef}; @@ -295,6 +298,11 @@ fn vcpu_run() { let vm_id = vm.id(); let vcpu_id = vcpu.id(); + // boot delay + let boot_delay_sec = (vm_id - 1) * 5; + info!("VM[{}] boot delay: {}s", vm_id, boot_delay_sec); + busy_wait(Duration::from_secs(boot_delay_sec as _)); + info!("VM[{}] VCpu[{}] waiting for running", vm.id(), vcpu.id()); wait_for(vm_id, || vm.running()); From 4a4d315f6bf248a1de673d0c8cd2a97191d31642 Mon Sep 17 00:00:00 2001 From: Gallium70 <52118815+Gallium70@users.noreply.github.com> Date: Fri, 13 Jun 2025 15:58:02 +0800 Subject: [PATCH 042/219] [feat/vgic] Parse GIC SPIs from DTB and collect them to setup vGIC --- configs/platforms/aarch64-rk3588j-hv.toml | 1 + src/vmm/config.rs | 65 +++++++++++++++++++++++ 2 files changed, 66 insertions(+) diff --git a/configs/platforms/aarch64-rk3588j-hv.toml b/configs/platforms/aarch64-rk3588j-hv.toml index 14e0602d..f2e847f2 100644 --- a/configs/platforms/aarch64-rk3588j-hv.toml +++ b/configs/platforms/aarch64-rk3588j-hv.toml @@ -34,6 +34,7 @@ kernel-aspace-size = "0x0000_ffff_ffff_f000" mmio-regions = [ [0xfeb50000, 0x1000], # uart8250 UART0 [0xfe600000, 0x10000], # gic-v3 gicd + [0xfe640000, 0x40000], # gic-v3 gits [0xfe680000, 0x100000], # gic-v3 gicr [0xa41000000, 0x400000], [0xa40c00000, 0x400000], diff --git a/src/vmm/config.rs b/src/vmm/config.rs index ec7a0f63..3ba3581b 100644 --- a/src/vmm/config.rs +++ b/src/vmm/config.rs @@ -92,6 +92,71 @@ pub fn parse_vm_dtb(vm_cfg: &mut AxVMConfig, dtb: &[u8]) { } } + // Skip the interrupt controller, as we will use vGIC + // TODO: filter with compatible property and parse its phandle from DT; maybe needs a second pass? + const GIC_PHANDLE: usize = 1; + if name.starts_with("interrupt-controller") { + info!("skipping node {} to use vGIC", name); + continue; + } + + // Collect all GIC_SPI interrupts and add them to vGIC + if let Some(interrupts) = node.interrupts() { + // TODO: skip non-GIC interrupt + if let Some(parent) = node.interrupt_parent() { + trace!("node: {}, intr parent: {}", name, parent.node.name()); + if let Some(phandle) = parent.node.phandle() { + if phandle.as_usize() != GIC_PHANDLE { + warn!( + "node: {}, intr parent: {}, phandle: 0x{:x} is not GIC!", + name, + parent.node.name(), + phandle.as_usize() + ); + } + } else { + warn!( + "node: {}, intr parent: {} no phandle!", + name, + parent.node.name(), + ); + } + } else { + warn!("node: {} no interrupt parent!", name); + } + + trace!("node: {} interrupts:", name); + + for interrupt in interrupts { + // + for (k, v) in interrupt.enumerate() { + match k { + 0 => { + if v == 0 { + trace!("node: {}, GIC_SPI", name); + } else { + warn!( + "node: {}, intr type: {}, not GIC_SPI, not supported!", + name, v + ); + break; + } + } + 1 => { + trace!("node: {}, interrupt id: 0x{:x}", name, v); + vm_cfg.add_pass_through_spi(v); + } + 2 => { + trace!("node: {}, interrupt mode: 0x{:x}", name, v); + } + _ => { + warn!("unknown interrupt property {}:0x{:x}", k, v) + } + } + } + } + } + if let Some(regs) = node.reg() { for reg in regs { if reg.address < 0x1000 { From ce993c0b0477beaa6e383b11f85e62e29a9718bf Mon Sep 17 00:00:00 2001 From: Gallium70 <52118815+Gallium70@users.noreply.github.com> Date: Fri, 13 Jun 2025 16:15:59 +0800 Subject: [PATCH 043/219] [feat/rk3588] Update VM config to boot two Linux VMs - Add 'clk_ignore_unused' to the first Linux's bootargs so that it will configure but won't disable clocks assigned to the second VM's devices. - Add 'fixed-clock' clock nodes in the second Linux's DTS so that devices which require clocks can be probed properly. Meanwhile, the second Linux cannot mess with these clocks since they are fixed. - Serial port and 1G ethernet are happy with fixed frequency clocks; however MMC controller needs a variable clock to probe a SD card which is hard to implement. So we just boot the second Linux with NFS rootfs. --- configs/vms/aio-rk3588-jd4-vm1.dts | 16 +- configs/vms/aio-rk3588-jd4-vm2.dts | 255 +++++++++++++++++- configs/vms/linux-rk3588-aarch64-smp-vm1.toml | 76 ++++++ configs/vms/linux-rk3588-aarch64-smp-vm2.toml | 8 +- 4 files changed, 331 insertions(+), 24 deletions(-) create mode 100644 configs/vms/linux-rk3588-aarch64-smp-vm1.toml diff --git a/configs/vms/aio-rk3588-jd4-vm1.dts b/configs/vms/aio-rk3588-jd4-vm1.dts index 560b772b..f14c3d4e 100644 --- a/configs/vms/aio-rk3588-jd4-vm1.dts +++ b/configs/vms/aio-rk3588-jd4-vm1.dts @@ -3553,13 +3553,6 @@ #msi-cells = <0x01>; }; - msi-controller@fe660000 { - msi-controller; - compatible = "arm,gic-v3-its"; - reg = <0x00 0xfe660000 0x00 0x20000>; - phandle = <0x1b6>; - #msi-cells = <0x01>; - }; }; pcie-essd { @@ -9433,8 +9426,8 @@ }; chosen { - linux,initrd-end = <0x00 0xaac72ae>; - bootargs = "storagemedia=emmc androidboot.storagemedia=emmc androidboot.mode=normal storagenode=/mmc@fe2e0000 androidboot.verifiedbootstate=orange ro rootwait console=ttyS1,115200n8 irqchip.gicv3_pseudo_nmi=0 root=PARTLABEL=rootfs rootfstype=ext4 overlayroot=device:dev=PARTLABEL=userdata,fstype=ext4,mkfs=1 coherent_pool=1m systemd.gpt_auto=0 cgroup_enable=memory swapaccount=1 net.ifnames=0 rcupdate.rcu_expedited=0 comm-05/28/2025 androidboot.fwver=ddr-v1.15-d5483af87d,spl-v1.13,bl31-v1.44,bl32-v1.15,uboot--boot"; + linux,initrd-end = <0x00 0xaac8000>; + bootargs = "storagemedia=emmc androidboot.storagemedia=emmc androidboot.mode=normal storagenode=/mmc@fe2e0000 androidboot.verifiedbootstate=orange ro rootwait console=ttyS1,115200n8 irqchip.gicv3_pseudo_nmi=0 root=PARTLABEL=rootfs rootfstype=ext4 overlayroot=device:dev=PARTLABEL=userdata,fstype=ext4,mkfs=1 coherent_pool=1m systemd.gpt_auto=0 cgroup_enable=memory swapaccount=1 net.ifnames=0 rcupdate.rcu_expedited=0 comm-05/28/2025 androidboot.fwver=ddr-v1.15-d5483af87d,spl-v1.13,bl31-v1.44,bl32-v1.15,uboot--boot clk_ignore_unused"; linux,initrd-start = <0x00 0xa200000>; phandle = <0x48d>; }; @@ -12620,12 +12613,11 @@ reset-names = "srst_csihost_p"; }; - // DTB memory region: { address: 0x9400000, size: 0xe6c00000 } 3.6G - // DTB memory region: { address: 0x2f0000000, size: 0x10000000 } 256M + // DTB memory region: { address: 0x0940_0000, size: 0xc6c0_0000 } ~3.3G memory { device_type = "memory"; - reg = <0x00 0x9400000 0x00 0xe6c00000 0x02 0xf0000000 0x00 0x10000000 >; + reg = <0x00 0x9400000 0x00 0xc6c00000>; }; jpege-core@fdba4000 { diff --git a/configs/vms/aio-rk3588-jd4-vm2.dts b/configs/vms/aio-rk3588-jd4-vm2.dts index fc9561be..35a1b9af 100644 --- a/configs/vms/aio-rk3588-jd4-vm2.dts +++ b/configs/vms/aio-rk3588-jd4-vm2.dts @@ -10,14 +10,19 @@ chosen { linux,initrd-start = <0x01 0x0a200000>; - linux,initrd-end = <0x01 0x0a320410>; - bootargs = "rw earlycon=uart8250,mmio32,0xfeb50000 console=ttyS2,115200n8 irqchip.gicv3_pseudo_nmi=0 initcall_debug"; + linux,initrd-end = <0x01 0xaac8000>; + // **Replace : with your own NFS server IP and rootfs export path!** + bootargs = "rw earlycon=uart8250,mmio32,0xfeb50000 console=ttyFIQ0 irqchip.gicv3_pseudo_nmi=0 root=/dev/nfs nfsroot=:"; phandle = <0x48d>; }; + // DTB memory region: { address: 0xe000_0000, size: 0x1000_0000 } 256M + // DTB memory region: { address: 0x1_0000_0000, size: 0xe000_0000 } 3.7G + + memory { device_type = "memory"; - reg = <0x01 0x00000000 0x00 0xe0000000 >; + reg = <0x00 0xe0000000 0x00 0x10000000 0x01 0x00000000 0x00 0xe0000000>; }; cpus { @@ -148,7 +153,7 @@ compatible = "arm,gic-v3"; ranges; #interrupt-cells = <0x03>; - reg = <0x00 0xfe600000 0x00 0x10000 0x00 0xfe680000 0x00 0x100000>; + reg = <0x00 0xfe600000 0x00 0x10000 0x00 0xfe6a0000 0x00 0x100000>; phandle = <0x01>; interrupt-controller; @@ -159,25 +164,198 @@ compatible = "arm,psci-1.0"; }; + // dummy clocks that are configured by VM1 + clocks { + #address-cells = <0x02>; + #size-cells = <0x02>; + compatible = "simple-bus"; + ranges; + + // serial + serial_baud_24m { + clock-output-names = "serial_baud_24m"; + compatible = "fixed-clock"; + clock-frequency = <24000000>; + #clock-cells = <0>; + phandle = <0xbb>; + }; + + serial_pclk_100m { + clock-output-names = "serial_pclk_100m"; + compatible = "fixed-clock"; + clock-frequency = <100000000>; + #clock-cells = <0>; + phandle = <0xac>; + }; + + // ethernet + gmac_125m { + clock-output-names = "gmac_125m"; + compatible = "fixed-clock"; + clock-frequency = <125000000>; + #clock-cells = <0>; + phandle = <0x144>; + }; + + gmac_50m { + clock-output-names = "gmac_50m"; + compatible = "fixed-clock"; + clock-frequency = <50000000>; + #clock-cells = <0>; + phandle = <0x145>; + }; + + gmac1_pclk_150m { + clock-output-names = "gmac1_pclk_150m"; + compatible = "fixed-clock"; + clock-frequency = <150000000>; + #clock-cells = <0>; + phandle = <0x168>; + }; + + gmac1_aclk_396m { + clock-output-names = "gmac1_aclk_396m"; + compatible = "fixed-clock"; + clock-frequency = <396000000>; + #clock-cells = <0>; + phandle = <0x16d>; + }; + + gmac1_ptp_ref_100m { + clock-output-names = "gmac1_ptp_ref_100m"; + compatible = "fixed-clock"; + clock-frequency = <100000000>; + #clock-cells = <0>; + phandle = <0x143>; + }; + }; + serial@feb50000 { reg-io-width = <0x04>; pinctrl-names = "default"; pinctrl-0 = <0x161>; interrupts = <0x00 0x14d 0x04>; // Avoid driver messing with CRU - clock-frequency = <24000000>; - // clock-names = "baudclk\0apb_pclk"; - // clocks = <0x02 0xbb 0x02 0xac>; + clock-names = "baudclk\0apb_pclk"; + clocks = <0xbb 0xac>; compatible = "rockchip,rk3588-uart\0snps,dw-apb-uart"; - status = "okay"; + status = "disabled"; reg = <0x00 0xfeb50000 0x00 0x100>; phandle = <0x2ca>; dmas = <0x7c 0x0a 0x7c 0x0b>; reg-shift = <0x02>; }; + fiq-debugger { + pinctrl-names = "default"; + rockchip,irq-mode-enable = <0x01>; + rockchip,baudrate = <0x1c200>; + pinctrl-0 = <0x1ce>; + interrupts = <0x00 0x1a7 0x08>; + rockchip,wake-irq = <0x00>; + compatible = "rockchip,fiq-debugger"; + status = "okay"; + phandle = <0x490>; + rockchip,serial-id = <0x02>; + }; + + syscon@fd5b0000 { + compatible = "rockchip,rk3588-php-grf\0syscon"; + reg = <0x00 0xfd5b0000 0x00 0x1000>; + phandle = <0x76>; + }; + + syscon@fd58c000 { + compatible = "rockchip,rk3588-sys-grf\0syscon\0simple-mfd"; + reg = <0x00 0xfd58c000 0x00 0x1000>; + phandle = <0xc8>; + }; + + + ethernet@fe1c0000 { + power-domains = <0x60 0x21>; + pinctrl-names = "default"; + phy-mode = "rgmii-rxid"; + snps,mixed-burst; + snps,mtl-rx-config = <0x10b>; + pinctrl-0 = <0x10e 0x10f 0x110 0x111 0x112>; + clock-names = "stmmaceth\0clk_mac_ref\0pclk_mac\0aclk_mac\0ptp_ref"; + snps,mtl-tx-config = <0x10c>; + local-mac-address = [a6 50 47 45 20 ee]; + interrupt-names = "macirq\0eth_wake_irq"; + interrupts = <0x00 0xea 0x04 0x00 0xe9 0x04>; + clocks = <0x144 0x145 0x168 0x16d 0x143>; + clock_in_out = "output"; + snps,tso; + compatible = "rockchip,rk3588-gmac\0snps,dwmac-4.20a"; + status = "okay"; + rockchip,grf = <0xc8>; + // reset-names = "stmmaceth"; + // resets = <0x02 0x20b>; + // snps,reset-active-low; + // snps,reset-gpio = <0x10d 0x08 0x01>; + // snps,reset-delays-us = <0x00 0x4e20 0x186a0>; + reg = <0x00 0xfe1c0000 0x00 0x10000>; + rockchip,php_grf = <0x76>; + phandle = <0x109>; + phy-handle = <0x113>; + tx_delay = <0x40>; + snps,axi-config = <0x10a>; + + mdio { + #address-cells = <0x01>; + #size-cells = <0x00>; + compatible = "snps,dwmac-mdio"; + phandle = <0x28f>; + + phy@1 { + compatible = "ethernet-phy-ieee802.3-c22"; + reg = <0x01>; + phandle = <0x113>; + }; + }; + + tx-queues-config { + phandle = <0x10c>; + snps,tx-queues-to-use = <0x01>; + + queue0 { + }; + }; + + stmmac-axi-config { + snps,wr_osr_lmt = <0x04>; + phandle = <0x10a>; + snps,blen = <0x00 0x00 0x00 0x00 0x10 0x08 0x04>; + snps,rd_osr_lmt = <0x08>; + }; + + rx-queues-config { + snps,rx-queues-to-use = <0x01>; + phandle = <0x10b>; + + queue0 { + }; + }; + }; + + reserved-memory { + #address-cells = <0x02>; + #size-cells = <0x02>; + ranges; + + cma { + linux,cma-default; + compatible = "shared-dma-pool"; + size = <0x00 0x800000>; + reusable; + }; + }; + aliases { serial2 = "/serial@feb50000"; + ethernet1 = "/ethernet@fe1c0000"; + mmc1 = "/mmc@fe2c0000"; }; __symbols__ { @@ -189,6 +367,14 @@ scmi = "/firmware/scmi"; scmi_reset = "/firmware/scmi/protocol@16"; scmi_clk = "/firmware/scmi/protocol@14"; + + gmac1 = "/ethernet@fe1c0000"; + mdio1 = "/ethernet@fe1c0000/mdio"; + rgmii_phy1 = "/ethernet@fe1c0000/mdio/phy@1"; + gmac1_mtl_rx_setup = "/ethernet@fe1c0000/rx-queues-config"; + gmac1_mtl_tx_setup = "/ethernet@fe1c0000/tx-queues-config"; + gmac1_stmmac_axi_setup = "/ethernet@fe1c0000/stmmac-axi-config"; + }; syscon@fd5f0000 { @@ -233,6 +419,59 @@ }; }; + gmac1 { + + gmac1-rgmii-clk { + rockchip,pins = <0x03 0x05 0x01 0x198 0x03 0x04 0x01 0x198>; + phandle = <0x111>; + }; + + gmac1-rx-bus2 { + rockchip,pins = <0x03 0x07 0x01 0x198 0x03 0x08 0x01 0x198 0x03 0x09 0x01 0x198>; + phandle = <0x110>; + }; + + gmac1-txer { + rockchip,pins = <0x03 0x0a 0x01 0x198>; + phandle = <0x332>; + }; + + gmac1-clkinout { + rockchip,pins = <0x03 0x0e 0x01 0x198>; + phandle = <0x32e>; + }; + + gmac1-ptp-ref-clk { + rockchip,pins = <0x03 0x0f 0x01 0x198>; + phandle = <0x331>; + }; + + gmac1-ppsclk { + rockchip,pins = <0x03 0x11 0x01 0x198>; + phandle = <0x32f>; + }; + + gmac1-ppstrig { + rockchip,pins = <0x03 0x10 0x01 0x198>; + phandle = <0x330>; + }; + + gmac1-rgmii-bus { + rockchip,pins = <0x03 0x02 0x01 0x198 0x03 0x03 0x01 0x198 0x03 0x00 0x01 0x19a 0x03 0x01 0x01 0x19a>; + phandle = <0x112>; + }; + + gmac1-tx-bus2 { + rockchip,pins = <0x03 0x0b 0x01 0x19a 0x03 0x0c 0x01 0x19a 0x03 0x0d 0x01 0x198>; + phandle = <0x10f>; + }; + + gmac1-miim { + rockchip,pins = <0x03 0x12 0x01 0x198 0x03 0x13 0x01 0x198>; + phandle = <0x10e>; + }; + }; + // output // pull up diff --git a/configs/vms/linux-rk3588-aarch64-smp-vm1.toml b/configs/vms/linux-rk3588-aarch64-smp-vm1.toml new file mode 100644 index 00000000..3cb2e729 --- /dev/null +++ b/configs/vms/linux-rk3588-aarch64-smp-vm1.toml @@ -0,0 +1,76 @@ +# Vm base info configs +# +[base] +# Guest vm id. +id = 1 +# Guest vm name. +name = "linux-full" +# Virtualization type. +vm_type = 1 +# The number of virtual CPUs. +cpu_num = 1 +# Guest vm physical cpu sets. +# phys_cpu_sets = [1, 2, 4, 8, 16, 32, 64, 128] +phys_cpu_ids = [0x00] +phys_cpu_sets = [1] + +# +# Vm kernel configs +# +[kernel] +# The entry point of the kernel image. +entry_point = 0x1020_0000 +# The load address of the kernel image. +kernel_load_addr = 0x1020_0000 +# The load address of the device tree blob (DTB). +dtb_load_addr = 0x1000_0000 +# The load address of the ramdisk image. +ramdisk_load_addr = 0x0a20_0000 +# The location of image: "memory" | "fs". +# load from memory +image_location = "memory" +# The file path of the kernel image. +kernel_path = "Image.bin" +# The file path of the device tree blob (DTB). +dtb_path = "aio-rk3588-jd4-vm1.dtb" +# The file path of the ramdisk image. +ramdisk_path = "ramdisk.img" +# ramdisk_path = "initramfs-busybox-arm64-vm1.img" + + +# load from file system. +# image_location = "fs". +## The file path of the kernel image. +# kernel_path = "linux-arceos-aarch64.bin" +## The file path of the device tree blob (DTB). +# dtb_path = "linux-rk3588.dtb" + +## The file path of the ramdisk image. +# ramdisk_path = "" +## The load address of the ramdisk image. +# ramdisk_load_addr = 0 +## The path of the disk image. +# disk_path = "disk.img" + +# Memory regions with format (`base_paddr`, `size`, `flags`, `map_type`). +# For `map_type`, 0 means `MAP_ALLOC`, 1 means `MAP_IDENTICAL`. +memory_regions = [ + # [0x0, 0x10_f000, 0x7, 1], # passthrough uncahed MAP_IDENTICAL + # [0x940_0000, 0xe6c00000, 0x7, 1], # ram 3G MAP_IDENTICAL + # [0x4000_0000, 0x4000_0000, 0x7, 1], # ram 1G MAP_IDENTICAL +] + +# +# Device specifications +# +[devices] +# Emu_devices. +# Name Base-Ipa Ipa_len Alloc-Irq Emu-Type EmuConfig. +emu_devices = [] + +# Pass-through devices. +# Name Base-Ipa Base-Pa Length Alloc-Irq. +passthrough_devices = [ + # ["uart@feb40000", 0xfeb4_0000, 0xfeb4_0000, 0x1000, 0x1], + # ["uart@feb50000", 0xfeb5_0000, 0xfeb4_0000, 0x1000, 0x1], +] diff --git a/configs/vms/linux-rk3588-aarch64-smp-vm2.toml b/configs/vms/linux-rk3588-aarch64-smp-vm2.toml index f66b2d04..a5270341 100644 --- a/configs/vms/linux-rk3588-aarch64-smp-vm2.toml +++ b/configs/vms/linux-rk3588-aarch64-smp-vm2.toml @@ -8,11 +8,11 @@ name = "linux-minimal" # Virtualization type. vm_type = 1 # The number of virtual CPUs. -cpu_num = 4 +cpu_num = 1 # Guest vm physical cpu sets. # phys_cpu_sets = [1, 2, 4, 8, 16, 32, 64, 128] -phys_cpu_ids = [0x00, 0x100, 0x200, 0x300] -phys_cpu_sets = [1, 2, 4, 8] +phys_cpu_ids = [0x100] +phys_cpu_sets = [2] # # Vm kernel configs @@ -34,7 +34,7 @@ kernel_path = "Image.bin" # The file path of the device tree blob (DTB). dtb_path = "aio-rk3588-jd4-vm2.dtb" # The file path of the ramdisk image. -ramdisk_path = "initramfs-busybox-arm64.img" +ramdisk_path = "ramdisk.img" # load from file system. From 040757692aa86015cc08e8b0d94066d20e95cbd3 Mon Sep 17 00:00:00 2001 From: aarkegz Date: Fri, 13 Jun 2025 18:58:08 +0800 Subject: [PATCH 044/219] nasty sendipi handling --- Cargo.lock | 7 +++++-- Cargo.toml | 11 +---------- scripts.txt | 22 ++++++++++++++++++++++ src/vmm/vcpus.rs | 34 ++++++++++++++++++++++++++++++++++ tool/conn_2_serial.sh | 8 ++++---- 5 files changed, 66 insertions(+), 16 deletions(-) create mode 100644 scripts.txt diff --git a/Cargo.lock b/Cargo.lock index d973c52e..4613abfe 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -167,7 +167,7 @@ dependencies = [ [[package]] name = "arm_vcpu" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arm_vcpu.git?branch=inject_interrupt_vgicv3_ivc#f8e65147cf8801f590678388c05b005044fe3522" +source = "git+https://github.com/arceos-hypervisor/arm_vcpu.git?branch=inject_interrupt_vgicv3_ivc#ad1d617150275e40c13804ab3e4a9d123e814104" dependencies = [ "aarch64-cpu 9.4.0", "aarch64_sysreg", @@ -221,6 +221,7 @@ checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" [[package]] name = "axaddrspace" version = "0.1.0" +source = "git+https://github.com/arceos-hypervisor/axaddrspace.git#2ed4d076e01f966710bd6480131abd3a9ffb8930" dependencies = [ "axerrno", "bit_field", @@ -486,6 +487,7 @@ dependencies = [ [[package]] name = "axhvc" version = "0.1.0" +source = "git+https://github.com/arceos-hypervisor/axhvc.git?branch=ivc#29ca8af1e2db294b9f266ec43a3989c36f2e23b4" dependencies = [ "axerrno", "bit_field", @@ -626,7 +628,7 @@ dependencies = [ [[package]] name = "axvcpu" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/axvcpu.git?branch=inject_interrupt_vgicv3_ivc#aed8ed74c9be9bd0c0a71a8a38bf5a144540f87f" +source = "git+https://github.com/arceos-hypervisor/axvcpu.git?branch=inject_interrupt_vgicv3_ivc#17cccf90a74a41570d564a42de29d04dfb1c0ab1" dependencies = [ "axaddrspace", "axerrno", @@ -694,6 +696,7 @@ dependencies = [ [[package]] name = "axvm" version = "0.1.0" +source = "git+https://github.com/arceos-hypervisor/axvm.git?branch=inject_interrupt_vgicv3_ivc#56bca9658bbada112bec531a4ea6b55a7556cd69" dependencies = [ "arm_vcpu", "axaddrspace", diff --git a/Cargo.toml b/Cargo.toml index c4d9f00d..ec7fd473 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -41,7 +41,7 @@ axstd = { git = "https://github.com/arceos-hypervisor/arceos.git", branch = "vmm axvm = { git = "https://github.com/arceos-hypervisor/axvm.git", branch = "inject_interrupt_vgicv3_ivc" } axvcpu = { git = "https://github.com/arceos-hypervisor/axvcpu.git", branch = "inject_interrupt_vgicv3_ivc" } axaddrspace = { git = "https://github.com/arceos-hypervisor/axaddrspace.git" } -axhvc = { git = "https://github.com/arceos-hypervisor/axhvc.git" } +axhvc = { git = "https://github.com/arceos-hypervisor/axhvc.git", branch = "ivc" } # System independent crates provided by ArceOS, these crates could be imported by remote url. crate_interface = "0.1" @@ -65,12 +65,3 @@ axconfig = { git = "https://github.com/arceos-hypervisor/arceos.git", branch = " prettyplease = "0.2" quote = "1.0" syn = "2.0" - -[patch."https://github.com/arceos-hypervisor/axvm.git"] -axvm = { path = "../axvm" } - -[patch."https://github.com/arceos-hypervisor/axaddrspace.git"] -axaddrspace = { path = "../axaddrspace" } - -[patch."https://github.com/arceos-hypervisor/axhvc.git"] -axhvc = { path = "../axhvc" } diff --git a/scripts.txt b/scripts.txt new file mode 100644 index 00000000..bb3369e9 --- /dev/null +++ b/scripts.txt @@ -0,0 +1,22 @@ + +# 原版双VM +make ARCH=aarch64 LOG=debug VM_CONFIGS=configs/vms/linux-qemu-aarch64.toml:configs/vms/arceos-aarch64.toml GICV3=y NET=y SMP=2 run DISK_IMG=/home/smx/source/lectures/arceos-repos/axvisor/ubuntu-22.04-rootfs_ext4.img SECOND_SERIAL=y + +# 原版单VM +make ARCH=aarch64 LOG=debug VM_CONFIGS=configs/vms/linux-qemu-aarch64.toml GICV3=y NET=y SMP=2 run DISK_IMG=/home/smx/source/lectures/arceos-repos/axvisor/ubuntu-22.04-rootfs_ext4.img SECOND_SERIAL=y + +# 单VM:去掉NET,去掉第二个串口 +make ARCH=aarch64 LOG=debug VM_CONFIGS=configs/vms/linux-qemu-aarch64.toml GICV3=y SMP=2 DISK_IMG=/home/smx/source/lectures/arceos-repos/axvisor/ubuntu-22.04-rootfs_ext4-a.img run + +# 单VM:使用第二个串口 +make ARCH=aarch64 LOG=debug VM_CONFIGS=configs/vms/linux-qemu-aarch64-gicv3-a.toml GICV3=y SMP=1 SECOND_SERIAL=y DISK_IMG=/home/smx/source/lectures/arceos-repos/axvisor/ubuntu-22.04-rootfs_ext4-a.img run QEMU=/home/smx/source/3rd/qemu-9.2.4/build/qemu-system-aarch64 + +# 单VM:使用第二个串口,SMP2 +make ARCH=aarch64 LOG=debug VM_CONFIGS=configs/vms/linux-qemu-aarch64-gicv3-a.toml GICV3=y SMP=2 SECOND_SERIAL=y DISK_IMG=/home/smx/source/lectures/arceos-repos/axvisor/ubuntu-22.04-rootfs_ext4-a.img run QEMU=/home/smx/source/3rd/qemu-9.2.4/build/qemu-system-aarch64 + +# 双VM:三串口配置 +make ARCH=aarch64 LOG=debug VM_CONFIGS=configs/vms/linux-qemu-aarch64-gicv3-a.toml:configs/vms/linux-qemu-aarch64-gicv3-b.toml GICV3=y SMP=2 SECOND_SERIAL=y THIRD_SERIAL=y DISK_IMG=/home/smx/source/lectures/arceos-repos/axvisor/ubuntu-22.04-rootfs_ext4-a.img run QEMU=/home/smx/source/3rd/qemu-9.2.4/build/qemu-system-aarch64 + +# GICv3 EL1测试 +make ACCEL=n ARCH=aarch64 LOG=info VM_CONFIGS=configs/vms/arceos-aarch64-gicv3-tester.toml GICV3=y LOG=debug run + diff --git a/src/vmm/vcpus.rs b/src/vmm/vcpus.rs index 9d62525f..467e9164 100644 --- a/src/vmm/vcpus.rs +++ b/src/vmm/vcpus.rs @@ -387,6 +387,40 @@ fn vcpu_run() { warn!("VM[{}] run VCpu[{}] SystemDown", vm_id, vcpu_id); vm.shutdown().expect("VM shutdown failed"); } + AxVCpuExitReason::SendIPI { target_cpu, target_cpu_aux, send_to_all, send_to_self, vector } => { + if send_to_all || send_to_self { + unimplemented!("SendIPI with send_to_all or send_to_self is not implemented yet"); + } + + #[cfg(target_arch = "aarch64")] + { + let aff3 = (target_cpu >> 24) & 0xff; + let aff2 = (target_cpu >> 16) & 0xff; + let aff1 = (target_cpu >> 8) & 0xff; + let irm = (send_to_all as u64); + + let icc_sgi1r_value = + (vector as u64) << 24 | + aff3 << 48 | + aff2 << 32 | + aff1 << 16 | + irm << 40 | + target_cpu_aux; + + debug!( + "VM[{}] run VCpu[{}] SendIPI, target_cpu={:#x}, target_cpu_aux={:#x}, vector={}, icc_sgi1r_value={:#x}", + vm_id, vcpu_id, target_cpu, target_cpu_aux, vector, icc_sgi1r_value + ); + + unsafe { + core::arch::asm!( + "msr icc_sgi1r_el1, {0}", + in(reg) icc_sgi1r_value, + options(nostack, nomem, preserves_flags) + ); + } + } + } _ => { warn!("Unhandled VM-Exit"); } diff --git a/tool/conn_2_serial.sh b/tool/conn_2_serial.sh index a925c9d3..3953cf1f 100755 --- a/tool/conn_2_serial.sh +++ b/tool/conn_2_serial.sh @@ -15,12 +15,12 @@ SECOND_PORT=${2:-4322} if ! tmux has-session -t "mysession"; then tmux new-session -d -s mysession tmux split-window -h +else + # Send C-c to both panes to clear any previous commands + tmux send-keys -t mysession:0.0 C-c + tmux send-keys -t mysession:0.1 C-c fi -# Send C-c to both panes to clear any previous commands -tmux send-keys -t mysession:0.0 C-c -tmux send-keys -t mysession:0.1 C-c - # Send telnet commands to both panes tmux send-keys -t mysession:0.0 "telnet localhost ${FIRST_PORT}" C-m tmux send-keys -t mysession:0.1 "sleep 2; telnet localhost ${SECOND_PORT}" C-m From 94059c0bb8330d80a664030517db856e20704db3 Mon Sep 17 00:00:00 2001 From: hky1999 <976929993@qq.com> Date: Thu, 12 Jun 2025 18:42:26 +0800 Subject: [PATCH 045/219] [feat] make IVCChannel as a emulated device type --- Boot-on-qemu.md | 2 + Cargo.lock | 7 +- Cargo.toml | 4 + configs/platforms/aarch64-qemu-virt-hv.toml | 1 + configs/vms/arceos-aarch64.toml | 4 +- configs/vms/linux-qemu-aarch64.toml | 4 +- src/vmm/hvc.rs | 48 ++++++------ src/vmm/ivc.rs | 82 ++++++++++++++++----- src/vmm/vcpus.rs | 7 +- 9 files changed, 109 insertions(+), 50 deletions(-) diff --git a/Boot-on-qemu.md b/Boot-on-qemu.md index d5b42545..2a9ff51a 100644 --- a/Boot-on-qemu.md +++ b/Boot-on-qemu.md @@ -9,6 +9,8 @@ cd crates/axvcpu && git checkout ivc cd crates/arm_vcpu && git checkout ivc_and_4lpt cd crates/axaddrspace && git checkout 4_level_paging cd crates/axhvc && git checkout ivc +cd crates/axdevice && git checkout ivc +cd crates/axvmconfig && git checkout ivc ``` diff --git a/Cargo.lock b/Cargo.lock index 59637ce4..4b25c40b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -262,6 +262,8 @@ dependencies = [ "cfg-if", "log", "memory_addr", + "range-alloc", + "spin", ] [[package]] @@ -610,7 +612,6 @@ dependencies = [ [[package]] name = "axvmconfig" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/axvmconfig.git#19e73fc71c48c0af49f6fda960c144b297e41435" dependencies = [ "axerrno", "log", @@ -1169,6 +1170,10 @@ dependencies = [ "proc-macro2", ] +[[package]] +name = "range-alloc" +version = "0.1.4" + [[package]] name = "raw-cpuid" version = "10.7.0" diff --git a/Cargo.toml b/Cargo.toml index faa50ae8..0bac1187 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -76,6 +76,10 @@ path = "crates/arm_vgic" path = "crates/axdevice_crates/axdevice_base" [patch."https://github.com/arceos-hypervisor/axhvc.git".axhvc] path = "crates/axhvc" +[patch."https://github.com/arceos-hypervisor/axvmconfig.git".axvmconfig] +path = "crates/axvmconfig" +[patch."https://github.com/arceos-hypervisor/range-alloc.git".range-alloc] +path = "crates/range-alloc" [patch.crates-io] page_table_multiarch = {path = "crates/page_table_multiarch/page_table_multiarch"} diff --git a/configs/platforms/aarch64-qemu-virt-hv.toml b/configs/platforms/aarch64-qemu-virt-hv.toml index 9e8aa6d8..24e9151b 100644 --- a/configs/platforms/aarch64-qemu-virt-hv.toml +++ b/configs/platforms/aarch64-qemu-virt-hv.toml @@ -91,6 +91,7 @@ pci-ranges = [ ] # [(uint, uint)] # UART Address uart-paddr = 0x0904_0000 # uint +# uart-paddr = 0x0900_0000 # uint # UART IRQ number uart-irq = 1 # uint diff --git a/configs/vms/arceos-aarch64.toml b/configs/vms/arceos-aarch64.toml index bdcf16b9..663c700b 100644 --- a/configs/vms/arceos-aarch64.toml +++ b/configs/vms/arceos-aarch64.toml @@ -43,7 +43,9 @@ memory_regions = [ [devices] # Emu_devices. # Name Base-Ipa Ipa_len Alloc-Irq Emu-Type EmuConfig. -emu_devices = [] +emu_devices = [ + ["ivc-channel", 0x3000_0000, 0x1000_0000, 0x0, 0x1, []], +] # Pass-through devices. # Name Base-Ipa Base-Pa Length Alloc-Irq. diff --git a/configs/vms/linux-qemu-aarch64.toml b/configs/vms/linux-qemu-aarch64.toml index dbcb8121..218966d3 100644 --- a/configs/vms/linux-qemu-aarch64.toml +++ b/configs/vms/linux-qemu-aarch64.toml @@ -69,4 +69,6 @@ passthrough_devices = [ # Emu_devices. # Name Base-Ipa Ipa_len Alloc-Irq Emu-Type EmuConfig. -emu_devices = [] \ No newline at end of file +emu_devices = [ + ["ivc-channel", 0xd000_0000, 0x1000_0000, 0x0, 0x1, []], +] \ No newline at end of file diff --git a/src/vmm/hvc.rs b/src/vmm/hvc.rs index 770456b5..5e7ce754 100644 --- a/src/vmm/hvc.rs +++ b/src/vmm/hvc.rs @@ -30,18 +30,21 @@ impl HyperCall { pub fn execute(&self) -> HyperCallResult { match self.code { HyperCallCode::HIVCPublishChannel => { - // This is just a placeholder for the shared memory base address, - // it should be allocated dynamically. - const SHM_BASE_GPA_RAW: usize = 0xd000_0000; - let shm_base_gpa = GuestPhysAddr::from_usize(SHM_BASE_GPA_RAW); - let key = self.args[0] as usize; let shm_base_gpa_ptr = GuestPhysAddr::from_usize(self.args[1] as usize); let shm_size_ptr = GuestPhysAddr::from_usize(self.args[2] as usize); + info!( + "VM[{}] HyperCall {:?} key {:#x}", + self.vm.id(), + self.code, + key + ); + // User will pass the size of the shared memory region, + // we will allocate the shared memory region based on this size. let shm_region_size = self.vm.read_from_guest_of::(shm_size_ptr)?; + let (shm_base_gpa, shm_region_size) = self.vm.alloc_ivc_channel(shm_region_size)?; - info!("VM[{}] HyperCall {:?}", self.vm.id(), self.code); let ivc_channel = IVCChannel::alloc(self.vm.id(), key, shm_region_size, shm_base_gpa)?; @@ -71,28 +74,12 @@ impl HyperCall { self.code, key ); - let channel = ivc::remove_channel(self.vm.id(), key)?; - - self.vm - .unmap_region(channel.base_gpa_in_publisher(), channel.size())?; - - for (subscriber_id, subscriber_base_gpa) in channel.subscribers() { - warn!( - "TODO, you should unmap subscriber VM[{}] base GPA: {:?} size {:#x}", - subscriber_id, - subscriber_base_gpa, - channel.size() - ); - } + let (base_gpa, size) = ivc::unpublish_channel(self.vm.id(), key)?.unwrap(); + self.vm.unmap_region(base_gpa, size)?; Ok(0) } HyperCallCode::HIVCSubscribChannel => { - // This is just a placeholder for the shared memory base address, - // it should be allocated dynamically. - const SHM_BASE_GPA_RAW: usize = 0xe000_0000; - let shm_base_gpa = GuestPhysAddr::from_usize(SHM_BASE_GPA_RAW); - let publisher_vm_id = self.args[0] as usize; let key = self.args[1] as usize; let shm_base_gpa_ptr = GuestPhysAddr::from_usize(self.args[2] as usize); @@ -104,6 +91,10 @@ impl HyperCall { self.code, publisher_vm_id ); + + let shm_size = ivc::get_channel_size(publisher_vm_id, key)?; + let (shm_base_gpa, _) = self.vm.alloc_ivc_channel(shm_size)?; + let (base_hpa, actual_size) = ivc::subscribe_to_channel_of_publisher( publisher_vm_id, key, @@ -111,8 +102,13 @@ impl HyperCall { shm_base_gpa, )?; - self.vm - .map_region(shm_base_gpa, base_hpa, actual_size, MappingFlags::READ)?; + // TODO: seperate the mapping flags of metadata and data. + self.vm.map_region( + shm_base_gpa, + base_hpa, + actual_size, + MappingFlags::READ | MappingFlags::WRITE, + )?; self.vm .write_to_guest_of(shm_base_gpa_ptr, &shm_base_gpa.as_usize())?; diff --git a/src/vmm/ivc.rs b/src/vmm/ivc.rs index 7d16d387..873c503e 100644 --- a/src/vmm/ivc.rs +++ b/src/vmm/ivc.rs @@ -32,22 +32,57 @@ pub fn insert_channel( } } -pub fn remove_channel( +/// Try to remove a channel according to the publisher VM ID and key. +/// If the channel still has subscribers, it will just mark it as unpublished +/// (by setting its base GPA to None). +/// If the channel is successfully unpublished, it will return the base GPA and size of the channel. +/// If the channel does not exist, it will return an error. +pub fn unpublish_channel( publisher_vm_id: usize, key: usize, -) -> AxResult> { - IVC_CHANNELS - .lock() - .remove(&(publisher_vm_id, key)) - .ok_or_else(|| { +) -> AxResult> { + let mut channels = IVC_CHANNELS.lock(); + if let Some(mut channel) = channels.remove(&(publisher_vm_id, key)) { + let base_gpa = channel.base_gpa_in_publisher().ok_or_else(|| { axerrno::ax_err_type!( NotFound, format!( - "IVC channel for publisher VM {} with key {} not found", + "IVC channel for publisher VM {} with key {} has no base GPA, it may have been marked as unpublished", publisher_vm_id, key ) ) - }) + })?; + let size = channel.size(); + if !channel.subscribers().is_empty() { + channel.base_gpa = None; // Mark the channel as removed. + // If there are still subscribers, just return None. + channels.insert((publisher_vm_id, key), channel); + } + Ok(Some((base_gpa, size))) + } else { + Err(axerrno::ax_err_type!( + NotFound, + format!( + "IVC channel for publisher VM {} with key {} not found", + publisher_vm_id, key + ) + )) + } +} + +pub fn get_channel_size(publisher_vm_id: usize, key: usize) -> AxResult { + let channels = IVC_CHANNELS.lock(); + if let Some(channel) = channels.get(&(publisher_vm_id, key)) { + Ok(channel.size()) + } else { + Err(axerrno::ax_err_type!( + NotFound, + format!( + "IVC channel for publisher VM {} with key {} not found", + publisher_vm_id, key + ) + )) + } } /// Subcribe to a channel of a publisher VM with the given key, @@ -75,14 +110,15 @@ pub fn subscribe_to_channel_of_publisher<'a>( } /// Unsubscribe from a channel of a publisher VM with the given key, -/// return the shared region base address and size. +/// if the channel has been unpublished (i.e., the base GPA is None) and has no subscribers, +/// it will remove the channel from the global map. pub fn unsubscribe_from_channel_of_publisher( publisher_vm_id: usize, key: usize, subscriber_vm_id: usize, ) -> AxResult<(GuestPhysAddr, usize)> { let mut channels = IVC_CHANNELS.lock(); - if let Some(channel) = channels.get_mut(&(publisher_vm_id, key)) { + let (base_gpa, size) = if let Some(channel) = channels.get_mut(&(publisher_vm_id, key)) { // Remove the subscriber VM ID from the channel. if let Some(subscriber_gpa) = channel.remove_subscriber(subscriber_vm_id) { Ok((subscriber_gpa, channel.size())) @@ -90,7 +126,7 @@ pub fn unsubscribe_from_channel_of_publisher( Err(axerrno::ax_err_type!( NotFound, format!( - "VM[{}] tries to subcriber non-existed channel publisher VM[{}] Key {:#x}", + "VM[{}] tries to unsubscribe non-existed channel publisher VM[{}] Key {:#x}", subscriber_vm_id, publisher_vm_id, key ) )) @@ -100,7 +136,17 @@ pub fn unsubscribe_from_channel_of_publisher( NotFound, format!("IVC channel for publisher VM {} not found", publisher_vm_id) )) + }?; + + // If the channel has no subscribers and has been unpublished (base GPA is None), + // remove it from the global map. + if channels.get(&(publisher_vm_id, key)).map_or(false, |c| { + c.subscribers().is_empty() && c.base_gpa.is_none() + }) { + channels.remove(&(publisher_vm_id, key)); } + + Ok((base_gpa, size)) } pub struct IVCChannel { @@ -113,7 +159,8 @@ pub struct IVCChannel { shared_region_base: HostPhysAddr, shared_region_size: usize, /// The base address of the shared memory region in guest physical address of the publisher VM. - base_gpa: GuestPhysAddr, + /// `None` if the channel has been unpublished (but still has subscribers). + base_gpa: Option, _phatom: core::marker::PhantomData, } @@ -121,7 +168,6 @@ pub struct IVCChannel { pub struct IVCChannelHeader { pub publisher_id: u64, pub key: u64, - pub content_size: u64, } impl IVCChannel { @@ -155,11 +201,12 @@ impl core::fmt::Debug for IVCChannel { fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { write!( f, - "IVCChannel(publisher[{}], subscribers {:?}, base: {:?}, size: {:#x})", + "IVCChannel(publisher[{}], subscribers {:?}, base: {:?}, size: {:#x}, gpa: {:?})", self.publisher_vm_id, self.subscriber_vms, self.shared_region_base, - self.shared_region_size + self.shared_region_size, + self.base_gpa ) } } @@ -194,13 +241,12 @@ impl IVCChannel { subscriber_vms: BTreeMap::new(), shared_region_base, shared_region_size, - base_gpa, + base_gpa: Some(base_gpa), _phatom: core::marker::PhantomData, }; channel.header_mut().publisher_id = publisher_vm_id as u64; channel.header_mut().key = key as u64; - channel.header_mut().content_size = 0; debug!("Allocated IVCChannel: {:?}", channel); @@ -211,7 +257,7 @@ impl IVCChannel { self.shared_region_base } - pub fn base_gpa_in_publisher(&self) -> GuestPhysAddr { + pub fn base_gpa_in_publisher(&self) -> Option { self.base_gpa } diff --git a/src/vmm/vcpus.rs b/src/vmm/vcpus.rs index bb21ac5d..a0ce8f51 100644 --- a/src/vmm/vcpus.rs +++ b/src/vmm/vcpus.rs @@ -3,7 +3,7 @@ use alloc::{collections::BTreeMap, vec::Vec}; use core::sync::atomic::{AtomicUsize, Ordering}; use std::os::arceos::{ api::task::{AxCpuMask, ax_wait_queue_wake}, - modules::axtask, + modules::{axhal::time::busy_wait, axtask}, }; use axaddrspace::GuestPhysAddr; @@ -373,8 +373,9 @@ fn vcpu_run() { } }, Err(err) => { - warn!("VM[{}] run VCpu[{}] get error {:?}", vm_id, vcpu_id, err); - wait(vm_id) + error!("VM[{}] run VCpu[{}] get error {:?}", vm_id, vcpu_id, err); + // wait(vm_id) + vm.shutdown().expect("VM shutdown failed"); } } From f52e792e38ce1952057a88f485bd3d5d880aae9b Mon Sep 17 00:00:00 2001 From: Gallium70 <52118815+Gallium70@users.noreply.github.com> Date: Fri, 13 Jun 2025 23:21:16 +0800 Subject: [PATCH 046/219] [doc/rk3588] Update instructions on how to boot two Linux VMs on rk3588 --- Boot-on-rk3588.md | 42 +++++++++++++++++++++++++++++++++++++----- 1 file changed, 37 insertions(+), 5 deletions(-) diff --git a/Boot-on-rk3588.md b/Boot-on-rk3588.md index cd6b975a..3db41c2d 100644 --- a/Boot-on-rk3588.md +++ b/Boot-on-rk3588.md @@ -1,4 +1,4 @@ -# Boot A Linux VM on the Firefly AIO-3588JD4 Board +# Boot Two Linux VMs on the Firefly AIO-3588JD4 Board ## Setup TFTP Server @@ -19,10 +19,35 @@ cat testfile.txt You should see `TFTP Server Test` on your screen. +## Setup an NFS Server for the rootfs of VM2 + +```bash +sudo apt install nfs-kernel-server +sudo mkdir -p /srv/nfs/firefly-rootfs +# Download rootfs image from firefly wiki, assume rootfs.img +# expand image and partition +sudo dd if=/dev/zero of=rootfs.img bs=1M count=0 seek=16384 +# ... will show which loop device the image is mounted on, assume loopX +sudo losetup -f --show rootfs.img +sudo e2fsck -f /dev/loopX && sudo resize2fs /dev/loopX +sudo losetup -D /dev/loopX +# now mount the image file to rootfs path +sudo mount -t loop rootfs.img /srv/nfs/firefly-rootfs +# Add to NFS exports +sudo cat <> /etc/exports +/srv/nfs 192.168.XXX.0/24(rw,async,no_subtree_check,fsid=0) +/srv/nfs/firefly-rootfs 192.168.XXX.0/24(rw,async,no_subtree_check,no_root_squash) +EOF +sudo exportfs -ar +``` + ## Compile device tree +Before compiling the DTS, edit the bootargs in `aio-rk3588-jd4-vm2.dts` and replace `:` with your own NFS server IP and rootfs export path setup in the previous step. + ```bash -dtc -o configs/vms/aio-rk3588-jd4.dtb -O dtb -I dts configs/vms/aio-rk3588-jd4.dts +dtc -o configs/vms/aio-rk3588-jd4-vm1.dtb -O dtb -I dts configs/vms/aio-rk3588-jd4-vm1.dts +dtc -o configs/vms/aio-rk3588-jd4-vm2.dtb -O dtb -I dts configs/vms/aio-rk3588-jd4-vm2.dts ``` ## Prepare Linux kernel bianry @@ -48,8 +73,8 @@ cd crates/arceos && git checkout rk3588_jd4 * compile ```bash -make ARCH=aarch64 PLATFORM=configs/platforms/aarch64-rk3588j-hv.toml defconfig -make ARCH=aarch64 PLATFORM=configs/platforms/aarch64-rk3588j-hv.toml VM_CONFIGS=configs/vms/linux-rk3588-aarch64-smp.toml LOG=debug GICV3=y upload +make ARCH=aarch64 PLATFORM=configs/platforms/aarch64-rk3588j-hv.toml SMP=2 defconfig +make ARCH=aarch64 PLATFORM=configs/platforms/aarch64-rk3588j-hv.toml VM_CONFIGS=configs/vms/linux-rk3588-aarch64-smp-vm1.toml:configs/vms/linux-rk3588-aarch64-smp-vm2.toml LOG=debug GICV3=y upload ``` * copy to tftp dir (make xxx upload will copy the image to `/srv/tftp/axvisor` automatically) @@ -70,4 +95,11 @@ setenv ipaddr 192.168.50.8 # 使用 tftp 加载镜像到指定内存地址并 boot setenv serverip 192.168.50.97;setenv ipaddr 192.168.50.8;tftp 0x00480000 ${serverip}:axvisor;tftp 0x10000000 ${serverip}:rk3588_dtb.bin;bootm 0x00480000 - 0x10000000; ``` -tftp 0x00480000 ${serverip}:Image.bin;tftp 0x10000000 ${serverip}:rk3588_dtb.bin;bootm 0x00480000 - 0x10000000; + +The VM2 will wait for several seconds before boot to allow VM1 to setup clocks of the whole SoC first. + +The VM1 output goes to the RS232 on the board (ttyS1 in Linux and serial@feb40000 in the device tree), and the VM2 output goes to the USB Type-C (ttyS2/ttyFIQ0 in Linux and serial@feb5000 in the device tree). + +## Known Issues + +- Resets of the ethernet in VM2 is not working, and reconfigure the NIC (e.g. with NetworkManager) may cause the VM2 to hang. Currently the initramfs will attempt to autoconfig the eth port then mount NFS as the rootfs. You may override the configuration with `ip=` kernel bootarg. From 83e9f2bbe7f2262551206511908f4aba61be507f Mon Sep 17 00:00:00 2001 From: Gallium70 <52118815+Gallium70@users.noreply.github.com> Date: Fri, 13 Jun 2025 23:22:27 +0800 Subject: [PATCH 047/219] [wip] Update config to boot SMP VMs --- configs/vms/aio-rk3588-jd4-vm1.dts | 32 ++++++++++ configs/vms/aio-rk3588-jd4-vm2.dts | 64 +++++++++++++------ configs/vms/linux-rk3588-aarch64-smp-vm1.toml | 6 +- configs/vms/linux-rk3588-aarch64-smp-vm2.toml | 6 +- 4 files changed, 82 insertions(+), 26 deletions(-) diff --git a/configs/vms/aio-rk3588-jd4-vm1.dts b/configs/vms/aio-rk3588-jd4-vm1.dts index f14c3d4e..a75a58f6 100644 --- a/configs/vms/aio-rk3588-jd4-vm1.dts +++ b/configs/vms/aio-rk3588-jd4-vm1.dts @@ -10262,6 +10262,25 @@ phandle = <0x06>; }; + cpu@100 { + device_type = "cpu"; + compatible = "arm,cortex-a55"; + reg = <0x100>; + enable-method = "psci"; + capacity-dmips-mhz = <0x212>; + clocks = <0x0e 0x00>; + operating-points-v2 = <0x0f>; + cpu-idle-states = <0x10>; + i-cache-size = <0x8000>; + i-cache-line-size = <0x40>; + i-cache-sets = <0x80>; + d-cache-size = <0x8000>; + d-cache-line-size = <0x40>; + d-cache-sets = <0x80>; + next-level-cache = <0x13>; + phandle = <0x07>; + }; + l2-cache-l0 { compatible = "cache"; cache-size = <0x20000>; @@ -10271,6 +10290,15 @@ phandle = <0x11>; }; + l2-cache-l1 { + compatible = "cache"; + cache-size = <0x20000>; + cache-line-size = <0x40>; + cache-sets = <0x200>; + next-level-cache = <0x1e>; + phandle = <0x13>; + }; + l3-cache { compatible = "cache"; cache-size = <0x300000>; @@ -10298,6 +10326,10 @@ core0 { cpu = <0x06>; }; + + core1 { + cpu = <0x07>; + }; }; }; }; diff --git a/configs/vms/aio-rk3588-jd4-vm2.dts b/configs/vms/aio-rk3588-jd4-vm2.dts index 35a1b9af..724c53b5 100644 --- a/configs/vms/aio-rk3588-jd4-vm2.dts +++ b/configs/vms/aio-rk3588-jd4-vm2.dts @@ -29,40 +29,60 @@ #address-cells = <0x01>; #size-cells = <0x00>; - cpu@0 { + cpu@200 { device_type = "cpu"; compatible = "arm,cortex-a55"; - reg = <0x00>; + reg = <0x200>; enable-method = "psci"; + capacity-dmips-mhz = <0x212>; clocks = <0x0e 0x00>; - cpu-idle-states = <0x10>; operating-points-v2 = <0x0f>; - capacity-dmips-mhz = <0x212>; - - cpu-supply = <0x12>; - mem-supply = <0x12>; - dynamic-power-coefficient = <0x64>; - - i-cache-line-size = <0x40>; + cpu-idle-states = <0x10>; i-cache-size = <0x8000>; + i-cache-line-size = <0x40>; i-cache-sets = <0x80>; - - d-cache-line-size = <0x40>; d-cache-size = <0x8000>; + d-cache-line-size = <0x40>; d-cache-sets = <0x80>; + next-level-cache = <0x14>; + phandle = <0x08>; + }; - next-level-cache = <0x11>; - #cooling-cells = <0x02>; - phandle = <0x06>; + cpu@300 { + device_type = "cpu"; + compatible = "arm,cortex-a55"; + reg = <0x300>; + enable-method = "psci"; + capacity-dmips-mhz = <0x212>; + clocks = <0x0e 0x00>; + operating-points-v2 = <0x0f>; + cpu-idle-states = <0x10>; + i-cache-size = <0x8000>; + i-cache-line-size = <0x40>; + i-cache-sets = <0x80>; + d-cache-size = <0x8000>; + d-cache-line-size = <0x40>; + d-cache-sets = <0x80>; + next-level-cache = <0x15>; + phandle = <0x09>; }; - l2-cache-l0 { + l2-cache-l2 { compatible = "cache"; cache-size = <0x20000>; + cache-line-size = <0x40>; cache-sets = <0x200>; + next-level-cache = <0x1e>; + phandle = <0x14>; + }; + + l2-cache-l3 { + compatible = "cache"; + cache-size = <0x20000>; cache-line-size = <0x40>; + cache-sets = <0x200>; next-level-cache = <0x1e>; - phandle = <0x11>; + phandle = <0x15>; }; l3-cache { @@ -89,8 +109,12 @@ cpu-map { cluster0 { - core0 { - cpu = <0x06>; + core2 { + cpu = <0x08>; + }; + + core3 { + cpu = <0x09>; }; }; }; @@ -153,7 +177,7 @@ compatible = "arm,gic-v3"; ranges; #interrupt-cells = <0x03>; - reg = <0x00 0xfe600000 0x00 0x10000 0x00 0xfe6a0000 0x00 0x100000>; + reg = <0x00 0xfe600000 0x00 0x10000 0x00 0xfe6c0000 0x00 0x100000>; phandle = <0x01>; interrupt-controller; diff --git a/configs/vms/linux-rk3588-aarch64-smp-vm1.toml b/configs/vms/linux-rk3588-aarch64-smp-vm1.toml index 3cb2e729..a2edd1af 100644 --- a/configs/vms/linux-rk3588-aarch64-smp-vm1.toml +++ b/configs/vms/linux-rk3588-aarch64-smp-vm1.toml @@ -8,11 +8,11 @@ name = "linux-full" # Virtualization type. vm_type = 1 # The number of virtual CPUs. -cpu_num = 1 +cpu_num = 2 # Guest vm physical cpu sets. # phys_cpu_sets = [1, 2, 4, 8, 16, 32, 64, 128] -phys_cpu_ids = [0x00] -phys_cpu_sets = [1] +phys_cpu_ids = [0x00, 0x100] +phys_cpu_sets = [1, 2] # # Vm kernel configs diff --git a/configs/vms/linux-rk3588-aarch64-smp-vm2.toml b/configs/vms/linux-rk3588-aarch64-smp-vm2.toml index a5270341..c0afbed6 100644 --- a/configs/vms/linux-rk3588-aarch64-smp-vm2.toml +++ b/configs/vms/linux-rk3588-aarch64-smp-vm2.toml @@ -8,11 +8,11 @@ name = "linux-minimal" # Virtualization type. vm_type = 1 # The number of virtual CPUs. -cpu_num = 1 +cpu_num = 2 # Guest vm physical cpu sets. # phys_cpu_sets = [1, 2, 4, 8, 16, 32, 64, 128] -phys_cpu_ids = [0x100] -phys_cpu_sets = [2] +phys_cpu_ids = [0x200, 0x300] +phys_cpu_sets = [4, 8] # # Vm kernel configs From 64a39f6a82b2e6d1827c8fa6f6ab1a5577639f21 Mon Sep 17 00:00:00 2001 From: Gallium70 <52118815+Gallium70@users.noreply.github.com> Date: Fri, 13 Jun 2025 23:36:17 +0800 Subject: [PATCH 048/219] nasty sendipi handling --- Cargo.lock | 45 +++++++++++++++++++++++++++++++++++++++------ Cargo.toml | 5 +++-- src/vmm/vcpus.rs | 34 ++++++++++++++++++++++++++++++++++ 3 files changed, 76 insertions(+), 8 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 28e51dde..d15f36f2 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -173,7 +173,7 @@ dependencies = [ "axdevice_base", "axerrno", "axvcpu", - "axvisor_api", + "axvisor_api 0.1.0 (git+https://github.com/arceos-hypervisor/axvisor_api.git?branch=inject_interrupt)", "log", "numeric-enum-macro", "percpu", @@ -189,7 +189,7 @@ dependencies = [ "axaddrspace", "axdevice_base", "axerrno", - "axvisor_api", + "axvisor_api 0.1.0 (git+https://github.com/arceos-hypervisor/axvisor_api.git?branch=inject_interrupt)", "bitmaps", "log", "memory_addr", @@ -471,6 +471,16 @@ dependencies = [ "x86_64 0.15.2", ] +[[package]] +name = "axhvc" +version = "0.1.0" +source = "git+https://github.com/arceos-hypervisor/axhvc.git?branch=ivc#29ca8af1e2db294b9f266ec43a3989c36f2e23b4" +dependencies = [ + "axerrno", + "bit_field", + "numeric-enum-macro", +] + [[package]] name = "axio" version = "0.1.1" @@ -602,9 +612,10 @@ dependencies = [ "axdevice", "axdevice_base", "axerrno", + "axhvc", "axstd", "axvcpu", - "axvisor_api", + "axvisor_api 0.1.0 (git+https://github.com/arceos-hypervisor/axvisor_api.git?branch=inject_interrupt)", "axvm", "bitflags 2.9.0", "cfg-if", @@ -633,7 +644,17 @@ version = "0.1.0" source = "git+https://github.com/arceos-hypervisor/axvisor_api.git?branch=inject_interrupt#a40fbf91fe582edae2b1fea274c52aab8804f97d" dependencies = [ "axaddrspace", - "axvisor_api_proc", + "axvisor_api_proc 0.1.0 (git+https://github.com/arceos-hypervisor/axvisor_api.git?branch=inject_interrupt)", + "crate_interface", + "memory_addr", +] + +[[package]] +name = "axvisor_api" +version = "0.1.0" +source = "git+https://github.com/arceos-hypervisor/axvisor_api.git#ebb860c795a4d2e828b8595dca5ad9dff84e4883" +dependencies = [ + "axvisor_api_proc 0.1.0 (git+https://github.com/arceos-hypervisor/axvisor_api.git)", "crate_interface", "memory_addr", ] @@ -649,6 +670,17 @@ dependencies = [ "syn 2.0.100", ] +[[package]] +name = "axvisor_api_proc" +version = "0.1.0" +source = "git+https://github.com/arceos-hypervisor/axvisor_api.git#ebb860c795a4d2e828b8595dca5ad9dff84e4883" +dependencies = [ + "proc-macro-crate", + "proc-macro2", + "quote", + "syn 2.0.100", +] + [[package]] name = "axvm" version = "0.1.0" @@ -1390,11 +1422,12 @@ dependencies = [ [[package]] name = "riscv_vcpu" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/riscv_vcpu.git?branch=inject_interrupt#7614ffff7e164661d6894a71628d4634914fc93f" +source = "git+https://github.com/arceos-hypervisor/riscv_vcpu.git?branch=inject_interrupt_vgicv3_ivc#30c743b825778fd740c8e09988872e8a818ffe47" dependencies = [ "axaddrspace", "axerrno", "axvcpu", + "axvisor_api 0.1.0 (git+https://github.com/arceos-hypervisor/axvisor_api.git)", "bit_field", "bitflags 2.9.0", "cfg-if", @@ -1912,7 +1945,7 @@ dependencies = [ "axaddrspace", "axdevice_base", "axerrno", - "axvisor_api", + "axvisor_api 0.1.0 (git+https://github.com/arceos-hypervisor/axvisor_api.git?branch=inject_interrupt)", "bit", "log", "memory_addr", diff --git a/Cargo.toml b/Cargo.toml index de7054be..202baf5c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -41,8 +41,9 @@ axstd = { git = "https://github.com/arceos-hypervisor/arceos.git", branch = "vmm axvm = { git = "https://github.com/arceos-hypervisor/axvm.git", branch = "inject_interrupt_vgicv3" } axvcpu = { git = "https://github.com/arceos-hypervisor/axvcpu.git", branch = "inject_interrupt" } axaddrspace = { git = "https://github.com/arceos-hypervisor/axaddrspace.git" } +axhvc = { git = "https://github.com/arceos-hypervisor/axhvc.git", branch = "ivc" } -# System independent crates provided by ArceOS, these crates could be imported by remote url. +# System independent crates provided by ArceOS, these crates could be imported by remote url. crate_interface = "0.1" axerrno = "0.1.0" cpumask = "0.1.0" @@ -88,4 +89,4 @@ path = "crates/axdevice_crates/axdevice_base" path = "crates/arm_gicv2" [patch.crates-io] page_table_multiarch = {path = "crates/page_table_multiarch/page_table_multiarch"} -page_table_entry = {path = "crates/page_table_multiarch/page_table_entry"} \ No newline at end of file +page_table_entry = {path = "crates/page_table_multiarch/page_table_entry"} diff --git a/src/vmm/vcpus.rs b/src/vmm/vcpus.rs index 2ed4ddf0..a94bde00 100644 --- a/src/vmm/vcpus.rs +++ b/src/vmm/vcpus.rs @@ -390,6 +390,40 @@ fn vcpu_run() { warn!("VM[{}] run VCpu[{}] SystemDown", vm_id, vcpu_id); vm.shutdown().expect("VM shutdown failed"); } + AxVCpuExitReason::SendIPI { target_cpu, target_cpu_aux, send_to_all, send_to_self, vector } => { + if send_to_all || send_to_self { + unimplemented!("SendIPI with send_to_all or send_to_self is not implemented yet"); + } + + #[cfg(target_arch = "aarch64")] + { + let aff3 = (target_cpu >> 24) & 0xff; + let aff2 = (target_cpu >> 16) & 0xff; + let aff1 = (target_cpu >> 8) & 0xff; + let irm = (send_to_all as u64); + + let icc_sgi1r_value = + (vector as u64) << 24 | + aff3 << 48 | + aff2 << 32 | + aff1 << 16 | + irm << 40 | + target_cpu_aux; + + debug!( + "VM[{}] run VCpu[{}] SendIPI, target_cpu={:#x}, target_cpu_aux={:#x}, vector={}, icc_sgi1r_value={:#x}", + vm_id, vcpu_id, target_cpu, target_cpu_aux, vector, icc_sgi1r_value + ); + + unsafe { + core::arch::asm!( + "msr icc_sgi1r_el1, {0}", + in(reg) icc_sgi1r_value, + options(nostack, nomem, preserves_flags) + ); + } + } + } _ => { warn!("Unhandled VM-Exit"); } From 0ea27567ffd3747a6753cee6d159030644c57cde Mon Sep 17 00:00:00 2001 From: Gallium70 <52118815+Gallium70@users.noreply.github.com> Date: Sat, 14 Jun 2025 00:34:53 +0800 Subject: [PATCH 049/219] [doc/rk3588] Update instruction to boot SMP VMs --- Boot-on-rk3588.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/Boot-on-rk3588.md b/Boot-on-rk3588.md index 3db41c2d..bcea1b34 100644 --- a/Boot-on-rk3588.md +++ b/Boot-on-rk3588.md @@ -73,8 +73,8 @@ cd crates/arceos && git checkout rk3588_jd4 * compile ```bash -make ARCH=aarch64 PLATFORM=configs/platforms/aarch64-rk3588j-hv.toml SMP=2 defconfig -make ARCH=aarch64 PLATFORM=configs/platforms/aarch64-rk3588j-hv.toml VM_CONFIGS=configs/vms/linux-rk3588-aarch64-smp-vm1.toml:configs/vms/linux-rk3588-aarch64-smp-vm2.toml LOG=debug GICV3=y upload +make ARCH=aarch64 PLATFORM=configs/platforms/aarch64-rk3588j-hv.toml SMP=4 defconfig +make ARCH=aarch64 PLATFORM=configs/platforms/aarch64-rk3588j-hv.toml SMP=4 VM_CONFIGS=configs/vms/linux-rk3588-aarch64-smp-vm1.toml:configs/vms/linux-rk3588-aarch64-smp-vm2.toml LOG=debug GICV3=y upload ``` * copy to tftp dir (make xxx upload will copy the image to `/srv/tftp/axvisor` automatically) @@ -102,4 +102,5 @@ The VM1 output goes to the RS232 on the board (ttyS1 in Linux and serial@feb4000 ## Known Issues -- Resets of the ethernet in VM2 is not working, and reconfigure the NIC (e.g. with NetworkManager) may cause the VM2 to hang. Currently the initramfs will attempt to autoconfig the eth port then mount NFS as the rootfs. You may override the configuration with `ip=` kernel bootarg. +* Resets of the ethernet in VM2 is not working, and reconfigure the NIC (e.g. with NetworkManager) may cause the VM2 to hang. Currently the initramfs will attempt to autoconfig the eth port then mount NFS as the rootfs. You may override the configuration with `ip=` kernel bootarg. +* Execute `reboot` in either VM would reset the whole board, which may be unexpected for the other VM. You may `shutdown` VM2 first, then do shutdown or reboot in VM1. From e88d5afa2e19ccf7eeccf3faf8d7d085ce360955 Mon Sep 17 00:00:00 2001 From: Gallium70 <52118815+Gallium70@users.noreply.github.com> Date: Sun, 15 Jun 2025 10:38:54 +0800 Subject: [PATCH 050/219] [feat/rk3588] Use PREEMT_RT kernel for Linux VM2 --- configs/vms/linux-rk3588-aarch64-smp-vm2.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configs/vms/linux-rk3588-aarch64-smp-vm2.toml b/configs/vms/linux-rk3588-aarch64-smp-vm2.toml index c0afbed6..32181b06 100644 --- a/configs/vms/linux-rk3588-aarch64-smp-vm2.toml +++ b/configs/vms/linux-rk3588-aarch64-smp-vm2.toml @@ -30,7 +30,7 @@ ramdisk_load_addr = 0x1_0a20_0000 # load from memory image_location = "memory" # The file path of the kernel image. -kernel_path = "Image.bin" +kernel_path = "Image-5.10.198-rt89-preempt.bin" # The file path of the device tree blob (DTB). dtb_path = "aio-rk3588-jd4-vm2.dtb" # The file path of the ramdisk image. From 60ed75709b10672b47e1e9eec0b35a076db50bfb Mon Sep 17 00:00:00 2001 From: Gallium70 <52118815+Gallium70@users.noreply.github.com> Date: Sun, 15 Jun 2025 10:43:50 +0800 Subject: [PATCH 051/219] Assign arceos VM to 3rd physical core for 2-core Linux VM1 --- configs/vms/arceos-rk3588-aarch64-vm2.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configs/vms/arceos-rk3588-aarch64-vm2.toml b/configs/vms/arceos-rk3588-aarch64-vm2.toml index 92a96b70..d53ce9bf 100644 --- a/configs/vms/arceos-rk3588-aarch64-vm2.toml +++ b/configs/vms/arceos-rk3588-aarch64-vm2.toml @@ -10,7 +10,7 @@ vm_type = 1 # The number of virtual CPUs. cpu_num = 1 # Guest vm physical cpu sets. -phys_cpu_sets = [2] +phys_cpu_sets = [4] # # Vm kernel configs From 81055972ee09d90e81c2dfdcc72742e91b6acf90 Mon Sep 17 00:00:00 2001 From: hky1999 <976929993@qq.com> Date: Sun, 15 Jun 2025 14:51:30 +0800 Subject: [PATCH 052/219] [wip] prepare to merge --- Cargo.lock | 114 +++++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 106 insertions(+), 8 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 4b25c40b..a5949678 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -146,6 +146,14 @@ dependencies = [ "tock-registers 0.9.0", ] +[[package]] +name = "arm_gicv2" +version = "0.1.0" +source = "git+https://github.com/arceos-hypervisor/arm_gicv2.git?branch=debin%2F2vm_timer#0ad077649e030b9836a5dc55a5a01b1fd0246e11" +dependencies = [ + "tock-registers 0.8.1", +] + [[package]] name = "arm_gicv2" version = "0.1.0" @@ -169,9 +177,12 @@ version = "0.1.0" dependencies = [ "aarch64-cpu 9.4.0", "aarch64_sysreg", + "arm_vgic", "axaddrspace", + "axdevice_base", "axerrno", "axvcpu", + "axvisor_api 0.1.0 (git+https://github.com/arceos-hypervisor/axvisor_api.git?branch=inject_interrupt)", "log", "numeric-enum-macro", "percpu", @@ -179,6 +190,22 @@ dependencies = [ "tock-registers 0.8.1", ] +[[package]] +name = "arm_vgic" +version = "0.0.0" +dependencies = [ + "arm_gicv2 0.1.0 (git+https://github.com/arceos-hypervisor/arm_gicv2.git?branch=debin%2F2vm_timer)", + "axaddrspace", + "axdevice_base", + "axerrno", + "axvisor_api 0.1.0 (git+https://github.com/arceos-hypervisor/axvisor_api.git?branch=inject_interrupt)", + "bitmaps", + "log", + "memory_addr", + "spin", + "tock-registers 0.8.1", +] + [[package]] name = "autocfg" version = "1.4.0" @@ -255,6 +282,7 @@ dependencies = [ name = "axdevice" version = "0.1.0" dependencies = [ + "arm_vgic", "axaddrspace", "axdevice_base", "axerrno", @@ -407,7 +435,7 @@ version = "0.1.0" dependencies = [ "aarch64-cpu 10.0.0", "arm-gic-driver", - "arm_gicv2", + "arm_gicv2 0.1.0 (git+https://github.com/arceos-hypervisor/arm_gicv2)", "arm_pl011", "axalloc", "axconfig 0.1.0", @@ -445,7 +473,6 @@ name = "axhvc" version = "0.1.0" dependencies = [ "axerrno", - "bit_field", "numeric-enum-macro", ] @@ -588,6 +615,49 @@ dependencies = [ "toml", ] +[[package]] +name = "axvisor_api" +version = "0.1.0" +source = "git+https://github.com/arceos-hypervisor/axvisor_api.git?branch=inject_interrupt#a40fbf91fe582edae2b1fea274c52aab8804f97d" +dependencies = [ + "axaddrspace", + "axvisor_api_proc 0.1.0 (git+https://github.com/arceos-hypervisor/axvisor_api.git?branch=inject_interrupt)", + "crate_interface", + "memory_addr", +] + +[[package]] +name = "axvisor_api" +version = "0.1.0" +source = "git+https://github.com/arceos-hypervisor/axvisor_api.git#ebb860c795a4d2e828b8595dca5ad9dff84e4883" +dependencies = [ + "axvisor_api_proc 0.1.0 (git+https://github.com/arceos-hypervisor/axvisor_api.git)", + "crate_interface", + "memory_addr", +] + +[[package]] +name = "axvisor_api_proc" +version = "0.1.0" +source = "git+https://github.com/arceos-hypervisor/axvisor_api.git?branch=inject_interrupt#a40fbf91fe582edae2b1fea274c52aab8804f97d" +dependencies = [ + "proc-macro-crate", + "proc-macro2", + "quote", + "syn 2.0.100", +] + +[[package]] +name = "axvisor_api_proc" +version = "0.1.0" +source = "git+https://github.com/arceos-hypervisor/axvisor_api.git#ebb860c795a4d2e828b8595dca5ad9dff84e4883" +dependencies = [ + "proc-macro-crate", + "proc-macro2", + "quote", + "syn 2.0.100", +] + [[package]] name = "axvm" version = "0.1.0" @@ -595,10 +665,12 @@ dependencies = [ "arm_vcpu", "axaddrspace", "axdevice", + "axdevice_base", "axerrno", "axvcpu", "axvmconfig", "cfg-if", + "cpumask", "log", "memory_addr", "page_table_entry", @@ -613,6 +685,7 @@ dependencies = [ name = "axvmconfig" version = "0.1.0" dependencies = [ + "axdevice_base", "axerrno", "log", "serde", @@ -1152,6 +1225,15 @@ dependencies = [ "syn 2.0.100", ] +[[package]] +name = "proc-macro-crate" +version = "3.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "edce586971a4dfaa28950c6f18ed55e0406c1ab88bbce2c6f6293a7aaba73d35" +dependencies = [ + "toml_edit 0.22.24", +] + [[package]] name = "proc-macro2" version = "1.0.94" @@ -1297,11 +1379,12 @@ dependencies = [ [[package]] name = "riscv_vcpu" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/riscv_vcpu.git#4000ae3cd546423c20785d7d93f81a80233cc35a" +source = "git+https://github.com/arceos-hypervisor/riscv_vcpu.git?branch=inject_interrupt_vgicv3_ivc#30c743b825778fd740c8e09988872e8a818ffe47" dependencies = [ "axaddrspace", "axerrno", "axvcpu", + "axvisor_api 0.1.0 (git+https://github.com/arceos-hypervisor/axvisor_api.git)", "bit_field", "bitflags 2.9.0", "cfg-if", @@ -1770,9 +1853,10 @@ dependencies = [ [[package]] name = "x86_vcpu" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/x86_vcpu.git#2cc42349f23c9a38723710a38d34b080255520e4" +source = "git+https://github.com/arceos-hypervisor/x86_vcpu.git?branch=inject_interrupt#b240131f84db2ff61d114340c07049dcf20209b4" dependencies = [ "axaddrspace", + "axdevice_base", "axerrno", "axvcpu", "bit_field", @@ -1783,9 +1867,27 @@ dependencies = [ "memory_addr", "numeric-enum-macro", "page_table_entry", + "paste", "raw-cpuid 11.5.0", "x86", "x86_64 0.15.2", + "x86_vlapic", +] + +[[package]] +name = "x86_vlapic" +version = "0.1.0" +source = "git+https://github.com/arceos-hypervisor/x86_vlapic.git?branch=timer#5ac0b3f1e76efe46b42fb825818e83e801e49ab2" +dependencies = [ + "axaddrspace", + "axdevice_base", + "axerrno", + "axvisor_api 0.1.0 (git+https://github.com/arceos-hypervisor/axvisor_api.git?branch=inject_interrupt)", + "bit", + "log", + "memory_addr", + "paste", + "tock-registers 0.9.0", ] [[package]] @@ -1808,7 +1910,3 @@ dependencies = [ "quote", "syn 2.0.100", ] - -[[patch.unused]] -name = "arm_vgic" -version = "0.0.0" From 627f8414e939b462b30c0afec15363b0ce3ec09f Mon Sep 17 00:00:00 2001 From: hky1999 <976929993@qq.com> Date: Sun, 15 Jun 2025 15:43:49 +0800 Subject: [PATCH 053/219] [wip] merge ivc branch, modify configuration --- Cargo.lock | 42 ++++++++++++++--------------- Cargo.toml | 31 +-------------------- configs/vms/arceos-aarch64.toml | 2 +- configs/vms/linux-qemu-aarch64.toml | 2 +- 4 files changed, 23 insertions(+), 54 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index bcb879e8..2edf5043 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -155,14 +155,6 @@ dependencies = [ "tock-registers 0.8.1", ] -[[package]] -name = "arm_gicv2" -version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arm_gicv2#eee14941d490719f6689e82f9a87caea6767bdc3" -dependencies = [ - "tock-registers 0.8.1", -] - [[package]] name = "arm_pl011" version = "0.1.0" @@ -183,7 +175,7 @@ dependencies = [ "axaddrspace", "axdevice_base", "axerrno", - "axvcpu", + "axvcpu 0.1.0 (git+https://github.com/arceos-hypervisor/axvcpu.git?branch=inject_interrupt_vgicv3_ivc)", "axvisor_api 0.1.0 (git+https://github.com/arceos-hypervisor/axvisor_api.git?branch=inject_interrupt)", "log", "numeric-enum-macro", @@ -195,8 +187,9 @@ dependencies = [ [[package]] name = "arm_vgic" version = "0.0.0" +source = "git+https://github.com/arceos-hypervisor/arm_vgic.git?branch=vmm_irq_gicv3#453e7b070573abefeb2ef1658234285591ad4b1d" dependencies = [ - "arm_gicv2 0.1.0 (git+https://github.com/arceos-hypervisor/arm_gicv2.git?branch=debin%2F2vm_timer)", + "arm_gicv2", "axaddrspace", "axdevice_base", "axerrno", @@ -208,6 +201,17 @@ dependencies = [ "tock-registers 0.8.1", ] +[[package]] +name = "async-trait" +version = "0.1.88" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e539d3fca749fcee5236ab05e93a52867dd549cc157c8cb7f99595f3cedffdb5" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.100", +] + [[package]] name = "autocfg" version = "1.4.0" @@ -296,8 +300,6 @@ dependencies = [ "cfg-if", "log", "memory_addr", - "range-alloc", - "spin", ] [[package]] @@ -448,7 +450,7 @@ source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_irq_gic dependencies = [ "aarch64-cpu 10.0.0", "arm-gic-driver", - "arm_gicv2 0.1.0 (git+https://github.com/arceos-hypervisor/arm_gicv2)", + "arm_gicv2", "arm_pl011", "axalloc", "axconfig 0.1.0 (git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_irq_gicv3)", @@ -485,7 +487,7 @@ dependencies = [ [[package]] name = "axhvc" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/axhvc.git?branch=ivc#29ca8af1e2db294b9f266ec43a3989c36f2e23b4" +source = "git+https://github.com/arceos-hypervisor/axhvc.git#e4ca6f919b9900f35e42b9b30863550a50432220" dependencies = [ "axerrno", "numeric-enum-macro", @@ -645,7 +647,7 @@ dependencies = [ "axhvc", "axstd", "axvcpu 0.1.0 (git+https://github.com/arceos-hypervisor/axvcpu.git?branch=inject_interrupt_vgicv3_ivc)", - "axvisor_api", + "axvisor_api 0.1.0 (git+https://github.com/arceos-hypervisor/axvisor_api.git?branch=inject_interrupt)", "axvm", "bitflags 2.9.0", "cfg-if", @@ -714,7 +716,7 @@ dependencies = [ [[package]] name = "axvm" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/axvm.git?branch=inject_interrupt_vgicv3_ivc#56bca9658bbada112bec531a4ea6b55a7556cd69" +source = "git+https://github.com/arceos-hypervisor/axvm.git?branch=inject_interrupt_vgicv3_ivc#231eddbab0f7b14b0c1c1a7fa0876dc5878bf124" dependencies = [ "arm_vcpu", "axaddrspace", @@ -738,8 +740,8 @@ dependencies = [ [[package]] name = "axvmconfig" version = "0.1.0" +source = "git+https://github.com/arceos-hypervisor/axvmconfig.git#19e73fc71c48c0af49f6fda960c144b297e41435" dependencies = [ - "axdevice_base", "axerrno", "log", "serde", @@ -1310,10 +1312,6 @@ dependencies = [ "proc-macro2", ] -[[package]] -name = "range-alloc" -version = "0.1.4" - [[package]] name = "raw-cpuid" version = "10.7.0" @@ -1465,7 +1463,7 @@ source = "git+https://github.com/arceos-hypervisor/riscv_vcpu.git?branch=inject_ dependencies = [ "axaddrspace", "axerrno", - "axvcpu", + "axvcpu 0.1.0 (git+https://github.com/arceos-hypervisor/axvcpu.git?branch=inject_interrupt_vgicv3_ivc)", "axvisor_api 0.1.0 (git+https://github.com/arceos-hypervisor/axvisor_api.git)", "bit_field", "bitflags 2.9.0", diff --git a/Cargo.toml b/Cargo.toml index 0f836d6f..a5eb12b3 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -41,7 +41,7 @@ axstd = { git = "https://github.com/arceos-hypervisor/arceos.git", branch = "vmm axvm = { git = "https://github.com/arceos-hypervisor/axvm.git", branch = "inject_interrupt_vgicv3_ivc" } axvcpu = { git = "https://github.com/arceos-hypervisor/axvcpu.git", branch = "inject_interrupt_vgicv3_ivc" } axaddrspace = { git = "https://github.com/arceos-hypervisor/axaddrspace.git" } -axhvc = { git = "https://github.com/arceos-hypervisor/axhvc.git", branch = "ivc" } +axhvc = { git = "https://github.com/arceos-hypervisor/axhvc.git" } # System independent crates provided by ArceOS, these crates could be imported by remote url. crate_interface = "0.1" @@ -65,32 +65,3 @@ axconfig = { git = "https://github.com/arceos-hypervisor/arceos.git", branch = " prettyplease = "0.2" quote = "1.0" syn = "2.0" - -[patch."https://github.com/arceos-hypervisor/arceos.git".axstd] -path = "crates/arceos/ulib/axstd" -[patch."https://github.com/arceos-hypervisor/arceos.git".axhal] -path = "crates/arceos/modules/axhal" -[patch."https://github.com/arceos-hypervisor/axvm.git".axvm] -path = "crates/axvm" -[patch."https://github.com/arceos-hypervisor/axvcpu.git".axvcpu] -path = "crates/axvcpu" -[patch."https://github.com/arceos-hypervisor/axaddrspace.git".axaddrspace] -path = "crates/axaddrspace" -[patch."https://github.com/arceos-hypervisor/arm_vcpu.git".arm_vcpu] -path = "crates/arm_vcpu" -[patch."https://github.com/arceos-hypervisor/axdevice.git".axdevice] -path = "crates/axdevice" -[patch."https://github.com/arceos-hypervisor/arm_vgic.git".arm_vgic] -path = "crates/arm_vgic" -[patch."https://github.com/arceos-hypervisor/axdevice_crates.git".axdevice_base] -path = "crates/axdevice_crates/axdevice_base" -[patch."https://github.com/arceos-hypervisor/axhvc.git".axhvc] -path = "crates/axhvc" -[patch."https://github.com/arceos-hypervisor/axvmconfig.git".axvmconfig] -path = "crates/axvmconfig" -[patch."https://github.com/arceos-hypervisor/range-alloc.git".range-alloc] -path = "crates/range-alloc" - -[patch.crates-io] -page_table_multiarch = {path = "crates/page_table_multiarch/page_table_multiarch"} -page_table_entry = {path = "crates/page_table_multiarch/page_table_entry"} diff --git a/configs/vms/arceos-aarch64.toml b/configs/vms/arceos-aarch64.toml index 663c700b..0886a7e7 100644 --- a/configs/vms/arceos-aarch64.toml +++ b/configs/vms/arceos-aarch64.toml @@ -44,7 +44,7 @@ memory_regions = [ # Emu_devices. # Name Base-Ipa Ipa_len Alloc-Irq Emu-Type EmuConfig. emu_devices = [ - ["ivc-channel", 0x3000_0000, 0x1000_0000, 0x0, 0x1, []], + ["ivc-channel", 0x3000_0000, 0x1000_0000, 0x0, 0xa, []], ] # Pass-through devices. diff --git a/configs/vms/linux-qemu-aarch64.toml b/configs/vms/linux-qemu-aarch64.toml index 218966d3..355f229c 100644 --- a/configs/vms/linux-qemu-aarch64.toml +++ b/configs/vms/linux-qemu-aarch64.toml @@ -70,5 +70,5 @@ passthrough_devices = [ # Emu_devices. # Name Base-Ipa Ipa_len Alloc-Irq Emu-Type EmuConfig. emu_devices = [ - ["ivc-channel", 0xd000_0000, 0x1000_0000, 0x0, 0x1, []], + ["ivc-channel", 0xd000_0000, 0x1000_0000, 0x0, 0xa, []], ] \ No newline at end of file From bf095ea96658e00cbc7bcbc7e1f4a321eef1789b Mon Sep 17 00:00:00 2001 From: Gallium70 <52118815+Gallium70@users.noreply.github.com> Date: Tue, 17 Jun 2025 14:04:17 +0800 Subject: [PATCH 054/219] [feat] reorder clocks for proper initialization in Linux kernel --- configs/vms/aio-rk3588-jd4-vm1.dts | 1356 ++++++++++++++-------------- 1 file changed, 678 insertions(+), 678 deletions(-) diff --git a/configs/vms/aio-rk3588-jd4-vm1.dts b/configs/vms/aio-rk3588-jd4-vm1.dts index a75a58f6..9bea6bd9 100644 --- a/configs/vms/aio-rk3588-jd4-vm1.dts +++ b/configs/vms/aio-rk3588-jd4-vm1.dts @@ -217,424 +217,764 @@ rockchip,master-handle-irq; }; - clock-controller@fd7c0000 { - #reset-cells = <0x01>; - assigned-clocks = <0x02 0x09 0x02 0x05 0x02 0x08 0x02 0x07 0x02 0xd8 0x02 0xda 0x02 0xd9 0x02 0x10e 0x02 0x10f 0x02 0x110 0x02 0x299 0x02 0x29a 0x02 0x7b 0x02 0xec 0x02 0x114 0x02 0x208 0x02 0x20e 0x02 0x21f 0x02 0x77>; - assigned-clock-rates = <0x4190ab00 0x2ee00000 0x32a9f880 0x46cf7100 0x29d7ab80 0x17d78400 0x1dcd6500 0x2cb41780 0x5f5e100 0x17d78400 0x5f5e100 0xbebc200 0x165a0bc0 0x8f0d180 0xbebc200 0xb71b00 0xb71b00 0x5e69ec0 0x1312d00>; - #clock-cells = <0x01>; - compatible = "rockchip,rk3588-cru"; - rockchip,grf = <0x76>; - reg = <0x00 0xfd7c0000 0x00 0x5c000>; - phandle = <0x02>; - }; - - qos@fdf81000 { - compatible = "syscon"; - reg = <0x00 0xfdf81000 0x00 0x20>; - phandle = <0xa0>; - }; + clocks { + #address-cells = <0x02>; + #size-cells = <0x02>; + compatible = "simple-bus"; + ranges; - qos@fdf36000 { - compatible = "syscon"; - reg = <0x00 0xfdf36000 0x00 0x20>; - phandle = <0xaa>; - }; + hclk_nvm@fd7c087c { + clock-names = "link"; + clocks = <0x02 0x141>; + #clock-cells = <0x00>; + #power-domain-cells = <0x01>; + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c087c 0x00 0x10>; + phandle = <0x03>; + }; - i2s@fe4a0000 { - power-domains = <0x60 0x26>; - pinctrl-names = "default\0idle\0clk"; - pinctrl-2 = <0x132 0x133>; - pinctrl-0 = <0x12f 0x130>; - clock-names = "i2s_clk\0i2s_hclk"; - assigned-clocks = <0x02 0x2a>; - assigned-clock-parents = <0x02 0x05>; - interrupts = <0x00 0xb7 0x04>; - clocks = <0x02 0x2d 0x02 0x23>; - dma-names = "tx\0rx"; - #sound-dai-cells = <0x00>; - compatible = "rockchip,rk3588-i2s\0rockchip,rk3066-i2s"; - pinctrl-1 = <0x131>; - status = "disabled"; - reg = <0x00 0xfe4a0000 0x00 0x1000>; - phandle = <0x299>; - dmas = <0xf1 0x02 0xf1 0x03>; - rockchip,clk-trcm = <0x01>; - }; + mclkin-i2s0 { + clock-output-names = "i2s0_mclkin"; + #clock-cells = <0x00>; + clock-frequency = <0x00>; + compatible = "fixed-clock"; + phandle = <0x204>; + }; - syscon@fd5c4000 { - compatible = "rockchip,pipe-phy-grf\0syscon"; - reg = <0x00 0xfd5c4000 0x00 0x100>; - phandle = <0x195>; - }; + hclk_rkvenc1_pre@fd7c08c0 { + clock-names = "link"; + clocks = <0x02 0x1c4>; + #clock-cells = <0x00>; + #power-domain-cells = <0x01>; + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c08c0 0x00 0x10>; + phandle = <0x1fe>; + }; - sram@ff001000 { - #address-cells = <0x01>; - #size-cells = <0x01>; - compatible = "mmio-sram"; - ranges = <0x00 0x00 0xff001000 0xef000>; - reg = <0x00 0xff001000 0x00 0xef000>; - phandle = <0x2eb>; + mclkout-i2s1@fd58c318 { + rockchip,clk-ignore-unused; + clock-output-names = "i2s1_mclkout_to_io"; + clocks = <0x02 0x291>; + rockchip,bit-set-to-disable; + #clock-cells = <0x00>; + compatible = "rockchip,clk-out"; + reg = <0x00 0xfd58c318 0x00 0x04>; + phandle = <0x208>; + rockchip,bit-shift = <0x01>; + }; - rkvdec-sram@0 { - reg = <0x00 0x78000>; - phandle = <0xcb>; + mclkout-i2s1@fd58a000 { + rockchip,clk-ignore-unused; + clock-output-names = "i2s1m1_mclkout_to_io"; + clocks = <0x02 0x291>; + #clock-cells = <0x00>; + compatible = "rockchip,clk-out"; + reg = <0x00 0xfd58a000 0x00 0x04>; + phandle = <0x209>; + rockchip,bit-shift = <0x06>; }; - rkvdec-sram@78000 { - reg = <0x78000 0x77000>; - phandle = <0xcd>; + aclk_hdcp0_pre@fd7c08dc { + clock-names = "link"; + clocks = <0x02 0x26c>; + #clock-cells = <0x00>; + #power-domain-cells = <0x01>; + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c08dc 0x00 0x10>; + phandle = <0x1ff>; }; - }; - pwm@febd0010 { - pinctrl-names = "active"; - pinctrl-0 = <0x16a>; - clock-names = "pwm\0pclk"; - interrupts = <0x00 0x15a 0x04>; - clocks = <0x02 0x54 0x02 0x53>; - #pwm-cells = <0x03>; - compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; - status = "okay"; - reg = <0x00 0xfebd0010 0x00 0x10>; - phandle = <0x1ed>; - }; + xin32k { + clock-output-names = "xin32k"; + #clock-cells = <0x00>; + clock-frequency = <0x8000>; + compatible = "fixed-clock"; + phandle = <0x1f2>; + }; - rkisp1-vir3 { - rockchip,hw = <0x5a>; - compatible = "rockchip,rkisp-vir"; - status = "disabled"; - phandle = <0x242>; - }; + aclk_usb@fd7c08a8 { + clock-names = "link"; + clocks = <0x02 0x263>; + #clock-cells = <0x00>; + #power-domain-cells = <0x01>; + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c08a8 0x00 0x10>; + phandle = <0x6a>; + }; - pcie-clk2 { - regulator-boot-on; - regulator-always-on; - regulator-name = "pcie_clk2"; - compatible = "regulator-fixed"; - status = "okay"; - phandle = <0x495>; - gpios = <0x181 0x16 0x01>; - }; + hclk_usb@fd7c08a8 { + clock-names = "link"; + clocks = <0x02 0x264>; + #clock-cells = <0x00>; + #power-domain-cells = <0x01>; + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c08a8 0x00 0x10>; + phandle = <0x1f5>; + }; - serial@feb40000 { - reg-io-width = <0x04>; - pinctrl-names = "default"; - pinctrl-0 = <0x160>; - clock-names = "baudclk\0apb_pclk"; - interrupts = <0x00 0x14c 0x04>; - clocks = <0x02 0xb7 0x02 0xab>; - compatible = "rockchip,rk3588-uart\0snps,dw-apb-uart"; - status = "okay"; - reg = <0x00 0xfeb40000 0x00 0x100>; - phandle = <0x2c9>; - dmas = <0x7c 0x08 0x7c 0x09>; - reg-shift = <0x02>; - }; + hclk_vo0@fd7c08dc { + clock-names = "link"; + clocks = <0x02 0x26d>; + #clock-cells = <0x00>; + #power-domain-cells = <0x01>; + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c08dc 0x00 0x10>; + phandle = <0x04>; + }; - pinctrl { - #address-cells = <0x02>; - #size-cells = <0x02>; - compatible = "rockchip,rk3588-pinctrl"; - ranges; - rockchip,grf = <0x196>; - phandle = <0x197>; + pclk_av1_pre@fd7c0910 { + clock-names = "link"; + clocks = <0x02 0x1be>; + #clock-cells = <0x00>; + #power-domain-cells = <0x01>; + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c0910 0x00 0x10>; + phandle = <0x201>; + }; - eth0 { + mclkout-i2s2@fd58c318 { + rockchip,clk-ignore-unused; + clock-output-names = "i2s2_mclkout_to_io"; + clocks = <0x02 0x28>; + rockchip,bit-set-to-disable; + #clock-cells = <0x00>; + compatible = "rockchip,clk-out"; + reg = <0x00 0xfd58c318 0x00 0x04>; + phandle = <0x20a>; + rockchip,bit-shift = <0x02>; + }; - eth0-pins { - rockchip,pins = <0x02 0x13 0x01 0x198>; - phandle = <0x46c>; - }; + aclk_vdpu_low_pre@fd7c08b0 { + clock-names = "link"; + clocks = <0x02 0x1bc>; + #clock-cells = <0x00>; + #power-domain-cells = <0x01>; + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c08b0 0x00 0x10>; + phandle = <0x1f4>; }; - i2c3 { + mclkin-i2s3 { + clock-output-names = "i2s3_mclkin"; + #clock-cells = <0x00>; + clock-frequency = <0x00>; + compatible = "fixed-clock"; + phandle = <0x207>; + }; - i2c3m3-xfer { - rockchip,pins = <0x02 0x0a 0x09 0x19d 0x02 0x0b 0x09 0x19d>; - phandle = <0x361>; - }; + spll { + clock-output-names = "spll"; + #clock-cells = <0x00>; + clock-frequency = <0x29d7ab80>; + compatible = "fixed-clock"; + phandle = <0x1f1>; + }; - i2c3m2-xfer { - rockchip,pins = <0x04 0x04 0x09 0x19d 0x04 0x05 0x09 0x19d>; - phandle = <0x14a>; - }; - - i2c3m1-xfer { - rockchip,pins = <0x03 0x0f 0x09 0x19d 0x03 0x10 0x09 0x19d>; - phandle = <0x35f>; - }; - - i2c3m0-xfer { - rockchip,pins = <0x01 0x11 0x09 0x19d 0x01 0x10 0x09 0x19d>; - phandle = <0x35e>; - }; - - i2c3m4-xfer { - rockchip,pins = <0x04 0x18 0x09 0x19d 0x04 0x19 0x09 0x19d>; - phandle = <0x360>; - }; + xin24m { + clock-output-names = "xin24m"; + #clock-cells = <0x00>; + clock-frequency = <0x16e3600>; + compatible = "fixed-clock"; + phandle = <0x1f3>; }; - pwm9 { - - pwm9m2-pins { - rockchip,pins = <0x03 0x19 0x0b 0x198>; - phandle = <0x3d7>; - }; - - pwm9m1-pins { - rockchip,pins = <0x04 0x19 0x0b 0x198>; - phandle = <0x3d6>; - }; - - pwm9m0-pins { - rockchip,pins = <0x03 0x08 0x0b 0x198>; - phandle = <0x16e>; - }; + aclk_av1_pre@fd7c0910 { + clock-names = "link"; + clocks = <0x02 0x1bc>; + #clock-cells = <0x00>; + #power-domain-cells = <0x01>; + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c0910 0x00 0x10>; + phandle = <0x202>; }; - pcfg-pull-none-drv-level-7 { - drive-strength = <0x07>; - bias-disable; - phandle = <0x451>; + pclk_vo0_grf@fd7c08dc { + clock-names = "link"; + clocks = <0x04>; + #clock-cells = <0x00>; + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c08dc 0x00 0x04>; + phandle = <0x72>; }; - mipi { - - mipi-te1 { - rockchip,pins = <0x03 0x13 0x02 0x198>; - phandle = <0x39f>; - }; - - mipim1-camera2-clk { - rockchip,pins = <0x03 0x07 0x04 0x198>; - phandle = <0x39b>; - }; - - mipim0-camera0-clk { - rockchip,pins = <0x04 0x09 0x01 0x198>; - phandle = <0x395>; - }; - - mipim0-camera4-clk { - rockchip,pins = <0x01 0x1f 0x02 0x198>; - phandle = <0x399>; - }; - - mipim1-camera3-clk { - rockchip,pins = <0x03 0x08 0x04 0x198>; - phandle = <0x39c>; - }; - - mipim0-camera1-clk { - rockchip,pins = <0x01 0x0e 0x02 0x198>; - phandle = <0x396>; - }; - - mipim1-camera0-clk { - rockchip,pins = <0x03 0x05 0x04 0x198>; - phandle = <0x39a>; - }; - - mipim1-camera4-clk { - rockchip,pins = <0x03 0x09 0x04 0x198>; - phandle = <0x39d>; - }; - - mipim0-camera2-clk { - rockchip,pins = <0x01 0x0f 0x02 0x198>; - phandle = <0x397>; - }; - - mipi-te0 { - rockchip,pins = <0x03 0x12 0x02 0x198>; - phandle = <0x39e>; - }; + aclk_jpeg_decoder_pre@fd7c08b0 { + clock-names = "link"; + clocks = <0x02 0x1bc>; + #clock-cells = <0x00>; + #power-domain-cells = <0x01>; + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c08b0 0x00 0x10>; + phandle = <0x1fc>; + }; - mipim1-camera1-clk { - rockchip,pins = <0x03 0x06 0x04 0x198>; - phandle = <0x180>; - }; + aclk_hdcp1_pre@fd7c08ec { + clock-names = "link"; + clocks = <0x02 0x263>; + #clock-cells = <0x00>; + #power-domain-cells = <0x01>; + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c08ec 0x00 0x10>; + phandle = <0x200>; + }; - mipim0-camera3-clk { - rockchip,pins = <0x01 0x1e 0x02 0x198>; - phandle = <0x398>; - }; + mclkin-i2s1 { + clock-output-names = "i2s1_mclkin"; + #clock-cells = <0x00>; + clock-frequency = <0x00>; + compatible = "fixed-clock"; + phandle = <0x205>; }; - pwm14 { + hclk_vo1@fd7c08ec { + clock-names = "link"; + clocks = <0x02 0x264>; + #clock-cells = <0x00>; + #power-domain-cells = <0x01>; + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c08ec 0x00 0x10>; + phandle = <0x05>; + }; - pwm14m2-pins { - rockchip,pins = <0x01 0x1e 0x0b 0x198>; - phandle = <0x3e1>; - }; + mclkout-i2s3@fd58c318 { + rockchip,clk-ignore-unused; + clock-output-names = "i2s3_mclkout_to_io"; + clocks = <0x02 0x2e>; + rockchip,bit-set-to-disable; + #clock-cells = <0x00>; + compatible = "rockchip,clk-out"; + reg = <0x00 0xfd58c318 0x00 0x04>; + phandle = <0x20b>; + rockchip,bit-shift = <0x07>; + }; - pwm14m1-pins { - rockchip,pins = <0x04 0x0a 0x0b 0x198>; - phandle = <0x3e0>; - }; + aclk_rkvdec0_pre@fd7c08a0 { + clock-names = "link"; + clocks = <0x02 0x1bc>; + #clock-cells = <0x00>; + #power-domain-cells = <0x01>; + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c08a0 0x00 0x10>; + phandle = <0x1f8>; + }; - pwm14m0-pins { - rockchip,pins = <0x03 0x12 0x0b 0x198>; - phandle = <0x173>; - }; + aclk_isp1_pre@fd7c0868 { + clock-names = "link"; + clocks = <0x02 0x1e0>; + #clock-cells = <0x00>; + #power-domain-cells = <0x01>; + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c0868 0x00 0x10>; + phandle = <0x1f7>; }; - pcfg-pull-none-drv-level-4-smt { - drive-strength = <0x04>; - bias-disable; - input-schmitt-enable; - phandle = <0x303>; + pclk_vo1_grf@fd7c08ec { + clock-names = "link"; + clocks = <0x05>; + #clock-cells = <0x00>; + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c08ec 0x00 0x04>; + phandle = <0x73>; }; - headphone { + aclk_rkvdec1_pre@fd7c08a4 { + clock-names = "link"; + clocks = <0x02 0x1bc>; + #clock-cells = <0x00>; + #power-domain-cells = <0x01>; + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c08a4 0x00 0x10>; + phandle = <0x1fa>; + }; - hp-det { - rockchip,pins = <0x02 0x13 0x00 0x198>; - phandle = <0x1dc>; - }; + hclk_rkvdec0_pre@fd7c08a0 { + clock-names = "link"; + clocks = <0x02 0x1be>; + #clock-cells = <0x00>; + #power-domain-cells = <0x01>; + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c08a0 0x00 0x10>; + phandle = <0x1f9>; }; - npu { + hclk_sdio_pre@fd7c092c { + clock-names = "link"; + clocks = <0x03>; + #clock-cells = <0x00>; + #power-domain-cells = <0x01>; + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c092c 0x00 0x10>; + phandle = <0x203>; + }; - npu-pins { - rockchip,pins = <0x00 0x16 0x02 0x198>; - phandle = <0x3a0>; - }; + hclk_rkvdec1_pre@fd7c08a4 { + clock-names = "link"; + clocks = <0x02 0x1be>; + #clock-cells = <0x00>; + #power-domain-cells = <0x01>; + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c08a4 0x00 0x10>; + phandle = <0x1fb>; }; - wireless-bluetooth { + hclk_isp1_pre@fd7c0868 { + clock-names = "link"; + clocks = <0x02 0x1e1>; + #clock-cells = <0x00>; + #power-domain-cells = <0x01>; + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c0868 0x00 0x10>; + phandle = <0x1f6>; + }; - bt-reset-gpio { - rockchip,pins = <0x00 0x16 0x00 0x198>; - phandle = <0x1e6>; - }; - - bt-irq-gpio { - rockchip,pins = <0x00 0x00 0x00 0x198>; - phandle = <0x1e8>; - }; + mclkout-i2s0@fd58c318 { + rockchip,clk-ignore-unused; + clock-output-names = "i2s0_mclkout_to_io"; + clocks = <0x02 0x39>; + rockchip,bit-set-to-disable; + #clock-cells = <0x00>; + compatible = "rockchip,clk-out"; + reg = <0x00 0xfd58c318 0x00 0x04>; + phandle = <0x179>; + rockchip,bit-shift = <0x00>; + }; - bt-wake-gpio { - rockchip,pins = <0x00 0x15 0x00 0x198>; - phandle = <0x1e7>; - }; + mclkin-i2s2 { + clock-output-names = "i2s2_mclkin"; + #clock-cells = <0x00>; + clock-frequency = <0x00>; + compatible = "fixed-clock"; + phandle = <0x206>; + }; - uart6-gpios { - rockchip,pins = <0x01 0x02 0x00 0x198>; - phandle = <0x1e9>; - }; + aclk_rkvenc1_pre@fd7c08c0 { + clock-names = "link"; + clocks = <0x02 0x1c5>; + #clock-cells = <0x00>; + #power-domain-cells = <0x01>; + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c08c0 0x00 0x10>; + phandle = <0x1fd>; }; + }; - pcie30x1 { + clock-controller@fd7c0000 { + #reset-cells = <0x01>; + assigned-clocks = <0x02 0x09 0x02 0x05 0x02 0x08 0x02 0x07 0x02 0xd8 0x02 0xda 0x02 0xd9 0x02 0x10e 0x02 0x10f 0x02 0x110 0x02 0x299 0x02 0x29a 0x02 0x7b 0x02 0xec 0x02 0x114 0x02 0x208 0x02 0x20e 0x02 0x21f 0x02 0x77>; + assigned-clock-rates = <0x4190ab00 0x2ee00000 0x32a9f880 0x46cf7100 0x29d7ab80 0x17d78400 0x1dcd6500 0x2cb41780 0x5f5e100 0x17d78400 0x5f5e100 0xbebc200 0x165a0bc0 0x8f0d180 0xbebc200 0xb71b00 0xb71b00 0x5e69ec0 0x1312d00>; + #clock-cells = <0x01>; + compatible = "rockchip,rk3588-cru"; + rockchip,grf = <0x76>; + reg = <0x00 0xfd7c0000 0x00 0x5c000>; + phandle = <0x02>; + }; - pcie30x1-1-button-rstn { - rockchip,pins = <0x04 0x0a 0x04 0x198>; - phandle = <0x3a9>; - }; + qos@fdf81000 { + compatible = "syscon"; + reg = <0x00 0xfdf81000 0x00 0x20>; + phandle = <0xa0>; + }; - pcie30x1m1-pins { - rockchip,pins = <0x04 0x03 0x04 0x198 0x04 0x05 0x04 0x198 0x04 0x04 0x04 0x198 0x04 0x00 0x04 0x198 0x04 0x02 0x04 0x198 0x04 0x01 0x04 0x198>; - phandle = <0x3a6>; - }; + qos@fdf36000 { + compatible = "syscon"; + reg = <0x00 0xfdf36000 0x00 0x20>; + phandle = <0xaa>; + }; - pcie30x1m0-pins { - rockchip,pins = <0x00 0x10 0x0c 0x198 0x00 0x15 0x0c 0x198 0x00 0x14 0x0c 0x198 0x00 0x0d 0x0c 0x198 0x00 0x0f 0x0c 0x198 0x00 0x0e 0x0c 0x198>; - phandle = <0x3a5>; - }; + i2s@fe4a0000 { + power-domains = <0x60 0x26>; + pinctrl-names = "default\0idle\0clk"; + pinctrl-2 = <0x132 0x133>; + pinctrl-0 = <0x12f 0x130>; + clock-names = "i2s_clk\0i2s_hclk"; + assigned-clocks = <0x02 0x2a>; + assigned-clock-parents = <0x02 0x05>; + interrupts = <0x00 0xb7 0x04>; + clocks = <0x02 0x2d 0x02 0x23>; + dma-names = "tx\0rx"; + #sound-dai-cells = <0x00>; + compatible = "rockchip,rk3588-i2s\0rockchip,rk3066-i2s"; + pinctrl-1 = <0x131>; + status = "disabled"; + reg = <0x00 0xfe4a0000 0x00 0x1000>; + phandle = <0x299>; + dmas = <0xf1 0x02 0xf1 0x03>; + rockchip,clk-trcm = <0x01>; + }; - pcie30x1-0-button-rstn { - rockchip,pins = <0x04 0x09 0x04 0x198>; - phandle = <0x3a8>; - }; + syscon@fd5c4000 { + compatible = "rockchip,pipe-phy-grf\0syscon"; + reg = <0x00 0xfd5c4000 0x00 0x100>; + phandle = <0x195>; + }; - pcie30x1m2-pins { - rockchip,pins = <0x01 0x0d 0x04 0x198 0x01 0x0c 0x04 0x198 0x01 0x0b 0x04 0x198 0x01 0x00 0x04 0x198 0x01 0x07 0x04 0x198 0x01 0x01 0x04 0x198>; - phandle = <0x3a7>; - }; + sram@ff001000 { + #address-cells = <0x01>; + #size-cells = <0x01>; + compatible = "mmio-sram"; + ranges = <0x00 0x00 0xff001000 0xef000>; + reg = <0x00 0xff001000 0x00 0xef000>; + phandle = <0x2eb>; + + rkvdec-sram@0 { + reg = <0x00 0x78000>; + phandle = <0xcb>; }; - uart8 { + rkvdec-sram@78000 { + reg = <0x78000 0x77000>; + phandle = <0xcd>; + }; + }; - uart8m0-rtsn { - rockchip,pins = <0x04 0x0a 0x0a 0x198>; - phandle = <0x443>; - }; + pwm@febd0010 { + pinctrl-names = "active"; + pinctrl-0 = <0x16a>; + clock-names = "pwm\0pclk"; + interrupts = <0x00 0x15a 0x04>; + clocks = <0x02 0x54 0x02 0x53>; + #pwm-cells = <0x03>; + compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; + status = "okay"; + reg = <0x00 0xfebd0010 0x00 0x10>; + phandle = <0x1ed>; + }; - uart8m1-ctsn { - rockchip,pins = <0x03 0x05 0x0a 0x198>; - phandle = <0x444>; - }; + rkisp1-vir3 { + rockchip,hw = <0x5a>; + compatible = "rockchip,rkisp-vir"; + status = "disabled"; + phandle = <0x242>; + }; - uart8m0-ctsn { - rockchip,pins = <0x04 0x0b 0x0a 0x198>; - phandle = <0x442>; - }; + pcie-clk2 { + regulator-boot-on; + regulator-always-on; + regulator-name = "pcie_clk2"; + compatible = "regulator-fixed"; + status = "okay"; + phandle = <0x495>; + gpios = <0x181 0x16 0x01>; + }; - uart8m1-xfer { - rockchip,pins = <0x03 0x03 0x0a 0x19e 0x03 0x02 0x0a 0x19e>; - phandle = <0x167>; - }; + serial@feb40000 { + reg-io-width = <0x04>; + pinctrl-names = "default"; + pinctrl-0 = <0x160>; + clock-names = "baudclk\0apb_pclk"; + interrupts = <0x00 0x14c 0x04>; + clocks = <0x02 0xb7 0x02 0xab>; + compatible = "rockchip,rk3588-uart\0snps,dw-apb-uart"; + status = "okay"; + reg = <0x00 0xfeb40000 0x00 0x100>; + phandle = <0x2c9>; + dmas = <0x7c 0x08 0x7c 0x09>; + reg-shift = <0x02>; + }; - uart8m0-xfer { - rockchip,pins = <0x04 0x09 0x0a 0x19e 0x04 0x08 0x0a 0x19e>; - phandle = <0x441>; - }; + pinctrl { + #address-cells = <0x02>; + #size-cells = <0x02>; + compatible = "rockchip,rk3588-pinctrl"; + ranges; + rockchip,grf = <0x196>; + phandle = <0x197>; - uart8-xfer { - rockchip,pins = <0x04 0x09 0x0a 0x19e>; - phandle = <0x446>; - }; + eth0 { - uart8m1-rtsn { - rockchip,pins = <0x03 0x04 0x0a 0x198>; - phandle = <0x445>; + eth0-pins { + rockchip,pins = <0x02 0x13 0x01 0x198>; + phandle = <0x46c>; }; }; - spi2 { + i2c3 { - spi2m0-cs1 { - rockchip,pins = <0x01 0x08 0x08 0x19a>; - phandle = <0x404>; + i2c3m3-xfer { + rockchip,pins = <0x02 0x0a 0x09 0x19d 0x02 0x0b 0x09 0x19d>; + phandle = <0x361>; }; - spi2m2-cs0 { - rockchip,pins = <0x00 0x09 0x01 0x19f>; - phandle = <0x154>; + i2c3m2-xfer { + rockchip,pins = <0x04 0x04 0x09 0x19d 0x04 0x05 0x09 0x19d>; + phandle = <0x14a>; }; - spi2m1-cs1 { - rockchip,pins = <0x04 0x08 0x08 0x19a>; - phandle = <0x407>; + i2c3m1-xfer { + rockchip,pins = <0x03 0x0f 0x09 0x19d 0x03 0x10 0x09 0x19d>; + phandle = <0x35f>; }; - spi2m2-pins { - rockchip,pins = <0x00 0x05 0x01 0x19f 0x00 0x0b 0x01 0x19f 0x00 0x06 0x01 0x19f>; - phandle = <0x155>; + i2c3m0-xfer { + rockchip,pins = <0x01 0x11 0x09 0x19d 0x01 0x10 0x09 0x19d>; + phandle = <0x35e>; }; - spi2m1-pins { - rockchip,pins = <0x04 0x06 0x08 0x19a 0x04 0x04 0x08 0x19a 0x04 0x05 0x08 0x19a>; - phandle = <0x405>; + i2c3m4-xfer { + rockchip,pins = <0x04 0x18 0x09 0x19d 0x04 0x19 0x09 0x19d>; + phandle = <0x360>; }; + }; - spi2m2-cs1 { - rockchip,pins = <0x00 0x08 0x01 0x19f>; - phandle = <0x408>; - }; + pwm9 { - spi2m0-cs0 { - rockchip,pins = <0x01 0x07 0x08 0x19a>; - phandle = <0x403>; + pwm9m2-pins { + rockchip,pins = <0x03 0x19 0x0b 0x198>; + phandle = <0x3d7>; }; - spi2m0-pins { - rockchip,pins = <0x01 0x06 0x08 0x19a 0x01 0x04 0x08 0x19a 0x01 0x05 0x08 0x19a>; - phandle = <0x402>; + pwm9m1-pins { + rockchip,pins = <0x04 0x19 0x0b 0x198>; + phandle = <0x3d6>; }; - spi2m1-cs0 { + pwm9m0-pins { + rockchip,pins = <0x03 0x08 0x0b 0x198>; + phandle = <0x16e>; + }; + }; + + pcfg-pull-none-drv-level-7 { + drive-strength = <0x07>; + bias-disable; + phandle = <0x451>; + }; + + mipi { + + mipi-te1 { + rockchip,pins = <0x03 0x13 0x02 0x198>; + phandle = <0x39f>; + }; + + mipim1-camera2-clk { + rockchip,pins = <0x03 0x07 0x04 0x198>; + phandle = <0x39b>; + }; + + mipim0-camera0-clk { + rockchip,pins = <0x04 0x09 0x01 0x198>; + phandle = <0x395>; + }; + + mipim0-camera4-clk { + rockchip,pins = <0x01 0x1f 0x02 0x198>; + phandle = <0x399>; + }; + + mipim1-camera3-clk { + rockchip,pins = <0x03 0x08 0x04 0x198>; + phandle = <0x39c>; + }; + + mipim0-camera1-clk { + rockchip,pins = <0x01 0x0e 0x02 0x198>; + phandle = <0x396>; + }; + + mipim1-camera0-clk { + rockchip,pins = <0x03 0x05 0x04 0x198>; + phandle = <0x39a>; + }; + + mipim1-camera4-clk { + rockchip,pins = <0x03 0x09 0x04 0x198>; + phandle = <0x39d>; + }; + + mipim0-camera2-clk { + rockchip,pins = <0x01 0x0f 0x02 0x198>; + phandle = <0x397>; + }; + + mipi-te0 { + rockchip,pins = <0x03 0x12 0x02 0x198>; + phandle = <0x39e>; + }; + + mipim1-camera1-clk { + rockchip,pins = <0x03 0x06 0x04 0x198>; + phandle = <0x180>; + }; + + mipim0-camera3-clk { + rockchip,pins = <0x01 0x1e 0x02 0x198>; + phandle = <0x398>; + }; + }; + + pwm14 { + + pwm14m2-pins { + rockchip,pins = <0x01 0x1e 0x0b 0x198>; + phandle = <0x3e1>; + }; + + pwm14m1-pins { + rockchip,pins = <0x04 0x0a 0x0b 0x198>; + phandle = <0x3e0>; + }; + + pwm14m0-pins { + rockchip,pins = <0x03 0x12 0x0b 0x198>; + phandle = <0x173>; + }; + }; + + pcfg-pull-none-drv-level-4-smt { + drive-strength = <0x04>; + bias-disable; + input-schmitt-enable; + phandle = <0x303>; + }; + + headphone { + + hp-det { + rockchip,pins = <0x02 0x13 0x00 0x198>; + phandle = <0x1dc>; + }; + }; + + npu { + + npu-pins { + rockchip,pins = <0x00 0x16 0x02 0x198>; + phandle = <0x3a0>; + }; + }; + + wireless-bluetooth { + + bt-reset-gpio { + rockchip,pins = <0x00 0x16 0x00 0x198>; + phandle = <0x1e6>; + }; + + bt-irq-gpio { + rockchip,pins = <0x00 0x00 0x00 0x198>; + phandle = <0x1e8>; + }; + + bt-wake-gpio { + rockchip,pins = <0x00 0x15 0x00 0x198>; + phandle = <0x1e7>; + }; + + uart6-gpios { + rockchip,pins = <0x01 0x02 0x00 0x198>; + phandle = <0x1e9>; + }; + }; + + pcie30x1 { + + pcie30x1-1-button-rstn { + rockchip,pins = <0x04 0x0a 0x04 0x198>; + phandle = <0x3a9>; + }; + + pcie30x1m1-pins { + rockchip,pins = <0x04 0x03 0x04 0x198 0x04 0x05 0x04 0x198 0x04 0x04 0x04 0x198 0x04 0x00 0x04 0x198 0x04 0x02 0x04 0x198 0x04 0x01 0x04 0x198>; + phandle = <0x3a6>; + }; + + pcie30x1m0-pins { + rockchip,pins = <0x00 0x10 0x0c 0x198 0x00 0x15 0x0c 0x198 0x00 0x14 0x0c 0x198 0x00 0x0d 0x0c 0x198 0x00 0x0f 0x0c 0x198 0x00 0x0e 0x0c 0x198>; + phandle = <0x3a5>; + }; + + pcie30x1-0-button-rstn { + rockchip,pins = <0x04 0x09 0x04 0x198>; + phandle = <0x3a8>; + }; + + pcie30x1m2-pins { + rockchip,pins = <0x01 0x0d 0x04 0x198 0x01 0x0c 0x04 0x198 0x01 0x0b 0x04 0x198 0x01 0x00 0x04 0x198 0x01 0x07 0x04 0x198 0x01 0x01 0x04 0x198>; + phandle = <0x3a7>; + }; + }; + + uart8 { + + uart8m0-rtsn { + rockchip,pins = <0x04 0x0a 0x0a 0x198>; + phandle = <0x443>; + }; + + uart8m1-ctsn { + rockchip,pins = <0x03 0x05 0x0a 0x198>; + phandle = <0x444>; + }; + + uart8m0-ctsn { + rockchip,pins = <0x04 0x0b 0x0a 0x198>; + phandle = <0x442>; + }; + + uart8m1-xfer { + rockchip,pins = <0x03 0x03 0x0a 0x19e 0x03 0x02 0x0a 0x19e>; + phandle = <0x167>; + }; + + uart8m0-xfer { + rockchip,pins = <0x04 0x09 0x0a 0x19e 0x04 0x08 0x0a 0x19e>; + phandle = <0x441>; + }; + + uart8-xfer { + rockchip,pins = <0x04 0x09 0x0a 0x19e>; + phandle = <0x446>; + }; + + uart8m1-rtsn { + rockchip,pins = <0x03 0x04 0x0a 0x198>; + phandle = <0x445>; + }; + }; + + spi2 { + + spi2m0-cs1 { + rockchip,pins = <0x01 0x08 0x08 0x19a>; + phandle = <0x404>; + }; + + spi2m2-cs0 { + rockchip,pins = <0x00 0x09 0x01 0x19f>; + phandle = <0x154>; + }; + + spi2m1-cs1 { + rockchip,pins = <0x04 0x08 0x08 0x19a>; + phandle = <0x407>; + }; + + spi2m2-pins { + rockchip,pins = <0x00 0x05 0x01 0x19f 0x00 0x0b 0x01 0x19f 0x00 0x06 0x01 0x19f>; + phandle = <0x155>; + }; + + spi2m1-pins { + rockchip,pins = <0x04 0x06 0x08 0x19a 0x04 0x04 0x08 0x19a 0x04 0x05 0x08 0x19a>; + phandle = <0x405>; + }; + + spi2m2-cs1 { + rockchip,pins = <0x00 0x08 0x01 0x19f>; + phandle = <0x408>; + }; + + spi2m0-cs0 { + rockchip,pins = <0x01 0x07 0x08 0x19a>; + phandle = <0x403>; + }; + + spi2m0-pins { + rockchip,pins = <0x01 0x06 0x08 0x19a 0x01 0x04 0x08 0x19a 0x01 0x05 0x08 0x19a>; + phandle = <0x402>; + }; + + spi2m1-cs0 { rockchip,pins = <0x04 0x07 0x08 0x19a>; phandle = <0x406>; }; @@ -6033,346 +6373,6 @@ phandle = <0x2d5>; }; - clocks { - #address-cells = <0x02>; - #size-cells = <0x02>; - compatible = "simple-bus"; - ranges; - - hclk_nvm@fd7c087c { - clock-names = "link"; - clocks = <0x02 0x141>; - #clock-cells = <0x00>; - #power-domain-cells = <0x01>; - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c087c 0x00 0x10>; - phandle = <0x03>; - }; - - mclkin-i2s0 { - clock-output-names = "i2s0_mclkin"; - #clock-cells = <0x00>; - clock-frequency = <0x00>; - compatible = "fixed-clock"; - phandle = <0x204>; - }; - - hclk_rkvenc1_pre@fd7c08c0 { - clock-names = "link"; - clocks = <0x02 0x1c4>; - #clock-cells = <0x00>; - #power-domain-cells = <0x01>; - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c08c0 0x00 0x10>; - phandle = <0x1fe>; - }; - - mclkout-i2s1@fd58c318 { - rockchip,clk-ignore-unused; - clock-output-names = "i2s1_mclkout_to_io"; - clocks = <0x02 0x291>; - rockchip,bit-set-to-disable; - #clock-cells = <0x00>; - compatible = "rockchip,clk-out"; - reg = <0x00 0xfd58c318 0x00 0x04>; - phandle = <0x208>; - rockchip,bit-shift = <0x01>; - }; - - mclkout-i2s1@fd58a000 { - rockchip,clk-ignore-unused; - clock-output-names = "i2s1m1_mclkout_to_io"; - clocks = <0x02 0x291>; - #clock-cells = <0x00>; - compatible = "rockchip,clk-out"; - reg = <0x00 0xfd58a000 0x00 0x04>; - phandle = <0x209>; - rockchip,bit-shift = <0x06>; - }; - - aclk_hdcp0_pre@fd7c08dc { - clock-names = "link"; - clocks = <0x02 0x26c>; - #clock-cells = <0x00>; - #power-domain-cells = <0x01>; - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c08dc 0x00 0x10>; - phandle = <0x1ff>; - }; - - xin32k { - clock-output-names = "xin32k"; - #clock-cells = <0x00>; - clock-frequency = <0x8000>; - compatible = "fixed-clock"; - phandle = <0x1f2>; - }; - - aclk_usb@fd7c08a8 { - clock-names = "link"; - clocks = <0x02 0x263>; - #clock-cells = <0x00>; - #power-domain-cells = <0x01>; - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c08a8 0x00 0x10>; - phandle = <0x6a>; - }; - - hclk_usb@fd7c08a8 { - clock-names = "link"; - clocks = <0x02 0x264>; - #clock-cells = <0x00>; - #power-domain-cells = <0x01>; - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c08a8 0x00 0x10>; - phandle = <0x1f5>; - }; - - hclk_vo0@fd7c08dc { - clock-names = "link"; - clocks = <0x02 0x26d>; - #clock-cells = <0x00>; - #power-domain-cells = <0x01>; - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c08dc 0x00 0x10>; - phandle = <0x04>; - }; - - pclk_av1_pre@fd7c0910 { - clock-names = "link"; - clocks = <0x02 0x1be>; - #clock-cells = <0x00>; - #power-domain-cells = <0x01>; - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c0910 0x00 0x10>; - phandle = <0x201>; - }; - - mclkout-i2s2@fd58c318 { - rockchip,clk-ignore-unused; - clock-output-names = "i2s2_mclkout_to_io"; - clocks = <0x02 0x28>; - rockchip,bit-set-to-disable; - #clock-cells = <0x00>; - compatible = "rockchip,clk-out"; - reg = <0x00 0xfd58c318 0x00 0x04>; - phandle = <0x20a>; - rockchip,bit-shift = <0x02>; - }; - - aclk_vdpu_low_pre@fd7c08b0 { - clock-names = "link"; - clocks = <0x02 0x1bc>; - #clock-cells = <0x00>; - #power-domain-cells = <0x01>; - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c08b0 0x00 0x10>; - phandle = <0x1f4>; - }; - - mclkin-i2s3 { - clock-output-names = "i2s3_mclkin"; - #clock-cells = <0x00>; - clock-frequency = <0x00>; - compatible = "fixed-clock"; - phandle = <0x207>; - }; - - spll { - clock-output-names = "spll"; - #clock-cells = <0x00>; - clock-frequency = <0x29d7ab80>; - compatible = "fixed-clock"; - phandle = <0x1f1>; - }; - - xin24m { - clock-output-names = "xin24m"; - #clock-cells = <0x00>; - clock-frequency = <0x16e3600>; - compatible = "fixed-clock"; - phandle = <0x1f3>; - }; - - aclk_av1_pre@fd7c0910 { - clock-names = "link"; - clocks = <0x02 0x1bc>; - #clock-cells = <0x00>; - #power-domain-cells = <0x01>; - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c0910 0x00 0x10>; - phandle = <0x202>; - }; - - pclk_vo0_grf@fd7c08dc { - clock-names = "link"; - clocks = <0x04>; - #clock-cells = <0x00>; - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c08dc 0x00 0x04>; - phandle = <0x72>; - }; - - aclk_jpeg_decoder_pre@fd7c08b0 { - clock-names = "link"; - clocks = <0x02 0x1bc>; - #clock-cells = <0x00>; - #power-domain-cells = <0x01>; - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c08b0 0x00 0x10>; - phandle = <0x1fc>; - }; - - aclk_hdcp1_pre@fd7c08ec { - clock-names = "link"; - clocks = <0x02 0x263>; - #clock-cells = <0x00>; - #power-domain-cells = <0x01>; - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c08ec 0x00 0x10>; - phandle = <0x200>; - }; - - mclkin-i2s1 { - clock-output-names = "i2s1_mclkin"; - #clock-cells = <0x00>; - clock-frequency = <0x00>; - compatible = "fixed-clock"; - phandle = <0x205>; - }; - - hclk_vo1@fd7c08ec { - clock-names = "link"; - clocks = <0x02 0x264>; - #clock-cells = <0x00>; - #power-domain-cells = <0x01>; - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c08ec 0x00 0x10>; - phandle = <0x05>; - }; - - mclkout-i2s3@fd58c318 { - rockchip,clk-ignore-unused; - clock-output-names = "i2s3_mclkout_to_io"; - clocks = <0x02 0x2e>; - rockchip,bit-set-to-disable; - #clock-cells = <0x00>; - compatible = "rockchip,clk-out"; - reg = <0x00 0xfd58c318 0x00 0x04>; - phandle = <0x20b>; - rockchip,bit-shift = <0x07>; - }; - - aclk_rkvdec0_pre@fd7c08a0 { - clock-names = "link"; - clocks = <0x02 0x1bc>; - #clock-cells = <0x00>; - #power-domain-cells = <0x01>; - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c08a0 0x00 0x10>; - phandle = <0x1f8>; - }; - - aclk_isp1_pre@fd7c0868 { - clock-names = "link"; - clocks = <0x02 0x1e0>; - #clock-cells = <0x00>; - #power-domain-cells = <0x01>; - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c0868 0x00 0x10>; - phandle = <0x1f7>; - }; - - pclk_vo1_grf@fd7c08ec { - clock-names = "link"; - clocks = <0x05>; - #clock-cells = <0x00>; - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c08ec 0x00 0x04>; - phandle = <0x73>; - }; - - aclk_rkvdec1_pre@fd7c08a4 { - clock-names = "link"; - clocks = <0x02 0x1bc>; - #clock-cells = <0x00>; - #power-domain-cells = <0x01>; - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c08a4 0x00 0x10>; - phandle = <0x1fa>; - }; - - hclk_rkvdec0_pre@fd7c08a0 { - clock-names = "link"; - clocks = <0x02 0x1be>; - #clock-cells = <0x00>; - #power-domain-cells = <0x01>; - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c08a0 0x00 0x10>; - phandle = <0x1f9>; - }; - - hclk_sdio_pre@fd7c092c { - clock-names = "link"; - clocks = <0x03>; - #clock-cells = <0x00>; - #power-domain-cells = <0x01>; - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c092c 0x00 0x10>; - phandle = <0x203>; - }; - - hclk_rkvdec1_pre@fd7c08a4 { - clock-names = "link"; - clocks = <0x02 0x1be>; - #clock-cells = <0x00>; - #power-domain-cells = <0x01>; - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c08a4 0x00 0x10>; - phandle = <0x1fb>; - }; - - hclk_isp1_pre@fd7c0868 { - clock-names = "link"; - clocks = <0x02 0x1e1>; - #clock-cells = <0x00>; - #power-domain-cells = <0x01>; - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c0868 0x00 0x10>; - phandle = <0x1f6>; - }; - - mclkout-i2s0@fd58c318 { - rockchip,clk-ignore-unused; - clock-output-names = "i2s0_mclkout_to_io"; - clocks = <0x02 0x39>; - rockchip,bit-set-to-disable; - #clock-cells = <0x00>; - compatible = "rockchip,clk-out"; - reg = <0x00 0xfd58c318 0x00 0x04>; - phandle = <0x179>; - rockchip,bit-shift = <0x00>; - }; - - mclkin-i2s2 { - clock-output-names = "i2s2_mclkin"; - #clock-cells = <0x00>; - clock-frequency = <0x00>; - compatible = "fixed-clock"; - phandle = <0x206>; - }; - - aclk_rkvenc1_pre@fd7c08c0 { - clock-names = "link"; - clocks = <0x02 0x1c5>; - #clock-cells = <0x00>; - #power-domain-cells = <0x01>; - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c08c0 0x00 0x10>; - phandle = <0x1fd>; - }; - }; - usb@fc8c0000 { power-domains = <0x60 0x1f>; phy-names = "usb2-phy"; From ed4a058f092e31c8638a98f4035c30fe05a8835b Mon Sep 17 00:00:00 2001 From: Gallium70 <52118815+Gallium70@users.noreply.github.com> Date: Tue, 17 Jun 2025 14:05:22 +0800 Subject: [PATCH 055/219] [wip] Use gicv3 tester app and DTB for ArceOS VM2 --- Cargo.toml | 6 +++--- configs/vms/arceos-rk3588-aarch64-vm2.toml | 13 ++++++------- 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 202baf5c..b5607d6f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -33,7 +33,7 @@ axstd = { git = "https://github.com/arceos-hypervisor/arceos.git", branch = "vmm "hv", "multitask", "smp", - "gicv3" + "gicv3", # "sched_rr" ] } @@ -88,5 +88,5 @@ path = "crates/axdevice_crates/axdevice_base" [patch."https://github.com/arceos-hypervisor/arm_gicv2.git".arm_gicv2] path = "crates/arm_gicv2" [patch.crates-io] -page_table_multiarch = {path = "crates/page_table_multiarch/page_table_multiarch"} -page_table_entry = {path = "crates/page_table_multiarch/page_table_entry"} +page_table_multiarch = { path = "crates/page_table_multiarch/page_table_multiarch" } +page_table_entry = { path = "crates/page_table_multiarch/page_table_entry" } diff --git a/configs/vms/arceos-rk3588-aarch64-vm2.toml b/configs/vms/arceos-rk3588-aarch64-vm2.toml index d53ce9bf..d7044a93 100644 --- a/configs/vms/arceos-rk3588-aarch64-vm2.toml +++ b/configs/vms/arceos-rk3588-aarch64-vm2.toml @@ -20,19 +20,18 @@ phys_cpu_sets = [4] entry_point = 0x1_0048_0000 # The load address of the kernel image. kernel_load_addr = 0x1_0048_0000 +# The load address of the device tree blob (DTB). +dtb_load_addr = 0x1_1000_0000 # The location of image: "memory" | "fs". # Load from memory image_location = "memory" # The file path of the kernel image. -kernel_path = "helloworld_aarch64-rk3588j.bin" -## The file path of the device tree blob (DTB). -# dtb_path = "" +kernel_path = "gicv3_tester_aarch64-rk3588j-guest.bin" +# The file path of the device tree blob (DTB). +dtb_path = "aio-rk3588-jd4-vm2.dtb" # Memory regions with format (`base_paddr`, `size`, `flags`, `map_type`). # For `map_type`, 0 means `MAP_ALLOC`, 1 means `MAP_IDENTICAL`. -memory_regions = [ - [0x1_0000_0000, 0x1000_0000, 0x7, 1], # ram 256M MAP_IDENTICAL - # [0x940_0000, 0xe6c0_0000, 0x7, 1], # ram 256M MAP_IDENTICAL -] +memory_regions = [] # # Device specifications From 21783c7a6944a4f226e86a97ac24066ec8c799e5 Mon Sep 17 00:00:00 2001 From: Gallium70 <52118815+Gallium70@users.noreply.github.com> Date: Wed, 25 Jun 2025 12:03:45 +0800 Subject: [PATCH 056/219] [feat/rk3588] Remove CMA ranges for PCIe, USB and SATA driver to work properly --- configs/vms/aio-rk3588-jd4-vm1.dts | 1 - 1 file changed, 1 deletion(-) diff --git a/configs/vms/aio-rk3588-jd4-vm1.dts b/configs/vms/aio-rk3588-jd4-vm1.dts index 9bea6bd9..a1b14c66 100644 --- a/configs/vms/aio-rk3588-jd4-vm1.dts +++ b/configs/vms/aio-rk3588-jd4-vm1.dts @@ -11699,7 +11699,6 @@ linux,cma-default; compatible = "shared-dma-pool"; size = <0x00 0x800000>; - reg = <0x00 0x10000000 0x00 0x10000000>; reusable; }; From 3bc6e215c624a3329f064826e20d6ef3c9b75de1 Mon Sep 17 00:00:00 2001 From: Gallium70 <52118815+Gallium70@users.noreply.github.com> Date: Wed, 25 Jun 2025 12:05:07 +0800 Subject: [PATCH 057/219] [feat/rk3588] Linux VM1 use PREEMPT_RT kernel --- configs/vms/linux-rk3588-aarch64-smp-vm1.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/configs/vms/linux-rk3588-aarch64-smp-vm1.toml b/configs/vms/linux-rk3588-aarch64-smp-vm1.toml index a2edd1af..4bde427e 100644 --- a/configs/vms/linux-rk3588-aarch64-smp-vm1.toml +++ b/configs/vms/linux-rk3588-aarch64-smp-vm1.toml @@ -30,7 +30,7 @@ ramdisk_load_addr = 0x0a20_0000 # load from memory image_location = "memory" # The file path of the kernel image. -kernel_path = "Image.bin" +kernel_path = "Image-5.10.198-rt89-preempt.bin" # The file path of the device tree blob (DTB). dtb_path = "aio-rk3588-jd4-vm1.dtb" # The file path of the ramdisk image. @@ -72,5 +72,5 @@ emu_devices = [] # Name Base-Ipa Base-Pa Length Alloc-Irq. passthrough_devices = [ # ["uart@feb40000", 0xfeb4_0000, 0xfeb4_0000, 0x1000, 0x1], - # ["uart@feb50000", 0xfeb5_0000, 0xfeb4_0000, 0x1000, 0x1], + # ["uart@feb50000", 0xfeb5_0000, 0xfeb5_0000, 0x1000, 0x1], ] From 95d58f2b57c2b7e46aa26b76204505678d058baa Mon Sep 17 00:00:00 2001 From: Gallium70 <52118815+Gallium70@users.noreply.github.com> Date: Wed, 25 Jun 2025 12:30:01 +0800 Subject: [PATCH 058/219] [feat/rk3588] Linux VM2 SATA disk support - Passthrough SATA controller and PHY to VM2 DTS - Keep them in VM1 DTS then VM1 can reset and negotiate properly - Disable SATA drive in VM1's bootargs, so that it won't try accessing the drive and conflict with VM2. --- Boot-on-rk3588.md | 20 ++++- configs/vms/aio-rk3588-jd4-vm1.dts | 2 +- configs/vms/aio-rk3588-jd4-vm2.dts | 130 ++++++++++++++++++++++++++++- 3 files changed, 145 insertions(+), 7 deletions(-) diff --git a/Boot-on-rk3588.md b/Boot-on-rk3588.md index bcea1b34..d458d1ab 100644 --- a/Boot-on-rk3588.md +++ b/Boot-on-rk3588.md @@ -19,7 +19,19 @@ cat testfile.txt You should see `TFTP Server Test` on your screen. -## Setup an NFS Server for the rootfs of VM2 +## Setup rootfs for VM2 + +### SATA disk + +Burn the rootfs image to an **M.2 SATA** SSD with whatever tools you prefer (e.g. dd, rufus, Balena Etcher, or even a loop mount and rsync), and install it to the back of the board. Specify the proper partition identifier (e.g. `/dev/sda1`) in the DTS bootargs. + +The kernel need built with SCSI disk, libata and AHCI platform support, or the corresponding kernel modules need to be put into the initramfs image. The default config in the Firefly SDK builds them as kernel modules but are not included in the initramfs image, hence the kernel failed to recognize the disk and mount the root partition. + +### NFS-root (optional) + +This works when directly attached storage is not available for VM2. + +Setup an NFS server: ```bash sudo apt install nfs-kernel-server @@ -41,9 +53,9 @@ EOF sudo exportfs -ar ``` -## Compile device tree +Before compiling the DTS, edit the bootargs in `aio-rk3588-jd4-vm2.dts` and specify an NFS root as `root=/dev/nfs nfsroot=:` where `:` is your own NFS server IP and rootfs export path setup in the previous step. -Before compiling the DTS, edit the bootargs in `aio-rk3588-jd4-vm2.dts` and replace `:` with your own NFS server IP and rootfs export path setup in the previous step. +## Compile device tree ```bash dtc -o configs/vms/aio-rk3588-jd4-vm1.dtb -O dtb -I dts configs/vms/aio-rk3588-jd4-vm1.dts @@ -102,5 +114,5 @@ The VM1 output goes to the RS232 on the board (ttyS1 in Linux and serial@feb4000 ## Known Issues -* Resets of the ethernet in VM2 is not working, and reconfigure the NIC (e.g. with NetworkManager) may cause the VM2 to hang. Currently the initramfs will attempt to autoconfig the eth port then mount NFS as the rootfs. You may override the configuration with `ip=` kernel bootarg. +* Resets of the ethernet in VM2 is not working, and reconfigure the NIC (e.g. with NetworkManager) may cause the VM2 to hang. Currently the initramfs will attempt to autoconfig the eth port when NFS-root is used. You may override the configuration with `ip=` kernel bootarg. * Execute `reboot` in either VM would reset the whole board, which may be unexpected for the other VM. You may `shutdown` VM2 first, then do shutdown or reboot in VM1. diff --git a/configs/vms/aio-rk3588-jd4-vm1.dts b/configs/vms/aio-rk3588-jd4-vm1.dts index a1b14c66..a588f4bb 100644 --- a/configs/vms/aio-rk3588-jd4-vm1.dts +++ b/configs/vms/aio-rk3588-jd4-vm1.dts @@ -9427,7 +9427,7 @@ chosen { linux,initrd-end = <0x00 0xaac8000>; - bootargs = "storagemedia=emmc androidboot.storagemedia=emmc androidboot.mode=normal storagenode=/mmc@fe2e0000 androidboot.verifiedbootstate=orange ro rootwait console=ttyS1,115200n8 irqchip.gicv3_pseudo_nmi=0 root=PARTLABEL=rootfs rootfstype=ext4 overlayroot=device:dev=PARTLABEL=userdata,fstype=ext4,mkfs=1 coherent_pool=1m systemd.gpt_auto=0 cgroup_enable=memory swapaccount=1 net.ifnames=0 rcupdate.rcu_expedited=0 comm-05/28/2025 androidboot.fwver=ddr-v1.15-d5483af87d,spl-v1.13,bl31-v1.44,bl32-v1.15,uboot--boot clk_ignore_unused"; + bootargs = "storagemedia=emmc androidboot.storagemedia=emmc androidboot.mode=normal storagenode=/mmc@fe2e0000 androidboot.verifiedbootstate=orange ro rootwait console=ttyS1,115200n8 irqchip.gicv3_pseudo_nmi=0 root=PARTLABEL=rootfs rootfstype=ext4 overlayroot=device:dev=PARTLABEL=userdata,fstype=ext4,mkfs=1 coherent_pool=1m systemd.gpt_auto=0 cgroup_enable=memory swapaccount=1 net.ifnames=0 rcupdate.rcu_expedited=0 comm-05/28/2025 androidboot.fwver=ddr-v1.15-d5483af87d,spl-v1.13,bl31-v1.44,bl32-v1.15,uboot--boot clk_ignore_unused libata.force=1.00:disable"; linux,initrd-start = <0x00 0xa200000>; phandle = <0x48d>; }; diff --git a/configs/vms/aio-rk3588-jd4-vm2.dts b/configs/vms/aio-rk3588-jd4-vm2.dts index 724c53b5..5fc9d3b2 100644 --- a/configs/vms/aio-rk3588-jd4-vm2.dts +++ b/configs/vms/aio-rk3588-jd4-vm2.dts @@ -11,8 +11,7 @@ chosen { linux,initrd-start = <0x01 0x0a200000>; linux,initrd-end = <0x01 0xaac8000>; - // **Replace : with your own NFS server IP and rootfs export path!** - bootargs = "rw earlycon=uart8250,mmio32,0xfeb50000 console=ttyFIQ0 irqchip.gicv3_pseudo_nmi=0 root=/dev/nfs nfsroot=:"; + bootargs = "rw earlycon=uart8250,mmio32,0xfeb50000 console=ttyFIQ0 irqchip.gicv3_pseudo_nmi=0 root=/dev/sda1"; phandle = <0x48d>; }; @@ -252,6 +251,70 @@ #clock-cells = <0>; phandle = <0x143>; }; + + sata0_aclk_396m { + clock-output-names = "sata0_aclk_396m"; + compatible = "fixed-clock"; + clock-frequency = <396000000>; + #clock-cells = <0>; + phandle = <0x171>; + }; + + sata0_pmalive_24m { + clock-output-names = "sata0_pmalive_24m"; + compatible = "fixed-clock"; + clock-frequency = <24000000>; + #clock-cells = <0>; + phandle = <0x16e>; + }; + + sata0_rxoob_50m { + clock-output-names = "sata0_rxoob_50m"; + compatible = "fixed-clock"; + clock-frequency = <50000000>; + #clock-cells = <0>; + phandle = <0x174>; + }; + + sata0_pipephy_ref_24m { + clock-output-names = "sata0_pipephy_ref_24m"; + compatible = "fixed-clock"; + clock-frequency = <24000000>; + #clock-cells = <0>; + phandle = <0x163>; + }; + + sata0_pipephy_asic_0 { + clock-output-names = "sata0_pipephy_asic_0"; + compatible = "fixed-clock"; + clock-frequency = <0>; + #clock-cells = <0>; + phandle = <0x17e>; + }; + + phy0_refclk_100m { + clock-output-names = "phy0_refclk_100m"; + compatible = "fixed-clock"; + clock-frequency = <100000000>; + #clock-cells = <0>; + phandle = <0x2bd>; + }; + + phy0_apbclk_100m { + clock-output-names = "phy0_apbclk_100m"; + compatible = "fixed-clock"; + clock-frequency = <100000000>; + #clock-cells = <0>; + phandle = <0x185>; + }; + + phy0_phpclk_150m { + clock-output-names = "phy0_phpclk_150m"; + compatible = "fixed-clock"; + clock-frequency = <150000000>; + #clock-cells = <0>; + phandle = <0x166>; + }; }; serial@feb50000 { @@ -295,6 +358,39 @@ phandle = <0xc8>; }; + syscon@fd5bc000 { + compatible = "rockchip,pipe-phy-grf\0syscon"; + reg = <0x00 0xfd5bc000 0x00 0x100>; + phandle = <0x194>; + }; + + sata@fe210000 { + phy-names = "sata-phy"; + clock-names = "sata\0pmalive\0rxoob\0ref\0asic"; + interrupts = <0x00 0x111 0x04>; + clocks = <0x171 0x16e 0x174 0x163 0x17e>; + compatible = "rockchip,rk-ahci\0snps,dwc-ahci"; + status = "okay"; + interrupt-names = "hostc"; + phys = <0x108 0x01>; + reg = <0x00 0xfe210000 0x00 0x1000>; + phandle = <0x290>; + ports-implemented = <0x01>; + }; + + phy@fee00000 { + rockchip,pipe-grf = <0x76>; + clock-names = "refclk\0apbclk\0phpclk"; + clocks = <0x2bd 0x185 0x166>; + #phy-cells = <0x01>; + compatible = "rockchip,rk3588-naneng-combphy"; + status = "okay"; + rockchip,pipe-phy-grf = <0x194>; + reg = <0x00 0xfee00000 0x00 0x100>; + phandle = <0x108>; + // resets = <0x02 0x20005 0x02 0x4d6>; + // reset-names = "combphy-apb\0combphy"; + }; ethernet@fe1c0000 { power-domains = <0x60 0x21>; @@ -399,6 +495,10 @@ gmac1_mtl_tx_setup = "/ethernet@fe1c0000/tx-queues-config"; gmac1_stmmac_axi_setup = "/ethernet@fe1c0000/stmmac-axi-config"; + sata0 = "/sata@fe210000"; + sata0m0_pins = "/pinctrl/sata0/sata0m0-pins"; + sata0m1_pins = "/pinctrl/sata0/sata0m1-pins"; + }; syscon@fd5f0000 { @@ -496,6 +596,32 @@ }; }; + sata { + + sata-reset { + rockchip,pins = <0x04 0x11 0x00 0x198>; + phandle = <0x3e7>; + }; + + sata-pins { + rockchip,pins = <0x00 0x16 0x0d 0x198 0x00 0x1c 0x0d 0x198 0x00 0x1d 0x0d 0x198>; + phandle = <0x3e6>; + }; + }; + + sata0 { + + sata0m1-pins { + rockchip,pins = <0x01 0x0b 0x06 0x198>; + phandle = <0x3e9>; + }; + + sata0m0-pins { + rockchip,pins = <0x04 0x0e 0x06 0x198>; + phandle = <0x3e8>; + }; + }; + // output // pull up From c308cfccc1170099960298ebcec02fa18f0c852c Mon Sep 17 00:00:00 2001 From: Gallium70 <52118815+Gallium70@users.noreply.github.com> Date: Thu, 26 Jun 2025 12:00:33 +0800 Subject: [PATCH 059/219] [doc] Fix typo --- Boot-on-rk3588.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Boot-on-rk3588.md b/Boot-on-rk3588.md index d458d1ab..38a7ef6f 100644 --- a/Boot-on-rk3588.md +++ b/Boot-on-rk3588.md @@ -62,7 +62,7 @@ dtc -o configs/vms/aio-rk3588-jd4-vm1.dtb -O dtb -I dts configs/vms/aio-rk3588-j dtc -o configs/vms/aio-rk3588-jd4-vm2.dtb -O dtb -I dts configs/vms/aio-rk3588-jd4-vm2.dts ``` -## Prepare Linux kernel bianry +## Prepare Linux kernel binary Prepare RK3588 SDK following manufacturer's instruction, checkout the Linux kernel repository to this branch: https://github.com/arceos-hypervisor/firefly-linux-bsp/tree/axvisor-wip, then build the kernel. From f900a6b15ba6d8dd36524ccc65ed1fe00945774a Mon Sep 17 00:00:00 2001 From: Gallium70 <52118815+Gallium70@users.noreply.github.com> Date: Thu, 26 Jun 2025 12:00:18 +0800 Subject: [PATCH 060/219] [doc/rk3588] Update kernel branch to PREEMT_RT --- Boot-on-rk3588.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Boot-on-rk3588.md b/Boot-on-rk3588.md index 38a7ef6f..58507836 100644 --- a/Boot-on-rk3588.md +++ b/Boot-on-rk3588.md @@ -64,7 +64,7 @@ dtc -o configs/vms/aio-rk3588-jd4-vm2.dtb -O dtb -I dts configs/vms/aio-rk3588-j ## Prepare Linux kernel binary -Prepare RK3588 SDK following manufacturer's instruction, checkout the Linux kernel repository to this branch: https://github.com/arceos-hypervisor/firefly-linux-bsp/tree/axvisor-wip, then build the kernel. +Prepare RK3588 SDK following manufacturer's instruction, checkout the Linux kernel repository to this branch: https://github.com/arceos-hypervisor/firefly-linux-bsp/tree/axvisor-rk3588-jd4-rt89, then build the kernel. This branch has PREEMPT_RT patches and native SCS, SATA and AHCI support, bootable on both VMs. Copy the kernel and ramdisk image to AxVisor directory: From 3d199d2825d75c0164859dfe6e7bc1ca156c8632 Mon Sep 17 00:00:00 2001 From: aarkegz Date: Tue, 1 Jul 2025 22:10:38 +0800 Subject: [PATCH 061/219] cargo.lock updates after merging --- Cargo.lock | 33 +++++++++++++++++++++++---------- 1 file changed, 23 insertions(+), 10 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index cb066775..111a76d4 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -173,7 +173,7 @@ dependencies = [ "aarch64_sysreg", "arm_vgic", "axaddrspace", - "axdevice_base", + "axdevice_base 0.1.0 (git+https://github.com/arceos-hypervisor/axdevice_crates.git?branch=inject_interrupt)", "axerrno", "axvcpu 0.1.0 (git+https://github.com/arceos-hypervisor/axvcpu.git?branch=inject_interrupt_vgicv3_ivc)", "axvisor_api 0.1.0 (git+https://github.com/arceos-hypervisor/axvisor_api.git?branch=inject_interrupt)", @@ -187,12 +187,12 @@ dependencies = [ [[package]] name = "arm_vgic" version = "0.0.0" +source = "git+https://github.com/arceos-hypervisor/arm_vgic.git?branch=vmm_irq_gicv3#c7ef009489a1c3c71817330ca87365c55fc73426" dependencies = [ - "arm_gicv2", "axaddrspace", - "axdevice_base", + "axdevice_base 0.1.0 (git+https://github.com/arceos-hypervisor/axdevice_crates.git)", "axerrno", - "axvisor_api 0.1.0 (git+https://github.com/arceos-hypervisor/axvisor_api.git?branch=inject_interrupt)", + "axvisor_api 0.1.0 (git+https://github.com/arceos-hypervisor/axvisor_api.git)", "bitmaps", "log", "memory_addr", @@ -293,7 +293,7 @@ source = "git+https://github.com/arceos-hypervisor/axdevice.git?branch=inject_in dependencies = [ "arm_vgic", "axaddrspace", - "axdevice_base", + "axdevice_base 0.1.0 (git+https://github.com/arceos-hypervisor/axdevice_crates.git?branch=inject_interrupt)", "axerrno", "axvmconfig", "cfg-if", @@ -313,6 +313,18 @@ dependencies = [ "serde", ] +[[package]] +name = "axdevice_base" +version = "0.1.0" +source = "git+https://github.com/arceos-hypervisor/axdevice_crates.git#00e436cdadf19ddb2c23d044280873072c21325a" +dependencies = [ + "axaddrspace", + "axerrno", + "cfg-if", + "memory_addr", + "serde", +] + [[package]] name = "axdriver" version = "0.1.0" @@ -504,8 +516,9 @@ dependencies = [ [[package]] name = "axipi" version = "0.1.0" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_irq_gicv3#00480405fc3e89f40d6d4263054687ba5918c873" dependencies = [ - "axconfig 0.1.0", + "axconfig 0.1.0 (git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_irq_gicv3)", "axhal", "kspin", "lazyinit", @@ -640,7 +653,7 @@ dependencies = [ "axaddrspace", "axconfig 0.1.0 (git+https://github.com/arceos-hypervisor/arceos.git?branch=debin%2Ftimer_api)", "axdevice", - "axdevice_base", + "axdevice_base 0.1.0 (git+https://github.com/arceos-hypervisor/axdevice_crates.git?branch=inject_interrupt)", "axerrno", "axhvc", "axstd", @@ -719,7 +732,7 @@ dependencies = [ "arm_vcpu", "axaddrspace", "axdevice", - "axdevice_base", + "axdevice_base 0.1.0 (git+https://github.com/arceos-hypervisor/axdevice_crates.git?branch=inject_interrupt)", "axerrno", "axvcpu 0.1.0 (git+https://github.com/arceos-hypervisor/axvcpu.git?branch=inject_interrupt_vgicv3_ivc)", "axvmconfig", @@ -1954,7 +1967,7 @@ version = "0.1.0" source = "git+https://github.com/arceos-hypervisor/x86_vcpu.git?branch=inject_interrupt#b240131f84db2ff61d114340c07049dcf20209b4" dependencies = [ "axaddrspace", - "axdevice_base", + "axdevice_base 0.1.0 (git+https://github.com/arceos-hypervisor/axdevice_crates.git?branch=inject_interrupt)", "axerrno", "axvcpu 0.1.0 (git+https://github.com/arceos-hypervisor/axvcpu.git?branch=inject_interrupt)", "bit_field", @@ -1978,7 +1991,7 @@ version = "0.1.0" source = "git+https://github.com/arceos-hypervisor/x86_vlapic.git?branch=timer#5ac0b3f1e76efe46b42fb825818e83e801e49ab2" dependencies = [ "axaddrspace", - "axdevice_base", + "axdevice_base 0.1.0 (git+https://github.com/arceos-hypervisor/axdevice_crates.git?branch=inject_interrupt)", "axerrno", "axvisor_api 0.1.0 (git+https://github.com/arceos-hypervisor/axvisor_api.git?branch=inject_interrupt)", "bit", From a37170049a8688cecc98ceb194733079bab35ddf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E7=9D=BF?= Date: Fri, 11 Jul 2025 13:21:12 +0800 Subject: [PATCH 062/219] =?UTF-8?q?=E9=87=8D=E6=9E=84makefile=E9=80=82?= =?UTF-8?q?=E9=85=8Dnewhal?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 3 + Cargo.lock | 3461 +++++++++++++++++++++++++++++++++++-------- Cargo.toml | 45 +- Makefile | 295 +--- build.rs | 4 +- rust-toolchain.toml | 2 +- src/hal.rs | 3 +- src/main.rs | 2 + 8 files changed, 2964 insertions(+), 851 deletions(-) diff --git a/.gitignore b/.gitignore index ae6943b0..26d3f7db 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,8 @@ /target /.vscode /tmp +/.arceos +/.cargo .DS_Store *.asm *.img @@ -14,6 +16,7 @@ actual.out qemu.log rusty-tags.vi + /**/.axconfig.* # dev env diff --git a/Cargo.lock b/Cargo.lock index 1eb589a4..785826db 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -20,23 +20,48 @@ dependencies = [ "tock-registers 0.9.0", ] +[[package]] +name = "aarch64-cpu-ext" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2a64358f36fba7d684ef367d38a17f6bd2316b97f0a2ad9eb3fe8cacbaed50a" +dependencies = [ + "aarch64-cpu 10.0.0", + "tock-registers 0.9.0", +] + [[package]] name = "aarch64_sysreg" version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0a2c929f5025d9b8a0f549b187c4d3a39671f44015ff6ccddd0b134c874b3c1a" +[[package]] +name = "addr2line" +version = "0.24.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1" +dependencies = [ + "gimli", +] + +[[package]] +name = "adler2" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa" + [[package]] name = "ahash" -version = "0.8.11" +version = "0.8.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" +checksum = "5a15f179cd60c4584b8a8c596927aadc462e27f2ca70c04e0071964a73ba7a75" dependencies = [ "cfg-if", "const-random", "once_cell", "version_check", - "zerocopy", + "zerocopy 0.8.26", ] [[package]] @@ -66,9 +91,9 @@ checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" [[package]] name = "anstream" -version = "0.6.18" +version = "0.6.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8acc5369981196006228e28809f761875c0327210a891e941f4c683b3a99529b" +checksum = "301af1932e46185686725e0fad2f8f2aa7da69dd70bf6ecc44d6b703844a3933" dependencies = [ "anstyle", "anstyle-parse", @@ -81,43 +106,62 @@ dependencies = [ [[package]] name = "anstyle" -version = "1.0.10" +version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55cc3b69f167a1ef2e161439aa98aed94e6028e5f9a59be9a6ffb47aef1651f9" +checksum = "862ed96ca487e809f1c8e5a8447f6ee2cf102f846893800b20cebdf541fc6bbd" [[package]] name = "anstyle-parse" -version = "0.2.6" +version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b2d16507662817a6a20a9ea92df6652ee4f94f914589377d69f3b21bc5798a9" +checksum = "4e7644824f0aa2c7b9384579234ef10eb7efb6a0deb83f9630a49594dd9c15c2" dependencies = [ "utf8parse", ] [[package]] name = "anstyle-query" -version = "1.1.2" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79947af37f4177cfead1110013d678905c37501914fba0efea834c3fe9a8d60c" +checksum = "6c8bdeb6047d8983be085bab0ba1472e6dc604e7041dbf6fcd5e71523014fae9" dependencies = [ - "windows-sys", + "windows-sys 0.59.0", ] [[package]] name = "anstyle-wincon" -version = "3.0.7" +version = "3.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca3534e77181a9cc07539ad51f2141fe32f6c3ffd4df76db8ad92346b003ae4e" +checksum = "403f75924867bb1033c59fbf0797484329750cfbe3c4325cd33127941fabc882" dependencies = [ "anstyle", - "once_cell", - "windows-sys", + "once_cell_polyfill", + "windows-sys 0.59.0", +] + +[[package]] +name = "any-uart" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d946430e1de45608625428bac646b79e02fb83e1d2e46eec27afa2556f038e65" +dependencies = [ + "bitflags 2.9.1", + "cfg-if", + "embedded-hal-nb", + "fdt-parser", + "x86_64", ] +[[package]] +name = "anyhow" +version = "1.0.98" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e16d2d3311acee920a9eb8d33b8cbc1787ce4a264e85f964c2404b969bdcd487" + [[package]] name = "arceos_api" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm#20d52d36d2eeb05edd7240c0e0b0cf17993c38bc" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=dev-dyn-driver#40fbaa105b563c063027246af25068599759f5ec" dependencies = [ "axalloc", "axconfig", @@ -135,12 +179,12 @@ dependencies = [ [[package]] name = "arm-gic-driver" -version = "0.10.2" +version = "0.14.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3be20d5253a221975e41674d35169a6f67887b012490b9e1ab33d7369caa7332" +checksum = "a886a953642fbf21eb5928c49a05f021fae007219ae8cb2dafbf403dfeba974a" dependencies = [ "aarch64-cpu 10.0.0", - "bitflags 2.9.0", + "bitflags 2.9.1", "enum_dispatch", "log", "rdif-intc", @@ -150,7 +194,8 @@ dependencies = [ [[package]] name = "arm_gicv2" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arm_gicv2#eee14941d490719f6689e82f9a87caea6767bdc3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47d25e73c949c69f75d1b9dba39c5475523403b31eb8c2fdc99da4dc33bc1aca" dependencies = [ "tock-registers 0.8.1", ] @@ -164,10 +209,18 @@ dependencies = [ "tock-registers 0.8.1", ] +[[package]] +name = "arm_pl031" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13696b1c2b59992f4223e0ae5bb173c81c63039367ca90eee845346ad2a13421" +dependencies = [ + "chrono", +] + [[package]] name = "arm_vcpu" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arm_vcpu.git#e537c7b5125130e85b12a57390a251a86227c2ec" dependencies = [ "aarch64-cpu 9.4.0", "aarch64_sysreg", @@ -177,28 +230,50 @@ dependencies = [ "log", "numeric-enum-macro", "percpu", - "spin", + "spin 0.9.8", "tock-registers 0.8.1", ] +[[package]] +name = "as-any" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0f477b951e452a0b6b4a10b53ccd569042d1d01729b519e02074a9c0958a063" + +[[package]] +name = "async-trait" +version = "0.1.88" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e539d3fca749fcee5236ab05e93a52867dd549cc157c8cb7f99595f3cedffdb5" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.104", +] + +[[package]] +name = "atomic-waker" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" + [[package]] name = "autocfg" -version = "1.4.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" +checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" [[package]] name = "axaddrspace" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/axaddrspace.git#2ed4d076e01f966710bd6480131abd3a9ffb8930" dependencies = [ "axerrno", "bit_field", - "bitflags 2.9.0", + "bitflags 2.9.1", "cfg-if", "lazyinit", "log", - "memory_addr", + "memory_addr 0.4.0", "memory_set", "numeric-enum-macro", "page_table_entry", @@ -208,50 +283,72 @@ dependencies = [ [[package]] name = "axalloc" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm#20d52d36d2eeb05edd7240c0e0b0cf17993c38bc" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=dev-dyn-driver#40fbaa105b563c063027246af25068599759f5ec" dependencies = [ "allocator", "axerrno", "cfg-if", "kspin", "log", - "memory_addr", + "memory_addr 0.4.0", ] [[package]] name = "axconfig" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm#20d52d36d2eeb05edd7240c0e0b0cf17993c38bc" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=dev-dyn-driver#40fbaa105b563c063027246af25068599759f5ec" dependencies = [ - "axconfig-gen-macros", + "axconfig-macros", ] [[package]] name = "axconfig-gen" -version = "0.1.0" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ffa518605969ff8f4ebce2cdc3b6090345152c14987ec540601335effbf36d5" +checksum = "0bf14099a96dbb925e39a44c4f25555f1e24516194452a84a943aa7eda62383d" dependencies = [ "clap", - "toml_edit 0.22.24", + "toml_edit 0.22.27", ] [[package]] -name = "axconfig-gen-macros" -version = "0.1.0" +name = "axconfig-macros" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92110c7e7a5633d7fb8a402393c91c326ad6d19710bb9cfa5ab4095e63c25948" +checksum = "f86a6711b80fbd1dc4c1d8e2fb77a5de6fc8e2eb2b96bbd0420ca8af370eb74c" dependencies = [ "axconfig-gen", "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.104", +] + +[[package]] +name = "axcpu" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e09bc1235e3da45e942b50f47812f8397ad84cb490264bf914c65ac44e6f8b1d" +dependencies = [ + "aarch64-cpu 10.0.0", + "cfg-if", + "lazyinit", + "linkme", + "log", + "loongArch64", + "memory_addr 0.4.0", + "page_table_entry", + "page_table_multiarch", + "percpu", + "riscv 0.14.0", + "static_assertions", + "tock-registers 0.9.0", + "x86", + "x86_64", ] [[package]] name = "axdevice" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/axdevice.git#8652ce80b2c53310fb7b0f8ac275f2dfcfbb1338" dependencies = [ "axaddrspace", "axdevice_base", @@ -259,36 +356,40 @@ dependencies = [ "axvmconfig", "cfg-if", "log", - "memory_addr", + "memory_addr 0.4.0", ] [[package]] name = "axdevice_base" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/axdevice_crates.git#28d49f147793997a9db1ebb75a34295cde2a107d" dependencies = [ "axaddrspace", "axerrno", "cfg-if", - "memory_addr", + "memory_addr 0.4.0", "serde", ] [[package]] name = "axdriver" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm#20d52d36d2eeb05edd7240c0e0b0cf17993c38bc" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=dev-dyn-driver#40fbaa105b563c063027246af25068599759f5ec" dependencies = [ + "arm-gic-driver", "axalloc", "axconfig", "axdriver_base", "axdriver_block", "axdriver_pci", "axdriver_virtio", + "axerrno", "axhal", "cfg-if", "crate_interface", + "lazyinit", "log", + "memory_addr 0.4.0", + "rdrive", ] [[package]] @@ -335,7 +436,7 @@ dependencies = [ [[package]] name = "axfeat" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm#20d52d36d2eeb05edd7240c0e0b0cf17993c38bc" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=dev-dyn-driver#40fbaa105b563c063027246af25068599759f5ec" dependencies = [ "axalloc", "axdriver", @@ -350,7 +451,7 @@ dependencies = [ [[package]] name = "axfs" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm#20d52d36d2eeb05edd7240c0e0b0cf17993c38bc" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=dev-dyn-driver#40fbaa105b563c063027246af25068599759f5ec" dependencies = [ "axdriver", "axdriver_block", @@ -370,75 +471,61 @@ dependencies = [ [[package]] name = "axfs_devfs" -version = "0.1.1" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d62eff0490e10cd2c2a74be2979820f0293fa5ebe00ee8bfd87b88ac7dd7d235" +checksum = "81b87ae981272ca8d5d8f106a4452c63f4b5ac36e17ee8f848ee1b250538b9f8" dependencies = [ "axfs_vfs", "log", - "spin", + "spin 0.9.8", ] [[package]] name = "axfs_ramfs" -version = "0.1.1" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db46c6dae25a123579d5fdcdcc502d0dc2a8af86646106004c8a9181433271b1" +checksum = "9f50c26614485d837a3fc09a92f24a226caddc25a30df7e6aaf4bd19b304c399" dependencies = [ "axfs_vfs", "log", - "spin", + "spin 0.9.8", ] [[package]] name = "axfs_vfs" -version = "0.1.1" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2314ebe07a2fef7b1c1a7d15ab817941cd306ace651bb50024b5a8b3e8485359" +checksum = "dcba2006898d7879d456a9c34b9c9460cb536f5bf69d1d5d7d0e0f19f073368d" dependencies = [ "axerrno", - "bitflags 2.9.0", + "bitflags 2.9.1", "log", ] [[package]] name = "axhal" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm#20d52d36d2eeb05edd7240c0e0b0cf17993c38bc" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=dev-dyn-driver#40fbaa105b563c063027246af25068599759f5ec" dependencies = [ "aarch64-cpu 10.0.0", - "arm-gic-driver", - "arm_gicv2", - "arm_pl011", "axalloc", "axconfig", + "axcpu", "axlog", - "bitflags 2.9.0", + "axplat", + "axplat-aarch64-qemu-virt", + "axplat-loongarch64-qemu-virt", + "axplat-riscv64-qemu-virt", + "axplat-x86-pc", "cfg-if", - "cortex-a", - "crate_interface", - "dw_apb_uart", - "handler_table", - "int_ratio", + "heapless", "kernel_guard", - "kspin", "lazyinit", "linkme", "log", - "loongArch64", - "memory_addr", - "ns16550a", - "page_table_entry", + "memory_addr 0.4.0", "page_table_multiarch", "percpu", - "raw-cpuid 11.5.0", - "riscv 0.12.1", - "sbi-rt", - "static_assertions", - "tock-registers 0.9.0", - "x2apic", - "x86", - "x86_64 0.15.2", ] [[package]] @@ -453,7 +540,7 @@ dependencies = [ [[package]] name = "axlog" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm#20d52d36d2eeb05edd7240c0e0b0cf17993c38bc" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=dev-dyn-driver#40fbaa105b563c063027246af25068599759f5ec" dependencies = [ "cfg-if", "crate_interface", @@ -464,7 +551,7 @@ dependencies = [ [[package]] name = "axmm" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm#20d52d36d2eeb05edd7240c0e0b0cf17993c38bc" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=dev-dyn-driver#40fbaa105b563c063027246af25068599759f5ec" dependencies = [ "axalloc", "axconfig", @@ -473,64 +560,207 @@ dependencies = [ "kspin", "lazyinit", "log", - "memory_addr", + "memory_addr 0.4.0", "memory_set", ] [[package]] name = "axns" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm#20d52d36d2eeb05edd7240c0e0b0cf17993c38bc" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=dev-dyn-driver#40fbaa105b563c063027246af25068599759f5ec" +dependencies = [ + "crate_interface", + "lazyinit", +] + +[[package]] +name = "axplat" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c86cdb48cf1fbd432f4326ab0852b696ac49442b0ea0aed3401cb0bbe370a19f" dependencies = [ + "axplat-macros", + "bitflags 2.9.1", + "const-str", "crate_interface", + "handler_table", + "kspin", + "memory_addr 0.4.0", +] + +[[package]] +name = "axplat-aarch64-dyn" +version = "0.1.0" +source = "git+https://github.com/arceos-hypervisor/axplat-aarch64-dyn#141aa634467891026949f93985a70c36248ac6ea" +dependencies = [ + "aarch64-cpu 10.0.0", + "aarch64-cpu-ext", + "any-uart", + "axconfig-macros", + "axcpu", + "axplat", + "fdt-parser", + "heapless", + "lazyinit", + "log", + "memory_addr 0.4.0", + "page_table_entry", + "percpu", + "pie-boot", + "rdrive", + "serde", + "smccc", + "spin 0.10.0", + "toml 0.8.23", +] + +[[package]] +name = "axplat-aarch64-peripherals" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f3455ad3c2e0da36047388ac263aa6cf6b80ad80a2d9f1186d73fec2f0cafc7" +dependencies = [ + "aarch64-cpu 10.0.0", + "arm_gicv2", + "arm_pl011", + "arm_pl031", + "axcpu", + "axplat", + "int_ratio", + "kspin", + "lazyinit", + "log", + "page_table_entry", +] + +[[package]] +name = "axplat-aarch64-qemu-virt" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d5d75b950e70a6548b8537aecded7ccafdd3ec639057c4c7c7d6d05b09d0e4d" +dependencies = [ + "axconfig-macros", + "axcpu", + "axplat", + "axplat-aarch64-peripherals", + "log", + "page_table_entry", +] + +[[package]] +name = "axplat-loongarch64-qemu-virt" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "edb82011898513ca97dce6861b68a97eb56608ddb974a727cd761083c2bd8836" +dependencies = [ + "axconfig-macros", + "axcpu", + "axplat", + "kspin", + "lazyinit", + "log", + "loongArch64", + "ns16550a", + "page_table_entry", +] + +[[package]] +name = "axplat-macros" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f90dfaee06a112fe4f810c60af1a86bc080af2172185b491cacc307b84dff748" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.104", +] + +[[package]] +name = "axplat-riscv64-qemu-virt" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "40f16634061d2efb7a0ee5fd9ec339d75547b3a967d238b9ba5711c5c6f01c5a" +dependencies = [ + "axconfig-macros", + "axcpu", + "axplat", + "log", + "riscv 0.14.0", + "sbi-rt", +] + +[[package]] +name = "axplat-x86-pc" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05b1b3bee47e2965347b943c86adb1a65555d90e4d5e6271fe99489957520590" +dependencies = [ + "axconfig-macros", + "axcpu", + "axplat", + "bitflags 2.9.1", + "heapless", + "int_ratio", + "kspin", "lazyinit", + "log", + "multiboot", + "percpu", + "raw-cpuid 11.5.0", + "uart_16550", + "x2apic", + "x86", + "x86_64", ] [[package]] name = "axruntime" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm#20d52d36d2eeb05edd7240c0e0b0cf17993c38bc" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=dev-dyn-driver#40fbaa105b563c063027246af25068599759f5ec" dependencies = [ "axalloc", "axconfig", "axdriver", + "axerrno", "axfs", "axhal", "axlog", "axmm", + "axplat", "axtask", "chrono", "crate_interface", "ctor_bare", - "kernel_guard", "percpu", ] [[package]] name = "axstd" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm#20d52d36d2eeb05edd7240c0e0b0cf17993c38bc" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=dev-dyn-driver#40fbaa105b563c063027246af25068599759f5ec" dependencies = [ "arceos_api", "axerrno", "axfeat", "axio", "kspin", + "lock_api", ] [[package]] name = "axsync" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm#20d52d36d2eeb05edd7240c0e0b0cf17993c38bc" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=dev-dyn-driver#40fbaa105b563c063027246af25068599759f5ec" dependencies = [ "axtask", "kspin", + "lock_api", ] [[package]] name = "axtask" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm#20d52d36d2eeb05edd7240c0e0b0cf17993c38bc" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=dev-dyn-driver#40fbaa105b563c063027246af25068599759f5ec" dependencies = [ "axconfig", "axhal", @@ -541,7 +771,7 @@ dependencies = [ "kspin", "lazyinit", "log", - "memory_addr", + "memory_addr 0.4.0", "percpu", "scheduler", "timer_list", @@ -550,11 +780,10 @@ dependencies = [ [[package]] name = "axvcpu" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/axvcpu.git#34fc1067c4e9dddf3e43e7d290bcb5cf4127382e" dependencies = [ "axaddrspace", "axerrno", - "memory_addr", + "memory_addr 0.3.2", "percpu", ] @@ -565,31 +794,51 @@ dependencies = [ "axaddrspace", "axconfig", "axerrno", + "axplat-aarch64-dyn", "axstd", "axvcpu", "axvm", - "bitflags 2.9.0", + "bitflags 2.9.1", "cfg-if", "crate_interface", "kspin", "lazyinit", "log", - "memory_addr", + "memory_addr 0.4.0", "page_table_entry", "page_table_multiarch", "percpu", "prettyplease", "quote", - "spin", - "syn 2.0.100", + "spin 0.9.8", + "syn 2.0.104", "timer_list", - "toml", + "toml 0.8.14", +] + +[[package]] +name = "axvisor_api" +version = "0.1.0" +dependencies = [ + "axaddrspace", + "axvisor_api_proc", + "crate_interface", + "memory_addr 0.4.0", +] + +[[package]] +name = "axvisor_api_proc" +version = "0.1.0" +dependencies = [ + "proc-macro-crate", + "proc-macro2", + "quote", + "syn 2.0.104", ] [[package]] name = "axvm" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/axvm.git#69b48a93cedb031a78f59d6219bd323d12e96a71" dependencies = [ "arm_vcpu", "axaddrspace", @@ -599,12 +848,12 @@ dependencies = [ "axvmconfig", "cfg-if", "log", - "memory_addr", + "memory_addr 0.4.0", "page_table_entry", "page_table_multiarch", "percpu", "riscv_vcpu", - "spin", + "spin 0.9.8", "x86_vcpu", ] @@ -617,7 +866,22 @@ dependencies = [ "log", "serde", "serde_repr", - "toml", + "toml 0.8.14", +] + +[[package]] +name = "backtrace" +version = "0.3.75" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6806a6321ec58106fea15becdad98371e28d92ccbc7c8f1b3b6dd724fe8f1002" +dependencies = [ + "addr2line", + "cfg-if", + "libc", + "miniz_oxide", + "object", + "rustc-demangle", + "windows-targets 0.52.6", ] [[package]] @@ -635,6 +899,26 @@ version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" +[[package]] +name = "base64" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" + +[[package]] +name = "bindeps-simple" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "759b427caeff86cb964340e5fee96d7b26a58853941d3a8e051f46be7b1fada3" +dependencies = [ + "anyhow", + "cargo_metadata", + "flate2", + "rand", + "reqwest", + "tar", +] + [[package]] name = "bit" version = "0.1.1" @@ -655,9 +939,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.9.0" +version = "2.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c8214115b7bf84099f1309324e63141d4c5d7cc26862f97a0a857dbefe165bd" +checksum = "1b8e56985ec62d17e9c1001dc89c88ecd7dc08e47eba5ec7c29c7b5eeecde967" [[package]] name = "bitmap-allocator" @@ -674,6 +958,12 @@ version = "3.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a1d084b0137aaa901caf9f1e8b21daa6aa24d41cd806e111335541eff9683bd6" +[[package]] +name = "bumpalo" +version = "3.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46c5e41b57b8bba42a04676d81cb89e9ee8e859a1a66f80a5a72e1cb76b34d43" + [[package]] name = "byteorder" version = "1.5.0" @@ -681,74 +971,138 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] -name = "cap_access" -version = "0.1.0" +name = "bytes" +version = "1.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9b24894fa5f73bbf9c72196e7f495a1f81d6218a548280a09ada4a937157692" +checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a" + +[[package]] +name = "camino" +version = "1.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0da45bc31171d8d6960122e222a67740df867c1dd53b4d51caa297084c185cab" dependencies = [ - "bitflags 2.9.0", + "serde", ] [[package]] -name = "cfg-if" -version = "1.0.0" +name = "cap_access" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" +checksum = "c9b24894fa5f73bbf9c72196e7f495a1f81d6218a548280a09ada4a937157692" +dependencies = [ + "bitflags 2.9.1", +] [[package]] -name = "chrono" -version = "0.4.40" +name = "cargo-platform" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a7964611d71df112cb1730f2ee67324fcf4d0fc6606acbbe9bfe06df124637c" +checksum = "84982c6c0ae343635a3a4ee6dedef965513735c8b183caa7289fa6e27399ebd4" dependencies = [ - "num-traits", + "serde", ] [[package]] -name = "clap" -version = "4.5.34" +name = "cargo-util-schemas" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e958897981290da2a852763fe9cdb89cd36977a5d729023127095fa94d95e2ff" +checksum = "e63d2780ac94487eb9f1fea7b0d56300abc9eb488800854ca217f102f5caccca" dependencies = [ - "clap_builder", - "clap_derive", + "semver 1.0.26", + "serde", + "serde-untagged", + "serde-value", + "thiserror 1.0.69", + "toml 0.8.23", + "unicode-xid", + "url", ] [[package]] -name = "clap_builder" -version = "4.5.34" +name = "cargo_metadata" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83b0f35019843db2160b5bb19ae09b4e6411ac33fc6a712003c33e03090e2489" +checksum = "4f7835cfc6135093070e95eb2b53e5d9b5c403dc3a6be6040ee026270aa82502" dependencies = [ - "anstream", - "anstyle", - "clap_lex", - "strsim", + "camino", + "cargo-platform", + "cargo-util-schemas", + "semver 1.0.26", + "serde", + "serde_json", + "thiserror 2.0.12", ] [[package]] -name = "clap_derive" -version = "4.5.32" +name = "cc" +version = "1.2.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09176aae279615badda0765c0c0b3f6ed53f4709118af73cf4655d85d1530cd7" +checksum = "5c1599538de2394445747c8cf7935946e3cc27e9625f889d979bfb2aaf569362" dependencies = [ - "heck", - "proc-macro2", - "quote", - "syn 2.0.100", + "shlex", +] + +[[package]] +name = "cfg-if" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9555578bc9e57714c812a1f84e4fc5b4d21fcb063490c624de019f7464c91268" + +[[package]] +name = "chrono" +version = "0.4.41" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c469d952047f47f91b68d1cba3f10d63c11d73e4636f24f08daf0278abf01c4d" +dependencies = [ + "num-traits", +] + +[[package]] +name = "clap" +version = "4.5.41" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be92d32e80243a54711e5d7ce823c35c41c9d929dc4ab58e1276f625841aadf9" +dependencies = [ + "clap_builder", + "clap_derive", +] + +[[package]] +name = "clap_builder" +version = "4.5.41" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "707eab41e9622f9139419d573eca0900137718000c517d47da73045f54331c3d" +dependencies = [ + "anstream", + "anstyle", + "clap_lex", + "strsim", +] + +[[package]] +name = "clap_derive" +version = "4.5.41" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef4f52386a59ca4c860f7393bcf8abd8dfd91ecccc0f774635ff68e92eeef491" +dependencies = [ + "heck", + "proc-macro2", + "quote", + "syn 2.0.104", ] [[package]] name = "clap_lex" -version = "0.7.4" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f46ad14479a25103f283c0f10005961cf086d8dc42205bb44c46ac563475dca6" +checksum = "b94f61472cee1439c0b966b47e3aca9ae07e45d070759512cd390ea2bebc6675" [[package]] name = "colorchoice" -version = "1.0.3" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b63caa9aa9397e2d9480a9b13673856c78d8ac123288526c37d7839f2a86990" +checksum = "b05b61dc5112cbb17e4b6cd61790d9845d13888356391624cbe7e41efeac1e75" [[package]] name = "const-default" @@ -771,20 +1125,33 @@ version = "0.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f9d839f2a20b0aee515dc581a6172f2321f96cab76c1a38a4c584a194955390e" dependencies = [ - "getrandom", + "getrandom 0.2.16", "once_cell", "tiny-keccak", ] [[package]] -name = "cortex-a" -version = "8.1.1" +name = "const-str" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8256fd5103e10027467cc7a97c9ff27fcc4547ea24864da0aff2e7aef6e18e28" +checksum = "9e991226a70654b49d34de5ed064885f0bef0348a8e70018b8ff1ac80aa984a2" + +[[package]] +name = "core-foundation" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" dependencies = [ - "tock-registers 0.8.1", + "core-foundation-sys", + "libc", ] +[[package]] +name = "core-foundation-sys" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" + [[package]] name = "cpumask" version = "0.1.0" @@ -802,7 +1169,16 @@ checksum = "70272a03a2cef15589bac05d3d15c023752f5f8f2da8be977d983a9d9e6250fb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.104", +] + +[[package]] +name = "crc32fast" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3" +dependencies = [ + "cfg-if", ] [[package]] @@ -813,9 +1189,9 @@ checksum = "790eea4361631c5e7d22598ecd5723ff611904e3344ce8720784c93e3d83d40b" [[package]] name = "crunchy" -version = "0.2.3" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43da5946c66ffcc7745f48db692ffbb10a83bfe0afd96235c5c2a4fb23994929" +checksum = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5" [[package]] name = "ctor_bare" @@ -834,16 +1210,53 @@ checksum = "9a49d5cd78b1c748184d41407b14a58af8403c13328ff2b9f49b0a418c24e3ff" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.104", ] [[package]] -name = "dw_apb_uart" -version = "0.1.0" +name = "darling" +version = "0.20.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f93d496c8faa9dc676ebfa225432e1e3b57645c9268ead889286546f6d39356d" +checksum = "fc7f46116c46ff9ab3eb1597a45688b6715c6e628b5c133e288e709a29bcb4ee" dependencies = [ - "tock-registers 0.8.1", + "darling_core", + "darling_macro", +] + +[[package]] +name = "darling_core" +version = "0.20.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d00b9596d185e565c2207a0b01f8bd1a135483d02d9b7b0a54b11da8d53412e" +dependencies = [ + "fnv", + "ident_case", + "proc-macro2", + "quote", + "strsim", + "syn 2.0.104", +] + +[[package]] +name = "darling_macro" +version = "0.20.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead" +dependencies = [ + "darling_core", + "quote", + "syn 2.0.104", +] + +[[package]] +name = "displaydoc" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.104", ] [[package]] @@ -852,6 +1265,25 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "361a90feb7004eca4019fb28352a9465666b24f840f5c3cddf0ff13920590b89" +[[package]] +name = "embedded-hal-nb" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fba4268c14288c828995299e59b12babdbe170f6c6d73731af1b4648142e8605" +dependencies = [ + "embedded-hal", + "nb", +] + +[[package]] +name = "encoding_rs" +version = "0.8.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3" +dependencies = [ + "cfg-if", +] + [[package]] name = "enum_dispatch" version = "0.3.13" @@ -861,7 +1293,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.104", ] [[package]] @@ -871,759 +1303,2422 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" [[package]] -name = "fatfs" -version = "0.4.0" -source = "git+https://github.com/rafalh/rust-fatfs?rev=85f06e0#85f06e08edbd3368e1b0562f2fc1b6d178bf7b8a" +name = "erased-serde" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e004d887f51fcb9fef17317a2f3525c887d8aa3f4f50fed920816a688284a5b7" dependencies = [ - "bitflags 2.9.0", - "log", + "serde", + "typeid", ] [[package]] -name = "getrandom" -version = "0.2.15" +name = "errno" +version = "0.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" +checksum = "778e2ac28f6c47af28e4907f13ffd1e1ddbd400980a9abd7c8df189bf578a5ad" dependencies = [ - "cfg-if", "libc", - "wasi", + "windows-sys 0.60.2", ] [[package]] -name = "handler_table" -version = "0.1.2" +name = "fastrand" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "702cb690200d6303c1e1992bc648f3f3bf9c1d6a27fcf50551c513d61f339c99" +checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" [[package]] -name = "hashbrown" -version = "0.14.5" +name = "fatfs" +version = "0.4.0" +source = "git+https://github.com/rafalh/rust-fatfs?rev=85f06e0#85f06e08edbd3368e1b0562f2fc1b6d178bf7b8a" +dependencies = [ + "bitflags 2.9.1", + "log", +] + +[[package]] +name = "fdt-parser" +version = "0.4.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" +checksum = "16ca123a5721e4a28ef60d6e1600cd0a33a9ab376c4b88de04c99bce757e458b" + +[[package]] +name = "filetime" +version = "0.2.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35c0522e981e68cbfa8c3f978441a5f34b30b96e146b33cd3359176b50fe8586" dependencies = [ - "ahash", - "allocator-api2", + "cfg-if", + "libc", + "libredox", + "windows-sys 0.59.0", ] [[package]] -name = "hashbrown" -version = "0.15.2" +name = "flate2" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" +checksum = "4a3d7db9596fecd151c5f638c0ee5d5bd487b6e0ea232e5dc96d5250f6f94b1d" +dependencies = [ + "crc32fast", + "miniz_oxide", +] [[package]] -name = "heck" -version = "0.5.0" +name = "fnv" +version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] -name = "indexmap" -version = "2.8.0" +name = "foreign-types" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3954d50fe15b02142bf25d3b8bdadb634ec3948f103d04ffe3031bc8fe9d7058" +checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" dependencies = [ - "equivalent", - "hashbrown 0.15.2", + "foreign-types-shared", ] [[package]] -name = "int_ratio" +name = "foreign-types-shared" version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd361c344145620f0c02e56200ca3e3a45203121447376519a9070e546b2916f" +checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" [[package]] -name = "is_terminal_polyfill" -version = "1.70.1" +name = "form_urlencoded" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf" +checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" +dependencies = [ + "percent-encoding", +] [[package]] -name = "kernel_guard" -version = "0.1.2" +name = "futures" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "307e6be468f3d6b6d895e191f63c11602e4e76575ecca68325d8c8dbebe2870e" +checksum = "65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876" dependencies = [ - "cfg-if", - "crate_interface", + "futures-channel", + "futures-core", + "futures-io", + "futures-sink", + "futures-task", + "futures-util", ] [[package]] -name = "kspin" -version = "0.1.0" +name = "futures-channel" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51954c939251c5899b6e953aa0ed8903c5c0d1140fc7ce3a8fd60c931d694f6e" +checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" dependencies = [ - "cfg-if", - "kernel_guard", + "futures-core", + "futures-sink", ] [[package]] -name = "lazy_static" -version = "1.5.0" +name = "futures-core" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" +checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" [[package]] -name = "lazyinit" -version = "0.2.1" +name = "futures-io" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3861aac8febbb038673bf945ee47ac67940ca741b94d1bb3ff6066af2a181338" +checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" [[package]] -name = "libc" -version = "0.2.171" +name = "futures-sink" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c19937216e9d3aa9956d9bb8dfc0b0c8beb6058fc4f7a4dc4d850edf86a237d6" +checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" [[package]] -name = "linked_list" -version = "0.1.0" -source = "git+https://github.com/arceos-org/linked_list.git?tag=v0.1.0#34c8db301882cecfeb56df0f7c89978dbc62f49a" +name = "futures-task" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" [[package]] -name = "linkme" -version = "0.3.32" +name = "futures-util" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22d227772b5999ddc0690e733f734f95ca05387e329c4084fe65678c51198ffe" +checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" dependencies = [ - "linkme-impl", + "futures-core", + "futures-io", + "futures-sink", + "futures-task", + "memchr", + "pin-project-lite", + "pin-utils", + "slab", ] [[package]] -name = "linkme-impl" -version = "0.3.32" +name = "getrandom" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71a98813fa0073a317ed6a8055dcd4722a49d9b862af828ee68449adb799b6be" +checksum = "335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592" dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.100", + "cfg-if", + "libc", + "wasi 0.11.1+wasi-snapshot-preview1", ] [[package]] -name = "lock_api" -version = "0.4.12" +name = "getrandom" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" +checksum = "26145e563e54f2cadc477553f1ec5ee650b00862f0a58bcd12cbdc5f0ea2d2f4" dependencies = [ - "autocfg", - "scopeguard", + "cfg-if", + "libc", + "r-efi", + "wasi 0.14.2+wasi-0.2.4", ] [[package]] -name = "log" -version = "0.4.21" +name = "gimli" +version = "0.31.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c" +checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" [[package]] -name = "loongArch64" -version = "0.2.4" +name = "h2" +version = "0.4.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd48200d465466664e4e899b204b77b5447d60b1ababdad3a2c49ae85417b552" +checksum = "17da50a276f1e01e0ba6c029e47b7100754904ee8a278f886546e98575380785" dependencies = [ - "bit_field", - "bitflags 1.3.2", + "atomic-waker", + "bytes", + "fnv", + "futures-core", + "futures-sink", + "http", + "indexmap", + "slab", + "tokio", + "tokio-util", + "tracing", ] [[package]] -name = "memchr" -version = "2.7.4" +name = "handler_table" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" +checksum = "702cb690200d6303c1e1992bc648f3f3bf9c1d6a27fcf50551c513d61f339c99" [[package]] -name = "memoffset" -version = "0.9.1" +name = "hash32" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a" +checksum = "47d60b12902ba28e2730cd37e95b8c9223af2808df9e902d4df49588d1470606" dependencies = [ - "autocfg", + "byteorder", ] [[package]] -name = "memory_addr" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5438b8df0f13e16e1f46140de247695a95952a5a4479e47197a8711bf1063373" - -[[package]] -name = "memory_set" -version = "0.3.2" +name = "hashbrown" +version = "0.14.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4552d02c866c57e8b06b919ea8c2f8f398cad245b8f6aac726657bc972d663d" +checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" dependencies = [ - "memory_addr", + "ahash", + "allocator-api2", ] [[package]] -name = "ns16550a" -version = "0.4.0" +name = "hashbrown" +version = "0.15.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "667fbdfccff4775918606516ff6ca51b898ac0842c4bc41c960a55a9832545a6" +checksum = "5971ac85611da7067dbfcabef3c70ebb5606018acd9e2a3903a0da507521e0d5" [[package]] -name = "num-traits" -version = "0.2.19" +name = "heapless" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" +checksum = "0bfb9eb618601c89945a70e254898da93b13be0388091d42117462b265bb3fad" dependencies = [ - "autocfg", + "hash32", + "stable_deref_trait", ] [[package]] -name = "numeric-enum-macro" -version = "0.2.0" +name = "heck" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "300e4bdb6b46b592948e700ea1ef24a4296491f6a0ee722b258040abd15a3714" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" [[package]] -name = "once_cell" -version = "1.21.3" +name = "http" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" +checksum = "f4a85d31aea989eead29a3aaf9e1115a180df8282431156e533de47660892565" +dependencies = [ + "bytes", + "fnv", + "itoa", +] [[package]] -name = "page_table_entry" -version = "0.5.3" +name = "http-body" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c097d641745a066856a26eed6e486d4430bb3e32c94f1203ea09c63239b360a0" +checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" dependencies = [ - "aarch64-cpu 10.0.0", - "bitflags 2.9.0", - "memory_addr", - "x86_64 0.15.2", + "bytes", + "http", ] [[package]] -name = "page_table_multiarch" -version = "0.5.3" +name = "http-body-util" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4647889585d29762d747be0916d6d28db72967a697d142be86f187a6b496832a" +checksum = "b021d93e26becf5dc7e1b75b1bed1fd93124b374ceb73f43d4d4eafec896a64a" dependencies = [ - "log", - "memory_addr", - "page_table_entry", - "riscv 0.12.1", - "x86", + "bytes", + "futures-core", + "http", + "http-body", + "pin-project-lite", ] [[package]] -name = "paste" -version = "1.0.15" +name = "httparse" +version = "1.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" +checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87" [[package]] -name = "percpu" -version = "0.2.0" +name = "hyper" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01e56c0c558952222967b592899f98765b48590e7bd7403bfd7075f73afc6ed6" +checksum = "cc2b571658e38e0c01b1fdca3bbbe93c00d3d71693ff2770043f8c29bc7d6f80" dependencies = [ - "cfg-if", - "percpu_macros", - "spin", - "x86", + "bytes", + "futures-channel", + "futures-util", + "h2", + "http", + "http-body", + "httparse", + "itoa", + "pin-project-lite", + "smallvec", + "tokio", + "want", ] [[package]] -name = "percpu_macros" -version = "0.2.0" +name = "hyper-rustls" +version = "0.27.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a9f4cc54a2e471ff72f1499461ba381ad4eae9cbd60d29c258545b995e406e0" +checksum = "e3c93eb611681b207e1fe55d5a71ecf91572ec8a6705cdb6857f7d8d5242cf58" dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.100", + "http", + "hyper", + "hyper-util", + "rustls", + "rustls-pki-types", + "tokio", + "tokio-rustls", + "tower-service", ] [[package]] -name = "prettyplease" -version = "0.2.31" +name = "hyper-tls" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5316f57387668042f561aae71480de936257848f9c43ce528e311d89a07cadeb" +checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0" dependencies = [ - "proc-macro2", - "syn 2.0.100", + "bytes", + "http-body-util", + "hyper", + "hyper-util", + "native-tls", + "tokio", + "tokio-native-tls", + "tower-service", ] [[package]] -name = "proc-macro2" -version = "1.0.94" +name = "hyper-util" +version = "0.1.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a31971752e70b8b2686d7e46ec17fb38dad4051d94024c88df49b667caea9c84" +checksum = "7f66d5bd4c6f02bf0542fad85d626775bab9258cf795a4256dcaf3161114d1df" dependencies = [ - "unicode-ident", + "base64 0.22.1", + "bytes", + "futures-channel", + "futures-core", + "futures-util", + "http", + "http-body", + "hyper", + "ipnet", + "libc", + "percent-encoding", + "pin-project-lite", + "socket2", + "system-configuration", + "tokio", + "tower-service", + "tracing", + "windows-registry", ] [[package]] -name = "quote" -version = "1.0.40" +name = "icu_collections" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d" +checksum = "200072f5d0e3614556f94a9930d5dc3e0662a652823904c3a75dc3b0af7fee47" dependencies = [ - "proc-macro2", + "displaydoc", + "potential_utf", + "yoke", + "zerofrom", + "zerovec", ] [[package]] -name = "raw-cpuid" -version = "10.7.0" +name = "icu_locale_core" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c297679cb867470fa8c9f67dbba74a78d78e3e98d7cf2b08d6d71540f797332" +checksum = "0cde2700ccaed3872079a65fb1a78f6c0a36c91570f28755dda67bc8f7d9f00a" dependencies = [ - "bitflags 1.3.2", + "displaydoc", + "litemap", + "tinystr", + "writeable", + "zerovec", ] [[package]] -name = "raw-cpuid" -version = "11.5.0" +name = "icu_normalizer" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6df7ab838ed27997ba19a4664507e6f82b41fe6e20be42929332156e5e85146" +checksum = "436880e8e18df4d7bbc06d58432329d6458cc84531f7ac5f024e93deadb37979" dependencies = [ - "bitflags 2.9.0", + "displaydoc", + "icu_collections", + "icu_normalizer_data", + "icu_properties", + "icu_provider", + "smallvec", + "zerovec", ] [[package]] -name = "rdif-base" -version = "0.2.1" +name = "icu_normalizer_data" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "646f76de5c5a02b0cf2677f99d5216b9fc301d47dbac8d056f7e74f8c0e89008" +checksum = "00210d6893afc98edb752b664b8890f0ef174c8adbb8d0be9710fa66fbbf72d3" [[package]] -name = "rdif-intc" -version = "0.6.4" +name = "icu_properties" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4dce859ee52f984c78d41f647eb3266e58824e385583ae64a5467597c84fd5a" +checksum = "016c619c1eeb94efb86809b015c58f479963de65bdb6253345c1a1276f22e32b" dependencies = [ - "cfg-if", - "rdif-base", + "displaydoc", + "icu_collections", + "icu_locale_core", + "icu_properties_data", + "icu_provider", + "potential_utf", + "zerotrie", + "zerovec", ] [[package]] -name = "regex" -version = "1.11.1" +name = "icu_properties_data" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" +checksum = "298459143998310acd25ffe6810ed544932242d3f07083eee1084d83a71bd632" + +[[package]] +name = "icu_provider" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03c80da27b5f4187909049ee2d72f276f0d9f99a42c306bd0131ecfe04d8e5af" dependencies = [ - "aho-corasick", - "memchr", - "regex-automata", - "regex-syntax", + "displaydoc", + "icu_locale_core", + "stable_deref_trait", + "tinystr", + "writeable", + "yoke", + "zerofrom", + "zerotrie", + "zerovec", ] [[package]] -name = "regex-automata" -version = "0.4.9" +name = "ident_case" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" +checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" + +[[package]] +name = "idna" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" dependencies = [ - "aho-corasick", - "memchr", - "regex-syntax", + "idna_adapter", + "smallvec", + "utf8_iter", ] [[package]] -name = "regex-syntax" -version = "0.8.5" +name = "idna_adapter" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" +checksum = "3acae9609540aa318d1bc588455225fb2085b9ed0c4f6bd0d9d5bcd86f1a0344" +dependencies = [ + "icu_normalizer", + "icu_properties", +] [[package]] -name = "riscv" -version = "0.6.0" -source = "git+https://github.com/rcore-os/riscv#11d43cf7cccb3b62a3caaf3e07a1db7449588f9a" +name = "indexmap" +version = "2.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe4cd85333e22411419a0bcae1297d25e58c9443848b11dc6a86fefe8c78a661" dependencies = [ - "bare-metal", - "bit_field", - "bitflags 1.3.2", - "log", - "riscv-target", + "equivalent", + "hashbrown 0.15.4", ] [[package]] -name = "riscv" -version = "0.12.1" +name = "int_ratio" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6045ea39e8d2862506c0dff6c65d068da362335df698bb1634033492740d2170" + +[[package]] +name = "io-uring" +version = "0.7.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ea8ff73d3720bdd0a97925f0bf79ad2744b6da8ff36be3840c48ac81191d7a7" +checksum = "b86e202f00093dcba4275d4636b93ef9dd75d025ae560d2521b45ea28ab49013" dependencies = [ - "critical-section", - "embedded-hal", - "paste", - "riscv-macros", - "riscv-pac", + "bitflags 2.9.1", + "cfg-if", + "libc", ] [[package]] -name = "riscv-decode" -version = "0.2.1" -source = "git+https://github.com/KuangjuX/riscv-decode.git#0e346d0ad041987023caa6f7f832185ed568630b" +name = "ipnet" +version = "2.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130" [[package]] -name = "riscv-macros" -version = "0.1.0" +name = "iri-string" +version = "0.7.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f265be5d634272320a7de94cea15c22a3bfdd4eb42eb43edc528415f066a1f25" +checksum = "dbc5ebe9c3a1a7a5127f920a418f7585e9e758e911d0466ed004f393b0e380b2" dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.100", + "memchr", + "serde", ] [[package]] -name = "riscv-pac" -version = "0.2.0" +name = "is_terminal_polyfill" +version = "1.70.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8188909339ccc0c68cfb5a04648313f09621e8b87dc03095454f1a11f6c5d436" +checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf" [[package]] -name = "riscv-target" +name = "itoa" +version = "1.0.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" + +[[package]] +name = "js-sys" +version = "0.3.77" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f" +dependencies = [ + "once_cell", + "wasm-bindgen", +] + +[[package]] +name = "kasm-aarch64" version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88aa938cda42a0cf62a20cfe8d139ff1af20c2e681212b5b34adb5a58333f222" +checksum = "5d45450cebbbccba594673938b1f08855ea0268cef05436e989bd86708278ace" dependencies = [ - "lazy_static", - "regex", + "darling", + "proc-macro2", + "quote", + "syn 2.0.104", ] [[package]] -name = "riscv_vcpu" -version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/riscv_vcpu.git#4000ae3cd546423c20785d7d93f81a80233cc35a" +name = "kdef-pgtable" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe55002bb265659921e59528cadf0d07362ebc0f37986d9b004bc45264036bf5" +dependencies = [ + "bitflags 2.9.1", + "prettyplease", + "quote", + "syn 2.0.104", +] + +[[package]] +name = "kernel_guard" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "307e6be468f3d6b6d895e191f63c11602e4e76575ecca68325d8c8dbebe2870e" dependencies = [ - "axaddrspace", - "axerrno", - "axvcpu", - "bit_field", - "bitflags 2.9.0", "cfg-if", "crate_interface", - "log", - "memoffset", - "memory_addr", - "page_table_entry", - "riscv 0.6.0", - "riscv-decode", - "rustsbi", - "sbi-rt", - "sbi-spec", - "tock-registers 0.8.1", ] [[package]] -name = "rlsf" -version = "0.2.1" +name = "kspin" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "222fb240c3286247ecdee6fa5341e7cdad0ffdf8e7e401d9937f2d58482a20bf" +checksum = "51954c939251c5899b6e953aa0ed8903c5c0d1140fc7ce3a8fd60c931d694f6e" dependencies = [ "cfg-if", - "const-default", - "libc", - "svgbobdoc", + "kernel_guard", ] [[package]] -name = "rustc_version" -version = "0.2.3" +name = "lazy_static" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a" +checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" + +[[package]] +name = "lazyinit" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17f03abfebdaaf0fad16790237a0348baf84886d3ade460db13bae59e614a180" + +[[package]] +name = "libc" +version = "0.2.174" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1171693293099992e19cddea4e8b849964e9846f4acee11b3948bcc337be8776" + +[[package]] +name = "libredox" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1580801010e535496706ba011c15f8532df6b42297d2e471fec38ceadd8c0638" dependencies = [ - "semver", + "bitflags 2.9.1", + "libc", + "redox_syscall", ] [[package]] -name = "rustsbi" -version = "0.4.0" +name = "linked_list" +version = "0.1.0" +source = "git+https://github.com/arceos-org/linked_list.git?tag=v0.1.0#34c8db301882cecfeb56df0f7c89978dbc62f49a" + +[[package]] +name = "linkme" +version = "0.3.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44c13763120794ed11d64bac885fb31d384ae385c3287b0697711b97affbf8ab" +checksum = "a1b1703c00b2a6a70738920544aa51652532cacddfec2e162d2e29eae01e665c" dependencies = [ - "rustsbi-macros", - "sbi-rt", - "sbi-spec", + "linkme-impl", ] [[package]] -name = "rustsbi-macros" -version = "0.0.2" +name = "linkme-impl" +version = "0.3.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a71347da9582cc6b6f3652c7d2c06516c9555690b3738ecdff7e84297f4e17fc" +checksum = "04d55ca5d5a14363da83bf3c33874b8feaa34653e760d5216d7ef9829c88001a" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.104", ] [[package]] -name = "rustversion" -version = "1.0.20" +name = "linux-raw-sys" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eded382c5f5f786b989652c49544c4877d9f015cc22e145a5ea8ea66c2921cd2" +checksum = "cd945864f07fe9f5371a27ad7b52a172b4b499999f1d97574c9fa68373937e12" [[package]] -name = "sbi-rt" -version = "0.0.3" +name = "litemap" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fbaa69be1eedc61c426e6d489b2260482e928b465360576900d52d496a58bd0" +checksum = "241eaef5fd12c88705a01fc1066c48c4b36e0dd4377dcdc7ec3942cea7a69956" + +[[package]] +name = "lock_api" +version = "0.4.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96936507f153605bddfcda068dd804796c84324ed2510809e5b2a624c81da765" dependencies = [ - "sbi-spec", + "autocfg", + "scopeguard", ] [[package]] -name = "sbi-spec" -version = "0.0.7" +name = "log" +version = "0.4.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6e36312fb5ddc10d08ecdc65187402baba4ac34585cb9d1b78522ae2358d890" +checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c" [[package]] -name = "scheduler" -version = "0.1.0" -source = "git+https://github.com/arceos-org/scheduler.git?tag=v0.1.0#c8d25d9aed146dca28dc8987afd229b52c20361a" +name = "loongArch64" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c9f0d275c70310e2a9d2fc23250c5ac826a73fa828a5f256401f85c5c554283" dependencies = [ - "linked_list", + "bit_field", + "bitflags 2.9.1", ] [[package]] -name = "scopeguard" -version = "1.2.0" +name = "memchr" +version = "2.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" +checksum = "32a282da65faaf38286cf3be983213fcf1d2e2a58700e808f83f4ea9a4804bc0" [[package]] -name = "semver" -version = "0.9.0" +name = "memoffset" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403" +checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a" dependencies = [ - "semver-parser", + "autocfg", ] [[package]] -name = "semver-parser" -version = "0.7.0" +name = "memory_addr" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" +checksum = "5438b8df0f13e16e1f46140de247695a95952a5a4479e47197a8711bf1063373" [[package]] -name = "serde" -version = "1.0.219" +name = "memory_addr" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6" +checksum = "3d4054cba279515fa87761b101d857333ce06391dbe8f18a11347204a7111416" + +[[package]] +name = "memory_set" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7d47cbc25a4d00427f9070fd768eaf907f19c903fb72b547b19db2d56b9408e" dependencies = [ - "serde_derive", + "memory_addr 0.4.0", ] [[package]] -name = "serde_derive" -version = "1.0.219" +name = "mime" +version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" +checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" + +[[package]] +name = "miniz_oxide" +version = "0.8.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316" dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.100", + "adler2", ] [[package]] -name = "serde_repr" -version = "0.1.20" +name = "mio" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "175ee3e80ae9982737ca543e96133087cbd9a485eecc3bc4de9c1a37b47ea59c" +checksum = "78bed444cc8a2160f01cbcf811ef18cac863ad68ae8ca62092e8db51d51c761c" dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.100", + "libc", + "wasi 0.11.1+wasi-snapshot-preview1", + "windows-sys 0.59.0", ] [[package]] -name = "serde_spanned" -version = "0.6.6" -source = "git+https://github.com/arceos-hypervisor/toml.git?branch=no_std#fdb24a160d68ee9f8f42b34fffaa3640e94ed604" +name = "multiboot" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f87ad3b7b7bcf5da525c22221e3eb3a020cd68b2d55ae62f629c15e8bc3bd56e" dependencies = [ - "serde", + "paste", ] [[package]] -name = "spin" -version = "0.9.8" +name = "native-tls" +version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" +checksum = "87de3442987e9dbec73158d5c715e7ad9072fda936bb03d19d7fa10e00520f0e" dependencies = [ - "lock_api", + "libc", + "log", + "openssl", + "openssl-probe", + "openssl-sys", + "schannel", + "security-framework", + "security-framework-sys", + "tempfile", ] [[package]] -name = "static_assertions" +name = "nb" version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" +checksum = "8d5439c4ad607c3c23abf66de8c8bf57ba8adcd1f129e699851a6e43935d339d" [[package]] -name = "strsim" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" +name = "ns16550a" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3cd8abe9e54bce27659507b94f355c9334378ab15da332b6986b3583ebf7228" + +[[package]] +name = "num-align" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4b86e8ef968de2261141fc760ee57cae8fabb3a0e756b3390a4c4871b16c3d1" + +[[package]] +name = "num-traits" +version = "0.2.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" +dependencies = [ + "autocfg", +] + +[[package]] +name = "numeric-enum-macro" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "300e4bdb6b46b592948e700ea1ef24a4296491f6a0ee722b258040abd15a3714" + +[[package]] +name = "object" +version = "0.36.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87" +dependencies = [ + "memchr", +] + +[[package]] +name = "once_cell" +version = "1.21.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" + +[[package]] +name = "once_cell_polyfill" +version = "1.70.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4895175b425cb1f87721b59f0f286c2092bd4af812243672510e1ac53e2e0ad" + +[[package]] +name = "openssl" +version = "0.10.73" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8505734d46c8ab1e19a1dce3aef597ad87dcb4c37e7188231769bd6bd51cebf8" +dependencies = [ + "bitflags 2.9.1", + "cfg-if", + "foreign-types", + "libc", + "once_cell", + "openssl-macros", + "openssl-sys", +] + +[[package]] +name = "openssl-macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.104", +] + +[[package]] +name = "openssl-probe" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e" + +[[package]] +name = "openssl-sys" +version = "0.9.109" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90096e2e47630d78b7d1c20952dc621f957103f8bc2c8359ec81290d75238571" +dependencies = [ + "cc", + "libc", + "pkg-config", + "vcpkg", +] + +[[package]] +name = "ordered-float" +version = "2.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68f19d67e5a2795c94e73e0bb1cc1a7edeb2e28efd39e2e1c9b7a40c1108b11c" +dependencies = [ + "num-traits", +] + +[[package]] +name = "page-table-generic" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79217ff706e8dd356df4b6d624bae950ae5c39a17c6959b81d73dedfc9653316" +dependencies = [ + "bitflags 2.9.1", + "log", + "num-align", + "thiserror 2.0.12", +] + +[[package]] +name = "page_table_entry" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba811ef8ca8fb33d776e128624cb4fe25c9804cab96f83b822d4322431e6dd5a" +dependencies = [ + "aarch64-cpu 10.0.0", + "bitflags 2.9.1", + "memory_addr 0.4.0", + "x86_64", +] + +[[package]] +name = "page_table_multiarch" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "98cb76e21ce462270afd83b331599d5b83f876c2a98c0a70382b20d73e1da6be" +dependencies = [ + "bitmaps", + "log", + "memory_addr 0.4.0", + "page_table_entry", + "riscv 0.14.0", + "x86", +] + +[[package]] +name = "paste" +version = "1.0.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" + +[[package]] +name = "percent-encoding" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" + +[[package]] +name = "percpu" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01e56c0c558952222967b592899f98765b48590e7bd7403bfd7075f73afc6ed6" +dependencies = [ + "cfg-if", + "percpu_macros", + "spin 0.9.8", + "x86", +] + +[[package]] +name = "percpu_macros" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a9f4cc54a2e471ff72f1499461ba381ad4eae9cbd60d29c258545b995e406e0" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.104", +] + +[[package]] +name = "pie-boot" +version = "0.2.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "524d0fc5cd834d2179d8a88cde327b0e168dd6aedf30ce1832467a924a35594f" +dependencies = [ + "aarch64-cpu 10.0.0", + "aarch64-cpu-ext", + "bindeps-simple", + "fdt-parser", + "heapless", + "kasm-aarch64", + "kdef-pgtable", + "pie-boot-if", + "pie-boot-loader-aarch64", + "pie-boot-macros", +] + +[[package]] +name = "pie-boot-if" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c00af8d4efee0eee91ead95b34c50c067163dc4c90b874b1cc4caa671eb1d85b" +dependencies = [ + "heapless", +] + +[[package]] +name = "pie-boot-loader-aarch64" +version = "0.1.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7dc57cd019b296478630e9e3bd62fcd462ece02611c8cee982f7f4f64ecf48d6" +dependencies = [ + "aarch64-cpu 10.0.0", + "aarch64-cpu-ext", + "any-uart", + "bitflags 2.9.1", + "fdt-parser", + "kasm-aarch64", + "kdef-pgtable", + "log", + "num-align", + "page-table-generic", + "pie-boot-if", + "prettyplease", + "quote", + "spin 0.10.0", + "syn 2.0.104", + "thiserror 2.0.12", +] + +[[package]] +name = "pie-boot-macros" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9402ab23e9e60727a37c831726126827f376de3e53478d3abc9adfbff4aa7ff3" +dependencies = [ + "darling", + "proc-macro2", + "quote", + "syn 2.0.104", +] + +[[package]] +name = "pin-project-lite" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" + +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + +[[package]] +name = "pkg-config" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" + +[[package]] +name = "potential_utf" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5a7c30837279ca13e7c867e9e40053bc68740f988cb07f7ca6df43cc734b585" +dependencies = [ + "zerovec", +] + +[[package]] +name = "ppv-lite86" +version = "0.2.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" +dependencies = [ + "zerocopy 0.8.26", +] + +[[package]] +name = "prettyplease" +version = "0.2.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "061c1221631e079b26479d25bbf2275bfe5917ae8419cd7e34f13bfc2aa7539a" +dependencies = [ + "proc-macro2", + "syn 2.0.104", +] + +[[package]] +name = "proc-macro-crate" +version = "3.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "edce586971a4dfaa28950c6f18ed55e0406c1ab88bbce2c6f6293a7aaba73d35" +dependencies = [ + "toml_edit 0.22.27", +] + +[[package]] +name = "proc-macro2" +version = "1.0.95" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02b3e5e68a3a1a02aad3ec490a98007cbc13c37cbe84a3cd7b8e406d76e7f778" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "quote" +version = "1.0.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "r-efi" +version = "5.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" + +[[package]] +name = "rand" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fbfd9d094a40bf3ae768db9361049ace4c0e04a4fd6b359518bd7b73a73dd97" +dependencies = [ + "rand_chacha", + "rand_core", +] + +[[package]] +name = "rand_chacha" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" +dependencies = [ + "ppv-lite86", + "rand_core", +] + +[[package]] +name = "rand_core" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" +dependencies = [ + "getrandom 0.3.3", +] + +[[package]] +name = "raw-cpuid" +version = "10.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c297679cb867470fa8c9f67dbba74a78d78e3e98d7cf2b08d6d71540f797332" +dependencies = [ + "bitflags 1.3.2", +] + +[[package]] +name = "raw-cpuid" +version = "11.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6df7ab838ed27997ba19a4664507e6f82b41fe6e20be42929332156e5e85146" +dependencies = [ + "bitflags 2.9.1", +] + +[[package]] +name = "rdif-base" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6953f438bbbdf58e55513c31e70fa0f85daba2927e8a59130a04608141bb552" +dependencies = [ + "as-any", + "async-trait", + "rdif-def", + "thiserror 2.0.12", +] + +[[package]] +name = "rdif-block" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7b8e19dc3cb6cd7241085a9560a91d4346edbc525bcbfc3c86e5eeb11559c19" +dependencies = [ + "cfg-if", + "rdif-base", +] + +[[package]] +name = "rdif-clk" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee94bb098e921346fffa3bb8d18e80fbb903c8ad2cb0a103ee9a65ae1a7d77fa" +dependencies = [ + "rdif-base", +] + +[[package]] +name = "rdif-def" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c238eb44d86fabc99028adc973f896ce2202aeb6184cc8b89863f2d157d7ca06" +dependencies = [ + "thiserror 2.0.12", +] + +[[package]] +name = "rdif-intc" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4e7622f78dc9b40958500119553f3c15b9bb9829002d87d0f4b114ebe302a40" +dependencies = [ + "cfg-if", + "rdif-base", + "thiserror 2.0.12", +] + +[[package]] +name = "rdif-power" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37eb02828548e3d1bb13d2a5d892219dfa295c3c0c00a1a647a68f947e5d070a" +dependencies = [ + "rdif-base", +] + +[[package]] +name = "rdif-serial" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a3381d491f588cfb20dfa661dc374411a2cb91c751b2e18516e0d2edca6a58e" +dependencies = [ + "futures", + "rdif-base", + "spin_on", + "thiserror 2.0.12", +] + +[[package]] +name = "rdif-systick" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2cdd145eab68c38f23dfcc8b3b1ed20c48bbb1a4278dd9c7bf64e9219cc61158" +dependencies = [ + "rdif-base", +] + +[[package]] +name = "rdrive" +version = "0.15.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72ce47e5a3d10943dfdb8c31dcca7a91c353ea43f4ac2eb72c92462e83a2baa4" +dependencies = [ + "enum_dispatch", + "fdt-parser", + "log", + "paste", + "rdif-base", + "rdif-block", + "rdif-clk", + "rdif-intc", + "rdif-power", + "rdif-serial", + "rdif-systick", + "rdrive-macros", + "spin 0.10.0", + "thiserror 2.0.12", +] + +[[package]] +name = "rdrive-macros" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eab3105c9af32e901a2adc7d920b39ff8b6ee0f6f0b7dfdeaf18f306ec12606f" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.104", +] + +[[package]] +name = "redox_syscall" +version = "0.5.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d04b7d0ee6b4a0207a0a7adb104d23ecb0b47d6beae7152d0fa34b692b29fd6" +dependencies = [ + "bitflags 2.9.1", +] + +[[package]] +name = "regex" +version = "1.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata", + "regex-syntax", +] + +[[package]] +name = "regex-automata" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", +] + +[[package]] +name = "regex-syntax" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" + +[[package]] +name = "reqwest" +version = "0.12.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cbc931937e6ca3a06e3b6c0aa7841849b160a90351d6ab467a8b9b9959767531" +dependencies = [ + "base64 0.22.1", + "bytes", + "encoding_rs", + "futures-channel", + "futures-core", + "futures-util", + "h2", + "http", + "http-body", + "http-body-util", + "hyper", + "hyper-rustls", + "hyper-tls", + "hyper-util", + "js-sys", + "log", + "mime", + "native-tls", + "percent-encoding", + "pin-project-lite", + "rustls-pki-types", + "serde", + "serde_json", + "serde_urlencoded", + "sync_wrapper", + "tokio", + "tokio-native-tls", + "tower", + "tower-http", + "tower-service", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + +[[package]] +name = "ring" +version = "0.17.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7" +dependencies = [ + "cc", + "cfg-if", + "getrandom 0.2.16", + "libc", + "untrusted", + "windows-sys 0.52.0", +] + +[[package]] +name = "riscv" +version = "0.6.0" +source = "git+https://github.com/rcore-os/riscv#11d43cf7cccb3b62a3caaf3e07a1db7449588f9a" +dependencies = [ + "bare-metal", + "bit_field", + "bitflags 1.3.2", + "log", + "riscv-target", +] + +[[package]] +name = "riscv" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f1671c79a01a149fe000af2429ce9ccc8e58cdecda72672355d50e5536b363c" +dependencies = [ + "critical-section", + "embedded-hal", + "paste", + "riscv-macros", + "riscv-pac", +] + +[[package]] +name = "riscv-decode" +version = "0.2.1" +source = "git+https://github.com/KuangjuX/riscv-decode.git#0e346d0ad041987023caa6f7f832185ed568630b" + +[[package]] +name = "riscv-macros" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8c4aa1ea1af6dcc83a61be12e8189f9b293c3ba5a487778a4cd89fb060fdbbc" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.104", +] + +[[package]] +name = "riscv-pac" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8188909339ccc0c68cfb5a04648313f09621e8b87dc03095454f1a11f6c5d436" + +[[package]] +name = "riscv-target" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88aa938cda42a0cf62a20cfe8d139ff1af20c2e681212b5b34adb5a58333f222" +dependencies = [ + "lazy_static", + "regex", +] + +[[package]] +name = "riscv_vcpu" +version = "0.1.0" +source = "git+https://github.com/arceos-hypervisor/riscv_vcpu.git#d457d81bab48e3525ff98987b5220572f7968d47" +dependencies = [ + "axaddrspace", + "axerrno", + "axvcpu", + "axvisor_api", + "bit_field", + "bitflags 2.9.1", + "cfg-if", + "crate_interface", + "log", + "memoffset", + "memory_addr 0.3.2", + "page_table_entry", + "riscv 0.6.0", + "riscv-decode", + "rustsbi", + "sbi-rt", + "sbi-spec", + "tock-registers 0.8.1", +] + +[[package]] +name = "rlsf" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "222fb240c3286247ecdee6fa5341e7cdad0ffdf8e7e401d9937f2d58482a20bf" +dependencies = [ + "cfg-if", + "const-default", + "libc", + "svgbobdoc", +] + +[[package]] +name = "rustc-demangle" +version = "0.1.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "989e6739f80c4ad5b13e0fd7fe89531180375b18520cc8c82080e4dc4035b84f" + +[[package]] +name = "rustc_version" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a" +dependencies = [ + "semver 0.9.0", +] + +[[package]] +name = "rustix" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c71e83d6afe7ff64890ec6b71d6a69bb8a610ab78ce364b3352876bb4c801266" +dependencies = [ + "bitflags 2.9.1", + "errno", + "libc", + "linux-raw-sys", + "windows-sys 0.59.0", +] + +[[package]] +name = "rustls" +version = "0.23.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7160e3e10bf4535308537f3c4e1641468cd0e485175d6163087c0393c7d46643" +dependencies = [ + "once_cell", + "rustls-pki-types", + "rustls-webpki", + "subtle", + "zeroize", +] + +[[package]] +name = "rustls-pki-types" +version = "1.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "229a4a4c221013e7e1f1a043678c5cc39fe5171437c88fb47151a21e6f5b5c79" +dependencies = [ + "zeroize", +] + +[[package]] +name = "rustls-webpki" +version = "0.103.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4a72fe2bcf7a6ac6fd7d0b9e5cb68aeb7d4c0a0271730218b3e92d43b4eb435" +dependencies = [ + "ring", + "rustls-pki-types", + "untrusted", +] + +[[package]] +name = "rustsbi" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44c13763120794ed11d64bac885fb31d384ae385c3287b0697711b97affbf8ab" +dependencies = [ + "rustsbi-macros", + "sbi-rt", + "sbi-spec", +] + +[[package]] +name = "rustsbi-macros" +version = "0.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a71347da9582cc6b6f3652c7d2c06516c9555690b3738ecdff7e84297f4e17fc" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.104", +] + +[[package]] +name = "rustversion" +version = "1.0.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a0d197bd2c9dc6e53b84da9556a69ba4cdfab8619eb41a8bd1cc2027a0f6b1d" + +[[package]] +name = "ryu" +version = "1.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" + +[[package]] +name = "sbi-rt" +version = "0.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7fbaa69be1eedc61c426e6d489b2260482e928b465360576900d52d496a58bd0" +dependencies = [ + "sbi-spec", +] + +[[package]] +name = "sbi-spec" +version = "0.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6e36312fb5ddc10d08ecdc65187402baba4ac34585cb9d1b78522ae2358d890" + +[[package]] +name = "schannel" +version = "0.1.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f29ebaa345f945cec9fbbc532eb307f0fdad8161f281b6369539c8d84876b3d" +dependencies = [ + "windows-sys 0.59.0", +] + +[[package]] +name = "scheduler" +version = "0.1.0" +source = "git+https://github.com/arceos-org/scheduler.git?tag=v0.1.0#c8d25d9aed146dca28dc8987afd229b52c20361a" +dependencies = [ + "linked_list", +] + +[[package]] +name = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + +[[package]] +name = "security-framework" +version = "2.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" +dependencies = [ + "bitflags 2.9.1", + "core-foundation", + "core-foundation-sys", + "libc", + "security-framework-sys", +] + +[[package]] +name = "security-framework-sys" +version = "2.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49db231d56a190491cb4aeda9527f1ad45345af50b0851622a7adb8c03b01c32" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "semver" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403" +dependencies = [ + "semver-parser", +] + +[[package]] +name = "semver" +version = "1.0.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56e6fa9c48d24d85fb3de5ad847117517440f6beceb7798af16b4a87d616b8d0" +dependencies = [ + "serde", +] + +[[package]] +name = "semver-parser" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" + +[[package]] +name = "serde" +version = "1.0.219" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde-untagged" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "299d9c19d7d466db4ab10addd5703e4c615dec2a5a16dbbafe191045e87ee66e" +dependencies = [ + "erased-serde", + "serde", + "typeid", +] + +[[package]] +name = "serde-value" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3a1a3341211875ef120e117ea7fd5228530ae7e7036a779fdc9117be6b3282c" +dependencies = [ + "ordered-float", + "serde", +] + +[[package]] +name = "serde_derive" +version = "1.0.219" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.104", +] + +[[package]] +name = "serde_json" +version = "1.0.140" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20068b6e96dc6c9bd23e01df8827e6c7e1f2fddd43c21810382803c136b99373" +dependencies = [ + "itoa", + "memchr", + "ryu", + "serde", +] + +[[package]] +name = "serde_repr" +version = "0.1.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "175ee3e80ae9982737ca543e96133087cbd9a485eecc3bc4de9c1a37b47ea59c" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.104", +] + +[[package]] +name = "serde_spanned" +version = "0.6.6" +source = "git+https://github.com/arceos-hypervisor/toml.git?branch=no_std#fdb24a160d68ee9f8f42b34fffaa3640e94ed604" +dependencies = [ + "serde", +] + +[[package]] +name = "serde_spanned" +version = "0.6.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf41e0cfaf7226dca15e8197172c295a782857fcb97fad1808a166870dee75a3" +dependencies = [ + "serde", +] + +[[package]] +name = "serde_urlencoded" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" +dependencies = [ + "form_urlencoded", + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "shlex" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" + +[[package]] +name = "slab" +version = "0.4.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04dc19736151f35336d325007ac991178d504a119863a2fcb3758cdb5e52c50d" + +[[package]] +name = "smallvec" +version = "1.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" + +[[package]] +name = "smccc" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c73e0ca8c566478040487791c9f488f86c5aec846ca1ab18484be8a1d8c55cd" +dependencies = [ + "thiserror 2.0.12", +] + +[[package]] +name = "socket2" +version = "0.5.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e22376abed350d73dd1cd119b57ffccad95b4e585a7cda43e286245ce23c0678" +dependencies = [ + "libc", + "windows-sys 0.52.0", +] + +[[package]] +name = "spin" +version = "0.9.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" +dependencies = [ + "lock_api", +] + +[[package]] +name = "spin" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d5fe4ccb98d9c292d56fec89a5e07da7fc4cf0dc11e156b41793132775d3e591" +dependencies = [ + "lock_api", +] + +[[package]] +name = "spin_on" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "076e103ed41b9864aa838287efe5f4e3a7a0362dd00671ae62a212e5e4612da2" +dependencies = [ + "pin-utils", +] + +[[package]] +name = "stable_deref_trait" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" + +[[package]] +name = "static_assertions" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" + +[[package]] +name = "strsim" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" [[package]] -name = "svgbobdoc" -version = "0.3.0" +name = "subtle" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" + +[[package]] +name = "svgbobdoc" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2c04b93fc15d79b39c63218f15e3fdffaa4c227830686e3b7c5f41244eb3e50" +dependencies = [ + "base64 0.13.1", + "proc-macro2", + "quote", + "syn 1.0.109", + "unicode-width", +] + +[[package]] +name = "syn" +version = "1.0.109" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "2.0.104" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17b6f705963418cdb9927482fa304bc562ece2fdd4f616084c50b7023b435a40" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "sync_wrapper" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2c04b93fc15d79b39c63218f15e3fdffaa4c227830686e3b7c5f41244eb3e50" +checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263" +dependencies = [ + "futures-core", +] + +[[package]] +name = "synstructure" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" dependencies = [ - "base64", "proc-macro2", "quote", - "syn 1.0.109", - "unicode-width", + "syn 2.0.104", +] + +[[package]] +name = "system-configuration" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b" +dependencies = [ + "bitflags 2.9.1", + "core-foundation", + "system-configuration-sys", +] + +[[package]] +name = "system-configuration-sys" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e1d1b10ced5ca923a1fcb8d03e96b8d3268065d724548c0211415ff6ac6bac4" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "tar" +version = "0.4.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d863878d212c87a19c1a610eb53bb01fe12951c0501cf5a0d65f724914a667a" +dependencies = [ + "filetime", + "libc", + "xattr", +] + +[[package]] +name = "tempfile" +version = "3.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8a64e3985349f2441a1a9ef0b853f869006c3855f2cda6862a94d26ebb9d6a1" +dependencies = [ + "fastrand", + "getrandom 0.3.3", + "once_cell", + "rustix", + "windows-sys 0.59.0", +] + +[[package]] +name = "thiserror" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" +dependencies = [ + "thiserror-impl 1.0.69", +] + +[[package]] +name = "thiserror" +version = "2.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708" +dependencies = [ + "thiserror-impl 2.0.12", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.104", +] + +[[package]] +name = "thiserror-impl" +version = "2.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.104", +] + +[[package]] +name = "timer_list" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "158b52ace9609dd94f4af338f4828ff23b600d9160def8c001f2c73885521936" + +[[package]] +name = "tiny-keccak" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237" +dependencies = [ + "crunchy", +] + +[[package]] +name = "tinystr" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d4f6d1145dcb577acf783d4e601bc1d76a13337bb54e6233add580b07344c8b" +dependencies = [ + "displaydoc", + "zerovec", +] + +[[package]] +name = "tock-registers" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "696941a0aee7e276a165a978b37918fd5d22c55c3d6bda197813070ca9c0f21c" + +[[package]] +name = "tock-registers" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b9e2fdb3a1e862c0661768b7ed25390811df1947a8acbfbefe09b47078d93c4" + +[[package]] +name = "tokio" +version = "1.46.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0cc3a2344dafbe23a245241fe8b09735b521110d30fcefbbd5feb1797ca35d17" +dependencies = [ + "backtrace", + "bytes", + "io-uring", + "libc", + "mio", + "pin-project-lite", + "slab", + "socket2", + "windows-sys 0.52.0", +] + +[[package]] +name = "tokio-native-tls" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" +dependencies = [ + "native-tls", + "tokio", +] + +[[package]] +name = "tokio-rustls" +version = "0.26.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e727b36a1a0e8b74c376ac2211e40c2c8af09fb4013c60d910495810f008e9b" +dependencies = [ + "rustls", + "tokio", +] + +[[package]] +name = "tokio-util" +version = "0.7.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "66a539a9ad6d5d281510d5bd368c973d636c02dbf8a67300bfb6b950696ad7df" +dependencies = [ + "bytes", + "futures-core", + "futures-sink", + "pin-project-lite", + "tokio", +] + +[[package]] +name = "toml" +version = "0.8.14" +source = "git+https://github.com/arceos-hypervisor/toml.git?branch=no_std#fdb24a160d68ee9f8f42b34fffaa3640e94ed604" +dependencies = [ + "hashbrown 0.14.5", + "serde", + "serde_spanned 0.6.6", + "toml_datetime 0.6.6", + "toml_edit 0.22.15", +] + +[[package]] +name = "toml" +version = "0.8.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc1beb996b9d83529a9e75c17a1686767d148d70663143c7854d8b4a09ced362" +dependencies = [ + "serde", + "serde_spanned 0.6.9", + "toml_datetime 0.6.11", + "toml_edit 0.22.27", +] + +[[package]] +name = "toml_datetime" +version = "0.6.6" +source = "git+https://github.com/arceos-hypervisor/toml.git?branch=no_std#fdb24a160d68ee9f8f42b34fffaa3640e94ed604" +dependencies = [ + "serde", +] + +[[package]] +name = "toml_datetime" +version = "0.6.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22cddaf88f4fbc13c51aebbf5f8eceb5c7c5a9da2ac40a13519eb5b0a0e8f11c" +dependencies = [ + "serde", +] + +[[package]] +name = "toml_edit" +version = "0.22.15" +source = "git+https://github.com/arceos-hypervisor/toml.git?branch=no_std#fdb24a160d68ee9f8f42b34fffaa3640e94ed604" +dependencies = [ + "ahash", + "hashbrown 0.14.5", + "indexmap", + "serde", + "serde_spanned 0.6.6", + "toml_datetime 0.6.6", + "winnow 0.6.26", +] + +[[package]] +name = "toml_edit" +version = "0.22.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a" +dependencies = [ + "indexmap", + "serde", + "serde_spanned 0.6.9", + "toml_datetime 0.6.11", + "toml_write", + "winnow 0.7.11", +] + +[[package]] +name = "toml_write" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d99f8c9a7727884afe522e9bd5edbfc91a3312b36a77b5fb8926e4c31a41801" + +[[package]] +name = "tower" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d039ad9159c98b70ecfd540b2573b97f7f52c3e8d9f8ad57a24b916a536975f9" +dependencies = [ + "futures-core", + "futures-util", + "pin-project-lite", + "sync_wrapper", + "tokio", + "tower-layer", + "tower-service", +] + +[[package]] +name = "tower-http" +version = "0.6.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adc82fd73de2a9722ac5da747f12383d2bfdb93591ee6c58486e0097890f05f2" +dependencies = [ + "bitflags 2.9.1", + "bytes", + "futures-util", + "http", + "http-body", + "iri-string", + "pin-project-lite", + "tower", + "tower-layer", + "tower-service", +] + +[[package]] +name = "tower-layer" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e" + +[[package]] +name = "tower-service" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" + +[[package]] +name = "tracing" +version = "0.1.41" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" +dependencies = [ + "pin-project-lite", + "tracing-core", +] + +[[package]] +name = "tracing-core" +version = "0.1.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9d12581f227e93f094d3af2ae690a574abb8a2b9b7a96e7cfe9647b2b617678" +dependencies = [ + "once_cell", +] + +[[package]] +name = "try-lock" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" + +[[package]] +name = "typeid" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc7d623258602320d5c55d1bc22793b57daff0ec7efc270ea7d55ce1d5f5471c" + +[[package]] +name = "uart_16550" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e492212ac378a5e00da953718dafb1340d9fbaf4f27d6f3c5cab03d931d1c049" +dependencies = [ + "bitflags 2.9.1", + "rustversion", + "x86", +] + +[[package]] +name = "unicode-ident" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" + +[[package]] +name = "unicode-width" +version = "0.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af" + +[[package]] +name = "unicode-xid" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" + +[[package]] +name = "untrusted" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" + +[[package]] +name = "url" +version = "2.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" +dependencies = [ + "form_urlencoded", + "idna", + "percent-encoding", ] [[package]] -name = "syn" -version = "1.0.109" +name = "utf8_iter" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" + +[[package]] +name = "utf8parse" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" + +[[package]] +name = "vcpkg" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" + +[[package]] +name = "version_check" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] +checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" [[package]] -name = "syn" -version = "2.0.100" +name = "virtio-drivers" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b09a44accad81e1ba1cd74a32461ba89dee89095ba17b32f5d03683b1b1fc2a0" +checksum = "aa40e09453618c7a927c08c5a990497a2954da7c2aaa6c65e0d4f0fc975f6114" dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", + "bitflags 2.9.1", + "log", + "zerocopy 0.7.35", ] [[package]] -name = "timer_list" -version = "0.1.0" +name = "volatile" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "158b52ace9609dd94f4af338f4828ff23b600d9160def8c001f2c73885521936" +checksum = "442887c63f2c839b346c192d047a7c87e73d0689c9157b00b53dcc27dd5ea793" [[package]] -name = "tiny-keccak" -version = "2.0.2" +name = "want" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237" +checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" dependencies = [ - "crunchy", + "try-lock", ] [[package]] -name = "tock-registers" -version = "0.8.1" +name = "wasi" +version = "0.11.1+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "696941a0aee7e276a165a978b37918fd5d22c55c3d6bda197813070ca9c0f21c" +checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" [[package]] -name = "tock-registers" -version = "0.9.0" +name = "wasi" +version = "0.14.2+wasi-0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b9e2fdb3a1e862c0661768b7ed25390811df1947a8acbfbefe09b47078d93c4" +checksum = "9683f9a5a998d873c0d21fcbe3c083009670149a8fab228644b8bd36b2c48cb3" +dependencies = [ + "wit-bindgen-rt", +] [[package]] -name = "toml" -version = "0.8.14" -source = "git+https://github.com/arceos-hypervisor/toml.git?branch=no_std#fdb24a160d68ee9f8f42b34fffaa3640e94ed604" +name = "wasm-bindgen" +version = "0.2.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5" dependencies = [ - "hashbrown 0.14.5", - "serde", - "serde_spanned", - "toml_datetime 0.6.6", - "toml_edit 0.22.15", + "cfg-if", + "once_cell", + "rustversion", + "wasm-bindgen-macro", ] [[package]] -name = "toml_datetime" -version = "0.6.6" -source = "git+https://github.com/arceos-hypervisor/toml.git?branch=no_std#fdb24a160d68ee9f8f42b34fffaa3640e94ed604" +name = "wasm-bindgen-backend" +version = "0.2.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6" dependencies = [ - "serde", + "bumpalo", + "log", + "proc-macro2", + "quote", + "syn 2.0.104", + "wasm-bindgen-shared", ] [[package]] -name = "toml_datetime" -version = "0.6.8" +name = "wasm-bindgen-futures" +version = "0.4.50" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41" +checksum = "555d470ec0bc3bb57890405e5d4322cc9ea83cebb085523ced7be4144dac1e61" +dependencies = [ + "cfg-if", + "js-sys", + "once_cell", + "wasm-bindgen", + "web-sys", +] [[package]] -name = "toml_edit" -version = "0.22.15" -source = "git+https://github.com/arceos-hypervisor/toml.git?branch=no_std#fdb24a160d68ee9f8f42b34fffaa3640e94ed604" +name = "wasm-bindgen-macro" +version = "0.2.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407" dependencies = [ - "ahash", - "hashbrown 0.14.5", - "indexmap", - "serde", - "serde_spanned", - "toml_datetime 0.6.6", - "winnow 0.6.26", + "quote", + "wasm-bindgen-macro-support", ] [[package]] -name = "toml_edit" -version = "0.22.24" +name = "wasm-bindgen-macro-support" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17b4795ff5edd201c7cd6dca065ae59972ce77d1b80fa0a84d94950ece7d1474" +checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" dependencies = [ - "indexmap", - "toml_datetime 0.6.8", - "winnow 0.7.4", + "proc-macro2", + "quote", + "syn 2.0.104", + "wasm-bindgen-backend", + "wasm-bindgen-shared", ] [[package]] -name = "unicode-ident" -version = "1.0.18" +name = "wasm-bindgen-shared" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" +checksum = "1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d" +dependencies = [ + "unicode-ident", +] [[package]] -name = "unicode-width" -version = "0.1.14" +name = "web-sys" +version = "0.3.77" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af" +checksum = "33b6dd2ef9186f1f2072e409e99cd22a975331a6b3591b12c764e0e55c60d5d2" +dependencies = [ + "js-sys", + "wasm-bindgen", +] [[package]] -name = "utf8parse" -version = "0.2.2" +name = "windows-link" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" +checksum = "5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a" [[package]] -name = "version_check" -version = "0.9.5" +name = "windows-registry" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" +checksum = "5b8a9ed28765efc97bbc954883f4e6796c33a06546ebafacbabee9696967499e" +dependencies = [ + "windows-link", + "windows-result", + "windows-strings", +] [[package]] -name = "virtio-drivers" -version = "0.7.4" +name = "windows-result" +version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa40e09453618c7a927c08c5a990497a2954da7c2aaa6c65e0d4f0fc975f6114" +checksum = "56f42bd332cc6c8eac5af113fc0c1fd6a8fd2aa08a0119358686e5160d0586c6" dependencies = [ - "bitflags 2.9.0", - "log", - "zerocopy", + "windows-link", ] [[package]] -name = "volatile" -version = "0.4.6" +name = "windows-strings" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "442887c63f2c839b346c192d047a7c87e73d0689c9157b00b53dcc27dd5ea793" +checksum = "56e6c93f3a0c3b36176cb1327a4958a0353d5d166c2a35cb268ace15e91d3b57" +dependencies = [ + "windows-link", +] [[package]] -name = "wasi" -version = "0.11.0+wasi-snapshot-preview1" +name = "windows-sys" +version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +dependencies = [ + "windows-targets 0.52.6", +] [[package]] name = "windows-sys" @@ -1631,7 +3726,16 @@ version = "0.59.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" dependencies = [ - "windows-targets", + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-sys" +version = "0.60.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" +dependencies = [ + "windows-targets 0.53.2", ] [[package]] @@ -1640,14 +3744,30 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" dependencies = [ - "windows_aarch64_gnullvm", - "windows_aarch64_msvc", - "windows_i686_gnu", - "windows_i686_gnullvm", - "windows_i686_msvc", - "windows_x86_64_gnu", - "windows_x86_64_gnullvm", - "windows_x86_64_msvc", + "windows_aarch64_gnullvm 0.52.6", + "windows_aarch64_msvc 0.52.6", + "windows_i686_gnu 0.52.6", + "windows_i686_gnullvm 0.52.6", + "windows_i686_msvc 0.52.6", + "windows_x86_64_gnu 0.52.6", + "windows_x86_64_gnullvm 0.52.6", + "windows_x86_64_msvc 0.52.6", +] + +[[package]] +name = "windows-targets" +version = "0.53.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c66f69fcc9ce11da9966ddb31a40968cad001c5bedeb5c2b82ede4253ab48aef" +dependencies = [ + "windows_aarch64_gnullvm 0.53.0", + "windows_aarch64_msvc 0.53.0", + "windows_i686_gnu 0.53.0", + "windows_i686_gnullvm 0.53.0", + "windows_i686_msvc 0.53.0", + "windows_x86_64_gnu 0.53.0", + "windows_x86_64_gnullvm 0.53.0", + "windows_x86_64_msvc 0.53.0", ] [[package]] @@ -1656,48 +3776,96 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86b8d5f90ddd19cb4a147a5fa63ca848db3df085e25fee3cc10b39b6eebae764" + [[package]] name = "windows_aarch64_msvc" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" +[[package]] +name = "windows_aarch64_msvc" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7651a1f62a11b8cbd5e0d42526e55f2c99886c77e007179efff86c2b137e66c" + [[package]] name = "windows_i686_gnu" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" +[[package]] +name = "windows_i686_gnu" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1dc67659d35f387f5f6c479dc4e28f1d4bb90ddd1a5d3da2e5d97b42d6272c3" + [[package]] name = "windows_i686_gnullvm" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" +[[package]] +name = "windows_i686_gnullvm" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ce6ccbdedbf6d6354471319e781c0dfef054c81fbc7cf83f338a4296c0cae11" + [[package]] name = "windows_i686_msvc" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" +[[package]] +name = "windows_i686_msvc" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "581fee95406bb13382d2f65cd4a908ca7b1e4c2f1917f143ba16efe98a589b5d" + [[package]] name = "windows_x86_64_gnu" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" +[[package]] +name = "windows_x86_64_gnu" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e55b5ac9ea33f2fc1716d1742db15574fd6fc8dadc51caab1c16a3d3b4190ba" + [[package]] name = "windows_x86_64_gnullvm" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0a6e035dd0599267ce1ee132e51c27dd29437f63325753051e71dd9e42406c57" + [[package]] name = "windows_x86_64_msvc" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" +[[package]] +name = "windows_x86_64_msvc" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486" + [[package]] name = "winnow" version = "0.6.26" @@ -1706,24 +3874,39 @@ checksum = "1e90edd2ac1aa278a5c4599b1d89cf03074b610800f866d4026dc199d7929a28" [[package]] name = "winnow" -version = "0.7.4" +version = "0.7.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e97b544156e9bebe1a0ffbc03484fc1ffe3100cbce3ffb17eac35f7cdd7ab36" +checksum = "74c7b26e3480b707944fc872477815d29a8e429d2f93a1ce000f5fa84a15cbcd" dependencies = [ "memchr", ] +[[package]] +name = "wit-bindgen-rt" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1" +dependencies = [ + "bitflags 2.9.1", +] + +[[package]] +name = "writeable" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea2f10b9bb0928dfb1b42b65e1f9e36f7f54dbdf08457afefb38afcdec4fa2bb" + [[package]] name = "x2apic" -version = "0.4.3" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cbcd582541cbb8ef1dfc24a3c849a64ff074b1b512af723ad90056558d424602" +checksum = "db5cbcb7faedfa15f90376004ffc0cb42e427623ab56629f0073d275ee8e7043" dependencies = [ "bit", "bitflags 1.3.2", "paste", "raw-cpuid 10.7.0", - "x86_64 0.14.13", + "x86_64", ] [[package]] @@ -1737,18 +3920,6 @@ dependencies = [ "raw-cpuid 10.7.0", ] -[[package]] -name = "x86_64" -version = "0.14.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c101112411baafbb4bf8d33e4c4a80ab5b02d74d2612331c61e8192fc9710491" -dependencies = [ - "bit_field", - "bitflags 2.9.0", - "rustversion", - "volatile", -] - [[package]] name = "x86_64" version = "0.15.2" @@ -1756,7 +3927,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0f042214de98141e9c8706e8192b73f56494087cc55ebec28ce10f26c5c364ae" dependencies = [ "bit_field", - "bitflags 2.9.0", + "bitflags 2.9.1", "rustversion", "volatile", ] @@ -1764,22 +3935,76 @@ dependencies = [ [[package]] name = "x86_vcpu" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/x86_vcpu.git#2cc42349f23c9a38723710a38d34b080255520e4" +source = "git+https://github.com/arceos-hypervisor/x86_vcpu.git#0d73ec10b04e187c6aabd110123a6bf96e2f2ae0" dependencies = [ "axaddrspace", + "axdevice_base", "axerrno", "axvcpu", + "axvisor_api", "bit_field", - "bitflags 2.9.0", + "bitflags 2.9.1", "cfg-if", "crate_interface", "log", - "memory_addr", + "memory_addr 0.3.2", "numeric-enum-macro", "page_table_entry", + "paste", "raw-cpuid 11.5.0", "x86", - "x86_64 0.15.2", + "x86_64", + "x86_vlapic", +] + +[[package]] +name = "x86_vlapic" +version = "0.1.0" +source = "git+https://github.com/arceos-hypervisor/x86_vlapic.git#7fdd40cd67711cdf8cfa1673f1d62d326d66b1d0" +dependencies = [ + "axaddrspace", + "axdevice_base", + "axerrno", + "axvisor_api", + "bit", + "log", + "memory_addr 0.3.2", + "paste", + "tock-registers 0.9.0", +] + +[[package]] +name = "xattr" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af3a19837351dc82ba89f8a125e22a3c475f05aba604acc023d62b2739ae2909" +dependencies = [ + "libc", + "rustix", +] + +[[package]] +name = "yoke" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f41bb01b8226ef4bfd589436a297c53d118f65921786300e427be8d487695cc" +dependencies = [ + "serde", + "stable_deref_trait", + "yoke-derive", + "zerofrom", +] + +[[package]] +name = "yoke-derive" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38da3c9736e16c5d3c8c597a9aaa5d1fa565d0532ae05e27c24aa62fb32c0ab6" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.104", + "synstructure", ] [[package]] @@ -1789,7 +4014,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" dependencies = [ "byteorder", - "zerocopy-derive", + "zerocopy-derive 0.7.35", +] + +[[package]] +name = "zerocopy" +version = "0.8.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1039dd0d3c310cf05de012d8a39ff557cb0d23087fd44cad61df08fc31907a2f" +dependencies = [ + "zerocopy-derive 0.8.26", ] [[package]] @@ -1800,5 +4034,76 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.104", +] + +[[package]] +name = "zerocopy-derive" +version = "0.8.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ecf5b4cc5364572d7f4c329661bcc82724222973f2cab6f050a4e5c22f75181" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.104", +] + +[[package]] +name = "zerofrom" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5" +dependencies = [ + "zerofrom-derive", +] + +[[package]] +name = "zerofrom-derive" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.104", + "synstructure", +] + +[[package]] +name = "zeroize" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" + +[[package]] +name = "zerotrie" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "36f0bbd478583f79edad978b407914f61b2972f5af6fa089686016be8f9af595" +dependencies = [ + "displaydoc", + "yoke", + "zerofrom", +] + +[[package]] +name = "zerovec" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a05eb080e015ba39cc9e23bbe5e7fb04d5fb040350f99f34e338d5fdd294428" +dependencies = [ + "yoke", + "zerofrom", + "zerovec-derive", +] + +[[package]] +name = "zerovec-derive" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b96237efa0c878c64bd89c436f661be4e46b2f3eff1ebb976f7ef2321d2f58f" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.104", ] diff --git a/Cargo.toml b/Cargo.toml index d5a4b78b..118ec13b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -2,52 +2,53 @@ lto = true [package] -name = "axvisor" -version = "0.1.0" -edition = "2024" authors = ["Keyang Hu "] +edition = "2024" exclude = ["crates"] license = "GPL-3.0-or-later OR Apache-2.0 OR MulanPubL-2.0 OR MulanPSL2" +name = "axvisor" +version = "0.1.0" [features] fs = ["axstd/fs"] [dependencies] -log = "=0.4.21" bitflags = "2.2" cfg-if = "1.0" -spin = "0.9" kspin = "0.1" lazyinit = "0.2" +log = "=0.4.21" +spin = "0.9" timer_list = "0.1.0" # System dependent modules provided by ArceOS. -axstd = { git = "https://github.com/arceos-hypervisor/arceos.git", branch = "vmm", features = [ - "alloc", - "paging", - # "fs", - "irq", - "hv", - "multitask", - # "sched_rr" +axstd = {git = "https://github.com/arceos-hypervisor/arceos.git", branch = "dev-dyn-driver", features = [ + "alloc", + "paging", + "irq", + "multitask", + "driver-dyn", ]} # System dependent modules provided by ArceOS-Hypervisor. -axvm = { git = "https://github.com/arceos-hypervisor/axvm.git" } -axvcpu = { git = "https://github.com/arceos-hypervisor/axvcpu.git" } -axaddrspace = { git = "https://github.com/arceos-hypervisor/axaddrspace.git" } +axaddrspace = {git = "https://github.com/arceos-hypervisor/axaddrspace.git"} +axvcpu = {git = "https://github.com/arceos-hypervisor/axvcpu.git"} +axvm = {git = "https://github.com/arceos-hypervisor/axvm.git"} # System independent crates provided by ArceOS, these crates could be imported by remote url. -crate_interface = "0.1" axerrno = "0.1.0" -memory_addr = "0.3" -page_table_entry = { version = "0.5", features = ["arm-el2"] } +crate_interface = "0.1" +memory_addr = "=0.4.0" +page_table_entry = {version = "0.5", features = ["arm-el2"]} page_table_multiarch = "0.5" -percpu = { version = "0.2.0", features = ["arm-el2"] } +percpu = {version = "0.2", features = ["arm-el2"]} + +axplat-aarch64-dyn = {git = "https://github.com/arceos-hypervisor/axplat-aarch64-dyn", features = ["irq", "smp", "hv"]} [build-dependencies] -toml = { git = "https://github.com/arceos-hypervisor/toml.git", branch = "no_std" } -axconfig = { git = "https://github.com/arceos-hypervisor/arceos.git", branch = "vmm" } +axconfig = {git = "https://github.com/arceos-hypervisor/arceos.git", branch = "dev-dyn-driver"} prettyplease = "0.2" quote = "1.0" syn = "2.0" +toml = {git = "https://github.com/arceos-hypervisor/toml.git", branch = "no_std"} + diff --git a/Makefile b/Makefile index daec2baa..25cb1540 100644 --- a/Makefile +++ b/Makefile @@ -1,246 +1,49 @@ -# Copied from the `ArceOS` project. - -# Available arguments: -# * General options: -# - `ARCH`: Target architecture: x86_64, riscv64, aarch64 -# - `PLATFORM`: Target platform in the `platforms` directory -# - `SMP`: Number of CPUs -# - `MODE`: Build mode: release, debug -# - `LOG:` Logging level: warn, error, info, debug, trace -# - `V`: Verbose level: (empty), 1, 2 -# - `GICV3`: Enable GICv3 (default is n) -# - `TARGET_DIR`: Artifact output directory (cargo target directory) -# - `EXTRA_CONFIG`: Extra config specification file -# - `OUT_CONFIG`: Final config file that takes effect -# * App options: -# - `A` or `APP`: Path to the application -# - `FEATURES`: Features os ArceOS modules to be enabled. -# - `APP_FEATURES`: Features of (rust) apps to be enabled. -# * QEMU options: -# - `BLK`: Enable storage devices (virtio-blk) -# - `NET`: Enable network devices (virtio-net) -# - `GRAPHIC`: Enable display devices and graphic output (virtio-gpu) -# - `BUS`: Device bus type: mmio, pci -# - `MEM`: Memory size (default is 128M) -# - `DISK_IMG`: Path to the virtual disk image -# - `ACCEL`: Enable hardware acceleration (KVM on linux) -# - `QEMU_LOG`: Enable QEMU logging (log file is "qemu.log") -# - `NET_DUMP`: Enable network packet dump (log file is "netdump.pcap") -# - `NET_DEV`: QEMU netdev backend types: user, tap, bridge -# - `VFIO_PCI`: PCI device address in the format "bus:dev.func" to passthrough -# - `VHOST`: Enable vhost-net for tap backend (only for `NET_DEV=tap`) -# * Network options: -# - `IP`: ArceOS IPv4 address (default is 10.0.2.15 for QEMU user netdev) -# - `GW`: Gateway IPv4 address (default is 10.0.2.2 for QEMU user netdev) - -# General options -ARCH ?= x86_64 -PLATFORM ?= -SMP ?= 1 -MODE ?= release -LOG ?= warn -GICV3 ?= n -V ?= -EXTRA_CONFIG ?= -OUT_CONFIG ?= $(PWD)/.axconfig.toml - -# App options -# A ?= apps/helloworld -A ?= $(CURDIR) -APP ?= $(A) -FEATURES ?= -APP_FEATURES ?= -# make `FEATURES=page-alloc-64g` as the default configuration -MEM_FEATURES ?= page-alloc-64g -override FEATURES := $(FEATURES),$(MEM_FEATURES) - -# QEMU options -BLK ?= y -NET ?= n -GRAPHIC ?= n -# To keep consistent with the latest `main` branch of ArceOS. -MEM ?= 4G -BUS ?= pci - -DISK_IMG ?= disk.img -QEMU_LOG ?= n -NET_DUMP ?= n -NET_DEV ?= user -VFIO_PCI ?= -VHOST ?= n - -# Network options -IP ?= 10.0.2.15 -GW ?= 10.0.2.2 - -# App type -ifeq ($(wildcard $(APP)),) - $(error Application path "$(APP)" is not valid) -endif - -ifneq ($(wildcard $(APP)/Cargo.toml),) - APP_TYPE := rust -else - APP_TYPE := c -endif - -# Feature parsing -include scripts/make/features.mk -# Platform resolving -include scripts/make/platform.mk - -# Target -ifeq ($(ARCH), x86_64) - TARGET := x86_64-unknown-none -else ifeq ($(ARCH), riscv64) - TARGET := riscv64gc-unknown-none-elf -else ifeq ($(ARCH), aarch64) - ifeq ($(findstring fp_simd,$(FEATURES)),) - TARGET := aarch64-unknown-none-softfloat - else - TARGET := aarch64-unknown-none - endif -endif - -export AX_ARCH=$(ARCH) -export AX_PLATFORM=$(PLAT_NAME) -export AX_SMP=$(SMP) -export AX_MODE=$(MODE) -export AX_LOG=$(LOG) -export AX_TARGET=$(TARGET) -export AX_IP=$(IP) -export AX_GW=$(GW) -export AX_GICV3=$(GICV3) - -ifneq ($(filter $(MAKECMDGOALS),unittest unittest_no_fail_fast),) - # When running unit tests, set `AX_CONFIG_PATH` to empty for dummy config - unexport AX_CONFIG_PATH -else - export AX_CONFIG_PATH=$(OUT_CONFIG) -endif - -# The pathes of the VM configurations -ifneq ($(VM_CONFIGS),) - export AXVISOR_VM_CONFIGS=$(VM_CONFIGS) -endif - -# Binutils -CROSS_COMPILE ?= $(ARCH)-linux-musl- -CC := $(CROSS_COMPILE)gcc -AR := $(CROSS_COMPILE)ar -RANLIB := $(CROSS_COMPILE)ranlib -LD := rust-lld -flavor gnu - -OBJDUMP ?= rust-objdump -d --print-imm-hex --x86-asm-syntax=intel -OBJCOPY ?= rust-objcopy --binary-architecture=$(ARCH) -GDB ?= gdb-multiarch - -# Paths -OUT_DIR ?= $(APP) - -APP_NAME := $(shell basename $(APP)) -LD_SCRIPT := $(OUT_DIR)/target/$(TARGET)/$(MODE)/linker_$(PLAT_NAME).lds -OUT_ELF := $(OUT_DIR)/$(APP_NAME)_$(PLAT_NAME).elf -OUT_BIN := $(OUT_DIR)/$(APP_NAME)_$(PLAT_NAME).bin -OUT_ASM := $(OUT_DIR)/$(APP_NAME)_$(PLAT_NAME).asm - -all: build - -include scripts/make/utils.mk -include scripts/make/config.mk -include scripts/make/build.mk -include scripts/make/qemu.mk -include scripts/make/test.mk -ifeq ($(PLAT_NAME), aarch64-raspi4) - include scripts/make/raspi4.mk -else ifeq ($(PLAT_NAME), aarch64-bsta1000b-virt-hv) - include scripts/make/bsta1000b-fada.mk -else ifeq ($(PLAT_NAME), aarch64-rk3588j-hv) - include scripts/make/rk3588.mk -endif - -defconfig: _axconfig-gen - $(call defconfig) - -oldconfig: _axconfig-gen - $(call oldconfig) - -build: $(OUT_DIR) $(OUT_BIN) - -disasm: - $(OBJDUMP) $(OUT_ELF) | less - -run: build justrun - -justrun: - $(call run_qemu) - -debug: build - $(call run_qemu_debug) - -gdb: - $(GDB) $(OUT_ELF) \ - -ex 'target remote localhost:1234' \ - -ex 'b rust_entry' \ - -ex 'disp /16i $$pc' - -clippy: oldconfig -ifeq ($(origin ARCH), command line) - $(call cargo_clippy,--target $(TARGET)) -else - $(call cargo_clippy) -endif - -doc: oldconfig - $(call cargo_doc) - -doc_check_missing: - $(call cargo_doc) - -fmt: - cargo fmt --all - -fmt_c: - @clang-format --style=file -i $(shell find ulib/axlibc -iname '*.c' -o -iname '*.h') - -test: - $(call app_test) - -unittest: - $(call unit_test) - -unittest_no_fail_fast: - $(call unit_test,--no-fail-fast) - -disk_img: -ifneq ($(wildcard $(DISK_IMG)),) - @printf "$(YELLOW_C)warning$(END_C): disk image \"$(DISK_IMG)\" already exists!\n" -else - $(call make_disk_image,fat32,$(DISK_IMG)) -endif - -ubuntu_img: -ifneq ($(wildcard $(DISK_IMG)),) - @printf "$(YELLOW_C)warning$(END_C): disk image \"$(DISK_IMG)\" already exists!\n" -else - $(call make_guest_ubuntu_ext4,$(DISK_IMG),$(ARCH_STR)) -endif - -clean: clean_c - rm -rf $(APP)/target - rm -rf $(APP)/*.bin $(APP)/*.elf $(APP)/*.asm $(OUT_CONFIG) - cargo clean - -clean_c: - rm -rf ulib/axlibc/build_* - rm -rf $(app-objs) - -# clean: clean_c -# rm -rf $(APP)/*.bin $(APP)/*.elf -# cargo clean - -# clean_c:: -# rm -rf ulib/axlibc/build_* -# rm -rf $(app-objs) - -.PHONY: all build disasm run justrun debug clippy fmt fmt_c test test_no_fail_fast clean clean_c doc disk_image +# 默认目标 +.PHONY: default +default: setup-arceos + @echo "执行 arceos 构建..." + @$(MAKE) -C .arceos A=$(shell pwd) $(MAKEFLAGS) + +# 设置 arceos 依赖 +.PHONY: setup-arceos +setup-arceos: + @if [ ! -d ".arceos" ]; then \ + echo "正在克隆 arceos 仓库..."; \ + git clone https://github.com/arceos-org/arceos .arceos; \ + echo "arceos 仓库克隆完成"; \ + else \ + echo ".arceos 文件夹已存在"; \ + fi + +# 清理目标 +.PHONY: clean +clean: + @echo "清理构建文件..." + @rm -rf target/ + +# 深度清理(包括删除 .arceos 文件夹) +.PHONY: clean-all +clean-all: clean + @echo "删除 .arceos 文件夹..." + @rm -rf .arceos + +# 帮助信息 +.PHONY: help +help: + @echo "可用的 make 目标:" + @echo " default (或直接运行 make) - 设置 arceos 依赖并构建" + @echo " setup-arceos - 检查并克隆 arceos 仓库" + @echo " clean - 清理构建文件" + @echo " clean-all - 清理所有文件(包括 .arceos)" + @echo " help - 显示此帮助信息" + @echo "" + @echo "所有其他目标和参数都会透传给 .arceos/Makefile" + @echo "例如:" + @echo " make run - 构建并运行" + @echo " make ARCH=aarch64 - 指定架构构建" + @echo " make debug MODE=debug - 调试模式构建" + +# 透传所有其他目标到 .arceos +%: setup-arceos + @echo "透传目标 '$@' 到 arceos..." + @$(MAKE) -C .arceos A=$(shell pwd) LD_SCRIPT=link.x $@ $(MAKEFLAGS) \ No newline at end of file diff --git a/build.rs b/build.rs index 0106e6ed..74981cb8 100644 --- a/build.rs +++ b/build.rs @@ -262,7 +262,7 @@ fn main() -> io::Result<()> { } fn gen_linker_script(arch: &str, platform: &str) -> io::Result<()> { - let fname = format!("linker_{}.lds", platform); + let fname = format!("linker_{platform}.lds"); let output_arch = if arch == "x86_64" { "i386:x86-64" } else if arch.contains("riscv") { @@ -276,7 +276,7 @@ fn gen_linker_script(arch: &str, platform: &str) -> io::Result<()> { "%KERNEL_BASE%", &format!("{:#x}", axconfig::plat::KERNEL_BASE_VADDR), ); - let ld_content = ld_content.replace("%SMP%", &format!("{}", axconfig::SMP)); + let ld_content = ld_content.replace("%SMP%", &format!("{}", axconfig::plat::CPU_NUM)); // target///build/axvisor-xxxx/out let out_dir = std::env::var("OUT_DIR").unwrap(); diff --git a/rust-toolchain.toml b/rust-toolchain.toml index 7c587ea0..ff27a9aa 100644 --- a/rust-toolchain.toml +++ b/rust-toolchain.toml @@ -1,5 +1,5 @@ [toolchain] profile = "minimal" -channel = "nightly-2024-12-25" +channel = "nightly-2025-05-20" components = ["rust-src", "llvm-tools", "rustfmt", "clippy"] targets = ["x86_64-unknown-none", "riscv64gc-unknown-none-elf", "aarch64-unknown-none", "aarch64-unknown-none-softfloat"] diff --git a/src/hal.rs b/src/hal.rs index 3a73f51c..011bde37 100644 --- a/src/hal.rs +++ b/src/hal.rs @@ -1,4 +1,4 @@ -use std::os::arceos; +use std::os::arceos::{self, modules::axhal::percpu::this_cpu_id}; use memory_addr::{PAGE_SIZE_4K, align_up_4k}; use page_table_multiarch::PagingHandler; @@ -92,7 +92,6 @@ pub(crate) fn enable_virtualization() { use arceos::api::config; use arceos::api::task::{AxCpuMask, ax_set_current_affinity}; - use arceos::modules::axhal::cpu::this_cpu_id; static CORES: AtomicUsize = AtomicUsize::new(0); diff --git a/src/main.rs b/src/main.rs index b34d20c3..402ad788 100644 --- a/src/main.rs +++ b/src/main.rs @@ -8,6 +8,8 @@ extern crate alloc; extern crate axstd as std; +extern crate axplat_aarch64_dyn; + mod hal; mod logo; mod task; From ecd06b33ad5043f3c1b5902e9eb642845040e75a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E7=9D=BF?= Date: Fri, 11 Jul 2025 15:06:51 +0800 Subject: [PATCH 063/219] update --- Cargo.lock | 71 +++++++++++++++++++++--------------------------- src/hal.rs | 12 ++++---- src/vmm/vcpus.rs | 32 ++++++++++++++++++++-- 3 files changed, 68 insertions(+), 47 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 785826db..a5a38310 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2,15 +2,6 @@ # It is not intended for manual editing. version = 4 -[[package]] -name = "aarch64-cpu" -version = "9.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac42a04a61c19fc8196dd728022a784baecc5d63d7e256c01ad1b3fbfab26287" -dependencies = [ - "tock-registers 0.8.1", -] - [[package]] name = "aarch64-cpu" version = "10.0.0" @@ -26,7 +17,7 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f2a64358f36fba7d684ef367d38a17f6bd2316b97f0a2ad9eb3fe8cacbaed50a" dependencies = [ - "aarch64-cpu 10.0.0", + "aarch64-cpu", "tock-registers 0.9.0", ] @@ -161,10 +152,9 @@ checksum = "e16d2d3311acee920a9eb8d33b8cbc1787ce4a264e85f964c2404b969bdcd487" [[package]] name = "arceos_api" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=dev-dyn-driver#40fbaa105b563c063027246af25068599759f5ec" dependencies = [ "axalloc", - "axconfig", + "axconfig 0.1.0", "axdriver", "axerrno", "axfeat", @@ -183,7 +173,7 @@ version = "0.14.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a886a953642fbf21eb5928c49a05f021fae007219ae8cb2dafbf403dfeba974a" dependencies = [ - "aarch64-cpu 10.0.0", + "aarch64-cpu", "bitflags 2.9.1", "enum_dispatch", "log", @@ -222,7 +212,7 @@ dependencies = [ name = "arm_vcpu" version = "0.1.0" dependencies = [ - "aarch64-cpu 9.4.0", + "aarch64-cpu", "aarch64_sysreg", "axaddrspace", "axerrno", @@ -231,7 +221,7 @@ dependencies = [ "numeric-enum-macro", "percpu", "spin 0.9.8", - "tock-registers 0.8.1", + "tock-registers 0.10.0", ] [[package]] @@ -283,7 +273,6 @@ dependencies = [ [[package]] name = "axalloc" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=dev-dyn-driver#40fbaa105b563c063027246af25068599759f5ec" dependencies = [ "allocator", "axerrno", @@ -293,6 +282,13 @@ dependencies = [ "memory_addr 0.4.0", ] +[[package]] +name = "axconfig" +version = "0.1.0" +dependencies = [ + "axconfig-macros", +] + [[package]] name = "axconfig" version = "0.1.0" @@ -329,7 +325,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e09bc1235e3da45e942b50f47812f8397ad84cb490264bf914c65ac44e6f8b1d" dependencies = [ - "aarch64-cpu 10.0.0", + "aarch64-cpu", "cfg-if", "lazyinit", "linkme", @@ -373,11 +369,10 @@ dependencies = [ [[package]] name = "axdriver" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=dev-dyn-driver#40fbaa105b563c063027246af25068599759f5ec" dependencies = [ "arm-gic-driver", "axalloc", - "axconfig", + "axconfig 0.1.0", "axdriver_base", "axdriver_block", "axdriver_pci", @@ -436,7 +431,6 @@ dependencies = [ [[package]] name = "axfeat" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=dev-dyn-driver#40fbaa105b563c063027246af25068599759f5ec" dependencies = [ "axalloc", "axdriver", @@ -451,7 +445,6 @@ dependencies = [ [[package]] name = "axfs" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=dev-dyn-driver#40fbaa105b563c063027246af25068599759f5ec" dependencies = [ "axdriver", "axdriver_block", @@ -505,11 +498,10 @@ dependencies = [ [[package]] name = "axhal" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=dev-dyn-driver#40fbaa105b563c063027246af25068599759f5ec" dependencies = [ - "aarch64-cpu 10.0.0", + "aarch64-cpu", "axalloc", - "axconfig", + "axconfig 0.1.0", "axcpu", "axlog", "axplat", @@ -540,7 +532,6 @@ dependencies = [ [[package]] name = "axlog" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=dev-dyn-driver#40fbaa105b563c063027246af25068599759f5ec" dependencies = [ "cfg-if", "crate_interface", @@ -551,10 +542,9 @@ dependencies = [ [[package]] name = "axmm" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=dev-dyn-driver#40fbaa105b563c063027246af25068599759f5ec" dependencies = [ "axalloc", - "axconfig", + "axconfig 0.1.0", "axerrno", "axhal", "kspin", @@ -567,7 +557,6 @@ dependencies = [ [[package]] name = "axns" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=dev-dyn-driver#40fbaa105b563c063027246af25068599759f5ec" dependencies = [ "crate_interface", "lazyinit", @@ -593,7 +582,7 @@ name = "axplat-aarch64-dyn" version = "0.1.0" source = "git+https://github.com/arceos-hypervisor/axplat-aarch64-dyn#141aa634467891026949f93985a70c36248ac6ea" dependencies = [ - "aarch64-cpu 10.0.0", + "aarch64-cpu", "aarch64-cpu-ext", "any-uart", "axconfig-macros", @@ -620,7 +609,7 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2f3455ad3c2e0da36047388ac263aa6cf6b80ad80a2d9f1186d73fec2f0cafc7" dependencies = [ - "aarch64-cpu 10.0.0", + "aarch64-cpu", "arm_gicv2", "arm_pl011", "arm_pl031", @@ -716,10 +705,9 @@ dependencies = [ [[package]] name = "axruntime" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=dev-dyn-driver#40fbaa105b563c063027246af25068599759f5ec" dependencies = [ "axalloc", - "axconfig", + "axconfig 0.1.0", "axdriver", "axerrno", "axfs", @@ -737,7 +725,6 @@ dependencies = [ [[package]] name = "axstd" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=dev-dyn-driver#40fbaa105b563c063027246af25068599759f5ec" dependencies = [ "arceos_api", "axerrno", @@ -750,7 +737,6 @@ dependencies = [ [[package]] name = "axsync" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=dev-dyn-driver#40fbaa105b563c063027246af25068599759f5ec" dependencies = [ "axtask", "kspin", @@ -760,9 +746,8 @@ dependencies = [ [[package]] name = "axtask" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=dev-dyn-driver#40fbaa105b563c063027246af25068599759f5ec" dependencies = [ - "axconfig", + "axconfig 0.1.0", "axhal", "cfg-if", "cpumask", @@ -792,7 +777,7 @@ name = "axvisor" version = "0.1.0" dependencies = [ "axaddrspace", - "axconfig", + "axconfig 0.1.0 (git+https://github.com/arceos-hypervisor/arceos.git?branch=dev-dyn-driver)", "axerrno", "axplat-aarch64-dyn", "axstd", @@ -2199,7 +2184,7 @@ version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ba811ef8ca8fb33d776e128624cb4fe25c9804cab96f83b822d4322431e6dd5a" dependencies = [ - "aarch64-cpu 10.0.0", + "aarch64-cpu", "bitflags 2.9.1", "memory_addr 0.4.0", "x86_64", @@ -2260,7 +2245,7 @@ version = "0.2.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "524d0fc5cd834d2179d8a88cde327b0e168dd6aedf30ce1832467a924a35594f" dependencies = [ - "aarch64-cpu 10.0.0", + "aarch64-cpu", "aarch64-cpu-ext", "bindeps-simple", "fdt-parser", @@ -2287,7 +2272,7 @@ version = "0.1.25" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7dc57cd019b296478630e9e3bd62fcd462ece02611c8cee982f7f4f64ecf48d6" dependencies = [ - "aarch64-cpu 10.0.0", + "aarch64-cpu", "aarch64-cpu-ext", "any-uart", "bitflags 2.9.1", @@ -3283,6 +3268,12 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2b9e2fdb3a1e862c0661768b7ed25390811df1947a8acbfbefe09b47078d93c4" +[[package]] +name = "tock-registers" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0293f99756f16ff352cc78c99673766a305bdb5ed7652e78df649e9967c885a" + [[package]] name = "tokio" version = "1.46.1" diff --git a/src/hal.rs b/src/hal.rs index 011bde37..edb38188 100644 --- a/src/hal.rs +++ b/src/hal.rs @@ -69,14 +69,16 @@ impl AxVCpuHal for AxVCpuHalImpl { #[cfg(target_arch = "aarch64")] fn irq_fetch() -> usize { - axhal::irq::fetch_irq() + // axhal::irq::fetch_irq() + 0 } #[cfg(target_arch = "aarch64")] fn irq_hanlder() { - let irq_num = axhal::irq::fetch_irq(); + // let irq_num = axhal::irq::fetch_irq(); + let irq_num = 0; debug!("IRQ handler {irq_num}"); - axhal::irq::handler_irq(irq_num); + axhal::irq::irq_handler(irq_num); } } @@ -95,7 +97,7 @@ pub(crate) fn enable_virtualization() { static CORES: AtomicUsize = AtomicUsize::new(0); - for cpu_id in 0..config::SMP { + for cpu_id in 0..config::plat::CPU_NUM { thread::spawn(move || { // Initialize cpu affinity here. assert!( @@ -120,7 +122,7 @@ pub(crate) fn enable_virtualization() { } // Wait for all cores to enable virtualization. - while CORES.load(Ordering::Acquire) != config::SMP { + while CORES.load(Ordering::Acquire) != config::plat::CPU_NUM { // Use `yield_now` instead of `core::hint::spin_loop` to avoid deadlock. thread::yield_now(); } diff --git a/src/vmm/vcpus.rs b/src/vmm/vcpus.rs index 1a084c01..686a7e47 100644 --- a/src/vmm/vcpus.rs +++ b/src/vmm/vcpus.rs @@ -1,6 +1,9 @@ use alloc::{collections::BTreeMap, vec::Vec}; -use core::sync::atomic::{AtomicUsize, Ordering}; +use core::{ + cell::UnsafeCell, + sync::atomic::{AtomicUsize, Ordering}, +}; use std::os::arceos::{ api::task::{AxCpuMask, ax_wait_queue_wake}, modules::axtask, @@ -20,7 +23,32 @@ const KERNEL_STACK_SIZE: usize = 0x40000; // 256 KiB /// /// TODO: find a better data structure to replace the `static mut`, something like a conditional /// variable. -static mut VM_VCPU_TASK_WAIT_QUEUE: BTreeMap = BTreeMap::new(); +static VM_VCPU_TASK_WAIT_QUEUE: Queue = Queue::new(); + +struct Queue(UnsafeCell>); + +unsafe impl Sync for Queue {} +unsafe impl Send for Queue {} + +impl Queue { + const fn new() -> Self { + Self(UnsafeCell::new(BTreeMap::new())) + } + + fn get(&self, vm_id: &usize) -> Option<&VMVCpus> { + unsafe { (*self.0.get()).get(vm_id) } + } + + fn get_mut(&self, vm_id: &usize) -> Option<&mut VMVCpus> { + unsafe { (*self.0.get()).get_mut(vm_id) } + } + + fn insert(&self, vm_id: usize, vcpus: VMVCpus) { + unsafe { + (*self.0.get()).insert(vm_id, vcpus); + } + } +} /// A structure representing the VCpus of a specific VM, including a wait queue /// and a list of tasks associated with the VCpus. From 8c0240a7266bade71592d42aa20849d980f2ac76 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E7=9D=BF?= Date: Fri, 11 Jul 2025 15:21:58 +0800 Subject: [PATCH 064/219] update --- Cargo.toml | 2 +- Makefile | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 118ec13b..0977fe0e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -22,7 +22,7 @@ spin = "0.9" timer_list = "0.1.0" # System dependent modules provided by ArceOS. -axstd = {git = "https://github.com/arceos-hypervisor/arceos.git", branch = "dev-dyn-driver", features = [ +axstd = {git = "https://github.com/arceos-hypervisor/arceos.git", branch = "vmm-dev", features = [ "alloc", "paging", "irq", diff --git a/Makefile b/Makefile index 25cb1540..1fe72131 100644 --- a/Makefile +++ b/Makefile @@ -2,14 +2,14 @@ .PHONY: default default: setup-arceos @echo "执行 arceos 构建..." - @$(MAKE) -C .arceos A=$(shell pwd) $(MAKEFLAGS) + @$(MAKE) -C .arceos A=$(shell pwd) LD_SCRIPT=link.x $(MAKEFLAGS) # 设置 arceos 依赖 .PHONY: setup-arceos setup-arceos: @if [ ! -d ".arceos" ]; then \ echo "正在克隆 arceos 仓库..."; \ - git clone https://github.com/arceos-org/arceos .arceos; \ + git clone https://github.com/arceos-hypervisor/arceos -b vmm-dev .arceos; \ echo "arceos 仓库克隆完成"; \ else \ echo ".arceos 文件夹已存在"; \ From 01ff25c6bd4990c4c5df688a2484bc73e1c52095 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E7=9D=BF?= Date: Fri, 11 Jul 2025 16:27:58 +0800 Subject: [PATCH 065/219] =?UTF-8?q?=E8=B5=B7=E5=AE=A2=E6=88=B7=E6=9C=BAok?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Cargo.lock | 53 +++++++++++++++++++++++++++++++++++++++-------------- Cargo.toml | 7 ++++--- Makefile | 38 +++++++------------------------------- build.rs | 4 ++-- src/hal.rs | 6 ++---- 5 files changed, 54 insertions(+), 54 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index a5a38310..29ce666e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -292,7 +292,7 @@ dependencies = [ [[package]] name = "axconfig" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=dev-dyn-driver#40fbaa105b563c063027246af25068599759f5ec" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#4a1942115d6b81c7fb8655a4d95df82e6325ca3f" dependencies = [ "axconfig-macros", ] @@ -440,6 +440,7 @@ dependencies = [ "axruntime", "axsync", "axtask", + "kspin", ] [[package]] @@ -504,7 +505,7 @@ dependencies = [ "axconfig 0.1.0", "axcpu", "axlog", - "axplat", + "axplat 0.1.0 (git+https://github.com/arceos-hypervisor/axplat_crates?branch=vmm)", "axplat-aarch64-qemu-virt", "axplat-loongarch64-qemu-virt", "axplat-riscv64-qemu-virt", @@ -568,7 +569,21 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c86cdb48cf1fbd432f4326ab0852b696ac49442b0ea0aed3401cb0bbe370a19f" dependencies = [ - "axplat-macros", + "axplat-macros 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "bitflags 2.9.1", + "const-str", + "crate_interface", + "handler_table", + "kspin", + "memory_addr 0.4.0", +] + +[[package]] +name = "axplat" +version = "0.1.0" +source = "git+https://github.com/arceos-hypervisor/axplat_crates?branch=vmm#e4c656f899b0013f3759a272144dbcd73ec5b251" +dependencies = [ + "axplat-macros 0.1.0 (git+https://github.com/arceos-hypervisor/axplat_crates?branch=vmm)", "bitflags 2.9.1", "const-str", "crate_interface", @@ -580,14 +595,14 @@ dependencies = [ [[package]] name = "axplat-aarch64-dyn" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/axplat-aarch64-dyn#141aa634467891026949f93985a70c36248ac6ea" +source = "git+https://github.com/arceos-hypervisor/axplat-aarch64-dyn?branch=vmm#7060b94fd2f3d06d2ed3240a6fa3bcee66baa134" dependencies = [ "aarch64-cpu", "aarch64-cpu-ext", "any-uart", "axconfig-macros", "axcpu", - "axplat", + "axplat 0.1.0 (git+https://github.com/arceos-hypervisor/axplat_crates?branch=vmm)", "fdt-parser", "heapless", "lazyinit", @@ -614,7 +629,7 @@ dependencies = [ "arm_pl011", "arm_pl031", "axcpu", - "axplat", + "axplat 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "int_ratio", "kspin", "lazyinit", @@ -630,7 +645,7 @@ checksum = "6d5d75b950e70a6548b8537aecded7ccafdd3ec639057c4c7c7d6d05b09d0e4d" dependencies = [ "axconfig-macros", "axcpu", - "axplat", + "axplat 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "axplat-aarch64-peripherals", "log", "page_table_entry", @@ -644,7 +659,7 @@ checksum = "edb82011898513ca97dce6861b68a97eb56608ddb974a727cd761083c2bd8836" dependencies = [ "axconfig-macros", "axcpu", - "axplat", + "axplat 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "kspin", "lazyinit", "log", @@ -664,6 +679,16 @@ dependencies = [ "syn 2.0.104", ] +[[package]] +name = "axplat-macros" +version = "0.1.0" +source = "git+https://github.com/arceos-hypervisor/axplat_crates?branch=vmm#e4c656f899b0013f3759a272144dbcd73ec5b251" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.104", +] + [[package]] name = "axplat-riscv64-qemu-virt" version = "0.1.0" @@ -672,7 +697,7 @@ checksum = "40f16634061d2efb7a0ee5fd9ec339d75547b3a967d238b9ba5711c5c6f01c5a" dependencies = [ "axconfig-macros", "axcpu", - "axplat", + "axplat 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "log", "riscv 0.14.0", "sbi-rt", @@ -686,7 +711,7 @@ checksum = "05b1b3bee47e2965347b943c86adb1a65555d90e4d5e6271fe99489957520590" dependencies = [ "axconfig-macros", "axcpu", - "axplat", + "axplat 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "bitflags 2.9.1", "heapless", "int_ratio", @@ -714,7 +739,7 @@ dependencies = [ "axhal", "axlog", "axmm", - "axplat", + "axplat 0.1.0 (git+https://github.com/arceos-hypervisor/axplat_crates?branch=vmm)", "axtask", "chrono", "crate_interface", @@ -777,7 +802,7 @@ name = "axvisor" version = "0.1.0" dependencies = [ "axaddrspace", - "axconfig 0.1.0 (git+https://github.com/arceos-hypervisor/arceos.git?branch=dev-dyn-driver)", + "axconfig 0.1.0 (git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev)", "axerrno", "axplat-aarch64-dyn", "axstd", @@ -2755,7 +2780,7 @@ dependencies = [ "errno", "libc", "linux-raw-sys", - "windows-sys 0.59.0", + "windows-sys 0.52.0", ] [[package]] @@ -3188,7 +3213,7 @@ dependencies = [ "getrandom 0.3.3", "once_cell", "rustix", - "windows-sys 0.59.0", + "windows-sys 0.52.0", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index 0977fe0e..92e9f39c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -28,6 +28,8 @@ axstd = {git = "https://github.com/arceos-hypervisor/arceos.git", branch = "vmm- "irq", "multitask", "driver-dyn", + "smp", + "page-alloc-64g", ]} # System dependent modules provided by ArceOS-Hypervisor. @@ -43,12 +45,11 @@ page_table_entry = {version = "0.5", features = ["arm-el2"]} page_table_multiarch = "0.5" percpu = {version = "0.2", features = ["arm-el2"]} -axplat-aarch64-dyn = {git = "https://github.com/arceos-hypervisor/axplat-aarch64-dyn", features = ["irq", "smp", "hv"]} +axplat-aarch64-dyn = {git = "https://github.com/arceos-hypervisor/axplat-aarch64-dyn", branch = "vmm", features = ["irq", "smp", "hv"]} [build-dependencies] -axconfig = {git = "https://github.com/arceos-hypervisor/arceos.git", branch = "dev-dyn-driver"} +axconfig = {git = "https://github.com/arceos-hypervisor/arceos.git", branch = "vmm-dev"} prettyplease = "0.2" quote = "1.0" syn = "2.0" toml = {git = "https://github.com/arceos-hypervisor/toml.git", branch = "no_std"} - diff --git a/Makefile b/Makefile index 1fe72131..d303dac2 100644 --- a/Makefile +++ b/Makefile @@ -1,3 +1,8 @@ +# The pathes of the VM configurations +ifneq ($(VM_CONFIGS),) + export AXVISOR_VM_CONFIGS=$(VM_CONFIGS) +endif + # 默认目标 .PHONY: default default: setup-arceos @@ -15,35 +20,6 @@ setup-arceos: echo ".arceos 文件夹已存在"; \ fi -# 清理目标 -.PHONY: clean -clean: - @echo "清理构建文件..." - @rm -rf target/ - -# 深度清理(包括删除 .arceos 文件夹) -.PHONY: clean-all -clean-all: clean - @echo "删除 .arceos 文件夹..." - @rm -rf .arceos - -# 帮助信息 -.PHONY: help -help: - @echo "可用的 make 目标:" - @echo " default (或直接运行 make) - 设置 arceos 依赖并构建" - @echo " setup-arceos - 检查并克隆 arceos 仓库" - @echo " clean - 清理构建文件" - @echo " clean-all - 清理所有文件(包括 .arceos)" - @echo " help - 显示此帮助信息" - @echo "" - @echo "所有其他目标和参数都会透传给 .arceos/Makefile" - @echo "例如:" - @echo " make run - 构建并运行" - @echo " make ARCH=aarch64 - 指定架构构建" - @echo " make debug MODE=debug - 调试模式构建" - # 透传所有其他目标到 .arceos -%: setup-arceos - @echo "透传目标 '$@' 到 arceos..." - @$(MAKE) -C .arceos A=$(shell pwd) LD_SCRIPT=link.x $@ $(MAKEFLAGS) \ No newline at end of file +run: setup-arceos + @$(MAKE) -C .arceos A=$(shell pwd) LD_SCRIPT=link.x $@ $(MAKEFLAGS) run \ No newline at end of file diff --git a/build.rs b/build.rs index 74981cb8..07b22358 100644 --- a/build.rs +++ b/build.rs @@ -216,7 +216,7 @@ fn main() -> io::Result<()> { let arch = std::env::var("CARGO_CFG_TARGET_ARCH").unwrap(); let platform = env::var("AX_PLATFORM").unwrap_or("".to_string()); - println!("cargo:rustc-cfg=platform=\"{}\"", platform); + println!("cargo:rustc-cfg=platform=\"{platform}\""); if platform != "dummy" { gen_linker_script(&arch, platform.as_str()).unwrap(); @@ -254,7 +254,7 @@ fn main() -> io::Result<()> { generate_guest_img_loading_functions(&mut output_file, config_files)?; } Err(error) => { - writeln!(output_file, " compile_error!(\"{}\")", error)?; + writeln!(output_file, " compile_error!(\"{error}\")")?; writeln!(output_file, "}}\n")?; } } diff --git a/src/hal.rs b/src/hal.rs index edb38188..b134ebcf 100644 --- a/src/hal.rs +++ b/src/hal.rs @@ -69,14 +69,12 @@ impl AxVCpuHal for AxVCpuHalImpl { #[cfg(target_arch = "aarch64")] fn irq_fetch() -> usize { - // axhal::irq::fetch_irq() - 0 + axhal::irq::irq_fetch() } #[cfg(target_arch = "aarch64")] fn irq_hanlder() { - // let irq_num = axhal::irq::fetch_irq(); - let irq_num = 0; + let irq_num = axhal::irq::irq_fetch(); debug!("IRQ handler {irq_num}"); axhal::irq::irq_handler(irq_num); } From 9bdeac58b25d2bc3b5add7394df8a938e2ab72e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E7=9D=BF?= Date: Mon, 14 Jul 2025 10:58:35 +0800 Subject: [PATCH 066/219] update --- Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Cargo.toml b/Cargo.toml index 92e9f39c..65fd9420 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -40,7 +40,7 @@ axvm = {git = "https://github.com/arceos-hypervisor/axvm.git"} # System independent crates provided by ArceOS, these crates could be imported by remote url. axerrno = "0.1.0" crate_interface = "0.1" -memory_addr = "=0.4.0" +memory_addr = "0.4" page_table_entry = {version = "0.5", features = ["arm-el2"]} page_table_multiarch = "0.5" percpu = {version = "0.2", features = ["arm-el2"]} From 4e5691692df6f59d1f84f6b41c969aab82dcf397 Mon Sep 17 00:00:00 2001 From: aarkegz Date: Wed, 16 Jul 2025 10:59:27 +0800 Subject: [PATCH 067/219] update all dependencies to merged version --- Cargo.lock | 257 +++++++++----------- Cargo.toml | 16 +- configs/platforms/aarch64-qemu-virt-hv.toml | 6 +- configs/vms/linux-qemu-aarch64-gicv3-a.toml | 10 +- configs/vms/linux-qemu-aarch64-gicv3-b.toml | 9 +- configs/vms/nimbos-riscv64.toml | 2 +- scripts.txt | 22 -- src/hal.rs | 13 +- src/utils/arch/aarch64/cache.rs | 2 +- src/vmm/config.rs | 37 +-- src/vmm/mock.rs | 2 +- src/vmm/mod.rs | 11 +- src/vmm/vcpus.rs | 49 ++-- 13 files changed, 209 insertions(+), 227 deletions(-) delete mode 100644 scripts.txt diff --git a/Cargo.lock b/Cargo.lock index 111a76d4..a933db68 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2,15 +2,6 @@ # It is not intended for manual editing. version = 4 -[[package]] -name = "aarch64-cpu" -version = "9.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac42a04a61c19fc8196dd728022a784baecc5d63d7e256c01ad1b3fbfab26287" -dependencies = [ - "tock-registers 0.8.1", -] - [[package]] name = "aarch64-cpu" version = "10.0.0" @@ -117,10 +108,10 @@ dependencies = [ [[package]] name = "arceos_api" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_irq_gicv3#00480405fc3e89f40d6d4263054687ba5918c873" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_inject_interrupt#d8410dadec2d8f7d35b34fb7fa108238cfa05fcb" dependencies = [ "axalloc", - "axconfig 0.1.0 (git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_irq_gicv3)", + "axconfig", "axdriver", "axerrno", "axfeat", @@ -139,7 +130,7 @@ name = "arm-gic-driver" version = "0.13.0" source = "git+https://github.com/rcore-os/arm-gic-driver?rev=ad1fddc194f1cf5b7602e7f35a7136f823465cb0#ad1fddc194f1cf5b7602e7f35a7136f823465cb0" dependencies = [ - "aarch64-cpu 10.0.0", + "aarch64-cpu", "bitflags 2.9.0", "enum_dispatch", "log", @@ -167,37 +158,37 @@ dependencies = [ [[package]] name = "arm_vcpu" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arm_vcpu.git?branch=inject_interrupt_vgicv3_ivc#ad1d617150275e40c13804ab3e4a9d123e814104" +source = "git+https://github.com/arceos-hypervisor/arm_vcpu.git#3a406117f8820442963bd963325a2ff6f82bcaca" dependencies = [ - "aarch64-cpu 9.4.0", - "aarch64_sysreg", - "arm_vgic", + "aarch64-cpu", "axaddrspace", - "axdevice_base 0.1.0 (git+https://github.com/arceos-hypervisor/axdevice_crates.git?branch=inject_interrupt)", + "axdevice_base", "axerrno", - "axvcpu 0.1.0 (git+https://github.com/arceos-hypervisor/axvcpu.git?branch=inject_interrupt_vgicv3_ivc)", - "axvisor_api 0.1.0 (git+https://github.com/arceos-hypervisor/axvisor_api.git?branch=inject_interrupt)", + "axvcpu", + "axvisor_api", "log", "numeric-enum-macro", "percpu", "spin", - "tock-registers 0.8.1", + "tock-registers 0.9.0", ] [[package]] name = "arm_vgic" version = "0.0.0" -source = "git+https://github.com/arceos-hypervisor/arm_vgic.git?branch=vmm_irq_gicv3#c7ef009489a1c3c71817330ca87365c55fc73426" +source = "git+https://github.com/arceos-hypervisor/arm_vgic.git#75450c6124666b9e39763f6a0110903ecdaa3b8f" dependencies = [ + "aarch64-cpu", + "aarch64_sysreg", "axaddrspace", - "axdevice_base 0.1.0 (git+https://github.com/arceos-hypervisor/axdevice_crates.git)", + "axdevice_base", "axerrno", - "axvisor_api 0.1.0 (git+https://github.com/arceos-hypervisor/axvisor_api.git)", + "axvisor_api", "bitmaps", "log", "memory_addr", "spin", - "tock-registers 0.8.1", + "tock-registers 0.10.0", ] [[package]] @@ -220,7 +211,7 @@ checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" [[package]] name = "axaddrspace" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/axaddrspace.git#2ed4d076e01f966710bd6480131abd3a9ffb8930" +source = "git+https://github.com/arceos-hypervisor/axaddrspace.git#dcc7ac91ced6c5ff0e56f90caf2ec7a88ef5a6e9" dependencies = [ "axerrno", "bit_field", @@ -238,7 +229,7 @@ dependencies = [ [[package]] name = "axalloc" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_irq_gicv3#00480405fc3e89f40d6d4263054687ba5918c873" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_inject_interrupt#d8410dadec2d8f7d35b34fb7fa108238cfa05fcb" dependencies = [ "allocator", "axerrno", @@ -251,15 +242,7 @@ dependencies = [ [[package]] name = "axconfig" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=debin%2Ftimer_api#35b7bc57a6cca5ac063a1d7b2748433687660b7c" -dependencies = [ - "axconfig-gen-macros", -] - -[[package]] -name = "axconfig" -version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_irq_gicv3#00480405fc3e89f40d6d4263054687ba5918c873" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_inject_interrupt#d8410dadec2d8f7d35b34fb7fa108238cfa05fcb" dependencies = [ "axconfig-gen-macros", ] @@ -289,37 +272,28 @@ dependencies = [ [[package]] name = "axdevice" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/axdevice.git?branch=inject_interrupt_vgicv3#e806d495f17678ab43389dc6386fd37b317de713" +source = "git+https://github.com/arceos-hypervisor/axdevice.git#17d2b013066d5a7b4e1b1d6b72b025e40b83dcae" dependencies = [ "arm_vgic", "axaddrspace", - "axdevice_base 0.1.0 (git+https://github.com/arceos-hypervisor/axdevice_crates.git?branch=inject_interrupt)", + "axdevice_base", "axerrno", "axvmconfig", "cfg-if", "log", "memory_addr", + "range-alloc", + "spin", ] [[package]] name = "axdevice_base" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/axdevice_crates.git?branch=inject_interrupt#9e42a6c1714b42d352d7f8c8a146024c29bf3888" -dependencies = [ - "axaddrspace", - "axerrno", - "cfg-if", - "memory_addr", - "serde", -] - -[[package]] -name = "axdevice_base" -version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/axdevice_crates.git#00e436cdadf19ddb2c23d044280873072c21325a" +source = "git+https://github.com/arceos-hypervisor/axdevice_crates.git#a474580797920daebb032870cc3f8ff4edbe88ec" dependencies = [ "axaddrspace", "axerrno", + "axvmconfig", "cfg-if", "memory_addr", "serde", @@ -328,10 +302,10 @@ dependencies = [ [[package]] name = "axdriver" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_irq_gicv3#00480405fc3e89f40d6d4263054687ba5918c873" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_inject_interrupt#d8410dadec2d8f7d35b34fb7fa108238cfa05fcb" dependencies = [ "axalloc", - "axconfig 0.1.0 (git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_irq_gicv3)", + "axconfig", "axdriver_base", "axdriver_block", "axdriver_pci", @@ -386,7 +360,7 @@ dependencies = [ [[package]] name = "axfeat" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_irq_gicv3#00480405fc3e89f40d6d4263054687ba5918c873" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_inject_interrupt#d8410dadec2d8f7d35b34fb7fa108238cfa05fcb" dependencies = [ "axalloc", "axdriver", @@ -403,7 +377,7 @@ dependencies = [ [[package]] name = "axfs" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_irq_gicv3#00480405fc3e89f40d6d4263054687ba5918c873" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_inject_interrupt#d8410dadec2d8f7d35b34fb7fa108238cfa05fcb" dependencies = [ "axdriver", "axdriver_block", @@ -457,14 +431,14 @@ dependencies = [ [[package]] name = "axhal" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_irq_gicv3#00480405fc3e89f40d6d4263054687ba5918c873" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_inject_interrupt#d8410dadec2d8f7d35b34fb7fa108238cfa05fcb" dependencies = [ - "aarch64-cpu 10.0.0", + "aarch64-cpu", "arm-gic-driver", "arm_gicv2", "arm_pl011", "axalloc", - "axconfig 0.1.0 (git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_irq_gicv3)", + "axconfig", "axlog", "bitflags 2.9.0", "cfg-if", @@ -485,7 +459,7 @@ dependencies = [ "page_table_multiarch", "percpu", "raw-cpuid 11.5.0", - "riscv 0.12.1", + "riscv 0.14.0", "riscv_plic", "sbi-rt", "static_assertions", @@ -516,9 +490,9 @@ dependencies = [ [[package]] name = "axipi" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_irq_gicv3#00480405fc3e89f40d6d4263054687ba5918c873" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_inject_interrupt#d8410dadec2d8f7d35b34fb7fa108238cfa05fcb" dependencies = [ - "axconfig 0.1.0 (git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_irq_gicv3)", + "axconfig", "axhal", "kspin", "lazyinit", @@ -529,7 +503,7 @@ dependencies = [ [[package]] name = "axlog" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_irq_gicv3#00480405fc3e89f40d6d4263054687ba5918c873" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_inject_interrupt#d8410dadec2d8f7d35b34fb7fa108238cfa05fcb" dependencies = [ "cfg-if", "crate_interface", @@ -540,10 +514,10 @@ dependencies = [ [[package]] name = "axmm" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_irq_gicv3#00480405fc3e89f40d6d4263054687ba5918c873" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_inject_interrupt#d8410dadec2d8f7d35b34fb7fa108238cfa05fcb" dependencies = [ "axalloc", - "axconfig 0.1.0 (git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_irq_gicv3)", + "axconfig", "axerrno", "axhal", "kspin", @@ -556,7 +530,7 @@ dependencies = [ [[package]] name = "axns" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_irq_gicv3#00480405fc3e89f40d6d4263054687ba5918c873" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_inject_interrupt#d8410dadec2d8f7d35b34fb7fa108238cfa05fcb" dependencies = [ "crate_interface", "lazyinit", @@ -565,10 +539,10 @@ dependencies = [ [[package]] name = "axruntime" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_irq_gicv3#00480405fc3e89f40d6d4263054687ba5918c873" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_inject_interrupt#d8410dadec2d8f7d35b34fb7fa108238cfa05fcb" dependencies = [ "axalloc", - "axconfig 0.1.0 (git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_irq_gicv3)", + "axconfig", "axdriver", "axfs", "axhal", @@ -586,7 +560,7 @@ dependencies = [ [[package]] name = "axstd" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_irq_gicv3#00480405fc3e89f40d6d4263054687ba5918c873" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_inject_interrupt#d8410dadec2d8f7d35b34fb7fa108238cfa05fcb" dependencies = [ "arceos_api", "axerrno", @@ -598,7 +572,7 @@ dependencies = [ [[package]] name = "axsync" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_irq_gicv3#00480405fc3e89f40d6d4263054687ba5918c873" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_inject_interrupt#d8410dadec2d8f7d35b34fb7fa108238cfa05fcb" dependencies = [ "axtask", "kspin", @@ -607,9 +581,9 @@ dependencies = [ [[package]] name = "axtask" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_irq_gicv3#00480405fc3e89f40d6d4263054687ba5918c873" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_inject_interrupt#d8410dadec2d8f7d35b34fb7fa108238cfa05fcb" dependencies = [ - "axconfig 0.1.0 (git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm_irq_gicv3)", + "axconfig", "axhal", "cfg-if", "cpumask", @@ -627,21 +601,11 @@ dependencies = [ [[package]] name = "axvcpu" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/axvcpu.git?branch=inject_interrupt#8a45916dd597ab7473e6693658f66d850f6e0f0e" -dependencies = [ - "axaddrspace", - "axerrno", - "memory_addr", - "percpu", -] - -[[package]] -name = "axvcpu" -version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/axvcpu.git?branch=inject_interrupt_vgicv3_ivc#17cccf90a74a41570d564a42de29d04dfb1c0ab1" +source = "git+https://github.com/arceos-hypervisor/axvcpu.git#0dae892519655342b8c7918460a6208d8c251526" dependencies = [ "axaddrspace", "axerrno", + "axvisor_api", "memory_addr", "percpu", ] @@ -651,14 +615,14 @@ name = "axvisor" version = "0.1.0" dependencies = [ "axaddrspace", - "axconfig 0.1.0 (git+https://github.com/arceos-hypervisor/arceos.git?branch=debin%2Ftimer_api)", + "axconfig", "axdevice", - "axdevice_base 0.1.0 (git+https://github.com/arceos-hypervisor/axdevice_crates.git?branch=inject_interrupt)", + "axdevice_base", "axerrno", "axhvc", "axstd", - "axvcpu 0.1.0 (git+https://github.com/arceos-hypervisor/axvcpu.git?branch=inject_interrupt_vgicv3_ivc)", - "axvisor_api 0.1.0 (git+https://github.com/arceos-hypervisor/axvisor_api.git?branch=inject_interrupt)", + "axvcpu", + "axvisor_api", "axvm", "bitflags 2.9.0", "cfg-if", @@ -684,20 +648,10 @@ dependencies = [ [[package]] name = "axvisor_api" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/axvisor_api.git?branch=inject_interrupt#a40fbf91fe582edae2b1fea274c52aab8804f97d" +source = "git+https://github.com/arceos-hypervisor/axvisor_api.git#4102b0a4d8bce0eef45959ad82fb932aee362841" dependencies = [ "axaddrspace", - "axvisor_api_proc 0.1.0 (git+https://github.com/arceos-hypervisor/axvisor_api.git?branch=inject_interrupt)", - "crate_interface", - "memory_addr", -] - -[[package]] -name = "axvisor_api" -version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/axvisor_api.git#ebb860c795a4d2e828b8595dca5ad9dff84e4883" -dependencies = [ - "axvisor_api_proc 0.1.0 (git+https://github.com/arceos-hypervisor/axvisor_api.git)", + "axvisor_api_proc", "crate_interface", "memory_addr", ] @@ -705,18 +659,7 @@ dependencies = [ [[package]] name = "axvisor_api_proc" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/axvisor_api.git?branch=inject_interrupt#a40fbf91fe582edae2b1fea274c52aab8804f97d" -dependencies = [ - "proc-macro-crate", - "proc-macro2", - "quote", - "syn 2.0.100", -] - -[[package]] -name = "axvisor_api_proc" -version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/axvisor_api.git#ebb860c795a4d2e828b8595dca5ad9dff84e4883" +source = "git+https://github.com/arceos-hypervisor/axvisor_api.git#4102b0a4d8bce0eef45959ad82fb932aee362841" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -727,14 +670,15 @@ dependencies = [ [[package]] name = "axvm" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/axvm.git?branch=inject_interrupt_vgicv3_ivc#231eddbab0f7b14b0c1c1a7fa0876dc5878bf124" +source = "git+https://github.com/arceos-hypervisor/axvm.git#93b8ee5bb40c9705f667af783e6da065531f6869" dependencies = [ "arm_vcpu", + "arm_vgic", "axaddrspace", "axdevice", - "axdevice_base 0.1.0 (git+https://github.com/arceos-hypervisor/axdevice_crates.git?branch=inject_interrupt)", + "axdevice_base", "axerrno", - "axvcpu 0.1.0 (git+https://github.com/arceos-hypervisor/axvcpu.git?branch=inject_interrupt_vgicv3_ivc)", + "axvcpu", "axvmconfig", "cfg-if", "cpumask", @@ -751,9 +695,10 @@ dependencies = [ [[package]] name = "axvmconfig" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/axvmconfig.git#19e73fc71c48c0af49f6fda960c144b297e41435" +source = "git+https://github.com/arceos-hypervisor/axvmconfig.git#6704074b63f79ed904d98cc27cd166779c3546d6" dependencies = [ "axerrno", + "enumerable", "log", "serde", "serde_repr", @@ -1004,6 +949,27 @@ dependencies = [ "syn 2.0.100", ] +[[package]] +name = "enumerable" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d05481ae0c653c7de79f2f62d515b09049fed59cbfc5755a4afe55c95181492b" +dependencies = [ + "enumerable_derive", +] + +[[package]] +name = "enumerable_derive" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef47b28174f7ef4ccb124c8766565006263114c1cc129cd119a66f1e15635125" +dependencies = [ + "proc-macro-crate", + "proc-macro2", + "quote", + "syn 2.0.100", +] + [[package]] name = "equivalent" version = "1.0.2" @@ -1192,15 +1158,15 @@ dependencies = [ [[package]] name = "memory_addr" -version = "0.3.2" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5438b8df0f13e16e1f46140de247695a95952a5a4479e47197a8711bf1063373" +checksum = "3d4054cba279515fa87761b101d857333ce06391dbe8f18a11347204a7111416" [[package]] name = "memory_set" -version = "0.3.2" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4552d02c866c57e8b06b919ea8c2f8f398cad245b8f6aac726657bc972d663d" +checksum = "e7d47cbc25a4d00427f9070fd768eaf907f19c903fb72b547b19db2d56b9408e" dependencies = [ "memory_addr", ] @@ -1234,11 +1200,11 @@ checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" [[package]] name = "page_table_entry" -version = "0.5.3" +version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c097d641745a066856a26eed6e486d4430bb3e32c94f1203ea09c63239b360a0" +checksum = "ba811ef8ca8fb33d776e128624cb4fe25c9804cab96f83b822d4322431e6dd5a" dependencies = [ - "aarch64-cpu 10.0.0", + "aarch64-cpu", "bitflags 2.9.0", "memory_addr", "x86_64 0.15.2", @@ -1246,14 +1212,15 @@ dependencies = [ [[package]] name = "page_table_multiarch" -version = "0.5.3" +version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4647889585d29762d747be0916d6d28db72967a697d142be86f187a6b496832a" +checksum = "98cb76e21ce462270afd83b331599d5b83f876c2a98c0a70382b20d73e1da6be" dependencies = [ + "bitmaps", "log", "memory_addr", "page_table_entry", - "riscv 0.12.1", + "riscv 0.14.0", "x86", ] @@ -1323,6 +1290,11 @@ dependencies = [ "proc-macro2", ] +[[package]] +name = "range-alloc" +version = "0.1.4" +source = "git+https://github.com/arceos-hypervisor/range-alloc.git#fc826e54dab9072be5358a1b0e7fc34503d6630d" + [[package]] name = "raw-cpuid" version = "10.7.0" @@ -1415,9 +1387,9 @@ dependencies = [ [[package]] name = "riscv" -version = "0.12.1" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ea8ff73d3720bdd0a97925f0bf79ad2744b6da8ff36be3840c48ac81191d7a7" +checksum = "0f1671c79a01a149fe000af2429ce9ccc8e58cdecda72672355d50e5536b363c" dependencies = [ "critical-section", "embedded-hal", @@ -1433,9 +1405,9 @@ source = "git+https://github.com/KuangjuX/riscv-decode.git#0e346d0ad041987023caa [[package]] name = "riscv-macros" -version = "0.1.0" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f265be5d634272320a7de94cea15c22a3bfdd4eb42eb43edc528415f066a1f25" +checksum = "e8c4aa1ea1af6dcc83a61be12e8189f9b293c3ba5a487778a4cd89fb060fdbbc" dependencies = [ "proc-macro2", "quote", @@ -1470,12 +1442,12 @@ dependencies = [ [[package]] name = "riscv_vcpu" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/riscv_vcpu.git?branch=inject_interrupt_vgicv3_ivc#30c743b825778fd740c8e09988872e8a818ffe47" +source = "git+https://github.com/arceos-hypervisor/riscv_vcpu.git#f25f274f88376c2b4a80dcb5549f46a9b4b10559" dependencies = [ "axaddrspace", "axerrno", - "axvcpu 0.1.0 (git+https://github.com/arceos-hypervisor/axvcpu.git?branch=inject_interrupt_vgicv3_ivc)", - "axvisor_api 0.1.0 (git+https://github.com/arceos-hypervisor/axvisor_api.git)", + "axvcpu", + "axvisor_api", "bit_field", "bitflags 2.9.0", "cfg-if", @@ -1489,7 +1461,7 @@ dependencies = [ "rustsbi", "sbi-rt", "sbi-spec", - "tock-registers 0.8.1", + "tock-registers 0.9.0", ] [[package]] @@ -1727,6 +1699,12 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2b9e2fdb3a1e862c0661768b7ed25390811df1947a8acbfbefe09b47078d93c4" +[[package]] +name = "tock-registers" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0293f99756f16ff352cc78c99673766a305bdb5ed7652e78df649e9967c885a" + [[package]] name = "toml" version = "0.8.14" @@ -1964,12 +1942,13 @@ dependencies = [ [[package]] name = "x86_vcpu" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/x86_vcpu.git?branch=inject_interrupt#b240131f84db2ff61d114340c07049dcf20209b4" +source = "git+https://github.com/arceos-hypervisor/x86_vcpu.git#a18a499bd166088ff05e19805cfe9aafa21aab96" dependencies = [ "axaddrspace", - "axdevice_base 0.1.0 (git+https://github.com/arceos-hypervisor/axdevice_crates.git?branch=inject_interrupt)", + "axdevice_base", "axerrno", - "axvcpu 0.1.0 (git+https://github.com/arceos-hypervisor/axvcpu.git?branch=inject_interrupt)", + "axvcpu", + "axvisor_api", "bit_field", "bitflags 2.9.0", "cfg-if", @@ -1988,17 +1967,17 @@ dependencies = [ [[package]] name = "x86_vlapic" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/x86_vlapic.git?branch=timer#5ac0b3f1e76efe46b42fb825818e83e801e49ab2" +source = "git+https://github.com/arceos-hypervisor/x86_vlapic.git#1f3edfb03f9ac99bfe567b73fb59779eaac32235" dependencies = [ "axaddrspace", - "axdevice_base 0.1.0 (git+https://github.com/arceos-hypervisor/axdevice_crates.git?branch=inject_interrupt)", + "axdevice_base", "axerrno", - "axvisor_api 0.1.0 (git+https://github.com/arceos-hypervisor/axvisor_api.git?branch=inject_interrupt)", + "axvisor_api", "bit", "log", "memory_addr", "paste", - "tock-registers 0.9.0", + "tock-registers 0.10.0", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index 911ab8b7..9d10ab99 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -24,7 +24,7 @@ lazyinit = "0.2" timer_list = "0.1.0" # System dependent modules provided by ArceOS. -axstd = { git = "https://github.com/arceos-hypervisor/arceos.git", branch = "vmm_irq_gicv3", features = [ +axstd = { git = "https://github.com/arceos-hypervisor/arceos.git", branch = "vmm_inject_interrupt", features = [ "alloc", "paging", # "fs", @@ -38,8 +38,8 @@ axstd = { git = "https://github.com/arceos-hypervisor/arceos.git", branch = "vmm ] } # System dependent modules provided by ArceOS-Hypervisor. -axvm = { git = "https://github.com/arceos-hypervisor/axvm.git", branch = "inject_interrupt_vgicv3_ivc" } -axvcpu = { git = "https://github.com/arceos-hypervisor/axvcpu.git", branch = "inject_interrupt_vgicv3_ivc" } +axvm = { git = "https://github.com/arceos-hypervisor/axvm.git" } +axvcpu = { git = "https://github.com/arceos-hypervisor/axvcpu.git" } axaddrspace = { git = "https://github.com/arceos-hypervisor/axaddrspace.git" } axhvc = { git = "https://github.com/arceos-hypervisor/axhvc.git" } @@ -48,20 +48,20 @@ crate_interface = "0.1" axerrno = "0.1.0" cpumask = "0.1.0" kernel_guard = "0.1" -memory_addr = "0.3" +memory_addr = "0.4" page_table_entry = { version = "0.5", features = ["arm-el2"] } page_table_multiarch = "0.5" percpu = { version = "0.2", features = ["arm-el2"] } -axdevice = { git = "https://github.com/arceos-hypervisor/axdevice.git", branch = "inject_interrupt_vgicv3" } -axdevice_base = { git = "https://github.com/arceos-hypervisor/axdevice_crates.git", branch = "inject_interrupt" } -axvisor_api = { git = "https://github.com/arceos-hypervisor/axvisor_api.git", branch = "inject_interrupt" } +axdevice = { git = "https://github.com/arceos-hypervisor/axdevice.git" } +axdevice_base = { git = "https://github.com/arceos-hypervisor/axdevice_crates.git" } +axvisor_api = { git = "https://github.com/arceos-hypervisor/axvisor_api.git" } fdt-parser = "0.4" [build-dependencies] toml = { git = "https://github.com/arceos-hypervisor/toml.git", branch = "no_std" } -axconfig = { git = "https://github.com/arceos-hypervisor/arceos.git", branch = "debin/timer_api" } +axconfig = { git = "https://github.com/arceos-hypervisor/arceos.git", branch = "vmm_inject_interrupt" } prettyplease = "0.2" quote = "1.0" syn = "2.0" diff --git a/configs/platforms/aarch64-qemu-virt-hv.toml b/configs/platforms/aarch64-qemu-virt-hv.toml index c90efbe4..7192d01a 100644 --- a/configs/platforms/aarch64-qemu-virt-hv.toml +++ b/configs/platforms/aarch64-qemu-virt-hv.toml @@ -91,8 +91,7 @@ pci-ranges = [ [0x80_0000_0000, 0x80_0000_0000], # 64-bit MMIO space ] # [(uint, uint)] # UART Address -uart-paddr = 0x0904_0000 # uint -# uart-paddr = 0x0900_0000 # uint +uart-paddr = 0x0900_0000 # uint # UART IRQ number uart-irq = 1 # uint @@ -103,6 +102,9 @@ gicd-paddr = 0x0800_0000 # uint gicv-paddr = 0x0804_0000 # uint gich-paddr = 0x0803_0000 # uint +# GIC Redistributor base address +gicr-paddr = 0x080a_0000 + # PSCI psci-method = "smc" # str diff --git a/configs/vms/linux-qemu-aarch64-gicv3-a.toml b/configs/vms/linux-qemu-aarch64-gicv3-a.toml index 93f90902..92e244a6 100644 --- a/configs/vms/linux-qemu-aarch64-gicv3-a.toml +++ b/configs/vms/linux-qemu-aarch64-gicv3-a.toml @@ -49,7 +49,7 @@ dtb_load_addr = 0x8000_0000 # Memory regions with format (`base_paddr`, `size`, `flags`, `map_type`). # For `map_type`, 0 means `MAP_ALLOC`, 1 means `MAP_IDENTICAL`. memory_regions = [ - [0x8000_0000, 0x4000_0000, 0x7, 1], # System RAM 1G MAP_IDENTICAL + # [0x8000_0000, 0x4000_0000, 0x7, 1], # System RAM 1G MAP_IDENTICAL ] # @@ -73,4 +73,10 @@ passthrough_devices = [ # Emu_devices. # Name Base-Ipa Ipa_len Alloc-Irq Emu-Type EmuConfig. -emu_devices = [] \ No newline at end of file +emu_devices = [ + ["gppt-gicd", 0x0800_0000, 0x1_0000, 0, 0x21, []], + ["gppt-gicr", 0x080a_0000, 0x2_0000, 0, 0x20, [1, 0x2_0000, 0]], # 1 vcpu, stride 0x20000, starts with pcpu 0 + ["gppt-gits", 0x0808_0000, 0x2_0000, 0, 0x22, [0x0808_0000]], # host_gits_base +] + +interrupt_mode = "passthrough" diff --git a/configs/vms/linux-qemu-aarch64-gicv3-b.toml b/configs/vms/linux-qemu-aarch64-gicv3-b.toml index bfa38d10..0cfadd40 100644 --- a/configs/vms/linux-qemu-aarch64-gicv3-b.toml +++ b/configs/vms/linux-qemu-aarch64-gicv3-b.toml @@ -52,7 +52,7 @@ bios_load_addr = 0xfe00_0000 # Memory regions with format (`base_paddr`, `size`, `flags`, `map_type`). # For `map_type`, 0 means `MAP_ALLOC`, 1 means `MAP_IDENTICAL`. memory_regions = [ - [0xc000_0000, 0x4000_0000, 0x7, 1], # System RAM 1G MAP_IDENTICAL + # [0xc000_0000, 0x4000_0000, 0x7, 1], # System RAM 1G MAP_IDENTICAL ] # @@ -77,4 +77,9 @@ passthrough_devices = [ # Emu_devices. # Name Base-Ipa Ipa_len Alloc-Irq Emu-Type EmuConfig. -emu_devices = [] \ No newline at end of file +emu_devices = [ + ["gppt-gicd", 0x0800_0000, 0x1_0000, 0, 0x21, []], + ["gppt-gicr", 0x080c_0000, 0x2_0000, 0, 0x20, [1, 0x2_0000, 1]], # 1 vcpu, stride 0x20000 +] + +interrupt_mode = "passthrough" \ No newline at end of file diff --git a/configs/vms/nimbos-riscv64.toml b/configs/vms/nimbos-riscv64.toml index 6c29657c..381c194f 100644 --- a/configs/vms/nimbos-riscv64.toml +++ b/configs/vms/nimbos-riscv64.toml @@ -20,7 +20,7 @@ phys_cpu_sets = [1] entry_point = 0x9020_0000 # The location of image: "memory" | "fs". # Load from file system. -image_location = "fs" +image_location = "memory" # The file path of the kernel image. kernel_path = "nimbos-riscv64.bin" # The load address of the kernel image. diff --git a/scripts.txt b/scripts.txt deleted file mode 100644 index bb3369e9..00000000 --- a/scripts.txt +++ /dev/null @@ -1,22 +0,0 @@ - -# 原版双VM -make ARCH=aarch64 LOG=debug VM_CONFIGS=configs/vms/linux-qemu-aarch64.toml:configs/vms/arceos-aarch64.toml GICV3=y NET=y SMP=2 run DISK_IMG=/home/smx/source/lectures/arceos-repos/axvisor/ubuntu-22.04-rootfs_ext4.img SECOND_SERIAL=y - -# 原版单VM -make ARCH=aarch64 LOG=debug VM_CONFIGS=configs/vms/linux-qemu-aarch64.toml GICV3=y NET=y SMP=2 run DISK_IMG=/home/smx/source/lectures/arceos-repos/axvisor/ubuntu-22.04-rootfs_ext4.img SECOND_SERIAL=y - -# 单VM:去掉NET,去掉第二个串口 -make ARCH=aarch64 LOG=debug VM_CONFIGS=configs/vms/linux-qemu-aarch64.toml GICV3=y SMP=2 DISK_IMG=/home/smx/source/lectures/arceos-repos/axvisor/ubuntu-22.04-rootfs_ext4-a.img run - -# 单VM:使用第二个串口 -make ARCH=aarch64 LOG=debug VM_CONFIGS=configs/vms/linux-qemu-aarch64-gicv3-a.toml GICV3=y SMP=1 SECOND_SERIAL=y DISK_IMG=/home/smx/source/lectures/arceos-repos/axvisor/ubuntu-22.04-rootfs_ext4-a.img run QEMU=/home/smx/source/3rd/qemu-9.2.4/build/qemu-system-aarch64 - -# 单VM:使用第二个串口,SMP2 -make ARCH=aarch64 LOG=debug VM_CONFIGS=configs/vms/linux-qemu-aarch64-gicv3-a.toml GICV3=y SMP=2 SECOND_SERIAL=y DISK_IMG=/home/smx/source/lectures/arceos-repos/axvisor/ubuntu-22.04-rootfs_ext4-a.img run QEMU=/home/smx/source/3rd/qemu-9.2.4/build/qemu-system-aarch64 - -# 双VM:三串口配置 -make ARCH=aarch64 LOG=debug VM_CONFIGS=configs/vms/linux-qemu-aarch64-gicv3-a.toml:configs/vms/linux-qemu-aarch64-gicv3-b.toml GICV3=y SMP=2 SECOND_SERIAL=y THIRD_SERIAL=y DISK_IMG=/home/smx/source/lectures/arceos-repos/axvisor/ubuntu-22.04-rootfs_ext4-a.img run QEMU=/home/smx/source/3rd/qemu-9.2.4/build/qemu-system-aarch64 - -# GICv3 EL1测试 -make ACCEL=n ARCH=aarch64 LOG=info VM_CONFIGS=configs/vms/arceos-aarch64-gicv3-tester.toml GICV3=y LOG=debug run - diff --git a/src/hal.rs b/src/hal.rs index d1b5f060..1717f805 100644 --- a/src/hal.rs +++ b/src/hal.rs @@ -139,7 +139,10 @@ pub(crate) fn enable_virtualization() { "Initialize CPU affinity failed!" ); - info!("Enabling hardware virtualization support on core {}", cpu_id); + info!( + "Enabling hardware virtualization support on core {}", + cpu_id + ); vmm::init_timer_percpu(); @@ -276,22 +279,20 @@ mod arch_api_impl { // use axstd::os::arceos::modules::axhal::irq::MyVgic; // MyVgic::get_gicd().lock().get_typer() - use std::os::arceos::modules::{axconfig, axhal}; use memory_addr::pa; + use std::os::arceos::modules::{axconfig, axhal}; let typer_phys_addr = axconfig::devices::GICD_PADDR + 0x4; let typer_virt_addr = axhal::mem::phys_to_virt(pa!(typer_phys_addr)); - unsafe { - core::ptr::read_volatile(typer_virt_addr.as_ptr_of::()) - } + unsafe { core::ptr::read_volatile(typer_virt_addr.as_ptr_of::()) } } #[cfg(target_arch = "aarch64")] extern fn read_vgicd_iidr() -> u32 { // use axstd::os::arceos::modules::axhal::irq::MyVgic; // MyVgic::get_gicd().lock().get_iidr() -0 + 0 } #[cfg(target_arch = "aarch64")] diff --git a/src/utils/arch/aarch64/cache.rs b/src/utils/arch/aarch64/cache.rs index 594776ad..f8750672 100644 --- a/src/utils/arch/aarch64/cache.rs +++ b/src/utils/arch/aarch64/cache.rs @@ -2,7 +2,7 @@ use core::arch::global_asm; global_asm!(include_str!("cache.S")); -unsafe extern "C" { +unsafe extern { /// Invalidate the data cache. pub unsafe fn cache_invalidate_d(start: usize, len: usize); /// Clean and invalidate the data cache. diff --git a/src/vmm/config.rs b/src/vmm/config.rs index 3ba3581b..d65805af 100644 --- a/src/vmm/config.rs +++ b/src/vmm/config.rs @@ -62,8 +62,12 @@ pub fn parse_vm_dtb(vm_cfg: &mut AxVMConfig, dtb: &[u8]) { vm_cfg.add_memory_region(VmMemConfig { gpa: region.address as usize, size: region.size as usize, - flags: (MappingFlags::READ | MappingFlags::WRITE | MappingFlags::EXECUTE).bits(), - map_type: VmMemMappingType::MapIentical, + flags: (MappingFlags::READ + | MappingFlags::WRITE + | MappingFlags::EXECUTE + | MappingFlags::USER) + .bits(), + map_type: VmMemMappingType::MapIdentical, }); } } @@ -95,7 +99,10 @@ pub fn parse_vm_dtb(vm_cfg: &mut AxVMConfig, dtb: &[u8]) { // Skip the interrupt controller, as we will use vGIC // TODO: filter with compatible property and parse its phandle from DT; maybe needs a second pass? const GIC_PHANDLE: usize = 1; - if name.starts_with("interrupt-controller") { + if name.starts_with("interrupt-controller") + || name.starts_with("intc") + || name.starts_with("its") + { info!("skipping node {} to use vGIC", name); continue; } @@ -226,29 +233,7 @@ pub fn init_guest_vms() { info!("Creating VM[{}] {:?}", vm_config.id(), vm_config.name()); // Create VM. - // let vm = VM::new(vm_config).expect("Failed to create VM"); - // %%% temp action! - let vm = VM::temp_new_with_device_adder(vm_config, |devices| { - let mock_timer = super::mock::MockTimer::new(); - let mock_timer = alloc::sync::Arc::new(mock_timer); - - // devices.add_mmio_dev(mock_timer.clone()); - - // use std::os::arceos::modules::axhal; - - // fn schedule_next(action: impl Fn() + Send + Sync + 'static) { - // super::timer::register_timer(axhal::time::monotonic_time_nanos() + 1_000_000_000, move |time| { - // info!("Timer fired at {:?}", time); - // action(); - // schedule_next(action); - // }); - // } - - // schedule_next(move || { - // mock_timer.tick(); - // }); - }) - .expect("Failed to create VM"); + let vm = VM::new(vm_config).expect("Failed to create VM"); push_vm(vm.clone()); // Load corresponding images for VM. diff --git a/src/vmm/mock.rs b/src/vmm/mock.rs index 315c3789..1c99a01d 100644 --- a/src/vmm/mock.rs +++ b/src/vmm/mock.rs @@ -14,7 +14,7 @@ pub struct MockTimer { impl BaseDeviceOps for MockTimer { fn emu_type(&self) -> axdevice_base::EmuDeviceType { - axdevice_base::EmuDeviceType::EmuDeviceTConsole // just a placeholder + axdevice_base::EmuDeviceType::Dummy // just a placeholder } fn address_range(&self) -> GuestPhysAddrRange { diff --git a/src/vmm/mod.rs b/src/vmm/mod.rs index 982fce8f..f75e710c 100644 --- a/src/vmm/mod.rs +++ b/src/vmm/mod.rs @@ -1,15 +1,20 @@ mod config; mod hvc; mod images; +mod ivc; mod mock; pub mod timer; -mod ivc; mod vcpus; mod vm_list; - use core::sync::atomic::{AtomicUsize, Ordering}; -use std::os::arceos::{api::task::{self, AxWaitQueueHandle}, modules::{axhal, axtask::{self, TaskExtRef}}}; +use std::os::arceos::{ + api::task::{self, AxWaitQueueHandle}, + modules::{ + axhal, + axtask::{self, TaskExtRef}, + }, +}; use axerrno::{AxResult, ax_err_type}; diff --git a/src/vmm/vcpus.rs b/src/vmm/vcpus.rs index 71912431..6f3f2b55 100644 --- a/src/vmm/vcpus.rs +++ b/src/vmm/vcpus.rs @@ -1,10 +1,21 @@ use alloc::{collections::BTreeMap, vec::Vec}; -use core::sync::atomic::{AtomicUsize, Ordering}; -use std::os::arceos::{api::{self, task::{ax_wait_queue_wake, AxCpuMask}}, modules::{axhal, axtask}}; +use core::{ + sync::atomic::{AtomicUsize, Ordering}, + time::Duration, +}; +use std::os::arceos::{ + api::{ + self, + task::{AxCpuMask, ax_wait_queue_wake}, + }, + modules::{ + axhal::{self, time::busy_wait}, + axtask, + }, +}; use axaddrspace::GuestPhysAddr; -use axstd::sync::atomic::{AtomicUsize, Ordering}; use axtask::{AxTaskRef, TaskExtRef, TaskInner, WaitQueue}; use axvcpu::{AxVCpuExitReason, VCpuState}; @@ -393,9 +404,17 @@ fn vcpu_run() { warn!("VM[{}] run VCpu[{}] SystemDown", vm_id, vcpu_id); vm.shutdown().expect("VM shutdown failed"); } - AxVCpuExitReason::SendIPI { target_cpu, target_cpu_aux, send_to_all, send_to_self, vector } => { + AxVCpuExitReason::SendIPI { + target_cpu, + target_cpu_aux, + send_to_all, + send_to_self, + vector, + } => { if send_to_all || send_to_self { - unimplemented!("SendIPI with send_to_all or send_to_self is not implemented yet"); + unimplemented!( + "SendIPI with send_to_all or send_to_self is not implemented yet" + ); } #[cfg(target_arch = "aarch64")] @@ -405,13 +424,12 @@ fn vcpu_run() { let aff1 = (target_cpu >> 8) & 0xff; let irm = (send_to_all as u64); - let icc_sgi1r_value = - (vector as u64) << 24 | - aff3 << 48 | - aff2 << 32 | - aff1 << 16 | - irm << 40 | - target_cpu_aux; + let icc_sgi1r_value = (vector as u64) << 24 + | aff3 << 48 + | aff2 << 32 + | aff1 << 16 + | irm << 40 + | target_cpu_aux; debug!( "VM[{}] run VCpu[{}] SendIPI, target_cpu={:#x}, target_cpu_aux={:#x}, vector={}, icc_sgi1r_value={:#x}", @@ -427,8 +445,11 @@ fn vcpu_run() { } } } - _ => { - warn!("Unhandled VM-Exit"); + e => { + warn!( + "VM[{}] run VCpu[{}] unhandled vmexit: {:?}", + vm_id, vcpu_id, e + ); } }, Err(err) => { From 1c01c8323e7c442e25b298e50a1d782b105fbde5 Mon Sep 17 00:00:00 2001 From: aarkegz Date: Wed, 16 Jul 2025 11:46:27 +0800 Subject: [PATCH 068/219] rollback nimbos-riscv64.toml --- configs/vms/nimbos-riscv64.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configs/vms/nimbos-riscv64.toml b/configs/vms/nimbos-riscv64.toml index 381c194f..6c29657c 100644 --- a/configs/vms/nimbos-riscv64.toml +++ b/configs/vms/nimbos-riscv64.toml @@ -20,7 +20,7 @@ phys_cpu_sets = [1] entry_point = 0x9020_0000 # The location of image: "memory" | "fs". # Load from file system. -image_location = "memory" +image_location = "fs" # The file path of the kernel image. kernel_path = "nimbos-riscv64.bin" # The load address of the kernel image. From 8e9d27a5005300bd787ce40fca44d17600c520a5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E7=9D=BF?= Date: Mon, 28 Jul 2025 09:52:56 +0800 Subject: [PATCH 069/219] update --- Cargo.lock | 173 ++++++++++++++++++++++++++++------------------------- Makefile | 8 ++- 2 files changed, 99 insertions(+), 82 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index a8004001..a4ef2e8f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -13,12 +13,12 @@ dependencies = [ [[package]] name = "aarch64-cpu-ext" -version = "0.1.0" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2a64358f36fba7d684ef367d38a17f6bd2316b97f0a2ad9eb3fe8cacbaed50a" +checksum = "52dad5cf7342926ce1c375ec680834e56dd3cdbe8b7adf8a6f99b2854cc52c17" dependencies = [ "aarch64-cpu", - "tock-registers 0.9.0", + "tock-registers 0.10.0", ] [[package]] @@ -151,10 +151,11 @@ checksum = "e16d2d3311acee920a9eb8d33b8cbc1787ce4a264e85f964c2404b969bdcd487" [[package]] name = "arceos_api" -version = "0.1.0" +version = "0.2.0" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#83263579b537e8d35bd1c9b6c5ea5648a10d19e5" dependencies = [ "axalloc", - "axconfig 0.1.0", + "axconfig", "axdriver", "axerrno", "axfeat", @@ -211,6 +212,7 @@ dependencies = [ [[package]] name = "arm_vcpu" version = "0.1.0" +source = "git+https://github.com/arceos-hypervisor/arm_vcpu.git#5cb792296f7865f7031fcd502c62a51cbeb59dab" dependencies = [ "aarch64-cpu", "axaddrspace", @@ -228,7 +230,7 @@ dependencies = [ [[package]] name = "arm_vgic" version = "0.0.0" -source = "git+https://github.com/arceos-hypervisor/arm_vgic.git#75450c6124666b9e39763f6a0110903ecdaa3b8f" +source = "git+https://github.com/arceos-hypervisor/arm_vgic.git#42b82b9405600d363a67487a8a50eb1808eead0f" dependencies = [ "aarch64-cpu", "aarch64_sysreg", @@ -275,7 +277,7 @@ checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" [[package]] name = "axaddrspace" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/axaddrspace.git#dcc7ac91ced6c5ff0e56f90caf2ec7a88ef5a6e9" +source = "git+https://github.com/arceos-hypervisor/axaddrspace.git#925d5deb05e4d75b26eb63233264838b08c5ea9e" dependencies = [ "axerrno", "bit_field", @@ -288,11 +290,13 @@ dependencies = [ "numeric-enum-macro", "page_table_entry", "page_table_multiarch", + "x86", ] [[package]] name = "axalloc" -version = "0.1.0" +version = "0.2.0" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#83263579b537e8d35bd1c9b6c5ea5648a10d19e5" dependencies = [ "allocator", "axerrno", @@ -304,15 +308,8 @@ dependencies = [ [[package]] name = "axconfig" -version = "0.1.0" -dependencies = [ - "axconfig-macros", -] - -[[package]] -name = "axconfig" -version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#e2345176e6b3b41fbf3061fb8cdb8d846969e415" +version = "0.2.0" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#83263579b537e8d35bd1c9b6c5ea5648a10d19e5" dependencies = [ "axconfig-macros", ] @@ -394,11 +391,12 @@ dependencies = [ [[package]] name = "axdriver" -version = "0.1.0" +version = "0.2.0" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#83263579b537e8d35bd1c9b6c5ea5648a10d19e5" dependencies = [ "arm-gic-driver", "axalloc", - "axconfig 0.1.0", + "axconfig", "axdriver_base", "axdriver_block", "axdriver_pci", @@ -456,7 +454,8 @@ dependencies = [ [[package]] name = "axfeat" -version = "0.1.0" +version = "0.2.0" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#83263579b537e8d35bd1c9b6c5ea5648a10d19e5" dependencies = [ "axalloc", "axdriver", @@ -471,7 +470,8 @@ dependencies = [ [[package]] name = "axfs" -version = "0.1.0" +version = "0.2.0" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#83263579b537e8d35bd1c9b6c5ea5648a10d19e5" dependencies = [ "axdriver", "axdriver_block", @@ -524,11 +524,12 @@ dependencies = [ [[package]] name = "axhal" -version = "0.1.0" +version = "0.2.0" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#83263579b537e8d35bd1c9b6c5ea5648a10d19e5" dependencies = [ "aarch64-cpu", "axalloc", - "axconfig 0.1.0", + "axconfig", "axcpu", "axlog", "axplat 0.1.0 (git+https://github.com/arceos-hypervisor/axplat_crates?branch=vmm)", @@ -567,7 +568,8 @@ dependencies = [ [[package]] name = "axlog" -version = "0.1.0" +version = "0.2.0" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#83263579b537e8d35bd1c9b6c5ea5648a10d19e5" dependencies = [ "cfg-if", "crate_interface", @@ -577,10 +579,11 @@ dependencies = [ [[package]] name = "axmm" -version = "0.1.0" +version = "0.2.0" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#83263579b537e8d35bd1c9b6c5ea5648a10d19e5" dependencies = [ "axalloc", - "axconfig 0.1.0", + "axconfig", "axerrno", "axhal", "kspin", @@ -592,7 +595,8 @@ dependencies = [ [[package]] name = "axns" -version = "0.1.0" +version = "0.2.0" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#83263579b537e8d35bd1c9b6c5ea5648a10d19e5" dependencies = [ "crate_interface", "lazyinit", @@ -764,10 +768,11 @@ dependencies = [ [[package]] name = "axruntime" -version = "0.1.0" +version = "0.2.0" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#83263579b537e8d35bd1c9b6c5ea5648a10d19e5" dependencies = [ "axalloc", - "axconfig 0.1.0", + "axconfig", "axdriver", "axerrno", "axfs", @@ -782,9 +787,19 @@ dependencies = [ "percpu", ] +[[package]] +name = "axsched" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44de469da35f912194e4104cc2f51bff63d6c184b65b6ebf8e90e2cd162b7f3c" +dependencies = [ + "linked_list_r4l", +] + [[package]] name = "axstd" -version = "0.1.0" +version = "0.2.0" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#83263579b537e8d35bd1c9b6c5ea5648a10d19e5" dependencies = [ "arceos_api", "axerrno", @@ -796,7 +811,8 @@ dependencies = [ [[package]] name = "axsync" -version = "0.1.0" +version = "0.2.0" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#83263579b537e8d35bd1c9b6c5ea5648a10d19e5" dependencies = [ "axtask", "kspin", @@ -805,10 +821,12 @@ dependencies = [ [[package]] name = "axtask" -version = "0.1.0" +version = "0.2.0" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#83263579b537e8d35bd1c9b6c5ea5648a10d19e5" dependencies = [ - "axconfig 0.1.0", + "axconfig", "axhal", + "axsched", "cfg-if", "cpumask", "crate_interface", @@ -818,7 +836,6 @@ dependencies = [ "log", "memory_addr", "percpu", - "scheduler", "timer_list", ] @@ -839,7 +856,7 @@ name = "axvisor" version = "0.1.0" dependencies = [ "axaddrspace", - "axconfig 0.1.0 (git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev)", + "axconfig", "axdevice", "axdevice_base", "axerrno", @@ -1193,9 +1210,9 @@ dependencies = [ [[package]] name = "const-str" -version = "0.6.3" +version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "041fbfcf8e7054df725fb9985297e92422cdc80fcf313665f5ca3d761bb63f4c" +checksum = "451d0640545a0553814b4c646eb549343561618838e9b42495f466131fe3ad49" [[package]] name = "core-foundation" @@ -1413,7 +1430,7 @@ checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" [[package]] name = "fatfs" version = "0.4.0" -source = "git+https://github.com/rafalh/rust-fatfs?rev=85f06e0#85f06e08edbd3368e1b0562f2fc1b6d178bf7b8a" +source = "git+https://github.com/rafalh/rust-fatfs?rev=4eccb50#4eccb50d011146fbed20e133d33b22f3c27292e7" dependencies = [ "bitflags 2.9.1", "log", @@ -1730,9 +1747,9 @@ dependencies = [ [[package]] name = "hyper-util" -version = "0.1.15" +version = "0.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f66d5bd4c6f02bf0542fad85d626775bab9258cf795a4256dcaf3161114d1df" +checksum = "8d9b05277c7e8da2c93a568989bb6207bef0112e8d17df7a6eda4a3cf143bc5e" dependencies = [ "base64 0.22.1", "bytes", @@ -1885,9 +1902,9 @@ checksum = "6045ea39e8d2862506c0dff6c65d068da362335df698bb1634033492740d2170" [[package]] name = "io-uring" -version = "0.7.8" +version = "0.7.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b86e202f00093dcba4275d4636b93ef9dd75d025ae560d2521b45ea28ab49013" +checksum = "d93587f37623a1a17d94ef2bc9ada592f5465fe7732084ab7beefabe5c77c0c4" dependencies = [ "bitflags 2.9.1", "cfg-if", @@ -1934,9 +1951,9 @@ dependencies = [ [[package]] name = "kasm-aarch64" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d45450cebbbccba594673938b1f08855ea0268cef05436e989bd86708278ace" +checksum = "e484b7a4686e2750fae1b4c4b750e14f1522eb303288d9d2723a955c2a41b7d7" dependencies = [ "darling", "proc-macro2", @@ -1996,9 +2013,9 @@ checksum = "1171693293099992e19cddea4e8b849964e9846f4acee11b3948bcc337be8776" [[package]] name = "libredox" -version = "0.1.4" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1580801010e535496706ba011c15f8532df6b42297d2e471fec38ceadd8c0638" +checksum = "4488594b9328dee448adb906d8b126d9b7deb7cf5c22161ee591610bb1be83c0" dependencies = [ "bitflags 2.9.1", "libc", @@ -2006,9 +2023,10 @@ dependencies = [ ] [[package]] -name = "linked_list" -version = "0.1.0" -source = "git+https://github.com/arceos-org/linked_list.git?tag=v0.1.0#34c8db301882cecfeb56df0f7c89978dbc62f49a" +name = "linked_list_r4l" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "54c6e48d7df84e6414be8e53976ead35ba4d47a4ba561eaad5d1e2b1447b4c0a" [[package]] name = "linkme" @@ -2359,9 +2377,9 @@ dependencies = [ [[package]] name = "pie-boot-loader-aarch64" -version = "0.1.25" +version = "0.1.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7dc57cd019b296478630e9e3bd62fcd462ece02611c8cee982f7f4f64ecf48d6" +checksum = "e4ee18ed1de7f55f318f01803bf7dc353ef492db71a2005fa3af36f116f25d28" dependencies = [ "aarch64-cpu", "aarch64-cpu-ext", @@ -2383,9 +2401,9 @@ dependencies = [ [[package]] name = "pie-boot-macros" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9402ab23e9e60727a37c831726126827f376de3e53478d3abc9adfbff4aa7ff3" +checksum = "513f5ca7603771d7524bfb7e6ba8dded83d2e8ac02d46f15815e0c1144bca566" dependencies = [ "darling", "proc-macro2", @@ -2431,9 +2449,9 @@ dependencies = [ [[package]] name = "prettyplease" -version = "0.2.35" +version = "0.2.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "061c1221631e079b26479d25bbf2275bfe5917ae8419cd7e34f13bfc2aa7539a" +checksum = "ff24dfcda44452b9816fff4cd4227e1bb73ff5a2f1bc1105aa92fb8565ce44d2" dependencies = [ "proc-macro2", "syn 2.0.104", @@ -2474,9 +2492,9 @@ checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" [[package]] name = "rand" -version = "0.9.1" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fbfd9d094a40bf3ae768db9361049ace4c0e04a4fd6b359518bd7b73a73dd97" +checksum = "6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1" dependencies = [ "rand_chacha", "rand_core", @@ -2640,9 +2658,9 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.5.13" +version = "0.5.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d04b7d0ee6b4a0207a0a7adb104d23ecb0b47d6beae7152d0fa34b692b29fd6" +checksum = "7251471db004e509f4e75a62cca9435365b5ec7bcdff530d612ac7c87c44a792" dependencies = [ "bitflags 2.9.1", ] @@ -2828,9 +2846,9 @@ dependencies = [ [[package]] name = "rustc-demangle" -version = "0.1.25" +version = "0.1.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "989e6739f80c4ad5b13e0fd7fe89531180375b18520cc8c82080e4dc4035b84f" +checksum = "56f7d92ca342cea22a06f2121d944b4fd82af56988c270852495420f961d4ace" [[package]] name = "rustc_version" @@ -2856,9 +2874,9 @@ dependencies = [ [[package]] name = "rustls" -version = "0.23.29" +version = "0.23.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2491382039b29b9b11ff08b76ff6c97cf287671dbb74f0be44bda389fffe9bd1" +checksum = "069a8df149a16b1a12dcc31497c3396a173844be3cac4bd40c9e7671fef96671" dependencies = [ "once_cell", "rustls-pki-types", @@ -2945,14 +2963,6 @@ dependencies = [ "windows-sys 0.59.0", ] -[[package]] -name = "scheduler" -version = "0.1.0" -source = "git+https://github.com/arceos-org/scheduler.git?tag=v0.1.0#c8d25d9aed146dca28dc8987afd229b52c20361a" -dependencies = [ - "linked_list", -] - [[package]] name = "scopeguard" version = "1.2.0" @@ -3049,9 +3059,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.140" +version = "1.0.141" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20068b6e96dc6c9bd23e01df8827e6c7e1f2fddd43c21810382803c136b99373" +checksum = "30b9eff21ebe718216c6ec64e1d9ac57087aad11efc64e32002bce4a0d4c03d3" dependencies = [ "itoa", "memchr", @@ -3128,12 +3138,12 @@ dependencies = [ [[package]] name = "socket2" -version = "0.5.10" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e22376abed350d73dd1cd119b57ffccad95b4e585a7cda43e286245ce23c0678" +checksum = "233504af464074f9d066d7b5416c5f9b894a5862a6506e306f7b816cdd6f1807" dependencies = [ "libc", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -3372,9 +3382,9 @@ checksum = "b0293f99756f16ff352cc78c99673766a305bdb5ed7652e78df649e9967c885a" [[package]] name = "tokio" -version = "1.46.1" +version = "1.47.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0cc3a2344dafbe23a245241fe8b09735b521110d30fcefbbd5feb1797ca35d17" +checksum = "43864ed400b6043a4757a25c7a64a8efde741aed79a056a2fb348a406701bb35" dependencies = [ "backtrace", "bytes", @@ -3384,7 +3394,7 @@ dependencies = [ "pin-project-lite", "slab", "socket2", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -4022,7 +4032,7 @@ dependencies = [ [[package]] name = "x86_vcpu" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/x86_vcpu.git#a18a499bd166088ff05e19805cfe9aafa21aab96" +source = "git+https://github.com/arceos-hypervisor/x86_vcpu.git#edc1ac095ae7a9359d76e227af7f8f1b360b441c" dependencies = [ "axaddrspace", "axdevice_base", @@ -4039,6 +4049,7 @@ dependencies = [ "page_table_entry", "paste", "raw-cpuid 11.5.0", + "spin 0.9.8", "x86", "x86_64", "x86_vlapic", @@ -4047,7 +4058,7 @@ dependencies = [ [[package]] name = "x86_vlapic" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/x86_vlapic.git#1f3edfb03f9ac99bfe567b73fb59779eaac32235" +source = "git+https://github.com/arceos-hypervisor/x86_vlapic.git#1bcf9feace828cdee555620a1c8ca5408129f1eb" dependencies = [ "axaddrspace", "axdevice_base", diff --git a/Makefile b/Makefile index d303dac2..beb5a548 100644 --- a/Makefile +++ b/Makefile @@ -22,4 +22,10 @@ setup-arceos: # 透传所有其他目标到 .arceos run: setup-arceos - @$(MAKE) -C .arceos A=$(shell pwd) LD_SCRIPT=link.x $@ $(MAKEFLAGS) run \ No newline at end of file + @$(MAKE) -C .arceos A=$(shell pwd) LD_SCRIPT=link.x $@ $(MAKEFLAGS) run + +clean: setup-arceos + @$(MAKE) -C .arceos A=$(shell pwd) LD_SCRIPT=link.x $@ $(MAKEFLAGS) clean + +disk_img: setup-arceos + @$(MAKE) -C .arceos A=$(shell pwd) LD_SCRIPT=link.x $@ $(MAKEFLAGS) disk_img \ No newline at end of file From 0618b5bebd7719bd5450371c707ce094045258b7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E7=9D=BF?= Date: Mon, 4 Aug 2025 09:36:19 +0800 Subject: [PATCH 070/219] fmt code --- src/logo.rs | 2 +- src/vmm/config.rs | 11 +++++------ src/vmm/hvc.rs | 2 +- src/vmm/ivc.rs | 8 +++----- src/vmm/mock.rs | 1 - src/vmm/timer.rs | 6 +++--- src/vmm/vcpus.rs | 6 ++---- 7 files changed, 15 insertions(+), 21 deletions(-) diff --git a/src/logo.rs b/src/logo.rs index a549ef66..4001dac3 100644 --- a/src/logo.rs +++ b/src/logo.rs @@ -1,7 +1,7 @@ use std::os::arceos::api::time::ax_wall_time; use std::println; -const LOGO: [&'static str; 2] = [ +const LOGO: [&str; 2] = [ r#" d8888 888 888 d8b d88888 888 888 Y8P diff --git a/src/vmm/config.rs b/src/vmm/config.rs index d65805af..6c4c69cd 100644 --- a/src/vmm/config.rs +++ b/src/vmm/config.rs @@ -48,7 +48,7 @@ pub fn parse_vm_dtb(vm_cfg: &mut AxVMConfig, dtb: &[u8]) { if region.size == 0 { continue; } - dram_regions.push((region.address as usize, region.size as usize)); + dram_regions.push((region.address as usize, region.size)); } } @@ -61,7 +61,7 @@ pub fn parse_vm_dtb(vm_cfg: &mut AxVMConfig, dtb: &[u8]) { warn!("DTB memory region: {:?}", region); vm_cfg.add_memory_region(VmMemConfig { gpa: region.address as usize, - size: region.size as usize, + size: region.size, flags: (MappingFlags::READ | MappingFlags::WRITE | MappingFlags::EXECUTE @@ -88,13 +88,12 @@ pub fn parse_vm_dtb(vm_cfg: &mut AxVMConfig, dtb: &[u8]) { continue; } - if let Some(status) = node.status() { - if status == Status::Disabled { + if let Some(status) = node.status() + && status == Status::Disabled { // Skip disabled nodes trace!("DTB node: {} is disabled", name); // continue; } - } // Skip the interrupt controller, as we will use vGIC // TODO: filter with compatible property and parse its phandle from DT; maybe needs a second pass? @@ -178,7 +177,7 @@ pub fn parse_vm_dtb(vm_cfg: &mut AxVMConfig, dtb: &[u8]) { if let Some(size) = reg.size { let start = reg.address as usize; - let end = start + size as usize; + let end = start + size; if vm_cfg.contains_memory_range(&(start..end)) { trace!( "Skipping DTB node {} with register address {:#x} and size {:#x} as it overlaps with existing memory regions", diff --git a/src/vmm/hvc.rs b/src/vmm/hvc.rs index 5e7ce754..76e56673 100644 --- a/src/vmm/hvc.rs +++ b/src/vmm/hvc.rs @@ -141,7 +141,7 @@ impl HyperCall { } _ => { warn!("Unsupported hypercall code: {:?}", self.code); - return ax_err!(Unsupported); + ax_err!(Unsupported) } } } diff --git a/src/vmm/ivc.rs b/src/vmm/ivc.rs index 873c503e..1f7037f4 100644 --- a/src/vmm/ivc.rs +++ b/src/vmm/ivc.rs @@ -87,7 +87,7 @@ pub fn get_channel_size(publisher_vm_id: usize, key: usize) -> AxResult { /// Subcribe to a channel of a publisher VM with the given key, /// return the shared region base address and size. -pub fn subscribe_to_channel_of_publisher<'a>( +pub fn subscribe_to_channel_of_publisher( publisher_vm_id: usize, key: usize, subscriber_vm_id: usize, @@ -140,7 +140,7 @@ pub fn unsubscribe_from_channel_of_publisher( // If the channel has no subscribers and has been unpublished (base GPA is None), // remove it from the global map. - if channels.get(&(publisher_vm_id, key)).map_or(false, |c| { + if channels.get(&(publisher_vm_id, key)).is_some_and(|c| { c.subscribers().is_empty() && c.base_gpa.is_none() }) { channels.remove(&(publisher_vm_id, key)); @@ -266,9 +266,7 @@ impl IVCChannel { } pub fn add_subscriber(&mut self, subscriber_vm_id: usize, subscriber_gpa: GuestPhysAddr) { - if !self.subscriber_vms.contains_key(&subscriber_vm_id) { - self.subscriber_vms.insert(subscriber_vm_id, subscriber_gpa); - } + self.subscriber_vms.entry(subscriber_vm_id).or_insert(subscriber_gpa); } pub fn remove_subscriber(&mut self, subscriber_vm_id: usize) -> Option { diff --git a/src/vmm/mock.rs b/src/vmm/mock.rs index d39a711a..1ee69d0d 100644 --- a/src/vmm/mock.rs +++ b/src/vmm/mock.rs @@ -1,4 +1,3 @@ -use alloc::boxed::Box; use axaddrspace::{ GuestPhysAddrRange, device::{AccessWidth, DeviceAddrRange}, diff --git a/src/vmm/timer.rs b/src/vmm/timer.rs index 36fd4ad2..c51977e7 100644 --- a/src/vmm/timer.rs +++ b/src/vmm/timer.rs @@ -28,7 +28,7 @@ impl VmmTimerEvent { F: FnOnce(TimeValue) + Send + 'static, { Self { - token: token, + token, timer_callback: Box::new(f), } } @@ -59,13 +59,13 @@ where info!( "deadline is {:#?} = {:#?}", deadline, - TimeValue::from_nanos(deadline as u64) + TimeValue::from_nanos(deadline) ); let timer_list = unsafe { TIMER_LIST.current_ref_mut_raw() }; let mut timers = timer_list.lock(); let token = TOKEN.fetch_add(1, Ordering::Release); let event = VmmTimerEvent::new(token, handler); - timers.set(TimeValue::from_nanos(deadline as u64), event); + timers.set(TimeValue::from_nanos(deadline), event); token } diff --git a/src/vmm/vcpus.rs b/src/vmm/vcpus.rs index c11cd6e9..7458deec 100644 --- a/src/vmm/vcpus.rs +++ b/src/vmm/vcpus.rs @@ -6,10 +6,7 @@ use core::{ time::Duration, }; use std::os::arceos::{ - api::{ - self, - task::{ax_wait_queue_wake, AxCpuMask}, - }, + api::task::{AxCpuMask, ax_wait_queue_wake}, modules::{ axhal::{self, time::busy_wait}, axtask, @@ -46,6 +43,7 @@ impl Queue { unsafe { (*self.0.get()).get(vm_id) } } + #[allow(clippy::mut_from_ref)] fn get_mut(&self, vm_id: &usize) -> Option<&mut VMVCpus> { unsafe { (*self.0.get()).get_mut(vm_id) } } From 3b272d224287b95e28b855b60fb42c6fe3ce6169 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E7=9D=BF?= Date: Mon, 4 Aug 2025 10:34:47 +0800 Subject: [PATCH 071/219] update ci tool chain --- .github/workflows/build.yml | 6 +++--- .github/workflows/test.yml | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index d528ba35..51e41a2e 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -9,7 +9,7 @@ jobs: fail-fast: false matrix: arch: [x86_64, riscv64, aarch64] - rust-toolchain: [nightly-2024-12-25, nightly] + rust-toolchain: [nightly-2025-05-20, nightly] env: RUSTUP_TOOLCHAIN: ${{ matrix.rust-toolchain }} steps: @@ -30,7 +30,7 @@ jobs: strategy: fail-fast: false matrix: - rust-toolchain: [nightly-2024-12-25, nightly] + rust-toolchain: [nightly-2025-05-20, nightly] env: RUSTUP_TOOLCHAIN: ${{ matrix.rust-toolchain }} steps: @@ -52,7 +52,7 @@ jobs: matrix: os: [ubuntu-latest] arch: [x86_64, riscv64, aarch64] - rust-toolchain: [nightly-2024-12-25, nightly] + rust-toolchain: [nightly-2025-05-20, nightly] env: RUSTUP_TOOLCHAIN: ${{ matrix.rust-toolchain }} steps: diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 15af65c7..2392f6ad 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -14,7 +14,7 @@ jobs: matrix: os: [ubuntu-latest] arch: [riscv64, aarch64] - rust-toolchain: [nightly-2024-12-25, nightly] + rust-toolchain: [nightly-2025-05-20, nightly] steps: - uses: actions/checkout@v4 - uses: dtolnay/rust-toolchain@stable @@ -55,7 +55,7 @@ jobs: fail-fast: false matrix: arch: [x86_64] - rust-toolchain: [nightly-2024-12-25, nightly] + rust-toolchain: [nightly-2025-05-20, nightly] remote: [remote_aarkegz, remote_x10dri] include: - remote: remote_aarkegz From 81706551bb98760f922c9e82f8004dac9edeebf7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E7=9D=BF?= Date: Mon, 4 Aug 2025 10:36:51 +0800 Subject: [PATCH 072/219] fmt --- Makefile | 5 ++++- src/utils/arch/aarch64/cache.rs | 2 +- src/vmm/config.rs | 11 ++++++----- src/vmm/ivc.rs | 11 +++++++---- src/vmm/mod.rs | 2 +- 5 files changed, 19 insertions(+), 12 deletions(-) diff --git a/Makefile b/Makefile index beb5a548..3769a749 100644 --- a/Makefile +++ b/Makefile @@ -28,4 +28,7 @@ clean: setup-arceos @$(MAKE) -C .arceos A=$(shell pwd) LD_SCRIPT=link.x $@ $(MAKEFLAGS) clean disk_img: setup-arceos - @$(MAKE) -C .arceos A=$(shell pwd) LD_SCRIPT=link.x $@ $(MAKEFLAGS) disk_img \ No newline at end of file + @$(MAKE) -C .arceos A=$(shell pwd) LD_SCRIPT=link.x $@ $(MAKEFLAGS) disk_img + +clippy: setup-arceos + @$(MAKE) -C .arceos A=$(shell pwd) LD_SCRIPT=link.x $@ $(MAKEFLAGS) clippy \ No newline at end of file diff --git a/src/utils/arch/aarch64/cache.rs b/src/utils/arch/aarch64/cache.rs index 594776ad..f8750672 100644 --- a/src/utils/arch/aarch64/cache.rs +++ b/src/utils/arch/aarch64/cache.rs @@ -2,7 +2,7 @@ use core::arch::global_asm; global_asm!(include_str!("cache.S")); -unsafe extern "C" { +unsafe extern { /// Invalidate the data cache. pub unsafe fn cache_invalidate_d(start: usize, len: usize); /// Clean and invalidate the data cache. diff --git a/src/vmm/config.rs b/src/vmm/config.rs index 6c4c69cd..798c0389 100644 --- a/src/vmm/config.rs +++ b/src/vmm/config.rs @@ -89,11 +89,12 @@ pub fn parse_vm_dtb(vm_cfg: &mut AxVMConfig, dtb: &[u8]) { } if let Some(status) = node.status() - && status == Status::Disabled { - // Skip disabled nodes - trace!("DTB node: {} is disabled", name); - // continue; - } + && status == Status::Disabled + { + // Skip disabled nodes + trace!("DTB node: {} is disabled", name); + // continue; + } // Skip the interrupt controller, as we will use vGIC // TODO: filter with compatible property and parse its phandle from DT; maybe needs a second pass? diff --git a/src/vmm/ivc.rs b/src/vmm/ivc.rs index 1f7037f4..542db9ca 100644 --- a/src/vmm/ivc.rs +++ b/src/vmm/ivc.rs @@ -140,9 +140,10 @@ pub fn unsubscribe_from_channel_of_publisher( // If the channel has no subscribers and has been unpublished (base GPA is None), // remove it from the global map. - if channels.get(&(publisher_vm_id, key)).is_some_and(|c| { - c.subscribers().is_empty() && c.base_gpa.is_none() - }) { + if channels + .get(&(publisher_vm_id, key)) + .is_some_and(|c| c.subscribers().is_empty() && c.base_gpa.is_none()) + { channels.remove(&(publisher_vm_id, key)); } @@ -266,7 +267,9 @@ impl IVCChannel { } pub fn add_subscriber(&mut self, subscriber_vm_id: usize, subscriber_gpa: GuestPhysAddr) { - self.subscriber_vms.entry(subscriber_vm_id).or_insert(subscriber_gpa); + self.subscriber_vms + .entry(subscriber_vm_id) + .or_insert(subscriber_gpa); } pub fn remove_subscriber(&mut self, subscriber_vm_id: usize) -> Option { diff --git a/src/vmm/mod.rs b/src/vmm/mod.rs index c286543f..a9ddd3e2 100644 --- a/src/vmm/mod.rs +++ b/src/vmm/mod.rs @@ -125,6 +125,6 @@ pub fn with_vm_and_vcpu_on_pcpu( unimplemented!(); // use std::os::arceos::modules::axipi; // Ok(axipi::send_ipi_event_to_one(pcpu_id as usize, move || { - // with_vm_and_vcpu_on_pcpu(vm_id, vcpu_id, f); + // with_vm_and_vcpu_on_pcpu(vm_id, vcpu_id, f); // })) } From d914c9056c7935ee1bb2cf11489531322fa5a7da Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E7=9D=BF?= Date: Mon, 4 Aug 2025 10:47:11 +0800 Subject: [PATCH 073/219] fix build --- .github/workflows/build.yml | 4 ++-- Makefile | 5 ++++- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 51e41a2e..6a83cc67 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -51,7 +51,7 @@ jobs: fail-fast: false matrix: os: [ubuntu-latest] - arch: [x86_64, riscv64, aarch64] + plat: [aarch64-dyn] rust-toolchain: [nightly-2025-05-20, nightly] env: RUSTUP_TOOLCHAIN: ${{ matrix.rust-toolchain }} @@ -66,4 +66,4 @@ jobs: - run: cargo install cargo-binutils - name: Build the repo continue-on-error: ${{ matrix.rust-toolchain == 'nightly' }} - run: make ARCH=${{ matrix.arch }} build + run: make MYPLAT=axplat-${{ matrix.plat }} build diff --git a/Makefile b/Makefile index 3769a749..f09a13e0 100644 --- a/Makefile +++ b/Makefile @@ -31,4 +31,7 @@ disk_img: setup-arceos @$(MAKE) -C .arceos A=$(shell pwd) LD_SCRIPT=link.x $@ $(MAKEFLAGS) disk_img clippy: setup-arceos - @$(MAKE) -C .arceos A=$(shell pwd) LD_SCRIPT=link.x $@ $(MAKEFLAGS) clippy \ No newline at end of file + @$(MAKE) -C .arceos A=$(shell pwd) LD_SCRIPT=link.x $@ $(MAKEFLAGS) clippy + +build: setup-arceos + @$(MAKE) -C .arceos A=$(shell pwd) LD_SCRIPT=link.x $@ $(MAKEFLAGS) build \ No newline at end of file From b8a5d7d51642c1de98283a6e8e36ed2430e9cfb0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E7=9D=BF?= Date: Mon, 4 Aug 2025 10:53:42 +0800 Subject: [PATCH 074/219] update ci --- .github/workflows/test.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 2392f6ad..eb034d86 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -13,7 +13,8 @@ jobs: fail-fast: false matrix: os: [ubuntu-latest] - arch: [riscv64, aarch64] + # arch: [riscv64, aarch64] + plat: [aarch64-dyn] rust-toolchain: [nightly-2025-05-20, nightly] steps: - uses: actions/checkout@v4 @@ -46,8 +47,7 @@ jobs: cargo version export DISK_IMG="${{ github.workspace }}/disk-${{ matrix.arch }}.img" export VM_CONFIGS="$(pwd)/configs/vms/nimbos-${{ matrix.arch }}.toml" - make ARCH=${{ matrix.arch }} defconfig - make ARCH=${{ matrix.arch }} DISK_IMG=${DISK_IMG} LOG=info BLK=y ACCEL=n VM_CONFIGS=${VM_CONFIGS} APP_FEATURES=fs run + make MYPLAT=axplat-${{ matrix.plat }} DISK_IMG=${DISK_IMG} LOG=info BLK=y ACCEL=n VM_CONFIGS=${VM_CONFIGS} APP_FEATURES=fs run test_remote: runs-on: ubuntu-latest From 08effc791cfff47c46a9be821940690f76606621 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E7=9D=BF?= Date: Mon, 4 Aug 2025 10:59:33 +0800 Subject: [PATCH 075/219] update --- .github/workflows/test.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index eb034d86..61b2cfe5 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -27,12 +27,12 @@ jobs: - uses: arceos-org/setup-qemu@v0.1 with: version: ${{ env.qemu-version }} - arch_list: ${{ matrix.arch }} + arch_list: aarch64 - uses: ./.github/workflows/actions/setup-nimbos-guest-image with: nimbos-version: 'tags/v0.7' - arch: ${{ matrix.arch }} - disk-path: ${{ github.workspace }}/disk-${{ matrix.arch }}.img + arch: aarch64 + disk-path: ${{ github.workspace }}/disk-aarch64.img - name: Enable KVM group perms run: | echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules @@ -45,8 +45,8 @@ jobs: continue-on-error: ${{ matrix.rust-toolchain == 'nightly' }} run: | cargo version - export DISK_IMG="${{ github.workspace }}/disk-${{ matrix.arch }}.img" - export VM_CONFIGS="$(pwd)/configs/vms/nimbos-${{ matrix.arch }}.toml" + export DISK_IMG="${{ github.workspace }}/disk-aarch64.img" + export VM_CONFIGS="$(pwd)/configs/vms/nimbos-aarch64.toml" make MYPLAT=axplat-${{ matrix.plat }} DISK_IMG=${DISK_IMG} LOG=info BLK=y ACCEL=n VM_CONFIGS=${VM_CONFIGS} APP_FEATURES=fs run test_remote: From 65048a958af80986b21775c028dfb56fd9216117 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E7=9D=BF?= Date: Mon, 4 Aug 2025 12:38:02 +0800 Subject: [PATCH 076/219] add: platform makefile --- Cargo.lock | 138 +++++++------------------ Cargo.toml | 17 +-- Makefile | 14 ++- platform/aarch64-generic/Cargo.toml | 11 ++ platform/aarch64-generic/axconfig.toml | 49 +++++++++ platform/aarch64-generic/src/lib.rs | 3 + src/main.rs | 3 +- 7 files changed, 125 insertions(+), 110 deletions(-) create mode 100644 platform/aarch64-generic/Cargo.toml create mode 100644 platform/aarch64-generic/axconfig.toml create mode 100644 platform/aarch64-generic/src/lib.rs diff --git a/Cargo.lock b/Cargo.lock index a4ef2e8f..3055fa8f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -657,6 +657,15 @@ dependencies = [ "toml 0.8.23", ] +[[package]] +name = "axplat-aarch64-generic" +version = "0.1.0" +dependencies = [ + "axplat-aarch64-dyn", + "serde", + "toml 0.8.23", +] + [[package]] name = "axplat-aarch64-peripherals" version = "0.1.1" @@ -861,7 +870,7 @@ dependencies = [ "axdevice_base", "axerrno", "axhvc", - "axplat-aarch64-dyn", + "axplat-aarch64-generic", "axstd", "axvcpu", "axvisor_api", @@ -959,7 +968,7 @@ dependencies = [ "miniz_oxide", "object", "rustc-demangle", - "windows-targets 0.52.6", + "windows-targets", ] [[package]] @@ -1114,9 +1123,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.2.30" +version = "1.2.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "deec109607ca693028562ed836a5f1c4b8bd77755c4e132fc5ce11b0b6211ae7" +checksum = "c3a42d84bb6b69d3a8b3eaacf0d88f179e1929695e1ad012b6cf64d9caaa5fd2" dependencies = [ "shlex", ] @@ -1418,7 +1427,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "778e2ac28f6c47af28e4907f13ffd1e1ddbd400980a9abd7c8df189bf578a5ad" dependencies = [ "libc", - "windows-sys 0.60.2", + "windows-sys 0.59.0", ] [[package]] @@ -2013,9 +2022,9 @@ checksum = "1171693293099992e19cddea4e8b849964e9846f4acee11b3948bcc337be8776" [[package]] name = "libredox" -version = "0.1.6" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4488594b9328dee448adb906d8b126d9b7deb7cf5c22161ee591610bb1be83c0" +checksum = "391290121bad3d37fbddad76d8f5d1c1c314cfc646d143d7e07a3086ddff0ce3" dependencies = [ "bitflags 2.9.1", "libc", @@ -2658,9 +2667,9 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.5.16" +version = "0.5.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7251471db004e509f4e75a62cca9435365b5ec7bcdff530d612ac7c87c44a792" +checksum = "5407465600fb0548f1442edf71dd20683c6ed326200ace4b1ef0763521bb3b77" dependencies = [ "bitflags 2.9.1", ] @@ -2869,14 +2878,14 @@ dependencies = [ "errno", "libc", "linux-raw-sys", - "windows-sys 0.60.2", + "windows-sys 0.59.0", ] [[package]] name = "rustls" -version = "0.23.30" +version = "0.23.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "069a8df149a16b1a12dcc31497c3396a173844be3cac4bd40c9e7671fef96671" +checksum = "c0ebcbd2f03de0fc1122ad9bb24b127a5a6cd51d72604a3f3c50ac459762b6cc" dependencies = [ "once_cell", "rustls-pki-types", @@ -3059,9 +3068,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.141" +version = "1.0.142" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30b9eff21ebe718216c6ec64e1d9ac57087aad11efc64e32002bce4a0d4c03d3" +checksum = "030fedb782600dcbd6f02d479bf0d817ac3bb40d644745b769d6a96bc3afc5a7" dependencies = [ "itoa", "memchr", @@ -3382,9 +3391,9 @@ checksum = "b0293f99756f16ff352cc78c99673766a305bdb5ed7652e78df649e9967c885a" [[package]] name = "tokio" -version = "1.47.0" +version = "1.47.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43864ed400b6043a4757a25c7a64a8efde741aed79a056a2fb348a406701bb35" +checksum = "89e49afdadebb872d3145a5638b59eb0691ea23e46ca484037cfab3b76b95038" dependencies = [ "backtrace", "bytes", @@ -3419,9 +3428,9 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.7.15" +version = "0.7.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66a539a9ad6d5d281510d5bd368c973d636c02dbf8a67300bfb6b950696ad7df" +checksum = "14307c986784f72ef81c89db7d9e28d6ac26d16213b109ea501696195e6e3ce5" dependencies = [ "bytes", "futures-core", @@ -3814,7 +3823,7 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" dependencies = [ - "windows-targets 0.52.6", + "windows-targets", ] [[package]] @@ -3823,16 +3832,7 @@ version = "0.59.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" dependencies = [ - "windows-targets 0.52.6", -] - -[[package]] -name = "windows-sys" -version = "0.60.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" -dependencies = [ - "windows-targets 0.53.2", + "windows-targets", ] [[package]] @@ -3841,30 +3841,14 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" dependencies = [ - "windows_aarch64_gnullvm 0.52.6", - "windows_aarch64_msvc 0.52.6", - "windows_i686_gnu 0.52.6", - "windows_i686_gnullvm 0.52.6", - "windows_i686_msvc 0.52.6", - "windows_x86_64_gnu 0.52.6", - "windows_x86_64_gnullvm 0.52.6", - "windows_x86_64_msvc 0.52.6", -] - -[[package]] -name = "windows-targets" -version = "0.53.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c66f69fcc9ce11da9966ddb31a40968cad001c5bedeb5c2b82ede4253ab48aef" -dependencies = [ - "windows_aarch64_gnullvm 0.53.0", - "windows_aarch64_msvc 0.53.0", - "windows_i686_gnu 0.53.0", - "windows_i686_gnullvm 0.53.0", - "windows_i686_msvc 0.53.0", - "windows_x86_64_gnu 0.53.0", - "windows_x86_64_gnullvm 0.53.0", - "windows_x86_64_msvc 0.53.0", + "windows_aarch64_gnullvm", + "windows_aarch64_msvc", + "windows_i686_gnu", + "windows_i686_gnullvm", + "windows_i686_msvc", + "windows_x86_64_gnu", + "windows_x86_64_gnullvm", + "windows_x86_64_msvc", ] [[package]] @@ -3873,96 +3857,48 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.53.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86b8d5f90ddd19cb4a147a5fa63ca848db3df085e25fee3cc10b39b6eebae764" - [[package]] name = "windows_aarch64_msvc" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" -[[package]] -name = "windows_aarch64_msvc" -version = "0.53.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7651a1f62a11b8cbd5e0d42526e55f2c99886c77e007179efff86c2b137e66c" - [[package]] name = "windows_i686_gnu" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" -[[package]] -name = "windows_i686_gnu" -version = "0.53.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1dc67659d35f387f5f6c479dc4e28f1d4bb90ddd1a5d3da2e5d97b42d6272c3" - [[package]] name = "windows_i686_gnullvm" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" -[[package]] -name = "windows_i686_gnullvm" -version = "0.53.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ce6ccbdedbf6d6354471319e781c0dfef054c81fbc7cf83f338a4296c0cae11" - [[package]] name = "windows_i686_msvc" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" -[[package]] -name = "windows_i686_msvc" -version = "0.53.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "581fee95406bb13382d2f65cd4a908ca7b1e4c2f1917f143ba16efe98a589b5d" - [[package]] name = "windows_x86_64_gnu" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" -[[package]] -name = "windows_x86_64_gnu" -version = "0.53.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e55b5ac9ea33f2fc1716d1742db15574fd6fc8dadc51caab1c16a3d3b4190ba" - [[package]] name = "windows_x86_64_gnullvm" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.53.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a6e035dd0599267ce1ee132e51c27dd29437f63325753051e71dd9e42406c57" - [[package]] name = "windows_x86_64_msvc" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" -[[package]] -name = "windows_x86_64_msvc" -version = "0.53.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486" - [[package]] name = "winnow" version = "0.6.26" diff --git a/Cargo.toml b/Cargo.toml index c58ed3dd..55853a7f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -13,17 +13,18 @@ version = "0.1.0" fs = ["axstd/fs"] hv = [] irq = [] +plat-aarch64-generic = ["axplat-aarch64-generic", "fs", "hv", "irq"] [dependencies] bitflags = "2.2" cfg-if = "1.0" +cpumask = "0.1.0" +kernel_guard = "0.1" kspin = "0.1" lazyinit = "0.2" log = "=0.4.21" spin = "0.9" timer_list = "0.1.0" -cpumask = "0.1.0" -kernel_guard = "0.1" # System dependent modules provided by ArceOS. axstd = {git = "https://github.com/arceos-hypervisor/arceos.git", branch = "vmm-dev", features = [ @@ -51,11 +52,15 @@ page_table_entry = {version = "0.5", features = ["arm-el2"]} page_table_multiarch = "0.5" percpu = {version = "0.2", features = ["arm-el2"]} -axplat-aarch64-dyn = {git = "https://github.com/arceos-hypervisor/axplat-aarch64-dyn", branch = "vmm", features = ["irq", "smp", "hv"]} +# axplat-aarch64-dyn = {git = "https://github.com/arceos-hypervisor/axplat-aarch64-dyn", branch = "vmm", features = ["irq", "smp", "hv"]} + +axdevice = {git = "https://github.com/arceos-hypervisor/axdevice.git"} +axdevice_base = {git = "https://github.com/arceos-hypervisor/axdevice_crates.git"} +axvisor_api = {git = "https://github.com/arceos-hypervisor/axvisor_api.git"} + +# platform -axdevice = { git = "https://github.com/arceos-hypervisor/axdevice.git" } -axdevice_base = { git = "https://github.com/arceos-hypervisor/axdevice_crates.git" } -axvisor_api = { git = "https://github.com/arceos-hypervisor/axvisor_api.git" } +axplat-aarch64-generic = {path = "platform/aarch64-generic", optional = true} [build-dependencies] axconfig = {git = "https://github.com/arceos-hypervisor/arceos.git", branch = "vmm-dev"} diff --git a/Makefile b/Makefile index f09a13e0..92a982ec 100644 --- a/Makefile +++ b/Makefile @@ -3,6 +3,16 @@ ifneq ($(VM_CONFIGS),) export AXVISOR_VM_CONFIGS=$(VM_CONFIGS) endif +PLAT ?= aarch64-generic + +PLAT_DIR := $(shell pwd)/platform/$(PLAT) + +MYPLAT := axplat-$(PLAT) + +HV_FEATURES ?= + +APP_FEATURES := $(HV_FEATURES),plat-$(PLAT) + # 默认目标 .PHONY: default default: setup-arceos @@ -22,7 +32,7 @@ setup-arceos: # 透传所有其他目标到 .arceos run: setup-arceos - @$(MAKE) -C .arceos A=$(shell pwd) LD_SCRIPT=link.x $@ $(MAKEFLAGS) run + @$(MAKE) -C .arceos A=$(shell pwd) LD_SCRIPT=link.x MYPLAT=$(MYPLAT) APP_FEATURES=$(APP_FEATURES) $@ $(MAKEFLAGS) run clean: setup-arceos @$(MAKE) -C .arceos A=$(shell pwd) LD_SCRIPT=link.x $@ $(MAKEFLAGS) clean @@ -34,4 +44,4 @@ clippy: setup-arceos @$(MAKE) -C .arceos A=$(shell pwd) LD_SCRIPT=link.x $@ $(MAKEFLAGS) clippy build: setup-arceos - @$(MAKE) -C .arceos A=$(shell pwd) LD_SCRIPT=link.x $@ $(MAKEFLAGS) build \ No newline at end of file + @$(MAKE) -C .arceos A=$(shell pwd) LD_SCRIPT=link.x $@ $(MAKEFLAGS) build \ No newline at end of file diff --git a/platform/aarch64-generic/Cargo.toml b/platform/aarch64-generic/Cargo.toml new file mode 100644 index 00000000..82b97d77 --- /dev/null +++ b/platform/aarch64-generic/Cargo.toml @@ -0,0 +1,11 @@ +[package] +edition = "2024" +name = "axplat-aarch64-generic" +version = "0.1.0" + +[dependencies] +axplat-aarch64-dyn = {git = "https://github.com/arceos-hypervisor/axplat-aarch64-dyn", branch = "vmm", features = ["irq", "smp", "hv"]} + +[build-dependencies] +serde = {version = "1.0", features = ["derive"]} +toml = "0.8" diff --git a/platform/aarch64-generic/axconfig.toml b/platform/aarch64-generic/axconfig.toml new file mode 100644 index 00000000..92ca23f8 --- /dev/null +++ b/platform/aarch64-generic/axconfig.toml @@ -0,0 +1,49 @@ +# Architecture identifier. +arch = "aarch64" # str +# Platform package. +package = "axplat-aarch64-generic" # str +# Platform identifier. +platform = "aarch64-generic" # str + +# +# Device specifications +# +[devices] +# MMIO regions with format (`base_paddr`, `size`). +mmio-regions = [] # [(uint, uint)] +# End PCI bus number. +pci-bus-end = 0 # uint +# Base physical address of the PCIe ECAM space. +pci-ecam-base = 0 # uint +# PCI device memory ranges. +pci-ranges = [] # [(uint, uint)] +# Timer interrupt num (PPI, physical timer). +timer-irq = 26 # uint +# VirtIO MMIO regions with format (`base_paddr`, `size`). +virtio-mmio-regions = [] # [(uint, uint)] + +# +# Platform configs +# +[plat] +# Platform family (deprecated). +family = "" # str +# Number of CPUs. +cpu-num = 1 # uint +# No need. +phys-memory-base = 0 # uint +# No need. +phys-memory-size = 0x0 # uint +# No need. +kernel-base-paddr = 0x0 # uint +# Base virtual address of the kernel image. +kernel-base-vaddr = "0x8000_0000_0000" # uint +# No need. +phys-virt-offset = "0" # uint +# Offset of bus address and phys address. some boards, the bus address is +# different from the physical address. +phys-bus-offset = 0 # uint +# Kernel address space base. +kernel-aspace-base = "0x0000_0000_0000" # uint +# Kernel address space size. +kernel-aspace-size = "0xffff_ffff_f000" # uint diff --git a/platform/aarch64-generic/src/lib.rs b/platform/aarch64-generic/src/lib.rs new file mode 100644 index 00000000..4206225a --- /dev/null +++ b/platform/aarch64-generic/src/lib.rs @@ -0,0 +1,3 @@ +#![no_std] + +extern crate axplat_aarch64_dyn; \ No newline at end of file diff --git a/src/main.rs b/src/main.rs index 402ad788..936d2f7f 100644 --- a/src/main.rs +++ b/src/main.rs @@ -8,7 +8,8 @@ extern crate alloc; extern crate axstd as std; -extern crate axplat_aarch64_dyn; +#[cfg(feature = "plat-aarch64-generic")] +extern crate axplat_aarch64_generic; mod hal; mod logo; From 68b463dc637654e70c40b3b2a183f7392fbda01e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E7=9D=BF?= Date: Fri, 8 Aug 2025 09:28:58 +0800 Subject: [PATCH 077/219] update --- Cargo.lock | 1 - src/hal.rs | 4 +++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 3055fa8f..8b4560fc 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -230,7 +230,6 @@ dependencies = [ [[package]] name = "arm_vgic" version = "0.0.0" -source = "git+https://github.com/arceos-hypervisor/arm_vgic.git#42b82b9405600d363a67487a8a50eb1808eead0f" dependencies = [ "aarch64-cpu", "aarch64_sysreg", diff --git a/src/hal.rs b/src/hal.rs index 3dbb16fd..eb9cbe3a 100644 --- a/src/hal.rs +++ b/src/hal.rs @@ -309,8 +309,10 @@ mod arch_api_impl { #[cfg(target_arch = "aarch64")] extern fn get_host_gicr_base() -> memory_addr::PhysAddr { use std::os::arceos::api::config; - unimplemented!(); + // unimplemented!(); // config::devices::GICR_PADDR.into() + // TODO parse from dtb + 0x80a_0000.into() } } From 8ae76012b234922b5e9a6925592a09d5b3dd2aaa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E7=9D=BF?= Date: Wed, 13 Aug 2025 09:42:50 +0800 Subject: [PATCH 078/219] update --- Cargo.lock | 6 +-- src/hal.rs | 132 ++++++++++++++++++++++++++++++++++++++++++++--- src/main.rs | 2 + src/vmm/timer.rs | 3 +- 4 files changed, 132 insertions(+), 11 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 8b4560fc..77f06514 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -132,9 +132,9 @@ dependencies = [ [[package]] name = "any-uart" -version = "0.2.11" +version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d946430e1de45608625428bac646b79e02fb83e1d2e46eec27afa2556f038e65" +checksum = "4ce5f140efb4e707ea8f8e894d5f710500e373be1c4435d56b28d1fd1f843341" dependencies = [ "bitflags 2.9.1", "cfg-if", @@ -212,7 +212,6 @@ dependencies = [ [[package]] name = "arm_vcpu" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arm_vcpu.git#5cb792296f7865f7031fcd502c62a51cbeb59dab" dependencies = [ "aarch64-cpu", "axaddrspace", @@ -633,7 +632,6 @@ dependencies = [ [[package]] name = "axplat-aarch64-dyn" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/axplat-aarch64-dyn?branch=vmm#4bb13061d36b32043963923bb175e9130011284c" dependencies = [ "aarch64-cpu", "aarch64-cpu-ext", diff --git a/src/hal.rs b/src/hal.rs index eb9cbe3a..620923d0 100644 --- a/src/hal.rs +++ b/src/hal.rs @@ -106,13 +106,13 @@ impl AxVCpuHal for AxVCpuHalImpl { #[cfg(target_arch = "aarch64")] fn irq_fetch() -> usize { axhal::irq::irq_fetch() + // 1023 } #[cfg(target_arch = "aarch64")] fn irq_hanlder() { - let irq_num = Self::irq_fetch(); - debug!("IRQ handler {irq_num}"); - axhal::irq::irq_handler(irq_num); + let irq = axhal::irq::irq_fetch(); + axhal::irq::irq_handler(irq); } } @@ -229,7 +229,7 @@ mod time_api_impl { deadline: TimeValue, handler: alloc::boxed::Box, ) -> CancelToken { - vmm::timer::register_timer(deadline.as_nanos() as u64, |t| handler(t)) + vmm::timer::register_timer(deadline.as_nanos() as u64, handler) } extern fn cancel_timer(token: CancelToken) { @@ -272,9 +272,11 @@ mod vmm_api_impl { mod arch_api_impl { #[cfg(target_arch = "aarch64")] extern fn hardware_inject_virtual_interrupt(irq: axvisor_api::vmm::InterruptVector) { - unimplemented!(); + debug!("Injecting virtual interrupt: {}", irq); + // unimplemented!(); // use axstd::os::arceos::modules::axhal; // axhal::irq::inject_interrupt(irq as usize); + super::inject_interrupt(irq as usize); } #[cfg(target_arch = "aarch64")] @@ -302,8 +304,9 @@ mod arch_api_impl { #[cfg(target_arch = "aarch64")] extern fn get_host_gicd_base() -> memory_addr::PhysAddr { use std::os::arceos::api::config; - unimplemented!(); + // unimplemented!(); // config::devices::GICD_PADDR.into() + 0x800_0000.into() } #[cfg(target_arch = "aarch64")] @@ -322,3 +325,120 @@ mod host_api_impl { std::os::arceos::modules::axconfig::plat::CPU_NUM } } + + + +/// Reads and returns the value of the given aarch64 system register. +macro_rules! read_sysreg { + ($name:ident) => { + { + let mut value: u64; + unsafe{::core::arch::asm!( + concat!("mrs {value:x}, ", ::core::stringify!($name)), + value = out(reg) value, + options(nomem, nostack), + );} + value + } + } +} + +/// Writes the given value to the given aarch64 system register. +macro_rules! write_sysreg { + ($name:ident, $value:expr) => { + { + let v: u64 = $value; + unsafe{::core::arch::asm!( + concat!("msr ", ::core::stringify!($name), ", {value:x}"), + value = in(reg) v, + options(nomem, nostack), + )} + } + } +} + +pub fn inject_interrupt(vector: usize) { + // mask + const LR_VIRTIRQ_MASK: usize = (1 << 32) - 1; + + let elsr: u64 = read_sysreg!(ich_elrsr_el2); + let vtr = read_sysreg!(ich_vtr_el2) as usize; + let lr_num: usize = (vtr & 0xf) + 1; + let mut free_lr = -1 as isize; + for i in 0..lr_num { + // find a free list register + if (1 << i) & elsr > 0 { + if free_lr == -1 { + free_lr = i as isize; + } + continue; + } + let lr_val = read_lr(i) as usize; + // if a virtual interrupt is enabled and equals to the physical interrupt irq_id + if (lr_val & LR_VIRTIRQ_MASK) == vector { + trace!("virtual irq {} enables again", vector); + } + } + trace!("use free lr {} to inject irq {}", free_lr, vector); + + if free_lr == -1 { + panic!("No free list register to inject IRQ {}", vector); + } else { + let mut val = vector as u64; // vector + val |= 1 << 60; // group 1 + val |= 1 << 62; // state pending + // hardware interrupt not supported + write_lr(free_lr as usize, val); + } +} + +fn read_lr(id: usize) -> u64 { + let id = id as u64; + match id { + //TODO get lr size from gic reg + 0 => read_sysreg!(ich_lr0_el2), + 1 => read_sysreg!(ich_lr1_el2), + 2 => read_sysreg!(ich_lr2_el2), + 3 => read_sysreg!(ich_lr3_el2), + 4 => read_sysreg!(ich_lr4_el2), + 5 => read_sysreg!(ich_lr5_el2), + 6 => read_sysreg!(ich_lr6_el2), + 7 => read_sysreg!(ich_lr7_el2), + 8 => read_sysreg!(ich_lr8_el2), + 9 => read_sysreg!(ich_lr9_el2), + 10 => read_sysreg!(ich_lr10_el2), + 11 => read_sysreg!(ich_lr11_el2), + 12 => read_sysreg!(ich_lr12_el2), + 13 => read_sysreg!(ich_lr13_el2), + 14 => read_sysreg!(ich_lr14_el2), + 15 => read_sysreg!(ich_lr15_el2), + _ => { + panic!("invalid lr id {}", id); + } + } +} + +fn write_lr(id: usize, val: u64) { + let id = id as u64; + match id { + 0 => write_sysreg!(ich_lr0_el2, val), + 1 => write_sysreg!(ich_lr1_el2, val), + 2 => write_sysreg!(ich_lr2_el2, val), + 3 => write_sysreg!(ich_lr3_el2, val), + 4 => write_sysreg!(ich_lr4_el2, val), + 5 => write_sysreg!(ich_lr5_el2, val), + 6 => write_sysreg!(ich_lr6_el2, val), + 7 => write_sysreg!(ich_lr7_el2, val), + 8 => write_sysreg!(ich_lr8_el2, val), + 9 => write_sysreg!(ich_lr9_el2, val), + 10 => write_sysreg!(ich_lr10_el2, val), + 11 => write_sysreg!(ich_lr11_el2, val), + 12 => write_sysreg!(ich_lr12_el2, val), + 13 => write_sysreg!(ich_lr13_el2, val), + 14 => write_sysreg!(ich_lr14_el2, val), + 15 => write_sysreg!(ich_lr15_el2, val), + _ => { + panic!("invalid lr id {}", id); + } + } +} diff --git a/src/main.rs b/src/main.rs index 936d2f7f..bfdbf9f7 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,6 +1,8 @@ #![no_std] #![no_main] +use core::hint::spin_loop; + #[macro_use] extern crate log; #[macro_use] diff --git a/src/vmm/timer.rs b/src/vmm/timer.rs index c51977e7..1107c033 100644 --- a/src/vmm/timer.rs +++ b/src/vmm/timer.rs @@ -1,6 +1,7 @@ use core::sync::atomic::AtomicUsize; use core::sync::atomic::Ordering; +use core::time::Duration; use std::os::arceos::modules::{axconfig, axhal}; use alloc::boxed::Box; @@ -101,7 +102,7 @@ pub fn scheduler_next_event() { trace!("Scheduling next event..."); let now_ns = axhal::time::monotonic_time_nanos(); let deadline = now_ns + PERIODIC_INTERVAL_NANOS; - trace!("PHY deadline {} !!!", deadline); + debug!("PHY deadline {} !!!", deadline); axhal::time::set_oneshot_timer(deadline); } From 26a3a811879234e2773d5afcb7a575d303da23aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E7=9D=BF?= Date: Thu, 14 Aug 2025 13:24:02 +0800 Subject: [PATCH 079/219] update dev doc --- Cargo.lock | 48 +++++++++++++++----------------- README.md | 18 +++++++++++- src/hal.rs | 82 +++++++++++++++++++++++++++++++++++++++++------------- 3 files changed, 103 insertions(+), 45 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 77f06514..a7d79e42 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -152,10 +152,9 @@ checksum = "e16d2d3311acee920a9eb8d33b8cbc1787ce4a264e85f964c2404b969bdcd487" [[package]] name = "arceos_api" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#83263579b537e8d35bd1c9b6c5ea5648a10d19e5" dependencies = [ "axalloc", - "axconfig", + "axconfig 0.2.0", "axdriver", "axerrno", "axfeat", @@ -215,6 +214,7 @@ version = "0.1.0" dependencies = [ "aarch64-cpu", "axaddrspace", + "axcpu", "axdevice_base", "axerrno", "axvcpu", @@ -294,7 +294,6 @@ dependencies = [ [[package]] name = "axalloc" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#83263579b537e8d35bd1c9b6c5ea5648a10d19e5" dependencies = [ "allocator", "axerrno", @@ -304,6 +303,13 @@ dependencies = [ "memory_addr", ] +[[package]] +name = "axconfig" +version = "0.2.0" +dependencies = [ + "axconfig-macros", +] + [[package]] name = "axconfig" version = "0.2.0" @@ -337,8 +343,6 @@ dependencies = [ [[package]] name = "axcpu" version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e09bc1235e3da45e942b50f47812f8397ad84cb490264bf914c65ac44e6f8b1d" dependencies = [ "aarch64-cpu", "cfg-if", @@ -349,6 +353,7 @@ dependencies = [ "memory_addr", "page_table_entry", "page_table_multiarch", + "paste", "percpu", "riscv 0.14.0", "static_assertions", @@ -390,11 +395,10 @@ dependencies = [ [[package]] name = "axdriver" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#83263579b537e8d35bd1c9b6c5ea5648a10d19e5" dependencies = [ "arm-gic-driver", "axalloc", - "axconfig", + "axconfig 0.2.0", "axdriver_base", "axdriver_block", "axdriver_pci", @@ -453,7 +457,6 @@ dependencies = [ [[package]] name = "axfeat" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#83263579b537e8d35bd1c9b6c5ea5648a10d19e5" dependencies = [ "axalloc", "axdriver", @@ -469,7 +472,6 @@ dependencies = [ [[package]] name = "axfs" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#83263579b537e8d35bd1c9b6c5ea5648a10d19e5" dependencies = [ "axdriver", "axdriver_block", @@ -523,11 +525,10 @@ dependencies = [ [[package]] name = "axhal" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#83263579b537e8d35bd1c9b6c5ea5648a10d19e5" dependencies = [ "aarch64-cpu", "axalloc", - "axconfig", + "axconfig 0.2.0", "axcpu", "axlog", "axplat 0.1.0 (git+https://github.com/arceos-hypervisor/axplat_crates?branch=vmm)", @@ -567,7 +568,6 @@ dependencies = [ [[package]] name = "axlog" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#83263579b537e8d35bd1c9b6c5ea5648a10d19e5" dependencies = [ "cfg-if", "crate_interface", @@ -578,10 +578,9 @@ dependencies = [ [[package]] name = "axmm" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#83263579b537e8d35bd1c9b6c5ea5648a10d19e5" dependencies = [ "axalloc", - "axconfig", + "axconfig 0.2.0", "axerrno", "axhal", "kspin", @@ -594,7 +593,6 @@ dependencies = [ [[package]] name = "axns" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#83263579b537e8d35bd1c9b6c5ea5648a10d19e5" dependencies = [ "crate_interface", "lazyinit", @@ -775,10 +773,9 @@ dependencies = [ [[package]] name = "axruntime" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#83263579b537e8d35bd1c9b6c5ea5648a10d19e5" dependencies = [ "axalloc", - "axconfig", + "axconfig 0.2.0", "axdriver", "axerrno", "axfs", @@ -805,7 +802,6 @@ dependencies = [ [[package]] name = "axstd" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#83263579b537e8d35bd1c9b6c5ea5648a10d19e5" dependencies = [ "arceos_api", "axerrno", @@ -818,7 +814,6 @@ dependencies = [ [[package]] name = "axsync" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#83263579b537e8d35bd1c9b6c5ea5648a10d19e5" dependencies = [ "axtask", "kspin", @@ -828,9 +823,8 @@ dependencies = [ [[package]] name = "axtask" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#83263579b537e8d35bd1c9b6c5ea5648a10d19e5" dependencies = [ - "axconfig", + "axconfig 0.2.0", "axhal", "axsched", "cfg-if", @@ -862,7 +856,7 @@ name = "axvisor" version = "0.1.0" dependencies = [ "axaddrspace", - "axconfig", + "axconfig 0.2.0 (git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev)", "axdevice", "axdevice_base", "axerrno", @@ -1424,7 +1418,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "778e2ac28f6c47af28e4907f13ffd1e1ddbd400980a9abd7c8df189bf578a5ad" dependencies = [ "libc", - "windows-sys 0.59.0", + "windows-sys 0.52.0", ] [[package]] @@ -2875,7 +2869,7 @@ dependencies = [ "errno", "libc", "linux-raw-sys", - "windows-sys 0.59.0", + "windows-sys 0.52.0", ] [[package]] @@ -3300,7 +3294,7 @@ dependencies = [ "getrandom 0.3.3", "once_cell", "rustix", - "windows-sys 0.59.0", + "windows-sys 0.52.0", ] [[package]] @@ -4138,3 +4132,7 @@ dependencies = [ "quote", "syn 2.0.104", ] + +[[patch.unused]] +name = "axconfig" +version = "0.1.0" diff --git a/README.md b/README.md index 97e1ef61..19493112 100644 --- a/README.md +++ b/README.md @@ -209,7 +209,23 @@ You can refer to these [discussions]((https://github.com/arceos-hypervisor/axvis ## Development -AxVisor, as a modular hypervisor, has many components used as Crates. You can use the `tool/dev_env.py` command to localize the relevant Crates, making it easier for development and debugging. +To contribute to AxVisor, you can follow these steps: + +1. Fork the repository on GitHub. +2. Clone your forked repository to your local machine. +3. Create a new branch for your feature or bug fix. +4. Make your changes and commit them with clear messages. +5. Push your changes to your forked repository. +6. Open a pull request against the main branch of the original repository. + +To develop crates used by AxVisor, you can use the following command to build and run the project: + +```bash +cargo install cargo-lpatch +cargo lpatch -n deps_crate_name +``` + +Then you can modify the code in the `crates/deps_crate_name` directory, and it will be automatically used by AxVisor. ## Contributors diff --git a/src/hal.rs b/src/hal.rs index 620923d0..9ad93ad2 100644 --- a/src/hal.rs +++ b/src/hal.rs @@ -105,15 +105,11 @@ impl AxVCpuHal for AxVCpuHalImpl { #[cfg(target_arch = "aarch64")] fn irq_fetch() -> usize { - axhal::irq::irq_fetch() - // 1023 + 0 } #[cfg(target_arch = "aarch64")] - fn irq_hanlder() { - let irq = axhal::irq::irq_fetch(); - axhal::irq::irq_handler(irq); - } + fn irq_hanlder() {} } #[percpu::def_percpu] @@ -326,8 +322,6 @@ mod host_api_impl { } } - - /// Reads and returns the value of the given aarch64 system register. macro_rules! read_sysreg { ($name:ident) => { @@ -360,11 +354,18 @@ macro_rules! write_sysreg { pub fn inject_interrupt(vector: usize) { // mask const LR_VIRTIRQ_MASK: usize = (1 << 32) - 1; + const LR_STATE_MASK: u64 = 0x3 << 62; // bits [63:62] + const LR_STATE_PENDING: u64 = 0x1 << 62; // pending state + const LR_STATE_ACTIVE: u64 = 0x2 << 62; // active state + + debug!("Injecting virtual interrupt: vector={}", vector); let elsr: u64 = read_sysreg!(ich_elrsr_el2); let vtr = read_sysreg!(ich_vtr_el2) as usize; let lr_num: usize = (vtr & 0xf) + 1; let mut free_lr = -1 as isize; + + // First, check if this interrupt is already pending/active for i in 0..lr_num { // find a free list register if (1 << i) & elsr > 0 { @@ -373,23 +374,66 @@ pub fn inject_interrupt(vector: usize) { } continue; } - let lr_val = read_lr(i) as usize; + let lr_val = read_lr(i); // if a virtual interrupt is enabled and equals to the physical interrupt irq_id - if (lr_val & LR_VIRTIRQ_MASK) == vector { - trace!("virtual irq {} enables again", vector); + if (lr_val as usize & LR_VIRTIRQ_MASK) == vector { + let state = lr_val & LR_STATE_MASK; + if state == LR_STATE_PENDING || state == LR_STATE_ACTIVE { + debug!( + "virtual irq {} already pending/active in LR{}, skipping", + vector, i + ); + return; + } } } - trace!("use free lr {} to inject irq {}", free_lr, vector); + + debug!("use free lr {} to inject irq {}", free_lr, vector); if free_lr == -1 { - panic!("No free list register to inject IRQ {}", vector); - } else { - let mut val = vector as u64; // vector - val |= 1 << 60; // group 1 - val |= 1 << 62; // state pending - // hardware interrupt not supported - write_lr(free_lr as usize, val); + warn!( + "No free list register to inject IRQ {}, checking ICH_HCR_EL2", + vector + ); + // Check if virtual interrupt interface is enabled + let ich_hcr = read_sysreg!(ich_hcr_el2); + debug!("ICH_HCR_EL2: 0x{:x}", ich_hcr); + + // Try to find and reuse an inactive LR + for i in 0..lr_num { + let lr_val = read_lr(i); + let state = lr_val & LR_STATE_MASK; + if state == 0 { + // inactive state + debug!("Reusing inactive LR{} for IRQ {}", i, vector); + free_lr = i as isize; + break; + } + } + + if free_lr == -1 { + panic!("No free list register to inject IRQ {}", vector); + } } + + let mut val = vector as u64; // vector + val |= 1 << 60; // group 1 + val |= 1 << 62; // state pending + // hardware interrupt not supported + write_lr(free_lr as usize, val); + + // Ensure the virtual interrupt interface is enabled + // let ich_hcr = read_sysreg!(ich_hcr_el2); + // if (ich_hcr & 1) == 0 { + // // Check EN bit + // warn!("Virtual interrupt interface not enabled, enabling now"); + // write_sysreg!(ich_hcr_el2, ich_hcr | 1); + // } + + debug!( + "Virtual interrupt {} injected successfully in LR{}", + vector, free_lr + ); } fn read_lr(id: usize) -> u64 { From 953edcea4199cf2ef6d7b5f08bbc55bcac41140f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E7=9D=BF?= Date: Thu, 14 Aug 2025 16:03:30 +0800 Subject: [PATCH 080/219] fmt code --- Cargo.lock | 40 +++++++++++++++++++---------- Cargo.toml | 9 ++++--- Makefile | 8 +++++- platform/aarch64-generic/src/lib.rs | 2 +- src/hal.rs | 12 ++++----- src/main.rs | 2 -- src/utils/arch/aarch64/cache.rs | 2 +- src/utils/mod.rs | 4 +-- src/vmm/mock.rs | 10 ++++---- src/vmm/mod.rs | 7 ++--- src/vmm/timer.rs | 1 - src/vmm/vcpus.rs | 27 ++++++++++--------- 12 files changed, 71 insertions(+), 53 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index a7d79e42..49290ec2 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -152,9 +152,10 @@ checksum = "e16d2d3311acee920a9eb8d33b8cbc1787ce4a264e85f964c2404b969bdcd487" [[package]] name = "arceos_api" version = "0.2.0" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-test#667af7208c57585d6d347f5d03c7657a3297643e" dependencies = [ "axalloc", - "axconfig 0.2.0", + "axconfig 0.2.0 (git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-test)", "axdriver", "axerrno", "axfeat", @@ -229,6 +230,7 @@ dependencies = [ [[package]] name = "arm_vgic" version = "0.0.0" +source = "git+https://github.com/arceos-hypervisor/arm_vgic.git#58230bf19ac69fc54e87f015d5a30548da583bc9" dependencies = [ "aarch64-cpu", "aarch64_sysreg", @@ -294,6 +296,7 @@ dependencies = [ [[package]] name = "axalloc" version = "0.2.0" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-test#667af7208c57585d6d347f5d03c7657a3297643e" dependencies = [ "allocator", "axerrno", @@ -306,6 +309,7 @@ dependencies = [ [[package]] name = "axconfig" version = "0.2.0" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#83263579b537e8d35bd1c9b6c5ea5648a10d19e5" dependencies = [ "axconfig-macros", ] @@ -313,7 +317,7 @@ dependencies = [ [[package]] name = "axconfig" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#83263579b537e8d35bd1c9b6c5ea5648a10d19e5" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-test#667af7208c57585d6d347f5d03c7657a3297643e" dependencies = [ "axconfig-macros", ] @@ -343,6 +347,7 @@ dependencies = [ [[package]] name = "axcpu" version = "0.2.2" +source = "git+https://github.com/arceos-hypervisor/axcpu?branch=vmm#833b96e8f2e5d7c83de85578222dc1b54a783487" dependencies = [ "aarch64-cpu", "cfg-if", @@ -395,10 +400,11 @@ dependencies = [ [[package]] name = "axdriver" version = "0.2.0" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-test#667af7208c57585d6d347f5d03c7657a3297643e" dependencies = [ "arm-gic-driver", "axalloc", - "axconfig 0.2.0", + "axconfig 0.2.0 (git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-test)", "axdriver_base", "axdriver_block", "axdriver_pci", @@ -457,6 +463,7 @@ dependencies = [ [[package]] name = "axfeat" version = "0.2.0" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-test#667af7208c57585d6d347f5d03c7657a3297643e" dependencies = [ "axalloc", "axdriver", @@ -472,6 +479,7 @@ dependencies = [ [[package]] name = "axfs" version = "0.2.0" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-test#667af7208c57585d6d347f5d03c7657a3297643e" dependencies = [ "axdriver", "axdriver_block", @@ -525,13 +533,14 @@ dependencies = [ [[package]] name = "axhal" version = "0.2.0" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-test#667af7208c57585d6d347f5d03c7657a3297643e" dependencies = [ "aarch64-cpu", "axalloc", - "axconfig 0.2.0", + "axconfig 0.2.0 (git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-test)", "axcpu", "axlog", - "axplat 0.1.0 (git+https://github.com/arceos-hypervisor/axplat_crates?branch=vmm)", + "axplat 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "axplat-aarch64-qemu-virt", "axplat-loongarch64-qemu-virt", "axplat-riscv64-qemu-virt", @@ -568,6 +577,7 @@ dependencies = [ [[package]] name = "axlog" version = "0.2.0" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-test#667af7208c57585d6d347f5d03c7657a3297643e" dependencies = [ "cfg-if", "crate_interface", @@ -578,9 +588,10 @@ dependencies = [ [[package]] name = "axmm" version = "0.2.0" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-test#667af7208c57585d6d347f5d03c7657a3297643e" dependencies = [ "axalloc", - "axconfig 0.2.0", + "axconfig 0.2.0 (git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-test)", "axerrno", "axhal", "kspin", @@ -593,6 +604,7 @@ dependencies = [ [[package]] name = "axns" version = "0.2.0" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-test#667af7208c57585d6d347f5d03c7657a3297643e" dependencies = [ "crate_interface", "lazyinit", @@ -630,6 +642,7 @@ dependencies = [ [[package]] name = "axplat-aarch64-dyn" version = "0.1.0" +source = "git+https://github.com/arceos-hypervisor/axplat-aarch64-dyn?branch=vmm#d0ce87eb171df6f89c5032bde03093696bd38475" dependencies = [ "aarch64-cpu", "aarch64-cpu-ext", @@ -773,16 +786,17 @@ dependencies = [ [[package]] name = "axruntime" version = "0.2.0" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-test#667af7208c57585d6d347f5d03c7657a3297643e" dependencies = [ "axalloc", - "axconfig 0.2.0", + "axconfig 0.2.0 (git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-test)", "axdriver", "axerrno", "axfs", "axhal", "axlog", "axmm", - "axplat 0.1.0 (git+https://github.com/arceos-hypervisor/axplat_crates?branch=vmm)", + "axplat 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "axtask", "chrono", "crate_interface", @@ -802,6 +816,7 @@ dependencies = [ [[package]] name = "axstd" version = "0.2.0" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-test#667af7208c57585d6d347f5d03c7657a3297643e" dependencies = [ "arceos_api", "axerrno", @@ -814,6 +829,7 @@ dependencies = [ [[package]] name = "axsync" version = "0.2.0" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-test#667af7208c57585d6d347f5d03c7657a3297643e" dependencies = [ "axtask", "kspin", @@ -823,8 +839,9 @@ dependencies = [ [[package]] name = "axtask" version = "0.2.0" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-test#667af7208c57585d6d347f5d03c7657a3297643e" dependencies = [ - "axconfig 0.2.0", + "axconfig 0.2.0 (git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-test)", "axhal", "axsched", "cfg-if", @@ -912,7 +929,6 @@ dependencies = [ [[package]] name = "axvm" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/axvm.git#93b8ee5bb40c9705f667af783e6da065531f6869" dependencies = [ "arm_vcpu", "arm_vgic", @@ -4132,7 +4148,3 @@ dependencies = [ "quote", "syn 2.0.104", ] - -[[patch.unused]] -name = "axconfig" -version = "0.1.0" diff --git a/Cargo.toml b/Cargo.toml index 55853a7f..b0c4a7bf 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -27,7 +27,8 @@ spin = "0.9" timer_list = "0.1.0" # System dependent modules provided by ArceOS. -axstd = {git = "https://github.com/arceos-hypervisor/arceos.git", branch = "vmm-dev", features = [ +# axstd = {git = "https://github.com/arceos-hypervisor/arceos.git", branch = "vmm-dev", features = [ +axstd = {git = "https://github.com/arceos-hypervisor/arceos.git", branch = "vmm-test", features = [ "alloc", "paging", "irq", @@ -52,8 +53,6 @@ page_table_entry = {version = "0.5", features = ["arm-el2"]} page_table_multiarch = "0.5" percpu = {version = "0.2", features = ["arm-el2"]} -# axplat-aarch64-dyn = {git = "https://github.com/arceos-hypervisor/axplat-aarch64-dyn", branch = "vmm", features = ["irq", "smp", "hv"]} - axdevice = {git = "https://github.com/arceos-hypervisor/axdevice.git"} axdevice_base = {git = "https://github.com/arceos-hypervisor/axdevice_crates.git"} axvisor_api = {git = "https://github.com/arceos-hypervisor/axvisor_api.git"} @@ -68,3 +67,7 @@ prettyplease = "0.2" quote = "1.0" syn = "2.0" toml = {git = "https://github.com/arceos-hypervisor/toml.git", branch = "no_std"} + +[patch.crates-io.axcpu] +git = "https://github.com/arceos-hypervisor/axcpu" +branch = "vmm" \ No newline at end of file diff --git a/Makefile b/Makefile index 92a982ec..a609de3b 100644 --- a/Makefile +++ b/Makefile @@ -30,9 +30,15 @@ setup-arceos: echo ".arceos 文件夹已存在"; \ fi +default: setup-arceos + @echo "执行 arceos 构建..." + @$(MAKE) -C .arceos A=$(shell pwd) LD_SCRIPT=link.x MYPLAT=$(MYPLAT) \ + APP_FEATURES=$(APP_FEATURES) $(MAKEFLAGS) + # 透传所有其他目标到 .arceos run: setup-arceos - @$(MAKE) -C .arceos A=$(shell pwd) LD_SCRIPT=link.x MYPLAT=$(MYPLAT) APP_FEATURES=$(APP_FEATURES) $@ $(MAKEFLAGS) run + @$(MAKE) -C .arceos A=$(shell pwd) LD_SCRIPT=link.x MYPLAT=$(MYPLAT) \ + APP_FEATURES=$(APP_FEATURES) $@ $(MAKEFLAGS) QEMU_ARGS="-machine virtualization=on,gic-version=3" run clean: setup-arceos @$(MAKE) -C .arceos A=$(shell pwd) LD_SCRIPT=link.x $@ $(MAKEFLAGS) clean diff --git a/platform/aarch64-generic/src/lib.rs b/platform/aarch64-generic/src/lib.rs index 4206225a..6aca2f53 100644 --- a/platform/aarch64-generic/src/lib.rs +++ b/platform/aarch64-generic/src/lib.rs @@ -1,3 +1,3 @@ #![no_std] -extern crate axplat_aarch64_dyn; \ No newline at end of file +extern crate axplat_aarch64_dyn; diff --git a/src/hal.rs b/src/hal.rs index 9ad93ad2..f04ae2ce 100644 --- a/src/hal.rs +++ b/src/hal.rs @@ -250,7 +250,7 @@ mod vmm_api_impl { vmm::with_wm(vm_id, |vm| vm.vcpu_num()) } - extern fn active_vcpus(vm_id: VMId) -> Option { + extern fn active_vcpus(_vm_id: VMId) -> Option { todo!("active_vcpus") } @@ -258,7 +258,7 @@ mod vmm_api_impl { ::inject_irq_to_vcpu(vm_id, vcpu_id, vector as usize).unwrap(); } - extern fn notify_vcpu_timer_expired(vm_id: VMId, vcpu_id: VCpuId) { + extern fn notify_vcpu_timer_expired(_vm_id: VMId, _vcpu_id: VCpuId) { todo!("notify_vcpu_timer_expired") // vmm::timer::notify_timer_expired(vm_id, vcpu_id); } @@ -280,8 +280,8 @@ mod arch_api_impl { // use axstd::os::arceos::modules::axhal::irq::MyVgic; // MyVgic::get_gicd().lock().get_typer() - use memory_addr::pa; - use std::os::arceos::modules::{axconfig, axhal}; + // use memory_addr::pa; + // use std::os::arceos::modules::{axconfig, axhal}; unimplemented!(); // let typer_phys_addr = axconfig::devices::GICD_PADDR + 0x4; @@ -299,7 +299,7 @@ mod arch_api_impl { #[cfg(target_arch = "aarch64")] extern fn get_host_gicd_base() -> memory_addr::PhysAddr { - use std::os::arceos::api::config; + // use std::os::arceos::api::config; // unimplemented!(); // config::devices::GICD_PADDR.into() 0x800_0000.into() @@ -307,7 +307,7 @@ mod arch_api_impl { #[cfg(target_arch = "aarch64")] extern fn get_host_gicr_base() -> memory_addr::PhysAddr { - use std::os::arceos::api::config; + // use std::os::arceos::api::config; // unimplemented!(); // config::devices::GICR_PADDR.into() // TODO parse from dtb diff --git a/src/main.rs b/src/main.rs index bfdbf9f7..936d2f7f 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,8 +1,6 @@ #![no_std] #![no_main] -use core::hint::spin_loop; - #[macro_use] extern crate log; #[macro_use] diff --git a/src/utils/arch/aarch64/cache.rs b/src/utils/arch/aarch64/cache.rs index f8750672..2fb68797 100644 --- a/src/utils/arch/aarch64/cache.rs +++ b/src/utils/arch/aarch64/cache.rs @@ -2,7 +2,7 @@ use core::arch::global_asm; global_asm!(include_str!("cache.S")); -unsafe extern { +unsafe extern "C"{ /// Invalidate the data cache. pub unsafe fn cache_invalidate_d(start: usize, len: usize); /// Clean and invalidate the data cache. diff --git a/src/utils/mod.rs b/src/utils/mod.rs index 15af7408..c3f25987 100644 --- a/src/utils/mod.rs +++ b/src/utils/mod.rs @@ -3,10 +3,10 @@ mod arch; pub mod cache { /// Invalidate the data cache. pub unsafe fn cache_invalidate_d(start: usize, len: usize) { - super::arch::cache::cache_invalidate_d(start, len); + unsafe { super::arch::cache::cache_invalidate_d(start, len) }; } /// Clean and invalidate the data cache. pub unsafe fn cache_clean_invalidate_d(start: usize, len: usize) { - super::arch::cache::cache_clean_invalidate_d(start, len); + unsafe { super::arch::cache::cache_clean_invalidate_d(start, len) }; } } diff --git a/src/vmm/mock.rs b/src/vmm/mock.rs index 1ee69d0d..971929a1 100644 --- a/src/vmm/mock.rs +++ b/src/vmm/mock.rs @@ -20,17 +20,17 @@ impl BaseDeviceOps for MockTimer { fn handle_read( &self, - addr: ::Addr, - width: AccessWidth, + _addr: ::Addr, + _width: AccessWidth, ) -> axerrno::AxResult { todo!() } fn handle_write( &self, - addr: ::Addr, - width: AccessWidth, - val: usize, + _addr: ::Addr, + _width: AccessWidth, + _val: usize, ) -> axerrno::AxResult { todo!() } diff --git a/src/vmm/mod.rs b/src/vmm/mod.rs index a9ddd3e2..edef746e 100644 --- a/src/vmm/mod.rs +++ b/src/vmm/mod.rs @@ -10,10 +10,7 @@ mod vm_list; use core::sync::atomic::{AtomicUsize, Ordering}; use std::os::arceos::{ api::task::{self, AxWaitQueueHandle}, - modules::{ - axhal, - axtask::{self, TaskExtRef}, - }, + modules::axtask::{self, TaskExtRef}, }; use axerrno::{AxResult, ax_err_type}; @@ -119,7 +116,7 @@ pub fn with_vm_and_vcpu_on_pcpu( // The target vCPU is not the current task, send an IPI to the target physical CPU. drop(guard); - let pcpu_id = vcpus::with_vcpu_task(vm_id, vcpu_id, |task| task.cpu_id()) + let _pcpu_id = vcpus::with_vcpu_task(vm_id, vcpu_id, |task| task.cpu_id()) .ok_or_else(|| ax_err_type!(NotFound))?; unimplemented!(); diff --git a/src/vmm/timer.rs b/src/vmm/timer.rs index 1107c033..ef41dfa0 100644 --- a/src/vmm/timer.rs +++ b/src/vmm/timer.rs @@ -1,7 +1,6 @@ use core::sync::atomic::AtomicUsize; use core::sync::atomic::Ordering; -use core::time::Duration; use std::os::arceos::modules::{axconfig, axhal}; use alloc::boxed::Box; diff --git a/src/vmm/vcpus.rs b/src/vmm/vcpus.rs index 7458deec..27d8f834 100644 --- a/src/vmm/vcpus.rs +++ b/src/vmm/vcpus.rs @@ -148,9 +148,7 @@ impl VMVCpus { /// * `vm_id` - The ID of the VM whose VCpu wait queue is used to block the current thread. /// fn wait(vm_id: usize) { - unsafe { VM_VCPU_TASK_WAIT_QUEUE.get(&vm_id) } - .unwrap() - .wait() + VM_VCPU_TASK_WAIT_QUEUE.get(&vm_id).unwrap().wait() } /// Blocks the current thread until the provided condition is met, using the wait queue @@ -165,7 +163,8 @@ fn wait_for(vm_id: usize, condition: F) where F: Fn() -> bool, { - unsafe { VM_VCPU_TASK_WAIT_QUEUE.get(&vm_id) } + VM_VCPU_TASK_WAIT_QUEUE + .get(&vm_id) .unwrap() .wait_until(condition) } @@ -179,14 +178,16 @@ where /// pub(crate) fn notify_primary_vcpu(vm_id: usize) { // Generally, the primary VCpu is the first and **only** VCpu in the list. - unsafe { VM_VCPU_TASK_WAIT_QUEUE.get_mut(&vm_id) } + VM_VCPU_TASK_WAIT_QUEUE + .get_mut(&vm_id) .unwrap() .notify_one() } /// Marks the VCpu of the specified VM as running. fn mark_vcpu_running(vm_id: usize) { - unsafe { VM_VCPU_TASK_WAIT_QUEUE.get(&vm_id) } + VM_VCPU_TASK_WAIT_QUEUE + .get(&vm_id) .unwrap() .mark_vcpu_running(); } @@ -194,7 +195,8 @@ fn mark_vcpu_running(vm_id: usize) { /// Marks the VCpu of the specified VM as exiting for VM shutdown. Returns true if this was the last /// VCpu to exit. fn mark_vcpu_exiting(vm_id: usize) -> bool { - unsafe { VM_VCPU_TASK_WAIT_QUEUE.get(&vm_id) } + VM_VCPU_TASK_WAIT_QUEUE + .get(&vm_id) .unwrap() .mark_vcpu_exiting() } @@ -235,7 +237,8 @@ fn vcpu_on(vm: VMRef, vcpu_id: usize, entry_point: GuestPhysAddr, arg: usize) { let vcpu_task = alloc_vcpu_task(vm.clone(), vcpu); - unsafe { VM_VCPU_TASK_WAIT_QUEUE.get_mut(&vm.id()) } + VM_VCPU_TASK_WAIT_QUEUE + .get_mut(&vm.id()) .unwrap() .add_vcpu_task(vcpu_task); } @@ -258,9 +261,8 @@ pub fn setup_vm_primary_vcpu(vm: VMRef) { let primary_vcpu = vm.vcpu_list()[primary_vcpu_id].clone(); let primary_vcpu_task = alloc_vcpu_task(vm.clone(), primary_vcpu); vm_vcpus.add_vcpu_task(primary_vcpu_task); - unsafe { - VM_VCPU_TASK_WAIT_QUEUE.insert(vm_id, vm_vcpus); - } + + VM_VCPU_TASK_WAIT_QUEUE.insert(vm_id, vm_vcpus); } /// Finds the [`AxTaskRef`] associated with the specified vCPU of the specified VM. @@ -274,7 +276,8 @@ pub fn with_vcpu_task T>( vcpu_id: usize, f: F, ) -> Option { - unsafe { VM_VCPU_TASK_WAIT_QUEUE.get(&vm_id) } + VM_VCPU_TASK_WAIT_QUEUE + .get(&vm_id) .unwrap() .vcpu_task_list .get(vcpu_id) From e59c5b6a334ae56e3bf686c0574277d72098d193 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E7=9D=BF?= Date: Thu, 14 Aug 2025 16:04:52 +0800 Subject: [PATCH 081/219] update --- src/utils/arch/aarch64/cache.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/utils/arch/aarch64/cache.rs b/src/utils/arch/aarch64/cache.rs index 2fb68797..f8750672 100644 --- a/src/utils/arch/aarch64/cache.rs +++ b/src/utils/arch/aarch64/cache.rs @@ -2,7 +2,7 @@ use core::arch::global_asm; global_asm!(include_str!("cache.S")); -unsafe extern "C"{ +unsafe extern { /// Invalidate the data cache. pub unsafe fn cache_invalidate_d(start: usize, len: usize); /// Clean and invalidate the data cache. From 9c180a4403e8bef8f320a50e78266c7cb6b797b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E7=9D=BF?= Date: Thu, 14 Aug 2025 16:12:48 +0800 Subject: [PATCH 082/219] fix: ci --- .github/workflows/build.yml | 4 ++-- .github/workflows/test.yml | 4 ++-- Makefile | 6 ++++-- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 6a83cc67..cbbce397 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -51,7 +51,7 @@ jobs: fail-fast: false matrix: os: [ubuntu-latest] - plat: [aarch64-dyn] + plat: [aarch64-generic] rust-toolchain: [nightly-2025-05-20, nightly] env: RUSTUP_TOOLCHAIN: ${{ matrix.rust-toolchain }} @@ -66,4 +66,4 @@ jobs: - run: cargo install cargo-binutils - name: Build the repo continue-on-error: ${{ matrix.rust-toolchain == 'nightly' }} - run: make MYPLAT=axplat-${{ matrix.plat }} build + run: make PLAT=${{ matrix.plat }} build diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 61b2cfe5..5428c432 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -14,7 +14,7 @@ jobs: matrix: os: [ubuntu-latest] # arch: [riscv64, aarch64] - plat: [aarch64-dyn] + plat: [aarch64-generic] rust-toolchain: [nightly-2025-05-20, nightly] steps: - uses: actions/checkout@v4 @@ -47,7 +47,7 @@ jobs: cargo version export DISK_IMG="${{ github.workspace }}/disk-aarch64.img" export VM_CONFIGS="$(pwd)/configs/vms/nimbos-aarch64.toml" - make MYPLAT=axplat-${{ matrix.plat }} DISK_IMG=${DISK_IMG} LOG=info BLK=y ACCEL=n VM_CONFIGS=${VM_CONFIGS} APP_FEATURES=fs run + make PLAT=${{ matrix.plat }} DISK_IMG=${DISK_IMG} LOG=info BLK=y ACCEL=n VM_CONFIGS=${VM_CONFIGS} APP_FEATURES=fs run test_remote: runs-on: ubuntu-latest diff --git a/Makefile b/Makefile index a609de3b..03441543 100644 --- a/Makefile +++ b/Makefile @@ -30,7 +30,7 @@ setup-arceos: echo ".arceos 文件夹已存在"; \ fi -default: setup-arceos +default: build @echo "执行 arceos 构建..." @$(MAKE) -C .arceos A=$(shell pwd) LD_SCRIPT=link.x MYPLAT=$(MYPLAT) \ APP_FEATURES=$(APP_FEATURES) $(MAKEFLAGS) @@ -50,4 +50,6 @@ clippy: setup-arceos @$(MAKE) -C .arceos A=$(shell pwd) LD_SCRIPT=link.x $@ $(MAKEFLAGS) clippy build: setup-arceos - @$(MAKE) -C .arceos A=$(shell pwd) LD_SCRIPT=link.x $@ $(MAKEFLAGS) build \ No newline at end of file + @echo "执行 arceos 构建..." + @$(MAKE) -C .arceos A=$(shell pwd) LD_SCRIPT=link.x MYPLAT=$(MYPLAT) \ + APP_FEATURES=$(APP_FEATURES) $(MAKEFLAGS) \ No newline at end of file From 7fd1616cf4c5a6671466b5b56bce4bde47dd30c7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E7=9D=BF?= Date: Thu, 14 Aug 2025 16:18:03 +0800 Subject: [PATCH 083/219] update: add source for arm_vcpu and axvm packages --- Cargo.lock | 2 ++ Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/Cargo.lock b/Cargo.lock index 49290ec2..d698b735 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -212,6 +212,7 @@ dependencies = [ [[package]] name = "arm_vcpu" version = "0.1.0" +source = "git+https://github.com/arceos-hypervisor/arm_vcpu.git?branch=dev-irq#c2ba6e5ba49925cddbe869b17b56e698c67c572f" dependencies = [ "aarch64-cpu", "axaddrspace", @@ -929,6 +930,7 @@ dependencies = [ [[package]] name = "axvm" version = "0.1.0" +source = "git+https://github.com/arceos-hypervisor/axvm.git?branch=dev-irq#5c0a2804255cf5f22a8a27b2fafaf4925374299a" dependencies = [ "arm_vcpu", "arm_vgic", diff --git a/Cargo.toml b/Cargo.toml index b0c4a7bf..02791cf3 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -42,7 +42,7 @@ axstd = {git = "https://github.com/arceos-hypervisor/arceos.git", branch = "vmm- axaddrspace = {git = "https://github.com/arceos-hypervisor/axaddrspace.git"} axhvc = {git = "https://github.com/arceos-hypervisor/axhvc.git"} axvcpu = {git = "https://github.com/arceos-hypervisor/axvcpu.git"} -axvm = {git = "https://github.com/arceos-hypervisor/axvm.git"} +axvm = {git = "https://github.com/arceos-hypervisor/axvm.git", branch = "dev-irq"} # System independent crates provided by ArceOS, these crates could be imported by remote url. axerrno = "0.1.0" From f648922a0f0bc1dbbe904e625c00160f8664b2b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E7=9D=BF?= Date: Thu, 14 Aug 2025 16:37:05 +0800 Subject: [PATCH 084/219] fix: ci --- .github/workflows/test.yml | 2 +- Makefile | 15 ++++----------- 2 files changed, 5 insertions(+), 12 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 5428c432..83edf29c 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -47,7 +47,7 @@ jobs: cargo version export DISK_IMG="${{ github.workspace }}/disk-aarch64.img" export VM_CONFIGS="$(pwd)/configs/vms/nimbos-aarch64.toml" - make PLAT=${{ matrix.plat }} DISK_IMG=${DISK_IMG} LOG=info BLK=y ACCEL=n VM_CONFIGS=${VM_CONFIGS} APP_FEATURES=fs run + make PLAT=${{ matrix.plat }} DISK_IMG=${DISK_IMG} LOG=info BLK=y ACCEL=n VM_CONFIGS=${VM_CONFIGS} HV_FEATURES=fs run test_remote: runs-on: ubuntu-latest diff --git a/Makefile b/Makefile index 03441543..c8b59031 100644 --- a/Makefile +++ b/Makefile @@ -17,7 +17,8 @@ APP_FEATURES := $(HV_FEATURES),plat-$(PLAT) .PHONY: default default: setup-arceos @echo "执行 arceos 构建..." - @$(MAKE) -C .arceos A=$(shell pwd) LD_SCRIPT=link.x $(MAKEFLAGS) + @$(MAKE) -C .arceos A=$(shell pwd) LD_SCRIPT=link.x MYPLAT=$(MYPLAT) \ + APP_FEATURES=$(APP_FEATURES) $(MAKEFLAGS) # 设置 arceos 依赖 .PHONY: setup-arceos @@ -30,15 +31,10 @@ setup-arceos: echo ".arceos 文件夹已存在"; \ fi -default: build - @echo "执行 arceos 构建..." - @$(MAKE) -C .arceos A=$(shell pwd) LD_SCRIPT=link.x MYPLAT=$(MYPLAT) \ - APP_FEATURES=$(APP_FEATURES) $(MAKEFLAGS) - # 透传所有其他目标到 .arceos run: setup-arceos @$(MAKE) -C .arceos A=$(shell pwd) LD_SCRIPT=link.x MYPLAT=$(MYPLAT) \ - APP_FEATURES=$(APP_FEATURES) $@ $(MAKEFLAGS) QEMU_ARGS="-machine virtualization=on,gic-version=3" run + APP_FEATURES=$(APP_FEATURES) $@ $(MAKEFLAGS) QEMU_ARGS="-machine virtualization=on" run clean: setup-arceos @$(MAKE) -C .arceos A=$(shell pwd) LD_SCRIPT=link.x $@ $(MAKEFLAGS) clean @@ -49,7 +45,4 @@ disk_img: setup-arceos clippy: setup-arceos @$(MAKE) -C .arceos A=$(shell pwd) LD_SCRIPT=link.x $@ $(MAKEFLAGS) clippy -build: setup-arceos - @echo "执行 arceos 构建..." - @$(MAKE) -C .arceos A=$(shell pwd) LD_SCRIPT=link.x MYPLAT=$(MYPLAT) \ - APP_FEATURES=$(APP_FEATURES) $(MAKEFLAGS) \ No newline at end of file +build: default \ No newline at end of file From beb4c2f86f1cd550b23ddf50e841cd8dd077e043 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E7=9D=BF?= Date: Thu, 14 Aug 2025 16:43:54 +0800 Subject: [PATCH 085/219] fix: ci --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 83edf29c..91bd0da5 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -47,7 +47,7 @@ jobs: cargo version export DISK_IMG="${{ github.workspace }}/disk-aarch64.img" export VM_CONFIGS="$(pwd)/configs/vms/nimbos-aarch64.toml" - make PLAT=${{ matrix.plat }} DISK_IMG=${DISK_IMG} LOG=info BLK=y ACCEL=n VM_CONFIGS=${VM_CONFIGS} HV_FEATURES=fs run + make PLAT=${{ matrix.plat }} DISK_IMG=${DISK_IMG} LOG=info BLK=y ACCEL=n VM_CONFIGS=${VM_CONFIGS} BUS=mmio FEATURES=page-alloc-64g MEM=8g HV_FEATURES=fs run test_remote: runs-on: ubuntu-latest From 079f64792ab51f7a0c6c89ab0632a9092c0413c2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E7=9D=BF?= Date: Thu, 14 Aug 2025 17:02:49 +0800 Subject: [PATCH 086/219] delete: remove unused linker script and build configuration files --- scripts/lds/linker.lds.S | 94 ---------------------------- scripts/make/bsta1000b-fada.mk | 15 ----- scripts/make/build.mk | 55 ----------------- scripts/make/build_c.mk | 75 ----------------------- scripts/make/cargo.mk | 54 ---------------- scripts/make/config.mk | 31 ---------- scripts/make/features.mk | 64 ------------------- scripts/make/platform.mk | 39 ------------ scripts/make/qemu.mk | 109 --------------------------------- scripts/make/raspi4.mk | 95 ---------------------------- scripts/make/rk3588.mk | 27 -------- scripts/make/test.mk | 16 ----- scripts/make/utils.mk | 52 ---------------- 13 files changed, 726 deletions(-) delete mode 100644 scripts/lds/linker.lds.S delete mode 100644 scripts/make/bsta1000b-fada.mk delete mode 100644 scripts/make/build.mk delete mode 100644 scripts/make/build_c.mk delete mode 100644 scripts/make/cargo.mk delete mode 100644 scripts/make/config.mk delete mode 100644 scripts/make/features.mk delete mode 100644 scripts/make/platform.mk delete mode 100644 scripts/make/qemu.mk delete mode 100644 scripts/make/raspi4.mk delete mode 100644 scripts/make/rk3588.mk delete mode 100644 scripts/make/test.mk delete mode 100644 scripts/make/utils.mk diff --git a/scripts/lds/linker.lds.S b/scripts/lds/linker.lds.S deleted file mode 100644 index f0e06a3a..00000000 --- a/scripts/lds/linker.lds.S +++ /dev/null @@ -1,94 +0,0 @@ -OUTPUT_ARCH(%ARCH%) - -BASE_ADDRESS = %KERNEL_BASE%; - -ENTRY(_start) -SECTIONS -{ - . = BASE_ADDRESS; - _skernel = .; - - .text : ALIGN(4K) { - _stext = .; - *(.text.boot) - *(.text .text.*) - . = ALIGN(4K); - _etext = .; - } - - .rodata : ALIGN(4K) { - _srodata = .; - *(.rodata .rodata.*) - *(.srodata .srodata.*) - *(.sdata2 .sdata2.*) - . = ALIGN(4K); - _erodata = .; - } - - .data : ALIGN(4K) { - _sdata = .; - *(.data.boot_page_table) - . = ALIGN(4K); - *(.data .data.*) - *(.sdata .sdata.*) - *(.got .got.*) - } - - .tdata : ALIGN(0x10) { - _stdata = .; - *(.tdata .tdata.*) - _etdata = .; - } - - .tbss : ALIGN(0x10) { - _stbss = .; - *(.tbss .tbss.*) - *(.tcommon) - _etbss = .; - } - - . = ALIGN(4K); - _percpu_start = .; - _percpu_end = _percpu_start + SIZEOF(.percpu); - .percpu 0x0 : AT(_percpu_start) { - _percpu_load_start = .; - *(.percpu .percpu.*) - _percpu_load_end = .; - . = _percpu_load_start + ALIGN(64) * %SMP%; - } - . = _percpu_end; - - . = ALIGN(4K); - _edata = .; - - .bss : ALIGN(4K) { - boot_stack = .; - *(.bss.stack) - . = ALIGN(4K); - boot_stack_top = .; - - _sbss = .; - *(.bss .bss.*) - *(.sbss .sbss.*) - *(COMMON) - . = ALIGN(4K); - _ebss = .; - } - - _ekernel = .; - - /DISCARD/ : { - *(.comment) *(.gnu*) *(.note*) *(.eh_frame*) - } -} - -SECTIONS { - linkme_IRQ : { *(linkme_IRQ) } - linkm2_IRQ : { *(linkm2_IRQ) } - linkme_PAGE_FAULT : { *(linkme_PAGE_FAULT) } - linkm2_PAGE_FAULT : { *(linkm2_PAGE_FAULT) } - linkme_SYSCALL : { *(linkme_SYSCALL) } - linkm2_SYSCALL : { *(linkm2_SYSCALL) } - axns_resource : { *(axns_resource) } -} -INSERT AFTER .tbss; diff --git a/scripts/make/bsta1000b-fada.mk b/scripts/make/bsta1000b-fada.mk deleted file mode 100644 index 46d4dbb3..00000000 --- a/scripts/make/bsta1000b-fada.mk +++ /dev/null @@ -1,15 +0,0 @@ -A1000B_GITHUB_URL = https://github.com/arceos-hypervisor/platform_tools/releases/download/latest/a1000b.zip -A1000B_MKIMG_FILE = ./tools/a1000b/mkimage -check-download: -ifeq ("$(wildcard $(A1000b_MKIMG_FILE))","") - @echo "file not found, downloading from $(A1000B_GITHUB_URL)..."; - wget $(A1000B_GITHUB_URL); - unzip -o a1000b.zip -d tools; - rm a1000b.zip; -endif - - -fada: check-download build - gzip -9 -cvf $(OUT_BIN) > arceos-fada.bin.gz - $(A1000B_MKIMG_FILE) -f ./tools/a1000b/bsta1000b-fada-arceos.its arceos-fada.itb - @echo 'Built the FIT-uImage arceos-fada.itb' diff --git a/scripts/make/build.mk b/scripts/make/build.mk deleted file mode 100644 index 4f92ef27..00000000 --- a/scripts/make/build.mk +++ /dev/null @@ -1,55 +0,0 @@ -# Main building script - -include scripts/make/cargo.mk - -ifeq ($(APP_TYPE), c) - include scripts/make/build_c.mk -else - rust_package := $(shell cat $(APP)/Cargo.toml | sed -n 's/^name = "\([a-z0-9A-Z_\-]*\)"/\1/p') - rust_target_dir := $(CURDIR)/target/$(TARGET)/$(MODE) - rust_elf := $(rust_target_dir)/$(rust_package) -endif - -ifneq ($(filter $(MAKECMDGOALS),doc doc_check_missing),) # run `cargo doc` - $(if $(V), $(info RUSTDOCFLAGS: "$(RUSTDOCFLAGS)")) - export RUSTFLAGS - export RUSTDOCFLAGS -else ifneq ($(filter $(MAKECMDGOALS),unittest unittest_no_fail_fast),) - # run `make unittest` - $(if $(V), $(info RUSTFLAGS: "$(RUSTFLAGS)")) - export RUSTFLAGS -else ifeq ($(filter $(MAKECMDGOALS),defconfig oldconfig clippy),) - ifneq ($(V),) - $(info APP: "$(APP)") - $(info APP_TYPE: "$(APP_TYPE)") - $(info FEATURES: "$(FEATURES)") - $(info arceos features: "$(AX_FEAT)") - $(info lib features: "$(LIB_FEAT)") - $(info app features: "$(APP_FEAT)") - endif - ifeq ($(APP_TYPE), c) - $(if $(V), $(info CFLAGS: "$(CFLAGS)") $(info LDFLAGS: "$(LDFLAGS)")) - else ifeq ($(APP_TYPE), rust) - RUSTFLAGS += $(RUSTFLAGS_LINK_ARGS) - endif - $(if $(V), $(info RUSTFLAGS: "$(RUSTFLAGS)")) - export RUSTFLAGS -endif - -_cargo_build: oldconfig - @printf " $(GREEN_C)Building$(END_C) App: $(APP_NAME), Arch: $(ARCH), Platform: $(PLAT_NAME), App type: $(APP_TYPE)\n" -ifeq ($(APP_TYPE), rust) - $(call cargo_build,--manifest-path $(APP)/Cargo.toml,$(AX_FEAT) $(LIB_FEAT) $(APP_FEAT)) - @cp $(rust_elf) $(OUT_ELF) -else ifeq ($(APP_TYPE), c) - $(call cargo_build,-p axlibc,$(AX_FEAT) $(LIB_FEAT)) -endif - -$(OUT_DIR): - $(call run_cmd,mkdir,-p $@) - -$(OUT_BIN): _cargo_build $(OUT_ELF) - $(call run_cmd,$(OBJCOPY),$(OUT_ELF) --strip-all -O binary $@) - $(call run_cmd,$(OBJDUMP),$(OUT_ELF) --demangle -d > $(OUT_ASM)) - -.PHONY: _cargo_build diff --git a/scripts/make/build_c.mk b/scripts/make/build_c.mk deleted file mode 100644 index 4f805b6f..00000000 --- a/scripts/make/build_c.mk +++ /dev/null @@ -1,75 +0,0 @@ -rust_lib_name := axlibc -rust_lib := target/$(TARGET)/$(MODE)/lib$(rust_lib_name).a - -ulib_dir := ulib/axlibc -src_dir := $(ulib_dir)/c -obj_dir := $(ulib_dir)/build_$(ARCH) -inc_dir := $(ulib_dir)/include -c_lib := $(obj_dir)/libc.a -libgcc := - -last_cflags := $(obj_dir)/.cflags - -ulib_src := $(wildcard $(src_dir)/*.c) -ulib_hdr := $(wildcard $(inc_dir)/*.h) -ulib_obj := $(patsubst $(src_dir)/%.c,$(obj_dir)/%.o,$(ulib_src)) - -CFLAGS += $(addprefix -DAX_CONFIG_,$(shell echo $(lib_feat) | tr 'a-z' 'A-Z' | tr '-' '_')) -CFLAGS += -DAX_LOG_$(shell echo $(LOG) | tr 'a-z' 'A-Z') - -CFLAGS += -nostdinc -fno-builtin -ffreestanding -Wall -CFLAGS += -I$(CURDIR)/$(inc_dir) -LDFLAGS += -nostdlib -static -no-pie --gc-sections -T$(LD_SCRIPT) - -ifeq ($(MODE), release) - CFLAGS += -O3 -endif - -ifeq ($(ARCH), riscv64) - CFLAGS += -march=rv64gc -mabi=lp64d -mcmodel=medany -endif - -ifeq ($(findstring fp_simd,$(FEATURES)),) - ifeq ($(ARCH), x86_64) - CFLAGS += -mno-sse - else ifeq ($(ARCH), aarch64) - CFLAGS += -mgeneral-regs-only - endif -else - ifneq ($(filter $(ARCH),riscv64 aarch64),) - # for compiler-rt fallbacks like `__divtf3`, `__multf3`, ... - libgcc := $(shell $(CC) -print-libgcc-file-name) - endif -endif - -_check_need_rebuild: $(obj_dir) - @if [ "$(CFLAGS)" != "`cat $(last_cflags) 2>&1`" ]; then \ - echo "CFLAGS changed, rebuild"; \ - echo "$(CFLAGS)" > $(last_cflags); \ - fi - -$(obj_dir): - $(call run_cmd,mkdir,-p $@) - -$(obj_dir)/%.o: $(src_dir)/%.c $(last_cflags) - $(call run_cmd,$(CC),$(CFLAGS) -c -o $@ $<) - -$(c_lib): $(obj_dir) _check_need_rebuild $(ulib_obj) - $(call run_cmd,$(AR),rcs $@ $(ulib_obj)) - -app-objs := main.o - --include $(APP)/axbuild.mk # override `app-objs` - -app-objs := $(addprefix $(APP)/,$(app-objs)) - -$(APP)/%.o: $(APP)/%.c $(ulib_hdr) - $(call run_cmd,$(CC),$(CFLAGS) $(APP_CFLAGS) -c -o $@ $<) - -$(OUT_ELF): $(libgcc) $(app-objs) $(c_lib) $(rust_lib) - @printf " $(CYAN_C)Linking$(END_C) $(OUT_ELF)\n" - $(call run_cmd,$(LD),$(LDFLAGS) $^ -o $@) - -$(APP)/axbuild.mk: ; - -.PHONY: _check_need_rebuild diff --git a/scripts/make/cargo.mk b/scripts/make/cargo.mk deleted file mode 100644 index 3c36881f..00000000 --- a/scripts/make/cargo.mk +++ /dev/null @@ -1,54 +0,0 @@ -# Cargo features and build args - -ifeq ($(V),1) - verbose := -v -else ifeq ($(V),2) - verbose := -vv -else - verbose := -endif - -build_args-release := --release - -build_args := \ - --target $(TARGET) \ - --target-dir $(CURDIR)/target \ - $(build_args-$(MODE)) \ - $(verbose) - -RUSTFLAGS:= -A unsafe_op_in_unsafe_fn -A static_mut_refs -RUSTFLAGS_LINK_ARGS := -C link-arg=-T$(LD_SCRIPT) -C link-arg=-no-pie -C link-arg=-znostart-stop-gc -RUSTDOCFLAGS := --enable-index-page -Zunstable-options -D rustdoc::broken_intra_doc_links - -ifeq ($(MAKECMDGOALS), doc_check_missing) - RUSTDOCFLAGS += -D missing-docs -endif - -define cargo_build - $(call run_cmd,cargo build,$(build_args) $(1) --features "$(strip $(2))") -endef - -clippy_args := -A clippy::new_without_default \ - -A unsafe_op_in_unsafe_fn \ - -A static_mut_refs # Check `VM_VCPU_TASK_WAIT_QUEUE` in `src/vmm/vcpus.rs` - # We need to find a better data structure to replace the `static mut`. - -define cargo_clippy - $(call run_cmd,cargo clippy,--all-features --workspace --exclude axlog $(1) $(verbose) -- $(clippy_args)) - $(call run_cmd,cargo clippy,-p axlog -p percpu -p percpu_macros $(1) $(verbose) -- $(clippy_args)) -endef - -all_packages := \ - # $(shell ls $(CURDIR)/crates) \ - # $(shell ls $(CURDIR)/modules) \ - # axfeat arceos_api axstd axlibc - -define cargo_doc - $(call run_cmd,cargo doc,--no-deps --all-features --workspace --exclude "arceos-*" $(verbose)) - @# run twice to fix broken hyperlinks - $(foreach p,$(all_packages), \ - $(call run_cmd,cargo rustdoc,--all-features -p $(p) $(verbose)) - ) - @# for some crates, re-generate without `--all-features` - $(call run_cmd,cargo doc,--no-deps -p percpu $(verbose)) -endef diff --git a/scripts/make/config.mk b/scripts/make/config.mk deleted file mode 100644 index 96c3884a..00000000 --- a/scripts/make/config.mk +++ /dev/null @@ -1,31 +0,0 @@ -# Config generation - -config_args := \ - configs/defconfig.toml $(PLAT_CONFIG) $(EXTRA_CONFIG) \ - -w 'smp=$(SMP)' \ - -w 'arch="$(ARCH)"' \ - -w 'platform="$(PLAT_NAME)"' \ - -o "$(OUT_CONFIG)" - -define defconfig - $(call run_cmd,axconfig-gen,$(config_args)) -endef - -ifeq ($(wildcard $(OUT_CONFIG)),) - define oldconfig - $(call defconfig) - endef -else - define oldconfig - $(if $(filter "$(PLAT_NAME)",$(shell axconfig-gen "$(OUT_CONFIG)" -r platform)),\ - $(call run_cmd,axconfig-gen,$(config_args) -c "$(OUT_CONFIG)"),\ - $(error "ARCH" or "PLATFORM" has been changed, please run "make defconfig ARCH=$(ARCH)" again)) - endef -endif - -_axconfig-gen: -ifeq ($(shell axconfig-gen --version 2>/dev/null),) - $(call run_cmd,RUSTFLAGS="" cargo,install axconfig-gen) -endif - -.PHONY: _axconfig-gen diff --git a/scripts/make/features.mk b/scripts/make/features.mk deleted file mode 100644 index baaafe61..00000000 --- a/scripts/make/features.mk +++ /dev/null @@ -1,64 +0,0 @@ -# Features resolving. -# -# Inputs: -# - `FEATURES`: a list of features to be enabled split by spaces or commas. -# The features can be selected from the crate `axfeat` or the user library -# (crate `axstd` or `axlibc`). -# - `APP_FEATURES`: a list of features to be enabled for the Rust app. -# -# Outputs: -# - `AX_FEAT`: features to be enabled for ArceOS modules (crate `axfeat`). -# - `LIB_FEAT`: features to be enabled for the user library (crate `axstd`, `axlibc`). -# - `APP_FEAT`: features to be enabled for the Rust app. - -ifeq ($(APP_TYPE),c) - ax_feat_prefix := axfeat/ - lib_feat_prefix := axlibc/ - lib_features := fp_simd irq alloc multitask fs net fd pipe select epoll -else - # TODO: it's better to use `axfeat/` as `ax_feat_prefix`, but all apps need to have `axfeat` as a dependency - ax_feat_prefix := axstd/ - lib_feat_prefix := axstd/ - lib_features := -endif - -override FEATURES := $(shell echo $(FEATURES) | tr ',' ' ') - -ifeq ($(APP_TYPE), c) - ifneq ($(wildcard $(APP)/features.txt),) # check features.txt exists - override FEATURES += $(shell cat $(APP)/features.txt) - endif - ifneq ($(filter fs net pipe select epoll,$(FEATURES)),) - override FEATURES += fd - endif -endif - -override FEATURES := $(strip $(FEATURES)) - -ax_feat := -lib_feat := - -ifneq ($(filter $(LOG),off error warn info debug trace),) - ax_feat += log-level-$(LOG) -else - $(error "LOG" must be one of "off", "error", "warn", "info", "debug", "trace") -endif - -ifeq ($(BUS),pci) - ax_feat += bus-pci -endif - -ifeq ($(GICV3),y) - ax_feat += gicv3 -endif - -ifeq ($(shell test $(SMP) -gt 1; echo $$?),0) - lib_feat += smp -endif - -ax_feat += $(filter-out $(lib_features),$(FEATURES)) -lib_feat += $(filter $(lib_features),$(FEATURES)) - -AX_FEAT := $(strip $(addprefix $(ax_feat_prefix),$(ax_feat))) -LIB_FEAT := $(strip $(addprefix $(lib_feat_prefix),$(lib_feat))) -APP_FEAT := $(strip $(shell echo $(APP_FEATURES) | tr ',' ' ')) diff --git a/scripts/make/platform.mk b/scripts/make/platform.mk deleted file mode 100644 index bb667e8d..00000000 --- a/scripts/make/platform.mk +++ /dev/null @@ -1,39 +0,0 @@ -# Architecture and platform resolving - -PLAT_CONFIG_DIR := configs/platforms - -ifeq ($(PLATFORM),) - # `PLATFORM` is not specified, use the default platform for each architecture - ifeq ($(ARCH), x86_64) - PLAT_NAME := x86_64-qemu-q35 - else ifeq ($(ARCH), aarch64) - PLAT_NAME := aarch64-qemu-virt-hv - else ifeq ($(ARCH), riscv64) - PLAT_NAME := riscv64-qemu-virt - else - $(error "ARCH" must be one of "x86_64", "riscv64", or "aarch64") - endif - PLAT_CONFIG := $(PLAT_CONFIG_DIR)/$(PLAT_NAME).toml -else - # `PLATFORM` is specified, override the `ARCH` variables - builtin_platforms := $(patsubst $(PLAT_CONFIG_DIR)/%.toml,%,$(wildcard $(PLAT_CONFIG_DIR)/*)) - ifneq ($(filter $(PLATFORM),$(builtin_platforms)),) - # builtin platform - _arch := $(word 1,$(subst -, ,$(PLATFORM))) - PLAT_NAME := $(PLATFORM) - PLAT_CONFIG := $(PLAT_CONFIG_DIR)/$(PLAT_NAME).toml - else ifneq ($(wildcard $(PLATFORM)),) - # custom platform, read the "arch" and "plat-name" fields from the toml file - _arch := $(patsubst "%",%,$(shell axconfig-gen $(PLATFORM) -r arch)) - PLAT_NAME := $(patsubst "%",%,$(shell axconfig-gen $(PLATFORM) -r platform)) - PLAT_CONFIG := $(PLATFORM) - else - $(error "PLATFORM" must be one of "$(builtin_platforms)" or a valid path to a toml file) - endif - ifeq ($(origin ARCH),command line) - ifneq ($(ARCH),$(_arch)) - $(error "ARCH=$(ARCH)" is not compatible with "PLATFORM=$(PLATFORM)") - endif - endif - ARCH := $(_arch) -endif diff --git a/scripts/make/qemu.mk b/scripts/make/qemu.mk deleted file mode 100644 index e0aaeef0..00000000 --- a/scripts/make/qemu.mk +++ /dev/null @@ -1,109 +0,0 @@ -# QEMU arguments - -QEMU := qemu-system-$(ARCH) - -TELNET_PORT ?= 4321 -AUX_TELNET_PORT ?= 4322 -SECOND_SERIAL ?= n -THIRD_SERIAL ?= n - -ifeq ($(BUS), mmio) - vdev-suffix := device -else ifeq ($(BUS), pci) - vdev-suffix := pci -else - $(error "BUS" must be one of "mmio" or "pci") -endif - -qemu_args-x86_64 := \ - -machine q35 \ - -kernel $(OUT_ELF) - -qemu_args-riscv64 := \ - -machine virt \ - -bios default \ - -kernel $(OUT_BIN) - -qemu_args-aarch64 := \ - -cpu cortex-a72 \ - -kernel $(OUT_BIN) - -ifeq ($(GICV3),y) - qemu_args-aarch64 += -machine virt,virtualization=on,gic-version=3 -else - qemu_args-aarch64 += -machine virt,virtualization=on,gic-version=2,its=on -endif - -qemu_args-y := -m $(MEM) -smp $(SMP) $(qemu_args-$(ARCH)) - -qemu_args-$(BLK) += \ - -device virtio-blk-$(vdev-suffix),drive=disk0 \ - -drive id=disk0,if=none,format=raw,file=$(DISK_IMG) - -qemu_args-$(NET) += \ - -device virtio-net-$(vdev-suffix),netdev=net0 - -ifeq ($(NET_DEV), user) - qemu_args-$(NET) += -netdev user,id=net0,hostfwd=tcp::5555-:22,hostfwd=udp::5555-:5555 -else ifeq ($(NET_DEV), tap) - qemu_args-$(NET) += -netdev tap,id=net0,script=scripts/net/qemu-ifup.sh,downscript=no,vhost=$(VHOST),vhostforce=$(VHOST) - QEMU := sudo $(QEMU) -else ifeq ($(NET_DEV), bridge) - qemu_args-$(NET) += -netdev bridge,id=net0,br=virbr0 - QEMU := sudo $(QEMU) -else - $(error "NET_DEV" must be one of "user", "tap", or "bridge") -endif - -ifneq ($(VFIO_PCI),) - qemu_args-y += --device vfio-pci,host=$(VFIO_PCI) - QEMU := sudo $(QEMU) -endif - -ifeq ($(NET_DUMP), y) - qemu_args-$(NET) += -object filter-dump,id=dump0,netdev=net0,file=netdump.pcap -endif - -qemu_args-$(GRAPHIC) += \ - -device virtio-gpu-$(vdev-suffix) -vga none \ - -serial mon:stdio - -ifeq ($(GRAPHIC), n) - qemu_args-y += -nographic -endif - -ifeq ($(QEMU_LOG), y) - qemu_args-y += -D qemu.log -d in_asm,int,mmu,pcall,cpu_reset,guest_errors -endif - -ifeq ($(SECOND_SERIAL), n) - ifeq ($(THIRD_SERIAL), y) - $(error "THIRD_SERIAL cannot be set to 'y' if SECOND_SERIAL is 'n'.") - endif -endif - -qemu_args-$(SECOND_SERIAL) += -serial mon:stdio \ - -serial telnet:localhost:$(TELNET_PORT),server - -qemu_args-$(THIRD_SERIAL) += -serial telnet:localhost:$(AUX_TELNET_PORT),server - -qemu_args-debug := $(qemu_args-y) -s -S - -# Do not use KVM for debugging -ifeq ($(shell uname), Darwin) - qemu_args-$(ACCEL) += -cpu host -accel hvf -else ifeq ($(wildcard /dev/kvm),) - qemu_args-$(ACCEL) += -accel tcg -else - qemu_args-$(ACCEL) += -cpu host -accel kvm -endif - -define run_qemu - @printf " $(CYAN_C)Running$(END_C) on qemu...\n" - $(call run_cmd,$(QEMU),$(qemu_args-y)) -endef - -define run_qemu_debug - @printf " $(CYAN_C)Debugging$(END_C) on qemu...\n" - $(call run_cmd,$(QEMU),$(qemu_args-debug)) -endef diff --git a/scripts/make/raspi4.mk b/scripts/make/raspi4.mk deleted file mode 100644 index dbc2fb56..00000000 --- a/scripts/make/raspi4.mk +++ /dev/null @@ -1,95 +0,0 @@ -include tools/raspi4/common/docker.mk -include tools/raspi4/common/format.mk -include tools/raspi4/common/operating_system.mk - -##-------------------------------------------------------------------------------------------------- -## Optional, user-provided configuration values -##-------------------------------------------------------------------------------------------------- - -# Default to the RPi4. -BSP ?= rpi4 - -# Default to a serial device name that is common in Linux. -DEV_SERIAL ?= /dev/ttyUSB0 - -##-------------------------------------------------------------------------------------------------- -## BSP-specific configuration values -##-------------------------------------------------------------------------------------------------- -QEMU_MISSING_STRING = "This board is not yet supported for QEMU." - -ifeq ($(BSP),rpi4) - TARGET = aarch64-unknown-none-softfloat - KERNEL_BIN := $(OUT_BIN) - OBJDUMP_BINARY = aarch64-none-elf-objdump - NM_BINARY = aarch64-none-elf-nm - READELF_BINARY = aarch64-none-elf-readelf - # OPENOCD_ARG = -f /openocd/tcl/interface/ftdi/olimex-arm-usb-tiny-h.cfg -f /openocd/rpi4.cfg - OPENOCD_ARG = -f /openocd/tcl/interface/jlink.cfg -f /openocd/rpi4.cfg - JTAG_BOOT_IMAGE := $(OUT_BIN) - RUSTC_MISC_ARGS = -C target-cpu=cortex-a72 -endif - -EXEC_MINIPUSH = ruby tools/raspi4/common/serial/minipush.rb - -##------------------------------------------------------------------------------ -## Dockerization -##------------------------------------------------------------------------------ -DOCKER_CMD = docker run -t --rm -v $(shell pwd):/work/tutorial -w /work/tutorial -DOCKER_CMD_INTERACT = $(DOCKER_CMD) -i -DOCKER_ARG_DIR_COMMON = -v $(shell pwd)/tools/raspi4/common:/work/common -DOCKER_ARG_DIR_JTAG = -v $(shell pwd)/tools/raspi4/X1_JTAG_boot:/work/X1_JTAG_boot -DOCKER_ARG_DEV = --privileged -v /dev:/dev -DOCKER_ARG_NET = --network host - -# DOCKER_IMAGE defined in include file (see top of this file). -DOCKER_GDB = $(DOCKER_CMD_INTERACT) $(DOCKER_ARG_NET) $(DOCKER_IMAGE) - -# Dockerize commands, which require USB device passthrough, only on Linux. -ifeq ($(shell uname -s),Linux) - DOCKER_CMD_DEV = $(DOCKER_CMD_INTERACT) $(DOCKER_ARG_DEV) - DOCKER_CHAINBOOT = $(DOCKER_CMD_DEV) $(DOCKER_ARG_DIR_COMMON) $(DOCKER_IMAGE) - DOCKER_JTAGBOOT = $(DOCKER_CMD_DEV) $(DOCKER_ARG_DIR_COMMON) $(DOCKER_ARG_DIR_JTAG) $(DOCKER_IMAGE) - DOCKER_OPENOCD = $(DOCKER_CMD_DEV) $(DOCKER_ARG_NET) $(DOCKER_IMAGE) -else - DOCKER_OPENOCD = echo "Not yet supported on non-Linux systems."; \# -endif - -##-------------------------------------------------------------------------------------------------- -## Targets -##-------------------------------------------------------------------------------------------------- -.PHONY: all chainboot - -all: $(KERNEL_BIN) - -##------------------------------------------------------------------------------ -## Push the kernel to the real HW target -##------------------------------------------------------------------------------ -chainboot: $(KERNEL_BIN) - @$(DOCKER_CHAINBOOT) $(EXEC_MINIPUSH) $(DEV_SERIAL) $(KERNEL_BIN) - - -##-------------------------------------------------------------------------------------------------- -## Debugging targets -##-------------------------------------------------------------------------------------------------- -.PHONY: jtagboot openocd gdb gdb-opt0 - -##------------------------------------------------------------------------------ -## Push the JTAG boot image to the real HW target -##------------------------------------------------------------------------------ -jtagboot: $(KERNEL_BIN) - @$(DOCKER_JTAGBOOT) $(EXEC_MINIPUSH) $(DEV_SERIAL) $(JTAG_BOOT_IMAGE) - -##------------------------------------------------------------------------------ -## Start OpenOCD session -##------------------------------------------------------------------------------ -openocd: - $(call color_header, "Launching OpenOCD") - @$(DOCKER_OPENOCD) openocd $(OPENOCD_ARG) - -##------------------------------------------------------------------------------ -## Start GDB session -##------------------------------------------------------------------------------ -gdb: RUSTC_MISC_ARGS += -C debuginfo=2 -gdb: $(KERNEL_ELF) - $(call color_header, "Launching GDB") - @$(DOCKER_GDB) gdb-multiarch -q $(KERNEL_ELF) diff --git a/scripts/make/rk3588.mk b/scripts/make/rk3588.mk deleted file mode 100644 index ecd40280..00000000 --- a/scripts/make/rk3588.mk +++ /dev/null @@ -1,27 +0,0 @@ -RK3588_GITHUB_URL = https://github.com/arceos-hypervisor/platform_tools/releases/download/latest/rk3588.zip -RK3588_MKIMAGE = ./tools/rk3588/mkimage - -OUT_IMG := $(OUT_DIR)/$(APP_NAME)_$(PLAT_NAME).img - -.PHONY: build_image - -build_image: build -ifeq ($(wildcard $(RK3588_MKIMAGE)),) - @echo "file not found, downloading from $(RK3588_GITHUB_URL)..."; - wget $(RK3588_GITHUB_URL); - unzip -o rk3588.zip -d tools; - rm rk3588.zip; -endif - $(RK3588_MKIMAGE) -n axvisor -A arm64 -O linux -T kernel -C none -a 0x00480000 -e 0x00480000 -d $(OUT_BIN) $(OUT_IMG) - @echo 'Built the uboot image ${OUT_IMG} successfully!' - -define upload_image - @echo "Uploading image to RK3588..." - cp $(OUT_IMG) /srv/tftp/axvisor - @echo "Image uploaded to /srv/tftp/axvisor" - @echo "You can now boot the image using the RK3588 board." - @echo "Coping this command to uboot console:" - @echo "" - @echo 'setenv serverip 192.168.50.138;setenv ipaddr 192.168.50.8;tftp 0x00480000 192.168.50.138:axvisor;tftp 0x10000000 192.168.50.138:rk3588_dtb.bin;bootm 0x00480000 - 0x10000000;' - @echo "" -endef \ No newline at end of file diff --git a/scripts/make/test.mk b/scripts/make/test.mk deleted file mode 100644 index a29d670b..00000000 --- a/scripts/make/test.mk +++ /dev/null @@ -1,16 +0,0 @@ -# Test scripts - -define unit_test - $(call run_cmd,cargo test,-p percpu $(1) -- --nocapture) - $(call run_cmd,cargo test,-p axfs $(1) --features "myfs" -- --nocapture) - $(call run_cmd,cargo test,--workspace --exclude "arceos-*" $(1) -- --nocapture) -endef - -test_app := -ifneq ($(filter command line,$(origin A) $(origin APP)),) - test_app := $(APP) -endif - -define app_test - $(CURDIR)/scripts/test/app_test.sh $(test_app) -endef diff --git a/scripts/make/utils.mk b/scripts/make/utils.mk deleted file mode 100644 index 978017aa..00000000 --- a/scripts/make/utils.mk +++ /dev/null @@ -1,52 +0,0 @@ -# Utility definitions and functions - -GREEN_C := \033[92;1m -CYAN_C := \033[96;1m -YELLOW_C := \033[93;1m -GRAY_C := \033[90m -WHITE_C := \033[37m -END_C := \033[0m - -ifeq ($(AX_ARCH), x86_64) - ARCH_STR = amd64 -else ifeq ($(AX_ARCH), aarch64) - ARCH_STR = arm64 -else - ARCH_STR = $(AX_ARCH) -endif - -TAR_NAME := ubuntu-base-22.04-base-$(ARCH_STR).tar.gz - -define run_cmd - @printf '$(WHITE_C)$(1)$(END_C) $(GRAY_C)$(2)$(END_C)\n' - @$(1) $(2) -endef - -define make_disk_image_fat32 - @printf " $(GREEN_C)Creating$(END_C) FAT32 disk image \"$(1)\" ...\n" - @dd if=/dev/zero of=$(1) bs=1M count=64 - @mkfs.fat -F 32 $(1) -endef - -define make_disk_image - $(if $(filter $(1),fat32), $(call make_disk_image_fat32,$(2))) -endef - -define make_guest_ubuntu_ext4 - @printf " $(GREEN_C)Creating$(END_C) Ubuntu guest image \"$(1)\" ...\n" - @dd if=/dev/zero of=$(1) bs=1M count=128 - @mkfs.ext4 $(1) - @mkdir -p tmp/ubuntu_rootfs - - @if [ ! -f "tmp/$(TAR_NAME)" ]; then \ - printf " $(YELLOW_C)Downloading$(END_C) Ubuntu base image for $(AX_ARCH) ...\n"; \ - wget -O "tmp/$(TAR_NAME)" "http://cdimage.ubuntu.com/ubuntu-base/releases/22.04/release/$(TAR_NAME)"; \ - fi - - @printf " $(GREEN_C)Mounting$(END_C) Ubuntu base image ...\n" - @sudo mount -t ext4 $(1) tmp/ubuntu_rootfs - @printf " $(GREEN_C)Extracting$(END_C) Ubuntu base image ...\n" - @sudo tar -xzf "tmp/$(TAR_NAME)" -C tmp/ubuntu_rootfs/ - @printf " $(GREEN_C)Unmounting$(END_C) Ubuntu base image ...\n" - @sudo umount tmp/ubuntu_rootfs -endef \ No newline at end of file From 21b222e9717771a57427798e110c6324196e67d0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E7=9D=BF?= Date: Fri, 15 Aug 2025 09:18:57 +0800 Subject: [PATCH 087/219] feat: new script --- .gitignore | 24 ++++++++ Cargo.lock | 48 ++++++--------- Cargo.toml | 4 +- bootstrap.sh | 57 +++++++++++++++++ requirements.txt | 2 + scripts/__init__.py | 1 + scripts/build.py | 45 ++++++++++++++ scripts/config.py | 129 +++++++++++++++++++++++++++++++++++++++ scripts/lds/linker.lds.S | 94 ++++++++++++++++++++++++++++ scripts/run.py | 47 ++++++++++++++ scripts/setup.py | 46 ++++++++++++++ src/hal.rs | 4 +- task.py | 43 +++++++++++++ 13 files changed, 512 insertions(+), 32 deletions(-) create mode 100755 bootstrap.sh create mode 100644 requirements.txt create mode 100644 scripts/__init__.py create mode 100644 scripts/build.py create mode 100644 scripts/config.py create mode 100644 scripts/lds/linker.lds.S create mode 100644 scripts/run.py create mode 100644 scripts/setup.py create mode 100755 task.py diff --git a/.gitignore b/.gitignore index 516053c7..0998b8ff 100644 --- a/.gitignore +++ b/.gitignore @@ -18,6 +18,7 @@ rusty-tags.vi /**/.axconfig.* +/**/.hvconfig.* # dev env /crates @@ -28,3 +29,26 @@ tools/* # initramfs *.cpio.gz + +# Python +__pycache__/ +*.py[cod] +*$py.class +*.so +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +*.egg-info/ +.installed.cfg +*.egg +MANIFEST diff --git a/Cargo.lock b/Cargo.lock index d698b735..0ba52923 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -152,10 +152,10 @@ checksum = "e16d2d3311acee920a9eb8d33b8cbc1787ce4a264e85f964c2404b969bdcd487" [[package]] name = "arceos_api" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-test#667af7208c57585d6d347f5d03c7657a3297643e" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#587fc9e1b8ed8b7e7ae0bb2fc1166d6dbdd4838c" dependencies = [ "axalloc", - "axconfig 0.2.0 (git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-test)", + "axconfig", "axdriver", "axerrno", "axfeat", @@ -297,7 +297,7 @@ dependencies = [ [[package]] name = "axalloc" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-test#667af7208c57585d6d347f5d03c7657a3297643e" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#587fc9e1b8ed8b7e7ae0bb2fc1166d6dbdd4838c" dependencies = [ "allocator", "axerrno", @@ -315,14 +315,6 @@ dependencies = [ "axconfig-macros", ] -[[package]] -name = "axconfig" -version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-test#667af7208c57585d6d347f5d03c7657a3297643e" -dependencies = [ - "axconfig-macros", -] - [[package]] name = "axconfig-gen" version = "0.2.0" @@ -401,11 +393,11 @@ dependencies = [ [[package]] name = "axdriver" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-test#667af7208c57585d6d347f5d03c7657a3297643e" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#587fc9e1b8ed8b7e7ae0bb2fc1166d6dbdd4838c" dependencies = [ "arm-gic-driver", "axalloc", - "axconfig 0.2.0 (git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-test)", + "axconfig", "axdriver_base", "axdriver_block", "axdriver_pci", @@ -464,7 +456,7 @@ dependencies = [ [[package]] name = "axfeat" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-test#667af7208c57585d6d347f5d03c7657a3297643e" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#587fc9e1b8ed8b7e7ae0bb2fc1166d6dbdd4838c" dependencies = [ "axalloc", "axdriver", @@ -480,7 +472,7 @@ dependencies = [ [[package]] name = "axfs" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-test#667af7208c57585d6d347f5d03c7657a3297643e" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#587fc9e1b8ed8b7e7ae0bb2fc1166d6dbdd4838c" dependencies = [ "axdriver", "axdriver_block", @@ -534,11 +526,11 @@ dependencies = [ [[package]] name = "axhal" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-test#667af7208c57585d6d347f5d03c7657a3297643e" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#587fc9e1b8ed8b7e7ae0bb2fc1166d6dbdd4838c" dependencies = [ "aarch64-cpu", "axalloc", - "axconfig 0.2.0 (git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-test)", + "axconfig", "axcpu", "axlog", "axplat 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -578,7 +570,7 @@ dependencies = [ [[package]] name = "axlog" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-test#667af7208c57585d6d347f5d03c7657a3297643e" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#587fc9e1b8ed8b7e7ae0bb2fc1166d6dbdd4838c" dependencies = [ "cfg-if", "crate_interface", @@ -589,10 +581,10 @@ dependencies = [ [[package]] name = "axmm" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-test#667af7208c57585d6d347f5d03c7657a3297643e" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#587fc9e1b8ed8b7e7ae0bb2fc1166d6dbdd4838c" dependencies = [ "axalloc", - "axconfig 0.2.0 (git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-test)", + "axconfig", "axerrno", "axhal", "kspin", @@ -605,7 +597,7 @@ dependencies = [ [[package]] name = "axns" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-test#667af7208c57585d6d347f5d03c7657a3297643e" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#587fc9e1b8ed8b7e7ae0bb2fc1166d6dbdd4838c" dependencies = [ "crate_interface", "lazyinit", @@ -787,10 +779,10 @@ dependencies = [ [[package]] name = "axruntime" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-test#667af7208c57585d6d347f5d03c7657a3297643e" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#587fc9e1b8ed8b7e7ae0bb2fc1166d6dbdd4838c" dependencies = [ "axalloc", - "axconfig 0.2.0 (git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-test)", + "axconfig", "axdriver", "axerrno", "axfs", @@ -817,7 +809,7 @@ dependencies = [ [[package]] name = "axstd" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-test#667af7208c57585d6d347f5d03c7657a3297643e" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#587fc9e1b8ed8b7e7ae0bb2fc1166d6dbdd4838c" dependencies = [ "arceos_api", "axerrno", @@ -830,7 +822,7 @@ dependencies = [ [[package]] name = "axsync" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-test#667af7208c57585d6d347f5d03c7657a3297643e" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#587fc9e1b8ed8b7e7ae0bb2fc1166d6dbdd4838c" dependencies = [ "axtask", "kspin", @@ -840,9 +832,9 @@ dependencies = [ [[package]] name = "axtask" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-test#667af7208c57585d6d347f5d03c7657a3297643e" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#587fc9e1b8ed8b7e7ae0bb2fc1166d6dbdd4838c" dependencies = [ - "axconfig 0.2.0 (git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-test)", + "axconfig", "axhal", "axsched", "cfg-if", @@ -874,7 +866,7 @@ name = "axvisor" version = "0.1.0" dependencies = [ "axaddrspace", - "axconfig 0.2.0 (git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev)", + "axconfig", "axdevice", "axdevice_base", "axerrno", diff --git a/Cargo.toml b/Cargo.toml index 02791cf3..79ed186f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -27,8 +27,8 @@ spin = "0.9" timer_list = "0.1.0" # System dependent modules provided by ArceOS. -# axstd = {git = "https://github.com/arceos-hypervisor/arceos.git", branch = "vmm-dev", features = [ -axstd = {git = "https://github.com/arceos-hypervisor/arceos.git", branch = "vmm-test", features = [ +axstd = {git = "https://github.com/arceos-hypervisor/arceos.git", branch = "vmm-dev", features = [ +# axstd = {git = "https://github.com/arceos-hypervisor/arceos.git", branch = "vmm-test", features = [ "alloc", "paging", "irq", diff --git a/bootstrap.sh b/bootstrap.sh new file mode 100755 index 00000000..0e4631cd --- /dev/null +++ b/bootstrap.sh @@ -0,0 +1,57 @@ +#!/bin/bash +# -*- coding: utf-8 -*- + +# Axvisor Bootstrap Script +# 此脚本用于安装 task.py 所需的 Python 依赖 + +set -e # 遇到错误时退出 + +echo "=== Axvisor Bootstrap Script ===" +echo "正在安装 task.py 所需的 Python 依赖..." + +# 检查 Python 版本 +python_version=$(python3 --version 2>&1 | awk '{print $2}' | cut -d. -f1,2) +echo "检测到 Python 版本: $python_version" + +# 检查是否有 pip +if ! command -v pip3 &> /dev/null; then + echo "错误: pip3 未找到,请先安装 pip3" + exit 1 +fi + +echo "检测到 pip3 版本: $(pip3 --version)" + +# 检查 requirements.txt 文件是否存在 +if [[ ! -f "requirements.txt" ]]; then + echo "错误: requirements.txt 文件未找到" + exit 1 +fi + +echo "正在安装 Python 依赖..." + +# 检查是否在虚拟环境中 +if [[ "$VIRTUAL_ENV" != "" ]]; then + echo "检测到虚拟环境: $VIRTUAL_ENV" + pip install -r requirements.txt +else + echo "未检测到虚拟环境,使用 --user 安装" + pip3 install --user -r requirements.txt +fi + +echo "依赖安装完成!" + +# 测试 task.py 是否可以正常运行 +echo "测试 task.py..." +if ./task.py --help > /dev/null 2>&1; then + echo "✓ task.py 运行正常" +else + echo "✗ task.py 运行失败,请检查安装" + exit 1 +fi + +echo "=== Bootstrap 完成 ===" +echo "您现在可以使用以下命令:" +echo " ./task.py build # 构建项目" +echo " ./task.py run # 运行项目" +echo " ./task.py build --help # 查看构建选项" +echo " ./task.py run --help # 查看运行选项" diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 00000000..7fc9d50d --- /dev/null +++ b/requirements.txt @@ -0,0 +1,2 @@ +# Axvisor task.py 依赖 +toml>=0.10.0 diff --git a/scripts/__init__.py b/scripts/__init__.py new file mode 100644 index 00000000..246db6f0 --- /dev/null +++ b/scripts/__init__.py @@ -0,0 +1 @@ +# scripts package diff --git a/scripts/build.py b/scripts/build.py new file mode 100644 index 00000000..182b456b --- /dev/null +++ b/scripts/build.py @@ -0,0 +1,45 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +import os +import subprocess +import sys +from .config import merge_config, get_make_variables, format_make_command +from .setup import setup_arceos + + +def main(args): + """构建项目""" + print("执行 build 功能...") + + # 首先设置 arceos 依赖 + print("设置 arceos 依赖...") + if not setup_arceos(): + print("设置 arceos 失败,无法继续构建") + return 1 + + # 合并配置文件和命令行参数 + args = merge_config(args) + + # 获取 make 变量和环境变量 + make_vars, env_vars = get_make_variables(args) + + # 构建 make 命令 + cmd = format_make_command(make_vars, env_vars, "") + + print(f"执行命令: {cmd}") + + try: + # 设置环境变量 + env = os.environ.copy() + env.update(env_vars) + + # 执行 make 命令 + result = subprocess.run(cmd, shell=True, check=True, env=env) + print("构建成功!") + return 0 + except subprocess.CalledProcessError as e: + print(f"构建失败,退出码: {e.returncode}") + return e.returncode + except Exception as e: + print(f"构建过程中发生错误: {e}") + return 1 diff --git a/scripts/config.py b/scripts/config.py new file mode 100644 index 00000000..47a9a50b --- /dev/null +++ b/scripts/config.py @@ -0,0 +1,129 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +import os +import argparse + + +def load_config_file(config_path=".hvconfig.toml"): + """从配置文件加载配置""" + if os.path.exists(config_path): + try: + import toml + + with open(config_path, "r", encoding="utf-8") as f: + return toml.load(f) + except ImportError: + print("警告:需要安装 toml 库来读取 .hvconfig.toml 文件") + return {} + except Exception as e: + print(f"警告:读取配置文件 {config_path} 失败: {e}") + return {} + return {} + + +def add_common_arguments(parser): + """为解析器添加通用参数""" + parser.add_argument( + "--features", type=str, help="Hypervisor features (comma-separated)" + ) + parser.add_argument( + "--arceos-features", type=str, help="ArceOS features (comma-separated)" + ) + parser.add_argument( + "--arceos-args", type=str, help="ArceOS arguments (comma-separated)" + ) + parser.add_argument( + "--plat", + type=str, + default="aarch64-generic", + help="Platform (default: aarch64-generic)", + ) + parser.add_argument( + "--vmconfigs", type=str, help="VM configuration file path (comma-separated)" + ) + + +def array_to_comma_separated(value): + """将数组转换为逗号分隔的字符串""" + if isinstance(value, list): + # 过滤掉空字符串 + filtered_values = [str(v) for v in value if v] + return ",".join(filtered_values) if filtered_values else "" + return str(value) if value else "" + + +def merge_config(args, config_file=None): + """合并命令行参数和配置文件,命令行参数优先""" + if config_file is None: + config_file = load_config_file() + + # 如果命令行参数未指定,则使用配置文件中的值 + if args.features is None and "features" in config_file: + args.features = array_to_comma_separated(config_file["features"]) + + if ( + getattr(args, "arceos_features", None) is None + and "arceos_features" in config_file + ): + args.arceos_features = array_to_comma_separated(config_file["arceos_features"]) + + if getattr(args, "arceos_args", None) is None and "arceos_args" in config_file: + args.arceos_args = array_to_comma_separated(config_file["arceos_args"]) + + if args.plat == "aarch64-generic" and "plat" in config_file: + args.plat = config_file["plat"] + + if args.vmconfigs is None and "vmconfigs" in config_file: + args.vmconfigs = array_to_comma_separated(config_file["vmconfigs"]) + + return args + + +def get_make_variables(args): + """根据参数生成 make 变量和环境变量""" + make_vars = {} + env_vars = {} + + # 基本的 make 变量 + make_vars["A"] = os.getcwd() + make_vars["LD_SCRIPT"] = "link.x" + + if args.plat: + make_vars["MYPLAT"] = f"axplat-{args.plat}" + + make_vars["APP_FEATURES"] = f"plat-{args.plat}" + if args.features: + make_vars["APP_FEATURES"] += f",{args.features}" + + if hasattr(args, "arceos_features") and args.arceos_features: + make_vars["FEATURES"] = args.arceos_features + + if hasattr(args, "arceos_args") and args.arceos_args: + for arg in args.arceos_args.split(","): + key, value = arg.split("=", 1) if "=" in arg else (arg, "y") + make_vars[key.strip()] = value.strip() + + # 处理 vmconfigs 作为环境变量 + if args.vmconfigs: + env_vars["AXVISOR_VM_CONFIGS"] = args.vmconfigs + + return make_vars, env_vars + + +def format_make_command(make_vars, env_vars=None, target=""): + """格式化 make 命令,包含环境变量""" + cmd_parts = [] + + # 添加 make 命令 + cmd_parts.extend(["make", "-C", ".arceos"]) + + # 添加 make 变量 + for key, value in make_vars.items(): + cmd_parts.append(f"{key}={value}") + + cmd_parts.append("QEMU_ARGS=\"-machine virtualization=on\"") + + if target: + cmd_parts.append(target) + + return " ".join(cmd_parts) diff --git a/scripts/lds/linker.lds.S b/scripts/lds/linker.lds.S new file mode 100644 index 00000000..f0e06a3a --- /dev/null +++ b/scripts/lds/linker.lds.S @@ -0,0 +1,94 @@ +OUTPUT_ARCH(%ARCH%) + +BASE_ADDRESS = %KERNEL_BASE%; + +ENTRY(_start) +SECTIONS +{ + . = BASE_ADDRESS; + _skernel = .; + + .text : ALIGN(4K) { + _stext = .; + *(.text.boot) + *(.text .text.*) + . = ALIGN(4K); + _etext = .; + } + + .rodata : ALIGN(4K) { + _srodata = .; + *(.rodata .rodata.*) + *(.srodata .srodata.*) + *(.sdata2 .sdata2.*) + . = ALIGN(4K); + _erodata = .; + } + + .data : ALIGN(4K) { + _sdata = .; + *(.data.boot_page_table) + . = ALIGN(4K); + *(.data .data.*) + *(.sdata .sdata.*) + *(.got .got.*) + } + + .tdata : ALIGN(0x10) { + _stdata = .; + *(.tdata .tdata.*) + _etdata = .; + } + + .tbss : ALIGN(0x10) { + _stbss = .; + *(.tbss .tbss.*) + *(.tcommon) + _etbss = .; + } + + . = ALIGN(4K); + _percpu_start = .; + _percpu_end = _percpu_start + SIZEOF(.percpu); + .percpu 0x0 : AT(_percpu_start) { + _percpu_load_start = .; + *(.percpu .percpu.*) + _percpu_load_end = .; + . = _percpu_load_start + ALIGN(64) * %SMP%; + } + . = _percpu_end; + + . = ALIGN(4K); + _edata = .; + + .bss : ALIGN(4K) { + boot_stack = .; + *(.bss.stack) + . = ALIGN(4K); + boot_stack_top = .; + + _sbss = .; + *(.bss .bss.*) + *(.sbss .sbss.*) + *(COMMON) + . = ALIGN(4K); + _ebss = .; + } + + _ekernel = .; + + /DISCARD/ : { + *(.comment) *(.gnu*) *(.note*) *(.eh_frame*) + } +} + +SECTIONS { + linkme_IRQ : { *(linkme_IRQ) } + linkm2_IRQ : { *(linkm2_IRQ) } + linkme_PAGE_FAULT : { *(linkme_PAGE_FAULT) } + linkm2_PAGE_FAULT : { *(linkm2_PAGE_FAULT) } + linkme_SYSCALL : { *(linkme_SYSCALL) } + linkm2_SYSCALL : { *(linkm2_SYSCALL) } + axns_resource : { *(axns_resource) } +} +INSERT AFTER .tbss; diff --git a/scripts/run.py b/scripts/run.py new file mode 100644 index 00000000..cc9d11d0 --- /dev/null +++ b/scripts/run.py @@ -0,0 +1,47 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +import os +import subprocess +import sys +from .config import merge_config, get_make_variables, format_make_command +from .setup import setup_arceos +from . import build + + +def main(args): + """运行项目""" + print("执行 run 功能...") + + # 合并配置文件和命令行参数 + args = merge_config(args) + + # 首先执行 build + print("运行前先构建项目...") + build_result = build.main(args) + if build_result != 0: + print("构建失败,无法运行") + return build_result + + # 获取 make 变量和环境变量 + make_vars, env_vars = get_make_variables(args) + + # 构建 make 命令 + cmd = format_make_command(make_vars, env_vars, "run") + + print(f"执行命令: {cmd}") + + try: + # 设置环境变量 + env = os.environ.copy() + env.update(env_vars) + + # 执行 make run 命令 + result = subprocess.run(cmd, shell=True, check=True, env=env) + print("运行完成!") + return 0 + except subprocess.CalledProcessError as e: + print(f"运行失败,退出码: {e.returncode}") + return e.returncode + except Exception as e: + print(f"运行过程中发生错误: {e}") + return 1 diff --git a/scripts/setup.py b/scripts/setup.py new file mode 100644 index 00000000..9d9c9fcc --- /dev/null +++ b/scripts/setup.py @@ -0,0 +1,46 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +import os +import subprocess + + +def setup_arceos(): + """设置 arceos 依赖""" + arceos_dir = ".arceos" + + if not os.path.exists(arceos_dir): + print("正在克隆 arceos 仓库...") + try: + # 克隆 arceos 仓库 + result = subprocess.run( + [ + "git", + "clone", + "https://github.com/arceos-hypervisor/arceos", + "-b", + "vmm-dev", + arceos_dir, + ], + check=True, + capture_output=True, + text=True, + ) + + print("arceos 仓库克隆完成") + return True + except subprocess.CalledProcessError as e: + print(f"克隆 arceos 仓库失败: {e}") + print(f"错误输出: {e.stderr}") + return False + except Exception as e: + print(f"设置 arceos 过程中发生错误: {e}") + return False + else: + print(".arceos 文件夹已存在") + return True + + +def main(args=None): + """作为独立命令使用时的入口""" + print("执行 setup-arceos 功能...") + return 0 if setup_arceos() else 1 diff --git a/src/hal.rs b/src/hal.rs index f04ae2ce..a51124d9 100644 --- a/src/hal.rs +++ b/src/hal.rs @@ -269,10 +269,10 @@ mod arch_api_impl { #[cfg(target_arch = "aarch64")] extern fn hardware_inject_virtual_interrupt(irq: axvisor_api::vmm::InterruptVector) { debug!("Injecting virtual interrupt: {}", irq); - // unimplemented!(); + unimplemented!(); // use axstd::os::arceos::modules::axhal; // axhal::irq::inject_interrupt(irq as usize); - super::inject_interrupt(irq as usize); + // super::inject_interrupt(irq as usize); } #[cfg(target_arch = "aarch64")] diff --git a/task.py b/task.py new file mode 100755 index 00000000..68395e73 --- /dev/null +++ b/task.py @@ -0,0 +1,43 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +import argparse +import sys +import importlib +from scripts.config import add_common_arguments + + +def main(): + parser = argparse.ArgumentParser(description="Axvisor 命令行工具") + subparsers = parser.add_subparsers(dest="command", help="可用命令") + + # setup 命令 + setup_parser = subparsers.add_parser("setup", help="设置 arceos 依赖") + + # build 命令 + build_parser = subparsers.add_parser("build", help="构建项目") + add_common_arguments(build_parser) + + # run 命令 + run_parser = subparsers.add_parser("run", help="运行项目") + add_common_arguments(run_parser) + + args = parser.parse_args() + + if args.command == "setup": + mod = importlib.import_module("scripts.setup") + exit_code = mod.main(args) + sys.exit(exit_code) + elif args.command == "build": + mod = importlib.import_module("scripts.build") + exit_code = mod.main(args) + sys.exit(exit_code) + elif args.command == "run": + mod = importlib.import_module("scripts.run") + exit_code = mod.main(args) + sys.exit(exit_code) + else: + parser.print_help() + + +if __name__ == "__main__": + main() From 4179de745b174805402f1dc20ddb6f947651cbd6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E7=9D=BF?= Date: Fri, 15 Aug 2025 10:13:36 +0800 Subject: [PATCH 088/219] feat: enhance configuration management and command execution in Axvisor - Introduced AxvisorConfig class for better configuration handling. - Updated build and run scripts to utilize the new configuration class. - Improved command formatting and environment variable management. - Added support for loading platform-specific configurations from axconfig.toml. - Enhanced error handling and user feedback during configuration loading. --- .github/workflows/build.yml | 3 +- .github/workflows/test.yml | 5 +- doc/README.md | 89 +++++--- doc/task.py-usage.md | 360 ++++++++++++++++++++++++++++++++ scripts/build.py | 22 +- scripts/config.py | 401 +++++++++++++++++++++++++++++++----- scripts/run.py | 22 +- 7 files changed, 786 insertions(+), 116 deletions(-) create mode 100644 doc/task.py-usage.md diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index cbbce397..f8e41320 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -64,6 +64,7 @@ jobs: targets: x86_64-unknown-none, riscv64gc-unknown-none-elf, aarch64-unknown-none, aarch64-unknown-none-softfloat - uses: Swatinem/rust-cache@v2 - run: cargo install cargo-binutils + - run: ./bootstrap.sh - name: Build the repo continue-on-error: ${{ matrix.rust-toolchain == 'nightly' }} - run: make PLAT=${{ matrix.plat }} build + run: ./task.py build --plat ${{ matrix.plat }} diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 91bd0da5..8ea7eb30 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -41,13 +41,16 @@ jobs: - name: Update rust-toolchain.toml run: | sed -i "s/^channel = .*/channel = \"${{ matrix.rust-toolchain }}\"/" rust-toolchain.toml + - name: bootstrap + run: | + ./bootstrap.sh - name: Run guests continue-on-error: ${{ matrix.rust-toolchain == 'nightly' }} run: | cargo version export DISK_IMG="${{ github.workspace }}/disk-aarch64.img" export VM_CONFIGS="$(pwd)/configs/vms/nimbos-aarch64.toml" - make PLAT=${{ matrix.plat }} DISK_IMG=${DISK_IMG} LOG=info BLK=y ACCEL=n VM_CONFIGS=${VM_CONFIGS} BUS=mmio FEATURES=page-alloc-64g MEM=8g HV_FEATURES=fs run + ./task.py run --plat ${{ matrix.plat }} --disk $DISK_IMG --vm-configs $VM_CONFIGS --arceos-args BUS=mmio,BLK=y,MEM=8g test_remote: runs-on: ubuntu-latest diff --git a/doc/README.md b/doc/README.md index 8c4c8144..bfca1044 100644 --- a/doc/README.md +++ b/doc/README.md @@ -1,6 +1,30 @@ +# Axvisor 文档 + +## 概述 + +本目录包含 Axvisor 项目的相关文档。 + +## 文档列表 + +### 使用指南 + +- [task.py 使用说明](task.py-usage.md) - Axvisor 命令行工具的完整使用指南 + +### 架构文档 + +- [架构概览](#axvisor-architecture-overview) - Axvisor 整体架构介绍 +- [虚拟机管理](GuestVMs.md) - 虚拟机配置和管理 +- [SMP 支持](SMP.md) - 多处理器支持 + +### 配置文档 + +- [平台配置增强](../PLATFORM_CONFIG_ENHANCEMENT.md) - 平台配置自动读取功能说明 + +--- + # Axvisor Architecture Overview -About the overall architecture of Axvisor (the [main repo](https://github.com/arceos-hypervisor/axvisor) and [all components repos](https://github.com/arceos-hypervisor/)), +About the overall architecture of Axvisor (the [main repo](https://github.com/arceos-hypervisor/axvisor) and [all components repos](https://github.com/arceos-hypervisor/)), a unified modular hypervisor based on [ArceOS](https://github.com/arceos-org/arceos). The hypervisor mainly consists of the VMM (Virtual Machine Monitor) app named `axvisor` (the very repo you are looking at) and modules/crates responsible for implementing virtualization functions (e.g., `axvm`, `axvcpu`, `axdevice`, etc., which are in separate repos under the [arceos-hypervisor](https://github.com/arceos-hypervisor/) organization). @@ -22,37 +46,37 @@ Axvisor runs as an ArceOS app, mainly composed of the following independent comp ### The App `axvisor` A user app of ArceOS, which is: -* completely architecture-independent, -* main entry point of the hypervisor, and -* responsible for VM management (configuration & runtime). +- completely architecture-independent, +- main entry point of the hypervisor, and +- responsible for VM management (configuration & runtime). **Note that we aim to consolidate all dependencies on ArceOS within the vmm-app.** Currently, the modules from ArceOS that the vmm-app depends on include: -* [axstd](https://github.com/arceos-hypervisor/arceos/tree/vmm/ulib/axstd): a standard dependency interface for ArceOS's user app. -* [axhal](https://github.com/arceos-hypervisor/arceos/tree/vmm/modules/axhal): for OS-related functions, including memory management, clock operations, and more. -* [axtask](https://github.com/arceos-org/arceos/tree/monolithic/modules/axtask): for the scheduling of vCPUs. +- [axstd](https://github.com/arceos-hypervisor/arceos/tree/vmm/ulib/axstd): a standard dependency interface for ArceOS's user app. +- [axhal](https://github.com/arceos-hypervisor/arceos/tree/vmm/modules/axhal): for OS-related functions, including memory management, clock operations, and more. +- [axtask](https://github.com/arceos-org/arceos/tree/monolithic/modules/axtask): for the scheduling of vCPUs. ### Modules -* [axvm](https://github.com/arceos-hypervisor/axvm): responsible for **resource management** within each VM. - * partially architecture-independent. - * resources include: - * vcpu: [axvcpu](https://github.com/arceos-hypervisor/axvcpu) list. - * memory: [axaddrspace](https://github.com/arceos-hypervisor/axaddrspace) for guest memory management. - * device: [axdevice](https://github.com/arceos-hypervisor/axdevice) list. +- [axvm](https://github.com/arceos-hypervisor/axvm): responsible for **resource management** within each VM. + - partially architecture-independent. + - resources include: + - vcpu: [axvcpu](https://github.com/arceos-hypervisor/axvcpu) list. + - memory: [axaddrspace](https://github.com/arceos-hypervisor/axaddrspace) for guest memory management. + - device: [axdevice](https://github.com/arceos-hypervisor/axdevice) list. -* [axvcpu](https://github.com/arceos-hypervisor/axvcpu): providing CPU virtualization support. - * highly architecture-dependent. - * stores exception context frame of different architecture. - * basic scheduling item. - * arch-specific vcpu implementations need to be separated into separate crates. +- [axvcpu](https://github.com/arceos-hypervisor/axvcpu): providing CPU virtualization support. + - highly architecture-dependent. + - stores exception context frame of different architecture. + - basic scheduling item. + - arch-specific vcpu implementations need to be separated into separate crates. -* [axaddrspace](https://github.com/arceos-hypervisor/axaddrspace). - * architecture-independent. - * responsible for managing and mapping the guest VM's second-stage address space (GPA -> HPA). +- [axaddrspace](https://github.com/arceos-hypervisor/axaddrspace). + - architecture-independent. + - responsible for managing and mapping the guest VM's second-stage address space (GPA -> HPA). -* [axdevice](https://github.com/arceos-hypervisor/axdevice): providing device emulation support. - * partially architecture-independent. - * different emulated device implementations need to be separated into separate crates. +- [axdevice](https://github.com/arceos-hypervisor/axdevice): providing device emulation support. + - partially architecture-independent. + - different emulated device implementations need to be separated into separate crates. ### Crates @@ -62,7 +86,7 @@ A user app of ArceOS, which is: ![](figures/arceos-hv-architecture.svg) -Since modules/crates used for virtualization functionality in the ArceOS-Hypervisor architecture need to call OS-related resource management interfaces, while we aim to consolidate all OS-related dependencies within the vmm-app. +Since modules/crates used for virtualization functionality in the ArceOS-Hypervisor architecture need to call OS-related resource management interfaces, while we aim to consolidate all OS-related dependencies within the vmm-app. Various modules/crates will achieve dependency injection through Rust traits. @@ -70,12 +94,11 @@ Various modules/crates will achieve dependency injection through Rust traits. The axvm crate defines the `AxVMHal trait`, which is a combination of generic types defined by `axaddrspace`, `axvcpu`, and `axdevice`. The `vmm-app` needs to implement the `AxVMHal` trait for `axvm` by calling system interfaces provided by ArceOS (or other OSs). - ### axvcpu Typically, `axvcpu` focuses on CPU virtualization support across different architectures, including managing registers for guest VM CPU context and virtualizing hardware abstractions, which generally does not depend on OS functionalities. -However, for the x86 architecture, VMX requires allocating physical page frames for managing VMX regions (such as VMCS regions), which depends on OS-related memory allocation APIs. +However, for the x86 architecture, VMX requires allocating physical page frames for managing VMX regions (such as VMCS regions), which depends on OS-related memory allocation APIs. This can be handled by importing the `PagingHandler` generic type, or passing pre-allocated physical page frames as parameters in the vCPU constructor. ### axaddrspace @@ -86,7 +109,7 @@ While `PagingHandler` is an associated type of `AxVMHal trait`. ### axdevice -`axdevice` depends on `axaddrspace` to handle the guest request's parsing process in device emulation. +`axdevice` depends on `axaddrspace` to handle the guest request's parsing process in device emulation. For example, when handling a Virtio request, the virtio-device needs to translate the accessed GPA into HVA and to perform subsequent operations. Additionally, axdevice depends on certain interfaces provided by the VMM to perform operations like interrupt injection and inter-VM communication. @@ -116,7 +139,7 @@ pub trait AxVMHal: Sized { fn virt_to_phys(vaddr: HostVirtAddr) -> HostPhysAddr; /// Current time in nanoseconds. fn current_time_nanos() -> u64; - // ... + // ... } ``` @@ -133,13 +156,13 @@ impl AxVMHal for AxVMHalImpl { fn current_time_nanos() -> u64 { axhal::time::monotonic_time_nanos() } - // ... + // ... } ``` So, current design achieve dependency injection through Rust's generic type (`Trait`) and its associate type mechanism. -For other virtualization-related modules/crates such as `axvcpu`, `axdevice`, etc., -we also want them to expose well-designed generics, and to converge these carefully crafted generics as subtraits or associated types within the `AxVmHal trait` of `axvm` (since `axvm` is reponsible for VM resource management). +For other virtualization-related modules/crates such as `axvcpu`, `axdevice`, etc., +we also want them to expose well-designed generics, and to converge these carefully crafted generics as subtraits or associated types within the `AxVmHal trait` of `axvm` (since `axvm` is reponsible for VM resource management). -Ultimately, the `vmm-app` layer will call the relevant functionalities of `ArceOS` to implement them. \ No newline at end of file +Ultimately, the `vmm-app` layer will call the relevant functionalities of `ArceOS` to implement them. diff --git a/doc/task.py-usage.md b/doc/task.py-usage.md new file mode 100644 index 00000000..06fe669c --- /dev/null +++ b/doc/task.py-usage.md @@ -0,0 +1,360 @@ +# task.py 使用说明 + +## 概述 + +`task.py` 是 Axvisor 项目的主要命令行工具,提供了项目的构建、运行和设置功能。它是一个统一的入口点,简化了开发和部署流程。 + +## 基本用法 + +```bash +./task.py [options] +``` + +## 可用命令 + +### 1. setup - 设置依赖 + +设置 ArceOS 依赖环境。 + +```bash +./task.py setup +``` + +**功能**: + +- 自动克隆 ArceOS 仓库到 `.arceos` 目录 +- 使用 `vmm-dev` 分支 +- 如果目录已存在,会跳过克隆步骤 + +**示例**: + +```bash +# 首次设置 +./task.py setup +``` + +### 2. build - 构建项目 + +构建 Axvisor 项目。 + +```bash +./task.py build [options] +``` + +**功能**: + +- 自动设置 ArceOS 依赖(如果尚未设置) +- 根据配置生成构建命令 +- 执行 make 构建 + +**示例**: + +```bash +# 使用默认配置构建 +./task.py build + +# 指定平台构建 +./task.py build --plat aarch64-generic + +# 添加特性 +./task.py build --features "feature1,feature2" + +# 添加 ArceOS 特性 +./task.py build --arceos-features "page-alloc-64g,smp" + +# 添加 ArceOS 参数 +./task.py build --arceos-args "NET=y,BLK=y,MEM=8g" + +# 指定 VM 配置文件 +./task.py build --vmconfigs "config1.toml,config2.toml" +``` + +### 3. run - 运行项目 + +构建并运行 Axvisor 项目。 + +```bash +./task.py run [options] +``` + +**功能**: + +- 首先执行构建步骤 +- 如果构建成功,则运行项目 +- 支持所有构建选项 + +**示例**: + +```bash +# 构建并运行 +./task.py run + +# 使用特定配置运行 +./task.py run --plat aarch64-generic --arceos-args "NET=y,MEM=4g" +``` + +## 命令行参数 + +### 通用参数 + +以下参数适用于 `build` 和 `run` 命令: + +| 参数 | 类型 | 默认值 | 说明 | +|------|------|--------|------| +| `--plat` | string | aarch64-generic | 指定目标平台 | +| `--arch` | string | 自动检测 | 指定目标架构 | +| `--package` | string | 自动检测 | 指定平台包名 | +| `--features` | string | 无 | Hypervisor 特性(逗号分隔) | +| `--arceos-features` | string | 无 | ArceOS 特性(逗号分隔) | +| `--arceos-args` | string | 无 | ArceOS 参数(逗号分隔) | +| `--vmconfigs` | string | 无 | VM 配置文件路径(逗号分隔) | + +### 参数详解 + +#### --plat (平台) + +指定目标平台,系统会自动从 `platform/{plat}/axconfig.toml` 读取对应的架构和包配置。 + +```bash +--plat aarch64-generic +--plat x86_64-qemu +--plat riscv64-qemu +``` + +#### --arch (架构) + +手动指定目标架构,会覆盖从平台配置文件读取的架构。 + +```bash +--arch aarch64 +--arch x86_64 +--arch riscv64 +``` + +**架构特定的 QEMU 参数**: + +- `aarch64`: `-machine virtualization=on` +- `x86_64`: `-enable-kvm -cpu host` +- `riscv64`: `-machine virt -cpu rv64` + +#### --package (包名) + +手动指定平台包名,会覆盖从平台配置文件读取的包名。 + +```bash +--package axplat-aarch64-generic +--package custom-platform-package +``` + +#### --features (Hypervisor 特性) + +指定 Hypervisor 的特性,多个特性用逗号分隔。 + +```bash +--features "net,blk" +--features "smp,virtualization" +``` + +#### --arceos-features (ArceOS 特性) + +指定 ArceOS 的特性,多个特性用逗号分隔。 + +```bash +--arceos-features "page-alloc-64g" +--arceos-features "smp,net,blk" +``` + +#### --arceos-args (ArceOS 参数) + +指定传递给 ArceOS 的参数,支持键值对和标志,多个参数用逗号分隔。 + +```bash +--arceos-args "NET=y,BLK=y,MEM=8g" +--arceos-args "SMP=4,DEBUG=y" +--arceos-args "QEMU_ARGS=\"-smp 4 -m 2G\"" +``` + +#### --vmconfigs (VM 配置文件) + +指定 VM 配置文件的路径,多个文件用逗号分隔。 + +```bash +--vmconfigs "vm1.toml" +--vmconfigs "vm1.toml,vm2.toml,vm3.toml" +``` + +## 配置文件 + +`task.py` 支持通过 `.hvconfig.toml` 配置文件设置默认参数,命令行参数会覆盖配置文件中的设置。 + +### 配置文件示例 + +创建 `.hvconfig.toml` 文件: + +```toml +# Axvisor 配置文件 +# 平台配置 +plat = "aarch64-generic" + +# Hypervisor 特性 +features = ["net", "blk"] + +# ArceOS 参数 +arceos_args = [ + "NET=y", + "BUS=mmio", + "BLK=y", + "MEM=8g" +] + +# ArceOS 特性 +arceos_features = ["page-alloc-64g", "smp"] + +# VM 配置文件路径 +vmconfigs = [ + "configs/vms/linux-qemu-aarch64.toml", + "configs/vms/arceos-aarch64.toml" +] +``` + +### 配置优先级 + +1. **命令行参数** (最高优先级) +2. **配置文件** (.hvconfig.toml) +3. **平台配置文件** (platform/{plat}/axconfig.toml) - 仅 arch 和 package +4. **默认值** (最低优先级) + +## 高级用法 + +### 1. 自定义 QEMU 参数 + +```bash +# 添加自定义 QEMU 参数,会与架构特定参数合并 +./task.py run --arceos-args "QEMU_ARGS=\"-smp 4 -m 2G -netdev user,id=net0\"" + +# 对于 aarch64,最终的 QEMU_ARGS 会是: +# "-smp 4 -m 2G -netdev user,id=net0 -machine virtualization=on" +``` + +### 2. 多平台开发 + +```bash +# 为不同平台构建 +./task.py build --plat aarch64-generic +./task.py build --plat x86_64-qemu +./task.py build --plat riscv64-qemu + +# 手动指定架构参数 +./task.py build --plat custom-platform --arch aarch64 --package custom-package +``` + +### 3. 调试构建 + +```bash +# 启用调试特性 +./task.py build --arceos-features "debug" --arceos-args "LOG=debug,BACKTRACE=y" + +# 查看构建命令(不实际执行) +./task.py build --help +``` + +### 4. 批量配置 + +创建多个配置文件用于不同的开发场景: + +```bash +# 开发配置 +cp .hvconfig.toml .hvconfig.dev.toml +# 编辑 .hvconfig.dev.toml 添加调试参数 + +# 生产配置 +cp .hvconfig.toml .hvconfig.prod.toml +# 编辑 .hvconfig.prod.toml 优化性能参数 + +# 使用不同配置 +cp .hvconfig.dev.toml .hvconfig.toml && ./task.py build +cp .hvconfig.prod.toml .hvconfig.toml && ./task.py run +``` + +## 故障排除 + +### 常见问题 + +1. **构建失败** + + ```bash + # 清理并重新设置 + rm -rf .arceos + ./task.py setup + ./task.py build + ``` + +2. **平台配置找不到** + + ```text + 警告:平台配置文件 platform/xxx/axconfig.toml 不存在 + ``` + + - 检查平台名称是否正确 + - 确保对应的平台目录存在 + +3. **TOML 库缺失** + + ```text + 警告:需要安装 toml 库来读取配置文件 + ``` + + ```bash + pip install toml + ``` + +4. **权限问题** + + ```bash + # 确保 task.py 有执行权限 + chmod +x task.py + ``` + +### 调试技巧 + +1. **查看生成的构建命令** + + ```python + from scripts.config import AxvisorConfig + config = AxvisorConfig() + print(config.format_make_command("build")) + ``` + +2. **检查配置合并结果** + + ```python + from scripts.config import AxvisorConfig + config = AxvisorConfig(plat="aarch64-generic") + print(f"Platform: {config.plat}") + print(f"Architecture: {config.arch}") + print(f"Package: {config.package}") + print(f"Make vars: {config.get_make_variables()}") + ``` + +## 开发扩展 + +如果需要添加新的命令或功能: + +1. **添加新命令**: + - 在 `scripts/` 目录下创建新的 Python 模块 + - 在 `task.py` 中添加对应的子解析器 + - 实现 `main(args)` 函数 + +2. **添加新参数**: + - 修改 `scripts/config.py` 中的 `add_common_arguments` 函数 + - 更新 `AxvisorConfig` 类的字段 + - 更新相关的处理逻辑 + +## 相关文件 + +- `task.py` - 主入口脚本 +- `scripts/config.py` - 配置管理 +- `scripts/build.py` - 构建功能 +- `scripts/run.py` - 运行功能 +- `scripts/setup.py` - 环境设置 +- `.hvconfig.toml` - 用户配置文件 diff --git a/scripts/build.py b/scripts/build.py index 182b456b..9f887447 100644 --- a/scripts/build.py +++ b/scripts/build.py @@ -3,11 +3,12 @@ import os import subprocess import sys -from .config import merge_config, get_make_variables, format_make_command +from typing import Optional +from .config import AxvisorConfig, create_config_from_args from .setup import setup_arceos -def main(args): +def main(args) -> int: """构建项目""" print("执行 build 功能...") @@ -17,24 +18,19 @@ def main(args): print("设置 arceos 失败,无法继续构建") return 1 - # 合并配置文件和命令行参数 - args = merge_config(args) - - # 获取 make 变量和环境变量 - make_vars, env_vars = get_make_variables(args) + # 创建配置对象 + config: AxvisorConfig = create_config_from_args(args) # 构建 make 命令 - cmd = format_make_command(make_vars, env_vars, "") + cmd = config.format_make_command("") print(f"执行命令: {cmd}") try: - # 设置环境变量 - env = os.environ.copy() - env.update(env_vars) - # 执行 make 命令 - result = subprocess.run(cmd, shell=True, check=True, env=env) + result = subprocess.run( + cmd, shell=True, check=True, env=config.get_subprocess_env() + ) print("构建成功!") return 0 except subprocess.CalledProcessError as e: diff --git a/scripts/config.py b/scripts/config.py index 47a9a50b..2b539298 100644 --- a/scripts/config.py +++ b/scripts/config.py @@ -2,9 +2,240 @@ # -*- coding: utf-8 -*- import os import argparse +from typing import Dict, List, Optional, Tuple, Any +from dataclasses import dataclass -def load_config_file(config_path=".hvconfig.toml"): +@dataclass +class AxvisorConfig: + """Axvisor 配置类,存储所有合并后的配置参数""" + + # 基本配置 + plat: str = "aarch64-generic" + arch: Optional[str] = None + package: Optional[str] = None + features: List[str] = None + arceos_features: List[str] = None + arceos_args: List[str] = None + vmconfigs: List[str] = None + + def __post_init__(self): + """初始化后处理,确保列表字段不为 None""" + if self.features is None: + self.features = [] + if self.arceos_features is None: + self.arceos_features = [] + if self.arceos_args is None: + self.arceos_args = [] + if self.vmconfigs is None: + self.vmconfigs = [] + + # 如果 arch 或 package 未设置,从平台配置文件中读取 + if self.arch is None or self.package is None: + self._load_platform_config() + + def _load_platform_config(self): + """从平台文件夹中的 axconfig.toml 文件读取配置参数""" + try: + # 构建平台配置文件路径 + platform_dir = os.path.join("platform", self.plat) + config_file = os.path.join(platform_dir, "axconfig.toml") + + if not os.path.exists(config_file): + print(f"警告:平台配置文件 {config_file} 不存在") + return + + # 读取配置文件 + try: + import toml + + with open(config_file, "r", encoding="utf-8") as f: + config_data = toml.load(f) + + # 读取 arch 参数 + if self.arch is None: + arch = config_data.get("arch") + if arch: + print(f"从 {config_file} 读取到 arch: {arch}") + self.arch = arch + else: + print(f"警告:在 {config_file} 中未找到 arch 字段") + + # 读取 package 参数 + if self.package is None: + package = config_data.get("package") + if package: + print(f"从 {config_file} 读取到 package: {package}") + self.package = package + else: + print(f"警告:在 {config_file} 中未找到 package 字段") + + except ImportError: + print("警告:需要安装 toml 库来读取平台配置文件") + except Exception as e: + print(f"警告:读取平台配置文件 {config_file} 失败: {e}") + + except Exception as e: + print(f"警告:加载平台配置信息时发生错误: {e}") + + def _load_arch_from_platform(self) -> Optional[str]: + """从平台文件夹中的 axconfig.toml 文件读取 arch 参数(保持向后兼容)""" + try: + # 构建平台配置文件路径 + platform_dir = os.path.join("platform", self.plat) + config_file = os.path.join(platform_dir, "axconfig.toml") + + if not os.path.exists(config_file): + print(f"警告:平台配置文件 {config_file} 不存在") + return None + + # 读取配置文件 + try: + import toml + + with open(config_file, "r", encoding="utf-8") as f: + config_data = toml.load(f) + arch = config_data.get("arch") + if arch: + print(f"从 {config_file} 读取到 arch: {arch}") + return arch + else: + print(f"警告:在 {config_file} 中未找到 arch 字段") + return None + except ImportError: + print("警告:需要安装 toml 库来读取平台配置文件") + return None + except Exception as e: + print(f"警告:读取平台配置文件 {config_file} 失败: {e}") + return None + + except Exception as e: + print(f"警告:加载平台架构信息时发生错误: {e}") + return None + + def get_arch_specific_qemu_args(self) -> str: + """根据架构生成特定的 QEMU 参数""" + arch_qemu_args = "" + + # 根据架构添加特定的 QEMU 参数 + if self.arch == "aarch64": + arch_qemu_args = "-machine virtualization=on" + elif self.arch == "x86_64": + # x86_64 架构使用 Intel VT-x 虚拟化支持 + arch_qemu_args = "-enable-kvm -cpu host" + elif self.arch == "riscv64": + # RISC-V 架构的虚拟化参数 + arch_qemu_args = "-machine virt -cpu rv64" + + return arch_qemu_args + + def get_arch_specific_variables( + self, existing_make_vars: Optional[Dict[str, str]] = None + ) -> Dict[str, str]: + """根据架构生成特定的 make 变量,考虑已存在的变量""" + arch_vars = {} + + # 获取架构特定的 QEMU 参数 + arch_qemu_args = self.get_arch_specific_qemu_args() + + if arch_qemu_args: + # 检查是否已经存在 QEMU_ARGS + existing_qemu_args = "" + if existing_make_vars and "QEMU_ARGS" in existing_make_vars: + existing_qemu_args = existing_make_vars["QEMU_ARGS"].strip('"') + + # 合并参数:如果已存在参数,则追加;否则直接使用架构参数 + if existing_qemu_args: + combined_args = f"{existing_qemu_args} {arch_qemu_args}" + else: + combined_args = arch_qemu_args + + arch_vars["QEMU_ARGS"] = f'"{combined_args}"' + + return arch_vars + + def get_make_variables(self) -> Dict[str, str]: + """根据配置生成 make 变量""" + make_vars = {} + + # 基本的 make 变量 + make_vars["A"] = os.getcwd() + make_vars["LD_SCRIPT"] = "link.x" + + # 使用从平台配置文件读取的 package,如果没有则回退到旧的方式 + if self.package: + make_vars["MYPLAT"] = self.package + else: + make_vars["MYPLAT"] = f"axplat-{self.plat}" + + # 构建 APP_FEATURES + app_features = [f"plat-{self.plat}"] + if self.features: + app_features.extend(self.features) + make_vars["APP_FEATURES"] = ",".join(app_features) + + # ArceOS 特性 + arceos_features = ["page-alloc-64g"] + if self.arceos_features: + arceos_features.extend(self.arceos_features) + make_vars["FEATURES"] = ",".join(arceos_features) + + # ArceOS 参数 + if self.arceos_args: + for arg in self.arceos_args: + if "=" in arg: + key, value = arg.split("=", 1) + make_vars[key.strip()] = value.strip() + else: + make_vars[arg.strip()] = "y" + + # 添加架构特定的变量(传递现有的 make_vars 以便合并 QEMU_ARGS) + arch_vars = self.get_arch_specific_variables(make_vars) + make_vars.update(arch_vars) + + return make_vars + + def get_env_variables(self) -> Dict[str, str]: + """根据配置生成环境变量""" + env_vars = {} + + # 处理 vmconfigs 作为环境变量 + if self.vmconfigs: + env_vars["AXVISOR_VM_CONFIGS"] = ",".join(self.vmconfigs) + + return env_vars + + def format_make_command(self, target: str = "") -> str: + """格式化 make 命令,包含环境变量""" + make_vars = self.get_make_variables() + env_vars = self.get_env_variables() + + cmd_parts = [] + + # 添加环境变量 + for key, value in env_vars.items(): + cmd_parts.append(f"{key}={value}") + + # 添加 make 命令 + cmd_parts.extend(["make", "-C", ".arceos"]) + + # 添加 make 变量 + for key, value in make_vars.items(): + cmd_parts.append(f"{key}={value}") + + if target: + cmd_parts.append(target) + + return " ".join(cmd_parts) + + def get_subprocess_env(self) -> Dict[str, str]: + """获取用于 subprocess 的环境变量字典""" + env = os.environ.copy() + env.update(self.get_env_variables()) + return env + + +def load_config_file(config_path: str = ".hvconfig.toml") -> Dict[str, Any]: """从配置文件加载配置""" if os.path.exists(config_path): try: @@ -21,8 +252,47 @@ def load_config_file(config_path=".hvconfig.toml"): return {} -def add_common_arguments(parser): +def array_to_comma_separated(value: Any) -> str: + """将数组转换为逗号分隔的字符串""" + if isinstance(value, list): + # 过滤掉空字符串 + filtered_values = [str(v) for v in value if v] + return ",".join(filtered_values) if filtered_values else "" + return str(value) if value else "" + + +def string_or_array_to_list(value: Any) -> List[str]: + """将字符串或数组转换为字符串列表""" + if value is None: + return [] + elif isinstance(value, list): + # 过滤掉空字符串 + return [str(v) for v in value if v] + elif isinstance(value, str): + # 按逗号分割字符串,过滤掉空字符串 + return [item.strip() for item in value.split(",") if item.strip()] + else: + return [str(value)] if value else [] + + +def add_common_arguments(parser: argparse.ArgumentParser) -> None: """为解析器添加通用参数""" + parser.add_argument( + "--plat", + type=str, + default="aarch64-generic", + help="Platform (default: aarch64-generic)", + ) + parser.add_argument( + "--arch", + type=str, + help="Architecture (auto-detected from platform config if not specified)", + ) + parser.add_argument( + "--package", + type=str, + help="Platform package name (auto-detected from platform config if not specified)", + ) parser.add_argument( "--features", type=str, help="Hypervisor features (comma-separated)" ) @@ -32,88 +302,106 @@ def add_common_arguments(parser): parser.add_argument( "--arceos-args", type=str, help="ArceOS arguments (comma-separated)" ) - parser.add_argument( - "--plat", - type=str, - default="aarch64-generic", - help="Platform (default: aarch64-generic)", - ) parser.add_argument( "--vmconfigs", type=str, help="VM configuration file path (comma-separated)" ) -def array_to_comma_separated(value): - """将数组转换为逗号分隔的字符串""" - if isinstance(value, list): - # 过滤掉空字符串 - filtered_values = [str(v) for v in value if v] - return ",".join(filtered_values) if filtered_values else "" - return str(value) if value else "" +def create_config_from_args(args: argparse.Namespace) -> AxvisorConfig: + """从命令行参数和配置文件创建配置对象""" + # 加载配置文件 + config_file = load_config_file() + + # 创建配置对象 + config = AxvisorConfig() + + # 合并配置文件参数(配置文件优先级较低) + if "plat" in config_file: + config.plat = config_file["plat"] + if "arch" in config_file: + config.arch = config_file["arch"] -def merge_config(args, config_file=None): - """合并命令行参数和配置文件,命令行参数优先""" - if config_file is None: - config_file = load_config_file() + if "package" in config_file: + config.package = config_file["package"] - # 如果命令行参数未指定,则使用配置文件中的值 - if args.features is None and "features" in config_file: - args.features = array_to_comma_separated(config_file["features"]) + if "features" in config_file: + config.features = string_or_array_to_list(config_file["features"]) - if ( - getattr(args, "arceos_features", None) is None - and "arceos_features" in config_file - ): - args.arceos_features = array_to_comma_separated(config_file["arceos_features"]) + if "arceos_features" in config_file: + config.arceos_features = string_or_array_to_list(config_file["arceos_features"]) - if getattr(args, "arceos_args", None) is None and "arceos_args" in config_file: - args.arceos_args = array_to_comma_separated(config_file["arceos_args"]) + if "arceos_args" in config_file: + config.arceos_args = string_or_array_to_list(config_file["arceos_args"]) - if args.plat == "aarch64-generic" and "plat" in config_file: - args.plat = config_file["plat"] + if "vmconfigs" in config_file: + config.vmconfigs = string_or_array_to_list(config_file["vmconfigs"]) - if args.vmconfigs is None and "vmconfigs" in config_file: - args.vmconfigs = array_to_comma_separated(config_file["vmconfigs"]) + # 合并命令行参数(命令行参数优先级较高) + plat_changed = False + if args.plat and args.plat != "aarch64-generic": + config.plat = args.plat + plat_changed = True - return args + # 检查是否需要重新加载平台配置 + need_reload_config = plat_changed or config.arch is None or config.package is None + # 处理命令行的 arch 和 package 参数 + arch_from_cmdline = hasattr(args, "arch") and args.arch + package_from_cmdline = hasattr(args, "package") and args.package -def get_make_variables(args): - """根据参数生成 make 变量和环境变量""" - make_vars = {} - env_vars = {} + if arch_from_cmdline: + config.arch = args.arch - # 基本的 make 变量 - make_vars["A"] = os.getcwd() - make_vars["LD_SCRIPT"] = "link.x" + if package_from_cmdline: + config.package = args.package - if args.plat: - make_vars["MYPLAT"] = f"axplat-{args.plat}" + # 如果需要重新加载配置且没有从命令行指定所有参数,则重新加载 + if need_reload_config and not (arch_from_cmdline and package_from_cmdline): + config._load_platform_config() - make_vars["APP_FEATURES"] = f"plat-{args.plat}" if args.features: - make_vars["APP_FEATURES"] += f",{args.features}" + config.features = string_or_array_to_list(args.features) if hasattr(args, "arceos_features") and args.arceos_features: - make_vars["FEATURES"] = args.arceos_features + config.arceos_features = string_or_array_to_list(args.arceos_features) if hasattr(args, "arceos_args") and args.arceos_args: - for arg in args.arceos_args.split(","): - key, value = arg.split("=", 1) if "=" in arg else (arg, "y") - make_vars[key.strip()] = value.strip() + config.arceos_args = string_or_array_to_list(args.arceos_args) - # 处理 vmconfigs 作为环境变量 if args.vmconfigs: - env_vars["AXVISOR_VM_CONFIGS"] = args.vmconfigs + config.vmconfigs = string_or_array_to_list(args.vmconfigs) - return make_vars, env_vars + return config -def format_make_command(make_vars, env_vars=None, target=""): - """格式化 make 命令,包含环境变量""" +# 保持向后兼容的函数 +def merge_config(args: argparse.Namespace) -> AxvisorConfig: + """合并命令行参数和配置文件,返回配置对象""" + return create_config_from_args(args) + + +def get_make_variables( + args: argparse.Namespace, +) -> Tuple[Dict[str, str], Dict[str, str]]: + """保持向后兼容的函数""" + config = create_config_from_args(args) + return config.get_make_variables(), config.get_env_variables() + + +def format_make_command( + make_vars: Dict[str, str], + env_vars: Optional[Dict[str, str]] = None, + target: str = "", +) -> str: + """保持向后兼容的函数""" cmd_parts = [] + # 添加环境变量 + if env_vars: + for key, value in env_vars.items(): + cmd_parts.append(f"{key}={value}") + # 添加 make 命令 cmd_parts.extend(["make", "-C", ".arceos"]) @@ -121,7 +409,10 @@ def format_make_command(make_vars, env_vars=None, target=""): for key, value in make_vars.items(): cmd_parts.append(f"{key}={value}") - cmd_parts.append("QEMU_ARGS=\"-machine virtualization=on\"") + # 注意:QEMU_ARGS 现在应该已经包含在 make_vars 中了(如果需要的话) + # 为了向后兼容,如果 make_vars 中没有 QEMU_ARGS,则添加默认值 + if "QEMU_ARGS" not in make_vars: + cmd_parts.append('QEMU_ARGS="-machine virtualization=on"') if target: cmd_parts.append(target) diff --git a/scripts/run.py b/scripts/run.py index cc9d11d0..383a89cc 100644 --- a/scripts/run.py +++ b/scripts/run.py @@ -3,17 +3,18 @@ import os import subprocess import sys -from .config import merge_config, get_make_variables, format_make_command +from typing import Optional +from .config import AxvisorConfig, create_config_from_args from .setup import setup_arceos from . import build -def main(args): +def main(args) -> int: """运行项目""" print("执行 run 功能...") - # 合并配置文件和命令行参数 - args = merge_config(args) + # 创建配置对象 + config: AxvisorConfig = create_config_from_args(args) # 首先执行 build print("运行前先构建项目...") @@ -22,21 +23,16 @@ def main(args): print("构建失败,无法运行") return build_result - # 获取 make 变量和环境变量 - make_vars, env_vars = get_make_variables(args) - # 构建 make 命令 - cmd = format_make_command(make_vars, env_vars, "run") + cmd = config.format_make_command("run") print(f"执行命令: {cmd}") try: - # 设置环境变量 - env = os.environ.copy() - env.update(env_vars) - # 执行 make run 命令 - result = subprocess.run(cmd, shell=True, check=True, env=env) + result = subprocess.run( + cmd, shell=True, check=True, env=config.get_subprocess_env() + ) print("运行完成!") return 0 except subprocess.CalledProcessError as e: From 6a1bb996b8f2ee5b297b18c35fa463a354cc6ed6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E7=9D=BF?= Date: Fri, 15 Aug 2025 10:16:56 +0800 Subject: [PATCH 089/219] fix: update task.py command to use correct vmconfigs parameter --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 8ea7eb30..03ded055 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -50,7 +50,7 @@ jobs: cargo version export DISK_IMG="${{ github.workspace }}/disk-aarch64.img" export VM_CONFIGS="$(pwd)/configs/vms/nimbos-aarch64.toml" - ./task.py run --plat ${{ matrix.plat }} --disk $DISK_IMG --vm-configs $VM_CONFIGS --arceos-args BUS=mmio,BLK=y,MEM=8g + ./task.py run --plat ${{ matrix.plat }} --vmconfigs $VM_CONFIGS --arceos-args DISK_IMG=$DISK_IMG,BUS=mmio,BLK=y,MEM=8g test_remote: runs-on: ubuntu-latest From 1182455451b1cf73277633e484612e7cb838fe67 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E7=9D=BF?= Date: Fri, 15 Aug 2025 10:27:40 +0800 Subject: [PATCH 090/219] fix: update get_vm_dtb to handle missing VM images gracefully --- src/vmm/config.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/vmm/config.rs b/src/vmm/config.rs index 798c0389..f97e6e82 100644 --- a/src/vmm/config.rs +++ b/src/vmm/config.rs @@ -31,8 +31,8 @@ pub mod config { pub fn get_vm_dtb(vm_cfg: &AxVMConfig) -> Option<&'static [u8]> { let vm_imags = config::get_memory_images() .iter() - .find(|&v| v.id == vm_cfg.id()) - .expect("VM images is missed, Perhaps add `VM_CONFIGS=PATH/CONFIGS/FILE` command."); + .find(|&v| v.id == vm_cfg.id())?; + // .expect("VM images is missed, Perhaps add `VM_CONFIGS=PATH/CONFIGS/FILE` command."); vm_imags.dtb } From 628c876e8af544e07a3790290ad2074541ee4143 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E7=9D=BF?= Date: Fri, 15 Aug 2025 10:54:31 +0800 Subject: [PATCH 091/219] feat: add clippy, clean, and disk_img commands to task.py; implement corresponding scripts --- .github/workflows/build.yml | 3 ++- Makefile | 48 ------------------------------------- scripts/clean.py | 37 ++++++++++++++++++++++++++++ scripts/clippy.py | 42 ++++++++++++++++++++++++++++++++ scripts/config.py | 21 ++++++---------- scripts/disk_img.py | 40 +++++++++++++++++++++++++++++++ task.py | 26 ++++++++++++++++++++ 7 files changed, 154 insertions(+), 63 deletions(-) delete mode 100644 Makefile create mode 100644 scripts/clean.py create mode 100644 scripts/clippy.py create mode 100644 scripts/disk_img.py diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index f8e41320..d9daba86 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -21,9 +21,10 @@ jobs: targets: x86_64-unknown-none, riscv64gc-unknown-none-elf, aarch64-unknown-none, aarch64-unknown-none-softfloat - name: Check rust version run: rustc --version --verbose + - run: ./bootstrap.sh - name: Clippy the repo continue-on-error: ${{ matrix.rust-toolchain == 'nightly' }} - run: make ARCH=${{ matrix.arch }} clippy + run: ./task.py clippy --arch ${{ matrix.arch }} fmt: runs-on: ubuntu-latest diff --git a/Makefile b/Makefile deleted file mode 100644 index c8b59031..00000000 --- a/Makefile +++ /dev/null @@ -1,48 +0,0 @@ -# The pathes of the VM configurations -ifneq ($(VM_CONFIGS),) - export AXVISOR_VM_CONFIGS=$(VM_CONFIGS) -endif - -PLAT ?= aarch64-generic - -PLAT_DIR := $(shell pwd)/platform/$(PLAT) - -MYPLAT := axplat-$(PLAT) - -HV_FEATURES ?= - -APP_FEATURES := $(HV_FEATURES),plat-$(PLAT) - -# 默认目标 -.PHONY: default -default: setup-arceos - @echo "执行 arceos 构建..." - @$(MAKE) -C .arceos A=$(shell pwd) LD_SCRIPT=link.x MYPLAT=$(MYPLAT) \ - APP_FEATURES=$(APP_FEATURES) $(MAKEFLAGS) - -# 设置 arceos 依赖 -.PHONY: setup-arceos -setup-arceos: - @if [ ! -d ".arceos" ]; then \ - echo "正在克隆 arceos 仓库..."; \ - git clone https://github.com/arceos-hypervisor/arceos -b vmm-dev .arceos; \ - echo "arceos 仓库克隆完成"; \ - else \ - echo ".arceos 文件夹已存在"; \ - fi - -# 透传所有其他目标到 .arceos -run: setup-arceos - @$(MAKE) -C .arceos A=$(shell pwd) LD_SCRIPT=link.x MYPLAT=$(MYPLAT) \ - APP_FEATURES=$(APP_FEATURES) $@ $(MAKEFLAGS) QEMU_ARGS="-machine virtualization=on" run - -clean: setup-arceos - @$(MAKE) -C .arceos A=$(shell pwd) LD_SCRIPT=link.x $@ $(MAKEFLAGS) clean - -disk_img: setup-arceos - @$(MAKE) -C .arceos A=$(shell pwd) LD_SCRIPT=link.x $@ $(MAKEFLAGS) disk_img - -clippy: setup-arceos - @$(MAKE) -C .arceos A=$(shell pwd) LD_SCRIPT=link.x $@ $(MAKEFLAGS) clippy - -build: default \ No newline at end of file diff --git a/scripts/clean.py b/scripts/clean.py new file mode 100644 index 00000000..f99e9b24 --- /dev/null +++ b/scripts/clean.py @@ -0,0 +1,37 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +import subprocess +from .config import format_make_command_base +from .setup import setup_arceos + + +def main(args) -> int: + """清理构建产物""" + print("执行 clean 功能...") + + # 首先设置 arceos 依赖 + print("设置 arceos 依赖...") + if not setup_arceos(): + print("设置 arceos 失败,无法继续执行 clean") + return 1 + + cmd = format_make_command_base() + + cmd.append("clean") + + # 构建 make 命令 + cmd = " ".join(cmd) + + print(f"执行命令: {cmd}") + + try: + # 执行 make 命令 + subprocess.run(cmd, shell=True, check=True) + print("清理完成!") + return 0 + except subprocess.CalledProcessError as e: + print(f"清理失败,退出码: {e.returncode}") + return e.returncode + except Exception as e: + print(f"清理过程中发生错误: {e}") + return 1 diff --git a/scripts/clippy.py b/scripts/clippy.py new file mode 100644 index 00000000..48a5e272 --- /dev/null +++ b/scripts/clippy.py @@ -0,0 +1,42 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +import os +import subprocess +import sys +from typing import Optional +from .config import AxvisorConfig, create_config_from_args, format_make_command_base +from .setup import setup_arceos + + +def main(args) -> int: + """运行 clippy 代码检查""" + print("执行 clippy 功能...") + + # 首先设置 arceos 依赖 + print("设置 arceos 依赖...") + if not setup_arceos(): + print("设置 arceos 失败,无法继续执行 clippy") + return 1 + + cmd = format_make_command_base() + + cmd.append(f"ARCH={args.arch}") + + cmd.append("clippy") + + # 构建 make 命令 + cmd = " ".join(cmd) + + print(f"执行命令: {cmd}") + + try: + # 执行 make 命令 + subprocess.run(cmd, shell=True, check=True) + print("clippy 检查完成!") + return 0 + except subprocess.CalledProcessError as e: + print(f"clippy 检查失败,退出码: {e.returncode}") + return e.returncode + except Exception as e: + print(f"clippy 检查过程中发生错误: {e}") + return 1 diff --git a/scripts/config.py b/scripts/config.py index 2b539298..33e8e31f 100644 --- a/scripts/config.py +++ b/scripts/config.py @@ -158,10 +158,6 @@ def get_make_variables(self) -> Dict[str, str]: """根据配置生成 make 变量""" make_vars = {} - # 基本的 make 变量 - make_vars["A"] = os.getcwd() - make_vars["LD_SCRIPT"] = "link.x" - # 使用从平台配置文件读取的 package,如果没有则回退到旧的方式 if self.package: make_vars["MYPLAT"] = self.package @@ -389,22 +385,19 @@ def get_make_variables( return config.get_make_variables(), config.get_env_variables() +def format_make_command_base() -> List[str]: + cmd_parts = [] + cmd_parts.extend(["make", "-C", ".arceos", f"A={os.getcwd()}", "LD_SCRIPT=link.x"]) + return cmd_parts + + def format_make_command( make_vars: Dict[str, str], env_vars: Optional[Dict[str, str]] = None, target: str = "", ) -> str: """保持向后兼容的函数""" - cmd_parts = [] - - # 添加环境变量 - if env_vars: - for key, value in env_vars.items(): - cmd_parts.append(f"{key}={value}") - - # 添加 make 命令 - cmd_parts.extend(["make", "-C", ".arceos"]) - + cmd_parts = format_make_command_base() # 添加 make 变量 for key, value in make_vars.items(): cmd_parts.append(f"{key}={value}") diff --git a/scripts/disk_img.py b/scripts/disk_img.py new file mode 100644 index 00000000..84e68250 --- /dev/null +++ b/scripts/disk_img.py @@ -0,0 +1,40 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +import os +import subprocess +import sys +from typing import Optional +from .config import AxvisorConfig, create_config_from_args, format_make_command_base +from .setup import setup_arceos + + +def main(args) -> int: + """创建磁盘镜像""" + print("执行 disk_img 功能...") + + # 首先设置 arceos 依赖 + print("设置 arceos 依赖...") + if not setup_arceos(): + print("设置 arceos 失败,无法继续执行 disk_img") + return 1 + + cmd = format_make_command_base() + + cmd.append("disk_img") + + # 构建 make 命令 + cmd = " ".join(cmd) + + print(f"执行命令: {cmd}") + + try: + # 执行 make 命令 + subprocess.run(cmd, shell=True, check=True) + print("磁盘镜像创建完成!") + return 0 + except subprocess.CalledProcessError as e: + print(f"磁盘镜像创建失败,退出码: {e.returncode}") + return e.returncode + except Exception as e: + print(f"磁盘镜像创建过程中发生错误: {e}") + return 1 diff --git a/task.py b/task.py index 68395e73..d4878d98 100755 --- a/task.py +++ b/task.py @@ -21,6 +21,20 @@ def main(): run_parser = subparsers.add_parser("run", help="运行项目") add_common_arguments(run_parser) + # clippy 命令 + clippy_parser = subparsers.add_parser("clippy", help="运行 clippy 代码检查") + clippy_parser.add_argument( + "--arch", + type=str, + help="Architecture", + ) + + # clean 命令 + subparsers.add_parser("clean", help="清理构建产物") + + # disk_img 命令 + subparsers.add_parser("disk_img", help="创建磁盘镜像") + args = parser.parse_args() if args.command == "setup": @@ -35,6 +49,18 @@ def main(): mod = importlib.import_module("scripts.run") exit_code = mod.main(args) sys.exit(exit_code) + elif args.command == "clippy": + mod = importlib.import_module("scripts.clippy") + exit_code = mod.main(args) + sys.exit(exit_code) + elif args.command == "clean": + mod = importlib.import_module("scripts.clean") + exit_code = mod.main(args) + sys.exit(exit_code) + elif args.command == "disk_img": + mod = importlib.import_module("scripts.disk_img") + exit_code = mod.main(args) + sys.exit(exit_code) else: parser.print_help() From eb451a365cae25e333e629beeb4b15b473abcff4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E7=9D=BF?= Date: Fri, 15 Aug 2025 11:16:04 +0800 Subject: [PATCH 092/219] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=E6=96=87=E4=BB=B6=E4=BF=9D=E5=AD=98=E5=8A=9F=E8=83=BD?= =?UTF-8?q?=EF=BC=8C=E4=BC=98=E5=8C=96=E6=9E=84=E5=BB=BA=E5=91=BD=E4=BB=A4?= =?UTF-8?q?=E7=94=9F=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- doc/task.py-usage.md | 1 - scripts/build.py | 17 ++++++++++-- scripts/config.py | 66 +++++++++++++++++++++++++++----------------- 3 files changed, 55 insertions(+), 29 deletions(-) diff --git a/doc/task.py-usage.md b/doc/task.py-usage.md index 06fe669c..15a2da3b 100644 --- a/doc/task.py-usage.md +++ b/doc/task.py-usage.md @@ -171,7 +171,6 @@ ```bash --arceos-args "NET=y,BLK=y,MEM=8g" --arceos-args "SMP=4,DEBUG=y" ---arceos-args "QEMU_ARGS=\"-smp 4 -m 2G\"" ``` #### --vmconfigs (VM 配置文件) diff --git a/scripts/build.py b/scripts/build.py index 9f887447..f8f7e4be 100644 --- a/scripts/build.py +++ b/scripts/build.py @@ -4,14 +4,16 @@ import subprocess import sys from typing import Optional -from .config import AxvisorConfig, create_config_from_args +from .config import AxvisorConfig, create_config_from_args, save_config_to_file from .setup import setup_arceos - def main(args) -> int: """构建项目""" print("执行 build 功能...") + # 检查 .hvconfig.toml 是否存在 + config_exists = os.path.exists(".hvconfig.toml") + # 首先设置 arceos 依赖 print("设置 arceos 依赖...") if not setup_arceos(): @@ -32,6 +34,17 @@ def main(args) -> int: cmd, shell=True, check=True, env=config.get_subprocess_env() ) print("构建成功!") + + # 如果 .hvconfig.toml 不存在且有有意义的命令行参数,则创建配置文件 + if not config_exists: + print("检测到 .hvconfig.toml 不存在,根据命令行参数创建配置文件...") + if save_config_to_file(config): + print( + "配置文件创建成功,下次可以直接运行 './task.py build' 而无需指定参数" + ) + else: + print("配置文件创建失败,下次仍需手动指定参数") + return 0 except subprocess.CalledProcessError as e: print(f"构建失败,退出码: {e.returncode}") diff --git a/scripts/config.py b/scripts/config.py index 33e8e31f..687b040a 100644 --- a/scripts/config.py +++ b/scripts/config.py @@ -206,15 +206,12 @@ def format_make_command(self, target: str = "") -> str: make_vars = self.get_make_variables() env_vars = self.get_env_variables() - cmd_parts = [] + cmd_parts = format_make_command_base() # 添加环境变量 for key, value in env_vars.items(): cmd_parts.append(f"{key}={value}") - # 添加 make 命令 - cmd_parts.extend(["make", "-C", ".arceos"]) - # 添加 make 变量 for key, value in make_vars.items(): cmd_parts.append(f"{key}={value}") @@ -303,6 +300,45 @@ def add_common_arguments(parser: argparse.ArgumentParser) -> None: ) +def save_config_to_file( + config: AxvisorConfig, config_path: str = ".hvconfig.toml" +) -> bool: + """将配置保存到文件""" + try: + import toml + + # 准备配置数据 + config_data = {} + + config_data["plat"] = config.plat + + if config.features: + config_data["features"] = config.features + + if config.arceos_features: + config_data["arceos_features"] = config.arceos_features + + if config.arceos_args: + config_data["arceos_args"] = config.arceos_args + + if config.vmconfigs: + config_data["vmconfigs"] = config.vmconfigs + + # 写入文件 + with open(config_path, "w", encoding="utf-8") as f: + toml.dump(config_data, f) + + print(f"配置已保存到 {config_path}") + return True + + except ImportError: + print("警告:需要安装 toml 库来保存配置文件") + return False + except Exception as e: + print(f"警告:保存配置文件 {config_path} 失败: {e}") + return False + + def create_config_from_args(args: argparse.Namespace) -> AxvisorConfig: """从命令行参数和配置文件创建配置对象""" # 加载配置文件 @@ -389,25 +425,3 @@ def format_make_command_base() -> List[str]: cmd_parts = [] cmd_parts.extend(["make", "-C", ".arceos", f"A={os.getcwd()}", "LD_SCRIPT=link.x"]) return cmd_parts - - -def format_make_command( - make_vars: Dict[str, str], - env_vars: Optional[Dict[str, str]] = None, - target: str = "", -) -> str: - """保持向后兼容的函数""" - cmd_parts = format_make_command_base() - # 添加 make 变量 - for key, value in make_vars.items(): - cmd_parts.append(f"{key}={value}") - - # 注意:QEMU_ARGS 现在应该已经包含在 make_vars 中了(如果需要的话) - # 为了向后兼容,如果 make_vars 中没有 QEMU_ARGS,则添加默认值 - if "QEMU_ARGS" not in make_vars: - cmd_parts.append('QEMU_ARGS="-machine virtualization=on"') - - if target: - cmd_parts.append(target) - - return " ".join(cmd_parts) From cb9edac448618fbee655c41b00cf8bd618ecdf0a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E7=9D=BF?= Date: Fri, 15 Aug 2025 11:57:42 +0800 Subject: [PATCH 093/219] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=20disk=5Fimg?= =?UTF-8?q?=20=E5=91=BD=E4=BB=A4=E7=9A=84=20--image=20=E5=8F=82=E6=95=B0?= =?UTF-8?q?=E4=BB=A5=E6=94=AF=E6=8C=81=E6=8C=87=E5=AE=9A=E7=A3=81=E7=9B=98?= =?UTF-8?q?=E9=95=9C=E5=83=8F=E8=B7=AF=E5=BE=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../workflows/actions/setup-nimbos-guest-image/action.yml | 2 +- scripts/disk_img.py | 4 ++++ task.py | 8 +++++++- 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/.github/workflows/actions/setup-nimbos-guest-image/action.yml b/.github/workflows/actions/setup-nimbos-guest-image/action.yml index 3eaf4433..9c01fb2a 100644 --- a/.github/workflows/actions/setup-nimbos-guest-image/action.yml +++ b/.github/workflows/actions/setup-nimbos-guest-image/action.yml @@ -59,7 +59,7 @@ runs: - name: Create Image shell: bash run: | - make DISK_IMG=${{ inputs.disk-path }} disk_img + ./task.py disk_img --image ${{ inputs.disk-path }} sudo mkdir -p img sudo chown root:root temp/* sudo mount ${{ inputs.disk-path }} img diff --git a/scripts/disk_img.py b/scripts/disk_img.py index 84e68250..cd18e0e9 100644 --- a/scripts/disk_img.py +++ b/scripts/disk_img.py @@ -20,6 +20,10 @@ def main(args) -> int: cmd = format_make_command_base() + if args.image: + # 如果指定了镜像路径和文件名,则添加到命令中 + cmd.append(f"DISK_IMG={args.image}") + cmd.append("disk_img") # 构建 make 命令 diff --git a/task.py b/task.py index d4878d98..f1c3081b 100755 --- a/task.py +++ b/task.py @@ -33,7 +33,13 @@ def main(): subparsers.add_parser("clean", help="清理构建产物") # disk_img 命令 - subparsers.add_parser("disk_img", help="创建磁盘镜像") + disk_parser = subparsers.add_parser("disk_img", help="创建磁盘镜像") + disk_parser.add_argument( + "--image", + type=str, + default="", + help="磁盘镜像路径和文件名", + ) args = parser.parse_args() From b82bd89f839ad0ebf77ac205bda2c72242c499f6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E7=9D=BF?= Date: Mon, 18 Aug 2025 09:11:00 +0800 Subject: [PATCH 094/219] update --- Cargo.lock | 142 ++++++++++-- Cargo.toml | 9 +- platform/x86-qemu-q35/Cargo.toml | 16 ++ platform/x86-qemu-q35/axconfig.toml | 62 ++++++ platform/x86-qemu-q35/src/lib.rs | 3 + scripts/config.py | 39 +--- src/hal.rs | 328 ++++++++++++++-------------- src/main.rs | 2 + 8 files changed, 379 insertions(+), 222 deletions(-) create mode 100644 platform/x86-qemu-q35/Cargo.toml create mode 100644 platform/x86-qemu-q35/axconfig.toml create mode 100644 platform/x86-qemu-q35/src/lib.rs diff --git a/Cargo.lock b/Cargo.lock index 0ba52923..38e2fa37 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -215,12 +215,12 @@ version = "0.1.0" source = "git+https://github.com/arceos-hypervisor/arm_vcpu.git?branch=dev-irq#c2ba6e5ba49925cddbe869b17b56e698c67c572f" dependencies = [ "aarch64-cpu", - "axaddrspace", + "axaddrspace 0.1.0 (git+https://github.com/arceos-hypervisor/axaddrspace.git)", "axcpu", "axdevice_base", "axerrno", "axvcpu", - "axvisor_api", + "axvisor_api 0.1.0 (git+https://github.com/arceos-hypervisor/axvisor_api.git)", "log", "numeric-enum-macro", "percpu", @@ -235,10 +235,10 @@ source = "git+https://github.com/arceos-hypervisor/arm_vgic.git#58230bf19ac69fc5 dependencies = [ "aarch64-cpu", "aarch64_sysreg", - "axaddrspace", + "axaddrspace 0.1.0 (git+https://github.com/arceos-hypervisor/axaddrspace.git)", "axdevice_base", "axerrno", - "axvisor_api", + "axvisor_api 0.1.0 (git+https://github.com/arceos-hypervisor/axvisor_api.git)", "bitmaps", "log", "memory_addr", @@ -275,6 +275,26 @@ version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" +[[package]] +name = "axaddrspace" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0bac152673e0cc27886c9fed1062e8a82e95a1bebb76c9b925f42bd4f412356" +dependencies = [ + "axerrno", + "bit_field", + "bitflags 2.9.1", + "cfg-if", + "lazyinit", + "log", + "memory_addr", + "memory_set", + "numeric-enum-macro", + "page_table_entry", + "page_table_multiarch", + "x86", +] + [[package]] name = "axaddrspace" version = "0.1.0" @@ -366,7 +386,7 @@ version = "0.1.0" source = "git+https://github.com/arceos-hypervisor/axdevice.git#17d2b013066d5a7b4e1b1d6b72b025e40b83dcae" dependencies = [ "arm_vgic", - "axaddrspace", + "axaddrspace 0.1.0 (git+https://github.com/arceos-hypervisor/axaddrspace.git)", "axdevice_base", "axerrno", "axvmconfig", @@ -382,7 +402,7 @@ name = "axdevice_base" version = "0.1.0" source = "git+https://github.com/arceos-hypervisor/axdevice_crates.git#a474580797920daebb032870cc3f8ff4edbe88ec" dependencies = [ - "axaddrspace", + "axaddrspace 0.1.0 (git+https://github.com/arceos-hypervisor/axaddrspace.git)", "axerrno", "axvmconfig", "cfg-if", @@ -537,7 +557,7 @@ dependencies = [ "axplat-aarch64-qemu-virt", "axplat-loongarch64-qemu-virt", "axplat-riscv64-qemu-virt", - "axplat-x86-pc", + "axplat-x86-pc 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "cfg-if", "heapless", "kernel_guard", @@ -632,6 +652,20 @@ dependencies = [ "memory_addr", ] +[[package]] +name = "axplat" +version = "0.1.0" +source = "git+https://github.com/arceos-org/axplat_crates#083d2f70c6e5f4333a95d3b29fcafd1334c3c932" +dependencies = [ + "axplat-macros 0.1.0 (git+https://github.com/arceos-org/axplat_crates)", + "bitflags 2.9.1", + "const-str", + "crate_interface", + "handler_table", + "kspin", + "memory_addr", +] + [[package]] name = "axplat-aarch64-dyn" version = "0.1.0" @@ -738,6 +772,16 @@ dependencies = [ "syn 2.0.104", ] +[[package]] +name = "axplat-macros" +version = "0.1.0" +source = "git+https://github.com/arceos-org/axplat_crates#083d2f70c6e5f4333a95d3b29fcafd1334c3c932" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.104", +] + [[package]] name = "axplat-riscv64-qemu-virt" version = "0.1.0" @@ -776,6 +820,38 @@ dependencies = [ "x86_64", ] +[[package]] +name = "axplat-x86-pc" +version = "0.1.1" +source = "git+https://github.com/arceos-org/axplat_crates#083d2f70c6e5f4333a95d3b29fcafd1334c3c932" +dependencies = [ + "axconfig-macros", + "axcpu", + "axplat 0.1.0 (git+https://github.com/arceos-org/axplat_crates)", + "bitflags 2.9.1", + "heapless", + "int_ratio", + "kspin", + "lazyinit", + "log", + "multiboot", + "percpu", + "raw-cpuid 11.5.0", + "uart_16550", + "x2apic", + "x86", + "x86_64", +] + +[[package]] +name = "axplat-x86-qemu-q35" +version = "0.1.0" +dependencies = [ + "axplat-x86-pc 0.1.1 (git+https://github.com/arceos-org/axplat_crates)", + "serde", + "toml 0.8.23", +] + [[package]] name = "axruntime" version = "0.2.0" @@ -854,9 +930,9 @@ name = "axvcpu" version = "0.1.0" source = "git+https://github.com/arceos-hypervisor/axvcpu.git#0dae892519655342b8c7918460a6208d8c251526" dependencies = [ - "axaddrspace", + "axaddrspace 0.1.0 (git+https://github.com/arceos-hypervisor/axaddrspace.git)", "axerrno", - "axvisor_api", + "axvisor_api 0.1.0 (git+https://github.com/arceos-hypervisor/axvisor_api.git)", "memory_addr", "percpu", ] @@ -865,16 +941,17 @@ dependencies = [ name = "axvisor" version = "0.1.0" dependencies = [ - "axaddrspace", + "axaddrspace 0.1.0 (git+https://github.com/arceos-hypervisor/axaddrspace.git)", "axconfig", "axdevice", "axdevice_base", "axerrno", "axhvc", "axplat-aarch64-generic", + "axplat-x86-qemu-q35", "axstd", "axvcpu", - "axvisor_api", + "axvisor_api 0.1.0 (git+https://github.com/arceos-hypervisor/axvisor_api.git)", "axvm", "bitflags 2.9.1", "cfg-if", @@ -897,17 +974,41 @@ dependencies = [ "toml 0.8.14", ] +[[package]] +name = "axvisor_api" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa7233b2a1338dc06a80e2779b572b4df02007ea128ef7b235b66fc3eeac0ca6" +dependencies = [ + "axaddrspace 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "axvisor_api_proc 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "crate_interface", + "memory_addr", +] + [[package]] name = "axvisor_api" version = "0.1.0" source = "git+https://github.com/arceos-hypervisor/axvisor_api.git#4102b0a4d8bce0eef45959ad82fb932aee362841" dependencies = [ - "axaddrspace", - "axvisor_api_proc", + "axaddrspace 0.1.0 (git+https://github.com/arceos-hypervisor/axaddrspace.git)", + "axvisor_api_proc 0.1.0 (git+https://github.com/arceos-hypervisor/axvisor_api.git)", "crate_interface", "memory_addr", ] +[[package]] +name = "axvisor_api_proc" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10a64eb4410ae8357ac8c01c2fb201e57d7aeeb5436ed4d0f5774bfa11cc5902" +dependencies = [ + "proc-macro-crate", + "proc-macro2", + "quote", + "syn 2.0.104", +] + [[package]] name = "axvisor_api_proc" version = "0.1.0" @@ -926,7 +1027,7 @@ source = "git+https://github.com/arceos-hypervisor/axvm.git?branch=dev-irq#5c0a2 dependencies = [ "arm_vcpu", "arm_vgic", - "axaddrspace", + "axaddrspace 0.1.0 (git+https://github.com/arceos-hypervisor/axaddrspace.git)", "axdevice", "axdevice_base", "axerrno", @@ -2822,10 +2923,10 @@ name = "riscv_vcpu" version = "0.1.0" source = "git+https://github.com/arceos-hypervisor/riscv_vcpu.git#f25f274f88376c2b4a80dcb5549f46a9b4b10559" dependencies = [ - "axaddrspace", + "axaddrspace 0.1.0 (git+https://github.com/arceos-hypervisor/axaddrspace.git)", "axerrno", "axvcpu", - "axvisor_api", + "axvisor_api 0.1.0 (git+https://github.com/arceos-hypervisor/axvisor_api.git)", "bit_field", "bitflags 2.9.1", "cfg-if", @@ -3969,13 +4070,12 @@ dependencies = [ [[package]] name = "x86_vcpu" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/x86_vcpu.git#edc1ac095ae7a9359d76e227af7f8f1b360b441c" dependencies = [ - "axaddrspace", + "axaddrspace 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "axdevice_base", "axerrno", "axvcpu", - "axvisor_api", + "axvisor_api 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "bit_field", "bitflags 2.9.1", "cfg-if", @@ -3997,10 +4097,10 @@ name = "x86_vlapic" version = "0.1.0" source = "git+https://github.com/arceos-hypervisor/x86_vlapic.git#1bcf9feace828cdee555620a1c8ca5408129f1eb" dependencies = [ - "axaddrspace", + "axaddrspace 0.1.0 (git+https://github.com/arceos-hypervisor/axaddrspace.git)", "axdevice_base", "axerrno", - "axvisor_api", + "axvisor_api 0.1.0 (git+https://github.com/arceos-hypervisor/axvisor_api.git)", "bit", "log", "memory_addr", diff --git a/Cargo.toml b/Cargo.toml index 79ed186f..9c65f9aa 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -13,7 +13,8 @@ version = "0.1.0" fs = ["axstd/fs"] hv = [] irq = [] -plat-aarch64-generic = ["axplat-aarch64-generic", "fs", "hv", "irq"] +plat-aarch64-generic = ["axplat-aarch64-generic", "fs", "hv", "irq", "axstd/driver-dyn"] +plat-x86-qemu-q35 = ["axplat-x86-qemu-q35", "fs", "hv", "irq"] [dependencies] bitflags = "2.2" @@ -28,12 +29,10 @@ timer_list = "0.1.0" # System dependent modules provided by ArceOS. axstd = {git = "https://github.com/arceos-hypervisor/arceos.git", branch = "vmm-dev", features = [ -# axstd = {git = "https://github.com/arceos-hypervisor/arceos.git", branch = "vmm-test", features = [ "alloc", "paging", "irq", "multitask", - "driver-dyn", "smp", "page-alloc-64g", ]} @@ -58,8 +57,8 @@ axdevice_base = {git = "https://github.com/arceos-hypervisor/axdevice_crates.git axvisor_api = {git = "https://github.com/arceos-hypervisor/axvisor_api.git"} # platform - axplat-aarch64-generic = {path = "platform/aarch64-generic", optional = true} +axplat-x86-qemu-q35 = {path = "platform/x86-qemu-q35", optional = true} [build-dependencies] axconfig = {git = "https://github.com/arceos-hypervisor/arceos.git", branch = "vmm-dev"} @@ -69,5 +68,5 @@ syn = "2.0" toml = {git = "https://github.com/arceos-hypervisor/toml.git", branch = "no_std"} [patch.crates-io.axcpu] +branch = "vmm" git = "https://github.com/arceos-hypervisor/axcpu" -branch = "vmm" \ No newline at end of file diff --git a/platform/x86-qemu-q35/Cargo.toml b/platform/x86-qemu-q35/Cargo.toml new file mode 100644 index 00000000..e65ac1cf --- /dev/null +++ b/platform/x86-qemu-q35/Cargo.toml @@ -0,0 +1,16 @@ +[package] +edition = "2024" +name = "axplat-x86-qemu-q35" +version = "0.1.0" + +[features] +fp-simd = ["axplat-x86-pc/fp-simd"] +reboot-on-system-off = ["axplat-x86-pc/reboot_on_system_off"] +rtc = ["axplat-x86-pc/x86_rtc"] + +[dependencies] +axplat-x86-pc = {git = "https://github.com/arceos-org/axplat_crates", features=["irq", "smp"]} + +[build-dependencies] +serde = {version = "1.0", features = ["derive"]} +toml = "0.8" diff --git a/platform/x86-qemu-q35/axconfig.toml b/platform/x86-qemu-q35/axconfig.toml new file mode 100644 index 00000000..5db712b0 --- /dev/null +++ b/platform/x86-qemu-q35/axconfig.toml @@ -0,0 +1,62 @@ +# Architecture identifier. +arch = "x86_64" # str +# Platform identifier. +platform = "x86-pc" # str +# Platform Package. +package = "axplat-x86-pc" # str + +# +# Platform configs +# +[plat] +# Number of CPUs. +cpu-num = 1 # uint +# Base address of the whole physical memory. +phys-memory-base = 0 # uint +# Size of the whole physical memory. (128M) +phys-memory-size = 0x800_0000 # uint +# Base physical address of the kernel image. +kernel-base-paddr = 0x20_0000 # uint +# Base virtual address of the kernel image. +kernel-base-vaddr = "0xffff_8000_0020_0000" # uint +# Linear mapping offset, for quick conversions between physical and virtual +# addresses. +phys-virt-offset = "0xffff_8000_0000_0000" # uint +# Offset of bus address and phys address. some boards, the bus address is +# different from the physical address. +phys-bus-offset = 0 # uint +# Kernel address space base. +kernel-aspace-base = "0xffff_8000_0000_0000" # uint +# Kernel address space size. +kernel-aspace-size = "0x0000_7fff_ffff_f000" # uint +# Stack size on bootstrapping. (256K) +boot-stack-size = 0x40000 # uint + +# +# Device specifications +# +[devices] +# MMIO regions with format (`base_paddr`, `size`). +mmio-regions = [ + [0xb000_0000, 0x1000_0000], # PCI config space + [0xfe00_0000, 0xc0_0000], # PCI devices + [0x7000000000, 0x4000], # PCI devices + [0xfec0_0000, 0x1000], # IO APIC + [0xfed0_0000, 0x1000], # HPET + [0xfee0_0000, 0x1000], # Local APIC + [0x380000000000, 0x4000] # PCI devices +] # [(uint, uint)] + +# VirtIO MMIO regions with format (`base_paddr`, `size`). +virtio-mmio-regions = [] # [(uint, uint)] +# Base physical address of the PCIe ECAM space (should read from ACPI 'MCFG' table). +pci-ecam-base = 0xb000_0000 # uint +# End PCI bus number. +pci-bus-end = 0xff # uint +# PCI device memory ranges (not used on x86). +pci-ranges = [] # [(uint, uint)] + +# Timer interrupt frequencyin Hz. (4.0GHz) +timer-frequency = 4_000_000_000 # uint +# Timer interrupt num. +timer-irq = 0xf0 # uint diff --git a/platform/x86-qemu-q35/src/lib.rs b/platform/x86-qemu-q35/src/lib.rs new file mode 100644 index 00000000..69f30886 --- /dev/null +++ b/platform/x86-qemu-q35/src/lib.rs @@ -0,0 +1,3 @@ +#![no_std] + +extern crate axplat_x86_pc; diff --git a/scripts/config.py b/scripts/config.py index 687b040a..a4c623f5 100644 --- a/scripts/config.py +++ b/scripts/config.py @@ -30,10 +30,6 @@ def __post_init__(self): if self.vmconfigs is None: self.vmconfigs = [] - # 如果 arch 或 package 未设置,从平台配置文件中读取 - if self.arch is None or self.package is None: - self._load_platform_config() - def _load_platform_config(self): """从平台文件夹中的 axconfig.toml 文件读取配置参数""" try: @@ -122,7 +118,7 @@ def get_arch_specific_qemu_args(self) -> str: arch_qemu_args = "-machine virtualization=on" elif self.arch == "x86_64": # x86_64 架构使用 Intel VT-x 虚拟化支持 - arch_qemu_args = "-enable-kvm -cpu host" + arch_qemu_args = "" elif self.arch == "riscv64": # RISC-V 架构的虚拟化参数 arch_qemu_args = "-machine virt -cpu rv64" @@ -158,6 +154,9 @@ def get_make_variables(self) -> Dict[str, str]: """根据配置生成 make 变量""" make_vars = {} + if self.arch == "aarch64": + make_vars["LD_SCRIPT"] = "link.x" + # 使用从平台配置文件读取的 package,如果没有则回退到旧的方式 if self.package: make_vars["MYPLAT"] = self.package @@ -273,7 +272,6 @@ def add_common_arguments(parser: argparse.ArgumentParser) -> None: parser.add_argument( "--plat", type=str, - default="aarch64-generic", help="Platform (default: aarch64-generic)", ) parser.add_argument( @@ -351,12 +349,6 @@ def create_config_from_args(args: argparse.Namespace) -> AxvisorConfig: if "plat" in config_file: config.plat = config_file["plat"] - if "arch" in config_file: - config.arch = config_file["arch"] - - if "package" in config_file: - config.package = config_file["package"] - if "features" in config_file: config.features = string_or_array_to_list(config_file["features"]) @@ -370,27 +362,10 @@ def create_config_from_args(args: argparse.Namespace) -> AxvisorConfig: config.vmconfigs = string_or_array_to_list(config_file["vmconfigs"]) # 合并命令行参数(命令行参数优先级较高) - plat_changed = False - if args.plat and args.plat != "aarch64-generic": + if args.plat: config.plat = args.plat - plat_changed = True - - # 检查是否需要重新加载平台配置 - need_reload_config = plat_changed or config.arch is None or config.package is None - - # 处理命令行的 arch 和 package 参数 - arch_from_cmdline = hasattr(args, "arch") and args.arch - package_from_cmdline = hasattr(args, "package") and args.package - - if arch_from_cmdline: - config.arch = args.arch - - if package_from_cmdline: - config.package = args.package - # 如果需要重新加载配置且没有从命令行指定所有参数,则重新加载 - if need_reload_config and not (arch_from_cmdline and package_from_cmdline): - config._load_platform_config() + config._load_platform_config() if args.features: config.features = string_or_array_to_list(args.features) @@ -423,5 +398,5 @@ def get_make_variables( def format_make_command_base() -> List[str]: cmd_parts = [] - cmd_parts.extend(["make", "-C", ".arceos", f"A={os.getcwd()}", "LD_SCRIPT=link.x"]) + cmd_parts.extend(["make", "-C", ".arceos", f"A={os.getcwd()}"]) return cmd_parts diff --git a/src/hal.rs b/src/hal.rs index a51124d9..f6c3d7f6 100644 --- a/src/hal.rs +++ b/src/hal.rs @@ -322,167 +322,167 @@ mod host_api_impl { } } -/// Reads and returns the value of the given aarch64 system register. -macro_rules! read_sysreg { - ($name:ident) => { - { - let mut value: u64; - unsafe{::core::arch::asm!( - concat!("mrs {value:x}, ", ::core::stringify!($name)), - value = out(reg) value, - options(nomem, nostack), - );} - value - } - } -} - -/// Writes the given value to the given aarch64 system register. -macro_rules! write_sysreg { - ($name:ident, $value:expr) => { - { - let v: u64 = $value; - unsafe{::core::arch::asm!( - concat!("msr ", ::core::stringify!($name), ", {value:x}"), - value = in(reg) v, - options(nomem, nostack), - )} - } - } -} - -pub fn inject_interrupt(vector: usize) { - // mask - const LR_VIRTIRQ_MASK: usize = (1 << 32) - 1; - const LR_STATE_MASK: u64 = 0x3 << 62; // bits [63:62] - const LR_STATE_PENDING: u64 = 0x1 << 62; // pending state - const LR_STATE_ACTIVE: u64 = 0x2 << 62; // active state - - debug!("Injecting virtual interrupt: vector={}", vector); - - let elsr: u64 = read_sysreg!(ich_elrsr_el2); - let vtr = read_sysreg!(ich_vtr_el2) as usize; - let lr_num: usize = (vtr & 0xf) + 1; - let mut free_lr = -1 as isize; - - // First, check if this interrupt is already pending/active - for i in 0..lr_num { - // find a free list register - if (1 << i) & elsr > 0 { - if free_lr == -1 { - free_lr = i as isize; - } - continue; - } - let lr_val = read_lr(i); - // if a virtual interrupt is enabled and equals to the physical interrupt irq_id - if (lr_val as usize & LR_VIRTIRQ_MASK) == vector { - let state = lr_val & LR_STATE_MASK; - if state == LR_STATE_PENDING || state == LR_STATE_ACTIVE { - debug!( - "virtual irq {} already pending/active in LR{}, skipping", - vector, i - ); - return; - } - } - } - - debug!("use free lr {} to inject irq {}", free_lr, vector); - - if free_lr == -1 { - warn!( - "No free list register to inject IRQ {}, checking ICH_HCR_EL2", - vector - ); - // Check if virtual interrupt interface is enabled - let ich_hcr = read_sysreg!(ich_hcr_el2); - debug!("ICH_HCR_EL2: 0x{:x}", ich_hcr); - - // Try to find and reuse an inactive LR - for i in 0..lr_num { - let lr_val = read_lr(i); - let state = lr_val & LR_STATE_MASK; - if state == 0 { - // inactive state - debug!("Reusing inactive LR{} for IRQ {}", i, vector); - free_lr = i as isize; - break; - } - } - - if free_lr == -1 { - panic!("No free list register to inject IRQ {}", vector); - } - } - - let mut val = vector as u64; // vector - val |= 1 << 60; // group 1 - val |= 1 << 62; // state pending - // hardware interrupt not supported - write_lr(free_lr as usize, val); - - // Ensure the virtual interrupt interface is enabled - // let ich_hcr = read_sysreg!(ich_hcr_el2); - // if (ich_hcr & 1) == 0 { - // // Check EN bit - // warn!("Virtual interrupt interface not enabled, enabling now"); - // write_sysreg!(ich_hcr_el2, ich_hcr | 1); - // } - - debug!( - "Virtual interrupt {} injected successfully in LR{}", - vector, free_lr - ); -} - -fn read_lr(id: usize) -> u64 { - let id = id as u64; - match id { - //TODO get lr size from gic reg - 0 => read_sysreg!(ich_lr0_el2), - 1 => read_sysreg!(ich_lr1_el2), - 2 => read_sysreg!(ich_lr2_el2), - 3 => read_sysreg!(ich_lr3_el2), - 4 => read_sysreg!(ich_lr4_el2), - 5 => read_sysreg!(ich_lr5_el2), - 6 => read_sysreg!(ich_lr6_el2), - 7 => read_sysreg!(ich_lr7_el2), - 8 => read_sysreg!(ich_lr8_el2), - 9 => read_sysreg!(ich_lr9_el2), - 10 => read_sysreg!(ich_lr10_el2), - 11 => read_sysreg!(ich_lr11_el2), - 12 => read_sysreg!(ich_lr12_el2), - 13 => read_sysreg!(ich_lr13_el2), - 14 => read_sysreg!(ich_lr14_el2), - 15 => read_sysreg!(ich_lr15_el2), - _ => { - panic!("invalid lr id {}", id); - } - } -} - -fn write_lr(id: usize, val: u64) { - let id = id as u64; - match id { - 0 => write_sysreg!(ich_lr0_el2, val), - 1 => write_sysreg!(ich_lr1_el2, val), - 2 => write_sysreg!(ich_lr2_el2, val), - 3 => write_sysreg!(ich_lr3_el2, val), - 4 => write_sysreg!(ich_lr4_el2, val), - 5 => write_sysreg!(ich_lr5_el2, val), - 6 => write_sysreg!(ich_lr6_el2, val), - 7 => write_sysreg!(ich_lr7_el2, val), - 8 => write_sysreg!(ich_lr8_el2, val), - 9 => write_sysreg!(ich_lr9_el2, val), - 10 => write_sysreg!(ich_lr10_el2, val), - 11 => write_sysreg!(ich_lr11_el2, val), - 12 => write_sysreg!(ich_lr12_el2, val), - 13 => write_sysreg!(ich_lr13_el2, val), - 14 => write_sysreg!(ich_lr14_el2, val), - 15 => write_sysreg!(ich_lr15_el2, val), - _ => { - panic!("invalid lr id {}", id); - } - } -} +// /// Reads and returns the value of the given aarch64 system register. +// macro_rules! read_sysreg { +// ($name:ident) => { +// { +// let mut value: u64; +// unsafe{::core::arch::asm!( +// concat!("mrs {value:x}, ", ::core::stringify!($name)), +// value = out(reg) value, +// options(nomem, nostack), +// );} +// value +// } +// } +// } + +// /// Writes the given value to the given aarch64 system register. +// macro_rules! write_sysreg { +// ($name:ident, $value:expr) => { +// { +// let v: u64 = $value; +// unsafe{::core::arch::asm!( +// concat!("msr ", ::core::stringify!($name), ", {value:x}"), +// value = in(reg) v, +// options(nomem, nostack), +// )} +// } +// } +// } + +// pub fn inject_interrupt(vector: usize) { +// // mask +// const LR_VIRTIRQ_MASK: usize = (1 << 32) - 1; +// const LR_STATE_MASK: u64 = 0x3 << 62; // bits [63:62] +// const LR_STATE_PENDING: u64 = 0x1 << 62; // pending state +// const LR_STATE_ACTIVE: u64 = 0x2 << 62; // active state + +// debug!("Injecting virtual interrupt: vector={}", vector); + +// let elsr: u64 = read_sysreg!(ich_elrsr_el2); +// let vtr = read_sysreg!(ich_vtr_el2) as usize; +// let lr_num: usize = (vtr & 0xf) + 1; +// let mut free_lr = -1 as isize; + +// // First, check if this interrupt is already pending/active +// for i in 0..lr_num { +// // find a free list register +// if (1 << i) & elsr > 0 { +// if free_lr == -1 { +// free_lr = i as isize; +// } +// continue; +// } +// let lr_val = read_lr(i); +// // if a virtual interrupt is enabled and equals to the physical interrupt irq_id +// if (lr_val as usize & LR_VIRTIRQ_MASK) == vector { +// let state = lr_val & LR_STATE_MASK; +// if state == LR_STATE_PENDING || state == LR_STATE_ACTIVE { +// debug!( +// "virtual irq {} already pending/active in LR{}, skipping", +// vector, i +// ); +// return; +// } +// } +// } + +// debug!("use free lr {} to inject irq {}", free_lr, vector); + +// if free_lr == -1 { +// warn!( +// "No free list register to inject IRQ {}, checking ICH_HCR_EL2", +// vector +// ); +// // Check if virtual interrupt interface is enabled +// let ich_hcr = read_sysreg!(ich_hcr_el2); +// debug!("ICH_HCR_EL2: 0x{:x}", ich_hcr); + +// // Try to find and reuse an inactive LR +// for i in 0..lr_num { +// let lr_val = read_lr(i); +// let state = lr_val & LR_STATE_MASK; +// if state == 0 { +// // inactive state +// debug!("Reusing inactive LR{} for IRQ {}", i, vector); +// free_lr = i as isize; +// break; +// } +// } + +// if free_lr == -1 { +// panic!("No free list register to inject IRQ {}", vector); +// } +// } + +// let mut val = vector as u64; // vector +// val |= 1 << 60; // group 1 +// val |= 1 << 62; // state pending +// // hardware interrupt not supported +// write_lr(free_lr as usize, val); + +// // Ensure the virtual interrupt interface is enabled +// // let ich_hcr = read_sysreg!(ich_hcr_el2); +// // if (ich_hcr & 1) == 0 { +// // // Check EN bit +// // warn!("Virtual interrupt interface not enabled, enabling now"); +// // write_sysreg!(ich_hcr_el2, ich_hcr | 1); +// // } + +// debug!( +// "Virtual interrupt {} injected successfully in LR{}", +// vector, free_lr +// ); +// } + +// fn read_lr(id: usize) -> u64 { +// let id = id as u64; +// match id { +// //TODO get lr size from gic reg +// 0 => read_sysreg!(ich_lr0_el2), +// 1 => read_sysreg!(ich_lr1_el2), +// 2 => read_sysreg!(ich_lr2_el2), +// 3 => read_sysreg!(ich_lr3_el2), +// 4 => read_sysreg!(ich_lr4_el2), +// 5 => read_sysreg!(ich_lr5_el2), +// 6 => read_sysreg!(ich_lr6_el2), +// 7 => read_sysreg!(ich_lr7_el2), +// 8 => read_sysreg!(ich_lr8_el2), +// 9 => read_sysreg!(ich_lr9_el2), +// 10 => read_sysreg!(ich_lr10_el2), +// 11 => read_sysreg!(ich_lr11_el2), +// 12 => read_sysreg!(ich_lr12_el2), +// 13 => read_sysreg!(ich_lr13_el2), +// 14 => read_sysreg!(ich_lr14_el2), +// 15 => read_sysreg!(ich_lr15_el2), +// _ => { +// panic!("invalid lr id {}", id); +// } +// } +// } + +// fn write_lr(id: usize, val: u64) { +// let id = id as u64; +// match id { +// 0 => write_sysreg!(ich_lr0_el2, val), +// 1 => write_sysreg!(ich_lr1_el2, val), +// 2 => write_sysreg!(ich_lr2_el2, val), +// 3 => write_sysreg!(ich_lr3_el2, val), +// 4 => write_sysreg!(ich_lr4_el2, val), +// 5 => write_sysreg!(ich_lr5_el2, val), +// 6 => write_sysreg!(ich_lr6_el2, val), +// 7 => write_sysreg!(ich_lr7_el2, val), +// 8 => write_sysreg!(ich_lr8_el2, val), +// 9 => write_sysreg!(ich_lr9_el2, val), +// 10 => write_sysreg!(ich_lr10_el2, val), +// 11 => write_sysreg!(ich_lr11_el2, val), +// 12 => write_sysreg!(ich_lr12_el2, val), +// 13 => write_sysreg!(ich_lr13_el2, val), +// 14 => write_sysreg!(ich_lr14_el2, val), +// 15 => write_sysreg!(ich_lr15_el2, val), +// _ => { +// panic!("invalid lr id {}", id); +// } +// } +// } diff --git a/src/main.rs b/src/main.rs index 936d2f7f..51957ccc 100644 --- a/src/main.rs +++ b/src/main.rs @@ -10,6 +10,8 @@ extern crate axstd as std; #[cfg(feature = "plat-aarch64-generic")] extern crate axplat_aarch64_generic; +#[cfg(feature = "plat-x86-qemu-q35")] +extern crate axplat_x86_qemu_q35; mod hal; mod logo; From bdd06932c4a4a3394293c494bd910da8d8cf7756 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E7=9D=BF?= Date: Mon, 18 Aug 2025 10:09:00 +0800 Subject: [PATCH 095/219] update --- Cargo.lock | 568 +++++++++++++++++++------------ Cargo.toml | 8 +- platform/x86-qemu-q35/Cargo.toml | 2 +- 3 files changed, 358 insertions(+), 220 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 38e2fa37..2a6cfade 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -82,9 +82,9 @@ checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" [[package]] name = "anstream" -version = "0.6.19" +version = "0.6.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "301af1932e46185686725e0fad2f8f2aa7da69dd70bf6ecc44d6b703844a3933" +checksum = "3ae563653d1938f79b1ab1b5e668c87c76a9930414574a6583a7b7e11a8e6192" dependencies = [ "anstyle", "anstyle-parse", @@ -112,22 +112,22 @@ dependencies = [ [[package]] name = "anstyle-query" -version = "1.1.3" +version = "1.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c8bdeb6047d8983be085bab0ba1472e6dc604e7041dbf6fcd5e71523014fae9" +checksum = "9e231f6134f61b71076a3eab506c379d4f36122f2af15a9ff04415ea4c3339e2" dependencies = [ - "windows-sys 0.59.0", + "windows-sys 0.60.2", ] [[package]] name = "anstyle-wincon" -version = "3.0.9" +version = "3.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "403f75924867bb1033c59fbf0797484329750cfbe3c4325cd33127941fabc882" +checksum = "3e0633414522a32ffaac8ac6cc8f748e090c5717661fddeea04219e2344f5f2a" dependencies = [ "anstyle", "once_cell_polyfill", - "windows-sys 0.59.0", + "windows-sys 0.60.2", ] [[package]] @@ -136,7 +136,7 @@ version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4ce5f140efb4e707ea8f8e894d5f710500e373be1c4435d56b28d1fd1f843341" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.2", "cfg-if", "embedded-hal-nb", "fdt-parser", @@ -145,9 +145,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.98" +version = "1.0.99" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e16d2d3311acee920a9eb8d33b8cbc1787ce4a264e85f964c2404b969bdcd487" +checksum = "b0674a1ddeecb70197781e945de4b3b8ffb61fa939a5597bcf48503737663100" [[package]] name = "arceos_api" @@ -175,7 +175,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a886a953642fbf21eb5928c49a05f021fae007219ae8cb2dafbf403dfeba974a" dependencies = [ "aarch64-cpu", - "bitflags 2.9.1", + "bitflags 2.9.2", "enum_dispatch", "log", "rdif-intc", @@ -217,9 +217,9 @@ dependencies = [ "aarch64-cpu", "axaddrspace 0.1.0 (git+https://github.com/arceos-hypervisor/axaddrspace.git)", "axcpu", - "axdevice_base", + "axdevice_base 0.1.0 (git+https://github.com/arceos-hypervisor/axdevice_crates.git)", "axerrno", - "axvcpu", + "axvcpu 0.1.0 (git+https://github.com/arceos-hypervisor/axvcpu.git)", "axvisor_api 0.1.0 (git+https://github.com/arceos-hypervisor/axvisor_api.git)", "log", "numeric-enum-macro", @@ -230,15 +230,15 @@ dependencies = [ [[package]] name = "arm_vgic" -version = "0.0.0" -source = "git+https://github.com/arceos-hypervisor/arm_vgic.git#58230bf19ac69fc54e87f015d5a30548da583bc9" +version = "0.1.0" +source = "git+https://github.com/arceos-hypervisor/arm_vgic.git#81338d6dd8a9dab04b91c9c0da3d6d84e7768be6" dependencies = [ "aarch64-cpu", "aarch64_sysreg", - "axaddrspace 0.1.0 (git+https://github.com/arceos-hypervisor/axaddrspace.git)", - "axdevice_base", + "axaddrspace 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "axdevice_base 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "axerrno", - "axvisor_api 0.1.0 (git+https://github.com/arceos-hypervisor/axvisor_api.git)", + "axvisor_api 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "bitmaps", "log", "memory_addr", @@ -254,13 +254,13 @@ checksum = "b0f477b951e452a0b6b4a10b53ccd569042d1d01729b519e02074a9c0958a063" [[package]] name = "async-trait" -version = "0.1.88" +version = "0.1.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e539d3fca749fcee5236ab05e93a52867dd549cc157c8cb7f99595f3cedffdb5" +checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -283,7 +283,7 @@ checksum = "e0bac152673e0cc27886c9fed1062e8a82e95a1bebb76c9b925f42bd4f412356" dependencies = [ "axerrno", "bit_field", - "bitflags 2.9.1", + "bitflags 2.9.2", "cfg-if", "lazyinit", "log", @@ -302,7 +302,7 @@ source = "git+https://github.com/arceos-hypervisor/axaddrspace.git#925d5deb05e4d dependencies = [ "axerrno", "bit_field", - "bitflags 2.9.1", + "bitflags 2.9.2", "cfg-if", "lazyinit", "log", @@ -330,7 +330,7 @@ dependencies = [ [[package]] name = "axconfig" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#83263579b537e8d35bd1c9b6c5ea5648a10d19e5" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#587fc9e1b8ed8b7e7ae0bb2fc1166d6dbdd4838c" dependencies = [ "axconfig-macros", ] @@ -354,7 +354,7 @@ dependencies = [ "axconfig-gen", "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -383,13 +383,12 @@ dependencies = [ [[package]] name = "axdevice" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/axdevice.git#17d2b013066d5a7b4e1b1d6b72b025e40b83dcae" dependencies = [ "arm_vgic", - "axaddrspace 0.1.0 (git+https://github.com/arceos-hypervisor/axaddrspace.git)", - "axdevice_base", + "axaddrspace 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "axdevice_base 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "axerrno", - "axvmconfig", + "axvmconfig 0.1.0 (git+https://github.com/arceos-hypervisor/axvmconfig.git)", "cfg-if", "log", "memory_addr", @@ -400,11 +399,25 @@ dependencies = [ [[package]] name = "axdevice_base" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/axdevice_crates.git#a474580797920daebb032870cc3f8ff4edbe88ec" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67c43baf33ed4790ffd3365c4ca027a1e3d1c2b6058f4605b67bca04cadf48d5" dependencies = [ - "axaddrspace 0.1.0 (git+https://github.com/arceos-hypervisor/axaddrspace.git)", + "axaddrspace 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "axerrno", + "axvmconfig 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "cfg-if", + "memory_addr", + "serde", +] + +[[package]] +name = "axdevice_base" +version = "0.1.0" +source = "git+https://github.com/arceos-hypervisor/axdevice_crates.git#35da6c7b5a29d01410df6ca31300bbfc50eb4603" +dependencies = [ + "axaddrspace 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "axerrno", - "axvmconfig", + "axvmconfig 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "cfg-if", "memory_addr", "serde", @@ -539,7 +552,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dcba2006898d7879d456a9c34b9c9460cb536f5bf69d1d5d7d0e0f19f073368d" dependencies = [ "axerrno", - "bitflags 2.9.1", + "bitflags 2.9.2", "log", ] @@ -630,7 +643,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c86cdb48cf1fbd432f4326ab0852b696ac49442b0ea0aed3401cb0bbe370a19f" dependencies = [ "axplat-macros 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "bitflags 2.9.1", + "bitflags 2.9.2", "const-str", "crate_interface", "handler_table", @@ -641,24 +654,10 @@ dependencies = [ [[package]] name = "axplat" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/axplat_crates?branch=vmm#e4c656f899b0013f3759a272144dbcd73ec5b251" +source = "git+https://github.com/arceos-hypervisor/axplat_crates?branch=vmm#7aaceecbb446abac7e3eeafa03e5a6e257fea575" dependencies = [ "axplat-macros 0.1.0 (git+https://github.com/arceos-hypervisor/axplat_crates?branch=vmm)", - "bitflags 2.9.1", - "const-str", - "crate_interface", - "handler_table", - "kspin", - "memory_addr", -] - -[[package]] -name = "axplat" -version = "0.1.0" -source = "git+https://github.com/arceos-org/axplat_crates#083d2f70c6e5f4333a95d3b29fcafd1334c3c932" -dependencies = [ - "axplat-macros 0.1.0 (git+https://github.com/arceos-org/axplat_crates)", - "bitflags 2.9.1", + "bitflags 2.9.2", "const-str", "crate_interface", "handler_table", @@ -759,27 +758,17 @@ checksum = "f90dfaee06a112fe4f810c60af1a86bc080af2172185b491cacc307b84dff748" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", -] - -[[package]] -name = "axplat-macros" -version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/axplat_crates?branch=vmm#e4c656f899b0013f3759a272144dbcd73ec5b251" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] name = "axplat-macros" version = "0.1.0" -source = "git+https://github.com/arceos-org/axplat_crates#083d2f70c6e5f4333a95d3b29fcafd1334c3c932" +source = "git+https://github.com/arceos-hypervisor/axplat_crates?branch=vmm#7aaceecbb446abac7e3eeafa03e5a6e257fea575" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -805,7 +794,7 @@ dependencies = [ "axconfig-macros", "axcpu", "axplat 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "bitflags 2.9.1", + "bitflags 2.9.2", "heapless", "int_ratio", "kspin", @@ -823,12 +812,12 @@ dependencies = [ [[package]] name = "axplat-x86-pc" version = "0.1.1" -source = "git+https://github.com/arceos-org/axplat_crates#083d2f70c6e5f4333a95d3b29fcafd1334c3c932" +source = "git+https://github.com/arceos-hypervisor/axplat_crates?branch=vmm#7aaceecbb446abac7e3eeafa03e5a6e257fea575" dependencies = [ "axconfig-macros", "axcpu", - "axplat 0.1.0 (git+https://github.com/arceos-org/axplat_crates)", - "bitflags 2.9.1", + "axplat 0.1.0 (git+https://github.com/arceos-hypervisor/axplat_crates?branch=vmm)", + "bitflags 2.9.2", "heapless", "int_ratio", "kspin", @@ -847,7 +836,7 @@ dependencies = [ name = "axplat-x86-qemu-q35" version = "0.1.0" dependencies = [ - "axplat-x86-pc 0.1.1 (git+https://github.com/arceos-org/axplat_crates)", + "axplat-x86-pc 0.1.1 (git+https://github.com/arceos-hypervisor/axplat_crates?branch=vmm)", "serde", "toml 0.8.23", ] @@ -928,11 +917,24 @@ dependencies = [ [[package]] name = "axvcpu" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/axvcpu.git#0dae892519655342b8c7918460a6208d8c251526" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fd2246d45be5a55e5f0fb081a6c23a9d6f5de4f390a9dbce82786129e66004e" dependencies = [ - "axaddrspace 0.1.0 (git+https://github.com/arceos-hypervisor/axaddrspace.git)", + "axaddrspace 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "axerrno", - "axvisor_api 0.1.0 (git+https://github.com/arceos-hypervisor/axvisor_api.git)", + "axvisor_api 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "memory_addr", + "percpu", +] + +[[package]] +name = "axvcpu" +version = "0.1.0" +source = "git+https://github.com/arceos-hypervisor/axvcpu.git#6364b7b13f0e4efb969295d07667215e79969a1d" +dependencies = [ + "axaddrspace 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "axerrno", + "axvisor_api 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "memory_addr", "percpu", ] @@ -941,19 +943,19 @@ dependencies = [ name = "axvisor" version = "0.1.0" dependencies = [ - "axaddrspace 0.1.0 (git+https://github.com/arceos-hypervisor/axaddrspace.git)", + "axaddrspace 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "axconfig", "axdevice", - "axdevice_base", + "axdevice_base 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "axerrno", "axhvc", "axplat-aarch64-generic", "axplat-x86-qemu-q35", "axstd", - "axvcpu", - "axvisor_api 0.1.0 (git+https://github.com/arceos-hypervisor/axvisor_api.git)", + "axvcpu 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "axvisor_api 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "axvm", - "bitflags 2.9.1", + "bitflags 2.9.2", "cfg-if", "cpumask", "crate_interface", @@ -969,7 +971,7 @@ dependencies = [ "prettyplease", "quote", "spin 0.9.8", - "syn 2.0.104", + "syn 2.0.106", "timer_list", "toml 0.8.14", ] @@ -989,9 +991,9 @@ dependencies = [ [[package]] name = "axvisor_api" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/axvisor_api.git#4102b0a4d8bce0eef45959ad82fb932aee362841" +source = "git+https://github.com/arceos-hypervisor/axvisor_api.git#feb16efe1c384d91ac9f1cbf787c1c28571190f1" dependencies = [ - "axaddrspace 0.1.0 (git+https://github.com/arceos-hypervisor/axaddrspace.git)", + "axaddrspace 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "axvisor_api_proc 0.1.0 (git+https://github.com/arceos-hypervisor/axvisor_api.git)", "crate_interface", "memory_addr", @@ -1006,33 +1008,32 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] name = "axvisor_api_proc" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/axvisor_api.git#4102b0a4d8bce0eef45959ad82fb932aee362841" +source = "git+https://github.com/arceos-hypervisor/axvisor_api.git#feb16efe1c384d91ac9f1cbf787c1c28571190f1" dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] name = "axvm" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/axvm.git?branch=dev-irq#5c0a2804255cf5f22a8a27b2fafaf4925374299a" dependencies = [ "arm_vcpu", "arm_vgic", - "axaddrspace 0.1.0 (git+https://github.com/arceos-hypervisor/axaddrspace.git)", + "axaddrspace 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "axdevice", - "axdevice_base", + "axdevice_base 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "axerrno", - "axvcpu", - "axvmconfig", + "axvcpu 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "axvmconfig 0.1.0 (git+https://github.com/arceos-hypervisor/axvmconfig.git)", "cfg-if", "cpumask", "log", @@ -1048,14 +1049,28 @@ dependencies = [ [[package]] name = "axvmconfig" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/axvmconfig.git#6704074b63f79ed904d98cc27cd166779c3546d6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3618f2ebd9b25027b70f423c48a8482dc2883ca17f76d2a8d1fdac377e762f02" dependencies = [ "axerrno", "enumerable", "log", "serde", "serde_repr", - "toml 0.8.14", + "toml 0.9.5", +] + +[[package]] +name = "axvmconfig" +version = "0.1.0" +source = "git+https://github.com/arceos-hypervisor/axvmconfig.git#2df01b3b8a9e9a82389e96b938a42527b8c3ed25" +dependencies = [ + "axerrno", + "enumerable", + "log", + "serde", + "serde_repr", + "toml 0.9.5", ] [[package]] @@ -1070,7 +1085,7 @@ dependencies = [ "miniz_oxide", "object", "rustc-demangle", - "windows-targets", + "windows-targets 0.52.6", ] [[package]] @@ -1128,9 +1143,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.9.1" +version = "2.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b8e56985ec62d17e9c1001dc89c88ecd7dc08e47eba5ec7c29c7b5eeecde967" +checksum = "6a65b545ab31d687cff52899d4890855fec459eb6afe0da6417b8a18da87aa29" [[package]] name = "bitmap-allocator" @@ -1167,9 +1182,9 @@ checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a" [[package]] name = "camino" -version = "1.1.10" +version = "1.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0da45bc31171d8d6960122e222a67740df867c1dd53b4d51caa297084c185cab" +checksum = "5d07aa9a93b00c76f71bc35d598bed923f6d4f3a9ca5c24b7737ae1a292841c0" dependencies = [ "serde", ] @@ -1180,7 +1195,7 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c9b24894fa5f73bbf9c72196e7f495a1f81d6218a548280a09ada4a937157692" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.2", ] [[package]] @@ -1220,14 +1235,14 @@ dependencies = [ "semver 1.0.26", "serde", "serde_json", - "thiserror 2.0.12", + "thiserror 2.0.15", ] [[package]] name = "cc" -version = "1.2.31" +version = "1.2.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3a42d84bb6b69d3a8b3eaacf0d88f179e1929695e1ad012b6cf64d9caaa5fd2" +checksum = "3ee0f8803222ba5a7e2777dd72ca451868909b1ac410621b676adf07280e9b5f" dependencies = [ "shlex", ] @@ -1249,9 +1264,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.41" +version = "4.5.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be92d32e80243a54711e5d7ce823c35c41c9d929dc4ab58e1276f625841aadf9" +checksum = "1fc0e74a703892159f5ae7d3aac52c8e6c392f5ae5f359c70b5881d60aaac318" dependencies = [ "clap_builder", "clap_derive", @@ -1259,9 +1274,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.41" +version = "4.5.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "707eab41e9622f9139419d573eca0900137718000c517d47da73045f54331c3d" +checksum = "b3e7f4214277f3c7aa526a59dd3fbe306a370daee1f8b7b8c987069cd8e888a8" dependencies = [ "anstream", "anstyle", @@ -1271,14 +1286,14 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.5.41" +version = "4.5.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef4f52386a59ca4c860f7393bcf8abd8dfd91ecccc0f774635ff68e92eeef491" +checksum = "14cb31bb0a7d536caef2639baa7fad459e15c3144efefa6dbd1c84562c4739f6" dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -1358,7 +1373,7 @@ checksum = "70272a03a2cef15589bac05d3d15c023752f5f8f2da8be977d983a9d9e6250fb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -1399,7 +1414,7 @@ checksum = "9a49d5cd78b1c748184d41407b14a58af8403c13328ff2b9f49b0a418c24e3ff" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -1423,7 +1438,7 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -1434,7 +1449,7 @@ checksum = "fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead" dependencies = [ "darling_core", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -1445,7 +1460,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -1482,7 +1497,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -1503,7 +1518,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -1529,7 +1544,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "778e2ac28f6c47af28e4907f13ffd1e1ddbd400980a9abd7c8df189bf578a5ad" dependencies = [ "libc", - "windows-sys 0.52.0", + "windows-sys 0.60.2", ] [[package]] @@ -1543,7 +1558,7 @@ name = "fatfs" version = "0.4.0" source = "git+https://github.com/rafalh/rust-fatfs?rev=4eccb50#4eccb50d011146fbed20e133d33b22f3c27292e7" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.2", "log", ] @@ -1700,9 +1715,9 @@ checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" [[package]] name = "h2" -version = "0.4.11" +version = "0.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17da50a276f1e01e0ba6c029e47b7100754904ee8a278f886546e98575380785" +checksum = "f3c0b69cfcb4e1b9f1bf2f53f95f766e4661169728ec61cd3fe5a0166f2d1386" dependencies = [ "atomic-waker", "bytes", @@ -1744,9 +1759,9 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.15.4" +version = "0.15.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5971ac85611da7067dbfcabef3c70ebb5606018acd9e2a3903a0da507521e0d5" +checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" [[package]] name = "heapless" @@ -2002,7 +2017,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fe4cd85333e22411419a0bcae1297d25e58c9443848b11dc6a86fefe8c78a661" dependencies = [ "equivalent", - "hashbrown 0.15.4", + "hashbrown 0.15.5", ] [[package]] @@ -2017,7 +2032,7 @@ version = "0.7.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d93587f37623a1a17d94ef2bc9ada592f5465fe7732084ab7beefabe5c77c0c4" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.2", "cfg-if", "libc", ] @@ -2069,7 +2084,7 @@ dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -2078,10 +2093,10 @@ version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fe55002bb265659921e59528cadf0d07362ebc0f37986d9b004bc45264036bf5" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.2", "prettyplease", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -2096,9 +2111,9 @@ dependencies = [ [[package]] name = "kspin" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51954c939251c5899b6e953aa0ed8903c5c0d1140fc7ce3a8fd60c931d694f6e" +checksum = "3d841fd3aeaa9a55871068f5c3ce48497a6dbcf14e20ca7784a9f68bfdb4c825" dependencies = [ "cfg-if", "kernel_guard", @@ -2118,9 +2133,9 @@ checksum = "17f03abfebdaaf0fad16790237a0348baf84886d3ade460db13bae59e614a180" [[package]] name = "libc" -version = "0.2.174" +version = "0.2.175" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1171693293099992e19cddea4e8b849964e9846f4acee11b3948bcc337be8776" +checksum = "6a82ae493e598baaea5209805c49bbf2ea7de956d50d7da0da1164f9c6d28543" [[package]] name = "libredox" @@ -2128,7 +2143,7 @@ version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "391290121bad3d37fbddad76d8f5d1c1c314cfc646d143d7e07a3086ddff0ce3" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.2", "libc", "redox_syscall", ] @@ -2156,7 +2171,7 @@ checksum = "04d55ca5d5a14363da83bf3c33874b8feaa34653e760d5216d7ef9829c88001a" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -2194,7 +2209,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7c9f0d275c70310e2a9d2fc23250c5ac826a73fa828a5f256401f85c5c554283" dependencies = [ "bit_field", - "bitflags 2.9.1", + "bitflags 2.9.2", ] [[package]] @@ -2339,7 +2354,7 @@ version = "0.10.73" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8505734d46c8ab1e19a1dce3aef597ad87dcb4c37e7188231769bd6bd51cebf8" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.2", "cfg-if", "foreign-types", "libc", @@ -2356,7 +2371,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -2392,10 +2407,10 @@ version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "79217ff706e8dd356df4b6d624bae950ae5c39a17c6959b81d73dedfc9653316" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.2", "log", "num-align", - "thiserror 2.0.12", + "thiserror 2.0.15", ] [[package]] @@ -2405,7 +2420,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ba811ef8ca8fb33d776e128624cb4fe25c9804cab96f83b822d4322431e6dd5a" dependencies = [ "aarch64-cpu", - "bitflags 2.9.1", + "bitflags 2.9.2", "memory_addr", "x86_64", ] @@ -2456,7 +2471,7 @@ checksum = "8a9f4cc54a2e471ff72f1499461ba381ad4eae9cbd60d29c258545b995e406e0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -2495,7 +2510,7 @@ dependencies = [ "aarch64-cpu", "aarch64-cpu-ext", "any-uart", - "bitflags 2.9.1", + "bitflags 2.9.2", "fdt-parser", "kasm-aarch64", "kdef-pgtable", @@ -2506,8 +2521,8 @@ dependencies = [ "prettyplease", "quote", "spin 0.10.0", - "syn 2.0.104", - "thiserror 2.0.12", + "syn 2.0.106", + "thiserror 2.0.15", ] [[package]] @@ -2519,7 +2534,7 @@ dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -2565,7 +2580,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ff24dfcda44452b9816fff4cd4227e1bb73ff5a2f1bc1105aa92fb8565ce44d2" dependencies = [ "proc-macro2", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -2579,9 +2594,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.95" +version = "1.0.101" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02b3e5e68a3a1a02aad3ec490a98007cbc13c37cbe84a3cd7b8e406d76e7f778" +checksum = "89ae43fd86e4158d6db51ad8e2b80f313af9cc74f5c0e03ccb87de09998732de" dependencies = [ "unicode-ident", ] @@ -2650,7 +2665,7 @@ version = "11.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c6df7ab838ed27997ba19a4664507e6f82b41fe6e20be42929332156e5e85146" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.2", ] [[package]] @@ -2662,7 +2677,7 @@ dependencies = [ "as-any", "async-trait", "rdif-def", - "thiserror 2.0.12", + "thiserror 2.0.15", ] [[package]] @@ -2690,7 +2705,7 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c238eb44d86fabc99028adc973f896ce2202aeb6184cc8b89863f2d157d7ca06" dependencies = [ - "thiserror 2.0.12", + "thiserror 2.0.15", ] [[package]] @@ -2701,7 +2716,7 @@ checksum = "a4e7622f78dc9b40958500119553f3c15b9bb9829002d87d0f4b114ebe302a40" dependencies = [ "cfg-if", "rdif-base", - "thiserror 2.0.12", + "thiserror 2.0.15", ] [[package]] @@ -2722,7 +2737,7 @@ dependencies = [ "futures", "rdif-base", "spin_on", - "thiserror 2.0.12", + "thiserror 2.0.15", ] [[package]] @@ -2753,7 +2768,7 @@ dependencies = [ "rdif-systick", "rdrive-macros", "spin 0.10.0", - "thiserror 2.0.12", + "thiserror 2.0.15", ] [[package]] @@ -2764,7 +2779,7 @@ checksum = "eab3105c9af32e901a2adc7d920b39ff8b6ee0f6f0b7dfdeaf18f306ec12606f" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -2773,7 +2788,7 @@ version = "0.5.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5407465600fb0548f1442edf71dd20683c6ed326200ace4b1ef0763521bb3b77" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.2", ] [[package]] @@ -2807,9 +2822,9 @@ checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" [[package]] name = "reqwest" -version = "0.12.22" +version = "0.12.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cbc931937e6ca3a06e3b6c0aa7841849b160a90351d6ab467a8b9b9959767531" +checksum = "d429f34c8092b2d42c7c93cec323bb4adeb7c67698f70839adec842ec10c7ceb" dependencies = [ "base64 0.22.1", "bytes", @@ -2889,7 +2904,7 @@ dependencies = [ [[package]] name = "riscv-decode" version = "0.2.1" -source = "git+https://github.com/KuangjuX/riscv-decode.git#0e346d0ad041987023caa6f7f832185ed568630b" +source = "git+https://github.com/KuangjuX/riscv-decode.git#4102b8ef1d63c9c62fc9af8c7580b833287d9baa" [[package]] name = "riscv-macros" @@ -2899,7 +2914,7 @@ checksum = "e8c4aa1ea1af6dcc83a61be12e8189f9b293c3ba5a487778a4cd89fb060fdbbc" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -2921,14 +2936,14 @@ dependencies = [ [[package]] name = "riscv_vcpu" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/riscv_vcpu.git#f25f274f88376c2b4a80dcb5549f46a9b4b10559" +source = "git+https://github.com/arceos-hypervisor/riscv_vcpu.git#b52a933e42cc29155e82a186aecffceb3d70d86a" dependencies = [ "axaddrspace 0.1.0 (git+https://github.com/arceos-hypervisor/axaddrspace.git)", "axerrno", - "axvcpu", + "axvcpu 0.1.0 (git+https://github.com/arceos-hypervisor/axvcpu.git)", "axvisor_api 0.1.0 (git+https://github.com/arceos-hypervisor/axvisor_api.git)", "bit_field", - "bitflags 2.9.1", + "bitflags 2.9.2", "cfg-if", "crate_interface", "log", @@ -2976,11 +2991,11 @@ version = "1.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "11181fbabf243db407ef8df94a6ce0b2f9a733bd8be4ad02b4eda9602296cac8" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.2", "errno", "libc", "linux-raw-sys", - "windows-sys 0.52.0", + "windows-sys 0.60.2", ] [[package]] @@ -3035,14 +3050,14 @@ checksum = "a71347da9582cc6b6f3652c7d2c06516c9555690b3738ecdff7e84297f4e17fc" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] name = "rustversion" -version = "1.0.21" +version = "1.0.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a0d197bd2c9dc6e53b84da9556a69ba4cdfab8619eb41a8bd1cc2027a0f6b1d" +checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" [[package]] name = "ryu" @@ -3086,7 +3101,7 @@ version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.2", "core-foundation", "core-foundation-sys", "libc", @@ -3138,9 +3153,9 @@ dependencies = [ [[package]] name = "serde-untagged" -version = "0.1.7" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "299d9c19d7d466db4ab10addd5703e4c615dec2a5a16dbbafe191045e87ee66e" +checksum = "34836a629bcbc6f1afdf0907a744870039b1e14c0561cb26094fa683b158eff3" dependencies = [ "erased-serde", "serde", @@ -3165,7 +3180,7 @@ checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -3188,7 +3203,7 @@ checksum = "175ee3e80ae9982737ca543e96133087cbd9a485eecc3bc4de9c1a37b47ea59c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -3208,6 +3223,15 @@ dependencies = [ "serde", ] +[[package]] +name = "serde_spanned" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "40734c41988f7306bb04f0ecf60ec0f3f1caa34290e4e8ea471dcd3346483b83" +dependencies = [ + "serde", +] + [[package]] name = "serde_urlencoded" version = "0.7.1" @@ -3228,9 +3252,9 @@ checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" [[package]] name = "slab" -version = "0.4.10" +version = "0.4.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04dc19736151f35336d325007ac991178d504a119863a2fcb3758cdb5e52c50d" +checksum = "7a2ae44ef20feb57a68b23d846850f861394c2e02dc425a50098ae8c90267589" [[package]] name = "smallvec" @@ -3244,7 +3268,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7c73e0ca8c566478040487791c9f488f86c5aec846ca1ab18484be8a1d8c55cd" dependencies = [ - "thiserror 2.0.12", + "thiserror 2.0.15", ] [[package]] @@ -3334,9 +3358,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.104" +version = "2.0.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17b6f705963418cdb9927482fa304bc562ece2fdd4f616084c50b7023b435a40" +checksum = "ede7c438028d4436d71104916910f5bb611972c5cfd7f89b8300a8186e6fada6" dependencies = [ "proc-macro2", "quote", @@ -3360,7 +3384,7 @@ checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -3369,7 +3393,7 @@ version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.2", "core-foundation", "system-configuration-sys", ] @@ -3405,7 +3429,7 @@ dependencies = [ "getrandom 0.3.3", "once_cell", "rustix", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -3419,11 +3443,11 @@ dependencies = [ [[package]] name = "thiserror" -version = "2.0.12" +version = "2.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708" +checksum = "80d76d3f064b981389ecb4b6b7f45a0bf9fdac1d5b9204c7bd6714fecc302850" dependencies = [ - "thiserror-impl 2.0.12", + "thiserror-impl 2.0.15", ] [[package]] @@ -3434,18 +3458,18 @@ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] name = "thiserror-impl" -version = "2.0.12" +version = "2.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d" +checksum = "44d29feb33e986b6ea906bd9c3559a856983f92371b3eaa5e83782a351623de0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -3565,6 +3589,20 @@ dependencies = [ "toml_edit 0.22.27", ] +[[package]] +name = "toml" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75129e1dc5000bfbaa9fee9d1b21f974f9fbad9daec557a521ee6e080825f6e8" +dependencies = [ + "serde", + "serde_spanned 1.0.0", + "toml_datetime 0.7.0", + "toml_parser", + "toml_writer", + "winnow 0.7.12", +] + [[package]] name = "toml_datetime" version = "0.6.6" @@ -3582,6 +3620,15 @@ dependencies = [ "serde", ] +[[package]] +name = "toml_datetime" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bade1c3e902f58d73d3f294cd7f20391c1cb2fbcb643b73566bc773971df91e3" +dependencies = [ + "serde", +] + [[package]] name = "toml_edit" version = "0.22.15" @@ -3610,12 +3657,27 @@ dependencies = [ "winnow 0.7.12", ] +[[package]] +name = "toml_parser" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b551886f449aa90d4fe2bdaa9f4a2577ad2dde302c61ecf262d80b116db95c10" +dependencies = [ + "winnow 0.7.12", +] + [[package]] name = "toml_write" version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5d99f8c9a7727884afe522e9bd5edbfc91a3312b36a77b5fb8926e4c31a41801" +[[package]] +name = "toml_writer" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fcc842091f2def52017664b53082ecbbeb5c7731092bad69d2c63050401dfd64" + [[package]] name = "tower" version = "0.5.2" @@ -3637,7 +3699,7 @@ version = "0.6.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "adc82fd73de2a9722ac5da747f12383d2bfdb93591ee6c58486e0097890f05f2" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.2", "bytes", "futures-util", "http", @@ -3698,7 +3760,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e492212ac378a5e00da953718dafb1340d9fbaf4f27d6f3c5cab03d931d1c049" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.2", "rustversion", "x86", ] @@ -3768,7 +3830,7 @@ version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aa40e09453618c7a927c08c5a990497a2954da7c2aaa6c65e0d4f0fc975f6114" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.2", "log", "zerocopy 0.7.35", ] @@ -3825,7 +3887,7 @@ dependencies = [ "log", "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", "wasm-bindgen-shared", ] @@ -3860,7 +3922,7 @@ checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -3925,7 +3987,7 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" dependencies = [ - "windows-targets", + "windows-targets 0.52.6", ] [[package]] @@ -3934,7 +3996,16 @@ version = "0.59.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" dependencies = [ - "windows-targets", + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-sys" +version = "0.60.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" +dependencies = [ + "windows-targets 0.53.3", ] [[package]] @@ -3943,14 +4014,31 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" dependencies = [ - "windows_aarch64_gnullvm", - "windows_aarch64_msvc", - "windows_i686_gnu", - "windows_i686_gnullvm", - "windows_i686_msvc", - "windows_x86_64_gnu", - "windows_x86_64_gnullvm", - "windows_x86_64_msvc", + "windows_aarch64_gnullvm 0.52.6", + "windows_aarch64_msvc 0.52.6", + "windows_i686_gnu 0.52.6", + "windows_i686_gnullvm 0.52.6", + "windows_i686_msvc 0.52.6", + "windows_x86_64_gnu 0.52.6", + "windows_x86_64_gnullvm 0.52.6", + "windows_x86_64_msvc 0.52.6", +] + +[[package]] +name = "windows-targets" +version = "0.53.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d5fe6031c4041849d7c496a8ded650796e7b6ecc19df1a431c1a363342e5dc91" +dependencies = [ + "windows-link", + "windows_aarch64_gnullvm 0.53.0", + "windows_aarch64_msvc 0.53.0", + "windows_i686_gnu 0.53.0", + "windows_i686_gnullvm 0.53.0", + "windows_i686_msvc 0.53.0", + "windows_x86_64_gnu 0.53.0", + "windows_x86_64_gnullvm 0.53.0", + "windows_x86_64_msvc 0.53.0", ] [[package]] @@ -3959,48 +4047,96 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86b8d5f90ddd19cb4a147a5fa63ca848db3df085e25fee3cc10b39b6eebae764" + [[package]] name = "windows_aarch64_msvc" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" +[[package]] +name = "windows_aarch64_msvc" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7651a1f62a11b8cbd5e0d42526e55f2c99886c77e007179efff86c2b137e66c" + [[package]] name = "windows_i686_gnu" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" +[[package]] +name = "windows_i686_gnu" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1dc67659d35f387f5f6c479dc4e28f1d4bb90ddd1a5d3da2e5d97b42d6272c3" + [[package]] name = "windows_i686_gnullvm" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" +[[package]] +name = "windows_i686_gnullvm" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ce6ccbdedbf6d6354471319e781c0dfef054c81fbc7cf83f338a4296c0cae11" + [[package]] name = "windows_i686_msvc" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" +[[package]] +name = "windows_i686_msvc" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "581fee95406bb13382d2f65cd4a908ca7b1e4c2f1917f143ba16efe98a589b5d" + [[package]] name = "windows_x86_64_gnu" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" +[[package]] +name = "windows_x86_64_gnu" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e55b5ac9ea33f2fc1716d1742db15574fd6fc8dadc51caab1c16a3d3b4190ba" + [[package]] name = "windows_x86_64_gnullvm" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0a6e035dd0599267ce1ee132e51c27dd29437f63325753051e71dd9e42406c57" + [[package]] name = "windows_x86_64_msvc" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" +[[package]] +name = "windows_x86_64_msvc" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486" + [[package]] name = "winnow" version = "0.6.26" @@ -4022,7 +4158,7 @@ version = "0.39.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.2", ] [[package]] @@ -4062,7 +4198,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0f042214de98141e9c8706e8192b73f56494087cc55ebec28ce10f26c5c364ae" dependencies = [ "bit_field", - "bitflags 2.9.1", + "bitflags 2.9.2", "rustversion", "volatile", ] @@ -4070,14 +4206,15 @@ dependencies = [ [[package]] name = "x86_vcpu" version = "0.1.0" +source = "git+https://github.com/arceos-hypervisor/x86_vcpu.git#f9e91e4a796a6410074a6dd0407fcf25ee4048bb" dependencies = [ "axaddrspace 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "axdevice_base", + "axdevice_base 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "axerrno", - "axvcpu", + "axvcpu 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "axvisor_api 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "bit_field", - "bitflags 2.9.1", + "bitflags 2.9.2", "cfg-if", "crate_interface", "log", @@ -4095,12 +4232,13 @@ dependencies = [ [[package]] name = "x86_vlapic" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/x86_vlapic.git#1bcf9feace828cdee555620a1c8ca5408129f1eb" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2556c62649a277ccf1c3c34c740be87bbde5f8dab0b20fcdcf4c2cd7bb6e7302" dependencies = [ - "axaddrspace 0.1.0 (git+https://github.com/arceos-hypervisor/axaddrspace.git)", - "axdevice_base", + "axaddrspace 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "axdevice_base 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "axerrno", - "axvisor_api 0.1.0 (git+https://github.com/arceos-hypervisor/axvisor_api.git)", + "axvisor_api 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "bit", "log", "memory_addr", @@ -4138,7 +4276,7 @@ checksum = "38da3c9736e16c5d3c8c597a9aaa5d1fa565d0532ae05e27c24aa62fb32c0ab6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", "synstructure", ] @@ -4169,7 +4307,7 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -4180,7 +4318,7 @@ checksum = "9ecf5b4cc5364572d7f4c329661bcc82724222973f2cab6f050a4e5c22f75181" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -4200,7 +4338,7 @@ checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", "synstructure", ] @@ -4223,9 +4361,9 @@ dependencies = [ [[package]] name = "zerovec" -version = "0.11.2" +version = "0.11.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a05eb080e015ba39cc9e23bbe5e7fb04d5fb040350f99f34e338d5fdd294428" +checksum = "e7aa2bd55086f1ab526693ecbe444205da57e25f4489879da80635a46d90e73b" dependencies = [ "yoke", "zerofrom", @@ -4240,5 +4378,5 @@ checksum = "5b96237efa0c878c64bd89c436f661be4e46b2f3eff1ebb976f7ef2321d2f58f" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] diff --git a/Cargo.toml b/Cargo.toml index 9c65f9aa..0e6bdc1b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -38,9 +38,9 @@ axstd = {git = "https://github.com/arceos-hypervisor/arceos.git", branch = "vmm- ]} # System dependent modules provided by ArceOS-Hypervisor. -axaddrspace = {git = "https://github.com/arceos-hypervisor/axaddrspace.git"} +axaddrspace = "0.1" axhvc = {git = "https://github.com/arceos-hypervisor/axhvc.git"} -axvcpu = {git = "https://github.com/arceos-hypervisor/axvcpu.git"} +axvcpu = "0.1" axvm = {git = "https://github.com/arceos-hypervisor/axvm.git", branch = "dev-irq"} # System independent crates provided by ArceOS, these crates could be imported by remote url. @@ -53,8 +53,8 @@ page_table_multiarch = "0.5" percpu = {version = "0.2", features = ["arm-el2"]} axdevice = {git = "https://github.com/arceos-hypervisor/axdevice.git"} -axdevice_base = {git = "https://github.com/arceos-hypervisor/axdevice_crates.git"} -axvisor_api = {git = "https://github.com/arceos-hypervisor/axvisor_api.git"} +axdevice_base = "0.1" +axvisor_api = "0.1" # platform axplat-aarch64-generic = {path = "platform/aarch64-generic", optional = true} diff --git a/platform/x86-qemu-q35/Cargo.toml b/platform/x86-qemu-q35/Cargo.toml index e65ac1cf..aa3d2190 100644 --- a/platform/x86-qemu-q35/Cargo.toml +++ b/platform/x86-qemu-q35/Cargo.toml @@ -9,7 +9,7 @@ reboot-on-system-off = ["axplat-x86-pc/reboot_on_system_off"] rtc = ["axplat-x86-pc/x86_rtc"] [dependencies] -axplat-x86-pc = {git = "https://github.com/arceos-org/axplat_crates", features=["irq", "smp"]} +axplat-x86-pc = {git = "https://github.com/arceos-hypervisor/axplat_crates.git", branch = "vmm",features=["irq", "smp"]} [build-dependencies] serde = {version = "1.0", features = ["derive"]} From fba902c80dbb9fdc8b054bf47419729b74a56095 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E7=9D=BF?= Date: Mon, 18 Aug 2025 10:48:48 +0800 Subject: [PATCH 096/219] =?UTF-8?q?feat:=20=E6=9B=B4=E6=96=B0=20axdevice?= =?UTF-8?q?=20=E5=92=8C=20toml=20=E4=BE=9D=E8=B5=96=E9=A1=B9=EF=BC=8C?= =?UTF-8?q?=E6=8C=87=E5=AE=9A=E5=88=86=E6=94=AF=E5=92=8C=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Cargo.lock | 158 +++++------------------------------------------------ Cargo.toml | 4 +- 2 files changed, 17 insertions(+), 145 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 2a6cfade..484e8ad7 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -42,19 +42,6 @@ version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa" -[[package]] -name = "ahash" -version = "0.8.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a15f179cd60c4584b8a8c596927aadc462e27f2ca70c04e0071964a73ba7a75" -dependencies = [ - "cfg-if", - "const-random", - "once_cell", - "version_check", - "zerocopy 0.8.26", -] - [[package]] name = "aho-corasick" version = "1.1.3" @@ -74,12 +61,6 @@ dependencies = [ "rlsf", ] -[[package]] -name = "allocator-api2" -version = "0.2.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" - [[package]] name = "anstream" version = "0.6.20" @@ -342,7 +323,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0bf14099a96dbb925e39a44c4f25555f1e24516194452a84a943aa7eda62383d" dependencies = [ "clap", - "toml_edit 0.22.27", + "toml_edit", ] [[package]] @@ -383,12 +364,13 @@ dependencies = [ [[package]] name = "axdevice" version = "0.1.0" +source = "git+https://github.com/arceos-hypervisor/axdevice.git?branch=dev#a2657ad4c7a06577a9dd6b9bc282e96641b4ec24" dependencies = [ "arm_vgic", "axaddrspace 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "axdevice_base 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "axerrno", - "axvmconfig 0.1.0 (git+https://github.com/arceos-hypervisor/axvmconfig.git)", + "axvmconfig", "cfg-if", "log", "memory_addr", @@ -404,7 +386,7 @@ checksum = "67c43baf33ed4790ffd3365c4ca027a1e3d1c2b6058f4605b67bca04cadf48d5" dependencies = [ "axaddrspace 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "axerrno", - "axvmconfig 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "axvmconfig", "cfg-if", "memory_addr", "serde", @@ -417,7 +399,7 @@ source = "git+https://github.com/arceos-hypervisor/axdevice_crates.git#35da6c7b5 dependencies = [ "axaddrspace 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "axerrno", - "axvmconfig 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "axvmconfig", "cfg-if", "memory_addr", "serde", @@ -973,7 +955,7 @@ dependencies = [ "spin 0.9.8", "syn 2.0.106", "timer_list", - "toml 0.8.14", + "toml 0.9.5", ] [[package]] @@ -1025,6 +1007,7 @@ dependencies = [ [[package]] name = "axvm" version = "0.1.0" +source = "git+https://github.com/arceos-hypervisor/axvm.git?branch=dev-irq#1ac93520d3e20104152da445947dc2a6d7556a88" dependencies = [ "arm_vcpu", "arm_vgic", @@ -1033,7 +1016,7 @@ dependencies = [ "axdevice_base 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "axerrno", "axvcpu 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "axvmconfig 0.1.0 (git+https://github.com/arceos-hypervisor/axvmconfig.git)", + "axvmconfig", "cfg-if", "cpumask", "log", @@ -1060,19 +1043,6 @@ dependencies = [ "toml 0.9.5", ] -[[package]] -name = "axvmconfig" -version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/axvmconfig.git#2df01b3b8a9e9a82389e96b938a42527b8c3ed25" -dependencies = [ - "axerrno", - "enumerable", - "log", - "serde", - "serde_repr", - "toml 0.9.5", -] - [[package]] name = "backtrace" version = "0.3.75" @@ -1314,26 +1284,6 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b396d1f76d455557e1218ec8066ae14bba60b4b36ecd55577ba979f5db7ecaa" -[[package]] -name = "const-random" -version = "0.1.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87e00182fe74b066627d63b85fd550ac2998d4b0bd86bfed477a0ae4c7c71359" -dependencies = [ - "const-random-macro", -] - -[[package]] -name = "const-random-macro" -version = "0.1.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9d839f2a20b0aee515dc581a6172f2321f96cab76c1a38a4c584a194955390e" -dependencies = [ - "getrandom 0.2.16", - "once_cell", - "tiny-keccak", -] - [[package]] name = "const-str" version = "0.6.4" @@ -1391,12 +1341,6 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "790eea4361631c5e7d22598ecd5723ff611904e3344ce8720784c93e3d83d40b" -[[package]] -name = "crunchy" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5" - [[package]] name = "ctor_bare" version = "0.2.1" @@ -1747,16 +1691,6 @@ dependencies = [ "byteorder", ] -[[package]] -name = "hashbrown" -version = "0.14.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" -dependencies = [ - "ahash", - "allocator-api2", -] - [[package]] name = "hashbrown" version = "0.15.5" @@ -2017,7 +1951,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fe4cd85333e22411419a0bcae1297d25e58c9443848b11dc6a86fefe8c78a661" dependencies = [ "equivalent", - "hashbrown 0.15.5", + "hashbrown", ] [[package]] @@ -2589,7 +2523,7 @@ version = "3.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "edce586971a4dfaa28950c6f18ed55e0406c1ab88bbce2c6f6293a7aaba73d35" dependencies = [ - "toml_edit 0.22.27", + "toml_edit", ] [[package]] @@ -3206,14 +3140,6 @@ dependencies = [ "syn 2.0.106", ] -[[package]] -name = "serde_spanned" -version = "0.6.6" -source = "git+https://github.com/arceos-hypervisor/toml.git?branch=no_std#fdb24a160d68ee9f8f42b34fffaa3640e94ed604" -dependencies = [ - "serde", -] - [[package]] name = "serde_spanned" version = "0.6.9" @@ -3478,15 +3404,6 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "158b52ace9609dd94f4af338f4828ff23b600d9160def8c001f2c73885521936" -[[package]] -name = "tiny-keccak" -version = "2.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237" -dependencies = [ - "crunchy", -] - [[package]] name = "tinystr" version = "0.8.1" @@ -3565,18 +3482,6 @@ dependencies = [ "tokio", ] -[[package]] -name = "toml" -version = "0.8.14" -source = "git+https://github.com/arceos-hypervisor/toml.git?branch=no_std#fdb24a160d68ee9f8f42b34fffaa3640e94ed604" -dependencies = [ - "hashbrown 0.14.5", - "serde", - "serde_spanned 0.6.6", - "toml_datetime 0.6.6", - "toml_edit 0.22.15", -] - [[package]] name = "toml" version = "0.8.23" @@ -3586,7 +3491,7 @@ dependencies = [ "serde", "serde_spanned 0.6.9", "toml_datetime 0.6.11", - "toml_edit 0.22.27", + "toml_edit", ] [[package]] @@ -3595,20 +3500,13 @@ version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "75129e1dc5000bfbaa9fee9d1b21f974f9fbad9daec557a521ee6e080825f6e8" dependencies = [ + "indexmap", "serde", "serde_spanned 1.0.0", "toml_datetime 0.7.0", "toml_parser", "toml_writer", - "winnow 0.7.12", -] - -[[package]] -name = "toml_datetime" -version = "0.6.6" -source = "git+https://github.com/arceos-hypervisor/toml.git?branch=no_std#fdb24a160d68ee9f8f42b34fffaa3640e94ed604" -dependencies = [ - "serde", + "winnow", ] [[package]] @@ -3629,20 +3527,6 @@ dependencies = [ "serde", ] -[[package]] -name = "toml_edit" -version = "0.22.15" -source = "git+https://github.com/arceos-hypervisor/toml.git?branch=no_std#fdb24a160d68ee9f8f42b34fffaa3640e94ed604" -dependencies = [ - "ahash", - "hashbrown 0.14.5", - "indexmap", - "serde", - "serde_spanned 0.6.6", - "toml_datetime 0.6.6", - "winnow 0.6.26", -] - [[package]] name = "toml_edit" version = "0.22.27" @@ -3654,7 +3538,7 @@ dependencies = [ "serde_spanned 0.6.9", "toml_datetime 0.6.11", "toml_write", - "winnow 0.7.12", + "winnow", ] [[package]] @@ -3663,7 +3547,7 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b551886f449aa90d4fe2bdaa9f4a2577ad2dde302c61ecf262d80b116db95c10" dependencies = [ - "winnow 0.7.12", + "winnow", ] [[package]] @@ -3818,12 +3702,6 @@ version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" -[[package]] -name = "version_check" -version = "0.9.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" - [[package]] name = "virtio-drivers" version = "0.7.4" @@ -4137,12 +4015,6 @@ version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486" -[[package]] -name = "winnow" -version = "0.6.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e90edd2ac1aa278a5c4599b1d89cf03074b610800f866d4026dc199d7929a28" - [[package]] name = "winnow" version = "0.7.12" diff --git a/Cargo.toml b/Cargo.toml index 0e6bdc1b..41683590 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -52,7 +52,7 @@ page_table_entry = {version = "0.5", features = ["arm-el2"]} page_table_multiarch = "0.5" percpu = {version = "0.2", features = ["arm-el2"]} -axdevice = {git = "https://github.com/arceos-hypervisor/axdevice.git"} +axdevice = {git = "https://github.com/arceos-hypervisor/axdevice.git", branch = "dev"} axdevice_base = "0.1" axvisor_api = "0.1" @@ -65,7 +65,7 @@ axconfig = {git = "https://github.com/arceos-hypervisor/arceos.git", branch = "v prettyplease = "0.2" quote = "1.0" syn = "2.0" -toml = {git = "https://github.com/arceos-hypervisor/toml.git", branch = "no_std"} +toml = "0.9" [patch.crates-io.axcpu] branch = "vmm" From 2ebf01a84c91982779e34b3c83e301bcce22f36e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E7=9D=BF?= Date: Mon, 18 Aug 2025 10:54:14 +0800 Subject: [PATCH 097/219] =?UTF-8?q?fix:=20=E6=9B=B4=E6=96=B0=20axplat-aarc?= =?UTF-8?q?h64-dyn=20=E7=9A=84=E6=BA=90=E5=9C=B0=E5=9D=80=EF=BC=8C?= =?UTF-8?q?=E4=BF=AE=E6=AD=A3=E5=88=86=E6=94=AF=E5=BC=95=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Cargo.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Cargo.lock b/Cargo.lock index 484e8ad7..ffd46fad 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -650,7 +650,7 @@ dependencies = [ [[package]] name = "axplat-aarch64-dyn" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/axplat-aarch64-dyn?branch=vmm#d0ce87eb171df6f89c5032bde03093696bd38475" +source = "git+https://github.com/arceos-hypervisor/axplat-aarch64-dyn?branch=vmm#6903dc6412fff2e08feb99f27a6055d04ed25895" dependencies = [ "aarch64-cpu", "aarch64-cpu-ext", From e9d5fbaf07d0a461bbd256ac96733cf2c40a6bb3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E7=9D=BF?= Date: Mon, 18 Aug 2025 11:10:07 +0800 Subject: [PATCH 098/219] =?UTF-8?q?fix:=20=E6=9B=B4=E6=96=B0=20arm=5Fvcpu?= =?UTF-8?q?=20=E6=BA=90=E5=9C=B0=E5=9D=80=EF=BC=8C=E4=BF=AE=E6=AD=A3=20axd?= =?UTF-8?q?evice=5Fbase=20=E4=BE=9D=E8=B5=96=E9=A1=B9=E6=A0=BC=E5=BC=8F?= =?UTF-8?q?=EF=BC=8C=E4=BC=98=E5=8C=96=20toml=20=E8=A7=A3=E6=9E=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Cargo.lock | 35 +++++++++++------------------------ Cargo.toml | 2 +- build.rs | 4 ++-- 3 files changed, 14 insertions(+), 27 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index ffd46fad..b4ea0867 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -193,15 +193,15 @@ dependencies = [ [[package]] name = "arm_vcpu" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arm_vcpu.git?branch=dev-irq#c2ba6e5ba49925cddbe869b17b56e698c67c572f" +source = "git+https://github.com/arceos-hypervisor/arm_vcpu.git?branch=dev-irq#856aab611f6ac63e4f01df381c103c7634b5c9ed" dependencies = [ "aarch64-cpu", - "axaddrspace 0.1.0 (git+https://github.com/arceos-hypervisor/axaddrspace.git)", + "axaddrspace 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "axcpu", - "axdevice_base 0.1.0 (git+https://github.com/arceos-hypervisor/axdevice_crates.git)", + "axdevice_base", "axerrno", - "axvcpu 0.1.0 (git+https://github.com/arceos-hypervisor/axvcpu.git)", - "axvisor_api 0.1.0 (git+https://github.com/arceos-hypervisor/axvisor_api.git)", + "axvcpu 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "axvisor_api 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "log", "numeric-enum-macro", "percpu", @@ -217,7 +217,7 @@ dependencies = [ "aarch64-cpu", "aarch64_sysreg", "axaddrspace 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "axdevice_base 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "axdevice_base", "axerrno", "axvisor_api 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "bitmaps", @@ -368,7 +368,7 @@ source = "git+https://github.com/arceos-hypervisor/axdevice.git?branch=dev#a2657 dependencies = [ "arm_vgic", "axaddrspace 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "axdevice_base 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "axdevice_base", "axerrno", "axvmconfig", "cfg-if", @@ -392,19 +392,6 @@ dependencies = [ "serde", ] -[[package]] -name = "axdevice_base" -version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/axdevice_crates.git#35da6c7b5a29d01410df6ca31300bbfc50eb4603" -dependencies = [ - "axaddrspace 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "axerrno", - "axvmconfig", - "cfg-if", - "memory_addr", - "serde", -] - [[package]] name = "axdriver" version = "0.2.0" @@ -928,7 +915,7 @@ dependencies = [ "axaddrspace 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "axconfig", "axdevice", - "axdevice_base 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "axdevice_base", "axerrno", "axhvc", "axplat-aarch64-generic", @@ -1013,7 +1000,7 @@ dependencies = [ "arm_vgic", "axaddrspace 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "axdevice", - "axdevice_base 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "axdevice_base", "axerrno", "axvcpu 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "axvmconfig", @@ -4081,7 +4068,7 @@ version = "0.1.0" source = "git+https://github.com/arceos-hypervisor/x86_vcpu.git#f9e91e4a796a6410074a6dd0407fcf25ee4048bb" dependencies = [ "axaddrspace 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "axdevice_base 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "axdevice_base", "axerrno", "axvcpu 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "axvisor_api 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -4108,7 +4095,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2556c62649a277ccf1c3c34c740be87bbde5f8dab0b20fcdcf4c2cd7bb6e7302" dependencies = [ "axaddrspace 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "axdevice_base 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "axdevice_base", "axerrno", "axvisor_api 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "bit", diff --git a/Cargo.toml b/Cargo.toml index 41683590..294c9398 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -65,7 +65,7 @@ axconfig = {git = "https://github.com/arceos-hypervisor/arceos.git", branch = "v prettyplease = "0.2" quote = "1.0" syn = "2.0" -toml = "0.9" +toml = {version = "0.9"} [patch.crates-io.axcpu] branch = "vmm" diff --git a/build.rs b/build.rs index 83330895..f7969dae 100644 --- a/build.rs +++ b/build.rs @@ -31,7 +31,7 @@ use std::{ }; use quote::quote; -use toml::Value; +use toml::Table; static CONFIGS_DIR_PATH: &str = "configs/vms"; @@ -108,7 +108,7 @@ struct MemoryImage { fn parse_config_file(config_file: &ConfigFile) -> Option { let config = config_file .content - .parse::() + .parse::() .expect("failed to parse config file"); let id = config.get("base")?.as_table()?.get("id")?.as_integer()? as usize; From e334e9c60426efed36e6e3eb38b6b955bea9bb7d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E7=9D=BF?= Date: Mon, 18 Aug 2025 11:48:12 +0800 Subject: [PATCH 099/219] ci: remote --- .github/workflows/test.yml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 03ded055..36d311d2 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -133,8 +133,12 @@ jobs: echo_env_info tar -xzf $WORKDIR/source.tar.gz -C $WORKDIR - make -C $WORKDIR ARCH=x86_64 defconfig - make -C $WORKDIR ARCH=x86_64 DISK_IMG=$WORKDIR/disk-x86_64.img LOG=info BLK=y ACCEL=y VM_CONFIGS=$WORKDIR/configs/vms/nimbos-x86_64.toml APP_FEATURES=fs run | tee $WORKDIR/make_output.log + cd $WORKDIR + ./bootstrap.sh + ./task.py run --plat x86-qemu-q35 --vmconfigs $WORKDIR/configs/vms/nimbos-x86_64.toml --arceos-args DISK_IMG=$WORKDIR/disk-x86_64.img,LOG=info,BLK=y,MEM=8g,ACCEL=y --features fs | tee $WORKDIR/make_output.log + + # make -C $WORKDIR ARCH=x86_64 defconfig + # make -C $WORKDIR ARCH=x86_64 DISK_IMG=$WORKDIR/disk-x86_64.img LOG=info BLK=y ACCEL=y VM_CONFIGS=$WORKDIR/configs/vms/nimbos-x86_64.toml APP_FEATURES=fs run | tee $WORKDIR/make_output.log # Re-echo the environment info echo_env_info From e2992b2fd02a2f6bec2b9011e5cca02ccc6c7c64 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E7=9D=BF?= Date: Mon, 18 Aug 2025 11:59:28 +0800 Subject: [PATCH 100/219] =?UTF-8?q?feat:=20=E6=9B=B4=E6=96=B0=E6=9E=84?= =?UTF-8?q?=E5=BB=BA=E5=92=8C=E6=B5=8B=E8=AF=95=E5=B7=A5=E4=BD=9C=E6=B5=81?= =?UTF-8?q?=EF=BC=8C=E6=B7=BB=E5=8A=A0=E8=99=9A=E6=8B=9F=E7=8E=AF=E5=A2=83?= =?UTF-8?q?=E6=BF=80=E6=B4=BB=E8=84=9A=E6=9C=AC=EF=BC=8C=E4=BC=98=E5=8C=96?= =?UTF-8?q?=20bootstrap=20=E8=84=9A=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/build.yml | 4 +- .github/workflows/test.yml | 2 +- .gitignore | 5 +++ README.md | 89 ++++++++++++++++++++++++++++++------- README_CN.md | 88 +++++++++++++++++++++++++++++------- activate.sh | 35 +++++++++++++++ bootstrap.sh | 53 +++++++++++++++------- 7 files changed, 225 insertions(+), 51 deletions(-) create mode 100755 activate.sh diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index d9daba86..7f8b8967 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -21,7 +21,7 @@ jobs: targets: x86_64-unknown-none, riscv64gc-unknown-none-elf, aarch64-unknown-none, aarch64-unknown-none-softfloat - name: Check rust version run: rustc --version --verbose - - run: ./bootstrap.sh + - run: source .activate/.sh - name: Clippy the repo continue-on-error: ${{ matrix.rust-toolchain == 'nightly' }} run: ./task.py clippy --arch ${{ matrix.arch }} @@ -65,7 +65,7 @@ jobs: targets: x86_64-unknown-none, riscv64gc-unknown-none-elf, aarch64-unknown-none, aarch64-unknown-none-softfloat - uses: Swatinem/rust-cache@v2 - run: cargo install cargo-binutils - - run: ./bootstrap.sh + - run: source .activate/.sh - name: Build the repo continue-on-error: ${{ matrix.rust-toolchain == 'nightly' }} run: ./task.py build --plat ${{ matrix.plat }} diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 36d311d2..42d45a39 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -134,7 +134,7 @@ jobs: tar -xzf $WORKDIR/source.tar.gz -C $WORKDIR cd $WORKDIR - ./bootstrap.sh + source .activate/.sh ./task.py run --plat x86-qemu-q35 --vmconfigs $WORKDIR/configs/vms/nimbos-x86_64.toml --arceos-args DISK_IMG=$WORKDIR/disk-x86_64.img,LOG=info,BLK=y,MEM=8g,ACCEL=y --features fs | tee $WORKDIR/make_output.log # make -C $WORKDIR ARCH=x86_64 defconfig diff --git a/.gitignore b/.gitignore index 0998b8ff..b280fef5 100644 --- a/.gitignore +++ b/.gitignore @@ -16,6 +16,11 @@ actual.out qemu.log rusty-tags.vi +# Python virtual environment +venv/ +__pycache__/ +*.pyc +*.pyo /**/.axconfig.* /**/.hvconfig.* diff --git a/README.md b/README.md index 19493112..e6f0e656 100644 --- a/README.md +++ b/README.md @@ -46,23 +46,80 @@ Currently, AxVisor has been verified on the following platforms: Currently, AxVisor has been verified in scenarios with the following systems as guests: -* [ArceOS](https://github.com/arceos-org/arceos) -* [Starry-OS](https://github.com/Starry-OS) -* [NimbOS](https://github.com/equation314/nimbos) -* Linux - * currently only Linux with passthrough device on aarch64 is tested. - * single core: [config.toml](configs/vms/linux-qemu-aarch64.toml) | [dts](configs/vms/linux-qemu.dts) - * smp: [config.toml](configs/vms/linux-qemu-aarch64-smp2.toml) | [dts](configs/vms/linux-qemu-smp2.dts) +- [ArceOS](https://github.com/arceos-org/arceos) +- [Starry-OS](https://github.com/Starry-OS) +- [NimbOS](https://github.com/equation314/nimbos) +- Linux + - currently only Linux with passthrough device on aarch64 is tested. + - single core: [config.toml](configs/vms/linux-qemu-aarch64.toml) | [dts](configs/vms/linux-qemu.dts) + - smp: [config.toml](configs/vms/linux-qemu-aarch64-smp2.toml) | [dts](configs/vms/linux-qemu-smp2.dts) # Build and Run After AxVisor starts, it loads and starts the guest based on the information in the guest configuration file. Currently, AxVisor supports loading guest images from a FAT32 file system and also supports binding guest images to the hypervisor image through static compilation (using include_bytes). +## Quick Start + +### 1. Python Environment Setup + +AxVisor uses a Python script (`task.py`) for build and run management. To set up the required Python environment: + +```bash +# Option 1: Manual setup +# Install Python dependencies in a virtual environment +./bootstrap.sh + +# Activate the virtual environment +source venv/bin/activate + +# Option 2: Automatic setup (recommended) +# Use the convenience script that automatically runs bootstrap if needed +source activate.sh +``` + +The `bootstrap.sh` script will: + +- Create a Python virtual environment in the `venv/` directory +- Install all required dependencies from `requirements.txt` +- Test that `task.py` runs correctly + +The `activate.sh` script will: + +- Automatically run `bootstrap.sh` if the virtual environment doesn't exist +- Activate the existing virtual environment if it exists +- Show a message if already in a virtual environment + +### 2. Basic Usage + +Once the Python environment is set up: + +```bash +# Build the project +./task.py build + +# Run the project +./task.py run + +# Get help +./task.py --help +./task.py build --help +./task.py run --help +``` + +### 3. Deactivating Virtual Environment + +When you're done working with the project: + +```bash +deactivate +``` + ## Build Environment AxVisor is written in the Rust programming language, so you need to install the Rust development environment following the instructions on the official Rust website. Additionally, you need to install cargo-binutils to use tools like rust-objcopy and rust-objdump. + ```console -$ cargo install cargo-binutils +cargo install cargo-binutils ``` If necessary, you may also need to install [musl-gcc](http://musl.cc/x86_64-linux-musl-cross.tgz) to build guest applications. @@ -83,10 +140,10 @@ In addition, you can use the [axvmconfig](https://github.com/arceos-hypervisor/a 2. Manually mount `disk.img`, and then place your guest machine image into the file system. ```console - $ mkdir -p tmp - $ sudo mount disk.img tmp - $ sudo cp /PATH/TO/YOUR/GUEST/VM/IMAGE tmp/ - $ sudo umount tmp + mkdir -p tmp + sudo mount disk.img tmp + sudo cp /PATH/TO/YOUR/GUEST/VM/IMAGE tmp/ + sudo umount tmp ``` 3. Modify the configuration items in the corresponding `./configs/vms/.toml` @@ -239,7 +296,7 @@ This project exists thanks to all the people who contribute. AxVisor uses the following open-source license: - * Apache-2.0 - * MulanPubL-2.0 - * MulanPSL2 - * GPL-3.0-or-later +- Apache-2.0 +- MulanPubL-2.0 +- MulanPSL2 +- GPL-3.0-or-later diff --git a/README_CN.md b/README_CN.md index 4e5e61ec..89d10a41 100644 --- a/README_CN.md +++ b/README_CN.md @@ -46,24 +46,80 @@ AxVisor 的软件架构分为如下图所示的五层,其中,每一个框都 目前,AxVisor 已经在对如下系统作为客户机的情况进行了验证: -* [ArceOS](https://github.com/arceos-org/arceos) -* [Starry-OS](https://github.com/Starry-OS) -* [NimbOS](https://github.com/equation314/nimbos) -* Linux - * currently only Linux with passthrough device on aarch64 is tested. - * single core: [config.toml](configs/vms/linux-qemu-aarch64.toml) | [dts](configs/vms/linux-qemu.dts) - * smp: [config.toml](configs/vms/linux-qemu-aarch64-smp2.toml) | [dts](configs/vms/linux-qemu-smp2.dts) +- [ArceOS](https://github.com/arceos-org/arceos) +- [Starry-OS](https://github.com/Starry-OS) +- [NimbOS](https://github.com/equation314/nimbos) +- Linux + - currently only Linux with passthrough device on aarch64 is tested. + - single core: [config.toml](configs/vms/linux-qemu-aarch64.toml) | [dts](configs/vms/linux-qemu.dts) + - smp: [config.toml](configs/vms/linux-qemu-aarch64-smp2.toml) | [dts](configs/vms/linux-qemu-smp2.dts) # 构建及运行 AxVisor 启动之后会根据客户机配置文件中的信息加载并启动客户机。目前,AxVisor 即支持从 FAT32 文件系统加载客户机镜像,也支持通过静态编译方式(include_bytes)将客户机镜像绑定到虚拟机管理程序镜像中。 +## 快速开始 + +### 1. Python 环境设置 + +AxVisor 使用 Python 脚本 (`task.py`) 进行构建和运行管理。要设置所需的 Python 环境: + +```bash +# 方式一:手动设置 +# 在虚拟环境中安装 Python 依赖 +./bootstrap.sh + +# 激活虚拟环境 +source venv/bin/activate + +# 方式二:自动设置(推荐) +# 使用便捷脚本,会在需要时自动运行 bootstrap +source activate.sh +``` + +`bootstrap.sh` 脚本将会: + +- 在 `venv/` 目录中创建 Python 虚拟环境 +- 从 `requirements.txt` 安装所有必需的依赖项 +- 测试 `task.py` 是否正常运行 + +`activate.sh` 脚本将会: + +- 如果虚拟环境不存在,自动运行 `bootstrap.sh` +- 如果虚拟环境存在,激活现有的虚拟环境 +- 如果已经在虚拟环境中,显示提示信息 + +### 2. 基本使用 + +设置好 Python 环境后: + +```bash +# 构建项目 +./task.py build + +# 运行项目 +./task.py run + +# 获取帮助 +./task.py --help +./task.py build --help +./task.py run --help +``` + +### 3. 退出虚拟环境 + +完成项目工作后: + +```bash +deactivate +``` + ## 构建环境 AxVisor 是使用 Rust 编程语言编写的,因此,需要根据 Rust 官方网站的说明安装 Rust 开发环境。此外,还需要安装 [cargo-binutils](https://github.com/rust-embedded/cargo-binutils) 以便使用 `rust-objcopy` 和 `rust-objdump` 等工具 ```console -$ cargo install cargo-binutils +cargo install cargo-binutils ``` 根据需要,可能还要安装 [musl-gcc](http://musl.cc/x86_64-linux-musl-cross.tgz) 来构建客户机应用程序 @@ -84,10 +140,10 @@ $ cargo install cargo-binutils 2. 手动挂载 `disk.img`,然后将自己的客户机镜像复制到该文件系统中 ```bash - $ mkdir -p tmp - $ sudo mount disk.img tmp - $ sudo cp /PATH/TO/YOUR/GUEST/VM/IMAGE tmp/ - $ sudo umount tmp + mkdir -p tmp + sudo mount disk.img tmp + sudo cp /PATH/TO/YOUR/GUEST/VM/IMAGE tmp/ + sudo umount tmp ``` 3. 修改对应的 `./configs/vms/.toml` 文件中的配置项 @@ -224,7 +280,7 @@ AxVisor 作为组件化的虚拟机管理程序,很多组件是作为 Crate AxVisor 使用如下开源协议 - * Apache-2.0 - * MulanPubL-2.0 - * MulanPSL2 - * GPL-3.0-or-later +- Apache-2.0 +- MulanPubL-2.0 +- MulanPSL2 +- GPL-3.0-or-later diff --git a/activate.sh b/activate.sh new file mode 100755 index 00000000..c50c49e5 --- /dev/null +++ b/activate.sh @@ -0,0 +1,35 @@ +#!/bin/bash +# -*- coding: utf-8 -*- + +# Axvisor 虚拟环境激活脚本 +# 用法: source activate.sh +# 如果虚拟环境不存在,会自动运行 bootstrap.sh 来创建 + +# 检查虚拟环境是否存在 +if [[ ! -d "venv" ]]; then + echo "虚拟环境不存在,正在自动运行 bootstrap.sh..." + if ! ./bootstrap.sh; then + echo "错误: bootstrap.sh 执行失败" + return 1 2>/dev/null || exit 1 + fi + echo "" +fi + +# 检查是否已经在虚拟环境中 +if [[ "$VIRTUAL_ENV" != "" ]]; then + echo "已经在虚拟环境中: $VIRTUAL_ENV" + return 0 2>/dev/null || exit 0 +fi + +# 激活虚拟环境 +echo "激活 Axvisor 虚拟环境..." +source venv/bin/activate + +echo "✓ 虚拟环境已激活" +echo "您现在可以使用以下命令:" +echo " ./task.py build # 构建项目" +echo " ./task.py run # 运行项目" +echo " ./task.py build --help # 查看构建选项" +echo " ./task.py run --help # 查看运行选项" +echo "" +echo "要退出虚拟环境,请运行: deactivate" diff --git a/bootstrap.sh b/bootstrap.sh index 0e4631cd..bb9cc3c3 100755 --- a/bootstrap.sh +++ b/bootstrap.sh @@ -2,47 +2,60 @@ # -*- coding: utf-8 -*- # Axvisor Bootstrap Script -# 此脚本用于安装 task.py 所需的 Python 依赖 +# 此脚本用于创建 Python 虚拟环境并安装 task.py 所需的依赖 set -e # 遇到错误时退出 echo "=== Axvisor Bootstrap Script ===" -echo "正在安装 task.py 所需的 Python 依赖..." +echo "正在设置 Python 虚拟环境..." # 检查 Python 版本 python_version=$(python3 --version 2>&1 | awk '{print $2}' | cut -d. -f1,2) echo "检测到 Python 版本: $python_version" -# 检查是否有 pip -if ! command -v pip3 &> /dev/null; then - echo "错误: pip3 未找到,请先安装 pip3" +# 检查是否有 python3-venv +if ! python3 -c "import venv" 2>/dev/null; then + echo "错误: python3-venv 模块未找到,请安装 python3-venv" + echo "在 Ubuntu/Debian 上运行: sudo apt install python3-venv" + echo "在 CentOS/RHEL 上运行: sudo yum install python3-venv" exit 1 fi -echo "检测到 pip3 版本: $(pip3 --version)" - # 检查 requirements.txt 文件是否存在 if [[ ! -f "requirements.txt" ]]; then echo "错误: requirements.txt 文件未找到" exit 1 fi -echo "正在安装 Python 依赖..." +# 虚拟环境目录 +VENV_DIR="venv" -# 检查是否在虚拟环境中 -if [[ "$VIRTUAL_ENV" != "" ]]; then - echo "检测到虚拟环境: $VIRTUAL_ENV" - pip install -r requirements.txt +# 创建虚拟环境(如果不存在) +if [[ ! -d "$VENV_DIR" ]]; then + echo "创建 Python 虚拟环境..." + python3 -m venv "$VENV_DIR" + echo "✓ 虚拟环境已创建在 $VENV_DIR/" else - echo "未检测到虚拟环境,使用 --user 安装" - pip3 install --user -r requirements.txt + echo "✓ 检测到已存在的虚拟环境: $VENV_DIR/" fi +# 激活虚拟环境 +echo "激活虚拟环境..." +source "$VENV_DIR/bin/activate" + +# 升级 pip +echo "升级 pip..." +pip install --upgrade pip + +# 安装依赖 +echo "正在安装 Python 依赖..." +pip install -r requirements.txt + echo "依赖安装完成!" # 测试 task.py 是否可以正常运行 echo "测试 task.py..." -if ./task.py --help > /dev/null 2>&1; then +if python3 ./task.py --help > /dev/null 2>&1; then echo "✓ task.py 运行正常" else echo "✗ task.py 运行失败,请检查安装" @@ -50,8 +63,16 @@ else fi echo "=== Bootstrap 完成 ===" -echo "您现在可以使用以下命令:" +echo "虚拟环境已设置完成!" +echo "" +echo "要使用项目,请先激活虚拟环境:" +echo " source venv/bin/activate" +echo "" +echo "然后您可以使用以下命令:" echo " ./task.py build # 构建项目" echo " ./task.py run # 运行项目" echo " ./task.py build --help # 查看构建选项" echo " ./task.py run --help # 查看运行选项" +echo "" +echo "要退出虚拟环境,请运行:" +echo " deactivate" From 486213ec02ffe9f48101b0317101d215d8a0e46b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E7=9D=BF?= Date: Mon, 18 Aug 2025 12:00:41 +0800 Subject: [PATCH 101/219] =?UTF-8?q?fix:=20=E4=BF=AE=E6=AD=A3=E6=BF=80?= =?UTF-8?q?=E6=B4=BB=E8=84=9A=E6=9C=AC=E8=B7=AF=E5=BE=84=EF=BC=8C=E7=A1=AE?= =?UTF-8?q?=E4=BF=9D=E6=AD=A3=E7=A1=AE=E5=8A=A0=E8=BD=BD=E7=8E=AF=E5=A2=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/build.yml | 4 ++-- .github/workflows/test.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 7f8b8967..deb77888 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -21,7 +21,7 @@ jobs: targets: x86_64-unknown-none, riscv64gc-unknown-none-elf, aarch64-unknown-none, aarch64-unknown-none-softfloat - name: Check rust version run: rustc --version --verbose - - run: source .activate/.sh + - run: source ./activate.sh - name: Clippy the repo continue-on-error: ${{ matrix.rust-toolchain == 'nightly' }} run: ./task.py clippy --arch ${{ matrix.arch }} @@ -65,7 +65,7 @@ jobs: targets: x86_64-unknown-none, riscv64gc-unknown-none-elf, aarch64-unknown-none, aarch64-unknown-none-softfloat - uses: Swatinem/rust-cache@v2 - run: cargo install cargo-binutils - - run: source .activate/.sh + - run: source ./activate.sh - name: Build the repo continue-on-error: ${{ matrix.rust-toolchain == 'nightly' }} run: ./task.py build --plat ${{ matrix.plat }} diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 42d45a39..289ccb2c 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -134,7 +134,7 @@ jobs: tar -xzf $WORKDIR/source.tar.gz -C $WORKDIR cd $WORKDIR - source .activate/.sh + source ./activate.sh ./task.py run --plat x86-qemu-q35 --vmconfigs $WORKDIR/configs/vms/nimbos-x86_64.toml --arceos-args DISK_IMG=$WORKDIR/disk-x86_64.img,LOG=info,BLK=y,MEM=8g,ACCEL=y --features fs | tee $WORKDIR/make_output.log # make -C $WORKDIR ARCH=x86_64 defconfig From a7e65d86408113f929f0b1e6a58f234b8a1afa07 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E7=9D=BF?= Date: Mon, 18 Aug 2025 12:05:11 +0800 Subject: [PATCH 102/219] =?UTF-8?q?fix:=20=E7=A7=BB=E9=99=A4=E6=97=A0?= =?UTF-8?q?=E7=94=A8=E6=9E=B6=E6=9E=84=E6=B3=A8=E9=87=8A=EF=BC=8C=E6=9B=B4?= =?UTF-8?q?=E6=96=B0=20bootstrap=20=E6=AD=A5=E9=AA=A4=E4=BB=A5=E4=BD=BF?= =?UTF-8?q?=E7=94=A8=E6=BF=80=E6=B4=BB=E8=84=9A=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/test.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 289ccb2c..bfcd96f3 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -13,7 +13,6 @@ jobs: fail-fast: false matrix: os: [ubuntu-latest] - # arch: [riscv64, aarch64] plat: [aarch64-generic] rust-toolchain: [nightly-2025-05-20, nightly] steps: @@ -43,7 +42,7 @@ jobs: sed -i "s/^channel = .*/channel = \"${{ matrix.rust-toolchain }}\"/" rust-toolchain.toml - name: bootstrap run: | - ./bootstrap.sh + source ./activate.sh - name: Run guests continue-on-error: ${{ matrix.rust-toolchain == 'nightly' }} run: | From b08f909a2b6b8514881601218b2d4605bde4ff99 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E7=9D=BF?= Date: Mon, 18 Aug 2025 12:10:16 +0800 Subject: [PATCH 103/219] update --- Cargo.lock | 32 +++++++++++++++++++++++++++----- platform/x86-qemu-q35/Cargo.toml | 5 +---- 2 files changed, 28 insertions(+), 9 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index b4ea0867..07a048b0 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -634,6 +634,20 @@ dependencies = [ "memory_addr", ] +[[package]] +name = "axplat" +version = "0.1.0" +source = "git+https://github.com/arceos-org/axplat_crates.git#1540b43433377aaf432ad4ce2fac70d07a99d754" +dependencies = [ + "axplat-macros 0.1.0 (git+https://github.com/arceos-org/axplat_crates.git)", + "bitflags 2.9.2", + "const-str", + "crate_interface", + "handler_table", + "kspin", + "memory_addr", +] + [[package]] name = "axplat-aarch64-dyn" version = "0.1.0" @@ -740,6 +754,16 @@ dependencies = [ "syn 2.0.106", ] +[[package]] +name = "axplat-macros" +version = "0.1.0" +source = "git+https://github.com/arceos-org/axplat_crates.git#1540b43433377aaf432ad4ce2fac70d07a99d754" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", +] + [[package]] name = "axplat-riscv64-qemu-virt" version = "0.1.0" @@ -781,11 +805,11 @@ dependencies = [ [[package]] name = "axplat-x86-pc" version = "0.1.1" -source = "git+https://github.com/arceos-hypervisor/axplat_crates?branch=vmm#7aaceecbb446abac7e3eeafa03e5a6e257fea575" +source = "git+https://github.com/arceos-org/axplat_crates.git#1540b43433377aaf432ad4ce2fac70d07a99d754" dependencies = [ "axconfig-macros", "axcpu", - "axplat 0.1.0 (git+https://github.com/arceos-hypervisor/axplat_crates?branch=vmm)", + "axplat 0.1.0 (git+https://github.com/arceos-org/axplat_crates.git)", "bitflags 2.9.2", "heapless", "int_ratio", @@ -805,9 +829,7 @@ dependencies = [ name = "axplat-x86-qemu-q35" version = "0.1.0" dependencies = [ - "axplat-x86-pc 0.1.1 (git+https://github.com/arceos-hypervisor/axplat_crates?branch=vmm)", - "serde", - "toml 0.8.23", + "axplat-x86-pc 0.1.1 (git+https://github.com/arceos-org/axplat_crates.git)", ] [[package]] diff --git a/platform/x86-qemu-q35/Cargo.toml b/platform/x86-qemu-q35/Cargo.toml index aa3d2190..56cd4435 100644 --- a/platform/x86-qemu-q35/Cargo.toml +++ b/platform/x86-qemu-q35/Cargo.toml @@ -9,8 +9,5 @@ reboot-on-system-off = ["axplat-x86-pc/reboot_on_system_off"] rtc = ["axplat-x86-pc/x86_rtc"] [dependencies] -axplat-x86-pc = {git = "https://github.com/arceos-hypervisor/axplat_crates.git", branch = "vmm",features=["irq", "smp"]} +axplat-x86-pc = {git = "https://github.com/arceos-org/axplat_crates.git", features=["irq", "smp"]} -[build-dependencies] -serde = {version = "1.0", features = ["derive"]} -toml = "0.8" From bb6713613f3e0ec6269b71f26f4d9c89be489d09 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E7=9D=BF?= Date: Mon, 18 Aug 2025 14:37:44 +0800 Subject: [PATCH 104/219] update --- Cargo.lock | 7 ++++--- Cargo.toml | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 07a048b0..06d9ccc2 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -364,7 +364,7 @@ dependencies = [ [[package]] name = "axdevice" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/axdevice.git?branch=dev#a2657ad4c7a06577a9dd6b9bc282e96641b4ec24" +source = "git+https://github.com/arceos-hypervisor/axdevice.git#c4a0965ca45a3b9a34845fa774b1bd90fc8f4573" dependencies = [ "arm_vgic", "axaddrspace 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1016,7 +1016,7 @@ dependencies = [ [[package]] name = "axvm" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/axvm.git?branch=dev-irq#1ac93520d3e20104152da445947dc2a6d7556a88" +source = "git+https://github.com/arceos-hypervisor/axvm.git?branch=dev-irq#312ef08f71d8e21b26c6c4d4c1634266627ff4db" dependencies = [ "arm_vcpu", "arm_vgic", @@ -4087,7 +4087,8 @@ dependencies = [ [[package]] name = "x86_vcpu" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/x86_vcpu.git#f9e91e4a796a6410074a6dd0407fcf25ee4048bb" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "873e097d52e94c31be3f0175a9f8d6f2edbc77d7e2f8e6995427df9c08b30a2b" dependencies = [ "axaddrspace 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "axdevice_base", diff --git a/Cargo.toml b/Cargo.toml index 294c9398..e752f90a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -52,7 +52,7 @@ page_table_entry = {version = "0.5", features = ["arm-el2"]} page_table_multiarch = "0.5" percpu = {version = "0.2", features = ["arm-el2"]} -axdevice = {git = "https://github.com/arceos-hypervisor/axdevice.git", branch = "dev"} +axdevice = {git = "https://github.com/arceos-hypervisor/axdevice.git"} axdevice_base = "0.1" axvisor_api = "0.1" From 0a6e896e963654fd6f94120a7bfeaa36bc378fdb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E7=9D=BF?= Date: Tue, 19 Aug 2025 12:32:56 +0800 Subject: [PATCH 105/219] =?UTF-8?q?fix:=20=E6=9B=B4=E6=96=B0=E4=BE=9D?= =?UTF-8?q?=E8=B5=96=E9=A1=B9=E6=BA=90=E5=92=8C=E7=89=88=E6=9C=AC=EF=BC=8C?= =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=BF=80=E6=B4=BB=E8=84=9A=E6=9C=AC=E9=94=99?= =?UTF-8?q?=E8=AF=AF=E6=8F=90=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Cargo.lock | 26 +++++++++-------- README.md | 44 +++++++++++------------------ README_CN.md | 42 +++++++++++---------------- activate.sh | 9 ++---- platform/x86-qemu-q35/axconfig.toml | 4 +-- 5 files changed, 52 insertions(+), 73 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 06d9ccc2..96ee4274 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -623,9 +623,9 @@ dependencies = [ [[package]] name = "axplat" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/axplat_crates?branch=vmm#7aaceecbb446abac7e3eeafa03e5a6e257fea575" +source = "git+https://github.com/arceos-hypervisor/axplat_crates#1540b43433377aaf432ad4ce2fac70d07a99d754" dependencies = [ - "axplat-macros 0.1.0 (git+https://github.com/arceos-hypervisor/axplat_crates?branch=vmm)", + "axplat-macros 0.1.0 (git+https://github.com/arceos-hypervisor/axplat_crates)", "bitflags 2.9.2", "const-str", "crate_interface", @@ -651,14 +651,14 @@ dependencies = [ [[package]] name = "axplat-aarch64-dyn" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/axplat-aarch64-dyn?branch=vmm#6903dc6412fff2e08feb99f27a6055d04ed25895" +source = "git+https://github.com/arceos-hypervisor/axplat-aarch64-dyn?branch=vmm#f2c1f95ca11802df2bdfb1ee7d5b39a10cd25015" dependencies = [ "aarch64-cpu", "aarch64-cpu-ext", "any-uart", "axconfig-macros", "axcpu", - "axplat 0.1.0 (git+https://github.com/arceos-hypervisor/axplat_crates?branch=vmm)", + "axplat 0.1.0 (git+https://github.com/arceos-hypervisor/axplat_crates)", "fdt-parser", "heapless", "lazyinit", @@ -747,7 +747,7 @@ dependencies = [ [[package]] name = "axplat-macros" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/axplat_crates?branch=vmm#7aaceecbb446abac7e3eeafa03e5a6e257fea575" +source = "git+https://github.com/arceos-hypervisor/axplat_crates#1540b43433377aaf432ad4ce2fac70d07a99d754" dependencies = [ "proc-macro2", "quote", @@ -1764,19 +1764,21 @@ checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87" [[package]] name = "hyper" -version = "1.6.0" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc2b571658e38e0c01b1fdca3bbbe93c00d3d71693ff2770043f8c29bc7d6f80" +checksum = "eb3aa54a13a0dfe7fbe3a59e0c76093041720fdc77b110cc0fc260fafb4dc51e" dependencies = [ + "atomic-waker", "bytes", "futures-channel", - "futures-util", + "futures-core", "h2", "http", "http-body", "httparse", "itoa", "pin-project-lite", + "pin-utils", "smallvec", "tokio", "want", @@ -2518,9 +2520,9 @@ dependencies = [ [[package]] name = "prettyplease" -version = "0.2.36" +version = "0.2.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff24dfcda44452b9816fff4cd4227e1bb73ff5a2f1bc1105aa92fb8565ce44d2" +checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" dependencies = [ "proc-macro2", "syn 2.0.106", @@ -3128,9 +3130,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.142" +version = "1.0.143" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "030fedb782600dcbd6f02d479bf0d817ac3bb40d644745b769d6a96bc3afc5a7" +checksum = "d401abef1d108fbd9cbaebc3e46611f4b1021f714a0597a71f41ee463f5f4a5a" dependencies = [ "itoa", "memchr", diff --git a/README.md b/README.md index e6f0e656..68e1e61b 100644 --- a/README.md +++ b/README.md @@ -46,13 +46,13 @@ Currently, AxVisor has been verified on the following platforms: Currently, AxVisor has been verified in scenarios with the following systems as guests: -- [ArceOS](https://github.com/arceos-org/arceos) -- [Starry-OS](https://github.com/Starry-OS) -- [NimbOS](https://github.com/equation314/nimbos) -- Linux - - currently only Linux with passthrough device on aarch64 is tested. - - single core: [config.toml](configs/vms/linux-qemu-aarch64.toml) | [dts](configs/vms/linux-qemu.dts) - - smp: [config.toml](configs/vms/linux-qemu-aarch64-smp2.toml) | [dts](configs/vms/linux-qemu-smp2.dts) +* [ArceOS](https://github.com/arceos-org/arceos) +* [Starry-OS](https://github.com/Starry-OS) +* [NimbOS](https://github.com/equation314/nimbos) +* Linux + * currently only Linux with passthrough device on aarch64 is tested. + * single core: [config.toml](configs/vms/linux-qemu-aarch64.toml) | [dts](configs/vms/linux-qemu.dts) + * smp: [config.toml](configs/vms/linux-qemu-aarch64-smp2.toml) | [dts](configs/vms/linux-qemu-smp2.dts) # Build and Run @@ -65,30 +65,21 @@ After AxVisor starts, it loads and starts the guest based on the information in AxVisor uses a Python script (`task.py`) for build and run management. To set up the required Python environment: ```bash -# Option 1: Manual setup # Install Python dependencies in a virtual environment ./bootstrap.sh # Activate the virtual environment source venv/bin/activate -# Option 2: Automatic setup (recommended) -# Use the convenience script that automatically runs bootstrap if needed +# Or use the convenience script source activate.sh ``` The `bootstrap.sh` script will: - - Create a Python virtual environment in the `venv/` directory - Install all required dependencies from `requirements.txt` - Test that `task.py` runs correctly -The `activate.sh` script will: - -- Automatically run `bootstrap.sh` if the virtual environment doesn't exist -- Activate the existing virtual environment if it exists -- Show a message if already in a virtual environment - ### 2. Basic Usage Once the Python environment is set up: @@ -117,9 +108,8 @@ deactivate ## Build Environment AxVisor is written in the Rust programming language, so you need to install the Rust development environment following the instructions on the official Rust website. Additionally, you need to install cargo-binutils to use tools like rust-objcopy and rust-objdump. - ```console -cargo install cargo-binutils +$ cargo install cargo-binutils ``` If necessary, you may also need to install [musl-gcc](http://musl.cc/x86_64-linux-musl-cross.tgz) to build guest applications. @@ -140,10 +130,10 @@ In addition, you can use the [axvmconfig](https://github.com/arceos-hypervisor/a 2. Manually mount `disk.img`, and then place your guest machine image into the file system. ```console - mkdir -p tmp - sudo mount disk.img tmp - sudo cp /PATH/TO/YOUR/GUEST/VM/IMAGE tmp/ - sudo umount tmp + $ mkdir -p tmp + $ sudo mount disk.img tmp + $ sudo cp /PATH/TO/YOUR/GUEST/VM/IMAGE tmp/ + $ sudo umount tmp ``` 3. Modify the configuration items in the corresponding `./configs/vms/.toml` @@ -296,7 +286,7 @@ This project exists thanks to all the people who contribute. AxVisor uses the following open-source license: -- Apache-2.0 -- MulanPubL-2.0 -- MulanPSL2 -- GPL-3.0-or-later + * Apache-2.0 + * MulanPubL-2.0 + * MulanPSL2 + * GPL-3.0-or-later diff --git a/README_CN.md b/README_CN.md index 89d10a41..34c408b4 100644 --- a/README_CN.md +++ b/README_CN.md @@ -46,13 +46,13 @@ AxVisor 的软件架构分为如下图所示的五层,其中,每一个框都 目前,AxVisor 已经在对如下系统作为客户机的情况进行了验证: -- [ArceOS](https://github.com/arceos-org/arceos) -- [Starry-OS](https://github.com/Starry-OS) -- [NimbOS](https://github.com/equation314/nimbos) -- Linux - - currently only Linux with passthrough device on aarch64 is tested. - - single core: [config.toml](configs/vms/linux-qemu-aarch64.toml) | [dts](configs/vms/linux-qemu.dts) - - smp: [config.toml](configs/vms/linux-qemu-aarch64-smp2.toml) | [dts](configs/vms/linux-qemu-smp2.dts) +* [ArceOS](https://github.com/arceos-org/arceos) +* [Starry-OS](https://github.com/Starry-OS) +* [NimbOS](https://github.com/equation314/nimbos) +* Linux + * currently only Linux with passthrough device on aarch64 is tested. + * single core: [config.toml](configs/vms/linux-qemu-aarch64.toml) | [dts](configs/vms/linux-qemu.dts) + * smp: [config.toml](configs/vms/linux-qemu-aarch64-smp2.toml) | [dts](configs/vms/linux-qemu-smp2.dts) # 构建及运行 @@ -65,15 +65,13 @@ AxVisor 启动之后会根据客户机配置文件中的信息加载并启动客 AxVisor 使用 Python 脚本 (`task.py`) 进行构建和运行管理。要设置所需的 Python 环境: ```bash -# 方式一:手动设置 # 在虚拟环境中安装 Python 依赖 ./bootstrap.sh # 激活虚拟环境 source venv/bin/activate -# 方式二:自动设置(推荐) -# 使用便捷脚本,会在需要时自动运行 bootstrap +# 或使用便捷脚本 source activate.sh ``` @@ -83,12 +81,6 @@ source activate.sh - 从 `requirements.txt` 安装所有必需的依赖项 - 测试 `task.py` 是否正常运行 -`activate.sh` 脚本将会: - -- 如果虚拟环境不存在,自动运行 `bootstrap.sh` -- 如果虚拟环境存在,激活现有的虚拟环境 -- 如果已经在虚拟环境中,显示提示信息 - ### 2. 基本使用 设置好 Python 环境后: @@ -119,7 +111,7 @@ deactivate AxVisor 是使用 Rust 编程语言编写的,因此,需要根据 Rust 官方网站的说明安装 Rust 开发环境。此外,还需要安装 [cargo-binutils](https://github.com/rust-embedded/cargo-binutils) 以便使用 `rust-objcopy` 和 `rust-objdump` 等工具 ```console -cargo install cargo-binutils +$ cargo install cargo-binutils ``` 根据需要,可能还要安装 [musl-gcc](http://musl.cc/x86_64-linux-musl-cross.tgz) 来构建客户机应用程序 @@ -140,10 +132,10 @@ cargo install cargo-binutils 2. 手动挂载 `disk.img`,然后将自己的客户机镜像复制到该文件系统中 ```bash - mkdir -p tmp - sudo mount disk.img tmp - sudo cp /PATH/TO/YOUR/GUEST/VM/IMAGE tmp/ - sudo umount tmp + $ mkdir -p tmp + $ sudo mount disk.img tmp + $ sudo cp /PATH/TO/YOUR/GUEST/VM/IMAGE tmp/ + $ sudo umount tmp ``` 3. 修改对应的 `./configs/vms/.toml` 文件中的配置项 @@ -280,7 +272,7 @@ AxVisor 作为组件化的虚拟机管理程序,很多组件是作为 Crate AxVisor 使用如下开源协议 -- Apache-2.0 -- MulanPubL-2.0 -- MulanPSL2 -- GPL-3.0-or-later + * Apache-2.0 + * MulanPubL-2.0 + * MulanPSL2 + * GPL-3.0-or-later diff --git a/activate.sh b/activate.sh index c50c49e5..bb754028 100755 --- a/activate.sh +++ b/activate.sh @@ -3,16 +3,11 @@ # Axvisor 虚拟环境激活脚本 # 用法: source activate.sh -# 如果虚拟环境不存在,会自动运行 bootstrap.sh 来创建 # 检查虚拟环境是否存在 if [[ ! -d "venv" ]]; then - echo "虚拟环境不存在,正在自动运行 bootstrap.sh..." - if ! ./bootstrap.sh; then - echo "错误: bootstrap.sh 执行失败" - return 1 2>/dev/null || exit 1 - fi - echo "" + echo "错误: 虚拟环境不存在,请先运行 ./bootstrap.sh" + return 1 2>/dev/null || exit 1 fi # 检查是否已经在虚拟环境中 diff --git a/platform/x86-qemu-q35/axconfig.toml b/platform/x86-qemu-q35/axconfig.toml index 5db712b0..72df56c2 100644 --- a/platform/x86-qemu-q35/axconfig.toml +++ b/platform/x86-qemu-q35/axconfig.toml @@ -40,11 +40,11 @@ boot-stack-size = 0x40000 # uint mmio-regions = [ [0xb000_0000, 0x1000_0000], # PCI config space [0xfe00_0000, 0xc0_0000], # PCI devices - [0x7000000000, 0x4000], # PCI devices [0xfec0_0000, 0x1000], # IO APIC [0xfed0_0000, 0x1000], # HPET [0xfee0_0000, 0x1000], # Local APIC - [0x380000000000, 0x4000] # PCI devices + # [0x70_0000_0000, 0x4000], # PCI devices + # [0x3800_0000_0000, 0x4000] # PCI devices ] # [(uint, uint)] # VirtIO MMIO regions with format (`base_paddr`, `size`). From 6bd112bd80d1216facf709d56d387903ffc46f23 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E7=9D=BF?= Date: Wed, 20 Aug 2025 12:31:11 +0800 Subject: [PATCH 106/219] Add AArch64 architecture support and refactor cache operations - Updated Cargo.toml to include new dependencies for AArch64 architecture. - Implemented AArch64-specific interrupt handling in src/hal/arch/aarch64/api.rs. - Created cache operations for AArch64 in src/hal/arch/aarch64/cache.rs. - Refactored interrupt injection logic in src/hal/arch/aarch64/mod.rs. - Added a stub for x86_64 cache operations in src/hal/arch/x86_64/mod.rs. - Implemented memory management functions in src/hal/mod.rs for virtual machines. - Removed obsolete cache assembly code and Rust wrappers from utils. - Updated image loading logic in src/vmm/images.rs to use new cache operations. --- Cargo.lock | 513 +++++++++++++++++++++++++++----- Cargo.toml | 5 + src/hal/arch/aarch64/api.rs | 67 +++++ src/hal/arch/aarch64/cache.rs | 17 ++ src/hal/arch/aarch64/mod.rs | 201 +++++++++++++ src/hal/arch/x86_64/mod.rs | 1 + src/{hal.rs => hal/mod.rs} | 239 +-------------- src/main.rs | 1 - src/utils/arch/aarch64/cache.S | 27 -- src/utils/arch/aarch64/cache.rs | 10 - src/utils/arch/aarch64/mod.rs | 2 - src/utils/arch/mod.rs | 14 - src/utils/arch/riscv/mod.rs | 11 - src/utils/arch/x86_64/mod.rs | 11 - src/utils/mod.rs | 12 - src/vmm/images.rs | 8 +- 16 files changed, 745 insertions(+), 394 deletions(-) create mode 100644 src/hal/arch/aarch64/api.rs create mode 100644 src/hal/arch/aarch64/cache.rs create mode 100644 src/hal/arch/aarch64/mod.rs create mode 100644 src/hal/arch/x86_64/mod.rs rename src/{hal.rs => hal/mod.rs} (50%) delete mode 100644 src/utils/arch/aarch64/cache.S delete mode 100644 src/utils/arch/aarch64/cache.rs delete mode 100644 src/utils/arch/aarch64/mod.rs delete mode 100644 src/utils/arch/mod.rs delete mode 100644 src/utils/arch/riscv/mod.rs delete mode 100644 src/utils/arch/x86_64/mod.rs delete mode 100644 src/utils/mod.rs diff --git a/Cargo.lock b/Cargo.lock index 96ee4274..0213a883 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -133,7 +133,7 @@ checksum = "b0674a1ddeecb70197781e945de4b3b8ffb61fa939a5597bcf48503737663100" [[package]] name = "arceos_api" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#587fc9e1b8ed8b7e7ae0bb2fc1166d6dbdd4838c" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#800ae7ff9c2cd354a14ea27eeed4c415744b38ea" dependencies = [ "axalloc", "axconfig", @@ -151,14 +151,15 @@ dependencies = [ [[package]] name = "arm-gic-driver" -version = "0.14.9" +version = "0.15.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a886a953642fbf21eb5928c49a05f021fae007219ae8cb2dafbf403dfeba974a" +checksum = "234fbc75ee659ae0fa44cdbe9a61f84cc4a107b024efd872e7ad56ad82f9ab08" dependencies = [ "aarch64-cpu", "bitflags 2.9.2", "enum_dispatch", "log", + "paste", "rdif-intc", "tock-registers 0.9.0", ] @@ -298,7 +299,7 @@ dependencies = [ [[package]] name = "axalloc" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#587fc9e1b8ed8b7e7ae0bb2fc1166d6dbdd4838c" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#800ae7ff9c2cd354a14ea27eeed4c415744b38ea" dependencies = [ "allocator", "axerrno", @@ -311,7 +312,7 @@ dependencies = [ [[package]] name = "axconfig" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#587fc9e1b8ed8b7e7ae0bb2fc1166d6dbdd4838c" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#800ae7ff9c2cd354a14ea27eeed4c415744b38ea" dependencies = [ "axconfig-macros", ] @@ -395,7 +396,7 @@ dependencies = [ [[package]] name = "axdriver" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#587fc9e1b8ed8b7e7ae0bb2fc1166d6dbdd4838c" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#800ae7ff9c2cd354a14ea27eeed4c415744b38ea" dependencies = [ "arm-gic-driver", "axalloc", @@ -458,7 +459,7 @@ dependencies = [ [[package]] name = "axfeat" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#587fc9e1b8ed8b7e7ae0bb2fc1166d6dbdd4838c" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#800ae7ff9c2cd354a14ea27eeed4c415744b38ea" dependencies = [ "axalloc", "axdriver", @@ -474,7 +475,7 @@ dependencies = [ [[package]] name = "axfs" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#587fc9e1b8ed8b7e7ae0bb2fc1166d6dbdd4838c" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#800ae7ff9c2cd354a14ea27eeed4c415744b38ea" dependencies = [ "axdriver", "axdriver_block", @@ -528,7 +529,7 @@ dependencies = [ [[package]] name = "axhal" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#587fc9e1b8ed8b7e7ae0bb2fc1166d6dbdd4838c" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#800ae7ff9c2cd354a14ea27eeed4c415744b38ea" dependencies = [ "aarch64-cpu", "axalloc", @@ -572,7 +573,7 @@ dependencies = [ [[package]] name = "axlog" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#587fc9e1b8ed8b7e7ae0bb2fc1166d6dbdd4838c" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#800ae7ff9c2cd354a14ea27eeed4c415744b38ea" dependencies = [ "cfg-if", "crate_interface", @@ -583,7 +584,7 @@ dependencies = [ [[package]] name = "axmm" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#587fc9e1b8ed8b7e7ae0bb2fc1166d6dbdd4838c" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#800ae7ff9c2cd354a14ea27eeed4c415744b38ea" dependencies = [ "axalloc", "axconfig", @@ -599,7 +600,7 @@ dependencies = [ [[package]] name = "axns" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#587fc9e1b8ed8b7e7ae0bb2fc1166d6dbdd4838c" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#800ae7ff9c2cd354a14ea27eeed4c415744b38ea" dependencies = [ "crate_interface", "lazyinit", @@ -651,11 +652,12 @@ dependencies = [ [[package]] name = "axplat-aarch64-dyn" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/axplat-aarch64-dyn?branch=vmm#f2c1f95ca11802df2bdfb1ee7d5b39a10cd25015" +source = "git+https://github.com/arceos-hypervisor/axplat-aarch64-dyn?branch=vmm#9583231332994b2e0c5de2487f03f6cad4faf76f" dependencies = [ "aarch64-cpu", "aarch64-cpu-ext", "any-uart", + "arm-gic-driver", "axconfig-macros", "axcpu", "axplat 0.1.0 (git+https://github.com/arceos-hypervisor/axplat_crates)", @@ -665,11 +667,11 @@ dependencies = [ "log", "memory_addr", "page_table_entry", + "paste", "percpu", - "pie-boot", "rdrive", "serde", - "smccc", + "somehal", "spin 0.10.0", "toml 0.8.23", ] @@ -835,7 +837,7 @@ dependencies = [ [[package]] name = "axruntime" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#587fc9e1b8ed8b7e7ae0bb2fc1166d6dbdd4838c" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#800ae7ff9c2cd354a14ea27eeed4c415744b38ea" dependencies = [ "axalloc", "axconfig", @@ -865,7 +867,7 @@ dependencies = [ [[package]] name = "axstd" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#587fc9e1b8ed8b7e7ae0bb2fc1166d6dbdd4838c" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#800ae7ff9c2cd354a14ea27eeed4c415744b38ea" dependencies = [ "arceos_api", "axerrno", @@ -878,7 +880,7 @@ dependencies = [ [[package]] name = "axsync" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#587fc9e1b8ed8b7e7ae0bb2fc1166d6dbdd4838c" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#800ae7ff9c2cd354a14ea27eeed4c415744b38ea" dependencies = [ "axtask", "kspin", @@ -888,7 +890,7 @@ dependencies = [ [[package]] name = "axtask" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#587fc9e1b8ed8b7e7ae0bb2fc1166d6dbdd4838c" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#800ae7ff9c2cd354a14ea27eeed4c415744b38ea" dependencies = [ "axconfig", "axhal", @@ -934,6 +936,8 @@ dependencies = [ name = "axvisor" version = "0.1.0" dependencies = [ + "aarch64-cpu-ext", + "arm-gic-driver", "axaddrspace 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "axconfig", "axdevice", @@ -961,6 +965,7 @@ dependencies = [ "percpu", "prettyplease", "quote", + "rdrive", "spin 0.9.8", "syn 2.0.106", "timer_list", @@ -1082,6 +1087,12 @@ version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" +[[package]] +name = "base64" +version = "0.21.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" + [[package]] name = "base64" version = "0.22.1" @@ -1098,7 +1109,7 @@ dependencies = [ "cargo_metadata", "flate2", "rand", - "reqwest", + "reqwest 0.12.23", "tar", ] @@ -1228,9 +1239,9 @@ dependencies = [ [[package]] name = "cfg-if" -version = "1.0.1" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9555578bc9e57714c812a1f84e4fc5b4d21fcb063490c624de019f7464c91268" +checksum = "2fd1289c04a9ea8cb22300a459a72a385d7c73d3259e2ed7dcb2af674838cfa9" [[package]] name = "chrono" @@ -1581,6 +1592,7 @@ checksum = "65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876" dependencies = [ "futures-channel", "futures-core", + "futures-executor", "futures-io", "futures-sink", "futures-task", @@ -1603,12 +1615,34 @@ version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" +[[package]] +name = "futures-executor" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e28d1d997f585e54aebc3f97d39e72338912123a67330d723fdbb564d646c9f" +dependencies = [ + "futures-core", + "futures-task", + "futures-util", +] + [[package]] name = "futures-io" version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" +[[package]] +name = "futures-macro" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", +] + [[package]] name = "futures-sink" version = "0.3.31" @@ -1627,8 +1661,10 @@ version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" dependencies = [ + "futures-channel", "futures-core", "futures-io", + "futures-macro", "futures-sink", "futures-task", "memchr", @@ -1666,6 +1702,25 @@ version = "0.31.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" +[[package]] +name = "h2" +version = "0.3.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0beca50380b1fc32983fc1cb4587bfa4bb9e78fc259aad4a0032d2080309222d" +dependencies = [ + "bytes", + "fnv", + "futures-core", + "futures-sink", + "futures-util", + "http 0.2.12", + "indexmap", + "slab", + "tokio", + "tokio-util", + "tracing", +] + [[package]] name = "h2" version = "0.4.12" @@ -1677,7 +1732,7 @@ dependencies = [ "fnv", "futures-core", "futures-sink", - "http", + "http 1.3.1", "indexmap", "slab", "tokio", @@ -1722,6 +1777,17 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" +[[package]] +name = "http" +version = "0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" +dependencies = [ + "bytes", + "fnv", + "itoa", +] + [[package]] name = "http" version = "1.3.1" @@ -1733,6 +1799,17 @@ dependencies = [ "itoa", ] +[[package]] +name = "http-body" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" +dependencies = [ + "bytes", + "http 0.2.12", + "pin-project-lite", +] + [[package]] name = "http-body" version = "1.0.1" @@ -1740,7 +1817,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" dependencies = [ "bytes", - "http", + "http 1.3.1", ] [[package]] @@ -1751,8 +1828,8 @@ checksum = "b021d93e26becf5dc7e1b75b1bed1fd93124b374ceb73f43d4d4eafec896a64a" dependencies = [ "bytes", "futures-core", - "http", - "http-body", + "http 1.3.1", + "http-body 1.0.1", "pin-project-lite", ] @@ -1762,6 +1839,36 @@ version = "1.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87" +[[package]] +name = "httpdate" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" + +[[package]] +name = "hyper" +version = "0.14.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41dfc780fdec9373c01bae43289ea34c972e40ee3c9f6b3c8801a35f35586ce7" +dependencies = [ + "bytes", + "futures-channel", + "futures-core", + "futures-util", + "h2 0.3.27", + "http 0.2.12", + "http-body 0.4.6", + "httparse", + "httpdate", + "itoa", + "pin-project-lite", + "socket2 0.5.10", + "tokio", + "tower-service", + "tracing", + "want", +] + [[package]] name = "hyper" version = "1.7.0" @@ -1772,9 +1879,9 @@ dependencies = [ "bytes", "futures-channel", "futures-core", - "h2", - "http", - "http-body", + "h2 0.4.12", + "http 1.3.1", + "http-body 1.0.1", "httparse", "itoa", "pin-project-lite", @@ -1790,8 +1897,8 @@ version = "0.27.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e3c93eb611681b207e1fe55d5a71ecf91572ec8a6705cdb6857f7d8d5242cf58" dependencies = [ - "http", - "hyper", + "http 1.3.1", + "hyper 1.7.0", "hyper-util", "rustls", "rustls-pki-types", @@ -1800,6 +1907,19 @@ dependencies = [ "tower-service", ] +[[package]] +name = "hyper-tls" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" +dependencies = [ + "bytes", + "hyper 0.14.32", + "native-tls", + "tokio", + "tokio-native-tls", +] + [[package]] name = "hyper-tls" version = "0.6.0" @@ -1808,7 +1928,7 @@ checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0" dependencies = [ "bytes", "http-body-util", - "hyper", + "hyper 1.7.0", "hyper-util", "native-tls", "tokio", @@ -1827,15 +1947,15 @@ dependencies = [ "futures-channel", "futures-core", "futures-util", - "http", - "http-body", - "hyper", + "http 1.3.1", + "http-body 1.0.1", + "hyper 1.7.0", "ipnet", "libc", "percent-encoding", "pin-project-lite", - "socket2", - "system-configuration", + "socket2 0.6.0", + "system-configuration 0.6.1", "tokio", "tower-service", "tracing", @@ -2022,9 +2142,9 @@ dependencies = [ [[package]] name = "kasm-aarch64" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e484b7a4686e2750fae1b4c4b750e14f1522eb303288d9d2723a955c2a41b7d7" +checksum = "293e352fa2d4feed9895b65867bbbf9ead7a6c8a6ebc7e02c5a2f23c0db971d7" dependencies = [ "darling", "proc-macro2", @@ -2384,6 +2504,29 @@ dependencies = [ "x86", ] +[[package]] +name = "parking_lot" +version = "0.12.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70d58bf43669b5795d1576d0641cfb6fbb2057bf629506267a92807158584a13" +dependencies = [ + "lock_api", + "parking_lot_core", +] + +[[package]] +name = "parking_lot_core" +version = "0.9.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc838d2a56b5b1a6c25f55575dfc605fabb63bb2365f6c2353ef9159aa69e4a5" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall", + "smallvec", + "windows-targets 0.52.6", +] + [[package]] name = "paste" version = "1.0.15" @@ -2419,38 +2562,20 @@ dependencies = [ "syn 2.0.106", ] -[[package]] -name = "pie-boot" -version = "0.2.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "524d0fc5cd834d2179d8a88cde327b0e168dd6aedf30ce1832467a924a35594f" -dependencies = [ - "aarch64-cpu", - "aarch64-cpu-ext", - "bindeps-simple", - "fdt-parser", - "heapless", - "kasm-aarch64", - "kdef-pgtable", - "pie-boot-if", - "pie-boot-loader-aarch64", - "pie-boot-macros", -] - [[package]] name = "pie-boot-if" -version = "0.6.0" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c00af8d4efee0eee91ead95b34c50c067163dc4c90b874b1cc4caa671eb1d85b" +checksum = "c299ec1afe459d14459b06d621a771ebbbcf5834eb2734075b1837ca54f2e362" dependencies = [ "heapless", ] [[package]] name = "pie-boot-loader-aarch64" -version = "0.1.27" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4ee18ed1de7f55f318f01803bf7dc353ef492db71a2005fa3af36f116f25d28" +checksum = "f48afcaff9f2271cf8f8cac3b42a7e2f40f5ace66dccae755bd3a92b6486d17d" dependencies = [ "aarch64-cpu", "aarch64-cpu-ext", @@ -2655,9 +2780,9 @@ dependencies = [ [[package]] name = "rdif-intc" -version = "0.11.0" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4e7622f78dc9b40958500119553f3c15b9bb9829002d87d0f4b114ebe302a40" +checksum = "d29b44e4bbb180ed0031e22a54d802f77226faf7064e52fcc8cf25c2376cb2ff" dependencies = [ "cfg-if", "rdif-base", @@ -2696,9 +2821,9 @@ dependencies = [ [[package]] name = "rdrive" -version = "0.15.3" +version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72ce47e5a3d10943dfdb8c31dcca7a91c353ea43f4ac2eb72c92462e83a2baa4" +checksum = "8b3af299bb0304ce80c3d53b9c6458896d7d6a923cb67cd70ec8ef62994762f1" dependencies = [ "enum_dispatch", "fdt-parser", @@ -2765,6 +2890,62 @@ version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" +[[package]] +name = "release-dep" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38d2060fec225361f815b40c6857b5722835318abdea0e20ee86b81cf1ac5c9a" +dependencies = [ + "anyhow", + "futures", + "reqwest 0.11.27", + "semver 1.0.26", + "serde", + "serde_json", + "tokio", + "tokio-util", +] + +[[package]] +name = "reqwest" +version = "0.11.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd67538700a17451e7cba03ac727fb961abb7607553461627b97de0b89cf4a62" +dependencies = [ + "base64 0.21.7", + "bytes", + "encoding_rs", + "futures-core", + "futures-util", + "h2 0.3.27", + "http 0.2.12", + "http-body 0.4.6", + "hyper 0.14.32", + "hyper-tls 0.5.0", + "ipnet", + "js-sys", + "log", + "mime", + "native-tls", + "once_cell", + "percent-encoding", + "pin-project-lite", + "rustls-pemfile", + "serde", + "serde_json", + "serde_urlencoded", + "sync_wrapper 0.1.2", + "system-configuration 0.5.1", + "tokio", + "tokio-native-tls", + "tower-service", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", + "winreg", +] + [[package]] name = "reqwest" version = "0.12.23" @@ -2777,13 +2958,13 @@ dependencies = [ "futures-channel", "futures-core", "futures-util", - "h2", - "http", - "http-body", + "h2 0.4.12", + "http 1.3.1", + "http-body 1.0.1", "http-body-util", - "hyper", + "hyper 1.7.0", "hyper-rustls", - "hyper-tls", + "hyper-tls 0.6.0", "hyper-util", "js-sys", "log", @@ -2795,7 +2976,7 @@ dependencies = [ "serde", "serde_json", "serde_urlencoded", - "sync_wrapper", + "sync_wrapper 1.0.2", "tokio", "tokio-native-tls", "tower", @@ -2956,6 +3137,15 @@ dependencies = [ "zeroize", ] +[[package]] +name = "rustls-pemfile" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" +dependencies = [ + "base64 0.21.7", +] + [[package]] name = "rustls-pki-types" version = "1.12.0" @@ -3187,6 +3377,15 @@ version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" +[[package]] +name = "signal-hook-registry" +version = "1.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2a4719bff48cee6b39d12c020eeb490953ad2443b7055bd0b21fca26bd8c28b" +dependencies = [ + "libc", +] + [[package]] name = "slab" version = "0.4.11" @@ -3208,6 +3407,16 @@ dependencies = [ "thiserror 2.0.15", ] +[[package]] +name = "socket2" +version = "0.5.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e22376abed350d73dd1cd119b57ffccad95b4e585a7cda43e286245ce23c0678" +dependencies = [ + "libc", + "windows-sys 0.52.0", +] + [[package]] name = "socket2" version = "0.6.0" @@ -3218,6 +3427,35 @@ dependencies = [ "windows-sys 0.59.0", ] +[[package]] +name = "somehal" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2bc0636a4af2fb4b3054df08b543c7b03185d5bfa89c822193ff94ecaec6ed23" +dependencies = [ + "aarch64-cpu", + "aarch64-cpu-ext", + "any-uart", + "bindeps-simple", + "fdt-parser", + "futures", + "heapless", + "kasm-aarch64", + "kdef-pgtable", + "log", + "num-align", + "page-table-generic", + "pie-boot-if", + "pie-boot-loader-aarch64", + "pie-boot-macros", + "release-dep", + "serde", + "smccc", + "spin 0.10.0", + "toml 0.9.5", + "url", +] + [[package]] name = "spin" version = "0.9.8" @@ -3304,6 +3542,12 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "sync_wrapper" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" + [[package]] name = "sync_wrapper" version = "1.0.2" @@ -3324,6 +3568,17 @@ dependencies = [ "syn 2.0.106", ] +[[package]] +name = "system-configuration" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" +dependencies = [ + "bitflags 1.3.2", + "core-foundation", + "system-configuration-sys 0.5.0", +] + [[package]] name = "system-configuration" version = "0.6.1" @@ -3332,7 +3587,17 @@ checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b" dependencies = [ "bitflags 2.9.2", "core-foundation", - "system-configuration-sys", + "system-configuration-sys 0.6.0", +] + +[[package]] +name = "system-configuration-sys" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9" +dependencies = [ + "core-foundation-sys", + "libc", ] [[package]] @@ -3358,15 +3623,15 @@ dependencies = [ [[package]] name = "tempfile" -version = "3.20.0" +version = "3.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8a64e3985349f2441a1a9ef0b853f869006c3855f2cda6862a94d26ebb9d6a1" +checksum = "15b61f8f20e3a6f7e0649d825294eaf317edce30f82cf6026e7e4cb9222a7d1e" dependencies = [ "fastrand", "getrandom 0.3.3", "once_cell", "rustix", - "windows-sys 0.59.0", + "windows-sys 0.60.2", ] [[package]] @@ -3454,12 +3719,26 @@ dependencies = [ "io-uring", "libc", "mio", + "parking_lot", "pin-project-lite", + "signal-hook-registry", "slab", - "socket2", + "socket2 0.6.0", + "tokio-macros", "windows-sys 0.59.0", ] +[[package]] +name = "tokio-macros" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", +] + [[package]] name = "tokio-native-tls" version = "0.3.1" @@ -3582,7 +3861,7 @@ dependencies = [ "futures-core", "futures-util", "pin-project-lite", - "sync_wrapper", + "sync_wrapper 1.0.2", "tokio", "tower-layer", "tower-service", @@ -3597,8 +3876,8 @@ dependencies = [ "bitflags 2.9.2", "bytes", "futures-util", - "http", - "http-body", + "http 1.3.1", + "http-body 1.0.1", "iri-string", "pin-project-lite", "tower", @@ -3870,6 +4149,15 @@ dependencies = [ "windows-link", ] +[[package]] +name = "windows-sys" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +dependencies = [ + "windows-targets 0.48.5", +] + [[package]] name = "windows-sys" version = "0.52.0" @@ -3897,6 +4185,21 @@ dependencies = [ "windows-targets 0.53.3", ] +[[package]] +name = "windows-targets" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" +dependencies = [ + "windows_aarch64_gnullvm 0.48.5", + "windows_aarch64_msvc 0.48.5", + "windows_i686_gnu 0.48.5", + "windows_i686_msvc 0.48.5", + "windows_x86_64_gnu 0.48.5", + "windows_x86_64_gnullvm 0.48.5", + "windows_x86_64_msvc 0.48.5", +] + [[package]] name = "windows-targets" version = "0.52.6" @@ -3930,6 +4233,12 @@ dependencies = [ "windows_x86_64_msvc 0.53.0", ] +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" + [[package]] name = "windows_aarch64_gnullvm" version = "0.52.6" @@ -3942,6 +4251,12 @@ version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "86b8d5f90ddd19cb4a147a5fa63ca848db3df085e25fee3cc10b39b6eebae764" +[[package]] +name = "windows_aarch64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" + [[package]] name = "windows_aarch64_msvc" version = "0.52.6" @@ -3954,6 +4269,12 @@ version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c7651a1f62a11b8cbd5e0d42526e55f2c99886c77e007179efff86c2b137e66c" +[[package]] +name = "windows_i686_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" + [[package]] name = "windows_i686_gnu" version = "0.52.6" @@ -3978,6 +4299,12 @@ version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ce6ccbdedbf6d6354471319e781c0dfef054c81fbc7cf83f338a4296c0cae11" +[[package]] +name = "windows_i686_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" + [[package]] name = "windows_i686_msvc" version = "0.52.6" @@ -3990,6 +4317,12 @@ version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "581fee95406bb13382d2f65cd4a908ca7b1e4c2f1917f143ba16efe98a589b5d" +[[package]] +name = "windows_x86_64_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" + [[package]] name = "windows_x86_64_gnu" version = "0.52.6" @@ -4002,6 +4335,12 @@ version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2e55b5ac9ea33f2fc1716d1742db15574fd6fc8dadc51caab1c16a3d3b4190ba" +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" + [[package]] name = "windows_x86_64_gnullvm" version = "0.52.6" @@ -4014,6 +4353,12 @@ version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0a6e035dd0599267ce1ee132e51c27dd29437f63325753051e71dd9e42406c57" +[[package]] +name = "windows_x86_64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" + [[package]] name = "windows_x86_64_msvc" version = "0.52.6" @@ -4035,6 +4380,16 @@ dependencies = [ "memchr", ] +[[package]] +name = "winreg" +version = "0.50.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" +dependencies = [ + "cfg-if", + "windows-sys 0.48.0", +] + [[package]] name = "wit-bindgen-rt" version = "0.39.0" diff --git a/Cargo.toml b/Cargo.toml index e752f90a..7359f1bf 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -51,6 +51,7 @@ memory_addr = "0.4" page_table_entry = {version = "0.5", features = ["arm-el2"]} page_table_multiarch = "0.5" percpu = {version = "0.2", features = ["arm-el2"]} +rdrive = "0.16" axdevice = {git = "https://github.com/arceos-hypervisor/axdevice.git"} axdevice_base = "0.1" @@ -60,6 +61,10 @@ axvisor_api = "0.1" axplat-aarch64-generic = {path = "platform/aarch64-generic", optional = true} axplat-x86-qemu-q35 = {path = "platform/x86-qemu-q35", optional = true} +[target.'cfg(target_arch = "aarch64")'.dependencies] +arm-gic-driver = {version = "0.15.5", features = ["rdif"]} +aarch64-cpu-ext = "0.1" + [build-dependencies] axconfig = {git = "https://github.com/arceos-hypervisor/arceos.git", branch = "vmm-dev"} prettyplease = "0.2" diff --git a/src/hal/arch/aarch64/api.rs b/src/hal/arch/aarch64/api.rs new file mode 100644 index 00000000..c460f846 --- /dev/null +++ b/src/hal/arch/aarch64/api.rs @@ -0,0 +1,67 @@ +#[axvisor_api::api_mod_impl(axvisor_api::arch)] +mod arch_api_impl { + extern fn hardware_inject_virtual_interrupt(irq: axvisor_api::vmm::InterruptVector) { + crate::hal::arch::inject_interrupt(irq as _); + } + + extern fn read_vgicd_typer() -> u32 { + let mut gic = rdrive::get_one::() + .expect("Failed to get GIC driver") + .lock() + .unwrap(); + if let Some(gic) = gic.typed_mut::() { + return gic.typer_raw(); + } + + if let Some(gic) = gic.typed_mut::() { + // Use the GICv3 driver to read the typer register + return gic.typer_raw(); + } + + // use axstd::os::arceos::modules::axhal::irq::MyVgic; + // MyVgic::get_gicd().lock().get_typer() + + // use memory_addr::pa; + // use std::os::arceos::modules::{axconfig, axhal}; + + unimplemented!(); + // let typer_phys_addr = axconfig::devices::GICD_PADDR + 0x4; + // let typer_virt_addr = axhal::mem::phys_to_virt(pa!(typer_phys_addr)); + + // unsafe { core::ptr::read_volatile(typer_virt_addr.as_ptr_of::()) } + } + + extern fn read_vgicd_iidr() -> u32 { + // use axstd::os::arceos::modules::axhal::irq::MyVgic; + // MyVgic::get_gicd().lock().get_iidr() + let mut gic = rdrive::get_one::() + .expect("Failed to get GIC driver") + .lock() + .unwrap(); + if let Some(gic) = gic.typed_mut::() { + return gic.iidr_raw(); + } + + if let Some(gic) = gic.typed_mut::() { + // Use the GICv3 driver to read the typer register + return gic.iidr_raw(); + } + + unimplemented!() + } + + extern fn get_host_gicd_base() -> memory_addr::PhysAddr { + // use std::os::arceos::api::config; + // unimplemented!(); + // config::devices::GICD_PADDR.into() + 0x800_0000.into() + } + + extern fn get_host_gicr_base() -> memory_addr::PhysAddr { + // use std::os::arceos::api::config; + // unimplemented!(); + // config::devices::GICR_PADDR.into() + // TODO parse from dtb + 0x80a_0000.into() + } +} diff --git a/src/hal/arch/aarch64/cache.rs b/src/hal/arch/aarch64/cache.rs new file mode 100644 index 00000000..76ea085b --- /dev/null +++ b/src/hal/arch/aarch64/cache.rs @@ -0,0 +1,17 @@ +use memory_addr::VirtAddr; + +use crate::hal::CacheOp; + +impl From for aarch64_cpu_ext::cache::CacheOp { + fn from(op: CacheOp) -> Self { + match op { + CacheOp::Clean => aarch64_cpu_ext::cache::CacheOp::Clean, + CacheOp::Invalidate => aarch64_cpu_ext::cache::CacheOp::Invalidate, + CacheOp::CleanAndInvalidate => aarch64_cpu_ext::cache::CacheOp::CleanAndInvalidate, + } + } +} + +pub fn dcache_range(op: CacheOp, addr: VirtAddr, size: usize) { + aarch64_cpu_ext::cache::dcache_range(op.into(), addr.as_usize(), size); +} diff --git a/src/hal/arch/aarch64/mod.rs b/src/hal/arch/aarch64/mod.rs new file mode 100644 index 00000000..3b244d3c --- /dev/null +++ b/src/hal/arch/aarch64/mod.rs @@ -0,0 +1,201 @@ +mod api; +pub mod cache; + +pub fn inject_interrupt(irq: usize) { + debug!("Injecting virtual interrupt: {}", irq); + + let mut gic = rdrive::get_one::() + .expect("Failed to get GIC driver") + .lock() + .unwrap(); + if let Some(gic) = gic.typed_mut::() { + use arm_gic_driver::{ + IntId, + v2::{VirtualInterruptConfig, VirtualInterruptState}, + }; + + let gich = gic.hypervisor_interface().expect("Failed to get GICH"); + gich.enable(); + gich.set_virtual_interrupt( + 0, + VirtualInterruptConfig::software( + unsafe { IntId::raw(irq as _) }, + None, + 0, + VirtualInterruptState::Pending, + false, + true, + ), + ); + return; + } + + if let Some(_gic) = gic.typed_mut::() { + inject_interrupt_gic_v3(irq as _); + return; + } + + panic!("no gic driver found") +} + +/// Reads and returns the value of the given aarch64 system register. +macro_rules! read_sysreg { + ($name:ident) => { + { + let mut value: u64; + unsafe{::core::arch::asm!( + concat!("mrs {value:x}, ", ::core::stringify!($name)), + value = out(reg) value, + options(nomem, nostack), + );} + value + } + } +} + +/// Writes the given value to the given aarch64 system register. +macro_rules! write_sysreg { + ($name:ident, $value:expr) => { + { + let v: u64 = $value; + unsafe{::core::arch::asm!( + concat!("msr ", ::core::stringify!($name), ", {value:x}"), + value = in(reg) v, + options(nomem, nostack), + )} + } + } +} + +#[cfg(target_arch = "aarch64")] +pub fn inject_interrupt_gic_v3(vector: usize) { + use arm_gic_driver::v3::*; + + // mask + const LR_VIRTIRQ_MASK: usize = (1 << 32) - 1; + const LR_STATE_MASK: u64 = 0x3 << 62; // bits [63:62] + const LR_STATE_PENDING: u64 = 0x1 << 62; // pending state + const LR_STATE_ACTIVE: u64 = 0x2 << 62; // active state + + debug!("Injecting virtual interrupt: vector={}", vector); + let elsr = ICH_ELRSR_EL2.read(ICH_ELRSR_EL2::STATUS); + let lr_num = ICH_VTR_EL2.read(ICH_VTR_EL2::LISTREGS) as usize + 1; + + let mut free_lr = -1 as isize; + + // First, check if this interrupt is already pending/active + for i in 0..lr_num { + // find a free list register + if (1 << i) & elsr > 0 { + if free_lr == -1 { + free_lr = i as isize; + } + continue; + } + let lr_val = read_lr(i); + // if a virtual interrupt is enabled and equals to the physical interrupt irq_id + if (lr_val as usize & LR_VIRTIRQ_MASK) == vector { + let state = lr_val & LR_STATE_MASK; + if state == LR_STATE_PENDING || state == LR_STATE_ACTIVE { + debug!( + "virtual irq {} already pending/active in LR{}, skipping", + vector, i + ); + return; + } + } + } + + debug!("use free lr {} to inject irq {}", free_lr, vector); + + if free_lr == -1 { + warn!( + "No free list register to inject IRQ {}, checking ICH_HCR_EL2", + vector + ); + + // Try to find and reuse an inactive LR + for i in 0..lr_num { + let lr_val = read_lr(i); + let state = lr_val & LR_STATE_MASK; + if state == 0 { + // inactive state + debug!("Reusing inactive LR{} for IRQ {}", i, vector); + free_lr = i as isize; + break; + } + } + + if free_lr == -1 { + panic!("No free list register to inject IRQ {}", vector); + } + } + + ICH_LR0_EL2.write( + ICH_LR_EL2::VINTID.val(vector as u64) + ICH_LR_EL2::STATE::Pending + ICH_LR_EL2::GROUP::SET, + ); + + // Ensure the virtual interrupt interface is enabled + let en = ICH_HCR_EL2.is_set(ICH_HCR_EL2::EN); + if !en { + // Check EN bit + warn!("Virtual interrupt interface not enabled, enabling now"); + ICH_HCR_EL2.modify(ICH_HCR_EL2::EN::SET); + } + + debug!( + "Virtual interrupt {} injected successfully in LR{}", + vector, free_lr + ); +} + +fn read_lr(id: usize) -> u64 { + let id = id as u64; + match id { + //TODO get lr size from gic reg + 0 => read_sysreg!(ich_lr0_el2), + 1 => read_sysreg!(ich_lr1_el2), + 2 => read_sysreg!(ich_lr2_el2), + 3 => read_sysreg!(ich_lr3_el2), + 4 => read_sysreg!(ich_lr4_el2), + 5 => read_sysreg!(ich_lr5_el2), + 6 => read_sysreg!(ich_lr6_el2), + 7 => read_sysreg!(ich_lr7_el2), + 8 => read_sysreg!(ich_lr8_el2), + 9 => read_sysreg!(ich_lr9_el2), + 10 => read_sysreg!(ich_lr10_el2), + 11 => read_sysreg!(ich_lr11_el2), + 12 => read_sysreg!(ich_lr12_el2), + 13 => read_sysreg!(ich_lr13_el2), + 14 => read_sysreg!(ich_lr14_el2), + 15 => read_sysreg!(ich_lr15_el2), + _ => { + panic!("invalid lr id {}", id); + } + } +} + +fn write_lr(id: usize, val: u64) { + let id = id as u64; + match id { + 0 => write_sysreg!(ich_lr0_el2, val), + 1 => write_sysreg!(ich_lr1_el2, val), + 2 => write_sysreg!(ich_lr2_el2, val), + 3 => write_sysreg!(ich_lr3_el2, val), + 4 => write_sysreg!(ich_lr4_el2, val), + 5 => write_sysreg!(ich_lr5_el2, val), + 6 => write_sysreg!(ich_lr6_el2, val), + 7 => write_sysreg!(ich_lr7_el2, val), + 8 => write_sysreg!(ich_lr8_el2, val), + 9 => write_sysreg!(ich_lr9_el2, val), + 10 => write_sysreg!(ich_lr10_el2, val), + 11 => write_sysreg!(ich_lr11_el2, val), + 12 => write_sysreg!(ich_lr12_el2, val), + 13 => write_sysreg!(ich_lr13_el2, val), + 14 => write_sysreg!(ich_lr14_el2, val), + 15 => write_sysreg!(ich_lr15_el2, val), + _ => { + panic!("invalid lr id {}", id); + } + } +} diff --git a/src/hal/arch/x86_64/mod.rs b/src/hal/arch/x86_64/mod.rs new file mode 100644 index 00000000..e5856428 --- /dev/null +++ b/src/hal/arch/x86_64/mod.rs @@ -0,0 +1 @@ +pub fn dcache_range(_op: CacheOp, _addr: VirtAddr, _size: usize) {} diff --git a/src/hal.rs b/src/hal/mod.rs similarity index 50% rename from src/hal.rs rename to src/hal/mod.rs index f6c3d7f6..7065f457 100644 --- a/src/hal.rs +++ b/src/hal/mod.rs @@ -15,8 +15,23 @@ use axaddrspace::{AxMmHal, HostPhysAddr, HostVirtAddr}; use axvcpu::AxVCpuHal; use axvm::{AxVMHal, AxVMPerCpu}; +#[cfg_attr(target_arch = "aarch64", path = "arch/aarch64/mod.rs")] +#[cfg_attr(target_arch = "x86_64", path = "arch/x86_64/mod.rs")] +pub mod arch; + use crate::vmm; +#[repr(C)] +#[derive(Debug, Clone, Copy)] +pub enum CacheOp { + /// Write back to memory + Clean, + /// Invalidate cache + Invalidate, + /// Clean and invalidate + CleanAndInvalidate, +} + /// Implementation for `AxVMHal` trait. pub struct AxVMHalImpl; @@ -102,14 +117,6 @@ pub struct AxVCpuHalImpl; impl AxVCpuHal for AxVCpuHalImpl { type MmHal = AxMmHalImpl; - - #[cfg(target_arch = "aarch64")] - fn irq_fetch() -> usize { - 0 - } - - #[cfg(target_arch = "aarch64")] - fn irq_hanlder() {} } #[percpu::def_percpu] @@ -264,225 +271,9 @@ mod vmm_api_impl { } } -#[axvisor_api::api_mod_impl(axvisor_api::arch)] -mod arch_api_impl { - #[cfg(target_arch = "aarch64")] - extern fn hardware_inject_virtual_interrupt(irq: axvisor_api::vmm::InterruptVector) { - debug!("Injecting virtual interrupt: {}", irq); - unimplemented!(); - // use axstd::os::arceos::modules::axhal; - // axhal::irq::inject_interrupt(irq as usize); - // super::inject_interrupt(irq as usize); - } - - #[cfg(target_arch = "aarch64")] - extern fn read_vgicd_typer() -> u32 { - // use axstd::os::arceos::modules::axhal::irq::MyVgic; - // MyVgic::get_gicd().lock().get_typer() - - // use memory_addr::pa; - // use std::os::arceos::modules::{axconfig, axhal}; - - unimplemented!(); - // let typer_phys_addr = axconfig::devices::GICD_PADDR + 0x4; - // let typer_virt_addr = axhal::mem::phys_to_virt(pa!(typer_phys_addr)); - - // unsafe { core::ptr::read_volatile(typer_virt_addr.as_ptr_of::()) } - } - - #[cfg(target_arch = "aarch64")] - extern fn read_vgicd_iidr() -> u32 { - // use axstd::os::arceos::modules::axhal::irq::MyVgic; - // MyVgic::get_gicd().lock().get_iidr() - 0 - } - - #[cfg(target_arch = "aarch64")] - extern fn get_host_gicd_base() -> memory_addr::PhysAddr { - // use std::os::arceos::api::config; - // unimplemented!(); - // config::devices::GICD_PADDR.into() - 0x800_0000.into() - } - - #[cfg(target_arch = "aarch64")] - extern fn get_host_gicr_base() -> memory_addr::PhysAddr { - // use std::os::arceos::api::config; - // unimplemented!(); - // config::devices::GICR_PADDR.into() - // TODO parse from dtb - 0x80a_0000.into() - } -} - #[axvisor_api::api_mod_impl(axvisor_api::host)] mod host_api_impl { extern fn get_host_cpu_num() -> usize { std::os::arceos::modules::axconfig::plat::CPU_NUM } } - -// /// Reads and returns the value of the given aarch64 system register. -// macro_rules! read_sysreg { -// ($name:ident) => { -// { -// let mut value: u64; -// unsafe{::core::arch::asm!( -// concat!("mrs {value:x}, ", ::core::stringify!($name)), -// value = out(reg) value, -// options(nomem, nostack), -// );} -// value -// } -// } -// } - -// /// Writes the given value to the given aarch64 system register. -// macro_rules! write_sysreg { -// ($name:ident, $value:expr) => { -// { -// let v: u64 = $value; -// unsafe{::core::arch::asm!( -// concat!("msr ", ::core::stringify!($name), ", {value:x}"), -// value = in(reg) v, -// options(nomem, nostack), -// )} -// } -// } -// } - -// pub fn inject_interrupt(vector: usize) { -// // mask -// const LR_VIRTIRQ_MASK: usize = (1 << 32) - 1; -// const LR_STATE_MASK: u64 = 0x3 << 62; // bits [63:62] -// const LR_STATE_PENDING: u64 = 0x1 << 62; // pending state -// const LR_STATE_ACTIVE: u64 = 0x2 << 62; // active state - -// debug!("Injecting virtual interrupt: vector={}", vector); - -// let elsr: u64 = read_sysreg!(ich_elrsr_el2); -// let vtr = read_sysreg!(ich_vtr_el2) as usize; -// let lr_num: usize = (vtr & 0xf) + 1; -// let mut free_lr = -1 as isize; - -// // First, check if this interrupt is already pending/active -// for i in 0..lr_num { -// // find a free list register -// if (1 << i) & elsr > 0 { -// if free_lr == -1 { -// free_lr = i as isize; -// } -// continue; -// } -// let lr_val = read_lr(i); -// // if a virtual interrupt is enabled and equals to the physical interrupt irq_id -// if (lr_val as usize & LR_VIRTIRQ_MASK) == vector { -// let state = lr_val & LR_STATE_MASK; -// if state == LR_STATE_PENDING || state == LR_STATE_ACTIVE { -// debug!( -// "virtual irq {} already pending/active in LR{}, skipping", -// vector, i -// ); -// return; -// } -// } -// } - -// debug!("use free lr {} to inject irq {}", free_lr, vector); - -// if free_lr == -1 { -// warn!( -// "No free list register to inject IRQ {}, checking ICH_HCR_EL2", -// vector -// ); -// // Check if virtual interrupt interface is enabled -// let ich_hcr = read_sysreg!(ich_hcr_el2); -// debug!("ICH_HCR_EL2: 0x{:x}", ich_hcr); - -// // Try to find and reuse an inactive LR -// for i in 0..lr_num { -// let lr_val = read_lr(i); -// let state = lr_val & LR_STATE_MASK; -// if state == 0 { -// // inactive state -// debug!("Reusing inactive LR{} for IRQ {}", i, vector); -// free_lr = i as isize; -// break; -// } -// } - -// if free_lr == -1 { -// panic!("No free list register to inject IRQ {}", vector); -// } -// } - -// let mut val = vector as u64; // vector -// val |= 1 << 60; // group 1 -// val |= 1 << 62; // state pending -// // hardware interrupt not supported -// write_lr(free_lr as usize, val); - -// // Ensure the virtual interrupt interface is enabled -// // let ich_hcr = read_sysreg!(ich_hcr_el2); -// // if (ich_hcr & 1) == 0 { -// // // Check EN bit -// // warn!("Virtual interrupt interface not enabled, enabling now"); -// // write_sysreg!(ich_hcr_el2, ich_hcr | 1); -// // } - -// debug!( -// "Virtual interrupt {} injected successfully in LR{}", -// vector, free_lr -// ); -// } - -// fn read_lr(id: usize) -> u64 { -// let id = id as u64; -// match id { -// //TODO get lr size from gic reg -// 0 => read_sysreg!(ich_lr0_el2), -// 1 => read_sysreg!(ich_lr1_el2), -// 2 => read_sysreg!(ich_lr2_el2), -// 3 => read_sysreg!(ich_lr3_el2), -// 4 => read_sysreg!(ich_lr4_el2), -// 5 => read_sysreg!(ich_lr5_el2), -// 6 => read_sysreg!(ich_lr6_el2), -// 7 => read_sysreg!(ich_lr7_el2), -// 8 => read_sysreg!(ich_lr8_el2), -// 9 => read_sysreg!(ich_lr9_el2), -// 10 => read_sysreg!(ich_lr10_el2), -// 11 => read_sysreg!(ich_lr11_el2), -// 12 => read_sysreg!(ich_lr12_el2), -// 13 => read_sysreg!(ich_lr13_el2), -// 14 => read_sysreg!(ich_lr14_el2), -// 15 => read_sysreg!(ich_lr15_el2), -// _ => { -// panic!("invalid lr id {}", id); -// } -// } -// } - -// fn write_lr(id: usize, val: u64) { -// let id = id as u64; -// match id { -// 0 => write_sysreg!(ich_lr0_el2, val), -// 1 => write_sysreg!(ich_lr1_el2, val), -// 2 => write_sysreg!(ich_lr2_el2, val), -// 3 => write_sysreg!(ich_lr3_el2, val), -// 4 => write_sysreg!(ich_lr4_el2, val), -// 5 => write_sysreg!(ich_lr5_el2, val), -// 6 => write_sysreg!(ich_lr6_el2, val), -// 7 => write_sysreg!(ich_lr7_el2, val), -// 8 => write_sysreg!(ich_lr8_el2, val), -// 9 => write_sysreg!(ich_lr9_el2, val), -// 10 => write_sysreg!(ich_lr10_el2, val), -// 11 => write_sysreg!(ich_lr11_el2, val), -// 12 => write_sysreg!(ich_lr12_el2, val), -// 13 => write_sysreg!(ich_lr13_el2, val), -// 14 => write_sysreg!(ich_lr14_el2, val), -// 15 => write_sysreg!(ich_lr15_el2, val), -// _ => { -// panic!("invalid lr id {}", id); -// } -// } -// } diff --git a/src/main.rs b/src/main.rs index 51957ccc..a0dc1947 100644 --- a/src/main.rs +++ b/src/main.rs @@ -16,7 +16,6 @@ extern crate axplat_x86_qemu_q35; mod hal; mod logo; mod task; -mod utils; mod vmm; #[unsafe(no_mangle)] diff --git a/src/utils/arch/aarch64/cache.S b/src/utils/arch/aarch64/cache.S deleted file mode 100644 index 3a220995..00000000 --- a/src/utils/arch/aarch64/cache.S +++ /dev/null @@ -1,27 +0,0 @@ -// void cache_invalidate_d(u64 start, u64 length); -.global cache_invalidate_d -cache_invalidate_d: - add x2, x0, x1 /* calculate the end address */ - bic x0, x0, #(64 - 1) /* align the start with a cache line */ -1: - dc ivac, x0 /* invalidate cache to PoC by VA */ - add x0, x0, #64 - cmp x0, x2 - blt 1b - mov x0, xzr - dsb sy - ret - -// void cache_clean_invalidate_d(u64 start, u64 length); -.global cache_clean_invalidate_d -cache_clean_invalidate_d: - add x2, x0, x1 /* calculate the end address */ - bic x0, x0, #(64 - 1) /* align the start with a cache line */ -1: - dc civac, x0 /* invalidate cache to PoC by VA */ - add x0, x0, #64 - cmp x0, x2 - blt 1b - mov x0, xzr - dsb sy - ret diff --git a/src/utils/arch/aarch64/cache.rs b/src/utils/arch/aarch64/cache.rs deleted file mode 100644 index f8750672..00000000 --- a/src/utils/arch/aarch64/cache.rs +++ /dev/null @@ -1,10 +0,0 @@ -use core::arch::global_asm; - -global_asm!(include_str!("cache.S")); - -unsafe extern { - /// Invalidate the data cache. - pub unsafe fn cache_invalidate_d(start: usize, len: usize); - /// Clean and invalidate the data cache. - pub unsafe fn cache_clean_invalidate_d(start: usize, len: usize); -} diff --git a/src/utils/arch/aarch64/mod.rs b/src/utils/arch/aarch64/mod.rs deleted file mode 100644 index 1666a580..00000000 --- a/src/utils/arch/aarch64/mod.rs +++ /dev/null @@ -1,2 +0,0 @@ -/// Cache-related operations -pub mod cache; diff --git a/src/utils/arch/mod.rs b/src/utils/arch/mod.rs deleted file mode 100644 index b8bc0af3..00000000 --- a/src/utils/arch/mod.rs +++ /dev/null @@ -1,14 +0,0 @@ -//! Architecture-specific types and operations. - -cfg_if::cfg_if! { - if #[cfg(target_arch = "x86_64")] { - mod x86_64; - pub use self::x86_64::*; - } else if #[cfg(any(target_arch = "riscv32", target_arch = "riscv64"))] { - mod riscv; - pub use self::riscv::*; - } else if #[cfg(target_arch = "aarch64")]{ - mod aarch64; - pub use self::aarch64::*; - } -} diff --git a/src/utils/arch/riscv/mod.rs b/src/utils/arch/riscv/mod.rs deleted file mode 100644 index 1498b1bd..00000000 --- a/src/utils/arch/riscv/mod.rs +++ /dev/null @@ -1,11 +0,0 @@ -/// Cache-related operations -pub mod cache { - /// Invalidate the data cache. - pub unsafe fn cache_invalidate_d(start: usize, len: usize) { - // Dummy implementation - } - /// Clean and invalidate the data cache. - pub unsafe fn cache_clean_invalidate_d(start: usize, len: usize) { - // Dummy implementation - } -} diff --git a/src/utils/arch/x86_64/mod.rs b/src/utils/arch/x86_64/mod.rs deleted file mode 100644 index 1498b1bd..00000000 --- a/src/utils/arch/x86_64/mod.rs +++ /dev/null @@ -1,11 +0,0 @@ -/// Cache-related operations -pub mod cache { - /// Invalidate the data cache. - pub unsafe fn cache_invalidate_d(start: usize, len: usize) { - // Dummy implementation - } - /// Clean and invalidate the data cache. - pub unsafe fn cache_clean_invalidate_d(start: usize, len: usize) { - // Dummy implementation - } -} diff --git a/src/utils/mod.rs b/src/utils/mod.rs deleted file mode 100644 index c3f25987..00000000 --- a/src/utils/mod.rs +++ /dev/null @@ -1,12 +0,0 @@ -mod arch; - -pub mod cache { - /// Invalidate the data cache. - pub unsafe fn cache_invalidate_d(start: usize, len: usize) { - unsafe { super::arch::cache::cache_invalidate_d(start, len) }; - } - /// Clean and invalidate the data cache. - pub unsafe fn cache_clean_invalidate_d(start: usize, len: usize) { - unsafe { super::arch::cache::cache_clean_invalidate_d(start, len) }; - } -} diff --git a/src/vmm/images.rs b/src/vmm/images.rs index f894b304..62708c14 100644 --- a/src/vmm/images.rs +++ b/src/vmm/images.rs @@ -3,8 +3,6 @@ use axerrno::AxResult; use axvm::config::AxVMCrateConfig; -#[cfg(target_arch = "aarch64")] -use crate::utils::cache::cache_clean_invalidate_d; use crate::vmm::VMRef; use crate::vmm::config::config; @@ -58,7 +56,11 @@ fn load_vm_images_from_memory(config: AxVMCrateConfig, vm: VMRef) -> AxResult { mem_region.gpa, mem_region.size ); unsafe { - cache_clean_invalidate_d(mem_region.gpa, mem_region.size); + crate::hal::arch::cache::dcache_range( + crate::hal::CacheOp::CleanAndInvalidate, + mem_region.gpa.into(), + mem_region.size, + ); } } } From 4ecdcaff59d7168d968a1fb4296250ef9b15df45 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E7=9D=BF?= Date: Wed, 20 Aug 2025 13:20:22 +0800 Subject: [PATCH 107/219] fix: x86 build --- Cargo.lock | 68 ++++++++++------------------- platform/aarch64-generic/Cargo.toml | 2 +- platform/x86-qemu-q35/Cargo.toml | 2 +- platform/x86-qemu-q35/axconfig.toml | 12 ++--- src/hal/arch/x86_64/mod.rs | 3 ++ 5 files changed, 33 insertions(+), 54 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 0213a883..18cb4533 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -624,23 +624,9 @@ dependencies = [ [[package]] name = "axplat" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/axplat_crates#1540b43433377aaf432ad4ce2fac70d07a99d754" +source = "git+https://github.com/arceos-hypervisor/axplat_crates.git?branch=vmm#ea596c55acaf25401fe905307d7cae2cf39030e8" dependencies = [ - "axplat-macros 0.1.0 (git+https://github.com/arceos-hypervisor/axplat_crates)", - "bitflags 2.9.2", - "const-str", - "crate_interface", - "handler_table", - "kspin", - "memory_addr", -] - -[[package]] -name = "axplat" -version = "0.1.0" -source = "git+https://github.com/arceos-org/axplat_crates.git#1540b43433377aaf432ad4ce2fac70d07a99d754" -dependencies = [ - "axplat-macros 0.1.0 (git+https://github.com/arceos-org/axplat_crates.git)", + "axplat-macros 0.1.0 (git+https://github.com/arceos-hypervisor/axplat_crates.git?branch=vmm)", "bitflags 2.9.2", "const-str", "crate_interface", @@ -652,7 +638,7 @@ dependencies = [ [[package]] name = "axplat-aarch64-dyn" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/axplat-aarch64-dyn?branch=vmm#9583231332994b2e0c5de2487f03f6cad4faf76f" +source = "git+https://github.com/arceos-hypervisor/axplat-aarch64-dyn#aa14e3a259b5662191941bedba15eff40b00819f" dependencies = [ "aarch64-cpu", "aarch64-cpu-ext", @@ -660,7 +646,7 @@ dependencies = [ "arm-gic-driver", "axconfig-macros", "axcpu", - "axplat 0.1.0 (git+https://github.com/arceos-hypervisor/axplat_crates)", + "axplat 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "fdt-parser", "heapless", "lazyinit", @@ -749,17 +735,7 @@ dependencies = [ [[package]] name = "axplat-macros" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/axplat_crates#1540b43433377aaf432ad4ce2fac70d07a99d754" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.106", -] - -[[package]] -name = "axplat-macros" -version = "0.1.0" -source = "git+https://github.com/arceos-org/axplat_crates.git#1540b43433377aaf432ad4ce2fac70d07a99d754" +source = "git+https://github.com/arceos-hypervisor/axplat_crates.git?branch=vmm#ea596c55acaf25401fe905307d7cae2cf39030e8" dependencies = [ "proc-macro2", "quote", @@ -807,11 +783,11 @@ dependencies = [ [[package]] name = "axplat-x86-pc" version = "0.1.1" -source = "git+https://github.com/arceos-org/axplat_crates.git#1540b43433377aaf432ad4ce2fac70d07a99d754" +source = "git+https://github.com/arceos-hypervisor/axplat_crates.git?branch=vmm#ea596c55acaf25401fe905307d7cae2cf39030e8" dependencies = [ "axconfig-macros", "axcpu", - "axplat 0.1.0 (git+https://github.com/arceos-org/axplat_crates.git)", + "axplat 0.1.0 (git+https://github.com/arceos-hypervisor/axplat_crates.git?branch=vmm)", "bitflags 2.9.2", "heapless", "int_ratio", @@ -831,7 +807,7 @@ dependencies = [ name = "axplat-x86-qemu-q35" version = "0.1.0" dependencies = [ - "axplat-x86-pc 0.1.1 (git+https://github.com/arceos-org/axplat_crates.git)", + "axplat-x86-pc 0.1.1 (git+https://github.com/arceos-hypervisor/axplat_crates.git?branch=vmm)", ] [[package]] @@ -1225,7 +1201,7 @@ dependencies = [ "semver 1.0.26", "serde", "serde_json", - "thiserror 2.0.15", + "thiserror 2.0.16", ] [[package]] @@ -2475,7 +2451,7 @@ dependencies = [ "bitflags 2.9.2", "log", "num-align", - "thiserror 2.0.15", + "thiserror 2.0.16", ] [[package]] @@ -2592,7 +2568,7 @@ dependencies = [ "quote", "spin 0.10.0", "syn 2.0.106", - "thiserror 2.0.15", + "thiserror 2.0.16", ] [[package]] @@ -2747,7 +2723,7 @@ dependencies = [ "as-any", "async-trait", "rdif-def", - "thiserror 2.0.15", + "thiserror 2.0.16", ] [[package]] @@ -2775,7 +2751,7 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c238eb44d86fabc99028adc973f896ce2202aeb6184cc8b89863f2d157d7ca06" dependencies = [ - "thiserror 2.0.15", + "thiserror 2.0.16", ] [[package]] @@ -2786,7 +2762,7 @@ checksum = "d29b44e4bbb180ed0031e22a54d802f77226faf7064e52fcc8cf25c2376cb2ff" dependencies = [ "cfg-if", "rdif-base", - "thiserror 2.0.15", + "thiserror 2.0.16", ] [[package]] @@ -2807,7 +2783,7 @@ dependencies = [ "futures", "rdif-base", "spin_on", - "thiserror 2.0.15", + "thiserror 2.0.16", ] [[package]] @@ -2838,7 +2814,7 @@ dependencies = [ "rdif-systick", "rdrive-macros", "spin 0.10.0", - "thiserror 2.0.15", + "thiserror 2.0.16", ] [[package]] @@ -3404,7 +3380,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7c73e0ca8c566478040487791c9f488f86c5aec846ca1ab18484be8a1d8c55cd" dependencies = [ - "thiserror 2.0.15", + "thiserror 2.0.16", ] [[package]] @@ -3645,11 +3621,11 @@ dependencies = [ [[package]] name = "thiserror" -version = "2.0.15" +version = "2.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80d76d3f064b981389ecb4b6b7f45a0bf9fdac1d5b9204c7bd6714fecc302850" +checksum = "3467d614147380f2e4e374161426ff399c91084acd2363eaf549172b3d5e60c0" dependencies = [ - "thiserror-impl 2.0.15", + "thiserror-impl 2.0.16", ] [[package]] @@ -3665,9 +3641,9 @@ dependencies = [ [[package]] name = "thiserror-impl" -version = "2.0.15" +version = "2.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44d29feb33e986b6ea906bd9c3559a856983f92371b3eaa5e83782a351623de0" +checksum = "6c5e1be1c48b9172ee610da68fd9cd2770e7a4056cb3fc98710ee6906f0c7960" dependencies = [ "proc-macro2", "quote", diff --git a/platform/aarch64-generic/Cargo.toml b/platform/aarch64-generic/Cargo.toml index 82b97d77..c5ca6b84 100644 --- a/platform/aarch64-generic/Cargo.toml +++ b/platform/aarch64-generic/Cargo.toml @@ -4,7 +4,7 @@ name = "axplat-aarch64-generic" version = "0.1.0" [dependencies] -axplat-aarch64-dyn = {git = "https://github.com/arceos-hypervisor/axplat-aarch64-dyn", branch = "vmm", features = ["irq", "smp", "hv"]} +axplat-aarch64-dyn = {git = "https://github.com/arceos-hypervisor/axplat-aarch64-dyn", features = ["irq", "smp", "hv"]} [build-dependencies] serde = {version = "1.0", features = ["derive"]} diff --git a/platform/x86-qemu-q35/Cargo.toml b/platform/x86-qemu-q35/Cargo.toml index 56cd4435..05732299 100644 --- a/platform/x86-qemu-q35/Cargo.toml +++ b/platform/x86-qemu-q35/Cargo.toml @@ -9,5 +9,5 @@ reboot-on-system-off = ["axplat-x86-pc/reboot_on_system_off"] rtc = ["axplat-x86-pc/x86_rtc"] [dependencies] -axplat-x86-pc = {git = "https://github.com/arceos-org/axplat_crates.git", features=["irq", "smp"]} +axplat-x86-pc = {git = "https://github.com/arceos-hypervisor/axplat_crates.git", branch = "vmm", features=["irq", "smp"]} diff --git a/platform/x86-qemu-q35/axconfig.toml b/platform/x86-qemu-q35/axconfig.toml index 72df56c2..4ed16f84 100644 --- a/platform/x86-qemu-q35/axconfig.toml +++ b/platform/x86-qemu-q35/axconfig.toml @@ -1,9 +1,9 @@ # Architecture identifier. arch = "x86_64" # str # Platform identifier. -platform = "x86-pc" # str +platform = "x86-qemu-q35" # str # Platform Package. -package = "axplat-x86-pc" # str +package = "axplat-x86-qemu-q35" # str # # Platform configs @@ -37,18 +37,18 @@ boot-stack-size = 0x40000 # uint # [devices] # MMIO regions with format (`base_paddr`, `size`). -mmio-regions = [ +mmio-ranges = [ [0xb000_0000, 0x1000_0000], # PCI config space [0xfe00_0000, 0xc0_0000], # PCI devices [0xfec0_0000, 0x1000], # IO APIC [0xfed0_0000, 0x1000], # HPET [0xfee0_0000, 0x1000], # Local APIC - # [0x70_0000_0000, 0x4000], # PCI devices - # [0x3800_0000_0000, 0x4000] # PCI devices + [0x70_0000_0000, 0x4000], # PCI devices + [0x3800_0000_0000, 0x4000] # PCI devices ] # [(uint, uint)] # VirtIO MMIO regions with format (`base_paddr`, `size`). -virtio-mmio-regions = [] # [(uint, uint)] +virtio-mmio-ranges = [] # [(uint, uint)] # Base physical address of the PCIe ECAM space (should read from ACPI 'MCFG' table). pci-ecam-base = 0xb000_0000 # uint # End PCI bus number. diff --git a/src/hal/arch/x86_64/mod.rs b/src/hal/arch/x86_64/mod.rs index e5856428..fe37452d 100644 --- a/src/hal/arch/x86_64/mod.rs +++ b/src/hal/arch/x86_64/mod.rs @@ -1 +1,4 @@ +use crate::hal::CacheOp; +use memory_addr::VirtAddr; + pub fn dcache_range(_op: CacheOp, _addr: VirtAddr, _size: usize) {} From d42dd78b1fb48152c0e22bdaa1066d9230f5da1e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E7=9D=BF?= Date: Wed, 20 Aug 2025 13:29:57 +0800 Subject: [PATCH 108/219] =?UTF-8?q?update:=20=E4=BC=98=E5=8C=96=20task.py?= =?UTF-8?q?=20=E4=BD=BF=E7=94=A8=E8=AF=B4=E6=98=8E=EF=BC=8C=E7=A7=BB?= =?UTF-8?q?=E9=99=A4=20setup=20=E5=91=BD=E4=BB=A4=EF=BC=8C=E8=B0=83?= =?UTF-8?q?=E6=95=B4=E7=A4=BA=E4=BE=8B=E5=92=8C=E5=8F=82=E6=95=B0=E8=AF=B4?= =?UTF-8?q?=E6=98=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- doc/task.py-usage.md | 126 ++++++------------------------------------- 1 file changed, 17 insertions(+), 109 deletions(-) diff --git a/doc/task.py-usage.md b/doc/task.py-usage.md index 15a2da3b..87977d9d 100644 --- a/doc/task.py-usage.md +++ b/doc/task.py-usage.md @@ -7,33 +7,15 @@ ## 基本用法 ```bash +# 激活虚拟环境 +source ./activate.sh + ./task.py [options] ``` ## 可用命令 -### 1. setup - 设置依赖 - -设置 ArceOS 依赖环境。 - -```bash -./task.py setup -``` - -**功能**: - -- 自动克隆 ArceOS 仓库到 `.arceos` 目录 -- 使用 `vmm-dev` 分支 -- 如果目录已存在,会跳过克隆步骤 - -**示例**: - -```bash -# 首次设置 -./task.py setup -``` - -### 2. build - 构建项目 +### 1. build - 构建项目 构建 Axvisor 项目。 @@ -50,7 +32,7 @@ **示例**: ```bash -# 使用默认配置构建 +# 使用 .hvconfig.toml 中的配置构建 ./task.py build # 指定平台构建 @@ -62,8 +44,8 @@ # 添加 ArceOS 特性 ./task.py build --arceos-features "page-alloc-64g,smp" -# 添加 ArceOS 参数 -./task.py build --arceos-args "NET=y,BLK=y,MEM=8g" +# 添加 ArceOS Makefile 参数 +./task.py build --arceos-args "NET=y,BLK=y,MEM=8g,LOG=debug" # 指定 VM 配置文件 ./task.py build --vmconfigs "config1.toml,config2.toml" @@ -86,11 +68,11 @@ **示例**: ```bash -# 构建并运行 +# 使用 .hvconfig.toml 中的配置运行 ./task.py run -# 使用特定配置运行 -./task.py run --plat aarch64-generic --arceos-args "NET=y,MEM=4g" +# 使用特定配置运行,执行后会根据参数生成 .hvconfig.toml +./task.py run --plat aarch64-generic --arceos-args "MEM=4g,BUS=mmio,BLK=y,LOG=debug" --features "fs" ``` ## 命令行参数 @@ -117,42 +99,21 @@ ```bash --plat aarch64-generic ---plat x86_64-qemu ---plat riscv64-qemu -``` - -#### --arch (架构) - -手动指定目标架构,会覆盖从平台配置文件读取的架构。 - -```bash ---arch aarch64 ---arch x86_64 ---arch riscv64 +--plat x86-qemu-q35 ``` **架构特定的 QEMU 参数**: -- `aarch64`: `-machine virtualization=on` +- `aarch64`: `-machine virtualization=on,gic-version=3` - `x86_64`: `-enable-kvm -cpu host` - `riscv64`: `-machine virt -cpu rv64` -#### --package (包名) - -手动指定平台包名,会覆盖从平台配置文件读取的包名。 - -```bash ---package axplat-aarch64-generic ---package custom-platform-package -``` - #### --features (Hypervisor 特性) 指定 Hypervisor 的特性,多个特性用逗号分隔。 ```bash ---features "net,blk" ---features "smp,virtualization" +--features "fs" ``` #### --arceos-features (ArceOS 特性) @@ -170,7 +131,7 @@ ```bash --arceos-args "NET=y,BLK=y,MEM=8g" ---arceos-args "SMP=4,DEBUG=y" +--arceos-args "SMP=4,LOG=debug" ``` #### --vmconfigs (VM 配置文件) @@ -191,37 +152,15 @@ 创建 `.hvconfig.toml` 文件: ```toml -# Axvisor 配置文件 -# 平台配置 plat = "aarch64-generic" - -# Hypervisor 特性 -features = ["net", "blk"] - -# ArceOS 参数 -arceos_args = [ - "NET=y", - "BUS=mmio", - "BLK=y", - "MEM=8g" -] - -# ArceOS 特性 -arceos_features = ["page-alloc-64g", "smp"] - -# VM 配置文件路径 -vmconfigs = [ - "configs/vms/linux-qemu-aarch64.toml", - "configs/vms/arceos-aarch64.toml" -] +arceos_args = [ "BUS=mmio", "BLK=y", "MEM=8g", "LOG=debug", "QEMU_ARGS=\"-machine gic-version=3\""] +vmconfigs = [ "tmp/arceos-aarch64.toml",] ``` ### 配置优先级 1. **命令行参数** (最高优先级) 2. **配置文件** (.hvconfig.toml) -3. **平台配置文件** (platform/{plat}/axconfig.toml) - 仅 arch 和 package -4. **默认值** (最低优先级) ## 高级用法 @@ -235,28 +174,6 @@ vmconfigs = [ # "-smp 4 -m 2G -netdev user,id=net0 -machine virtualization=on" ``` -### 2. 多平台开发 - -```bash -# 为不同平台构建 -./task.py build --plat aarch64-generic -./task.py build --plat x86_64-qemu -./task.py build --plat riscv64-qemu - -# 手动指定架构参数 -./task.py build --plat custom-platform --arch aarch64 --package custom-package -``` - -### 3. 调试构建 - -```bash -# 启用调试特性 -./task.py build --arceos-features "debug" --arceos-args "LOG=debug,BACKTRACE=y" - -# 查看构建命令(不实际执行) -./task.py build --help -``` - ### 4. 批量配置 创建多个配置文件用于不同的开发场景: @@ -284,7 +201,7 @@ cp .hvconfig.prod.toml .hvconfig.toml && ./task.py run ```bash # 清理并重新设置 rm -rf .arceos - ./task.py setup + ./task.py clean ./task.py build ``` @@ -348,12 +265,3 @@ cp .hvconfig.prod.toml .hvconfig.toml && ./task.py run - 修改 `scripts/config.py` 中的 `add_common_arguments` 函数 - 更新 `AxvisorConfig` 类的字段 - 更新相关的处理逻辑 - -## 相关文件 - -- `task.py` - 主入口脚本 -- `scripts/config.py` - 配置管理 -- `scripts/build.py` - 构建功能 -- `scripts/run.py` - 运行功能 -- `scripts/setup.py` - 环境设置 -- `.hvconfig.toml` - 用户配置文件 From 972a09efe904a7c59810cd8b89c9f056d55bbac2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E7=9D=BF?= Date: Wed, 20 Aug 2025 13:34:02 +0800 Subject: [PATCH 109/219] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E6=BF=80?= =?UTF-8?q?=E6=B4=BB=E8=84=9A=E6=9C=AC=E4=B8=AD=E7=9A=84=E8=99=9A=E6=8B=9F?= =?UTF-8?q?=E7=8E=AF=E5=A2=83=E6=A3=80=E6=9F=A5=E9=80=BB=E8=BE=91=EF=BC=8C?= =?UTF-8?q?=E7=A7=BB=E9=99=A4=E9=94=99=E8=AF=AF=E6=8F=90=E7=A4=BA=E5=B9=B6?= =?UTF-8?q?=E7=9B=B4=E6=8E=A5=E8=B0=83=E7=94=A8=20bootstrap.sh?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- activate.sh | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/activate.sh b/activate.sh index bb754028..fc75d7cf 100755 --- a/activate.sh +++ b/activate.sh @@ -6,8 +6,7 @@ # 检查虚拟环境是否存在 if [[ ! -d "venv" ]]; then - echo "错误: 虚拟环境不存在,请先运行 ./bootstrap.sh" - return 1 2>/dev/null || exit 1 + ./bootstrap.sh fi # 检查是否已经在虚拟环境中 From 4ee4be8089d849f5210fd0fc73b7cc02b8632cf0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E7=9D=BF?= Date: Wed, 20 Aug 2025 13:39:23 +0800 Subject: [PATCH 110/219] =?UTF-8?q?fix:=20=E5=9C=A8=E6=9E=84=E5=BB=BA?= =?UTF-8?q?=E5=92=8C=E6=B5=8B=E8=AF=95=E5=B7=A5=E4=BD=9C=E6=B5=81=E4=B8=AD?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=BF=80=E6=B4=BB=E8=84=9A=E6=9C=AC=E7=9A=84?= =?UTF-8?q?=E8=B0=83=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/build.yml | 5 +++-- .github/workflows/test.yml | 4 +--- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index deb77888..d5da501d 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -65,7 +65,8 @@ jobs: targets: x86_64-unknown-none, riscv64gc-unknown-none-elf, aarch64-unknown-none, aarch64-unknown-none-softfloat - uses: Swatinem/rust-cache@v2 - run: cargo install cargo-binutils - - run: source ./activate.sh - name: Build the repo continue-on-error: ${{ matrix.rust-toolchain == 'nightly' }} - run: ./task.py build --plat ${{ matrix.plat }} + run: | + source ./activate.sh + ./task.py build --plat ${{ matrix.plat }} diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index bfcd96f3..96b11a89 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -40,12 +40,10 @@ jobs: - name: Update rust-toolchain.toml run: | sed -i "s/^channel = .*/channel = \"${{ matrix.rust-toolchain }}\"/" rust-toolchain.toml - - name: bootstrap - run: | - source ./activate.sh - name: Run guests continue-on-error: ${{ matrix.rust-toolchain == 'nightly' }} run: | + source ./activate.sh cargo version export DISK_IMG="${{ github.workspace }}/disk-aarch64.img" export VM_CONFIGS="$(pwd)/configs/vms/nimbos-aarch64.toml" From cd130a12e9e0ffbafd07d69e8517754d68b6c9d0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E7=9D=BF?= Date: Wed, 20 Aug 2025 13:54:48 +0800 Subject: [PATCH 111/219] fix: clippy --- Cargo.lock | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 18cb4533..52ccf964 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -133,7 +133,7 @@ checksum = "b0674a1ddeecb70197781e945de4b3b8ffb61fa939a5597bcf48503737663100" [[package]] name = "arceos_api" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#800ae7ff9c2cd354a14ea27eeed4c415744b38ea" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#d64023c205b51128b09652566e5ab6cc447d35c0" dependencies = [ "axalloc", "axconfig", @@ -299,7 +299,7 @@ dependencies = [ [[package]] name = "axalloc" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#800ae7ff9c2cd354a14ea27eeed4c415744b38ea" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#d64023c205b51128b09652566e5ab6cc447d35c0" dependencies = [ "allocator", "axerrno", @@ -312,7 +312,7 @@ dependencies = [ [[package]] name = "axconfig" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#800ae7ff9c2cd354a14ea27eeed4c415744b38ea" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#d64023c205b51128b09652566e5ab6cc447d35c0" dependencies = [ "axconfig-macros", ] @@ -396,7 +396,7 @@ dependencies = [ [[package]] name = "axdriver" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#800ae7ff9c2cd354a14ea27eeed4c415744b38ea" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#d64023c205b51128b09652566e5ab6cc447d35c0" dependencies = [ "arm-gic-driver", "axalloc", @@ -459,7 +459,7 @@ dependencies = [ [[package]] name = "axfeat" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#800ae7ff9c2cd354a14ea27eeed4c415744b38ea" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#d64023c205b51128b09652566e5ab6cc447d35c0" dependencies = [ "axalloc", "axdriver", @@ -475,7 +475,7 @@ dependencies = [ [[package]] name = "axfs" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#800ae7ff9c2cd354a14ea27eeed4c415744b38ea" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#d64023c205b51128b09652566e5ab6cc447d35c0" dependencies = [ "axdriver", "axdriver_block", @@ -529,7 +529,7 @@ dependencies = [ [[package]] name = "axhal" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#800ae7ff9c2cd354a14ea27eeed4c415744b38ea" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#d64023c205b51128b09652566e5ab6cc447d35c0" dependencies = [ "aarch64-cpu", "axalloc", @@ -573,7 +573,7 @@ dependencies = [ [[package]] name = "axlog" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#800ae7ff9c2cd354a14ea27eeed4c415744b38ea" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#d64023c205b51128b09652566e5ab6cc447d35c0" dependencies = [ "cfg-if", "crate_interface", @@ -584,7 +584,7 @@ dependencies = [ [[package]] name = "axmm" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#800ae7ff9c2cd354a14ea27eeed4c415744b38ea" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#d64023c205b51128b09652566e5ab6cc447d35c0" dependencies = [ "axalloc", "axconfig", @@ -600,7 +600,7 @@ dependencies = [ [[package]] name = "axns" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#800ae7ff9c2cd354a14ea27eeed4c415744b38ea" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#d64023c205b51128b09652566e5ab6cc447d35c0" dependencies = [ "crate_interface", "lazyinit", @@ -813,7 +813,7 @@ dependencies = [ [[package]] name = "axruntime" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#800ae7ff9c2cd354a14ea27eeed4c415744b38ea" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#d64023c205b51128b09652566e5ab6cc447d35c0" dependencies = [ "axalloc", "axconfig", @@ -843,7 +843,7 @@ dependencies = [ [[package]] name = "axstd" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#800ae7ff9c2cd354a14ea27eeed4c415744b38ea" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#d64023c205b51128b09652566e5ab6cc447d35c0" dependencies = [ "arceos_api", "axerrno", @@ -856,7 +856,7 @@ dependencies = [ [[package]] name = "axsync" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#800ae7ff9c2cd354a14ea27eeed4c415744b38ea" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#d64023c205b51128b09652566e5ab6cc447d35c0" dependencies = [ "axtask", "kspin", @@ -866,7 +866,7 @@ dependencies = [ [[package]] name = "axtask" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#800ae7ff9c2cd354a14ea27eeed4c415744b38ea" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#d64023c205b51128b09652566e5ab6cc447d35c0" dependencies = [ "axconfig", "axhal", From 5e30de36ab86d88cfc2df8357cac0978f36a8449 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E7=9D=BF?= Date: Wed, 20 Aug 2025 15:14:56 +0800 Subject: [PATCH 112/219] fix: irq passthrow test --- Cargo.lock | 1 - Cargo.toml | 6 ++--- configs/vms/hvconfig-nimbos-aarch64.toml | 4 +++ configs/vms/nimbos-aarch64.toml | 34 +++++++++++------------- setup_test.sh | 34 ++++++++++++++++++++++++ 5 files changed, 57 insertions(+), 22 deletions(-) create mode 100644 configs/vms/hvconfig-nimbos-aarch64.toml create mode 100755 setup_test.sh diff --git a/Cargo.lock b/Cargo.lock index 52ccf964..ddac103b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -997,7 +997,6 @@ dependencies = [ [[package]] name = "axvm" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/axvm.git?branch=dev-irq#312ef08f71d8e21b26c6c4d4c1634266627ff4db" dependencies = [ "arm_vcpu", "arm_vgic", diff --git a/Cargo.toml b/Cargo.toml index 7359f1bf..9175e549 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -13,8 +13,8 @@ version = "0.1.0" fs = ["axstd/fs"] hv = [] irq = [] -plat-aarch64-generic = ["axplat-aarch64-generic", "fs", "hv", "irq", "axstd/driver-dyn"] -plat-x86-qemu-q35 = ["axplat-x86-qemu-q35", "fs", "hv", "irq"] +plat-aarch64-generic = ["axplat-aarch64-generic", "hv", "irq", "axstd/driver-dyn"] +plat-x86-qemu-q35 = ["axplat-x86-qemu-q35", "hv", "irq"] [dependencies] bitflags = "2.2" @@ -62,8 +62,8 @@ axplat-aarch64-generic = {path = "platform/aarch64-generic", optional = true} axplat-x86-qemu-q35 = {path = "platform/x86-qemu-q35", optional = true} [target.'cfg(target_arch = "aarch64")'.dependencies] -arm-gic-driver = {version = "0.15.5", features = ["rdif"]} aarch64-cpu-ext = "0.1" +arm-gic-driver = {version = "0.15.5", features = ["rdif"]} [build-dependencies] axconfig = {git = "https://github.com/arceos-hypervisor/arceos.git", branch = "vmm-dev"} diff --git a/configs/vms/hvconfig-nimbos-aarch64.toml b/configs/vms/hvconfig-nimbos-aarch64.toml new file mode 100644 index 00000000..df7c44d4 --- /dev/null +++ b/configs/vms/hvconfig-nimbos-aarch64.toml @@ -0,0 +1,4 @@ +plat = "aarch64-generic" +features = ["fs"] +arceos_args = [ "DISK_IMG=nimbos-aarch64.img", "BUS=mmio", "BLK=y", "MEM=8g", "LOG=debug"] +vmconfigs = [ "configs/vms/nimbos-aarch64.toml",] diff --git a/configs/vms/nimbos-aarch64.toml b/configs/vms/nimbos-aarch64.toml index 3795ea84..8e3fe0dd 100644 --- a/configs/vms/nimbos-aarch64.toml +++ b/configs/vms/nimbos-aarch64.toml @@ -41,36 +41,34 @@ kernel_load_addr = 0x4008_0000 # Memory regions with format (`base_paddr`, `size`, `flags`, `map_type`). # For `map_type`, 0 means `MAP_ALLOC`, 1 means `MAP_IDENTICAL`. memory_regions = [ - [0x4000_0000, 0x100_0000, 0x7, 0], # Low RAM 16M 0b00111 R|W|EXECUTE + [0x4000_0000, 0x100_0000, 0x7, 0], # Low RAM 16M 0b00111 R|W|EXECUTE ] # # Device specifications # [devices] +interrupt_mode = "passthrough" # Emu_devices. # Name Base-Ipa Ipa_len Alloc-Irq Emu-Type EmuConfig. emu_devices = [ - [ - "vgicd-v2", - 0x800_0000, - 0x10_000, - 25, - 1, - [ - 2, - ], - ], # Vgicdv2 4k irq-25 EmuDeviceTGicdV2 config: vcpu_num + # [ + # "vgicd-v2", + # 0x800_0000, + # 0x10_000, + # 25, + # 1, + # [2], + # ], # Vgicdv2 4k irq-25 EmuDeviceTGicdV2 config: vcpu_num ] # Pass-through devices. # Name Base-Ipa Base-Pa Length Alloc-Irq. passthrough_devices = [ - ["intc@8000000", 0x801_0000, 0x804_0000, 0x2_000, 0x1], - ["pl011@9000000", 0x900_0000, 0x904_0000, 0x1000, 0x1], - ["pl031@9010000", 0x901_0000, 0x901_0000, 0x1000, 0x1], - ["pl061@9030000", 0x903_0000, 0x903_0000, 0x1000, 0x1], - # a003000.virtio_mmio virtio_mmio@a003000 - # a003200.virtio_mmio virtio_mmio@a003200 - ["virtio_mmio", 0xa00_0000, 0xa00_0000, 0x4000, 0x1], + # ["intc@8000000", 0x801_0000, 0x804_0000, 0x2_000, 0x1], + ["intc@8000000", 0x800_0000, 0x800_0000, 0x40000, 0x1], + ["pl011@9000000", 0x900_0000, 0x904_0000, 0x1000, 0x1], + ["pl031@9010000", 0x901_0000, 0x901_0000, 0x1000, 0x1], + ["pl061@9030000", 0x903_0000, 0x903_0000, 0x1000, 0x1], # a003000.virtio_mmio virtio_mmio@a003000 # a003200.virtio_mmio virtio_mmio@a003200 + ["virtio_mmio", 0xa00_0000, 0xa00_0000, 0x4000, 0x1], ] diff --git a/setup_test.sh b/setup_test.sh new file mode 100755 index 00000000..6c791d26 --- /dev/null +++ b/setup_test.sh @@ -0,0 +1,34 @@ + +#!/bin/bash + +# 确保 tmp 目录存在 +mkdir -p tmp + +# 检查并下载 aarch64_usertests.zip +if [ ! -f "tmp/aarch64_usertests.zip" ]; then + echo "Downloading aarch64_usertests.zip..." + wget -P tmp https://github.com/arceos-hypervisor/nimbos/releases/download/v0.7/aarch64_usertests.zip +else + echo "aarch64_usertests.zip already exists, skipping download." +fi + +# 检查并下载 x86_64_usertests.zip +if [ ! -f "tmp/x86_64_usertests.zip" ]; then + echo "Downloading x86_64_usertests.zip..." + wget -P tmp https://github.com/arceos-hypervisor/nimbos/releases/download/v0.7/x86_64_usertests.zip +else + echo "x86_64_usertests.zip already exists, skipping download." +fi + +sudo rm -rf tmp/tmp_disk +mkdir -p tmp/tmp_disk +unzip tmp/aarch64_usertests.zip -d tmp/tmp_disk +mv tmp/tmp_disk/nimbos.bin tmp/tmp_disk/nimbos-aarch64.bin + +sudo rm .arceos/nimbos-aarch64.img +./task.py disk_img --image nimbos-aarch64.img +sudo mkdir -p tmp/img +sudo chown root:root tmp/tmp_disk/* +sudo mount .arceos/nimbos-aarch64.img tmp/img +sudo mv tmp/tmp_disk/* tmp/img +sudo umount tmp/img \ No newline at end of file From 7c2a75b9d5647e03118b5caac316d8cf261356e7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E7=9D=BF?= Date: Wed, 20 Aug 2025 15:18:01 +0800 Subject: [PATCH 113/219] =?UTF-8?q?fix:=20=E5=9C=A8=E6=9C=AC=E5=9C=B0?= =?UTF-8?q?=E6=B5=8B=E8=AF=95=E4=B8=AD=E4=B8=BA=20task.py=20=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=20fs=20=E7=89=B9=E6=80=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 96b11a89..b050545d 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -47,7 +47,7 @@ jobs: cargo version export DISK_IMG="${{ github.workspace }}/disk-aarch64.img" export VM_CONFIGS="$(pwd)/configs/vms/nimbos-aarch64.toml" - ./task.py run --plat ${{ matrix.plat }} --vmconfigs $VM_CONFIGS --arceos-args DISK_IMG=$DISK_IMG,BUS=mmio,BLK=y,MEM=8g + ./task.py run --plat ${{ matrix.plat }} --vmconfigs $VM_CONFIGS --features fs --arceos-args DISK_IMG=$DISK_IMG,BUS=mmio,BLK=y,MEM=8g test_remote: runs-on: ubuntu-latest From d5158d37b2d82059dc02e682b3a260af89b02557 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E7=9D=BF?= Date: Wed, 20 Aug 2025 15:23:35 +0800 Subject: [PATCH 114/219] =?UTF-8?q?fix:=20=E6=9B=B4=E6=96=B0=20bootstrap.s?= =?UTF-8?q?h=20=E4=B8=AD=20pip=20=E5=8D=87=E7=BA=A7=E5=92=8C=E4=BE=9D?= =?UTF-8?q?=E8=B5=96=E5=AE=89=E8=A3=85=E7=9A=84=E5=91=BD=E4=BB=A4=EF=BC=8C?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E9=95=9C=E5=83=8F=E6=BA=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bootstrap.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bootstrap.sh b/bootstrap.sh index bb9cc3c3..62a29c02 100755 --- a/bootstrap.sh +++ b/bootstrap.sh @@ -45,11 +45,11 @@ source "$VENV_DIR/bin/activate" # 升级 pip echo "升级 pip..." -pip install --upgrade pip +python -m pip install -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple --upgrade pip # 安装依赖 echo "正在安装 Python 依赖..." -pip install -r requirements.txt +pip install -r requirements.txt -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple echo "依赖安装完成!" From 639c5bb18efdfeb46a240ecba20f3aa9c1b9afb8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E7=9D=BF?= Date: Wed, 20 Aug 2025 15:31:06 +0800 Subject: [PATCH 115/219] =?UTF-8?q?fix:=20=E5=9C=A8=E6=BF=80=E6=B4=BB?= =?UTF-8?q?=E8=99=9A=E6=8B=9F=E7=8E=AF=E5=A2=83=E5=89=8D=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=20HTTP=5FPROXY=20=E5=92=8C=20HTTPS=5FPROXY=20=E7=8E=AF?= =?UTF-8?q?=E5=A2=83=E5=8F=98=E9=87=8F=E7=9A=84=E5=AF=BC=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bootstrap.sh | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/bootstrap.sh b/bootstrap.sh index 62a29c02..7e1cbdde 100755 --- a/bootstrap.sh +++ b/bootstrap.sh @@ -43,13 +43,16 @@ fi echo "激活虚拟环境..." source "$VENV_DIR/bin/activate" +export HTTP_PROXY= +export HTTPS_PROXY= + # 升级 pip echo "升级 pip..." python -m pip install -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple --upgrade pip # 安装依赖 echo "正在安装 Python 依赖..." -pip install -r requirements.txt -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple +pip install -r requirements.txt -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simpl echo "依赖安装完成!" From fe6017d3c5d0d585b18a77f52582be260b6864f4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E7=9D=BF?= Date: Wed, 20 Aug 2025 15:38:20 +0800 Subject: [PATCH 116/219] =?UTF-8?q?fix:=20=E5=9C=A8=E6=BF=80=E6=B4=BB?= =?UTF-8?q?=E8=99=9A=E6=8B=9F=E7=8E=AF=E5=A2=83=E6=97=B6=E5=8F=96=E6=B6=88?= =?UTF-8?q?=E8=AE=BE=E7=BD=AE=20HTTP=5FPROXY=20=E5=92=8C=20HTTPS=5FPROXY?= =?UTF-8?q?=20=E7=8E=AF=E5=A2=83=E5=8F=98=E9=87=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bootstrap.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bootstrap.sh b/bootstrap.sh index 7e1cbdde..358aa88d 100755 --- a/bootstrap.sh +++ b/bootstrap.sh @@ -43,8 +43,8 @@ fi echo "激活虚拟环境..." source "$VENV_DIR/bin/activate" -export HTTP_PROXY= -export HTTPS_PROXY= +unset http_proxy +unset https_proxy # 升级 pip echo "升级 pip..." From ecee9dbe3ea0154e19c309ced39bde32b71db186 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E7=9D=BF?= Date: Wed, 20 Aug 2025 15:40:13 +0800 Subject: [PATCH 117/219] =?UTF-8?q?fix:=20=E5=9C=A8=E6=BF=80=E6=B4=BB?= =?UTF-8?q?=E8=99=9A=E6=8B=9F=E7=8E=AF=E5=A2=83=E6=97=B6=E5=8F=96=E6=B6=88?= =?UTF-8?q?=E8=AE=BE=E7=BD=AE=20HTTP=5FPROXY=20=E5=92=8C=20HTTPS=5FPROXY?= =?UTF-8?q?=20=E7=8E=AF=E5=A2=83=E5=8F=98=E9=87=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/test.yml | 4 ++++ bootstrap.sh | 4 +--- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index b050545d..02c9b280 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -131,6 +131,10 @@ jobs: tar -xzf $WORKDIR/source.tar.gz -C $WORKDIR cd $WORKDIR + + unset http_proxy + unset https_proxy + source ./activate.sh ./task.py run --plat x86-qemu-q35 --vmconfigs $WORKDIR/configs/vms/nimbos-x86_64.toml --arceos-args DISK_IMG=$WORKDIR/disk-x86_64.img,LOG=info,BLK=y,MEM=8g,ACCEL=y --features fs | tee $WORKDIR/make_output.log diff --git a/bootstrap.sh b/bootstrap.sh index 358aa88d..4edc1fae 100755 --- a/bootstrap.sh +++ b/bootstrap.sh @@ -43,8 +43,6 @@ fi echo "激活虚拟环境..." source "$VENV_DIR/bin/activate" -unset http_proxy -unset https_proxy # 升级 pip echo "升级 pip..." @@ -52,7 +50,7 @@ python -m pip install -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple -- # 安装依赖 echo "正在安装 Python 依赖..." -pip install -r requirements.txt -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simpl +pip install -r requirements.txt -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple echo "依赖安装完成!" From 57710d0d347799ccde0635920bf1774da72d865d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E7=9D=BF?= Date: Wed, 20 Aug 2025 15:49:26 +0800 Subject: [PATCH 118/219] =?UTF-8?q?fix:=20=E5=9C=A8=E6=BF=80=E6=B4=BB?= =?UTF-8?q?=E8=99=9A=E6=8B=9F=E7=8E=AF=E5=A2=83=E6=97=B6=E4=BF=9D=E5=AD=98?= =?UTF-8?q?=E5=92=8C=E6=81=A2=E5=A4=8D=E4=BB=A3=E7=90=86=E7=8E=AF=E5=A2=83?= =?UTF-8?q?=E5=8F=98=E9=87=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/test.yml | 17 ++++++++++++++++- bootstrap.sh | 1 - 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 02c9b280..3b050bec 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -132,10 +132,25 @@ jobs: tar -xzf $WORKDIR/source.tar.gz -C $WORKDIR cd $WORKDIR + # 保存当前的代理环境变量 + echo "保存代理环境变量..." + SAVED_HTTP_PROXY="$http_proxy" + SAVED_HTTPS_PROXY="$https_proxy" + + # 临时取消设置代理环境变量 unset http_proxy unset https_proxy - source ./activate.sh + + # 恢复代理环境变量 + echo "恢复代理环境变量..." + if [[ -n "$SAVED_HTTP_PROXY" ]]; then + export http_proxy="$SAVED_HTTP_PROXY" + fi + if [[ -n "$SAVED_HTTPS_PROXY" ]]; then + export https_proxy="$SAVED_HTTPS_PROXY" + fi + ./task.py run --plat x86-qemu-q35 --vmconfigs $WORKDIR/configs/vms/nimbos-x86_64.toml --arceos-args DISK_IMG=$WORKDIR/disk-x86_64.img,LOG=info,BLK=y,MEM=8g,ACCEL=y --features fs | tee $WORKDIR/make_output.log # make -C $WORKDIR ARCH=x86_64 defconfig diff --git a/bootstrap.sh b/bootstrap.sh index 4edc1fae..62a29c02 100755 --- a/bootstrap.sh +++ b/bootstrap.sh @@ -43,7 +43,6 @@ fi echo "激活虚拟环境..." source "$VENV_DIR/bin/activate" - # 升级 pip echo "升级 pip..." python -m pip install -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple --upgrade pip From ab99e2b1488cb27c1be1f49076ee4104d5f14760 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E7=9D=BF?= Date: Wed, 20 Aug 2025 16:26:19 +0800 Subject: [PATCH 119/219] refactor: rebase arceos --- Cargo.lock | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index ddac103b..56a9c9d0 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -133,7 +133,7 @@ checksum = "b0674a1ddeecb70197781e945de4b3b8ffb61fa939a5597bcf48503737663100" [[package]] name = "arceos_api" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#d64023c205b51128b09652566e5ab6cc447d35c0" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#b6ba2d67ee347e33039f5dd3681fc875f67085aa" dependencies = [ "axalloc", "axconfig", @@ -299,7 +299,7 @@ dependencies = [ [[package]] name = "axalloc" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#d64023c205b51128b09652566e5ab6cc447d35c0" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#b6ba2d67ee347e33039f5dd3681fc875f67085aa" dependencies = [ "allocator", "axerrno", @@ -312,7 +312,7 @@ dependencies = [ [[package]] name = "axconfig" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#d64023c205b51128b09652566e5ab6cc447d35c0" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#b6ba2d67ee347e33039f5dd3681fc875f67085aa" dependencies = [ "axconfig-macros", ] @@ -396,7 +396,7 @@ dependencies = [ [[package]] name = "axdriver" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#d64023c205b51128b09652566e5ab6cc447d35c0" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#b6ba2d67ee347e33039f5dd3681fc875f67085aa" dependencies = [ "arm-gic-driver", "axalloc", @@ -459,7 +459,7 @@ dependencies = [ [[package]] name = "axfeat" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#d64023c205b51128b09652566e5ab6cc447d35c0" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#b6ba2d67ee347e33039f5dd3681fc875f67085aa" dependencies = [ "axalloc", "axdriver", @@ -475,7 +475,7 @@ dependencies = [ [[package]] name = "axfs" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#d64023c205b51128b09652566e5ab6cc447d35c0" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#b6ba2d67ee347e33039f5dd3681fc875f67085aa" dependencies = [ "axdriver", "axdriver_block", @@ -529,7 +529,7 @@ dependencies = [ [[package]] name = "axhal" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#d64023c205b51128b09652566e5ab6cc447d35c0" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#b6ba2d67ee347e33039f5dd3681fc875f67085aa" dependencies = [ "aarch64-cpu", "axalloc", @@ -573,7 +573,7 @@ dependencies = [ [[package]] name = "axlog" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#d64023c205b51128b09652566e5ab6cc447d35c0" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#b6ba2d67ee347e33039f5dd3681fc875f67085aa" dependencies = [ "cfg-if", "crate_interface", @@ -584,7 +584,7 @@ dependencies = [ [[package]] name = "axmm" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#d64023c205b51128b09652566e5ab6cc447d35c0" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#b6ba2d67ee347e33039f5dd3681fc875f67085aa" dependencies = [ "axalloc", "axconfig", @@ -600,7 +600,7 @@ dependencies = [ [[package]] name = "axns" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#d64023c205b51128b09652566e5ab6cc447d35c0" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#b6ba2d67ee347e33039f5dd3681fc875f67085aa" dependencies = [ "crate_interface", "lazyinit", @@ -813,7 +813,7 @@ dependencies = [ [[package]] name = "axruntime" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#d64023c205b51128b09652566e5ab6cc447d35c0" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#b6ba2d67ee347e33039f5dd3681fc875f67085aa" dependencies = [ "axalloc", "axconfig", @@ -843,7 +843,7 @@ dependencies = [ [[package]] name = "axstd" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#d64023c205b51128b09652566e5ab6cc447d35c0" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#b6ba2d67ee347e33039f5dd3681fc875f67085aa" dependencies = [ "arceos_api", "axerrno", @@ -856,7 +856,7 @@ dependencies = [ [[package]] name = "axsync" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#d64023c205b51128b09652566e5ab6cc447d35c0" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#b6ba2d67ee347e33039f5dd3681fc875f67085aa" dependencies = [ "axtask", "kspin", @@ -866,7 +866,7 @@ dependencies = [ [[package]] name = "axtask" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#d64023c205b51128b09652566e5ab6cc447d35c0" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#b6ba2d67ee347e33039f5dd3681fc875f67085aa" dependencies = [ "axconfig", "axhal", From 576e06e857451d9e9d67b2e4c3550b261f810508 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E7=9D=BF?= Date: Wed, 20 Aug 2025 17:17:16 +0800 Subject: [PATCH 120/219] ci: change runner --- .github/workflows/test.yml | 147 +++++++++---------------------------- 1 file changed, 34 insertions(+), 113 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 3b050bec..39dea4e5 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -50,123 +50,44 @@ jobs: ./task.py run --plat ${{ matrix.plat }} --vmconfigs $VM_CONFIGS --features fs --arceos-args DISK_IMG=$DISK_IMG,BUS=mmio,BLK=y,MEM=8g test_remote: - runs-on: ubuntu-latest + runs-on: dtlqc strategy: fail-fast: false matrix: - arch: [x86_64] + plat: [x86-qemu-q35] rust-toolchain: [nightly-2025-05-20, nightly] - remote: [remote_aarkegz, remote_x10dri] - include: - - remote: remote_aarkegz - host_key: HOST - username_key: USERNAME - password_key: PASSWORD - port_key: PORT - - remote: remote_x10dri - host_key: HOST2 - username_key: USERNAME2 - password_key: PASSWORD2 - port_key: PORT2 steps: - - uses: actions/checkout@v4 - - name: Update rust-toolchain.toml - run: | - sed -i "s/^channel = .*/channel = \"${{ matrix.rust-toolchain }}\"/" rust-toolchain.toml - - name: Compress source code - run: tar -czf ~/source.tar.gz -C ${{ github.workspace }} . - - name: Copy files to current directory - run: | - cp ~/source.tar.gz . - - uses: ./.github/workflows/actions/setup-nimbos-guest-image - with: - nimbos-version: 'tags/v0.7' - arch: ${{ matrix.arch }} - disk-path: ${{ github.workspace }}/disk-${{ matrix.arch }}.img - - name: Copy x86_64 files to remote runner - uses: appleboy/scp-action@v0.1.7 - with: - host: ${{ secrets[matrix.host_key] }} - username: ${{ secrets[matrix.username_key] }} - password: ${{ secrets[matrix.password_key] }} - port: ${{ secrets[matrix.port_key] }} - source: './disk-x86_64.img,./source.tar.gz' - target: '~/runner/remote_test-${{ github.run_id }}-${{ matrix.arch }}-${{ matrix.rust-toolchain }}' - - name: Running on remote runner - uses: appleboy/ssh-action@v1.2.2 - continue-on-error: ${{ matrix.rust-toolchain == 'nightly' }} - with: - host: ${{ secrets[matrix.host_key] }} - username: ${{ secrets[matrix.username_key] }} - password: ${{ secrets[matrix.password_key] }} - port: ${{ secrets[matrix.port_key] }} - script: | - set -e # Exit quickly on error - set -o pipefail # Exit if any command in a pipeline fails - . ~/.profile # Load ~/.profile manually, as it turns out that sometimes it is not loaded automatically - - # Set the working directory - WORKDIR=~/runner/remote_test-${{ github.run_id }}-${{ matrix.arch }}-${{ matrix.rust-toolchain }} - - # Set up colors for output - COLOR_BOLD=$'\033[1m' - COLOR_RED=$'\033[91;1m' - COLOR_GREEN=$'\033[92;1m' - COLOR_YELLOW=$'\033[93;1m' - COLOR_CLEAR=$'\033[0m' - - # Echo the environment info - function echo_env_info() { - PREVIOUS_DIR=$(pwd) - cd $WORKDIR - echo "shell : ${COLOR_BOLD}${SHELL}${COLOR_CLEAR}" - echo "rust-toolchain : ${COLOR_BOLD}${{ matrix.rust-toolchain }}${COLOR_CLEAR}" - echo "cargo version : ${COLOR_BOLD}$(cargo --version)${COLOR_CLEAR}" - echo "workdir : ${COLOR_BOLD}${WORKDIR}${COLOR_CLEAR}" - cd $PREVIOUS_DIR - } - - # Print the environment info - echo_env_info - - tar -xzf $WORKDIR/source.tar.gz -C $WORKDIR - cd $WORKDIR - - # 保存当前的代理环境变量 - echo "保存代理环境变量..." - SAVED_HTTP_PROXY="$http_proxy" - SAVED_HTTPS_PROXY="$https_proxy" - - # 临时取消设置代理环境变量 - unset http_proxy - unset https_proxy - source ./activate.sh - - # 恢复代理环境变量 - echo "恢复代理环境变量..." - if [[ -n "$SAVED_HTTP_PROXY" ]]; then - export http_proxy="$SAVED_HTTP_PROXY" - fi - if [[ -n "$SAVED_HTTPS_PROXY" ]]; then - export https_proxy="$SAVED_HTTPS_PROXY" - fi - - ./task.py run --plat x86-qemu-q35 --vmconfigs $WORKDIR/configs/vms/nimbos-x86_64.toml --arceos-args DISK_IMG=$WORKDIR/disk-x86_64.img,LOG=info,BLK=y,MEM=8g,ACCEL=y --features fs | tee $WORKDIR/make_output.log + - uses: actions/checkout@v4 + - uses: dtolnay/rust-toolchain@stable + with: + toolchain: ${{ matrix.rust-toolchain }} + components: rust-src + - uses: Swatinem/rust-cache@v2 + - run: cargo install cargo-binutils + - uses: arceos-org/setup-qemu@v0.1 + with: + version: ${{ env.qemu-version }} + arch_list: x86_64 + - uses: ./.github/workflows/actions/setup-nimbos-guest-image + with: + nimbos-version: 'tags/v0.7' + arch: x86_64 + disk-path: ${{ github.workspace }}/disk-x86_64.img + - name: Enable KVM group perms + run: | + echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules + sudo udevadm control --reload-rules + sudo udevadm trigger --name-match=kvm + - name: Update rust-toolchain.toml + run: | + sed -i "s/^channel = .*/channel = \"${{ matrix.rust-toolchain }}\"/" rust-toolchain.toml + - name: Run guests + continue-on-error: ${{ matrix.rust-toolchain == 'nightly' }} + run: | + source ./activate.sh + cargo version + export DISK_IMG="${{ github.workspace }}/disk-x86_64.img" + export VM_CONFIGS="$(pwd)/configs/vms/nimbos-x86_64.toml" + ./task.py run --plat ${{ matrix.plat }} --vmconfigs $VM_CONFIGS --features fs --arceos-args DISK_IMG=$DISK_IMG,BLK=y,MEM=8g - # make -C $WORKDIR ARCH=x86_64 defconfig - # make -C $WORKDIR ARCH=x86_64 DISK_IMG=$WORKDIR/disk-x86_64.img LOG=info BLK=y ACCEL=y VM_CONFIGS=$WORKDIR/configs/vms/nimbos-x86_64.toml APP_FEATURES=fs run | tee $WORKDIR/make_output.log - - # Re-echo the environment info - echo_env_info - - if grep -q "panic" $WORKDIR/make_output.log; then - echo "test result : ${COLOR_RED}FAIL${COLOR_CLEAR}" - echo " ${COLOR_RED}'panic' found in output msg${COLOR_CLEAR}" - echo " ${COLOR_YELLOW}Check the log file: $WORKDIR/make_output.log${COLOR_CLEAR}" - exit 1 - else - echo "test result : ${COLOR_GREEN}PASS${COLOR_CLEAR}" - fi - # Clean up - cd ~ && rm -rf $WORKDIR From 700649a527c88e27c02578019beeb00f296cb6d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E7=9D=BF?= Date: Wed, 20 Aug 2025 17:19:34 +0800 Subject: [PATCH 121/219] update --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 39dea4e5..a4a7b1db 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -50,7 +50,7 @@ jobs: ./task.py run --plat ${{ matrix.plat }} --vmconfigs $VM_CONFIGS --features fs --arceos-args DISK_IMG=$DISK_IMG,BUS=mmio,BLK=y,MEM=8g test_remote: - runs-on: dtlqc + runs-on: self-hosted strategy: fail-fast: false matrix: From e694386a6dc538be54e3319c3ce98cd16d706642 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E7=9D=BF?= Date: Wed, 20 Aug 2025 17:34:40 +0800 Subject: [PATCH 122/219] update --- configs/vms/nimbos-x86_64.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/configs/vms/nimbos-x86_64.toml b/configs/vms/nimbos-x86_64.toml index e08a776b..1029a852 100644 --- a/configs/vms/nimbos-x86_64.toml +++ b/configs/vms/nimbos-x86_64.toml @@ -47,6 +47,7 @@ memory_regions = [ # Device specifications # [devices] +interrupt_mode = "passthrough" # Emu_devices. # Name Base-Ipa Ipa_len Alloc-Irq Emu-Type EmuConfig. emu_devices = [] From 5f8ca6420052140193a280b6eb9e6d3eb8c32f07 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E7=9D=BF?= Date: Thu, 21 Aug 2025 10:28:31 +0800 Subject: [PATCH 123/219] refactor: remove x86 test --- .github/workflows/test.yml | 80 ++++++++++----------- Cargo.lock | 2 - configs/vms/nimbos-x86_64.toml | 2 +- scripts/config.py | 2 +- setup_test.sh | 122 +++++++++++++++++++++++++-------- 5 files changed, 137 insertions(+), 71 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index a4a7b1db..dcbbcc17 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -49,45 +49,45 @@ jobs: export VM_CONFIGS="$(pwd)/configs/vms/nimbos-aarch64.toml" ./task.py run --plat ${{ matrix.plat }} --vmconfigs $VM_CONFIGS --features fs --arceos-args DISK_IMG=$DISK_IMG,BUS=mmio,BLK=y,MEM=8g - test_remote: - runs-on: self-hosted - strategy: - fail-fast: false - matrix: - plat: [x86-qemu-q35] - rust-toolchain: [nightly-2025-05-20, nightly] - steps: - - uses: actions/checkout@v4 - - uses: dtolnay/rust-toolchain@stable - with: - toolchain: ${{ matrix.rust-toolchain }} - components: rust-src - - uses: Swatinem/rust-cache@v2 - - run: cargo install cargo-binutils - - uses: arceos-org/setup-qemu@v0.1 - with: - version: ${{ env.qemu-version }} - arch_list: x86_64 - - uses: ./.github/workflows/actions/setup-nimbos-guest-image - with: - nimbos-version: 'tags/v0.7' - arch: x86_64 - disk-path: ${{ github.workspace }}/disk-x86_64.img - - name: Enable KVM group perms - run: | - echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules - sudo udevadm control --reload-rules - sudo udevadm trigger --name-match=kvm - - name: Update rust-toolchain.toml - run: | - sed -i "s/^channel = .*/channel = \"${{ matrix.rust-toolchain }}\"/" rust-toolchain.toml - - name: Run guests - continue-on-error: ${{ matrix.rust-toolchain == 'nightly' }} - run: | - source ./activate.sh - cargo version - export DISK_IMG="${{ github.workspace }}/disk-x86_64.img" - export VM_CONFIGS="$(pwd)/configs/vms/nimbos-x86_64.toml" - ./task.py run --plat ${{ matrix.plat }} --vmconfigs $VM_CONFIGS --features fs --arceos-args DISK_IMG=$DISK_IMG,BLK=y,MEM=8g + # test_remote: + # runs-on: self-hosted + # strategy: + # fail-fast: false + # matrix: + # plat: [x86-qemu-q35] + # rust-toolchain: [nightly-2025-05-20, nightly] + # steps: + # - uses: actions/checkout@v4 + # - uses: dtolnay/rust-toolchain@stable + # with: + # toolchain: ${{ matrix.rust-toolchain }} + # components: rust-src + # - uses: Swatinem/rust-cache@v2 + # - run: cargo install cargo-binutils + # - uses: arceos-org/setup-qemu@v0.1 + # with: + # version: ${{ env.qemu-version }} + # arch_list: x86_64 + # - uses: ./.github/workflows/actions/setup-nimbos-guest-image + # with: + # nimbos-version: 'tags/v0.7' + # arch: x86_64 + # disk-path: ${{ github.workspace }}/disk-x86_64.img + # - name: Enable KVM group perms + # run: | + # echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules + # sudo udevadm control --reload-rules + # sudo udevadm trigger --name-match=kvm + # - name: Update rust-toolchain.toml + # run: | + # sed -i "s/^channel = .*/channel = \"${{ matrix.rust-toolchain }}\"/" rust-toolchain.toml + # - name: Run guests + # continue-on-error: ${{ matrix.rust-toolchain == 'nightly' }} + # run: | + # source ./activate.sh + # cargo version + # export DISK_IMG="${{ github.workspace }}/disk-x86_64.img" + # export VM_CONFIGS="$(pwd)/configs/vms/nimbos-x86_64.toml" + # ./task.py run --plat ${{ matrix.plat }} --vmconfigs $VM_CONFIGS --features fs --arceos-args DISK_IMG=$DISK_IMG,BLK=y,MEM=8g diff --git a/Cargo.lock b/Cargo.lock index 56a9c9d0..987a0486 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4419,8 +4419,6 @@ dependencies = [ [[package]] name = "x86_vcpu" version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "873e097d52e94c31be3f0175a9f8d6f2edbc77d7e2f8e6995427df9c08b30a2b" dependencies = [ "axaddrspace 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "axdevice_base", diff --git a/configs/vms/nimbos-x86_64.toml b/configs/vms/nimbos-x86_64.toml index 1029a852..bc19d75d 100644 --- a/configs/vms/nimbos-x86_64.toml +++ b/configs/vms/nimbos-x86_64.toml @@ -2,7 +2,7 @@ # [base] # Guest vm id. -id = 0 +id = 1 # Guest vm name. name = "nimbos" # Virtualization type. diff --git a/scripts/config.py b/scripts/config.py index a4c623f5..1f16522d 100644 --- a/scripts/config.py +++ b/scripts/config.py @@ -118,7 +118,7 @@ def get_arch_specific_qemu_args(self) -> str: arch_qemu_args = "-machine virtualization=on" elif self.arch == "x86_64": # x86_64 架构使用 Intel VT-x 虚拟化支持 - arch_qemu_args = "" + arch_qemu_args = "-accel kvm" elif self.arch == "riscv64": # RISC-V 架构的虚拟化参数 arch_qemu_args = "-machine virt -cpu rv64" diff --git a/setup_test.sh b/setup_test.sh index 6c791d26..ca7661ca 100755 --- a/setup_test.sh +++ b/setup_test.sh @@ -1,34 +1,102 @@ - #!/bin/bash # 确保 tmp 目录存在 mkdir -p tmp -# 检查并下载 aarch64_usertests.zip -if [ ! -f "tmp/aarch64_usertests.zip" ]; then - echo "Downloading aarch64_usertests.zip..." - wget -P tmp https://github.com/arceos-hypervisor/nimbos/releases/download/v0.7/aarch64_usertests.zip -else - echo "aarch64_usertests.zip already exists, skipping download." -fi - -# 检查并下载 x86_64_usertests.zip -if [ ! -f "tmp/x86_64_usertests.zip" ]; then - echo "Downloading x86_64_usertests.zip..." - wget -P tmp https://github.com/arceos-hypervisor/nimbos/releases/download/v0.7/x86_64_usertests.zip -else - echo "x86_64_usertests.zip already exists, skipping download." -fi +# 下载并创建镜像的完整函数 +setup_nimbos_image() { + local arch=$1 + local zip_file="tmp/${arch}_usertests.zip" + local bin_name="nimbos-${arch}.bin" + local img_name="nimbos-${arch}.img" + local download_url="https://github.com/arceos-hypervisor/nimbos/releases/download/v0.7/${arch}_usertests.zip" + + echo "=== Setting up ${img_name} ===" + + # 检查并下载对应架构的zip文件 + if [ ! -f "${zip_file}" ]; then + echo "Downloading ${arch}_usertests.zip..." + wget -P tmp "${download_url}" + if [ $? -ne 0 ]; then + echo "Error: Failed to download ${arch}_usertests.zip" + return 1 + fi + else + echo "${arch}_usertests.zip already exists, skipping download." + fi + + echo "Creating ${img_name}..." + + # 清理并创建临时目录 + sudo rm -rf tmp/tmp_disk + mkdir -p tmp/tmp_disk + + # 解压对应架构的文件 + unzip "${zip_file}" -d tmp/tmp_disk + if [ $? -ne 0 ]; then + echo "Error: Failed to extract ${zip_file}" + return 1 + fi + + # 重命名二进制文件 + mv tmp/tmp_disk/nimbos.bin "tmp/tmp_disk/${bin_name}" + + # 如果是 x86_64 架构,下载并添加 axvm-bios.bin + if [ "${arch}" == "x86_64" ]; then + echo "Downloading axvm-bios.bin for x86_64..." + local bios_file="tmp/axvm-bios.bin" + local bios_url="https://github.com/arceos-hypervisor/axvm-bios-x86/releases/download/v0.1/axvm-bios.bin" + + # 下载 axvm-bios.bin + if [ ! -f "${bios_file}" ]; then + wget -O "${bios_file}" "${bios_url}" + if [ $? -ne 0 ]; then + echo "Error: Failed to download axvm-bios.bin" + return 1 + fi + else + echo "axvm-bios.bin already exists, skipping download." + fi + + # 复制到临时目录 + cp "${bios_file}" tmp/tmp_disk/ + if [ $? -ne 0 ]; then + echo "Error: Failed to copy axvm-bios.bin" + return 1 + fi + + echo "axvm-bios.bin added to x86_64 image." + fi + + # 删除旧的镜像文件 + sudo rm -f ".arceos/${img_name}" + + # 创建新的镜像 + ./task.py disk_img --image "${img_name}" + if [ $? -ne 0 ]; then + echo "Error: Failed to create disk image ${img_name}" + return 1 + fi + + # 挂载并复制文件 + sudo mkdir -p tmp/img + sudo chown root:root tmp/tmp_disk/* + sudo mount ".arceos/${img_name}" tmp/img + if [ $? -ne 0 ]; then + echo "Error: Failed to mount ${img_name}" + return 1 + fi + + sudo mv tmp/tmp_disk/* tmp/img + sudo umount tmp/img + + echo "${img_name} created successfully!" + echo "=== ${arch} setup completed ===" + echo +} -sudo rm -rf tmp/tmp_disk -mkdir -p tmp/tmp_disk -unzip tmp/aarch64_usertests.zip -d tmp/tmp_disk -mv tmp/tmp_disk/nimbos.bin tmp/tmp_disk/nimbos-aarch64.bin +# 创建 aarch64 和 x86_64 镜像 +setup_nimbos_image "aarch64" +setup_nimbos_image "x86_64" -sudo rm .arceos/nimbos-aarch64.img -./task.py disk_img --image nimbos-aarch64.img -sudo mkdir -p tmp/img -sudo chown root:root tmp/tmp_disk/* -sudo mount .arceos/nimbos-aarch64.img tmp/img -sudo mv tmp/tmp_disk/* tmp/img -sudo umount tmp/img \ No newline at end of file +echo "All nimbos images setup completed!" \ No newline at end of file From 960175077af9b8d960ecebeaec70a8406aceb287 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E7=9D=BF?= Date: Thu, 21 Aug 2025 12:21:38 +0800 Subject: [PATCH 124/219] update --- Cargo.lock | 5 ++++- src/hal/mod.rs | 4 ++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/Cargo.lock b/Cargo.lock index 987a0486..74cbad3e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -638,7 +638,7 @@ dependencies = [ [[package]] name = "axplat-aarch64-dyn" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/axplat-aarch64-dyn#aa14e3a259b5662191941bedba15eff40b00819f" +source = "git+https://github.com/arceos-hypervisor/axplat-aarch64-dyn#4e7ed7498a1d773b74ce81322c65161ce0759a50" dependencies = [ "aarch64-cpu", "aarch64-cpu-ext", @@ -997,6 +997,7 @@ dependencies = [ [[package]] name = "axvm" version = "0.1.0" +source = "git+https://github.com/arceos-hypervisor/axvm.git?branch=dev-irq#312ef08f71d8e21b26c6c4d4c1634266627ff4db" dependencies = [ "arm_vcpu", "arm_vgic", @@ -4419,6 +4420,8 @@ dependencies = [ [[package]] name = "x86_vcpu" version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "873e097d52e94c31be3f0175a9f8d6f2edbc77d7e2f8e6995427df9c08b30a2b" dependencies = [ "axaddrspace 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "axdevice_base", diff --git a/src/hal/mod.rs b/src/hal/mod.rs index 7065f457..ee95f53d 100644 --- a/src/hal/mod.rs +++ b/src/hal/mod.rs @@ -138,6 +138,10 @@ pub(crate) fn enable_virtualization() { for cpu_id in 0..config::plat::CPU_NUM { thread::spawn(move || { + info!( + "Core {} is initializing hardware virtualization support...", + cpu_id + ); // Initialize cpu affinity here. assert!( ax_set_current_affinity(AxCpuMask::one_shot(cpu_id)).is_ok(), From c28929ae7fb6d1334d2d9a326526f4f29a9ab578 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E7=9D=BF?= Date: Thu, 21 Aug 2025 13:29:10 +0800 Subject: [PATCH 125/219] update gic driver --- Cargo.lock | 34 ++++++++++++++++------------------ 1 file changed, 16 insertions(+), 18 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 74cbad3e..0b355445 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -133,7 +133,7 @@ checksum = "b0674a1ddeecb70197781e945de4b3b8ffb61fa939a5597bcf48503737663100" [[package]] name = "arceos_api" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#b6ba2d67ee347e33039f5dd3681fc875f67085aa" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#7fe72320f5d5c888b8ee9b099342376f97b733b5" dependencies = [ "axalloc", "axconfig", @@ -213,7 +213,6 @@ dependencies = [ [[package]] name = "arm_vgic" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arm_vgic.git#81338d6dd8a9dab04b91c9c0da3d6d84e7768be6" dependencies = [ "aarch64-cpu", "aarch64_sysreg", @@ -299,7 +298,7 @@ dependencies = [ [[package]] name = "axalloc" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#b6ba2d67ee347e33039f5dd3681fc875f67085aa" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#7fe72320f5d5c888b8ee9b099342376f97b733b5" dependencies = [ "allocator", "axerrno", @@ -312,7 +311,7 @@ dependencies = [ [[package]] name = "axconfig" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#b6ba2d67ee347e33039f5dd3681fc875f67085aa" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#7fe72320f5d5c888b8ee9b099342376f97b733b5" dependencies = [ "axconfig-macros", ] @@ -396,7 +395,7 @@ dependencies = [ [[package]] name = "axdriver" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#b6ba2d67ee347e33039f5dd3681fc875f67085aa" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#7fe72320f5d5c888b8ee9b099342376f97b733b5" dependencies = [ "arm-gic-driver", "axalloc", @@ -459,7 +458,7 @@ dependencies = [ [[package]] name = "axfeat" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#b6ba2d67ee347e33039f5dd3681fc875f67085aa" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#7fe72320f5d5c888b8ee9b099342376f97b733b5" dependencies = [ "axalloc", "axdriver", @@ -475,7 +474,7 @@ dependencies = [ [[package]] name = "axfs" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#b6ba2d67ee347e33039f5dd3681fc875f67085aa" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#7fe72320f5d5c888b8ee9b099342376f97b733b5" dependencies = [ "axdriver", "axdriver_block", @@ -529,7 +528,7 @@ dependencies = [ [[package]] name = "axhal" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#b6ba2d67ee347e33039f5dd3681fc875f67085aa" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#7fe72320f5d5c888b8ee9b099342376f97b733b5" dependencies = [ "aarch64-cpu", "axalloc", @@ -573,7 +572,6 @@ dependencies = [ [[package]] name = "axlog" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#b6ba2d67ee347e33039f5dd3681fc875f67085aa" dependencies = [ "cfg-if", "crate_interface", @@ -584,7 +582,7 @@ dependencies = [ [[package]] name = "axmm" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#b6ba2d67ee347e33039f5dd3681fc875f67085aa" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#7fe72320f5d5c888b8ee9b099342376f97b733b5" dependencies = [ "axalloc", "axconfig", @@ -600,7 +598,7 @@ dependencies = [ [[package]] name = "axns" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#b6ba2d67ee347e33039f5dd3681fc875f67085aa" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#7fe72320f5d5c888b8ee9b099342376f97b733b5" dependencies = [ "crate_interface", "lazyinit", @@ -813,7 +811,7 @@ dependencies = [ [[package]] name = "axruntime" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#b6ba2d67ee347e33039f5dd3681fc875f67085aa" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#7fe72320f5d5c888b8ee9b099342376f97b733b5" dependencies = [ "axalloc", "axconfig", @@ -843,7 +841,7 @@ dependencies = [ [[package]] name = "axstd" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#b6ba2d67ee347e33039f5dd3681fc875f67085aa" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#7fe72320f5d5c888b8ee9b099342376f97b733b5" dependencies = [ "arceos_api", "axerrno", @@ -856,7 +854,7 @@ dependencies = [ [[package]] name = "axsync" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#b6ba2d67ee347e33039f5dd3681fc875f67085aa" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#7fe72320f5d5c888b8ee9b099342376f97b733b5" dependencies = [ "axtask", "kspin", @@ -866,7 +864,7 @@ dependencies = [ [[package]] name = "axtask" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#b6ba2d67ee347e33039f5dd3681fc875f67085aa" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#7fe72320f5d5c888b8ee9b099342376f97b733b5" dependencies = [ "axconfig", "axhal", @@ -1510,14 +1508,14 @@ checksum = "16ca123a5721e4a28ef60d6e1600cd0a33a9ab376c4b88de04c99bce757e458b" [[package]] name = "filetime" -version = "0.2.25" +version = "0.2.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35c0522e981e68cbfa8c3f978441a5f34b30b96e146b33cd3359176b50fe8586" +checksum = "bc0505cd1b6fa6580283f6bdf70a73fcf4aba1184038c90902b92b3dd0df63ed" dependencies = [ "cfg-if", "libc", "libredox", - "windows-sys 0.59.0", + "windows-sys 0.60.2", ] [[package]] From c1e160ee93aa8dc8b005096fa65daad67965e5b2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E7=9D=BF?= Date: Thu, 21 Aug 2025 13:48:39 +0800 Subject: [PATCH 126/219] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20arm-gic=20?= =?UTF-8?q?=E9=A9=B1=E5=8A=A8=E7=89=88=E6=9C=AC=E8=87=B3=200.15.6=EF=BC=8C?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=20arm=5Fvgic=20=E5=92=8C=20axlog=20=E7=9A=84?= =?UTF-8?q?=20Git=20=E6=BA=90=EF=BC=8C=E4=BF=AE=E6=94=B9=E6=9E=84=E5=BB=BA?= =?UTF-8?q?=E8=84=9A=E6=9C=AC=E4=BB=A5=E6=94=AF=E6=8C=81=E8=87=AA=E5=AE=9A?= =?UTF-8?q?=E4=B9=89=E9=85=8D=E7=BD=AE=E6=96=87=E4=BB=B6=E8=B7=AF=E5=BE=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Cargo.lock | 6 ++++-- scripts/build.py | 16 ++++++++++------ scripts/config.py | 12 +++++++++++- 3 files changed, 25 insertions(+), 9 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 0b355445..7af0207d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -151,9 +151,9 @@ dependencies = [ [[package]] name = "arm-gic-driver" -version = "0.15.5" +version = "0.15.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "234fbc75ee659ae0fa44cdbe9a61f84cc4a107b024efd872e7ad56ad82f9ab08" +checksum = "ed5d1cff93d4d635af54e3f5033fa2c5d103a2f79360d2807fd86f9e78c9ae41" dependencies = [ "aarch64-cpu", "bitflags 2.9.2", @@ -213,6 +213,7 @@ dependencies = [ [[package]] name = "arm_vgic" version = "0.1.0" +source = "git+https://github.com/arceos-hypervisor/arm_vgic.git#81338d6dd8a9dab04b91c9c0da3d6d84e7768be6" dependencies = [ "aarch64-cpu", "aarch64_sysreg", @@ -572,6 +573,7 @@ dependencies = [ [[package]] name = "axlog" version = "0.2.0" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#7fe72320f5d5c888b8ee9b099342376f97b733b5" dependencies = [ "cfg-if", "crate_interface", diff --git a/scripts/build.py b/scripts/build.py index f8f7e4be..1bd4e893 100644 --- a/scripts/build.py +++ b/scripts/build.py @@ -7,12 +7,16 @@ from .config import AxvisorConfig, create_config_from_args, save_config_to_file from .setup import setup_arceos + def main(args) -> int: """构建项目""" print("执行 build 功能...") - # 检查 .hvconfig.toml 是否存在 - config_exists = os.path.exists(".hvconfig.toml") + # 获取配置文件路径 + config_file_path = getattr(args, "config", ".hvconfig.toml") + + # 检查配置文件是否存在 + config_exists = os.path.exists(config_file_path) # 首先设置 arceos 依赖 print("设置 arceos 依赖...") @@ -35,12 +39,12 @@ def main(args) -> int: ) print("构建成功!") - # 如果 .hvconfig.toml 不存在且有有意义的命令行参数,则创建配置文件 + # 如果配置文件不存在且有有意义的命令行参数,则创建配置文件 if not config_exists: - print("检测到 .hvconfig.toml 不存在,根据命令行参数创建配置文件...") - if save_config_to_file(config): + print(f"检测到 {config_file_path} 不存在,根据命令行参数创建配置文件...") + if save_config_to_file(config, config_file_path): print( - "配置文件创建成功,下次可以直接运行 './task.py build' 而无需指定参数" + f"配置文件创建成功,下次可以直接运行 './task.py build -c {config_file_path}' 而无需指定参数" ) else: print("配置文件创建失败,下次仍需手动指定参数") diff --git a/scripts/config.py b/scripts/config.py index 1f16522d..9cb10a88 100644 --- a/scripts/config.py +++ b/scripts/config.py @@ -269,6 +269,13 @@ def string_or_array_to_list(value: Any) -> List[str]: def add_common_arguments(parser: argparse.ArgumentParser) -> None: """为解析器添加通用参数""" + parser.add_argument( + "-c", + "--config", + type=str, + default=".hvconfig.toml", + help="Config file path (default: .hvconfig.toml)", + ) parser.add_argument( "--plat", type=str, @@ -339,8 +346,11 @@ def save_config_to_file( def create_config_from_args(args: argparse.Namespace) -> AxvisorConfig: """从命令行参数和配置文件创建配置对象""" + # 从命令行参数获取配置文件路径,如果没有指定则使用默认值 + config_file_path = getattr(args, "config", ".hvconfig.toml") + # 加载配置文件 - config_file = load_config_file() + config_file = load_config_file(config_file_path) # 创建配置对象 config = AxvisorConfig() From 158cd87134dc24392098c0fa7acb602389cf0eda Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E7=9D=BF?= Date: Thu, 21 Aug 2025 16:02:57 +0800 Subject: [PATCH 127/219] fix: ci --- .../setup-nimbos-guest-image/action.yml | 4 +- .github/workflows/test.yml | 80 +++++++++---------- configs/vms/arceos-x86_64.toml | 4 +- 3 files changed, 45 insertions(+), 43 deletions(-) diff --git a/.github/workflows/actions/setup-nimbos-guest-image/action.yml b/.github/workflows/actions/setup-nimbos-guest-image/action.yml index 9c01fb2a..864e3934 100644 --- a/.github/workflows/actions/setup-nimbos-guest-image/action.yml +++ b/.github/workflows/actions/setup-nimbos-guest-image/action.yml @@ -34,7 +34,9 @@ runs: steps: - name: Make temporary directory shell: bash - run: mkdir -p temp + run: | + sudo rm -rf temp + mkdir -p temp - name: Download NimbOS uses: dsaltares/fetch-gh-release-asset@1.1.2 with: diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index dcbbcc17..a4a7b1db 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -49,45 +49,45 @@ jobs: export VM_CONFIGS="$(pwd)/configs/vms/nimbos-aarch64.toml" ./task.py run --plat ${{ matrix.plat }} --vmconfigs $VM_CONFIGS --features fs --arceos-args DISK_IMG=$DISK_IMG,BUS=mmio,BLK=y,MEM=8g - # test_remote: - # runs-on: self-hosted - # strategy: - # fail-fast: false - # matrix: - # plat: [x86-qemu-q35] - # rust-toolchain: [nightly-2025-05-20, nightly] - # steps: - # - uses: actions/checkout@v4 - # - uses: dtolnay/rust-toolchain@stable - # with: - # toolchain: ${{ matrix.rust-toolchain }} - # components: rust-src - # - uses: Swatinem/rust-cache@v2 - # - run: cargo install cargo-binutils - # - uses: arceos-org/setup-qemu@v0.1 - # with: - # version: ${{ env.qemu-version }} - # arch_list: x86_64 - # - uses: ./.github/workflows/actions/setup-nimbos-guest-image - # with: - # nimbos-version: 'tags/v0.7' - # arch: x86_64 - # disk-path: ${{ github.workspace }}/disk-x86_64.img - # - name: Enable KVM group perms - # run: | - # echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules - # sudo udevadm control --reload-rules - # sudo udevadm trigger --name-match=kvm - # - name: Update rust-toolchain.toml - # run: | - # sed -i "s/^channel = .*/channel = \"${{ matrix.rust-toolchain }}\"/" rust-toolchain.toml - # - name: Run guests - # continue-on-error: ${{ matrix.rust-toolchain == 'nightly' }} - # run: | - # source ./activate.sh - # cargo version - # export DISK_IMG="${{ github.workspace }}/disk-x86_64.img" - # export VM_CONFIGS="$(pwd)/configs/vms/nimbos-x86_64.toml" - # ./task.py run --plat ${{ matrix.plat }} --vmconfigs $VM_CONFIGS --features fs --arceos-args DISK_IMG=$DISK_IMG,BLK=y,MEM=8g + test_remote: + runs-on: self-hosted + strategy: + fail-fast: false + matrix: + plat: [x86-qemu-q35] + rust-toolchain: [nightly-2025-05-20, nightly] + steps: + - uses: actions/checkout@v4 + - uses: dtolnay/rust-toolchain@stable + with: + toolchain: ${{ matrix.rust-toolchain }} + components: rust-src + - uses: Swatinem/rust-cache@v2 + - run: cargo install cargo-binutils + - uses: arceos-org/setup-qemu@v0.1 + with: + version: ${{ env.qemu-version }} + arch_list: x86_64 + - uses: ./.github/workflows/actions/setup-nimbos-guest-image + with: + nimbos-version: 'tags/v0.7' + arch: x86_64 + disk-path: ${{ github.workspace }}/disk-x86_64.img + - name: Enable KVM group perms + run: | + echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules + sudo udevadm control --reload-rules + sudo udevadm trigger --name-match=kvm + - name: Update rust-toolchain.toml + run: | + sed -i "s/^channel = .*/channel = \"${{ matrix.rust-toolchain }}\"/" rust-toolchain.toml + - name: Run guests + continue-on-error: ${{ matrix.rust-toolchain == 'nightly' }} + run: | + source ./activate.sh + cargo version + export DISK_IMG="${{ github.workspace }}/disk-x86_64.img" + export VM_CONFIGS="$(pwd)/configs/vms/nimbos-x86_64.toml" + ./task.py run --plat ${{ matrix.plat }} --vmconfigs $VM_CONFIGS --features fs --arceos-args DISK_IMG=$DISK_IMG,BLK=y,MEM=8g diff --git a/configs/vms/arceos-x86_64.toml b/configs/vms/arceos-x86_64.toml index 1a67eef1..85bb4a9e 100644 --- a/configs/vms/arceos-x86_64.toml +++ b/configs/vms/arceos-x86_64.toml @@ -17,7 +17,7 @@ phys_cpu_sets = [1] # [kernel] # The entry point of the kernel image. -entry_point = 0x8000 +entry_point = 0x20_0000 # The location of image: "memory" | "fs". # Load from file system. image_location = "fs" @@ -26,7 +26,7 @@ bios_path = "axvm-bios.bin" # The load address of the BIOS image. bios_load_addr = 0x8000 # The file path of the kernel image. -kernel_path = "arceos-x86_64.bin" +kernel_path = "guest-test_x86-pc.bin" # The load address of the kernel image. kernel_load_addr = 0x20_0000 From a4ac5ec911e30d3132309d5dc0824cfc842fe4f3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E7=9D=BF?= Date: Thu, 21 Aug 2025 17:05:43 +0800 Subject: [PATCH 128/219] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20arm-gic=20?= =?UTF-8?q?=E9=A9=B1=E5=8A=A8=E7=89=88=E6=9C=AC=E8=87=B3=200.15.7=EF=BC=8C?= =?UTF-8?q?=E4=BC=98=E5=8C=96=E4=B8=AD=E6=96=AD=E6=B3=A8=E5=85=A5=E9=80=BB?= =?UTF-8?q?=E8=BE=91=EF=BC=8C=E7=A7=BB=E9=99=A4=E6=9C=AA=E4=BD=BF=E7=94=A8?= =?UTF-8?q?=E7=9A=84=E5=87=BD=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Cargo.lock | 21 ++++----- src/hal/arch/aarch64/mod.rs | 92 ++++++++----------------------------- 2 files changed, 28 insertions(+), 85 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 7af0207d..246cd81c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -151,9 +151,9 @@ dependencies = [ [[package]] name = "arm-gic-driver" -version = "0.15.6" +version = "0.15.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed5d1cff93d4d635af54e3f5033fa2c5d103a2f79360d2807fd86f9e78c9ae41" +checksum = "196754b7a5ce306ce3f1c35cfa749e43c227e8503a1e851ef651687b6f99b8f3" dependencies = [ "aarch64-cpu", "bitflags 2.9.2", @@ -213,7 +213,6 @@ dependencies = [ [[package]] name = "arm_vgic" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arm_vgic.git#81338d6dd8a9dab04b91c9c0da3d6d84e7768be6" dependencies = [ "aarch64-cpu", "aarch64_sysreg", @@ -1553,9 +1552,9 @@ checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" [[package]] name = "form_urlencoded" -version = "1.2.1" +version = "1.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" +checksum = "cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf" dependencies = [ "percent-encoding", ] @@ -2032,9 +2031,9 @@ checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" [[package]] name = "idna" -version = "1.0.3" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" +checksum = "3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de" dependencies = [ "idna_adapter", "smallvec", @@ -2511,9 +2510,9 @@ checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" [[package]] name = "percent-encoding" -version = "2.3.1" +version = "2.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" +checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" [[package]] name = "percpu" @@ -3941,9 +3940,9 @@ checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" [[package]] name = "url" -version = "2.5.4" +version = "2.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" +checksum = "ec961601b32b6f5d14ae8dabd35ff2ff2e2c6cb4c0e6641845ff105abe96d958" dependencies = [ "form_urlencoded", "idna", diff --git a/src/hal/arch/aarch64/mod.rs b/src/hal/arch/aarch64/mod.rs index 3b244d3c..9bc2bf2e 100644 --- a/src/hal/arch/aarch64/mod.rs +++ b/src/hal/arch/aarch64/mod.rs @@ -1,3 +1,5 @@ +use arm_gic_driver::v3::*; + mod api; pub mod cache; @@ -67,16 +69,9 @@ macro_rules! write_sysreg { } } -#[cfg(target_arch = "aarch64")] pub fn inject_interrupt_gic_v3(vector: usize) { use arm_gic_driver::v3::*; - // mask - const LR_VIRTIRQ_MASK: usize = (1 << 32) - 1; - const LR_STATE_MASK: u64 = 0x3 << 62; // bits [63:62] - const LR_STATE_PENDING: u64 = 0x1 << 62; // pending state - const LR_STATE_ACTIVE: u64 = 0x2 << 62; // active state - debug!("Injecting virtual interrupt: vector={}", vector); let elsr = ICH_ELRSR_EL2.read(ICH_ELRSR_EL2::STATUS); let lr_num = ICH_VTR_EL2.read(ICH_VTR_EL2::LISTREGS) as usize + 1; @@ -92,17 +87,17 @@ pub fn inject_interrupt_gic_v3(vector: usize) { } continue; } - let lr_val = read_lr(i); - // if a virtual interrupt is enabled and equals to the physical interrupt irq_id - if (lr_val as usize & LR_VIRTIRQ_MASK) == vector { - let state = lr_val & LR_STATE_MASK; - if state == LR_STATE_PENDING || state == LR_STATE_ACTIVE { - debug!( - "virtual irq {} already pending/active in LR{}, skipping", - vector, i - ); - return; - } + let lr_val = ich_lr_el2_get(i); + + if lr_val.read(ICH_LR_EL2::VINTID) == vector as u64 { + if lr_val.matches_any(&[ICH_LR_EL2::STATE::Pending, ICH_LR_EL2::STATE::Active]) {} + debug!( + "Virtual interrupt {} already pending/active in LR{}, skipping", + vector, i + ); + // If the interrupt is already pending or active, we can skip injecting it again. + // This is important to avoid duplicate injections. + return; // already injected } } @@ -116,12 +111,11 @@ pub fn inject_interrupt_gic_v3(vector: usize) { // Try to find and reuse an inactive LR for i in 0..lr_num { - let lr_val = read_lr(i); - let state = lr_val & LR_STATE_MASK; - if state == 0 { - // inactive state + let mut lr_val = ich_lr_el2_get(i); + if lr_val.matches_any(&[ICH_LR_EL2::STATE::Invalid]) { debug!("Reusing inactive LR{} for IRQ {}", i, vector); free_lr = i as isize; + break; } } @@ -131,7 +125,8 @@ pub fn inject_interrupt_gic_v3(vector: usize) { } } - ICH_LR0_EL2.write( + ich_lr_el2_write( + free_lr as _, ICH_LR_EL2::VINTID.val(vector as u64) + ICH_LR_EL2::STATE::Pending + ICH_LR_EL2::GROUP::SET, ); @@ -148,54 +143,3 @@ pub fn inject_interrupt_gic_v3(vector: usize) { vector, free_lr ); } - -fn read_lr(id: usize) -> u64 { - let id = id as u64; - match id { - //TODO get lr size from gic reg - 0 => read_sysreg!(ich_lr0_el2), - 1 => read_sysreg!(ich_lr1_el2), - 2 => read_sysreg!(ich_lr2_el2), - 3 => read_sysreg!(ich_lr3_el2), - 4 => read_sysreg!(ich_lr4_el2), - 5 => read_sysreg!(ich_lr5_el2), - 6 => read_sysreg!(ich_lr6_el2), - 7 => read_sysreg!(ich_lr7_el2), - 8 => read_sysreg!(ich_lr8_el2), - 9 => read_sysreg!(ich_lr9_el2), - 10 => read_sysreg!(ich_lr10_el2), - 11 => read_sysreg!(ich_lr11_el2), - 12 => read_sysreg!(ich_lr12_el2), - 13 => read_sysreg!(ich_lr13_el2), - 14 => read_sysreg!(ich_lr14_el2), - 15 => read_sysreg!(ich_lr15_el2), - _ => { - panic!("invalid lr id {}", id); - } - } -} - -fn write_lr(id: usize, val: u64) { - let id = id as u64; - match id { - 0 => write_sysreg!(ich_lr0_el2, val), - 1 => write_sysreg!(ich_lr1_el2, val), - 2 => write_sysreg!(ich_lr2_el2, val), - 3 => write_sysreg!(ich_lr3_el2, val), - 4 => write_sysreg!(ich_lr4_el2, val), - 5 => write_sysreg!(ich_lr5_el2, val), - 6 => write_sysreg!(ich_lr6_el2, val), - 7 => write_sysreg!(ich_lr7_el2, val), - 8 => write_sysreg!(ich_lr8_el2, val), - 9 => write_sysreg!(ich_lr9_el2, val), - 10 => write_sysreg!(ich_lr10_el2, val), - 11 => write_sysreg!(ich_lr11_el2, val), - 12 => write_sysreg!(ich_lr12_el2, val), - 13 => write_sysreg!(ich_lr13_el2, val), - 14 => write_sysreg!(ich_lr14_el2, val), - 15 => write_sysreg!(ich_lr15_el2, val), - _ => { - panic!("invalid lr id {}", id); - } - } -} From 393373ab6670a4b32d69bf57db146bfd32ef821b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E7=9D=BF?= Date: Thu, 21 Aug 2025 17:05:47 +0800 Subject: [PATCH 129/219] lock --- Cargo.lock | 1 + 1 file changed, 1 insertion(+) diff --git a/Cargo.lock b/Cargo.lock index 246cd81c..eba51f6d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -213,6 +213,7 @@ dependencies = [ [[package]] name = "arm_vgic" version = "0.1.0" +source = "git+https://github.com/arceos-hypervisor/arm_vgic.git#81338d6dd8a9dab04b91c9c0da3d6d84e7768be6" dependencies = [ "aarch64-cpu", "aarch64_sysreg", From 08b2f6a5b90db57408b16a5da5306a63c6e424b1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E7=9D=BF?= Date: Thu, 21 Aug 2025 17:06:56 +0800 Subject: [PATCH 130/219] remove unused --- src/hal/arch/aarch64/mod.rs | 27 --------------------------- 1 file changed, 27 deletions(-) diff --git a/src/hal/arch/aarch64/mod.rs b/src/hal/arch/aarch64/mod.rs index 9bc2bf2e..6dc93091 100644 --- a/src/hal/arch/aarch64/mod.rs +++ b/src/hal/arch/aarch64/mod.rs @@ -40,34 +40,7 @@ pub fn inject_interrupt(irq: usize) { panic!("no gic driver found") } -/// Reads and returns the value of the given aarch64 system register. -macro_rules! read_sysreg { - ($name:ident) => { - { - let mut value: u64; - unsafe{::core::arch::asm!( - concat!("mrs {value:x}, ", ::core::stringify!($name)), - value = out(reg) value, - options(nomem, nostack), - );} - value - } - } -} -/// Writes the given value to the given aarch64 system register. -macro_rules! write_sysreg { - ($name:ident, $value:expr) => { - { - let v: u64 = $value; - unsafe{::core::arch::asm!( - concat!("msr ", ::core::stringify!($name), ", {value:x}"), - value = in(reg) v, - options(nomem, nostack), - )} - } - } -} pub fn inject_interrupt_gic_v3(vector: usize) { use arm_gic_driver::v3::*; From c1c939f27ea985471962b4d25c84a046e2553691 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E7=9D=BF?= Date: Fri, 22 Aug 2025 09:55:00 +0800 Subject: [PATCH 131/219] fix: image cache --- src/hal/arch/aarch64/mod.rs | 6 +----- src/vmm/hvc.rs | 4 ++-- src/vmm/images.rs | 33 ++++++++++++++++----------------- src/vmm/mock.rs | 16 ++++++++-------- src/vmm/mod.rs | 2 +- src/vmm/timer.rs | 18 +++++++++--------- src/vmm/vcpus.rs | 6 +++--- 7 files changed, 40 insertions(+), 45 deletions(-) diff --git a/src/hal/arch/aarch64/mod.rs b/src/hal/arch/aarch64/mod.rs index 6dc93091..e5abcc20 100644 --- a/src/hal/arch/aarch64/mod.rs +++ b/src/hal/arch/aarch64/mod.rs @@ -1,5 +1,3 @@ -use arm_gic_driver::v3::*; - mod api; pub mod cache; @@ -40,8 +38,6 @@ pub fn inject_interrupt(irq: usize) { panic!("no gic driver found") } - - pub fn inject_interrupt_gic_v3(vector: usize) { use arm_gic_driver::v3::*; @@ -84,7 +80,7 @@ pub fn inject_interrupt_gic_v3(vector: usize) { // Try to find and reuse an inactive LR for i in 0..lr_num { - let mut lr_val = ich_lr_el2_get(i); + let lr_val = ich_lr_el2_get(i); if lr_val.matches_any(&[ICH_LR_EL2::STATE::Invalid]) { debug!("Reusing inactive LR{} for IRQ {}", i, vector); free_lr = i as isize; diff --git a/src/vmm/hvc.rs b/src/vmm/hvc.rs index 76e56673..cf4d1f93 100644 --- a/src/vmm/hvc.rs +++ b/src/vmm/hvc.rs @@ -6,7 +6,7 @@ use crate::vmm::ivc::{self, IVCChannel}; use crate::vmm::{VCpuRef, VMRef}; pub struct HyperCall { - vcpu: VCpuRef, + _vcpu: VCpuRef, vm: VMRef, code: HyperCallCode, args: [u64; 6], @@ -20,7 +20,7 @@ impl HyperCall { })?; Ok(Self { - vcpu, + _vcpu: vcpu, vm, code, args, diff --git a/src/vmm/images.rs b/src/vmm/images.rs index 62708c14..2cff1fbb 100644 --- a/src/vmm/images.rs +++ b/src/vmm/images.rs @@ -3,6 +3,7 @@ use axerrno::AxResult; use axvm::config::AxVMCrateConfig; +use crate::hal::CacheOp; use crate::vmm::VMRef; use crate::vmm::config::config; @@ -48,22 +49,6 @@ fn load_vm_images_from_memory(config: AxVMCrateConfig, vm: VMRef) -> AxResult { load_vm_image_from_memory(buffer, config.kernel.ramdisk_load_addr.unwrap(), vm.clone()) .expect("Failed to load Ramdisk images"); }; - #[cfg(target_arch = "aarch64")] - { - for mem_region in &config.kernel.memory_regions { - debug!( - "flush all guest cache GPA: 0x{:x}, Size: 0x{:x}", - mem_region.gpa, mem_region.size - ); - unsafe { - crate::hal::arch::cache::dcache_range( - crate::hal::CacheOp::CleanAndInvalidate, - mem_region.gpa.into(), - mem_region.size, - ); - } - } - } Ok(()) } @@ -95,6 +80,12 @@ fn load_vm_image_from_memory(image_buffer: &[u8], load_addr: usize, vm: VMRef) - ); } + crate::hal::arch::cache::dcache_range( + CacheOp::Clean, + (region.as_ptr() as usize).into(), + region_len, + ); + // Update the position of the buffer. buffer_pos += bytes_to_write; @@ -116,6 +107,8 @@ mod fs { use axerrno::{AxResult, ax_err, ax_err_type}; + use crate::hal::CacheOp; + use super::*; /// Loads the VM image files from the filesystem @@ -173,7 +166,13 @@ mod fs { Io, format!("Failed in reading from file {}, err {:?}", image_path, err) ) - })? + })?; + + crate::hal::arch::cache::dcache_range( + CacheOp::Clean, + (buffer.as_ptr() as usize).into(), + buffer.len(), + ); } Ok(()) diff --git a/src/vmm/mock.rs b/src/vmm/mock.rs index 971929a1..a4d88220 100644 --- a/src/vmm/mock.rs +++ b/src/vmm/mock.rs @@ -37,14 +37,14 @@ impl BaseDeviceOps for MockTimer { } impl MockTimer { - pub fn new() -> Self { - Self {} - } - - pub fn tick(&self) { - use axvisor_api::vmm::*; - inject_interrupt(current_vm_id(), current_vcpu_id(), 0x77); - } + // pub fn new() -> Self { + // Self {} + // } + + // pub fn tick(&self) { + // use axvisor_api::vmm::*; + // inject_interrupt(current_vm_id(), current_vcpu_id(), 0x77); + // } } unsafe impl Send for MockTimer {} diff --git a/src/vmm/mod.rs b/src/vmm/mod.rs index edef746e..655bd36e 100644 --- a/src/vmm/mod.rs +++ b/src/vmm/mod.rs @@ -72,7 +72,7 @@ pub fn start() { } #[allow(unused_imports)] -pub use vcpus::{find_vcpu_task, with_vcpu_task}; +pub use vcpus::with_vcpu_task; /// Run a closure with the specified VM. pub fn with_wm(vm_id: usize, f: impl FnOnce(VMRef) -> T) -> Option { diff --git a/src/vmm/timer.rs b/src/vmm/timer.rs index ef41dfa0..3e1c6842 100644 --- a/src/vmm/timer.rs +++ b/src/vmm/timer.rs @@ -1,7 +1,7 @@ use core::sync::atomic::AtomicUsize; use core::sync::atomic::Ordering; -use std::os::arceos::modules::{axconfig, axhal}; +use std::os::arceos::modules::axhal; use alloc::boxed::Box; use kspin::SpinNoIrq; @@ -9,7 +9,7 @@ use lazyinit::LazyInit; use timer_list::{TimeValue, TimerEvent, TimerList}; static TOKEN: AtomicUsize = AtomicUsize::new(0); -const PERIODIC_INTERVAL_NANOS: u64 = axhal::time::NANOS_PER_SEC / axconfig::TICKS_PER_SEC as u64; +// const PERIODIC_INTERVAL_NANOS: u64 = axhal::time::NANOS_PER_SEC / axconfig::TICKS_PER_SEC as u64; /// Represents a timer event in the virtual machine monitor (VMM). /// @@ -97,13 +97,13 @@ pub fn check_events() { } /// Schedule the next timer event based on the periodic interval -pub fn scheduler_next_event() { - trace!("Scheduling next event..."); - let now_ns = axhal::time::monotonic_time_nanos(); - let deadline = now_ns + PERIODIC_INTERVAL_NANOS; - debug!("PHY deadline {} !!!", deadline); - axhal::time::set_oneshot_timer(deadline); -} +// pub fn scheduler_next_event() { +// trace!("Scheduling next event..."); +// let now_ns = axhal::time::monotonic_time_nanos(); +// let deadline = now_ns + PERIODIC_INTERVAL_NANOS; +// debug!("PHY deadline {} !!!", deadline); +// axhal::time::set_oneshot_timer(deadline); +// } /// Initialize the hypervisor timer system pub fn init_percpu() { diff --git a/src/vmm/vcpus.rs b/src/vmm/vcpus.rs index 27d8f834..669b8c43 100644 --- a/src/vmm/vcpus.rs +++ b/src/vmm/vcpus.rs @@ -266,9 +266,9 @@ pub fn setup_vm_primary_vcpu(vm: VMRef) { } /// Finds the [`AxTaskRef`] associated with the specified vCPU of the specified VM. -pub fn find_vcpu_task(vm_id: usize, vcpu_id: usize) -> Option { - with_vcpu_task(vm_id, vcpu_id, |task| task.clone()) -} +// pub fn find_vcpu_task(vm_id: usize, vcpu_id: usize) -> Option { +// with_vcpu_task(vm_id, vcpu_id, |task| task.clone()) +// } /// Executes the provided closure with the [`AxTaskRef`] associated with the specified vCPU of the specified VM. pub fn with_vcpu_task T>( From c4fbd87d2dced23e8a2bb4ce1a0ef01782fc8236 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E7=9D=BF?= Date: Fri, 22 Aug 2025 10:17:21 +0800 Subject: [PATCH 132/219] fix: x86 compile --- src/hal/arch/x86_64/cache.rs | 5 +++++ src/hal/arch/x86_64/mod.rs | 3 ++- 2 files changed, 7 insertions(+), 1 deletion(-) create mode 100644 src/hal/arch/x86_64/cache.rs diff --git a/src/hal/arch/x86_64/cache.rs b/src/hal/arch/x86_64/cache.rs new file mode 100644 index 00000000..1a905a9d --- /dev/null +++ b/src/hal/arch/x86_64/cache.rs @@ -0,0 +1,5 @@ +use memory_addr::VirtAddr; + +use crate::hal::CacheOp; + +pub fn dcache_range(_op: CacheOp, _addr: VirtAddr, _size: usize) {} diff --git a/src/hal/arch/x86_64/mod.rs b/src/hal/arch/x86_64/mod.rs index fe37452d..63c67159 100644 --- a/src/hal/arch/x86_64/mod.rs +++ b/src/hal/arch/x86_64/mod.rs @@ -1,4 +1,5 @@ use crate::hal::CacheOp; use memory_addr::VirtAddr; -pub fn dcache_range(_op: CacheOp, _addr: VirtAddr, _size: usize) {} +pub mod cache; + From 8f1a9792e9a3c737eb64c5300aefe5ffa70b048c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E7=9D=BF?= Date: Fri, 22 Aug 2025 10:38:54 +0800 Subject: [PATCH 133/219] fmt code --- src/hal/arch/x86_64/mod.rs | 1 - 1 file changed, 1 deletion(-) diff --git a/src/hal/arch/x86_64/mod.rs b/src/hal/arch/x86_64/mod.rs index 63c67159..f34b5a4c 100644 --- a/src/hal/arch/x86_64/mod.rs +++ b/src/hal/arch/x86_64/mod.rs @@ -2,4 +2,3 @@ use crate::hal::CacheOp; use memory_addr::VirtAddr; pub mod cache; - From 694ddd5daeb15ac9fc938abb0d2cf4757f4d5d39 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E7=9D=BF?= Date: Fri, 22 Aug 2025 11:16:12 +0800 Subject: [PATCH 134/219] update deps --- Cargo.lock | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index eba51f6d..62498c08 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2118,9 +2118,9 @@ dependencies = [ [[package]] name = "kasm-aarch64" -version = "0.1.4" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "293e352fa2d4feed9895b65867bbbf9ead7a6c8a6ebc7e02c5a2f23c0db971d7" +checksum = "791dc7a2b079d81b8e3615521fccbd75c0c9f068b53f7d891a2e300222c7cada" dependencies = [ "darling", "proc-macro2", @@ -2549,9 +2549,9 @@ dependencies = [ [[package]] name = "pie-boot-loader-aarch64" -version = "0.2.3" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f48afcaff9f2271cf8f8cac3b42a7e2f40f5ace66dccae755bd3a92b6486d17d" +checksum = "5ef37498b7b1081f2b5edcd13d1a84bd2c214bdabcf4cfaed4d5bd83636fc40f" dependencies = [ "aarch64-cpu", "aarch64-cpu-ext", @@ -3405,9 +3405,9 @@ dependencies = [ [[package]] name = "somehal" -version = "0.3.8" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2bc0636a4af2fb4b3054df08b543c7b03185d5bfa89c822193ff94ecaec6ed23" +checksum = "d7e5ad6e6052150327151689b395ec3ff78950af2a62947c41a5f5f9c9ce2090" dependencies = [ "aarch64-cpu", "aarch64-cpu-ext", @@ -3941,9 +3941,9 @@ checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" [[package]] name = "url" -version = "2.5.5" +version = "2.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec961601b32b6f5d14ae8dabd35ff2ff2e2c6cb4c0e6641845ff105abe96d958" +checksum = "137a3c834eaf7139b73688502f3f1141a0337c5d8e4d9b536f9b8c796e26a7c4" dependencies = [ "form_urlencoded", "idna", From 0b69a6dafa88b03129752670d0b800c590c45f97 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E7=9D=BF?= Date: Fri, 22 Aug 2025 13:11:54 +0800 Subject: [PATCH 135/219] ci: self-host remove qemu --- .github/workflows/test.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index a4a7b1db..8eca9fc3 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -64,10 +64,10 @@ jobs: components: rust-src - uses: Swatinem/rust-cache@v2 - run: cargo install cargo-binutils - - uses: arceos-org/setup-qemu@v0.1 - with: - version: ${{ env.qemu-version }} - arch_list: x86_64 + # - uses: arceos-org/setup-qemu@v0.1 + # with: + # version: ${{ env.qemu-version }} + # arch_list: x86_64 - uses: ./.github/workflows/actions/setup-nimbos-guest-image with: nimbos-version: 'tags/v0.7' From 6ee2d16f32ffa96ed174e8698cf887dd269865df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E7=9D=BF?= Date: Fri, 22 Aug 2025 15:43:04 +0800 Subject: [PATCH 136/219] fix: add .project.* to .gitignore --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index b280fef5..847befe2 100644 --- a/.gitignore +++ b/.gitignore @@ -24,6 +24,7 @@ __pycache__/ /**/.axconfig.* /**/.hvconfig.* +/**/.project.* # dev env /crates From 49e77ee3bf1f31e212c683b523d4616b0a35be89 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E7=9D=BF?= Date: Tue, 26 Aug 2025 09:41:00 +0800 Subject: [PATCH 137/219] fix: update bitflags and arm-gic-driver versions; refactor GIC driver handling in arch_api_impl --- Cargo.lock | 111 ++++++++++++++++++------------------ src/hal/arch/aarch64/api.rs | 52 ++++++++++------- 2 files changed, 86 insertions(+), 77 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 62498c08..9e5b9664 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -117,7 +117,7 @@ version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4ce5f140efb4e707ea8f8e894d5f710500e373be1c4435d56b28d1fd1f843341" dependencies = [ - "bitflags 2.9.2", + "bitflags 2.9.3", "cfg-if", "embedded-hal-nb", "fdt-parser", @@ -151,12 +151,12 @@ dependencies = [ [[package]] name = "arm-gic-driver" -version = "0.15.7" +version = "0.15.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "196754b7a5ce306ce3f1c35cfa749e43c227e8503a1e851ef651687b6f99b8f3" +checksum = "f251a1a74133f802b55eaf5e340107b0024457aa9b2ac3c72074501bfa8509a5" dependencies = [ "aarch64-cpu", - "bitflags 2.9.2", + "bitflags 2.9.3", "enum_dispatch", "log", "paste", @@ -265,7 +265,7 @@ checksum = "e0bac152673e0cc27886c9fed1062e8a82e95a1bebb76c9b925f42bd4f412356" dependencies = [ "axerrno", "bit_field", - "bitflags 2.9.2", + "bitflags 2.9.3", "cfg-if", "lazyinit", "log", @@ -284,7 +284,7 @@ source = "git+https://github.com/arceos-hypervisor/axaddrspace.git#925d5deb05e4d dependencies = [ "axerrno", "bit_field", - "bitflags 2.9.2", + "bitflags 2.9.3", "cfg-if", "lazyinit", "log", @@ -522,7 +522,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dcba2006898d7879d456a9c34b9c9460cb536f5bf69d1d5d7d0e0f19f073368d" dependencies = [ "axerrno", - "bitflags 2.9.2", + "bitflags 2.9.3", "log", ] @@ -613,7 +613,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c86cdb48cf1fbd432f4326ab0852b696ac49442b0ea0aed3401cb0bbe370a19f" dependencies = [ "axplat-macros 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "bitflags 2.9.2", + "bitflags 2.9.3", "const-str", "crate_interface", "handler_table", @@ -627,7 +627,7 @@ version = "0.1.0" source = "git+https://github.com/arceos-hypervisor/axplat_crates.git?branch=vmm#ea596c55acaf25401fe905307d7cae2cf39030e8" dependencies = [ "axplat-macros 0.1.0 (git+https://github.com/arceos-hypervisor/axplat_crates.git?branch=vmm)", - "bitflags 2.9.2", + "bitflags 2.9.3", "const-str", "crate_interface", "handler_table", @@ -638,7 +638,7 @@ dependencies = [ [[package]] name = "axplat-aarch64-dyn" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/axplat-aarch64-dyn#4e7ed7498a1d773b74ce81322c65161ce0759a50" +source = "git+https://github.com/arceos-hypervisor/axplat-aarch64-dyn#c4a7f02876f035e3be34412ac0f41a3f7518fe4e" dependencies = [ "aarch64-cpu", "aarch64-cpu-ext", @@ -765,7 +765,7 @@ dependencies = [ "axconfig-macros", "axcpu", "axplat 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "bitflags 2.9.2", + "bitflags 2.9.3", "heapless", "int_ratio", "kspin", @@ -788,7 +788,7 @@ dependencies = [ "axconfig-macros", "axcpu", "axplat 0.1.0 (git+https://github.com/arceos-hypervisor/axplat_crates.git?branch=vmm)", - "bitflags 2.9.2", + "bitflags 2.9.3", "heapless", "int_ratio", "kspin", @@ -926,7 +926,7 @@ dependencies = [ "axvcpu 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "axvisor_api 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "axvm", - "bitflags 2.9.2", + "bitflags 2.9.3", "cfg-if", "cpumask", "crate_interface", @@ -1109,9 +1109,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.9.2" +version = "2.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a65b545ab31d687cff52899d4890855fec459eb6afe0da6417b8a18da87aa29" +checksum = "34efbcccd345379ca2868b2b2c9d3782e9cc58ba87bc7d79d5b53d9c9ae6f25d" [[package]] name = "bitmap-allocator" @@ -1161,7 +1161,7 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c9b24894fa5f73bbf9c72196e7f495a1f81d6218a548280a09ada4a937157692" dependencies = [ - "bitflags 2.9.2", + "bitflags 2.9.3", ] [[package]] @@ -1206,9 +1206,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.2.33" +version = "1.2.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ee0f8803222ba5a7e2777dd72ca451868909b1ac410621b676adf07280e9b5f" +checksum = "42bc4aea80032b7bf409b0bc7ccad88853858911b7713a8062fdc0623867bedc" dependencies = [ "shlex", ] @@ -1498,7 +1498,7 @@ name = "fatfs" version = "0.4.0" source = "git+https://github.com/rafalh/rust-fatfs?rev=4eccb50#4eccb50d011146fbed20e133d33b22f3c27292e7" dependencies = [ - "bitflags 2.9.2", + "bitflags 2.9.3", "log", ] @@ -2053,9 +2053,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.10.0" +version = "2.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe4cd85333e22411419a0bcae1297d25e58c9443848b11dc6a86fefe8c78a661" +checksum = "f2481980430f9f78649238835720ddccc57e52df14ffce1c6f37391d61b563e9" dependencies = [ "equivalent", "hashbrown", @@ -2069,11 +2069,11 @@ checksum = "6045ea39e8d2862506c0dff6c65d068da362335df698bb1634033492740d2170" [[package]] name = "io-uring" -version = "0.7.9" +version = "0.7.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d93587f37623a1a17d94ef2bc9ada592f5465fe7732084ab7beefabe5c77c0c4" +checksum = "046fa2d4d00aea763528b4950358d0ead425372445dc8ff86312b3c69ff7727b" dependencies = [ - "bitflags 2.9.2", + "bitflags 2.9.3", "cfg-if", "libc", ] @@ -2134,7 +2134,7 @@ version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fe55002bb265659921e59528cadf0d07362ebc0f37986d9b004bc45264036bf5" dependencies = [ - "bitflags 2.9.2", + "bitflags 2.9.3", "prettyplease", "quote", "syn 2.0.106", @@ -2184,7 +2184,7 @@ version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "391290121bad3d37fbddad76d8f5d1c1c314cfc646d143d7e07a3086ddff0ce3" dependencies = [ - "bitflags 2.9.2", + "bitflags 2.9.3", "libc", "redox_syscall", ] @@ -2250,7 +2250,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7c9f0d275c70310e2a9d2fc23250c5ac826a73fa828a5f256401f85c5c554283" dependencies = [ "bit_field", - "bitflags 2.9.2", + "bitflags 2.9.3", ] [[package]] @@ -2395,7 +2395,7 @@ version = "0.10.73" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8505734d46c8ab1e19a1dce3aef597ad87dcb4c37e7188231769bd6bd51cebf8" dependencies = [ - "bitflags 2.9.2", + "bitflags 2.9.3", "cfg-if", "foreign-types", "libc", @@ -2448,7 +2448,7 @@ version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "79217ff706e8dd356df4b6d624bae950ae5c39a17c6959b81d73dedfc9653316" dependencies = [ - "bitflags 2.9.2", + "bitflags 2.9.3", "log", "num-align", "thiserror 2.0.16", @@ -2461,7 +2461,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ba811ef8ca8fb33d776e128624cb4fe25c9804cab96f83b822d4322431e6dd5a" dependencies = [ "aarch64-cpu", - "bitflags 2.9.2", + "bitflags 2.9.3", "memory_addr", "x86_64", ] @@ -2556,7 +2556,7 @@ dependencies = [ "aarch64-cpu", "aarch64-cpu-ext", "any-uart", - "bitflags 2.9.2", + "bitflags 2.9.3", "fdt-parser", "kasm-aarch64", "kdef-pgtable", @@ -2711,7 +2711,7 @@ version = "11.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c6df7ab838ed27997ba19a4664507e6f82b41fe6e20be42929332156e5e85146" dependencies = [ - "bitflags 2.9.2", + "bitflags 2.9.3", ] [[package]] @@ -2834,14 +2834,14 @@ version = "0.5.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5407465600fb0548f1442edf71dd20683c6ed326200ace4b1ef0763521bb3b77" dependencies = [ - "bitflags 2.9.2", + "bitflags 2.9.3", ] [[package]] name = "regex" -version = "1.11.1" +version = "1.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" +checksum = "23d7fd106d8c02486a8d64e778353d1cffe08ce79ac2e82f540c86d0facf6912" dependencies = [ "aho-corasick", "memchr", @@ -2851,9 +2851,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.9" +version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" +checksum = "6b9458fa0bfeeac22b5ca447c63aaf45f28439a709ccd244698632f9aa6394d6" dependencies = [ "aho-corasick", "memchr", @@ -2862,9 +2862,9 @@ dependencies = [ [[package]] name = "regex-syntax" -version = "0.8.5" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" +checksum = "caf4aa5b0f434c91fe5c7f1ecb6a5ece2130b02ad2a590589dda5146df959001" [[package]] name = "release-dep" @@ -3045,7 +3045,7 @@ dependencies = [ "axvcpu 0.1.0 (git+https://github.com/arceos-hypervisor/axvcpu.git)", "axvisor_api 0.1.0 (git+https://github.com/arceos-hypervisor/axvisor_api.git)", "bit_field", - "bitflags 2.9.2", + "bitflags 2.9.3", "cfg-if", "crate_interface", "log", @@ -3093,7 +3093,7 @@ version = "1.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "11181fbabf243db407ef8df94a6ce0b2f9a733bd8be4ad02b4eda9602296cac8" dependencies = [ - "bitflags 2.9.2", + "bitflags 2.9.3", "errno", "libc", "linux-raw-sys", @@ -3212,7 +3212,7 @@ version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" dependencies = [ - "bitflags 2.9.2", + "bitflags 2.9.3", "core-foundation", "core-foundation-sys", "libc", @@ -3405,9 +3405,9 @@ dependencies = [ [[package]] name = "somehal" -version = "0.3.9" +version = "0.3.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7e5ad6e6052150327151689b395ec3ff78950af2a62947c41a5f5f9c9ce2090" +checksum = "3d2cfae07fda13743ce231653afa228997865d5ef41a04633a46ecdf827893ca" dependencies = [ "aarch64-cpu", "aarch64-cpu-ext", @@ -3561,7 +3561,7 @@ version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b" dependencies = [ - "bitflags 2.9.2", + "bitflags 2.9.3", "core-foundation", "system-configuration-sys 0.6.0", ] @@ -3849,7 +3849,7 @@ version = "0.6.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "adc82fd73de2a9722ac5da747f12383d2bfdb93591ee6c58486e0097890f05f2" dependencies = [ - "bitflags 2.9.2", + "bitflags 2.9.3", "bytes", "futures-util", "http 1.3.1", @@ -3910,7 +3910,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e492212ac378a5e00da953718dafb1340d9fbaf4f27d6f3c5cab03d931d1c049" dependencies = [ - "bitflags 2.9.2", + "bitflags 2.9.3", "rustversion", "x86", ] @@ -3941,13 +3941,14 @@ checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" [[package]] name = "url" -version = "2.5.6" +version = "2.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "137a3c834eaf7139b73688502f3f1141a0337c5d8e4d9b536f9b8c796e26a7c4" +checksum = "08bc136a29a3d1758e07a9cca267be308aeebf5cfd5a10f3f67ab2097683ef5b" dependencies = [ "form_urlencoded", "idna", "percent-encoding", + "serde", ] [[package]] @@ -3974,7 +3975,7 @@ version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aa40e09453618c7a927c08c5a990497a2954da7c2aaa6c65e0d4f0fc975f6114" dependencies = [ - "bitflags 2.9.2", + "bitflags 2.9.3", "log", "zerocopy 0.7.35", ] @@ -4349,9 +4350,9 @@ checksum = "271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486" [[package]] name = "winnow" -version = "0.7.12" +version = "0.7.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3edebf492c8125044983378ecb5766203ad3b4c2f7a922bd7dd207f6d443e95" +checksum = "21a0236b59786fed61e2a80582dd500fe61f18b5dca67a4a067d0bc9039339cf" dependencies = [ "memchr", ] @@ -4372,7 +4373,7 @@ version = "0.39.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1" dependencies = [ - "bitflags 2.9.2", + "bitflags 2.9.3", ] [[package]] @@ -4412,7 +4413,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0f042214de98141e9c8706e8192b73f56494087cc55ebec28ce10f26c5c364ae" dependencies = [ "bit_field", - "bitflags 2.9.2", + "bitflags 2.9.3", "rustversion", "volatile", ] @@ -4429,7 +4430,7 @@ dependencies = [ "axvcpu 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "axvisor_api 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "bit_field", - "bitflags 2.9.2", + "bitflags 2.9.3", "cfg-if", "crate_interface", "log", diff --git a/src/hal/arch/aarch64/api.rs b/src/hal/arch/aarch64/api.rs index c460f846..06ff9fbb 100644 --- a/src/hal/arch/aarch64/api.rs +++ b/src/hal/arch/aarch64/api.rs @@ -1,5 +1,9 @@ #[axvisor_api::api_mod_impl(axvisor_api::arch)] mod arch_api_impl { + use core::panic; + + use axvisor_api::memory::virt_to_phys; + extern fn hardware_inject_virtual_interrupt(irq: axvisor_api::vmm::InterruptVector) { crate::hal::arch::inject_interrupt(irq as _); } @@ -17,18 +21,7 @@ mod arch_api_impl { // Use the GICv3 driver to read the typer register return gic.typer_raw(); } - - // use axstd::os::arceos::modules::axhal::irq::MyVgic; - // MyVgic::get_gicd().lock().get_typer() - - // use memory_addr::pa; - // use std::os::arceos::modules::{axconfig, axhal}; - - unimplemented!(); - // let typer_phys_addr = axconfig::devices::GICD_PADDR + 0x4; - // let typer_virt_addr = axhal::mem::phys_to_virt(pa!(typer_phys_addr)); - - // unsafe { core::ptr::read_volatile(typer_virt_addr.as_ptr_of::()) } + panic!("No GIC driver found"); } extern fn read_vgicd_iidr() -> u32 { @@ -47,21 +40,36 @@ mod arch_api_impl { return gic.iidr_raw(); } - unimplemented!() + panic!("No GIC driver found"); } extern fn get_host_gicd_base() -> memory_addr::PhysAddr { - // use std::os::arceos::api::config; - // unimplemented!(); - // config::devices::GICD_PADDR.into() - 0x800_0000.into() + let mut gic = rdrive::get_one::() + .expect("Failed to get GIC driver") + .lock() + .unwrap(); + if let Some(gic) = gic.typed_mut::() { + let ptr: *mut u8 = gic.gicd_addr().as_ptr(); + return virt_to_phys((ptr as usize).into()); + } + + if let Some(gic) = gic.typed_mut::() { + let ptr: *mut u8 = gic.gicd_addr().as_ptr(); + // Use the GICv3 driver to read the typer register + return virt_to_phys((ptr as usize).into()); + } + panic!("No GIC driver found"); } extern fn get_host_gicr_base() -> memory_addr::PhysAddr { - // use std::os::arceos::api::config; - // unimplemented!(); - // config::devices::GICR_PADDR.into() - // TODO parse from dtb - 0x80a_0000.into() + let mut gic = rdrive::get_one::() + .expect("Failed to get GIC driver") + .lock() + .unwrap(); + if let Some(gic) = gic.typed_mut::() { + let ptr: *mut u8 = gic.gicr_addr().as_ptr(); + return virt_to_phys((ptr as usize).into()); + } + panic!("No GICv3 driver found"); } } From da6097e058c23b32450bfb23a2ccb286c6475937 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E7=9D=BF?= Date: Tue, 26 Aug 2025 17:08:27 +0800 Subject: [PATCH 138/219] fix: comment out KVM group permissions setup in CI workflow --- .github/workflows/test.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 8eca9fc3..42b766bb 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -32,11 +32,11 @@ jobs: nimbos-version: 'tags/v0.7' arch: aarch64 disk-path: ${{ github.workspace }}/disk-aarch64.img - - name: Enable KVM group perms - run: | - echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules - sudo udevadm control --reload-rules - sudo udevadm trigger --name-match=kvm + # - name: Enable KVM group perms + # run: | + # echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules + # sudo udevadm control --reload-rules + # sudo udevadm trigger --name-match=kvm - name: Update rust-toolchain.toml run: | sed -i "s/^channel = .*/channel = \"${{ matrix.rust-toolchain }}\"/" rust-toolchain.toml From de53f5f5f9cc0b1d2b0ba07dcd477fbd7331643f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E7=9D=BF?= Date: Tue, 26 Aug 2025 17:09:05 +0800 Subject: [PATCH 139/219] =?UTF-8?q?fix:=20=E6=B3=A8=E9=87=8A=E6=8E=89=20CI?= =?UTF-8?q?=20=E5=B7=A5=E4=BD=9C=E6=B5=81=E4=B8=AD=E7=9A=84=20KVM=20?= =?UTF-8?q?=E7=BB=84=E6=9D=83=E9=99=90=E8=AE=BE=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/test.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 42b766bb..660ac6bd 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -73,11 +73,11 @@ jobs: nimbos-version: 'tags/v0.7' arch: x86_64 disk-path: ${{ github.workspace }}/disk-x86_64.img - - name: Enable KVM group perms - run: | - echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules - sudo udevadm control --reload-rules - sudo udevadm trigger --name-match=kvm + # - name: Enable KVM group perms + # run: | + # echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules + # sudo udevadm control --reload-rules + # sudo udevadm trigger --name-match=kvm - name: Update rust-toolchain.toml run: | sed -i "s/^channel = .*/channel = \"${{ matrix.rust-toolchain }}\"/" rust-toolchain.toml From 5eaa2db1935190d25b4d82381861e3867d038692 Mon Sep 17 00:00:00 2001 From: Josen-B <65878371+Josen-B@users.noreply.github.com> Date: Wed, 27 Aug 2025 15:07:41 +0800 Subject: [PATCH 140/219] add patch to use 3 level ept paging (#235) --- Cargo.toml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/Cargo.toml b/Cargo.toml index 9175e549..5d3d5086 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -75,3 +75,11 @@ toml = {version = "0.9"} [patch.crates-io.axcpu] branch = "vmm" git = "https://github.com/arceos-hypervisor/axcpu" + +[patch.crates-io.axaddrspace] +branch = "3_level_page" +git = "https://github.com/arceos-hypervisor/axaddrspace" + +[patch."https://github.com/arceos-hypervisor/arm_vcpu.git".arm_vcpu] +branch = "3_level_page" +git = "https://github.com/Josen-B/arm_vcpu" \ No newline at end of file From 4dd4d75de3a73eb3b1c1a09d5c1cf767c8618a0b Mon Sep 17 00:00:00 2001 From: Josen-B <65878371+Josen-B@users.noreply.github.com> Date: Fri, 29 Aug 2025 11:52:29 +0800 Subject: [PATCH 141/219] add rk3568 and phytiumpi config file (#243) * add patch to use 3 level ept paging * add rk3568 and phytiumpi config file --- Cargo.lock | 29 +- configs/vms/arceos-aarch64-e2000_smp1.dts | 155 + configs/vms/arceos-aarch64-e2000_smp1.toml | 71 + configs/vms/arceos-aarch64-e2000_smp2.dts | 155 + configs/vms/arceos-aarch64-e2000_smp2.toml | 71 + configs/vms/arceos-aarch64-rk3568-smp1.toml | 70 + configs/vms/arceos-aarch64-rk3568-smp2.toml | 75 + configs/vms/arceos-aarch64-rk3568_smp1.dts | 87 + configs/vms/arceos-aarch64-rk3568_smp2.dts | 101 + configs/vms/linux-aarch64-e2000_smp1.dts | 1302 ++++ configs/vms/linux-aarch64-e2000_smp1.toml | 113 + configs/vms/linux-aarch64-e2000_smp2.dts | 1302 ++++ configs/vms/linux-aarch64-e2000_smp2.toml | 114 + configs/vms/linux-aarch64-rk3568_smp1.dts | 6108 +++++++++++++++++++ configs/vms/linux-aarch64-rk3568_smp1.toml | 88 + configs/vms/linux-aarch64-rk3568_smp2.dts | 6108 +++++++++++++++++++ configs/vms/linux-aarch64-rk3568_smp2.toml | 88 + 17 files changed, 16022 insertions(+), 15 deletions(-) create mode 100644 configs/vms/arceos-aarch64-e2000_smp1.dts create mode 100644 configs/vms/arceos-aarch64-e2000_smp1.toml create mode 100644 configs/vms/arceos-aarch64-e2000_smp2.dts create mode 100644 configs/vms/arceos-aarch64-e2000_smp2.toml create mode 100644 configs/vms/arceos-aarch64-rk3568-smp1.toml create mode 100644 configs/vms/arceos-aarch64-rk3568-smp2.toml create mode 100644 configs/vms/arceos-aarch64-rk3568_smp1.dts create mode 100644 configs/vms/arceos-aarch64-rk3568_smp2.dts create mode 100644 configs/vms/linux-aarch64-e2000_smp1.dts create mode 100644 configs/vms/linux-aarch64-e2000_smp1.toml create mode 100644 configs/vms/linux-aarch64-e2000_smp2.dts create mode 100644 configs/vms/linux-aarch64-e2000_smp2.toml create mode 100644 configs/vms/linux-aarch64-rk3568_smp1.dts create mode 100644 configs/vms/linux-aarch64-rk3568_smp1.toml create mode 100644 configs/vms/linux-aarch64-rk3568_smp2.dts create mode 100644 configs/vms/linux-aarch64-rk3568_smp2.toml diff --git a/Cargo.lock b/Cargo.lock index 9e5b9664..1591c1a0 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -194,10 +194,10 @@ dependencies = [ [[package]] name = "arm_vcpu" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arm_vcpu.git?branch=dev-irq#856aab611f6ac63e4f01df381c103c7634b5c9ed" +source = "git+https://github.com/Josen-B/arm_vcpu?branch=3_level_page#017b8fb86c93de92baef443408fa0c64096c986c" dependencies = [ "aarch64-cpu", - "axaddrspace 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "axaddrspace 0.1.0 (git+https://github.com/arceos-hypervisor/axaddrspace?branch=3_level_page)", "axcpu", "axdevice_base", "axerrno", @@ -217,7 +217,7 @@ source = "git+https://github.com/arceos-hypervisor/arm_vgic.git#81338d6dd8a9dab0 dependencies = [ "aarch64-cpu", "aarch64_sysreg", - "axaddrspace 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "axaddrspace 0.1.0 (git+https://github.com/arceos-hypervisor/axaddrspace?branch=3_level_page)", "axdevice_base", "axerrno", "axvisor_api 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -260,8 +260,7 @@ checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" [[package]] name = "axaddrspace" version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0bac152673e0cc27886c9fed1062e8a82e95a1bebb76c9b925f42bd4f412356" +source = "git+https://github.com/arceos-hypervisor/axaddrspace?branch=3_level_page#26421d03eecf36f4eaea60670c78d6076915344d" dependencies = [ "axerrno", "bit_field", @@ -368,7 +367,7 @@ version = "0.1.0" source = "git+https://github.com/arceos-hypervisor/axdevice.git#c4a0965ca45a3b9a34845fa774b1bd90fc8f4573" dependencies = [ "arm_vgic", - "axaddrspace 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "axaddrspace 0.1.0 (git+https://github.com/arceos-hypervisor/axaddrspace?branch=3_level_page)", "axdevice_base", "axerrno", "axvmconfig", @@ -385,7 +384,7 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "67c43baf33ed4790ffd3365c4ca027a1e3d1c2b6058f4605b67bca04cadf48d5" dependencies = [ - "axaddrspace 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "axaddrspace 0.1.0 (git+https://github.com/arceos-hypervisor/axaddrspace?branch=3_level_page)", "axerrno", "axvmconfig", "cfg-if", @@ -889,7 +888,7 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9fd2246d45be5a55e5f0fb081a6c23a9d6f5de4f390a9dbce82786129e66004e" dependencies = [ - "axaddrspace 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "axaddrspace 0.1.0 (git+https://github.com/arceos-hypervisor/axaddrspace?branch=3_level_page)", "axerrno", "axvisor_api 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "memory_addr", @@ -901,7 +900,7 @@ name = "axvcpu" version = "0.1.0" source = "git+https://github.com/arceos-hypervisor/axvcpu.git#6364b7b13f0e4efb969295d07667215e79969a1d" dependencies = [ - "axaddrspace 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "axaddrspace 0.1.0 (git+https://github.com/arceos-hypervisor/axaddrspace?branch=3_level_page)", "axerrno", "axvisor_api 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "memory_addr", @@ -914,7 +913,7 @@ version = "0.1.0" dependencies = [ "aarch64-cpu-ext", "arm-gic-driver", - "axaddrspace 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "axaddrspace 0.1.0 (git+https://github.com/arceos-hypervisor/axaddrspace?branch=3_level_page)", "axconfig", "axdevice", "axdevice_base", @@ -954,7 +953,7 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aa7233b2a1338dc06a80e2779b572b4df02007ea128ef7b235b66fc3eeac0ca6" dependencies = [ - "axaddrspace 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "axaddrspace 0.1.0 (git+https://github.com/arceos-hypervisor/axaddrspace?branch=3_level_page)", "axvisor_api_proc 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "crate_interface", "memory_addr", @@ -965,7 +964,7 @@ name = "axvisor_api" version = "0.1.0" source = "git+https://github.com/arceos-hypervisor/axvisor_api.git#feb16efe1c384d91ac9f1cbf787c1c28571190f1" dependencies = [ - "axaddrspace 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "axaddrspace 0.1.0 (git+https://github.com/arceos-hypervisor/axaddrspace?branch=3_level_page)", "axvisor_api_proc 0.1.0 (git+https://github.com/arceos-hypervisor/axvisor_api.git)", "crate_interface", "memory_addr", @@ -1001,7 +1000,7 @@ source = "git+https://github.com/arceos-hypervisor/axvm.git?branch=dev-irq#312ef dependencies = [ "arm_vcpu", "arm_vgic", - "axaddrspace 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "axaddrspace 0.1.0 (git+https://github.com/arceos-hypervisor/axaddrspace?branch=3_level_page)", "axdevice", "axdevice_base", "axerrno", @@ -4424,7 +4423,7 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "873e097d52e94c31be3f0175a9f8d6f2edbc77d7e2f8e6995427df9c08b30a2b" dependencies = [ - "axaddrspace 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "axaddrspace 0.1.0 (git+https://github.com/arceos-hypervisor/axaddrspace?branch=3_level_page)", "axdevice_base", "axerrno", "axvcpu 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -4451,7 +4450,7 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2556c62649a277ccf1c3c34c740be87bbde5f8dab0b20fcdcf4c2cd7bb6e7302" dependencies = [ - "axaddrspace 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "axaddrspace 0.1.0 (git+https://github.com/arceos-hypervisor/axaddrspace?branch=3_level_page)", "axdevice_base", "axerrno", "axvisor_api 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", diff --git a/configs/vms/arceos-aarch64-e2000_smp1.dts b/configs/vms/arceos-aarch64-e2000_smp1.dts new file mode 100644 index 00000000..e2f9d8e4 --- /dev/null +++ b/configs/vms/arceos-aarch64-e2000_smp1.dts @@ -0,0 +1,155 @@ +/dts-v1/; + +/memreserve/ 0x0000000080000000 0x0000000000010000; +/ { + compatible = "phytium,pe2204"; + interrupt-parent = <0x01>; + #address-cells = <0x02>; + #size-cells = <0x02>; + model = "Phytium Pi Board"; + + // memory@01 { + // device_type = "memory"; + // reg = <0x20 0x00 0x00 0x80000000>; + // numa-node-id = <0x00>; + // }; + + aliases { + serial1 = "/soc/uart@2800d000"; + }; + + psci { + compatible = "arm,psci-1.0"; + method = "smc"; + cpu_suspend = <0xc4000001>; + cpu_off = <0x84000002>; + cpu_on = <0xc4000003>; + sys_poweroff = <0x84000008>; + sys_reset = <0x84000009>; + }; + + cpus { + #address-cells = <0x02>; + #size-cells = <0x00>; + + cpu-map { + + cluster0 { + + core0 { + cpu = <0x05>; + }; + }; + + // cluster1 { + + // core0 { + // cpu = <0x06>; + // }; + // }; + + // cluster2 { + + // core0 { + // cpu = <0x07>; + // }; + + // core1 { + // cpu = <0x08>; + // }; + // }; + }; + + // cpu@0 { + // device_type = "cpu"; + // compatible = "phytium,ftc310\0arm,armv8"; + // reg = <0x00 0x200>; + // enable-method = "psci"; + // clocks = <0x09 0x02>; + // capacity-dmips-mhz = <0xb22>; + // phandle = <0x07>; + // }; + + // cpu@1 { + // device_type = "cpu"; + // compatible = "phytium,ftc310\0arm,armv8"; + // reg = <0x00 0x201>; + // enable-method = "psci"; + // clocks = <0x09 0x02>; + // capacity-dmips-mhz = <0xb22>; + // phandle = <0x08>; + // }; + + cpu@100 { + device_type = "cpu"; + compatible = "phytium,ftc664\0arm,armv8"; + reg = <0x00 0x00>; + enable-method = "psci"; + clocks = <0x09 0x00>; + capacity-dmips-mhz = <0x161c>; + phandle = <0x05>; + }; + + // cpu@101 { + // device_type = "cpu"; + // compatible = "phytium,ftc664\0arm,armv8"; + // reg = <0x00 0x100>; + // enable-method = "psci"; + // clocks = <0x09 0x01>; + // capacity-dmips-mhz = <0x161c>; + // phandle = <0x06>; + // }; + }; + + interrupt-controller@30800000 { + compatible = "arm,gic-v3"; + #interrupt-cells = <0x03>; + #address-cells = <0x02>; + #size-cells = <0x02>; + ranges; + interrupt-controller; + reg = <0x00 0x30800000 0x00 0x20000 0x00 0x30880000 0x00 0x80000 0x00 0x30840000 0x00 0x10000 0x00 0x30850000 0x00 0x10000 0x00 0x30860000 0x00 0x10000>; + interrupts = <0x01 0x09 0x08>; + phandle = <0x01>; + + gic-its@30820000 { + compatible = "arm,gic-v3-its"; + msi-controller; + reg = <0x00 0x30820000 0x00 0x20000>; + phandle = <0x0f>; + }; + }; + + timer { + compatible = "arm,armv8-timer"; + interrupts = <0x01 0x0d 0x08 0x01 0x0e 0x08 0x01 0x0b 0x08 0x01 0x0a 0x08>; + clock-frequency = <0x2faf080>; + }; + + soc { + compatible = "simple-bus"; + #address-cells = <0x02>; + #size-cells = <0x02>; + dma-coherent; + ranges; + + uart@2800d000 { + compatible = "arm,pl011\0arm,primecell"; + reg = <0x00 0x2800d000 0x00 0x1000>; + interrupts = <0x00 0x54 0x04>; + clocks = <0x0c 0x0c>; + clock-names = "uartclk\0apb_pclk"; + status = "okay"; + }; + }; + + chosen { + bootargs = "console=ttyAMA1,115200 earlycon=pl011,0x2800d000 root=/dev/mmcblk0p1 rootfstype=ext4 rootwait rw cma=256m ;"; + stdout-path = "serial1:115200n8"; + }; + + memory@00 { + device_type = "memory"; + reg = <0x20 0x20000000 0x00 0x20000000>; + }; +}; diff --git a/configs/vms/arceos-aarch64-e2000_smp1.toml b/configs/vms/arceos-aarch64-e2000_smp1.toml new file mode 100644 index 00000000..8441d9be --- /dev/null +++ b/configs/vms/arceos-aarch64-e2000_smp1.toml @@ -0,0 +1,71 @@ +# Vm base info configs +# +[base] +# Guest vm id. +id = 2 +# Guest vm name. +name = "arceos" +# Virtualization type. +vm_type = 1 +# The number of virtual CPUs. +cpu_num = 1 +# The physical CPU ids. +phys_cpu_ids = [0x00] +# Guest vm physical cpu sets. +phys_cpu_sets = [4] + +# +# Vm kernel configs +# +[kernel] +# The entry point of the kernel image. +entry_point = 0x20_2008_0000 +# The location of image: "memory" | "fs". +# Load from file system. +image_location = "memory" +# The load address of the kernel image. +kernel_load_addr = 0x20_2008_0000 +## The file path of the kernel image. +kernel_path = "/guest/arceos-aarch64-e2000_smp1.bin" +## The file path of the device tree blob (DTB). +dtb_path = "/guest/arceos-aarch64-e2000_smp1.dtb" +dtb_load_addr = 0x20_2000_0000 +# Memory regions with format (`base_paddr`, `size`, `flags`, `map_type`). +# For `map_type`, 0 means `MAP_ALLOC`, 1 means `MAP_IDENTICAL`. +memory_regions = [ + #[0x20_2000_0000, 0x2000_0000, 0x7, 1], # System RAM MAP_IDENTICAL +] + +# +# Device specifications +# +[devices] +# Emu_devices. +# Name Base-Ipa Ipa_len Alloc-Irq Emu-Type EmuConfig. +emu_devices = [] + +# Pass-through devices. +# Name Base-Ipa Base-Pa Length Alloc-Irq. +passthrough_devices = [ + [ + "UART1", + 0x2800_d000, + 0x2800_d000, + 0x1000, + 0x1, + ], + [ + "gic-v3", + 0x3080_0000, + 0x3080_0000, + 0x10000, + 0x1, + ], + [ + "gic-v3-its", + 0x3082_0000, + 0x3082_0000, + 0x100000, + 0x1, + ], +] \ No newline at end of file diff --git a/configs/vms/arceos-aarch64-e2000_smp2.dts b/configs/vms/arceos-aarch64-e2000_smp2.dts new file mode 100644 index 00000000..b80c5dad --- /dev/null +++ b/configs/vms/arceos-aarch64-e2000_smp2.dts @@ -0,0 +1,155 @@ +/dts-v1/; + +/memreserve/ 0x0000000080000000 0x0000000000010000; +/ { + compatible = "phytium,pe2204"; + interrupt-parent = <0x01>; + #address-cells = <0x02>; + #size-cells = <0x02>; + model = "Phytium Pi Board"; + + // memory@01 { + // device_type = "memory"; + // reg = <0x20 0x00 0x00 0x80000000>; + // numa-node-id = <0x00>; + // }; + + aliases { + serial1 = "/soc/uart@2800d000"; + }; + + psci { + compatible = "arm,psci-1.0"; + method = "smc"; + cpu_suspend = <0xc4000001>; + cpu_off = <0x84000002>; + cpu_on = <0xc4000003>; + sys_poweroff = <0x84000008>; + sys_reset = <0x84000009>; + }; + + cpus { + #address-cells = <0x02>; + #size-cells = <0x00>; + + cpu-map { + + // cluster0 { + + // core0 { + // cpu = <0x05>; + // }; + // }; + + cluster1 { + + core0 { + cpu = <0x06>; + }; + }; + + cluster2 { + + // core0 { + // cpu = <0x07>; + // }; + + core1 { + cpu = <0x08>; + }; + }; + }; + + // cpu@0 { + // device_type = "cpu"; + // compatible = "phytium,ftc310\0arm,armv8"; + // reg = <0x00 0x200>; + // enable-method = "psci"; + // clocks = <0x09 0x02>; + // capacity-dmips-mhz = <0xb22>; + // phandle = <0x07>; + // }; + + cpu@1 { + device_type = "cpu"; + compatible = "phytium,ftc310\0arm,armv8"; + reg = <0x00 0x201>; + enable-method = "psci"; + clocks = <0x09 0x02>; + capacity-dmips-mhz = <0xb22>; + phandle = <0x08>; + }; + + // cpu@100 { + // device_type = "cpu"; + // compatible = "phytium,ftc664\0arm,armv8"; + // reg = <0x00 0x00>; + // enable-method = "psci"; + // clocks = <0x09 0x00>; + // capacity-dmips-mhz = <0x161c>; + // phandle = <0x05>; + // }; + + cpu@101 { + device_type = "cpu"; + compatible = "phytium,ftc664\0arm,armv8"; + reg = <0x00 0x100>; + enable-method = "psci"; + clocks = <0x09 0x01>; + capacity-dmips-mhz = <0x161c>; + phandle = <0x06>; + }; + }; + + interrupt-controller@30800000 { + compatible = "arm,gic-v3"; + #interrupt-cells = <0x03>; + #address-cells = <0x02>; + #size-cells = <0x02>; + ranges; + interrupt-controller; + reg = <0x00 0x30800000 0x00 0x20000 0x00 0x30880000 0x00 0x80000 0x00 0x30840000 0x00 0x10000 0x00 0x30850000 0x00 0x10000 0x00 0x30860000 0x00 0x10000>; + interrupts = <0x01 0x09 0x08>; + phandle = <0x01>; + + gic-its@30820000 { + compatible = "arm,gic-v3-its"; + msi-controller; + reg = <0x00 0x30820000 0x00 0x20000>; + phandle = <0x0f>; + }; + }; + + timer { + compatible = "arm,armv8-timer"; + interrupts = <0x01 0x0d 0x08 0x01 0x0e 0x08 0x01 0x0b 0x08 0x01 0x0a 0x08>; + clock-frequency = <0x2faf080>; + }; + + soc { + compatible = "simple-bus"; + #address-cells = <0x02>; + #size-cells = <0x02>; + dma-coherent; + ranges; + + uart@2800d000 { + compatible = "arm,pl011\0arm,primecell"; + reg = <0x00 0x2800d000 0x00 0x1000>; + interrupts = <0x00 0x54 0x04>; + clocks = <0x0c 0x0c>; + clock-names = "uartclk\0apb_pclk"; + status = "okay"; + }; + }; + + chosen { + bootargs = "console=ttyAMA1,115200 earlycon=pl011,0x2800d000 root=/dev/mmcblk0p1 rootfstype=ext4 rootwait rw cma=256m ;"; + stdout-path = "serial1:115200n8"; + }; + + memory@00 { + device_type = "memory"; + reg = <0x20 0x20000000 0x00 0x20000000>; + }; +}; diff --git a/configs/vms/arceos-aarch64-e2000_smp2.toml b/configs/vms/arceos-aarch64-e2000_smp2.toml new file mode 100644 index 00000000..41b23930 --- /dev/null +++ b/configs/vms/arceos-aarch64-e2000_smp2.toml @@ -0,0 +1,71 @@ +# Vm base info configs +# +[base] +# Guest vm id. +id = 2 +# Guest vm name. +name = "arceos" +# Virtualization type. +vm_type = 1 +# The number of virtual CPUs. +cpu_num = 2 +# The physical CPU ids. +phys_cpu_ids = [0x201, 0x100] +# Guest vm physical cpu sets. +phys_cpu_sets = [2, 8] + +# +# Vm kernel configs +# +[kernel] +# The entry point of the kernel image. +entry_point = 0x20_2008_0000 +# The location of image: "memory" | "fs". +# Load from file system. +image_location = "memory" +# The load address of the kernel image. +kernel_load_addr = 0x20_2008_0000 +## The file path of the kernel image. +kernel_path = "/guest/arceos-aarch64-e2000_smp2.bin" +## The file path of the device tree blob (DTB). +dtb_path = "/guest/arceos-aarch64-e2000_smp2.dtb" +dtb_load_addr = 0x20_2000_0000 +# Memory regions with format (`base_paddr`, `size`, `flags`, `map_type`). +# For `map_type`, 0 means `MAP_ALLOC`, 1 means `MAP_IDENTICAL`. +memory_regions = [ + #[0x20_2000_0000, 0x2000_0000, 0x7, 1], # System RAM MAP_IDENTICAL +] + +# +# Device specifications +# +[devices] +# Emu_devices. +# Name Base-Ipa Ipa_len Alloc-Irq Emu-Type EmuConfig. +emu_devices = [] + +# Pass-through devices. +# Name Base-Ipa Base-Pa Length Alloc-Irq. +passthrough_devices = [ + [ + "UART1", + 0x2800_d000, + 0x2800_d000, + 0x1000, + 0x1, + ], + [ + "gic-v3", + 0x3080_0000, + 0x3080_0000, + 0x10000, + 0x1, + ], + [ + "gic-v3-its", + 0x3082_0000, + 0x3082_0000, + 0x100000, + 0x1, + ], +] \ No newline at end of file diff --git a/configs/vms/arceos-aarch64-rk3568-smp1.toml b/configs/vms/arceos-aarch64-rk3568-smp1.toml new file mode 100644 index 00000000..d553acb6 --- /dev/null +++ b/configs/vms/arceos-aarch64-rk3568-smp1.toml @@ -0,0 +1,70 @@ +# Vm base info configs +# +[base] +# Guest vm id. +id = 1 +# Guest vm name. +name = "arceos" +# Virtualization type. +vm_type = 1 +# The number of virtual CPUs. +cpu_num = 1 +# The physical CPU ids. +phys_cpu_ids = [0x200] +# Guest vm physical cpu sets. +phys_cpu_sets = [1] + +# +# Vm kernel configs +# +[kernel] +# The entry point of the kernel image. +entry_point = 0x7008_0000 +# The location of image: "memory" | "fs". +# Load from file system. +image_location = "memory" +# The load address of the kernel image. +kernel_load_addr = 0x7008_0000 +## The file path of the kernel image. +kernel_path = "/code/axvisor/axboard_test/config/rk3568-arceos/arceos.bin" +## The file path of the device tree blob (DTB). +dtb_path = "/code/axvisor/axboard_test/config/rk3568-arceos/arceos-rk3568.dtb" +dtb_load_addr = 0x7000_0000 +# Memory regions with format (`base_paddr`, `size`, `flags`, `map_type`). +# For `map_type`, 0 means `MAP_ALLOC`, 1 means `MAP_IDENTICAL`. +memory_regions = [] + +# +# Device specifications +# +[devices] +# Emu_devices. +interrupt_mode = "passthrough" +# Name Base-Ipa Ipa_len Alloc-Irq Emu-Type EmuConfig. +emu_devices = [] + +# Pass-through devices. +# Name Base-Ipa Base-Pa Length Alloc-Irq. +passthrough_devices = [ + [ + "UART2", + 0xfe66_0000, + 0xfe66_0000, + 0x10000, + 0x1, + ], + [ + "gic-v3", + 0xfd40_0000, + 0xfd40_0000, + 0x10000, + 0x1, + ], + [ + "gic-v3-its", + 0xfd44_0000, + 0xfd44_0000, + 0x100000, + 0x1, + ], +] diff --git a/configs/vms/arceos-aarch64-rk3568-smp2.toml b/configs/vms/arceos-aarch64-rk3568-smp2.toml new file mode 100644 index 00000000..44a71566 --- /dev/null +++ b/configs/vms/arceos-aarch64-rk3568-smp2.toml @@ -0,0 +1,75 @@ +# Vm base info configs +# +[base] +# Guest vm id. +id = 2 +# Guest vm name. +name = "arceos" +# Virtualization type. +vm_type = 1 +# The number of virtual CPUs. +cpu_num = 2 +# The physical CPU ids. +phys_cpu_ids = [0x00, 0x100] +# Guest vm physical cpu sets. +phys_cpu_sets = [1, 2] + +# +# Vm kernel configs +# +[kernel] +# The entry point of the kernel image. +entry_point = 0x7008_0000 +# The location of image: "memory" | "fs". +# Load from file system. +image_location = "memory" +# The load address of the kernel image. +kernel_load_addr = 0x7008_0000 +## The file path of the kernel image. +kernel_path = "/guest/arceos-aarch64-rk3568_smp2.bin" +## The file path of the device tree blob (DTB). +dtb_path = "/guest/arceos-aarch64-rk3568_smp2.dtb" +dtb_load_addr = 0x7000_0000 +# Memory regions with format (`base_paddr`, `size`, `flags`, `map_type`). +# For `map_type`, 0 means `MAP_ALLOC`, 1 means `MAP_IDENTICAL`. +memory_regions = [ + # [0x1000_0000, 0x800_0000, 0x7, 0], + # [0x7000_0000, 0x1000_0000, 0x7, 1], # System RAM 1G MAP_IDENTICAL + # [0x1_f000_0000, 0x1000_0000 , 0x7, 1], # System RAM 1G MAP_IDENTICAL + # [0x600_0000, 0x240_0000, 0x7, 1], # System RAM MAP_IDENTICAL + # [0x1_f000_0000, 0x1000_0000, 0x7, 1], # System RAM MAP_IDENTICAL +] + +# +# Device specifications +# +[devices] +# Emu_devices. +# Name Base-Ipa Ipa_len Alloc-Irq Emu-Type EmuConfig. +emu_devices = [] + +# Pass-through devices. +# Name Base-Ipa Base-Pa Length Alloc-Irq. +passthrough_devices = [ + [ + "UART2", + 0xfe66_0000, + 0xfe66_0000, + 0x10000, + 0x1, + ], + [ + "gic-v3", + 0xfd40_0000, + 0xfd40_0000, + 0x10000, + 0x1, + ], + [ + "gic-v3-its", + 0xfd44_0000, + 0xfd44_0000, + 0x100000, + 0x1, + ], +] \ No newline at end of file diff --git a/configs/vms/arceos-aarch64-rk3568_smp1.dts b/configs/vms/arceos-aarch64-rk3568_smp1.dts new file mode 100644 index 00000000..d1ad3a39 --- /dev/null +++ b/configs/vms/arceos-aarch64-rk3568_smp1.dts @@ -0,0 +1,87 @@ +/dts-v1/; + +/memreserve/ 0x0000000008300000 0x000000000001c000; +/memreserve/ 0x000000000a200000 0x00000000008cf15d; +/ { + serial-number = "425ca8fc29ade692"; + compatible = "rockchip,rk3568-firefly-roc-pc\0rockchip,rk3568"; + interrupt-parent = <0x01>; + #address-cells = <0x02>; + #size-cells = <0x02>; + model = "Firefly RK3568-ROC-PC"; + + memory { + reg = <0x00 0x70000000 0x00 0x10000000>; + device_type = "memory"; + }; + + chosen { + bootargs = "earlycon=uart8250,mmio32,0xfe660000"; + }; + + aliases { + serial2 = "/serial@fe660000"; + }; + + cpus { + #address-cells = <0x02>; + #size-cells = <0x00>; + + cpu@200 { + device_type = "cpu"; + compatible = "arm,cortex-a55"; + reg = <0x00 0x200>; + enable-method = "psci"; + clocks = <0x02 0x00>; + operating-points-v2 = <0x03>; + cpu-idle-states = <0x04>; + phandle = <0x0d>; + }; + }; + + psci { + compatible = "arm,psci-1.0"; + method = "smc"; + }; + + timer { + compatible = "arm,armv8-timer"; + interrupts = <0x01 0x0d 0xf04 0x01 0x0e 0xf04 0x01 0x0b 0xf04 0x01 0x0a 0xf04>; + arm,no-tick-in-suspend; + }; + + interrupt-controller@fd400000 { + compatible = "arm,gic-v3"; + #interrupt-cells = <0x03>; + #address-cells = <0x02>; + #size-cells = <0x02>; + ranges; + interrupt-controller; + reg = <0x00 0xfd400000 0x00 0x10000 0x00 0xfd460000 0x00 0xc0000>; + interrupts = <0x01 0x09 0x04>; + phandle = <0x01>; + + interrupt-controller@fd440000 { + compatible = "arm,gic-v3-its"; + msi-controller; + #msi-cells = <0x01>; + reg = <0x00 0xfd440000 0x00 0x20000>; + status = "okay"; + phandle = <0xbe>; + }; + }; + + serial@fe660000 { + compatible = "rockchip,rk3568-uart\0snps,dw-apb-uart"; + reg = <0x00 0xfe660000 0x00 0x100>; + interrupts = <0x00 0x76 0x04>; + clocks = <0x23 0x123 0x23 0x120>; + clock-names = "baudclk\0apb_pclk"; + reg-shift = <0x02>; + reg-io-width = <0x04>; + dmas = <0x4e 0x04 0x4e 0x05>; + pinctrl-names = "default"; + pinctrl-0 = <0x10c>; + status = "okay"; + }; +}; \ No newline at end of file diff --git a/configs/vms/arceos-aarch64-rk3568_smp2.dts b/configs/vms/arceos-aarch64-rk3568_smp2.dts new file mode 100644 index 00000000..6da5bf8b --- /dev/null +++ b/configs/vms/arceos-aarch64-rk3568_smp2.dts @@ -0,0 +1,101 @@ +/dts-v1/; + +/memreserve/ 0x0000000008300000 0x000000000001c000; +/memreserve/ 0x000000000a200000 0x00000000008cf15d; +/ { + serial-number = "425ca8fc29ade692"; + compatible = "rockchip,rk3568-firefly-roc-pc\0rockchip,rk3568"; + interrupt-parent = <0x01>; + #address-cells = <0x02>; + #size-cells = <0x02>; + model = "Firefly RK3568-ROC-PC"; + + memory { + reg = <0x00 0x70000000 0x00 0x10000000>; + device_type = "memory"; + }; + + chosen { + bootargs = "earlycon=uart8250,mmio32,0xfe660000"; + }; + + aliases { + serial2 = "/serial@fe660000"; + }; + + cpus { + #address-cells = <0x02>; + #size-cells = <0x00>; + + cpu@0 { + device_type = "cpu"; + compatible = "arm,cortex-a55"; + reg = <0x00 0x00>; + enable-method = "psci"; + clocks = <0x02 0x00>; + operating-points-v2 = <0x03>; + cpu-idle-states = <0x04>; + #cooling-cells = <0x02>; + dynamic-power-coefficient = <0xbb>; + cpu-supply = <0x05>; + phandle = <0x0c>; + }; + + cpu@100 { + device_type = "cpu"; + compatible = "arm,cortex-a55"; + reg = <0x00 0x100>; + enable-method = "psci"; + clocks = <0x02 0x00>; + operating-points-v2 = <0x03>; + cpu-idle-states = <0x04>; + phandle = <0x0d>; + }; + }; + + psci { + compatible = "arm,psci-1.0"; + method = "smc"; + }; + + timer { + compatible = "arm,armv8-timer"; + interrupts = <0x01 0x0d 0xf04 0x01 0x0e 0xf04 0x01 0x0b 0xf04 0x01 0x0a 0xf04>; + arm,no-tick-in-suspend; + }; + + interrupt-controller@fd400000 { + compatible = "arm,gic-v3"; + #interrupt-cells = <0x03>; + #address-cells = <0x02>; + #size-cells = <0x02>; + ranges; + interrupt-controller; + reg = <0x00 0xfd400000 0x00 0x10000 0x00 0xfd460000 0x00 0xc0000>; + interrupts = <0x01 0x09 0x04>; + phandle = <0x01>; + + interrupt-controller@fd440000 { + compatible = "arm,gic-v3-its"; + msi-controller; + #msi-cells = <0x01>; + reg = <0x00 0xfd440000 0x00 0x20000>; + status = "okay"; + phandle = <0xbe>; + }; + }; + + serial@fe660000 { + compatible = "rockchip,rk3568-uart\0snps,dw-apb-uart"; + reg = <0x00 0xfe660000 0x00 0x100>; + interrupts = <0x00 0x76 0x04>; + clocks = <0x23 0x123 0x23 0x120>; + clock-names = "baudclk\0apb_pclk"; + reg-shift = <0x02>; + reg-io-width = <0x04>; + dmas = <0x4e 0x04 0x4e 0x05>; + pinctrl-names = "default"; + pinctrl-0 = <0x10c>; + status = "okay"; + }; +}; \ No newline at end of file diff --git a/configs/vms/linux-aarch64-e2000_smp1.dts b/configs/vms/linux-aarch64-e2000_smp1.dts new file mode 100644 index 00000000..18d68f0f --- /dev/null +++ b/configs/vms/linux-aarch64-e2000_smp1.dts @@ -0,0 +1,1302 @@ +/dts-v1/; + +/memreserve/ 0x0000000080000000 0x0000000000010000; +/ { + compatible = "phytium,pe2204"; + interrupt-parent = <0x01>; + #address-cells = <0x02>; + #size-cells = <0x02>; + model = "Phytium Pi Board"; + + // memory@01 { + // device_type = "memory"; + // reg = <0x20 0x40000000 0x00 0x40000000>; + // numa-node-id = <0x00>; + // }; + + aliases { + serial0 = "/soc/uart@2800c000"; + serial1 = "/soc/uart@2800d000"; + serial2 = "/soc/uart@2800e000"; + serial3 = "/soc/uart@2800f000"; + ethernet0 = "/soc/ethernet@3200c000"; + ethernet1 = "/soc/ethernet@3200e000"; + ethernet2 = "/soc/ethernet@32010000"; + ethernet3 = "/soc/ethernet@32012000"; + serial4 = "/soc/uart@28014000"; + serial5 = "/soc/uart@2802A000"; + serial6 = "/soc/uart@28032000"; + }; + + psci { + compatible = "arm,psci-1.0"; + method = "smc"; + cpu_suspend = <0xc4000001>; + cpu_off = <0x84000002>; + cpu_on = <0xc4000003>; + sys_poweroff = <0x84000008>; + sys_reset = <0x84000009>; + }; + + firmware { + + scmi { + compatible = "arm,scmi"; + mboxes = <0x02 0x00>; + mbox-names = "tx"; + shmem = <0x03>; + #address-cells = <0x01>; + #size-cells = <0x00>; + + protocol@13 { + reg = <0x13>; + #clock-cells = <0x01>; + phandle = <0x09>; + }; + + protocol@15 { + reg = <0x15>; + #thermal-sensor-cells = <0x01>; + phandle = <0x04>; + }; + }; + + optee { + compatible = "linaro,optee-tz"; + method = "smc"; + }; + }; + + thermal-zones { + + sensor0 { + polling-delay-passive = <0x64>; + polling-delay = <0x3e8>; + thermal-sensors = <0x04 0x00>; + }; + + sensor1 { + polling-delay-passive = <0x64>; + polling-delay = <0x3e8>; + thermal-sensors = <0x04 0x01>; + }; + }; + + cpus { + #address-cells = <0x02>; + #size-cells = <0x00>; + + cpu-map { + + // cluster0 { + + // core0 { + // cpu = <0x05>; + // }; + // }; + + cluster1 { + + core0 { + cpu = <0x06>; + }; + }; + + // cluster2 { + + // core0 { + // cpu = <0x07>; + // }; + + // core1 { + // cpu = <0x08>; + // }; + // }; + }; + + // cpu@0 { + // device_type = "cpu"; + // compatible = "phytium,ftc310\0arm,armv8"; + // reg = <0x00 0x200>; + // enable-method = "psci"; + // clocks = <0x09 0x02>; + // capacity-dmips-mhz = <0xb22>; + // phandle = <0x07>; + // }; + + // cpu@1 { + // device_type = "cpu"; + // compatible = "phytium,ftc310\0arm,armv8"; + // reg = <0x00 0x201>; + // enable-method = "psci"; + // clocks = <0x09 0x02>; + // capacity-dmips-mhz = <0xb22>; + // phandle = <0x08>; + // }; + + // cpu@100 { + // device_type = "cpu"; + // compatible = "phytium,ftc664\0arm,armv8"; + // reg = <0x00 0x00>; + // enable-method = "psci"; + // clocks = <0x09 0x00>; + // capacity-dmips-mhz = <0x161c>; + // phandle = <0x05>; + // }; + + cpu@101 { + device_type = "cpu"; + compatible = "phytium,ftc664\0arm,armv8"; + reg = <0x00 0x100>; + enable-method = "psci"; + clocks = <0x09 0x01>; + capacity-dmips-mhz = <0x161c>; + phandle = <0x06>; + }; + }; + + interrupt-controller@30800000 { + compatible = "arm,gic-v3"; + #interrupt-cells = <0x03>; + #address-cells = <0x02>; + #size-cells = <0x02>; + ranges; + interrupt-controller; + reg = <0x00 0x30800000 0x00 0x20000 0x00 0x30880000 0x00 0x80000 0x00 0x30840000 0x00 0x10000 0x00 0x30850000 0x00 0x10000 0x00 0x30860000 0x00 0x10000>; + interrupts = <0x01 0x09 0x08>; + phandle = <0x01>; + + gic-its@30820000 { + compatible = "arm,gic-v3-its"; + msi-controller; + reg = <0x00 0x30820000 0x00 0x20000>; + phandle = <0x0f>; + }; + }; + + pmu { + compatible = "arm,armv8-pmuv3"; + interrupts = <0x01 0x07 0x08>; + }; + + timer { + compatible = "arm,armv8-timer"; + interrupts = <0x01 0x0d 0x08 0x01 0x0e 0x08 0x01 0x0b 0x08 0x01 0x0a 0x08>; + clock-frequency = <0x2faf080>; + }; + + clocks { + #address-cells = <0x02>; + #size-cells = <0x02>; + ranges; + + clk48mhz { + compatible = "fixed-clock"; + #clock-cells = <0x00>; + clock-frequency = <0x2dc6c00>; + phandle = <0x13>; + }; + + clk50mhz { + compatible = "fixed-clock"; + #clock-cells = <0x00>; + clock-frequency = <0x2faf080>; + phandle = <0x0d>; + }; + + clk100mhz { + compatible = "fixed-clock"; + #clock-cells = <0x00>; + clock-frequency = <0x5f5e100>; + phandle = <0x0c>; + }; + + clk200mhz { + compatible = "fixed-clock"; + #clock-cells = <0x00>; + clock-frequency = <0xbebc200>; + phandle = <0x11>; + }; + + clk250mhz { + compatible = "fixed-clock"; + #clock-cells = <0x00>; + clock-frequency = <0xee6b280>; + phandle = <0x12>; + }; + + clk300mhz { + compatible = "fixed-clock"; + #clock-cells = <0x00>; + clock-frequency = <0x11e1a300>; + phandle = <0x0b>; + }; + + clk600mhz { + compatible = "fixed-clock"; + #clock-cells = <0x00>; + clock-frequency = <0x23c34600>; + phandle = <0x0e>; + }; + + clk1200mhz { + compatible = "fixed-clock"; + #clock-cells = <0x00>; + clock-frequency = <0x47868c00>; + phandle = <0x0a>; + }; + }; + + iommu@30000000 { + compatible = "arm,smmu-v3"; + reg = <0x00 0x30000000 0x00 0x800000>; + interrupts = <0x00 0xf0 0x01 0x00 0xef 0x01 0x00 0xec 0x01 0x00 0xf2 0x01>; + interrupt-names = "eventq\0priq\0cmdq-sync\0gerror"; + dma-coherent; + #iommu-cells = <0x01>; + phandle = <0x10>; + }; + + soc { + compatible = "simple-bus"; + #address-cells = <0x02>; + #size-cells = <0x02>; + dma-coherent; + ranges; + + mmc@28000000 { + compatible = "phytium,mci"; + reg = <0x00 0x28000000 0x00 0x1000>; + interrupts = <0x00 0x48 0x04>; + clocks = <0x0a>; + clock-names = "phytium_mci_clk"; + status = "okay"; + bus-width = <0x04>; + max-frequency = <0x2faf080>; + cap-sdio-irq; + cap-sd-highspeed; + no-mmc; + }; + + mmc@28001000 { + compatible = "phytium,mci"; + reg = <0x00 0x28001000 0x00 0x1000>; + interrupts = <0x00 0x49 0x04>; + clocks = <0x0a>; + clock-names = "phytium_mci_clk"; + status = "okay"; + bus-width = <0x04>; + max-frequency = <0x2faf080>; + cap-sdio-irq; + cap-sd-highspeed; + no-mmc; + no-sd; + non-removable; + }; + + nand@28002000 { + compatible = "phytium,nfc"; + reg = <0x00 0x28002000 0x00 0x1000>; + interrupts = <0x00 0x4a 0x04>; + status = "disabled"; + }; + + ddma@28003000 { + compatible = "phytium,ddma"; + reg = <0x00 0x28003000 0x00 0x1000>; + interrupts = <0x00 0x4b 0x04>; + #dma-cells = <0x02>; + dma-channels = <0x08>; + }; + + ddma@28004000 { + compatible = "phytium,ddma"; + reg = <0x00 0x28004000 0x00 0x1000>; + interrupts = <0x00 0x4c 0x04>; + #dma-cells = <0x02>; + dma-channels = <0x08>; + }; + + spi@28008000 { + compatible = "phytium,qspi-nor"; + reg = <0x00 0x28008000 0x00 0x1000 0x00 0x00 0x00 0xfffffff>; + reg-names = "qspi\0qspi_mm"; + clocks = <0x0b>; + status = "okay"; + #address-cells = <0x01>; + #size-cells = <0x00>; + + flash@0 { + compatible = "jedec,spi-nor"; + reg = <0x00>; + spi-rx-bus-width = <0x01>; + spi-max-frequency = <0x1312d00>; + status = "okay"; + }; + }; + + uart@2800c000 { + compatible = "arm,pl011\0arm,primecell"; + reg = <0x00 0x2800c000 0x00 0x1000>; + interrupts = <0x00 0x53 0x04>; + clocks = <0x0c 0x0c>; + clock-names = "uartclk\0apb_pclk"; + status = "okay"; + }; + + uart@2800d000 { + compatible = "arm,pl011\0arm,primecell"; + reg = <0x00 0x2800d000 0x00 0x1000>; + interrupts = <0x00 0x54 0x04>; + clocks = <0x0c 0x0c>; + clock-names = "uartclk\0apb_pclk"; + status = "okay"; + }; + + uart@2800e000 { + compatible = "arm,pl011\0arm,primecell"; + reg = <0x00 0x2800e000 0x00 0x1000>; + interrupts = <0x00 0x55 0x04>; + clocks = <0x0c 0x0c>; + clock-names = "uartclk\0apb_pclk"; + status = "okay"; + }; + + uart@2800f000 { + compatible = "arm,pl011\0arm,primecell"; + reg = <0x00 0x2800f000 0x00 0x1000>; + interrupts = <0x00 0x56 0x04>; + clocks = <0x0c 0x0c>; + clock-names = "uartclk\0apb_pclk"; + status = "okay"; + }; + + lpc@28010000 { + compatible = "simple-mfd\0syscon"; + reg = <0x00 0x28010000 0x00 0x1000>; + reg-io-width = <0x04>; + #address-cells = <0x01>; + #size-cells = <0x01>; + ranges = <0x00 0x00 0x28010000 0x1000>; + + kcs@24 { + compatible = "phytium,kcs-bmc"; + reg = <0x24 0x01 0x30 0x01 0x3c 0x01>; + interrupts = <0x00 0x58 0x04>; + status = "disabled"; + }; + + kcs@28 { + compatible = "phytium,kcs-bmc"; + reg = <0x28 0x01 0x34 0x01 0x40 0x01>; + interrupts = <0x00 0x58 0x04>; + status = "disabled"; + }; + + kcs@2c { + compatible = "phytium,kcs-bmc"; + reg = <0x2c 0x01 0x38 0x01 0x44 0x01>; + interrupts = <0x00 0x58 0x04>; + status = "disabled"; + }; + + kcs@8c { + compatible = "phytium,kcs-bmc"; + reg = <0x8c 0x01 0x90 0x01 0x94 0x01>; + interrupts = <0x00 0x58 0x04>; + status = "disabled"; + }; + + bt@48 { + compatible = "phytium,bt-bmc"; + reg = <0x48 0x20>; + interrupts = <0x00 0x58 0x04>; + status = "disabled"; + }; + }; + + gpio@28034000 { + compatible = "phytium,gpio"; + reg = <0x00 0x28034000 0x00 0x1000>; + interrupts = <0x00 0x6c 0x04 0x00 0x6d 0x04 0x00 0x6e 0x04 0x00 0x6f 0x04 0x00 0x70 0x04 0x00 0x71 0x04 0x00 0x72 0x04 0x00 0x73 0x04 0x00 0x74 0x04 0x00 0x75 0x04 0x00 0x76 0x04 0x00 0x77 0x04 0x00 0x78 0x04 0x00 0x79 0x04 0x00 0x7a 0x04 0x00 0x7b 0x04>; + gpio-controller; + #gpio-cells = <0x02>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "okay"; + + porta { + compatible = "phytium,gpio-port"; + reg = <0x00>; + ngpios = <0x10>; + }; + }; + + gpio@28035000 { + compatible = "phytium,gpio"; + reg = <0x00 0x28035000 0x00 0x1000>; + interrupts = <0x00 0x7c 0x04 0x00 0x7d 0x04 0x00 0x7e 0x04 0x00 0x7f 0x04 0x00 0x80 0x04 0x00 0x81 0x04 0x00 0x82 0x04 0x00 0x83 0x04 0x00 0x84 0x04 0x00 0x85 0x04 0x00 0x86 0x04 0x00 0x87 0x04 0x00 0x88 0x04 0x00 0x89 0x04 0x00 0x8a 0x04 0x00 0x8b 0x04>; + gpio-controller; + #gpio-cells = <0x02>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "okay"; + phandle = <0x14>; + + porta { + compatible = "phytium,gpio-port"; + reg = <0x00>; + ngpios = <0x10>; + }; + }; + + gpio@28036000 { + compatible = "phytium,gpio"; + reg = <0x00 0x28036000 0x00 0x1000>; + interrupts = <0x00 0x8c 0x04 0x00 0x8d 0x04 0x00 0x8e 0x04 0x00 0x8f 0x04 0x00 0x90 0x04 0x00 0x91 0x04 0x00 0x92 0x04 0x00 0x93 0x04 0x00 0x94 0x04 0x00 0x95 0x04 0x00 0x96 0x04 0x00 0x97 0x04 0x00 0x98 0x04 0x00 0x99 0x04 0x00 0x9a 0x04 0x00 0x9b 0x04>; + gpio-controller; + #gpio-cells = <0x02>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "okay"; + phandle = <0x15>; + + porta { + compatible = "phytium,gpio-port"; + reg = <0x00>; + ngpios = <0x10>; + }; + }; + + gpio@28037000 { + compatible = "phytium,gpio"; + reg = <0x00 0x28037000 0x00 0x1000>; + interrupts = <0x00 0x9c 0x04>; + gpio-controller; + #gpio-cells = <0x02>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "okay"; + + porta { + compatible = "phytium,gpio-port"; + reg = <0x00>; + ngpios = <0x10>; + }; + }; + + gpio@28038000 { + compatible = "phytium,gpio"; + reg = <0x00 0x28038000 0x00 0x1000>; + interrupts = <0x00 0x9d 0x04>; + gpio-controller; + #gpio-cells = <0x02>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "okay"; + + porta { + compatible = "phytium,gpio-port"; + reg = <0x00>; + ngpios = <0x10>; + }; + }; + + gpio@28039000 { + compatible = "phytium,gpio"; + reg = <0x00 0x28039000 0x00 0x1000>; + interrupts = <0x00 0x9e 0x04>; + gpio-controller; + #gpio-cells = <0x02>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "okay"; + + porta { + compatible = "phytium,gpio-port"; + reg = <0x00>; + ngpios = <0x10>; + }; + }; + + spi@2803a000 { + compatible = "phytium,spi"; + reg = <0x00 0x2803a000 0x00 0x1000>; + interrupts = <0x00 0x9f 0x04>; + clocks = <0x0d>; + num-cs = <0x04>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "okay"; + global-cs = <0x01>; + + spidev@0 { + compatible = "spidev"; + reg = <0x00>; + spi-max-frequency = <0x2faf080>; + status = "disabled"; + }; + }; + + spi@2803b000 { + compatible = "phytium,spi"; + reg = <0x00 0x2803b000 0x00 0x1000>; + interrupts = <0x00 0xa0 0x04>; + clocks = <0x0d>; + num-cs = <0x04>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "disabled"; + }; + + spi@2803c000 { + compatible = "phytium,spi"; + reg = <0x00 0x2803c000 0x00 0x1000>; + interrupts = <0x00 0xa1 0x04>; + clocks = <0x0d>; + num-cs = <0x04>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "disabled"; + }; + + spi@2803d000 { + compatible = "phytium,spi"; + reg = <0x00 0x2803d000 0x00 0x1000>; + interrupts = <0x00 0xa2 0x04>; + clocks = <0x0d>; + num-cs = <0x04>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "disabled"; + }; + + watchdog@28040000 { + compatible = "arm,sbsa-gwdt"; + reg = <0x00 0x28041000 0x00 0x1000 0x00 0x28040000 0x00 0x1000>; + interrupts = <0x00 0xa4 0x04>; + timeout-sec = <0x1e>; + status = "okay"; + }; + + watchdog@28042000 { + compatible = "arm,sbsa-gwdt"; + reg = <0x00 0x28043000 0x00 0x1000 0x00 0x28042000 0x00 0x1000>; + interrupts = <0x00 0xa5 0x04>; + timeout-sec = <0x1e>; + status = "okay"; + }; + + pwm@2804a000 { + compatible = "phytium,pwm"; + reg = <0x00 0x2804a000 0x00 0x1000>; + interrupts = <0x00 0xad 0x04>; + clocks = <0x0d>; + status = "okay"; + phytium,db = <0x00 0x00 0x64 0x3e8 0x3e8 0x00>; + }; + + pwm@2804b000 { + compatible = "phytium,pwm"; + reg = <0x00 0x2804b000 0x00 0x1000>; + interrupts = <0x00 0xae 0x04>; + clocks = <0x0d>; + status = "okay"; + phytium,db = <0x00 0x00 0x64 0x3e8 0x3e8 0x00>; + }; + + tacho@28054000 { + compatible = "phytium,tacho"; + reg = <0x00 0x28054000 0x00 0x1000>; + interrupts = <0x00 0xc2 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@28055000 { + compatible = "phytium,tacho"; + reg = <0x00 0x28055000 0x00 0x1000>; + interrupts = <0x00 0xc3 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@28056000 { + compatible = "phytium,tacho"; + reg = <0x00 0x28056000 0x00 0x1000>; + interrupts = <0x00 0xc4 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@28057000 { + compatible = "phytium,tacho"; + reg = <0x00 0x28057000 0x00 0x1000>; + interrupts = <0x00 0xc5 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@28058000 { + compatible = "phytium,tacho"; + reg = <0x00 0x28058000 0x00 0x1000>; + interrupts = <0x00 0xc6 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@28059000 { + compatible = "phytium,tacho"; + reg = <0x00 0x28059000 0x00 0x1000>; + interrupts = <0x00 0xc7 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@2805a000 { + compatible = "phytium,tacho"; + reg = <0x00 0x2805a000 0x00 0x1000>; + interrupts = <0x00 0xc8 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@2805b000 { + compatible = "phytium,tacho"; + reg = <0x00 0x2805b000 0x00 0x1000>; + interrupts = <0x00 0xc9 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@2805c000 { + compatible = "phytium,tacho"; + reg = <0x00 0x2805c000 0x00 0x1000>; + interrupts = <0x00 0xca 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@2805d000 { + compatible = "phytium,tacho"; + reg = <0x00 0x2805d000 0x00 0x1000>; + interrupts = <0x00 0xcb 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@2805e000 { + compatible = "phytium,tacho"; + reg = <0x00 0x2805e000 0x00 0x1000>; + interrupts = <0x00 0xcc 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@2805f000 { + compatible = "phytium,tacho"; + reg = <0x00 0x2805f000 0x00 0x1000>; + interrupts = <0x00 0xcd 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@28060000 { + compatible = "phytium,tacho"; + reg = <0x00 0x28060000 0x00 0x1000>; + interrupts = <0x00 0xce 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@28061000 { + compatible = "phytium,tacho"; + reg = <0x00 0x28061000 0x00 0x1000>; + interrupts = <0x00 0xcf 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@28062000 { + compatible = "phytium,tacho"; + reg = <0x00 0x28062000 0x00 0x1000>; + interrupts = <0x00 0xd0 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@28063000 { + compatible = "phytium,tacho"; + reg = <0x00 0x28063000 0x00 0x1000>; + interrupts = <0x00 0xd1 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@28064000 { + compatible = "phytium,tacho"; + reg = <0x00 0x28064000 0x00 0x1000>; + interrupts = <0x00 0xd2 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@28065000 { + compatible = "phytium,tacho"; + reg = <0x00 0x28065000 0x00 0x1000>; + interrupts = <0x00 0xd3 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@28066000 { + compatible = "phytium,tacho"; + reg = <0x00 0x28066000 0x00 0x1000>; + interrupts = <0x00 0xd4 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@28067000 { + compatible = "phytium,tacho"; + reg = <0x00 0x28067000 0x00 0x1000>; + interrupts = <0x00 0xd5 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@28068000 { + compatible = "phytium,tacho"; + reg = <0x00 0x28068000 0x00 0x1000>; + interrupts = <0x00 0xd6 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@28069000 { + compatible = "phytium,tacho"; + reg = <0x00 0x28069000 0x00 0x1000>; + interrupts = <0x00 0xd7 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@2806a000 { + compatible = "phytium,tacho"; + reg = <0x00 0x2806a000 0x00 0x1000>; + interrupts = <0x00 0xd8 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@2806b000 { + compatible = "phytium,tacho"; + reg = <0x00 0x2806b000 0x00 0x1000>; + interrupts = <0x00 0xd9 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@2806c000 { + compatible = "phytium,tacho"; + reg = <0x00 0x2806c000 0x00 0x1000>; + interrupts = <0x00 0xda 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@2806d000 { + compatible = "phytium,tacho"; + reg = <0x00 0x2806d000 0x00 0x1000>; + interrupts = <0x00 0xdb 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@2806e000 { + compatible = "phytium,tacho"; + reg = <0x00 0x2806e000 0x00 0x1000>; + interrupts = <0x00 0xdc 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@2806f000 { + compatible = "phytium,tacho"; + reg = <0x00 0x2806f000 0x00 0x1000>; + interrupts = <0x00 0xdd 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@28070000 { + compatible = "phytium,tacho"; + reg = <0x00 0x28070000 0x00 0x1000>; + interrupts = <0x00 0xde 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@28071000 { + compatible = "phytium,tacho"; + reg = <0x00 0x28071000 0x00 0x1000>; + interrupts = <0x00 0xdf 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@28072000 { + compatible = "phytium,tacho"; + reg = <0x00 0x28072000 0x00 0x1000>; + interrupts = <0x00 0xe0 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@28073000 { + compatible = "phytium,tacho"; + reg = <0x00 0x28073000 0x00 0x1000>; + interrupts = <0x00 0xe1 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@28074000 { + compatible = "phytium,tacho"; + reg = <0x00 0x28074000 0x00 0x1000>; + interrupts = <0x00 0xe2 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@28075000 { + compatible = "phytium,tacho"; + reg = <0x00 0x28075000 0x00 0x1000>; + interrupts = <0x00 0xe3 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@28076000 { + compatible = "phytium,tacho"; + reg = <0x00 0x28076000 0x00 0x1000>; + interrupts = <0x00 0xe4 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@28077000 { + compatible = "phytium,tacho"; + reg = <0x00 0x28077000 0x00 0x1000>; + interrupts = <0x00 0xe5 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@28078000 { + compatible = "phytium,tacho"; + reg = <0x00 0x28078000 0x00 0x1000>; + interrupts = <0x00 0xe6 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@28079000 { + compatible = "phytium,tacho"; + reg = <0x00 0x28079000 0x00 0x1000>; + interrupts = <0x00 0xe7 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + usb2@31800000 { + compatible = "phytium,usb2"; + reg = <0x00 0x31800000 0x00 0x80000 0x00 0x31990000 0x00 0x10000>; + interrupts = <0x00 0x20 0x04>; + status = "okay"; + dr_mode = "host"; + }; + + usb2@31880000 { + compatible = "phytium,usb2"; + reg = <0x00 0x31880000 0x00 0x80000 0x00 0x319a0000 0x00 0x10000>; + interrupts = <0x00 0x21 0x04>; + status = "disabled"; + dr_mode = "peripheral"; + }; + + usb2@31900000 { + compatible = "phytium,usb2"; + reg = <0x00 0x31900000 0x00 0x80000 0x00 0x319b0000 0x00 0x10000>; + interrupts = <0x00 0x22 0x04>; + status = "disabled"; + dr_mode = "peripheral"; + }; + + usb2@32800000 { + compatible = "phytium,usb2"; + reg = <0x00 0x32800000 0x00 0x40000 0x00 0x32880000 0x00 0x40000>; + interrupts = <0x00 0x0e 0x04>; + status = "okay"; + dr_mode = "host"; + }; + + usb2@32840000 { + compatible = "phytium,usb2"; + reg = <0x00 0x32840000 0x00 0x40000 0x00 0x328c0000 0x00 0x40000>; + interrupts = <0x00 0x0f 0x04>; + status = "okay"; + dr_mode = "host"; + }; + + dc@32000000 { + compatible = "phytium,dc"; + reg = <0x00 0x32000000 0x00 0x8000>; + interrupts = <0x00 0x2c 0x04>; + status = "okay"; + pipe_mask = [01]; + edp_mask = [00]; + }; + + i2s_dp0@32009000 { + compatible = "phytium,i2s"; + reg = <0x00 0x32009000 0x00 0x1000 0x00 0x32008000 0x00 0x1000>; + interrupts = <0x00 0x2f 0x04>; + clocks = <0x0e>; + clock-names = "i2s_clk"; + dai-name = "phytium-i2s-dp0"; + status = "okay"; + }; + + i2s_dp1@3200B000 { + compatible = "phytium,i2s"; + reg = <0x00 0x3200b000 0x00 0x1000 0x00 0x3200a000 0x00 0x1000>; + interrupts = <0x00 0x30 0x04>; + clocks = <0x0e>; + clock-names = "i2s_clk"; + dai-name = "phytium-i2s-dp1"; + status = "disabled"; + }; + + pmdk_dp { + compatible = "phytium,pmdk-dp"; + status = "okay"; + num-dp = <0x01>; + dp-mask = [01]; + }; + + mailbox@32a00000 { + compatible = "phytium,mbox"; + reg = <0x00 0x32a00000 0x00 0x1000>; + interrupts = <0x00 0x16 0x04>; + #mbox-cells = <0x01>; + phandle = <0x02>; + }; + + rng@32a36000 { + compatible = "phytium,rng"; + reg = <0x00 0x32a36000 0x00 0x1000>; + status = "okay"; + }; + + sram@32a10000 { + compatible = "phytium,pe220x-sram-ns\0mmio-sram"; + reg = <0x00 0x32a10000 0x00 0x2000>; + #address-cells = <0x01>; + #size-cells = <0x01>; + ranges = <0x00 0x00 0x32a10000 0x2000>; + + scp-shmem@0 { + compatible = "arm,scmi-shmem"; + reg = <0x1000 0x400>; + }; + + scp-shmem@1 { + compatible = "arm,scmi-shmem"; + reg = <0x1400 0x400>; + phandle = <0x03>; + }; + }; + + gdma@32b34000 { + compatible = "phytium,gdma"; + dma-channels = <0x10>; + max-outstanding = <0x10>; + reg = <0x00 0x32b34000 0x00 0x1000>; + interrupts = <0x00 0xea 0x04>; + #dma-cells = <0x01>; + }; + + spinlock@32b36000 { + compatible = "phytium,hwspinlock"; + reg = <0x00 0x32b36000 0x00 0x1000>; + #hwlock-cells = <0x01>; + nr-locks = <0x20>; + status = "disabled"; + }; + + pcie@40000000 { + compatible = "pci-host-ecam-generic"; + device_type = "pci"; + #address-cells = <0x03>; + #size-cells = <0x02>; + #interrupt-cells = <0x01>; + reg = <0x00 0x40000000 0x00 0x10000000>; + msi-parent = <0x0f>; + bus-range = <0x00 0xff>; + interrupt-map-mask = <0x00 0x00 0x00 0x07>; + interrupt-map = <0x00 0x00 0x00 0x01 0x01 0x00 0x00 0x00 0x04 0x04 0x00 0x00 0x00 0x02 0x01 0x00 0x00 0x00 0x05 0x04 0x00 0x00 0x00 0x03 0x01 0x00 0x00 0x00 0x06 0x04 0x00 0x00 0x00 0x04 0x01 0x00 0x00 0x00 0x07 0x04>; + ranges = <0x1000000 0x00 0x00 0x00 0x50000000 0x00 0xf00000 0x2000000 0x00 0x58000000 0x00 0x58000000 0x00 0x28000000 0x3000000 0x10 0x00 0x10 0x00 0x10 0x00>; + iommu-map = <0x00 0x10 0x00 0x10000>; + status = "okay"; + }; + + edac@32b28000 { + compatible = "phytium,pe220x-edac"; + reg = <0x00 0x32b28000 0x00 0x1000 0x00 0x31400000 0x00 0x1000 0x00 0x31401000 0x00 0x1000>; + interrupts = <0x00 0x00 0x04 0x00 0x01 0x04>; + status = "disabled"; + }; + + hda@28006000 { + compatible = "phytium,hda"; + reg = <0x00 0x28006000 0x00 0x1000>; + interrupts = <0x00 0x4e 0x04>; + status = "disabled"; + }; + + i2s@28009000 { + compatible = "phytium,i2s"; + reg = <0x00 0x28009000 0x00 0x1000 0x00 0x28005000 0x00 0x1000>; + interrupts = <0x00 0x4d 0x04>; + clocks = <0x0e>; + clock-names = "i2s_clk"; + status = "okay"; + #sound-dai-cells = <0x00>; + dai-name = "phytium-i2s-lsd"; + phandle = <0x16>; + }; + + can@2800a000 { + compatible = "phytium,canfd"; + reg = <0x00 0x2800a000 0x00 0x1000>; + interrupts = <0x00 0x51 0x04>; + clocks = <0x11>; + clock-names = "can_clk"; + tx-fifo-depth = <0x40>; + rx-fifo-depth = <0x40>; + status = "okay"; + }; + + can@2800b000 { + compatible = "phytium,canfd"; + reg = <0x00 0x2800b000 0x00 0x1000>; + interrupts = <0x00 0x52 0x04>; + clocks = <0x11>; + clock-names = "can_clk"; + tx-fifo-depth = <0x40>; + rx-fifo-depth = <0x40>; + status = "okay"; + }; + + keypad@2807a000 { + compatible = "phytium,keypad"; + reg = <0x00 0x2807a000 0x00 0x1000>; + interrupts = <0x00 0xbd 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + usb3@31a08000 { + compatible = "phytium,pe220x-xhci"; + reg = <0x00 0x31a08000 0x00 0x18000>; + interrupts = <0x00 0x10 0x04>; + status = "okay"; + }; + + usb3@31a28000 { + compatible = "phytium,pe220x-xhci"; + reg = <0x00 0x31a28000 0x00 0x18000>; + interrupts = <0x00 0x11 0x04>; + status = "okay"; + }; + + sata@31a40000 { + compatible = "generic-ahci"; + reg = <0x00 0x31a40000 0x00 0x1000>; + interrupts = <0x00 0x2a 0x04>; + status = "disabled"; + }; + + sata@32014000 { + compatible = "generic-ahci"; + reg = <0x00 0x32014000 0x00 0x1000>; + interrupts = <0x00 0x2b 0x04>; + status = "disabled"; + }; + + ethernet@3200c000 { + compatible = "cdns,phytium-gem-1.0"; + reg = <0x00 0x3200c000 0x00 0x2000>; + interrupts = <0x00 0x37 0x04 0x00 0x38 0x04 0x00 0x39 0x04 0x00 0x3a 0x04 0x00 0x1c 0x04 0x00 0x1d 0x04 0x00 0x1e 0x04 0x00 0x1f 0x04>; + clock-names = "pclk\0hclk\0tx_clk\0tsu_clk"; + clocks = <0x12 0x13 0x13 0x12>; + magic-packet; + support-tsn; + status = "okay"; + phy-mode = "sgmii"; + use-mii; + }; + + ethernet@3200e000 { + compatible = "cdns,phytium-gem-1.0"; + reg = <0x00 0x3200e000 0x00 0x2000>; + interrupts = <0x00 0x3b 0x04 0x00 0x3c 0x04 0x00 0x3d 0x04 0x00 0x3e 0x04>; + clock-names = "pclk\0hclk\0tx_clk\0tsu_clk"; + clocks = <0x12 0x13 0x13 0x12>; + magic-packet; + status = "okay"; + phy-mode = "sgmii"; + use-mii; + }; + + ethernet@32010000 { + compatible = "cdns,phytium-gem-1.0"; + reg = <0x00 0x32010000 0x00 0x2000>; + interrupts = <0x00 0x40 0x04 0x00 0x41 0x04 0x00 0x42 0x04 0x00 0x43 0x04>; + clock-names = "pclk\0hclk\0tx_clk\0tsu_clk"; + clocks = <0x12 0x13 0x13 0x12>; + magic-packet; + status = "disabled"; + }; + + ethernet@32012000 { + compatible = "cdns,phytium-gem-1.0"; + reg = <0x00 0x32012000 0x00 0x2000>; + interrupts = <0x00 0x44 0x04 0x00 0x45 0x04 0x00 0x46 0x04 0x00 0x47 0x04>; + clock-names = "pclk\0hclk\0tx_clk\0tsu_clk"; + clocks = <0x12 0x13 0x13 0x12>; + magic-packet; + status = "disabled"; + }; + + vpu@32b00000 { + compatible = "phytium,vpu"; + reg = <0x00 0x32b00000 0x00 0x20000>; + interrupts = <0x00 0x0c 0x04>; + status = "okay"; + }; + + i2c@28026000 { + compatible = "phytium,i2c"; + reg = <0x00 0x28026000 0x00 0x1000>; + interrupts = <0x00 0x65 0x04>; + clocks = <0x0d>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "okay"; + }; + + i2c@28030000 { + compatible = "phytium,i2c"; + reg = <0x00 0x28030000 0x00 0x1000>; + interrupts = <0x00 0x6a 0x04>; + clocks = <0x0d>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "okay"; + + es8336@10 { + #sound-dai-cells = <0x00>; + compatible = "everest,es8336"; + reg = <0x10>; + phandle = <0x17>; + }; + }; + + uart@28014000 { + compatible = "arm,pl011\0arm,primecell"; + reg = <0x00 0x28014000 0x00 0x1000>; + interrupts = <0x00 0x5c 0x04>; + clocks = <0x0d 0x0d>; + clock-names = "uartclk\0apb_pclk"; + status = "okay"; + }; + + i2c@28016000 { + compatible = "phytium,i2c"; + reg = <0x00 0x28016000 0x00 0x1000>; + interrupts = <0x00 0x5d 0x04>; + clocks = <0x0d>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "okay"; + }; + + i2c@28024000 { + compatible = "phytium,i2c"; + reg = <0x00 0x28024000 0x00 0x1000>; + interrupts = <0x00 0x64 0x04>; + clocks = <0x0d>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "okay"; + }; + + uart@2802A000 { + compatible = "arm,pl011\0arm,primecell"; + reg = <0x00 0x2802a000 0x00 0x1000>; + interrupts = <0x00 0x67 0x04>; + clocks = <0x0d 0x0d>; + clock-names = "uartclk\0apb_pclk"; + status = "okay"; + }; + + uart@28032000 { + compatible = "arm,pl011\0arm,primecell"; + reg = <0x00 0x28032000 0x00 0x1000>; + interrupts = <0x00 0x6b 0x04>; + clocks = <0x0d 0x0d>; + clock-names = "uartclk\0apb_pclk"; + status = "okay"; + }; + }; + + chosen { + bootargs = "console=ttyAMA1,115200 earlycon=pl011,0x2800d000 root=/dev/mmcblk0p1 rootfstype=ext4 rootwait rw cma=256m ;"; + stdout-path = "serial1:115200n8"; + }; + + memory { + device_type = "memory"; + reg = <0x20 0x40000000 0x00 0x40000000>; + }; + + leds { + compatible = "gpio-leds"; + + sysled { + label = "sysled"; + gpios = <0x14 0x05 0x00>; + linux,default-trigger = "none"; + }; + }; + + sound { + compatible = "simple-audio-card"; + simple-audio-card,format = "i2s"; + simple-audio-card,name = "phytium,pe220x-i2s-audio"; + simple-audio-card,pin-switches = "mic-in"; + simple-audio-card,widgets = "Microphone\0mic-in\0Headphone\0Headphones"; + simple-audio-card,routing = "MIC2\0mic-in"; + simple-audio-card,hp-det-gpio = <0x15 0x0b 0x01>; + + simple-audio-card,cpu { + sound-dai = <0x16>; + }; + + simple-audio-card,codec { + sound-dai = <0x17>; + }; + }; +}; diff --git a/configs/vms/linux-aarch64-e2000_smp1.toml b/configs/vms/linux-aarch64-e2000_smp1.toml new file mode 100644 index 00000000..2e683f59 --- /dev/null +++ b/configs/vms/linux-aarch64-e2000_smp1.toml @@ -0,0 +1,113 @@ +# Vm base info configs +# +[base] +# Guest vm id. +id = 1 +# Guest vm name. +name = "linux" +# Virtualization type. +vm_type = 1 +# The number of virtual CPUs. +cpu_num = 1 +# The physical CPU ids. +phys_cpu_ids = [0x100] +# Guest vm physical cpu sets. +phys_cpu_sets = [8] + +# +# Vm kernel configs +# +[kernel] +# The entry point of the kernel image. +entry_point = 0x20_4008_0000 +# The location of image: "memory" | "fs". +# Load from file system. +image_location = "fs" +# The load address of the kernel image. +kernel_load_addr = 0x20_4008_0000 +## The file path of the kernel image. +kernel_path = "/guest/Image" +## The file path of the device tree blob (DTB). +dtb_path = "/guest/linux-aarch64-e2000_smp1.dtb" +dtb_load_addr = 0x20_4000_0000 +# Memory regions with format (`base_paddr`, `size`, `flags`, `map_type`). +# For `map_type`, 0 means `MAP_ALLOC`, 1 means `MAP_IDENTICAL`. +memory_regions = [ + # [0x20_4000_0000, 0x4000_0000, 0x7, 1], # System RAM MAP_IDENTICAL +] + +# +# Device specifications +# +[devices] +# Emu_devices. +# Name Base-Ipa Ipa_len Alloc-Irq Emu-Type EmuConfig. +emu_devices = [] + +# Pass-through devices. +# Name Base-Ipa Base-Pa Length Alloc-Irq. +passthrough_devices = [ + [ + "QSPI", + 0x0000_0000, + 0x0000_0000, + 0x1000_0000, + 0x1, + ], + [ + "LocalBus", + 0x1000_0000, + 0x1000_0000, + 0x1000_0000, + 0x1, + ], + [ + "low speed peripherals", + 0x2800_0000, + 0x2800_0000, + 0x0800_0000, + 0x1, + ], + [ + "other peripherals", + 0x3000_0000, + 0x3000_0000, + 0x0800_0000, + 0x1, + ], + [ + "IACC", + 0x3800_0000, + 0x3800_0000, + 0x0800_0000, + 0x1, + ], + [ + "PCIE", + 0x4000_0000, + 0x4000_0000, + 0x4000_0000, + 0x1, + ], + [ + "QSPI high address", + 0x01_0000_0000, + 0x01_0000_0000, + 0x8000_0000, + 0x1, + ], + [ + "LocalBus high address", + 0x01_8000_0000, + 0x01_8000_0000, + 0x8000_0000, + 0x1, + ], + [ + "PCIe MEM64", + 0x10_0000_0000, + 0x10_0000_0000, + 0x01_0000_0000, + 0x1, + ], +] \ No newline at end of file diff --git a/configs/vms/linux-aarch64-e2000_smp2.dts b/configs/vms/linux-aarch64-e2000_smp2.dts new file mode 100644 index 00000000..0d3b86b4 --- /dev/null +++ b/configs/vms/linux-aarch64-e2000_smp2.dts @@ -0,0 +1,1302 @@ +/dts-v1/; + +/memreserve/ 0x0000000080000000 0x0000000000010000; +/ { + compatible = "phytium,pe2204"; + interrupt-parent = <0x01>; + #address-cells = <0x02>; + #size-cells = <0x02>; + model = "Phytium Pi Board"; + + // memory@01 { + // device_type = "memory"; + // reg = <0x20 0x00000000 0x00 0x40000000>; + // numa-node-id = <0x00>; + // }; + + aliases { + serial0 = "/soc/uart@2800c000"; + serial1 = "/soc/uart@2800d000"; + serial2 = "/soc/uart@2800e000"; + serial3 = "/soc/uart@2800f000"; + ethernet0 = "/soc/ethernet@3200c000"; + ethernet1 = "/soc/ethernet@3200e000"; + ethernet2 = "/soc/ethernet@32010000"; + ethernet3 = "/soc/ethernet@32012000"; + serial4 = "/soc/uart@28014000"; + serial5 = "/soc/uart@2802A000"; + serial6 = "/soc/uart@28032000"; + }; + + psci { + compatible = "arm,psci-1.0"; + method = "smc"; + cpu_suspend = <0xc4000001>; + cpu_off = <0x84000002>; + cpu_on = <0xc4000003>; + sys_poweroff = <0x84000008>; + sys_reset = <0x84000009>; + }; + + firmware { + + scmi { + compatible = "arm,scmi"; + mboxes = <0x02 0x00>; + mbox-names = "tx"; + shmem = <0x03>; + #address-cells = <0x01>; + #size-cells = <0x00>; + + protocol@13 { + reg = <0x13>; + #clock-cells = <0x01>; + phandle = <0x09>; + }; + + protocol@15 { + reg = <0x15>; + #thermal-sensor-cells = <0x01>; + phandle = <0x04>; + }; + }; + + optee { + compatible = "linaro,optee-tz"; + method = "smc"; + }; + }; + + thermal-zones { + + sensor0 { + polling-delay-passive = <0x64>; + polling-delay = <0x3e8>; + thermal-sensors = <0x04 0x00>; + }; + + sensor1 { + polling-delay-passive = <0x64>; + polling-delay = <0x3e8>; + thermal-sensors = <0x04 0x01>; + }; + }; + + cpus { + #address-cells = <0x02>; + #size-cells = <0x00>; + + cpu-map { + + cluster0 { + + core0 { + cpu = <0x05>; + }; + }; + + // cluster1 { + + // core0 { + // cpu = <0x06>; + // }; + // }; + + cluster2 { + + core0 { + cpu = <0x07>; + }; + + // core1 { + // cpu = <0x08>; + // }; + }; + }; + + cpu@0 { + device_type = "cpu"; + compatible = "phytium,ftc310\0arm,armv8"; + reg = <0x00 0x200>; + enable-method = "psci"; + clocks = <0x09 0x02>; + capacity-dmips-mhz = <0xb22>; + phandle = <0x07>; + }; + + // cpu@1 { + // device_type = "cpu"; + // compatible = "phytium,ftc310\0arm,armv8"; + // reg = <0x00 0x201>; + // enable-method = "psci"; + // clocks = <0x09 0x02>; + // capacity-dmips-mhz = <0xb22>; + // phandle = <0x08>; + // }; + + cpu@100 { + device_type = "cpu"; + compatible = "phytium,ftc664\0arm,armv8"; + reg = <0x00 0x00>; + enable-method = "psci"; + clocks = <0x09 0x00>; + capacity-dmips-mhz = <0x161c>; + phandle = <0x05>; + }; + + // cpu@101 { + // device_type = "cpu"; + // compatible = "phytium,ftc664\0arm,armv8"; + // reg = <0x00 0x100>; + // enable-method = "psci"; + // clocks = <0x09 0x01>; + // capacity-dmips-mhz = <0x161c>; + // phandle = <0x06>; + // }; + }; + + interrupt-controller@30800000 { + compatible = "arm,gic-v3"; + #interrupt-cells = <0x03>; + #address-cells = <0x02>; + #size-cells = <0x02>; + ranges; + interrupt-controller; + reg = <0x00 0x30800000 0x00 0x20000 0x00 0x30880000 0x00 0x80000 0x00 0x30840000 0x00 0x10000 0x00 0x30850000 0x00 0x10000 0x00 0x30860000 0x00 0x10000>; + interrupts = <0x01 0x09 0x08>; + phandle = <0x01>; + + gic-its@30820000 { + compatible = "arm,gic-v3-its"; + msi-controller; + reg = <0x00 0x30820000 0x00 0x20000>; + phandle = <0x0f>; + }; + }; + + pmu { + compatible = "arm,armv8-pmuv3"; + interrupts = <0x01 0x07 0x08>; + }; + + timer { + compatible = "arm,armv8-timer"; + interrupts = <0x01 0x0d 0x08 0x01 0x0e 0x08 0x01 0x0b 0x08 0x01 0x0a 0x08>; + clock-frequency = <0x2faf080>; + }; + + clocks { + #address-cells = <0x02>; + #size-cells = <0x02>; + ranges; + + clk48mhz { + compatible = "fixed-clock"; + #clock-cells = <0x00>; + clock-frequency = <0x2dc6c00>; + phandle = <0x13>; + }; + + clk50mhz { + compatible = "fixed-clock"; + #clock-cells = <0x00>; + clock-frequency = <0x2faf080>; + phandle = <0x0d>; + }; + + clk100mhz { + compatible = "fixed-clock"; + #clock-cells = <0x00>; + clock-frequency = <0x5f5e100>; + phandle = <0x0c>; + }; + + clk200mhz { + compatible = "fixed-clock"; + #clock-cells = <0x00>; + clock-frequency = <0xbebc200>; + phandle = <0x11>; + }; + + clk250mhz { + compatible = "fixed-clock"; + #clock-cells = <0x00>; + clock-frequency = <0xee6b280>; + phandle = <0x12>; + }; + + clk300mhz { + compatible = "fixed-clock"; + #clock-cells = <0x00>; + clock-frequency = <0x11e1a300>; + phandle = <0x0b>; + }; + + clk600mhz { + compatible = "fixed-clock"; + #clock-cells = <0x00>; + clock-frequency = <0x23c34600>; + phandle = <0x0e>; + }; + + clk1200mhz { + compatible = "fixed-clock"; + #clock-cells = <0x00>; + clock-frequency = <0x47868c00>; + phandle = <0x0a>; + }; + }; + + iommu@30000000 { + compatible = "arm,smmu-v3"; + reg = <0x00 0x30000000 0x00 0x800000>; + interrupts = <0x00 0xf0 0x01 0x00 0xef 0x01 0x00 0xec 0x01 0x00 0xf2 0x01>; + interrupt-names = "eventq\0priq\0cmdq-sync\0gerror"; + dma-coherent; + #iommu-cells = <0x01>; + phandle = <0x10>; + }; + + soc { + compatible = "simple-bus"; + #address-cells = <0x02>; + #size-cells = <0x02>; + dma-coherent; + ranges; + + mmc@28000000 { + compatible = "phytium,mci"; + reg = <0x00 0x28000000 0x00 0x1000>; + interrupts = <0x00 0x48 0x04>; + clocks = <0x0a>; + clock-names = "phytium_mci_clk"; + status = "okay"; + bus-width = <0x04>; + max-frequency = <0x2faf080>; + cap-sdio-irq; + cap-sd-highspeed; + no-mmc; + }; + + mmc@28001000 { + compatible = "phytium,mci"; + reg = <0x00 0x28001000 0x00 0x1000>; + interrupts = <0x00 0x49 0x04>; + clocks = <0x0a>; + clock-names = "phytium_mci_clk"; + status = "okay"; + bus-width = <0x04>; + max-frequency = <0x2faf080>; + cap-sdio-irq; + cap-sd-highspeed; + no-mmc; + no-sd; + non-removable; + }; + + nand@28002000 { + compatible = "phytium,nfc"; + reg = <0x00 0x28002000 0x00 0x1000>; + interrupts = <0x00 0x4a 0x04>; + status = "disabled"; + }; + + ddma@28003000 { + compatible = "phytium,ddma"; + reg = <0x00 0x28003000 0x00 0x1000>; + interrupts = <0x00 0x4b 0x04>; + #dma-cells = <0x02>; + dma-channels = <0x08>; + }; + + ddma@28004000 { + compatible = "phytium,ddma"; + reg = <0x00 0x28004000 0x00 0x1000>; + interrupts = <0x00 0x4c 0x04>; + #dma-cells = <0x02>; + dma-channels = <0x08>; + }; + + spi@28008000 { + compatible = "phytium,qspi-nor"; + reg = <0x00 0x28008000 0x00 0x1000 0x00 0x00 0x00 0xfffffff>; + reg-names = "qspi\0qspi_mm"; + clocks = <0x0b>; + status = "okay"; + #address-cells = <0x01>; + #size-cells = <0x00>; + + flash@0 { + compatible = "jedec,spi-nor"; + reg = <0x00>; + spi-rx-bus-width = <0x01>; + spi-max-frequency = <0x1312d00>; + status = "okay"; + }; + }; + + uart@2800c000 { + compatible = "arm,pl011\0arm,primecell"; + reg = <0x00 0x2800c000 0x00 0x1000>; + interrupts = <0x00 0x53 0x04>; + clocks = <0x0c 0x0c>; + clock-names = "uartclk\0apb_pclk"; + status = "okay"; + }; + + uart@2800d000 { + compatible = "arm,pl011\0arm,primecell"; + reg = <0x00 0x2800d000 0x00 0x1000>; + interrupts = <0x00 0x54 0x04>; + clocks = <0x0c 0x0c>; + clock-names = "uartclk\0apb_pclk"; + status = "okay"; + }; + + uart@2800e000 { + compatible = "arm,pl011\0arm,primecell"; + reg = <0x00 0x2800e000 0x00 0x1000>; + interrupts = <0x00 0x55 0x04>; + clocks = <0x0c 0x0c>; + clock-names = "uartclk\0apb_pclk"; + status = "okay"; + }; + + uart@2800f000 { + compatible = "arm,pl011\0arm,primecell"; + reg = <0x00 0x2800f000 0x00 0x1000>; + interrupts = <0x00 0x56 0x04>; + clocks = <0x0c 0x0c>; + clock-names = "uartclk\0apb_pclk"; + status = "okay"; + }; + + lpc@28010000 { + compatible = "simple-mfd\0syscon"; + reg = <0x00 0x28010000 0x00 0x1000>; + reg-io-width = <0x04>; + #address-cells = <0x01>; + #size-cells = <0x01>; + ranges = <0x00 0x00 0x28010000 0x1000>; + + kcs@24 { + compatible = "phytium,kcs-bmc"; + reg = <0x24 0x01 0x30 0x01 0x3c 0x01>; + interrupts = <0x00 0x58 0x04>; + status = "disabled"; + }; + + kcs@28 { + compatible = "phytium,kcs-bmc"; + reg = <0x28 0x01 0x34 0x01 0x40 0x01>; + interrupts = <0x00 0x58 0x04>; + status = "disabled"; + }; + + kcs@2c { + compatible = "phytium,kcs-bmc"; + reg = <0x2c 0x01 0x38 0x01 0x44 0x01>; + interrupts = <0x00 0x58 0x04>; + status = "disabled"; + }; + + kcs@8c { + compatible = "phytium,kcs-bmc"; + reg = <0x8c 0x01 0x90 0x01 0x94 0x01>; + interrupts = <0x00 0x58 0x04>; + status = "disabled"; + }; + + bt@48 { + compatible = "phytium,bt-bmc"; + reg = <0x48 0x20>; + interrupts = <0x00 0x58 0x04>; + status = "disabled"; + }; + }; + + gpio@28034000 { + compatible = "phytium,gpio"; + reg = <0x00 0x28034000 0x00 0x1000>; + interrupts = <0x00 0x6c 0x04 0x00 0x6d 0x04 0x00 0x6e 0x04 0x00 0x6f 0x04 0x00 0x70 0x04 0x00 0x71 0x04 0x00 0x72 0x04 0x00 0x73 0x04 0x00 0x74 0x04 0x00 0x75 0x04 0x00 0x76 0x04 0x00 0x77 0x04 0x00 0x78 0x04 0x00 0x79 0x04 0x00 0x7a 0x04 0x00 0x7b 0x04>; + gpio-controller; + #gpio-cells = <0x02>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "okay"; + + porta { + compatible = "phytium,gpio-port"; + reg = <0x00>; + ngpios = <0x10>; + }; + }; + + gpio@28035000 { + compatible = "phytium,gpio"; + reg = <0x00 0x28035000 0x00 0x1000>; + interrupts = <0x00 0x7c 0x04 0x00 0x7d 0x04 0x00 0x7e 0x04 0x00 0x7f 0x04 0x00 0x80 0x04 0x00 0x81 0x04 0x00 0x82 0x04 0x00 0x83 0x04 0x00 0x84 0x04 0x00 0x85 0x04 0x00 0x86 0x04 0x00 0x87 0x04 0x00 0x88 0x04 0x00 0x89 0x04 0x00 0x8a 0x04 0x00 0x8b 0x04>; + gpio-controller; + #gpio-cells = <0x02>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "okay"; + phandle = <0x14>; + + porta { + compatible = "phytium,gpio-port"; + reg = <0x00>; + ngpios = <0x10>; + }; + }; + + gpio@28036000 { + compatible = "phytium,gpio"; + reg = <0x00 0x28036000 0x00 0x1000>; + interrupts = <0x00 0x8c 0x04 0x00 0x8d 0x04 0x00 0x8e 0x04 0x00 0x8f 0x04 0x00 0x90 0x04 0x00 0x91 0x04 0x00 0x92 0x04 0x00 0x93 0x04 0x00 0x94 0x04 0x00 0x95 0x04 0x00 0x96 0x04 0x00 0x97 0x04 0x00 0x98 0x04 0x00 0x99 0x04 0x00 0x9a 0x04 0x00 0x9b 0x04>; + gpio-controller; + #gpio-cells = <0x02>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "okay"; + phandle = <0x15>; + + porta { + compatible = "phytium,gpio-port"; + reg = <0x00>; + ngpios = <0x10>; + }; + }; + + gpio@28037000 { + compatible = "phytium,gpio"; + reg = <0x00 0x28037000 0x00 0x1000>; + interrupts = <0x00 0x9c 0x04>; + gpio-controller; + #gpio-cells = <0x02>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "okay"; + + porta { + compatible = "phytium,gpio-port"; + reg = <0x00>; + ngpios = <0x10>; + }; + }; + + gpio@28038000 { + compatible = "phytium,gpio"; + reg = <0x00 0x28038000 0x00 0x1000>; + interrupts = <0x00 0x9d 0x04>; + gpio-controller; + #gpio-cells = <0x02>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "okay"; + + porta { + compatible = "phytium,gpio-port"; + reg = <0x00>; + ngpios = <0x10>; + }; + }; + + gpio@28039000 { + compatible = "phytium,gpio"; + reg = <0x00 0x28039000 0x00 0x1000>; + interrupts = <0x00 0x9e 0x04>; + gpio-controller; + #gpio-cells = <0x02>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "okay"; + + porta { + compatible = "phytium,gpio-port"; + reg = <0x00>; + ngpios = <0x10>; + }; + }; + + spi@2803a000 { + compatible = "phytium,spi"; + reg = <0x00 0x2803a000 0x00 0x1000>; + interrupts = <0x00 0x9f 0x04>; + clocks = <0x0d>; + num-cs = <0x04>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "okay"; + global-cs = <0x01>; + + spidev@0 { + compatible = "spidev"; + reg = <0x00>; + spi-max-frequency = <0x2faf080>; + status = "disabled"; + }; + }; + + spi@2803b000 { + compatible = "phytium,spi"; + reg = <0x00 0x2803b000 0x00 0x1000>; + interrupts = <0x00 0xa0 0x04>; + clocks = <0x0d>; + num-cs = <0x04>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "disabled"; + }; + + spi@2803c000 { + compatible = "phytium,spi"; + reg = <0x00 0x2803c000 0x00 0x1000>; + interrupts = <0x00 0xa1 0x04>; + clocks = <0x0d>; + num-cs = <0x04>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "disabled"; + }; + + spi@2803d000 { + compatible = "phytium,spi"; + reg = <0x00 0x2803d000 0x00 0x1000>; + interrupts = <0x00 0xa2 0x04>; + clocks = <0x0d>; + num-cs = <0x04>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "disabled"; + }; + + watchdog@28040000 { + compatible = "arm,sbsa-gwdt"; + reg = <0x00 0x28041000 0x00 0x1000 0x00 0x28040000 0x00 0x1000>; + interrupts = <0x00 0xa4 0x04>; + timeout-sec = <0x1e>; + status = "okay"; + }; + + watchdog@28042000 { + compatible = "arm,sbsa-gwdt"; + reg = <0x00 0x28043000 0x00 0x1000 0x00 0x28042000 0x00 0x1000>; + interrupts = <0x00 0xa5 0x04>; + timeout-sec = <0x1e>; + status = "okay"; + }; + + pwm@2804a000 { + compatible = "phytium,pwm"; + reg = <0x00 0x2804a000 0x00 0x1000>; + interrupts = <0x00 0xad 0x04>; + clocks = <0x0d>; + status = "okay"; + phytium,db = <0x00 0x00 0x64 0x3e8 0x3e8 0x00>; + }; + + pwm@2804b000 { + compatible = "phytium,pwm"; + reg = <0x00 0x2804b000 0x00 0x1000>; + interrupts = <0x00 0xae 0x04>; + clocks = <0x0d>; + status = "okay"; + phytium,db = <0x00 0x00 0x64 0x3e8 0x3e8 0x00>; + }; + + tacho@28054000 { + compatible = "phytium,tacho"; + reg = <0x00 0x28054000 0x00 0x1000>; + interrupts = <0x00 0xc2 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@28055000 { + compatible = "phytium,tacho"; + reg = <0x00 0x28055000 0x00 0x1000>; + interrupts = <0x00 0xc3 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@28056000 { + compatible = "phytium,tacho"; + reg = <0x00 0x28056000 0x00 0x1000>; + interrupts = <0x00 0xc4 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@28057000 { + compatible = "phytium,tacho"; + reg = <0x00 0x28057000 0x00 0x1000>; + interrupts = <0x00 0xc5 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@28058000 { + compatible = "phytium,tacho"; + reg = <0x00 0x28058000 0x00 0x1000>; + interrupts = <0x00 0xc6 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@28059000 { + compatible = "phytium,tacho"; + reg = <0x00 0x28059000 0x00 0x1000>; + interrupts = <0x00 0xc7 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@2805a000 { + compatible = "phytium,tacho"; + reg = <0x00 0x2805a000 0x00 0x1000>; + interrupts = <0x00 0xc8 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@2805b000 { + compatible = "phytium,tacho"; + reg = <0x00 0x2805b000 0x00 0x1000>; + interrupts = <0x00 0xc9 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@2805c000 { + compatible = "phytium,tacho"; + reg = <0x00 0x2805c000 0x00 0x1000>; + interrupts = <0x00 0xca 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@2805d000 { + compatible = "phytium,tacho"; + reg = <0x00 0x2805d000 0x00 0x1000>; + interrupts = <0x00 0xcb 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@2805e000 { + compatible = "phytium,tacho"; + reg = <0x00 0x2805e000 0x00 0x1000>; + interrupts = <0x00 0xcc 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@2805f000 { + compatible = "phytium,tacho"; + reg = <0x00 0x2805f000 0x00 0x1000>; + interrupts = <0x00 0xcd 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@28060000 { + compatible = "phytium,tacho"; + reg = <0x00 0x28060000 0x00 0x1000>; + interrupts = <0x00 0xce 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@28061000 { + compatible = "phytium,tacho"; + reg = <0x00 0x28061000 0x00 0x1000>; + interrupts = <0x00 0xcf 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@28062000 { + compatible = "phytium,tacho"; + reg = <0x00 0x28062000 0x00 0x1000>; + interrupts = <0x00 0xd0 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@28063000 { + compatible = "phytium,tacho"; + reg = <0x00 0x28063000 0x00 0x1000>; + interrupts = <0x00 0xd1 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@28064000 { + compatible = "phytium,tacho"; + reg = <0x00 0x28064000 0x00 0x1000>; + interrupts = <0x00 0xd2 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@28065000 { + compatible = "phytium,tacho"; + reg = <0x00 0x28065000 0x00 0x1000>; + interrupts = <0x00 0xd3 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@28066000 { + compatible = "phytium,tacho"; + reg = <0x00 0x28066000 0x00 0x1000>; + interrupts = <0x00 0xd4 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@28067000 { + compatible = "phytium,tacho"; + reg = <0x00 0x28067000 0x00 0x1000>; + interrupts = <0x00 0xd5 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@28068000 { + compatible = "phytium,tacho"; + reg = <0x00 0x28068000 0x00 0x1000>; + interrupts = <0x00 0xd6 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@28069000 { + compatible = "phytium,tacho"; + reg = <0x00 0x28069000 0x00 0x1000>; + interrupts = <0x00 0xd7 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@2806a000 { + compatible = "phytium,tacho"; + reg = <0x00 0x2806a000 0x00 0x1000>; + interrupts = <0x00 0xd8 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@2806b000 { + compatible = "phytium,tacho"; + reg = <0x00 0x2806b000 0x00 0x1000>; + interrupts = <0x00 0xd9 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@2806c000 { + compatible = "phytium,tacho"; + reg = <0x00 0x2806c000 0x00 0x1000>; + interrupts = <0x00 0xda 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@2806d000 { + compatible = "phytium,tacho"; + reg = <0x00 0x2806d000 0x00 0x1000>; + interrupts = <0x00 0xdb 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@2806e000 { + compatible = "phytium,tacho"; + reg = <0x00 0x2806e000 0x00 0x1000>; + interrupts = <0x00 0xdc 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@2806f000 { + compatible = "phytium,tacho"; + reg = <0x00 0x2806f000 0x00 0x1000>; + interrupts = <0x00 0xdd 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@28070000 { + compatible = "phytium,tacho"; + reg = <0x00 0x28070000 0x00 0x1000>; + interrupts = <0x00 0xde 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@28071000 { + compatible = "phytium,tacho"; + reg = <0x00 0x28071000 0x00 0x1000>; + interrupts = <0x00 0xdf 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@28072000 { + compatible = "phytium,tacho"; + reg = <0x00 0x28072000 0x00 0x1000>; + interrupts = <0x00 0xe0 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@28073000 { + compatible = "phytium,tacho"; + reg = <0x00 0x28073000 0x00 0x1000>; + interrupts = <0x00 0xe1 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@28074000 { + compatible = "phytium,tacho"; + reg = <0x00 0x28074000 0x00 0x1000>; + interrupts = <0x00 0xe2 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@28075000 { + compatible = "phytium,tacho"; + reg = <0x00 0x28075000 0x00 0x1000>; + interrupts = <0x00 0xe3 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@28076000 { + compatible = "phytium,tacho"; + reg = <0x00 0x28076000 0x00 0x1000>; + interrupts = <0x00 0xe4 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@28077000 { + compatible = "phytium,tacho"; + reg = <0x00 0x28077000 0x00 0x1000>; + interrupts = <0x00 0xe5 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@28078000 { + compatible = "phytium,tacho"; + reg = <0x00 0x28078000 0x00 0x1000>; + interrupts = <0x00 0xe6 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@28079000 { + compatible = "phytium,tacho"; + reg = <0x00 0x28079000 0x00 0x1000>; + interrupts = <0x00 0xe7 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + usb2@31800000 { + compatible = "phytium,usb2"; + reg = <0x00 0x31800000 0x00 0x80000 0x00 0x31990000 0x00 0x10000>; + interrupts = <0x00 0x20 0x04>; + status = "okay"; + dr_mode = "host"; + }; + + usb2@31880000 { + compatible = "phytium,usb2"; + reg = <0x00 0x31880000 0x00 0x80000 0x00 0x319a0000 0x00 0x10000>; + interrupts = <0x00 0x21 0x04>; + status = "disabled"; + dr_mode = "peripheral"; + }; + + usb2@31900000 { + compatible = "phytium,usb2"; + reg = <0x00 0x31900000 0x00 0x80000 0x00 0x319b0000 0x00 0x10000>; + interrupts = <0x00 0x22 0x04>; + status = "disabled"; + dr_mode = "peripheral"; + }; + + usb2@32800000 { + compatible = "phytium,usb2"; + reg = <0x00 0x32800000 0x00 0x40000 0x00 0x32880000 0x00 0x40000>; + interrupts = <0x00 0x0e 0x04>; + status = "okay"; + dr_mode = "host"; + }; + + usb2@32840000 { + compatible = "phytium,usb2"; + reg = <0x00 0x32840000 0x00 0x40000 0x00 0x328c0000 0x00 0x40000>; + interrupts = <0x00 0x0f 0x04>; + status = "okay"; + dr_mode = "host"; + }; + + dc@32000000 { + compatible = "phytium,dc"; + reg = <0x00 0x32000000 0x00 0x8000>; + interrupts = <0x00 0x2c 0x04>; + status = "okay"; + pipe_mask = [01]; + edp_mask = [00]; + }; + + i2s_dp0@32009000 { + compatible = "phytium,i2s"; + reg = <0x00 0x32009000 0x00 0x1000 0x00 0x32008000 0x00 0x1000>; + interrupts = <0x00 0x2f 0x04>; + clocks = <0x0e>; + clock-names = "i2s_clk"; + dai-name = "phytium-i2s-dp0"; + status = "okay"; + }; + + i2s_dp1@3200B000 { + compatible = "phytium,i2s"; + reg = <0x00 0x3200b000 0x00 0x1000 0x00 0x3200a000 0x00 0x1000>; + interrupts = <0x00 0x30 0x04>; + clocks = <0x0e>; + clock-names = "i2s_clk"; + dai-name = "phytium-i2s-dp1"; + status = "disabled"; + }; + + pmdk_dp { + compatible = "phytium,pmdk-dp"; + status = "okay"; + num-dp = <0x01>; + dp-mask = [01]; + }; + + mailbox@32a00000 { + compatible = "phytium,mbox"; + reg = <0x00 0x32a00000 0x00 0x1000>; + interrupts = <0x00 0x16 0x04>; + #mbox-cells = <0x01>; + phandle = <0x02>; + }; + + rng@32a36000 { + compatible = "phytium,rng"; + reg = <0x00 0x32a36000 0x00 0x1000>; + status = "okay"; + }; + + sram@32a10000 { + compatible = "phytium,pe220x-sram-ns\0mmio-sram"; + reg = <0x00 0x32a10000 0x00 0x2000>; + #address-cells = <0x01>; + #size-cells = <0x01>; + ranges = <0x00 0x00 0x32a10000 0x2000>; + + scp-shmem@0 { + compatible = "arm,scmi-shmem"; + reg = <0x1000 0x400>; + }; + + scp-shmem@1 { + compatible = "arm,scmi-shmem"; + reg = <0x1400 0x400>; + phandle = <0x03>; + }; + }; + + gdma@32b34000 { + compatible = "phytium,gdma"; + dma-channels = <0x10>; + max-outstanding = <0x10>; + reg = <0x00 0x32b34000 0x00 0x1000>; + interrupts = <0x00 0xea 0x04>; + #dma-cells = <0x01>; + }; + + spinlock@32b36000 { + compatible = "phytium,hwspinlock"; + reg = <0x00 0x32b36000 0x00 0x1000>; + #hwlock-cells = <0x01>; + nr-locks = <0x20>; + status = "disabled"; + }; + + pcie@40000000 { + compatible = "pci-host-ecam-generic"; + device_type = "pci"; + #address-cells = <0x03>; + #size-cells = <0x02>; + #interrupt-cells = <0x01>; + reg = <0x00 0x40000000 0x00 0x10000000>; + msi-parent = <0x0f>; + bus-range = <0x00 0xff>; + interrupt-map-mask = <0x00 0x00 0x00 0x07>; + interrupt-map = <0x00 0x00 0x00 0x01 0x01 0x00 0x00 0x00 0x04 0x04 0x00 0x00 0x00 0x02 0x01 0x00 0x00 0x00 0x05 0x04 0x00 0x00 0x00 0x03 0x01 0x00 0x00 0x00 0x06 0x04 0x00 0x00 0x00 0x04 0x01 0x00 0x00 0x00 0x07 0x04>; + ranges = <0x1000000 0x00 0x00 0x00 0x50000000 0x00 0xf00000 0x2000000 0x00 0x58000000 0x00 0x58000000 0x00 0x28000000 0x3000000 0x10 0x00 0x10 0x00 0x10 0x00>; + iommu-map = <0x00 0x10 0x00 0x10000>; + status = "okay"; + }; + + edac@32b28000 { + compatible = "phytium,pe220x-edac"; + reg = <0x00 0x32b28000 0x00 0x1000 0x00 0x31400000 0x00 0x1000 0x00 0x31401000 0x00 0x1000>; + interrupts = <0x00 0x00 0x04 0x00 0x01 0x04>; + status = "disabled"; + }; + + hda@28006000 { + compatible = "phytium,hda"; + reg = <0x00 0x28006000 0x00 0x1000>; + interrupts = <0x00 0x4e 0x04>; + status = "disabled"; + }; + + i2s@28009000 { + compatible = "phytium,i2s"; + reg = <0x00 0x28009000 0x00 0x1000 0x00 0x28005000 0x00 0x1000>; + interrupts = <0x00 0x4d 0x04>; + clocks = <0x0e>; + clock-names = "i2s_clk"; + status = "okay"; + #sound-dai-cells = <0x00>; + dai-name = "phytium-i2s-lsd"; + phandle = <0x16>; + }; + + can@2800a000 { + compatible = "phytium,canfd"; + reg = <0x00 0x2800a000 0x00 0x1000>; + interrupts = <0x00 0x51 0x04>; + clocks = <0x11>; + clock-names = "can_clk"; + tx-fifo-depth = <0x40>; + rx-fifo-depth = <0x40>; + status = "okay"; + }; + + can@2800b000 { + compatible = "phytium,canfd"; + reg = <0x00 0x2800b000 0x00 0x1000>; + interrupts = <0x00 0x52 0x04>; + clocks = <0x11>; + clock-names = "can_clk"; + tx-fifo-depth = <0x40>; + rx-fifo-depth = <0x40>; + status = "okay"; + }; + + keypad@2807a000 { + compatible = "phytium,keypad"; + reg = <0x00 0x2807a000 0x00 0x1000>; + interrupts = <0x00 0xbd 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + usb3@31a08000 { + compatible = "phytium,pe220x-xhci"; + reg = <0x00 0x31a08000 0x00 0x18000>; + interrupts = <0x00 0x10 0x04>; + status = "okay"; + }; + + usb3@31a28000 { + compatible = "phytium,pe220x-xhci"; + reg = <0x00 0x31a28000 0x00 0x18000>; + interrupts = <0x00 0x11 0x04>; + status = "okay"; + }; + + sata@31a40000 { + compatible = "generic-ahci"; + reg = <0x00 0x31a40000 0x00 0x1000>; + interrupts = <0x00 0x2a 0x04>; + status = "disabled"; + }; + + sata@32014000 { + compatible = "generic-ahci"; + reg = <0x00 0x32014000 0x00 0x1000>; + interrupts = <0x00 0x2b 0x04>; + status = "disabled"; + }; + + ethernet@3200c000 { + compatible = "cdns,phytium-gem-1.0"; + reg = <0x00 0x3200c000 0x00 0x2000>; + interrupts = <0x00 0x37 0x04 0x00 0x38 0x04 0x00 0x39 0x04 0x00 0x3a 0x04 0x00 0x1c 0x04 0x00 0x1d 0x04 0x00 0x1e 0x04 0x00 0x1f 0x04>; + clock-names = "pclk\0hclk\0tx_clk\0tsu_clk"; + clocks = <0x12 0x13 0x13 0x12>; + magic-packet; + support-tsn; + status = "okay"; + phy-mode = "sgmii"; + use-mii; + }; + + ethernet@3200e000 { + compatible = "cdns,phytium-gem-1.0"; + reg = <0x00 0x3200e000 0x00 0x2000>; + interrupts = <0x00 0x3b 0x04 0x00 0x3c 0x04 0x00 0x3d 0x04 0x00 0x3e 0x04>; + clock-names = "pclk\0hclk\0tx_clk\0tsu_clk"; + clocks = <0x12 0x13 0x13 0x12>; + magic-packet; + status = "okay"; + phy-mode = "sgmii"; + use-mii; + }; + + ethernet@32010000 { + compatible = "cdns,phytium-gem-1.0"; + reg = <0x00 0x32010000 0x00 0x2000>; + interrupts = <0x00 0x40 0x04 0x00 0x41 0x04 0x00 0x42 0x04 0x00 0x43 0x04>; + clock-names = "pclk\0hclk\0tx_clk\0tsu_clk"; + clocks = <0x12 0x13 0x13 0x12>; + magic-packet; + status = "disabled"; + }; + + ethernet@32012000 { + compatible = "cdns,phytium-gem-1.0"; + reg = <0x00 0x32012000 0x00 0x2000>; + interrupts = <0x00 0x44 0x04 0x00 0x45 0x04 0x00 0x46 0x04 0x00 0x47 0x04>; + clock-names = "pclk\0hclk\0tx_clk\0tsu_clk"; + clocks = <0x12 0x13 0x13 0x12>; + magic-packet; + status = "disabled"; + }; + + vpu@32b00000 { + compatible = "phytium,vpu"; + reg = <0x00 0x32b00000 0x00 0x20000>; + interrupts = <0x00 0x0c 0x04>; + status = "okay"; + }; + + i2c@28026000 { + compatible = "phytium,i2c"; + reg = <0x00 0x28026000 0x00 0x1000>; + interrupts = <0x00 0x65 0x04>; + clocks = <0x0d>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "okay"; + }; + + i2c@28030000 { + compatible = "phytium,i2c"; + reg = <0x00 0x28030000 0x00 0x1000>; + interrupts = <0x00 0x6a 0x04>; + clocks = <0x0d>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "okay"; + + es8336@10 { + #sound-dai-cells = <0x00>; + compatible = "everest,es8336"; + reg = <0x10>; + phandle = <0x17>; + }; + }; + + uart@28014000 { + compatible = "arm,pl011\0arm,primecell"; + reg = <0x00 0x28014000 0x00 0x1000>; + interrupts = <0x00 0x5c 0x04>; + clocks = <0x0d 0x0d>; + clock-names = "uartclk\0apb_pclk"; + status = "okay"; + }; + + i2c@28016000 { + compatible = "phytium,i2c"; + reg = <0x00 0x28016000 0x00 0x1000>; + interrupts = <0x00 0x5d 0x04>; + clocks = <0x0d>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "okay"; + }; + + i2c@28024000 { + compatible = "phytium,i2c"; + reg = <0x00 0x28024000 0x00 0x1000>; + interrupts = <0x00 0x64 0x04>; + clocks = <0x0d>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "okay"; + }; + + uart@2802A000 { + compatible = "arm,pl011\0arm,primecell"; + reg = <0x00 0x2802a000 0x00 0x1000>; + interrupts = <0x00 0x67 0x04>; + clocks = <0x0d 0x0d>; + clock-names = "uartclk\0apb_pclk"; + status = "okay"; + }; + + uart@28032000 { + compatible = "arm,pl011\0arm,primecell"; + reg = <0x00 0x28032000 0x00 0x1000>; + interrupts = <0x00 0x6b 0x04>; + clocks = <0x0d 0x0d>; + clock-names = "uartclk\0apb_pclk"; + status = "okay"; + }; + }; + + chosen { + bootargs = "console=ttyAMA1,115200 earlycon=pl011,0x2800d000 root=/dev/mmcblk0p1 rootfstype=ext4 rootwait rw cma=256m ;"; + stdout-path = "serial1:115200n8"; + }; + + memory@00 { + device_type = "memory"; + reg = <0x20 0x40000000 0x00 0x40000000>; + }; + + leds { + compatible = "gpio-leds"; + + sysled { + label = "sysled"; + gpios = <0x14 0x05 0x00>; + linux,default-trigger = "none"; + }; + }; + + sound { + compatible = "simple-audio-card"; + simple-audio-card,format = "i2s"; + simple-audio-card,name = "phytium,pe220x-i2s-audio"; + simple-audio-card,pin-switches = "mic-in"; + simple-audio-card,widgets = "Microphone\0mic-in\0Headphone\0Headphones"; + simple-audio-card,routing = "MIC2\0mic-in"; + simple-audio-card,hp-det-gpio = <0x15 0x0b 0x01>; + + simple-audio-card,cpu { + sound-dai = <0x16>; + }; + + simple-audio-card,codec { + sound-dai = <0x17>; + }; + }; +}; diff --git a/configs/vms/linux-aarch64-e2000_smp2.toml b/configs/vms/linux-aarch64-e2000_smp2.toml new file mode 100644 index 00000000..842e6f51 --- /dev/null +++ b/configs/vms/linux-aarch64-e2000_smp2.toml @@ -0,0 +1,114 @@ +# Vm base info configs +# +[base] +# Guest vm id. +id = 1 +# Guest vm name. +name = "linux" +# Virtualization type. +vm_type = 1 +# The number of virtual CPUs. +cpu_num = 2 +# The physical CPU ids. +phys_cpu_ids = [0x200, 0x00] +# Guest vm physical cpu sets. +phys_cpu_sets = [1, 4] + +# +# Vm kernel configs +# +[kernel] +# The entry point of the kernel image. +entry_point = 0x20_4008_0000 +# The location of image: "memory" | "fs". +# Load from file system. +image_location = "fs" +# The load address of the kernel image. +kernel_load_addr = 0x20_4008_0000 +## The file path of the kernel image. +kernel_path = "/guest/Image" +## The file path of the device tree blob (DTB). +dtb_path = "/guest/linux-aarch64-e2000_smp2.dtb" +dtb_load_addr = 0x20_4000_0000 +# Memory regions with format (`base_paddr`, `size`, `flags`, `map_type`). +# For `map_type`, 0 means `MAP_ALLOC`, 1 means `MAP_IDENTICAL`. +memory_regions = [ + # [0x20_4000_0000, 0x4000_0000, 0x7, 1], # System RAM MAP_IDENTICAL + # [0xa000_0000, 0x2000_0000, 0x7, 1], # System RAM 1G MAP_IDENTICAL +] + +# +# Device specifications +# +[devices] +# Emu_devices. +# Name Base-Ipa Ipa_len Alloc-Irq Emu-Type EmuConfig. +emu_devices = [] + +# Pass-through devices. +# Name Base-Ipa Base-Pa Length Alloc-Irq. +passthrough_devices = [ + [ + "QSPI", + 0x0000_0000, + 0x0000_0000, + 0x1000_0000, + 0x1, + ], + [ + "LocalBus", + 0x1000_0000, + 0x1000_0000, + 0x1000_0000, + 0x1, + ], + [ + "low speed peripherals", + 0x2800_0000, + 0x2800_0000, + 0x0800_0000, + 0x1, + ], + [ + "other peripherals", + 0x3000_0000, + 0x3000_0000, + 0x0800_0000, + 0x1, + ], + [ + "IACC", + 0x3800_0000, + 0x3800_0000, + 0x0800_0000, + 0x1, + ], + [ + "PCIE", + 0x4000_0000, + 0x4000_0000, + 0x4000_0000, + 0x1, + ], + [ + "QSPI high address", + 0x01_0000_0000, + 0x01_0000_0000, + 0x8000_0000, + 0x1, + ], + [ + "LocalBus high address", + 0x01_8000_0000, + 0x01_8000_0000, + 0x8000_0000, + 0x1, + ], + [ + "PCIe MEM64", + 0x10_0000_0000, + 0x10_0000_0000, + 0x01_0000_0000, + 0x1, + ], +] \ No newline at end of file diff --git a/configs/vms/linux-aarch64-rk3568_smp1.dts b/configs/vms/linux-aarch64-rk3568_smp1.dts new file mode 100644 index 00000000..bdc54614 --- /dev/null +++ b/configs/vms/linux-aarch64-rk3568_smp1.dts @@ -0,0 +1,6108 @@ +/dts-v1/; + +/memreserve/ 0x0000000008300000 0x000000000001c000; +/memreserve/ 0x000000000a200000 0x00000000008cf15d; +/ { + serial-number = "425ca8fc29ade692"; + compatible = "rockchip,rk3568-firefly-roc-pc-se\0rockchip,rk3568"; + interrupt-parent = <0x01>; + #address-cells = <0x02>; + #size-cells = <0x02>; + model = "Firefly RK3568-ROC-PC-SE HDMI (Linux)"; + + memory { + reg = <0x00 0x80000000 0x00 0x60000000>; + device_type = "memory"; + }; + + ddr3-params { + version = <0x100>; + expanded_version = <0x00>; + reserved = <0x00>; + freq_0 = <0x420>; + freq_1 = <0x144>; + freq_2 = <0x210>; + freq_3 = <0x30c>; + freq_4 = <0x00>; + freq_5 = <0x00>; + pd_idle = <0x0d>; + sr_idle = <0x5d>; + sr_mc_gate_idle = <0x00>; + srpd_lite_idle = <0x00>; + standby_idle = <0x00>; + pd_dis_freq = <0x42a>; + sr_dis_freq = <0x320>; + dram_dll_dis_freq = <0x12c>; + phy_dll_dis_freq = <0x00>; + phy_dq_drv_odten = <0x21>; + phy_ca_drv_odten = <0x21>; + phy_clk_drv_odten = <0x21>; + dram_dq_drv_odten = <0x22>; + phy_dq_drv_odtoff = <0x21>; + phy_ca_drv_odtoff = <0x21>; + phy_clk_drv_odtoff = <0x21>; + dram_dq_drv_odtoff = <0x22>; + dram_odt = <0x78>; + phy_odt = <0xa7>; + phy_odt_puup_en = <0x01>; + phy_odt_pudn_en = <0x01>; + dram_dq_odt_en_freq = <0x14d>; + phy_odt_en_freq = <0x14d>; + phy_dq_sr_odten = <0x0f>; + phy_ca_sr_odten = <0x03>; + phy_clk_sr_odten = <0x00>; + phy_dq_sr_odtoff = <0x0f>; + phy_ca_sr_odtoff = <0x03>; + phy_clk_sr_odtoff = <0x00>; + ssmod_downspread = <0x00>; + ssmod_div = <0x00>; + ssmod_spread = <0x00>; + mode_2t = <0x00>; + speed_bin = <0x15>; + dram_ext_temp = <0x00>; + byte_map = <0xe4>; + dq_map_cs0_dq_l = <0x00>; + dq_map_cs0_dq_h = <0x00>; + dq_map_cs1_dq_l = <0x00>; + dq_map_cs1_dq_h = <0x00>; + phandle = <0xb7>; + }; + + ddr4-params { + version = <0x100>; + expanded_version = <0x00>; + reserved = <0x00>; + freq_0 = <0x420>; + freq_1 = <0x144>; + freq_2 = <0x210>; + freq_3 = <0x30c>; + freq_4 = <0x00>; + freq_5 = <0x00>; + pd_idle = <0x0d>; + sr_idle = <0x5d>; + sr_mc_gate_idle = <0x00>; + srpd_lite_idle = <0x00>; + standby_idle = <0x00>; + pd_dis_freq = <0x42a>; + sr_dis_freq = <0x320>; + dram_dll_dis_freq = <0x271>; + phy_dll_dis_freq = <0x00>; + phy_dq_drv_odten = <0x25>; + phy_ca_drv_odten = <0x25>; + phy_clk_drv_odten = <0x25>; + dram_dq_drv_odten = <0x22>; + phy_dq_drv_odtoff = <0x25>; + phy_ca_drv_odtoff = <0x25>; + phy_clk_drv_odtoff = <0x25>; + dram_dq_drv_odtoff = <0x22>; + dram_odt = <0x78>; + phy_odt = <0x8b>; + phy_odt_puup_en = <0x01>; + phy_odt_pudn_en = <0x01>; + dram_dq_odt_en_freq = <0x1f4>; + phy_odt_en_freq = <0x1f4>; + phy_dq_sr_odten = <0x0e>; + phy_ca_sr_odten = <0x01>; + phy_clk_sr_odten = <0x01>; + phy_dq_sr_odtoff = <0x0e>; + phy_ca_sr_odtoff = <0x01>; + phy_clk_sr_odtoff = <0x01>; + ssmod_downspread = <0x00>; + ssmod_div = <0x00>; + ssmod_spread = <0x00>; + mode_2t = <0x00>; + speed_bin = <0x0c>; + dram_ext_temp = <0x00>; + byte_map = <0xe4>; + dq_map_cs0_dq_l = <0x22777788>; + dq_map_cs0_dq_h = <0xd7888877>; + dq_map_cs1_dq_l = <0x22777788>; + dq_map_cs1_dq_h = <0xd7888877>; + phandle = <0xb8>; + }; + + lpddr3-params { + version = <0x100>; + expanded_version = <0x00>; + reserved = <0x00>; + freq_0 = <0x420>; + freq_1 = <0x144>; + freq_2 = <0x210>; + freq_3 = <0x30c>; + freq_4 = <0x00>; + freq_5 = <0x00>; + pd_idle = <0x0d>; + sr_idle = <0x5d>; + sr_mc_gate_idle = <0x00>; + srpd_lite_idle = <0x00>; + standby_idle = <0x00>; + pd_dis_freq = <0x42a>; + sr_dis_freq = <0x320>; + dram_dll_dis_freq = <0x00>; + phy_dll_dis_freq = <0x00>; + phy_dq_drv_odten = <0x25>; + phy_ca_drv_odten = <0x25>; + phy_clk_drv_odten = <0x27>; + dram_dq_drv_odten = <0x22>; + phy_dq_drv_odtoff = <0x25>; + phy_ca_drv_odtoff = <0x25>; + phy_clk_drv_odtoff = <0x27>; + dram_dq_drv_odtoff = <0x22>; + dram_odt = <0x78>; + phy_odt = <0x94>; + phy_odt_puup_en = <0x01>; + phy_odt_pudn_en = <0x01>; + dram_dq_odt_en_freq = <0x14d>; + phy_odt_en_freq = <0x14d>; + phy_dq_sr_odten = <0x0f>; + phy_ca_sr_odten = <0x01>; + phy_clk_sr_odten = <0x0f>; + phy_dq_sr_odtoff = <0x0f>; + phy_ca_sr_odtoff = <0x01>; + phy_clk_sr_odtoff = <0x0f>; + ssmod_downspread = <0x00>; + ssmod_div = <0x00>; + ssmod_spread = <0x00>; + mode_2t = <0x00>; + speed_bin = <0x00>; + dram_ext_temp = <0x00>; + byte_map = <0x8d>; + dq_map_cs0_dq_l = <0x00>; + dq_map_cs0_dq_h = <0x00>; + dq_map_cs1_dq_l = <0x00>; + dq_map_cs1_dq_h = <0x00>; + phandle = <0xb9>; + }; + + lpddr4-params { + version = <0x100>; + expanded_version = <0x00>; + reserved = <0x00>; + freq_0 = <0x618>; + freq_1 = <0x144>; + freq_2 = <0x210>; + freq_3 = <0x30c>; + freq_4 = <0x00>; + freq_5 = <0x00>; + pd_idle = <0x0d>; + sr_idle = <0x5d>; + sr_mc_gate_idle = <0x00>; + srpd_lite_idle = <0x00>; + standby_idle = <0x00>; + pd_dis_freq = <0x42a>; + sr_dis_freq = <0x320>; + dram_dll_dis_freq = <0x00>; + phy_dll_dis_freq = <0x00>; + phy_dq_drv_odten = <0x1e>; + phy_ca_drv_odten = <0x26>; + phy_clk_drv_odten = <0x26>; + dram_dq_drv_odten = <0x28>; + phy_dq_drv_odtoff = <0x1e>; + phy_ca_drv_odtoff = <0x26>; + phy_clk_drv_odtoff = <0x26>; + dram_dq_drv_odtoff = <0x28>; + dram_odt = <0x50>; + phy_odt = <0x3c>; + phy_odt_puup_en = <0x00>; + phy_odt_pudn_en = <0x00>; + dram_dq_odt_en_freq = <0x320>; + phy_odt_en_freq = <0x320>; + phy_dq_sr_odten = <0x00>; + phy_ca_sr_odten = <0x0f>; + phy_clk_sr_odten = <0x0f>; + phy_dq_sr_odtoff = <0x00>; + phy_ca_sr_odtoff = <0x0f>; + phy_clk_sr_odtoff = <0x0f>; + ssmod_downspread = <0x00>; + ssmod_div = <0x00>; + ssmod_spread = <0x00>; + mode_2t = <0x00>; + speed_bin = <0x00>; + dram_ext_temp = <0x00>; + byte_map = <0xe4>; + dq_map_cs0_dq_l = <0x00>; + dq_map_cs0_dq_h = <0x00>; + dq_map_cs1_dq_l = <0x00>; + dq_map_cs1_dq_h = <0x00>; + lp4_ca_odt = <0x78>; + lp4_drv_pu_cal_odten = <0x01>; + lp4_drv_pu_cal_odtoff = <0x01>; + phy_lp4_drv_pulldown_en_odten = <0x00>; + phy_lp4_drv_pulldown_en_odtoff = <0x00>; + lp4_ca_odt_en_freq = <0x320>; + phy_lp4_cs_drv_odten = <0x00>; + phy_lp4_cs_drv_odtoff = <0x00>; + lp4_odte_ck_en = <0x01>; + lp4_odte_cs_en = <0x01>; + lp4_odtd_ca_en = <0x00>; + phy_lp4_dq_vref_odten = <0xa6>; + lp4_dq_vref_odten = <0x12c>; + lp4_ca_vref_odten = <0x17c>; + phy_lp4_dq_vref_odtoff = <0x1a4>; + lp4_dq_vref_odtoff = <0x1a4>; + lp4_ca_vref_odtoff = <0x1a4>; + phandle = <0xba>; + }; + + lpddr4x-params { + version = <0x100>; + expanded_version = <0x00>; + reserved = <0x00>; + freq_0 = <0x618>; + freq_1 = <0x144>; + freq_2 = <0x210>; + freq_3 = <0x30c>; + freq_4 = <0x00>; + freq_5 = <0x00>; + pd_idle = <0x0d>; + sr_idle = <0x5d>; + sr_mc_gate_idle = <0x00>; + srpd_lite_idle = <0x00>; + standby_idle = <0x00>; + pd_dis_freq = <0x42a>; + sr_dis_freq = <0x320>; + dram_dll_dis_freq = <0x00>; + phy_dll_dis_freq = <0x00>; + phy_dq_drv_odten = <0x1d>; + phy_ca_drv_odten = <0x24>; + phy_clk_drv_odten = <0x24>; + dram_dq_drv_odten = <0x28>; + phy_dq_drv_odtoff = <0x1d>; + phy_ca_drv_odtoff = <0x24>; + phy_clk_drv_odtoff = <0x24>; + dram_dq_drv_odtoff = <0x28>; + dram_odt = <0x50>; + phy_odt = <0x3c>; + phy_odt_puup_en = <0x00>; + phy_odt_pudn_en = <0x00>; + dram_dq_odt_en_freq = <0x320>; + phy_odt_en_freq = <0x320>; + phy_dq_sr_odten = <0x00>; + phy_ca_sr_odten = <0x00>; + phy_clk_sr_odten = <0x00>; + phy_dq_sr_odtoff = <0x00>; + phy_ca_sr_odtoff = <0x00>; + phy_clk_sr_odtoff = <0x00>; + ssmod_downspread = <0x00>; + ssmod_div = <0x00>; + ssmod_spread = <0x00>; + mode_2t = <0x00>; + speed_bin = <0x00>; + dram_ext_temp = <0x00>; + byte_map = <0xe4>; + dq_map_cs0_dq_l = <0x00>; + dq_map_cs0_dq_h = <0x00>; + dq_map_cs1_dq_l = <0x00>; + dq_map_cs1_dq_h = <0x00>; + lp4_ca_odt = <0x78>; + lp4_drv_pu_cal_odten = <0x00>; + lp4_drv_pu_cal_odtoff = <0x00>; + phy_lp4_drv_pulldown_en_odten = <0x00>; + phy_lp4_drv_pulldown_en_odtoff = <0x00>; + lp4_ca_odt_en_freq = <0x320>; + phy_lp4_cs_drv_odten = <0x00>; + phy_lp4_cs_drv_odtoff = <0x00>; + lp4_odte_ck_en = <0x00>; + lp4_odte_cs_en = <0x00>; + lp4_odtd_ca_en = <0x00>; + phy_lp4_dq_vref_odten = <0xa6>; + lp4_dq_vref_odten = <0xe4>; + lp4_ca_vref_odten = <0x157>; + phy_lp4_dq_vref_odtoff = <0x1a4>; + lp4_dq_vref_odtoff = <0x1a4>; + lp4_ca_vref_odtoff = <0x157>; + phandle = <0xbb>; + }; + + aliases { + csi2dphy0 = "/csi2-dphy0"; + csi2dphy1 = "/csi2-dphy1"; + csi2dphy2 = "/csi2-dphy2"; + dsi0 = "/dsi@fe060000"; + dsi1 = "/dsi@fe070000"; + ethernet0 = "/ethernet@fe2a0000"; + ethernet1 = "/ethernet@fe010000"; + gpio0 = "/pinctrl/gpio0@fdd60000"; + gpio1 = "/pinctrl/gpio1@fe740000"; + gpio2 = "/pinctrl/gpio2@fe750000"; + gpio3 = "/pinctrl/gpio3@fe760000"; + gpio4 = "/pinctrl/gpio4@fe770000"; + i2c0 = "/i2c@fdd40000"; + i2c1 = "/i2c@fe5a0000"; + i2c2 = "/i2c@fe5b0000"; + i2c3 = "/i2c@fe5c0000"; + i2c4 = "/i2c@fe5d0000"; + i2c5 = "/i2c@fe5e0000"; + mmc0 = "/sdhci@fe310000"; + mmc1 = "/dwmmc@fe2b0000"; + mmc2 = "/dwmmc@fe2c0000"; + mmc3 = "/dwmmc@fe000000"; + serial0 = "/serial@fdd50000"; + serial1 = "/serial@fe650000"; + serial2 = "/serial@fe660000"; + serial3 = "/serial@fe670000"; + serial4 = "/serial@fe680000"; + serial5 = "/serial@fe690000"; + serial6 = "/serial@fe6a0000"; + serial7 = "/serial@fe6b0000"; + serial8 = "/serial@fe6c0000"; + serial9 = "/serial@fe6d0000"; + spi0 = "/spi@fe610000"; + spi1 = "/spi@fe620000"; + spi2 = "/spi@fe630000"; + spi3 = "/spi@fe640000"; + lvds0 = "/syscon@fdc60000/lvds"; + lvds1 = "/syscon@fdc60000/lvds1"; + }; + + cpus { + #address-cells = <0x02>; + #size-cells = <0x00>; + + cpu@0 { + device_type = "cpu"; + compatible = "arm,cortex-a55"; + reg = <0x00 0x00>; + enable-method = "psci"; + clocks = <0x02 0x00>; + operating-points-v2 = <0x03>; + cpu-idle-states = <0x04>; + #cooling-cells = <0x02>; + dynamic-power-coefficient = <0xbb>; + cpu-supply = <0x05>; + phandle = <0x0c>; + }; + + // cpu@100 { + // device_type = "cpu"; + // compatible = "arm,cortex-a55"; + // reg = <0x00 0x100>; + // enable-method = "psci"; + // clocks = <0x02 0x00>; + // operating-points-v2 = <0x03>; + // cpu-idle-states = <0x04>; + // phandle = <0x0d>; + // }; + + // cpu@200 { + // device_type = "cpu"; + // compatible = "arm,cortex-a55"; + // reg = <0x00 0x200>; + // enable-method = "psci"; + // clocks = <0x02 0x00>; + // operating-points-v2 = <0x03>; + // cpu-idle-states = <0x04>; + // phandle = <0x0e>; + // }; + + // cpu@300 { + // device_type = "cpu"; + // compatible = "arm,cortex-a55"; + // reg = <0x00 0x300>; + // enable-method = "psci"; + // clocks = <0x02 0x00>; + // operating-points-v2 = <0x03>; + // cpu-idle-states = <0x04>; + // phandle = <0x0f>; + // }; + + idle-states { + entry-method = "psci"; + + cpu-sleep { + compatible = "arm,idle-state"; + local-timer-stop; + arm,psci-suspend-param = <0x10000>; + entry-latency-us = <0x64>; + exit-latency-us = <0x78>; + min-residency-us = <0x3e8>; + phandle = <0x04>; + }; + }; + }; + + cpu0-opp-table { + compatible = "operating-points-v2"; + opp-shared; + mbist-vmin = <0xc96a8 0xdbba0 0xe7ef0>; + nvmem-cells = <0x06 0x07 0x08 0x09 0x0a 0x0b>; + nvmem-cell-names = "leakage\0pvtm\0mbist-vmin\0opp-info\0specification_serial_number\0remark_spec_serial_number"; + rockchip,supported-hw; + rockchip,max-volt = <0x118c30>; + rockchip,pvtm-voltage-sel = <0x00 0x14820 0x00 0x14821 0x153d8 0x01 0x153d9 0x16378 0x02 0x16379 0x186a0 0x03>; + rockchip,pvtm-freq = <0x639c0>; + rockchip,pvtm-volt = <0xdbba0>; + rockchip,pvtm-ch = <0x00 0x05>; + rockchip,pvtm-sample-time = <0x3e8>; + rockchip,pvtm-number = <0x0a>; + rockchip,pvtm-error = <0x3e8>; + rockchip,pvtm-ref-temp = <0x28>; + rockchip,pvtm-temp-prop = <0x1a 0x1a>; + rockchip,thermal-zone = "soc-thermal"; + rockchip,temp-hysteresis = <0x1388>; + rockchip,low-temp = <0x00>; + rockchip,low-temp-adjust-volt = <0x00 0x7c8 0x124f8>; + phandle = <0x03>; + + opp-408000000 { + opp-supported-hw = <0xfb 0xffff>; + opp-hz = <0x00 0x18519600>; + opp-microvolt = <0xcf850 0xcf850 0x118c30>; + clock-latency-ns = <0x9c40>; + }; + + opp-600000000 { + opp-supported-hw = <0xfb 0xffff>; + opp-hz = <0x00 0x23c34600>; + opp-microvolt = <0xcf850 0xcf850 0x118c30>; + clock-latency-ns = <0x9c40>; + }; + + opp-816000000 { + opp-supported-hw = <0xfb 0xffff>; + opp-hz = <0x00 0x30a32c00>; + opp-microvolt = <0xcf850 0xcf850 0x118c30>; + clock-latency-ns = <0x9c40>; + opp-suspend; + }; + + opp-1104000000 { + opp-supported-hw = <0xfb 0xffff>; + opp-hz = <0x00 0x41cdb400>; + opp-microvolt = <0xdbba0 0xdbba0 0x118c30>; + opp-microvolt-L0 = <0xdbba0 0xdbba0 0x118c30>; + opp-microvolt-L1 = <0xcf850 0xcf850 0x118c30>; + opp-microvolt-L2 = <0xcf850 0xcf850 0x118c30>; + opp-microvolt-L3 = <0xcf850 0xcf850 0x118c30>; + clock-latency-ns = <0x9c40>; + }; + + opp-1416000000 { + opp-supported-hw = <0xfb 0xffff>; + opp-hz = <0x00 0x54667200>; + opp-microvolt = <0xfa3e8 0xfa3e8 0x118c30>; + opp-microvolt-L0 = <0xfa3e8 0xfa3e8 0x118c30>; + opp-microvolt-L1 = <0xee098 0xee098 0x118c30>; + opp-microvolt-L2 = <0xe7ef0 0xe7ef0 0x118c30>; + opp-microvolt-L3 = <0xe1d48 0xe1d48 0x118c30>; + clock-latency-ns = <0x9c40>; + }; + + opp-1608000000 { + opp-supported-hw = <0xf9 0xffff>; + opp-hz = <0x00 0x5fd82200>; + opp-microvolt = <0x10c8e0 0x10c8e0 0x118c30>; + opp-microvolt-L0 = <0x10c8e0 0x10c8e0 0x118c30>; + opp-microvolt-L1 = <0x100590 0x100590 0x118c30>; + opp-microvolt-L2 = <0xfa3e8 0xfa3e8 0x118c30>; + opp-microvolt-L3 = <0xf4240 0xf4240 0x118c30>; + clock-latency-ns = <0x9c40>; + }; + + opp-1800000000 { + opp-supported-hw = <0xf9 0xffff>; + opp-hz = <0x00 0x6b49d200>; + opp-microvolt = <0x118c30 0x118c30 0x118c30>; + opp-microvolt-L0 = <0x118c30 0x118c30 0x118c30>; + opp-microvolt-L1 = <0x10c8e0 0x10c8e0 0x118c30>; + opp-microvolt-L2 = <0x106738 0x106738 0x118c30>; + opp-microvolt-L3 = <0x100590 0x100590 0x118c30>; + clock-latency-ns = <0x9c40>; + }; + + opp-1992000000 { + opp-supported-hw = <0xf9 0xffff>; + opp-hz = <0x00 0x76bb8200>; + opp-microvolt = <0x118c30 0x118c30 0x118c30>; + opp-microvolt-L0 = <0x118c30 0x118c30 0x118c30>; + opp-microvolt-L1 = <0x118c30 0x118c30 0x118c30>; + opp-microvolt-L2 = <0x112a88 0x112a88 0x118c30>; + opp-microvolt-L3 = <0x10c8e0 0x10c8e0 0x118c30>; + clock-latency-ns = <0x9c40>; + }; + + opp-j-1008000000 { + opp-supported-hw = <0x04 0xffff>; + opp-hz = <0x00 0x3c14dc00>; + opp-microvolt = <0xcf850 0xcf850 0x118c30>; + clock-latency-ns = <0x9c40>; + }; + + opp-j-1416000000 { + opp-supported-hw = <0x04 0xffff>; + opp-hz = <0x00 0x54667200>; + opp-microvolt = <0xdbba0 0xdbba0 0x118c30>; + clock-latency-ns = <0x9c40>; + }; + + opp-m-1608000000 { + opp-supported-hw = <0x02 0xffff>; + opp-hz = <0x00 0x5fd82200>; + opp-microvolt = <0xf4240 0xf4240 0x118c30>; + clock-latency-ns = <0x9c40>; + }; + }; + + arm-pmu { + compatible = "arm,cortex-a55-pmu\0arm,armv8-pmuv3"; + interrupts = <0x00 0xe4 0x04 0x00 0xe5 0x04 0x00 0xe6 0x04 0x00 0xe7 0x04>; + interrupt-affinity = <0x0c 0x0d 0x0e 0x0f>; + }; + + cpuinfo { + compatible = "rockchip,cpuinfo"; + nvmem-cells = <0x10 0x11 0x12>; + nvmem-cell-names = "id\0cpu-version\0cpu-code"; + }; + + display-subsystem { + compatible = "rockchip,display-subsystem"; + memory-region = <0x13 0x14>; + memory-region-names = "drm-logo\0drm-cubic-lut"; + ports = <0x15>; + devfreq = <0x16>; + + route { + + route-dsi0 { + status = "disabled"; + logo,uboot = "logo.bmp"; + logo,kernel = "logo_kernel.bmp"; + logo,mode = "center"; + charge_logo,mode = "center"; + connect = <0x17>; + }; + + route-dsi1 { + status = "disabled"; + logo,uboot = "logo.bmp"; + logo,kernel = "logo_kernel.bmp"; + logo,mode = "center"; + charge_logo,mode = "center"; + connect = <0x18>; + }; + + route-edp { + status = "disabled"; + logo,uboot = "logo.bmp"; + logo,kernel = "logo_kernel.bmp"; + logo,mode = "center"; + charge_logo,mode = "center"; + connect = <0x19>; + }; + + route-hdmi { + status = "okay"; + logo,uboot = "logo.bmp"; + logo,kernel = "logo_kernel.bmp"; + logo,mode = "center"; + charge_logo,mode = "center"; + connect = <0x1a>; + }; + + route-lvds { + status = "disabled"; + logo,uboot = "logo.bmp"; + logo,kernel = "logo_kernel.bmp"; + logo,mode = "center"; + charge_logo,mode = "center"; + connect = <0x1b>; + }; + + route-rgb { + status = "disabled"; + logo,uboot = "logo.bmp"; + logo,kernel = "logo_kernel.bmp"; + logo,mode = "center"; + charge_logo,mode = "center"; + connect = <0x1c>; + }; + }; + }; + + edac { + compatible = "rockchip,rk3568-edac"; + interrupts = <0x00 0xad 0x04 0x00 0xaf 0x04>; + interrupt-names = "ce\0ue"; + status = "disabled"; + }; + + firmware { + + scmi { + compatible = "arm,scmi-smc"; + shmem = <0x1d>; + arm,smc-id = <0x82000010>; + #address-cells = <0x01>; + #size-cells = <0x00>; + + protocol@14 { + reg = <0x14>; + #clock-cells = <0x01>; + rockchip,clk-init = <0x41cdb400>; + phandle = <0x02>; + }; + }; + + sdei { + compatible = "arm,sdei-1.0"; + method = "smc"; + }; + }; + + mipi-csi2 { + compatible = "rockchip,rk3568-mipi-csi2"; + rockchip,hw = <0x1e>; + status = "disabled"; + }; + + mpp-srv { + compatible = "rockchip,mpp-service"; + rockchip,taskqueue-count = <0x06>; + rockchip,resetgroup-count = <0x06>; + status = "okay"; + phandle = <0x7b>; + }; + + psci { + compatible = "arm,psci-1.0"; + method = "smc"; + }; + + reserved-memory { + #address-cells = <0x02>; + #size-cells = <0x02>; + ranges; + + drm-logo@00000000 { + compatible = "rockchip,drm-logo"; + reg = <0x00 0xedf00000 0x00 0x2e0000>; + phandle = <0x13>; + }; + + drm-cubic-lut@00000000 { + compatible = "rockchip,drm-cubic-lut"; + reg = <0x00 0xeff00000 0x00 0x8000>; + phandle = <0x14>; + }; + + ramoops@110000 { + compatible = "ramoops"; + reg = <0x00 0x110000 0x00 0xf0000>; + record-size = <0x20000>; + console-size = <0x80000>; + ftrace-size = <0x00>; + pmsg-size = <0x50000>; + }; + }; + + rockchip-suspend { + compatible = "rockchip,pm-rk3568"; + status = "okay"; + rockchip,sleep-debug-en = <0x01>; + rockchip,sleep-mode-config = <0x5ec>; + rockchip,wakeup-config = <0x10>; + }; + + rockchip-system-monitor { + compatible = "rockchip,system-monitor"; + rockchip,thermal-zone = "soc-thermal"; + }; + + thermal-zones { + + soc-thermal { + polling-delay-passive = <0x14>; + polling-delay = <0x3e8>; + sustainable-power = <0x389>; + thermal-sensors = <0x1f 0x00>; + + trips { + + trip-point-0 { + temperature = <0x124f8>; + hysteresis = <0x7d0>; + type = "passive"; + }; + + trip-point-1 { + temperature = <0x14c08>; + hysteresis = <0x7d0>; + type = "passive"; + phandle = <0x20>; + }; + + soc-crit { + temperature = <0x1c138>; + hysteresis = <0x7d0>; + type = "critical"; + }; + }; + + cooling-maps { + + map0 { + trip = <0x20>; + cooling-device = <0x0c 0xffffffff 0xffffffff>; + contribution = <0x400>; + }; + + map1 { + trip = <0x20>; + cooling-device = <0x21 0xffffffff 0xffffffff>; + contribution = <0x400>; + }; + }; + }; + + gpu-thermal { + polling-delay-passive = <0x14>; + polling-delay = <0x3e8>; + thermal-sensors = <0x1f 0x01>; + }; + }; + + timer { + compatible = "arm,armv8-timer"; + interrupts = <0x01 0x0d 0xf04 0x01 0x0e 0xf04 0x01 0x0b 0xf04 0x01 0x0a 0xf04>; + arm,no-tick-in-suspend; + }; + + external-gmac0-clock { + compatible = "fixed-clock"; + clock-frequency = <0x7735940>; + clock-output-names = "gmac0_clkin"; + #clock-cells = <0x00>; + phandle = <0xc7>; + }; + + external-gmac1-clock { + compatible = "fixed-clock"; + clock-frequency = <0x7735940>; + clock-output-names = "gmac1_clkin"; + #clock-cells = <0x00>; + phandle = <0x92>; + }; + + xpcs-gmac0-clock { + compatible = "fixed-clock"; + clock-frequency = <0x7735940>; + clock-output-names = "clk_gmac0_xpcs_mii"; + #clock-cells = <0x00>; + }; + + xpcs-gmac1-clock { + compatible = "fixed-clock"; + clock-frequency = <0x7735940>; + clock-output-names = "clk_gmac1_xpcs_mii"; + #clock-cells = <0x00>; + }; + + i2s1-mclkin-rx { + compatible = "fixed-clock"; + #clock-cells = <0x00>; + clock-frequency = <0xbb8000>; + clock-output-names = "i2s1_mclkin_rx"; + }; + + i2s1-mclkin-tx { + compatible = "fixed-clock"; + #clock-cells = <0x00>; + clock-frequency = <0xbb8000>; + clock-output-names = "i2s1_mclkin_tx"; + }; + + i2s2-mclkin { + compatible = "fixed-clock"; + #clock-cells = <0x00>; + clock-frequency = <0xbb8000>; + clock-output-names = "i2s2_mclkin"; + }; + + i2s3-mclkin { + compatible = "fixed-clock"; + #clock-cells = <0x00>; + clock-frequency = <0xbb8000>; + clock-output-names = "i2s3_mclkin"; + }; + + mpll { + compatible = "fixed-clock"; + #clock-cells = <0x00>; + clock-frequency = <0x2faf0800>; + clock-output-names = "mpll"; + }; + + xin24m { + compatible = "fixed-clock"; + #clock-cells = <0x00>; + clock-frequency = <0x16e3600>; + clock-output-names = "xin24m"; + }; + + xin32k { + compatible = "fixed-clock"; + clock-frequency = <0x8000>; + clock-output-names = "xin32k"; + #clock-cells = <0x00>; + pinctrl-names = "default"; + pinctrl-0 = <0x22>; + }; + + scmi-shmem@10f000 { + compatible = "arm,scmi-shmem"; + reg = <0x00 0x10f000 0x00 0x100>; + phandle = <0x1d>; + }; + + sata@fc000000 { + compatible = "snps,dwc-ahci"; + reg = <0x00 0xfc000000 0x00 0x1000>; + clocks = <0x23 0x96 0x23 0x97 0x23 0x98>; + clock-names = "sata\0pmalive\0rxoob"; + interrupts = <0x00 0x5e 0x04>; + interrupt-names = "hostc"; + phys = <0x24 0x01>; + phy-names = "sata-phy"; + ports-implemented = <0x01>; + power-domains = <0x25 0x0f>; + status = "disabled"; + }; + + sata@fc400000 { + compatible = "snps,dwc-ahci"; + reg = <0x00 0xfc400000 0x00 0x1000>; + clocks = <0x23 0x9b 0x23 0x9c 0x23 0x9d>; + clock-names = "sata\0pmalive\0rxoob"; + interrupts = <0x00 0x5f 0x04>; + interrupt-names = "hostc"; + phys = <0x26 0x01>; + phy-names = "sata-phy"; + ports-implemented = <0x01>; + power-domains = <0x25 0x0f>; + status = "disabled"; + }; + + sata@fc800000 { + compatible = "snps,dwc-ahci"; + reg = <0x00 0xfc800000 0x00 0x1000>; + clocks = <0x23 0xa0 0x23 0xa1 0x23 0xa2>; + clock-names = "sata\0pmalive\0rxoob"; + interrupts = <0x00 0x60 0x04>; + interrupt-names = "hostc"; + phys = <0x27 0x01>; + phy-names = "sata-phy"; + ports-implemented = <0x01>; + power-domains = <0x25 0x0f>; + status = "okay"; + }; + + usbdrd { + compatible = "rockchip,rk3568-dwc3\0rockchip,rk3399-dwc3"; + clocks = <0x23 0xa6 0x23 0xa7 0x23 0xa5 0x23 0x7f>; + clock-names = "ref_clk\0suspend_clk\0bus_clk\0pipe_clk"; + #address-cells = <0x02>; + #size-cells = <0x02>; + ranges; + status = "okay"; + + dwc3@fcc00000 { + compatible = "snps,dwc3"; + reg = <0x00 0xfcc00000 0x00 0x400000>; + interrupts = <0x00 0xa9 0x04>; + dr_mode = "otg"; + phys = <0x28 0x24 0x04>; + phy-names = "usb2-phy\0usb3-phy"; + phy_type = "utmi_wide"; + power-domains = <0x25 0x0f>; + resets = <0x23 0x94>; + reset-names = "usb3-otg"; + snps,dis_enblslpm_quirk; + snps,dis-u1-entry-quirk; + snps,dis-u2-entry-quirk; + snps,dis-u2-freeclk-exists-quirk; + snps,dis-del-phy-power-chg-quirk; + snps,dis-tx-ipgap-linecheck-quirk; + snps,dis_rxdet_inp3_quirk; + snps,parkmode-disable-hs-quirk; + snps,parkmode-disable-ss-quirk; + quirk-skip-phy-init; + status = "okay"; + extcon = <0x29>; + usb-role-switch; + + port { + #address-cells = <0x01>; + #size-cells = <0x00>; + + endpoint@0 { + reg = <0x00>; + remote-endpoint = <0x2a>; + phandle = <0x4d>; + }; + }; + }; + }; + + usbhost { + compatible = "rockchip,rk3568-dwc3\0rockchip,rk3399-dwc3"; + clocks = <0x23 0xa9 0x23 0xaa 0x23 0xa8 0x23 0x7f>; + clock-names = "ref_clk\0suspend_clk\0bus_clk\0pipe_clk"; + #address-cells = <0x02>; + #size-cells = <0x02>; + ranges; + status = "okay"; + + dwc3@fd000000 { + compatible = "snps,dwc3"; + reg = <0x00 0xfd000000 0x00 0x400000>; + interrupts = <0x00 0xaa 0x04>; + dr_mode = "host"; + phys = <0x2b 0x26 0x04>; + phy-names = "usb2-phy\0usb3-phy"; + phy_type = "utmi_wide"; + power-domains = <0x25 0x0f>; + resets = <0x23 0x95>; + reset-names = "usb3-host"; + snps,dis_enblslpm_quirk; + snps,dis-u2-freeclk-exists-quirk; + snps,dis-del-phy-power-chg-quirk; + snps,dis-tx-ipgap-linecheck-quirk; + snps,dis_rxdet_inp3_quirk; + snps,parkmode-disable-hs-quirk; + snps,parkmode-disable-ss-quirk; + status = "okay"; + }; + }; + + interrupt-controller@fd400000 { + compatible = "arm,gic-v3"; + #interrupt-cells = <0x03>; + #address-cells = <0x02>; + #size-cells = <0x02>; + ranges; + interrupt-controller; + reg = <0x00 0xfd400000 0x00 0x10000 0x00 0xfd460000 0x00 0xc0000>; + interrupts = <0x01 0x09 0x04>; + phandle = <0x01>; + + interrupt-controller@fd440000 { + compatible = "arm,gic-v3-its"; + msi-controller; + #msi-cells = <0x01>; + reg = <0x00 0xfd440000 0x00 0x20000>; + status = "okay"; + phandle = <0xbe>; + }; + }; + + usb@fd800000 { + compatible = "generic-ehci"; + reg = <0x00 0xfd800000 0x00 0x40000>; + interrupts = <0x00 0x82 0x04>; + clocks = <0x23 0xbd 0x23 0xbe 0x23 0xbc 0x2c>; + clock-names = "usbhost\0arbiter\0pclk\0utmi"; + phys = <0x2d>; + phy-names = "usb2-phy"; + status = "okay"; + }; + + usb@fd840000 { + compatible = "generic-ohci"; + reg = <0x00 0xfd840000 0x00 0x40000>; + interrupts = <0x00 0x83 0x04>; + clocks = <0x23 0xbd 0x23 0xbe 0x23 0xbc 0x2c>; + clock-names = "usbhost\0arbiter\0pclk\0utmi"; + phys = <0x2d>; + phy-names = "usb2-phy"; + status = "okay"; + }; + + usb@fd880000 { + compatible = "generic-ehci"; + reg = <0x00 0xfd880000 0x00 0x40000>; + interrupts = <0x00 0x85 0x04>; + clocks = <0x23 0xbf 0x23 0xc0 0x23 0xbc 0x2c>; + clock-names = "usbhost\0arbiter\0pclk\0utmi"; + phys = <0x2e>; + phy-names = "usb2-phy"; + status = "okay"; + }; + + usb@fd8c0000 { + compatible = "generic-ohci"; + reg = <0x00 0xfd8c0000 0x00 0x40000>; + interrupts = <0x00 0x86 0x04>; + clocks = <0x23 0xbf 0x23 0xc0 0x23 0xbc 0x2c>; + clock-names = "usbhost\0arbiter\0pclk\0utmi"; + phys = <0x2e>; + phy-names = "usb2-phy"; + status = "okay"; + }; + + syscon@fda00000 { + compatible = "rockchip,rk3568-xpcs\0syscon"; + reg = <0x00 0xfda00000 0x00 0x200000>; + status = "disabled"; + }; + + syscon@fdc20000 { + compatible = "rockchip,rk3568-pmugrf\0syscon\0simple-mfd"; + reg = <0x00 0xfdc20000 0x00 0x10000>; + phandle = <0x3c>; + + io-domains { + compatible = "rockchip,rk3568-pmu-io-voltage-domain"; + status = "okay"; + pmuio1-supply = <0x2f>; + pmuio2-supply = <0x2f>; + vccio1-supply = <0x30>; + vccio3-supply = <0x31>; + vccio4-supply = <0x32>; + vccio5-supply = <0x33>; + vccio6-supply = <0x32>; + vccio7-supply = <0x33>; + }; + + reboot-mode { + compatible = "syscon-reboot-mode"; + offset = <0x200>; + mode-bootloader = <0x5242c301>; + mode-charge = <0x5242c30b>; + mode-fastboot = <0x5242c309>; + mode-loader = <0x5242c301>; + mode-normal = <0x5242c300>; + mode-recovery = <0x5242c303>; + mode-ums = <0x5242c30c>; + mode-panic = <0x5242c307>; + mode-watchdog = <0x5242c308>; + }; + }; + + syscon@fdc50000 { + compatible = "rockchip,rk3568-pipegrf\0syscon"; + reg = <0x00 0xfdc50000 0x00 0x1000>; + phandle = <0x12a>; + }; + + syscon@fdc60000 { + compatible = "rockchip,rk3568-grf\0syscon\0simple-mfd"; + reg = <0x00 0xfdc60000 0x00 0x10000>; + phandle = <0x3b>; + + io-domains { + compatible = "rockchip,rk3568-io-voltage-domain"; + status = "disabled"; + }; + + lvds { + compatible = "rockchip,rk3568-lvds"; + phys = <0x34>; + phy-names = "phy"; + status = "disabled"; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + reg = <0x00>; + #address-cells = <0x01>; + #size-cells = <0x00>; + + endpoint@1 { + reg = <0x01>; + remote-endpoint = <0x1b>; + status = "disabled"; + phandle = <0xa3>; + }; + + endpoint@2 { + reg = <0x02>; + remote-endpoint = <0x35>; + status = "disabled"; + phandle = <0xa5>; + }; + }; + }; + }; + + lvds1 { + compatible = "rockchip,rk3568-lvds"; + phys = <0x36>; + phy-names = "phy"; + status = "disabled"; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + reg = <0x00>; + #address-cells = <0x01>; + #size-cells = <0x00>; + + endpoint@0 { + reg = <0x00>; + remote-endpoint = <0x37>; + phandle = <0xa4>; + }; + + endpoint@1 { + reg = <0x01>; + remote-endpoint = <0x38>; + phandle = <0xa7>; + }; + }; + }; + }; + + rgb { + compatible = "rockchip,rk3568-rgb"; + pinctrl-names = "default"; + pinctrl-0 = <0x39>; + status = "disabled"; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + reg = <0x00>; + #address-cells = <0x01>; + #size-cells = <0x00>; + + endpoint@2 { + reg = <0x02>; + remote-endpoint = <0x1c>; + status = "disabled"; + phandle = <0xa6>; + }; + }; + }; + }; + }; + + syscon@fdc70000 { + compatible = "rockchip,pipe-phy-grf\0syscon"; + reg = <0x00 0xfdc70000 0x00 0x1000>; + phandle = <0x12b>; + }; + + syscon@fdc80000 { + compatible = "rockchip,pipe-phy-grf\0syscon"; + reg = <0x00 0xfdc80000 0x00 0x1000>; + phandle = <0x12c>; + }; + + syscon@fdc90000 { + compatible = "rockchip,pipe-phy-grf\0syscon"; + reg = <0x00 0xfdc90000 0x00 0x1000>; + phandle = <0x12d>; + }; + + syscon@fdca0000 { + compatible = "rockchip,rk3568-usb2phy-grf\0syscon"; + reg = <0x00 0xfdca0000 0x00 0x8000>; + phandle = <0x135>; + }; + + syscon@fdca8000 { + compatible = "rockchip,rk3568-usb2phy-grf\0syscon"; + reg = <0x00 0xfdca8000 0x00 0x8000>; + phandle = <0x137>; + }; + + syscon@fdcb0000 { + compatible = "rockchip,rk3568-edp-phy-grf\0syscon\0simple-mfd"; + reg = <0x00 0xfdcb0000 0x00 0x100>; + clocks = <0x23 0x192>; + + edp-phy { + compatible = "rockchip,rk3568-edp-phy"; + clocks = <0x3a 0x29>; + clock-names = "refclk"; + #phy-cells = <0x00>; + status = "disabled"; + phandle = <0xae>; + }; + }; + + syscon@fdcb8000 { + compatible = "rockchip,pcie30-phy-grf\0syscon"; + reg = <0x00 0xfdcb8000 0x00 0x10000>; + phandle = <0x138>; + }; + + sram@fdcc0000 { + compatible = "mmio-sram"; + reg = <0x00 0xfdcc0000 0x00 0xb000>; + #address-cells = <0x01>; + #size-cells = <0x01>; + ranges = <0x00 0x00 0xfdcc0000 0xb000>; + + rkvdec-sram@0 { + reg = <0x00 0xb000>; + phandle = <0x84>; + }; + }; + + clock-controller@fdd00000 { + compatible = "rockchip,rk3568-pmucru"; + reg = <0x00 0xfdd00000 0x00 0x1000>; + rockchip,grf = <0x3b>; + rockchip,pmugrf = <0x3c>; + #clock-cells = <0x01>; + #reset-cells = <0x01>; + assigned-clocks = <0x3a 0x32>; + assigned-clock-parents = <0x3a 0x05>; + phandle = <0x3a>; + }; + + clock-controller@fdd20000 { + compatible = "rockchip,rk3568-cru"; + reg = <0x00 0xfdd20000 0x00 0x1000>; + rockchip,grf = <0x3b>; + #clock-cells = <0x01>; + #reset-cells = <0x01>; + assigned-clocks = <0x3a 0x05 0x23 0x106 0x23 0x10b 0x3a 0x01 0x3a 0x2b 0x23 0x03 0x23 0x19b 0x23 0x09 0x23 0x19c 0x23 0x19d 0x23 0x1a1 0x23 0x19e 0x23 0x19f 0x23 0x1a0 0x23 0x04 0x23 0x10d 0x23 0x10e 0x23 0x173 0x23 0x174 0x23 0x175 0x23 0x176 0x23 0xc9 0x23 0xca 0x23 0x06 0x23 0x7e 0x23 0x7f 0x23 0x3d 0x23 0x41 0x23 0x45 0x23 0x49 0x23 0x4d 0x23 0x4d 0x23 0x55 0x23 0x51 0x23 0x5d 0x23 0xdd>; + assigned-clock-rates = <0x8000 0x11e1a300 0x11e1a300 0xbebc200 0x5f5e100 0x3b9aca00 0x1dcd6500 0x13d92d40 0xee6b280 0x7735940 0x5f5e100 0x3b9aca0 0x2faf080 0x17d7840 0x46cf7100 0x8f0d180 0x5f5e100 0x1dcd6500 0x17d78400 0x8f0d180 0x5f5e100 0x11e1a300 0x8f0d180 0x47868c00 0x17d78400 0x5f5e100 0x46cf7100 0x46cf7100 0x46cf7100 0x46cf7100 0x46cf7100 0x46cf7100 0x46cf7100 0x46cf7100 0x46cf7100 0x1dcd6500>; + assigned-clock-parents = <0x3a 0x08 0x23 0x04 0x23 0x04>; + phandle = <0x23>; + }; + + i2c@fdd40000 { + compatible = "rockchip,rk3399-i2c"; + reg = <0x00 0xfdd40000 0x00 0x1000>; + clocks = <0x3a 0x07 0x3a 0x2d>; + clock-names = "i2c\0pclk"; + interrupts = <0x00 0x2e 0x04>; + pinctrl-names = "default"; + pinctrl-0 = <0x3d>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "okay"; + + tcs4525@1c { + compatible = "tcs,tcs452x"; + reg = <0x1c>; + vin-supply = <0x3e>; + regulator-compatible = "fan53555-reg"; + regulator-name = "vdd_cpu"; + regulator-min-microvolt = <0xadf34>; + regulator-max-microvolt = <0x1535b0>; + regulator-ramp-delay = <0x8fc>; + fcs,suspend-voltage-selector = <0x01>; + regulator-boot-on; + regulator-always-on; + phandle = <0x05>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + pmic@20 { + compatible = "rockchip,rk809"; + reg = <0x20>; + interrupt-parent = <0x3f>; + interrupts = <0x03 0x08>; + pinctrl-names = "default\0pmic-sleep\0pmic-power-off\0pmic-reset"; + pinctrl-0 = <0x40>; + pinctrl-1 = <0x41 0x42>; + pinctrl-2 = <0x43 0x44>; + pinctrl-3 = <0x43 0x45>; + rockchip,system-power-controller; + wakeup-source; + #clock-cells = <0x01>; + clock-output-names = "rk808-clkout1\0rk808-clkout2"; + pmic-reset-func = <0x00>; + not-save-power-en = <0x01>; + vcc1-supply = <0x46>; + vcc2-supply = <0x46>; + vcc3-supply = <0x46>; + vcc4-supply = <0x46>; + vcc5-supply = <0x46>; + vcc6-supply = <0x46>; + vcc7-supply = <0x46>; + vcc8-supply = <0x46>; + vcc9-supply = <0x46>; + phandle = <0x152>; + + pwrkey { + status = "okay"; + }; + + pinctrl_rk8xx { + gpio-controller; + #gpio-cells = <0x02>; + + rk817_slppin_null { + pins = "gpio_slp"; + function = "pin_fun0"; + }; + + rk817_slppin_slp { + pins = "gpio_slp"; + function = "pin_fun1"; + phandle = <0x42>; + }; + + rk817_slppin_pwrdn { + pins = "gpio_slp"; + function = "pin_fun2"; + phandle = <0x44>; + }; + + rk817_slppin_rst { + pins = "gpio_slp"; + function = "pin_fun3"; + phandle = <0x45>; + }; + }; + + regulators { + + DCDC_REG1 { + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <0x7a120>; + regulator-max-microvolt = <0x149970>; + regulator-init-microvolt = <0xdbba0>; + regulator-ramp-delay = <0x1771>; + regulator-initial-mode = <0x02>; + regulator-name = "vdd_logic"; + phandle = <0x75>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + DCDC_REG2 { + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <0x7a120>; + regulator-max-microvolt = <0x149970>; + regulator-init-microvolt = <0xdbba0>; + regulator-ramp-delay = <0x1771>; + regulator-initial-mode = <0x02>; + regulator-name = "vdd_gpu"; + phandle = <0x77>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + DCDC_REG3 { + regulator-always-on; + regulator-boot-on; + regulator-initial-mode = <0x02>; + regulator-name = "vcc_ddr"; + + regulator-state-mem { + regulator-on-in-suspend; + }; + }; + + DCDC_REG4 { + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <0x7a120>; + regulator-max-microvolt = <0x149970>; + regulator-init-microvolt = <0xdbba0>; + regulator-ramp-delay = <0x1771>; + regulator-initial-mode = <0x02>; + regulator-name = "vdd_npu"; + phandle = <0x71>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + LDO_REG1 { + regulator-boot-on; + regulator-always-on; + regulator-min-microvolt = <0xdbba0>; + regulator-max-microvolt = <0xdbba0>; + regulator-name = "vdda0v9_image"; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + LDO_REG2 { + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <0xdbba0>; + regulator-max-microvolt = <0xdbba0>; + regulator-name = "vdda_0v9"; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + LDO_REG3 { + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <0xdbba0>; + regulator-max-microvolt = <0xdbba0>; + regulator-name = "vdda0v9_pmu"; + + regulator-state-mem { + regulator-on-in-suspend; + regulator-suspend-microvolt = <0xdbba0>; + }; + }; + + LDO_REG4 { + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <0x325aa0>; + regulator-max-microvolt = <0x325aa0>; + regulator-name = "vccio_acodec"; + phandle = <0x30>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + LDO_REG5 { + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <0x1b7740>; + regulator-max-microvolt = <0x325aa0>; + regulator-name = "vccio_sd"; + phandle = <0x31>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + LDO_REG6 { + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <0x325aa0>; + regulator-max-microvolt = <0x325aa0>; + regulator-name = "vcc3v3_pmu"; + phandle = <0x2f>; + + regulator-state-mem { + regulator-on-in-suspend; + regulator-suspend-microvolt = <0x325aa0>; + }; + }; + + LDO_REG7 { + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <0x1b7740>; + regulator-max-microvolt = <0x1b7740>; + regulator-name = "vcca_1v8"; + phandle = <0x129>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + LDO_REG8 { + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <0x1b7740>; + regulator-max-microvolt = <0x1b7740>; + regulator-name = "vcca1v8_pmu"; + + regulator-state-mem { + regulator-on-in-suspend; + regulator-suspend-microvolt = <0x1b7740>; + }; + }; + + LDO_REG9 { + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <0x1b7740>; + regulator-max-microvolt = <0x1b7740>; + regulator-name = "vcca1v8_image"; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + DCDC_REG5 { + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <0x1b7740>; + regulator-max-microvolt = <0x1b7740>; + regulator-name = "vcc_1v8"; + phandle = <0x32>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + SWITCH_REG1 { + regulator-always-on; + regulator-boot-on; + regulator-name = "vcc_3v3"; + phandle = <0x33>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + SWITCH_REG2 { + regulator-always-on; + regulator-boot-on; + regulator-name = "vcc3v3_sd"; + phandle = <0xcf>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + }; + + codec { + #sound-dai-cells = <0x00>; + compatible = "rockchip,rk809-codec\0rockchip,rk817-codec"; + clocks = <0x23 0x1a3>; + clock-names = "mclk"; + assigned-clocks = <0x23 0x1a3 0x23 0x1a6>; + assigned-clock-rates = <0xbb8000>; + assigned-clock-parents = <0x23 0x48 0x23 0x48>; + pinctrl-names = "default\0spk_gpio"; + pinctrl-0 = <0x47>; + pinctrl-1 = <0x48>; + hp-volume = <0x03>; + spk-volume = <0x03>; + mic-in-differential; + board-spk-from-hp; + capture-volume = <0x00>; + io-channels = <0x49 0x07>; + hp-det-adc-value = <0x3e8>; + status = "okay"; + hp-adc-drift-scope = <0x64>; + phandle = <0x14b>; + }; + + rtc { + status = "disabled"; + }; + }; + + fusb302@22 { + compatible = "fcs,fusb302"; + reg = <0x22>; + interrupt-parent = <0x3f>; + fcs,int_n = <0x3f 0x11 0x08>; + fusb340-switch-gpios = <0x4a 0x12 0x00>; + pinctrl-names = "default"; + pinctrl-0 = <0x4b>; + vbus-supply = <0x4c>; + status = "okay"; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + reg = <0x00>; + + endpoint@0 { + remote-endpoint = <0x4d>; + phandle = <0x2a>; + }; + }; + }; + + connector { + compatible = "usb-c-connector"; + label = "USB-C"; + data-role = "dual"; + power-role = "dual"; + try-power-role = "sink"; + op-sink-microwatt = <0xf4240>; + sink-pdos = <0x40190fa>; + source-pdos = <0x4019096>; + }; + }; + }; + + serial@fdd50000 { + compatible = "rockchip,rk3568-uart\0snps,dw-apb-uart"; + reg = <0x00 0xfdd50000 0x00 0x100>; + interrupts = <0x00 0x74 0x04>; + clocks = <0x3a 0x0b 0x3a 0x2c>; + clock-names = "baudclk\0apb_pclk"; + reg-shift = <0x02>; + reg-io-width = <0x04>; + dmas = <0x4e 0x00 0x4e 0x01>; + pinctrl-names = "default"; + pinctrl-0 = <0x4f>; + status = "disabled"; + }; + + pwm@fdd70000 { + compatible = "rockchip,rk3568-pwm\0rockchip,rk3328-pwm"; + reg = <0x00 0xfdd70000 0x00 0x10>; + interrupts = <0x00 0x52 0x04>; + #pwm-cells = <0x03>; + pinctrl-names = "active"; + pinctrl-0 = <0x50>; + clocks = <0x3a 0x0d 0x3a 0x30>; + clock-names = "pwm\0pclk"; + status = "disabled"; + }; + + pwm@fdd70010 { + compatible = "rockchip,rk3568-pwm\0rockchip,rk3328-pwm"; + reg = <0x00 0xfdd70010 0x00 0x10>; + interrupts = <0x00 0x52 0x04>; + #pwm-cells = <0x03>; + pinctrl-names = "active"; + pinctrl-0 = <0x51>; + clocks = <0x3a 0x0d 0x3a 0x30>; + clock-names = "pwm\0pclk"; + status = "disabled"; + }; + + pwm@fdd70020 { + compatible = "rockchip,rk3568-pwm\0rockchip,rk3328-pwm"; + reg = <0x00 0xfdd70020 0x00 0x10>; + interrupts = <0x00 0x52 0x04>; + #pwm-cells = <0x03>; + pinctrl-names = "active"; + pinctrl-0 = <0x52>; + clocks = <0x3a 0x0d 0x3a 0x30>; + clock-names = "pwm\0pclk"; + status = "disabled"; + }; + + pwm@fdd70030 { + compatible = "rockchip,rk3568-pwm\0rockchip,rk3328-pwm"; + reg = <0x00 0xfdd70030 0x00 0x10>; + interrupts = <0x00 0x52 0x04 0x00 0x56 0x04>; + #pwm-cells = <0x03>; + pinctrl-names = "active"; + pinctrl-0 = <0x53>; + clocks = <0x3a 0x0d 0x3a 0x30>; + clock-names = "pwm\0pclk"; + status = "disabled"; + }; + + power-management@fdd90000 { + compatible = "rockchip,rk3568-pmu\0syscon\0simple-mfd"; + reg = <0x00 0xfdd90000 0x00 0x1000>; + + power-controller { + compatible = "rockchip,rk3568-power-controller"; + #power-domain-cells = <0x01>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "okay"; + phandle = <0x25>; + + pd_npu@6 { + reg = <0x06>; + clocks = <0x23 0x27 0x23 0x25 0x23 0x26>; + pm_qos = <0x54>; + }; + + pd_gpu@7 { + reg = <0x07>; + clocks = <0x23 0x19 0x23 0x1a>; + pm_qos = <0x55>; + }; + + pd_vi@8 { + reg = <0x08>; + clocks = <0x23 0xcc 0x23 0xcd>; + pm_qos = <0x56 0x57 0x58>; + }; + + pd_vo@9 { + reg = <0x09>; + clocks = <0x23 0xda 0x23 0xdb 0x23 0xdc>; + pm_qos = <0x59 0x5a 0x5b>; + }; + + pd_rga@10 { + reg = <0x0a>; + clocks = <0x23 0xf1 0x23 0xf2>; + pm_qos = <0x5c 0x5d 0x5e 0x5f 0x60 0x61>; + }; + + pd_vpu@11 { + reg = <0x0b>; + clocks = <0x23 0xed>; + pm_qos = <0x62>; + }; + + pd_rkvdec@13 { + clocks = <0x23 0x107>; + reg = <0x0d>; + pm_qos = <0x63>; + }; + + pd_rkvenc@14 { + reg = <0x0e>; + clocks = <0x23 0x102>; + pm_qos = <0x64 0x65 0x66>; + }; + + pd_pipe@15 { + reg = <0x0f>; + clocks = <0x23 0x7f>; + pm_qos = <0x67 0x68 0x69 0x6a 0x6b 0x6c 0x6d 0x6e>; + }; + }; + }; + + pvtm@fde00000 { + compatible = "rockchip,rk3568-core-pvtm"; + reg = <0x00 0xfde00000 0x00 0x100>; + #address-cells = <0x01>; + #size-cells = <0x00>; + + pvtm@0 { + reg = <0x00>; + clocks = <0x23 0x13 0x23 0x1c2>; + clock-names = "clk\0pclk"; + resets = <0x23 0x1a 0x23 0x19>; + reset-names = "rts\0rst-p"; + thermal-zone = "soc-thermal"; + }; + }; + + npu@fde40000 { + compatible = "rockchip,rk3568-rknpu\0rockchip,rknpu"; + reg = <0x00 0xfde40000 0x00 0x10000>; + interrupts = <0x00 0x97 0x04>; + clocks = <0x02 0x02 0x23 0x23 0x23 0x28 0x23 0x29>; + clock-names = "scmi_clk\0clk\0aclk\0hclk"; + assigned-clocks = <0x23 0x23>; + assigned-clock-rates = <0x23c34600>; + resets = <0x23 0x2b 0x23 0x2c>; + reset-names = "srst_a\0srst_h"; + power-domains = <0x25 0x06>; + operating-points-v2 = <0x6f>; + iommus = <0x70>; + status = "okay"; + rknpu-supply = <0x71>; + }; + + npu-opp-table { + compatible = "operating-points-v2"; + mbist-vmin = <0xc96a8 0xdbba0 0xe7ef0>; + nvmem-cells = <0x72 0x07 0x08 0x73 0x0a 0x0b>; + nvmem-cell-names = "leakage\0pvtm\0mbist-vmin\0opp-info\0specification_serial_number\0remark_spec_serial_number"; + rockchip,supported-hw; + rockchip,max-volt = <0xf4240>; + rockchip,temp-hysteresis = <0x1388>; + rockchip,low-temp = <0x00>; + rockchip,low-temp-adjust-volt = <0x00 0x3e8 0xc350>; + rockchip,pvtm-voltage-sel = <0x00 0x14820 0x00 0x14821 0x153d8 0x01 0x153d9 0x16378 0x02 0x16379 0x186a0 0x03>; + rockchip,pvtm-ch = <0x00 0x05>; + phandle = <0x6f>; + + opp-200000000 { + opp-supported-hw = <0xfb 0xffff>; + opp-hz = <0x00 0xbebc200>; + opp-microvolt = <0xcf850 0xcf850 0xf4240>; + }; + + opp-300000000 { + opp-supported-hw = <0xfb 0xffff>; + opp-hz = <0x00 0x11b3dc40>; + opp-microvolt = <0xcf850 0xcf850 0xf4240>; + }; + + opp-400000000 { + opp-supported-hw = <0xfb 0xffff>; + opp-hz = <0x00 0x17d78400>; + opp-microvolt = <0xcf850 0xcf850 0xf4240>; + }; + + opp-600000000 { + opp-supported-hw = <0xfb 0xffff>; + opp-hz = <0x00 0x23c34600>; + opp-microvolt = <0xcf850 0xcf850 0xf4240>; + }; + + opp-700000000 { + opp-supported-hw = <0xfb 0xffff>; + opp-hz = <0x00 0x29b92700>; + opp-microvolt = <0xd59f8 0xd59f8 0xf4240>; + opp-microvolt-L0 = <0xd59f8 0xd59f8 0xf4240>; + opp-microvolt-L1 = <0xcf850 0xcf850 0xf4240>; + opp-microvolt-L2 = <0xcf850 0xcf850 0xf4240>; + opp-microvolt-L3 = <0xcf850 0xcf850 0xf4240>; + }; + + opp-800000000 { + opp-supported-hw = <0xfb 0xffff>; + opp-hz = <0x00 0x2faf0800>; + opp-microvolt = <0xe1d48 0xe1d48 0xf4240>; + opp-microvolt-L0 = <0xe1d48 0xe1d48 0xf4240>; + opp-microvolt-L1 = <0xdbba0 0xdbba0 0xf4240>; + opp-microvolt-L2 = <0xd59f8 0xd59f8 0xf4240>; + opp-microvolt-L3 = <0xd59f8 0xd59f8 0xf4240>; + }; + + opp-900000000 { + opp-supported-hw = <0xf9 0xffff>; + opp-hz = <0x00 0x35a4e900>; + opp-microvolt = <0xee098 0xee098 0xf4240>; + opp-microvolt-L0 = <0xee098 0xee098 0xf4240>; + opp-microvolt-L1 = <0xe7ef0 0xe7ef0 0xf4240>; + opp-microvolt-L2 = <0xe1d48 0xe1d48 0xf4240>; + opp-microvolt-L3 = <0xdbba0 0xdbba0 0xf4240>; + }; + + opp-1000000000 { + opp-supported-hw = <0xf9 0xffff>; + opp-hz = <0x00 0x3b9aca00>; + opp-microvolt = <0xf4240 0xf4240 0xf4240>; + opp-microvolt-L0 = <0xf4240 0xf4240 0xf4240>; + opp-microvolt-L1 = <0xee098 0xee098 0xf4240>; + opp-microvolt-L2 = <0xe7ef0 0xe7ef0 0xf4240>; + opp-microvolt-L3 = <0xe1d48 0xe1d48 0xf4240>; + status = "disabled"; + }; + + opp-j-600000000 { + opp-supported-hw = <0x04 0xffff>; + opp-hz = <0x00 0x23c34600>; + opp-microvolt = <0xdbba0 0xdbba0 0xf4240>; + }; + + opp-m-900000000 { + opp-supported-hw = <0x02 0xffff>; + opp-hz = <0x00 0x35a4e900>; + opp-microvolt = <0xe1d48 0xe1d48 0xf4240>; + }; + }; + + bus-npu { + compatible = "rockchip,rk3568-bus"; + rockchip,busfreq-policy = "clkfreq"; + clocks = <0x02 0x02>; + clock-names = "bus"; + operating-points-v2 = <0x74>; + status = "okay"; + bus-supply = <0x75>; + pvtm-supply = <0x05>; + }; + + bus-npu-opp-table { + compatible = "operating-points-v2"; + opp-shared; + nvmem-cells = <0x07>; + nvmem-cell-names = "pvtm"; + rockchip,pvtm-voltage-sel = <0x00 0x14820 0x00 0x14821 0x16378 0x01 0x16379 0x186a0 0x02>; + rockchip,pvtm-ch = <0x00 0x05>; + phandle = <0x74>; + + opp-700000000 { + opp-hz = <0x00 0x29b92700>; + opp-microvolt = <0xdbba0>; + opp-microvolt-L0 = <0xdbba0>; + opp-microvolt-L1 = <0xd59f8>; + opp-microvolt-L2 = <0xd59f8>; + }; + + opp-900000000 { + opp-hz = <0x00 0x35a4e900>; + opp-microvolt = <0xdbba0>; + }; + + opp-1000000000 { + opp-hz = <0x00 0x3b9aca00>; + opp-microvolt = <0xe7ef0>; + opp-microvolt-L0 = <0xe7ef0>; + opp-microvolt-L1 = <0xe1d48>; + opp-microvolt-L2 = <0xdbba0>; + }; + }; + + iommu@fde4b000 { + compatible = "rockchip,iommu-v2"; + reg = <0x00 0xfde4b000 0x00 0x40>; + interrupts = <0x00 0x97 0x04>; + interrupt-names = "rknpu_mmu"; + clocks = <0x23 0x28 0x23 0x29>; + clock-names = "aclk\0iface"; + power-domains = <0x25 0x06>; + #iommu-cells = <0x00>; + status = "okay"; + phandle = <0x70>; + }; + + gpu@fde60000 { + compatible = "arm,mali-bifrost"; + reg = <0x00 0xfde60000 0x00 0x4000>; + interrupts = <0x00 0x27 0x04 0x00 0x29 0x04 0x00 0x28 0x04>; + interrupt-names = "GPU\0MMU\0JOB"; + upthreshold = <0x28>; + downdifferential = <0x0a>; + clocks = <0x02 0x01 0x23 0x1b>; + clock-names = "clk_mali\0clk_gpu"; + power-domains = <0x25 0x07>; + #cooling-cells = <0x02>; + operating-points-v2 = <0x76>; + status = "okay"; + mali-supply = <0x77>; + phandle = <0x21>; + + power-model { + compatible = "simple-power-model"; + leakage-range = <0x05 0x0f>; + ls = <0xffffa23e 0x5927 0x00>; + static-coefficient = <0x186a0>; + dynamic-coefficient = <0x3b9>; + ts = <0xfffe56a6 0xf87a 0xfffffab5 0x14>; + thermal-zone = "gpu-thermal"; + }; + }; + + opp-table2 { + compatible = "operating-points-v2"; + mbist-vmin = <0xc96a8 0xdbba0 0xe7ef0>; + nvmem-cells = <0x78 0x07 0x08 0x79 0x0a 0x0b>; + nvmem-cell-names = "leakage\0pvtm\0mbist-vmin\0opp-info\0specification_serial_number\0remark_spec_serial_number"; + rockchip,supported-hw; + rockchip,max-volt = <0xf4240>; + rockchip,temp-hysteresis = <0x1388>; + rockchip,low-temp = <0x00>; + rockchip,low-temp-adjust-volt = <0x00 0x320 0xc350>; + rockchip,pvtm-voltage-sel = <0x00 0x14820 0x00 0x14821 0x153d8 0x01 0x153d9 0x16378 0x02 0x16379 0x186a0 0x03>; + rockchip,pvtm-ch = <0x00 0x05>; + phandle = <0x76>; + + opp-200000000 { + opp-supported-hw = <0xfb 0xffff>; + opp-hz = <0x00 0xbebc200>; + opp-microvolt = <0xcf850 0xcf850 0xf4240>; + }; + + opp-300000000 { + opp-supported-hw = <0xfb 0xffff>; + opp-hz = <0x00 0x11e1a300>; + opp-microvolt = <0xcf850 0xcf850 0xf4240>; + }; + + opp-400000000 { + opp-supported-hw = <0xfb 0xffff>; + opp-hz = <0x00 0x17d78400>; + opp-microvolt = <0xcf850 0xcf850 0xf4240>; + }; + + opp-600000000 { + opp-supported-hw = <0xfb 0xffff>; + opp-hz = <0x00 0x23c34600>; + opp-microvolt = <0xdbba0 0xdbba0 0xf4240>; + opp-microvolt-L0 = <0xdbba0 0xdbba0 0xf4240>; + opp-microvolt-L1 = <0xd59f8 0xd59f8 0xf4240>; + opp-microvolt-L2 = <0xcf850 0xcf850 0xf4240>; + opp-microvolt-L3 = <0xcf850 0xcf850 0xf4240>; + }; + + opp-700000000 { + opp-supported-hw = <0xfb 0xffff>; + opp-hz = <0x00 0x29b92700>; + opp-microvolt = <0xe7ef0 0xe7ef0 0xf4240>; + opp-microvolt-L0 = <0xe7ef0 0xe7ef0 0xf4240>; + opp-microvolt-L1 = <0xe1d48 0xe1d48 0xf4240>; + opp-microvolt-L2 = <0xdbba0 0xdbba0 0xf4240>; + opp-microvolt-L3 = <0xd59f8 0xd59f8 0xf4240>; + }; + + opp-800000000 { + opp-supported-hw = <0xf9 0xffff>; + opp-hz = <0x00 0x2faf0800>; + opp-microvolt = <0xf4240 0xf4240 0xf4240>; + opp-microvolt-L0 = <0xf4240 0xf4240 0xf4240>; + opp-microvolt-L1 = <0xee098 0xee098 0xf4240>; + opp-microvolt-L2 = <0xe7ef0 0xe7ef0 0xf4240>; + opp-microvolt-L3 = <0xe1d48 0xe1d48 0xf4240>; + }; + + opp-j-600000000 { + opp-supported-hw = <0x04 0xffff>; + opp-hz = <0x00 0x23c34600>; + opp-microvolt = <0xdbba0 0xdbba0 0xf4240>; + }; + + opp-m-800000000 { + opp-supported-hw = <0x02 0xffff>; + opp-hz = <0x00 0x2faf0800>; + opp-microvolt = <0xe7ef0 0xe7ef0 0xf4240>; + }; + }; + + pvtm@fde80000 { + compatible = "rockchip,rk3568-gpu-pvtm"; + reg = <0x00 0xfde80000 0x00 0x100>; + #address-cells = <0x01>; + #size-cells = <0x00>; + + pvtm@1 { + reg = <0x01>; + clocks = <0x23 0x1e 0x23 0x1d>; + clock-names = "clk\0pclk"; + resets = <0x23 0x24 0x23 0x23>; + reset-names = "rts\0rst-p"; + thermal-zone = "gpu-thermal"; + }; + }; + + pvtm@fde90000 { + compatible = "rockchip,rk3568-npu-pvtm"; + reg = <0x00 0xfde90000 0x00 0x100>; + #address-cells = <0x01>; + #size-cells = <0x00>; + + pvtm@2 { + reg = <0x02>; + clocks = <0x23 0x2b 0x23 0x2a 0x23 0x25>; + clock-names = "clk\0pclk\0hclk"; + resets = <0x23 0x2e 0x23 0x2d>; + reset-names = "rts\0rst-p"; + thermal-zone = "soc-thermal"; + }; + }; + + vdpu@fdea0400 { + compatible = "rockchip,vpu-decoder-v2"; + reg = <0x00 0xfdea0400 0x00 0x400>; + interrupts = <0x00 0x8b 0x04>; + interrupt-names = "irq_dec"; + clocks = <0x23 0xee 0x23 0xef>; + clock-names = "aclk_vcodec\0hclk_vcodec"; + resets = <0x23 0x11a 0x23 0x11b>; + reset-names = "video_a\0video_h"; + iommus = <0x7a>; + power-domains = <0x25 0x0b>; + rockchip,srv = <0x7b>; + rockchip,taskqueue-node = <0x00>; + rockchip,resetgroup-node = <0x00>; + status = "okay"; + }; + + iommu@fdea0800 { + compatible = "rockchip,iommu-v2"; + reg = <0x00 0xfdea0800 0x00 0x40>; + interrupts = <0x00 0x8a 0x04>; + interrupt-names = "vdpu_mmu"; + clock-names = "aclk\0iface"; + clocks = <0x23 0xee 0x23 0xef>; + power-domains = <0x25 0x0b>; + #iommu-cells = <0x00>; + status = "okay"; + phandle = <0x7a>; + }; + + rk_rga@fdeb0000 { + compatible = "rockchip,rga2"; + reg = <0x00 0xfdeb0000 0x00 0x1000>; + interrupts = <0x00 0x5a 0x04>; + clocks = <0x23 0xf3 0x23 0xf4 0x23 0xf5>; + clock-names = "aclk_rga\0hclk_rga\0clk_rga"; + power-domains = <0x25 0x0a>; + status = "okay"; + }; + + ebc@fdec0000 { + compatible = "rockchip,rk3568-ebc-tcon"; + reg = <0x00 0xfdec0000 0x00 0x5000>; + interrupts = <0x00 0x11 0x04>; + clocks = <0x23 0xf9 0x23 0xfa>; + clock-names = "hclk\0dclk"; + power-domains = <0x25 0x0a>; + rockchip,grf = <0x3b>; + pinctrl-names = "default"; + pinctrl-0 = <0x7c>; + status = "disabled"; + }; + + jpegd@fded0000 { + compatible = "rockchip,rkv-jpeg-decoder-v1"; + reg = <0x00 0xfded0000 0x00 0x400>; + interrupts = <0x00 0x3e 0x04>; + clocks = <0x23 0xfb 0x23 0xfc>; + clock-names = "aclk_vcodec\0hclk_vcodec"; + rockchip,disable-auto-freq; + resets = <0x23 0x12c 0x23 0x12d>; + reset-names = "video_a\0video_h"; + iommus = <0x7d>; + rockchip,srv = <0x7b>; + rockchip,taskqueue-node = <0x01>; + rockchip,resetgroup-node = <0x01>; + power-domains = <0x25 0x0a>; + status = "okay"; + }; + + iommu@fded0480 { + compatible = "rockchip,iommu-v2"; + reg = <0x00 0xfded0480 0x00 0x40>; + interrupts = <0x00 0x3d 0x04>; + interrupt-names = "jpegd_mmu"; + clock-names = "aclk\0iface"; + clocks = <0x23 0xfb 0x23 0xfc>; + power-domains = <0x25 0x0a>; + #iommu-cells = <0x00>; + status = "okay"; + phandle = <0x7d>; + }; + + vepu@fdee0000 { + compatible = "rockchip,vpu-encoder-v2"; + reg = <0x00 0xfdee0000 0x00 0x400>; + interrupts = <0x00 0x40 0x04>; + clocks = <0x23 0xfd 0x23 0xfe>; + clock-names = "aclk_vcodec\0hclk_vcodec"; + rockchip,disable-auto-freq; + resets = <0x23 0x12e 0x23 0x12f>; + reset-names = "video_a\0video_h"; + iommus = <0x7e>; + rockchip,srv = <0x7b>; + rockchip,taskqueue-node = <0x02>; + rockchip,resetgroup-node = <0x02>; + power-domains = <0x25 0x0a>; + status = "okay"; + }; + + iommu@fdee0800 { + compatible = "rockchip,iommu-v2"; + reg = <0x00 0xfdee0800 0x00 0x40>; + interrupts = <0x00 0x3f 0x04>; + interrupt-names = "vepu_mmu"; + clock-names = "aclk\0iface"; + clocks = <0x23 0xfd 0x23 0xfe>; + power-domains = <0x25 0x0a>; + #iommu-cells = <0x00>; + status = "okay"; + phandle = <0x7e>; + }; + + iep@fdef0000 { + compatible = "rockchip,iep-v2"; + reg = <0x00 0xfdef0000 0x00 0x500>; + interrupts = <0x00 0x38 0x04>; + clocks = <0x23 0xf6 0x23 0xf7 0x23 0xf8>; + clock-names = "aclk\0hclk\0sclk"; + resets = <0x23 0x127 0x23 0x128 0x23 0x129>; + reset-names = "rst_a\0rst_h\0rst_s"; + power-domains = <0x25 0x0a>; + rockchip,srv = <0x7b>; + rockchip,taskqueue-node = <0x05>; + rockchip,resetgroup-node = <0x05>; + iommus = <0x7f>; + status = "okay"; + }; + + iommu@fdef0800 { + compatible = "rockchip,iommu-v2"; + reg = <0x00 0xfdef0800 0x00 0x100>; + interrupts = <0x00 0x38 0x04>; + interrupt-names = "iep_mmu"; + clocks = <0x23 0xf6 0x23 0xf7>; + clock-names = "aclk\0iface"; + #iommu-cells = <0x00>; + power-domains = <0x25 0x0a>; + status = "okay"; + phandle = <0x7f>; + }; + + eink@fdf00000 { + compatible = "rockchip,rk3568-eink-tcon"; + reg = <0x00 0xfdf00000 0x00 0x74>; + interrupts = <0x00 0xb2 0x04>; + clocks = <0x23 0xff 0x23 0x100>; + clock-names = "pclk\0hclk"; + status = "disabled"; + }; + + rkvenc@fdf40000 { + compatible = "rockchip,rkv-encoder-v1"; + reg = <0x00 0xfdf40000 0x00 0x400>; + interrupts = <0x00 0x8c 0x04>; + interrupt-names = "irq_enc"; + clocks = <0x23 0x103 0x23 0x104 0x23 0x105>; + clock-names = "aclk_vcodec\0hclk_vcodec\0clk_core"; + rockchip,normal-rates = <0x11b3dc40 0x00 0x11b3dc40>; + resets = <0x23 0x133 0x23 0x134 0x23 0x135>; + reset-names = "video_a\0video_h\0video_core"; + assigned-clocks = <0x23 0x103 0x23 0x105>; + assigned-clock-rates = <0x11b3dc40 0x11b3dc40>; + iommus = <0x80>; + node-name = "rkvenc"; + rockchip,srv = <0x7b>; + rockchip,taskqueue-node = <0x03>; + rockchip,resetgroup-node = <0x03>; + power-domains = <0x25 0x0e>; + operating-points-v2 = <0x81>; + status = "okay"; + venc-supply = <0x75>; + }; + + rkvenc-opp-table { + compatible = "operating-points-v2"; + nvmem-cells = <0x07>; + nvmem-cell-names = "pvtm"; + rockchip,pvtm-voltage-sel = <0x00 0x14820 0x00 0x14821 0x16378 0x01 0x16379 0x186a0 0x02>; + rockchip,pvtm-ch = <0x00 0x05>; + phandle = <0x81>; + + opp-297000000 { + opp-hz = <0x00 0x11b3dc40>; + opp-microvolt = <0xdbba0>; + opp-microvolt-L0 = <0xdbba0>; + opp-microvolt-L1 = <0xd59f8>; + opp-microvolt-L2 = <0xd59f8>; + }; + + opp-400000000 { + opp-hz = <0x00 0x17d78400>; + opp-microvolt = <0xe7ef0>; + opp-microvolt-L0 = <0xe7ef0>; + opp-microvolt-L1 = <0xe1d48>; + opp-microvolt-L2 = <0xdbba0>; + }; + }; + + iommu@fdf40f00 { + compatible = "rockchip,iommu-v2"; + reg = <0x00 0xfdf40f00 0x00 0x40 0x00 0xfdf40f40 0x00 0x40>; + interrupts = <0x00 0x8d 0x04 0x00 0x8e 0x04>; + interrupt-names = "rkvenc_mmu0\0rkvenc_mmu1"; + clocks = <0x23 0x103 0x23 0x104>; + clock-names = "aclk\0iface"; + rockchip,disable-mmu-reset; + rockchip,enable-cmd-retry; + #iommu-cells = <0x00>; + power-domains = <0x25 0x0e>; + status = "okay"; + phandle = <0x80>; + }; + + rkvdec@fdf80200 { + compatible = "rockchip,rkv-decoder-rk3568\0rockchip,rkv-decoder-v2"; + reg = <0x00 0xfdf80200 0x00 0x400 0x00 0xfdf80100 0x00 0x100>; + reg-names = "regs\0link"; + interrupts = <0x00 0x5b 0x04>; + interrupt-names = "irq_dec"; + clocks = <0x23 0x108 0x23 0x109 0x23 0x10a 0x23 0x10b 0x23 0x10c>; + clock-names = "aclk_vcodec\0hclk_vcodec\0clk_cabac\0clk_core\0clk_hevc_cabac"; + rockchip,normal-rates = <0x11b3dc40 0x00 0x11b3dc40 0x11b3dc40 0x23c34600>; + rockchip,advanced-rates = <0x179a7b00 0x00 0x179a7b00 0x179a7b00 0x23c34600>; + rockchip,default-max-load = <0x1fe000>; + resets = <0x23 0x142 0x23 0x143 0x23 0x144 0x23 0x145 0x23 0x146>; + assigned-clocks = <0x23 0x108 0x23 0x10a 0x23 0x10b 0x23 0x10c>; + assigned-clock-rates = <0x11b3dc40 0x11b3dc40 0x11b3dc40 0x11b3dc40>; + reset-names = "video_a\0video_h\0video_cabac\0video_core\0video_hevc_cabac"; + power-domains = <0x25 0x0d>; + operating-points-v2 = <0x82>; + vdec-supply = <0x75>; + iommus = <0x83>; + rockchip,srv = <0x7b>; + rockchip,taskqueue-node = <0x04>; + rockchip,resetgroup-node = <0x04>; + rockchip,sram = <0x84>; + rockchip,rcb-iova = <0x10000000 0x10000>; + rockchip,rcb-min-width = <0x200>; + rockchip,task-capacity = <0x10>; + status = "okay"; + }; + + rkvdec-opp-table { + compatible = "operating-points-v2"; + nvmem-cells = <0x85 0x07>; + nvmem-cell-names = "leakage\0pvtm"; + rockchip,leakage-voltage-sel = <0x01 0x50 0x00 0x51 0xfe 0x01>; + rockchip,pvtm-voltage-sel = <0x00 0x14820 0x00 0x14821 0x186a0 0x01>; + rockchip,pvtm-ch = <0x00 0x05>; + phandle = <0x82>; + + opp-297000000 { + opp-hz = <0x00 0x11b3dc40>; + opp-microvolt = <0xdbba0>; + opp-microvolt-L0 = <0xdbba0>; + opp-microvolt-L1 = <0xd59f8>; + }; + + opp-400000000 { + opp-hz = <0x00 0x17d78400>; + opp-microvolt = <0xdbba0>; + }; + }; + + iommu@fdf80800 { + compatible = "rockchip,iommu-v2"; + reg = <0x00 0xfdf80800 0x00 0x40 0x00 0xfdf80840 0x00 0x40>; + interrupts = <0x00 0x5c 0x04>; + interrupt-names = "rkvdec_mmu"; + clocks = <0x23 0x108 0x23 0x109>; + clock-names = "aclk\0iface"; + power-domains = <0x25 0x0d>; + #iommu-cells = <0x00>; + status = "okay"; + phandle = <0x83>; + }; + + mipi-csi2-hw@fdfb0000 { + compatible = "rockchip,rk3568-mipi-csi2-hw"; + reg = <0x00 0xfdfb0000 0x00 0x10000>; + reg-names = "csihost_regs"; + interrupts = <0x00 0x08 0x04 0x00 0x09 0x04>; + interrupt-names = "csi-intr1\0csi-intr2"; + clocks = <0x23 0xd5>; + clock-names = "pclk_csi2host"; + resets = <0x23 0xff>; + reset-names = "srst_csihost_p"; + status = "okay"; + phandle = <0x1e>; + }; + + rkcif@fdfe0000 { + compatible = "rockchip,rk3568-cif"; + reg = <0x00 0xfdfe0000 0x00 0x8000>; + reg-names = "cif_regs"; + interrupts = <0x00 0x92 0x04>; + interrupt-names = "cif-intr"; + clocks = <0x23 0xce 0x23 0xcf 0x23 0xd0 0x23 0xd1>; + clock-names = "aclk_cif\0hclk_cif\0dclk_cif\0iclk_cif_g"; + resets = <0x23 0xf7 0x23 0xf8 0x23 0xf9 0x23 0xfb 0x23 0xfa>; + reset-names = "rst_cif_a\0rst_cif_h\0rst_cif_d\0rst_cif_p\0rst_cif_i"; + assigned-clocks = <0x23 0xd0>; + assigned-clock-rates = <0x11e1a300>; + power-domains = <0x25 0x08>; + rockchip,grf = <0x3b>; + iommus = <0x86>; + status = "disabled"; + phandle = <0x87>; + }; + + iommu@fdfe0800 { + compatible = "rockchip,iommu-v2"; + reg = <0x00 0xfdfe0800 0x00 0x100>; + interrupts = <0x00 0x92 0x04>; + interrupt-names = "cif_mmu"; + clocks = <0x23 0xce 0x23 0xcf>; + clock-names = "aclk\0iface"; + power-domains = <0x25 0x08>; + rockchip,disable-mmu-reset; + #iommu-cells = <0x00>; + status = "disabled"; + phandle = <0x86>; + }; + + rkcif_dvp { + compatible = "rockchip,rkcif-dvp"; + rockchip,hw = <0x87>; + status = "disabled"; + phandle = <0x88>; + }; + + rkcif_dvp_sditf { + compatible = "rockchip,rkcif-sditf"; + rockchip,cif = <0x88>; + status = "disabled"; + }; + + rkcif_mipi_lvds { + compatible = "rockchip,rkcif-mipi-lvds"; + rockchip,hw = <0x87>; + status = "disabled"; + phandle = <0x89>; + }; + + rkcif_mipi_lvds_sditf { + compatible = "rockchip,rkcif-sditf"; + rockchip,cif = <0x89>; + status = "disabled"; + }; + + rkisp@fdff0000 { + compatible = "rockchip,rk3568-rkisp"; + reg = <0x00 0xfdff0000 0x00 0x10000>; + interrupts = <0x00 0x39 0x04 0x00 0x3a 0x04 0x00 0x3c 0x04>; + interrupt-names = "mipi_irq\0mi_irq\0isp_irq"; + clocks = <0x23 0xd2 0x23 0xd3 0x23 0xd4>; + clock-names = "aclk_isp\0hclk_isp\0clk_isp"; + resets = <0x23 0xfd 0x23 0xfc>; + reset-names = "isp\0isp-h"; + rockchip,grf = <0x3b>; + power-domains = <0x25 0x08>; + iommus = <0x8a>; + rockchip,iq-feature = <0x1bfb 0xfffe67ff>; + status = "okay"; + phandle = <0x8b>; + }; + + iommu@fdff1a00 { + compatible = "rockchip,iommu-v2"; + reg = <0x00 0xfdff1a00 0x00 0x100>; + interrupts = <0x00 0x3b 0x04>; + interrupt-names = "isp_mmu"; + clocks = <0x23 0xd2 0x23 0xd3>; + clock-names = "aclk\0iface"; + power-domains = <0x25 0x08>; + #iommu-cells = <0x00>; + rockchip,disable-mmu-reset; + status = "okay"; + phandle = <0x8a>; + }; + + rkisp-vir0 { + compatible = "rockchip,rkisp-vir"; + rockchip,hw = <0x8b>; + status = "okay"; + + port { + #address-cells = <0x01>; + #size-cells = <0x00>; + + endpoint@0 { + reg = <0x00>; + remote-endpoint = <0x8c>; + phandle = <0x134>; + }; + }; + }; + + rkisp-vir1 { + compatible = "rockchip,rkisp-vir"; + rockchip,hw = <0x8b>; + status = "disabled"; + }; + + uio@fe010000 { + compatible = "rockchip,uio-gmac"; + reg = <0x00 0xfe010000 0x00 0x10000>; + rockchip,ethernet = <0x8d>; + status = "disabled"; + }; + + ethernet@fe010000 { + local-mac-address = [5e 4f fd 70 05 c6]; + compatible = "rockchip,rk3568-gmac\0snps,dwmac-4.20a"; + reg = <0x00 0xfe010000 0x00 0x10000>; + interrupts = <0x00 0x20 0x04 0x00 0x1d 0x04>; + interrupt-names = "macirq\0eth_wake_irq"; + rockchip,grf = <0x3b>; + clocks = <0x23 0x186 0x23 0x189 0x23 0x189 0x23 0xc7 0x23 0xc3 0x23 0xc4 0x23 0x189 0x23 0xc8 0x23 0xac 0x23 0xab>; + clock-names = "stmmaceth\0mac_clk_rx\0mac_clk_tx\0clk_mac_refout\0aclk_mac\0pclk_mac\0clk_mac_speed\0ptp_ref\0pclk_xpcs\0clk_xpcs_eee"; + resets = <0x23 0xec>; + reset-names = "stmmaceth"; + snps,mixed-burst; + snps,tso; + snps,axi-config = <0x8e>; + snps,mtl-rx-config = <0x8f>; + snps,mtl-tx-config = <0x90>; + status = "okay"; + phy-mode = "rgmii"; + clock_in_out = "input"; + snps,reset-gpio = <0x91 0x19 0x01>; + snps,reset-active-low; + snps,reset-delays-us = <0x00 0x4e20 0x186a0>; + assigned-clocks = <0x23 0x189 0x23 0x186>; + assigned-clock-parents = <0x23 0x187 0x92>; + pinctrl-names = "default"; + pinctrl-0 = <0x93 0x94 0x95 0x96 0x97 0x98>; + tx_delay = <0x3e>; + rx_delay = <0x32>; + phy-handle = <0x99>; + phandle = <0x8d>; + + mdio { + compatible = "snps,dwmac-mdio"; + #address-cells = <0x01>; + #size-cells = <0x00>; + + phy@0 { + compatible = "ethernet-phy-ieee802.3-c22"; + reg = <0x00>; + led_status_value = <0x6940>; + phandle = <0x99>; + }; + }; + + stmmac-axi-config { + snps,wr_osr_lmt = <0x04>; + snps,rd_osr_lmt = <0x08>; + snps,blen = <0x00 0x00 0x00 0x00 0x10 0x08 0x04>; + phandle = <0x8e>; + }; + + rx-queues-config { + snps,rx-queues-to-use = <0x01>; + phandle = <0x8f>; + + queue0 { + }; + }; + + tx-queues-config { + snps,tx-queues-to-use = <0x01>; + phandle = <0x90>; + + queue0 { + }; + }; + }; + + vop@fe040000 { + compatible = "rockchip,rk3568-vop"; + reg = <0x00 0xfe040000 0x00 0x3000 0x00 0xfe044000 0x00 0x1000>; + reg-names = "regs\0gamma_lut"; + rockchip,grf = <0x3b>; + interrupts = <0x00 0x94 0x04>; + clocks = <0x23 0xdd 0x23 0xde 0x23 0xdf 0x23 0xe0 0x23 0xe1>; + clock-names = "aclk_vop\0hclk_vop\0dclk_vp0\0dclk_vp1\0dclk_vp2"; + iommus = <0x9a>; + power-domains = <0x25 0x09>; + status = "okay"; + assigned-clocks = <0x23 0xdf 0x23 0xe0>; + assigned-clock-parents = <0x3a 0x02 0x23 0x05>; + disable-win-move; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + phandle = <0x15>; + + port@0 { + rockchip,primary-plane = <0x04>; + rockchip,plane-mask = <0x15>; + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x00>; + + endpoint@0 { + reg = <0x00>; + remote-endpoint = <0x9b>; + phandle = <0x17>; + }; + + endpoint@1 { + reg = <0x01>; + remote-endpoint = <0x9c>; + phandle = <0x18>; + }; + + endpoint@2 { + reg = <0x02>; + remote-endpoint = <0x9d>; + phandle = <0x19>; + }; + + endpoint@3 { + reg = <0x03>; + remote-endpoint = <0x9e>; + phandle = <0x1a>; + }; + }; + + port@1 { + rockchip,primary-plane = <0x05>; + rockchip,plane-mask = <0x22>; + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x01>; + + endpoint@0 { + reg = <0x00>; + remote-endpoint = <0x9f>; + phandle = <0xa8>; + }; + + endpoint@1 { + reg = <0x01>; + remote-endpoint = <0xa0>; + phandle = <0xa9>; + }; + + endpoint@2 { + reg = <0x02>; + remote-endpoint = <0xa1>; + phandle = <0xaf>; + }; + + endpoint@3 { + reg = <0x03>; + remote-endpoint = <0xa2>; + phandle = <0xad>; + }; + + endpoint@4 { + reg = <0x04>; + remote-endpoint = <0xa3>; + phandle = <0x1b>; + }; + + endpoint@5 { + reg = <0x05>; + remote-endpoint = <0xa4>; + phandle = <0x37>; + }; + }; + + port@2 { + rockchip,primary-plane = <0x03>; + rockchip,plane-mask = <0x08>; + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x02>; + + endpoint@0 { + reg = <0x00>; + remote-endpoint = <0xa5>; + phandle = <0x35>; + }; + + endpoint@1 { + reg = <0x01>; + remote-endpoint = <0xa6>; + phandle = <0x1c>; + }; + + endpoint@2 { + reg = <0x02>; + remote-endpoint = <0xa7>; + phandle = <0x38>; + }; + }; + }; + }; + + iommu@fe043e00 { + compatible = "rockchip,iommu-v2"; + reg = <0x00 0xfe043e00 0x00 0x100 0x00 0xfe043f00 0x00 0x100>; + interrupts = <0x00 0x94 0x04>; + interrupt-names = "vop_mmu"; + clocks = <0x23 0xdd 0x23 0xde>; + clock-names = "aclk\0iface"; + #iommu-cells = <0x00>; + rockchip,disable-device-link-resume; + status = "okay"; + phandle = <0x9a>; + }; + + dsi@fe060000 { + compatible = "rockchip,rk3568-mipi-dsi"; + reg = <0x00 0xfe060000 0x00 0x10000>; + interrupts = <0x00 0x44 0x04>; + clocks = <0x23 0xe8 0x23 0xda>; + clock-names = "pclk\0hclk"; + resets = <0x23 0x110>; + reset-names = "apb"; + phys = <0x34>; + phy-names = "dphy"; + power-domains = <0x25 0x09>; + rockchip,grf = <0x3b>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "disabled"; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + reg = <0x00>; + #address-cells = <0x01>; + #size-cells = <0x00>; + + endpoint@0 { + reg = <0x00>; + remote-endpoint = <0x17>; + status = "disabled"; + phandle = <0x9b>; + }; + + endpoint@1 { + reg = <0x01>; + remote-endpoint = <0xa8>; + status = "disabled"; + phandle = <0x9f>; + }; + }; + }; + }; + + dsi@fe070000 { + compatible = "rockchip,rk3568-mipi-dsi"; + reg = <0x00 0xfe070000 0x00 0x10000>; + interrupts = <0x00 0x45 0x04>; + clocks = <0x23 0xe9 0x23 0xda>; + clock-names = "pclk\0hclk"; + resets = <0x23 0x111>; + reset-names = "apb"; + phys = <0x36>; + phy-names = "dphy"; + power-domains = <0x25 0x09>; + rockchip,grf = <0x3b>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "disabled"; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + reg = <0x00>; + #address-cells = <0x01>; + #size-cells = <0x00>; + + endpoint@0 { + reg = <0x00>; + remote-endpoint = <0x18>; + status = "disabled"; + phandle = <0x9c>; + }; + + endpoint@1 { + reg = <0x01>; + remote-endpoint = <0xa9>; + status = "disabled"; + phandle = <0xa0>; + }; + }; + }; + }; + + hdmi@fe0a0000 { + compatible = "rockchip,rk3568-dw-hdmi"; + reg = <0x00 0xfe0a0000 0x00 0x20000>; + interrupts = <0x00 0x2d 0x04>; + clocks = <0x23 0xe6 0x23 0xe7 0x23 0x193 0x3a 0x02 0x23 0xde>; + clock-names = "iahb\0isfr\0cec\0ref\0hclk"; + power-domains = <0x25 0x09>; + reg-io-width = <0x04>; + rockchip,grf = <0x3b>; + #sound-dai-cells = <0x00>; + pinctrl-names = "default"; + pinctrl-0 = <0xaa 0xab 0xac>; + status = "okay"; + phandle = <0x147>; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + reg = <0x00>; + #address-cells = <0x01>; + #size-cells = <0x00>; + + endpoint@0 { + reg = <0x00>; + remote-endpoint = <0x1a>; + status = "okay"; + phandle = <0x9e>; + }; + + endpoint@1 { + reg = <0x01>; + remote-endpoint = <0xad>; + status = "disabled"; + phandle = <0xa2>; + }; + }; + }; + }; + + edp@fe0c0000 { + compatible = "rockchip,rk3568-edp"; + reg = <0x00 0xfe0c0000 0x00 0x10000>; + interrupts = <0x00 0x12 0x04>; + clocks = <0x3a 0x29 0x23 0xea 0x23 0xeb 0x23 0xda>; + clock-names = "dp\0pclk\0spdif\0hclk"; + resets = <0x23 0x113 0x23 0x112>; + reset-names = "dp\0apb"; + phys = <0xae>; + phy-names = "dp"; + power-domains = <0x25 0x09>; + status = "disabled"; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + reg = <0x00>; + #address-cells = <0x01>; + #size-cells = <0x00>; + + endpoint@0 { + reg = <0x00>; + remote-endpoint = <0x19>; + status = "disabled"; + phandle = <0x9d>; + }; + + endpoint@1 { + reg = <0x01>; + remote-endpoint = <0xaf>; + status = "disabled"; + phandle = <0xa1>; + }; + }; + }; + }; + + nocp-cpu@fe102000 { + compatible = "rockchip,rk3568-nocp"; + reg = <0x00 0xfe102000 0x00 0x400>; + phandle = <0xb5>; + }; + + nocp-gpu-vpu-rga-venc@fe102400 { + compatible = "rockchip,rk3568-nocp"; + reg = <0x00 0xfe102400 0x00 0x400>; + }; + + nocp-vdec@fe102800 { + compatible = "rockchip,rk3568-nocp"; + reg = <0x00 0xfe102800 0x00 0x400>; + }; + + nocp-vi-usb-peri-pipe@fe102c00 { + compatible = "rockchip,rk3568-nocp"; + reg = <0x00 0xfe102c00 0x00 0x400>; + }; + + nocp-vo@fe103000 { + compatible = "rockchip,rk3568-nocp"; + reg = <0x00 0xfe103000 0x00 0x400>; + }; + + qos@fe128000 { + compatible = "syscon"; + reg = <0x00 0xfe128000 0x00 0x20>; + phandle = <0x55>; + }; + + qos@fe138080 { + compatible = "syscon"; + reg = <0x00 0xfe138080 0x00 0x20>; + phandle = <0x64>; + }; + + qos@fe138100 { + compatible = "syscon"; + reg = <0x00 0xfe138100 0x00 0x20>; + phandle = <0x65>; + }; + + qos@fe138180 { + compatible = "syscon"; + reg = <0x00 0xfe138180 0x00 0x20>; + phandle = <0x66>; + }; + + qos@fe148000 { + compatible = "syscon"; + reg = <0x00 0xfe148000 0x00 0x20>; + phandle = <0x56>; + }; + + qos@fe148080 { + compatible = "syscon"; + reg = <0x00 0xfe148080 0x00 0x20>; + phandle = <0x57>; + }; + + qos@fe148100 { + compatible = "syscon"; + reg = <0x00 0xfe148100 0x00 0x20>; + phandle = <0x58>; + }; + + qos@fe150000 { + compatible = "syscon"; + reg = <0x00 0xfe150000 0x00 0x20>; + phandle = <0x62>; + }; + + qos@fe158000 { + compatible = "syscon"; + reg = <0x00 0xfe158000 0x00 0x20>; + phandle = <0x5c>; + }; + + qos@fe158100 { + compatible = "syscon"; + reg = <0x00 0xfe158100 0x00 0x20>; + phandle = <0x5d>; + }; + + qos@fe158180 { + compatible = "syscon"; + reg = <0x00 0xfe158180 0x00 0x20>; + phandle = <0x5e>; + }; + + qos@fe158200 { + compatible = "syscon"; + reg = <0x00 0xfe158200 0x00 0x20>; + phandle = <0x5f>; + }; + + qos@fe158280 { + compatible = "syscon"; + reg = <0x00 0xfe158280 0x00 0x20>; + phandle = <0x60>; + }; + + qos@fe158300 { + compatible = "syscon"; + reg = <0x00 0xfe158300 0x00 0x20>; + phandle = <0x61>; + }; + + qos@fe180000 { + compatible = "syscon"; + reg = <0x00 0xfe180000 0x00 0x20>; + phandle = <0x54>; + }; + + qos@fe190000 { + compatible = "syscon"; + reg = <0x00 0xfe190000 0x00 0x20>; + phandle = <0x67>; + }; + + qos@fe190080 { + compatible = "syscon"; + reg = <0x00 0xfe190080 0x00 0x20>; + phandle = <0x68>; + }; + + qos@fe190100 { + compatible = "syscon"; + reg = <0x00 0xfe190100 0x00 0x20>; + phandle = <0x69>; + }; + + qos@fe190200 { + compatible = "syscon"; + reg = <0x00 0xfe190200 0x00 0x20>; + phandle = <0x6a>; + }; + + qos@fe190280 { + compatible = "syscon"; + reg = <0x00 0xfe190280 0x00 0x20>; + phandle = <0x6b>; + }; + + qos@fe190300 { + compatible = "syscon"; + reg = <0x00 0xfe190300 0x00 0x20>; + phandle = <0x6c>; + }; + + qos@fe190380 { + compatible = "syscon"; + reg = <0x00 0xfe190380 0x00 0x20>; + phandle = <0x6d>; + }; + + qos@fe190400 { + compatible = "syscon"; + reg = <0x00 0xfe190400 0x00 0x20>; + phandle = <0x6e>; + }; + + qos@fe198000 { + compatible = "syscon"; + reg = <0x00 0xfe198000 0x00 0x20>; + phandle = <0x63>; + }; + + qos@fe1a8000 { + compatible = "syscon"; + reg = <0x00 0xfe1a8000 0x00 0x20>; + phandle = <0x59>; + }; + + qos@fe1a8080 { + compatible = "syscon"; + reg = <0x00 0xfe1a8080 0x00 0x20>; + phandle = <0x5a>; + }; + + qos@fe1a8100 { + compatible = "syscon"; + reg = <0x00 0xfe1a8100 0x00 0x20>; + phandle = <0x5b>; + }; + + dwmmc@fe000000 { + compatible = "rockchip,rk3568-dw-mshc\0rockchip,rk3288-dw-mshc"; + reg = <0x00 0xfe000000 0x00 0x4000>; + interrupts = <0x00 0x64 0x04>; + max-frequency = <0x8f0d180>; + clocks = <0x23 0xc1 0x23 0xc2 0x23 0x18e 0x23 0x18f>; + clock-names = "biu\0ciu\0ciu-drive\0ciu-sample"; + fifo-depth = <0x100>; + resets = <0x23 0xeb>; + reset-names = "reset"; + status = "okay"; + no-sd; + no-mmc; + bus-width = <0x04>; + disable-wp; + cap-sd-highspeed; + cap-sdio-irq; + keep-power-in-suspend; + pinctrl-names = "default"; + pinctrl-0 = <0xb0 0xb1 0xb2>; + sd-uhs-sdr104; + mmc-pwrseq = <0xb3>; + non-removable; + }; + + dfi@fe230000 { + reg = <0x00 0xfe230000 0x00 0x400>; + compatible = "rockchip,rk3568-dfi"; + rockchip,pmugrf = <0x3c>; + status = "okay"; + phandle = <0xb4>; + }; + + dmc { + compatible = "rockchip,rk3568-dmc"; + interrupts = <0x00 0x0a 0x04>; + interrupt-names = "complete"; + devfreq-events = <0xb4 0xb5>; + clocks = <0x02 0x03>; + clock-names = "dmc_clk"; + operating-points-v2 = <0xb6>; + vop-bw-dmc-freq = <0x00 0x11e 0x4f1a0 0x11f 0x1869f 0x80e80>; + vop-frame-bw-dmc-freq = <0x00 0x26c 0x4f1a0 0x26d 0x1869f 0xbe6e0>; + cpu-bw-dmc-freq = <0x00 0x15e 0x4f1a0 0x15f 0x190 0x80e80 0x191 0x1869f 0xbe6e0>; + upthreshold = <0x28>; + downdifferential = <0x14>; + system-status-level = <0x01 0x04 0x08 0x08 0x02 0x01 0x10 0x04 0x10000 0x04 0x1000 0x08 0x4000 0x08 0x2000 0x08 0xc00 0x08>; + auto-min-freq = <0x4f1a0>; + auto-freq-en = <0x01>; + #cooling-cells = <0x02>; + status = "okay"; + center-supply = <0x75>; + phandle = <0x16>; + }; + + dmc-fsp { + compatible = "rockchip,rk3568-dmc-fsp"; + debug_print_level = <0x00>; + ddr3_params = <0xb7>; + ddr4_params = <0xb8>; + lpddr3_params = <0xb9>; + lpddr4_params = <0xba>; + lpddr4x_params = <0xbb>; + status = "okay"; + }; + + dmc-opp-table { + compatible = "operating-points-v2"; + mbist-vmin = <0xc96a8 0xdbba0 0xe7ef0>; + nvmem-cells = <0x85 0x07 0x08 0xbc 0x0a 0x0b>; + nvmem-cell-names = "leakage\0pvtm\0mbist-vmin\0opp-info\0specification_serial_number\0remark_spec_serial_number"; + rockchip,supported-hw; + rockchip,max-volt = <0xf4240>; + rockchip,temp-hysteresis = <0x1388>; + rockchip,low-temp = <0x00>; + rockchip,low-temp-adjust-volt = <0x00 0x618 0x124f8>; + rockchip,leakage-voltage-sel = <0x01 0x50 0x00 0x51 0xfe 0x01>; + rockchip,pvtm-voltage-sel = <0x00 0x14820 0x00 0x14821 0x186a0 0x01>; + rockchip,pvtm-ch = <0x00 0x05>; + phandle = <0xb6>; + + opp-1560000000 { + opp-supported-hw = <0xf9 0xffff>; + opp-hz = <0x00 0x5cfbb600>; + opp-microvolt = <0xdbba0 0xdbba0 0xf4240>; + opp-microvolt-L0 = <0xdbba0 0xdbba0 0xf4240>; + opp-microvolt-L1 = <0xd59f8 0xd59f8 0xf4240>; + }; + + opp-j-m-1560000000 { + opp-supported-hw = <0x06 0xffff>; + opp-hz = <0x00 0x5cfbb600>; + opp-microvolt = <0xd59f8 0xd59f8 0xf4240>; + }; + }; + + pcie@fe260000 { + compatible = "rockchip,rk3568-pcie\0snps,dw-pcie"; + #address-cells = <0x03>; + #size-cells = <0x02>; + bus-range = <0x00 0x0f>; + clocks = <0x23 0x81 0x23 0x82 0x23 0x83 0x23 0x84 0x23 0x85>; + clock-names = "aclk_mst\0aclk_slv\0aclk_dbi\0pclk\0aux"; + device_type = "pci"; + interrupts = <0x00 0x4b 0x04 0x00 0x4a 0x04 0x00 0x49 0x04 0x00 0x48 0x04 0x00 0x47 0x04>; + interrupt-names = "sys\0pmc\0msg\0legacy\0err"; + #interrupt-cells = <0x01>; + interrupt-map-mask = <0x00 0x00 0x00 0x07>; + interrupt-map = <0x00 0x00 0x00 0x01 0xbd 0x00 0x00 0x00 0x00 0x02 0xbd 0x01 0x00 0x00 0x00 0x03 0xbd 0x02 0x00 0x00 0x00 0x04 0xbd 0x03>; + linux,pci-domain = <0x00>; + num-ib-windows = <0x06>; + num-viewport = <0x08>; + num-ob-windows = <0x02>; + max-link-speed = <0x02>; + msi-map = <0x00 0xbe 0x00 0x1000>; + num-lanes = <0x01>; + phys = <0x27 0x02>; + phy-names = "pcie-phy"; + power-domains = <0x25 0x0f>; + ranges = <0x800 0x00 0xf4000000 0x00 0xf4000000 0x00 0x100000 0x81000000 0x00 0xf4100000 0x00 0xf4100000 0x00 0x100000 0x82000000 0x00 0xf4200000 0x00 0xf4200000 0x00 0x1e00000 0xc3000000 0x03 0x00 0x03 0x00 0x00 0x40000000>; + reg = <0x03 0xc0000000 0x00 0x400000 0x00 0xfe260000 0x00 0x10000>; + reg-names = "pcie-dbi\0pcie-apb"; + resets = <0x23 0xa1>; + reset-names = "pipe"; + status = "disabled"; + + legacy-interrupt-controller { + interrupt-controller; + #address-cells = <0x00>; + #interrupt-cells = <0x01>; + interrupt-parent = <0x01>; + interrupts = <0x00 0x48 0x01>; + phandle = <0xbd>; + }; + }; + + pcie@fe270000 { + compatible = "rockchip,rk3568-pcie\0snps,dw-pcie"; + #address-cells = <0x03>; + #size-cells = <0x02>; + bus-range = <0x10 0x1f>; + clocks = <0x23 0x88 0x23 0x89 0x23 0x8a 0x23 0x8b 0x23 0x8c>; + clock-names = "aclk_mst\0aclk_slv\0aclk_dbi\0pclk\0aux"; + device_type = "pci"; + interrupts = <0x00 0xa0 0x04 0x00 0x9f 0x04 0x00 0x9e 0x04 0x00 0x9d 0x04 0x00 0x9c 0x04>; + interrupt-names = "sys\0pmc\0msg\0legacy\0err"; + #interrupt-cells = <0x01>; + interrupt-map-mask = <0x00 0x00 0x00 0x07>; + interrupt-map = <0x00 0x00 0x00 0x01 0xbf 0x00 0x00 0x00 0x00 0x02 0xbf 0x01 0x00 0x00 0x00 0x03 0xbf 0x02 0x00 0x00 0x00 0x04 0xbf 0x03>; + linux,pci-domain = <0x01>; + num-ib-windows = <0x06>; + num-ob-windows = <0x02>; + num-viewport = <0x08>; + max-link-speed = <0x03>; + msi-map = <0x1000 0xbe 0x1000 0x1000>; + num-lanes = <0x01>; + phys = <0xc0>; + phy-names = "pcie-phy"; + power-domains = <0x25 0x0f>; + ranges = <0x800 0x00 0xf2000000 0x00 0xf2000000 0x00 0x100000 0x81000000 0x00 0xf2100000 0x00 0xf2100000 0x00 0x100000 0x82000000 0x00 0xf2200000 0x00 0xf2200000 0x00 0x1e00000 0xc3000000 0x03 0x40000000 0x03 0x40000000 0x00 0x40000000>; + reg = <0x03 0xc0400000 0x00 0x400000 0x00 0xfe270000 0x00 0x10000>; + reg-names = "pcie-dbi\0pcie-apb"; + resets = <0x23 0xb1>; + reset-names = "pipe"; + status = "disabled"; + + legacy-interrupt-controller { + interrupt-controller; + #address-cells = <0x00>; + #interrupt-cells = <0x01>; + interrupt-parent = <0x01>; + interrupts = <0x00 0x9d 0x01>; + phandle = <0xbf>; + }; + }; + + pcie@fe280000 { + compatible = "rockchip,rk3568-pcie\0snps,dw-pcie"; + #address-cells = <0x03>; + #size-cells = <0x02>; + bus-range = <0x20 0x2f>; + clocks = <0x23 0x8f 0x23 0x90 0x23 0x91 0x23 0x92 0x23 0x93>; + clock-names = "aclk_mst\0aclk_slv\0aclk_dbi\0pclk\0aux"; + device_type = "pci"; + interrupts = <0x00 0xa5 0x04 0x00 0xa4 0x04 0x00 0xa3 0x04 0x00 0xa2 0x04 0x00 0xa1 0x04>; + interrupt-names = "sys\0pmc\0msg\0legacy\0err"; + #interrupt-cells = <0x01>; + interrupt-map-mask = <0x00 0x00 0x00 0x07>; + interrupt-map = <0x00 0x00 0x00 0x01 0xc1 0x00 0x00 0x00 0x00 0x02 0xc1 0x01 0x00 0x00 0x00 0x03 0xc1 0x02 0x00 0x00 0x00 0x04 0xc1 0x03>; + linux,pci-domain = <0x02>; + num-ib-windows = <0x06>; + num-viewport = <0x08>; + num-ob-windows = <0x02>; + max-link-speed = <0x03>; + msi-map = <0x2000 0xbe 0x2000 0x1000>; + num-lanes = <0x02>; + phys = <0xc0>; + phy-names = "pcie-phy"; + power-domains = <0x25 0x0f>; + ranges = <0x800 0x00 0xf0000000 0x00 0xf0000000 0x00 0x100000 0x81000000 0x00 0xf0100000 0x00 0xf0100000 0x00 0x100000 0x82000000 0x00 0xf0200000 0x00 0xf0200000 0x00 0x1e00000 0xc3000000 0x03 0x80000000 0x03 0x80000000 0x00 0x40000000>; + reg = <0x03 0xc0800000 0x00 0x400000 0x00 0xfe280000 0x00 0x10000>; + reg-names = "pcie-dbi\0pcie-apb"; + resets = <0x23 0xc1>; + reset-names = "pipe"; + status = "okay"; + reset-gpios = <0x91 0x1e 0x00>; + vpcie3v3-supply = <0xc2>; + + legacy-interrupt-controller { + interrupt-controller; + #address-cells = <0x00>; + #interrupt-cells = <0x01>; + interrupt-parent = <0x01>; + interrupts = <0x00 0xa2 0x01>; + phandle = <0xc1>; + }; + }; + + uio@fe2a0000 { + compatible = "rockchip,uio-gmac"; + reg = <0x00 0xfe2a0000 0x00 0x10000>; + rockchip,ethernet = <0xc3>; + status = "disabled"; + }; + + ethernet@fe2a0000 { + local-mac-address = [5a 4f fd 70 05 c6]; + compatible = "rockchip,rk3568-gmac\0snps,dwmac-4.20a"; + reg = <0x00 0xfe2a0000 0x00 0x10000>; + interrupts = <0x00 0x1b 0x04 0x00 0x18 0x04>; + interrupt-names = "macirq\0eth_wake_irq"; + rockchip,grf = <0x3b>; + clocks = <0x23 0x182 0x23 0x185 0x23 0x185 0x23 0xb8 0x23 0xb4 0x23 0xb5 0x23 0x185 0x23 0xb9 0x23 0xac 0x23 0xab>; + clock-names = "stmmaceth\0mac_clk_rx\0mac_clk_tx\0clk_mac_refout\0aclk_mac\0pclk_mac\0clk_mac_speed\0ptp_ref\0pclk_xpcs\0clk_xpcs_eee"; + resets = <0x23 0xd7>; + reset-names = "stmmaceth"; + snps,mixed-burst; + snps,tso; + snps,axi-config = <0xc4>; + snps,mtl-rx-config = <0xc5>; + snps,mtl-tx-config = <0xc6>; + status = "okay"; + phy-mode = "rgmii"; + clock_in_out = "input"; + snps,reset-gpio = <0x91 0x1b 0x01>; + snps,reset-active-low; + snps,reset-delays-us = <0x00 0x4e20 0x186a0>; + assigned-clocks = <0x23 0x185 0x23 0x182>; + assigned-clock-parents = <0x23 0x183 0xc7>; + pinctrl-names = "default"; + pinctrl-0 = <0xc8 0xc9 0xca 0xcb 0xcc 0xcd>; + tx_delay = <0x4a>; + rx_delay = <0x2e>; + phy-handle = <0xce>; + phandle = <0xc3>; + + mdio { + compatible = "snps,dwmac-mdio"; + #address-cells = <0x01>; + #size-cells = <0x00>; + + phy@0 { + compatible = "ethernet-phy-ieee802.3-c22"; + reg = <0x00>; + led_status_value = <0x6940>; + phandle = <0xce>; + }; + }; + + stmmac-axi-config { + snps,wr_osr_lmt = <0x04>; + snps,rd_osr_lmt = <0x08>; + snps,blen = <0x00 0x00 0x00 0x00 0x10 0x08 0x04>; + phandle = <0xc4>; + }; + + rx-queues-config { + snps,rx-queues-to-use = <0x01>; + phandle = <0xc5>; + + queue0 { + }; + }; + + tx-queues-config { + snps,tx-queues-to-use = <0x01>; + phandle = <0xc6>; + + queue0 { + }; + }; + }; + + dwmmc@fe2b0000 { + compatible = "rockchip,rk3568-dw-mshc\0rockchip,rk3288-dw-mshc"; + reg = <0x00 0xfe2b0000 0x00 0x4000>; + interrupts = <0x00 0x62 0x04>; + max-frequency = <0x8f0d180>; + clocks = <0x23 0xb0 0x23 0xb1 0x23 0x18a 0x23 0x18b>; + clock-names = "biu\0ciu\0ciu-drive\0ciu-sample"; + fifo-depth = <0x100>; + resets = <0x23 0xd4>; + reset-names = "reset"; + status = "okay"; + no-sdio; + no-mmc; + bus-width = <0x04>; + cap-mmc-highspeed; + cap-sd-highspeed; + disable-wp; + sd-uhs-sdr104; + vmmc-supply = <0xcf>; + vqmmc-supply = <0x31>; + pinctrl-names = "default"; + pinctrl-0 = <0xd0 0xd1 0xd2 0xd3>; + }; + + dwmmc@fe2c0000 { + compatible = "rockchip,rk3568-dw-mshc\0rockchip,rk3288-dw-mshc"; + reg = <0x00 0xfe2c0000 0x00 0x4000>; + interrupts = <0x00 0x63 0x04>; + max-frequency = <0x8f0d180>; + clocks = <0x23 0xb2 0x23 0xb3 0x23 0x18c 0x23 0x18d>; + clock-names = "biu\0ciu\0ciu-drive\0ciu-sample"; + fifo-depth = <0x100>; + resets = <0x23 0xd6>; + reset-names = "reset"; + status = "disabled"; + }; + + spi@fe300000 { + compatible = "rockchip,sfc"; + reg = <0x00 0xfe300000 0x00 0x4000>; + interrupts = <0x00 0x65 0x04>; + clocks = <0x23 0x78 0x23 0x76>; + clock-names = "clk_sfc\0hclk_sfc"; + assigned-clocks = <0x23 0x78>; + assigned-clock-rates = <0x2faf080>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "okay"; + pinctrl-names = "default"; + pinctrl-0 = <0xd4>; + + flash@0 { + compatible = "jedec,spi-nor"; + reg = <0x00>; + spi-max-frequency = <0x2faf080>; + spi-rx-bus-width = <0x01>; + spi-tx-bus-width = <0x01>; + }; + }; + + sdhci@fe310000 { + compatible = "rockchip,rk3568-dwcmshc\0rockchip,dwcmshc-sdhci"; + reg = <0x00 0xfe310000 0x00 0x10000>; + interrupts = <0x00 0x13 0x04>; + assigned-clocks = <0x23 0x7b 0x23 0x7d 0x23 0x7c>; + assigned-clock-rates = <0xbebc200 0x16e3600 0xbebc200>; + clocks = <0x23 0x7c 0x23 0x7a 0x23 0x79 0x23 0x7b 0x23 0x7d>; + clock-names = "core\0bus\0axi\0block\0timer"; + resets = <0x23 0x78 0x23 0x76 0x23 0x75 0x23 0x77 0x23 0x79>; + reset-names = "core\0bus\0axi\0block\0timer"; + status = "okay"; + bus-width = <0x08>; + no-sdio; + no-sd; + non-removable; + max-frequency = <0xbebc200>; + full-pwr-cycle-in-suspend; + }; + + nandc@fe330000 { + compatible = "rockchip,rk-nandc-v9"; + reg = <0x00 0xfe330000 0x00 0x4000>; + interrupts = <0x00 0x46 0x04>; + nandc_id = <0x00>; + clocks = <0x23 0x75 0x23 0x74>; + clock-names = "clk_nandc\0hclk_nandc"; + status = "okay"; + #address-cells = <0x01>; + #size-cells = <0x00>; + + nand@0 { + reg = <0x00>; + nand-bus-width = <0x08>; + nand-ecc-mode = "hw"; + nand-ecc-strength = <0x10>; + nand-ecc-step-size = <0x400>; + }; + }; + + crypto@fe380000 { + compatible = "rockchip,rk3568-crypto"; + reg = <0x00 0xfe380000 0x00 0x4000>; + interrupts = <0x00 0x04 0x04>; + clocks = <0x23 0x6a 0x23 0x6b 0x23 0x6c 0x23 0x6d>; + clock-names = "aclk\0hclk\0sclk\0apb_pclk"; + assigned-clocks = <0x23 0x6c>; + assigned-clock-rates = <0xbebc200>; + resets = <0x23 0x69>; + reset-names = "crypto-rst"; + status = "disabled"; + }; + + rng@fe388000 { + compatible = "rockchip,cryptov2-rng"; + reg = <0x00 0xfe388000 0x00 0x2000>; + clocks = <0x23 0x70 0x23 0x6f>; + clock-names = "clk_trng\0hclk_trng"; + resets = <0x23 0x6d>; + reset-names = "reset"; + status = "okay"; + }; + + otp@fe38c000 { + compatible = "rockchip,rk3568-otp"; + reg = <0x00 0xfe38c000 0x00 0x4000>; + #address-cells = <0x01>; + #size-cells = <0x01>; + clocks = <0x23 0x73 0x23 0x72 0x23 0x71 0x23 0x181>; + clock-names = "usr\0sbpi\0apb\0phy"; + resets = <0x23 0x1cf>; + reset-names = "otp_phy"; + + cpu-code@2 { + reg = <0x02 0x02>; + phandle = <0x12>; + }; + + specification-serial-number@7 { + reg = <0x07 0x01>; + bits = <0x00 0x05>; + phandle = <0x0a>; + }; + + cpu-version@8 { + reg = <0x08 0x01>; + bits = <0x03 0x03>; + phandle = <0x11>; + }; + + mbist-vmin@9 { + reg = <0x09 0x01>; + bits = <0x00 0x04>; + phandle = <0x08>; + }; + + id@a { + reg = <0x0a 0x10>; + phandle = <0x10>; + }; + + cpu-leakage@1a { + reg = <0x1a 0x01>; + phandle = <0x06>; + }; + + log-leakage@1b { + reg = <0x1b 0x01>; + phandle = <0x85>; + }; + + npu-leakage@1c { + reg = <0x1c 0x01>; + phandle = <0x72>; + }; + + gpu-leakage@1d { + reg = <0x1d 0x01>; + phandle = <0x78>; + }; + + core-pvtm@2a { + reg = <0x2a 0x02>; + phandle = <0x07>; + }; + + cpu-tsadc-trim-l@2e { + reg = <0x2e 0x01>; + phandle = <0x125>; + }; + + cpu-tsadc-trim-h@2f { + reg = <0x2f 0x01>; + bits = <0x00 0x04>; + phandle = <0x126>; + }; + + npu-tsadc-trim-l@30 { + reg = <0x30 0x01>; + phandle = <0x127>; + }; + + npu-tsadc-trim-h@31 { + reg = <0x31 0x01>; + bits = <0x00 0x04>; + phandle = <0x128>; + }; + + tsadc-trim-base-frac@31 { + reg = <0x31 0x01>; + bits = <0x04 0x04>; + phandle = <0x122>; + }; + + tsadc-trim-base@32 { + reg = <0x32 0x01>; + phandle = <0x121>; + }; + + cpu-opp-info@36 { + reg = <0x36 0x06>; + phandle = <0x09>; + }; + + gpu-opp-info@3c { + reg = <0x3c 0x06>; + phandle = <0x79>; + }; + + npu-opp-info@42 { + reg = <0x42 0x06>; + phandle = <0x73>; + }; + + dmc-opp-info@48 { + reg = <0x48 0x06>; + phandle = <0xbc>; + }; + + remark-spec-serial-number@56 { + reg = <0x56 0x01>; + bits = <0x00 0x05>; + phandle = <0x0b>; + }; + }; + + i2s@fe400000 { + compatible = "rockchip,rk3568-i2s-tdm"; + reg = <0x00 0xfe400000 0x00 0x1000>; + interrupts = <0x00 0x34 0x04>; + clocks = <0x23 0x3f 0x23 0x43 0x23 0x39>; + clock-names = "mclk_tx\0mclk_rx\0hclk"; + dmas = <0xd5 0x00>; + dma-names = "tx"; + resets = <0x23 0x50 0x23 0x51>; + reset-names = "tx-m\0rx-m"; + rockchip,cru = <0x23>; + rockchip,grf = <0x3b>; + rockchip,playback-only; + #sound-dai-cells = <0x00>; + status = "okay"; + phandle = <0x146>; + }; + + i2s@fe410000 { + compatible = "rockchip,rk3568-i2s-tdm"; + reg = <0x00 0xfe410000 0x00 0x1000>; + interrupts = <0x00 0x35 0x04>; + clocks = <0x23 0x47 0x23 0x4b 0x23 0x3a>; + clock-names = "mclk_tx\0mclk_rx\0hclk"; + dmas = <0xd5 0x02 0xd5 0x03>; + dma-names = "tx\0rx"; + resets = <0x23 0x52 0x23 0x53>; + reset-names = "tx-m\0rx-m"; + rockchip,cru = <0x23>; + rockchip,grf = <0x3b>; + #sound-dai-cells = <0x00>; + pinctrl-names = "default"; + pinctrl-0 = <0xd6 0xd7 0xd8 0xd9>; + status = "okay"; + rockchip,clk-trcm = <0x01>; + phandle = <0xe8>; + }; + + i2s@fe420000 { + compatible = "rockchip,rk3568-i2s-tdm"; + reg = <0x00 0xfe420000 0x00 0x1000>; + interrupts = <0x00 0x36 0x04>; + clocks = <0x23 0x4f 0x23 0x4f 0x23 0x3b>; + clock-names = "mclk_tx\0mclk_rx\0hclk"; + dmas = <0xd5 0x04 0xd5 0x05>; + dma-names = "tx\0rx"; + rockchip,cru = <0x23>; + rockchip,grf = <0x3b>; + rockchip,clk-trcm = <0x01>; + #sound-dai-cells = <0x00>; + pinctrl-names = "default"; + pinctrl-0 = <0xda 0xdb 0xdc 0xdd>; + status = "disabled"; + }; + + i2s@fe430000 { + compatible = "rockchip,rk3568-i2s-tdm"; + reg = <0x00 0xfe430000 0x00 0x1000>; + interrupts = <0x00 0x37 0x04>; + clocks = <0x23 0x53 0x23 0x57 0x23 0x3c>; + clock-names = "mclk_tx\0mclk_rx\0hclk"; + dmas = <0xd5 0x06 0xd5 0x07>; + dma-names = "tx\0rx"; + resets = <0x23 0x55 0x23 0x56>; + reset-names = "tx-m\0rx-m"; + rockchip,cru = <0x23>; + rockchip,grf = <0x3b>; + rockchip,clk-trcm = <0x01>; + #sound-dai-cells = <0x00>; + pinctrl-names = "default"; + pinctrl-0 = <0xde 0xdf 0xe0 0xe1>; + status = "disabled"; + phandle = <0x144>; + }; + + pdm@fe440000 { + compatible = "rockchip,rk3568-pdm\0rockchip,pdm"; + reg = <0x00 0xfe440000 0x00 0x1000>; + clocks = <0x23 0x5a 0x23 0x59>; + clock-names = "pdm_clk\0pdm_hclk"; + dmas = <0xd5 0x09>; + dma-names = "rx"; + pinctrl-names = "default"; + pinctrl-0 = <0xe2 0xe3 0xe4 0xe5 0xe6 0xe7>; + #sound-dai-cells = <0x00>; + status = "disabled"; + phandle = <0x149>; + }; + + vad@fe450000 { + compatible = "rockchip,rk3568-vad"; + reg = <0x00 0xfe450000 0x00 0x10000>; + reg-names = "vad"; + clocks = <0x23 0x5b>; + clock-names = "hclk"; + interrupts = <0x00 0x89 0x04>; + rockchip,audio-src = <0xe8>; + rockchip,det-channel = <0x00>; + rockchip,mode = <0x00>; + #sound-dai-cells = <0x00>; + status = "disabled"; + rockchip,buffer-time-ms = <0x80>; + phandle = <0x14e>; + }; + + spdif@fe460000 { + compatible = "rockchip,rk3568-spdif"; + reg = <0x00 0xfe460000 0x00 0x1000>; + interrupts = <0x00 0x66 0x04>; + dmas = <0xd5 0x01>; + dma-names = "tx"; + clock-names = "mclk\0hclk"; + clocks = <0x23 0x5f 0x23 0x5c>; + #sound-dai-cells = <0x00>; + pinctrl-names = "default"; + pinctrl-0 = <0xe9>; + status = "disabled"; + phandle = <0x14c>; + }; + + audpwm@fe470000 { + compatible = "rockchip,rk3568-audio-pwm\0rockchip,audio-pwm-v1"; + reg = <0x00 0xfe470000 0x00 0x1000>; + clocks = <0x23 0x63 0x23 0x60>; + clock-names = "clk\0hclk"; + dmas = <0xd5 0x08>; + dma-names = "tx"; + #sound-dai-cells = <0x00>; + rockchip,sample-width-bits = <0x0b>; + rockchip,interpolat-points = <0x01>; + status = "disabled"; + }; + + codec-digital@fe478000 { + compatible = "rockchip,rk3568-codec-digital\0rockchip,codec-digital-v1"; + reg = <0x00 0xfe478000 0x00 0x1000>; + clocks = <0x23 0x67 0x23 0x66 0x23 0x65 0x23 0x64>; + clock-names = "adc\0dac\0i2c\0pclk"; + pinctrl-names = "default"; + pinctrl-0 = <0xea>; + resets = <0x23 0x5f>; + reset-names = "reset"; + rockchip,grf = <0x3b>; + #sound-dai-cells = <0x00>; + status = "disabled"; + phandle = <0x145>; + }; + + dmac@fe530000 { + compatible = "arm,pl330\0arm,primecell"; + reg = <0x00 0xfe530000 0x00 0x4000>; + interrupts = <0x00 0x0e 0x04 0x00 0x0d 0x04>; + clocks = <0x23 0x10d>; + clock-names = "apb_pclk"; + #dma-cells = <0x01>; + arm,pl330-periph-burst; + phandle = <0x4e>; + }; + + dmac@fe550000 { + compatible = "arm,pl330\0arm,primecell"; + reg = <0x00 0xfe550000 0x00 0x4000>; + interrupts = <0x00 0x10 0x04 0x00 0x0f 0x04>; + clocks = <0x23 0x10d>; + clock-names = "apb_pclk"; + #dma-cells = <0x01>; + arm,pl330-periph-burst; + phandle = <0xd5>; + }; + + rkscr@fe560000 { + compatible = "rockchip-scr"; + reg = <0x00 0xfe560000 0x00 0x10000>; + interrupts = <0x00 0x61 0x04>; + pinctrl-names = "default"; + pinctrl-0 = <0xeb>; + clocks = <0x23 0x114>; + clock-names = "g_pclk_sim_card"; + status = "disabled"; + }; + + can@fe570000 { + compatible = "rockchip,rk3568-can-2.0"; + reg = <0x00 0xfe570000 0x00 0x1000>; + interrupts = <0x00 0x01 0x04>; + clocks = <0x23 0x141 0x23 0x140>; + clock-names = "baudclk\0apb_pclk"; + resets = <0x23 0x155 0x23 0x154>; + reset-names = "can\0can-apb"; + tx-fifo-depth = <0x01>; + rx-fifo-depth = <0x06>; + status = "disabled"; + }; + + can@fe580000 { + compatible = "rockchip,rk3568-can-2.0"; + reg = <0x00 0xfe580000 0x00 0x1000>; + interrupts = <0x00 0x02 0x04>; + clocks = <0x23 0x143 0x23 0x142>; + clock-names = "baudclk\0apb_pclk"; + resets = <0x23 0x157 0x23 0x156>; + reset-names = "can\0can-apb"; + tx-fifo-depth = <0x01>; + rx-fifo-depth = <0x06>; + status = "okay"; + assigned-clocks = <0x23 0x143>; + assigned-clock-rates = <0xbebc200>; + pinctrl-names = "default"; + pinctrl-0 = <0xec>; + }; + + can@fe590000 { + compatible = "rockchip,rk3568-can-2.0"; + reg = <0x00 0xfe590000 0x00 0x1000>; + interrupts = <0x00 0x03 0x04>; + clocks = <0x23 0x145 0x23 0x144>; + clock-names = "baudclk\0apb_pclk"; + resets = <0x23 0x159 0x23 0x158>; + reset-names = "can\0can-apb"; + tx-fifo-depth = <0x01>; + rx-fifo-depth = <0x06>; + status = "disabled"; + assigned-clocks = <0x23 0x145>; + assigned-clock-rates = <0xbebc200>; + pinctrl-names = "default"; + pinctrl-0 = <0xed>; + }; + + i2c@fe5a0000 { + compatible = "rockchip,rk3399-i2c"; + reg = <0x00 0xfe5a0000 0x00 0x1000>; + clocks = <0x23 0x148 0x23 0x147>; + clock-names = "i2c\0pclk"; + interrupts = <0x00 0x2f 0x04>; + pinctrl-names = "default"; + pinctrl-0 = <0xee>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "okay"; + clock-frequency = <0x186a0>; + + gpio@21 { + status = "disabled"; + compatible = "nxp,pca9555"; + reg = <0x21>; + gpio-controller; + #gpio-cells = <0x02>; + gpio-group-num = <0xc8>; + phandle = <0x102>; + }; + + gt1x@14 { + status = "disabled"; + compatible = "goodix,gt1x"; + reg = <0x14>; + pinctrl-names = "default"; + pinctrl-0 = <0xef>; + goodix,rst-gpio = <0x3f 0x0e 0x00>; + goodix,irq-gpio = <0x3f 0x0d 0x08>; + }; + }; + + i2c@fe5b0000 { + compatible = "rockchip,rk3399-i2c"; + reg = <0x00 0xfe5b0000 0x00 0x1000>; + clocks = <0x23 0x14a 0x23 0x149>; + clock-names = "i2c\0pclk"; + interrupts = <0x00 0x30 0x04>; + pinctrl-names = "default"; + pinctrl-0 = <0xf0>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "disabled"; + }; + + i2c@fe5c0000 { + compatible = "rockchip,rk3399-i2c"; + reg = <0x00 0xfe5c0000 0x00 0x1000>; + clocks = <0x23 0x14c 0x23 0x14b>; + clock-names = "i2c\0pclk"; + interrupts = <0x00 0x31 0x04>; + pinctrl-names = "default"; + pinctrl-0 = <0xf1>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "disabled"; + }; + + i2c@fe5d0000 { + compatible = "rockchip,rk3399-i2c"; + reg = <0x00 0xfe5d0000 0x00 0x1000>; + clocks = <0x23 0x14e 0x23 0x14d>; + clock-names = "i2c\0pclk"; + interrupts = <0x00 0x32 0x04>; + pinctrl-names = "default"; + pinctrl-0 = <0xf2>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "okay"; + clock-frequency = <0x61a80>; + + gc8034@37 { + compatible = "galaxycore,gc8034"; + status = "disabled"; + reg = <0x37>; + clocks = <0x23 0xd6>; + clock-names = "xvclk"; + pinctrl-names = "default"; + pinctrl-0 = <0xf3>; + reset-gpios = <0x4a 0x0e 0x01>; + pwdn-gpios = <0xf4 0x0c 0x01>; + rockchip,grf = <0x3b>; + rockchip,camera-module-index = <0x00>; + rockchip,camera-module-facing = "back"; + rockchip,camera-module-name = "RK-CMK-8M-2-v1"; + rockchip,camera-module-lens-name = "CK8401"; + + port { + + endpoint { + remote-endpoint = <0xf5>; + data-lanes = <0x01 0x02 0x03 0x04>; + phandle = <0x130>; + }; + }; + }; + + os04a10@36 { + status = "disabled"; + compatible = "ovti,os04a10"; + reg = <0x36>; + clocks = <0x23 0xd6>; + clock-names = "xvclk"; + power-domains = <0x25 0x08>; + pinctrl-names = "default"; + pinctrl-0 = <0xf3>; + reset-gpios = <0x4a 0x0e 0x01>; + pwdn-gpios = <0xf4 0x0c 0x00>; + rockchip,camera-module-index = <0x00>; + rockchip,camera-module-facing = "back"; + rockchip,camera-module-name = "CMK-OT1607-FV1"; + rockchip,camera-module-lens-name = "M12-40IRC-4MP-F16"; + + port { + + endpoint { + remote-endpoint = <0xf6>; + data-lanes = <0x01 0x02 0x03 0x04>; + phandle = <0x12f>; + }; + }; + }; + + ov5695@36 { + status = "disabled"; + compatible = "ovti,ov5695"; + reg = <0x36>; + clocks = <0x23 0xd6>; + clock-names = "xvclk"; + power-domains = <0x25 0x08>; + pinctrl-names = "default"; + pinctrl-0 = <0xf3>; + reset-gpios = <0x4a 0x0e 0x00>; + pwdn-gpios = <0xf4 0x0c 0x00>; + rockchip,camera-module-index = <0x00>; + rockchip,camera-module-facing = "back"; + rockchip,camera-module-name = "TongJu"; + rockchip,camera-module-lens-name = "CHT842-MD"; + + port { + + endpoint { + remote-endpoint = <0xf7>; + data-lanes = <0x01 0x02>; + phandle = <0x131>; + }; + }; + }; + + XC7160b@1b { + status = "okay"; + compatible = "firefly,xc7160"; + reg = <0x1b>; + clocks = <0x23 0xd6>; + clock-names = "xvclk"; + power-domains = <0x25 0x08>; + pinctrl-names = "default"; + pinctrl-0 = <0xf3>; + reset-gpios = <0x3f 0x1d 0x00>; + pwdn-gpios = <0xf4 0x0c 0x00>; + firefly,clkout-enabled-index = <0x00>; + rockchip,camera-module-index = <0x00>; + rockchip,camera-module-facing = "back"; + rockchip,camera-module-name = "NC"; + rockchip,camera-module-lens-name = "NC"; + + port { + + endpoint { + remote-endpoint = <0xf8>; + data-lanes = <0x01 0x02 0x03 0x04>; + phandle = <0x132>; + }; + }; + }; + + imx415@37 { + status = "okay"; + compatible = "sony,imx415"; + reg = <0x37>; + clocks = <0x23 0xd6>; + clock-names = "xvclk"; + power-domains = <0x25 0x08>; + pinctrl-names = "default"; + pinctrl-0 = <0xf3>; + reset-gpios = <0x3f 0x1d 0x01>; + pwdn-gpios = <0xf4 0x0c 0x00>; + firefly,clkout-enabled-index = <0x00>; + rockchip,camera-module-index = <0x00>; + rockchip,camera-module-facing = "back"; + rockchip,camera-module-name = "CMK-OT2022-PX1"; + rockchip,camera-module-lens-name = "IR0147-50IRC-8M-F20"; + + port { + + endpoint { + remote-endpoint = <0xf9>; + data-lanes = <0x01 0x02 0x03 0x04>; + phandle = <0x133>; + }; + }; + }; + }; + + i2c@fe5e0000 { + compatible = "rockchip,rk3399-i2c"; + reg = <0x00 0xfe5e0000 0x00 0x1000>; + clocks = <0x23 0x150 0x23 0x14f>; + clock-names = "i2c\0pclk"; + interrupts = <0x00 0x33 0x04>; + pinctrl-names = "default"; + pinctrl-0 = <0xfa>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "okay"; + + hym8563@51 { + status = "okay"; + compatible = "haoyu,hym8563"; + reg = <0x51>; + #clock-cells = <0x00>; + rtc-irq-gpio = <0x3f 0x1b 0x02>; + clock-frequency = <0x8000>; + }; + + mc3230sensor@4c { + compatible = "gs_mc3230"; + reg = <0x4c>; + type = <0x02>; + irq_enable = <0x00>; + poll_delay_ms = <0x1e>; + layout = <0x04>; + status = "okay"; + }; + + mxc6655xa@15 { + status = "disabled"; + compatible = "gs_mxc6655xa"; + pinctrl-names = "default"; + pinctrl-0 = <0xfb>; + reg = <0x15>; + irq-gpio = <0x4a 0x11 0x08>; + irq_enable = <0x00>; + poll_delay_ms = <0x1e>; + type = <0x02>; + power-off-in-suspend = <0x01>; + layout = <0x01>; + }; + }; + + timer@fe5f0000 { + compatible = "rockchip,rk3568-timer\0rockchip,rk3288-timer"; + reg = <0x00 0xfe5f0000 0x00 0x1000>; + interrupts = <0x00 0x6d 0x04>; + clocks = <0x23 0x16c 0x23 0x16d>; + clock-names = "pclk\0timer"; + }; + + watchdog@fe600000 { + compatible = "snps,dw-wdt"; + reg = <0x00 0xfe600000 0x00 0x100>; + clocks = <0x23 0x116 0x23 0x115>; + clock-names = "tclk\0pclk"; + interrupts = <0x00 0x95 0x04>; + status = "okay"; + }; + + spi@fe610000 { + compatible = "rockchip,rk3066-spi"; + reg = <0x00 0xfe610000 0x00 0x1000>; + interrupts = <0x00 0x67 0x04>; + #address-cells = <0x01>; + #size-cells = <0x00>; + clocks = <0x23 0x152 0x23 0x151>; + clock-names = "spiclk\0apb_pclk"; + dmas = <0x4e 0x14 0x4e 0x15>; + dma-names = "tx\0rx"; + pinctrl-names = "default\0high_speed"; + pinctrl-0 = <0xfc 0xfd 0xfe>; + pinctrl-1 = <0xfc 0xfd 0xff>; + num-cs = <0x02>; + status = "disabled"; + }; + + spi@fe620000 { + compatible = "rockchip,rk3066-spi"; + reg = <0x00 0xfe620000 0x00 0x1000>; + interrupts = <0x00 0x68 0x04>; + #address-cells = <0x01>; + #size-cells = <0x00>; + clocks = <0x23 0x154 0x23 0x153>; + clock-names = "spiclk\0apb_pclk"; + dmas = <0x4e 0x16 0x4e 0x17>; + dma-names = "tx\0rx"; + pinctrl-names = "default\0high_speed"; + pinctrl-0 = <0x100>; + pinctrl-1 = <0x101>; + num-cs = <0x02>; + status = "disabled"; + max-freq = <0x2dc6c00>; + dev-port = <0x00>; + + spi_wk2xxx@0 { + status = "disabled"; + compatible = "firefly,spi-wk2xxx"; + reg = <0x00>; + spi-max-frequency = <0x989680>; + power-gpio = <0x102 0x0f 0x00>; + reset-gpio = <0x102 0x09 0x00>; + irq-gpio = <0x3f 0x06 0x02>; + cs-gpio = <0x4a 0x01 0x00>; + }; + }; + + spi@fe630000 { + compatible = "rockchip,rk3066-spi"; + reg = <0x00 0xfe630000 0x00 0x1000>; + interrupts = <0x00 0x69 0x04>; + #address-cells = <0x01>; + #size-cells = <0x00>; + clocks = <0x23 0x156 0x23 0x155>; + clock-names = "spiclk\0apb_pclk"; + dmas = <0x4e 0x18 0x4e 0x19>; + dma-names = "tx\0rx"; + pinctrl-names = "default\0high_speed"; + pinctrl-0 = <0x103 0x104 0x105>; + pinctrl-1 = <0x103 0x104 0x106>; + num-cs = <0x02>; + status = "disabled"; + }; + + spi@fe640000 { + compatible = "rockchip,rk3066-spi"; + reg = <0x00 0xfe640000 0x00 0x1000>; + interrupts = <0x00 0x6a 0x04>; + #address-cells = <0x01>; + #size-cells = <0x00>; + clocks = <0x23 0x158 0x23 0x157>; + clock-names = "spiclk\0apb_pclk"; + dmas = <0x4e 0x1a 0x4e 0x1b>; + dma-names = "tx\0rx"; + pinctrl-names = "default\0high_speed"; + pinctrl-0 = <0x107 0x108 0x109>; + pinctrl-1 = <0x107 0x108 0x10a>; + num-cs = <0x02>; + status = "disabled"; + }; + + serial@fe650000 { + compatible = "rockchip,rk3568-uart\0snps,dw-apb-uart"; + reg = <0x00 0xfe650000 0x00 0x100>; + interrupts = <0x00 0x75 0x04>; + clocks = <0x23 0x11f 0x23 0x11c>; + clock-names = "baudclk\0apb_pclk"; + reg-shift = <0x02>; + reg-io-width = <0x04>; + dmas = <0x4e 0x02 0x4e 0x03>; + pinctrl-names = "default"; + pinctrl-0 = <0x10b>; + status = "disabled"; + }; + + serial@fe660000 { + compatible = "rockchip,rk3568-uart\0snps,dw-apb-uart"; + reg = <0x00 0xfe660000 0x00 0x100>; + interrupts = <0x00 0x76 0x04>; + clocks = <0x23 0x123 0x23 0x120>; + clock-names = "baudclk\0apb_pclk"; + reg-shift = <0x02>; + reg-io-width = <0x04>; + dmas = <0x4e 0x04 0x4e 0x05>; + pinctrl-names = "default"; + pinctrl-0 = <0x10c>; + status = "disabled"; + }; + + serial@fe670000 { + compatible = "rockchip,rk3568-uart\0snps,dw-apb-uart"; + reg = <0x00 0xfe670000 0x00 0x100>; + interrupts = <0x00 0x77 0x04>; + clocks = <0x23 0x127 0x23 0x124>; + clock-names = "baudclk\0apb_pclk"; + reg-shift = <0x02>; + reg-io-width = <0x04>; + dmas = <0x4e 0x06 0x4e 0x07>; + pinctrl-names = "default"; + pinctrl-0 = <0x10d>; + status = "okay"; + }; + + serial@fe680000 { + compatible = "rockchip,rk3568-uart\0snps,dw-apb-uart"; + reg = <0x00 0xfe680000 0x00 0x100>; + interrupts = <0x00 0x78 0x04>; + clocks = <0x23 0x12b 0x23 0x128>; + clock-names = "baudclk\0apb_pclk"; + reg-shift = <0x02>; + reg-io-width = <0x04>; + dmas = <0x4e 0x08 0x4e 0x09>; + pinctrl-names = "default"; + pinctrl-0 = <0x10e>; + status = "okay"; + }; + + serial@fe690000 { + compatible = "rockchip,rk3568-uart\0snps,dw-apb-uart"; + reg = <0x00 0xfe690000 0x00 0x100>; + interrupts = <0x00 0x79 0x04>; + clocks = <0x23 0x12f 0x23 0x12c>; + clock-names = "baudclk\0apb_pclk"; + reg-shift = <0x02>; + reg-io-width = <0x04>; + dmas = <0x4e 0x0a 0x4e 0x0b>; + pinctrl-names = "default"; + pinctrl-0 = <0x10f>; + status = "disabled"; + }; + + serial@fe6a0000 { + compatible = "rockchip,rk3568-uart\0snps,dw-apb-uart"; + reg = <0x00 0xfe6a0000 0x00 0x100>; + interrupts = <0x00 0x7a 0x04>; + clocks = <0x23 0x133 0x23 0x130>; + clock-names = "baudclk\0apb_pclk"; + reg-shift = <0x02>; + reg-io-width = <0x04>; + dmas = <0x4e 0x0c 0x4e 0x0d>; + pinctrl-names = "default"; + pinctrl-0 = <0x110>; + status = "disabled"; + }; + + serial@fe6b0000 { + compatible = "rockchip,rk3568-uart\0snps,dw-apb-uart"; + reg = <0x00 0xfe6b0000 0x00 0x100>; + interrupts = <0x00 0x7b 0x04>; + clocks = <0x23 0x137 0x23 0x134>; + clock-names = "baudclk\0apb_pclk"; + reg-shift = <0x02>; + reg-io-width = <0x04>; + dmas = <0x4e 0x0e 0x4e 0x0f>; + pinctrl-names = "default"; + pinctrl-0 = <0x111>; + status = "okay"; + }; + + serial@fe6c0000 { + compatible = "rockchip,rk3568-uart\0snps,dw-apb-uart"; + reg = <0x00 0xfe6c0000 0x00 0x100>; + interrupts = <0x00 0x7c 0x04>; + clocks = <0x23 0x13b 0x23 0x138>; + clock-names = "baudclk\0apb_pclk"; + reg-shift = <0x02>; + reg-io-width = <0x04>; + dmas = <0x4e 0x10 0x4e 0x11>; + pinctrl-names = "default"; + pinctrl-0 = <0x112 0x113>; + status = "okay"; + }; + + serial@fe6d0000 { + compatible = "rockchip,rk3568-uart\0snps,dw-apb-uart"; + reg = <0x00 0xfe6d0000 0x00 0x100>; + interrupts = <0x00 0x7d 0x04>; + clocks = <0x23 0x13f 0x23 0x13c>; + clock-names = "baudclk\0apb_pclk"; + reg-shift = <0x02>; + reg-io-width = <0x04>; + dmas = <0x4e 0x12 0x4e 0x13>; + pinctrl-names = "default"; + pinctrl-0 = <0x114>; + status = "okay"; + }; + + pwm@fe6e0000 { + compatible = "rockchip,rk3568-pwm\0rockchip,rk3328-pwm"; + reg = <0x00 0xfe6e0000 0x00 0x10>; + interrupts = <0x00 0x53 0x04>; + #pwm-cells = <0x03>; + pinctrl-names = "active"; + pinctrl-0 = <0x115>; + clocks = <0x23 0x15a 0x23 0x159>; + clock-names = "pwm\0pclk"; + status = "okay"; + }; + + pwm@fe6e0010 { + compatible = "rockchip,rk3568-pwm\0rockchip,rk3328-pwm"; + reg = <0x00 0xfe6e0010 0x00 0x10>; + interrupts = <0x00 0x53 0x04>; + #pwm-cells = <0x03>; + pinctrl-names = "active"; + pinctrl-0 = <0x116>; + clocks = <0x23 0x15a 0x23 0x159>; + clock-names = "pwm\0pclk"; + status = "okay"; + }; + + pwm@fe6e0020 { + compatible = "rockchip,rk3568-pwm\0rockchip,rk3328-pwm"; + reg = <0x00 0xfe6e0020 0x00 0x10>; + interrupts = <0x00 0x53 0x04>; + #pwm-cells = <0x03>; + pinctrl-names = "active"; + pinctrl-0 = <0x117>; + clocks = <0x23 0x15a 0x23 0x159>; + clock-names = "pwm\0pclk"; + status = "disabled"; + }; + + pwm@fe6e0030 { + compatible = "rockchip,remotectl-pwm"; + reg = <0x00 0xfe6e0030 0x00 0x10>; + interrupts = <0x00 0x53 0x04>; + #pwm-cells = <0x03>; + pinctrl-names = "default"; + pinctrl-0 = <0x118>; + clocks = <0x23 0x15a 0x23 0x159>; + clock-names = "pwm\0pclk"; + status = "okay"; + remote_pwm_id = <0x03>; + handle_cpu_id = <0x01>; + remote_support_psci = <0x00>; + + ir_key_firefly { + rockchip,usercode = <0xff00>; + rockchip,key_table = <0xeb 0x74 0xec 0x8b 0xfe 0x9e 0xb7 0x66 0xa3 0x96 0xf4 0x73 0xa7 0x72 0xf8 0xe8 0xfc 0x67 0xfd 0x6c 0xf1 0x69 0xe5 0x6a>; + }; + }; + + pwm@fe6f0000 { + compatible = "rockchip,rk3568-pwm\0rockchip,rk3328-pwm"; + reg = <0x00 0xfe6f0000 0x00 0x10>; + interrupts = <0x00 0x54 0x04>; + #pwm-cells = <0x03>; + pinctrl-names = "active"; + pinctrl-0 = <0x119>; + clocks = <0x23 0x15d 0x23 0x15c>; + clock-names = "pwm\0pclk"; + status = "disabled"; + }; + + pwm@fe6f0010 { + compatible = "rockchip,rk3568-pwm\0rockchip,rk3328-pwm"; + reg = <0x00 0xfe6f0010 0x00 0x10>; + interrupts = <0x00 0x54 0x04>; + #pwm-cells = <0x03>; + pinctrl-names = "active"; + pinctrl-0 = <0x11a>; + clocks = <0x23 0x15d 0x23 0x15c>; + clock-names = "pwm\0pclk"; + status = "disabled"; + }; + + pwm@fe6f0020 { + compatible = "rockchip,rk3568-pwm\0rockchip,rk3328-pwm"; + reg = <0x00 0xfe6f0020 0x00 0x10>; + interrupts = <0x00 0x54 0x04>; + #pwm-cells = <0x03>; + pinctrl-names = "active"; + pinctrl-0 = <0x11b>; + clocks = <0x23 0x15d 0x23 0x15c>; + clock-names = "pwm\0pclk"; + status = "disabled"; + }; + + pwm@fe6f0030 { + compatible = "rockchip,rk3568-pwm\0rockchip,rk3328-pwm"; + reg = <0x00 0xfe6f0030 0x00 0x10>; + interrupts = <0x00 0x54 0x04 0x00 0x58 0x04>; + #pwm-cells = <0x03>; + pinctrl-names = "active"; + pinctrl-0 = <0x11c>; + clocks = <0x23 0x15d 0x23 0x15c>; + clock-names = "pwm\0pclk"; + status = "disabled"; + phandle = <0x157>; + }; + + pwm@fe700000 { + compatible = "rockchip,rk3568-pwm\0rockchip,rk3328-pwm"; + reg = <0x00 0xfe700000 0x00 0x10>; + interrupts = <0x00 0x55 0x04>; + #pwm-cells = <0x03>; + pinctrl-names = "active"; + pinctrl-0 = <0x11d>; + clocks = <0x23 0x160 0x23 0x15f>; + clock-names = "pwm\0pclk"; + status = "disabled"; + }; + + pwm@fe700010 { + compatible = "rockchip,rk3568-pwm\0rockchip,rk3328-pwm"; + reg = <0x00 0xfe700010 0x00 0x10>; + interrupts = <0x00 0x55 0x04>; + #pwm-cells = <0x03>; + pinctrl-names = "active"; + pinctrl-0 = <0x11e>; + clocks = <0x23 0x160 0x23 0x15f>; + clock-names = "pwm\0pclk"; + status = "disabled"; + }; + + pwm@fe700020 { + compatible = "rockchip,rk3568-pwm\0rockchip,rk3328-pwm"; + reg = <0x00 0xfe700020 0x00 0x10>; + interrupts = <0x00 0x55 0x04>; + #pwm-cells = <0x03>; + pinctrl-names = "active"; + pinctrl-0 = <0x11f>; + clocks = <0x23 0x160 0x23 0x15f>; + clock-names = "pwm\0pclk"; + status = "disabled"; + }; + + pwm@fe700030 { + compatible = "rockchip,rk3568-pwm\0rockchip,rk3328-pwm"; + reg = <0x00 0xfe700030 0x00 0x10>; + interrupts = <0x00 0x55 0x04 0x00 0x59 0x04>; + #pwm-cells = <0x03>; + pinctrl-names = "active"; + pinctrl-0 = <0x120>; + clocks = <0x23 0x160 0x23 0x15f>; + clock-names = "pwm\0pclk"; + status = "disabled"; + }; + + tsadc@fe710000 { + compatible = "rockchip,rk3568-tsadc"; + reg = <0x00 0xfe710000 0x00 0x100>; + interrupts = <0x00 0x73 0x04>; + rockchip,grf = <0x3b>; + clocks = <0x23 0x111 0x23 0x10f>; + clock-names = "tsadc\0apb_pclk"; + assigned-clocks = <0x23 0x110 0x23 0x111>; + assigned-clock-rates = <0x1036640 0xaae60>; + resets = <0x23 0x182 0x23 0x181 0x23 0x1d7>; + reset-names = "tsadc\0tsadc-apb\0tsadc-phy"; + #thermal-sensor-cells = <0x01>; + nvmem-cells = <0x121 0x122>; + nvmem-cell-names = "trim_base\0trim_base_frac"; + rockchip,hw-tshut-temp = <0x1d4c0>; + rockchip,hw-tshut-mode = <0x00>; + rockchip,hw-tshut-polarity = <0x00>; + pinctrl-names = "gpio\0otpout"; + pinctrl-0 = <0x123>; + pinctrl-1 = <0x124>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "okay"; + phandle = <0x1f>; + + tsadc@0 { + reg = <0x00>; + nvmem-cells = <0x125 0x126>; + nvmem-cell-names = "trim_l\0trim_h"; + }; + + tsadc@1 { + reg = <0x01>; + nvmem-cells = <0x127 0x128>; + nvmem-cell-names = "trim_l\0trim_h"; + }; + }; + + saradc@fe720000 { + compatible = "rockchip,rk3568-saradc\0rockchip,rk3399-saradc"; + reg = <0x00 0xfe720000 0x00 0x100>; + interrupts = <0x00 0x5d 0x04>; + #io-channel-cells = <0x01>; + clocks = <0x23 0x113 0x23 0x112>; + clock-names = "saradc\0apb_pclk"; + resets = <0x23 0x180>; + reset-names = "saradc-apb"; + status = "okay"; + vref-supply = <0x129>; + phandle = <0x49>; + }; + + mailbox@fe780000 { + compatible = "rockchip,rk3568-mailbox\0rockchip,rk3368-mailbox"; + reg = <0x00 0xfe780000 0x00 0x1000>; + interrupts = <0x00 0xb7 0x04 0x00 0xb8 0x04 0x00 0xb9 0x04 0x00 0xba 0x04>; + clocks = <0x23 0x11b>; + clock-names = "pclk_mailbox"; + #mbox-cells = <0x01>; + status = "disabled"; + }; + + phy@fe820000 { + compatible = "rockchip,rk3568-naneng-combphy"; + reg = <0x00 0xfe820000 0x00 0x100>; + #phy-cells = <0x01>; + clocks = <0x3a 0x1f 0x23 0x17c 0x23 0x7f>; + clock-names = "refclk\0apbclk\0pipe_clk"; + assigned-clocks = <0x3a 0x1f>; + assigned-clock-rates = <0x5f5e100>; + resets = <0x23 0x1c4 0x23 0x1c5>; + reset-names = "combphy-apb\0combphy"; + rockchip,pipe-grf = <0x12a>; + rockchip,pipe-phy-grf = <0x12b>; + status = "okay"; + phandle = <0x24>; + }; + + phy@fe830000 { + compatible = "rockchip,rk3568-naneng-combphy"; + reg = <0x00 0xfe830000 0x00 0x100>; + #phy-cells = <0x01>; + clocks = <0x3a 0x22 0x23 0x17d 0x23 0x7f>; + clock-names = "refclk\0apbclk\0pipe_clk"; + assigned-clocks = <0x3a 0x22>; + assigned-clock-rates = <0x5f5e100>; + resets = <0x23 0x1c6 0x23 0x1c7>; + reset-names = "combphy-apb\0combphy"; + rockchip,pipe-grf = <0x12a>; + rockchip,pipe-phy-grf = <0x12c>; + status = "okay"; + phandle = <0x26>; + }; + + phy@fe840000 { + compatible = "rockchip,rk3568-naneng-combphy"; + reg = <0x00 0xfe840000 0x00 0x100>; + #phy-cells = <0x01>; + clocks = <0x3a 0x25 0x23 0x17e 0x23 0x7f>; + clock-names = "refclk\0apbclk\0pipe_clk"; + assigned-clocks = <0x3a 0x25>; + assigned-clock-rates = <0x5f5e100>; + resets = <0x23 0x1c8 0x23 0x1c9>; + reset-names = "combphy-apb\0combphy"; + rockchip,pipe-grf = <0x12a>; + rockchip,pipe-phy-grf = <0x12d>; + status = "okay"; + phandle = <0x27>; + }; + + phy@fe850000 { + compatible = "rockchip,rk3568-dsi-dphy\0rockchip,rk3568-video-phy"; + reg = <0x00 0xfe850000 0x00 0x10000 0x00 0xfe060000 0x00 0x10000>; + reg-names = "phy\0host"; + clocks = <0x3a 0x17 0x23 0x17a 0x23 0xe8>; + clock-names = "ref\0pclk\0pclk_host"; + #clock-cells = <0x00>; + resets = <0x23 0x1bb>; + reset-names = "apb"; + power-domains = <0x25 0x09>; + #phy-cells = <0x00>; + status = "disabled"; + phandle = <0x34>; + }; + + phy@fe860000 { + compatible = "rockchip,rk3568-dsi-dphy\0rockchip,rk3568-video-phy"; + reg = <0x00 0xfe860000 0x00 0x10000 0x00 0xfe070000 0x00 0x10000>; + reg-names = "phy\0host"; + clocks = <0x3a 0x19 0x23 0x17b 0x23 0xe9>; + clock-names = "ref\0pclk\0pclk_host"; + #clock-cells = <0x00>; + resets = <0x23 0x1bc>; + reset-names = "apb"; + power-domains = <0x25 0x09>; + #phy-cells = <0x00>; + status = "disabled"; + phandle = <0x36>; + }; + + csi2-dphy-hw@fe870000 { + compatible = "rockchip,rk3568-csi2-dphy-hw"; + reg = <0x00 0xfe870000 0x00 0x1000>; + clocks = <0x23 0x179>; + clock-names = "pclk"; + rockchip,grf = <0x3b>; + status = "okay"; + phandle = <0x12e>; + }; + + csi2-dphy0 { + compatible = "rockchip,rk3568-csi2-dphy"; + rockchip,hw = <0x12e>; + status = "okay"; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + reg = <0x00>; + #address-cells = <0x01>; + #size-cells = <0x00>; + + endpoint@1 { + reg = <0x01>; + remote-endpoint = <0x12f>; + data-lanes = <0x01 0x02 0x03 0x04>; + phandle = <0xf6>; + }; + + endpoint@2 { + reg = <0x02>; + remote-endpoint = <0x130>; + data-lanes = <0x01 0x02 0x03 0x04>; + phandle = <0xf5>; + }; + + endpoint@3 { + reg = <0x03>; + remote-endpoint = <0x131>; + data-lanes = <0x01 0x02>; + phandle = <0xf7>; + }; + + endpoint@4 { + reg = <0x04>; + remote-endpoint = <0x132>; + data-lanes = <0x01 0x02 0x03 0x04>; + phandle = <0xf8>; + }; + + endpoint@5 { + reg = <0x05>; + remote-endpoint = <0x133>; + data-lanes = <0x01 0x02 0x03 0x04>; + phandle = <0xf9>; + }; + }; + + port@1 { + reg = <0x01>; + #address-cells = <0x01>; + #size-cells = <0x00>; + + endpoint@0 { + reg = <0x00>; + remote-endpoint = <0x134>; + phandle = <0x8c>; + }; + }; + }; + }; + + csi2-dphy1 { + compatible = "rockchip,rk3568-csi2-dphy"; + rockchip,hw = <0x12e>; + status = "disabled"; + }; + + csi2-dphy2 { + compatible = "rockchip,rk3568-csi2-dphy"; + rockchip,hw = <0x12e>; + status = "disabled"; + }; + + usb2-phy@fe8a0000 { + compatible = "rockchip,rk3568-usb2phy"; + reg = <0x00 0xfe8a0000 0x00 0x10000>; + interrupts = <0x00 0x87 0x04>; + clocks = <0x3a 0x13>; + clock-names = "phyclk"; + #clock-cells = <0x00>; + assigned-clocks = <0x23 0x0b>; + assigned-clock-parents = <0x29>; + clock-output-names = "usb480m_phy"; + rockchip,usbgrf = <0x135>; + status = "okay"; + phandle = <0x29>; + + host-port { + #phy-cells = <0x00>; + status = "okay"; + phy-supply = <0x136>; + phandle = <0x2b>; + }; + + otg-port { + #phy-cells = <0x00>; + status = "okay"; + phandle = <0x28>; + }; + }; + + usb2-phy@fe8b0000 { + compatible = "rockchip,rk3568-usb2phy"; + reg = <0x00 0xfe8b0000 0x00 0x10000>; + interrupts = <0x00 0x88 0x04>; + clocks = <0x3a 0x15>; + clock-names = "phyclk"; + #clock-cells = <0x00>; + rockchip,usbgrf = <0x137>; + status = "okay"; + phandle = <0x2c>; + + host-port { + #phy-cells = <0x00>; + status = "okay"; + phy-supply = <0x136>; + phandle = <0x2e>; + }; + + otg-port { + #phy-cells = <0x00>; + status = "okay"; + phy-supply = <0x136>; + phandle = <0x2d>; + }; + }; + + phy@fe8c0000 { + compatible = "rockchip,rk3568-pcie3-phy"; + reg = <0x00 0xfe8c0000 0x00 0x20000>; + #phy-cells = <0x00>; + clocks = <0x3a 0x26 0x3a 0x27 0x23 0x177>; + clock-names = "refclk_m\0refclk_n\0pclk"; + resets = <0x23 0x1be>; + reset-names = "phy"; + rockchip,phy-grf = <0x138>; + status = "okay"; + phandle = <0xc0>; + }; + + pinctrl { + compatible = "rockchip,rk3568-pinctrl"; + rockchip,grf = <0x3b>; + rockchip,pmu = <0x3c>; + #address-cells = <0x02>; + #size-cells = <0x02>; + ranges; + + gpio0@fdd60000 { + compatible = "rockchip,gpio-bank"; + reg = <0x00 0xfdd60000 0x00 0x100>; + interrupts = <0x00 0x21 0x04>; + clocks = <0x3a 0x2e 0x3a 0x0c>; + gpio-controller; + #gpio-cells = <0x02>; + interrupt-controller; + #interrupt-cells = <0x02>; + phandle = <0x3f>; + }; + + gpio1@fe740000 { + compatible = "rockchip,gpio-bank"; + reg = <0x00 0xfe740000 0x00 0x100>; + interrupts = <0x00 0x22 0x04>; + clocks = <0x23 0x163 0x23 0x164>; + gpio-controller; + #gpio-cells = <0x02>; + interrupt-controller; + #interrupt-cells = <0x02>; + phandle = <0x159>; + }; + + gpio2@fe750000 { + compatible = "rockchip,gpio-bank"; + reg = <0x00 0xfe750000 0x00 0x100>; + interrupts = <0x00 0x23 0x04>; + clocks = <0x23 0x165 0x23 0x166>; + gpio-controller; + #gpio-cells = <0x02>; + interrupt-controller; + #interrupt-cells = <0x02>; + phandle = <0x91>; + }; + + gpio3@fe760000 { + compatible = "rockchip,gpio-bank"; + reg = <0x00 0xfe760000 0x00 0x100>; + interrupts = <0x00 0x24 0x04>; + clocks = <0x23 0x167 0x23 0x168>; + gpio-controller; + #gpio-cells = <0x02>; + interrupt-controller; + #interrupt-cells = <0x02>; + phandle = <0x4a>; + }; + + gpio4@fe770000 { + compatible = "rockchip,gpio-bank"; + reg = <0x00 0xfe770000 0x00 0x100>; + interrupts = <0x00 0x25 0x04>; + clocks = <0x23 0x169 0x23 0x16a>; + gpio-controller; + #gpio-cells = <0x02>; + interrupt-controller; + #interrupt-cells = <0x02>; + phandle = <0xf4>; + }; + + pcfg-pull-up { + bias-pull-up; + phandle = <0x13b>; + }; + + pcfg-pull-down { + bias-pull-down; + phandle = <0x142>; + }; + + pcfg-pull-none { + bias-disable; + phandle = <0x139>; + }; + + pcfg-pull-none-drv-level-1 { + bias-disable; + drive-strength = <0x01>; + phandle = <0x13d>; + }; + + pcfg-pull-none-drv-level-2 { + bias-disable; + drive-strength = <0x02>; + phandle = <0x13c>; + }; + + pcfg-pull-none-drv-level-3 { + bias-disable; + drive-strength = <0x03>; + phandle = <0x141>; + }; + + pcfg-pull-up-drv-level-1 { + bias-pull-up; + drive-strength = <0x01>; + phandle = <0x140>; + }; + + pcfg-pull-up-drv-level-2 { + bias-pull-up; + drive-strength = <0x02>; + phandle = <0x13a>; + }; + + pcfg-pull-none-smt { + bias-disable; + input-schmitt-enable; + phandle = <0x13e>; + }; + + pcfg-output-low-pull-down { + output-low; + bias-pull-down; + phandle = <0x13f>; + }; + + acodec { + + acodec-pins { + rockchip,pins = <0x01 0x09 0x05 0x139 0x01 0x01 0x05 0x139 0x01 0x00 0x05 0x139 0x01 0x07 0x05 0x139 0x01 0x08 0x05 0x139 0x01 0x03 0x05 0x139 0x01 0x05 0x05 0x139>; + phandle = <0xea>; + }; + }; + + cam { + + vcc-cam { + rockchip,pins = <0x00 0x11 0x00 0x139>; + phandle = <0x158>; + }; + }; + + can1 { + + can1m1-pins { + rockchip,pins = <0x04 0x12 0x03 0x139 0x04 0x13 0x03 0x139>; + phandle = <0xec>; + }; + }; + + can2 { + + can2m0-pins { + rockchip,pins = <0x04 0x0c 0x03 0x139 0x04 0x0d 0x03 0x139>; + phandle = <0xed>; + }; + }; + + cif { + + cif-clk { + rockchip,pins = <0x04 0x10 0x01 0x139>; + phandle = <0xf3>; + }; + }; + + clk32k { + + clk32k-out0 { + rockchip,pins = <0x00 0x08 0x02 0x139>; + phandle = <0x22>; + }; + }; + + ebc { + + ebc-pins { + rockchip,pins = <0x04 0x10 0x02 0x139 0x04 0x0b 0x02 0x139 0x04 0x0c 0x02 0x139 0x04 0x06 0x02 0x139 0x04 0x11 0x02 0x139 0x03 0x16 0x02 0x139 0x03 0x17 0x02 0x139 0x03 0x18 0x02 0x139 0x03 0x19 0x02 0x139 0x03 0x1a 0x02 0x139 0x03 0x1b 0x02 0x139 0x03 0x1c 0x02 0x139 0x03 0x1d 0x02 0x139 0x03 0x1e 0x02 0x139 0x03 0x1f 0x02 0x139 0x04 0x00 0x02 0x139 0x04 0x01 0x02 0x139 0x04 0x02 0x02 0x139 0x04 0x03 0x02 0x139 0x04 0x04 0x02 0x139 0x04 0x05 0x02 0x139 0x04 0x0e 0x02 0x139 0x04 0x0f 0x02 0x139>; + phandle = <0x7c>; + }; + }; + + fspi { + + fspi-pins { + rockchip,pins = <0x01 0x18 0x01 0x139 0x01 0x1b 0x01 0x139 0x01 0x19 0x01 0x139 0x01 0x1a 0x01 0x139 0x01 0x17 0x02 0x139 0x01 0x1c 0x01 0x139>; + phandle = <0xd4>; + }; + }; + + gmac0 { + + gmac0-miim { + rockchip,pins = <0x02 0x13 0x02 0x139 0x02 0x14 0x02 0x139>; + phandle = <0xc8>; + }; + + gmac0-clkinout { + rockchip,pins = <0x02 0x12 0x02 0x139>; + phandle = <0xcd>; + }; + + gmac0-rx-bus2 { + rockchip,pins = <0x02 0x0e 0x01 0x139 0x02 0x0f 0x02 0x139 0x02 0x10 0x02 0x139>; + phandle = <0xca>; + }; + + gmac0-tx-bus2 { + rockchip,pins = <0x02 0x0b 0x01 0x13c 0x02 0x0c 0x01 0x13c 0x02 0x0d 0x01 0x139>; + phandle = <0xc9>; + }; + + gmac0-rgmii-clk { + rockchip,pins = <0x02 0x05 0x02 0x139 0x02 0x08 0x02 0x13d>; + phandle = <0xcb>; + }; + + gmac0-rgmii-bus { + rockchip,pins = <0x02 0x03 0x02 0x139 0x02 0x04 0x02 0x139 0x02 0x06 0x02 0x13c 0x02 0x07 0x02 0x13c>; + phandle = <0xcc>; + }; + }; + + gmac1 { + + gmac1m1-miim { + rockchip,pins = <0x04 0x0e 0x03 0x139 0x04 0x0f 0x03 0x139>; + phandle = <0x93>; + }; + + gmac1m1-clkinout { + rockchip,pins = <0x04 0x11 0x03 0x139>; + phandle = <0x98>; + }; + + gmac1m1-rx-bus2 { + rockchip,pins = <0x04 0x07 0x03 0x139 0x04 0x08 0x03 0x139 0x04 0x09 0x03 0x139>; + phandle = <0x95>; + }; + + gmac1m1-tx-bus2 { + rockchip,pins = <0x04 0x04 0x03 0x13c 0x04 0x05 0x03 0x13c 0x04 0x06 0x03 0x139>; + phandle = <0x94>; + }; + + gmac1m1-rgmii-clk { + rockchip,pins = <0x04 0x03 0x03 0x139 0x04 0x00 0x03 0x13d>; + phandle = <0x96>; + }; + + gmac1m1-rgmii-bus { + rockchip,pins = <0x04 0x01 0x03 0x139 0x04 0x02 0x03 0x139 0x03 0x1e 0x03 0x13c 0x03 0x1f 0x03 0x13c>; + phandle = <0x97>; + }; + }; + + hdmitx { + + hdmitxm0-cec { + rockchip,pins = <0x04 0x19 0x01 0x139>; + phandle = <0xac>; + }; + + hdmitx-scl { + rockchip,pins = <0x04 0x17 0x01 0x139>; + phandle = <0xaa>; + }; + + hdmitx-sda { + rockchip,pins = <0x04 0x18 0x01 0x139>; + phandle = <0xab>; + }; + }; + + i2c0 { + + i2c0-xfer { + rockchip,pins = <0x00 0x09 0x01 0x13e 0x00 0x0a 0x01 0x13e>; + phandle = <0x3d>; + }; + }; + + i2c1 { + + i2c1-xfer { + rockchip,pins = <0x00 0x0b 0x01 0x13e 0x00 0x0c 0x01 0x13e>; + phandle = <0xee>; + }; + }; + + i2c2 { + + i2c2m0-xfer { + rockchip,pins = <0x00 0x0d 0x01 0x13e 0x00 0x0e 0x01 0x13e>; + phandle = <0xf0>; + }; + }; + + i2c3 { + + i2c3m0-xfer { + rockchip,pins = <0x01 0x01 0x01 0x13e 0x01 0x00 0x01 0x13e>; + phandle = <0xf1>; + }; + }; + + i2c4 { + + i2c4m0-xfer { + rockchip,pins = <0x04 0x0b 0x01 0x13e 0x04 0x0a 0x01 0x13e>; + phandle = <0xf2>; + }; + }; + + i2c5 { + + i2c5m0-xfer { + rockchip,pins = <0x03 0x0b 0x04 0x13e 0x03 0x0c 0x04 0x13e>; + phandle = <0xfa>; + }; + }; + + i2s1 { + + i2s1m0-lrcktx { + rockchip,pins = <0x01 0x05 0x01 0x13e>; + phandle = <0xd7>; + }; + + i2s1m0-mclk { + rockchip,pins = <0x01 0x02 0x01 0x13e>; + phandle = <0x47>; + }; + + i2s1m0-sclktx { + rockchip,pins = <0x01 0x03 0x01 0x13e>; + phandle = <0xd6>; + }; + + i2s1m0-sdi0 { + rockchip,pins = <0x01 0x0b 0x01 0x139>; + phandle = <0xd8>; + }; + + i2s1m0-sdo0 { + rockchip,pins = <0x01 0x07 0x01 0x139>; + phandle = <0xd9>; + }; + }; + + i2s2 { + + i2s2m0-lrcktx { + rockchip,pins = <0x02 0x13 0x01 0x13e>; + phandle = <0xdb>; + }; + + i2s2m0-sclktx { + rockchip,pins = <0x02 0x12 0x01 0x13e>; + phandle = <0xda>; + }; + + i2s2m0-sdi { + rockchip,pins = <0x02 0x15 0x01 0x139>; + phandle = <0xdc>; + }; + + i2s2m0-sdo { + rockchip,pins = <0x02 0x14 0x01 0x139>; + phandle = <0xdd>; + }; + }; + + i2s3 { + + i2s3m0-lrck { + rockchip,pins = <0x03 0x04 0x04 0x13e>; + phandle = <0xdf>; + }; + + i2s3m0-sclk { + rockchip,pins = <0x03 0x03 0x04 0x13e>; + phandle = <0xde>; + }; + + i2s3m0-sdi { + rockchip,pins = <0x03 0x06 0x04 0x139>; + phandle = <0xe0>; + }; + + i2s3m0-sdo { + rockchip,pins = <0x03 0x05 0x04 0x139>; + phandle = <0xe1>; + }; + }; + + lcdc { + + lcdc-ctl { + rockchip,pins = <0x03 0x00 0x01 0x139 0x02 0x18 0x01 0x139 0x02 0x19 0x01 0x139 0x02 0x1a 0x01 0x139 0x02 0x1b 0x01 0x139 0x02 0x1c 0x01 0x139 0x02 0x1d 0x01 0x139 0x02 0x1e 0x01 0x139 0x02 0x1f 0x01 0x139 0x03 0x01 0x01 0x139 0x03 0x02 0x01 0x139 0x03 0x03 0x01 0x139 0x03 0x04 0x01 0x139 0x03 0x05 0x01 0x139 0x03 0x06 0x01 0x139 0x03 0x07 0x01 0x139 0x03 0x08 0x01 0x139 0x03 0x09 0x01 0x139 0x03 0x0a 0x01 0x139 0x03 0x0b 0x01 0x139 0x03 0x0c 0x01 0x139 0x03 0x0d 0x01 0x139 0x03 0x0e 0x01 0x139 0x03 0x0f 0x01 0x139 0x03 0x10 0x01 0x139 0x03 0x13 0x01 0x139 0x03 0x11 0x01 0x139 0x03 0x12 0x01 0x139>; + phandle = <0x39>; + }; + }; + + pdm { + + pdmm0-clk { + rockchip,pins = <0x01 0x06 0x03 0x139>; + phandle = <0xe2>; + }; + + pdmm0-clk1 { + rockchip,pins = <0x01 0x04 0x03 0x139>; + phandle = <0xe3>; + }; + + pdmm0-sdi0 { + rockchip,pins = <0x01 0x0b 0x02 0x139>; + phandle = <0xe4>; + }; + + pdmm0-sdi1 { + rockchip,pins = <0x01 0x0a 0x03 0x139>; + phandle = <0xe5>; + }; + + pdmm0-sdi2 { + rockchip,pins = <0x01 0x09 0x03 0x139>; + phandle = <0xe6>; + }; + + pdmm0-sdi3 { + rockchip,pins = <0x01 0x08 0x03 0x139>; + phandle = <0xe7>; + }; + }; + + pmic { + + pmic_int { + rockchip,pins = <0x00 0x03 0x00 0x13b>; + phandle = <0x40>; + }; + + soc_slppin_gpio { + rockchip,pins = <0x00 0x02 0x00 0x13f>; + phandle = <0x43>; + }; + + soc_slppin_slp { + rockchip,pins = <0x00 0x02 0x01 0x13b>; + phandle = <0x41>; + }; + + soc_slppin_rst { + rockchip,pins = <0x00 0x02 0x02 0x139>; + }; + + spk_ctl_gpio { + rockchip,pins = <0x03 0x15 0x00 0x13b>; + phandle = <0x48>; + }; + }; + + pwm0 { + + pwm0m0-pins { + rockchip,pins = <0x00 0x0f 0x01 0x139>; + phandle = <0x50>; + }; + }; + + pwm1 { + + pwm1m0-pins { + rockchip,pins = <0x00 0x10 0x01 0x139>; + phandle = <0x51>; + }; + }; + + pwm2 { + + pwm2m0-pins { + rockchip,pins = <0x00 0x11 0x01 0x139>; + phandle = <0x52>; + }; + }; + + pwm3 { + + pwm3-pins { + rockchip,pins = <0x00 0x12 0x01 0x139>; + phandle = <0x53>; + }; + }; + + pwm4 { + + pwm4-pins { + rockchip,pins = <0x00 0x13 0x01 0x139>; + phandle = <0x115>; + }; + }; + + pwm5 { + + pwm5-pins { + rockchip,pins = <0x00 0x14 0x01 0x139>; + phandle = <0x116>; + }; + }; + + pwm6 { + + pwm6-pins { + rockchip,pins = <0x00 0x15 0x01 0x139>; + phandle = <0x117>; + }; + }; + + pwm7 { + + pwm7-pins { + rockchip,pins = <0x00 0x16 0x01 0x139>; + phandle = <0x118>; + }; + }; + + pwm8 { + + pwm8m0-pins { + rockchip,pins = <0x03 0x09 0x05 0x139>; + phandle = <0x119>; + }; + }; + + pwm9 { + + pwm9m0-pins { + rockchip,pins = <0x03 0x0a 0x05 0x139>; + phandle = <0x11a>; + }; + }; + + pwm10 { + + pwm10m0-pins { + rockchip,pins = <0x03 0x0d 0x05 0x139>; + phandle = <0x11b>; + }; + }; + + pwm11 { + + pwm11m0-pins { + rockchip,pins = <0x03 0x0e 0x05 0x139>; + phandle = <0x11c>; + }; + }; + + pwm12 { + + pwm12m0-pins { + rockchip,pins = <0x03 0x0f 0x02 0x139>; + phandle = <0x11d>; + }; + }; + + pwm13 { + + pwm13m0-pins { + rockchip,pins = <0x03 0x10 0x02 0x139>; + phandle = <0x11e>; + }; + }; + + pwm14 { + + pwm14m0-pins { + rockchip,pins = <0x03 0x14 0x01 0x139>; + phandle = <0x11f>; + }; + }; + + pwm15 { + + pwm15m0-pins { + rockchip,pins = <0x03 0x15 0x01 0x139>; + phandle = <0x120>; + }; + }; + + scr { + + scr-pins { + rockchip,pins = <0x01 0x02 0x03 0x139 0x01 0x07 0x03 0x13b 0x01 0x03 0x03 0x13b 0x01 0x05 0x03 0x139>; + phandle = <0xeb>; + }; + }; + + sdmmc0 { + + sdmmc0-bus4 { + rockchip,pins = <0x01 0x1d 0x01 0x13a 0x01 0x1e 0x01 0x13a 0x01 0x1f 0x01 0x13a 0x02 0x00 0x01 0x13a>; + phandle = <0xd0>; + }; + + sdmmc0-clk { + rockchip,pins = <0x02 0x02 0x01 0x13a>; + phandle = <0xd1>; + }; + + sdmmc0-cmd { + rockchip,pins = <0x02 0x01 0x01 0x13a>; + phandle = <0xd2>; + }; + + sdmmc0-det { + rockchip,pins = <0x00 0x04 0x01 0x13b>; + phandle = <0xd3>; + }; + }; + + sdmmc2 { + + sdmmc2m0-bus4 { + rockchip,pins = <0x03 0x16 0x03 0x13a 0x03 0x17 0x03 0x13a 0x03 0x18 0x03 0x13a 0x03 0x19 0x03 0x13a>; + phandle = <0xb0>; + }; + + sdmmc2m0-clk { + rockchip,pins = <0x03 0x1b 0x03 0x13a>; + phandle = <0xb2>; + }; + + sdmmc2m0-cmd { + rockchip,pins = <0x03 0x1a 0x03 0x13a>; + phandle = <0xb1>; + }; + }; + + spdif { + + spdifm1-tx { + rockchip,pins = <0x03 0x15 0x02 0x139>; + phandle = <0xe9>; + }; + }; + + spi0 { + + spi0m0-pins { + rockchip,pins = <0x00 0x0d 0x02 0x139 0x00 0x15 0x02 0x139 0x00 0x0e 0x02 0x139>; + phandle = <0xfe>; + }; + + spi0m0-cs0 { + rockchip,pins = <0x00 0x16 0x02 0x139>; + phandle = <0xfc>; + }; + + spi0m0-cs1 { + rockchip,pins = <0x00 0x14 0x02 0x139>; + phandle = <0xfd>; + }; + }; + + spi1 { + + spi1m1-pins { + rockchip,pins = <0x03 0x13 0x03 0x139 0x03 0x12 0x03 0x139 0x03 0x11 0x03 0x139>; + phandle = <0x100>; + }; + }; + + spi2 { + + spi2m0-pins { + rockchip,pins = <0x02 0x11 0x04 0x139 0x02 0x12 0x04 0x139 0x02 0x13 0x04 0x139>; + phandle = <0x105>; + }; + + spi2m0-cs0 { + rockchip,pins = <0x02 0x14 0x04 0x139>; + phandle = <0x103>; + }; + + spi2m0-cs1 { + rockchip,pins = <0x02 0x15 0x04 0x139>; + phandle = <0x104>; + }; + }; + + spi3 { + + spi3m0-pins { + rockchip,pins = <0x04 0x0b 0x04 0x139 0x04 0x08 0x04 0x139 0x04 0x0a 0x04 0x139>; + phandle = <0x109>; + }; + + spi3m0-cs0 { + rockchip,pins = <0x04 0x06 0x04 0x139>; + phandle = <0x107>; + }; + + spi3m0-cs1 { + rockchip,pins = <0x04 0x07 0x04 0x139>; + phandle = <0x108>; + }; + }; + + tsadc { + + tsadc-shutorg { + rockchip,pins = <0x00 0x01 0x02 0x139>; + phandle = <0x124>; + }; + }; + + uart0 { + + uart0-xfer { + rockchip,pins = <0x00 0x10 0x03 0x13b 0x00 0x11 0x03 0x13b>; + phandle = <0x4f>; + }; + }; + + uart1 { + + uart1m0-xfer { + rockchip,pins = <0x02 0x0b 0x02 0x13b 0x02 0x0c 0x02 0x13b>; + phandle = <0x10b>; + }; + }; + + uart2 { + + uart2m0-xfer { + rockchip,pins = <0x00 0x18 0x01 0x13b 0x00 0x19 0x01 0x13b>; + phandle = <0x10c>; + }; + }; + + uart3 { + + uart3m1-xfer { + rockchip,pins = <0x03 0x10 0x04 0x13b 0x03 0x0f 0x04 0x13b>; + phandle = <0x10d>; + }; + }; + + uart4 { + + uart4m1-xfer { + rockchip,pins = <0x03 0x09 0x04 0x13b 0x03 0x0a 0x04 0x13b>; + phandle = <0x10e>; + }; + }; + + uart5 { + + uart5m0-xfer { + rockchip,pins = <0x02 0x01 0x03 0x13b 0x02 0x02 0x03 0x13b>; + phandle = <0x10f>; + }; + }; + + uart6 { + + uart6m0-xfer { + rockchip,pins = <0x02 0x03 0x03 0x13b 0x02 0x04 0x03 0x13b>; + phandle = <0x110>; + }; + }; + + uart7 { + + uart7m1-xfer { + rockchip,pins = <0x03 0x15 0x04 0x13b 0x03 0x14 0x04 0x13b>; + phandle = <0x111>; + }; + }; + + uart8 { + + uart8m0-xfer { + rockchip,pins = <0x02 0x16 0x02 0x13b 0x02 0x15 0x03 0x13b>; + phandle = <0x112>; + }; + + uart8m0-ctsn { + rockchip,pins = <0x02 0x0a 0x03 0x139>; + phandle = <0x113>; + }; + + uart8m0-rtsn { + rockchip,pins = <0x02 0x09 0x03 0x139>; + phandle = <0x155>; + }; + }; + + uart9 { + + uart9m1-xfer { + rockchip,pins = <0x04 0x16 0x04 0x13b 0x04 0x15 0x04 0x13b>; + phandle = <0x114>; + }; + }; + + spi0-hs { + + spi0m0-pins { + rockchip,pins = <0x00 0x0d 0x02 0x140 0x00 0x15 0x02 0x140 0x00 0x0e 0x02 0x140>; + phandle = <0xff>; + }; + }; + + spi1-hs { + + spi1m1-pins { + rockchip,pins = <0x03 0x13 0x03 0x140 0x03 0x12 0x03 0x140 0x03 0x11 0x03 0x140>; + phandle = <0x101>; + }; + }; + + spi2-hs { + + spi2m0-pins { + rockchip,pins = <0x02 0x11 0x04 0x140 0x02 0x12 0x04 0x140 0x02 0x13 0x04 0x140>; + phandle = <0x106>; + }; + }; + + spi3-hs { + + spi3m0-pins { + rockchip,pins = <0x04 0x0b 0x04 0x140 0x04 0x08 0x04 0x140 0x04 0x0a 0x04 0x140>; + phandle = <0x10a>; + }; + }; + + gpio-func { + + tsadc-gpio-func { + rockchip,pins = <0x00 0x01 0x00 0x139>; + phandle = <0x123>; + }; + }; + + usb { + + vcc5v0-host-en { + rockchip,pins = <0x00 0x06 0x00 0x139>; + phandle = <0x150>; + }; + + vcc5v0-otg-en { + rockchip,pins = <0x00 0x05 0x00 0x139>; + phandle = <0x151>; + }; + + vcc-hub-reset-en { + rockchip,pins = <0x01 0x04 0x00 0x139>; + phandle = <0x15a>; + }; + }; + + headphone { + + hp-det { + rockchip,pins = <0x03 0x12 0x00 0x142>; + phandle = <0x148>; + }; + }; + + sdio-pwrseq { + + wifi-enable-h { + rockchip,pins = <0x03 0x1d 0x00 0x139>; + phandle = <0x153>; + }; + }; + + wireless-wlan { + + wifi-host-wake-irq { + rockchip,pins = <0x03 0x1c 0x00 0x142>; + phandle = <0x154>; + }; + }; + + wireless-bluetooth { + + uart8-gpios { + rockchip,pins = <0x02 0x09 0x00 0x139>; + phandle = <0x156>; + }; + }; + + touch { + + touch-gpio { + rockchip,pins = <0x00 0x0d 0x00 0x13b 0x00 0x0e 0x00 0x139>; + phandle = <0xef>; + }; + }; + + mxc6655xa { + + mxc6655xa_irq_gpio { + rockchip,pins = <0x03 0x11 0x00 0x139>; + phandle = <0xfb>; + }; + }; + + pcie { + + pcie-pi6c-oe-en { + rockchip,pins = <0x03 0x07 0x00 0x139>; + phandle = <0x15b>; + }; + }; + + leds { + + leds-gpio { + rockchip,pins = <0x01 0x0a 0x00 0x139 0x01 0x09 0x00 0x139 0x01 0x08 0x00 0x139 0x02 0x11 0x00 0x139>; + phandle = <0x15d>; + }; + }; + + 4g { + + vcc-4g-power-en { + rockchip,pins = <0x03 0x03 0x00 0x139>; + phandle = <0x15c>; + }; + }; + + usb-typec { + + usbc0-int { + rockchip,pins = <0x00 0x11 0x00 0x13b>; + phandle = <0x4b>; + }; + + vcc5v0-typec0-en { + rockchip,pins = <0x00 0x05 0x00 0x139>; + }; + }; + }; + + audiopwmout-diff { + status = "disabled"; + compatible = "simple-audio-card"; + simple-audio-card,format = "i2s"; + simple-audio-card,name = "rockchip,audiopwmout-diff"; + simple-audio-card,mclk-fs = <0x100>; + simple-audio-card,bitclock-master = <0x143>; + simple-audio-card,frame-master = <0x143>; + + simple-audio-card,cpu { + sound-dai = <0x144>; + }; + + simple-audio-card,codec { + sound-dai = <0x145>; + phandle = <0x143>; + }; + }; + + dc-12v { + compatible = "regulator-fixed"; + regulator-name = "dc_12v"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <0xb71b00>; + regulator-max-microvolt = <0xb71b00>; + phandle = <0x14f>; + }; + + hdmi-sound { + compatible = "simple-audio-card"; + simple-audio-card,format = "i2s"; + simple-audio-card,mclk-fs = <0x80>; + simple-audio-card,name = "rockchip,hdmi"; + status = "okay"; + + simple-audio-card,cpu { + sound-dai = <0x146>; + }; + + simple-audio-card,codec { + sound-dai = <0x147>; + }; + }; + + rk-headset { + status = "disabled"; + compatible = "rockchip_headset"; + headset_gpio = <0x4a 0x12 0x01>; + pinctrl-names = "default"; + pinctrl-0 = <0x148>; + }; + + dummy-codec { + status = "disabled"; + compatible = "rockchip,dummy-codec"; + #sound-dai-cells = <0x00>; + phandle = <0x14a>; + }; + + pdm-mic-array { + status = "disabled"; + compatible = "simple-audio-card"; + simple-audio-card,name = "rockchip,pdm-mic-array"; + + simple-audio-card,cpu { + sound-dai = <0x149>; + }; + + simple-audio-card,codec { + sound-dai = <0x14a>; + }; + }; + + rk809-sound { + status = "okay"; + compatible = "rockchip,multicodecs-card"; + rockchip,card-name = "rockchip-rk809"; + rockchip,format = "i2s"; + rockchip,mclk-fs = <0x100>; + rockchip,cpu = <0xe8>; + rockchip,codec = <0x14b>; + }; + + spdif-sound { + status = "okay"; + compatible = "simple-audio-card"; + simple-audio-card,name = "ROCKCHIP,SPDIF"; + + simple-audio-card,cpu { + sound-dai = <0x14c>; + }; + + simple-audio-card,codec { + sound-dai = <0x14d>; + }; + }; + + spdif-out { + status = "okay"; + compatible = "linux,spdif-dit"; + #sound-dai-cells = <0x00>; + phandle = <0x14d>; + }; + + vad-sound { + status = "disabled"; + compatible = "rockchip,multicodecs-card"; + rockchip,card-name = "rockchip,rk3568-vad"; + rockchip,cpu = <0xe8>; + rockchip,codec = <0x14b 0x14e>; + }; + + vcc3v3-sys { + compatible = "regulator-fixed"; + regulator-name = "vcc3v3_sys"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <0x325aa0>; + regulator-max-microvolt = <0x325aa0>; + vin-supply = <0x14f>; + phandle = <0x46>; + }; + + vcc5v0-sys { + compatible = "regulator-fixed"; + regulator-name = "vcc5v0_sys"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <0x4c4b40>; + regulator-max-microvolt = <0x4c4b40>; + vin-supply = <0x14f>; + phandle = <0x3e>; + }; + + vcc5v0-host-regulator { + compatible = "regulator-fixed"; + enable-active-high; + gpio = <0x3f 0x06 0x00>; + pinctrl-names = "default"; + pinctrl-0 = <0x150>; + regulator-name = "vcc5v0_host"; + regulator-always-on; + regulator-boot-on; + phandle = <0x136>; + }; + + vcc5v0-otg-regulator { + compatible = "regulator-fixed"; + enable-active-high; + gpio = <0x3f 0x05 0x00>; + pinctrl-names = "default"; + pinctrl-0 = <0x151>; + regulator-name = "vcc5v0_otg"; + phandle = <0x4c>; + }; + + vcc3v3-lcd0-n { + compatible = "regulator-fixed"; + regulator-name = "vcc3v3_lcd0_n"; + regulator-boot-on; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + vcc3v3-lcd1-n { + compatible = "regulator-fixed"; + regulator-name = "vcc3v3_lcd1_n"; + regulator-boot-on; + status = "disabled"; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + test-power { + status = "okay"; + }; + + chosen { + // linux,initrd-end = <0x00 0xaacf15d>; + // linux,initrd-start = <0x00 0xa200000>; + bootargs = "storagemedia=emmc androidboot.storagemedia=emmc androidboot.mode=normal androidboot.verifiedbootstate=orange rw rootwait earlycon=uart8250,mmio32,0xfe660000 console=ttyFIQ0 root=PARTLABEL=rootfs rootfstype=ext4 overlayroot=device:dev=PARTLABEL=userdata,fstype=ext4,mkfs=1 coherent_pool=1m systemd.gpt_auto=0 cgroup_enable=memory swapaccount=1 swiotlb=0x10000 net.ifnames=0 comm-05/20/2025 androidboot.fwver=ddr-v1.21-2d653b3476,spl-v1.14,bl31-v1.44,bl32-v2.12,uboot--boot"; + }; + + fiq-debugger { + compatible = "rockchip,fiq-debugger"; + rockchip,serial-id = <0x02>; + rockchip,wake-irq = <0x00>; + rockchip,irq-mode-enable = <0x01>; + rockchip,baudrate = <0x16e360>; + interrupts = <0x00 0xfc 0x08>; + pinctrl-names = "default"; + pinctrl-0 = <0x10c>; + status = "okay"; + }; + + debug@fd904000 { + compatible = "rockchip,debug"; + reg = <0x00 0xfd904000 0x00 0x1000 0x00 0xfd905000 0x00 0x1000 0x00 0xfd906000 0x00 0x1000 0x00 0xfd907000 0x00 0x1000>; + }; + + cspmu@fd90c000 { + compatible = "rockchip,cspmu"; + reg = <0x00 0xfd90c000 0x00 0x1000 0x00 0xfd90d000 0x00 0x1000 0x00 0xfd90e000 0x00 0x1000 0x00 0xfd90f000 0x00 0x1000>; + }; + + adc-keys { + compatible = "adc-keys"; + io-channels = <0x49 0x00>; + io-channel-names = "buttons"; + keyup-threshold-microvolt = <0x1b7740>; + poll-interval = <0x64>; + + recovery-key { + label = "F12"; + linux,code = <0x58>; + press-threshold-microvolt = <0x6d6>; + }; + + vol-down-key { + label = "volume down"; + linux,code = <0x72>; + press-threshold-microvolt = <0x48a1c>; + }; + + menu-key { + label = "menu"; + linux,code = <0x8b>; + press-threshold-microvolt = <0xef420>; + }; + + back-key { + label = "back"; + linux,code = <0x9e>; + press-threshold-microvolt = <0x13eb9c>; + }; + }; + + vcc2v5-ddr { + compatible = "regulator-fixed"; + regulator-name = "vcc2v5-sys"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <0x2625a0>; + regulator-max-microvolt = <0x2625a0>; + vin-supply = <0x46>; + }; + + pcie30-avdd0v9 { + compatible = "regulator-fixed"; + regulator-name = "pcie30_avdd0v9"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <0xdbba0>; + regulator-max-microvolt = <0xdbba0>; + vin-supply = <0x46>; + }; + + pcie30-avdd1v8 { + compatible = "regulator-fixed"; + regulator-name = "pcie30_avdd1v8"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <0x1b7740>; + regulator-max-microvolt = <0x1b7740>; + vin-supply = <0x46>; + }; + + gpio-regulator { + compatible = "regulator-gpio"; + regulator-name = "pcie30_3v3"; + regulator-min-microvolt = <0x186a0>; + regulator-max-microvolt = <0x325aa0>; + gpios = <0x3f 0x1c 0x00>; + gpios-states = <0x01>; + states = <0x186a0 0x00 0x325aa0 0x01>; + phandle = <0xc2>; + }; + + vcc3v3-bu { + compatible = "regulator-fixed"; + regulator-name = "vcc3v3_bu"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <0x325aa0>; + regulator-max-microvolt = <0x325aa0>; + vin-supply = <0x3e>; + }; + + sdio-pwrseq { + compatible = "mmc-pwrseq-simple"; + clocks = <0x152 0x01>; + clock-names = "ext_clock"; + pinctrl-names = "default"; + pinctrl-0 = <0x153>; + post-power-on-delay-ms = <0x64>; + reset-gpios = <0x4a 0x1d 0x01>; + status = "okay"; + phandle = <0xb3>; + }; + + wireless-wlan { + compatible = "wlan-platdata"; + rockchip,grf = <0x3b>; + wifi_chip_type = "ap6256"; + pinctrl-names = "default"; + pinctrl-0 = <0x154>; + WIFI,host_wake_irq = <0x4a 0x1c 0x00>; + status = "okay"; + }; + + wireless-bluetooth { + compatible = "bluetooth-platdata"; + clocks = <0x152 0x01>; + clock-names = "ext_clock"; + uart_rts_gpios = <0x91 0x09 0x01>; + pinctrl-names = "default\0rts_gpio"; + pinctrl-0 = <0x155>; + pinctrl-1 = <0x156>; + BT,reset_gpio = <0x4a 0x00 0x00>; + BT,wake_gpio = <0x4a 0x02 0x00>; + BT,wake_host_irq = <0x4a 0x01 0x00>; + status = "okay"; + }; + + flash-led { + compatible = "led,rgb13h"; + label = "pwm-flash-led"; + led-max-microamp = <0x4e20>; + flash-max-microamp = <0x4e20>; + flash-max-timeout-us = <0xf4240>; + pwms = <0x157 0x00 0x61a8 0x00>; + rockchip,camera-module-index = <0x01>; + rockchip,camera-module-facing = "front"; + status = "disabled"; + }; + + vcc-camera-regulator { + compatible = "regulator-fixed"; + gpio = <0x102 0x03 0x00>; + pinctrl-names = "default"; + pinctrl-0 = <0x158>; + regulator-name = "vcc_camera"; + enable-active-high; + status = "disabled"; + }; + + vcc-hub-reset-regulator { + compatible = "regulator-fixed"; + enable-active-high; + gpio = <0x159 0x04 0x00>; + pinctrl-names = "default"; + pinctrl-0 = <0x15a>; + regulator-name = "vcc_hub_reset_en"; + regulator-always-on; + }; + + pcie-pi6c-oe-regulator { + compatible = "regulator-fixed"; + gpio = <0x4a 0x07 0x01>; + pinctrl-names = "default"; + pinctrl-0 = <0x15b>; + regulator-name = "pcie_pi6c_oe_en"; + regulator-always-on; + }; + + vcc-4g-power-regulator { + compatible = "regulator-fixed"; + enable-active-high; + gpio = <0x4a 0x03 0x00>; + pinctrl-names = "default"; + pinctrl-0 = <0x15c>; + regulator-name = "vcc_4g_power_en"; + regulator-always-on; + }; + + leds { + status = "okay"; + compatible = "gpio-leds"; + pinctrl-names = "default"; + pinctrl-0 = <0x15d>; + + power { + label = "firefly:blue:power"; + linux,default-trigger = "ir-power-click"; + default-state = "on"; + gpios = <0x159 0x0a 0x00>; + }; + + user { + label = "firefly:yellow:user"; + linux,default-trigger = "ir-user-click"; + default-state = "off"; + gpios = <0x159 0x09 0x00>; + }; + + diy1 { + label = "firefly:green:diy"; + linux,default-trigger = "ir-user-click"; + default-state = "off"; + gpios = <0x159 0x08 0x00>; + }; + + diy2 { + label = "firefly:yellow:diy"; + linux,default-trigger = "ir-user-click"; + default-state = "off"; + gpios = <0x91 0x11 0x00>; + }; + }; +}; \ No newline at end of file diff --git a/configs/vms/linux-aarch64-rk3568_smp1.toml b/configs/vms/linux-aarch64-rk3568_smp1.toml new file mode 100644 index 00000000..bd7dd8bc --- /dev/null +++ b/configs/vms/linux-aarch64-rk3568_smp1.toml @@ -0,0 +1,88 @@ +# Vm base info configs +# +[base] +# Guest vm id. +id = 2 +# Guest vm name. +name = "linux" +# Virtualization type. +vm_type = 1 +# The number of virtual CPUs. +cpu_num = 1 +# The physical CPU ids. +phys_cpu_ids = [0x00] +# Guest vm physical cpu sets. +phys_cpu_sets = [1] + +# +# Vm kernel configs +# +[kernel] +# The entry point of the kernel image. +entry_point = 0x8008_0000 +# The location of image: "memory" | "fs". +# Load from file system. +image_location = "fs" +# The load address of the kernel image. +kernel_load_addr = 0x8008_0000 +## The file path of the kernel image. +kernel_path = "/guest/Image" +## The file path of the device tree blob (DTB). +dtb_path = "/guest/linux-aarch64-rk3568_smp1.dtb" +dtb_load_addr = 0x8000_0000 +# Memory regions with format (`base_paddr`, `size`, `flags`, `map_type`). +# For `map_type`, 0 means `MAP_ALLOC`, 1 means `MAP_IDENTICAL`. +memory_regions = [ + # [0x1000_0000, 0x800_0000, 0x7, 0], + # [0x8000_0000, 0x6000_0000, 0x7, 1], # System RAM 1G MAP_IDENTICAL + # [0x1_f000_0000, 0x1000_0000 , 0x7, 1], # System RAM 1G MAP_IDENTICAL + # [0x600_0000, 0x240_0000, 0x7, 1], # System RAM MAP_IDENTICAL + # [0x1_f000_0000, 0x1000_0000, 0x7, 1], # System RAM MAP_IDENTICAL +] +# +# Device specifications +# +[devices] +# Emu_devices. +# Name Base-Ipa Ipa_len Alloc-Irq Emu-Type EmuConfig. +emu_devices = [] + +# Pass-through devices. +# Name Base-Ipa Base-Pa Length Alloc-Irq. +passthrough_devices = [ + # [ + # "peripherals 1", + # 0xf000_0000, + # 0xf000_0000, + # 0xe66_0000, + # 0x1, + # ], + # [ + # "peripherals 2", + # 0xfe67_0000, + # 0xfe67_0000, + # 0x99_0000, + # 0x1, + # ], + [ + "all peripherals", + 0xf0000000, + 0xf0000000, + 0xf000000, + 0x1, + ], + [ + "PCIe related", + 0x3_0000_0000, + 0x3_0000_0000, + 0xd000_0000, + 0x1, + ], + [ + "ramoops, scmi-shmem, etc.", + 0x100000, + 0x100000, + 0x200000, + 0x1, + ], +] \ No newline at end of file diff --git a/configs/vms/linux-aarch64-rk3568_smp2.dts b/configs/vms/linux-aarch64-rk3568_smp2.dts new file mode 100644 index 00000000..5475dbe6 --- /dev/null +++ b/configs/vms/linux-aarch64-rk3568_smp2.dts @@ -0,0 +1,6108 @@ +/dts-v1/; + +/memreserve/ 0x0000000008300000 0x000000000001c000; +/memreserve/ 0x000000000a200000 0x00000000008cf15d; +/ { + serial-number = "425ca8fc29ade692"; + compatible = "rockchip,rk3568-firefly-roc-pc-se\0rockchip,rk3568"; + interrupt-parent = <0x01>; + #address-cells = <0x02>; + #size-cells = <0x02>; + model = "Firefly RK3568-ROC-PC-SE HDMI (Linux)"; + + memory { + reg = <0x00 0x80000000 0x00 0x60000000>; + device_type = "memory"; + }; + + ddr3-params { + version = <0x100>; + expanded_version = <0x00>; + reserved = <0x00>; + freq_0 = <0x420>; + freq_1 = <0x144>; + freq_2 = <0x210>; + freq_3 = <0x30c>; + freq_4 = <0x00>; + freq_5 = <0x00>; + pd_idle = <0x0d>; + sr_idle = <0x5d>; + sr_mc_gate_idle = <0x00>; + srpd_lite_idle = <0x00>; + standby_idle = <0x00>; + pd_dis_freq = <0x42a>; + sr_dis_freq = <0x320>; + dram_dll_dis_freq = <0x12c>; + phy_dll_dis_freq = <0x00>; + phy_dq_drv_odten = <0x21>; + phy_ca_drv_odten = <0x21>; + phy_clk_drv_odten = <0x21>; + dram_dq_drv_odten = <0x22>; + phy_dq_drv_odtoff = <0x21>; + phy_ca_drv_odtoff = <0x21>; + phy_clk_drv_odtoff = <0x21>; + dram_dq_drv_odtoff = <0x22>; + dram_odt = <0x78>; + phy_odt = <0xa7>; + phy_odt_puup_en = <0x01>; + phy_odt_pudn_en = <0x01>; + dram_dq_odt_en_freq = <0x14d>; + phy_odt_en_freq = <0x14d>; + phy_dq_sr_odten = <0x0f>; + phy_ca_sr_odten = <0x03>; + phy_clk_sr_odten = <0x00>; + phy_dq_sr_odtoff = <0x0f>; + phy_ca_sr_odtoff = <0x03>; + phy_clk_sr_odtoff = <0x00>; + ssmod_downspread = <0x00>; + ssmod_div = <0x00>; + ssmod_spread = <0x00>; + mode_2t = <0x00>; + speed_bin = <0x15>; + dram_ext_temp = <0x00>; + byte_map = <0xe4>; + dq_map_cs0_dq_l = <0x00>; + dq_map_cs0_dq_h = <0x00>; + dq_map_cs1_dq_l = <0x00>; + dq_map_cs1_dq_h = <0x00>; + phandle = <0xb7>; + }; + + ddr4-params { + version = <0x100>; + expanded_version = <0x00>; + reserved = <0x00>; + freq_0 = <0x420>; + freq_1 = <0x144>; + freq_2 = <0x210>; + freq_3 = <0x30c>; + freq_4 = <0x00>; + freq_5 = <0x00>; + pd_idle = <0x0d>; + sr_idle = <0x5d>; + sr_mc_gate_idle = <0x00>; + srpd_lite_idle = <0x00>; + standby_idle = <0x00>; + pd_dis_freq = <0x42a>; + sr_dis_freq = <0x320>; + dram_dll_dis_freq = <0x271>; + phy_dll_dis_freq = <0x00>; + phy_dq_drv_odten = <0x25>; + phy_ca_drv_odten = <0x25>; + phy_clk_drv_odten = <0x25>; + dram_dq_drv_odten = <0x22>; + phy_dq_drv_odtoff = <0x25>; + phy_ca_drv_odtoff = <0x25>; + phy_clk_drv_odtoff = <0x25>; + dram_dq_drv_odtoff = <0x22>; + dram_odt = <0x78>; + phy_odt = <0x8b>; + phy_odt_puup_en = <0x01>; + phy_odt_pudn_en = <0x01>; + dram_dq_odt_en_freq = <0x1f4>; + phy_odt_en_freq = <0x1f4>; + phy_dq_sr_odten = <0x0e>; + phy_ca_sr_odten = <0x01>; + phy_clk_sr_odten = <0x01>; + phy_dq_sr_odtoff = <0x0e>; + phy_ca_sr_odtoff = <0x01>; + phy_clk_sr_odtoff = <0x01>; + ssmod_downspread = <0x00>; + ssmod_div = <0x00>; + ssmod_spread = <0x00>; + mode_2t = <0x00>; + speed_bin = <0x0c>; + dram_ext_temp = <0x00>; + byte_map = <0xe4>; + dq_map_cs0_dq_l = <0x22777788>; + dq_map_cs0_dq_h = <0xd7888877>; + dq_map_cs1_dq_l = <0x22777788>; + dq_map_cs1_dq_h = <0xd7888877>; + phandle = <0xb8>; + }; + + lpddr3-params { + version = <0x100>; + expanded_version = <0x00>; + reserved = <0x00>; + freq_0 = <0x420>; + freq_1 = <0x144>; + freq_2 = <0x210>; + freq_3 = <0x30c>; + freq_4 = <0x00>; + freq_5 = <0x00>; + pd_idle = <0x0d>; + sr_idle = <0x5d>; + sr_mc_gate_idle = <0x00>; + srpd_lite_idle = <0x00>; + standby_idle = <0x00>; + pd_dis_freq = <0x42a>; + sr_dis_freq = <0x320>; + dram_dll_dis_freq = <0x00>; + phy_dll_dis_freq = <0x00>; + phy_dq_drv_odten = <0x25>; + phy_ca_drv_odten = <0x25>; + phy_clk_drv_odten = <0x27>; + dram_dq_drv_odten = <0x22>; + phy_dq_drv_odtoff = <0x25>; + phy_ca_drv_odtoff = <0x25>; + phy_clk_drv_odtoff = <0x27>; + dram_dq_drv_odtoff = <0x22>; + dram_odt = <0x78>; + phy_odt = <0x94>; + phy_odt_puup_en = <0x01>; + phy_odt_pudn_en = <0x01>; + dram_dq_odt_en_freq = <0x14d>; + phy_odt_en_freq = <0x14d>; + phy_dq_sr_odten = <0x0f>; + phy_ca_sr_odten = <0x01>; + phy_clk_sr_odten = <0x0f>; + phy_dq_sr_odtoff = <0x0f>; + phy_ca_sr_odtoff = <0x01>; + phy_clk_sr_odtoff = <0x0f>; + ssmod_downspread = <0x00>; + ssmod_div = <0x00>; + ssmod_spread = <0x00>; + mode_2t = <0x00>; + speed_bin = <0x00>; + dram_ext_temp = <0x00>; + byte_map = <0x8d>; + dq_map_cs0_dq_l = <0x00>; + dq_map_cs0_dq_h = <0x00>; + dq_map_cs1_dq_l = <0x00>; + dq_map_cs1_dq_h = <0x00>; + phandle = <0xb9>; + }; + + lpddr4-params { + version = <0x100>; + expanded_version = <0x00>; + reserved = <0x00>; + freq_0 = <0x618>; + freq_1 = <0x144>; + freq_2 = <0x210>; + freq_3 = <0x30c>; + freq_4 = <0x00>; + freq_5 = <0x00>; + pd_idle = <0x0d>; + sr_idle = <0x5d>; + sr_mc_gate_idle = <0x00>; + srpd_lite_idle = <0x00>; + standby_idle = <0x00>; + pd_dis_freq = <0x42a>; + sr_dis_freq = <0x320>; + dram_dll_dis_freq = <0x00>; + phy_dll_dis_freq = <0x00>; + phy_dq_drv_odten = <0x1e>; + phy_ca_drv_odten = <0x26>; + phy_clk_drv_odten = <0x26>; + dram_dq_drv_odten = <0x28>; + phy_dq_drv_odtoff = <0x1e>; + phy_ca_drv_odtoff = <0x26>; + phy_clk_drv_odtoff = <0x26>; + dram_dq_drv_odtoff = <0x28>; + dram_odt = <0x50>; + phy_odt = <0x3c>; + phy_odt_puup_en = <0x00>; + phy_odt_pudn_en = <0x00>; + dram_dq_odt_en_freq = <0x320>; + phy_odt_en_freq = <0x320>; + phy_dq_sr_odten = <0x00>; + phy_ca_sr_odten = <0x0f>; + phy_clk_sr_odten = <0x0f>; + phy_dq_sr_odtoff = <0x00>; + phy_ca_sr_odtoff = <0x0f>; + phy_clk_sr_odtoff = <0x0f>; + ssmod_downspread = <0x00>; + ssmod_div = <0x00>; + ssmod_spread = <0x00>; + mode_2t = <0x00>; + speed_bin = <0x00>; + dram_ext_temp = <0x00>; + byte_map = <0xe4>; + dq_map_cs0_dq_l = <0x00>; + dq_map_cs0_dq_h = <0x00>; + dq_map_cs1_dq_l = <0x00>; + dq_map_cs1_dq_h = <0x00>; + lp4_ca_odt = <0x78>; + lp4_drv_pu_cal_odten = <0x01>; + lp4_drv_pu_cal_odtoff = <0x01>; + phy_lp4_drv_pulldown_en_odten = <0x00>; + phy_lp4_drv_pulldown_en_odtoff = <0x00>; + lp4_ca_odt_en_freq = <0x320>; + phy_lp4_cs_drv_odten = <0x00>; + phy_lp4_cs_drv_odtoff = <0x00>; + lp4_odte_ck_en = <0x01>; + lp4_odte_cs_en = <0x01>; + lp4_odtd_ca_en = <0x00>; + phy_lp4_dq_vref_odten = <0xa6>; + lp4_dq_vref_odten = <0x12c>; + lp4_ca_vref_odten = <0x17c>; + phy_lp4_dq_vref_odtoff = <0x1a4>; + lp4_dq_vref_odtoff = <0x1a4>; + lp4_ca_vref_odtoff = <0x1a4>; + phandle = <0xba>; + }; + + lpddr4x-params { + version = <0x100>; + expanded_version = <0x00>; + reserved = <0x00>; + freq_0 = <0x618>; + freq_1 = <0x144>; + freq_2 = <0x210>; + freq_3 = <0x30c>; + freq_4 = <0x00>; + freq_5 = <0x00>; + pd_idle = <0x0d>; + sr_idle = <0x5d>; + sr_mc_gate_idle = <0x00>; + srpd_lite_idle = <0x00>; + standby_idle = <0x00>; + pd_dis_freq = <0x42a>; + sr_dis_freq = <0x320>; + dram_dll_dis_freq = <0x00>; + phy_dll_dis_freq = <0x00>; + phy_dq_drv_odten = <0x1d>; + phy_ca_drv_odten = <0x24>; + phy_clk_drv_odten = <0x24>; + dram_dq_drv_odten = <0x28>; + phy_dq_drv_odtoff = <0x1d>; + phy_ca_drv_odtoff = <0x24>; + phy_clk_drv_odtoff = <0x24>; + dram_dq_drv_odtoff = <0x28>; + dram_odt = <0x50>; + phy_odt = <0x3c>; + phy_odt_puup_en = <0x00>; + phy_odt_pudn_en = <0x00>; + dram_dq_odt_en_freq = <0x320>; + phy_odt_en_freq = <0x320>; + phy_dq_sr_odten = <0x00>; + phy_ca_sr_odten = <0x00>; + phy_clk_sr_odten = <0x00>; + phy_dq_sr_odtoff = <0x00>; + phy_ca_sr_odtoff = <0x00>; + phy_clk_sr_odtoff = <0x00>; + ssmod_downspread = <0x00>; + ssmod_div = <0x00>; + ssmod_spread = <0x00>; + mode_2t = <0x00>; + speed_bin = <0x00>; + dram_ext_temp = <0x00>; + byte_map = <0xe4>; + dq_map_cs0_dq_l = <0x00>; + dq_map_cs0_dq_h = <0x00>; + dq_map_cs1_dq_l = <0x00>; + dq_map_cs1_dq_h = <0x00>; + lp4_ca_odt = <0x78>; + lp4_drv_pu_cal_odten = <0x00>; + lp4_drv_pu_cal_odtoff = <0x00>; + phy_lp4_drv_pulldown_en_odten = <0x00>; + phy_lp4_drv_pulldown_en_odtoff = <0x00>; + lp4_ca_odt_en_freq = <0x320>; + phy_lp4_cs_drv_odten = <0x00>; + phy_lp4_cs_drv_odtoff = <0x00>; + lp4_odte_ck_en = <0x00>; + lp4_odte_cs_en = <0x00>; + lp4_odtd_ca_en = <0x00>; + phy_lp4_dq_vref_odten = <0xa6>; + lp4_dq_vref_odten = <0xe4>; + lp4_ca_vref_odten = <0x157>; + phy_lp4_dq_vref_odtoff = <0x1a4>; + lp4_dq_vref_odtoff = <0x1a4>; + lp4_ca_vref_odtoff = <0x157>; + phandle = <0xbb>; + }; + + aliases { + csi2dphy0 = "/csi2-dphy0"; + csi2dphy1 = "/csi2-dphy1"; + csi2dphy2 = "/csi2-dphy2"; + dsi0 = "/dsi@fe060000"; + dsi1 = "/dsi@fe070000"; + ethernet0 = "/ethernet@fe2a0000"; + ethernet1 = "/ethernet@fe010000"; + gpio0 = "/pinctrl/gpio0@fdd60000"; + gpio1 = "/pinctrl/gpio1@fe740000"; + gpio2 = "/pinctrl/gpio2@fe750000"; + gpio3 = "/pinctrl/gpio3@fe760000"; + gpio4 = "/pinctrl/gpio4@fe770000"; + i2c0 = "/i2c@fdd40000"; + i2c1 = "/i2c@fe5a0000"; + i2c2 = "/i2c@fe5b0000"; + i2c3 = "/i2c@fe5c0000"; + i2c4 = "/i2c@fe5d0000"; + i2c5 = "/i2c@fe5e0000"; + mmc0 = "/sdhci@fe310000"; + mmc1 = "/dwmmc@fe2b0000"; + mmc2 = "/dwmmc@fe2c0000"; + mmc3 = "/dwmmc@fe000000"; + serial0 = "/serial@fdd50000"; + serial1 = "/serial@fe650000"; + serial2 = "/serial@fe660000"; + serial3 = "/serial@fe670000"; + serial4 = "/serial@fe680000"; + serial5 = "/serial@fe690000"; + serial6 = "/serial@fe6a0000"; + serial7 = "/serial@fe6b0000"; + serial8 = "/serial@fe6c0000"; + serial9 = "/serial@fe6d0000"; + spi0 = "/spi@fe610000"; + spi1 = "/spi@fe620000"; + spi2 = "/spi@fe630000"; + spi3 = "/spi@fe640000"; + lvds0 = "/syscon@fdc60000/lvds"; + lvds1 = "/syscon@fdc60000/lvds1"; + }; + + cpus { + #address-cells = <0x02>; + #size-cells = <0x00>; + + // cpu@0 { + // device_type = "cpu"; + // compatible = "arm,cortex-a55"; + // reg = <0x00 0x00>; + // enable-method = "psci"; + // clocks = <0x02 0x00>; + // operating-points-v2 = <0x03>; + // cpu-idle-states = <0x04>; + // #cooling-cells = <0x02>; + // dynamic-power-coefficient = <0xbb>; + // cpu-supply = <0x05>; + // phandle = <0x0c>; + // }; + + // cpu@100 { + // device_type = "cpu"; + // compatible = "arm,cortex-a55"; + // reg = <0x00 0x100>; + // enable-method = "psci"; + // clocks = <0x02 0x00>; + // operating-points-v2 = <0x03>; + // cpu-idle-states = <0x04>; + // phandle = <0x0d>; + // }; + + cpu@200 { + device_type = "cpu"; + compatible = "arm,cortex-a55"; + reg = <0x00 0x200>; + enable-method = "psci"; + clocks = <0x02 0x00>; + operating-points-v2 = <0x03>; + cpu-idle-states = <0x04>; + phandle = <0x0e>; + }; + + cpu@300 { + device_type = "cpu"; + compatible = "arm,cortex-a55"; + reg = <0x00 0x300>; + enable-method = "psci"; + clocks = <0x02 0x00>; + operating-points-v2 = <0x03>; + cpu-idle-states = <0x04>; + phandle = <0x0f>; + }; + + idle-states { + entry-method = "psci"; + + cpu-sleep { + compatible = "arm,idle-state"; + local-timer-stop; + arm,psci-suspend-param = <0x10000>; + entry-latency-us = <0x64>; + exit-latency-us = <0x78>; + min-residency-us = <0x3e8>; + phandle = <0x04>; + }; + }; + }; + + cpu0-opp-table { + compatible = "operating-points-v2"; + opp-shared; + mbist-vmin = <0xc96a8 0xdbba0 0xe7ef0>; + nvmem-cells = <0x06 0x07 0x08 0x09 0x0a 0x0b>; + nvmem-cell-names = "leakage\0pvtm\0mbist-vmin\0opp-info\0specification_serial_number\0remark_spec_serial_number"; + rockchip,supported-hw; + rockchip,max-volt = <0x118c30>; + rockchip,pvtm-voltage-sel = <0x00 0x14820 0x00 0x14821 0x153d8 0x01 0x153d9 0x16378 0x02 0x16379 0x186a0 0x03>; + rockchip,pvtm-freq = <0x639c0>; + rockchip,pvtm-volt = <0xdbba0>; + rockchip,pvtm-ch = <0x00 0x05>; + rockchip,pvtm-sample-time = <0x3e8>; + rockchip,pvtm-number = <0x0a>; + rockchip,pvtm-error = <0x3e8>; + rockchip,pvtm-ref-temp = <0x28>; + rockchip,pvtm-temp-prop = <0x1a 0x1a>; + rockchip,thermal-zone = "soc-thermal"; + rockchip,temp-hysteresis = <0x1388>; + rockchip,low-temp = <0x00>; + rockchip,low-temp-adjust-volt = <0x00 0x7c8 0x124f8>; + phandle = <0x03>; + + opp-408000000 { + opp-supported-hw = <0xfb 0xffff>; + opp-hz = <0x00 0x18519600>; + opp-microvolt = <0xcf850 0xcf850 0x118c30>; + clock-latency-ns = <0x9c40>; + }; + + opp-600000000 { + opp-supported-hw = <0xfb 0xffff>; + opp-hz = <0x00 0x23c34600>; + opp-microvolt = <0xcf850 0xcf850 0x118c30>; + clock-latency-ns = <0x9c40>; + }; + + opp-816000000 { + opp-supported-hw = <0xfb 0xffff>; + opp-hz = <0x00 0x30a32c00>; + opp-microvolt = <0xcf850 0xcf850 0x118c30>; + clock-latency-ns = <0x9c40>; + opp-suspend; + }; + + opp-1104000000 { + opp-supported-hw = <0xfb 0xffff>; + opp-hz = <0x00 0x41cdb400>; + opp-microvolt = <0xdbba0 0xdbba0 0x118c30>; + opp-microvolt-L0 = <0xdbba0 0xdbba0 0x118c30>; + opp-microvolt-L1 = <0xcf850 0xcf850 0x118c30>; + opp-microvolt-L2 = <0xcf850 0xcf850 0x118c30>; + opp-microvolt-L3 = <0xcf850 0xcf850 0x118c30>; + clock-latency-ns = <0x9c40>; + }; + + opp-1416000000 { + opp-supported-hw = <0xfb 0xffff>; + opp-hz = <0x00 0x54667200>; + opp-microvolt = <0xfa3e8 0xfa3e8 0x118c30>; + opp-microvolt-L0 = <0xfa3e8 0xfa3e8 0x118c30>; + opp-microvolt-L1 = <0xee098 0xee098 0x118c30>; + opp-microvolt-L2 = <0xe7ef0 0xe7ef0 0x118c30>; + opp-microvolt-L3 = <0xe1d48 0xe1d48 0x118c30>; + clock-latency-ns = <0x9c40>; + }; + + opp-1608000000 { + opp-supported-hw = <0xf9 0xffff>; + opp-hz = <0x00 0x5fd82200>; + opp-microvolt = <0x10c8e0 0x10c8e0 0x118c30>; + opp-microvolt-L0 = <0x10c8e0 0x10c8e0 0x118c30>; + opp-microvolt-L1 = <0x100590 0x100590 0x118c30>; + opp-microvolt-L2 = <0xfa3e8 0xfa3e8 0x118c30>; + opp-microvolt-L3 = <0xf4240 0xf4240 0x118c30>; + clock-latency-ns = <0x9c40>; + }; + + opp-1800000000 { + opp-supported-hw = <0xf9 0xffff>; + opp-hz = <0x00 0x6b49d200>; + opp-microvolt = <0x118c30 0x118c30 0x118c30>; + opp-microvolt-L0 = <0x118c30 0x118c30 0x118c30>; + opp-microvolt-L1 = <0x10c8e0 0x10c8e0 0x118c30>; + opp-microvolt-L2 = <0x106738 0x106738 0x118c30>; + opp-microvolt-L3 = <0x100590 0x100590 0x118c30>; + clock-latency-ns = <0x9c40>; + }; + + opp-1992000000 { + opp-supported-hw = <0xf9 0xffff>; + opp-hz = <0x00 0x76bb8200>; + opp-microvolt = <0x118c30 0x118c30 0x118c30>; + opp-microvolt-L0 = <0x118c30 0x118c30 0x118c30>; + opp-microvolt-L1 = <0x118c30 0x118c30 0x118c30>; + opp-microvolt-L2 = <0x112a88 0x112a88 0x118c30>; + opp-microvolt-L3 = <0x10c8e0 0x10c8e0 0x118c30>; + clock-latency-ns = <0x9c40>; + }; + + opp-j-1008000000 { + opp-supported-hw = <0x04 0xffff>; + opp-hz = <0x00 0x3c14dc00>; + opp-microvolt = <0xcf850 0xcf850 0x118c30>; + clock-latency-ns = <0x9c40>; + }; + + opp-j-1416000000 { + opp-supported-hw = <0x04 0xffff>; + opp-hz = <0x00 0x54667200>; + opp-microvolt = <0xdbba0 0xdbba0 0x118c30>; + clock-latency-ns = <0x9c40>; + }; + + opp-m-1608000000 { + opp-supported-hw = <0x02 0xffff>; + opp-hz = <0x00 0x5fd82200>; + opp-microvolt = <0xf4240 0xf4240 0x118c30>; + clock-latency-ns = <0x9c40>; + }; + }; + + arm-pmu { + compatible = "arm,cortex-a55-pmu\0arm,armv8-pmuv3"; + interrupts = <0x00 0xe4 0x04 0x00 0xe5 0x04 0x00 0xe6 0x04 0x00 0xe7 0x04>; + interrupt-affinity = <0x0c 0x0d 0x0e 0x0f>; + }; + + cpuinfo { + compatible = "rockchip,cpuinfo"; + nvmem-cells = <0x10 0x11 0x12>; + nvmem-cell-names = "id\0cpu-version\0cpu-code"; + }; + + display-subsystem { + compatible = "rockchip,display-subsystem"; + memory-region = <0x13 0x14>; + memory-region-names = "drm-logo\0drm-cubic-lut"; + ports = <0x15>; + devfreq = <0x16>; + + route { + + route-dsi0 { + status = "disabled"; + logo,uboot = "logo.bmp"; + logo,kernel = "logo_kernel.bmp"; + logo,mode = "center"; + charge_logo,mode = "center"; + connect = <0x17>; + }; + + route-dsi1 { + status = "disabled"; + logo,uboot = "logo.bmp"; + logo,kernel = "logo_kernel.bmp"; + logo,mode = "center"; + charge_logo,mode = "center"; + connect = <0x18>; + }; + + route-edp { + status = "disabled"; + logo,uboot = "logo.bmp"; + logo,kernel = "logo_kernel.bmp"; + logo,mode = "center"; + charge_logo,mode = "center"; + connect = <0x19>; + }; + + route-hdmi { + status = "okay"; + logo,uboot = "logo.bmp"; + logo,kernel = "logo_kernel.bmp"; + logo,mode = "center"; + charge_logo,mode = "center"; + connect = <0x1a>; + }; + + route-lvds { + status = "disabled"; + logo,uboot = "logo.bmp"; + logo,kernel = "logo_kernel.bmp"; + logo,mode = "center"; + charge_logo,mode = "center"; + connect = <0x1b>; + }; + + route-rgb { + status = "disabled"; + logo,uboot = "logo.bmp"; + logo,kernel = "logo_kernel.bmp"; + logo,mode = "center"; + charge_logo,mode = "center"; + connect = <0x1c>; + }; + }; + }; + + edac { + compatible = "rockchip,rk3568-edac"; + interrupts = <0x00 0xad 0x04 0x00 0xaf 0x04>; + interrupt-names = "ce\0ue"; + status = "disabled"; + }; + + firmware { + + scmi { + compatible = "arm,scmi-smc"; + shmem = <0x1d>; + arm,smc-id = <0x82000010>; + #address-cells = <0x01>; + #size-cells = <0x00>; + + protocol@14 { + reg = <0x14>; + #clock-cells = <0x01>; + rockchip,clk-init = <0x41cdb400>; + phandle = <0x02>; + }; + }; + + sdei { + compatible = "arm,sdei-1.0"; + method = "smc"; + }; + }; + + mipi-csi2 { + compatible = "rockchip,rk3568-mipi-csi2"; + rockchip,hw = <0x1e>; + status = "disabled"; + }; + + mpp-srv { + compatible = "rockchip,mpp-service"; + rockchip,taskqueue-count = <0x06>; + rockchip,resetgroup-count = <0x06>; + status = "okay"; + phandle = <0x7b>; + }; + + psci { + compatible = "arm,psci-1.0"; + method = "smc"; + }; + + reserved-memory { + #address-cells = <0x02>; + #size-cells = <0x02>; + ranges; + + drm-logo@00000000 { + compatible = "rockchip,drm-logo"; + reg = <0x00 0xedf00000 0x00 0x2e0000>; + phandle = <0x13>; + }; + + drm-cubic-lut@00000000 { + compatible = "rockchip,drm-cubic-lut"; + reg = <0x00 0xeff00000 0x00 0x8000>; + phandle = <0x14>; + }; + + ramoops@110000 { + compatible = "ramoops"; + reg = <0x00 0x110000 0x00 0xf0000>; + record-size = <0x20000>; + console-size = <0x80000>; + ftrace-size = <0x00>; + pmsg-size = <0x50000>; + }; + }; + + rockchip-suspend { + compatible = "rockchip,pm-rk3568"; + status = "okay"; + rockchip,sleep-debug-en = <0x01>; + rockchip,sleep-mode-config = <0x5ec>; + rockchip,wakeup-config = <0x10>; + }; + + rockchip-system-monitor { + compatible = "rockchip,system-monitor"; + rockchip,thermal-zone = "soc-thermal"; + }; + + thermal-zones { + + soc-thermal { + polling-delay-passive = <0x14>; + polling-delay = <0x3e8>; + sustainable-power = <0x389>; + thermal-sensors = <0x1f 0x00>; + + trips { + + trip-point-0 { + temperature = <0x124f8>; + hysteresis = <0x7d0>; + type = "passive"; + }; + + trip-point-1 { + temperature = <0x14c08>; + hysteresis = <0x7d0>; + type = "passive"; + phandle = <0x20>; + }; + + soc-crit { + temperature = <0x1c138>; + hysteresis = <0x7d0>; + type = "critical"; + }; + }; + + cooling-maps { + + map0 { + trip = <0x20>; + cooling-device = <0x0c 0xffffffff 0xffffffff>; + contribution = <0x400>; + }; + + map1 { + trip = <0x20>; + cooling-device = <0x21 0xffffffff 0xffffffff>; + contribution = <0x400>; + }; + }; + }; + + gpu-thermal { + polling-delay-passive = <0x14>; + polling-delay = <0x3e8>; + thermal-sensors = <0x1f 0x01>; + }; + }; + + timer { + compatible = "arm,armv8-timer"; + interrupts = <0x01 0x0d 0xf04 0x01 0x0e 0xf04 0x01 0x0b 0xf04 0x01 0x0a 0xf04>; + arm,no-tick-in-suspend; + }; + + external-gmac0-clock { + compatible = "fixed-clock"; + clock-frequency = <0x7735940>; + clock-output-names = "gmac0_clkin"; + #clock-cells = <0x00>; + phandle = <0xc7>; + }; + + external-gmac1-clock { + compatible = "fixed-clock"; + clock-frequency = <0x7735940>; + clock-output-names = "gmac1_clkin"; + #clock-cells = <0x00>; + phandle = <0x92>; + }; + + xpcs-gmac0-clock { + compatible = "fixed-clock"; + clock-frequency = <0x7735940>; + clock-output-names = "clk_gmac0_xpcs_mii"; + #clock-cells = <0x00>; + }; + + xpcs-gmac1-clock { + compatible = "fixed-clock"; + clock-frequency = <0x7735940>; + clock-output-names = "clk_gmac1_xpcs_mii"; + #clock-cells = <0x00>; + }; + + i2s1-mclkin-rx { + compatible = "fixed-clock"; + #clock-cells = <0x00>; + clock-frequency = <0xbb8000>; + clock-output-names = "i2s1_mclkin_rx"; + }; + + i2s1-mclkin-tx { + compatible = "fixed-clock"; + #clock-cells = <0x00>; + clock-frequency = <0xbb8000>; + clock-output-names = "i2s1_mclkin_tx"; + }; + + i2s2-mclkin { + compatible = "fixed-clock"; + #clock-cells = <0x00>; + clock-frequency = <0xbb8000>; + clock-output-names = "i2s2_mclkin"; + }; + + i2s3-mclkin { + compatible = "fixed-clock"; + #clock-cells = <0x00>; + clock-frequency = <0xbb8000>; + clock-output-names = "i2s3_mclkin"; + }; + + mpll { + compatible = "fixed-clock"; + #clock-cells = <0x00>; + clock-frequency = <0x2faf0800>; + clock-output-names = "mpll"; + }; + + xin24m { + compatible = "fixed-clock"; + #clock-cells = <0x00>; + clock-frequency = <0x16e3600>; + clock-output-names = "xin24m"; + }; + + xin32k { + compatible = "fixed-clock"; + clock-frequency = <0x8000>; + clock-output-names = "xin32k"; + #clock-cells = <0x00>; + pinctrl-names = "default"; + pinctrl-0 = <0x22>; + }; + + scmi-shmem@10f000 { + compatible = "arm,scmi-shmem"; + reg = <0x00 0x10f000 0x00 0x100>; + phandle = <0x1d>; + }; + + sata@fc000000 { + compatible = "snps,dwc-ahci"; + reg = <0x00 0xfc000000 0x00 0x1000>; + clocks = <0x23 0x96 0x23 0x97 0x23 0x98>; + clock-names = "sata\0pmalive\0rxoob"; + interrupts = <0x00 0x5e 0x04>; + interrupt-names = "hostc"; + phys = <0x24 0x01>; + phy-names = "sata-phy"; + ports-implemented = <0x01>; + power-domains = <0x25 0x0f>; + status = "disabled"; + }; + + sata@fc400000 { + compatible = "snps,dwc-ahci"; + reg = <0x00 0xfc400000 0x00 0x1000>; + clocks = <0x23 0x9b 0x23 0x9c 0x23 0x9d>; + clock-names = "sata\0pmalive\0rxoob"; + interrupts = <0x00 0x5f 0x04>; + interrupt-names = "hostc"; + phys = <0x26 0x01>; + phy-names = "sata-phy"; + ports-implemented = <0x01>; + power-domains = <0x25 0x0f>; + status = "disabled"; + }; + + sata@fc800000 { + compatible = "snps,dwc-ahci"; + reg = <0x00 0xfc800000 0x00 0x1000>; + clocks = <0x23 0xa0 0x23 0xa1 0x23 0xa2>; + clock-names = "sata\0pmalive\0rxoob"; + interrupts = <0x00 0x60 0x04>; + interrupt-names = "hostc"; + phys = <0x27 0x01>; + phy-names = "sata-phy"; + ports-implemented = <0x01>; + power-domains = <0x25 0x0f>; + status = "okay"; + }; + + usbdrd { + compatible = "rockchip,rk3568-dwc3\0rockchip,rk3399-dwc3"; + clocks = <0x23 0xa6 0x23 0xa7 0x23 0xa5 0x23 0x7f>; + clock-names = "ref_clk\0suspend_clk\0bus_clk\0pipe_clk"; + #address-cells = <0x02>; + #size-cells = <0x02>; + ranges; + status = "okay"; + + dwc3@fcc00000 { + compatible = "snps,dwc3"; + reg = <0x00 0xfcc00000 0x00 0x400000>; + interrupts = <0x00 0xa9 0x04>; + dr_mode = "otg"; + phys = <0x28 0x24 0x04>; + phy-names = "usb2-phy\0usb3-phy"; + phy_type = "utmi_wide"; + power-domains = <0x25 0x0f>; + resets = <0x23 0x94>; + reset-names = "usb3-otg"; + snps,dis_enblslpm_quirk; + snps,dis-u1-entry-quirk; + snps,dis-u2-entry-quirk; + snps,dis-u2-freeclk-exists-quirk; + snps,dis-del-phy-power-chg-quirk; + snps,dis-tx-ipgap-linecheck-quirk; + snps,dis_rxdet_inp3_quirk; + snps,parkmode-disable-hs-quirk; + snps,parkmode-disable-ss-quirk; + quirk-skip-phy-init; + status = "okay"; + extcon = <0x29>; + usb-role-switch; + + port { + #address-cells = <0x01>; + #size-cells = <0x00>; + + endpoint@0 { + reg = <0x00>; + remote-endpoint = <0x2a>; + phandle = <0x4d>; + }; + }; + }; + }; + + usbhost { + compatible = "rockchip,rk3568-dwc3\0rockchip,rk3399-dwc3"; + clocks = <0x23 0xa9 0x23 0xaa 0x23 0xa8 0x23 0x7f>; + clock-names = "ref_clk\0suspend_clk\0bus_clk\0pipe_clk"; + #address-cells = <0x02>; + #size-cells = <0x02>; + ranges; + status = "okay"; + + dwc3@fd000000 { + compatible = "snps,dwc3"; + reg = <0x00 0xfd000000 0x00 0x400000>; + interrupts = <0x00 0xaa 0x04>; + dr_mode = "host"; + phys = <0x2b 0x26 0x04>; + phy-names = "usb2-phy\0usb3-phy"; + phy_type = "utmi_wide"; + power-domains = <0x25 0x0f>; + resets = <0x23 0x95>; + reset-names = "usb3-host"; + snps,dis_enblslpm_quirk; + snps,dis-u2-freeclk-exists-quirk; + snps,dis-del-phy-power-chg-quirk; + snps,dis-tx-ipgap-linecheck-quirk; + snps,dis_rxdet_inp3_quirk; + snps,parkmode-disable-hs-quirk; + snps,parkmode-disable-ss-quirk; + status = "okay"; + }; + }; + + interrupt-controller@fd400000 { + compatible = "arm,gic-v3"; + #interrupt-cells = <0x03>; + #address-cells = <0x02>; + #size-cells = <0x02>; + ranges; + interrupt-controller; + reg = <0x00 0xfd400000 0x00 0x10000 0x00 0xfd460000 0x00 0xc0000>; + interrupts = <0x01 0x09 0x04>; + phandle = <0x01>; + + interrupt-controller@fd440000 { + compatible = "arm,gic-v3-its"; + msi-controller; + #msi-cells = <0x01>; + reg = <0x00 0xfd440000 0x00 0x20000>; + status = "okay"; + phandle = <0xbe>; + }; + }; + + usb@fd800000 { + compatible = "generic-ehci"; + reg = <0x00 0xfd800000 0x00 0x40000>; + interrupts = <0x00 0x82 0x04>; + clocks = <0x23 0xbd 0x23 0xbe 0x23 0xbc 0x2c>; + clock-names = "usbhost\0arbiter\0pclk\0utmi"; + phys = <0x2d>; + phy-names = "usb2-phy"; + status = "okay"; + }; + + usb@fd840000 { + compatible = "generic-ohci"; + reg = <0x00 0xfd840000 0x00 0x40000>; + interrupts = <0x00 0x83 0x04>; + clocks = <0x23 0xbd 0x23 0xbe 0x23 0xbc 0x2c>; + clock-names = "usbhost\0arbiter\0pclk\0utmi"; + phys = <0x2d>; + phy-names = "usb2-phy"; + status = "okay"; + }; + + usb@fd880000 { + compatible = "generic-ehci"; + reg = <0x00 0xfd880000 0x00 0x40000>; + interrupts = <0x00 0x85 0x04>; + clocks = <0x23 0xbf 0x23 0xc0 0x23 0xbc 0x2c>; + clock-names = "usbhost\0arbiter\0pclk\0utmi"; + phys = <0x2e>; + phy-names = "usb2-phy"; + status = "okay"; + }; + + usb@fd8c0000 { + compatible = "generic-ohci"; + reg = <0x00 0xfd8c0000 0x00 0x40000>; + interrupts = <0x00 0x86 0x04>; + clocks = <0x23 0xbf 0x23 0xc0 0x23 0xbc 0x2c>; + clock-names = "usbhost\0arbiter\0pclk\0utmi"; + phys = <0x2e>; + phy-names = "usb2-phy"; + status = "okay"; + }; + + syscon@fda00000 { + compatible = "rockchip,rk3568-xpcs\0syscon"; + reg = <0x00 0xfda00000 0x00 0x200000>; + status = "disabled"; + }; + + syscon@fdc20000 { + compatible = "rockchip,rk3568-pmugrf\0syscon\0simple-mfd"; + reg = <0x00 0xfdc20000 0x00 0x10000>; + phandle = <0x3c>; + + io-domains { + compatible = "rockchip,rk3568-pmu-io-voltage-domain"; + status = "okay"; + pmuio1-supply = <0x2f>; + pmuio2-supply = <0x2f>; + vccio1-supply = <0x30>; + vccio3-supply = <0x31>; + vccio4-supply = <0x32>; + vccio5-supply = <0x33>; + vccio6-supply = <0x32>; + vccio7-supply = <0x33>; + }; + + reboot-mode { + compatible = "syscon-reboot-mode"; + offset = <0x200>; + mode-bootloader = <0x5242c301>; + mode-charge = <0x5242c30b>; + mode-fastboot = <0x5242c309>; + mode-loader = <0x5242c301>; + mode-normal = <0x5242c300>; + mode-recovery = <0x5242c303>; + mode-ums = <0x5242c30c>; + mode-panic = <0x5242c307>; + mode-watchdog = <0x5242c308>; + }; + }; + + syscon@fdc50000 { + compatible = "rockchip,rk3568-pipegrf\0syscon"; + reg = <0x00 0xfdc50000 0x00 0x1000>; + phandle = <0x12a>; + }; + + syscon@fdc60000 { + compatible = "rockchip,rk3568-grf\0syscon\0simple-mfd"; + reg = <0x00 0xfdc60000 0x00 0x10000>; + phandle = <0x3b>; + + io-domains { + compatible = "rockchip,rk3568-io-voltage-domain"; + status = "disabled"; + }; + + lvds { + compatible = "rockchip,rk3568-lvds"; + phys = <0x34>; + phy-names = "phy"; + status = "disabled"; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + reg = <0x00>; + #address-cells = <0x01>; + #size-cells = <0x00>; + + endpoint@1 { + reg = <0x01>; + remote-endpoint = <0x1b>; + status = "disabled"; + phandle = <0xa3>; + }; + + endpoint@2 { + reg = <0x02>; + remote-endpoint = <0x35>; + status = "disabled"; + phandle = <0xa5>; + }; + }; + }; + }; + + lvds1 { + compatible = "rockchip,rk3568-lvds"; + phys = <0x36>; + phy-names = "phy"; + status = "disabled"; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + reg = <0x00>; + #address-cells = <0x01>; + #size-cells = <0x00>; + + endpoint@0 { + reg = <0x00>; + remote-endpoint = <0x37>; + phandle = <0xa4>; + }; + + endpoint@1 { + reg = <0x01>; + remote-endpoint = <0x38>; + phandle = <0xa7>; + }; + }; + }; + }; + + rgb { + compatible = "rockchip,rk3568-rgb"; + pinctrl-names = "default"; + pinctrl-0 = <0x39>; + status = "disabled"; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + reg = <0x00>; + #address-cells = <0x01>; + #size-cells = <0x00>; + + endpoint@2 { + reg = <0x02>; + remote-endpoint = <0x1c>; + status = "disabled"; + phandle = <0xa6>; + }; + }; + }; + }; + }; + + syscon@fdc70000 { + compatible = "rockchip,pipe-phy-grf\0syscon"; + reg = <0x00 0xfdc70000 0x00 0x1000>; + phandle = <0x12b>; + }; + + syscon@fdc80000 { + compatible = "rockchip,pipe-phy-grf\0syscon"; + reg = <0x00 0xfdc80000 0x00 0x1000>; + phandle = <0x12c>; + }; + + syscon@fdc90000 { + compatible = "rockchip,pipe-phy-grf\0syscon"; + reg = <0x00 0xfdc90000 0x00 0x1000>; + phandle = <0x12d>; + }; + + syscon@fdca0000 { + compatible = "rockchip,rk3568-usb2phy-grf\0syscon"; + reg = <0x00 0xfdca0000 0x00 0x8000>; + phandle = <0x135>; + }; + + syscon@fdca8000 { + compatible = "rockchip,rk3568-usb2phy-grf\0syscon"; + reg = <0x00 0xfdca8000 0x00 0x8000>; + phandle = <0x137>; + }; + + syscon@fdcb0000 { + compatible = "rockchip,rk3568-edp-phy-grf\0syscon\0simple-mfd"; + reg = <0x00 0xfdcb0000 0x00 0x100>; + clocks = <0x23 0x192>; + + edp-phy { + compatible = "rockchip,rk3568-edp-phy"; + clocks = <0x3a 0x29>; + clock-names = "refclk"; + #phy-cells = <0x00>; + status = "disabled"; + phandle = <0xae>; + }; + }; + + syscon@fdcb8000 { + compatible = "rockchip,pcie30-phy-grf\0syscon"; + reg = <0x00 0xfdcb8000 0x00 0x10000>; + phandle = <0x138>; + }; + + sram@fdcc0000 { + compatible = "mmio-sram"; + reg = <0x00 0xfdcc0000 0x00 0xb000>; + #address-cells = <0x01>; + #size-cells = <0x01>; + ranges = <0x00 0x00 0xfdcc0000 0xb000>; + + rkvdec-sram@0 { + reg = <0x00 0xb000>; + phandle = <0x84>; + }; + }; + + clock-controller@fdd00000 { + compatible = "rockchip,rk3568-pmucru"; + reg = <0x00 0xfdd00000 0x00 0x1000>; + rockchip,grf = <0x3b>; + rockchip,pmugrf = <0x3c>; + #clock-cells = <0x01>; + #reset-cells = <0x01>; + assigned-clocks = <0x3a 0x32>; + assigned-clock-parents = <0x3a 0x05>; + phandle = <0x3a>; + }; + + clock-controller@fdd20000 { + compatible = "rockchip,rk3568-cru"; + reg = <0x00 0xfdd20000 0x00 0x1000>; + rockchip,grf = <0x3b>; + #clock-cells = <0x01>; + #reset-cells = <0x01>; + assigned-clocks = <0x3a 0x05 0x23 0x106 0x23 0x10b 0x3a 0x01 0x3a 0x2b 0x23 0x03 0x23 0x19b 0x23 0x09 0x23 0x19c 0x23 0x19d 0x23 0x1a1 0x23 0x19e 0x23 0x19f 0x23 0x1a0 0x23 0x04 0x23 0x10d 0x23 0x10e 0x23 0x173 0x23 0x174 0x23 0x175 0x23 0x176 0x23 0xc9 0x23 0xca 0x23 0x06 0x23 0x7e 0x23 0x7f 0x23 0x3d 0x23 0x41 0x23 0x45 0x23 0x49 0x23 0x4d 0x23 0x4d 0x23 0x55 0x23 0x51 0x23 0x5d 0x23 0xdd>; + assigned-clock-rates = <0x8000 0x11e1a300 0x11e1a300 0xbebc200 0x5f5e100 0x3b9aca00 0x1dcd6500 0x13d92d40 0xee6b280 0x7735940 0x5f5e100 0x3b9aca0 0x2faf080 0x17d7840 0x46cf7100 0x8f0d180 0x5f5e100 0x1dcd6500 0x17d78400 0x8f0d180 0x5f5e100 0x11e1a300 0x8f0d180 0x47868c00 0x17d78400 0x5f5e100 0x46cf7100 0x46cf7100 0x46cf7100 0x46cf7100 0x46cf7100 0x46cf7100 0x46cf7100 0x46cf7100 0x46cf7100 0x1dcd6500>; + assigned-clock-parents = <0x3a 0x08 0x23 0x04 0x23 0x04>; + phandle = <0x23>; + }; + + i2c@fdd40000 { + compatible = "rockchip,rk3399-i2c"; + reg = <0x00 0xfdd40000 0x00 0x1000>; + clocks = <0x3a 0x07 0x3a 0x2d>; + clock-names = "i2c\0pclk"; + interrupts = <0x00 0x2e 0x04>; + pinctrl-names = "default"; + pinctrl-0 = <0x3d>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "okay"; + + tcs4525@1c { + compatible = "tcs,tcs452x"; + reg = <0x1c>; + vin-supply = <0x3e>; + regulator-compatible = "fan53555-reg"; + regulator-name = "vdd_cpu"; + regulator-min-microvolt = <0xadf34>; + regulator-max-microvolt = <0x1535b0>; + regulator-ramp-delay = <0x8fc>; + fcs,suspend-voltage-selector = <0x01>; + regulator-boot-on; + regulator-always-on; + phandle = <0x05>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + pmic@20 { + compatible = "rockchip,rk809"; + reg = <0x20>; + interrupt-parent = <0x3f>; + interrupts = <0x03 0x08>; + pinctrl-names = "default\0pmic-sleep\0pmic-power-off\0pmic-reset"; + pinctrl-0 = <0x40>; + pinctrl-1 = <0x41 0x42>; + pinctrl-2 = <0x43 0x44>; + pinctrl-3 = <0x43 0x45>; + rockchip,system-power-controller; + wakeup-source; + #clock-cells = <0x01>; + clock-output-names = "rk808-clkout1\0rk808-clkout2"; + pmic-reset-func = <0x00>; + not-save-power-en = <0x01>; + vcc1-supply = <0x46>; + vcc2-supply = <0x46>; + vcc3-supply = <0x46>; + vcc4-supply = <0x46>; + vcc5-supply = <0x46>; + vcc6-supply = <0x46>; + vcc7-supply = <0x46>; + vcc8-supply = <0x46>; + vcc9-supply = <0x46>; + phandle = <0x152>; + + pwrkey { + status = "okay"; + }; + + pinctrl_rk8xx { + gpio-controller; + #gpio-cells = <0x02>; + + rk817_slppin_null { + pins = "gpio_slp"; + function = "pin_fun0"; + }; + + rk817_slppin_slp { + pins = "gpio_slp"; + function = "pin_fun1"; + phandle = <0x42>; + }; + + rk817_slppin_pwrdn { + pins = "gpio_slp"; + function = "pin_fun2"; + phandle = <0x44>; + }; + + rk817_slppin_rst { + pins = "gpio_slp"; + function = "pin_fun3"; + phandle = <0x45>; + }; + }; + + regulators { + + DCDC_REG1 { + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <0x7a120>; + regulator-max-microvolt = <0x149970>; + regulator-init-microvolt = <0xdbba0>; + regulator-ramp-delay = <0x1771>; + regulator-initial-mode = <0x02>; + regulator-name = "vdd_logic"; + phandle = <0x75>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + DCDC_REG2 { + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <0x7a120>; + regulator-max-microvolt = <0x149970>; + regulator-init-microvolt = <0xdbba0>; + regulator-ramp-delay = <0x1771>; + regulator-initial-mode = <0x02>; + regulator-name = "vdd_gpu"; + phandle = <0x77>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + DCDC_REG3 { + regulator-always-on; + regulator-boot-on; + regulator-initial-mode = <0x02>; + regulator-name = "vcc_ddr"; + + regulator-state-mem { + regulator-on-in-suspend; + }; + }; + + DCDC_REG4 { + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <0x7a120>; + regulator-max-microvolt = <0x149970>; + regulator-init-microvolt = <0xdbba0>; + regulator-ramp-delay = <0x1771>; + regulator-initial-mode = <0x02>; + regulator-name = "vdd_npu"; + phandle = <0x71>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + LDO_REG1 { + regulator-boot-on; + regulator-always-on; + regulator-min-microvolt = <0xdbba0>; + regulator-max-microvolt = <0xdbba0>; + regulator-name = "vdda0v9_image"; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + LDO_REG2 { + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <0xdbba0>; + regulator-max-microvolt = <0xdbba0>; + regulator-name = "vdda_0v9"; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + LDO_REG3 { + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <0xdbba0>; + regulator-max-microvolt = <0xdbba0>; + regulator-name = "vdda0v9_pmu"; + + regulator-state-mem { + regulator-on-in-suspend; + regulator-suspend-microvolt = <0xdbba0>; + }; + }; + + LDO_REG4 { + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <0x325aa0>; + regulator-max-microvolt = <0x325aa0>; + regulator-name = "vccio_acodec"; + phandle = <0x30>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + LDO_REG5 { + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <0x1b7740>; + regulator-max-microvolt = <0x325aa0>; + regulator-name = "vccio_sd"; + phandle = <0x31>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + LDO_REG6 { + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <0x325aa0>; + regulator-max-microvolt = <0x325aa0>; + regulator-name = "vcc3v3_pmu"; + phandle = <0x2f>; + + regulator-state-mem { + regulator-on-in-suspend; + regulator-suspend-microvolt = <0x325aa0>; + }; + }; + + LDO_REG7 { + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <0x1b7740>; + regulator-max-microvolt = <0x1b7740>; + regulator-name = "vcca_1v8"; + phandle = <0x129>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + LDO_REG8 { + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <0x1b7740>; + regulator-max-microvolt = <0x1b7740>; + regulator-name = "vcca1v8_pmu"; + + regulator-state-mem { + regulator-on-in-suspend; + regulator-suspend-microvolt = <0x1b7740>; + }; + }; + + LDO_REG9 { + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <0x1b7740>; + regulator-max-microvolt = <0x1b7740>; + regulator-name = "vcca1v8_image"; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + DCDC_REG5 { + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <0x1b7740>; + regulator-max-microvolt = <0x1b7740>; + regulator-name = "vcc_1v8"; + phandle = <0x32>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + SWITCH_REG1 { + regulator-always-on; + regulator-boot-on; + regulator-name = "vcc_3v3"; + phandle = <0x33>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + SWITCH_REG2 { + regulator-always-on; + regulator-boot-on; + regulator-name = "vcc3v3_sd"; + phandle = <0xcf>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + }; + + codec { + #sound-dai-cells = <0x00>; + compatible = "rockchip,rk809-codec\0rockchip,rk817-codec"; + clocks = <0x23 0x1a3>; + clock-names = "mclk"; + assigned-clocks = <0x23 0x1a3 0x23 0x1a6>; + assigned-clock-rates = <0xbb8000>; + assigned-clock-parents = <0x23 0x48 0x23 0x48>; + pinctrl-names = "default\0spk_gpio"; + pinctrl-0 = <0x47>; + pinctrl-1 = <0x48>; + hp-volume = <0x03>; + spk-volume = <0x03>; + mic-in-differential; + board-spk-from-hp; + capture-volume = <0x00>; + io-channels = <0x49 0x07>; + hp-det-adc-value = <0x3e8>; + status = "okay"; + hp-adc-drift-scope = <0x64>; + phandle = <0x14b>; + }; + + rtc { + status = "disabled"; + }; + }; + + fusb302@22 { + compatible = "fcs,fusb302"; + reg = <0x22>; + interrupt-parent = <0x3f>; + fcs,int_n = <0x3f 0x11 0x08>; + fusb340-switch-gpios = <0x4a 0x12 0x00>; + pinctrl-names = "default"; + pinctrl-0 = <0x4b>; + vbus-supply = <0x4c>; + status = "okay"; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + reg = <0x00>; + + endpoint@0 { + remote-endpoint = <0x4d>; + phandle = <0x2a>; + }; + }; + }; + + connector { + compatible = "usb-c-connector"; + label = "USB-C"; + data-role = "dual"; + power-role = "dual"; + try-power-role = "sink"; + op-sink-microwatt = <0xf4240>; + sink-pdos = <0x40190fa>; + source-pdos = <0x4019096>; + }; + }; + }; + + serial@fdd50000 { + compatible = "rockchip,rk3568-uart\0snps,dw-apb-uart"; + reg = <0x00 0xfdd50000 0x00 0x100>; + interrupts = <0x00 0x74 0x04>; + clocks = <0x3a 0x0b 0x3a 0x2c>; + clock-names = "baudclk\0apb_pclk"; + reg-shift = <0x02>; + reg-io-width = <0x04>; + dmas = <0x4e 0x00 0x4e 0x01>; + pinctrl-names = "default"; + pinctrl-0 = <0x4f>; + status = "disabled"; + }; + + pwm@fdd70000 { + compatible = "rockchip,rk3568-pwm\0rockchip,rk3328-pwm"; + reg = <0x00 0xfdd70000 0x00 0x10>; + interrupts = <0x00 0x52 0x04>; + #pwm-cells = <0x03>; + pinctrl-names = "active"; + pinctrl-0 = <0x50>; + clocks = <0x3a 0x0d 0x3a 0x30>; + clock-names = "pwm\0pclk"; + status = "disabled"; + }; + + pwm@fdd70010 { + compatible = "rockchip,rk3568-pwm\0rockchip,rk3328-pwm"; + reg = <0x00 0xfdd70010 0x00 0x10>; + interrupts = <0x00 0x52 0x04>; + #pwm-cells = <0x03>; + pinctrl-names = "active"; + pinctrl-0 = <0x51>; + clocks = <0x3a 0x0d 0x3a 0x30>; + clock-names = "pwm\0pclk"; + status = "disabled"; + }; + + pwm@fdd70020 { + compatible = "rockchip,rk3568-pwm\0rockchip,rk3328-pwm"; + reg = <0x00 0xfdd70020 0x00 0x10>; + interrupts = <0x00 0x52 0x04>; + #pwm-cells = <0x03>; + pinctrl-names = "active"; + pinctrl-0 = <0x52>; + clocks = <0x3a 0x0d 0x3a 0x30>; + clock-names = "pwm\0pclk"; + status = "disabled"; + }; + + pwm@fdd70030 { + compatible = "rockchip,rk3568-pwm\0rockchip,rk3328-pwm"; + reg = <0x00 0xfdd70030 0x00 0x10>; + interrupts = <0x00 0x52 0x04 0x00 0x56 0x04>; + #pwm-cells = <0x03>; + pinctrl-names = "active"; + pinctrl-0 = <0x53>; + clocks = <0x3a 0x0d 0x3a 0x30>; + clock-names = "pwm\0pclk"; + status = "disabled"; + }; + + power-management@fdd90000 { + compatible = "rockchip,rk3568-pmu\0syscon\0simple-mfd"; + reg = <0x00 0xfdd90000 0x00 0x1000>; + + power-controller { + compatible = "rockchip,rk3568-power-controller"; + #power-domain-cells = <0x01>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "okay"; + phandle = <0x25>; + + pd_npu@6 { + reg = <0x06>; + clocks = <0x23 0x27 0x23 0x25 0x23 0x26>; + pm_qos = <0x54>; + }; + + pd_gpu@7 { + reg = <0x07>; + clocks = <0x23 0x19 0x23 0x1a>; + pm_qos = <0x55>; + }; + + pd_vi@8 { + reg = <0x08>; + clocks = <0x23 0xcc 0x23 0xcd>; + pm_qos = <0x56 0x57 0x58>; + }; + + pd_vo@9 { + reg = <0x09>; + clocks = <0x23 0xda 0x23 0xdb 0x23 0xdc>; + pm_qos = <0x59 0x5a 0x5b>; + }; + + pd_rga@10 { + reg = <0x0a>; + clocks = <0x23 0xf1 0x23 0xf2>; + pm_qos = <0x5c 0x5d 0x5e 0x5f 0x60 0x61>; + }; + + pd_vpu@11 { + reg = <0x0b>; + clocks = <0x23 0xed>; + pm_qos = <0x62>; + }; + + pd_rkvdec@13 { + clocks = <0x23 0x107>; + reg = <0x0d>; + pm_qos = <0x63>; + }; + + pd_rkvenc@14 { + reg = <0x0e>; + clocks = <0x23 0x102>; + pm_qos = <0x64 0x65 0x66>; + }; + + pd_pipe@15 { + reg = <0x0f>; + clocks = <0x23 0x7f>; + pm_qos = <0x67 0x68 0x69 0x6a 0x6b 0x6c 0x6d 0x6e>; + }; + }; + }; + + pvtm@fde00000 { + compatible = "rockchip,rk3568-core-pvtm"; + reg = <0x00 0xfde00000 0x00 0x100>; + #address-cells = <0x01>; + #size-cells = <0x00>; + + pvtm@0 { + reg = <0x00>; + clocks = <0x23 0x13 0x23 0x1c2>; + clock-names = "clk\0pclk"; + resets = <0x23 0x1a 0x23 0x19>; + reset-names = "rts\0rst-p"; + thermal-zone = "soc-thermal"; + }; + }; + + npu@fde40000 { + compatible = "rockchip,rk3568-rknpu\0rockchip,rknpu"; + reg = <0x00 0xfde40000 0x00 0x10000>; + interrupts = <0x00 0x97 0x04>; + clocks = <0x02 0x02 0x23 0x23 0x23 0x28 0x23 0x29>; + clock-names = "scmi_clk\0clk\0aclk\0hclk"; + assigned-clocks = <0x23 0x23>; + assigned-clock-rates = <0x23c34600>; + resets = <0x23 0x2b 0x23 0x2c>; + reset-names = "srst_a\0srst_h"; + power-domains = <0x25 0x06>; + operating-points-v2 = <0x6f>; + iommus = <0x70>; + status = "okay"; + rknpu-supply = <0x71>; + }; + + npu-opp-table { + compatible = "operating-points-v2"; + mbist-vmin = <0xc96a8 0xdbba0 0xe7ef0>; + nvmem-cells = <0x72 0x07 0x08 0x73 0x0a 0x0b>; + nvmem-cell-names = "leakage\0pvtm\0mbist-vmin\0opp-info\0specification_serial_number\0remark_spec_serial_number"; + rockchip,supported-hw; + rockchip,max-volt = <0xf4240>; + rockchip,temp-hysteresis = <0x1388>; + rockchip,low-temp = <0x00>; + rockchip,low-temp-adjust-volt = <0x00 0x3e8 0xc350>; + rockchip,pvtm-voltage-sel = <0x00 0x14820 0x00 0x14821 0x153d8 0x01 0x153d9 0x16378 0x02 0x16379 0x186a0 0x03>; + rockchip,pvtm-ch = <0x00 0x05>; + phandle = <0x6f>; + + opp-200000000 { + opp-supported-hw = <0xfb 0xffff>; + opp-hz = <0x00 0xbebc200>; + opp-microvolt = <0xcf850 0xcf850 0xf4240>; + }; + + opp-300000000 { + opp-supported-hw = <0xfb 0xffff>; + opp-hz = <0x00 0x11b3dc40>; + opp-microvolt = <0xcf850 0xcf850 0xf4240>; + }; + + opp-400000000 { + opp-supported-hw = <0xfb 0xffff>; + opp-hz = <0x00 0x17d78400>; + opp-microvolt = <0xcf850 0xcf850 0xf4240>; + }; + + opp-600000000 { + opp-supported-hw = <0xfb 0xffff>; + opp-hz = <0x00 0x23c34600>; + opp-microvolt = <0xcf850 0xcf850 0xf4240>; + }; + + opp-700000000 { + opp-supported-hw = <0xfb 0xffff>; + opp-hz = <0x00 0x29b92700>; + opp-microvolt = <0xd59f8 0xd59f8 0xf4240>; + opp-microvolt-L0 = <0xd59f8 0xd59f8 0xf4240>; + opp-microvolt-L1 = <0xcf850 0xcf850 0xf4240>; + opp-microvolt-L2 = <0xcf850 0xcf850 0xf4240>; + opp-microvolt-L3 = <0xcf850 0xcf850 0xf4240>; + }; + + opp-800000000 { + opp-supported-hw = <0xfb 0xffff>; + opp-hz = <0x00 0x2faf0800>; + opp-microvolt = <0xe1d48 0xe1d48 0xf4240>; + opp-microvolt-L0 = <0xe1d48 0xe1d48 0xf4240>; + opp-microvolt-L1 = <0xdbba0 0xdbba0 0xf4240>; + opp-microvolt-L2 = <0xd59f8 0xd59f8 0xf4240>; + opp-microvolt-L3 = <0xd59f8 0xd59f8 0xf4240>; + }; + + opp-900000000 { + opp-supported-hw = <0xf9 0xffff>; + opp-hz = <0x00 0x35a4e900>; + opp-microvolt = <0xee098 0xee098 0xf4240>; + opp-microvolt-L0 = <0xee098 0xee098 0xf4240>; + opp-microvolt-L1 = <0xe7ef0 0xe7ef0 0xf4240>; + opp-microvolt-L2 = <0xe1d48 0xe1d48 0xf4240>; + opp-microvolt-L3 = <0xdbba0 0xdbba0 0xf4240>; + }; + + opp-1000000000 { + opp-supported-hw = <0xf9 0xffff>; + opp-hz = <0x00 0x3b9aca00>; + opp-microvolt = <0xf4240 0xf4240 0xf4240>; + opp-microvolt-L0 = <0xf4240 0xf4240 0xf4240>; + opp-microvolt-L1 = <0xee098 0xee098 0xf4240>; + opp-microvolt-L2 = <0xe7ef0 0xe7ef0 0xf4240>; + opp-microvolt-L3 = <0xe1d48 0xe1d48 0xf4240>; + status = "disabled"; + }; + + opp-j-600000000 { + opp-supported-hw = <0x04 0xffff>; + opp-hz = <0x00 0x23c34600>; + opp-microvolt = <0xdbba0 0xdbba0 0xf4240>; + }; + + opp-m-900000000 { + opp-supported-hw = <0x02 0xffff>; + opp-hz = <0x00 0x35a4e900>; + opp-microvolt = <0xe1d48 0xe1d48 0xf4240>; + }; + }; + + bus-npu { + compatible = "rockchip,rk3568-bus"; + rockchip,busfreq-policy = "clkfreq"; + clocks = <0x02 0x02>; + clock-names = "bus"; + operating-points-v2 = <0x74>; + status = "okay"; + bus-supply = <0x75>; + pvtm-supply = <0x05>; + }; + + bus-npu-opp-table { + compatible = "operating-points-v2"; + opp-shared; + nvmem-cells = <0x07>; + nvmem-cell-names = "pvtm"; + rockchip,pvtm-voltage-sel = <0x00 0x14820 0x00 0x14821 0x16378 0x01 0x16379 0x186a0 0x02>; + rockchip,pvtm-ch = <0x00 0x05>; + phandle = <0x74>; + + opp-700000000 { + opp-hz = <0x00 0x29b92700>; + opp-microvolt = <0xdbba0>; + opp-microvolt-L0 = <0xdbba0>; + opp-microvolt-L1 = <0xd59f8>; + opp-microvolt-L2 = <0xd59f8>; + }; + + opp-900000000 { + opp-hz = <0x00 0x35a4e900>; + opp-microvolt = <0xdbba0>; + }; + + opp-1000000000 { + opp-hz = <0x00 0x3b9aca00>; + opp-microvolt = <0xe7ef0>; + opp-microvolt-L0 = <0xe7ef0>; + opp-microvolt-L1 = <0xe1d48>; + opp-microvolt-L2 = <0xdbba0>; + }; + }; + + iommu@fde4b000 { + compatible = "rockchip,iommu-v2"; + reg = <0x00 0xfde4b000 0x00 0x40>; + interrupts = <0x00 0x97 0x04>; + interrupt-names = "rknpu_mmu"; + clocks = <0x23 0x28 0x23 0x29>; + clock-names = "aclk\0iface"; + power-domains = <0x25 0x06>; + #iommu-cells = <0x00>; + status = "okay"; + phandle = <0x70>; + }; + + gpu@fde60000 { + compatible = "arm,mali-bifrost"; + reg = <0x00 0xfde60000 0x00 0x4000>; + interrupts = <0x00 0x27 0x04 0x00 0x29 0x04 0x00 0x28 0x04>; + interrupt-names = "GPU\0MMU\0JOB"; + upthreshold = <0x28>; + downdifferential = <0x0a>; + clocks = <0x02 0x01 0x23 0x1b>; + clock-names = "clk_mali\0clk_gpu"; + power-domains = <0x25 0x07>; + #cooling-cells = <0x02>; + operating-points-v2 = <0x76>; + status = "okay"; + mali-supply = <0x77>; + phandle = <0x21>; + + power-model { + compatible = "simple-power-model"; + leakage-range = <0x05 0x0f>; + ls = <0xffffa23e 0x5927 0x00>; + static-coefficient = <0x186a0>; + dynamic-coefficient = <0x3b9>; + ts = <0xfffe56a6 0xf87a 0xfffffab5 0x14>; + thermal-zone = "gpu-thermal"; + }; + }; + + opp-table2 { + compatible = "operating-points-v2"; + mbist-vmin = <0xc96a8 0xdbba0 0xe7ef0>; + nvmem-cells = <0x78 0x07 0x08 0x79 0x0a 0x0b>; + nvmem-cell-names = "leakage\0pvtm\0mbist-vmin\0opp-info\0specification_serial_number\0remark_spec_serial_number"; + rockchip,supported-hw; + rockchip,max-volt = <0xf4240>; + rockchip,temp-hysteresis = <0x1388>; + rockchip,low-temp = <0x00>; + rockchip,low-temp-adjust-volt = <0x00 0x320 0xc350>; + rockchip,pvtm-voltage-sel = <0x00 0x14820 0x00 0x14821 0x153d8 0x01 0x153d9 0x16378 0x02 0x16379 0x186a0 0x03>; + rockchip,pvtm-ch = <0x00 0x05>; + phandle = <0x76>; + + opp-200000000 { + opp-supported-hw = <0xfb 0xffff>; + opp-hz = <0x00 0xbebc200>; + opp-microvolt = <0xcf850 0xcf850 0xf4240>; + }; + + opp-300000000 { + opp-supported-hw = <0xfb 0xffff>; + opp-hz = <0x00 0x11e1a300>; + opp-microvolt = <0xcf850 0xcf850 0xf4240>; + }; + + opp-400000000 { + opp-supported-hw = <0xfb 0xffff>; + opp-hz = <0x00 0x17d78400>; + opp-microvolt = <0xcf850 0xcf850 0xf4240>; + }; + + opp-600000000 { + opp-supported-hw = <0xfb 0xffff>; + opp-hz = <0x00 0x23c34600>; + opp-microvolt = <0xdbba0 0xdbba0 0xf4240>; + opp-microvolt-L0 = <0xdbba0 0xdbba0 0xf4240>; + opp-microvolt-L1 = <0xd59f8 0xd59f8 0xf4240>; + opp-microvolt-L2 = <0xcf850 0xcf850 0xf4240>; + opp-microvolt-L3 = <0xcf850 0xcf850 0xf4240>; + }; + + opp-700000000 { + opp-supported-hw = <0xfb 0xffff>; + opp-hz = <0x00 0x29b92700>; + opp-microvolt = <0xe7ef0 0xe7ef0 0xf4240>; + opp-microvolt-L0 = <0xe7ef0 0xe7ef0 0xf4240>; + opp-microvolt-L1 = <0xe1d48 0xe1d48 0xf4240>; + opp-microvolt-L2 = <0xdbba0 0xdbba0 0xf4240>; + opp-microvolt-L3 = <0xd59f8 0xd59f8 0xf4240>; + }; + + opp-800000000 { + opp-supported-hw = <0xf9 0xffff>; + opp-hz = <0x00 0x2faf0800>; + opp-microvolt = <0xf4240 0xf4240 0xf4240>; + opp-microvolt-L0 = <0xf4240 0xf4240 0xf4240>; + opp-microvolt-L1 = <0xee098 0xee098 0xf4240>; + opp-microvolt-L2 = <0xe7ef0 0xe7ef0 0xf4240>; + opp-microvolt-L3 = <0xe1d48 0xe1d48 0xf4240>; + }; + + opp-j-600000000 { + opp-supported-hw = <0x04 0xffff>; + opp-hz = <0x00 0x23c34600>; + opp-microvolt = <0xdbba0 0xdbba0 0xf4240>; + }; + + opp-m-800000000 { + opp-supported-hw = <0x02 0xffff>; + opp-hz = <0x00 0x2faf0800>; + opp-microvolt = <0xe7ef0 0xe7ef0 0xf4240>; + }; + }; + + pvtm@fde80000 { + compatible = "rockchip,rk3568-gpu-pvtm"; + reg = <0x00 0xfde80000 0x00 0x100>; + #address-cells = <0x01>; + #size-cells = <0x00>; + + pvtm@1 { + reg = <0x01>; + clocks = <0x23 0x1e 0x23 0x1d>; + clock-names = "clk\0pclk"; + resets = <0x23 0x24 0x23 0x23>; + reset-names = "rts\0rst-p"; + thermal-zone = "gpu-thermal"; + }; + }; + + pvtm@fde90000 { + compatible = "rockchip,rk3568-npu-pvtm"; + reg = <0x00 0xfde90000 0x00 0x100>; + #address-cells = <0x01>; + #size-cells = <0x00>; + + pvtm@2 { + reg = <0x02>; + clocks = <0x23 0x2b 0x23 0x2a 0x23 0x25>; + clock-names = "clk\0pclk\0hclk"; + resets = <0x23 0x2e 0x23 0x2d>; + reset-names = "rts\0rst-p"; + thermal-zone = "soc-thermal"; + }; + }; + + vdpu@fdea0400 { + compatible = "rockchip,vpu-decoder-v2"; + reg = <0x00 0xfdea0400 0x00 0x400>; + interrupts = <0x00 0x8b 0x04>; + interrupt-names = "irq_dec"; + clocks = <0x23 0xee 0x23 0xef>; + clock-names = "aclk_vcodec\0hclk_vcodec"; + resets = <0x23 0x11a 0x23 0x11b>; + reset-names = "video_a\0video_h"; + iommus = <0x7a>; + power-domains = <0x25 0x0b>; + rockchip,srv = <0x7b>; + rockchip,taskqueue-node = <0x00>; + rockchip,resetgroup-node = <0x00>; + status = "okay"; + }; + + iommu@fdea0800 { + compatible = "rockchip,iommu-v2"; + reg = <0x00 0xfdea0800 0x00 0x40>; + interrupts = <0x00 0x8a 0x04>; + interrupt-names = "vdpu_mmu"; + clock-names = "aclk\0iface"; + clocks = <0x23 0xee 0x23 0xef>; + power-domains = <0x25 0x0b>; + #iommu-cells = <0x00>; + status = "okay"; + phandle = <0x7a>; + }; + + rk_rga@fdeb0000 { + compatible = "rockchip,rga2"; + reg = <0x00 0xfdeb0000 0x00 0x1000>; + interrupts = <0x00 0x5a 0x04>; + clocks = <0x23 0xf3 0x23 0xf4 0x23 0xf5>; + clock-names = "aclk_rga\0hclk_rga\0clk_rga"; + power-domains = <0x25 0x0a>; + status = "okay"; + }; + + ebc@fdec0000 { + compatible = "rockchip,rk3568-ebc-tcon"; + reg = <0x00 0xfdec0000 0x00 0x5000>; + interrupts = <0x00 0x11 0x04>; + clocks = <0x23 0xf9 0x23 0xfa>; + clock-names = "hclk\0dclk"; + power-domains = <0x25 0x0a>; + rockchip,grf = <0x3b>; + pinctrl-names = "default"; + pinctrl-0 = <0x7c>; + status = "disabled"; + }; + + jpegd@fded0000 { + compatible = "rockchip,rkv-jpeg-decoder-v1"; + reg = <0x00 0xfded0000 0x00 0x400>; + interrupts = <0x00 0x3e 0x04>; + clocks = <0x23 0xfb 0x23 0xfc>; + clock-names = "aclk_vcodec\0hclk_vcodec"; + rockchip,disable-auto-freq; + resets = <0x23 0x12c 0x23 0x12d>; + reset-names = "video_a\0video_h"; + iommus = <0x7d>; + rockchip,srv = <0x7b>; + rockchip,taskqueue-node = <0x01>; + rockchip,resetgroup-node = <0x01>; + power-domains = <0x25 0x0a>; + status = "okay"; + }; + + iommu@fded0480 { + compatible = "rockchip,iommu-v2"; + reg = <0x00 0xfded0480 0x00 0x40>; + interrupts = <0x00 0x3d 0x04>; + interrupt-names = "jpegd_mmu"; + clock-names = "aclk\0iface"; + clocks = <0x23 0xfb 0x23 0xfc>; + power-domains = <0x25 0x0a>; + #iommu-cells = <0x00>; + status = "okay"; + phandle = <0x7d>; + }; + + vepu@fdee0000 { + compatible = "rockchip,vpu-encoder-v2"; + reg = <0x00 0xfdee0000 0x00 0x400>; + interrupts = <0x00 0x40 0x04>; + clocks = <0x23 0xfd 0x23 0xfe>; + clock-names = "aclk_vcodec\0hclk_vcodec"; + rockchip,disable-auto-freq; + resets = <0x23 0x12e 0x23 0x12f>; + reset-names = "video_a\0video_h"; + iommus = <0x7e>; + rockchip,srv = <0x7b>; + rockchip,taskqueue-node = <0x02>; + rockchip,resetgroup-node = <0x02>; + power-domains = <0x25 0x0a>; + status = "okay"; + }; + + iommu@fdee0800 { + compatible = "rockchip,iommu-v2"; + reg = <0x00 0xfdee0800 0x00 0x40>; + interrupts = <0x00 0x3f 0x04>; + interrupt-names = "vepu_mmu"; + clock-names = "aclk\0iface"; + clocks = <0x23 0xfd 0x23 0xfe>; + power-domains = <0x25 0x0a>; + #iommu-cells = <0x00>; + status = "okay"; + phandle = <0x7e>; + }; + + iep@fdef0000 { + compatible = "rockchip,iep-v2"; + reg = <0x00 0xfdef0000 0x00 0x500>; + interrupts = <0x00 0x38 0x04>; + clocks = <0x23 0xf6 0x23 0xf7 0x23 0xf8>; + clock-names = "aclk\0hclk\0sclk"; + resets = <0x23 0x127 0x23 0x128 0x23 0x129>; + reset-names = "rst_a\0rst_h\0rst_s"; + power-domains = <0x25 0x0a>; + rockchip,srv = <0x7b>; + rockchip,taskqueue-node = <0x05>; + rockchip,resetgroup-node = <0x05>; + iommus = <0x7f>; + status = "okay"; + }; + + iommu@fdef0800 { + compatible = "rockchip,iommu-v2"; + reg = <0x00 0xfdef0800 0x00 0x100>; + interrupts = <0x00 0x38 0x04>; + interrupt-names = "iep_mmu"; + clocks = <0x23 0xf6 0x23 0xf7>; + clock-names = "aclk\0iface"; + #iommu-cells = <0x00>; + power-domains = <0x25 0x0a>; + status = "okay"; + phandle = <0x7f>; + }; + + eink@fdf00000 { + compatible = "rockchip,rk3568-eink-tcon"; + reg = <0x00 0xfdf00000 0x00 0x74>; + interrupts = <0x00 0xb2 0x04>; + clocks = <0x23 0xff 0x23 0x100>; + clock-names = "pclk\0hclk"; + status = "disabled"; + }; + + rkvenc@fdf40000 { + compatible = "rockchip,rkv-encoder-v1"; + reg = <0x00 0xfdf40000 0x00 0x400>; + interrupts = <0x00 0x8c 0x04>; + interrupt-names = "irq_enc"; + clocks = <0x23 0x103 0x23 0x104 0x23 0x105>; + clock-names = "aclk_vcodec\0hclk_vcodec\0clk_core"; + rockchip,normal-rates = <0x11b3dc40 0x00 0x11b3dc40>; + resets = <0x23 0x133 0x23 0x134 0x23 0x135>; + reset-names = "video_a\0video_h\0video_core"; + assigned-clocks = <0x23 0x103 0x23 0x105>; + assigned-clock-rates = <0x11b3dc40 0x11b3dc40>; + iommus = <0x80>; + node-name = "rkvenc"; + rockchip,srv = <0x7b>; + rockchip,taskqueue-node = <0x03>; + rockchip,resetgroup-node = <0x03>; + power-domains = <0x25 0x0e>; + operating-points-v2 = <0x81>; + status = "okay"; + venc-supply = <0x75>; + }; + + rkvenc-opp-table { + compatible = "operating-points-v2"; + nvmem-cells = <0x07>; + nvmem-cell-names = "pvtm"; + rockchip,pvtm-voltage-sel = <0x00 0x14820 0x00 0x14821 0x16378 0x01 0x16379 0x186a0 0x02>; + rockchip,pvtm-ch = <0x00 0x05>; + phandle = <0x81>; + + opp-297000000 { + opp-hz = <0x00 0x11b3dc40>; + opp-microvolt = <0xdbba0>; + opp-microvolt-L0 = <0xdbba0>; + opp-microvolt-L1 = <0xd59f8>; + opp-microvolt-L2 = <0xd59f8>; + }; + + opp-400000000 { + opp-hz = <0x00 0x17d78400>; + opp-microvolt = <0xe7ef0>; + opp-microvolt-L0 = <0xe7ef0>; + opp-microvolt-L1 = <0xe1d48>; + opp-microvolt-L2 = <0xdbba0>; + }; + }; + + iommu@fdf40f00 { + compatible = "rockchip,iommu-v2"; + reg = <0x00 0xfdf40f00 0x00 0x40 0x00 0xfdf40f40 0x00 0x40>; + interrupts = <0x00 0x8d 0x04 0x00 0x8e 0x04>; + interrupt-names = "rkvenc_mmu0\0rkvenc_mmu1"; + clocks = <0x23 0x103 0x23 0x104>; + clock-names = "aclk\0iface"; + rockchip,disable-mmu-reset; + rockchip,enable-cmd-retry; + #iommu-cells = <0x00>; + power-domains = <0x25 0x0e>; + status = "okay"; + phandle = <0x80>; + }; + + rkvdec@fdf80200 { + compatible = "rockchip,rkv-decoder-rk3568\0rockchip,rkv-decoder-v2"; + reg = <0x00 0xfdf80200 0x00 0x400 0x00 0xfdf80100 0x00 0x100>; + reg-names = "regs\0link"; + interrupts = <0x00 0x5b 0x04>; + interrupt-names = "irq_dec"; + clocks = <0x23 0x108 0x23 0x109 0x23 0x10a 0x23 0x10b 0x23 0x10c>; + clock-names = "aclk_vcodec\0hclk_vcodec\0clk_cabac\0clk_core\0clk_hevc_cabac"; + rockchip,normal-rates = <0x11b3dc40 0x00 0x11b3dc40 0x11b3dc40 0x23c34600>; + rockchip,advanced-rates = <0x179a7b00 0x00 0x179a7b00 0x179a7b00 0x23c34600>; + rockchip,default-max-load = <0x1fe000>; + resets = <0x23 0x142 0x23 0x143 0x23 0x144 0x23 0x145 0x23 0x146>; + assigned-clocks = <0x23 0x108 0x23 0x10a 0x23 0x10b 0x23 0x10c>; + assigned-clock-rates = <0x11b3dc40 0x11b3dc40 0x11b3dc40 0x11b3dc40>; + reset-names = "video_a\0video_h\0video_cabac\0video_core\0video_hevc_cabac"; + power-domains = <0x25 0x0d>; + operating-points-v2 = <0x82>; + vdec-supply = <0x75>; + iommus = <0x83>; + rockchip,srv = <0x7b>; + rockchip,taskqueue-node = <0x04>; + rockchip,resetgroup-node = <0x04>; + rockchip,sram = <0x84>; + rockchip,rcb-iova = <0x10000000 0x10000>; + rockchip,rcb-min-width = <0x200>; + rockchip,task-capacity = <0x10>; + status = "okay"; + }; + + rkvdec-opp-table { + compatible = "operating-points-v2"; + nvmem-cells = <0x85 0x07>; + nvmem-cell-names = "leakage\0pvtm"; + rockchip,leakage-voltage-sel = <0x01 0x50 0x00 0x51 0xfe 0x01>; + rockchip,pvtm-voltage-sel = <0x00 0x14820 0x00 0x14821 0x186a0 0x01>; + rockchip,pvtm-ch = <0x00 0x05>; + phandle = <0x82>; + + opp-297000000 { + opp-hz = <0x00 0x11b3dc40>; + opp-microvolt = <0xdbba0>; + opp-microvolt-L0 = <0xdbba0>; + opp-microvolt-L1 = <0xd59f8>; + }; + + opp-400000000 { + opp-hz = <0x00 0x17d78400>; + opp-microvolt = <0xdbba0>; + }; + }; + + iommu@fdf80800 { + compatible = "rockchip,iommu-v2"; + reg = <0x00 0xfdf80800 0x00 0x40 0x00 0xfdf80840 0x00 0x40>; + interrupts = <0x00 0x5c 0x04>; + interrupt-names = "rkvdec_mmu"; + clocks = <0x23 0x108 0x23 0x109>; + clock-names = "aclk\0iface"; + power-domains = <0x25 0x0d>; + #iommu-cells = <0x00>; + status = "okay"; + phandle = <0x83>; + }; + + mipi-csi2-hw@fdfb0000 { + compatible = "rockchip,rk3568-mipi-csi2-hw"; + reg = <0x00 0xfdfb0000 0x00 0x10000>; + reg-names = "csihost_regs"; + interrupts = <0x00 0x08 0x04 0x00 0x09 0x04>; + interrupt-names = "csi-intr1\0csi-intr2"; + clocks = <0x23 0xd5>; + clock-names = "pclk_csi2host"; + resets = <0x23 0xff>; + reset-names = "srst_csihost_p"; + status = "okay"; + phandle = <0x1e>; + }; + + rkcif@fdfe0000 { + compatible = "rockchip,rk3568-cif"; + reg = <0x00 0xfdfe0000 0x00 0x8000>; + reg-names = "cif_regs"; + interrupts = <0x00 0x92 0x04>; + interrupt-names = "cif-intr"; + clocks = <0x23 0xce 0x23 0xcf 0x23 0xd0 0x23 0xd1>; + clock-names = "aclk_cif\0hclk_cif\0dclk_cif\0iclk_cif_g"; + resets = <0x23 0xf7 0x23 0xf8 0x23 0xf9 0x23 0xfb 0x23 0xfa>; + reset-names = "rst_cif_a\0rst_cif_h\0rst_cif_d\0rst_cif_p\0rst_cif_i"; + assigned-clocks = <0x23 0xd0>; + assigned-clock-rates = <0x11e1a300>; + power-domains = <0x25 0x08>; + rockchip,grf = <0x3b>; + iommus = <0x86>; + status = "disabled"; + phandle = <0x87>; + }; + + iommu@fdfe0800 { + compatible = "rockchip,iommu-v2"; + reg = <0x00 0xfdfe0800 0x00 0x100>; + interrupts = <0x00 0x92 0x04>; + interrupt-names = "cif_mmu"; + clocks = <0x23 0xce 0x23 0xcf>; + clock-names = "aclk\0iface"; + power-domains = <0x25 0x08>; + rockchip,disable-mmu-reset; + #iommu-cells = <0x00>; + status = "disabled"; + phandle = <0x86>; + }; + + rkcif_dvp { + compatible = "rockchip,rkcif-dvp"; + rockchip,hw = <0x87>; + status = "disabled"; + phandle = <0x88>; + }; + + rkcif_dvp_sditf { + compatible = "rockchip,rkcif-sditf"; + rockchip,cif = <0x88>; + status = "disabled"; + }; + + rkcif_mipi_lvds { + compatible = "rockchip,rkcif-mipi-lvds"; + rockchip,hw = <0x87>; + status = "disabled"; + phandle = <0x89>; + }; + + rkcif_mipi_lvds_sditf { + compatible = "rockchip,rkcif-sditf"; + rockchip,cif = <0x89>; + status = "disabled"; + }; + + rkisp@fdff0000 { + compatible = "rockchip,rk3568-rkisp"; + reg = <0x00 0xfdff0000 0x00 0x10000>; + interrupts = <0x00 0x39 0x04 0x00 0x3a 0x04 0x00 0x3c 0x04>; + interrupt-names = "mipi_irq\0mi_irq\0isp_irq"; + clocks = <0x23 0xd2 0x23 0xd3 0x23 0xd4>; + clock-names = "aclk_isp\0hclk_isp\0clk_isp"; + resets = <0x23 0xfd 0x23 0xfc>; + reset-names = "isp\0isp-h"; + rockchip,grf = <0x3b>; + power-domains = <0x25 0x08>; + iommus = <0x8a>; + rockchip,iq-feature = <0x1bfb 0xfffe67ff>; + status = "okay"; + phandle = <0x8b>; + }; + + iommu@fdff1a00 { + compatible = "rockchip,iommu-v2"; + reg = <0x00 0xfdff1a00 0x00 0x100>; + interrupts = <0x00 0x3b 0x04>; + interrupt-names = "isp_mmu"; + clocks = <0x23 0xd2 0x23 0xd3>; + clock-names = "aclk\0iface"; + power-domains = <0x25 0x08>; + #iommu-cells = <0x00>; + rockchip,disable-mmu-reset; + status = "okay"; + phandle = <0x8a>; + }; + + rkisp-vir0 { + compatible = "rockchip,rkisp-vir"; + rockchip,hw = <0x8b>; + status = "okay"; + + port { + #address-cells = <0x01>; + #size-cells = <0x00>; + + endpoint@0 { + reg = <0x00>; + remote-endpoint = <0x8c>; + phandle = <0x134>; + }; + }; + }; + + rkisp-vir1 { + compatible = "rockchip,rkisp-vir"; + rockchip,hw = <0x8b>; + status = "disabled"; + }; + + uio@fe010000 { + compatible = "rockchip,uio-gmac"; + reg = <0x00 0xfe010000 0x00 0x10000>; + rockchip,ethernet = <0x8d>; + status = "disabled"; + }; + + ethernet@fe010000 { + local-mac-address = [5e 4f fd 70 05 c6]; + compatible = "rockchip,rk3568-gmac\0snps,dwmac-4.20a"; + reg = <0x00 0xfe010000 0x00 0x10000>; + interrupts = <0x00 0x20 0x04 0x00 0x1d 0x04>; + interrupt-names = "macirq\0eth_wake_irq"; + rockchip,grf = <0x3b>; + clocks = <0x23 0x186 0x23 0x189 0x23 0x189 0x23 0xc7 0x23 0xc3 0x23 0xc4 0x23 0x189 0x23 0xc8 0x23 0xac 0x23 0xab>; + clock-names = "stmmaceth\0mac_clk_rx\0mac_clk_tx\0clk_mac_refout\0aclk_mac\0pclk_mac\0clk_mac_speed\0ptp_ref\0pclk_xpcs\0clk_xpcs_eee"; + resets = <0x23 0xec>; + reset-names = "stmmaceth"; + snps,mixed-burst; + snps,tso; + snps,axi-config = <0x8e>; + snps,mtl-rx-config = <0x8f>; + snps,mtl-tx-config = <0x90>; + status = "okay"; + phy-mode = "rgmii"; + clock_in_out = "input"; + snps,reset-gpio = <0x91 0x19 0x01>; + snps,reset-active-low; + snps,reset-delays-us = <0x00 0x4e20 0x186a0>; + assigned-clocks = <0x23 0x189 0x23 0x186>; + assigned-clock-parents = <0x23 0x187 0x92>; + pinctrl-names = "default"; + pinctrl-0 = <0x93 0x94 0x95 0x96 0x97 0x98>; + tx_delay = <0x3e>; + rx_delay = <0x32>; + phy-handle = <0x99>; + phandle = <0x8d>; + + mdio { + compatible = "snps,dwmac-mdio"; + #address-cells = <0x01>; + #size-cells = <0x00>; + + phy@0 { + compatible = "ethernet-phy-ieee802.3-c22"; + reg = <0x00>; + led_status_value = <0x6940>; + phandle = <0x99>; + }; + }; + + stmmac-axi-config { + snps,wr_osr_lmt = <0x04>; + snps,rd_osr_lmt = <0x08>; + snps,blen = <0x00 0x00 0x00 0x00 0x10 0x08 0x04>; + phandle = <0x8e>; + }; + + rx-queues-config { + snps,rx-queues-to-use = <0x01>; + phandle = <0x8f>; + + queue0 { + }; + }; + + tx-queues-config { + snps,tx-queues-to-use = <0x01>; + phandle = <0x90>; + + queue0 { + }; + }; + }; + + vop@fe040000 { + compatible = "rockchip,rk3568-vop"; + reg = <0x00 0xfe040000 0x00 0x3000 0x00 0xfe044000 0x00 0x1000>; + reg-names = "regs\0gamma_lut"; + rockchip,grf = <0x3b>; + interrupts = <0x00 0x94 0x04>; + clocks = <0x23 0xdd 0x23 0xde 0x23 0xdf 0x23 0xe0 0x23 0xe1>; + clock-names = "aclk_vop\0hclk_vop\0dclk_vp0\0dclk_vp1\0dclk_vp2"; + iommus = <0x9a>; + power-domains = <0x25 0x09>; + status = "okay"; + assigned-clocks = <0x23 0xdf 0x23 0xe0>; + assigned-clock-parents = <0x3a 0x02 0x23 0x05>; + disable-win-move; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + phandle = <0x15>; + + port@0 { + rockchip,primary-plane = <0x04>; + rockchip,plane-mask = <0x15>; + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x00>; + + endpoint@0 { + reg = <0x00>; + remote-endpoint = <0x9b>; + phandle = <0x17>; + }; + + endpoint@1 { + reg = <0x01>; + remote-endpoint = <0x9c>; + phandle = <0x18>; + }; + + endpoint@2 { + reg = <0x02>; + remote-endpoint = <0x9d>; + phandle = <0x19>; + }; + + endpoint@3 { + reg = <0x03>; + remote-endpoint = <0x9e>; + phandle = <0x1a>; + }; + }; + + port@1 { + rockchip,primary-plane = <0x05>; + rockchip,plane-mask = <0x22>; + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x01>; + + endpoint@0 { + reg = <0x00>; + remote-endpoint = <0x9f>; + phandle = <0xa8>; + }; + + endpoint@1 { + reg = <0x01>; + remote-endpoint = <0xa0>; + phandle = <0xa9>; + }; + + endpoint@2 { + reg = <0x02>; + remote-endpoint = <0xa1>; + phandle = <0xaf>; + }; + + endpoint@3 { + reg = <0x03>; + remote-endpoint = <0xa2>; + phandle = <0xad>; + }; + + endpoint@4 { + reg = <0x04>; + remote-endpoint = <0xa3>; + phandle = <0x1b>; + }; + + endpoint@5 { + reg = <0x05>; + remote-endpoint = <0xa4>; + phandle = <0x37>; + }; + }; + + port@2 { + rockchip,primary-plane = <0x03>; + rockchip,plane-mask = <0x08>; + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x02>; + + endpoint@0 { + reg = <0x00>; + remote-endpoint = <0xa5>; + phandle = <0x35>; + }; + + endpoint@1 { + reg = <0x01>; + remote-endpoint = <0xa6>; + phandle = <0x1c>; + }; + + endpoint@2 { + reg = <0x02>; + remote-endpoint = <0xa7>; + phandle = <0x38>; + }; + }; + }; + }; + + iommu@fe043e00 { + compatible = "rockchip,iommu-v2"; + reg = <0x00 0xfe043e00 0x00 0x100 0x00 0xfe043f00 0x00 0x100>; + interrupts = <0x00 0x94 0x04>; + interrupt-names = "vop_mmu"; + clocks = <0x23 0xdd 0x23 0xde>; + clock-names = "aclk\0iface"; + #iommu-cells = <0x00>; + rockchip,disable-device-link-resume; + status = "okay"; + phandle = <0x9a>; + }; + + dsi@fe060000 { + compatible = "rockchip,rk3568-mipi-dsi"; + reg = <0x00 0xfe060000 0x00 0x10000>; + interrupts = <0x00 0x44 0x04>; + clocks = <0x23 0xe8 0x23 0xda>; + clock-names = "pclk\0hclk"; + resets = <0x23 0x110>; + reset-names = "apb"; + phys = <0x34>; + phy-names = "dphy"; + power-domains = <0x25 0x09>; + rockchip,grf = <0x3b>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "disabled"; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + reg = <0x00>; + #address-cells = <0x01>; + #size-cells = <0x00>; + + endpoint@0 { + reg = <0x00>; + remote-endpoint = <0x17>; + status = "disabled"; + phandle = <0x9b>; + }; + + endpoint@1 { + reg = <0x01>; + remote-endpoint = <0xa8>; + status = "disabled"; + phandle = <0x9f>; + }; + }; + }; + }; + + dsi@fe070000 { + compatible = "rockchip,rk3568-mipi-dsi"; + reg = <0x00 0xfe070000 0x00 0x10000>; + interrupts = <0x00 0x45 0x04>; + clocks = <0x23 0xe9 0x23 0xda>; + clock-names = "pclk\0hclk"; + resets = <0x23 0x111>; + reset-names = "apb"; + phys = <0x36>; + phy-names = "dphy"; + power-domains = <0x25 0x09>; + rockchip,grf = <0x3b>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "disabled"; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + reg = <0x00>; + #address-cells = <0x01>; + #size-cells = <0x00>; + + endpoint@0 { + reg = <0x00>; + remote-endpoint = <0x18>; + status = "disabled"; + phandle = <0x9c>; + }; + + endpoint@1 { + reg = <0x01>; + remote-endpoint = <0xa9>; + status = "disabled"; + phandle = <0xa0>; + }; + }; + }; + }; + + hdmi@fe0a0000 { + compatible = "rockchip,rk3568-dw-hdmi"; + reg = <0x00 0xfe0a0000 0x00 0x20000>; + interrupts = <0x00 0x2d 0x04>; + clocks = <0x23 0xe6 0x23 0xe7 0x23 0x193 0x3a 0x02 0x23 0xde>; + clock-names = "iahb\0isfr\0cec\0ref\0hclk"; + power-domains = <0x25 0x09>; + reg-io-width = <0x04>; + rockchip,grf = <0x3b>; + #sound-dai-cells = <0x00>; + pinctrl-names = "default"; + pinctrl-0 = <0xaa 0xab 0xac>; + status = "okay"; + phandle = <0x147>; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + reg = <0x00>; + #address-cells = <0x01>; + #size-cells = <0x00>; + + endpoint@0 { + reg = <0x00>; + remote-endpoint = <0x1a>; + status = "okay"; + phandle = <0x9e>; + }; + + endpoint@1 { + reg = <0x01>; + remote-endpoint = <0xad>; + status = "disabled"; + phandle = <0xa2>; + }; + }; + }; + }; + + edp@fe0c0000 { + compatible = "rockchip,rk3568-edp"; + reg = <0x00 0xfe0c0000 0x00 0x10000>; + interrupts = <0x00 0x12 0x04>; + clocks = <0x3a 0x29 0x23 0xea 0x23 0xeb 0x23 0xda>; + clock-names = "dp\0pclk\0spdif\0hclk"; + resets = <0x23 0x113 0x23 0x112>; + reset-names = "dp\0apb"; + phys = <0xae>; + phy-names = "dp"; + power-domains = <0x25 0x09>; + status = "disabled"; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + reg = <0x00>; + #address-cells = <0x01>; + #size-cells = <0x00>; + + endpoint@0 { + reg = <0x00>; + remote-endpoint = <0x19>; + status = "disabled"; + phandle = <0x9d>; + }; + + endpoint@1 { + reg = <0x01>; + remote-endpoint = <0xaf>; + status = "disabled"; + phandle = <0xa1>; + }; + }; + }; + }; + + nocp-cpu@fe102000 { + compatible = "rockchip,rk3568-nocp"; + reg = <0x00 0xfe102000 0x00 0x400>; + phandle = <0xb5>; + }; + + nocp-gpu-vpu-rga-venc@fe102400 { + compatible = "rockchip,rk3568-nocp"; + reg = <0x00 0xfe102400 0x00 0x400>; + }; + + nocp-vdec@fe102800 { + compatible = "rockchip,rk3568-nocp"; + reg = <0x00 0xfe102800 0x00 0x400>; + }; + + nocp-vi-usb-peri-pipe@fe102c00 { + compatible = "rockchip,rk3568-nocp"; + reg = <0x00 0xfe102c00 0x00 0x400>; + }; + + nocp-vo@fe103000 { + compatible = "rockchip,rk3568-nocp"; + reg = <0x00 0xfe103000 0x00 0x400>; + }; + + qos@fe128000 { + compatible = "syscon"; + reg = <0x00 0xfe128000 0x00 0x20>; + phandle = <0x55>; + }; + + qos@fe138080 { + compatible = "syscon"; + reg = <0x00 0xfe138080 0x00 0x20>; + phandle = <0x64>; + }; + + qos@fe138100 { + compatible = "syscon"; + reg = <0x00 0xfe138100 0x00 0x20>; + phandle = <0x65>; + }; + + qos@fe138180 { + compatible = "syscon"; + reg = <0x00 0xfe138180 0x00 0x20>; + phandle = <0x66>; + }; + + qos@fe148000 { + compatible = "syscon"; + reg = <0x00 0xfe148000 0x00 0x20>; + phandle = <0x56>; + }; + + qos@fe148080 { + compatible = "syscon"; + reg = <0x00 0xfe148080 0x00 0x20>; + phandle = <0x57>; + }; + + qos@fe148100 { + compatible = "syscon"; + reg = <0x00 0xfe148100 0x00 0x20>; + phandle = <0x58>; + }; + + qos@fe150000 { + compatible = "syscon"; + reg = <0x00 0xfe150000 0x00 0x20>; + phandle = <0x62>; + }; + + qos@fe158000 { + compatible = "syscon"; + reg = <0x00 0xfe158000 0x00 0x20>; + phandle = <0x5c>; + }; + + qos@fe158100 { + compatible = "syscon"; + reg = <0x00 0xfe158100 0x00 0x20>; + phandle = <0x5d>; + }; + + qos@fe158180 { + compatible = "syscon"; + reg = <0x00 0xfe158180 0x00 0x20>; + phandle = <0x5e>; + }; + + qos@fe158200 { + compatible = "syscon"; + reg = <0x00 0xfe158200 0x00 0x20>; + phandle = <0x5f>; + }; + + qos@fe158280 { + compatible = "syscon"; + reg = <0x00 0xfe158280 0x00 0x20>; + phandle = <0x60>; + }; + + qos@fe158300 { + compatible = "syscon"; + reg = <0x00 0xfe158300 0x00 0x20>; + phandle = <0x61>; + }; + + qos@fe180000 { + compatible = "syscon"; + reg = <0x00 0xfe180000 0x00 0x20>; + phandle = <0x54>; + }; + + qos@fe190000 { + compatible = "syscon"; + reg = <0x00 0xfe190000 0x00 0x20>; + phandle = <0x67>; + }; + + qos@fe190080 { + compatible = "syscon"; + reg = <0x00 0xfe190080 0x00 0x20>; + phandle = <0x68>; + }; + + qos@fe190100 { + compatible = "syscon"; + reg = <0x00 0xfe190100 0x00 0x20>; + phandle = <0x69>; + }; + + qos@fe190200 { + compatible = "syscon"; + reg = <0x00 0xfe190200 0x00 0x20>; + phandle = <0x6a>; + }; + + qos@fe190280 { + compatible = "syscon"; + reg = <0x00 0xfe190280 0x00 0x20>; + phandle = <0x6b>; + }; + + qos@fe190300 { + compatible = "syscon"; + reg = <0x00 0xfe190300 0x00 0x20>; + phandle = <0x6c>; + }; + + qos@fe190380 { + compatible = "syscon"; + reg = <0x00 0xfe190380 0x00 0x20>; + phandle = <0x6d>; + }; + + qos@fe190400 { + compatible = "syscon"; + reg = <0x00 0xfe190400 0x00 0x20>; + phandle = <0x6e>; + }; + + qos@fe198000 { + compatible = "syscon"; + reg = <0x00 0xfe198000 0x00 0x20>; + phandle = <0x63>; + }; + + qos@fe1a8000 { + compatible = "syscon"; + reg = <0x00 0xfe1a8000 0x00 0x20>; + phandle = <0x59>; + }; + + qos@fe1a8080 { + compatible = "syscon"; + reg = <0x00 0xfe1a8080 0x00 0x20>; + phandle = <0x5a>; + }; + + qos@fe1a8100 { + compatible = "syscon"; + reg = <0x00 0xfe1a8100 0x00 0x20>; + phandle = <0x5b>; + }; + + dwmmc@fe000000 { + compatible = "rockchip,rk3568-dw-mshc\0rockchip,rk3288-dw-mshc"; + reg = <0x00 0xfe000000 0x00 0x4000>; + interrupts = <0x00 0x64 0x04>; + max-frequency = <0x8f0d180>; + clocks = <0x23 0xc1 0x23 0xc2 0x23 0x18e 0x23 0x18f>; + clock-names = "biu\0ciu\0ciu-drive\0ciu-sample"; + fifo-depth = <0x100>; + resets = <0x23 0xeb>; + reset-names = "reset"; + status = "okay"; + no-sd; + no-mmc; + bus-width = <0x04>; + disable-wp; + cap-sd-highspeed; + cap-sdio-irq; + keep-power-in-suspend; + pinctrl-names = "default"; + pinctrl-0 = <0xb0 0xb1 0xb2>; + sd-uhs-sdr104; + mmc-pwrseq = <0xb3>; + non-removable; + }; + + dfi@fe230000 { + reg = <0x00 0xfe230000 0x00 0x400>; + compatible = "rockchip,rk3568-dfi"; + rockchip,pmugrf = <0x3c>; + status = "okay"; + phandle = <0xb4>; + }; + + dmc { + compatible = "rockchip,rk3568-dmc"; + interrupts = <0x00 0x0a 0x04>; + interrupt-names = "complete"; + devfreq-events = <0xb4 0xb5>; + clocks = <0x02 0x03>; + clock-names = "dmc_clk"; + operating-points-v2 = <0xb6>; + vop-bw-dmc-freq = <0x00 0x11e 0x4f1a0 0x11f 0x1869f 0x80e80>; + vop-frame-bw-dmc-freq = <0x00 0x26c 0x4f1a0 0x26d 0x1869f 0xbe6e0>; + cpu-bw-dmc-freq = <0x00 0x15e 0x4f1a0 0x15f 0x190 0x80e80 0x191 0x1869f 0xbe6e0>; + upthreshold = <0x28>; + downdifferential = <0x14>; + system-status-level = <0x01 0x04 0x08 0x08 0x02 0x01 0x10 0x04 0x10000 0x04 0x1000 0x08 0x4000 0x08 0x2000 0x08 0xc00 0x08>; + auto-min-freq = <0x4f1a0>; + auto-freq-en = <0x01>; + #cooling-cells = <0x02>; + status = "okay"; + center-supply = <0x75>; + phandle = <0x16>; + }; + + dmc-fsp { + compatible = "rockchip,rk3568-dmc-fsp"; + debug_print_level = <0x00>; + ddr3_params = <0xb7>; + ddr4_params = <0xb8>; + lpddr3_params = <0xb9>; + lpddr4_params = <0xba>; + lpddr4x_params = <0xbb>; + status = "okay"; + }; + + dmc-opp-table { + compatible = "operating-points-v2"; + mbist-vmin = <0xc96a8 0xdbba0 0xe7ef0>; + nvmem-cells = <0x85 0x07 0x08 0xbc 0x0a 0x0b>; + nvmem-cell-names = "leakage\0pvtm\0mbist-vmin\0opp-info\0specification_serial_number\0remark_spec_serial_number"; + rockchip,supported-hw; + rockchip,max-volt = <0xf4240>; + rockchip,temp-hysteresis = <0x1388>; + rockchip,low-temp = <0x00>; + rockchip,low-temp-adjust-volt = <0x00 0x618 0x124f8>; + rockchip,leakage-voltage-sel = <0x01 0x50 0x00 0x51 0xfe 0x01>; + rockchip,pvtm-voltage-sel = <0x00 0x14820 0x00 0x14821 0x186a0 0x01>; + rockchip,pvtm-ch = <0x00 0x05>; + phandle = <0xb6>; + + opp-1560000000 { + opp-supported-hw = <0xf9 0xffff>; + opp-hz = <0x00 0x5cfbb600>; + opp-microvolt = <0xdbba0 0xdbba0 0xf4240>; + opp-microvolt-L0 = <0xdbba0 0xdbba0 0xf4240>; + opp-microvolt-L1 = <0xd59f8 0xd59f8 0xf4240>; + }; + + opp-j-m-1560000000 { + opp-supported-hw = <0x06 0xffff>; + opp-hz = <0x00 0x5cfbb600>; + opp-microvolt = <0xd59f8 0xd59f8 0xf4240>; + }; + }; + + pcie@fe260000 { + compatible = "rockchip,rk3568-pcie\0snps,dw-pcie"; + #address-cells = <0x03>; + #size-cells = <0x02>; + bus-range = <0x00 0x0f>; + clocks = <0x23 0x81 0x23 0x82 0x23 0x83 0x23 0x84 0x23 0x85>; + clock-names = "aclk_mst\0aclk_slv\0aclk_dbi\0pclk\0aux"; + device_type = "pci"; + interrupts = <0x00 0x4b 0x04 0x00 0x4a 0x04 0x00 0x49 0x04 0x00 0x48 0x04 0x00 0x47 0x04>; + interrupt-names = "sys\0pmc\0msg\0legacy\0err"; + #interrupt-cells = <0x01>; + interrupt-map-mask = <0x00 0x00 0x00 0x07>; + interrupt-map = <0x00 0x00 0x00 0x01 0xbd 0x00 0x00 0x00 0x00 0x02 0xbd 0x01 0x00 0x00 0x00 0x03 0xbd 0x02 0x00 0x00 0x00 0x04 0xbd 0x03>; + linux,pci-domain = <0x00>; + num-ib-windows = <0x06>; + num-viewport = <0x08>; + num-ob-windows = <0x02>; + max-link-speed = <0x02>; + msi-map = <0x00 0xbe 0x00 0x1000>; + num-lanes = <0x01>; + phys = <0x27 0x02>; + phy-names = "pcie-phy"; + power-domains = <0x25 0x0f>; + ranges = <0x800 0x00 0xf4000000 0x00 0xf4000000 0x00 0x100000 0x81000000 0x00 0xf4100000 0x00 0xf4100000 0x00 0x100000 0x82000000 0x00 0xf4200000 0x00 0xf4200000 0x00 0x1e00000 0xc3000000 0x03 0x00 0x03 0x00 0x00 0x40000000>; + reg = <0x03 0xc0000000 0x00 0x400000 0x00 0xfe260000 0x00 0x10000>; + reg-names = "pcie-dbi\0pcie-apb"; + resets = <0x23 0xa1>; + reset-names = "pipe"; + status = "disabled"; + + legacy-interrupt-controller { + interrupt-controller; + #address-cells = <0x00>; + #interrupt-cells = <0x01>; + interrupt-parent = <0x01>; + interrupts = <0x00 0x48 0x01>; + phandle = <0xbd>; + }; + }; + + pcie@fe270000 { + compatible = "rockchip,rk3568-pcie\0snps,dw-pcie"; + #address-cells = <0x03>; + #size-cells = <0x02>; + bus-range = <0x10 0x1f>; + clocks = <0x23 0x88 0x23 0x89 0x23 0x8a 0x23 0x8b 0x23 0x8c>; + clock-names = "aclk_mst\0aclk_slv\0aclk_dbi\0pclk\0aux"; + device_type = "pci"; + interrupts = <0x00 0xa0 0x04 0x00 0x9f 0x04 0x00 0x9e 0x04 0x00 0x9d 0x04 0x00 0x9c 0x04>; + interrupt-names = "sys\0pmc\0msg\0legacy\0err"; + #interrupt-cells = <0x01>; + interrupt-map-mask = <0x00 0x00 0x00 0x07>; + interrupt-map = <0x00 0x00 0x00 0x01 0xbf 0x00 0x00 0x00 0x00 0x02 0xbf 0x01 0x00 0x00 0x00 0x03 0xbf 0x02 0x00 0x00 0x00 0x04 0xbf 0x03>; + linux,pci-domain = <0x01>; + num-ib-windows = <0x06>; + num-ob-windows = <0x02>; + num-viewport = <0x08>; + max-link-speed = <0x03>; + msi-map = <0x1000 0xbe 0x1000 0x1000>; + num-lanes = <0x01>; + phys = <0xc0>; + phy-names = "pcie-phy"; + power-domains = <0x25 0x0f>; + ranges = <0x800 0x00 0xf2000000 0x00 0xf2000000 0x00 0x100000 0x81000000 0x00 0xf2100000 0x00 0xf2100000 0x00 0x100000 0x82000000 0x00 0xf2200000 0x00 0xf2200000 0x00 0x1e00000 0xc3000000 0x03 0x40000000 0x03 0x40000000 0x00 0x40000000>; + reg = <0x03 0xc0400000 0x00 0x400000 0x00 0xfe270000 0x00 0x10000>; + reg-names = "pcie-dbi\0pcie-apb"; + resets = <0x23 0xb1>; + reset-names = "pipe"; + status = "disabled"; + + legacy-interrupt-controller { + interrupt-controller; + #address-cells = <0x00>; + #interrupt-cells = <0x01>; + interrupt-parent = <0x01>; + interrupts = <0x00 0x9d 0x01>; + phandle = <0xbf>; + }; + }; + + pcie@fe280000 { + compatible = "rockchip,rk3568-pcie\0snps,dw-pcie"; + #address-cells = <0x03>; + #size-cells = <0x02>; + bus-range = <0x20 0x2f>; + clocks = <0x23 0x8f 0x23 0x90 0x23 0x91 0x23 0x92 0x23 0x93>; + clock-names = "aclk_mst\0aclk_slv\0aclk_dbi\0pclk\0aux"; + device_type = "pci"; + interrupts = <0x00 0xa5 0x04 0x00 0xa4 0x04 0x00 0xa3 0x04 0x00 0xa2 0x04 0x00 0xa1 0x04>; + interrupt-names = "sys\0pmc\0msg\0legacy\0err"; + #interrupt-cells = <0x01>; + interrupt-map-mask = <0x00 0x00 0x00 0x07>; + interrupt-map = <0x00 0x00 0x00 0x01 0xc1 0x00 0x00 0x00 0x00 0x02 0xc1 0x01 0x00 0x00 0x00 0x03 0xc1 0x02 0x00 0x00 0x00 0x04 0xc1 0x03>; + linux,pci-domain = <0x02>; + num-ib-windows = <0x06>; + num-viewport = <0x08>; + num-ob-windows = <0x02>; + max-link-speed = <0x03>; + msi-map = <0x2000 0xbe 0x2000 0x1000>; + num-lanes = <0x02>; + phys = <0xc0>; + phy-names = "pcie-phy"; + power-domains = <0x25 0x0f>; + ranges = <0x800 0x00 0xf0000000 0x00 0xf0000000 0x00 0x100000 0x81000000 0x00 0xf0100000 0x00 0xf0100000 0x00 0x100000 0x82000000 0x00 0xf0200000 0x00 0xf0200000 0x00 0x1e00000 0xc3000000 0x03 0x80000000 0x03 0x80000000 0x00 0x40000000>; + reg = <0x03 0xc0800000 0x00 0x400000 0x00 0xfe280000 0x00 0x10000>; + reg-names = "pcie-dbi\0pcie-apb"; + resets = <0x23 0xc1>; + reset-names = "pipe"; + status = "okay"; + reset-gpios = <0x91 0x1e 0x00>; + vpcie3v3-supply = <0xc2>; + + legacy-interrupt-controller { + interrupt-controller; + #address-cells = <0x00>; + #interrupt-cells = <0x01>; + interrupt-parent = <0x01>; + interrupts = <0x00 0xa2 0x01>; + phandle = <0xc1>; + }; + }; + + uio@fe2a0000 { + compatible = "rockchip,uio-gmac"; + reg = <0x00 0xfe2a0000 0x00 0x10000>; + rockchip,ethernet = <0xc3>; + status = "disabled"; + }; + + ethernet@fe2a0000 { + local-mac-address = [5a 4f fd 70 05 c6]; + compatible = "rockchip,rk3568-gmac\0snps,dwmac-4.20a"; + reg = <0x00 0xfe2a0000 0x00 0x10000>; + interrupts = <0x00 0x1b 0x04 0x00 0x18 0x04>; + interrupt-names = "macirq\0eth_wake_irq"; + rockchip,grf = <0x3b>; + clocks = <0x23 0x182 0x23 0x185 0x23 0x185 0x23 0xb8 0x23 0xb4 0x23 0xb5 0x23 0x185 0x23 0xb9 0x23 0xac 0x23 0xab>; + clock-names = "stmmaceth\0mac_clk_rx\0mac_clk_tx\0clk_mac_refout\0aclk_mac\0pclk_mac\0clk_mac_speed\0ptp_ref\0pclk_xpcs\0clk_xpcs_eee"; + resets = <0x23 0xd7>; + reset-names = "stmmaceth"; + snps,mixed-burst; + snps,tso; + snps,axi-config = <0xc4>; + snps,mtl-rx-config = <0xc5>; + snps,mtl-tx-config = <0xc6>; + status = "okay"; + phy-mode = "rgmii"; + clock_in_out = "input"; + snps,reset-gpio = <0x91 0x1b 0x01>; + snps,reset-active-low; + snps,reset-delays-us = <0x00 0x4e20 0x186a0>; + assigned-clocks = <0x23 0x185 0x23 0x182>; + assigned-clock-parents = <0x23 0x183 0xc7>; + pinctrl-names = "default"; + pinctrl-0 = <0xc8 0xc9 0xca 0xcb 0xcc 0xcd>; + tx_delay = <0x4a>; + rx_delay = <0x2e>; + phy-handle = <0xce>; + phandle = <0xc3>; + + mdio { + compatible = "snps,dwmac-mdio"; + #address-cells = <0x01>; + #size-cells = <0x00>; + + phy@0 { + compatible = "ethernet-phy-ieee802.3-c22"; + reg = <0x00>; + led_status_value = <0x6940>; + phandle = <0xce>; + }; + }; + + stmmac-axi-config { + snps,wr_osr_lmt = <0x04>; + snps,rd_osr_lmt = <0x08>; + snps,blen = <0x00 0x00 0x00 0x00 0x10 0x08 0x04>; + phandle = <0xc4>; + }; + + rx-queues-config { + snps,rx-queues-to-use = <0x01>; + phandle = <0xc5>; + + queue0 { + }; + }; + + tx-queues-config { + snps,tx-queues-to-use = <0x01>; + phandle = <0xc6>; + + queue0 { + }; + }; + }; + + dwmmc@fe2b0000 { + compatible = "rockchip,rk3568-dw-mshc\0rockchip,rk3288-dw-mshc"; + reg = <0x00 0xfe2b0000 0x00 0x4000>; + interrupts = <0x00 0x62 0x04>; + max-frequency = <0x8f0d180>; + clocks = <0x23 0xb0 0x23 0xb1 0x23 0x18a 0x23 0x18b>; + clock-names = "biu\0ciu\0ciu-drive\0ciu-sample"; + fifo-depth = <0x100>; + resets = <0x23 0xd4>; + reset-names = "reset"; + status = "okay"; + no-sdio; + no-mmc; + bus-width = <0x04>; + cap-mmc-highspeed; + cap-sd-highspeed; + disable-wp; + sd-uhs-sdr104; + vmmc-supply = <0xcf>; + vqmmc-supply = <0x31>; + pinctrl-names = "default"; + pinctrl-0 = <0xd0 0xd1 0xd2 0xd3>; + }; + + dwmmc@fe2c0000 { + compatible = "rockchip,rk3568-dw-mshc\0rockchip,rk3288-dw-mshc"; + reg = <0x00 0xfe2c0000 0x00 0x4000>; + interrupts = <0x00 0x63 0x04>; + max-frequency = <0x8f0d180>; + clocks = <0x23 0xb2 0x23 0xb3 0x23 0x18c 0x23 0x18d>; + clock-names = "biu\0ciu\0ciu-drive\0ciu-sample"; + fifo-depth = <0x100>; + resets = <0x23 0xd6>; + reset-names = "reset"; + status = "disabled"; + }; + + spi@fe300000 { + compatible = "rockchip,sfc"; + reg = <0x00 0xfe300000 0x00 0x4000>; + interrupts = <0x00 0x65 0x04>; + clocks = <0x23 0x78 0x23 0x76>; + clock-names = "clk_sfc\0hclk_sfc"; + assigned-clocks = <0x23 0x78>; + assigned-clock-rates = <0x2faf080>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "okay"; + pinctrl-names = "default"; + pinctrl-0 = <0xd4>; + + flash@0 { + compatible = "jedec,spi-nor"; + reg = <0x00>; + spi-max-frequency = <0x2faf080>; + spi-rx-bus-width = <0x01>; + spi-tx-bus-width = <0x01>; + }; + }; + + sdhci@fe310000 { + compatible = "rockchip,rk3568-dwcmshc\0rockchip,dwcmshc-sdhci"; + reg = <0x00 0xfe310000 0x00 0x10000>; + interrupts = <0x00 0x13 0x04>; + assigned-clocks = <0x23 0x7b 0x23 0x7d 0x23 0x7c>; + assigned-clock-rates = <0xbebc200 0x16e3600 0xbebc200>; + clocks = <0x23 0x7c 0x23 0x7a 0x23 0x79 0x23 0x7b 0x23 0x7d>; + clock-names = "core\0bus\0axi\0block\0timer"; + resets = <0x23 0x78 0x23 0x76 0x23 0x75 0x23 0x77 0x23 0x79>; + reset-names = "core\0bus\0axi\0block\0timer"; + status = "okay"; + bus-width = <0x08>; + no-sdio; + no-sd; + non-removable; + max-frequency = <0xbebc200>; + full-pwr-cycle-in-suspend; + }; + + nandc@fe330000 { + compatible = "rockchip,rk-nandc-v9"; + reg = <0x00 0xfe330000 0x00 0x4000>; + interrupts = <0x00 0x46 0x04>; + nandc_id = <0x00>; + clocks = <0x23 0x75 0x23 0x74>; + clock-names = "clk_nandc\0hclk_nandc"; + status = "okay"; + #address-cells = <0x01>; + #size-cells = <0x00>; + + nand@0 { + reg = <0x00>; + nand-bus-width = <0x08>; + nand-ecc-mode = "hw"; + nand-ecc-strength = <0x10>; + nand-ecc-step-size = <0x400>; + }; + }; + + crypto@fe380000 { + compatible = "rockchip,rk3568-crypto"; + reg = <0x00 0xfe380000 0x00 0x4000>; + interrupts = <0x00 0x04 0x04>; + clocks = <0x23 0x6a 0x23 0x6b 0x23 0x6c 0x23 0x6d>; + clock-names = "aclk\0hclk\0sclk\0apb_pclk"; + assigned-clocks = <0x23 0x6c>; + assigned-clock-rates = <0xbebc200>; + resets = <0x23 0x69>; + reset-names = "crypto-rst"; + status = "disabled"; + }; + + rng@fe388000 { + compatible = "rockchip,cryptov2-rng"; + reg = <0x00 0xfe388000 0x00 0x2000>; + clocks = <0x23 0x70 0x23 0x6f>; + clock-names = "clk_trng\0hclk_trng"; + resets = <0x23 0x6d>; + reset-names = "reset"; + status = "okay"; + }; + + otp@fe38c000 { + compatible = "rockchip,rk3568-otp"; + reg = <0x00 0xfe38c000 0x00 0x4000>; + #address-cells = <0x01>; + #size-cells = <0x01>; + clocks = <0x23 0x73 0x23 0x72 0x23 0x71 0x23 0x181>; + clock-names = "usr\0sbpi\0apb\0phy"; + resets = <0x23 0x1cf>; + reset-names = "otp_phy"; + + cpu-code@2 { + reg = <0x02 0x02>; + phandle = <0x12>; + }; + + specification-serial-number@7 { + reg = <0x07 0x01>; + bits = <0x00 0x05>; + phandle = <0x0a>; + }; + + cpu-version@8 { + reg = <0x08 0x01>; + bits = <0x03 0x03>; + phandle = <0x11>; + }; + + mbist-vmin@9 { + reg = <0x09 0x01>; + bits = <0x00 0x04>; + phandle = <0x08>; + }; + + id@a { + reg = <0x0a 0x10>; + phandle = <0x10>; + }; + + cpu-leakage@1a { + reg = <0x1a 0x01>; + phandle = <0x06>; + }; + + log-leakage@1b { + reg = <0x1b 0x01>; + phandle = <0x85>; + }; + + npu-leakage@1c { + reg = <0x1c 0x01>; + phandle = <0x72>; + }; + + gpu-leakage@1d { + reg = <0x1d 0x01>; + phandle = <0x78>; + }; + + core-pvtm@2a { + reg = <0x2a 0x02>; + phandle = <0x07>; + }; + + cpu-tsadc-trim-l@2e { + reg = <0x2e 0x01>; + phandle = <0x125>; + }; + + cpu-tsadc-trim-h@2f { + reg = <0x2f 0x01>; + bits = <0x00 0x04>; + phandle = <0x126>; + }; + + npu-tsadc-trim-l@30 { + reg = <0x30 0x01>; + phandle = <0x127>; + }; + + npu-tsadc-trim-h@31 { + reg = <0x31 0x01>; + bits = <0x00 0x04>; + phandle = <0x128>; + }; + + tsadc-trim-base-frac@31 { + reg = <0x31 0x01>; + bits = <0x04 0x04>; + phandle = <0x122>; + }; + + tsadc-trim-base@32 { + reg = <0x32 0x01>; + phandle = <0x121>; + }; + + cpu-opp-info@36 { + reg = <0x36 0x06>; + phandle = <0x09>; + }; + + gpu-opp-info@3c { + reg = <0x3c 0x06>; + phandle = <0x79>; + }; + + npu-opp-info@42 { + reg = <0x42 0x06>; + phandle = <0x73>; + }; + + dmc-opp-info@48 { + reg = <0x48 0x06>; + phandle = <0xbc>; + }; + + remark-spec-serial-number@56 { + reg = <0x56 0x01>; + bits = <0x00 0x05>; + phandle = <0x0b>; + }; + }; + + i2s@fe400000 { + compatible = "rockchip,rk3568-i2s-tdm"; + reg = <0x00 0xfe400000 0x00 0x1000>; + interrupts = <0x00 0x34 0x04>; + clocks = <0x23 0x3f 0x23 0x43 0x23 0x39>; + clock-names = "mclk_tx\0mclk_rx\0hclk"; + dmas = <0xd5 0x00>; + dma-names = "tx"; + resets = <0x23 0x50 0x23 0x51>; + reset-names = "tx-m\0rx-m"; + rockchip,cru = <0x23>; + rockchip,grf = <0x3b>; + rockchip,playback-only; + #sound-dai-cells = <0x00>; + status = "okay"; + phandle = <0x146>; + }; + + i2s@fe410000 { + compatible = "rockchip,rk3568-i2s-tdm"; + reg = <0x00 0xfe410000 0x00 0x1000>; + interrupts = <0x00 0x35 0x04>; + clocks = <0x23 0x47 0x23 0x4b 0x23 0x3a>; + clock-names = "mclk_tx\0mclk_rx\0hclk"; + dmas = <0xd5 0x02 0xd5 0x03>; + dma-names = "tx\0rx"; + resets = <0x23 0x52 0x23 0x53>; + reset-names = "tx-m\0rx-m"; + rockchip,cru = <0x23>; + rockchip,grf = <0x3b>; + #sound-dai-cells = <0x00>; + pinctrl-names = "default"; + pinctrl-0 = <0xd6 0xd7 0xd8 0xd9>; + status = "okay"; + rockchip,clk-trcm = <0x01>; + phandle = <0xe8>; + }; + + i2s@fe420000 { + compatible = "rockchip,rk3568-i2s-tdm"; + reg = <0x00 0xfe420000 0x00 0x1000>; + interrupts = <0x00 0x36 0x04>; + clocks = <0x23 0x4f 0x23 0x4f 0x23 0x3b>; + clock-names = "mclk_tx\0mclk_rx\0hclk"; + dmas = <0xd5 0x04 0xd5 0x05>; + dma-names = "tx\0rx"; + rockchip,cru = <0x23>; + rockchip,grf = <0x3b>; + rockchip,clk-trcm = <0x01>; + #sound-dai-cells = <0x00>; + pinctrl-names = "default"; + pinctrl-0 = <0xda 0xdb 0xdc 0xdd>; + status = "disabled"; + }; + + i2s@fe430000 { + compatible = "rockchip,rk3568-i2s-tdm"; + reg = <0x00 0xfe430000 0x00 0x1000>; + interrupts = <0x00 0x37 0x04>; + clocks = <0x23 0x53 0x23 0x57 0x23 0x3c>; + clock-names = "mclk_tx\0mclk_rx\0hclk"; + dmas = <0xd5 0x06 0xd5 0x07>; + dma-names = "tx\0rx"; + resets = <0x23 0x55 0x23 0x56>; + reset-names = "tx-m\0rx-m"; + rockchip,cru = <0x23>; + rockchip,grf = <0x3b>; + rockchip,clk-trcm = <0x01>; + #sound-dai-cells = <0x00>; + pinctrl-names = "default"; + pinctrl-0 = <0xde 0xdf 0xe0 0xe1>; + status = "disabled"; + phandle = <0x144>; + }; + + pdm@fe440000 { + compatible = "rockchip,rk3568-pdm\0rockchip,pdm"; + reg = <0x00 0xfe440000 0x00 0x1000>; + clocks = <0x23 0x5a 0x23 0x59>; + clock-names = "pdm_clk\0pdm_hclk"; + dmas = <0xd5 0x09>; + dma-names = "rx"; + pinctrl-names = "default"; + pinctrl-0 = <0xe2 0xe3 0xe4 0xe5 0xe6 0xe7>; + #sound-dai-cells = <0x00>; + status = "disabled"; + phandle = <0x149>; + }; + + vad@fe450000 { + compatible = "rockchip,rk3568-vad"; + reg = <0x00 0xfe450000 0x00 0x10000>; + reg-names = "vad"; + clocks = <0x23 0x5b>; + clock-names = "hclk"; + interrupts = <0x00 0x89 0x04>; + rockchip,audio-src = <0xe8>; + rockchip,det-channel = <0x00>; + rockchip,mode = <0x00>; + #sound-dai-cells = <0x00>; + status = "disabled"; + rockchip,buffer-time-ms = <0x80>; + phandle = <0x14e>; + }; + + spdif@fe460000 { + compatible = "rockchip,rk3568-spdif"; + reg = <0x00 0xfe460000 0x00 0x1000>; + interrupts = <0x00 0x66 0x04>; + dmas = <0xd5 0x01>; + dma-names = "tx"; + clock-names = "mclk\0hclk"; + clocks = <0x23 0x5f 0x23 0x5c>; + #sound-dai-cells = <0x00>; + pinctrl-names = "default"; + pinctrl-0 = <0xe9>; + status = "disabled"; + phandle = <0x14c>; + }; + + audpwm@fe470000 { + compatible = "rockchip,rk3568-audio-pwm\0rockchip,audio-pwm-v1"; + reg = <0x00 0xfe470000 0x00 0x1000>; + clocks = <0x23 0x63 0x23 0x60>; + clock-names = "clk\0hclk"; + dmas = <0xd5 0x08>; + dma-names = "tx"; + #sound-dai-cells = <0x00>; + rockchip,sample-width-bits = <0x0b>; + rockchip,interpolat-points = <0x01>; + status = "disabled"; + }; + + codec-digital@fe478000 { + compatible = "rockchip,rk3568-codec-digital\0rockchip,codec-digital-v1"; + reg = <0x00 0xfe478000 0x00 0x1000>; + clocks = <0x23 0x67 0x23 0x66 0x23 0x65 0x23 0x64>; + clock-names = "adc\0dac\0i2c\0pclk"; + pinctrl-names = "default"; + pinctrl-0 = <0xea>; + resets = <0x23 0x5f>; + reset-names = "reset"; + rockchip,grf = <0x3b>; + #sound-dai-cells = <0x00>; + status = "disabled"; + phandle = <0x145>; + }; + + dmac@fe530000 { + compatible = "arm,pl330\0arm,primecell"; + reg = <0x00 0xfe530000 0x00 0x4000>; + interrupts = <0x00 0x0e 0x04 0x00 0x0d 0x04>; + clocks = <0x23 0x10d>; + clock-names = "apb_pclk"; + #dma-cells = <0x01>; + arm,pl330-periph-burst; + phandle = <0x4e>; + }; + + dmac@fe550000 { + compatible = "arm,pl330\0arm,primecell"; + reg = <0x00 0xfe550000 0x00 0x4000>; + interrupts = <0x00 0x10 0x04 0x00 0x0f 0x04>; + clocks = <0x23 0x10d>; + clock-names = "apb_pclk"; + #dma-cells = <0x01>; + arm,pl330-periph-burst; + phandle = <0xd5>; + }; + + rkscr@fe560000 { + compatible = "rockchip-scr"; + reg = <0x00 0xfe560000 0x00 0x10000>; + interrupts = <0x00 0x61 0x04>; + pinctrl-names = "default"; + pinctrl-0 = <0xeb>; + clocks = <0x23 0x114>; + clock-names = "g_pclk_sim_card"; + status = "disabled"; + }; + + can@fe570000 { + compatible = "rockchip,rk3568-can-2.0"; + reg = <0x00 0xfe570000 0x00 0x1000>; + interrupts = <0x00 0x01 0x04>; + clocks = <0x23 0x141 0x23 0x140>; + clock-names = "baudclk\0apb_pclk"; + resets = <0x23 0x155 0x23 0x154>; + reset-names = "can\0can-apb"; + tx-fifo-depth = <0x01>; + rx-fifo-depth = <0x06>; + status = "disabled"; + }; + + can@fe580000 { + compatible = "rockchip,rk3568-can-2.0"; + reg = <0x00 0xfe580000 0x00 0x1000>; + interrupts = <0x00 0x02 0x04>; + clocks = <0x23 0x143 0x23 0x142>; + clock-names = "baudclk\0apb_pclk"; + resets = <0x23 0x157 0x23 0x156>; + reset-names = "can\0can-apb"; + tx-fifo-depth = <0x01>; + rx-fifo-depth = <0x06>; + status = "okay"; + assigned-clocks = <0x23 0x143>; + assigned-clock-rates = <0xbebc200>; + pinctrl-names = "default"; + pinctrl-0 = <0xec>; + }; + + can@fe590000 { + compatible = "rockchip,rk3568-can-2.0"; + reg = <0x00 0xfe590000 0x00 0x1000>; + interrupts = <0x00 0x03 0x04>; + clocks = <0x23 0x145 0x23 0x144>; + clock-names = "baudclk\0apb_pclk"; + resets = <0x23 0x159 0x23 0x158>; + reset-names = "can\0can-apb"; + tx-fifo-depth = <0x01>; + rx-fifo-depth = <0x06>; + status = "disabled"; + assigned-clocks = <0x23 0x145>; + assigned-clock-rates = <0xbebc200>; + pinctrl-names = "default"; + pinctrl-0 = <0xed>; + }; + + i2c@fe5a0000 { + compatible = "rockchip,rk3399-i2c"; + reg = <0x00 0xfe5a0000 0x00 0x1000>; + clocks = <0x23 0x148 0x23 0x147>; + clock-names = "i2c\0pclk"; + interrupts = <0x00 0x2f 0x04>; + pinctrl-names = "default"; + pinctrl-0 = <0xee>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "okay"; + clock-frequency = <0x186a0>; + + gpio@21 { + status = "disabled"; + compatible = "nxp,pca9555"; + reg = <0x21>; + gpio-controller; + #gpio-cells = <0x02>; + gpio-group-num = <0xc8>; + phandle = <0x102>; + }; + + gt1x@14 { + status = "disabled"; + compatible = "goodix,gt1x"; + reg = <0x14>; + pinctrl-names = "default"; + pinctrl-0 = <0xef>; + goodix,rst-gpio = <0x3f 0x0e 0x00>; + goodix,irq-gpio = <0x3f 0x0d 0x08>; + }; + }; + + i2c@fe5b0000 { + compatible = "rockchip,rk3399-i2c"; + reg = <0x00 0xfe5b0000 0x00 0x1000>; + clocks = <0x23 0x14a 0x23 0x149>; + clock-names = "i2c\0pclk"; + interrupts = <0x00 0x30 0x04>; + pinctrl-names = "default"; + pinctrl-0 = <0xf0>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "disabled"; + }; + + i2c@fe5c0000 { + compatible = "rockchip,rk3399-i2c"; + reg = <0x00 0xfe5c0000 0x00 0x1000>; + clocks = <0x23 0x14c 0x23 0x14b>; + clock-names = "i2c\0pclk"; + interrupts = <0x00 0x31 0x04>; + pinctrl-names = "default"; + pinctrl-0 = <0xf1>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "disabled"; + }; + + i2c@fe5d0000 { + compatible = "rockchip,rk3399-i2c"; + reg = <0x00 0xfe5d0000 0x00 0x1000>; + clocks = <0x23 0x14e 0x23 0x14d>; + clock-names = "i2c\0pclk"; + interrupts = <0x00 0x32 0x04>; + pinctrl-names = "default"; + pinctrl-0 = <0xf2>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "okay"; + clock-frequency = <0x61a80>; + + gc8034@37 { + compatible = "galaxycore,gc8034"; + status = "disabled"; + reg = <0x37>; + clocks = <0x23 0xd6>; + clock-names = "xvclk"; + pinctrl-names = "default"; + pinctrl-0 = <0xf3>; + reset-gpios = <0x4a 0x0e 0x01>; + pwdn-gpios = <0xf4 0x0c 0x01>; + rockchip,grf = <0x3b>; + rockchip,camera-module-index = <0x00>; + rockchip,camera-module-facing = "back"; + rockchip,camera-module-name = "RK-CMK-8M-2-v1"; + rockchip,camera-module-lens-name = "CK8401"; + + port { + + endpoint { + remote-endpoint = <0xf5>; + data-lanes = <0x01 0x02 0x03 0x04>; + phandle = <0x130>; + }; + }; + }; + + os04a10@36 { + status = "disabled"; + compatible = "ovti,os04a10"; + reg = <0x36>; + clocks = <0x23 0xd6>; + clock-names = "xvclk"; + power-domains = <0x25 0x08>; + pinctrl-names = "default"; + pinctrl-0 = <0xf3>; + reset-gpios = <0x4a 0x0e 0x01>; + pwdn-gpios = <0xf4 0x0c 0x00>; + rockchip,camera-module-index = <0x00>; + rockchip,camera-module-facing = "back"; + rockchip,camera-module-name = "CMK-OT1607-FV1"; + rockchip,camera-module-lens-name = "M12-40IRC-4MP-F16"; + + port { + + endpoint { + remote-endpoint = <0xf6>; + data-lanes = <0x01 0x02 0x03 0x04>; + phandle = <0x12f>; + }; + }; + }; + + ov5695@36 { + status = "disabled"; + compatible = "ovti,ov5695"; + reg = <0x36>; + clocks = <0x23 0xd6>; + clock-names = "xvclk"; + power-domains = <0x25 0x08>; + pinctrl-names = "default"; + pinctrl-0 = <0xf3>; + reset-gpios = <0x4a 0x0e 0x00>; + pwdn-gpios = <0xf4 0x0c 0x00>; + rockchip,camera-module-index = <0x00>; + rockchip,camera-module-facing = "back"; + rockchip,camera-module-name = "TongJu"; + rockchip,camera-module-lens-name = "CHT842-MD"; + + port { + + endpoint { + remote-endpoint = <0xf7>; + data-lanes = <0x01 0x02>; + phandle = <0x131>; + }; + }; + }; + + XC7160b@1b { + status = "okay"; + compatible = "firefly,xc7160"; + reg = <0x1b>; + clocks = <0x23 0xd6>; + clock-names = "xvclk"; + power-domains = <0x25 0x08>; + pinctrl-names = "default"; + pinctrl-0 = <0xf3>; + reset-gpios = <0x3f 0x1d 0x00>; + pwdn-gpios = <0xf4 0x0c 0x00>; + firefly,clkout-enabled-index = <0x00>; + rockchip,camera-module-index = <0x00>; + rockchip,camera-module-facing = "back"; + rockchip,camera-module-name = "NC"; + rockchip,camera-module-lens-name = "NC"; + + port { + + endpoint { + remote-endpoint = <0xf8>; + data-lanes = <0x01 0x02 0x03 0x04>; + phandle = <0x132>; + }; + }; + }; + + imx415@37 { + status = "okay"; + compatible = "sony,imx415"; + reg = <0x37>; + clocks = <0x23 0xd6>; + clock-names = "xvclk"; + power-domains = <0x25 0x08>; + pinctrl-names = "default"; + pinctrl-0 = <0xf3>; + reset-gpios = <0x3f 0x1d 0x01>; + pwdn-gpios = <0xf4 0x0c 0x00>; + firefly,clkout-enabled-index = <0x00>; + rockchip,camera-module-index = <0x00>; + rockchip,camera-module-facing = "back"; + rockchip,camera-module-name = "CMK-OT2022-PX1"; + rockchip,camera-module-lens-name = "IR0147-50IRC-8M-F20"; + + port { + + endpoint { + remote-endpoint = <0xf9>; + data-lanes = <0x01 0x02 0x03 0x04>; + phandle = <0x133>; + }; + }; + }; + }; + + i2c@fe5e0000 { + compatible = "rockchip,rk3399-i2c"; + reg = <0x00 0xfe5e0000 0x00 0x1000>; + clocks = <0x23 0x150 0x23 0x14f>; + clock-names = "i2c\0pclk"; + interrupts = <0x00 0x33 0x04>; + pinctrl-names = "default"; + pinctrl-0 = <0xfa>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "okay"; + + hym8563@51 { + status = "okay"; + compatible = "haoyu,hym8563"; + reg = <0x51>; + #clock-cells = <0x00>; + rtc-irq-gpio = <0x3f 0x1b 0x02>; + clock-frequency = <0x8000>; + }; + + mc3230sensor@4c { + compatible = "gs_mc3230"; + reg = <0x4c>; + type = <0x02>; + irq_enable = <0x00>; + poll_delay_ms = <0x1e>; + layout = <0x04>; + status = "okay"; + }; + + mxc6655xa@15 { + status = "disabled"; + compatible = "gs_mxc6655xa"; + pinctrl-names = "default"; + pinctrl-0 = <0xfb>; + reg = <0x15>; + irq-gpio = <0x4a 0x11 0x08>; + irq_enable = <0x00>; + poll_delay_ms = <0x1e>; + type = <0x02>; + power-off-in-suspend = <0x01>; + layout = <0x01>; + }; + }; + + timer@fe5f0000 { + compatible = "rockchip,rk3568-timer\0rockchip,rk3288-timer"; + reg = <0x00 0xfe5f0000 0x00 0x1000>; + interrupts = <0x00 0x6d 0x04>; + clocks = <0x23 0x16c 0x23 0x16d>; + clock-names = "pclk\0timer"; + }; + + watchdog@fe600000 { + compatible = "snps,dw-wdt"; + reg = <0x00 0xfe600000 0x00 0x100>; + clocks = <0x23 0x116 0x23 0x115>; + clock-names = "tclk\0pclk"; + interrupts = <0x00 0x95 0x04>; + status = "okay"; + }; + + spi@fe610000 { + compatible = "rockchip,rk3066-spi"; + reg = <0x00 0xfe610000 0x00 0x1000>; + interrupts = <0x00 0x67 0x04>; + #address-cells = <0x01>; + #size-cells = <0x00>; + clocks = <0x23 0x152 0x23 0x151>; + clock-names = "spiclk\0apb_pclk"; + dmas = <0x4e 0x14 0x4e 0x15>; + dma-names = "tx\0rx"; + pinctrl-names = "default\0high_speed"; + pinctrl-0 = <0xfc 0xfd 0xfe>; + pinctrl-1 = <0xfc 0xfd 0xff>; + num-cs = <0x02>; + status = "disabled"; + }; + + spi@fe620000 { + compatible = "rockchip,rk3066-spi"; + reg = <0x00 0xfe620000 0x00 0x1000>; + interrupts = <0x00 0x68 0x04>; + #address-cells = <0x01>; + #size-cells = <0x00>; + clocks = <0x23 0x154 0x23 0x153>; + clock-names = "spiclk\0apb_pclk"; + dmas = <0x4e 0x16 0x4e 0x17>; + dma-names = "tx\0rx"; + pinctrl-names = "default\0high_speed"; + pinctrl-0 = <0x100>; + pinctrl-1 = <0x101>; + num-cs = <0x02>; + status = "disabled"; + max-freq = <0x2dc6c00>; + dev-port = <0x00>; + + spi_wk2xxx@0 { + status = "disabled"; + compatible = "firefly,spi-wk2xxx"; + reg = <0x00>; + spi-max-frequency = <0x989680>; + power-gpio = <0x102 0x0f 0x00>; + reset-gpio = <0x102 0x09 0x00>; + irq-gpio = <0x3f 0x06 0x02>; + cs-gpio = <0x4a 0x01 0x00>; + }; + }; + + spi@fe630000 { + compatible = "rockchip,rk3066-spi"; + reg = <0x00 0xfe630000 0x00 0x1000>; + interrupts = <0x00 0x69 0x04>; + #address-cells = <0x01>; + #size-cells = <0x00>; + clocks = <0x23 0x156 0x23 0x155>; + clock-names = "spiclk\0apb_pclk"; + dmas = <0x4e 0x18 0x4e 0x19>; + dma-names = "tx\0rx"; + pinctrl-names = "default\0high_speed"; + pinctrl-0 = <0x103 0x104 0x105>; + pinctrl-1 = <0x103 0x104 0x106>; + num-cs = <0x02>; + status = "disabled"; + }; + + spi@fe640000 { + compatible = "rockchip,rk3066-spi"; + reg = <0x00 0xfe640000 0x00 0x1000>; + interrupts = <0x00 0x6a 0x04>; + #address-cells = <0x01>; + #size-cells = <0x00>; + clocks = <0x23 0x158 0x23 0x157>; + clock-names = "spiclk\0apb_pclk"; + dmas = <0x4e 0x1a 0x4e 0x1b>; + dma-names = "tx\0rx"; + pinctrl-names = "default\0high_speed"; + pinctrl-0 = <0x107 0x108 0x109>; + pinctrl-1 = <0x107 0x108 0x10a>; + num-cs = <0x02>; + status = "disabled"; + }; + + serial@fe650000 { + compatible = "rockchip,rk3568-uart\0snps,dw-apb-uart"; + reg = <0x00 0xfe650000 0x00 0x100>; + interrupts = <0x00 0x75 0x04>; + clocks = <0x23 0x11f 0x23 0x11c>; + clock-names = "baudclk\0apb_pclk"; + reg-shift = <0x02>; + reg-io-width = <0x04>; + dmas = <0x4e 0x02 0x4e 0x03>; + pinctrl-names = "default"; + pinctrl-0 = <0x10b>; + status = "disabled"; + }; + + serial@fe660000 { + compatible = "rockchip,rk3568-uart\0snps,dw-apb-uart"; + reg = <0x00 0xfe660000 0x00 0x100>; + interrupts = <0x00 0x76 0x04>; + clocks = <0x23 0x123 0x23 0x120>; + clock-names = "baudclk\0apb_pclk"; + reg-shift = <0x02>; + reg-io-width = <0x04>; + dmas = <0x4e 0x04 0x4e 0x05>; + pinctrl-names = "default"; + pinctrl-0 = <0x10c>; + status = "disabled"; + }; + + serial@fe670000 { + compatible = "rockchip,rk3568-uart\0snps,dw-apb-uart"; + reg = <0x00 0xfe670000 0x00 0x100>; + interrupts = <0x00 0x77 0x04>; + clocks = <0x23 0x127 0x23 0x124>; + clock-names = "baudclk\0apb_pclk"; + reg-shift = <0x02>; + reg-io-width = <0x04>; + dmas = <0x4e 0x06 0x4e 0x07>; + pinctrl-names = "default"; + pinctrl-0 = <0x10d>; + status = "okay"; + }; + + serial@fe680000 { + compatible = "rockchip,rk3568-uart\0snps,dw-apb-uart"; + reg = <0x00 0xfe680000 0x00 0x100>; + interrupts = <0x00 0x78 0x04>; + clocks = <0x23 0x12b 0x23 0x128>; + clock-names = "baudclk\0apb_pclk"; + reg-shift = <0x02>; + reg-io-width = <0x04>; + dmas = <0x4e 0x08 0x4e 0x09>; + pinctrl-names = "default"; + pinctrl-0 = <0x10e>; + status = "okay"; + }; + + serial@fe690000 { + compatible = "rockchip,rk3568-uart\0snps,dw-apb-uart"; + reg = <0x00 0xfe690000 0x00 0x100>; + interrupts = <0x00 0x79 0x04>; + clocks = <0x23 0x12f 0x23 0x12c>; + clock-names = "baudclk\0apb_pclk"; + reg-shift = <0x02>; + reg-io-width = <0x04>; + dmas = <0x4e 0x0a 0x4e 0x0b>; + pinctrl-names = "default"; + pinctrl-0 = <0x10f>; + status = "disabled"; + }; + + serial@fe6a0000 { + compatible = "rockchip,rk3568-uart\0snps,dw-apb-uart"; + reg = <0x00 0xfe6a0000 0x00 0x100>; + interrupts = <0x00 0x7a 0x04>; + clocks = <0x23 0x133 0x23 0x130>; + clock-names = "baudclk\0apb_pclk"; + reg-shift = <0x02>; + reg-io-width = <0x04>; + dmas = <0x4e 0x0c 0x4e 0x0d>; + pinctrl-names = "default"; + pinctrl-0 = <0x110>; + status = "disabled"; + }; + + serial@fe6b0000 { + compatible = "rockchip,rk3568-uart\0snps,dw-apb-uart"; + reg = <0x00 0xfe6b0000 0x00 0x100>; + interrupts = <0x00 0x7b 0x04>; + clocks = <0x23 0x137 0x23 0x134>; + clock-names = "baudclk\0apb_pclk"; + reg-shift = <0x02>; + reg-io-width = <0x04>; + dmas = <0x4e 0x0e 0x4e 0x0f>; + pinctrl-names = "default"; + pinctrl-0 = <0x111>; + status = "okay"; + }; + + serial@fe6c0000 { + compatible = "rockchip,rk3568-uart\0snps,dw-apb-uart"; + reg = <0x00 0xfe6c0000 0x00 0x100>; + interrupts = <0x00 0x7c 0x04>; + clocks = <0x23 0x13b 0x23 0x138>; + clock-names = "baudclk\0apb_pclk"; + reg-shift = <0x02>; + reg-io-width = <0x04>; + dmas = <0x4e 0x10 0x4e 0x11>; + pinctrl-names = "default"; + pinctrl-0 = <0x112 0x113>; + status = "okay"; + }; + + serial@fe6d0000 { + compatible = "rockchip,rk3568-uart\0snps,dw-apb-uart"; + reg = <0x00 0xfe6d0000 0x00 0x100>; + interrupts = <0x00 0x7d 0x04>; + clocks = <0x23 0x13f 0x23 0x13c>; + clock-names = "baudclk\0apb_pclk"; + reg-shift = <0x02>; + reg-io-width = <0x04>; + dmas = <0x4e 0x12 0x4e 0x13>; + pinctrl-names = "default"; + pinctrl-0 = <0x114>; + status = "okay"; + }; + + pwm@fe6e0000 { + compatible = "rockchip,rk3568-pwm\0rockchip,rk3328-pwm"; + reg = <0x00 0xfe6e0000 0x00 0x10>; + interrupts = <0x00 0x53 0x04>; + #pwm-cells = <0x03>; + pinctrl-names = "active"; + pinctrl-0 = <0x115>; + clocks = <0x23 0x15a 0x23 0x159>; + clock-names = "pwm\0pclk"; + status = "okay"; + }; + + pwm@fe6e0010 { + compatible = "rockchip,rk3568-pwm\0rockchip,rk3328-pwm"; + reg = <0x00 0xfe6e0010 0x00 0x10>; + interrupts = <0x00 0x53 0x04>; + #pwm-cells = <0x03>; + pinctrl-names = "active"; + pinctrl-0 = <0x116>; + clocks = <0x23 0x15a 0x23 0x159>; + clock-names = "pwm\0pclk"; + status = "okay"; + }; + + pwm@fe6e0020 { + compatible = "rockchip,rk3568-pwm\0rockchip,rk3328-pwm"; + reg = <0x00 0xfe6e0020 0x00 0x10>; + interrupts = <0x00 0x53 0x04>; + #pwm-cells = <0x03>; + pinctrl-names = "active"; + pinctrl-0 = <0x117>; + clocks = <0x23 0x15a 0x23 0x159>; + clock-names = "pwm\0pclk"; + status = "disabled"; + }; + + pwm@fe6e0030 { + compatible = "rockchip,remotectl-pwm"; + reg = <0x00 0xfe6e0030 0x00 0x10>; + interrupts = <0x00 0x53 0x04>; + #pwm-cells = <0x03>; + pinctrl-names = "default"; + pinctrl-0 = <0x118>; + clocks = <0x23 0x15a 0x23 0x159>; + clock-names = "pwm\0pclk"; + status = "okay"; + remote_pwm_id = <0x03>; + handle_cpu_id = <0x01>; + remote_support_psci = <0x00>; + + ir_key_firefly { + rockchip,usercode = <0xff00>; + rockchip,key_table = <0xeb 0x74 0xec 0x8b 0xfe 0x9e 0xb7 0x66 0xa3 0x96 0xf4 0x73 0xa7 0x72 0xf8 0xe8 0xfc 0x67 0xfd 0x6c 0xf1 0x69 0xe5 0x6a>; + }; + }; + + pwm@fe6f0000 { + compatible = "rockchip,rk3568-pwm\0rockchip,rk3328-pwm"; + reg = <0x00 0xfe6f0000 0x00 0x10>; + interrupts = <0x00 0x54 0x04>; + #pwm-cells = <0x03>; + pinctrl-names = "active"; + pinctrl-0 = <0x119>; + clocks = <0x23 0x15d 0x23 0x15c>; + clock-names = "pwm\0pclk"; + status = "disabled"; + }; + + pwm@fe6f0010 { + compatible = "rockchip,rk3568-pwm\0rockchip,rk3328-pwm"; + reg = <0x00 0xfe6f0010 0x00 0x10>; + interrupts = <0x00 0x54 0x04>; + #pwm-cells = <0x03>; + pinctrl-names = "active"; + pinctrl-0 = <0x11a>; + clocks = <0x23 0x15d 0x23 0x15c>; + clock-names = "pwm\0pclk"; + status = "disabled"; + }; + + pwm@fe6f0020 { + compatible = "rockchip,rk3568-pwm\0rockchip,rk3328-pwm"; + reg = <0x00 0xfe6f0020 0x00 0x10>; + interrupts = <0x00 0x54 0x04>; + #pwm-cells = <0x03>; + pinctrl-names = "active"; + pinctrl-0 = <0x11b>; + clocks = <0x23 0x15d 0x23 0x15c>; + clock-names = "pwm\0pclk"; + status = "disabled"; + }; + + pwm@fe6f0030 { + compatible = "rockchip,rk3568-pwm\0rockchip,rk3328-pwm"; + reg = <0x00 0xfe6f0030 0x00 0x10>; + interrupts = <0x00 0x54 0x04 0x00 0x58 0x04>; + #pwm-cells = <0x03>; + pinctrl-names = "active"; + pinctrl-0 = <0x11c>; + clocks = <0x23 0x15d 0x23 0x15c>; + clock-names = "pwm\0pclk"; + status = "disabled"; + phandle = <0x157>; + }; + + pwm@fe700000 { + compatible = "rockchip,rk3568-pwm\0rockchip,rk3328-pwm"; + reg = <0x00 0xfe700000 0x00 0x10>; + interrupts = <0x00 0x55 0x04>; + #pwm-cells = <0x03>; + pinctrl-names = "active"; + pinctrl-0 = <0x11d>; + clocks = <0x23 0x160 0x23 0x15f>; + clock-names = "pwm\0pclk"; + status = "disabled"; + }; + + pwm@fe700010 { + compatible = "rockchip,rk3568-pwm\0rockchip,rk3328-pwm"; + reg = <0x00 0xfe700010 0x00 0x10>; + interrupts = <0x00 0x55 0x04>; + #pwm-cells = <0x03>; + pinctrl-names = "active"; + pinctrl-0 = <0x11e>; + clocks = <0x23 0x160 0x23 0x15f>; + clock-names = "pwm\0pclk"; + status = "disabled"; + }; + + pwm@fe700020 { + compatible = "rockchip,rk3568-pwm\0rockchip,rk3328-pwm"; + reg = <0x00 0xfe700020 0x00 0x10>; + interrupts = <0x00 0x55 0x04>; + #pwm-cells = <0x03>; + pinctrl-names = "active"; + pinctrl-0 = <0x11f>; + clocks = <0x23 0x160 0x23 0x15f>; + clock-names = "pwm\0pclk"; + status = "disabled"; + }; + + pwm@fe700030 { + compatible = "rockchip,rk3568-pwm\0rockchip,rk3328-pwm"; + reg = <0x00 0xfe700030 0x00 0x10>; + interrupts = <0x00 0x55 0x04 0x00 0x59 0x04>; + #pwm-cells = <0x03>; + pinctrl-names = "active"; + pinctrl-0 = <0x120>; + clocks = <0x23 0x160 0x23 0x15f>; + clock-names = "pwm\0pclk"; + status = "disabled"; + }; + + tsadc@fe710000 { + compatible = "rockchip,rk3568-tsadc"; + reg = <0x00 0xfe710000 0x00 0x100>; + interrupts = <0x00 0x73 0x04>; + rockchip,grf = <0x3b>; + clocks = <0x23 0x111 0x23 0x10f>; + clock-names = "tsadc\0apb_pclk"; + assigned-clocks = <0x23 0x110 0x23 0x111>; + assigned-clock-rates = <0x1036640 0xaae60>; + resets = <0x23 0x182 0x23 0x181 0x23 0x1d7>; + reset-names = "tsadc\0tsadc-apb\0tsadc-phy"; + #thermal-sensor-cells = <0x01>; + nvmem-cells = <0x121 0x122>; + nvmem-cell-names = "trim_base\0trim_base_frac"; + rockchip,hw-tshut-temp = <0x1d4c0>; + rockchip,hw-tshut-mode = <0x00>; + rockchip,hw-tshut-polarity = <0x00>; + pinctrl-names = "gpio\0otpout"; + pinctrl-0 = <0x123>; + pinctrl-1 = <0x124>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "okay"; + phandle = <0x1f>; + + tsadc@0 { + reg = <0x00>; + nvmem-cells = <0x125 0x126>; + nvmem-cell-names = "trim_l\0trim_h"; + }; + + tsadc@1 { + reg = <0x01>; + nvmem-cells = <0x127 0x128>; + nvmem-cell-names = "trim_l\0trim_h"; + }; + }; + + saradc@fe720000 { + compatible = "rockchip,rk3568-saradc\0rockchip,rk3399-saradc"; + reg = <0x00 0xfe720000 0x00 0x100>; + interrupts = <0x00 0x5d 0x04>; + #io-channel-cells = <0x01>; + clocks = <0x23 0x113 0x23 0x112>; + clock-names = "saradc\0apb_pclk"; + resets = <0x23 0x180>; + reset-names = "saradc-apb"; + status = "okay"; + vref-supply = <0x129>; + phandle = <0x49>; + }; + + mailbox@fe780000 { + compatible = "rockchip,rk3568-mailbox\0rockchip,rk3368-mailbox"; + reg = <0x00 0xfe780000 0x00 0x1000>; + interrupts = <0x00 0xb7 0x04 0x00 0xb8 0x04 0x00 0xb9 0x04 0x00 0xba 0x04>; + clocks = <0x23 0x11b>; + clock-names = "pclk_mailbox"; + #mbox-cells = <0x01>; + status = "disabled"; + }; + + phy@fe820000 { + compatible = "rockchip,rk3568-naneng-combphy"; + reg = <0x00 0xfe820000 0x00 0x100>; + #phy-cells = <0x01>; + clocks = <0x3a 0x1f 0x23 0x17c 0x23 0x7f>; + clock-names = "refclk\0apbclk\0pipe_clk"; + assigned-clocks = <0x3a 0x1f>; + assigned-clock-rates = <0x5f5e100>; + resets = <0x23 0x1c4 0x23 0x1c5>; + reset-names = "combphy-apb\0combphy"; + rockchip,pipe-grf = <0x12a>; + rockchip,pipe-phy-grf = <0x12b>; + status = "okay"; + phandle = <0x24>; + }; + + phy@fe830000 { + compatible = "rockchip,rk3568-naneng-combphy"; + reg = <0x00 0xfe830000 0x00 0x100>; + #phy-cells = <0x01>; + clocks = <0x3a 0x22 0x23 0x17d 0x23 0x7f>; + clock-names = "refclk\0apbclk\0pipe_clk"; + assigned-clocks = <0x3a 0x22>; + assigned-clock-rates = <0x5f5e100>; + resets = <0x23 0x1c6 0x23 0x1c7>; + reset-names = "combphy-apb\0combphy"; + rockchip,pipe-grf = <0x12a>; + rockchip,pipe-phy-grf = <0x12c>; + status = "okay"; + phandle = <0x26>; + }; + + phy@fe840000 { + compatible = "rockchip,rk3568-naneng-combphy"; + reg = <0x00 0xfe840000 0x00 0x100>; + #phy-cells = <0x01>; + clocks = <0x3a 0x25 0x23 0x17e 0x23 0x7f>; + clock-names = "refclk\0apbclk\0pipe_clk"; + assigned-clocks = <0x3a 0x25>; + assigned-clock-rates = <0x5f5e100>; + resets = <0x23 0x1c8 0x23 0x1c9>; + reset-names = "combphy-apb\0combphy"; + rockchip,pipe-grf = <0x12a>; + rockchip,pipe-phy-grf = <0x12d>; + status = "okay"; + phandle = <0x27>; + }; + + phy@fe850000 { + compatible = "rockchip,rk3568-dsi-dphy\0rockchip,rk3568-video-phy"; + reg = <0x00 0xfe850000 0x00 0x10000 0x00 0xfe060000 0x00 0x10000>; + reg-names = "phy\0host"; + clocks = <0x3a 0x17 0x23 0x17a 0x23 0xe8>; + clock-names = "ref\0pclk\0pclk_host"; + #clock-cells = <0x00>; + resets = <0x23 0x1bb>; + reset-names = "apb"; + power-domains = <0x25 0x09>; + #phy-cells = <0x00>; + status = "disabled"; + phandle = <0x34>; + }; + + phy@fe860000 { + compatible = "rockchip,rk3568-dsi-dphy\0rockchip,rk3568-video-phy"; + reg = <0x00 0xfe860000 0x00 0x10000 0x00 0xfe070000 0x00 0x10000>; + reg-names = "phy\0host"; + clocks = <0x3a 0x19 0x23 0x17b 0x23 0xe9>; + clock-names = "ref\0pclk\0pclk_host"; + #clock-cells = <0x00>; + resets = <0x23 0x1bc>; + reset-names = "apb"; + power-domains = <0x25 0x09>; + #phy-cells = <0x00>; + status = "disabled"; + phandle = <0x36>; + }; + + csi2-dphy-hw@fe870000 { + compatible = "rockchip,rk3568-csi2-dphy-hw"; + reg = <0x00 0xfe870000 0x00 0x1000>; + clocks = <0x23 0x179>; + clock-names = "pclk"; + rockchip,grf = <0x3b>; + status = "okay"; + phandle = <0x12e>; + }; + + csi2-dphy0 { + compatible = "rockchip,rk3568-csi2-dphy"; + rockchip,hw = <0x12e>; + status = "okay"; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + reg = <0x00>; + #address-cells = <0x01>; + #size-cells = <0x00>; + + endpoint@1 { + reg = <0x01>; + remote-endpoint = <0x12f>; + data-lanes = <0x01 0x02 0x03 0x04>; + phandle = <0xf6>; + }; + + endpoint@2 { + reg = <0x02>; + remote-endpoint = <0x130>; + data-lanes = <0x01 0x02 0x03 0x04>; + phandle = <0xf5>; + }; + + endpoint@3 { + reg = <0x03>; + remote-endpoint = <0x131>; + data-lanes = <0x01 0x02>; + phandle = <0xf7>; + }; + + endpoint@4 { + reg = <0x04>; + remote-endpoint = <0x132>; + data-lanes = <0x01 0x02 0x03 0x04>; + phandle = <0xf8>; + }; + + endpoint@5 { + reg = <0x05>; + remote-endpoint = <0x133>; + data-lanes = <0x01 0x02 0x03 0x04>; + phandle = <0xf9>; + }; + }; + + port@1 { + reg = <0x01>; + #address-cells = <0x01>; + #size-cells = <0x00>; + + endpoint@0 { + reg = <0x00>; + remote-endpoint = <0x134>; + phandle = <0x8c>; + }; + }; + }; + }; + + csi2-dphy1 { + compatible = "rockchip,rk3568-csi2-dphy"; + rockchip,hw = <0x12e>; + status = "disabled"; + }; + + csi2-dphy2 { + compatible = "rockchip,rk3568-csi2-dphy"; + rockchip,hw = <0x12e>; + status = "disabled"; + }; + + usb2-phy@fe8a0000 { + compatible = "rockchip,rk3568-usb2phy"; + reg = <0x00 0xfe8a0000 0x00 0x10000>; + interrupts = <0x00 0x87 0x04>; + clocks = <0x3a 0x13>; + clock-names = "phyclk"; + #clock-cells = <0x00>; + assigned-clocks = <0x23 0x0b>; + assigned-clock-parents = <0x29>; + clock-output-names = "usb480m_phy"; + rockchip,usbgrf = <0x135>; + status = "okay"; + phandle = <0x29>; + + host-port { + #phy-cells = <0x00>; + status = "okay"; + phy-supply = <0x136>; + phandle = <0x2b>; + }; + + otg-port { + #phy-cells = <0x00>; + status = "okay"; + phandle = <0x28>; + }; + }; + + usb2-phy@fe8b0000 { + compatible = "rockchip,rk3568-usb2phy"; + reg = <0x00 0xfe8b0000 0x00 0x10000>; + interrupts = <0x00 0x88 0x04>; + clocks = <0x3a 0x15>; + clock-names = "phyclk"; + #clock-cells = <0x00>; + rockchip,usbgrf = <0x137>; + status = "okay"; + phandle = <0x2c>; + + host-port { + #phy-cells = <0x00>; + status = "okay"; + phy-supply = <0x136>; + phandle = <0x2e>; + }; + + otg-port { + #phy-cells = <0x00>; + status = "okay"; + phy-supply = <0x136>; + phandle = <0x2d>; + }; + }; + + phy@fe8c0000 { + compatible = "rockchip,rk3568-pcie3-phy"; + reg = <0x00 0xfe8c0000 0x00 0x20000>; + #phy-cells = <0x00>; + clocks = <0x3a 0x26 0x3a 0x27 0x23 0x177>; + clock-names = "refclk_m\0refclk_n\0pclk"; + resets = <0x23 0x1be>; + reset-names = "phy"; + rockchip,phy-grf = <0x138>; + status = "okay"; + phandle = <0xc0>; + }; + + pinctrl { + compatible = "rockchip,rk3568-pinctrl"; + rockchip,grf = <0x3b>; + rockchip,pmu = <0x3c>; + #address-cells = <0x02>; + #size-cells = <0x02>; + ranges; + + gpio0@fdd60000 { + compatible = "rockchip,gpio-bank"; + reg = <0x00 0xfdd60000 0x00 0x100>; + interrupts = <0x00 0x21 0x04>; + clocks = <0x3a 0x2e 0x3a 0x0c>; + gpio-controller; + #gpio-cells = <0x02>; + interrupt-controller; + #interrupt-cells = <0x02>; + phandle = <0x3f>; + }; + + gpio1@fe740000 { + compatible = "rockchip,gpio-bank"; + reg = <0x00 0xfe740000 0x00 0x100>; + interrupts = <0x00 0x22 0x04>; + clocks = <0x23 0x163 0x23 0x164>; + gpio-controller; + #gpio-cells = <0x02>; + interrupt-controller; + #interrupt-cells = <0x02>; + phandle = <0x159>; + }; + + gpio2@fe750000 { + compatible = "rockchip,gpio-bank"; + reg = <0x00 0xfe750000 0x00 0x100>; + interrupts = <0x00 0x23 0x04>; + clocks = <0x23 0x165 0x23 0x166>; + gpio-controller; + #gpio-cells = <0x02>; + interrupt-controller; + #interrupt-cells = <0x02>; + phandle = <0x91>; + }; + + gpio3@fe760000 { + compatible = "rockchip,gpio-bank"; + reg = <0x00 0xfe760000 0x00 0x100>; + interrupts = <0x00 0x24 0x04>; + clocks = <0x23 0x167 0x23 0x168>; + gpio-controller; + #gpio-cells = <0x02>; + interrupt-controller; + #interrupt-cells = <0x02>; + phandle = <0x4a>; + }; + + gpio4@fe770000 { + compatible = "rockchip,gpio-bank"; + reg = <0x00 0xfe770000 0x00 0x100>; + interrupts = <0x00 0x25 0x04>; + clocks = <0x23 0x169 0x23 0x16a>; + gpio-controller; + #gpio-cells = <0x02>; + interrupt-controller; + #interrupt-cells = <0x02>; + phandle = <0xf4>; + }; + + pcfg-pull-up { + bias-pull-up; + phandle = <0x13b>; + }; + + pcfg-pull-down { + bias-pull-down; + phandle = <0x142>; + }; + + pcfg-pull-none { + bias-disable; + phandle = <0x139>; + }; + + pcfg-pull-none-drv-level-1 { + bias-disable; + drive-strength = <0x01>; + phandle = <0x13d>; + }; + + pcfg-pull-none-drv-level-2 { + bias-disable; + drive-strength = <0x02>; + phandle = <0x13c>; + }; + + pcfg-pull-none-drv-level-3 { + bias-disable; + drive-strength = <0x03>; + phandle = <0x141>; + }; + + pcfg-pull-up-drv-level-1 { + bias-pull-up; + drive-strength = <0x01>; + phandle = <0x140>; + }; + + pcfg-pull-up-drv-level-2 { + bias-pull-up; + drive-strength = <0x02>; + phandle = <0x13a>; + }; + + pcfg-pull-none-smt { + bias-disable; + input-schmitt-enable; + phandle = <0x13e>; + }; + + pcfg-output-low-pull-down { + output-low; + bias-pull-down; + phandle = <0x13f>; + }; + + acodec { + + acodec-pins { + rockchip,pins = <0x01 0x09 0x05 0x139 0x01 0x01 0x05 0x139 0x01 0x00 0x05 0x139 0x01 0x07 0x05 0x139 0x01 0x08 0x05 0x139 0x01 0x03 0x05 0x139 0x01 0x05 0x05 0x139>; + phandle = <0xea>; + }; + }; + + cam { + + vcc-cam { + rockchip,pins = <0x00 0x11 0x00 0x139>; + phandle = <0x158>; + }; + }; + + can1 { + + can1m1-pins { + rockchip,pins = <0x04 0x12 0x03 0x139 0x04 0x13 0x03 0x139>; + phandle = <0xec>; + }; + }; + + can2 { + + can2m0-pins { + rockchip,pins = <0x04 0x0c 0x03 0x139 0x04 0x0d 0x03 0x139>; + phandle = <0xed>; + }; + }; + + cif { + + cif-clk { + rockchip,pins = <0x04 0x10 0x01 0x139>; + phandle = <0xf3>; + }; + }; + + clk32k { + + clk32k-out0 { + rockchip,pins = <0x00 0x08 0x02 0x139>; + phandle = <0x22>; + }; + }; + + ebc { + + ebc-pins { + rockchip,pins = <0x04 0x10 0x02 0x139 0x04 0x0b 0x02 0x139 0x04 0x0c 0x02 0x139 0x04 0x06 0x02 0x139 0x04 0x11 0x02 0x139 0x03 0x16 0x02 0x139 0x03 0x17 0x02 0x139 0x03 0x18 0x02 0x139 0x03 0x19 0x02 0x139 0x03 0x1a 0x02 0x139 0x03 0x1b 0x02 0x139 0x03 0x1c 0x02 0x139 0x03 0x1d 0x02 0x139 0x03 0x1e 0x02 0x139 0x03 0x1f 0x02 0x139 0x04 0x00 0x02 0x139 0x04 0x01 0x02 0x139 0x04 0x02 0x02 0x139 0x04 0x03 0x02 0x139 0x04 0x04 0x02 0x139 0x04 0x05 0x02 0x139 0x04 0x0e 0x02 0x139 0x04 0x0f 0x02 0x139>; + phandle = <0x7c>; + }; + }; + + fspi { + + fspi-pins { + rockchip,pins = <0x01 0x18 0x01 0x139 0x01 0x1b 0x01 0x139 0x01 0x19 0x01 0x139 0x01 0x1a 0x01 0x139 0x01 0x17 0x02 0x139 0x01 0x1c 0x01 0x139>; + phandle = <0xd4>; + }; + }; + + gmac0 { + + gmac0-miim { + rockchip,pins = <0x02 0x13 0x02 0x139 0x02 0x14 0x02 0x139>; + phandle = <0xc8>; + }; + + gmac0-clkinout { + rockchip,pins = <0x02 0x12 0x02 0x139>; + phandle = <0xcd>; + }; + + gmac0-rx-bus2 { + rockchip,pins = <0x02 0x0e 0x01 0x139 0x02 0x0f 0x02 0x139 0x02 0x10 0x02 0x139>; + phandle = <0xca>; + }; + + gmac0-tx-bus2 { + rockchip,pins = <0x02 0x0b 0x01 0x13c 0x02 0x0c 0x01 0x13c 0x02 0x0d 0x01 0x139>; + phandle = <0xc9>; + }; + + gmac0-rgmii-clk { + rockchip,pins = <0x02 0x05 0x02 0x139 0x02 0x08 0x02 0x13d>; + phandle = <0xcb>; + }; + + gmac0-rgmii-bus { + rockchip,pins = <0x02 0x03 0x02 0x139 0x02 0x04 0x02 0x139 0x02 0x06 0x02 0x13c 0x02 0x07 0x02 0x13c>; + phandle = <0xcc>; + }; + }; + + gmac1 { + + gmac1m1-miim { + rockchip,pins = <0x04 0x0e 0x03 0x139 0x04 0x0f 0x03 0x139>; + phandle = <0x93>; + }; + + gmac1m1-clkinout { + rockchip,pins = <0x04 0x11 0x03 0x139>; + phandle = <0x98>; + }; + + gmac1m1-rx-bus2 { + rockchip,pins = <0x04 0x07 0x03 0x139 0x04 0x08 0x03 0x139 0x04 0x09 0x03 0x139>; + phandle = <0x95>; + }; + + gmac1m1-tx-bus2 { + rockchip,pins = <0x04 0x04 0x03 0x13c 0x04 0x05 0x03 0x13c 0x04 0x06 0x03 0x139>; + phandle = <0x94>; + }; + + gmac1m1-rgmii-clk { + rockchip,pins = <0x04 0x03 0x03 0x139 0x04 0x00 0x03 0x13d>; + phandle = <0x96>; + }; + + gmac1m1-rgmii-bus { + rockchip,pins = <0x04 0x01 0x03 0x139 0x04 0x02 0x03 0x139 0x03 0x1e 0x03 0x13c 0x03 0x1f 0x03 0x13c>; + phandle = <0x97>; + }; + }; + + hdmitx { + + hdmitxm0-cec { + rockchip,pins = <0x04 0x19 0x01 0x139>; + phandle = <0xac>; + }; + + hdmitx-scl { + rockchip,pins = <0x04 0x17 0x01 0x139>; + phandle = <0xaa>; + }; + + hdmitx-sda { + rockchip,pins = <0x04 0x18 0x01 0x139>; + phandle = <0xab>; + }; + }; + + i2c0 { + + i2c0-xfer { + rockchip,pins = <0x00 0x09 0x01 0x13e 0x00 0x0a 0x01 0x13e>; + phandle = <0x3d>; + }; + }; + + i2c1 { + + i2c1-xfer { + rockchip,pins = <0x00 0x0b 0x01 0x13e 0x00 0x0c 0x01 0x13e>; + phandle = <0xee>; + }; + }; + + i2c2 { + + i2c2m0-xfer { + rockchip,pins = <0x00 0x0d 0x01 0x13e 0x00 0x0e 0x01 0x13e>; + phandle = <0xf0>; + }; + }; + + i2c3 { + + i2c3m0-xfer { + rockchip,pins = <0x01 0x01 0x01 0x13e 0x01 0x00 0x01 0x13e>; + phandle = <0xf1>; + }; + }; + + i2c4 { + + i2c4m0-xfer { + rockchip,pins = <0x04 0x0b 0x01 0x13e 0x04 0x0a 0x01 0x13e>; + phandle = <0xf2>; + }; + }; + + i2c5 { + + i2c5m0-xfer { + rockchip,pins = <0x03 0x0b 0x04 0x13e 0x03 0x0c 0x04 0x13e>; + phandle = <0xfa>; + }; + }; + + i2s1 { + + i2s1m0-lrcktx { + rockchip,pins = <0x01 0x05 0x01 0x13e>; + phandle = <0xd7>; + }; + + i2s1m0-mclk { + rockchip,pins = <0x01 0x02 0x01 0x13e>; + phandle = <0x47>; + }; + + i2s1m0-sclktx { + rockchip,pins = <0x01 0x03 0x01 0x13e>; + phandle = <0xd6>; + }; + + i2s1m0-sdi0 { + rockchip,pins = <0x01 0x0b 0x01 0x139>; + phandle = <0xd8>; + }; + + i2s1m0-sdo0 { + rockchip,pins = <0x01 0x07 0x01 0x139>; + phandle = <0xd9>; + }; + }; + + i2s2 { + + i2s2m0-lrcktx { + rockchip,pins = <0x02 0x13 0x01 0x13e>; + phandle = <0xdb>; + }; + + i2s2m0-sclktx { + rockchip,pins = <0x02 0x12 0x01 0x13e>; + phandle = <0xda>; + }; + + i2s2m0-sdi { + rockchip,pins = <0x02 0x15 0x01 0x139>; + phandle = <0xdc>; + }; + + i2s2m0-sdo { + rockchip,pins = <0x02 0x14 0x01 0x139>; + phandle = <0xdd>; + }; + }; + + i2s3 { + + i2s3m0-lrck { + rockchip,pins = <0x03 0x04 0x04 0x13e>; + phandle = <0xdf>; + }; + + i2s3m0-sclk { + rockchip,pins = <0x03 0x03 0x04 0x13e>; + phandle = <0xde>; + }; + + i2s3m0-sdi { + rockchip,pins = <0x03 0x06 0x04 0x139>; + phandle = <0xe0>; + }; + + i2s3m0-sdo { + rockchip,pins = <0x03 0x05 0x04 0x139>; + phandle = <0xe1>; + }; + }; + + lcdc { + + lcdc-ctl { + rockchip,pins = <0x03 0x00 0x01 0x139 0x02 0x18 0x01 0x139 0x02 0x19 0x01 0x139 0x02 0x1a 0x01 0x139 0x02 0x1b 0x01 0x139 0x02 0x1c 0x01 0x139 0x02 0x1d 0x01 0x139 0x02 0x1e 0x01 0x139 0x02 0x1f 0x01 0x139 0x03 0x01 0x01 0x139 0x03 0x02 0x01 0x139 0x03 0x03 0x01 0x139 0x03 0x04 0x01 0x139 0x03 0x05 0x01 0x139 0x03 0x06 0x01 0x139 0x03 0x07 0x01 0x139 0x03 0x08 0x01 0x139 0x03 0x09 0x01 0x139 0x03 0x0a 0x01 0x139 0x03 0x0b 0x01 0x139 0x03 0x0c 0x01 0x139 0x03 0x0d 0x01 0x139 0x03 0x0e 0x01 0x139 0x03 0x0f 0x01 0x139 0x03 0x10 0x01 0x139 0x03 0x13 0x01 0x139 0x03 0x11 0x01 0x139 0x03 0x12 0x01 0x139>; + phandle = <0x39>; + }; + }; + + pdm { + + pdmm0-clk { + rockchip,pins = <0x01 0x06 0x03 0x139>; + phandle = <0xe2>; + }; + + pdmm0-clk1 { + rockchip,pins = <0x01 0x04 0x03 0x139>; + phandle = <0xe3>; + }; + + pdmm0-sdi0 { + rockchip,pins = <0x01 0x0b 0x02 0x139>; + phandle = <0xe4>; + }; + + pdmm0-sdi1 { + rockchip,pins = <0x01 0x0a 0x03 0x139>; + phandle = <0xe5>; + }; + + pdmm0-sdi2 { + rockchip,pins = <0x01 0x09 0x03 0x139>; + phandle = <0xe6>; + }; + + pdmm0-sdi3 { + rockchip,pins = <0x01 0x08 0x03 0x139>; + phandle = <0xe7>; + }; + }; + + pmic { + + pmic_int { + rockchip,pins = <0x00 0x03 0x00 0x13b>; + phandle = <0x40>; + }; + + soc_slppin_gpio { + rockchip,pins = <0x00 0x02 0x00 0x13f>; + phandle = <0x43>; + }; + + soc_slppin_slp { + rockchip,pins = <0x00 0x02 0x01 0x13b>; + phandle = <0x41>; + }; + + soc_slppin_rst { + rockchip,pins = <0x00 0x02 0x02 0x139>; + }; + + spk_ctl_gpio { + rockchip,pins = <0x03 0x15 0x00 0x13b>; + phandle = <0x48>; + }; + }; + + pwm0 { + + pwm0m0-pins { + rockchip,pins = <0x00 0x0f 0x01 0x139>; + phandle = <0x50>; + }; + }; + + pwm1 { + + pwm1m0-pins { + rockchip,pins = <0x00 0x10 0x01 0x139>; + phandle = <0x51>; + }; + }; + + pwm2 { + + pwm2m0-pins { + rockchip,pins = <0x00 0x11 0x01 0x139>; + phandle = <0x52>; + }; + }; + + pwm3 { + + pwm3-pins { + rockchip,pins = <0x00 0x12 0x01 0x139>; + phandle = <0x53>; + }; + }; + + pwm4 { + + pwm4-pins { + rockchip,pins = <0x00 0x13 0x01 0x139>; + phandle = <0x115>; + }; + }; + + pwm5 { + + pwm5-pins { + rockchip,pins = <0x00 0x14 0x01 0x139>; + phandle = <0x116>; + }; + }; + + pwm6 { + + pwm6-pins { + rockchip,pins = <0x00 0x15 0x01 0x139>; + phandle = <0x117>; + }; + }; + + pwm7 { + + pwm7-pins { + rockchip,pins = <0x00 0x16 0x01 0x139>; + phandle = <0x118>; + }; + }; + + pwm8 { + + pwm8m0-pins { + rockchip,pins = <0x03 0x09 0x05 0x139>; + phandle = <0x119>; + }; + }; + + pwm9 { + + pwm9m0-pins { + rockchip,pins = <0x03 0x0a 0x05 0x139>; + phandle = <0x11a>; + }; + }; + + pwm10 { + + pwm10m0-pins { + rockchip,pins = <0x03 0x0d 0x05 0x139>; + phandle = <0x11b>; + }; + }; + + pwm11 { + + pwm11m0-pins { + rockchip,pins = <0x03 0x0e 0x05 0x139>; + phandle = <0x11c>; + }; + }; + + pwm12 { + + pwm12m0-pins { + rockchip,pins = <0x03 0x0f 0x02 0x139>; + phandle = <0x11d>; + }; + }; + + pwm13 { + + pwm13m0-pins { + rockchip,pins = <0x03 0x10 0x02 0x139>; + phandle = <0x11e>; + }; + }; + + pwm14 { + + pwm14m0-pins { + rockchip,pins = <0x03 0x14 0x01 0x139>; + phandle = <0x11f>; + }; + }; + + pwm15 { + + pwm15m0-pins { + rockchip,pins = <0x03 0x15 0x01 0x139>; + phandle = <0x120>; + }; + }; + + scr { + + scr-pins { + rockchip,pins = <0x01 0x02 0x03 0x139 0x01 0x07 0x03 0x13b 0x01 0x03 0x03 0x13b 0x01 0x05 0x03 0x139>; + phandle = <0xeb>; + }; + }; + + sdmmc0 { + + sdmmc0-bus4 { + rockchip,pins = <0x01 0x1d 0x01 0x13a 0x01 0x1e 0x01 0x13a 0x01 0x1f 0x01 0x13a 0x02 0x00 0x01 0x13a>; + phandle = <0xd0>; + }; + + sdmmc0-clk { + rockchip,pins = <0x02 0x02 0x01 0x13a>; + phandle = <0xd1>; + }; + + sdmmc0-cmd { + rockchip,pins = <0x02 0x01 0x01 0x13a>; + phandle = <0xd2>; + }; + + sdmmc0-det { + rockchip,pins = <0x00 0x04 0x01 0x13b>; + phandle = <0xd3>; + }; + }; + + sdmmc2 { + + sdmmc2m0-bus4 { + rockchip,pins = <0x03 0x16 0x03 0x13a 0x03 0x17 0x03 0x13a 0x03 0x18 0x03 0x13a 0x03 0x19 0x03 0x13a>; + phandle = <0xb0>; + }; + + sdmmc2m0-clk { + rockchip,pins = <0x03 0x1b 0x03 0x13a>; + phandle = <0xb2>; + }; + + sdmmc2m0-cmd { + rockchip,pins = <0x03 0x1a 0x03 0x13a>; + phandle = <0xb1>; + }; + }; + + spdif { + + spdifm1-tx { + rockchip,pins = <0x03 0x15 0x02 0x139>; + phandle = <0xe9>; + }; + }; + + spi0 { + + spi0m0-pins { + rockchip,pins = <0x00 0x0d 0x02 0x139 0x00 0x15 0x02 0x139 0x00 0x0e 0x02 0x139>; + phandle = <0xfe>; + }; + + spi0m0-cs0 { + rockchip,pins = <0x00 0x16 0x02 0x139>; + phandle = <0xfc>; + }; + + spi0m0-cs1 { + rockchip,pins = <0x00 0x14 0x02 0x139>; + phandle = <0xfd>; + }; + }; + + spi1 { + + spi1m1-pins { + rockchip,pins = <0x03 0x13 0x03 0x139 0x03 0x12 0x03 0x139 0x03 0x11 0x03 0x139>; + phandle = <0x100>; + }; + }; + + spi2 { + + spi2m0-pins { + rockchip,pins = <0x02 0x11 0x04 0x139 0x02 0x12 0x04 0x139 0x02 0x13 0x04 0x139>; + phandle = <0x105>; + }; + + spi2m0-cs0 { + rockchip,pins = <0x02 0x14 0x04 0x139>; + phandle = <0x103>; + }; + + spi2m0-cs1 { + rockchip,pins = <0x02 0x15 0x04 0x139>; + phandle = <0x104>; + }; + }; + + spi3 { + + spi3m0-pins { + rockchip,pins = <0x04 0x0b 0x04 0x139 0x04 0x08 0x04 0x139 0x04 0x0a 0x04 0x139>; + phandle = <0x109>; + }; + + spi3m0-cs0 { + rockchip,pins = <0x04 0x06 0x04 0x139>; + phandle = <0x107>; + }; + + spi3m0-cs1 { + rockchip,pins = <0x04 0x07 0x04 0x139>; + phandle = <0x108>; + }; + }; + + tsadc { + + tsadc-shutorg { + rockchip,pins = <0x00 0x01 0x02 0x139>; + phandle = <0x124>; + }; + }; + + uart0 { + + uart0-xfer { + rockchip,pins = <0x00 0x10 0x03 0x13b 0x00 0x11 0x03 0x13b>; + phandle = <0x4f>; + }; + }; + + uart1 { + + uart1m0-xfer { + rockchip,pins = <0x02 0x0b 0x02 0x13b 0x02 0x0c 0x02 0x13b>; + phandle = <0x10b>; + }; + }; + + uart2 { + + uart2m0-xfer { + rockchip,pins = <0x00 0x18 0x01 0x13b 0x00 0x19 0x01 0x13b>; + phandle = <0x10c>; + }; + }; + + uart3 { + + uart3m1-xfer { + rockchip,pins = <0x03 0x10 0x04 0x13b 0x03 0x0f 0x04 0x13b>; + phandle = <0x10d>; + }; + }; + + uart4 { + + uart4m1-xfer { + rockchip,pins = <0x03 0x09 0x04 0x13b 0x03 0x0a 0x04 0x13b>; + phandle = <0x10e>; + }; + }; + + uart5 { + + uart5m0-xfer { + rockchip,pins = <0x02 0x01 0x03 0x13b 0x02 0x02 0x03 0x13b>; + phandle = <0x10f>; + }; + }; + + uart6 { + + uart6m0-xfer { + rockchip,pins = <0x02 0x03 0x03 0x13b 0x02 0x04 0x03 0x13b>; + phandle = <0x110>; + }; + }; + + uart7 { + + uart7m1-xfer { + rockchip,pins = <0x03 0x15 0x04 0x13b 0x03 0x14 0x04 0x13b>; + phandle = <0x111>; + }; + }; + + uart8 { + + uart8m0-xfer { + rockchip,pins = <0x02 0x16 0x02 0x13b 0x02 0x15 0x03 0x13b>; + phandle = <0x112>; + }; + + uart8m0-ctsn { + rockchip,pins = <0x02 0x0a 0x03 0x139>; + phandle = <0x113>; + }; + + uart8m0-rtsn { + rockchip,pins = <0x02 0x09 0x03 0x139>; + phandle = <0x155>; + }; + }; + + uart9 { + + uart9m1-xfer { + rockchip,pins = <0x04 0x16 0x04 0x13b 0x04 0x15 0x04 0x13b>; + phandle = <0x114>; + }; + }; + + spi0-hs { + + spi0m0-pins { + rockchip,pins = <0x00 0x0d 0x02 0x140 0x00 0x15 0x02 0x140 0x00 0x0e 0x02 0x140>; + phandle = <0xff>; + }; + }; + + spi1-hs { + + spi1m1-pins { + rockchip,pins = <0x03 0x13 0x03 0x140 0x03 0x12 0x03 0x140 0x03 0x11 0x03 0x140>; + phandle = <0x101>; + }; + }; + + spi2-hs { + + spi2m0-pins { + rockchip,pins = <0x02 0x11 0x04 0x140 0x02 0x12 0x04 0x140 0x02 0x13 0x04 0x140>; + phandle = <0x106>; + }; + }; + + spi3-hs { + + spi3m0-pins { + rockchip,pins = <0x04 0x0b 0x04 0x140 0x04 0x08 0x04 0x140 0x04 0x0a 0x04 0x140>; + phandle = <0x10a>; + }; + }; + + gpio-func { + + tsadc-gpio-func { + rockchip,pins = <0x00 0x01 0x00 0x139>; + phandle = <0x123>; + }; + }; + + usb { + + vcc5v0-host-en { + rockchip,pins = <0x00 0x06 0x00 0x139>; + phandle = <0x150>; + }; + + vcc5v0-otg-en { + rockchip,pins = <0x00 0x05 0x00 0x139>; + phandle = <0x151>; + }; + + vcc-hub-reset-en { + rockchip,pins = <0x01 0x04 0x00 0x139>; + phandle = <0x15a>; + }; + }; + + headphone { + + hp-det { + rockchip,pins = <0x03 0x12 0x00 0x142>; + phandle = <0x148>; + }; + }; + + sdio-pwrseq { + + wifi-enable-h { + rockchip,pins = <0x03 0x1d 0x00 0x139>; + phandle = <0x153>; + }; + }; + + wireless-wlan { + + wifi-host-wake-irq { + rockchip,pins = <0x03 0x1c 0x00 0x142>; + phandle = <0x154>; + }; + }; + + wireless-bluetooth { + + uart8-gpios { + rockchip,pins = <0x02 0x09 0x00 0x139>; + phandle = <0x156>; + }; + }; + + touch { + + touch-gpio { + rockchip,pins = <0x00 0x0d 0x00 0x13b 0x00 0x0e 0x00 0x139>; + phandle = <0xef>; + }; + }; + + mxc6655xa { + + mxc6655xa_irq_gpio { + rockchip,pins = <0x03 0x11 0x00 0x139>; + phandle = <0xfb>; + }; + }; + + pcie { + + pcie-pi6c-oe-en { + rockchip,pins = <0x03 0x07 0x00 0x139>; + phandle = <0x15b>; + }; + }; + + leds { + + leds-gpio { + rockchip,pins = <0x01 0x0a 0x00 0x139 0x01 0x09 0x00 0x139 0x01 0x08 0x00 0x139 0x02 0x11 0x00 0x139>; + phandle = <0x15d>; + }; + }; + + 4g { + + vcc-4g-power-en { + rockchip,pins = <0x03 0x03 0x00 0x139>; + phandle = <0x15c>; + }; + }; + + usb-typec { + + usbc0-int { + rockchip,pins = <0x00 0x11 0x00 0x13b>; + phandle = <0x4b>; + }; + + vcc5v0-typec0-en { + rockchip,pins = <0x00 0x05 0x00 0x139>; + }; + }; + }; + + audiopwmout-diff { + status = "disabled"; + compatible = "simple-audio-card"; + simple-audio-card,format = "i2s"; + simple-audio-card,name = "rockchip,audiopwmout-diff"; + simple-audio-card,mclk-fs = <0x100>; + simple-audio-card,bitclock-master = <0x143>; + simple-audio-card,frame-master = <0x143>; + + simple-audio-card,cpu { + sound-dai = <0x144>; + }; + + simple-audio-card,codec { + sound-dai = <0x145>; + phandle = <0x143>; + }; + }; + + dc-12v { + compatible = "regulator-fixed"; + regulator-name = "dc_12v"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <0xb71b00>; + regulator-max-microvolt = <0xb71b00>; + phandle = <0x14f>; + }; + + hdmi-sound { + compatible = "simple-audio-card"; + simple-audio-card,format = "i2s"; + simple-audio-card,mclk-fs = <0x80>; + simple-audio-card,name = "rockchip,hdmi"; + status = "okay"; + + simple-audio-card,cpu { + sound-dai = <0x146>; + }; + + simple-audio-card,codec { + sound-dai = <0x147>; + }; + }; + + rk-headset { + status = "disabled"; + compatible = "rockchip_headset"; + headset_gpio = <0x4a 0x12 0x01>; + pinctrl-names = "default"; + pinctrl-0 = <0x148>; + }; + + dummy-codec { + status = "disabled"; + compatible = "rockchip,dummy-codec"; + #sound-dai-cells = <0x00>; + phandle = <0x14a>; + }; + + pdm-mic-array { + status = "disabled"; + compatible = "simple-audio-card"; + simple-audio-card,name = "rockchip,pdm-mic-array"; + + simple-audio-card,cpu { + sound-dai = <0x149>; + }; + + simple-audio-card,codec { + sound-dai = <0x14a>; + }; + }; + + rk809-sound { + status = "okay"; + compatible = "rockchip,multicodecs-card"; + rockchip,card-name = "rockchip-rk809"; + rockchip,format = "i2s"; + rockchip,mclk-fs = <0x100>; + rockchip,cpu = <0xe8>; + rockchip,codec = <0x14b>; + }; + + spdif-sound { + status = "okay"; + compatible = "simple-audio-card"; + simple-audio-card,name = "ROCKCHIP,SPDIF"; + + simple-audio-card,cpu { + sound-dai = <0x14c>; + }; + + simple-audio-card,codec { + sound-dai = <0x14d>; + }; + }; + + spdif-out { + status = "okay"; + compatible = "linux,spdif-dit"; + #sound-dai-cells = <0x00>; + phandle = <0x14d>; + }; + + vad-sound { + status = "disabled"; + compatible = "rockchip,multicodecs-card"; + rockchip,card-name = "rockchip,rk3568-vad"; + rockchip,cpu = <0xe8>; + rockchip,codec = <0x14b 0x14e>; + }; + + vcc3v3-sys { + compatible = "regulator-fixed"; + regulator-name = "vcc3v3_sys"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <0x325aa0>; + regulator-max-microvolt = <0x325aa0>; + vin-supply = <0x14f>; + phandle = <0x46>; + }; + + vcc5v0-sys { + compatible = "regulator-fixed"; + regulator-name = "vcc5v0_sys"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <0x4c4b40>; + regulator-max-microvolt = <0x4c4b40>; + vin-supply = <0x14f>; + phandle = <0x3e>; + }; + + vcc5v0-host-regulator { + compatible = "regulator-fixed"; + enable-active-high; + gpio = <0x3f 0x06 0x00>; + pinctrl-names = "default"; + pinctrl-0 = <0x150>; + regulator-name = "vcc5v0_host"; + regulator-always-on; + regulator-boot-on; + phandle = <0x136>; + }; + + vcc5v0-otg-regulator { + compatible = "regulator-fixed"; + enable-active-high; + gpio = <0x3f 0x05 0x00>; + pinctrl-names = "default"; + pinctrl-0 = <0x151>; + regulator-name = "vcc5v0_otg"; + phandle = <0x4c>; + }; + + vcc3v3-lcd0-n { + compatible = "regulator-fixed"; + regulator-name = "vcc3v3_lcd0_n"; + regulator-boot-on; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + vcc3v3-lcd1-n { + compatible = "regulator-fixed"; + regulator-name = "vcc3v3_lcd1_n"; + regulator-boot-on; + status = "disabled"; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + test-power { + status = "okay"; + }; + + chosen { + // linux,initrd-end = <0x00 0xaacf15d>; + // linux,initrd-start = <0x00 0xa200000>; + bootargs = "storagemedia=emmc androidboot.storagemedia=emmc androidboot.mode=normal androidboot.verifiedbootstate=orange rw rootwait earlycon=uart8250,mmio32,0xfe660000 console=ttyFIQ0 root=PARTLABEL=rootfs rootfstype=ext4 overlayroot=device:dev=PARTLABEL=userdata,fstype=ext4,mkfs=1 coherent_pool=1m systemd.gpt_auto=0 cgroup_enable=memory swapaccount=1 swiotlb=0x10000 net.ifnames=0 comm-05/20/2025 androidboot.fwver=ddr-v1.21-2d653b3476,spl-v1.14,bl31-v1.44,bl32-v2.12,uboot--boot"; + }; + + fiq-debugger { + compatible = "rockchip,fiq-debugger"; + rockchip,serial-id = <0x02>; + rockchip,wake-irq = <0x00>; + rockchip,irq-mode-enable = <0x01>; + rockchip,baudrate = <0x16e360>; + interrupts = <0x00 0xfc 0x08>; + pinctrl-names = "default"; + pinctrl-0 = <0x10c>; + status = "okay"; + }; + + debug@fd904000 { + compatible = "rockchip,debug"; + reg = <0x00 0xfd904000 0x00 0x1000 0x00 0xfd905000 0x00 0x1000 0x00 0xfd906000 0x00 0x1000 0x00 0xfd907000 0x00 0x1000>; + }; + + cspmu@fd90c000 { + compatible = "rockchip,cspmu"; + reg = <0x00 0xfd90c000 0x00 0x1000 0x00 0xfd90d000 0x00 0x1000 0x00 0xfd90e000 0x00 0x1000 0x00 0xfd90f000 0x00 0x1000>; + }; + + adc-keys { + compatible = "adc-keys"; + io-channels = <0x49 0x00>; + io-channel-names = "buttons"; + keyup-threshold-microvolt = <0x1b7740>; + poll-interval = <0x64>; + + recovery-key { + label = "F12"; + linux,code = <0x58>; + press-threshold-microvolt = <0x6d6>; + }; + + vol-down-key { + label = "volume down"; + linux,code = <0x72>; + press-threshold-microvolt = <0x48a1c>; + }; + + menu-key { + label = "menu"; + linux,code = <0x8b>; + press-threshold-microvolt = <0xef420>; + }; + + back-key { + label = "back"; + linux,code = <0x9e>; + press-threshold-microvolt = <0x13eb9c>; + }; + }; + + vcc2v5-ddr { + compatible = "regulator-fixed"; + regulator-name = "vcc2v5-sys"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <0x2625a0>; + regulator-max-microvolt = <0x2625a0>; + vin-supply = <0x46>; + }; + + pcie30-avdd0v9 { + compatible = "regulator-fixed"; + regulator-name = "pcie30_avdd0v9"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <0xdbba0>; + regulator-max-microvolt = <0xdbba0>; + vin-supply = <0x46>; + }; + + pcie30-avdd1v8 { + compatible = "regulator-fixed"; + regulator-name = "pcie30_avdd1v8"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <0x1b7740>; + regulator-max-microvolt = <0x1b7740>; + vin-supply = <0x46>; + }; + + gpio-regulator { + compatible = "regulator-gpio"; + regulator-name = "pcie30_3v3"; + regulator-min-microvolt = <0x186a0>; + regulator-max-microvolt = <0x325aa0>; + gpios = <0x3f 0x1c 0x00>; + gpios-states = <0x01>; + states = <0x186a0 0x00 0x325aa0 0x01>; + phandle = <0xc2>; + }; + + vcc3v3-bu { + compatible = "regulator-fixed"; + regulator-name = "vcc3v3_bu"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <0x325aa0>; + regulator-max-microvolt = <0x325aa0>; + vin-supply = <0x3e>; + }; + + sdio-pwrseq { + compatible = "mmc-pwrseq-simple"; + clocks = <0x152 0x01>; + clock-names = "ext_clock"; + pinctrl-names = "default"; + pinctrl-0 = <0x153>; + post-power-on-delay-ms = <0x64>; + reset-gpios = <0x4a 0x1d 0x01>; + status = "okay"; + phandle = <0xb3>; + }; + + wireless-wlan { + compatible = "wlan-platdata"; + rockchip,grf = <0x3b>; + wifi_chip_type = "ap6256"; + pinctrl-names = "default"; + pinctrl-0 = <0x154>; + WIFI,host_wake_irq = <0x4a 0x1c 0x00>; + status = "okay"; + }; + + wireless-bluetooth { + compatible = "bluetooth-platdata"; + clocks = <0x152 0x01>; + clock-names = "ext_clock"; + uart_rts_gpios = <0x91 0x09 0x01>; + pinctrl-names = "default\0rts_gpio"; + pinctrl-0 = <0x155>; + pinctrl-1 = <0x156>; + BT,reset_gpio = <0x4a 0x00 0x00>; + BT,wake_gpio = <0x4a 0x02 0x00>; + BT,wake_host_irq = <0x4a 0x01 0x00>; + status = "okay"; + }; + + flash-led { + compatible = "led,rgb13h"; + label = "pwm-flash-led"; + led-max-microamp = <0x4e20>; + flash-max-microamp = <0x4e20>; + flash-max-timeout-us = <0xf4240>; + pwms = <0x157 0x00 0x61a8 0x00>; + rockchip,camera-module-index = <0x01>; + rockchip,camera-module-facing = "front"; + status = "disabled"; + }; + + vcc-camera-regulator { + compatible = "regulator-fixed"; + gpio = <0x102 0x03 0x00>; + pinctrl-names = "default"; + pinctrl-0 = <0x158>; + regulator-name = "vcc_camera"; + enable-active-high; + status = "disabled"; + }; + + vcc-hub-reset-regulator { + compatible = "regulator-fixed"; + enable-active-high; + gpio = <0x159 0x04 0x00>; + pinctrl-names = "default"; + pinctrl-0 = <0x15a>; + regulator-name = "vcc_hub_reset_en"; + regulator-always-on; + }; + + pcie-pi6c-oe-regulator { + compatible = "regulator-fixed"; + gpio = <0x4a 0x07 0x01>; + pinctrl-names = "default"; + pinctrl-0 = <0x15b>; + regulator-name = "pcie_pi6c_oe_en"; + regulator-always-on; + }; + + vcc-4g-power-regulator { + compatible = "regulator-fixed"; + enable-active-high; + gpio = <0x4a 0x03 0x00>; + pinctrl-names = "default"; + pinctrl-0 = <0x15c>; + regulator-name = "vcc_4g_power_en"; + regulator-always-on; + }; + + leds { + status = "okay"; + compatible = "gpio-leds"; + pinctrl-names = "default"; + pinctrl-0 = <0x15d>; + + power { + label = "firefly:blue:power"; + linux,default-trigger = "ir-power-click"; + default-state = "on"; + gpios = <0x159 0x0a 0x00>; + }; + + user { + label = "firefly:yellow:user"; + linux,default-trigger = "ir-user-click"; + default-state = "off"; + gpios = <0x159 0x09 0x00>; + }; + + diy1 { + label = "firefly:green:diy"; + linux,default-trigger = "ir-user-click"; + default-state = "off"; + gpios = <0x159 0x08 0x00>; + }; + + diy2 { + label = "firefly:yellow:diy"; + linux,default-trigger = "ir-user-click"; + default-state = "off"; + gpios = <0x91 0x11 0x00>; + }; + }; +}; \ No newline at end of file diff --git a/configs/vms/linux-aarch64-rk3568_smp2.toml b/configs/vms/linux-aarch64-rk3568_smp2.toml new file mode 100644 index 00000000..08e17ee0 --- /dev/null +++ b/configs/vms/linux-aarch64-rk3568_smp2.toml @@ -0,0 +1,88 @@ +# Vm base info configs +# +[base] +# Guest vm id. +id = 1 +# Guest vm name. +name = "linux" +# Virtualization type. +vm_type = 1 +# The number of virtual CPUs. +cpu_num = 2 +# The physical CPU ids. +phys_cpu_ids = [0x200, 0x300] +# Guest vm physical cpu sets. +phys_cpu_sets = [4, 8] + +# +# Vm kernel configs +# +[kernel] +# The entry point of the kernel image. +entry_point = 0x8008_0000 +# The location of image: "memory" | "fs". +# Load from file system. +image_location = "fs" +# The load address of the kernel image. +kernel_load_addr = 0x8008_0000 +## The file path of the kernel image. +kernel_path = "/guest/Image" +## The file path of the device tree blob (DTB). +dtb_path = "/guest/linux-aarch64-rk3568_smp2.dtb" +dtb_load_addr = 0x8000_0000 +# Memory regions with format (`base_paddr`, `size`, `flags`, `map_type`). +# For `map_type`, 0 means `MAP_ALLOC`, 1 means `MAP_IDENTICAL`. +memory_regions = [ + # [0x1000_0000, 0x800_0000, 0x7, 0], + # [0x8000_0000, 0x6000_0000, 0x7, 1], # System RAM 1G MAP_IDENTICAL + # [0x1_f000_0000, 0x1000_0000 , 0x7, 1], # System RAM 1G MAP_IDENTICAL + # [0x600_0000, 0x240_0000, 0x7, 1], # System RAM MAP_IDENTICAL + # [0x1_f000_0000, 0x1000_0000, 0x7, 1], # System RAM MAP_IDENTICAL +] +# +# Device specifications +# +[devices] +# Emu_devices. +# Name Base-Ipa Ipa_len Alloc-Irq Emu-Type EmuConfig. +emu_devices = [] + +# Pass-through devices. +# Name Base-Ipa Base-Pa Length Alloc-Irq. +passthrough_devices = [ + # [ + # "peripherals 1", + # 0xf000_0000, + # 0xf000_0000, + # 0xe66_0000, + # 0x1, + # ], + # [ + # "peripherals 2", + # 0xfe67_0000, + # 0xfe67_0000, + # 0x99_0000, + # 0x1, + # ], + [ + "all peripherals", + 0xf0000000, + 0xf0000000, + 0xf000000, + 0x1, + ], + [ + "PCIe related", + 0x300000000, + 0x300000000, + 0xd0000000, + 0x1, + ], + [ + "ramoops, scmi-shmem, etc.", + 0x100000, + 0x100000, + 0x200000, + 0x1, + ], +] \ No newline at end of file From c922ec70a1e0615d7d2bcc16305e4c679ae4776f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E7=9D=BF?= Date: Wed, 3 Sep 2025 14:35:19 +0800 Subject: [PATCH 142/219] fmt code --- configs/defconfig.toml | 2 +- configs/vms/arceos-aarch64-e2000_smp1.toml | 48 +++---- configs/vms/arceos-aarch64-e2000_smp2.toml | 48 +++---- configs/vms/arceos-aarch64-gicv3-tester.toml | 60 -------- configs/vms/arceos-aarch64-rk3568-smp1.toml | 44 +++--- configs/vms/arceos-aarch64-rk3568-smp2.toml | 52 +++---- configs/vms/arceos-aarch64-smp.toml | 16 +-- configs/vms/arceos-aarch64.toml | 22 ++- configs/vms/arceos-riscv64-smp.toml | 32 ++--- configs/vms/arceos-riscv64.toml | 32 ++--- configs/vms/arceos-rk3588-aarch64-vm2.toml | 4 +- configs/vms/arceos-x86_64.toml | 46 +++--- configs/vms/hvconfig-nimbos-aarch64.toml | 6 +- configs/vms/linux-a1000-aarch64-smp8.toml | 9 +- configs/vms/linux-aarch64-e2000_smp1.toml | 132 ++++++++--------- configs/vms/linux-aarch64-e2000_smp2.toml | 134 +++++++++--------- configs/vms/linux-aarch64-rk3568_smp1.toml | 82 +++++------ configs/vms/linux-aarch64-rk3568_smp2.toml | 82 +++++------ configs/vms/linux-qemu-aarch64-gicv3-a.toml | 32 ++--- configs/vms/linux-qemu-aarch64-gicv3-b.toml | 34 +++-- configs/vms/linux-qemu-aarch64-smp2.toml | 16 +-- configs/vms/linux-qemu-aarch64-vm2.toml | 17 +-- configs/vms/linux-qemu-aarch64.toml | 24 ++-- configs/vms/linux-rk3588-aarch64-smp-vm1.toml | 11 +- configs/vms/linux-rk3588-aarch64-smp-vm2.toml | 11 +- configs/vms/linux-rk3588-aarch64-smp.toml | 7 +- configs/vms/linux-rk3588-aarch64.toml | 76 +++++----- configs/vms/nimbos-aarch64.toml | 2 +- configs/vms/nimbos-riscv64.toml | 8 +- configs/vms/nimbos-x86_64.toml | 46 +++--- configs/vms/starry-aarch64.toml | 16 +-- configs/vms/starry-riscv64.toml | 32 ++--- configs/vms/starry-x86_64.toml | 16 +-- 33 files changed, 560 insertions(+), 639 deletions(-) delete mode 100644 configs/vms/arceos-aarch64-gicv3-tester.toml diff --git a/configs/defconfig.toml b/configs/defconfig.toml index bd61d89c..7b34df8c 100644 --- a/configs/defconfig.toml +++ b/configs/defconfig.toml @@ -5,7 +5,7 @@ task-stack-size = 0x40000 # uint # interrupts. # WORKAROUND: To provide correct `CNTFRQ_EL0` value to the guest in aarch64. -ticks-per-sec = 1000 # uint +ticks-per-sec = 1000 # uint # Number of CPUs smp = 1 # uint diff --git a/configs/vms/arceos-aarch64-e2000_smp1.toml b/configs/vms/arceos-aarch64-e2000_smp1.toml index 8441d9be..cb104a85 100644 --- a/configs/vms/arceos-aarch64-e2000_smp1.toml +++ b/configs/vms/arceos-aarch64-e2000_smp1.toml @@ -28,12 +28,12 @@ kernel_load_addr = 0x20_2008_0000 ## The file path of the kernel image. kernel_path = "/guest/arceos-aarch64-e2000_smp1.bin" ## The file path of the device tree blob (DTB). -dtb_path = "/guest/arceos-aarch64-e2000_smp1.dtb" dtb_load_addr = 0x20_2000_0000 +dtb_path = "/guest/arceos-aarch64-e2000_smp1.dtb" # Memory regions with format (`base_paddr`, `size`, `flags`, `map_type`). # For `map_type`, 0 means `MAP_ALLOC`, 1 means `MAP_IDENTICAL`. memory_regions = [ - #[0x20_2000_0000, 0x2000_0000, 0x7, 1], # System RAM MAP_IDENTICAL + #[0x20_2000_0000, 0x2000_0000, 0x7, 1], # System RAM MAP_IDENTICAL ] # @@ -47,25 +47,25 @@ emu_devices = [] # Pass-through devices. # Name Base-Ipa Base-Pa Length Alloc-Irq. passthrough_devices = [ - [ - "UART1", - 0x2800_d000, - 0x2800_d000, - 0x1000, - 0x1, - ], - [ - "gic-v3", - 0x3080_0000, - 0x3080_0000, - 0x10000, - 0x1, - ], - [ - "gic-v3-its", - 0x3082_0000, - 0x3082_0000, - 0x100000, - 0x1, - ], -] \ No newline at end of file + [ + "UART1", + 0x2800_d000, + 0x2800_d000, + 0x1000, + 0x1, + ], + [ + "gic-v3", + 0x3080_0000, + 0x3080_0000, + 0x10000, + 0x1, + ], + [ + "gic-v3-its", + 0x3082_0000, + 0x3082_0000, + 0x100000, + 0x1, + ], +] diff --git a/configs/vms/arceos-aarch64-e2000_smp2.toml b/configs/vms/arceos-aarch64-e2000_smp2.toml index 41b23930..e374ba3b 100644 --- a/configs/vms/arceos-aarch64-e2000_smp2.toml +++ b/configs/vms/arceos-aarch64-e2000_smp2.toml @@ -28,12 +28,12 @@ kernel_load_addr = 0x20_2008_0000 ## The file path of the kernel image. kernel_path = "/guest/arceos-aarch64-e2000_smp2.bin" ## The file path of the device tree blob (DTB). -dtb_path = "/guest/arceos-aarch64-e2000_smp2.dtb" dtb_load_addr = 0x20_2000_0000 +dtb_path = "/guest/arceos-aarch64-e2000_smp2.dtb" # Memory regions with format (`base_paddr`, `size`, `flags`, `map_type`). # For `map_type`, 0 means `MAP_ALLOC`, 1 means `MAP_IDENTICAL`. memory_regions = [ - #[0x20_2000_0000, 0x2000_0000, 0x7, 1], # System RAM MAP_IDENTICAL + #[0x20_2000_0000, 0x2000_0000, 0x7, 1], # System RAM MAP_IDENTICAL ] # @@ -47,25 +47,25 @@ emu_devices = [] # Pass-through devices. # Name Base-Ipa Base-Pa Length Alloc-Irq. passthrough_devices = [ - [ - "UART1", - 0x2800_d000, - 0x2800_d000, - 0x1000, - 0x1, - ], - [ - "gic-v3", - 0x3080_0000, - 0x3080_0000, - 0x10000, - 0x1, - ], - [ - "gic-v3-its", - 0x3082_0000, - 0x3082_0000, - 0x100000, - 0x1, - ], -] \ No newline at end of file + [ + "UART1", + 0x2800_d000, + 0x2800_d000, + 0x1000, + 0x1, + ], + [ + "gic-v3", + 0x3080_0000, + 0x3080_0000, + 0x10000, + 0x1, + ], + [ + "gic-v3-its", + 0x3082_0000, + 0x3082_0000, + 0x100000, + 0x1, + ], +] diff --git a/configs/vms/arceos-aarch64-gicv3-tester.toml b/configs/vms/arceos-aarch64-gicv3-tester.toml deleted file mode 100644 index e2952adb..00000000 --- a/configs/vms/arceos-aarch64-gicv3-tester.toml +++ /dev/null @@ -1,60 +0,0 @@ -# Vm base info configs -# -[base] -# Guest vm id. -id = 1 -# Guest vm name. -name = "arceos" -# Virtualization type. -vm_type = 1 -# The number of virtual CPUs. -cpu_num = 1 -# Guest vm physical cpu sets. -phys_cpu_sets = [1] - -# -# Vm kernel configs -# -[kernel] -# The entry point of the kernel image. -entry_point = 0x4020_0000 -# The location of image: "memory" | "fs". -# Load from file system. -image_location = "memory" -# The file path of the kernel image. -kernel_path = "/home/smx/source/lectures/arceos-repos/arceos-new/zignore-gicv3-test/gicv3_tester_aarch64-qemu-virt-01-task-print-time-smp1.bin" -# The load address of the kernel image. -kernel_load_addr = 0x4020_0000 -## Load from memory -# image_location = "memory" -## The file path of the kernel image. -# kernel_path = "" -## The file path of the device tree blob (DTB). -# dtb_path = "" -# Memory regions with format (`base_paddr`, `size`, `flags`, `map_type`). -# For `map_type`, 0 means `MAP_ALLOC`, 1 means `MAP_IDENTICAL`. -memory_regions = [ - [0x4000_0000, 0x100_0000, 0x7, 0], # Low RAM 16M 0b00111 R|W|EXECUTE - -] - -# -# Device specifications -# -[devices] -# Emu_devices. -# Name Base-Ipa Ipa_len Alloc-Irq Emu-Type EmuConfig. -emu_devices = [] - -# Pass-through devices. -# Name Base-Ipa Base-Pa Length Alloc-Irq. -passthrough_devices = [ - # ["intc@8000000", 0x800_0000, 0x800_0000, 0x50_000, 0x1], - # ["intc@8000000", 0x800_0000, 0x800_0000, 0x100_0000, 0x1], - ["pl011@9000000", 0x900_0000, 0x900_0000, 0x1000, 0x1], - ["pl031@9010000", 0x901_0000, 0x901_0000, 0x1000, 0x1], - ["pl061@9030000", 0x903_0000, 0x903_0000, 0x1000, 0x1], - # a003000.virtio_mmio virtio_mmio@a003000 - # a003200.virtio_mmio virtio_mmio@a003200 - ["virtio_mmio", 0xa00_0000, 0xa00_0000, 0x4000, 0x1], -] \ No newline at end of file diff --git a/configs/vms/arceos-aarch64-rk3568-smp1.toml b/configs/vms/arceos-aarch64-rk3568-smp1.toml index d553acb6..24d0d499 100644 --- a/configs/vms/arceos-aarch64-rk3568-smp1.toml +++ b/configs/vms/arceos-aarch64-rk3568-smp1.toml @@ -28,8 +28,8 @@ kernel_load_addr = 0x7008_0000 ## The file path of the kernel image. kernel_path = "/code/axvisor/axboard_test/config/rk3568-arceos/arceos.bin" ## The file path of the device tree blob (DTB). -dtb_path = "/code/axvisor/axboard_test/config/rk3568-arceos/arceos-rk3568.dtb" dtb_load_addr = 0x7000_0000 +dtb_path = "/code/axvisor/axboard_test/config/rk3568-arceos/arceos-rk3568.dtb" # Memory regions with format (`base_paddr`, `size`, `flags`, `map_type`). # For `map_type`, 0 means `MAP_ALLOC`, 1 means `MAP_IDENTICAL`. memory_regions = [] @@ -46,25 +46,25 @@ emu_devices = [] # Pass-through devices. # Name Base-Ipa Base-Pa Length Alloc-Irq. passthrough_devices = [ - [ - "UART2", - 0xfe66_0000, - 0xfe66_0000, - 0x10000, - 0x1, - ], - [ - "gic-v3", - 0xfd40_0000, - 0xfd40_0000, - 0x10000, - 0x1, - ], - [ - "gic-v3-its", - 0xfd44_0000, - 0xfd44_0000, - 0x100000, - 0x1, - ], + [ + "UART2", + 0xfe66_0000, + 0xfe66_0000, + 0x10000, + 0x1, + ], + [ + "gic-v3", + 0xfd40_0000, + 0xfd40_0000, + 0x10000, + 0x1, + ], + [ + "gic-v3-its", + 0xfd44_0000, + 0xfd44_0000, + 0x100000, + 0x1, + ], ] diff --git a/configs/vms/arceos-aarch64-rk3568-smp2.toml b/configs/vms/arceos-aarch64-rk3568-smp2.toml index 44a71566..d7ef6eac 100644 --- a/configs/vms/arceos-aarch64-rk3568-smp2.toml +++ b/configs/vms/arceos-aarch64-rk3568-smp2.toml @@ -28,14 +28,14 @@ kernel_load_addr = 0x7008_0000 ## The file path of the kernel image. kernel_path = "/guest/arceos-aarch64-rk3568_smp2.bin" ## The file path of the device tree blob (DTB). -dtb_path = "/guest/arceos-aarch64-rk3568_smp2.dtb" dtb_load_addr = 0x7000_0000 +dtb_path = "/guest/arceos-aarch64-rk3568_smp2.dtb" # Memory regions with format (`base_paddr`, `size`, `flags`, `map_type`). # For `map_type`, 0 means `MAP_ALLOC`, 1 means `MAP_IDENTICAL`. memory_regions = [ - # [0x1000_0000, 0x800_0000, 0x7, 0], - # [0x7000_0000, 0x1000_0000, 0x7, 1], # System RAM 1G MAP_IDENTICAL - # [0x1_f000_0000, 0x1000_0000 , 0x7, 1], # System RAM 1G MAP_IDENTICAL + # [0x1000_0000, 0x800_0000, 0x7, 0], + # [0x7000_0000, 0x1000_0000, 0x7, 1], # System RAM 1G MAP_IDENTICAL + # [0x1_f000_0000, 0x1000_0000 , 0x7, 1], # System RAM 1G MAP_IDENTICAL # [0x600_0000, 0x240_0000, 0x7, 1], # System RAM MAP_IDENTICAL # [0x1_f000_0000, 0x1000_0000, 0x7, 1], # System RAM MAP_IDENTICAL ] @@ -51,25 +51,25 @@ emu_devices = [] # Pass-through devices. # Name Base-Ipa Base-Pa Length Alloc-Irq. passthrough_devices = [ - [ - "UART2", - 0xfe66_0000, - 0xfe66_0000, - 0x10000, - 0x1, - ], - [ - "gic-v3", - 0xfd40_0000, - 0xfd40_0000, - 0x10000, - 0x1, - ], - [ - "gic-v3-its", - 0xfd44_0000, - 0xfd44_0000, - 0x100000, - 0x1, - ], -] \ No newline at end of file + [ + "UART2", + 0xfe66_0000, + 0xfe66_0000, + 0x10000, + 0x1, + ], + [ + "gic-v3", + 0xfd40_0000, + 0xfd40_0000, + 0x10000, + 0x1, + ], + [ + "gic-v3-its", + 0xfd44_0000, + 0xfd44_0000, + 0x100000, + 0x1, + ], +] diff --git a/configs/vms/arceos-aarch64-smp.toml b/configs/vms/arceos-aarch64-smp.toml index 79f5f5d5..e8c61729 100644 --- a/configs/vms/arceos-aarch64-smp.toml +++ b/configs/vms/arceos-aarch64-smp.toml @@ -33,7 +33,7 @@ kernel_load_addr = 0x4008_0000 # Memory regions with format (`base_paddr`, `size`, `flags`, `map_type`). # For `map_type`, 0 means `MAP_ALLOC`, 1 means `MAP_IDENTICAL`. memory_regions = [ - [0x4000_0000, 0x100_0000, 0x7, 0], # Low RAM 16M 0b00111 R|W|EXECUTE MAP_ALLOC + [0x4000_0000, 0x100_0000, 0x7, 0], # Low RAM 16M 0b00111 R|W|EXECUTE MAP_ALLOC ] # @@ -47,11 +47,9 @@ emu_devices = [] # Pass-through devices. # Name Base-Ipa Base-Pa Length Alloc-Irq. passthrough_devices = [ - ["intc@8000000", 0x800_0000, 0x800_0000, 0x50_000, 0x1], - ["pl011@9000000", 0x900_0000, 0x900_0000, 0x1000, 0x1], - ["pl031@9010000", 0x901_0000, 0x901_0000, 0x1000, 0x1], - ["pl061@9030000", 0x903_0000, 0x903_0000, 0x1000, 0x1], - # a003000.virtio_mmio virtio_mmio@a003000 - # a003200.virtio_mmio virtio_mmio@a003200 - ["virtio_mmio", 0xa00_0000, 0xa00_0000, 0x4000, 0x1], -] \ No newline at end of file + ["intc@8000000", 0x800_0000, 0x800_0000, 0x50_000, 0x1], + ["pl011@9000000", 0x900_0000, 0x900_0000, 0x1000, 0x1], + ["pl031@9010000", 0x901_0000, 0x901_0000, 0x1000, 0x1], + ["pl061@9030000", 0x903_0000, 0x903_0000, 0x1000, 0x1], # a003000.virtio_mmio virtio_mmio@a003000 # a003200.virtio_mmio virtio_mmio@a003200 + ["virtio_mmio", 0xa00_0000, 0xa00_0000, 0x4000, 0x1], +] diff --git a/configs/vms/arceos-aarch64.toml b/configs/vms/arceos-aarch64.toml index f95e6405..c75f7f49 100644 --- a/configs/vms/arceos-aarch64.toml +++ b/configs/vms/arceos-aarch64.toml @@ -22,7 +22,7 @@ entry_point = 0x4020_0000 # Load from file system. image_location = "memory" # The file path of the kernel image. -kernel_path = "/home/hky/workspace/arceos/arceos/examples/ivc_tester/ivc_tester_aarch64-qemu-virt.bin" +kernel_path = "path/to/kernel" # The load address of the kernel image. kernel_load_addr = 0x4020_0000 ## Load from memory @@ -34,7 +34,7 @@ kernel_load_addr = 0x4020_0000 # Memory regions with format (`base_paddr`, `size`, `flags`, `map_type`). # For `map_type`, 0 means `MAP_ALLOC`, 1 means `MAP_IDENTICAL`. memory_regions = [ - [0x4000_0000, 0x100_0000, 0x7, 0], # Low RAM 16M 0b00111 R|W|EXECUTE + [0x4000_0000, 0x100_0000, 0x7, 0], # Low RAM 16M 0b00111 R|W|EXECUTE ] # @@ -44,18 +44,16 @@ memory_regions = [ # Emu_devices. # Name Base-Ipa Ipa_len Alloc-Irq Emu-Type EmuConfig. emu_devices = [ - ["ivc-channel", 0x3000_0000, 0x1000_0000, 0x0, 0xa, []], + ["ivc-channel", 0x3000_0000, 0x1000_0000, 0x0, 0xa, []], ] # Pass-through devices. # Name Base-Ipa Base-Pa Length Alloc-Irq. passthrough_devices = [ - ["intc@8000000", 0x800_0000, 0x800_0000, 0x50_000, 0x1], - ["pl011@9000000", 0x900_0000, 0x900_0000, 0x1000, 0x1], - ["pl011@9040000", 0x904_0000, 0x904_0000, 0x1000, 0x1], - ["pl031@9010000", 0x901_0000, 0x901_0000, 0x1000, 0x1], - ["pl061@9030000", 0x903_0000, 0x903_0000, 0x1000, 0x1], - # a003000.virtio_mmio virtio_mmio@a003000 - # a003200.virtio_mmio virtio_mmio@a003200 - ["virtio_mmio", 0xa00_0000, 0xa00_0000, 0x4000, 0x1], -] \ No newline at end of file + ["intc@8000000", 0x800_0000, 0x800_0000, 0x50_000, 0x1], + ["pl011@9000000", 0x900_0000, 0x900_0000, 0x1000, 0x1], + ["pl011@9040000", 0x904_0000, 0x904_0000, 0x1000, 0x1], + ["pl031@9010000", 0x901_0000, 0x901_0000, 0x1000, 0x1], + ["pl061@9030000", 0x903_0000, 0x903_0000, 0x1000, 0x1], # a003000.virtio_mmio virtio_mmio@a003000 # a003200.virtio_mmio virtio_mmio@a003200 + ["virtio_mmio", 0xa00_0000, 0xa00_0000, 0x4000, 0x1], +] diff --git a/configs/vms/arceos-riscv64-smp.toml b/configs/vms/arceos-riscv64-smp.toml index 2af9a6bf..b436c542 100644 --- a/configs/vms/arceos-riscv64-smp.toml +++ b/configs/vms/arceos-riscv64-smp.toml @@ -28,7 +28,7 @@ kernel_load_addr = 0x8020_0000 # Memory regions with format (`base_paddr`, `size`, `flags`, `map_type`). # For `map_type`, 0 means `MAP_ALLOC`, 1 means `MAP_IDENTICAL`. memory_regions = [ - [0x8000_0000, 0x100_0000, 0xf, 0], # Low RAM 16M 0b1111 R|W|EXECUTE|U + [0x8000_0000, 0x100_0000, 0xf, 0], # Low RAM 16M 0b1111 R|W|EXECUTE|U ] # @@ -42,18 +42,18 @@ emu_devices = [] # Pass-through devices. # Name Base-Ipa Base-Pa Length Alloc-Irq. passthrough_devices = [ - [ - "PLIC@c000000", - 0x0c00_0000, - 0x0c00_0000, - 0x21_0000, - 0x1, - ], - [ - "UART@10000000", - 0x1000_0000, - 0x1000_0000, - 0x1000, - 0x1, - ], -] \ No newline at end of file + [ + "PLIC@c000000", + 0x0c00_0000, + 0x0c00_0000, + 0x21_0000, + 0x1, + ], + [ + "UART@10000000", + 0x1000_0000, + 0x1000_0000, + 0x1000, + 0x1, + ], +] diff --git a/configs/vms/arceos-riscv64.toml b/configs/vms/arceos-riscv64.toml index bc0045c1..db89884a 100644 --- a/configs/vms/arceos-riscv64.toml +++ b/configs/vms/arceos-riscv64.toml @@ -28,7 +28,7 @@ kernel_load_addr = 0x8020_0000 # Memory regions with format (`base_paddr`, `size`, `flags`, `map_type`). # For `map_type`, 0 means `MAP_ALLOC`, 1 means `MAP_IDENTICAL`. memory_regions = [ - [0x8000_0000, 0x100_0000, 0xf, 0], # Low RAM 16M 0b1111 R|W|EXECUTE|U + [0x8000_0000, 0x100_0000, 0xf, 0], # Low RAM 16M 0b1111 R|W|EXECUTE|U ] # @@ -42,18 +42,18 @@ emu_devices = [] # Pass-through devices. # Name Base-Ipa Base-Pa Length Alloc-Irq. passthrough_devices = [ - [ - "PLIC@c000000", - 0x0c00_0000, - 0x0c00_0000, - 0x21_0000, - 0x1, - ], - [ - "UART@10000000", - 0x1000_0000, - 0x1000_0000, - 0x1000, - 0x1, - ], -] \ No newline at end of file + [ + "PLIC@c000000", + 0x0c00_0000, + 0x0c00_0000, + 0x21_0000, + 0x1, + ], + [ + "UART@10000000", + 0x1000_0000, + 0x1000_0000, + 0x1000, + 0x1, + ], +] diff --git a/configs/vms/arceos-rk3588-aarch64-vm2.toml b/configs/vms/arceos-rk3588-aarch64-vm2.toml index d7044a93..b5093442 100644 --- a/configs/vms/arceos-rk3588-aarch64-vm2.toml +++ b/configs/vms/arceos-rk3588-aarch64-vm2.toml @@ -44,6 +44,6 @@ emu_devices = [] # Pass-through devices. # Name Base-Ipa Base-Pa Length Alloc-Irq. passthrough_devices = [ - ["uart@feb40000", 0xfeb4_0000, 0xfeb4_0000, 0x1000, 0x1], - ["uart@feb50000", 0xfeb5_0000, 0xfeb4_0000, 0x1000, 0x1], + ["uart@feb40000", 0xfeb4_0000, 0xfeb4_0000, 0x1000, 0x1], + ["uart@feb50000", 0xfeb5_0000, 0xfeb4_0000, 0x1000, 0x1], ] diff --git a/configs/vms/arceos-x86_64.toml b/configs/vms/arceos-x86_64.toml index 85bb4a9e..27ab7f3a 100644 --- a/configs/vms/arceos-x86_64.toml +++ b/configs/vms/arceos-x86_64.toml @@ -40,7 +40,7 @@ kernel_load_addr = 0x20_0000 # Memory regions with format (`base_paddr`, `size`, `flags`, `map_type`). # For `map_type`, 0 means `MAP_ALLOC`, 1 means `MAP_IDENTICAL`. memory_regions = [ - [0x0000_0000, 0x100_0000, 0x7, 0], # Low RAM 16M 0b111 + [0x0000_0000, 0x100_0000, 0x7, 0], # Low RAM 16M 0b111 ] # @@ -54,25 +54,25 @@ emu_devices = [] # Pass-through devices. # Name Base-Ipa Base-Pa Length Alloc-Irq. passthrough_devices = [ - [ - "IO APIC", - 0xfec0_0000, - 0xfec0_0000, - 0x1000, - 0x1, - ], - [ - "Local APIC", - 0xfee0_0000, - 0xfee0_0000, - 0x1000, - 0x1, - ], - [ - "HPET", - 0xfed0_0000, - 0xfed0_0000, - 0x1000, - 0x1, - ], -] \ No newline at end of file + [ + "IO APIC", + 0xfec0_0000, + 0xfec0_0000, + 0x1000, + 0x1, + ], + [ + "Local APIC", + 0xfee0_0000, + 0xfee0_0000, + 0x1000, + 0x1, + ], + [ + "HPET", + 0xfed0_0000, + 0xfed0_0000, + 0x1000, + 0x1, + ], +] diff --git a/configs/vms/hvconfig-nimbos-aarch64.toml b/configs/vms/hvconfig-nimbos-aarch64.toml index df7c44d4..fde67f0b 100644 --- a/configs/vms/hvconfig-nimbos-aarch64.toml +++ b/configs/vms/hvconfig-nimbos-aarch64.toml @@ -1,4 +1,4 @@ -plat = "aarch64-generic" +arceos_args = ["DISK_IMG=nimbos-aarch64.img", "BUS=mmio", "BLK=y", "MEM=8g", "LOG=debug"] features = ["fs"] -arceos_args = [ "DISK_IMG=nimbos-aarch64.img", "BUS=mmio", "BLK=y", "MEM=8g", "LOG=debug"] -vmconfigs = [ "configs/vms/nimbos-aarch64.toml",] +plat = "aarch64-generic" +vmconfigs = ["configs/vms/nimbos-aarch64.toml"] diff --git a/configs/vms/linux-a1000-aarch64-smp8.toml b/configs/vms/linux-a1000-aarch64-smp8.toml index 0129f820..db0a6f02 100644 --- a/configs/vms/linux-a1000-aarch64-smp8.toml +++ b/configs/vms/linux-a1000-aarch64-smp8.toml @@ -41,7 +41,7 @@ dtb_load_addr = 0x82e0_0000 # Memory regions with format (`base_paddr`, `size`, `flags`). memory_regions = [ - [0x8000_0000, 0x7000_0000, 0x7, 1], #ram 1792MB + [0x8000_0000, 0x7000_0000, 0x7, 1], #ram 1792MB ] # @@ -50,10 +50,9 @@ memory_regions = [ [devices] # Emu_devices. # Name Base-Ipa Ipa_len Alloc-Irq Emu-Type EmuConfig. -emu_devices = [ -] +emu_devices = [] # Pass-through devices. passthrough_devices = [ - ["most-devices", 0x0, 0x0, 0x8000_0000, 0x1], -] \ No newline at end of file + ["most-devices", 0x0, 0x0, 0x8000_0000, 0x1], +] diff --git a/configs/vms/linux-aarch64-e2000_smp1.toml b/configs/vms/linux-aarch64-e2000_smp1.toml index 2e683f59..724e4300 100644 --- a/configs/vms/linux-aarch64-e2000_smp1.toml +++ b/configs/vms/linux-aarch64-e2000_smp1.toml @@ -28,12 +28,12 @@ kernel_load_addr = 0x20_4008_0000 ## The file path of the kernel image. kernel_path = "/guest/Image" ## The file path of the device tree blob (DTB). -dtb_path = "/guest/linux-aarch64-e2000_smp1.dtb" dtb_load_addr = 0x20_4000_0000 +dtb_path = "/guest/linux-aarch64-e2000_smp1.dtb" # Memory regions with format (`base_paddr`, `size`, `flags`, `map_type`). # For `map_type`, 0 means `MAP_ALLOC`, 1 means `MAP_IDENTICAL`. memory_regions = [ - # [0x20_4000_0000, 0x4000_0000, 0x7, 1], # System RAM MAP_IDENTICAL + # [0x20_4000_0000, 0x4000_0000, 0x7, 1], # System RAM MAP_IDENTICAL ] # @@ -47,67 +47,67 @@ emu_devices = [] # Pass-through devices. # Name Base-Ipa Base-Pa Length Alloc-Irq. passthrough_devices = [ - [ - "QSPI", - 0x0000_0000, - 0x0000_0000, - 0x1000_0000, - 0x1, - ], - [ - "LocalBus", - 0x1000_0000, - 0x1000_0000, - 0x1000_0000, - 0x1, - ], - [ - "low speed peripherals", - 0x2800_0000, - 0x2800_0000, - 0x0800_0000, - 0x1, - ], - [ - "other peripherals", - 0x3000_0000, - 0x3000_0000, - 0x0800_0000, - 0x1, - ], - [ - "IACC", - 0x3800_0000, - 0x3800_0000, - 0x0800_0000, - 0x1, - ], - [ - "PCIE", - 0x4000_0000, - 0x4000_0000, - 0x4000_0000, - 0x1, - ], - [ - "QSPI high address", - 0x01_0000_0000, - 0x01_0000_0000, - 0x8000_0000, - 0x1, - ], - [ - "LocalBus high address", - 0x01_8000_0000, - 0x01_8000_0000, - 0x8000_0000, - 0x1, - ], - [ - "PCIe MEM64", - 0x10_0000_0000, - 0x10_0000_0000, - 0x01_0000_0000, - 0x1, - ], -] \ No newline at end of file + [ + "QSPI", + 0x0000_0000, + 0x0000_0000, + 0x1000_0000, + 0x1, + ], + [ + "LocalBus", + 0x1000_0000, + 0x1000_0000, + 0x1000_0000, + 0x1, + ], + [ + "low speed peripherals", + 0x2800_0000, + 0x2800_0000, + 0x0800_0000, + 0x1, + ], + [ + "other peripherals", + 0x3000_0000, + 0x3000_0000, + 0x0800_0000, + 0x1, + ], + [ + "IACC", + 0x3800_0000, + 0x3800_0000, + 0x0800_0000, + 0x1, + ], + [ + "PCIE", + 0x4000_0000, + 0x4000_0000, + 0x4000_0000, + 0x1, + ], + [ + "QSPI high address", + 0x01_0000_0000, + 0x01_0000_0000, + 0x8000_0000, + 0x1, + ], + [ + "LocalBus high address", + 0x01_8000_0000, + 0x01_8000_0000, + 0x8000_0000, + 0x1, + ], + [ + "PCIe MEM64", + 0x10_0000_0000, + 0x10_0000_0000, + 0x01_0000_0000, + 0x1, + ], +] diff --git a/configs/vms/linux-aarch64-e2000_smp2.toml b/configs/vms/linux-aarch64-e2000_smp2.toml index 842e6f51..de717d57 100644 --- a/configs/vms/linux-aarch64-e2000_smp2.toml +++ b/configs/vms/linux-aarch64-e2000_smp2.toml @@ -28,13 +28,13 @@ kernel_load_addr = 0x20_4008_0000 ## The file path of the kernel image. kernel_path = "/guest/Image" ## The file path of the device tree blob (DTB). -dtb_path = "/guest/linux-aarch64-e2000_smp2.dtb" dtb_load_addr = 0x20_4000_0000 +dtb_path = "/guest/linux-aarch64-e2000_smp2.dtb" # Memory regions with format (`base_paddr`, `size`, `flags`, `map_type`). # For `map_type`, 0 means `MAP_ALLOC`, 1 means `MAP_IDENTICAL`. memory_regions = [ - # [0x20_4000_0000, 0x4000_0000, 0x7, 1], # System RAM MAP_IDENTICAL - # [0xa000_0000, 0x2000_0000, 0x7, 1], # System RAM 1G MAP_IDENTICAL + # [0x20_4000_0000, 0x4000_0000, 0x7, 1], # System RAM MAP_IDENTICAL + # [0xa000_0000, 0x2000_0000, 0x7, 1], # System RAM 1G MAP_IDENTICAL ] # @@ -48,67 +48,67 @@ emu_devices = [] # Pass-through devices. # Name Base-Ipa Base-Pa Length Alloc-Irq. passthrough_devices = [ - [ - "QSPI", - 0x0000_0000, - 0x0000_0000, - 0x1000_0000, - 0x1, - ], - [ - "LocalBus", - 0x1000_0000, - 0x1000_0000, - 0x1000_0000, - 0x1, - ], - [ - "low speed peripherals", - 0x2800_0000, - 0x2800_0000, - 0x0800_0000, - 0x1, - ], - [ - "other peripherals", - 0x3000_0000, - 0x3000_0000, - 0x0800_0000, - 0x1, - ], - [ - "IACC", - 0x3800_0000, - 0x3800_0000, - 0x0800_0000, - 0x1, - ], - [ - "PCIE", - 0x4000_0000, - 0x4000_0000, - 0x4000_0000, - 0x1, - ], - [ - "QSPI high address", - 0x01_0000_0000, - 0x01_0000_0000, - 0x8000_0000, - 0x1, - ], - [ - "LocalBus high address", - 0x01_8000_0000, - 0x01_8000_0000, - 0x8000_0000, - 0x1, - ], - [ - "PCIe MEM64", - 0x10_0000_0000, - 0x10_0000_0000, - 0x01_0000_0000, - 0x1, - ], -] \ No newline at end of file + [ + "QSPI", + 0x0000_0000, + 0x0000_0000, + 0x1000_0000, + 0x1, + ], + [ + "LocalBus", + 0x1000_0000, + 0x1000_0000, + 0x1000_0000, + 0x1, + ], + [ + "low speed peripherals", + 0x2800_0000, + 0x2800_0000, + 0x0800_0000, + 0x1, + ], + [ + "other peripherals", + 0x3000_0000, + 0x3000_0000, + 0x0800_0000, + 0x1, + ], + [ + "IACC", + 0x3800_0000, + 0x3800_0000, + 0x0800_0000, + 0x1, + ], + [ + "PCIE", + 0x4000_0000, + 0x4000_0000, + 0x4000_0000, + 0x1, + ], + [ + "QSPI high address", + 0x01_0000_0000, + 0x01_0000_0000, + 0x8000_0000, + 0x1, + ], + [ + "LocalBus high address", + 0x01_8000_0000, + 0x01_8000_0000, + 0x8000_0000, + 0x1, + ], + [ + "PCIe MEM64", + 0x10_0000_0000, + 0x10_0000_0000, + 0x01_0000_0000, + 0x1, + ], +] diff --git a/configs/vms/linux-aarch64-rk3568_smp1.toml b/configs/vms/linux-aarch64-rk3568_smp1.toml index bd7dd8bc..9bd48e01 100644 --- a/configs/vms/linux-aarch64-rk3568_smp1.toml +++ b/configs/vms/linux-aarch64-rk3568_smp1.toml @@ -28,14 +28,14 @@ kernel_load_addr = 0x8008_0000 ## The file path of the kernel image. kernel_path = "/guest/Image" ## The file path of the device tree blob (DTB). -dtb_path = "/guest/linux-aarch64-rk3568_smp1.dtb" dtb_load_addr = 0x8000_0000 +dtb_path = "/guest/linux-aarch64-rk3568_smp1.dtb" # Memory regions with format (`base_paddr`, `size`, `flags`, `map_type`). # For `map_type`, 0 means `MAP_ALLOC`, 1 means `MAP_IDENTICAL`. memory_regions = [ - # [0x1000_0000, 0x800_0000, 0x7, 0], - # [0x8000_0000, 0x6000_0000, 0x7, 1], # System RAM 1G MAP_IDENTICAL - # [0x1_f000_0000, 0x1000_0000 , 0x7, 1], # System RAM 1G MAP_IDENTICAL + # [0x1000_0000, 0x800_0000, 0x7, 0], + # [0x8000_0000, 0x6000_0000, 0x7, 1], # System RAM 1G MAP_IDENTICAL + # [0x1_f000_0000, 0x1000_0000 , 0x7, 1], # System RAM 1G MAP_IDENTICAL # [0x600_0000, 0x240_0000, 0x7, 1], # System RAM MAP_IDENTICAL # [0x1_f000_0000, 0x1000_0000, 0x7, 1], # System RAM MAP_IDENTICAL ] @@ -49,40 +49,40 @@ emu_devices = [] # Pass-through devices. # Name Base-Ipa Base-Pa Length Alloc-Irq. -passthrough_devices = [ - # [ - # "peripherals 1", - # 0xf000_0000, - # 0xf000_0000, - # 0xe66_0000, - # 0x1, - # ], - # [ - # "peripherals 2", - # 0xfe67_0000, - # 0xfe67_0000, - # 0x99_0000, - # 0x1, - # ], - [ - "all peripherals", - 0xf0000000, - 0xf0000000, - 0xf000000, - 0x1, - ], - [ - "PCIe related", - 0x3_0000_0000, - 0x3_0000_0000, - 0xd000_0000, - 0x1, - ], - [ - "ramoops, scmi-shmem, etc.", - 0x100000, - 0x100000, - 0x200000, - 0x1, - ], -] \ No newline at end of file +passthrough_devices = [ + # [ + # "peripherals 1", + # 0xf000_0000, + # 0xf000_0000, + # 0xe66_0000, + # 0x1, + # ], + # [ + # "peripherals 2", + # 0xfe67_0000, + # 0xfe67_0000, + # 0x99_0000, + # 0x1, + # ], + [ + "all peripherals", + 0xf0000000, + 0xf0000000, + 0xf000000, + 0x1, + ], + [ + "PCIe related", + 0x3_0000_0000, + 0x3_0000_0000, + 0xd000_0000, + 0x1, + ], + [ + "ramoops, scmi-shmem, etc.", + 0x100000, + 0x100000, + 0x200000, + 0x1, + ], +] diff --git a/configs/vms/linux-aarch64-rk3568_smp2.toml b/configs/vms/linux-aarch64-rk3568_smp2.toml index 08e17ee0..31e98c55 100644 --- a/configs/vms/linux-aarch64-rk3568_smp2.toml +++ b/configs/vms/linux-aarch64-rk3568_smp2.toml @@ -28,14 +28,14 @@ kernel_load_addr = 0x8008_0000 ## The file path of the kernel image. kernel_path = "/guest/Image" ## The file path of the device tree blob (DTB). -dtb_path = "/guest/linux-aarch64-rk3568_smp2.dtb" dtb_load_addr = 0x8000_0000 +dtb_path = "/guest/linux-aarch64-rk3568_smp2.dtb" # Memory regions with format (`base_paddr`, `size`, `flags`, `map_type`). # For `map_type`, 0 means `MAP_ALLOC`, 1 means `MAP_IDENTICAL`. memory_regions = [ - # [0x1000_0000, 0x800_0000, 0x7, 0], - # [0x8000_0000, 0x6000_0000, 0x7, 1], # System RAM 1G MAP_IDENTICAL - # [0x1_f000_0000, 0x1000_0000 , 0x7, 1], # System RAM 1G MAP_IDENTICAL + # [0x1000_0000, 0x800_0000, 0x7, 0], + # [0x8000_0000, 0x6000_0000, 0x7, 1], # System RAM 1G MAP_IDENTICAL + # [0x1_f000_0000, 0x1000_0000 , 0x7, 1], # System RAM 1G MAP_IDENTICAL # [0x600_0000, 0x240_0000, 0x7, 1], # System RAM MAP_IDENTICAL # [0x1_f000_0000, 0x1000_0000, 0x7, 1], # System RAM MAP_IDENTICAL ] @@ -49,40 +49,40 @@ emu_devices = [] # Pass-through devices. # Name Base-Ipa Base-Pa Length Alloc-Irq. -passthrough_devices = [ - # [ - # "peripherals 1", - # 0xf000_0000, - # 0xf000_0000, - # 0xe66_0000, - # 0x1, - # ], - # [ - # "peripherals 2", - # 0xfe67_0000, - # 0xfe67_0000, - # 0x99_0000, - # 0x1, - # ], - [ - "all peripherals", - 0xf0000000, - 0xf0000000, - 0xf000000, - 0x1, - ], - [ - "PCIe related", - 0x300000000, - 0x300000000, - 0xd0000000, - 0x1, - ], - [ - "ramoops, scmi-shmem, etc.", - 0x100000, - 0x100000, - 0x200000, - 0x1, - ], -] \ No newline at end of file +passthrough_devices = [ + # [ + # "peripherals 1", + # 0xf000_0000, + # 0xf000_0000, + # 0xe66_0000, + # 0x1, + # ], + # [ + # "peripherals 2", + # 0xfe67_0000, + # 0xfe67_0000, + # 0x99_0000, + # 0x1, + # ], + [ + "all peripherals", + 0xf0000000, + 0xf0000000, + 0xf000000, + 0x1, + ], + [ + "PCIe related", + 0x300000000, + 0x300000000, + 0xd0000000, + 0x1, + ], + [ + "ramoops, scmi-shmem, etc.", + 0x100000, + 0x100000, + 0x200000, + 0x1, + ], +] diff --git a/configs/vms/linux-qemu-aarch64-gicv3-a.toml b/configs/vms/linux-qemu-aarch64-gicv3-a.toml index 92e244a6..247a2a6e 100644 --- a/configs/vms/linux-qemu-aarch64-gicv3-a.toml +++ b/configs/vms/linux-qemu-aarch64-gicv3-a.toml @@ -10,8 +10,8 @@ vm_type = 1 # The number of virtual CPUs. cpu_num = 1 # Guest vm physical cpu sets. -phys_cpu_sets = [1] phys_cpu_ids = [0] +phys_cpu_sets = [1] # # Vm kernel configs @@ -49,7 +49,7 @@ dtb_load_addr = 0x8000_0000 # Memory regions with format (`base_paddr`, `size`, `flags`, `map_type`). # For `map_type`, 0 means `MAP_ALLOC`, 1 means `MAP_IDENTICAL`. memory_regions = [ - # [0x8000_0000, 0x4000_0000, 0x7, 1], # System RAM 1G MAP_IDENTICAL + # [0x8000_0000, 0x4000_0000, 0x7, 1], # System RAM 1G MAP_IDENTICAL ] # @@ -58,25 +58,25 @@ memory_regions = [ [devices] # Pass-through devices. passthrough_devices = [ - # ["intc@8000000", 0x800_0000, 0x800_0000, 0x50_000, 0x1], - # ["pl011@9000000", 0x900_0000, 0x900_0000, 0x1000, 0x1], - # ["pl031@9010000", 0x901_0000, 0x901_0000, 0x1000, 0x1], - # ["pl061@9030000", 0x903_0000, 0x903_0000, 0x1000, 0x1], - # a003000.virtio_mmio virtio_mmio@a003000 - # a003200.virtio_mmio virtio_mmio@a003200 - # ["virtio_mmio", 0xa00_0000, 0xa00_0000, 0x4000, 0x1], - ["low-devices", 0x0, 0x0, 0x0800_0000, 0x1], - ["low-devices2", 0x09000000, 0x09000000, 0x1000_0000, 0x1], - ["pci", 0x8000000000, 0x8000000000, 0x10000, 0x1], - ["pci", 0x4010000000, 0x4010000000, 0x100000, 0x1], + # ["intc@8000000", 0x800_0000, 0x800_0000, 0x50_000, 0x1], + # ["pl011@9000000", 0x900_0000, 0x900_0000, 0x1000, 0x1], + # ["pl031@9010000", 0x901_0000, 0x901_0000, 0x1000, 0x1], + # ["pl061@9030000", 0x903_0000, 0x903_0000, 0x1000, 0x1], + # a003000.virtio_mmio virtio_mmio@a003000 + # a003200.virtio_mmio virtio_mmio@a003200 + # ["virtio_mmio", 0xa00_0000, 0xa00_0000, 0x4000, 0x1], + ["low-devices", 0x0, 0x0, 0x0800_0000, 0x1], + ["low-devices2", 0x09000000, 0x09000000, 0x1000_0000, 0x1], + ["pci", 0x8000000000, 0x8000000000, 0x10000, 0x1], + ["pci", 0x4010000000, 0x4010000000, 0x100000, 0x1], ] # Emu_devices. # Name Base-Ipa Ipa_len Alloc-Irq Emu-Type EmuConfig. emu_devices = [ - ["gppt-gicd", 0x0800_0000, 0x1_0000, 0, 0x21, []], - ["gppt-gicr", 0x080a_0000, 0x2_0000, 0, 0x20, [1, 0x2_0000, 0]], # 1 vcpu, stride 0x20000, starts with pcpu 0 - ["gppt-gits", 0x0808_0000, 0x2_0000, 0, 0x22, [0x0808_0000]], # host_gits_base + ["gppt-gicd", 0x0800_0000, 0x1_0000, 0, 0x21, []], + ["gppt-gicr", 0x080a_0000, 0x2_0000, 0, 0x20, [1, 0x2_0000, 0]], # 1 vcpu, stride 0x20000, starts with pcpu 0 + ["gppt-gits", 0x0808_0000, 0x2_0000, 0, 0x22, [0x0808_0000]], # host_gits_base ] interrupt_mode = "passthrough" diff --git a/configs/vms/linux-qemu-aarch64-gicv3-b.toml b/configs/vms/linux-qemu-aarch64-gicv3-b.toml index 0cfadd40..5bfd84e3 100644 --- a/configs/vms/linux-qemu-aarch64-gicv3-b.toml +++ b/configs/vms/linux-qemu-aarch64-gicv3-b.toml @@ -10,8 +10,8 @@ vm_type = 1 # The number of virtual CPUs. cpu_num = 1 # Guest vm physical cpu sets. -phys_cpu_sets = [2] phys_cpu_ids = [1] +phys_cpu_sets = [2] # # Vm kernel configs @@ -32,8 +32,8 @@ dtb_path = "linux-qemu_gicv3-b.dtb" # The load address of the device tree blob (DTB). dtb_load_addr = 0xc000_0000 # Use `bios` to load initramfs. -bios_path = "initramfs-busybox-arm64.cpio.gz" bios_load_addr = 0xfe00_0000 +bios_path = "initramfs-busybox-arm64.cpio.gz" ## load from file system # image_location = "fs" @@ -52,7 +52,7 @@ bios_load_addr = 0xfe00_0000 # Memory regions with format (`base_paddr`, `size`, `flags`, `map_type`). # For `map_type`, 0 means `MAP_ALLOC`, 1 means `MAP_IDENTICAL`. memory_regions = [ - # [0xc000_0000, 0x4000_0000, 0x7, 1], # System RAM 1G MAP_IDENTICAL + # [0xc000_0000, 0x4000_0000, 0x7, 1], # System RAM 1G MAP_IDENTICAL ] # @@ -61,25 +61,23 @@ memory_regions = [ [devices] # Pass-through devices. passthrough_devices = [ - # ["intc@8000000", 0x800_0000, 0x800_0000, 0x50_000, 0x1], - # ["pl011@9000000", 0x900_0000, 0x900_0000, 0x1000, 0x1], - # ["pl031@9010000", 0x901_0000, 0x901_0000, 0x1000, 0x1], - # ["pl061@9030000", 0x903_0000, 0x903_0000, 0x1000, 0x1], - # a003000.virtio_mmio virtio_mmio@a003000 - # a003200.virtio_mmio virtio_mmio@a003200 - # ["virtio_mmio", 0xa00_0000, 0xa00_0000, 0x4000, 0x1], - - # ["low-memory", 0x0, 0x0, 0x2000_0000, 0x1], - ["pl011@9100000", 0x910_0000, 0x910_0000, 0x1000, 0x1], - # ["pci", 0x8000000000, 0x8000000000, 0x10000, 0x1], - # ["pci", 0x4010000000, 0x4010000000, 0x100000, 0x1], + # ["intc@8000000", 0x800_0000, 0x800_0000, 0x50_000, 0x1], + # ["pl011@9000000", 0x900_0000, 0x900_0000, 0x1000, 0x1], + # ["pl031@9010000", 0x901_0000, 0x901_0000, 0x1000, 0x1], + # ["pl061@9030000", 0x903_0000, 0x903_0000, 0x1000, 0x1], + # a003000.virtio_mmio virtio_mmio@a003000 + # a003200.virtio_mmio virtio_mmio@a003200 + # ["virtio_mmio", 0xa00_0000, 0xa00_0000, 0x4000, 0x1], + # ["low-memory", 0x0, 0x0, 0x2000_0000, 0x1], + ["pl011@9100000", 0x910_0000, 0x910_0000, 0x1000, 0x1], # ["pci", 0x8000000000, 0x8000000000, 0x10000, 0x1], + # ["pci", 0x4010000000, 0x4010000000, 0x100000, 0x1], ] # Emu_devices. # Name Base-Ipa Ipa_len Alloc-Irq Emu-Type EmuConfig. emu_devices = [ - ["gppt-gicd", 0x0800_0000, 0x1_0000, 0, 0x21, []], - ["gppt-gicr", 0x080c_0000, 0x2_0000, 0, 0x20, [1, 0x2_0000, 1]], # 1 vcpu, stride 0x20000 + ["gppt-gicd", 0x0800_0000, 0x1_0000, 0, 0x21, []], + ["gppt-gicr", 0x080c_0000, 0x2_0000, 0, 0x20, [1, 0x2_0000, 1]], # 1 vcpu, stride 0x20000 ] -interrupt_mode = "passthrough" \ No newline at end of file +interrupt_mode = "passthrough" diff --git a/configs/vms/linux-qemu-aarch64-smp2.toml b/configs/vms/linux-qemu-aarch64-smp2.toml index 46cafd0a..25d93746 100644 --- a/configs/vms/linux-qemu-aarch64-smp2.toml +++ b/configs/vms/linux-qemu-aarch64-smp2.toml @@ -47,7 +47,7 @@ dtb_load_addr = 0x8000_0000 # Memory regions with format (`base_paddr`, `size`, `flags`, `map_type`). # For `map_type`, 0 means `MAP_ALLOC`, 1 means `MAP_IDENTICAL`. memory_regions = [ - [0x8000_0000, 0x4000_0000, 0x7, 1], # System RAM 1G MAP_IDENTICAL + [0x8000_0000, 0x4000_0000, 0x7, 1], # System RAM 1G MAP_IDENTICAL ] # @@ -60,11 +60,9 @@ emu_devices = [] # Pass-through devices. passthrough_devices = [ - ["intc@8000000", 0x800_0000, 0x800_0000, 0x50_000, 0x1], - ["pl011@9000000", 0x900_0000, 0x900_0000, 0x1000, 0x1], - ["pl031@9010000", 0x901_0000, 0x901_0000, 0x1000, 0x1], - ["pl061@9030000", 0x903_0000, 0x903_0000, 0x1000, 0x1], - # a003000.virtio_mmio virtio_mmio@a003000 - # a003200.virtio_mmio virtio_mmio@a003200 - ["virtio_mmio", 0xa00_0000, 0xa00_0000, 0x4000, 0x1], -] \ No newline at end of file + ["intc@8000000", 0x800_0000, 0x800_0000, 0x50_000, 0x1], + ["pl011@9000000", 0x900_0000, 0x900_0000, 0x1000, 0x1], + ["pl031@9010000", 0x901_0000, 0x901_0000, 0x1000, 0x1], + ["pl061@9030000", 0x903_0000, 0x903_0000, 0x1000, 0x1], # a003000.virtio_mmio virtio_mmio@a003000 # a003200.virtio_mmio virtio_mmio@a003200 + ["virtio_mmio", 0xa00_0000, 0xa00_0000, 0x4000, 0x1], +] diff --git a/configs/vms/linux-qemu-aarch64-vm2.toml b/configs/vms/linux-qemu-aarch64-vm2.toml index 51048b6c..86310110 100644 --- a/configs/vms/linux-qemu-aarch64-vm2.toml +++ b/configs/vms/linux-qemu-aarch64-vm2.toml @@ -47,7 +47,7 @@ dtb_load_addr = 0x8000_0000 # Memory regions with format (`base_paddr`, `size`, `flags`, `map_type`). # For `map_type`, 0 means `MAP_ALLOC`, 1 means `MAP_IDENTICAL`. memory_regions = [ - [0x8000_0000, 0x4000_0000, 0x7, 1], # System RAM 1G MAP_IDENTICAL + [0x8000_0000, 0x4000_0000, 0x7, 1], # System RAM 1G MAP_IDENTICAL ] # @@ -56,16 +56,13 @@ memory_regions = [ [devices] # Pass-through devices passthrough_devices = [ - ["intc@8000000", 0x800_0000, 0x800_0000, 0x50_000, 0x1], - # map qemu uart2 as vm uart - ["pl011@9000000", 0x900_0000, 0x904_0000, 0x1000, 0x1], - ["pl031@9010000", 0x901_0000, 0x901_0000, 0x1000, 0x1], - ["pl061@9030000", 0x903_0000, 0x903_0000, 0x1000, 0x1], - # a003000.virtio_mmio virtio_mmio@a003000 - # a003200.virtio_mmio virtio_mmio@a003200 - ["virtio_mmio", 0xa00_0000, 0xa00_0000, 0x4000, 0x1], + ["intc@8000000", 0x800_0000, 0x800_0000, 0x50_000, 0x1], # map qemu uart2 as vm uart + ["pl011@9000000", 0x900_0000, 0x904_0000, 0x1000, 0x1], + ["pl031@9010000", 0x901_0000, 0x901_0000, 0x1000, 0x1], + ["pl061@9030000", 0x903_0000, 0x903_0000, 0x1000, 0x1], # a003000.virtio_mmio virtio_mmio@a003000 # a003200.virtio_mmio virtio_mmio@a003200 + ["virtio_mmio", 0xa00_0000, 0xa00_0000, 0x4000, 0x1], ] # Emu_devices # Name Base-Ipa Ipa_len Alloc-Irq Emu-Type EmuConfig -emu_devices = [] \ No newline at end of file +emu_devices = [] diff --git a/configs/vms/linux-qemu-aarch64.toml b/configs/vms/linux-qemu-aarch64.toml index 355f229c..9682325b 100644 --- a/configs/vms/linux-qemu-aarch64.toml +++ b/configs/vms/linux-qemu-aarch64.toml @@ -47,7 +47,7 @@ dtb_load_addr = 0x8000_0000 # Memory regions with format (`base_paddr`, `size`, `flags`, `map_type`). # For `map_type`, 0 means `MAP_ALLOC`, 1 means `MAP_IDENTICAL`. memory_regions = [ - # [0x8000_0000, 0x4000_0000, 0x7, 1], # System RAM 1G MAP_IDENTICAL + # [0x8000_0000, 0x4000_0000, 0x7, 1], # System RAM 1G MAP_IDENTICAL ] # @@ -56,19 +56,19 @@ memory_regions = [ [devices] # Pass-through devices. passthrough_devices = [ - # ["intc@8000000", 0x800_0000, 0x800_0000, 0x50_000, 0x1], - # ["pl011@9000000", 0x900_0000, 0x900_0000, 0x1000, 0x1], - # ["pl031@9010000", 0x901_0000, 0x901_0000, 0x1000, 0x1], - # ["pl061@9030000", 0x903_0000, 0x903_0000, 0x1000, 0x1], - # # a003000.virtio_mmio virtio_mmio@a003000 - # # a003200.virtio_mmio virtio_mmio@a003200 - # ["virtio_mmio", 0xa00_0000, 0xa00_0000, 0x4000, 0x1], - ["low-memory", 0x0, 0x0, 0x2000_0000, 0x1], - ["pci", 0x8000000000, 0x8000000000, 0x10000, 0x1], + # ["intc@8000000", 0x800_0000, 0x800_0000, 0x50_000, 0x1], + # ["pl011@9000000", 0x900_0000, 0x900_0000, 0x1000, 0x1], + # ["pl031@9010000", 0x901_0000, 0x901_0000, 0x1000, 0x1], + # ["pl061@9030000", 0x903_0000, 0x903_0000, 0x1000, 0x1], + # # a003000.virtio_mmio virtio_mmio@a003000 + # # a003200.virtio_mmio virtio_mmio@a003200 + # ["virtio_mmio", 0xa00_0000, 0xa00_0000, 0x4000, 0x1], + ["low-memory", 0x0, 0x0, 0x2000_0000, 0x1], + ["pci", 0x8000000000, 0x8000000000, 0x10000, 0x1], ] # Emu_devices. # Name Base-Ipa Ipa_len Alloc-Irq Emu-Type EmuConfig. emu_devices = [ - ["ivc-channel", 0xd000_0000, 0x1000_0000, 0x0, 0xa, []], -] \ No newline at end of file + ["ivc-channel", 0xd000_0000, 0x1000_0000, 0x0, 0xa, []], +] diff --git a/configs/vms/linux-rk3588-aarch64-smp-vm1.toml b/configs/vms/linux-rk3588-aarch64-smp-vm1.toml index 4bde427e..b085ab41 100644 --- a/configs/vms/linux-rk3588-aarch64-smp-vm1.toml +++ b/configs/vms/linux-rk3588-aarch64-smp-vm1.toml @@ -37,7 +37,6 @@ dtb_path = "aio-rk3588-jd4-vm1.dtb" ramdisk_path = "ramdisk.img" # ramdisk_path = "initramfs-busybox-arm64-vm1.img" - # load from file system. # image_location = "fs". ## The file path of the kernel image. @@ -55,9 +54,9 @@ ramdisk_path = "ramdisk.img" # Memory regions with format (`base_paddr`, `size`, `flags`, `map_type`). # For `map_type`, 0 means `MAP_ALLOC`, 1 means `MAP_IDENTICAL`. memory_regions = [ - # [0x0, 0x10_f000, 0x7, 1], # passthrough uncahed MAP_IDENTICAL - # [0x940_0000, 0xe6c00000, 0x7, 1], # ram 3G MAP_IDENTICAL - # [0x4000_0000, 0x4000_0000, 0x7, 1], # ram 1G MAP_IDENTICAL + # [0x0, 0x10_f000, 0x7, 1], # passthrough uncahed MAP_IDENTICAL + # [0x940_0000, 0xe6c00000, 0x7, 1], # ram 3G MAP_IDENTICAL + # [0x4000_0000, 0x4000_0000, 0x7, 1], # ram 1G MAP_IDENTICAL ] # @@ -71,6 +70,6 @@ emu_devices = [] # Pass-through devices. # Name Base-Ipa Base-Pa Length Alloc-Irq. passthrough_devices = [ - # ["uart@feb40000", 0xfeb4_0000, 0xfeb4_0000, 0x1000, 0x1], - # ["uart@feb50000", 0xfeb5_0000, 0xfeb5_0000, 0x1000, 0x1], + # ["uart@feb40000", 0xfeb4_0000, 0xfeb4_0000, 0x1000, 0x1], + # ["uart@feb50000", 0xfeb5_0000, 0xfeb5_0000, 0x1000, 0x1], ] diff --git a/configs/vms/linux-rk3588-aarch64-smp-vm2.toml b/configs/vms/linux-rk3588-aarch64-smp-vm2.toml index 32181b06..daf93cbb 100644 --- a/configs/vms/linux-rk3588-aarch64-smp-vm2.toml +++ b/configs/vms/linux-rk3588-aarch64-smp-vm2.toml @@ -36,7 +36,6 @@ dtb_path = "aio-rk3588-jd4-vm2.dtb" # The file path of the ramdisk image. ramdisk_path = "ramdisk.img" - # load from file system. # image_location = "fs". ## The file path of the kernel image. @@ -54,9 +53,9 @@ ramdisk_path = "ramdisk.img" # Memory regions with format (`base_paddr`, `size`, `flags`, `map_type`). # For `map_type`, 0 means `MAP_ALLOC`, 1 means `MAP_IDENTICAL`. memory_regions = [ - # [0x0, 0x10_f000, 0x7, 1], # passthrough uncahed MAP_IDENTICAL - # [0x940_0000, 0xe6c00000, 0x7, 1], # ram 3G MAP_IDENTICAL - # [0x4000_0000, 0x4000_0000, 0x7, 1], # ram 1G MAP_IDENTICAL + # [0x0, 0x10_f000, 0x7, 1], # passthrough uncahed MAP_IDENTICAL + # [0x940_0000, 0xe6c00000, 0x7, 1], # ram 3G MAP_IDENTICAL + # [0x4000_0000, 0x4000_0000, 0x7, 1], # ram 1G MAP_IDENTICAL ] # @@ -70,6 +69,6 @@ emu_devices = [] # Pass-through devices. # Name Base-Ipa Base-Pa Length Alloc-Irq. passthrough_devices = [ - # ["uart@feb40000", 0xfeb4_0000, 0xfeb4_0000, 0x1000, 0x1], - # ["uart@feb50000", 0xfeb5_0000, 0xfeb4_0000, 0x1000, 0x1], + # ["uart@feb40000", 0xfeb4_0000, 0xfeb4_0000, 0x1000, 0x1], + # ["uart@feb50000", 0xfeb5_0000, 0xfeb4_0000, 0x1000, 0x1], ] diff --git a/configs/vms/linux-rk3588-aarch64-smp.toml b/configs/vms/linux-rk3588-aarch64-smp.toml index 16d7c973..6c33a9e8 100644 --- a/configs/vms/linux-rk3588-aarch64-smp.toml +++ b/configs/vms/linux-rk3588-aarch64-smp.toml @@ -36,7 +36,6 @@ dtb_path = "aio-rk3588-jd4.dtb" # The file path of the ramdisk image. ramdisk_path = "ramdisk.img" - # load from file system. # image_location = "fs". ## The file path of the kernel image. @@ -54,9 +53,9 @@ ramdisk_path = "ramdisk.img" # Memory regions with format (`base_paddr`, `size`, `flags`, `map_type`). # For `map_type`, 0 means `MAP_ALLOC`, 1 means `MAP_IDENTICAL`. memory_regions = [ - # [0x0, 0x10_f000, 0x7, 1], # passthrough uncahed MAP_IDENTICAL - # [0x940_0000, 0xe6c00000, 0x7, 1], # ram 3G MAP_IDENTICAL - # [0x4000_0000, 0x4000_0000, 0x7, 1], # ram 1G MAP_IDENTICAL + # [0x0, 0x10_f000, 0x7, 1], # passthrough uncahed MAP_IDENTICAL + # [0x940_0000, 0xe6c00000, 0x7, 1], # ram 3G MAP_IDENTICAL + # [0x4000_0000, 0x4000_0000, 0x7, 1], # ram 1G MAP_IDENTICAL ] # diff --git a/configs/vms/linux-rk3588-aarch64.toml b/configs/vms/linux-rk3588-aarch64.toml index 4c59761a..0cba48fd 100644 --- a/configs/vms/linux-rk3588-aarch64.toml +++ b/configs/vms/linux-rk3588-aarch64.toml @@ -47,8 +47,8 @@ dtb_path = "linux-rk3588.dtb" # Memory regions with format (`base_paddr`, `size`, `flags`, `map_type`). # For `map_type`, 0 means `MAP_ALLOC`, 1 means `MAP_IDENTICAL`. memory_regions = [ - [0x0, 0x10_f000, 0x37, 1], # passthrough uncahed MAP_IDENTICAL - [0x940_0000, 0x76c00000, 0x7, 1], # ram 3G MAP_IDENTICAL + [0x0, 0x10_f000, 0x37, 1], # passthrough uncahed MAP_IDENTICAL + [0x940_0000, 0x76c00000, 0x7, 1], # ram 3G MAP_IDENTICAL ] # @@ -62,39 +62,39 @@ emu_devices = [] # Pass-through devices. # Name Base-Ipa Base-Pa Length Alloc-Irq. passthrough_devices = [ - [ - "ramoops", - 0x11_0000, - 0x11_0000, - 0xf_0000, - 0x1, - ], - [ - "sram", - 0x10_f000, - 0x10_f000, - 0x1000, - 0x1, - ], - [ - "gpu", - 0xfb00_0000, - 0xfb00_0000, - 0x200000, - 0x1, - ], - [ - "uart8250 UART", - 0xfd00_0000, - 0xfd00_0000, - 0x2000000, - 0x1, - ], - [ - "usb", - 0xfc00_0000, - 0xfc00_0000, - 0x1000000, - 0x1, - ], -] \ No newline at end of file + [ + "ramoops", + 0x11_0000, + 0x11_0000, + 0xf_0000, + 0x1, + ], + [ + "sram", + 0x10_f000, + 0x10_f000, + 0x1000, + 0x1, + ], + [ + "gpu", + 0xfb00_0000, + 0xfb00_0000, + 0x200000, + 0x1, + ], + [ + "uart8250 UART", + 0xfd00_0000, + 0xfd00_0000, + 0x2000000, + 0x1, + ], + [ + "usb", + 0xfc00_0000, + 0xfc00_0000, + 0x1000000, + 0x1, + ], +] diff --git a/configs/vms/nimbos-aarch64.toml b/configs/vms/nimbos-aarch64.toml index 8e3fe0dd..52ee179d 100644 --- a/configs/vms/nimbos-aarch64.toml +++ b/configs/vms/nimbos-aarch64.toml @@ -66,7 +66,7 @@ emu_devices = [ # Name Base-Ipa Base-Pa Length Alloc-Irq. passthrough_devices = [ # ["intc@8000000", 0x801_0000, 0x804_0000, 0x2_000, 0x1], - ["intc@8000000", 0x800_0000, 0x800_0000, 0x40000, 0x1], + ["intc@8000000", 0x800_0000, 0x800_0000, 0x40000, 0x1], ["pl011@9000000", 0x900_0000, 0x904_0000, 0x1000, 0x1], ["pl031@9010000", 0x901_0000, 0x901_0000, 0x1000, 0x1], ["pl061@9030000", 0x903_0000, 0x903_0000, 0x1000, 0x1], # a003000.virtio_mmio virtio_mmio@a003000 # a003200.virtio_mmio virtio_mmio@a003200 diff --git a/configs/vms/nimbos-riscv64.toml b/configs/vms/nimbos-riscv64.toml index 6c29657c..5b08bc1d 100644 --- a/configs/vms/nimbos-riscv64.toml +++ b/configs/vms/nimbos-riscv64.toml @@ -40,7 +40,7 @@ kernel_load_addr = 0x9020_0000 # Memory regions with format (`base_paddr`, `size`, `flags`, `map_type`). # For `map_type`, 0 means `MAP_ALLOC`, 1 means `MAP_IDENTICAL`. memory_regions = [ - [0x9000_0000, 0x100_0000, 0xf, 0], # Low RAM 16M 0b1111 R|W|EXECUTE|U + [0x9000_0000, 0x100_0000, 0xf, 0], # Low RAM 16M 0b1111 R|W|EXECUTE|U ] # @@ -54,6 +54,6 @@ emu_devices = [] # Pass-through devices. # Name Base-Ipa Base-Pa Length Alloc-Irq. passthrough_devices = [ - ["PLIC@c000000", 0x0c00_0000, 0x0c00_0000, 0x21_0000, 0x1], - ["UART@10000000", 0x1000_0000, 0x1000_0000, 0x1000, 0x1], -] \ No newline at end of file + ["PLIC@c000000", 0x0c00_0000, 0x0c00_0000, 0x21_0000, 0x1], + ["UART@10000000", 0x1000_0000, 0x1000_0000, 0x1000, 0x1], +] diff --git a/configs/vms/nimbos-x86_64.toml b/configs/vms/nimbos-x86_64.toml index bc19d75d..3e12b78f 100644 --- a/configs/vms/nimbos-x86_64.toml +++ b/configs/vms/nimbos-x86_64.toml @@ -40,7 +40,7 @@ bios_load_addr = 0x8000 # Memory regions with format (`base_paddr`, `size`, `flags`, `map_type`). # For `map_type`, 0 means `MAP_ALLOC`, 1 means `MAP_IDENTICAL`. memory_regions = [ - [0x0000_0000, 0x100_0000, 0x7, 0], # Low RAM 16M 0b111 R|W|EXECUTE + [0x0000_0000, 0x100_0000, 0x7, 0], # Low RAM 16M 0b111 R|W|EXECUTE ] # @@ -55,25 +55,25 @@ emu_devices = [] # Pass-through devices. # Name Base-Ipa Base-Pa Length Alloc-Irq. passthrough_devices = [ - [ - "IO APIC", - 0xfec0_0000, - 0xfec0_0000, - 0x1000, - 0x1, - ], - [ - "Local APIC", - 0xfee0_0000, - 0xfee0_0000, - 0x1000, - 0x1, - ], - [ - "HPET", - 0xfed0_0000, - 0xfed0_0000, - 0x1000, - 0x1, - ], -] \ No newline at end of file + [ + "IO APIC", + 0xfec0_0000, + 0xfec0_0000, + 0x1000, + 0x1, + ], + [ + "Local APIC", + 0xfee0_0000, + 0xfee0_0000, + 0x1000, + 0x1, + ], + [ + "HPET", + 0xfed0_0000, + 0xfed0_0000, + 0x1000, + 0x1, + ], +] diff --git a/configs/vms/starry-aarch64.toml b/configs/vms/starry-aarch64.toml index c02514a8..2c37c938 100644 --- a/configs/vms/starry-aarch64.toml +++ b/configs/vms/starry-aarch64.toml @@ -40,7 +40,7 @@ dtb_path = "starry-aarch64.bin" # Memory regions with format (`base_paddr`, `size`, `flags`, `map_type`). # For `map_type`, 0 means `MAP_ALLOC`, 1 means `MAP_IDENTICAL`. memory_regions = [ - [0x4000_0000, 0x100_0000, 0x7, 0], # Low RAM 16M 0b00111 R|W|EXECUTE + [0x4000_0000, 0x100_0000, 0x7, 0], # Low RAM 16M 0b00111 R|W|EXECUTE ] # @@ -54,11 +54,9 @@ emu_devices = [] # Pass-through devices. # Name Base-Ipa Base-Pa Length Alloc-Irq. passthrough_devices = [ - ["intc@8000000", 0x800_0000, 0x800_0000, 0x50_000, 0x1], - ["pl011@9000000", 0x900_0000, 0x900_0000, 0x1000, 0x1], - ["pl031@9010000", 0x901_0000, 0x901_0000, 0x1000, 0x1], - ["pl061@9030000", 0x903_0000, 0x903_0000, 0x1000, 0x1], - # a003000.virtio_mmio virtio_mmio@a003000 - # a003200.virtio_mmio virtio_mmio@a003200 - ["virtio_mmio", 0xa00_0000, 0xa00_0000, 0x4000, 0x1], -] \ No newline at end of file + ["intc@8000000", 0x800_0000, 0x800_0000, 0x50_000, 0x1], + ["pl011@9000000", 0x900_0000, 0x900_0000, 0x1000, 0x1], + ["pl031@9010000", 0x901_0000, 0x901_0000, 0x1000, 0x1], + ["pl061@9030000", 0x903_0000, 0x903_0000, 0x1000, 0x1], # a003000.virtio_mmio virtio_mmio@a003000 # a003200.virtio_mmio virtio_mmio@a003200 + ["virtio_mmio", 0xa00_0000, 0xa00_0000, 0x4000, 0x1], +] diff --git a/configs/vms/starry-riscv64.toml b/configs/vms/starry-riscv64.toml index 0d238ae6..92961f9c 100644 --- a/configs/vms/starry-riscv64.toml +++ b/configs/vms/starry-riscv64.toml @@ -33,7 +33,7 @@ dtb_load_addr = 0x8000_0000 # Memory regions with format (`base_paddr`, `size`, `flags`, `map_type`). # For `map_type`, 0 means `MAP_ALLOC`, 1 means `MAP_IDENTICAL`. memory_regions = [ - [0x8000_0000, 0x100_0000, 0xf, 0], # Low RAM 16M 0b1111 R|W|EXECUTE|U + [0x8000_0000, 0x100_0000, 0xf, 0], # Low RAM 16M 0b1111 R|W|EXECUTE|U ] # @@ -47,18 +47,18 @@ emu_devices = [] # Pass-through devices # Name Base-Ipa Base-Pa Length Alloc-Irq passthrough_devices = [ - [ - "PLIC@c000000", - 0x0c00_0000, - 0x0c00_0000, - 0x21_0000, - 0x1, - ], - [ - "UART@10000000", - 0x1000_0000, - 0x1000_0000, - 0x1000, - 0x1, - ], -] \ No newline at end of file + [ + "PLIC@c000000", + 0x0c00_0000, + 0x0c00_0000, + 0x21_0000, + 0x1, + ], + [ + "UART@10000000", + 0x1000_0000, + 0x1000_0000, + 0x1000, + 0x1, + ], +] diff --git a/configs/vms/starry-x86_64.toml b/configs/vms/starry-x86_64.toml index 89bc3488..891e55d4 100644 --- a/configs/vms/starry-x86_64.toml +++ b/configs/vms/starry-x86_64.toml @@ -40,7 +40,7 @@ dtb_path = "starry-aarch64.bin" # Memory regions with format (`base_paddr`, `size`, `flags`, `map_type`). # For `map_type`, 0 means `MAP_ALLOC`, 1 means `MAP_IDENTICAL`. memory_regions = [ - [0x4000_0000, 0x100_0000, 0x7, 0], # Low RAM 16M 0b00111 R|W|EXECUTE + [0x4000_0000, 0x100_0000, 0x7, 0], # Low RAM 16M 0b00111 R|W|EXECUTE ] # @@ -54,11 +54,9 @@ emu_devices = [] # Pass-through devices. # Name Base-Ipa Base-Pa Length Alloc-Irq. passthrough_devices = [ - ["intc@8000000", 0x800_0000, 0x800_0000, 0x50_000, 0x1], - ["pl011@9000000", 0x900_0000, 0x900_0000, 0x1000, 0x1], - ["pl031@9010000", 0x901_0000, 0x901_0000, 0x1000, 0x1], - ["pl061@9030000", 0x903_0000, 0x903_0000, 0x1000, 0x1], - # a003000.virtio_mmio virtio_mmio@a003000 - # a003200.virtio_mmio virtio_mmio@a003200 - ["virtio_mmio", 0xa00_0000, 0xa00_0000, 0x4000, 0x1], -] \ No newline at end of file + ["intc@8000000", 0x800_0000, 0x800_0000, 0x50_000, 0x1], + ["pl011@9000000", 0x900_0000, 0x900_0000, 0x1000, 0x1], + ["pl031@9010000", 0x901_0000, 0x901_0000, 0x1000, 0x1], + ["pl061@9030000", 0x903_0000, 0x903_0000, 0x1000, 0x1], # a003000.virtio_mmio virtio_mmio@a003000 # a003200.virtio_mmio virtio_mmio@a003200 + ["virtio_mmio", 0xa00_0000, 0xa00_0000, 0x4000, 0x1], +] From 210fa9110c12f123356e48e4bc171b690d0dd68a Mon Sep 17 00:00:00 2001 From: Josen-B <65878371+Josen-B@users.noreply.github.com> Date: Wed, 3 Sep 2025 16:16:16 +0800 Subject: [PATCH 143/219] local board test (#245) * local board test * Separate phytiumpi and rk3568 --- .github/workflows/build.yml | 2 +- .github/workflows/test.yml | 65 ++++++++++++++++++++++++++++++++++--- .gitignore | 1 + 3 files changed, 62 insertions(+), 6 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index d5da501d..e5f5c09c 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1,6 +1,6 @@ name: Build, fmt, and clippy -on: [push, pull_request] +on: [push, pull_request, workflow_dispatch] jobs: clippy: diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 660ac6bd..8a646cdc 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -1,18 +1,17 @@ name: Test CI -on: [push, pull_request] +on: [push, pull_request, workflow_dispatch] env: qemu-version: 8.2.0 arceos-apps: '68054e8' jobs: - test_local: - runs-on: ${{ matrix.os }} + aarch64-generic-qemu: + runs-on: [self-hosted, linux, docker] strategy: fail-fast: false matrix: - os: [ubuntu-latest] plat: [aarch64-generic] rust-toolchain: [nightly-2025-05-20, nightly] steps: @@ -49,7 +48,63 @@ jobs: export VM_CONFIGS="$(pwd)/configs/vms/nimbos-aarch64.toml" ./task.py run --plat ${{ matrix.plat }} --vmconfigs $VM_CONFIGS --features fs --arceos-args DISK_IMG=$DISK_IMG,BUS=mmio,BLK=y,MEM=8g - test_remote: + aarch64-generic-phytiumpi: + runs-on: [self-hosted, linux, docker] + strategy: + fail-fast: false + matrix: + plat: [aarch64-generic] + rust-toolchain: [nightly-2025-05-20] + steps: + - uses: actions/checkout@v4 + - uses: dtolnay/rust-toolchain@stable + with: + toolchain: ${{ matrix.rust-toolchain }} + components: rust-src + - uses: Swatinem/rust-cache@v2 + - run: cargo install cargo-binutils + - name: Update rust-toolchain.toml + run: | + sed -i "s/^channel = .*/channel = \"${{ matrix.rust-toolchain }}\"/" rust-toolchain.toml + - name: Run guests on phytiumpi + continue-on-error: ${{ matrix.rust-toolchain == 'nightly' }} + run: | + cargo install ostool + source ./activate.sh + git clone https://github.com/arceos-hypervisor/axboard_test + cd axboard_test + ./run.sh phytiumpi-arceos + cd .. + + aarch64-generic-rk3568: + runs-on: [self-hosted, linux, docker] + strategy: + fail-fast: false + matrix: + plat: [aarch64-generic] + rust-toolchain: [nightly-2025-05-20] + steps: + - uses: actions/checkout@v4 + - uses: dtolnay/rust-toolchain@stable + with: + toolchain: ${{ matrix.rust-toolchain }} + components: rust-src + - uses: Swatinem/rust-cache@v2 + - run: cargo install cargo-binutils + - name: Update rust-toolchain.toml + run: | + sed -i "s/^channel = .*/channel = \"${{ matrix.rust-toolchain }}\"/" rust-toolchain.toml + - name: Run guests on rk3568 + continue-on-error: ${{ matrix.rust-toolchain == 'nightly' }} + run: | + cargo install ostool + source ./activate.sh + git clone https://github.com/arceos-hypervisor/axboard_test + cd axboard_test + ./run.sh rk3568-arceos + cd .. + + x86-qemu-q35: runs-on: self-hosted strategy: fail-fast: false diff --git a/.gitignore b/.gitignore index 847befe2..a229e4bc 100644 --- a/.gitignore +++ b/.gitignore @@ -25,6 +25,7 @@ __pycache__/ /**/.axconfig.* /**/.hvconfig.* /**/.project.* +/**/.board.* # dev env /crates From f3a3ed1d8d23f2d8ad4b8ea871520fda40336a09 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E7=9D=BF?= Date: Fri, 5 Sep 2025 12:42:48 +0800 Subject: [PATCH 144/219] feat: Update dependencies and add new device tree for aarch64 QEMU - Updated Cargo.toml to include a new dependency for 4-level EPT. - Added a new device tree source file for aarch64 QEMU with GICv3 support. - Modified the Linux QEMU AArch64 configuration to reflect changes in kernel image and device tree blob paths. - Enhanced vCPU management by improving error handling and code clarity in vcpus.rs. --- .github/workflows/test.yml | 4 +- Cargo.lock | 546 +++++++++++----------------- Cargo.toml | 11 +- configs/vms/aarch64-qemu-gicv3.dts | 397 ++++++++++++++++++++ configs/vms/linux-qemu-aarch64.toml | 33 +- src/vmm/vcpus.rs | 9 +- 6 files changed, 646 insertions(+), 354 deletions(-) create mode 100644 configs/vms/aarch64-qemu-gicv3.dts diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 8a646cdc..6a72aff0 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -46,7 +46,7 @@ jobs: cargo version export DISK_IMG="${{ github.workspace }}/disk-aarch64.img" export VM_CONFIGS="$(pwd)/configs/vms/nimbos-aarch64.toml" - ./task.py run --plat ${{ matrix.plat }} --vmconfigs $VM_CONFIGS --features fs --arceos-args DISK_IMG=$DISK_IMG,BUS=mmio,BLK=y,MEM=8g + ./task.py run --plat ${{ matrix.plat }} --vmconfigs $VM_CONFIGS --features fs,ept-level-4 --arceos-args DISK_IMG=$DISK_IMG,BUS=mmio,BLK=y,MEM=8g aarch64-generic-phytiumpi: runs-on: [self-hosted, linux, docker] @@ -143,6 +143,6 @@ jobs: cargo version export DISK_IMG="${{ github.workspace }}/disk-x86_64.img" export VM_CONFIGS="$(pwd)/configs/vms/nimbos-x86_64.toml" - ./task.py run --plat ${{ matrix.plat }} --vmconfigs $VM_CONFIGS --features fs --arceos-args DISK_IMG=$DISK_IMG,BLK=y,MEM=8g + ./task.py run --plat ${{ matrix.plat }} --vmconfigs $VM_CONFIGS --features fs,ept-level-4 --arceos-args DISK_IMG=$DISK_IMG,BLK=y,MEM=8g diff --git a/Cargo.lock b/Cargo.lock index 1591c1a0..99085630 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -42,15 +42,6 @@ version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa" -[[package]] -name = "aho-corasick" -version = "1.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" -dependencies = [ - "memchr", -] - [[package]] name = "allocator" version = "0.1.1" @@ -117,7 +108,7 @@ version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4ce5f140efb4e707ea8f8e894d5f710500e373be1c4435d56b28d1fd1f843341" dependencies = [ - "bitflags 2.9.3", + "bitflags 2.9.4", "cfg-if", "embedded-hal-nb", "fdt-parser", @@ -133,7 +124,7 @@ checksum = "b0674a1ddeecb70197781e945de4b3b8ffb61fa939a5597bcf48503737663100" [[package]] name = "arceos_api" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#7fe72320f5d5c888b8ee9b099342376f97b733b5" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#f873ef7913033a15169e5df0774fd9510a2cdc50" dependencies = [ "axalloc", "axconfig", @@ -156,7 +147,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f251a1a74133f802b55eaf5e340107b0024457aa9b2ac3c72074501bfa8509a5" dependencies = [ "aarch64-cpu", - "bitflags 2.9.3", + "bitflags 2.9.4", "enum_dispatch", "log", "paste", @@ -164,15 +155,6 @@ dependencies = [ "tock-registers 0.9.0", ] -[[package]] -name = "arm_gicv2" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47d25e73c949c69f75d1b9dba39c5475523403b31eb8c2fdc99da4dc33bc1aca" -dependencies = [ - "tock-registers 0.8.1", -] - [[package]] name = "arm_pl011" version = "0.1.0" @@ -194,20 +176,18 @@ dependencies = [ [[package]] name = "arm_vcpu" version = "0.1.0" -source = "git+https://github.com/Josen-B/arm_vcpu?branch=3_level_page#017b8fb86c93de92baef443408fa0c64096c986c" +source = "git+https://github.com/arceos-hypervisor/axvm.git?branch=dev-irq#e9979627e138a89b300dd33cb03d5c742cfbfeb9" dependencies = [ "aarch64-cpu", - "axaddrspace 0.1.0 (git+https://github.com/arceos-hypervisor/axaddrspace?branch=3_level_page)", - "axcpu", + "axaddrspace", "axdevice_base", "axerrno", - "axvcpu 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "axvisor_api 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "axvcpu", + "axvisor_api", "log", "numeric-enum-macro", "percpu", "spin 0.10.0", - "tock-registers 0.9.0", ] [[package]] @@ -217,10 +197,10 @@ source = "git+https://github.com/arceos-hypervisor/arm_vgic.git#81338d6dd8a9dab0 dependencies = [ "aarch64-cpu", "aarch64_sysreg", - "axaddrspace 0.1.0 (git+https://github.com/arceos-hypervisor/axaddrspace?branch=3_level_page)", + "axaddrspace", "axdevice_base", "axerrno", - "axvisor_api 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "axvisor_api", "bitmaps", "log", "memory_addr", @@ -260,30 +240,11 @@ checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" [[package]] name = "axaddrspace" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/axaddrspace?branch=3_level_page#26421d03eecf36f4eaea60670c78d6076915344d" -dependencies = [ - "axerrno", - "bit_field", - "bitflags 2.9.3", - "cfg-if", - "lazyinit", - "log", - "memory_addr", - "memory_set", - "numeric-enum-macro", - "page_table_entry", - "page_table_multiarch", - "x86", -] - -[[package]] -name = "axaddrspace" -version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/axaddrspace.git#925d5deb05e4d75b26eb63233264838b08c5ea9e" +source = "git+https://github.com/arceos-hypervisor/axaddrspace#9f1ae0ee39396aed8605ca1210322a212f06561c" dependencies = [ "axerrno", "bit_field", - "bitflags 2.9.3", + "bitflags 2.9.4", "cfg-if", "lazyinit", "log", @@ -298,7 +259,7 @@ dependencies = [ [[package]] name = "axalloc" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#7fe72320f5d5c888b8ee9b099342376f97b733b5" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#f873ef7913033a15169e5df0774fd9510a2cdc50" dependencies = [ "allocator", "axerrno", @@ -311,7 +272,7 @@ dependencies = [ [[package]] name = "axconfig" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#7fe72320f5d5c888b8ee9b099342376f97b733b5" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#f873ef7913033a15169e5df0774fd9510a2cdc50" dependencies = [ "axconfig-macros", ] @@ -341,7 +302,7 @@ dependencies = [ [[package]] name = "axcpu" version = "0.2.2" -source = "git+https://github.com/arceos-hypervisor/axcpu?branch=vmm#833b96e8f2e5d7c83de85578222dc1b54a783487" +source = "git+https://github.com/arceos-hypervisor/axcpu?branch=vmm#b318d841e1747b932207ca782d773472abe46683" dependencies = [ "aarch64-cpu", "cfg-if", @@ -354,7 +315,7 @@ dependencies = [ "page_table_multiarch", "paste", "percpu", - "riscv 0.14.0", + "riscv", "static_assertions", "tock-registers 0.9.0", "x86", @@ -367,7 +328,7 @@ version = "0.1.0" source = "git+https://github.com/arceos-hypervisor/axdevice.git#c4a0965ca45a3b9a34845fa774b1bd90fc8f4573" dependencies = [ "arm_vgic", - "axaddrspace 0.1.0 (git+https://github.com/arceos-hypervisor/axaddrspace?branch=3_level_page)", + "axaddrspace", "axdevice_base", "axerrno", "axvmconfig", @@ -384,7 +345,7 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "67c43baf33ed4790ffd3365c4ca027a1e3d1c2b6058f4605b67bca04cadf48d5" dependencies = [ - "axaddrspace 0.1.0 (git+https://github.com/arceos-hypervisor/axaddrspace?branch=3_level_page)", + "axaddrspace", "axerrno", "axvmconfig", "cfg-if", @@ -395,7 +356,7 @@ dependencies = [ [[package]] name = "axdriver" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#7fe72320f5d5c888b8ee9b099342376f97b733b5" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#f873ef7913033a15169e5df0774fd9510a2cdc50" dependencies = [ "arm-gic-driver", "axalloc", @@ -458,7 +419,7 @@ dependencies = [ [[package]] name = "axfeat" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#7fe72320f5d5c888b8ee9b099342376f97b733b5" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#f873ef7913033a15169e5df0774fd9510a2cdc50" dependencies = [ "axalloc", "axdriver", @@ -474,7 +435,7 @@ dependencies = [ [[package]] name = "axfs" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#7fe72320f5d5c888b8ee9b099342376f97b733b5" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#f873ef7913033a15169e5df0774fd9510a2cdc50" dependencies = [ "axdriver", "axdriver_block", @@ -521,27 +482,27 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dcba2006898d7879d456a9c34b9c9460cb536f5bf69d1d5d7d0e0f19f073368d" dependencies = [ "axerrno", - "bitflags 2.9.3", + "bitflags 2.9.4", "log", ] [[package]] name = "axhal" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#7fe72320f5d5c888b8ee9b099342376f97b733b5" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#f873ef7913033a15169e5df0774fd9510a2cdc50" dependencies = [ "aarch64-cpu", "axalloc", "axconfig", "axcpu", "axlog", - "axplat 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "axplat 0.2.0", "axplat-aarch64-qemu-virt", "axplat-loongarch64-qemu-virt", "axplat-riscv64-qemu-virt", - "axplat-x86-pc 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "axplat-x86-pc 0.2.0", "cfg-if", - "heapless", + "heapless 0.8.0", "kernel_guard", "lazyinit", "linkme", @@ -572,7 +533,7 @@ dependencies = [ [[package]] name = "axlog" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#7fe72320f5d5c888b8ee9b099342376f97b733b5" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#f873ef7913033a15169e5df0774fd9510a2cdc50" dependencies = [ "cfg-if", "crate_interface", @@ -583,7 +544,7 @@ dependencies = [ [[package]] name = "axmm" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#7fe72320f5d5c888b8ee9b099342376f97b733b5" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#f873ef7913033a15169e5df0774fd9510a2cdc50" dependencies = [ "axalloc", "axconfig", @@ -599,7 +560,7 @@ dependencies = [ [[package]] name = "axns" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#7fe72320f5d5c888b8ee9b099342376f97b733b5" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#f873ef7913033a15169e5df0774fd9510a2cdc50" dependencies = [ "crate_interface", "lazyinit", @@ -608,11 +569,10 @@ dependencies = [ [[package]] name = "axplat" version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c86cdb48cf1fbd432f4326ab0852b696ac49442b0ea0aed3401cb0bbe370a19f" +source = "git+https://github.com/arceos-hypervisor/axplat_crates.git?branch=vmm#ea596c55acaf25401fe905307d7cae2cf39030e8" dependencies = [ - "axplat-macros 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "bitflags 2.9.3", + "axplat-macros 0.1.0 (git+https://github.com/arceos-hypervisor/axplat_crates.git?branch=vmm)", + "bitflags 2.9.4", "const-str", "crate_interface", "handler_table", @@ -622,11 +582,12 @@ dependencies = [ [[package]] name = "axplat" -version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/axplat_crates.git?branch=vmm#ea596c55acaf25401fe905307d7cae2cf39030e8" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4de04c54b63bf2ca1ff202733d2516da49d7779649cdb2f9c4ecf22909e6810" dependencies = [ - "axplat-macros 0.1.0 (git+https://github.com/arceos-hypervisor/axplat_crates.git?branch=vmm)", - "bitflags 2.9.3", + "axplat-macros 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "bitflags 2.9.4", "const-str", "crate_interface", "handler_table", @@ -636,8 +597,8 @@ dependencies = [ [[package]] name = "axplat-aarch64-dyn" -version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/axplat-aarch64-dyn#c4a7f02876f035e3be34412ac0f41a3f7518fe4e" +version = "0.1.2" +source = "git+https://github.com/arceos-hypervisor/axplat-aarch64-dyn#7fc2d8ebb4ae334e2ee83d33df6d1ac2e988025a" dependencies = [ "aarch64-cpu", "aarch64-cpu-ext", @@ -645,9 +606,9 @@ dependencies = [ "arm-gic-driver", "axconfig-macros", "axcpu", - "axplat 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "axplat 0.2.0", "fdt-parser", - "heapless", + "heapless 0.8.0", "lazyinit", "log", "memory_addr", @@ -672,32 +633,33 @@ dependencies = [ [[package]] name = "axplat-aarch64-peripherals" -version = "0.1.1" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f3455ad3c2e0da36047388ac263aa6cf6b80ad80a2d9f1186d73fec2f0cafc7" +checksum = "5a9a6548290a150059eb2ae015dc58d9b3d652461760327b95a490666129974c" dependencies = [ "aarch64-cpu", - "arm_gicv2", + "arm-gic-driver", "arm_pl011", "arm_pl031", "axcpu", - "axplat 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "axplat 0.2.0", "int_ratio", "kspin", "lazyinit", "log", "page_table_entry", + "spin 0.10.0", ] [[package]] name = "axplat-aarch64-qemu-virt" -version = "0.1.0" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d5d75b950e70a6548b8537aecded7ccafdd3ec639057c4c7c7d6d05b09d0e4d" +checksum = "6f03bfe81ebc5b2f567eecadcab221107b90f394485dd0da39334411a676d81a" dependencies = [ "axconfig-macros", "axcpu", - "axplat 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "axplat 0.2.0", "axplat-aarch64-peripherals", "log", "page_table_entry", @@ -705,13 +667,13 @@ dependencies = [ [[package]] name = "axplat-loongarch64-qemu-virt" -version = "0.1.0" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edb82011898513ca97dce6861b68a97eb56608ddb974a727cd761083c2bd8836" +checksum = "8c404064c74824b2c509e1d84f2ae0cbd9240a3274fb4053dc81b9ad120b5962" dependencies = [ "axconfig-macros", "axcpu", - "axplat 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "axplat 0.2.0", "kspin", "lazyinit", "log", @@ -743,37 +705,36 @@ dependencies = [ [[package]] name = "axplat-riscv64-qemu-virt" -version = "0.1.0" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40f16634061d2efb7a0ee5fd9ec339d75547b3a967d238b9ba5711c5c6f01c5a" +checksum = "b8d95d76dfa65d75d07380ac13692c3b0c5bd6ae5b68df7bbede1f2e7181027a" dependencies = [ "axconfig-macros", "axcpu", - "axplat 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "axplat 0.2.0", "log", - "riscv 0.14.0", + "riscv", "sbi-rt", ] [[package]] name = "axplat-x86-pc" version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05b1b3bee47e2965347b943c86adb1a65555d90e4d5e6271fe99489957520590" +source = "git+https://github.com/arceos-hypervisor/axplat_crates.git?branch=vmm#ea596c55acaf25401fe905307d7cae2cf39030e8" dependencies = [ "axconfig-macros", "axcpu", - "axplat 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "bitflags 2.9.3", - "heapless", + "axplat 0.1.0", + "bitflags 2.9.4", + "heapless 0.8.0", "int_ratio", "kspin", "lazyinit", "log", "multiboot", "percpu", - "raw-cpuid 11.5.0", - "uart_16550", + "raw-cpuid 11.6.0", + "uart_16550 0.3.2", "x2apic", "x86", "x86_64", @@ -781,22 +742,23 @@ dependencies = [ [[package]] name = "axplat-x86-pc" -version = "0.1.1" -source = "git+https://github.com/arceos-hypervisor/axplat_crates.git?branch=vmm#ea596c55acaf25401fe905307d7cae2cf39030e8" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4aef32b01b5b7e87e9f69933b64b704bc5d731adda2cdd24fc0a29cf0c359211" dependencies = [ "axconfig-macros", "axcpu", - "axplat 0.1.0 (git+https://github.com/arceos-hypervisor/axplat_crates.git?branch=vmm)", - "bitflags 2.9.3", - "heapless", + "axplat 0.2.0", + "bitflags 2.9.4", + "heapless 0.9.1", "int_ratio", "kspin", "lazyinit", "log", "multiboot", "percpu", - "raw-cpuid 11.5.0", - "uart_16550", + "raw-cpuid 11.6.0", + "uart_16550 0.4.0", "x2apic", "x86", "x86_64", @@ -806,13 +768,13 @@ dependencies = [ name = "axplat-x86-qemu-q35" version = "0.1.0" dependencies = [ - "axplat-x86-pc 0.1.1 (git+https://github.com/arceos-hypervisor/axplat_crates.git?branch=vmm)", + "axplat-x86-pc 0.1.1", ] [[package]] name = "axruntime" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#7fe72320f5d5c888b8ee9b099342376f97b733b5" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#f873ef7913033a15169e5df0774fd9510a2cdc50" dependencies = [ "axalloc", "axconfig", @@ -822,7 +784,7 @@ dependencies = [ "axhal", "axlog", "axmm", - "axplat 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "axplat 0.2.0", "axtask", "chrono", "crate_interface", @@ -842,7 +804,7 @@ dependencies = [ [[package]] name = "axstd" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#7fe72320f5d5c888b8ee9b099342376f97b733b5" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#f873ef7913033a15169e5df0774fd9510a2cdc50" dependencies = [ "arceos_api", "axerrno", @@ -855,7 +817,7 @@ dependencies = [ [[package]] name = "axsync" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#7fe72320f5d5c888b8ee9b099342376f97b733b5" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#f873ef7913033a15169e5df0774fd9510a2cdc50" dependencies = [ "axtask", "kspin", @@ -865,7 +827,7 @@ dependencies = [ [[package]] name = "axtask" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#7fe72320f5d5c888b8ee9b099342376f97b733b5" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#f873ef7913033a15169e5df0774fd9510a2cdc50" dependencies = [ "axconfig", "axhal", @@ -888,21 +850,9 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9fd2246d45be5a55e5f0fb081a6c23a9d6f5de4f390a9dbce82786129e66004e" dependencies = [ - "axaddrspace 0.1.0 (git+https://github.com/arceos-hypervisor/axaddrspace?branch=3_level_page)", - "axerrno", - "axvisor_api 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "memory_addr", - "percpu", -] - -[[package]] -name = "axvcpu" -version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/axvcpu.git#6364b7b13f0e4efb969295d07667215e79969a1d" -dependencies = [ - "axaddrspace 0.1.0 (git+https://github.com/arceos-hypervisor/axaddrspace?branch=3_level_page)", + "axaddrspace", "axerrno", - "axvisor_api 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "axvisor_api", "memory_addr", "percpu", ] @@ -913,7 +863,7 @@ version = "0.1.0" dependencies = [ "aarch64-cpu-ext", "arm-gic-driver", - "axaddrspace 0.1.0 (git+https://github.com/arceos-hypervisor/axaddrspace?branch=3_level_page)", + "axaddrspace", "axconfig", "axdevice", "axdevice_base", @@ -922,10 +872,10 @@ dependencies = [ "axplat-aarch64-generic", "axplat-x86-qemu-q35", "axstd", - "axvcpu 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "axvisor_api 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "axvcpu", + "axvisor_api", "axvm", - "bitflags 2.9.3", + "bitflags 2.9.4", "cfg-if", "cpumask", "crate_interface", @@ -953,19 +903,8 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aa7233b2a1338dc06a80e2779b572b4df02007ea128ef7b235b66fc3eeac0ca6" dependencies = [ - "axaddrspace 0.1.0 (git+https://github.com/arceos-hypervisor/axaddrspace?branch=3_level_page)", - "axvisor_api_proc 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "crate_interface", - "memory_addr", -] - -[[package]] -name = "axvisor_api" -version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/axvisor_api.git#feb16efe1c384d91ac9f1cbf787c1c28571190f1" -dependencies = [ - "axaddrspace 0.1.0 (git+https://github.com/arceos-hypervisor/axaddrspace?branch=3_level_page)", - "axvisor_api_proc 0.1.0 (git+https://github.com/arceos-hypervisor/axvisor_api.git)", + "axaddrspace", + "axvisor_api_proc", "crate_interface", "memory_addr", ] @@ -982,29 +921,19 @@ dependencies = [ "syn 2.0.106", ] -[[package]] -name = "axvisor_api_proc" -version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/axvisor_api.git#feb16efe1c384d91ac9f1cbf787c1c28571190f1" -dependencies = [ - "proc-macro-crate", - "proc-macro2", - "quote", - "syn 2.0.106", -] - [[package]] name = "axvm" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/axvm.git?branch=dev-irq#312ef08f71d8e21b26c6c4d4c1634266627ff4db" +source = "git+https://github.com/arceos-hypervisor/axvm.git?branch=dev-irq#e9979627e138a89b300dd33cb03d5c742cfbfeb9" dependencies = [ "arm_vcpu", "arm_vgic", - "axaddrspace 0.1.0 (git+https://github.com/arceos-hypervisor/axaddrspace?branch=3_level_page)", + "axaddrspace", + "axcpu", "axdevice", "axdevice_base", "axerrno", - "axvcpu 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "axvcpu", "axvmconfig", "cfg-if", "cpumask", @@ -1049,12 +978,9 @@ dependencies = [ [[package]] name = "bare-metal" -version = "0.2.5" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5deb64efa5bd81e31fcd1938615a6d98c82eafcbcd787162b6f63b91d6bac5b3" -dependencies = [ - "rustc_version", -] +checksum = "f8fe8f5a8a398345e52358e18ff07cc17a568fbca5c6f73873d3a62056309603" [[package]] name = "base64" @@ -1096,9 +1022,9 @@ checksum = "2b645c5c09a7d4035949cfce1a915785aaad6f17800c35fda8a8c311c491f284" [[package]] name = "bit_field" -version = "0.10.2" +version = "0.10.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc827186963e592360843fb5ba4b973e145841266c1357f7180c43526f2e5b61" +checksum = "1e4b40c7323adcfc0a41c4b88143ed58346ff65a288fc144329c5c45e05d70c6" [[package]] name = "bitflags" @@ -1108,9 +1034,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.9.3" +version = "2.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34efbcccd345379ca2868b2b2c9d3782e9cc58ba87bc7d79d5b53d9c9ae6f25d" +checksum = "2261d10cca569e4643e526d8dc2e62e433cc8aba21ab764233731f8d369bf394" [[package]] name = "bitmap-allocator" @@ -1147,9 +1073,9 @@ checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a" [[package]] name = "camino" -version = "1.1.11" +version = "1.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d07aa9a93b00c76f71bc35d598bed923f6d4f3a9ca5c24b7737ae1a292841c0" +checksum = "dd0b03af37dad7a14518b7691d81acb0f8222604ad3d1b02f6b4bed5188c0cd5" dependencies = [ "serde", ] @@ -1160,7 +1086,7 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c9b24894fa5f73bbf9c72196e7f495a1f81d6218a548280a09ada4a937157692" dependencies = [ - "bitflags 2.9.3", + "bitflags 2.9.4", ] [[package]] @@ -1178,7 +1104,7 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e63d2780ac94487eb9f1fea7b0d56300abc9eb488800854ca217f102f5caccca" dependencies = [ - "semver 1.0.26", + "semver", "serde", "serde-untagged", "serde-value", @@ -1197,7 +1123,7 @@ dependencies = [ "camino", "cargo-platform", "cargo-util-schemas", - "semver 1.0.26", + "semver", "serde", "serde_json", "thiserror 2.0.16", @@ -1205,10 +1131,11 @@ dependencies = [ [[package]] name = "cc" -version = "1.2.34" +version = "1.2.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42bc4aea80032b7bf409b0bc7ccad88853858911b7713a8062fdc0623867bedc" +checksum = "590f9024a68a8c40351881787f1934dc11afd69090f5edb6831464694d836ea3" dependencies = [ + "find-msvc-tools", "shlex", ] @@ -1229,9 +1156,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.45" +version = "4.5.47" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fc0e74a703892159f5ae7d3aac52c8e6c392f5ae5f359c70b5881d60aaac318" +checksum = "7eac00902d9d136acd712710d71823fb8ac8004ca445a89e73a41d45aa712931" dependencies = [ "clap_builder", "clap_derive", @@ -1239,9 +1166,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.44" +version = "4.5.47" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3e7f4214277f3c7aa526a59dd3fbe306a370daee1f8b7b8c987069cd8e888a8" +checksum = "2ad9bbf750e73b5884fb8a211a9424a1906c1e156724260fdae972f31d70e1d6" dependencies = [ "anstream", "anstyle", @@ -1251,9 +1178,9 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.5.45" +version = "4.5.47" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14cb31bb0a7d536caef2639baa7fad459e15c3144efefa6dbd1c84562c4739f6" +checksum = "bbfd7eae0b0f1a6e63d4b13c9c478de77c2eb546fba158ad50b4203dc24b9f9c" dependencies = [ "heck", "proc-macro2", @@ -1497,7 +1424,7 @@ name = "fatfs" version = "0.4.0" source = "git+https://github.com/rafalh/rust-fatfs?rev=4eccb50#4eccb50d011146fbed20e133d33b22f3c27292e7" dependencies = [ - "bitflags 2.9.3", + "bitflags 2.9.4", "log", ] @@ -1519,6 +1446,12 @@ dependencies = [ "windows-sys 0.60.2", ] +[[package]] +name = "find-msvc-tools" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e178e4fba8a2726903f6ba98a6d221e76f9c12c650d5dc0e6afdc50677b49650" + [[package]] name = "flate2" version = "1.1.2" @@ -1668,7 +1601,7 @@ dependencies = [ "cfg-if", "libc", "r-efi", - "wasi 0.14.2+wasi-0.2.4", + "wasi 0.14.3+wasi-0.2.4", ] [[package]] @@ -1746,6 +1679,16 @@ dependencies = [ "stable_deref_trait", ] +[[package]] +name = "heapless" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1edcd5a338e64688fbdcb7531a846cfd3476a54784dcb918a0844682bc7ada5" +dependencies = [ + "hash32", + "stable_deref_trait", +] + [[package]] name = "heck" version = "0.5.0" @@ -2072,7 +2015,7 @@ version = "0.7.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "046fa2d4d00aea763528b4950358d0ead425372445dc8ff86312b3c69ff7727b" dependencies = [ - "bitflags 2.9.3", + "bitflags 2.9.4", "cfg-if", "libc", ] @@ -2107,9 +2050,9 @@ checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" [[package]] name = "js-sys" -version = "0.3.77" +version = "0.3.78" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f" +checksum = "0c0b063578492ceec17683ef2f8c5e89121fbd0b172cbc280635ab7567db2738" dependencies = [ "once_cell", "wasm-bindgen", @@ -2129,11 +2072,11 @@ dependencies = [ [[package]] name = "kdef-pgtable" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe55002bb265659921e59528cadf0d07362ebc0f37986d9b004bc45264036bf5" +checksum = "7166660a78a4488f5f3269206242d3b76cd6b42d870f004898487ce16dba3f69" dependencies = [ - "bitflags 2.9.3", + "bitflags 2.9.4", "prettyplease", "quote", "syn 2.0.106", @@ -2159,12 +2102,6 @@ dependencies = [ "kernel_guard", ] -[[package]] -name = "lazy_static" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" - [[package]] name = "lazyinit" version = "0.2.2" @@ -2183,7 +2120,7 @@ version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "391290121bad3d37fbddad76d8f5d1c1c314cfc646d143d7e07a3086ddff0ce3" dependencies = [ - "bitflags 2.9.3", + "bitflags 2.9.4", "libc", "redox_syscall", ] @@ -2249,7 +2186,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7c9f0d275c70310e2a9d2fc23250c5ac826a73fa828a5f256401f85c5c554283" dependencies = [ "bit_field", - "bitflags 2.9.3", + "bitflags 2.9.4", ] [[package]] @@ -2394,7 +2331,7 @@ version = "0.10.73" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8505734d46c8ab1e19a1dce3aef597ad87dcb4c37e7188231769bd6bd51cebf8" dependencies = [ - "bitflags 2.9.3", + "bitflags 2.9.4", "cfg-if", "foreign-types", "libc", @@ -2447,7 +2384,7 @@ version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "79217ff706e8dd356df4b6d624bae950ae5c39a17c6959b81d73dedfc9653316" dependencies = [ - "bitflags 2.9.3", + "bitflags 2.9.4", "log", "num-align", "thiserror 2.0.16", @@ -2460,7 +2397,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ba811ef8ca8fb33d776e128624cb4fe25c9804cab96f83b822d4322431e6dd5a" dependencies = [ "aarch64-cpu", - "bitflags 2.9.3", + "bitflags 2.9.4", "memory_addr", "x86_64", ] @@ -2475,7 +2412,7 @@ dependencies = [ "log", "memory_addr", "page_table_entry", - "riscv 0.14.0", + "riscv", "x86", ] @@ -2543,7 +2480,7 @@ version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c299ec1afe459d14459b06d621a771ebbbcf5834eb2734075b1837ca54f2e362" dependencies = [ - "heapless", + "heapless 0.8.0", ] [[package]] @@ -2555,7 +2492,7 @@ dependencies = [ "aarch64-cpu", "aarch64-cpu-ext", "any-uart", - "bitflags 2.9.3", + "bitflags 2.9.4", "fdt-parser", "kasm-aarch64", "kdef-pgtable", @@ -2602,9 +2539,9 @@ checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" [[package]] name = "potential_utf" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5a7c30837279ca13e7c867e9e40053bc68740f988cb07f7ca6df43cc734b585" +checksum = "84df19adbe5b5a0782edcab45899906947ab039ccf4573713735ee7de1e6b08a" dependencies = [ "zerovec", ] @@ -2706,11 +2643,11 @@ dependencies = [ [[package]] name = "raw-cpuid" -version = "11.5.0" +version = "11.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6df7ab838ed27997ba19a4664507e6f82b41fe6e20be42929332156e5e85146" +checksum = "498cd0dc59d73224351ee52a95fee0f1a617a2eae0e7d9d720cc622c73a54186" dependencies = [ - "bitflags 2.9.3", + "bitflags 2.9.4", ] [[package]] @@ -2833,38 +2770,9 @@ version = "0.5.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5407465600fb0548f1442edf71dd20683c6ed326200ace4b1ef0763521bb3b77" dependencies = [ - "bitflags 2.9.3", -] - -[[package]] -name = "regex" -version = "1.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23d7fd106d8c02486a8d64e778353d1cffe08ce79ac2e82f540c86d0facf6912" -dependencies = [ - "aho-corasick", - "memchr", - "regex-automata", - "regex-syntax", -] - -[[package]] -name = "regex-automata" -version = "0.4.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b9458fa0bfeeac22b5ca447c63aaf45f28439a709ccd244698632f9aa6394d6" -dependencies = [ - "aho-corasick", - "memchr", - "regex-syntax", + "bitflags 2.9.4", ] -[[package]] -name = "regex-syntax" -version = "0.8.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "caf4aa5b0f434c91fe5c7f1ecb6a5ece2130b02ad2a590589dda5146df959001" - [[package]] name = "release-dep" version = "0.1.0" @@ -2874,7 +2782,7 @@ dependencies = [ "anyhow", "futures", "reqwest 0.11.27", - "semver 1.0.26", + "semver", "serde", "serde_json", "tokio", @@ -2977,18 +2885,6 @@ dependencies = [ "windows-sys 0.52.0", ] -[[package]] -name = "riscv" -version = "0.6.0" -source = "git+https://github.com/rcore-os/riscv#11d43cf7cccb3b62a3caaf3e07a1db7449588f9a" -dependencies = [ - "bare-metal", - "bit_field", - "bitflags 1.3.2", - "log", - "riscv-target", -] - [[package]] name = "riscv" version = "0.14.0" @@ -3004,8 +2900,22 @@ dependencies = [ [[package]] name = "riscv-decode" -version = "0.2.1" -source = "git+https://github.com/KuangjuX/riscv-decode.git#4102b8ef1d63c9c62fc9af8c7580b833287d9baa" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68b59d645e392e041ad18f5e529ed13242d8405c66bb192f59703ea2137017d0" + +[[package]] +name = "riscv-h" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cffa652689d01c5f7033abe105e69f4d57ac85bf7e17da688bab10e4b9d3a2d8" +dependencies = [ + "bare-metal", + "bit_field", + "bitflags 2.9.4", + "log", + "riscv", +] [[package]] name = "riscv-macros" @@ -3024,35 +2934,26 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8188909339ccc0c68cfb5a04648313f09621e8b87dc03095454f1a11f6c5d436" -[[package]] -name = "riscv-target" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88aa938cda42a0cf62a20cfe8d139ff1af20c2e681212b5b34adb5a58333f222" -dependencies = [ - "lazy_static", - "regex", -] - [[package]] name = "riscv_vcpu" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/riscv_vcpu.git#b52a933e42cc29155e82a186aecffceb3d70d86a" +source = "git+https://github.com/arceos-hypervisor/riscv_vcpu.git#04a9c32df704637201651bff9f7298054a46faf5" dependencies = [ - "axaddrspace 0.1.0 (git+https://github.com/arceos-hypervisor/axaddrspace.git)", + "axaddrspace", "axerrno", - "axvcpu 0.1.0 (git+https://github.com/arceos-hypervisor/axvcpu.git)", - "axvisor_api 0.1.0 (git+https://github.com/arceos-hypervisor/axvisor_api.git)", + "axvcpu", + "axvisor_api", "bit_field", - "bitflags 2.9.3", + "bitflags 2.9.4", "cfg-if", "crate_interface", "log", "memoffset", "memory_addr", "page_table_entry", - "riscv 0.6.0", + "riscv", "riscv-decode", + "riscv-h", "rustsbi", "sbi-rt", "sbi-spec", @@ -3077,22 +2978,13 @@ version = "0.1.26" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "56f7d92ca342cea22a06f2121d944b4fd82af56988c270852495420f961d4ace" -[[package]] -name = "rustc_version" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a" -dependencies = [ - "semver 0.9.0", -] - [[package]] name = "rustix" version = "1.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "11181fbabf243db407ef8df94a6ce0b2f9a733bd8be4ad02b4eda9602296cac8" dependencies = [ - "bitflags 2.9.3", + "bitflags 2.9.4", "errno", "libc", "linux-raw-sys", @@ -3211,7 +3103,7 @@ version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" dependencies = [ - "bitflags 2.9.3", + "bitflags 2.9.4", "core-foundation", "core-foundation-sys", "libc", @@ -3228,15 +3120,6 @@ dependencies = [ "libc", ] -[[package]] -name = "semver" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403" -dependencies = [ - "semver-parser", -] - [[package]] name = "semver" version = "1.0.26" @@ -3246,12 +3129,6 @@ dependencies = [ "serde", ] -[[package]] -name = "semver-parser" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" - [[package]] name = "serde" version = "1.0.219" @@ -3414,7 +3291,7 @@ dependencies = [ "bindeps-simple", "fdt-parser", "futures", - "heapless", + "heapless 0.8.0", "kasm-aarch64", "kdef-pgtable", "log", @@ -3560,7 +3437,7 @@ version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b" dependencies = [ - "bitflags 2.9.3", + "bitflags 2.9.4", "core-foundation", "system-configuration-sys 0.6.0", ] @@ -3848,7 +3725,7 @@ version = "0.6.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "adc82fd73de2a9722ac5da747f12383d2bfdb93591ee6c58486e0097890f05f2" dependencies = [ - "bitflags 2.9.3", + "bitflags 2.9.4", "bytes", "futures-util", "http 1.3.1", @@ -3909,7 +3786,18 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e492212ac378a5e00da953718dafb1340d9fbaf4f27d6f3c5cab03d931d1c049" dependencies = [ - "bitflags 2.9.3", + "bitflags 2.9.4", + "rustversion", + "x86", +] + +[[package]] +name = "uart_16550" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94d293f51425981fdb1b766beae254dbb711a17e8c4b549dc69b9b7ee0d478d5" +dependencies = [ + "bitflags 2.9.4", "rustversion", "x86", ] @@ -3974,7 +3862,7 @@ version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aa40e09453618c7a927c08c5a990497a2954da7c2aaa6c65e0d4f0fc975f6114" dependencies = [ - "bitflags 2.9.3", + "bitflags 2.9.4", "log", "zerocopy 0.7.35", ] @@ -4002,30 +3890,31 @@ checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" [[package]] name = "wasi" -version = "0.14.2+wasi-0.2.4" +version = "0.14.3+wasi-0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9683f9a5a998d873c0d21fcbe3c083009670149a8fab228644b8bd36b2c48cb3" +checksum = "6a51ae83037bdd272a9e28ce236db8c07016dd0d50c27038b3f407533c030c95" dependencies = [ - "wit-bindgen-rt", + "wit-bindgen", ] [[package]] name = "wasm-bindgen" -version = "0.2.100" +version = "0.2.101" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5" +checksum = "7e14915cadd45b529bb8d1f343c4ed0ac1de926144b746e2710f9cd05df6603b" dependencies = [ "cfg-if", "once_cell", "rustversion", "wasm-bindgen-macro", + "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-backend" -version = "0.2.100" +version = "0.2.101" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6" +checksum = "e28d1ba982ca7923fd01448d5c30c6864d0a14109560296a162f80f305fb93bb" dependencies = [ "bumpalo", "log", @@ -4037,9 +3926,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-futures" -version = "0.4.50" +version = "0.4.51" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "555d470ec0bc3bb57890405e5d4322cc9ea83cebb085523ced7be4144dac1e61" +checksum = "0ca85039a9b469b38336411d6d6ced91f3fc87109a2a27b0c197663f5144dffe" dependencies = [ "cfg-if", "js-sys", @@ -4050,9 +3939,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.100" +version = "0.2.101" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407" +checksum = "7c3d463ae3eff775b0c45df9da45d68837702ac35af998361e2c84e7c5ec1b0d" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -4060,9 +3949,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.100" +version = "0.2.101" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" +checksum = "7bb4ce89b08211f923caf51d527662b75bdc9c9c7aab40f86dcb9fb85ac552aa" dependencies = [ "proc-macro2", "quote", @@ -4073,18 +3962,18 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.100" +version = "0.2.101" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d" +checksum = "f143854a3b13752c6950862c906306adb27c7e839f7414cec8fea35beab624c1" dependencies = [ "unicode-ident", ] [[package]] name = "web-sys" -version = "0.3.77" +version = "0.3.78" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33b6dd2ef9186f1f2072e409e99cd22a975331a6b3591b12c764e0e55c60d5d2" +checksum = "77e4b637749ff0d92b8fad63aa1f7cff3cbe125fd49c175cd6345e7272638b12" dependencies = [ "js-sys", "wasm-bindgen", @@ -4367,13 +4256,10 @@ dependencies = [ ] [[package]] -name = "wit-bindgen-rt" -version = "0.39.0" +name = "wit-bindgen" +version = "0.45.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1" -dependencies = [ - "bitflags 2.9.3", -] +checksum = "052283831dbae3d879dc7f51f3d92703a316ca49f91540417d38591826127814" [[package]] name = "writeable" @@ -4412,7 +4298,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0f042214de98141e9c8706e8192b73f56494087cc55ebec28ce10f26c5c364ae" dependencies = [ "bit_field", - "bitflags 2.9.3", + "bitflags 2.9.4", "rustversion", "volatile", ] @@ -4423,13 +4309,13 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "873e097d52e94c31be3f0175a9f8d6f2edbc77d7e2f8e6995427df9c08b30a2b" dependencies = [ - "axaddrspace 0.1.0 (git+https://github.com/arceos-hypervisor/axaddrspace?branch=3_level_page)", + "axaddrspace", "axdevice_base", "axerrno", - "axvcpu 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "axvisor_api 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "axvcpu", + "axvisor_api", "bit_field", - "bitflags 2.9.3", + "bitflags 2.9.4", "cfg-if", "crate_interface", "log", @@ -4437,7 +4323,7 @@ dependencies = [ "numeric-enum-macro", "page_table_entry", "paste", - "raw-cpuid 11.5.0", + "raw-cpuid 11.6.0", "spin 0.9.8", "x86", "x86_64", @@ -4450,10 +4336,10 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2556c62649a277ccf1c3c34c740be87bbde5f8dab0b20fcdcf4c2cd7bb6e7302" dependencies = [ - "axaddrspace 0.1.0 (git+https://github.com/arceos-hypervisor/axaddrspace?branch=3_level_page)", + "axaddrspace", "axdevice_base", "axerrno", - "axvisor_api 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "axvisor_api", "bit", "log", "memory_addr", diff --git a/Cargo.toml b/Cargo.toml index 5d3d5086..63734449 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -13,9 +13,12 @@ version = "0.1.0" fs = ["axstd/fs"] hv = [] irq = [] +ept-level-4 = ["axaddrspace/4-level-ept"] + plat-aarch64-generic = ["axplat-aarch64-generic", "hv", "irq", "axstd/driver-dyn"] plat-x86-qemu-q35 = ["axplat-x86-qemu-q35", "hv", "irq"] + [dependencies] bitflags = "2.2" cfg-if = "1.0" @@ -77,9 +80,9 @@ branch = "vmm" git = "https://github.com/arceos-hypervisor/axcpu" [patch.crates-io.axaddrspace] -branch = "3_level_page" +# branch = "main" git = "https://github.com/arceos-hypervisor/axaddrspace" -[patch."https://github.com/arceos-hypervisor/arm_vcpu.git".arm_vcpu] -branch = "3_level_page" -git = "https://github.com/Josen-B/arm_vcpu" \ No newline at end of file +# [patch."https://github.com/arceos-hypervisor/arm_vcpu.git".arm_vcpu] +# branch = "3_level_page" +# git = "https://github.com/Josen-B/arm_vcpu" \ No newline at end of file diff --git a/configs/vms/aarch64-qemu-gicv3.dts b/configs/vms/aarch64-qemu-gicv3.dts new file mode 100644 index 00000000..a37731fb --- /dev/null +++ b/configs/vms/aarch64-qemu-gicv3.dts @@ -0,0 +1,397 @@ +/dts-v1/; + +/ { + interrupt-parent = <0x8002>; + dma-coherent; + model = "linux,dummy-virt"; + #size-cells = <0x02>; + #address-cells = <0x02>; + compatible = "linux,dummy-virt"; + + psci { + migrate = <0xc4000005>; + cpu_on = <0xc4000003>; + cpu_off = <0x84000002>; + cpu_suspend = <0xc4000001>; + method = "smc"; + compatible = "arm,psci-1.0\0arm,psci-0.2\0arm,psci"; + }; + + memory@80000000 { + reg = <0x00 0x80000000 0x00 0x40000000>; + device_type = "memory"; + }; + + platform-bus@c000000 { + interrupt-parent = <0x8002>; + ranges = <0x00 0x00 0xc000000 0x2000000>; + #address-cells = <0x01>; + #size-cells = <0x01>; + compatible = "qemu,platform\0simple-bus"; + }; + + fw-cfg@9020000 { + dma-coherent; + reg = <0x00 0x9020000 0x00 0x18>; + compatible = "qemu,fw-cfg-mmio"; + }; + + virtio_mmio@a000000 { + dma-coherent; + interrupts = <0x00 0x10 0x01>; + reg = <0x00 0xa000000 0x00 0x200>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@a000200 { + dma-coherent; + interrupts = <0x00 0x11 0x01>; + reg = <0x00 0xa000200 0x00 0x200>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@a000400 { + dma-coherent; + interrupts = <0x00 0x12 0x01>; + reg = <0x00 0xa000400 0x00 0x200>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@a000600 { + dma-coherent; + interrupts = <0x00 0x13 0x01>; + reg = <0x00 0xa000600 0x00 0x200>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@a000800 { + dma-coherent; + interrupts = <0x00 0x14 0x01>; + reg = <0x00 0xa000800 0x00 0x200>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@a000a00 { + dma-coherent; + interrupts = <0x00 0x15 0x01>; + reg = <0x00 0xa000a00 0x00 0x200>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@a000c00 { + dma-coherent; + interrupts = <0x00 0x16 0x01>; + reg = <0x00 0xa000c00 0x00 0x200>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@a000e00 { + dma-coherent; + interrupts = <0x00 0x17 0x01>; + reg = <0x00 0xa000e00 0x00 0x200>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@a001000 { + dma-coherent; + interrupts = <0x00 0x18 0x01>; + reg = <0x00 0xa001000 0x00 0x200>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@a001200 { + dma-coherent; + interrupts = <0x00 0x19 0x01>; + reg = <0x00 0xa001200 0x00 0x200>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@a001400 { + dma-coherent; + interrupts = <0x00 0x1a 0x01>; + reg = <0x00 0xa001400 0x00 0x200>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@a001600 { + dma-coherent; + interrupts = <0x00 0x1b 0x01>; + reg = <0x00 0xa001600 0x00 0x200>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@a001800 { + dma-coherent; + interrupts = <0x00 0x1c 0x01>; + reg = <0x00 0xa001800 0x00 0x200>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@a001a00 { + dma-coherent; + interrupts = <0x00 0x1d 0x01>; + reg = <0x00 0xa001a00 0x00 0x200>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@a001c00 { + dma-coherent; + interrupts = <0x00 0x1e 0x01>; + reg = <0x00 0xa001c00 0x00 0x200>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@a001e00 { + dma-coherent; + interrupts = <0x00 0x1f 0x01>; + reg = <0x00 0xa001e00 0x00 0x200>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@a002000 { + dma-coherent; + interrupts = <0x00 0x20 0x01>; + reg = <0x00 0xa002000 0x00 0x200>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@a002200 { + dma-coherent; + interrupts = <0x00 0x21 0x01>; + reg = <0x00 0xa002200 0x00 0x200>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@a002400 { + dma-coherent; + interrupts = <0x00 0x22 0x01>; + reg = <0x00 0xa002400 0x00 0x200>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@a002600 { + dma-coherent; + interrupts = <0x00 0x23 0x01>; + reg = <0x00 0xa002600 0x00 0x200>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@a002800 { + dma-coherent; + interrupts = <0x00 0x24 0x01>; + reg = <0x00 0xa002800 0x00 0x200>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@a002a00 { + dma-coherent; + interrupts = <0x00 0x25 0x01>; + reg = <0x00 0xa002a00 0x00 0x200>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@a002c00 { + dma-coherent; + interrupts = <0x00 0x26 0x01>; + reg = <0x00 0xa002c00 0x00 0x200>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@a002e00 { + dma-coherent; + interrupts = <0x00 0x27 0x01>; + reg = <0x00 0xa002e00 0x00 0x200>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@a003000 { + dma-coherent; + interrupts = <0x00 0x28 0x01>; + reg = <0x00 0xa003000 0x00 0x200>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@a003200 { + dma-coherent; + interrupts = <0x00 0x29 0x01>; + reg = <0x00 0xa003200 0x00 0x200>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@a003400 { + dma-coherent; + interrupts = <0x00 0x2a 0x01>; + reg = <0x00 0xa003400 0x00 0x200>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@a003600 { + dma-coherent; + interrupts = <0x00 0x2b 0x01>; + reg = <0x00 0xa003600 0x00 0x200>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@a003800 { + dma-coherent; + interrupts = <0x00 0x2c 0x01>; + reg = <0x00 0xa003800 0x00 0x200>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@a003a00 { + dma-coherent; + interrupts = <0x00 0x2d 0x01>; + reg = <0x00 0xa003a00 0x00 0x200>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@a003c00 { + dma-coherent; + interrupts = <0x00 0x2e 0x01>; + reg = <0x00 0xa003c00 0x00 0x200>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@a003e00 { + dma-coherent; + interrupts = <0x00 0x2f 0x01>; + reg = <0x00 0xa003e00 0x00 0x200>; + compatible = "virtio,mmio"; + }; + + gpio-keys { + compatible = "gpio-keys"; + + poweroff { + gpios = <0x8004 0x03 0x00>; + linux,code = <0x74>; + label = "GPIO Key Poweroff"; + }; + }; + + pl061@9030000 { + phandle = <0x8004>; + clock-names = "apb_pclk"; + clocks = <0x8000>; + interrupts = <0x00 0x07 0x04>; + gpio-controller; + #gpio-cells = <0x02>; + compatible = "arm,pl061\0arm,primecell"; + reg = <0x00 0x9030000 0x00 0x1000>; + }; + + // pcie@10000000 { + // interrupt-map-mask = <0x1800 0x00 0x00 0x07>; + // interrupt-map = <0x00 0x00 0x00 0x01 0x8002 0x00 0x00 0x00 0x03 0x04 0x00 0x00 0x00 0x02 0x8002 0x00 0x00 0x00 0x04 0x04 0x00 0x00 0x00 0x03 0x8002 0x00 0x00 0x00 0x05 0x04 0x00 0x00 0x00 0x04 0x8002 0x00 0x00 0x00 0x06 0x04 0x800 0x00 0x00 0x01 0x8002 0x00 0x00 0x00 0x04 0x04 0x800 0x00 0x00 0x02 0x8002 0x00 0x00 0x00 0x05 0x04 0x800 0x00 0x00 0x03 0x8002 0x00 0x00 0x00 0x06 0x04 0x800 0x00 0x00 0x04 0x8002 0x00 0x00 0x00 0x03 0x04 0x1000 0x00 0x00 0x01 0x8002 0x00 0x00 0x00 0x05 0x04 0x1000 0x00 0x00 0x02 0x8002 0x00 0x00 0x00 0x06 0x04 0x1000 0x00 0x00 0x03 0x8002 0x00 0x00 0x00 0x03 0x04 0x1000 0x00 0x00 0x04 0x8002 0x00 0x00 0x00 0x04 0x04 0x1800 0x00 0x00 0x01 0x8002 0x00 0x00 0x00 0x06 0x04 0x1800 0x00 0x00 0x02 0x8002 0x00 0x00 0x00 0x03 0x04 0x1800 0x00 0x00 0x03 0x8002 0x00 0x00 0x00 0x04 0x04 0x1800 0x00 0x00 0x04 0x8002 0x00 0x00 0x00 0x05 0x04>; + // #interrupt-cells = <0x01>; + // ranges = <0x1000000 0x00 0x00 0x00 0x3eff0000 0x00 0x10000 0x2000000 0x00 0x10000000 0x00 0x10000000 0x00 0x2eff0000 0x3000000 0x80 0x00 0x80 0x00 0x80 0x00>; + // reg = <0x40 0x10000000 0x00 0x10000000>; + // msi-map = <0x00 0x8003 0x00 0x10000>; + // dma-coherent; + // bus-range = <0x00 0xff>; + // linux,pci-domain = <0x00>; + // #size-cells = <0x02>; + // #address-cells = <0x03>; + // device_type = "pci"; + // compatible = "pci-host-ecam-generic"; + // }; + + pl031@9010000 { + clock-names = "apb_pclk"; + clocks = <0x8000>; + interrupts = <0x00 0x02 0x04>; + reg = <0x00 0x9010000 0x00 0x1000>; + compatible = "arm,pl031\0arm,primecell"; + }; + + pl011@9000000 { + clock-names = "uartclk\0apb_pclk"; + clocks = <0x8000 0x8000>; + interrupts = <0x00 0x01 0x04>; + reg = <0x00 0x9000000 0x00 0x1000>; + compatible = "arm,pl011\0arm,primecell"; + }; + + pmu { + interrupts = <0x01 0x07 0x04>; + compatible = "arm,armv8-pmuv3"; + }; + + intc@8000000 { + phandle = <0x8002>; + interrupts = <0x01 0x09 0x04>; + reg = <0x00 0x8000000 0x00 0x10000 0x00 0x80a0000 0x00 0xf60000>; + #redistributor-regions = <0x01>; + compatible = "arm,gic-v3"; + ranges; + #size-cells = <0x02>; + #address-cells = <0x02>; + interrupt-controller; + #interrupt-cells = <0x03>; + + its@8080000 { + phandle = <0x8003>; + reg = <0x00 0x8080000 0x00 0x20000>; + #msi-cells = <0x01>; + msi-controller; + compatible = "arm,gic-v3-its"; + }; + }; + + flash@0 { + bank-width = <0x04>; + reg = <0x00 0x00 0x00 0x4000000 0x00 0x4000000 0x00 0x4000000>; + compatible = "cfi-flash"; + }; + + cpus { + #size-cells = <0x00>; + #address-cells = <0x01>; + + cpu-map { + + socket0 { + + cluster0 { + + core0 { + cpu = <0x8001>; + }; + }; + }; + }; + + cpu@0 { + phandle = <0x8001>; + reg = <0x00>; + compatible = "arm,cortex-a72"; + device_type = "cpu"; + }; + }; + + timer { + interrupts = <0x01 0x0d 0x04 0x01 0x0e 0x04 0x01 0x0b 0x04 0x01 0x0a 0x04>; + always-on; + compatible = "arm,armv8-timer\0arm,armv7-timer"; + }; + + apb-pclk { + phandle = <0x8000>; + clock-output-names = "clk24mhz"; + clock-frequency = <0x16e3600>; + #clock-cells = <0x00>; + compatible = "fixed-clock"; + }; + + aliases { + serial0 = "/pl011@9000000"; + }; + + chosen { + bootargs = "root=/dev/vda rw init=/init"; + stdout-path = "/pl011@9000000"; + rng-seed = <0xc63e7c7f 0x25869631 0xfa243fbb 0xe48363de 0xfd9dc3ce 0x5127dfe3 0x88de6403 0xb04a0eef>; + kaslr-seed = <0xdcf4331d 0x73a35db>; + }; +}; diff --git a/configs/vms/linux-qemu-aarch64.toml b/configs/vms/linux-qemu-aarch64.toml index 9682325b..6eef7cf7 100644 --- a/configs/vms/linux-qemu-aarch64.toml +++ b/configs/vms/linux-qemu-aarch64.toml @@ -10,6 +10,7 @@ vm_type = 1 # The number of virtual CPUs. cpu_num = 1 # Guest vm physical cpu sets. +phys_cpu_ids = [0] phys_cpu_sets = [1] # @@ -17,16 +18,17 @@ phys_cpu_sets = [1] # [kernel] # The entry point of the kernel image. -entry_point = 0x8008_0000 +entry_point = 0x8020_0000 # The location of image: "memory" | "fs". # load from memory. image_location = "memory" # The file path of the kernel image. -kernel_path = "linux-5.10.198.bin" +# kernel_path = "linux-6.6.62.bin" +kernel_path = "Image" # The load address of the kernel image. -kernel_load_addr = 0x8008_0000 +kernel_load_addr = 0x8020_0000 # The file path of the device tree blob (DTB). -dtb_path = "qemu_gicv3.dtb" +dtb_path = "aarch64-qemu-gicv3.dtb" # The load address of the device tree blob (DTB). dtb_load_addr = 0x8000_0000 @@ -54,21 +56,28 @@ memory_regions = [ # Device specifications # [devices] +interrupt_mode = "passthrough" + # Pass-through devices. passthrough_devices = [ - # ["intc@8000000", 0x800_0000, 0x800_0000, 0x50_000, 0x1], - # ["pl011@9000000", 0x900_0000, 0x900_0000, 0x1000, 0x1], - # ["pl031@9010000", 0x901_0000, 0x901_0000, 0x1000, 0x1], + ["intc@8000000", 0x800_0000, 0x800_0000, 0x100_0000, 0x1], + # ["pl011@9000000", 0x900_0000, 0x900_0000, 0x1000, 0x1], # ["pl031@9010000", 0x901_0000, 0x901_0000, 0x1000, 0x1], # ["pl061@9030000", 0x903_0000, 0x903_0000, 0x1000, 0x1], - # # a003000.virtio_mmio virtio_mmio@a003000 - # # a003200.virtio_mmio virtio_mmio@a003200 + # a003000.virtio_mmio virtio_mmio@a003000 + # a003200.virtio_mmio virtio_mmio@a003200 # ["virtio_mmio", 0xa00_0000, 0xa00_0000, 0x4000, 0x1], - ["low-memory", 0x0, 0x0, 0x2000_0000, 0x1], - ["pci", 0x8000000000, 0x8000000000, 0x10000, 0x1], + # ["low-devices", 0x0, 0x0, 0x0800_0000, 0x1], + # ["low-devices2", 0x09000000, 0x09000000, 0x1000_0000, 0x1], + # ["pci@10000000", 0x10000000, 0x10000000, 0x10000000, 0x1], + # ["pci", 0x4010000000, 0x4010000000, 0x100000, 0x1], + # ["pci-range", 0x8000000000, 0x8000000000, 0x10000, 0x1], ] # Emu_devices. # Name Base-Ipa Ipa_len Alloc-Irq Emu-Type EmuConfig. emu_devices = [ - ["ivc-channel", 0xd000_0000, 0x1000_0000, 0x0, 0xa, []], + # ["gppt-gicd", 0x0800_0000, 0x1_0000, 0, 0x21, []], + # ["gppt-gicr", 0x080a_0000, 0x2_0000, 0, 0x20, [1, 0x2_0000, 0]], # 1 vcpu, stride 0x20000, starts with pcpu 0 + # ["gppt-gits", 0x0808_0000, 0x2_0000, 0, 0x22, [0x0808_0000]], # host_gits_base ] + diff --git a/src/vmm/vcpus.rs b/src/vmm/vcpus.rs index 669b8c43..7c6aa86f 100644 --- a/src/vmm/vcpus.rs +++ b/src/vmm/vcpus.rs @@ -269,7 +269,6 @@ pub fn setup_vm_primary_vcpu(vm: VMRef) { // pub fn find_vcpu_task(vm_id: usize, vcpu_id: usize) -> Option { // with_vcpu_task(vm_id, vcpu_id, |task| task.clone()) // } - /// Executes the provided closure with the [`AxTaskRef`] associated with the specified vCPU of the specified VM. pub fn with_vcpu_task T>( vm_id: usize, @@ -347,7 +346,6 @@ fn vcpu_run() { loop { match vm.run_vcpu(vcpu_id) { - // match vcpu.run() { Ok(exit_reason) => match exit_reason { AxVCpuExitReason::Hypercall { nr, args } => { debug!("Hypercall [{}] args {:x?}", nr, args); @@ -419,10 +417,9 @@ fn vcpu_run() { None } }) - .expect(&format!( - "Physical CPU ID {} not found in VM configuration", - target_cpu - )); + .unwrap_or_else(|| { + panic!("Physical CPU ID {target_cpu} not found in VM configuration",) + }); vcpu_on(vm.clone(), target_vcpu_id, entry_point, arg as _); vcpu.set_gpr(0, 0); From 01574a941314ab6b4c36a903cf73362bd5286702 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E7=9D=BF?= Date: Fri, 5 Sep 2025 13:01:02 +0800 Subject: [PATCH 145/219] fix: update arm_vcpu and axvm source URLs in Cargo files --- Cargo.lock | 4 ++-- Cargo.toml | 5 ----- 2 files changed, 2 insertions(+), 7 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 99085630..b34e6f06 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -176,7 +176,7 @@ dependencies = [ [[package]] name = "arm_vcpu" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/axvm.git?branch=dev-irq#e9979627e138a89b300dd33cb03d5c742cfbfeb9" +source = "git+https://github.com/arceos-hypervisor/arm_vcpu?branch=dev-irq#70318dcfb44a6d5fe7457fc20f542084cbae67c4" dependencies = [ "aarch64-cpu", "axaddrspace", @@ -924,7 +924,7 @@ dependencies = [ [[package]] name = "axvm" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/axvm.git?branch=dev-irq#e9979627e138a89b300dd33cb03d5c742cfbfeb9" +source = "git+https://github.com/arceos-hypervisor/axvm.git?branch=dev-irq#51e6f17b93b814cd7853ef1b4fb4633c934fbb41" dependencies = [ "arm_vcpu", "arm_vgic", diff --git a/Cargo.toml b/Cargo.toml index 63734449..070b7a70 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -80,9 +80,4 @@ branch = "vmm" git = "https://github.com/arceos-hypervisor/axcpu" [patch.crates-io.axaddrspace] -# branch = "main" git = "https://github.com/arceos-hypervisor/axaddrspace" - -# [patch."https://github.com/arceos-hypervisor/arm_vcpu.git".arm_vcpu] -# branch = "3_level_page" -# git = "https://github.com/Josen-B/arm_vcpu" \ No newline at end of file From 571d392a07c7686ec3c9aa57d41073c4d8f1aada Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E7=9D=BF?= Date: Fri, 5 Sep 2025 13:07:27 +0800 Subject: [PATCH 146/219] refactor: update aarch64-generic-qemu job configuration and adjust memory allocation --- .github/workflows/test.yml | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 6a72aff0..7e6368e8 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -8,7 +8,6 @@ env: jobs: aarch64-generic-qemu: - runs-on: [self-hosted, linux, docker] strategy: fail-fast: false matrix: @@ -31,11 +30,6 @@ jobs: nimbos-version: 'tags/v0.7' arch: aarch64 disk-path: ${{ github.workspace }}/disk-aarch64.img - # - name: Enable KVM group perms - # run: | - # echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules - # sudo udevadm control --reload-rules - # sudo udevadm trigger --name-match=kvm - name: Update rust-toolchain.toml run: | sed -i "s/^channel = .*/channel = \"${{ matrix.rust-toolchain }}\"/" rust-toolchain.toml @@ -143,6 +137,6 @@ jobs: cargo version export DISK_IMG="${{ github.workspace }}/disk-x86_64.img" export VM_CONFIGS="$(pwd)/configs/vms/nimbos-x86_64.toml" - ./task.py run --plat ${{ matrix.plat }} --vmconfigs $VM_CONFIGS --features fs,ept-level-4 --arceos-args DISK_IMG=$DISK_IMG,BLK=y,MEM=8g + ./task.py run --plat ${{ matrix.plat }} --vmconfigs $VM_CONFIGS --features fs --arceos-args DISK_IMG=$DISK_IMG,BLK=y,MEM=1g From 57512a5ef80096ff89a0fcfbc25410a8697ab479 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E7=9D=BF?= Date: Fri, 5 Sep 2025 14:18:48 +0800 Subject: [PATCH 147/219] fix: specify runs-on environment for aarch64-generic-qemu job --- .github/workflows/test.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 7e6368e8..db56bc23 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -8,6 +8,7 @@ env: jobs: aarch64-generic-qemu: + runs-on: ubuntu-latest strategy: fail-fast: false matrix: From e974f0424d2837799b5bd448fc9e914ada87770c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E7=9D=BF?= Date: Fri, 5 Sep 2025 14:25:07 +0800 Subject: [PATCH 148/219] fix: force reinstall of ostool in phytiumpi and rk3568 jobs --- .github/workflows/test.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index db56bc23..111ef242 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -64,7 +64,7 @@ jobs: - name: Run guests on phytiumpi continue-on-error: ${{ matrix.rust-toolchain == 'nightly' }} run: | - cargo install ostool + cargo install ostool --force source ./activate.sh git clone https://github.com/arceos-hypervisor/axboard_test cd axboard_test @@ -92,7 +92,7 @@ jobs: - name: Run guests on rk3568 continue-on-error: ${{ matrix.rust-toolchain == 'nightly' }} run: | - cargo install ostool + cargo install ostool --force source ./activate.sh git clone https://github.com/arceos-hypervisor/axboard_test cd axboard_test From b6adf4c1cc8757e8cefccae7a8983480b1007b13 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E7=9D=BF?= Date: Fri, 5 Sep 2025 15:13:09 +0800 Subject: [PATCH 149/219] refactor: replace activate.sh with bootstrap.sh for virtual environment setup and update build configurations --- .github/workflows/build.yml | 4 +- .github/workflows/test.yml | 8 +- README.md | 34 ++++--- README_CN.md | 32 +++--- activate.sh | 29 ------ doc/README.md | 8 +- bootstrap.sh => scripts/bootstrap.sh | 20 +++- requirements.txt => scripts/requirements.txt | 0 setup_test.sh | 102 ------------------- 9 files changed, 60 insertions(+), 177 deletions(-) delete mode 100755 activate.sh rename bootstrap.sh => scripts/bootstrap.sh (78%) rename requirements.txt => scripts/requirements.txt (100%) delete mode 100755 setup_test.sh diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index e5f5c09c..7e56b032 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -52,7 +52,7 @@ jobs: fail-fast: false matrix: os: [ubuntu-latest] - plat: [aarch64-generic] + plat: [aarch64-generic, x86-qemu-q35] rust-toolchain: [nightly-2025-05-20, nightly] env: RUSTUP_TOOLCHAIN: ${{ matrix.rust-toolchain }} @@ -68,5 +68,5 @@ jobs: - name: Build the repo continue-on-error: ${{ matrix.rust-toolchain == 'nightly' }} run: | - source ./activate.sh + source ./scripts/bootstrap.sh ./task.py build --plat ${{ matrix.plat }} diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 111ef242..c43a4b89 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -37,7 +37,7 @@ jobs: - name: Run guests continue-on-error: ${{ matrix.rust-toolchain == 'nightly' }} run: | - source ./activate.sh + source ./scripts/bootstrap.sh cargo version export DISK_IMG="${{ github.workspace }}/disk-aarch64.img" export VM_CONFIGS="$(pwd)/configs/vms/nimbos-aarch64.toml" @@ -65,7 +65,7 @@ jobs: continue-on-error: ${{ matrix.rust-toolchain == 'nightly' }} run: | cargo install ostool --force - source ./activate.sh + source ./scripts/bootstrap.sh git clone https://github.com/arceos-hypervisor/axboard_test cd axboard_test ./run.sh phytiumpi-arceos @@ -93,7 +93,7 @@ jobs: continue-on-error: ${{ matrix.rust-toolchain == 'nightly' }} run: | cargo install ostool --force - source ./activate.sh + source ./scripts/bootstrap.sh git clone https://github.com/arceos-hypervisor/axboard_test cd axboard_test ./run.sh rk3568-arceos @@ -134,7 +134,7 @@ jobs: - name: Run guests continue-on-error: ${{ matrix.rust-toolchain == 'nightly' }} run: | - source ./activate.sh + source ./scripts/bootstrap.sh cargo version export DISK_IMG="${{ github.workspace }}/disk-x86_64.img" export VM_CONFIGS="$(pwd)/configs/vms/nimbos-x86_64.toml" diff --git a/README.md b/README.md index 68e1e61b..074ef09a 100644 --- a/README.md +++ b/README.md @@ -46,13 +46,13 @@ Currently, AxVisor has been verified on the following platforms: Currently, AxVisor has been verified in scenarios with the following systems as guests: -* [ArceOS](https://github.com/arceos-org/arceos) -* [Starry-OS](https://github.com/Starry-OS) -* [NimbOS](https://github.com/equation314/nimbos) -* Linux - * currently only Linux with passthrough device on aarch64 is tested. - * single core: [config.toml](configs/vms/linux-qemu-aarch64.toml) | [dts](configs/vms/linux-qemu.dts) - * smp: [config.toml](configs/vms/linux-qemu-aarch64-smp2.toml) | [dts](configs/vms/linux-qemu-smp2.dts) +- [ArceOS](https://github.com/arceos-org/arceos) +- [Starry-OS](https://github.com/Starry-OS) +- [NimbOS](https://github.com/equation314/nimbos) +- Linux + - currently only Linux with passthrough device on aarch64 is tested. + - single core: [config.toml](configs/vms/linux-qemu-aarch64.toml) | [dts](configs/vms/linux-qemu.dts) + - smp: [config.toml](configs/vms/linux-qemu-aarch64-smp2.toml) | [dts](configs/vms/linux-qemu-smp2.dts) # Build and Run @@ -76,6 +76,7 @@ source activate.sh ``` The `bootstrap.sh` script will: + - Create a Python virtual environment in the `venv/` directory - Install all required dependencies from `requirements.txt` - Test that `task.py` runs correctly @@ -108,8 +109,9 @@ deactivate ## Build Environment AxVisor is written in the Rust programming language, so you need to install the Rust development environment following the instructions on the official Rust website. Additionally, you need to install cargo-binutils to use tools like rust-objcopy and rust-objdump. + ```console -$ cargo install cargo-binutils +cargo install cargo-binutils ``` If necessary, you may also need to install [musl-gcc](http://musl.cc/x86_64-linux-musl-cross.tgz) to build guest applications. @@ -130,10 +132,10 @@ In addition, you can use the [axvmconfig](https://github.com/arceos-hypervisor/a 2. Manually mount `disk.img`, and then place your guest machine image into the file system. ```console - $ mkdir -p tmp - $ sudo mount disk.img tmp - $ sudo cp /PATH/TO/YOUR/GUEST/VM/IMAGE tmp/ - $ sudo umount tmp + mkdir -p tmp + sudo mount disk.img tmp + sudo cp /PATH/TO/YOUR/GUEST/VM/IMAGE tmp/ + sudo umount tmp ``` 3. Modify the configuration items in the corresponding `./configs/vms/.toml` @@ -286,7 +288,7 @@ This project exists thanks to all the people who contribute. AxVisor uses the following open-source license: - * Apache-2.0 - * MulanPubL-2.0 - * MulanPSL2 - * GPL-3.0-or-later +- Apache-2.0 +- MulanPubL-2.0 +- MulanPSL2 +- GPL-3.0-or-later diff --git a/README_CN.md b/README_CN.md index 34c408b4..8dc4db51 100644 --- a/README_CN.md +++ b/README_CN.md @@ -46,13 +46,13 @@ AxVisor 的软件架构分为如下图所示的五层,其中,每一个框都 目前,AxVisor 已经在对如下系统作为客户机的情况进行了验证: -* [ArceOS](https://github.com/arceos-org/arceos) -* [Starry-OS](https://github.com/Starry-OS) -* [NimbOS](https://github.com/equation314/nimbos) -* Linux - * currently only Linux with passthrough device on aarch64 is tested. - * single core: [config.toml](configs/vms/linux-qemu-aarch64.toml) | [dts](configs/vms/linux-qemu.dts) - * smp: [config.toml](configs/vms/linux-qemu-aarch64-smp2.toml) | [dts](configs/vms/linux-qemu-smp2.dts) +- [ArceOS](https://github.com/arceos-org/arceos) +- [Starry-OS](https://github.com/Starry-OS) +- [NimbOS](https://github.com/equation314/nimbos) +- Linux + - currently only Linux with passthrough device on aarch64 is tested. + - single core: [config.toml](configs/vms/linux-qemu-aarch64.toml) | [dts](configs/vms/linux-qemu.dts) + - smp: [config.toml](configs/vms/linux-qemu-aarch64-smp2.toml) | [dts](configs/vms/linux-qemu-smp2.dts) # 构建及运行 @@ -111,7 +111,7 @@ deactivate AxVisor 是使用 Rust 编程语言编写的,因此,需要根据 Rust 官方网站的说明安装 Rust 开发环境。此外,还需要安装 [cargo-binutils](https://github.com/rust-embedded/cargo-binutils) 以便使用 `rust-objcopy` 和 `rust-objdump` 等工具 ```console -$ cargo install cargo-binutils +cargo install cargo-binutils ``` 根据需要,可能还要安装 [musl-gcc](http://musl.cc/x86_64-linux-musl-cross.tgz) 来构建客户机应用程序 @@ -132,10 +132,10 @@ $ cargo install cargo-binutils 2. 手动挂载 `disk.img`,然后将自己的客户机镜像复制到该文件系统中 ```bash - $ mkdir -p tmp - $ sudo mount disk.img tmp - $ sudo cp /PATH/TO/YOUR/GUEST/VM/IMAGE tmp/ - $ sudo umount tmp + mkdir -p tmp + sudo mount disk.img tmp + sudo cp /PATH/TO/YOUR/GUEST/VM/IMAGE tmp/ + sudo umount tmp ``` 3. 修改对应的 `./configs/vms/.toml` 文件中的配置项 @@ -272,7 +272,7 @@ AxVisor 作为组件化的虚拟机管理程序,很多组件是作为 Crate AxVisor 使用如下开源协议 - * Apache-2.0 - * MulanPubL-2.0 - * MulanPSL2 - * GPL-3.0-or-later +- Apache-2.0 +- MulanPubL-2.0 +- MulanPSL2 +- GPL-3.0-or-later diff --git a/activate.sh b/activate.sh deleted file mode 100755 index fc75d7cf..00000000 --- a/activate.sh +++ /dev/null @@ -1,29 +0,0 @@ -#!/bin/bash -# -*- coding: utf-8 -*- - -# Axvisor 虚拟环境激活脚本 -# 用法: source activate.sh - -# 检查虚拟环境是否存在 -if [[ ! -d "venv" ]]; then - ./bootstrap.sh -fi - -# 检查是否已经在虚拟环境中 -if [[ "$VIRTUAL_ENV" != "" ]]; then - echo "已经在虚拟环境中: $VIRTUAL_ENV" - return 0 2>/dev/null || exit 0 -fi - -# 激活虚拟环境 -echo "激活 Axvisor 虚拟环境..." -source venv/bin/activate - -echo "✓ 虚拟环境已激活" -echo "您现在可以使用以下命令:" -echo " ./task.py build # 构建项目" -echo " ./task.py run # 运行项目" -echo " ./task.py build --help # 查看构建选项" -echo " ./task.py run --help # 查看运行选项" -echo "" -echo "要退出虚拟环境,请运行: deactivate" diff --git a/doc/README.md b/doc/README.md index bfca1044..4553a854 100644 --- a/doc/README.md +++ b/doc/README.md @@ -46,11 +46,13 @@ Axvisor runs as an ArceOS app, mainly composed of the following independent comp ### The App `axvisor` A user app of ArceOS, which is: + - completely architecture-independent, - main entry point of the hypervisor, and - responsible for VM management (configuration & runtime). **Note that we aim to consolidate all dependencies on ArceOS within the vmm-app.** Currently, the modules from ArceOS that the vmm-app depends on include: + - [axstd](https://github.com/arceos-hypervisor/arceos/tree/vmm/ulib/axstd): a standard dependency interface for ArceOS's user app. - [axhal](https://github.com/arceos-hypervisor/arceos/tree/vmm/modules/axhal): for OS-related functions, including memory management, clock operations, and more. - [axtask](https://github.com/arceos-org/arceos/tree/monolithic/modules/axtask): for the scheduling of vCPUs. @@ -68,11 +70,11 @@ A user app of ArceOS, which is: - highly architecture-dependent. - stores exception context frame of different architecture. - basic scheduling item. - - arch-specific vcpu implementations need to be separated into separate crates. + - arch-specific vcpu implementations need to be separated into separate crates. - [axaddrspace](https://github.com/arceos-hypervisor/axaddrspace). - - architecture-independent. - - responsible for managing and mapping the guest VM's second-stage address space (GPA -> HPA). + - architecture-independent. + - responsible for managing and mapping the guest VM's second-stage address space (GPA -> HPA). - [axdevice](https://github.com/arceos-hypervisor/axdevice): providing device emulation support. - partially architecture-independent. diff --git a/bootstrap.sh b/scripts/bootstrap.sh similarity index 78% rename from bootstrap.sh rename to scripts/bootstrap.sh index 62a29c02..687c0916 100755 --- a/bootstrap.sh +++ b/scripts/bootstrap.sh @@ -9,6 +9,16 @@ set -e # 遇到错误时退出 echo "=== Axvisor Bootstrap Script ===" echo "正在设置 Python 虚拟环境..." +# 获取脚本所在目录 +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)" + +echo "脚本目录: $SCRIPT_DIR" +echo "项目根目录: $PROJECT_ROOT" + +# 切换到项目根目录 +cd "$PROJECT_ROOT" + # 检查 Python 版本 python_version=$(python3 --version 2>&1 | awk '{print $2}' | cut -d. -f1,2) echo "检测到 Python 版本: $python_version" @@ -22,8 +32,8 @@ if ! python3 -c "import venv" 2>/dev/null; then fi # 检查 requirements.txt 文件是否存在 -if [[ ! -f "requirements.txt" ]]; then - echo "错误: requirements.txt 文件未找到" +if [[ ! -f "scripts/requirements.txt" ]]; then + echo "错误: scripts/requirements.txt 文件未找到" exit 1 fi @@ -49,13 +59,13 @@ python -m pip install -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple -- # 安装依赖 echo "正在安装 Python 依赖..." -pip install -r requirements.txt -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple +pip install -r scripts/requirements.txt -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple echo "依赖安装完成!" -# 测试 task.py 是否可以正常运行 +# 测试 make.py 是否可以正常运行 echo "测试 task.py..." -if python3 ./task.py --help > /dev/null 2>&1; then +if python3 ./make.py --help > /dev/null 2>&1; then echo "✓ task.py 运行正常" else echo "✗ task.py 运行失败,请检查安装" diff --git a/requirements.txt b/scripts/requirements.txt similarity index 100% rename from requirements.txt rename to scripts/requirements.txt diff --git a/setup_test.sh b/setup_test.sh deleted file mode 100755 index ca7661ca..00000000 --- a/setup_test.sh +++ /dev/null @@ -1,102 +0,0 @@ -#!/bin/bash - -# 确保 tmp 目录存在 -mkdir -p tmp - -# 下载并创建镜像的完整函数 -setup_nimbos_image() { - local arch=$1 - local zip_file="tmp/${arch}_usertests.zip" - local bin_name="nimbos-${arch}.bin" - local img_name="nimbos-${arch}.img" - local download_url="https://github.com/arceos-hypervisor/nimbos/releases/download/v0.7/${arch}_usertests.zip" - - echo "=== Setting up ${img_name} ===" - - # 检查并下载对应架构的zip文件 - if [ ! -f "${zip_file}" ]; then - echo "Downloading ${arch}_usertests.zip..." - wget -P tmp "${download_url}" - if [ $? -ne 0 ]; then - echo "Error: Failed to download ${arch}_usertests.zip" - return 1 - fi - else - echo "${arch}_usertests.zip already exists, skipping download." - fi - - echo "Creating ${img_name}..." - - # 清理并创建临时目录 - sudo rm -rf tmp/tmp_disk - mkdir -p tmp/tmp_disk - - # 解压对应架构的文件 - unzip "${zip_file}" -d tmp/tmp_disk - if [ $? -ne 0 ]; then - echo "Error: Failed to extract ${zip_file}" - return 1 - fi - - # 重命名二进制文件 - mv tmp/tmp_disk/nimbos.bin "tmp/tmp_disk/${bin_name}" - - # 如果是 x86_64 架构,下载并添加 axvm-bios.bin - if [ "${arch}" == "x86_64" ]; then - echo "Downloading axvm-bios.bin for x86_64..." - local bios_file="tmp/axvm-bios.bin" - local bios_url="https://github.com/arceos-hypervisor/axvm-bios-x86/releases/download/v0.1/axvm-bios.bin" - - # 下载 axvm-bios.bin - if [ ! -f "${bios_file}" ]; then - wget -O "${bios_file}" "${bios_url}" - if [ $? -ne 0 ]; then - echo "Error: Failed to download axvm-bios.bin" - return 1 - fi - else - echo "axvm-bios.bin already exists, skipping download." - fi - - # 复制到临时目录 - cp "${bios_file}" tmp/tmp_disk/ - if [ $? -ne 0 ]; then - echo "Error: Failed to copy axvm-bios.bin" - return 1 - fi - - echo "axvm-bios.bin added to x86_64 image." - fi - - # 删除旧的镜像文件 - sudo rm -f ".arceos/${img_name}" - - # 创建新的镜像 - ./task.py disk_img --image "${img_name}" - if [ $? -ne 0 ]; then - echo "Error: Failed to create disk image ${img_name}" - return 1 - fi - - # 挂载并复制文件 - sudo mkdir -p tmp/img - sudo chown root:root tmp/tmp_disk/* - sudo mount ".arceos/${img_name}" tmp/img - if [ $? -ne 0 ]; then - echo "Error: Failed to mount ${img_name}" - return 1 - fi - - sudo mv tmp/tmp_disk/* tmp/img - sudo umount tmp/img - - echo "${img_name} created successfully!" - echo "=== ${arch} setup completed ===" - echo -} - -# 创建 aarch64 和 x86_64 镜像 -setup_nimbos_image "aarch64" -setup_nimbos_image "x86_64" - -echo "All nimbos images setup completed!" \ No newline at end of file From efea08fd55e8ba82c903a1cd60924d9ae9e1cfe8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E7=9D=BF?= Date: Fri, 5 Sep 2025 15:22:33 +0800 Subject: [PATCH 150/219] refactor: replace activate.sh with bootstrap.sh in build workflow --- .github/workflows/build.yml | 2 +- scripts/bootstrap.sh | 30 +++++++++++++++++++++++++++--- 2 files changed, 28 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 7e56b032..f08b42b2 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -21,7 +21,7 @@ jobs: targets: x86_64-unknown-none, riscv64gc-unknown-none-elf, aarch64-unknown-none, aarch64-unknown-none-softfloat - name: Check rust version run: rustc --version --verbose - - run: source ./activate.sh + - run: source ./scripts/bootstrap.sh - name: Clippy the repo continue-on-error: ${{ matrix.rust-toolchain == 'nightly' }} run: ./task.py clippy --arch ${{ matrix.arch }} diff --git a/scripts/bootstrap.sh b/scripts/bootstrap.sh index 687c0916..ff4e5a33 100755 --- a/scripts/bootstrap.sh +++ b/scripts/bootstrap.sh @@ -7,6 +7,31 @@ set -e # 遇到错误时退出 echo "=== Axvisor Bootstrap Script ===" + +# 检查是否已经在虚拟环境中 +if [[ -n "$VIRTUAL_ENV" ]]; then + echo "✓ 检测到已在虚拟环境中: $VIRTUAL_ENV" + echo "跳过虚拟环境设置,仅检查依赖..." + + # 检查 requirements.txt 文件是否存在 + SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" + PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)" + cd "$PROJECT_ROOT" + + if [[ ! -f "scripts/requirements.txt" ]]; then + echo "错误: scripts/requirements.txt 文件未找到" + exit 1 + fi + + # 安装/更新依赖 + echo "检查并安装 Python 依赖..." + pip install -r scripts/requirements.txt -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple + + echo "=== Bootstrap 完成 ===" + echo "依赖检查完成,虚拟环境已就绪!" + exit 0 +fi + echo "正在设置 Python 虚拟环境..." # 获取脚本所在目录 @@ -63,13 +88,12 @@ pip install -r scripts/requirements.txt -i https://mirrors.tuna.tsinghua.edu.cn/ echo "依赖安装完成!" -# 测试 make.py 是否可以正常运行 +# 测试 task.py 是否可以正常运行 echo "测试 task.py..." -if python3 ./make.py --help > /dev/null 2>&1; then +if python3 ./task.py --help > /dev/null 2>&1; then echo "✓ task.py 运行正常" else echo "✗ task.py 运行失败,请检查安装" - exit 1 fi echo "=== Bootstrap 完成 ===" From f245ea59fb453c886fb65ac2939d3e79a34fd209 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E7=9D=BF?= Date: Fri, 5 Sep 2025 15:39:04 +0800 Subject: [PATCH 151/219] clean: code fmt --- src/hal/mod.rs | 2 +- src/vmm/mock.rs | 51 ------------------------------------------------ src/vmm/mod.rs | 3 +-- src/vmm/vcpus.rs | 14 +++++++++++++ 4 files changed, 16 insertions(+), 54 deletions(-) delete mode 100644 src/vmm/mock.rs diff --git a/src/hal/mod.rs b/src/hal/mod.rs index ee95f53d..3a63d7a2 100644 --- a/src/hal/mod.rs +++ b/src/hal/mod.rs @@ -258,7 +258,7 @@ mod vmm_api_impl { } extern fn vcpu_num(vm_id: VMId) -> Option { - vmm::with_wm(vm_id, |vm| vm.vcpu_num()) + vmm::with_vm(vm_id, |vm| vm.vcpu_num()) } extern fn active_vcpus(_vm_id: VMId) -> Option { diff --git a/src/vmm/mock.rs b/src/vmm/mock.rs deleted file mode 100644 index a4d88220..00000000 --- a/src/vmm/mock.rs +++ /dev/null @@ -1,51 +0,0 @@ -use axaddrspace::{ - GuestPhysAddrRange, - device::{AccessWidth, DeviceAddrRange}, -}; -use axdevice_base::BaseDeviceOps; - -pub struct MockTimer { - // injector: RefCell>>, -} - -impl BaseDeviceOps for MockTimer { - fn emu_type(&self) -> axdevice_base::EmuDeviceType { - axdevice_base::EmuDeviceType::Dummy // just a placeholder - } - - fn address_range(&self) -> GuestPhysAddrRange { - // a placeholder - GuestPhysAddrRange::from_start_size(0x1234_0000.into(), 0x1000) - } - - fn handle_read( - &self, - _addr: ::Addr, - _width: AccessWidth, - ) -> axerrno::AxResult { - todo!() - } - - fn handle_write( - &self, - _addr: ::Addr, - _width: AccessWidth, - _val: usize, - ) -> axerrno::AxResult { - todo!() - } -} - -impl MockTimer { - // pub fn new() -> Self { - // Self {} - // } - - // pub fn tick(&self) { - // use axvisor_api::vmm::*; - // inject_interrupt(current_vm_id(), current_vcpu_id(), 0x77); - // } -} - -unsafe impl Send for MockTimer {} -unsafe impl Sync for MockTimer {} diff --git a/src/vmm/mod.rs b/src/vmm/mod.rs index 655bd36e..59a2f24f 100644 --- a/src/vmm/mod.rs +++ b/src/vmm/mod.rs @@ -2,7 +2,6 @@ mod config; mod hvc; mod images; mod ivc; -mod mock; pub mod timer; mod vcpus; mod vm_list; @@ -75,7 +74,7 @@ pub fn start() { pub use vcpus::with_vcpu_task; /// Run a closure with the specified VM. -pub fn with_wm(vm_id: usize, f: impl FnOnce(VMRef) -> T) -> Option { +pub fn with_vm(vm_id: usize, f: impl FnOnce(VMRef) -> T) -> Option { let vm = vm_list::get_vm_by_id(vm_id)?; Some(f(vm)) } diff --git a/src/vmm/vcpus.rs b/src/vmm/vcpus.rs index 7c6aa86f..11f12222 100644 --- a/src/vmm/vcpus.rs +++ b/src/vmm/vcpus.rs @@ -29,25 +29,39 @@ const KERNEL_STACK_SIZE: usize = 0x40000; // 256 KiB /// variable. static VM_VCPU_TASK_WAIT_QUEUE: Queue = Queue::new(); +/// A thread-safe queue that manages wait queues for VCpus across multiple VMs. +/// +/// This structure wraps a BTreeMap that maps VM IDs to their corresponding VMVCpus structures. +/// It provides thread-safe access to the mapping through interior mutability using UnsafeCell. +/// Each VM is identified by its unique ID, and the queue manages the VCpu tasks and wait +/// operations for all VMs in the system. struct Queue(UnsafeCell>); unsafe impl Sync for Queue {} unsafe impl Send for Queue {} impl Queue { + /// Creates a new empty Queue. + /// + /// # Returns + /// + /// A new Queue instance with an empty BTreeMap. const fn new() -> Self { Self(UnsafeCell::new(BTreeMap::new())) } + /// Retrieves a reference to the VMVCpus for the specified VM ID. fn get(&self, vm_id: &usize) -> Option<&VMVCpus> { unsafe { (*self.0.get()).get(vm_id) } } + /// Retrieves a mutable reference to the VMVCpus for the specified VM ID. #[allow(clippy::mut_from_ref)] fn get_mut(&self, vm_id: &usize) -> Option<&mut VMVCpus> { unsafe { (*self.0.get()).get_mut(vm_id) } } + /// Inserts a new VMVCpus entry for the specified VM ID. fn insert(&self, vm_id: usize, vcpus: VMVCpus) { unsafe { (*self.0.get()).insert(vm_id, vcpus); From 389878342cc454b4640cbeccffde27dc3e49c399 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E7=9D=BF?= Date: Fri, 5 Sep 2025 16:42:44 +0800 Subject: [PATCH 152/219] feat: add ept feature check --- src/hal/arch/aarch64/mod.rs | 39 +++++++++++++++++++++++++++++++++++++ src/hal/arch/x86_64/mod.rs | 4 ++++ src/hal/mod.rs | 4 +++- 3 files changed, 46 insertions(+), 1 deletion(-) diff --git a/src/hal/arch/aarch64/mod.rs b/src/hal/arch/aarch64/mod.rs index e5abcc20..6c2251d4 100644 --- a/src/hal/arch/aarch64/mod.rs +++ b/src/hal/arch/aarch64/mod.rs @@ -1,3 +1,5 @@ +use aarch64_cpu_ext::registers::*; + mod api; pub mod cache; @@ -112,3 +114,40 @@ pub fn inject_interrupt_gic_v3(vector: usize) { vector, free_lr ); } + +pub fn hardware_check() { + let pa_bits = match ID_AA64MMFR0_EL1.read_as_enum(ID_AA64MMFR0_EL1::PARange) { + Some(ID_AA64MMFR0_EL1::PARange::Value::Bits_32) => 32, + Some(ID_AA64MMFR0_EL1::PARange::Value::Bits_36) => 36, + Some(ID_AA64MMFR0_EL1::PARange::Value::Bits_40) => 40, + Some(ID_AA64MMFR0_EL1::PARange::Value::Bits_42) => 42, + Some(ID_AA64MMFR0_EL1::PARange::Value::Bits_44) => 44, + Some(ID_AA64MMFR0_EL1::PARange::Value::Bits_48) => 48, + Some(ID_AA64MMFR0_EL1::PARange::Value::Bits_52) => 52, + _ => 32, + }; + + let level = match pa_bits { + 44.. => 4, + _ => 3, + }; + + #[cfg(feature = "ept-level-4")] + { + if level < 4 { + panic!( + "4-level EPT feature is enabled, but the hardware only supports {}-level page tables. Please disable the 4-level EPT feature or use hardware that supports 4-level page tables.", + level + ); + } + } + #[cfg(not(feature = "ept-level-4"))] + { + if level > 3 { + panic!( + "The hardware supports {}-level page tables, but the 4-level EPT feature is not enabled. Please enable the 4-level EPT feature to utilize the hardware's full capabilities.", + level + ); + } + } +} diff --git a/src/hal/arch/x86_64/mod.rs b/src/hal/arch/x86_64/mod.rs index f34b5a4c..6e212e80 100644 --- a/src/hal/arch/x86_64/mod.rs +++ b/src/hal/arch/x86_64/mod.rs @@ -2,3 +2,7 @@ use crate::hal::CacheOp; use memory_addr::VirtAddr; pub mod cache; + +pub fn hardware_check(){ + +} \ No newline at end of file diff --git a/src/hal/mod.rs b/src/hal/mod.rs index 3a63d7a2..dea67ecd 100644 --- a/src/hal/mod.rs +++ b/src/hal/mod.rs @@ -19,7 +19,7 @@ use axvm::{AxVMHal, AxVMPerCpu}; #[cfg_attr(target_arch = "x86_64", path = "arch/x86_64/mod.rs")] pub mod arch; -use crate::vmm; +use crate::{hal::arch::hardware_check, vmm}; #[repr(C)] #[derive(Debug, Clone, Copy)] @@ -136,6 +136,8 @@ pub(crate) fn enable_virtualization() { info!("Enabling hardware virtualization support on all cores..."); + hardware_check(); + for cpu_id in 0..config::plat::CPU_NUM { thread::spawn(move || { info!( From 60e2d2508c8c61bbe280ebbad42fa3d30a5c8306 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E7=9D=BF?= Date: Fri, 5 Sep 2025 17:19:52 +0800 Subject: [PATCH 153/219] fix: send ipi --- Cargo.toml | 6 ++---- src/vmm/vcpus.rs | 46 +++++++++++++++------------------------------- 2 files changed, 17 insertions(+), 35 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 070b7a70..6402ef84 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -11,12 +11,10 @@ version = "0.1.0" [features] fs = ["axstd/fs"] -hv = [] -irq = [] ept-level-4 = ["axaddrspace/4-level-ept"] -plat-aarch64-generic = ["axplat-aarch64-generic", "hv", "irq", "axstd/driver-dyn"] -plat-x86-qemu-q35 = ["axplat-x86-qemu-q35", "hv", "irq"] +plat-aarch64-generic = ["axplat-aarch64-generic", "axstd/driver-dyn"] +plat-x86-qemu-q35 = ["axplat-x86-qemu-q35"] [dependencies] diff --git a/src/vmm/vcpus.rs b/src/vmm/vcpus.rs index 11f12222..61caa4ea 100644 --- a/src/vmm/vcpus.rs +++ b/src/vmm/vcpus.rs @@ -1,4 +1,5 @@ use alloc::{collections::BTreeMap, vec::Vec}; +use cpumask::CpuMask; use core::{ cell::UnsafeCell, @@ -17,8 +18,8 @@ use axaddrspace::GuestPhysAddr; use axtask::{AxTaskRef, TaskExtRef, TaskInner, WaitQueue}; use axvcpu::{AxVCpuExitReason, VCpuState}; -use crate::task::TaskExt; use crate::vmm::{VCpuRef, VMRef}; +use crate::{hal::arch::inject_interrupt, task::TaskExt}; const KERNEL_STACK_SIZE: usize = 0x40000; // 256 KiB @@ -449,38 +450,21 @@ fn vcpu_run() { send_to_self, vector, } => { - if send_to_all || send_to_self { - unimplemented!( - "SendIPI with send_to_all or send_to_self is not implemented yet" - ); + debug!( + "VM[{vm_id}] run VCpu[{vcpu_id}] SendIPI, target_cpu={target_cpu:#x}, target_cpu_aux={target_cpu_aux:#x}, vector={vector}", + ); + if send_to_all { + unimplemented!("Send IPI to all CPUs is not implemented yet"); } - #[cfg(target_arch = "aarch64")] - { - let aff3 = (target_cpu >> 24) & 0xff; - let aff2 = (target_cpu >> 16) & 0xff; - let aff1 = (target_cpu >> 8) & 0xff; - let irm = send_to_all as u64; - - let icc_sgi1r_value = (vector as u64) << 24 - | aff3 << 48 - | aff2 << 32 - | aff1 << 16 - | irm << 40 - | target_cpu_aux; - - debug!( - "VM[{}] run VCpu[{}] SendIPI, target_cpu={:#x}, target_cpu_aux={:#x}, vector={}, icc_sgi1r_value={:#x}", - vm_id, vcpu_id, target_cpu, target_cpu_aux, vector, icc_sgi1r_value - ); - - unsafe { - core::arch::asm!( - "msr icc_sgi1r_el1, {0}", - in(reg) icc_sgi1r_value, - options(nostack, nomem, preserves_flags) - ); - } + if target_cpu == vcpu_id as u64 || send_to_self { + inject_interrupt(vector as _); + } else { + vm.inject_interrupt_to_vcpu( + CpuMask::one_shot(target_cpu as _), + vector as _, + ) + .unwrap(); } } e => { From 9f660e3c8cbac0ab6b744f2937463a604e27c209 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E7=9D=BF?= Date: Fri, 5 Sep 2025 17:35:08 +0800 Subject: [PATCH 154/219] fix: fmt code --- src/hal/arch/x86_64/mod.rs | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/hal/arch/x86_64/mod.rs b/src/hal/arch/x86_64/mod.rs index 6e212e80..161ca24b 100644 --- a/src/hal/arch/x86_64/mod.rs +++ b/src/hal/arch/x86_64/mod.rs @@ -3,6 +3,4 @@ use memory_addr::VirtAddr; pub mod cache; -pub fn hardware_check(){ - -} \ No newline at end of file +pub fn hardware_check() {} From 98cf48b2d5e1d1e26568eb0e827dd756c72cdf27 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E7=9D=BF?= Date: Mon, 8 Sep 2025 09:39:18 +0800 Subject: [PATCH 155/219] feat: add make --- .../setup-nimbos-guest-image/action.yml | 2 +- .github/workflows/build.yml | 5 +- .github/workflows/test.yml | 20 ++--- Makefile | 50 +++++++++++++ README.md | 10 +-- README_CN.md | 7 -- doc/task.py-usage.md | 24 +++--- scripts/bootstrap.sh | 62 +++++++++++---- scripts/task.py | 75 +++++++++++++++++++ 9 files changed, 203 insertions(+), 52 deletions(-) create mode 100644 Makefile create mode 100644 scripts/task.py diff --git a/.github/workflows/actions/setup-nimbos-guest-image/action.yml b/.github/workflows/actions/setup-nimbos-guest-image/action.yml index 864e3934..ca519e00 100644 --- a/.github/workflows/actions/setup-nimbos-guest-image/action.yml +++ b/.github/workflows/actions/setup-nimbos-guest-image/action.yml @@ -61,7 +61,7 @@ runs: - name: Create Image shell: bash run: | - ./task.py disk_img --image ${{ inputs.disk-path }} + make disk_img --image ${{ inputs.disk-path }} sudo mkdir -p img sudo chown root:root temp/* sudo mount ${{ inputs.disk-path }} img diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index f08b42b2..6f06e692 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -21,10 +21,9 @@ jobs: targets: x86_64-unknown-none, riscv64gc-unknown-none-elf, aarch64-unknown-none, aarch64-unknown-none-softfloat - name: Check rust version run: rustc --version --verbose - - run: source ./scripts/bootstrap.sh - name: Clippy the repo continue-on-error: ${{ matrix.rust-toolchain == 'nightly' }} - run: ./task.py clippy --arch ${{ matrix.arch }} + run: make clippy --arch ${{ matrix.arch }} fmt: runs-on: ubuntu-latest @@ -69,4 +68,4 @@ jobs: continue-on-error: ${{ matrix.rust-toolchain == 'nightly' }} run: | source ./scripts/bootstrap.sh - ./task.py build --plat ${{ matrix.plat }} + ./scripts/task.py build --plat ${{ matrix.plat }} diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index c43a4b89..c17615ac 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -37,11 +37,11 @@ jobs: - name: Run guests continue-on-error: ${{ matrix.rust-toolchain == 'nightly' }} run: | - source ./scripts/bootstrap.sh - cargo version - export DISK_IMG="${{ github.workspace }}/disk-aarch64.img" - export VM_CONFIGS="$(pwd)/configs/vms/nimbos-aarch64.toml" - ./task.py run --plat ${{ matrix.plat }} --vmconfigs $VM_CONFIGS --features fs,ept-level-4 --arceos-args DISK_IMG=$DISK_IMG,BUS=mmio,BLK=y,MEM=8g + source ./scripts/bootstrap.sh + cargo version + export DISK_IMG="${{ github.workspace }}/disk-aarch64.img" + export VM_CONFIGS="$(pwd)/configs/vms/nimbos-aarch64.toml" + ./scripts/task.py run --plat ${{ matrix.plat }} --vmconfigs $VM_CONFIGS --features fs,ept-level-4 --arceos-args DISK_IMG=$DISK_IMG,BUS=mmio,BLK=y,MEM=8g aarch64-generic-phytiumpi: runs-on: [self-hosted, linux, docker] @@ -134,10 +134,10 @@ jobs: - name: Run guests continue-on-error: ${{ matrix.rust-toolchain == 'nightly' }} run: | - source ./scripts/bootstrap.sh - cargo version - export DISK_IMG="${{ github.workspace }}/disk-x86_64.img" - export VM_CONFIGS="$(pwd)/configs/vms/nimbos-x86_64.toml" - ./task.py run --plat ${{ matrix.plat }} --vmconfigs $VM_CONFIGS --features fs --arceos-args DISK_IMG=$DISK_IMG,BLK=y,MEM=1g + source ./scripts/bootstrap.sh + cargo version + export DISK_IMG="${{ github.workspace }}/disk-x86_64.img" + export VM_CONFIGS="$(pwd)/configs/vms/nimbos-x86_64.toml" + ./scripts/task.py run --plat ${{ matrix.plat }} --vmconfigs $VM_CONFIGS --features fs --arceos-args DISK_IMG=$DISK_IMG,BLK=y,MEM=1g diff --git a/Makefile b/Makefile new file mode 100644 index 00000000..6961354c --- /dev/null +++ b/Makefile @@ -0,0 +1,50 @@ + +# Prefer venv python if available, otherwise fall back to system python3 +VENV_PY := venv/bin/python +PYTHON := $(if $(wildcard $(VENV_PY)),$(VENV_PY),$(or $(PYTHON),python3)) +TASK := $(PYTHON) -m scripts.task +# Run bootstrap.sh unconditionally; script will quickly return if up-to-date +BOOTSTRAP_CHECK := ./scripts/bootstrap.sh + +# PASS_ARGS collects extra words after the target and the ARGS variable. +# Use the `--` separator to stop make option parsing and pass raw flags, +# e.g.: +# make clippy -- --arch x86_64 +# or +# make clippy ARGS="--arch x86_64" +PASS_ARGS := $(MAKECMDGOALS) $(ARGS) + +.PHONY: help task setup build run clippy clean disk_img + +help: + @echo "Usage: make -- Targets: setup build run clippy clean disk_img help" + @echo "You can also run: make task ARGS=\"build --release\"" + +task: + @$(BOOTSTRAP_CHECK); $(TASK) $(filter-out $@,$(PASS_ARGS)) + +setup: + @$(BOOTSTRAP_CHECK); $(TASK) setup $(filter-out $@,$(PASS_ARGS)) + +build: + @$(BOOTSTRAP_CHECK); $(TASK) build $(filter-out $@,$(PASS_ARGS)) + +run: + @$(BOOTSTRAP_CHECK); $(TASK) run $(filter-out $@,$(PASS_ARGS)) + +clippy: + @$(BOOTSTRAP_CHECK); $(TASK) clippy $(filter-out $@,$(PASS_ARGS)) + +clean: + @$(BOOTSTRAP_CHECK); $(TASK) clean $(filter-out $@,$(PASS_ARGS)); cargo clean + +disk_img: + @$(BOOTSTRAP_CHECK); $(TASK) disk_img $(filter-out $@,$(PASS_ARGS)) $(IMGARGS) + +# Allow passing extra command-line words after the target, e.g. +# make clippy --arch x86_64 +# MAKECMDGOALS will contain the extra words; provide a no-op pattern +# rule so make doesn't error on unknown goals. The target recipes +# forward those extra words to the underlying Python task. +%: + @: diff --git a/README.md b/README.md index 074ef09a..207ae341 100644 --- a/README.md +++ b/README.md @@ -87,15 +87,15 @@ Once the Python environment is set up: ```bash # Build the project -./task.py build +./scripts/task.py build # Run the project -./task.py run +./scripts/task.py run # Get help -./task.py --help -./task.py build --help -./task.py run --help +./scripts/task.py --help +./scripts/task.py build --help +./scripts/task.py run --help ``` ### 3. Deactivating Virtual Environment diff --git a/README_CN.md b/README_CN.md index 8dc4db51..0280e093 100644 --- a/README_CN.md +++ b/README_CN.md @@ -86,9 +86,6 @@ source activate.sh 设置好 Python 环境后: ```bash -# 构建项目 -./task.py build - # 运行项目 ./task.py run @@ -172,10 +169,6 @@ cargo install cargo-binutils d8888888888 888 Y88b. Y8b. Y88b. .d88P Y88b d88P d88P 888 888 "Y8888P "Y8888 "Y88888P" "Y8888P" -arch = aarch64 -platform = aarch64-qemu-virt-hv -target = aarch64-unknown-none-softfloat -build_mode = release log_level = info smp = 1 diff --git a/doc/task.py-usage.md b/doc/task.py-usage.md index 87977d9d..5aab2b5f 100644 --- a/doc/task.py-usage.md +++ b/doc/task.py-usage.md @@ -17,6 +17,7 @@ source ./activate.sh ### 1. build - 构建项目 +./scripts/task.py [options] 构建 Axvisor 项目。 ```bash @@ -26,29 +27,29 @@ source ./activate.sh **功能**: - 自动设置 ArceOS 依赖(如果尚未设置) -- 根据配置生成构建命令 +./scripts/task.py build [options] - 执行 make 构建 **示例**: ```bash # 使用 .hvconfig.toml 中的配置构建 -./task.py build +./scripts/task.py build # 指定平台构建 -./task.py build --plat aarch64-generic +./scripts/task.py build --plat aarch64-generic # 添加特性 -./task.py build --features "feature1,feature2" +./scripts/task.py build --features "feature1,feature2" # 添加 ArceOS 特性 -./task.py build --arceos-features "page-alloc-64g,smp" +./scripts/task.py build --arceos-features "page-alloc-64g,smp" # 添加 ArceOS Makefile 参数 -./task.py build --arceos-args "NET=y,BLK=y,MEM=8g,LOG=debug" +./scripts/task.py build --arceos-args "NET=y,BLK=y,MEM=8g,LOG=debug" # 指定 VM 配置文件 -./task.py build --vmconfigs "config1.toml,config2.toml" +./scripts/task.py build --vmconfigs "config1.toml,config2.toml" ``` ### 3. run - 运行项目 @@ -56,16 +57,17 @@ source ./activate.sh 构建并运行 Axvisor 项目。 ```bash -./task.py run [options] +./scripts/task.py run [options] ``` **功能**: - 首先执行构建步骤 - 如果构建成功,则运行项目 -- 支持所有构建选项 +./scripts/task.py run **示例**: +./scripts/task.py run --plat aarch64-generic --arceos-args "MEM=4g,BUS=mmio,BLK=y,LOG=debug" --features "fs" ```bash # 使用 .hvconfig.toml 中的配置运行 @@ -75,7 +77,7 @@ source ./activate.sh ./task.py run --plat aarch64-generic --arceos-args "MEM=4g,BUS=mmio,BLK=y,LOG=debug" --features "fs" ``` -## 命令行参数 +./scripts/task.py run --arceos-args "QEMU_ARGS=\"-smp 4 -m 2G -netdev user,id=net0\"" ### 通用参数 @@ -86,6 +88,8 @@ source ./activate.sh | `--plat` | string | aarch64-generic | 指定目标平台 | | `--arch` | string | 自动检测 | 指定目标架构 | | `--package` | string | 自动检测 | 指定平台包名 | +cp .hvconfig.dev.toml .hvconfig.toml && ./scripts/task.py build +cp .hvconfig.prod.toml .hvconfig.toml && ./scripts/task.py run | `--features` | string | 无 | Hypervisor 特性(逗号分隔) | | `--arceos-features` | string | 无 | ArceOS 特性(逗号分隔) | | `--arceos-args` | string | 无 | ArceOS 参数(逗号分隔) | diff --git a/scripts/bootstrap.sh b/scripts/bootstrap.sh index ff4e5a33..ab6e6a4f 100755 --- a/scripts/bootstrap.sh +++ b/scripts/bootstrap.sh @@ -6,13 +6,8 @@ set -e # 遇到错误时退出 -echo "=== Axvisor Bootstrap Script ===" - # 检查是否已经在虚拟环境中 if [[ -n "$VIRTUAL_ENV" ]]; then - echo "✓ 检测到已在虚拟环境中: $VIRTUAL_ENV" - echo "跳过虚拟环境设置,仅检查依赖..." - # 检查 requirements.txt 文件是否存在 SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)" @@ -24,14 +19,38 @@ if [[ -n "$VIRTUAL_ENV" ]]; then fi # 安装/更新依赖 - echo "检查并安装 Python 依赖..." pip install -r scripts/requirements.txt -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple - echo "=== Bootstrap 完成 ===" - echo "依赖检查完成,虚拟环境已就绪!" exit 0 fi +# If bootstrap marker exists, assume bootstrap already done +MARKER_DIR="venv" +MARKER_FILE="$MARKER_DIR/.bootstrapped" + +# compute dependency hash based on python version and requirements content +compute_dep_hash() { + local pyver + pyver=$(python3 --version 2>/dev/null || echo "unknown") + if [[ -f "scripts/requirements.txt" ]]; then + cat scripts/requirements.txt | sed '/^#/d' | tr -d '\r' | sha256sum | awk '{print $1}' | awk -v p="$pyver" '{print p "-" $0}' | sha256sum | awk '{print $1}' + else + echo "$pyver-$(date +%s)" | sha256sum | awk '{print $1}' + fi +} + +# If marker exists and hash matches, skip bootstrap +if [[ -f "$MARKER_FILE" ]]; then + existing_hash=$(awk -F":" '/^hash:/ {print $2}' "$MARKER_FILE" | tr -d '[:space:]') || existing_hash="" + current_hash=$(compute_dep_hash) + if [[ "$existing_hash" == "$current_hash" ]]; then + echo "✓ bootstrap 已完成且依赖未更改(hash匹配),跳过引导" + exit 0 + else + echo "检测到依赖变更或 Python 版本变更,重新运行 bootstrap..." + fi +fi + echo "正在设置 Python 虚拟环境..." # 获取脚本所在目录 @@ -89,11 +108,11 @@ pip install -r scripts/requirements.txt -i https://mirrors.tuna.tsinghua.edu.cn/ echo "依赖安装完成!" # 测试 task.py 是否可以正常运行 -echo "测试 task.py..." -if python3 ./task.py --help > /dev/null 2>&1; then - echo "✓ task.py 运行正常" +echo "测试 scripts/task.py..." +if python3 ./scripts/task.py --help > /dev/null 2>&1; then + echo "✓ scripts/task.py 运行正常" else - echo "✗ task.py 运行失败,请检查安装" + echo "✗ scripts/task.py 运行失败,请检查安装" fi echo "=== Bootstrap 完成 ===" @@ -103,10 +122,21 @@ echo "要使用项目,请先激活虚拟环境:" echo " source venv/bin/activate" echo "" echo "然后您可以使用以下命令:" -echo " ./task.py build # 构建项目" -echo " ./task.py run # 运行项目" -echo " ./task.py build --help # 查看构建选项" -echo " ./task.py run --help # 查看运行选项" +echo " ./scripts/task.py build # 构建项目" +echo " ./scripts/task.py run # 运行项目" +echo " ./scripts/task.py build --help # 查看构建选项" +echo " ./scripts/task.py run --help # 查看运行选项" echo "" echo "要退出虚拟环境,请运行:" echo " deactivate" + +# 写入 bootstrap 完成标记,包含时间戳 +if [[ -d "$VENV_DIR" ]]; then + mkdir -p "$VENV_DIR" + dep_hash=$(compute_dep_hash) + cat > "$MARKER_FILE" < Date: Mon, 8 Sep 2025 12:03:37 +0800 Subject: [PATCH 156/219] code: fmt --- Makefile | 50 --- README.md | 67 ++-- README_CN.md | 17 + configs/vms/linux-qemu-aarch64-mem.toml | 84 +++++ configs/vms/linux-qemu-aarch64.toml | 23 +- configs/vms/linux-qemu_gicv3.dts | 411 ------------------------ make.sh | 95 ++++++ scripts/task.py | 44 ++- src/hal/arch/x86_64/mod.rs | 1 + 9 files changed, 244 insertions(+), 548 deletions(-) delete mode 100644 Makefile create mode 100644 configs/vms/linux-qemu-aarch64-mem.toml delete mode 100644 configs/vms/linux-qemu_gicv3.dts create mode 100755 make.sh diff --git a/Makefile b/Makefile deleted file mode 100644 index 6961354c..00000000 --- a/Makefile +++ /dev/null @@ -1,50 +0,0 @@ - -# Prefer venv python if available, otherwise fall back to system python3 -VENV_PY := venv/bin/python -PYTHON := $(if $(wildcard $(VENV_PY)),$(VENV_PY),$(or $(PYTHON),python3)) -TASK := $(PYTHON) -m scripts.task -# Run bootstrap.sh unconditionally; script will quickly return if up-to-date -BOOTSTRAP_CHECK := ./scripts/bootstrap.sh - -# PASS_ARGS collects extra words after the target and the ARGS variable. -# Use the `--` separator to stop make option parsing and pass raw flags, -# e.g.: -# make clippy -- --arch x86_64 -# or -# make clippy ARGS="--arch x86_64" -PASS_ARGS := $(MAKECMDGOALS) $(ARGS) - -.PHONY: help task setup build run clippy clean disk_img - -help: - @echo "Usage: make -- Targets: setup build run clippy clean disk_img help" - @echo "You can also run: make task ARGS=\"build --release\"" - -task: - @$(BOOTSTRAP_CHECK); $(TASK) $(filter-out $@,$(PASS_ARGS)) - -setup: - @$(BOOTSTRAP_CHECK); $(TASK) setup $(filter-out $@,$(PASS_ARGS)) - -build: - @$(BOOTSTRAP_CHECK); $(TASK) build $(filter-out $@,$(PASS_ARGS)) - -run: - @$(BOOTSTRAP_CHECK); $(TASK) run $(filter-out $@,$(PASS_ARGS)) - -clippy: - @$(BOOTSTRAP_CHECK); $(TASK) clippy $(filter-out $@,$(PASS_ARGS)) - -clean: - @$(BOOTSTRAP_CHECK); $(TASK) clean $(filter-out $@,$(PASS_ARGS)); cargo clean - -disk_img: - @$(BOOTSTRAP_CHECK); $(TASK) disk_img $(filter-out $@,$(PASS_ARGS)) $(IMGARGS) - -# Allow passing extra command-line words after the target, e.g. -# make clippy --arch x86_64 -# MAKECMDGOALS will contain the extra words; provide a no-op pattern -# rule so make doesn't error on unknown goals. The target recipes -# forward those extra words to the underlying Python task. -%: - @: diff --git a/README.md b/README.md index 207ae341..f3163ec4 100644 --- a/README.md +++ b/README.md @@ -60,50 +60,19 @@ After AxVisor starts, it loads and starts the guest based on the information in ## Quick Start -### 1. Python Environment Setup - -AxVisor uses a Python script (`task.py`) for build and run management. To set up the required Python environment: - -```bash -# Install Python dependencies in a virtual environment -./bootstrap.sh - -# Activate the virtual environment -source venv/bin/activate - -# Or use the convenience script -source activate.sh -``` - -The `bootstrap.sh` script will: - -- Create a Python virtual environment in the `venv/` directory -- Install all required dependencies from `requirements.txt` -- Test that `task.py` runs correctly - -### 2. Basic Usage - -Once the Python environment is set up: +### Run AxVisor ```bash -# Build the project -./scripts/task.py build - -# Run the project -./scripts/task.py run - # Get help -./scripts/task.py --help -./scripts/task.py build --help -./scripts/task.py run --help -``` +make build -- --help +make run -- --help -### 3. Deactivating Virtual Environment +# perpare guest config -When you're done working with the project: +mkdir -p tmp +cp configs/vms/arceos-aarch64.toml tmp/ -```bash -deactivate +make run -- --plat aarch64-generic --arceos-args "MEM=4g,BUS=mmio,BLK=y,LOG=debug,QEMU_ARGS=\"-machine gic-version=3 -cpu cortex-a72 \"" --features "fs" --vmconfigs "configs/vms/arceos-aarch64.toml" ``` ## Build Environment @@ -124,18 +93,20 @@ In addition, you can use the [axvmconfig](https://github.com/arceos-hypervisor/a ## Load and run from file system -1. Build a client image file suitable for your own architecture. Taking the ArceOS mainline code as an example, run `make PLATFORM=aarch64-qemu-virt SMP=1 A=examples/helloworld` to generate `helloworld_aarch64-qemu-virt.bin`. +1. Build a client image file suitable for your own architecture. Taking the linux as an example, [See linux build help.](https://github.com/arceos-hypervisor/guest-test-linux), and get `rootfs.img`. -2. Create a disk image file and place the guest machine image into the file system. +2. Put guest dtb to rootfs. - 1. Use the `make disk_img` command to generate an empty FAT32 disk image file named `disk.img`. - 2. Manually mount `disk.img`, and then place your guest machine image into the file system. + 1. cp `rootfs.img` to tmp directory and mount it. + 2. Manually mount `rootfs.img`, and then place your guest machine dtb into the file system. ```console - mkdir -p tmp - sudo mount disk.img tmp - sudo cp /PATH/TO/YOUR/GUEST/VM/IMAGE tmp/ - sudo umount tmp + dtc -I dts -O dtb -o tmp/aarch64-qemu-gicv3.dtb configs/vms/aarch64-qemu-gicv3.dts + sudo rm -rf tmp/rootfs + mkdir -p tmp/rootfs + sudo mount tmp/rootfs.img tmp/rootfs + sudo cp tmp/aarch64-qemu-gicv3.dtb tmp/rootfs/boot/ + sudo umount tmp/rootfs ``` 3. Modify the configuration items in the corresponding `./configs/vms/.toml` @@ -145,11 +116,11 @@ In addition, you can use the [axvmconfig](https://github.com/arceos-hypervisor/a - `kernel_load_addr` specifies the loading address of the kernel image. - others -4. Execute `make ACCEL=n ARCH=aarch64 LOG=info VM_CONFIGS=configs/vms/arceos-aarch64.toml APP_FEATURES=fs run` to build AxVisor and start it in QEMU. +4. Execute `./make.sh run -- --plat aarch64-generic --arceos-args "MEM=4g,BUS=mmio,BLK=y,LOG=debug,DISK_IMG=tmp/rootfs.img" --features "fs" --vmconfigs configs/vms/linux-qemu-aarch64.toml` to build AxVisor and start it in QEMU. ## Load and run from memory -1. Build a client image file suitable for your own architecture. Taking the ArceOS mainline code as an example, run `make PLATFORM=aarch64-qemu-virt SMP=1 A=examples/helloworld` to generate `helloworld_aarch64-qemu-virt.bin`. +1. [See linux build help.](https://github.com/arceos-hypervisor/guest-test-linux) 2. Modify the configuration items in the corresponding `./configs/vms/.toml` - `image_location="memory"` indicates loading from the memory. diff --git a/README_CN.md b/README_CN.md index 0280e093..7c861b3a 100644 --- a/README_CN.md +++ b/README_CN.md @@ -103,6 +103,23 @@ source activate.sh deactivate ``` +## 使用 make 透传参数 + +仓库根目录的 `Makefile` 会把额外的命令行参数透传给 Python 辅助脚本 `scripts.task.py`。因为 GNU Make 会解析以 `--` 开头的选项,推荐使用 `--` 分隔符将原始参数传递给底层脚本。示例: + +```bash +# 推荐:在 `--` 之后传递原始参数 +make clippy -- --arch x86_64 + +# 可选:使用变量传递(会被转发) +make clippy ARCH=x86_64 + +# 或通过 ARGS 传递 +make clippy ARGS="--arch x86_64" +``` + +以上三种方式都将会使 Python 脚本接收到 `--arch x86_64`;当需要传递任意包含 `--` 的标志时,请使用 `--` 分隔符以避免被 make 解析。 + ## 构建环境 AxVisor 是使用 Rust 编程语言编写的,因此,需要根据 Rust 官方网站的说明安装 Rust 开发环境。此外,还需要安装 [cargo-binutils](https://github.com/rust-embedded/cargo-binutils) 以便使用 `rust-objcopy` 和 `rust-objdump` 等工具 diff --git a/configs/vms/linux-qemu-aarch64-mem.toml b/configs/vms/linux-qemu-aarch64-mem.toml new file mode 100644 index 00000000..ecba2f82 --- /dev/null +++ b/configs/vms/linux-qemu-aarch64-mem.toml @@ -0,0 +1,84 @@ +# Vm base info configs +# +[base] +# Guest vm id. +id = 1 +# Guest vm name. +name = "linux-qemu" +# Virtualization type. +vm_type = 1 +# The number of virtual CPUs. +cpu_num = 1 +# Guest vm physical cpu sets. +phys_cpu_ids = [0] +phys_cpu_sets = [1] + +# +# Vm kernel configs +# +[kernel] +# The entry point of the kernel image. +entry_point = 0x8020_0000 +# The location of image: "memory" | "fs". +# load from memory. +image_location = "memory" +# The file path of the kernel image. +# kernel_path = "linux-6.6.62.bin" +kernel_path = "/path/to/Image" +# The load address of the kernel image. +kernel_load_addr = 0x8020_0000 +# The file path of the device tree blob (DTB). +dtb_path = "/home/zhourui/arceos/axvisor-dev/tmp/aarch64-qemu-gicv3.dtb" +# The load address of the device tree blob (DTB). +dtb_load_addr = 0x8000_0000 + +## load from file system +# image_location = "fs" +## The file path of the kernel image. +# kernel_path = "linux-arceos-aarch64.bin" +## The file path of the device tree blob (DTB). +# dtb_path = "linux-rk3588.dtb" + +## The file path of the ramdisk image. +# ramdisk_path = "" +## The load address of the ramdisk image. +# ramdisk_load_addr = 0 +## The path of the disk image. +# disk_path = "disk.img" + +# Memory regions with format (`base_paddr`, `size`, `flags`, `map_type`). +# For `map_type`, 0 means `MAP_ALLOC`, 1 means `MAP_IDENTICAL`. +memory_regions = [ + # [0x8000_0000, 0x4000_0000, 0x7, 1], # System RAM 1G MAP_IDENTICAL +] + +# +# Device specifications +# +[devices] +# Pass-through devices. +passthrough_devices = [ + ["intc@8000000", 0x800_0000, 0x800_0000, 0x100_0000, 0x1], + # ["pl011@9000000", 0x900_0000, 0x900_0000, 0x1000, 0x1], + # ["pl031@9010000", 0x901_0000, 0x901_0000, 0x1000, 0x1], + # ["pl061@9030000", 0x903_0000, 0x903_0000, 0x1000, 0x1], + # a003000.virtio_mmio virtio_mmio@a003000 + # a003200.virtio_mmio virtio_mmio@a003200 + # ["virtio_mmio", 0xa00_0000, 0xa00_0000, 0x4000, 0x1], + # ["low-devices", 0x0, 0x0, 0x0800_0000, 0x1], + # ["low-devices2", 0x09000000, 0x09000000, 0x1000_0000, 0x1], + # ["pci@10000000", 0x10000000, 0x10000000, 0x10000000, 0x1], + # ["pci", 0x4010000000, 0x4010000000, 0x100000, 0x1], + # ["pci-range", 0x8000000000, 0x8000000000, 0x10000, 0x1], +] + +# Emu_devices. +# Name Base-Ipa Ipa_len Alloc-Irq Emu-Type EmuConfig. +emu_devices = [ + # ["gppt-gicd", 0x0800_0000, 0x1_0000, 0, 0x21, []], + # ["gppt-gicr", 0x080a_0000, 0x2_0000, 0, 0x20, [1, 0x2_0000, 0]], # 1 vcpu, stride 0x20000, starts with pcpu 0 + # ["gppt-gits", 0x0808_0000, 0x2_0000, 0, 0x22, [0x0808_0000]], # host_gits_base +] + +interrupt_mode = "passthrough" + diff --git a/configs/vms/linux-qemu-aarch64.toml b/configs/vms/linux-qemu-aarch64.toml index 6eef7cf7..e35ad773 100644 --- a/configs/vms/linux-qemu-aarch64.toml +++ b/configs/vms/linux-qemu-aarch64.toml @@ -21,24 +21,16 @@ phys_cpu_sets = [1] entry_point = 0x8020_0000 # The location of image: "memory" | "fs". # load from memory. -image_location = "memory" +image_location = "fs" # The file path of the kernel image. -# kernel_path = "linux-6.6.62.bin" -kernel_path = "Image" +kernel_path = "/boot/Image" # The load address of the kernel image. kernel_load_addr = 0x8020_0000 # The file path of the device tree blob (DTB). -dtb_path = "aarch64-qemu-gicv3.dtb" +dtb_path = "/boot/aarch64-qemu-gicv3.dtb" # The load address of the device tree blob (DTB). dtb_load_addr = 0x8000_0000 -## load from file system -# image_location = "fs" -## The file path of the kernel image. -# kernel_path = "linux-arceos-aarch64.bin" -## The file path of the device tree blob (DTB). -# dtb_path = "linux-rk3588.dtb" - ## The file path of the ramdisk image. # ramdisk_path = "" ## The load address of the ramdisk image. @@ -56,12 +48,11 @@ memory_regions = [ # Device specifications # [devices] -interrupt_mode = "passthrough" - # Pass-through devices. passthrough_devices = [ - ["intc@8000000", 0x800_0000, 0x800_0000, 0x100_0000, 0x1], - # ["pl011@9000000", 0x900_0000, 0x900_0000, 0x1000, 0x1], # ["pl031@9010000", 0x901_0000, 0x901_0000, 0x1000, 0x1], + ["intc@8000000", 0x800_0000, 0x800_0000, 0x100_0000, 0x1], + # ["pl011@9000000", 0x900_0000, 0x900_0000, 0x1000, 0x1], + # ["pl031@9010000", 0x901_0000, 0x901_0000, 0x1000, 0x1], # ["pl061@9030000", 0x903_0000, 0x903_0000, 0x1000, 0x1], # a003000.virtio_mmio virtio_mmio@a003000 # a003200.virtio_mmio virtio_mmio@a003200 @@ -81,3 +72,5 @@ emu_devices = [ # ["gppt-gits", 0x0808_0000, 0x2_0000, 0, 0x22, [0x0808_0000]], # host_gits_base ] +interrupt_mode = "passthrough" + diff --git a/configs/vms/linux-qemu_gicv3.dts b/configs/vms/linux-qemu_gicv3.dts deleted file mode 100644 index d6309569..00000000 --- a/configs/vms/linux-qemu_gicv3.dts +++ /dev/null @@ -1,411 +0,0 @@ -/dts-v1/; - -/ { - interrupt-parent = <0x8003>; - dma-coherent; - model = "linux,dummy-virt"; - #size-cells = <0x02>; - #address-cells = <0x02>; - compatible = "linux,dummy-virt"; - - psci { - migrate = <0xc4000005>; - cpu_on = <0xc4000003>; - cpu_off = <0x84000002>; - cpu_suspend = <0xc4000001>; - method = "smc"; - compatible = "arm,psci-1.0\0arm,psci-0.2\0arm,psci"; - }; - - memory@40000000 { - reg = <0x00 0x80000000 0x00 0x40000000>; - device_type = "memory"; - }; - - platform-bus@c000000 { - interrupt-parent = <0x8003>; - ranges = <0x00 0x00 0xc000000 0x2000000>; - #address-cells = <0x01>; - #size-cells = <0x01>; - compatible = "qemu,platform\0simple-bus"; - }; - - fw-cfg@9020000 { - dma-coherent; - reg = <0x00 0x9020000 0x00 0x18>; - compatible = "qemu,fw-cfg-mmio"; - }; - - virtio_mmio@a000000 { - dma-coherent; - interrupts = <0x00 0x10 0x01>; - reg = <0x00 0xa000000 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a000200 { - dma-coherent; - interrupts = <0x00 0x11 0x01>; - reg = <0x00 0xa000200 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a000400 { - dma-coherent; - interrupts = <0x00 0x12 0x01>; - reg = <0x00 0xa000400 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a000600 { - dma-coherent; - interrupts = <0x00 0x13 0x01>; - reg = <0x00 0xa000600 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a000800 { - dma-coherent; - interrupts = <0x00 0x14 0x01>; - reg = <0x00 0xa000800 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a000a00 { - dma-coherent; - interrupts = <0x00 0x15 0x01>; - reg = <0x00 0xa000a00 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a000c00 { - dma-coherent; - interrupts = <0x00 0x16 0x01>; - reg = <0x00 0xa000c00 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a000e00 { - dma-coherent; - interrupts = <0x00 0x17 0x01>; - reg = <0x00 0xa000e00 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a001000 { - dma-coherent; - interrupts = <0x00 0x18 0x01>; - reg = <0x00 0xa001000 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a001200 { - dma-coherent; - interrupts = <0x00 0x19 0x01>; - reg = <0x00 0xa001200 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a001400 { - dma-coherent; - interrupts = <0x00 0x1a 0x01>; - reg = <0x00 0xa001400 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a001600 { - dma-coherent; - interrupts = <0x00 0x1b 0x01>; - reg = <0x00 0xa001600 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a001800 { - dma-coherent; - interrupts = <0x00 0x1c 0x01>; - reg = <0x00 0xa001800 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a001a00 { - dma-coherent; - interrupts = <0x00 0x1d 0x01>; - reg = <0x00 0xa001a00 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a001c00 { - dma-coherent; - interrupts = <0x00 0x1e 0x01>; - reg = <0x00 0xa001c00 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a001e00 { - dma-coherent; - interrupts = <0x00 0x1f 0x01>; - reg = <0x00 0xa001e00 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a002000 { - dma-coherent; - interrupts = <0x00 0x20 0x01>; - reg = <0x00 0xa002000 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a002200 { - dma-coherent; - interrupts = <0x00 0x21 0x01>; - reg = <0x00 0xa002200 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a002400 { - dma-coherent; - interrupts = <0x00 0x22 0x01>; - reg = <0x00 0xa002400 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a002600 { - dma-coherent; - interrupts = <0x00 0x23 0x01>; - reg = <0x00 0xa002600 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a002800 { - dma-coherent; - interrupts = <0x00 0x24 0x01>; - reg = <0x00 0xa002800 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a002a00 { - dma-coherent; - interrupts = <0x00 0x25 0x01>; - reg = <0x00 0xa002a00 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a002c00 { - dma-coherent; - interrupts = <0x00 0x26 0x01>; - reg = <0x00 0xa002c00 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a002e00 { - dma-coherent; - interrupts = <0x00 0x27 0x01>; - reg = <0x00 0xa002e00 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a003000 { - dma-coherent; - interrupts = <0x00 0x28 0x01>; - reg = <0x00 0xa003000 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a003200 { - dma-coherent; - interrupts = <0x00 0x29 0x01>; - reg = <0x00 0xa003200 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a003400 { - dma-coherent; - interrupts = <0x00 0x2a 0x01>; - reg = <0x00 0xa003400 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a003600 { - dma-coherent; - interrupts = <0x00 0x2b 0x01>; - reg = <0x00 0xa003600 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a003800 { - dma-coherent; - interrupts = <0x00 0x2c 0x01>; - reg = <0x00 0xa003800 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a003a00 { - dma-coherent; - interrupts = <0x00 0x2d 0x01>; - reg = <0x00 0xa003a00 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a003c00 { - dma-coherent; - interrupts = <0x00 0x2e 0x01>; - reg = <0x00 0xa003c00 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a003e00 { - dma-coherent; - interrupts = <0x00 0x2f 0x01>; - reg = <0x00 0xa003e00 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - gpio-keys { - compatible = "gpio-keys"; - - poweroff { - gpios = <0x8005 0x03 0x00>; - linux,code = <0x74>; - label = "GPIO Key Poweroff"; - }; - }; - - pl061@9030000 { - phandle = <0x8005>; - clock-names = "apb_pclk"; - clocks = <0x8000>; - interrupts = <0x00 0x07 0x04>; - gpio-controller; - #gpio-cells = <0x02>; - compatible = "arm,pl061\0arm,primecell"; - reg = <0x00 0x9030000 0x00 0x1000>; - }; - - pcie@10000000 { - interrupt-map-mask = <0x1800 0x00 0x00 0x07>; - interrupt-map = <0x00 0x00 0x00 0x01 0x8003 0x00 0x00 0x00 0x03 0x04 0x00 0x00 0x00 0x02 0x8003 0x00 0x00 0x00 0x04 0x04 0x00 0x00 0x00 0x03 0x8003 0x00 0x00 0x00 0x05 0x04 0x00 0x00 0x00 0x04 0x8003 0x00 0x00 0x00 0x06 0x04 0x800 0x00 0x00 0x01 0x8003 0x00 0x00 0x00 0x04 0x04 0x800 0x00 0x00 0x02 0x8003 0x00 0x00 0x00 0x05 0x04 0x800 0x00 0x00 0x03 0x8003 0x00 0x00 0x00 0x06 0x04 0x800 0x00 0x00 0x04 0x8003 0x00 0x00 0x00 0x03 0x04 0x1000 0x00 0x00 0x01 0x8003 0x00 0x00 0x00 0x05 0x04 0x1000 0x00 0x00 0x02 0x8003 0x00 0x00 0x00 0x06 0x04 0x1000 0x00 0x00 0x03 0x8003 0x00 0x00 0x00 0x03 0x04 0x1000 0x00 0x00 0x04 0x8003 0x00 0x00 0x00 0x04 0x04 0x1800 0x00 0x00 0x01 0x8003 0x00 0x00 0x00 0x06 0x04 0x1800 0x00 0x00 0x02 0x8003 0x00 0x00 0x00 0x03 0x04 0x1800 0x00 0x00 0x03 0x8003 0x00 0x00 0x00 0x04 0x04 0x1800 0x00 0x00 0x04 0x8003 0x00 0x00 0x00 0x05 0x04>; - #interrupt-cells = <0x01>; - ranges = <0x1000000 0x00 0x00 0x00 0x3eff0000 0x00 0x10000 0x2000000 0x00 0x10000000 0x00 0x10000000 0x00 0x2eff0000 0x3000000 0x80 0x00 0x80 0x00 0x80 0x00>; - reg = <0x40 0x10000000 0x00 0x10000000>; - // reg = <0x00 0x10000000>; - msi-map = <0x00 0x8004 0x00 0x10000>; - dma-coherent; - bus-range = <0x00 0xff>; - linux,pci-domain = <0x00>; - #size-cells = <0x02>; - #address-cells = <0x03>; - device_type = "pci"; - compatible = "pci-host-ecam-generic"; - }; - - pl031@9010000 { - clock-names = "apb_pclk"; - clocks = <0x8000>; - interrupts = <0x00 0x02 0x04>; - reg = <0x00 0x9010000 0x00 0x1000>; - compatible = "arm,pl031\0arm,primecell"; - }; - - pl011@9040000 { - clock-names = "uartclk\0apb_pclk"; - clocks = <0x8000 0x8000>; - interrupts = <0x00 0x08 0x04>; - reg = <0x00 0x9040000 0x00 0x1000>; - compatible = "arm,pl011\0arm,primecell"; - }; - - pmu { - interrupts = <0x01 0x07 0x04>; - compatible = "arm,armv8-pmuv3"; - }; - - intc@8000000 { - phandle = <0x8003>; - interrupts = <0x01 0x09 0x04>; - reg = <0x00 0x8000000 0x00 0x10000 0x00 0x80a0000 0x00 0xf60000>; - #redistributor-regions = <0x01>; - compatible = "arm,gic-v3"; - ranges; - #size-cells = <0x02>; - #address-cells = <0x02>; - interrupt-controller; - #interrupt-cells = <0x03>; - - its@8080000 { - phandle = <0x8004>; - reg = <0x00 0x8080000 0x00 0x20000>; - #msi-cells = <0x01>; - msi-controller; - compatible = "arm,gic-v3-its"; - }; - }; - - flash@0 { - bank-width = <0x04>; - reg = <0x00 0x00 0x00 0x4000000 0x00 0x4000000 0x00 0x4000000>; - compatible = "cfi-flash"; - }; - - cpus { - #size-cells = <0x00>; - #address-cells = <0x01>; - - cpu-map { - - socket0 { - - cluster0 { - - core0 { - cpu = <0x8002>; - }; - - //core1 { - // cpu = <0x8001>; - //}; - }; - }; - }; - - cpu@0 { - phandle = <0x8002>; - reg = <0x00>; - enable-method = "psci"; - compatible = "arm,cortex-a57"; - device_type = "cpu"; - }; - - //cpu@1 { - // phandle = <0x8001>; - // reg = <0x01>; - // enable-method = "psci"; - // compatible = "arm,cortex-a57"; - // device_type = "cpu"; - //}; - }; - - timer { - interrupts = <0x01 0x0d 0x04 0x01 0x0e 0x04 0x01 0x0b 0x04 0x01 0x0a 0x04>; - always-on; - compatible = "arm,armv8-timer\0arm,armv7-timer"; - }; - - apb-pclk { - phandle = <0x8000>; - clock-output-names = "clk24mhz"; - clock-frequency = <0x16e3600>; - #clock-cells = <0x00>; - compatible = "fixed-clock"; - }; - - aliases { - serial0 = "/pl011@9040000"; - }; - - chosen { - bootargs = "earlycon console=ttyAMA0 root=/dev/vda rw audit=0 default_hugepagesz=32M hugepagesz=32M hugepages=4"; - stdout-path = "/pl011@9040000"; - rng-seed = <0x79361ef3 0x1a4e5964 0x9fb01da 0x749b376f 0x7036ec7c 0xdea25f0c 0x79d7ee4e 0xe2e216af>; - kaslr-seed = <0x2758c1 0xf528d3d5>; - }; -}; diff --git a/make.sh b/make.sh new file mode 100755 index 00000000..1271c484 --- /dev/null +++ b/make.sh @@ -0,0 +1,95 @@ +#!/usr/bin/env bash +set -euo pipefail +# make.sh - 简易项目入口脚本 +# 功能:可选择性运行 bootstrap,然后将参数透传给 scripts/task.py + +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +PROJECT_ROOT="$SCRIPT_DIR" + +usage() { + cat < + +Options: + --no-bootstrap Skip running scripts/bootstrap.sh + --force-bootstrap Force running bootstrap even if marker says done + --bootstrap-only Only run bootstrap and exit + -h, --help Show this help message + +Any remaining arguments are forwarded to: python3 -m scripts.task +EOF +} + +NO_BOOTSTRAP=0 +FORCE_BOOTSTRAP=0 +BOOTSTRAP_ONLY=0 + +POSITIONAL=() +known_cmds=("setup" "build" "run" "clippy" "clean" "disk_img") +is_known() { + local v="$1" + for k in "${known_cmds[@]}"; do + [[ "$k" == "$v" ]] && return 0 + done + return 1 +} + +while [[ $# -gt 0 ]]; do + # If this is a non-option (doesn't start with '-') and matches a known + # subcommand, stop parsing and forward the rest as task args. + if [[ "${1:0:1}" != "-" ]]; then + if is_known "$1"; then + POSITIONAL+=("$@") + break + else + # Not a known subcommand: treat as a positional and continue parsing + POSITIONAL+=("$1") + shift + continue + fi + fi + + case "$1" in + --no-bootstrap) + NO_BOOTSTRAP=1; shift ;; + --force-bootstrap) + FORCE_BOOTSTRAP=1; shift ;; + --bootstrap-only) + BOOTSTRAP_ONLY=1; shift ;; + -h|--help) + usage; exit 0 ;; + --) + shift; POSITIONAL+=("$@"); break ;; + --*) + # unknown long option -> forward to task.py + POSITIONAL+=("$1"); shift ;; + *) + POSITIONAL+=("$1"); shift ;; + esac +done + +set -- "${POSITIONAL[@]}" + +cd "$PROJECT_ROOT" + +# Decide whether to run bootstrap +if [[ "$NO_BOOTSTRAP" -eq 1 ]]; then + echo "bootstrap: skipped by --no-bootstrap" +else + if [[ "$FORCE_BOOTSTRAP" -eq 1 ]]; then + echo "bootstrap: forcing bootstrap (--force-bootstrap)" + bash scripts/bootstrap.sh || { echo "bootstrap failed"; exit 1; } + else + echo "bootstrap: running (will skip internally if up-to-date)" + bash scripts/bootstrap.sh || { echo "bootstrap failed"; exit 1; } + fi +fi + +if [[ "$BOOTSTRAP_ONLY" -eq 1 ]]; then + echo "--bootstrap-only specified: exiting after bootstrap" + exit 0 +fi + +# If we reach here, forward all args to task.py as a module +echo "forwarding to: python3 -m scripts.task $*" +exec python3 -m scripts.task "$@" diff --git a/scripts/task.py b/scripts/task.py index f1c3081b..c0a8d869 100644 --- a/scripts/task.py +++ b/scripts/task.py @@ -43,30 +43,26 @@ def main(): args = parser.parse_args() - if args.command == "setup": - mod = importlib.import_module("scripts.setup") - exit_code = mod.main(args) - sys.exit(exit_code) - elif args.command == "build": - mod = importlib.import_module("scripts.build") - exit_code = mod.main(args) - sys.exit(exit_code) - elif args.command == "run": - mod = importlib.import_module("scripts.run") - exit_code = mod.main(args) - sys.exit(exit_code) - elif args.command == "clippy": - mod = importlib.import_module("scripts.clippy") - exit_code = mod.main(args) - sys.exit(exit_code) - elif args.command == "clean": - mod = importlib.import_module("scripts.clean") - exit_code = mod.main(args) - sys.exit(exit_code) - elif args.command == "disk_img": - mod = importlib.import_module("scripts.disk_img") - exit_code = mod.main(args) - sys.exit(exit_code) + command_map = { + "setup": "scripts.setup", + "build": "scripts.build", + "run": "scripts.run", + "clippy": "scripts.clippy", + "clean": "scripts.clean", + "disk_img": "scripts.disk_img", + } + + def run_command(cmd_name): + module_name = command_map.get(cmd_name) + if not module_name: + return None + mod = importlib.import_module(module_name) + return mod.main(args) + + if args.command in command_map: + exit_code = run_command(args.command) + # If the command module returned an exit code, use it; otherwise exit 0 + sys.exit(0 if exit_code is None else exit_code) else: parser.print_help() diff --git a/src/hal/arch/x86_64/mod.rs b/src/hal/arch/x86_64/mod.rs index 161ca24b..ef24b791 100644 --- a/src/hal/arch/x86_64/mod.rs +++ b/src/hal/arch/x86_64/mod.rs @@ -4,3 +4,4 @@ use memory_addr::VirtAddr; pub mod cache; pub fn hardware_check() {} +pub fn inject_interrupt(_vector: u8) {} From 614ce8750387b5e2da685049f75a750e4aef5993 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E7=9D=BF?= Date: Mon, 8 Sep 2025 13:13:32 +0800 Subject: [PATCH 157/219] feat: add make and update doc --- Makefile | 47 +++++++ README.md | 176 +++++++----------------- README_CN.md | 144 +++++++++---------- build.rs | 8 +- configs/def_hvconfig.toml | 10 ++ configs/vms/linux-qemu-aarch64-mem.toml | 18 +-- make.sh | 95 ------------- scripts/config.py | 41 ++++++ scripts/disk_img.py | 9 +- scripts/task.py | 8 ++ task.py | 75 ---------- 11 files changed, 241 insertions(+), 390 deletions(-) create mode 100644 Makefile create mode 100644 configs/def_hvconfig.toml delete mode 100755 make.sh delete mode 100755 task.py diff --git a/Makefile b/Makefile new file mode 100644 index 00000000..1c421cdd --- /dev/null +++ b/Makefile @@ -0,0 +1,47 @@ +## Makefile - convenience targets for developer setup + +.PHONY: setup + +HVCONFIG := .hvconfig.toml +DEFAULT_HVCONFIG := configs/def_hvconfig.toml + +# Python executable inside venv if available, otherwise fallback +VENV_PYTHON := $(if $(wildcard venv/bin/python3),venv/bin/python3,python3) + +# setup: prepare development environment +# - copy default hvconfig if .hvconfig.toml missing +# - run scripts/bootstrap.sh to create venv and install python deps +setup: + @echo "==> Running project setup: copy hvconfig (if needed) and bootstrap" + @if [ ! -f $(HVCONFIG) ]; then \ + if [ -f $(DEFAULT_HVCONFIG) ]; then \ + cp $(DEFAULT_HVCONFIG) $(HVCONFIG) && echo "Copied $(DEFAULT_HVCONFIG) -> $(HVCONFIG)"; \ + else \ + echo "Warning: $(DEFAULT_HVCONFIG) not found; skipping hvconfig copy"; \ + fi; \ + else \ + echo "$(HVCONFIG) already exists; skipping copy"; \ + fi + @./scripts/bootstrap.sh + +# build: build project using scripts/task.py via venv's python when available +.PHONY: build +build: setup + @echo "==> Building project using $(VENV_PYTHON) ./scripts/task.py build" + @$(VENV_PYTHON) ./scripts/task.py build + +.PHONY: run +run: setup + @echo "==> Running project using $(VENV_PYTHON) ./scripts/task.py run" + @$(VENV_PYTHON) ./scripts/task.py run + +.PHONY: clean +clean: + @$(VENV_PYTHON) ./scripts/task.py clean + @cargo clean + +ARCH ?= aarch64 + +.PHONY: clippy +clippy: + @$(VENV_PYTHON) ./scripts/task.py clippy --arch $(ARCH) \ No newline at end of file diff --git a/README.md b/README.md index f3163ec4..0c128b20 100644 --- a/README.md +++ b/README.md @@ -58,23 +58,6 @@ Currently, AxVisor has been verified in scenarios with the following systems as After AxVisor starts, it loads and starts the guest based on the information in the guest configuration file. Currently, AxVisor supports loading guest images from a FAT32 file system and also supports binding guest images to the hypervisor image through static compilation (using include_bytes). -## Quick Start - -### Run AxVisor - -```bash -# Get help -make build -- --help -make run -- --help - -# perpare guest config - -mkdir -p tmp -cp configs/vms/arceos-aarch64.toml tmp/ - -make run -- --plat aarch64-generic --arceos-args "MEM=4g,BUS=mmio,BLK=y,LOG=debug,QEMU_ARGS=\"-machine gic-version=3 -cpu cortex-a72 \"" --features "fs" --vmconfigs "configs/vms/arceos-aarch64.toml" -``` - ## Build Environment AxVisor is written in the Rust programming language, so you need to install the Rust development environment following the instructions on the official Rust website. Additionally, you need to install cargo-binutils to use tools like rust-objcopy and rust-objdump. @@ -93,20 +76,18 @@ In addition, you can use the [axvmconfig](https://github.com/arceos-hypervisor/a ## Load and run from file system -1. Build a client image file suitable for your own architecture. Taking the linux as an example, [See linux build help.](https://github.com/arceos-hypervisor/guest-test-linux), and get `rootfs.img`. +1. Build a client image file suitable for your own architecture. Taking the ArceOS mainline code as an example, run `make PLATFORM=aarch64-qemu-virt SMP=1 A=examples/helloworld` to generate `helloworld_aarch64-qemu-virt.bin`. -2. Put guest dtb to rootfs. +2. Create a disk image file and place the guest machine image into the file system. - 1. cp `rootfs.img` to tmp directory and mount it. - 2. Manually mount `rootfs.img`, and then place your guest machine dtb into the file system. + 1. Use the `make disk_img` command to generate an empty FAT32 disk image file named `disk.img`. + 2. Manually mount `disk.img`, and then place your guest machine image into the file system. ```console - dtc -I dts -O dtb -o tmp/aarch64-qemu-gicv3.dtb configs/vms/aarch64-qemu-gicv3.dts - sudo rm -rf tmp/rootfs - mkdir -p tmp/rootfs - sudo mount tmp/rootfs.img tmp/rootfs - sudo cp tmp/aarch64-qemu-gicv3.dtb tmp/rootfs/boot/ - sudo umount tmp/rootfs + mkdir -p tmp/tmp_img + sudo mount disk.img tmp/tmp_img + sudo cp /PATH/TO/YOUR/GUEST/VM/IMAGE tmp/tmp_img/ + sudo umount tmp/tmp_img ``` 3. Modify the configuration items in the corresponding `./configs/vms/.toml` @@ -116,110 +97,59 @@ In addition, you can use the [axvmconfig](https://github.com/arceos-hypervisor/a - `kernel_load_addr` specifies the loading address of the kernel image. - others -4. Execute `./make.sh run -- --plat aarch64-generic --arceos-args "MEM=4g,BUS=mmio,BLK=y,LOG=debug,DISK_IMG=tmp/rootfs.img" --features "fs" --vmconfigs configs/vms/linux-qemu-aarch64.toml` to build AxVisor and start it in QEMU. + ```console + cp configs/vms/linux-qemu-aarch64.toml tmp/ + ``` + +4. Execute `make setup` to gen AxVisor make config `.hvconfig.toml`. + +5. Edit the `.hvconfig.toml` file to set the `vmconfigs` item to the path of your guest configuration file, for example: + + ```toml + features = ["fs", "ept-level-4"] + arceos_args = [ + "BUS=mmio", + "BLK=y", + "MEM=8g", + "LOG=debug", + "QEMU_ARGS=\"-machine gic-version=3 -cpu cortex-a72 \"", + "DISK_IMG=\"tmp/rootfs.img\"", + ] + vmconfigs = [ "tmp/arceos-aarch64.toml"] + + ``` ## Load and run from memory -1. [See linux build help.](https://github.com/arceos-hypervisor/guest-test-linux) +1. [See linux build help.](https://github.com/arceos-hypervisor/guest-test-linux) to get Image and rootfs.img. 2. Modify the configuration items in the corresponding `./configs/vms/.toml` - - `image_location="memory"` indicates loading from the memory. - - `kernel_path` kernel_path specifies the relative/absolute path of the kernel image in the workspace. - - `entry_point` specifies the entry address of the kernel image. - - `kernel_load_addr` specifies the loading address of the kernel image. - - others -3. Execute `make ACCEL=n ARCH=aarch64 LOG=info VM_CONFIGS=configs/vms/arceos-aarch64.toml run` to build AxVisor and start it in QEMU. + ```console + mkdir -p tmp + cp configs/vms/linux-qemu-aarch64-mem.toml tmp/ + ``` -## Demo + - `image_location="memory"` indicates loading from the memory. + - `kernel_path` kernel_path specifies the path of the kernel image in the workspace. + - `dtb_path` specifies the path of the dtb file in the workspace. + - others -```bash - d8888 .d88888b. .d8888b. - d88888 d88P" "Y88b d88P Y88b - d88P888 888 888 Y88b. - d88P 888 888d888 .d8888b .d88b. 888 888 "Y888b. - d88P 888 888P" d88P" d8P Y8b 888 888 "Y88b. - d88P 888 888 888 88888888 888 888 "888 - d8888888888 888 Y88b. Y8b. Y88b. .d88P Y88b d88P -d88P 888 888 "Y8888P "Y8888 "Y88888P" "Y8888P" - -arch = aarch64 -platform = aarch64-qemu-virt-hv -target = aarch64-unknown-none-softfloat -build_mode = release -log_level = info -smp = 1 - -[ 0.020822 0 axruntime:130] Logging is enabled. -[ 0.026419 0 axruntime:131] Primary CPU 0 started, dtb = 0x44000000. -[ 0.028520 0 axruntime:133] Found physcial memory regions: -[ 0.030673 0 axruntime:135] [PA:0x40080000, PA:0x400d6000) .text (READ | EXECUTE | RESERVED) -[ 0.033564 0 axruntime:135] [PA:0x400d6000, PA:0x400ef000) .rodata (READ | RESERVED) -[ 0.035313 0 axruntime:135] [PA:0x400ef000, PA:0x400f5000) .data .tdata .tbss .percpu (READ | WRITE | RESERVED) -[ 0.037083 0 axruntime:135] [PA:0x400f5000, PA:0x40135000) boot stack (READ | WRITE | RESERVED) -[ 0.038622 0 axruntime:135] [PA:0x40135000, PA:0x4013b000) .bss (READ | WRITE | RESERVED) -[ 0.040643 0 axruntime:135] [PA:0x4013b000, PA:0x48000000) free memory (READ | WRITE | FREE) -[ 0.042907 0 axruntime:135] [PA:0x9000000, PA:0x9001000) mmio (READ | WRITE | DEVICE | RESERVED) -[ 0.045011 0 axruntime:135] [PA:0x9040000, PA:0x9041000) mmio (READ | WRITE | DEVICE | RESERVED) -[ 0.047070 0 axruntime:135] [PA:0x9100000, PA:0x9101000) mmio (READ | WRITE | DEVICE | RESERVED) -[ 0.049093 0 axruntime:135] [PA:0x8000000, PA:0x8020000) mmio (READ | WRITE | DEVICE | RESERVED) -[ 0.051081 0 axruntime:135] [PA:0xa000000, PA:0xa004000) mmio (READ | WRITE | DEVICE | RESERVED) -[ 0.053120 0 axruntime:135] [PA:0x10000000, PA:0x3eff0000) mmio (READ | WRITE | DEVICE | RESERVED) -[ 0.055229 0 axruntime:135] [PA:0x4010000000, PA:0x4020000000) mmio (READ | WRITE | DEVICE | RESERVED) -[ 0.057642 0 axruntime:208] Initialize global memory allocator... -[ 0.059377 0 axruntime:209] use TLSF allocator. -[ 0.072071 0 axmm:60] Initialize virtual memory management... -[ 0.136312 0 axruntime:150] Initialize platform devices... -[ 0.137733 0 axhal::platform::aarch64_common::gic:67] Initialize GICv2... -[ 0.143653 0 axtask::api:73] Initialize scheduling... -[ 0.151435 0 axtask::api:79] use FIFO scheduler. -[ 0.152744 0 axruntime:176] Initialize interrupt handlers... -[ 0.157472 0 axruntime:186] Primary CPU 0 init OK. -[ 0.159027 0:2 axvisor:17] Starting virtualization... -[ 0.160968 0:2 axvisor:19] Hardware support: true -[ 0.168619 0:4 axvisor::vmm::timer:103] Initing HV Timer... -[ 0.170399 0:4 axvisor::hal:117] Hardware virtualization support enabled on core 0 -[ 0.295531 0:2 axvisor::vmm::config:33] Creating VM [1] "arceos" -[ 0.301423 0:2 axvm::vm:113] Setting up memory region: [0x40000000~0x41000000] READ | WRITE | EXECUTE -[ 0.334424 0:2 axvm::vm:156] Setting up passthrough device memory region: [0x8000000~0x8050000] -> [0x8000000~0x8050000] -[ 0.339431 0:2 axvm::vm:156] Setting up passthrough device memory region: [0x9000000~0x9001000] -> [0x9000000~0x9001000] -[ 0.341925 0:2 axvm::vm:156] Setting up passthrough device memory region: [0x9010000~0x9011000] -> [0x9010000~0x9011000] -[ 0.343758 0:2 axvm::vm:156] Setting up passthrough device memory region: [0x9030000~0x9031000] -> [0x9030000~0x9031000] -[ 0.345559 0:2 axvm::vm:156] Setting up passthrough device memory region: [0xa000000~0xa004000] -> [0xa000000~0xa004000] -[ 0.348819 0:2 axvm::vm:191] VM created: id=1 -[ 0.350749 0:2 axvm::vm:206] VM setup: id=1 -[ 0.352526 0:2 axvisor::vmm::config:40] VM[1] created success, loading images... -[ 0.355270 0:2 axvisor::vmm::images:24] Loading VM[1] images from memory -[ 0.363583 0:2 axvisor::vmm:29] Setting up vcpus... -[ 0.368014 0:2 axvisor::vmm::vcpus:176] Initializing VM[1]'s 1 vcpus -[ 0.370802 0:2 axvisor::vmm::vcpus:207] Spawning task for VM[1] Vcpu[0] -[ 0.374805 0:2 axvisor::vmm::vcpus:219] Vcpu task Task(5, "VM[1]-VCpu[0]") created cpumask: [0, ] -[ 0.378878 0:2 axvisor::vmm:36] VMM starting, booting VMs... -[ 0.380775 0:2 axvm::vm:273] Booting VM[1] -[ 0.382631 0:2 axvisor::vmm:42] VM[1] boot success -[ 0.387436 0:5 axvisor::vmm::vcpus:240] VM[1] Vcpu[0] waiting for running -[ 0.390048 0:5 axvisor::vmm::vcpus:243] VM[1] Vcpu[0] running... - - d8888 .d88888b. .d8888b. - d88888 d88P" "Y88b d88P Y88b - d88P888 888 888 Y88b. - d88P 888 888d888 .d8888b .d88b. 888 888 "Y888b. - d88P 888 888P" d88P" d8P Y8b 888 888 "Y88b. - d88P 888 888 888 88888888 888 888 "888 - d8888888888 888 Y88b. Y8b. Y88b. .d88P Y88b d88P -d88P 888 888 "Y8888P "Y8888 "Y88888P" "Y8888P" - -arch = aarch64 -platform = aarch64-qemu-virt -target = aarch64-unknown-none-softfloat -build_mode = release -log_level = warn -smp = 1 - -Hello, world! -[ 0.416823 0:5 axvisor::vmm::vcpus:288] VM[1] run VCpu[0] SystemDown -[ 0.419035 0:5 axhal::platform::aarch64_common::psci:98] Shutting down... -``` +3. Edit the `.hvconfig.toml` file to set the `vmconfigs` item to the path of your guest configuration file, for example: + + ```toml + arceos_args = [ + "BUS=mmio", + "BLK=y", + "MEM=8g", + "LOG=debug", + "QEMU_ARGS=\"-machine gic-version=3 -cpu cortex-a72 \"", + "DISK_IMG=\"tmp/rootfs.img\"", + ] + vmconfigs = [ "tmp/linux-qemu-aarch64-mem.toml"] + ``` + +4. Execute `make run` to build AxVisor and start it in QEMU. # Contributing diff --git a/README_CN.md b/README_CN.md index 7c861b3a..e6b8383a 100644 --- a/README_CN.md +++ b/README_CN.md @@ -58,68 +58,6 @@ AxVisor 的软件架构分为如下图所示的五层,其中,每一个框都 AxVisor 启动之后会根据客户机配置文件中的信息加载并启动客户机。目前,AxVisor 即支持从 FAT32 文件系统加载客户机镜像,也支持通过静态编译方式(include_bytes)将客户机镜像绑定到虚拟机管理程序镜像中。 -## 快速开始 - -### 1. Python 环境设置 - -AxVisor 使用 Python 脚本 (`task.py`) 进行构建和运行管理。要设置所需的 Python 环境: - -```bash -# 在虚拟环境中安装 Python 依赖 -./bootstrap.sh - -# 激活虚拟环境 -source venv/bin/activate - -# 或使用便捷脚本 -source activate.sh -``` - -`bootstrap.sh` 脚本将会: - -- 在 `venv/` 目录中创建 Python 虚拟环境 -- 从 `requirements.txt` 安装所有必需的依赖项 -- 测试 `task.py` 是否正常运行 - -### 2. 基本使用 - -设置好 Python 环境后: - -```bash -# 运行项目 -./task.py run - -# 获取帮助 -./task.py --help -./task.py build --help -./task.py run --help -``` - -### 3. 退出虚拟环境 - -完成项目工作后: - -```bash -deactivate -``` - -## 使用 make 透传参数 - -仓库根目录的 `Makefile` 会把额外的命令行参数透传给 Python 辅助脚本 `scripts.task.py`。因为 GNU Make 会解析以 `--` 开头的选项,推荐使用 `--` 分隔符将原始参数传递给底层脚本。示例: - -```bash -# 推荐:在 `--` 之后传递原始参数 -make clippy -- --arch x86_64 - -# 可选:使用变量传递(会被转发) -make clippy ARCH=x86_64 - -# 或通过 ARGS 传递 -make clippy ARGS="--arch x86_64" -``` - -以上三种方式都将会使 Python 脚本接收到 `--arch x86_64`;当需要传递任意包含 `--` 的标志时,请使用 `--` 分隔符以避免被 make 解析。 - ## 构建环境 AxVisor 是使用 Rust 编程语言编写的,因此,需要根据 Rust 官方网站的说明安装 Rust 开发环境。此外,还需要安装 [cargo-binutils](https://github.com/rust-embedded/cargo-binutils) 以便使用 `rust-objcopy` 和 `rust-objdump` 等工具 @@ -146,10 +84,10 @@ cargo install cargo-binutils 2. 手动挂载 `disk.img`,然后将自己的客户机镜像复制到该文件系统中 ```bash - mkdir -p tmp - sudo mount disk.img tmp - sudo cp /PATH/TO/YOUR/GUEST/VM/IMAGE tmp/ - sudo umount tmp + mkdir -p tmp/tmp_img + sudo mount disk.img tmp/tmp_img + sudo cp /PATH/TO/YOUR/GUEST/VM/IMAGE tmp/tmp_img/ + sudo umount tmp/tmp_img ``` 3. 修改对应的 `./configs/vms/.toml` 文件中的配置项 @@ -157,22 +95,60 @@ cargo install cargo-binutils - `kernel_path` 指出内核镜像在文件系统中的路径 - `entry_point` 指出内核镜像的入口地址 - `kernel_load_addr` 指出内核镜像的加载地址 - - 其他 -4. 执行 `make ACCEL=n ARCH=aarch64 LOG=info VM_CONFIGS=configs/vms/arceos-aarch64.toml APP_FEATURES=fs run` 构建 AxVisor,并在 QEMU 中启动。 + ```console + cp configs/vms/linux-qemu-aarch64.toml tmp/ + ``` + +4. 执行 `make setup` 生成 AxVisor make 配置 `.hvconfig.toml`。 + +5. 编辑 `.hvconfig.toml` 文件,设置 `vmconfigs` 项为您的客户机配置文件路径,例如: + + ```toml + features = ["fs", "ept-level-4"] + arceos_args = [ + "BUS=mmio", + "BLK=y", + "MEM=8g", + "LOG=debug", + "QEMU_ARGS=\"-machine gic-version=3 -cpu cortex-a72 \"", + "DISK_IMG=\"tmp/rootfs.img\"", + ] + vmconfigs = [ "tmp/arceos-aarch64.toml"] + + ``` ## 从内存加载运行 -1. 构建适用于自己架构的客户机镜像文件。以 ArceOS 主线代码为例,执行 `make PLATFORM=aarch64-qemu-virt SMP=1 A=examples/helloworld` 获取 `helloworld_aarch64-qemu-virt.bin` +1. [参见 linux 构建帮助。](https://github.com/arceos-hypervisor/guest-test-linux) 获取 Image 和 rootfs.img。 2. 修改对应的 `./configs/vms/.toml` 中的配置项 - - `image_location="memory"` 配置项 - - `kernel_path` 指定内核镜像在工作空间中的相对/绝对路径 - - `entry_point` 指出内核镜像的入口地址 - - `kernel_load_addr` 指出内核镜像的加载地址 + + ```console + mkdir -p tmp + cp configs/vms/linux-qemu-aarch64-mem.toml tmp/ + ``` + + - `image_location="memory"` 表示从内存加载 + - `kernel_path` 指定内核镜像在工作空间中的路径 + - `dtb_path` 指定 dtb 文件在工作空间中的路径 - 其他 -3. 执行 `make ACCEL=n ARCH=aarch64 LOG=info VM_CONFIGS=configs/vms/arceos-aarch64.toml run` 构建 AxVisor,并在 QEMU 中启动。 +3. 编辑 `.hvconfig.toml` 文件,设置 `vmconfigs` 项为您的客户机配置文件路径,例如: + + ```toml + arceos_args = [ + "BUS=mmio", + "BLK=y", + "MEM=8g", + "LOG=debug", + "QEMU_ARGS=\"-machine gic-version=3 -cpu cortex-a72 \"", + "DISK_IMG=\"tmp/rootfs.img\"", + ] + vmconfigs = [ "tmp/linux-qemu-aarch64-mem.toml"] + ``` + +4. 执行 `make run` 构建 AxVisor 并在 QEMU 中启动。 ## 启动示例 @@ -262,13 +238,29 @@ Hello, world! # 如何贡献 -欢迎 FORK 本仓库并提交 PR。 +欢迎 fork 本仓库并提交 pull request。 您可以参考这些[讨论](https://github.com/arceos-hypervisor/axvisor/discussions),以深入了解该项目的思路和未来发展方向。 ## 开发 -AxVisor 作为组件化的虚拟机管理程序,很多组件是作为 Crate 来使用的,可以使用 `tool/dev_env.py` 命令将相关 Crate 本地化,方便开发调试。 +要为 AxVisor 做贡献,您可以按照以下步骤操作: + +1. 在 GitHub 上 fork 本仓库。 +2. 将您 fork 的仓库克隆到本地。 +3. 为您的功能或错误修复创建新分支。 +4. 进行更改并提交清晰的消息。 +5. 将更改推送到您 fork 的仓库。 +6. 对原始仓库的主分支提交 pull request。 + +要开发 AxVisor 使用的 crate,您可以使用以下命令构建和运行项目: + +```bash +cargo install cargo-lpatch +cargo lpatch -n deps_crate_name +``` + +然后您可以修改 `crates/deps_crate_name` 目录中的代码,AxVisor 将自动使用这些代码。 ## 贡献者 diff --git a/build.rs b/build.rs index f7969dae..4d4b0f88 100644 --- a/build.rs +++ b/build.rs @@ -166,10 +166,10 @@ fn generate_guest_img_loading_functions( for config_file in config_files { if let Some(files) = parse_config_file(&config_file) { let id = files.id; - let kernel = files.kernel.display().to_string(); + let kernel = files.kernel.canonicalize().unwrap().display().to_string(); let dtb = match files.dtb { Some(v) => { - let s = v.display().to_string(); + let s = v.canonicalize().unwrap().display().to_string(); quote! { Some(include_bytes!(#s)) } } None => quote! { None }, @@ -177,7 +177,7 @@ fn generate_guest_img_loading_functions( let bios = match files.bios { Some(v) => { - let s = v.display().to_string(); + let s = v.canonicalize().unwrap().display().to_string(); quote! { Some(include_bytes!(#s)) } } None => quote! { None }, @@ -185,7 +185,7 @@ fn generate_guest_img_loading_functions( let ramdisk = match files.ramdisk { Some(v) => { - let s = v.display().to_string(); + let s = v.canonicalize().unwrap().display().to_string(); quote! { Some(include_bytes!(#s)) } } None => quote! { None }, diff --git a/configs/def_hvconfig.toml b/configs/def_hvconfig.toml new file mode 100644 index 00000000..1e21bed4 --- /dev/null +++ b/configs/def_hvconfig.toml @@ -0,0 +1,10 @@ +# Platform for Axvisor +plat = "aarch64-generic" +# Build features for Axvisor +features = ["ept-level-4"] +# Build arguments for ArceOS +arceos_args = ["BUS=mmio", "BLK=y", "MEM=8g", "LOG=debug", "QEMU_ARGS=\"-machine gic-version=3 -cpu cortex-a72 \""] +# ArceOS additional features +arceos_features = [] + +vmconfigs = [] diff --git a/configs/vms/linux-qemu-aarch64-mem.toml b/configs/vms/linux-qemu-aarch64-mem.toml index ecba2f82..d2c1a819 100644 --- a/configs/vms/linux-qemu-aarch64-mem.toml +++ b/configs/vms/linux-qemu-aarch64-mem.toml @@ -24,28 +24,14 @@ entry_point = 0x8020_0000 image_location = "memory" # The file path of the kernel image. # kernel_path = "linux-6.6.62.bin" -kernel_path = "/path/to/Image" +kernel_path = "tmp/Image" # The load address of the kernel image. kernel_load_addr = 0x8020_0000 # The file path of the device tree blob (DTB). -dtb_path = "/home/zhourui/arceos/axvisor-dev/tmp/aarch64-qemu-gicv3.dtb" +dtb_path = "tmp/aarch64-qemu-gicv3.dtb" # The load address of the device tree blob (DTB). dtb_load_addr = 0x8000_0000 -## load from file system -# image_location = "fs" -## The file path of the kernel image. -# kernel_path = "linux-arceos-aarch64.bin" -## The file path of the device tree blob (DTB). -# dtb_path = "linux-rk3588.dtb" - -## The file path of the ramdisk image. -# ramdisk_path = "" -## The load address of the ramdisk image. -# ramdisk_load_addr = 0 -## The path of the disk image. -# disk_path = "disk.img" - # Memory regions with format (`base_paddr`, `size`, `flags`, `map_type`). # For `map_type`, 0 means `MAP_ALLOC`, 1 means `MAP_IDENTICAL`. memory_regions = [ diff --git a/make.sh b/make.sh deleted file mode 100755 index 1271c484..00000000 --- a/make.sh +++ /dev/null @@ -1,95 +0,0 @@ -#!/usr/bin/env bash -set -euo pipefail -# make.sh - 简易项目入口脚本 -# 功能:可选择性运行 bootstrap,然后将参数透传给 scripts/task.py - -SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" -PROJECT_ROOT="$SCRIPT_DIR" - -usage() { - cat < - -Options: - --no-bootstrap Skip running scripts/bootstrap.sh - --force-bootstrap Force running bootstrap even if marker says done - --bootstrap-only Only run bootstrap and exit - -h, --help Show this help message - -Any remaining arguments are forwarded to: python3 -m scripts.task -EOF -} - -NO_BOOTSTRAP=0 -FORCE_BOOTSTRAP=0 -BOOTSTRAP_ONLY=0 - -POSITIONAL=() -known_cmds=("setup" "build" "run" "clippy" "clean" "disk_img") -is_known() { - local v="$1" - for k in "${known_cmds[@]}"; do - [[ "$k" == "$v" ]] && return 0 - done - return 1 -} - -while [[ $# -gt 0 ]]; do - # If this is a non-option (doesn't start with '-') and matches a known - # subcommand, stop parsing and forward the rest as task args. - if [[ "${1:0:1}" != "-" ]]; then - if is_known "$1"; then - POSITIONAL+=("$@") - break - else - # Not a known subcommand: treat as a positional and continue parsing - POSITIONAL+=("$1") - shift - continue - fi - fi - - case "$1" in - --no-bootstrap) - NO_BOOTSTRAP=1; shift ;; - --force-bootstrap) - FORCE_BOOTSTRAP=1; shift ;; - --bootstrap-only) - BOOTSTRAP_ONLY=1; shift ;; - -h|--help) - usage; exit 0 ;; - --) - shift; POSITIONAL+=("$@"); break ;; - --*) - # unknown long option -> forward to task.py - POSITIONAL+=("$1"); shift ;; - *) - POSITIONAL+=("$1"); shift ;; - esac -done - -set -- "${POSITIONAL[@]}" - -cd "$PROJECT_ROOT" - -# Decide whether to run bootstrap -if [[ "$NO_BOOTSTRAP" -eq 1 ]]; then - echo "bootstrap: skipped by --no-bootstrap" -else - if [[ "$FORCE_BOOTSTRAP" -eq 1 ]]; then - echo "bootstrap: forcing bootstrap (--force-bootstrap)" - bash scripts/bootstrap.sh || { echo "bootstrap failed"; exit 1; } - else - echo "bootstrap: running (will skip internally if up-to-date)" - bash scripts/bootstrap.sh || { echo "bootstrap failed"; exit 1; } - fi -fi - -if [[ "$BOOTSTRAP_ONLY" -eq 1 ]]; then - echo "--bootstrap-only specified: exiting after bootstrap" - exit 0 -fi - -# If we reach here, forward all args to task.py as a module -echo "forwarding to: python3 -m scripts.task $*" -exec python3 -m scripts.task "$@" diff --git a/scripts/config.py b/scripts/config.py index 9cb10a88..13f12b53 100644 --- a/scripts/config.py +++ b/scripts/config.py @@ -30,6 +30,44 @@ def __post_init__(self): if self.vmconfigs is None: self.vmconfigs = [] + def _process_disk_img_paths(self): + """处理 arceos_args 中的 DISK_IMG 参数,将相对路径转换为绝对路径""" + if not self.arceos_args: + return + + # 获取项目根目录(当前工作目录) + project_root = os.getcwd() + + # 处理每个参数 + processed_args = [] + for arg in self.arceos_args: + if arg.startswith("DISK_IMG="): + # 提取路径部分 + key, value = arg.split("=", 1) + # 去除可能的引号 + disk_path = value.strip().strip('"').strip("'") + + # 如果是相对路径,转换为绝对路径 + if not os.path.isabs(disk_path): + # 相对于项目根目录计算绝对路径 + abs_path = os.path.abspath(os.path.join(project_root, disk_path)) + # 保持原有的引号格式 + if value.strip().startswith('"') and value.strip().endswith('"'): + processed_args.append(f'{key}="{abs_path}"') + elif value.strip().startswith("'") and value.strip().endswith("'"): + processed_args.append(f"{key}='{abs_path}'") + else: + processed_args.append(f'{key}="{abs_path}"') + else: + # 已经是绝对路径,保持不变 + processed_args.append(arg) + else: + # 不是 DISK_IMG 参数,保持不变 + processed_args.append(arg) + + # 更新 arceos_args + self.arceos_args = processed_args + def _load_platform_config(self): """从平台文件夹中的 axconfig.toml 文件读取配置参数""" try: @@ -389,6 +427,9 @@ def create_config_from_args(args: argparse.Namespace) -> AxvisorConfig: if args.vmconfigs: config.vmconfigs = string_or_array_to_list(args.vmconfigs) + # 处理 DISK_IMG 路径转换 + config._process_disk_img_paths() + return config diff --git a/scripts/disk_img.py b/scripts/disk_img.py index cd18e0e9..dd7d4840 100644 --- a/scripts/disk_img.py +++ b/scripts/disk_img.py @@ -21,8 +21,15 @@ def main(args) -> int: cmd = format_make_command_base() if args.image: + # 处理镜像路径,如果是相对路径则转换为绝对路径 + image_path = args.image + if not os.path.isabs(image_path): + # 相对于项目根目录计算绝对路径 + project_root = os.getcwd() + image_path = os.path.abspath(os.path.join(project_root, image_path)) + # 如果指定了镜像路径和文件名,则添加到命令中 - cmd.append(f"DISK_IMG={args.image}") + cmd.append(f"DISK_IMG={image_path}") cmd.append("disk_img") diff --git a/scripts/task.py b/scripts/task.py index c0a8d869..286d8385 100644 --- a/scripts/task.py +++ b/scripts/task.py @@ -2,7 +2,15 @@ # -*- coding: utf-8 -*- import argparse import sys +import os import importlib + +# 添加当前脚本所在目录的上级目录到 Python 路径 +script_dir = os.path.dirname(os.path.abspath(__file__)) +parent_dir = os.path.dirname(script_dir) +if parent_dir not in sys.path: + sys.path.insert(0, parent_dir) + from scripts.config import add_common_arguments diff --git a/task.py b/task.py deleted file mode 100755 index f1c3081b..00000000 --- a/task.py +++ /dev/null @@ -1,75 +0,0 @@ -#!/usr/bin/env python3 -# -*- coding: utf-8 -*- -import argparse -import sys -import importlib -from scripts.config import add_common_arguments - - -def main(): - parser = argparse.ArgumentParser(description="Axvisor 命令行工具") - subparsers = parser.add_subparsers(dest="command", help="可用命令") - - # setup 命令 - setup_parser = subparsers.add_parser("setup", help="设置 arceos 依赖") - - # build 命令 - build_parser = subparsers.add_parser("build", help="构建项目") - add_common_arguments(build_parser) - - # run 命令 - run_parser = subparsers.add_parser("run", help="运行项目") - add_common_arguments(run_parser) - - # clippy 命令 - clippy_parser = subparsers.add_parser("clippy", help="运行 clippy 代码检查") - clippy_parser.add_argument( - "--arch", - type=str, - help="Architecture", - ) - - # clean 命令 - subparsers.add_parser("clean", help="清理构建产物") - - # disk_img 命令 - disk_parser = subparsers.add_parser("disk_img", help="创建磁盘镜像") - disk_parser.add_argument( - "--image", - type=str, - default="", - help="磁盘镜像路径和文件名", - ) - - args = parser.parse_args() - - if args.command == "setup": - mod = importlib.import_module("scripts.setup") - exit_code = mod.main(args) - sys.exit(exit_code) - elif args.command == "build": - mod = importlib.import_module("scripts.build") - exit_code = mod.main(args) - sys.exit(exit_code) - elif args.command == "run": - mod = importlib.import_module("scripts.run") - exit_code = mod.main(args) - sys.exit(exit_code) - elif args.command == "clippy": - mod = importlib.import_module("scripts.clippy") - exit_code = mod.main(args) - sys.exit(exit_code) - elif args.command == "clean": - mod = importlib.import_module("scripts.clean") - exit_code = mod.main(args) - sys.exit(exit_code) - elif args.command == "disk_img": - mod = importlib.import_module("scripts.disk_img") - exit_code = mod.main(args) - sys.exit(exit_code) - else: - parser.print_help() - - -if __name__ == "__main__": - main() From 500718b5c746b0268b3b192afce6a0f57bd743a9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E7=9D=BF?= Date: Mon, 8 Sep 2025 13:31:23 +0800 Subject: [PATCH 158/219] fix: ci --- .../setup-nimbos-guest-image/action.yml | 2 +- .github/workflows/build.yml | 5 ++-- .github/workflows/test.yml | 18 ++++++------ Makefile | 28 +++++++++++++++---- scripts/task.py | 0 5 files changed, 34 insertions(+), 19 deletions(-) mode change 100644 => 100755 scripts/task.py diff --git a/.github/workflows/actions/setup-nimbos-guest-image/action.yml b/.github/workflows/actions/setup-nimbos-guest-image/action.yml index ca519e00..182b69dd 100644 --- a/.github/workflows/actions/setup-nimbos-guest-image/action.yml +++ b/.github/workflows/actions/setup-nimbos-guest-image/action.yml @@ -61,7 +61,7 @@ runs: - name: Create Image shell: bash run: | - make disk_img --image ${{ inputs.disk-path }} + make disk_img DISK_IMG=${{ inputs.disk-path }} sudo mkdir -p img sudo chown root:root temp/* sudo mount ${{ inputs.disk-path }} img diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 6f06e692..d071f697 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -23,7 +23,7 @@ jobs: run: rustc --version --verbose - name: Clippy the repo continue-on-error: ${{ matrix.rust-toolchain == 'nightly' }} - run: make clippy --arch ${{ matrix.arch }} + run: make clippy ARCH=${{ matrix.arch }} fmt: runs-on: ubuntu-latest @@ -67,5 +67,4 @@ jobs: - name: Build the repo continue-on-error: ${{ matrix.rust-toolchain == 'nightly' }} run: | - source ./scripts/bootstrap.sh - ./scripts/task.py build --plat ${{ matrix.plat }} + make build ARGS="--plat ${{ matrix.plat }}" diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index c17615ac..d2554024 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -37,11 +37,10 @@ jobs: - name: Run guests continue-on-error: ${{ matrix.rust-toolchain == 'nightly' }} run: | - source ./scripts/bootstrap.sh - cargo version - export DISK_IMG="${{ github.workspace }}/disk-aarch64.img" - export VM_CONFIGS="$(pwd)/configs/vms/nimbos-aarch64.toml" - ./scripts/task.py run --plat ${{ matrix.plat }} --vmconfigs $VM_CONFIGS --features fs,ept-level-4 --arceos-args DISK_IMG=$DISK_IMG,BUS=mmio,BLK=y,MEM=8g + cargo version + export DISK_IMG="${{ github.workspace }}/disk-aarch64.img" + export VM_CONFIGS="$(pwd)/configs/vms/nimbos-aarch64.toml" + make run ARGS="--plat ${{ matrix.plat }} --vmconfigs $VM_CONFIGS --features fs,ept-level-4 --arceos-args DISK_IMG=$DISK_IMG,BUS=mmio,BLK=y,MEM=8g" aarch64-generic-phytiumpi: runs-on: [self-hosted, linux, docker] @@ -134,10 +133,9 @@ jobs: - name: Run guests continue-on-error: ${{ matrix.rust-toolchain == 'nightly' }} run: | - source ./scripts/bootstrap.sh - cargo version - export DISK_IMG="${{ github.workspace }}/disk-x86_64.img" - export VM_CONFIGS="$(pwd)/configs/vms/nimbos-x86_64.toml" - ./scripts/task.py run --plat ${{ matrix.plat }} --vmconfigs $VM_CONFIGS --features fs --arceos-args DISK_IMG=$DISK_IMG,BLK=y,MEM=1g + cargo version + export DISK_IMG="${{ github.workspace }}/disk-x86_64.img" + export VM_CONFIGS="$(pwd)/configs/vms/nimbos-x86_64.toml" + make run ARGS="--plat ${{ matrix.plat }} --vmconfigs $VM_CONFIGS --features fs --arceos-args DISK_IMG=$DISK_IMG,BLK=y,MEM=1g" diff --git a/Makefile b/Makefile index 1c421cdd..80ab21a9 100644 --- a/Makefile +++ b/Makefile @@ -25,15 +25,27 @@ setup: @./scripts/bootstrap.sh # build: build project using scripts/task.py via venv's python when available +# Usage: make build [ARGS="--plat aarch64-qemu-virt-hv --features feature1,feature2"] +# Examples: +# make build +# make build ARGS="--plat aarch64-qemu-virt-hv" +# make build ARGS="--features irq,mem --arceos-features smp" .PHONY: build build: setup - @echo "==> Building project using $(VENV_PYTHON) ./scripts/task.py build" - @$(VENV_PYTHON) ./scripts/task.py build + @echo "==> Building project using $(VENV_PYTHON) ./scripts/task.py build $(ARGS)" + @$(VENV_PYTHON) ./scripts/task.py build $(ARGS) +# run: run project using scripts/task.py via venv's python when available +# Usage: make run [ARGS="--plat aarch64-qemu-virt-hv --vmconfigs configs/vms/linux-qemu-aarch64.toml"] +# Examples: +# make run +# make run ARGS="--plat aarch64-qemu-virt-hv" +# make run ARGS="--vmconfigs configs/vms/linux-qemu-aarch64.toml" +# make run ARGS="--arceos-args DISK_IMG=disk.img,LOG=debug" .PHONY: run run: setup - @echo "==> Running project using $(VENV_PYTHON) ./scripts/task.py run" - @$(VENV_PYTHON) ./scripts/task.py run + @echo "==> Running project using $(VENV_PYTHON) ./scripts/task.py run $(ARGS)" + @$(VENV_PYTHON) ./scripts/task.py run $(ARGS) .PHONY: clean clean: @@ -44,4 +56,10 @@ ARCH ?= aarch64 .PHONY: clippy clippy: - @$(VENV_PYTHON) ./scripts/task.py clippy --arch $(ARCH) \ No newline at end of file + @$(VENV_PYTHON) ./scripts/task.py clippy --arch $(ARCH) + +DISK_IMG ?= disk.img + +.PHONY: disk_img +disk_img: + @$(VENV_PYTHON) ./scripts/task.py disk_img --image $(DISK_IMG) \ No newline at end of file diff --git a/scripts/task.py b/scripts/task.py old mode 100644 new mode 100755 From f28b172fa9cf36799228588002aa071f61efa0f1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E7=9D=BF?= Date: Mon, 8 Sep 2025 13:42:33 +0800 Subject: [PATCH 159/219] fix ci --- Makefile | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 80ab21a9..aa6473cd 100644 --- a/Makefile +++ b/Makefile @@ -31,7 +31,8 @@ setup: # make build ARGS="--plat aarch64-qemu-virt-hv" # make build ARGS="--features irq,mem --arceos-features smp" .PHONY: build -build: setup +build: + @./scripts/bootstrap.sh @echo "==> Building project using $(VENV_PYTHON) ./scripts/task.py build $(ARGS)" @$(VENV_PYTHON) ./scripts/task.py build $(ARGS) @@ -43,12 +44,14 @@ build: setup # make run ARGS="--vmconfigs configs/vms/linux-qemu-aarch64.toml" # make run ARGS="--arceos-args DISK_IMG=disk.img,LOG=debug" .PHONY: run -run: setup +run: + @./scripts/bootstrap.sh @echo "==> Running project using $(VENV_PYTHON) ./scripts/task.py run $(ARGS)" @$(VENV_PYTHON) ./scripts/task.py run $(ARGS) .PHONY: clean clean: + @./scripts/bootstrap.sh @$(VENV_PYTHON) ./scripts/task.py clean @cargo clean @@ -56,10 +59,12 @@ ARCH ?= aarch64 .PHONY: clippy clippy: + @./scripts/bootstrap.sh @$(VENV_PYTHON) ./scripts/task.py clippy --arch $(ARCH) DISK_IMG ?= disk.img .PHONY: disk_img disk_img: + @./scripts/bootstrap.sh @$(VENV_PYTHON) ./scripts/task.py disk_img --image $(DISK_IMG) \ No newline at end of file From 978b77e896de7f3fdf08a213543771e899a8ab55 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E7=9D=BF?= Date: Mon, 8 Sep 2025 14:27:55 +0800 Subject: [PATCH 160/219] refactor: scripts --- .../setup-nimbos-guest-image/action.yml | 2 +- .github/workflows/build.yml | 4 +- .github/workflows/test.yml | 7 +- Makefile | 70 ---- README.md | 30 +- README_CN.md | 30 +- axvisor.sh | 366 ++++++++++++++++++ scripts/bootstrap.sh | 270 ++++++++----- scripts/task.py | 138 +++++-- 9 files changed, 712 insertions(+), 205 deletions(-) delete mode 100644 Makefile create mode 100755 axvisor.sh diff --git a/.github/workflows/actions/setup-nimbos-guest-image/action.yml b/.github/workflows/actions/setup-nimbos-guest-image/action.yml index 182b69dd..dc27a868 100644 --- a/.github/workflows/actions/setup-nimbos-guest-image/action.yml +++ b/.github/workflows/actions/setup-nimbos-guest-image/action.yml @@ -61,7 +61,7 @@ runs: - name: Create Image shell: bash run: | - make disk_img DISK_IMG=${{ inputs.disk-path }} + ./axvisor.sh disk_img --image ${{ inputs.disk-path }} sudo mkdir -p img sudo chown root:root temp/* sudo mount ${{ inputs.disk-path }} img diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index d071f697..5f938ae1 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -23,7 +23,7 @@ jobs: run: rustc --version --verbose - name: Clippy the repo continue-on-error: ${{ matrix.rust-toolchain == 'nightly' }} - run: make clippy ARCH=${{ matrix.arch }} + run: ./axvisor.sh clippy --arch ${{ matrix.arch }} fmt: runs-on: ubuntu-latest @@ -67,4 +67,4 @@ jobs: - name: Build the repo continue-on-error: ${{ matrix.rust-toolchain == 'nightly' }} run: | - make build ARGS="--plat ${{ matrix.plat }}" + ./axvisor.sh build --plat ${{ matrix.plat }} diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index d2554024..2d781a40 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -37,10 +37,11 @@ jobs: - name: Run guests continue-on-error: ${{ matrix.rust-toolchain == 'nightly' }} run: | + chmod +x axvisor.sh cargo version export DISK_IMG="${{ github.workspace }}/disk-aarch64.img" export VM_CONFIGS="$(pwd)/configs/vms/nimbos-aarch64.toml" - make run ARGS="--plat ${{ matrix.plat }} --vmconfigs $VM_CONFIGS --features fs,ept-level-4 --arceos-args DISK_IMG=$DISK_IMG,BUS=mmio,BLK=y,MEM=8g" + ./axvisor.sh run --plat ${{ matrix.plat }} --vmconfigs $VM_CONFIGS --features fs,ept-level-4 --arceos-args DISK_IMG=$DISK_IMG,BUS=mmio,BLK=y,MEM=8g aarch64-generic-phytiumpi: runs-on: [self-hosted, linux, docker] @@ -64,7 +65,6 @@ jobs: continue-on-error: ${{ matrix.rust-toolchain == 'nightly' }} run: | cargo install ostool --force - source ./scripts/bootstrap.sh git clone https://github.com/arceos-hypervisor/axboard_test cd axboard_test ./run.sh phytiumpi-arceos @@ -92,7 +92,6 @@ jobs: continue-on-error: ${{ matrix.rust-toolchain == 'nightly' }} run: | cargo install ostool --force - source ./scripts/bootstrap.sh git clone https://github.com/arceos-hypervisor/axboard_test cd axboard_test ./run.sh rk3568-arceos @@ -136,6 +135,6 @@ jobs: cargo version export DISK_IMG="${{ github.workspace }}/disk-x86_64.img" export VM_CONFIGS="$(pwd)/configs/vms/nimbos-x86_64.toml" - make run ARGS="--plat ${{ matrix.plat }} --vmconfigs $VM_CONFIGS --features fs --arceos-args DISK_IMG=$DISK_IMG,BLK=y,MEM=1g" + ./axvisor.sh run --plat ${{ matrix.plat }} --vmconfigs $VM_CONFIGS --features fs --arceos-args DISK_IMG=$DISK_IMG,BLK=y,MEM=1g diff --git a/Makefile b/Makefile deleted file mode 100644 index aa6473cd..00000000 --- a/Makefile +++ /dev/null @@ -1,70 +0,0 @@ -## Makefile - convenience targets for developer setup - -.PHONY: setup - -HVCONFIG := .hvconfig.toml -DEFAULT_HVCONFIG := configs/def_hvconfig.toml - -# Python executable inside venv if available, otherwise fallback -VENV_PYTHON := $(if $(wildcard venv/bin/python3),venv/bin/python3,python3) - -# setup: prepare development environment -# - copy default hvconfig if .hvconfig.toml missing -# - run scripts/bootstrap.sh to create venv and install python deps -setup: - @echo "==> Running project setup: copy hvconfig (if needed) and bootstrap" - @if [ ! -f $(HVCONFIG) ]; then \ - if [ -f $(DEFAULT_HVCONFIG) ]; then \ - cp $(DEFAULT_HVCONFIG) $(HVCONFIG) && echo "Copied $(DEFAULT_HVCONFIG) -> $(HVCONFIG)"; \ - else \ - echo "Warning: $(DEFAULT_HVCONFIG) not found; skipping hvconfig copy"; \ - fi; \ - else \ - echo "$(HVCONFIG) already exists; skipping copy"; \ - fi - @./scripts/bootstrap.sh - -# build: build project using scripts/task.py via venv's python when available -# Usage: make build [ARGS="--plat aarch64-qemu-virt-hv --features feature1,feature2"] -# Examples: -# make build -# make build ARGS="--plat aarch64-qemu-virt-hv" -# make build ARGS="--features irq,mem --arceos-features smp" -.PHONY: build -build: - @./scripts/bootstrap.sh - @echo "==> Building project using $(VENV_PYTHON) ./scripts/task.py build $(ARGS)" - @$(VENV_PYTHON) ./scripts/task.py build $(ARGS) - -# run: run project using scripts/task.py via venv's python when available -# Usage: make run [ARGS="--plat aarch64-qemu-virt-hv --vmconfigs configs/vms/linux-qemu-aarch64.toml"] -# Examples: -# make run -# make run ARGS="--plat aarch64-qemu-virt-hv" -# make run ARGS="--vmconfigs configs/vms/linux-qemu-aarch64.toml" -# make run ARGS="--arceos-args DISK_IMG=disk.img,LOG=debug" -.PHONY: run -run: - @./scripts/bootstrap.sh - @echo "==> Running project using $(VENV_PYTHON) ./scripts/task.py run $(ARGS)" - @$(VENV_PYTHON) ./scripts/task.py run $(ARGS) - -.PHONY: clean -clean: - @./scripts/bootstrap.sh - @$(VENV_PYTHON) ./scripts/task.py clean - @cargo clean - -ARCH ?= aarch64 - -.PHONY: clippy -clippy: - @./scripts/bootstrap.sh - @$(VENV_PYTHON) ./scripts/task.py clippy --arch $(ARCH) - -DISK_IMG ?= disk.img - -.PHONY: disk_img -disk_img: - @./scripts/bootstrap.sh - @$(VENV_PYTHON) ./scripts/task.py disk_img --image $(DISK_IMG) \ No newline at end of file diff --git a/README.md b/README.md index 0c128b20..29eace75 100644 --- a/README.md +++ b/README.md @@ -58,6 +58,30 @@ Currently, AxVisor has been verified in scenarios with the following systems as After AxVisor starts, it loads and starts the guest based on the information in the guest configuration file. Currently, AxVisor supports loading guest images from a FAT32 file system and also supports binding guest images to the hypervisor image through static compilation (using include_bytes). +## Quick Start + +For first-time users, you can quickly get started with AxVisor using our unified management script: + +```bash +# Check system dependencies +./axvisor.sh check-deps + +# Set up development environment +./axvisor.sh setup + +# Quick build with default platform +./axvisor.sh quick-build + +# Quick run with default configuration +./axvisor.sh quick-run + +# View project status +./axvisor.sh status + +# Get help +./axvisor.sh help +``` + ## Build Environment AxVisor is written in the Rust programming language, so you need to install the Rust development environment following the instructions on the official Rust website. Additionally, you need to install cargo-binutils to use tools like rust-objcopy and rust-objdump. @@ -80,7 +104,7 @@ In addition, you can use the [axvmconfig](https://github.com/arceos-hypervisor/a 2. Create a disk image file and place the guest machine image into the file system. - 1. Use the `make disk_img` command to generate an empty FAT32 disk image file named `disk.img`. + 1. Use the `./axvisor.sh disk_img` command to generate an empty FAT32 disk image file named `disk.img`. 2. Manually mount `disk.img`, and then place your guest machine image into the file system. ```console @@ -101,7 +125,7 @@ In addition, you can use the [axvmconfig](https://github.com/arceos-hypervisor/a cp configs/vms/linux-qemu-aarch64.toml tmp/ ``` -4. Execute `make setup` to gen AxVisor make config `.hvconfig.toml`. +4. Execute `./axvisor.sh defconfig` to set up the development environment and generate AxVisor config `.hvconfig.toml`. 5. Edit the `.hvconfig.toml` file to set the `vmconfigs` item to the path of your guest configuration file, for example: @@ -149,7 +173,7 @@ In addition, you can use the [axvmconfig](https://github.com/arceos-hypervisor/a vmconfigs = [ "tmp/linux-qemu-aarch64-mem.toml"] ``` -4. Execute `make run` to build AxVisor and start it in QEMU. +4. Execute `./axvisor.sh run` to build AxVisor and start it in QEMU. # Contributing diff --git a/README_CN.md b/README_CN.md index e6b8383a..1bdaf6cc 100644 --- a/README_CN.md +++ b/README_CN.md @@ -58,6 +58,30 @@ AxVisor 的软件架构分为如下图所示的五层,其中,每一个框都 AxVisor 启动之后会根据客户机配置文件中的信息加载并启动客户机。目前,AxVisor 即支持从 FAT32 文件系统加载客户机镜像,也支持通过静态编译方式(include_bytes)将客户机镜像绑定到虚拟机管理程序镜像中。 +## 快速开始 + +对于首次使用的用户,可以使用我们的统一管理脚本快速开始 AxVisor 的使用: + +```bash +# 检查系统依赖 +./axvisor.sh check-deps + +# 设置开发环境 +./axvisor.sh setup + +# 快速构建(默认平台) +./axvisor.sh quick-build + +# 快速运行(默认配置) +./axvisor.sh quick-run + +# 查看项目状态 +./axvisor.sh status + +# 获取帮助 +./axvisor.sh help +``` + ## 构建环境 AxVisor 是使用 Rust 编程语言编写的,因此,需要根据 Rust 官方网站的说明安装 Rust 开发环境。此外,还需要安装 [cargo-binutils](https://github.com/rust-embedded/cargo-binutils) 以便使用 `rust-objcopy` 和 `rust-objdump` 等工具 @@ -80,7 +104,7 @@ cargo install cargo-binutils 2. 制作一个磁盘镜像文件,并将客户机镜像放到文件系统中 - 1. 使用 `make disk_img` 命令生成一个空的 FAT32 磁盘镜像文件 `disk.img` + 1. 使用 `./axvisor.sh disk_img` 命令生成一个空的 FAT32 磁盘镜像文件 `disk.img` 2. 手动挂载 `disk.img`,然后将自己的客户机镜像复制到该文件系统中 ```bash @@ -100,7 +124,7 @@ cargo install cargo-binutils cp configs/vms/linux-qemu-aarch64.toml tmp/ ``` -4. 执行 `make setup` 生成 AxVisor make 配置 `.hvconfig.toml`。 +4. 执行 `./axvisor.sh defconfig` 设置开发环境并生成 AxVisor 配置 `.hvconfig.toml`。 5. 编辑 `.hvconfig.toml` 文件,设置 `vmconfigs` 项为您的客户机配置文件路径,例如: @@ -148,7 +172,7 @@ cargo install cargo-binutils vmconfigs = [ "tmp/linux-qemu-aarch64-mem.toml"] ``` -4. 执行 `make run` 构建 AxVisor 并在 QEMU 中启动。 +4. 执行 `./axvisor.sh run` 构建 AxVisor 并在 QEMU 中启动。 ## 启动示例 diff --git a/axvisor.sh b/axvisor.sh new file mode 100755 index 00000000..22748fc5 --- /dev/null +++ b/axvisor.sh @@ -0,0 +1,366 @@ +#!/bin/bash +# -*- coding: utf-8 -*- + +# Axvisor 统一管理脚本 +# 替代 Makefile,提供完整的项目管理功能 + +set -e + +# 颜色定义 +RED='\033[0;31m' +GREEN='\033[0;32m' +YELLOW='\033[1;33m' +BLUE='\033[0;34m' +CYAN='\033[0;36m' +NC='\033[0m' # No Color + +# 项目配置 +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +PROJECT_ROOT="$SCRIPT_DIR" +HVCONFIG="$PROJECT_ROOT/.hvconfig.toml" +DEFAULT_HVCONFIG="$PROJECT_ROOT/configs/def_hvconfig.toml" +VENV_DIR="$PROJECT_ROOT/venv" +VENV_MARKER="$VENV_DIR/.bootstrapped" +REQUIREMENTS="$PROJECT_ROOT/scripts/requirements.txt" + +# 切换到项目根目录 +cd "$PROJECT_ROOT" + +# 输出函数 +info() { echo -e "${BLUE}ℹ${NC} $*"; } +success() { echo -e "${GREEN}✓${NC} $*"; } +warning() { echo -e "${YELLOW}⚠${NC} $*"; } +error() { echo -e "${RED}✗${NC} $*"; } +step() { echo -e "${CYAN}==>${NC} $*"; } + +# 错误处理 +handle_error() { + error "命令失败: $1" + exit 1 +} + +trap 'handle_error "脚本执行中断"' ERR + +# 检查系统依赖 +check_system_deps() { + local missing_deps=() + + # 检查 Python 3 + if ! command -v python3 >/dev/null 2>&1; then + missing_deps+=("python3") + fi + + # 检查 Cargo + if ! command -v cargo >/dev/null 2>&1; then + missing_deps+=("cargo") + fi + + if [[ ${#missing_deps[@]} -gt 0 ]]; then + error "缺少必要依赖: ${missing_deps[*]}" + info "请安装缺少的依赖后重试" + exit 1 + fi +} + +# 检查虚拟环境是否需要设置 +needs_venv_setup() { + # 虚拟环境不存在 + if [[ ! -d "$VENV_DIR" ]]; then + return 0 + fi + + # Python 可执行文件不存在 + if [[ ! -x "$VENV_DIR/bin/python3" ]]; then + return 0 + fi + + # requirements.txt 更新了 + if [[ "$REQUIREMENTS" -nt "$VENV_MARKER" ]]; then + return 0 + fi + + return 1 +} + +# 设置虚拟环境 +setup_venv() { + if ! needs_venv_setup; then + return 0 + fi + + step "设置 Python 虚拟环境..." + + # 运行 bootstrap 脚本 + ./scripts/bootstrap.sh + + success "虚拟环境设置完成" +} + +# 配置文件管理 +setup_defconfig() { + step "设置默认配置..." + + if [[ ! -f "$DEFAULT_HVCONFIG" ]]; then + error "默认配置文件 $DEFAULT_HVCONFIG 不存在" + exit 1 + fi + + if [[ -f "$HVCONFIG" ]]; then + warning "配置文件 $HVCONFIG 已存在" + read -p "是否覆盖现有配置?(y/N): " -n 1 -r + echo + if [[ ! $REPLY =~ ^[Yy]$ ]]; then + info "已取消操作" + return 0 + fi + fi + + cp "$DEFAULT_HVCONFIG" "$HVCONFIG" + success "已复制 $DEFAULT_HVCONFIG -> $HVCONFIG" + + info "配置文件设置完成" + info "可以编辑 $HVCONFIG 来自定义配置" +} + +# 确保配置文件存在(静默方式) +ensure_config() { + if [[ ! -f "$HVCONFIG" ]]; then + if [[ -f "$DEFAULT_HVCONFIG" ]]; then + info "自动复制默认配置文件..." + cp "$DEFAULT_HVCONFIG" "$HVCONFIG" + success "已复制 $DEFAULT_HVCONFIG -> $HVCONFIG" + else + warning "默认配置文件 $DEFAULT_HVCONFIG 不存在" + warning "请先运行 './axvisor.sh defconfig' 设置配置文件" + fi + fi +} + +# 运行 Python 任务 +run_python_task() { + setup_venv + source "$VENV_DIR/bin/activate" + python3 scripts/task.py "$@" +} + +# 显示帮助信息 +show_help() { + echo -e "${CYAN}Axvisor 项目管理工具${NC}" + echo + echo -e "${YELLOW}用法:${NC} $0 <命令> [参数...]" + echo + echo -e "${YELLOW}环境管理:${NC}" + echo " setup - 设置开发环境" + echo " defconfig - 设置默认配置文件" + echo " check-deps - 检查系统依赖" + echo " rebuild-venv - 强制重建虚拟环境" + echo + echo -e "${YELLOW}构建命令:${NC}" + echo " build [args] - 构建项目" + echo " clean - 清理构建产物" + echo " clippy [arch] - 运行代码检查" + echo + echo -e "${YELLOW}运行命令:${NC}" + echo " run [args] - 运行项目" + echo " disk_img [img] - 创建磁盘镜像" + echo + echo -e "${YELLOW}快捷方式:${NC}" + echo " quick-build - 快速构建 (默认平台)" + echo " quick-run - 快速运行 (默认配置)" + echo " dev-build - 开发构建 (setup + build)" + echo " dev-run - 开发运行 (setup + run)" + echo + echo -e "${YELLOW}信息命令:${NC}" + echo " status - 显示项目状态" + echo " version - 显示版本信息" + echo " help - 显示此帮助信息" + echo + echo -e "${YELLOW}构建示例:${NC}" + echo " $0 build --plat aarch64-qemu-virt-hv" + echo " $0 build --plat aarch64-generic --features irq,mem" + echo " $0 quick-build" + echo + echo -e "${YELLOW}运行示例:${NC}" + echo " $0 run --plat aarch64-qemu-virt-hv" + echo " $0 run --vmconfigs configs/vms/linux-qemu-aarch64.toml" + echo " $0 quick-run" + echo + echo -e "${YELLOW}其他示例:${NC}" + echo " $0 defconfig" + echo " $0 clippy aarch64" + echo " $0 disk_img custom-disk.img" + echo " $0 dev-build" +} + +# 显示项目状态 +show_status() { + step "项目状态" + + echo "项目根目录: $PROJECT_ROOT" + echo "配置文件: $([ -f "$HVCONFIG" ] && echo "✓ 存在" || echo "✗ 不存在")" + echo "虚拟环境: $([ -d "$VENV_DIR" ] && echo "✓ 已设置" || echo "✗ 未设置")" + + if [[ -f "$VENV_MARKER" ]]; then + echo "环境状态: ✓ 已初始化" + local timestamp=$(grep "timestamp:" "$VENV_MARKER" 2>/dev/null | cut -d' ' -f2- || echo "未知") + echo "初始化时间: $timestamp" + else + echo "环境状态: ✗ 未初始化" + fi + + # 检查系统依赖 + echo "系统依赖:" + command -v python3 >/dev/null 2>&1 && echo " Python3: ✓" || echo " Python3: ✗" + command -v cargo >/dev/null 2>&1 && echo " Cargo: ✓" || echo " Cargo: ✗" + + # 显示最近的构建产物 + if [[ -f "axvisor-dev_aarch64-generic.bin" ]]; then + local build_time=$(stat -c %y "axvisor-dev_aarch64-generic.bin" 2>/dev/null | cut -d' ' -f1,2) + echo "最近构建: $build_time" + fi +} + +# 显示版本信息 +show_version() { + echo "Axvisor 管理脚本 v2.0" + echo "项目: axvisor-dev" + echo "分支: $(git branch --show-current 2>/dev/null || echo "未知")" + echo "提交: $(git rev-parse --short HEAD 2>/dev/null || echo "未知")" +} + +# 强制重建虚拟环境 +rebuild_venv() { + step "强制重建虚拟环境..." + + if [[ -d "$VENV_DIR" ]]; then + warning "删除现有虚拟环境..." + rm -rf "$VENV_DIR" + fi + + setup_venv + success "虚拟环境重建完成" +} + +# 开发者快捷方式 +dev_build() { + step "开发构建 (setup + build)..." + setup_environment + run_python_task build "$@" +} + +dev_run() { + step "开发运行 (setup + run)..." + setup_environment + run_python_task run "$@" +} + +# 设置完整的开发环境 +setup_environment() { + step "设置开发环境..." + check_system_deps + setup_venv + success "开发环境设置完成" +} + +# 主命令处理 +main() { + local cmd="${1:-help}" + shift || true # 移除第一个参数,剩余参数传递给子命令 + + case "$cmd" in + # 帮助和信息 + "help"|"-h"|"--help") + show_help + ;; + "version"|"-v"|"--version") + show_version + ;; + "status") + show_status + ;; + + # 环境管理 + "setup") + setup_environment + ;; + "defconfig") + setup_defconfig + ;; + "check-deps") + check_system_deps + success "所有系统依赖已满足" + ;; + "rebuild-venv") + rebuild_venv + ;; + + # 构建命令 + "build") + ensure_config + step "构建项目..." + run_python_task build "$@" + ;; + "clean") + step "清理构建产物..." + run_python_task clean "$@" + # 额外清理 cargo 产物 + if command -v cargo >/dev/null 2>&1; then + cargo clean + fi + success "清理完成" + ;; + "clippy") + local arch="${1:-aarch64}" + step "运行代码检查 (架构: $arch)..." + run_python_task clippy --arch "$arch" + ;; + + # 运行命令 + "run") + ensure_config + step "运行项目..." + run_python_task run "$@" + ;; + "disk_img") + local image="${1:-disk.img}" + step "创建磁盘镜像: $image" + run_python_task disk_img --image "$image" + ;; + + # 快捷方式 + "quick-build") + ensure_config + step "快速构建 (默认平台)..." + run_python_task build --plat aarch64-generic + ;; + "quick-run") + ensure_config + step "快速运行 (默认配置)..." + run_python_task run --plat aarch64-generic + ;; + "dev-build") + ensure_config + dev_build "$@" + ;; + "dev-run") + ensure_config + dev_run "$@" + ;; + + # 未知命令 + *) + error "未知命令: $cmd" + info "使用 '$0 help' 查看可用命令" + exit 1 + ;; + esac +} + +# 脚本入口点 +if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then + # 处理中断信号 + trap 'echo -e "\n${YELLOW}用户中断操作${NC}"; exit 130' INT + + # 执行主函数 + main "$@" +fi diff --git a/scripts/bootstrap.sh b/scripts/bootstrap.sh index ab6e6a4f..43f26d6b 100755 --- a/scripts/bootstrap.sh +++ b/scripts/bootstrap.sh @@ -6,137 +6,207 @@ set -e # 遇到错误时退出 +# 颜色输出 +RED='\033[0;31m' +GREEN='\033[0;32m' +YELLOW='\033[1;33m' +BLUE='\033[0;34m' +NC='\033[0m' # No Color + +# 输出函数 +info() { echo -e "${BLUE}ℹ${NC} $1"; } +success() { echo -e "${GREEN}✓${NC} $1"; } +warning() { echo -e "${YELLOW}⚠${NC} $1"; } +error() { echo -e "${RED}✗${NC} $1"; } + +# 获取项目根目录 +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)" +cd "$PROJECT_ROOT" + # 检查是否已经在虚拟环境中 if [[ -n "$VIRTUAL_ENV" ]]; then - # 检查 requirements.txt 文件是否存在 - SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" - PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)" - cd "$PROJECT_ROOT" + info "检测到已在虚拟环境中: $VIRTUAL_ENV" + # 检查 requirements.txt 文件是否存在 if [[ ! -f "scripts/requirements.txt" ]]; then - echo "错误: scripts/requirements.txt 文件未找到" + error "scripts/requirements.txt 文件未找到" exit 1 fi # 安装/更新依赖 - pip install -r scripts/requirements.txt -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple - + info "更新 Python 依赖..." + pip install -q -r scripts/requirements.txt -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple + success "依赖更新完成" exit 0 fi -# If bootstrap marker exists, assume bootstrap already done -MARKER_DIR="venv" -MARKER_FILE="$MARKER_DIR/.bootstrapped" +# 虚拟环境和标记文件 +VENV_DIR="venv" +MARKER_FILE="$VENV_DIR/.bootstrapped" +REQUIREMENTS_FILE="scripts/requirements.txt" -# compute dependency hash based on python version and requirements content +# 计算依赖哈希值 compute_dep_hash() { local pyver pyver=$(python3 --version 2>/dev/null || echo "unknown") - if [[ -f "scripts/requirements.txt" ]]; then - cat scripts/requirements.txt | sed '/^#/d' | tr -d '\r' | sha256sum | awk '{print $1}' | awk -v p="$pyver" '{print p "-" $0}' | sha256sum | awk '{print $1}' + if [[ -f "$REQUIREMENTS_FILE" ]]; then + { + echo "$pyver" + grep -v '^#' "$REQUIREMENTS_FILE" | grep -v '^$' | sort + } | sha256sum | awk '{print $1}' else - echo "$pyver-$(date +%s)" | sha256sum | awk '{print $1}' + echo "$pyver-no-requirements" | sha256sum | awk '{print $1}' fi } -# If marker exists and hash matches, skip bootstrap -if [[ -f "$MARKER_FILE" ]]; then - existing_hash=$(awk -F":" '/^hash:/ {print $2}' "$MARKER_FILE" | tr -d '[:space:]') || existing_hash="" +# 检查是否需要重新引导 +check_bootstrap_needed() { + # 如果虚拟环境不存在,需要引导 + if [[ ! -d "$VENV_DIR" ]]; then + return 0 # 需要引导 + fi + + # 如果标记文件不存在,需要引导 + if [[ ! -f "$MARKER_FILE" ]]; then + return 0 # 需要引导 + fi + + # 检查哈希值是否匹配 + local existing_hash current_hash + existing_hash=$(awk -F":" '/^hash:/ {print $2}' "$MARKER_FILE" 2>/dev/null | tr -d '[:space:]') || existing_hash="" current_hash=$(compute_dep_hash) - if [[ "$existing_hash" == "$current_hash" ]]; then - echo "✓ bootstrap 已完成且依赖未更改(hash匹配),跳过引导" - exit 0 - else - echo "检测到依赖变更或 Python 版本变更,重新运行 bootstrap..." + + if [[ "$existing_hash" != "$current_hash" ]]; then + info "检测到依赖变更,需要重新引导" + return 0 # 需要引导 fi + + # 检查虚拟环境的Python是否可用 + if [[ ! -x "$VENV_DIR/bin/python3" ]]; then + warning "虚拟环境的 Python 不可用,需要重新引导" + return 0 # 需要引导 + fi + + return 1 # 不需要引导 +} +# 快速检查并退出 +if ! check_bootstrap_needed; then + success "引导已完成且依赖未更改,跳过引导" + exit 0 fi -echo "正在设置 Python 虚拟环境..." - -# 获取脚本所在目录 -SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" -PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)" - -echo "脚本目录: $SCRIPT_DIR" -echo "项目根目录: $PROJECT_ROOT" - -# 切换到项目根目录 -cd "$PROJECT_ROOT" - -# 检查 Python 版本 -python_version=$(python3 --version 2>&1 | awk '{print $2}' | cut -d. -f1,2) -echo "检测到 Python 版本: $python_version" - -# 检查是否有 python3-venv -if ! python3 -c "import venv" 2>/dev/null; then - echo "错误: python3-venv 模块未找到,请安装 python3-venv" - echo "在 Ubuntu/Debian 上运行: sudo apt install python3-venv" - echo "在 CentOS/RHEL 上运行: sudo yum install python3-venv" - exit 1 -fi - -# 检查 requirements.txt 文件是否存在 -if [[ ! -f "scripts/requirements.txt" ]]; then - echo "错误: scripts/requirements.txt 文件未找到" - exit 1 -fi - -# 虚拟环境目录 -VENV_DIR="venv" +info "开始设置 Python 虚拟环境..." -# 创建虚拟环境(如果不存在) -if [[ ! -d "$VENV_DIR" ]]; then - echo "创建 Python 虚拟环境..." - python3 -m venv "$VENV_DIR" - echo "✓ 虚拟环境已创建在 $VENV_DIR/" -else - echo "✓ 检测到已存在的虚拟环境: $VENV_DIR/" -fi - -# 激活虚拟环境 -echo "激活虚拟环境..." -source "$VENV_DIR/bin/activate" +# 检查系统依赖 +check_system_deps() { + info "检查系统依赖..." + + # 检查 Python 3 + if ! command -v python3 >/dev/null 2>&1; then + error "python3 未找到,请先安装 Python 3" + exit 1 + fi + + # 检查 Python 版本 + local pyver + pyver=$(python3 --version 2>&1 | awk '{print $2}' | cut -d. -f1,2) + info "检测到 Python 版本: $pyver" + + # 检查 venv 模块 + if ! python3 -c "import venv" 2>/dev/null; then + error "python3-venv 模块未找到" + echo "请安装 python3-venv:" + echo " Ubuntu/Debian: sudo apt install python3-venv" + echo " CentOS/RHEL: sudo yum install python3-venv" + echo " Fedora: sudo dnf install python3-venv" + exit 1 + fi + + # 检查 requirements.txt + if [[ ! -f "$REQUIREMENTS_FILE" ]]; then + error "$REQUIREMENTS_FILE 文件未找到" + exit 1 + fi + + success "系统依赖检查完成" +} -# 升级 pip -echo "升级 pip..." -python -m pip install -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple --upgrade pip +# 创建虚拟环境 +setup_venv() { + info "设置虚拟环境..." + + # 如果虚拟环境已存在但损坏,删除它 + if [[ -d "$VENV_DIR" ]] && [[ ! -x "$VENV_DIR/bin/python3" ]]; then + warning "检测到损坏的虚拟环境,正在删除..." + rm -rf "$VENV_DIR" + fi + + # 创建虚拟环境 + if [[ ! -d "$VENV_DIR" ]]; then + info "创建新的虚拟环境..." + python3 -m venv "$VENV_DIR" + success "虚拟环境已创建" + else + info "使用现有虚拟环境" + fi +} # 安装依赖 -echo "正在安装 Python 依赖..." -pip install -r scripts/requirements.txt -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple - -echo "依赖安装完成!" +install_deps() { + info "安装 Python 依赖..." + + # 激活虚拟环境 + source "$VENV_DIR/bin/activate" + + # 升级 pip(静默) + python -m pip install -q --upgrade pip -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple + + # 安装依赖 + pip install -q -r "$REQUIREMENTS_FILE" -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple + + success "依赖安装完成" +} -# 测试 task.py 是否可以正常运行 -echo "测试 scripts/task.py..." -if python3 ./scripts/task.py --help > /dev/null 2>&1; then - echo "✓ scripts/task.py 运行正常" -else - echo "✗ scripts/task.py 运行失败,请检查安装" -fi +# 验证安装 +verify_installation() { + info "验证安装..." + + # 测试 task.py + if source "$VENV_DIR/bin/activate" && python3 ./scripts/task.py --help >/dev/null 2>&1; then + success "task.py 运行正常" + else + error "task.py 运行失败" + exit 1 + fi +} -echo "=== Bootstrap 完成 ===" -echo "虚拟环境已设置完成!" -echo "" -echo "要使用项目,请先激活虚拟环境:" -echo " source venv/bin/activate" -echo "" -echo "然后您可以使用以下命令:" -echo " ./scripts/task.py build # 构建项目" -echo " ./scripts/task.py run # 运行项目" -echo " ./scripts/task.py build --help # 查看构建选项" -echo " ./scripts/task.py run --help # 查看运行选项" -echo "" -echo "要退出虚拟环境,请运行:" -echo " deactivate" - -# 写入 bootstrap 完成标记,包含时间戳 -if [[ -d "$VENV_DIR" ]]; then - mkdir -p "$VENV_DIR" +# 写入完成标记 +write_marker() { + local dep_hash dep_hash=$(compute_dep_hash) + cat > "$MARKER_FILE" < Date: Mon, 8 Sep 2025 14:33:17 +0800 Subject: [PATCH 161/219] fix: update output function icons for better clarity --- axvisor.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/axvisor.sh b/axvisor.sh index 22748fc5..3e56b1a5 100755 --- a/axvisor.sh +++ b/axvisor.sh @@ -27,10 +27,10 @@ REQUIREMENTS="$PROJECT_ROOT/scripts/requirements.txt" cd "$PROJECT_ROOT" # 输出函数 -info() { echo -e "${BLUE}ℹ${NC} $*"; } -success() { echo -e "${GREEN}✓${NC} $*"; } -warning() { echo -e "${YELLOW}⚠${NC} $*"; } -error() { echo -e "${RED}✗${NC} $*"; } +info() { echo -e "${BLUE}💡${NC} $*"; } +success() { echo -e "${GREEN}✅${NC} $*"; } +warning() { echo -e "${YELLOW}ℹ️${NC} $*"; } +error() { echo -e "${RED}❌${NC} $*"; } step() { echo -e "${CYAN}==>${NC} $*"; } # 错误处理 From ca6047fdcc07d3d27f495102f473b663ea5cb81e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E7=9D=BF?= Date: Mon, 8 Sep 2025 14:47:25 +0800 Subject: [PATCH 162/219] fix: script --- axvisor.sh | 226 ++++++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 181 insertions(+), 45 deletions(-) diff --git a/axvisor.sh b/axvisor.sh index 3e56b1a5..bf8927e4 100755 --- a/axvisor.sh +++ b/axvisor.sh @@ -26,12 +26,13 @@ REQUIREMENTS="$PROJECT_ROOT/scripts/requirements.txt" # 切换到项目根目录 cd "$PROJECT_ROOT" -# 输出函数 -info() { echo -e "${BLUE}💡${NC} $*"; } +# 输出函数 - 统一使用emoji符号 +info() { echo -e "${BLUE}ℹ️${NC} $*"; } success() { echo -e "${GREEN}✅${NC} $*"; } -warning() { echo -e "${YELLOW}ℹ️${NC} $*"; } +warning() { echo -e "${YELLOW}⚠️${NC} $*"; } error() { echo -e "${RED}❌${NC} $*"; } -step() { echo -e "${CYAN}==>${NC} $*"; } +step() { echo -e "${CYAN}🚀${NC} $*"; } +debug() { echo -e "${CYAN}🔍${NC} $*"; } # 错误处理 handle_error() { @@ -137,55 +138,193 @@ ensure_config() { } # 运行 Python 任务 +# 运行 Python 任务 - 统一的任务执行入口 run_python_task() { + local cmd="$1" + shift + + # 检查是否需要帮助 + for arg in "$@"; do + if [[ "$arg" == "--help" || "$arg" == "-h" ]]; then + step "显示 $cmd 命令帮助..." + setup_venv + source "$VENV_DIR/bin/activate" + python3 scripts/task.py "$cmd" --help + return $? + fi + done + + # 根据命令类型进行智能参数解析 + case "$cmd" in + "clippy") + parse_clippy_args "$@" + ;; + "disk_img") + parse_disk_img_args "$@" + ;; + "build") + parse_build_args "$@" + ;; + "run") + parse_run_args "$@" + ;; + *) + # 其他命令直接透传所有参数 + step "执行 $cmd 命令..." + if [[ $# -gt 0 ]]; then + debug "参数: $*" + fi + setup_venv + source "$VENV_DIR/bin/activate" + python3 scripts/task.py "$cmd" "$@" + ;; + esac +} + +# 解析 clippy 命令参数 +parse_clippy_args() { + local arch="aarch64" # 默认架构 + local extra_args=() + + # 解析参数 + while [[ $# -gt 0 ]]; do + case $1 in + --arch) + arch="$2" + shift 2 + ;; + *) + # 如果没有 --arch 标志且是第一个未处理的参数,将其作为架构 + if [[ ${#extra_args[@]} -eq 0 && "$1" != -* ]]; then + arch="$1" + shift + else + extra_args+=("$1") + shift + fi + ;; + esac + done + + step "运行代码检查 (架构: $arch)..." + if [[ ${#extra_args[@]} -gt 0 ]]; then + debug "额外参数: ${extra_args[*]}" + fi + + setup_venv + source "$VENV_DIR/bin/activate" + python3 scripts/task.py clippy --arch "$arch" "${extra_args[@]}" +} + +# 解析 disk_img 命令参数 +parse_disk_img_args() { + local image="disk.img" # 默认镜像名 + local extra_args=() + + # 解析参数 + while [[ $# -gt 0 ]]; do + case $1 in + --image) + image="$2" + shift 2 + ;; + *) + # 如果没有 --image 标志且是第一个未处理的参数,将其作为镜像名 + if [[ ${#extra_args[@]} -eq 0 && "$1" != -* ]]; then + image="$1" + shift + else + extra_args+=("$1") + shift + fi + ;; + esac + done + + step "创建磁盘镜像: $image" + if [[ ${#extra_args[@]} -gt 0 ]]; then + debug "额外参数: ${extra_args[*]}" + fi + setup_venv source "$VENV_DIR/bin/activate" - python3 scripts/task.py "$@" + python3 scripts/task.py disk_img --image "$image" "${extra_args[@]}" +} + +# 解析 build 命令参数 +parse_build_args() { + step "构建项目..." + if [[ $# -gt 0 ]]; then + debug "构建参数: $*" + fi + + setup_venv + source "$VENV_DIR/bin/activate" + python3 scripts/task.py build "$@" +} + +# 解析 run 命令参数 +parse_run_args() { + step "运行项目..." + if [[ $# -gt 0 ]]; then + debug "运行参数: $*" + fi + + setup_venv + source "$VENV_DIR/bin/activate" + python3 scripts/task.py run "$@" } # 显示帮助信息 show_help() { - echo -e "${CYAN}Axvisor 项目管理工具${NC}" + echo -e "${CYAN}🔧 Axvisor 项目管理工具${NC}" + echo + echo -e "${YELLOW}📋 用法:${NC} $0 <命令> [参数...]" echo - echo -e "${YELLOW}用法:${NC} $0 <命令> [参数...]" + echo -e "${YELLOW}🛠️ 环境管理:${NC}" + echo " setup - 🚀 设置开发环境" + echo " defconfig - ⚙️ 设置默认配置文件" + echo " check-deps - ✅ 检查系统依赖" + echo " rebuild-venv - 🔄 强制重建虚拟环境" echo - echo -e "${YELLOW}环境管理:${NC}" - echo " setup - 设置开发环境" - echo " defconfig - 设置默认配置文件" - echo " check-deps - 检查系统依赖" - echo " rebuild-venv - 强制重建虚拟环境" + echo -e "${YELLOW}🔨 构建命令:${NC}" + echo " build [args] - 🏗️ 构建项目 (支持完整参数透传)" + echo " clean [args] - 🧹 清理构建产物" + echo " clippy [args] - 🔍 运行代码检查 (支持 --arch 和其他参数)" echo - echo -e "${YELLOW}构建命令:${NC}" - echo " build [args] - 构建项目" - echo " clean - 清理构建产物" - echo " clippy [arch] - 运行代码检查" + echo -e "${YELLOW}▶️ 运行命令:${NC}" + echo " run [args] - 🚀 运行项目 (支持完整参数透传)" + echo " disk_img [args] - 💾 创建磁盘镜像 (支持 --image 和其他参数)" echo - echo -e "${YELLOW}运行命令:${NC}" - echo " run [args] - 运行项目" - echo " disk_img [img] - 创建磁盘镜像" + echo -e "${YELLOW}⚡ 快捷方式:${NC}" + echo " quick-build - 🏃 快速构建 (默认平台)" + echo " quick-run - 🏃 快速运行 (默认配置)" + echo " dev-build - 👨‍💻 开发构建 (setup + build)" + echo " dev-run - 👨‍💻 开发运行 (setup + run)" echo - echo -e "${YELLOW}快捷方式:${NC}" - echo " quick-build - 快速构建 (默认平台)" - echo " quick-run - 快速运行 (默认配置)" - echo " dev-build - 开发构建 (setup + build)" - echo " dev-run - 开发运行 (setup + run)" + echo -e "${YELLOW}ℹ️ 信息命令:${NC}" + echo " status - 📊 显示项目状态" + echo " version - 📦 显示版本信息" + echo " help - ❓ 显示此帮助信息" echo - echo -e "${YELLOW}信息命令:${NC}" - echo " status - 显示项目状态" - echo " version - 显示版本信息" - echo " help - 显示此帮助信息" + echo -e "${YELLOW}🎯 高级功能:${NC}" + echo " • 所有命令支持 --help 查看详细参数" + echo " • 参数完全透传到 task.py,支持所有原生功能" + echo " • 智能参数解析,兼容新老调用方式" echo - echo -e "${YELLOW}构建示例:${NC}" + echo -e "${YELLOW}📚 构建示例:${NC}" echo " $0 build --plat aarch64-qemu-virt-hv" echo " $0 build --plat aarch64-generic --features irq,mem" - echo " $0 quick-build" + echo " $0 clippy --arch aarch64" + echo " $0 clippy x86_64 --verbose" echo - echo -e "${YELLOW}运行示例:${NC}" + echo -e "${YELLOW}🎮 运行示例:${NC}" echo " $0 run --plat aarch64-qemu-virt-hv" echo " $0 run --vmconfigs configs/vms/linux-qemu-aarch64.toml" - echo " $0 quick-run" + echo " $0 disk_img --image custom.img" + echo " $0 disk_img custom.img --size 128M" echo - echo -e "${YELLOW}其他示例:${NC}" + echo -e "${YELLOW}💡 其他示例:${NC}" echo " $0 defconfig" echo " $0 clippy aarch64" echo " $0 disk_img custom-disk.img" @@ -294,37 +433,29 @@ main() { rebuild_venv ;; - # 构建命令 + # 构建和开发命令 - 统一使用 run_python_task "build") ensure_config - step "构建项目..." run_python_task build "$@" ;; "clean") - step "清理构建产物..." run_python_task clean "$@" # 额外清理 cargo 产物 if command -v cargo >/dev/null 2>&1; then + step "清理 Cargo 构建产物..." cargo clean fi success "清理完成" ;; "clippy") - local arch="${1:-aarch64}" - step "运行代码检查 (架构: $arch)..." - run_python_task clippy --arch "$arch" + run_python_task clippy "$@" ;; - - # 运行命令 "run") ensure_config - step "运行项目..." run_python_task run "$@" ;; "disk_img") - local image="${1:-disk.img}" - step "创建磁盘镜像: $image" - run_python_task disk_img --image "$image" + run_python_task disk_img "$@" ;; # 快捷方式 @@ -347,6 +478,11 @@ main() { dev_run "$@" ;; + # 其他 task.py 支持的命令 - 直接透传 + "config"|"test"|"format"|"doc") + run_python_task "$cmd" "$@" + ;; + # 未知命令 *) error "未知命令: $cmd" From 10e55e1b760a520edfd9992d3f9ceaf74d39b5c1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E7=9D=BF?= Date: Mon, 8 Sep 2025 14:49:40 +0800 Subject: [PATCH 163/219] fix: script --- axvisor.sh | 2 -- 1 file changed, 2 deletions(-) diff --git a/axvisor.sh b/axvisor.sh index bf8927e4..0ec221be 100755 --- a/axvisor.sh +++ b/axvisor.sh @@ -435,7 +435,6 @@ main() { # 构建和开发命令 - 统一使用 run_python_task "build") - ensure_config run_python_task build "$@" ;; "clean") @@ -451,7 +450,6 @@ main() { run_python_task clippy "$@" ;; "run") - ensure_config run_python_task run "$@" ;; "disk_img") From 09dc3231f5f13f553ea407ccab9adf11a01e1f1a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E7=9D=BF?= Date: Mon, 8 Sep 2025 14:57:29 +0800 Subject: [PATCH 164/219] fix: doc --- README.md | 24 ------------------------ README_CN.md | 24 ------------------------ 2 files changed, 48 deletions(-) diff --git a/README.md b/README.md index 29eace75..6cc87516 100644 --- a/README.md +++ b/README.md @@ -58,30 +58,6 @@ Currently, AxVisor has been verified in scenarios with the following systems as After AxVisor starts, it loads and starts the guest based on the information in the guest configuration file. Currently, AxVisor supports loading guest images from a FAT32 file system and also supports binding guest images to the hypervisor image through static compilation (using include_bytes). -## Quick Start - -For first-time users, you can quickly get started with AxVisor using our unified management script: - -```bash -# Check system dependencies -./axvisor.sh check-deps - -# Set up development environment -./axvisor.sh setup - -# Quick build with default platform -./axvisor.sh quick-build - -# Quick run with default configuration -./axvisor.sh quick-run - -# View project status -./axvisor.sh status - -# Get help -./axvisor.sh help -``` - ## Build Environment AxVisor is written in the Rust programming language, so you need to install the Rust development environment following the instructions on the official Rust website. Additionally, you need to install cargo-binutils to use tools like rust-objcopy and rust-objdump. diff --git a/README_CN.md b/README_CN.md index 1bdaf6cc..75ec1c75 100644 --- a/README_CN.md +++ b/README_CN.md @@ -58,30 +58,6 @@ AxVisor 的软件架构分为如下图所示的五层,其中,每一个框都 AxVisor 启动之后会根据客户机配置文件中的信息加载并启动客户机。目前,AxVisor 即支持从 FAT32 文件系统加载客户机镜像,也支持通过静态编译方式(include_bytes)将客户机镜像绑定到虚拟机管理程序镜像中。 -## 快速开始 - -对于首次使用的用户,可以使用我们的统一管理脚本快速开始 AxVisor 的使用: - -```bash -# 检查系统依赖 -./axvisor.sh check-deps - -# 设置开发环境 -./axvisor.sh setup - -# 快速构建(默认平台) -./axvisor.sh quick-build - -# 快速运行(默认配置) -./axvisor.sh quick-run - -# 查看项目状态 -./axvisor.sh status - -# 获取帮助 -./axvisor.sh help -``` - ## 构建环境 AxVisor 是使用 Rust 编程语言编写的,因此,需要根据 Rust 官方网站的说明安装 Rust 开发环境。此外,还需要安装 [cargo-binutils](https://github.com/rust-embedded/cargo-binutils) 以便使用 `rust-objcopy` 和 `rust-objdump` 等工具 From ba58e782aaf641f022aead9a51056aadca1e2385 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E7=9D=BF?= Date: Mon, 8 Sep 2025 14:59:45 +0800 Subject: [PATCH 165/219] fmt code --- src/hal/arch/x86_64/mod.rs | 3 --- src/hal/mod.rs | 1 + src/vmm/timer.rs | 2 +- 3 files changed, 2 insertions(+), 4 deletions(-) diff --git a/src/hal/arch/x86_64/mod.rs b/src/hal/arch/x86_64/mod.rs index ef24b791..ab92f90b 100644 --- a/src/hal/arch/x86_64/mod.rs +++ b/src/hal/arch/x86_64/mod.rs @@ -1,6 +1,3 @@ -use crate::hal::CacheOp; -use memory_addr::VirtAddr; - pub mod cache; pub fn hardware_check() {} diff --git a/src/hal/mod.rs b/src/hal/mod.rs index dea67ecd..4e6cb781 100644 --- a/src/hal/mod.rs +++ b/src/hal/mod.rs @@ -21,6 +21,7 @@ pub mod arch; use crate::{hal::arch::hardware_check, vmm}; +#[allow(unused)] #[repr(C)] #[derive(Debug, Clone, Copy)] pub enum CacheOp { diff --git a/src/vmm/timer.rs b/src/vmm/timer.rs index 3e1c6842..188e1a19 100644 --- a/src/vmm/timer.rs +++ b/src/vmm/timer.rs @@ -96,7 +96,7 @@ pub fn check_events() { } } -/// Schedule the next timer event based on the periodic interval +// /// Schedule the next timer event based on the periodic interval // pub fn scheduler_next_event() { // trace!("Scheduling next event..."); // let now_ns = axhal::time::monotonic_time_nanos(); From d08d099dc5744571cf9aa32be030b44a83817b88 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E7=9D=BF?= Date: Mon, 8 Sep 2025 15:55:21 +0800 Subject: [PATCH 166/219] update deps --- Cargo.lock | 94 +++++++++++++++++++++++++++++++------------------- Cargo.toml | 12 +++---- src/hal/mod.rs | 4 +++ 3 files changed, 69 insertions(+), 41 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index b34e6f06..1bb4ddab 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -175,8 +175,8 @@ dependencies = [ [[package]] name = "arm_vcpu" -version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/arm_vcpu?branch=dev-irq#70318dcfb44a6d5fe7457fc20f542084cbae67c4" +version = "0.1.1" +source = "git+https://github.com/arceos-hypervisor/arm_vcpu?branch=next-dev#c6eaba4fc0a7941b42ed2ade356a5f595baeddd3" dependencies = [ "aarch64-cpu", "axaddrspace", @@ -239,8 +239,9 @@ checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" [[package]] name = "axaddrspace" -version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/axaddrspace#9f1ae0ee39396aed8605ca1210322a212f06561c" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e86bea69b4b98f2aba53da737bc4ed996bd9192f8eda0c32022b042b5c74d67" dependencies = [ "axerrno", "bit_field", @@ -299,6 +300,29 @@ dependencies = [ "syn 2.0.106", ] +[[package]] +name = "axcpu" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e09bc1235e3da45e942b50f47812f8397ad84cb490264bf914c65ac44e6f8b1d" +dependencies = [ + "aarch64-cpu", + "cfg-if", + "lazyinit", + "linkme", + "log", + "loongArch64", + "memory_addr", + "page_table_entry", + "page_table_multiarch", + "percpu", + "riscv", + "static_assertions", + "tock-registers 0.9.0", + "x86", + "x86_64", +] + [[package]] name = "axcpu" version = "0.2.2" @@ -494,7 +518,7 @@ dependencies = [ "aarch64-cpu", "axalloc", "axconfig", - "axcpu", + "axcpu 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "axlog", "axplat 0.2.0", "axplat-aarch64-qemu-virt", @@ -605,7 +629,7 @@ dependencies = [ "any-uart", "arm-gic-driver", "axconfig-macros", - "axcpu", + "axcpu 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "axplat 0.2.0", "fdt-parser", "heapless 0.8.0", @@ -641,7 +665,7 @@ dependencies = [ "arm-gic-driver", "arm_pl011", "arm_pl031", - "axcpu", + "axcpu 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "axplat 0.2.0", "int_ratio", "kspin", @@ -658,7 +682,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6f03bfe81ebc5b2f567eecadcab221107b90f394485dd0da39334411a676d81a" dependencies = [ "axconfig-macros", - "axcpu", + "axcpu 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "axplat 0.2.0", "axplat-aarch64-peripherals", "log", @@ -672,7 +696,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8c404064c74824b2c509e1d84f2ae0cbd9240a3274fb4053dc81b9ad120b5962" dependencies = [ "axconfig-macros", - "axcpu", + "axcpu 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "axplat 0.2.0", "kspin", "lazyinit", @@ -710,7 +734,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b8d95d76dfa65d75d07380ac13692c3b0c5bd6ae5b68df7bbede1f2e7181027a" dependencies = [ "axconfig-macros", - "axcpu", + "axcpu 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "axplat 0.2.0", "log", "riscv", @@ -723,7 +747,7 @@ version = "0.1.1" source = "git+https://github.com/arceos-hypervisor/axplat_crates.git?branch=vmm#ea596c55acaf25401fe905307d7cae2cf39030e8" dependencies = [ "axconfig-macros", - "axcpu", + "axcpu 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "axplat 0.1.0", "bitflags 2.9.4", "heapless 0.8.0", @@ -747,7 +771,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4aef32b01b5b7e87e9f69933b64b704bc5d731adda2cdd24fc0a29cf0c359211" dependencies = [ "axconfig-macros", - "axcpu", + "axcpu 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "axplat 0.2.0", "bitflags 2.9.4", "heapless 0.9.1", @@ -846,9 +870,9 @@ dependencies = [ [[package]] name = "axvcpu" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fd2246d45be5a55e5f0fb081a6c23a9d6f5de4f390a9dbce82786129e66004e" +checksum = "cefe761786c0c69a7c0eaf45602c460f721bce9d8b8decc4f733b488e9da657f" dependencies = [ "axaddrspace", "axerrno", @@ -924,12 +948,12 @@ dependencies = [ [[package]] name = "axvm" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/axvm.git?branch=dev-irq#51e6f17b93b814cd7853ef1b4fb4633c934fbb41" +source = "git+https://github.com/arceos-hypervisor/axvm.git?branch=dev-irq#12a4faa38594b815f1d69a06ae5451311682745c" dependencies = [ "arm_vcpu", "arm_vgic", "axaddrspace", - "axcpu", + "axcpu 0.2.2 (git+https://github.com/arceos-hypervisor/axcpu?branch=vmm)", "axdevice", "axdevice_base", "axerrno", @@ -1131,9 +1155,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.2.35" +version = "1.2.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "590f9024a68a8c40351881787f1934dc11afd69090f5edb6831464694d836ea3" +checksum = "5252b3d2648e5eedbc1a6f501e3c795e07025c1e93bbf8bbdd6eef7f447a6d54" dependencies = [ "find-msvc-tools", "shlex", @@ -1448,9 +1472,9 @@ dependencies = [ [[package]] name = "find-msvc-tools" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e178e4fba8a2726903f6ba98a6d221e76f9c12c650d5dc0e6afdc50677b49650" +checksum = "7fd99930f64d146689264c637b5af2f0233a933bef0d8570e2526bf9e083192d" [[package]] name = "flate2" @@ -1601,7 +1625,7 @@ dependencies = [ "cfg-if", "libc", "r-efi", - "wasi 0.14.3+wasi-0.2.4", + "wasi 0.14.4+wasi-0.2.4", ] [[package]] @@ -2552,7 +2576,7 @@ version = "0.2.21" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" dependencies = [ - "zerocopy 0.8.26", + "zerocopy 0.8.27", ] [[package]] @@ -2936,8 +2960,8 @@ checksum = "8188909339ccc0c68cfb5a04648313f09621e8b87dc03095454f1a11f6c5d436" [[package]] name = "riscv_vcpu" -version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/riscv_vcpu.git#04a9c32df704637201651bff9f7298054a46faf5" +version = "0.1.1" +source = "git+https://github.com/arceos-hypervisor/riscv_vcpu.git#459a7f6a33b6417d0a0146746de7b263d2af3778" dependencies = [ "axaddrspace", "axerrno", @@ -3112,9 +3136,9 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.14.0" +version = "2.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49db231d56a190491cb4aeda9527f1ad45345af50b0851622a7adb8c03b01c32" +checksum = "cc1f0cbffaac4852523ce30d8bd3c5cdc873501d96ff467ca09b6767bb8cd5c0" dependencies = [ "core-foundation-sys", "libc", @@ -3890,9 +3914,9 @@ checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" [[package]] name = "wasi" -version = "0.14.3+wasi-0.2.4" +version = "0.14.4+wasi-0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a51ae83037bdd272a9e28ce236db8c07016dd0d50c27038b3f407533c030c95" +checksum = "88a5f4a424faf49c3c2c344f166f0662341d470ea185e939657aaff130f0ec4a" dependencies = [ "wit-bindgen", ] @@ -4257,9 +4281,9 @@ dependencies = [ [[package]] name = "wit-bindgen" -version = "0.45.0" +version = "0.45.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "052283831dbae3d879dc7f51f3d92703a316ca49f91540417d38591826127814" +checksum = "5c573471f125075647d03df72e026074b7203790d41351cd6edc96f46bcccd36" [[package]] name = "writeable" @@ -4393,11 +4417,11 @@ dependencies = [ [[package]] name = "zerocopy" -version = "0.8.26" +version = "0.8.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1039dd0d3c310cf05de012d8a39ff557cb0d23087fd44cad61df08fc31907a2f" +checksum = "0894878a5fa3edfd6da3f88c4805f4c8558e2b996227a3d864f47fe11e38282c" dependencies = [ - "zerocopy-derive 0.8.26", + "zerocopy-derive 0.8.27", ] [[package]] @@ -4413,9 +4437,9 @@ dependencies = [ [[package]] name = "zerocopy-derive" -version = "0.8.26" +version = "0.8.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ecf5b4cc5364572d7f4c329661bcc82724222973f2cab6f050a4e5c22f75181" +checksum = "88d2b8d9c68ad2b9e4340d7832716a4d21a22a1154777ad56ea55c51a9cf3831" dependencies = [ "proc-macro2", "quote", diff --git a/Cargo.toml b/Cargo.toml index 6402ef84..084ecbb1 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -39,7 +39,7 @@ axstd = {git = "https://github.com/arceos-hypervisor/arceos.git", branch = "vmm- ]} # System dependent modules provided by ArceOS-Hypervisor. -axaddrspace = "0.1" +axaddrspace = "0.1.1" axhvc = {git = "https://github.com/arceos-hypervisor/axhvc.git"} axvcpu = "0.1" axvm = {git = "https://github.com/arceos-hypervisor/axvm.git", branch = "dev-irq"} @@ -73,9 +73,9 @@ quote = "1.0" syn = "2.0" toml = {version = "0.9"} -[patch.crates-io.axcpu] -branch = "vmm" -git = "https://github.com/arceos-hypervisor/axcpu" +# [patch.crates-io.axcpu] +# branch = "vmm" +# git = "https://github.com/arceos-hypervisor/axcpu" -[patch.crates-io.axaddrspace] -git = "https://github.com/arceos-hypervisor/axaddrspace" +# [patch.crates-io.axaddrspace] +# git = "https://github.com/arceos-hypervisor/axaddrspace" diff --git a/src/hal/mod.rs b/src/hal/mod.rs index 4e6cb781..561c3e53 100644 --- a/src/hal/mod.rs +++ b/src/hal/mod.rs @@ -118,6 +118,10 @@ pub struct AxVCpuHalImpl; impl AxVCpuHal for AxVCpuHalImpl { type MmHal = AxMmHalImpl; + + fn irq_hanlder() { + axhal::irq::irq_handler(0); + } } #[percpu::def_percpu] From a34f2441421d931214c6f7a72215dda8065cd7a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E7=9D=BF?= Date: Mon, 8 Sep 2025 16:02:26 +0800 Subject: [PATCH 167/219] ci: test --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 2d781a40..8db60980 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -135,6 +135,6 @@ jobs: cargo version export DISK_IMG="${{ github.workspace }}/disk-x86_64.img" export VM_CONFIGS="$(pwd)/configs/vms/nimbos-x86_64.toml" - ./axvisor.sh run --plat ${{ matrix.plat }} --vmconfigs $VM_CONFIGS --features fs --arceos-args DISK_IMG=$DISK_IMG,BLK=y,MEM=1g + ./axvisor.sh run --plat ${{ matrix.plat }} --vmconfigs $VM_CONFIGS --features fs --arceos-args DISK_IMG=$DISK_IMG,BLK=y,MEM=8g From a67148d84cd7020b8a04448a856cff4d178943c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E7=9D=BF?= Date: Mon, 8 Sep 2025 16:19:52 +0800 Subject: [PATCH 168/219] test: x86 --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 8db60980..aa355942 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -135,6 +135,6 @@ jobs: cargo version export DISK_IMG="${{ github.workspace }}/disk-x86_64.img" export VM_CONFIGS="$(pwd)/configs/vms/nimbos-x86_64.toml" - ./axvisor.sh run --plat ${{ matrix.plat }} --vmconfigs $VM_CONFIGS --features fs --arceos-args DISK_IMG=$DISK_IMG,BLK=y,MEM=8g + ./axvisor.sh run --plat ${{ matrix.plat }} --vmconfigs $VM_CONFIGS --features fs --arceos-args DISK_IMG=$DISK_IMG,BLK=y From 9ed6056cd6e4406b9a100f66fe38cf0faf71b250 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E7=9D=BF?= Date: Mon, 8 Sep 2025 16:43:31 +0800 Subject: [PATCH 169/219] refactor: merge tools --- Cargo.lock | 15 ++-- axvisor.sh | 60 ++-------------- {tool => scripts}/conn_2_serial.sh | 0 scripts/dev_env.py | 40 +++++++++++ tool/dev_env.py | 107 ----------------------------- 5 files changed, 55 insertions(+), 167 deletions(-) rename {tool => scripts}/conn_2_serial.sh (100%) create mode 100755 scripts/dev_env.py delete mode 100755 tool/dev_env.py diff --git a/Cargo.lock b/Cargo.lock index 1bb4ddab..643a4c67 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -240,8 +240,6 @@ checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" [[package]] name = "axaddrspace" version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e86bea69b4b98f2aba53da737bc4ed996bd9192f8eda0c32022b042b5c74d67" dependencies = [ "axerrno", "bit_field", @@ -349,7 +347,6 @@ dependencies = [ [[package]] name = "axdevice" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/axdevice.git#c4a0965ca45a3b9a34845fa774b1bd90fc8f4573" dependencies = [ "arm_vgic", "axaddrspace", @@ -539,7 +536,6 @@ dependencies = [ [[package]] name = "axhvc" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/axhvc.git#e4ca6f919b9900f35e42b9b30863550a50432220" dependencies = [ "axerrno", "numeric-enum-macro", @@ -871,8 +867,6 @@ dependencies = [ [[package]] name = "axvcpu" version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cefe761786c0c69a7c0eaf45602c460f721bce9d8b8decc4f733b488e9da657f" dependencies = [ "axaddrspace", "axerrno", @@ -948,7 +942,6 @@ dependencies = [ [[package]] name = "axvm" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/axvm.git?branch=dev-irq#12a4faa38594b815f1d69a06ae5451311682745c" dependencies = [ "arm_vcpu", "arm_vgic", @@ -4505,3 +4498,11 @@ dependencies = [ "quote", "syn 2.0.106", ] + +[[patch.unused]] +name = "arm_vcpu" +version = "0.1.1" + +[[patch.unused]] +name = "arm_vgic" +version = "0.1.0" diff --git a/axvisor.sh b/axvisor.sh index 0ec221be..5e5be3e7 100755 --- a/axvisor.sh +++ b/axvisor.sh @@ -286,6 +286,7 @@ show_help() { echo " defconfig - ⚙️ 设置默认配置文件" echo " check-deps - ✅ 检查系统依赖" echo " rebuild-venv - 🔄 强制重建虚拟环境" + echo " dev-env - 🔧 开发环境工具" echo echo -e "${YELLOW}🔨 构建命令:${NC}" echo " build [args] - 🏗️ 构建项目 (支持完整参数透传)" @@ -296,12 +297,6 @@ show_help() { echo " run [args] - 🚀 运行项目 (支持完整参数透传)" echo " disk_img [args] - 💾 创建磁盘镜像 (支持 --image 和其他参数)" echo - echo -e "${YELLOW}⚡ 快捷方式:${NC}" - echo " quick-build - 🏃 快速构建 (默认平台)" - echo " quick-run - 🏃 快速运行 (默认配置)" - echo " dev-build - 👨‍💻 开发构建 (setup + build)" - echo " dev-run - 👨‍💻 开发运行 (setup + run)" - echo echo -e "${YELLOW}ℹ️ 信息命令:${NC}" echo " status - 📊 显示项目状态" echo " version - 📦 显示版本信息" @@ -314,21 +309,12 @@ show_help() { echo echo -e "${YELLOW}📚 构建示例:${NC}" echo " $0 build --plat aarch64-qemu-virt-hv" - echo " $0 build --plat aarch64-generic --features irq,mem" + echo " $0 build --plat aarch64-generic --features fs" echo " $0 clippy --arch aarch64" - echo " $0 clippy x86_64 --verbose" echo echo -e "${YELLOW}🎮 运行示例:${NC}" echo " $0 run --plat aarch64-qemu-virt-hv" echo " $0 run --vmconfigs configs/vms/linux-qemu-aarch64.toml" - echo " $0 disk_img --image custom.img" - echo " $0 disk_img custom.img --size 128M" - echo - echo -e "${YELLOW}💡 其他示例:${NC}" - echo " $0 defconfig" - echo " $0 clippy aarch64" - echo " $0 disk_img custom-disk.img" - echo " $0 dev-build" } # 显示项目状态 @@ -380,19 +366,6 @@ rebuild_venv() { success "虚拟环境重建完成" } -# 开发者快捷方式 -dev_build() { - step "开发构建 (setup + build)..." - setup_environment - run_python_task build "$@" -} - -dev_run() { - step "开发运行 (setup + run)..." - setup_environment - run_python_task run "$@" -} - # 设置完整的开发环境 setup_environment() { step "设置开发环境..." @@ -455,30 +428,11 @@ main() { "disk_img") run_python_task disk_img "$@" ;; - - # 快捷方式 - "quick-build") - ensure_config - step "快速构建 (默认平台)..." - run_python_task build --plat aarch64-generic - ;; - "quick-run") - ensure_config - step "快速运行 (默认配置)..." - run_python_task run --plat aarch64-generic - ;; - "dev-build") - ensure_config - dev_build "$@" - ;; - "dev-run") - ensure_config - dev_run "$@" - ;; - - # 其他 task.py 支持的命令 - 直接透传 - "config"|"test"|"format"|"doc") - run_python_task "$cmd" "$@" + "dev-env") + step "设置开发环境..." + setup_venv + source "$VENV_DIR/bin/activate" + python3 scripts/dev_env.py "$@" ;; # 未知命令 diff --git a/tool/conn_2_serial.sh b/scripts/conn_2_serial.sh similarity index 100% rename from tool/conn_2_serial.sh rename to scripts/conn_2_serial.sh diff --git a/scripts/dev_env.py b/scripts/dev_env.py new file mode 100755 index 00000000..5064220d --- /dev/null +++ b/scripts/dev_env.py @@ -0,0 +1,40 @@ +#!/usr/bin/env python3 +import os +import subprocess + + +def main(): + subprocess.run("cargo install cargo-lpatch", shell=True, check=True) + + # 克隆其他仓库到 crates 目录 + repos = [ + "axvm", + "axvcpu", + "axaddrspace", + "arm_vcpu", + "axdevice", + "arm_vgic", + "axhvc", + ] + + for one in repos: + subprocess.run(f"cargo lpatch -n {one}", shell=True, check=True) + + # 创建 .vscode 目录并生成 settings.json + os.makedirs(".vscode", exist_ok=True) + with open(".vscode/settings.json", "w") as settings_json: + settings_json.write( + """ +{ + "rust-analyzer.cargo.target": "aarch64-unknown-none-softfloat", + "rust-analyzer.check.allTargets": false, + "rust-analyzer.cargo.features": ["fs"], +} + """ + ) + + print("patch success") + + +if __name__ == "__main__": + main() diff --git a/tool/dev_env.py b/tool/dev_env.py deleted file mode 100755 index 2dd2a40b..00000000 --- a/tool/dev_env.py +++ /dev/null @@ -1,107 +0,0 @@ -#!/usr/bin/env python3 -import os -import subprocess -import argparse - - -def main(): - # 创建 ArgumentParser 对象 - parser = argparse.ArgumentParser(description="Development environment setup script") - - parser.add_argument( - "--repo", - type=str, - default="git@github.com:arceos-hypervisor", - help="Specify the repo to use", - ) - - # 解析命令行参数 - args = parser.parse_args() - - repo = args.repo - - # 使用 branch 参数 - print(f"Using: {repo} ") - - # 创建 crates 目录 - os.makedirs("crates", exist_ok=True) - - # 克隆其他仓库到 crates 目录 - repos = [ - "arceos", - "axvm", - "axvcpu", - "axaddrspace", - "arm_vcpu", - "axdevice", - "arm_vgic", - "arm_gicv2", - "axdevice_crates", - "axhvc", - ] - - for one in repos: - p = f"{repo}/{one}.git" - print(f"clone {p}") - subprocess.run( - ["git", "clone", p, f"crates/{one}"], - check=True, - ) - - print("clone success") - - cargo_toml = "" - - with open("Cargo.toml", "r") as file: - cargo_toml = file.read() - - os.rename("Cargo.toml", "Cargo.toml.bk") - - cargo_toml += """ - -[patch."https://github.com/arceos-hypervisor/arceos.git".axstd] -path = "crates/arceos/ulib/axstd" -[patch."https://github.com/arceos-hypervisor/arceos.git".axhal] -path = "crates/arceos/modules/axhal" -[patch."https://github.com/arceos-hypervisor/axvm.git".axvm] -path = "crates/axvm" -[patch."https://github.com/arceos-hypervisor/axvcpu.git".axvcpu] -path = "crates/axvcpu" -[patch."https://github.com/arceos-hypervisor/axaddrspace.git".axaddrspace] -path = "crates/axaddrspace" -[patch."https://github.com/arceos-hypervisor/arm_vcpu.git".arm_vcpu] -path = "crates/arm_vcpu" -[patch."https://github.com/arceos-hypervisor/axdevice.git".axdevice] -path = "crates/axdevice" -[patch."https://github.com/arceos-hypervisor/arm_vgic.git".arm_vgic] -path = "crates/arm_vgic" -[patch."https://github.com/arceos-hypervisor/axdevice_crates.git".axdevice_base] -path = "crates/axdevice_crates/axdevice_base" -[patch."https://github.com/arceos-hypervisor/arm_gicv2.git".arm_gicv2] -path = "crates/arm_gicv2" -""" - - with open("Cargo.toml", "w") as file: - file.write(cargo_toml) - - # 创建 .vscode 目录并生成 settings.json - os.makedirs(".vscode", exist_ok=True) - with open(".vscode/settings.json", "w") as settings_json: - settings_json.write( - """ -{ - "rust-analyzer.cargo.target": "aarch64-unknown-none-softfloat", - "rust-analyzer.check.allTargets": false, - "rust-analyzer.cargo.features": ["fs"], - "rust-analyzer.cargo.extraEnv": { - "AX_CONFIG_PATH": "${workspaceFolder}/.axconfig.toml" - } -} - """ - ) - - print("patch success") - - -if __name__ == "__main__": - main() From e82b036bf8ce0184d7f5b451a32b07721e844820 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E7=9D=BF?= Date: Mon, 8 Sep 2025 16:45:51 +0800 Subject: [PATCH 170/219] refactor: mv old doc --- Boot-on-qemu.md => doc/old/Boot-on-qemu.md | 0 Boot-on-rk3588.md => doc/old/Boot-on-rk3588.md | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename Boot-on-qemu.md => doc/old/Boot-on-qemu.md (100%) rename Boot-on-rk3588.md => doc/old/Boot-on-rk3588.md (100%) diff --git a/Boot-on-qemu.md b/doc/old/Boot-on-qemu.md similarity index 100% rename from Boot-on-qemu.md rename to doc/old/Boot-on-qemu.md diff --git a/Boot-on-rk3588.md b/doc/old/Boot-on-rk3588.md similarity index 100% rename from Boot-on-rk3588.md rename to doc/old/Boot-on-rk3588.md From c6b30472544000caf935f91afe3fb1adc7bc4a64 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E7=9D=BF?= Date: Mon, 8 Sep 2025 16:46:59 +0800 Subject: [PATCH 171/219] update --- Cargo.lock | 15 +++++++-------- Cargo.toml | 7 ------- 2 files changed, 7 insertions(+), 15 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 643a4c67..1bb4ddab 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -240,6 +240,8 @@ checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" [[package]] name = "axaddrspace" version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e86bea69b4b98f2aba53da737bc4ed996bd9192f8eda0c32022b042b5c74d67" dependencies = [ "axerrno", "bit_field", @@ -347,6 +349,7 @@ dependencies = [ [[package]] name = "axdevice" version = "0.1.0" +source = "git+https://github.com/arceos-hypervisor/axdevice.git#c4a0965ca45a3b9a34845fa774b1bd90fc8f4573" dependencies = [ "arm_vgic", "axaddrspace", @@ -536,6 +539,7 @@ dependencies = [ [[package]] name = "axhvc" version = "0.1.0" +source = "git+https://github.com/arceos-hypervisor/axhvc.git#e4ca6f919b9900f35e42b9b30863550a50432220" dependencies = [ "axerrno", "numeric-enum-macro", @@ -867,6 +871,8 @@ dependencies = [ [[package]] name = "axvcpu" version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cefe761786c0c69a7c0eaf45602c460f721bce9d8b8decc4f733b488e9da657f" dependencies = [ "axaddrspace", "axerrno", @@ -942,6 +948,7 @@ dependencies = [ [[package]] name = "axvm" version = "0.1.0" +source = "git+https://github.com/arceos-hypervisor/axvm.git?branch=dev-irq#12a4faa38594b815f1d69a06ae5451311682745c" dependencies = [ "arm_vcpu", "arm_vgic", @@ -4498,11 +4505,3 @@ dependencies = [ "quote", "syn 2.0.106", ] - -[[patch.unused]] -name = "arm_vcpu" -version = "0.1.1" - -[[patch.unused]] -name = "arm_vgic" -version = "0.1.0" diff --git a/Cargo.toml b/Cargo.toml index 084ecbb1..08b7e2b9 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -72,10 +72,3 @@ prettyplease = "0.2" quote = "1.0" syn = "2.0" toml = {version = "0.9"} - -# [patch.crates-io.axcpu] -# branch = "vmm" -# git = "https://github.com/arceos-hypervisor/axcpu" - -# [patch.crates-io.axaddrspace] -# git = "https://github.com/arceos-hypervisor/axaddrspace" From cc34350f9abee571c3b45760cce3f5143006f63d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E7=9D=BF?= Date: Mon, 8 Sep 2025 17:01:58 +0800 Subject: [PATCH 172/219] update: lock --- Cargo.lock | 73 ++++++++++++++++++++++++++---------------------------- 1 file changed, 35 insertions(+), 38 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 1bb4ddab..40fcebe4 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -190,6 +190,25 @@ dependencies = [ "spin 0.10.0", ] +[[package]] +name = "arm_vgic" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "80f576b11b486e2ca12373c8205c4a06473a85cf7a664845e5961c47948910c3" +dependencies = [ + "aarch64-cpu", + "aarch64_sysreg", + "axaddrspace", + "axdevice_base", + "axerrno", + "axvisor_api", + "bitmaps", + "log", + "memory_addr", + "spin 0.9.8", + "tock-registers 0.10.0", +] + [[package]] name = "arm_vgic" version = "0.1.0" @@ -323,35 +342,12 @@ dependencies = [ "x86_64", ] -[[package]] -name = "axcpu" -version = "0.2.2" -source = "git+https://github.com/arceos-hypervisor/axcpu?branch=vmm#b318d841e1747b932207ca782d773472abe46683" -dependencies = [ - "aarch64-cpu", - "cfg-if", - "lazyinit", - "linkme", - "log", - "loongArch64", - "memory_addr", - "page_table_entry", - "page_table_multiarch", - "paste", - "percpu", - "riscv", - "static_assertions", - "tock-registers 0.9.0", - "x86", - "x86_64", -] - [[package]] name = "axdevice" version = "0.1.0" source = "git+https://github.com/arceos-hypervisor/axdevice.git#c4a0965ca45a3b9a34845fa774b1bd90fc8f4573" dependencies = [ - "arm_vgic", + "arm_vgic 0.1.0 (git+https://github.com/arceos-hypervisor/arm_vgic.git)", "axaddrspace", "axdevice_base", "axerrno", @@ -518,7 +514,7 @@ dependencies = [ "aarch64-cpu", "axalloc", "axconfig", - "axcpu 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", + "axcpu", "axlog", "axplat 0.2.0", "axplat-aarch64-qemu-virt", @@ -629,7 +625,7 @@ dependencies = [ "any-uart", "arm-gic-driver", "axconfig-macros", - "axcpu 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", + "axcpu", "axplat 0.2.0", "fdt-parser", "heapless 0.8.0", @@ -665,7 +661,7 @@ dependencies = [ "arm-gic-driver", "arm_pl011", "arm_pl031", - "axcpu 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", + "axcpu", "axplat 0.2.0", "int_ratio", "kspin", @@ -682,7 +678,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6f03bfe81ebc5b2f567eecadcab221107b90f394485dd0da39334411a676d81a" dependencies = [ "axconfig-macros", - "axcpu 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", + "axcpu", "axplat 0.2.0", "axplat-aarch64-peripherals", "log", @@ -696,7 +692,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8c404064c74824b2c509e1d84f2ae0cbd9240a3274fb4053dc81b9ad120b5962" dependencies = [ "axconfig-macros", - "axcpu 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", + "axcpu", "axplat 0.2.0", "kspin", "lazyinit", @@ -734,7 +730,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b8d95d76dfa65d75d07380ac13692c3b0c5bd6ae5b68df7bbede1f2e7181027a" dependencies = [ "axconfig-macros", - "axcpu 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", + "axcpu", "axplat 0.2.0", "log", "riscv", @@ -747,7 +743,7 @@ version = "0.1.1" source = "git+https://github.com/arceos-hypervisor/axplat_crates.git?branch=vmm#ea596c55acaf25401fe905307d7cae2cf39030e8" dependencies = [ "axconfig-macros", - "axcpu 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", + "axcpu", "axplat 0.1.0", "bitflags 2.9.4", "heapless 0.8.0", @@ -771,7 +767,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4aef32b01b5b7e87e9f69933b64b704bc5d731adda2cdd24fc0a29cf0c359211" dependencies = [ "axconfig-macros", - "axcpu 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", + "axcpu", "axplat 0.2.0", "bitflags 2.9.4", "heapless 0.9.1", @@ -948,12 +944,12 @@ dependencies = [ [[package]] name = "axvm" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/axvm.git?branch=dev-irq#12a4faa38594b815f1d69a06ae5451311682745c" +source = "git+https://github.com/arceos-hypervisor/axvm.git?branch=dev-irq#51e7c7d204ef6ae9d0d7e9e3286a4aee9320e7e6" dependencies = [ "arm_vcpu", - "arm_vgic", + "arm_vgic 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "axaddrspace", - "axcpu 0.2.2 (git+https://github.com/arceos-hypervisor/axcpu?branch=vmm)", + "axcpu", "axdevice", "axdevice_base", "axerrno", @@ -1171,9 +1167,9 @@ checksum = "2fd1289c04a9ea8cb22300a459a72a385d7c73d3259e2ed7dcb2af674838cfa9" [[package]] name = "chrono" -version = "0.4.41" +version = "0.4.42" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c469d952047f47f91b68d1cba3f10d63c11d73e4636f24f08daf0278abf01c4d" +checksum = "145052bdd345b87320e369255277e3fb5152762ad123a901ef5c262dd38fe8d2" dependencies = [ "num-traits", ] @@ -2961,7 +2957,8 @@ checksum = "8188909339ccc0c68cfb5a04648313f09621e8b87dc03095454f1a11f6c5d436" [[package]] name = "riscv_vcpu" version = "0.1.1" -source = "git+https://github.com/arceos-hypervisor/riscv_vcpu.git#459a7f6a33b6417d0a0146746de7b263d2af3778" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ccf4595e85fcda1a5a92f564a67c9ff8ae55dbf85e1fa00ca29eeaeec4f8ec4a" dependencies = [ "axaddrspace", "axerrno", From 69162f857c0c1e11e08812423f238967feaafdab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E7=9D=BF?= Date: Tue, 9 Sep 2025 10:15:45 +0800 Subject: [PATCH 173/219] doc: add nimbos --- Cargo.lock | 69 ++++----- README.md | 28 +++- README_CN.md | 27 +++- scripts/nimbos.sh | 356 ++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 436 insertions(+), 44 deletions(-) create mode 100755 scripts/nimbos.sh diff --git a/Cargo.lock b/Cargo.lock index 40fcebe4..44889dcb 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -516,11 +516,11 @@ dependencies = [ "axconfig", "axcpu", "axlog", - "axplat 0.2.0", + "axplat 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "axplat-aarch64-qemu-virt", "axplat-loongarch64-qemu-virt", "axplat-riscv64-qemu-virt", - "axplat-x86-pc 0.2.0", + "axplat-x86-pc 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "cfg-if", "heapless 0.8.0", "kernel_guard", @@ -588,10 +588,11 @@ dependencies = [ [[package]] name = "axplat" -version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/axplat_crates.git?branch=vmm#ea596c55acaf25401fe905307d7cae2cf39030e8" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4de04c54b63bf2ca1ff202733d2516da49d7779649cdb2f9c4ecf22909e6810" dependencies = [ - "axplat-macros 0.1.0 (git+https://github.com/arceos-hypervisor/axplat_crates.git?branch=vmm)", + "axplat-macros 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "bitflags 2.9.4", "const-str", "crate_interface", @@ -603,10 +604,9 @@ dependencies = [ [[package]] name = "axplat" version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4de04c54b63bf2ca1ff202733d2516da49d7779649cdb2f9c4ecf22909e6810" +source = "git+https://github.com/arceos-hypervisor/axplat_crates.git?branch=vmm#c38bbc1d58733ca0c90256000f9a900917f255c8" dependencies = [ - "axplat-macros 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "axplat-macros 0.1.0 (git+https://github.com/arceos-hypervisor/axplat_crates.git?branch=vmm)", "bitflags 2.9.4", "const-str", "crate_interface", @@ -626,7 +626,7 @@ dependencies = [ "arm-gic-driver", "axconfig-macros", "axcpu", - "axplat 0.2.0", + "axplat 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "fdt-parser", "heapless 0.8.0", "lazyinit", @@ -662,7 +662,7 @@ dependencies = [ "arm_pl011", "arm_pl031", "axcpu", - "axplat 0.2.0", + "axplat 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "int_ratio", "kspin", "lazyinit", @@ -679,7 +679,7 @@ checksum = "6f03bfe81ebc5b2f567eecadcab221107b90f394485dd0da39334411a676d81a" dependencies = [ "axconfig-macros", "axcpu", - "axplat 0.2.0", + "axplat 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "axplat-aarch64-peripherals", "log", "page_table_entry", @@ -693,7 +693,7 @@ checksum = "8c404064c74824b2c509e1d84f2ae0cbd9240a3274fb4053dc81b9ad120b5962" dependencies = [ "axconfig-macros", "axcpu", - "axplat 0.2.0", + "axplat 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "kspin", "lazyinit", "log", @@ -716,7 +716,7 @@ dependencies = [ [[package]] name = "axplat-macros" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/axplat_crates.git?branch=vmm#ea596c55acaf25401fe905307d7cae2cf39030e8" +source = "git+https://github.com/arceos-hypervisor/axplat_crates.git?branch=vmm#c38bbc1d58733ca0c90256000f9a900917f255c8" dependencies = [ "proc-macro2", "quote", @@ -731,7 +731,7 @@ checksum = "b8d95d76dfa65d75d07380ac13692c3b0c5bd6ae5b68df7bbede1f2e7181027a" dependencies = [ "axconfig-macros", "axcpu", - "axplat 0.2.0", + "axplat 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "log", "riscv", "sbi-rt", @@ -739,14 +739,15 @@ dependencies = [ [[package]] name = "axplat-x86-pc" -version = "0.1.1" -source = "git+https://github.com/arceos-hypervisor/axplat_crates.git?branch=vmm#ea596c55acaf25401fe905307d7cae2cf39030e8" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4aef32b01b5b7e87e9f69933b64b704bc5d731adda2cdd24fc0a29cf0c359211" dependencies = [ "axconfig-macros", "axcpu", - "axplat 0.1.0", + "axplat 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "bitflags 2.9.4", - "heapless 0.8.0", + "heapless 0.9.1", "int_ratio", "kspin", "lazyinit", @@ -754,7 +755,7 @@ dependencies = [ "multiboot", "percpu", "raw-cpuid 11.6.0", - "uart_16550 0.3.2", + "uart_16550", "x2apic", "x86", "x86_64", @@ -763,12 +764,11 @@ dependencies = [ [[package]] name = "axplat-x86-pc" version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4aef32b01b5b7e87e9f69933b64b704bc5d731adda2cdd24fc0a29cf0c359211" +source = "git+https://github.com/arceos-hypervisor/axplat_crates.git?branch=vmm#c38bbc1d58733ca0c90256000f9a900917f255c8" dependencies = [ "axconfig-macros", "axcpu", - "axplat 0.2.0", + "axplat 0.2.0 (git+https://github.com/arceos-hypervisor/axplat_crates.git?branch=vmm)", "bitflags 2.9.4", "heapless 0.9.1", "int_ratio", @@ -778,7 +778,7 @@ dependencies = [ "multiboot", "percpu", "raw-cpuid 11.6.0", - "uart_16550 0.4.0", + "uart_16550", "x2apic", "x86", "x86_64", @@ -788,7 +788,7 @@ dependencies = [ name = "axplat-x86-qemu-q35" version = "0.1.0" dependencies = [ - "axplat-x86-pc 0.1.1", + "axplat-x86-pc 0.2.0 (git+https://github.com/arceos-hypervisor/axplat_crates.git?branch=vmm)", ] [[package]] @@ -804,7 +804,7 @@ dependencies = [ "axhal", "axlog", "axmm", - "axplat 0.2.0", + "axplat 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "axtask", "chrono", "crate_interface", @@ -2015,9 +2015,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.11.0" +version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2481980430f9f78649238835720ddccc57e52df14ffce1c6f37391d61b563e9" +checksum = "206a8042aec68fa4a62e8d3f7aa4ceb508177d9324faf261e1959e495b7a1921" dependencies = [ "equivalent", "hashbrown", @@ -2956,9 +2956,9 @@ checksum = "8188909339ccc0c68cfb5a04648313f09621e8b87dc03095454f1a11f6c5d436" [[package]] name = "riscv_vcpu" -version = "0.1.1" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccf4595e85fcda1a5a92f564a67c9ff8ae55dbf85e1fa00ca29eeaeec4f8ec4a" +checksum = "13f38f28fe6c02bb3ced43087c9667b23d18adf729becdc5adf1253f7df83904" dependencies = [ "axaddrspace", "axerrno", @@ -3801,17 +3801,6 @@ version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bc7d623258602320d5c55d1bc22793b57daff0ec7efc270ea7d55ce1d5f5471c" -[[package]] -name = "uart_16550" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e492212ac378a5e00da953718dafb1340d9fbaf4f27d6f3c5cab03d931d1c049" -dependencies = [ - "bitflags 2.9.4", - "rustversion", - "x86", -] - [[package]] name = "uart_16550" version = "0.4.0" diff --git a/README.md b/README.md index 6cc87516..efd70abe 100644 --- a/README.md +++ b/README.md @@ -76,12 +76,36 @@ In addition, you can use the [axvmconfig](https://github.com/arceos-hypervisor/a ## Load and run from file system +### NimbOS as guest (x86_64) + +1. Execute script to download and prepare NimbOS image. + + ```shell + ./scripts/nimbos.sh --arch x86_64 + ``` + +2. Execute `./axvisor.sh defconfig` to set up the development environment and generate AxVisor config `.hvconfig.toml`. + +3. Edit the `.hvconfig.toml` file to set the `vmconfigs` item to the path of your guest configuration file, for example: + + ```toml + plat = "x86-qemu-q35" + features = ["fs"] + arceos_args = [ "BLK=y", "DISK_IMG=tmp/nimbos-x86_64.img", "LOG=warn"] + vmconfigs = [ "configs/vms/nimbos-x86_64.toml",] + + ``` + +4. Execute `./axvisor.sh run` to build AxVisor and start it in QEMU. + +### ArceOS as guest + 1. Build a client image file suitable for your own architecture. Taking the ArceOS mainline code as an example, run `make PLATFORM=aarch64-qemu-virt SMP=1 A=examples/helloworld` to generate `helloworld_aarch64-qemu-virt.bin`. 2. Create a disk image file and place the guest machine image into the file system. - 1. Use the `./axvisor.sh disk_img` command to generate an empty FAT32 disk image file named `disk.img`. - 2. Manually mount `disk.img`, and then place your guest machine image into the file system. + - Use the `./axvisor.sh disk_img` command to generate an empty FAT32 disk image file named `disk.img`. + - Manually mount `disk.img`, and then place your guest machine image into the file system. ```console mkdir -p tmp/tmp_img diff --git a/README_CN.md b/README_CN.md index 75ec1c75..35438eb3 100644 --- a/README_CN.md +++ b/README_CN.md @@ -76,12 +76,35 @@ cargo install cargo-binutils ## 从文件系统加载运行 +### 使用 NimbOS 作为 x86_64 客户机 + +1. 执行仓库内的脚本下载并准备 NimbOS 镜像(x86_64): + + ```bash + ./scripts/nimbos.sh --arch x86_64 + ``` + +2. 执行 `./axvisor.sh defconfig` 以设置开发环境并生成 AxVisor 配置文件 `.hvconfig.toml`。 + +3. 编辑生成的 `.hvconfig.toml`,将 `vmconfigs` 项设置为指向 NimbOS 的客户机配置文件,例如: + + ```toml + plat = "x86-qemu-q35" + features = ["fs"] + arceos_args = [ "BLK=y", "DISK_IMG=tmp/nimbos-x86_64.img", "LOG=warn"] + vmconfigs = [ "configs/vms/nimbos-x86_64.toml",] + ``` + +4. 执行 `./axvisor.sh run` 构建 AxVisor 并在 QEMU 中启动 NimbOS 客户机。 + +### 通用:从文件系统加载其他客户机镜像的步骤 + 1. 构建适用于自己架构的客户机镜像文件。以 ArceOS 主线代码为例,执行 `make PLATFORM=aarch64-qemu-virt SMP=1 A=examples/helloworld` 获取 `helloworld_aarch64-qemu-virt.bin` 2. 制作一个磁盘镜像文件,并将客户机镜像放到文件系统中 - 1. 使用 `./axvisor.sh disk_img` 命令生成一个空的 FAT32 磁盘镜像文件 `disk.img` - 2. 手动挂载 `disk.img`,然后将自己的客户机镜像复制到该文件系统中 + - 使用 `./axvisor.sh disk_img` 命令生成一个空的 FAT32 磁盘镜像文件 `disk.img` + - 手动挂载 `disk.img`,然后将自己的客户机镜像复制到该文件系统中 ```bash mkdir -p tmp/tmp_img diff --git a/scripts/nimbos.sh b/scripts/nimbos.sh new file mode 100755 index 00000000..580af435 --- /dev/null +++ b/scripts/nimbos.sh @@ -0,0 +1,356 @@ +#!/bin/bash +# -*- coding: utf-8 -*- + +# NimbOS 镜像制作脚本 +# 参照 .github/workflows/actions/setup-nimbos-guest-image/action.yml 实现 + +set -e + +# 获取脚本所在目录 +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +# 推算项目根目录(假设脚本在 scripts/ 目录下) +WORKDIR="$(cd "$SCRIPT_DIR/.." && pwd)" + +# 颜色定义 +RED='\033[0;31m' +GREEN='\033[0;32m' +YELLOW='\033[1;33m' +BLUE='\033[0;34m' +CYAN='\033[0;36m' +NC='\033[0m' # No Color + +# 输出函数 +info() { echo -e "${BLUE}ℹ️${NC} $*"; } +success() { echo -e "${GREEN}✅${NC} $*"; } +warning() { echo -e "${YELLOW}⚠️${NC} $*"; } +error() { echo -e "${RED}❌${NC} $*"; } +step() { echo -e "${CYAN}🚀${NC} $*"; } + +# 错误处理 +handle_error() { + error "脚本失败: $1" + exit 1 +} + +trap 'handle_error "脚本执行中断"' ERR + +# 默认配置 + +DEFAULT_ARCH="aarch64" +DEFAULT_VERSION="latest" +DISK_PATH="" +ZIP_PATH="" +UNZIP_PATH="" +BIOS_PATH="" +DEFAULT_REPO="arceos-hypervisor/nimbos" +DEFAULT_BIOS_VERSION="latest" +DEFAULT_BIOS_REPO="arceos-hypervisor/axvm-bios-x86" + + +# 解析命令行参数 +parse_args() { + ARCH="$DEFAULT_ARCH" + VERSION="$DEFAULT_VERSION" + REPO="$DEFAULT_REPO" + BIOS_VERSION="$DEFAULT_BIOS_VERSION" + BIOS_REPO="$DEFAULT_BIOS_REPO" + + while [[ $# -gt 0 ]]; do + case $1 in + --arch) + ARCH="$2" + shift 2 + ;; + --version) + VERSION="$2" + shift 2 + ;; + --repo) + REPO="$2" + shift 2 + ;; + --bios-version) + BIOS_VERSION="$2" + shift 2 + ;; + --bios-repo) + BIOS_REPO="$2" + shift 2 + ;; + --help|-h) + show_help + exit 0 + ;; + *) + error "未知参数: $1" + show_help + exit 1 + ;; + esac + done + + # 验证必需参数 + if [[ -z "$ARCH" ]]; then + error "--arch 参数是必需的" + show_help + exit 1 + fi + + DISK_PATH="${WORKDIR}/tmp/nimbos-${ARCH}.img" + ZIP_PATH="${WORKDIR}/tmp/${ARCH}_usertests.zip" + UNZIP_PATH="${WORKDIR}/tmp/nimbos-${ARCH}" + BIOS_PATH="${WORKDIR}/tmp/axvm-bios.bin" +} + +# 显示帮助信息 +show_help() { + echo -e "${CYAN}🔧 NimbOS 镜像制作工具${NC}" + echo + echo -e "${YELLOW}📋 用法:${NC} $0 --arch <架构> [选项...]" + echo + echo -e "${YELLOW}⚙️ 必需参数:${NC}" + echo " --arch <架构> - 目标架构 (例如: x86_64, aarch64)" + echo + echo -e "${YELLOW}🔧 可选参数:${NC}" + echo " --version <版本> - NimbOS 版本 (默认: $DEFAULT_VERSION)" + echo " --disk-path <路径> - 磁盘镜像输出路径 (默认: $DEFAULT_DISK_PATH)" + echo " --repo <仓库> - NimbOS GitHub 仓库 (默认: $DEFAULT_REPO)" + echo " --bios-version <版本> - BIOS 版本 (仅 x86_64, 默认: $DEFAULT_BIOS_VERSION)" + echo " --bios-repo <仓库> - BIOS GitHub 仓库 (仅 x86_64, 默认: $DEFAULT_BIOS_REPO)" + echo " --help, -h - 显示此帮助信息" + echo + echo -e "${YELLOW}📚 示例:${NC}" + echo " $0 --arch x86_64" + echo " $0 --arch x86_64 --version v1.0.0 --disk-path custom.img" + echo " $0 --arch aarch64 --repo myorg/nimbos" +} + +# 检查依赖 +check_dependencies() { + local missing_deps=() + + if ! command -v curl >/dev/null 2>&1; then + missing_deps+=("curl") + fi + + if ! command -v jq >/dev/null 2>&1; then + missing_deps+=("jq") + fi + + if ! command -v unzip >/dev/null 2>&1; then + missing_deps+=("unzip") + fi + + if [[ ${#missing_deps[@]} -gt 0 ]]; then + error "缺少必要依赖: ${missing_deps[*]}" + info "请安装缺少的依赖后重试" + exit 1 + fi +} + +# 创建临时目录 +setup_temp_dir() { + step "创建临时目录..." + mkdir -p "$WORKDIR/tmp" + success "临时目录创建完成" +} + +# 下载 NimbOS +download_nimbos() { + step "下载 NimbOS ($ARCH, 版本: $VERSION)..." + + # 构建 GitHub API URL + if [[ "$VERSION" == "latest" ]]; then + RELEASE_URL="https://api.github.com/repos/$REPO/releases/latest" + else + RELEASE_URL="https://api.github.com/repos/$REPO/releases/tags/$VERSION" + fi + + # 获取 asset 下载 URL + ASSET_NAME="${ARCH}_usertests.zip" + # 先尝试获取 asset 的信息(包括 browser_download_url, size, label, name) + ASSET_JSON=$(curl -s "$RELEASE_URL" | jq -r ".assets[] | select(.name == \"$ASSET_NAME\") | {url:.browser_download_url, size:.size, name:.name, sha256:(.label // null)}") + + if [[ -z "$ASSET_JSON" || "$ASSET_JSON" == "null" ]]; then + error "在版本 $VERSION 中未找到资源 $ASSET_NAME" + exit 1 + fi + + ASSET_URL=$(echo "$ASSET_JSON" | jq -r '.url') + ASSET_SIZE=$(echo "$ASSET_JSON" | jq -r '.size') + ASSET_LABEL=$(echo "$ASSET_JSON" | jq -r '.sha256') + + # 判断是否需要下载:文件不存在,或 size/sha256 与远端不一致 + need_download=0 + if [[ ! -f "$ZIP_PATH" ]]; then + need_download=1 + info "$ASSET_NAME 不存在,准备下载" + else + # 如果 release 的 label 中包含 sha256(我们尝试使用 label 字段存放 checksum),则优先比对 sha256 + if [[ "$ASSET_LABEL" != "null" && "$ASSET_LABEL" != "" ]]; then + # 期望 label 中为 sha256:abcdef... 或 直接 sha256 + expected_sha="$ASSET_LABEL" + # 如果 label 以 "sha256:" 开头,去掉前缀 + expected_sha=${expected_sha#sha256:} + actual_sha=$(sha256sum "$ZIP_PATH" | awk '{print $1}' 2>/dev/null || true) + if [[ "$actual_sha" != "$expected_sha" ]]; then + info "$ASSET_NAME 本地 sha256 与发布不一致,准备重新下载" + need_download=1 + else + success "$ASSET_NAME 本地 sha256 校验通过,跳过下载" + fi + else + # 回退为按文件大小比对(不可靠但可用) + actual_size=$(stat -c%s "$ZIP_PATH" 2>/dev/null || true) + if [[ "$actual_size" != "$ASSET_SIZE" ]]; then + info "$ASSET_NAME 本地大小 ($actual_size) 与发布大小 ($ASSET_SIZE) 不一致,准备重新下载" + need_download=1 + else + success "$ASSET_NAME 本地大小匹配,跳过下载" + fi + fi + fi + + if [[ $need_download -eq 1 ]]; then + info "下载 $ASSET_NAME..." + curl -L -o "$ZIP_PATH" "$ASSET_URL" + success "NimbOS 下载完成" + fi +} + +# 解压 NimbOS +extract_nimbos() { + step "解压 NimbOS..." + + rm -rf "$UNZIP_PATH" + mkdir -p "$UNZIP_PATH" + unzip "$ZIP_PATH" -d "$UNZIP_PATH" + + success "NimbOS 解压完成" +} + +# 下载 BIOS (仅 x86_64) +download_bios() { + # 只在 x86_64 架构下载 BIOS + if [[ "$ARCH" != "x86_64" ]]; then + info "非 x86_64 架构,跳过 BIOS 下载" + return 0 + fi + + step "下载 BIOS (版本: $BIOS_VERSION)..." + + if [[ "$BIOS_VERSION" == "latest" ]]; then + BIOS_RELEASE_URL="https://api.github.com/repos/$BIOS_REPO/releases/latest" + else + BIOS_RELEASE_URL="https://api.github.com/repos/$BIOS_REPO/releases/tags/$BIOS_VERSION" + fi + + # 尝试从 release 里读取 asset 的信息(可能包含 size 或 label 用于 checksum) + BIOS_ASSET_JSON=$(curl -s "$BIOS_RELEASE_URL" | jq -r ".assets[] | select(.name == \"axvm-bios.bin\") | {url:.browser_download_url, size:.size, sha256:(.label // null)}") + + if [[ -z "$BIOS_ASSET_JSON" || "$BIOS_ASSET_JSON" == "null" ]]; then + error "未找到 BIOS 资源" + exit 1 + fi + + BIOS_ASSET_URL=$(echo "$BIOS_ASSET_JSON" | jq -r '.url') + BIOS_ASSET_SIZE=$(echo "$BIOS_ASSET_JSON" | jq -r '.size') + BIOS_ASSET_LABEL=$(echo "$BIOS_ASSET_JSON" | jq -r '.sha256') + + need_download=0 + if [[ ! -f "$BIOS_PATH" ]]; then + need_download=1 + info "BIOS 文件不存在,准备下载" + else + if [[ "$BIOS_ASSET_LABEL" != "null" && "$BIOS_ASSET_LABEL" != "" ]]; then + expected_sha=${BIOS_ASSET_LABEL#sha256:} + actual_sha=$(sha256sum "$BIOS_PATH" | awk '{print $1}' 2>/dev/null || true) + if [[ "$actual_sha" != "$expected_sha" ]]; then + info "BIOS 本地 sha256 与发布不一致,准备重新下载" + need_download=1 + else + success "BIOS 本地 sha256 校验通过,跳过下载" + fi + else + actual_size=$(stat -c%s "$BIOS_PATH" 2>/dev/null || true) + if [[ "$actual_size" != "$BIOS_ASSET_SIZE" ]]; then + info "BIOS 本地大小 ($actual_size) 与发布大小 ($BIOS_ASSET_SIZE) 不一致,准备重新下载" + need_download=1 + else + success "BIOS 本地大小匹配,跳过下载" + fi + fi + fi + + if [[ $need_download -eq 1 ]]; then + info "下载 axvm-bios.bin..." + curl -L -o "$BIOS_PATH" "$BIOS_ASSET_URL" + success "BIOS 下载完成" + fi +} + +# 创建磁盘镜像 +create_disk_image() { + step "创建磁盘镜像: $DISK_PATH" + + if [[ ! -f "$WORKDIR/axvisor.sh" ]]; then + error "axvisor.sh 脚本不存在,请确保脚本在正确位置" + exit 1 + fi + + "$WORKDIR/axvisor.sh" disk_img --image "$WORKDIR/tmp/nimbos-${ARCH}.img" + + success "磁盘镜像创建完成" +} + +# 挂载镜像并复制文件 +mount_and_copy() { + step "挂载镜像并复制文件..." + + sudo rm -rf "$WORKDIR/tmp/img" + sudo mkdir -p "$WORKDIR/tmp/img" + sudo chown -R root:root "$WORKDIR/tmp/img" + sudo mount "$WORKDIR/tmp/nimbos-${ARCH}.img" "$WORKDIR/tmp/img" + sudo cp "${UNZIP_PATH}/nimbos.bin" "$WORKDIR/tmp/img/nimbos-${ARCH}.bin" + sudo chown -R root:root "$WORKDIR/tmp/img" + sudo umount "$WORKDIR/tmp/img" + + success "文件复制完成" +} + +# 清理临时文件 +cleanup() { + step "清理临时文件..." + rm -rf "$WORKDIR/tmp/img" + success "清理完成" +} + +# 主函数 +main() { + parse_args "$@" + + info "开始制作 NimbOS 镜像" + info "架构: $ARCH" + info "版本: $VERSION" + info "输出路径: $DISK_PATH" + info "工作目录: $WORKDIR" + + setup_temp_dir + download_nimbos + extract_nimbos + download_bios + create_disk_image + mount_and_copy + cleanup + + success "NimbOS 镜像制作完成: $DISK_PATH" +} + +# 脚本入口点 +if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then + # 处理中断信号 + trap 'echo -e "\n${YELLOW}用户中断操作${NC}"; exit 130' INT + + # 执行主函数 + main "$@" +fi From 8aa7cc326262bfa7c3bf2b1c88441ee0d3f98ae2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E7=9D=BF?= Date: Tue, 9 Sep 2025 11:18:41 +0800 Subject: [PATCH 174/219] modify deps --- Cargo.lock | 233 +++++++++++++++++++++++++--- Cargo.toml | 11 +- platform/aarch64-generic/src/lib.rs | 1 + platform/x86-qemu-q35/Cargo.toml | 1 - platform/x86-qemu-q35/src/lib.rs | 1 + 5 files changed, 221 insertions(+), 26 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 44889dcb..afb800df 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -173,16 +173,32 @@ dependencies = [ "chrono", ] +[[package]] +name = "arm_vcpu" +version = "0.1.1" +dependencies = [ + "aarch64-cpu", + "axaddrspace 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "axdevice_base", + "axerrno", + "axvcpu 0.1.2 (git+https://github.com/arceos-hypervisor/axvcpu.git?branch=next)", + "axvisor_api", + "log", + "numeric-enum-macro", + "percpu", + "spin 0.10.0", +] + [[package]] name = "arm_vcpu" version = "0.1.1" source = "git+https://github.com/arceos-hypervisor/arm_vcpu?branch=next-dev#c6eaba4fc0a7941b42ed2ade356a5f595baeddd3" dependencies = [ "aarch64-cpu", - "axaddrspace", + "axaddrspace 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "axdevice_base", "axerrno", - "axvcpu", + "axvcpu 0.1.1", "axvisor_api", "log", "numeric-enum-macro", @@ -190,6 +206,23 @@ dependencies = [ "spin 0.10.0", ] +[[package]] +name = "arm_vgic" +version = "0.1.0" +dependencies = [ + "aarch64-cpu", + "aarch64_sysreg", + "axaddrspace 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "axdevice_base", + "axerrno", + "axvisor_api", + "bitmaps", + "log", + "memory_addr", + "spin 0.9.8", + "tock-registers 0.10.0", +] + [[package]] name = "arm_vgic" version = "0.1.0" @@ -198,7 +231,7 @@ checksum = "80f576b11b486e2ca12373c8205c4a06473a85cf7a664845e5961c47948910c3" dependencies = [ "aarch64-cpu", "aarch64_sysreg", - "axaddrspace", + "axaddrspace 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "axdevice_base", "axerrno", "axvisor_api", @@ -216,7 +249,7 @@ source = "git+https://github.com/arceos-hypervisor/arm_vgic.git#81338d6dd8a9dab0 dependencies = [ "aarch64-cpu", "aarch64_sysreg", - "axaddrspace", + "axaddrspace 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "axdevice_base", "axerrno", "axvisor_api", @@ -233,6 +266,12 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b0f477b951e452a0b6b4a10b53ccd569042d1d01729b519e02074a9c0958a063" +[[package]] +name = "assert_matches" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b34d609dfbaf33d6889b2b7106d3ca345eacad44200913df5ba02bfd31d2ba9" + [[package]] name = "async-trait" version = "0.1.89" @@ -256,6 +295,28 @@ version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" +[[package]] +name = "axaddrspace" +version = "0.1.1" +dependencies = [ + "assert_matches", + "axerrno", + "axin", + "bit_field", + "bitflags 2.9.4", + "cfg-if", + "lazy_static", + "lazyinit", + "log", + "memory_addr", + "memory_set", + "numeric-enum-macro", + "page_table_entry", + "page_table_multiarch", + "spin 0.10.0", + "x86", +] + [[package]] name = "axaddrspace" version = "0.1.1" @@ -342,13 +403,29 @@ dependencies = [ "x86_64", ] +[[package]] +name = "axdevice" +version = "0.1.0" +dependencies = [ + "arm_vgic 0.1.0 (git+https://github.com/arceos-hypervisor/arm_vgic.git)", + "axaddrspace 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "axdevice_base", + "axerrno", + "axvmconfig", + "cfg-if", + "log", + "memory_addr", + "range-alloc", + "spin 0.9.8", +] + [[package]] name = "axdevice" version = "0.1.0" source = "git+https://github.com/arceos-hypervisor/axdevice.git#c4a0965ca45a3b9a34845fa774b1bd90fc8f4573" dependencies = [ "arm_vgic 0.1.0 (git+https://github.com/arceos-hypervisor/arm_vgic.git)", - "axaddrspace", + "axaddrspace 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "axdevice_base", "axerrno", "axvmconfig", @@ -365,7 +442,7 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "67c43baf33ed4790ffd3365c4ca027a1e3d1c2b6058f4605b67bca04cadf48d5" dependencies = [ - "axaddrspace", + "axaddrspace 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "axerrno", "axvmconfig", "cfg-if", @@ -532,6 +609,14 @@ dependencies = [ "percpu", ] +[[package]] +name = "axhvc" +version = "0.1.0" +dependencies = [ + "axerrno", + "numeric-enum-macro", +] + [[package]] name = "axhvc" version = "0.1.0" @@ -541,6 +626,18 @@ dependencies = [ "numeric-enum-macro", ] +[[package]] +name = "axin" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6db62cb7067e33d432df247b32ee450ae267cb16319c8c5de247381c3652a639" +dependencies = [ + "proc-macro-crate", + "proc-macro2", + "quote", + "syn 2.0.106", +] + [[package]] name = "axio" version = "0.1.1" @@ -782,6 +879,7 @@ dependencies = [ "x2apic", "x86", "x86_64", + "x86_rtc", ] [[package]] @@ -870,7 +968,30 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cefe761786c0c69a7c0eaf45602c460f721bce9d8b8decc4f733b488e9da657f" dependencies = [ - "axaddrspace", + "axaddrspace 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "axerrno", + "axvisor_api", + "memory_addr", + "percpu", +] + +[[package]] +name = "axvcpu" +version = "0.1.2" +dependencies = [ + "axaddrspace 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "axerrno", + "axvisor_api", + "memory_addr", + "percpu", +] + +[[package]] +name = "axvcpu" +version = "0.1.2" +source = "git+https://github.com/arceos-hypervisor/axvcpu.git?branch=next#343ec3ccf99a86fb9c67a7b0372e9b7a745f0640" +dependencies = [ + "axaddrspace 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "axerrno", "axvisor_api", "memory_addr", @@ -883,18 +1004,18 @@ version = "0.1.0" dependencies = [ "aarch64-cpu-ext", "arm-gic-driver", - "axaddrspace", + "axaddrspace 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "axconfig", - "axdevice", + "axdevice 0.1.0 (git+https://github.com/arceos-hypervisor/axdevice.git)", "axdevice_base", "axerrno", - "axhvc", + "axhvc 0.1.0 (git+https://github.com/arceos-hypervisor/axhvc.git)", "axplat-aarch64-generic", "axplat-x86-qemu-q35", "axstd", - "axvcpu", + "axvcpu 0.1.1", "axvisor_api", - "axvm", + "axvm 0.1.0 (git+https://github.com/arceos-hypervisor/axvm.git?branch=dev-irq)", "bitflags 2.9.4", "cfg-if", "cpumask", @@ -923,7 +1044,7 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aa7233b2a1338dc06a80e2779b572b4df02007ea128ef7b235b66fc3eeac0ca6" dependencies = [ - "axaddrspace", + "axaddrspace 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "axvisor_api_proc", "crate_interface", "memory_addr", @@ -941,19 +1062,44 @@ dependencies = [ "syn 2.0.106", ] +[[package]] +name = "axvm" +version = "0.1.0" +dependencies = [ + "arm_vcpu 0.1.1 (git+https://github.com/arceos-hypervisor/arm_vcpu?branch=next-dev)", + "arm_vgic 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "axaddrspace 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "axcpu", + "axdevice 0.1.0 (git+https://github.com/arceos-hypervisor/axdevice.git)", + "axdevice_base", + "axerrno", + "axvcpu 0.1.1", + "axvmconfig", + "cfg-if", + "cpumask", + "log", + "memory_addr", + "page_table_entry", + "page_table_multiarch", + "percpu", + "riscv_vcpu", + "spin 0.9.8", + "x86_vcpu 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "axvm" version = "0.1.0" source = "git+https://github.com/arceos-hypervisor/axvm.git?branch=dev-irq#51e7c7d204ef6ae9d0d7e9e3286a4aee9320e7e6" dependencies = [ - "arm_vcpu", + "arm_vcpu 0.1.1 (git+https://github.com/arceos-hypervisor/arm_vcpu?branch=next-dev)", "arm_vgic 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "axaddrspace", + "axaddrspace 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "axcpu", - "axdevice", + "axdevice 0.1.0 (git+https://github.com/arceos-hypervisor/axdevice.git)", "axdevice_base", "axerrno", - "axvcpu", + "axvcpu 0.1.1", "axvmconfig", "cfg-if", "cpumask", @@ -964,7 +1110,7 @@ dependencies = [ "percpu", "riscv_vcpu", "spin 0.9.8", - "x86_vcpu", + "x86_vcpu 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -2122,6 +2268,12 @@ dependencies = [ "kernel_guard", ] +[[package]] +name = "lazy_static" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" + [[package]] name = "lazyinit" version = "0.2.2" @@ -2960,9 +3112,9 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "13f38f28fe6c02bb3ced43087c9667b23d18adf729becdc5adf1253f7df83904" dependencies = [ - "axaddrspace", + "axaddrspace 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "axerrno", - "axvcpu", + "axvcpu 0.1.1", "axvisor_api", "bit_field", "bitflags 2.9.4", @@ -4313,16 +4465,51 @@ dependencies = [ "volatile", ] +[[package]] +name = "x86_rtc" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1a42420da20c01d82e5d42231570efa3b9e16a5515eaaf9ee4e964f49cc1313" +dependencies = [ + "cfg-if", + "x86_64", +] + +[[package]] +name = "x86_vcpu" +version = "0.1.0" +dependencies = [ + "axaddrspace 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "axdevice_base", + "axerrno", + "axvcpu 0.1.1", + "axvisor_api", + "bit_field", + "bitflags 2.9.4", + "cfg-if", + "crate_interface", + "log", + "memory_addr", + "numeric-enum-macro", + "page_table_entry", + "paste", + "raw-cpuid 11.6.0", + "spin 0.9.8", + "x86", + "x86_64", + "x86_vlapic", +] + [[package]] name = "x86_vcpu" version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "873e097d52e94c31be3f0175a9f8d6f2edbc77d7e2f8e6995427df9c08b30a2b" dependencies = [ - "axaddrspace", + "axaddrspace 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "axdevice_base", "axerrno", - "axvcpu", + "axvcpu 0.1.1", "axvisor_api", "bit_field", "bitflags 2.9.4", @@ -4346,7 +4533,7 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2556c62649a277ccf1c3c34c740be87bbde5f8dab0b20fcdcf4c2cd7bb6e7302" dependencies = [ - "axaddrspace", + "axaddrspace 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "axdevice_base", "axerrno", "axvisor_api", diff --git a/Cargo.toml b/Cargo.toml index 08b7e2b9..d756d57a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -10,13 +10,12 @@ name = "axvisor" version = "0.1.0" [features] -fs = ["axstd/fs"] ept-level-4 = ["axaddrspace/4-level-ept"] +fs = ["axstd/fs"] plat-aarch64-generic = ["axplat-aarch64-generic", "axstd/driver-dyn"] plat-x86-qemu-q35 = ["axplat-x86-qemu-q35"] - [dependencies] bitflags = "2.2" cfg-if = "1.0" @@ -36,6 +35,7 @@ axstd = {git = "https://github.com/arceos-hypervisor/arceos.git", branch = "vmm- "multitask", "smp", "page-alloc-64g", + "myplat" ]} # System dependent modules provided by ArceOS-Hypervisor. @@ -72,3 +72,10 @@ prettyplease = "0.2" quote = "1.0" syn = "2.0" toml = {version = "0.9"} + +[workspace] +exclude = ["crates/arceos"] +members = ["platform/*", "crates/*"] + +[patch.crates-io] +axvcpu = {git="https://github.com/arceos-hypervisor/axvcpu.git", branch="next"} \ No newline at end of file diff --git a/platform/aarch64-generic/src/lib.rs b/platform/aarch64-generic/src/lib.rs index 6aca2f53..af4a84b1 100644 --- a/platform/aarch64-generic/src/lib.rs +++ b/platform/aarch64-generic/src/lib.rs @@ -1,3 +1,4 @@ #![no_std] +#![cfg(target_arch = "aarch64")] extern crate axplat_aarch64_dyn; diff --git a/platform/x86-qemu-q35/Cargo.toml b/platform/x86-qemu-q35/Cargo.toml index 05732299..c3c1508a 100644 --- a/platform/x86-qemu-q35/Cargo.toml +++ b/platform/x86-qemu-q35/Cargo.toml @@ -5,7 +5,6 @@ version = "0.1.0" [features] fp-simd = ["axplat-x86-pc/fp-simd"] -reboot-on-system-off = ["axplat-x86-pc/reboot_on_system_off"] rtc = ["axplat-x86-pc/x86_rtc"] [dependencies] diff --git a/platform/x86-qemu-q35/src/lib.rs b/platform/x86-qemu-q35/src/lib.rs index 69f30886..8a34a10b 100644 --- a/platform/x86-qemu-q35/src/lib.rs +++ b/platform/x86-qemu-q35/src/lib.rs @@ -1,3 +1,4 @@ #![no_std] +#![cfg(target_arch = "x86_64")] extern crate axplat_x86_pc; From 42a60f6ada6ea2ff221708c925fa35060dcfc5e7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E7=9D=BF?= Date: Tue, 9 Sep 2025 12:11:32 +0800 Subject: [PATCH 175/219] update lock --- Cargo.lock | 1 - 1 file changed, 1 deletion(-) diff --git a/Cargo.lock b/Cargo.lock index afb800df..f57b9850 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1069,7 +1069,6 @@ dependencies = [ "arm_vcpu 0.1.1 (git+https://github.com/arceos-hypervisor/arm_vcpu?branch=next-dev)", "arm_vgic 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "axaddrspace 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "axcpu", "axdevice 0.1.0 (git+https://github.com/arceos-hypervisor/axdevice.git)", "axdevice_base", "axerrno", From f274c925f5158ace8c476f26c712a8ab845e792a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E7=9D=BF?= Date: Tue, 9 Sep 2025 12:13:08 +0800 Subject: [PATCH 176/219] fix workspace --- Cargo.lock | 226 +++++++---------------------------------------------- Cargo.toml | 2 +- 2 files changed, 29 insertions(+), 199 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index f57b9850..7e7a3e78 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -173,32 +173,16 @@ dependencies = [ "chrono", ] -[[package]] -name = "arm_vcpu" -version = "0.1.1" -dependencies = [ - "aarch64-cpu", - "axaddrspace 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "axdevice_base", - "axerrno", - "axvcpu 0.1.2 (git+https://github.com/arceos-hypervisor/axvcpu.git?branch=next)", - "axvisor_api", - "log", - "numeric-enum-macro", - "percpu", - "spin 0.10.0", -] - [[package]] name = "arm_vcpu" version = "0.1.1" source = "git+https://github.com/arceos-hypervisor/arm_vcpu?branch=next-dev#c6eaba4fc0a7941b42ed2ade356a5f595baeddd3" dependencies = [ "aarch64-cpu", - "axaddrspace 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "axaddrspace", "axdevice_base", "axerrno", - "axvcpu 0.1.1", + "axvcpu", "axvisor_api", "log", "numeric-enum-macro", @@ -206,23 +190,6 @@ dependencies = [ "spin 0.10.0", ] -[[package]] -name = "arm_vgic" -version = "0.1.0" -dependencies = [ - "aarch64-cpu", - "aarch64_sysreg", - "axaddrspace 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "axdevice_base", - "axerrno", - "axvisor_api", - "bitmaps", - "log", - "memory_addr", - "spin 0.9.8", - "tock-registers 0.10.0", -] - [[package]] name = "arm_vgic" version = "0.1.0" @@ -231,7 +198,7 @@ checksum = "80f576b11b486e2ca12373c8205c4a06473a85cf7a664845e5961c47948910c3" dependencies = [ "aarch64-cpu", "aarch64_sysreg", - "axaddrspace 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "axaddrspace", "axdevice_base", "axerrno", "axvisor_api", @@ -249,7 +216,7 @@ source = "git+https://github.com/arceos-hypervisor/arm_vgic.git#81338d6dd8a9dab0 dependencies = [ "aarch64-cpu", "aarch64_sysreg", - "axaddrspace 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "axaddrspace", "axdevice_base", "axerrno", "axvisor_api", @@ -266,12 +233,6 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b0f477b951e452a0b6b4a10b53ccd569042d1d01729b519e02074a9c0958a063" -[[package]] -name = "assert_matches" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b34d609dfbaf33d6889b2b7106d3ca345eacad44200913df5ba02bfd31d2ba9" - [[package]] name = "async-trait" version = "0.1.89" @@ -295,28 +256,6 @@ version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" -[[package]] -name = "axaddrspace" -version = "0.1.1" -dependencies = [ - "assert_matches", - "axerrno", - "axin", - "bit_field", - "bitflags 2.9.4", - "cfg-if", - "lazy_static", - "lazyinit", - "log", - "memory_addr", - "memory_set", - "numeric-enum-macro", - "page_table_entry", - "page_table_multiarch", - "spin 0.10.0", - "x86", -] - [[package]] name = "axaddrspace" version = "0.1.1" @@ -403,29 +342,13 @@ dependencies = [ "x86_64", ] -[[package]] -name = "axdevice" -version = "0.1.0" -dependencies = [ - "arm_vgic 0.1.0 (git+https://github.com/arceos-hypervisor/arm_vgic.git)", - "axaddrspace 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "axdevice_base", - "axerrno", - "axvmconfig", - "cfg-if", - "log", - "memory_addr", - "range-alloc", - "spin 0.9.8", -] - [[package]] name = "axdevice" version = "0.1.0" source = "git+https://github.com/arceos-hypervisor/axdevice.git#c4a0965ca45a3b9a34845fa774b1bd90fc8f4573" dependencies = [ "arm_vgic 0.1.0 (git+https://github.com/arceos-hypervisor/arm_vgic.git)", - "axaddrspace 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "axaddrspace", "axdevice_base", "axerrno", "axvmconfig", @@ -442,7 +365,7 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "67c43baf33ed4790ffd3365c4ca027a1e3d1c2b6058f4605b67bca04cadf48d5" dependencies = [ - "axaddrspace 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "axaddrspace", "axerrno", "axvmconfig", "cfg-if", @@ -609,14 +532,6 @@ dependencies = [ "percpu", ] -[[package]] -name = "axhvc" -version = "0.1.0" -dependencies = [ - "axerrno", - "numeric-enum-macro", -] - [[package]] name = "axhvc" version = "0.1.0" @@ -626,18 +541,6 @@ dependencies = [ "numeric-enum-macro", ] -[[package]] -name = "axin" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6db62cb7067e33d432df247b32ee450ae267cb16319c8c5de247381c3652a639" -dependencies = [ - "proc-macro-crate", - "proc-macro2", - "quote", - "syn 2.0.106", -] - [[package]] name = "axio" version = "0.1.1" @@ -968,30 +871,7 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cefe761786c0c69a7c0eaf45602c460f721bce9d8b8decc4f733b488e9da657f" dependencies = [ - "axaddrspace 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "axerrno", - "axvisor_api", - "memory_addr", - "percpu", -] - -[[package]] -name = "axvcpu" -version = "0.1.2" -dependencies = [ - "axaddrspace 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "axerrno", - "axvisor_api", - "memory_addr", - "percpu", -] - -[[package]] -name = "axvcpu" -version = "0.1.2" -source = "git+https://github.com/arceos-hypervisor/axvcpu.git?branch=next#343ec3ccf99a86fb9c67a7b0372e9b7a745f0640" -dependencies = [ - "axaddrspace 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "axaddrspace", "axerrno", "axvisor_api", "memory_addr", @@ -1004,18 +884,18 @@ version = "0.1.0" dependencies = [ "aarch64-cpu-ext", "arm-gic-driver", - "axaddrspace 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "axaddrspace", "axconfig", - "axdevice 0.1.0 (git+https://github.com/arceos-hypervisor/axdevice.git)", + "axdevice", "axdevice_base", "axerrno", - "axhvc 0.1.0 (git+https://github.com/arceos-hypervisor/axhvc.git)", + "axhvc", "axplat-aarch64-generic", "axplat-x86-qemu-q35", "axstd", - "axvcpu 0.1.1", + "axvcpu", "axvisor_api", - "axvm 0.1.0 (git+https://github.com/arceos-hypervisor/axvm.git?branch=dev-irq)", + "axvm", "bitflags 2.9.4", "cfg-if", "cpumask", @@ -1044,7 +924,7 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aa7233b2a1338dc06a80e2779b572b4df02007ea128ef7b235b66fc3eeac0ca6" dependencies = [ - "axaddrspace 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "axaddrspace", "axvisor_api_proc", "crate_interface", "memory_addr", @@ -1062,43 +942,19 @@ dependencies = [ "syn 2.0.106", ] -[[package]] -name = "axvm" -version = "0.1.0" -dependencies = [ - "arm_vcpu 0.1.1 (git+https://github.com/arceos-hypervisor/arm_vcpu?branch=next-dev)", - "arm_vgic 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "axaddrspace 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "axdevice 0.1.0 (git+https://github.com/arceos-hypervisor/axdevice.git)", - "axdevice_base", - "axerrno", - "axvcpu 0.1.1", - "axvmconfig", - "cfg-if", - "cpumask", - "log", - "memory_addr", - "page_table_entry", - "page_table_multiarch", - "percpu", - "riscv_vcpu", - "spin 0.9.8", - "x86_vcpu 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "axvm" version = "0.1.0" source = "git+https://github.com/arceos-hypervisor/axvm.git?branch=dev-irq#51e7c7d204ef6ae9d0d7e9e3286a4aee9320e7e6" dependencies = [ - "arm_vcpu 0.1.1 (git+https://github.com/arceos-hypervisor/arm_vcpu?branch=next-dev)", + "arm_vcpu", "arm_vgic 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "axaddrspace 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "axaddrspace", "axcpu", - "axdevice 0.1.0 (git+https://github.com/arceos-hypervisor/axdevice.git)", + "axdevice", "axdevice_base", "axerrno", - "axvcpu 0.1.1", + "axvcpu", "axvmconfig", "cfg-if", "cpumask", @@ -1109,7 +965,7 @@ dependencies = [ "percpu", "riscv_vcpu", "spin 0.9.8", - "x86_vcpu 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "x86_vcpu", ] [[package]] @@ -2267,12 +2123,6 @@ dependencies = [ "kernel_guard", ] -[[package]] -name = "lazy_static" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" - [[package]] name = "lazyinit" version = "0.2.2" @@ -3111,9 +2961,9 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "13f38f28fe6c02bb3ced43087c9667b23d18adf729becdc5adf1253f7df83904" dependencies = [ - "axaddrspace 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "axaddrspace", "axerrno", - "axvcpu 0.1.1", + "axvcpu", "axvisor_api", "bit_field", "bitflags 2.9.4", @@ -4474,41 +4324,16 @@ dependencies = [ "x86_64", ] -[[package]] -name = "x86_vcpu" -version = "0.1.0" -dependencies = [ - "axaddrspace 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "axdevice_base", - "axerrno", - "axvcpu 0.1.1", - "axvisor_api", - "bit_field", - "bitflags 2.9.4", - "cfg-if", - "crate_interface", - "log", - "memory_addr", - "numeric-enum-macro", - "page_table_entry", - "paste", - "raw-cpuid 11.6.0", - "spin 0.9.8", - "x86", - "x86_64", - "x86_vlapic", -] - [[package]] name = "x86_vcpu" version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "873e097d52e94c31be3f0175a9f8d6f2edbc77d7e2f8e6995427df9c08b30a2b" dependencies = [ - "axaddrspace 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "axaddrspace", "axdevice_base", "axerrno", - "axvcpu 0.1.1", + "axvcpu", "axvisor_api", "bit_field", "bitflags 2.9.4", @@ -4532,7 +4357,7 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2556c62649a277ccf1c3c34c740be87bbde5f8dab0b20fcdcf4c2cd7bb6e7302" dependencies = [ - "axaddrspace 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "axaddrspace", "axdevice_base", "axerrno", "axvisor_api", @@ -4677,3 +4502,8 @@ dependencies = [ "quote", "syn 2.0.106", ] + +[[patch.unused]] +name = "axvcpu" +version = "0.1.2" +source = "git+https://github.com/arceos-hypervisor/axvcpu.git?branch=next#343ec3ccf99a86fb9c67a7b0372e9b7a745f0640" diff --git a/Cargo.toml b/Cargo.toml index d756d57a..87b45670 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -75,7 +75,7 @@ toml = {version = "0.9"} [workspace] exclude = ["crates/arceos"] -members = ["platform/*", "crates/*"] +members = ["platform/*"] [patch.crates-io] axvcpu = {git="https://github.com/arceos-hypervisor/axvcpu.git", branch="next"} \ No newline at end of file From b5515015da63d054f78ab3f4bd1a77d9dc075e47 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E7=9D=BF?= Date: Tue, 9 Sep 2025 15:16:17 +0800 Subject: [PATCH 177/219] fix: optimize memory region handling in parse_vm_dtb function --- src/vmm/config.rs | 35 +++++++++++++++++++---------------- 1 file changed, 19 insertions(+), 16 deletions(-) diff --git a/src/vmm/config.rs b/src/vmm/config.rs index f97e6e82..b25facc1 100644 --- a/src/vmm/config.rs +++ b/src/vmm/config.rs @@ -52,23 +52,26 @@ pub fn parse_vm_dtb(vm_cfg: &mut AxVMConfig, dtb: &[u8]) { } } - for mem in fdt.memory() { - for region in mem.regions() { - // Skip empty regions - if region.size == 0 { - continue; + if vm_cfg.memory_regions().is_empty() { + info!("No memory region configured, using DTB memory regions: {:x?}", dram_regions); + for mem in fdt.memory() { + for region in mem.regions() { + // Skip empty regions + if region.size == 0 { + continue; + } + warn!("DTB memory region: {:?}", region); + vm_cfg.add_memory_region(VmMemConfig { + gpa: region.address as usize, + size: region.size, + flags: (MappingFlags::READ + | MappingFlags::WRITE + | MappingFlags::EXECUTE + | MappingFlags::USER) + .bits(), + map_type: VmMemMappingType::MapIdentical, + }); } - warn!("DTB memory region: {:?}", region); - vm_cfg.add_memory_region(VmMemConfig { - gpa: region.address as usize, - size: region.size, - flags: (MappingFlags::READ - | MappingFlags::WRITE - | MappingFlags::EXECUTE - | MappingFlags::USER) - .bits(), - map_type: VmMemMappingType::MapIdentical, - }); } } From 037ebea229dfb9ecdbec4d48d5f3afcf1ee112fa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E7=9D=BF?= Date: Tue, 9 Sep 2025 15:23:16 +0800 Subject: [PATCH 178/219] deps: use arceos hypervisor --- Cargo.lock | 48 ++++++++++++++++++++++++++++-------------------- Cargo.toml | 2 +- scripts/setup.py | 2 +- 3 files changed, 30 insertions(+), 22 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 7e7a3e78..a2676dc7 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -124,10 +124,10 @@ checksum = "b0674a1ddeecb70197781e945de4b3b8ffb61fa939a5597bcf48503737663100" [[package]] name = "arceos_api" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#f873ef7913033a15169e5df0774fd9510a2cdc50" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#25bc3ba3cbff1047375e1692368c0d08ced70ba8" dependencies = [ "axalloc", - "axconfig", + "axconfig 0.2.0 (git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor)", "axdriver", "axerrno", "axfeat", @@ -279,7 +279,7 @@ dependencies = [ [[package]] name = "axalloc" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#f873ef7913033a15169e5df0774fd9510a2cdc50" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#25bc3ba3cbff1047375e1692368c0d08ced70ba8" dependencies = [ "allocator", "axerrno", @@ -289,6 +289,14 @@ dependencies = [ "memory_addr", ] +[[package]] +name = "axconfig" +version = "0.2.0" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#25bc3ba3cbff1047375e1692368c0d08ced70ba8" +dependencies = [ + "axconfig-macros", +] + [[package]] name = "axconfig" version = "0.2.0" @@ -376,11 +384,11 @@ dependencies = [ [[package]] name = "axdriver" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#f873ef7913033a15169e5df0774fd9510a2cdc50" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#25bc3ba3cbff1047375e1692368c0d08ced70ba8" dependencies = [ "arm-gic-driver", "axalloc", - "axconfig", + "axconfig 0.2.0 (git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor)", "axdriver_base", "axdriver_block", "axdriver_pci", @@ -439,7 +447,7 @@ dependencies = [ [[package]] name = "axfeat" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#f873ef7913033a15169e5df0774fd9510a2cdc50" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#25bc3ba3cbff1047375e1692368c0d08ced70ba8" dependencies = [ "axalloc", "axdriver", @@ -455,7 +463,7 @@ dependencies = [ [[package]] name = "axfs" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#f873ef7913033a15169e5df0774fd9510a2cdc50" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#25bc3ba3cbff1047375e1692368c0d08ced70ba8" dependencies = [ "axdriver", "axdriver_block", @@ -509,11 +517,11 @@ dependencies = [ [[package]] name = "axhal" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#f873ef7913033a15169e5df0774fd9510a2cdc50" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#25bc3ba3cbff1047375e1692368c0d08ced70ba8" dependencies = [ "aarch64-cpu", "axalloc", - "axconfig", + "axconfig 0.2.0 (git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor)", "axcpu", "axlog", "axplat 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -553,7 +561,7 @@ dependencies = [ [[package]] name = "axlog" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#f873ef7913033a15169e5df0774fd9510a2cdc50" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#25bc3ba3cbff1047375e1692368c0d08ced70ba8" dependencies = [ "cfg-if", "crate_interface", @@ -564,10 +572,10 @@ dependencies = [ [[package]] name = "axmm" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#f873ef7913033a15169e5df0774fd9510a2cdc50" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#25bc3ba3cbff1047375e1692368c0d08ced70ba8" dependencies = [ "axalloc", - "axconfig", + "axconfig 0.2.0 (git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor)", "axerrno", "axhal", "kspin", @@ -580,7 +588,7 @@ dependencies = [ [[package]] name = "axns" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#f873ef7913033a15169e5df0774fd9510a2cdc50" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#25bc3ba3cbff1047375e1692368c0d08ced70ba8" dependencies = [ "crate_interface", "lazyinit", @@ -795,10 +803,10 @@ dependencies = [ [[package]] name = "axruntime" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#f873ef7913033a15169e5df0774fd9510a2cdc50" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#25bc3ba3cbff1047375e1692368c0d08ced70ba8" dependencies = [ "axalloc", - "axconfig", + "axconfig 0.2.0 (git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor)", "axdriver", "axerrno", "axfs", @@ -825,7 +833,7 @@ dependencies = [ [[package]] name = "axstd" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#f873ef7913033a15169e5df0774fd9510a2cdc50" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#25bc3ba3cbff1047375e1692368c0d08ced70ba8" dependencies = [ "arceos_api", "axerrno", @@ -838,7 +846,7 @@ dependencies = [ [[package]] name = "axsync" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#f873ef7913033a15169e5df0774fd9510a2cdc50" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#25bc3ba3cbff1047375e1692368c0d08ced70ba8" dependencies = [ "axtask", "kspin", @@ -848,9 +856,9 @@ dependencies = [ [[package]] name = "axtask" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#f873ef7913033a15169e5df0774fd9510a2cdc50" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#25bc3ba3cbff1047375e1692368c0d08ced70ba8" dependencies = [ - "axconfig", + "axconfig 0.2.0 (git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor)", "axhal", "axsched", "cfg-if", @@ -885,7 +893,7 @@ dependencies = [ "aarch64-cpu-ext", "arm-gic-driver", "axaddrspace", - "axconfig", + "axconfig 0.2.0 (git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev)", "axdevice", "axdevice_base", "axerrno", diff --git a/Cargo.toml b/Cargo.toml index 87b45670..dcbe13ab 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -28,7 +28,7 @@ spin = "0.9" timer_list = "0.1.0" # System dependent modules provided by ArceOS. -axstd = {git = "https://github.com/arceos-hypervisor/arceos.git", branch = "vmm-dev", features = [ +axstd = {git = "https://github.com/arceos-hypervisor/arceos.git", branch = "hypervisor", features = [ "alloc", "paging", "irq", diff --git a/scripts/setup.py b/scripts/setup.py index 9d9c9fcc..7393e2b7 100644 --- a/scripts/setup.py +++ b/scripts/setup.py @@ -18,7 +18,7 @@ def setup_arceos(): "clone", "https://github.com/arceos-hypervisor/arceos", "-b", - "vmm-dev", + "hypervisor", arceos_dir, ], check=True, From 13c24234b7077e3a987ed4237c563565ac716e80 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E7=9D=BF?= Date: Tue, 9 Sep 2025 15:41:43 +0800 Subject: [PATCH 179/219] fmt code --- src/vmm/config.rs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/vmm/config.rs b/src/vmm/config.rs index b25facc1..fae59472 100644 --- a/src/vmm/config.rs +++ b/src/vmm/config.rs @@ -53,7 +53,10 @@ pub fn parse_vm_dtb(vm_cfg: &mut AxVMConfig, dtb: &[u8]) { } if vm_cfg.memory_regions().is_empty() { - info!("No memory region configured, using DTB memory regions: {:x?}", dram_regions); + info!( + "No memory region configured, using DTB memory regions: {:x?}", + dram_regions + ); for mem in fdt.memory() { for region in mem.regions() { // Skip empty regions From 68d1013af3ade478eb363fb996c5fc962bf1add6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E7=9D=BF?= Date: Tue, 9 Sep 2025 17:08:03 +0800 Subject: [PATCH 180/219] feat: add support for loading VM images from memory and filesystem --- src/vmm/config.rs | 7 ++ src/vmm/images/linux.rs | 147 +++++++++++++++++++++++++++ src/vmm/{images.rs => images/mod.rs} | 61 ++++++++++- 3 files changed, 214 insertions(+), 1 deletion(-) create mode 100644 src/vmm/images/linux.rs rename src/vmm/{images.rs => images/mod.rs} (78%) diff --git a/src/vmm/config.rs b/src/vmm/config.rs index fae59472..3b582e85 100644 --- a/src/vmm/config.rs +++ b/src/vmm/config.rs @@ -224,6 +224,13 @@ pub fn init_guest_vms() { for raw_cfg_str in gvm_raw_configs { let vm_create_config = AxVMCrateConfig::from_toml(raw_cfg_str).expect("Failed to resolve VM config"); + if let Some(linux) = super::images::get_image_header(&vm_create_config) { + info!( + "VM[{}] Linux image header: {:#x?}", + vm_create_config.base.id, linux + ); + } + let mut vm_config = AxVMConfig::from(vm_create_config.clone()); // Overlay VM config with the given DTB. diff --git a/src/vmm/images/linux.rs b/src/vmm/images/linux.rs new file mode 100644 index 00000000..b964f464 --- /dev/null +++ b/src/vmm/images/linux.rs @@ -0,0 +1,147 @@ +/// Architecture variants detected from the image header. +#[derive(Debug, Clone, Copy, PartialEq, Eq)] +pub enum ImageArch { + Riscv { + is_be: bool, + }, + Arm64 { + is_be: bool, + page_size: PageSize, + phys_placement_48bit: bool, + }, +} + +#[allow(unused)] +#[derive(Debug, Clone)] +pub struct Header { + pub text_offset: u64, + pub image_size: u64, + pub arch: ImageArch, +} + +impl Header { + pub fn parse(image: &[u8]) -> Option { + if let Some(hdr) = ARM64Header::parse(image) { + return Some(Self { + text_offset: hdr.text_offset, + image_size: hdr.image_size, + arch: ImageArch::Arm64 { + is_be: hdr.kernel_is_be(), + page_size: hdr.page_size(), + phys_placement_48bit: hdr.phys_placement_48bit(), + }, + }); + } + + if let Some(hdr) = RiscvHeader::parse(image) { + return Some(Self { + text_offset: hdr.text_offset, + image_size: hdr.image_size, + arch: ImageArch::Riscv { + is_be: hdr.kernel_is_be(), + }, + }); + } + + None + } + + pub fn hdr_size() -> usize { + size_of::() + } +} + +#[allow(unused)] +#[repr(C)] +struct ARM64Header { + code0: u32, + code1: u32, + text_offset: u64, + image_size: u64, + flags: u64, + res2: u64, + res3: u64, + res4: u64, + magic: u32, + res5: u32, +} + +impl ARM64Header { + const MAGIC: u32 = 0x644d5241; // 'ARMd' in little-endian + + fn parse(buffer: &[u8]) -> Option { + if buffer.len() < core::mem::size_of::() { + return None; + } + let hdr: Self = unsafe { core::ptr::read_unaligned(buffer.as_ptr() as *const _) }; + if hdr.magic != Self::MAGIC { + return None; + } + Some(hdr) + } + + /// Return whether the kernel image is big-endian according to flags bit 0. + fn kernel_is_be(&self) -> bool { + (self.flags & 0x1) != 0 + } + + /// Return page size encoded in flags bits 1-2. + fn page_size(&self) -> PageSize { + match (self.flags >> 1) & 0x3 { + 0 => PageSize::Unspecified, + 1 => PageSize::Size4K, + 2 => PageSize::Size16K, + 3 => PageSize::Size64K, + _ => PageSize::Unspecified, + } + } + + /// Return physical placement mode (bit 3): false=default, true=48-bit constrained. + fn phys_placement_48bit(&self) -> bool { + ((self.flags >> 3) & 0x1) != 0 + } +} + +/// Page size encoded in the image header flags (bits 1-2). +#[derive(Debug, Clone, Copy, PartialEq, Eq)] +pub enum PageSize { + Unspecified, + Size4K, + Size16K, + Size64K, +} + +#[allow(unused)] +struct RiscvHeader { + code0: u32, + code1: u32, + text_offset: u64, + image_size: u64, + flags: u64, + version: u32, + res1: u32, + res2: u64, + magic: u64, + magic2: u32, + res4: u32, +} + +impl RiscvHeader { + const MAGIC: u64 = 0x5643534952; // 'RISCV\0\0\0' in little-endian + const MAGIC2: u32 = 0x56534905; // secondary magic + + fn parse(buffer: &[u8]) -> Option { + if buffer.len() < core::mem::size_of::() { + return None; + } + let hdr: Self = unsafe { core::ptr::read_unaligned(buffer.as_ptr() as *const _) }; + if hdr.magic != Self::MAGIC || hdr.magic2 != Self::MAGIC2 { + return None; + } + Some(hdr) + } + + fn kernel_is_be(&self) -> bool { + (self.flags & 0x1) != 0 + } +} diff --git a/src/vmm/images.rs b/src/vmm/images/mod.rs similarity index 78% rename from src/vmm/images.rs rename to src/vmm/images/mod.rs index 2cff1fbb..9902d340 100644 --- a/src/vmm/images.rs +++ b/src/vmm/images/mod.rs @@ -7,6 +7,35 @@ use crate::hal::CacheOp; use crate::vmm::VMRef; use crate::vmm::config::config; +mod linux; + +pub fn get_image_header(config: &AxVMCrateConfig) -> Option { + match config.kernel.image_location.as_deref() { + Some("memory") => with_memory_image(config, linux::Header::parse), + #[cfg(feature = "fs")] + Some("fs") => { + let read_size = linux::Header::hdr_size(); + let data = fs::kernal_read(config, read_size).ok()?; + linux::Header::parse(&data) + } + _ => unimplemented!( + "Check your \"image_location\" in config.toml, \"memory\" and \"fs\" are supported,\n NOTE: \"fs\" feature should be enabled if you want to load images from filesystem. (APP_FEATURES=fs)" + ), + } +} + +fn with_memory_image(config: &AxVMCrateConfig, func: F) -> R +where + F: FnOnce(&[u8]) -> R, +{ + let vm_imags = config::get_memory_images() + .iter() + .find(|&v| v.id == config.base.id) + .expect("VM images is missed, Perhaps add `VM_CONFIGS=PATH/CONFIGS/FILE` command."); + + func(vm_imags.kernel) +} + /// Loads the VM image files. pub fn load_vm_images(config: AxVMCrateConfig, vm: VMRef) -> AxResult { match config.kernel.image_location.as_deref() { @@ -103,7 +132,7 @@ fn load_vm_image_from_memory(image_buffer: &[u8], load_addr: usize, vm: VMRef) - mod fs { use alloc::string::String; - use std::fs::File; + use std::{fs::File, vec::Vec}; use axerrno::{AxResult, ax_err, ax_err_type}; @@ -111,6 +140,36 @@ mod fs { use super::*; + pub fn kernal_read(config: &AxVMCrateConfig, read_size: usize) -> AxResult> { + use std::fs::File; + use std::io::Read; + let file_name = &config.kernel.kernel_path; + + let mut file = File::open(file_name).map_err(|err| { + ax_err_type!( + NotFound, + format!( + "Failed to open {}, err {:?}, please check your disk.img", + file_name, err + ) + ) + })?; + + let mut buffer = vec![0u8; read_size]; + + file.read_exact(&mut buffer).map_err(|err| { + ax_err_type!( + NotFound, + format!( + "Failed to read {}, err {:?}, please check your disk.img", + file_name, err + ) + ) + })?; + + Ok(buffer) + } + /// Loads the VM image files from the filesystem /// into the guest VM's memory space based on the VM configuration. pub(crate) fn load_vm_images_from_filesystem(config: AxVMCrateConfig, vm: VMRef) -> AxResult { From 780ac404b2c2804b8d6fba563565721615c7849d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E7=9D=BF?= Date: Tue, 9 Sep 2025 17:09:07 +0800 Subject: [PATCH 181/219] fmt code --- src/vmm/images/linux.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/vmm/images/linux.rs b/src/vmm/images/linux.rs index b964f464..db15ba4a 100644 --- a/src/vmm/images/linux.rs +++ b/src/vmm/images/linux.rs @@ -19,6 +19,7 @@ pub struct Header { pub arch: ImageArch, } +#[allow(unused)] impl Header { pub fn parse(image: &[u8]) -> Option { if let Some(hdr) = ARM64Header::parse(image) { From 0ee94842a04e91ecdf16ec9a71e711a4c3ee73e2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E7=9D=BF?= Date: Tue, 9 Sep 2025 18:16:20 +0800 Subject: [PATCH 182/219] fix: alloc badstat --- Cargo.lock | 36 +++++++++++++++++------------------- src/hal/mod.rs | 20 +++++++++++++++++--- 2 files changed, 34 insertions(+), 22 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index a2676dc7..5432db59 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -124,7 +124,7 @@ checksum = "b0674a1ddeecb70197781e945de4b3b8ffb61fa939a5597bcf48503737663100" [[package]] name = "arceos_api" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#25bc3ba3cbff1047375e1692368c0d08ced70ba8" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#ff2fa6b115c16952c49a22c62e6aeff1686d242d" dependencies = [ "axalloc", "axconfig 0.2.0 (git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor)", @@ -259,8 +259,6 @@ checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" [[package]] name = "axaddrspace" version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e86bea69b4b98f2aba53da737bc4ed996bd9192f8eda0c32022b042b5c74d67" dependencies = [ "axerrno", "bit_field", @@ -279,7 +277,7 @@ dependencies = [ [[package]] name = "axalloc" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#25bc3ba3cbff1047375e1692368c0d08ced70ba8" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#ff2fa6b115c16952c49a22c62e6aeff1686d242d" dependencies = [ "allocator", "axerrno", @@ -292,7 +290,7 @@ dependencies = [ [[package]] name = "axconfig" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#25bc3ba3cbff1047375e1692368c0d08ced70ba8" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#ff2fa6b115c16952c49a22c62e6aeff1686d242d" dependencies = [ "axconfig-macros", ] @@ -384,7 +382,7 @@ dependencies = [ [[package]] name = "axdriver" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#25bc3ba3cbff1047375e1692368c0d08ced70ba8" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#ff2fa6b115c16952c49a22c62e6aeff1686d242d" dependencies = [ "arm-gic-driver", "axalloc", @@ -447,7 +445,7 @@ dependencies = [ [[package]] name = "axfeat" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#25bc3ba3cbff1047375e1692368c0d08ced70ba8" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#ff2fa6b115c16952c49a22c62e6aeff1686d242d" dependencies = [ "axalloc", "axdriver", @@ -463,7 +461,7 @@ dependencies = [ [[package]] name = "axfs" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#25bc3ba3cbff1047375e1692368c0d08ced70ba8" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#ff2fa6b115c16952c49a22c62e6aeff1686d242d" dependencies = [ "axdriver", "axdriver_block", @@ -517,7 +515,7 @@ dependencies = [ [[package]] name = "axhal" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#25bc3ba3cbff1047375e1692368c0d08ced70ba8" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#ff2fa6b115c16952c49a22c62e6aeff1686d242d" dependencies = [ "aarch64-cpu", "axalloc", @@ -561,7 +559,7 @@ dependencies = [ [[package]] name = "axlog" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#25bc3ba3cbff1047375e1692368c0d08ced70ba8" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#ff2fa6b115c16952c49a22c62e6aeff1686d242d" dependencies = [ "cfg-if", "crate_interface", @@ -572,7 +570,7 @@ dependencies = [ [[package]] name = "axmm" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#25bc3ba3cbff1047375e1692368c0d08ced70ba8" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#ff2fa6b115c16952c49a22c62e6aeff1686d242d" dependencies = [ "axalloc", "axconfig 0.2.0 (git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor)", @@ -588,7 +586,7 @@ dependencies = [ [[package]] name = "axns" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#25bc3ba3cbff1047375e1692368c0d08ced70ba8" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#ff2fa6b115c16952c49a22c62e6aeff1686d242d" dependencies = [ "crate_interface", "lazyinit", @@ -803,7 +801,7 @@ dependencies = [ [[package]] name = "axruntime" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#25bc3ba3cbff1047375e1692368c0d08ced70ba8" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#ff2fa6b115c16952c49a22c62e6aeff1686d242d" dependencies = [ "axalloc", "axconfig 0.2.0 (git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor)", @@ -833,7 +831,7 @@ dependencies = [ [[package]] name = "axstd" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#25bc3ba3cbff1047375e1692368c0d08ced70ba8" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#ff2fa6b115c16952c49a22c62e6aeff1686d242d" dependencies = [ "arceos_api", "axerrno", @@ -846,7 +844,7 @@ dependencies = [ [[package]] name = "axsync" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#25bc3ba3cbff1047375e1692368c0d08ced70ba8" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#ff2fa6b115c16952c49a22c62e6aeff1686d242d" dependencies = [ "axtask", "kspin", @@ -856,7 +854,7 @@ dependencies = [ [[package]] name = "axtask" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#25bc3ba3cbff1047375e1692368c0d08ced70ba8" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#ff2fa6b115c16952c49a22c62e6aeff1686d242d" dependencies = [ "axconfig 0.2.0 (git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor)", "axhal", @@ -1439,7 +1437,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "778e2ac28f6c47af28e4907f13ffd1e1ddbd400980a9abd7c8df189bf578a5ad" dependencies = [ "libc", - "windows-sys 0.60.2", + "windows-sys 0.52.0", ] [[package]] @@ -3018,7 +3016,7 @@ dependencies = [ "errno", "libc", "linux-raw-sys", - "windows-sys 0.60.2", + "windows-sys 0.52.0", ] [[package]] @@ -3513,7 +3511,7 @@ dependencies = [ "getrandom 0.3.3", "once_cell", "rustix", - "windows-sys 0.60.2", + "windows-sys 0.52.0", ] [[package]] diff --git a/src/hal/mod.rs b/src/hal/mod.rs index 561c3e53..5cd12069 100644 --- a/src/hal/mod.rs +++ b/src/hal/mod.rs @@ -189,6 +189,8 @@ pub(crate) fn enable_virtualization() { #[axvisor_api::api_mod_impl(axvisor_api::memory)] mod memory_api_impl { + use core::{alloc::Layout, ptr::NonNull}; + use super::*; extern fn alloc_frame() -> Option { @@ -200,8 +202,16 @@ mod memory_api_impl { frame_align_pow2: usize, ) -> Option { arceos::modules::axalloc::global_allocator() - .alloc_pages(num_frames, PAGE_SIZE_4K << frame_align_pow2) - .map(|vaddr| ::virt_to_phys(vaddr.into())) + .alloc( + Layout::from_size_align( + num_frames * PAGE_SIZE_4K, + PAGE_SIZE_4K << frame_align_pow2, + ) + .unwrap(), + ) + // .alloc_pages(num_frames, PAGE_SIZE_4K << frame_align_pow2) + // .map(|vaddr| ::virt_to_phys(vaddr.into())) + .map(|vaddr| HostPhysAddr::from(vaddr.as_ptr() as usize)) .ok() } @@ -210,7 +220,11 @@ mod memory_api_impl { } extern fn dealloc_contiguous_frames(paddr: HostPhysAddr, num_frames: usize) { - arceos::modules::axalloc::global_allocator().dealloc_pages(paddr.as_usize(), num_frames); + // arceos::modules::axalloc::global_allocator().dealloc_pages(paddr.as_usize(), num_frames); + arceos::modules::axalloc::global_allocator().dealloc( + unsafe { NonNull::new_unchecked(paddr.as_usize() as _) }, + Layout::from_size_align(num_frames * PAGE_SIZE_4K, PAGE_SIZE_4K).unwrap(), + ); } extern fn phys_to_virt(paddr: HostPhysAddr) -> HostVirtAddr { From 8f2e48a1761e87dd468d36229c67b206ae166ea8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E7=9D=BF?= Date: Wed, 10 Sep 2025 10:12:39 +0800 Subject: [PATCH 183/219] update lock --- Cargo.lock | 49 +++++++++++++++++-------------------- src/hal/arch/aarch64/mod.rs | 9 ++++--- 2 files changed, 27 insertions(+), 31 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 5432db59..f22e0c53 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -124,7 +124,7 @@ checksum = "b0674a1ddeecb70197781e945de4b3b8ffb61fa939a5597bcf48503737663100" [[package]] name = "arceos_api" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#ff2fa6b115c16952c49a22c62e6aeff1686d242d" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#f6dd02576647e39cdb8cd1dce0bbdc09d5a7e0ad" dependencies = [ "axalloc", "axconfig 0.2.0 (git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor)", @@ -259,6 +259,8 @@ checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" [[package]] name = "axaddrspace" version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e86bea69b4b98f2aba53da737bc4ed996bd9192f8eda0c32022b042b5c74d67" dependencies = [ "axerrno", "bit_field", @@ -277,7 +279,7 @@ dependencies = [ [[package]] name = "axalloc" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#ff2fa6b115c16952c49a22c62e6aeff1686d242d" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#f6dd02576647e39cdb8cd1dce0bbdc09d5a7e0ad" dependencies = [ "allocator", "axerrno", @@ -290,7 +292,7 @@ dependencies = [ [[package]] name = "axconfig" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#ff2fa6b115c16952c49a22c62e6aeff1686d242d" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#f6dd02576647e39cdb8cd1dce0bbdc09d5a7e0ad" dependencies = [ "axconfig-macros", ] @@ -382,7 +384,7 @@ dependencies = [ [[package]] name = "axdriver" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#ff2fa6b115c16952c49a22c62e6aeff1686d242d" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#f6dd02576647e39cdb8cd1dce0bbdc09d5a7e0ad" dependencies = [ "arm-gic-driver", "axalloc", @@ -445,7 +447,7 @@ dependencies = [ [[package]] name = "axfeat" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#ff2fa6b115c16952c49a22c62e6aeff1686d242d" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#f6dd02576647e39cdb8cd1dce0bbdc09d5a7e0ad" dependencies = [ "axalloc", "axdriver", @@ -461,7 +463,7 @@ dependencies = [ [[package]] name = "axfs" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#ff2fa6b115c16952c49a22c62e6aeff1686d242d" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#f6dd02576647e39cdb8cd1dce0bbdc09d5a7e0ad" dependencies = [ "axdriver", "axdriver_block", @@ -515,7 +517,7 @@ dependencies = [ [[package]] name = "axhal" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#ff2fa6b115c16952c49a22c62e6aeff1686d242d" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#f6dd02576647e39cdb8cd1dce0bbdc09d5a7e0ad" dependencies = [ "aarch64-cpu", "axalloc", @@ -559,7 +561,7 @@ dependencies = [ [[package]] name = "axlog" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#ff2fa6b115c16952c49a22c62e6aeff1686d242d" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#f6dd02576647e39cdb8cd1dce0bbdc09d5a7e0ad" dependencies = [ "cfg-if", "crate_interface", @@ -570,7 +572,7 @@ dependencies = [ [[package]] name = "axmm" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#ff2fa6b115c16952c49a22c62e6aeff1686d242d" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#f6dd02576647e39cdb8cd1dce0bbdc09d5a7e0ad" dependencies = [ "axalloc", "axconfig 0.2.0 (git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor)", @@ -586,7 +588,7 @@ dependencies = [ [[package]] name = "axns" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#ff2fa6b115c16952c49a22c62e6aeff1686d242d" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#f6dd02576647e39cdb8cd1dce0bbdc09d5a7e0ad" dependencies = [ "crate_interface", "lazyinit", @@ -801,7 +803,7 @@ dependencies = [ [[package]] name = "axruntime" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#ff2fa6b115c16952c49a22c62e6aeff1686d242d" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#f6dd02576647e39cdb8cd1dce0bbdc09d5a7e0ad" dependencies = [ "axalloc", "axconfig 0.2.0 (git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor)", @@ -831,7 +833,7 @@ dependencies = [ [[package]] name = "axstd" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#ff2fa6b115c16952c49a22c62e6aeff1686d242d" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#f6dd02576647e39cdb8cd1dce0bbdc09d5a7e0ad" dependencies = [ "arceos_api", "axerrno", @@ -844,7 +846,7 @@ dependencies = [ [[package]] name = "axsync" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#ff2fa6b115c16952c49a22c62e6aeff1686d242d" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#f6dd02576647e39cdb8cd1dce0bbdc09d5a7e0ad" dependencies = [ "axtask", "kspin", @@ -854,7 +856,7 @@ dependencies = [ [[package]] name = "axtask" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#ff2fa6b115c16952c49a22c62e6aeff1686d242d" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#f6dd02576647e39cdb8cd1dce0bbdc09d5a7e0ad" dependencies = [ "axconfig 0.2.0 (git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor)", "axhal", @@ -873,9 +875,8 @@ dependencies = [ [[package]] name = "axvcpu" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cefe761786c0c69a7c0eaf45602c460f721bce9d8b8decc4f733b488e9da657f" +version = "0.1.2" +source = "git+https://github.com/arceos-hypervisor/axvcpu.git?branch=next#343ec3ccf99a86fb9c67a7b0372e9b7a745f0640" dependencies = [ "axaddrspace", "axerrno", @@ -951,12 +952,11 @@ dependencies = [ [[package]] name = "axvm" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/axvm.git?branch=dev-irq#51e7c7d204ef6ae9d0d7e9e3286a4aee9320e7e6" +source = "git+https://github.com/arceos-hypervisor/axvm.git?branch=dev-irq#40051ba81b61818f54f19a6b298cfc214d597a91" dependencies = [ "arm_vcpu", "arm_vgic 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "axaddrspace", - "axcpu", "axdevice", "axdevice_base", "axerrno", @@ -1437,7 +1437,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "778e2ac28f6c47af28e4907f13ffd1e1ddbd400980a9abd7c8df189bf578a5ad" dependencies = [ "libc", - "windows-sys 0.52.0", + "windows-sys 0.60.2", ] [[package]] @@ -3016,7 +3016,7 @@ dependencies = [ "errno", "libc", "linux-raw-sys", - "windows-sys 0.52.0", + "windows-sys 0.60.2", ] [[package]] @@ -3511,7 +3511,7 @@ dependencies = [ "getrandom 0.3.3", "once_cell", "rustix", - "windows-sys 0.52.0", + "windows-sys 0.60.2", ] [[package]] @@ -4508,8 +4508,3 @@ dependencies = [ "quote", "syn 2.0.106", ] - -[[patch.unused]] -name = "axvcpu" -version = "0.1.2" -source = "git+https://github.com/arceos-hypervisor/axvcpu.git?branch=next#343ec3ccf99a86fb9c67a7b0372e9b7a745f0640" diff --git a/src/hal/arch/aarch64/mod.rs b/src/hal/arch/aarch64/mod.rs index 6c2251d4..7f8964b3 100644 --- a/src/hal/arch/aarch64/mod.rs +++ b/src/hal/arch/aarch64/mod.rs @@ -47,7 +47,7 @@ pub fn inject_interrupt_gic_v3(vector: usize) { let elsr = ICH_ELRSR_EL2.read(ICH_ELRSR_EL2::STATUS); let lr_num = ICH_VTR_EL2.read(ICH_VTR_EL2::LISTREGS) as usize + 1; - let mut free_lr = -1 as isize; + let mut free_lr = -1_isize; // First, check if this interrupt is already pending/active for i in 0..lr_num { @@ -60,15 +60,16 @@ pub fn inject_interrupt_gic_v3(vector: usize) { } let lr_val = ich_lr_el2_get(i); - if lr_val.read(ICH_LR_EL2::VINTID) == vector as u64 { - if lr_val.matches_any(&[ICH_LR_EL2::STATE::Pending, ICH_LR_EL2::STATE::Active]) {} + if lr_val.read(ICH_LR_EL2::VINTID) == vector as u64 + && lr_val.matches_any(&[ICH_LR_EL2::STATE::Pending, ICH_LR_EL2::STATE::Active]) + { debug!( "Virtual interrupt {} already pending/active in LR{}, skipping", vector, i ); // If the interrupt is already pending or active, we can skip injecting it again. // This is important to avoid duplicate injections. - return; // already injected + continue; } } From 6b85e5af54a44430f4001638890ea91b3f8c37d0 Mon Sep 17 00:00:00 2001 From: szy Date: Wed, 10 Sep 2025 10:44:04 +0800 Subject: [PATCH 184/219] memory use config.toml --- Cargo.lock | 45 ++++++++++++++++++- Cargo.toml | 2 + src/vmm/config.rs | 36 --------------- src/vmm/fdt.rs | 101 ++++++++++++++++++++++++++++++++++++++++++ src/vmm/images/mod.rs | 38 ++++++++++++---- src/vmm/mod.rs | 1 + 6 files changed, 178 insertions(+), 45 deletions(-) create mode 100644 src/vmm/fdt.rs diff --git a/Cargo.lock b/Cargo.lock index f22e0c53..771334eb 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -42,6 +42,18 @@ version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa" +[[package]] +name = "ahash" +version = "0.8.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a15f179cd60c4584b8a8c596927aadc462e27f2ca70c04e0071964a73ba7a75" +dependencies = [ + "cfg-if", + "once_cell", + "version_check", + "zerocopy 0.8.27", +] + [[package]] name = "allocator" version = "0.1.1" @@ -52,6 +64,12 @@ dependencies = [ "rlsf", ] +[[package]] +name = "allocator-api2" +version = "0.2.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" + [[package]] name = "anstream" version = "0.6.20" @@ -923,6 +941,7 @@ dependencies = [ "syn 2.0.106", "timer_list", "toml 0.9.5", + "vm-fdt", ] [[package]] @@ -1690,6 +1709,16 @@ dependencies = [ "byteorder", ] +[[package]] +name = "hashbrown" +version = "0.14.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" +dependencies = [ + "ahash", + "allocator-api2", +] + [[package]] name = "hashbrown" version = "0.15.5" @@ -2027,7 +2056,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "206a8042aec68fa4a62e8d3f7aa4ceb508177d9324faf261e1959e495b7a1921" dependencies = [ "equivalent", - "hashbrown", + "hashbrown 0.15.5", ] [[package]] @@ -3873,6 +3902,12 @@ version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" +[[package]] +name = "version_check" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" + [[package]] name = "virtio-drivers" version = "0.7.4" @@ -3884,6 +3919,14 @@ dependencies = [ "zerocopy 0.7.35", ] +[[package]] +name = "vm-fdt" +version = "0.3.0" +source = "git+https://github.com/bullhh/vm-fdt.git#f8caf77fadf4e925e91df5bd211c8a96dc1f6e07" +dependencies = [ + "hashbrown 0.14.5", +] + [[package]] name = "volatile" version = "0.4.6" diff --git a/Cargo.toml b/Cargo.toml index dcbe13ab..ad97ed2c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -54,6 +54,8 @@ page_table_multiarch = "0.5" percpu = {version = "0.2", features = ["arm-el2"]} rdrive = "0.16" +vm-fdt = { git = "https://github.com/bullhh/vm-fdt.git", default-features = false, features = ["alloc"]} + axdevice = {git = "https://github.com/arceos-hypervisor/axdevice.git"} axdevice_base = "0.1" axvisor_api = "0.1" diff --git a/src/vmm/config.rs b/src/vmm/config.rs index 3b582e85..657d9ce6 100644 --- a/src/vmm/config.rs +++ b/src/vmm/config.rs @@ -42,42 +42,6 @@ pub fn parse_vm_dtb(vm_cfg: &mut AxVMConfig, dtb: &[u8]) { let fdt = Fdt::from_bytes(dtb) .expect("Failed to parse DTB image, perhaps the DTB is invalid or corrupted"); - let mut dram_regions = Vec::new(); - for mem in fdt.memory() { - for region in mem.regions() { - if region.size == 0 { - continue; - } - dram_regions.push((region.address as usize, region.size)); - } - } - - if vm_cfg.memory_regions().is_empty() { - info!( - "No memory region configured, using DTB memory regions: {:x?}", - dram_regions - ); - for mem in fdt.memory() { - for region in mem.regions() { - // Skip empty regions - if region.size == 0 { - continue; - } - warn!("DTB memory region: {:?}", region); - vm_cfg.add_memory_region(VmMemConfig { - gpa: region.address as usize, - size: region.size, - flags: (MappingFlags::READ - | MappingFlags::WRITE - | MappingFlags::EXECUTE - | MappingFlags::USER) - .bits(), - map_type: VmMemMappingType::MapIdentical, - }); - } - } - } - for reserved in fdt.reserved_memory() { warn!("Find reserved memory: {:?}", reserved.name()); } diff --git a/src/vmm/fdt.rs b/src/vmm/fdt.rs new file mode 100644 index 00000000..86b0b763 --- /dev/null +++ b/src/vmm/fdt.rs @@ -0,0 +1,101 @@ +use crate::vmm::{VMRef, images::load_vm_image_from_memory}; +use alloc::vec::Vec; +use axvm::config::{AxVMCrateConfig, VmMemConfig}; +use fdt_parser::Fdt; +use vm_fdt::{FdtWriter, FdtWriterNode}; +use axerrno::AxResult; + + +pub fn print_fdt(fdt_addr: usize, dtb_size: usize, vm: VMRef) { + let fdt_bytes = unsafe { core::slice::from_raw_parts(fdt_addr as *const u8, dtb_size) }; + let fdt = Fdt::from_bytes(fdt_bytes) + .map_err(|e| format!("Failed to parse FDT: {:#?}", e)) + .expect("Failed to parse FDT"); + + + for node in fdt.all_nodes() { + info!("node.name: {}", node.name()); + for prop in node.propertys() { + info!("prop.name: {}, node.name: {}", prop.name, node.name()); + } + } +} + + +pub fn updated_fdt(config: AxVMCrateConfig, fdt_addr: usize, dtb_size: usize, vm: VMRef) { + let mut new_fdt = FdtWriter::new().unwrap(); + let mut old_node_level = 0; + let mut child_node: Vec = Vec::new(); + + + let fdt_bytes = unsafe { core::slice::from_raw_parts(fdt_addr as *const u8, dtb_size) }; + let fdt = Fdt::from_bytes(fdt_bytes) + .map_err(|e| format!("Failed to parse FDT: {:#?}", e)) + .expect("Failed to parse FDT"); + + + for node in fdt.all_nodes() { + + + if node.name() == "/" { + child_node.push(new_fdt.begin_node("").unwrap()); + } else if node.name().starts_with("memory") { + // Skip memory nodes, will add them later + continue; + } else { + if node.level <= old_node_level { + for _ in node.level..=old_node_level { + let end_node = child_node.pop().unwrap(); + new_fdt.end_node(end_node).unwrap(); + } + } + child_node.push(new_fdt.begin_node(node.name()).unwrap()); + } + + + old_node_level = node.level; + + + for prop in node.propertys() { + new_fdt.property(prop.name, prop.raw_value()).unwrap(); + } + } + while let Some(node) = child_node.pop() { + old_node_level -= 1; + new_fdt.end_node(node).unwrap(); + + + // add memory node + if old_node_level == 1 { + info!("Adding memory node with regions: {:?}", config.kernel.memory_regions); + let memory_node = new_fdt.begin_node("memory").unwrap(); + add_memory_node(&config.kernel.memory_regions, &mut new_fdt); + new_fdt.end_node(memory_node).unwrap(); + } + } + assert_eq!(old_node_level , 0); + let new_fdt = new_fdt.finish().unwrap(); + load_vm_image_from_memory(&new_fdt, config.kernel.dtb_load_addr.unwrap(), vm.clone()) + .expect("Failed to load VM images"); + +} + + +fn add_memory_node(new_memory: &Vec, new_fdt: &mut FdtWriter) { + let mut new_value: Vec = Vec::new(); + for mem in new_memory { + let gpa = mem.gpa as u64; + let size = mem.size as u64; + new_value.push((gpa >> 32) as u32); + new_value.push((gpa & 0xFFFFFFFF) as u32); + new_value.push((size >> 32) as u32); + new_value.push((size & 0xFFFFFFFF) as u32); + } + info!("new_value: {:?}", new_value); + new_fdt + .property_array_u32("reg", new_value.as_ref()) + .unwrap(); + new_fdt + .property_string("device_type", "memory") + .unwrap(); +} \ No newline at end of file diff --git a/src/vmm/images/mod.rs b/src/vmm/images/mod.rs index 9902d340..7222f9f6 100644 --- a/src/vmm/images/mod.rs +++ b/src/vmm/images/mod.rs @@ -3,6 +3,10 @@ use axerrno::AxResult; use axvm::config::AxVMCrateConfig; +use alloc::vec::Vec; +use memory_addr::PhysAddr; +use crate::vmm::fdt::updated_fdt; + use crate::hal::CacheOp; use crate::vmm::VMRef; use crate::vmm::config::config; @@ -63,8 +67,12 @@ fn load_vm_images_from_memory(config: AxVMCrateConfig, vm: VMRef) -> AxResult { // Load DTB image if let Some(buffer) = vm_imags.dtb { - load_vm_image_from_memory(buffer, config.kernel.dtb_load_addr.unwrap(), vm.clone()) - .expect("Failed to load DTB images"); + + let mut dtb_buffer = Vec::with_capacity(buffer.len()); + dtb_buffer.extend_from_slice(&buffer); + let dtb_buffer_addr = dtb_buffer.as_ptr() as usize; + debug!("dtb_buffer_addr: 0x{:x}, size:{}", dtb_buffer_addr, dtb_buffer.len()); + updated_fdt(config.clone(), dtb_buffer_addr, buffer.len(), vm.clone()); } // Load BIOS image @@ -82,7 +90,7 @@ fn load_vm_images_from_memory(config: AxVMCrateConfig, vm: VMRef) -> AxResult { Ok(()) } -fn load_vm_image_from_memory(image_buffer: &[u8], load_addr: usize, vm: VMRef) -> AxResult { +pub fn load_vm_image_from_memory(image_buffer: &[u8], load_addr: usize, vm: VMRef) -> AxResult { let mut buffer_pos = 0; let image_load_gpa = GuestPhysAddr::from(load_addr); @@ -140,6 +148,8 @@ mod fs { use super::*; + use std::io::{BufReader, Read}; + pub fn kernal_read(config: &AxVMCrateConfig, read_size: usize) -> AxResult> { use std::fs::File; use std::io::Read; @@ -174,6 +184,7 @@ mod fs { /// into the guest VM's memory space based on the VM configuration. pub(crate) fn load_vm_images_from_filesystem(config: AxVMCrateConfig, vm: VMRef) -> AxResult { info!("Loading VM images from filesystem"); + let vm_config = config.clone(); // Load kernel image. load_vm_image( config.kernel.kernel_path, @@ -203,11 +214,22 @@ mod fs { // Load DTB image if needed. // Todo: generate DTB file for guest VM. if let Some(dtb_path) = config.kernel.dtb_path { - if let Some(dtb_load_addr) = config.kernel.dtb_load_addr { - load_vm_image(dtb_path, GuestPhysAddr::from(dtb_load_addr), vm.clone())?; - } else { - return ax_err!(NotFound, "DTB load addr is missed"); - } + let (dtb_file, dtb_size) = open_image_file(dtb_path.as_str())?; + info!("DTB file size {}", dtb_size); + + let mut file = BufReader::new(dtb_file); + let mut dtb_buffer = vec![0; dtb_size]; + + file.read_exact(&mut dtb_buffer).map_err(|err| { + ax_err_type!( + Io, + format!("Failed in reading from file {}, err {:?}", dtb_path, err) + ) + })?; + + let dtb_buffer_addr = dtb_buffer.as_ptr() as usize; + info!("DTB buffer addr: 0x{:x}, size: {}", dtb_buffer_addr, dtb_size); + updated_fdt(vm_config, dtb_buffer_addr, dtb_size, vm.clone()); }; Ok(()) } diff --git a/src/vmm/mod.rs b/src/vmm/mod.rs index 59a2f24f..86e4aef2 100644 --- a/src/vmm/mod.rs +++ b/src/vmm/mod.rs @@ -5,6 +5,7 @@ mod ivc; pub mod timer; mod vcpus; mod vm_list; +mod fdt; use core::sync::atomic::{AtomicUsize, Ordering}; use std::os::arceos::{ From 98d0a04adf0ff612467ee64da7cd3e0852751cf8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E7=9D=BF?= <34859362+ZR233@users.noreply.github.com> Date: Wed, 10 Sep 2025 18:25:05 +0800 Subject: [PATCH 185/219] [feat] support guest dyn entry (#253) * feat: support guest dyn entry * fix: x86_64 --- Cargo.lock | 35 +++++++- Cargo.toml | 18 ++-- src/hal/mod.rs | 26 +----- src/vmm/config.rs | 104 ++++++++++++++++++----- src/vmm/fdt.rs | 62 +++++++------- src/vmm/images/mod.rs | 189 +++++++++++++++++++++++++++--------------- src/vmm/mod.rs | 2 +- src/vmm/vcpus.rs | 2 +- 8 files changed, 281 insertions(+), 157 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 771334eb..3e3cb64f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -245,6 +245,12 @@ dependencies = [ "tock-registers 0.10.0", ] +[[package]] +name = "arrayvec" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" + [[package]] name = "as-any" version = "0.3.2" @@ -922,6 +928,7 @@ dependencies = [ "axvisor_api", "axvm", "bitflags 2.9.4", + "byte-unit", "cfg-if", "cpumask", "crate_interface", @@ -971,7 +978,7 @@ dependencies = [ [[package]] name = "axvm" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/axvm.git?branch=dev-irq#40051ba81b61818f54f19a6b298cfc214d597a91" +source = "git+https://github.com/arceos-hypervisor/axvm.git?branch=next#d419798b928236044ab9e8fa757ac3201708417c" dependencies = [ "arm_vcpu", "arm_vgic 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1105,6 +1112,16 @@ version = "3.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "46c5e41b57b8bba42a04676d81cb89e9ee8e859a1a66f80a5a72e1cb76b34d43" +[[package]] +name = "byte-unit" +version = "5.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1cd29c3c585209b0cbc7309bfe3ed7efd8c84c21b7af29c8bfae908f8777174" +dependencies = [ + "rust_decimal", + "utf8-width", +] + [[package]] name = "byteorder" version = "1.5.0" @@ -3029,6 +3046,16 @@ dependencies = [ "svgbobdoc", ] +[[package]] +name = "rust_decimal" +version = "1.37.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b203a6425500a03e0919c42d3c47caca51e79f1132046626d2c8871c5092035d" +dependencies = [ + "arrayvec", + "num-traits", +] + [[package]] name = "rustc-demangle" version = "0.1.26" @@ -3884,6 +3911,12 @@ dependencies = [ "serde", ] +[[package]] +name = "utf8-width" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86bd8d4e895da8537e5315b8254664e6b769c4ff3db18321b297a1e7004392e3" + [[package]] name = "utf8_iter" version = "1.0.4" diff --git a/Cargo.toml b/Cargo.toml index ad97ed2c..564689d4 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -29,23 +29,23 @@ timer_list = "0.1.0" # System dependent modules provided by ArceOS. axstd = {git = "https://github.com/arceos-hypervisor/arceos.git", branch = "hypervisor", features = [ - "alloc", + "alloc-level-1", "paging", "irq", "multitask", - "smp", - "page-alloc-64g", - "myplat" + "smp", # "page-alloc-64g", + "myplat", ]} # System dependent modules provided by ArceOS-Hypervisor. axaddrspace = "0.1.1" axhvc = {git = "https://github.com/arceos-hypervisor/axhvc.git"} axvcpu = "0.1" -axvm = {git = "https://github.com/arceos-hypervisor/axvm.git", branch = "dev-irq"} +axvm = {git = "https://github.com/arceos-hypervisor/axvm.git", branch = "next"} # System independent crates provided by ArceOS, these crates could be imported by remote url. axerrno = "0.1.0" +byte-unit = {version = "5", default-features = false, features = ["byte"]} crate_interface = "0.1" fdt-parser = "0.4" memory_addr = "0.4" @@ -54,7 +54,7 @@ page_table_multiarch = "0.5" percpu = {version = "0.2", features = ["arm-el2"]} rdrive = "0.16" -vm-fdt = { git = "https://github.com/bullhh/vm-fdt.git", default-features = false, features = ["alloc"]} +vm-fdt = {git = "https://github.com/bullhh/vm-fdt.git", default-features = false, features = ["alloc"]} axdevice = {git = "https://github.com/arceos-hypervisor/axdevice.git"} axdevice_base = "0.1" @@ -77,7 +77,9 @@ toml = {version = "0.9"} [workspace] exclude = ["crates/arceos"] -members = ["platform/*"] +members = [ + "platform/*", # "crates/*" +] [patch.crates-io] -axvcpu = {git="https://github.com/arceos-hypervisor/axvcpu.git", branch="next"} \ No newline at end of file +axvcpu = {git = "https://github.com/arceos-hypervisor/axvcpu.git", branch = "next"} diff --git a/src/hal/mod.rs b/src/hal/mod.rs index 5cd12069..324ea71a 100644 --- a/src/hal/mod.rs +++ b/src/hal/mod.rs @@ -7,10 +7,10 @@ use std::os::arceos::{ }; use axerrno::{AxResult, ax_err_type}; -use memory_addr::{PAGE_SIZE_4K, align_up_4k}; +use memory_addr::PAGE_SIZE_4K; use page_table_multiarch::PagingHandler; -use arceos::modules::{axalloc, axhal}; +use arceos::modules::axhal; use axaddrspace::{AxMmHal, HostPhysAddr, HostVirtAddr}; use axvcpu::AxVCpuHal; use axvm::{AxVMHal, AxVMPerCpu}; @@ -39,28 +39,6 @@ pub struct AxVMHalImpl; impl AxVMHal for AxVMHalImpl { type PagingHandler = axhal::paging::PagingHandlerImpl; - fn alloc_memory_region_at(base: HostPhysAddr, size: usize) -> bool { - axalloc::global_allocator() - .alloc_pages_at( - base.as_usize(), - align_up_4k(size) / PAGE_SIZE_4K, - PAGE_SIZE_4K, - ) - .map_err(|err| { - error!( - "Failed to allocate memory region [{:?}~{:?}]: {:?}", - base, - base + size, - err - ); - }) - .is_ok() - } - - fn dealloc_memory_region_at(base: HostPhysAddr, size: usize) { - axalloc::global_allocator().dealloc_pages(base.as_usize(), size / PAGE_SIZE_4K) - } - fn virt_to_phys(vaddr: HostVirtAddr) -> HostPhysAddr { axhal::mem::virt_to_phys(vaddr) } diff --git a/src/vmm/config.rs b/src/vmm/config.rs index 657d9ce6..9fdf701e 100644 --- a/src/vmm/config.rs +++ b/src/vmm/config.rs @@ -1,12 +1,15 @@ +use core::alloc::Layout; + use alloc::string::ToString; -use alloc::vec::Vec; -use axaddrspace::MappingFlags; -use axvm::config::{ - AxVMConfig, AxVMCrateConfig, PassThroughDeviceConfig, VmMemConfig, VmMemMappingType, +use axaddrspace::GuestPhysAddr; +use axvm::{ + VMMemoryRegion, + config::{AxVMConfig, AxVMCrateConfig, PassThroughDeviceConfig, VmMemMappingType}, }; +use memory_addr::MemoryAddr; -use crate::vmm::{VM, images::load_vm_images, vm_list::push_vm}; +use crate::vmm::{VM, images::ImageLoader, vm_list::push_vm}; #[allow(clippy::module_inception)] pub mod config { @@ -148,21 +151,21 @@ pub fn parse_vm_dtb(vm_cfg: &mut AxVMConfig, dtb: &[u8]) { if let Some(size) = reg.size { let start = reg.address as usize; - let end = start + size; - if vm_cfg.contains_memory_range(&(start..end)) { - trace!( - "Skipping DTB node {} with register address {:#x} and size {:#x} as it overlaps with existing memory regions", - node.name(), - reg.address, - size - ); - continue; - } + // let end = start + size; + // if vm_cfg.contains_memory_range(&(start..end)) { + // trace!( + // "Skipping DTB node {} with register address {:#x} and size {:#x} as it overlaps with existing memory regions", + // node.name(), + // reg.address, + // size + // ); + // continue; + // } let pt_dev = PassThroughDeviceConfig { name: node.name().to_string(), - base_gpa: reg.address as _, - base_hpa: reg.address as _, + base_gpa: start, + base_hpa: start, length: size as _, irq_id: 0, }; @@ -188,9 +191,10 @@ pub fn init_guest_vms() { for raw_cfg_str in gvm_raw_configs { let vm_create_config = AxVMCrateConfig::from_toml(raw_cfg_str).expect("Failed to resolve VM config"); + if let Some(linux) = super::images::get_image_header(&vm_create_config) { - info!( - "VM[{}] Linux image header: {:#x?}", + debug!( + "VM[{}] Linux header: {:#x?}", vm_create_config.base.id, linux ); } @@ -213,8 +217,68 @@ pub fn init_guest_vms() { let vm = VM::new(vm_config).expect("Failed to create VM"); push_vm(vm.clone()); + vm_alloc_memorys(&vm_create_config, &vm); + + let main_mem = vm + .memory_regions() + .first() + .cloned() + .expect("VM must have at least one memory region"); + + config_guest_address(&vm, &main_mem); + // Load corresponding images for VM. info!("VM[{}] created success, loading images...", vm.id()); - load_vm_images(vm_create_config, vm.clone()).expect("Failed to load VM images"); + + let mut loader = ImageLoader::new(main_mem, vm_create_config, vm.clone()); + loader.load().expect("Failed to load VM images"); + + if let Err(e) = vm.init() { + panic!("VM[{}] setup failed: {:?}", vm.id(), e); + } + } +} + +fn config_guest_address(vm: &VM, main_memory: &VMMemoryRegion) { + const MB: usize = 1024 * 1024; + vm.with_config(|config| { + if main_memory.is_identical() { + debug!( + "Adjusting kernel load address from {:#x} to {:#x}", + config.image_config.kernel_load_gpa, main_memory.gpa + ); + let mut kernel_addr = main_memory.gpa; + if config.image_config.bios_load_gpa.is_some() { + kernel_addr += MB * 2; // leave 2MB for BIOS + } + let dtb_addr = (main_memory.gpa + (main_memory.size().min(512 * MB) / 2).max(64 * MB)) + .align_up(2 * MB); + + config.image_config.kernel_load_gpa = kernel_addr; + config.cpu_config.bsp_entry = kernel_addr; + config.cpu_config.ap_entry = kernel_addr; + config.image_config.dtb_load_gpa = Some(dtb_addr); + } + }); +} + +fn vm_alloc_memorys(vm_create_config: &AxVMCrateConfig, vm: &VM) { + const MB: usize = 1024 * 1024; + const ALIGN: usize = 2 * MB; + + for memory in &vm_create_config.kernel.memory_regions { + match memory.map_type { + VmMemMappingType::MapAlloc => { + vm.alloc_memory_region( + Layout::from_size_align(memory.size, ALIGN).unwrap(), + Some(GuestPhysAddr::from(memory.gpa)), + ) + .expect("Failed to allocate memory region for VM"); + } + VmMemMappingType::MapIdentical => { + vm.alloc_memory_region(Layout::from_size_align(memory.size, ALIGN).unwrap(), None) + .expect("Failed to allocate memory region for VM"); + } + } } } diff --git a/src/vmm/fdt.rs b/src/vmm/fdt.rs index 86b0b763..2dd0e338 100644 --- a/src/vmm/fdt.rs +++ b/src/vmm/fdt.rs @@ -1,17 +1,24 @@ +use core::ptr::NonNull; + use crate::vmm::{VMRef, images::load_vm_image_from_memory}; use alloc::vec::Vec; -use axvm::config::{AxVMCrateConfig, VmMemConfig}; +use axaddrspace::GuestPhysAddr; +use axvm::VMMemoryRegion; use fdt_parser::Fdt; use vm_fdt::{FdtWriter, FdtWriterNode}; -use axerrno::AxResult; - -pub fn print_fdt(fdt_addr: usize, dtb_size: usize, vm: VMRef) { - let fdt_bytes = unsafe { core::slice::from_raw_parts(fdt_addr as *const u8, dtb_size) }; - let fdt = Fdt::from_bytes(fdt_bytes) - .map_err(|e| format!("Failed to parse FDT: {:#?}", e)) +#[allow(dead_code)] +pub fn print_fdt(fdt_addr: NonNull) { + let fdt = Fdt::from_ptr(fdt_addr) + .map_err(|e| format!("Failed to parse FDT: {e:#?}")) .expect("Failed to parse FDT"); + for rsv in fdt.memory_reservation_block() { + info!( + "Reserved memory: addr={:#p}, size={:#x}", + rsv.address, rsv.size + ); + } for node in fdt.all_nodes() { info!("node.name: {}", node.name()); @@ -21,22 +28,17 @@ pub fn print_fdt(fdt_addr: usize, dtb_size: usize, vm: VMRef) { } } - -pub fn updated_fdt(config: AxVMCrateConfig, fdt_addr: usize, dtb_size: usize, vm: VMRef) { +pub fn updated_fdt(dest_addr: GuestPhysAddr, fdt_src: NonNull, dtb_size: usize, vm: VMRef) { let mut new_fdt = FdtWriter::new().unwrap(); let mut old_node_level = 0; let mut child_node: Vec = Vec::new(); - - let fdt_bytes = unsafe { core::slice::from_raw_parts(fdt_addr as *const u8, dtb_size) }; + let fdt_bytes = unsafe { core::slice::from_raw_parts(fdt_src.as_ptr(), dtb_size) }; let fdt = Fdt::from_bytes(fdt_bytes) - .map_err(|e| format!("Failed to parse FDT: {:#?}", e)) + .map_err(|e| format!("Failed to parse FDT: {e:#?}")) .expect("Failed to parse FDT"); - for node in fdt.all_nodes() { - - if node.name() == "/" { child_node.push(new_fdt.begin_node("").unwrap()); } else if node.name().starts_with("memory") { @@ -52,10 +54,8 @@ pub fn updated_fdt(config: AxVMCrateConfig, fdt_addr: usize, dtb_size: usize, vm child_node.push(new_fdt.begin_node(node.name()).unwrap()); } - old_node_level = node.level; - for prop in node.propertys() { new_fdt.property(prop.name, prop.raw_value()).unwrap(); } @@ -64,38 +64,34 @@ pub fn updated_fdt(config: AxVMCrateConfig, fdt_addr: usize, dtb_size: usize, vm old_node_level -= 1; new_fdt.end_node(node).unwrap(); - // add memory node if old_node_level == 1 { - info!("Adding memory node with regions: {:?}", config.kernel.memory_regions); + let memory_regions = vm.memory_regions(); + info!("Adding memory node with regions: {:?}", memory_regions); let memory_node = new_fdt.begin_node("memory").unwrap(); - add_memory_node(&config.kernel.memory_regions, &mut new_fdt); + add_memory_node(&memory_regions, &mut new_fdt); new_fdt.end_node(memory_node).unwrap(); } } - assert_eq!(old_node_level , 0); + assert_eq!(old_node_level, 0); let new_fdt = new_fdt.finish().unwrap(); - load_vm_image_from_memory(&new_fdt, config.kernel.dtb_load_addr.unwrap(), vm.clone()) - .expect("Failed to load VM images"); - + // print_fdt(NonNull::new(new_fdt.as_ptr() as usize as _).unwrap()); + load_vm_image_from_memory(&new_fdt, dest_addr, vm.clone()).expect("Failed to load VM images"); } - -fn add_memory_node(new_memory: &Vec, new_fdt: &mut FdtWriter) { +fn add_memory_node(new_memory: &[VMMemoryRegion], new_fdt: &mut FdtWriter) { let mut new_value: Vec = Vec::new(); for mem in new_memory { - let gpa = mem.gpa as u64; - let size = mem.size as u64; + let gpa = mem.gpa.as_usize() as u64; + let size = mem.size() as u64; new_value.push((gpa >> 32) as u32); new_value.push((gpa & 0xFFFFFFFF) as u32); new_value.push((size >> 32) as u32); new_value.push((size & 0xFFFFFFFF) as u32); } - info!("new_value: {:?}", new_value); + info!("new_value: {:#x?}", new_value); new_fdt .property_array_u32("reg", new_value.as_ref()) .unwrap(); - new_fdt - .property_string("device_type", "memory") - .unwrap(); -} \ No newline at end of file + new_fdt.property_string("device_type", "memory").unwrap(); +} diff --git a/src/vmm/images/mod.rs b/src/vmm/images/mod.rs index 7222f9f6..39e71a53 100644 --- a/src/vmm/images/mod.rs +++ b/src/vmm/images/mod.rs @@ -1,10 +1,12 @@ +use core::ptr::NonNull; + use axaddrspace::GuestPhysAddr; use axerrno::AxResult; +use axvm::VMMemoryRegion; use axvm::config::AxVMCrateConfig; +use byte_unit::Byte; -use alloc::vec::Vec; -use memory_addr::PhysAddr; use crate::vmm::fdt::updated_fdt; use crate::hal::CacheOp; @@ -40,69 +42,115 @@ where func(vm_imags.kernel) } -/// Loads the VM image files. -pub fn load_vm_images(config: AxVMCrateConfig, vm: VMRef) -> AxResult { - match config.kernel.image_location.as_deref() { - Some("memory") => load_vm_images_from_memory(config, vm), - #[cfg(feature = "fs")] - Some("fs") => fs::load_vm_images_from_filesystem(config, vm), - _ => unimplemented!( - "Check your \"image_location\" in config.toml, \"memory\" and \"fs\" are supported,\n NOTE: \"fs\" feature should be enabled if you want to load images from filesystem. (APP_FEATURES=fs)" - ), - } +pub struct ImageLoader { + main_memory: VMMemoryRegion, + vm: VMRef, + config: AxVMCrateConfig, + kernel_load_gpa: GuestPhysAddr, + bios_load_gpa: Option, + dtb_load_gpa: Option, + ramdisk_load_gpa: Option, } -/// Load VM images from memory -/// into the guest VM's memory space based on the VM configuration. -fn load_vm_images_from_memory(config: AxVMCrateConfig, vm: VMRef) -> AxResult { - info!("Loading VM[{}] images from memory", config.base.id); +impl ImageLoader { + pub fn new(main_memory: VMMemoryRegion, config: AxVMCrateConfig, vm: VMRef) -> Self { + Self { + main_memory, + vm, + config, + kernel_load_gpa: GuestPhysAddr::default(), + bios_load_gpa: None, + dtb_load_gpa: None, + ramdisk_load_gpa: None, + } + } - let vm_imags = config::get_memory_images() - .iter() - .find(|&v| v.id == config.base.id) - .expect("VM images is missed, Perhaps add `VM_CONFIGS=PATH/CONFIGS/FILE` command."); + pub fn load(&mut self) -> AxResult { + info!( + "Loading VM[{}] images into memory region: gpa={:#x}, hva={:#x}, size={:#}", + self.vm.id(), + self.main_memory.gpa, + self.main_memory.hva, + Byte::from(self.main_memory.size()) + ); - load_vm_image_from_memory(vm_imags.kernel, config.kernel.kernel_load_addr, vm.clone()) - .expect("Failed to load VM images"); + self.vm.with_config(|config| { + self.kernel_load_gpa = config.image_config.kernel_load_gpa; + self.dtb_load_gpa = config.image_config.dtb_load_gpa; + self.bios_load_gpa = config.image_config.bios_load_gpa; + self.ramdisk_load_gpa = config.image_config.ramdisk_load_gpa; + }); + + match self.config.kernel.image_location.as_deref() { + Some("memory") => self.load_vm_images_from_memory(), + #[cfg(feature = "fs")] + Some("fs") => fs::load_vm_images_from_filesystem(self), + _ => unimplemented!( + "Check your \"image_location\" in config.toml, \"memory\" and \"fs\" are supported,\n NOTE: \"fs\" feature should be enabled if you want to load images from filesystem. (APP_FEATURES=fs)" + ), + } + } - // Load DTB image - if let Some(buffer) = vm_imags.dtb { + /// Load VM images from memory + /// into the guest VM's memory space based on the VM configuration. + fn load_vm_images_from_memory(&self) -> AxResult { + info!("Loading VM[{}] images from memory", self.config.base.id); + + let vm_imags = config::get_memory_images() + .iter() + .find(|&v| v.id == self.config.base.id) + .expect("VM images is missed, Perhaps add `VM_CONFIGS=PATH/CONFIGS/FILE` command."); + + load_vm_image_from_memory(vm_imags.kernel, self.kernel_load_gpa, self.vm.clone()) + .expect("Failed to load VM images"); + // Load DTB image + if let Some(buffer) = vm_imags.dtb { + debug!( + "DTB buffer addr: {:x}, size: {:#}", + self.dtb_load_gpa.unwrap(), + Byte::from(buffer.len()) + ); - let mut dtb_buffer = Vec::with_capacity(buffer.len()); - dtb_buffer.extend_from_slice(&buffer); - let dtb_buffer_addr = dtb_buffer.as_ptr() as usize; - debug!("dtb_buffer_addr: 0x{:x}, size:{}", dtb_buffer_addr, dtb_buffer.len()); - updated_fdt(config.clone(), dtb_buffer_addr, buffer.len(), vm.clone()); - } + updated_fdt( + self.dtb_load_gpa.unwrap(), + NonNull::new(buffer.as_ptr() as *mut u8).unwrap(), + buffer.len(), + self.vm.clone(), + ); + } - // Load BIOS image - if let Some(buffer) = vm_imags.bios { - load_vm_image_from_memory(buffer, config.kernel.bios_load_addr.unwrap(), vm.clone()) - .expect("Failed to load BIOS images"); - } + // Load BIOS image + if let Some(buffer) = vm_imags.bios { + load_vm_image_from_memory(buffer, self.bios_load_gpa.unwrap(), self.vm.clone()) + .expect("Failed to load BIOS images"); + } - // Load Ramdisk image - if let Some(buffer) = vm_imags.ramdisk { - load_vm_image_from_memory(buffer, config.kernel.ramdisk_load_addr.unwrap(), vm.clone()) - .expect("Failed to load Ramdisk images"); - }; + // Load Ramdisk image + if let Some(buffer) = vm_imags.ramdisk { + load_vm_image_from_memory(buffer, self.ramdisk_load_gpa.unwrap(), self.vm.clone()) + .expect("Failed to load Ramdisk images"); + }; - Ok(()) + Ok(()) + } } -pub fn load_vm_image_from_memory(image_buffer: &[u8], load_addr: usize, vm: VMRef) -> AxResult { +pub fn load_vm_image_from_memory( + image_buffer: &[u8], + load_addr: GuestPhysAddr, + vm: VMRef, +) -> AxResult { let mut buffer_pos = 0; - let image_load_gpa = GuestPhysAddr::from(load_addr); let image_size = image_buffer.len(); debug!( "loading VM image from memory {:?} {}", - image_load_gpa, + load_addr, image_buffer.len() ); - let image_load_regions = vm.get_image_load_region(image_load_gpa, image_size)?; + let image_load_regions = vm.get_image_load_region(load_addr, image_size)?; for region in image_load_regions { let region_len = region.len(); @@ -138,8 +186,6 @@ pub fn load_vm_image_from_memory(image_buffer: &[u8], load_addr: usize, vm: VMRe #[cfg(feature = "fs")] mod fs { - use alloc::string::String; - use std::{fs::File, vec::Vec}; use axerrno::{AxResult, ax_err, ax_err_type}; @@ -182,39 +228,34 @@ mod fs { /// Loads the VM image files from the filesystem /// into the guest VM's memory space based on the VM configuration. - pub(crate) fn load_vm_images_from_filesystem(config: AxVMCrateConfig, vm: VMRef) -> AxResult { + pub(crate) fn load_vm_images_from_filesystem(loader: &ImageLoader) -> AxResult { info!("Loading VM images from filesystem"); - let vm_config = config.clone(); // Load kernel image. load_vm_image( - config.kernel.kernel_path, - GuestPhysAddr::from(config.kernel.kernel_load_addr), - vm.clone(), + &loader.config.kernel.kernel_path, + loader.kernel_load_gpa, + loader.vm.clone(), )?; // Load BIOS image if needed. - if let Some(bios_path) = config.kernel.bios_path { - if let Some(bios_load_addr) = config.kernel.bios_load_addr { - load_vm_image(bios_path, GuestPhysAddr::from(bios_load_addr), vm.clone())?; + if let Some(bios_path) = &loader.config.kernel.bios_path { + if let Some(bios_load_addr) = loader.bios_load_gpa { + load_vm_image(bios_path, bios_load_addr, loader.vm.clone())?; } else { return ax_err!(NotFound, "BIOS load addr is missed"); } }; // Load Ramdisk image if needed. - if let Some(ramdisk_path) = config.kernel.ramdisk_path { - if let Some(ramdisk_load_addr) = config.kernel.ramdisk_load_addr { - load_vm_image( - ramdisk_path, - GuestPhysAddr::from(ramdisk_load_addr), - vm.clone(), - )?; + if let Some(ramdisk_path) = &loader.config.kernel.ramdisk_path { + if let Some(ramdisk_load_addr) = loader.ramdisk_load_gpa { + load_vm_image(ramdisk_path, ramdisk_load_addr, loader.vm.clone())?; } else { return ax_err!(NotFound, "Ramdisk load addr is missed"); } }; // Load DTB image if needed. // Todo: generate DTB file for guest VM. - if let Some(dtb_path) = config.kernel.dtb_path { - let (dtb_file, dtb_size) = open_image_file(dtb_path.as_str())?; + if let Some(dtb_path) = &loader.config.kernel.dtb_path { + let (dtb_file, dtb_size) = open_image_file(dtb_path)?; info!("DTB file size {}", dtb_size); let mut file = BufReader::new(dtb_file); @@ -227,16 +268,26 @@ mod fs { ) })?; - let dtb_buffer_addr = dtb_buffer.as_ptr() as usize; - info!("DTB buffer addr: 0x{:x}, size: {}", dtb_buffer_addr, dtb_size); - updated_fdt(vm_config, dtb_buffer_addr, dtb_size, vm.clone()); + let dtb_addr = loader.dtb_load_gpa.unwrap(); + + info!( + "DTB buffer addr: {:x}, size: {:#}", + dtb_addr, + Byte::from(dtb_size) + ); + updated_fdt( + dtb_addr, + NonNull::new(dtb_buffer.as_mut_ptr()).unwrap(), + dtb_size, + loader.vm.clone(), + ); }; Ok(()) } - fn load_vm_image(image_path: String, image_load_gpa: GuestPhysAddr, vm: VMRef) -> AxResult { + fn load_vm_image(image_path: &str, image_load_gpa: GuestPhysAddr, vm: VMRef) -> AxResult { use std::io::{BufReader, Read}; - let (image_file, image_size) = open_image_file(image_path.as_str())?; + let (image_file, image_size) = open_image_file(image_path)?; let image_load_regions = vm.get_image_load_region(image_load_gpa, image_size)?; let mut file = BufReader::new(image_file); diff --git a/src/vmm/mod.rs b/src/vmm/mod.rs index 86e4aef2..09cb27c6 100644 --- a/src/vmm/mod.rs +++ b/src/vmm/mod.rs @@ -1,11 +1,11 @@ mod config; +mod fdt; mod hvc; mod images; mod ivc; pub mod timer; mod vcpus; mod vm_list; -mod fdt; use core::sync::atomic::{AtomicUsize, Ordering}; use std::os::arceos::{ diff --git a/src/vmm/vcpus.rs b/src/vmm/vcpus.rs index 61caa4ea..ae2d5b42 100644 --- a/src/vmm/vcpus.rs +++ b/src/vmm/vcpus.rs @@ -420,7 +420,7 @@ fn vcpu_run() { ); // Get the mapping relationship between all vCPUs and physical CPUs from the configuration - let vcpu_mappings = vm.config().get_vcpu_affinities_pcpu_ids(); + let vcpu_mappings = vm.get_vcpu_affinities_pcpu_ids(); // Find the vCPU ID corresponding to the physical ID let target_vcpu_id = vcpu_mappings From a52f8f70768ff4fe1dc7fa9ccb75208ec8a9c8f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E7=9D=BF?= Date: Thu, 11 Sep 2025 15:51:11 +0800 Subject: [PATCH 186/219] update dep --- Cargo.lock | 120 ++++++++++++++++++++++++++++++++--------------------- 1 file changed, 72 insertions(+), 48 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 3e3cb64f..3e124ce1 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -142,7 +142,7 @@ checksum = "b0674a1ddeecb70197781e945de4b3b8ffb61fa939a5597bcf48503737663100" [[package]] name = "arceos_api" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#f6dd02576647e39cdb8cd1dce0bbdc09d5a7e0ad" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#1556398efa198d236280dc9b74c3d7ab34d627a1" dependencies = [ "axalloc", "axconfig 0.2.0 (git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor)", @@ -194,7 +194,7 @@ dependencies = [ [[package]] name = "arm_vcpu" version = "0.1.1" -source = "git+https://github.com/arceos-hypervisor/arm_vcpu?branch=next-dev#c6eaba4fc0a7941b42ed2ade356a5f595baeddd3" +source = "git+https://github.com/arceos-hypervisor/arm_vcpu?branch=next-dev#b24cc3635c049302ab8d58d3b54007bb5a053a96" dependencies = [ "aarch64-cpu", "axaddrspace", @@ -303,7 +303,7 @@ dependencies = [ [[package]] name = "axalloc" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#f6dd02576647e39cdb8cd1dce0bbdc09d5a7e0ad" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#1556398efa198d236280dc9b74c3d7ab34d627a1" dependencies = [ "allocator", "axerrno", @@ -316,7 +316,7 @@ dependencies = [ [[package]] name = "axconfig" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#f6dd02576647e39cdb8cd1dce0bbdc09d5a7e0ad" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#1556398efa198d236280dc9b74c3d7ab34d627a1" dependencies = [ "axconfig-macros", ] @@ -324,7 +324,7 @@ dependencies = [ [[package]] name = "axconfig" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#f873ef7913033a15169e5df0774fd9510a2cdc50" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=vmm-dev#b49cecf3eff5bb2f3520ea8b17f07b12736c5ebc" dependencies = [ "axconfig-macros", ] @@ -408,7 +408,7 @@ dependencies = [ [[package]] name = "axdriver" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#f6dd02576647e39cdb8cd1dce0bbdc09d5a7e0ad" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#1556398efa198d236280dc9b74c3d7ab34d627a1" dependencies = [ "arm-gic-driver", "axalloc", @@ -471,7 +471,7 @@ dependencies = [ [[package]] name = "axfeat" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#f6dd02576647e39cdb8cd1dce0bbdc09d5a7e0ad" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#1556398efa198d236280dc9b74c3d7ab34d627a1" dependencies = [ "axalloc", "axdriver", @@ -487,7 +487,7 @@ dependencies = [ [[package]] name = "axfs" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#f6dd02576647e39cdb8cd1dce0bbdc09d5a7e0ad" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#1556398efa198d236280dc9b74c3d7ab34d627a1" dependencies = [ "axdriver", "axdriver_block", @@ -541,7 +541,7 @@ dependencies = [ [[package]] name = "axhal" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#f6dd02576647e39cdb8cd1dce0bbdc09d5a7e0ad" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#1556398efa198d236280dc9b74c3d7ab34d627a1" dependencies = [ "aarch64-cpu", "axalloc", @@ -585,7 +585,7 @@ dependencies = [ [[package]] name = "axlog" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#f6dd02576647e39cdb8cd1dce0bbdc09d5a7e0ad" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#1556398efa198d236280dc9b74c3d7ab34d627a1" dependencies = [ "cfg-if", "crate_interface", @@ -596,7 +596,7 @@ dependencies = [ [[package]] name = "axmm" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#f6dd02576647e39cdb8cd1dce0bbdc09d5a7e0ad" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#1556398efa198d236280dc9b74c3d7ab34d627a1" dependencies = [ "axalloc", "axconfig 0.2.0 (git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor)", @@ -612,7 +612,7 @@ dependencies = [ [[package]] name = "axns" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#f6dd02576647e39cdb8cd1dce0bbdc09d5a7e0ad" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#1556398efa198d236280dc9b74c3d7ab34d627a1" dependencies = [ "crate_interface", "lazyinit", @@ -827,7 +827,7 @@ dependencies = [ [[package]] name = "axruntime" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#f6dd02576647e39cdb8cd1dce0bbdc09d5a7e0ad" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#1556398efa198d236280dc9b74c3d7ab34d627a1" dependencies = [ "axalloc", "axconfig 0.2.0 (git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor)", @@ -857,7 +857,7 @@ dependencies = [ [[package]] name = "axstd" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#f6dd02576647e39cdb8cd1dce0bbdc09d5a7e0ad" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#1556398efa198d236280dc9b74c3d7ab34d627a1" dependencies = [ "arceos_api", "axerrno", @@ -870,7 +870,7 @@ dependencies = [ [[package]] name = "axsync" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#f6dd02576647e39cdb8cd1dce0bbdc09d5a7e0ad" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#1556398efa198d236280dc9b74c3d7ab34d627a1" dependencies = [ "axtask", "kspin", @@ -880,7 +880,7 @@ dependencies = [ [[package]] name = "axtask" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#f6dd02576647e39cdb8cd1dce0bbdc09d5a7e0ad" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#1556398efa198d236280dc9b74c3d7ab34d627a1" dependencies = [ "axconfig 0.2.0 (git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor)", "axhal", @@ -978,7 +978,7 @@ dependencies = [ [[package]] name = "axvm" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/axvm.git?branch=next#d419798b928236044ab9e8fa757ac3201708417c" +source = "git+https://github.com/arceos-hypervisor/axvm.git?branch=next#ecdc6b61d40f46d5f8e8252d6cb996086df9e473" dependencies = [ "arm_vcpu", "arm_vgic 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1468,12 +1468,12 @@ dependencies = [ [[package]] name = "errno" -version = "0.3.13" +version = "0.3.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "778e2ac28f6c47af28e4907f13ffd1e1ddbd400980a9abd7c8df189bf578a5ad" +checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" dependencies = [ "libc", - "windows-sys 0.60.2", + "windows-sys 0.61.0", ] [[package]] @@ -1664,7 +1664,7 @@ dependencies = [ "cfg-if", "libc", "r-efi", - "wasi 0.14.4+wasi-0.2.4", + "wasi 0.14.5+wasi-0.2.4", ] [[package]] @@ -2226,9 +2226,9 @@ dependencies = [ [[package]] name = "linux-raw-sys" -version = "0.9.4" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd945864f07fe9f5371a27ad7b52a172b4b499999f1d97574c9fa68373937e12" +checksum = "df1d3c3b53da64cf5760482273a98e575c651a67eec7f77df96b5b642de8f039" [[package]] name = "litemap" @@ -2453,9 +2453,9 @@ dependencies = [ [[package]] name = "page-table-generic" -version = "0.6.0" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79217ff706e8dd356df4b6d624bae950ae5c39a17c6959b81d73dedfc9653316" +checksum = "4a302d085e35d9edfa3ec531475ed95eae8a92e7e47ce7a15bd4e9c5e74f7526" dependencies = [ "bitflags 2.9.4", "log", @@ -2558,9 +2558,9 @@ dependencies = [ [[package]] name = "pie-boot-loader-aarch64" -version = "0.2.4" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ef37498b7b1081f2b5edcd13d1a84bd2c214bdabcf4cfaed4d5bd83636fc40f" +checksum = "229b4c734b72ab47e849f86cbd6ff54b3b0847c43061055bf6d5ce2f81a77ab4" dependencies = [ "aarch64-cpu", "aarch64-cpu-ext", @@ -3064,15 +3064,15 @@ checksum = "56f7d92ca342cea22a06f2121d944b4fd82af56988c270852495420f961d4ace" [[package]] name = "rustix" -version = "1.0.8" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11181fbabf243db407ef8df94a6ce0b2f9a733bd8be4ad02b4eda9602296cac8" +checksum = "cd15f8a2c5551a84d56efdc1cd049089e409ac19a3072d5037a17fd70719ff3e" dependencies = [ "bitflags 2.9.4", "errno", "libc", "linux-raw-sys", - "windows-sys 0.60.2", + "windows-sys 0.61.0", ] [[package]] @@ -3108,9 +3108,9 @@ dependencies = [ [[package]] name = "rustls-webpki" -version = "0.103.4" +version = "0.103.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a17884ae0c1b773f1ccd2bd4a8c72f16da897310a98b0e84bf349ad5ead92fc" +checksum = "b5a37813727b78798e53c2bec3f5e8fe12a6d6f8389bf9ca7802add4c9905ad8" dependencies = [ "ring", "rustls-pki-types", @@ -3168,11 +3168,11 @@ checksum = "e6e36312fb5ddc10d08ecdc65187402baba4ac34585cb9d1b78522ae2358d890" [[package]] name = "schannel" -version = "0.1.27" +version = "0.1.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f29ebaa345f945cec9fbbc532eb307f0fdad8161f281b6369539c8d84876b3d" +checksum = "891d81b926048e76efe18581bf793546b4c0eaf8448d72be8de2bbee5fd166e1" dependencies = [ - "windows-sys 0.59.0", + "windows-sys 0.61.0", ] [[package]] @@ -3365,9 +3365,9 @@ dependencies = [ [[package]] name = "somehal" -version = "0.3.11" +version = "0.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d2cfae07fda13743ce231653afa228997865d5ef41a04633a46ecdf827893ca" +checksum = "f0f297845eeb41c8be669f4461a499fd421795423d010f273fe9cb824429b057" dependencies = [ "aarch64-cpu", "aarch64-cpu-ext", @@ -3559,15 +3559,15 @@ dependencies = [ [[package]] name = "tempfile" -version = "3.21.0" +version = "3.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15b61f8f20e3a6f7e0649d825294eaf317edce30f82cf6026e7e4cb9222a7d1e" +checksum = "84fa4d11fadde498443cca10fd3ac23c951f0dc59e080e9f4b93d4df4e4eea53" dependencies = [ "fastrand", "getrandom 0.3.3", "once_cell", "rustix", - "windows-sys 0.60.2", + "windows-sys 0.61.0", ] [[package]] @@ -3877,9 +3877,9 @@ dependencies = [ [[package]] name = "unicode-ident" -version = "1.0.18" +version = "1.0.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" +checksum = "f63a545481291138910575129486daeaf8ac54aee4387fe7906919f7830c7d9d" [[package]] name = "unicode-width" @@ -3983,9 +3983,18 @@ checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" [[package]] name = "wasi" -version = "0.14.4+wasi-0.2.4" +version = "0.14.5+wasi-0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88a5f4a424faf49c3c2c344f166f0662341d470ea185e939657aaff130f0ec4a" +checksum = "a4494f6290a82f5fe584817a676a34b9d6763e8d9d18204009fb31dceca98fd4" +dependencies = [ + "wasip2", +] + +[[package]] +name = "wasip2" +version = "1.0.0+wasi-0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03fa2761397e5bd52002cd7e73110c71af2109aca4e521a9f40473fe685b0a24" dependencies = [ "wit-bindgen", ] @@ -4078,13 +4087,19 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a" +[[package]] +name = "windows-link" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "45e46c0661abb7180e7b9c281db115305d49ca1709ab8242adf09666d2173c65" + [[package]] name = "windows-registry" version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5b8a9ed28765efc97bbc954883f4e6796c33a06546ebafacbabee9696967499e" dependencies = [ - "windows-link", + "windows-link 0.1.3", "windows-result", "windows-strings", ] @@ -4095,7 +4110,7 @@ version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "56f42bd332cc6c8eac5af113fc0c1fd6a8fd2aa08a0119358686e5160d0586c6" dependencies = [ - "windows-link", + "windows-link 0.1.3", ] [[package]] @@ -4104,7 +4119,7 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "56e6c93f3a0c3b36176cb1327a4958a0353d5d166c2a35cb268ace15e91d3b57" dependencies = [ - "windows-link", + "windows-link 0.1.3", ] [[package]] @@ -4143,6 +4158,15 @@ dependencies = [ "windows-targets 0.53.3", ] +[[package]] +name = "windows-sys" +version = "0.61.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e201184e40b2ede64bc2ea34968b28e33622acdbbf37104f0e4a33f7abe657aa" +dependencies = [ + "windows-link 0.2.0", +] + [[package]] name = "windows-targets" version = "0.48.5" @@ -4180,7 +4204,7 @@ version = "0.53.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d5fe6031c4041849d7c496a8ded650796e7b6ecc19df1a431c1a363342e5dc91" dependencies = [ - "windows-link", + "windows-link 0.1.3", "windows_aarch64_gnullvm 0.53.0", "windows_aarch64_msvc 0.53.0", "windows_i686_gnu 0.53.0", From 7b2cfd1db02f9e694e2aa98762e14d27a665b9e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E7=9D=BF?= Date: Thu, 11 Sep 2025 16:09:18 +0800 Subject: [PATCH 187/219] fix: remove unused x86_rtc package and clean up workspace configuration --- Cargo.lock | 11 ----------- Cargo.toml | 11 ++++++----- 2 files changed, 6 insertions(+), 16 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 3e124ce1..ee4a171f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -814,7 +814,6 @@ dependencies = [ "x2apic", "x86", "x86_64", - "x86_rtc", ] [[package]] @@ -4420,16 +4419,6 @@ dependencies = [ "volatile", ] -[[package]] -name = "x86_rtc" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1a42420da20c01d82e5d42231570efa3b9e16a5515eaaf9ee4e964f49cc1313" -dependencies = [ - "cfg-if", - "x86_64", -] - [[package]] name = "x86_vcpu" version = "0.1.0" diff --git a/Cargo.toml b/Cargo.toml index 564689d4..4bedecb6 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -75,11 +75,12 @@ quote = "1.0" syn = "2.0" toml = {version = "0.9"} -[workspace] -exclude = ["crates/arceos"] -members = [ - "platform/*", # "crates/*" -] +# [workspace] +# exclude = ["crates/arceos"] +# members = [ +# "platform/*", +# "crates/*", +# ] [patch.crates-io] axvcpu = {git = "https://github.com/arceos-hypervisor/axvcpu.git", branch = "next"} From 5350bb80e4a6979199af22b5a55b90ab7fbb9f9a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E7=9D=BF?= Date: Thu, 11 Sep 2025 18:04:30 +0800 Subject: [PATCH 188/219] fix: update arceos dependency versions in Cargo.lock --- Cargo.lock | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index ee4a171f..b6209c58 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -142,7 +142,7 @@ checksum = "b0674a1ddeecb70197781e945de4b3b8ffb61fa939a5597bcf48503737663100" [[package]] name = "arceos_api" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#1556398efa198d236280dc9b74c3d7ab34d627a1" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#e3118e659f23fe296f5097540ade131f0a605b7f" dependencies = [ "axalloc", "axconfig 0.2.0 (git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor)", @@ -303,7 +303,7 @@ dependencies = [ [[package]] name = "axalloc" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#1556398efa198d236280dc9b74c3d7ab34d627a1" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#e3118e659f23fe296f5097540ade131f0a605b7f" dependencies = [ "allocator", "axerrno", @@ -316,7 +316,7 @@ dependencies = [ [[package]] name = "axconfig" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#1556398efa198d236280dc9b74c3d7ab34d627a1" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#e3118e659f23fe296f5097540ade131f0a605b7f" dependencies = [ "axconfig-macros", ] @@ -408,7 +408,7 @@ dependencies = [ [[package]] name = "axdriver" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#1556398efa198d236280dc9b74c3d7ab34d627a1" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#e3118e659f23fe296f5097540ade131f0a605b7f" dependencies = [ "arm-gic-driver", "axalloc", @@ -471,7 +471,7 @@ dependencies = [ [[package]] name = "axfeat" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#1556398efa198d236280dc9b74c3d7ab34d627a1" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#e3118e659f23fe296f5097540ade131f0a605b7f" dependencies = [ "axalloc", "axdriver", @@ -487,7 +487,7 @@ dependencies = [ [[package]] name = "axfs" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#1556398efa198d236280dc9b74c3d7ab34d627a1" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#e3118e659f23fe296f5097540ade131f0a605b7f" dependencies = [ "axdriver", "axdriver_block", @@ -541,7 +541,7 @@ dependencies = [ [[package]] name = "axhal" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#1556398efa198d236280dc9b74c3d7ab34d627a1" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#e3118e659f23fe296f5097540ade131f0a605b7f" dependencies = [ "aarch64-cpu", "axalloc", @@ -585,7 +585,7 @@ dependencies = [ [[package]] name = "axlog" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#1556398efa198d236280dc9b74c3d7ab34d627a1" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#e3118e659f23fe296f5097540ade131f0a605b7f" dependencies = [ "cfg-if", "crate_interface", @@ -596,7 +596,7 @@ dependencies = [ [[package]] name = "axmm" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#1556398efa198d236280dc9b74c3d7ab34d627a1" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#e3118e659f23fe296f5097540ade131f0a605b7f" dependencies = [ "axalloc", "axconfig 0.2.0 (git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor)", @@ -612,7 +612,7 @@ dependencies = [ [[package]] name = "axns" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#1556398efa198d236280dc9b74c3d7ab34d627a1" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#e3118e659f23fe296f5097540ade131f0a605b7f" dependencies = [ "crate_interface", "lazyinit", @@ -826,7 +826,7 @@ dependencies = [ [[package]] name = "axruntime" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#1556398efa198d236280dc9b74c3d7ab34d627a1" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#e3118e659f23fe296f5097540ade131f0a605b7f" dependencies = [ "axalloc", "axconfig 0.2.0 (git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor)", @@ -856,7 +856,7 @@ dependencies = [ [[package]] name = "axstd" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#1556398efa198d236280dc9b74c3d7ab34d627a1" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#e3118e659f23fe296f5097540ade131f0a605b7f" dependencies = [ "arceos_api", "axerrno", @@ -869,7 +869,7 @@ dependencies = [ [[package]] name = "axsync" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#1556398efa198d236280dc9b74c3d7ab34d627a1" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#e3118e659f23fe296f5097540ade131f0a605b7f" dependencies = [ "axtask", "kspin", @@ -879,7 +879,7 @@ dependencies = [ [[package]] name = "axtask" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#1556398efa198d236280dc9b74c3d7ab34d627a1" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#e3118e659f23fe296f5097540ade131f0a605b7f" dependencies = [ "axconfig 0.2.0 (git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor)", "axhal", @@ -2557,9 +2557,9 @@ dependencies = [ [[package]] name = "pie-boot-loader-aarch64" -version = "0.2.5" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "229b4c734b72ab47e849f86cbd6ff54b3b0847c43061055bf6d5ce2f81a77ab4" +checksum = "62d5fe5c25c9eec3e30ec44fbaa74ca083a5f6f152d202588ff87609cf48bc2b" dependencies = [ "aarch64-cpu", "aarch64-cpu-ext", @@ -3364,9 +3364,9 @@ dependencies = [ [[package]] name = "somehal" -version = "0.3.13" +version = "0.3.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0f297845eeb41c8be669f4461a499fd421795423d010f273fe9cb824429b057" +checksum = "c761facff5f76229f70721de7f824a3b86d6b3f699efe50a1147c18f71a27a51" dependencies = [ "aarch64-cpu", "aarch64-cpu-ext", From c76d1f2d76f8fd7fcd40800f3e2a6dea6a51e7e5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E7=9D=BF?= Date: Fri, 12 Sep 2025 09:23:49 +0800 Subject: [PATCH 189/219] feat: enhance clippy script to support feature extraction and target mapping --- .github/workflows/build.yml | 5 +- scripts/clippy.py | 121 ++++++++++++++++++++++++++++++------ 2 files changed, 105 insertions(+), 21 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 5f938ae1..b46187fe 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -8,7 +8,6 @@ jobs: strategy: fail-fast: false matrix: - arch: [x86_64, riscv64, aarch64] rust-toolchain: [nightly-2025-05-20, nightly] env: RUSTUP_TOOLCHAIN: ${{ matrix.rust-toolchain }} @@ -18,12 +17,12 @@ jobs: with: toolchain: ${{ matrix.rust-toolchain }} components: rust-src, clippy, rustfmt - targets: x86_64-unknown-none, riscv64gc-unknown-none-elf, aarch64-unknown-none, aarch64-unknown-none-softfloat + targets: x86_64-unknown-none, riscv64gc-unknown-none-elf, aarch64-unknown-none-softfloat - name: Check rust version run: rustc --version --verbose - name: Clippy the repo continue-on-error: ${{ matrix.rust-toolchain == 'nightly' }} - run: ./axvisor.sh clippy --arch ${{ matrix.arch }} + run: ./axvisor.sh clippy fmt: runs-on: ubuntu-latest diff --git a/scripts/clippy.py b/scripts/clippy.py index 48a5e272..ad7a50b8 100644 --- a/scripts/clippy.py +++ b/scripts/clippy.py @@ -3,10 +3,19 @@ import os import subprocess import sys -from typing import Optional +from typing import Optional, List from .config import AxvisorConfig, create_config_from_args, format_make_command_base from .setup import setup_arceos +try: + # Prefer tomllib on Python 3.11+ + import tomllib as _toml_impl # type: ignore +except Exception: + try: + import toml as _toml_impl # type: ignore + except Exception: + _toml_impl = None + def main(args) -> int: """运行 clippy 代码检查""" @@ -17,26 +26,102 @@ def main(args) -> int: if not setup_arceos(): print("设置 arceos 失败,无法继续执行 clippy") return 1 + # 读取根目录的 Cargo.toml 并解析 [features] + cargo_toml_path = os.path.join(os.getcwd(), "Cargo.toml") + if not os.path.exists(cargo_toml_path): + print(f"未找到 {cargo_toml_path},无法继续") + return 1 - cmd = format_make_command_base() + # 解析 Cargo.toml,优先使用 tomllib(需要以二进制打开),否则使用 toml 包 + parsed = None + if _toml_impl is None: + print( + "需要 Python 3.11 的 tomllib 或安装 python-toml 包(pip install toml)来解析 Cargo.toml" + ) + return 1 + try: + # 如果实现是 tomllib,需要以二进制方式读取 + if ( + getattr(_toml_impl, "loads", None) is None + and getattr(_toml_impl, "load", None) is not None + ): + # tomllib: load(fileobj) expects binary fileobj + with open(cargo_toml_path, "rb") as f: + parsed = _toml_impl.load(f) + else: + # toml (third-party) works with text + with open(cargo_toml_path, "r", encoding="utf-8") as f: + parsed = _toml_impl.load(f) + except Exception as e: + print(f"解析 Cargo.toml 失败: {e}") + return 1 - cmd.append(f"ARCH={args.arch}") + features_dict = parsed.get("features", {}) if isinstance(parsed, dict) else {} + all_features: List[str] = list(features_dict.keys()) - cmd.append("clippy") + # 找出以 plat- 开头的 feature + plat_features = [f for f in all_features if f.startswith("plat-")] + # 其他非 plat 的 feature + non_plat_features = [f for f in all_features if not f.startswith("plat-")] - # 构建 make 命令 - cmd = " ".join(cmd) + if not plat_features: + print( + "在 Cargo.toml 的 [features] 中未找到以 'plat-' 开头的 feature,将以所有 feature 运行一次 clippy" + ) + features_arg = ",".join(all_features) if all_features else "" + cmd_parts = ["cargo", "clippy"] + if features_arg: + cmd_parts.extend(["--features", f'"{features_arg}"']) + cmd = " ".join(cmd_parts) + print(f"执行命令: {cmd}") + try: + subprocess.run(cmd, shell=True, check=True) + print("clippy 检查完成!") + return 0 + except subprocess.CalledProcessError as e: + print(f"clippy 检查失败,退出码: {e.returncode}") + return e.returncode + except Exception as e: + print(f"clippy 检查过程中发生错误: {e}") + return 1 - print(f"执行命令: {cmd}") + # 简单的 arch -> target 三元组映射(可按需扩展) + arch_target_map = { + "aarch64": "aarch64-unknown-none-softfloat", + "x86": "x86_64-unknown-none", + "x86_64": "x86_64-unknown-none", + "riscv64": "riscv64gc-unknown-none-elf", + "riscv": "riscv64gc-unknown-none-elf", + } - try: - # 执行 make 命令 - subprocess.run(cmd, shell=True, check=True) - print("clippy 检查完成!") - return 0 - except subprocess.CalledProcessError as e: - print(f"clippy 检查失败,退出码: {e.returncode}") - return e.returncode - except Exception as e: - print(f"clippy 检查过程中发生错误: {e}") - return 1 + any_failure = False + for plat in plat_features: + # 从 plat 名称尝试提取 arch token(plat--...) + parts = plat.split("-") + arch_token = parts[1] if len(parts) > 1 else None + target = arch_target_map.get(arch_token) if arch_token else None + + # 构建 features: 选中当前 plat + 所有非 plat features(避免同时启用多个 plat) + features_to_use = [plat] + non_plat_features + features_arg = ",".join(features_to_use) if features_to_use else "" + + cmd_parts = ["cargo", "clippy"] + if target: + cmd_parts.extend(["--target", target]) + if features_arg: + cmd_parts.extend(["--features", f'"{features_arg}"']) + + cmd = " ".join(cmd_parts) + print(f"执行命令: {cmd}") + + try: + subprocess.run(cmd, shell=True, check=True) + print(f"{plat}: clippy 检查完成") + except subprocess.CalledProcessError as e: + print(f"{plat}: clippy 检查失败,退出码: {e.returncode}") + any_failure = True + except Exception as e: + print(f"{plat}: clippy 检查过程中发生错误: {e}") + any_failure = True + + return 1 if any_failure else 0 From 746fb6cc7fcf3dfe628faf9b568f27d4e2a5cf94 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E7=9D=BF?= Date: Fri, 12 Sep 2025 09:32:27 +0800 Subject: [PATCH 190/219] fix: update clippy script to use toml package for parsing Cargo.toml --- scripts/clippy.py | 29 +++++++---------------------- 1 file changed, 7 insertions(+), 22 deletions(-) diff --git a/scripts/clippy.py b/scripts/clippy.py index ad7a50b8..18c30da4 100644 --- a/scripts/clippy.py +++ b/scripts/clippy.py @@ -8,13 +8,10 @@ from .setup import setup_arceos try: - # Prefer tomllib on Python 3.11+ - import tomllib as _toml_impl # type: ignore + # Use third-party `toml` package for parsing (keep behaviour simple) + import toml as _toml_impl # type: ignore except Exception: - try: - import toml as _toml_impl # type: ignore - except Exception: - _toml_impl = None + _toml_impl = None def main(args) -> int: @@ -32,26 +29,14 @@ def main(args) -> int: print(f"未找到 {cargo_toml_path},无法继续") return 1 - # 解析 Cargo.toml,优先使用 tomllib(需要以二进制打开),否则使用 toml 包 + # 解析 Cargo.toml,使用第三方 toml 包(文本模式) parsed = None if _toml_impl is None: - print( - "需要 Python 3.11 的 tomllib 或安装 python-toml 包(pip install toml)来解析 Cargo.toml" - ) + print("需要安装 python-toml 包(pip install toml)来解析 Cargo.toml") return 1 try: - # 如果实现是 tomllib,需要以二进制方式读取 - if ( - getattr(_toml_impl, "loads", None) is None - and getattr(_toml_impl, "load", None) is not None - ): - # tomllib: load(fileobj) expects binary fileobj - with open(cargo_toml_path, "rb") as f: - parsed = _toml_impl.load(f) - else: - # toml (third-party) works with text - with open(cargo_toml_path, "r", encoding="utf-8") as f: - parsed = _toml_impl.load(f) + with open(cargo_toml_path, "r", encoding="utf-8") as f: + parsed = _toml_impl.load(f) except Exception as e: print(f"解析 Cargo.toml 失败: {e}") return 1 From fdfd7f2b9ccfe32fc5d2e781e699fce01e1630a8 Mon Sep 17 00:00:00 2001 From: Josen-B Date: Fri, 12 Sep 2025 13:14:39 +0800 Subject: [PATCH 191/219] update rk3568 config file --- Cargo.lock | 36 ++++++++++----------- configs/vms/arceos-aarch64-rk3568-smp1.toml | 13 +++++--- configs/vms/arceos-aarch64-rk3568-smp2.toml | 14 ++++---- configs/vms/linux-aarch64-rk3568_smp1.toml | 16 ++++----- configs/vms/linux-aarch64-rk3568_smp2.toml | 16 ++++----- 5 files changed, 46 insertions(+), 49 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index b6209c58..bbb588a8 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -142,7 +142,7 @@ checksum = "b0674a1ddeecb70197781e945de4b3b8ffb61fa939a5597bcf48503737663100" [[package]] name = "arceos_api" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#e3118e659f23fe296f5097540ade131f0a605b7f" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#1556398efa198d236280dc9b74c3d7ab34d627a1" dependencies = [ "axalloc", "axconfig 0.2.0 (git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor)", @@ -194,7 +194,7 @@ dependencies = [ [[package]] name = "arm_vcpu" version = "0.1.1" -source = "git+https://github.com/arceos-hypervisor/arm_vcpu?branch=next-dev#b24cc3635c049302ab8d58d3b54007bb5a053a96" +source = "git+https://github.com/arceos-hypervisor/arm_vcpu?branch=next#b24cc3635c049302ab8d58d3b54007bb5a053a96" dependencies = [ "aarch64-cpu", "axaddrspace", @@ -303,7 +303,7 @@ dependencies = [ [[package]] name = "axalloc" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#e3118e659f23fe296f5097540ade131f0a605b7f" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#1556398efa198d236280dc9b74c3d7ab34d627a1" dependencies = [ "allocator", "axerrno", @@ -316,7 +316,7 @@ dependencies = [ [[package]] name = "axconfig" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#e3118e659f23fe296f5097540ade131f0a605b7f" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#1556398efa198d236280dc9b74c3d7ab34d627a1" dependencies = [ "axconfig-macros", ] @@ -408,7 +408,7 @@ dependencies = [ [[package]] name = "axdriver" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#e3118e659f23fe296f5097540ade131f0a605b7f" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#1556398efa198d236280dc9b74c3d7ab34d627a1" dependencies = [ "arm-gic-driver", "axalloc", @@ -471,7 +471,7 @@ dependencies = [ [[package]] name = "axfeat" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#e3118e659f23fe296f5097540ade131f0a605b7f" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#1556398efa198d236280dc9b74c3d7ab34d627a1" dependencies = [ "axalloc", "axdriver", @@ -487,7 +487,7 @@ dependencies = [ [[package]] name = "axfs" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#e3118e659f23fe296f5097540ade131f0a605b7f" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#1556398efa198d236280dc9b74c3d7ab34d627a1" dependencies = [ "axdriver", "axdriver_block", @@ -541,7 +541,7 @@ dependencies = [ [[package]] name = "axhal" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#e3118e659f23fe296f5097540ade131f0a605b7f" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#1556398efa198d236280dc9b74c3d7ab34d627a1" dependencies = [ "aarch64-cpu", "axalloc", @@ -585,7 +585,7 @@ dependencies = [ [[package]] name = "axlog" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#e3118e659f23fe296f5097540ade131f0a605b7f" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#1556398efa198d236280dc9b74c3d7ab34d627a1" dependencies = [ "cfg-if", "crate_interface", @@ -596,7 +596,7 @@ dependencies = [ [[package]] name = "axmm" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#e3118e659f23fe296f5097540ade131f0a605b7f" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#1556398efa198d236280dc9b74c3d7ab34d627a1" dependencies = [ "axalloc", "axconfig 0.2.0 (git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor)", @@ -612,7 +612,7 @@ dependencies = [ [[package]] name = "axns" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#e3118e659f23fe296f5097540ade131f0a605b7f" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#1556398efa198d236280dc9b74c3d7ab34d627a1" dependencies = [ "crate_interface", "lazyinit", @@ -826,7 +826,7 @@ dependencies = [ [[package]] name = "axruntime" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#e3118e659f23fe296f5097540ade131f0a605b7f" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#1556398efa198d236280dc9b74c3d7ab34d627a1" dependencies = [ "axalloc", "axconfig 0.2.0 (git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor)", @@ -856,7 +856,7 @@ dependencies = [ [[package]] name = "axstd" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#e3118e659f23fe296f5097540ade131f0a605b7f" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#1556398efa198d236280dc9b74c3d7ab34d627a1" dependencies = [ "arceos_api", "axerrno", @@ -869,7 +869,7 @@ dependencies = [ [[package]] name = "axsync" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#e3118e659f23fe296f5097540ade131f0a605b7f" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#1556398efa198d236280dc9b74c3d7ab34d627a1" dependencies = [ "axtask", "kspin", @@ -879,7 +879,7 @@ dependencies = [ [[package]] name = "axtask" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#e3118e659f23fe296f5097540ade131f0a605b7f" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#1556398efa198d236280dc9b74c3d7ab34d627a1" dependencies = [ "axconfig 0.2.0 (git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor)", "axhal", @@ -977,7 +977,7 @@ dependencies = [ [[package]] name = "axvm" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/axvm.git?branch=next#ecdc6b61d40f46d5f8e8252d6cb996086df9e473" +source = "git+https://github.com/arceos-hypervisor/axvm.git?branch=next#b4f561f568536078b02a58572cae5f442102782c" dependencies = [ "arm_vcpu", "arm_vgic 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1092,9 +1092,9 @@ checksum = "2261d10cca569e4643e526d8dc2e62e433cc8aba21ab764233731f8d369bf394" [[package]] name = "bitmap-allocator" -version = "0.2.0" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5553d824a3564e1c242975cfc962d15e6299bfa4a90c44c14208673c16df51f3" +checksum = "e11e01b72b2a40aab84454fb6b71090c2a6873e1b5ba22a8e3d74e83086a2304" dependencies = [ "bit_field", ] diff --git a/configs/vms/arceos-aarch64-rk3568-smp1.toml b/configs/vms/arceos-aarch64-rk3568-smp1.toml index 24d0d499..eddf9ca4 100644 --- a/configs/vms/arceos-aarch64-rk3568-smp1.toml +++ b/configs/vms/arceos-aarch64-rk3568-smp1.toml @@ -21,25 +21,28 @@ phys_cpu_sets = [1] # The entry point of the kernel image. entry_point = 0x7008_0000 # The location of image: "memory" | "fs". -# Load from file system. +# Load from memory. image_location = "memory" # The load address of the kernel image. kernel_load_addr = 0x7008_0000 ## The file path of the kernel image. -kernel_path = "/code/axvisor/axboard_test/config/rk3568-arceos/arceos.bin" +kernel_path = "/path/arceos-aarch64-dyn.bin" ## The file path of the device tree blob (DTB). dtb_load_addr = 0x7000_0000 -dtb_path = "/code/axvisor/axboard_test/config/rk3568-arceos/arceos-rk3568.dtb" +dtb_path = "/path/arceos-rk3568.dtb" # Memory regions with format (`base_paddr`, `size`, `flags`, `map_type`). # For `map_type`, 0 means `MAP_ALLOC`, 1 means `MAP_IDENTICAL`. -memory_regions = [] +memory_regions = [ + [0x7000_0000, 0x1000_0000, 0x7, 0], # System RAM 1G MAP_IDENTICAL +] # # Device specifications # [devices] -# Emu_devices. +# The interrupt mode. interrupt_mode = "passthrough" +# Emu_devices. # Name Base-Ipa Ipa_len Alloc-Irq Emu-Type EmuConfig. emu_devices = [] diff --git a/configs/vms/arceos-aarch64-rk3568-smp2.toml b/configs/vms/arceos-aarch64-rk3568-smp2.toml index d7ef6eac..b70a70ee 100644 --- a/configs/vms/arceos-aarch64-rk3568-smp2.toml +++ b/configs/vms/arceos-aarch64-rk3568-smp2.toml @@ -21,29 +21,27 @@ phys_cpu_sets = [1, 2] # The entry point of the kernel image. entry_point = 0x7008_0000 # The location of image: "memory" | "fs". -# Load from file system. +# Load from memory. image_location = "memory" # The load address of the kernel image. kernel_load_addr = 0x7008_0000 ## The file path of the kernel image. -kernel_path = "/guest/arceos-aarch64-rk3568_smp2.bin" +kernel_path = "/path/arceos-aarch64-dyn.bin" ## The file path of the device tree blob (DTB). dtb_load_addr = 0x7000_0000 -dtb_path = "/guest/arceos-aarch64-rk3568_smp2.dtb" +dtb_path = "/path/arceos-aarch64-rk3568_smp2.dtb" # Memory regions with format (`base_paddr`, `size`, `flags`, `map_type`). # For `map_type`, 0 means `MAP_ALLOC`, 1 means `MAP_IDENTICAL`. memory_regions = [ - # [0x1000_0000, 0x800_0000, 0x7, 0], - # [0x7000_0000, 0x1000_0000, 0x7, 1], # System RAM 1G MAP_IDENTICAL - # [0x1_f000_0000, 0x1000_0000 , 0x7, 1], # System RAM 1G MAP_IDENTICAL - # [0x600_0000, 0x240_0000, 0x7, 1], # System RAM MAP_IDENTICAL - # [0x1_f000_0000, 0x1000_0000, 0x7, 1], # System RAM MAP_IDENTICAL + [0x7000_0000, 0x1000_0000, 0x7, 1], # System RAM 1G MAP_IDENTICAL ] # # Device specifications # [devices] +# The interrupt mode. +interrupt_mode = "passthrough" # Emu_devices. # Name Base-Ipa Ipa_len Alloc-Irq Emu-Type EmuConfig. emu_devices = [] diff --git a/configs/vms/linux-aarch64-rk3568_smp1.toml b/configs/vms/linux-aarch64-rk3568_smp1.toml index 9bd48e01..69217e45 100644 --- a/configs/vms/linux-aarch64-rk3568_smp1.toml +++ b/configs/vms/linux-aarch64-rk3568_smp1.toml @@ -21,28 +21,26 @@ phys_cpu_sets = [1] # The entry point of the kernel image. entry_point = 0x8008_0000 # The location of image: "memory" | "fs". -# Load from file system. -image_location = "fs" +# Load from memory. +image_location = "memory" # The load address of the kernel image. kernel_load_addr = 0x8008_0000 ## The file path of the kernel image. -kernel_path = "/guest/Image" +kernel_path = "/path/Image" ## The file path of the device tree blob (DTB). dtb_load_addr = 0x8000_0000 -dtb_path = "/guest/linux-aarch64-rk3568_smp1.dtb" +dtb_path = "/path/linux-aarch64-rk3568_smp1.dtb" # Memory regions with format (`base_paddr`, `size`, `flags`, `map_type`). # For `map_type`, 0 means `MAP_ALLOC`, 1 means `MAP_IDENTICAL`. memory_regions = [ - # [0x1000_0000, 0x800_0000, 0x7, 0], - # [0x8000_0000, 0x6000_0000, 0x7, 1], # System RAM 1G MAP_IDENTICAL - # [0x1_f000_0000, 0x1000_0000 , 0x7, 1], # System RAM 1G MAP_IDENTICAL - # [0x600_0000, 0x240_0000, 0x7, 1], # System RAM MAP_IDENTICAL - # [0x1_f000_0000, 0x1000_0000, 0x7, 1], # System RAM MAP_IDENTICAL + [0x8000_0000, 0x6000_0000, 0x7, 1], # System RAM 1G MAP_IDENTICAL ] # # Device specifications # [devices] +# The interrupt mode. +interrupt_mode = "passthrough" # Emu_devices. # Name Base-Ipa Ipa_len Alloc-Irq Emu-Type EmuConfig. emu_devices = [] diff --git a/configs/vms/linux-aarch64-rk3568_smp2.toml b/configs/vms/linux-aarch64-rk3568_smp2.toml index 31e98c55..411b7fdc 100644 --- a/configs/vms/linux-aarch64-rk3568_smp2.toml +++ b/configs/vms/linux-aarch64-rk3568_smp2.toml @@ -21,28 +21,26 @@ phys_cpu_sets = [4, 8] # The entry point of the kernel image. entry_point = 0x8008_0000 # The location of image: "memory" | "fs". -# Load from file system. -image_location = "fs" +# Load from memory. +image_location = "memory" # The load address of the kernel image. kernel_load_addr = 0x8008_0000 ## The file path of the kernel image. -kernel_path = "/guest/Image" +kernel_path = "/code/axvisor/rk3568-linux/Image" ## The file path of the device tree blob (DTB). dtb_load_addr = 0x8000_0000 -dtb_path = "/guest/linux-aarch64-rk3568_smp2.dtb" +dtb_path = "/code/axvisor/configs/vms/linux-aarch64-rk3568_smp2.dtb" # Memory regions with format (`base_paddr`, `size`, `flags`, `map_type`). # For `map_type`, 0 means `MAP_ALLOC`, 1 means `MAP_IDENTICAL`. memory_regions = [ - # [0x1000_0000, 0x800_0000, 0x7, 0], - # [0x8000_0000, 0x6000_0000, 0x7, 1], # System RAM 1G MAP_IDENTICAL - # [0x1_f000_0000, 0x1000_0000 , 0x7, 1], # System RAM 1G MAP_IDENTICAL - # [0x600_0000, 0x240_0000, 0x7, 1], # System RAM MAP_IDENTICAL - # [0x1_f000_0000, 0x1000_0000, 0x7, 1], # System RAM MAP_IDENTICAL + [0x8000_0000, 0x6000_0000, 0x7, 1], # System RAM 1G MAP_IDENTICAL ] # # Device specifications # [devices] +# The interrupt mode. +interrupt_mode = "passthrough" # Emu_devices. # Name Base-Ipa Ipa_len Alloc-Irq Emu-Type EmuConfig. emu_devices = [] From d44784003533c07ee79d712aed41fcd39604cadd Mon Sep 17 00:00:00 2001 From: YanLien Date: Fri, 12 Sep 2025 13:38:17 +0800 Subject: [PATCH 192/219] update e2000 config file --- configs/vms/arceos-aarch64-e2000_smp1.toml | 48 +++++++++++----------- configs/vms/arceos-aarch64-e2000_smp2.toml | 6 +-- configs/vms/linux-aarch64-e2000_smp1.toml | 9 ++-- configs/vms/linux-aarch64-e2000_smp2.toml | 9 ++-- scripts/config.py | 2 +- 5 files changed, 38 insertions(+), 36 deletions(-) diff --git a/configs/vms/arceos-aarch64-e2000_smp1.toml b/configs/vms/arceos-aarch64-e2000_smp1.toml index cb104a85..dbbae96e 100644 --- a/configs/vms/arceos-aarch64-e2000_smp1.toml +++ b/configs/vms/arceos-aarch64-e2000_smp1.toml @@ -26,14 +26,14 @@ image_location = "memory" # The load address of the kernel image. kernel_load_addr = 0x20_2008_0000 ## The file path of the kernel image. -kernel_path = "/guest/arceos-aarch64-e2000_smp1.bin" +kernel_path = "/path/to/arceos_aarch64-dyn_smp1.bin" ## The file path of the device tree blob (DTB). dtb_load_addr = 0x20_2000_0000 -dtb_path = "/guest/arceos-aarch64-e2000_smp1.dtb" +dtb_path = "/path/to/axvisor/configs/vms/arceos-aarch64-e2000_smp1.dtb" # Memory regions with format (`base_paddr`, `size`, `flags`, `map_type`). # For `map_type`, 0 means `MAP_ALLOC`, 1 means `MAP_IDENTICAL`. memory_regions = [ - #[0x20_2000_0000, 0x2000_0000, 0x7, 1], # System RAM MAP_IDENTICAL + [0x20_2000_0000, 0x2000_0000, 0x7, 1], # System RAM MAP_IDENTICAL ] # @@ -47,25 +47,25 @@ emu_devices = [] # Pass-through devices. # Name Base-Ipa Base-Pa Length Alloc-Irq. passthrough_devices = [ - [ - "UART1", - 0x2800_d000, - 0x2800_d000, - 0x1000, - 0x1, - ], - [ - "gic-v3", - 0x3080_0000, - 0x3080_0000, - 0x10000, - 0x1, - ], - [ - "gic-v3-its", - 0x3082_0000, - 0x3082_0000, - 0x100000, - 0x1, - ], + [ + "UART1", + 0x2800_d000, + 0x2800_d000, + 0x1000, + 0x1, + ], + [ + "gic-v3", + 0x3080_0000, + 0x3080_0000, + 0x10000, + 0x1, + ], + [ + "gic-v3-its", + 0x3082_0000, + 0x3082_0000, + 0x100000, + 0x1, + ], ] diff --git a/configs/vms/arceos-aarch64-e2000_smp2.toml b/configs/vms/arceos-aarch64-e2000_smp2.toml index e374ba3b..4f69f198 100644 --- a/configs/vms/arceos-aarch64-e2000_smp2.toml +++ b/configs/vms/arceos-aarch64-e2000_smp2.toml @@ -26,14 +26,14 @@ image_location = "memory" # The load address of the kernel image. kernel_load_addr = 0x20_2008_0000 ## The file path of the kernel image. -kernel_path = "/guest/arceos-aarch64-e2000_smp2.bin" +kernel_path = "/path/to/arceos_aarch64-dyn_smp1.bin" ## The file path of the device tree blob (DTB). dtb_load_addr = 0x20_2000_0000 -dtb_path = "/guest/arceos-aarch64-e2000_smp2.dtb" +dtb_path = "/path/to/axvisor/configs/vms/arceos-aarch64-e2000_smp2.dtb" # Memory regions with format (`base_paddr`, `size`, `flags`, `map_type`). # For `map_type`, 0 means `MAP_ALLOC`, 1 means `MAP_IDENTICAL`. memory_regions = [ - #[0x20_2000_0000, 0x2000_0000, 0x7, 1], # System RAM MAP_IDENTICAL + [0x20_2000_0000, 0x2000_0000, 0x7, 1], # System RAM MAP_IDENTICAL ] # diff --git a/configs/vms/linux-aarch64-e2000_smp1.toml b/configs/vms/linux-aarch64-e2000_smp1.toml index 724e4300..52017828 100644 --- a/configs/vms/linux-aarch64-e2000_smp1.toml +++ b/configs/vms/linux-aarch64-e2000_smp1.toml @@ -22,18 +22,18 @@ phys_cpu_sets = [8] entry_point = 0x20_4008_0000 # The location of image: "memory" | "fs". # Load from file system. -image_location = "fs" +image_location = "memory" # The load address of the kernel image. kernel_load_addr = 0x20_4008_0000 ## The file path of the kernel image. -kernel_path = "/guest/Image" +kernel_path = "/path/to/Image" ## The file path of the device tree blob (DTB). dtb_load_addr = 0x20_4000_0000 -dtb_path = "/guest/linux-aarch64-e2000_smp1.dtb" +dtb_path = "/path/to/axvisor/configs/vms/linux-aarch64-e2000_smp1.dtb" # Memory regions with format (`base_paddr`, `size`, `flags`, `map_type`). # For `map_type`, 0 means `MAP_ALLOC`, 1 means `MAP_IDENTICAL`. memory_regions = [ - # [0x20_4000_0000, 0x4000_0000, 0x7, 1], # System RAM MAP_IDENTICAL + [0x20_4000_0000, 0x4000_0000, 0x7, 1], # System RAM MAP_IDENTICAL ] # @@ -42,6 +42,7 @@ memory_regions = [ [devices] # Emu_devices. # Name Base-Ipa Ipa_len Alloc-Irq Emu-Type EmuConfig. +interrupt_mode = "passthrough" emu_devices = [] # Pass-through devices. diff --git a/configs/vms/linux-aarch64-e2000_smp2.toml b/configs/vms/linux-aarch64-e2000_smp2.toml index de717d57..bf409a0b 100644 --- a/configs/vms/linux-aarch64-e2000_smp2.toml +++ b/configs/vms/linux-aarch64-e2000_smp2.toml @@ -22,18 +22,18 @@ phys_cpu_sets = [1, 4] entry_point = 0x20_4008_0000 # The location of image: "memory" | "fs". # Load from file system. -image_location = "fs" +image_location = "memory" # The load address of the kernel image. kernel_load_addr = 0x20_4008_0000 ## The file path of the kernel image. -kernel_path = "/guest/Image" +kernel_path = "/path/to/Image" ## The file path of the device tree blob (DTB). dtb_load_addr = 0x20_4000_0000 -dtb_path = "/guest/linux-aarch64-e2000_smp2.dtb" +dtb_path = "/path/to/axvisor/configs/vms/linux-aarch64-e2000_smp2.dtb" # Memory regions with format (`base_paddr`, `size`, `flags`, `map_type`). # For `map_type`, 0 means `MAP_ALLOC`, 1 means `MAP_IDENTICAL`. memory_regions = [ - # [0x20_4000_0000, 0x4000_0000, 0x7, 1], # System RAM MAP_IDENTICAL + [0x20_4000_0000, 0x4000_0000, 0x7, 1], # System RAM MAP_IDENTICAL # [0xa000_0000, 0x2000_0000, 0x7, 1], # System RAM 1G MAP_IDENTICAL ] @@ -43,6 +43,7 @@ memory_regions = [ [devices] # Emu_devices. # Name Base-Ipa Ipa_len Alloc-Irq Emu-Type EmuConfig. +interrupt_mode = "passthrough" emu_devices = [] # Pass-through devices. diff --git a/scripts/config.py b/scripts/config.py index 13f12b53..89d7ff4d 100644 --- a/scripts/config.py +++ b/scripts/config.py @@ -234,7 +234,7 @@ def get_env_variables(self) -> Dict[str, str]: # 处理 vmconfigs 作为环境变量 if self.vmconfigs: - env_vars["AXVISOR_VM_CONFIGS"] = ",".join(self.vmconfigs) + env_vars["AXVISOR_VM_CONFIGS"] = ":".join(self.vmconfigs) return env_vars From 3161e3f30581e3e1b67f030c9bfabaa7b6404605 Mon Sep 17 00:00:00 2001 From: ZCShou <72115@163.com> Date: Fri, 12 Sep 2025 06:14:01 +0000 Subject: [PATCH 193/219] update ci --- .github/workflows/test.yml | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index aa355942..e81bd29b 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -44,7 +44,7 @@ jobs: ./axvisor.sh run --plat ${{ matrix.plat }} --vmconfigs $VM_CONFIGS --features fs,ept-level-4 --arceos-args DISK_IMG=$DISK_IMG,BUS=mmio,BLK=y,MEM=8g aarch64-generic-phytiumpi: - runs-on: [self-hosted, linux, docker] + runs-on: [self-hosted, linux, docker, phytiumpi] strategy: fail-fast: false matrix: @@ -71,7 +71,7 @@ jobs: cd .. aarch64-generic-rk3568: - runs-on: [self-hosted, linux, docker] + runs-on: [self-hosted, linux, docker, roc-rk3568-pc] strategy: fail-fast: false matrix: @@ -136,5 +136,3 @@ jobs: export DISK_IMG="${{ github.workspace }}/disk-x86_64.img" export VM_CONFIGS="$(pwd)/configs/vms/nimbos-x86_64.toml" ./axvisor.sh run --plat ${{ matrix.plat }} --vmconfigs $VM_CONFIGS --features fs --arceos-args DISK_IMG=$DISK_IMG,BLK=y - - From 37e3c98b45e4bcf1c978fa838c8b5aab32d0b167 Mon Sep 17 00:00:00 2001 From: ZCShou <72115@163.com> Date: Fri, 12 Sep 2025 06:18:52 +0000 Subject: [PATCH 194/219] fix ci --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index e81bd29b..06479cb8 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -44,7 +44,7 @@ jobs: ./axvisor.sh run --plat ${{ matrix.plat }} --vmconfigs $VM_CONFIGS --features fs,ept-level-4 --arceos-args DISK_IMG=$DISK_IMG,BUS=mmio,BLK=y,MEM=8g aarch64-generic-phytiumpi: - runs-on: [self-hosted, linux, docker, phytiumpi] + runs-on: [self-hosted, linux, docker, phytiumpi] strategy: fail-fast: false matrix: From ac038d3bbfad2eab122851f5fba661384f4885c8 Mon Sep 17 00:00:00 2001 From: ZCShou <72115@163.com> Date: Fri, 12 Sep 2025 06:25:38 +0000 Subject: [PATCH 195/219] udpate ci --- .github/workflows/test.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 06479cb8..4b01c243 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -56,7 +56,7 @@ jobs: with: toolchain: ${{ matrix.rust-toolchain }} components: rust-src - - uses: Swatinem/rust-cache@v2 + # - uses: Swatinem/rust-cache@v2 - run: cargo install cargo-binutils - name: Update rust-toolchain.toml run: | @@ -83,7 +83,7 @@ jobs: with: toolchain: ${{ matrix.rust-toolchain }} components: rust-src - - uses: Swatinem/rust-cache@v2 + # - uses: Swatinem/rust-cache@v2 - run: cargo install cargo-binutils - name: Update rust-toolchain.toml run: | @@ -110,7 +110,7 @@ jobs: with: toolchain: ${{ matrix.rust-toolchain }} components: rust-src - - uses: Swatinem/rust-cache@v2 + # - uses: Swatinem/rust-cache@v2 - run: cargo install cargo-binutils # - uses: arceos-org/setup-qemu@v0.1 # with: From 3395f61506135bdf417f786d129bea009f0626cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E7=9D=BF?= Date: Fri, 12 Sep 2025 14:47:32 +0800 Subject: [PATCH 196/219] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20rdrive=20=E5=8C=85?= =?UTF-8?q?=E7=89=88=E6=9C=AC=E8=87=B3=200.16.1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Cargo.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index bbb588a8..6df80b3d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2805,9 +2805,9 @@ dependencies = [ [[package]] name = "rdrive" -version = "0.16.0" +version = "0.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b3af299bb0304ce80c3d53b9c6458896d7d6a923cb67cd70ec8ef62994762f1" +checksum = "77fc183d7ddcfdac66c688ced56415213970f36694fe821ea45339780080ba82" dependencies = [ "enum_dispatch", "fdt-parser", From a49004c8a3005778dfbe4cf79208ad88f49fa22b Mon Sep 17 00:00:00 2001 From: ZCShou <72115@163.com> Date: Fri, 12 Sep 2025 07:13:31 +0000 Subject: [PATCH 197/219] =?UTF-8?q?=E8=B0=83=E6=95=B4=E4=BA=86=20runner=20?= =?UTF-8?q?=E5=88=86=E9=85=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/test.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 4b01c243..bab82312 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -44,7 +44,7 @@ jobs: ./axvisor.sh run --plat ${{ matrix.plat }} --vmconfigs $VM_CONFIGS --features fs,ept-level-4 --arceos-args DISK_IMG=$DISK_IMG,BUS=mmio,BLK=y,MEM=8g aarch64-generic-phytiumpi: - runs-on: [self-hosted, linux, docker, phytiumpi] + runs-on: [self-hosted, linux, phytiumpi] strategy: fail-fast: false matrix: @@ -71,7 +71,7 @@ jobs: cd .. aarch64-generic-rk3568: - runs-on: [self-hosted, linux, docker, roc-rk3568-pc] + runs-on: [self-hosted, linux, roc-rk3568-pc] strategy: fail-fast: false matrix: @@ -98,7 +98,7 @@ jobs: cd .. x86-qemu-q35: - runs-on: self-hosted + runs-on: [self-hosted, linux, docker] strategy: fail-fast: false matrix: From 8388c6f6096aa98a7224279b1ba959bcbcf45ddc Mon Sep 17 00:00:00 2001 From: ZCShou <72115@163.com> Date: Fri, 12 Sep 2025 07:28:13 +0000 Subject: [PATCH 198/219] =?UTF-8?q?=E8=B0=83=E6=95=B4=E4=BA=86=20runner=20?= =?UTF-8?q?=E5=88=86=E9=85=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index bab82312..e17ace6e 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -98,7 +98,7 @@ jobs: cd .. x86-qemu-q35: - runs-on: [self-hosted, linux, docker] + runs-on: [self-hosted, linux, intel] strategy: fail-fast: false matrix: From dc896d3624ad37985e1902992cf6417e82086c44 Mon Sep 17 00:00:00 2001 From: Josen-B Date: Fri, 12 Sep 2025 01:39:41 -0600 Subject: [PATCH 199/219] [Incomplete] quick start --- README.md | 5 +++++ quick-start.sh | 13 +++++++++++++ 2 files changed, 18 insertions(+) create mode 100755 quick-start.sh diff --git a/README.md b/README.md index efd70abe..bc3fd421 100644 --- a/README.md +++ b/README.md @@ -53,6 +53,11 @@ Currently, AxVisor has been verified in scenarios with the following systems as - currently only Linux with passthrough device on aarch64 is tested. - single core: [config.toml](configs/vms/linux-qemu-aarch64.toml) | [dts](configs/vms/linux-qemu.dts) - smp: [config.toml](configs/vms/linux-qemu-aarch64-smp2.toml) | [dts](configs/vms/linux-qemu-smp2.dts) +# Quick Start +``` +./quick_start.sh arceos +``` + # Build and Run diff --git a/quick-start.sh b/quick-start.sh new file mode 100755 index 00000000..8496b879 --- /dev/null +++ b/quick-start.sh @@ -0,0 +1,13 @@ +#!/bin/bash +guestos=$1 +current_path=$(pwd) +arceos_config_path="./tmp/arceos-aarch64.toml" +arceos_kernel_path="$current_path/tmp/arceos_aarch64-dyn.bin" +arceos_img_path="https://raw.githubusercontent.com/arceos-hypervisor/axvisor-guest/main/IMAGES/arceos/arceos_aarch64-dyn.bin" + +mkdir -p ./tmp +wget -O ./tmp/arceos_aarch64-dyn.bin $arceos_img_path +cp $current_path/configs/vms/arceos-aarch64.toml ./tmp +sed -i 's|^kernel_path =.*|kernel_path = $arceos_kernel_path|' "$arceos_config_path" +./axvisor.sh run --plat aarch64-generic --arceos-args "LOG=info,SMP=4" --features "ept-level-4" --vmconfigs "$arceos_config_path" +rm -rf tmp \ No newline at end of file From ed65224f8e6bce07e5dd04e6491e5877fe2143bb Mon Sep 17 00:00:00 2001 From: Josen-B Date: Fri, 12 Sep 2025 04:24:30 -0600 Subject: [PATCH 200/219] update README --- README.md | 67 ++++++++++------------------------------------------ README_CN.md | 63 ++++++++++-------------------------------------- 2 files changed, 25 insertions(+), 105 deletions(-) diff --git a/README.md b/README.md index bc3fd421..cd10e3c8 100644 --- a/README.md +++ b/README.md @@ -53,10 +53,6 @@ Currently, AxVisor has been verified in scenarios with the following systems as - currently only Linux with passthrough device on aarch64 is tested. - single core: [config.toml](configs/vms/linux-qemu-aarch64.toml) | [dts](configs/vms/linux-qemu.dts) - smp: [config.toml](configs/vms/linux-qemu-aarch64-smp2.toml) | [dts](configs/vms/linux-qemu-smp2.dts) -# Quick Start -``` -./quick_start.sh arceos -``` # Build and Run @@ -81,12 +77,12 @@ In addition, you can use the [axvmconfig](https://github.com/arceos-hypervisor/a ## Load and run from file system -### NimbOS as guest (x86_64) +### NimbOS as guest 1. Execute script to download and prepare NimbOS image. ```shell - ./scripts/nimbos.sh --arch x86_64 + ./scripts/nimbos.sh --arch aarch64 ``` 2. Execute `./axvisor.sh defconfig` to set up the development environment and generate AxVisor config `.hvconfig.toml`. @@ -94,61 +90,19 @@ In addition, you can use the [axvmconfig](https://github.com/arceos-hypervisor/a 3. Edit the `.hvconfig.toml` file to set the `vmconfigs` item to the path of your guest configuration file, for example: ```toml - plat = "x86-qemu-q35" - features = ["fs"] - arceos_args = [ "BLK=y", "DISK_IMG=tmp/nimbos-x86_64.img", "LOG=warn"] - vmconfigs = [ "configs/vms/nimbos-x86_64.toml",] - + plat = "aarch64-generic" + features = ["fs", "ept-level-4"] + arceos_args = [ "BUS=mmio","BLK=y", "DISK_IMG=tmp/nimbos-aarch64.img", "LOG=info"] + vmconfigs = [ "configs/vms/nimbos-aarch64.toml",] ``` 4. Execute `./axvisor.sh run` to build AxVisor and start it in QEMU. -### ArceOS as guest - -1. Build a client image file suitable for your own architecture. Taking the ArceOS mainline code as an example, run `make PLATFORM=aarch64-qemu-virt SMP=1 A=examples/helloworld` to generate `helloworld_aarch64-qemu-virt.bin`. - -2. Create a disk image file and place the guest machine image into the file system. - - - Use the `./axvisor.sh disk_img` command to generate an empty FAT32 disk image file named `disk.img`. - - Manually mount `disk.img`, and then place your guest machine image into the file system. - - ```console - mkdir -p tmp/tmp_img - sudo mount disk.img tmp/tmp_img - sudo cp /PATH/TO/YOUR/GUEST/VM/IMAGE tmp/tmp_img/ - sudo umount tmp/tmp_img - ``` - -3. Modify the configuration items in the corresponding `./configs/vms/.toml` - - `image_location="fs"` indicates loading from the file system. - - `kernel_path` specifies the path to the kernel image in the file system. - - `entry_point` specifies the entry address of the kernel image. - - `kernel_load_addr` specifies the loading address of the kernel image. - - others - - ```console - cp configs/vms/linux-qemu-aarch64.toml tmp/ - ``` - -4. Execute `./axvisor.sh defconfig` to set up the development environment and generate AxVisor config `.hvconfig.toml`. - -5. Edit the `.hvconfig.toml` file to set the `vmconfigs` item to the path of your guest configuration file, for example: - - ```toml - features = ["fs", "ept-level-4"] - arceos_args = [ - "BUS=mmio", - "BLK=y", - "MEM=8g", - "LOG=debug", - "QEMU_ARGS=\"-machine gic-version=3 -cpu cortex-a72 \"", - "DISK_IMG=\"tmp/rootfs.img\"", - ] - vmconfigs = [ "tmp/arceos-aarch64.toml"] - - ``` +### More + TODO ## Load and run from memory +### linux as guest 1. [See linux build help.](https://github.com/arceos-hypervisor/guest-test-linux) to get Image and rootfs.img. @@ -180,6 +134,9 @@ In addition, you can use the [axvmconfig](https://github.com/arceos-hypervisor/a 4. Execute `./axvisor.sh run` to build AxVisor and start it in QEMU. +### More + TODO + # Contributing Feel free to fork this repository and submit a pull request. diff --git a/README_CN.md b/README_CN.md index 35438eb3..8a4a4079 100644 --- a/README_CN.md +++ b/README_CN.md @@ -76,12 +76,12 @@ cargo install cargo-binutils ## 从文件系统加载运行 -### 使用 NimbOS 作为 x86_64 客户机 +### 使用 NimbOS 作为客户机 -1. 执行仓库内的脚本下载并准备 NimbOS 镜像(x86_64): +1. 执行仓库内的脚本下载并准备 NimbOS 镜像: ```bash - ./scripts/nimbos.sh --arch x86_64 + ./scripts/nimbos.sh --arch aarch64 ``` 2. 执行 `./axvisor.sh defconfig` 以设置开发环境并生成 AxVisor 配置文件 `.hvconfig.toml`。 @@ -89,60 +89,20 @@ cargo install cargo-binutils 3. 编辑生成的 `.hvconfig.toml`,将 `vmconfigs` 项设置为指向 NimbOS 的客户机配置文件,例如: ```toml - plat = "x86-qemu-q35" - features = ["fs"] - arceos_args = [ "BLK=y", "DISK_IMG=tmp/nimbos-x86_64.img", "LOG=warn"] - vmconfigs = [ "configs/vms/nimbos-x86_64.toml",] + plat = "aarch64-generic" + features = ["fs", "ept-level-4"] + arceos_args = [ "BUS=mmio","BLK=y", "DISK_IMG=tmp/nimbos-aarch64.img", "LOG=info"] + vmconfigs = [ "configs/vms/nimbos-aarch64.toml",] ``` 4. 执行 `./axvisor.sh run` 构建 AxVisor 并在 QEMU 中启动 NimbOS 客户机。 -### 通用:从文件系统加载其他客户机镜像的步骤 - -1. 构建适用于自己架构的客户机镜像文件。以 ArceOS 主线代码为例,执行 `make PLATFORM=aarch64-qemu-virt SMP=1 A=examples/helloworld` 获取 `helloworld_aarch64-qemu-virt.bin` - -2. 制作一个磁盘镜像文件,并将客户机镜像放到文件系统中 - - - 使用 `./axvisor.sh disk_img` 命令生成一个空的 FAT32 磁盘镜像文件 `disk.img` - - 手动挂载 `disk.img`,然后将自己的客户机镜像复制到该文件系统中 - - ```bash - mkdir -p tmp/tmp_img - sudo mount disk.img tmp/tmp_img - sudo cp /PATH/TO/YOUR/GUEST/VM/IMAGE tmp/tmp_img/ - sudo umount tmp/tmp_img - ``` - -3. 修改对应的 `./configs/vms/.toml` 文件中的配置项 - - `image_location="fs"` 表示从文件系统加载 - - `kernel_path` 指出内核镜像在文件系统中的路径 - - `entry_point` 指出内核镜像的入口地址 - - `kernel_load_addr` 指出内核镜像的加载地址 - - ```console - cp configs/vms/linux-qemu-aarch64.toml tmp/ - ``` - -4. 执行 `./axvisor.sh defconfig` 设置开发环境并生成 AxVisor 配置 `.hvconfig.toml`。 - -5. 编辑 `.hvconfig.toml` 文件,设置 `vmconfigs` 项为您的客户机配置文件路径,例如: - - ```toml - features = ["fs", "ept-level-4"] - arceos_args = [ - "BUS=mmio", - "BLK=y", - "MEM=8g", - "LOG=debug", - "QEMU_ARGS=\"-machine gic-version=3 -cpu cortex-a72 \"", - "DISK_IMG=\"tmp/rootfs.img\"", - ] - vmconfigs = [ "tmp/arceos-aarch64.toml"] - - ``` +### 更多客户机 + TODO ## 从内存加载运行 +### 使用 linux 作为客户机 1. [参见 linux 构建帮助。](https://github.com/arceos-hypervisor/guest-test-linux) 获取 Image 和 rootfs.img。 2. 修改对应的 `./configs/vms/.toml` 中的配置项 @@ -173,6 +133,9 @@ cargo install cargo-binutils 4. 执行 `./axvisor.sh run` 构建 AxVisor 并在 QEMU 中启动。 +### 更多客户机 + TODO + ## 启动示例 ```bash From 7874ee2b2896266b85ac7db7642b1664bf92057a Mon Sep 17 00:00:00 2001 From: ZCShou <72115@163.com> Date: Sat, 13 Sep 2025 02:03:47 +0000 Subject: [PATCH 201/219] =?UTF-8?q?=E6=9A=82=E6=97=B6=E7=A7=BB=E9=99=A4?= =?UTF-8?q?=E6=9C=AA=E7=BB=8F=E9=AA=8C=E8=AF=81=E7=9A=84=E5=AE=A2=E6=88=B7?= =?UTF-8?q?=E6=9C=BA=E9=85=8D=E7=BD=AE=E6=96=87=E4=BB=B6=EF=BC=8C=E5=90=8E?= =?UTF-8?q?=E7=BB=AD=E6=AF=8F=E9=AA=8C=E8=AF=81=E4=B8=80=E4=B8=AA=E4=BB=8E?= =?UTF-8?q?vms=5Fbkp=20=E4=B8=AD=E7=A7=BB=E5=88=B0vms=E4=B8=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../{vms => vms_bkp}/aarch64-qemu-gicv3.dts | 0 .../{vms => vms_bkp}/aio-rk3588-jd4-vm1.dts | 0 .../{vms => vms_bkp}/aio-rk3588-jd4-vm2.dts | 0 configs/{vms => vms_bkp}/aio-rk3588-jd4.dts | 0 configs/vms_bkp/arceos-aarch64-e2000_smp1.dts | 155 + .../vms_bkp/arceos-aarch64-e2000_smp1.toml | 71 + configs/vms_bkp/arceos-aarch64-e2000_smp2.dts | 155 + .../vms_bkp/arceos-aarch64-e2000_smp2.toml | 71 + .../vms_bkp/arceos-aarch64-rk3568-smp1.toml | 73 + .../vms_bkp/arceos-aarch64-rk3568-smp2.toml | 73 + .../vms_bkp/arceos-aarch64-rk3568_smp1.dts | 87 + .../vms_bkp/arceos-aarch64-rk3568_smp2.dts | 101 + .../{vms => vms_bkp}/arceos-aarch64-smp.toml | 0 configs/{vms => vms_bkp}/arceos-aarch64.toml | 0 .../{vms => vms_bkp}/arceos-riscv64-smp.toml | 0 configs/{vms => vms_bkp}/arceos-riscv64.toml | 0 .../arceos-rk3588-aarch64-vm2.toml | 0 configs/{vms => vms_bkp}/arceos-x86_64.toml | 0 .../hvconfig-nimbos-aarch64.toml | 0 .../linux-a1000-aarch64-smp8.toml | 0 configs/vms_bkp/linux-aarch64-e2000_smp1.dts | 1302 ++++ configs/vms_bkp/linux-aarch64-e2000_smp1.toml | 114 + configs/vms_bkp/linux-aarch64-e2000_smp2.dts | 1302 ++++ configs/vms_bkp/linux-aarch64-e2000_smp2.toml | 115 + configs/vms_bkp/linux-aarch64-rk3568_smp1.dts | 6108 +++++++++++++++++ .../vms_bkp/linux-aarch64-rk3568_smp1.toml | 86 + configs/vms_bkp/linux-aarch64-rk3568_smp2.dts | 6108 +++++++++++++++++ .../vms_bkp/linux-aarch64-rk3568_smp2.toml | 86 + .../linux-qemu-aarch64-gicv3-a.toml | 0 .../linux-qemu-aarch64-gicv3-b.toml | 0 .../linux-qemu-aarch64-mem.toml | 0 .../linux-qemu-aarch64-smp2.toml | 0 .../linux-qemu-aarch64-vm2.toml | 0 .../{vms => vms_bkp}/linux-qemu-aarch64.toml | 0 configs/{vms => vms_bkp}/linux-qemu-smp2.dts | 0 configs/{vms => vms_bkp}/linux-qemu.dts | 0 .../{vms => vms_bkp}/linux-qemu_gicv3-b.dts | 0 .../linux-rk3588-aarch64-smp-vm1.toml | 0 .../linux-rk3588-aarch64-smp-vm2.toml | 0 .../linux-rk3588-aarch64-smp.toml | 0 .../linux-rk3588-aarch64.toml | 0 configs/{vms => vms_bkp}/nimbos-aarch64.toml | 0 configs/{vms => vms_bkp}/nimbos-riscv64.toml | 0 configs/{vms => vms_bkp}/nimbos-x86_64.toml | 0 configs/{vms => vms_bkp}/qemu_gicv3.dts | 0 configs/{vms => vms_bkp}/rk3588jd4.dts | 0 configs/{vms => vms_bkp}/starry-aarch64.toml | 0 configs/{vms => vms_bkp}/starry-riscv64.toml | 0 configs/{vms => vms_bkp}/starry-x86_64.toml | 0 49 files changed, 16007 insertions(+) rename configs/{vms => vms_bkp}/aarch64-qemu-gicv3.dts (100%) rename configs/{vms => vms_bkp}/aio-rk3588-jd4-vm1.dts (100%) rename configs/{vms => vms_bkp}/aio-rk3588-jd4-vm2.dts (100%) rename configs/{vms => vms_bkp}/aio-rk3588-jd4.dts (100%) create mode 100644 configs/vms_bkp/arceos-aarch64-e2000_smp1.dts create mode 100644 configs/vms_bkp/arceos-aarch64-e2000_smp1.toml create mode 100644 configs/vms_bkp/arceos-aarch64-e2000_smp2.dts create mode 100644 configs/vms_bkp/arceos-aarch64-e2000_smp2.toml create mode 100644 configs/vms_bkp/arceos-aarch64-rk3568-smp1.toml create mode 100644 configs/vms_bkp/arceos-aarch64-rk3568-smp2.toml create mode 100644 configs/vms_bkp/arceos-aarch64-rk3568_smp1.dts create mode 100644 configs/vms_bkp/arceos-aarch64-rk3568_smp2.dts rename configs/{vms => vms_bkp}/arceos-aarch64-smp.toml (100%) rename configs/{vms => vms_bkp}/arceos-aarch64.toml (100%) rename configs/{vms => vms_bkp}/arceos-riscv64-smp.toml (100%) rename configs/{vms => vms_bkp}/arceos-riscv64.toml (100%) rename configs/{vms => vms_bkp}/arceos-rk3588-aarch64-vm2.toml (100%) rename configs/{vms => vms_bkp}/arceos-x86_64.toml (100%) rename configs/{vms => vms_bkp}/hvconfig-nimbos-aarch64.toml (100%) rename configs/{vms => vms_bkp}/linux-a1000-aarch64-smp8.toml (100%) create mode 100644 configs/vms_bkp/linux-aarch64-e2000_smp1.dts create mode 100644 configs/vms_bkp/linux-aarch64-e2000_smp1.toml create mode 100644 configs/vms_bkp/linux-aarch64-e2000_smp2.dts create mode 100644 configs/vms_bkp/linux-aarch64-e2000_smp2.toml create mode 100644 configs/vms_bkp/linux-aarch64-rk3568_smp1.dts create mode 100644 configs/vms_bkp/linux-aarch64-rk3568_smp1.toml create mode 100644 configs/vms_bkp/linux-aarch64-rk3568_smp2.dts create mode 100644 configs/vms_bkp/linux-aarch64-rk3568_smp2.toml rename configs/{vms => vms_bkp}/linux-qemu-aarch64-gicv3-a.toml (100%) rename configs/{vms => vms_bkp}/linux-qemu-aarch64-gicv3-b.toml (100%) rename configs/{vms => vms_bkp}/linux-qemu-aarch64-mem.toml (100%) rename configs/{vms => vms_bkp}/linux-qemu-aarch64-smp2.toml (100%) rename configs/{vms => vms_bkp}/linux-qemu-aarch64-vm2.toml (100%) rename configs/{vms => vms_bkp}/linux-qemu-aarch64.toml (100%) rename configs/{vms => vms_bkp}/linux-qemu-smp2.dts (100%) rename configs/{vms => vms_bkp}/linux-qemu.dts (100%) rename configs/{vms => vms_bkp}/linux-qemu_gicv3-b.dts (100%) rename configs/{vms => vms_bkp}/linux-rk3588-aarch64-smp-vm1.toml (100%) rename configs/{vms => vms_bkp}/linux-rk3588-aarch64-smp-vm2.toml (100%) rename configs/{vms => vms_bkp}/linux-rk3588-aarch64-smp.toml (100%) rename configs/{vms => vms_bkp}/linux-rk3588-aarch64.toml (100%) rename configs/{vms => vms_bkp}/nimbos-aarch64.toml (100%) rename configs/{vms => vms_bkp}/nimbos-riscv64.toml (100%) rename configs/{vms => vms_bkp}/nimbos-x86_64.toml (100%) rename configs/{vms => vms_bkp}/qemu_gicv3.dts (100%) rename configs/{vms => vms_bkp}/rk3588jd4.dts (100%) rename configs/{vms => vms_bkp}/starry-aarch64.toml (100%) rename configs/{vms => vms_bkp}/starry-riscv64.toml (100%) rename configs/{vms => vms_bkp}/starry-x86_64.toml (100%) diff --git a/configs/vms/aarch64-qemu-gicv3.dts b/configs/vms_bkp/aarch64-qemu-gicv3.dts similarity index 100% rename from configs/vms/aarch64-qemu-gicv3.dts rename to configs/vms_bkp/aarch64-qemu-gicv3.dts diff --git a/configs/vms/aio-rk3588-jd4-vm1.dts b/configs/vms_bkp/aio-rk3588-jd4-vm1.dts similarity index 100% rename from configs/vms/aio-rk3588-jd4-vm1.dts rename to configs/vms_bkp/aio-rk3588-jd4-vm1.dts diff --git a/configs/vms/aio-rk3588-jd4-vm2.dts b/configs/vms_bkp/aio-rk3588-jd4-vm2.dts similarity index 100% rename from configs/vms/aio-rk3588-jd4-vm2.dts rename to configs/vms_bkp/aio-rk3588-jd4-vm2.dts diff --git a/configs/vms/aio-rk3588-jd4.dts b/configs/vms_bkp/aio-rk3588-jd4.dts similarity index 100% rename from configs/vms/aio-rk3588-jd4.dts rename to configs/vms_bkp/aio-rk3588-jd4.dts diff --git a/configs/vms_bkp/arceos-aarch64-e2000_smp1.dts b/configs/vms_bkp/arceos-aarch64-e2000_smp1.dts new file mode 100644 index 00000000..e2f9d8e4 --- /dev/null +++ b/configs/vms_bkp/arceos-aarch64-e2000_smp1.dts @@ -0,0 +1,155 @@ +/dts-v1/; + +/memreserve/ 0x0000000080000000 0x0000000000010000; +/ { + compatible = "phytium,pe2204"; + interrupt-parent = <0x01>; + #address-cells = <0x02>; + #size-cells = <0x02>; + model = "Phytium Pi Board"; + + // memory@01 { + // device_type = "memory"; + // reg = <0x20 0x00 0x00 0x80000000>; + // numa-node-id = <0x00>; + // }; + + aliases { + serial1 = "/soc/uart@2800d000"; + }; + + psci { + compatible = "arm,psci-1.0"; + method = "smc"; + cpu_suspend = <0xc4000001>; + cpu_off = <0x84000002>; + cpu_on = <0xc4000003>; + sys_poweroff = <0x84000008>; + sys_reset = <0x84000009>; + }; + + cpus { + #address-cells = <0x02>; + #size-cells = <0x00>; + + cpu-map { + + cluster0 { + + core0 { + cpu = <0x05>; + }; + }; + + // cluster1 { + + // core0 { + // cpu = <0x06>; + // }; + // }; + + // cluster2 { + + // core0 { + // cpu = <0x07>; + // }; + + // core1 { + // cpu = <0x08>; + // }; + // }; + }; + + // cpu@0 { + // device_type = "cpu"; + // compatible = "phytium,ftc310\0arm,armv8"; + // reg = <0x00 0x200>; + // enable-method = "psci"; + // clocks = <0x09 0x02>; + // capacity-dmips-mhz = <0xb22>; + // phandle = <0x07>; + // }; + + // cpu@1 { + // device_type = "cpu"; + // compatible = "phytium,ftc310\0arm,armv8"; + // reg = <0x00 0x201>; + // enable-method = "psci"; + // clocks = <0x09 0x02>; + // capacity-dmips-mhz = <0xb22>; + // phandle = <0x08>; + // }; + + cpu@100 { + device_type = "cpu"; + compatible = "phytium,ftc664\0arm,armv8"; + reg = <0x00 0x00>; + enable-method = "psci"; + clocks = <0x09 0x00>; + capacity-dmips-mhz = <0x161c>; + phandle = <0x05>; + }; + + // cpu@101 { + // device_type = "cpu"; + // compatible = "phytium,ftc664\0arm,armv8"; + // reg = <0x00 0x100>; + // enable-method = "psci"; + // clocks = <0x09 0x01>; + // capacity-dmips-mhz = <0x161c>; + // phandle = <0x06>; + // }; + }; + + interrupt-controller@30800000 { + compatible = "arm,gic-v3"; + #interrupt-cells = <0x03>; + #address-cells = <0x02>; + #size-cells = <0x02>; + ranges; + interrupt-controller; + reg = <0x00 0x30800000 0x00 0x20000 0x00 0x30880000 0x00 0x80000 0x00 0x30840000 0x00 0x10000 0x00 0x30850000 0x00 0x10000 0x00 0x30860000 0x00 0x10000>; + interrupts = <0x01 0x09 0x08>; + phandle = <0x01>; + + gic-its@30820000 { + compatible = "arm,gic-v3-its"; + msi-controller; + reg = <0x00 0x30820000 0x00 0x20000>; + phandle = <0x0f>; + }; + }; + + timer { + compatible = "arm,armv8-timer"; + interrupts = <0x01 0x0d 0x08 0x01 0x0e 0x08 0x01 0x0b 0x08 0x01 0x0a 0x08>; + clock-frequency = <0x2faf080>; + }; + + soc { + compatible = "simple-bus"; + #address-cells = <0x02>; + #size-cells = <0x02>; + dma-coherent; + ranges; + + uart@2800d000 { + compatible = "arm,pl011\0arm,primecell"; + reg = <0x00 0x2800d000 0x00 0x1000>; + interrupts = <0x00 0x54 0x04>; + clocks = <0x0c 0x0c>; + clock-names = "uartclk\0apb_pclk"; + status = "okay"; + }; + }; + + chosen { + bootargs = "console=ttyAMA1,115200 earlycon=pl011,0x2800d000 root=/dev/mmcblk0p1 rootfstype=ext4 rootwait rw cma=256m ;"; + stdout-path = "serial1:115200n8"; + }; + + memory@00 { + device_type = "memory"; + reg = <0x20 0x20000000 0x00 0x20000000>; + }; +}; diff --git a/configs/vms_bkp/arceos-aarch64-e2000_smp1.toml b/configs/vms_bkp/arceos-aarch64-e2000_smp1.toml new file mode 100644 index 00000000..dbbae96e --- /dev/null +++ b/configs/vms_bkp/arceos-aarch64-e2000_smp1.toml @@ -0,0 +1,71 @@ +# Vm base info configs +# +[base] +# Guest vm id. +id = 2 +# Guest vm name. +name = "arceos" +# Virtualization type. +vm_type = 1 +# The number of virtual CPUs. +cpu_num = 1 +# The physical CPU ids. +phys_cpu_ids = [0x00] +# Guest vm physical cpu sets. +phys_cpu_sets = [4] + +# +# Vm kernel configs +# +[kernel] +# The entry point of the kernel image. +entry_point = 0x20_2008_0000 +# The location of image: "memory" | "fs". +# Load from file system. +image_location = "memory" +# The load address of the kernel image. +kernel_load_addr = 0x20_2008_0000 +## The file path of the kernel image. +kernel_path = "/path/to/arceos_aarch64-dyn_smp1.bin" +## The file path of the device tree blob (DTB). +dtb_load_addr = 0x20_2000_0000 +dtb_path = "/path/to/axvisor/configs/vms/arceos-aarch64-e2000_smp1.dtb" +# Memory regions with format (`base_paddr`, `size`, `flags`, `map_type`). +# For `map_type`, 0 means `MAP_ALLOC`, 1 means `MAP_IDENTICAL`. +memory_regions = [ + [0x20_2000_0000, 0x2000_0000, 0x7, 1], # System RAM MAP_IDENTICAL +] + +# +# Device specifications +# +[devices] +# Emu_devices. +# Name Base-Ipa Ipa_len Alloc-Irq Emu-Type EmuConfig. +emu_devices = [] + +# Pass-through devices. +# Name Base-Ipa Base-Pa Length Alloc-Irq. +passthrough_devices = [ + [ + "UART1", + 0x2800_d000, + 0x2800_d000, + 0x1000, + 0x1, + ], + [ + "gic-v3", + 0x3080_0000, + 0x3080_0000, + 0x10000, + 0x1, + ], + [ + "gic-v3-its", + 0x3082_0000, + 0x3082_0000, + 0x100000, + 0x1, + ], +] diff --git a/configs/vms_bkp/arceos-aarch64-e2000_smp2.dts b/configs/vms_bkp/arceos-aarch64-e2000_smp2.dts new file mode 100644 index 00000000..b80c5dad --- /dev/null +++ b/configs/vms_bkp/arceos-aarch64-e2000_smp2.dts @@ -0,0 +1,155 @@ +/dts-v1/; + +/memreserve/ 0x0000000080000000 0x0000000000010000; +/ { + compatible = "phytium,pe2204"; + interrupt-parent = <0x01>; + #address-cells = <0x02>; + #size-cells = <0x02>; + model = "Phytium Pi Board"; + + // memory@01 { + // device_type = "memory"; + // reg = <0x20 0x00 0x00 0x80000000>; + // numa-node-id = <0x00>; + // }; + + aliases { + serial1 = "/soc/uart@2800d000"; + }; + + psci { + compatible = "arm,psci-1.0"; + method = "smc"; + cpu_suspend = <0xc4000001>; + cpu_off = <0x84000002>; + cpu_on = <0xc4000003>; + sys_poweroff = <0x84000008>; + sys_reset = <0x84000009>; + }; + + cpus { + #address-cells = <0x02>; + #size-cells = <0x00>; + + cpu-map { + + // cluster0 { + + // core0 { + // cpu = <0x05>; + // }; + // }; + + cluster1 { + + core0 { + cpu = <0x06>; + }; + }; + + cluster2 { + + // core0 { + // cpu = <0x07>; + // }; + + core1 { + cpu = <0x08>; + }; + }; + }; + + // cpu@0 { + // device_type = "cpu"; + // compatible = "phytium,ftc310\0arm,armv8"; + // reg = <0x00 0x200>; + // enable-method = "psci"; + // clocks = <0x09 0x02>; + // capacity-dmips-mhz = <0xb22>; + // phandle = <0x07>; + // }; + + cpu@1 { + device_type = "cpu"; + compatible = "phytium,ftc310\0arm,armv8"; + reg = <0x00 0x201>; + enable-method = "psci"; + clocks = <0x09 0x02>; + capacity-dmips-mhz = <0xb22>; + phandle = <0x08>; + }; + + // cpu@100 { + // device_type = "cpu"; + // compatible = "phytium,ftc664\0arm,armv8"; + // reg = <0x00 0x00>; + // enable-method = "psci"; + // clocks = <0x09 0x00>; + // capacity-dmips-mhz = <0x161c>; + // phandle = <0x05>; + // }; + + cpu@101 { + device_type = "cpu"; + compatible = "phytium,ftc664\0arm,armv8"; + reg = <0x00 0x100>; + enable-method = "psci"; + clocks = <0x09 0x01>; + capacity-dmips-mhz = <0x161c>; + phandle = <0x06>; + }; + }; + + interrupt-controller@30800000 { + compatible = "arm,gic-v3"; + #interrupt-cells = <0x03>; + #address-cells = <0x02>; + #size-cells = <0x02>; + ranges; + interrupt-controller; + reg = <0x00 0x30800000 0x00 0x20000 0x00 0x30880000 0x00 0x80000 0x00 0x30840000 0x00 0x10000 0x00 0x30850000 0x00 0x10000 0x00 0x30860000 0x00 0x10000>; + interrupts = <0x01 0x09 0x08>; + phandle = <0x01>; + + gic-its@30820000 { + compatible = "arm,gic-v3-its"; + msi-controller; + reg = <0x00 0x30820000 0x00 0x20000>; + phandle = <0x0f>; + }; + }; + + timer { + compatible = "arm,armv8-timer"; + interrupts = <0x01 0x0d 0x08 0x01 0x0e 0x08 0x01 0x0b 0x08 0x01 0x0a 0x08>; + clock-frequency = <0x2faf080>; + }; + + soc { + compatible = "simple-bus"; + #address-cells = <0x02>; + #size-cells = <0x02>; + dma-coherent; + ranges; + + uart@2800d000 { + compatible = "arm,pl011\0arm,primecell"; + reg = <0x00 0x2800d000 0x00 0x1000>; + interrupts = <0x00 0x54 0x04>; + clocks = <0x0c 0x0c>; + clock-names = "uartclk\0apb_pclk"; + status = "okay"; + }; + }; + + chosen { + bootargs = "console=ttyAMA1,115200 earlycon=pl011,0x2800d000 root=/dev/mmcblk0p1 rootfstype=ext4 rootwait rw cma=256m ;"; + stdout-path = "serial1:115200n8"; + }; + + memory@00 { + device_type = "memory"; + reg = <0x20 0x20000000 0x00 0x20000000>; + }; +}; diff --git a/configs/vms_bkp/arceos-aarch64-e2000_smp2.toml b/configs/vms_bkp/arceos-aarch64-e2000_smp2.toml new file mode 100644 index 00000000..4f69f198 --- /dev/null +++ b/configs/vms_bkp/arceos-aarch64-e2000_smp2.toml @@ -0,0 +1,71 @@ +# Vm base info configs +# +[base] +# Guest vm id. +id = 2 +# Guest vm name. +name = "arceos" +# Virtualization type. +vm_type = 1 +# The number of virtual CPUs. +cpu_num = 2 +# The physical CPU ids. +phys_cpu_ids = [0x201, 0x100] +# Guest vm physical cpu sets. +phys_cpu_sets = [2, 8] + +# +# Vm kernel configs +# +[kernel] +# The entry point of the kernel image. +entry_point = 0x20_2008_0000 +# The location of image: "memory" | "fs". +# Load from file system. +image_location = "memory" +# The load address of the kernel image. +kernel_load_addr = 0x20_2008_0000 +## The file path of the kernel image. +kernel_path = "/path/to/arceos_aarch64-dyn_smp1.bin" +## The file path of the device tree blob (DTB). +dtb_load_addr = 0x20_2000_0000 +dtb_path = "/path/to/axvisor/configs/vms/arceos-aarch64-e2000_smp2.dtb" +# Memory regions with format (`base_paddr`, `size`, `flags`, `map_type`). +# For `map_type`, 0 means `MAP_ALLOC`, 1 means `MAP_IDENTICAL`. +memory_regions = [ + [0x20_2000_0000, 0x2000_0000, 0x7, 1], # System RAM MAP_IDENTICAL +] + +# +# Device specifications +# +[devices] +# Emu_devices. +# Name Base-Ipa Ipa_len Alloc-Irq Emu-Type EmuConfig. +emu_devices = [] + +# Pass-through devices. +# Name Base-Ipa Base-Pa Length Alloc-Irq. +passthrough_devices = [ + [ + "UART1", + 0x2800_d000, + 0x2800_d000, + 0x1000, + 0x1, + ], + [ + "gic-v3", + 0x3080_0000, + 0x3080_0000, + 0x10000, + 0x1, + ], + [ + "gic-v3-its", + 0x3082_0000, + 0x3082_0000, + 0x100000, + 0x1, + ], +] diff --git a/configs/vms_bkp/arceos-aarch64-rk3568-smp1.toml b/configs/vms_bkp/arceos-aarch64-rk3568-smp1.toml new file mode 100644 index 00000000..eddf9ca4 --- /dev/null +++ b/configs/vms_bkp/arceos-aarch64-rk3568-smp1.toml @@ -0,0 +1,73 @@ +# Vm base info configs +# +[base] +# Guest vm id. +id = 1 +# Guest vm name. +name = "arceos" +# Virtualization type. +vm_type = 1 +# The number of virtual CPUs. +cpu_num = 1 +# The physical CPU ids. +phys_cpu_ids = [0x200] +# Guest vm physical cpu sets. +phys_cpu_sets = [1] + +# +# Vm kernel configs +# +[kernel] +# The entry point of the kernel image. +entry_point = 0x7008_0000 +# The location of image: "memory" | "fs". +# Load from memory. +image_location = "memory" +# The load address of the kernel image. +kernel_load_addr = 0x7008_0000 +## The file path of the kernel image. +kernel_path = "/path/arceos-aarch64-dyn.bin" +## The file path of the device tree blob (DTB). +dtb_load_addr = 0x7000_0000 +dtb_path = "/path/arceos-rk3568.dtb" +# Memory regions with format (`base_paddr`, `size`, `flags`, `map_type`). +# For `map_type`, 0 means `MAP_ALLOC`, 1 means `MAP_IDENTICAL`. +memory_regions = [ + [0x7000_0000, 0x1000_0000, 0x7, 0], # System RAM 1G MAP_IDENTICAL +] + +# +# Device specifications +# +[devices] +# The interrupt mode. +interrupt_mode = "passthrough" +# Emu_devices. +# Name Base-Ipa Ipa_len Alloc-Irq Emu-Type EmuConfig. +emu_devices = [] + +# Pass-through devices. +# Name Base-Ipa Base-Pa Length Alloc-Irq. +passthrough_devices = [ + [ + "UART2", + 0xfe66_0000, + 0xfe66_0000, + 0x10000, + 0x1, + ], + [ + "gic-v3", + 0xfd40_0000, + 0xfd40_0000, + 0x10000, + 0x1, + ], + [ + "gic-v3-its", + 0xfd44_0000, + 0xfd44_0000, + 0x100000, + 0x1, + ], +] diff --git a/configs/vms_bkp/arceos-aarch64-rk3568-smp2.toml b/configs/vms_bkp/arceos-aarch64-rk3568-smp2.toml new file mode 100644 index 00000000..b70a70ee --- /dev/null +++ b/configs/vms_bkp/arceos-aarch64-rk3568-smp2.toml @@ -0,0 +1,73 @@ +# Vm base info configs +# +[base] +# Guest vm id. +id = 2 +# Guest vm name. +name = "arceos" +# Virtualization type. +vm_type = 1 +# The number of virtual CPUs. +cpu_num = 2 +# The physical CPU ids. +phys_cpu_ids = [0x00, 0x100] +# Guest vm physical cpu sets. +phys_cpu_sets = [1, 2] + +# +# Vm kernel configs +# +[kernel] +# The entry point of the kernel image. +entry_point = 0x7008_0000 +# The location of image: "memory" | "fs". +# Load from memory. +image_location = "memory" +# The load address of the kernel image. +kernel_load_addr = 0x7008_0000 +## The file path of the kernel image. +kernel_path = "/path/arceos-aarch64-dyn.bin" +## The file path of the device tree blob (DTB). +dtb_load_addr = 0x7000_0000 +dtb_path = "/path/arceos-aarch64-rk3568_smp2.dtb" +# Memory regions with format (`base_paddr`, `size`, `flags`, `map_type`). +# For `map_type`, 0 means `MAP_ALLOC`, 1 means `MAP_IDENTICAL`. +memory_regions = [ + [0x7000_0000, 0x1000_0000, 0x7, 1], # System RAM 1G MAP_IDENTICAL +] + +# +# Device specifications +# +[devices] +# The interrupt mode. +interrupt_mode = "passthrough" +# Emu_devices. +# Name Base-Ipa Ipa_len Alloc-Irq Emu-Type EmuConfig. +emu_devices = [] + +# Pass-through devices. +# Name Base-Ipa Base-Pa Length Alloc-Irq. +passthrough_devices = [ + [ + "UART2", + 0xfe66_0000, + 0xfe66_0000, + 0x10000, + 0x1, + ], + [ + "gic-v3", + 0xfd40_0000, + 0xfd40_0000, + 0x10000, + 0x1, + ], + [ + "gic-v3-its", + 0xfd44_0000, + 0xfd44_0000, + 0x100000, + 0x1, + ], +] diff --git a/configs/vms_bkp/arceos-aarch64-rk3568_smp1.dts b/configs/vms_bkp/arceos-aarch64-rk3568_smp1.dts new file mode 100644 index 00000000..d1ad3a39 --- /dev/null +++ b/configs/vms_bkp/arceos-aarch64-rk3568_smp1.dts @@ -0,0 +1,87 @@ +/dts-v1/; + +/memreserve/ 0x0000000008300000 0x000000000001c000; +/memreserve/ 0x000000000a200000 0x00000000008cf15d; +/ { + serial-number = "425ca8fc29ade692"; + compatible = "rockchip,rk3568-firefly-roc-pc\0rockchip,rk3568"; + interrupt-parent = <0x01>; + #address-cells = <0x02>; + #size-cells = <0x02>; + model = "Firefly RK3568-ROC-PC"; + + memory { + reg = <0x00 0x70000000 0x00 0x10000000>; + device_type = "memory"; + }; + + chosen { + bootargs = "earlycon=uart8250,mmio32,0xfe660000"; + }; + + aliases { + serial2 = "/serial@fe660000"; + }; + + cpus { + #address-cells = <0x02>; + #size-cells = <0x00>; + + cpu@200 { + device_type = "cpu"; + compatible = "arm,cortex-a55"; + reg = <0x00 0x200>; + enable-method = "psci"; + clocks = <0x02 0x00>; + operating-points-v2 = <0x03>; + cpu-idle-states = <0x04>; + phandle = <0x0d>; + }; + }; + + psci { + compatible = "arm,psci-1.0"; + method = "smc"; + }; + + timer { + compatible = "arm,armv8-timer"; + interrupts = <0x01 0x0d 0xf04 0x01 0x0e 0xf04 0x01 0x0b 0xf04 0x01 0x0a 0xf04>; + arm,no-tick-in-suspend; + }; + + interrupt-controller@fd400000 { + compatible = "arm,gic-v3"; + #interrupt-cells = <0x03>; + #address-cells = <0x02>; + #size-cells = <0x02>; + ranges; + interrupt-controller; + reg = <0x00 0xfd400000 0x00 0x10000 0x00 0xfd460000 0x00 0xc0000>; + interrupts = <0x01 0x09 0x04>; + phandle = <0x01>; + + interrupt-controller@fd440000 { + compatible = "arm,gic-v3-its"; + msi-controller; + #msi-cells = <0x01>; + reg = <0x00 0xfd440000 0x00 0x20000>; + status = "okay"; + phandle = <0xbe>; + }; + }; + + serial@fe660000 { + compatible = "rockchip,rk3568-uart\0snps,dw-apb-uart"; + reg = <0x00 0xfe660000 0x00 0x100>; + interrupts = <0x00 0x76 0x04>; + clocks = <0x23 0x123 0x23 0x120>; + clock-names = "baudclk\0apb_pclk"; + reg-shift = <0x02>; + reg-io-width = <0x04>; + dmas = <0x4e 0x04 0x4e 0x05>; + pinctrl-names = "default"; + pinctrl-0 = <0x10c>; + status = "okay"; + }; +}; \ No newline at end of file diff --git a/configs/vms_bkp/arceos-aarch64-rk3568_smp2.dts b/configs/vms_bkp/arceos-aarch64-rk3568_smp2.dts new file mode 100644 index 00000000..6da5bf8b --- /dev/null +++ b/configs/vms_bkp/arceos-aarch64-rk3568_smp2.dts @@ -0,0 +1,101 @@ +/dts-v1/; + +/memreserve/ 0x0000000008300000 0x000000000001c000; +/memreserve/ 0x000000000a200000 0x00000000008cf15d; +/ { + serial-number = "425ca8fc29ade692"; + compatible = "rockchip,rk3568-firefly-roc-pc\0rockchip,rk3568"; + interrupt-parent = <0x01>; + #address-cells = <0x02>; + #size-cells = <0x02>; + model = "Firefly RK3568-ROC-PC"; + + memory { + reg = <0x00 0x70000000 0x00 0x10000000>; + device_type = "memory"; + }; + + chosen { + bootargs = "earlycon=uart8250,mmio32,0xfe660000"; + }; + + aliases { + serial2 = "/serial@fe660000"; + }; + + cpus { + #address-cells = <0x02>; + #size-cells = <0x00>; + + cpu@0 { + device_type = "cpu"; + compatible = "arm,cortex-a55"; + reg = <0x00 0x00>; + enable-method = "psci"; + clocks = <0x02 0x00>; + operating-points-v2 = <0x03>; + cpu-idle-states = <0x04>; + #cooling-cells = <0x02>; + dynamic-power-coefficient = <0xbb>; + cpu-supply = <0x05>; + phandle = <0x0c>; + }; + + cpu@100 { + device_type = "cpu"; + compatible = "arm,cortex-a55"; + reg = <0x00 0x100>; + enable-method = "psci"; + clocks = <0x02 0x00>; + operating-points-v2 = <0x03>; + cpu-idle-states = <0x04>; + phandle = <0x0d>; + }; + }; + + psci { + compatible = "arm,psci-1.0"; + method = "smc"; + }; + + timer { + compatible = "arm,armv8-timer"; + interrupts = <0x01 0x0d 0xf04 0x01 0x0e 0xf04 0x01 0x0b 0xf04 0x01 0x0a 0xf04>; + arm,no-tick-in-suspend; + }; + + interrupt-controller@fd400000 { + compatible = "arm,gic-v3"; + #interrupt-cells = <0x03>; + #address-cells = <0x02>; + #size-cells = <0x02>; + ranges; + interrupt-controller; + reg = <0x00 0xfd400000 0x00 0x10000 0x00 0xfd460000 0x00 0xc0000>; + interrupts = <0x01 0x09 0x04>; + phandle = <0x01>; + + interrupt-controller@fd440000 { + compatible = "arm,gic-v3-its"; + msi-controller; + #msi-cells = <0x01>; + reg = <0x00 0xfd440000 0x00 0x20000>; + status = "okay"; + phandle = <0xbe>; + }; + }; + + serial@fe660000 { + compatible = "rockchip,rk3568-uart\0snps,dw-apb-uart"; + reg = <0x00 0xfe660000 0x00 0x100>; + interrupts = <0x00 0x76 0x04>; + clocks = <0x23 0x123 0x23 0x120>; + clock-names = "baudclk\0apb_pclk"; + reg-shift = <0x02>; + reg-io-width = <0x04>; + dmas = <0x4e 0x04 0x4e 0x05>; + pinctrl-names = "default"; + pinctrl-0 = <0x10c>; + status = "okay"; + }; +}; \ No newline at end of file diff --git a/configs/vms/arceos-aarch64-smp.toml b/configs/vms_bkp/arceos-aarch64-smp.toml similarity index 100% rename from configs/vms/arceos-aarch64-smp.toml rename to configs/vms_bkp/arceos-aarch64-smp.toml diff --git a/configs/vms/arceos-aarch64.toml b/configs/vms_bkp/arceos-aarch64.toml similarity index 100% rename from configs/vms/arceos-aarch64.toml rename to configs/vms_bkp/arceos-aarch64.toml diff --git a/configs/vms/arceos-riscv64-smp.toml b/configs/vms_bkp/arceos-riscv64-smp.toml similarity index 100% rename from configs/vms/arceos-riscv64-smp.toml rename to configs/vms_bkp/arceos-riscv64-smp.toml diff --git a/configs/vms/arceos-riscv64.toml b/configs/vms_bkp/arceos-riscv64.toml similarity index 100% rename from configs/vms/arceos-riscv64.toml rename to configs/vms_bkp/arceos-riscv64.toml diff --git a/configs/vms/arceos-rk3588-aarch64-vm2.toml b/configs/vms_bkp/arceos-rk3588-aarch64-vm2.toml similarity index 100% rename from configs/vms/arceos-rk3588-aarch64-vm2.toml rename to configs/vms_bkp/arceos-rk3588-aarch64-vm2.toml diff --git a/configs/vms/arceos-x86_64.toml b/configs/vms_bkp/arceos-x86_64.toml similarity index 100% rename from configs/vms/arceos-x86_64.toml rename to configs/vms_bkp/arceos-x86_64.toml diff --git a/configs/vms/hvconfig-nimbos-aarch64.toml b/configs/vms_bkp/hvconfig-nimbos-aarch64.toml similarity index 100% rename from configs/vms/hvconfig-nimbos-aarch64.toml rename to configs/vms_bkp/hvconfig-nimbos-aarch64.toml diff --git a/configs/vms/linux-a1000-aarch64-smp8.toml b/configs/vms_bkp/linux-a1000-aarch64-smp8.toml similarity index 100% rename from configs/vms/linux-a1000-aarch64-smp8.toml rename to configs/vms_bkp/linux-a1000-aarch64-smp8.toml diff --git a/configs/vms_bkp/linux-aarch64-e2000_smp1.dts b/configs/vms_bkp/linux-aarch64-e2000_smp1.dts new file mode 100644 index 00000000..18d68f0f --- /dev/null +++ b/configs/vms_bkp/linux-aarch64-e2000_smp1.dts @@ -0,0 +1,1302 @@ +/dts-v1/; + +/memreserve/ 0x0000000080000000 0x0000000000010000; +/ { + compatible = "phytium,pe2204"; + interrupt-parent = <0x01>; + #address-cells = <0x02>; + #size-cells = <0x02>; + model = "Phytium Pi Board"; + + // memory@01 { + // device_type = "memory"; + // reg = <0x20 0x40000000 0x00 0x40000000>; + // numa-node-id = <0x00>; + // }; + + aliases { + serial0 = "/soc/uart@2800c000"; + serial1 = "/soc/uart@2800d000"; + serial2 = "/soc/uart@2800e000"; + serial3 = "/soc/uart@2800f000"; + ethernet0 = "/soc/ethernet@3200c000"; + ethernet1 = "/soc/ethernet@3200e000"; + ethernet2 = "/soc/ethernet@32010000"; + ethernet3 = "/soc/ethernet@32012000"; + serial4 = "/soc/uart@28014000"; + serial5 = "/soc/uart@2802A000"; + serial6 = "/soc/uart@28032000"; + }; + + psci { + compatible = "arm,psci-1.0"; + method = "smc"; + cpu_suspend = <0xc4000001>; + cpu_off = <0x84000002>; + cpu_on = <0xc4000003>; + sys_poweroff = <0x84000008>; + sys_reset = <0x84000009>; + }; + + firmware { + + scmi { + compatible = "arm,scmi"; + mboxes = <0x02 0x00>; + mbox-names = "tx"; + shmem = <0x03>; + #address-cells = <0x01>; + #size-cells = <0x00>; + + protocol@13 { + reg = <0x13>; + #clock-cells = <0x01>; + phandle = <0x09>; + }; + + protocol@15 { + reg = <0x15>; + #thermal-sensor-cells = <0x01>; + phandle = <0x04>; + }; + }; + + optee { + compatible = "linaro,optee-tz"; + method = "smc"; + }; + }; + + thermal-zones { + + sensor0 { + polling-delay-passive = <0x64>; + polling-delay = <0x3e8>; + thermal-sensors = <0x04 0x00>; + }; + + sensor1 { + polling-delay-passive = <0x64>; + polling-delay = <0x3e8>; + thermal-sensors = <0x04 0x01>; + }; + }; + + cpus { + #address-cells = <0x02>; + #size-cells = <0x00>; + + cpu-map { + + // cluster0 { + + // core0 { + // cpu = <0x05>; + // }; + // }; + + cluster1 { + + core0 { + cpu = <0x06>; + }; + }; + + // cluster2 { + + // core0 { + // cpu = <0x07>; + // }; + + // core1 { + // cpu = <0x08>; + // }; + // }; + }; + + // cpu@0 { + // device_type = "cpu"; + // compatible = "phytium,ftc310\0arm,armv8"; + // reg = <0x00 0x200>; + // enable-method = "psci"; + // clocks = <0x09 0x02>; + // capacity-dmips-mhz = <0xb22>; + // phandle = <0x07>; + // }; + + // cpu@1 { + // device_type = "cpu"; + // compatible = "phytium,ftc310\0arm,armv8"; + // reg = <0x00 0x201>; + // enable-method = "psci"; + // clocks = <0x09 0x02>; + // capacity-dmips-mhz = <0xb22>; + // phandle = <0x08>; + // }; + + // cpu@100 { + // device_type = "cpu"; + // compatible = "phytium,ftc664\0arm,armv8"; + // reg = <0x00 0x00>; + // enable-method = "psci"; + // clocks = <0x09 0x00>; + // capacity-dmips-mhz = <0x161c>; + // phandle = <0x05>; + // }; + + cpu@101 { + device_type = "cpu"; + compatible = "phytium,ftc664\0arm,armv8"; + reg = <0x00 0x100>; + enable-method = "psci"; + clocks = <0x09 0x01>; + capacity-dmips-mhz = <0x161c>; + phandle = <0x06>; + }; + }; + + interrupt-controller@30800000 { + compatible = "arm,gic-v3"; + #interrupt-cells = <0x03>; + #address-cells = <0x02>; + #size-cells = <0x02>; + ranges; + interrupt-controller; + reg = <0x00 0x30800000 0x00 0x20000 0x00 0x30880000 0x00 0x80000 0x00 0x30840000 0x00 0x10000 0x00 0x30850000 0x00 0x10000 0x00 0x30860000 0x00 0x10000>; + interrupts = <0x01 0x09 0x08>; + phandle = <0x01>; + + gic-its@30820000 { + compatible = "arm,gic-v3-its"; + msi-controller; + reg = <0x00 0x30820000 0x00 0x20000>; + phandle = <0x0f>; + }; + }; + + pmu { + compatible = "arm,armv8-pmuv3"; + interrupts = <0x01 0x07 0x08>; + }; + + timer { + compatible = "arm,armv8-timer"; + interrupts = <0x01 0x0d 0x08 0x01 0x0e 0x08 0x01 0x0b 0x08 0x01 0x0a 0x08>; + clock-frequency = <0x2faf080>; + }; + + clocks { + #address-cells = <0x02>; + #size-cells = <0x02>; + ranges; + + clk48mhz { + compatible = "fixed-clock"; + #clock-cells = <0x00>; + clock-frequency = <0x2dc6c00>; + phandle = <0x13>; + }; + + clk50mhz { + compatible = "fixed-clock"; + #clock-cells = <0x00>; + clock-frequency = <0x2faf080>; + phandle = <0x0d>; + }; + + clk100mhz { + compatible = "fixed-clock"; + #clock-cells = <0x00>; + clock-frequency = <0x5f5e100>; + phandle = <0x0c>; + }; + + clk200mhz { + compatible = "fixed-clock"; + #clock-cells = <0x00>; + clock-frequency = <0xbebc200>; + phandle = <0x11>; + }; + + clk250mhz { + compatible = "fixed-clock"; + #clock-cells = <0x00>; + clock-frequency = <0xee6b280>; + phandle = <0x12>; + }; + + clk300mhz { + compatible = "fixed-clock"; + #clock-cells = <0x00>; + clock-frequency = <0x11e1a300>; + phandle = <0x0b>; + }; + + clk600mhz { + compatible = "fixed-clock"; + #clock-cells = <0x00>; + clock-frequency = <0x23c34600>; + phandle = <0x0e>; + }; + + clk1200mhz { + compatible = "fixed-clock"; + #clock-cells = <0x00>; + clock-frequency = <0x47868c00>; + phandle = <0x0a>; + }; + }; + + iommu@30000000 { + compatible = "arm,smmu-v3"; + reg = <0x00 0x30000000 0x00 0x800000>; + interrupts = <0x00 0xf0 0x01 0x00 0xef 0x01 0x00 0xec 0x01 0x00 0xf2 0x01>; + interrupt-names = "eventq\0priq\0cmdq-sync\0gerror"; + dma-coherent; + #iommu-cells = <0x01>; + phandle = <0x10>; + }; + + soc { + compatible = "simple-bus"; + #address-cells = <0x02>; + #size-cells = <0x02>; + dma-coherent; + ranges; + + mmc@28000000 { + compatible = "phytium,mci"; + reg = <0x00 0x28000000 0x00 0x1000>; + interrupts = <0x00 0x48 0x04>; + clocks = <0x0a>; + clock-names = "phytium_mci_clk"; + status = "okay"; + bus-width = <0x04>; + max-frequency = <0x2faf080>; + cap-sdio-irq; + cap-sd-highspeed; + no-mmc; + }; + + mmc@28001000 { + compatible = "phytium,mci"; + reg = <0x00 0x28001000 0x00 0x1000>; + interrupts = <0x00 0x49 0x04>; + clocks = <0x0a>; + clock-names = "phytium_mci_clk"; + status = "okay"; + bus-width = <0x04>; + max-frequency = <0x2faf080>; + cap-sdio-irq; + cap-sd-highspeed; + no-mmc; + no-sd; + non-removable; + }; + + nand@28002000 { + compatible = "phytium,nfc"; + reg = <0x00 0x28002000 0x00 0x1000>; + interrupts = <0x00 0x4a 0x04>; + status = "disabled"; + }; + + ddma@28003000 { + compatible = "phytium,ddma"; + reg = <0x00 0x28003000 0x00 0x1000>; + interrupts = <0x00 0x4b 0x04>; + #dma-cells = <0x02>; + dma-channels = <0x08>; + }; + + ddma@28004000 { + compatible = "phytium,ddma"; + reg = <0x00 0x28004000 0x00 0x1000>; + interrupts = <0x00 0x4c 0x04>; + #dma-cells = <0x02>; + dma-channels = <0x08>; + }; + + spi@28008000 { + compatible = "phytium,qspi-nor"; + reg = <0x00 0x28008000 0x00 0x1000 0x00 0x00 0x00 0xfffffff>; + reg-names = "qspi\0qspi_mm"; + clocks = <0x0b>; + status = "okay"; + #address-cells = <0x01>; + #size-cells = <0x00>; + + flash@0 { + compatible = "jedec,spi-nor"; + reg = <0x00>; + spi-rx-bus-width = <0x01>; + spi-max-frequency = <0x1312d00>; + status = "okay"; + }; + }; + + uart@2800c000 { + compatible = "arm,pl011\0arm,primecell"; + reg = <0x00 0x2800c000 0x00 0x1000>; + interrupts = <0x00 0x53 0x04>; + clocks = <0x0c 0x0c>; + clock-names = "uartclk\0apb_pclk"; + status = "okay"; + }; + + uart@2800d000 { + compatible = "arm,pl011\0arm,primecell"; + reg = <0x00 0x2800d000 0x00 0x1000>; + interrupts = <0x00 0x54 0x04>; + clocks = <0x0c 0x0c>; + clock-names = "uartclk\0apb_pclk"; + status = "okay"; + }; + + uart@2800e000 { + compatible = "arm,pl011\0arm,primecell"; + reg = <0x00 0x2800e000 0x00 0x1000>; + interrupts = <0x00 0x55 0x04>; + clocks = <0x0c 0x0c>; + clock-names = "uartclk\0apb_pclk"; + status = "okay"; + }; + + uart@2800f000 { + compatible = "arm,pl011\0arm,primecell"; + reg = <0x00 0x2800f000 0x00 0x1000>; + interrupts = <0x00 0x56 0x04>; + clocks = <0x0c 0x0c>; + clock-names = "uartclk\0apb_pclk"; + status = "okay"; + }; + + lpc@28010000 { + compatible = "simple-mfd\0syscon"; + reg = <0x00 0x28010000 0x00 0x1000>; + reg-io-width = <0x04>; + #address-cells = <0x01>; + #size-cells = <0x01>; + ranges = <0x00 0x00 0x28010000 0x1000>; + + kcs@24 { + compatible = "phytium,kcs-bmc"; + reg = <0x24 0x01 0x30 0x01 0x3c 0x01>; + interrupts = <0x00 0x58 0x04>; + status = "disabled"; + }; + + kcs@28 { + compatible = "phytium,kcs-bmc"; + reg = <0x28 0x01 0x34 0x01 0x40 0x01>; + interrupts = <0x00 0x58 0x04>; + status = "disabled"; + }; + + kcs@2c { + compatible = "phytium,kcs-bmc"; + reg = <0x2c 0x01 0x38 0x01 0x44 0x01>; + interrupts = <0x00 0x58 0x04>; + status = "disabled"; + }; + + kcs@8c { + compatible = "phytium,kcs-bmc"; + reg = <0x8c 0x01 0x90 0x01 0x94 0x01>; + interrupts = <0x00 0x58 0x04>; + status = "disabled"; + }; + + bt@48 { + compatible = "phytium,bt-bmc"; + reg = <0x48 0x20>; + interrupts = <0x00 0x58 0x04>; + status = "disabled"; + }; + }; + + gpio@28034000 { + compatible = "phytium,gpio"; + reg = <0x00 0x28034000 0x00 0x1000>; + interrupts = <0x00 0x6c 0x04 0x00 0x6d 0x04 0x00 0x6e 0x04 0x00 0x6f 0x04 0x00 0x70 0x04 0x00 0x71 0x04 0x00 0x72 0x04 0x00 0x73 0x04 0x00 0x74 0x04 0x00 0x75 0x04 0x00 0x76 0x04 0x00 0x77 0x04 0x00 0x78 0x04 0x00 0x79 0x04 0x00 0x7a 0x04 0x00 0x7b 0x04>; + gpio-controller; + #gpio-cells = <0x02>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "okay"; + + porta { + compatible = "phytium,gpio-port"; + reg = <0x00>; + ngpios = <0x10>; + }; + }; + + gpio@28035000 { + compatible = "phytium,gpio"; + reg = <0x00 0x28035000 0x00 0x1000>; + interrupts = <0x00 0x7c 0x04 0x00 0x7d 0x04 0x00 0x7e 0x04 0x00 0x7f 0x04 0x00 0x80 0x04 0x00 0x81 0x04 0x00 0x82 0x04 0x00 0x83 0x04 0x00 0x84 0x04 0x00 0x85 0x04 0x00 0x86 0x04 0x00 0x87 0x04 0x00 0x88 0x04 0x00 0x89 0x04 0x00 0x8a 0x04 0x00 0x8b 0x04>; + gpio-controller; + #gpio-cells = <0x02>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "okay"; + phandle = <0x14>; + + porta { + compatible = "phytium,gpio-port"; + reg = <0x00>; + ngpios = <0x10>; + }; + }; + + gpio@28036000 { + compatible = "phytium,gpio"; + reg = <0x00 0x28036000 0x00 0x1000>; + interrupts = <0x00 0x8c 0x04 0x00 0x8d 0x04 0x00 0x8e 0x04 0x00 0x8f 0x04 0x00 0x90 0x04 0x00 0x91 0x04 0x00 0x92 0x04 0x00 0x93 0x04 0x00 0x94 0x04 0x00 0x95 0x04 0x00 0x96 0x04 0x00 0x97 0x04 0x00 0x98 0x04 0x00 0x99 0x04 0x00 0x9a 0x04 0x00 0x9b 0x04>; + gpio-controller; + #gpio-cells = <0x02>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "okay"; + phandle = <0x15>; + + porta { + compatible = "phytium,gpio-port"; + reg = <0x00>; + ngpios = <0x10>; + }; + }; + + gpio@28037000 { + compatible = "phytium,gpio"; + reg = <0x00 0x28037000 0x00 0x1000>; + interrupts = <0x00 0x9c 0x04>; + gpio-controller; + #gpio-cells = <0x02>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "okay"; + + porta { + compatible = "phytium,gpio-port"; + reg = <0x00>; + ngpios = <0x10>; + }; + }; + + gpio@28038000 { + compatible = "phytium,gpio"; + reg = <0x00 0x28038000 0x00 0x1000>; + interrupts = <0x00 0x9d 0x04>; + gpio-controller; + #gpio-cells = <0x02>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "okay"; + + porta { + compatible = "phytium,gpio-port"; + reg = <0x00>; + ngpios = <0x10>; + }; + }; + + gpio@28039000 { + compatible = "phytium,gpio"; + reg = <0x00 0x28039000 0x00 0x1000>; + interrupts = <0x00 0x9e 0x04>; + gpio-controller; + #gpio-cells = <0x02>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "okay"; + + porta { + compatible = "phytium,gpio-port"; + reg = <0x00>; + ngpios = <0x10>; + }; + }; + + spi@2803a000 { + compatible = "phytium,spi"; + reg = <0x00 0x2803a000 0x00 0x1000>; + interrupts = <0x00 0x9f 0x04>; + clocks = <0x0d>; + num-cs = <0x04>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "okay"; + global-cs = <0x01>; + + spidev@0 { + compatible = "spidev"; + reg = <0x00>; + spi-max-frequency = <0x2faf080>; + status = "disabled"; + }; + }; + + spi@2803b000 { + compatible = "phytium,spi"; + reg = <0x00 0x2803b000 0x00 0x1000>; + interrupts = <0x00 0xa0 0x04>; + clocks = <0x0d>; + num-cs = <0x04>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "disabled"; + }; + + spi@2803c000 { + compatible = "phytium,spi"; + reg = <0x00 0x2803c000 0x00 0x1000>; + interrupts = <0x00 0xa1 0x04>; + clocks = <0x0d>; + num-cs = <0x04>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "disabled"; + }; + + spi@2803d000 { + compatible = "phytium,spi"; + reg = <0x00 0x2803d000 0x00 0x1000>; + interrupts = <0x00 0xa2 0x04>; + clocks = <0x0d>; + num-cs = <0x04>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "disabled"; + }; + + watchdog@28040000 { + compatible = "arm,sbsa-gwdt"; + reg = <0x00 0x28041000 0x00 0x1000 0x00 0x28040000 0x00 0x1000>; + interrupts = <0x00 0xa4 0x04>; + timeout-sec = <0x1e>; + status = "okay"; + }; + + watchdog@28042000 { + compatible = "arm,sbsa-gwdt"; + reg = <0x00 0x28043000 0x00 0x1000 0x00 0x28042000 0x00 0x1000>; + interrupts = <0x00 0xa5 0x04>; + timeout-sec = <0x1e>; + status = "okay"; + }; + + pwm@2804a000 { + compatible = "phytium,pwm"; + reg = <0x00 0x2804a000 0x00 0x1000>; + interrupts = <0x00 0xad 0x04>; + clocks = <0x0d>; + status = "okay"; + phytium,db = <0x00 0x00 0x64 0x3e8 0x3e8 0x00>; + }; + + pwm@2804b000 { + compatible = "phytium,pwm"; + reg = <0x00 0x2804b000 0x00 0x1000>; + interrupts = <0x00 0xae 0x04>; + clocks = <0x0d>; + status = "okay"; + phytium,db = <0x00 0x00 0x64 0x3e8 0x3e8 0x00>; + }; + + tacho@28054000 { + compatible = "phytium,tacho"; + reg = <0x00 0x28054000 0x00 0x1000>; + interrupts = <0x00 0xc2 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@28055000 { + compatible = "phytium,tacho"; + reg = <0x00 0x28055000 0x00 0x1000>; + interrupts = <0x00 0xc3 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@28056000 { + compatible = "phytium,tacho"; + reg = <0x00 0x28056000 0x00 0x1000>; + interrupts = <0x00 0xc4 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@28057000 { + compatible = "phytium,tacho"; + reg = <0x00 0x28057000 0x00 0x1000>; + interrupts = <0x00 0xc5 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@28058000 { + compatible = "phytium,tacho"; + reg = <0x00 0x28058000 0x00 0x1000>; + interrupts = <0x00 0xc6 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@28059000 { + compatible = "phytium,tacho"; + reg = <0x00 0x28059000 0x00 0x1000>; + interrupts = <0x00 0xc7 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@2805a000 { + compatible = "phytium,tacho"; + reg = <0x00 0x2805a000 0x00 0x1000>; + interrupts = <0x00 0xc8 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@2805b000 { + compatible = "phytium,tacho"; + reg = <0x00 0x2805b000 0x00 0x1000>; + interrupts = <0x00 0xc9 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@2805c000 { + compatible = "phytium,tacho"; + reg = <0x00 0x2805c000 0x00 0x1000>; + interrupts = <0x00 0xca 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@2805d000 { + compatible = "phytium,tacho"; + reg = <0x00 0x2805d000 0x00 0x1000>; + interrupts = <0x00 0xcb 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@2805e000 { + compatible = "phytium,tacho"; + reg = <0x00 0x2805e000 0x00 0x1000>; + interrupts = <0x00 0xcc 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@2805f000 { + compatible = "phytium,tacho"; + reg = <0x00 0x2805f000 0x00 0x1000>; + interrupts = <0x00 0xcd 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@28060000 { + compatible = "phytium,tacho"; + reg = <0x00 0x28060000 0x00 0x1000>; + interrupts = <0x00 0xce 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@28061000 { + compatible = "phytium,tacho"; + reg = <0x00 0x28061000 0x00 0x1000>; + interrupts = <0x00 0xcf 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@28062000 { + compatible = "phytium,tacho"; + reg = <0x00 0x28062000 0x00 0x1000>; + interrupts = <0x00 0xd0 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@28063000 { + compatible = "phytium,tacho"; + reg = <0x00 0x28063000 0x00 0x1000>; + interrupts = <0x00 0xd1 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@28064000 { + compatible = "phytium,tacho"; + reg = <0x00 0x28064000 0x00 0x1000>; + interrupts = <0x00 0xd2 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@28065000 { + compatible = "phytium,tacho"; + reg = <0x00 0x28065000 0x00 0x1000>; + interrupts = <0x00 0xd3 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@28066000 { + compatible = "phytium,tacho"; + reg = <0x00 0x28066000 0x00 0x1000>; + interrupts = <0x00 0xd4 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@28067000 { + compatible = "phytium,tacho"; + reg = <0x00 0x28067000 0x00 0x1000>; + interrupts = <0x00 0xd5 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@28068000 { + compatible = "phytium,tacho"; + reg = <0x00 0x28068000 0x00 0x1000>; + interrupts = <0x00 0xd6 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@28069000 { + compatible = "phytium,tacho"; + reg = <0x00 0x28069000 0x00 0x1000>; + interrupts = <0x00 0xd7 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@2806a000 { + compatible = "phytium,tacho"; + reg = <0x00 0x2806a000 0x00 0x1000>; + interrupts = <0x00 0xd8 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@2806b000 { + compatible = "phytium,tacho"; + reg = <0x00 0x2806b000 0x00 0x1000>; + interrupts = <0x00 0xd9 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@2806c000 { + compatible = "phytium,tacho"; + reg = <0x00 0x2806c000 0x00 0x1000>; + interrupts = <0x00 0xda 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@2806d000 { + compatible = "phytium,tacho"; + reg = <0x00 0x2806d000 0x00 0x1000>; + interrupts = <0x00 0xdb 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@2806e000 { + compatible = "phytium,tacho"; + reg = <0x00 0x2806e000 0x00 0x1000>; + interrupts = <0x00 0xdc 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@2806f000 { + compatible = "phytium,tacho"; + reg = <0x00 0x2806f000 0x00 0x1000>; + interrupts = <0x00 0xdd 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@28070000 { + compatible = "phytium,tacho"; + reg = <0x00 0x28070000 0x00 0x1000>; + interrupts = <0x00 0xde 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@28071000 { + compatible = "phytium,tacho"; + reg = <0x00 0x28071000 0x00 0x1000>; + interrupts = <0x00 0xdf 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@28072000 { + compatible = "phytium,tacho"; + reg = <0x00 0x28072000 0x00 0x1000>; + interrupts = <0x00 0xe0 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@28073000 { + compatible = "phytium,tacho"; + reg = <0x00 0x28073000 0x00 0x1000>; + interrupts = <0x00 0xe1 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@28074000 { + compatible = "phytium,tacho"; + reg = <0x00 0x28074000 0x00 0x1000>; + interrupts = <0x00 0xe2 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@28075000 { + compatible = "phytium,tacho"; + reg = <0x00 0x28075000 0x00 0x1000>; + interrupts = <0x00 0xe3 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@28076000 { + compatible = "phytium,tacho"; + reg = <0x00 0x28076000 0x00 0x1000>; + interrupts = <0x00 0xe4 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@28077000 { + compatible = "phytium,tacho"; + reg = <0x00 0x28077000 0x00 0x1000>; + interrupts = <0x00 0xe5 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@28078000 { + compatible = "phytium,tacho"; + reg = <0x00 0x28078000 0x00 0x1000>; + interrupts = <0x00 0xe6 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@28079000 { + compatible = "phytium,tacho"; + reg = <0x00 0x28079000 0x00 0x1000>; + interrupts = <0x00 0xe7 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + usb2@31800000 { + compatible = "phytium,usb2"; + reg = <0x00 0x31800000 0x00 0x80000 0x00 0x31990000 0x00 0x10000>; + interrupts = <0x00 0x20 0x04>; + status = "okay"; + dr_mode = "host"; + }; + + usb2@31880000 { + compatible = "phytium,usb2"; + reg = <0x00 0x31880000 0x00 0x80000 0x00 0x319a0000 0x00 0x10000>; + interrupts = <0x00 0x21 0x04>; + status = "disabled"; + dr_mode = "peripheral"; + }; + + usb2@31900000 { + compatible = "phytium,usb2"; + reg = <0x00 0x31900000 0x00 0x80000 0x00 0x319b0000 0x00 0x10000>; + interrupts = <0x00 0x22 0x04>; + status = "disabled"; + dr_mode = "peripheral"; + }; + + usb2@32800000 { + compatible = "phytium,usb2"; + reg = <0x00 0x32800000 0x00 0x40000 0x00 0x32880000 0x00 0x40000>; + interrupts = <0x00 0x0e 0x04>; + status = "okay"; + dr_mode = "host"; + }; + + usb2@32840000 { + compatible = "phytium,usb2"; + reg = <0x00 0x32840000 0x00 0x40000 0x00 0x328c0000 0x00 0x40000>; + interrupts = <0x00 0x0f 0x04>; + status = "okay"; + dr_mode = "host"; + }; + + dc@32000000 { + compatible = "phytium,dc"; + reg = <0x00 0x32000000 0x00 0x8000>; + interrupts = <0x00 0x2c 0x04>; + status = "okay"; + pipe_mask = [01]; + edp_mask = [00]; + }; + + i2s_dp0@32009000 { + compatible = "phytium,i2s"; + reg = <0x00 0x32009000 0x00 0x1000 0x00 0x32008000 0x00 0x1000>; + interrupts = <0x00 0x2f 0x04>; + clocks = <0x0e>; + clock-names = "i2s_clk"; + dai-name = "phytium-i2s-dp0"; + status = "okay"; + }; + + i2s_dp1@3200B000 { + compatible = "phytium,i2s"; + reg = <0x00 0x3200b000 0x00 0x1000 0x00 0x3200a000 0x00 0x1000>; + interrupts = <0x00 0x30 0x04>; + clocks = <0x0e>; + clock-names = "i2s_clk"; + dai-name = "phytium-i2s-dp1"; + status = "disabled"; + }; + + pmdk_dp { + compatible = "phytium,pmdk-dp"; + status = "okay"; + num-dp = <0x01>; + dp-mask = [01]; + }; + + mailbox@32a00000 { + compatible = "phytium,mbox"; + reg = <0x00 0x32a00000 0x00 0x1000>; + interrupts = <0x00 0x16 0x04>; + #mbox-cells = <0x01>; + phandle = <0x02>; + }; + + rng@32a36000 { + compatible = "phytium,rng"; + reg = <0x00 0x32a36000 0x00 0x1000>; + status = "okay"; + }; + + sram@32a10000 { + compatible = "phytium,pe220x-sram-ns\0mmio-sram"; + reg = <0x00 0x32a10000 0x00 0x2000>; + #address-cells = <0x01>; + #size-cells = <0x01>; + ranges = <0x00 0x00 0x32a10000 0x2000>; + + scp-shmem@0 { + compatible = "arm,scmi-shmem"; + reg = <0x1000 0x400>; + }; + + scp-shmem@1 { + compatible = "arm,scmi-shmem"; + reg = <0x1400 0x400>; + phandle = <0x03>; + }; + }; + + gdma@32b34000 { + compatible = "phytium,gdma"; + dma-channels = <0x10>; + max-outstanding = <0x10>; + reg = <0x00 0x32b34000 0x00 0x1000>; + interrupts = <0x00 0xea 0x04>; + #dma-cells = <0x01>; + }; + + spinlock@32b36000 { + compatible = "phytium,hwspinlock"; + reg = <0x00 0x32b36000 0x00 0x1000>; + #hwlock-cells = <0x01>; + nr-locks = <0x20>; + status = "disabled"; + }; + + pcie@40000000 { + compatible = "pci-host-ecam-generic"; + device_type = "pci"; + #address-cells = <0x03>; + #size-cells = <0x02>; + #interrupt-cells = <0x01>; + reg = <0x00 0x40000000 0x00 0x10000000>; + msi-parent = <0x0f>; + bus-range = <0x00 0xff>; + interrupt-map-mask = <0x00 0x00 0x00 0x07>; + interrupt-map = <0x00 0x00 0x00 0x01 0x01 0x00 0x00 0x00 0x04 0x04 0x00 0x00 0x00 0x02 0x01 0x00 0x00 0x00 0x05 0x04 0x00 0x00 0x00 0x03 0x01 0x00 0x00 0x00 0x06 0x04 0x00 0x00 0x00 0x04 0x01 0x00 0x00 0x00 0x07 0x04>; + ranges = <0x1000000 0x00 0x00 0x00 0x50000000 0x00 0xf00000 0x2000000 0x00 0x58000000 0x00 0x58000000 0x00 0x28000000 0x3000000 0x10 0x00 0x10 0x00 0x10 0x00>; + iommu-map = <0x00 0x10 0x00 0x10000>; + status = "okay"; + }; + + edac@32b28000 { + compatible = "phytium,pe220x-edac"; + reg = <0x00 0x32b28000 0x00 0x1000 0x00 0x31400000 0x00 0x1000 0x00 0x31401000 0x00 0x1000>; + interrupts = <0x00 0x00 0x04 0x00 0x01 0x04>; + status = "disabled"; + }; + + hda@28006000 { + compatible = "phytium,hda"; + reg = <0x00 0x28006000 0x00 0x1000>; + interrupts = <0x00 0x4e 0x04>; + status = "disabled"; + }; + + i2s@28009000 { + compatible = "phytium,i2s"; + reg = <0x00 0x28009000 0x00 0x1000 0x00 0x28005000 0x00 0x1000>; + interrupts = <0x00 0x4d 0x04>; + clocks = <0x0e>; + clock-names = "i2s_clk"; + status = "okay"; + #sound-dai-cells = <0x00>; + dai-name = "phytium-i2s-lsd"; + phandle = <0x16>; + }; + + can@2800a000 { + compatible = "phytium,canfd"; + reg = <0x00 0x2800a000 0x00 0x1000>; + interrupts = <0x00 0x51 0x04>; + clocks = <0x11>; + clock-names = "can_clk"; + tx-fifo-depth = <0x40>; + rx-fifo-depth = <0x40>; + status = "okay"; + }; + + can@2800b000 { + compatible = "phytium,canfd"; + reg = <0x00 0x2800b000 0x00 0x1000>; + interrupts = <0x00 0x52 0x04>; + clocks = <0x11>; + clock-names = "can_clk"; + tx-fifo-depth = <0x40>; + rx-fifo-depth = <0x40>; + status = "okay"; + }; + + keypad@2807a000 { + compatible = "phytium,keypad"; + reg = <0x00 0x2807a000 0x00 0x1000>; + interrupts = <0x00 0xbd 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + usb3@31a08000 { + compatible = "phytium,pe220x-xhci"; + reg = <0x00 0x31a08000 0x00 0x18000>; + interrupts = <0x00 0x10 0x04>; + status = "okay"; + }; + + usb3@31a28000 { + compatible = "phytium,pe220x-xhci"; + reg = <0x00 0x31a28000 0x00 0x18000>; + interrupts = <0x00 0x11 0x04>; + status = "okay"; + }; + + sata@31a40000 { + compatible = "generic-ahci"; + reg = <0x00 0x31a40000 0x00 0x1000>; + interrupts = <0x00 0x2a 0x04>; + status = "disabled"; + }; + + sata@32014000 { + compatible = "generic-ahci"; + reg = <0x00 0x32014000 0x00 0x1000>; + interrupts = <0x00 0x2b 0x04>; + status = "disabled"; + }; + + ethernet@3200c000 { + compatible = "cdns,phytium-gem-1.0"; + reg = <0x00 0x3200c000 0x00 0x2000>; + interrupts = <0x00 0x37 0x04 0x00 0x38 0x04 0x00 0x39 0x04 0x00 0x3a 0x04 0x00 0x1c 0x04 0x00 0x1d 0x04 0x00 0x1e 0x04 0x00 0x1f 0x04>; + clock-names = "pclk\0hclk\0tx_clk\0tsu_clk"; + clocks = <0x12 0x13 0x13 0x12>; + magic-packet; + support-tsn; + status = "okay"; + phy-mode = "sgmii"; + use-mii; + }; + + ethernet@3200e000 { + compatible = "cdns,phytium-gem-1.0"; + reg = <0x00 0x3200e000 0x00 0x2000>; + interrupts = <0x00 0x3b 0x04 0x00 0x3c 0x04 0x00 0x3d 0x04 0x00 0x3e 0x04>; + clock-names = "pclk\0hclk\0tx_clk\0tsu_clk"; + clocks = <0x12 0x13 0x13 0x12>; + magic-packet; + status = "okay"; + phy-mode = "sgmii"; + use-mii; + }; + + ethernet@32010000 { + compatible = "cdns,phytium-gem-1.0"; + reg = <0x00 0x32010000 0x00 0x2000>; + interrupts = <0x00 0x40 0x04 0x00 0x41 0x04 0x00 0x42 0x04 0x00 0x43 0x04>; + clock-names = "pclk\0hclk\0tx_clk\0tsu_clk"; + clocks = <0x12 0x13 0x13 0x12>; + magic-packet; + status = "disabled"; + }; + + ethernet@32012000 { + compatible = "cdns,phytium-gem-1.0"; + reg = <0x00 0x32012000 0x00 0x2000>; + interrupts = <0x00 0x44 0x04 0x00 0x45 0x04 0x00 0x46 0x04 0x00 0x47 0x04>; + clock-names = "pclk\0hclk\0tx_clk\0tsu_clk"; + clocks = <0x12 0x13 0x13 0x12>; + magic-packet; + status = "disabled"; + }; + + vpu@32b00000 { + compatible = "phytium,vpu"; + reg = <0x00 0x32b00000 0x00 0x20000>; + interrupts = <0x00 0x0c 0x04>; + status = "okay"; + }; + + i2c@28026000 { + compatible = "phytium,i2c"; + reg = <0x00 0x28026000 0x00 0x1000>; + interrupts = <0x00 0x65 0x04>; + clocks = <0x0d>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "okay"; + }; + + i2c@28030000 { + compatible = "phytium,i2c"; + reg = <0x00 0x28030000 0x00 0x1000>; + interrupts = <0x00 0x6a 0x04>; + clocks = <0x0d>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "okay"; + + es8336@10 { + #sound-dai-cells = <0x00>; + compatible = "everest,es8336"; + reg = <0x10>; + phandle = <0x17>; + }; + }; + + uart@28014000 { + compatible = "arm,pl011\0arm,primecell"; + reg = <0x00 0x28014000 0x00 0x1000>; + interrupts = <0x00 0x5c 0x04>; + clocks = <0x0d 0x0d>; + clock-names = "uartclk\0apb_pclk"; + status = "okay"; + }; + + i2c@28016000 { + compatible = "phytium,i2c"; + reg = <0x00 0x28016000 0x00 0x1000>; + interrupts = <0x00 0x5d 0x04>; + clocks = <0x0d>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "okay"; + }; + + i2c@28024000 { + compatible = "phytium,i2c"; + reg = <0x00 0x28024000 0x00 0x1000>; + interrupts = <0x00 0x64 0x04>; + clocks = <0x0d>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "okay"; + }; + + uart@2802A000 { + compatible = "arm,pl011\0arm,primecell"; + reg = <0x00 0x2802a000 0x00 0x1000>; + interrupts = <0x00 0x67 0x04>; + clocks = <0x0d 0x0d>; + clock-names = "uartclk\0apb_pclk"; + status = "okay"; + }; + + uart@28032000 { + compatible = "arm,pl011\0arm,primecell"; + reg = <0x00 0x28032000 0x00 0x1000>; + interrupts = <0x00 0x6b 0x04>; + clocks = <0x0d 0x0d>; + clock-names = "uartclk\0apb_pclk"; + status = "okay"; + }; + }; + + chosen { + bootargs = "console=ttyAMA1,115200 earlycon=pl011,0x2800d000 root=/dev/mmcblk0p1 rootfstype=ext4 rootwait rw cma=256m ;"; + stdout-path = "serial1:115200n8"; + }; + + memory { + device_type = "memory"; + reg = <0x20 0x40000000 0x00 0x40000000>; + }; + + leds { + compatible = "gpio-leds"; + + sysled { + label = "sysled"; + gpios = <0x14 0x05 0x00>; + linux,default-trigger = "none"; + }; + }; + + sound { + compatible = "simple-audio-card"; + simple-audio-card,format = "i2s"; + simple-audio-card,name = "phytium,pe220x-i2s-audio"; + simple-audio-card,pin-switches = "mic-in"; + simple-audio-card,widgets = "Microphone\0mic-in\0Headphone\0Headphones"; + simple-audio-card,routing = "MIC2\0mic-in"; + simple-audio-card,hp-det-gpio = <0x15 0x0b 0x01>; + + simple-audio-card,cpu { + sound-dai = <0x16>; + }; + + simple-audio-card,codec { + sound-dai = <0x17>; + }; + }; +}; diff --git a/configs/vms_bkp/linux-aarch64-e2000_smp1.toml b/configs/vms_bkp/linux-aarch64-e2000_smp1.toml new file mode 100644 index 00000000..52017828 --- /dev/null +++ b/configs/vms_bkp/linux-aarch64-e2000_smp1.toml @@ -0,0 +1,114 @@ +# Vm base info configs +# +[base] +# Guest vm id. +id = 1 +# Guest vm name. +name = "linux" +# Virtualization type. +vm_type = 1 +# The number of virtual CPUs. +cpu_num = 1 +# The physical CPU ids. +phys_cpu_ids = [0x100] +# Guest vm physical cpu sets. +phys_cpu_sets = [8] + +# +# Vm kernel configs +# +[kernel] +# The entry point of the kernel image. +entry_point = 0x20_4008_0000 +# The location of image: "memory" | "fs". +# Load from file system. +image_location = "memory" +# The load address of the kernel image. +kernel_load_addr = 0x20_4008_0000 +## The file path of the kernel image. +kernel_path = "/path/to/Image" +## The file path of the device tree blob (DTB). +dtb_load_addr = 0x20_4000_0000 +dtb_path = "/path/to/axvisor/configs/vms/linux-aarch64-e2000_smp1.dtb" +# Memory regions with format (`base_paddr`, `size`, `flags`, `map_type`). +# For `map_type`, 0 means `MAP_ALLOC`, 1 means `MAP_IDENTICAL`. +memory_regions = [ + [0x20_4000_0000, 0x4000_0000, 0x7, 1], # System RAM MAP_IDENTICAL +] + +# +# Device specifications +# +[devices] +# Emu_devices. +# Name Base-Ipa Ipa_len Alloc-Irq Emu-Type EmuConfig. +interrupt_mode = "passthrough" +emu_devices = [] + +# Pass-through devices. +# Name Base-Ipa Base-Pa Length Alloc-Irq. +passthrough_devices = [ + [ + "QSPI", + 0x0000_0000, + 0x0000_0000, + 0x1000_0000, + 0x1, + ], + [ + "LocalBus", + 0x1000_0000, + 0x1000_0000, + 0x1000_0000, + 0x1, + ], + [ + "low speed peripherals", + 0x2800_0000, + 0x2800_0000, + 0x0800_0000, + 0x1, + ], + [ + "other peripherals", + 0x3000_0000, + 0x3000_0000, + 0x0800_0000, + 0x1, + ], + [ + "IACC", + 0x3800_0000, + 0x3800_0000, + 0x0800_0000, + 0x1, + ], + [ + "PCIE", + 0x4000_0000, + 0x4000_0000, + 0x4000_0000, + 0x1, + ], + [ + "QSPI high address", + 0x01_0000_0000, + 0x01_0000_0000, + 0x8000_0000, + 0x1, + ], + [ + "LocalBus high address", + 0x01_8000_0000, + 0x01_8000_0000, + 0x8000_0000, + 0x1, + ], + [ + "PCIe MEM64", + 0x10_0000_0000, + 0x10_0000_0000, + 0x01_0000_0000, + 0x1, + ], +] diff --git a/configs/vms_bkp/linux-aarch64-e2000_smp2.dts b/configs/vms_bkp/linux-aarch64-e2000_smp2.dts new file mode 100644 index 00000000..0d3b86b4 --- /dev/null +++ b/configs/vms_bkp/linux-aarch64-e2000_smp2.dts @@ -0,0 +1,1302 @@ +/dts-v1/; + +/memreserve/ 0x0000000080000000 0x0000000000010000; +/ { + compatible = "phytium,pe2204"; + interrupt-parent = <0x01>; + #address-cells = <0x02>; + #size-cells = <0x02>; + model = "Phytium Pi Board"; + + // memory@01 { + // device_type = "memory"; + // reg = <0x20 0x00000000 0x00 0x40000000>; + // numa-node-id = <0x00>; + // }; + + aliases { + serial0 = "/soc/uart@2800c000"; + serial1 = "/soc/uart@2800d000"; + serial2 = "/soc/uart@2800e000"; + serial3 = "/soc/uart@2800f000"; + ethernet0 = "/soc/ethernet@3200c000"; + ethernet1 = "/soc/ethernet@3200e000"; + ethernet2 = "/soc/ethernet@32010000"; + ethernet3 = "/soc/ethernet@32012000"; + serial4 = "/soc/uart@28014000"; + serial5 = "/soc/uart@2802A000"; + serial6 = "/soc/uart@28032000"; + }; + + psci { + compatible = "arm,psci-1.0"; + method = "smc"; + cpu_suspend = <0xc4000001>; + cpu_off = <0x84000002>; + cpu_on = <0xc4000003>; + sys_poweroff = <0x84000008>; + sys_reset = <0x84000009>; + }; + + firmware { + + scmi { + compatible = "arm,scmi"; + mboxes = <0x02 0x00>; + mbox-names = "tx"; + shmem = <0x03>; + #address-cells = <0x01>; + #size-cells = <0x00>; + + protocol@13 { + reg = <0x13>; + #clock-cells = <0x01>; + phandle = <0x09>; + }; + + protocol@15 { + reg = <0x15>; + #thermal-sensor-cells = <0x01>; + phandle = <0x04>; + }; + }; + + optee { + compatible = "linaro,optee-tz"; + method = "smc"; + }; + }; + + thermal-zones { + + sensor0 { + polling-delay-passive = <0x64>; + polling-delay = <0x3e8>; + thermal-sensors = <0x04 0x00>; + }; + + sensor1 { + polling-delay-passive = <0x64>; + polling-delay = <0x3e8>; + thermal-sensors = <0x04 0x01>; + }; + }; + + cpus { + #address-cells = <0x02>; + #size-cells = <0x00>; + + cpu-map { + + cluster0 { + + core0 { + cpu = <0x05>; + }; + }; + + // cluster1 { + + // core0 { + // cpu = <0x06>; + // }; + // }; + + cluster2 { + + core0 { + cpu = <0x07>; + }; + + // core1 { + // cpu = <0x08>; + // }; + }; + }; + + cpu@0 { + device_type = "cpu"; + compatible = "phytium,ftc310\0arm,armv8"; + reg = <0x00 0x200>; + enable-method = "psci"; + clocks = <0x09 0x02>; + capacity-dmips-mhz = <0xb22>; + phandle = <0x07>; + }; + + // cpu@1 { + // device_type = "cpu"; + // compatible = "phytium,ftc310\0arm,armv8"; + // reg = <0x00 0x201>; + // enable-method = "psci"; + // clocks = <0x09 0x02>; + // capacity-dmips-mhz = <0xb22>; + // phandle = <0x08>; + // }; + + cpu@100 { + device_type = "cpu"; + compatible = "phytium,ftc664\0arm,armv8"; + reg = <0x00 0x00>; + enable-method = "psci"; + clocks = <0x09 0x00>; + capacity-dmips-mhz = <0x161c>; + phandle = <0x05>; + }; + + // cpu@101 { + // device_type = "cpu"; + // compatible = "phytium,ftc664\0arm,armv8"; + // reg = <0x00 0x100>; + // enable-method = "psci"; + // clocks = <0x09 0x01>; + // capacity-dmips-mhz = <0x161c>; + // phandle = <0x06>; + // }; + }; + + interrupt-controller@30800000 { + compatible = "arm,gic-v3"; + #interrupt-cells = <0x03>; + #address-cells = <0x02>; + #size-cells = <0x02>; + ranges; + interrupt-controller; + reg = <0x00 0x30800000 0x00 0x20000 0x00 0x30880000 0x00 0x80000 0x00 0x30840000 0x00 0x10000 0x00 0x30850000 0x00 0x10000 0x00 0x30860000 0x00 0x10000>; + interrupts = <0x01 0x09 0x08>; + phandle = <0x01>; + + gic-its@30820000 { + compatible = "arm,gic-v3-its"; + msi-controller; + reg = <0x00 0x30820000 0x00 0x20000>; + phandle = <0x0f>; + }; + }; + + pmu { + compatible = "arm,armv8-pmuv3"; + interrupts = <0x01 0x07 0x08>; + }; + + timer { + compatible = "arm,armv8-timer"; + interrupts = <0x01 0x0d 0x08 0x01 0x0e 0x08 0x01 0x0b 0x08 0x01 0x0a 0x08>; + clock-frequency = <0x2faf080>; + }; + + clocks { + #address-cells = <0x02>; + #size-cells = <0x02>; + ranges; + + clk48mhz { + compatible = "fixed-clock"; + #clock-cells = <0x00>; + clock-frequency = <0x2dc6c00>; + phandle = <0x13>; + }; + + clk50mhz { + compatible = "fixed-clock"; + #clock-cells = <0x00>; + clock-frequency = <0x2faf080>; + phandle = <0x0d>; + }; + + clk100mhz { + compatible = "fixed-clock"; + #clock-cells = <0x00>; + clock-frequency = <0x5f5e100>; + phandle = <0x0c>; + }; + + clk200mhz { + compatible = "fixed-clock"; + #clock-cells = <0x00>; + clock-frequency = <0xbebc200>; + phandle = <0x11>; + }; + + clk250mhz { + compatible = "fixed-clock"; + #clock-cells = <0x00>; + clock-frequency = <0xee6b280>; + phandle = <0x12>; + }; + + clk300mhz { + compatible = "fixed-clock"; + #clock-cells = <0x00>; + clock-frequency = <0x11e1a300>; + phandle = <0x0b>; + }; + + clk600mhz { + compatible = "fixed-clock"; + #clock-cells = <0x00>; + clock-frequency = <0x23c34600>; + phandle = <0x0e>; + }; + + clk1200mhz { + compatible = "fixed-clock"; + #clock-cells = <0x00>; + clock-frequency = <0x47868c00>; + phandle = <0x0a>; + }; + }; + + iommu@30000000 { + compatible = "arm,smmu-v3"; + reg = <0x00 0x30000000 0x00 0x800000>; + interrupts = <0x00 0xf0 0x01 0x00 0xef 0x01 0x00 0xec 0x01 0x00 0xf2 0x01>; + interrupt-names = "eventq\0priq\0cmdq-sync\0gerror"; + dma-coherent; + #iommu-cells = <0x01>; + phandle = <0x10>; + }; + + soc { + compatible = "simple-bus"; + #address-cells = <0x02>; + #size-cells = <0x02>; + dma-coherent; + ranges; + + mmc@28000000 { + compatible = "phytium,mci"; + reg = <0x00 0x28000000 0x00 0x1000>; + interrupts = <0x00 0x48 0x04>; + clocks = <0x0a>; + clock-names = "phytium_mci_clk"; + status = "okay"; + bus-width = <0x04>; + max-frequency = <0x2faf080>; + cap-sdio-irq; + cap-sd-highspeed; + no-mmc; + }; + + mmc@28001000 { + compatible = "phytium,mci"; + reg = <0x00 0x28001000 0x00 0x1000>; + interrupts = <0x00 0x49 0x04>; + clocks = <0x0a>; + clock-names = "phytium_mci_clk"; + status = "okay"; + bus-width = <0x04>; + max-frequency = <0x2faf080>; + cap-sdio-irq; + cap-sd-highspeed; + no-mmc; + no-sd; + non-removable; + }; + + nand@28002000 { + compatible = "phytium,nfc"; + reg = <0x00 0x28002000 0x00 0x1000>; + interrupts = <0x00 0x4a 0x04>; + status = "disabled"; + }; + + ddma@28003000 { + compatible = "phytium,ddma"; + reg = <0x00 0x28003000 0x00 0x1000>; + interrupts = <0x00 0x4b 0x04>; + #dma-cells = <0x02>; + dma-channels = <0x08>; + }; + + ddma@28004000 { + compatible = "phytium,ddma"; + reg = <0x00 0x28004000 0x00 0x1000>; + interrupts = <0x00 0x4c 0x04>; + #dma-cells = <0x02>; + dma-channels = <0x08>; + }; + + spi@28008000 { + compatible = "phytium,qspi-nor"; + reg = <0x00 0x28008000 0x00 0x1000 0x00 0x00 0x00 0xfffffff>; + reg-names = "qspi\0qspi_mm"; + clocks = <0x0b>; + status = "okay"; + #address-cells = <0x01>; + #size-cells = <0x00>; + + flash@0 { + compatible = "jedec,spi-nor"; + reg = <0x00>; + spi-rx-bus-width = <0x01>; + spi-max-frequency = <0x1312d00>; + status = "okay"; + }; + }; + + uart@2800c000 { + compatible = "arm,pl011\0arm,primecell"; + reg = <0x00 0x2800c000 0x00 0x1000>; + interrupts = <0x00 0x53 0x04>; + clocks = <0x0c 0x0c>; + clock-names = "uartclk\0apb_pclk"; + status = "okay"; + }; + + uart@2800d000 { + compatible = "arm,pl011\0arm,primecell"; + reg = <0x00 0x2800d000 0x00 0x1000>; + interrupts = <0x00 0x54 0x04>; + clocks = <0x0c 0x0c>; + clock-names = "uartclk\0apb_pclk"; + status = "okay"; + }; + + uart@2800e000 { + compatible = "arm,pl011\0arm,primecell"; + reg = <0x00 0x2800e000 0x00 0x1000>; + interrupts = <0x00 0x55 0x04>; + clocks = <0x0c 0x0c>; + clock-names = "uartclk\0apb_pclk"; + status = "okay"; + }; + + uart@2800f000 { + compatible = "arm,pl011\0arm,primecell"; + reg = <0x00 0x2800f000 0x00 0x1000>; + interrupts = <0x00 0x56 0x04>; + clocks = <0x0c 0x0c>; + clock-names = "uartclk\0apb_pclk"; + status = "okay"; + }; + + lpc@28010000 { + compatible = "simple-mfd\0syscon"; + reg = <0x00 0x28010000 0x00 0x1000>; + reg-io-width = <0x04>; + #address-cells = <0x01>; + #size-cells = <0x01>; + ranges = <0x00 0x00 0x28010000 0x1000>; + + kcs@24 { + compatible = "phytium,kcs-bmc"; + reg = <0x24 0x01 0x30 0x01 0x3c 0x01>; + interrupts = <0x00 0x58 0x04>; + status = "disabled"; + }; + + kcs@28 { + compatible = "phytium,kcs-bmc"; + reg = <0x28 0x01 0x34 0x01 0x40 0x01>; + interrupts = <0x00 0x58 0x04>; + status = "disabled"; + }; + + kcs@2c { + compatible = "phytium,kcs-bmc"; + reg = <0x2c 0x01 0x38 0x01 0x44 0x01>; + interrupts = <0x00 0x58 0x04>; + status = "disabled"; + }; + + kcs@8c { + compatible = "phytium,kcs-bmc"; + reg = <0x8c 0x01 0x90 0x01 0x94 0x01>; + interrupts = <0x00 0x58 0x04>; + status = "disabled"; + }; + + bt@48 { + compatible = "phytium,bt-bmc"; + reg = <0x48 0x20>; + interrupts = <0x00 0x58 0x04>; + status = "disabled"; + }; + }; + + gpio@28034000 { + compatible = "phytium,gpio"; + reg = <0x00 0x28034000 0x00 0x1000>; + interrupts = <0x00 0x6c 0x04 0x00 0x6d 0x04 0x00 0x6e 0x04 0x00 0x6f 0x04 0x00 0x70 0x04 0x00 0x71 0x04 0x00 0x72 0x04 0x00 0x73 0x04 0x00 0x74 0x04 0x00 0x75 0x04 0x00 0x76 0x04 0x00 0x77 0x04 0x00 0x78 0x04 0x00 0x79 0x04 0x00 0x7a 0x04 0x00 0x7b 0x04>; + gpio-controller; + #gpio-cells = <0x02>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "okay"; + + porta { + compatible = "phytium,gpio-port"; + reg = <0x00>; + ngpios = <0x10>; + }; + }; + + gpio@28035000 { + compatible = "phytium,gpio"; + reg = <0x00 0x28035000 0x00 0x1000>; + interrupts = <0x00 0x7c 0x04 0x00 0x7d 0x04 0x00 0x7e 0x04 0x00 0x7f 0x04 0x00 0x80 0x04 0x00 0x81 0x04 0x00 0x82 0x04 0x00 0x83 0x04 0x00 0x84 0x04 0x00 0x85 0x04 0x00 0x86 0x04 0x00 0x87 0x04 0x00 0x88 0x04 0x00 0x89 0x04 0x00 0x8a 0x04 0x00 0x8b 0x04>; + gpio-controller; + #gpio-cells = <0x02>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "okay"; + phandle = <0x14>; + + porta { + compatible = "phytium,gpio-port"; + reg = <0x00>; + ngpios = <0x10>; + }; + }; + + gpio@28036000 { + compatible = "phytium,gpio"; + reg = <0x00 0x28036000 0x00 0x1000>; + interrupts = <0x00 0x8c 0x04 0x00 0x8d 0x04 0x00 0x8e 0x04 0x00 0x8f 0x04 0x00 0x90 0x04 0x00 0x91 0x04 0x00 0x92 0x04 0x00 0x93 0x04 0x00 0x94 0x04 0x00 0x95 0x04 0x00 0x96 0x04 0x00 0x97 0x04 0x00 0x98 0x04 0x00 0x99 0x04 0x00 0x9a 0x04 0x00 0x9b 0x04>; + gpio-controller; + #gpio-cells = <0x02>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "okay"; + phandle = <0x15>; + + porta { + compatible = "phytium,gpio-port"; + reg = <0x00>; + ngpios = <0x10>; + }; + }; + + gpio@28037000 { + compatible = "phytium,gpio"; + reg = <0x00 0x28037000 0x00 0x1000>; + interrupts = <0x00 0x9c 0x04>; + gpio-controller; + #gpio-cells = <0x02>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "okay"; + + porta { + compatible = "phytium,gpio-port"; + reg = <0x00>; + ngpios = <0x10>; + }; + }; + + gpio@28038000 { + compatible = "phytium,gpio"; + reg = <0x00 0x28038000 0x00 0x1000>; + interrupts = <0x00 0x9d 0x04>; + gpio-controller; + #gpio-cells = <0x02>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "okay"; + + porta { + compatible = "phytium,gpio-port"; + reg = <0x00>; + ngpios = <0x10>; + }; + }; + + gpio@28039000 { + compatible = "phytium,gpio"; + reg = <0x00 0x28039000 0x00 0x1000>; + interrupts = <0x00 0x9e 0x04>; + gpio-controller; + #gpio-cells = <0x02>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "okay"; + + porta { + compatible = "phytium,gpio-port"; + reg = <0x00>; + ngpios = <0x10>; + }; + }; + + spi@2803a000 { + compatible = "phytium,spi"; + reg = <0x00 0x2803a000 0x00 0x1000>; + interrupts = <0x00 0x9f 0x04>; + clocks = <0x0d>; + num-cs = <0x04>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "okay"; + global-cs = <0x01>; + + spidev@0 { + compatible = "spidev"; + reg = <0x00>; + spi-max-frequency = <0x2faf080>; + status = "disabled"; + }; + }; + + spi@2803b000 { + compatible = "phytium,spi"; + reg = <0x00 0x2803b000 0x00 0x1000>; + interrupts = <0x00 0xa0 0x04>; + clocks = <0x0d>; + num-cs = <0x04>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "disabled"; + }; + + spi@2803c000 { + compatible = "phytium,spi"; + reg = <0x00 0x2803c000 0x00 0x1000>; + interrupts = <0x00 0xa1 0x04>; + clocks = <0x0d>; + num-cs = <0x04>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "disabled"; + }; + + spi@2803d000 { + compatible = "phytium,spi"; + reg = <0x00 0x2803d000 0x00 0x1000>; + interrupts = <0x00 0xa2 0x04>; + clocks = <0x0d>; + num-cs = <0x04>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "disabled"; + }; + + watchdog@28040000 { + compatible = "arm,sbsa-gwdt"; + reg = <0x00 0x28041000 0x00 0x1000 0x00 0x28040000 0x00 0x1000>; + interrupts = <0x00 0xa4 0x04>; + timeout-sec = <0x1e>; + status = "okay"; + }; + + watchdog@28042000 { + compatible = "arm,sbsa-gwdt"; + reg = <0x00 0x28043000 0x00 0x1000 0x00 0x28042000 0x00 0x1000>; + interrupts = <0x00 0xa5 0x04>; + timeout-sec = <0x1e>; + status = "okay"; + }; + + pwm@2804a000 { + compatible = "phytium,pwm"; + reg = <0x00 0x2804a000 0x00 0x1000>; + interrupts = <0x00 0xad 0x04>; + clocks = <0x0d>; + status = "okay"; + phytium,db = <0x00 0x00 0x64 0x3e8 0x3e8 0x00>; + }; + + pwm@2804b000 { + compatible = "phytium,pwm"; + reg = <0x00 0x2804b000 0x00 0x1000>; + interrupts = <0x00 0xae 0x04>; + clocks = <0x0d>; + status = "okay"; + phytium,db = <0x00 0x00 0x64 0x3e8 0x3e8 0x00>; + }; + + tacho@28054000 { + compatible = "phytium,tacho"; + reg = <0x00 0x28054000 0x00 0x1000>; + interrupts = <0x00 0xc2 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@28055000 { + compatible = "phytium,tacho"; + reg = <0x00 0x28055000 0x00 0x1000>; + interrupts = <0x00 0xc3 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@28056000 { + compatible = "phytium,tacho"; + reg = <0x00 0x28056000 0x00 0x1000>; + interrupts = <0x00 0xc4 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@28057000 { + compatible = "phytium,tacho"; + reg = <0x00 0x28057000 0x00 0x1000>; + interrupts = <0x00 0xc5 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@28058000 { + compatible = "phytium,tacho"; + reg = <0x00 0x28058000 0x00 0x1000>; + interrupts = <0x00 0xc6 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@28059000 { + compatible = "phytium,tacho"; + reg = <0x00 0x28059000 0x00 0x1000>; + interrupts = <0x00 0xc7 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@2805a000 { + compatible = "phytium,tacho"; + reg = <0x00 0x2805a000 0x00 0x1000>; + interrupts = <0x00 0xc8 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@2805b000 { + compatible = "phytium,tacho"; + reg = <0x00 0x2805b000 0x00 0x1000>; + interrupts = <0x00 0xc9 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@2805c000 { + compatible = "phytium,tacho"; + reg = <0x00 0x2805c000 0x00 0x1000>; + interrupts = <0x00 0xca 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@2805d000 { + compatible = "phytium,tacho"; + reg = <0x00 0x2805d000 0x00 0x1000>; + interrupts = <0x00 0xcb 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@2805e000 { + compatible = "phytium,tacho"; + reg = <0x00 0x2805e000 0x00 0x1000>; + interrupts = <0x00 0xcc 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@2805f000 { + compatible = "phytium,tacho"; + reg = <0x00 0x2805f000 0x00 0x1000>; + interrupts = <0x00 0xcd 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@28060000 { + compatible = "phytium,tacho"; + reg = <0x00 0x28060000 0x00 0x1000>; + interrupts = <0x00 0xce 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@28061000 { + compatible = "phytium,tacho"; + reg = <0x00 0x28061000 0x00 0x1000>; + interrupts = <0x00 0xcf 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@28062000 { + compatible = "phytium,tacho"; + reg = <0x00 0x28062000 0x00 0x1000>; + interrupts = <0x00 0xd0 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@28063000 { + compatible = "phytium,tacho"; + reg = <0x00 0x28063000 0x00 0x1000>; + interrupts = <0x00 0xd1 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@28064000 { + compatible = "phytium,tacho"; + reg = <0x00 0x28064000 0x00 0x1000>; + interrupts = <0x00 0xd2 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@28065000 { + compatible = "phytium,tacho"; + reg = <0x00 0x28065000 0x00 0x1000>; + interrupts = <0x00 0xd3 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@28066000 { + compatible = "phytium,tacho"; + reg = <0x00 0x28066000 0x00 0x1000>; + interrupts = <0x00 0xd4 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@28067000 { + compatible = "phytium,tacho"; + reg = <0x00 0x28067000 0x00 0x1000>; + interrupts = <0x00 0xd5 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@28068000 { + compatible = "phytium,tacho"; + reg = <0x00 0x28068000 0x00 0x1000>; + interrupts = <0x00 0xd6 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@28069000 { + compatible = "phytium,tacho"; + reg = <0x00 0x28069000 0x00 0x1000>; + interrupts = <0x00 0xd7 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@2806a000 { + compatible = "phytium,tacho"; + reg = <0x00 0x2806a000 0x00 0x1000>; + interrupts = <0x00 0xd8 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@2806b000 { + compatible = "phytium,tacho"; + reg = <0x00 0x2806b000 0x00 0x1000>; + interrupts = <0x00 0xd9 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@2806c000 { + compatible = "phytium,tacho"; + reg = <0x00 0x2806c000 0x00 0x1000>; + interrupts = <0x00 0xda 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@2806d000 { + compatible = "phytium,tacho"; + reg = <0x00 0x2806d000 0x00 0x1000>; + interrupts = <0x00 0xdb 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@2806e000 { + compatible = "phytium,tacho"; + reg = <0x00 0x2806e000 0x00 0x1000>; + interrupts = <0x00 0xdc 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@2806f000 { + compatible = "phytium,tacho"; + reg = <0x00 0x2806f000 0x00 0x1000>; + interrupts = <0x00 0xdd 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@28070000 { + compatible = "phytium,tacho"; + reg = <0x00 0x28070000 0x00 0x1000>; + interrupts = <0x00 0xde 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@28071000 { + compatible = "phytium,tacho"; + reg = <0x00 0x28071000 0x00 0x1000>; + interrupts = <0x00 0xdf 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@28072000 { + compatible = "phytium,tacho"; + reg = <0x00 0x28072000 0x00 0x1000>; + interrupts = <0x00 0xe0 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@28073000 { + compatible = "phytium,tacho"; + reg = <0x00 0x28073000 0x00 0x1000>; + interrupts = <0x00 0xe1 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@28074000 { + compatible = "phytium,tacho"; + reg = <0x00 0x28074000 0x00 0x1000>; + interrupts = <0x00 0xe2 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@28075000 { + compatible = "phytium,tacho"; + reg = <0x00 0x28075000 0x00 0x1000>; + interrupts = <0x00 0xe3 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@28076000 { + compatible = "phytium,tacho"; + reg = <0x00 0x28076000 0x00 0x1000>; + interrupts = <0x00 0xe4 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@28077000 { + compatible = "phytium,tacho"; + reg = <0x00 0x28077000 0x00 0x1000>; + interrupts = <0x00 0xe5 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@28078000 { + compatible = "phytium,tacho"; + reg = <0x00 0x28078000 0x00 0x1000>; + interrupts = <0x00 0xe6 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@28079000 { + compatible = "phytium,tacho"; + reg = <0x00 0x28079000 0x00 0x1000>; + interrupts = <0x00 0xe7 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + usb2@31800000 { + compatible = "phytium,usb2"; + reg = <0x00 0x31800000 0x00 0x80000 0x00 0x31990000 0x00 0x10000>; + interrupts = <0x00 0x20 0x04>; + status = "okay"; + dr_mode = "host"; + }; + + usb2@31880000 { + compatible = "phytium,usb2"; + reg = <0x00 0x31880000 0x00 0x80000 0x00 0x319a0000 0x00 0x10000>; + interrupts = <0x00 0x21 0x04>; + status = "disabled"; + dr_mode = "peripheral"; + }; + + usb2@31900000 { + compatible = "phytium,usb2"; + reg = <0x00 0x31900000 0x00 0x80000 0x00 0x319b0000 0x00 0x10000>; + interrupts = <0x00 0x22 0x04>; + status = "disabled"; + dr_mode = "peripheral"; + }; + + usb2@32800000 { + compatible = "phytium,usb2"; + reg = <0x00 0x32800000 0x00 0x40000 0x00 0x32880000 0x00 0x40000>; + interrupts = <0x00 0x0e 0x04>; + status = "okay"; + dr_mode = "host"; + }; + + usb2@32840000 { + compatible = "phytium,usb2"; + reg = <0x00 0x32840000 0x00 0x40000 0x00 0x328c0000 0x00 0x40000>; + interrupts = <0x00 0x0f 0x04>; + status = "okay"; + dr_mode = "host"; + }; + + dc@32000000 { + compatible = "phytium,dc"; + reg = <0x00 0x32000000 0x00 0x8000>; + interrupts = <0x00 0x2c 0x04>; + status = "okay"; + pipe_mask = [01]; + edp_mask = [00]; + }; + + i2s_dp0@32009000 { + compatible = "phytium,i2s"; + reg = <0x00 0x32009000 0x00 0x1000 0x00 0x32008000 0x00 0x1000>; + interrupts = <0x00 0x2f 0x04>; + clocks = <0x0e>; + clock-names = "i2s_clk"; + dai-name = "phytium-i2s-dp0"; + status = "okay"; + }; + + i2s_dp1@3200B000 { + compatible = "phytium,i2s"; + reg = <0x00 0x3200b000 0x00 0x1000 0x00 0x3200a000 0x00 0x1000>; + interrupts = <0x00 0x30 0x04>; + clocks = <0x0e>; + clock-names = "i2s_clk"; + dai-name = "phytium-i2s-dp1"; + status = "disabled"; + }; + + pmdk_dp { + compatible = "phytium,pmdk-dp"; + status = "okay"; + num-dp = <0x01>; + dp-mask = [01]; + }; + + mailbox@32a00000 { + compatible = "phytium,mbox"; + reg = <0x00 0x32a00000 0x00 0x1000>; + interrupts = <0x00 0x16 0x04>; + #mbox-cells = <0x01>; + phandle = <0x02>; + }; + + rng@32a36000 { + compatible = "phytium,rng"; + reg = <0x00 0x32a36000 0x00 0x1000>; + status = "okay"; + }; + + sram@32a10000 { + compatible = "phytium,pe220x-sram-ns\0mmio-sram"; + reg = <0x00 0x32a10000 0x00 0x2000>; + #address-cells = <0x01>; + #size-cells = <0x01>; + ranges = <0x00 0x00 0x32a10000 0x2000>; + + scp-shmem@0 { + compatible = "arm,scmi-shmem"; + reg = <0x1000 0x400>; + }; + + scp-shmem@1 { + compatible = "arm,scmi-shmem"; + reg = <0x1400 0x400>; + phandle = <0x03>; + }; + }; + + gdma@32b34000 { + compatible = "phytium,gdma"; + dma-channels = <0x10>; + max-outstanding = <0x10>; + reg = <0x00 0x32b34000 0x00 0x1000>; + interrupts = <0x00 0xea 0x04>; + #dma-cells = <0x01>; + }; + + spinlock@32b36000 { + compatible = "phytium,hwspinlock"; + reg = <0x00 0x32b36000 0x00 0x1000>; + #hwlock-cells = <0x01>; + nr-locks = <0x20>; + status = "disabled"; + }; + + pcie@40000000 { + compatible = "pci-host-ecam-generic"; + device_type = "pci"; + #address-cells = <0x03>; + #size-cells = <0x02>; + #interrupt-cells = <0x01>; + reg = <0x00 0x40000000 0x00 0x10000000>; + msi-parent = <0x0f>; + bus-range = <0x00 0xff>; + interrupt-map-mask = <0x00 0x00 0x00 0x07>; + interrupt-map = <0x00 0x00 0x00 0x01 0x01 0x00 0x00 0x00 0x04 0x04 0x00 0x00 0x00 0x02 0x01 0x00 0x00 0x00 0x05 0x04 0x00 0x00 0x00 0x03 0x01 0x00 0x00 0x00 0x06 0x04 0x00 0x00 0x00 0x04 0x01 0x00 0x00 0x00 0x07 0x04>; + ranges = <0x1000000 0x00 0x00 0x00 0x50000000 0x00 0xf00000 0x2000000 0x00 0x58000000 0x00 0x58000000 0x00 0x28000000 0x3000000 0x10 0x00 0x10 0x00 0x10 0x00>; + iommu-map = <0x00 0x10 0x00 0x10000>; + status = "okay"; + }; + + edac@32b28000 { + compatible = "phytium,pe220x-edac"; + reg = <0x00 0x32b28000 0x00 0x1000 0x00 0x31400000 0x00 0x1000 0x00 0x31401000 0x00 0x1000>; + interrupts = <0x00 0x00 0x04 0x00 0x01 0x04>; + status = "disabled"; + }; + + hda@28006000 { + compatible = "phytium,hda"; + reg = <0x00 0x28006000 0x00 0x1000>; + interrupts = <0x00 0x4e 0x04>; + status = "disabled"; + }; + + i2s@28009000 { + compatible = "phytium,i2s"; + reg = <0x00 0x28009000 0x00 0x1000 0x00 0x28005000 0x00 0x1000>; + interrupts = <0x00 0x4d 0x04>; + clocks = <0x0e>; + clock-names = "i2s_clk"; + status = "okay"; + #sound-dai-cells = <0x00>; + dai-name = "phytium-i2s-lsd"; + phandle = <0x16>; + }; + + can@2800a000 { + compatible = "phytium,canfd"; + reg = <0x00 0x2800a000 0x00 0x1000>; + interrupts = <0x00 0x51 0x04>; + clocks = <0x11>; + clock-names = "can_clk"; + tx-fifo-depth = <0x40>; + rx-fifo-depth = <0x40>; + status = "okay"; + }; + + can@2800b000 { + compatible = "phytium,canfd"; + reg = <0x00 0x2800b000 0x00 0x1000>; + interrupts = <0x00 0x52 0x04>; + clocks = <0x11>; + clock-names = "can_clk"; + tx-fifo-depth = <0x40>; + rx-fifo-depth = <0x40>; + status = "okay"; + }; + + keypad@2807a000 { + compatible = "phytium,keypad"; + reg = <0x00 0x2807a000 0x00 0x1000>; + interrupts = <0x00 0xbd 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + usb3@31a08000 { + compatible = "phytium,pe220x-xhci"; + reg = <0x00 0x31a08000 0x00 0x18000>; + interrupts = <0x00 0x10 0x04>; + status = "okay"; + }; + + usb3@31a28000 { + compatible = "phytium,pe220x-xhci"; + reg = <0x00 0x31a28000 0x00 0x18000>; + interrupts = <0x00 0x11 0x04>; + status = "okay"; + }; + + sata@31a40000 { + compatible = "generic-ahci"; + reg = <0x00 0x31a40000 0x00 0x1000>; + interrupts = <0x00 0x2a 0x04>; + status = "disabled"; + }; + + sata@32014000 { + compatible = "generic-ahci"; + reg = <0x00 0x32014000 0x00 0x1000>; + interrupts = <0x00 0x2b 0x04>; + status = "disabled"; + }; + + ethernet@3200c000 { + compatible = "cdns,phytium-gem-1.0"; + reg = <0x00 0x3200c000 0x00 0x2000>; + interrupts = <0x00 0x37 0x04 0x00 0x38 0x04 0x00 0x39 0x04 0x00 0x3a 0x04 0x00 0x1c 0x04 0x00 0x1d 0x04 0x00 0x1e 0x04 0x00 0x1f 0x04>; + clock-names = "pclk\0hclk\0tx_clk\0tsu_clk"; + clocks = <0x12 0x13 0x13 0x12>; + magic-packet; + support-tsn; + status = "okay"; + phy-mode = "sgmii"; + use-mii; + }; + + ethernet@3200e000 { + compatible = "cdns,phytium-gem-1.0"; + reg = <0x00 0x3200e000 0x00 0x2000>; + interrupts = <0x00 0x3b 0x04 0x00 0x3c 0x04 0x00 0x3d 0x04 0x00 0x3e 0x04>; + clock-names = "pclk\0hclk\0tx_clk\0tsu_clk"; + clocks = <0x12 0x13 0x13 0x12>; + magic-packet; + status = "okay"; + phy-mode = "sgmii"; + use-mii; + }; + + ethernet@32010000 { + compatible = "cdns,phytium-gem-1.0"; + reg = <0x00 0x32010000 0x00 0x2000>; + interrupts = <0x00 0x40 0x04 0x00 0x41 0x04 0x00 0x42 0x04 0x00 0x43 0x04>; + clock-names = "pclk\0hclk\0tx_clk\0tsu_clk"; + clocks = <0x12 0x13 0x13 0x12>; + magic-packet; + status = "disabled"; + }; + + ethernet@32012000 { + compatible = "cdns,phytium-gem-1.0"; + reg = <0x00 0x32012000 0x00 0x2000>; + interrupts = <0x00 0x44 0x04 0x00 0x45 0x04 0x00 0x46 0x04 0x00 0x47 0x04>; + clock-names = "pclk\0hclk\0tx_clk\0tsu_clk"; + clocks = <0x12 0x13 0x13 0x12>; + magic-packet; + status = "disabled"; + }; + + vpu@32b00000 { + compatible = "phytium,vpu"; + reg = <0x00 0x32b00000 0x00 0x20000>; + interrupts = <0x00 0x0c 0x04>; + status = "okay"; + }; + + i2c@28026000 { + compatible = "phytium,i2c"; + reg = <0x00 0x28026000 0x00 0x1000>; + interrupts = <0x00 0x65 0x04>; + clocks = <0x0d>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "okay"; + }; + + i2c@28030000 { + compatible = "phytium,i2c"; + reg = <0x00 0x28030000 0x00 0x1000>; + interrupts = <0x00 0x6a 0x04>; + clocks = <0x0d>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "okay"; + + es8336@10 { + #sound-dai-cells = <0x00>; + compatible = "everest,es8336"; + reg = <0x10>; + phandle = <0x17>; + }; + }; + + uart@28014000 { + compatible = "arm,pl011\0arm,primecell"; + reg = <0x00 0x28014000 0x00 0x1000>; + interrupts = <0x00 0x5c 0x04>; + clocks = <0x0d 0x0d>; + clock-names = "uartclk\0apb_pclk"; + status = "okay"; + }; + + i2c@28016000 { + compatible = "phytium,i2c"; + reg = <0x00 0x28016000 0x00 0x1000>; + interrupts = <0x00 0x5d 0x04>; + clocks = <0x0d>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "okay"; + }; + + i2c@28024000 { + compatible = "phytium,i2c"; + reg = <0x00 0x28024000 0x00 0x1000>; + interrupts = <0x00 0x64 0x04>; + clocks = <0x0d>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "okay"; + }; + + uart@2802A000 { + compatible = "arm,pl011\0arm,primecell"; + reg = <0x00 0x2802a000 0x00 0x1000>; + interrupts = <0x00 0x67 0x04>; + clocks = <0x0d 0x0d>; + clock-names = "uartclk\0apb_pclk"; + status = "okay"; + }; + + uart@28032000 { + compatible = "arm,pl011\0arm,primecell"; + reg = <0x00 0x28032000 0x00 0x1000>; + interrupts = <0x00 0x6b 0x04>; + clocks = <0x0d 0x0d>; + clock-names = "uartclk\0apb_pclk"; + status = "okay"; + }; + }; + + chosen { + bootargs = "console=ttyAMA1,115200 earlycon=pl011,0x2800d000 root=/dev/mmcblk0p1 rootfstype=ext4 rootwait rw cma=256m ;"; + stdout-path = "serial1:115200n8"; + }; + + memory@00 { + device_type = "memory"; + reg = <0x20 0x40000000 0x00 0x40000000>; + }; + + leds { + compatible = "gpio-leds"; + + sysled { + label = "sysled"; + gpios = <0x14 0x05 0x00>; + linux,default-trigger = "none"; + }; + }; + + sound { + compatible = "simple-audio-card"; + simple-audio-card,format = "i2s"; + simple-audio-card,name = "phytium,pe220x-i2s-audio"; + simple-audio-card,pin-switches = "mic-in"; + simple-audio-card,widgets = "Microphone\0mic-in\0Headphone\0Headphones"; + simple-audio-card,routing = "MIC2\0mic-in"; + simple-audio-card,hp-det-gpio = <0x15 0x0b 0x01>; + + simple-audio-card,cpu { + sound-dai = <0x16>; + }; + + simple-audio-card,codec { + sound-dai = <0x17>; + }; + }; +}; diff --git a/configs/vms_bkp/linux-aarch64-e2000_smp2.toml b/configs/vms_bkp/linux-aarch64-e2000_smp2.toml new file mode 100644 index 00000000..bf409a0b --- /dev/null +++ b/configs/vms_bkp/linux-aarch64-e2000_smp2.toml @@ -0,0 +1,115 @@ +# Vm base info configs +# +[base] +# Guest vm id. +id = 1 +# Guest vm name. +name = "linux" +# Virtualization type. +vm_type = 1 +# The number of virtual CPUs. +cpu_num = 2 +# The physical CPU ids. +phys_cpu_ids = [0x200, 0x00] +# Guest vm physical cpu sets. +phys_cpu_sets = [1, 4] + +# +# Vm kernel configs +# +[kernel] +# The entry point of the kernel image. +entry_point = 0x20_4008_0000 +# The location of image: "memory" | "fs". +# Load from file system. +image_location = "memory" +# The load address of the kernel image. +kernel_load_addr = 0x20_4008_0000 +## The file path of the kernel image. +kernel_path = "/path/to/Image" +## The file path of the device tree blob (DTB). +dtb_load_addr = 0x20_4000_0000 +dtb_path = "/path/to/axvisor/configs/vms/linux-aarch64-e2000_smp2.dtb" +# Memory regions with format (`base_paddr`, `size`, `flags`, `map_type`). +# For `map_type`, 0 means `MAP_ALLOC`, 1 means `MAP_IDENTICAL`. +memory_regions = [ + [0x20_4000_0000, 0x4000_0000, 0x7, 1], # System RAM MAP_IDENTICAL + # [0xa000_0000, 0x2000_0000, 0x7, 1], # System RAM 1G MAP_IDENTICAL +] + +# +# Device specifications +# +[devices] +# Emu_devices. +# Name Base-Ipa Ipa_len Alloc-Irq Emu-Type EmuConfig. +interrupt_mode = "passthrough" +emu_devices = [] + +# Pass-through devices. +# Name Base-Ipa Base-Pa Length Alloc-Irq. +passthrough_devices = [ + [ + "QSPI", + 0x0000_0000, + 0x0000_0000, + 0x1000_0000, + 0x1, + ], + [ + "LocalBus", + 0x1000_0000, + 0x1000_0000, + 0x1000_0000, + 0x1, + ], + [ + "low speed peripherals", + 0x2800_0000, + 0x2800_0000, + 0x0800_0000, + 0x1, + ], + [ + "other peripherals", + 0x3000_0000, + 0x3000_0000, + 0x0800_0000, + 0x1, + ], + [ + "IACC", + 0x3800_0000, + 0x3800_0000, + 0x0800_0000, + 0x1, + ], + [ + "PCIE", + 0x4000_0000, + 0x4000_0000, + 0x4000_0000, + 0x1, + ], + [ + "QSPI high address", + 0x01_0000_0000, + 0x01_0000_0000, + 0x8000_0000, + 0x1, + ], + [ + "LocalBus high address", + 0x01_8000_0000, + 0x01_8000_0000, + 0x8000_0000, + 0x1, + ], + [ + "PCIe MEM64", + 0x10_0000_0000, + 0x10_0000_0000, + 0x01_0000_0000, + 0x1, + ], +] diff --git a/configs/vms_bkp/linux-aarch64-rk3568_smp1.dts b/configs/vms_bkp/linux-aarch64-rk3568_smp1.dts new file mode 100644 index 00000000..bdc54614 --- /dev/null +++ b/configs/vms_bkp/linux-aarch64-rk3568_smp1.dts @@ -0,0 +1,6108 @@ +/dts-v1/; + +/memreserve/ 0x0000000008300000 0x000000000001c000; +/memreserve/ 0x000000000a200000 0x00000000008cf15d; +/ { + serial-number = "425ca8fc29ade692"; + compatible = "rockchip,rk3568-firefly-roc-pc-se\0rockchip,rk3568"; + interrupt-parent = <0x01>; + #address-cells = <0x02>; + #size-cells = <0x02>; + model = "Firefly RK3568-ROC-PC-SE HDMI (Linux)"; + + memory { + reg = <0x00 0x80000000 0x00 0x60000000>; + device_type = "memory"; + }; + + ddr3-params { + version = <0x100>; + expanded_version = <0x00>; + reserved = <0x00>; + freq_0 = <0x420>; + freq_1 = <0x144>; + freq_2 = <0x210>; + freq_3 = <0x30c>; + freq_4 = <0x00>; + freq_5 = <0x00>; + pd_idle = <0x0d>; + sr_idle = <0x5d>; + sr_mc_gate_idle = <0x00>; + srpd_lite_idle = <0x00>; + standby_idle = <0x00>; + pd_dis_freq = <0x42a>; + sr_dis_freq = <0x320>; + dram_dll_dis_freq = <0x12c>; + phy_dll_dis_freq = <0x00>; + phy_dq_drv_odten = <0x21>; + phy_ca_drv_odten = <0x21>; + phy_clk_drv_odten = <0x21>; + dram_dq_drv_odten = <0x22>; + phy_dq_drv_odtoff = <0x21>; + phy_ca_drv_odtoff = <0x21>; + phy_clk_drv_odtoff = <0x21>; + dram_dq_drv_odtoff = <0x22>; + dram_odt = <0x78>; + phy_odt = <0xa7>; + phy_odt_puup_en = <0x01>; + phy_odt_pudn_en = <0x01>; + dram_dq_odt_en_freq = <0x14d>; + phy_odt_en_freq = <0x14d>; + phy_dq_sr_odten = <0x0f>; + phy_ca_sr_odten = <0x03>; + phy_clk_sr_odten = <0x00>; + phy_dq_sr_odtoff = <0x0f>; + phy_ca_sr_odtoff = <0x03>; + phy_clk_sr_odtoff = <0x00>; + ssmod_downspread = <0x00>; + ssmod_div = <0x00>; + ssmod_spread = <0x00>; + mode_2t = <0x00>; + speed_bin = <0x15>; + dram_ext_temp = <0x00>; + byte_map = <0xe4>; + dq_map_cs0_dq_l = <0x00>; + dq_map_cs0_dq_h = <0x00>; + dq_map_cs1_dq_l = <0x00>; + dq_map_cs1_dq_h = <0x00>; + phandle = <0xb7>; + }; + + ddr4-params { + version = <0x100>; + expanded_version = <0x00>; + reserved = <0x00>; + freq_0 = <0x420>; + freq_1 = <0x144>; + freq_2 = <0x210>; + freq_3 = <0x30c>; + freq_4 = <0x00>; + freq_5 = <0x00>; + pd_idle = <0x0d>; + sr_idle = <0x5d>; + sr_mc_gate_idle = <0x00>; + srpd_lite_idle = <0x00>; + standby_idle = <0x00>; + pd_dis_freq = <0x42a>; + sr_dis_freq = <0x320>; + dram_dll_dis_freq = <0x271>; + phy_dll_dis_freq = <0x00>; + phy_dq_drv_odten = <0x25>; + phy_ca_drv_odten = <0x25>; + phy_clk_drv_odten = <0x25>; + dram_dq_drv_odten = <0x22>; + phy_dq_drv_odtoff = <0x25>; + phy_ca_drv_odtoff = <0x25>; + phy_clk_drv_odtoff = <0x25>; + dram_dq_drv_odtoff = <0x22>; + dram_odt = <0x78>; + phy_odt = <0x8b>; + phy_odt_puup_en = <0x01>; + phy_odt_pudn_en = <0x01>; + dram_dq_odt_en_freq = <0x1f4>; + phy_odt_en_freq = <0x1f4>; + phy_dq_sr_odten = <0x0e>; + phy_ca_sr_odten = <0x01>; + phy_clk_sr_odten = <0x01>; + phy_dq_sr_odtoff = <0x0e>; + phy_ca_sr_odtoff = <0x01>; + phy_clk_sr_odtoff = <0x01>; + ssmod_downspread = <0x00>; + ssmod_div = <0x00>; + ssmod_spread = <0x00>; + mode_2t = <0x00>; + speed_bin = <0x0c>; + dram_ext_temp = <0x00>; + byte_map = <0xe4>; + dq_map_cs0_dq_l = <0x22777788>; + dq_map_cs0_dq_h = <0xd7888877>; + dq_map_cs1_dq_l = <0x22777788>; + dq_map_cs1_dq_h = <0xd7888877>; + phandle = <0xb8>; + }; + + lpddr3-params { + version = <0x100>; + expanded_version = <0x00>; + reserved = <0x00>; + freq_0 = <0x420>; + freq_1 = <0x144>; + freq_2 = <0x210>; + freq_3 = <0x30c>; + freq_4 = <0x00>; + freq_5 = <0x00>; + pd_idle = <0x0d>; + sr_idle = <0x5d>; + sr_mc_gate_idle = <0x00>; + srpd_lite_idle = <0x00>; + standby_idle = <0x00>; + pd_dis_freq = <0x42a>; + sr_dis_freq = <0x320>; + dram_dll_dis_freq = <0x00>; + phy_dll_dis_freq = <0x00>; + phy_dq_drv_odten = <0x25>; + phy_ca_drv_odten = <0x25>; + phy_clk_drv_odten = <0x27>; + dram_dq_drv_odten = <0x22>; + phy_dq_drv_odtoff = <0x25>; + phy_ca_drv_odtoff = <0x25>; + phy_clk_drv_odtoff = <0x27>; + dram_dq_drv_odtoff = <0x22>; + dram_odt = <0x78>; + phy_odt = <0x94>; + phy_odt_puup_en = <0x01>; + phy_odt_pudn_en = <0x01>; + dram_dq_odt_en_freq = <0x14d>; + phy_odt_en_freq = <0x14d>; + phy_dq_sr_odten = <0x0f>; + phy_ca_sr_odten = <0x01>; + phy_clk_sr_odten = <0x0f>; + phy_dq_sr_odtoff = <0x0f>; + phy_ca_sr_odtoff = <0x01>; + phy_clk_sr_odtoff = <0x0f>; + ssmod_downspread = <0x00>; + ssmod_div = <0x00>; + ssmod_spread = <0x00>; + mode_2t = <0x00>; + speed_bin = <0x00>; + dram_ext_temp = <0x00>; + byte_map = <0x8d>; + dq_map_cs0_dq_l = <0x00>; + dq_map_cs0_dq_h = <0x00>; + dq_map_cs1_dq_l = <0x00>; + dq_map_cs1_dq_h = <0x00>; + phandle = <0xb9>; + }; + + lpddr4-params { + version = <0x100>; + expanded_version = <0x00>; + reserved = <0x00>; + freq_0 = <0x618>; + freq_1 = <0x144>; + freq_2 = <0x210>; + freq_3 = <0x30c>; + freq_4 = <0x00>; + freq_5 = <0x00>; + pd_idle = <0x0d>; + sr_idle = <0x5d>; + sr_mc_gate_idle = <0x00>; + srpd_lite_idle = <0x00>; + standby_idle = <0x00>; + pd_dis_freq = <0x42a>; + sr_dis_freq = <0x320>; + dram_dll_dis_freq = <0x00>; + phy_dll_dis_freq = <0x00>; + phy_dq_drv_odten = <0x1e>; + phy_ca_drv_odten = <0x26>; + phy_clk_drv_odten = <0x26>; + dram_dq_drv_odten = <0x28>; + phy_dq_drv_odtoff = <0x1e>; + phy_ca_drv_odtoff = <0x26>; + phy_clk_drv_odtoff = <0x26>; + dram_dq_drv_odtoff = <0x28>; + dram_odt = <0x50>; + phy_odt = <0x3c>; + phy_odt_puup_en = <0x00>; + phy_odt_pudn_en = <0x00>; + dram_dq_odt_en_freq = <0x320>; + phy_odt_en_freq = <0x320>; + phy_dq_sr_odten = <0x00>; + phy_ca_sr_odten = <0x0f>; + phy_clk_sr_odten = <0x0f>; + phy_dq_sr_odtoff = <0x00>; + phy_ca_sr_odtoff = <0x0f>; + phy_clk_sr_odtoff = <0x0f>; + ssmod_downspread = <0x00>; + ssmod_div = <0x00>; + ssmod_spread = <0x00>; + mode_2t = <0x00>; + speed_bin = <0x00>; + dram_ext_temp = <0x00>; + byte_map = <0xe4>; + dq_map_cs0_dq_l = <0x00>; + dq_map_cs0_dq_h = <0x00>; + dq_map_cs1_dq_l = <0x00>; + dq_map_cs1_dq_h = <0x00>; + lp4_ca_odt = <0x78>; + lp4_drv_pu_cal_odten = <0x01>; + lp4_drv_pu_cal_odtoff = <0x01>; + phy_lp4_drv_pulldown_en_odten = <0x00>; + phy_lp4_drv_pulldown_en_odtoff = <0x00>; + lp4_ca_odt_en_freq = <0x320>; + phy_lp4_cs_drv_odten = <0x00>; + phy_lp4_cs_drv_odtoff = <0x00>; + lp4_odte_ck_en = <0x01>; + lp4_odte_cs_en = <0x01>; + lp4_odtd_ca_en = <0x00>; + phy_lp4_dq_vref_odten = <0xa6>; + lp4_dq_vref_odten = <0x12c>; + lp4_ca_vref_odten = <0x17c>; + phy_lp4_dq_vref_odtoff = <0x1a4>; + lp4_dq_vref_odtoff = <0x1a4>; + lp4_ca_vref_odtoff = <0x1a4>; + phandle = <0xba>; + }; + + lpddr4x-params { + version = <0x100>; + expanded_version = <0x00>; + reserved = <0x00>; + freq_0 = <0x618>; + freq_1 = <0x144>; + freq_2 = <0x210>; + freq_3 = <0x30c>; + freq_4 = <0x00>; + freq_5 = <0x00>; + pd_idle = <0x0d>; + sr_idle = <0x5d>; + sr_mc_gate_idle = <0x00>; + srpd_lite_idle = <0x00>; + standby_idle = <0x00>; + pd_dis_freq = <0x42a>; + sr_dis_freq = <0x320>; + dram_dll_dis_freq = <0x00>; + phy_dll_dis_freq = <0x00>; + phy_dq_drv_odten = <0x1d>; + phy_ca_drv_odten = <0x24>; + phy_clk_drv_odten = <0x24>; + dram_dq_drv_odten = <0x28>; + phy_dq_drv_odtoff = <0x1d>; + phy_ca_drv_odtoff = <0x24>; + phy_clk_drv_odtoff = <0x24>; + dram_dq_drv_odtoff = <0x28>; + dram_odt = <0x50>; + phy_odt = <0x3c>; + phy_odt_puup_en = <0x00>; + phy_odt_pudn_en = <0x00>; + dram_dq_odt_en_freq = <0x320>; + phy_odt_en_freq = <0x320>; + phy_dq_sr_odten = <0x00>; + phy_ca_sr_odten = <0x00>; + phy_clk_sr_odten = <0x00>; + phy_dq_sr_odtoff = <0x00>; + phy_ca_sr_odtoff = <0x00>; + phy_clk_sr_odtoff = <0x00>; + ssmod_downspread = <0x00>; + ssmod_div = <0x00>; + ssmod_spread = <0x00>; + mode_2t = <0x00>; + speed_bin = <0x00>; + dram_ext_temp = <0x00>; + byte_map = <0xe4>; + dq_map_cs0_dq_l = <0x00>; + dq_map_cs0_dq_h = <0x00>; + dq_map_cs1_dq_l = <0x00>; + dq_map_cs1_dq_h = <0x00>; + lp4_ca_odt = <0x78>; + lp4_drv_pu_cal_odten = <0x00>; + lp4_drv_pu_cal_odtoff = <0x00>; + phy_lp4_drv_pulldown_en_odten = <0x00>; + phy_lp4_drv_pulldown_en_odtoff = <0x00>; + lp4_ca_odt_en_freq = <0x320>; + phy_lp4_cs_drv_odten = <0x00>; + phy_lp4_cs_drv_odtoff = <0x00>; + lp4_odte_ck_en = <0x00>; + lp4_odte_cs_en = <0x00>; + lp4_odtd_ca_en = <0x00>; + phy_lp4_dq_vref_odten = <0xa6>; + lp4_dq_vref_odten = <0xe4>; + lp4_ca_vref_odten = <0x157>; + phy_lp4_dq_vref_odtoff = <0x1a4>; + lp4_dq_vref_odtoff = <0x1a4>; + lp4_ca_vref_odtoff = <0x157>; + phandle = <0xbb>; + }; + + aliases { + csi2dphy0 = "/csi2-dphy0"; + csi2dphy1 = "/csi2-dphy1"; + csi2dphy2 = "/csi2-dphy2"; + dsi0 = "/dsi@fe060000"; + dsi1 = "/dsi@fe070000"; + ethernet0 = "/ethernet@fe2a0000"; + ethernet1 = "/ethernet@fe010000"; + gpio0 = "/pinctrl/gpio0@fdd60000"; + gpio1 = "/pinctrl/gpio1@fe740000"; + gpio2 = "/pinctrl/gpio2@fe750000"; + gpio3 = "/pinctrl/gpio3@fe760000"; + gpio4 = "/pinctrl/gpio4@fe770000"; + i2c0 = "/i2c@fdd40000"; + i2c1 = "/i2c@fe5a0000"; + i2c2 = "/i2c@fe5b0000"; + i2c3 = "/i2c@fe5c0000"; + i2c4 = "/i2c@fe5d0000"; + i2c5 = "/i2c@fe5e0000"; + mmc0 = "/sdhci@fe310000"; + mmc1 = "/dwmmc@fe2b0000"; + mmc2 = "/dwmmc@fe2c0000"; + mmc3 = "/dwmmc@fe000000"; + serial0 = "/serial@fdd50000"; + serial1 = "/serial@fe650000"; + serial2 = "/serial@fe660000"; + serial3 = "/serial@fe670000"; + serial4 = "/serial@fe680000"; + serial5 = "/serial@fe690000"; + serial6 = "/serial@fe6a0000"; + serial7 = "/serial@fe6b0000"; + serial8 = "/serial@fe6c0000"; + serial9 = "/serial@fe6d0000"; + spi0 = "/spi@fe610000"; + spi1 = "/spi@fe620000"; + spi2 = "/spi@fe630000"; + spi3 = "/spi@fe640000"; + lvds0 = "/syscon@fdc60000/lvds"; + lvds1 = "/syscon@fdc60000/lvds1"; + }; + + cpus { + #address-cells = <0x02>; + #size-cells = <0x00>; + + cpu@0 { + device_type = "cpu"; + compatible = "arm,cortex-a55"; + reg = <0x00 0x00>; + enable-method = "psci"; + clocks = <0x02 0x00>; + operating-points-v2 = <0x03>; + cpu-idle-states = <0x04>; + #cooling-cells = <0x02>; + dynamic-power-coefficient = <0xbb>; + cpu-supply = <0x05>; + phandle = <0x0c>; + }; + + // cpu@100 { + // device_type = "cpu"; + // compatible = "arm,cortex-a55"; + // reg = <0x00 0x100>; + // enable-method = "psci"; + // clocks = <0x02 0x00>; + // operating-points-v2 = <0x03>; + // cpu-idle-states = <0x04>; + // phandle = <0x0d>; + // }; + + // cpu@200 { + // device_type = "cpu"; + // compatible = "arm,cortex-a55"; + // reg = <0x00 0x200>; + // enable-method = "psci"; + // clocks = <0x02 0x00>; + // operating-points-v2 = <0x03>; + // cpu-idle-states = <0x04>; + // phandle = <0x0e>; + // }; + + // cpu@300 { + // device_type = "cpu"; + // compatible = "arm,cortex-a55"; + // reg = <0x00 0x300>; + // enable-method = "psci"; + // clocks = <0x02 0x00>; + // operating-points-v2 = <0x03>; + // cpu-idle-states = <0x04>; + // phandle = <0x0f>; + // }; + + idle-states { + entry-method = "psci"; + + cpu-sleep { + compatible = "arm,idle-state"; + local-timer-stop; + arm,psci-suspend-param = <0x10000>; + entry-latency-us = <0x64>; + exit-latency-us = <0x78>; + min-residency-us = <0x3e8>; + phandle = <0x04>; + }; + }; + }; + + cpu0-opp-table { + compatible = "operating-points-v2"; + opp-shared; + mbist-vmin = <0xc96a8 0xdbba0 0xe7ef0>; + nvmem-cells = <0x06 0x07 0x08 0x09 0x0a 0x0b>; + nvmem-cell-names = "leakage\0pvtm\0mbist-vmin\0opp-info\0specification_serial_number\0remark_spec_serial_number"; + rockchip,supported-hw; + rockchip,max-volt = <0x118c30>; + rockchip,pvtm-voltage-sel = <0x00 0x14820 0x00 0x14821 0x153d8 0x01 0x153d9 0x16378 0x02 0x16379 0x186a0 0x03>; + rockchip,pvtm-freq = <0x639c0>; + rockchip,pvtm-volt = <0xdbba0>; + rockchip,pvtm-ch = <0x00 0x05>; + rockchip,pvtm-sample-time = <0x3e8>; + rockchip,pvtm-number = <0x0a>; + rockchip,pvtm-error = <0x3e8>; + rockchip,pvtm-ref-temp = <0x28>; + rockchip,pvtm-temp-prop = <0x1a 0x1a>; + rockchip,thermal-zone = "soc-thermal"; + rockchip,temp-hysteresis = <0x1388>; + rockchip,low-temp = <0x00>; + rockchip,low-temp-adjust-volt = <0x00 0x7c8 0x124f8>; + phandle = <0x03>; + + opp-408000000 { + opp-supported-hw = <0xfb 0xffff>; + opp-hz = <0x00 0x18519600>; + opp-microvolt = <0xcf850 0xcf850 0x118c30>; + clock-latency-ns = <0x9c40>; + }; + + opp-600000000 { + opp-supported-hw = <0xfb 0xffff>; + opp-hz = <0x00 0x23c34600>; + opp-microvolt = <0xcf850 0xcf850 0x118c30>; + clock-latency-ns = <0x9c40>; + }; + + opp-816000000 { + opp-supported-hw = <0xfb 0xffff>; + opp-hz = <0x00 0x30a32c00>; + opp-microvolt = <0xcf850 0xcf850 0x118c30>; + clock-latency-ns = <0x9c40>; + opp-suspend; + }; + + opp-1104000000 { + opp-supported-hw = <0xfb 0xffff>; + opp-hz = <0x00 0x41cdb400>; + opp-microvolt = <0xdbba0 0xdbba0 0x118c30>; + opp-microvolt-L0 = <0xdbba0 0xdbba0 0x118c30>; + opp-microvolt-L1 = <0xcf850 0xcf850 0x118c30>; + opp-microvolt-L2 = <0xcf850 0xcf850 0x118c30>; + opp-microvolt-L3 = <0xcf850 0xcf850 0x118c30>; + clock-latency-ns = <0x9c40>; + }; + + opp-1416000000 { + opp-supported-hw = <0xfb 0xffff>; + opp-hz = <0x00 0x54667200>; + opp-microvolt = <0xfa3e8 0xfa3e8 0x118c30>; + opp-microvolt-L0 = <0xfa3e8 0xfa3e8 0x118c30>; + opp-microvolt-L1 = <0xee098 0xee098 0x118c30>; + opp-microvolt-L2 = <0xe7ef0 0xe7ef0 0x118c30>; + opp-microvolt-L3 = <0xe1d48 0xe1d48 0x118c30>; + clock-latency-ns = <0x9c40>; + }; + + opp-1608000000 { + opp-supported-hw = <0xf9 0xffff>; + opp-hz = <0x00 0x5fd82200>; + opp-microvolt = <0x10c8e0 0x10c8e0 0x118c30>; + opp-microvolt-L0 = <0x10c8e0 0x10c8e0 0x118c30>; + opp-microvolt-L1 = <0x100590 0x100590 0x118c30>; + opp-microvolt-L2 = <0xfa3e8 0xfa3e8 0x118c30>; + opp-microvolt-L3 = <0xf4240 0xf4240 0x118c30>; + clock-latency-ns = <0x9c40>; + }; + + opp-1800000000 { + opp-supported-hw = <0xf9 0xffff>; + opp-hz = <0x00 0x6b49d200>; + opp-microvolt = <0x118c30 0x118c30 0x118c30>; + opp-microvolt-L0 = <0x118c30 0x118c30 0x118c30>; + opp-microvolt-L1 = <0x10c8e0 0x10c8e0 0x118c30>; + opp-microvolt-L2 = <0x106738 0x106738 0x118c30>; + opp-microvolt-L3 = <0x100590 0x100590 0x118c30>; + clock-latency-ns = <0x9c40>; + }; + + opp-1992000000 { + opp-supported-hw = <0xf9 0xffff>; + opp-hz = <0x00 0x76bb8200>; + opp-microvolt = <0x118c30 0x118c30 0x118c30>; + opp-microvolt-L0 = <0x118c30 0x118c30 0x118c30>; + opp-microvolt-L1 = <0x118c30 0x118c30 0x118c30>; + opp-microvolt-L2 = <0x112a88 0x112a88 0x118c30>; + opp-microvolt-L3 = <0x10c8e0 0x10c8e0 0x118c30>; + clock-latency-ns = <0x9c40>; + }; + + opp-j-1008000000 { + opp-supported-hw = <0x04 0xffff>; + opp-hz = <0x00 0x3c14dc00>; + opp-microvolt = <0xcf850 0xcf850 0x118c30>; + clock-latency-ns = <0x9c40>; + }; + + opp-j-1416000000 { + opp-supported-hw = <0x04 0xffff>; + opp-hz = <0x00 0x54667200>; + opp-microvolt = <0xdbba0 0xdbba0 0x118c30>; + clock-latency-ns = <0x9c40>; + }; + + opp-m-1608000000 { + opp-supported-hw = <0x02 0xffff>; + opp-hz = <0x00 0x5fd82200>; + opp-microvolt = <0xf4240 0xf4240 0x118c30>; + clock-latency-ns = <0x9c40>; + }; + }; + + arm-pmu { + compatible = "arm,cortex-a55-pmu\0arm,armv8-pmuv3"; + interrupts = <0x00 0xe4 0x04 0x00 0xe5 0x04 0x00 0xe6 0x04 0x00 0xe7 0x04>; + interrupt-affinity = <0x0c 0x0d 0x0e 0x0f>; + }; + + cpuinfo { + compatible = "rockchip,cpuinfo"; + nvmem-cells = <0x10 0x11 0x12>; + nvmem-cell-names = "id\0cpu-version\0cpu-code"; + }; + + display-subsystem { + compatible = "rockchip,display-subsystem"; + memory-region = <0x13 0x14>; + memory-region-names = "drm-logo\0drm-cubic-lut"; + ports = <0x15>; + devfreq = <0x16>; + + route { + + route-dsi0 { + status = "disabled"; + logo,uboot = "logo.bmp"; + logo,kernel = "logo_kernel.bmp"; + logo,mode = "center"; + charge_logo,mode = "center"; + connect = <0x17>; + }; + + route-dsi1 { + status = "disabled"; + logo,uboot = "logo.bmp"; + logo,kernel = "logo_kernel.bmp"; + logo,mode = "center"; + charge_logo,mode = "center"; + connect = <0x18>; + }; + + route-edp { + status = "disabled"; + logo,uboot = "logo.bmp"; + logo,kernel = "logo_kernel.bmp"; + logo,mode = "center"; + charge_logo,mode = "center"; + connect = <0x19>; + }; + + route-hdmi { + status = "okay"; + logo,uboot = "logo.bmp"; + logo,kernel = "logo_kernel.bmp"; + logo,mode = "center"; + charge_logo,mode = "center"; + connect = <0x1a>; + }; + + route-lvds { + status = "disabled"; + logo,uboot = "logo.bmp"; + logo,kernel = "logo_kernel.bmp"; + logo,mode = "center"; + charge_logo,mode = "center"; + connect = <0x1b>; + }; + + route-rgb { + status = "disabled"; + logo,uboot = "logo.bmp"; + logo,kernel = "logo_kernel.bmp"; + logo,mode = "center"; + charge_logo,mode = "center"; + connect = <0x1c>; + }; + }; + }; + + edac { + compatible = "rockchip,rk3568-edac"; + interrupts = <0x00 0xad 0x04 0x00 0xaf 0x04>; + interrupt-names = "ce\0ue"; + status = "disabled"; + }; + + firmware { + + scmi { + compatible = "arm,scmi-smc"; + shmem = <0x1d>; + arm,smc-id = <0x82000010>; + #address-cells = <0x01>; + #size-cells = <0x00>; + + protocol@14 { + reg = <0x14>; + #clock-cells = <0x01>; + rockchip,clk-init = <0x41cdb400>; + phandle = <0x02>; + }; + }; + + sdei { + compatible = "arm,sdei-1.0"; + method = "smc"; + }; + }; + + mipi-csi2 { + compatible = "rockchip,rk3568-mipi-csi2"; + rockchip,hw = <0x1e>; + status = "disabled"; + }; + + mpp-srv { + compatible = "rockchip,mpp-service"; + rockchip,taskqueue-count = <0x06>; + rockchip,resetgroup-count = <0x06>; + status = "okay"; + phandle = <0x7b>; + }; + + psci { + compatible = "arm,psci-1.0"; + method = "smc"; + }; + + reserved-memory { + #address-cells = <0x02>; + #size-cells = <0x02>; + ranges; + + drm-logo@00000000 { + compatible = "rockchip,drm-logo"; + reg = <0x00 0xedf00000 0x00 0x2e0000>; + phandle = <0x13>; + }; + + drm-cubic-lut@00000000 { + compatible = "rockchip,drm-cubic-lut"; + reg = <0x00 0xeff00000 0x00 0x8000>; + phandle = <0x14>; + }; + + ramoops@110000 { + compatible = "ramoops"; + reg = <0x00 0x110000 0x00 0xf0000>; + record-size = <0x20000>; + console-size = <0x80000>; + ftrace-size = <0x00>; + pmsg-size = <0x50000>; + }; + }; + + rockchip-suspend { + compatible = "rockchip,pm-rk3568"; + status = "okay"; + rockchip,sleep-debug-en = <0x01>; + rockchip,sleep-mode-config = <0x5ec>; + rockchip,wakeup-config = <0x10>; + }; + + rockchip-system-monitor { + compatible = "rockchip,system-monitor"; + rockchip,thermal-zone = "soc-thermal"; + }; + + thermal-zones { + + soc-thermal { + polling-delay-passive = <0x14>; + polling-delay = <0x3e8>; + sustainable-power = <0x389>; + thermal-sensors = <0x1f 0x00>; + + trips { + + trip-point-0 { + temperature = <0x124f8>; + hysteresis = <0x7d0>; + type = "passive"; + }; + + trip-point-1 { + temperature = <0x14c08>; + hysteresis = <0x7d0>; + type = "passive"; + phandle = <0x20>; + }; + + soc-crit { + temperature = <0x1c138>; + hysteresis = <0x7d0>; + type = "critical"; + }; + }; + + cooling-maps { + + map0 { + trip = <0x20>; + cooling-device = <0x0c 0xffffffff 0xffffffff>; + contribution = <0x400>; + }; + + map1 { + trip = <0x20>; + cooling-device = <0x21 0xffffffff 0xffffffff>; + contribution = <0x400>; + }; + }; + }; + + gpu-thermal { + polling-delay-passive = <0x14>; + polling-delay = <0x3e8>; + thermal-sensors = <0x1f 0x01>; + }; + }; + + timer { + compatible = "arm,armv8-timer"; + interrupts = <0x01 0x0d 0xf04 0x01 0x0e 0xf04 0x01 0x0b 0xf04 0x01 0x0a 0xf04>; + arm,no-tick-in-suspend; + }; + + external-gmac0-clock { + compatible = "fixed-clock"; + clock-frequency = <0x7735940>; + clock-output-names = "gmac0_clkin"; + #clock-cells = <0x00>; + phandle = <0xc7>; + }; + + external-gmac1-clock { + compatible = "fixed-clock"; + clock-frequency = <0x7735940>; + clock-output-names = "gmac1_clkin"; + #clock-cells = <0x00>; + phandle = <0x92>; + }; + + xpcs-gmac0-clock { + compatible = "fixed-clock"; + clock-frequency = <0x7735940>; + clock-output-names = "clk_gmac0_xpcs_mii"; + #clock-cells = <0x00>; + }; + + xpcs-gmac1-clock { + compatible = "fixed-clock"; + clock-frequency = <0x7735940>; + clock-output-names = "clk_gmac1_xpcs_mii"; + #clock-cells = <0x00>; + }; + + i2s1-mclkin-rx { + compatible = "fixed-clock"; + #clock-cells = <0x00>; + clock-frequency = <0xbb8000>; + clock-output-names = "i2s1_mclkin_rx"; + }; + + i2s1-mclkin-tx { + compatible = "fixed-clock"; + #clock-cells = <0x00>; + clock-frequency = <0xbb8000>; + clock-output-names = "i2s1_mclkin_tx"; + }; + + i2s2-mclkin { + compatible = "fixed-clock"; + #clock-cells = <0x00>; + clock-frequency = <0xbb8000>; + clock-output-names = "i2s2_mclkin"; + }; + + i2s3-mclkin { + compatible = "fixed-clock"; + #clock-cells = <0x00>; + clock-frequency = <0xbb8000>; + clock-output-names = "i2s3_mclkin"; + }; + + mpll { + compatible = "fixed-clock"; + #clock-cells = <0x00>; + clock-frequency = <0x2faf0800>; + clock-output-names = "mpll"; + }; + + xin24m { + compatible = "fixed-clock"; + #clock-cells = <0x00>; + clock-frequency = <0x16e3600>; + clock-output-names = "xin24m"; + }; + + xin32k { + compatible = "fixed-clock"; + clock-frequency = <0x8000>; + clock-output-names = "xin32k"; + #clock-cells = <0x00>; + pinctrl-names = "default"; + pinctrl-0 = <0x22>; + }; + + scmi-shmem@10f000 { + compatible = "arm,scmi-shmem"; + reg = <0x00 0x10f000 0x00 0x100>; + phandle = <0x1d>; + }; + + sata@fc000000 { + compatible = "snps,dwc-ahci"; + reg = <0x00 0xfc000000 0x00 0x1000>; + clocks = <0x23 0x96 0x23 0x97 0x23 0x98>; + clock-names = "sata\0pmalive\0rxoob"; + interrupts = <0x00 0x5e 0x04>; + interrupt-names = "hostc"; + phys = <0x24 0x01>; + phy-names = "sata-phy"; + ports-implemented = <0x01>; + power-domains = <0x25 0x0f>; + status = "disabled"; + }; + + sata@fc400000 { + compatible = "snps,dwc-ahci"; + reg = <0x00 0xfc400000 0x00 0x1000>; + clocks = <0x23 0x9b 0x23 0x9c 0x23 0x9d>; + clock-names = "sata\0pmalive\0rxoob"; + interrupts = <0x00 0x5f 0x04>; + interrupt-names = "hostc"; + phys = <0x26 0x01>; + phy-names = "sata-phy"; + ports-implemented = <0x01>; + power-domains = <0x25 0x0f>; + status = "disabled"; + }; + + sata@fc800000 { + compatible = "snps,dwc-ahci"; + reg = <0x00 0xfc800000 0x00 0x1000>; + clocks = <0x23 0xa0 0x23 0xa1 0x23 0xa2>; + clock-names = "sata\0pmalive\0rxoob"; + interrupts = <0x00 0x60 0x04>; + interrupt-names = "hostc"; + phys = <0x27 0x01>; + phy-names = "sata-phy"; + ports-implemented = <0x01>; + power-domains = <0x25 0x0f>; + status = "okay"; + }; + + usbdrd { + compatible = "rockchip,rk3568-dwc3\0rockchip,rk3399-dwc3"; + clocks = <0x23 0xa6 0x23 0xa7 0x23 0xa5 0x23 0x7f>; + clock-names = "ref_clk\0suspend_clk\0bus_clk\0pipe_clk"; + #address-cells = <0x02>; + #size-cells = <0x02>; + ranges; + status = "okay"; + + dwc3@fcc00000 { + compatible = "snps,dwc3"; + reg = <0x00 0xfcc00000 0x00 0x400000>; + interrupts = <0x00 0xa9 0x04>; + dr_mode = "otg"; + phys = <0x28 0x24 0x04>; + phy-names = "usb2-phy\0usb3-phy"; + phy_type = "utmi_wide"; + power-domains = <0x25 0x0f>; + resets = <0x23 0x94>; + reset-names = "usb3-otg"; + snps,dis_enblslpm_quirk; + snps,dis-u1-entry-quirk; + snps,dis-u2-entry-quirk; + snps,dis-u2-freeclk-exists-quirk; + snps,dis-del-phy-power-chg-quirk; + snps,dis-tx-ipgap-linecheck-quirk; + snps,dis_rxdet_inp3_quirk; + snps,parkmode-disable-hs-quirk; + snps,parkmode-disable-ss-quirk; + quirk-skip-phy-init; + status = "okay"; + extcon = <0x29>; + usb-role-switch; + + port { + #address-cells = <0x01>; + #size-cells = <0x00>; + + endpoint@0 { + reg = <0x00>; + remote-endpoint = <0x2a>; + phandle = <0x4d>; + }; + }; + }; + }; + + usbhost { + compatible = "rockchip,rk3568-dwc3\0rockchip,rk3399-dwc3"; + clocks = <0x23 0xa9 0x23 0xaa 0x23 0xa8 0x23 0x7f>; + clock-names = "ref_clk\0suspend_clk\0bus_clk\0pipe_clk"; + #address-cells = <0x02>; + #size-cells = <0x02>; + ranges; + status = "okay"; + + dwc3@fd000000 { + compatible = "snps,dwc3"; + reg = <0x00 0xfd000000 0x00 0x400000>; + interrupts = <0x00 0xaa 0x04>; + dr_mode = "host"; + phys = <0x2b 0x26 0x04>; + phy-names = "usb2-phy\0usb3-phy"; + phy_type = "utmi_wide"; + power-domains = <0x25 0x0f>; + resets = <0x23 0x95>; + reset-names = "usb3-host"; + snps,dis_enblslpm_quirk; + snps,dis-u2-freeclk-exists-quirk; + snps,dis-del-phy-power-chg-quirk; + snps,dis-tx-ipgap-linecheck-quirk; + snps,dis_rxdet_inp3_quirk; + snps,parkmode-disable-hs-quirk; + snps,parkmode-disable-ss-quirk; + status = "okay"; + }; + }; + + interrupt-controller@fd400000 { + compatible = "arm,gic-v3"; + #interrupt-cells = <0x03>; + #address-cells = <0x02>; + #size-cells = <0x02>; + ranges; + interrupt-controller; + reg = <0x00 0xfd400000 0x00 0x10000 0x00 0xfd460000 0x00 0xc0000>; + interrupts = <0x01 0x09 0x04>; + phandle = <0x01>; + + interrupt-controller@fd440000 { + compatible = "arm,gic-v3-its"; + msi-controller; + #msi-cells = <0x01>; + reg = <0x00 0xfd440000 0x00 0x20000>; + status = "okay"; + phandle = <0xbe>; + }; + }; + + usb@fd800000 { + compatible = "generic-ehci"; + reg = <0x00 0xfd800000 0x00 0x40000>; + interrupts = <0x00 0x82 0x04>; + clocks = <0x23 0xbd 0x23 0xbe 0x23 0xbc 0x2c>; + clock-names = "usbhost\0arbiter\0pclk\0utmi"; + phys = <0x2d>; + phy-names = "usb2-phy"; + status = "okay"; + }; + + usb@fd840000 { + compatible = "generic-ohci"; + reg = <0x00 0xfd840000 0x00 0x40000>; + interrupts = <0x00 0x83 0x04>; + clocks = <0x23 0xbd 0x23 0xbe 0x23 0xbc 0x2c>; + clock-names = "usbhost\0arbiter\0pclk\0utmi"; + phys = <0x2d>; + phy-names = "usb2-phy"; + status = "okay"; + }; + + usb@fd880000 { + compatible = "generic-ehci"; + reg = <0x00 0xfd880000 0x00 0x40000>; + interrupts = <0x00 0x85 0x04>; + clocks = <0x23 0xbf 0x23 0xc0 0x23 0xbc 0x2c>; + clock-names = "usbhost\0arbiter\0pclk\0utmi"; + phys = <0x2e>; + phy-names = "usb2-phy"; + status = "okay"; + }; + + usb@fd8c0000 { + compatible = "generic-ohci"; + reg = <0x00 0xfd8c0000 0x00 0x40000>; + interrupts = <0x00 0x86 0x04>; + clocks = <0x23 0xbf 0x23 0xc0 0x23 0xbc 0x2c>; + clock-names = "usbhost\0arbiter\0pclk\0utmi"; + phys = <0x2e>; + phy-names = "usb2-phy"; + status = "okay"; + }; + + syscon@fda00000 { + compatible = "rockchip,rk3568-xpcs\0syscon"; + reg = <0x00 0xfda00000 0x00 0x200000>; + status = "disabled"; + }; + + syscon@fdc20000 { + compatible = "rockchip,rk3568-pmugrf\0syscon\0simple-mfd"; + reg = <0x00 0xfdc20000 0x00 0x10000>; + phandle = <0x3c>; + + io-domains { + compatible = "rockchip,rk3568-pmu-io-voltage-domain"; + status = "okay"; + pmuio1-supply = <0x2f>; + pmuio2-supply = <0x2f>; + vccio1-supply = <0x30>; + vccio3-supply = <0x31>; + vccio4-supply = <0x32>; + vccio5-supply = <0x33>; + vccio6-supply = <0x32>; + vccio7-supply = <0x33>; + }; + + reboot-mode { + compatible = "syscon-reboot-mode"; + offset = <0x200>; + mode-bootloader = <0x5242c301>; + mode-charge = <0x5242c30b>; + mode-fastboot = <0x5242c309>; + mode-loader = <0x5242c301>; + mode-normal = <0x5242c300>; + mode-recovery = <0x5242c303>; + mode-ums = <0x5242c30c>; + mode-panic = <0x5242c307>; + mode-watchdog = <0x5242c308>; + }; + }; + + syscon@fdc50000 { + compatible = "rockchip,rk3568-pipegrf\0syscon"; + reg = <0x00 0xfdc50000 0x00 0x1000>; + phandle = <0x12a>; + }; + + syscon@fdc60000 { + compatible = "rockchip,rk3568-grf\0syscon\0simple-mfd"; + reg = <0x00 0xfdc60000 0x00 0x10000>; + phandle = <0x3b>; + + io-domains { + compatible = "rockchip,rk3568-io-voltage-domain"; + status = "disabled"; + }; + + lvds { + compatible = "rockchip,rk3568-lvds"; + phys = <0x34>; + phy-names = "phy"; + status = "disabled"; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + reg = <0x00>; + #address-cells = <0x01>; + #size-cells = <0x00>; + + endpoint@1 { + reg = <0x01>; + remote-endpoint = <0x1b>; + status = "disabled"; + phandle = <0xa3>; + }; + + endpoint@2 { + reg = <0x02>; + remote-endpoint = <0x35>; + status = "disabled"; + phandle = <0xa5>; + }; + }; + }; + }; + + lvds1 { + compatible = "rockchip,rk3568-lvds"; + phys = <0x36>; + phy-names = "phy"; + status = "disabled"; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + reg = <0x00>; + #address-cells = <0x01>; + #size-cells = <0x00>; + + endpoint@0 { + reg = <0x00>; + remote-endpoint = <0x37>; + phandle = <0xa4>; + }; + + endpoint@1 { + reg = <0x01>; + remote-endpoint = <0x38>; + phandle = <0xa7>; + }; + }; + }; + }; + + rgb { + compatible = "rockchip,rk3568-rgb"; + pinctrl-names = "default"; + pinctrl-0 = <0x39>; + status = "disabled"; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + reg = <0x00>; + #address-cells = <0x01>; + #size-cells = <0x00>; + + endpoint@2 { + reg = <0x02>; + remote-endpoint = <0x1c>; + status = "disabled"; + phandle = <0xa6>; + }; + }; + }; + }; + }; + + syscon@fdc70000 { + compatible = "rockchip,pipe-phy-grf\0syscon"; + reg = <0x00 0xfdc70000 0x00 0x1000>; + phandle = <0x12b>; + }; + + syscon@fdc80000 { + compatible = "rockchip,pipe-phy-grf\0syscon"; + reg = <0x00 0xfdc80000 0x00 0x1000>; + phandle = <0x12c>; + }; + + syscon@fdc90000 { + compatible = "rockchip,pipe-phy-grf\0syscon"; + reg = <0x00 0xfdc90000 0x00 0x1000>; + phandle = <0x12d>; + }; + + syscon@fdca0000 { + compatible = "rockchip,rk3568-usb2phy-grf\0syscon"; + reg = <0x00 0xfdca0000 0x00 0x8000>; + phandle = <0x135>; + }; + + syscon@fdca8000 { + compatible = "rockchip,rk3568-usb2phy-grf\0syscon"; + reg = <0x00 0xfdca8000 0x00 0x8000>; + phandle = <0x137>; + }; + + syscon@fdcb0000 { + compatible = "rockchip,rk3568-edp-phy-grf\0syscon\0simple-mfd"; + reg = <0x00 0xfdcb0000 0x00 0x100>; + clocks = <0x23 0x192>; + + edp-phy { + compatible = "rockchip,rk3568-edp-phy"; + clocks = <0x3a 0x29>; + clock-names = "refclk"; + #phy-cells = <0x00>; + status = "disabled"; + phandle = <0xae>; + }; + }; + + syscon@fdcb8000 { + compatible = "rockchip,pcie30-phy-grf\0syscon"; + reg = <0x00 0xfdcb8000 0x00 0x10000>; + phandle = <0x138>; + }; + + sram@fdcc0000 { + compatible = "mmio-sram"; + reg = <0x00 0xfdcc0000 0x00 0xb000>; + #address-cells = <0x01>; + #size-cells = <0x01>; + ranges = <0x00 0x00 0xfdcc0000 0xb000>; + + rkvdec-sram@0 { + reg = <0x00 0xb000>; + phandle = <0x84>; + }; + }; + + clock-controller@fdd00000 { + compatible = "rockchip,rk3568-pmucru"; + reg = <0x00 0xfdd00000 0x00 0x1000>; + rockchip,grf = <0x3b>; + rockchip,pmugrf = <0x3c>; + #clock-cells = <0x01>; + #reset-cells = <0x01>; + assigned-clocks = <0x3a 0x32>; + assigned-clock-parents = <0x3a 0x05>; + phandle = <0x3a>; + }; + + clock-controller@fdd20000 { + compatible = "rockchip,rk3568-cru"; + reg = <0x00 0xfdd20000 0x00 0x1000>; + rockchip,grf = <0x3b>; + #clock-cells = <0x01>; + #reset-cells = <0x01>; + assigned-clocks = <0x3a 0x05 0x23 0x106 0x23 0x10b 0x3a 0x01 0x3a 0x2b 0x23 0x03 0x23 0x19b 0x23 0x09 0x23 0x19c 0x23 0x19d 0x23 0x1a1 0x23 0x19e 0x23 0x19f 0x23 0x1a0 0x23 0x04 0x23 0x10d 0x23 0x10e 0x23 0x173 0x23 0x174 0x23 0x175 0x23 0x176 0x23 0xc9 0x23 0xca 0x23 0x06 0x23 0x7e 0x23 0x7f 0x23 0x3d 0x23 0x41 0x23 0x45 0x23 0x49 0x23 0x4d 0x23 0x4d 0x23 0x55 0x23 0x51 0x23 0x5d 0x23 0xdd>; + assigned-clock-rates = <0x8000 0x11e1a300 0x11e1a300 0xbebc200 0x5f5e100 0x3b9aca00 0x1dcd6500 0x13d92d40 0xee6b280 0x7735940 0x5f5e100 0x3b9aca0 0x2faf080 0x17d7840 0x46cf7100 0x8f0d180 0x5f5e100 0x1dcd6500 0x17d78400 0x8f0d180 0x5f5e100 0x11e1a300 0x8f0d180 0x47868c00 0x17d78400 0x5f5e100 0x46cf7100 0x46cf7100 0x46cf7100 0x46cf7100 0x46cf7100 0x46cf7100 0x46cf7100 0x46cf7100 0x46cf7100 0x1dcd6500>; + assigned-clock-parents = <0x3a 0x08 0x23 0x04 0x23 0x04>; + phandle = <0x23>; + }; + + i2c@fdd40000 { + compatible = "rockchip,rk3399-i2c"; + reg = <0x00 0xfdd40000 0x00 0x1000>; + clocks = <0x3a 0x07 0x3a 0x2d>; + clock-names = "i2c\0pclk"; + interrupts = <0x00 0x2e 0x04>; + pinctrl-names = "default"; + pinctrl-0 = <0x3d>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "okay"; + + tcs4525@1c { + compatible = "tcs,tcs452x"; + reg = <0x1c>; + vin-supply = <0x3e>; + regulator-compatible = "fan53555-reg"; + regulator-name = "vdd_cpu"; + regulator-min-microvolt = <0xadf34>; + regulator-max-microvolt = <0x1535b0>; + regulator-ramp-delay = <0x8fc>; + fcs,suspend-voltage-selector = <0x01>; + regulator-boot-on; + regulator-always-on; + phandle = <0x05>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + pmic@20 { + compatible = "rockchip,rk809"; + reg = <0x20>; + interrupt-parent = <0x3f>; + interrupts = <0x03 0x08>; + pinctrl-names = "default\0pmic-sleep\0pmic-power-off\0pmic-reset"; + pinctrl-0 = <0x40>; + pinctrl-1 = <0x41 0x42>; + pinctrl-2 = <0x43 0x44>; + pinctrl-3 = <0x43 0x45>; + rockchip,system-power-controller; + wakeup-source; + #clock-cells = <0x01>; + clock-output-names = "rk808-clkout1\0rk808-clkout2"; + pmic-reset-func = <0x00>; + not-save-power-en = <0x01>; + vcc1-supply = <0x46>; + vcc2-supply = <0x46>; + vcc3-supply = <0x46>; + vcc4-supply = <0x46>; + vcc5-supply = <0x46>; + vcc6-supply = <0x46>; + vcc7-supply = <0x46>; + vcc8-supply = <0x46>; + vcc9-supply = <0x46>; + phandle = <0x152>; + + pwrkey { + status = "okay"; + }; + + pinctrl_rk8xx { + gpio-controller; + #gpio-cells = <0x02>; + + rk817_slppin_null { + pins = "gpio_slp"; + function = "pin_fun0"; + }; + + rk817_slppin_slp { + pins = "gpio_slp"; + function = "pin_fun1"; + phandle = <0x42>; + }; + + rk817_slppin_pwrdn { + pins = "gpio_slp"; + function = "pin_fun2"; + phandle = <0x44>; + }; + + rk817_slppin_rst { + pins = "gpio_slp"; + function = "pin_fun3"; + phandle = <0x45>; + }; + }; + + regulators { + + DCDC_REG1 { + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <0x7a120>; + regulator-max-microvolt = <0x149970>; + regulator-init-microvolt = <0xdbba0>; + regulator-ramp-delay = <0x1771>; + regulator-initial-mode = <0x02>; + regulator-name = "vdd_logic"; + phandle = <0x75>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + DCDC_REG2 { + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <0x7a120>; + regulator-max-microvolt = <0x149970>; + regulator-init-microvolt = <0xdbba0>; + regulator-ramp-delay = <0x1771>; + regulator-initial-mode = <0x02>; + regulator-name = "vdd_gpu"; + phandle = <0x77>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + DCDC_REG3 { + regulator-always-on; + regulator-boot-on; + regulator-initial-mode = <0x02>; + regulator-name = "vcc_ddr"; + + regulator-state-mem { + regulator-on-in-suspend; + }; + }; + + DCDC_REG4 { + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <0x7a120>; + regulator-max-microvolt = <0x149970>; + regulator-init-microvolt = <0xdbba0>; + regulator-ramp-delay = <0x1771>; + regulator-initial-mode = <0x02>; + regulator-name = "vdd_npu"; + phandle = <0x71>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + LDO_REG1 { + regulator-boot-on; + regulator-always-on; + regulator-min-microvolt = <0xdbba0>; + regulator-max-microvolt = <0xdbba0>; + regulator-name = "vdda0v9_image"; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + LDO_REG2 { + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <0xdbba0>; + regulator-max-microvolt = <0xdbba0>; + regulator-name = "vdda_0v9"; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + LDO_REG3 { + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <0xdbba0>; + regulator-max-microvolt = <0xdbba0>; + regulator-name = "vdda0v9_pmu"; + + regulator-state-mem { + regulator-on-in-suspend; + regulator-suspend-microvolt = <0xdbba0>; + }; + }; + + LDO_REG4 { + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <0x325aa0>; + regulator-max-microvolt = <0x325aa0>; + regulator-name = "vccio_acodec"; + phandle = <0x30>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + LDO_REG5 { + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <0x1b7740>; + regulator-max-microvolt = <0x325aa0>; + regulator-name = "vccio_sd"; + phandle = <0x31>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + LDO_REG6 { + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <0x325aa0>; + regulator-max-microvolt = <0x325aa0>; + regulator-name = "vcc3v3_pmu"; + phandle = <0x2f>; + + regulator-state-mem { + regulator-on-in-suspend; + regulator-suspend-microvolt = <0x325aa0>; + }; + }; + + LDO_REG7 { + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <0x1b7740>; + regulator-max-microvolt = <0x1b7740>; + regulator-name = "vcca_1v8"; + phandle = <0x129>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + LDO_REG8 { + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <0x1b7740>; + regulator-max-microvolt = <0x1b7740>; + regulator-name = "vcca1v8_pmu"; + + regulator-state-mem { + regulator-on-in-suspend; + regulator-suspend-microvolt = <0x1b7740>; + }; + }; + + LDO_REG9 { + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <0x1b7740>; + regulator-max-microvolt = <0x1b7740>; + regulator-name = "vcca1v8_image"; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + DCDC_REG5 { + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <0x1b7740>; + regulator-max-microvolt = <0x1b7740>; + regulator-name = "vcc_1v8"; + phandle = <0x32>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + SWITCH_REG1 { + regulator-always-on; + regulator-boot-on; + regulator-name = "vcc_3v3"; + phandle = <0x33>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + SWITCH_REG2 { + regulator-always-on; + regulator-boot-on; + regulator-name = "vcc3v3_sd"; + phandle = <0xcf>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + }; + + codec { + #sound-dai-cells = <0x00>; + compatible = "rockchip,rk809-codec\0rockchip,rk817-codec"; + clocks = <0x23 0x1a3>; + clock-names = "mclk"; + assigned-clocks = <0x23 0x1a3 0x23 0x1a6>; + assigned-clock-rates = <0xbb8000>; + assigned-clock-parents = <0x23 0x48 0x23 0x48>; + pinctrl-names = "default\0spk_gpio"; + pinctrl-0 = <0x47>; + pinctrl-1 = <0x48>; + hp-volume = <0x03>; + spk-volume = <0x03>; + mic-in-differential; + board-spk-from-hp; + capture-volume = <0x00>; + io-channels = <0x49 0x07>; + hp-det-adc-value = <0x3e8>; + status = "okay"; + hp-adc-drift-scope = <0x64>; + phandle = <0x14b>; + }; + + rtc { + status = "disabled"; + }; + }; + + fusb302@22 { + compatible = "fcs,fusb302"; + reg = <0x22>; + interrupt-parent = <0x3f>; + fcs,int_n = <0x3f 0x11 0x08>; + fusb340-switch-gpios = <0x4a 0x12 0x00>; + pinctrl-names = "default"; + pinctrl-0 = <0x4b>; + vbus-supply = <0x4c>; + status = "okay"; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + reg = <0x00>; + + endpoint@0 { + remote-endpoint = <0x4d>; + phandle = <0x2a>; + }; + }; + }; + + connector { + compatible = "usb-c-connector"; + label = "USB-C"; + data-role = "dual"; + power-role = "dual"; + try-power-role = "sink"; + op-sink-microwatt = <0xf4240>; + sink-pdos = <0x40190fa>; + source-pdos = <0x4019096>; + }; + }; + }; + + serial@fdd50000 { + compatible = "rockchip,rk3568-uart\0snps,dw-apb-uart"; + reg = <0x00 0xfdd50000 0x00 0x100>; + interrupts = <0x00 0x74 0x04>; + clocks = <0x3a 0x0b 0x3a 0x2c>; + clock-names = "baudclk\0apb_pclk"; + reg-shift = <0x02>; + reg-io-width = <0x04>; + dmas = <0x4e 0x00 0x4e 0x01>; + pinctrl-names = "default"; + pinctrl-0 = <0x4f>; + status = "disabled"; + }; + + pwm@fdd70000 { + compatible = "rockchip,rk3568-pwm\0rockchip,rk3328-pwm"; + reg = <0x00 0xfdd70000 0x00 0x10>; + interrupts = <0x00 0x52 0x04>; + #pwm-cells = <0x03>; + pinctrl-names = "active"; + pinctrl-0 = <0x50>; + clocks = <0x3a 0x0d 0x3a 0x30>; + clock-names = "pwm\0pclk"; + status = "disabled"; + }; + + pwm@fdd70010 { + compatible = "rockchip,rk3568-pwm\0rockchip,rk3328-pwm"; + reg = <0x00 0xfdd70010 0x00 0x10>; + interrupts = <0x00 0x52 0x04>; + #pwm-cells = <0x03>; + pinctrl-names = "active"; + pinctrl-0 = <0x51>; + clocks = <0x3a 0x0d 0x3a 0x30>; + clock-names = "pwm\0pclk"; + status = "disabled"; + }; + + pwm@fdd70020 { + compatible = "rockchip,rk3568-pwm\0rockchip,rk3328-pwm"; + reg = <0x00 0xfdd70020 0x00 0x10>; + interrupts = <0x00 0x52 0x04>; + #pwm-cells = <0x03>; + pinctrl-names = "active"; + pinctrl-0 = <0x52>; + clocks = <0x3a 0x0d 0x3a 0x30>; + clock-names = "pwm\0pclk"; + status = "disabled"; + }; + + pwm@fdd70030 { + compatible = "rockchip,rk3568-pwm\0rockchip,rk3328-pwm"; + reg = <0x00 0xfdd70030 0x00 0x10>; + interrupts = <0x00 0x52 0x04 0x00 0x56 0x04>; + #pwm-cells = <0x03>; + pinctrl-names = "active"; + pinctrl-0 = <0x53>; + clocks = <0x3a 0x0d 0x3a 0x30>; + clock-names = "pwm\0pclk"; + status = "disabled"; + }; + + power-management@fdd90000 { + compatible = "rockchip,rk3568-pmu\0syscon\0simple-mfd"; + reg = <0x00 0xfdd90000 0x00 0x1000>; + + power-controller { + compatible = "rockchip,rk3568-power-controller"; + #power-domain-cells = <0x01>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "okay"; + phandle = <0x25>; + + pd_npu@6 { + reg = <0x06>; + clocks = <0x23 0x27 0x23 0x25 0x23 0x26>; + pm_qos = <0x54>; + }; + + pd_gpu@7 { + reg = <0x07>; + clocks = <0x23 0x19 0x23 0x1a>; + pm_qos = <0x55>; + }; + + pd_vi@8 { + reg = <0x08>; + clocks = <0x23 0xcc 0x23 0xcd>; + pm_qos = <0x56 0x57 0x58>; + }; + + pd_vo@9 { + reg = <0x09>; + clocks = <0x23 0xda 0x23 0xdb 0x23 0xdc>; + pm_qos = <0x59 0x5a 0x5b>; + }; + + pd_rga@10 { + reg = <0x0a>; + clocks = <0x23 0xf1 0x23 0xf2>; + pm_qos = <0x5c 0x5d 0x5e 0x5f 0x60 0x61>; + }; + + pd_vpu@11 { + reg = <0x0b>; + clocks = <0x23 0xed>; + pm_qos = <0x62>; + }; + + pd_rkvdec@13 { + clocks = <0x23 0x107>; + reg = <0x0d>; + pm_qos = <0x63>; + }; + + pd_rkvenc@14 { + reg = <0x0e>; + clocks = <0x23 0x102>; + pm_qos = <0x64 0x65 0x66>; + }; + + pd_pipe@15 { + reg = <0x0f>; + clocks = <0x23 0x7f>; + pm_qos = <0x67 0x68 0x69 0x6a 0x6b 0x6c 0x6d 0x6e>; + }; + }; + }; + + pvtm@fde00000 { + compatible = "rockchip,rk3568-core-pvtm"; + reg = <0x00 0xfde00000 0x00 0x100>; + #address-cells = <0x01>; + #size-cells = <0x00>; + + pvtm@0 { + reg = <0x00>; + clocks = <0x23 0x13 0x23 0x1c2>; + clock-names = "clk\0pclk"; + resets = <0x23 0x1a 0x23 0x19>; + reset-names = "rts\0rst-p"; + thermal-zone = "soc-thermal"; + }; + }; + + npu@fde40000 { + compatible = "rockchip,rk3568-rknpu\0rockchip,rknpu"; + reg = <0x00 0xfde40000 0x00 0x10000>; + interrupts = <0x00 0x97 0x04>; + clocks = <0x02 0x02 0x23 0x23 0x23 0x28 0x23 0x29>; + clock-names = "scmi_clk\0clk\0aclk\0hclk"; + assigned-clocks = <0x23 0x23>; + assigned-clock-rates = <0x23c34600>; + resets = <0x23 0x2b 0x23 0x2c>; + reset-names = "srst_a\0srst_h"; + power-domains = <0x25 0x06>; + operating-points-v2 = <0x6f>; + iommus = <0x70>; + status = "okay"; + rknpu-supply = <0x71>; + }; + + npu-opp-table { + compatible = "operating-points-v2"; + mbist-vmin = <0xc96a8 0xdbba0 0xe7ef0>; + nvmem-cells = <0x72 0x07 0x08 0x73 0x0a 0x0b>; + nvmem-cell-names = "leakage\0pvtm\0mbist-vmin\0opp-info\0specification_serial_number\0remark_spec_serial_number"; + rockchip,supported-hw; + rockchip,max-volt = <0xf4240>; + rockchip,temp-hysteresis = <0x1388>; + rockchip,low-temp = <0x00>; + rockchip,low-temp-adjust-volt = <0x00 0x3e8 0xc350>; + rockchip,pvtm-voltage-sel = <0x00 0x14820 0x00 0x14821 0x153d8 0x01 0x153d9 0x16378 0x02 0x16379 0x186a0 0x03>; + rockchip,pvtm-ch = <0x00 0x05>; + phandle = <0x6f>; + + opp-200000000 { + opp-supported-hw = <0xfb 0xffff>; + opp-hz = <0x00 0xbebc200>; + opp-microvolt = <0xcf850 0xcf850 0xf4240>; + }; + + opp-300000000 { + opp-supported-hw = <0xfb 0xffff>; + opp-hz = <0x00 0x11b3dc40>; + opp-microvolt = <0xcf850 0xcf850 0xf4240>; + }; + + opp-400000000 { + opp-supported-hw = <0xfb 0xffff>; + opp-hz = <0x00 0x17d78400>; + opp-microvolt = <0xcf850 0xcf850 0xf4240>; + }; + + opp-600000000 { + opp-supported-hw = <0xfb 0xffff>; + opp-hz = <0x00 0x23c34600>; + opp-microvolt = <0xcf850 0xcf850 0xf4240>; + }; + + opp-700000000 { + opp-supported-hw = <0xfb 0xffff>; + opp-hz = <0x00 0x29b92700>; + opp-microvolt = <0xd59f8 0xd59f8 0xf4240>; + opp-microvolt-L0 = <0xd59f8 0xd59f8 0xf4240>; + opp-microvolt-L1 = <0xcf850 0xcf850 0xf4240>; + opp-microvolt-L2 = <0xcf850 0xcf850 0xf4240>; + opp-microvolt-L3 = <0xcf850 0xcf850 0xf4240>; + }; + + opp-800000000 { + opp-supported-hw = <0xfb 0xffff>; + opp-hz = <0x00 0x2faf0800>; + opp-microvolt = <0xe1d48 0xe1d48 0xf4240>; + opp-microvolt-L0 = <0xe1d48 0xe1d48 0xf4240>; + opp-microvolt-L1 = <0xdbba0 0xdbba0 0xf4240>; + opp-microvolt-L2 = <0xd59f8 0xd59f8 0xf4240>; + opp-microvolt-L3 = <0xd59f8 0xd59f8 0xf4240>; + }; + + opp-900000000 { + opp-supported-hw = <0xf9 0xffff>; + opp-hz = <0x00 0x35a4e900>; + opp-microvolt = <0xee098 0xee098 0xf4240>; + opp-microvolt-L0 = <0xee098 0xee098 0xf4240>; + opp-microvolt-L1 = <0xe7ef0 0xe7ef0 0xf4240>; + opp-microvolt-L2 = <0xe1d48 0xe1d48 0xf4240>; + opp-microvolt-L3 = <0xdbba0 0xdbba0 0xf4240>; + }; + + opp-1000000000 { + opp-supported-hw = <0xf9 0xffff>; + opp-hz = <0x00 0x3b9aca00>; + opp-microvolt = <0xf4240 0xf4240 0xf4240>; + opp-microvolt-L0 = <0xf4240 0xf4240 0xf4240>; + opp-microvolt-L1 = <0xee098 0xee098 0xf4240>; + opp-microvolt-L2 = <0xe7ef0 0xe7ef0 0xf4240>; + opp-microvolt-L3 = <0xe1d48 0xe1d48 0xf4240>; + status = "disabled"; + }; + + opp-j-600000000 { + opp-supported-hw = <0x04 0xffff>; + opp-hz = <0x00 0x23c34600>; + opp-microvolt = <0xdbba0 0xdbba0 0xf4240>; + }; + + opp-m-900000000 { + opp-supported-hw = <0x02 0xffff>; + opp-hz = <0x00 0x35a4e900>; + opp-microvolt = <0xe1d48 0xe1d48 0xf4240>; + }; + }; + + bus-npu { + compatible = "rockchip,rk3568-bus"; + rockchip,busfreq-policy = "clkfreq"; + clocks = <0x02 0x02>; + clock-names = "bus"; + operating-points-v2 = <0x74>; + status = "okay"; + bus-supply = <0x75>; + pvtm-supply = <0x05>; + }; + + bus-npu-opp-table { + compatible = "operating-points-v2"; + opp-shared; + nvmem-cells = <0x07>; + nvmem-cell-names = "pvtm"; + rockchip,pvtm-voltage-sel = <0x00 0x14820 0x00 0x14821 0x16378 0x01 0x16379 0x186a0 0x02>; + rockchip,pvtm-ch = <0x00 0x05>; + phandle = <0x74>; + + opp-700000000 { + opp-hz = <0x00 0x29b92700>; + opp-microvolt = <0xdbba0>; + opp-microvolt-L0 = <0xdbba0>; + opp-microvolt-L1 = <0xd59f8>; + opp-microvolt-L2 = <0xd59f8>; + }; + + opp-900000000 { + opp-hz = <0x00 0x35a4e900>; + opp-microvolt = <0xdbba0>; + }; + + opp-1000000000 { + opp-hz = <0x00 0x3b9aca00>; + opp-microvolt = <0xe7ef0>; + opp-microvolt-L0 = <0xe7ef0>; + opp-microvolt-L1 = <0xe1d48>; + opp-microvolt-L2 = <0xdbba0>; + }; + }; + + iommu@fde4b000 { + compatible = "rockchip,iommu-v2"; + reg = <0x00 0xfde4b000 0x00 0x40>; + interrupts = <0x00 0x97 0x04>; + interrupt-names = "rknpu_mmu"; + clocks = <0x23 0x28 0x23 0x29>; + clock-names = "aclk\0iface"; + power-domains = <0x25 0x06>; + #iommu-cells = <0x00>; + status = "okay"; + phandle = <0x70>; + }; + + gpu@fde60000 { + compatible = "arm,mali-bifrost"; + reg = <0x00 0xfde60000 0x00 0x4000>; + interrupts = <0x00 0x27 0x04 0x00 0x29 0x04 0x00 0x28 0x04>; + interrupt-names = "GPU\0MMU\0JOB"; + upthreshold = <0x28>; + downdifferential = <0x0a>; + clocks = <0x02 0x01 0x23 0x1b>; + clock-names = "clk_mali\0clk_gpu"; + power-domains = <0x25 0x07>; + #cooling-cells = <0x02>; + operating-points-v2 = <0x76>; + status = "okay"; + mali-supply = <0x77>; + phandle = <0x21>; + + power-model { + compatible = "simple-power-model"; + leakage-range = <0x05 0x0f>; + ls = <0xffffa23e 0x5927 0x00>; + static-coefficient = <0x186a0>; + dynamic-coefficient = <0x3b9>; + ts = <0xfffe56a6 0xf87a 0xfffffab5 0x14>; + thermal-zone = "gpu-thermal"; + }; + }; + + opp-table2 { + compatible = "operating-points-v2"; + mbist-vmin = <0xc96a8 0xdbba0 0xe7ef0>; + nvmem-cells = <0x78 0x07 0x08 0x79 0x0a 0x0b>; + nvmem-cell-names = "leakage\0pvtm\0mbist-vmin\0opp-info\0specification_serial_number\0remark_spec_serial_number"; + rockchip,supported-hw; + rockchip,max-volt = <0xf4240>; + rockchip,temp-hysteresis = <0x1388>; + rockchip,low-temp = <0x00>; + rockchip,low-temp-adjust-volt = <0x00 0x320 0xc350>; + rockchip,pvtm-voltage-sel = <0x00 0x14820 0x00 0x14821 0x153d8 0x01 0x153d9 0x16378 0x02 0x16379 0x186a0 0x03>; + rockchip,pvtm-ch = <0x00 0x05>; + phandle = <0x76>; + + opp-200000000 { + opp-supported-hw = <0xfb 0xffff>; + opp-hz = <0x00 0xbebc200>; + opp-microvolt = <0xcf850 0xcf850 0xf4240>; + }; + + opp-300000000 { + opp-supported-hw = <0xfb 0xffff>; + opp-hz = <0x00 0x11e1a300>; + opp-microvolt = <0xcf850 0xcf850 0xf4240>; + }; + + opp-400000000 { + opp-supported-hw = <0xfb 0xffff>; + opp-hz = <0x00 0x17d78400>; + opp-microvolt = <0xcf850 0xcf850 0xf4240>; + }; + + opp-600000000 { + opp-supported-hw = <0xfb 0xffff>; + opp-hz = <0x00 0x23c34600>; + opp-microvolt = <0xdbba0 0xdbba0 0xf4240>; + opp-microvolt-L0 = <0xdbba0 0xdbba0 0xf4240>; + opp-microvolt-L1 = <0xd59f8 0xd59f8 0xf4240>; + opp-microvolt-L2 = <0xcf850 0xcf850 0xf4240>; + opp-microvolt-L3 = <0xcf850 0xcf850 0xf4240>; + }; + + opp-700000000 { + opp-supported-hw = <0xfb 0xffff>; + opp-hz = <0x00 0x29b92700>; + opp-microvolt = <0xe7ef0 0xe7ef0 0xf4240>; + opp-microvolt-L0 = <0xe7ef0 0xe7ef0 0xf4240>; + opp-microvolt-L1 = <0xe1d48 0xe1d48 0xf4240>; + opp-microvolt-L2 = <0xdbba0 0xdbba0 0xf4240>; + opp-microvolt-L3 = <0xd59f8 0xd59f8 0xf4240>; + }; + + opp-800000000 { + opp-supported-hw = <0xf9 0xffff>; + opp-hz = <0x00 0x2faf0800>; + opp-microvolt = <0xf4240 0xf4240 0xf4240>; + opp-microvolt-L0 = <0xf4240 0xf4240 0xf4240>; + opp-microvolt-L1 = <0xee098 0xee098 0xf4240>; + opp-microvolt-L2 = <0xe7ef0 0xe7ef0 0xf4240>; + opp-microvolt-L3 = <0xe1d48 0xe1d48 0xf4240>; + }; + + opp-j-600000000 { + opp-supported-hw = <0x04 0xffff>; + opp-hz = <0x00 0x23c34600>; + opp-microvolt = <0xdbba0 0xdbba0 0xf4240>; + }; + + opp-m-800000000 { + opp-supported-hw = <0x02 0xffff>; + opp-hz = <0x00 0x2faf0800>; + opp-microvolt = <0xe7ef0 0xe7ef0 0xf4240>; + }; + }; + + pvtm@fde80000 { + compatible = "rockchip,rk3568-gpu-pvtm"; + reg = <0x00 0xfde80000 0x00 0x100>; + #address-cells = <0x01>; + #size-cells = <0x00>; + + pvtm@1 { + reg = <0x01>; + clocks = <0x23 0x1e 0x23 0x1d>; + clock-names = "clk\0pclk"; + resets = <0x23 0x24 0x23 0x23>; + reset-names = "rts\0rst-p"; + thermal-zone = "gpu-thermal"; + }; + }; + + pvtm@fde90000 { + compatible = "rockchip,rk3568-npu-pvtm"; + reg = <0x00 0xfde90000 0x00 0x100>; + #address-cells = <0x01>; + #size-cells = <0x00>; + + pvtm@2 { + reg = <0x02>; + clocks = <0x23 0x2b 0x23 0x2a 0x23 0x25>; + clock-names = "clk\0pclk\0hclk"; + resets = <0x23 0x2e 0x23 0x2d>; + reset-names = "rts\0rst-p"; + thermal-zone = "soc-thermal"; + }; + }; + + vdpu@fdea0400 { + compatible = "rockchip,vpu-decoder-v2"; + reg = <0x00 0xfdea0400 0x00 0x400>; + interrupts = <0x00 0x8b 0x04>; + interrupt-names = "irq_dec"; + clocks = <0x23 0xee 0x23 0xef>; + clock-names = "aclk_vcodec\0hclk_vcodec"; + resets = <0x23 0x11a 0x23 0x11b>; + reset-names = "video_a\0video_h"; + iommus = <0x7a>; + power-domains = <0x25 0x0b>; + rockchip,srv = <0x7b>; + rockchip,taskqueue-node = <0x00>; + rockchip,resetgroup-node = <0x00>; + status = "okay"; + }; + + iommu@fdea0800 { + compatible = "rockchip,iommu-v2"; + reg = <0x00 0xfdea0800 0x00 0x40>; + interrupts = <0x00 0x8a 0x04>; + interrupt-names = "vdpu_mmu"; + clock-names = "aclk\0iface"; + clocks = <0x23 0xee 0x23 0xef>; + power-domains = <0x25 0x0b>; + #iommu-cells = <0x00>; + status = "okay"; + phandle = <0x7a>; + }; + + rk_rga@fdeb0000 { + compatible = "rockchip,rga2"; + reg = <0x00 0xfdeb0000 0x00 0x1000>; + interrupts = <0x00 0x5a 0x04>; + clocks = <0x23 0xf3 0x23 0xf4 0x23 0xf5>; + clock-names = "aclk_rga\0hclk_rga\0clk_rga"; + power-domains = <0x25 0x0a>; + status = "okay"; + }; + + ebc@fdec0000 { + compatible = "rockchip,rk3568-ebc-tcon"; + reg = <0x00 0xfdec0000 0x00 0x5000>; + interrupts = <0x00 0x11 0x04>; + clocks = <0x23 0xf9 0x23 0xfa>; + clock-names = "hclk\0dclk"; + power-domains = <0x25 0x0a>; + rockchip,grf = <0x3b>; + pinctrl-names = "default"; + pinctrl-0 = <0x7c>; + status = "disabled"; + }; + + jpegd@fded0000 { + compatible = "rockchip,rkv-jpeg-decoder-v1"; + reg = <0x00 0xfded0000 0x00 0x400>; + interrupts = <0x00 0x3e 0x04>; + clocks = <0x23 0xfb 0x23 0xfc>; + clock-names = "aclk_vcodec\0hclk_vcodec"; + rockchip,disable-auto-freq; + resets = <0x23 0x12c 0x23 0x12d>; + reset-names = "video_a\0video_h"; + iommus = <0x7d>; + rockchip,srv = <0x7b>; + rockchip,taskqueue-node = <0x01>; + rockchip,resetgroup-node = <0x01>; + power-domains = <0x25 0x0a>; + status = "okay"; + }; + + iommu@fded0480 { + compatible = "rockchip,iommu-v2"; + reg = <0x00 0xfded0480 0x00 0x40>; + interrupts = <0x00 0x3d 0x04>; + interrupt-names = "jpegd_mmu"; + clock-names = "aclk\0iface"; + clocks = <0x23 0xfb 0x23 0xfc>; + power-domains = <0x25 0x0a>; + #iommu-cells = <0x00>; + status = "okay"; + phandle = <0x7d>; + }; + + vepu@fdee0000 { + compatible = "rockchip,vpu-encoder-v2"; + reg = <0x00 0xfdee0000 0x00 0x400>; + interrupts = <0x00 0x40 0x04>; + clocks = <0x23 0xfd 0x23 0xfe>; + clock-names = "aclk_vcodec\0hclk_vcodec"; + rockchip,disable-auto-freq; + resets = <0x23 0x12e 0x23 0x12f>; + reset-names = "video_a\0video_h"; + iommus = <0x7e>; + rockchip,srv = <0x7b>; + rockchip,taskqueue-node = <0x02>; + rockchip,resetgroup-node = <0x02>; + power-domains = <0x25 0x0a>; + status = "okay"; + }; + + iommu@fdee0800 { + compatible = "rockchip,iommu-v2"; + reg = <0x00 0xfdee0800 0x00 0x40>; + interrupts = <0x00 0x3f 0x04>; + interrupt-names = "vepu_mmu"; + clock-names = "aclk\0iface"; + clocks = <0x23 0xfd 0x23 0xfe>; + power-domains = <0x25 0x0a>; + #iommu-cells = <0x00>; + status = "okay"; + phandle = <0x7e>; + }; + + iep@fdef0000 { + compatible = "rockchip,iep-v2"; + reg = <0x00 0xfdef0000 0x00 0x500>; + interrupts = <0x00 0x38 0x04>; + clocks = <0x23 0xf6 0x23 0xf7 0x23 0xf8>; + clock-names = "aclk\0hclk\0sclk"; + resets = <0x23 0x127 0x23 0x128 0x23 0x129>; + reset-names = "rst_a\0rst_h\0rst_s"; + power-domains = <0x25 0x0a>; + rockchip,srv = <0x7b>; + rockchip,taskqueue-node = <0x05>; + rockchip,resetgroup-node = <0x05>; + iommus = <0x7f>; + status = "okay"; + }; + + iommu@fdef0800 { + compatible = "rockchip,iommu-v2"; + reg = <0x00 0xfdef0800 0x00 0x100>; + interrupts = <0x00 0x38 0x04>; + interrupt-names = "iep_mmu"; + clocks = <0x23 0xf6 0x23 0xf7>; + clock-names = "aclk\0iface"; + #iommu-cells = <0x00>; + power-domains = <0x25 0x0a>; + status = "okay"; + phandle = <0x7f>; + }; + + eink@fdf00000 { + compatible = "rockchip,rk3568-eink-tcon"; + reg = <0x00 0xfdf00000 0x00 0x74>; + interrupts = <0x00 0xb2 0x04>; + clocks = <0x23 0xff 0x23 0x100>; + clock-names = "pclk\0hclk"; + status = "disabled"; + }; + + rkvenc@fdf40000 { + compatible = "rockchip,rkv-encoder-v1"; + reg = <0x00 0xfdf40000 0x00 0x400>; + interrupts = <0x00 0x8c 0x04>; + interrupt-names = "irq_enc"; + clocks = <0x23 0x103 0x23 0x104 0x23 0x105>; + clock-names = "aclk_vcodec\0hclk_vcodec\0clk_core"; + rockchip,normal-rates = <0x11b3dc40 0x00 0x11b3dc40>; + resets = <0x23 0x133 0x23 0x134 0x23 0x135>; + reset-names = "video_a\0video_h\0video_core"; + assigned-clocks = <0x23 0x103 0x23 0x105>; + assigned-clock-rates = <0x11b3dc40 0x11b3dc40>; + iommus = <0x80>; + node-name = "rkvenc"; + rockchip,srv = <0x7b>; + rockchip,taskqueue-node = <0x03>; + rockchip,resetgroup-node = <0x03>; + power-domains = <0x25 0x0e>; + operating-points-v2 = <0x81>; + status = "okay"; + venc-supply = <0x75>; + }; + + rkvenc-opp-table { + compatible = "operating-points-v2"; + nvmem-cells = <0x07>; + nvmem-cell-names = "pvtm"; + rockchip,pvtm-voltage-sel = <0x00 0x14820 0x00 0x14821 0x16378 0x01 0x16379 0x186a0 0x02>; + rockchip,pvtm-ch = <0x00 0x05>; + phandle = <0x81>; + + opp-297000000 { + opp-hz = <0x00 0x11b3dc40>; + opp-microvolt = <0xdbba0>; + opp-microvolt-L0 = <0xdbba0>; + opp-microvolt-L1 = <0xd59f8>; + opp-microvolt-L2 = <0xd59f8>; + }; + + opp-400000000 { + opp-hz = <0x00 0x17d78400>; + opp-microvolt = <0xe7ef0>; + opp-microvolt-L0 = <0xe7ef0>; + opp-microvolt-L1 = <0xe1d48>; + opp-microvolt-L2 = <0xdbba0>; + }; + }; + + iommu@fdf40f00 { + compatible = "rockchip,iommu-v2"; + reg = <0x00 0xfdf40f00 0x00 0x40 0x00 0xfdf40f40 0x00 0x40>; + interrupts = <0x00 0x8d 0x04 0x00 0x8e 0x04>; + interrupt-names = "rkvenc_mmu0\0rkvenc_mmu1"; + clocks = <0x23 0x103 0x23 0x104>; + clock-names = "aclk\0iface"; + rockchip,disable-mmu-reset; + rockchip,enable-cmd-retry; + #iommu-cells = <0x00>; + power-domains = <0x25 0x0e>; + status = "okay"; + phandle = <0x80>; + }; + + rkvdec@fdf80200 { + compatible = "rockchip,rkv-decoder-rk3568\0rockchip,rkv-decoder-v2"; + reg = <0x00 0xfdf80200 0x00 0x400 0x00 0xfdf80100 0x00 0x100>; + reg-names = "regs\0link"; + interrupts = <0x00 0x5b 0x04>; + interrupt-names = "irq_dec"; + clocks = <0x23 0x108 0x23 0x109 0x23 0x10a 0x23 0x10b 0x23 0x10c>; + clock-names = "aclk_vcodec\0hclk_vcodec\0clk_cabac\0clk_core\0clk_hevc_cabac"; + rockchip,normal-rates = <0x11b3dc40 0x00 0x11b3dc40 0x11b3dc40 0x23c34600>; + rockchip,advanced-rates = <0x179a7b00 0x00 0x179a7b00 0x179a7b00 0x23c34600>; + rockchip,default-max-load = <0x1fe000>; + resets = <0x23 0x142 0x23 0x143 0x23 0x144 0x23 0x145 0x23 0x146>; + assigned-clocks = <0x23 0x108 0x23 0x10a 0x23 0x10b 0x23 0x10c>; + assigned-clock-rates = <0x11b3dc40 0x11b3dc40 0x11b3dc40 0x11b3dc40>; + reset-names = "video_a\0video_h\0video_cabac\0video_core\0video_hevc_cabac"; + power-domains = <0x25 0x0d>; + operating-points-v2 = <0x82>; + vdec-supply = <0x75>; + iommus = <0x83>; + rockchip,srv = <0x7b>; + rockchip,taskqueue-node = <0x04>; + rockchip,resetgroup-node = <0x04>; + rockchip,sram = <0x84>; + rockchip,rcb-iova = <0x10000000 0x10000>; + rockchip,rcb-min-width = <0x200>; + rockchip,task-capacity = <0x10>; + status = "okay"; + }; + + rkvdec-opp-table { + compatible = "operating-points-v2"; + nvmem-cells = <0x85 0x07>; + nvmem-cell-names = "leakage\0pvtm"; + rockchip,leakage-voltage-sel = <0x01 0x50 0x00 0x51 0xfe 0x01>; + rockchip,pvtm-voltage-sel = <0x00 0x14820 0x00 0x14821 0x186a0 0x01>; + rockchip,pvtm-ch = <0x00 0x05>; + phandle = <0x82>; + + opp-297000000 { + opp-hz = <0x00 0x11b3dc40>; + opp-microvolt = <0xdbba0>; + opp-microvolt-L0 = <0xdbba0>; + opp-microvolt-L1 = <0xd59f8>; + }; + + opp-400000000 { + opp-hz = <0x00 0x17d78400>; + opp-microvolt = <0xdbba0>; + }; + }; + + iommu@fdf80800 { + compatible = "rockchip,iommu-v2"; + reg = <0x00 0xfdf80800 0x00 0x40 0x00 0xfdf80840 0x00 0x40>; + interrupts = <0x00 0x5c 0x04>; + interrupt-names = "rkvdec_mmu"; + clocks = <0x23 0x108 0x23 0x109>; + clock-names = "aclk\0iface"; + power-domains = <0x25 0x0d>; + #iommu-cells = <0x00>; + status = "okay"; + phandle = <0x83>; + }; + + mipi-csi2-hw@fdfb0000 { + compatible = "rockchip,rk3568-mipi-csi2-hw"; + reg = <0x00 0xfdfb0000 0x00 0x10000>; + reg-names = "csihost_regs"; + interrupts = <0x00 0x08 0x04 0x00 0x09 0x04>; + interrupt-names = "csi-intr1\0csi-intr2"; + clocks = <0x23 0xd5>; + clock-names = "pclk_csi2host"; + resets = <0x23 0xff>; + reset-names = "srst_csihost_p"; + status = "okay"; + phandle = <0x1e>; + }; + + rkcif@fdfe0000 { + compatible = "rockchip,rk3568-cif"; + reg = <0x00 0xfdfe0000 0x00 0x8000>; + reg-names = "cif_regs"; + interrupts = <0x00 0x92 0x04>; + interrupt-names = "cif-intr"; + clocks = <0x23 0xce 0x23 0xcf 0x23 0xd0 0x23 0xd1>; + clock-names = "aclk_cif\0hclk_cif\0dclk_cif\0iclk_cif_g"; + resets = <0x23 0xf7 0x23 0xf8 0x23 0xf9 0x23 0xfb 0x23 0xfa>; + reset-names = "rst_cif_a\0rst_cif_h\0rst_cif_d\0rst_cif_p\0rst_cif_i"; + assigned-clocks = <0x23 0xd0>; + assigned-clock-rates = <0x11e1a300>; + power-domains = <0x25 0x08>; + rockchip,grf = <0x3b>; + iommus = <0x86>; + status = "disabled"; + phandle = <0x87>; + }; + + iommu@fdfe0800 { + compatible = "rockchip,iommu-v2"; + reg = <0x00 0xfdfe0800 0x00 0x100>; + interrupts = <0x00 0x92 0x04>; + interrupt-names = "cif_mmu"; + clocks = <0x23 0xce 0x23 0xcf>; + clock-names = "aclk\0iface"; + power-domains = <0x25 0x08>; + rockchip,disable-mmu-reset; + #iommu-cells = <0x00>; + status = "disabled"; + phandle = <0x86>; + }; + + rkcif_dvp { + compatible = "rockchip,rkcif-dvp"; + rockchip,hw = <0x87>; + status = "disabled"; + phandle = <0x88>; + }; + + rkcif_dvp_sditf { + compatible = "rockchip,rkcif-sditf"; + rockchip,cif = <0x88>; + status = "disabled"; + }; + + rkcif_mipi_lvds { + compatible = "rockchip,rkcif-mipi-lvds"; + rockchip,hw = <0x87>; + status = "disabled"; + phandle = <0x89>; + }; + + rkcif_mipi_lvds_sditf { + compatible = "rockchip,rkcif-sditf"; + rockchip,cif = <0x89>; + status = "disabled"; + }; + + rkisp@fdff0000 { + compatible = "rockchip,rk3568-rkisp"; + reg = <0x00 0xfdff0000 0x00 0x10000>; + interrupts = <0x00 0x39 0x04 0x00 0x3a 0x04 0x00 0x3c 0x04>; + interrupt-names = "mipi_irq\0mi_irq\0isp_irq"; + clocks = <0x23 0xd2 0x23 0xd3 0x23 0xd4>; + clock-names = "aclk_isp\0hclk_isp\0clk_isp"; + resets = <0x23 0xfd 0x23 0xfc>; + reset-names = "isp\0isp-h"; + rockchip,grf = <0x3b>; + power-domains = <0x25 0x08>; + iommus = <0x8a>; + rockchip,iq-feature = <0x1bfb 0xfffe67ff>; + status = "okay"; + phandle = <0x8b>; + }; + + iommu@fdff1a00 { + compatible = "rockchip,iommu-v2"; + reg = <0x00 0xfdff1a00 0x00 0x100>; + interrupts = <0x00 0x3b 0x04>; + interrupt-names = "isp_mmu"; + clocks = <0x23 0xd2 0x23 0xd3>; + clock-names = "aclk\0iface"; + power-domains = <0x25 0x08>; + #iommu-cells = <0x00>; + rockchip,disable-mmu-reset; + status = "okay"; + phandle = <0x8a>; + }; + + rkisp-vir0 { + compatible = "rockchip,rkisp-vir"; + rockchip,hw = <0x8b>; + status = "okay"; + + port { + #address-cells = <0x01>; + #size-cells = <0x00>; + + endpoint@0 { + reg = <0x00>; + remote-endpoint = <0x8c>; + phandle = <0x134>; + }; + }; + }; + + rkisp-vir1 { + compatible = "rockchip,rkisp-vir"; + rockchip,hw = <0x8b>; + status = "disabled"; + }; + + uio@fe010000 { + compatible = "rockchip,uio-gmac"; + reg = <0x00 0xfe010000 0x00 0x10000>; + rockchip,ethernet = <0x8d>; + status = "disabled"; + }; + + ethernet@fe010000 { + local-mac-address = [5e 4f fd 70 05 c6]; + compatible = "rockchip,rk3568-gmac\0snps,dwmac-4.20a"; + reg = <0x00 0xfe010000 0x00 0x10000>; + interrupts = <0x00 0x20 0x04 0x00 0x1d 0x04>; + interrupt-names = "macirq\0eth_wake_irq"; + rockchip,grf = <0x3b>; + clocks = <0x23 0x186 0x23 0x189 0x23 0x189 0x23 0xc7 0x23 0xc3 0x23 0xc4 0x23 0x189 0x23 0xc8 0x23 0xac 0x23 0xab>; + clock-names = "stmmaceth\0mac_clk_rx\0mac_clk_tx\0clk_mac_refout\0aclk_mac\0pclk_mac\0clk_mac_speed\0ptp_ref\0pclk_xpcs\0clk_xpcs_eee"; + resets = <0x23 0xec>; + reset-names = "stmmaceth"; + snps,mixed-burst; + snps,tso; + snps,axi-config = <0x8e>; + snps,mtl-rx-config = <0x8f>; + snps,mtl-tx-config = <0x90>; + status = "okay"; + phy-mode = "rgmii"; + clock_in_out = "input"; + snps,reset-gpio = <0x91 0x19 0x01>; + snps,reset-active-low; + snps,reset-delays-us = <0x00 0x4e20 0x186a0>; + assigned-clocks = <0x23 0x189 0x23 0x186>; + assigned-clock-parents = <0x23 0x187 0x92>; + pinctrl-names = "default"; + pinctrl-0 = <0x93 0x94 0x95 0x96 0x97 0x98>; + tx_delay = <0x3e>; + rx_delay = <0x32>; + phy-handle = <0x99>; + phandle = <0x8d>; + + mdio { + compatible = "snps,dwmac-mdio"; + #address-cells = <0x01>; + #size-cells = <0x00>; + + phy@0 { + compatible = "ethernet-phy-ieee802.3-c22"; + reg = <0x00>; + led_status_value = <0x6940>; + phandle = <0x99>; + }; + }; + + stmmac-axi-config { + snps,wr_osr_lmt = <0x04>; + snps,rd_osr_lmt = <0x08>; + snps,blen = <0x00 0x00 0x00 0x00 0x10 0x08 0x04>; + phandle = <0x8e>; + }; + + rx-queues-config { + snps,rx-queues-to-use = <0x01>; + phandle = <0x8f>; + + queue0 { + }; + }; + + tx-queues-config { + snps,tx-queues-to-use = <0x01>; + phandle = <0x90>; + + queue0 { + }; + }; + }; + + vop@fe040000 { + compatible = "rockchip,rk3568-vop"; + reg = <0x00 0xfe040000 0x00 0x3000 0x00 0xfe044000 0x00 0x1000>; + reg-names = "regs\0gamma_lut"; + rockchip,grf = <0x3b>; + interrupts = <0x00 0x94 0x04>; + clocks = <0x23 0xdd 0x23 0xde 0x23 0xdf 0x23 0xe0 0x23 0xe1>; + clock-names = "aclk_vop\0hclk_vop\0dclk_vp0\0dclk_vp1\0dclk_vp2"; + iommus = <0x9a>; + power-domains = <0x25 0x09>; + status = "okay"; + assigned-clocks = <0x23 0xdf 0x23 0xe0>; + assigned-clock-parents = <0x3a 0x02 0x23 0x05>; + disable-win-move; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + phandle = <0x15>; + + port@0 { + rockchip,primary-plane = <0x04>; + rockchip,plane-mask = <0x15>; + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x00>; + + endpoint@0 { + reg = <0x00>; + remote-endpoint = <0x9b>; + phandle = <0x17>; + }; + + endpoint@1 { + reg = <0x01>; + remote-endpoint = <0x9c>; + phandle = <0x18>; + }; + + endpoint@2 { + reg = <0x02>; + remote-endpoint = <0x9d>; + phandle = <0x19>; + }; + + endpoint@3 { + reg = <0x03>; + remote-endpoint = <0x9e>; + phandle = <0x1a>; + }; + }; + + port@1 { + rockchip,primary-plane = <0x05>; + rockchip,plane-mask = <0x22>; + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x01>; + + endpoint@0 { + reg = <0x00>; + remote-endpoint = <0x9f>; + phandle = <0xa8>; + }; + + endpoint@1 { + reg = <0x01>; + remote-endpoint = <0xa0>; + phandle = <0xa9>; + }; + + endpoint@2 { + reg = <0x02>; + remote-endpoint = <0xa1>; + phandle = <0xaf>; + }; + + endpoint@3 { + reg = <0x03>; + remote-endpoint = <0xa2>; + phandle = <0xad>; + }; + + endpoint@4 { + reg = <0x04>; + remote-endpoint = <0xa3>; + phandle = <0x1b>; + }; + + endpoint@5 { + reg = <0x05>; + remote-endpoint = <0xa4>; + phandle = <0x37>; + }; + }; + + port@2 { + rockchip,primary-plane = <0x03>; + rockchip,plane-mask = <0x08>; + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x02>; + + endpoint@0 { + reg = <0x00>; + remote-endpoint = <0xa5>; + phandle = <0x35>; + }; + + endpoint@1 { + reg = <0x01>; + remote-endpoint = <0xa6>; + phandle = <0x1c>; + }; + + endpoint@2 { + reg = <0x02>; + remote-endpoint = <0xa7>; + phandle = <0x38>; + }; + }; + }; + }; + + iommu@fe043e00 { + compatible = "rockchip,iommu-v2"; + reg = <0x00 0xfe043e00 0x00 0x100 0x00 0xfe043f00 0x00 0x100>; + interrupts = <0x00 0x94 0x04>; + interrupt-names = "vop_mmu"; + clocks = <0x23 0xdd 0x23 0xde>; + clock-names = "aclk\0iface"; + #iommu-cells = <0x00>; + rockchip,disable-device-link-resume; + status = "okay"; + phandle = <0x9a>; + }; + + dsi@fe060000 { + compatible = "rockchip,rk3568-mipi-dsi"; + reg = <0x00 0xfe060000 0x00 0x10000>; + interrupts = <0x00 0x44 0x04>; + clocks = <0x23 0xe8 0x23 0xda>; + clock-names = "pclk\0hclk"; + resets = <0x23 0x110>; + reset-names = "apb"; + phys = <0x34>; + phy-names = "dphy"; + power-domains = <0x25 0x09>; + rockchip,grf = <0x3b>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "disabled"; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + reg = <0x00>; + #address-cells = <0x01>; + #size-cells = <0x00>; + + endpoint@0 { + reg = <0x00>; + remote-endpoint = <0x17>; + status = "disabled"; + phandle = <0x9b>; + }; + + endpoint@1 { + reg = <0x01>; + remote-endpoint = <0xa8>; + status = "disabled"; + phandle = <0x9f>; + }; + }; + }; + }; + + dsi@fe070000 { + compatible = "rockchip,rk3568-mipi-dsi"; + reg = <0x00 0xfe070000 0x00 0x10000>; + interrupts = <0x00 0x45 0x04>; + clocks = <0x23 0xe9 0x23 0xda>; + clock-names = "pclk\0hclk"; + resets = <0x23 0x111>; + reset-names = "apb"; + phys = <0x36>; + phy-names = "dphy"; + power-domains = <0x25 0x09>; + rockchip,grf = <0x3b>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "disabled"; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + reg = <0x00>; + #address-cells = <0x01>; + #size-cells = <0x00>; + + endpoint@0 { + reg = <0x00>; + remote-endpoint = <0x18>; + status = "disabled"; + phandle = <0x9c>; + }; + + endpoint@1 { + reg = <0x01>; + remote-endpoint = <0xa9>; + status = "disabled"; + phandle = <0xa0>; + }; + }; + }; + }; + + hdmi@fe0a0000 { + compatible = "rockchip,rk3568-dw-hdmi"; + reg = <0x00 0xfe0a0000 0x00 0x20000>; + interrupts = <0x00 0x2d 0x04>; + clocks = <0x23 0xe6 0x23 0xe7 0x23 0x193 0x3a 0x02 0x23 0xde>; + clock-names = "iahb\0isfr\0cec\0ref\0hclk"; + power-domains = <0x25 0x09>; + reg-io-width = <0x04>; + rockchip,grf = <0x3b>; + #sound-dai-cells = <0x00>; + pinctrl-names = "default"; + pinctrl-0 = <0xaa 0xab 0xac>; + status = "okay"; + phandle = <0x147>; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + reg = <0x00>; + #address-cells = <0x01>; + #size-cells = <0x00>; + + endpoint@0 { + reg = <0x00>; + remote-endpoint = <0x1a>; + status = "okay"; + phandle = <0x9e>; + }; + + endpoint@1 { + reg = <0x01>; + remote-endpoint = <0xad>; + status = "disabled"; + phandle = <0xa2>; + }; + }; + }; + }; + + edp@fe0c0000 { + compatible = "rockchip,rk3568-edp"; + reg = <0x00 0xfe0c0000 0x00 0x10000>; + interrupts = <0x00 0x12 0x04>; + clocks = <0x3a 0x29 0x23 0xea 0x23 0xeb 0x23 0xda>; + clock-names = "dp\0pclk\0spdif\0hclk"; + resets = <0x23 0x113 0x23 0x112>; + reset-names = "dp\0apb"; + phys = <0xae>; + phy-names = "dp"; + power-domains = <0x25 0x09>; + status = "disabled"; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + reg = <0x00>; + #address-cells = <0x01>; + #size-cells = <0x00>; + + endpoint@0 { + reg = <0x00>; + remote-endpoint = <0x19>; + status = "disabled"; + phandle = <0x9d>; + }; + + endpoint@1 { + reg = <0x01>; + remote-endpoint = <0xaf>; + status = "disabled"; + phandle = <0xa1>; + }; + }; + }; + }; + + nocp-cpu@fe102000 { + compatible = "rockchip,rk3568-nocp"; + reg = <0x00 0xfe102000 0x00 0x400>; + phandle = <0xb5>; + }; + + nocp-gpu-vpu-rga-venc@fe102400 { + compatible = "rockchip,rk3568-nocp"; + reg = <0x00 0xfe102400 0x00 0x400>; + }; + + nocp-vdec@fe102800 { + compatible = "rockchip,rk3568-nocp"; + reg = <0x00 0xfe102800 0x00 0x400>; + }; + + nocp-vi-usb-peri-pipe@fe102c00 { + compatible = "rockchip,rk3568-nocp"; + reg = <0x00 0xfe102c00 0x00 0x400>; + }; + + nocp-vo@fe103000 { + compatible = "rockchip,rk3568-nocp"; + reg = <0x00 0xfe103000 0x00 0x400>; + }; + + qos@fe128000 { + compatible = "syscon"; + reg = <0x00 0xfe128000 0x00 0x20>; + phandle = <0x55>; + }; + + qos@fe138080 { + compatible = "syscon"; + reg = <0x00 0xfe138080 0x00 0x20>; + phandle = <0x64>; + }; + + qos@fe138100 { + compatible = "syscon"; + reg = <0x00 0xfe138100 0x00 0x20>; + phandle = <0x65>; + }; + + qos@fe138180 { + compatible = "syscon"; + reg = <0x00 0xfe138180 0x00 0x20>; + phandle = <0x66>; + }; + + qos@fe148000 { + compatible = "syscon"; + reg = <0x00 0xfe148000 0x00 0x20>; + phandle = <0x56>; + }; + + qos@fe148080 { + compatible = "syscon"; + reg = <0x00 0xfe148080 0x00 0x20>; + phandle = <0x57>; + }; + + qos@fe148100 { + compatible = "syscon"; + reg = <0x00 0xfe148100 0x00 0x20>; + phandle = <0x58>; + }; + + qos@fe150000 { + compatible = "syscon"; + reg = <0x00 0xfe150000 0x00 0x20>; + phandle = <0x62>; + }; + + qos@fe158000 { + compatible = "syscon"; + reg = <0x00 0xfe158000 0x00 0x20>; + phandle = <0x5c>; + }; + + qos@fe158100 { + compatible = "syscon"; + reg = <0x00 0xfe158100 0x00 0x20>; + phandle = <0x5d>; + }; + + qos@fe158180 { + compatible = "syscon"; + reg = <0x00 0xfe158180 0x00 0x20>; + phandle = <0x5e>; + }; + + qos@fe158200 { + compatible = "syscon"; + reg = <0x00 0xfe158200 0x00 0x20>; + phandle = <0x5f>; + }; + + qos@fe158280 { + compatible = "syscon"; + reg = <0x00 0xfe158280 0x00 0x20>; + phandle = <0x60>; + }; + + qos@fe158300 { + compatible = "syscon"; + reg = <0x00 0xfe158300 0x00 0x20>; + phandle = <0x61>; + }; + + qos@fe180000 { + compatible = "syscon"; + reg = <0x00 0xfe180000 0x00 0x20>; + phandle = <0x54>; + }; + + qos@fe190000 { + compatible = "syscon"; + reg = <0x00 0xfe190000 0x00 0x20>; + phandle = <0x67>; + }; + + qos@fe190080 { + compatible = "syscon"; + reg = <0x00 0xfe190080 0x00 0x20>; + phandle = <0x68>; + }; + + qos@fe190100 { + compatible = "syscon"; + reg = <0x00 0xfe190100 0x00 0x20>; + phandle = <0x69>; + }; + + qos@fe190200 { + compatible = "syscon"; + reg = <0x00 0xfe190200 0x00 0x20>; + phandle = <0x6a>; + }; + + qos@fe190280 { + compatible = "syscon"; + reg = <0x00 0xfe190280 0x00 0x20>; + phandle = <0x6b>; + }; + + qos@fe190300 { + compatible = "syscon"; + reg = <0x00 0xfe190300 0x00 0x20>; + phandle = <0x6c>; + }; + + qos@fe190380 { + compatible = "syscon"; + reg = <0x00 0xfe190380 0x00 0x20>; + phandle = <0x6d>; + }; + + qos@fe190400 { + compatible = "syscon"; + reg = <0x00 0xfe190400 0x00 0x20>; + phandle = <0x6e>; + }; + + qos@fe198000 { + compatible = "syscon"; + reg = <0x00 0xfe198000 0x00 0x20>; + phandle = <0x63>; + }; + + qos@fe1a8000 { + compatible = "syscon"; + reg = <0x00 0xfe1a8000 0x00 0x20>; + phandle = <0x59>; + }; + + qos@fe1a8080 { + compatible = "syscon"; + reg = <0x00 0xfe1a8080 0x00 0x20>; + phandle = <0x5a>; + }; + + qos@fe1a8100 { + compatible = "syscon"; + reg = <0x00 0xfe1a8100 0x00 0x20>; + phandle = <0x5b>; + }; + + dwmmc@fe000000 { + compatible = "rockchip,rk3568-dw-mshc\0rockchip,rk3288-dw-mshc"; + reg = <0x00 0xfe000000 0x00 0x4000>; + interrupts = <0x00 0x64 0x04>; + max-frequency = <0x8f0d180>; + clocks = <0x23 0xc1 0x23 0xc2 0x23 0x18e 0x23 0x18f>; + clock-names = "biu\0ciu\0ciu-drive\0ciu-sample"; + fifo-depth = <0x100>; + resets = <0x23 0xeb>; + reset-names = "reset"; + status = "okay"; + no-sd; + no-mmc; + bus-width = <0x04>; + disable-wp; + cap-sd-highspeed; + cap-sdio-irq; + keep-power-in-suspend; + pinctrl-names = "default"; + pinctrl-0 = <0xb0 0xb1 0xb2>; + sd-uhs-sdr104; + mmc-pwrseq = <0xb3>; + non-removable; + }; + + dfi@fe230000 { + reg = <0x00 0xfe230000 0x00 0x400>; + compatible = "rockchip,rk3568-dfi"; + rockchip,pmugrf = <0x3c>; + status = "okay"; + phandle = <0xb4>; + }; + + dmc { + compatible = "rockchip,rk3568-dmc"; + interrupts = <0x00 0x0a 0x04>; + interrupt-names = "complete"; + devfreq-events = <0xb4 0xb5>; + clocks = <0x02 0x03>; + clock-names = "dmc_clk"; + operating-points-v2 = <0xb6>; + vop-bw-dmc-freq = <0x00 0x11e 0x4f1a0 0x11f 0x1869f 0x80e80>; + vop-frame-bw-dmc-freq = <0x00 0x26c 0x4f1a0 0x26d 0x1869f 0xbe6e0>; + cpu-bw-dmc-freq = <0x00 0x15e 0x4f1a0 0x15f 0x190 0x80e80 0x191 0x1869f 0xbe6e0>; + upthreshold = <0x28>; + downdifferential = <0x14>; + system-status-level = <0x01 0x04 0x08 0x08 0x02 0x01 0x10 0x04 0x10000 0x04 0x1000 0x08 0x4000 0x08 0x2000 0x08 0xc00 0x08>; + auto-min-freq = <0x4f1a0>; + auto-freq-en = <0x01>; + #cooling-cells = <0x02>; + status = "okay"; + center-supply = <0x75>; + phandle = <0x16>; + }; + + dmc-fsp { + compatible = "rockchip,rk3568-dmc-fsp"; + debug_print_level = <0x00>; + ddr3_params = <0xb7>; + ddr4_params = <0xb8>; + lpddr3_params = <0xb9>; + lpddr4_params = <0xba>; + lpddr4x_params = <0xbb>; + status = "okay"; + }; + + dmc-opp-table { + compatible = "operating-points-v2"; + mbist-vmin = <0xc96a8 0xdbba0 0xe7ef0>; + nvmem-cells = <0x85 0x07 0x08 0xbc 0x0a 0x0b>; + nvmem-cell-names = "leakage\0pvtm\0mbist-vmin\0opp-info\0specification_serial_number\0remark_spec_serial_number"; + rockchip,supported-hw; + rockchip,max-volt = <0xf4240>; + rockchip,temp-hysteresis = <0x1388>; + rockchip,low-temp = <0x00>; + rockchip,low-temp-adjust-volt = <0x00 0x618 0x124f8>; + rockchip,leakage-voltage-sel = <0x01 0x50 0x00 0x51 0xfe 0x01>; + rockchip,pvtm-voltage-sel = <0x00 0x14820 0x00 0x14821 0x186a0 0x01>; + rockchip,pvtm-ch = <0x00 0x05>; + phandle = <0xb6>; + + opp-1560000000 { + opp-supported-hw = <0xf9 0xffff>; + opp-hz = <0x00 0x5cfbb600>; + opp-microvolt = <0xdbba0 0xdbba0 0xf4240>; + opp-microvolt-L0 = <0xdbba0 0xdbba0 0xf4240>; + opp-microvolt-L1 = <0xd59f8 0xd59f8 0xf4240>; + }; + + opp-j-m-1560000000 { + opp-supported-hw = <0x06 0xffff>; + opp-hz = <0x00 0x5cfbb600>; + opp-microvolt = <0xd59f8 0xd59f8 0xf4240>; + }; + }; + + pcie@fe260000 { + compatible = "rockchip,rk3568-pcie\0snps,dw-pcie"; + #address-cells = <0x03>; + #size-cells = <0x02>; + bus-range = <0x00 0x0f>; + clocks = <0x23 0x81 0x23 0x82 0x23 0x83 0x23 0x84 0x23 0x85>; + clock-names = "aclk_mst\0aclk_slv\0aclk_dbi\0pclk\0aux"; + device_type = "pci"; + interrupts = <0x00 0x4b 0x04 0x00 0x4a 0x04 0x00 0x49 0x04 0x00 0x48 0x04 0x00 0x47 0x04>; + interrupt-names = "sys\0pmc\0msg\0legacy\0err"; + #interrupt-cells = <0x01>; + interrupt-map-mask = <0x00 0x00 0x00 0x07>; + interrupt-map = <0x00 0x00 0x00 0x01 0xbd 0x00 0x00 0x00 0x00 0x02 0xbd 0x01 0x00 0x00 0x00 0x03 0xbd 0x02 0x00 0x00 0x00 0x04 0xbd 0x03>; + linux,pci-domain = <0x00>; + num-ib-windows = <0x06>; + num-viewport = <0x08>; + num-ob-windows = <0x02>; + max-link-speed = <0x02>; + msi-map = <0x00 0xbe 0x00 0x1000>; + num-lanes = <0x01>; + phys = <0x27 0x02>; + phy-names = "pcie-phy"; + power-domains = <0x25 0x0f>; + ranges = <0x800 0x00 0xf4000000 0x00 0xf4000000 0x00 0x100000 0x81000000 0x00 0xf4100000 0x00 0xf4100000 0x00 0x100000 0x82000000 0x00 0xf4200000 0x00 0xf4200000 0x00 0x1e00000 0xc3000000 0x03 0x00 0x03 0x00 0x00 0x40000000>; + reg = <0x03 0xc0000000 0x00 0x400000 0x00 0xfe260000 0x00 0x10000>; + reg-names = "pcie-dbi\0pcie-apb"; + resets = <0x23 0xa1>; + reset-names = "pipe"; + status = "disabled"; + + legacy-interrupt-controller { + interrupt-controller; + #address-cells = <0x00>; + #interrupt-cells = <0x01>; + interrupt-parent = <0x01>; + interrupts = <0x00 0x48 0x01>; + phandle = <0xbd>; + }; + }; + + pcie@fe270000 { + compatible = "rockchip,rk3568-pcie\0snps,dw-pcie"; + #address-cells = <0x03>; + #size-cells = <0x02>; + bus-range = <0x10 0x1f>; + clocks = <0x23 0x88 0x23 0x89 0x23 0x8a 0x23 0x8b 0x23 0x8c>; + clock-names = "aclk_mst\0aclk_slv\0aclk_dbi\0pclk\0aux"; + device_type = "pci"; + interrupts = <0x00 0xa0 0x04 0x00 0x9f 0x04 0x00 0x9e 0x04 0x00 0x9d 0x04 0x00 0x9c 0x04>; + interrupt-names = "sys\0pmc\0msg\0legacy\0err"; + #interrupt-cells = <0x01>; + interrupt-map-mask = <0x00 0x00 0x00 0x07>; + interrupt-map = <0x00 0x00 0x00 0x01 0xbf 0x00 0x00 0x00 0x00 0x02 0xbf 0x01 0x00 0x00 0x00 0x03 0xbf 0x02 0x00 0x00 0x00 0x04 0xbf 0x03>; + linux,pci-domain = <0x01>; + num-ib-windows = <0x06>; + num-ob-windows = <0x02>; + num-viewport = <0x08>; + max-link-speed = <0x03>; + msi-map = <0x1000 0xbe 0x1000 0x1000>; + num-lanes = <0x01>; + phys = <0xc0>; + phy-names = "pcie-phy"; + power-domains = <0x25 0x0f>; + ranges = <0x800 0x00 0xf2000000 0x00 0xf2000000 0x00 0x100000 0x81000000 0x00 0xf2100000 0x00 0xf2100000 0x00 0x100000 0x82000000 0x00 0xf2200000 0x00 0xf2200000 0x00 0x1e00000 0xc3000000 0x03 0x40000000 0x03 0x40000000 0x00 0x40000000>; + reg = <0x03 0xc0400000 0x00 0x400000 0x00 0xfe270000 0x00 0x10000>; + reg-names = "pcie-dbi\0pcie-apb"; + resets = <0x23 0xb1>; + reset-names = "pipe"; + status = "disabled"; + + legacy-interrupt-controller { + interrupt-controller; + #address-cells = <0x00>; + #interrupt-cells = <0x01>; + interrupt-parent = <0x01>; + interrupts = <0x00 0x9d 0x01>; + phandle = <0xbf>; + }; + }; + + pcie@fe280000 { + compatible = "rockchip,rk3568-pcie\0snps,dw-pcie"; + #address-cells = <0x03>; + #size-cells = <0x02>; + bus-range = <0x20 0x2f>; + clocks = <0x23 0x8f 0x23 0x90 0x23 0x91 0x23 0x92 0x23 0x93>; + clock-names = "aclk_mst\0aclk_slv\0aclk_dbi\0pclk\0aux"; + device_type = "pci"; + interrupts = <0x00 0xa5 0x04 0x00 0xa4 0x04 0x00 0xa3 0x04 0x00 0xa2 0x04 0x00 0xa1 0x04>; + interrupt-names = "sys\0pmc\0msg\0legacy\0err"; + #interrupt-cells = <0x01>; + interrupt-map-mask = <0x00 0x00 0x00 0x07>; + interrupt-map = <0x00 0x00 0x00 0x01 0xc1 0x00 0x00 0x00 0x00 0x02 0xc1 0x01 0x00 0x00 0x00 0x03 0xc1 0x02 0x00 0x00 0x00 0x04 0xc1 0x03>; + linux,pci-domain = <0x02>; + num-ib-windows = <0x06>; + num-viewport = <0x08>; + num-ob-windows = <0x02>; + max-link-speed = <0x03>; + msi-map = <0x2000 0xbe 0x2000 0x1000>; + num-lanes = <0x02>; + phys = <0xc0>; + phy-names = "pcie-phy"; + power-domains = <0x25 0x0f>; + ranges = <0x800 0x00 0xf0000000 0x00 0xf0000000 0x00 0x100000 0x81000000 0x00 0xf0100000 0x00 0xf0100000 0x00 0x100000 0x82000000 0x00 0xf0200000 0x00 0xf0200000 0x00 0x1e00000 0xc3000000 0x03 0x80000000 0x03 0x80000000 0x00 0x40000000>; + reg = <0x03 0xc0800000 0x00 0x400000 0x00 0xfe280000 0x00 0x10000>; + reg-names = "pcie-dbi\0pcie-apb"; + resets = <0x23 0xc1>; + reset-names = "pipe"; + status = "okay"; + reset-gpios = <0x91 0x1e 0x00>; + vpcie3v3-supply = <0xc2>; + + legacy-interrupt-controller { + interrupt-controller; + #address-cells = <0x00>; + #interrupt-cells = <0x01>; + interrupt-parent = <0x01>; + interrupts = <0x00 0xa2 0x01>; + phandle = <0xc1>; + }; + }; + + uio@fe2a0000 { + compatible = "rockchip,uio-gmac"; + reg = <0x00 0xfe2a0000 0x00 0x10000>; + rockchip,ethernet = <0xc3>; + status = "disabled"; + }; + + ethernet@fe2a0000 { + local-mac-address = [5a 4f fd 70 05 c6]; + compatible = "rockchip,rk3568-gmac\0snps,dwmac-4.20a"; + reg = <0x00 0xfe2a0000 0x00 0x10000>; + interrupts = <0x00 0x1b 0x04 0x00 0x18 0x04>; + interrupt-names = "macirq\0eth_wake_irq"; + rockchip,grf = <0x3b>; + clocks = <0x23 0x182 0x23 0x185 0x23 0x185 0x23 0xb8 0x23 0xb4 0x23 0xb5 0x23 0x185 0x23 0xb9 0x23 0xac 0x23 0xab>; + clock-names = "stmmaceth\0mac_clk_rx\0mac_clk_tx\0clk_mac_refout\0aclk_mac\0pclk_mac\0clk_mac_speed\0ptp_ref\0pclk_xpcs\0clk_xpcs_eee"; + resets = <0x23 0xd7>; + reset-names = "stmmaceth"; + snps,mixed-burst; + snps,tso; + snps,axi-config = <0xc4>; + snps,mtl-rx-config = <0xc5>; + snps,mtl-tx-config = <0xc6>; + status = "okay"; + phy-mode = "rgmii"; + clock_in_out = "input"; + snps,reset-gpio = <0x91 0x1b 0x01>; + snps,reset-active-low; + snps,reset-delays-us = <0x00 0x4e20 0x186a0>; + assigned-clocks = <0x23 0x185 0x23 0x182>; + assigned-clock-parents = <0x23 0x183 0xc7>; + pinctrl-names = "default"; + pinctrl-0 = <0xc8 0xc9 0xca 0xcb 0xcc 0xcd>; + tx_delay = <0x4a>; + rx_delay = <0x2e>; + phy-handle = <0xce>; + phandle = <0xc3>; + + mdio { + compatible = "snps,dwmac-mdio"; + #address-cells = <0x01>; + #size-cells = <0x00>; + + phy@0 { + compatible = "ethernet-phy-ieee802.3-c22"; + reg = <0x00>; + led_status_value = <0x6940>; + phandle = <0xce>; + }; + }; + + stmmac-axi-config { + snps,wr_osr_lmt = <0x04>; + snps,rd_osr_lmt = <0x08>; + snps,blen = <0x00 0x00 0x00 0x00 0x10 0x08 0x04>; + phandle = <0xc4>; + }; + + rx-queues-config { + snps,rx-queues-to-use = <0x01>; + phandle = <0xc5>; + + queue0 { + }; + }; + + tx-queues-config { + snps,tx-queues-to-use = <0x01>; + phandle = <0xc6>; + + queue0 { + }; + }; + }; + + dwmmc@fe2b0000 { + compatible = "rockchip,rk3568-dw-mshc\0rockchip,rk3288-dw-mshc"; + reg = <0x00 0xfe2b0000 0x00 0x4000>; + interrupts = <0x00 0x62 0x04>; + max-frequency = <0x8f0d180>; + clocks = <0x23 0xb0 0x23 0xb1 0x23 0x18a 0x23 0x18b>; + clock-names = "biu\0ciu\0ciu-drive\0ciu-sample"; + fifo-depth = <0x100>; + resets = <0x23 0xd4>; + reset-names = "reset"; + status = "okay"; + no-sdio; + no-mmc; + bus-width = <0x04>; + cap-mmc-highspeed; + cap-sd-highspeed; + disable-wp; + sd-uhs-sdr104; + vmmc-supply = <0xcf>; + vqmmc-supply = <0x31>; + pinctrl-names = "default"; + pinctrl-0 = <0xd0 0xd1 0xd2 0xd3>; + }; + + dwmmc@fe2c0000 { + compatible = "rockchip,rk3568-dw-mshc\0rockchip,rk3288-dw-mshc"; + reg = <0x00 0xfe2c0000 0x00 0x4000>; + interrupts = <0x00 0x63 0x04>; + max-frequency = <0x8f0d180>; + clocks = <0x23 0xb2 0x23 0xb3 0x23 0x18c 0x23 0x18d>; + clock-names = "biu\0ciu\0ciu-drive\0ciu-sample"; + fifo-depth = <0x100>; + resets = <0x23 0xd6>; + reset-names = "reset"; + status = "disabled"; + }; + + spi@fe300000 { + compatible = "rockchip,sfc"; + reg = <0x00 0xfe300000 0x00 0x4000>; + interrupts = <0x00 0x65 0x04>; + clocks = <0x23 0x78 0x23 0x76>; + clock-names = "clk_sfc\0hclk_sfc"; + assigned-clocks = <0x23 0x78>; + assigned-clock-rates = <0x2faf080>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "okay"; + pinctrl-names = "default"; + pinctrl-0 = <0xd4>; + + flash@0 { + compatible = "jedec,spi-nor"; + reg = <0x00>; + spi-max-frequency = <0x2faf080>; + spi-rx-bus-width = <0x01>; + spi-tx-bus-width = <0x01>; + }; + }; + + sdhci@fe310000 { + compatible = "rockchip,rk3568-dwcmshc\0rockchip,dwcmshc-sdhci"; + reg = <0x00 0xfe310000 0x00 0x10000>; + interrupts = <0x00 0x13 0x04>; + assigned-clocks = <0x23 0x7b 0x23 0x7d 0x23 0x7c>; + assigned-clock-rates = <0xbebc200 0x16e3600 0xbebc200>; + clocks = <0x23 0x7c 0x23 0x7a 0x23 0x79 0x23 0x7b 0x23 0x7d>; + clock-names = "core\0bus\0axi\0block\0timer"; + resets = <0x23 0x78 0x23 0x76 0x23 0x75 0x23 0x77 0x23 0x79>; + reset-names = "core\0bus\0axi\0block\0timer"; + status = "okay"; + bus-width = <0x08>; + no-sdio; + no-sd; + non-removable; + max-frequency = <0xbebc200>; + full-pwr-cycle-in-suspend; + }; + + nandc@fe330000 { + compatible = "rockchip,rk-nandc-v9"; + reg = <0x00 0xfe330000 0x00 0x4000>; + interrupts = <0x00 0x46 0x04>; + nandc_id = <0x00>; + clocks = <0x23 0x75 0x23 0x74>; + clock-names = "clk_nandc\0hclk_nandc"; + status = "okay"; + #address-cells = <0x01>; + #size-cells = <0x00>; + + nand@0 { + reg = <0x00>; + nand-bus-width = <0x08>; + nand-ecc-mode = "hw"; + nand-ecc-strength = <0x10>; + nand-ecc-step-size = <0x400>; + }; + }; + + crypto@fe380000 { + compatible = "rockchip,rk3568-crypto"; + reg = <0x00 0xfe380000 0x00 0x4000>; + interrupts = <0x00 0x04 0x04>; + clocks = <0x23 0x6a 0x23 0x6b 0x23 0x6c 0x23 0x6d>; + clock-names = "aclk\0hclk\0sclk\0apb_pclk"; + assigned-clocks = <0x23 0x6c>; + assigned-clock-rates = <0xbebc200>; + resets = <0x23 0x69>; + reset-names = "crypto-rst"; + status = "disabled"; + }; + + rng@fe388000 { + compatible = "rockchip,cryptov2-rng"; + reg = <0x00 0xfe388000 0x00 0x2000>; + clocks = <0x23 0x70 0x23 0x6f>; + clock-names = "clk_trng\0hclk_trng"; + resets = <0x23 0x6d>; + reset-names = "reset"; + status = "okay"; + }; + + otp@fe38c000 { + compatible = "rockchip,rk3568-otp"; + reg = <0x00 0xfe38c000 0x00 0x4000>; + #address-cells = <0x01>; + #size-cells = <0x01>; + clocks = <0x23 0x73 0x23 0x72 0x23 0x71 0x23 0x181>; + clock-names = "usr\0sbpi\0apb\0phy"; + resets = <0x23 0x1cf>; + reset-names = "otp_phy"; + + cpu-code@2 { + reg = <0x02 0x02>; + phandle = <0x12>; + }; + + specification-serial-number@7 { + reg = <0x07 0x01>; + bits = <0x00 0x05>; + phandle = <0x0a>; + }; + + cpu-version@8 { + reg = <0x08 0x01>; + bits = <0x03 0x03>; + phandle = <0x11>; + }; + + mbist-vmin@9 { + reg = <0x09 0x01>; + bits = <0x00 0x04>; + phandle = <0x08>; + }; + + id@a { + reg = <0x0a 0x10>; + phandle = <0x10>; + }; + + cpu-leakage@1a { + reg = <0x1a 0x01>; + phandle = <0x06>; + }; + + log-leakage@1b { + reg = <0x1b 0x01>; + phandle = <0x85>; + }; + + npu-leakage@1c { + reg = <0x1c 0x01>; + phandle = <0x72>; + }; + + gpu-leakage@1d { + reg = <0x1d 0x01>; + phandle = <0x78>; + }; + + core-pvtm@2a { + reg = <0x2a 0x02>; + phandle = <0x07>; + }; + + cpu-tsadc-trim-l@2e { + reg = <0x2e 0x01>; + phandle = <0x125>; + }; + + cpu-tsadc-trim-h@2f { + reg = <0x2f 0x01>; + bits = <0x00 0x04>; + phandle = <0x126>; + }; + + npu-tsadc-trim-l@30 { + reg = <0x30 0x01>; + phandle = <0x127>; + }; + + npu-tsadc-trim-h@31 { + reg = <0x31 0x01>; + bits = <0x00 0x04>; + phandle = <0x128>; + }; + + tsadc-trim-base-frac@31 { + reg = <0x31 0x01>; + bits = <0x04 0x04>; + phandle = <0x122>; + }; + + tsadc-trim-base@32 { + reg = <0x32 0x01>; + phandle = <0x121>; + }; + + cpu-opp-info@36 { + reg = <0x36 0x06>; + phandle = <0x09>; + }; + + gpu-opp-info@3c { + reg = <0x3c 0x06>; + phandle = <0x79>; + }; + + npu-opp-info@42 { + reg = <0x42 0x06>; + phandle = <0x73>; + }; + + dmc-opp-info@48 { + reg = <0x48 0x06>; + phandle = <0xbc>; + }; + + remark-spec-serial-number@56 { + reg = <0x56 0x01>; + bits = <0x00 0x05>; + phandle = <0x0b>; + }; + }; + + i2s@fe400000 { + compatible = "rockchip,rk3568-i2s-tdm"; + reg = <0x00 0xfe400000 0x00 0x1000>; + interrupts = <0x00 0x34 0x04>; + clocks = <0x23 0x3f 0x23 0x43 0x23 0x39>; + clock-names = "mclk_tx\0mclk_rx\0hclk"; + dmas = <0xd5 0x00>; + dma-names = "tx"; + resets = <0x23 0x50 0x23 0x51>; + reset-names = "tx-m\0rx-m"; + rockchip,cru = <0x23>; + rockchip,grf = <0x3b>; + rockchip,playback-only; + #sound-dai-cells = <0x00>; + status = "okay"; + phandle = <0x146>; + }; + + i2s@fe410000 { + compatible = "rockchip,rk3568-i2s-tdm"; + reg = <0x00 0xfe410000 0x00 0x1000>; + interrupts = <0x00 0x35 0x04>; + clocks = <0x23 0x47 0x23 0x4b 0x23 0x3a>; + clock-names = "mclk_tx\0mclk_rx\0hclk"; + dmas = <0xd5 0x02 0xd5 0x03>; + dma-names = "tx\0rx"; + resets = <0x23 0x52 0x23 0x53>; + reset-names = "tx-m\0rx-m"; + rockchip,cru = <0x23>; + rockchip,grf = <0x3b>; + #sound-dai-cells = <0x00>; + pinctrl-names = "default"; + pinctrl-0 = <0xd6 0xd7 0xd8 0xd9>; + status = "okay"; + rockchip,clk-trcm = <0x01>; + phandle = <0xe8>; + }; + + i2s@fe420000 { + compatible = "rockchip,rk3568-i2s-tdm"; + reg = <0x00 0xfe420000 0x00 0x1000>; + interrupts = <0x00 0x36 0x04>; + clocks = <0x23 0x4f 0x23 0x4f 0x23 0x3b>; + clock-names = "mclk_tx\0mclk_rx\0hclk"; + dmas = <0xd5 0x04 0xd5 0x05>; + dma-names = "tx\0rx"; + rockchip,cru = <0x23>; + rockchip,grf = <0x3b>; + rockchip,clk-trcm = <0x01>; + #sound-dai-cells = <0x00>; + pinctrl-names = "default"; + pinctrl-0 = <0xda 0xdb 0xdc 0xdd>; + status = "disabled"; + }; + + i2s@fe430000 { + compatible = "rockchip,rk3568-i2s-tdm"; + reg = <0x00 0xfe430000 0x00 0x1000>; + interrupts = <0x00 0x37 0x04>; + clocks = <0x23 0x53 0x23 0x57 0x23 0x3c>; + clock-names = "mclk_tx\0mclk_rx\0hclk"; + dmas = <0xd5 0x06 0xd5 0x07>; + dma-names = "tx\0rx"; + resets = <0x23 0x55 0x23 0x56>; + reset-names = "tx-m\0rx-m"; + rockchip,cru = <0x23>; + rockchip,grf = <0x3b>; + rockchip,clk-trcm = <0x01>; + #sound-dai-cells = <0x00>; + pinctrl-names = "default"; + pinctrl-0 = <0xde 0xdf 0xe0 0xe1>; + status = "disabled"; + phandle = <0x144>; + }; + + pdm@fe440000 { + compatible = "rockchip,rk3568-pdm\0rockchip,pdm"; + reg = <0x00 0xfe440000 0x00 0x1000>; + clocks = <0x23 0x5a 0x23 0x59>; + clock-names = "pdm_clk\0pdm_hclk"; + dmas = <0xd5 0x09>; + dma-names = "rx"; + pinctrl-names = "default"; + pinctrl-0 = <0xe2 0xe3 0xe4 0xe5 0xe6 0xe7>; + #sound-dai-cells = <0x00>; + status = "disabled"; + phandle = <0x149>; + }; + + vad@fe450000 { + compatible = "rockchip,rk3568-vad"; + reg = <0x00 0xfe450000 0x00 0x10000>; + reg-names = "vad"; + clocks = <0x23 0x5b>; + clock-names = "hclk"; + interrupts = <0x00 0x89 0x04>; + rockchip,audio-src = <0xe8>; + rockchip,det-channel = <0x00>; + rockchip,mode = <0x00>; + #sound-dai-cells = <0x00>; + status = "disabled"; + rockchip,buffer-time-ms = <0x80>; + phandle = <0x14e>; + }; + + spdif@fe460000 { + compatible = "rockchip,rk3568-spdif"; + reg = <0x00 0xfe460000 0x00 0x1000>; + interrupts = <0x00 0x66 0x04>; + dmas = <0xd5 0x01>; + dma-names = "tx"; + clock-names = "mclk\0hclk"; + clocks = <0x23 0x5f 0x23 0x5c>; + #sound-dai-cells = <0x00>; + pinctrl-names = "default"; + pinctrl-0 = <0xe9>; + status = "disabled"; + phandle = <0x14c>; + }; + + audpwm@fe470000 { + compatible = "rockchip,rk3568-audio-pwm\0rockchip,audio-pwm-v1"; + reg = <0x00 0xfe470000 0x00 0x1000>; + clocks = <0x23 0x63 0x23 0x60>; + clock-names = "clk\0hclk"; + dmas = <0xd5 0x08>; + dma-names = "tx"; + #sound-dai-cells = <0x00>; + rockchip,sample-width-bits = <0x0b>; + rockchip,interpolat-points = <0x01>; + status = "disabled"; + }; + + codec-digital@fe478000 { + compatible = "rockchip,rk3568-codec-digital\0rockchip,codec-digital-v1"; + reg = <0x00 0xfe478000 0x00 0x1000>; + clocks = <0x23 0x67 0x23 0x66 0x23 0x65 0x23 0x64>; + clock-names = "adc\0dac\0i2c\0pclk"; + pinctrl-names = "default"; + pinctrl-0 = <0xea>; + resets = <0x23 0x5f>; + reset-names = "reset"; + rockchip,grf = <0x3b>; + #sound-dai-cells = <0x00>; + status = "disabled"; + phandle = <0x145>; + }; + + dmac@fe530000 { + compatible = "arm,pl330\0arm,primecell"; + reg = <0x00 0xfe530000 0x00 0x4000>; + interrupts = <0x00 0x0e 0x04 0x00 0x0d 0x04>; + clocks = <0x23 0x10d>; + clock-names = "apb_pclk"; + #dma-cells = <0x01>; + arm,pl330-periph-burst; + phandle = <0x4e>; + }; + + dmac@fe550000 { + compatible = "arm,pl330\0arm,primecell"; + reg = <0x00 0xfe550000 0x00 0x4000>; + interrupts = <0x00 0x10 0x04 0x00 0x0f 0x04>; + clocks = <0x23 0x10d>; + clock-names = "apb_pclk"; + #dma-cells = <0x01>; + arm,pl330-periph-burst; + phandle = <0xd5>; + }; + + rkscr@fe560000 { + compatible = "rockchip-scr"; + reg = <0x00 0xfe560000 0x00 0x10000>; + interrupts = <0x00 0x61 0x04>; + pinctrl-names = "default"; + pinctrl-0 = <0xeb>; + clocks = <0x23 0x114>; + clock-names = "g_pclk_sim_card"; + status = "disabled"; + }; + + can@fe570000 { + compatible = "rockchip,rk3568-can-2.0"; + reg = <0x00 0xfe570000 0x00 0x1000>; + interrupts = <0x00 0x01 0x04>; + clocks = <0x23 0x141 0x23 0x140>; + clock-names = "baudclk\0apb_pclk"; + resets = <0x23 0x155 0x23 0x154>; + reset-names = "can\0can-apb"; + tx-fifo-depth = <0x01>; + rx-fifo-depth = <0x06>; + status = "disabled"; + }; + + can@fe580000 { + compatible = "rockchip,rk3568-can-2.0"; + reg = <0x00 0xfe580000 0x00 0x1000>; + interrupts = <0x00 0x02 0x04>; + clocks = <0x23 0x143 0x23 0x142>; + clock-names = "baudclk\0apb_pclk"; + resets = <0x23 0x157 0x23 0x156>; + reset-names = "can\0can-apb"; + tx-fifo-depth = <0x01>; + rx-fifo-depth = <0x06>; + status = "okay"; + assigned-clocks = <0x23 0x143>; + assigned-clock-rates = <0xbebc200>; + pinctrl-names = "default"; + pinctrl-0 = <0xec>; + }; + + can@fe590000 { + compatible = "rockchip,rk3568-can-2.0"; + reg = <0x00 0xfe590000 0x00 0x1000>; + interrupts = <0x00 0x03 0x04>; + clocks = <0x23 0x145 0x23 0x144>; + clock-names = "baudclk\0apb_pclk"; + resets = <0x23 0x159 0x23 0x158>; + reset-names = "can\0can-apb"; + tx-fifo-depth = <0x01>; + rx-fifo-depth = <0x06>; + status = "disabled"; + assigned-clocks = <0x23 0x145>; + assigned-clock-rates = <0xbebc200>; + pinctrl-names = "default"; + pinctrl-0 = <0xed>; + }; + + i2c@fe5a0000 { + compatible = "rockchip,rk3399-i2c"; + reg = <0x00 0xfe5a0000 0x00 0x1000>; + clocks = <0x23 0x148 0x23 0x147>; + clock-names = "i2c\0pclk"; + interrupts = <0x00 0x2f 0x04>; + pinctrl-names = "default"; + pinctrl-0 = <0xee>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "okay"; + clock-frequency = <0x186a0>; + + gpio@21 { + status = "disabled"; + compatible = "nxp,pca9555"; + reg = <0x21>; + gpio-controller; + #gpio-cells = <0x02>; + gpio-group-num = <0xc8>; + phandle = <0x102>; + }; + + gt1x@14 { + status = "disabled"; + compatible = "goodix,gt1x"; + reg = <0x14>; + pinctrl-names = "default"; + pinctrl-0 = <0xef>; + goodix,rst-gpio = <0x3f 0x0e 0x00>; + goodix,irq-gpio = <0x3f 0x0d 0x08>; + }; + }; + + i2c@fe5b0000 { + compatible = "rockchip,rk3399-i2c"; + reg = <0x00 0xfe5b0000 0x00 0x1000>; + clocks = <0x23 0x14a 0x23 0x149>; + clock-names = "i2c\0pclk"; + interrupts = <0x00 0x30 0x04>; + pinctrl-names = "default"; + pinctrl-0 = <0xf0>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "disabled"; + }; + + i2c@fe5c0000 { + compatible = "rockchip,rk3399-i2c"; + reg = <0x00 0xfe5c0000 0x00 0x1000>; + clocks = <0x23 0x14c 0x23 0x14b>; + clock-names = "i2c\0pclk"; + interrupts = <0x00 0x31 0x04>; + pinctrl-names = "default"; + pinctrl-0 = <0xf1>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "disabled"; + }; + + i2c@fe5d0000 { + compatible = "rockchip,rk3399-i2c"; + reg = <0x00 0xfe5d0000 0x00 0x1000>; + clocks = <0x23 0x14e 0x23 0x14d>; + clock-names = "i2c\0pclk"; + interrupts = <0x00 0x32 0x04>; + pinctrl-names = "default"; + pinctrl-0 = <0xf2>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "okay"; + clock-frequency = <0x61a80>; + + gc8034@37 { + compatible = "galaxycore,gc8034"; + status = "disabled"; + reg = <0x37>; + clocks = <0x23 0xd6>; + clock-names = "xvclk"; + pinctrl-names = "default"; + pinctrl-0 = <0xf3>; + reset-gpios = <0x4a 0x0e 0x01>; + pwdn-gpios = <0xf4 0x0c 0x01>; + rockchip,grf = <0x3b>; + rockchip,camera-module-index = <0x00>; + rockchip,camera-module-facing = "back"; + rockchip,camera-module-name = "RK-CMK-8M-2-v1"; + rockchip,camera-module-lens-name = "CK8401"; + + port { + + endpoint { + remote-endpoint = <0xf5>; + data-lanes = <0x01 0x02 0x03 0x04>; + phandle = <0x130>; + }; + }; + }; + + os04a10@36 { + status = "disabled"; + compatible = "ovti,os04a10"; + reg = <0x36>; + clocks = <0x23 0xd6>; + clock-names = "xvclk"; + power-domains = <0x25 0x08>; + pinctrl-names = "default"; + pinctrl-0 = <0xf3>; + reset-gpios = <0x4a 0x0e 0x01>; + pwdn-gpios = <0xf4 0x0c 0x00>; + rockchip,camera-module-index = <0x00>; + rockchip,camera-module-facing = "back"; + rockchip,camera-module-name = "CMK-OT1607-FV1"; + rockchip,camera-module-lens-name = "M12-40IRC-4MP-F16"; + + port { + + endpoint { + remote-endpoint = <0xf6>; + data-lanes = <0x01 0x02 0x03 0x04>; + phandle = <0x12f>; + }; + }; + }; + + ov5695@36 { + status = "disabled"; + compatible = "ovti,ov5695"; + reg = <0x36>; + clocks = <0x23 0xd6>; + clock-names = "xvclk"; + power-domains = <0x25 0x08>; + pinctrl-names = "default"; + pinctrl-0 = <0xf3>; + reset-gpios = <0x4a 0x0e 0x00>; + pwdn-gpios = <0xf4 0x0c 0x00>; + rockchip,camera-module-index = <0x00>; + rockchip,camera-module-facing = "back"; + rockchip,camera-module-name = "TongJu"; + rockchip,camera-module-lens-name = "CHT842-MD"; + + port { + + endpoint { + remote-endpoint = <0xf7>; + data-lanes = <0x01 0x02>; + phandle = <0x131>; + }; + }; + }; + + XC7160b@1b { + status = "okay"; + compatible = "firefly,xc7160"; + reg = <0x1b>; + clocks = <0x23 0xd6>; + clock-names = "xvclk"; + power-domains = <0x25 0x08>; + pinctrl-names = "default"; + pinctrl-0 = <0xf3>; + reset-gpios = <0x3f 0x1d 0x00>; + pwdn-gpios = <0xf4 0x0c 0x00>; + firefly,clkout-enabled-index = <0x00>; + rockchip,camera-module-index = <0x00>; + rockchip,camera-module-facing = "back"; + rockchip,camera-module-name = "NC"; + rockchip,camera-module-lens-name = "NC"; + + port { + + endpoint { + remote-endpoint = <0xf8>; + data-lanes = <0x01 0x02 0x03 0x04>; + phandle = <0x132>; + }; + }; + }; + + imx415@37 { + status = "okay"; + compatible = "sony,imx415"; + reg = <0x37>; + clocks = <0x23 0xd6>; + clock-names = "xvclk"; + power-domains = <0x25 0x08>; + pinctrl-names = "default"; + pinctrl-0 = <0xf3>; + reset-gpios = <0x3f 0x1d 0x01>; + pwdn-gpios = <0xf4 0x0c 0x00>; + firefly,clkout-enabled-index = <0x00>; + rockchip,camera-module-index = <0x00>; + rockchip,camera-module-facing = "back"; + rockchip,camera-module-name = "CMK-OT2022-PX1"; + rockchip,camera-module-lens-name = "IR0147-50IRC-8M-F20"; + + port { + + endpoint { + remote-endpoint = <0xf9>; + data-lanes = <0x01 0x02 0x03 0x04>; + phandle = <0x133>; + }; + }; + }; + }; + + i2c@fe5e0000 { + compatible = "rockchip,rk3399-i2c"; + reg = <0x00 0xfe5e0000 0x00 0x1000>; + clocks = <0x23 0x150 0x23 0x14f>; + clock-names = "i2c\0pclk"; + interrupts = <0x00 0x33 0x04>; + pinctrl-names = "default"; + pinctrl-0 = <0xfa>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "okay"; + + hym8563@51 { + status = "okay"; + compatible = "haoyu,hym8563"; + reg = <0x51>; + #clock-cells = <0x00>; + rtc-irq-gpio = <0x3f 0x1b 0x02>; + clock-frequency = <0x8000>; + }; + + mc3230sensor@4c { + compatible = "gs_mc3230"; + reg = <0x4c>; + type = <0x02>; + irq_enable = <0x00>; + poll_delay_ms = <0x1e>; + layout = <0x04>; + status = "okay"; + }; + + mxc6655xa@15 { + status = "disabled"; + compatible = "gs_mxc6655xa"; + pinctrl-names = "default"; + pinctrl-0 = <0xfb>; + reg = <0x15>; + irq-gpio = <0x4a 0x11 0x08>; + irq_enable = <0x00>; + poll_delay_ms = <0x1e>; + type = <0x02>; + power-off-in-suspend = <0x01>; + layout = <0x01>; + }; + }; + + timer@fe5f0000 { + compatible = "rockchip,rk3568-timer\0rockchip,rk3288-timer"; + reg = <0x00 0xfe5f0000 0x00 0x1000>; + interrupts = <0x00 0x6d 0x04>; + clocks = <0x23 0x16c 0x23 0x16d>; + clock-names = "pclk\0timer"; + }; + + watchdog@fe600000 { + compatible = "snps,dw-wdt"; + reg = <0x00 0xfe600000 0x00 0x100>; + clocks = <0x23 0x116 0x23 0x115>; + clock-names = "tclk\0pclk"; + interrupts = <0x00 0x95 0x04>; + status = "okay"; + }; + + spi@fe610000 { + compatible = "rockchip,rk3066-spi"; + reg = <0x00 0xfe610000 0x00 0x1000>; + interrupts = <0x00 0x67 0x04>; + #address-cells = <0x01>; + #size-cells = <0x00>; + clocks = <0x23 0x152 0x23 0x151>; + clock-names = "spiclk\0apb_pclk"; + dmas = <0x4e 0x14 0x4e 0x15>; + dma-names = "tx\0rx"; + pinctrl-names = "default\0high_speed"; + pinctrl-0 = <0xfc 0xfd 0xfe>; + pinctrl-1 = <0xfc 0xfd 0xff>; + num-cs = <0x02>; + status = "disabled"; + }; + + spi@fe620000 { + compatible = "rockchip,rk3066-spi"; + reg = <0x00 0xfe620000 0x00 0x1000>; + interrupts = <0x00 0x68 0x04>; + #address-cells = <0x01>; + #size-cells = <0x00>; + clocks = <0x23 0x154 0x23 0x153>; + clock-names = "spiclk\0apb_pclk"; + dmas = <0x4e 0x16 0x4e 0x17>; + dma-names = "tx\0rx"; + pinctrl-names = "default\0high_speed"; + pinctrl-0 = <0x100>; + pinctrl-1 = <0x101>; + num-cs = <0x02>; + status = "disabled"; + max-freq = <0x2dc6c00>; + dev-port = <0x00>; + + spi_wk2xxx@0 { + status = "disabled"; + compatible = "firefly,spi-wk2xxx"; + reg = <0x00>; + spi-max-frequency = <0x989680>; + power-gpio = <0x102 0x0f 0x00>; + reset-gpio = <0x102 0x09 0x00>; + irq-gpio = <0x3f 0x06 0x02>; + cs-gpio = <0x4a 0x01 0x00>; + }; + }; + + spi@fe630000 { + compatible = "rockchip,rk3066-spi"; + reg = <0x00 0xfe630000 0x00 0x1000>; + interrupts = <0x00 0x69 0x04>; + #address-cells = <0x01>; + #size-cells = <0x00>; + clocks = <0x23 0x156 0x23 0x155>; + clock-names = "spiclk\0apb_pclk"; + dmas = <0x4e 0x18 0x4e 0x19>; + dma-names = "tx\0rx"; + pinctrl-names = "default\0high_speed"; + pinctrl-0 = <0x103 0x104 0x105>; + pinctrl-1 = <0x103 0x104 0x106>; + num-cs = <0x02>; + status = "disabled"; + }; + + spi@fe640000 { + compatible = "rockchip,rk3066-spi"; + reg = <0x00 0xfe640000 0x00 0x1000>; + interrupts = <0x00 0x6a 0x04>; + #address-cells = <0x01>; + #size-cells = <0x00>; + clocks = <0x23 0x158 0x23 0x157>; + clock-names = "spiclk\0apb_pclk"; + dmas = <0x4e 0x1a 0x4e 0x1b>; + dma-names = "tx\0rx"; + pinctrl-names = "default\0high_speed"; + pinctrl-0 = <0x107 0x108 0x109>; + pinctrl-1 = <0x107 0x108 0x10a>; + num-cs = <0x02>; + status = "disabled"; + }; + + serial@fe650000 { + compatible = "rockchip,rk3568-uart\0snps,dw-apb-uart"; + reg = <0x00 0xfe650000 0x00 0x100>; + interrupts = <0x00 0x75 0x04>; + clocks = <0x23 0x11f 0x23 0x11c>; + clock-names = "baudclk\0apb_pclk"; + reg-shift = <0x02>; + reg-io-width = <0x04>; + dmas = <0x4e 0x02 0x4e 0x03>; + pinctrl-names = "default"; + pinctrl-0 = <0x10b>; + status = "disabled"; + }; + + serial@fe660000 { + compatible = "rockchip,rk3568-uart\0snps,dw-apb-uart"; + reg = <0x00 0xfe660000 0x00 0x100>; + interrupts = <0x00 0x76 0x04>; + clocks = <0x23 0x123 0x23 0x120>; + clock-names = "baudclk\0apb_pclk"; + reg-shift = <0x02>; + reg-io-width = <0x04>; + dmas = <0x4e 0x04 0x4e 0x05>; + pinctrl-names = "default"; + pinctrl-0 = <0x10c>; + status = "disabled"; + }; + + serial@fe670000 { + compatible = "rockchip,rk3568-uart\0snps,dw-apb-uart"; + reg = <0x00 0xfe670000 0x00 0x100>; + interrupts = <0x00 0x77 0x04>; + clocks = <0x23 0x127 0x23 0x124>; + clock-names = "baudclk\0apb_pclk"; + reg-shift = <0x02>; + reg-io-width = <0x04>; + dmas = <0x4e 0x06 0x4e 0x07>; + pinctrl-names = "default"; + pinctrl-0 = <0x10d>; + status = "okay"; + }; + + serial@fe680000 { + compatible = "rockchip,rk3568-uart\0snps,dw-apb-uart"; + reg = <0x00 0xfe680000 0x00 0x100>; + interrupts = <0x00 0x78 0x04>; + clocks = <0x23 0x12b 0x23 0x128>; + clock-names = "baudclk\0apb_pclk"; + reg-shift = <0x02>; + reg-io-width = <0x04>; + dmas = <0x4e 0x08 0x4e 0x09>; + pinctrl-names = "default"; + pinctrl-0 = <0x10e>; + status = "okay"; + }; + + serial@fe690000 { + compatible = "rockchip,rk3568-uart\0snps,dw-apb-uart"; + reg = <0x00 0xfe690000 0x00 0x100>; + interrupts = <0x00 0x79 0x04>; + clocks = <0x23 0x12f 0x23 0x12c>; + clock-names = "baudclk\0apb_pclk"; + reg-shift = <0x02>; + reg-io-width = <0x04>; + dmas = <0x4e 0x0a 0x4e 0x0b>; + pinctrl-names = "default"; + pinctrl-0 = <0x10f>; + status = "disabled"; + }; + + serial@fe6a0000 { + compatible = "rockchip,rk3568-uart\0snps,dw-apb-uart"; + reg = <0x00 0xfe6a0000 0x00 0x100>; + interrupts = <0x00 0x7a 0x04>; + clocks = <0x23 0x133 0x23 0x130>; + clock-names = "baudclk\0apb_pclk"; + reg-shift = <0x02>; + reg-io-width = <0x04>; + dmas = <0x4e 0x0c 0x4e 0x0d>; + pinctrl-names = "default"; + pinctrl-0 = <0x110>; + status = "disabled"; + }; + + serial@fe6b0000 { + compatible = "rockchip,rk3568-uart\0snps,dw-apb-uart"; + reg = <0x00 0xfe6b0000 0x00 0x100>; + interrupts = <0x00 0x7b 0x04>; + clocks = <0x23 0x137 0x23 0x134>; + clock-names = "baudclk\0apb_pclk"; + reg-shift = <0x02>; + reg-io-width = <0x04>; + dmas = <0x4e 0x0e 0x4e 0x0f>; + pinctrl-names = "default"; + pinctrl-0 = <0x111>; + status = "okay"; + }; + + serial@fe6c0000 { + compatible = "rockchip,rk3568-uart\0snps,dw-apb-uart"; + reg = <0x00 0xfe6c0000 0x00 0x100>; + interrupts = <0x00 0x7c 0x04>; + clocks = <0x23 0x13b 0x23 0x138>; + clock-names = "baudclk\0apb_pclk"; + reg-shift = <0x02>; + reg-io-width = <0x04>; + dmas = <0x4e 0x10 0x4e 0x11>; + pinctrl-names = "default"; + pinctrl-0 = <0x112 0x113>; + status = "okay"; + }; + + serial@fe6d0000 { + compatible = "rockchip,rk3568-uart\0snps,dw-apb-uart"; + reg = <0x00 0xfe6d0000 0x00 0x100>; + interrupts = <0x00 0x7d 0x04>; + clocks = <0x23 0x13f 0x23 0x13c>; + clock-names = "baudclk\0apb_pclk"; + reg-shift = <0x02>; + reg-io-width = <0x04>; + dmas = <0x4e 0x12 0x4e 0x13>; + pinctrl-names = "default"; + pinctrl-0 = <0x114>; + status = "okay"; + }; + + pwm@fe6e0000 { + compatible = "rockchip,rk3568-pwm\0rockchip,rk3328-pwm"; + reg = <0x00 0xfe6e0000 0x00 0x10>; + interrupts = <0x00 0x53 0x04>; + #pwm-cells = <0x03>; + pinctrl-names = "active"; + pinctrl-0 = <0x115>; + clocks = <0x23 0x15a 0x23 0x159>; + clock-names = "pwm\0pclk"; + status = "okay"; + }; + + pwm@fe6e0010 { + compatible = "rockchip,rk3568-pwm\0rockchip,rk3328-pwm"; + reg = <0x00 0xfe6e0010 0x00 0x10>; + interrupts = <0x00 0x53 0x04>; + #pwm-cells = <0x03>; + pinctrl-names = "active"; + pinctrl-0 = <0x116>; + clocks = <0x23 0x15a 0x23 0x159>; + clock-names = "pwm\0pclk"; + status = "okay"; + }; + + pwm@fe6e0020 { + compatible = "rockchip,rk3568-pwm\0rockchip,rk3328-pwm"; + reg = <0x00 0xfe6e0020 0x00 0x10>; + interrupts = <0x00 0x53 0x04>; + #pwm-cells = <0x03>; + pinctrl-names = "active"; + pinctrl-0 = <0x117>; + clocks = <0x23 0x15a 0x23 0x159>; + clock-names = "pwm\0pclk"; + status = "disabled"; + }; + + pwm@fe6e0030 { + compatible = "rockchip,remotectl-pwm"; + reg = <0x00 0xfe6e0030 0x00 0x10>; + interrupts = <0x00 0x53 0x04>; + #pwm-cells = <0x03>; + pinctrl-names = "default"; + pinctrl-0 = <0x118>; + clocks = <0x23 0x15a 0x23 0x159>; + clock-names = "pwm\0pclk"; + status = "okay"; + remote_pwm_id = <0x03>; + handle_cpu_id = <0x01>; + remote_support_psci = <0x00>; + + ir_key_firefly { + rockchip,usercode = <0xff00>; + rockchip,key_table = <0xeb 0x74 0xec 0x8b 0xfe 0x9e 0xb7 0x66 0xa3 0x96 0xf4 0x73 0xa7 0x72 0xf8 0xe8 0xfc 0x67 0xfd 0x6c 0xf1 0x69 0xe5 0x6a>; + }; + }; + + pwm@fe6f0000 { + compatible = "rockchip,rk3568-pwm\0rockchip,rk3328-pwm"; + reg = <0x00 0xfe6f0000 0x00 0x10>; + interrupts = <0x00 0x54 0x04>; + #pwm-cells = <0x03>; + pinctrl-names = "active"; + pinctrl-0 = <0x119>; + clocks = <0x23 0x15d 0x23 0x15c>; + clock-names = "pwm\0pclk"; + status = "disabled"; + }; + + pwm@fe6f0010 { + compatible = "rockchip,rk3568-pwm\0rockchip,rk3328-pwm"; + reg = <0x00 0xfe6f0010 0x00 0x10>; + interrupts = <0x00 0x54 0x04>; + #pwm-cells = <0x03>; + pinctrl-names = "active"; + pinctrl-0 = <0x11a>; + clocks = <0x23 0x15d 0x23 0x15c>; + clock-names = "pwm\0pclk"; + status = "disabled"; + }; + + pwm@fe6f0020 { + compatible = "rockchip,rk3568-pwm\0rockchip,rk3328-pwm"; + reg = <0x00 0xfe6f0020 0x00 0x10>; + interrupts = <0x00 0x54 0x04>; + #pwm-cells = <0x03>; + pinctrl-names = "active"; + pinctrl-0 = <0x11b>; + clocks = <0x23 0x15d 0x23 0x15c>; + clock-names = "pwm\0pclk"; + status = "disabled"; + }; + + pwm@fe6f0030 { + compatible = "rockchip,rk3568-pwm\0rockchip,rk3328-pwm"; + reg = <0x00 0xfe6f0030 0x00 0x10>; + interrupts = <0x00 0x54 0x04 0x00 0x58 0x04>; + #pwm-cells = <0x03>; + pinctrl-names = "active"; + pinctrl-0 = <0x11c>; + clocks = <0x23 0x15d 0x23 0x15c>; + clock-names = "pwm\0pclk"; + status = "disabled"; + phandle = <0x157>; + }; + + pwm@fe700000 { + compatible = "rockchip,rk3568-pwm\0rockchip,rk3328-pwm"; + reg = <0x00 0xfe700000 0x00 0x10>; + interrupts = <0x00 0x55 0x04>; + #pwm-cells = <0x03>; + pinctrl-names = "active"; + pinctrl-0 = <0x11d>; + clocks = <0x23 0x160 0x23 0x15f>; + clock-names = "pwm\0pclk"; + status = "disabled"; + }; + + pwm@fe700010 { + compatible = "rockchip,rk3568-pwm\0rockchip,rk3328-pwm"; + reg = <0x00 0xfe700010 0x00 0x10>; + interrupts = <0x00 0x55 0x04>; + #pwm-cells = <0x03>; + pinctrl-names = "active"; + pinctrl-0 = <0x11e>; + clocks = <0x23 0x160 0x23 0x15f>; + clock-names = "pwm\0pclk"; + status = "disabled"; + }; + + pwm@fe700020 { + compatible = "rockchip,rk3568-pwm\0rockchip,rk3328-pwm"; + reg = <0x00 0xfe700020 0x00 0x10>; + interrupts = <0x00 0x55 0x04>; + #pwm-cells = <0x03>; + pinctrl-names = "active"; + pinctrl-0 = <0x11f>; + clocks = <0x23 0x160 0x23 0x15f>; + clock-names = "pwm\0pclk"; + status = "disabled"; + }; + + pwm@fe700030 { + compatible = "rockchip,rk3568-pwm\0rockchip,rk3328-pwm"; + reg = <0x00 0xfe700030 0x00 0x10>; + interrupts = <0x00 0x55 0x04 0x00 0x59 0x04>; + #pwm-cells = <0x03>; + pinctrl-names = "active"; + pinctrl-0 = <0x120>; + clocks = <0x23 0x160 0x23 0x15f>; + clock-names = "pwm\0pclk"; + status = "disabled"; + }; + + tsadc@fe710000 { + compatible = "rockchip,rk3568-tsadc"; + reg = <0x00 0xfe710000 0x00 0x100>; + interrupts = <0x00 0x73 0x04>; + rockchip,grf = <0x3b>; + clocks = <0x23 0x111 0x23 0x10f>; + clock-names = "tsadc\0apb_pclk"; + assigned-clocks = <0x23 0x110 0x23 0x111>; + assigned-clock-rates = <0x1036640 0xaae60>; + resets = <0x23 0x182 0x23 0x181 0x23 0x1d7>; + reset-names = "tsadc\0tsadc-apb\0tsadc-phy"; + #thermal-sensor-cells = <0x01>; + nvmem-cells = <0x121 0x122>; + nvmem-cell-names = "trim_base\0trim_base_frac"; + rockchip,hw-tshut-temp = <0x1d4c0>; + rockchip,hw-tshut-mode = <0x00>; + rockchip,hw-tshut-polarity = <0x00>; + pinctrl-names = "gpio\0otpout"; + pinctrl-0 = <0x123>; + pinctrl-1 = <0x124>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "okay"; + phandle = <0x1f>; + + tsadc@0 { + reg = <0x00>; + nvmem-cells = <0x125 0x126>; + nvmem-cell-names = "trim_l\0trim_h"; + }; + + tsadc@1 { + reg = <0x01>; + nvmem-cells = <0x127 0x128>; + nvmem-cell-names = "trim_l\0trim_h"; + }; + }; + + saradc@fe720000 { + compatible = "rockchip,rk3568-saradc\0rockchip,rk3399-saradc"; + reg = <0x00 0xfe720000 0x00 0x100>; + interrupts = <0x00 0x5d 0x04>; + #io-channel-cells = <0x01>; + clocks = <0x23 0x113 0x23 0x112>; + clock-names = "saradc\0apb_pclk"; + resets = <0x23 0x180>; + reset-names = "saradc-apb"; + status = "okay"; + vref-supply = <0x129>; + phandle = <0x49>; + }; + + mailbox@fe780000 { + compatible = "rockchip,rk3568-mailbox\0rockchip,rk3368-mailbox"; + reg = <0x00 0xfe780000 0x00 0x1000>; + interrupts = <0x00 0xb7 0x04 0x00 0xb8 0x04 0x00 0xb9 0x04 0x00 0xba 0x04>; + clocks = <0x23 0x11b>; + clock-names = "pclk_mailbox"; + #mbox-cells = <0x01>; + status = "disabled"; + }; + + phy@fe820000 { + compatible = "rockchip,rk3568-naneng-combphy"; + reg = <0x00 0xfe820000 0x00 0x100>; + #phy-cells = <0x01>; + clocks = <0x3a 0x1f 0x23 0x17c 0x23 0x7f>; + clock-names = "refclk\0apbclk\0pipe_clk"; + assigned-clocks = <0x3a 0x1f>; + assigned-clock-rates = <0x5f5e100>; + resets = <0x23 0x1c4 0x23 0x1c5>; + reset-names = "combphy-apb\0combphy"; + rockchip,pipe-grf = <0x12a>; + rockchip,pipe-phy-grf = <0x12b>; + status = "okay"; + phandle = <0x24>; + }; + + phy@fe830000 { + compatible = "rockchip,rk3568-naneng-combphy"; + reg = <0x00 0xfe830000 0x00 0x100>; + #phy-cells = <0x01>; + clocks = <0x3a 0x22 0x23 0x17d 0x23 0x7f>; + clock-names = "refclk\0apbclk\0pipe_clk"; + assigned-clocks = <0x3a 0x22>; + assigned-clock-rates = <0x5f5e100>; + resets = <0x23 0x1c6 0x23 0x1c7>; + reset-names = "combphy-apb\0combphy"; + rockchip,pipe-grf = <0x12a>; + rockchip,pipe-phy-grf = <0x12c>; + status = "okay"; + phandle = <0x26>; + }; + + phy@fe840000 { + compatible = "rockchip,rk3568-naneng-combphy"; + reg = <0x00 0xfe840000 0x00 0x100>; + #phy-cells = <0x01>; + clocks = <0x3a 0x25 0x23 0x17e 0x23 0x7f>; + clock-names = "refclk\0apbclk\0pipe_clk"; + assigned-clocks = <0x3a 0x25>; + assigned-clock-rates = <0x5f5e100>; + resets = <0x23 0x1c8 0x23 0x1c9>; + reset-names = "combphy-apb\0combphy"; + rockchip,pipe-grf = <0x12a>; + rockchip,pipe-phy-grf = <0x12d>; + status = "okay"; + phandle = <0x27>; + }; + + phy@fe850000 { + compatible = "rockchip,rk3568-dsi-dphy\0rockchip,rk3568-video-phy"; + reg = <0x00 0xfe850000 0x00 0x10000 0x00 0xfe060000 0x00 0x10000>; + reg-names = "phy\0host"; + clocks = <0x3a 0x17 0x23 0x17a 0x23 0xe8>; + clock-names = "ref\0pclk\0pclk_host"; + #clock-cells = <0x00>; + resets = <0x23 0x1bb>; + reset-names = "apb"; + power-domains = <0x25 0x09>; + #phy-cells = <0x00>; + status = "disabled"; + phandle = <0x34>; + }; + + phy@fe860000 { + compatible = "rockchip,rk3568-dsi-dphy\0rockchip,rk3568-video-phy"; + reg = <0x00 0xfe860000 0x00 0x10000 0x00 0xfe070000 0x00 0x10000>; + reg-names = "phy\0host"; + clocks = <0x3a 0x19 0x23 0x17b 0x23 0xe9>; + clock-names = "ref\0pclk\0pclk_host"; + #clock-cells = <0x00>; + resets = <0x23 0x1bc>; + reset-names = "apb"; + power-domains = <0x25 0x09>; + #phy-cells = <0x00>; + status = "disabled"; + phandle = <0x36>; + }; + + csi2-dphy-hw@fe870000 { + compatible = "rockchip,rk3568-csi2-dphy-hw"; + reg = <0x00 0xfe870000 0x00 0x1000>; + clocks = <0x23 0x179>; + clock-names = "pclk"; + rockchip,grf = <0x3b>; + status = "okay"; + phandle = <0x12e>; + }; + + csi2-dphy0 { + compatible = "rockchip,rk3568-csi2-dphy"; + rockchip,hw = <0x12e>; + status = "okay"; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + reg = <0x00>; + #address-cells = <0x01>; + #size-cells = <0x00>; + + endpoint@1 { + reg = <0x01>; + remote-endpoint = <0x12f>; + data-lanes = <0x01 0x02 0x03 0x04>; + phandle = <0xf6>; + }; + + endpoint@2 { + reg = <0x02>; + remote-endpoint = <0x130>; + data-lanes = <0x01 0x02 0x03 0x04>; + phandle = <0xf5>; + }; + + endpoint@3 { + reg = <0x03>; + remote-endpoint = <0x131>; + data-lanes = <0x01 0x02>; + phandle = <0xf7>; + }; + + endpoint@4 { + reg = <0x04>; + remote-endpoint = <0x132>; + data-lanes = <0x01 0x02 0x03 0x04>; + phandle = <0xf8>; + }; + + endpoint@5 { + reg = <0x05>; + remote-endpoint = <0x133>; + data-lanes = <0x01 0x02 0x03 0x04>; + phandle = <0xf9>; + }; + }; + + port@1 { + reg = <0x01>; + #address-cells = <0x01>; + #size-cells = <0x00>; + + endpoint@0 { + reg = <0x00>; + remote-endpoint = <0x134>; + phandle = <0x8c>; + }; + }; + }; + }; + + csi2-dphy1 { + compatible = "rockchip,rk3568-csi2-dphy"; + rockchip,hw = <0x12e>; + status = "disabled"; + }; + + csi2-dphy2 { + compatible = "rockchip,rk3568-csi2-dphy"; + rockchip,hw = <0x12e>; + status = "disabled"; + }; + + usb2-phy@fe8a0000 { + compatible = "rockchip,rk3568-usb2phy"; + reg = <0x00 0xfe8a0000 0x00 0x10000>; + interrupts = <0x00 0x87 0x04>; + clocks = <0x3a 0x13>; + clock-names = "phyclk"; + #clock-cells = <0x00>; + assigned-clocks = <0x23 0x0b>; + assigned-clock-parents = <0x29>; + clock-output-names = "usb480m_phy"; + rockchip,usbgrf = <0x135>; + status = "okay"; + phandle = <0x29>; + + host-port { + #phy-cells = <0x00>; + status = "okay"; + phy-supply = <0x136>; + phandle = <0x2b>; + }; + + otg-port { + #phy-cells = <0x00>; + status = "okay"; + phandle = <0x28>; + }; + }; + + usb2-phy@fe8b0000 { + compatible = "rockchip,rk3568-usb2phy"; + reg = <0x00 0xfe8b0000 0x00 0x10000>; + interrupts = <0x00 0x88 0x04>; + clocks = <0x3a 0x15>; + clock-names = "phyclk"; + #clock-cells = <0x00>; + rockchip,usbgrf = <0x137>; + status = "okay"; + phandle = <0x2c>; + + host-port { + #phy-cells = <0x00>; + status = "okay"; + phy-supply = <0x136>; + phandle = <0x2e>; + }; + + otg-port { + #phy-cells = <0x00>; + status = "okay"; + phy-supply = <0x136>; + phandle = <0x2d>; + }; + }; + + phy@fe8c0000 { + compatible = "rockchip,rk3568-pcie3-phy"; + reg = <0x00 0xfe8c0000 0x00 0x20000>; + #phy-cells = <0x00>; + clocks = <0x3a 0x26 0x3a 0x27 0x23 0x177>; + clock-names = "refclk_m\0refclk_n\0pclk"; + resets = <0x23 0x1be>; + reset-names = "phy"; + rockchip,phy-grf = <0x138>; + status = "okay"; + phandle = <0xc0>; + }; + + pinctrl { + compatible = "rockchip,rk3568-pinctrl"; + rockchip,grf = <0x3b>; + rockchip,pmu = <0x3c>; + #address-cells = <0x02>; + #size-cells = <0x02>; + ranges; + + gpio0@fdd60000 { + compatible = "rockchip,gpio-bank"; + reg = <0x00 0xfdd60000 0x00 0x100>; + interrupts = <0x00 0x21 0x04>; + clocks = <0x3a 0x2e 0x3a 0x0c>; + gpio-controller; + #gpio-cells = <0x02>; + interrupt-controller; + #interrupt-cells = <0x02>; + phandle = <0x3f>; + }; + + gpio1@fe740000 { + compatible = "rockchip,gpio-bank"; + reg = <0x00 0xfe740000 0x00 0x100>; + interrupts = <0x00 0x22 0x04>; + clocks = <0x23 0x163 0x23 0x164>; + gpio-controller; + #gpio-cells = <0x02>; + interrupt-controller; + #interrupt-cells = <0x02>; + phandle = <0x159>; + }; + + gpio2@fe750000 { + compatible = "rockchip,gpio-bank"; + reg = <0x00 0xfe750000 0x00 0x100>; + interrupts = <0x00 0x23 0x04>; + clocks = <0x23 0x165 0x23 0x166>; + gpio-controller; + #gpio-cells = <0x02>; + interrupt-controller; + #interrupt-cells = <0x02>; + phandle = <0x91>; + }; + + gpio3@fe760000 { + compatible = "rockchip,gpio-bank"; + reg = <0x00 0xfe760000 0x00 0x100>; + interrupts = <0x00 0x24 0x04>; + clocks = <0x23 0x167 0x23 0x168>; + gpio-controller; + #gpio-cells = <0x02>; + interrupt-controller; + #interrupt-cells = <0x02>; + phandle = <0x4a>; + }; + + gpio4@fe770000 { + compatible = "rockchip,gpio-bank"; + reg = <0x00 0xfe770000 0x00 0x100>; + interrupts = <0x00 0x25 0x04>; + clocks = <0x23 0x169 0x23 0x16a>; + gpio-controller; + #gpio-cells = <0x02>; + interrupt-controller; + #interrupt-cells = <0x02>; + phandle = <0xf4>; + }; + + pcfg-pull-up { + bias-pull-up; + phandle = <0x13b>; + }; + + pcfg-pull-down { + bias-pull-down; + phandle = <0x142>; + }; + + pcfg-pull-none { + bias-disable; + phandle = <0x139>; + }; + + pcfg-pull-none-drv-level-1 { + bias-disable; + drive-strength = <0x01>; + phandle = <0x13d>; + }; + + pcfg-pull-none-drv-level-2 { + bias-disable; + drive-strength = <0x02>; + phandle = <0x13c>; + }; + + pcfg-pull-none-drv-level-3 { + bias-disable; + drive-strength = <0x03>; + phandle = <0x141>; + }; + + pcfg-pull-up-drv-level-1 { + bias-pull-up; + drive-strength = <0x01>; + phandle = <0x140>; + }; + + pcfg-pull-up-drv-level-2 { + bias-pull-up; + drive-strength = <0x02>; + phandle = <0x13a>; + }; + + pcfg-pull-none-smt { + bias-disable; + input-schmitt-enable; + phandle = <0x13e>; + }; + + pcfg-output-low-pull-down { + output-low; + bias-pull-down; + phandle = <0x13f>; + }; + + acodec { + + acodec-pins { + rockchip,pins = <0x01 0x09 0x05 0x139 0x01 0x01 0x05 0x139 0x01 0x00 0x05 0x139 0x01 0x07 0x05 0x139 0x01 0x08 0x05 0x139 0x01 0x03 0x05 0x139 0x01 0x05 0x05 0x139>; + phandle = <0xea>; + }; + }; + + cam { + + vcc-cam { + rockchip,pins = <0x00 0x11 0x00 0x139>; + phandle = <0x158>; + }; + }; + + can1 { + + can1m1-pins { + rockchip,pins = <0x04 0x12 0x03 0x139 0x04 0x13 0x03 0x139>; + phandle = <0xec>; + }; + }; + + can2 { + + can2m0-pins { + rockchip,pins = <0x04 0x0c 0x03 0x139 0x04 0x0d 0x03 0x139>; + phandle = <0xed>; + }; + }; + + cif { + + cif-clk { + rockchip,pins = <0x04 0x10 0x01 0x139>; + phandle = <0xf3>; + }; + }; + + clk32k { + + clk32k-out0 { + rockchip,pins = <0x00 0x08 0x02 0x139>; + phandle = <0x22>; + }; + }; + + ebc { + + ebc-pins { + rockchip,pins = <0x04 0x10 0x02 0x139 0x04 0x0b 0x02 0x139 0x04 0x0c 0x02 0x139 0x04 0x06 0x02 0x139 0x04 0x11 0x02 0x139 0x03 0x16 0x02 0x139 0x03 0x17 0x02 0x139 0x03 0x18 0x02 0x139 0x03 0x19 0x02 0x139 0x03 0x1a 0x02 0x139 0x03 0x1b 0x02 0x139 0x03 0x1c 0x02 0x139 0x03 0x1d 0x02 0x139 0x03 0x1e 0x02 0x139 0x03 0x1f 0x02 0x139 0x04 0x00 0x02 0x139 0x04 0x01 0x02 0x139 0x04 0x02 0x02 0x139 0x04 0x03 0x02 0x139 0x04 0x04 0x02 0x139 0x04 0x05 0x02 0x139 0x04 0x0e 0x02 0x139 0x04 0x0f 0x02 0x139>; + phandle = <0x7c>; + }; + }; + + fspi { + + fspi-pins { + rockchip,pins = <0x01 0x18 0x01 0x139 0x01 0x1b 0x01 0x139 0x01 0x19 0x01 0x139 0x01 0x1a 0x01 0x139 0x01 0x17 0x02 0x139 0x01 0x1c 0x01 0x139>; + phandle = <0xd4>; + }; + }; + + gmac0 { + + gmac0-miim { + rockchip,pins = <0x02 0x13 0x02 0x139 0x02 0x14 0x02 0x139>; + phandle = <0xc8>; + }; + + gmac0-clkinout { + rockchip,pins = <0x02 0x12 0x02 0x139>; + phandle = <0xcd>; + }; + + gmac0-rx-bus2 { + rockchip,pins = <0x02 0x0e 0x01 0x139 0x02 0x0f 0x02 0x139 0x02 0x10 0x02 0x139>; + phandle = <0xca>; + }; + + gmac0-tx-bus2 { + rockchip,pins = <0x02 0x0b 0x01 0x13c 0x02 0x0c 0x01 0x13c 0x02 0x0d 0x01 0x139>; + phandle = <0xc9>; + }; + + gmac0-rgmii-clk { + rockchip,pins = <0x02 0x05 0x02 0x139 0x02 0x08 0x02 0x13d>; + phandle = <0xcb>; + }; + + gmac0-rgmii-bus { + rockchip,pins = <0x02 0x03 0x02 0x139 0x02 0x04 0x02 0x139 0x02 0x06 0x02 0x13c 0x02 0x07 0x02 0x13c>; + phandle = <0xcc>; + }; + }; + + gmac1 { + + gmac1m1-miim { + rockchip,pins = <0x04 0x0e 0x03 0x139 0x04 0x0f 0x03 0x139>; + phandle = <0x93>; + }; + + gmac1m1-clkinout { + rockchip,pins = <0x04 0x11 0x03 0x139>; + phandle = <0x98>; + }; + + gmac1m1-rx-bus2 { + rockchip,pins = <0x04 0x07 0x03 0x139 0x04 0x08 0x03 0x139 0x04 0x09 0x03 0x139>; + phandle = <0x95>; + }; + + gmac1m1-tx-bus2 { + rockchip,pins = <0x04 0x04 0x03 0x13c 0x04 0x05 0x03 0x13c 0x04 0x06 0x03 0x139>; + phandle = <0x94>; + }; + + gmac1m1-rgmii-clk { + rockchip,pins = <0x04 0x03 0x03 0x139 0x04 0x00 0x03 0x13d>; + phandle = <0x96>; + }; + + gmac1m1-rgmii-bus { + rockchip,pins = <0x04 0x01 0x03 0x139 0x04 0x02 0x03 0x139 0x03 0x1e 0x03 0x13c 0x03 0x1f 0x03 0x13c>; + phandle = <0x97>; + }; + }; + + hdmitx { + + hdmitxm0-cec { + rockchip,pins = <0x04 0x19 0x01 0x139>; + phandle = <0xac>; + }; + + hdmitx-scl { + rockchip,pins = <0x04 0x17 0x01 0x139>; + phandle = <0xaa>; + }; + + hdmitx-sda { + rockchip,pins = <0x04 0x18 0x01 0x139>; + phandle = <0xab>; + }; + }; + + i2c0 { + + i2c0-xfer { + rockchip,pins = <0x00 0x09 0x01 0x13e 0x00 0x0a 0x01 0x13e>; + phandle = <0x3d>; + }; + }; + + i2c1 { + + i2c1-xfer { + rockchip,pins = <0x00 0x0b 0x01 0x13e 0x00 0x0c 0x01 0x13e>; + phandle = <0xee>; + }; + }; + + i2c2 { + + i2c2m0-xfer { + rockchip,pins = <0x00 0x0d 0x01 0x13e 0x00 0x0e 0x01 0x13e>; + phandle = <0xf0>; + }; + }; + + i2c3 { + + i2c3m0-xfer { + rockchip,pins = <0x01 0x01 0x01 0x13e 0x01 0x00 0x01 0x13e>; + phandle = <0xf1>; + }; + }; + + i2c4 { + + i2c4m0-xfer { + rockchip,pins = <0x04 0x0b 0x01 0x13e 0x04 0x0a 0x01 0x13e>; + phandle = <0xf2>; + }; + }; + + i2c5 { + + i2c5m0-xfer { + rockchip,pins = <0x03 0x0b 0x04 0x13e 0x03 0x0c 0x04 0x13e>; + phandle = <0xfa>; + }; + }; + + i2s1 { + + i2s1m0-lrcktx { + rockchip,pins = <0x01 0x05 0x01 0x13e>; + phandle = <0xd7>; + }; + + i2s1m0-mclk { + rockchip,pins = <0x01 0x02 0x01 0x13e>; + phandle = <0x47>; + }; + + i2s1m0-sclktx { + rockchip,pins = <0x01 0x03 0x01 0x13e>; + phandle = <0xd6>; + }; + + i2s1m0-sdi0 { + rockchip,pins = <0x01 0x0b 0x01 0x139>; + phandle = <0xd8>; + }; + + i2s1m0-sdo0 { + rockchip,pins = <0x01 0x07 0x01 0x139>; + phandle = <0xd9>; + }; + }; + + i2s2 { + + i2s2m0-lrcktx { + rockchip,pins = <0x02 0x13 0x01 0x13e>; + phandle = <0xdb>; + }; + + i2s2m0-sclktx { + rockchip,pins = <0x02 0x12 0x01 0x13e>; + phandle = <0xda>; + }; + + i2s2m0-sdi { + rockchip,pins = <0x02 0x15 0x01 0x139>; + phandle = <0xdc>; + }; + + i2s2m0-sdo { + rockchip,pins = <0x02 0x14 0x01 0x139>; + phandle = <0xdd>; + }; + }; + + i2s3 { + + i2s3m0-lrck { + rockchip,pins = <0x03 0x04 0x04 0x13e>; + phandle = <0xdf>; + }; + + i2s3m0-sclk { + rockchip,pins = <0x03 0x03 0x04 0x13e>; + phandle = <0xde>; + }; + + i2s3m0-sdi { + rockchip,pins = <0x03 0x06 0x04 0x139>; + phandle = <0xe0>; + }; + + i2s3m0-sdo { + rockchip,pins = <0x03 0x05 0x04 0x139>; + phandle = <0xe1>; + }; + }; + + lcdc { + + lcdc-ctl { + rockchip,pins = <0x03 0x00 0x01 0x139 0x02 0x18 0x01 0x139 0x02 0x19 0x01 0x139 0x02 0x1a 0x01 0x139 0x02 0x1b 0x01 0x139 0x02 0x1c 0x01 0x139 0x02 0x1d 0x01 0x139 0x02 0x1e 0x01 0x139 0x02 0x1f 0x01 0x139 0x03 0x01 0x01 0x139 0x03 0x02 0x01 0x139 0x03 0x03 0x01 0x139 0x03 0x04 0x01 0x139 0x03 0x05 0x01 0x139 0x03 0x06 0x01 0x139 0x03 0x07 0x01 0x139 0x03 0x08 0x01 0x139 0x03 0x09 0x01 0x139 0x03 0x0a 0x01 0x139 0x03 0x0b 0x01 0x139 0x03 0x0c 0x01 0x139 0x03 0x0d 0x01 0x139 0x03 0x0e 0x01 0x139 0x03 0x0f 0x01 0x139 0x03 0x10 0x01 0x139 0x03 0x13 0x01 0x139 0x03 0x11 0x01 0x139 0x03 0x12 0x01 0x139>; + phandle = <0x39>; + }; + }; + + pdm { + + pdmm0-clk { + rockchip,pins = <0x01 0x06 0x03 0x139>; + phandle = <0xe2>; + }; + + pdmm0-clk1 { + rockchip,pins = <0x01 0x04 0x03 0x139>; + phandle = <0xe3>; + }; + + pdmm0-sdi0 { + rockchip,pins = <0x01 0x0b 0x02 0x139>; + phandle = <0xe4>; + }; + + pdmm0-sdi1 { + rockchip,pins = <0x01 0x0a 0x03 0x139>; + phandle = <0xe5>; + }; + + pdmm0-sdi2 { + rockchip,pins = <0x01 0x09 0x03 0x139>; + phandle = <0xe6>; + }; + + pdmm0-sdi3 { + rockchip,pins = <0x01 0x08 0x03 0x139>; + phandle = <0xe7>; + }; + }; + + pmic { + + pmic_int { + rockchip,pins = <0x00 0x03 0x00 0x13b>; + phandle = <0x40>; + }; + + soc_slppin_gpio { + rockchip,pins = <0x00 0x02 0x00 0x13f>; + phandle = <0x43>; + }; + + soc_slppin_slp { + rockchip,pins = <0x00 0x02 0x01 0x13b>; + phandle = <0x41>; + }; + + soc_slppin_rst { + rockchip,pins = <0x00 0x02 0x02 0x139>; + }; + + spk_ctl_gpio { + rockchip,pins = <0x03 0x15 0x00 0x13b>; + phandle = <0x48>; + }; + }; + + pwm0 { + + pwm0m0-pins { + rockchip,pins = <0x00 0x0f 0x01 0x139>; + phandle = <0x50>; + }; + }; + + pwm1 { + + pwm1m0-pins { + rockchip,pins = <0x00 0x10 0x01 0x139>; + phandle = <0x51>; + }; + }; + + pwm2 { + + pwm2m0-pins { + rockchip,pins = <0x00 0x11 0x01 0x139>; + phandle = <0x52>; + }; + }; + + pwm3 { + + pwm3-pins { + rockchip,pins = <0x00 0x12 0x01 0x139>; + phandle = <0x53>; + }; + }; + + pwm4 { + + pwm4-pins { + rockchip,pins = <0x00 0x13 0x01 0x139>; + phandle = <0x115>; + }; + }; + + pwm5 { + + pwm5-pins { + rockchip,pins = <0x00 0x14 0x01 0x139>; + phandle = <0x116>; + }; + }; + + pwm6 { + + pwm6-pins { + rockchip,pins = <0x00 0x15 0x01 0x139>; + phandle = <0x117>; + }; + }; + + pwm7 { + + pwm7-pins { + rockchip,pins = <0x00 0x16 0x01 0x139>; + phandle = <0x118>; + }; + }; + + pwm8 { + + pwm8m0-pins { + rockchip,pins = <0x03 0x09 0x05 0x139>; + phandle = <0x119>; + }; + }; + + pwm9 { + + pwm9m0-pins { + rockchip,pins = <0x03 0x0a 0x05 0x139>; + phandle = <0x11a>; + }; + }; + + pwm10 { + + pwm10m0-pins { + rockchip,pins = <0x03 0x0d 0x05 0x139>; + phandle = <0x11b>; + }; + }; + + pwm11 { + + pwm11m0-pins { + rockchip,pins = <0x03 0x0e 0x05 0x139>; + phandle = <0x11c>; + }; + }; + + pwm12 { + + pwm12m0-pins { + rockchip,pins = <0x03 0x0f 0x02 0x139>; + phandle = <0x11d>; + }; + }; + + pwm13 { + + pwm13m0-pins { + rockchip,pins = <0x03 0x10 0x02 0x139>; + phandle = <0x11e>; + }; + }; + + pwm14 { + + pwm14m0-pins { + rockchip,pins = <0x03 0x14 0x01 0x139>; + phandle = <0x11f>; + }; + }; + + pwm15 { + + pwm15m0-pins { + rockchip,pins = <0x03 0x15 0x01 0x139>; + phandle = <0x120>; + }; + }; + + scr { + + scr-pins { + rockchip,pins = <0x01 0x02 0x03 0x139 0x01 0x07 0x03 0x13b 0x01 0x03 0x03 0x13b 0x01 0x05 0x03 0x139>; + phandle = <0xeb>; + }; + }; + + sdmmc0 { + + sdmmc0-bus4 { + rockchip,pins = <0x01 0x1d 0x01 0x13a 0x01 0x1e 0x01 0x13a 0x01 0x1f 0x01 0x13a 0x02 0x00 0x01 0x13a>; + phandle = <0xd0>; + }; + + sdmmc0-clk { + rockchip,pins = <0x02 0x02 0x01 0x13a>; + phandle = <0xd1>; + }; + + sdmmc0-cmd { + rockchip,pins = <0x02 0x01 0x01 0x13a>; + phandle = <0xd2>; + }; + + sdmmc0-det { + rockchip,pins = <0x00 0x04 0x01 0x13b>; + phandle = <0xd3>; + }; + }; + + sdmmc2 { + + sdmmc2m0-bus4 { + rockchip,pins = <0x03 0x16 0x03 0x13a 0x03 0x17 0x03 0x13a 0x03 0x18 0x03 0x13a 0x03 0x19 0x03 0x13a>; + phandle = <0xb0>; + }; + + sdmmc2m0-clk { + rockchip,pins = <0x03 0x1b 0x03 0x13a>; + phandle = <0xb2>; + }; + + sdmmc2m0-cmd { + rockchip,pins = <0x03 0x1a 0x03 0x13a>; + phandle = <0xb1>; + }; + }; + + spdif { + + spdifm1-tx { + rockchip,pins = <0x03 0x15 0x02 0x139>; + phandle = <0xe9>; + }; + }; + + spi0 { + + spi0m0-pins { + rockchip,pins = <0x00 0x0d 0x02 0x139 0x00 0x15 0x02 0x139 0x00 0x0e 0x02 0x139>; + phandle = <0xfe>; + }; + + spi0m0-cs0 { + rockchip,pins = <0x00 0x16 0x02 0x139>; + phandle = <0xfc>; + }; + + spi0m0-cs1 { + rockchip,pins = <0x00 0x14 0x02 0x139>; + phandle = <0xfd>; + }; + }; + + spi1 { + + spi1m1-pins { + rockchip,pins = <0x03 0x13 0x03 0x139 0x03 0x12 0x03 0x139 0x03 0x11 0x03 0x139>; + phandle = <0x100>; + }; + }; + + spi2 { + + spi2m0-pins { + rockchip,pins = <0x02 0x11 0x04 0x139 0x02 0x12 0x04 0x139 0x02 0x13 0x04 0x139>; + phandle = <0x105>; + }; + + spi2m0-cs0 { + rockchip,pins = <0x02 0x14 0x04 0x139>; + phandle = <0x103>; + }; + + spi2m0-cs1 { + rockchip,pins = <0x02 0x15 0x04 0x139>; + phandle = <0x104>; + }; + }; + + spi3 { + + spi3m0-pins { + rockchip,pins = <0x04 0x0b 0x04 0x139 0x04 0x08 0x04 0x139 0x04 0x0a 0x04 0x139>; + phandle = <0x109>; + }; + + spi3m0-cs0 { + rockchip,pins = <0x04 0x06 0x04 0x139>; + phandle = <0x107>; + }; + + spi3m0-cs1 { + rockchip,pins = <0x04 0x07 0x04 0x139>; + phandle = <0x108>; + }; + }; + + tsadc { + + tsadc-shutorg { + rockchip,pins = <0x00 0x01 0x02 0x139>; + phandle = <0x124>; + }; + }; + + uart0 { + + uart0-xfer { + rockchip,pins = <0x00 0x10 0x03 0x13b 0x00 0x11 0x03 0x13b>; + phandle = <0x4f>; + }; + }; + + uart1 { + + uart1m0-xfer { + rockchip,pins = <0x02 0x0b 0x02 0x13b 0x02 0x0c 0x02 0x13b>; + phandle = <0x10b>; + }; + }; + + uart2 { + + uart2m0-xfer { + rockchip,pins = <0x00 0x18 0x01 0x13b 0x00 0x19 0x01 0x13b>; + phandle = <0x10c>; + }; + }; + + uart3 { + + uart3m1-xfer { + rockchip,pins = <0x03 0x10 0x04 0x13b 0x03 0x0f 0x04 0x13b>; + phandle = <0x10d>; + }; + }; + + uart4 { + + uart4m1-xfer { + rockchip,pins = <0x03 0x09 0x04 0x13b 0x03 0x0a 0x04 0x13b>; + phandle = <0x10e>; + }; + }; + + uart5 { + + uart5m0-xfer { + rockchip,pins = <0x02 0x01 0x03 0x13b 0x02 0x02 0x03 0x13b>; + phandle = <0x10f>; + }; + }; + + uart6 { + + uart6m0-xfer { + rockchip,pins = <0x02 0x03 0x03 0x13b 0x02 0x04 0x03 0x13b>; + phandle = <0x110>; + }; + }; + + uart7 { + + uart7m1-xfer { + rockchip,pins = <0x03 0x15 0x04 0x13b 0x03 0x14 0x04 0x13b>; + phandle = <0x111>; + }; + }; + + uart8 { + + uart8m0-xfer { + rockchip,pins = <0x02 0x16 0x02 0x13b 0x02 0x15 0x03 0x13b>; + phandle = <0x112>; + }; + + uart8m0-ctsn { + rockchip,pins = <0x02 0x0a 0x03 0x139>; + phandle = <0x113>; + }; + + uart8m0-rtsn { + rockchip,pins = <0x02 0x09 0x03 0x139>; + phandle = <0x155>; + }; + }; + + uart9 { + + uart9m1-xfer { + rockchip,pins = <0x04 0x16 0x04 0x13b 0x04 0x15 0x04 0x13b>; + phandle = <0x114>; + }; + }; + + spi0-hs { + + spi0m0-pins { + rockchip,pins = <0x00 0x0d 0x02 0x140 0x00 0x15 0x02 0x140 0x00 0x0e 0x02 0x140>; + phandle = <0xff>; + }; + }; + + spi1-hs { + + spi1m1-pins { + rockchip,pins = <0x03 0x13 0x03 0x140 0x03 0x12 0x03 0x140 0x03 0x11 0x03 0x140>; + phandle = <0x101>; + }; + }; + + spi2-hs { + + spi2m0-pins { + rockchip,pins = <0x02 0x11 0x04 0x140 0x02 0x12 0x04 0x140 0x02 0x13 0x04 0x140>; + phandle = <0x106>; + }; + }; + + spi3-hs { + + spi3m0-pins { + rockchip,pins = <0x04 0x0b 0x04 0x140 0x04 0x08 0x04 0x140 0x04 0x0a 0x04 0x140>; + phandle = <0x10a>; + }; + }; + + gpio-func { + + tsadc-gpio-func { + rockchip,pins = <0x00 0x01 0x00 0x139>; + phandle = <0x123>; + }; + }; + + usb { + + vcc5v0-host-en { + rockchip,pins = <0x00 0x06 0x00 0x139>; + phandle = <0x150>; + }; + + vcc5v0-otg-en { + rockchip,pins = <0x00 0x05 0x00 0x139>; + phandle = <0x151>; + }; + + vcc-hub-reset-en { + rockchip,pins = <0x01 0x04 0x00 0x139>; + phandle = <0x15a>; + }; + }; + + headphone { + + hp-det { + rockchip,pins = <0x03 0x12 0x00 0x142>; + phandle = <0x148>; + }; + }; + + sdio-pwrseq { + + wifi-enable-h { + rockchip,pins = <0x03 0x1d 0x00 0x139>; + phandle = <0x153>; + }; + }; + + wireless-wlan { + + wifi-host-wake-irq { + rockchip,pins = <0x03 0x1c 0x00 0x142>; + phandle = <0x154>; + }; + }; + + wireless-bluetooth { + + uart8-gpios { + rockchip,pins = <0x02 0x09 0x00 0x139>; + phandle = <0x156>; + }; + }; + + touch { + + touch-gpio { + rockchip,pins = <0x00 0x0d 0x00 0x13b 0x00 0x0e 0x00 0x139>; + phandle = <0xef>; + }; + }; + + mxc6655xa { + + mxc6655xa_irq_gpio { + rockchip,pins = <0x03 0x11 0x00 0x139>; + phandle = <0xfb>; + }; + }; + + pcie { + + pcie-pi6c-oe-en { + rockchip,pins = <0x03 0x07 0x00 0x139>; + phandle = <0x15b>; + }; + }; + + leds { + + leds-gpio { + rockchip,pins = <0x01 0x0a 0x00 0x139 0x01 0x09 0x00 0x139 0x01 0x08 0x00 0x139 0x02 0x11 0x00 0x139>; + phandle = <0x15d>; + }; + }; + + 4g { + + vcc-4g-power-en { + rockchip,pins = <0x03 0x03 0x00 0x139>; + phandle = <0x15c>; + }; + }; + + usb-typec { + + usbc0-int { + rockchip,pins = <0x00 0x11 0x00 0x13b>; + phandle = <0x4b>; + }; + + vcc5v0-typec0-en { + rockchip,pins = <0x00 0x05 0x00 0x139>; + }; + }; + }; + + audiopwmout-diff { + status = "disabled"; + compatible = "simple-audio-card"; + simple-audio-card,format = "i2s"; + simple-audio-card,name = "rockchip,audiopwmout-diff"; + simple-audio-card,mclk-fs = <0x100>; + simple-audio-card,bitclock-master = <0x143>; + simple-audio-card,frame-master = <0x143>; + + simple-audio-card,cpu { + sound-dai = <0x144>; + }; + + simple-audio-card,codec { + sound-dai = <0x145>; + phandle = <0x143>; + }; + }; + + dc-12v { + compatible = "regulator-fixed"; + regulator-name = "dc_12v"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <0xb71b00>; + regulator-max-microvolt = <0xb71b00>; + phandle = <0x14f>; + }; + + hdmi-sound { + compatible = "simple-audio-card"; + simple-audio-card,format = "i2s"; + simple-audio-card,mclk-fs = <0x80>; + simple-audio-card,name = "rockchip,hdmi"; + status = "okay"; + + simple-audio-card,cpu { + sound-dai = <0x146>; + }; + + simple-audio-card,codec { + sound-dai = <0x147>; + }; + }; + + rk-headset { + status = "disabled"; + compatible = "rockchip_headset"; + headset_gpio = <0x4a 0x12 0x01>; + pinctrl-names = "default"; + pinctrl-0 = <0x148>; + }; + + dummy-codec { + status = "disabled"; + compatible = "rockchip,dummy-codec"; + #sound-dai-cells = <0x00>; + phandle = <0x14a>; + }; + + pdm-mic-array { + status = "disabled"; + compatible = "simple-audio-card"; + simple-audio-card,name = "rockchip,pdm-mic-array"; + + simple-audio-card,cpu { + sound-dai = <0x149>; + }; + + simple-audio-card,codec { + sound-dai = <0x14a>; + }; + }; + + rk809-sound { + status = "okay"; + compatible = "rockchip,multicodecs-card"; + rockchip,card-name = "rockchip-rk809"; + rockchip,format = "i2s"; + rockchip,mclk-fs = <0x100>; + rockchip,cpu = <0xe8>; + rockchip,codec = <0x14b>; + }; + + spdif-sound { + status = "okay"; + compatible = "simple-audio-card"; + simple-audio-card,name = "ROCKCHIP,SPDIF"; + + simple-audio-card,cpu { + sound-dai = <0x14c>; + }; + + simple-audio-card,codec { + sound-dai = <0x14d>; + }; + }; + + spdif-out { + status = "okay"; + compatible = "linux,spdif-dit"; + #sound-dai-cells = <0x00>; + phandle = <0x14d>; + }; + + vad-sound { + status = "disabled"; + compatible = "rockchip,multicodecs-card"; + rockchip,card-name = "rockchip,rk3568-vad"; + rockchip,cpu = <0xe8>; + rockchip,codec = <0x14b 0x14e>; + }; + + vcc3v3-sys { + compatible = "regulator-fixed"; + regulator-name = "vcc3v3_sys"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <0x325aa0>; + regulator-max-microvolt = <0x325aa0>; + vin-supply = <0x14f>; + phandle = <0x46>; + }; + + vcc5v0-sys { + compatible = "regulator-fixed"; + regulator-name = "vcc5v0_sys"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <0x4c4b40>; + regulator-max-microvolt = <0x4c4b40>; + vin-supply = <0x14f>; + phandle = <0x3e>; + }; + + vcc5v0-host-regulator { + compatible = "regulator-fixed"; + enable-active-high; + gpio = <0x3f 0x06 0x00>; + pinctrl-names = "default"; + pinctrl-0 = <0x150>; + regulator-name = "vcc5v0_host"; + regulator-always-on; + regulator-boot-on; + phandle = <0x136>; + }; + + vcc5v0-otg-regulator { + compatible = "regulator-fixed"; + enable-active-high; + gpio = <0x3f 0x05 0x00>; + pinctrl-names = "default"; + pinctrl-0 = <0x151>; + regulator-name = "vcc5v0_otg"; + phandle = <0x4c>; + }; + + vcc3v3-lcd0-n { + compatible = "regulator-fixed"; + regulator-name = "vcc3v3_lcd0_n"; + regulator-boot-on; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + vcc3v3-lcd1-n { + compatible = "regulator-fixed"; + regulator-name = "vcc3v3_lcd1_n"; + regulator-boot-on; + status = "disabled"; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + test-power { + status = "okay"; + }; + + chosen { + // linux,initrd-end = <0x00 0xaacf15d>; + // linux,initrd-start = <0x00 0xa200000>; + bootargs = "storagemedia=emmc androidboot.storagemedia=emmc androidboot.mode=normal androidboot.verifiedbootstate=orange rw rootwait earlycon=uart8250,mmio32,0xfe660000 console=ttyFIQ0 root=PARTLABEL=rootfs rootfstype=ext4 overlayroot=device:dev=PARTLABEL=userdata,fstype=ext4,mkfs=1 coherent_pool=1m systemd.gpt_auto=0 cgroup_enable=memory swapaccount=1 swiotlb=0x10000 net.ifnames=0 comm-05/20/2025 androidboot.fwver=ddr-v1.21-2d653b3476,spl-v1.14,bl31-v1.44,bl32-v2.12,uboot--boot"; + }; + + fiq-debugger { + compatible = "rockchip,fiq-debugger"; + rockchip,serial-id = <0x02>; + rockchip,wake-irq = <0x00>; + rockchip,irq-mode-enable = <0x01>; + rockchip,baudrate = <0x16e360>; + interrupts = <0x00 0xfc 0x08>; + pinctrl-names = "default"; + pinctrl-0 = <0x10c>; + status = "okay"; + }; + + debug@fd904000 { + compatible = "rockchip,debug"; + reg = <0x00 0xfd904000 0x00 0x1000 0x00 0xfd905000 0x00 0x1000 0x00 0xfd906000 0x00 0x1000 0x00 0xfd907000 0x00 0x1000>; + }; + + cspmu@fd90c000 { + compatible = "rockchip,cspmu"; + reg = <0x00 0xfd90c000 0x00 0x1000 0x00 0xfd90d000 0x00 0x1000 0x00 0xfd90e000 0x00 0x1000 0x00 0xfd90f000 0x00 0x1000>; + }; + + adc-keys { + compatible = "adc-keys"; + io-channels = <0x49 0x00>; + io-channel-names = "buttons"; + keyup-threshold-microvolt = <0x1b7740>; + poll-interval = <0x64>; + + recovery-key { + label = "F12"; + linux,code = <0x58>; + press-threshold-microvolt = <0x6d6>; + }; + + vol-down-key { + label = "volume down"; + linux,code = <0x72>; + press-threshold-microvolt = <0x48a1c>; + }; + + menu-key { + label = "menu"; + linux,code = <0x8b>; + press-threshold-microvolt = <0xef420>; + }; + + back-key { + label = "back"; + linux,code = <0x9e>; + press-threshold-microvolt = <0x13eb9c>; + }; + }; + + vcc2v5-ddr { + compatible = "regulator-fixed"; + regulator-name = "vcc2v5-sys"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <0x2625a0>; + regulator-max-microvolt = <0x2625a0>; + vin-supply = <0x46>; + }; + + pcie30-avdd0v9 { + compatible = "regulator-fixed"; + regulator-name = "pcie30_avdd0v9"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <0xdbba0>; + regulator-max-microvolt = <0xdbba0>; + vin-supply = <0x46>; + }; + + pcie30-avdd1v8 { + compatible = "regulator-fixed"; + regulator-name = "pcie30_avdd1v8"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <0x1b7740>; + regulator-max-microvolt = <0x1b7740>; + vin-supply = <0x46>; + }; + + gpio-regulator { + compatible = "regulator-gpio"; + regulator-name = "pcie30_3v3"; + regulator-min-microvolt = <0x186a0>; + regulator-max-microvolt = <0x325aa0>; + gpios = <0x3f 0x1c 0x00>; + gpios-states = <0x01>; + states = <0x186a0 0x00 0x325aa0 0x01>; + phandle = <0xc2>; + }; + + vcc3v3-bu { + compatible = "regulator-fixed"; + regulator-name = "vcc3v3_bu"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <0x325aa0>; + regulator-max-microvolt = <0x325aa0>; + vin-supply = <0x3e>; + }; + + sdio-pwrseq { + compatible = "mmc-pwrseq-simple"; + clocks = <0x152 0x01>; + clock-names = "ext_clock"; + pinctrl-names = "default"; + pinctrl-0 = <0x153>; + post-power-on-delay-ms = <0x64>; + reset-gpios = <0x4a 0x1d 0x01>; + status = "okay"; + phandle = <0xb3>; + }; + + wireless-wlan { + compatible = "wlan-platdata"; + rockchip,grf = <0x3b>; + wifi_chip_type = "ap6256"; + pinctrl-names = "default"; + pinctrl-0 = <0x154>; + WIFI,host_wake_irq = <0x4a 0x1c 0x00>; + status = "okay"; + }; + + wireless-bluetooth { + compatible = "bluetooth-platdata"; + clocks = <0x152 0x01>; + clock-names = "ext_clock"; + uart_rts_gpios = <0x91 0x09 0x01>; + pinctrl-names = "default\0rts_gpio"; + pinctrl-0 = <0x155>; + pinctrl-1 = <0x156>; + BT,reset_gpio = <0x4a 0x00 0x00>; + BT,wake_gpio = <0x4a 0x02 0x00>; + BT,wake_host_irq = <0x4a 0x01 0x00>; + status = "okay"; + }; + + flash-led { + compatible = "led,rgb13h"; + label = "pwm-flash-led"; + led-max-microamp = <0x4e20>; + flash-max-microamp = <0x4e20>; + flash-max-timeout-us = <0xf4240>; + pwms = <0x157 0x00 0x61a8 0x00>; + rockchip,camera-module-index = <0x01>; + rockchip,camera-module-facing = "front"; + status = "disabled"; + }; + + vcc-camera-regulator { + compatible = "regulator-fixed"; + gpio = <0x102 0x03 0x00>; + pinctrl-names = "default"; + pinctrl-0 = <0x158>; + regulator-name = "vcc_camera"; + enable-active-high; + status = "disabled"; + }; + + vcc-hub-reset-regulator { + compatible = "regulator-fixed"; + enable-active-high; + gpio = <0x159 0x04 0x00>; + pinctrl-names = "default"; + pinctrl-0 = <0x15a>; + regulator-name = "vcc_hub_reset_en"; + regulator-always-on; + }; + + pcie-pi6c-oe-regulator { + compatible = "regulator-fixed"; + gpio = <0x4a 0x07 0x01>; + pinctrl-names = "default"; + pinctrl-0 = <0x15b>; + regulator-name = "pcie_pi6c_oe_en"; + regulator-always-on; + }; + + vcc-4g-power-regulator { + compatible = "regulator-fixed"; + enable-active-high; + gpio = <0x4a 0x03 0x00>; + pinctrl-names = "default"; + pinctrl-0 = <0x15c>; + regulator-name = "vcc_4g_power_en"; + regulator-always-on; + }; + + leds { + status = "okay"; + compatible = "gpio-leds"; + pinctrl-names = "default"; + pinctrl-0 = <0x15d>; + + power { + label = "firefly:blue:power"; + linux,default-trigger = "ir-power-click"; + default-state = "on"; + gpios = <0x159 0x0a 0x00>; + }; + + user { + label = "firefly:yellow:user"; + linux,default-trigger = "ir-user-click"; + default-state = "off"; + gpios = <0x159 0x09 0x00>; + }; + + diy1 { + label = "firefly:green:diy"; + linux,default-trigger = "ir-user-click"; + default-state = "off"; + gpios = <0x159 0x08 0x00>; + }; + + diy2 { + label = "firefly:yellow:diy"; + linux,default-trigger = "ir-user-click"; + default-state = "off"; + gpios = <0x91 0x11 0x00>; + }; + }; +}; \ No newline at end of file diff --git a/configs/vms_bkp/linux-aarch64-rk3568_smp1.toml b/configs/vms_bkp/linux-aarch64-rk3568_smp1.toml new file mode 100644 index 00000000..69217e45 --- /dev/null +++ b/configs/vms_bkp/linux-aarch64-rk3568_smp1.toml @@ -0,0 +1,86 @@ +# Vm base info configs +# +[base] +# Guest vm id. +id = 2 +# Guest vm name. +name = "linux" +# Virtualization type. +vm_type = 1 +# The number of virtual CPUs. +cpu_num = 1 +# The physical CPU ids. +phys_cpu_ids = [0x00] +# Guest vm physical cpu sets. +phys_cpu_sets = [1] + +# +# Vm kernel configs +# +[kernel] +# The entry point of the kernel image. +entry_point = 0x8008_0000 +# The location of image: "memory" | "fs". +# Load from memory. +image_location = "memory" +# The load address of the kernel image. +kernel_load_addr = 0x8008_0000 +## The file path of the kernel image. +kernel_path = "/path/Image" +## The file path of the device tree blob (DTB). +dtb_load_addr = 0x8000_0000 +dtb_path = "/path/linux-aarch64-rk3568_smp1.dtb" +# Memory regions with format (`base_paddr`, `size`, `flags`, `map_type`). +# For `map_type`, 0 means `MAP_ALLOC`, 1 means `MAP_IDENTICAL`. +memory_regions = [ + [0x8000_0000, 0x6000_0000, 0x7, 1], # System RAM 1G MAP_IDENTICAL +] +# +# Device specifications +# +[devices] +# The interrupt mode. +interrupt_mode = "passthrough" +# Emu_devices. +# Name Base-Ipa Ipa_len Alloc-Irq Emu-Type EmuConfig. +emu_devices = [] + +# Pass-through devices. +# Name Base-Ipa Base-Pa Length Alloc-Irq. +passthrough_devices = [ + # [ + # "peripherals 1", + # 0xf000_0000, + # 0xf000_0000, + # 0xe66_0000, + # 0x1, + # ], + # [ + # "peripherals 2", + # 0xfe67_0000, + # 0xfe67_0000, + # 0x99_0000, + # 0x1, + # ], + [ + "all peripherals", + 0xf0000000, + 0xf0000000, + 0xf000000, + 0x1, + ], + [ + "PCIe related", + 0x3_0000_0000, + 0x3_0000_0000, + 0xd000_0000, + 0x1, + ], + [ + "ramoops, scmi-shmem, etc.", + 0x100000, + 0x100000, + 0x200000, + 0x1, + ], +] diff --git a/configs/vms_bkp/linux-aarch64-rk3568_smp2.dts b/configs/vms_bkp/linux-aarch64-rk3568_smp2.dts new file mode 100644 index 00000000..5475dbe6 --- /dev/null +++ b/configs/vms_bkp/linux-aarch64-rk3568_smp2.dts @@ -0,0 +1,6108 @@ +/dts-v1/; + +/memreserve/ 0x0000000008300000 0x000000000001c000; +/memreserve/ 0x000000000a200000 0x00000000008cf15d; +/ { + serial-number = "425ca8fc29ade692"; + compatible = "rockchip,rk3568-firefly-roc-pc-se\0rockchip,rk3568"; + interrupt-parent = <0x01>; + #address-cells = <0x02>; + #size-cells = <0x02>; + model = "Firefly RK3568-ROC-PC-SE HDMI (Linux)"; + + memory { + reg = <0x00 0x80000000 0x00 0x60000000>; + device_type = "memory"; + }; + + ddr3-params { + version = <0x100>; + expanded_version = <0x00>; + reserved = <0x00>; + freq_0 = <0x420>; + freq_1 = <0x144>; + freq_2 = <0x210>; + freq_3 = <0x30c>; + freq_4 = <0x00>; + freq_5 = <0x00>; + pd_idle = <0x0d>; + sr_idle = <0x5d>; + sr_mc_gate_idle = <0x00>; + srpd_lite_idle = <0x00>; + standby_idle = <0x00>; + pd_dis_freq = <0x42a>; + sr_dis_freq = <0x320>; + dram_dll_dis_freq = <0x12c>; + phy_dll_dis_freq = <0x00>; + phy_dq_drv_odten = <0x21>; + phy_ca_drv_odten = <0x21>; + phy_clk_drv_odten = <0x21>; + dram_dq_drv_odten = <0x22>; + phy_dq_drv_odtoff = <0x21>; + phy_ca_drv_odtoff = <0x21>; + phy_clk_drv_odtoff = <0x21>; + dram_dq_drv_odtoff = <0x22>; + dram_odt = <0x78>; + phy_odt = <0xa7>; + phy_odt_puup_en = <0x01>; + phy_odt_pudn_en = <0x01>; + dram_dq_odt_en_freq = <0x14d>; + phy_odt_en_freq = <0x14d>; + phy_dq_sr_odten = <0x0f>; + phy_ca_sr_odten = <0x03>; + phy_clk_sr_odten = <0x00>; + phy_dq_sr_odtoff = <0x0f>; + phy_ca_sr_odtoff = <0x03>; + phy_clk_sr_odtoff = <0x00>; + ssmod_downspread = <0x00>; + ssmod_div = <0x00>; + ssmod_spread = <0x00>; + mode_2t = <0x00>; + speed_bin = <0x15>; + dram_ext_temp = <0x00>; + byte_map = <0xe4>; + dq_map_cs0_dq_l = <0x00>; + dq_map_cs0_dq_h = <0x00>; + dq_map_cs1_dq_l = <0x00>; + dq_map_cs1_dq_h = <0x00>; + phandle = <0xb7>; + }; + + ddr4-params { + version = <0x100>; + expanded_version = <0x00>; + reserved = <0x00>; + freq_0 = <0x420>; + freq_1 = <0x144>; + freq_2 = <0x210>; + freq_3 = <0x30c>; + freq_4 = <0x00>; + freq_5 = <0x00>; + pd_idle = <0x0d>; + sr_idle = <0x5d>; + sr_mc_gate_idle = <0x00>; + srpd_lite_idle = <0x00>; + standby_idle = <0x00>; + pd_dis_freq = <0x42a>; + sr_dis_freq = <0x320>; + dram_dll_dis_freq = <0x271>; + phy_dll_dis_freq = <0x00>; + phy_dq_drv_odten = <0x25>; + phy_ca_drv_odten = <0x25>; + phy_clk_drv_odten = <0x25>; + dram_dq_drv_odten = <0x22>; + phy_dq_drv_odtoff = <0x25>; + phy_ca_drv_odtoff = <0x25>; + phy_clk_drv_odtoff = <0x25>; + dram_dq_drv_odtoff = <0x22>; + dram_odt = <0x78>; + phy_odt = <0x8b>; + phy_odt_puup_en = <0x01>; + phy_odt_pudn_en = <0x01>; + dram_dq_odt_en_freq = <0x1f4>; + phy_odt_en_freq = <0x1f4>; + phy_dq_sr_odten = <0x0e>; + phy_ca_sr_odten = <0x01>; + phy_clk_sr_odten = <0x01>; + phy_dq_sr_odtoff = <0x0e>; + phy_ca_sr_odtoff = <0x01>; + phy_clk_sr_odtoff = <0x01>; + ssmod_downspread = <0x00>; + ssmod_div = <0x00>; + ssmod_spread = <0x00>; + mode_2t = <0x00>; + speed_bin = <0x0c>; + dram_ext_temp = <0x00>; + byte_map = <0xe4>; + dq_map_cs0_dq_l = <0x22777788>; + dq_map_cs0_dq_h = <0xd7888877>; + dq_map_cs1_dq_l = <0x22777788>; + dq_map_cs1_dq_h = <0xd7888877>; + phandle = <0xb8>; + }; + + lpddr3-params { + version = <0x100>; + expanded_version = <0x00>; + reserved = <0x00>; + freq_0 = <0x420>; + freq_1 = <0x144>; + freq_2 = <0x210>; + freq_3 = <0x30c>; + freq_4 = <0x00>; + freq_5 = <0x00>; + pd_idle = <0x0d>; + sr_idle = <0x5d>; + sr_mc_gate_idle = <0x00>; + srpd_lite_idle = <0x00>; + standby_idle = <0x00>; + pd_dis_freq = <0x42a>; + sr_dis_freq = <0x320>; + dram_dll_dis_freq = <0x00>; + phy_dll_dis_freq = <0x00>; + phy_dq_drv_odten = <0x25>; + phy_ca_drv_odten = <0x25>; + phy_clk_drv_odten = <0x27>; + dram_dq_drv_odten = <0x22>; + phy_dq_drv_odtoff = <0x25>; + phy_ca_drv_odtoff = <0x25>; + phy_clk_drv_odtoff = <0x27>; + dram_dq_drv_odtoff = <0x22>; + dram_odt = <0x78>; + phy_odt = <0x94>; + phy_odt_puup_en = <0x01>; + phy_odt_pudn_en = <0x01>; + dram_dq_odt_en_freq = <0x14d>; + phy_odt_en_freq = <0x14d>; + phy_dq_sr_odten = <0x0f>; + phy_ca_sr_odten = <0x01>; + phy_clk_sr_odten = <0x0f>; + phy_dq_sr_odtoff = <0x0f>; + phy_ca_sr_odtoff = <0x01>; + phy_clk_sr_odtoff = <0x0f>; + ssmod_downspread = <0x00>; + ssmod_div = <0x00>; + ssmod_spread = <0x00>; + mode_2t = <0x00>; + speed_bin = <0x00>; + dram_ext_temp = <0x00>; + byte_map = <0x8d>; + dq_map_cs0_dq_l = <0x00>; + dq_map_cs0_dq_h = <0x00>; + dq_map_cs1_dq_l = <0x00>; + dq_map_cs1_dq_h = <0x00>; + phandle = <0xb9>; + }; + + lpddr4-params { + version = <0x100>; + expanded_version = <0x00>; + reserved = <0x00>; + freq_0 = <0x618>; + freq_1 = <0x144>; + freq_2 = <0x210>; + freq_3 = <0x30c>; + freq_4 = <0x00>; + freq_5 = <0x00>; + pd_idle = <0x0d>; + sr_idle = <0x5d>; + sr_mc_gate_idle = <0x00>; + srpd_lite_idle = <0x00>; + standby_idle = <0x00>; + pd_dis_freq = <0x42a>; + sr_dis_freq = <0x320>; + dram_dll_dis_freq = <0x00>; + phy_dll_dis_freq = <0x00>; + phy_dq_drv_odten = <0x1e>; + phy_ca_drv_odten = <0x26>; + phy_clk_drv_odten = <0x26>; + dram_dq_drv_odten = <0x28>; + phy_dq_drv_odtoff = <0x1e>; + phy_ca_drv_odtoff = <0x26>; + phy_clk_drv_odtoff = <0x26>; + dram_dq_drv_odtoff = <0x28>; + dram_odt = <0x50>; + phy_odt = <0x3c>; + phy_odt_puup_en = <0x00>; + phy_odt_pudn_en = <0x00>; + dram_dq_odt_en_freq = <0x320>; + phy_odt_en_freq = <0x320>; + phy_dq_sr_odten = <0x00>; + phy_ca_sr_odten = <0x0f>; + phy_clk_sr_odten = <0x0f>; + phy_dq_sr_odtoff = <0x00>; + phy_ca_sr_odtoff = <0x0f>; + phy_clk_sr_odtoff = <0x0f>; + ssmod_downspread = <0x00>; + ssmod_div = <0x00>; + ssmod_spread = <0x00>; + mode_2t = <0x00>; + speed_bin = <0x00>; + dram_ext_temp = <0x00>; + byte_map = <0xe4>; + dq_map_cs0_dq_l = <0x00>; + dq_map_cs0_dq_h = <0x00>; + dq_map_cs1_dq_l = <0x00>; + dq_map_cs1_dq_h = <0x00>; + lp4_ca_odt = <0x78>; + lp4_drv_pu_cal_odten = <0x01>; + lp4_drv_pu_cal_odtoff = <0x01>; + phy_lp4_drv_pulldown_en_odten = <0x00>; + phy_lp4_drv_pulldown_en_odtoff = <0x00>; + lp4_ca_odt_en_freq = <0x320>; + phy_lp4_cs_drv_odten = <0x00>; + phy_lp4_cs_drv_odtoff = <0x00>; + lp4_odte_ck_en = <0x01>; + lp4_odte_cs_en = <0x01>; + lp4_odtd_ca_en = <0x00>; + phy_lp4_dq_vref_odten = <0xa6>; + lp4_dq_vref_odten = <0x12c>; + lp4_ca_vref_odten = <0x17c>; + phy_lp4_dq_vref_odtoff = <0x1a4>; + lp4_dq_vref_odtoff = <0x1a4>; + lp4_ca_vref_odtoff = <0x1a4>; + phandle = <0xba>; + }; + + lpddr4x-params { + version = <0x100>; + expanded_version = <0x00>; + reserved = <0x00>; + freq_0 = <0x618>; + freq_1 = <0x144>; + freq_2 = <0x210>; + freq_3 = <0x30c>; + freq_4 = <0x00>; + freq_5 = <0x00>; + pd_idle = <0x0d>; + sr_idle = <0x5d>; + sr_mc_gate_idle = <0x00>; + srpd_lite_idle = <0x00>; + standby_idle = <0x00>; + pd_dis_freq = <0x42a>; + sr_dis_freq = <0x320>; + dram_dll_dis_freq = <0x00>; + phy_dll_dis_freq = <0x00>; + phy_dq_drv_odten = <0x1d>; + phy_ca_drv_odten = <0x24>; + phy_clk_drv_odten = <0x24>; + dram_dq_drv_odten = <0x28>; + phy_dq_drv_odtoff = <0x1d>; + phy_ca_drv_odtoff = <0x24>; + phy_clk_drv_odtoff = <0x24>; + dram_dq_drv_odtoff = <0x28>; + dram_odt = <0x50>; + phy_odt = <0x3c>; + phy_odt_puup_en = <0x00>; + phy_odt_pudn_en = <0x00>; + dram_dq_odt_en_freq = <0x320>; + phy_odt_en_freq = <0x320>; + phy_dq_sr_odten = <0x00>; + phy_ca_sr_odten = <0x00>; + phy_clk_sr_odten = <0x00>; + phy_dq_sr_odtoff = <0x00>; + phy_ca_sr_odtoff = <0x00>; + phy_clk_sr_odtoff = <0x00>; + ssmod_downspread = <0x00>; + ssmod_div = <0x00>; + ssmod_spread = <0x00>; + mode_2t = <0x00>; + speed_bin = <0x00>; + dram_ext_temp = <0x00>; + byte_map = <0xe4>; + dq_map_cs0_dq_l = <0x00>; + dq_map_cs0_dq_h = <0x00>; + dq_map_cs1_dq_l = <0x00>; + dq_map_cs1_dq_h = <0x00>; + lp4_ca_odt = <0x78>; + lp4_drv_pu_cal_odten = <0x00>; + lp4_drv_pu_cal_odtoff = <0x00>; + phy_lp4_drv_pulldown_en_odten = <0x00>; + phy_lp4_drv_pulldown_en_odtoff = <0x00>; + lp4_ca_odt_en_freq = <0x320>; + phy_lp4_cs_drv_odten = <0x00>; + phy_lp4_cs_drv_odtoff = <0x00>; + lp4_odte_ck_en = <0x00>; + lp4_odte_cs_en = <0x00>; + lp4_odtd_ca_en = <0x00>; + phy_lp4_dq_vref_odten = <0xa6>; + lp4_dq_vref_odten = <0xe4>; + lp4_ca_vref_odten = <0x157>; + phy_lp4_dq_vref_odtoff = <0x1a4>; + lp4_dq_vref_odtoff = <0x1a4>; + lp4_ca_vref_odtoff = <0x157>; + phandle = <0xbb>; + }; + + aliases { + csi2dphy0 = "/csi2-dphy0"; + csi2dphy1 = "/csi2-dphy1"; + csi2dphy2 = "/csi2-dphy2"; + dsi0 = "/dsi@fe060000"; + dsi1 = "/dsi@fe070000"; + ethernet0 = "/ethernet@fe2a0000"; + ethernet1 = "/ethernet@fe010000"; + gpio0 = "/pinctrl/gpio0@fdd60000"; + gpio1 = "/pinctrl/gpio1@fe740000"; + gpio2 = "/pinctrl/gpio2@fe750000"; + gpio3 = "/pinctrl/gpio3@fe760000"; + gpio4 = "/pinctrl/gpio4@fe770000"; + i2c0 = "/i2c@fdd40000"; + i2c1 = "/i2c@fe5a0000"; + i2c2 = "/i2c@fe5b0000"; + i2c3 = "/i2c@fe5c0000"; + i2c4 = "/i2c@fe5d0000"; + i2c5 = "/i2c@fe5e0000"; + mmc0 = "/sdhci@fe310000"; + mmc1 = "/dwmmc@fe2b0000"; + mmc2 = "/dwmmc@fe2c0000"; + mmc3 = "/dwmmc@fe000000"; + serial0 = "/serial@fdd50000"; + serial1 = "/serial@fe650000"; + serial2 = "/serial@fe660000"; + serial3 = "/serial@fe670000"; + serial4 = "/serial@fe680000"; + serial5 = "/serial@fe690000"; + serial6 = "/serial@fe6a0000"; + serial7 = "/serial@fe6b0000"; + serial8 = "/serial@fe6c0000"; + serial9 = "/serial@fe6d0000"; + spi0 = "/spi@fe610000"; + spi1 = "/spi@fe620000"; + spi2 = "/spi@fe630000"; + spi3 = "/spi@fe640000"; + lvds0 = "/syscon@fdc60000/lvds"; + lvds1 = "/syscon@fdc60000/lvds1"; + }; + + cpus { + #address-cells = <0x02>; + #size-cells = <0x00>; + + // cpu@0 { + // device_type = "cpu"; + // compatible = "arm,cortex-a55"; + // reg = <0x00 0x00>; + // enable-method = "psci"; + // clocks = <0x02 0x00>; + // operating-points-v2 = <0x03>; + // cpu-idle-states = <0x04>; + // #cooling-cells = <0x02>; + // dynamic-power-coefficient = <0xbb>; + // cpu-supply = <0x05>; + // phandle = <0x0c>; + // }; + + // cpu@100 { + // device_type = "cpu"; + // compatible = "arm,cortex-a55"; + // reg = <0x00 0x100>; + // enable-method = "psci"; + // clocks = <0x02 0x00>; + // operating-points-v2 = <0x03>; + // cpu-idle-states = <0x04>; + // phandle = <0x0d>; + // }; + + cpu@200 { + device_type = "cpu"; + compatible = "arm,cortex-a55"; + reg = <0x00 0x200>; + enable-method = "psci"; + clocks = <0x02 0x00>; + operating-points-v2 = <0x03>; + cpu-idle-states = <0x04>; + phandle = <0x0e>; + }; + + cpu@300 { + device_type = "cpu"; + compatible = "arm,cortex-a55"; + reg = <0x00 0x300>; + enable-method = "psci"; + clocks = <0x02 0x00>; + operating-points-v2 = <0x03>; + cpu-idle-states = <0x04>; + phandle = <0x0f>; + }; + + idle-states { + entry-method = "psci"; + + cpu-sleep { + compatible = "arm,idle-state"; + local-timer-stop; + arm,psci-suspend-param = <0x10000>; + entry-latency-us = <0x64>; + exit-latency-us = <0x78>; + min-residency-us = <0x3e8>; + phandle = <0x04>; + }; + }; + }; + + cpu0-opp-table { + compatible = "operating-points-v2"; + opp-shared; + mbist-vmin = <0xc96a8 0xdbba0 0xe7ef0>; + nvmem-cells = <0x06 0x07 0x08 0x09 0x0a 0x0b>; + nvmem-cell-names = "leakage\0pvtm\0mbist-vmin\0opp-info\0specification_serial_number\0remark_spec_serial_number"; + rockchip,supported-hw; + rockchip,max-volt = <0x118c30>; + rockchip,pvtm-voltage-sel = <0x00 0x14820 0x00 0x14821 0x153d8 0x01 0x153d9 0x16378 0x02 0x16379 0x186a0 0x03>; + rockchip,pvtm-freq = <0x639c0>; + rockchip,pvtm-volt = <0xdbba0>; + rockchip,pvtm-ch = <0x00 0x05>; + rockchip,pvtm-sample-time = <0x3e8>; + rockchip,pvtm-number = <0x0a>; + rockchip,pvtm-error = <0x3e8>; + rockchip,pvtm-ref-temp = <0x28>; + rockchip,pvtm-temp-prop = <0x1a 0x1a>; + rockchip,thermal-zone = "soc-thermal"; + rockchip,temp-hysteresis = <0x1388>; + rockchip,low-temp = <0x00>; + rockchip,low-temp-adjust-volt = <0x00 0x7c8 0x124f8>; + phandle = <0x03>; + + opp-408000000 { + opp-supported-hw = <0xfb 0xffff>; + opp-hz = <0x00 0x18519600>; + opp-microvolt = <0xcf850 0xcf850 0x118c30>; + clock-latency-ns = <0x9c40>; + }; + + opp-600000000 { + opp-supported-hw = <0xfb 0xffff>; + opp-hz = <0x00 0x23c34600>; + opp-microvolt = <0xcf850 0xcf850 0x118c30>; + clock-latency-ns = <0x9c40>; + }; + + opp-816000000 { + opp-supported-hw = <0xfb 0xffff>; + opp-hz = <0x00 0x30a32c00>; + opp-microvolt = <0xcf850 0xcf850 0x118c30>; + clock-latency-ns = <0x9c40>; + opp-suspend; + }; + + opp-1104000000 { + opp-supported-hw = <0xfb 0xffff>; + opp-hz = <0x00 0x41cdb400>; + opp-microvolt = <0xdbba0 0xdbba0 0x118c30>; + opp-microvolt-L0 = <0xdbba0 0xdbba0 0x118c30>; + opp-microvolt-L1 = <0xcf850 0xcf850 0x118c30>; + opp-microvolt-L2 = <0xcf850 0xcf850 0x118c30>; + opp-microvolt-L3 = <0xcf850 0xcf850 0x118c30>; + clock-latency-ns = <0x9c40>; + }; + + opp-1416000000 { + opp-supported-hw = <0xfb 0xffff>; + opp-hz = <0x00 0x54667200>; + opp-microvolt = <0xfa3e8 0xfa3e8 0x118c30>; + opp-microvolt-L0 = <0xfa3e8 0xfa3e8 0x118c30>; + opp-microvolt-L1 = <0xee098 0xee098 0x118c30>; + opp-microvolt-L2 = <0xe7ef0 0xe7ef0 0x118c30>; + opp-microvolt-L3 = <0xe1d48 0xe1d48 0x118c30>; + clock-latency-ns = <0x9c40>; + }; + + opp-1608000000 { + opp-supported-hw = <0xf9 0xffff>; + opp-hz = <0x00 0x5fd82200>; + opp-microvolt = <0x10c8e0 0x10c8e0 0x118c30>; + opp-microvolt-L0 = <0x10c8e0 0x10c8e0 0x118c30>; + opp-microvolt-L1 = <0x100590 0x100590 0x118c30>; + opp-microvolt-L2 = <0xfa3e8 0xfa3e8 0x118c30>; + opp-microvolt-L3 = <0xf4240 0xf4240 0x118c30>; + clock-latency-ns = <0x9c40>; + }; + + opp-1800000000 { + opp-supported-hw = <0xf9 0xffff>; + opp-hz = <0x00 0x6b49d200>; + opp-microvolt = <0x118c30 0x118c30 0x118c30>; + opp-microvolt-L0 = <0x118c30 0x118c30 0x118c30>; + opp-microvolt-L1 = <0x10c8e0 0x10c8e0 0x118c30>; + opp-microvolt-L2 = <0x106738 0x106738 0x118c30>; + opp-microvolt-L3 = <0x100590 0x100590 0x118c30>; + clock-latency-ns = <0x9c40>; + }; + + opp-1992000000 { + opp-supported-hw = <0xf9 0xffff>; + opp-hz = <0x00 0x76bb8200>; + opp-microvolt = <0x118c30 0x118c30 0x118c30>; + opp-microvolt-L0 = <0x118c30 0x118c30 0x118c30>; + opp-microvolt-L1 = <0x118c30 0x118c30 0x118c30>; + opp-microvolt-L2 = <0x112a88 0x112a88 0x118c30>; + opp-microvolt-L3 = <0x10c8e0 0x10c8e0 0x118c30>; + clock-latency-ns = <0x9c40>; + }; + + opp-j-1008000000 { + opp-supported-hw = <0x04 0xffff>; + opp-hz = <0x00 0x3c14dc00>; + opp-microvolt = <0xcf850 0xcf850 0x118c30>; + clock-latency-ns = <0x9c40>; + }; + + opp-j-1416000000 { + opp-supported-hw = <0x04 0xffff>; + opp-hz = <0x00 0x54667200>; + opp-microvolt = <0xdbba0 0xdbba0 0x118c30>; + clock-latency-ns = <0x9c40>; + }; + + opp-m-1608000000 { + opp-supported-hw = <0x02 0xffff>; + opp-hz = <0x00 0x5fd82200>; + opp-microvolt = <0xf4240 0xf4240 0x118c30>; + clock-latency-ns = <0x9c40>; + }; + }; + + arm-pmu { + compatible = "arm,cortex-a55-pmu\0arm,armv8-pmuv3"; + interrupts = <0x00 0xe4 0x04 0x00 0xe5 0x04 0x00 0xe6 0x04 0x00 0xe7 0x04>; + interrupt-affinity = <0x0c 0x0d 0x0e 0x0f>; + }; + + cpuinfo { + compatible = "rockchip,cpuinfo"; + nvmem-cells = <0x10 0x11 0x12>; + nvmem-cell-names = "id\0cpu-version\0cpu-code"; + }; + + display-subsystem { + compatible = "rockchip,display-subsystem"; + memory-region = <0x13 0x14>; + memory-region-names = "drm-logo\0drm-cubic-lut"; + ports = <0x15>; + devfreq = <0x16>; + + route { + + route-dsi0 { + status = "disabled"; + logo,uboot = "logo.bmp"; + logo,kernel = "logo_kernel.bmp"; + logo,mode = "center"; + charge_logo,mode = "center"; + connect = <0x17>; + }; + + route-dsi1 { + status = "disabled"; + logo,uboot = "logo.bmp"; + logo,kernel = "logo_kernel.bmp"; + logo,mode = "center"; + charge_logo,mode = "center"; + connect = <0x18>; + }; + + route-edp { + status = "disabled"; + logo,uboot = "logo.bmp"; + logo,kernel = "logo_kernel.bmp"; + logo,mode = "center"; + charge_logo,mode = "center"; + connect = <0x19>; + }; + + route-hdmi { + status = "okay"; + logo,uboot = "logo.bmp"; + logo,kernel = "logo_kernel.bmp"; + logo,mode = "center"; + charge_logo,mode = "center"; + connect = <0x1a>; + }; + + route-lvds { + status = "disabled"; + logo,uboot = "logo.bmp"; + logo,kernel = "logo_kernel.bmp"; + logo,mode = "center"; + charge_logo,mode = "center"; + connect = <0x1b>; + }; + + route-rgb { + status = "disabled"; + logo,uboot = "logo.bmp"; + logo,kernel = "logo_kernel.bmp"; + logo,mode = "center"; + charge_logo,mode = "center"; + connect = <0x1c>; + }; + }; + }; + + edac { + compatible = "rockchip,rk3568-edac"; + interrupts = <0x00 0xad 0x04 0x00 0xaf 0x04>; + interrupt-names = "ce\0ue"; + status = "disabled"; + }; + + firmware { + + scmi { + compatible = "arm,scmi-smc"; + shmem = <0x1d>; + arm,smc-id = <0x82000010>; + #address-cells = <0x01>; + #size-cells = <0x00>; + + protocol@14 { + reg = <0x14>; + #clock-cells = <0x01>; + rockchip,clk-init = <0x41cdb400>; + phandle = <0x02>; + }; + }; + + sdei { + compatible = "arm,sdei-1.0"; + method = "smc"; + }; + }; + + mipi-csi2 { + compatible = "rockchip,rk3568-mipi-csi2"; + rockchip,hw = <0x1e>; + status = "disabled"; + }; + + mpp-srv { + compatible = "rockchip,mpp-service"; + rockchip,taskqueue-count = <0x06>; + rockchip,resetgroup-count = <0x06>; + status = "okay"; + phandle = <0x7b>; + }; + + psci { + compatible = "arm,psci-1.0"; + method = "smc"; + }; + + reserved-memory { + #address-cells = <0x02>; + #size-cells = <0x02>; + ranges; + + drm-logo@00000000 { + compatible = "rockchip,drm-logo"; + reg = <0x00 0xedf00000 0x00 0x2e0000>; + phandle = <0x13>; + }; + + drm-cubic-lut@00000000 { + compatible = "rockchip,drm-cubic-lut"; + reg = <0x00 0xeff00000 0x00 0x8000>; + phandle = <0x14>; + }; + + ramoops@110000 { + compatible = "ramoops"; + reg = <0x00 0x110000 0x00 0xf0000>; + record-size = <0x20000>; + console-size = <0x80000>; + ftrace-size = <0x00>; + pmsg-size = <0x50000>; + }; + }; + + rockchip-suspend { + compatible = "rockchip,pm-rk3568"; + status = "okay"; + rockchip,sleep-debug-en = <0x01>; + rockchip,sleep-mode-config = <0x5ec>; + rockchip,wakeup-config = <0x10>; + }; + + rockchip-system-monitor { + compatible = "rockchip,system-monitor"; + rockchip,thermal-zone = "soc-thermal"; + }; + + thermal-zones { + + soc-thermal { + polling-delay-passive = <0x14>; + polling-delay = <0x3e8>; + sustainable-power = <0x389>; + thermal-sensors = <0x1f 0x00>; + + trips { + + trip-point-0 { + temperature = <0x124f8>; + hysteresis = <0x7d0>; + type = "passive"; + }; + + trip-point-1 { + temperature = <0x14c08>; + hysteresis = <0x7d0>; + type = "passive"; + phandle = <0x20>; + }; + + soc-crit { + temperature = <0x1c138>; + hysteresis = <0x7d0>; + type = "critical"; + }; + }; + + cooling-maps { + + map0 { + trip = <0x20>; + cooling-device = <0x0c 0xffffffff 0xffffffff>; + contribution = <0x400>; + }; + + map1 { + trip = <0x20>; + cooling-device = <0x21 0xffffffff 0xffffffff>; + contribution = <0x400>; + }; + }; + }; + + gpu-thermal { + polling-delay-passive = <0x14>; + polling-delay = <0x3e8>; + thermal-sensors = <0x1f 0x01>; + }; + }; + + timer { + compatible = "arm,armv8-timer"; + interrupts = <0x01 0x0d 0xf04 0x01 0x0e 0xf04 0x01 0x0b 0xf04 0x01 0x0a 0xf04>; + arm,no-tick-in-suspend; + }; + + external-gmac0-clock { + compatible = "fixed-clock"; + clock-frequency = <0x7735940>; + clock-output-names = "gmac0_clkin"; + #clock-cells = <0x00>; + phandle = <0xc7>; + }; + + external-gmac1-clock { + compatible = "fixed-clock"; + clock-frequency = <0x7735940>; + clock-output-names = "gmac1_clkin"; + #clock-cells = <0x00>; + phandle = <0x92>; + }; + + xpcs-gmac0-clock { + compatible = "fixed-clock"; + clock-frequency = <0x7735940>; + clock-output-names = "clk_gmac0_xpcs_mii"; + #clock-cells = <0x00>; + }; + + xpcs-gmac1-clock { + compatible = "fixed-clock"; + clock-frequency = <0x7735940>; + clock-output-names = "clk_gmac1_xpcs_mii"; + #clock-cells = <0x00>; + }; + + i2s1-mclkin-rx { + compatible = "fixed-clock"; + #clock-cells = <0x00>; + clock-frequency = <0xbb8000>; + clock-output-names = "i2s1_mclkin_rx"; + }; + + i2s1-mclkin-tx { + compatible = "fixed-clock"; + #clock-cells = <0x00>; + clock-frequency = <0xbb8000>; + clock-output-names = "i2s1_mclkin_tx"; + }; + + i2s2-mclkin { + compatible = "fixed-clock"; + #clock-cells = <0x00>; + clock-frequency = <0xbb8000>; + clock-output-names = "i2s2_mclkin"; + }; + + i2s3-mclkin { + compatible = "fixed-clock"; + #clock-cells = <0x00>; + clock-frequency = <0xbb8000>; + clock-output-names = "i2s3_mclkin"; + }; + + mpll { + compatible = "fixed-clock"; + #clock-cells = <0x00>; + clock-frequency = <0x2faf0800>; + clock-output-names = "mpll"; + }; + + xin24m { + compatible = "fixed-clock"; + #clock-cells = <0x00>; + clock-frequency = <0x16e3600>; + clock-output-names = "xin24m"; + }; + + xin32k { + compatible = "fixed-clock"; + clock-frequency = <0x8000>; + clock-output-names = "xin32k"; + #clock-cells = <0x00>; + pinctrl-names = "default"; + pinctrl-0 = <0x22>; + }; + + scmi-shmem@10f000 { + compatible = "arm,scmi-shmem"; + reg = <0x00 0x10f000 0x00 0x100>; + phandle = <0x1d>; + }; + + sata@fc000000 { + compatible = "snps,dwc-ahci"; + reg = <0x00 0xfc000000 0x00 0x1000>; + clocks = <0x23 0x96 0x23 0x97 0x23 0x98>; + clock-names = "sata\0pmalive\0rxoob"; + interrupts = <0x00 0x5e 0x04>; + interrupt-names = "hostc"; + phys = <0x24 0x01>; + phy-names = "sata-phy"; + ports-implemented = <0x01>; + power-domains = <0x25 0x0f>; + status = "disabled"; + }; + + sata@fc400000 { + compatible = "snps,dwc-ahci"; + reg = <0x00 0xfc400000 0x00 0x1000>; + clocks = <0x23 0x9b 0x23 0x9c 0x23 0x9d>; + clock-names = "sata\0pmalive\0rxoob"; + interrupts = <0x00 0x5f 0x04>; + interrupt-names = "hostc"; + phys = <0x26 0x01>; + phy-names = "sata-phy"; + ports-implemented = <0x01>; + power-domains = <0x25 0x0f>; + status = "disabled"; + }; + + sata@fc800000 { + compatible = "snps,dwc-ahci"; + reg = <0x00 0xfc800000 0x00 0x1000>; + clocks = <0x23 0xa0 0x23 0xa1 0x23 0xa2>; + clock-names = "sata\0pmalive\0rxoob"; + interrupts = <0x00 0x60 0x04>; + interrupt-names = "hostc"; + phys = <0x27 0x01>; + phy-names = "sata-phy"; + ports-implemented = <0x01>; + power-domains = <0x25 0x0f>; + status = "okay"; + }; + + usbdrd { + compatible = "rockchip,rk3568-dwc3\0rockchip,rk3399-dwc3"; + clocks = <0x23 0xa6 0x23 0xa7 0x23 0xa5 0x23 0x7f>; + clock-names = "ref_clk\0suspend_clk\0bus_clk\0pipe_clk"; + #address-cells = <0x02>; + #size-cells = <0x02>; + ranges; + status = "okay"; + + dwc3@fcc00000 { + compatible = "snps,dwc3"; + reg = <0x00 0xfcc00000 0x00 0x400000>; + interrupts = <0x00 0xa9 0x04>; + dr_mode = "otg"; + phys = <0x28 0x24 0x04>; + phy-names = "usb2-phy\0usb3-phy"; + phy_type = "utmi_wide"; + power-domains = <0x25 0x0f>; + resets = <0x23 0x94>; + reset-names = "usb3-otg"; + snps,dis_enblslpm_quirk; + snps,dis-u1-entry-quirk; + snps,dis-u2-entry-quirk; + snps,dis-u2-freeclk-exists-quirk; + snps,dis-del-phy-power-chg-quirk; + snps,dis-tx-ipgap-linecheck-quirk; + snps,dis_rxdet_inp3_quirk; + snps,parkmode-disable-hs-quirk; + snps,parkmode-disable-ss-quirk; + quirk-skip-phy-init; + status = "okay"; + extcon = <0x29>; + usb-role-switch; + + port { + #address-cells = <0x01>; + #size-cells = <0x00>; + + endpoint@0 { + reg = <0x00>; + remote-endpoint = <0x2a>; + phandle = <0x4d>; + }; + }; + }; + }; + + usbhost { + compatible = "rockchip,rk3568-dwc3\0rockchip,rk3399-dwc3"; + clocks = <0x23 0xa9 0x23 0xaa 0x23 0xa8 0x23 0x7f>; + clock-names = "ref_clk\0suspend_clk\0bus_clk\0pipe_clk"; + #address-cells = <0x02>; + #size-cells = <0x02>; + ranges; + status = "okay"; + + dwc3@fd000000 { + compatible = "snps,dwc3"; + reg = <0x00 0xfd000000 0x00 0x400000>; + interrupts = <0x00 0xaa 0x04>; + dr_mode = "host"; + phys = <0x2b 0x26 0x04>; + phy-names = "usb2-phy\0usb3-phy"; + phy_type = "utmi_wide"; + power-domains = <0x25 0x0f>; + resets = <0x23 0x95>; + reset-names = "usb3-host"; + snps,dis_enblslpm_quirk; + snps,dis-u2-freeclk-exists-quirk; + snps,dis-del-phy-power-chg-quirk; + snps,dis-tx-ipgap-linecheck-quirk; + snps,dis_rxdet_inp3_quirk; + snps,parkmode-disable-hs-quirk; + snps,parkmode-disable-ss-quirk; + status = "okay"; + }; + }; + + interrupt-controller@fd400000 { + compatible = "arm,gic-v3"; + #interrupt-cells = <0x03>; + #address-cells = <0x02>; + #size-cells = <0x02>; + ranges; + interrupt-controller; + reg = <0x00 0xfd400000 0x00 0x10000 0x00 0xfd460000 0x00 0xc0000>; + interrupts = <0x01 0x09 0x04>; + phandle = <0x01>; + + interrupt-controller@fd440000 { + compatible = "arm,gic-v3-its"; + msi-controller; + #msi-cells = <0x01>; + reg = <0x00 0xfd440000 0x00 0x20000>; + status = "okay"; + phandle = <0xbe>; + }; + }; + + usb@fd800000 { + compatible = "generic-ehci"; + reg = <0x00 0xfd800000 0x00 0x40000>; + interrupts = <0x00 0x82 0x04>; + clocks = <0x23 0xbd 0x23 0xbe 0x23 0xbc 0x2c>; + clock-names = "usbhost\0arbiter\0pclk\0utmi"; + phys = <0x2d>; + phy-names = "usb2-phy"; + status = "okay"; + }; + + usb@fd840000 { + compatible = "generic-ohci"; + reg = <0x00 0xfd840000 0x00 0x40000>; + interrupts = <0x00 0x83 0x04>; + clocks = <0x23 0xbd 0x23 0xbe 0x23 0xbc 0x2c>; + clock-names = "usbhost\0arbiter\0pclk\0utmi"; + phys = <0x2d>; + phy-names = "usb2-phy"; + status = "okay"; + }; + + usb@fd880000 { + compatible = "generic-ehci"; + reg = <0x00 0xfd880000 0x00 0x40000>; + interrupts = <0x00 0x85 0x04>; + clocks = <0x23 0xbf 0x23 0xc0 0x23 0xbc 0x2c>; + clock-names = "usbhost\0arbiter\0pclk\0utmi"; + phys = <0x2e>; + phy-names = "usb2-phy"; + status = "okay"; + }; + + usb@fd8c0000 { + compatible = "generic-ohci"; + reg = <0x00 0xfd8c0000 0x00 0x40000>; + interrupts = <0x00 0x86 0x04>; + clocks = <0x23 0xbf 0x23 0xc0 0x23 0xbc 0x2c>; + clock-names = "usbhost\0arbiter\0pclk\0utmi"; + phys = <0x2e>; + phy-names = "usb2-phy"; + status = "okay"; + }; + + syscon@fda00000 { + compatible = "rockchip,rk3568-xpcs\0syscon"; + reg = <0x00 0xfda00000 0x00 0x200000>; + status = "disabled"; + }; + + syscon@fdc20000 { + compatible = "rockchip,rk3568-pmugrf\0syscon\0simple-mfd"; + reg = <0x00 0xfdc20000 0x00 0x10000>; + phandle = <0x3c>; + + io-domains { + compatible = "rockchip,rk3568-pmu-io-voltage-domain"; + status = "okay"; + pmuio1-supply = <0x2f>; + pmuio2-supply = <0x2f>; + vccio1-supply = <0x30>; + vccio3-supply = <0x31>; + vccio4-supply = <0x32>; + vccio5-supply = <0x33>; + vccio6-supply = <0x32>; + vccio7-supply = <0x33>; + }; + + reboot-mode { + compatible = "syscon-reboot-mode"; + offset = <0x200>; + mode-bootloader = <0x5242c301>; + mode-charge = <0x5242c30b>; + mode-fastboot = <0x5242c309>; + mode-loader = <0x5242c301>; + mode-normal = <0x5242c300>; + mode-recovery = <0x5242c303>; + mode-ums = <0x5242c30c>; + mode-panic = <0x5242c307>; + mode-watchdog = <0x5242c308>; + }; + }; + + syscon@fdc50000 { + compatible = "rockchip,rk3568-pipegrf\0syscon"; + reg = <0x00 0xfdc50000 0x00 0x1000>; + phandle = <0x12a>; + }; + + syscon@fdc60000 { + compatible = "rockchip,rk3568-grf\0syscon\0simple-mfd"; + reg = <0x00 0xfdc60000 0x00 0x10000>; + phandle = <0x3b>; + + io-domains { + compatible = "rockchip,rk3568-io-voltage-domain"; + status = "disabled"; + }; + + lvds { + compatible = "rockchip,rk3568-lvds"; + phys = <0x34>; + phy-names = "phy"; + status = "disabled"; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + reg = <0x00>; + #address-cells = <0x01>; + #size-cells = <0x00>; + + endpoint@1 { + reg = <0x01>; + remote-endpoint = <0x1b>; + status = "disabled"; + phandle = <0xa3>; + }; + + endpoint@2 { + reg = <0x02>; + remote-endpoint = <0x35>; + status = "disabled"; + phandle = <0xa5>; + }; + }; + }; + }; + + lvds1 { + compatible = "rockchip,rk3568-lvds"; + phys = <0x36>; + phy-names = "phy"; + status = "disabled"; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + reg = <0x00>; + #address-cells = <0x01>; + #size-cells = <0x00>; + + endpoint@0 { + reg = <0x00>; + remote-endpoint = <0x37>; + phandle = <0xa4>; + }; + + endpoint@1 { + reg = <0x01>; + remote-endpoint = <0x38>; + phandle = <0xa7>; + }; + }; + }; + }; + + rgb { + compatible = "rockchip,rk3568-rgb"; + pinctrl-names = "default"; + pinctrl-0 = <0x39>; + status = "disabled"; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + reg = <0x00>; + #address-cells = <0x01>; + #size-cells = <0x00>; + + endpoint@2 { + reg = <0x02>; + remote-endpoint = <0x1c>; + status = "disabled"; + phandle = <0xa6>; + }; + }; + }; + }; + }; + + syscon@fdc70000 { + compatible = "rockchip,pipe-phy-grf\0syscon"; + reg = <0x00 0xfdc70000 0x00 0x1000>; + phandle = <0x12b>; + }; + + syscon@fdc80000 { + compatible = "rockchip,pipe-phy-grf\0syscon"; + reg = <0x00 0xfdc80000 0x00 0x1000>; + phandle = <0x12c>; + }; + + syscon@fdc90000 { + compatible = "rockchip,pipe-phy-grf\0syscon"; + reg = <0x00 0xfdc90000 0x00 0x1000>; + phandle = <0x12d>; + }; + + syscon@fdca0000 { + compatible = "rockchip,rk3568-usb2phy-grf\0syscon"; + reg = <0x00 0xfdca0000 0x00 0x8000>; + phandle = <0x135>; + }; + + syscon@fdca8000 { + compatible = "rockchip,rk3568-usb2phy-grf\0syscon"; + reg = <0x00 0xfdca8000 0x00 0x8000>; + phandle = <0x137>; + }; + + syscon@fdcb0000 { + compatible = "rockchip,rk3568-edp-phy-grf\0syscon\0simple-mfd"; + reg = <0x00 0xfdcb0000 0x00 0x100>; + clocks = <0x23 0x192>; + + edp-phy { + compatible = "rockchip,rk3568-edp-phy"; + clocks = <0x3a 0x29>; + clock-names = "refclk"; + #phy-cells = <0x00>; + status = "disabled"; + phandle = <0xae>; + }; + }; + + syscon@fdcb8000 { + compatible = "rockchip,pcie30-phy-grf\0syscon"; + reg = <0x00 0xfdcb8000 0x00 0x10000>; + phandle = <0x138>; + }; + + sram@fdcc0000 { + compatible = "mmio-sram"; + reg = <0x00 0xfdcc0000 0x00 0xb000>; + #address-cells = <0x01>; + #size-cells = <0x01>; + ranges = <0x00 0x00 0xfdcc0000 0xb000>; + + rkvdec-sram@0 { + reg = <0x00 0xb000>; + phandle = <0x84>; + }; + }; + + clock-controller@fdd00000 { + compatible = "rockchip,rk3568-pmucru"; + reg = <0x00 0xfdd00000 0x00 0x1000>; + rockchip,grf = <0x3b>; + rockchip,pmugrf = <0x3c>; + #clock-cells = <0x01>; + #reset-cells = <0x01>; + assigned-clocks = <0x3a 0x32>; + assigned-clock-parents = <0x3a 0x05>; + phandle = <0x3a>; + }; + + clock-controller@fdd20000 { + compatible = "rockchip,rk3568-cru"; + reg = <0x00 0xfdd20000 0x00 0x1000>; + rockchip,grf = <0x3b>; + #clock-cells = <0x01>; + #reset-cells = <0x01>; + assigned-clocks = <0x3a 0x05 0x23 0x106 0x23 0x10b 0x3a 0x01 0x3a 0x2b 0x23 0x03 0x23 0x19b 0x23 0x09 0x23 0x19c 0x23 0x19d 0x23 0x1a1 0x23 0x19e 0x23 0x19f 0x23 0x1a0 0x23 0x04 0x23 0x10d 0x23 0x10e 0x23 0x173 0x23 0x174 0x23 0x175 0x23 0x176 0x23 0xc9 0x23 0xca 0x23 0x06 0x23 0x7e 0x23 0x7f 0x23 0x3d 0x23 0x41 0x23 0x45 0x23 0x49 0x23 0x4d 0x23 0x4d 0x23 0x55 0x23 0x51 0x23 0x5d 0x23 0xdd>; + assigned-clock-rates = <0x8000 0x11e1a300 0x11e1a300 0xbebc200 0x5f5e100 0x3b9aca00 0x1dcd6500 0x13d92d40 0xee6b280 0x7735940 0x5f5e100 0x3b9aca0 0x2faf080 0x17d7840 0x46cf7100 0x8f0d180 0x5f5e100 0x1dcd6500 0x17d78400 0x8f0d180 0x5f5e100 0x11e1a300 0x8f0d180 0x47868c00 0x17d78400 0x5f5e100 0x46cf7100 0x46cf7100 0x46cf7100 0x46cf7100 0x46cf7100 0x46cf7100 0x46cf7100 0x46cf7100 0x46cf7100 0x1dcd6500>; + assigned-clock-parents = <0x3a 0x08 0x23 0x04 0x23 0x04>; + phandle = <0x23>; + }; + + i2c@fdd40000 { + compatible = "rockchip,rk3399-i2c"; + reg = <0x00 0xfdd40000 0x00 0x1000>; + clocks = <0x3a 0x07 0x3a 0x2d>; + clock-names = "i2c\0pclk"; + interrupts = <0x00 0x2e 0x04>; + pinctrl-names = "default"; + pinctrl-0 = <0x3d>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "okay"; + + tcs4525@1c { + compatible = "tcs,tcs452x"; + reg = <0x1c>; + vin-supply = <0x3e>; + regulator-compatible = "fan53555-reg"; + regulator-name = "vdd_cpu"; + regulator-min-microvolt = <0xadf34>; + regulator-max-microvolt = <0x1535b0>; + regulator-ramp-delay = <0x8fc>; + fcs,suspend-voltage-selector = <0x01>; + regulator-boot-on; + regulator-always-on; + phandle = <0x05>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + pmic@20 { + compatible = "rockchip,rk809"; + reg = <0x20>; + interrupt-parent = <0x3f>; + interrupts = <0x03 0x08>; + pinctrl-names = "default\0pmic-sleep\0pmic-power-off\0pmic-reset"; + pinctrl-0 = <0x40>; + pinctrl-1 = <0x41 0x42>; + pinctrl-2 = <0x43 0x44>; + pinctrl-3 = <0x43 0x45>; + rockchip,system-power-controller; + wakeup-source; + #clock-cells = <0x01>; + clock-output-names = "rk808-clkout1\0rk808-clkout2"; + pmic-reset-func = <0x00>; + not-save-power-en = <0x01>; + vcc1-supply = <0x46>; + vcc2-supply = <0x46>; + vcc3-supply = <0x46>; + vcc4-supply = <0x46>; + vcc5-supply = <0x46>; + vcc6-supply = <0x46>; + vcc7-supply = <0x46>; + vcc8-supply = <0x46>; + vcc9-supply = <0x46>; + phandle = <0x152>; + + pwrkey { + status = "okay"; + }; + + pinctrl_rk8xx { + gpio-controller; + #gpio-cells = <0x02>; + + rk817_slppin_null { + pins = "gpio_slp"; + function = "pin_fun0"; + }; + + rk817_slppin_slp { + pins = "gpio_slp"; + function = "pin_fun1"; + phandle = <0x42>; + }; + + rk817_slppin_pwrdn { + pins = "gpio_slp"; + function = "pin_fun2"; + phandle = <0x44>; + }; + + rk817_slppin_rst { + pins = "gpio_slp"; + function = "pin_fun3"; + phandle = <0x45>; + }; + }; + + regulators { + + DCDC_REG1 { + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <0x7a120>; + regulator-max-microvolt = <0x149970>; + regulator-init-microvolt = <0xdbba0>; + regulator-ramp-delay = <0x1771>; + regulator-initial-mode = <0x02>; + regulator-name = "vdd_logic"; + phandle = <0x75>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + DCDC_REG2 { + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <0x7a120>; + regulator-max-microvolt = <0x149970>; + regulator-init-microvolt = <0xdbba0>; + regulator-ramp-delay = <0x1771>; + regulator-initial-mode = <0x02>; + regulator-name = "vdd_gpu"; + phandle = <0x77>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + DCDC_REG3 { + regulator-always-on; + regulator-boot-on; + regulator-initial-mode = <0x02>; + regulator-name = "vcc_ddr"; + + regulator-state-mem { + regulator-on-in-suspend; + }; + }; + + DCDC_REG4 { + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <0x7a120>; + regulator-max-microvolt = <0x149970>; + regulator-init-microvolt = <0xdbba0>; + regulator-ramp-delay = <0x1771>; + regulator-initial-mode = <0x02>; + regulator-name = "vdd_npu"; + phandle = <0x71>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + LDO_REG1 { + regulator-boot-on; + regulator-always-on; + regulator-min-microvolt = <0xdbba0>; + regulator-max-microvolt = <0xdbba0>; + regulator-name = "vdda0v9_image"; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + LDO_REG2 { + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <0xdbba0>; + regulator-max-microvolt = <0xdbba0>; + regulator-name = "vdda_0v9"; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + LDO_REG3 { + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <0xdbba0>; + regulator-max-microvolt = <0xdbba0>; + regulator-name = "vdda0v9_pmu"; + + regulator-state-mem { + regulator-on-in-suspend; + regulator-suspend-microvolt = <0xdbba0>; + }; + }; + + LDO_REG4 { + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <0x325aa0>; + regulator-max-microvolt = <0x325aa0>; + regulator-name = "vccio_acodec"; + phandle = <0x30>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + LDO_REG5 { + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <0x1b7740>; + regulator-max-microvolt = <0x325aa0>; + regulator-name = "vccio_sd"; + phandle = <0x31>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + LDO_REG6 { + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <0x325aa0>; + regulator-max-microvolt = <0x325aa0>; + regulator-name = "vcc3v3_pmu"; + phandle = <0x2f>; + + regulator-state-mem { + regulator-on-in-suspend; + regulator-suspend-microvolt = <0x325aa0>; + }; + }; + + LDO_REG7 { + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <0x1b7740>; + regulator-max-microvolt = <0x1b7740>; + regulator-name = "vcca_1v8"; + phandle = <0x129>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + LDO_REG8 { + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <0x1b7740>; + regulator-max-microvolt = <0x1b7740>; + regulator-name = "vcca1v8_pmu"; + + regulator-state-mem { + regulator-on-in-suspend; + regulator-suspend-microvolt = <0x1b7740>; + }; + }; + + LDO_REG9 { + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <0x1b7740>; + regulator-max-microvolt = <0x1b7740>; + regulator-name = "vcca1v8_image"; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + DCDC_REG5 { + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <0x1b7740>; + regulator-max-microvolt = <0x1b7740>; + regulator-name = "vcc_1v8"; + phandle = <0x32>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + SWITCH_REG1 { + regulator-always-on; + regulator-boot-on; + regulator-name = "vcc_3v3"; + phandle = <0x33>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + SWITCH_REG2 { + regulator-always-on; + regulator-boot-on; + regulator-name = "vcc3v3_sd"; + phandle = <0xcf>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + }; + + codec { + #sound-dai-cells = <0x00>; + compatible = "rockchip,rk809-codec\0rockchip,rk817-codec"; + clocks = <0x23 0x1a3>; + clock-names = "mclk"; + assigned-clocks = <0x23 0x1a3 0x23 0x1a6>; + assigned-clock-rates = <0xbb8000>; + assigned-clock-parents = <0x23 0x48 0x23 0x48>; + pinctrl-names = "default\0spk_gpio"; + pinctrl-0 = <0x47>; + pinctrl-1 = <0x48>; + hp-volume = <0x03>; + spk-volume = <0x03>; + mic-in-differential; + board-spk-from-hp; + capture-volume = <0x00>; + io-channels = <0x49 0x07>; + hp-det-adc-value = <0x3e8>; + status = "okay"; + hp-adc-drift-scope = <0x64>; + phandle = <0x14b>; + }; + + rtc { + status = "disabled"; + }; + }; + + fusb302@22 { + compatible = "fcs,fusb302"; + reg = <0x22>; + interrupt-parent = <0x3f>; + fcs,int_n = <0x3f 0x11 0x08>; + fusb340-switch-gpios = <0x4a 0x12 0x00>; + pinctrl-names = "default"; + pinctrl-0 = <0x4b>; + vbus-supply = <0x4c>; + status = "okay"; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + reg = <0x00>; + + endpoint@0 { + remote-endpoint = <0x4d>; + phandle = <0x2a>; + }; + }; + }; + + connector { + compatible = "usb-c-connector"; + label = "USB-C"; + data-role = "dual"; + power-role = "dual"; + try-power-role = "sink"; + op-sink-microwatt = <0xf4240>; + sink-pdos = <0x40190fa>; + source-pdos = <0x4019096>; + }; + }; + }; + + serial@fdd50000 { + compatible = "rockchip,rk3568-uart\0snps,dw-apb-uart"; + reg = <0x00 0xfdd50000 0x00 0x100>; + interrupts = <0x00 0x74 0x04>; + clocks = <0x3a 0x0b 0x3a 0x2c>; + clock-names = "baudclk\0apb_pclk"; + reg-shift = <0x02>; + reg-io-width = <0x04>; + dmas = <0x4e 0x00 0x4e 0x01>; + pinctrl-names = "default"; + pinctrl-0 = <0x4f>; + status = "disabled"; + }; + + pwm@fdd70000 { + compatible = "rockchip,rk3568-pwm\0rockchip,rk3328-pwm"; + reg = <0x00 0xfdd70000 0x00 0x10>; + interrupts = <0x00 0x52 0x04>; + #pwm-cells = <0x03>; + pinctrl-names = "active"; + pinctrl-0 = <0x50>; + clocks = <0x3a 0x0d 0x3a 0x30>; + clock-names = "pwm\0pclk"; + status = "disabled"; + }; + + pwm@fdd70010 { + compatible = "rockchip,rk3568-pwm\0rockchip,rk3328-pwm"; + reg = <0x00 0xfdd70010 0x00 0x10>; + interrupts = <0x00 0x52 0x04>; + #pwm-cells = <0x03>; + pinctrl-names = "active"; + pinctrl-0 = <0x51>; + clocks = <0x3a 0x0d 0x3a 0x30>; + clock-names = "pwm\0pclk"; + status = "disabled"; + }; + + pwm@fdd70020 { + compatible = "rockchip,rk3568-pwm\0rockchip,rk3328-pwm"; + reg = <0x00 0xfdd70020 0x00 0x10>; + interrupts = <0x00 0x52 0x04>; + #pwm-cells = <0x03>; + pinctrl-names = "active"; + pinctrl-0 = <0x52>; + clocks = <0x3a 0x0d 0x3a 0x30>; + clock-names = "pwm\0pclk"; + status = "disabled"; + }; + + pwm@fdd70030 { + compatible = "rockchip,rk3568-pwm\0rockchip,rk3328-pwm"; + reg = <0x00 0xfdd70030 0x00 0x10>; + interrupts = <0x00 0x52 0x04 0x00 0x56 0x04>; + #pwm-cells = <0x03>; + pinctrl-names = "active"; + pinctrl-0 = <0x53>; + clocks = <0x3a 0x0d 0x3a 0x30>; + clock-names = "pwm\0pclk"; + status = "disabled"; + }; + + power-management@fdd90000 { + compatible = "rockchip,rk3568-pmu\0syscon\0simple-mfd"; + reg = <0x00 0xfdd90000 0x00 0x1000>; + + power-controller { + compatible = "rockchip,rk3568-power-controller"; + #power-domain-cells = <0x01>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "okay"; + phandle = <0x25>; + + pd_npu@6 { + reg = <0x06>; + clocks = <0x23 0x27 0x23 0x25 0x23 0x26>; + pm_qos = <0x54>; + }; + + pd_gpu@7 { + reg = <0x07>; + clocks = <0x23 0x19 0x23 0x1a>; + pm_qos = <0x55>; + }; + + pd_vi@8 { + reg = <0x08>; + clocks = <0x23 0xcc 0x23 0xcd>; + pm_qos = <0x56 0x57 0x58>; + }; + + pd_vo@9 { + reg = <0x09>; + clocks = <0x23 0xda 0x23 0xdb 0x23 0xdc>; + pm_qos = <0x59 0x5a 0x5b>; + }; + + pd_rga@10 { + reg = <0x0a>; + clocks = <0x23 0xf1 0x23 0xf2>; + pm_qos = <0x5c 0x5d 0x5e 0x5f 0x60 0x61>; + }; + + pd_vpu@11 { + reg = <0x0b>; + clocks = <0x23 0xed>; + pm_qos = <0x62>; + }; + + pd_rkvdec@13 { + clocks = <0x23 0x107>; + reg = <0x0d>; + pm_qos = <0x63>; + }; + + pd_rkvenc@14 { + reg = <0x0e>; + clocks = <0x23 0x102>; + pm_qos = <0x64 0x65 0x66>; + }; + + pd_pipe@15 { + reg = <0x0f>; + clocks = <0x23 0x7f>; + pm_qos = <0x67 0x68 0x69 0x6a 0x6b 0x6c 0x6d 0x6e>; + }; + }; + }; + + pvtm@fde00000 { + compatible = "rockchip,rk3568-core-pvtm"; + reg = <0x00 0xfde00000 0x00 0x100>; + #address-cells = <0x01>; + #size-cells = <0x00>; + + pvtm@0 { + reg = <0x00>; + clocks = <0x23 0x13 0x23 0x1c2>; + clock-names = "clk\0pclk"; + resets = <0x23 0x1a 0x23 0x19>; + reset-names = "rts\0rst-p"; + thermal-zone = "soc-thermal"; + }; + }; + + npu@fde40000 { + compatible = "rockchip,rk3568-rknpu\0rockchip,rknpu"; + reg = <0x00 0xfde40000 0x00 0x10000>; + interrupts = <0x00 0x97 0x04>; + clocks = <0x02 0x02 0x23 0x23 0x23 0x28 0x23 0x29>; + clock-names = "scmi_clk\0clk\0aclk\0hclk"; + assigned-clocks = <0x23 0x23>; + assigned-clock-rates = <0x23c34600>; + resets = <0x23 0x2b 0x23 0x2c>; + reset-names = "srst_a\0srst_h"; + power-domains = <0x25 0x06>; + operating-points-v2 = <0x6f>; + iommus = <0x70>; + status = "okay"; + rknpu-supply = <0x71>; + }; + + npu-opp-table { + compatible = "operating-points-v2"; + mbist-vmin = <0xc96a8 0xdbba0 0xe7ef0>; + nvmem-cells = <0x72 0x07 0x08 0x73 0x0a 0x0b>; + nvmem-cell-names = "leakage\0pvtm\0mbist-vmin\0opp-info\0specification_serial_number\0remark_spec_serial_number"; + rockchip,supported-hw; + rockchip,max-volt = <0xf4240>; + rockchip,temp-hysteresis = <0x1388>; + rockchip,low-temp = <0x00>; + rockchip,low-temp-adjust-volt = <0x00 0x3e8 0xc350>; + rockchip,pvtm-voltage-sel = <0x00 0x14820 0x00 0x14821 0x153d8 0x01 0x153d9 0x16378 0x02 0x16379 0x186a0 0x03>; + rockchip,pvtm-ch = <0x00 0x05>; + phandle = <0x6f>; + + opp-200000000 { + opp-supported-hw = <0xfb 0xffff>; + opp-hz = <0x00 0xbebc200>; + opp-microvolt = <0xcf850 0xcf850 0xf4240>; + }; + + opp-300000000 { + opp-supported-hw = <0xfb 0xffff>; + opp-hz = <0x00 0x11b3dc40>; + opp-microvolt = <0xcf850 0xcf850 0xf4240>; + }; + + opp-400000000 { + opp-supported-hw = <0xfb 0xffff>; + opp-hz = <0x00 0x17d78400>; + opp-microvolt = <0xcf850 0xcf850 0xf4240>; + }; + + opp-600000000 { + opp-supported-hw = <0xfb 0xffff>; + opp-hz = <0x00 0x23c34600>; + opp-microvolt = <0xcf850 0xcf850 0xf4240>; + }; + + opp-700000000 { + opp-supported-hw = <0xfb 0xffff>; + opp-hz = <0x00 0x29b92700>; + opp-microvolt = <0xd59f8 0xd59f8 0xf4240>; + opp-microvolt-L0 = <0xd59f8 0xd59f8 0xf4240>; + opp-microvolt-L1 = <0xcf850 0xcf850 0xf4240>; + opp-microvolt-L2 = <0xcf850 0xcf850 0xf4240>; + opp-microvolt-L3 = <0xcf850 0xcf850 0xf4240>; + }; + + opp-800000000 { + opp-supported-hw = <0xfb 0xffff>; + opp-hz = <0x00 0x2faf0800>; + opp-microvolt = <0xe1d48 0xe1d48 0xf4240>; + opp-microvolt-L0 = <0xe1d48 0xe1d48 0xf4240>; + opp-microvolt-L1 = <0xdbba0 0xdbba0 0xf4240>; + opp-microvolt-L2 = <0xd59f8 0xd59f8 0xf4240>; + opp-microvolt-L3 = <0xd59f8 0xd59f8 0xf4240>; + }; + + opp-900000000 { + opp-supported-hw = <0xf9 0xffff>; + opp-hz = <0x00 0x35a4e900>; + opp-microvolt = <0xee098 0xee098 0xf4240>; + opp-microvolt-L0 = <0xee098 0xee098 0xf4240>; + opp-microvolt-L1 = <0xe7ef0 0xe7ef0 0xf4240>; + opp-microvolt-L2 = <0xe1d48 0xe1d48 0xf4240>; + opp-microvolt-L3 = <0xdbba0 0xdbba0 0xf4240>; + }; + + opp-1000000000 { + opp-supported-hw = <0xf9 0xffff>; + opp-hz = <0x00 0x3b9aca00>; + opp-microvolt = <0xf4240 0xf4240 0xf4240>; + opp-microvolt-L0 = <0xf4240 0xf4240 0xf4240>; + opp-microvolt-L1 = <0xee098 0xee098 0xf4240>; + opp-microvolt-L2 = <0xe7ef0 0xe7ef0 0xf4240>; + opp-microvolt-L3 = <0xe1d48 0xe1d48 0xf4240>; + status = "disabled"; + }; + + opp-j-600000000 { + opp-supported-hw = <0x04 0xffff>; + opp-hz = <0x00 0x23c34600>; + opp-microvolt = <0xdbba0 0xdbba0 0xf4240>; + }; + + opp-m-900000000 { + opp-supported-hw = <0x02 0xffff>; + opp-hz = <0x00 0x35a4e900>; + opp-microvolt = <0xe1d48 0xe1d48 0xf4240>; + }; + }; + + bus-npu { + compatible = "rockchip,rk3568-bus"; + rockchip,busfreq-policy = "clkfreq"; + clocks = <0x02 0x02>; + clock-names = "bus"; + operating-points-v2 = <0x74>; + status = "okay"; + bus-supply = <0x75>; + pvtm-supply = <0x05>; + }; + + bus-npu-opp-table { + compatible = "operating-points-v2"; + opp-shared; + nvmem-cells = <0x07>; + nvmem-cell-names = "pvtm"; + rockchip,pvtm-voltage-sel = <0x00 0x14820 0x00 0x14821 0x16378 0x01 0x16379 0x186a0 0x02>; + rockchip,pvtm-ch = <0x00 0x05>; + phandle = <0x74>; + + opp-700000000 { + opp-hz = <0x00 0x29b92700>; + opp-microvolt = <0xdbba0>; + opp-microvolt-L0 = <0xdbba0>; + opp-microvolt-L1 = <0xd59f8>; + opp-microvolt-L2 = <0xd59f8>; + }; + + opp-900000000 { + opp-hz = <0x00 0x35a4e900>; + opp-microvolt = <0xdbba0>; + }; + + opp-1000000000 { + opp-hz = <0x00 0x3b9aca00>; + opp-microvolt = <0xe7ef0>; + opp-microvolt-L0 = <0xe7ef0>; + opp-microvolt-L1 = <0xe1d48>; + opp-microvolt-L2 = <0xdbba0>; + }; + }; + + iommu@fde4b000 { + compatible = "rockchip,iommu-v2"; + reg = <0x00 0xfde4b000 0x00 0x40>; + interrupts = <0x00 0x97 0x04>; + interrupt-names = "rknpu_mmu"; + clocks = <0x23 0x28 0x23 0x29>; + clock-names = "aclk\0iface"; + power-domains = <0x25 0x06>; + #iommu-cells = <0x00>; + status = "okay"; + phandle = <0x70>; + }; + + gpu@fde60000 { + compatible = "arm,mali-bifrost"; + reg = <0x00 0xfde60000 0x00 0x4000>; + interrupts = <0x00 0x27 0x04 0x00 0x29 0x04 0x00 0x28 0x04>; + interrupt-names = "GPU\0MMU\0JOB"; + upthreshold = <0x28>; + downdifferential = <0x0a>; + clocks = <0x02 0x01 0x23 0x1b>; + clock-names = "clk_mali\0clk_gpu"; + power-domains = <0x25 0x07>; + #cooling-cells = <0x02>; + operating-points-v2 = <0x76>; + status = "okay"; + mali-supply = <0x77>; + phandle = <0x21>; + + power-model { + compatible = "simple-power-model"; + leakage-range = <0x05 0x0f>; + ls = <0xffffa23e 0x5927 0x00>; + static-coefficient = <0x186a0>; + dynamic-coefficient = <0x3b9>; + ts = <0xfffe56a6 0xf87a 0xfffffab5 0x14>; + thermal-zone = "gpu-thermal"; + }; + }; + + opp-table2 { + compatible = "operating-points-v2"; + mbist-vmin = <0xc96a8 0xdbba0 0xe7ef0>; + nvmem-cells = <0x78 0x07 0x08 0x79 0x0a 0x0b>; + nvmem-cell-names = "leakage\0pvtm\0mbist-vmin\0opp-info\0specification_serial_number\0remark_spec_serial_number"; + rockchip,supported-hw; + rockchip,max-volt = <0xf4240>; + rockchip,temp-hysteresis = <0x1388>; + rockchip,low-temp = <0x00>; + rockchip,low-temp-adjust-volt = <0x00 0x320 0xc350>; + rockchip,pvtm-voltage-sel = <0x00 0x14820 0x00 0x14821 0x153d8 0x01 0x153d9 0x16378 0x02 0x16379 0x186a0 0x03>; + rockchip,pvtm-ch = <0x00 0x05>; + phandle = <0x76>; + + opp-200000000 { + opp-supported-hw = <0xfb 0xffff>; + opp-hz = <0x00 0xbebc200>; + opp-microvolt = <0xcf850 0xcf850 0xf4240>; + }; + + opp-300000000 { + opp-supported-hw = <0xfb 0xffff>; + opp-hz = <0x00 0x11e1a300>; + opp-microvolt = <0xcf850 0xcf850 0xf4240>; + }; + + opp-400000000 { + opp-supported-hw = <0xfb 0xffff>; + opp-hz = <0x00 0x17d78400>; + opp-microvolt = <0xcf850 0xcf850 0xf4240>; + }; + + opp-600000000 { + opp-supported-hw = <0xfb 0xffff>; + opp-hz = <0x00 0x23c34600>; + opp-microvolt = <0xdbba0 0xdbba0 0xf4240>; + opp-microvolt-L0 = <0xdbba0 0xdbba0 0xf4240>; + opp-microvolt-L1 = <0xd59f8 0xd59f8 0xf4240>; + opp-microvolt-L2 = <0xcf850 0xcf850 0xf4240>; + opp-microvolt-L3 = <0xcf850 0xcf850 0xf4240>; + }; + + opp-700000000 { + opp-supported-hw = <0xfb 0xffff>; + opp-hz = <0x00 0x29b92700>; + opp-microvolt = <0xe7ef0 0xe7ef0 0xf4240>; + opp-microvolt-L0 = <0xe7ef0 0xe7ef0 0xf4240>; + opp-microvolt-L1 = <0xe1d48 0xe1d48 0xf4240>; + opp-microvolt-L2 = <0xdbba0 0xdbba0 0xf4240>; + opp-microvolt-L3 = <0xd59f8 0xd59f8 0xf4240>; + }; + + opp-800000000 { + opp-supported-hw = <0xf9 0xffff>; + opp-hz = <0x00 0x2faf0800>; + opp-microvolt = <0xf4240 0xf4240 0xf4240>; + opp-microvolt-L0 = <0xf4240 0xf4240 0xf4240>; + opp-microvolt-L1 = <0xee098 0xee098 0xf4240>; + opp-microvolt-L2 = <0xe7ef0 0xe7ef0 0xf4240>; + opp-microvolt-L3 = <0xe1d48 0xe1d48 0xf4240>; + }; + + opp-j-600000000 { + opp-supported-hw = <0x04 0xffff>; + opp-hz = <0x00 0x23c34600>; + opp-microvolt = <0xdbba0 0xdbba0 0xf4240>; + }; + + opp-m-800000000 { + opp-supported-hw = <0x02 0xffff>; + opp-hz = <0x00 0x2faf0800>; + opp-microvolt = <0xe7ef0 0xe7ef0 0xf4240>; + }; + }; + + pvtm@fde80000 { + compatible = "rockchip,rk3568-gpu-pvtm"; + reg = <0x00 0xfde80000 0x00 0x100>; + #address-cells = <0x01>; + #size-cells = <0x00>; + + pvtm@1 { + reg = <0x01>; + clocks = <0x23 0x1e 0x23 0x1d>; + clock-names = "clk\0pclk"; + resets = <0x23 0x24 0x23 0x23>; + reset-names = "rts\0rst-p"; + thermal-zone = "gpu-thermal"; + }; + }; + + pvtm@fde90000 { + compatible = "rockchip,rk3568-npu-pvtm"; + reg = <0x00 0xfde90000 0x00 0x100>; + #address-cells = <0x01>; + #size-cells = <0x00>; + + pvtm@2 { + reg = <0x02>; + clocks = <0x23 0x2b 0x23 0x2a 0x23 0x25>; + clock-names = "clk\0pclk\0hclk"; + resets = <0x23 0x2e 0x23 0x2d>; + reset-names = "rts\0rst-p"; + thermal-zone = "soc-thermal"; + }; + }; + + vdpu@fdea0400 { + compatible = "rockchip,vpu-decoder-v2"; + reg = <0x00 0xfdea0400 0x00 0x400>; + interrupts = <0x00 0x8b 0x04>; + interrupt-names = "irq_dec"; + clocks = <0x23 0xee 0x23 0xef>; + clock-names = "aclk_vcodec\0hclk_vcodec"; + resets = <0x23 0x11a 0x23 0x11b>; + reset-names = "video_a\0video_h"; + iommus = <0x7a>; + power-domains = <0x25 0x0b>; + rockchip,srv = <0x7b>; + rockchip,taskqueue-node = <0x00>; + rockchip,resetgroup-node = <0x00>; + status = "okay"; + }; + + iommu@fdea0800 { + compatible = "rockchip,iommu-v2"; + reg = <0x00 0xfdea0800 0x00 0x40>; + interrupts = <0x00 0x8a 0x04>; + interrupt-names = "vdpu_mmu"; + clock-names = "aclk\0iface"; + clocks = <0x23 0xee 0x23 0xef>; + power-domains = <0x25 0x0b>; + #iommu-cells = <0x00>; + status = "okay"; + phandle = <0x7a>; + }; + + rk_rga@fdeb0000 { + compatible = "rockchip,rga2"; + reg = <0x00 0xfdeb0000 0x00 0x1000>; + interrupts = <0x00 0x5a 0x04>; + clocks = <0x23 0xf3 0x23 0xf4 0x23 0xf5>; + clock-names = "aclk_rga\0hclk_rga\0clk_rga"; + power-domains = <0x25 0x0a>; + status = "okay"; + }; + + ebc@fdec0000 { + compatible = "rockchip,rk3568-ebc-tcon"; + reg = <0x00 0xfdec0000 0x00 0x5000>; + interrupts = <0x00 0x11 0x04>; + clocks = <0x23 0xf9 0x23 0xfa>; + clock-names = "hclk\0dclk"; + power-domains = <0x25 0x0a>; + rockchip,grf = <0x3b>; + pinctrl-names = "default"; + pinctrl-0 = <0x7c>; + status = "disabled"; + }; + + jpegd@fded0000 { + compatible = "rockchip,rkv-jpeg-decoder-v1"; + reg = <0x00 0xfded0000 0x00 0x400>; + interrupts = <0x00 0x3e 0x04>; + clocks = <0x23 0xfb 0x23 0xfc>; + clock-names = "aclk_vcodec\0hclk_vcodec"; + rockchip,disable-auto-freq; + resets = <0x23 0x12c 0x23 0x12d>; + reset-names = "video_a\0video_h"; + iommus = <0x7d>; + rockchip,srv = <0x7b>; + rockchip,taskqueue-node = <0x01>; + rockchip,resetgroup-node = <0x01>; + power-domains = <0x25 0x0a>; + status = "okay"; + }; + + iommu@fded0480 { + compatible = "rockchip,iommu-v2"; + reg = <0x00 0xfded0480 0x00 0x40>; + interrupts = <0x00 0x3d 0x04>; + interrupt-names = "jpegd_mmu"; + clock-names = "aclk\0iface"; + clocks = <0x23 0xfb 0x23 0xfc>; + power-domains = <0x25 0x0a>; + #iommu-cells = <0x00>; + status = "okay"; + phandle = <0x7d>; + }; + + vepu@fdee0000 { + compatible = "rockchip,vpu-encoder-v2"; + reg = <0x00 0xfdee0000 0x00 0x400>; + interrupts = <0x00 0x40 0x04>; + clocks = <0x23 0xfd 0x23 0xfe>; + clock-names = "aclk_vcodec\0hclk_vcodec"; + rockchip,disable-auto-freq; + resets = <0x23 0x12e 0x23 0x12f>; + reset-names = "video_a\0video_h"; + iommus = <0x7e>; + rockchip,srv = <0x7b>; + rockchip,taskqueue-node = <0x02>; + rockchip,resetgroup-node = <0x02>; + power-domains = <0x25 0x0a>; + status = "okay"; + }; + + iommu@fdee0800 { + compatible = "rockchip,iommu-v2"; + reg = <0x00 0xfdee0800 0x00 0x40>; + interrupts = <0x00 0x3f 0x04>; + interrupt-names = "vepu_mmu"; + clock-names = "aclk\0iface"; + clocks = <0x23 0xfd 0x23 0xfe>; + power-domains = <0x25 0x0a>; + #iommu-cells = <0x00>; + status = "okay"; + phandle = <0x7e>; + }; + + iep@fdef0000 { + compatible = "rockchip,iep-v2"; + reg = <0x00 0xfdef0000 0x00 0x500>; + interrupts = <0x00 0x38 0x04>; + clocks = <0x23 0xf6 0x23 0xf7 0x23 0xf8>; + clock-names = "aclk\0hclk\0sclk"; + resets = <0x23 0x127 0x23 0x128 0x23 0x129>; + reset-names = "rst_a\0rst_h\0rst_s"; + power-domains = <0x25 0x0a>; + rockchip,srv = <0x7b>; + rockchip,taskqueue-node = <0x05>; + rockchip,resetgroup-node = <0x05>; + iommus = <0x7f>; + status = "okay"; + }; + + iommu@fdef0800 { + compatible = "rockchip,iommu-v2"; + reg = <0x00 0xfdef0800 0x00 0x100>; + interrupts = <0x00 0x38 0x04>; + interrupt-names = "iep_mmu"; + clocks = <0x23 0xf6 0x23 0xf7>; + clock-names = "aclk\0iface"; + #iommu-cells = <0x00>; + power-domains = <0x25 0x0a>; + status = "okay"; + phandle = <0x7f>; + }; + + eink@fdf00000 { + compatible = "rockchip,rk3568-eink-tcon"; + reg = <0x00 0xfdf00000 0x00 0x74>; + interrupts = <0x00 0xb2 0x04>; + clocks = <0x23 0xff 0x23 0x100>; + clock-names = "pclk\0hclk"; + status = "disabled"; + }; + + rkvenc@fdf40000 { + compatible = "rockchip,rkv-encoder-v1"; + reg = <0x00 0xfdf40000 0x00 0x400>; + interrupts = <0x00 0x8c 0x04>; + interrupt-names = "irq_enc"; + clocks = <0x23 0x103 0x23 0x104 0x23 0x105>; + clock-names = "aclk_vcodec\0hclk_vcodec\0clk_core"; + rockchip,normal-rates = <0x11b3dc40 0x00 0x11b3dc40>; + resets = <0x23 0x133 0x23 0x134 0x23 0x135>; + reset-names = "video_a\0video_h\0video_core"; + assigned-clocks = <0x23 0x103 0x23 0x105>; + assigned-clock-rates = <0x11b3dc40 0x11b3dc40>; + iommus = <0x80>; + node-name = "rkvenc"; + rockchip,srv = <0x7b>; + rockchip,taskqueue-node = <0x03>; + rockchip,resetgroup-node = <0x03>; + power-domains = <0x25 0x0e>; + operating-points-v2 = <0x81>; + status = "okay"; + venc-supply = <0x75>; + }; + + rkvenc-opp-table { + compatible = "operating-points-v2"; + nvmem-cells = <0x07>; + nvmem-cell-names = "pvtm"; + rockchip,pvtm-voltage-sel = <0x00 0x14820 0x00 0x14821 0x16378 0x01 0x16379 0x186a0 0x02>; + rockchip,pvtm-ch = <0x00 0x05>; + phandle = <0x81>; + + opp-297000000 { + opp-hz = <0x00 0x11b3dc40>; + opp-microvolt = <0xdbba0>; + opp-microvolt-L0 = <0xdbba0>; + opp-microvolt-L1 = <0xd59f8>; + opp-microvolt-L2 = <0xd59f8>; + }; + + opp-400000000 { + opp-hz = <0x00 0x17d78400>; + opp-microvolt = <0xe7ef0>; + opp-microvolt-L0 = <0xe7ef0>; + opp-microvolt-L1 = <0xe1d48>; + opp-microvolt-L2 = <0xdbba0>; + }; + }; + + iommu@fdf40f00 { + compatible = "rockchip,iommu-v2"; + reg = <0x00 0xfdf40f00 0x00 0x40 0x00 0xfdf40f40 0x00 0x40>; + interrupts = <0x00 0x8d 0x04 0x00 0x8e 0x04>; + interrupt-names = "rkvenc_mmu0\0rkvenc_mmu1"; + clocks = <0x23 0x103 0x23 0x104>; + clock-names = "aclk\0iface"; + rockchip,disable-mmu-reset; + rockchip,enable-cmd-retry; + #iommu-cells = <0x00>; + power-domains = <0x25 0x0e>; + status = "okay"; + phandle = <0x80>; + }; + + rkvdec@fdf80200 { + compatible = "rockchip,rkv-decoder-rk3568\0rockchip,rkv-decoder-v2"; + reg = <0x00 0xfdf80200 0x00 0x400 0x00 0xfdf80100 0x00 0x100>; + reg-names = "regs\0link"; + interrupts = <0x00 0x5b 0x04>; + interrupt-names = "irq_dec"; + clocks = <0x23 0x108 0x23 0x109 0x23 0x10a 0x23 0x10b 0x23 0x10c>; + clock-names = "aclk_vcodec\0hclk_vcodec\0clk_cabac\0clk_core\0clk_hevc_cabac"; + rockchip,normal-rates = <0x11b3dc40 0x00 0x11b3dc40 0x11b3dc40 0x23c34600>; + rockchip,advanced-rates = <0x179a7b00 0x00 0x179a7b00 0x179a7b00 0x23c34600>; + rockchip,default-max-load = <0x1fe000>; + resets = <0x23 0x142 0x23 0x143 0x23 0x144 0x23 0x145 0x23 0x146>; + assigned-clocks = <0x23 0x108 0x23 0x10a 0x23 0x10b 0x23 0x10c>; + assigned-clock-rates = <0x11b3dc40 0x11b3dc40 0x11b3dc40 0x11b3dc40>; + reset-names = "video_a\0video_h\0video_cabac\0video_core\0video_hevc_cabac"; + power-domains = <0x25 0x0d>; + operating-points-v2 = <0x82>; + vdec-supply = <0x75>; + iommus = <0x83>; + rockchip,srv = <0x7b>; + rockchip,taskqueue-node = <0x04>; + rockchip,resetgroup-node = <0x04>; + rockchip,sram = <0x84>; + rockchip,rcb-iova = <0x10000000 0x10000>; + rockchip,rcb-min-width = <0x200>; + rockchip,task-capacity = <0x10>; + status = "okay"; + }; + + rkvdec-opp-table { + compatible = "operating-points-v2"; + nvmem-cells = <0x85 0x07>; + nvmem-cell-names = "leakage\0pvtm"; + rockchip,leakage-voltage-sel = <0x01 0x50 0x00 0x51 0xfe 0x01>; + rockchip,pvtm-voltage-sel = <0x00 0x14820 0x00 0x14821 0x186a0 0x01>; + rockchip,pvtm-ch = <0x00 0x05>; + phandle = <0x82>; + + opp-297000000 { + opp-hz = <0x00 0x11b3dc40>; + opp-microvolt = <0xdbba0>; + opp-microvolt-L0 = <0xdbba0>; + opp-microvolt-L1 = <0xd59f8>; + }; + + opp-400000000 { + opp-hz = <0x00 0x17d78400>; + opp-microvolt = <0xdbba0>; + }; + }; + + iommu@fdf80800 { + compatible = "rockchip,iommu-v2"; + reg = <0x00 0xfdf80800 0x00 0x40 0x00 0xfdf80840 0x00 0x40>; + interrupts = <0x00 0x5c 0x04>; + interrupt-names = "rkvdec_mmu"; + clocks = <0x23 0x108 0x23 0x109>; + clock-names = "aclk\0iface"; + power-domains = <0x25 0x0d>; + #iommu-cells = <0x00>; + status = "okay"; + phandle = <0x83>; + }; + + mipi-csi2-hw@fdfb0000 { + compatible = "rockchip,rk3568-mipi-csi2-hw"; + reg = <0x00 0xfdfb0000 0x00 0x10000>; + reg-names = "csihost_regs"; + interrupts = <0x00 0x08 0x04 0x00 0x09 0x04>; + interrupt-names = "csi-intr1\0csi-intr2"; + clocks = <0x23 0xd5>; + clock-names = "pclk_csi2host"; + resets = <0x23 0xff>; + reset-names = "srst_csihost_p"; + status = "okay"; + phandle = <0x1e>; + }; + + rkcif@fdfe0000 { + compatible = "rockchip,rk3568-cif"; + reg = <0x00 0xfdfe0000 0x00 0x8000>; + reg-names = "cif_regs"; + interrupts = <0x00 0x92 0x04>; + interrupt-names = "cif-intr"; + clocks = <0x23 0xce 0x23 0xcf 0x23 0xd0 0x23 0xd1>; + clock-names = "aclk_cif\0hclk_cif\0dclk_cif\0iclk_cif_g"; + resets = <0x23 0xf7 0x23 0xf8 0x23 0xf9 0x23 0xfb 0x23 0xfa>; + reset-names = "rst_cif_a\0rst_cif_h\0rst_cif_d\0rst_cif_p\0rst_cif_i"; + assigned-clocks = <0x23 0xd0>; + assigned-clock-rates = <0x11e1a300>; + power-domains = <0x25 0x08>; + rockchip,grf = <0x3b>; + iommus = <0x86>; + status = "disabled"; + phandle = <0x87>; + }; + + iommu@fdfe0800 { + compatible = "rockchip,iommu-v2"; + reg = <0x00 0xfdfe0800 0x00 0x100>; + interrupts = <0x00 0x92 0x04>; + interrupt-names = "cif_mmu"; + clocks = <0x23 0xce 0x23 0xcf>; + clock-names = "aclk\0iface"; + power-domains = <0x25 0x08>; + rockchip,disable-mmu-reset; + #iommu-cells = <0x00>; + status = "disabled"; + phandle = <0x86>; + }; + + rkcif_dvp { + compatible = "rockchip,rkcif-dvp"; + rockchip,hw = <0x87>; + status = "disabled"; + phandle = <0x88>; + }; + + rkcif_dvp_sditf { + compatible = "rockchip,rkcif-sditf"; + rockchip,cif = <0x88>; + status = "disabled"; + }; + + rkcif_mipi_lvds { + compatible = "rockchip,rkcif-mipi-lvds"; + rockchip,hw = <0x87>; + status = "disabled"; + phandle = <0x89>; + }; + + rkcif_mipi_lvds_sditf { + compatible = "rockchip,rkcif-sditf"; + rockchip,cif = <0x89>; + status = "disabled"; + }; + + rkisp@fdff0000 { + compatible = "rockchip,rk3568-rkisp"; + reg = <0x00 0xfdff0000 0x00 0x10000>; + interrupts = <0x00 0x39 0x04 0x00 0x3a 0x04 0x00 0x3c 0x04>; + interrupt-names = "mipi_irq\0mi_irq\0isp_irq"; + clocks = <0x23 0xd2 0x23 0xd3 0x23 0xd4>; + clock-names = "aclk_isp\0hclk_isp\0clk_isp"; + resets = <0x23 0xfd 0x23 0xfc>; + reset-names = "isp\0isp-h"; + rockchip,grf = <0x3b>; + power-domains = <0x25 0x08>; + iommus = <0x8a>; + rockchip,iq-feature = <0x1bfb 0xfffe67ff>; + status = "okay"; + phandle = <0x8b>; + }; + + iommu@fdff1a00 { + compatible = "rockchip,iommu-v2"; + reg = <0x00 0xfdff1a00 0x00 0x100>; + interrupts = <0x00 0x3b 0x04>; + interrupt-names = "isp_mmu"; + clocks = <0x23 0xd2 0x23 0xd3>; + clock-names = "aclk\0iface"; + power-domains = <0x25 0x08>; + #iommu-cells = <0x00>; + rockchip,disable-mmu-reset; + status = "okay"; + phandle = <0x8a>; + }; + + rkisp-vir0 { + compatible = "rockchip,rkisp-vir"; + rockchip,hw = <0x8b>; + status = "okay"; + + port { + #address-cells = <0x01>; + #size-cells = <0x00>; + + endpoint@0 { + reg = <0x00>; + remote-endpoint = <0x8c>; + phandle = <0x134>; + }; + }; + }; + + rkisp-vir1 { + compatible = "rockchip,rkisp-vir"; + rockchip,hw = <0x8b>; + status = "disabled"; + }; + + uio@fe010000 { + compatible = "rockchip,uio-gmac"; + reg = <0x00 0xfe010000 0x00 0x10000>; + rockchip,ethernet = <0x8d>; + status = "disabled"; + }; + + ethernet@fe010000 { + local-mac-address = [5e 4f fd 70 05 c6]; + compatible = "rockchip,rk3568-gmac\0snps,dwmac-4.20a"; + reg = <0x00 0xfe010000 0x00 0x10000>; + interrupts = <0x00 0x20 0x04 0x00 0x1d 0x04>; + interrupt-names = "macirq\0eth_wake_irq"; + rockchip,grf = <0x3b>; + clocks = <0x23 0x186 0x23 0x189 0x23 0x189 0x23 0xc7 0x23 0xc3 0x23 0xc4 0x23 0x189 0x23 0xc8 0x23 0xac 0x23 0xab>; + clock-names = "stmmaceth\0mac_clk_rx\0mac_clk_tx\0clk_mac_refout\0aclk_mac\0pclk_mac\0clk_mac_speed\0ptp_ref\0pclk_xpcs\0clk_xpcs_eee"; + resets = <0x23 0xec>; + reset-names = "stmmaceth"; + snps,mixed-burst; + snps,tso; + snps,axi-config = <0x8e>; + snps,mtl-rx-config = <0x8f>; + snps,mtl-tx-config = <0x90>; + status = "okay"; + phy-mode = "rgmii"; + clock_in_out = "input"; + snps,reset-gpio = <0x91 0x19 0x01>; + snps,reset-active-low; + snps,reset-delays-us = <0x00 0x4e20 0x186a0>; + assigned-clocks = <0x23 0x189 0x23 0x186>; + assigned-clock-parents = <0x23 0x187 0x92>; + pinctrl-names = "default"; + pinctrl-0 = <0x93 0x94 0x95 0x96 0x97 0x98>; + tx_delay = <0x3e>; + rx_delay = <0x32>; + phy-handle = <0x99>; + phandle = <0x8d>; + + mdio { + compatible = "snps,dwmac-mdio"; + #address-cells = <0x01>; + #size-cells = <0x00>; + + phy@0 { + compatible = "ethernet-phy-ieee802.3-c22"; + reg = <0x00>; + led_status_value = <0x6940>; + phandle = <0x99>; + }; + }; + + stmmac-axi-config { + snps,wr_osr_lmt = <0x04>; + snps,rd_osr_lmt = <0x08>; + snps,blen = <0x00 0x00 0x00 0x00 0x10 0x08 0x04>; + phandle = <0x8e>; + }; + + rx-queues-config { + snps,rx-queues-to-use = <0x01>; + phandle = <0x8f>; + + queue0 { + }; + }; + + tx-queues-config { + snps,tx-queues-to-use = <0x01>; + phandle = <0x90>; + + queue0 { + }; + }; + }; + + vop@fe040000 { + compatible = "rockchip,rk3568-vop"; + reg = <0x00 0xfe040000 0x00 0x3000 0x00 0xfe044000 0x00 0x1000>; + reg-names = "regs\0gamma_lut"; + rockchip,grf = <0x3b>; + interrupts = <0x00 0x94 0x04>; + clocks = <0x23 0xdd 0x23 0xde 0x23 0xdf 0x23 0xe0 0x23 0xe1>; + clock-names = "aclk_vop\0hclk_vop\0dclk_vp0\0dclk_vp1\0dclk_vp2"; + iommus = <0x9a>; + power-domains = <0x25 0x09>; + status = "okay"; + assigned-clocks = <0x23 0xdf 0x23 0xe0>; + assigned-clock-parents = <0x3a 0x02 0x23 0x05>; + disable-win-move; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + phandle = <0x15>; + + port@0 { + rockchip,primary-plane = <0x04>; + rockchip,plane-mask = <0x15>; + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x00>; + + endpoint@0 { + reg = <0x00>; + remote-endpoint = <0x9b>; + phandle = <0x17>; + }; + + endpoint@1 { + reg = <0x01>; + remote-endpoint = <0x9c>; + phandle = <0x18>; + }; + + endpoint@2 { + reg = <0x02>; + remote-endpoint = <0x9d>; + phandle = <0x19>; + }; + + endpoint@3 { + reg = <0x03>; + remote-endpoint = <0x9e>; + phandle = <0x1a>; + }; + }; + + port@1 { + rockchip,primary-plane = <0x05>; + rockchip,plane-mask = <0x22>; + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x01>; + + endpoint@0 { + reg = <0x00>; + remote-endpoint = <0x9f>; + phandle = <0xa8>; + }; + + endpoint@1 { + reg = <0x01>; + remote-endpoint = <0xa0>; + phandle = <0xa9>; + }; + + endpoint@2 { + reg = <0x02>; + remote-endpoint = <0xa1>; + phandle = <0xaf>; + }; + + endpoint@3 { + reg = <0x03>; + remote-endpoint = <0xa2>; + phandle = <0xad>; + }; + + endpoint@4 { + reg = <0x04>; + remote-endpoint = <0xa3>; + phandle = <0x1b>; + }; + + endpoint@5 { + reg = <0x05>; + remote-endpoint = <0xa4>; + phandle = <0x37>; + }; + }; + + port@2 { + rockchip,primary-plane = <0x03>; + rockchip,plane-mask = <0x08>; + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x02>; + + endpoint@0 { + reg = <0x00>; + remote-endpoint = <0xa5>; + phandle = <0x35>; + }; + + endpoint@1 { + reg = <0x01>; + remote-endpoint = <0xa6>; + phandle = <0x1c>; + }; + + endpoint@2 { + reg = <0x02>; + remote-endpoint = <0xa7>; + phandle = <0x38>; + }; + }; + }; + }; + + iommu@fe043e00 { + compatible = "rockchip,iommu-v2"; + reg = <0x00 0xfe043e00 0x00 0x100 0x00 0xfe043f00 0x00 0x100>; + interrupts = <0x00 0x94 0x04>; + interrupt-names = "vop_mmu"; + clocks = <0x23 0xdd 0x23 0xde>; + clock-names = "aclk\0iface"; + #iommu-cells = <0x00>; + rockchip,disable-device-link-resume; + status = "okay"; + phandle = <0x9a>; + }; + + dsi@fe060000 { + compatible = "rockchip,rk3568-mipi-dsi"; + reg = <0x00 0xfe060000 0x00 0x10000>; + interrupts = <0x00 0x44 0x04>; + clocks = <0x23 0xe8 0x23 0xda>; + clock-names = "pclk\0hclk"; + resets = <0x23 0x110>; + reset-names = "apb"; + phys = <0x34>; + phy-names = "dphy"; + power-domains = <0x25 0x09>; + rockchip,grf = <0x3b>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "disabled"; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + reg = <0x00>; + #address-cells = <0x01>; + #size-cells = <0x00>; + + endpoint@0 { + reg = <0x00>; + remote-endpoint = <0x17>; + status = "disabled"; + phandle = <0x9b>; + }; + + endpoint@1 { + reg = <0x01>; + remote-endpoint = <0xa8>; + status = "disabled"; + phandle = <0x9f>; + }; + }; + }; + }; + + dsi@fe070000 { + compatible = "rockchip,rk3568-mipi-dsi"; + reg = <0x00 0xfe070000 0x00 0x10000>; + interrupts = <0x00 0x45 0x04>; + clocks = <0x23 0xe9 0x23 0xda>; + clock-names = "pclk\0hclk"; + resets = <0x23 0x111>; + reset-names = "apb"; + phys = <0x36>; + phy-names = "dphy"; + power-domains = <0x25 0x09>; + rockchip,grf = <0x3b>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "disabled"; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + reg = <0x00>; + #address-cells = <0x01>; + #size-cells = <0x00>; + + endpoint@0 { + reg = <0x00>; + remote-endpoint = <0x18>; + status = "disabled"; + phandle = <0x9c>; + }; + + endpoint@1 { + reg = <0x01>; + remote-endpoint = <0xa9>; + status = "disabled"; + phandle = <0xa0>; + }; + }; + }; + }; + + hdmi@fe0a0000 { + compatible = "rockchip,rk3568-dw-hdmi"; + reg = <0x00 0xfe0a0000 0x00 0x20000>; + interrupts = <0x00 0x2d 0x04>; + clocks = <0x23 0xe6 0x23 0xe7 0x23 0x193 0x3a 0x02 0x23 0xde>; + clock-names = "iahb\0isfr\0cec\0ref\0hclk"; + power-domains = <0x25 0x09>; + reg-io-width = <0x04>; + rockchip,grf = <0x3b>; + #sound-dai-cells = <0x00>; + pinctrl-names = "default"; + pinctrl-0 = <0xaa 0xab 0xac>; + status = "okay"; + phandle = <0x147>; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + reg = <0x00>; + #address-cells = <0x01>; + #size-cells = <0x00>; + + endpoint@0 { + reg = <0x00>; + remote-endpoint = <0x1a>; + status = "okay"; + phandle = <0x9e>; + }; + + endpoint@1 { + reg = <0x01>; + remote-endpoint = <0xad>; + status = "disabled"; + phandle = <0xa2>; + }; + }; + }; + }; + + edp@fe0c0000 { + compatible = "rockchip,rk3568-edp"; + reg = <0x00 0xfe0c0000 0x00 0x10000>; + interrupts = <0x00 0x12 0x04>; + clocks = <0x3a 0x29 0x23 0xea 0x23 0xeb 0x23 0xda>; + clock-names = "dp\0pclk\0spdif\0hclk"; + resets = <0x23 0x113 0x23 0x112>; + reset-names = "dp\0apb"; + phys = <0xae>; + phy-names = "dp"; + power-domains = <0x25 0x09>; + status = "disabled"; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + reg = <0x00>; + #address-cells = <0x01>; + #size-cells = <0x00>; + + endpoint@0 { + reg = <0x00>; + remote-endpoint = <0x19>; + status = "disabled"; + phandle = <0x9d>; + }; + + endpoint@1 { + reg = <0x01>; + remote-endpoint = <0xaf>; + status = "disabled"; + phandle = <0xa1>; + }; + }; + }; + }; + + nocp-cpu@fe102000 { + compatible = "rockchip,rk3568-nocp"; + reg = <0x00 0xfe102000 0x00 0x400>; + phandle = <0xb5>; + }; + + nocp-gpu-vpu-rga-venc@fe102400 { + compatible = "rockchip,rk3568-nocp"; + reg = <0x00 0xfe102400 0x00 0x400>; + }; + + nocp-vdec@fe102800 { + compatible = "rockchip,rk3568-nocp"; + reg = <0x00 0xfe102800 0x00 0x400>; + }; + + nocp-vi-usb-peri-pipe@fe102c00 { + compatible = "rockchip,rk3568-nocp"; + reg = <0x00 0xfe102c00 0x00 0x400>; + }; + + nocp-vo@fe103000 { + compatible = "rockchip,rk3568-nocp"; + reg = <0x00 0xfe103000 0x00 0x400>; + }; + + qos@fe128000 { + compatible = "syscon"; + reg = <0x00 0xfe128000 0x00 0x20>; + phandle = <0x55>; + }; + + qos@fe138080 { + compatible = "syscon"; + reg = <0x00 0xfe138080 0x00 0x20>; + phandle = <0x64>; + }; + + qos@fe138100 { + compatible = "syscon"; + reg = <0x00 0xfe138100 0x00 0x20>; + phandle = <0x65>; + }; + + qos@fe138180 { + compatible = "syscon"; + reg = <0x00 0xfe138180 0x00 0x20>; + phandle = <0x66>; + }; + + qos@fe148000 { + compatible = "syscon"; + reg = <0x00 0xfe148000 0x00 0x20>; + phandle = <0x56>; + }; + + qos@fe148080 { + compatible = "syscon"; + reg = <0x00 0xfe148080 0x00 0x20>; + phandle = <0x57>; + }; + + qos@fe148100 { + compatible = "syscon"; + reg = <0x00 0xfe148100 0x00 0x20>; + phandle = <0x58>; + }; + + qos@fe150000 { + compatible = "syscon"; + reg = <0x00 0xfe150000 0x00 0x20>; + phandle = <0x62>; + }; + + qos@fe158000 { + compatible = "syscon"; + reg = <0x00 0xfe158000 0x00 0x20>; + phandle = <0x5c>; + }; + + qos@fe158100 { + compatible = "syscon"; + reg = <0x00 0xfe158100 0x00 0x20>; + phandle = <0x5d>; + }; + + qos@fe158180 { + compatible = "syscon"; + reg = <0x00 0xfe158180 0x00 0x20>; + phandle = <0x5e>; + }; + + qos@fe158200 { + compatible = "syscon"; + reg = <0x00 0xfe158200 0x00 0x20>; + phandle = <0x5f>; + }; + + qos@fe158280 { + compatible = "syscon"; + reg = <0x00 0xfe158280 0x00 0x20>; + phandle = <0x60>; + }; + + qos@fe158300 { + compatible = "syscon"; + reg = <0x00 0xfe158300 0x00 0x20>; + phandle = <0x61>; + }; + + qos@fe180000 { + compatible = "syscon"; + reg = <0x00 0xfe180000 0x00 0x20>; + phandle = <0x54>; + }; + + qos@fe190000 { + compatible = "syscon"; + reg = <0x00 0xfe190000 0x00 0x20>; + phandle = <0x67>; + }; + + qos@fe190080 { + compatible = "syscon"; + reg = <0x00 0xfe190080 0x00 0x20>; + phandle = <0x68>; + }; + + qos@fe190100 { + compatible = "syscon"; + reg = <0x00 0xfe190100 0x00 0x20>; + phandle = <0x69>; + }; + + qos@fe190200 { + compatible = "syscon"; + reg = <0x00 0xfe190200 0x00 0x20>; + phandle = <0x6a>; + }; + + qos@fe190280 { + compatible = "syscon"; + reg = <0x00 0xfe190280 0x00 0x20>; + phandle = <0x6b>; + }; + + qos@fe190300 { + compatible = "syscon"; + reg = <0x00 0xfe190300 0x00 0x20>; + phandle = <0x6c>; + }; + + qos@fe190380 { + compatible = "syscon"; + reg = <0x00 0xfe190380 0x00 0x20>; + phandle = <0x6d>; + }; + + qos@fe190400 { + compatible = "syscon"; + reg = <0x00 0xfe190400 0x00 0x20>; + phandle = <0x6e>; + }; + + qos@fe198000 { + compatible = "syscon"; + reg = <0x00 0xfe198000 0x00 0x20>; + phandle = <0x63>; + }; + + qos@fe1a8000 { + compatible = "syscon"; + reg = <0x00 0xfe1a8000 0x00 0x20>; + phandle = <0x59>; + }; + + qos@fe1a8080 { + compatible = "syscon"; + reg = <0x00 0xfe1a8080 0x00 0x20>; + phandle = <0x5a>; + }; + + qos@fe1a8100 { + compatible = "syscon"; + reg = <0x00 0xfe1a8100 0x00 0x20>; + phandle = <0x5b>; + }; + + dwmmc@fe000000 { + compatible = "rockchip,rk3568-dw-mshc\0rockchip,rk3288-dw-mshc"; + reg = <0x00 0xfe000000 0x00 0x4000>; + interrupts = <0x00 0x64 0x04>; + max-frequency = <0x8f0d180>; + clocks = <0x23 0xc1 0x23 0xc2 0x23 0x18e 0x23 0x18f>; + clock-names = "biu\0ciu\0ciu-drive\0ciu-sample"; + fifo-depth = <0x100>; + resets = <0x23 0xeb>; + reset-names = "reset"; + status = "okay"; + no-sd; + no-mmc; + bus-width = <0x04>; + disable-wp; + cap-sd-highspeed; + cap-sdio-irq; + keep-power-in-suspend; + pinctrl-names = "default"; + pinctrl-0 = <0xb0 0xb1 0xb2>; + sd-uhs-sdr104; + mmc-pwrseq = <0xb3>; + non-removable; + }; + + dfi@fe230000 { + reg = <0x00 0xfe230000 0x00 0x400>; + compatible = "rockchip,rk3568-dfi"; + rockchip,pmugrf = <0x3c>; + status = "okay"; + phandle = <0xb4>; + }; + + dmc { + compatible = "rockchip,rk3568-dmc"; + interrupts = <0x00 0x0a 0x04>; + interrupt-names = "complete"; + devfreq-events = <0xb4 0xb5>; + clocks = <0x02 0x03>; + clock-names = "dmc_clk"; + operating-points-v2 = <0xb6>; + vop-bw-dmc-freq = <0x00 0x11e 0x4f1a0 0x11f 0x1869f 0x80e80>; + vop-frame-bw-dmc-freq = <0x00 0x26c 0x4f1a0 0x26d 0x1869f 0xbe6e0>; + cpu-bw-dmc-freq = <0x00 0x15e 0x4f1a0 0x15f 0x190 0x80e80 0x191 0x1869f 0xbe6e0>; + upthreshold = <0x28>; + downdifferential = <0x14>; + system-status-level = <0x01 0x04 0x08 0x08 0x02 0x01 0x10 0x04 0x10000 0x04 0x1000 0x08 0x4000 0x08 0x2000 0x08 0xc00 0x08>; + auto-min-freq = <0x4f1a0>; + auto-freq-en = <0x01>; + #cooling-cells = <0x02>; + status = "okay"; + center-supply = <0x75>; + phandle = <0x16>; + }; + + dmc-fsp { + compatible = "rockchip,rk3568-dmc-fsp"; + debug_print_level = <0x00>; + ddr3_params = <0xb7>; + ddr4_params = <0xb8>; + lpddr3_params = <0xb9>; + lpddr4_params = <0xba>; + lpddr4x_params = <0xbb>; + status = "okay"; + }; + + dmc-opp-table { + compatible = "operating-points-v2"; + mbist-vmin = <0xc96a8 0xdbba0 0xe7ef0>; + nvmem-cells = <0x85 0x07 0x08 0xbc 0x0a 0x0b>; + nvmem-cell-names = "leakage\0pvtm\0mbist-vmin\0opp-info\0specification_serial_number\0remark_spec_serial_number"; + rockchip,supported-hw; + rockchip,max-volt = <0xf4240>; + rockchip,temp-hysteresis = <0x1388>; + rockchip,low-temp = <0x00>; + rockchip,low-temp-adjust-volt = <0x00 0x618 0x124f8>; + rockchip,leakage-voltage-sel = <0x01 0x50 0x00 0x51 0xfe 0x01>; + rockchip,pvtm-voltage-sel = <0x00 0x14820 0x00 0x14821 0x186a0 0x01>; + rockchip,pvtm-ch = <0x00 0x05>; + phandle = <0xb6>; + + opp-1560000000 { + opp-supported-hw = <0xf9 0xffff>; + opp-hz = <0x00 0x5cfbb600>; + opp-microvolt = <0xdbba0 0xdbba0 0xf4240>; + opp-microvolt-L0 = <0xdbba0 0xdbba0 0xf4240>; + opp-microvolt-L1 = <0xd59f8 0xd59f8 0xf4240>; + }; + + opp-j-m-1560000000 { + opp-supported-hw = <0x06 0xffff>; + opp-hz = <0x00 0x5cfbb600>; + opp-microvolt = <0xd59f8 0xd59f8 0xf4240>; + }; + }; + + pcie@fe260000 { + compatible = "rockchip,rk3568-pcie\0snps,dw-pcie"; + #address-cells = <0x03>; + #size-cells = <0x02>; + bus-range = <0x00 0x0f>; + clocks = <0x23 0x81 0x23 0x82 0x23 0x83 0x23 0x84 0x23 0x85>; + clock-names = "aclk_mst\0aclk_slv\0aclk_dbi\0pclk\0aux"; + device_type = "pci"; + interrupts = <0x00 0x4b 0x04 0x00 0x4a 0x04 0x00 0x49 0x04 0x00 0x48 0x04 0x00 0x47 0x04>; + interrupt-names = "sys\0pmc\0msg\0legacy\0err"; + #interrupt-cells = <0x01>; + interrupt-map-mask = <0x00 0x00 0x00 0x07>; + interrupt-map = <0x00 0x00 0x00 0x01 0xbd 0x00 0x00 0x00 0x00 0x02 0xbd 0x01 0x00 0x00 0x00 0x03 0xbd 0x02 0x00 0x00 0x00 0x04 0xbd 0x03>; + linux,pci-domain = <0x00>; + num-ib-windows = <0x06>; + num-viewport = <0x08>; + num-ob-windows = <0x02>; + max-link-speed = <0x02>; + msi-map = <0x00 0xbe 0x00 0x1000>; + num-lanes = <0x01>; + phys = <0x27 0x02>; + phy-names = "pcie-phy"; + power-domains = <0x25 0x0f>; + ranges = <0x800 0x00 0xf4000000 0x00 0xf4000000 0x00 0x100000 0x81000000 0x00 0xf4100000 0x00 0xf4100000 0x00 0x100000 0x82000000 0x00 0xf4200000 0x00 0xf4200000 0x00 0x1e00000 0xc3000000 0x03 0x00 0x03 0x00 0x00 0x40000000>; + reg = <0x03 0xc0000000 0x00 0x400000 0x00 0xfe260000 0x00 0x10000>; + reg-names = "pcie-dbi\0pcie-apb"; + resets = <0x23 0xa1>; + reset-names = "pipe"; + status = "disabled"; + + legacy-interrupt-controller { + interrupt-controller; + #address-cells = <0x00>; + #interrupt-cells = <0x01>; + interrupt-parent = <0x01>; + interrupts = <0x00 0x48 0x01>; + phandle = <0xbd>; + }; + }; + + pcie@fe270000 { + compatible = "rockchip,rk3568-pcie\0snps,dw-pcie"; + #address-cells = <0x03>; + #size-cells = <0x02>; + bus-range = <0x10 0x1f>; + clocks = <0x23 0x88 0x23 0x89 0x23 0x8a 0x23 0x8b 0x23 0x8c>; + clock-names = "aclk_mst\0aclk_slv\0aclk_dbi\0pclk\0aux"; + device_type = "pci"; + interrupts = <0x00 0xa0 0x04 0x00 0x9f 0x04 0x00 0x9e 0x04 0x00 0x9d 0x04 0x00 0x9c 0x04>; + interrupt-names = "sys\0pmc\0msg\0legacy\0err"; + #interrupt-cells = <0x01>; + interrupt-map-mask = <0x00 0x00 0x00 0x07>; + interrupt-map = <0x00 0x00 0x00 0x01 0xbf 0x00 0x00 0x00 0x00 0x02 0xbf 0x01 0x00 0x00 0x00 0x03 0xbf 0x02 0x00 0x00 0x00 0x04 0xbf 0x03>; + linux,pci-domain = <0x01>; + num-ib-windows = <0x06>; + num-ob-windows = <0x02>; + num-viewport = <0x08>; + max-link-speed = <0x03>; + msi-map = <0x1000 0xbe 0x1000 0x1000>; + num-lanes = <0x01>; + phys = <0xc0>; + phy-names = "pcie-phy"; + power-domains = <0x25 0x0f>; + ranges = <0x800 0x00 0xf2000000 0x00 0xf2000000 0x00 0x100000 0x81000000 0x00 0xf2100000 0x00 0xf2100000 0x00 0x100000 0x82000000 0x00 0xf2200000 0x00 0xf2200000 0x00 0x1e00000 0xc3000000 0x03 0x40000000 0x03 0x40000000 0x00 0x40000000>; + reg = <0x03 0xc0400000 0x00 0x400000 0x00 0xfe270000 0x00 0x10000>; + reg-names = "pcie-dbi\0pcie-apb"; + resets = <0x23 0xb1>; + reset-names = "pipe"; + status = "disabled"; + + legacy-interrupt-controller { + interrupt-controller; + #address-cells = <0x00>; + #interrupt-cells = <0x01>; + interrupt-parent = <0x01>; + interrupts = <0x00 0x9d 0x01>; + phandle = <0xbf>; + }; + }; + + pcie@fe280000 { + compatible = "rockchip,rk3568-pcie\0snps,dw-pcie"; + #address-cells = <0x03>; + #size-cells = <0x02>; + bus-range = <0x20 0x2f>; + clocks = <0x23 0x8f 0x23 0x90 0x23 0x91 0x23 0x92 0x23 0x93>; + clock-names = "aclk_mst\0aclk_slv\0aclk_dbi\0pclk\0aux"; + device_type = "pci"; + interrupts = <0x00 0xa5 0x04 0x00 0xa4 0x04 0x00 0xa3 0x04 0x00 0xa2 0x04 0x00 0xa1 0x04>; + interrupt-names = "sys\0pmc\0msg\0legacy\0err"; + #interrupt-cells = <0x01>; + interrupt-map-mask = <0x00 0x00 0x00 0x07>; + interrupt-map = <0x00 0x00 0x00 0x01 0xc1 0x00 0x00 0x00 0x00 0x02 0xc1 0x01 0x00 0x00 0x00 0x03 0xc1 0x02 0x00 0x00 0x00 0x04 0xc1 0x03>; + linux,pci-domain = <0x02>; + num-ib-windows = <0x06>; + num-viewport = <0x08>; + num-ob-windows = <0x02>; + max-link-speed = <0x03>; + msi-map = <0x2000 0xbe 0x2000 0x1000>; + num-lanes = <0x02>; + phys = <0xc0>; + phy-names = "pcie-phy"; + power-domains = <0x25 0x0f>; + ranges = <0x800 0x00 0xf0000000 0x00 0xf0000000 0x00 0x100000 0x81000000 0x00 0xf0100000 0x00 0xf0100000 0x00 0x100000 0x82000000 0x00 0xf0200000 0x00 0xf0200000 0x00 0x1e00000 0xc3000000 0x03 0x80000000 0x03 0x80000000 0x00 0x40000000>; + reg = <0x03 0xc0800000 0x00 0x400000 0x00 0xfe280000 0x00 0x10000>; + reg-names = "pcie-dbi\0pcie-apb"; + resets = <0x23 0xc1>; + reset-names = "pipe"; + status = "okay"; + reset-gpios = <0x91 0x1e 0x00>; + vpcie3v3-supply = <0xc2>; + + legacy-interrupt-controller { + interrupt-controller; + #address-cells = <0x00>; + #interrupt-cells = <0x01>; + interrupt-parent = <0x01>; + interrupts = <0x00 0xa2 0x01>; + phandle = <0xc1>; + }; + }; + + uio@fe2a0000 { + compatible = "rockchip,uio-gmac"; + reg = <0x00 0xfe2a0000 0x00 0x10000>; + rockchip,ethernet = <0xc3>; + status = "disabled"; + }; + + ethernet@fe2a0000 { + local-mac-address = [5a 4f fd 70 05 c6]; + compatible = "rockchip,rk3568-gmac\0snps,dwmac-4.20a"; + reg = <0x00 0xfe2a0000 0x00 0x10000>; + interrupts = <0x00 0x1b 0x04 0x00 0x18 0x04>; + interrupt-names = "macirq\0eth_wake_irq"; + rockchip,grf = <0x3b>; + clocks = <0x23 0x182 0x23 0x185 0x23 0x185 0x23 0xb8 0x23 0xb4 0x23 0xb5 0x23 0x185 0x23 0xb9 0x23 0xac 0x23 0xab>; + clock-names = "stmmaceth\0mac_clk_rx\0mac_clk_tx\0clk_mac_refout\0aclk_mac\0pclk_mac\0clk_mac_speed\0ptp_ref\0pclk_xpcs\0clk_xpcs_eee"; + resets = <0x23 0xd7>; + reset-names = "stmmaceth"; + snps,mixed-burst; + snps,tso; + snps,axi-config = <0xc4>; + snps,mtl-rx-config = <0xc5>; + snps,mtl-tx-config = <0xc6>; + status = "okay"; + phy-mode = "rgmii"; + clock_in_out = "input"; + snps,reset-gpio = <0x91 0x1b 0x01>; + snps,reset-active-low; + snps,reset-delays-us = <0x00 0x4e20 0x186a0>; + assigned-clocks = <0x23 0x185 0x23 0x182>; + assigned-clock-parents = <0x23 0x183 0xc7>; + pinctrl-names = "default"; + pinctrl-0 = <0xc8 0xc9 0xca 0xcb 0xcc 0xcd>; + tx_delay = <0x4a>; + rx_delay = <0x2e>; + phy-handle = <0xce>; + phandle = <0xc3>; + + mdio { + compatible = "snps,dwmac-mdio"; + #address-cells = <0x01>; + #size-cells = <0x00>; + + phy@0 { + compatible = "ethernet-phy-ieee802.3-c22"; + reg = <0x00>; + led_status_value = <0x6940>; + phandle = <0xce>; + }; + }; + + stmmac-axi-config { + snps,wr_osr_lmt = <0x04>; + snps,rd_osr_lmt = <0x08>; + snps,blen = <0x00 0x00 0x00 0x00 0x10 0x08 0x04>; + phandle = <0xc4>; + }; + + rx-queues-config { + snps,rx-queues-to-use = <0x01>; + phandle = <0xc5>; + + queue0 { + }; + }; + + tx-queues-config { + snps,tx-queues-to-use = <0x01>; + phandle = <0xc6>; + + queue0 { + }; + }; + }; + + dwmmc@fe2b0000 { + compatible = "rockchip,rk3568-dw-mshc\0rockchip,rk3288-dw-mshc"; + reg = <0x00 0xfe2b0000 0x00 0x4000>; + interrupts = <0x00 0x62 0x04>; + max-frequency = <0x8f0d180>; + clocks = <0x23 0xb0 0x23 0xb1 0x23 0x18a 0x23 0x18b>; + clock-names = "biu\0ciu\0ciu-drive\0ciu-sample"; + fifo-depth = <0x100>; + resets = <0x23 0xd4>; + reset-names = "reset"; + status = "okay"; + no-sdio; + no-mmc; + bus-width = <0x04>; + cap-mmc-highspeed; + cap-sd-highspeed; + disable-wp; + sd-uhs-sdr104; + vmmc-supply = <0xcf>; + vqmmc-supply = <0x31>; + pinctrl-names = "default"; + pinctrl-0 = <0xd0 0xd1 0xd2 0xd3>; + }; + + dwmmc@fe2c0000 { + compatible = "rockchip,rk3568-dw-mshc\0rockchip,rk3288-dw-mshc"; + reg = <0x00 0xfe2c0000 0x00 0x4000>; + interrupts = <0x00 0x63 0x04>; + max-frequency = <0x8f0d180>; + clocks = <0x23 0xb2 0x23 0xb3 0x23 0x18c 0x23 0x18d>; + clock-names = "biu\0ciu\0ciu-drive\0ciu-sample"; + fifo-depth = <0x100>; + resets = <0x23 0xd6>; + reset-names = "reset"; + status = "disabled"; + }; + + spi@fe300000 { + compatible = "rockchip,sfc"; + reg = <0x00 0xfe300000 0x00 0x4000>; + interrupts = <0x00 0x65 0x04>; + clocks = <0x23 0x78 0x23 0x76>; + clock-names = "clk_sfc\0hclk_sfc"; + assigned-clocks = <0x23 0x78>; + assigned-clock-rates = <0x2faf080>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "okay"; + pinctrl-names = "default"; + pinctrl-0 = <0xd4>; + + flash@0 { + compatible = "jedec,spi-nor"; + reg = <0x00>; + spi-max-frequency = <0x2faf080>; + spi-rx-bus-width = <0x01>; + spi-tx-bus-width = <0x01>; + }; + }; + + sdhci@fe310000 { + compatible = "rockchip,rk3568-dwcmshc\0rockchip,dwcmshc-sdhci"; + reg = <0x00 0xfe310000 0x00 0x10000>; + interrupts = <0x00 0x13 0x04>; + assigned-clocks = <0x23 0x7b 0x23 0x7d 0x23 0x7c>; + assigned-clock-rates = <0xbebc200 0x16e3600 0xbebc200>; + clocks = <0x23 0x7c 0x23 0x7a 0x23 0x79 0x23 0x7b 0x23 0x7d>; + clock-names = "core\0bus\0axi\0block\0timer"; + resets = <0x23 0x78 0x23 0x76 0x23 0x75 0x23 0x77 0x23 0x79>; + reset-names = "core\0bus\0axi\0block\0timer"; + status = "okay"; + bus-width = <0x08>; + no-sdio; + no-sd; + non-removable; + max-frequency = <0xbebc200>; + full-pwr-cycle-in-suspend; + }; + + nandc@fe330000 { + compatible = "rockchip,rk-nandc-v9"; + reg = <0x00 0xfe330000 0x00 0x4000>; + interrupts = <0x00 0x46 0x04>; + nandc_id = <0x00>; + clocks = <0x23 0x75 0x23 0x74>; + clock-names = "clk_nandc\0hclk_nandc"; + status = "okay"; + #address-cells = <0x01>; + #size-cells = <0x00>; + + nand@0 { + reg = <0x00>; + nand-bus-width = <0x08>; + nand-ecc-mode = "hw"; + nand-ecc-strength = <0x10>; + nand-ecc-step-size = <0x400>; + }; + }; + + crypto@fe380000 { + compatible = "rockchip,rk3568-crypto"; + reg = <0x00 0xfe380000 0x00 0x4000>; + interrupts = <0x00 0x04 0x04>; + clocks = <0x23 0x6a 0x23 0x6b 0x23 0x6c 0x23 0x6d>; + clock-names = "aclk\0hclk\0sclk\0apb_pclk"; + assigned-clocks = <0x23 0x6c>; + assigned-clock-rates = <0xbebc200>; + resets = <0x23 0x69>; + reset-names = "crypto-rst"; + status = "disabled"; + }; + + rng@fe388000 { + compatible = "rockchip,cryptov2-rng"; + reg = <0x00 0xfe388000 0x00 0x2000>; + clocks = <0x23 0x70 0x23 0x6f>; + clock-names = "clk_trng\0hclk_trng"; + resets = <0x23 0x6d>; + reset-names = "reset"; + status = "okay"; + }; + + otp@fe38c000 { + compatible = "rockchip,rk3568-otp"; + reg = <0x00 0xfe38c000 0x00 0x4000>; + #address-cells = <0x01>; + #size-cells = <0x01>; + clocks = <0x23 0x73 0x23 0x72 0x23 0x71 0x23 0x181>; + clock-names = "usr\0sbpi\0apb\0phy"; + resets = <0x23 0x1cf>; + reset-names = "otp_phy"; + + cpu-code@2 { + reg = <0x02 0x02>; + phandle = <0x12>; + }; + + specification-serial-number@7 { + reg = <0x07 0x01>; + bits = <0x00 0x05>; + phandle = <0x0a>; + }; + + cpu-version@8 { + reg = <0x08 0x01>; + bits = <0x03 0x03>; + phandle = <0x11>; + }; + + mbist-vmin@9 { + reg = <0x09 0x01>; + bits = <0x00 0x04>; + phandle = <0x08>; + }; + + id@a { + reg = <0x0a 0x10>; + phandle = <0x10>; + }; + + cpu-leakage@1a { + reg = <0x1a 0x01>; + phandle = <0x06>; + }; + + log-leakage@1b { + reg = <0x1b 0x01>; + phandle = <0x85>; + }; + + npu-leakage@1c { + reg = <0x1c 0x01>; + phandle = <0x72>; + }; + + gpu-leakage@1d { + reg = <0x1d 0x01>; + phandle = <0x78>; + }; + + core-pvtm@2a { + reg = <0x2a 0x02>; + phandle = <0x07>; + }; + + cpu-tsadc-trim-l@2e { + reg = <0x2e 0x01>; + phandle = <0x125>; + }; + + cpu-tsadc-trim-h@2f { + reg = <0x2f 0x01>; + bits = <0x00 0x04>; + phandle = <0x126>; + }; + + npu-tsadc-trim-l@30 { + reg = <0x30 0x01>; + phandle = <0x127>; + }; + + npu-tsadc-trim-h@31 { + reg = <0x31 0x01>; + bits = <0x00 0x04>; + phandle = <0x128>; + }; + + tsadc-trim-base-frac@31 { + reg = <0x31 0x01>; + bits = <0x04 0x04>; + phandle = <0x122>; + }; + + tsadc-trim-base@32 { + reg = <0x32 0x01>; + phandle = <0x121>; + }; + + cpu-opp-info@36 { + reg = <0x36 0x06>; + phandle = <0x09>; + }; + + gpu-opp-info@3c { + reg = <0x3c 0x06>; + phandle = <0x79>; + }; + + npu-opp-info@42 { + reg = <0x42 0x06>; + phandle = <0x73>; + }; + + dmc-opp-info@48 { + reg = <0x48 0x06>; + phandle = <0xbc>; + }; + + remark-spec-serial-number@56 { + reg = <0x56 0x01>; + bits = <0x00 0x05>; + phandle = <0x0b>; + }; + }; + + i2s@fe400000 { + compatible = "rockchip,rk3568-i2s-tdm"; + reg = <0x00 0xfe400000 0x00 0x1000>; + interrupts = <0x00 0x34 0x04>; + clocks = <0x23 0x3f 0x23 0x43 0x23 0x39>; + clock-names = "mclk_tx\0mclk_rx\0hclk"; + dmas = <0xd5 0x00>; + dma-names = "tx"; + resets = <0x23 0x50 0x23 0x51>; + reset-names = "tx-m\0rx-m"; + rockchip,cru = <0x23>; + rockchip,grf = <0x3b>; + rockchip,playback-only; + #sound-dai-cells = <0x00>; + status = "okay"; + phandle = <0x146>; + }; + + i2s@fe410000 { + compatible = "rockchip,rk3568-i2s-tdm"; + reg = <0x00 0xfe410000 0x00 0x1000>; + interrupts = <0x00 0x35 0x04>; + clocks = <0x23 0x47 0x23 0x4b 0x23 0x3a>; + clock-names = "mclk_tx\0mclk_rx\0hclk"; + dmas = <0xd5 0x02 0xd5 0x03>; + dma-names = "tx\0rx"; + resets = <0x23 0x52 0x23 0x53>; + reset-names = "tx-m\0rx-m"; + rockchip,cru = <0x23>; + rockchip,grf = <0x3b>; + #sound-dai-cells = <0x00>; + pinctrl-names = "default"; + pinctrl-0 = <0xd6 0xd7 0xd8 0xd9>; + status = "okay"; + rockchip,clk-trcm = <0x01>; + phandle = <0xe8>; + }; + + i2s@fe420000 { + compatible = "rockchip,rk3568-i2s-tdm"; + reg = <0x00 0xfe420000 0x00 0x1000>; + interrupts = <0x00 0x36 0x04>; + clocks = <0x23 0x4f 0x23 0x4f 0x23 0x3b>; + clock-names = "mclk_tx\0mclk_rx\0hclk"; + dmas = <0xd5 0x04 0xd5 0x05>; + dma-names = "tx\0rx"; + rockchip,cru = <0x23>; + rockchip,grf = <0x3b>; + rockchip,clk-trcm = <0x01>; + #sound-dai-cells = <0x00>; + pinctrl-names = "default"; + pinctrl-0 = <0xda 0xdb 0xdc 0xdd>; + status = "disabled"; + }; + + i2s@fe430000 { + compatible = "rockchip,rk3568-i2s-tdm"; + reg = <0x00 0xfe430000 0x00 0x1000>; + interrupts = <0x00 0x37 0x04>; + clocks = <0x23 0x53 0x23 0x57 0x23 0x3c>; + clock-names = "mclk_tx\0mclk_rx\0hclk"; + dmas = <0xd5 0x06 0xd5 0x07>; + dma-names = "tx\0rx"; + resets = <0x23 0x55 0x23 0x56>; + reset-names = "tx-m\0rx-m"; + rockchip,cru = <0x23>; + rockchip,grf = <0x3b>; + rockchip,clk-trcm = <0x01>; + #sound-dai-cells = <0x00>; + pinctrl-names = "default"; + pinctrl-0 = <0xde 0xdf 0xe0 0xe1>; + status = "disabled"; + phandle = <0x144>; + }; + + pdm@fe440000 { + compatible = "rockchip,rk3568-pdm\0rockchip,pdm"; + reg = <0x00 0xfe440000 0x00 0x1000>; + clocks = <0x23 0x5a 0x23 0x59>; + clock-names = "pdm_clk\0pdm_hclk"; + dmas = <0xd5 0x09>; + dma-names = "rx"; + pinctrl-names = "default"; + pinctrl-0 = <0xe2 0xe3 0xe4 0xe5 0xe6 0xe7>; + #sound-dai-cells = <0x00>; + status = "disabled"; + phandle = <0x149>; + }; + + vad@fe450000 { + compatible = "rockchip,rk3568-vad"; + reg = <0x00 0xfe450000 0x00 0x10000>; + reg-names = "vad"; + clocks = <0x23 0x5b>; + clock-names = "hclk"; + interrupts = <0x00 0x89 0x04>; + rockchip,audio-src = <0xe8>; + rockchip,det-channel = <0x00>; + rockchip,mode = <0x00>; + #sound-dai-cells = <0x00>; + status = "disabled"; + rockchip,buffer-time-ms = <0x80>; + phandle = <0x14e>; + }; + + spdif@fe460000 { + compatible = "rockchip,rk3568-spdif"; + reg = <0x00 0xfe460000 0x00 0x1000>; + interrupts = <0x00 0x66 0x04>; + dmas = <0xd5 0x01>; + dma-names = "tx"; + clock-names = "mclk\0hclk"; + clocks = <0x23 0x5f 0x23 0x5c>; + #sound-dai-cells = <0x00>; + pinctrl-names = "default"; + pinctrl-0 = <0xe9>; + status = "disabled"; + phandle = <0x14c>; + }; + + audpwm@fe470000 { + compatible = "rockchip,rk3568-audio-pwm\0rockchip,audio-pwm-v1"; + reg = <0x00 0xfe470000 0x00 0x1000>; + clocks = <0x23 0x63 0x23 0x60>; + clock-names = "clk\0hclk"; + dmas = <0xd5 0x08>; + dma-names = "tx"; + #sound-dai-cells = <0x00>; + rockchip,sample-width-bits = <0x0b>; + rockchip,interpolat-points = <0x01>; + status = "disabled"; + }; + + codec-digital@fe478000 { + compatible = "rockchip,rk3568-codec-digital\0rockchip,codec-digital-v1"; + reg = <0x00 0xfe478000 0x00 0x1000>; + clocks = <0x23 0x67 0x23 0x66 0x23 0x65 0x23 0x64>; + clock-names = "adc\0dac\0i2c\0pclk"; + pinctrl-names = "default"; + pinctrl-0 = <0xea>; + resets = <0x23 0x5f>; + reset-names = "reset"; + rockchip,grf = <0x3b>; + #sound-dai-cells = <0x00>; + status = "disabled"; + phandle = <0x145>; + }; + + dmac@fe530000 { + compatible = "arm,pl330\0arm,primecell"; + reg = <0x00 0xfe530000 0x00 0x4000>; + interrupts = <0x00 0x0e 0x04 0x00 0x0d 0x04>; + clocks = <0x23 0x10d>; + clock-names = "apb_pclk"; + #dma-cells = <0x01>; + arm,pl330-periph-burst; + phandle = <0x4e>; + }; + + dmac@fe550000 { + compatible = "arm,pl330\0arm,primecell"; + reg = <0x00 0xfe550000 0x00 0x4000>; + interrupts = <0x00 0x10 0x04 0x00 0x0f 0x04>; + clocks = <0x23 0x10d>; + clock-names = "apb_pclk"; + #dma-cells = <0x01>; + arm,pl330-periph-burst; + phandle = <0xd5>; + }; + + rkscr@fe560000 { + compatible = "rockchip-scr"; + reg = <0x00 0xfe560000 0x00 0x10000>; + interrupts = <0x00 0x61 0x04>; + pinctrl-names = "default"; + pinctrl-0 = <0xeb>; + clocks = <0x23 0x114>; + clock-names = "g_pclk_sim_card"; + status = "disabled"; + }; + + can@fe570000 { + compatible = "rockchip,rk3568-can-2.0"; + reg = <0x00 0xfe570000 0x00 0x1000>; + interrupts = <0x00 0x01 0x04>; + clocks = <0x23 0x141 0x23 0x140>; + clock-names = "baudclk\0apb_pclk"; + resets = <0x23 0x155 0x23 0x154>; + reset-names = "can\0can-apb"; + tx-fifo-depth = <0x01>; + rx-fifo-depth = <0x06>; + status = "disabled"; + }; + + can@fe580000 { + compatible = "rockchip,rk3568-can-2.0"; + reg = <0x00 0xfe580000 0x00 0x1000>; + interrupts = <0x00 0x02 0x04>; + clocks = <0x23 0x143 0x23 0x142>; + clock-names = "baudclk\0apb_pclk"; + resets = <0x23 0x157 0x23 0x156>; + reset-names = "can\0can-apb"; + tx-fifo-depth = <0x01>; + rx-fifo-depth = <0x06>; + status = "okay"; + assigned-clocks = <0x23 0x143>; + assigned-clock-rates = <0xbebc200>; + pinctrl-names = "default"; + pinctrl-0 = <0xec>; + }; + + can@fe590000 { + compatible = "rockchip,rk3568-can-2.0"; + reg = <0x00 0xfe590000 0x00 0x1000>; + interrupts = <0x00 0x03 0x04>; + clocks = <0x23 0x145 0x23 0x144>; + clock-names = "baudclk\0apb_pclk"; + resets = <0x23 0x159 0x23 0x158>; + reset-names = "can\0can-apb"; + tx-fifo-depth = <0x01>; + rx-fifo-depth = <0x06>; + status = "disabled"; + assigned-clocks = <0x23 0x145>; + assigned-clock-rates = <0xbebc200>; + pinctrl-names = "default"; + pinctrl-0 = <0xed>; + }; + + i2c@fe5a0000 { + compatible = "rockchip,rk3399-i2c"; + reg = <0x00 0xfe5a0000 0x00 0x1000>; + clocks = <0x23 0x148 0x23 0x147>; + clock-names = "i2c\0pclk"; + interrupts = <0x00 0x2f 0x04>; + pinctrl-names = "default"; + pinctrl-0 = <0xee>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "okay"; + clock-frequency = <0x186a0>; + + gpio@21 { + status = "disabled"; + compatible = "nxp,pca9555"; + reg = <0x21>; + gpio-controller; + #gpio-cells = <0x02>; + gpio-group-num = <0xc8>; + phandle = <0x102>; + }; + + gt1x@14 { + status = "disabled"; + compatible = "goodix,gt1x"; + reg = <0x14>; + pinctrl-names = "default"; + pinctrl-0 = <0xef>; + goodix,rst-gpio = <0x3f 0x0e 0x00>; + goodix,irq-gpio = <0x3f 0x0d 0x08>; + }; + }; + + i2c@fe5b0000 { + compatible = "rockchip,rk3399-i2c"; + reg = <0x00 0xfe5b0000 0x00 0x1000>; + clocks = <0x23 0x14a 0x23 0x149>; + clock-names = "i2c\0pclk"; + interrupts = <0x00 0x30 0x04>; + pinctrl-names = "default"; + pinctrl-0 = <0xf0>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "disabled"; + }; + + i2c@fe5c0000 { + compatible = "rockchip,rk3399-i2c"; + reg = <0x00 0xfe5c0000 0x00 0x1000>; + clocks = <0x23 0x14c 0x23 0x14b>; + clock-names = "i2c\0pclk"; + interrupts = <0x00 0x31 0x04>; + pinctrl-names = "default"; + pinctrl-0 = <0xf1>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "disabled"; + }; + + i2c@fe5d0000 { + compatible = "rockchip,rk3399-i2c"; + reg = <0x00 0xfe5d0000 0x00 0x1000>; + clocks = <0x23 0x14e 0x23 0x14d>; + clock-names = "i2c\0pclk"; + interrupts = <0x00 0x32 0x04>; + pinctrl-names = "default"; + pinctrl-0 = <0xf2>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "okay"; + clock-frequency = <0x61a80>; + + gc8034@37 { + compatible = "galaxycore,gc8034"; + status = "disabled"; + reg = <0x37>; + clocks = <0x23 0xd6>; + clock-names = "xvclk"; + pinctrl-names = "default"; + pinctrl-0 = <0xf3>; + reset-gpios = <0x4a 0x0e 0x01>; + pwdn-gpios = <0xf4 0x0c 0x01>; + rockchip,grf = <0x3b>; + rockchip,camera-module-index = <0x00>; + rockchip,camera-module-facing = "back"; + rockchip,camera-module-name = "RK-CMK-8M-2-v1"; + rockchip,camera-module-lens-name = "CK8401"; + + port { + + endpoint { + remote-endpoint = <0xf5>; + data-lanes = <0x01 0x02 0x03 0x04>; + phandle = <0x130>; + }; + }; + }; + + os04a10@36 { + status = "disabled"; + compatible = "ovti,os04a10"; + reg = <0x36>; + clocks = <0x23 0xd6>; + clock-names = "xvclk"; + power-domains = <0x25 0x08>; + pinctrl-names = "default"; + pinctrl-0 = <0xf3>; + reset-gpios = <0x4a 0x0e 0x01>; + pwdn-gpios = <0xf4 0x0c 0x00>; + rockchip,camera-module-index = <0x00>; + rockchip,camera-module-facing = "back"; + rockchip,camera-module-name = "CMK-OT1607-FV1"; + rockchip,camera-module-lens-name = "M12-40IRC-4MP-F16"; + + port { + + endpoint { + remote-endpoint = <0xf6>; + data-lanes = <0x01 0x02 0x03 0x04>; + phandle = <0x12f>; + }; + }; + }; + + ov5695@36 { + status = "disabled"; + compatible = "ovti,ov5695"; + reg = <0x36>; + clocks = <0x23 0xd6>; + clock-names = "xvclk"; + power-domains = <0x25 0x08>; + pinctrl-names = "default"; + pinctrl-0 = <0xf3>; + reset-gpios = <0x4a 0x0e 0x00>; + pwdn-gpios = <0xf4 0x0c 0x00>; + rockchip,camera-module-index = <0x00>; + rockchip,camera-module-facing = "back"; + rockchip,camera-module-name = "TongJu"; + rockchip,camera-module-lens-name = "CHT842-MD"; + + port { + + endpoint { + remote-endpoint = <0xf7>; + data-lanes = <0x01 0x02>; + phandle = <0x131>; + }; + }; + }; + + XC7160b@1b { + status = "okay"; + compatible = "firefly,xc7160"; + reg = <0x1b>; + clocks = <0x23 0xd6>; + clock-names = "xvclk"; + power-domains = <0x25 0x08>; + pinctrl-names = "default"; + pinctrl-0 = <0xf3>; + reset-gpios = <0x3f 0x1d 0x00>; + pwdn-gpios = <0xf4 0x0c 0x00>; + firefly,clkout-enabled-index = <0x00>; + rockchip,camera-module-index = <0x00>; + rockchip,camera-module-facing = "back"; + rockchip,camera-module-name = "NC"; + rockchip,camera-module-lens-name = "NC"; + + port { + + endpoint { + remote-endpoint = <0xf8>; + data-lanes = <0x01 0x02 0x03 0x04>; + phandle = <0x132>; + }; + }; + }; + + imx415@37 { + status = "okay"; + compatible = "sony,imx415"; + reg = <0x37>; + clocks = <0x23 0xd6>; + clock-names = "xvclk"; + power-domains = <0x25 0x08>; + pinctrl-names = "default"; + pinctrl-0 = <0xf3>; + reset-gpios = <0x3f 0x1d 0x01>; + pwdn-gpios = <0xf4 0x0c 0x00>; + firefly,clkout-enabled-index = <0x00>; + rockchip,camera-module-index = <0x00>; + rockchip,camera-module-facing = "back"; + rockchip,camera-module-name = "CMK-OT2022-PX1"; + rockchip,camera-module-lens-name = "IR0147-50IRC-8M-F20"; + + port { + + endpoint { + remote-endpoint = <0xf9>; + data-lanes = <0x01 0x02 0x03 0x04>; + phandle = <0x133>; + }; + }; + }; + }; + + i2c@fe5e0000 { + compatible = "rockchip,rk3399-i2c"; + reg = <0x00 0xfe5e0000 0x00 0x1000>; + clocks = <0x23 0x150 0x23 0x14f>; + clock-names = "i2c\0pclk"; + interrupts = <0x00 0x33 0x04>; + pinctrl-names = "default"; + pinctrl-0 = <0xfa>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "okay"; + + hym8563@51 { + status = "okay"; + compatible = "haoyu,hym8563"; + reg = <0x51>; + #clock-cells = <0x00>; + rtc-irq-gpio = <0x3f 0x1b 0x02>; + clock-frequency = <0x8000>; + }; + + mc3230sensor@4c { + compatible = "gs_mc3230"; + reg = <0x4c>; + type = <0x02>; + irq_enable = <0x00>; + poll_delay_ms = <0x1e>; + layout = <0x04>; + status = "okay"; + }; + + mxc6655xa@15 { + status = "disabled"; + compatible = "gs_mxc6655xa"; + pinctrl-names = "default"; + pinctrl-0 = <0xfb>; + reg = <0x15>; + irq-gpio = <0x4a 0x11 0x08>; + irq_enable = <0x00>; + poll_delay_ms = <0x1e>; + type = <0x02>; + power-off-in-suspend = <0x01>; + layout = <0x01>; + }; + }; + + timer@fe5f0000 { + compatible = "rockchip,rk3568-timer\0rockchip,rk3288-timer"; + reg = <0x00 0xfe5f0000 0x00 0x1000>; + interrupts = <0x00 0x6d 0x04>; + clocks = <0x23 0x16c 0x23 0x16d>; + clock-names = "pclk\0timer"; + }; + + watchdog@fe600000 { + compatible = "snps,dw-wdt"; + reg = <0x00 0xfe600000 0x00 0x100>; + clocks = <0x23 0x116 0x23 0x115>; + clock-names = "tclk\0pclk"; + interrupts = <0x00 0x95 0x04>; + status = "okay"; + }; + + spi@fe610000 { + compatible = "rockchip,rk3066-spi"; + reg = <0x00 0xfe610000 0x00 0x1000>; + interrupts = <0x00 0x67 0x04>; + #address-cells = <0x01>; + #size-cells = <0x00>; + clocks = <0x23 0x152 0x23 0x151>; + clock-names = "spiclk\0apb_pclk"; + dmas = <0x4e 0x14 0x4e 0x15>; + dma-names = "tx\0rx"; + pinctrl-names = "default\0high_speed"; + pinctrl-0 = <0xfc 0xfd 0xfe>; + pinctrl-1 = <0xfc 0xfd 0xff>; + num-cs = <0x02>; + status = "disabled"; + }; + + spi@fe620000 { + compatible = "rockchip,rk3066-spi"; + reg = <0x00 0xfe620000 0x00 0x1000>; + interrupts = <0x00 0x68 0x04>; + #address-cells = <0x01>; + #size-cells = <0x00>; + clocks = <0x23 0x154 0x23 0x153>; + clock-names = "spiclk\0apb_pclk"; + dmas = <0x4e 0x16 0x4e 0x17>; + dma-names = "tx\0rx"; + pinctrl-names = "default\0high_speed"; + pinctrl-0 = <0x100>; + pinctrl-1 = <0x101>; + num-cs = <0x02>; + status = "disabled"; + max-freq = <0x2dc6c00>; + dev-port = <0x00>; + + spi_wk2xxx@0 { + status = "disabled"; + compatible = "firefly,spi-wk2xxx"; + reg = <0x00>; + spi-max-frequency = <0x989680>; + power-gpio = <0x102 0x0f 0x00>; + reset-gpio = <0x102 0x09 0x00>; + irq-gpio = <0x3f 0x06 0x02>; + cs-gpio = <0x4a 0x01 0x00>; + }; + }; + + spi@fe630000 { + compatible = "rockchip,rk3066-spi"; + reg = <0x00 0xfe630000 0x00 0x1000>; + interrupts = <0x00 0x69 0x04>; + #address-cells = <0x01>; + #size-cells = <0x00>; + clocks = <0x23 0x156 0x23 0x155>; + clock-names = "spiclk\0apb_pclk"; + dmas = <0x4e 0x18 0x4e 0x19>; + dma-names = "tx\0rx"; + pinctrl-names = "default\0high_speed"; + pinctrl-0 = <0x103 0x104 0x105>; + pinctrl-1 = <0x103 0x104 0x106>; + num-cs = <0x02>; + status = "disabled"; + }; + + spi@fe640000 { + compatible = "rockchip,rk3066-spi"; + reg = <0x00 0xfe640000 0x00 0x1000>; + interrupts = <0x00 0x6a 0x04>; + #address-cells = <0x01>; + #size-cells = <0x00>; + clocks = <0x23 0x158 0x23 0x157>; + clock-names = "spiclk\0apb_pclk"; + dmas = <0x4e 0x1a 0x4e 0x1b>; + dma-names = "tx\0rx"; + pinctrl-names = "default\0high_speed"; + pinctrl-0 = <0x107 0x108 0x109>; + pinctrl-1 = <0x107 0x108 0x10a>; + num-cs = <0x02>; + status = "disabled"; + }; + + serial@fe650000 { + compatible = "rockchip,rk3568-uart\0snps,dw-apb-uart"; + reg = <0x00 0xfe650000 0x00 0x100>; + interrupts = <0x00 0x75 0x04>; + clocks = <0x23 0x11f 0x23 0x11c>; + clock-names = "baudclk\0apb_pclk"; + reg-shift = <0x02>; + reg-io-width = <0x04>; + dmas = <0x4e 0x02 0x4e 0x03>; + pinctrl-names = "default"; + pinctrl-0 = <0x10b>; + status = "disabled"; + }; + + serial@fe660000 { + compatible = "rockchip,rk3568-uart\0snps,dw-apb-uart"; + reg = <0x00 0xfe660000 0x00 0x100>; + interrupts = <0x00 0x76 0x04>; + clocks = <0x23 0x123 0x23 0x120>; + clock-names = "baudclk\0apb_pclk"; + reg-shift = <0x02>; + reg-io-width = <0x04>; + dmas = <0x4e 0x04 0x4e 0x05>; + pinctrl-names = "default"; + pinctrl-0 = <0x10c>; + status = "disabled"; + }; + + serial@fe670000 { + compatible = "rockchip,rk3568-uart\0snps,dw-apb-uart"; + reg = <0x00 0xfe670000 0x00 0x100>; + interrupts = <0x00 0x77 0x04>; + clocks = <0x23 0x127 0x23 0x124>; + clock-names = "baudclk\0apb_pclk"; + reg-shift = <0x02>; + reg-io-width = <0x04>; + dmas = <0x4e 0x06 0x4e 0x07>; + pinctrl-names = "default"; + pinctrl-0 = <0x10d>; + status = "okay"; + }; + + serial@fe680000 { + compatible = "rockchip,rk3568-uart\0snps,dw-apb-uart"; + reg = <0x00 0xfe680000 0x00 0x100>; + interrupts = <0x00 0x78 0x04>; + clocks = <0x23 0x12b 0x23 0x128>; + clock-names = "baudclk\0apb_pclk"; + reg-shift = <0x02>; + reg-io-width = <0x04>; + dmas = <0x4e 0x08 0x4e 0x09>; + pinctrl-names = "default"; + pinctrl-0 = <0x10e>; + status = "okay"; + }; + + serial@fe690000 { + compatible = "rockchip,rk3568-uart\0snps,dw-apb-uart"; + reg = <0x00 0xfe690000 0x00 0x100>; + interrupts = <0x00 0x79 0x04>; + clocks = <0x23 0x12f 0x23 0x12c>; + clock-names = "baudclk\0apb_pclk"; + reg-shift = <0x02>; + reg-io-width = <0x04>; + dmas = <0x4e 0x0a 0x4e 0x0b>; + pinctrl-names = "default"; + pinctrl-0 = <0x10f>; + status = "disabled"; + }; + + serial@fe6a0000 { + compatible = "rockchip,rk3568-uart\0snps,dw-apb-uart"; + reg = <0x00 0xfe6a0000 0x00 0x100>; + interrupts = <0x00 0x7a 0x04>; + clocks = <0x23 0x133 0x23 0x130>; + clock-names = "baudclk\0apb_pclk"; + reg-shift = <0x02>; + reg-io-width = <0x04>; + dmas = <0x4e 0x0c 0x4e 0x0d>; + pinctrl-names = "default"; + pinctrl-0 = <0x110>; + status = "disabled"; + }; + + serial@fe6b0000 { + compatible = "rockchip,rk3568-uart\0snps,dw-apb-uart"; + reg = <0x00 0xfe6b0000 0x00 0x100>; + interrupts = <0x00 0x7b 0x04>; + clocks = <0x23 0x137 0x23 0x134>; + clock-names = "baudclk\0apb_pclk"; + reg-shift = <0x02>; + reg-io-width = <0x04>; + dmas = <0x4e 0x0e 0x4e 0x0f>; + pinctrl-names = "default"; + pinctrl-0 = <0x111>; + status = "okay"; + }; + + serial@fe6c0000 { + compatible = "rockchip,rk3568-uart\0snps,dw-apb-uart"; + reg = <0x00 0xfe6c0000 0x00 0x100>; + interrupts = <0x00 0x7c 0x04>; + clocks = <0x23 0x13b 0x23 0x138>; + clock-names = "baudclk\0apb_pclk"; + reg-shift = <0x02>; + reg-io-width = <0x04>; + dmas = <0x4e 0x10 0x4e 0x11>; + pinctrl-names = "default"; + pinctrl-0 = <0x112 0x113>; + status = "okay"; + }; + + serial@fe6d0000 { + compatible = "rockchip,rk3568-uart\0snps,dw-apb-uart"; + reg = <0x00 0xfe6d0000 0x00 0x100>; + interrupts = <0x00 0x7d 0x04>; + clocks = <0x23 0x13f 0x23 0x13c>; + clock-names = "baudclk\0apb_pclk"; + reg-shift = <0x02>; + reg-io-width = <0x04>; + dmas = <0x4e 0x12 0x4e 0x13>; + pinctrl-names = "default"; + pinctrl-0 = <0x114>; + status = "okay"; + }; + + pwm@fe6e0000 { + compatible = "rockchip,rk3568-pwm\0rockchip,rk3328-pwm"; + reg = <0x00 0xfe6e0000 0x00 0x10>; + interrupts = <0x00 0x53 0x04>; + #pwm-cells = <0x03>; + pinctrl-names = "active"; + pinctrl-0 = <0x115>; + clocks = <0x23 0x15a 0x23 0x159>; + clock-names = "pwm\0pclk"; + status = "okay"; + }; + + pwm@fe6e0010 { + compatible = "rockchip,rk3568-pwm\0rockchip,rk3328-pwm"; + reg = <0x00 0xfe6e0010 0x00 0x10>; + interrupts = <0x00 0x53 0x04>; + #pwm-cells = <0x03>; + pinctrl-names = "active"; + pinctrl-0 = <0x116>; + clocks = <0x23 0x15a 0x23 0x159>; + clock-names = "pwm\0pclk"; + status = "okay"; + }; + + pwm@fe6e0020 { + compatible = "rockchip,rk3568-pwm\0rockchip,rk3328-pwm"; + reg = <0x00 0xfe6e0020 0x00 0x10>; + interrupts = <0x00 0x53 0x04>; + #pwm-cells = <0x03>; + pinctrl-names = "active"; + pinctrl-0 = <0x117>; + clocks = <0x23 0x15a 0x23 0x159>; + clock-names = "pwm\0pclk"; + status = "disabled"; + }; + + pwm@fe6e0030 { + compatible = "rockchip,remotectl-pwm"; + reg = <0x00 0xfe6e0030 0x00 0x10>; + interrupts = <0x00 0x53 0x04>; + #pwm-cells = <0x03>; + pinctrl-names = "default"; + pinctrl-0 = <0x118>; + clocks = <0x23 0x15a 0x23 0x159>; + clock-names = "pwm\0pclk"; + status = "okay"; + remote_pwm_id = <0x03>; + handle_cpu_id = <0x01>; + remote_support_psci = <0x00>; + + ir_key_firefly { + rockchip,usercode = <0xff00>; + rockchip,key_table = <0xeb 0x74 0xec 0x8b 0xfe 0x9e 0xb7 0x66 0xa3 0x96 0xf4 0x73 0xa7 0x72 0xf8 0xe8 0xfc 0x67 0xfd 0x6c 0xf1 0x69 0xe5 0x6a>; + }; + }; + + pwm@fe6f0000 { + compatible = "rockchip,rk3568-pwm\0rockchip,rk3328-pwm"; + reg = <0x00 0xfe6f0000 0x00 0x10>; + interrupts = <0x00 0x54 0x04>; + #pwm-cells = <0x03>; + pinctrl-names = "active"; + pinctrl-0 = <0x119>; + clocks = <0x23 0x15d 0x23 0x15c>; + clock-names = "pwm\0pclk"; + status = "disabled"; + }; + + pwm@fe6f0010 { + compatible = "rockchip,rk3568-pwm\0rockchip,rk3328-pwm"; + reg = <0x00 0xfe6f0010 0x00 0x10>; + interrupts = <0x00 0x54 0x04>; + #pwm-cells = <0x03>; + pinctrl-names = "active"; + pinctrl-0 = <0x11a>; + clocks = <0x23 0x15d 0x23 0x15c>; + clock-names = "pwm\0pclk"; + status = "disabled"; + }; + + pwm@fe6f0020 { + compatible = "rockchip,rk3568-pwm\0rockchip,rk3328-pwm"; + reg = <0x00 0xfe6f0020 0x00 0x10>; + interrupts = <0x00 0x54 0x04>; + #pwm-cells = <0x03>; + pinctrl-names = "active"; + pinctrl-0 = <0x11b>; + clocks = <0x23 0x15d 0x23 0x15c>; + clock-names = "pwm\0pclk"; + status = "disabled"; + }; + + pwm@fe6f0030 { + compatible = "rockchip,rk3568-pwm\0rockchip,rk3328-pwm"; + reg = <0x00 0xfe6f0030 0x00 0x10>; + interrupts = <0x00 0x54 0x04 0x00 0x58 0x04>; + #pwm-cells = <0x03>; + pinctrl-names = "active"; + pinctrl-0 = <0x11c>; + clocks = <0x23 0x15d 0x23 0x15c>; + clock-names = "pwm\0pclk"; + status = "disabled"; + phandle = <0x157>; + }; + + pwm@fe700000 { + compatible = "rockchip,rk3568-pwm\0rockchip,rk3328-pwm"; + reg = <0x00 0xfe700000 0x00 0x10>; + interrupts = <0x00 0x55 0x04>; + #pwm-cells = <0x03>; + pinctrl-names = "active"; + pinctrl-0 = <0x11d>; + clocks = <0x23 0x160 0x23 0x15f>; + clock-names = "pwm\0pclk"; + status = "disabled"; + }; + + pwm@fe700010 { + compatible = "rockchip,rk3568-pwm\0rockchip,rk3328-pwm"; + reg = <0x00 0xfe700010 0x00 0x10>; + interrupts = <0x00 0x55 0x04>; + #pwm-cells = <0x03>; + pinctrl-names = "active"; + pinctrl-0 = <0x11e>; + clocks = <0x23 0x160 0x23 0x15f>; + clock-names = "pwm\0pclk"; + status = "disabled"; + }; + + pwm@fe700020 { + compatible = "rockchip,rk3568-pwm\0rockchip,rk3328-pwm"; + reg = <0x00 0xfe700020 0x00 0x10>; + interrupts = <0x00 0x55 0x04>; + #pwm-cells = <0x03>; + pinctrl-names = "active"; + pinctrl-0 = <0x11f>; + clocks = <0x23 0x160 0x23 0x15f>; + clock-names = "pwm\0pclk"; + status = "disabled"; + }; + + pwm@fe700030 { + compatible = "rockchip,rk3568-pwm\0rockchip,rk3328-pwm"; + reg = <0x00 0xfe700030 0x00 0x10>; + interrupts = <0x00 0x55 0x04 0x00 0x59 0x04>; + #pwm-cells = <0x03>; + pinctrl-names = "active"; + pinctrl-0 = <0x120>; + clocks = <0x23 0x160 0x23 0x15f>; + clock-names = "pwm\0pclk"; + status = "disabled"; + }; + + tsadc@fe710000 { + compatible = "rockchip,rk3568-tsadc"; + reg = <0x00 0xfe710000 0x00 0x100>; + interrupts = <0x00 0x73 0x04>; + rockchip,grf = <0x3b>; + clocks = <0x23 0x111 0x23 0x10f>; + clock-names = "tsadc\0apb_pclk"; + assigned-clocks = <0x23 0x110 0x23 0x111>; + assigned-clock-rates = <0x1036640 0xaae60>; + resets = <0x23 0x182 0x23 0x181 0x23 0x1d7>; + reset-names = "tsadc\0tsadc-apb\0tsadc-phy"; + #thermal-sensor-cells = <0x01>; + nvmem-cells = <0x121 0x122>; + nvmem-cell-names = "trim_base\0trim_base_frac"; + rockchip,hw-tshut-temp = <0x1d4c0>; + rockchip,hw-tshut-mode = <0x00>; + rockchip,hw-tshut-polarity = <0x00>; + pinctrl-names = "gpio\0otpout"; + pinctrl-0 = <0x123>; + pinctrl-1 = <0x124>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "okay"; + phandle = <0x1f>; + + tsadc@0 { + reg = <0x00>; + nvmem-cells = <0x125 0x126>; + nvmem-cell-names = "trim_l\0trim_h"; + }; + + tsadc@1 { + reg = <0x01>; + nvmem-cells = <0x127 0x128>; + nvmem-cell-names = "trim_l\0trim_h"; + }; + }; + + saradc@fe720000 { + compatible = "rockchip,rk3568-saradc\0rockchip,rk3399-saradc"; + reg = <0x00 0xfe720000 0x00 0x100>; + interrupts = <0x00 0x5d 0x04>; + #io-channel-cells = <0x01>; + clocks = <0x23 0x113 0x23 0x112>; + clock-names = "saradc\0apb_pclk"; + resets = <0x23 0x180>; + reset-names = "saradc-apb"; + status = "okay"; + vref-supply = <0x129>; + phandle = <0x49>; + }; + + mailbox@fe780000 { + compatible = "rockchip,rk3568-mailbox\0rockchip,rk3368-mailbox"; + reg = <0x00 0xfe780000 0x00 0x1000>; + interrupts = <0x00 0xb7 0x04 0x00 0xb8 0x04 0x00 0xb9 0x04 0x00 0xba 0x04>; + clocks = <0x23 0x11b>; + clock-names = "pclk_mailbox"; + #mbox-cells = <0x01>; + status = "disabled"; + }; + + phy@fe820000 { + compatible = "rockchip,rk3568-naneng-combphy"; + reg = <0x00 0xfe820000 0x00 0x100>; + #phy-cells = <0x01>; + clocks = <0x3a 0x1f 0x23 0x17c 0x23 0x7f>; + clock-names = "refclk\0apbclk\0pipe_clk"; + assigned-clocks = <0x3a 0x1f>; + assigned-clock-rates = <0x5f5e100>; + resets = <0x23 0x1c4 0x23 0x1c5>; + reset-names = "combphy-apb\0combphy"; + rockchip,pipe-grf = <0x12a>; + rockchip,pipe-phy-grf = <0x12b>; + status = "okay"; + phandle = <0x24>; + }; + + phy@fe830000 { + compatible = "rockchip,rk3568-naneng-combphy"; + reg = <0x00 0xfe830000 0x00 0x100>; + #phy-cells = <0x01>; + clocks = <0x3a 0x22 0x23 0x17d 0x23 0x7f>; + clock-names = "refclk\0apbclk\0pipe_clk"; + assigned-clocks = <0x3a 0x22>; + assigned-clock-rates = <0x5f5e100>; + resets = <0x23 0x1c6 0x23 0x1c7>; + reset-names = "combphy-apb\0combphy"; + rockchip,pipe-grf = <0x12a>; + rockchip,pipe-phy-grf = <0x12c>; + status = "okay"; + phandle = <0x26>; + }; + + phy@fe840000 { + compatible = "rockchip,rk3568-naneng-combphy"; + reg = <0x00 0xfe840000 0x00 0x100>; + #phy-cells = <0x01>; + clocks = <0x3a 0x25 0x23 0x17e 0x23 0x7f>; + clock-names = "refclk\0apbclk\0pipe_clk"; + assigned-clocks = <0x3a 0x25>; + assigned-clock-rates = <0x5f5e100>; + resets = <0x23 0x1c8 0x23 0x1c9>; + reset-names = "combphy-apb\0combphy"; + rockchip,pipe-grf = <0x12a>; + rockchip,pipe-phy-grf = <0x12d>; + status = "okay"; + phandle = <0x27>; + }; + + phy@fe850000 { + compatible = "rockchip,rk3568-dsi-dphy\0rockchip,rk3568-video-phy"; + reg = <0x00 0xfe850000 0x00 0x10000 0x00 0xfe060000 0x00 0x10000>; + reg-names = "phy\0host"; + clocks = <0x3a 0x17 0x23 0x17a 0x23 0xe8>; + clock-names = "ref\0pclk\0pclk_host"; + #clock-cells = <0x00>; + resets = <0x23 0x1bb>; + reset-names = "apb"; + power-domains = <0x25 0x09>; + #phy-cells = <0x00>; + status = "disabled"; + phandle = <0x34>; + }; + + phy@fe860000 { + compatible = "rockchip,rk3568-dsi-dphy\0rockchip,rk3568-video-phy"; + reg = <0x00 0xfe860000 0x00 0x10000 0x00 0xfe070000 0x00 0x10000>; + reg-names = "phy\0host"; + clocks = <0x3a 0x19 0x23 0x17b 0x23 0xe9>; + clock-names = "ref\0pclk\0pclk_host"; + #clock-cells = <0x00>; + resets = <0x23 0x1bc>; + reset-names = "apb"; + power-domains = <0x25 0x09>; + #phy-cells = <0x00>; + status = "disabled"; + phandle = <0x36>; + }; + + csi2-dphy-hw@fe870000 { + compatible = "rockchip,rk3568-csi2-dphy-hw"; + reg = <0x00 0xfe870000 0x00 0x1000>; + clocks = <0x23 0x179>; + clock-names = "pclk"; + rockchip,grf = <0x3b>; + status = "okay"; + phandle = <0x12e>; + }; + + csi2-dphy0 { + compatible = "rockchip,rk3568-csi2-dphy"; + rockchip,hw = <0x12e>; + status = "okay"; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + reg = <0x00>; + #address-cells = <0x01>; + #size-cells = <0x00>; + + endpoint@1 { + reg = <0x01>; + remote-endpoint = <0x12f>; + data-lanes = <0x01 0x02 0x03 0x04>; + phandle = <0xf6>; + }; + + endpoint@2 { + reg = <0x02>; + remote-endpoint = <0x130>; + data-lanes = <0x01 0x02 0x03 0x04>; + phandle = <0xf5>; + }; + + endpoint@3 { + reg = <0x03>; + remote-endpoint = <0x131>; + data-lanes = <0x01 0x02>; + phandle = <0xf7>; + }; + + endpoint@4 { + reg = <0x04>; + remote-endpoint = <0x132>; + data-lanes = <0x01 0x02 0x03 0x04>; + phandle = <0xf8>; + }; + + endpoint@5 { + reg = <0x05>; + remote-endpoint = <0x133>; + data-lanes = <0x01 0x02 0x03 0x04>; + phandle = <0xf9>; + }; + }; + + port@1 { + reg = <0x01>; + #address-cells = <0x01>; + #size-cells = <0x00>; + + endpoint@0 { + reg = <0x00>; + remote-endpoint = <0x134>; + phandle = <0x8c>; + }; + }; + }; + }; + + csi2-dphy1 { + compatible = "rockchip,rk3568-csi2-dphy"; + rockchip,hw = <0x12e>; + status = "disabled"; + }; + + csi2-dphy2 { + compatible = "rockchip,rk3568-csi2-dphy"; + rockchip,hw = <0x12e>; + status = "disabled"; + }; + + usb2-phy@fe8a0000 { + compatible = "rockchip,rk3568-usb2phy"; + reg = <0x00 0xfe8a0000 0x00 0x10000>; + interrupts = <0x00 0x87 0x04>; + clocks = <0x3a 0x13>; + clock-names = "phyclk"; + #clock-cells = <0x00>; + assigned-clocks = <0x23 0x0b>; + assigned-clock-parents = <0x29>; + clock-output-names = "usb480m_phy"; + rockchip,usbgrf = <0x135>; + status = "okay"; + phandle = <0x29>; + + host-port { + #phy-cells = <0x00>; + status = "okay"; + phy-supply = <0x136>; + phandle = <0x2b>; + }; + + otg-port { + #phy-cells = <0x00>; + status = "okay"; + phandle = <0x28>; + }; + }; + + usb2-phy@fe8b0000 { + compatible = "rockchip,rk3568-usb2phy"; + reg = <0x00 0xfe8b0000 0x00 0x10000>; + interrupts = <0x00 0x88 0x04>; + clocks = <0x3a 0x15>; + clock-names = "phyclk"; + #clock-cells = <0x00>; + rockchip,usbgrf = <0x137>; + status = "okay"; + phandle = <0x2c>; + + host-port { + #phy-cells = <0x00>; + status = "okay"; + phy-supply = <0x136>; + phandle = <0x2e>; + }; + + otg-port { + #phy-cells = <0x00>; + status = "okay"; + phy-supply = <0x136>; + phandle = <0x2d>; + }; + }; + + phy@fe8c0000 { + compatible = "rockchip,rk3568-pcie3-phy"; + reg = <0x00 0xfe8c0000 0x00 0x20000>; + #phy-cells = <0x00>; + clocks = <0x3a 0x26 0x3a 0x27 0x23 0x177>; + clock-names = "refclk_m\0refclk_n\0pclk"; + resets = <0x23 0x1be>; + reset-names = "phy"; + rockchip,phy-grf = <0x138>; + status = "okay"; + phandle = <0xc0>; + }; + + pinctrl { + compatible = "rockchip,rk3568-pinctrl"; + rockchip,grf = <0x3b>; + rockchip,pmu = <0x3c>; + #address-cells = <0x02>; + #size-cells = <0x02>; + ranges; + + gpio0@fdd60000 { + compatible = "rockchip,gpio-bank"; + reg = <0x00 0xfdd60000 0x00 0x100>; + interrupts = <0x00 0x21 0x04>; + clocks = <0x3a 0x2e 0x3a 0x0c>; + gpio-controller; + #gpio-cells = <0x02>; + interrupt-controller; + #interrupt-cells = <0x02>; + phandle = <0x3f>; + }; + + gpio1@fe740000 { + compatible = "rockchip,gpio-bank"; + reg = <0x00 0xfe740000 0x00 0x100>; + interrupts = <0x00 0x22 0x04>; + clocks = <0x23 0x163 0x23 0x164>; + gpio-controller; + #gpio-cells = <0x02>; + interrupt-controller; + #interrupt-cells = <0x02>; + phandle = <0x159>; + }; + + gpio2@fe750000 { + compatible = "rockchip,gpio-bank"; + reg = <0x00 0xfe750000 0x00 0x100>; + interrupts = <0x00 0x23 0x04>; + clocks = <0x23 0x165 0x23 0x166>; + gpio-controller; + #gpio-cells = <0x02>; + interrupt-controller; + #interrupt-cells = <0x02>; + phandle = <0x91>; + }; + + gpio3@fe760000 { + compatible = "rockchip,gpio-bank"; + reg = <0x00 0xfe760000 0x00 0x100>; + interrupts = <0x00 0x24 0x04>; + clocks = <0x23 0x167 0x23 0x168>; + gpio-controller; + #gpio-cells = <0x02>; + interrupt-controller; + #interrupt-cells = <0x02>; + phandle = <0x4a>; + }; + + gpio4@fe770000 { + compatible = "rockchip,gpio-bank"; + reg = <0x00 0xfe770000 0x00 0x100>; + interrupts = <0x00 0x25 0x04>; + clocks = <0x23 0x169 0x23 0x16a>; + gpio-controller; + #gpio-cells = <0x02>; + interrupt-controller; + #interrupt-cells = <0x02>; + phandle = <0xf4>; + }; + + pcfg-pull-up { + bias-pull-up; + phandle = <0x13b>; + }; + + pcfg-pull-down { + bias-pull-down; + phandle = <0x142>; + }; + + pcfg-pull-none { + bias-disable; + phandle = <0x139>; + }; + + pcfg-pull-none-drv-level-1 { + bias-disable; + drive-strength = <0x01>; + phandle = <0x13d>; + }; + + pcfg-pull-none-drv-level-2 { + bias-disable; + drive-strength = <0x02>; + phandle = <0x13c>; + }; + + pcfg-pull-none-drv-level-3 { + bias-disable; + drive-strength = <0x03>; + phandle = <0x141>; + }; + + pcfg-pull-up-drv-level-1 { + bias-pull-up; + drive-strength = <0x01>; + phandle = <0x140>; + }; + + pcfg-pull-up-drv-level-2 { + bias-pull-up; + drive-strength = <0x02>; + phandle = <0x13a>; + }; + + pcfg-pull-none-smt { + bias-disable; + input-schmitt-enable; + phandle = <0x13e>; + }; + + pcfg-output-low-pull-down { + output-low; + bias-pull-down; + phandle = <0x13f>; + }; + + acodec { + + acodec-pins { + rockchip,pins = <0x01 0x09 0x05 0x139 0x01 0x01 0x05 0x139 0x01 0x00 0x05 0x139 0x01 0x07 0x05 0x139 0x01 0x08 0x05 0x139 0x01 0x03 0x05 0x139 0x01 0x05 0x05 0x139>; + phandle = <0xea>; + }; + }; + + cam { + + vcc-cam { + rockchip,pins = <0x00 0x11 0x00 0x139>; + phandle = <0x158>; + }; + }; + + can1 { + + can1m1-pins { + rockchip,pins = <0x04 0x12 0x03 0x139 0x04 0x13 0x03 0x139>; + phandle = <0xec>; + }; + }; + + can2 { + + can2m0-pins { + rockchip,pins = <0x04 0x0c 0x03 0x139 0x04 0x0d 0x03 0x139>; + phandle = <0xed>; + }; + }; + + cif { + + cif-clk { + rockchip,pins = <0x04 0x10 0x01 0x139>; + phandle = <0xf3>; + }; + }; + + clk32k { + + clk32k-out0 { + rockchip,pins = <0x00 0x08 0x02 0x139>; + phandle = <0x22>; + }; + }; + + ebc { + + ebc-pins { + rockchip,pins = <0x04 0x10 0x02 0x139 0x04 0x0b 0x02 0x139 0x04 0x0c 0x02 0x139 0x04 0x06 0x02 0x139 0x04 0x11 0x02 0x139 0x03 0x16 0x02 0x139 0x03 0x17 0x02 0x139 0x03 0x18 0x02 0x139 0x03 0x19 0x02 0x139 0x03 0x1a 0x02 0x139 0x03 0x1b 0x02 0x139 0x03 0x1c 0x02 0x139 0x03 0x1d 0x02 0x139 0x03 0x1e 0x02 0x139 0x03 0x1f 0x02 0x139 0x04 0x00 0x02 0x139 0x04 0x01 0x02 0x139 0x04 0x02 0x02 0x139 0x04 0x03 0x02 0x139 0x04 0x04 0x02 0x139 0x04 0x05 0x02 0x139 0x04 0x0e 0x02 0x139 0x04 0x0f 0x02 0x139>; + phandle = <0x7c>; + }; + }; + + fspi { + + fspi-pins { + rockchip,pins = <0x01 0x18 0x01 0x139 0x01 0x1b 0x01 0x139 0x01 0x19 0x01 0x139 0x01 0x1a 0x01 0x139 0x01 0x17 0x02 0x139 0x01 0x1c 0x01 0x139>; + phandle = <0xd4>; + }; + }; + + gmac0 { + + gmac0-miim { + rockchip,pins = <0x02 0x13 0x02 0x139 0x02 0x14 0x02 0x139>; + phandle = <0xc8>; + }; + + gmac0-clkinout { + rockchip,pins = <0x02 0x12 0x02 0x139>; + phandle = <0xcd>; + }; + + gmac0-rx-bus2 { + rockchip,pins = <0x02 0x0e 0x01 0x139 0x02 0x0f 0x02 0x139 0x02 0x10 0x02 0x139>; + phandle = <0xca>; + }; + + gmac0-tx-bus2 { + rockchip,pins = <0x02 0x0b 0x01 0x13c 0x02 0x0c 0x01 0x13c 0x02 0x0d 0x01 0x139>; + phandle = <0xc9>; + }; + + gmac0-rgmii-clk { + rockchip,pins = <0x02 0x05 0x02 0x139 0x02 0x08 0x02 0x13d>; + phandle = <0xcb>; + }; + + gmac0-rgmii-bus { + rockchip,pins = <0x02 0x03 0x02 0x139 0x02 0x04 0x02 0x139 0x02 0x06 0x02 0x13c 0x02 0x07 0x02 0x13c>; + phandle = <0xcc>; + }; + }; + + gmac1 { + + gmac1m1-miim { + rockchip,pins = <0x04 0x0e 0x03 0x139 0x04 0x0f 0x03 0x139>; + phandle = <0x93>; + }; + + gmac1m1-clkinout { + rockchip,pins = <0x04 0x11 0x03 0x139>; + phandle = <0x98>; + }; + + gmac1m1-rx-bus2 { + rockchip,pins = <0x04 0x07 0x03 0x139 0x04 0x08 0x03 0x139 0x04 0x09 0x03 0x139>; + phandle = <0x95>; + }; + + gmac1m1-tx-bus2 { + rockchip,pins = <0x04 0x04 0x03 0x13c 0x04 0x05 0x03 0x13c 0x04 0x06 0x03 0x139>; + phandle = <0x94>; + }; + + gmac1m1-rgmii-clk { + rockchip,pins = <0x04 0x03 0x03 0x139 0x04 0x00 0x03 0x13d>; + phandle = <0x96>; + }; + + gmac1m1-rgmii-bus { + rockchip,pins = <0x04 0x01 0x03 0x139 0x04 0x02 0x03 0x139 0x03 0x1e 0x03 0x13c 0x03 0x1f 0x03 0x13c>; + phandle = <0x97>; + }; + }; + + hdmitx { + + hdmitxm0-cec { + rockchip,pins = <0x04 0x19 0x01 0x139>; + phandle = <0xac>; + }; + + hdmitx-scl { + rockchip,pins = <0x04 0x17 0x01 0x139>; + phandle = <0xaa>; + }; + + hdmitx-sda { + rockchip,pins = <0x04 0x18 0x01 0x139>; + phandle = <0xab>; + }; + }; + + i2c0 { + + i2c0-xfer { + rockchip,pins = <0x00 0x09 0x01 0x13e 0x00 0x0a 0x01 0x13e>; + phandle = <0x3d>; + }; + }; + + i2c1 { + + i2c1-xfer { + rockchip,pins = <0x00 0x0b 0x01 0x13e 0x00 0x0c 0x01 0x13e>; + phandle = <0xee>; + }; + }; + + i2c2 { + + i2c2m0-xfer { + rockchip,pins = <0x00 0x0d 0x01 0x13e 0x00 0x0e 0x01 0x13e>; + phandle = <0xf0>; + }; + }; + + i2c3 { + + i2c3m0-xfer { + rockchip,pins = <0x01 0x01 0x01 0x13e 0x01 0x00 0x01 0x13e>; + phandle = <0xf1>; + }; + }; + + i2c4 { + + i2c4m0-xfer { + rockchip,pins = <0x04 0x0b 0x01 0x13e 0x04 0x0a 0x01 0x13e>; + phandle = <0xf2>; + }; + }; + + i2c5 { + + i2c5m0-xfer { + rockchip,pins = <0x03 0x0b 0x04 0x13e 0x03 0x0c 0x04 0x13e>; + phandle = <0xfa>; + }; + }; + + i2s1 { + + i2s1m0-lrcktx { + rockchip,pins = <0x01 0x05 0x01 0x13e>; + phandle = <0xd7>; + }; + + i2s1m0-mclk { + rockchip,pins = <0x01 0x02 0x01 0x13e>; + phandle = <0x47>; + }; + + i2s1m0-sclktx { + rockchip,pins = <0x01 0x03 0x01 0x13e>; + phandle = <0xd6>; + }; + + i2s1m0-sdi0 { + rockchip,pins = <0x01 0x0b 0x01 0x139>; + phandle = <0xd8>; + }; + + i2s1m0-sdo0 { + rockchip,pins = <0x01 0x07 0x01 0x139>; + phandle = <0xd9>; + }; + }; + + i2s2 { + + i2s2m0-lrcktx { + rockchip,pins = <0x02 0x13 0x01 0x13e>; + phandle = <0xdb>; + }; + + i2s2m0-sclktx { + rockchip,pins = <0x02 0x12 0x01 0x13e>; + phandle = <0xda>; + }; + + i2s2m0-sdi { + rockchip,pins = <0x02 0x15 0x01 0x139>; + phandle = <0xdc>; + }; + + i2s2m0-sdo { + rockchip,pins = <0x02 0x14 0x01 0x139>; + phandle = <0xdd>; + }; + }; + + i2s3 { + + i2s3m0-lrck { + rockchip,pins = <0x03 0x04 0x04 0x13e>; + phandle = <0xdf>; + }; + + i2s3m0-sclk { + rockchip,pins = <0x03 0x03 0x04 0x13e>; + phandle = <0xde>; + }; + + i2s3m0-sdi { + rockchip,pins = <0x03 0x06 0x04 0x139>; + phandle = <0xe0>; + }; + + i2s3m0-sdo { + rockchip,pins = <0x03 0x05 0x04 0x139>; + phandle = <0xe1>; + }; + }; + + lcdc { + + lcdc-ctl { + rockchip,pins = <0x03 0x00 0x01 0x139 0x02 0x18 0x01 0x139 0x02 0x19 0x01 0x139 0x02 0x1a 0x01 0x139 0x02 0x1b 0x01 0x139 0x02 0x1c 0x01 0x139 0x02 0x1d 0x01 0x139 0x02 0x1e 0x01 0x139 0x02 0x1f 0x01 0x139 0x03 0x01 0x01 0x139 0x03 0x02 0x01 0x139 0x03 0x03 0x01 0x139 0x03 0x04 0x01 0x139 0x03 0x05 0x01 0x139 0x03 0x06 0x01 0x139 0x03 0x07 0x01 0x139 0x03 0x08 0x01 0x139 0x03 0x09 0x01 0x139 0x03 0x0a 0x01 0x139 0x03 0x0b 0x01 0x139 0x03 0x0c 0x01 0x139 0x03 0x0d 0x01 0x139 0x03 0x0e 0x01 0x139 0x03 0x0f 0x01 0x139 0x03 0x10 0x01 0x139 0x03 0x13 0x01 0x139 0x03 0x11 0x01 0x139 0x03 0x12 0x01 0x139>; + phandle = <0x39>; + }; + }; + + pdm { + + pdmm0-clk { + rockchip,pins = <0x01 0x06 0x03 0x139>; + phandle = <0xe2>; + }; + + pdmm0-clk1 { + rockchip,pins = <0x01 0x04 0x03 0x139>; + phandle = <0xe3>; + }; + + pdmm0-sdi0 { + rockchip,pins = <0x01 0x0b 0x02 0x139>; + phandle = <0xe4>; + }; + + pdmm0-sdi1 { + rockchip,pins = <0x01 0x0a 0x03 0x139>; + phandle = <0xe5>; + }; + + pdmm0-sdi2 { + rockchip,pins = <0x01 0x09 0x03 0x139>; + phandle = <0xe6>; + }; + + pdmm0-sdi3 { + rockchip,pins = <0x01 0x08 0x03 0x139>; + phandle = <0xe7>; + }; + }; + + pmic { + + pmic_int { + rockchip,pins = <0x00 0x03 0x00 0x13b>; + phandle = <0x40>; + }; + + soc_slppin_gpio { + rockchip,pins = <0x00 0x02 0x00 0x13f>; + phandle = <0x43>; + }; + + soc_slppin_slp { + rockchip,pins = <0x00 0x02 0x01 0x13b>; + phandle = <0x41>; + }; + + soc_slppin_rst { + rockchip,pins = <0x00 0x02 0x02 0x139>; + }; + + spk_ctl_gpio { + rockchip,pins = <0x03 0x15 0x00 0x13b>; + phandle = <0x48>; + }; + }; + + pwm0 { + + pwm0m0-pins { + rockchip,pins = <0x00 0x0f 0x01 0x139>; + phandle = <0x50>; + }; + }; + + pwm1 { + + pwm1m0-pins { + rockchip,pins = <0x00 0x10 0x01 0x139>; + phandle = <0x51>; + }; + }; + + pwm2 { + + pwm2m0-pins { + rockchip,pins = <0x00 0x11 0x01 0x139>; + phandle = <0x52>; + }; + }; + + pwm3 { + + pwm3-pins { + rockchip,pins = <0x00 0x12 0x01 0x139>; + phandle = <0x53>; + }; + }; + + pwm4 { + + pwm4-pins { + rockchip,pins = <0x00 0x13 0x01 0x139>; + phandle = <0x115>; + }; + }; + + pwm5 { + + pwm5-pins { + rockchip,pins = <0x00 0x14 0x01 0x139>; + phandle = <0x116>; + }; + }; + + pwm6 { + + pwm6-pins { + rockchip,pins = <0x00 0x15 0x01 0x139>; + phandle = <0x117>; + }; + }; + + pwm7 { + + pwm7-pins { + rockchip,pins = <0x00 0x16 0x01 0x139>; + phandle = <0x118>; + }; + }; + + pwm8 { + + pwm8m0-pins { + rockchip,pins = <0x03 0x09 0x05 0x139>; + phandle = <0x119>; + }; + }; + + pwm9 { + + pwm9m0-pins { + rockchip,pins = <0x03 0x0a 0x05 0x139>; + phandle = <0x11a>; + }; + }; + + pwm10 { + + pwm10m0-pins { + rockchip,pins = <0x03 0x0d 0x05 0x139>; + phandle = <0x11b>; + }; + }; + + pwm11 { + + pwm11m0-pins { + rockchip,pins = <0x03 0x0e 0x05 0x139>; + phandle = <0x11c>; + }; + }; + + pwm12 { + + pwm12m0-pins { + rockchip,pins = <0x03 0x0f 0x02 0x139>; + phandle = <0x11d>; + }; + }; + + pwm13 { + + pwm13m0-pins { + rockchip,pins = <0x03 0x10 0x02 0x139>; + phandle = <0x11e>; + }; + }; + + pwm14 { + + pwm14m0-pins { + rockchip,pins = <0x03 0x14 0x01 0x139>; + phandle = <0x11f>; + }; + }; + + pwm15 { + + pwm15m0-pins { + rockchip,pins = <0x03 0x15 0x01 0x139>; + phandle = <0x120>; + }; + }; + + scr { + + scr-pins { + rockchip,pins = <0x01 0x02 0x03 0x139 0x01 0x07 0x03 0x13b 0x01 0x03 0x03 0x13b 0x01 0x05 0x03 0x139>; + phandle = <0xeb>; + }; + }; + + sdmmc0 { + + sdmmc0-bus4 { + rockchip,pins = <0x01 0x1d 0x01 0x13a 0x01 0x1e 0x01 0x13a 0x01 0x1f 0x01 0x13a 0x02 0x00 0x01 0x13a>; + phandle = <0xd0>; + }; + + sdmmc0-clk { + rockchip,pins = <0x02 0x02 0x01 0x13a>; + phandle = <0xd1>; + }; + + sdmmc0-cmd { + rockchip,pins = <0x02 0x01 0x01 0x13a>; + phandle = <0xd2>; + }; + + sdmmc0-det { + rockchip,pins = <0x00 0x04 0x01 0x13b>; + phandle = <0xd3>; + }; + }; + + sdmmc2 { + + sdmmc2m0-bus4 { + rockchip,pins = <0x03 0x16 0x03 0x13a 0x03 0x17 0x03 0x13a 0x03 0x18 0x03 0x13a 0x03 0x19 0x03 0x13a>; + phandle = <0xb0>; + }; + + sdmmc2m0-clk { + rockchip,pins = <0x03 0x1b 0x03 0x13a>; + phandle = <0xb2>; + }; + + sdmmc2m0-cmd { + rockchip,pins = <0x03 0x1a 0x03 0x13a>; + phandle = <0xb1>; + }; + }; + + spdif { + + spdifm1-tx { + rockchip,pins = <0x03 0x15 0x02 0x139>; + phandle = <0xe9>; + }; + }; + + spi0 { + + spi0m0-pins { + rockchip,pins = <0x00 0x0d 0x02 0x139 0x00 0x15 0x02 0x139 0x00 0x0e 0x02 0x139>; + phandle = <0xfe>; + }; + + spi0m0-cs0 { + rockchip,pins = <0x00 0x16 0x02 0x139>; + phandle = <0xfc>; + }; + + spi0m0-cs1 { + rockchip,pins = <0x00 0x14 0x02 0x139>; + phandle = <0xfd>; + }; + }; + + spi1 { + + spi1m1-pins { + rockchip,pins = <0x03 0x13 0x03 0x139 0x03 0x12 0x03 0x139 0x03 0x11 0x03 0x139>; + phandle = <0x100>; + }; + }; + + spi2 { + + spi2m0-pins { + rockchip,pins = <0x02 0x11 0x04 0x139 0x02 0x12 0x04 0x139 0x02 0x13 0x04 0x139>; + phandle = <0x105>; + }; + + spi2m0-cs0 { + rockchip,pins = <0x02 0x14 0x04 0x139>; + phandle = <0x103>; + }; + + spi2m0-cs1 { + rockchip,pins = <0x02 0x15 0x04 0x139>; + phandle = <0x104>; + }; + }; + + spi3 { + + spi3m0-pins { + rockchip,pins = <0x04 0x0b 0x04 0x139 0x04 0x08 0x04 0x139 0x04 0x0a 0x04 0x139>; + phandle = <0x109>; + }; + + spi3m0-cs0 { + rockchip,pins = <0x04 0x06 0x04 0x139>; + phandle = <0x107>; + }; + + spi3m0-cs1 { + rockchip,pins = <0x04 0x07 0x04 0x139>; + phandle = <0x108>; + }; + }; + + tsadc { + + tsadc-shutorg { + rockchip,pins = <0x00 0x01 0x02 0x139>; + phandle = <0x124>; + }; + }; + + uart0 { + + uart0-xfer { + rockchip,pins = <0x00 0x10 0x03 0x13b 0x00 0x11 0x03 0x13b>; + phandle = <0x4f>; + }; + }; + + uart1 { + + uart1m0-xfer { + rockchip,pins = <0x02 0x0b 0x02 0x13b 0x02 0x0c 0x02 0x13b>; + phandle = <0x10b>; + }; + }; + + uart2 { + + uart2m0-xfer { + rockchip,pins = <0x00 0x18 0x01 0x13b 0x00 0x19 0x01 0x13b>; + phandle = <0x10c>; + }; + }; + + uart3 { + + uart3m1-xfer { + rockchip,pins = <0x03 0x10 0x04 0x13b 0x03 0x0f 0x04 0x13b>; + phandle = <0x10d>; + }; + }; + + uart4 { + + uart4m1-xfer { + rockchip,pins = <0x03 0x09 0x04 0x13b 0x03 0x0a 0x04 0x13b>; + phandle = <0x10e>; + }; + }; + + uart5 { + + uart5m0-xfer { + rockchip,pins = <0x02 0x01 0x03 0x13b 0x02 0x02 0x03 0x13b>; + phandle = <0x10f>; + }; + }; + + uart6 { + + uart6m0-xfer { + rockchip,pins = <0x02 0x03 0x03 0x13b 0x02 0x04 0x03 0x13b>; + phandle = <0x110>; + }; + }; + + uart7 { + + uart7m1-xfer { + rockchip,pins = <0x03 0x15 0x04 0x13b 0x03 0x14 0x04 0x13b>; + phandle = <0x111>; + }; + }; + + uart8 { + + uart8m0-xfer { + rockchip,pins = <0x02 0x16 0x02 0x13b 0x02 0x15 0x03 0x13b>; + phandle = <0x112>; + }; + + uart8m0-ctsn { + rockchip,pins = <0x02 0x0a 0x03 0x139>; + phandle = <0x113>; + }; + + uart8m0-rtsn { + rockchip,pins = <0x02 0x09 0x03 0x139>; + phandle = <0x155>; + }; + }; + + uart9 { + + uart9m1-xfer { + rockchip,pins = <0x04 0x16 0x04 0x13b 0x04 0x15 0x04 0x13b>; + phandle = <0x114>; + }; + }; + + spi0-hs { + + spi0m0-pins { + rockchip,pins = <0x00 0x0d 0x02 0x140 0x00 0x15 0x02 0x140 0x00 0x0e 0x02 0x140>; + phandle = <0xff>; + }; + }; + + spi1-hs { + + spi1m1-pins { + rockchip,pins = <0x03 0x13 0x03 0x140 0x03 0x12 0x03 0x140 0x03 0x11 0x03 0x140>; + phandle = <0x101>; + }; + }; + + spi2-hs { + + spi2m0-pins { + rockchip,pins = <0x02 0x11 0x04 0x140 0x02 0x12 0x04 0x140 0x02 0x13 0x04 0x140>; + phandle = <0x106>; + }; + }; + + spi3-hs { + + spi3m0-pins { + rockchip,pins = <0x04 0x0b 0x04 0x140 0x04 0x08 0x04 0x140 0x04 0x0a 0x04 0x140>; + phandle = <0x10a>; + }; + }; + + gpio-func { + + tsadc-gpio-func { + rockchip,pins = <0x00 0x01 0x00 0x139>; + phandle = <0x123>; + }; + }; + + usb { + + vcc5v0-host-en { + rockchip,pins = <0x00 0x06 0x00 0x139>; + phandle = <0x150>; + }; + + vcc5v0-otg-en { + rockchip,pins = <0x00 0x05 0x00 0x139>; + phandle = <0x151>; + }; + + vcc-hub-reset-en { + rockchip,pins = <0x01 0x04 0x00 0x139>; + phandle = <0x15a>; + }; + }; + + headphone { + + hp-det { + rockchip,pins = <0x03 0x12 0x00 0x142>; + phandle = <0x148>; + }; + }; + + sdio-pwrseq { + + wifi-enable-h { + rockchip,pins = <0x03 0x1d 0x00 0x139>; + phandle = <0x153>; + }; + }; + + wireless-wlan { + + wifi-host-wake-irq { + rockchip,pins = <0x03 0x1c 0x00 0x142>; + phandle = <0x154>; + }; + }; + + wireless-bluetooth { + + uart8-gpios { + rockchip,pins = <0x02 0x09 0x00 0x139>; + phandle = <0x156>; + }; + }; + + touch { + + touch-gpio { + rockchip,pins = <0x00 0x0d 0x00 0x13b 0x00 0x0e 0x00 0x139>; + phandle = <0xef>; + }; + }; + + mxc6655xa { + + mxc6655xa_irq_gpio { + rockchip,pins = <0x03 0x11 0x00 0x139>; + phandle = <0xfb>; + }; + }; + + pcie { + + pcie-pi6c-oe-en { + rockchip,pins = <0x03 0x07 0x00 0x139>; + phandle = <0x15b>; + }; + }; + + leds { + + leds-gpio { + rockchip,pins = <0x01 0x0a 0x00 0x139 0x01 0x09 0x00 0x139 0x01 0x08 0x00 0x139 0x02 0x11 0x00 0x139>; + phandle = <0x15d>; + }; + }; + + 4g { + + vcc-4g-power-en { + rockchip,pins = <0x03 0x03 0x00 0x139>; + phandle = <0x15c>; + }; + }; + + usb-typec { + + usbc0-int { + rockchip,pins = <0x00 0x11 0x00 0x13b>; + phandle = <0x4b>; + }; + + vcc5v0-typec0-en { + rockchip,pins = <0x00 0x05 0x00 0x139>; + }; + }; + }; + + audiopwmout-diff { + status = "disabled"; + compatible = "simple-audio-card"; + simple-audio-card,format = "i2s"; + simple-audio-card,name = "rockchip,audiopwmout-diff"; + simple-audio-card,mclk-fs = <0x100>; + simple-audio-card,bitclock-master = <0x143>; + simple-audio-card,frame-master = <0x143>; + + simple-audio-card,cpu { + sound-dai = <0x144>; + }; + + simple-audio-card,codec { + sound-dai = <0x145>; + phandle = <0x143>; + }; + }; + + dc-12v { + compatible = "regulator-fixed"; + regulator-name = "dc_12v"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <0xb71b00>; + regulator-max-microvolt = <0xb71b00>; + phandle = <0x14f>; + }; + + hdmi-sound { + compatible = "simple-audio-card"; + simple-audio-card,format = "i2s"; + simple-audio-card,mclk-fs = <0x80>; + simple-audio-card,name = "rockchip,hdmi"; + status = "okay"; + + simple-audio-card,cpu { + sound-dai = <0x146>; + }; + + simple-audio-card,codec { + sound-dai = <0x147>; + }; + }; + + rk-headset { + status = "disabled"; + compatible = "rockchip_headset"; + headset_gpio = <0x4a 0x12 0x01>; + pinctrl-names = "default"; + pinctrl-0 = <0x148>; + }; + + dummy-codec { + status = "disabled"; + compatible = "rockchip,dummy-codec"; + #sound-dai-cells = <0x00>; + phandle = <0x14a>; + }; + + pdm-mic-array { + status = "disabled"; + compatible = "simple-audio-card"; + simple-audio-card,name = "rockchip,pdm-mic-array"; + + simple-audio-card,cpu { + sound-dai = <0x149>; + }; + + simple-audio-card,codec { + sound-dai = <0x14a>; + }; + }; + + rk809-sound { + status = "okay"; + compatible = "rockchip,multicodecs-card"; + rockchip,card-name = "rockchip-rk809"; + rockchip,format = "i2s"; + rockchip,mclk-fs = <0x100>; + rockchip,cpu = <0xe8>; + rockchip,codec = <0x14b>; + }; + + spdif-sound { + status = "okay"; + compatible = "simple-audio-card"; + simple-audio-card,name = "ROCKCHIP,SPDIF"; + + simple-audio-card,cpu { + sound-dai = <0x14c>; + }; + + simple-audio-card,codec { + sound-dai = <0x14d>; + }; + }; + + spdif-out { + status = "okay"; + compatible = "linux,spdif-dit"; + #sound-dai-cells = <0x00>; + phandle = <0x14d>; + }; + + vad-sound { + status = "disabled"; + compatible = "rockchip,multicodecs-card"; + rockchip,card-name = "rockchip,rk3568-vad"; + rockchip,cpu = <0xe8>; + rockchip,codec = <0x14b 0x14e>; + }; + + vcc3v3-sys { + compatible = "regulator-fixed"; + regulator-name = "vcc3v3_sys"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <0x325aa0>; + regulator-max-microvolt = <0x325aa0>; + vin-supply = <0x14f>; + phandle = <0x46>; + }; + + vcc5v0-sys { + compatible = "regulator-fixed"; + regulator-name = "vcc5v0_sys"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <0x4c4b40>; + regulator-max-microvolt = <0x4c4b40>; + vin-supply = <0x14f>; + phandle = <0x3e>; + }; + + vcc5v0-host-regulator { + compatible = "regulator-fixed"; + enable-active-high; + gpio = <0x3f 0x06 0x00>; + pinctrl-names = "default"; + pinctrl-0 = <0x150>; + regulator-name = "vcc5v0_host"; + regulator-always-on; + regulator-boot-on; + phandle = <0x136>; + }; + + vcc5v0-otg-regulator { + compatible = "regulator-fixed"; + enable-active-high; + gpio = <0x3f 0x05 0x00>; + pinctrl-names = "default"; + pinctrl-0 = <0x151>; + regulator-name = "vcc5v0_otg"; + phandle = <0x4c>; + }; + + vcc3v3-lcd0-n { + compatible = "regulator-fixed"; + regulator-name = "vcc3v3_lcd0_n"; + regulator-boot-on; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + vcc3v3-lcd1-n { + compatible = "regulator-fixed"; + regulator-name = "vcc3v3_lcd1_n"; + regulator-boot-on; + status = "disabled"; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + test-power { + status = "okay"; + }; + + chosen { + // linux,initrd-end = <0x00 0xaacf15d>; + // linux,initrd-start = <0x00 0xa200000>; + bootargs = "storagemedia=emmc androidboot.storagemedia=emmc androidboot.mode=normal androidboot.verifiedbootstate=orange rw rootwait earlycon=uart8250,mmio32,0xfe660000 console=ttyFIQ0 root=PARTLABEL=rootfs rootfstype=ext4 overlayroot=device:dev=PARTLABEL=userdata,fstype=ext4,mkfs=1 coherent_pool=1m systemd.gpt_auto=0 cgroup_enable=memory swapaccount=1 swiotlb=0x10000 net.ifnames=0 comm-05/20/2025 androidboot.fwver=ddr-v1.21-2d653b3476,spl-v1.14,bl31-v1.44,bl32-v2.12,uboot--boot"; + }; + + fiq-debugger { + compatible = "rockchip,fiq-debugger"; + rockchip,serial-id = <0x02>; + rockchip,wake-irq = <0x00>; + rockchip,irq-mode-enable = <0x01>; + rockchip,baudrate = <0x16e360>; + interrupts = <0x00 0xfc 0x08>; + pinctrl-names = "default"; + pinctrl-0 = <0x10c>; + status = "okay"; + }; + + debug@fd904000 { + compatible = "rockchip,debug"; + reg = <0x00 0xfd904000 0x00 0x1000 0x00 0xfd905000 0x00 0x1000 0x00 0xfd906000 0x00 0x1000 0x00 0xfd907000 0x00 0x1000>; + }; + + cspmu@fd90c000 { + compatible = "rockchip,cspmu"; + reg = <0x00 0xfd90c000 0x00 0x1000 0x00 0xfd90d000 0x00 0x1000 0x00 0xfd90e000 0x00 0x1000 0x00 0xfd90f000 0x00 0x1000>; + }; + + adc-keys { + compatible = "adc-keys"; + io-channels = <0x49 0x00>; + io-channel-names = "buttons"; + keyup-threshold-microvolt = <0x1b7740>; + poll-interval = <0x64>; + + recovery-key { + label = "F12"; + linux,code = <0x58>; + press-threshold-microvolt = <0x6d6>; + }; + + vol-down-key { + label = "volume down"; + linux,code = <0x72>; + press-threshold-microvolt = <0x48a1c>; + }; + + menu-key { + label = "menu"; + linux,code = <0x8b>; + press-threshold-microvolt = <0xef420>; + }; + + back-key { + label = "back"; + linux,code = <0x9e>; + press-threshold-microvolt = <0x13eb9c>; + }; + }; + + vcc2v5-ddr { + compatible = "regulator-fixed"; + regulator-name = "vcc2v5-sys"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <0x2625a0>; + regulator-max-microvolt = <0x2625a0>; + vin-supply = <0x46>; + }; + + pcie30-avdd0v9 { + compatible = "regulator-fixed"; + regulator-name = "pcie30_avdd0v9"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <0xdbba0>; + regulator-max-microvolt = <0xdbba0>; + vin-supply = <0x46>; + }; + + pcie30-avdd1v8 { + compatible = "regulator-fixed"; + regulator-name = "pcie30_avdd1v8"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <0x1b7740>; + regulator-max-microvolt = <0x1b7740>; + vin-supply = <0x46>; + }; + + gpio-regulator { + compatible = "regulator-gpio"; + regulator-name = "pcie30_3v3"; + regulator-min-microvolt = <0x186a0>; + regulator-max-microvolt = <0x325aa0>; + gpios = <0x3f 0x1c 0x00>; + gpios-states = <0x01>; + states = <0x186a0 0x00 0x325aa0 0x01>; + phandle = <0xc2>; + }; + + vcc3v3-bu { + compatible = "regulator-fixed"; + regulator-name = "vcc3v3_bu"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <0x325aa0>; + regulator-max-microvolt = <0x325aa0>; + vin-supply = <0x3e>; + }; + + sdio-pwrseq { + compatible = "mmc-pwrseq-simple"; + clocks = <0x152 0x01>; + clock-names = "ext_clock"; + pinctrl-names = "default"; + pinctrl-0 = <0x153>; + post-power-on-delay-ms = <0x64>; + reset-gpios = <0x4a 0x1d 0x01>; + status = "okay"; + phandle = <0xb3>; + }; + + wireless-wlan { + compatible = "wlan-platdata"; + rockchip,grf = <0x3b>; + wifi_chip_type = "ap6256"; + pinctrl-names = "default"; + pinctrl-0 = <0x154>; + WIFI,host_wake_irq = <0x4a 0x1c 0x00>; + status = "okay"; + }; + + wireless-bluetooth { + compatible = "bluetooth-platdata"; + clocks = <0x152 0x01>; + clock-names = "ext_clock"; + uart_rts_gpios = <0x91 0x09 0x01>; + pinctrl-names = "default\0rts_gpio"; + pinctrl-0 = <0x155>; + pinctrl-1 = <0x156>; + BT,reset_gpio = <0x4a 0x00 0x00>; + BT,wake_gpio = <0x4a 0x02 0x00>; + BT,wake_host_irq = <0x4a 0x01 0x00>; + status = "okay"; + }; + + flash-led { + compatible = "led,rgb13h"; + label = "pwm-flash-led"; + led-max-microamp = <0x4e20>; + flash-max-microamp = <0x4e20>; + flash-max-timeout-us = <0xf4240>; + pwms = <0x157 0x00 0x61a8 0x00>; + rockchip,camera-module-index = <0x01>; + rockchip,camera-module-facing = "front"; + status = "disabled"; + }; + + vcc-camera-regulator { + compatible = "regulator-fixed"; + gpio = <0x102 0x03 0x00>; + pinctrl-names = "default"; + pinctrl-0 = <0x158>; + regulator-name = "vcc_camera"; + enable-active-high; + status = "disabled"; + }; + + vcc-hub-reset-regulator { + compatible = "regulator-fixed"; + enable-active-high; + gpio = <0x159 0x04 0x00>; + pinctrl-names = "default"; + pinctrl-0 = <0x15a>; + regulator-name = "vcc_hub_reset_en"; + regulator-always-on; + }; + + pcie-pi6c-oe-regulator { + compatible = "regulator-fixed"; + gpio = <0x4a 0x07 0x01>; + pinctrl-names = "default"; + pinctrl-0 = <0x15b>; + regulator-name = "pcie_pi6c_oe_en"; + regulator-always-on; + }; + + vcc-4g-power-regulator { + compatible = "regulator-fixed"; + enable-active-high; + gpio = <0x4a 0x03 0x00>; + pinctrl-names = "default"; + pinctrl-0 = <0x15c>; + regulator-name = "vcc_4g_power_en"; + regulator-always-on; + }; + + leds { + status = "okay"; + compatible = "gpio-leds"; + pinctrl-names = "default"; + pinctrl-0 = <0x15d>; + + power { + label = "firefly:blue:power"; + linux,default-trigger = "ir-power-click"; + default-state = "on"; + gpios = <0x159 0x0a 0x00>; + }; + + user { + label = "firefly:yellow:user"; + linux,default-trigger = "ir-user-click"; + default-state = "off"; + gpios = <0x159 0x09 0x00>; + }; + + diy1 { + label = "firefly:green:diy"; + linux,default-trigger = "ir-user-click"; + default-state = "off"; + gpios = <0x159 0x08 0x00>; + }; + + diy2 { + label = "firefly:yellow:diy"; + linux,default-trigger = "ir-user-click"; + default-state = "off"; + gpios = <0x91 0x11 0x00>; + }; + }; +}; \ No newline at end of file diff --git a/configs/vms_bkp/linux-aarch64-rk3568_smp2.toml b/configs/vms_bkp/linux-aarch64-rk3568_smp2.toml new file mode 100644 index 00000000..411b7fdc --- /dev/null +++ b/configs/vms_bkp/linux-aarch64-rk3568_smp2.toml @@ -0,0 +1,86 @@ +# Vm base info configs +# +[base] +# Guest vm id. +id = 1 +# Guest vm name. +name = "linux" +# Virtualization type. +vm_type = 1 +# The number of virtual CPUs. +cpu_num = 2 +# The physical CPU ids. +phys_cpu_ids = [0x200, 0x300] +# Guest vm physical cpu sets. +phys_cpu_sets = [4, 8] + +# +# Vm kernel configs +# +[kernel] +# The entry point of the kernel image. +entry_point = 0x8008_0000 +# The location of image: "memory" | "fs". +# Load from memory. +image_location = "memory" +# The load address of the kernel image. +kernel_load_addr = 0x8008_0000 +## The file path of the kernel image. +kernel_path = "/code/axvisor/rk3568-linux/Image" +## The file path of the device tree blob (DTB). +dtb_load_addr = 0x8000_0000 +dtb_path = "/code/axvisor/configs/vms/linux-aarch64-rk3568_smp2.dtb" +# Memory regions with format (`base_paddr`, `size`, `flags`, `map_type`). +# For `map_type`, 0 means `MAP_ALLOC`, 1 means `MAP_IDENTICAL`. +memory_regions = [ + [0x8000_0000, 0x6000_0000, 0x7, 1], # System RAM 1G MAP_IDENTICAL +] +# +# Device specifications +# +[devices] +# The interrupt mode. +interrupt_mode = "passthrough" +# Emu_devices. +# Name Base-Ipa Ipa_len Alloc-Irq Emu-Type EmuConfig. +emu_devices = [] + +# Pass-through devices. +# Name Base-Ipa Base-Pa Length Alloc-Irq. +passthrough_devices = [ + # [ + # "peripherals 1", + # 0xf000_0000, + # 0xf000_0000, + # 0xe66_0000, + # 0x1, + # ], + # [ + # "peripherals 2", + # 0xfe67_0000, + # 0xfe67_0000, + # 0x99_0000, + # 0x1, + # ], + [ + "all peripherals", + 0xf0000000, + 0xf0000000, + 0xf000000, + 0x1, + ], + [ + "PCIe related", + 0x300000000, + 0x300000000, + 0xd0000000, + 0x1, + ], + [ + "ramoops, scmi-shmem, etc.", + 0x100000, + 0x100000, + 0x200000, + 0x1, + ], +] diff --git a/configs/vms/linux-qemu-aarch64-gicv3-a.toml b/configs/vms_bkp/linux-qemu-aarch64-gicv3-a.toml similarity index 100% rename from configs/vms/linux-qemu-aarch64-gicv3-a.toml rename to configs/vms_bkp/linux-qemu-aarch64-gicv3-a.toml diff --git a/configs/vms/linux-qemu-aarch64-gicv3-b.toml b/configs/vms_bkp/linux-qemu-aarch64-gicv3-b.toml similarity index 100% rename from configs/vms/linux-qemu-aarch64-gicv3-b.toml rename to configs/vms_bkp/linux-qemu-aarch64-gicv3-b.toml diff --git a/configs/vms/linux-qemu-aarch64-mem.toml b/configs/vms_bkp/linux-qemu-aarch64-mem.toml similarity index 100% rename from configs/vms/linux-qemu-aarch64-mem.toml rename to configs/vms_bkp/linux-qemu-aarch64-mem.toml diff --git a/configs/vms/linux-qemu-aarch64-smp2.toml b/configs/vms_bkp/linux-qemu-aarch64-smp2.toml similarity index 100% rename from configs/vms/linux-qemu-aarch64-smp2.toml rename to configs/vms_bkp/linux-qemu-aarch64-smp2.toml diff --git a/configs/vms/linux-qemu-aarch64-vm2.toml b/configs/vms_bkp/linux-qemu-aarch64-vm2.toml similarity index 100% rename from configs/vms/linux-qemu-aarch64-vm2.toml rename to configs/vms_bkp/linux-qemu-aarch64-vm2.toml diff --git a/configs/vms/linux-qemu-aarch64.toml b/configs/vms_bkp/linux-qemu-aarch64.toml similarity index 100% rename from configs/vms/linux-qemu-aarch64.toml rename to configs/vms_bkp/linux-qemu-aarch64.toml diff --git a/configs/vms/linux-qemu-smp2.dts b/configs/vms_bkp/linux-qemu-smp2.dts similarity index 100% rename from configs/vms/linux-qemu-smp2.dts rename to configs/vms_bkp/linux-qemu-smp2.dts diff --git a/configs/vms/linux-qemu.dts b/configs/vms_bkp/linux-qemu.dts similarity index 100% rename from configs/vms/linux-qemu.dts rename to configs/vms_bkp/linux-qemu.dts diff --git a/configs/vms/linux-qemu_gicv3-b.dts b/configs/vms_bkp/linux-qemu_gicv3-b.dts similarity index 100% rename from configs/vms/linux-qemu_gicv3-b.dts rename to configs/vms_bkp/linux-qemu_gicv3-b.dts diff --git a/configs/vms/linux-rk3588-aarch64-smp-vm1.toml b/configs/vms_bkp/linux-rk3588-aarch64-smp-vm1.toml similarity index 100% rename from configs/vms/linux-rk3588-aarch64-smp-vm1.toml rename to configs/vms_bkp/linux-rk3588-aarch64-smp-vm1.toml diff --git a/configs/vms/linux-rk3588-aarch64-smp-vm2.toml b/configs/vms_bkp/linux-rk3588-aarch64-smp-vm2.toml similarity index 100% rename from configs/vms/linux-rk3588-aarch64-smp-vm2.toml rename to configs/vms_bkp/linux-rk3588-aarch64-smp-vm2.toml diff --git a/configs/vms/linux-rk3588-aarch64-smp.toml b/configs/vms_bkp/linux-rk3588-aarch64-smp.toml similarity index 100% rename from configs/vms/linux-rk3588-aarch64-smp.toml rename to configs/vms_bkp/linux-rk3588-aarch64-smp.toml diff --git a/configs/vms/linux-rk3588-aarch64.toml b/configs/vms_bkp/linux-rk3588-aarch64.toml similarity index 100% rename from configs/vms/linux-rk3588-aarch64.toml rename to configs/vms_bkp/linux-rk3588-aarch64.toml diff --git a/configs/vms/nimbos-aarch64.toml b/configs/vms_bkp/nimbos-aarch64.toml similarity index 100% rename from configs/vms/nimbos-aarch64.toml rename to configs/vms_bkp/nimbos-aarch64.toml diff --git a/configs/vms/nimbos-riscv64.toml b/configs/vms_bkp/nimbos-riscv64.toml similarity index 100% rename from configs/vms/nimbos-riscv64.toml rename to configs/vms_bkp/nimbos-riscv64.toml diff --git a/configs/vms/nimbos-x86_64.toml b/configs/vms_bkp/nimbos-x86_64.toml similarity index 100% rename from configs/vms/nimbos-x86_64.toml rename to configs/vms_bkp/nimbos-x86_64.toml diff --git a/configs/vms/qemu_gicv3.dts b/configs/vms_bkp/qemu_gicv3.dts similarity index 100% rename from configs/vms/qemu_gicv3.dts rename to configs/vms_bkp/qemu_gicv3.dts diff --git a/configs/vms/rk3588jd4.dts b/configs/vms_bkp/rk3588jd4.dts similarity index 100% rename from configs/vms/rk3588jd4.dts rename to configs/vms_bkp/rk3588jd4.dts diff --git a/configs/vms/starry-aarch64.toml b/configs/vms_bkp/starry-aarch64.toml similarity index 100% rename from configs/vms/starry-aarch64.toml rename to configs/vms_bkp/starry-aarch64.toml diff --git a/configs/vms/starry-riscv64.toml b/configs/vms_bkp/starry-riscv64.toml similarity index 100% rename from configs/vms/starry-riscv64.toml rename to configs/vms_bkp/starry-riscv64.toml diff --git a/configs/vms/starry-x86_64.toml b/configs/vms_bkp/starry-x86_64.toml similarity index 100% rename from configs/vms/starry-x86_64.toml rename to configs/vms_bkp/starry-x86_64.toml From fbe2565d5657c0e54da433a6c31b73b3215dca3f Mon Sep 17 00:00:00 2001 From: ZCShou <72115@163.com> Date: Sat, 13 Sep 2025 02:28:14 +0000 Subject: [PATCH 202/219] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=BA=86=20nimbos=20?= =?UTF-8?q?=E7=9B=B8=E5=85=B3=E9=85=8D=E7=BD=AE=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/test.yml | 4 ++-- .../nimbos-aarch64-qemu-smp1.toml} | 0 .../nimbos-riscv64-qemu-smp1.toml} | 0 .../nimbos-x86_64.toml => vms/nimbos-x86_64-qemu-smp1.toml} | 0 src/vmm/config.rs | 6 +++--- 5 files changed, 5 insertions(+), 5 deletions(-) rename configs/{vms_bkp/nimbos-aarch64.toml => vms/nimbos-aarch64-qemu-smp1.toml} (100%) rename configs/{vms_bkp/nimbos-riscv64.toml => vms/nimbos-riscv64-qemu-smp1.toml} (100%) rename configs/{vms_bkp/nimbos-x86_64.toml => vms/nimbos-x86_64-qemu-smp1.toml} (100%) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index e17ace6e..a9a0904b 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -40,7 +40,7 @@ jobs: chmod +x axvisor.sh cargo version export DISK_IMG="${{ github.workspace }}/disk-aarch64.img" - export VM_CONFIGS="$(pwd)/configs/vms/nimbos-aarch64.toml" + export VM_CONFIGS="$(pwd)/configs/vms/nimbos-aarch64-qemu-smp1.toml" ./axvisor.sh run --plat ${{ matrix.plat }} --vmconfigs $VM_CONFIGS --features fs,ept-level-4 --arceos-args DISK_IMG=$DISK_IMG,BUS=mmio,BLK=y,MEM=8g aarch64-generic-phytiumpi: @@ -134,5 +134,5 @@ jobs: run: | cargo version export DISK_IMG="${{ github.workspace }}/disk-x86_64.img" - export VM_CONFIGS="$(pwd)/configs/vms/nimbos-x86_64.toml" + export VM_CONFIGS="$(pwd)/configs/vms/nimbos-x86_64-qemu-smp1.toml" ./axvisor.sh run --plat ${{ matrix.plat }} --vmconfigs $VM_CONFIGS --features fs --arceos-args DISK_IMG=$DISK_IMG,BLK=y diff --git a/configs/vms_bkp/nimbos-aarch64.toml b/configs/vms/nimbos-aarch64-qemu-smp1.toml similarity index 100% rename from configs/vms_bkp/nimbos-aarch64.toml rename to configs/vms/nimbos-aarch64-qemu-smp1.toml diff --git a/configs/vms_bkp/nimbos-riscv64.toml b/configs/vms/nimbos-riscv64-qemu-smp1.toml similarity index 100% rename from configs/vms_bkp/nimbos-riscv64.toml rename to configs/vms/nimbos-riscv64-qemu-smp1.toml diff --git a/configs/vms_bkp/nimbos-x86_64.toml b/configs/vms/nimbos-x86_64-qemu-smp1.toml similarity index 100% rename from configs/vms_bkp/nimbos-x86_64.toml rename to configs/vms/nimbos-x86_64-qemu-smp1.toml diff --git a/src/vmm/config.rs b/src/vmm/config.rs index 9fdf701e..3f5bb196 100644 --- a/src/vmm/config.rs +++ b/src/vmm/config.rs @@ -20,11 +20,11 @@ pub mod config { pub fn default_static_vm_configs() -> Vec<&'static str> { vec![ #[cfg(target_arch = "x86_64")] - core::include_str!("../../configs/vms/nimbos-x86_64.toml"), + core::include_str!("../../configs/vms/nimbos-x86_64-qemu-smp1.toml"), #[cfg(target_arch = "aarch64")] - core::include_str!("../../configs/vms/nimbos-aarch64.toml"), + core::include_str!("../../configs/vms/nimbos-aarch64-qemu-smp1.toml"), #[cfg(target_arch = "riscv64")] - core::include_str!("../../configs/vms/nimbos-riscv64.toml"), + core::include_str!("../../configs/vms/nimbos-riscv64-qemu-smp1.toml"), ] } From a8f5cbc20656f6b2207f73ed89a9e77a77fe2e92 Mon Sep 17 00:00:00 2001 From: ZCShou <72115@163.com> Date: Sat, 13 Sep 2025 03:46:51 +0000 Subject: [PATCH 203/219] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=BA=86=20linux-aar?= =?UTF-8?q?ch64-qemu-smp1=20=E5=AE=A2=E6=88=B7=E6=9C=BA=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E6=96=87=E4=BB=B6=E5=8F=8A=E8=AE=BE=E5=A4=87=E6=A0=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- configs/vms/linux-aarch64-qemu-smp1.dts | 397 +++++++++++++++++++++++ configs/vms/linux-aarch64-qemu-smp1.toml | 69 ++++ 2 files changed, 466 insertions(+) create mode 100644 configs/vms/linux-aarch64-qemu-smp1.dts create mode 100644 configs/vms/linux-aarch64-qemu-smp1.toml diff --git a/configs/vms/linux-aarch64-qemu-smp1.dts b/configs/vms/linux-aarch64-qemu-smp1.dts new file mode 100644 index 00000000..a37731fb --- /dev/null +++ b/configs/vms/linux-aarch64-qemu-smp1.dts @@ -0,0 +1,397 @@ +/dts-v1/; + +/ { + interrupt-parent = <0x8002>; + dma-coherent; + model = "linux,dummy-virt"; + #size-cells = <0x02>; + #address-cells = <0x02>; + compatible = "linux,dummy-virt"; + + psci { + migrate = <0xc4000005>; + cpu_on = <0xc4000003>; + cpu_off = <0x84000002>; + cpu_suspend = <0xc4000001>; + method = "smc"; + compatible = "arm,psci-1.0\0arm,psci-0.2\0arm,psci"; + }; + + memory@80000000 { + reg = <0x00 0x80000000 0x00 0x40000000>; + device_type = "memory"; + }; + + platform-bus@c000000 { + interrupt-parent = <0x8002>; + ranges = <0x00 0x00 0xc000000 0x2000000>; + #address-cells = <0x01>; + #size-cells = <0x01>; + compatible = "qemu,platform\0simple-bus"; + }; + + fw-cfg@9020000 { + dma-coherent; + reg = <0x00 0x9020000 0x00 0x18>; + compatible = "qemu,fw-cfg-mmio"; + }; + + virtio_mmio@a000000 { + dma-coherent; + interrupts = <0x00 0x10 0x01>; + reg = <0x00 0xa000000 0x00 0x200>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@a000200 { + dma-coherent; + interrupts = <0x00 0x11 0x01>; + reg = <0x00 0xa000200 0x00 0x200>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@a000400 { + dma-coherent; + interrupts = <0x00 0x12 0x01>; + reg = <0x00 0xa000400 0x00 0x200>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@a000600 { + dma-coherent; + interrupts = <0x00 0x13 0x01>; + reg = <0x00 0xa000600 0x00 0x200>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@a000800 { + dma-coherent; + interrupts = <0x00 0x14 0x01>; + reg = <0x00 0xa000800 0x00 0x200>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@a000a00 { + dma-coherent; + interrupts = <0x00 0x15 0x01>; + reg = <0x00 0xa000a00 0x00 0x200>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@a000c00 { + dma-coherent; + interrupts = <0x00 0x16 0x01>; + reg = <0x00 0xa000c00 0x00 0x200>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@a000e00 { + dma-coherent; + interrupts = <0x00 0x17 0x01>; + reg = <0x00 0xa000e00 0x00 0x200>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@a001000 { + dma-coherent; + interrupts = <0x00 0x18 0x01>; + reg = <0x00 0xa001000 0x00 0x200>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@a001200 { + dma-coherent; + interrupts = <0x00 0x19 0x01>; + reg = <0x00 0xa001200 0x00 0x200>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@a001400 { + dma-coherent; + interrupts = <0x00 0x1a 0x01>; + reg = <0x00 0xa001400 0x00 0x200>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@a001600 { + dma-coherent; + interrupts = <0x00 0x1b 0x01>; + reg = <0x00 0xa001600 0x00 0x200>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@a001800 { + dma-coherent; + interrupts = <0x00 0x1c 0x01>; + reg = <0x00 0xa001800 0x00 0x200>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@a001a00 { + dma-coherent; + interrupts = <0x00 0x1d 0x01>; + reg = <0x00 0xa001a00 0x00 0x200>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@a001c00 { + dma-coherent; + interrupts = <0x00 0x1e 0x01>; + reg = <0x00 0xa001c00 0x00 0x200>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@a001e00 { + dma-coherent; + interrupts = <0x00 0x1f 0x01>; + reg = <0x00 0xa001e00 0x00 0x200>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@a002000 { + dma-coherent; + interrupts = <0x00 0x20 0x01>; + reg = <0x00 0xa002000 0x00 0x200>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@a002200 { + dma-coherent; + interrupts = <0x00 0x21 0x01>; + reg = <0x00 0xa002200 0x00 0x200>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@a002400 { + dma-coherent; + interrupts = <0x00 0x22 0x01>; + reg = <0x00 0xa002400 0x00 0x200>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@a002600 { + dma-coherent; + interrupts = <0x00 0x23 0x01>; + reg = <0x00 0xa002600 0x00 0x200>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@a002800 { + dma-coherent; + interrupts = <0x00 0x24 0x01>; + reg = <0x00 0xa002800 0x00 0x200>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@a002a00 { + dma-coherent; + interrupts = <0x00 0x25 0x01>; + reg = <0x00 0xa002a00 0x00 0x200>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@a002c00 { + dma-coherent; + interrupts = <0x00 0x26 0x01>; + reg = <0x00 0xa002c00 0x00 0x200>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@a002e00 { + dma-coherent; + interrupts = <0x00 0x27 0x01>; + reg = <0x00 0xa002e00 0x00 0x200>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@a003000 { + dma-coherent; + interrupts = <0x00 0x28 0x01>; + reg = <0x00 0xa003000 0x00 0x200>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@a003200 { + dma-coherent; + interrupts = <0x00 0x29 0x01>; + reg = <0x00 0xa003200 0x00 0x200>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@a003400 { + dma-coherent; + interrupts = <0x00 0x2a 0x01>; + reg = <0x00 0xa003400 0x00 0x200>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@a003600 { + dma-coherent; + interrupts = <0x00 0x2b 0x01>; + reg = <0x00 0xa003600 0x00 0x200>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@a003800 { + dma-coherent; + interrupts = <0x00 0x2c 0x01>; + reg = <0x00 0xa003800 0x00 0x200>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@a003a00 { + dma-coherent; + interrupts = <0x00 0x2d 0x01>; + reg = <0x00 0xa003a00 0x00 0x200>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@a003c00 { + dma-coherent; + interrupts = <0x00 0x2e 0x01>; + reg = <0x00 0xa003c00 0x00 0x200>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@a003e00 { + dma-coherent; + interrupts = <0x00 0x2f 0x01>; + reg = <0x00 0xa003e00 0x00 0x200>; + compatible = "virtio,mmio"; + }; + + gpio-keys { + compatible = "gpio-keys"; + + poweroff { + gpios = <0x8004 0x03 0x00>; + linux,code = <0x74>; + label = "GPIO Key Poweroff"; + }; + }; + + pl061@9030000 { + phandle = <0x8004>; + clock-names = "apb_pclk"; + clocks = <0x8000>; + interrupts = <0x00 0x07 0x04>; + gpio-controller; + #gpio-cells = <0x02>; + compatible = "arm,pl061\0arm,primecell"; + reg = <0x00 0x9030000 0x00 0x1000>; + }; + + // pcie@10000000 { + // interrupt-map-mask = <0x1800 0x00 0x00 0x07>; + // interrupt-map = <0x00 0x00 0x00 0x01 0x8002 0x00 0x00 0x00 0x03 0x04 0x00 0x00 0x00 0x02 0x8002 0x00 0x00 0x00 0x04 0x04 0x00 0x00 0x00 0x03 0x8002 0x00 0x00 0x00 0x05 0x04 0x00 0x00 0x00 0x04 0x8002 0x00 0x00 0x00 0x06 0x04 0x800 0x00 0x00 0x01 0x8002 0x00 0x00 0x00 0x04 0x04 0x800 0x00 0x00 0x02 0x8002 0x00 0x00 0x00 0x05 0x04 0x800 0x00 0x00 0x03 0x8002 0x00 0x00 0x00 0x06 0x04 0x800 0x00 0x00 0x04 0x8002 0x00 0x00 0x00 0x03 0x04 0x1000 0x00 0x00 0x01 0x8002 0x00 0x00 0x00 0x05 0x04 0x1000 0x00 0x00 0x02 0x8002 0x00 0x00 0x00 0x06 0x04 0x1000 0x00 0x00 0x03 0x8002 0x00 0x00 0x00 0x03 0x04 0x1000 0x00 0x00 0x04 0x8002 0x00 0x00 0x00 0x04 0x04 0x1800 0x00 0x00 0x01 0x8002 0x00 0x00 0x00 0x06 0x04 0x1800 0x00 0x00 0x02 0x8002 0x00 0x00 0x00 0x03 0x04 0x1800 0x00 0x00 0x03 0x8002 0x00 0x00 0x00 0x04 0x04 0x1800 0x00 0x00 0x04 0x8002 0x00 0x00 0x00 0x05 0x04>; + // #interrupt-cells = <0x01>; + // ranges = <0x1000000 0x00 0x00 0x00 0x3eff0000 0x00 0x10000 0x2000000 0x00 0x10000000 0x00 0x10000000 0x00 0x2eff0000 0x3000000 0x80 0x00 0x80 0x00 0x80 0x00>; + // reg = <0x40 0x10000000 0x00 0x10000000>; + // msi-map = <0x00 0x8003 0x00 0x10000>; + // dma-coherent; + // bus-range = <0x00 0xff>; + // linux,pci-domain = <0x00>; + // #size-cells = <0x02>; + // #address-cells = <0x03>; + // device_type = "pci"; + // compatible = "pci-host-ecam-generic"; + // }; + + pl031@9010000 { + clock-names = "apb_pclk"; + clocks = <0x8000>; + interrupts = <0x00 0x02 0x04>; + reg = <0x00 0x9010000 0x00 0x1000>; + compatible = "arm,pl031\0arm,primecell"; + }; + + pl011@9000000 { + clock-names = "uartclk\0apb_pclk"; + clocks = <0x8000 0x8000>; + interrupts = <0x00 0x01 0x04>; + reg = <0x00 0x9000000 0x00 0x1000>; + compatible = "arm,pl011\0arm,primecell"; + }; + + pmu { + interrupts = <0x01 0x07 0x04>; + compatible = "arm,armv8-pmuv3"; + }; + + intc@8000000 { + phandle = <0x8002>; + interrupts = <0x01 0x09 0x04>; + reg = <0x00 0x8000000 0x00 0x10000 0x00 0x80a0000 0x00 0xf60000>; + #redistributor-regions = <0x01>; + compatible = "arm,gic-v3"; + ranges; + #size-cells = <0x02>; + #address-cells = <0x02>; + interrupt-controller; + #interrupt-cells = <0x03>; + + its@8080000 { + phandle = <0x8003>; + reg = <0x00 0x8080000 0x00 0x20000>; + #msi-cells = <0x01>; + msi-controller; + compatible = "arm,gic-v3-its"; + }; + }; + + flash@0 { + bank-width = <0x04>; + reg = <0x00 0x00 0x00 0x4000000 0x00 0x4000000 0x00 0x4000000>; + compatible = "cfi-flash"; + }; + + cpus { + #size-cells = <0x00>; + #address-cells = <0x01>; + + cpu-map { + + socket0 { + + cluster0 { + + core0 { + cpu = <0x8001>; + }; + }; + }; + }; + + cpu@0 { + phandle = <0x8001>; + reg = <0x00>; + compatible = "arm,cortex-a72"; + device_type = "cpu"; + }; + }; + + timer { + interrupts = <0x01 0x0d 0x04 0x01 0x0e 0x04 0x01 0x0b 0x04 0x01 0x0a 0x04>; + always-on; + compatible = "arm,armv8-timer\0arm,armv7-timer"; + }; + + apb-pclk { + phandle = <0x8000>; + clock-output-names = "clk24mhz"; + clock-frequency = <0x16e3600>; + #clock-cells = <0x00>; + compatible = "fixed-clock"; + }; + + aliases { + serial0 = "/pl011@9000000"; + }; + + chosen { + bootargs = "root=/dev/vda rw init=/init"; + stdout-path = "/pl011@9000000"; + rng-seed = <0xc63e7c7f 0x25869631 0xfa243fbb 0xe48363de 0xfd9dc3ce 0x5127dfe3 0x88de6403 0xb04a0eef>; + kaslr-seed = <0xdcf4331d 0x73a35db>; + }; +}; diff --git a/configs/vms/linux-aarch64-qemu-smp1.toml b/configs/vms/linux-aarch64-qemu-smp1.toml new file mode 100644 index 00000000..be50f924 --- /dev/null +++ b/configs/vms/linux-aarch64-qemu-smp1.toml @@ -0,0 +1,69 @@ +# Vm base info configs +# +[base] +# Guest vm id. +id = 1 +# Guest vm name. +name = "linux-qemu" +# Virtualization type. +vm_type = 1 +# The number of virtual CPUs. +cpu_num = 1 +# Guest vm physical cpu sets. +phys_cpu_ids = [0] +phys_cpu_sets = [1] + +# +# Vm kernel configs +# +[kernel] +# The entry point of the kernel image. +entry_point = 0x8020_0000 +# The location of image: "memory" | "fs". +# load from memory. +image_location = "memory" +# The file path of the kernel image. +# kernel_path = "linux-6.6.62.bin" +kernel_path = "tmp/Image" +# The load address of the kernel image. +kernel_load_addr = 0x8020_0000 +# The file path of the device tree blob (DTB). +dtb_path = "tmp/linux-aarch64-qemu-smp1.dtb" +# The load address of the device tree blob (DTB). +dtb_load_addr = 0x8000_0000 + +# Memory regions with format (`base_paddr`, `size`, `flags`, `map_type`). +# For `map_type`, 0 means `MAP_ALLOC`, 1 means `MAP_IDENTICAL`. +memory_regions = [ + [0x8000_0000, 0x1000_0000, 0x7, 0], # System RAM 1G MAP_IDENTICAL +] + +# +# Device specifications +# +[devices] +# Pass-through devices. +passthrough_devices = [ + ["intc@8000000", 0x800_0000, 0x800_0000, 0x100_0000, 0x1], + # ["pl011@9000000", 0x900_0000, 0x900_0000, 0x1000, 0x1], + # ["pl031@9010000", 0x901_0000, 0x901_0000, 0x1000, 0x1], + # ["pl061@9030000", 0x903_0000, 0x903_0000, 0x1000, 0x1], + # a003000.virtio_mmio virtio_mmio@a003000 + # a003200.virtio_mmio virtio_mmio@a003200 + # ["virtio_mmio", 0xa00_0000, 0xa00_0000, 0x4000, 0x1], + # ["low-devices", 0x0, 0x0, 0x0800_0000, 0x1], + # ["low-devices2", 0x09000000, 0x09000000, 0x1000_0000, 0x1], + # ["pci@10000000", 0x10000000, 0x10000000, 0x10000000, 0x1], + # ["pci", 0x4010000000, 0x4010000000, 0x100000, 0x1], + # ["pci-range", 0x8000000000, 0x8000000000, 0x10000, 0x1], +] + +# Emu_devices. +# Name Base-Ipa Ipa_len Alloc-Irq Emu-Type EmuConfig. +emu_devices = [ + # ["gppt-gicd", 0x0800_0000, 0x1_0000, 0, 0x21, []], + # ["gppt-gicr", 0x080a_0000, 0x2_0000, 0, 0x20, [1, 0x2_0000, 0]], # 1 vcpu, stride 0x20000, starts with pcpu 0 + # ["gppt-gits", 0x0808_0000, 0x2_0000, 0, 0x22, [0x0808_0000]], # host_gits_base +] + +interrupt_mode = "passthrough" From 36f81911d65535385f72e535d841d97ae353ffc1 Mon Sep 17 00:00:00 2001 From: ZCShou <72115@163.com> Date: Sat, 13 Sep 2025 03:46:56 +0000 Subject: [PATCH 204/219] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E4=BA=86=20README?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 40 ++++++++++++++++++++-------------------- README_CN.md | 41 +++++++++++++++++++++-------------------- 2 files changed, 41 insertions(+), 40 deletions(-) diff --git a/README.md b/README.md index cd10e3c8..7a41a007 100644 --- a/README.md +++ b/README.md @@ -20,11 +20,11 @@ English | [中文](README_CN.md) # Introduction -AxVisor is a hypervisor implemented based on the ArceOS unikernel framework. Its goal is to leverage the foundational operating system features provided by ArceOS to implement a unified modular hypervisor. +AxVisor is a Hypervisor implemented based on the ArceOS unikernel framework. Its goal is to leverage the basic operating system functionalities provided by ArceOS as a foundation to build a unified and componentized Hypervisor. -"Unified" refers to using the same codebase to support x86_64, Arm (aarch64), and RISC-V architectures simultaneously, in order to maximize the reuse of architecture-independent code and simplify development and maintenance costs. +**Unified** means using the same codebase to support three architectures—x86_64, Arm (aarch64), and RISC-V—maximizing the reuse of architecture-agnostic code and simplifying development and maintenance efforts. -"Modular" means that the functionality of the hypervisor is decomposed into multiple modules, each implementing a specific function. The modules communicate with each other through standard interfaces to achieve decoupling and reuse of functionality. +**Componentized** means that the Hypervisor's functionalities are decomposed into multiple independently usable components. Each component implements a specific function, and components communicate through standardized interfaces to achieve decoupling and reusability. ## Architecture @@ -40,7 +40,7 @@ Currently, AxVisor has been verified on the following platforms: - [x] QEMU ARM64 virt (qemu-max) - [x] Rockchip RK3568 / RK3588 -- [x] 黑芝麻华山 A1000 +- [x] PhytiumPi ## Guest VMs @@ -50,10 +50,6 @@ Currently, AxVisor has been verified in scenarios with the following systems as - [Starry-OS](https://github.com/Starry-OS) - [NimbOS](https://github.com/equation314/nimbos) - Linux - - currently only Linux with passthrough device on aarch64 is tested. - - single core: [config.toml](configs/vms/linux-qemu-aarch64.toml) | [dts](configs/vms/linux-qemu.dts) - - smp: [config.toml](configs/vms/linux-qemu-aarch64-smp2.toml) | [dts](configs/vms/linux-qemu-smp2.dts) - # Build and Run @@ -77,6 +73,8 @@ In addition, you can use the [axvmconfig](https://github.com/arceos-hypervisor/a ## Load and run from file system +Loading from the filesystem refers to the method where the AxVisor image, Linux guest image, and its device tree are independently deployed in the filesystem on the storage. After AxVisor starts, it loads the guest image and its device tree from the filesystem to boot the guest. + ### NimbOS as guest 1. Execute script to download and prepare NimbOS image. @@ -98,27 +96,28 @@ In addition, you can use the [axvmconfig](https://github.com/arceos-hypervisor/a 4. Execute `./axvisor.sh run` to build AxVisor and start it in QEMU. -### More +### More guest + TODO ## Load and run from memory -### linux as guest -1. [See linux build help.](https://github.com/arceos-hypervisor/guest-test-linux) to get Image and rootfs.img. +Loading from memory refers to a method where the AxVisor image, guest image, and its device tree are already packaged together during the build phase. Only AxVisor itself needs to be deployed in the file system on the storage device. After AxVisor starts, it loads the guest image and its device tree from memory to boot the guest. -2. Modify the configuration items in the corresponding `./configs/vms/.toml` +### linux as guest +1. Prepare working directory ```console mkdir -p tmp - cp configs/vms/linux-qemu-aarch64-mem.toml tmp/ + cp configs/vms/linux-aarch64-qemu-smp1.toml tmp/ + cp configs/vms/linux-aarch64-qemu-smp1.dts tmp/ ``` - - `image_location="memory"` indicates loading from the memory. - - `kernel_path` kernel_path specifies the path of the kernel image in the workspace. - - `dtb_path` specifies the path of the dtb file in the workspace. - - others +2. [See Linux build help](https://github.com/arceos-hypervisor/guest-test-linux) to get the guest Image and rootfs.img, then copy them to the `tmp` directory. -3. Edit the `.hvconfig.toml` file to set the `vmconfigs` item to the path of your guest configuration file, for example: +3. Execute `dtc -O dtb -I dts -o tmp/linux-aarch64-qemu-smp1.dtb tmp/linux-aarch64-qemu-smp1.dts` to build the guest device tree file + +4. Execute `./axvisor.sh defconfig`, then edit the `.hvconfig.toml` file, set the `vmconfigs` item to your guest machine configuration file path, with the following content: ```toml arceos_args = [ @@ -129,12 +128,13 @@ In addition, you can use the [axvmconfig](https://github.com/arceos-hypervisor/a "QEMU_ARGS=\"-machine gic-version=3 -cpu cortex-a72 \"", "DISK_IMG=\"tmp/rootfs.img\"", ] - vmconfigs = [ "tmp/linux-qemu-aarch64-mem.toml"] + vmconfigs = [ "tmp/linux-aarch64-qemu-smp1.toml"] ``` 4. Execute `./axvisor.sh run` to build AxVisor and start it in QEMU. -### More +### More guest + TODO # Contributing diff --git a/README_CN.md b/README_CN.md index 8a4a4079..4c305913 100644 --- a/README_CN.md +++ b/README_CN.md @@ -6,7 +6,7 @@

AxVisor

-

一个基于 ArceOS 的统一模块化虚拟机管理程序

+

一个基于 ArceOS 的统一组件化虚拟机管理程序

@@ -20,15 +20,15 @@ # 简介 -AxVisor 是基于 ArceOS unikernel 框架实现的 Hypervisor。其目标是利用 ArceOS 提供的基础操作系统功能作为基础,实现一个统一的模块化 Hypervisor。 +AxVisor 是基于 ArceOS unikernel 框架实现的 Hypervisor。其目标是利用 ArceOS 提供的基础操作系统功能作为基础,实现一个统一的组件化 Hypervisor。 -“统一”指使用同一套代码同时支持 x86_64、Arm(aarch64) 和 RISC-V 三种架构,以最大化复用架构无关代码,简化代码开发和维护成本。 +**统一**是指使用同一套代码同时支持 x86_64、Arm(aarch64) 和 RISC-V 三种架构,以最大化复用架构无关代码,简化代码开发和维护成本。 -“模块化”指 Hypervisor 的功能被分解为多个模块,每个模块实现一个特定的功能,模块之间通过标准接口进行通信,以实现功能的解耦和复用。 +**组件化**是指 Hypervisor 的功能被分解为多个可独立使用的组件,每个组件实现一个特定的功能,组件之间通过标准接口进行通信,以实现功能的解耦和复用。 ## 架构 -AxVisor 的软件架构分为如下图所示的五层,其中,每一个框都是一个独立的模块,模块之间通过标准接口进行通信。 +AxVisor 的软件架构分为如下图所示的五层,其中,每一个框都是一个独立的组件,组件之间通过标准接口进行通信。 ![Architecture](https://arceos-hypervisor.github.io/doc/assets/arceos-hypervisor-architecture.png) @@ -40,7 +40,7 @@ AxVisor 的软件架构分为如下图所示的五层,其中,每一个框都 - [x] QEMU ARM64 virt (qemu-max) - [x] Rockchip RK3568 / RK3588 -- [x] 黑芝麻华山 A1000 +- [x] 飞腾派 ## 客户机 @@ -50,9 +50,6 @@ AxVisor 的软件架构分为如下图所示的五层,其中,每一个框都 - [Starry-OS](https://github.com/Starry-OS) - [NimbOS](https://github.com/equation314/nimbos) - Linux - - currently only Linux with passthrough device on aarch64 is tested. - - single core: [config.toml](configs/vms/linux-qemu-aarch64.toml) | [dts](configs/vms/linux-qemu.dts) - - smp: [config.toml](configs/vms/linux-qemu-aarch64-smp2.toml) | [dts](configs/vms/linux-qemu-smp2.dts) # 构建及运行 @@ -76,7 +73,9 @@ cargo install cargo-binutils ## 从文件系统加载运行 -### 使用 NimbOS 作为客户机 +从文件系统加载是指将 AxVisor 镜像和 Linux 客户机镜像及其设备树独立部署在存储器上的文件系统中,AxVisor 启动后从文件系统中加载客户机镜像及其设备树进而启动客户机的方式。 + +### NimbOS 作为客户机 1. 执行仓库内的脚本下载并准备 NimbOS 镜像: @@ -98,26 +97,27 @@ cargo install cargo-binutils 4. 执行 `./axvisor.sh run` 构建 AxVisor 并在 QEMU 中启动 NimbOS 客户机。 ### 更多客户机 + TODO ## 从内存加载运行 -### 使用 linux 作为客户机 -1. [参见 linux 构建帮助。](https://github.com/arceos-hypervisor/guest-test-linux) 获取 Image 和 rootfs.img。 +从内存加载是指在构建时已经将 AxVisor 镜像与客户机镜像及其设备树打包在了一起,而只需要将 AxVisor 本身部署在存储器上文件系统中,AxVisor 启动后从内存中加载客户机镜像及其设备树进而启动客户机的方式。 -2. 修改对应的 `./configs/vms/.toml` 中的配置项 +### Linux 作为客户机 +1. 准备工作目录及相关文件 ```console mkdir -p tmp - cp configs/vms/linux-qemu-aarch64-mem.toml tmp/ + cp configs/vms/linux-aarch64-qemu-smp1.toml tmp/ + cp configs/vms/linux-aarch64-qemu-smp1.dts tmp/ ``` - - `image_location="memory"` 表示从内存加载 - - `kernel_path` 指定内核镜像在工作空间中的路径 - - `dtb_path` 指定 dtb 文件在工作空间中的路径 - - 其他 +2. [参见 linux 构建帮助](https://github.com/arceos-hypervisor/guest-test-linux)获取客户机 Image 和 rootfs.img,然后复制到 `tmp` 目录中。 -3. 编辑 `.hvconfig.toml` 文件,设置 `vmconfigs` 项为您的客户机配置文件路径,例如: +3. 构建客户机设备树 `dtc -O dtb -I dts -o tmp/linux-aarch64-qemu-smp1.dtb tmp/linux-aarch64-qemu-smp1.dts` + +4. 执行 `./axvisor.sh defconfig`,然后编辑 `.hvconfig.toml` 文件,设置 `vmconfigs` 项为您的客户机配置文件路径,例如: ```toml arceos_args = [ @@ -128,12 +128,13 @@ cargo install cargo-binutils "QEMU_ARGS=\"-machine gic-version=3 -cpu cortex-a72 \"", "DISK_IMG=\"tmp/rootfs.img\"", ] - vmconfigs = [ "tmp/linux-qemu-aarch64-mem.toml"] + vmconfigs = [ "tmp/linux-aarch64-qemu-smp1.toml"] ``` 4. 执行 `./axvisor.sh run` 构建 AxVisor 并在 QEMU 中启动。 ### 更多客户机 + TODO ## 启动示例 From 912c64735b97104e6f08e3e5bab19ae1d212c0d2 Mon Sep 17 00:00:00 2001 From: ZCShou <72115@163.com> Date: Thu, 18 Sep 2025 01:55:57 +0000 Subject: [PATCH 205/219] =?UTF-8?q?=E6=9B=B4=E6=AD=A3=E4=BA=86=E5=AE=A2?= =?UTF-8?q?=E6=88=B7=E6=9C=BA=E9=85=8D=E7=BD=AE=E6=96=87=E4=BB=B6=E5=91=BD?= =?UTF-8?q?=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 ++ README_CN.md | 4 +++- ...s-aarch64-e2000_smp1.dts => arceos-aarch64-e2000-smp1.dts} | 0 ...aarch64-e2000_smp1.toml => arceos-aarch64-e2000-smp1.toml} | 0 ...s-aarch64-e2000_smp2.dts => arceos-aarch64-e2000-smp2.dts} | 0 ...aarch64-e2000_smp2.toml => arceos-aarch64-e2000-smp2.toml} | 0 ...aarch64-rk3568_smp1.dts => arceos-aarch64-rk3568-smp1.dts} | 0 ...aarch64-rk3568_smp2.dts => arceos-aarch64-rk3568-smp2.dts} | 0 ...ux-aarch64-e2000_smp1.dts => linux-aarch64-e2000-smp1.dts} | 0 ...-aarch64-e2000_smp1.toml => linux-aarch64-e2000-smp1.toml} | 0 ...ux-aarch64-e2000_smp2.dts => linux-aarch64-e2000-smp2.dts} | 0 ...-aarch64-e2000_smp2.toml => linux-aarch64-e2000-smp2.toml} | 0 ...-aarch64-rk3568_smp1.dts => linux-aarch64-rk3568-smp1.dts} | 0 ...arch64-rk3568_smp1.toml => linux-aarch64-rk3568-smp1.toml} | 0 ...-aarch64-rk3568_smp2.dts => linux-aarch64-rk3568-smp2.dts} | 0 ...arch64-rk3568_smp2.toml => linux-aarch64-rk3568-smp2.toml} | 0 16 files changed, 5 insertions(+), 1 deletion(-) rename configs/vms/{arceos-aarch64-e2000_smp1.dts => arceos-aarch64-e2000-smp1.dts} (100%) rename configs/vms/{arceos-aarch64-e2000_smp1.toml => arceos-aarch64-e2000-smp1.toml} (100%) rename configs/vms/{arceos-aarch64-e2000_smp2.dts => arceos-aarch64-e2000-smp2.dts} (100%) rename configs/vms/{arceos-aarch64-e2000_smp2.toml => arceos-aarch64-e2000-smp2.toml} (100%) rename configs/vms/{arceos-aarch64-rk3568_smp1.dts => arceos-aarch64-rk3568-smp1.dts} (100%) rename configs/vms/{arceos-aarch64-rk3568_smp2.dts => arceos-aarch64-rk3568-smp2.dts} (100%) rename configs/vms/{linux-aarch64-e2000_smp1.dts => linux-aarch64-e2000-smp1.dts} (100%) rename configs/vms/{linux-aarch64-e2000_smp1.toml => linux-aarch64-e2000-smp1.toml} (100%) rename configs/vms/{linux-aarch64-e2000_smp2.dts => linux-aarch64-e2000-smp2.dts} (100%) rename configs/vms/{linux-aarch64-e2000_smp2.toml => linux-aarch64-e2000-smp2.toml} (100%) rename configs/vms/{linux-aarch64-rk3568_smp1.dts => linux-aarch64-rk3568-smp1.dts} (100%) rename configs/vms/{linux-aarch64-rk3568_smp1.toml => linux-aarch64-rk3568-smp1.toml} (100%) rename configs/vms/{linux-aarch64-rk3568_smp2.dts => linux-aarch64-rk3568-smp2.dts} (100%) rename configs/vms/{linux-aarch64-rk3568_smp2.toml => linux-aarch64-rk3568-smp2.toml} (100%) diff --git a/README.md b/README.md index 7a41a007..0f076e35 100644 --- a/README.md +++ b/README.md @@ -71,6 +71,8 @@ Since configuring the guest is a complex process, AxVisor chooses to use TOML fi In addition, you can use the [axvmconfig](https://github.com/arceos-hypervisor/axvmconfig) tool to generate a custom configuration file. For detailed information, refer to the [axvmconfig](https://arceos-hypervisor.github.io/axvmconfig/axvmconfig/index.html) documentation. +The configuration file naming format is `--board_or_cpu-smpx`, where `` is the guest system name, `` is the architecture, `board_or_cpu` is the hardware development board or CPU name (concatenating different strings with `_`), and `smpx` indicates the number of CPUs allocated to the guest, with `x` being the specific value. Each component is concatenated with `-` to form the complete name. + ## Load and run from file system Loading from the filesystem refers to the method where the AxVisor image, Linux guest image, and its device tree are independently deployed in the filesystem on the storage. After AxVisor starts, it loads the guest image and its device tree from the filesystem to boot the guest. diff --git a/README_CN.md b/README_CN.md index 4c305913..93f5fd18 100644 --- a/README_CN.md +++ b/README_CN.md @@ -67,10 +67,12 @@ cargo install cargo-binutils ## 配置文件 -由于客户机配置是一个复杂的过程,AxVisor 选择使用 toml 文件来管理客户机的配置,其中包括虚拟机 ID、虚拟机名称、虚拟机类型、CPU 核心数量、内存大小、虚拟设备和直通设备等。在源码的 `./config/vms` 目录下是一些客户机配置的示例模板。 +由于客户机配置是一个复杂的过程,AxVisor 选择使用 toml 文件来管理客户机的配置,其中包括虚拟机 ID、虚拟机名称、虚拟机类型、CPU 核心数量、内存大小、虚拟设备和直通设备等。在源码的 `./config/vms` 目录下是一些客户机配置的示例模板. 此外,也可以使用 [axvmconfig](https://github.com/arceos-hypervisor/axvmconfig) 工具来生成一个自定义配置文件。详细介绍参见 [axvmconfig](https://arceos-hypervisor.github.io/axvmconfig/axvmconfig/index.html)。 +配置文件命名格式为 `--board_or_cpu-smpx`,其中,`` 是客户机系统名字,`` 是架构,`board_or_cpu` 硬件开发板或者 CPU 的名字(以 `_` 拼接不同字符串),`smpx` 是指分配客户机的 CPU 数量 `x` 为具体数值,各项之间以 `-` 拼接为整体。 + ## 从文件系统加载运行 从文件系统加载是指将 AxVisor 镜像和 Linux 客户机镜像及其设备树独立部署在存储器上的文件系统中,AxVisor 启动后从文件系统中加载客户机镜像及其设备树进而启动客户机的方式。 diff --git a/configs/vms/arceos-aarch64-e2000_smp1.dts b/configs/vms/arceos-aarch64-e2000-smp1.dts similarity index 100% rename from configs/vms/arceos-aarch64-e2000_smp1.dts rename to configs/vms/arceos-aarch64-e2000-smp1.dts diff --git a/configs/vms/arceos-aarch64-e2000_smp1.toml b/configs/vms/arceos-aarch64-e2000-smp1.toml similarity index 100% rename from configs/vms/arceos-aarch64-e2000_smp1.toml rename to configs/vms/arceos-aarch64-e2000-smp1.toml diff --git a/configs/vms/arceos-aarch64-e2000_smp2.dts b/configs/vms/arceos-aarch64-e2000-smp2.dts similarity index 100% rename from configs/vms/arceos-aarch64-e2000_smp2.dts rename to configs/vms/arceos-aarch64-e2000-smp2.dts diff --git a/configs/vms/arceos-aarch64-e2000_smp2.toml b/configs/vms/arceos-aarch64-e2000-smp2.toml similarity index 100% rename from configs/vms/arceos-aarch64-e2000_smp2.toml rename to configs/vms/arceos-aarch64-e2000-smp2.toml diff --git a/configs/vms/arceos-aarch64-rk3568_smp1.dts b/configs/vms/arceos-aarch64-rk3568-smp1.dts similarity index 100% rename from configs/vms/arceos-aarch64-rk3568_smp1.dts rename to configs/vms/arceos-aarch64-rk3568-smp1.dts diff --git a/configs/vms/arceos-aarch64-rk3568_smp2.dts b/configs/vms/arceos-aarch64-rk3568-smp2.dts similarity index 100% rename from configs/vms/arceos-aarch64-rk3568_smp2.dts rename to configs/vms/arceos-aarch64-rk3568-smp2.dts diff --git a/configs/vms/linux-aarch64-e2000_smp1.dts b/configs/vms/linux-aarch64-e2000-smp1.dts similarity index 100% rename from configs/vms/linux-aarch64-e2000_smp1.dts rename to configs/vms/linux-aarch64-e2000-smp1.dts diff --git a/configs/vms/linux-aarch64-e2000_smp1.toml b/configs/vms/linux-aarch64-e2000-smp1.toml similarity index 100% rename from configs/vms/linux-aarch64-e2000_smp1.toml rename to configs/vms/linux-aarch64-e2000-smp1.toml diff --git a/configs/vms/linux-aarch64-e2000_smp2.dts b/configs/vms/linux-aarch64-e2000-smp2.dts similarity index 100% rename from configs/vms/linux-aarch64-e2000_smp2.dts rename to configs/vms/linux-aarch64-e2000-smp2.dts diff --git a/configs/vms/linux-aarch64-e2000_smp2.toml b/configs/vms/linux-aarch64-e2000-smp2.toml similarity index 100% rename from configs/vms/linux-aarch64-e2000_smp2.toml rename to configs/vms/linux-aarch64-e2000-smp2.toml diff --git a/configs/vms/linux-aarch64-rk3568_smp1.dts b/configs/vms/linux-aarch64-rk3568-smp1.dts similarity index 100% rename from configs/vms/linux-aarch64-rk3568_smp1.dts rename to configs/vms/linux-aarch64-rk3568-smp1.dts diff --git a/configs/vms/linux-aarch64-rk3568_smp1.toml b/configs/vms/linux-aarch64-rk3568-smp1.toml similarity index 100% rename from configs/vms/linux-aarch64-rk3568_smp1.toml rename to configs/vms/linux-aarch64-rk3568-smp1.toml diff --git a/configs/vms/linux-aarch64-rk3568_smp2.dts b/configs/vms/linux-aarch64-rk3568-smp2.dts similarity index 100% rename from configs/vms/linux-aarch64-rk3568_smp2.dts rename to configs/vms/linux-aarch64-rk3568-smp2.dts diff --git a/configs/vms/linux-aarch64-rk3568_smp2.toml b/configs/vms/linux-aarch64-rk3568-smp2.toml similarity index 100% rename from configs/vms/linux-aarch64-rk3568_smp2.toml rename to configs/vms/linux-aarch64-rk3568-smp2.toml From 8539cc1eaa5c70bf8e442bbb8cb1e942b0b7c26f Mon Sep 17 00:00:00 2001 From: YanLien Date: Thu, 18 Sep 2025 14:26:30 +0800 Subject: [PATCH 206/219] feat(plc): add tac_e400 profile on smp1 --- configs/vms/arceos-aarch64-tac_e400-smp1.dts | 155 ++ configs/vms/arceos-aarch64-tac_e400-smp1.toml | 71 + configs/vms/linux-aarch64-tac_e400-smp1.dts | 1302 +++++++++++++++++ configs/vms/linux-aarch64-tac_e400-smp1.toml | 114 ++ 4 files changed, 1642 insertions(+) create mode 100644 configs/vms/arceos-aarch64-tac_e400-smp1.dts create mode 100644 configs/vms/arceos-aarch64-tac_e400-smp1.toml create mode 100644 configs/vms/linux-aarch64-tac_e400-smp1.dts create mode 100644 configs/vms/linux-aarch64-tac_e400-smp1.toml diff --git a/configs/vms/arceos-aarch64-tac_e400-smp1.dts b/configs/vms/arceos-aarch64-tac_e400-smp1.dts new file mode 100644 index 00000000..53d9a15f --- /dev/null +++ b/configs/vms/arceos-aarch64-tac_e400-smp1.dts @@ -0,0 +1,155 @@ +/dts-v1/; + +/memreserve/ 0x0000000080000000 0x0000000000010000; +/ { + compatible = "phytium,pe2204"; + interrupt-parent = <0x01>; + #address-cells = <0x02>; + #size-cells = <0x02>; + model = "Phytium Pi Board"; + + // memory@01 { + // device_type = "memory"; + // reg = <0x20 0x00 0x00 0x80000000>; + // numa-node-id = <0x00>; + // }; + + aliases { + serial1 = "/soc/uart@2800d000"; + }; + + psci { + compatible = "arm,psci-1.0"; + method = "smc"; + cpu_suspend = <0xc4000001>; + cpu_off = <0x84000002>; + cpu_on = <0xc4000003>; + sys_poweroff = <0x84000008>; + sys_reset = <0x84000009>; + }; + + cpus { + #address-cells = <0x02>; + #size-cells = <0x00>; + + cpu-map { + + // cluster0 { + + // core0 { + // cpu = <0x05>; + // }; + // }; + + // cluster1 { + + // core0 { + // cpu = <0x06>; + // }; + // }; + + cluster2 { + + core0 { + cpu = <0x07>; + }; + + // core1 { + // cpu = <0x08>; + // }; + }; + }; + + cpu@0 { + device_type = "cpu"; + compatible = "phytium,ftc310\0arm,armv8"; + reg = <0x00 0x200>; + enable-method = "psci"; + clocks = <0x09 0x02>; + capacity-dmips-mhz = <0xb22>; + phandle = <0x07>; + }; + + // cpu@1 { + // device_type = "cpu"; + // compatible = "phytium,ftc310\0arm,armv8"; + // reg = <0x00 0x201>; + // enable-method = "psci"; + // clocks = <0x09 0x02>; + // capacity-dmips-mhz = <0xb22>; + // phandle = <0x08>; + // }; + + // cpu@100 { + // device_type = "cpu"; + // compatible = "phytium,ftc664\0arm,armv8"; + // reg = <0x00 0x00>; + // enable-method = "psci"; + // clocks = <0x09 0x00>; + // capacity-dmips-mhz = <0x161c>; + // phandle = <0x05>; + // }; + + // cpu@101 { + // device_type = "cpu"; + // compatible = "phytium,ftc664\0arm,armv8"; + // reg = <0x00 0x100>; + // enable-method = "psci"; + // clocks = <0x09 0x01>; + // capacity-dmips-mhz = <0x161c>; + // phandle = <0x06>; + // }; + }; + + interrupt-controller@30800000 { + compatible = "arm,gic-v3"; + #interrupt-cells = <0x03>; + #address-cells = <0x02>; + #size-cells = <0x02>; + ranges; + interrupt-controller; + reg = <0x00 0x30800000 0x00 0x20000 0x00 0x30880000 0x00 0x80000 0x00 0x30840000 0x00 0x10000 0x00 0x30850000 0x00 0x10000 0x00 0x30860000 0x00 0x10000>; + interrupts = <0x01 0x09 0x08>; + phandle = <0x01>; + + gic-its@30820000 { + compatible = "arm,gic-v3-its"; + msi-controller; + reg = <0x00 0x30820000 0x00 0x20000>; + phandle = <0x0f>; + }; + }; + + timer { + compatible = "arm,armv8-timer"; + interrupts = <0x01 0x0d 0x08 0x01 0x0e 0x08 0x01 0x0b 0x08 0x01 0x0a 0x08>; + clock-frequency = <0x2faf080>; + }; + + soc { + compatible = "simple-bus"; + #address-cells = <0x02>; + #size-cells = <0x02>; + dma-coherent; + ranges; + + uart@2800d000 { + compatible = "arm,pl011\0arm,primecell"; + reg = <0x00 0x2800d000 0x00 0x1000>; + interrupts = <0x00 0x54 0x04>; + clocks = <0x0c 0x0c>; + clock-names = "uartclk\0apb_pclk"; + status = "okay"; + }; + }; + + chosen { + bootargs = "console=ttyAMA1,115200 earlycon=pl011,0x2800d000 root=/dev/sda2 rootfstype=ext4 rootwait rw cma=256m ;"; + stdout-path = "serial1:115200n8"; + }; + + memory@00 { + device_type = "memory"; + reg = <0x20 0x20000000 0x00 0x20000000>; + }; +}; diff --git a/configs/vms/arceos-aarch64-tac_e400-smp1.toml b/configs/vms/arceos-aarch64-tac_e400-smp1.toml new file mode 100644 index 00000000..e6a98aa6 --- /dev/null +++ b/configs/vms/arceos-aarch64-tac_e400-smp1.toml @@ -0,0 +1,71 @@ +# Vm base info configs +# +[base] +# Guest vm id. +id = 2 +# Guest vm name. +name = "arceos" +# Virtualization type. +vm_type = 1 +# The number of virtual CPUs. +cpu_num = 1 +# The physical CPU ids. +phys_cpu_ids = [0x200] +# Guest vm physical cpu sets. +phys_cpu_sets = [1] + +# +# Vm kernel configs +# +[kernel] +# The entry point of the kernel image. +entry_point = 0x20_2008_0000 +# The location of image: "memory" | "fs". +# Load from file system. +image_location = "memory" +# The load address of the kernel image. +kernel_load_addr = 0x20_2008_0000 +## The file path of the kernel image. +kernel_path = "/path/to/arceos_aarch64-dyn_smp1.bin" +## The file path of the device tree blob (DTB). +dtb_load_addr = 0x20_2000_0000 +dtb_path = "/path/to/arceos-aarch64-e2000_smp1.dtb" +# Memory regions with format (`base_paddr`, `size`, `flags`, `map_type`). +# For `map_type`, 0 means `MAP_ALLOC`, 1 means `MAP_IDENTICAL`. +memory_regions = [ + [0x20_2000_0000, 0x2000_0000, 0x7, 1], # System RAM MAP_IDENTICAL +] + +# +# Device specifications +# +[devices] +# Emu_devices. +# Name Base-Ipa Ipa_len Alloc-Irq Emu-Type EmuConfig. +emu_devices = [] + +# Pass-through devices. +# Name Base-Ipa Base-Pa Length Alloc-Irq. +passthrough_devices = [ + [ + "UART1", + 0x2800_d000, + 0x2800_d000, + 0x1000, + 0x1, + ], + [ + "gic-v3", + 0x3080_0000, + 0x3080_0000, + 0x10000, + 0x1, + ], + [ + "gic-v3-its", + 0x3082_0000, + 0x3082_0000, + 0x100000, + 0x1, + ], +] diff --git a/configs/vms/linux-aarch64-tac_e400-smp1.dts b/configs/vms/linux-aarch64-tac_e400-smp1.dts new file mode 100644 index 00000000..f59ffcab --- /dev/null +++ b/configs/vms/linux-aarch64-tac_e400-smp1.dts @@ -0,0 +1,1302 @@ +/dts-v1/; + +/memreserve/ 0x0000000080000000 0x0000000000010000; +/ { + compatible = "phytium,pe2204"; + interrupt-parent = <0x01>; + #address-cells = <0x02>; + #size-cells = <0x02>; + model = "Phytium Pi Board"; + + // memory@01 { + // device_type = "memory"; + // reg = <0x20 0x40000000 0x00 0x40000000>; + // numa-node-id = <0x00>; + // }; + + aliases { + serial0 = "/soc/uart@2800c000"; + serial1 = "/soc/uart@2800d000"; + serial2 = "/soc/uart@2800e000"; + serial3 = "/soc/uart@2800f000"; + ethernet0 = "/soc/ethernet@3200c000"; + ethernet1 = "/soc/ethernet@3200e000"; + ethernet2 = "/soc/ethernet@32010000"; + ethernet3 = "/soc/ethernet@32012000"; + serial4 = "/soc/uart@28014000"; + serial5 = "/soc/uart@2802A000"; + serial6 = "/soc/uart@28032000"; + }; + + psci { + compatible = "arm,psci-1.0"; + method = "smc"; + cpu_suspend = <0xc4000001>; + cpu_off = <0x84000002>; + cpu_on = <0xc4000003>; + sys_poweroff = <0x84000008>; + sys_reset = <0x84000009>; + }; + + firmware { + + scmi { + compatible = "arm,scmi"; + mboxes = <0x02 0x00>; + mbox-names = "tx"; + shmem = <0x03>; + #address-cells = <0x01>; + #size-cells = <0x00>; + + protocol@13 { + reg = <0x13>; + #clock-cells = <0x01>; + phandle = <0x09>; + }; + + protocol@15 { + reg = <0x15>; + #thermal-sensor-cells = <0x01>; + phandle = <0x04>; + }; + }; + + optee { + compatible = "linaro,optee-tz"; + method = "smc"; + }; + }; + + thermal-zones { + + sensor0 { + polling-delay-passive = <0x64>; + polling-delay = <0x3e8>; + thermal-sensors = <0x04 0x00>; + }; + + sensor1 { + polling-delay-passive = <0x64>; + polling-delay = <0x3e8>; + thermal-sensors = <0x04 0x01>; + }; + }; + + cpus { + #address-cells = <0x02>; + #size-cells = <0x00>; + + cpu-map { + + // cluster0 { + + // core0 { + // cpu = <0x05>; + // }; + // }; + + cluster1 { + + core0 { + cpu = <0x06>; + }; + }; + + // cluster2 { + + // core0 { + // cpu = <0x07>; + // }; + + // core1 { + // cpu = <0x08>; + // }; + // }; + }; + + // cpu@0 { + // device_type = "cpu"; + // compatible = "phytium,ftc310\0arm,armv8"; + // reg = <0x00 0x200>; + // enable-method = "psci"; + // clocks = <0x09 0x02>; + // capacity-dmips-mhz = <0xb22>; + // phandle = <0x07>; + // }; + + // cpu@1 { + // device_type = "cpu"; + // compatible = "phytium,ftc310\0arm,armv8"; + // reg = <0x00 0x201>; + // enable-method = "psci"; + // clocks = <0x09 0x02>; + // capacity-dmips-mhz = <0xb22>; + // phandle = <0x08>; + // }; + + // cpu@100 { + // device_type = "cpu"; + // compatible = "phytium,ftc664\0arm,armv8"; + // reg = <0x00 0x00>; + // enable-method = "psci"; + // clocks = <0x09 0x00>; + // capacity-dmips-mhz = <0x161c>; + // phandle = <0x05>; + // }; + + cpu@101 { + device_type = "cpu"; + compatible = "phytium,ftc664\0arm,armv8"; + reg = <0x00 0x100>; + enable-method = "psci"; + clocks = <0x09 0x01>; + capacity-dmips-mhz = <0x161c>; + phandle = <0x06>; + }; + }; + + interrupt-controller@30800000 { + compatible = "arm,gic-v3"; + #interrupt-cells = <0x03>; + #address-cells = <0x02>; + #size-cells = <0x02>; + ranges; + interrupt-controller; + reg = <0x00 0x30800000 0x00 0x20000 0x00 0x30880000 0x00 0x80000 0x00 0x30840000 0x00 0x10000 0x00 0x30850000 0x00 0x10000 0x00 0x30860000 0x00 0x10000>; + interrupts = <0x01 0x09 0x08>; + phandle = <0x01>; + + gic-its@30820000 { + compatible = "arm,gic-v3-its"; + msi-controller; + reg = <0x00 0x30820000 0x00 0x20000>; + phandle = <0x0f>; + }; + }; + + pmu { + compatible = "arm,armv8-pmuv3"; + interrupts = <0x01 0x07 0x08>; + }; + + timer { + compatible = "arm,armv8-timer"; + interrupts = <0x01 0x0d 0x08 0x01 0x0e 0x08 0x01 0x0b 0x08 0x01 0x0a 0x08>; + clock-frequency = <0x2faf080>; + }; + + clocks { + #address-cells = <0x02>; + #size-cells = <0x02>; + ranges; + + clk48mhz { + compatible = "fixed-clock"; + #clock-cells = <0x00>; + clock-frequency = <0x2dc6c00>; + phandle = <0x13>; + }; + + clk50mhz { + compatible = "fixed-clock"; + #clock-cells = <0x00>; + clock-frequency = <0x2faf080>; + phandle = <0x0d>; + }; + + clk100mhz { + compatible = "fixed-clock"; + #clock-cells = <0x00>; + clock-frequency = <0x5f5e100>; + phandle = <0x0c>; + }; + + clk200mhz { + compatible = "fixed-clock"; + #clock-cells = <0x00>; + clock-frequency = <0xbebc200>; + phandle = <0x11>; + }; + + clk250mhz { + compatible = "fixed-clock"; + #clock-cells = <0x00>; + clock-frequency = <0xee6b280>; + phandle = <0x12>; + }; + + clk300mhz { + compatible = "fixed-clock"; + #clock-cells = <0x00>; + clock-frequency = <0x11e1a300>; + phandle = <0x0b>; + }; + + clk600mhz { + compatible = "fixed-clock"; + #clock-cells = <0x00>; + clock-frequency = <0x23c34600>; + phandle = <0x0e>; + }; + + clk1200mhz { + compatible = "fixed-clock"; + #clock-cells = <0x00>; + clock-frequency = <0x47868c00>; + phandle = <0x0a>; + }; + }; + + iommu@30000000 { + compatible = "arm,smmu-v3"; + reg = <0x00 0x30000000 0x00 0x800000>; + interrupts = <0x00 0xf0 0x01 0x00 0xef 0x01 0x00 0xec 0x01 0x00 0xf2 0x01>; + interrupt-names = "eventq\0priq\0cmdq-sync\0gerror"; + dma-coherent; + #iommu-cells = <0x01>; + phandle = <0x10>; + }; + + soc { + compatible = "simple-bus"; + #address-cells = <0x02>; + #size-cells = <0x02>; + dma-coherent; + ranges; + + mmc@28000000 { + compatible = "phytium,mci"; + reg = <0x00 0x28000000 0x00 0x1000>; + interrupts = <0x00 0x48 0x04>; + clocks = <0x0a>; + clock-names = "phytium_mci_clk"; + status = "disabled"; + bus-width = <0x04>; + max-frequency = <0x2faf080>; + cap-sdio-irq; + cap-sd-highspeed; + no-mmc; + }; + + mmc@28001000 { + compatible = "phytium,mci"; + reg = <0x00 0x28001000 0x00 0x1000>; + interrupts = <0x00 0x49 0x04>; + clocks = <0x0a>; + clock-names = "phytium_mci_clk"; + status = "disabled"; + bus-width = <0x04>; + max-frequency = <0x2faf080>; + cap-sdio-irq; + cap-sd-highspeed; + no-mmc; + no-sd; + non-removable; + }; + + nand@28002000 { + compatible = "phytium,nfc"; + reg = <0x00 0x28002000 0x00 0x1000>; + interrupts = <0x00 0x4a 0x04>; + status = "disabled"; + }; + + ddma@28003000 { + compatible = "phytium,ddma"; + reg = <0x00 0x28003000 0x00 0x1000>; + interrupts = <0x00 0x4b 0x04>; + #dma-cells = <0x02>; + dma-channels = <0x08>; + }; + + ddma@28004000 { + compatible = "phytium,ddma"; + reg = <0x00 0x28004000 0x00 0x1000>; + interrupts = <0x00 0x4c 0x04>; + #dma-cells = <0x02>; + dma-channels = <0x08>; + }; + + spi@28008000 { + compatible = "phytium,qspi-nor"; + reg = <0x00 0x28008000 0x00 0x1000 0x00 0x00 0x00 0xfffffff>; + reg-names = "qspi\0qspi_mm"; + clocks = <0x0b>; + status = "okay"; + #address-cells = <0x01>; + #size-cells = <0x00>; + + flash@0 { + compatible = "jedec,spi-nor"; + reg = <0x00>; + spi-rx-bus-width = <0x01>; + spi-max-frequency = <0x1312d00>; + status = "okay"; + }; + }; + + uart@2800c000 { + compatible = "arm,pl011\0arm,primecell"; + reg = <0x00 0x2800c000 0x00 0x1000>; + interrupts = <0x00 0x53 0x04>; + clocks = <0x0c 0x0c>; + clock-names = "uartclk\0apb_pclk"; + status = "okay"; + }; + + uart@2800d000 { + compatible = "arm,pl011\0arm,primecell"; + reg = <0x00 0x2800d000 0x00 0x1000>; + interrupts = <0x00 0x54 0x04>; + clocks = <0x0c 0x0c>; + clock-names = "uartclk\0apb_pclk"; + status = "okay"; + }; + + uart@2800e000 { + compatible = "arm,pl011\0arm,primecell"; + reg = <0x00 0x2800e000 0x00 0x1000>; + interrupts = <0x00 0x55 0x04>; + clocks = <0x0c 0x0c>; + clock-names = "uartclk\0apb_pclk"; + status = "okay"; + }; + + uart@2800f000 { + compatible = "arm,pl011\0arm,primecell"; + reg = <0x00 0x2800f000 0x00 0x1000>; + interrupts = <0x00 0x56 0x04>; + clocks = <0x0c 0x0c>; + clock-names = "uartclk\0apb_pclk"; + status = "okay"; + }; + + lpc@28010000 { + compatible = "simple-mfd\0syscon"; + reg = <0x00 0x28010000 0x00 0x1000>; + reg-io-width = <0x04>; + #address-cells = <0x01>; + #size-cells = <0x01>; + ranges = <0x00 0x00 0x28010000 0x1000>; + + kcs@24 { + compatible = "phytium,kcs-bmc"; + reg = <0x24 0x01 0x30 0x01 0x3c 0x01>; + interrupts = <0x00 0x58 0x04>; + status = "disabled"; + }; + + kcs@28 { + compatible = "phytium,kcs-bmc"; + reg = <0x28 0x01 0x34 0x01 0x40 0x01>; + interrupts = <0x00 0x58 0x04>; + status = "disabled"; + }; + + kcs@2c { + compatible = "phytium,kcs-bmc"; + reg = <0x2c 0x01 0x38 0x01 0x44 0x01>; + interrupts = <0x00 0x58 0x04>; + status = "disabled"; + }; + + kcs@8c { + compatible = "phytium,kcs-bmc"; + reg = <0x8c 0x01 0x90 0x01 0x94 0x01>; + interrupts = <0x00 0x58 0x04>; + status = "disabled"; + }; + + bt@48 { + compatible = "phytium,bt-bmc"; + reg = <0x48 0x20>; + interrupts = <0x00 0x58 0x04>; + status = "disabled"; + }; + }; + + gpio@28034000 { + compatible = "phytium,gpio"; + reg = <0x00 0x28034000 0x00 0x1000>; + interrupts = <0x00 0x6c 0x04 0x00 0x6d 0x04 0x00 0x6e 0x04 0x00 0x6f 0x04 0x00 0x70 0x04 0x00 0x71 0x04 0x00 0x72 0x04 0x00 0x73 0x04 0x00 0x74 0x04 0x00 0x75 0x04 0x00 0x76 0x04 0x00 0x77 0x04 0x00 0x78 0x04 0x00 0x79 0x04 0x00 0x7a 0x04 0x00 0x7b 0x04>; + gpio-controller; + #gpio-cells = <0x02>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "okay"; + + porta { + compatible = "phytium,gpio-port"; + reg = <0x00>; + ngpios = <0x10>; + }; + }; + + gpio@28035000 { + compatible = "phytium,gpio"; + reg = <0x00 0x28035000 0x00 0x1000>; + interrupts = <0x00 0x7c 0x04 0x00 0x7d 0x04 0x00 0x7e 0x04 0x00 0x7f 0x04 0x00 0x80 0x04 0x00 0x81 0x04 0x00 0x82 0x04 0x00 0x83 0x04 0x00 0x84 0x04 0x00 0x85 0x04 0x00 0x86 0x04 0x00 0x87 0x04 0x00 0x88 0x04 0x00 0x89 0x04 0x00 0x8a 0x04 0x00 0x8b 0x04>; + gpio-controller; + #gpio-cells = <0x02>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "okay"; + phandle = <0x14>; + + porta { + compatible = "phytium,gpio-port"; + reg = <0x00>; + ngpios = <0x10>; + }; + }; + + gpio@28036000 { + compatible = "phytium,gpio"; + reg = <0x00 0x28036000 0x00 0x1000>; + interrupts = <0x00 0x8c 0x04 0x00 0x8d 0x04 0x00 0x8e 0x04 0x00 0x8f 0x04 0x00 0x90 0x04 0x00 0x91 0x04 0x00 0x92 0x04 0x00 0x93 0x04 0x00 0x94 0x04 0x00 0x95 0x04 0x00 0x96 0x04 0x00 0x97 0x04 0x00 0x98 0x04 0x00 0x99 0x04 0x00 0x9a 0x04 0x00 0x9b 0x04>; + gpio-controller; + #gpio-cells = <0x02>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "okay"; + phandle = <0x15>; + + porta { + compatible = "phytium,gpio-port"; + reg = <0x00>; + ngpios = <0x10>; + }; + }; + + gpio@28037000 { + compatible = "phytium,gpio"; + reg = <0x00 0x28037000 0x00 0x1000>; + interrupts = <0x00 0x9c 0x04>; + gpio-controller; + #gpio-cells = <0x02>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "okay"; + + porta { + compatible = "phytium,gpio-port"; + reg = <0x00>; + ngpios = <0x10>; + }; + }; + + gpio@28038000 { + compatible = "phytium,gpio"; + reg = <0x00 0x28038000 0x00 0x1000>; + interrupts = <0x00 0x9d 0x04>; + gpio-controller; + #gpio-cells = <0x02>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "okay"; + + porta { + compatible = "phytium,gpio-port"; + reg = <0x00>; + ngpios = <0x10>; + }; + }; + + gpio@28039000 { + compatible = "phytium,gpio"; + reg = <0x00 0x28039000 0x00 0x1000>; + interrupts = <0x00 0x9e 0x04>; + gpio-controller; + #gpio-cells = <0x02>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "okay"; + + porta { + compatible = "phytium,gpio-port"; + reg = <0x00>; + ngpios = <0x10>; + }; + }; + + spi@2803a000 { + compatible = "phytium,spi"; + reg = <0x00 0x2803a000 0x00 0x1000>; + interrupts = <0x00 0x9f 0x04>; + clocks = <0x0d>; + num-cs = <0x04>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "okay"; + global-cs = <0x01>; + + spidev@0 { + compatible = "spidev"; + reg = <0x00>; + spi-max-frequency = <0x2faf080>; + status = "disabled"; + }; + }; + + spi@2803b000 { + compatible = "phytium,spi"; + reg = <0x00 0x2803b000 0x00 0x1000>; + interrupts = <0x00 0xa0 0x04>; + clocks = <0x0d>; + num-cs = <0x04>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "disabled"; + }; + + spi@2803c000 { + compatible = "phytium,spi"; + reg = <0x00 0x2803c000 0x00 0x1000>; + interrupts = <0x00 0xa1 0x04>; + clocks = <0x0d>; + num-cs = <0x04>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "disabled"; + }; + + spi@2803d000 { + compatible = "phytium,spi"; + reg = <0x00 0x2803d000 0x00 0x1000>; + interrupts = <0x00 0xa2 0x04>; + clocks = <0x0d>; + num-cs = <0x04>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "disabled"; + }; + + watchdog@28040000 { + compatible = "arm,sbsa-gwdt"; + reg = <0x00 0x28041000 0x00 0x1000 0x00 0x28040000 0x00 0x1000>; + interrupts = <0x00 0xa4 0x04>; + timeout-sec = <0x1e>; + status = "okay"; + }; + + watchdog@28042000 { + compatible = "arm,sbsa-gwdt"; + reg = <0x00 0x28043000 0x00 0x1000 0x00 0x28042000 0x00 0x1000>; + interrupts = <0x00 0xa5 0x04>; + timeout-sec = <0x1e>; + status = "okay"; + }; + + pwm@2804a000 { + compatible = "phytium,pwm"; + reg = <0x00 0x2804a000 0x00 0x1000>; + interrupts = <0x00 0xad 0x04>; + clocks = <0x0d>; + status = "okay"; + phytium,db = <0x00 0x00 0x64 0x3e8 0x3e8 0x00>; + }; + + pwm@2804b000 { + compatible = "phytium,pwm"; + reg = <0x00 0x2804b000 0x00 0x1000>; + interrupts = <0x00 0xae 0x04>; + clocks = <0x0d>; + status = "okay"; + phytium,db = <0x00 0x00 0x64 0x3e8 0x3e8 0x00>; + }; + + tacho@28054000 { + compatible = "phytium,tacho"; + reg = <0x00 0x28054000 0x00 0x1000>; + interrupts = <0x00 0xc2 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@28055000 { + compatible = "phytium,tacho"; + reg = <0x00 0x28055000 0x00 0x1000>; + interrupts = <0x00 0xc3 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@28056000 { + compatible = "phytium,tacho"; + reg = <0x00 0x28056000 0x00 0x1000>; + interrupts = <0x00 0xc4 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@28057000 { + compatible = "phytium,tacho"; + reg = <0x00 0x28057000 0x00 0x1000>; + interrupts = <0x00 0xc5 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@28058000 { + compatible = "phytium,tacho"; + reg = <0x00 0x28058000 0x00 0x1000>; + interrupts = <0x00 0xc6 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@28059000 { + compatible = "phytium,tacho"; + reg = <0x00 0x28059000 0x00 0x1000>; + interrupts = <0x00 0xc7 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@2805a000 { + compatible = "phytium,tacho"; + reg = <0x00 0x2805a000 0x00 0x1000>; + interrupts = <0x00 0xc8 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@2805b000 { + compatible = "phytium,tacho"; + reg = <0x00 0x2805b000 0x00 0x1000>; + interrupts = <0x00 0xc9 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@2805c000 { + compatible = "phytium,tacho"; + reg = <0x00 0x2805c000 0x00 0x1000>; + interrupts = <0x00 0xca 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@2805d000 { + compatible = "phytium,tacho"; + reg = <0x00 0x2805d000 0x00 0x1000>; + interrupts = <0x00 0xcb 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@2805e000 { + compatible = "phytium,tacho"; + reg = <0x00 0x2805e000 0x00 0x1000>; + interrupts = <0x00 0xcc 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@2805f000 { + compatible = "phytium,tacho"; + reg = <0x00 0x2805f000 0x00 0x1000>; + interrupts = <0x00 0xcd 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@28060000 { + compatible = "phytium,tacho"; + reg = <0x00 0x28060000 0x00 0x1000>; + interrupts = <0x00 0xce 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@28061000 { + compatible = "phytium,tacho"; + reg = <0x00 0x28061000 0x00 0x1000>; + interrupts = <0x00 0xcf 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@28062000 { + compatible = "phytium,tacho"; + reg = <0x00 0x28062000 0x00 0x1000>; + interrupts = <0x00 0xd0 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@28063000 { + compatible = "phytium,tacho"; + reg = <0x00 0x28063000 0x00 0x1000>; + interrupts = <0x00 0xd1 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@28064000 { + compatible = "phytium,tacho"; + reg = <0x00 0x28064000 0x00 0x1000>; + interrupts = <0x00 0xd2 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@28065000 { + compatible = "phytium,tacho"; + reg = <0x00 0x28065000 0x00 0x1000>; + interrupts = <0x00 0xd3 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@28066000 { + compatible = "phytium,tacho"; + reg = <0x00 0x28066000 0x00 0x1000>; + interrupts = <0x00 0xd4 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@28067000 { + compatible = "phytium,tacho"; + reg = <0x00 0x28067000 0x00 0x1000>; + interrupts = <0x00 0xd5 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@28068000 { + compatible = "phytium,tacho"; + reg = <0x00 0x28068000 0x00 0x1000>; + interrupts = <0x00 0xd6 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@28069000 { + compatible = "phytium,tacho"; + reg = <0x00 0x28069000 0x00 0x1000>; + interrupts = <0x00 0xd7 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@2806a000 { + compatible = "phytium,tacho"; + reg = <0x00 0x2806a000 0x00 0x1000>; + interrupts = <0x00 0xd8 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@2806b000 { + compatible = "phytium,tacho"; + reg = <0x00 0x2806b000 0x00 0x1000>; + interrupts = <0x00 0xd9 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@2806c000 { + compatible = "phytium,tacho"; + reg = <0x00 0x2806c000 0x00 0x1000>; + interrupts = <0x00 0xda 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@2806d000 { + compatible = "phytium,tacho"; + reg = <0x00 0x2806d000 0x00 0x1000>; + interrupts = <0x00 0xdb 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@2806e000 { + compatible = "phytium,tacho"; + reg = <0x00 0x2806e000 0x00 0x1000>; + interrupts = <0x00 0xdc 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@2806f000 { + compatible = "phytium,tacho"; + reg = <0x00 0x2806f000 0x00 0x1000>; + interrupts = <0x00 0xdd 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@28070000 { + compatible = "phytium,tacho"; + reg = <0x00 0x28070000 0x00 0x1000>; + interrupts = <0x00 0xde 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@28071000 { + compatible = "phytium,tacho"; + reg = <0x00 0x28071000 0x00 0x1000>; + interrupts = <0x00 0xdf 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@28072000 { + compatible = "phytium,tacho"; + reg = <0x00 0x28072000 0x00 0x1000>; + interrupts = <0x00 0xe0 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@28073000 { + compatible = "phytium,tacho"; + reg = <0x00 0x28073000 0x00 0x1000>; + interrupts = <0x00 0xe1 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@28074000 { + compatible = "phytium,tacho"; + reg = <0x00 0x28074000 0x00 0x1000>; + interrupts = <0x00 0xe2 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@28075000 { + compatible = "phytium,tacho"; + reg = <0x00 0x28075000 0x00 0x1000>; + interrupts = <0x00 0xe3 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@28076000 { + compatible = "phytium,tacho"; + reg = <0x00 0x28076000 0x00 0x1000>; + interrupts = <0x00 0xe4 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@28077000 { + compatible = "phytium,tacho"; + reg = <0x00 0x28077000 0x00 0x1000>; + interrupts = <0x00 0xe5 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@28078000 { + compatible = "phytium,tacho"; + reg = <0x00 0x28078000 0x00 0x1000>; + interrupts = <0x00 0xe6 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + tacho@28079000 { + compatible = "phytium,tacho"; + reg = <0x00 0x28079000 0x00 0x1000>; + interrupts = <0x00 0xe7 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + usb2@31800000 { + compatible = "phytium,usb2"; + reg = <0x00 0x31800000 0x00 0x80000 0x00 0x31990000 0x00 0x10000>; + interrupts = <0x00 0x20 0x04>; + status = "okay"; + dr_mode = "host"; + }; + + usb2@31880000 { + compatible = "phytium,usb2"; + reg = <0x00 0x31880000 0x00 0x80000 0x00 0x319a0000 0x00 0x10000>; + interrupts = <0x00 0x21 0x04>; + status = "disabled"; + dr_mode = "peripheral"; + }; + + usb2@31900000 { + compatible = "phytium,usb2"; + reg = <0x00 0x31900000 0x00 0x80000 0x00 0x319b0000 0x00 0x10000>; + interrupts = <0x00 0x22 0x04>; + status = "disabled"; + dr_mode = "peripheral"; + }; + + usb2@32800000 { + compatible = "phytium,usb2"; + reg = <0x00 0x32800000 0x00 0x40000 0x00 0x32880000 0x00 0x40000>; + interrupts = <0x00 0x0e 0x04>; + status = "okay"; + dr_mode = "host"; + }; + + usb2@32840000 { + compatible = "phytium,usb2"; + reg = <0x00 0x32840000 0x00 0x40000 0x00 0x328c0000 0x00 0x40000>; + interrupts = <0x00 0x0f 0x04>; + status = "okay"; + dr_mode = "host"; + }; + + dc@32000000 { + compatible = "phytium,dc"; + reg = <0x00 0x32000000 0x00 0x8000>; + interrupts = <0x00 0x2c 0x04>; + status = "okay"; + pipe_mask = [01]; + edp_mask = [00]; + }; + + i2s_dp0@32009000 { + compatible = "phytium,i2s"; + reg = <0x00 0x32009000 0x00 0x1000 0x00 0x32008000 0x00 0x1000>; + interrupts = <0x00 0x2f 0x04>; + clocks = <0x0e>; + clock-names = "i2s_clk"; + dai-name = "phytium-i2s-dp0"; + status = "okay"; + }; + + i2s_dp1@3200B000 { + compatible = "phytium,i2s"; + reg = <0x00 0x3200b000 0x00 0x1000 0x00 0x3200a000 0x00 0x1000>; + interrupts = <0x00 0x30 0x04>; + clocks = <0x0e>; + clock-names = "i2s_clk"; + dai-name = "phytium-i2s-dp1"; + status = "disabled"; + }; + + pmdk_dp { + compatible = "phytium,pmdk-dp"; + status = "okay"; + num-dp = <0x01>; + dp-mask = [01]; + }; + + mailbox@32a00000 { + compatible = "phytium,mbox"; + reg = <0x00 0x32a00000 0x00 0x1000>; + interrupts = <0x00 0x16 0x04>; + #mbox-cells = <0x01>; + phandle = <0x02>; + }; + + rng@32a36000 { + compatible = "phytium,rng"; + reg = <0x00 0x32a36000 0x00 0x1000>; + status = "okay"; + }; + + sram@32a10000 { + compatible = "phytium,pe220x-sram-ns\0mmio-sram"; + reg = <0x00 0x32a10000 0x00 0x2000>; + #address-cells = <0x01>; + #size-cells = <0x01>; + ranges = <0x00 0x00 0x32a10000 0x2000>; + + scp-shmem@0 { + compatible = "arm,scmi-shmem"; + reg = <0x1000 0x400>; + }; + + scp-shmem@1 { + compatible = "arm,scmi-shmem"; + reg = <0x1400 0x400>; + phandle = <0x03>; + }; + }; + + gdma@32b34000 { + compatible = "phytium,gdma"; + dma-channels = <0x10>; + max-outstanding = <0x10>; + reg = <0x00 0x32b34000 0x00 0x1000>; + interrupts = <0x00 0xea 0x04>; + #dma-cells = <0x01>; + }; + + spinlock@32b36000 { + compatible = "phytium,hwspinlock"; + reg = <0x00 0x32b36000 0x00 0x1000>; + #hwlock-cells = <0x01>; + nr-locks = <0x20>; + status = "disabled"; + }; + + pcie@40000000 { + compatible = "pci-host-ecam-generic"; + device_type = "pci"; + #address-cells = <0x03>; + #size-cells = <0x02>; + #interrupt-cells = <0x01>; + reg = <0x00 0x40000000 0x00 0x10000000>; + msi-parent = <0x0f>; + bus-range = <0x00 0xff>; + interrupt-map-mask = <0x00 0x00 0x00 0x07>; + interrupt-map = <0x00 0x00 0x00 0x01 0x01 0x00 0x00 0x00 0x04 0x04 0x00 0x00 0x00 0x02 0x01 0x00 0x00 0x00 0x05 0x04 0x00 0x00 0x00 0x03 0x01 0x00 0x00 0x00 0x06 0x04 0x00 0x00 0x00 0x04 0x01 0x00 0x00 0x00 0x07 0x04>; + ranges = <0x1000000 0x00 0x00 0x00 0x50000000 0x00 0xf00000 0x2000000 0x00 0x58000000 0x00 0x58000000 0x00 0x28000000 0x3000000 0x10 0x00 0x10 0x00 0x10 0x00>; + iommu-map = <0x00 0x10 0x00 0x10000>; + status = "okay"; + }; + + edac@32b28000 { + compatible = "phytium,pe220x-edac"; + reg = <0x00 0x32b28000 0x00 0x1000 0x00 0x31400000 0x00 0x1000 0x00 0x31401000 0x00 0x1000>; + interrupts = <0x00 0x00 0x04 0x00 0x01 0x04>; + status = "disabled"; + }; + + hda@28006000 { + compatible = "phytium,hda"; + reg = <0x00 0x28006000 0x00 0x1000>; + interrupts = <0x00 0x4e 0x04>; + status = "disabled"; + }; + + i2s@28009000 { + compatible = "phytium,i2s"; + reg = <0x00 0x28009000 0x00 0x1000 0x00 0x28005000 0x00 0x1000>; + interrupts = <0x00 0x4d 0x04>; + clocks = <0x0e>; + clock-names = "i2s_clk"; + status = "okay"; + #sound-dai-cells = <0x00>; + dai-name = "phytium-i2s-lsd"; + phandle = <0x16>; + }; + + can@2800a000 { + compatible = "phytium,canfd"; + reg = <0x00 0x2800a000 0x00 0x1000>; + interrupts = <0x00 0x51 0x04>; + clocks = <0x11>; + clock-names = "can_clk"; + tx-fifo-depth = <0x40>; + rx-fifo-depth = <0x40>; + status = "okay"; + }; + + can@2800b000 { + compatible = "phytium,canfd"; + reg = <0x00 0x2800b000 0x00 0x1000>; + interrupts = <0x00 0x52 0x04>; + clocks = <0x11>; + clock-names = "can_clk"; + tx-fifo-depth = <0x40>; + rx-fifo-depth = <0x40>; + status = "okay"; + }; + + keypad@2807a000 { + compatible = "phytium,keypad"; + reg = <0x00 0x2807a000 0x00 0x1000>; + interrupts = <0x00 0xbd 0x04>; + clocks = <0x0d>; + status = "disabled"; + }; + + usb3@31a08000 { + compatible = "phytium,pe220x-xhci"; + reg = <0x00 0x31a08000 0x00 0x18000>; + interrupts = <0x00 0x10 0x04>; + status = "okay"; + }; + + usb3@31a28000 { + compatible = "phytium,pe220x-xhci"; + reg = <0x00 0x31a28000 0x00 0x18000>; + interrupts = <0x00 0x11 0x04>; + status = "okay"; + }; + + sata@31a40000 { + compatible = "generic-ahci"; + reg = <0x00 0x31a40000 0x00 0x1000>; + interrupts = <0x00 0x2a 0x04>; + status = "okay"; + }; + + sata@32014000 { + compatible = "generic-ahci"; + reg = <0x00 0x32014000 0x00 0x1000>; + interrupts = <0x00 0x2b 0x04>; + status = "okay"; + }; + + ethernet@3200c000 { + compatible = "cdns,phytium-gem-1.0"; + reg = <0x00 0x3200c000 0x00 0x2000>; + interrupts = <0x00 0x37 0x04 0x00 0x38 0x04 0x00 0x39 0x04 0x00 0x3a 0x04 0x00 0x1c 0x04 0x00 0x1d 0x04 0x00 0x1e 0x04 0x00 0x1f 0x04>; + clock-names = "pclk\0hclk\0tx_clk\0tsu_clk"; + clocks = <0x12 0x13 0x13 0x12>; + magic-packet; + support-tsn; + status = "okay"; + phy-mode = "sgmii"; + use-mii; + }; + + ethernet@3200e000 { + compatible = "cdns,phytium-gem-1.0"; + reg = <0x00 0x3200e000 0x00 0x2000>; + interrupts = <0x00 0x3b 0x04 0x00 0x3c 0x04 0x00 0x3d 0x04 0x00 0x3e 0x04>; + clock-names = "pclk\0hclk\0tx_clk\0tsu_clk"; + clocks = <0x12 0x13 0x13 0x12>; + magic-packet; + status = "okay"; + phy-mode = "sgmii"; + use-mii; + }; + + ethernet@32010000 { + compatible = "cdns,phytium-gem-1.0"; + reg = <0x00 0x32010000 0x00 0x2000>; + interrupts = <0x00 0x40 0x04 0x00 0x41 0x04 0x00 0x42 0x04 0x00 0x43 0x04>; + clock-names = "pclk\0hclk\0tx_clk\0tsu_clk"; + clocks = <0x12 0x13 0x13 0x12>; + magic-packet; + status = "disabled"; + }; + + ethernet@32012000 { + compatible = "cdns,phytium-gem-1.0"; + reg = <0x00 0x32012000 0x00 0x2000>; + interrupts = <0x00 0x44 0x04 0x00 0x45 0x04 0x00 0x46 0x04 0x00 0x47 0x04>; + clock-names = "pclk\0hclk\0tx_clk\0tsu_clk"; + clocks = <0x12 0x13 0x13 0x12>; + magic-packet; + status = "disabled"; + }; + + vpu@32b00000 { + compatible = "phytium,vpu"; + reg = <0x00 0x32b00000 0x00 0x20000>; + interrupts = <0x00 0x0c 0x04>; + status = "okay"; + }; + + i2c@28026000 { + compatible = "phytium,i2c"; + reg = <0x00 0x28026000 0x00 0x1000>; + interrupts = <0x00 0x65 0x04>; + clocks = <0x0d>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "okay"; + }; + + i2c@28030000 { + compatible = "phytium,i2c"; + reg = <0x00 0x28030000 0x00 0x1000>; + interrupts = <0x00 0x6a 0x04>; + clocks = <0x0d>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "okay"; + + es8336@10 { + #sound-dai-cells = <0x00>; + compatible = "everest,es8336"; + reg = <0x10>; + phandle = <0x17>; + }; + }; + + uart@28014000 { + compatible = "arm,pl011\0arm,primecell"; + reg = <0x00 0x28014000 0x00 0x1000>; + interrupts = <0x00 0x5c 0x04>; + clocks = <0x0d 0x0d>; + clock-names = "uartclk\0apb_pclk"; + status = "okay"; + }; + + i2c@28016000 { + compatible = "phytium,i2c"; + reg = <0x00 0x28016000 0x00 0x1000>; + interrupts = <0x00 0x5d 0x04>; + clocks = <0x0d>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "okay"; + }; + + i2c@28024000 { + compatible = "phytium,i2c"; + reg = <0x00 0x28024000 0x00 0x1000>; + interrupts = <0x00 0x64 0x04>; + clocks = <0x0d>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "okay"; + }; + + uart@2802A000 { + compatible = "arm,pl011\0arm,primecell"; + reg = <0x00 0x2802a000 0x00 0x1000>; + interrupts = <0x00 0x67 0x04>; + clocks = <0x0d 0x0d>; + clock-names = "uartclk\0apb_pclk"; + status = "okay"; + }; + + uart@28032000 { + compatible = "arm,pl011\0arm,primecell"; + reg = <0x00 0x28032000 0x00 0x1000>; + interrupts = <0x00 0x6b 0x04>; + clocks = <0x0d 0x0d>; + clock-names = "uartclk\0apb_pclk"; + status = "okay"; + }; + }; + + chosen { + bootargs = "console=ttyAMA1,115200 earlycon=pl011,0x2800d000 rootwait fsckfix root=/dev/sda2 rw cma=256m ;"; + stdout-path = "serial1:115200n8"; + }; + + memory { + device_type = "memory"; + reg = <0x20 0x40000000 0x00 0x40000000>; + }; + + leds { + compatible = "gpio-leds"; + + sysled { + label = "sysled"; + gpios = <0x14 0x05 0x00>; + linux,default-trigger = "none"; + }; + }; + + sound { + compatible = "simple-audio-card"; + simple-audio-card,format = "i2s"; + simple-audio-card,name = "phytium,pe220x-i2s-audio"; + simple-audio-card,pin-switches = "mic-in"; + simple-audio-card,widgets = "Microphone\0mic-in\0Headphone\0Headphones"; + simple-audio-card,routing = "MIC2\0mic-in"; + simple-audio-card,hp-det-gpio = <0x15 0x0b 0x01>; + + simple-audio-card,cpu { + sound-dai = <0x16>; + }; + + simple-audio-card,codec { + sound-dai = <0x17>; + }; + }; +}; diff --git a/configs/vms/linux-aarch64-tac_e400-smp1.toml b/configs/vms/linux-aarch64-tac_e400-smp1.toml new file mode 100644 index 00000000..7ee15e05 --- /dev/null +++ b/configs/vms/linux-aarch64-tac_e400-smp1.toml @@ -0,0 +1,114 @@ +# Vm base info configs +# +[base] +# Guest vm id. +id = 1 +# Guest vm name. +name = "linux" +# Virtualization type. +vm_type = 1 +# The number of virtual CPUs. +cpu_num = 1 +# The physical CPU ids. +phys_cpu_ids = [0x100] +# Guest vm physical cpu sets. +phys_cpu_sets = [8] + +# +# Vm kernel configs +# +[kernel] +# The entry point of the kernel image. +entry_point = 0x20_4008_0000 +# The location of image: "memory" | "fs". +# Load from file system. +image_location = "memory" +# The load address of the kernel image. +kernel_load_addr = 0x20_4008_0000 +## The file path of the kernel image. +kernel_path = "/path/to/Image" +## The file path of the device tree blob (DTB). +dtb_load_addr = 0x20_4000_0000 +dtb_path = "/path/to/linux-aarch64-e2000_smp1.dtb" +# Memory regions with format (`base_paddr`, `size`, `flags`, `map_type`). +# For `map_type`, 0 means `MAP_ALLOC`, 1 means `MAP_IDENTICAL`. +memory_regions = [ + [0x20_4000_0000, 0x4000_0000, 0x7, 1], # System RAM MAP_IDENTICAL +] + +# +# Device specifications +# +[devices] +# Emu_devices. +# Name Base-Ipa Ipa_len Alloc-Irq Emu-Type EmuConfig. +interrupt_mode = "passthrough" +emu_devices = [] + +# Pass-through devices. +# Name Base-Ipa Base-Pa Length Alloc-Irq. +passthrough_devices = [ + [ + "QSPI", + 0x0000_0000, + 0x0000_0000, + 0x1000_0000, + 0x1, + ], + [ + "LocalBus", + 0x1000_0000, + 0x1000_0000, + 0x1000_0000, + 0x1, + ], + [ + "low speed peripherals", + 0x2800_0000, + 0x2800_0000, + 0x0800_0000, + 0x1, + ], + [ + "other peripherals", + 0x3000_0000, + 0x3000_0000, + 0x0800_0000, + 0x1, + ], + [ + "IACC", + 0x3800_0000, + 0x3800_0000, + 0x0800_0000, + 0x1, + ], + [ + "PCIE", + 0x4000_0000, + 0x4000_0000, + 0x4000_0000, + 0x1, + ], + [ + "QSPI high address", + 0x01_0000_0000, + 0x01_0000_0000, + 0x8000_0000, + 0x1, + ], + [ + "LocalBus high address", + 0x01_8000_0000, + 0x01_8000_0000, + 0x8000_0000, + 0x1, + ], + [ + "PCIe MEM64", + 0x10_0000_0000, + 0x10_0000_0000, + 0x01_0000_0000, + 0x1, + ], +] From 262f778c04d6fd33e8c76ae3a69c4f5a3888c28d Mon Sep 17 00:00:00 2001 From: ZCShou Date: Thu, 18 Sep 2025 14:30:19 +0800 Subject: [PATCH 207/219] Apply suggestion from @Copilot Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- configs/vms/arceos-aarch64-tac_e400-smp1.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configs/vms/arceos-aarch64-tac_e400-smp1.toml b/configs/vms/arceos-aarch64-tac_e400-smp1.toml index e6a98aa6..c81e7bba 100644 --- a/configs/vms/arceos-aarch64-tac_e400-smp1.toml +++ b/configs/vms/arceos-aarch64-tac_e400-smp1.toml @@ -29,7 +29,7 @@ kernel_load_addr = 0x20_2008_0000 kernel_path = "/path/to/arceos_aarch64-dyn_smp1.bin" ## The file path of the device tree blob (DTB). dtb_load_addr = 0x20_2000_0000 -dtb_path = "/path/to/arceos-aarch64-e2000_smp1.dtb" +dtb_path = "/path/to/arceos-aarch64-tac_e400-smp1.dtb" # Memory regions with format (`base_paddr`, `size`, `flags`, `map_type`). # For `map_type`, 0 means `MAP_ALLOC`, 1 means `MAP_IDENTICAL`. memory_regions = [ From 16458c1d31c3f27dc60efbb8b8849ffdd76ad981 Mon Sep 17 00:00:00 2001 From: ZCShou Date: Thu, 18 Sep 2025 14:30:32 +0800 Subject: [PATCH 208/219] Apply suggestion from @Copilot Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- configs/vms/linux-aarch64-tac_e400-smp1.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configs/vms/linux-aarch64-tac_e400-smp1.toml b/configs/vms/linux-aarch64-tac_e400-smp1.toml index 7ee15e05..107afe64 100644 --- a/configs/vms/linux-aarch64-tac_e400-smp1.toml +++ b/configs/vms/linux-aarch64-tac_e400-smp1.toml @@ -29,7 +29,7 @@ kernel_load_addr = 0x20_4008_0000 kernel_path = "/path/to/Image" ## The file path of the device tree blob (DTB). dtb_load_addr = 0x20_4000_0000 -dtb_path = "/path/to/linux-aarch64-e2000_smp1.dtb" +dtb_path = "/path/to/linux-aarch64-tac_e400-smp1.dtb" # Memory regions with format (`base_paddr`, `size`, `flags`, `map_type`). # For `map_type`, 0 means `MAP_ALLOC`, 1 means `MAP_IDENTICAL`. memory_regions = [ From 3a83b824429d612e6dcca0a10180e4380867a915 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E7=9D=BF?= <34859362+ZR233@users.noreply.github.com> Date: Mon, 22 Sep 2025 16:53:38 +0800 Subject: [PATCH 209/219] fix: somehal on rk3588 (#257) * fix: somehal on rk3588 * chore: update axplat-aarch64-dyn to version 0.1.7 in Cargo.lock and Cargo.toml --- Cargo.lock | 226 ++++++++++++++++------------ platform/aarch64-generic/Cargo.toml | 2 +- 2 files changed, 127 insertions(+), 101 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 6df80b3d..45893a07 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -135,9 +135,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.99" +version = "1.0.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0674a1ddeecb70197781e945de4b3b8ffb61fa939a5597bcf48503737663100" +checksum = "a23eb6b1614318a8071c9b2521f36b424b2c83db5eb3a0fead4a6c0809af6e61" [[package]] name = "arceos_api" @@ -282,9 +282,9 @@ checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" [[package]] name = "axaddrspace" -version = "0.1.1" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e86bea69b4b98f2aba53da737bc4ed996bd9192f8eda0c32022b042b5c74d67" +checksum = "9c4a11ed43c0138f48495f482ee2292f1bfdb270dbccdfa0fb5cf53dc74061cb" dependencies = [ "axerrno", "bit_field", @@ -336,7 +336,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0bf14099a96dbb925e39a44c4f25555f1e24516194452a84a943aa7eda62383d" dependencies = [ "clap", - "toml_edit", + "toml_edit 0.22.27", ] [[package]] @@ -649,8 +649,8 @@ dependencies = [ [[package]] name = "axplat-aarch64-dyn" -version = "0.1.2" -source = "git+https://github.com/arceos-hypervisor/axplat-aarch64-dyn#7fc2d8ebb4ae334e2ee83d33df6d1ac2e988025a" +version = "0.1.7" +source = "git+https://github.com/arceos-hypervisor/axplat-aarch64-dyn?tag=v0.1.7#9b9bca1b79d18ba8bdf2da761f0fe549a8ed57ef" dependencies = [ "aarch64-cpu", "aarch64-cpu-ext", @@ -946,7 +946,7 @@ dependencies = [ "spin 0.9.8", "syn 2.0.106", "timer_list", - "toml 0.9.5", + "toml 0.9.7", "vm-fdt", ] @@ -1010,7 +1010,7 @@ dependencies = [ "log", "serde", "serde_repr", - "toml 0.9.5", + "toml 0.9.7", ] [[package]] @@ -1135,11 +1135,11 @@ checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a" [[package]] name = "camino" -version = "1.1.12" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd0b03af37dad7a14518b7691d81acb0f8222604ad3d1b02f6b4bed5188c0cd5" +checksum = "e1de8bc0aa9e9385ceb3bf0c152e3a9b9544f6c4a912c8ae504e80c1f0368603" dependencies = [ - "serde", + "serde_core", ] [[package]] @@ -1193,9 +1193,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.2.36" +version = "1.2.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5252b3d2648e5eedbc1a6f501e3c795e07025c1e93bbf8bbdd6eef7f447a6d54" +checksum = "80f41ae168f955c12fb8960b057d70d0ca153fb83182b57d86380443527be7e9" dependencies = [ "find-msvc-tools", "shlex", @@ -1218,9 +1218,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.47" +version = "4.5.48" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7eac00902d9d136acd712710d71823fb8ac8004ca445a89e73a41d45aa712931" +checksum = "e2134bb3ea021b78629caa971416385309e0131b351b25e01dc16fb54e1b5fae" dependencies = [ "clap_builder", "clap_derive", @@ -1228,9 +1228,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.47" +version = "4.5.48" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ad9bbf750e73b5884fb8a211a9424a1906c1e156724260fdae972f31d70e1d6" +checksum = "c2ba64afa3c0a6df7fa517765e31314e983f51dda798ffba27b988194fb65dc9" dependencies = [ "anstream", "anstyle", @@ -1457,11 +1457,12 @@ checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" [[package]] name = "erased-serde" -version = "0.4.6" +version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e004d887f51fcb9fef17317a2f3525c887d8aa3f4f50fed920816a688284a5b7" +checksum = "259d404d09818dec19332e31d94558aeb442fea04c817006456c24b5460bbd4b" dependencies = [ "serde", + "serde_core", "typeid", ] @@ -1510,9 +1511,9 @@ dependencies = [ [[package]] name = "find-msvc-tools" -version = "0.1.1" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fd99930f64d146689264c637b5af2f0233a933bef0d8570e2526bf9e083192d" +checksum = "1ced73b1dacfc750a6db6c0a0c3a3853c8b41997e2e2c563dc90804ae6867959" [[package]] name = "flate2" @@ -1663,7 +1664,7 @@ dependencies = [ "cfg-if", "libc", "r-efi", - "wasi 0.14.5+wasi-0.2.4", + "wasi 0.14.7+wasi-0.2.4", ] [[package]] @@ -1737,9 +1738,9 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.15.5" +version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" +checksum = "5419bdc4f6a9207fbeba6d11b604d481addf78ecd10c11ad51e76c2f6482748d" [[package]] name = "heapless" @@ -1928,9 +1929,9 @@ dependencies = [ [[package]] name = "hyper-util" -version = "0.1.16" +version = "0.1.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d9b05277c7e8da2c93a568989bb6207bef0112e8d17df7a6eda4a3cf143bc5e" +checksum = "3c6995591a8f1380fcb4ba966a252a4b29188d51d2b89e3a252f5305be65aea8" dependencies = [ "base64 0.22.1", "bytes", @@ -2067,12 +2068,12 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.11.1" +version = "2.11.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "206a8042aec68fa4a62e8d3f7aa4ceb508177d9324faf261e1959e495b7a1921" +checksum = "4b0f83760fb341a774ed326568e19f5a863af4a952def8c39f9ab92fd95b88e5" dependencies = [ "equivalent", - "hashbrown 0.15.5", + "hashbrown 0.16.0", ] [[package]] @@ -2122,9 +2123,9 @@ checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" [[package]] name = "js-sys" -version = "0.3.78" +version = "0.3.80" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c0b063578492ceec17683ef2f8c5e89121fbd0b172cbc280635ab7567db2738" +checksum = "852f13bec5eba4ba9afbeb93fd7c13fe56147f055939ae21c43a29a0ecb2702e" dependencies = [ "once_cell", "wasm-bindgen", @@ -2188,9 +2189,9 @@ checksum = "6a82ae493e598baaea5209805c49bbf2ea7de956d50d7da0da1164f9c6d28543" [[package]] name = "libredox" -version = "0.1.9" +version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "391290121bad3d37fbddad76d8f5d1c1c314cfc646d143d7e07a3086ddff0ce3" +checksum = "416f7e718bdb06000964960ffa43b4335ad4012ae8b99060261aa4a8088d5ccb" dependencies = [ "bitflags 2.9.4", "libc", @@ -2548,18 +2549,18 @@ dependencies = [ [[package]] name = "pie-boot-if" -version = "0.7.0" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c299ec1afe459d14459b06d621a771ebbbcf5834eb2734075b1837ca54f2e362" +checksum = "3d979b0d1208dd8a57c5adb7d3c4e07bf15cbea3840123e864f6bfcb655c5e05" dependencies = [ "heapless 0.8.0", ] [[package]] name = "pie-boot-loader-aarch64" -version = "0.2.6" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62d5fe5c25c9eec3e30ec44fbaa74ca083a5f6f152d202588ff87609cf48bc2b" +checksum = "de8836eb8759cd65e70c73dc0f519345d8a734284e8e4cfc5889a6e445af9f09" dependencies = [ "aarch64-cpu", "aarch64-cpu-ext", @@ -2639,11 +2640,11 @@ dependencies = [ [[package]] name = "proc-macro-crate" -version = "3.3.0" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edce586971a4dfaa28950c6f18ed55e0406c1ab88bbce2c6f6293a7aaba73d35" +checksum = "219cb19e96be00ab2e37d6e299658a0cfa83e52429179969b0f0121b4ac46983" dependencies = [ - "toml_edit", + "toml_edit 0.23.6", ] [[package]] @@ -3047,9 +3048,9 @@ dependencies = [ [[package]] name = "rust_decimal" -version = "1.37.2" +version = "1.38.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b203a6425500a03e0919c42d3c47caca51e79f1132046626d2c8871c5092035d" +checksum = "c8975fc98059f365204d635119cf9c5a60ae67b841ed49b5422a9a7e56cdfac0" dependencies = [ "arrayvec", "num-traits", @@ -3076,9 +3077,9 @@ dependencies = [ [[package]] name = "rustls" -version = "0.23.31" +version = "0.23.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0ebcbd2f03de0fc1122ad9bb24b127a5a6cd51d72604a3f3c50ac459762b6cc" +checksum = "cd3c25631629d034ce7cd9940adc9d45762d46de2b0f57193c4443b92c6d4d40" dependencies = [ "once_cell", "rustls-pki-types", @@ -3107,9 +3108,9 @@ dependencies = [ [[package]] name = "rustls-webpki" -version = "0.103.5" +version = "0.103.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5a37813727b78798e53c2bec3f5e8fe12a6d6f8389bf9ca7802add4c9905ad8" +checksum = "8572f3c2cb9934231157b45499fc41e1f58c589fdfb81a844ba873265e80f8eb" dependencies = [ "ring", "rustls-pki-types", @@ -3205,30 +3206,33 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.26" +version = "1.0.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56e6fa9c48d24d85fb3de5ad847117517440f6beceb7798af16b4a87d616b8d0" +checksum = "d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2" dependencies = [ "serde", + "serde_core", ] [[package]] name = "serde" -version = "1.0.219" +version = "1.0.226" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6" +checksum = "0dca6411025b24b60bfa7ec1fe1f8e710ac09782dca409ee8237ba74b51295fd" dependencies = [ + "serde_core", "serde_derive", ] [[package]] name = "serde-untagged" -version = "0.1.8" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34836a629bcbc6f1afdf0907a744870039b1e14c0561cb26094fa683b158eff3" +checksum = "f9faf48a4a2d2693be24c6289dbe26552776eb7737074e6722891fadbe6c5058" dependencies = [ "erased-serde", "serde", + "serde_core", "typeid", ] @@ -3242,11 +3246,20 @@ dependencies = [ "serde", ] +[[package]] +name = "serde_core" +version = "1.0.226" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba2ba63999edb9dac981fb34b3e5c0d111a69b0924e253ed29d83f7c99e966a4" +dependencies = [ + "serde_derive", +] + [[package]] name = "serde_derive" -version = "1.0.219" +version = "1.0.226" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" +checksum = "8db53ae22f34573731bafa1db20f04027b2d25e02d8205921b569171699cdb33" dependencies = [ "proc-macro2", "quote", @@ -3255,14 +3268,15 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.143" +version = "1.0.145" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d401abef1d108fbd9cbaebc3e46611f4b1021f714a0597a71f41ee463f5f4a5a" +checksum = "402a6f66d8c709116cf22f558eab210f5a50187f702eb4d7e5ef38d9a7f1c79c" dependencies = [ "itoa", "memchr", "ryu", "serde", + "serde_core", ] [[package]] @@ -3287,11 +3301,11 @@ dependencies = [ [[package]] name = "serde_spanned" -version = "1.0.0" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40734c41988f7306bb04f0ecf60ec0f3f1caa34290e4e8ea471dcd3346483b83" +checksum = "5417783452c2be558477e104686f7de5dae53dba813c28435e0e70f82d9b04ee" dependencies = [ - "serde", + "serde_core", ] [[package]] @@ -3364,9 +3378,9 @@ dependencies = [ [[package]] name = "somehal" -version = "0.3.15" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c761facff5f76229f70721de7f824a3b86d6b3f699efe50a1147c18f71a27a51" +checksum = "f916f4e5297405d4d97788f586927dba290f63e026d6e42486a40d2670f2545c" dependencies = [ "aarch64-cpu", "aarch64-cpu-ext", @@ -3387,7 +3401,7 @@ dependencies = [ "serde", "smccc", "spin 0.10.0", - "toml 0.9.5", + "toml 0.9.7", "url", ] @@ -3686,9 +3700,9 @@ dependencies = [ [[package]] name = "tokio-rustls" -version = "0.26.2" +version = "0.26.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e727b36a1a0e8b74c376ac2211e40c2c8af09fb4013c60d910495810f008e9b" +checksum = "05f63835928ca123f1bef57abbcd23bb2ba0ac9ae1235f1e65bda0d06e7786bd" dependencies = [ "rustls", "tokio", @@ -3716,19 +3730,19 @@ dependencies = [ "serde", "serde_spanned 0.6.9", "toml_datetime 0.6.11", - "toml_edit", + "toml_edit 0.22.27", ] [[package]] name = "toml" -version = "0.9.5" +version = "0.9.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75129e1dc5000bfbaa9fee9d1b21f974f9fbad9daec557a521ee6e080825f6e8" +checksum = "00e5e5d9bf2475ac9d4f0d9edab68cc573dc2fd644b0dba36b0c30a92dd9eaa0" dependencies = [ "indexmap", - "serde", - "serde_spanned 1.0.0", - "toml_datetime 0.7.0", + "serde_core", + "serde_spanned 1.0.2", + "toml_datetime 0.7.2", "toml_parser", "toml_writer", "winnow", @@ -3745,11 +3759,11 @@ dependencies = [ [[package]] name = "toml_datetime" -version = "0.7.0" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bade1c3e902f58d73d3f294cd7f20391c1cb2fbcb643b73566bc773971df91e3" +checksum = "32f1085dec27c2b6632b04c80b3bb1b4300d6495d1e129693bdda7d91e72eec1" dependencies = [ - "serde", + "serde_core", ] [[package]] @@ -3766,11 +3780,23 @@ dependencies = [ "winnow", ] +[[package]] +name = "toml_edit" +version = "0.23.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3effe7c0e86fdff4f69cdd2ccc1b96f933e24811c5441d44904e8683e27184b" +dependencies = [ + "indexmap", + "toml_datetime 0.7.2", + "toml_parser", + "winnow", +] + [[package]] name = "toml_parser" -version = "1.0.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b551886f449aa90d4fe2bdaa9f4a2577ad2dde302c61ecf262d80b116db95c10" +checksum = "4cf893c33be71572e0e9aa6dd15e6677937abd686b066eac3f8cd3531688a627" dependencies = [ "winnow", ] @@ -3783,9 +3809,9 @@ checksum = "5d99f8c9a7727884afe522e9bd5edbfc91a3312b36a77b5fb8926e4c31a41801" [[package]] name = "toml_writer" -version = "1.0.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcc842091f2def52017664b53082ecbbeb5c7731092bad69d2c63050401dfd64" +checksum = "d163a63c116ce562a22cda521fcc4d79152e7aba014456fb5eb442f6d6a10109" [[package]] name = "tower" @@ -3982,27 +4008,27 @@ checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" [[package]] name = "wasi" -version = "0.14.5+wasi-0.2.4" +version = "0.14.7+wasi-0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4494f6290a82f5fe584817a676a34b9d6763e8d9d18204009fb31dceca98fd4" +checksum = "883478de20367e224c0090af9cf5f9fa85bed63a95c1abf3afc5c083ebc06e8c" dependencies = [ "wasip2", ] [[package]] name = "wasip2" -version = "1.0.0+wasi-0.2.4" +version = "1.0.1+wasi-0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03fa2761397e5bd52002cd7e73110c71af2109aca4e521a9f40473fe685b0a24" +checksum = "0562428422c63773dad2c345a1882263bbf4d65cf3f42e90921f787ef5ad58e7" dependencies = [ "wit-bindgen", ] [[package]] name = "wasm-bindgen" -version = "0.2.101" +version = "0.2.103" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e14915cadd45b529bb8d1f343c4ed0ac1de926144b746e2710f9cd05df6603b" +checksum = "ab10a69fbd0a177f5f649ad4d8d3305499c42bab9aef2f7ff592d0ec8f833819" dependencies = [ "cfg-if", "once_cell", @@ -4013,9 +4039,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.101" +version = "0.2.103" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e28d1ba982ca7923fd01448d5c30c6864d0a14109560296a162f80f305fb93bb" +checksum = "0bb702423545a6007bbc368fde243ba47ca275e549c8a28617f56f6ba53b1d1c" dependencies = [ "bumpalo", "log", @@ -4027,9 +4053,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-futures" -version = "0.4.51" +version = "0.4.53" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ca85039a9b469b38336411d6d6ced91f3fc87109a2a27b0c197663f5144dffe" +checksum = "a0b221ff421256839509adbb55998214a70d829d3a28c69b4a6672e9d2a42f67" dependencies = [ "cfg-if", "js-sys", @@ -4040,9 +4066,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.101" +version = "0.2.103" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c3d463ae3eff775b0c45df9da45d68837702ac35af998361e2c84e7c5ec1b0d" +checksum = "fc65f4f411d91494355917b605e1480033152658d71f722a90647f56a70c88a0" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -4050,9 +4076,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.101" +version = "0.2.103" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7bb4ce89b08211f923caf51d527662b75bdc9c9c7aab40f86dcb9fb85ac552aa" +checksum = "ffc003a991398a8ee604a401e194b6b3a39677b3173d6e74495eb51b82e99a32" dependencies = [ "proc-macro2", "quote", @@ -4063,18 +4089,18 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.101" +version = "0.2.103" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f143854a3b13752c6950862c906306adb27c7e839f7414cec8fea35beab624c1" +checksum = "293c37f4efa430ca14db3721dfbe48d8c33308096bd44d80ebaa775ab71ba1cf" dependencies = [ "unicode-ident", ] [[package]] name = "web-sys" -version = "0.3.78" +version = "0.3.80" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77e4b637749ff0d92b8fad63aa1f7cff3cbe125fd49c175cd6345e7272638b12" +checksum = "fbe734895e869dc429d78c4b433f8d17d95f8d05317440b4fad5ab2d33e596dc" dependencies = [ "js-sys", "wasm-bindgen", @@ -4373,9 +4399,9 @@ dependencies = [ [[package]] name = "wit-bindgen" -version = "0.45.1" +version = "0.46.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c573471f125075647d03df72e026074b7203790d41351cd6edc96f46bcccd36" +checksum = "f17a85883d4e6d00e8a97c586de764dabcc06133f7f1d55dce5cdc070ad7fe59" [[package]] name = "writeable" @@ -4465,9 +4491,9 @@ dependencies = [ [[package]] name = "xattr" -version = "1.5.1" +version = "1.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af3a19837351dc82ba89f8a125e22a3c475f05aba604acc023d62b2739ae2909" +checksum = "32e45ad4206f6d2479085147f02bc2ef834ac85886624a23575ae137c8aa8156" dependencies = [ "libc", "rustix", diff --git a/platform/aarch64-generic/Cargo.toml b/platform/aarch64-generic/Cargo.toml index c5ca6b84..a40b9cf9 100644 --- a/platform/aarch64-generic/Cargo.toml +++ b/platform/aarch64-generic/Cargo.toml @@ -4,7 +4,7 @@ name = "axplat-aarch64-generic" version = "0.1.0" [dependencies] -axplat-aarch64-dyn = {git = "https://github.com/arceos-hypervisor/axplat-aarch64-dyn", features = ["irq", "smp", "hv"]} +axplat-aarch64-dyn = {git = "https://github.com/arceos-hypervisor/axplat-aarch64-dyn", tag = "v0.1.7", features = ["irq", "smp", "hv"]} [build-dependencies] serde = {version = "1.0", features = ["derive"]} From 3f6b2fd54f1da619caf8cb2768d133d960a700a3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E7=9D=BF?= <34859362+ZR233@users.noreply.github.com> Date: Wed, 24 Sep 2025 10:17:30 +0800 Subject: [PATCH 210/219] Axplat02 (#258) * refactor: use rdrive 0.18 * use tag --- Cargo.lock | 141 ++++++++++++---------------- Cargo.toml | 5 +- platform/aarch64-generic/Cargo.toml | 2 +- src/hal/arch/aarch64/api.rs | 8 +- src/hal/arch/aarch64/mod.rs | 2 +- 5 files changed, 69 insertions(+), 89 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 45893a07..df99e246 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -142,10 +142,10 @@ checksum = "a23eb6b1614318a8071c9b2521f36b424b2c83db5eb3a0fead4a6c0809af6e61" [[package]] name = "arceos_api" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#1556398efa198d236280dc9b74c3d7ab34d627a1" +source = "git+https://github.com/arceos-hypervisor/arceos.git?tag=hv-0.3.0#f2a2ec32011065116946ede94ed5ea11697230bc" dependencies = [ "axalloc", - "axconfig 0.2.0 (git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor)", + "axconfig 0.2.0 (git+https://github.com/arceos-hypervisor/arceos.git?tag=hv-0.3.0)", "axdriver", "axerrno", "axfeat", @@ -303,7 +303,7 @@ dependencies = [ [[package]] name = "axalloc" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#1556398efa198d236280dc9b74c3d7ab34d627a1" +source = "git+https://github.com/arceos-hypervisor/arceos.git?tag=hv-0.3.0#f2a2ec32011065116946ede94ed5ea11697230bc" dependencies = [ "allocator", "axerrno", @@ -316,7 +316,7 @@ dependencies = [ [[package]] name = "axconfig" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#1556398efa198d236280dc9b74c3d7ab34d627a1" +source = "git+https://github.com/arceos-hypervisor/arceos.git?tag=hv-0.3.0#f2a2ec32011065116946ede94ed5ea11697230bc" dependencies = [ "axconfig-macros", ] @@ -408,23 +408,28 @@ dependencies = [ [[package]] name = "axdriver" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#1556398efa198d236280dc9b74c3d7ab34d627a1" +source = "git+https://github.com/arceos-hypervisor/arceos.git?tag=hv-0.3.0#f2a2ec32011065116946ede94ed5ea11697230bc" dependencies = [ "arm-gic-driver", "axalloc", - "axconfig 0.2.0 (git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor)", + "axconfig 0.2.0 (git+https://github.com/arceos-hypervisor/arceos.git?tag=hv-0.3.0)", "axdriver_base", "axdriver_block", "axdriver_pci", "axdriver_virtio", "axerrno", "axhal", + "axmm", "cfg-if", "crate_interface", + "dma-api", "lazyinit", "log", "memory_addr", + "rdif-block", + "rdif-intc", "rdrive", + "spin 0.10.0", ] [[package]] @@ -471,7 +476,7 @@ dependencies = [ [[package]] name = "axfeat" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#1556398efa198d236280dc9b74c3d7ab34d627a1" +source = "git+https://github.com/arceos-hypervisor/arceos.git?tag=hv-0.3.0#f2a2ec32011065116946ede94ed5ea11697230bc" dependencies = [ "axalloc", "axdriver", @@ -487,7 +492,7 @@ dependencies = [ [[package]] name = "axfs" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#1556398efa198d236280dc9b74c3d7ab34d627a1" +source = "git+https://github.com/arceos-hypervisor/arceos.git?tag=hv-0.3.0#f2a2ec32011065116946ede94ed5ea11697230bc" dependencies = [ "axdriver", "axdriver_block", @@ -541,11 +546,11 @@ dependencies = [ [[package]] name = "axhal" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#1556398efa198d236280dc9b74c3d7ab34d627a1" +source = "git+https://github.com/arceos-hypervisor/arceos.git?tag=hv-0.3.0#f2a2ec32011065116946ede94ed5ea11697230bc" dependencies = [ "aarch64-cpu", "axalloc", - "axconfig 0.2.0 (git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor)", + "axconfig 0.2.0 (git+https://github.com/arceos-hypervisor/arceos.git?tag=hv-0.3.0)", "axcpu", "axlog", "axplat 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -585,7 +590,7 @@ dependencies = [ [[package]] name = "axlog" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#1556398efa198d236280dc9b74c3d7ab34d627a1" +source = "git+https://github.com/arceos-hypervisor/arceos.git?tag=hv-0.3.0#f2a2ec32011065116946ede94ed5ea11697230bc" dependencies = [ "cfg-if", "crate_interface", @@ -596,10 +601,10 @@ dependencies = [ [[package]] name = "axmm" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#1556398efa198d236280dc9b74c3d7ab34d627a1" +source = "git+https://github.com/arceos-hypervisor/arceos.git?tag=hv-0.3.0#f2a2ec32011065116946ede94ed5ea11697230bc" dependencies = [ "axalloc", - "axconfig 0.2.0 (git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor)", + "axconfig 0.2.0 (git+https://github.com/arceos-hypervisor/arceos.git?tag=hv-0.3.0)", "axerrno", "axhal", "kspin", @@ -612,7 +617,7 @@ dependencies = [ [[package]] name = "axns" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#1556398efa198d236280dc9b74c3d7ab34d627a1" +source = "git+https://github.com/arceos-hypervisor/arceos.git?tag=hv-0.3.0#f2a2ec32011065116946ede94ed5ea11697230bc" dependencies = [ "crate_interface", "lazyinit", @@ -649,8 +654,8 @@ dependencies = [ [[package]] name = "axplat-aarch64-dyn" -version = "0.1.7" -source = "git+https://github.com/arceos-hypervisor/axplat-aarch64-dyn?tag=v0.1.7#9b9bca1b79d18ba8bdf2da761f0fe549a8ed57ef" +version = "0.2.0" +source = "git+https://github.com/arceos-hypervisor/axplat-aarch64-dyn?tag=v0.2.0#bdde9eec2a91f8c64926a991cbf6a4b048446165" dependencies = [ "aarch64-cpu", "aarch64-cpu-ext", @@ -667,6 +672,7 @@ dependencies = [ "page_table_entry", "paste", "percpu", + "rdif-intc", "rdrive", "serde", "somehal", @@ -826,10 +832,10 @@ dependencies = [ [[package]] name = "axruntime" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#1556398efa198d236280dc9b74c3d7ab34d627a1" +source = "git+https://github.com/arceos-hypervisor/arceos.git?tag=hv-0.3.0#f2a2ec32011065116946ede94ed5ea11697230bc" dependencies = [ "axalloc", - "axconfig 0.2.0 (git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor)", + "axconfig 0.2.0 (git+https://github.com/arceos-hypervisor/arceos.git?tag=hv-0.3.0)", "axdriver", "axerrno", "axfs", @@ -856,7 +862,7 @@ dependencies = [ [[package]] name = "axstd" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#1556398efa198d236280dc9b74c3d7ab34d627a1" +source = "git+https://github.com/arceos-hypervisor/arceos.git?tag=hv-0.3.0#f2a2ec32011065116946ede94ed5ea11697230bc" dependencies = [ "arceos_api", "axerrno", @@ -869,7 +875,7 @@ dependencies = [ [[package]] name = "axsync" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#1556398efa198d236280dc9b74c3d7ab34d627a1" +source = "git+https://github.com/arceos-hypervisor/arceos.git?tag=hv-0.3.0#f2a2ec32011065116946ede94ed5ea11697230bc" dependencies = [ "axtask", "kspin", @@ -879,9 +885,9 @@ dependencies = [ [[package]] name = "axtask" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#1556398efa198d236280dc9b74c3d7ab34d627a1" +source = "git+https://github.com/arceos-hypervisor/arceos.git?tag=hv-0.3.0#f2a2ec32011065116946ede94ed5ea11697230bc" dependencies = [ - "axconfig 0.2.0 (git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor)", + "axconfig 0.2.0 (git+https://github.com/arceos-hypervisor/arceos.git?tag=hv-0.3.0)", "axhal", "axsched", "cfg-if", @@ -942,6 +948,7 @@ dependencies = [ "percpu", "prettyplease", "quote", + "rdif-intc", "rdrive", "spin 0.9.8", "syn 2.0.106", @@ -1391,6 +1398,18 @@ dependencies = [ "syn 2.0.106", ] +[[package]] +name = "dma-api" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2bef2303b0bbacb23e7e1990fb31bed5cb46bc67aa4f307c03117b81bdee4d9f" +dependencies = [ + "aarch64-cpu-ext", + "cfg-if", + "spin 0.10.0", + "thiserror 2.0.16", +] + [[package]] name = "embedded-hal" version = "1.0.0" @@ -2183,9 +2202,9 @@ checksum = "17f03abfebdaaf0fad16790237a0348baf84886d3ade460db13bae59e614a180" [[package]] name = "libc" -version = "0.2.175" +version = "0.2.176" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a82ae493e598baaea5209805c49bbf2ea7de956d50d7da0da1164f9c6d28543" +checksum = "58f929b4d672ea937a23a1ab494143d968337a5f47e56d0815df1e0890ddf174" [[package]] name = "libredox" @@ -2725,33 +2744,29 @@ dependencies = [ [[package]] name = "rdif-base" -version = "0.6.0" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6953f438bbbdf58e55513c31e70fa0f85daba2927e8a59130a04608141bb552" +checksum = "4f8c32d8cbc18633a412130719b07d31135215d1715ac48fc3888ca835a811ba" dependencies = [ "as-any", "async-trait", + "paste", "rdif-def", "thiserror 2.0.16", ] [[package]] name = "rdif-block" -version = "0.5.0" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7b8e19dc3cb6cd7241085a9560a91d4346edbc525bcbfc3c86e5eeb11559c19" +checksum = "81ae1ba6c121eef2653dd2e0c88a209bb1d4d21e75e15cca71f19770ef327f81" dependencies = [ "cfg-if", + "dma-api", + "futures", "rdif-base", -] - -[[package]] -name = "rdif-clk" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee94bb098e921346fffa3bb8d18e80fbb903c8ad2cb0a103ee9a65ae1a7d77fa" -dependencies = [ - "rdif-base", + "spin_on", + "thiserror 2.0.16", ] [[package]] @@ -2765,62 +2780,26 @@ dependencies = [ [[package]] name = "rdif-intc" -version = "0.12.0" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d29b44e4bbb180ed0031e22a54d802f77226faf7064e52fcc8cf25c2376cb2ff" +checksum = "170ec813e6cf4d1e5fa53fa8fed0fadc7aaab96683d4f1d44c602a6109931eb4" dependencies = [ "cfg-if", "rdif-base", "thiserror 2.0.16", ] -[[package]] -name = "rdif-power" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37eb02828548e3d1bb13d2a5d892219dfa295c3c0c00a1a647a68f947e5d070a" -dependencies = [ - "rdif-base", -] - -[[package]] -name = "rdif-serial" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a3381d491f588cfb20dfa661dc374411a2cb91c751b2e18516e0d2edca6a58e" -dependencies = [ - "futures", - "rdif-base", - "spin_on", - "thiserror 2.0.16", -] - -[[package]] -name = "rdif-systick" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2cdd145eab68c38f23dfcc8b3b1ed20c48bbb1a4278dd9c7bf64e9219cc61158" -dependencies = [ - "rdif-base", -] - [[package]] name = "rdrive" -version = "0.16.1" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77fc183d7ddcfdac66c688ced56415213970f36694fe821ea45339780080ba82" +checksum = "e997dc02215be04df3bb680c7cc45660c562b9f0b2d9689058f28e2bf0665693" dependencies = [ "enum_dispatch", "fdt-parser", "log", "paste", "rdif-base", - "rdif-block", - "rdif-clk", - "rdif-intc", - "rdif-power", - "rdif-serial", - "rdif-systick", "rdrive-macros", "spin 0.10.0", "thiserror 2.0.16", @@ -3378,9 +3357,9 @@ dependencies = [ [[package]] name = "somehal" -version = "0.4.3" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f916f4e5297405d4d97788f586927dba290f63e026d6e42486a40d2670f2545c" +checksum = "5a9b180e1abae1127bd99ecee566c3906d8c0f854cb1c442b945afe911e6eb71" dependencies = [ "aarch64-cpu", "aarch64-cpu-ext", @@ -3572,9 +3551,9 @@ dependencies = [ [[package]] name = "tempfile" -version = "3.22.0" +version = "3.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84fa4d11fadde498443cca10fd3ac23c951f0dc59e080e9f4b93d4df4e4eea53" +checksum = "2d31c77bdf42a745371d260a26ca7163f1e0924b64afa0b688e61b5a9fa02f16" dependencies = [ "fastrand", "getrandom 0.3.3", diff --git a/Cargo.toml b/Cargo.toml index 4bedecb6..038cf1f3 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -28,7 +28,7 @@ spin = "0.9" timer_list = "0.1.0" # System dependent modules provided by ArceOS. -axstd = {git = "https://github.com/arceos-hypervisor/arceos.git", branch = "hypervisor", features = [ +axstd = {git = "https://github.com/arceos-hypervisor/arceos.git", tag = "hv-0.3.0", features = [ "alloc-level-1", "paging", "irq", @@ -52,7 +52,8 @@ memory_addr = "0.4" page_table_entry = {version = "0.5", features = ["arm-el2"]} page_table_multiarch = "0.5" percpu = {version = "0.2", features = ["arm-el2"]} -rdrive = "0.16" +rdif-intc = "0.12" +rdrive = "0.18" vm-fdt = {git = "https://github.com/bullhh/vm-fdt.git", default-features = false, features = ["alloc"]} diff --git a/platform/aarch64-generic/Cargo.toml b/platform/aarch64-generic/Cargo.toml index a40b9cf9..f3afe069 100644 --- a/platform/aarch64-generic/Cargo.toml +++ b/platform/aarch64-generic/Cargo.toml @@ -4,7 +4,7 @@ name = "axplat-aarch64-generic" version = "0.1.0" [dependencies] -axplat-aarch64-dyn = {git = "https://github.com/arceos-hypervisor/axplat-aarch64-dyn", tag = "v0.1.7", features = ["irq", "smp", "hv"]} +axplat-aarch64-dyn = {git = "https://github.com/arceos-hypervisor/axplat-aarch64-dyn", tag = "v0.2.0", features = ["irq", "smp", "hv"]} [build-dependencies] serde = {version = "1.0", features = ["derive"]} diff --git a/src/hal/arch/aarch64/api.rs b/src/hal/arch/aarch64/api.rs index 06ff9fbb..5071517d 100644 --- a/src/hal/arch/aarch64/api.rs +++ b/src/hal/arch/aarch64/api.rs @@ -9,7 +9,7 @@ mod arch_api_impl { } extern fn read_vgicd_typer() -> u32 { - let mut gic = rdrive::get_one::() + let mut gic = rdrive::get_one::() .expect("Failed to get GIC driver") .lock() .unwrap(); @@ -27,7 +27,7 @@ mod arch_api_impl { extern fn read_vgicd_iidr() -> u32 { // use axstd::os::arceos::modules::axhal::irq::MyVgic; // MyVgic::get_gicd().lock().get_iidr() - let mut gic = rdrive::get_one::() + let mut gic = rdrive::get_one::() .expect("Failed to get GIC driver") .lock() .unwrap(); @@ -44,7 +44,7 @@ mod arch_api_impl { } extern fn get_host_gicd_base() -> memory_addr::PhysAddr { - let mut gic = rdrive::get_one::() + let mut gic = rdrive::get_one::() .expect("Failed to get GIC driver") .lock() .unwrap(); @@ -62,7 +62,7 @@ mod arch_api_impl { } extern fn get_host_gicr_base() -> memory_addr::PhysAddr { - let mut gic = rdrive::get_one::() + let mut gic = rdrive::get_one::() .expect("Failed to get GIC driver") .lock() .unwrap(); diff --git a/src/hal/arch/aarch64/mod.rs b/src/hal/arch/aarch64/mod.rs index 7f8964b3..56529470 100644 --- a/src/hal/arch/aarch64/mod.rs +++ b/src/hal/arch/aarch64/mod.rs @@ -6,7 +6,7 @@ pub mod cache; pub fn inject_interrupt(irq: usize) { debug!("Injecting virtual interrupt: {}", irq); - let mut gic = rdrive::get_one::() + let mut gic = rdrive::get_one::() .expect("Failed to get GIC driver") .lock() .unwrap(); From c8c77acf012d0dfb804168bca46e4f993cd94dc8 Mon Sep 17 00:00:00 2001 From: TQ <128586861+YanLien@users.noreply.github.com> Date: Thu, 25 Sep 2025 15:26:10 +0800 Subject: [PATCH 211/219] feat: Added driver support for two platform devices. (#259) * feat: Added driver support for two platform devices. * fix: fix ci issues --- Cargo.lock | 306 ++++++++++++++++--- Cargo.toml | 6 +- platform/aarch64-phytium-pi/Cargo.toml | 11 + platform/aarch64-phytium-pi/axconfig.toml | 49 +++ platform/aarch64-phytium-pi/src/lib.rs | 4 + platform/aarch64-roc-rk3568-pc/Cargo.toml | 11 + platform/aarch64-roc-rk3568-pc/axconfig.toml | 49 +++ platform/aarch64-roc-rk3568-pc/src/lib.rs | 4 + src/main.rs | 4 + 9 files changed, 403 insertions(+), 41 deletions(-) create mode 100644 platform/aarch64-phytium-pi/Cargo.toml create mode 100644 platform/aarch64-phytium-pi/axconfig.toml create mode 100644 platform/aarch64-phytium-pi/src/lib.rs create mode 100644 platform/aarch64-roc-rk3568-pc/Cargo.toml create mode 100644 platform/aarch64-roc-rk3568-pc/axconfig.toml create mode 100644 platform/aarch64-roc-rk3568-pc/src/lib.rs diff --git a/Cargo.lock b/Cargo.lock index df99e246..c450c2f8 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -142,10 +142,10 @@ checksum = "a23eb6b1614318a8071c9b2521f36b424b2c83db5eb3a0fead4a6c0809af6e61" [[package]] name = "arceos_api" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?tag=hv-0.3.0#f2a2ec32011065116946ede94ed5ea11697230bc" +source = "git+https://github.com/arceos-hypervisor/arceos.git?tag=hv-0.3.1#0106ce9d36d225943acb93a86359a61346170ff2" dependencies = [ "axalloc", - "axconfig 0.2.0 (git+https://github.com/arceos-hypervisor/arceos.git?tag=hv-0.3.0)", + "axconfig 0.2.0 (git+https://github.com/arceos-hypervisor/arceos.git?tag=hv-0.3.1)", "axdriver", "axerrno", "axfeat", @@ -303,7 +303,7 @@ dependencies = [ [[package]] name = "axalloc" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?tag=hv-0.3.0#f2a2ec32011065116946ede94ed5ea11697230bc" +source = "git+https://github.com/arceos-hypervisor/arceos.git?tag=hv-0.3.1#0106ce9d36d225943acb93a86359a61346170ff2" dependencies = [ "allocator", "axerrno", @@ -313,10 +313,44 @@ dependencies = [ "memory_addr", ] +[[package]] +name = "axbsp-phytium-pi" +version = "0.1.0" +source = "git+https://github.com/drivercraft/axbsp.git#a5a374e142d83501cadfbcfa3b39cfc719d47afe" +dependencies = [ + "axklib 0.2.0 (git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor)", + "axplat-aarch64-dyn", + "log", + "phytium-mci", + "rdif-block", + "rdrive", + "serde", + "spin 0.10.0", + "toml 0.8.23", +] + +[[package]] +name = "axbsp-roc-rk3568-pc" +version = "0.1.0" +source = "git+https://github.com/drivercraft/axbsp.git#a5a374e142d83501cadfbcfa3b39cfc719d47afe" +dependencies = [ + "axklib 0.2.0 (git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor)", + "axplat-aarch64-dyn", + "log", + "rdif-block", + "rdif-clk", + "rdrive", + "rk3568_clk", + "sdmmc", + "serde", + "spin 0.10.0", + "toml 0.8.23", +] + [[package]] name = "axconfig" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?tag=hv-0.3.0#f2a2ec32011065116946ede94ed5ea11697230bc" +source = "git+https://github.com/arceos-hypervisor/arceos.git?tag=hv-0.3.1#0106ce9d36d225943acb93a86359a61346170ff2" dependencies = [ "axconfig-macros", ] @@ -408,11 +442,11 @@ dependencies = [ [[package]] name = "axdriver" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?tag=hv-0.3.0#f2a2ec32011065116946ede94ed5ea11697230bc" +source = "git+https://github.com/arceos-hypervisor/arceos.git?tag=hv-0.3.1#0106ce9d36d225943acb93a86359a61346170ff2" dependencies = [ "arm-gic-driver", "axalloc", - "axconfig 0.2.0 (git+https://github.com/arceos-hypervisor/arceos.git?tag=hv-0.3.0)", + "axconfig 0.2.0 (git+https://github.com/arceos-hypervisor/arceos.git?tag=hv-0.3.1)", "axdriver_base", "axdriver_block", "axdriver_pci", @@ -422,7 +456,7 @@ dependencies = [ "axmm", "cfg-if", "crate_interface", - "dma-api", + "dma-api 0.5.1", "lazyinit", "log", "memory_addr", @@ -476,12 +510,13 @@ dependencies = [ [[package]] name = "axfeat" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?tag=hv-0.3.0#f2a2ec32011065116946ede94ed5ea11697230bc" +source = "git+https://github.com/arceos-hypervisor/arceos.git?tag=hv-0.3.1#0106ce9d36d225943acb93a86359a61346170ff2" dependencies = [ "axalloc", "axdriver", "axfs", "axhal", + "axklib-impl", "axlog", "axruntime", "axsync", @@ -492,7 +527,7 @@ dependencies = [ [[package]] name = "axfs" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?tag=hv-0.3.0#f2a2ec32011065116946ede94ed5ea11697230bc" +source = "git+https://github.com/arceos-hypervisor/arceos.git?tag=hv-0.3.1#0106ce9d36d225943acb93a86359a61346170ff2" dependencies = [ "axdriver", "axdriver_block", @@ -546,11 +581,11 @@ dependencies = [ [[package]] name = "axhal" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?tag=hv-0.3.0#f2a2ec32011065116946ede94ed5ea11697230bc" +source = "git+https://github.com/arceos-hypervisor/arceos.git?tag=hv-0.3.1#0106ce9d36d225943acb93a86359a61346170ff2" dependencies = [ "aarch64-cpu", "axalloc", - "axconfig 0.2.0 (git+https://github.com/arceos-hypervisor/arceos.git?tag=hv-0.3.0)", + "axconfig 0.2.0 (git+https://github.com/arceos-hypervisor/arceos.git?tag=hv-0.3.1)", "axcpu", "axlog", "axplat 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -587,10 +622,41 @@ dependencies = [ "axerrno", ] +[[package]] +name = "axklib" +version = "0.2.0" +source = "git+https://github.com/arceos-hypervisor/arceos.git?tag=hv-0.3.1#0106ce9d36d225943acb93a86359a61346170ff2" +dependencies = [ + "axerrno", + "memory_addr", + "trait-ffi", +] + +[[package]] +name = "axklib" +version = "0.2.0" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#db2153869c2efb0ef768eb9ec9adfaa5c35215be" +dependencies = [ + "axerrno", + "memory_addr", + "trait-ffi", +] + +[[package]] +name = "axklib-impl" +version = "0.2.0" +source = "git+https://github.com/arceos-hypervisor/arceos.git?tag=hv-0.3.1#0106ce9d36d225943acb93a86359a61346170ff2" +dependencies = [ + "axhal", + "axklib 0.2.0 (git+https://github.com/arceos-hypervisor/arceos.git?tag=hv-0.3.1)", + "axmm", + "trait-ffi", +] + [[package]] name = "axlog" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?tag=hv-0.3.0#f2a2ec32011065116946ede94ed5ea11697230bc" +source = "git+https://github.com/arceos-hypervisor/arceos.git?tag=hv-0.3.1#0106ce9d36d225943acb93a86359a61346170ff2" dependencies = [ "cfg-if", "crate_interface", @@ -601,10 +667,10 @@ dependencies = [ [[package]] name = "axmm" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?tag=hv-0.3.0#f2a2ec32011065116946ede94ed5ea11697230bc" +source = "git+https://github.com/arceos-hypervisor/arceos.git?tag=hv-0.3.1#0106ce9d36d225943acb93a86359a61346170ff2" dependencies = [ "axalloc", - "axconfig 0.2.0 (git+https://github.com/arceos-hypervisor/arceos.git?tag=hv-0.3.0)", + "axconfig 0.2.0 (git+https://github.com/arceos-hypervisor/arceos.git?tag=hv-0.3.1)", "axerrno", "axhal", "kspin", @@ -617,7 +683,7 @@ dependencies = [ [[package]] name = "axns" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?tag=hv-0.3.0#f2a2ec32011065116946ede94ed5ea11697230bc" +source = "git+https://github.com/arceos-hypervisor/arceos.git?tag=hv-0.3.1#0106ce9d36d225943acb93a86359a61346170ff2" dependencies = [ "crate_interface", "lazyinit", @@ -709,6 +775,15 @@ dependencies = [ "spin 0.10.0", ] +[[package]] +name = "axplat-aarch64-phytium-pi" +version = "0.1.0" +dependencies = [ + "axbsp-phytium-pi", + "serde", + "toml 0.8.23", +] + [[package]] name = "axplat-aarch64-qemu-virt" version = "0.2.0" @@ -723,6 +798,15 @@ dependencies = [ "page_table_entry", ] +[[package]] +name = "axplat-aarch64-roc-rk3568-pc" +version = "0.1.0" +dependencies = [ + "axbsp-roc-rk3568-pc", + "serde", + "toml 0.8.23", +] + [[package]] name = "axplat-loongarch64-qemu-virt" version = "0.2.0" @@ -832,10 +916,10 @@ dependencies = [ [[package]] name = "axruntime" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?tag=hv-0.3.0#f2a2ec32011065116946ede94ed5ea11697230bc" +source = "git+https://github.com/arceos-hypervisor/arceos.git?tag=hv-0.3.1#0106ce9d36d225943acb93a86359a61346170ff2" dependencies = [ "axalloc", - "axconfig 0.2.0 (git+https://github.com/arceos-hypervisor/arceos.git?tag=hv-0.3.0)", + "axconfig 0.2.0 (git+https://github.com/arceos-hypervisor/arceos.git?tag=hv-0.3.1)", "axdriver", "axerrno", "axfs", @@ -862,7 +946,7 @@ dependencies = [ [[package]] name = "axstd" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?tag=hv-0.3.0#f2a2ec32011065116946ede94ed5ea11697230bc" +source = "git+https://github.com/arceos-hypervisor/arceos.git?tag=hv-0.3.1#0106ce9d36d225943acb93a86359a61346170ff2" dependencies = [ "arceos_api", "axerrno", @@ -875,7 +959,7 @@ dependencies = [ [[package]] name = "axsync" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?tag=hv-0.3.0#f2a2ec32011065116946ede94ed5ea11697230bc" +source = "git+https://github.com/arceos-hypervisor/arceos.git?tag=hv-0.3.1#0106ce9d36d225943acb93a86359a61346170ff2" dependencies = [ "axtask", "kspin", @@ -885,9 +969,9 @@ dependencies = [ [[package]] name = "axtask" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?tag=hv-0.3.0#f2a2ec32011065116946ede94ed5ea11697230bc" +source = "git+https://github.com/arceos-hypervisor/arceos.git?tag=hv-0.3.1#0106ce9d36d225943acb93a86359a61346170ff2" dependencies = [ - "axconfig 0.2.0 (git+https://github.com/arceos-hypervisor/arceos.git?tag=hv-0.3.0)", + "axconfig 0.2.0 (git+https://github.com/arceos-hypervisor/arceos.git?tag=hv-0.3.1)", "axhal", "axsched", "cfg-if", @@ -927,6 +1011,8 @@ dependencies = [ "axerrno", "axhvc", "axplat-aarch64-generic", + "axplat-aarch64-phytium-pi", + "axplat-aarch64-roc-rk3568-pc", "axplat-x86-qemu-q35", "axstd", "axvcpu", @@ -1041,6 +1127,17 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f8fe8f5a8a398345e52358e18ff07cc17a568fbca5c6f73873d3a62056309603" +[[package]] +name = "bare-test-macros" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e585a01076fee271c5aabcf36212acb349fb3e638561d842fffa8ca013f4fdd8" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", +] + [[package]] name = "base64" version = "0.13.1" @@ -1281,6 +1378,15 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "451d0640545a0553814b4c646eb549343561618838e9b42495f466131fe3ad49" +[[package]] +name = "convert_case" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baaaa0ecca5b51987b9423ccdc971514dd8b0bb7b4060b983d3664dad3f1f89f" +dependencies = [ + "unicode-segmentation", +] + [[package]] name = "core-foundation" version = "0.9.4" @@ -1398,6 +1504,15 @@ dependencies = [ "syn 2.0.106", ] +[[package]] +name = "dma-api" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d51274fe946b4c27cdada87cc6de09a50c0d9192c0f30ba455b29dae09caa0b" +dependencies = [ + "aarch64-cpu-ext", +] + [[package]] name = "dma-api" version = "0.5.1" @@ -2142,9 +2257,9 @@ checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" [[package]] name = "js-sys" -version = "0.3.80" +version = "0.3.81" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "852f13bec5eba4ba9afbeb93fd7c13fe56147f055939ae21c43a29a0ecb2702e" +checksum = "ec48937a97411dcb524a265206ccd4c90bb711fca92b2792c407f268825b9305" dependencies = [ "once_cell", "wasm-bindgen", @@ -2194,12 +2309,50 @@ dependencies = [ "kernel_guard", ] +[[package]] +name = "lazy_static" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" +dependencies = [ + "spin 0.9.8", +] + [[package]] name = "lazyinit" version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "17f03abfebdaaf0fad16790237a0348baf84886d3ade460db13bae59e614a180" +[[package]] +name = "lenient_semver" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "de8de3f4f3754c280ce1c8c42ed8dd26a9c8385c2e5ad4ec5a77e774cea9c1ec" +dependencies = [ + "lenient_semver_parser", + "semver", +] + +[[package]] +name = "lenient_semver_parser" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f650c1d024ddc26b4bb79c3076b30030f2cf2b18292af698c81f7337a64d7d6" +dependencies = [ + "lenient_semver_version_builder", + "semver", +] + +[[package]] +name = "lenient_semver_version_builder" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9049f8ff49f75b946f95557148e70230499c8a642bf2d6528246afc7d0282d17" +dependencies = [ + "semver", +] + [[package]] name = "libc" version = "0.2.176" @@ -2566,6 +2719,20 @@ dependencies = [ "syn 2.0.106", ] +[[package]] +name = "phytium-mci" +version = "0.1.0" +source = "git+https://github.com/YanQD/phytium-mci.git?rev=d4657ae#d4657ae9c7c27df552fcbc2f8287633ea8522e63" +dependencies = [ + "bare-test-macros", + "bitflags 2.9.4", + "dma-api 0.3.1", + "lazy_static", + "log", + "rlsf", + "spin 0.10.0", +] + [[package]] name = "pie-boot-if" version = "0.8.0" @@ -2762,13 +2929,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "81ae1ba6c121eef2653dd2e0c88a209bb1d4d21e75e15cca71f19770ef327f81" dependencies = [ "cfg-if", - "dma-api", + "dma-api 0.5.1", "futures", "rdif-base", "spin_on", "thiserror 2.0.16", ] +[[package]] +name = "rdif-clk" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9af012204e25d45735aa141b475c411b833b4f4bc580924905745d4afbbf606" +dependencies = [ + "rdif-base", +] + [[package]] name = "rdif-def" version = "0.2.0" @@ -2791,9 +2967,9 @@ dependencies = [ [[package]] name = "rdrive" -version = "0.18.0" +version = "0.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e997dc02215be04df3bb680c7cc45660c562b9f0b2d9689058f28e2bf0665693" +checksum = "fa9e5db203ff078c7422ce20bb3144111c3a88b58f93d759d0c86edb89df2133" dependencies = [ "enum_dispatch", "fdt-parser", @@ -3013,6 +3189,18 @@ dependencies = [ "tock-registers 0.9.0", ] +[[package]] +name = "rk3568_clk" +version = "0.1.0" +source = "git+https://github.com/drivercraft/rk3568-clk.git#2b63818f9f9f576d99988fafa70de41112524e00" +dependencies = [ + "aarch64-cpu", + "bare-test-macros", + "fdt-parser", + "kspin", + "log", +] + [[package]] name = "rlsf" version = "0.2.1" @@ -3160,6 +3348,25 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" +[[package]] +name = "sdmmc" +version = "0.1.0" +source = "git+https://github.com/drivercraft/sdmmc.git#7ba0222ada46fd5759af24f405780d73581e36fd" +dependencies = [ + "aarch64-cpu", + "arm_pl011", + "bare-test-macros", + "bitflags 2.9.4", + "cfg-if", + "dma-api 0.3.1", + "fdt-parser", + "kspin", + "log", + "paste", + "smccc", + "spin 0.10.0", +] + [[package]] name = "security-framework" version = "2.11.1" @@ -3856,6 +4063,19 @@ dependencies = [ "once_cell", ] +[[package]] +name = "trait-ffi" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "603471aac0a50dcf4cfbcdb0edb49a2d734b33d2b84a0d6b714ed8b06b811e25" +dependencies = [ + "convert_case", + "lenient_semver", + "proc-macro2", + "quote", + "syn 2.0.106", +] + [[package]] name = "try-lock" version = "0.2.5" @@ -3885,6 +4105,12 @@ version = "1.0.19" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f63a545481291138910575129486daeaf8ac54aee4387fe7906919f7830c7d9d" +[[package]] +name = "unicode-segmentation" +version = "1.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" + [[package]] name = "unicode-width" version = "0.1.14" @@ -4005,9 +4231,9 @@ dependencies = [ [[package]] name = "wasm-bindgen" -version = "0.2.103" +version = "0.2.104" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab10a69fbd0a177f5f649ad4d8d3305499c42bab9aef2f7ff592d0ec8f833819" +checksum = "c1da10c01ae9f1ae40cbfac0bac3b1e724b320abfcf52229f80b547c0d250e2d" dependencies = [ "cfg-if", "once_cell", @@ -4018,9 +4244,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.103" +version = "0.2.104" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bb702423545a6007bbc368fde243ba47ca275e549c8a28617f56f6ba53b1d1c" +checksum = "671c9a5a66f49d8a47345ab942e2cb93c7d1d0339065d4f8139c486121b43b19" dependencies = [ "bumpalo", "log", @@ -4032,9 +4258,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-futures" -version = "0.4.53" +version = "0.4.54" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0b221ff421256839509adbb55998214a70d829d3a28c69b4a6672e9d2a42f67" +checksum = "7e038d41e478cc73bae0ff9b36c60cff1c98b8f38f8d7e8061e79ee63608ac5c" dependencies = [ "cfg-if", "js-sys", @@ -4045,9 +4271,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.103" +version = "0.2.104" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc65f4f411d91494355917b605e1480033152658d71f722a90647f56a70c88a0" +checksum = "7ca60477e4c59f5f2986c50191cd972e3a50d8a95603bc9434501cf156a9a119" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -4055,9 +4281,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.103" +version = "0.2.104" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffc003a991398a8ee604a401e194b6b3a39677b3173d6e74495eb51b82e99a32" +checksum = "9f07d2f20d4da7b26400c9f4a0511e6e0345b040694e8a75bd41d578fa4421d7" dependencies = [ "proc-macro2", "quote", @@ -4068,18 +4294,18 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.103" +version = "0.2.104" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "293c37f4efa430ca14db3721dfbe48d8c33308096bd44d80ebaa775ab71ba1cf" +checksum = "bad67dc8b2a1a6e5448428adec4c3e84c43e561d8c9ee8a9e5aabeb193ec41d1" dependencies = [ "unicode-ident", ] [[package]] name = "web-sys" -version = "0.3.80" +version = "0.3.81" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbe734895e869dc429d78c4b433f8d17d95f8d05317440b4fad5ab2d33e596dc" +checksum = "9367c417a924a74cae129e6a2ae3b47fabb1f8995595ab474029da749a8be120" dependencies = [ "js-sys", "wasm-bindgen", diff --git a/Cargo.toml b/Cargo.toml index 038cf1f3..cb2e1f88 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -14,6 +14,8 @@ ept-level-4 = ["axaddrspace/4-level-ept"] fs = ["axstd/fs"] plat-aarch64-generic = ["axplat-aarch64-generic", "axstd/driver-dyn"] +plat-aarch64-phytium-pi = ["axplat-aarch64-phytium-pi", "axstd/driver-dyn"] +plat-aarch64-roc-rk3568-pc = ["axplat-aarch64-roc-rk3568-pc", "axstd/driver-dyn"] plat-x86-qemu-q35 = ["axplat-x86-qemu-q35"] [dependencies] @@ -28,7 +30,7 @@ spin = "0.9" timer_list = "0.1.0" # System dependent modules provided by ArceOS. -axstd = {git = "https://github.com/arceos-hypervisor/arceos.git", tag = "hv-0.3.0", features = [ +axstd = {git = "https://github.com/arceos-hypervisor/arceos.git", tag = "hv-0.3.1", features = [ "alloc-level-1", "paging", "irq", @@ -64,6 +66,8 @@ axvisor_api = "0.1" # platform axplat-aarch64-generic = {path = "platform/aarch64-generic", optional = true} axplat-x86-qemu-q35 = {path = "platform/x86-qemu-q35", optional = true} +axplat-aarch64-phytium-pi = {path = "platform/aarch64-phytium-pi", optional = true} +axplat-aarch64-roc-rk3568-pc = {path = "platform/aarch64-roc-rk3568-pc", optional = true} [target.'cfg(target_arch = "aarch64")'.dependencies] aarch64-cpu-ext = "0.1" diff --git a/platform/aarch64-phytium-pi/Cargo.toml b/platform/aarch64-phytium-pi/Cargo.toml new file mode 100644 index 00000000..071f6e31 --- /dev/null +++ b/platform/aarch64-phytium-pi/Cargo.toml @@ -0,0 +1,11 @@ +[package] +edition = "2024" +name = "axplat-aarch64-phytium-pi" +version = "0.1.0" + +[dependencies] +axbsp-phytium-pi = {git = "https://github.com/drivercraft/axbsp.git", features = ["irq", "smp", "hv"]} + +[build-dependencies] +serde = {version = "1.0", features = ["derive"]} +toml = "0.8" diff --git a/platform/aarch64-phytium-pi/axconfig.toml b/platform/aarch64-phytium-pi/axconfig.toml new file mode 100644 index 00000000..34282fc0 --- /dev/null +++ b/platform/aarch64-phytium-pi/axconfig.toml @@ -0,0 +1,49 @@ +# Architecture identifier. +arch = "aarch64" # str +# Platform package. +package = "axplat-aarch64-phytium-pi" # str +# Platform identifier. +platform = "aarch64-phytium-pi" # str + +# +# Device specifications +# +[devices] +# MMIO regions with format (`base_paddr`, `size`). +mmio-regions = [] # [(uint, uint)] +# End PCI bus number. +pci-bus-end = 0 # uint +# Base physical address of the PCIe ECAM space. +pci-ecam-base = 0 # uint +# PCI device memory ranges. +pci-ranges = [] # [(uint, uint)] +# Timer interrupt num (PPI, physical timer). +timer-irq = 26 # uint +# VirtIO MMIO regions with format (`base_paddr`, `size`). +virtio-mmio-regions = [] # [(uint, uint)] + +# +# Platform configs +# +[plat] +# Platform family (deprecated). +family = "" # str +# Number of CPUs. +cpu-num = 1 # uint +# No need. +phys-memory-base = 0 # uint +# No need. +phys-memory-size = 0x0 # uint +# No need. +kernel-base-paddr = 0x0 # uint +# Base virtual address of the kernel image. +kernel-base-vaddr = "0x8000_0000_0000" # uint +# No need. +phys-virt-offset = "0" # uint +# Offset of bus address and phys address. some boards, the bus address is +# different from the physical address. +phys-bus-offset = 0 # uint +# Kernel address space base. +kernel-aspace-base = "0x0000_0000_0000" # uint +# Kernel address space size. +kernel-aspace-size = "0xffff_ffff_f000" # uint diff --git a/platform/aarch64-phytium-pi/src/lib.rs b/platform/aarch64-phytium-pi/src/lib.rs new file mode 100644 index 00000000..4b59ee88 --- /dev/null +++ b/platform/aarch64-phytium-pi/src/lib.rs @@ -0,0 +1,4 @@ +#![no_std] +#![cfg(target_arch = "aarch64")] + +extern crate axbsp_phytium_pi; diff --git a/platform/aarch64-roc-rk3568-pc/Cargo.toml b/platform/aarch64-roc-rk3568-pc/Cargo.toml new file mode 100644 index 00000000..9a07d22f --- /dev/null +++ b/platform/aarch64-roc-rk3568-pc/Cargo.toml @@ -0,0 +1,11 @@ +[package] +edition = "2024" +name = "axplat-aarch64-roc-rk3568-pc" +version = "0.1.0" + +[dependencies] +axbsp-roc-rk3568-pc = {git = "https://github.com/drivercraft/axbsp.git", features = ["irq", "smp", "hv"]} + +[build-dependencies] +serde = {version = "1.0", features = ["derive"]} +toml = "0.8" diff --git a/platform/aarch64-roc-rk3568-pc/axconfig.toml b/platform/aarch64-roc-rk3568-pc/axconfig.toml new file mode 100644 index 00000000..8c7a9843 --- /dev/null +++ b/platform/aarch64-roc-rk3568-pc/axconfig.toml @@ -0,0 +1,49 @@ +# Architecture identifier. +arch = "aarch64" # str +# Platform package. +package = "axplat-aarch64-roc-rk3568-pc" # str +# Platform identifier. +platform = "aarch64-roc-rk3568-pc" # str + +# +# Device specifications +# +[devices] +# MMIO regions with format (`base_paddr`, `size`). +mmio-regions = [] # [(uint, uint)] +# End PCI bus number. +pci-bus-end = 0 # uint +# Base physical address of the PCIe ECAM space. +pci-ecam-base = 0 # uint +# PCI device memory ranges. +pci-ranges = [] # [(uint, uint)] +# Timer interrupt num (PPI, physical timer). +timer-irq = 26 # uint +# VirtIO MMIO regions with format (`base_paddr`, `size`). +virtio-mmio-regions = [] # [(uint, uint)] + +# +# Platform configs +# +[plat] +# Platform family (deprecated). +family = "" # str +# Number of CPUs. +cpu-num = 1 # uint +# No need. +phys-memory-base = 0 # uint +# No need. +phys-memory-size = 0x0 # uint +# No need. +kernel-base-paddr = 0x0 # uint +# Base virtual address of the kernel image. +kernel-base-vaddr = "0x8000_0000_0000" # uint +# No need. +phys-virt-offset = "0" # uint +# Offset of bus address and phys address. some boards, the bus address is +# different from the physical address. +phys-bus-offset = 0 # uint +# Kernel address space base. +kernel-aspace-base = "0x0000_0000_0000" # uint +# Kernel address space size. +kernel-aspace-size = "0xffff_ffff_f000" # uint diff --git a/platform/aarch64-roc-rk3568-pc/src/lib.rs b/platform/aarch64-roc-rk3568-pc/src/lib.rs new file mode 100644 index 00000000..77f603cc --- /dev/null +++ b/platform/aarch64-roc-rk3568-pc/src/lib.rs @@ -0,0 +1,4 @@ +#![no_std] +#![cfg(target_arch = "aarch64")] + +extern crate axbsp_roc_rk3568_pc; diff --git a/src/main.rs b/src/main.rs index a0dc1947..f5fa4ce0 100644 --- a/src/main.rs +++ b/src/main.rs @@ -10,6 +10,10 @@ extern crate axstd as std; #[cfg(feature = "plat-aarch64-generic")] extern crate axplat_aarch64_generic; +#[cfg(feature = "plat-aarch64-phytium-pi")] +extern crate axplat_aarch64_phytium_pi; +#[cfg(feature = "plat-aarch64-roc-rk3568-pc")] +extern crate axplat_aarch64_roc_rk3568_pc; #[cfg(feature = "plat-x86-qemu-q35")] extern crate axplat_x86_qemu_q35; From 294df73ea0a5dccbe24db59826e155ec29ecea7c Mon Sep 17 00:00:00 2001 From: ZCShou Date: Fri, 26 Sep 2025 14:35:06 +0800 Subject: [PATCH 212/219] update README (#261) --- README.md | 24 ++++++++++-------------- README_CN.md | 24 ++++++++++-------------- 2 files changed, 20 insertions(+), 28 deletions(-) diff --git a/README.md b/README.md index 0f076e35..469de2cd 100644 --- a/README.md +++ b/README.md @@ -67,11 +67,16 @@ If necessary, you may also need to install [musl-gcc](http://musl.cc/x86_64-linu ## Configuration Files -Since configuring the guest is a complex process, AxVisor chooses to use TOML files to manage the guest configurations. These configurations include the virtual machine ID, virtual machine name, virtual machine type, number of CPU cores, memory size, virtual devices, passthrough devices, and more. In the source code, the `./config/vms` directory contains some example templates for guest configurations. +Since guest configuration is a complex process, AxVisor chooses to use toml files to manage guest configurations, which include the virtual machine ID, virtual machine name, virtual machine type, number of CPU cores, memory size, virtual devices, and passthrough devices. -In addition, you can use the [axvmconfig](https://github.com/arceos-hypervisor/axvmconfig) tool to generate a custom configuration file. For detailed information, refer to the [axvmconfig](https://arceos-hypervisor.github.io/axvmconfig/axvmconfig/index.html) documentation. +- In the source code's `./config/vms` directory, there are some example templates for guest configurations. The configuration files are named in the format `--board_or_cpu-smpx`, where: + - `` is the guest operating system name + - `` is the architecture + - `board_or_cpu` is the name of the hardware development board or CPU (different strings are concatenated with `_`) + - `smpx` refers to the number of CPUs allocated to the guest, where `x` is the specific value + - The different components are concatenated with `-` to form the whole name -The configuration file naming format is `--board_or_cpu-smpx`, where `` is the guest system name, `` is the architecture, `board_or_cpu` is the hardware development board or CPU name (concatenating different strings with `_`), and `smpx` indicates the number of CPUs allocated to the guest, with `x` being the specific value. Each component is concatenated with `-` to form the complete name. +- Additionally, you can also use the [axvmconfig](https://github.com/arceos-hypervisor/axvmconfig) tool to generate a custom configuration file. For detailed information, please refer to [axvmconfig](https://arceos-hypervisor.github.io/axvmconfig/axvmconfig/index.html). ## Load and run from file system @@ -85,18 +90,9 @@ Loading from the filesystem refers to the method where the AxVisor image, Linux ./scripts/nimbos.sh --arch aarch64 ``` -2. Execute `./axvisor.sh defconfig` to set up the development environment and generate AxVisor config `.hvconfig.toml`. +2. Execute `./axvisor.sh run --plat aarch64-generic --features fs,ept-level-4 --arceos-args BUS=mmio,BLK=y,DISK_IMG=tmp/nimbos-aarch64.img,LOG=info --vmconfigs configs/vms/nimbos-aarch64-qemu-smp1.toml` to build AxVisor and start it in QEMU. -3. Edit the `.hvconfig.toml` file to set the `vmconfigs` item to the path of your guest configuration file, for example: - - ```toml - plat = "aarch64-generic" - features = ["fs", "ept-level-4"] - arceos_args = [ "BUS=mmio","BLK=y", "DISK_IMG=tmp/nimbos-aarch64.img", "LOG=info"] - vmconfigs = [ "configs/vms/nimbos-aarch64.toml",] - ``` - -4. Execute `./axvisor.sh run` to build AxVisor and start it in QEMU. +3. After that, you can directly run `./axvisor.sh run` to start it, and modify `.hvconfig.toml` to change the startup parameters. ### More guest diff --git a/README_CN.md b/README_CN.md index 93f5fd18..37cd0102 100644 --- a/README_CN.md +++ b/README_CN.md @@ -67,11 +67,16 @@ cargo install cargo-binutils ## 配置文件 -由于客户机配置是一个复杂的过程,AxVisor 选择使用 toml 文件来管理客户机的配置,其中包括虚拟机 ID、虚拟机名称、虚拟机类型、CPU 核心数量、内存大小、虚拟设备和直通设备等。在源码的 `./config/vms` 目录下是一些客户机配置的示例模板. +由于客户机配置是一个复杂的过程,AxVisor 选择使用 toml 文件来管理客户机的配置,其中包括虚拟机 ID、虚拟机名称、虚拟机类型、CPU 核心数量、内存大小、虚拟设备和直通设备等。 -此外,也可以使用 [axvmconfig](https://github.com/arceos-hypervisor/axvmconfig) 工具来生成一个自定义配置文件。详细介绍参见 [axvmconfig](https://arceos-hypervisor.github.io/axvmconfig/axvmconfig/index.html)。 +- 在源码的 `./config/vms` 目录下是一些客户机配置的示例模板,配置文件命名格式为 `--board_or_cpu-smpx`,其中 + - `` 是客户机系统名字 + - `` 是架构 + - `board_or_cpu` 硬件开发板或者 CPU 的名字(以 `_` 拼接不同字符串) + - `smpx` 是指分配客户机的 CPU 数量 `x` 为具体数值 + - 各项之间以 `-` 拼接为整体 -配置文件命名格式为 `--board_or_cpu-smpx`,其中,`` 是客户机系统名字,`` 是架构,`board_or_cpu` 硬件开发板或者 CPU 的名字(以 `_` 拼接不同字符串),`smpx` 是指分配客户机的 CPU 数量 `x` 为具体数值,各项之间以 `-` 拼接为整体。 +- 此外,也可以使用 [axvmconfig](https://github.com/arceos-hypervisor/axvmconfig) 工具来生成一个自定义配置文件。详细介绍参见 [axvmconfig](https://arceos-hypervisor.github.io/axvmconfig/axvmconfig/index.html)。 ## 从文件系统加载运行 @@ -85,18 +90,9 @@ cargo install cargo-binutils ./scripts/nimbos.sh --arch aarch64 ``` -2. 执行 `./axvisor.sh defconfig` 以设置开发环境并生成 AxVisor 配置文件 `.hvconfig.toml`。 +2. 执行 `./axvisor.sh run --plat aarch64-generic --features fs,ept-level-4 --arceos-args BUS=mmio,BLK=y,DISK_IMG=tmp/nimbos-aarch64.img,LOG=info --vmconfigs configs/vms/nimbos-aarch64-qemu-smp1.toml` 构建 AxVisor 并在 QEMU 中启动 NimbOS 客户机。 -3. 编辑生成的 `.hvconfig.toml`,将 `vmconfigs` 项设置为指向 NimbOS 的客户机配置文件,例如: - - ```toml - plat = "aarch64-generic" - features = ["fs", "ept-level-4"] - arceos_args = [ "BUS=mmio","BLK=y", "DISK_IMG=tmp/nimbos-aarch64.img", "LOG=info"] - vmconfigs = [ "configs/vms/nimbos-aarch64.toml",] - ``` - -4. 执行 `./axvisor.sh run` 构建 AxVisor 并在 QEMU 中启动 NimbOS 客户机。 +3. 后续可直接执行 `./axvisor.sh run` 来启动,并可通过修改 `.hvconfig.toml` 来更改启动参数 ### 更多客户机 From c39afe519cace8d55e63270ceae121403e98b1e8 Mon Sep 17 00:00:00 2001 From: szy <673586548@qq.com> Date: Sun, 28 Sep 2025 13:42:15 +0800 Subject: [PATCH 213/219] host fdt parser and guest fdt crate (#260) --------- Co-authored-by: szy --- Cargo.lock | 113 +- Cargo.toml | 2 + configs/vms/arceos-aarch64-e2000-smp1.toml | 32 +- configs/vms/arceos-aarch64-e2000-smp2.toml | 33 +- configs/vms/arceos-aarch64-rk3568-smp1.toml | 32 +- configs/vms/arceos-aarch64-rk3568-smp2.toml | 32 +- configs/vms/arceos-aarch64-tac_e400-smp1.toml | 32 +- configs/vms/linux-aarch64-e2000-smp1.toml | 74 +- configs/vms/linux-aarch64-e2000-smp2.toml | 74 +- configs/vms/linux-aarch64-qemu-smp1.toml | 23 +- configs/vms/linux-aarch64-rk3568-smp1.toml | 46 +- configs/vms/linux-aarch64-rk3568-smp2.toml | 46 +- configs/vms/linux-aarch64-tac_e400-smp1.toml | 74 +- configs/vms/nimbos-aarch64-qemu-smp1.toml | 15 +- doc/FDT_Configuration_Guide.md | 253 ++ platform/aarch64-phytium-pi/Cargo.lock | 3562 +++++++++++++++++ src/vmm/config.rs | 230 +- src/vmm/fdt.rs | 97 - src/vmm/fdt/create.rs | 399 ++ src/vmm/fdt/device.rs | 511 +++ src/vmm/fdt/mod.rs | 121 + src/vmm/fdt/parser.rs | 380 ++ src/vmm/fdt/print.rs | 135 + src/vmm/images/mod.rs | 80 +- src/vmm/mod.rs | 4 +- 25 files changed, 5648 insertions(+), 752 deletions(-) create mode 100644 doc/FDT_Configuration_Guide.md create mode 100644 platform/aarch64-phytium-pi/Cargo.lock delete mode 100644 src/vmm/fdt.rs create mode 100644 src/vmm/fdt/create.rs create mode 100644 src/vmm/fdt/device.rs create mode 100644 src/vmm/fdt/mod.rs create mode 100644 src/vmm/fdt/parser.rs create mode 100644 src/vmm/fdt/print.rs diff --git a/Cargo.lock b/Cargo.lock index c450c2f8..199f307f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -316,7 +316,7 @@ dependencies = [ [[package]] name = "axbsp-phytium-pi" version = "0.1.0" -source = "git+https://github.com/drivercraft/axbsp.git#a5a374e142d83501cadfbcfa3b39cfc719d47afe" +source = "git+https://github.com/drivercraft/axbsp.git#5dce480c619b6435135808c764aff818c4e891a1" dependencies = [ "axklib 0.2.0 (git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor)", "axplat-aarch64-dyn", @@ -332,7 +332,7 @@ dependencies = [ [[package]] name = "axbsp-roc-rk3568-pc" version = "0.1.0" -source = "git+https://github.com/drivercraft/axbsp.git#a5a374e142d83501cadfbcfa3b39cfc719d47afe" +source = "git+https://github.com/drivercraft/axbsp.git#5dce480c619b6435135808c764aff818c4e891a1" dependencies = [ "axklib 0.2.0 (git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor)", "axplat-aarch64-dyn", @@ -635,7 +635,7 @@ dependencies = [ [[package]] name = "axklib" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#db2153869c2efb0ef768eb9ec9adfaa5c35215be" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#96049da415c9b8f54caea54fdd98f4d69ca01670" dependencies = [ "axerrno", "memory_addr", @@ -1070,7 +1070,7 @@ dependencies = [ [[package]] name = "axvm" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/axvm.git?branch=next#b4f561f568536078b02a58572cae5f442102782c" +source = "git+https://github.com/arceos-hypervisor/axvm.git?branch=next#d0b1e63004d6a6b3caf47abe0f3b7020ffbacb72" dependencies = [ "arm_vcpu", "arm_vgic 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1095,8 +1095,7 @@ dependencies = [ [[package]] name = "axvmconfig" version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3618f2ebd9b25027b70f423c48a8482dc2883ca17f76d2a8d1fdac377e762f02" +source = "git+https://github.com/arceos-hypervisor/axvmconfig.git?branch=next#34c0e6473b057a697c48cc37c5b25853c1ea2826" dependencies = [ "axerrno", "enumerable", @@ -1225,6 +1224,12 @@ dependencies = [ "utf8-width", ] +[[package]] +name = "bytemuck" +version = "1.23.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3995eaeebcdf32f91f980d360f78732ddc061097ab4e39991ae7a6ace9194677" + [[package]] name = "byteorder" version = "1.5.0" @@ -1504,6 +1509,12 @@ dependencies = [ "syn 2.0.106", ] +[[package]] +name = "dma-api" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "624f4a84cc1031cfceb56780b82570a785f6cfdcee4f34c06c4e8f1fba25c970" + [[package]] name = "dma-api" version = "0.3.1" @@ -1607,7 +1618,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" dependencies = [ "libc", - "windows-sys 0.61.0", + "windows-sys 0.61.1", ] [[package]] @@ -2436,9 +2447,9 @@ dependencies = [ [[package]] name = "memchr" -version = "2.7.5" +version = "2.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32a282da65faaf38286cf3be983213fcf1d2e2a58700e808f83f4ea9a4804bc0" +checksum = "f52b00d39961fc5b2736ea853c9cc86238e165017a493d1d5c8eac6bdc4cc273" [[package]] name = "memoffset" @@ -2690,6 +2701,31 @@ version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" +[[package]] +name = "pci_types" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4325c6aa3cca3373503b1527e75756f9fbfe5fd76be4b4c8a143ee47430b8e0" +dependencies = [ + "bit_field", + "bitflags 2.9.4", +] + +[[package]] +name = "pcie" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "225c81c0f672afbdd95e55abebe56541870e64e350eba9f7eabfb392112229ab" +dependencies = [ + "bare-test-macros", + "bit_field", + "bitflags 2.9.4", + "log", + "pci_types", + "rdif-pcie", + "thiserror 2.0.16", +] + [[package]] name = "percent-encoding" version = "2.3.2" @@ -2722,15 +2758,18 @@ dependencies = [ [[package]] name = "phytium-mci" version = "0.1.0" -source = "git+https://github.com/YanQD/phytium-mci.git?rev=d4657ae#d4657ae9c7c27df552fcbc2f8287633ea8522e63" +source = "git+https://github.com/YanQD/phytium-mci.git?rev=99c9ee5#99c9ee5f66490fbf41370be3b3d7a42cf4406b0c" dependencies = [ "bare-test-macros", "bitflags 2.9.4", - "dma-api 0.3.1", + "bytemuck", + "dma-api 0.2.2", "lazy_static", "log", + "nb", "rlsf", "spin 0.10.0", + "tock-registers 0.9.0", ] [[package]] @@ -2965,17 +3004,29 @@ dependencies = [ "thiserror 2.0.16", ] +[[package]] +name = "rdif-pcie" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0abf057b17ca5ead0ee41c485bf3c2781fd9bbf88cc678539fa361aa5db3ed8d" +dependencies = [ + "pci_types", + "rdif-base", + "thiserror 2.0.16", +] + [[package]] name = "rdrive" -version = "0.18.1" +version = "0.18.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa9e5db203ff078c7422ce20bb3144111c3a88b58f93d759d0c86edb89df2133" +checksum = "27096bc91e156403ba3be9c7fef8d4379ea12d96d9d1725bdb197104a4fe1010" dependencies = [ - "enum_dispatch", "fdt-parser", "log", "paste", + "pcie", "rdif-base", + "rdif-pcie", "rdrive-macros", "spin 0.10.0", "thiserror 2.0.16", @@ -3239,7 +3290,7 @@ dependencies = [ "errno", "libc", "linux-raw-sys", - "windows-sys 0.61.0", + "windows-sys 0.61.1", ] [[package]] @@ -3339,7 +3390,7 @@ version = "0.1.28" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "891d81b926048e76efe18581bf793546b4c0eaf8448d72be8de2bbee5fd166e1" dependencies = [ - "windows-sys 0.61.0", + "windows-sys 0.61.1", ] [[package]] @@ -3402,9 +3453,9 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.226" +version = "1.0.227" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0dca6411025b24b60bfa7ec1fe1f8e710ac09782dca409ee8237ba74b51295fd" +checksum = "80ece43fc6fbed4eb5392ab50c07334d3e577cbf40997ee896fe7af40bba4245" dependencies = [ "serde_core", "serde_derive", @@ -3434,18 +3485,18 @@ dependencies = [ [[package]] name = "serde_core" -version = "1.0.226" +version = "1.0.227" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba2ba63999edb9dac981fb34b3e5c0d111a69b0924e253ed29d83f7c99e966a4" +checksum = "7a576275b607a2c86ea29e410193df32bc680303c82f31e275bbfcafe8b33be5" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.226" +version = "1.0.227" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8db53ae22f34573731bafa1db20f04027b2d25e02d8205921b569171699cdb33" +checksum = "51e694923b8824cf0e9b382adf0f60d4e05f348f357b38833a3fa5ed7c2ede04" dependencies = [ "proc-macro2", "quote", @@ -3766,7 +3817,7 @@ dependencies = [ "getrandom 0.3.3", "once_cell", "rustix", - "windows-sys 0.61.0", + "windows-sys 0.61.1", ] [[package]] @@ -4065,9 +4116,9 @@ dependencies = [ [[package]] name = "trait-ffi" -version = "0.2.9" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "603471aac0a50dcf4cfbcdb0edb49a2d734b33d2b84a0d6b714ed8b06b811e25" +checksum = "d87d49469ee333631b3130bec28965c47dcf0d4f3a792f8ed425dd036cf84be7" dependencies = [ "convert_case", "lenient_semver", @@ -4385,14 +4436,14 @@ version = "0.60.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" dependencies = [ - "windows-targets 0.53.3", + "windows-targets 0.53.4", ] [[package]] name = "windows-sys" -version = "0.61.0" +version = "0.61.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e201184e40b2ede64bc2ea34968b28e33622acdbbf37104f0e4a33f7abe657aa" +checksum = "6f109e41dd4a3c848907eb83d5a42ea98b3769495597450cf6d153507b166f0f" dependencies = [ "windows-link 0.2.0", ] @@ -4430,11 +4481,11 @@ dependencies = [ [[package]] name = "windows-targets" -version = "0.53.3" +version = "0.53.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5fe6031c4041849d7c496a8ded650796e7b6ecc19df1a431c1a363342e5dc91" +checksum = "2d42b7b7f66d2a06854650af09cfdf8713e427a439c97ad65a6375318033ac4b" dependencies = [ - "windows-link 0.1.3", + "windows-link 0.2.0", "windows_aarch64_gnullvm 0.53.0", "windows_aarch64_msvc 0.53.0", "windows_i686_gnu 0.53.0", diff --git a/Cargo.toml b/Cargo.toml index cb2e1f88..ce33f192 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -89,3 +89,5 @@ toml = {version = "0.9"} [patch.crates-io] axvcpu = {git = "https://github.com/arceos-hypervisor/axvcpu.git", branch = "next"} +axvmconfig = { git = "https://github.com/arceos-hypervisor/axvmconfig.git", branch = "next" } + diff --git a/configs/vms/arceos-aarch64-e2000-smp1.toml b/configs/vms/arceos-aarch64-e2000-smp1.toml index dbbae96e..7e4ecdb9 100644 --- a/configs/vms/arceos-aarch64-e2000-smp1.toml +++ b/configs/vms/arceos-aarch64-e2000-smp1.toml @@ -11,8 +11,6 @@ vm_type = 1 cpu_num = 1 # The physical CPU ids. phys_cpu_ids = [0x00] -# Guest vm physical cpu sets. -phys_cpu_sets = [4] # # Vm kernel configs @@ -29,7 +27,7 @@ kernel_load_addr = 0x20_2008_0000 kernel_path = "/path/to/arceos_aarch64-dyn_smp1.bin" ## The file path of the device tree blob (DTB). dtb_load_addr = 0x20_2000_0000 -dtb_path = "/path/to/axvisor/configs/vms/arceos-aarch64-e2000_smp1.dtb" +#dtb_path = "/path/to/axvisor/configs/vms/arceos-aarch64-e2000_smp1.dtb" # Memory regions with format (`base_paddr`, `size`, `flags`, `map_type`). # For `map_type`, 0 means `MAP_ALLOC`, 1 means `MAP_IDENTICAL`. memory_regions = [ @@ -47,25 +45,11 @@ emu_devices = [] # Pass-through devices. # Name Base-Ipa Base-Pa Length Alloc-Irq. passthrough_devices = [ - [ - "UART1", - 0x2800_d000, - 0x2800_d000, - 0x1000, - 0x1, - ], - [ - "gic-v3", - 0x3080_0000, - 0x3080_0000, - 0x10000, - 0x1, - ], - [ - "gic-v3-its", - 0x3082_0000, - 0x3082_0000, - 0x100000, - 0x1, - ], + ["/"], + #["/timer"], ] + +# Devices that are not desired to be passed through to the guest +excluded_devices = [ + # ["/gic-v3"], +] \ No newline at end of file diff --git a/configs/vms/arceos-aarch64-e2000-smp2.toml b/configs/vms/arceos-aarch64-e2000-smp2.toml index 4f69f198..fffae98d 100644 --- a/configs/vms/arceos-aarch64-e2000-smp2.toml +++ b/configs/vms/arceos-aarch64-e2000-smp2.toml @@ -11,9 +11,6 @@ vm_type = 1 cpu_num = 2 # The physical CPU ids. phys_cpu_ids = [0x201, 0x100] -# Guest vm physical cpu sets. -phys_cpu_sets = [2, 8] - # # Vm kernel configs # @@ -29,7 +26,7 @@ kernel_load_addr = 0x20_2008_0000 kernel_path = "/path/to/arceos_aarch64-dyn_smp1.bin" ## The file path of the device tree blob (DTB). dtb_load_addr = 0x20_2000_0000 -dtb_path = "/path/to/axvisor/configs/vms/arceos-aarch64-e2000_smp2.dtb" +#dtb_path = "/path/to/axvisor/configs/vms/arceos-aarch64-e2000_smp2.dtb" # Memory regions with format (`base_paddr`, `size`, `flags`, `map_type`). # For `map_type`, 0 means `MAP_ALLOC`, 1 means `MAP_IDENTICAL`. memory_regions = [ @@ -47,25 +44,11 @@ emu_devices = [] # Pass-through devices. # Name Base-Ipa Base-Pa Length Alloc-Irq. passthrough_devices = [ - [ - "UART1", - 0x2800_d000, - 0x2800_d000, - 0x1000, - 0x1, - ], - [ - "gic-v3", - 0x3080_0000, - 0x3080_0000, - 0x10000, - 0x1, - ], - [ - "gic-v3-its", - 0x3082_0000, - 0x3082_0000, - 0x100000, - 0x1, - ], + ["/"], + #["/timer"], ] + +# Devices that are not desired to be passed through to the guest +excluded_devices = [ + # ["/gic-v3"], +] \ No newline at end of file diff --git a/configs/vms/arceos-aarch64-rk3568-smp1.toml b/configs/vms/arceos-aarch64-rk3568-smp1.toml index eddf9ca4..92ab9acc 100644 --- a/configs/vms/arceos-aarch64-rk3568-smp1.toml +++ b/configs/vms/arceos-aarch64-rk3568-smp1.toml @@ -11,8 +11,6 @@ vm_type = 1 cpu_num = 1 # The physical CPU ids. phys_cpu_ids = [0x200] -# Guest vm physical cpu sets. -phys_cpu_sets = [1] # # Vm kernel configs @@ -29,7 +27,7 @@ kernel_load_addr = 0x7008_0000 kernel_path = "/path/arceos-aarch64-dyn.bin" ## The file path of the device tree blob (DTB). dtb_load_addr = 0x7000_0000 -dtb_path = "/path/arceos-rk3568.dtb" +#dtb_path = "/path/arceos-rk3568.dtb" # Memory regions with format (`base_paddr`, `size`, `flags`, `map_type`). # For `map_type`, 0 means `MAP_ALLOC`, 1 means `MAP_IDENTICAL`. memory_regions = [ @@ -49,25 +47,11 @@ emu_devices = [] # Pass-through devices. # Name Base-Ipa Base-Pa Length Alloc-Irq. passthrough_devices = [ - [ - "UART2", - 0xfe66_0000, - 0xfe66_0000, - 0x10000, - 0x1, - ], - [ - "gic-v3", - 0xfd40_0000, - 0xfd40_0000, - 0x10000, - 0x1, - ], - [ - "gic-v3-its", - 0xfd44_0000, - 0xfd44_0000, - 0x100000, - 0x1, - ], + ["/"], + #["/timer"], +] + +# Devices that are not desired to be passed through to the guest +excluded_devices = [ + # ["/gic-v3"], ] diff --git a/configs/vms/arceos-aarch64-rk3568-smp2.toml b/configs/vms/arceos-aarch64-rk3568-smp2.toml index b70a70ee..e1a1c26a 100644 --- a/configs/vms/arceos-aarch64-rk3568-smp2.toml +++ b/configs/vms/arceos-aarch64-rk3568-smp2.toml @@ -11,8 +11,6 @@ vm_type = 1 cpu_num = 2 # The physical CPU ids. phys_cpu_ids = [0x00, 0x100] -# Guest vm physical cpu sets. -phys_cpu_sets = [1, 2] # # Vm kernel configs @@ -29,7 +27,7 @@ kernel_load_addr = 0x7008_0000 kernel_path = "/path/arceos-aarch64-dyn.bin" ## The file path of the device tree blob (DTB). dtb_load_addr = 0x7000_0000 -dtb_path = "/path/arceos-aarch64-rk3568_smp2.dtb" +#dtb_path = "/path/arceos-aarch64-rk3568_smp2.dtb" # Memory regions with format (`base_paddr`, `size`, `flags`, `map_type`). # For `map_type`, 0 means `MAP_ALLOC`, 1 means `MAP_IDENTICAL`. memory_regions = [ @@ -49,25 +47,11 @@ emu_devices = [] # Pass-through devices. # Name Base-Ipa Base-Pa Length Alloc-Irq. passthrough_devices = [ - [ - "UART2", - 0xfe66_0000, - 0xfe66_0000, - 0x10000, - 0x1, - ], - [ - "gic-v3", - 0xfd40_0000, - 0xfd40_0000, - 0x10000, - 0x1, - ], - [ - "gic-v3-its", - 0xfd44_0000, - 0xfd44_0000, - 0x100000, - 0x1, - ], + ["/"], + #["/timer"], +] + +# Devices that are not desired to be passed through to the guest +excluded_devices = [ + # ["/gic-v3"], ] diff --git a/configs/vms/arceos-aarch64-tac_e400-smp1.toml b/configs/vms/arceos-aarch64-tac_e400-smp1.toml index c81e7bba..ccf474fc 100644 --- a/configs/vms/arceos-aarch64-tac_e400-smp1.toml +++ b/configs/vms/arceos-aarch64-tac_e400-smp1.toml @@ -11,8 +11,6 @@ vm_type = 1 cpu_num = 1 # The physical CPU ids. phys_cpu_ids = [0x200] -# Guest vm physical cpu sets. -phys_cpu_sets = [1] # # Vm kernel configs @@ -29,7 +27,7 @@ kernel_load_addr = 0x20_2008_0000 kernel_path = "/path/to/arceos_aarch64-dyn_smp1.bin" ## The file path of the device tree blob (DTB). dtb_load_addr = 0x20_2000_0000 -dtb_path = "/path/to/arceos-aarch64-tac_e400-smp1.dtb" +#dtb_path = "/path/to/arceos-aarch64-tac_e400-smp1.dtb" # Memory regions with format (`base_paddr`, `size`, `flags`, `map_type`). # For `map_type`, 0 means `MAP_ALLOC`, 1 means `MAP_IDENTICAL`. memory_regions = [ @@ -47,25 +45,11 @@ emu_devices = [] # Pass-through devices. # Name Base-Ipa Base-Pa Length Alloc-Irq. passthrough_devices = [ - [ - "UART1", - 0x2800_d000, - 0x2800_d000, - 0x1000, - 0x1, - ], - [ - "gic-v3", - 0x3080_0000, - 0x3080_0000, - 0x10000, - 0x1, - ], - [ - "gic-v3-its", - 0x3082_0000, - 0x3082_0000, - 0x100000, - 0x1, - ], + ["/"], + #["/timer"], ] + +# Devices that are not desired to be passed through to the guest +excluded_devices = [ + # ["/gic-v3"], +] \ No newline at end of file diff --git a/configs/vms/linux-aarch64-e2000-smp1.toml b/configs/vms/linux-aarch64-e2000-smp1.toml index 52017828..ece732d1 100644 --- a/configs/vms/linux-aarch64-e2000-smp1.toml +++ b/configs/vms/linux-aarch64-e2000-smp1.toml @@ -11,8 +11,6 @@ vm_type = 1 cpu_num = 1 # The physical CPU ids. phys_cpu_ids = [0x100] -# Guest vm physical cpu sets. -phys_cpu_sets = [8] # # Vm kernel configs @@ -29,7 +27,7 @@ kernel_load_addr = 0x20_4008_0000 kernel_path = "/path/to/Image" ## The file path of the device tree blob (DTB). dtb_load_addr = 0x20_4000_0000 -dtb_path = "/path/to/axvisor/configs/vms/linux-aarch64-e2000_smp1.dtb" +#dtb_path = "/path/to/axvisor/configs/vms/linux-aarch64-e2000_smp1.dtb" # Memory regions with format (`base_paddr`, `size`, `flags`, `map_type`). # For `map_type`, 0 means `MAP_ALLOC`, 1 means `MAP_IDENTICAL`. memory_regions = [ @@ -48,67 +46,11 @@ emu_devices = [] # Pass-through devices. # Name Base-Ipa Base-Pa Length Alloc-Irq. passthrough_devices = [ - [ - "QSPI", - 0x0000_0000, - 0x0000_0000, - 0x1000_0000, - 0x1, - ], - [ - "LocalBus", - 0x1000_0000, - 0x1000_0000, - 0x1000_0000, - 0x1, - ], - [ - "low speed peripherals", - 0x2800_0000, - 0x2800_0000, - 0x0800_0000, - 0x1, - ], - [ - "other peripherals", - 0x3000_0000, - 0x3000_0000, - 0x0800_0000, - 0x1, - ], - [ - "IACC", - 0x3800_0000, - 0x3800_0000, - 0x0800_0000, - 0x1, - ], - [ - "PCIE", - 0x4000_0000, - 0x4000_0000, - 0x4000_0000, - 0x1, - ], - [ - "QSPI high address", - 0x01_0000_0000, - 0x01_0000_0000, - 0x8000_0000, - 0x1, - ], - [ - "LocalBus high address", - 0x01_8000_0000, - 0x01_8000_0000, - 0x8000_0000, - 0x1, - ], - [ - "PCIe MEM64", - 0x10_0000_0000, - 0x10_0000_0000, - 0x01_0000_0000, - 0x1, - ], + ["/"], + #["/timer"], ] + +# Devices that are not desired to be passed through to the guest +excluded_devices = [ + # ["/gic-v3"], +] \ No newline at end of file diff --git a/configs/vms/linux-aarch64-e2000-smp2.toml b/configs/vms/linux-aarch64-e2000-smp2.toml index bf409a0b..054954d4 100644 --- a/configs/vms/linux-aarch64-e2000-smp2.toml +++ b/configs/vms/linux-aarch64-e2000-smp2.toml @@ -11,8 +11,6 @@ vm_type = 1 cpu_num = 2 # The physical CPU ids. phys_cpu_ids = [0x200, 0x00] -# Guest vm physical cpu sets. -phys_cpu_sets = [1, 4] # # Vm kernel configs @@ -29,7 +27,7 @@ kernel_load_addr = 0x20_4008_0000 kernel_path = "/path/to/Image" ## The file path of the device tree blob (DTB). dtb_load_addr = 0x20_4000_0000 -dtb_path = "/path/to/axvisor/configs/vms/linux-aarch64-e2000_smp2.dtb" +#dtb_path = "/path/to/axvisor/configs/vms/linux-aarch64-e2000_smp2.dtb" # Memory regions with format (`base_paddr`, `size`, `flags`, `map_type`). # For `map_type`, 0 means `MAP_ALLOC`, 1 means `MAP_IDENTICAL`. memory_regions = [ @@ -49,67 +47,11 @@ emu_devices = [] # Pass-through devices. # Name Base-Ipa Base-Pa Length Alloc-Irq. passthrough_devices = [ - [ - "QSPI", - 0x0000_0000, - 0x0000_0000, - 0x1000_0000, - 0x1, - ], - [ - "LocalBus", - 0x1000_0000, - 0x1000_0000, - 0x1000_0000, - 0x1, - ], - [ - "low speed peripherals", - 0x2800_0000, - 0x2800_0000, - 0x0800_0000, - 0x1, - ], - [ - "other peripherals", - 0x3000_0000, - 0x3000_0000, - 0x0800_0000, - 0x1, - ], - [ - "IACC", - 0x3800_0000, - 0x3800_0000, - 0x0800_0000, - 0x1, - ], - [ - "PCIE", - 0x4000_0000, - 0x4000_0000, - 0x4000_0000, - 0x1, - ], - [ - "QSPI high address", - 0x01_0000_0000, - 0x01_0000_0000, - 0x8000_0000, - 0x1, - ], - [ - "LocalBus high address", - 0x01_8000_0000, - 0x01_8000_0000, - 0x8000_0000, - 0x1, - ], - [ - "PCIe MEM64", - 0x10_0000_0000, - 0x10_0000_0000, - 0x01_0000_0000, - 0x1, - ], + ["/"], + #["/timer"], ] + +# Devices that are not desired to be passed through to the guest +excluded_devices = [ + # ["/gic-v3"], +] \ No newline at end of file diff --git a/configs/vms/linux-aarch64-qemu-smp1.toml b/configs/vms/linux-aarch64-qemu-smp1.toml index be50f924..3accc1b3 100644 --- a/configs/vms/linux-aarch64-qemu-smp1.toml +++ b/configs/vms/linux-aarch64-qemu-smp1.toml @@ -11,7 +11,6 @@ vm_type = 1 cpu_num = 1 # Guest vm physical cpu sets. phys_cpu_ids = [0] -phys_cpu_sets = [1] # # Vm kernel configs @@ -28,7 +27,7 @@ kernel_path = "tmp/Image" # The load address of the kernel image. kernel_load_addr = 0x8020_0000 # The file path of the device tree blob (DTB). -dtb_path = "tmp/linux-aarch64-qemu-smp1.dtb" +#dtb_path = "tmp/linux-aarch64-qemu-smp1.dtb" # The load address of the device tree blob (DTB). dtb_load_addr = 0x8000_0000 @@ -43,19 +42,15 @@ memory_regions = [ # [devices] # Pass-through devices. +# Name Base-Ipa Base-Pa Length Alloc-Irq. passthrough_devices = [ - ["intc@8000000", 0x800_0000, 0x800_0000, 0x100_0000, 0x1], - # ["pl011@9000000", 0x900_0000, 0x900_0000, 0x1000, 0x1], - # ["pl031@9010000", 0x901_0000, 0x901_0000, 0x1000, 0x1], - # ["pl061@9030000", 0x903_0000, 0x903_0000, 0x1000, 0x1], - # a003000.virtio_mmio virtio_mmio@a003000 - # a003200.virtio_mmio virtio_mmio@a003200 - # ["virtio_mmio", 0xa00_0000, 0xa00_0000, 0x4000, 0x1], - # ["low-devices", 0x0, 0x0, 0x0800_0000, 0x1], - # ["low-devices2", 0x09000000, 0x09000000, 0x1000_0000, 0x1], - # ["pci@10000000", 0x10000000, 0x10000000, 0x10000000, 0x1], - # ["pci", 0x4010000000, 0x4010000000, 0x100000, 0x1], - # ["pci-range", 0x8000000000, 0x8000000000, 0x10000, 0x1], + ["/"], + #["/timer"], +] + +# Devices that are not desired to be passed through to the guest +excluded_devices = [ + # ["/gic-v3"], ] # Emu_devices. diff --git a/configs/vms/linux-aarch64-rk3568-smp1.toml b/configs/vms/linux-aarch64-rk3568-smp1.toml index 69217e45..8301b575 100644 --- a/configs/vms/linux-aarch64-rk3568-smp1.toml +++ b/configs/vms/linux-aarch64-rk3568-smp1.toml @@ -11,8 +11,6 @@ vm_type = 1 cpu_num = 1 # The physical CPU ids. phys_cpu_ids = [0x00] -# Guest vm physical cpu sets. -phys_cpu_sets = [1] # # Vm kernel configs @@ -29,7 +27,7 @@ kernel_load_addr = 0x8008_0000 kernel_path = "/path/Image" ## The file path of the device tree blob (DTB). dtb_load_addr = 0x8000_0000 -dtb_path = "/path/linux-aarch64-rk3568_smp1.dtb" +#dtb_path = "/path/linux-aarch64-rk3568_smp1.dtb" # Memory regions with format (`base_paddr`, `size`, `flags`, `map_type`). # For `map_type`, 0 means `MAP_ALLOC`, 1 means `MAP_IDENTICAL`. memory_regions = [ @@ -48,39 +46,11 @@ emu_devices = [] # Pass-through devices. # Name Base-Ipa Base-Pa Length Alloc-Irq. passthrough_devices = [ - # [ - # "peripherals 1", - # 0xf000_0000, - # 0xf000_0000, - # 0xe66_0000, - # 0x1, - # ], - # [ - # "peripherals 2", - # 0xfe67_0000, - # 0xfe67_0000, - # 0x99_0000, - # 0x1, - # ], - [ - "all peripherals", - 0xf0000000, - 0xf0000000, - 0xf000000, - 0x1, - ], - [ - "PCIe related", - 0x3_0000_0000, - 0x3_0000_0000, - 0xd000_0000, - 0x1, - ], - [ - "ramoops, scmi-shmem, etc.", - 0x100000, - 0x100000, - 0x200000, - 0x1, - ], + ["/"], + #["/timer"], +] + +# Devices that are not desired to be passed through to the guest +excluded_devices = [ + # ["/gic-v3"], ] diff --git a/configs/vms/linux-aarch64-rk3568-smp2.toml b/configs/vms/linux-aarch64-rk3568-smp2.toml index 411b7fdc..70ae7ed4 100644 --- a/configs/vms/linux-aarch64-rk3568-smp2.toml +++ b/configs/vms/linux-aarch64-rk3568-smp2.toml @@ -11,8 +11,6 @@ vm_type = 1 cpu_num = 2 # The physical CPU ids. phys_cpu_ids = [0x200, 0x300] -# Guest vm physical cpu sets. -phys_cpu_sets = [4, 8] # # Vm kernel configs @@ -29,7 +27,7 @@ kernel_load_addr = 0x8008_0000 kernel_path = "/code/axvisor/rk3568-linux/Image" ## The file path of the device tree blob (DTB). dtb_load_addr = 0x8000_0000 -dtb_path = "/code/axvisor/configs/vms/linux-aarch64-rk3568_smp2.dtb" +#dtb_path = "/code/axvisor/configs/vms/linux-aarch64-rk3568_smp2.dtb" # Memory regions with format (`base_paddr`, `size`, `flags`, `map_type`). # For `map_type`, 0 means `MAP_ALLOC`, 1 means `MAP_IDENTICAL`. memory_regions = [ @@ -48,39 +46,11 @@ emu_devices = [] # Pass-through devices. # Name Base-Ipa Base-Pa Length Alloc-Irq. passthrough_devices = [ - # [ - # "peripherals 1", - # 0xf000_0000, - # 0xf000_0000, - # 0xe66_0000, - # 0x1, - # ], - # [ - # "peripherals 2", - # 0xfe67_0000, - # 0xfe67_0000, - # 0x99_0000, - # 0x1, - # ], - [ - "all peripherals", - 0xf0000000, - 0xf0000000, - 0xf000000, - 0x1, - ], - [ - "PCIe related", - 0x300000000, - 0x300000000, - 0xd0000000, - 0x1, - ], - [ - "ramoops, scmi-shmem, etc.", - 0x100000, - 0x100000, - 0x200000, - 0x1, - ], + ["/"], + #["/timer"], ] + +# Devices that are not desired to be passed through to the guest +excluded_devices = [ + # ["/gic-v3"], +] \ No newline at end of file diff --git a/configs/vms/linux-aarch64-tac_e400-smp1.toml b/configs/vms/linux-aarch64-tac_e400-smp1.toml index 107afe64..17784330 100644 --- a/configs/vms/linux-aarch64-tac_e400-smp1.toml +++ b/configs/vms/linux-aarch64-tac_e400-smp1.toml @@ -11,8 +11,6 @@ vm_type = 1 cpu_num = 1 # The physical CPU ids. phys_cpu_ids = [0x100] -# Guest vm physical cpu sets. -phys_cpu_sets = [8] # # Vm kernel configs @@ -29,7 +27,7 @@ kernel_load_addr = 0x20_4008_0000 kernel_path = "/path/to/Image" ## The file path of the device tree blob (DTB). dtb_load_addr = 0x20_4000_0000 -dtb_path = "/path/to/linux-aarch64-tac_e400-smp1.dtb" +#dtb_path = "/path/to/linux-aarch64-tac_e400-smp1.dtb" # Memory regions with format (`base_paddr`, `size`, `flags`, `map_type`). # For `map_type`, 0 means `MAP_ALLOC`, 1 means `MAP_IDENTICAL`. memory_regions = [ @@ -48,67 +46,11 @@ emu_devices = [] # Pass-through devices. # Name Base-Ipa Base-Pa Length Alloc-Irq. passthrough_devices = [ - [ - "QSPI", - 0x0000_0000, - 0x0000_0000, - 0x1000_0000, - 0x1, - ], - [ - "LocalBus", - 0x1000_0000, - 0x1000_0000, - 0x1000_0000, - 0x1, - ], - [ - "low speed peripherals", - 0x2800_0000, - 0x2800_0000, - 0x0800_0000, - 0x1, - ], - [ - "other peripherals", - 0x3000_0000, - 0x3000_0000, - 0x0800_0000, - 0x1, - ], - [ - "IACC", - 0x3800_0000, - 0x3800_0000, - 0x0800_0000, - 0x1, - ], - [ - "PCIE", - 0x4000_0000, - 0x4000_0000, - 0x4000_0000, - 0x1, - ], - [ - "QSPI high address", - 0x01_0000_0000, - 0x01_0000_0000, - 0x8000_0000, - 0x1, - ], - [ - "LocalBus high address", - 0x01_8000_0000, - 0x01_8000_0000, - 0x8000_0000, - 0x1, - ], - [ - "PCIe MEM64", - 0x10_0000_0000, - 0x10_0000_0000, - 0x01_0000_0000, - 0x1, - ], + ["/"], + #["/timer"], ] + +# Devices that are not desired to be passed through to the guest +excluded_devices = [ + # ["/gic-v3"], +] \ No newline at end of file diff --git a/configs/vms/nimbos-aarch64-qemu-smp1.toml b/configs/vms/nimbos-aarch64-qemu-smp1.toml index 52ee179d..7106afea 100644 --- a/configs/vms/nimbos-aarch64-qemu-smp1.toml +++ b/configs/vms/nimbos-aarch64-qemu-smp1.toml @@ -10,7 +10,7 @@ vm_type = 1 # The number of virtual CPUs. cpu_num = 1 # Guest vm physical cpu sets. -phys_cpu_sets = [1] +phys_cpu_ids = [0] # # Vm kernel configs @@ -65,10 +65,11 @@ emu_devices = [ # Pass-through devices. # Name Base-Ipa Base-Pa Length Alloc-Irq. passthrough_devices = [ - # ["intc@8000000", 0x801_0000, 0x804_0000, 0x2_000, 0x1], - ["intc@8000000", 0x800_0000, 0x800_0000, 0x40000, 0x1], - ["pl011@9000000", 0x900_0000, 0x904_0000, 0x1000, 0x1], - ["pl031@9010000", 0x901_0000, 0x901_0000, 0x1000, 0x1], - ["pl061@9030000", 0x903_0000, 0x903_0000, 0x1000, 0x1], # a003000.virtio_mmio virtio_mmio@a003000 # a003200.virtio_mmio virtio_mmio@a003200 - ["virtio_mmio", 0xa00_0000, 0xa00_0000, 0x4000, 0x1], + ["/"], + #["/timer"], ] + +# Devices that are not desired to be passed through to the guest +excluded_devices = [ + # ["/gic-v3"], +] \ No newline at end of file diff --git a/doc/FDT_Configuration_Guide.md b/doc/FDT_Configuration_Guide.md new file mode 100644 index 00000000..741a9f4e --- /dev/null +++ b/doc/FDT_Configuration_Guide.md @@ -0,0 +1,253 @@ +# AxVisor 设备树配置使用说明 + +本文档详细说明了在 AxVisor 中如何配置和使用设备树(FDT)来生成客户机 VM 的设备树。 + +本文档所述功能只在aarch64 架构下支持。 + +## 1. 概述 + +AxVisor 支持两种方式生成客户机 VM 的设备树: + +1. **使用预定义的设备树文件**:通过 [kernel] 部分的 `dtb_path` 指定设备树文件路径 +2. **动态生成设备树**:当 `dtb_path` 字段未使用时,根据配置文件中的参数动态生成设备树 + +无论采用哪种方式,CPU 节点和内存节点都会根据配置进行更新。 + +## 2. 配置文件结构 + +配置文件采用 TOML 格式,主要包含以下几个部分: + +```toml +[base] +# 基本配置信息 + +[kernel] +# 内核和设备树配置 + +[devices] +# 设备配置信息 +``` + +## 3. 设备树处理机制 + +### 3.1 使用预定义设备树文件 + +当 [kernel] 部分的 `dtb_path` 配置了设备树文件路径时: + +```toml +[kernel] +dtb_path = "/path/to/device-tree.dtb" +``` + +AxVisor 会优先使用提供的设备树文件,并根据以下配置更新其中的 CPU 节点和内存节点: + +- CPU 节点根据 [base] 部分的 `phys_cpu_ids` 更新 +- 内存节点根据 [kernel] 部分的 `memory_regions` 更新 + +注意:当使用预定义设备树文件时,[devices] 部分的 `passthrough_devices` 和 `excluded_devices` 配置将被忽略。 + +### 3.2 动态生成设备树 + +当 [kernel] 部分的 `dtb_path` 未添加时: + +```toml +[kernel] +# dtb_path = "" +``` + +AxVisor 会根据配置文件中的参数动态生成客户机设备树: + +1. **CPU 节点**:根据 [base] 部分的 `phys_cpu_ids` 生成 +2. **内存节点**:根据 [kernel] 部分的 `memory_regions` 生成 +3. **其他设备节点**:根据 [devices] 部分的 `passthrough_devices` 和 `excluded_devices` 生成 + +## 4. 配置参数详解 + +### 4.1 基本配置 [base] + +```toml +[base] +id = 1 # 客户机 VM ID +name = "linux-qemu" # 客户机 VM 名称 +vm_type = 1 # 虚拟化类型 +cpu_num = 1 # 虚拟 CPU 数量 +phys_cpu_ids = [0] # 客户机 VM 物理 CPU 集合 +``` + +注意:配置文件中的 `phys_cpu_sets` 字段已不再需要手动配置。AxVisor 会根据主机设备树和 `phys_cpu_ids` 自动识别并生成相应的 CPU 集合掩码。 + +### 4.2 内核配置 [kernel] + +```toml +[kernel] +entry_point = 0x8020_0000 # 内核镜像入口点 +image_location = "memory" # 镜像位置 ("memory" | "fs") +kernel_path = "tmp/Image" # 内核镜像文件路径 +kernel_load_addr = 0x8020_0000 # 内核镜像加载地址 +dtb_path = "tmp/linux.dtb" # 设备树文件路径(空字符串表示动态生成) +dtb_load_addr = 0x8000_0000 # 设备树加载地址 + +# 内存区域配置,格式为 (基地址, 大小, 标志, 映射类型) +memory_regions = [ + [0x8000_0000, 0x1000_0000, 0x7, 0], # 系统 RAM 1G MAP_IDENTICAL +] +``` + +### 4.3 设备配置 [devices] + +```toml +[devices] +# 直通设备配置(仅在动态生成设备树时生效) +passthrough_devices = [ + ["/intc"], +] + +# 排除设备配置(仅在动态生成设备树时生效) +excluded_devices = [ + ["/intc"], +] +``` + +注意:直通设备配置已简化,现在只需要提供从根节点开始的完整路径即可,如 ["/intc"]。设备的地址、大小等信息会根据设备树自动识别并直通,无需手动填写。 + +## 5. 设备直通机制 + +### 5.1 直通设备配置 + +`passthrough_devices` 定义了需要直通给客户机的设备节点: + +```toml +passthrough_devices = [ + ["/"], # 直通根节点及其所有子节点 + ["/intc"], # 直通 /intc 节点及其子节点 +] +``` + +设备节点格式为从根节点开始的全局路径(如 `/intc`),在直通时会将以下节点包含在客户机设备树中: + +1. 指定的直通节点本身 +2. 直通节点的所有后代节点 +3. 与直通设备相关的依赖节点 + +注意: +1. 此配置仅在动态生成设备树时生效,当使用预定义设备树文件时将被忽略。 +2. 直通设备配置已简化,现在只需要提供从根节点开始的完整路径即可,设备的地址、大小等信息会根据设备树自动识别并直通。 + +### 5.2 排除设备配置 + +`excluded_devices` 定义了不希望直通给客户机的设备节点: + +```toml +excluded_devices = [ + ["/timer"], # 排除 /timer 节点及其子节点 +] +``` + +在查找所有直通节点后,会将排除的节点及其后代节点从最终的客户机设备树中移除。 + +注意:此配置仅在动态生成设备树时生效,当使用预定义设备树文件时将被忽略。 + +## 6. 示例配置 + +### 6.1 使用预定义设备树文件的配置 + +```toml +[base] +id = 1 +name = "linux-qemu" +vm_type = 1 +cpu_num = 2 +phys_cpu_ids = [0, 1] +# phys_cpu_sets 不再需要手动配置,会自动根据 phys_cpu_ids 生成 + +[kernel] +entry_point = 0x8020_0000 +image_location = "memory" +kernel_path = "tmp/Image" +kernel_load_addr = 0x8020_0000 +dtb_path = "/home/user/device-tree.dtb" # 使用预定义设备树文件 +dtb_load_addr = 0x8000_0000 + +memory_regions = [ + [0x8000_0000, 0x1000_0000, 0x7, 1], # System RAM 1G MAP_IDENTICAL +] + +[devices] +# 注意:以下配置在使用预定义设备树时将被忽略 +passthrough_devices = [ + ["/intc"], +] +excluded_devices = [ + ["/timer"], +] +``` + +### 6.2 动态生成设备树的配置 + +```toml +[base] +id = 1 +name = "linux-qemu" +vm_type = 1 +cpu_num = 2 +phys_cpu_ids = [0, 1] +# phys_cpu_sets 不再需要手动配置,会自动根据 phys_cpu_ids 生成 + +[kernel] +entry_point = 0x8020_0000 +image_location = "memory" +kernel_path = "tmp/Image" +kernel_load_addr = 0x8020_0000 +# dtb_path = "" # 不使用该字段表示动态生成设备树 +dtb_load_addr = 0x8000_0000 + +memory_regions = [ + [0x8000_0000, 0x1000_0000, 0x7, 1], # System RAM 1G MAP_IDENTICAL +] + +[devices] +# 以下配置仅在动态生成设备树时生效 +# 注意:直通设备配置已简化,现在只需要提供从根节点开始的完整路径即可 +passthrough_devices = [ + ["/"], + ["/intc"], +] + +excluded_devices = [ + ["/timer"], + ["/watchdog"], +] +``` + +## 7. 处理流程 + +1. **检查 dtb_path**: + - 如果使用 `dtb_path` 字段,则加载并使用预定义的设备树文件,此时 `passthrough_devices` 和 `excluded_devices` 配置将被忽略 + - 如果未使用 `dtb_path` 字段,则动态生成设备树,此时 `passthrough_devices` 和 `excluded_devices` 配置生效 + +2. **CPU 节点处理**: + - 根据 `phys_cpu_ids` 配置更新或生成 CPU 节点 + - 只包含配置中指定的 CPU + - 自动根据 `phys_cpu_ids` 生成 `phys_cpu_sets`,无需手动配置 + +3. **内存节点处理**: + - 根据 `memory_regions` 配置更新或生成内存节点 + - 按照指定的地址和大小创建内存区域 + +4. **设备节点处理**(仅在动态生成时): + - 根据 `passthrough_devices` 确定需要包含的设备节点 + - 包括直通节点、其后代节点以及相关依赖节点 + - 根据 `excluded_devices` 排除指定的设备节点及其后代节点 + +5. **生成最终设备树**: + - 将处理后的节点组合成完整的设备树 + - 存储在全局缓存中供后续使用 + +## 8. 特别配置 +1. **qemu 启动参数**: +``` + arceos_args = ["BUS=mmio", "BLK=y", "LOG=info", "SMP=4", "MEM=8g", + "QEMU_ARGS=\"-machine gic-version=3 -cpu cortex-a72 -append 'root=/dev/vda rw init=/init' \"", + "DISK_IMG=\"tmp/qemu/rootfs.img\"",] +``` +其中当不提供设备树时 `-append 'root=/dev/vda rw init=/init'`参数必须添加,目的是在主机设备树中添加chosen节点的bootargs属性。 \ No newline at end of file diff --git a/platform/aarch64-phytium-pi/Cargo.lock b/platform/aarch64-phytium-pi/Cargo.lock new file mode 100644 index 00000000..73e1dbc1 --- /dev/null +++ b/platform/aarch64-phytium-pi/Cargo.lock @@ -0,0 +1,3562 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "aarch64-cpu" +version = "10.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a21cd0131c25c438e19cd6a774adf7e3f64f7f4d723022882facc2dee0f8bc9" +dependencies = [ + "tock-registers 0.9.0", +] + +[[package]] +name = "aarch64-cpu-ext" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52dad5cf7342926ce1c375ec680834e56dd3cdbe8b7adf8a6f99b2854cc52c17" +dependencies = [ + "aarch64-cpu", + "tock-registers 0.10.0", +] + +[[package]] +name = "addr2line" +version = "0.24.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1" +dependencies = [ + "gimli", +] + +[[package]] +name = "adler2" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa" + +[[package]] +name = "anstream" +version = "0.6.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ae563653d1938f79b1ab1b5e668c87c76a9930414574a6583a7b7e11a8e6192" +dependencies = [ + "anstyle", + "anstyle-parse", + "anstyle-query", + "anstyle-wincon", + "colorchoice", + "is_terminal_polyfill", + "utf8parse", +] + +[[package]] +name = "anstyle" +version = "1.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "862ed96ca487e809f1c8e5a8447f6ee2cf102f846893800b20cebdf541fc6bbd" + +[[package]] +name = "anstyle-parse" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e7644824f0aa2c7b9384579234ef10eb7efb6a0deb83f9630a49594dd9c15c2" +dependencies = [ + "utf8parse", +] + +[[package]] +name = "anstyle-query" +version = "1.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e231f6134f61b71076a3eab506c379d4f36122f2af15a9ff04415ea4c3339e2" +dependencies = [ + "windows-sys 0.60.2", +] + +[[package]] +name = "anstyle-wincon" +version = "3.0.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e0633414522a32ffaac8ac6cc8f748e090c5717661fddeea04219e2344f5f2a" +dependencies = [ + "anstyle", + "once_cell_polyfill", + "windows-sys 0.60.2", +] + +[[package]] +name = "any-uart" +version = "0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ce5f140efb4e707ea8f8e894d5f710500e373be1c4435d56b28d1fd1f843341" +dependencies = [ + "bitflags 2.9.4", + "cfg-if", + "embedded-hal-nb", + "fdt-parser", + "x86_64", +] + +[[package]] +name = "anyhow" +version = "1.0.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a23eb6b1614318a8071c9b2521f36b424b2c83db5eb3a0fead4a6c0809af6e61" + +[[package]] +name = "arm-gic-driver" +version = "0.15.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f251a1a74133f802b55eaf5e340107b0024457aa9b2ac3c72074501bfa8509a5" +dependencies = [ + "aarch64-cpu", + "bitflags 2.9.4", + "enum_dispatch", + "log", + "paste", + "rdif-intc", + "tock-registers 0.9.0", +] + +[[package]] +name = "as-any" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0f477b951e452a0b6b4a10b53ccd569042d1d01729b519e02074a9c0958a063" + +[[package]] +name = "async-trait" +version = "0.1.89" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "atomic-waker" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" + +[[package]] +name = "autocfg" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" + +[[package]] +name = "axbsp-phytium-pi" +version = "0.1.0" +source = "git+https://github.com/drivercraft/axbsp.git#5dce480c619b6435135808c764aff818c4e891a1" +dependencies = [ + "axklib", + "axplat-aarch64-dyn", + "log", + "phytium-mci", + "rdif-block", + "rdrive", + "serde", + "spin 0.10.0", + "toml 0.8.23", +] + +[[package]] +name = "axconfig-gen" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0bf14099a96dbb925e39a44c4f25555f1e24516194452a84a943aa7eda62383d" +dependencies = [ + "clap", + "toml_edit", +] + +[[package]] +name = "axconfig-macros" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f86a6711b80fbd1dc4c1d8e2fb77a5de6fc8e2eb2b96bbd0420ca8af370eb74c" +dependencies = [ + "axconfig-gen", + "proc-macro2", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "axcpu" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e09bc1235e3da45e942b50f47812f8397ad84cb490264bf914c65ac44e6f8b1d" +dependencies = [ + "aarch64-cpu", + "cfg-if", + "lazyinit", + "linkme", + "log", + "loongArch64", + "memory_addr", + "page_table_entry", + "page_table_multiarch", + "percpu", + "riscv", + "static_assertions", + "tock-registers 0.9.0", + "x86", + "x86_64", +] + +[[package]] +name = "axerrno" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "66ccd41dd4ef364e2385901a5c2a3adea974a41eccb2529c1f24e4c8bc93d834" +dependencies = [ + "log", +] + +[[package]] +name = "axklib" +version = "0.2.0" +source = "git+https://github.com/arceos-hypervisor/arceos?branch=hypervisor#96049da415c9b8f54caea54fdd98f4d69ca01670" +dependencies = [ + "axerrno", + "memory_addr", + "trait-ffi", +] + +[[package]] +name = "axplat" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4de04c54b63bf2ca1ff202733d2516da49d7779649cdb2f9c4ecf22909e6810" +dependencies = [ + "axplat-macros", + "bitflags 2.9.4", + "const-str", + "crate_interface", + "handler_table", + "kspin", + "memory_addr", +] + +[[package]] +name = "axplat-aarch64-dyn" +version = "0.2.0" +source = "git+https://github.com/arceos-hypervisor/axplat-aarch64-dyn?tag=v0.2.0#bdde9eec2a91f8c64926a991cbf6a4b048446165" +dependencies = [ + "aarch64-cpu", + "aarch64-cpu-ext", + "any-uart", + "arm-gic-driver", + "axconfig-macros", + "axcpu", + "axplat", + "fdt-parser", + "heapless", + "lazyinit", + "log", + "memory_addr", + "page_table_entry", + "paste", + "percpu", + "rdif-intc", + "rdrive", + "serde", + "somehal", + "spin 0.10.0", + "toml 0.8.23", +] + +[[package]] +name = "axplat-aarch64-phytium-pi" +version = "0.1.0" +dependencies = [ + "axbsp-phytium-pi", + "serde", + "toml 0.8.23", +] + +[[package]] +name = "axplat-macros" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f90dfaee06a112fe4f810c60af1a86bc080af2172185b491cacc307b84dff748" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "backtrace" +version = "0.3.75" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6806a6321ec58106fea15becdad98371e28d92ccbc7c8f1b3b6dd724fe8f1002" +dependencies = [ + "addr2line", + "cfg-if", + "libc", + "miniz_oxide", + "object", + "rustc-demangle", + "windows-targets 0.52.6", +] + +[[package]] +name = "bare-test-macros" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e585a01076fee271c5aabcf36212acb349fb3e638561d842fffa8ca013f4fdd8" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "base64" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" + +[[package]] +name = "base64" +version = "0.21.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" + +[[package]] +name = "base64" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" + +[[package]] +name = "bindeps-simple" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "759b427caeff86cb964340e5fee96d7b26a58853941d3a8e051f46be7b1fada3" +dependencies = [ + "anyhow", + "cargo_metadata", + "flate2", + "rand", + "reqwest 0.12.23", + "tar", +] + +[[package]] +name = "bit_field" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e4b40c7323adcfc0a41c4b88143ed58346ff65a288fc144329c5c45e05d70c6" + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "bitflags" +version = "2.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2261d10cca569e4643e526d8dc2e62e433cc8aba21ab764233731f8d369bf394" + +[[package]] +name = "bumpalo" +version = "3.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46c5e41b57b8bba42a04676d81cb89e9ee8e859a1a66f80a5a72e1cb76b34d43" + +[[package]] +name = "bytemuck" +version = "1.23.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3995eaeebcdf32f91f980d360f78732ddc061097ab4e39991ae7a6ace9194677" + +[[package]] +name = "byteorder" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" + +[[package]] +name = "bytes" +version = "1.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a" + +[[package]] +name = "camino" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1de8bc0aa9e9385ceb3bf0c152e3a9b9544f6c4a912c8ae504e80c1f0368603" +dependencies = [ + "serde_core", +] + +[[package]] +name = "cargo-platform" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84982c6c0ae343635a3a4ee6dedef965513735c8b183caa7289fa6e27399ebd4" +dependencies = [ + "serde", +] + +[[package]] +name = "cargo-util-schemas" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e63d2780ac94487eb9f1fea7b0d56300abc9eb488800854ca217f102f5caccca" +dependencies = [ + "semver", + "serde", + "serde-untagged", + "serde-value", + "thiserror 1.0.69", + "toml 0.8.23", + "unicode-xid", + "url", +] + +[[package]] +name = "cargo_metadata" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4f7835cfc6135093070e95eb2b53e5d9b5c403dc3a6be6040ee026270aa82502" +dependencies = [ + "camino", + "cargo-platform", + "cargo-util-schemas", + "semver", + "serde", + "serde_json", + "thiserror 2.0.16", +] + +[[package]] +name = "cc" +version = "1.2.38" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "80f41ae168f955c12fb8960b057d70d0ca153fb83182b57d86380443527be7e9" +dependencies = [ + "find-msvc-tools", + "shlex", +] + +[[package]] +name = "cfg-if" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2fd1289c04a9ea8cb22300a459a72a385d7c73d3259e2ed7dcb2af674838cfa9" + +[[package]] +name = "clap" +version = "4.5.48" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2134bb3ea021b78629caa971416385309e0131b351b25e01dc16fb54e1b5fae" +dependencies = [ + "clap_builder", + "clap_derive", +] + +[[package]] +name = "clap_builder" +version = "4.5.48" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2ba64afa3c0a6df7fa517765e31314e983f51dda798ffba27b988194fb65dc9" +dependencies = [ + "anstream", + "anstyle", + "clap_lex", + "strsim", +] + +[[package]] +name = "clap_derive" +version = "4.5.47" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbfd7eae0b0f1a6e63d4b13c9c478de77c2eb546fba158ad50b4203dc24b9f9c" +dependencies = [ + "heck", + "proc-macro2", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "clap_lex" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b94f61472cee1439c0b966b47e3aca9ae07e45d070759512cd390ea2bebc6675" + +[[package]] +name = "colorchoice" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b05b61dc5112cbb17e4b6cd61790d9845d13888356391624cbe7e41efeac1e75" + +[[package]] +name = "const-default" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b396d1f76d455557e1218ec8066ae14bba60b4b36ecd55577ba979f5db7ecaa" + +[[package]] +name = "const-str" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "451d0640545a0553814b4c646eb549343561618838e9b42495f466131fe3ad49" + +[[package]] +name = "convert_case" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baaaa0ecca5b51987b9423ccdc971514dd8b0bb7b4060b983d3664dad3f1f89f" +dependencies = [ + "unicode-segmentation", +] + +[[package]] +name = "core-foundation" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "core-foundation-sys" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" + +[[package]] +name = "crate_interface" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70272a03a2cef15589bac05d3d15c023752f5f8f2da8be977d983a9d9e6250fb" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "crc32fast" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "critical-section" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "790eea4361631c5e7d22598ecd5723ff611904e3344ce8720784c93e3d83d40b" + +[[package]] +name = "darling" +version = "0.20.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc7f46116c46ff9ab3eb1597a45688b6715c6e628b5c133e288e709a29bcb4ee" +dependencies = [ + "darling_core", + "darling_macro", +] + +[[package]] +name = "darling_core" +version = "0.20.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d00b9596d185e565c2207a0b01f8bd1a135483d02d9b7b0a54b11da8d53412e" +dependencies = [ + "fnv", + "ident_case", + "proc-macro2", + "quote", + "strsim", + "syn 2.0.106", +] + +[[package]] +name = "darling_macro" +version = "0.20.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead" +dependencies = [ + "darling_core", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "displaydoc" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "dma-api" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "624f4a84cc1031cfceb56780b82570a785f6cfdcee4f34c06c4e8f1fba25c970" + +[[package]] +name = "dma-api" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2bef2303b0bbacb23e7e1990fb31bed5cb46bc67aa4f307c03117b81bdee4d9f" +dependencies = [ + "aarch64-cpu-ext", + "cfg-if", + "spin 0.10.0", + "thiserror 2.0.16", +] + +[[package]] +name = "embedded-hal" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "361a90feb7004eca4019fb28352a9465666b24f840f5c3cddf0ff13920590b89" + +[[package]] +name = "embedded-hal-nb" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fba4268c14288c828995299e59b12babdbe170f6c6d73731af1b4648142e8605" +dependencies = [ + "embedded-hal", + "nb", +] + +[[package]] +name = "encoding_rs" +version = "0.8.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "enum_dispatch" +version = "0.3.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa18ce2bc66555b3218614519ac839ddb759a7d6720732f979ef8d13be147ecd" +dependencies = [ + "once_cell", + "proc-macro2", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "equivalent" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" + +[[package]] +name = "erased-serde" +version = "0.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "259d404d09818dec19332e31d94558aeb442fea04c817006456c24b5460bbd4b" +dependencies = [ + "serde", + "serde_core", + "typeid", +] + +[[package]] +name = "errno" +version = "0.3.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" +dependencies = [ + "libc", + "windows-sys 0.61.1", +] + +[[package]] +name = "fastrand" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" + +[[package]] +name = "fdt-parser" +version = "0.4.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16ca123a5721e4a28ef60d6e1600cd0a33a9ab376c4b88de04c99bce757e458b" + +[[package]] +name = "filetime" +version = "0.2.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc0505cd1b6fa6580283f6bdf70a73fcf4aba1184038c90902b92b3dd0df63ed" +dependencies = [ + "cfg-if", + "libc", + "libredox", + "windows-sys 0.60.2", +] + +[[package]] +name = "find-msvc-tools" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ced73b1dacfc750a6db6c0a0c3a3853c8b41997e2e2c563dc90804ae6867959" + +[[package]] +name = "flate2" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a3d7db9596fecd151c5f638c0ee5d5bd487b6e0ea232e5dc96d5250f6f94b1d" +dependencies = [ + "crc32fast", + "miniz_oxide", +] + +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + +[[package]] +name = "foreign-types" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" +dependencies = [ + "foreign-types-shared", +] + +[[package]] +name = "foreign-types-shared" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" + +[[package]] +name = "form_urlencoded" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf" +dependencies = [ + "percent-encoding", +] + +[[package]] +name = "futures" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876" +dependencies = [ + "futures-channel", + "futures-core", + "futures-executor", + "futures-io", + "futures-sink", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-channel" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" +dependencies = [ + "futures-core", + "futures-sink", +] + +[[package]] +name = "futures-core" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" + +[[package]] +name = "futures-executor" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e28d1d997f585e54aebc3f97d39e72338912123a67330d723fdbb564d646c9f" +dependencies = [ + "futures-core", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-io" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" + +[[package]] +name = "futures-macro" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "futures-sink" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" + +[[package]] +name = "futures-task" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" + +[[package]] +name = "futures-util" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" +dependencies = [ + "futures-channel", + "futures-core", + "futures-io", + "futures-macro", + "futures-sink", + "futures-task", + "memchr", + "pin-project-lite", + "pin-utils", + "slab", +] + +[[package]] +name = "getrandom" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592" +dependencies = [ + "cfg-if", + "libc", + "wasi 0.11.1+wasi-snapshot-preview1", +] + +[[package]] +name = "getrandom" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26145e563e54f2cadc477553f1ec5ee650b00862f0a58bcd12cbdc5f0ea2d2f4" +dependencies = [ + "cfg-if", + "libc", + "r-efi", + "wasi 0.14.7+wasi-0.2.4", +] + +[[package]] +name = "gimli" +version = "0.31.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" + +[[package]] +name = "h2" +version = "0.3.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0beca50380b1fc32983fc1cb4587bfa4bb9e78fc259aad4a0032d2080309222d" +dependencies = [ + "bytes", + "fnv", + "futures-core", + "futures-sink", + "futures-util", + "http 0.2.12", + "indexmap", + "slab", + "tokio", + "tokio-util", + "tracing", +] + +[[package]] +name = "h2" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3c0b69cfcb4e1b9f1bf2f53f95f766e4661169728ec61cd3fe5a0166f2d1386" +dependencies = [ + "atomic-waker", + "bytes", + "fnv", + "futures-core", + "futures-sink", + "http 1.3.1", + "indexmap", + "slab", + "tokio", + "tokio-util", + "tracing", +] + +[[package]] +name = "handler_table" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "702cb690200d6303c1e1992bc648f3f3bf9c1d6a27fcf50551c513d61f339c99" + +[[package]] +name = "hash32" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47d60b12902ba28e2730cd37e95b8c9223af2808df9e902d4df49588d1470606" +dependencies = [ + "byteorder", +] + +[[package]] +name = "hashbrown" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5419bdc4f6a9207fbeba6d11b604d481addf78ecd10c11ad51e76c2f6482748d" + +[[package]] +name = "heapless" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0bfb9eb618601c89945a70e254898da93b13be0388091d42117462b265bb3fad" +dependencies = [ + "hash32", + "stable_deref_trait", +] + +[[package]] +name = "heck" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" + +[[package]] +name = "http" +version = "0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" +dependencies = [ + "bytes", + "fnv", + "itoa", +] + +[[package]] +name = "http" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4a85d31aea989eead29a3aaf9e1115a180df8282431156e533de47660892565" +dependencies = [ + "bytes", + "fnv", + "itoa", +] + +[[package]] +name = "http-body" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" +dependencies = [ + "bytes", + "http 0.2.12", + "pin-project-lite", +] + +[[package]] +name = "http-body" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" +dependencies = [ + "bytes", + "http 1.3.1", +] + +[[package]] +name = "http-body-util" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b021d93e26becf5dc7e1b75b1bed1fd93124b374ceb73f43d4d4eafec896a64a" +dependencies = [ + "bytes", + "futures-core", + "http 1.3.1", + "http-body 1.0.1", + "pin-project-lite", +] + +[[package]] +name = "httparse" +version = "1.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87" + +[[package]] +name = "httpdate" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" + +[[package]] +name = "hyper" +version = "0.14.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41dfc780fdec9373c01bae43289ea34c972e40ee3c9f6b3c8801a35f35586ce7" +dependencies = [ + "bytes", + "futures-channel", + "futures-core", + "futures-util", + "h2 0.3.27", + "http 0.2.12", + "http-body 0.4.6", + "httparse", + "httpdate", + "itoa", + "pin-project-lite", + "socket2 0.5.10", + "tokio", + "tower-service", + "tracing", + "want", +] + +[[package]] +name = "hyper" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eb3aa54a13a0dfe7fbe3a59e0c76093041720fdc77b110cc0fc260fafb4dc51e" +dependencies = [ + "atomic-waker", + "bytes", + "futures-channel", + "futures-core", + "h2 0.4.12", + "http 1.3.1", + "http-body 1.0.1", + "httparse", + "itoa", + "pin-project-lite", + "pin-utils", + "smallvec", + "tokio", + "want", +] + +[[package]] +name = "hyper-rustls" +version = "0.27.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3c93eb611681b207e1fe55d5a71ecf91572ec8a6705cdb6857f7d8d5242cf58" +dependencies = [ + "http 1.3.1", + "hyper 1.7.0", + "hyper-util", + "rustls", + "rustls-pki-types", + "tokio", + "tokio-rustls", + "tower-service", +] + +[[package]] +name = "hyper-tls" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" +dependencies = [ + "bytes", + "hyper 0.14.32", + "native-tls", + "tokio", + "tokio-native-tls", +] + +[[package]] +name = "hyper-tls" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0" +dependencies = [ + "bytes", + "http-body-util", + "hyper 1.7.0", + "hyper-util", + "native-tls", + "tokio", + "tokio-native-tls", + "tower-service", +] + +[[package]] +name = "hyper-util" +version = "0.1.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c6995591a8f1380fcb4ba966a252a4b29188d51d2b89e3a252f5305be65aea8" +dependencies = [ + "base64 0.22.1", + "bytes", + "futures-channel", + "futures-core", + "futures-util", + "http 1.3.1", + "http-body 1.0.1", + "hyper 1.7.0", + "ipnet", + "libc", + "percent-encoding", + "pin-project-lite", + "socket2 0.6.0", + "system-configuration 0.6.1", + "tokio", + "tower-service", + "tracing", + "windows-registry", +] + +[[package]] +name = "icu_collections" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "200072f5d0e3614556f94a9930d5dc3e0662a652823904c3a75dc3b0af7fee47" +dependencies = [ + "displaydoc", + "potential_utf", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_locale_core" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0cde2700ccaed3872079a65fb1a78f6c0a36c91570f28755dda67bc8f7d9f00a" +dependencies = [ + "displaydoc", + "litemap", + "tinystr", + "writeable", + "zerovec", +] + +[[package]] +name = "icu_normalizer" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "436880e8e18df4d7bbc06d58432329d6458cc84531f7ac5f024e93deadb37979" +dependencies = [ + "displaydoc", + "icu_collections", + "icu_normalizer_data", + "icu_properties", + "icu_provider", + "smallvec", + "zerovec", +] + +[[package]] +name = "icu_normalizer_data" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00210d6893afc98edb752b664b8890f0ef174c8adbb8d0be9710fa66fbbf72d3" + +[[package]] +name = "icu_properties" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "016c619c1eeb94efb86809b015c58f479963de65bdb6253345c1a1276f22e32b" +dependencies = [ + "displaydoc", + "icu_collections", + "icu_locale_core", + "icu_properties_data", + "icu_provider", + "potential_utf", + "zerotrie", + "zerovec", +] + +[[package]] +name = "icu_properties_data" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "298459143998310acd25ffe6810ed544932242d3f07083eee1084d83a71bd632" + +[[package]] +name = "icu_provider" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03c80da27b5f4187909049ee2d72f276f0d9f99a42c306bd0131ecfe04d8e5af" +dependencies = [ + "displaydoc", + "icu_locale_core", + "stable_deref_trait", + "tinystr", + "writeable", + "yoke", + "zerofrom", + "zerotrie", + "zerovec", +] + +[[package]] +name = "ident_case" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" + +[[package]] +name = "idna" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de" +dependencies = [ + "idna_adapter", + "smallvec", + "utf8_iter", +] + +[[package]] +name = "idna_adapter" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3acae9609540aa318d1bc588455225fb2085b9ed0c4f6bd0d9d5bcd86f1a0344" +dependencies = [ + "icu_normalizer", + "icu_properties", +] + +[[package]] +name = "indexmap" +version = "2.11.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b0f83760fb341a774ed326568e19f5a863af4a952def8c39f9ab92fd95b88e5" +dependencies = [ + "equivalent", + "hashbrown", +] + +[[package]] +name = "io-uring" +version = "0.7.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "046fa2d4d00aea763528b4950358d0ead425372445dc8ff86312b3c69ff7727b" +dependencies = [ + "bitflags 2.9.4", + "cfg-if", + "libc", +] + +[[package]] +name = "ipnet" +version = "2.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130" + +[[package]] +name = "iri-string" +version = "0.7.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbc5ebe9c3a1a7a5127f920a418f7585e9e758e911d0466ed004f393b0e380b2" +dependencies = [ + "memchr", + "serde", +] + +[[package]] +name = "is_terminal_polyfill" +version = "1.70.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf" + +[[package]] +name = "itoa" +version = "1.0.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" + +[[package]] +name = "js-sys" +version = "0.3.81" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec48937a97411dcb524a265206ccd4c90bb711fca92b2792c407f268825b9305" +dependencies = [ + "once_cell", + "wasm-bindgen", +] + +[[package]] +name = "kasm-aarch64" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "791dc7a2b079d81b8e3615521fccbd75c0c9f068b53f7d891a2e300222c7cada" +dependencies = [ + "darling", + "proc-macro2", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "kdef-pgtable" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7166660a78a4488f5f3269206242d3b76cd6b42d870f004898487ce16dba3f69" +dependencies = [ + "bitflags 2.9.4", + "prettyplease", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "kernel_guard" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "307e6be468f3d6b6d895e191f63c11602e4e76575ecca68325d8c8dbebe2870e" +dependencies = [ + "cfg-if", + "crate_interface", +] + +[[package]] +name = "kspin" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d841fd3aeaa9a55871068f5c3ce48497a6dbcf14e20ca7784a9f68bfdb4c825" +dependencies = [ + "cfg-if", + "kernel_guard", +] + +[[package]] +name = "lazy_static" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" +dependencies = [ + "spin 0.9.8", +] + +[[package]] +name = "lazyinit" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17f03abfebdaaf0fad16790237a0348baf84886d3ade460db13bae59e614a180" + +[[package]] +name = "lenient_semver" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "de8de3f4f3754c280ce1c8c42ed8dd26a9c8385c2e5ad4ec5a77e774cea9c1ec" +dependencies = [ + "lenient_semver_parser", + "semver", +] + +[[package]] +name = "lenient_semver_parser" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f650c1d024ddc26b4bb79c3076b30030f2cf2b18292af698c81f7337a64d7d6" +dependencies = [ + "lenient_semver_version_builder", + "semver", +] + +[[package]] +name = "lenient_semver_version_builder" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9049f8ff49f75b946f95557148e70230499c8a642bf2d6528246afc7d0282d17" +dependencies = [ + "semver", +] + +[[package]] +name = "libc" +version = "0.2.176" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "58f929b4d672ea937a23a1ab494143d968337a5f47e56d0815df1e0890ddf174" + +[[package]] +name = "libredox" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "416f7e718bdb06000964960ffa43b4335ad4012ae8b99060261aa4a8088d5ccb" +dependencies = [ + "bitflags 2.9.4", + "libc", + "redox_syscall", +] + +[[package]] +name = "linkme" +version = "0.3.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1b1703c00b2a6a70738920544aa51652532cacddfec2e162d2e29eae01e665c" +dependencies = [ + "linkme-impl", +] + +[[package]] +name = "linkme-impl" +version = "0.3.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04d55ca5d5a14363da83bf3c33874b8feaa34653e760d5216d7ef9829c88001a" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "linux-raw-sys" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df1d3c3b53da64cf5760482273a98e575c651a67eec7f77df96b5b642de8f039" + +[[package]] +name = "litemap" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "241eaef5fd12c88705a01fc1066c48c4b36e0dd4377dcdc7ec3942cea7a69956" + +[[package]] +name = "lock_api" +version = "0.4.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96936507f153605bddfcda068dd804796c84324ed2510809e5b2a624c81da765" +dependencies = [ + "autocfg", + "scopeguard", +] + +[[package]] +name = "log" +version = "0.4.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34080505efa8e45a4b816c349525ebe327ceaa8559756f0356cba97ef3bf7432" + +[[package]] +name = "loongArch64" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c9f0d275c70310e2a9d2fc23250c5ac826a73fa828a5f256401f85c5c554283" +dependencies = [ + "bit_field", + "bitflags 2.9.4", +] + +[[package]] +name = "memchr" +version = "2.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f52b00d39961fc5b2736ea853c9cc86238e165017a493d1d5c8eac6bdc4cc273" + +[[package]] +name = "memory_addr" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d4054cba279515fa87761b101d857333ce06391dbe8f18a11347204a7111416" + +[[package]] +name = "mime" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" + +[[package]] +name = "miniz_oxide" +version = "0.8.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316" +dependencies = [ + "adler2", +] + +[[package]] +name = "mio" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78bed444cc8a2160f01cbcf811ef18cac863ad68ae8ca62092e8db51d51c761c" +dependencies = [ + "libc", + "wasi 0.11.1+wasi-snapshot-preview1", + "windows-sys 0.59.0", +] + +[[package]] +name = "native-tls" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87de3442987e9dbec73158d5c715e7ad9072fda936bb03d19d7fa10e00520f0e" +dependencies = [ + "libc", + "log", + "openssl", + "openssl-probe", + "openssl-sys", + "schannel", + "security-framework", + "security-framework-sys", + "tempfile", +] + +[[package]] +name = "nb" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d5439c4ad607c3c23abf66de8c8bf57ba8adcd1f129e699851a6e43935d339d" + +[[package]] +name = "num-align" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4b86e8ef968de2261141fc760ee57cae8fabb3a0e756b3390a4c4871b16c3d1" + +[[package]] +name = "num-traits" +version = "0.2.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" +dependencies = [ + "autocfg", +] + +[[package]] +name = "object" +version = "0.36.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87" +dependencies = [ + "memchr", +] + +[[package]] +name = "once_cell" +version = "1.21.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" + +[[package]] +name = "once_cell_polyfill" +version = "1.70.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4895175b425cb1f87721b59f0f286c2092bd4af812243672510e1ac53e2e0ad" + +[[package]] +name = "openssl" +version = "0.10.73" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8505734d46c8ab1e19a1dce3aef597ad87dcb4c37e7188231769bd6bd51cebf8" +dependencies = [ + "bitflags 2.9.4", + "cfg-if", + "foreign-types", + "libc", + "once_cell", + "openssl-macros", + "openssl-sys", +] + +[[package]] +name = "openssl-macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "openssl-probe" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e" + +[[package]] +name = "openssl-sys" +version = "0.9.109" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90096e2e47630d78b7d1c20952dc621f957103f8bc2c8359ec81290d75238571" +dependencies = [ + "cc", + "libc", + "pkg-config", + "vcpkg", +] + +[[package]] +name = "ordered-float" +version = "2.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68f19d67e5a2795c94e73e0bb1cc1a7edeb2e28efd39e2e1c9b7a40c1108b11c" +dependencies = [ + "num-traits", +] + +[[package]] +name = "page-table-generic" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a302d085e35d9edfa3ec531475ed95eae8a92e7e47ce7a15bd4e9c5e74f7526" +dependencies = [ + "bitflags 2.9.4", + "log", + "num-align", + "thiserror 2.0.16", +] + +[[package]] +name = "page_table_entry" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba811ef8ca8fb33d776e128624cb4fe25c9804cab96f83b822d4322431e6dd5a" +dependencies = [ + "aarch64-cpu", + "bitflags 2.9.4", + "memory_addr", + "x86_64", +] + +[[package]] +name = "page_table_multiarch" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "98cb76e21ce462270afd83b331599d5b83f876c2a98c0a70382b20d73e1da6be" +dependencies = [ + "log", + "memory_addr", + "page_table_entry", + "riscv", + "x86", +] + +[[package]] +name = "parking_lot" +version = "0.12.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70d58bf43669b5795d1576d0641cfb6fbb2057bf629506267a92807158584a13" +dependencies = [ + "lock_api", + "parking_lot_core", +] + +[[package]] +name = "parking_lot_core" +version = "0.9.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc838d2a56b5b1a6c25f55575dfc605fabb63bb2365f6c2353ef9159aa69e4a5" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall", + "smallvec", + "windows-targets 0.52.6", +] + +[[package]] +name = "paste" +version = "1.0.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" + +[[package]] +name = "pci_types" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4325c6aa3cca3373503b1527e75756f9fbfe5fd76be4b4c8a143ee47430b8e0" +dependencies = [ + "bit_field", + "bitflags 2.9.4", +] + +[[package]] +name = "pcie" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "225c81c0f672afbdd95e55abebe56541870e64e350eba9f7eabfb392112229ab" +dependencies = [ + "bare-test-macros", + "bit_field", + "bitflags 2.9.4", + "log", + "pci_types", + "rdif-pcie", + "thiserror 2.0.16", +] + +[[package]] +name = "percent-encoding" +version = "2.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" + +[[package]] +name = "percpu" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01e56c0c558952222967b592899f98765b48590e7bd7403bfd7075f73afc6ed6" +dependencies = [ + "cfg-if", + "percpu_macros", + "spin 0.9.8", + "x86", +] + +[[package]] +name = "percpu_macros" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a9f4cc54a2e471ff72f1499461ba381ad4eae9cbd60d29c258545b995e406e0" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "phytium-mci" +version = "0.1.0" +source = "git+https://github.com/YanQD/phytium-mci.git?rev=99c9ee5#99c9ee5f66490fbf41370be3b3d7a42cf4406b0c" +dependencies = [ + "bare-test-macros", + "bitflags 2.9.4", + "bytemuck", + "dma-api 0.2.2", + "lazy_static", + "log", + "nb", + "rlsf", + "spin 0.10.0", + "tock-registers 0.9.0", +] + +[[package]] +name = "pie-boot-if" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d979b0d1208dd8a57c5adb7d3c4e07bf15cbea3840123e864f6bfcb655c5e05" +dependencies = [ + "heapless", +] + +[[package]] +name = "pie-boot-loader-aarch64" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "de8836eb8759cd65e70c73dc0f519345d8a734284e8e4cfc5889a6e445af9f09" +dependencies = [ + "aarch64-cpu", + "aarch64-cpu-ext", + "any-uart", + "bitflags 2.9.4", + "fdt-parser", + "kasm-aarch64", + "kdef-pgtable", + "log", + "num-align", + "page-table-generic", + "pie-boot-if", + "prettyplease", + "quote", + "spin 0.10.0", + "syn 2.0.106", + "thiserror 2.0.16", +] + +[[package]] +name = "pie-boot-macros" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "513f5ca7603771d7524bfb7e6ba8dded83d2e8ac02d46f15815e0c1144bca566" +dependencies = [ + "darling", + "proc-macro2", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "pin-project-lite" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" + +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + +[[package]] +name = "pkg-config" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" + +[[package]] +name = "potential_utf" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84df19adbe5b5a0782edcab45899906947ab039ccf4573713735ee7de1e6b08a" +dependencies = [ + "zerovec", +] + +[[package]] +name = "ppv-lite86" +version = "0.2.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" +dependencies = [ + "zerocopy", +] + +[[package]] +name = "prettyplease" +version = "0.2.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" +dependencies = [ + "proc-macro2", + "syn 2.0.106", +] + +[[package]] +name = "proc-macro2" +version = "1.0.101" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89ae43fd86e4158d6db51ad8e2b80f313af9cc74f5c0e03ccb87de09998732de" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "quote" +version = "1.0.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "r-efi" +version = "5.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" + +[[package]] +name = "rand" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1" +dependencies = [ + "rand_chacha", + "rand_core", +] + +[[package]] +name = "rand_chacha" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" +dependencies = [ + "ppv-lite86", + "rand_core", +] + +[[package]] +name = "rand_core" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" +dependencies = [ + "getrandom 0.3.3", +] + +[[package]] +name = "raw-cpuid" +version = "10.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c297679cb867470fa8c9f67dbba74a78d78e3e98d7cf2b08d6d71540f797332" +dependencies = [ + "bitflags 1.3.2", +] + +[[package]] +name = "rdif-base" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4f8c32d8cbc18633a412130719b07d31135215d1715ac48fc3888ca835a811ba" +dependencies = [ + "as-any", + "async-trait", + "paste", + "rdif-def", + "thiserror 2.0.16", +] + +[[package]] +name = "rdif-block" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81ae1ba6c121eef2653dd2e0c88a209bb1d4d21e75e15cca71f19770ef327f81" +dependencies = [ + "cfg-if", + "dma-api 0.5.1", + "futures", + "rdif-base", + "spin_on", + "thiserror 2.0.16", +] + +[[package]] +name = "rdif-def" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c238eb44d86fabc99028adc973f896ce2202aeb6184cc8b89863f2d157d7ca06" +dependencies = [ + "thiserror 2.0.16", +] + +[[package]] +name = "rdif-intc" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "170ec813e6cf4d1e5fa53fa8fed0fadc7aaab96683d4f1d44c602a6109931eb4" +dependencies = [ + "cfg-if", + "rdif-base", + "thiserror 2.0.16", +] + +[[package]] +name = "rdif-pcie" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0abf057b17ca5ead0ee41c485bf3c2781fd9bbf88cc678539fa361aa5db3ed8d" +dependencies = [ + "pci_types", + "rdif-base", + "thiserror 2.0.16", +] + +[[package]] +name = "rdrive" +version = "0.18.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "27096bc91e156403ba3be9c7fef8d4379ea12d96d9d1725bdb197104a4fe1010" +dependencies = [ + "fdt-parser", + "log", + "paste", + "pcie", + "rdif-base", + "rdif-pcie", + "rdrive-macros", + "spin 0.10.0", + "thiserror 2.0.16", +] + +[[package]] +name = "rdrive-macros" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eab3105c9af32e901a2adc7d920b39ff8b6ee0f6f0b7dfdeaf18f306ec12606f" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "redox_syscall" +version = "0.5.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5407465600fb0548f1442edf71dd20683c6ed326200ace4b1ef0763521bb3b77" +dependencies = [ + "bitflags 2.9.4", +] + +[[package]] +name = "release-dep" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38d2060fec225361f815b40c6857b5722835318abdea0e20ee86b81cf1ac5c9a" +dependencies = [ + "anyhow", + "futures", + "reqwest 0.11.27", + "semver", + "serde", + "serde_json", + "tokio", + "tokio-util", +] + +[[package]] +name = "reqwest" +version = "0.11.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd67538700a17451e7cba03ac727fb961abb7607553461627b97de0b89cf4a62" +dependencies = [ + "base64 0.21.7", + "bytes", + "encoding_rs", + "futures-core", + "futures-util", + "h2 0.3.27", + "http 0.2.12", + "http-body 0.4.6", + "hyper 0.14.32", + "hyper-tls 0.5.0", + "ipnet", + "js-sys", + "log", + "mime", + "native-tls", + "once_cell", + "percent-encoding", + "pin-project-lite", + "rustls-pemfile", + "serde", + "serde_json", + "serde_urlencoded", + "sync_wrapper 0.1.2", + "system-configuration 0.5.1", + "tokio", + "tokio-native-tls", + "tower-service", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", + "winreg", +] + +[[package]] +name = "reqwest" +version = "0.12.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d429f34c8092b2d42c7c93cec323bb4adeb7c67698f70839adec842ec10c7ceb" +dependencies = [ + "base64 0.22.1", + "bytes", + "encoding_rs", + "futures-channel", + "futures-core", + "futures-util", + "h2 0.4.12", + "http 1.3.1", + "http-body 1.0.1", + "http-body-util", + "hyper 1.7.0", + "hyper-rustls", + "hyper-tls 0.6.0", + "hyper-util", + "js-sys", + "log", + "mime", + "native-tls", + "percent-encoding", + "pin-project-lite", + "rustls-pki-types", + "serde", + "serde_json", + "serde_urlencoded", + "sync_wrapper 1.0.2", + "tokio", + "tokio-native-tls", + "tower", + "tower-http", + "tower-service", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + +[[package]] +name = "ring" +version = "0.17.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7" +dependencies = [ + "cc", + "cfg-if", + "getrandom 0.2.16", + "libc", + "untrusted", + "windows-sys 0.52.0", +] + +[[package]] +name = "riscv" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f1671c79a01a149fe000af2429ce9ccc8e58cdecda72672355d50e5536b363c" +dependencies = [ + "critical-section", + "embedded-hal", + "paste", + "riscv-macros", + "riscv-pac", +] + +[[package]] +name = "riscv-macros" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8c4aa1ea1af6dcc83a61be12e8189f9b293c3ba5a487778a4cd89fb060fdbbc" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "riscv-pac" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8188909339ccc0c68cfb5a04648313f09621e8b87dc03095454f1a11f6c5d436" + +[[package]] +name = "rlsf" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "222fb240c3286247ecdee6fa5341e7cdad0ffdf8e7e401d9937f2d58482a20bf" +dependencies = [ + "cfg-if", + "const-default", + "libc", + "svgbobdoc", +] + +[[package]] +name = "rustc-demangle" +version = "0.1.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56f7d92ca342cea22a06f2121d944b4fd82af56988c270852495420f961d4ace" + +[[package]] +name = "rustix" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd15f8a2c5551a84d56efdc1cd049089e409ac19a3072d5037a17fd70719ff3e" +dependencies = [ + "bitflags 2.9.4", + "errno", + "libc", + "linux-raw-sys", + "windows-sys 0.61.1", +] + +[[package]] +name = "rustls" +version = "0.23.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd3c25631629d034ce7cd9940adc9d45762d46de2b0f57193c4443b92c6d4d40" +dependencies = [ + "once_cell", + "rustls-pki-types", + "rustls-webpki", + "subtle", + "zeroize", +] + +[[package]] +name = "rustls-pemfile" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" +dependencies = [ + "base64 0.21.7", +] + +[[package]] +name = "rustls-pki-types" +version = "1.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "229a4a4c221013e7e1f1a043678c5cc39fe5171437c88fb47151a21e6f5b5c79" +dependencies = [ + "zeroize", +] + +[[package]] +name = "rustls-webpki" +version = "0.103.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8572f3c2cb9934231157b45499fc41e1f58c589fdfb81a844ba873265e80f8eb" +dependencies = [ + "ring", + "rustls-pki-types", + "untrusted", +] + +[[package]] +name = "rustversion" +version = "1.0.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" + +[[package]] +name = "ryu" +version = "1.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" + +[[package]] +name = "schannel" +version = "0.1.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "891d81b926048e76efe18581bf793546b4c0eaf8448d72be8de2bbee5fd166e1" +dependencies = [ + "windows-sys 0.61.1", +] + +[[package]] +name = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + +[[package]] +name = "security-framework" +version = "2.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" +dependencies = [ + "bitflags 2.9.4", + "core-foundation", + "core-foundation-sys", + "libc", + "security-framework-sys", +] + +[[package]] +name = "security-framework-sys" +version = "2.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc1f0cbffaac4852523ce30d8bd3c5cdc873501d96ff467ca09b6767bb8cd5c0" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "semver" +version = "1.0.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2" +dependencies = [ + "serde", + "serde_core", +] + +[[package]] +name = "serde" +version = "1.0.227" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "80ece43fc6fbed4eb5392ab50c07334d3e577cbf40997ee896fe7af40bba4245" +dependencies = [ + "serde_core", + "serde_derive", +] + +[[package]] +name = "serde-untagged" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9faf48a4a2d2693be24c6289dbe26552776eb7737074e6722891fadbe6c5058" +dependencies = [ + "erased-serde", + "serde", + "serde_core", + "typeid", +] + +[[package]] +name = "serde-value" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3a1a3341211875ef120e117ea7fd5228530ae7e7036a779fdc9117be6b3282c" +dependencies = [ + "ordered-float", + "serde", +] + +[[package]] +name = "serde_core" +version = "1.0.227" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a576275b607a2c86ea29e410193df32bc680303c82f31e275bbfcafe8b33be5" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.227" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51e694923b8824cf0e9b382adf0f60d4e05f348f357b38833a3fa5ed7c2ede04" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "serde_json" +version = "1.0.145" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "402a6f66d8c709116cf22f558eab210f5a50187f702eb4d7e5ef38d9a7f1c79c" +dependencies = [ + "itoa", + "memchr", + "ryu", + "serde", + "serde_core", +] + +[[package]] +name = "serde_spanned" +version = "0.6.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf41e0cfaf7226dca15e8197172c295a782857fcb97fad1808a166870dee75a3" +dependencies = [ + "serde", +] + +[[package]] +name = "serde_spanned" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5417783452c2be558477e104686f7de5dae53dba813c28435e0e70f82d9b04ee" +dependencies = [ + "serde_core", +] + +[[package]] +name = "serde_urlencoded" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" +dependencies = [ + "form_urlencoded", + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "shlex" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" + +[[package]] +name = "signal-hook-registry" +version = "1.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2a4719bff48cee6b39d12c020eeb490953ad2443b7055bd0b21fca26bd8c28b" +dependencies = [ + "libc", +] + +[[package]] +name = "slab" +version = "0.4.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a2ae44ef20feb57a68b23d846850f861394c2e02dc425a50098ae8c90267589" + +[[package]] +name = "smallvec" +version = "1.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" + +[[package]] +name = "smccc" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c73e0ca8c566478040487791c9f488f86c5aec846ca1ab18484be8a1d8c55cd" +dependencies = [ + "thiserror 2.0.16", +] + +[[package]] +name = "socket2" +version = "0.5.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e22376abed350d73dd1cd119b57ffccad95b4e585a7cda43e286245ce23c0678" +dependencies = [ + "libc", + "windows-sys 0.52.0", +] + +[[package]] +name = "socket2" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "233504af464074f9d066d7b5416c5f9b894a5862a6506e306f7b816cdd6f1807" +dependencies = [ + "libc", + "windows-sys 0.59.0", +] + +[[package]] +name = "somehal" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a9b180e1abae1127bd99ecee566c3906d8c0f854cb1c442b945afe911e6eb71" +dependencies = [ + "aarch64-cpu", + "aarch64-cpu-ext", + "any-uart", + "bindeps-simple", + "fdt-parser", + "futures", + "heapless", + "kasm-aarch64", + "kdef-pgtable", + "log", + "num-align", + "page-table-generic", + "pie-boot-if", + "pie-boot-loader-aarch64", + "pie-boot-macros", + "release-dep", + "serde", + "smccc", + "spin 0.10.0", + "toml 0.9.7", + "url", +] + +[[package]] +name = "spin" +version = "0.9.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" +dependencies = [ + "lock_api", +] + +[[package]] +name = "spin" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d5fe4ccb98d9c292d56fec89a5e07da7fc4cf0dc11e156b41793132775d3e591" +dependencies = [ + "lock_api", +] + +[[package]] +name = "spin_on" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "076e103ed41b9864aa838287efe5f4e3a7a0362dd00671ae62a212e5e4612da2" +dependencies = [ + "pin-utils", +] + +[[package]] +name = "stable_deref_trait" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" + +[[package]] +name = "static_assertions" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" + +[[package]] +name = "strsim" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" + +[[package]] +name = "subtle" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" + +[[package]] +name = "svgbobdoc" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2c04b93fc15d79b39c63218f15e3fdffaa4c227830686e3b7c5f41244eb3e50" +dependencies = [ + "base64 0.13.1", + "proc-macro2", + "quote", + "syn 1.0.109", + "unicode-width", +] + +[[package]] +name = "syn" +version = "1.0.109" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "2.0.106" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ede7c438028d4436d71104916910f5bb611972c5cfd7f89b8300a8186e6fada6" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "sync_wrapper" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" + +[[package]] +name = "sync_wrapper" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263" +dependencies = [ + "futures-core", +] + +[[package]] +name = "synstructure" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "system-configuration" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" +dependencies = [ + "bitflags 1.3.2", + "core-foundation", + "system-configuration-sys 0.5.0", +] + +[[package]] +name = "system-configuration" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b" +dependencies = [ + "bitflags 2.9.4", + "core-foundation", + "system-configuration-sys 0.6.0", +] + +[[package]] +name = "system-configuration-sys" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "system-configuration-sys" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e1d1b10ced5ca923a1fcb8d03e96b8d3268065d724548c0211415ff6ac6bac4" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "tar" +version = "0.4.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d863878d212c87a19c1a610eb53bb01fe12951c0501cf5a0d65f724914a667a" +dependencies = [ + "filetime", + "libc", + "xattr", +] + +[[package]] +name = "tempfile" +version = "3.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d31c77bdf42a745371d260a26ca7163f1e0924b64afa0b688e61b5a9fa02f16" +dependencies = [ + "fastrand", + "getrandom 0.3.3", + "once_cell", + "rustix", + "windows-sys 0.61.1", +] + +[[package]] +name = "thiserror" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" +dependencies = [ + "thiserror-impl 1.0.69", +] + +[[package]] +name = "thiserror" +version = "2.0.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3467d614147380f2e4e374161426ff399c91084acd2363eaf549172b3d5e60c0" +dependencies = [ + "thiserror-impl 2.0.16", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "thiserror-impl" +version = "2.0.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c5e1be1c48b9172ee610da68fd9cd2770e7a4056cb3fc98710ee6906f0c7960" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "tinystr" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d4f6d1145dcb577acf783d4e601bc1d76a13337bb54e6233add580b07344c8b" +dependencies = [ + "displaydoc", + "zerovec", +] + +[[package]] +name = "tock-registers" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b9e2fdb3a1e862c0661768b7ed25390811df1947a8acbfbefe09b47078d93c4" + +[[package]] +name = "tock-registers" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0293f99756f16ff352cc78c99673766a305bdb5ed7652e78df649e9967c885a" + +[[package]] +name = "tokio" +version = "1.47.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89e49afdadebb872d3145a5638b59eb0691ea23e46ca484037cfab3b76b95038" +dependencies = [ + "backtrace", + "bytes", + "io-uring", + "libc", + "mio", + "parking_lot", + "pin-project-lite", + "signal-hook-registry", + "slab", + "socket2 0.6.0", + "tokio-macros", + "windows-sys 0.59.0", +] + +[[package]] +name = "tokio-macros" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "tokio-native-tls" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" +dependencies = [ + "native-tls", + "tokio", +] + +[[package]] +name = "tokio-rustls" +version = "0.26.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05f63835928ca123f1bef57abbcd23bb2ba0ac9ae1235f1e65bda0d06e7786bd" +dependencies = [ + "rustls", + "tokio", +] + +[[package]] +name = "tokio-util" +version = "0.7.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14307c986784f72ef81c89db7d9e28d6ac26d16213b109ea501696195e6e3ce5" +dependencies = [ + "bytes", + "futures-core", + "futures-sink", + "pin-project-lite", + "tokio", +] + +[[package]] +name = "toml" +version = "0.8.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc1beb996b9d83529a9e75c17a1686767d148d70663143c7854d8b4a09ced362" +dependencies = [ + "serde", + "serde_spanned 0.6.9", + "toml_datetime 0.6.11", + "toml_edit", +] + +[[package]] +name = "toml" +version = "0.9.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00e5e5d9bf2475ac9d4f0d9edab68cc573dc2fd644b0dba36b0c30a92dd9eaa0" +dependencies = [ + "indexmap", + "serde_core", + "serde_spanned 1.0.2", + "toml_datetime 0.7.2", + "toml_parser", + "toml_writer", + "winnow", +] + +[[package]] +name = "toml_datetime" +version = "0.6.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22cddaf88f4fbc13c51aebbf5f8eceb5c7c5a9da2ac40a13519eb5b0a0e8f11c" +dependencies = [ + "serde", +] + +[[package]] +name = "toml_datetime" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32f1085dec27c2b6632b04c80b3bb1b4300d6495d1e129693bdda7d91e72eec1" +dependencies = [ + "serde_core", +] + +[[package]] +name = "toml_edit" +version = "0.22.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a" +dependencies = [ + "indexmap", + "serde", + "serde_spanned 0.6.9", + "toml_datetime 0.6.11", + "toml_write", + "winnow", +] + +[[package]] +name = "toml_parser" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4cf893c33be71572e0e9aa6dd15e6677937abd686b066eac3f8cd3531688a627" +dependencies = [ + "winnow", +] + +[[package]] +name = "toml_write" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d99f8c9a7727884afe522e9bd5edbfc91a3312b36a77b5fb8926e4c31a41801" + +[[package]] +name = "toml_writer" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d163a63c116ce562a22cda521fcc4d79152e7aba014456fb5eb442f6d6a10109" + +[[package]] +name = "tower" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d039ad9159c98b70ecfd540b2573b97f7f52c3e8d9f8ad57a24b916a536975f9" +dependencies = [ + "futures-core", + "futures-util", + "pin-project-lite", + "sync_wrapper 1.0.2", + "tokio", + "tower-layer", + "tower-service", +] + +[[package]] +name = "tower-http" +version = "0.6.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adc82fd73de2a9722ac5da747f12383d2bfdb93591ee6c58486e0097890f05f2" +dependencies = [ + "bitflags 2.9.4", + "bytes", + "futures-util", + "http 1.3.1", + "http-body 1.0.1", + "iri-string", + "pin-project-lite", + "tower", + "tower-layer", + "tower-service", +] + +[[package]] +name = "tower-layer" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e" + +[[package]] +name = "tower-service" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" + +[[package]] +name = "tracing" +version = "0.1.41" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" +dependencies = [ + "pin-project-lite", + "tracing-core", +] + +[[package]] +name = "tracing-core" +version = "0.1.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9d12581f227e93f094d3af2ae690a574abb8a2b9b7a96e7cfe9647b2b617678" +dependencies = [ + "once_cell", +] + +[[package]] +name = "trait-ffi" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d87d49469ee333631b3130bec28965c47dcf0d4f3a792f8ed425dd036cf84be7" +dependencies = [ + "convert_case", + "lenient_semver", + "proc-macro2", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "try-lock" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" + +[[package]] +name = "typeid" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc7d623258602320d5c55d1bc22793b57daff0ec7efc270ea7d55ce1d5f5471c" + +[[package]] +name = "unicode-ident" +version = "1.0.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f63a545481291138910575129486daeaf8ac54aee4387fe7906919f7830c7d9d" + +[[package]] +name = "unicode-segmentation" +version = "1.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" + +[[package]] +name = "unicode-width" +version = "0.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af" + +[[package]] +name = "unicode-xid" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" + +[[package]] +name = "untrusted" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" + +[[package]] +name = "url" +version = "2.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08bc136a29a3d1758e07a9cca267be308aeebf5cfd5a10f3f67ab2097683ef5b" +dependencies = [ + "form_urlencoded", + "idna", + "percent-encoding", + "serde", +] + +[[package]] +name = "utf8_iter" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" + +[[package]] +name = "utf8parse" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" + +[[package]] +name = "vcpkg" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" + +[[package]] +name = "volatile" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "442887c63f2c839b346c192d047a7c87e73d0689c9157b00b53dcc27dd5ea793" + +[[package]] +name = "want" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" +dependencies = [ + "try-lock", +] + +[[package]] +name = "wasi" +version = "0.11.1+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" + +[[package]] +name = "wasi" +version = "0.14.7+wasi-0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "883478de20367e224c0090af9cf5f9fa85bed63a95c1abf3afc5c083ebc06e8c" +dependencies = [ + "wasip2", +] + +[[package]] +name = "wasip2" +version = "1.0.1+wasi-0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0562428422c63773dad2c345a1882263bbf4d65cf3f42e90921f787ef5ad58e7" +dependencies = [ + "wit-bindgen", +] + +[[package]] +name = "wasm-bindgen" +version = "0.2.104" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1da10c01ae9f1ae40cbfac0bac3b1e724b320abfcf52229f80b547c0d250e2d" +dependencies = [ + "cfg-if", + "once_cell", + "rustversion", + "wasm-bindgen-macro", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.104" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "671c9a5a66f49d8a47345ab942e2cb93c7d1d0339065d4f8139c486121b43b19" +dependencies = [ + "bumpalo", + "log", + "proc-macro2", + "quote", + "syn 2.0.106", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-futures" +version = "0.4.54" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e038d41e478cc73bae0ff9b36c60cff1c98b8f38f8d7e8061e79ee63608ac5c" +dependencies = [ + "cfg-if", + "js-sys", + "once_cell", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.104" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ca60477e4c59f5f2986c50191cd972e3a50d8a95603bc9434501cf156a9a119" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.104" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f07d2f20d4da7b26400c9f4a0511e6e0345b040694e8a75bd41d578fa4421d7" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", + "wasm-bindgen-backend", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.104" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bad67dc8b2a1a6e5448428adec4c3e84c43e561d8c9ee8a9e5aabeb193ec41d1" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "web-sys" +version = "0.3.81" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9367c417a924a74cae129e6a2ae3b47fabb1f8995595ab474029da749a8be120" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "windows-link" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a" + +[[package]] +name = "windows-link" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "45e46c0661abb7180e7b9c281db115305d49ca1709ab8242adf09666d2173c65" + +[[package]] +name = "windows-registry" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b8a9ed28765efc97bbc954883f4e6796c33a06546ebafacbabee9696967499e" +dependencies = [ + "windows-link 0.1.3", + "windows-result", + "windows-strings", +] + +[[package]] +name = "windows-result" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56f42bd332cc6c8eac5af113fc0c1fd6a8fd2aa08a0119358686e5160d0586c6" +dependencies = [ + "windows-link 0.1.3", +] + +[[package]] +name = "windows-strings" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56e6c93f3a0c3b36176cb1327a4958a0353d5d166c2a35cb268ace15e91d3b57" +dependencies = [ + "windows-link 0.1.3", +] + +[[package]] +name = "windows-sys" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +dependencies = [ + "windows-targets 0.48.5", +] + +[[package]] +name = "windows-sys" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-sys" +version = "0.59.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-sys" +version = "0.60.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" +dependencies = [ + "windows-targets 0.53.4", +] + +[[package]] +name = "windows-sys" +version = "0.61.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f109e41dd4a3c848907eb83d5a42ea98b3769495597450cf6d153507b166f0f" +dependencies = [ + "windows-link 0.2.0", +] + +[[package]] +name = "windows-targets" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" +dependencies = [ + "windows_aarch64_gnullvm 0.48.5", + "windows_aarch64_msvc 0.48.5", + "windows_i686_gnu 0.48.5", + "windows_i686_msvc 0.48.5", + "windows_x86_64_gnu 0.48.5", + "windows_x86_64_gnullvm 0.48.5", + "windows_x86_64_msvc 0.48.5", +] + +[[package]] +name = "windows-targets" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" +dependencies = [ + "windows_aarch64_gnullvm 0.52.6", + "windows_aarch64_msvc 0.52.6", + "windows_i686_gnu 0.52.6", + "windows_i686_gnullvm 0.52.6", + "windows_i686_msvc 0.52.6", + "windows_x86_64_gnu 0.52.6", + "windows_x86_64_gnullvm 0.52.6", + "windows_x86_64_msvc 0.52.6", +] + +[[package]] +name = "windows-targets" +version = "0.53.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d42b7b7f66d2a06854650af09cfdf8713e427a439c97ad65a6375318033ac4b" +dependencies = [ + "windows-link 0.2.0", + "windows_aarch64_gnullvm 0.53.0", + "windows_aarch64_msvc 0.53.0", + "windows_i686_gnu 0.53.0", + "windows_i686_gnullvm 0.53.0", + "windows_i686_msvc 0.53.0", + "windows_x86_64_gnu 0.53.0", + "windows_x86_64_gnullvm 0.53.0", + "windows_x86_64_msvc 0.53.0", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86b8d5f90ddd19cb4a147a5fa63ca848db3df085e25fee3cc10b39b6eebae764" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7651a1f62a11b8cbd5e0d42526e55f2c99886c77e007179efff86c2b137e66c" + +[[package]] +name = "windows_i686_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" + +[[package]] +name = "windows_i686_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" + +[[package]] +name = "windows_i686_gnu" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1dc67659d35f387f5f6c479dc4e28f1d4bb90ddd1a5d3da2e5d97b42d6272c3" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ce6ccbdedbf6d6354471319e781c0dfef054c81fbc7cf83f338a4296c0cae11" + +[[package]] +name = "windows_i686_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" + +[[package]] +name = "windows_i686_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" + +[[package]] +name = "windows_i686_msvc" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "581fee95406bb13382d2f65cd4a908ca7b1e4c2f1917f143ba16efe98a589b5d" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e55b5ac9ea33f2fc1716d1742db15574fd6fc8dadc51caab1c16a3d3b4190ba" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0a6e035dd0599267ce1ee132e51c27dd29437f63325753051e71dd9e42406c57" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486" + +[[package]] +name = "winnow" +version = "0.7.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21a0236b59786fed61e2a80582dd500fe61f18b5dca67a4a067d0bc9039339cf" +dependencies = [ + "memchr", +] + +[[package]] +name = "winreg" +version = "0.50.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" +dependencies = [ + "cfg-if", + "windows-sys 0.48.0", +] + +[[package]] +name = "wit-bindgen" +version = "0.46.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f17a85883d4e6d00e8a97c586de764dabcc06133f7f1d55dce5cdc070ad7fe59" + +[[package]] +name = "writeable" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea2f10b9bb0928dfb1b42b65e1f9e36f7f54dbdf08457afefb38afcdec4fa2bb" + +[[package]] +name = "x86" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2781db97787217ad2a2845c396a5efe286f87467a5810836db6d74926e94a385" +dependencies = [ + "bit_field", + "bitflags 1.3.2", + "raw-cpuid", +] + +[[package]] +name = "x86_64" +version = "0.15.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f042214de98141e9c8706e8192b73f56494087cc55ebec28ce10f26c5c364ae" +dependencies = [ + "bit_field", + "bitflags 2.9.4", + "rustversion", + "volatile", +] + +[[package]] +name = "xattr" +version = "1.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32e45ad4206f6d2479085147f02bc2ef834ac85886624a23575ae137c8aa8156" +dependencies = [ + "libc", + "rustix", +] + +[[package]] +name = "yoke" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f41bb01b8226ef4bfd589436a297c53d118f65921786300e427be8d487695cc" +dependencies = [ + "serde", + "stable_deref_trait", + "yoke-derive", + "zerofrom", +] + +[[package]] +name = "yoke-derive" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38da3c9736e16c5d3c8c597a9aaa5d1fa565d0532ae05e27c24aa62fb32c0ab6" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", + "synstructure", +] + +[[package]] +name = "zerocopy" +version = "0.8.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0894878a5fa3edfd6da3f88c4805f4c8558e2b996227a3d864f47fe11e38282c" +dependencies = [ + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.8.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88d2b8d9c68ad2b9e4340d7832716a4d21a22a1154777ad56ea55c51a9cf3831" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "zerofrom" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5" +dependencies = [ + "zerofrom-derive", +] + +[[package]] +name = "zerofrom-derive" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", + "synstructure", +] + +[[package]] +name = "zeroize" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" + +[[package]] +name = "zerotrie" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "36f0bbd478583f79edad978b407914f61b2972f5af6fa089686016be8f9af595" +dependencies = [ + "displaydoc", + "yoke", + "zerofrom", +] + +[[package]] +name = "zerovec" +version = "0.11.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7aa2bd55086f1ab526693ecbe444205da57e25f4489879da80635a46d90e73b" +dependencies = [ + "yoke", + "zerofrom", + "zerovec-derive", +] + +[[package]] +name = "zerovec-derive" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b96237efa0c878c64bd89c436f661be4e46b2f3eff1ebb976f7ef2321d2f58f" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", +] diff --git a/src/vmm/config.rs b/src/vmm/config.rs index 3f5bb196..fa14b3c0 100644 --- a/src/vmm/config.rs +++ b/src/vmm/config.rs @@ -1,18 +1,21 @@ -use core::alloc::Layout; - -use alloc::string::ToString; - use axaddrspace::GuestPhysAddr; use axvm::{ VMMemoryRegion, - config::{AxVMConfig, AxVMCrateConfig, PassThroughDeviceConfig, VmMemMappingType}, + config::{AxVMConfig, AxVMCrateConfig, VmMemMappingType}, }; +use core::alloc::Layout; use memory_addr::MemoryAddr; use crate::vmm::{VM, images::ImageLoader, vm_list::push_vm}; +#[cfg(target_arch = "aarch64")] +use crate::vmm::fdt::*; + +use alloc::sync::Arc; + #[allow(clippy::module_inception)] pub mod config { + use alloc::string::String; use alloc::vec::Vec; /// Default static VM configs. Used when no VM config is provided. @@ -28,169 +31,71 @@ pub mod config { ] } - include!(concat!(env!("OUT_DIR"), "/vm_configs.rs")); -} - -pub fn get_vm_dtb(vm_cfg: &AxVMConfig) -> Option<&'static [u8]> { - let vm_imags = config::get_memory_images() - .iter() - .find(|&v| v.id == vm_cfg.id())?; - // .expect("VM images is missed, Perhaps add `VM_CONFIGS=PATH/CONFIGS/FILE` command."); - vm_imags.dtb -} - -pub fn parse_vm_dtb(vm_cfg: &mut AxVMConfig, dtb: &[u8]) { - use fdt_parser::{Fdt, Status}; - - let fdt = Fdt::from_bytes(dtb) - .expect("Failed to parse DTB image, perhaps the DTB is invalid or corrupted"); + /// Read VM configs from filesystem + #[cfg(feature = "fs")] + pub fn filesystem_vm_configs() -> Vec { + use axstd::fs; + + // Try to read config files from a predefined directory + let config_dir = "configs/vms"; + let mut configs = Vec::new(); + + if let Ok(entries) = fs::read_dir(config_dir) { + for entry in entries.flatten() { + let path = entry.path(); + // Check if the file has a .toml extension + let path_str = path.as_str(); + if path_str.ends_with(".toml") + && let Ok(content) = fs::read_to_string(path_str) + { + configs.push(content); + } + } + } - for reserved in fdt.reserved_memory() { - warn!("Find reserved memory: {:?}", reserved.name()); + configs } - for mem_reserved in fdt.memory_reservation_block() { - warn!("Find memory reservation block: {:?}", mem_reserved); + /// Fallback function for when "fs" feature is not enabled + #[cfg(not(feature = "fs"))] + pub fn filesystem_vm_configs() -> Vec { + Vec::new() } - for node in fdt.all_nodes() { - trace!("DTB node: {:?}", node.name()); - let name = node.name(); - if name.starts_with("memory") { - // Skip the memory node, as we handle memory regions separately. - continue; - } - - if let Some(status) = node.status() - && status == Status::Disabled - { - // Skip disabled nodes - trace!("DTB node: {} is disabled", name); - // continue; - } - - // Skip the interrupt controller, as we will use vGIC - // TODO: filter with compatible property and parse its phandle from DT; maybe needs a second pass? - const GIC_PHANDLE: usize = 1; - if name.starts_with("interrupt-controller") - || name.starts_with("intc") - || name.starts_with("its") - { - info!("skipping node {} to use vGIC", name); - continue; - } - - // Collect all GIC_SPI interrupts and add them to vGIC - if let Some(interrupts) = node.interrupts() { - // TODO: skip non-GIC interrupt - if let Some(parent) = node.interrupt_parent() { - trace!("node: {}, intr parent: {}", name, parent.node.name()); - if let Some(phandle) = parent.node.phandle() { - if phandle.as_usize() != GIC_PHANDLE { - warn!( - "node: {}, intr parent: {}, phandle: 0x{:x} is not GIC!", - name, - parent.node.name(), - phandle.as_usize() - ); - } - } else { - warn!( - "node: {}, intr parent: {} no phandle!", - name, - parent.node.name(), - ); - } - } else { - warn!("node: {} no interrupt parent!", name); - } + include!(concat!(env!("OUT_DIR"), "/vm_configs.rs")); +} - trace!("node: {} interrupts:", name); - - for interrupt in interrupts { - // - for (k, v) in interrupt.enumerate() { - match k { - 0 => { - if v == 0 { - trace!("node: {}, GIC_SPI", name); - } else { - warn!( - "node: {}, intr type: {}, not GIC_SPI, not supported!", - name, v - ); - break; - } - } - 1 => { - trace!("node: {}, interrupt id: 0x{:x}", name, v); - vm_cfg.add_pass_through_spi(v); - } - 2 => { - trace!("node: {}, interrupt mode: 0x{:x}", name, v); - } - _ => { - warn!("unknown interrupt property {}:0x{:x}", k, v) - } - } - } - } - } - - if let Some(regs) = node.reg() { - for reg in regs { - if reg.address < 0x1000 { - // Skip registers with address less than 0x10000. - trace!( - "Skipping DTB node {} with register address {:#x} < 0x10000", - node.name(), - reg.address - ); - continue; - } - - if let Some(size) = reg.size { - let start = reg.address as usize; - // let end = start + size; - // if vm_cfg.contains_memory_range(&(start..end)) { - // trace!( - // "Skipping DTB node {} with register address {:#x} and size {:#x} as it overlaps with existing memory regions", - // node.name(), - // reg.address, - // size - // ); - // continue; - // } - - let pt_dev = PassThroughDeviceConfig { - name: node.name().to_string(), - base_gpa: start, - base_hpa: start, - length: size as _, - irq_id: 0, - }; - trace!("Adding {:x?}", pt_dev); - vm_cfg.add_pass_through_device(pt_dev); - } - } +pub fn get_vm_dtb_arc(_vm_cfg: &AxVMConfig) -> Option> { + #[cfg(target_arch = "aarch64")] + { + let cache_lock = dtb_cache().lock(); + if let Some(dtb) = cache_lock.get(&_vm_cfg.id()) { + return Some(Arc::from(dtb.as_slice())); } } - - vm_cfg.add_pass_through_device(PassThroughDeviceConfig { - name: "Fake Node".to_string(), - base_gpa: 0x0, - base_hpa: 0x0, - length: 0x20_0000, - irq_id: 0, - }); + None } pub fn init_guest_vms() { - let gvm_raw_configs = config::static_vm_configs(); + // Initialize the DTB cache in the fdt module + #[cfg(target_arch = "aarch64")] + { + init_dtb_cache(); + } + + // First try to get configs from filesystem if fs feature is enabled + let mut gvm_raw_configs = config::filesystem_vm_configs(); + + // If no filesystem configs found, fallback to static configs + if gvm_raw_configs.is_empty() { + let static_configs = config::static_vm_configs(); + // Convert static configs to String type + gvm_raw_configs.extend(static_configs.into_iter().map(|s| s.into())); + } for raw_cfg_str in gvm_raw_configs { let vm_create_config = - AxVMCrateConfig::from_toml(raw_cfg_str).expect("Failed to resolve VM config"); + AxVMCrateConfig::from_toml(&raw_cfg_str).expect("Failed to resolve VM config"); if let Some(linux) = super::images::get_image_header(&vm_create_config) { debug!( @@ -199,18 +104,17 @@ pub fn init_guest_vms() { ); } + #[cfg(target_arch = "aarch64")] let mut vm_config = AxVMConfig::from(vm_create_config.clone()); - // Overlay VM config with the given DTB. - if let Some(dtb) = get_vm_dtb(&vm_config) { - parse_vm_dtb(&mut vm_config, dtb); - } else { - warn!( - "VM[{}] DTB not found in memory, skipping...", - vm_config.id() - ); - } + #[cfg(not(target_arch = "aarch64"))] + let vm_config = AxVMConfig::from(vm_create_config.clone()); + + // Handle FDT-related operations for aarch64 + #[cfg(target_arch = "aarch64")] + handle_fdt_operations(&mut vm_config, &vm_create_config); + // info!("after parse_vm_interrupt, crate VM[{}] with config: {:#?}", vm_config.id(), vm_config); info!("Creating VM[{}] {:?}", vm_config.id(), vm_config.name()); // Create VM. diff --git a/src/vmm/fdt.rs b/src/vmm/fdt.rs deleted file mode 100644 index 2dd0e338..00000000 --- a/src/vmm/fdt.rs +++ /dev/null @@ -1,97 +0,0 @@ -use core::ptr::NonNull; - -use crate::vmm::{VMRef, images::load_vm_image_from_memory}; -use alloc::vec::Vec; -use axaddrspace::GuestPhysAddr; -use axvm::VMMemoryRegion; -use fdt_parser::Fdt; -use vm_fdt::{FdtWriter, FdtWriterNode}; - -#[allow(dead_code)] -pub fn print_fdt(fdt_addr: NonNull) { - let fdt = Fdt::from_ptr(fdt_addr) - .map_err(|e| format!("Failed to parse FDT: {e:#?}")) - .expect("Failed to parse FDT"); - - for rsv in fdt.memory_reservation_block() { - info!( - "Reserved memory: addr={:#p}, size={:#x}", - rsv.address, rsv.size - ); - } - - for node in fdt.all_nodes() { - info!("node.name: {}", node.name()); - for prop in node.propertys() { - info!("prop.name: {}, node.name: {}", prop.name, node.name()); - } - } -} - -pub fn updated_fdt(dest_addr: GuestPhysAddr, fdt_src: NonNull, dtb_size: usize, vm: VMRef) { - let mut new_fdt = FdtWriter::new().unwrap(); - let mut old_node_level = 0; - let mut child_node: Vec = Vec::new(); - - let fdt_bytes = unsafe { core::slice::from_raw_parts(fdt_src.as_ptr(), dtb_size) }; - let fdt = Fdt::from_bytes(fdt_bytes) - .map_err(|e| format!("Failed to parse FDT: {e:#?}")) - .expect("Failed to parse FDT"); - - for node in fdt.all_nodes() { - if node.name() == "/" { - child_node.push(new_fdt.begin_node("").unwrap()); - } else if node.name().starts_with("memory") { - // Skip memory nodes, will add them later - continue; - } else { - if node.level <= old_node_level { - for _ in node.level..=old_node_level { - let end_node = child_node.pop().unwrap(); - new_fdt.end_node(end_node).unwrap(); - } - } - child_node.push(new_fdt.begin_node(node.name()).unwrap()); - } - - old_node_level = node.level; - - for prop in node.propertys() { - new_fdt.property(prop.name, prop.raw_value()).unwrap(); - } - } - while let Some(node) = child_node.pop() { - old_node_level -= 1; - new_fdt.end_node(node).unwrap(); - - // add memory node - if old_node_level == 1 { - let memory_regions = vm.memory_regions(); - info!("Adding memory node with regions: {:?}", memory_regions); - let memory_node = new_fdt.begin_node("memory").unwrap(); - add_memory_node(&memory_regions, &mut new_fdt); - new_fdt.end_node(memory_node).unwrap(); - } - } - assert_eq!(old_node_level, 0); - let new_fdt = new_fdt.finish().unwrap(); - // print_fdt(NonNull::new(new_fdt.as_ptr() as usize as _).unwrap()); - load_vm_image_from_memory(&new_fdt, dest_addr, vm.clone()).expect("Failed to load VM images"); -} - -fn add_memory_node(new_memory: &[VMMemoryRegion], new_fdt: &mut FdtWriter) { - let mut new_value: Vec = Vec::new(); - for mem in new_memory { - let gpa = mem.gpa.as_usize() as u64; - let size = mem.size() as u64; - new_value.push((gpa >> 32) as u32); - new_value.push((gpa & 0xFFFFFFFF) as u32); - new_value.push((size >> 32) as u32); - new_value.push((size & 0xFFFFFFFF) as u32); - } - info!("new_value: {:#x?}", new_value); - new_fdt - .property_array_u32("reg", new_value.as_ref()) - .unwrap(); - new_fdt.property_string("device_type", "memory").unwrap(); -} diff --git a/src/vmm/fdt/create.rs b/src/vmm/fdt/create.rs new file mode 100644 index 00000000..b2f9432d --- /dev/null +++ b/src/vmm/fdt/create.rs @@ -0,0 +1,399 @@ +use alloc::{ + string::{String, ToString}, + vec::Vec, +}; +use core::ptr::NonNull; + +use axaddrspace::GuestPhysAddr; +use axvm::{VMMemoryRegion, config::AxVMCrateConfig}; +use fdt_parser::{Fdt, Node}; +use vm_fdt::{FdtWriter, FdtWriterNode}; + +use crate::vmm::{VMRef, images::load_vm_image_from_memory}; + +// use crate::vmm::fdt::print::{print_fdt, print_guest_fdt}; +/// Generate guest FDT and return DTB data +/// +/// # Parameters +/// * `fdt` - Source FDT data +/// * `passthrough_device_names` - Passthrough device name list +/// * `crate_config` - VM creation configuration +/// +/// # Return Value +/// Returns the generated DTB data +pub fn crate_guest_fdt( + fdt: &Fdt, + passthrough_device_names: &[String], + crate_config: &AxVMCrateConfig, +) -> Vec { + let mut fdt_writer = FdtWriter::new().unwrap(); + // Track the level of the previously processed node for level change handling + let mut previous_node_level = 0; + // Maintain a stack of FDT nodes to correctly start and end nodes + let mut node_stack: Vec = Vec::new(); + let phys_cpu_ids = crate_config + .base + .phys_cpu_ids + .clone() + .expect("ERROR: phys_cpu_ids is None"); + + let all_nodes: Vec = fdt.all_nodes().collect(); + + for (index, node) in all_nodes.iter().enumerate() { + let node_path = super::build_node_path(&all_nodes, index); + let node_action = determine_node_action(node, &node_path, passthrough_device_names); + + match node_action { + NodeAction::RootNode => { + node_stack.push(fdt_writer.begin_node("").unwrap()); + } + NodeAction::CpuNode => { + let need = need_cpu_node(&phys_cpu_ids, node, &node_path); + if need { + handle_node_level_change( + &mut fdt_writer, + &mut node_stack, + node.level, + previous_node_level, + ); + node_stack.push(fdt_writer.begin_node(node.name()).unwrap()); + } else { + continue; + } + } + NodeAction::Skip => { + continue; + } + _ => { + trace!( + "Found exact passthrough device node: {}, path: {}", + node.name(), + node_path + ); + handle_node_level_change( + &mut fdt_writer, + &mut node_stack, + node.level, + previous_node_level, + ); + node_stack.push(fdt_writer.begin_node(node.name()).unwrap()); + } + } + + previous_node_level = node.level; + + // Copy all properties of the node + for prop in node.propertys() { + fdt_writer.property(prop.name, prop.raw_value()).unwrap(); + } + } + + // End all unclosed nodes + while let Some(node) = node_stack.pop() { + previous_node_level -= 1; + fdt_writer.end_node(node).unwrap(); + } + assert_eq!(previous_node_level, 0); + + fdt_writer.finish().unwrap() +} + +/// Node processing action enumeration +enum NodeAction { + /// Skip node, not included in guest FDT + Skip, + /// Root node + RootNode, + /// CPU node + CpuNode, + /// Include node as passthrough device node + IncludeAsPassthroughDevice, + /// Include node as child node of passthrough device + IncludeAsChildNode, + /// Include node as ancestor node of passthrough device + IncludeAsAncestorNode, +} + +/// Determine node processing action +fn determine_node_action( + node: &Node, + node_path: &str, + passthrough_device_names: &[String], +) -> NodeAction { + if node.name() == "/" { + // Special handling for root node + NodeAction::RootNode + } else if node.name().starts_with("memory") { + // Skip memory nodes, will add them later + NodeAction::Skip + } else if node_path.starts_with("/cpus") { + NodeAction::CpuNode + } else if passthrough_device_names.contains(&node_path.to_string()) { + // Fully matched passthrough device node + NodeAction::IncludeAsPassthroughDevice + } + // Check if the node is a descendant of a passthrough device (by path inclusion and level validation) + else if is_descendant_of_passthrough_device(node_path, node.level, passthrough_device_names) { + NodeAction::IncludeAsChildNode + } + // Check if the node is an ancestor of a passthrough device (by path inclusion and level validation) + else if is_ancestor_of_passthrough_device(node_path, passthrough_device_names) { + NodeAction::IncludeAsAncestorNode + } else { + NodeAction::Skip + } +} + +/// Determine if node is a descendant of passthrough device +/// When node path contains a path from passthrough_device_names and is longer than it, it is its descendant node +/// Also use node_level as validation condition +fn is_descendant_of_passthrough_device( + node_path: &str, + node_level: usize, + passthrough_device_names: &[String], +) -> bool { + for passthrough_path in passthrough_device_names { + // Check if the current node is a descendant of a passthrough device + if node_path.starts_with(passthrough_path) && node_path.len() > passthrough_path.len() { + // Ensure it is a true descendant path (separated by /) + if passthrough_path == "/" || node_path.chars().nth(passthrough_path.len()) == Some('/') + { + // Use level relationship for validation: the level of a descendant node should be higher than its parent + // Note: The level of the root node is 1, its direct child node level is 2, and so on + let expected_parent_level = passthrough_path.matches('/').count(); + let current_node_level = node_level; + + // If passthrough_path is the root node "/", then its child node level should be 2 + // Otherwise, the child node level should be higher than the parent node level + if (passthrough_path == "/" && current_node_level >= 2) + || (passthrough_path != "/" && current_node_level > expected_parent_level) + { + return true; + } + } + } + } + false +} + +/// Handle node level changes to ensure correct FDT structure +fn handle_node_level_change( + fdt_writer: &mut FdtWriter, + node_stack: &mut Vec, + current_level: usize, + previous_level: usize, +) { + if current_level <= previous_level { + for _ in current_level..=previous_level { + if let Some(end_node) = node_stack.pop() { + fdt_writer.end_node(end_node).unwrap(); + } + } + } +} + +/// Determine if node is an ancestor of passthrough device +fn is_ancestor_of_passthrough_device(node_path: &str, passthrough_device_names: &[String]) -> bool { + for passthrough_path in passthrough_device_names { + // Check if the current node is an ancestor of a passthrough device + if passthrough_path.starts_with(node_path) && passthrough_path.len() > node_path.len() { + // Ensure it is a true ancestor path (separated by /) + let next_char = passthrough_path.chars().nth(node_path.len()).unwrap_or(' '); + if next_char == '/' || node_path == "/" { + return true; + } + } + } + false +} + +/// Determine if CPU node is needed +fn need_cpu_node(phys_cpu_ids: &[usize], node: &Node, node_path: &str) -> bool { + let mut should_include_node = false; + + if !node_path.starts_with("/cpus/cpu@") { + should_include_node = true; + } else if let Some(mut cpu_reg) = node.reg() + && let Some(reg_entry) = cpu_reg.next() + { + let cpu_address = reg_entry.address as usize; + debug!( + "Checking CPU node {} with address 0x{:x}", + node.name(), + cpu_address + ); + // Check if this CPU address is in the configured phys_cpu_ids + if phys_cpu_ids.contains(&cpu_address) { + should_include_node = true; + debug!( + "CPU node {} with address 0x{:x} is in phys_cpu_ids, including in guest FDT", + node.name(), + cpu_address + ); + } else { + debug!( + "CPU node {} with address 0x{:x} is NOT in phys_cpu_ids, skipping", + node.name(), + cpu_address + ); + } + } + should_include_node +} + +/// Add memory node +fn add_memory_node(new_memory: &[VMMemoryRegion], new_fdt: &mut FdtWriter) { + let mut new_value: Vec = Vec::new(); + for mem in new_memory { + let gpa = mem.gpa.as_usize() as u64; + let size = mem.size() as u64; + new_value.push((gpa >> 32) as u32); + new_value.push((gpa & 0xFFFFFFFF) as u32); + new_value.push((size >> 32) as u32); + new_value.push((size & 0xFFFFFFFF) as u32); + } + info!("Adding memory node with value: 0x{:x?}", new_value); + new_fdt + .property_array_u32("reg", new_value.as_ref()) + .unwrap(); + new_fdt.property_string("device_type", "memory").unwrap(); +} + +pub fn update_fdt(dest_addr: GuestPhysAddr, fdt_src: NonNull, dtb_size: usize, vm: VMRef) { + let mut new_fdt = FdtWriter::new().unwrap(); + let mut previous_node_level = 0; + let mut node_stack: Vec = Vec::new(); + + let fdt_bytes = unsafe { core::slice::from_raw_parts(fdt_src.as_ptr(), dtb_size) }; + let fdt = Fdt::from_bytes(fdt_bytes) + .map_err(|e| format!("Failed to parse FDT: {e:#?}")) + .expect("Failed to parse FDT"); + + for node in fdt.all_nodes() { + if node.name() == "/" { + node_stack.push(new_fdt.begin_node("").unwrap()); + } else if node.name().starts_with("memory") { + // Skip memory nodes, will add them later + continue; + } else { + handle_node_level_change( + &mut new_fdt, + &mut node_stack, + node.level, + previous_node_level, + ); + // Start new node + node_stack.push(new_fdt.begin_node(node.name()).unwrap()); + } + + previous_node_level = node.level; + + for prop in node.propertys() { + new_fdt.property(prop.name, prop.raw_value()).unwrap(); + } + } + + // End all unclosed nodes, and add memory nodes at appropriate positions + while let Some(node) = node_stack.pop() { + previous_node_level -= 1; + new_fdt.end_node(node).unwrap(); + + // add memory node + if previous_node_level == 1 { + let memory_regions = vm.memory_regions(); + debug!("Adding memory node with regions: {:?}", memory_regions); + let memory_node = new_fdt.begin_node("memory").unwrap(); + add_memory_node(&memory_regions, &mut new_fdt); + new_fdt.end_node(memory_node).unwrap(); + } + } + + assert_eq!(previous_node_level, 0); + + info!("Updating FDT memory successfully"); + + let new_fdt_bytes = new_fdt.finish().unwrap(); + + // print_guest_fdt(new_fdt_bytes.as_slice()); + + // Load the updated FDT into VM + load_vm_image_from_memory(&new_fdt_bytes, dest_addr, vm.clone()) + .expect("Failed to load VM images"); +} + +pub fn update_cpu_node(fdt: &Fdt, host_fdt: &Fdt, crate_config: &AxVMCrateConfig) -> Vec { + let mut new_fdt = FdtWriter::new().unwrap(); + let mut previous_node_level = 0; + let mut node_stack: Vec = Vec::new(); + let phys_cpu_ids = crate_config + .base + .phys_cpu_ids + .clone() + .expect("ERROR: phys_cpu_ids is None"); + + // Collect all nodes from both FDTs + let fdt_all_nodes: Vec = fdt.all_nodes().collect(); + let host_fdt_all_nodes: Vec = host_fdt.all_nodes().collect(); + + for (index, node) in fdt_all_nodes.iter().enumerate() { + let node_path = super::build_node_path(&fdt_all_nodes, index); + + if node.name() == "/" { + node_stack.push(new_fdt.begin_node("").unwrap()); + } else if node_path.starts_with("/cpus") { + // Skip CPU nodes from fdt, we'll process them from host_fdt later + continue; + } else { + // For all other nodes, include them from fdt as-is without filtering + handle_node_level_change( + &mut new_fdt, + &mut node_stack, + node.level, + previous_node_level, + ); + node_stack.push(new_fdt.begin_node(node.name()).unwrap()); + } + + previous_node_level = node.level; + + // Copy all properties of the node (for non-CPU nodes) + for prop in node.propertys() { + new_fdt.property(prop.name, prop.raw_value()).unwrap(); + } + } + + // Process all CPU nodes from host_fdt + for (index, node) in host_fdt_all_nodes.iter().enumerate() { + let node_path = super::build_node_path(&host_fdt_all_nodes, index); + + if node_path.starts_with("/cpus") { + // For CPU nodes, apply filtering based on host_fdt nodes + let need = need_cpu_node(&phys_cpu_ids, node, &node_path); + if need { + handle_node_level_change( + &mut new_fdt, + &mut node_stack, + node.level, + previous_node_level, + ); + node_stack.push(new_fdt.begin_node(node.name()).unwrap()); + + // Copy properties from host CPU node + for prop in node.propertys() { + new_fdt.property(prop.name, prop.raw_value()).unwrap(); + } + + previous_node_level = node.level; + } + } + } + + // End all unclosed nodes + while let Some(node) = node_stack.pop() { + previous_node_level -= 1; + new_fdt.end_node(node).unwrap(); + } + assert_eq!(previous_node_level, 0); + + new_fdt.finish().unwrap() +} diff --git a/src/vmm/fdt/device.rs b/src/vmm/fdt/device.rs new file mode 100644 index 00000000..cf9eaafd --- /dev/null +++ b/src/vmm/fdt/device.rs @@ -0,0 +1,511 @@ +//! Device passthrough and dependency analysis for FDT processing. + +use alloc::{ + collections::{BTreeMap, BTreeSet}, + string::{String, ToString}, + vec::Vec, +}; +use axvm::config::AxVMConfig; +use fdt_parser::{Fdt, Node}; + +/// Return the collection of all passthrough devices in the configuration file and newly added devices found +pub fn find_all_passthrough_devices(vm_cfg: &mut AxVMConfig, fdt: &Fdt) -> Vec { + let initial_device_count = vm_cfg.pass_through_devices().len(); + + // Pre-build node cache, store all nodes by path to improve lookup performance + let node_cache: BTreeMap> = build_optimized_node_cache(fdt); + + // Get the list of configured device names + let initial_device_names: Vec = vm_cfg + .pass_through_devices() + .iter() + .map(|dev| dev.name.clone()) + .collect(); + + // Phase 1: Discover descendant nodes of all passthrough devices in the configuration file + // Build a set of configured devices, using BTreeSet to improve lookup efficiency + let mut configured_device_names: BTreeSet = + initial_device_names.iter().cloned().collect(); + + // Used to store newly discovered related device names + let mut additional_device_names = Vec::new(); + + // Phase 1: Process initial devices and their descendant nodes + // Note: Directly use device paths instead of device names + for device_name in &initial_device_names { + // Get all descendant node paths for this device + let descendant_paths = get_descendant_nodes_by_path(&node_cache, device_name); + trace!( + "Found {} descendant paths for {}", + descendant_paths.len(), + device_name + ); + + for descendant_path in descendant_paths { + if !configured_device_names.contains(&descendant_path) { + trace!("Found descendant device: {}", descendant_path); + configured_device_names.insert(descendant_path.clone()); + + additional_device_names.push(descendant_path.clone()); + } else { + trace!("Device already exists: {}", descendant_path); + } + } + } + + info!( + "Phase 1 completed: Found {} new descendant device names", + additional_device_names.len() + ); + + // Phase 2: Discover dependency nodes for all existing devices (including descendant devices) + let mut dependency_device_names = Vec::new(); + // Use a work queue of device names, including initial devices and descendant device names + let mut devices_to_process: Vec = configured_device_names.iter().cloned().collect(); + let mut processed_devices: BTreeSet = BTreeSet::new(); + + // Build phandle mapping table + let phandle_map = build_phandle_map(fdt); + + // Use work queue to recursively find all dependent devices + while let Some(device_node_path) = devices_to_process.pop() { + // Avoid processing the same device repeatedly + if processed_devices.contains(&device_node_path) { + continue; + } + processed_devices.insert(device_node_path.clone()); + + trace!("Analyzing dependencies for device: {}", device_node_path); + + // Find direct dependencies of the current device + let dependencies = find_device_dependencies(&device_node_path, &phandle_map, &node_cache); + trace!( + "Found {} dependencies: {:?}", + dependencies.len(), + dependencies + ); + for dep_node_name in dependencies { + // Check if dependency is already in configuration + if !configured_device_names.contains(&dep_node_name) { + trace!("Found new dependency device: {}", dep_node_name); + dependency_device_names.push(dep_node_name.clone()); + + // Add dependency device name to work queue to further find its dependencies + devices_to_process.push(dep_node_name.clone()); + configured_device_names.insert(dep_node_name.clone()); + } + } + } + + info!( + "Phase 2 completed: Found {} new dependency device names", + dependency_device_names.len() + ); + + // Phase 3: Find all excluded devices and remove them from the list + // Convert Vec> to Vec + let excluded_device_path: Vec = vm_cfg + .excluded_devices() + .iter() + .flatten() + .cloned() + .collect(); + let mut all_excludes_devices = excluded_device_path.clone(); + let mut process_excludeds: BTreeSet = excluded_device_path.iter().cloned().collect(); + + for device_path in &excluded_device_path { + // Get all descendant node paths for this device + let descendant_paths = get_descendant_nodes_by_path(&node_cache, device_path); + info!( + "Found {} descendant paths for {}", + descendant_paths.len(), + device_path + ); + + for descendant_path in descendant_paths { + if !process_excludeds.contains(&descendant_path) { + trace!("Found descendant device: {}", descendant_path); + process_excludeds.insert(descendant_path.clone()); + + all_excludes_devices.push(descendant_path.clone()); + } else { + trace!("Device already exists: {}", descendant_path); + } + } + } + info!("Found excluded devices: {:?}", all_excludes_devices); + + // Merge all device name lists + let mut all_device_names = initial_device_names.clone(); + all_device_names.extend(additional_device_names); + all_device_names.extend(dependency_device_names); + + // Remove excluded devices from the final list + if !all_excludes_devices.is_empty() { + info!( + "Removing {} excluded devices from the list", + all_excludes_devices.len() + ); + let excluded_set: BTreeSet = all_excludes_devices.into_iter().collect(); + + // Filter out excluded devices + all_device_names.retain(|device_name| { + let should_keep = !excluded_set.contains(device_name); + if !should_keep { + info!("Excluding device: {}", device_name); + } + should_keep + }); + } + + // Phase 4: remove root node from the list + all_device_names.retain(|device_name| device_name != "/"); + + let final_device_count = all_device_names.len(); + info!( + "Passthrough devices analysis completed. Total devices: {} (added: {})", + final_device_count, + final_device_count - initial_device_count + ); + + // Print final device list + for (i, device_name) in all_device_names.iter().enumerate() { + trace!("Final passthrough device[{}]: {}", i, device_name); + } + + all_device_names +} + +/// Build the full path of a node based on node level relationships +/// Build the path by traversing all nodes and constructing paths based on level relationships to avoid path conflicts for nodes with the same name +pub fn build_node_path(all_nodes: &[Node], target_index: usize) -> String { + let mut path_stack: Vec = Vec::new(); + + for node in all_nodes.iter().take(target_index + 1) { + let level = node.level; + + if level == 1 { + path_stack.clear(); + if node.name() != "/" { + path_stack.push(node.name().to_string()); + } + } else { + while path_stack.len() >= level - 1 { + path_stack.pop(); + } + path_stack.push(node.name().to_string()); + } + } + + // Build the full path of the current node + if path_stack.is_empty() || (path_stack.len() == 1 && path_stack[0] == "/") { + "/".to_string() + } else { + "/".to_string() + &path_stack.join("/") + } +} + +/// Build a simplified node cache table, traverse all nodes once and group by full path +/// Use level relationships to directly build paths, avoiding path conflicts for nodes with the same name +pub fn build_optimized_node_cache<'a>(fdt: &'a Fdt) -> BTreeMap>> { + let mut node_cache: BTreeMap>> = BTreeMap::new(); + + let all_nodes: Vec = fdt.all_nodes().collect(); + + for (index, node) in all_nodes.iter().enumerate() { + let node_path = build_node_path(&all_nodes, index); + if let Some(existing_nodes) = node_cache.get(&node_path) + && !existing_nodes.is_empty() + { + error!( + "Duplicate node path found: {} for node '{}' at level {}, existing node: '{}'", + node_path, + node.name(), + node.level, + existing_nodes[0].name() + ); + } + + trace!( + "Adding node to cache: {} (level: {}, index: {})", + node_path, node.level, index + ); + node_cache.entry(node_path).or_default().push(node.clone()); + } + + debug!( + "Built simplified node cache with {} unique device paths", + node_cache.len() + ); + node_cache +} + +/// Build a mapping table from phandle to node information, optimized version using fdt-parser convenience methods +/// Use full path instead of node name +/// Use level relationships to directly build paths, avoiding path conflicts for nodes with the same name +fn build_phandle_map(fdt: &Fdt) -> BTreeMap)> { + let mut phandle_map = BTreeMap::new(); + + let all_nodes: Vec = fdt.all_nodes().collect(); + + for (index, node) in all_nodes.iter().enumerate() { + let node_path = build_node_path(&all_nodes, index); + + // Collect node properties + let mut phandle = None; + let mut cells_map = BTreeMap::new(); + for prop in node.propertys() { + match prop.name { + "phandle" | "linux,phandle" => { + phandle = Some(prop.u32()); + } + "#address-cells" + | "#size-cells" + | "#clock-cells" + | "#reset-cells" + | "#gpio-cells" + | "#interrupt-cells" + | "#power-domain-cells" + | "#thermal-sensor-cells" + | "#phy-cells" + | "#dma-cells" + | "#sound-dai-cells" + | "#mbox-cells" + | "#pwm-cells" + | "#iommu-cells" => { + cells_map.insert(prop.name.to_string(), prop.u32()); + } + _ => {} + } + } + + // If phandle is found, store it together with the node's full path + if let Some(ph) = phandle { + phandle_map.insert(ph, (node_path, cells_map)); + } + } + phandle_map +} + +/// Parse properties containing phandle references intelligently based on #*-cells properties +/// Supports multiple formats: +/// - Single phandle: +/// - phandle+specifier: +/// - Multiple phandle references: +fn parse_phandle_property_with_cells( + prop_data: &[u8], + prop_name: &str, + phandle_map: &BTreeMap)>, +) -> Vec<(u32, Vec)> { + let mut results = Vec::new(); + + debug!( + "Parsing property '{}' with cells info, data length: {} bytes", + prop_name, + prop_data.len() + ); + + if prop_data.is_empty() || prop_data.len() % 4 != 0 { + warn!( + "Property '{}' data length ({} bytes) is invalid", + prop_name, + prop_data.len() + ); + return results; + } + + let u32_values: Vec = prop_data + .chunks(4) + .map(|chunk| u32::from_be_bytes([chunk[0], chunk[1], chunk[2], chunk[3]])) + .collect(); + + let mut i = 0; + while i < u32_values.len() { + let potential_phandle = u32_values[i]; + + // Check if it's a valid phandle + if let Some((device_name, cells_info)) = phandle_map.get(&potential_phandle) { + // Determine the number of cells required based on property name + let cells_count = get_cells_count_for_property(prop_name, cells_info); + trace!( + "Property '{}' requires {} cells for device '{}'", + prop_name, cells_count, device_name + ); + + // Check if there's enough data + if i + cells_count < u32_values.len() { + let specifiers: Vec = u32_values[i + 1..=i + cells_count].to_vec(); + debug!( + "Parsed phandle reference: phandle={:#x}, specifiers={:?}", + potential_phandle, specifiers + ); + results.push((potential_phandle, specifiers)); + i += cells_count + 1; // Skip phandle and all specifiers + } else { + warn!( + "Property:{} not enough data for phandle {:#x}, expected {} cells but only {} values remaining", + prop_name, + potential_phandle, + cells_count, + u32_values.len() - i - 1 + ); + break; + } + } else { + // If not a valid phandle, skip this value + i += 1; + } + } + + results +} + +/// Determine the required number of cells based on property name and target node's cells information +fn get_cells_count_for_property(prop_name: &str, cells_info: &BTreeMap) -> usize { + let cells_property = match prop_name { + "clocks" | "assigned-clocks" => "#clock-cells", + "resets" => "#reset-cells", + "power-domains" => "#power-domain-cells", + "phys" => "#phy-cells", + "interrupts" | "interrupts-extended" => "#interrupt-cells", + "gpios" => "#gpio-cells", + _ if prop_name.ends_with("-gpios") || prop_name.ends_with("-gpio") => "#gpio-cells", + "dmas" => "#dma-cells", + "thermal-sensors" => "#thermal-sensor-cells", + "sound-dai" => "#sound-dai-cells", + "mboxes" => "#mbox-cells", + "pwms" => "#pwm-cells", + _ => { + debug!("Unknown property '{}', defaulting to 0 cell", prop_name); + return 0; + } + }; + + cells_info.get(cells_property).copied().unwrap_or(0) as usize +} + +/// Generic phandle property parsing function +/// Parse phandle references according to cells information with correct block size +/// Support single phandle and multiple phandle+specifier formats +/// Return full path instead of node name +fn parse_phandle_property( + prop_data: &[u8], + prop_name: &str, + phandle_map: &BTreeMap)>, +) -> Vec { + let mut dependencies = Vec::new(); + + let phandle_refs = parse_phandle_property_with_cells(prop_data, prop_name, phandle_map); + + for (phandle, specifiers) in phandle_refs { + if let Some((device_path, _cells_info)) = phandle_map.get(&phandle) { + let spec_info = if !specifiers.is_empty() { + format!(" (specifiers: {specifiers:?})") + } else { + String::new() + }; + debug!( + "Found {} dependency: phandle={:#x}, device={}{}", + prop_name, phandle, device_path, spec_info + ); + dependencies.push(device_path.clone()); + } + } + + dependencies +} + +/// Device property classifier - used to identify properties that require special handling +struct DevicePropertyClassifier; + +impl DevicePropertyClassifier { + /// Phandle properties that require special handling - includes all properties that need dependency resolution + const PHANDLE_PROPERTIES: &'static [&'static str] = &[ + "clocks", + "power-domains", + "phys", + "resets", + "dmas", + "thermal-sensors", + "mboxes", + "assigned-clocks", + "interrupt-parent", + "phy-handle", + "msi-parent", + "memory-region", + "syscon", + "regmap", + "iommus", + "interconnects", + "nvmem-cells", + "sound-dai", + "pinctrl-0", + "pinctrl-1", + "pinctrl-2", + "pinctrl-3", + "pinctrl-4", + ]; + + /// Determine if it's a phandle property that requires handling + fn is_phandle_property(prop_name: &str) -> bool { + Self::PHANDLE_PROPERTIES.contains(&prop_name) + || prop_name.ends_with("-supply") + || prop_name == "gpios" + || prop_name.ends_with("-gpios") + || prop_name.ends_with("-gpio") + || (prop_name.contains("cells") && !prop_name.starts_with("#") && prop_name.len() >= 4) + } +} + +/// Find device dependencies +fn find_device_dependencies( + device_node_path: &str, + phandle_map: &BTreeMap)>, + node_cache: &BTreeMap>, // Add node_cache parameter +) -> Vec { + let mut dependencies = Vec::new(); + + // Directly find nodes from node_cache, avoiding traversing all nodes + if let Some(nodes) = node_cache.get(device_node_path) { + // Traverse all properties of nodes to find dependencies + for node in nodes { + for prop in node.propertys() { + // Determine if it's a phandle property that needs to be processed + if DevicePropertyClassifier::is_phandle_property(prop.name) { + let mut prop_deps = + parse_phandle_property(prop.raw_value(), prop.name, phandle_map); + dependencies.append(&mut prop_deps); + } + } + } + } + + dependencies +} + +/// Get all descendant nodes based on parent node path (including child nodes, grandchild nodes, etc.) +/// Find all descendant nodes by looking up nodes with parent node path as prefix in node_cache +fn get_descendant_nodes_by_path<'a>( + node_cache: &'a BTreeMap>>, + parent_path: &str, +) -> Vec { + let mut descendant_paths = Vec::new(); + + // Special handling if parent path is root path + let search_prefix = if parent_path == "/" { + "/".to_string() + } else { + parent_path.to_string() + "/" + }; + + // Traverse node_cache, find all nodes with parent path as prefix + for path in node_cache.keys() { + // Check if path has parent path as prefix (and is not the parent path itself) + if path.starts_with(&search_prefix) && path.len() > search_prefix.len() { + // This is a descendant node path, add to results + descendant_paths.push(path.clone()); + } + } + + descendant_paths +} diff --git a/src/vmm/fdt/mod.rs b/src/vmm/fdt/mod.rs new file mode 100644 index 00000000..ad294cf9 --- /dev/null +++ b/src/vmm/fdt/mod.rs @@ -0,0 +1,121 @@ +//! FDT (Flattened Device Tree) processing module for AxVisor. +//! +//! This module provides functionality for parsing and processing device tree blobs, +//! including CPU configuration, passthrough device detection, and FDT generation. + +mod create; +mod device; +mod parser; +mod print; + +use alloc::collections::BTreeMap; +use alloc::vec::Vec; +use axvm::config::{AxVMConfig, AxVMCrateConfig}; +use fdt_parser::Fdt; +use lazyinit::LazyInit; +use spin::Mutex; + +pub use parser::*; +// pub use print::print_fdt; +pub use create::*; +pub use device::build_node_path; + +use crate::vmm::config::{config, get_vm_dtb_arc}; + +// DTB cache for generated device trees +static GENERATED_DTB_CACHE: LazyInit>>> = LazyInit::new(); + +/// Initialize the DTB cache +pub fn init_dtb_cache() { + GENERATED_DTB_CACHE.init_once(Mutex::new(BTreeMap::new())); +} + +/// Get reference to the DTB cache +pub fn dtb_cache() -> &'static Mutex>> { + GENERATED_DTB_CACHE.get().unwrap() +} + +/// Generate guest FDT cache the result +/// # Return Value +/// Returns the generated DTB data and stores it in the global cache +pub fn crate_guest_fdt_with_cache(dtb_data: Vec, crate_config: &AxVMCrateConfig) { + // Store data in global cache + let mut cache_lock = dtb_cache().lock(); + cache_lock.insert(crate_config.base.id, dtb_data); +} + +/// Handle all FDT-related operations for aarch64 architecture +pub fn handle_fdt_operations(vm_config: &mut AxVMConfig, vm_create_config: &AxVMCrateConfig) { + let host_fdt_bytes = get_host_fdt(); + let host_fdt = Fdt::from_bytes(host_fdt_bytes) + .map_err(|e| format!("Failed to parse FDT: {e:#?}")) + .expect("Failed to parse FDT"); + set_phys_cpu_sets(vm_config, &host_fdt, vm_create_config); + + if let Some(provided_dtb) = get_developer_provided_dtb(vm_config, vm_create_config) { + info!("VM[{}] found DTB , parsing...", vm_config.id()); + update_provided_fdt(&provided_dtb, host_fdt_bytes, vm_create_config); + } else { + info!( + "VM[{}] DTB not found, generating based on the configuration file.", + vm_config.id() + ); + setup_guest_fdt_from_vmm(host_fdt_bytes, vm_config, vm_create_config); + } + + // Overlay VM config with the given DTB. + if let Some(dtb_arc) = get_vm_dtb_arc(vm_config) { + let dtb = dtb_arc.as_ref(); + parse_passthrough_devices_address(vm_config, dtb); + parse_vm_interrupt(vm_config, dtb); + } else { + error!( + "VM[{}] DTB not found in memory, skipping...", + vm_config.id() + ); + } +} + +pub fn get_developer_provided_dtb( + vm_cfg: &AxVMConfig, + crate_config: &AxVMCrateConfig, +) -> Option> { + match crate_config.kernel.image_location.as_deref() { + Some("memory") => { + let vm_imags = config::get_memory_images() + .iter() + .find(|&v| v.id == vm_cfg.id())?; + + if let Some(dtb) = vm_imags.dtb { + info!("DTB file in memory, size: 0x{:x}", dtb.len()); + return Some(dtb.to_vec()); + } + } + #[cfg(feature = "fs")] + Some("fs") => { + use axerrno::ax_err_type; + use std::io::{BufReader, Read}; + if let Some(dtb_path) = &crate_config.kernel.dtb_path { + let (dtb_file, dtb_size) = crate::vmm::images::open_image_file(dtb_path).unwrap(); + info!("DTB file in fs, size: 0x{:x}", dtb_size); + + let mut file = BufReader::new(dtb_file); + let mut dtb_buffer = vec![0; dtb_size]; + + file.read_exact(&mut dtb_buffer) + .map_err(|err| { + ax_err_type!( + Io, + format!("Failed in reading from file {}, err {:?}", dtb_path, err) + ) + }) + .unwrap(); + return Some(dtb_buffer); + } + } + _ => unimplemented!( + "Check your \"image_location\" in config.toml, \"memory\" and \"fs\" are supported,\n." + ), + } + None +} diff --git a/src/vmm/fdt/parser.rs b/src/vmm/fdt/parser.rs new file mode 100644 index 00000000..859b8102 --- /dev/null +++ b/src/vmm/fdt/parser.rs @@ -0,0 +1,380 @@ +//! FDT parsing and processing functionality. + +use alloc::{string::ToString, vec::Vec}; +use axvm::config::{AxVMConfig, AxVMCrateConfig, PassThroughDeviceConfig}; +use fdt_parser::{Fdt, FdtHeader, PciRange, PciSpace}; + +use crate::vmm::fdt::crate_guest_fdt_with_cache; +use crate::vmm::fdt::create::update_cpu_node; + +pub fn get_host_fdt() -> &'static [u8] { + const FDT_VALID_MAGIC: u32 = 0xd00d_feed; + let bootarg: usize = std::os::arceos::modules::axhal::get_bootarg(); + let header = unsafe { + core::slice::from_raw_parts(bootarg as *const u8, core::mem::size_of::()) + }; + let fdt_header = FdtHeader::from_bytes(header) + .map_err(|e| format!("Failed to parse FDT header: {e:#?}")) + .unwrap(); + + if fdt_header.magic.get() != FDT_VALID_MAGIC { + error!( + "FDT magic is invalid, expected {:#x}, got {:#x}", + FDT_VALID_MAGIC, + fdt_header.magic.get() + ); + } + + unsafe { core::slice::from_raw_parts(bootarg as *const u8, fdt_header.total_size()) } +} + +pub fn setup_guest_fdt_from_vmm( + fdt_bytes: &[u8], + vm_cfg: &mut AxVMConfig, + crate_config: &AxVMCrateConfig, +) { + let fdt = Fdt::from_bytes(fdt_bytes) + .map_err(|e| format!("Failed to parse FDT: {e:#?}")) + .expect("Failed to parse FDT"); + + // Call the modified function and get the returned device name list + let passthrough_device_names = super::device::find_all_passthrough_devices(vm_cfg, &fdt); + + let dtb_data = super::create::crate_guest_fdt(&fdt, &passthrough_device_names, crate_config); + crate_guest_fdt_with_cache(dtb_data, crate_config); +} + +pub fn set_phys_cpu_sets(vm_cfg: &mut AxVMConfig, fdt: &Fdt, crate_config: &AxVMCrateConfig) { + // Find and parse CPU information from host DTB + let host_cpus: Vec<_> = fdt.find_nodes("/cpus/cpu").collect(); + info!("Found {} host CPU nodes", &host_cpus.len()); + + let phys_cpu_ids = crate_config + .base + .phys_cpu_ids + .as_ref() + .expect("ERROR: phys_cpu_ids not found in config.toml"); + + // Collect all CPU node information into Vec to avoid using iterators multiple times + let cpu_nodes_info: Vec<_> = host_cpus + .iter() + .filter_map(|cpu_node| { + if let Some(mut cpu_reg) = cpu_node.reg() { + if let Some(r) = cpu_reg.next() { + info!( + "CPU node: {}, phys_cpu_id: 0x{:x}", + cpu_node.name(), + r.address + ); + Some((cpu_node.name().to_string(), r.address as usize)) + } else { + None + } + } else { + None + } + }) + .collect(); + // Create mapping from phys_cpu_id to physical CPU index + // Collect all unique CPU addresses, maintaining the order of appearance in the device tree + let mut unique_cpu_addresses = Vec::new(); + for (_, cpu_address) in &cpu_nodes_info { + if !unique_cpu_addresses.contains(cpu_address) { + unique_cpu_addresses.push(*cpu_address); + } else { + panic!("Duplicate CPU address found"); + } + } + + // Assign index to each CPU address in the device tree and print detailed information + for (index, &cpu_address) in unique_cpu_addresses.iter().enumerate() { + // Find all CPU nodes using this address + for (cpu_name, node_address) in &cpu_nodes_info { + if *node_address == cpu_address { + debug!( + " CPU node: {}, address: 0x{:x}, assigned index: {}", + cpu_name, cpu_address, index + ); + break; // Print each address only once + } + } + } + + // Calculate phys_cpu_sets based on phys_cpu_ids in vcpu_mappings + let mut new_phys_cpu_sets = Vec::new(); + for phys_cpu_id in phys_cpu_ids { + // Find the index corresponding to phys_cpu_id in unique_cpu_addresses + if let Some(cpu_index) = unique_cpu_addresses + .iter() + .position(|&addr| addr == *phys_cpu_id) + { + let cpu_mask = 1usize << cpu_index; // Convert index to mask bit + new_phys_cpu_sets.push(cpu_mask); + debug!( + "vCPU {} with phys_cpu_id 0x{:x} mapped to CPU index {} (mask: 0x{:x})", + vm_cfg.id(), + phys_cpu_id, + cpu_index, + cpu_mask + ); + } else { + error!( + "vCPU {} with phys_cpu_id 0x{:x} not found in device tree!", + vm_cfg.id(), + phys_cpu_id + ); + } + } + + // Update phys_cpu_sets in VM configuration (if VM configuration supports setting) + info!("Calculated phys_cpu_sets: {:?}", new_phys_cpu_sets); + + vm_cfg + .phys_cpu_ls_mut() + .set_guest_cpu_sets(new_phys_cpu_sets); + + debug!( + "vcpu_mappings: {:?}", + vm_cfg.phys_cpu_ls_mut().get_vcpu_affinities_pcpu_ids() + ); +} + +/// Add address mapping configuration for a device +fn add_device_address_config( + vm_cfg: &mut AxVMConfig, + node_name: &str, + base_address: usize, + size: usize, + index: usize, + prefix: Option<&str>, +) { + // Only process devices with address information + if size == 0 { + return; + } + + // Create a device configuration for each address segment + let device_name = if index == 0 { + match prefix { + Some(p) => format!("{node_name}-{p}"), + None => node_name.to_string(), + } + } else { + match prefix { + Some(p) => format!("{node_name}-{p}-region{index}"), + None => format!("{node_name}-region{index}"), + } + }; + + // Add new device configuration + let pt_dev = axvm::config::PassThroughDeviceConfig { + name: device_name, + base_gpa: base_address, + base_hpa: base_address, + length: size, + irq_id: 0, + }; + vm_cfg.add_pass_through_device(pt_dev); +} + +/// Add ranges property configuration for PCIe devices +fn add_pci_ranges_config(vm_cfg: &mut AxVMConfig, node_name: &str, range: &PciRange, index: usize) { + let base_address = range.cpu_address as usize; + let size = range.size as usize; + + // Only process devices with address information + if size == 0 { + return; + } + + // Create a device configuration for each address segment + let prefix = match range.space { + PciSpace::Configuration => "config", + PciSpace::IO => "io", + PciSpace::Memory32 => "mem32", + PciSpace::Memory64 => "mem64", + }; + + let device_name = if index == 0 { + format!("{node_name}-{prefix}") + } else { + format!("{node_name}-{prefix}-region{index}") + }; + + // Add new device configuration + let pt_dev = axvm::config::PassThroughDeviceConfig { + name: device_name, + base_gpa: base_address, + base_hpa: base_address, + length: size, + irq_id: 0, + }; + vm_cfg.add_pass_through_device(pt_dev); + + trace!( + "Added PCIe passthrough device {}: base=0x{:x}, size=0x{:x}, space={:?}", + node_name, base_address, size, range.space + ); +} + +pub fn parse_passthrough_devices_address(vm_cfg: &mut AxVMConfig, dtb: &[u8]) { + let fdt = Fdt::from_bytes(dtb) + .expect("Failed to parse DTB image, perhaps the DTB is invalid or corrupted"); + + // Clear existing passthrough device configurations + vm_cfg.clear_pass_through_devices(); + + // Traverse all device tree nodes + for node in fdt.all_nodes() { + // Skip root node + if node.name() == "/" || node.name().starts_with("memory") { + continue; + } + + let node_name = node.name().to_string(); + + // Check if it's a PCIe device node + if node_name.starts_with("pcie@") || node_name.contains("pci") { + // Process PCIe device's ranges property + if let Some(pci) = node.clone().into_pci() + && let Ok(ranges) = pci.ranges() + { + for (index, range) in ranges.enumerate() { + add_pci_ranges_config(vm_cfg, &node_name, &range, index); + } + } + + // Process PCIe device's reg property (ECAM space) + if let Some(reg_iter) = node.reg() { + for (index, reg) in reg_iter.enumerate() { + let base_address = reg.address as usize; + let size = reg.size.unwrap_or(0); + + add_device_address_config( + vm_cfg, + &node_name, + base_address, + size, + index, + Some("ecam"), + ); + } + } + } else { + // Get device's reg property (process regular devices) + if let Some(reg_iter) = node.reg() { + // Process all address segments of the device + for (index, reg) in reg_iter.enumerate() { + // Get device's address and size information + let base_address = reg.address as usize; + let size = reg.size.unwrap_or(0); + + add_device_address_config(vm_cfg, &node_name, base_address, size, index, None); + } + } + } + } + trace!( + "All passthrough devices: {:#x?}", + vm_cfg.pass_through_devices() + ); + debug!( + "Finished parsing passthrough devices, total: {}", + vm_cfg.pass_through_devices().len() + ); +} + +pub fn parse_vm_interrupt(vm_cfg: &mut AxVMConfig, dtb: &[u8]) { + const GIC_PHANDLE: usize = 1; + let fdt = Fdt::from_bytes(dtb) + .expect("Failed to parse DTB image, perhaps the DTB is invalid or corrupted"); + + for node in fdt.all_nodes() { + let name = node.name(); + + if name.starts_with("memory") { + continue; + } + // Skip the interrupt controller, as we will use vGIC + // TODO: filter with compatible property and parse its phandle from DT; maybe needs a second pass? + else if name.starts_with("interrupt-controller") + || name.starts_with("intc") + || name.starts_with("its") + { + info!("skipping node {} to use vGIC", name); + continue; + } + + // Collect all GIC_SPI interrupts and add them to vGIC + if let Some(interrupts) = node.interrupts() { + // TODO: skip non-GIC interrupt + if let Some(parent) = node.interrupt_parent() { + trace!("node: {}, intr parent: {}", name, parent.node.name()); + if let Some(phandle) = parent.node.phandle() { + if phandle.as_usize() != GIC_PHANDLE { + debug!( + "node: {}, intr parent: {}, phandle: 0x{:x} is not GIC!", + name, + parent.node.name(), + phandle.as_usize() + ); + } + } else { + warn!( + "node: {}, intr parent: {} no phandle!", + name, + parent.node.name(), + ); + } + } else { + warn!("node: {} no interrupt parent!", name); + } + + for interrupt in interrupts { + // + for (k, v) in interrupt.enumerate() { + match k { + 0 => { + if v == 0 { + trace!("node: {}, GIC_SPI", name); + } else { + debug!( + "node: {}, intr type: {}, not GIC_SPI, not supported!", + name, v + ); + break; + } + } + 1 => { + trace!("node: {}, interrupt id: 0x{:x}", name, v); + vm_cfg.add_pass_through_spi(v); + } + 2 => { + trace!("node: {}, interrupt mode: 0x{:x}", name, v); + } + _ => { + warn!("unknown interrupt property {}:0x{:x}", k, v) + } + } + } + } + } + } + + vm_cfg.add_pass_through_device(PassThroughDeviceConfig { + name: "Fake Node".to_string(), + base_gpa: 0x0, + base_hpa: 0x0, + length: 0x20_0000, + irq_id: 0, + }); +} + +pub fn update_provided_fdt(provided_dtb: &[u8], host_dtb: &[u8], crate_config: &AxVMCrateConfig) { + let provided_fdt = Fdt::from_bytes(provided_dtb) + .expect("Failed to parse DTB image, perhaps the DTB is invalid or corrupted"); + let host_fdt = Fdt::from_bytes(host_dtb) + .expect("Failed to parse DTB image, perhaps the DTB is invalid or corrupted"); + let provided_dtb_data = update_cpu_node(&provided_fdt, &host_fdt, crate_config); + crate_guest_fdt_with_cache(provided_dtb_data, crate_config); +} diff --git a/src/vmm/fdt/print.rs b/src/vmm/fdt/print.rs new file mode 100644 index 00000000..e9f10d68 --- /dev/null +++ b/src/vmm/fdt/print.rs @@ -0,0 +1,135 @@ +//! FDT parsing and processing functionality. + +use fdt_parser::{Fdt, FdtHeader}; + +#[allow(dead_code)] +pub fn print_fdt(fdt_addr: usize) { + const FDT_VALID_MAGIC: u32 = 0xd00d_feed; + let header = unsafe { + core::slice::from_raw_parts(fdt_addr as *const u8, core::mem::size_of::()) + }; + let fdt_header = FdtHeader::from_bytes(header) + .map_err(|e| format!("Failed to parse FDT header: {e:#?}")) + .unwrap(); + + if fdt_header.magic.get() != FDT_VALID_MAGIC { + error!( + "FDT magic is invalid, expected {:#x}, got {:#x}", + FDT_VALID_MAGIC, + fdt_header.magic.get() + ); + return; + } + + let fdt_bytes = + unsafe { core::slice::from_raw_parts(fdt_addr as *const u8, fdt_header.total_size()) }; + + let fdt = Fdt::from_bytes(fdt_bytes) + .map_err(|e| format!("Failed to parse FDT: {e:#?}")) + .expect("Failed to parse FDT"); + + // Statistics of node count and level distribution + let mut node_count = 0; + let mut level_counts = alloc::collections::BTreeMap::new(); + let mut max_level = 0; + + info!("=== FDT Node Information Statistics ==="); + + // Traverse all nodes once for statistics (following optimization strategy) + for node in fdt.all_nodes() { + node_count += 1; + + // Count nodes by level + *level_counts.entry(node.level).or_insert(0) += 1; + + // Record maximum level + if node.level > max_level { + max_level = node.level; + } + + // Count property numbers + let node_properties_count = node.propertys().count(); + + trace!( + "Node[{}]: {} (Level: {}, Properties: {})", + node_count, + node.name(), + node.level, + node_properties_count + ); + + for prop in node.propertys() { + trace!( + "Properties: {}, Raw_value: {:x?}", + prop.name, + prop.raw_value() + ); + } + } + + info!("=== FDT Statistics Results ==="); + info!("Total node count: {}", node_count); + info!("FDT total size: {} bytes", fdt_header.total_size()); + info!("Maximum level depth: {}", max_level); + + info!("Node distribution by level:"); + for (level, count) in level_counts { + let percentage = (count as f32 / node_count as f32) * 100.0; + info!(" Level {}: {} nodes ({:.1}%)", level, count, percentage); + } +} + +#[allow(dead_code)] +pub fn print_guest_fdt(fdt_bytes: &[u8]) { + let fdt = Fdt::from_bytes(fdt_bytes) + .map_err(|e| format!("Failed to parse FDT: {e:#?}")) + .expect("Failed to parse FDT"); + // Statistics of node count and level distribution + let mut node_count = 0; + let mut level_counts = alloc::collections::BTreeMap::new(); + let mut max_level = 0; + + info!("=== FDT Node Information Statistics ==="); + + // Traverse all nodes once for statistics (following optimization strategy) + for node in fdt.all_nodes() { + node_count += 1; + + // Count nodes by level + *level_counts.entry(node.level).or_insert(0) += 1; + + // Record maximum level + if node.level > max_level { + max_level = node.level; + } + + // Count property numbers + let node_properties_count = node.propertys().count(); + + info!( + "Node[{}]: {} (Level: {}, Properties: {})", + node_count, + node.name(), + node.level, + node_properties_count + ); + + for prop in node.propertys() { + info!( + "Properties: {}, Raw_value: {:x?}", + prop.name, + prop.raw_value() + ); + } + } + + info!("=== FDT Statistics Results ==="); + info!("Total node count: {}", node_count); + info!("Maximum level depth: {}", max_level); + + info!("Node distribution by level:"); + for (level, count) in level_counts { + let percentage = (count as f32 / node_count as f32) * 100.0; + info!(" Level {}: {} nodes ({:.1}%)", level, count, percentage); + } +} diff --git a/src/vmm/images/mod.rs b/src/vmm/images/mod.rs index 39e71a53..9c6ccc43 100644 --- a/src/vmm/images/mod.rs +++ b/src/vmm/images/mod.rs @@ -1,5 +1,3 @@ -use core::ptr::NonNull; - use axaddrspace::GuestPhysAddr; use axerrno::AxResult; @@ -7,11 +5,15 @@ use axvm::VMMemoryRegion; use axvm::config::AxVMCrateConfig; use byte_unit::Byte; -use crate::vmm::fdt::updated_fdt; - use crate::hal::CacheOp; use crate::vmm::VMRef; -use crate::vmm::config::config; +use crate::vmm::config::{config, get_vm_dtb_arc}; + +#[cfg(target_arch = "aarch64")] +use crate::vmm::fdt::update_fdt; + +#[cfg(target_arch = "aarch64")] +use core::ptr::NonNull; mod linux; @@ -104,17 +106,20 @@ impl ImageLoader { load_vm_image_from_memory(vm_imags.kernel, self.kernel_load_gpa, self.vm.clone()) .expect("Failed to load VM images"); // Load DTB image - if let Some(buffer) = vm_imags.dtb { + let vm_config = axvm::config::AxVMConfig::from(self.config.clone()); + if let Some(dtb_arc) = get_vm_dtb_arc(&vm_config) { + let dtb_slice: &[u8] = &dtb_arc; debug!( "DTB buffer addr: {:x}, size: {:#}", self.dtb_load_gpa.unwrap(), - Byte::from(buffer.len()) + Byte::from(dtb_slice.len()) ); - updated_fdt( + #[cfg(target_arch = "aarch64")] + update_fdt( self.dtb_load_gpa.unwrap(), - NonNull::new(buffer.as_ptr() as *mut u8).unwrap(), - buffer.len(), + NonNull::new(dtb_slice.as_ptr() as *mut u8).unwrap(), + dtb_slice.len(), self.vm.clone(), ); } @@ -186,15 +191,10 @@ pub fn load_vm_image_from_memory( #[cfg(feature = "fs")] mod fs { - use std::{fs::File, vec::Vec}; - - use axerrno::{AxResult, ax_err, ax_err_type}; - - use crate::hal::CacheOp; - use super::*; - - use std::io::{BufReader, Read}; + use crate::hal::CacheOp; + use axerrno::{AxResult, ax_err, ax_err_type}; + use std::{fs::File, vec::Vec}; pub fn kernal_read(config: &AxVMCrateConfig, read_size: usize) -> AxResult> { use std::fs::File; @@ -253,35 +253,24 @@ mod fs { } }; // Load DTB image if needed. - // Todo: generate DTB file for guest VM. - if let Some(dtb_path) = &loader.config.kernel.dtb_path { - let (dtb_file, dtb_size) = open_image_file(dtb_path)?; - info!("DTB file size {}", dtb_size); - - let mut file = BufReader::new(dtb_file); - let mut dtb_buffer = vec![0; dtb_size]; - - file.read_exact(&mut dtb_buffer).map_err(|err| { - ax_err_type!( - Io, - format!("Failed in reading from file {}, err {:?}", dtb_path, err) - ) - })?; - - let dtb_addr = loader.dtb_load_gpa.unwrap(); - - info!( + let vm_config = axvm::config::AxVMConfig::from(loader.config.clone()); + if let Some(dtb_arc) = get_vm_dtb_arc(&vm_config) { + let dtb_slice: &[u8] = &dtb_arc; + debug!( "DTB buffer addr: {:x}, size: {:#}", - dtb_addr, - Byte::from(dtb_size) + loader.dtb_load_gpa.unwrap(), + Byte::from(dtb_slice.len()) ); - updated_fdt( - dtb_addr, - NonNull::new(dtb_buffer.as_mut_ptr()).unwrap(), - dtb_size, + + #[cfg(target_arch = "aarch64")] + update_fdt( + loader.dtb_load_gpa.unwrap(), + NonNull::new(dtb_slice.as_ptr() as *mut u8).unwrap(), + dtb_slice.len(), loader.vm.clone(), ); - }; + } + Ok(()) } @@ -310,7 +299,7 @@ mod fs { Ok(()) } - fn open_image_file(file_name: &str) -> AxResult<(File, usize)> { + pub fn open_image_file(file_name: &str) -> AxResult<(File, usize)> { let file = File::open(file_name).map_err(|err| { ax_err_type!( NotFound, @@ -335,3 +324,6 @@ mod fs { Ok((file, file_size)) } } + +#[cfg(feature = "fs")] +pub use fs::open_image_file; diff --git a/src/vmm/mod.rs b/src/vmm/mod.rs index 09cb27c6..0c228bad 100644 --- a/src/vmm/mod.rs +++ b/src/vmm/mod.rs @@ -1,5 +1,4 @@ mod config; -mod fdt; mod hvc; mod images; mod ivc; @@ -7,6 +6,9 @@ pub mod timer; mod vcpus; mod vm_list; +#[cfg(target_arch = "aarch64")] +pub mod fdt; + use core::sync::atomic::{AtomicUsize, Ordering}; use std::os::arceos::{ api::task::{self, AxWaitQueueHandle}, From 1502016ae439dfb2ab415f0302e25098b2a190f0 Mon Sep 17 00:00:00 2001 From: bhxh <32200913+buhenxihuan@users.noreply.github.com> Date: Sun, 28 Sep 2025 15:55:49 +0800 Subject: [PATCH 214/219] add platform support for rk3588 and bst-a1000 (#262) --- configs/vms/linux-aarch64-a1000-smp8-fada.dts | 3385 +++++++ configs/vms/linux-aarch64-a1000-smp8-fadb.dts | 3378 +++++++ configs/vms/linux-aarch64-a1000-smp8.toml | 57 + configs/vms/linux-aarch64-rk3588-smp8.dts | 8099 +++++++++++++++++ configs/vms/linux-aarch64-rk3588-smp8.toml | 122 + 5 files changed, 15041 insertions(+) create mode 100644 configs/vms/linux-aarch64-a1000-smp8-fada.dts create mode 100644 configs/vms/linux-aarch64-a1000-smp8-fadb.dts create mode 100644 configs/vms/linux-aarch64-a1000-smp8.toml create mode 100644 configs/vms/linux-aarch64-rk3588-smp8.dts create mode 100644 configs/vms/linux-aarch64-rk3588-smp8.toml diff --git a/configs/vms/linux-aarch64-a1000-smp8-fada.dts b/configs/vms/linux-aarch64-a1000-smp8-fada.dts new file mode 100644 index 00000000..49cb3d06 --- /dev/null +++ b/configs/vms/linux-aarch64-a1000-smp8-fada.dts @@ -0,0 +1,3385 @@ +/dts-v1/; + +/memreserve/ 0x0000000018000000 0x0000000000100000; +/ { + compatible = "bst,a1000b"; + #address-cells = <0x02>; + #size-cells = <0x02>; + model = "BST A1000B FAD-A"; + + cpus { + #address-cells = <0x01>; + #size-cells = <0x00>; + + cpu@0 { + compatible = "arm,cortex-a55\0arm,armv8"; + device_type = "cpu"; + enable-method = "psci"; + next-level-cache = <0x03>; + reg = <0x00>; + cpu-idle-states = <0x04>; + phandle = <0x3a>; + }; + + cpu@1 { + compatible = "arm,cortex-a55\0arm,armv8"; + device_type = "cpu"; + enable-method = "psci"; + next-level-cache = <0x03>; + reg = <0x100>; + cpu-idle-states = <0x04>; + phandle = <0x3b>; + }; + + cpu@2 { + compatible = "arm,cortex-a55\0arm,armv8"; + device_type = "cpu"; + enable-method = "psci"; + next-level-cache = <0x03>; + reg = <0x200>; + cpu-idle-states = <0x04>; + phandle = <0x3c>; + }; + + cpu@3 { + compatible = "arm,cortex-a55\0arm,armv8"; + device_type = "cpu"; + enable-method = "psci"; + next-level-cache = <0x03>; + reg = <0x300>; + cpu-idle-states = <0x04>; + phandle = <0x3d>; + }; + + cpu@4 { + compatible = "arm,cortex-a55\0arm,armv8"; + device_type = "cpu"; + enable-method = "psci"; + next-level-cache = <0x03>; + reg = <0x400>; + cpu-idle-states = <0x04>; + phandle = <0x3e>; + }; + + cpu@5 { + compatible = "arm,cortex-a55\0arm,armv8"; + device_type = "cpu"; + enable-method = "psci"; + next-level-cache = <0x03>; + reg = <0x500>; + cpu-idle-states = <0x04>; + phandle = <0x3f>; + }; + + cpu@6 { + compatible = "arm,cortex-a55\0arm,armv8"; + device_type = "cpu"; + enable-method = "psci"; + next-level-cache = <0x03>; + reg = <0x600>; + cpu-idle-states = <0x04>; + phandle = <0x40>; + }; + + cpu@7 { + compatible = "arm,cortex-a55\0arm,armv8"; + device_type = "cpu"; + enable-method = "psci"; + next-level-cache = <0x03>; + reg = <0x700>; + cpu-idle-states = <0x04>; + phandle = <0x41>; + }; + + l2-cache0 { + compatible = "cache"; + phandle = <0x03>; + }; + + }; + + psci { + compatible = "arm,psci"; + method = "hvc"; + cpu_on = <0xc4000003>; + cpu_off = <0x84000002>; + cpu_suspend = <0xc4000001>; + }; + + misc_clk { + compatible = "fixed-clock"; + #clock-cells = <0x00>; + clock-frequency = <0x3d0900>; + phandle = <0x02>; + }; + + timer { + compatible = "arm,armv8-timer"; + interrupt-parent = <0x01>; + interrupts = <0x01 0x0d 0xff08 0x01 0x0e 0xff08 0x01 0x0b 0xff08 0x01 0x0a 0xff08>; + }; + + amba_apu@0 { + compatible = "simple-bus"; + #address-cells = <0x02>; + #size-cells = <0x01>; + ranges = <0x00 0x00 0x00 0x00 0xffffffff>; + + a1000bclkc@33002000 { + compatible = "bst,a1000b-clkc"; + osc-clk-frequency = <0x17d7840>; + rgmii0-rxclk-frequency = <0x7735940>; + rgmii1-rxclk-frequency = <0x7735940>; + ptp_clk-frequency = <0x7735940>; + #clock-cells = <0x01>; + reg = <0x00 0x33002000 0x1000 0x00 0x70035000 0x1000 0x00 0x20020000 0x1000 0x00 0x20021000 0x1000>; + phandle = <0x05>; + }; + + a1000rstc@0x3300217c { + compatible = "bst,a1000b-rstc"; + #reset-cells = <0x01>; + reg = <0x00 0x3300217c 0x04 0x00 0x33002180 0x04 0x00 0x70035008 0x04 0x00 0x20020000 0x04 0x00 0x20021000 0x04>; + phandle = <0x06>; + }; + + interrupt-controller@32000000 { + compatible = "arm,gic-400"; + #interrupt-cells = <0x03>; + interrupt-controller; + reg = <0x00 0x32001000 0x1000 0x00 0x32002000 0x2000 0x00 0x32004000 0x2000 0x00 0x32006000 0x2000>; + interrupt-parent = <0x01>; + interrupts = <0x01 0x09 0xff04>; + phandle = <0x01>; + }; + + a1000noc { + compatible = "bst,a1000-noc"; + echo-args = <0x01>; + noc-arg-num = <0x2a>; + noc-args = <0x3342000c 0x00 0x33420008 0x505 0x3342008c 0x00 0x33420088 0x505 0x3342010c 0x00 0x33420108 0x505 0x3342018c 0x00 0x33420188 0x505 0x3342020c 0x00 0x33420208 0x505 0x3342028c 0x00 0x33420288 0x505 0x3342030c 0x00 0x33420308 0x505 0x3342038c 0x00 0x33420388 0x303 0x3342040c 0x00 0x33420408 0x303 0x3342048c 0x00 0x33420488 0x303 0x3342050c 0x00 0x33420508 0x303 0x3342058c 0x00 0x33420588 0x303 0x3342060c 0x00 0x33420608 0x303 0x3342068c 0x00 0x33420688 0x303 0x3342070c 0x00 0x33420708 0x00 0x3342078c 0x00 0x33420788 0x707 0x3342080c 0x00 0x33420808 0x707 0x3342088c 0x00 0x33420888 0x707 0x3342090c 0x00 0x33420908 0x707 0x3340010c 0x00 0x33400108 0x505 0x3340018c 0x00 0x33400188 0x505>; + }; + + serial@20008000 { + status = "okay"; + compatible = "snps,dw-apb-uart"; + reg = <0x00 0x20008000 0x1000>; + interrupt-parent = <0x01>; + interrupts = <0x00 0xd5 0x04>; + clocks = <0x05 0x54 0x05 0x66>; + clock-names = "baudclk\0apb_pclk"; + resets = <0x06 0x1d>; + resets-names = "uart_reset"; + reg-shift = <0x02>; + reg-io-width = <0x04>; + pinctrl-names = "default"; + pinctrl-0 = <0x07>; + }; + + serial@2000a000 { + status = "okay"; + compatible = "snps,dw-apb-uart"; + reg = <0x00 0x2000a000 0x1000>; + interrupt-parent = <0x01>; + interrupts = <0x00 0xd6 0x04>; + clocks = <0x05 0x55 0x05 0x67>; + clock-names = "baudclk\0apb_pclk"; + resets = <0x06 0x17>; + resets-names = "uart_reset"; + reg-shift = <0x02>; + reg-io-width = <0x04>; + pinctrl-names = "default"; + pinctrl-0 = <0x08>; + }; + + serial@2000b000 { + status = "disable"; + compatible = "snps,dw-apb-uart"; + reg = <0x00 0x2000b000 0x1000>; + interrupt-parent = <0x01>; + interrupts = <0x00 0xd7 0x04>; + clocks = <0x05 0x70 0x05 0x7d>; + clock-names = "baudclk\0apb_pclk"; + resets = <0x06 0x29>; + resets-names = "uart_reset"; + reg-shift = <0x02>; + reg-io-width = <0x04>; + pinctrl-names = "default"; + pinctrl-0 = <0x09>; + }; + + serial@20009000 { + status = "okay"; + compatible = "snps,dw-apb-uart"; + reg = <0x00 0x20009000 0x1000>; + interrupt-parent = <0x01>; + interrupts = <0x00 0xd8 0x04>; + clocks = <0x05 0x6f 0x05 0x7e>; + clock-names = "baudclk\0apb_pclk"; + resets = <0x06 0x25>; + resets-names = "uart_reset"; + reg-shift = <0x02>; + reg-io-width = <0x04>; + pinctrl-names = "default"; + pinctrl-0 = <0x0a>; + }; + + dma-controller@33200000 { + status = "okay"; + compatible = "bst,dw-axi-gdma"; + reg = <0x00 0x33200000 0x1000>; + clocks = <0x05 0x2f 0x05 0x30>; + clock-names = "core-clk\0cfgr-clk"; + resets = <0x06 0x0c>; + reset-names = "gdma_reset"; + dma-channels = <0x08>; + snps,dma-masters = <0x01>; + snps,data-width = <0x04>; + snps,block-size = <0x1000 0x1000 0x1000 0x1000 0x1000 0x1000 0x1000 0x1000>; + snps,priority = <0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07>; + snps,axi-max-burst-len = <0x10>; + interrupt-parent = <0x01>; + interrupts = <0x00 0x90 0xff04 0x00 0x91 0xff04 0x00 0x92 0xff04 0x00 0x93 0xff04 0x00 0x94 0xff04 0x00 0x95 0xff04 0x00 0x96 0xff04 0x00 0x97 0xff04 0x00 0x98 0xff04>; + support-slave; + }; + + pcie-phy@30E02000 { + reg = <0x00 0x30e02000 0x1000>; + reg-names = "phy-base"; + dmc-lane = <0x01>; + dmc-mode = <0x02>; + pcie-ctl0 = <0x01>; + pcie-ctl1 = <0x00>; + phandle = <0x0b>; + }; + + pcie@30600000 { + status = "disable"; + compatible = "bst,dw-pcie-rc"; + device_type = "pci"; + controller-id = <0x00>; + bus-range = <0x00 0xff>; + linux,pci-domain = <0x00>; + reg = <0x00 0x30600000 0x10000 0x00 0x30700000 0x10000 0x00 0x30900000 0x40000 0x00 0x30980000 0x40000 0x00 0x40000000 0x40000>; + reg-names = "dbi\0dbi2\0atu\0dma\0config"; + num-iatu = <0x04>; + num-viewport = <0x04>; + #address-cells = <0x03>; + #size-cells = <0x02>; + ranges = <0x81000000 0x00 0x41000000 0x00 0x41000000 0x00 0x1000000 0x83000000 0x00 0x42000000 0x00 0x42000000 0x00 0x4000000>; + dma-ranges = <0x3000000 0x00 0x80000000 0x00 0x80000000 0x02 0x00>; + interrupt-parent = <0x01>; + interrupts = <0x00 0xc5 0x04 0x00 0xbf 0x04 0x00 0xc0 0x04 0x00 0xc1 0x04 0x00 0xc6 0x04>; + interrupt-names = "sys\0dma\0correctable\0uncorrectable\0other"; + #interrupt-cells = <0x01>; + interrupt-map-mask = <0x00 0x00 0x00 0x00>; + interrupt-map = <0x00 0x00 0x00 0x00 0x01 0x00 0xc5 0x04>; + pcie-phy = <0x0b>; + max-link-speed = <0x03>; + num-lanes = <0x02>; + picp-ctl = "mem"; + ob-memaddr-def = <0x0c>; + }; + + pcie0_ep@30600000 { + status = "disable"; + compatible = "bst,dw-pcie-ep"; + device_type = "pci"; + controller-id = <0x00>; + bus-range = <0x00 0x04>; + reg = <0x00 0x30600000 0x40000 0x00 0x30700000 0x40000 0x00 0x30900000 0x40000 0x00 0x30980000 0x40000 0x00 0x40000000 0x100000>; + reg-names = "dbi\0dbi2\0atu\0dma\0addr_space"; + num-ib-windows = <0x06>; + num-ob-windows = <0x06>; + max-functions = [04]; + pcie-phy = <0x0b>; + interrupt-parent = <0x01>; + interrupts = <0x00 0xc5 0x04 0x00 0xbf 0x04 0x00 0xc0 0x04 0x00 0xc1 0x04 0x00 0xc6 0x04>; + interrupt-names = "sys\0dma\0correctable\0uncorrectable\0other"; + #interrupt-cells = <0x01>; + interrupt-map-mask = <0x00 0x00 0x00 0x00>; + interrupt-map = <0x00 0x00 0x00 0x00 0x01 0x00 0xc5 0x04>; + }; + + pcie@30a00000 { + status = "disable"; + compatible = "bst,dw-pcie-ep"; + device_type = "pci"; + controller-id = <0x01>; + bus-range = <0x00 0x04>; + reg = <0x00 0x30a00000 0x40000 0x00 0x30b00000 0x40000 0x00 0x30d00000 0x40000 0x00 0x30d80000 0x40000 0x00 0x48000000 0x1000000>; + reg-names = "dbi\0dbi2\0atu\0dma\0addr_space"; + num-ib-windows = <0x06>; + num-ob-windows = <0x06>; + max-functions = [04]; + pcie-phy = <0x0b>; + interrupt-parent = <0x01>; + interrupts = <0x00 0xc2 0x04 0x00 0xc3 0x04 0x00 0xc4 0x04 0x00 0xc7 0x04>; + interrupt-names = "dma\0correctable\0uncorrectable\0other"; + #interrupt-cells = <0x01>; + interrupt-map-mask = <0x00 0x00 0x00 0x00>; + interrupt-map = <0x00 0x00 0x00 0x00 0x01 0x00 0xc5 0x04>; + }; + + pcie_vnet@0 { + status = "disable"; + compatible = "bst,pcie-vnet"; + vnet-id = <0x00>; + dma-chan-num = <0x01>; + rx_queues = <0x01>; + tx_queues = <0x01>; + tx-fifo-depth = <0x100>; + rx-fifo-depth = <0x100>; + extend-op = <0x10>; + memory-region = <0x0c>; + }; + + pcie_vnet@1 { + status = "disable"; + compatible = "bst,pcie-vnet"; + vnet-id = <0x01>; + dma-chan-num = <0x01>; + rx_queues = <0x01>; + tx_queues = <0x01>; + tx-fifo-depth = <0x100>; + rx-fifo-depth = <0x100>; + }; + + + + + gpio@20010000 { + status = "okay"; + #address-cells = <0x01>; + #size-cells = <0x00>; + compatible = "snps,dw-apb-gpio"; + reg = <0x00 0x20010000 0x1000>; + clocks = <0x05 0x62>; + clock-names = "bus"; + resets = <0x06 0x1c>; + resets-names = "gpio0_reset"; + pinctrl-names = "default"; + pinctrl-0 = <0x15 0x16 0x17 0x18 0x19 0x1a 0x1b>; + + gpio-controller@0 { + compatible = "snps,dw-apb-gpio-port"; + gpio-controller; + #gpio-cells = <0x02>; + snps,nr-gpios = <0x20>; + reg = <0x00>; + chipnum-base = <0x00>; + interrupt-controller; + #interrupt-cells = <0x03>; + interrupt-parent = <0x01>; + interrupts = <0x00 0xdf 0x04 0x00 0xe3 0x04 0x00 0xe4 0x04 0x00 0xe5 0x04 0x00 0xe6 0x04 0x00 0xe7 0x04 0x00 0xe8 0x04 0x00 0xe9 0x04 0x00 0xea 0x04>; + phandle = <0x1f>; + }; + + gpio-controller@1 { + compatible = "snps,dw-apb-gpio-port"; + gpio-controller; + #gpio-cells = <0x02>; + snps,nr-gpios = <0x20>; + reg = <0x01>; + chipnum-base = <0x20>; + phandle = <0x4a>; + }; + + gpio-controller@2 { + compatible = "snps,dw-apb-gpio-port"; + gpio-controller; + #gpio-cells = <0x02>; + snps,nr-gpios = <0x20>; + reg = <0x02>; + chipnum-base = <0x40>; + phandle = <0x47>; + }; + + gpio-controller@3 { + compatible = "snps,dw-apb-gpio-port"; + gpio-controller; + #gpio-cells = <0x02>; + snps,nr-gpios = <0x20>; + reg = <0x03>; + chipnum-base = <0x60>; + phandle = <0x54>; + }; + }; + + gpio@20011000 { + status = "okay"; + #address-cells = <0x01>; + #size-cells = <0x00>; + compatible = "snps,dw-apb-gpio"; + reg = <0x00 0x20011000 0x1000>; + clocks = <0x05 0x82>; + clock-names = "bus"; + resets = <0x06 0x27>; + resets-names = "gpio1_reset"; + + gpio-controller@0 { + compatible = "snps,dw-apb-gpio-port"; + gpio-controller; + #gpio-cells = <0x02>; + snps,nr-gpios = <0x20>; + reg = <0x00>; + chipnum-base = <0x80>; + interrupt-controller; + #interrupt-cells = <0x03>; + interrupt-parent = <0x01>; + interrupts = <0x00 0xe0 0x04>; + }; + + gpio-controller@1 { + compatible = "snps,dw-apb-gpio-port"; + gpio-controller; + #gpio-cells = <0x02>; + snps,nr-gpios = <0x20>; + reg = <0x01>; + chipnum-base = <0xa0>; + }; + + gpio-controller@2 { + compatible = "snps,dw-apb-gpio-port"; + gpio-controller; + #gpio-cells = <0x02>; + snps,nr-gpios = <0x20>; + reg = <0x02>; + chipnum-base = <0xc0>; + }; + + gpio-controller@3 { + compatible = "snps,dw-apb-gpio-port"; + gpio-controller; + #gpio-cells = <0x02>; + snps,nr-gpios = <0x20>; + reg = <0x03>; + chipnum-base = <0xe0>; + phandle = <0x0d>; + }; + }; + + watchdog@2001a000 { + status = "disable"; + compatible = "snps,dw-wdt"; + reg = <0x00 0x2001a000 0x1000>; + interrupt-parent = <0x01>; + interrupts = <0x00 0x5d 0x04>; + clocks = <0x05 0x5a 0x05 0x64>; + clock-names = "wclk\0pclk"; + resets = <0x06 0x1f>; + resets-names = "wdt_reset"; + response-mode = <0x00>; + bst_wdt_name = "lsp_wdt0"; + }; + + watchdog@2001b000 { + status = "okay"; + compatible = "snps,dw-wdt"; + reg = <0x00 0x2001b000 0x1000>; + interrupt-parent = <0x01>; + interrupts = <0x00 0x5e 0x04>; + clocks = <0x05 0x5b 0x05 0x65>; + clock-names = "wclk\0pclk"; + resets = <0x06 0x20>; + resets-names = "wdt_reset"; + response-mode = <0x00>; + bst_wdt_name = "lsp_wdt1"; + }; + + watchdog@2001c000 { + status = "okay"; + compatible = "snps,dw-wdt"; + reg = <0x00 0x2001c000 0x1000>; + interrupt-parent = <0x01>; + interrupts = <0x00 0x5f 0x04>; + clocks = <0x05 0x74 0x05 0x7b>; + clock-names = "wclk\0pclk"; + resets = <0x06 0x2e>; + resets-names = "wdt_reset"; + response-mode = <0x00>; + bst_wdt_name = "lsp_wdt2"; + }; + + watchdog@2001d000 { + status = "okay"; + compatible = "snps,dw-wdt"; + reg = <0x00 0x2001d000 0x1000>; + interrupt-parent = <0x01>; + interrupts = <0x00 0x60 0x04>; + clocks = <0x05 0x75 0x05 0x7c>; + clock-names = "wclk\0pclk"; + resets = <0x06 0x2f>; + resets-names = "wdt_reset"; + response-mode = <0x00>; + bst_wdt_name = "lsp_wdt3"; + }; + + watchdog@32009000 { + status = "okay"; + compatible = "snps,dw-wdt"; + reg = <0x00 0x32009000 0x1000>; + interrupt-parent = <0x01>; + interrupts = <0x00 0x43 0x04>; + clocks = <0x05 0x01>; + clock-names = "wclk"; + response-mode = <0x01>; + bst_wdt_name = "a55_wdt0"; + }; + + watchdog@3200a000 { + status = "okay"; + compatible = "snps,dw-wdt"; + reg = <0x00 0x3200a000 0x1000>; + interrupt-parent = <0x01>; + interrupts = <0x00 0x44 0x04>; + clocks = <0x05 0x01>; + clock-names = "wclk"; + response-mode = <0x01>; + bst_wdt_name = "a55_wdt1"; + }; + + watchdog@3200b000 { + status = "okay"; + compatible = "snps,dw-wdt"; + reg = <0x00 0x3200b000 0x1000>; + interrupt-parent = <0x01>; + interrupts = <0x00 0x45 0x04>; + clocks = <0x05 0x01>; + clock-names = "wclk"; + response-mode = <0x01>; + bst_wdt_name = "a55_wdt2"; + }; + + watchdog@3200c000 { + status = "okay"; + compatible = "snps,dw-wdt"; + reg = <0x00 0x3200c000 0x1000>; + interrupt-parent = <0x01>; + interrupts = <0x00 0x46 0x04>; + clocks = <0x05 0x01>; + clock-names = "wclk"; + response-mode = <0x01>; + bst_wdt_name = "a55_wdt3"; + }; + + watchdog@3200d000 { + status = "okay"; + compatible = "snps,dw-wdt"; + reg = <0x00 0x3200d000 0x1000>; + interrupt-parent = <0x01>; + interrupts = <0x00 0x47 0x04>; + clocks = <0x05 0x01>; + clock-names = "wclk"; + response-mode = <0x01>; + bst_wdt_name = "a55_wdt4"; + }; + + watchdog@3200e000 { + status = "okay"; + compatible = "snps,dw-wdt"; + reg = <0x00 0x3200e000 0x1000>; + interrupt-parent = <0x01>; + interrupts = <0x00 0x48 0x04>; + clocks = <0x05 0x01>; + clock-names = "wclk"; + response-mode = <0x01>; + bst_wdt_name = "a55_wdt5"; + }; + + watchdog@3200f000 { + status = "okay"; + compatible = "snps,dw-wdt"; + reg = <0x00 0x3200f000 0x1000>; + interrupt-parent = <0x01>; + interrupts = <0x00 0x49 0x04>; + clocks = <0x05 0x01>; + clock-names = "wclk"; + response-mode = <0x01>; + bst_wdt_name = "a55_wdt6"; + }; + + watchdog@32010000 { + status = "okay"; + compatible = "snps,dw-wdt"; + reg = <0x00 0x32010000 0x1000>; + interrupt-parent = <0x01>; + interrupts = <0x00 0x4a 0x04>; + clocks = <0x05 0x01>; + clock-names = "wclk"; + response-mode = <0x01>; + bst_wdt_name = "a55_wdt7"; + }; + + i2c@20000000 { + status = "okay"; + #address-cells = <0x01>; + #size-cells = <0x01>; + compatible = "snps,designware-i2c"; + reg = <0x00 0x20000000 0x1000>; + interrupt-parent = <0x01>; + interrupts = <0x00 0xcf 0x04>; + clock-frequency = <0x186a0>; + i2c-sda-hold-time-ns = <0x12c>; + i2c-sda-falling-time-ns = <0x12c>; + i2c-scl-falling-time-ns = <0x12c>; + clocks = <0x05 0x4b 0x05 0x49>; + clock-names = "LSP0_PCLK\0LSP0_WCLK"; + resets = <0x06 0x18>; + reset-names = "i2c0_reset"; + pinctrl-names = "default"; + pinctrl-0 = <0x1c>; + }; + + i2c@20001000 { + status = "okay"; + #address-cells = <0x01>; + #size-cells = <0x00>; + compatible = "snps,designware-i2c"; + reg = <0x00 0x20001000 0x1000>; + interrupt-parent = <0x01>; + interrupts = <0x00 0xd0 0x04>; + clock-frequency = <0xf4240>; + i2c-sda-hold-time-ns = <0x12c>; + i2c-sda-falling-time-ns = <0x12c>; + i2c-scl-falling-time-ns = <0x12c>; + clocks = <0x05 0x4b 0x05 0x49>; + clock-names = "LSP0_PCLK\0LSP0_WCLK"; + resets = <0x06 0x19>; + reset-names = "i2c1_reset"; + pinctrl-names = "default"; + pinctrl-0 = <0x1d>; + + max96789@40 { + compatible = "bst,max96789"; + reg = <0x40>; + channel_ids = <0x2a 0x3a 0x2a 0x3b>; + }; + }; + + i2c@20002000 { + status = "okay"; + #address-cells = <0x01>; + #size-cells = <0x00>; + compatible = "snps,designware-i2c"; + reg = <0x00 0x20002000 0x1000>; + interrupt-parent = <0x01>; + interrupts = <0x00 0xd1 0x04>; + clock-frequency = <0x186a0>; + i2c-sda-hold-time-ns = <0x12c>; + i2c-sda-falling-time-ns = <0x12c>; + i2c-scl-falling-time-ns = <0x12c>; + clocks = <0x05 0x4b 0x05 0x49>; + clock-names = "LSP0_PCLK\0LSP0_WCLK"; + resets = <0x06 0x1a>; + reset-names = "i2c2_reset"; + pinctrl-names = "default"; + pinctrl-0 = <0x1e>; + + max96712@29 { + compatible = "bst,maxim-deser-hub"; + type = "max96712"; + ctl-mode = "fad-ctl"; + reg = <0x29>; + lane-num = <0x02>; + i2c-port = <0x00>; + csi2-port = <0x00>; + lane-speed = <0x960>; + regs = <0x40>; + data-type = <0x2d>; + trigger-mode = <0x01>; + trigger-fps = <0x14>; + trigger-rx-gpio = <0x0a>; + trigger-tx-gpio = <0x08>; + maxim,hsync-invert = <0x00>; + maxim,vsync-invert = <0x00>; + maxim,linkrx-rate = <0x06 0x06 0x06 0x06>; + maxim,link-mode = "GMSL2"; + pdb-gpio = <0x1f 0x14 0x00>; + #address-cells = <0x01>; + #size-cells = <0x00>; + + csi-link { + + ports { + + port@0 { + clock-lanes = <0x00>; + data-lanes = <0x01 0x02 0x03 0x04>; + + endpoint { + remote-endpoint = <0x20>; + phandle = <0x71>; + }; + }; + }; + }; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + reg = <0x00>; + + endpoint@0 { + remote-endpoint = <0x21>; + phandle = <0x2d>; + }; + }; + + port@1 { + reg = <0x01>; + + endpoint@1 { + remote-endpoint = <0x22>; + phandle = <0x2e>; + }; + }; + + port@2 { + reg = <0x02>; + + endpoint@2 { + remote-endpoint = <0x23>; + phandle = <0x2f>; + }; + }; + + port@3 { + reg = <0x03>; + + endpoint@3 { + remote-endpoint = <0x24>; + phandle = <0x30>; + }; + }; + }; + }; + + max96712@2a { + compatible = "bst,maxim-deser-hub"; + type = "max96712"; + ctl-mode = "fad-ctl"; + reg = <0x2a>; + i2c-port = <0x00>; + csi2-port = <0x00>; + lane-speed = <0x640>; + regs = <0x40>; + data-type = <0x2d>; + trigger-mode = <0x01>; + trigger-fps = <0x1e>; + trigger-rx-gpio = <0x01>; + maxim,hsync-invert = <0x00>; + maxim,vsync-invert = <0x00>; + maxim,linkrx-rate = <0x03 0x03 0x03 0x03>; + maxim,link-mode = "GMSL2"; + pdb-gpio = <0x1f 0x15 0x00>; + #address-cells = <0x01>; + #size-cells = <0x00>; + + csi-link { + + ports { + + port@0 { + clock-lanes = <0x00>; + data-lanes = <0x01 0x02 0x03 0x04>; + + endpoint { + remote-endpoint = <0x25>; + phandle = <0x76>; + }; + }; + }; + }; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + reg = <0x00>; + + endpoint@0 { + remote-endpoint = <0x26>; + phandle = <0x31>; + }; + }; + + port@1 { + reg = <0x01>; + + endpoint@1 { + remote-endpoint = <0x27>; + phandle = <0x32>; + }; + }; + + port@2 { + reg = <0x02>; + + endpoint@2 { + remote-endpoint = <0x28>; + phandle = <0x33>; + }; + }; + + port@3 { + reg = <0x03>; + + endpoint@3 { + remote-endpoint = <0x29>; + phandle = <0x34>; + }; + }; + }; + }; + + max96712@2e { + compatible = "bst,maxim-deser-hub"; + type = "max96712"; + ctl-mode = "fad-ctl"; + reg = <0x2e>; + lane-num = <0x02>; + i2c-port = <0x00>; + csi2-port = <0x00>; + lane-speed = <0x960>; + regs = <0x40>; + data-type = <0x2d>; + trigger-mode = <0x01>; + trigger-fps = <0x14>; + trigger-rx-gpio = <0x0a>; + trigger-tx-gpio = <0x08>; + maxim,hsync-invert = <0x00>; + maxim,vsync-invert = <0x00>; + maxim,linkrx-rate = <0x06 0x06 0x06 0x06>; + maxim,link-mode = "GMSL2"; + pdb-gpio = <0x1f 0x17 0x00>; + #address-cells = <0x01>; + #size-cells = <0x00>; + + csi-link { + + ports { + + port@0 { + clock-lanes = <0x00>; + data-lanes = <0x01 0x02>; + + endpoint { + remote-endpoint = <0x2a>; + phandle = <0x7b>; + }; + }; + }; + }; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + reg = <0x00>; + + endpoint@0 { + remote-endpoint = <0x2b>; + phandle = <0x35>; + }; + }; + + port@1 { + reg = <0x01>; + + endpoint@1 { + remote-endpoint = <0x2c>; + phandle = <0x36>; + }; + }; + }; + }; + + camera@70 { + reg = <0x70>; + ser-alias-id = <0x60>; + sensor-alias-id = <0x70>; + compatible = "bst,jk_ox08b"; + sensor-id = <0x36>; + data-type = <0x2d>; + fv-polarity_low = <0x00>; + fpd3-mode = "csi-2"; + serializer = "max9295"; + algo-bin = "ox08b/Ox08B40_raw14_hk_h120_AlgoParam.bin"; + iq-bin = "ox08b/Ox08B40_raw14_hk_h120_IqParam.bin"; + hdr-stagger-en = <0x01>; + exp-num = <0x01>; + pwl-format = <0x0f>; + dvp-data-type = <0x2d>; + vin-data-type = <0x2d>; + size = <0xf00 0x876>; + dvp-dummy = <0xaaa0>; + view0-fmt = <0x01>; + view0-size = <0x500 0x2d0>; + view1-fmt = <0x01>; + view1-size = <0xf00 0x870>; + pdns-mode = <0x00>; + pdns-input-view = <0x00>; + hblank = <0x00>; + input-crop = <0x00 0xf00 0x02 0x872>; + clock-frequency = <0x18>; + sensor-fps = <0x1e>; + maxim,rx_rate = <0x06>; + trigger-gpio = <0x01>; + trigger-tx-gpio = <0x08>; + serializer-id = <0x42>; + maxim,link-mode = "GMSL2"; + + port { + + endpoint@0 { + remote-endpoint = <0x2d>; + phandle = <0x21>; + }; + }; + }; + + camera71 { + status = "disabled"; + reg = <0x71>; + ser-alias-id = <0x61>; + sensor-alias-id = <0x71>; + compatible = "bst,jk_ox08b"; + sensor-id = <0x36>; + data-type = <0x2d>; + fv-polarity_low = <0x00>; + fpd3-mode = "csi-2"; + serializer = "max9295"; + algo-bin = "ox08b/Ox08B40_raw14_hk_h120_AlgoParam.bin"; + iq-bin = "ox08b/Ox08B40_raw14_hk_h120_IqParam.bin"; + hdr-stagger-en = <0x01>; + exp-num = <0x01>; + pwl-format = <0x0f>; + dvp-data-type = <0x2d>; + vin-data-type = <0x2d>; + size = <0xf00 0x876>; + dvp-dummy = <0xaaa0>; + view0-fmt = <0x01>; + view0-size = <0x500 0x2d0>; + view1-fmt = <0x01>; + view1-size = <0xf00 0x870>; + pdns-mode = <0x00>; + pdns-input-view = <0x00>; + hblank = <0x00>; + input-crop = <0x00 0xf00 0x02 0x872>; + clock-frequency = <0x18>; + sensor-fps = <0x1e>; + maxim,rx_rate = <0x06>; + trigger-gpio = <0x01>; + trigger-tx-gpio = <0x08>; + serializer-id = <0x42>; + maxim,link-mode = "GMSL2"; + + port { + + endpoint@0 { + remote-endpoint = <0x2e>; + phandle = <0x22>; + }; + }; + }; + + camera@72 { + status = "disabled"; + reg = <0x72>; + ser-alias-id = <0x62>; + sensor-alias-id = <0x72>; + compatible = "bst,jk_ox08b"; + sensor-id = <0x36>; + data-type = <0x2d>; + fv-polarity_low = <0x00>; + fpd3-mode = "csi-2"; + serializer = "max9295"; + algo-bin = "ox08b/Ox08B40_raw14_hk_h120_AlgoParam.bin"; + iq-bin = "ox08b/Ox08B40_raw14_hk_h120_IqParam.bin"; + hdr-stagger-en = <0x01>; + exp-num = <0x01>; + pwl-format = <0x0f>; + dvp-data-type = <0x2d>; + vin-data-type = <0x2d>; + size = <0xf00 0x876>; + dvp-dummy = <0xaaa0>; + view0-fmt = <0x01>; + view0-size = <0x500 0x2d0>; + view1-fmt = <0x01>; + view1-size = <0xf00 0x870>; + pdns-mode = <0x00>; + pdns-input-view = <0x00>; + hblank = <0x00>; + input-crop = <0x00 0xf00 0x02 0x872>; + clock-frequency = <0x18>; + sensor-fps = <0x1e>; + maxim,rx_rate = <0x06>; + trigger-gpio = <0x01>; + trigger-tx-gpio = <0x08>; + serializer-id = <0x42>; + maxim,link-mode = "GMSL2"; + + port { + + endpoint@0 { + remote-endpoint = <0x2f>; + phandle = <0x23>; + }; + }; + }; + + camera@73 { + status = "disabled"; + reg = <0x73>; + ser-alias-id = <0x63>; + sensor-alias-id = <0x73>; + compatible = "bst,jk_ox08b"; + sensor-id = <0x36>; + data-type = <0x2d>; + fv-polarity_low = <0x00>; + fpd3-mode = "csi-2"; + serializer = "max9295"; + algo-bin = "ox08b/Ox08B40_raw14_hk_h120_AlgoParam.bin"; + iq-bin = "ox08b/Ox08B40_raw14_hk_h120_IqParam.bin"; + hdr-stagger-en = <0x01>; + exp-num = <0x01>; + pwl-format = <0x0f>; + dvp-data-type = <0x2d>; + vin-data-type = <0x2d>; + size = <0xf00 0x876>; + dvp-dummy = <0xaaa0>; + view0-fmt = <0x01>; + view0-size = <0x500 0x2d0>; + view1-fmt = <0x01>; + view1-size = <0xf00 0x870>; + pdns-mode = <0x00>; + pdns-input-view = <0x00>; + hblank = <0x00>; + input-crop = <0x00 0xf00 0x02 0x872>; + clock-frequency = <0x18>; + sensor-fps = <0x1e>; + maxim,rx_rate = <0x06>; + trigger-gpio = <0x01>; + trigger-tx-gpio = <0x08>; + serializer-id = <0x42>; + maxim,link-mode = "GMSL2"; + + port { + + endpoint@0 { + remote-endpoint = <0x30>; + phandle = <0x24>; + }; + }; + }; + + camera@54 { + reg = <0x54>; + ser-alias-id = <0x64>; + sensor-alias-id = <0x54>; + compatible = "bst,ofilm_ox3c"; + sensor-id = <0x36>; + data-type = <0x2d>; + fv-polarity-low = <0x00>; + fpd3-mode = "csi-2"; + serializer = "max96717f"; + algo-bin = "ox3c/0X03C10_raw14_OF_h100_AlgoParam.bin"; + iq-bin = "ox3c/0X03C10_raw14_OF_h100_IqParam.bin"; + hdr-stagger-en = <0x01>; + exp-num = <0x01>; + pwl-format = <0x0f>; + dvp-data-type = <0x2d>; + vin-data-type = <0x2d>; + size = <0x780 0x506>; + dvp-dummy = <0xabcd>; + view0-fmt = <0x01>; + view0-size = <0x500 0x2d0>; + view1-fmt = <0x01>; + view1-size = <0x780 0x438>; + pdns-mode = <0x00>; + pdns-input-view = <0x00>; + hblank = <0x00>; + input-crop = <0x00 0x780 0x64 0x49c>; + sensor-fps = <0x1e>; + trigger-gpio = <0x00>; + trigger-tx-gpio = <0x00>; + maxim,rx_rate = <0x03>; + serializer-id = <0x42>; + maxim,link-mode = "GMSL2"; + + port { + + endpoint@0 { + remote-endpoint = <0x31>; + phandle = <0x26>; + }; + }; + }; + + camera@55 { + reg = <0x55>; + ser-alias-id = <0x65>; + sensor-alias-id = <0x55>; + compatible = "bst,ofilm_ox3c"; + sensor-id = <0x36>; + data-type = <0x2d>; + fv-polarity-low = <0x00>; + fpd3-mode = "csi-2"; + serializer = "max96717f"; + algo-bin = "ox3c/0X03C10_raw14_OF_h100_AlgoParam.bin"; + iq-bin = "ox3c/0X03C10_raw14_OF_h100_IqParam.bin"; + hdr-stagger-en = <0x01>; + exp-num = <0x01>; + pwl-format = <0x0f>; + dvp-data-type = <0x2d>; + vin-data-type = <0x2d>; + size = <0x780 0x506>; + dvp-dummy = <0xabcd>; + view0-fmt = <0x01>; + view0-size = <0x500 0x2d0>; + view1-fmt = <0x01>; + view1-size = <0x780 0x438>; + pdns-mode = <0x00>; + pdns-input-view = <0x00>; + hblank = <0x00>; + input-crop = <0x00 0x780 0x64 0x49c>; + sensor-fps = <0x1e>; + trigger-gpio = <0x00>; + trigger-tx-gpio = <0x00>; + maxim,rx_rate = <0x03>; + serializer-id = <0x42>; + maxim,link-mode = "GMSL2"; + + port { + + endpoint@0 { + remote-endpoint = <0x32>; + phandle = <0x27>; + }; + }; + }; + + camera@56 { + reg = <0x56>; + ser-alias-id = <0x66>; + sensor-alias-id = <0x56>; + compatible = "bst,ofilm_ox3c"; + sensor-id = <0x36>; + data-type = <0x2d>; + fv-polarity-low = <0x00>; + fpd3-mode = "csi-2"; + serializer = "max96717f"; + algo-bin = "ox3c/0X03C10_raw14_OF_h100_AlgoParam.bin"; + iq-bin = "ox3c/0X03C10_raw14_OF_h100_IqParam.bin"; + hdr-stagger-en = <0x01>; + exp-num = <0x01>; + pwl-format = <0x0f>; + dvp-data-type = <0x2d>; + vin-data-type = <0x2d>; + size = <0x780 0x506>; + dvp-dummy = <0xabcd>; + view0-fmt = <0x01>; + view0-size = <0x500 0x2d0>; + view1-fmt = <0x01>; + view1-size = <0x780 0x438>; + pdns-mode = <0x00>; + pdns-input-view = <0x00>; + hblank = <0x00>; + input-crop = <0x00 0x780 0x64 0x49c>; + sensor-fps = <0x1e>; + trigger-gpio = <0x00>; + trigger-tx-gpio = <0x00>; + maxim,rx_rate = <0x03>; + serializer-id = <0x42>; + maxim,link-mode = "GMSL2"; + + port { + + endpoint@0 { + remote-endpoint = <0x33>; + phandle = <0x28>; + }; + }; + }; + + camera@57 { + reg = <0x57>; + ser-alias-id = <0x67>; + sensor-alias-id = <0x57>; + compatible = "bst,ofilm_ox3c"; + sensor-id = <0x36>; + data-type = <0x2d>; + fv-polarity-low = <0x00>; + fpd3-mode = "csi-2"; + serializer = "max96717f"; + algo-bin = "ox3c/0X03C10_raw14_OF_h100_AlgoParam.bin"; + iq-bin = "ox3c/0X03C10_raw14_OF_h100_IqParam.bin"; + hdr-stagger-en = <0x01>; + exp-num = <0x01>; + pwl-format = <0x0f>; + dvp-data-type = <0x2d>; + vin-data-type = <0x2d>; + size = <0x780 0x506>; + dvp-dummy = <0xabcd>; + view0-fmt = <0x01>; + view0-size = <0x500 0x2d0>; + view1-fmt = <0x01>; + view1-size = <0x780 0x438>; + pdns-mode = <0x00>; + pdns-input-view = <0x00>; + hblank = <0x00>; + input-crop = <0x00 0x780 0x64 0x49c>; + sensor-fps = <0x1e>; + trigger-gpio = <0x00>; + trigger-tx-gpio = <0x00>; + maxim,rx_rate = <0x03>; + serializer-id = <0x42>; + maxim,link-mode = "GMSL2"; + + port { + + endpoint@0 { + remote-endpoint = <0x34>; + phandle = <0x29>; + }; + }; + }; + + camera@58 { + reg = <0x58>; + ser-alias-id = <0x48>; + sensor-alias-id = <0x58>; + compatible = "bst,jk_ox08b"; + sensor-id = <0x36>; + data-type = <0x2d>; + fv-polarity_low = <0x00>; + fpd3-mode = "csi-2"; + serializer = "max9295"; + algo-bin = "ox08b/Ox08B40_raw14_hk_h120_AlgoParam.bin"; + iq-bin = "ox08b/Ox08B40_raw14_hk_h120_IqParam.bin"; + hdr-stagger-en = <0x01>; + exp-num = <0x01>; + pwl-format = <0x0f>; + dvp-data-type = <0x2d>; + vin-data-type = <0x2d>; + size = <0xf00 0x876>; + dvp-dummy = <0xaaa0>; + view0-fmt = <0x01>; + view0-size = <0x500 0x2d0>; + view1-fmt = <0x01>; + view1-size = <0xf00 0x870>; + pdns-mode = <0x00>; + pdns-input-view = <0x00>; + hblank = <0x00>; + input-crop = <0x00 0xf00 0x02 0x872>; + clock-frequency = <0x18>; + sensor-fps = <0x1e>; + maxim,rx_rate = <0x06>; + trigger-gpio = <0x01>; + trigger-tx-gpio = <0x08>; + serializer-id = <0x42>; + maxim,link-mode = "GMSL2"; + + port { + + endpoint@0 { + remote-endpoint = <0x35>; + phandle = <0x2b>; + }; + }; + }; + + camera@59 { + status = "disabled"; + reg = <0x59>; + ser-alias-id = <0x49>; + sensor-alias-id = <0x59>; + compatible = "bst,jk_ox08b"; + sensor-id = <0x36>; + data-type = <0x2d>; + fv-polarity_low = <0x00>; + fpd3-mode = "csi-2"; + serializer = "max9295"; + algo-bin = "ox08b/Ox08B40_raw14_hk_h120_AlgoParam.bin"; + iq-bin = "ox08b/Ox08B40_raw14_hk_h120_IqParam.bin"; + hdr-stagger-en = <0x01>; + exp-num = <0x01>; + pwl-format = <0x0f>; + dvp-data-type = <0x2d>; + vin-data-type = <0x2d>; + size = <0xf00 0x876>; + dvp-dummy = <0xaaa0>; + view0-fmt = <0x01>; + view0-size = <0x500 0x2d0>; + view1-fmt = <0x01>; + view1-size = <0xf00 0x870>; + pdns-mode = <0x00>; + pdns-input-view = <0x00>; + hblank = <0x00>; + input-crop = <0x00 0xf00 0x02 0x872>; + clock-frequency = <0x18>; + sensor-fps = <0x1e>; + maxim,rx_rate = <0x06>; + trigger-gpio = <0x01>; + trigger-tx-gpio = <0x08>; + serializer-id = <0x42>; + maxim,link-mode = "GMSL2"; + + port { + + endpoint@0 { + remote-endpoint = <0x36>; + phandle = <0x2c>; + }; + }; + }; + }; + + i2c@20003000 { + status = "okay"; + #address-cells = <0x01>; + #size-cells = <0x01>; + compatible = "snps,designware-i2c"; + reg = <0x00 0x20003000 0x1000>; + interrupt-parent = <0x01>; + interrupts = <0x00 0xd2 0x04>; + clock-frequency = <0x186a0>; + i2c-sda-hold-time-ns = <0x12c>; + i2c-sda-falling-time-ns = <0x12c>; + i2c-scl-falling-time-ns = <0x12c>; + clocks = <0x05 0x4c 0x05 0x4a>; + clock-names = "LSP1_PCLK\0LSP1_WCLK"; + resets = <0x06 0x2c>; + reset-names = "i2c3_reset"; + pinctrl-names = "default"; + pinctrl-0 = <0x37>; + }; + + i2c@20004000 { + status = "okay"; + #address-cells = <0x01>; + #size-cells = <0x00>; + compatible = "snps,designware-i2c"; + reg = <0x00 0x20004000 0x1000>; + interrupt-parent = <0x01>; + interrupts = <0x00 0xd3 0x04>; + clock-frequency = <0x186a0>; + i2c-sda-hold-time-ns = <0x12c>; + i2c-sda-falling-time-ns = <0x12c>; + i2c-scl-falling-time-ns = <0x12c>; + clocks = <0x05 0x4c 0x05 0x4a>; + clock-names = "LSP1_PCLK\0LSP1_WCLK"; + resets = <0x06 0x2d>; + reset-names = "i2c4_reset"; + pinctrl-names = "default"; + pinctrl-0 = <0x38>; + + lt9211@2d { + compatible = "bst,lt9211"; + reg = <0x2d>; + }; + }; + + i2c@20005000 { + status = "okay"; + #address-cells = <0x01>; + #size-cells = <0x01>; + compatible = "snps,designware-i2c"; + reg = <0x00 0x20005000 0x1000>; + interrupt-parent = <0x01>; + interrupts = <0x00 0xd4 0x04>; + clock-frequency = <0x186a0>; + i2c-sda-hold-time-ns = <0x12c>; + i2c-sda-falling-time-ns = <0x12c>; + i2c-scl-falling-time-ns = <0x12c>; + clocks = <0x05 0x4c 0x05 0x4a>; + clock-names = "LSP1_PCLK\0LSP1_WCLK"; + resets = <0x06 0x26>; + reset-names = "i2c5_reset"; + pinctrl-names = "default"; + pinctrl-0 = <0x39>; + }; + + ddr_ecc { + status = "okay"; + compatible = "bst,a1000_ddr_ecc"; + reg = <0x00 0x38000000 0x1400 0x00 0x3c000000 0x1400 0x00 0x33000000 0x140>; + reg-names = "ddr0\0ddr1\0a55_ctrl"; + interrupt-parent = <0x01>; + interrupts = <0x00 0x8b 0x04 0x00 0x8d 0x04>; + interrupt-names = "ddr0_ecc_irq\0ddr1_ecc_irq"; + mbox-names = "bstn-mbox"; + }; + + arm_pmu { + status = "okay"; + compatible = "arm,armv8-pmuv3"; + interrupt-parent = <0x01>; + interrupts = <0x00 0x38 0xff04 0x00 0x39 0xff04 0x00 0x3a 0xff04 0x00 0x3b 0xff04 0x00 0x3c 0xff04 0x00 0x3d 0xff04 0x00 0x3e 0xff04 0x00 0x3f 0xff04>; + interrupt-affinity = <0x3a 0x3b 0x3c 0x3d 0x3e 0x3f 0x40 0x41>; + }; + + noc_pmu@0x32702000 { + status = "okay"; + compatible = "bst,bst_noc_pmu"; + reg = <0x00 0x32702000 0x1000 0x00 0x32703000 0x1000 0x00 0x32704000 0x2000 0x00 0x32708000 0x1000 0x00 0x33402000 0x2400 0x00 0x33422000 0x4400 0x00 0x33401100 0x10 0x00 0x33421480 0x10>; + reg-names = "coresight_cpunoc_etf\0coresight_etr\0coresight_funnel\0coresight_corenoc_etf\0cpu_port_set\0core_port_set\0cpunoc_atb\0corenoc_atb"; + memory-region = <0x42>; + }; + + lsp0_pwm0@20012000 { + status = "disable"; + compatible = "snps,bst-pwm"; + clocks = <0x05 0x56 0x05 0x6b>; + clock-names = "wclk\0pclk"; + clock-frequency = <0x17d7840>; + reg = <0x00 0x20012000 0x14 0x00 0x200120b0 0x04>; + reg-names = "base\0top"; + pwm-ch = <0x01>; + pinctrl-names = "default"; + pinctrl-0 = <0x43>; + }; + + lsp0_pwm1@20012014 { + status = "disable"; + compatible = "snps,bst-pwm"; + clocks = <0x05 0x57 0x05 0x6b>; + clock-names = "wclk\0pclk"; + clock-frequency = <0x17d7840>; + reg = <0x00 0x20012014 0x14 0x00 0x200120b4 0x04>; + reg-names = "base\0top"; + pwm-ch = <0x01>; + pinctrl-names = "default"; + pinctrl-0 = <0x44>; + }; + + lsp1_pwm0@20013000 { + status = "disable"; + compatible = "snps,bst-pwm"; + clocks = <0x05 0x71 0x05 0x7a>; + clock-names = "wclk\0pclk"; + clock-frequency = <0x17d7840>; + reg = <0x00 0x20013000 0x14 0x00 0x200130b0 0x04>; + reg-names = "base\0top"; + pwm-ch = <0x01>; + pinctrl-names = "default"; + pinctrl-0 = <0x45>; + }; + + lsp1_pwm1@20013014 { + status = "disable"; + compatible = "snps,bst-pwm"; + clocks = <0x05 0x72 0x05 0x7a>; + clock-names = "wclk\0pclk"; + clock-frequency = <0x17d7840>; + reg = <0x00 0x20013014 0x14 0x00 0x200130b4 0x04>; + reg-names = "base\0top"; + pwm-ch = <0x01>; + pinctrl-names = "default"; + pinctrl-0 = <0x46>; + }; + + a55_timer0@32008000 { + status = "disable"; + compatible = "snps,dw-apb-timer"; + clock-frequency = <0x14dc9380>; + interrupt-parent = <0x01>; + interrupts = <0x00 0x4b 0x04>; + reg = <0x00 0x32008000 0x14>; + }; + + a55_timer1@32008014 { + status = "disable"; + compatible = "snps,dw-apb-timer"; + clock-frequency = <0x14dc9380>; + interrupt-parent = <0x01>; + interrupts = <0x00 0x4c 0x04>; + reg = <0x00 0x32008014 0x14>; + }; + + a55_timer2@32008028 { + status = "disable"; + compatible = "snps,dw-apb-timer"; + clock-frequency = <0x14dc9380>; + interrupt-parent = <0x01>; + interrupts = <0x00 0x4d 0x04>; + reg = <0x00 0x32008028 0x14>; + }; + + a55_timer3@3200803c { + status = "disable"; + compatible = "snps,dw-apb-timer"; + clock-frequency = <0x14dc9380>; + interrupt-parent = <0x01>; + interrupts = <0x00 0x4e 0x04>; + reg = <0x00 0x3200803c 0x14>; + }; + + a55_timer4@32008050 { + status = "disable"; + compatible = "snps,dw-apb-timer"; + clock-frequency = <0x14dc9380>; + interrupt-parent = <0x01>; + interrupts = <0x00 0x4f 0x04>; + reg = <0x00 0x32008050 0x14>; + }; + + a55_timer5@32008064 { + status = "disable"; + compatible = "snps,dw-apb-timer"; + clock-frequency = <0x14dc9380>; + interrupt-parent = <0x01>; + interrupts = <0x00 0x50 0x04>; + reg = <0x00 0x32008064 0x14>; + }; + + a55_timer6@32008078 { + status = "disable"; + compatible = "snps,dw-apb-timer"; + clock-frequency = <0x14dc9380>; + interrupt-parent = <0x01>; + interrupts = <0x00 0x51 0x04>; + reg = <0x00 0x32008078 0x14>; + }; + + a55_timer7@3200808c { + status = "disable"; + compatible = "snps,dw-apb-timer"; + clock-frequency = <0x14dc9380>; + interrupt-parent = <0x01>; + interrupts = <0x00 0x52 0x04>; + reg = <0x00 0x3200808c 0x14>; + }; + + spi@2000c000 { + status = "disable"; + compatible = "snps,dw-apb-ssi"; + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x00 0x2000c000 0x800>; + interrupt-parent = <0x01>; + interrupts = <0x00 0xdb 0x04>; + clocks = <0x05 0x58 0x05 0x68>; + clock-names = "spi_wclk\0spi_pclk"; + num-cs = <0x01>; + bus-num = <0x00>; + cs-gpios = <0x47 0x02 0x00>; + pinctrl-names = "default"; + pinctrl-0 = <0x48>; + }; + + spi@2000d000 { + status = "disable"; + compatible = "snps,dw-apb-ssi"; + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x00 0x2000d000 0x800>; + interrupt-parent = <0x01>; + interrupts = <0x00 0xdc 0x04>; + clocks = <0x05 0x73 0x05 0x80>; + clock-names = "spi_wclk\0spi_pclk"; + num-cs = <0x01>; + bus-num = <0x01>; + cs-gpios = <0x47 0x06 0x00>; + pinctrl-names = "default"; + pinctrl-0 = <0x49>; + }; + + spi@2000c800 { + status = "disable"; + compatible = "snps,dw-apb-ssi"; + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x00 0x2000c800 0x800>; + interrupt-parent = <0x01>; + interrupts = <0x00 0xf4 0x04>; + clocks = <0x05 0x58 0x05 0x68>; + clock-names = "spi_wclk\0spi_pclk"; + num-cs = <0x01>; + bus-num = <0x02>; + cs-gpios = <0x4a 0x08 0x00>; + pinctrl-names = "default"; + pinctrl-0 = <0x4b 0x4c>; + }; + + spi@2000d800 { + status = "disable"; + compatible = "snps,dw-apb-ssi"; + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x00 0x2000d800 0x800>; + interrupt-parent = <0x01>; + interrupts = <0x00 0xf5 0x04>; + clocks = <0x05 0x73 0x05 0x80>; + clock-names = "spi_wclk\0spi_pclk"; + num-cs = <0x01>; + bus-num = <0x03>; + cs-gpios = <0x4a 0x10 0x00>; + pinctrl-names = "default"; + pinctrl-0 = <0x4d 0x4e>; + }; + + spi@20022000 { + status = "okay"; + compatible = "snps,dw-apb-ssi"; + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x00 0x20022000 0x800>; + interrupt-parent = <0x01>; + interrupts = <0x00 0xe2 0x04>; + clocks = <0x05 0x58 0x05 0x68>; + clock-names = "spi_wclk\0spi_pclk"; + num-cs = <0x01>; + bus-num = <0x04>; + cs-gpios = <0x47 0x02 0x00>; + pinctrl-names = "default"; + pinctrl-0 = <0x4f>; + spi-slave; + + slave@0 { + compatible = "rohm,dh2228fv"; + reg = <0x00>; + spi-max-frequency = <0x989680>; + }; + }; + + spi@20023000 { + status = "disable"; + compatible = "snps,dw-apb-ssi"; + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x00 0x20023000 0x800>; + interrupt-parent = <0x01>; + interrupts = <0x00 0xe1 0x04>; + clocks = <0x05 0x73 0x05 0x80>; + clock-names = "spi_wclk\0spi_pclk"; + num-cs = <0x01>; + bus-num = <0x05>; + cs-gpios = <0x47 0x06 0x00>; + pinctrl-names = "default"; + pinctrl-0 = <0x50>; + }; + + i2s-play@2000e000 { + status = "disable"; + compatible = "snps,designware-i2s"; + reg = <0x00 0x2000e000 0x1000>; + interrupt-names = "play_irq"; + interrupt-parent = <0x01>; + interrupts = <0x00 0xdd 0x04>; + clocks = <0x05 0x61 0x05 0x59>; + clock-names = "i2spclk\0i2sclk"; + play; + channel = <0x02>; + #sound-dai-cells = <0x00>; + pinctrl-names = "default"; + pinctrl-0 = <0x51>; + }; + + i2s-rec@2000f000 { + status = "disable"; + compatible = "snps,designware-i2s"; + reg = <0x00 0x2000f000 0x1000>; + interrupt-names = "record_irq"; + interrupt-parent = <0x01>; + interrupts = <0x00 0xde 0x04>; + clocks = <0x02>; + record; + channel = <0x02>; + #sound-dai-cells = <0x00>; + pinctrl-names = "default"; + pinctrl-0 = <0x52>; + }; + + qspi@00000000 { + status = "okay"; + compatible = "snps,dwc-ssi-1.01a"; + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x00 0x00 0x4000000>; + interrupt-parent = <0x01>; + interrupts = <0x00 0xd9 0x04>; + clocks = <0x05 0x4d 0x05 0x4e>; + clock-names = "hclk\0wclk"; + work-mode = <0x01>; + reg-io-width = <0x04>; + bst,use-gpio-cs; + spi-rx-bus-width = <0x04>; + spi-tx-bus-width = <0x04>; + cs-gpios = <0x47 0x15 0x00>; + num-cs = <0x01>; + bus-num = <0x06>; + pinctrl-names = "default"; + pinctrl-0 = <0x53>; + + qspi0-nor0@0 { + #address-cells = <0x01>; + #size-cells = <0x01>; + spi-rx-bus-width = <0x01>; + spi-tx-bus-width = <0x01>; + compatible = "jedec,spi-nor"; + status = "okay"; + spi-max-frequency = <0xf4240>; + reg = <0x00>; + mode = <0x00>; + powerctl-fada-gpios = <0x1f 0x1b 0x00>; + powerctl-fadb-gpios = <0x1f 0x1c 0x00>; + + partition@0 { + reg = <0x00 0x1e00000>; + label = "nor0_part0"; + }; + + partition@1e00000 { + reg = <0x1e00000 0x200000>; + label = "nor0_part1"; + }; + }; + }; + + qspi@14000000 { + status = "disable"; + compatible = "snps,dwc-ssi-1.01a"; + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x00 0x14000000 0x4000000>; + interrupt-parent = <0x01>; + interrupts = <0x00 0xda 0x04>; + clocks = <0x05 0x4f 0x05 0x50>; + clock-names = "hclk\0wclk"; + work-mode = <0x01>; + reg-io-width = <0x04>; + bst,use-gpio-cs; + spi-rx-bus-width = <0x04>; + spi-tx-bus-width = <0x04>; + cs-gpios = <0x54 0x01 0x00>; + num-cs = <0x01>; + bus-num = <0x07>; + pinctrl-names = "default"; + pinctrl-0 = <0x55>; + }; + + stmmac-axi-config { + snps,wr_osr_lmt = <0x0f>; + snps,rd_osr_lmt = <0x0f>; + snps,axi_fb; + snps,blen = <0x04 0x08 0x10 0x00 0x00 0x00 0x00>; + phandle = <0x56>; + }; + + rx-queues-config { + snps,rx-queues-to-use = <0x04>; + snps,rx-sched-sp; + phandle = <0x57>; + + queue0 { + snps,dcb-algorithm; + snps,map-to-dma-channel = <0x00>; + snps,priority = <0x00>; + }; + + queue1 { + snps,dcb-algorithm; + snps,map-to-dma-channel = <0x01>; + snps,priority = <0x01>; + }; + + queue2 { + snps,dcb-algorithm; + snps,map-to-dma-channel = <0x02>; + snps,priority = <0x02>; + }; + + queue3 { + snps,dcb-algorithm; + snps,map-to-dma-channel = <0x03>; + snps,priority = <0x03>; + }; + }; + + tx-queues-config { + snps,tx-queues-to-use = <0x04>; + snps,tx-sched-wrr; + phandle = <0x58>; + + queue0 { + snps,weight = <0x10>; + snps,dcb-algorithm; + snps,priority = <0x00>; + }; + + queue1 { + snps,weight = <0x10>; + snps,dcb-algorithm; + snps,priority = <0x01>; + }; + + queue2 { + snps,weight = <0x10>; + snps,dcb-algorithm; + snps,priority = <0x02>; + }; + + queue3 { + snps,weight = <0x10>; + snps,dcb-algorithm; + snps,priority = <0x03>; + }; + }; + + thermal@70039000 { + status = "okay"; + compatible = "bst,bst-thermal"; + reg = <0x00 0x70039000 0x1000>; + #thermal-sensor-cells = <0x00>; + phandle = <0x61>; + }; + + ethernet@30000000 { + status = "okay"; + compatible = "bst,dw-eqos-eth"; + reg = <0x00 0x30000000 0x100000>; + interrupt-parent = <0x01>; + interrupts = <0x00 0x9f 0xff04 0x00 0xa0 0xff04 0x00 0xa1 0xff04 0x00 0xa2 0xff04 0x00 0xa3 0xff04 0x00 0xa4 0xff04 0x00 0xa5 0xff04 0x00 0xa6 0xff04 0x00 0xa7 0xff04 0x00 0xa8 0xff04 0x00 0xa9 0xff04 0x00 0xaa 0xff04>; + interrupt-names = "sbd_irq\0sfty_ce_irq\0sfty_ue_irq\0tx_chan0_irq\0tx_chan1_irq\0tx_chan2_irq\0tx_chan3_irq\0rx_chan0_irq\0rx_chan1_irq\0rx_chan2_irq\0rx_chan3_irq\0eth_lpi"; + ethernet-id = <0x00>; + mac-address = [00 00 00 00 00 00]; + max-frame-size = <0xed8>; + phy-mode = "rgmii"; + snps,multicast-filter-bins = <0x100>; + snps,perfect-filter-entries = <0x80>; + rx-fifo-depth = <0x4000>; + tx-fifo-depth = <0x4000>; + clocks = <0x05 0x0f 0x05 0x13 0x05 0x15 0x05 0x11>; + clock-names = "wclk\0axim_aclk\0pclk\0ptp_ref"; + bst,fix-safety = <0x00>; + bst,dma_int_mode = <0x01>; + snps,fixed-burst; + snps,force_sf_dma_mode; + snps,ps-speed = <0x3e8>; + snps,axi-config = <0x56>; + snps,mtl-rx-config = <0x57>; + snps,mtl-tx-config = <0x58>; + label = "gmac0"; + resets = <0x06 0x11>; + reset-names = "bstgmaceth"; + eth-name = "gmac0"; + eth-number = <0x00>; + mac-mode = "rgmii"; + extend-op = <0x02>; + pinctrl-names = "default"; + pinctrl-0 = <0x59>; + + fixed-link { + speed = <0x3e8>; + full-duplex; + }; + }; + + ethernet@30100000 { + status = "okay"; + compatible = "bst,dw-eqos-eth"; + reg = <0x00 0x30100000 0x100000>; + interrupt-parent = <0x01>; + interrupts = <0x00 0xab 0xff04 0x00 0xac 0xff04 0x00 0xad 0xff04 0x00 0xae 0xff04 0x00 0xaf 0xff04 0x00 0xb0 0xff04 0x00 0xb1 0xff04 0x00 0xb2 0xff04 0x00 0xb3 0xff04 0x00 0xb4 0xff04 0x00 0xb5 0xff04 0x00 0xb6 0xff04>; + interrupt-names = "sbd_irq\0sfty_ce_irq\0sfty_ue_irq\0tx_chan0_irq\0tx_chan1_irq\0tx_chan2_irq\0tx_chan3_irq\0rx_chan0_irq\0rx_chan1_irq\0rx_chan2_irq\0rx_chan3_irq\0eth_lpi"; + ethernet-id = <0x01>; + mac-address = [00 00 00 00 00 00]; + max-frame-size = <0xed8>; + phy-mode = "rgmii"; + snps,multicast-filter-bins = <0x100>; + snps,perfect-filter-entries = <0x80>; + rx-fifo-depth = <0x4000>; + tx-fifo-depth = <0x4000>; + clocks = <0x05 0x10 0x05 0x14 0x05 0x16 0x05 0x12>; + clock-names = "wclk\0axim_aclk\0pclk\0ptp_ref"; + bst,fix-safety = <0x00>; + bst,dma_int_mode = <0x01>; + snps,fixed-burst; + snps,force_sf_dma_mode; + snps,ps-speed = <0x3e8>; + snps,axi-config = <0x56>; + snps,mtl-rx-config = <0x57>; + snps,mtl-tx-config = <0x58>; + label = "gmac1"; + resets = <0x06 0x12>; + reset-names = "bstgmaceth"; + pinctrl-names = "default"; + pinctrl-0 = <0x5a>; + extend-op = <0x02>; + eth-name = "gmac1"; + eth-number = <0x01>; + mac-mode = "rgmii"; + phy-handle = <0x5b>; + + mdio1 { + compatible = "snps,dwmac-mdio"; + #address-cells = <0x01>; + #size-cells = <0x00>; + + eth_phy1@1 { + compatible = "marvell,88Q2112\0ethernet-phy-id002B.0983\0ethernet-phy-ieee802.3-c45"; + device_type = "ethernet-phy"; + max-speed = <0x3e8>; + reg = <0x07>; + reset-gpios = <0x1f 0x09 0x01>; + reset-active-low; + reset-assert-us = <0x4e20>; + reset-deassert-us = <0x4e20>; + phandle = <0x5b>; + }; + }; + }; + + phy@30E01000 { + compatible = "bst,dwc-usb-phy"; + #phy-cells = <0x00>; + reg = <0x00 0x30e01000 0x1000>; + usb_mode = "usb20"; + phandle = <0x5e>; + }; + + phy@30E00000 { + compatible = "bst,dwc-usb-phy"; + reg = <0x00 0x30e00000 0x1000>; + #phy-cells = <0x00>; + usb_mode = "usb30"; + pll_type = "internal"; + phandle = <0x5c>; + }; + + usb3 { + compatible = "bst,dwc3usb"; + status = "okay"; + ranges; + #address-cells = <0x02>; + #size-cells = <0x01>; + clock-names = "suspend\0ref\0axi\0apb"; + clocks = <0x05 0x17 0x05 0x18 0x05 0x19 0x05 0x1a>; + resets = <0x06 0x04>; + reset-names = "usb3_reset"; + phys = <0x5c>; + phy-names = "usb-phy"; + pll_type = "internal"; + powerctl-gpios = <0x1f 0x0e 0x00>; + pinctrl-names = "default"; + pinctrl-0 = <0x5d>; + + dwc3@30200000 { + compatible = "snps,dwc3"; + reg-shift = <0x02>; + reg-io-width = <0x04>; + reg = <0x00 0x30200000 0x100000>; + interrupts = <0x00 0xc8 0x04>; + interrupt-parent = <0x01>; + dr_mode = "host"; + snps,dis_u3_susphy_quirk; + }; + }; + + usb2 { + compatible = "bst,dwc3usb"; + status = "okay"; + ranges; + #address-cells = <0x02>; + #size-cells = <0x01>; + clock-names = "ahb\0ref\0apb"; + clocks = <0x05 0x1b 0x05 0x1d 0x05 0x1c>; + reset-names = "usb2_reset"; + resets = <0x06 0x05>; + phys = <0x5e>; + phy-names = "usb-phy"; + pll_type = "internal"; + + dwc3@30300000 { + status = "okay"; + compatible = "snps,dwc3"; + reg = <0x00 0x30300000 0x100000>; + interrupts = <0x00 0xc9 0x04>; + interrupt-parent = <0x01>; + dr_mode = "peripheral"; + snps,incr-burst-type-adjustment = <0x01 0x04 0x08 0x10>; + snps,reqinfo-for-data-read = <0x08>; + snps,reqinfo-for-descriptor-read = <0x08>; + }; + }; + + dwmmc0@30400000 { + status = "okay"; + compatible = "bst,dwcmshc-sdhci"; + clocks = <0x05 0x1f 0x05 0x1e>; + clock-names = "core\0bus"; + reg = <0x00 0x30400000 0x1000>; + interrupt-parent = <0x01>; + interrupts = <0x00 0xb9 0x04>; + interrupt-names = "IRQDWMMC0"; + #address-cells = <0x01>; + #size-cells = <0x00>; + data-addr = <0x200>; + fifo-watermark-aligned; + clock-frequency = <0x2faf080>; + max-frequency = <0xbebc200>; + min-frequency = <0x61a80>; + broken-64bit-dma; + clear-tarns-mode; + fifo-depth = <0x400>; + card-detect-delay = <0xc8>; + bus-width = <0x08>; + cap-mmc-highspeed; + non-removable; + no-sdio; + no-sd; + keep-power-in-suspend; + no-3-3-v; + sdhci,auto-cmd12; + pinctrl-names = "default"; + pinctrl-0 = <0x5f>; + }; + + dwmmc1@30500000 { + status = "okay"; + compatible = "bst,dwcmshc-sdhci"; + clocks = <0x05 0x21 0x05 0x20>; + clock-names = "core\0bus"; + reg = <0x00 0x30500000 0x1000>; + interrupt-parent = <0x01>; + interrupts = <0x00 0xbd 0x04>; + interrupt-names = "IRQDWMMC1"; + #address-cells = <0x01>; + #size-cells = <0x00>; + data-addr = <0x200>; + fifo-watermark-aligned; + clock-frequency = <0x5f5e100>; + max-frequency = <0xbebc200>; + min-frequency = <0x61a80>; + broken-64bit-dma; + clear-tarns-mode; + fifo-depth = <0x400>; + card-detect-delay = <0xc8>; + bus-width = <0x04>; + cap-sd-highspeed; + sd-uhs-sdr12; + sd-uhs-sdr25; + sd-uhs-sdr50; + no-sdio; + no-mmc; + sdhci,auto-cmd12; + keep-power-in-suspend; + pinctrl-names = "default"; + pinctrl-0 = <0x60>; + }; + + gpu@33300000 { + status = "okay"; + compatible = "arm,mali-450\0arm,mali-utgard"; + reg = <0x00 0x33300000 0x30000>; + interrupt-parent = <0x01>; + interrupts = <0x00 0x81 0x04 0x00 0x82 0x04 0x00 0x83 0x04 0x00 0x84 0x04 0x00 0x85 0x04 0x00 0x86 0x04 0x00 0x87 0x04 0x00 0x88 0x04>; + interrupt-names = "IRQPP0\0IRQPPMMU0\0IRQPP1\0IRQPPMMU1\0IRQGP\0IRQGPMMU\0IRQPMU\0IRQPP"; + clocks = <0x05 0x31 0x05 0x32>; + clock-names = "clk_mali\0clk_mali_apb"; + resets = <0x06 0x0b>; + reset-names = "gpu_reset"; + ppcores = <0x02>; + dedicated_mem_start = <0x00>; + dedicated_mem_size = <0x00>; + }; + + mali-v500@0x55000000 { + status = "okay"; + compatible = "arm,mali-v500"; + reg = <0x00 0x55000000 0xffff>; + interrupt-parent = <0x01>; + interrupts = <0x00 0x9a 0x04>; + interrupt-names = "IRQV500"; + resets = <0x06 0x00>; + reset-names = "codec_reset"; + clocks = <0x05 0x3d>; + clock-names = "clk_v500"; + }; + }; + + cooling_dev { + + pwm { + cpumask = <0x0f>; + capacitance = <0x5dc>; + #cooling-cells = <0x02>; + phandle = <0x63>; + }; + }; + + thermal-zones { + + cpu-thermal { + polling-delay-passive = <0x1f4>; + polling-delay = <0x3e8>; + thermal-sensors = <0x61>; + + trips { + + switch_trip { + temperature = <0x15f90>; + hysteresis = <0x7d0>; + type = "passive"; + phandle = <0x62>; + }; + + critical_trip { + temperature = <0x1e848>; + hysteresis = <0x00>; + type = "critical"; + }; + }; + + cooling-maps { + + map0 { + trip = <0x62>; + cooling-device = <0x63 0x00 0x01>; + }; + }; + }; + }; + + pinctrl@70038000 { + status = "okay"; + compatible = "bst,pinctrl-a1000b"; + #address-cells = <0x02>; + #size-cells = <0x02>; + reg = <0x00 0x70038000 0x00 0x1000 0x00 0x33001000 0x00 0x1000>; + reg-names = "aon\0top"; + #gpio-cells = <0x02>; + + spi0_pinctrl { + phandle = <0x48>; + + mux { + pins = "spi0_miso\0spi0_mosi\0spi0_sclk"; + function = "spi0"; + }; + }; + + spi1_pinctrl { + phandle = <0x49>; + + mux { + pins = "spi1_miso\0spi1_mosi\0spi1_sclk"; + function = "spi1"; + }; + }; + + spi2_pinctrl { + phandle = <0x4b>; + + mux { + pins = "uart0_cts\0uart1_cts\0uart1_rts"; + function = "spi2"; + }; + }; + + spi2_cs_pinctrl { + phandle = <0x4c>; + + mux { + pins = "uart0_rts"; + function = "gpio"; + }; + }; + + spi3_pinctrl { + phandle = <0x4d>; + + mux { + pins = "uart2_cts\0uart3_cts\0uart3_rts"; + function = "spi3"; + }; + }; + + spi3_cs_pinctrl { + phandle = <0x4e>; + + mux { + pins = "uart2_rts"; + function = "gpio"; + }; + }; + + spi4_pinctrl { + phandle = <0x4f>; + + mux { + pins = "spi0_miso\0spi0_mosi\0spi0_sclk\0spi0_cs"; + function = "spi0_s"; + }; + }; + + spi5_pinctrl { + phandle = <0x50>; + + mux { + pins = "spi1_miso\0spi1_mosi\0spi1_sclk"; + function = "spi1_s"; + }; + }; + + i2c0_pinctrl { + phandle = <0x1c>; + + mux { + pins = "i2c0_scl\0i2c0_sda"; + function = "i2c0"; + }; + }; + + i2c1_pinctrl { + phandle = <0x1d>; + + mux { + pins = "i2c1_scl\0i2c1_sda"; + function = "i2c1"; + }; + }; + + i2c2_pinctrl { + phandle = <0x1e>; + + mux { + pins = "i2c2_scl\0i2c2_sda"; + function = "i2c2"; + }; + }; + + i2c3_pinctrl { + phandle = <0x37>; + + mux { + pins = "i2c3_scl\0i2c3_sda"; + function = "i2c3"; + }; + }; + + i2c4_pinctrl { + phandle = <0x38>; + + mux { + pins = "i2c4_scl\0i2c4_sda"; + function = "i2c4"; + }; + }; + + i2c5_pinctrl { + phandle = <0x39>; + + mux { + pins = "i2c5_scl\0i2c5_sda"; + function = "i2c5"; + }; + }; + + uart0_pinctrl { + phandle = <0x07>; + + mux { + pins = "uart0_txd\0uart0_rxd"; + function = "uart0"; + }; + }; + + uart1_pinctrl { + phandle = <0x08>; + + mux { + pins = "uart1_txd\0uart1_rxd"; + function = "uart1"; + }; + }; + + uart2_pinctrl { + phandle = <0x09>; + + mux { + pins = "uart2_txd\0uart2_rxd"; + function = "uart2"; + }; + }; + + uart3_pinctrl { + phandle = <0x0a>; + + mux { + pins = "uart3_txd\0uart3_rxd"; + function = "uart3"; + }; + }; + + gpio0_pinctrl { + + mux { + pins = "gpio_29"; + function = "gpio"; + }; + }; + + gpio_special_func_pinctrl { + + mux { + pins = "gpio_24\0gpio_29\0debug4\0debug5\0uart0_cts\0uart0_rts"; + function = "gpio"; + }; + }; + + qspi0_pinctrl { + phandle = <0x53>; + + mux { + pins = "qspi0_cs0"; + function = "gpio"; + }; + }; + + usb3_pinctrl { + phandle = <0x5d>; + + mux { + pins = "gpio_14"; + function = "gpio"; + }; + }; + + qspi1_pinctrl { + phandle = <0x55>; + + mux { + pins = "qspi1_cs1"; + function = "gpio"; + }; + }; + + des_960_1_pinctrl { + + mux { + pins = "qspi1_io1"; + function = "gpio"; + }; + }; + + des_960_2_pinctrl { + + mux { + pins = "qspi1_io3"; + function = "gpio"; + }; + }; + + des_960_3_pinctrl { + + mux { + pins = "qspi1_io5"; + function = "gpio"; + }; + }; + + bist_pinctrl { + + mux { + pins = "spi1_mosi"; + function = "bist"; + }; + }; + + + + + + i2s0_pinctrl { + phandle = <0x51>; + + mux { + pins = "i2s0_ck\0i2s0_mck\0i2s0_sd_out\0i2s0_ws\0qspi0_io4"; + function = "i2s0"; + }; + }; + + i2s1_pinctrl { + phandle = <0x52>; + + mux { + pins = "i2s1_ck\0i2s1_sd_in\0i2s1_ws"; + function = "i2s1"; + }; + }; + + isp_pinctrl { + phandle = <0x66>; + + mux { + pins = "isp_fsync0\0isp_fsync1\0isp_fsync2\0isp_fsync3"; + function = "isp"; + }; + }; + + ptp_pinctrl { + + mux { + pins = "ptp_pps0\0ptp_pps1\0ptp_clk"; + function = "ptp"; + }; + }; + + ptp_pinconfig { + + config { + pins = "ptp_clk"; + drive-strength = <0x02>; + input-enable; + }; + }; + + err_rpt_l0_pinctrl { + + mux { + pins = "err_rpt_l0_n\0err_rpt_l0_p"; + function = "err_rpt_l0"; + }; + }; + + err_rpt_gpio_l0_pinctrl { + + mux { + pins = "err_rpt_l0_n\0err_rpt_l0_p"; + function = "gpio"; + }; + }; + + err_rpt_l1_pinctrl { + + mux { + pins = "err_rpt_l1_n\0err_rpt_l1_p"; + function = "err_rpt_l1"; + }; + }; + + pwm_lsp0_pwm0_pinctrl { + phandle = <0x43>; + + mux { + pins = "pwm0"; + function = "pwm"; + }; + }; + + pwm_lsp0_pwm1_pinctrl { + phandle = <0x44>; + + mux { + pins = "pwm1"; + function = "pwm"; + }; + }; + + pwm_lsp1_pwm0_pinctrl { + phandle = <0x45>; + + mux { + pins = "pwm2"; + function = "pwm"; + }; + }; + + pwm_lsp1_pwm1_pinctrl { + phandle = <0x46>; + + mux { + pins = "pwm3"; + function = "pwm"; + }; + }; + + ts_pinctrl { + + mux { + pins = "ts_trig_in00\0ts_trig_in01\0ts_trig_in10\0ts_trig_in11"; + function = "ts"; + }; + }; + + sdemmc0_pinctrl { + phandle = <0x15>; + + mux { + pins = "sdemmc0_clk\0sdemmc0_cmd\0sdemmc0_dat0\0sdemmc0_dat1\0sdemmc0_dat2\0sdemmc0_dat3\0sdemmc0_dat4\0sdemmc0_dat5\0sdemmc0_dat6\0sdemmc0_dat7\0sdemmc0_rstb\0sdemmc0_cdn\0sdemmc0_wp"; + function = "sdemmc0"; + }; + }; + + sdemmc0_pinconfig { + phandle = <0x5f>; + + config { + pins = "sdemmc0_clk\0sdemmc0_cmd\0sdemmc0_dat0\0sdemmc0_dat1\0sdemmc0_dat2\0sdemmc0_dat3\0sdemmc0_dat4\0sdemmc0_dat5\0sdemmc0_dat6\0sdemmc0_dat7\0sdemmc0_rstb\0sdemmc0_cdn\0sdemmc0_wp"; + drive-strength = <0x02>; + input-enable; + }; + }; + + sdemmc1_pinctrl { + phandle = <0x16>; + + mux { + pins = "sdemmc1_clk\0sdemmc1_cmd\0sdemmc1_dat0\0sdemmc1_dat1\0sdemmc1_dat2\0sdemmc1_dat3\0sdemmc1_dat4\0sdemmc1_dat5\0sdemmc1_dat6\0sdemmc1_dat7\0sdemmc1_rstb\0sdemmc1_cdn\0sdemmc1_wp"; + function = "sdemmc1"; + }; + }; + + sdemmc1_pinconfig { + phandle = <0x60>; + + config { + pins = "sdemmc1_clk\0sdemmc1_cmd\0sdemmc1_dat0\0sdemmc1_dat1\0sdemmc1_dat2\0sdemmc1_dat3\0sdemmc1_dat4\0sdemmc1_dat5\0sdemmc1_dat6\0sdemmc1_dat7\0sdemmc1_rstb\0sdemmc1_cdn\0sdemmc1_wp"; + drive-strength = <0x0f>; + input-enable; + }; + }; + + debug_pinctrl { + phandle = <0x17>; + + mux { + pins = "debug0\0debug1\0debug2\0debug3\0debug4\0debug5\0debug6\0debug7"; + function = "debug"; + }; + }; + + strap_pinctrl { + + mux { + pins = "gpio_24\0gpio_25\0gpio_26\0gpio_27\0gpio_28\0gpio_29\0spi1_sclk\0i2s0_mck\0i2s0_ck\0gpio_107\0gpio_108"; + function = "strap"; + }; + }; + + vout_pinctrl { + phandle = <0x18>; + + mux { + pins = "vout_r0\0vout_r1\0vout_r2\0vout_r3\0vout_r4\0vout_r5\0vout_r6\0vout_r7\0vout_g0\0vout_g1\0vout_g2\0vout_g3\0vout_g4\0vout_g5\0vout_g6\0vout_g7\0vout_b0\0vout_b1\0vout_b2\0vout_b3\0vout_b4\0vout_b5\0vout_b6\0vout_b7\0vout_hs\0vout_vs\0vout_de\0vout_pclk\0vout_pdb"; + function = "vout"; + }; + }; + + vout_pinconfig { + + config { + pins = "vout_r0\0vout_r1\0vout_r2\0vout_r3\0vout_r4\0vout_r5\0vout_r6\0vout_r7\0vout_g0\0vout_g1\0vout_g2\0vout_g3\0vout_g4\0vout_g5\0vout_g6\0vout_g7\0vout_b0\0vout_b1\0vout_b2\0vout_b3\0vout_b4\0vout_b5\0vout_b6\0vout_b7\0vout_hs\0vout_vs\0vout_de\0vout_pclk\0vout_pdb"; + drive-strength = <0x02>; + input-enable; + }; + }; + + vin_pinctrl { + phandle = <0x19>; + + mux { + pins = "vin_b0\0vin_b1\0vin_b2\0vin_b3\0vin_b4\0vin_de\0vin_g0\0vin_g1\0vin_g2\0vin_g3\0vin_g4\0vin_g5\0vin_hs\0vin_llc\0vin_r0\0vin_r1\0vin_r2\0vin_r3\0vin_r4\0vin_vs"; + function = "vin"; + }; + }; + + vin_pinconfig { + + config { + pins = "vin_b0\0vin_b1\0vin_b2\0vin_b3\0vin_b4\0vin_de\0vin_g0\0vin_g1\0vin_g2\0vin_g3\0vin_g4\0vin_g5\0vin_hs\0vin_llc\0vin_r0\0vin_r1\0vin_r2\0vin_r3\0vin_r4\0vin_vs"; + drive-strength = <0x02>; + input-enable; + }; + }; + + rgmii0_pinctrl { + phandle = <0x59>; + + mux { + pins = "rgmii0_txd0\0rgmii0_txd1\0rgmii0_txd2\0rgmii0_txd3\0gmii0_txd4\0gmii0_txd5\0gmii0_txd6\0gmii0_txd7\0gmii0_txer\0rgmii0_txctrl\0mii0_txclk\0rgmii0_gtxclk\0rgmii0_rxd0\0rgmii0_rxd1\0rgmii0_rxd2\0rgmii0_rxd3\0gmii0_rxd4\0gmii0_rxd5\0gmii0_rxd6\0gmii0_rxd7\0gmii0_rxer\0rgmii0_rxctrl\0rgmii0_rxclk\0rgmii0_mdio\0rgmii0_mdc\0rgmii0_intr"; + function = "rgmii0"; + }; + }; + + rgmii0_pinconfig { + + config { + pins = "rgmii0_gtxclk\0rgmii0_mdc\0rgmii0_mdio\0rgmii0_rxclk\0rgmii0_rxctrl\0rgmii0_rxd0\0rgmii0_rxd1\0rgmii0_rxd2\0rgmii0_rxd3\0rgmii0_txctrl\0rgmii0_txd0\0rgmii0_txd1\0rgmii0_txd2\0rgmii0_txd3"; + drive-strength = <0x02>; + input-enable; + }; + }; + + rgmii1_pinctrl { + phandle = <0x5a>; + + mux { + pins = "rgmii1_txd0\0rgmii1_txd1\0rgmii1_txd2\0rgmii1_txd3\0mii1_rxer\0mii1_txclk\0rgmii1_txctrl\0rgmii1_gtxclk\0rgmii1_rxd0\0rgmii1_rxd1\0rgmii1_rxd2\0rgmii1_rxd3\0rgmii1_rxctrl\0rgmii1_rxclk\0rgmii1_mdc\0rgmii1_mdio\0rgmii1_intr"; + function = "rgmii1"; + }; + }; + + rgmii1_pinconfig { + + config { + pins = "rgmii1_gtxclk\0rgmii1_mdc\0rgmii1_mdio\0rgmii1_rxclk\0rgmii1_rxctrl\0rgmii1_rxd0\0rgmii1_rxd1\0rgmii1_rxd2\0rgmii1_rxd3\0rgmii1_txctrl\0rgmii1_txd0\0rgmii1_txd1\0rgmii1_txd2\0rgmii1_txd3"; + drive-strength = <0x02>; + input-enable; + }; + }; + + gmii0_pinconfig { + + config { + pins = "gmii0_rxd4\0gmii0_rxd5\0gmii0_rxd6\0gmii0_rxd7\0gmii0_rxer\0gmii0_txd4\0gmii0_txd5\0gmii0_txd6\0gmii0_txd7\0gmii0_txer"; + drive-strength = <0x02>; + input-enable; + }; + }; + + ssd_pinctrl { + + mux { + pins = "sdemmc0_led_ctl\0sdemmc1_led_ctl\0gpio_26\0gpio_27"; + function = "gpio"; + }; + }; + + gnss_pinctrl { + + mux { + pins = "gpio_31\0gpio_12\0pwm1"; + function = "gpio"; + }; + }; + + fan_pinctrl { + phandle = <0x1a>; + + mux { + pins = "gpio_27\0gpio_28"; + function = "gpio"; + }; + }; + + + + + board_special_func_pinctrl { + phandle = <0x1b>; + + mux { + pins = "vout_pdb\0gpio_31"; + function = "gpio"; + }; + }; + }; + + isp { + #address-cells = <0x02>; + #size-cells = <0x02>; + compatible = "bst,a1000b-isp"; + memory-region = <0x64 0x65>; + assigned-mem-size = <0x1000>; + mbox-names = "bstn-mbox"; + mboxes = <0xea 0x06>; + isp-fw-fbuf-addr = <0xa2000000>; + isp-fw-fbuf-size = <0x10000000>; + dma-coherent; + pinctrl-names = "default"; + pinctrl-0 = <0x66>; + + core@0 { + id = <0x00>; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + reg = <0x00>; + + endpoint@0 { + remote-endpoint = <0x67>; + phandle = <0x72>; + }; + }; + + port@1 { + reg = <0x01>; + + endpoint@1 { + remote-endpoint = <0x68>; + phandle = <0x73>; + }; + }; + + port@2 { + reg = <0x02>; + + endpoint@2 { + remote-endpoint = <0x69>; + phandle = <0x74>; + }; + }; + + port@3 { + reg = <0x03>; + + endpoint@3 { + remote-endpoint = <0x6a>; + phandle = <0x75>; + }; + }; + }; + }; + + core@1 { + id = <0x01>; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + reg = <0x00>; + + endpoint@4 { + remote-endpoint = <0x6b>; + phandle = <0x77>; + }; + }; + + port@1 { + reg = <0x01>; + + endpoint@5 { + remote-endpoint = <0x6c>; + phandle = <0x78>; + }; + }; + + port@2 { + reg = <0x02>; + + endpoint@6 { + remote-endpoint = <0x6d>; + phandle = <0x79>; + }; + }; + + port@3 { + reg = <0x03>; + + endpoint@7 { + remote-endpoint = <0x6e>; + phandle = <0x7a>; + }; + }; + }; + }; + + core@2 { + id = <0x02>; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + reg = <0x00>; + + endpoint@8 { + remote-endpoint = <0x6f>; + phandle = <0x7c>; + }; + }; + + port@1 { + reg = <0x01>; + + endpoint@9 { + remote-endpoint = <0x70>; + phandle = <0x7d>; + }; + }; + }; + }; + }; + + csi@0 { + compatible = "bst,a1000b_csi2"; + #address-cells = <0x01>; + #size-cells = <0x00>; + clock-lanes = <0x00>; + data-lanes = <0x01 0x02>; + lane-speed = <0x960>; + id = <0x00>; + resets = <0x06 0x0d>; + reset-names = "csi0_reset"; + + csi-link { + + ports { + + port@0 { + + endpoint@0 { + remote-endpoint = <0x71>; + phandle = <0x20>; + }; + }; + }; + }; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + reg = <0x00>; + + endpoint@0 { + remote-endpoint = <0x72>; + phandle = <0x67>; + }; + }; + + port@1 { + reg = <0x01>; + + endpoint@1 { + remote-endpoint = <0x73>; + phandle = <0x68>; + }; + }; + + port@2 { + reg = <0x02>; + + endpoint@2 { + remote-endpoint = <0x74>; + phandle = <0x69>; + }; + }; + + port@3 { + reg = <0x03>; + + endpoint@3 { + remote-endpoint = <0x75>; + phandle = <0x6a>; + }; + }; + }; + }; + + csi@1 { + compatible = "bst,a1000b_csi2"; + #address-cells = <0x01>; + #size-cells = <0x00>; + clock-lanes = <0x00>; + data-lanes = <0x01 0x02 0x03 0x04>; + lane-speed = <0x640>; + id = <0x01>; + resets = <0x06 0x0e>; + reset-names = "csi1_reset"; + + csi-link { + + ports { + + port@0 { + + endpoint@0 { + remote-endpoint = <0x76>; + phandle = <0x25>; + }; + }; + }; + }; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + reg = <0x00>; + + endpoint@0 { + remote-endpoint = <0x77>; + phandle = <0x6b>; + }; + }; + + port@1 { + reg = <0x01>; + + endpoint@1 { + remote-endpoint = <0x78>; + phandle = <0x6c>; + }; + }; + + port@2 { + reg = <0x02>; + + endpoint@2 { + remote-endpoint = <0x79>; + phandle = <0x6d>; + }; + }; + + port@3 { + reg = <0x03>; + + endpoint@3 { + remote-endpoint = <0x7a>; + phandle = <0x6e>; + }; + }; + }; + }; + + csi@3 { + compatible = "bst,a1000b-csi2-2x2"; + #address-cells = <0x01>; + #size-cells = <0x00>; + clock-lanes = <0x00>; + data-lanes = <0x01 0x02>; + lane-speed = <0x960>; + resets = <0x06 0x10>; + reset-names = "csi2_reset"; + id = <0x03>; + + csi-link { + + ports { + + port@0 { + + endpoint@0 { + remote-endpoint = <0x7b>; + phandle = <0x2a>; + }; + }; + }; + }; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + reg = <0x00>; + + endpoint@0 { + remote-endpoint = <0x7c>; + phandle = <0x6f>; + }; + }; + + port@1 { + reg = <0x01>; + + endpoint@1 { + remote-endpoint = <0x7d>; + phandle = <0x70>; + }; + }; + }; + }; + + chosen { + bootargs = "earlycon=uart8250,mmio32,0x20008000 console=ttyS0,115200n8 memreserve=64M@0xf8000000 rdinit=/sbin/init root=/dev/mmcblk0p7 rw rodata=n"; + stdout-path = "uart0"; + }; + + aliases { + uart0 = "/amba_apu/serial@20008000"; + }; + + memory@90000000 { + device_type = "memory"; + reg = <0x00 0x90000000 0x00 0x60000000>; + }; + + // memory@1b0000000 { + // device_type = "memory"; + // reg = <0x01 0xb0000000 0x00 0x40000000>; + // }; + + reserved-memory { + #address-cells = <0x02>; + #size-cells = <0x02>; + ranges; + + pcie_ctrl@8fd00000 { + compatible = "bst,pcie-ctrl"; + reg = <0x00 0x8fd00000 0x00 0x100000>; + no-map; + phandle = <0x0c>; + }; + + bst_atf@8b000000 { + compatible = "shared-dma-pool"; + reg = <0x00 0x8b000000 0x00 0x2000000>; + no-map; + }; + + bst_tee@8fec0000 { + compatible = "shared-dma-pool"; + reg = <0x00 0x8fec0000 0x00 0x40000>; + no-map; + phandle = <0x81>; + }; + + bstn_cma@8ff00000 { + compatible = "shared-dma-pool"; + reg = <0x00 0x8ff00000 0x00 0x100000>; + no-map; + phandle = <0x7e>; + }; + + bstn@90000000 { + compatible = "bst,bstn"; + reg = <0x00 0x90000000 0x00 0x2000000>; + no-map; + }; + + bst_lwnn@92000000 { + compatible = "bst,bst_lwnn"; + reg = <0x00 0x92000000 0x00 0x2000000>; + no-map; + }; + + bst_lwnn@94000000 { + compatible = "bst,bst_lwnn"; + reg = <0x00 0x94000000 0x00 0x2000000>; + no-map; + }; + + bst_cv@96000000 { + compatible = "bst,bst_cv"; + reg = <0x00 0x96000000 0x00 0x4000000>; + no-map; + }; + + bst_cv_cma@9a000000 { + compatible = "shared-dma-pool"; + reg = <0x00 0x9a000000 0x00 0x2000000>; + align-shift = <0x08>; + no-map; + phandle = <0x7f>; + }; + + vsp@0x9c000000 { + compatible = "shared-dma-pool"; + reg = <0x00 0x9c000000 0x00 0x1000000>; + no-map; + phandle = <0x80>; + }; + + vsp_fw@0x9d000000 { + reg = <0x00 0x9d000000 0x00 0x4000000>; + no-map; + }; + + bst_isp@0xa1000000 { + compatible = "shared-dma-pool"; + reg = <0x00 0xa1000000 0x00 0x1000000>; + no-map; + phandle = <0x64>; + }; + + bst_isp_fw@0xa2000000 { + reg = <0x00 0xa2000000 0x00 0x10000000>; + no-map; + }; + + coreip_pub_cma@0xb2000000 { + compatible = "shared-dma-pool"; + align-shift = <0x08>; + reg = <0x00 0xb2000000 0x00 0x36000000>; + reusable; + phandle = <0x65>; + }; + + noc_pmu@0xe8000000 { + compatible = "shared-dma-pool"; + reg = <0x00 0xe8000000 0x00 0x800000>; + reusable; + phandle = <0x42>; + }; + + + ddr0@0xf0000000 { + reg = <0x00 0xf0000000 0x00 0x10000000>; + no-map; + }; + + ddr1@0x1f0000000 { + reg = <0x01 0xf0000000 0x00 0x10000000>; + no-map; + }; + }; + + mbox-poll-clients { + compatible = "bst,ipc-mbox-client"; + reg = <0xfec00020 0x08 0x52030090 0x08 0x53090008 0x08 0xfec00028 0x08>; + #mbox-cells = <0x01>; + phandle = <0x0e>; + }; + + bstn-mbox { + compatible = "bstn,bstn-mbox"; + reg = <0x00 0x33102000 0x00 0x2000 0x00 0x33100000 0x00 0x2000 0x00 0x80000000 0x00 0x04 0x00 0x80002000 0x00 0x04>; + fpga-reset = <0x01>; + memory-region = <0x7e>; + assigned-mem-size = <0x1000>; + interrupt-parent = <0x01>; + interrupts = <0x00 0x71 0xff04 0x00 0x72 0xff04 0x00 0x73 0xff04 0x00 0x74 0xff04 0x00 0x75 0xff04 0x00 0x76 0xff04 0x00 0x77 0xff04 0x00 0x78 0xff04>; + #mbox-cells = <0x01>; + phandle = <0xea>; + }; + + bstn@0 { + #address-cells = <0x02>; + #size-cells = <0x02>; + compatible = "bst,bstn-a1000b,cma"; + reg = <0x00 0x50020000 0x00 0x100 0x00 0x90000000 0x00 0x2000000>; + memory-region = <0x65>; + rmem-base = <0x00 0xb2000000>; + rmem-size = <0x00 0x36000000>; + id = <0x00>; + assigned-mem-size = <0x1000>; + bus-offset = <0x00 0x00>; + mbox-names = "bstn-mbox"; + mboxes = <0xea 0x08>; + firmware = "bstn_dsp_rtos.rbf"; + }; + + bst_cv@0x51030000 { + #address-cells = <0x02>; + #size-cells = <0x02>; + compatible = "bst,bst_cv,cma"; + reg = <0x00 0x51030000 0x00 0x100 0x00 0x96000000 0x00 0x2000000 0x00 0x98000000 0x00 0x2000000 0x00 0x92000000 0x00 0x2000000 0x00 0x94000000 0x00 0x2000000>; + memory-region = <0x7f>; + assigned-mem-size = <0x4000>; + bus-offset = <0x00 0x00>; + mbox-names = "bstn-mbox"; + mboxes = <0xea 0x09>; + dsp-num = <0x04>; + ipc-register-addr = <0x8ff00000>; + + dsp@0x96000000 { + index = <0x00>; + firmware = "bst_cv_dsp_rt.rbf"; + assigned-mem-size = <0x1000>; + rt-init-addr = <0x967ff000>; + ipc-src-core = <0x03>; + }; + + dsp@0x98000000 { + index = <0x01>; + firmware = "bst_cv_dsp1_rt.rbf"; + assigned-mem-size = <0x1000>; + rt-init-addr = <0x987ff000>; + ipc-src-core = <0x03>; + }; + + dsp@0x92000000 { + index = <0x02>; + firmware = "bst_cv_dsp2_rt.rbf"; + assigned-mem-size = <0x1000>; + rt-init-addr = <0x927ff000>; + ipc-src-core = <0x03>; + }; + + dsp@0x94000000 { + index = <0x03>; + firmware = "bst_cv_dsp3_rt.rbf"; + assigned-mem-size = <0x1000>; + rt-init-addr = <0x947ff000>; + ipc-src-core = <0x03>; + }; + }; + + bst_gwarp_scaler@0x51060000 { + #address-cells = <0x02>; + #size-cells = <0x02>; + compatible = "bst,bst_gwarp_scaler,cma"; + reg = <0x00 0x51030000 0x00 0x100 0x00 0x51050000 0x00 0x100 0x00 0x51060000 0x00 0x100>; + memory-region = <0x65>; + id = <0x00>; + bus-offset = <0x00 0x00>; + assigned-mem-size = <0x1000>; + interrupt-parent = <0x01>; + interrupts = <0x00 0x9b 0x04>; + interrupt-names = "bst_cv_irq"; + }; + + bare_cv@51030000 { + #address-cells = <0x02>; + #size-cells = <0x02>; + compatible = "bst,bare_cv,cma"; + reg = <0x00 0x51030000 0x00 0x100 0x00 0x96000000 0x00 0x1000000 0x00 0x98000000 0x00 0x1000000 0x00 0x97000000 0x00 0x1000000 0x00 0x99000000 0x00 0x1000000>; + memory-region = <0x7f>; + id = <0x01>; + assigned-mem-size = <0x2000000 0x2000000 0x2000000 0x2000000>; + bus-offset = <0x00 0x00>; + mbox-names = "bstn-mbox"; + mboxes = <0xea 0x09>; + firmware = "bstcv0.rbf\0bstcv1.rbf\0bstcv2.rbf\0bstcv3.rbf"; + }; + + bst_lwnn@0x51030000 { + compatible = "bst,bst_lwnn-a1000b,cma"; + reg = <0x00 0x51030000 0x00 0x100 0x00 0x92000000 0x00 0x2000000 0x00 0x94000000 0x00 0x2000000>; + memory-region = <0x65>; + bus-offset = <0x00 0x00>; + mbox-names = "bst-lwnn-mbox"; + dsp-num = <0x02>; + ipc-register-addr = <0x8ff00000>; + + dsp@0x92000000 { + index = <0x02>; + firmware = "bst_lwnn_dsp2_rt.rbf"; + assigned-mem-size = <0x2000>; + rt-init-addr = <0x927ff000>; + ipc-src-core = <0x06>; + }; + + dsp@0x94000000 { + index = <0x03>; + firmware = "bst_lwnn_dsp3_rt.rbf"; + assigned-mem-size = <0x2000>; + rt-init-addr = <0x947ff000>; + ipc-src-core = <0x00>; + }; + }; + + ipc_vsp@0 { + #address-cells = <0x02>; + #size-cells = <0x02>; + compatible = "bst,bst-vsp-ipc"; + reg = <0x00 0x9c000000 0x00 0x100000 0x00 0x9c100000 0x00 0x80000 0x00 0x9c180000 0x00 0x80000 0x00 0x53090004 0x00 0x04 0x00 0x53090010 0x00 0x0c 0x00 0x33102fbc 0x00 0x04 0x00 0x9d000000 0x00 0x4000000>; + memory-region = <0x80>; + mbox-names = "bstn-mbox"; + mboxes = <0xea 0x07>; + }; + + vsp@1 { + #address-cells = <0x02>; + #size-cells = <0x02>; + compatible = "bst,bst-vsp"; + memory-region = <0x65>; + assigned-mem-size = <0x1000>; + clocks = <0x05 0x43>; + clock-names = "vout_display_clk"; + output-format = "HDMI_RGB"; + output-hsize = <0x780>; + output-vsize = <0x438>; + output-fresh = <0x3c>; + }; + + gmwarp@0 { + #address-cells = <0x02>; + #size-cells = <0x02>; + compatible = "bst,bst-gmwarp"; + memory-region = <0x65>; + }; + + encoder@0 { + #address-cells = <0x02>; + #size-cells = <0x02>; + compatible = "bst,bst-encoder"; + memory-region = <0x65>; + }; + + codec_dma_buf@0 { + compatible = "bst,dma_buf_te"; + memory-region = <0x65>; + }; + + firmware { + + optee { + compatible = "linaro,optee-tz"; + method = "smc"; + chip-number = <0x02>; + }; + }; + + tee { + #address-cells = <0x02>; + #size-cells = <0x02>; + reg = <0x00 0x18060000 0x00 0x20000>; + memory-region = <0x81>; + mbox-names = "bstn-mbox"; + chip-number = <0x01>; + }; + + ipc_arm0@0 { + #address-cells = <0x02>; + #size-cells = <0x02>; + compatible = "bst,arm0"; + reg = <0x04 0xfec00000 0x00 0x20 0x04 0x80000000 0x00 0x20000>; + memory-region = <0x7e>; + assigned-mem-size = <0x1000>; + mbox-names = "bstn-mbox"; + mboxes = <0xea 0x00>; + }; + + ipc_arm3@3 { + #address-cells = <0x02>; + #size-cells = <0x02>; + compatible = "bst,arm3"; + reg = <0x04 0xfec10000 0x00 0x20 0x04 0x80000000 0x00 0x20000>; + memory-region = <0x7e>; + assigned-mem-size = <0x1000>; + mbox-names = "bstn-mbox"; + mboxes = <0xea 0x03>; + }; + + ipc_arm2@2 { + #address-cells = <0x02>; + #size-cells = <0x02>; + compatible = "bst,arm2"; + reg = <0x04 0xfec10000 0x00 0x20 0x04 0x80000000 0x00 0x20000>; + memory-region = <0x7e>; + assigned-mem-size = <0x1000>; + mbox-names = "bstn-mbox"; + mboxes = <0xea 0x02>; + }; + + ipc_arm1@1 { + #address-cells = <0x02>; + #size-cells = <0x02>; + compatible = "bst,arm1"; + reg = <0x04 0xfec10000 0x00 0x20 0x04 0x80000000 0x00 0x20000>; + memory-region = <0x7e>; + assigned-mem-size = <0x1000>; + mbox-names = "bstn-mbox"; + mboxes = <0xea 0x01>; + }; + + ipc@0 { + #address-cells = <0x02>; + #size-cells = <0x02>; + compatible = "bst,ipc"; + reg = <0x04 0xfec00000 0x00 0x20 0x04 0x80000000 0x00 0x20000>; + memory-region = <0x7e>; + assigned-mem-size = <0x1000>; + mbox-names = "bstn-mbox"; + mboxes = <0xea 0x05>; + }; +}; diff --git a/configs/vms/linux-aarch64-a1000-smp8-fadb.dts b/configs/vms/linux-aarch64-a1000-smp8-fadb.dts new file mode 100644 index 00000000..287b9526 --- /dev/null +++ b/configs/vms/linux-aarch64-a1000-smp8-fadb.dts @@ -0,0 +1,3378 @@ +/dts-v1/; + +/memreserve/ 0x0000000018000000 0x0000000000100000; +/ { + compatible = "bst,a1000b"; + #address-cells = <0x02>; + #size-cells = <0x02>; + model = "BST A1000B FAD-B"; + + cpus { + #address-cells = <0x01>; + #size-cells = <0x00>; + + cpu@0 { + compatible = "arm,cortex-a55\0arm,armv8"; + device_type = "cpu"; + enable-method = "psci"; + next-level-cache = <0x03>; + reg = <0x00>; + cpu-idle-states = <0x04>; + phandle = <0x3b>; + }; + + cpu@1 { + compatible = "arm,cortex-a55\0arm,armv8"; + device_type = "cpu"; + enable-method = "psci"; + next-level-cache = <0x03>; + reg = <0x100>; + cpu-idle-states = <0x04>; + phandle = <0x3c>; + }; + + cpu@2 { + compatible = "arm,cortex-a55\0arm,armv8"; + device_type = "cpu"; + enable-method = "psci"; + next-level-cache = <0x03>; + reg = <0x200>; + cpu-idle-states = <0x04>; + phandle = <0x3d>; + }; + + cpu@3 { + compatible = "arm,cortex-a55\0arm,armv8"; + device_type = "cpu"; + enable-method = "psci"; + next-level-cache = <0x03>; + reg = <0x300>; + cpu-idle-states = <0x04>; + phandle = <0x3e>; + }; + + cpu@4 { + compatible = "arm,cortex-a55\0arm,armv8"; + device_type = "cpu"; + enable-method = "psci"; + next-level-cache = <0x03>; + reg = <0x400>; + cpu-idle-states = <0x04>; + phandle = <0x3f>; + }; + + cpu@5 { + compatible = "arm,cortex-a55\0arm,armv8"; + device_type = "cpu"; + enable-method = "psci"; + next-level-cache = <0x03>; + reg = <0x500>; + cpu-idle-states = <0x04>; + phandle = <0x40>; + }; + + cpu@6 { + compatible = "arm,cortex-a55\0arm,armv8"; + device_type = "cpu"; + enable-method = "psci"; + next-level-cache = <0x03>; + reg = <0x600>; + cpu-idle-states = <0x04>; + phandle = <0x41>; + }; + + cpu@7 { + compatible = "arm,cortex-a55\0arm,armv8"; + device_type = "cpu"; + enable-method = "psci"; + next-level-cache = <0x03>; + reg = <0x700>; + cpu-idle-states = <0x04>; + phandle = <0x42>; + }; + + l2-cache0 { + compatible = "cache"; + phandle = <0x03>; + }; + }; + + psci { + compatible = "arm,psci"; + method = "hvc"; + cpu_on = <0xc4000003>; + cpu_off = <0x84000002>; + cpu_suspend = <0xc4000001>; + }; + + misc_clk { + compatible = "fixed-clock"; + #clock-cells = <0x00>; + clock-frequency = <0x3d0900>; + phandle = <0x02>; + }; + + timer { + compatible = "arm,armv8-timer"; + interrupt-parent = <0x01>; + interrupts = <0x01 0x0d 0xff08 0x01 0x0e 0xff08 0x01 0x0b 0xff08 0x01 0x0a 0xff08>; + }; + + amba_apu@0 { + compatible = "simple-bus"; + #address-cells = <0x02>; + #size-cells = <0x01>; + ranges = <0x00 0x00 0x00 0x00 0xffffffff>; + + a1000bclkc@33002000 { + compatible = "bst,a1000b-clkc"; + osc-clk-frequency = <0x17d7840>; + rgmii0-rxclk-frequency = <0x7735940>; + rgmii1-rxclk-frequency = <0x7735940>; + ptp_clk-frequency = <0x7735940>; + #clock-cells = <0x01>; + reg = <0x00 0x33002000 0x1000 0x00 0x70035000 0x1000 0x00 0x20020000 0x1000 0x00 0x20021000 0x1000>; + phandle = <0x05>; + }; + + a1000rstc@0x3300217c { + compatible = "bst,a1000b-rstc"; + #reset-cells = <0x01>; + reg = <0x00 0x3300217c 0x04 0x00 0x33002180 0x04 0x00 0x70035008 0x04 0x00 0x20020000 0x04 0x00 0x20021000 0x04>; + phandle = <0x06>; + }; + + interrupt-controller@32000000 { + compatible = "arm,gic-400"; + #interrupt-cells = <0x03>; + interrupt-controller; + reg = <0x00 0x32001000 0x1000 0x00 0x32002000 0x2000 0x00 0x32004000 0x2000 0x00 0x32006000 0x2000>; + interrupt-parent = <0x01>; + interrupts = <0x01 0x09 0xff04>; + phandle = <0x01>; + }; + + a1000noc { + compatible = "bst,a1000-noc"; + echo-args = <0x01>; + noc-arg-num = <0x2a>; + noc-args = <0x3342000c 0x00 0x33420008 0x505 0x3342008c 0x00 0x33420088 0x505 0x3342010c 0x00 0x33420108 0x505 0x3342018c 0x00 0x33420188 0x505 0x3342020c 0x00 0x33420208 0x505 0x3342028c 0x00 0x33420288 0x505 0x3342030c 0x00 0x33420308 0x505 0x3342038c 0x00 0x33420388 0x303 0x3342040c 0x00 0x33420408 0x303 0x3342048c 0x00 0x33420488 0x303 0x3342050c 0x00 0x33420508 0x303 0x3342058c 0x00 0x33420588 0x303 0x3342060c 0x00 0x33420608 0x303 0x3342068c 0x00 0x33420688 0x303 0x3342070c 0x00 0x33420708 0x00 0x3342078c 0x00 0x33420788 0x707 0x3342080c 0x00 0x33420808 0x707 0x3342088c 0x00 0x33420888 0x707 0x3342090c 0x00 0x33420908 0x707 0x3340010c 0x00 0x33400108 0x505 0x3340018c 0x00 0x33400188 0x505>; + }; + + serial@20008000 { + status = "okay"; + compatible = "snps,dw-apb-uart"; + reg = <0x00 0x20008000 0x1000>; + interrupt-parent = <0x01>; + interrupts = <0x00 0xd5 0x04>; + clocks = <0x05 0x54 0x05 0x66>; + clock-names = "baudclk\0apb_pclk"; + resets = <0x06 0x1d>; + resets-names = "uart_reset"; + reg-shift = <0x02>; + reg-io-width = <0x04>; + pinctrl-names = "default"; + pinctrl-0 = <0x07>; + }; + + serial@2000a000 { + status = "okay"; + compatible = "snps,dw-apb-uart"; + reg = <0x00 0x2000a000 0x1000>; + interrupt-parent = <0x01>; + interrupts = <0x00 0xd6 0x04>; + clocks = <0x05 0x55 0x05 0x67>; + clock-names = "baudclk\0apb_pclk"; + resets = <0x06 0x17>; + resets-names = "uart_reset"; + reg-shift = <0x02>; + reg-io-width = <0x04>; + pinctrl-names = "default"; + pinctrl-0 = <0x08>; + }; + + serial@2000b000 { + status = "disable"; + compatible = "snps,dw-apb-uart"; + reg = <0x00 0x2000b000 0x1000>; + interrupt-parent = <0x01>; + interrupts = <0x00 0xd7 0x04>; + clocks = <0x05 0x70 0x05 0x7d>; + clock-names = "baudclk\0apb_pclk"; + resets = <0x06 0x29>; + resets-names = "uart_reset"; + reg-shift = <0x02>; + reg-io-width = <0x04>; + pinctrl-names = "default"; + pinctrl-0 = <0x09>; + }; + + serial@20009000 { + status = "okay"; + compatible = "snps,dw-apb-uart"; + reg = <0x00 0x20009000 0x1000>; + interrupt-parent = <0x01>; + interrupts = <0x00 0xd8 0x04>; + clocks = <0x05 0x6f 0x05 0x7e>; + clock-names = "baudclk\0apb_pclk"; + resets = <0x06 0x25>; + resets-names = "uart_reset"; + reg-shift = <0x02>; + reg-io-width = <0x04>; + pinctrl-names = "default"; + pinctrl-0 = <0x0a>; + }; + + dma-controller@33200000 { + status = "okay"; + compatible = "bst,dw-axi-gdma"; + reg = <0x00 0x33200000 0x1000>; + clocks = <0x05 0x2f 0x05 0x30>; + clock-names = "core-clk\0cfgr-clk"; + resets = <0x06 0x0c>; + reset-names = "gdma_reset"; + dma-channels = <0x08>; + snps,dma-masters = <0x01>; + snps,data-width = <0x04>; + snps,block-size = <0x1000 0x1000 0x1000 0x1000 0x1000 0x1000 0x1000 0x1000>; + snps,priority = <0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07>; + snps,axi-max-burst-len = <0x10>; + interrupt-parent = <0x01>; + interrupts = <0x00 0x90 0xff04 0x00 0x91 0xff04 0x00 0x92 0xff04 0x00 0x93 0xff04 0x00 0x94 0xff04 0x00 0x95 0xff04 0x00 0x96 0xff04 0x00 0x97 0xff04 0x00 0x98 0xff04>; + support-slave; + }; + + pcie-phy@30E02000 { + reg = <0x00 0x30e02000 0x1000>; + reg-names = "phy-base"; + dmc-lane = <0x01>; + dmc-mode = <0x02>; + pcie-ctl0 = <0x01>; + pcie-ctl1 = <0x01>; + phandle = <0x0b>; + }; + + pcie@30600000 { + status = "disable"; + compatible = "bst,dw-pcie-rc"; + device_type = "pci"; + controller-id = <0x00>; + bus-range = <0x00 0xff>; + linux,pci-domain = <0x00>; + reg = <0x00 0x30600000 0x10000 0x00 0x30700000 0x10000 0x00 0x30900000 0x40000 0x00 0x30980000 0x40000 0x00 0x40000000 0x40000>; + reg-names = "dbi\0dbi2\0atu\0dma\0config"; + num-iatu = <0x04>; + num-viewport = <0x04>; + #address-cells = <0x03>; + #size-cells = <0x02>; + ranges = <0x81000000 0x00 0x41000000 0x00 0x41000000 0x00 0x1000000 0x83000000 0x00 0x42000000 0x00 0x42000000 0x00 0x4000000>; + dma-ranges = <0x3000000 0x00 0x80000000 0x00 0x80000000 0x02 0x00>; + interrupt-parent = <0x01>; + interrupts = <0x00 0xc5 0x04 0x00 0xbf 0x04 0x00 0xc0 0x04 0x00 0xc1 0x04 0x00 0xc6 0x04>; + interrupt-names = "sys\0dma\0correctable\0uncorrectable\0other"; + #interrupt-cells = <0x01>; + interrupt-map-mask = <0x00 0x00 0x00 0x00>; + interrupt-map = <0x00 0x00 0x00 0x00 0x01 0x00 0xc5 0x04>; + pcie-phy = <0x0b>; + max-link-speed = <0x03>; + num-lanes = <0x02>; + }; + + pcie0_ep@30600000 { + status = "disable"; + compatible = "bst,dw-pcie-ep"; + device_type = "pci"; + controller-id = <0x00>; + bus-range = <0x00 0x04>; + reg = <0x00 0x30600000 0x40000 0x00 0x30700000 0x40000 0x00 0x30900000 0x40000 0x00 0x30980000 0x40000 0x00 0x40000000 0x100000>; + reg-names = "dbi\0dbi2\0atu\0dma\0addr_space"; + num-ib-windows = <0x06>; + num-ob-windows = <0x06>; + max-functions = [04]; + pcie-phy = <0x0b>; + interrupt-parent = <0x01>; + interrupts = <0x00 0xc5 0x04 0x00 0xbf 0x04 0x00 0xc0 0x04 0x00 0xc1 0x04 0x00 0xc6 0x04>; + interrupt-names = "sys\0dma\0correctable\0uncorrectable\0other"; + #interrupt-cells = <0x01>; + interrupt-map-mask = <0x00 0x00 0x00 0x00>; + interrupt-map = <0x00 0x00 0x00 0x00 0x01 0x00 0xc5 0x04>; + }; + + pcie@30a00000 { + status = "disable"; + compatible = "bst,dw-pcie-ep"; + device_type = "pci"; + controller-id = <0x01>; + bus-range = <0x00 0x04>; + reg = <0x00 0x30a00000 0x40000 0x00 0x30b00000 0x40000 0x00 0x30d00000 0x40000 0x00 0x30d80000 0x40000 0x00 0x48000000 0x1000000>; + reg-names = "dbi\0dbi2\0atu\0dma\0addr_space"; + num-ib-windows = <0x06>; + num-ob-windows = <0x06>; + max-functions = [04]; + pcie-phy = <0x0b>; + interrupt-parent = <0x01>; + interrupts = <0x00 0xc2 0x04 0x00 0xc3 0x04 0x00 0xc4 0x04 0x00 0xc7 0x04>; + interrupt-names = "dma\0correctable\0uncorrectable\0other"; + #interrupt-cells = <0x01>; + interrupt-map-mask = <0x00 0x00 0x00 0x00>; + interrupt-map = <0x00 0x00 0x00 0x00 0x01 0x00 0xc5 0x04>; + max-link-speed = <0x03>; + num-lanes = <0x02>; + picp-ctl = "dma"; + ob-memaddr-def = <0x0c>; + }; + + pcie_vnet@0 { + status = "disable"; + compatible = "bst,pcie-vnet"; + vnet-id = <0x00>; + dma-chan-num = <0x01>; + rx_queues = <0x01>; + tx_queues = <0x01>; + tx-fifo-depth = <0x100>; + rx-fifo-depth = <0x100>; + extend-op = <0x11>; + memory-region = <0x0c>; + }; + + pcie_vnet@1 { + status = "disable"; + compatible = "bst,pcie-vnet"; + vnet-id = <0x01>; + dma-chan-num = <0x01>; + rx_queues = <0x01>; + tx_queues = <0x01>; + tx-fifo-depth = <0x100>; + rx-fifo-depth = <0x100>; + }; + + + gpio@20010000 { + status = "okay"; + #address-cells = <0x01>; + #size-cells = <0x00>; + compatible = "snps,dw-apb-gpio"; + reg = <0x00 0x20010000 0x1000>; + clocks = <0x05 0x62>; + clock-names = "bus"; + resets = <0x06 0x1c>; + resets-names = "gpio0_reset"; + pinctrl-names = "default"; + pinctrl-0 = <0x15 0x16 0x17 0x18 0x19 0x1a 0x1b 0x1c>; + + gpio-controller@0 { + compatible = "snps,dw-apb-gpio-port"; + gpio-controller; + #gpio-cells = <0x02>; + snps,nr-gpios = <0x20>; + reg = <0x00>; + chipnum-base = <0x00>; + interrupt-controller; + #interrupt-cells = <0x03>; + interrupt-parent = <0x01>; + interrupts = <0x00 0xdf 0x04 0x00 0xe3 0x04 0x00 0xe4 0x04 0x00 0xe5 0x04 0x00 0xe6 0x04 0x00 0xe7 0x04 0x00 0xe8 0x04 0x00 0xe9 0x04 0x00 0xea 0x04>; + phandle = <0x20>; + }; + + gpio-controller@1 { + compatible = "snps,dw-apb-gpio-port"; + gpio-controller; + #gpio-cells = <0x02>; + snps,nr-gpios = <0x20>; + reg = <0x01>; + chipnum-base = <0x20>; + phandle = <0x4b>; + }; + + gpio-controller@2 { + compatible = "snps,dw-apb-gpio-port"; + gpio-controller; + #gpio-cells = <0x02>; + snps,nr-gpios = <0x20>; + reg = <0x02>; + chipnum-base = <0x40>; + phandle = <0x48>; + }; + + gpio-controller@3 { + compatible = "snps,dw-apb-gpio-port"; + gpio-controller; + #gpio-cells = <0x02>; + snps,nr-gpios = <0x20>; + reg = <0x03>; + chipnum-base = <0x60>; + phandle = <0x55>; + }; + }; + + gpio@20011000 { + status = "okay"; + #address-cells = <0x01>; + #size-cells = <0x00>; + compatible = "snps,dw-apb-gpio"; + reg = <0x00 0x20011000 0x1000>; + clocks = <0x05 0x82>; + clock-names = "bus"; + resets = <0x06 0x27>; + resets-names = "gpio1_reset"; + + gpio-controller@0 { + compatible = "snps,dw-apb-gpio-port"; + gpio-controller; + #gpio-cells = <0x02>; + snps,nr-gpios = <0x20>; + reg = <0x00>; + chipnum-base = <0x80>; + interrupt-controller; + #interrupt-cells = <0x03>; + interrupt-parent = <0x01>; + interrupts = <0x00 0xe0 0x04>; + }; + + gpio-controller@1 { + compatible = "snps,dw-apb-gpio-port"; + gpio-controller; + #gpio-cells = <0x02>; + snps,nr-gpios = <0x20>; + reg = <0x01>; + chipnum-base = <0xa0>; + }; + + gpio-controller@2 { + compatible = "snps,dw-apb-gpio-port"; + gpio-controller; + #gpio-cells = <0x02>; + snps,nr-gpios = <0x20>; + reg = <0x02>; + chipnum-base = <0xc0>; + }; + + gpio-controller@3 { + compatible = "snps,dw-apb-gpio-port"; + gpio-controller; + #gpio-cells = <0x02>; + snps,nr-gpios = <0x20>; + reg = <0x03>; + chipnum-base = <0xe0>; + phandle = <0x0d>; + }; + }; + + watchdog@2001a000 { + status = "disable"; + compatible = "snps,dw-wdt"; + reg = <0x00 0x2001a000 0x1000>; + interrupt-parent = <0x01>; + interrupts = <0x00 0x5d 0x04>; + clocks = <0x05 0x5a 0x05 0x64>; + clock-names = "wclk\0pclk"; + resets = <0x06 0x1f>; + resets-names = "wdt_reset"; + response-mode = <0x00>; + bst_wdt_name = "lsp_wdt0"; + }; + + watchdog@2001b000 { + status = "okay"; + compatible = "snps,dw-wdt"; + reg = <0x00 0x2001b000 0x1000>; + interrupt-parent = <0x01>; + interrupts = <0x00 0x5e 0x04>; + clocks = <0x05 0x5b 0x05 0x65>; + clock-names = "wclk\0pclk"; + resets = <0x06 0x20>; + resets-names = "wdt_reset"; + response-mode = <0x00>; + bst_wdt_name = "lsp_wdt1"; + }; + + watchdog@2001c000 { + status = "okay"; + compatible = "snps,dw-wdt"; + reg = <0x00 0x2001c000 0x1000>; + interrupt-parent = <0x01>; + interrupts = <0x00 0x5f 0x04>; + clocks = <0x05 0x74 0x05 0x7b>; + clock-names = "wclk\0pclk"; + resets = <0x06 0x2e>; + resets-names = "wdt_reset"; + response-mode = <0x00>; + bst_wdt_name = "lsp_wdt2"; + }; + + watchdog@2001d000 { + status = "okay"; + compatible = "snps,dw-wdt"; + reg = <0x00 0x2001d000 0x1000>; + interrupt-parent = <0x01>; + interrupts = <0x00 0x60 0x04>; + clocks = <0x05 0x75 0x05 0x7c>; + clock-names = "wclk\0pclk"; + resets = <0x06 0x2f>; + resets-names = "wdt_reset"; + response-mode = <0x00>; + bst_wdt_name = "lsp_wdt3"; + }; + + watchdog@32009000 { + status = "okay"; + compatible = "snps,dw-wdt"; + reg = <0x00 0x32009000 0x1000>; + interrupt-parent = <0x01>; + interrupts = <0x00 0x43 0x04>; + clocks = <0x05 0x01>; + clock-names = "wclk"; + response-mode = <0x01>; + bst_wdt_name = "a55_wdt0"; + }; + + watchdog@3200a000 { + status = "okay"; + compatible = "snps,dw-wdt"; + reg = <0x00 0x3200a000 0x1000>; + interrupt-parent = <0x01>; + interrupts = <0x00 0x44 0x04>; + clocks = <0x05 0x01>; + clock-names = "wclk"; + response-mode = <0x01>; + bst_wdt_name = "a55_wdt1"; + }; + + watchdog@3200b000 { + status = "okay"; + compatible = "snps,dw-wdt"; + reg = <0x00 0x3200b000 0x1000>; + interrupt-parent = <0x01>; + interrupts = <0x00 0x45 0x04>; + clocks = <0x05 0x01>; + clock-names = "wclk"; + response-mode = <0x01>; + bst_wdt_name = "a55_wdt2"; + }; + + watchdog@3200c000 { + status = "okay"; + compatible = "snps,dw-wdt"; + reg = <0x00 0x3200c000 0x1000>; + interrupt-parent = <0x01>; + interrupts = <0x00 0x46 0x04>; + clocks = <0x05 0x01>; + clock-names = "wclk"; + response-mode = <0x01>; + bst_wdt_name = "a55_wdt3"; + }; + + watchdog@3200d000 { + status = "okay"; + compatible = "snps,dw-wdt"; + reg = <0x00 0x3200d000 0x1000>; + interrupt-parent = <0x01>; + interrupts = <0x00 0x47 0x04>; + clocks = <0x05 0x01>; + clock-names = "wclk"; + response-mode = <0x01>; + bst_wdt_name = "a55_wdt4"; + }; + + watchdog@3200e000 { + status = "okay"; + compatible = "snps,dw-wdt"; + reg = <0x00 0x3200e000 0x1000>; + interrupt-parent = <0x01>; + interrupts = <0x00 0x48 0x04>; + clocks = <0x05 0x01>; + clock-names = "wclk"; + response-mode = <0x01>; + bst_wdt_name = "a55_wdt5"; + }; + + watchdog@3200f000 { + status = "okay"; + compatible = "snps,dw-wdt"; + reg = <0x00 0x3200f000 0x1000>; + interrupt-parent = <0x01>; + interrupts = <0x00 0x49 0x04>; + clocks = <0x05 0x01>; + clock-names = "wclk"; + response-mode = <0x01>; + bst_wdt_name = "a55_wdt6"; + }; + + watchdog@32010000 { + status = "okay"; + compatible = "snps,dw-wdt"; + reg = <0x00 0x32010000 0x1000>; + interrupt-parent = <0x01>; + interrupts = <0x00 0x4a 0x04>; + clocks = <0x05 0x01>; + clock-names = "wclk"; + response-mode = <0x01>; + bst_wdt_name = "a55_wdt7"; + }; + + i2c@20000000 { + status = "okay"; + #address-cells = <0x01>; + #size-cells = <0x01>; + compatible = "snps,designware-i2c"; + reg = <0x00 0x20000000 0x1000>; + interrupt-parent = <0x01>; + interrupts = <0x00 0xcf 0x04>; + clock-frequency = <0x186a0>; + i2c-sda-hold-time-ns = <0x12c>; + i2c-sda-falling-time-ns = <0x12c>; + i2c-scl-falling-time-ns = <0x12c>; + clocks = <0x05 0x4b 0x05 0x49>; + clock-names = "LSP0_PCLK\0LSP0_WCLK"; + resets = <0x06 0x18>; + reset-names = "i2c0_reset"; + pinctrl-names = "default"; + pinctrl-0 = <0x1d>; + }; + + i2c@20001000 { + status = "okay"; + #address-cells = <0x01>; + #size-cells = <0x01>; + compatible = "snps,designware-i2c"; + reg = <0x00 0x20001000 0x1000>; + interrupt-parent = <0x01>; + interrupts = <0x00 0xd0 0x04>; + clock-frequency = <0xf4240>; + i2c-sda-hold-time-ns = <0x12c>; + i2c-sda-falling-time-ns = <0x12c>; + i2c-scl-falling-time-ns = <0x12c>; + clocks = <0x05 0x4b 0x05 0x49>; + clock-names = "LSP0_PCLK\0LSP0_WCLK"; + resets = <0x06 0x19>; + reset-names = "i2c1_reset"; + pinctrl-names = "default"; + pinctrl-0 = <0x1e>; + }; + + i2c@20002000 { + status = "okay"; + #address-cells = <0x01>; + #size-cells = <0x00>; + compatible = "snps,designware-i2c"; + reg = <0x00 0x20002000 0x1000>; + interrupt-parent = <0x01>; + interrupts = <0x00 0xd1 0x04>; + clock-frequency = <0x186a0>; + i2c-sda-hold-time-ns = <0x12c>; + i2c-sda-falling-time-ns = <0x12c>; + i2c-scl-falling-time-ns = <0x12c>; + clocks = <0x05 0x4b 0x05 0x49>; + clock-names = "LSP0_PCLK\0LSP0_WCLK"; + resets = <0x06 0x1a>; + reset-names = "i2c2_reset"; + pinctrl-names = "default"; + pinctrl-0 = <0x1f>; + + max96712@2a { + compatible = "bst,maxim-deser-hub"; + type = "max96712"; + ctl-mode = "fad-lis"; + reg = <0x2a>; + i2c-port = <0x01>; + csi2-port = <0x01>; + lane-speed = <0x960>; + regs = <0x40>; + data-type = <0x2d>; + trigger-mode = <0x01>; + trigger-fps = <0x14>; + trigger-rx-gpio = <0x02>; + trigger-tx-gpio = <0x08>; + maxim,hsync-invert = <0x00>; + maxim,vsync-invert = <0x00>; + maxim,linkrx-rate = <0x06 0x06 0x06 0x06>; + maxim,link-mode = "GMSL2"; + pdb-gpio = <0x20 0x14 0x00>; + #address-cells = <0x01>; + #size-cells = <0x00>; + + csi-link { + + ports { + + port@0 { + clock-lanes = <0x00>; + data-lanes = <0x01 0x02 0x03 0x04>; + + endpoint { + remote-endpoint = <0x21>; + phandle = <0x72>; + }; + }; + }; + }; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + reg = <0x00>; + + endpoint@0 { + remote-endpoint = <0x22>; + phandle = <0x2e>; + }; + }; + + port@1 { + reg = <0x01>; + + endpoint@1 { + remote-endpoint = <0x23>; + phandle = <0x2f>; + }; + }; + + port@2 { + reg = <0x02>; + + endpoint@2 { + remote-endpoint = <0x24>; + phandle = <0x30>; + }; + }; + + port@3 { + reg = <0x03>; + + endpoint@3 { + remote-endpoint = <0x25>; + phandle = <0x31>; + }; + }; + }; + }; + + max96712@6b { + compatible = "bst,maxim-deser-hub"; + type = "max96712"; + ctl-mode = "fad-ctl"; + reg = <0x6b>; + i2c-port = <0x00>; + csi2-port = <0x00>; + lane-speed = <0x640>; + regs = <0x44>; + data-type = <0x1e>; + trigger-mode = <0x01>; + trigger-fps = <0x1e>; + trigger-rx-gpio = <0x01>; + maxim,hsync-invert = <0x00>; + maxim,vsync-invert = <0x00>; + maxim,linkrx-rate = <0x03 0x03 0x03 0x03>; + maxim,link-mode = "GMSL2"; + pdb-gpio = <0x20 0x15 0x00>; + #address-cells = <0x01>; + #size-cells = <0x00>; + + csi-link { + + ports { + + port@0 { + clock-lanes = <0x00>; + data-lanes = <0x01 0x02 0x03 0x04>; + + endpoint { + remote-endpoint = <0x26>; + phandle = <0x77>; + }; + }; + }; + }; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + reg = <0x00>; + + endpoint@0 { + remote-endpoint = <0x27>; + phandle = <0x32>; + }; + }; + + port@1 { + reg = <0x01>; + + endpoint@1 { + remote-endpoint = <0x28>; + phandle = <0x33>; + }; + }; + + port@2 { + reg = <0x02>; + + endpoint@2 { + remote-endpoint = <0x29>; + phandle = <0x34>; + }; + }; + + port@3 { + reg = <0x03>; + + endpoint@3 { + remote-endpoint = <0x2a>; + phandle = <0x35>; + }; + }; + }; + }; + + max96712@29 { + compatible = "bst,maxim-deser-hub"; + type = "max96712"; + ctl-mode = "fad-lis"; + reg = <0x29>; + i2c-port = <0x01>; + csi2-port = <0x01>; + lane-speed = <0x960>; + regs = <0x40>; + data-type = <0x2d>; + trigger-mode = <0x01>; + trigger-fps = <0x14>; + trigger-rx-gpio = <0x02>; + trigger-tx-gpio = <0x08>; + maxim,hsync-invert = <0x00>; + maxim,vsync-invert = <0x00>; + maxim,linkrx-rate = <0x06 0x06 0x06 0x06>; + maxim,link-mode = "GMSL2"; + pdb-gpio = <0x20 0x17 0x00>; + #address-cells = <0x01>; + #size-cells = <0x00>; + + csi-link { + + ports { + + port@0 { + clock-lanes = <0x00>; + data-lanes = <0x01 0x02>; + + endpoint { + remote-endpoint = <0x2b>; + phandle = <0x7c>; + }; + }; + }; + }; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + reg = <0x00>; + + endpoint@0 { + remote-endpoint = <0x2c>; + phandle = <0x36>; + }; + }; + + port@1 { + reg = <0x01>; + + endpoint@1 { + remote-endpoint = <0x2d>; + phandle = <0x37>; + }; + }; + }; + }; + + camera@70 { + reg = <0x70>; + ser-alias-id = <0x60>; + sensor-alias-id = <0x70>; + compatible = "bst,jk_ox08b"; + sensor-id = <0x36>; + data-type = <0x2d>; + fv-polarity_low = <0x00>; + fpd3-mode = "csi-2"; + serializer = "max9295"; + algo-bin = "ox08b/Ox08B40_raw14_hk_h120_AlgoParam.bin"; + iq-bin = "ox08b/Ox08B40_raw14_hk_h120_IqParam.bin"; + hdr-stagger-en = <0x01>; + exp-num = <0x01>; + pwl-format = <0x0f>; + dvp-data-type = <0x2d>; + vin-data-type = <0x2d>; + size = <0xf00 0x876>; + dvp-dummy = <0xaaa0>; + view0-fmt = <0x01>; + view0-size = <0x500 0x2d0>; + view1-fmt = <0x01>; + view1-size = <0xf00 0x870>; + pdns-mode = <0x00>; + pdns-input-view = <0x00>; + hblank = <0x00>; + input-crop = <0x00 0xf00 0x02 0x872>; + clock-frequency = <0x18>; + sensor-fps = <0x1e>; + maxim,rx_rate = <0x06>; + trigger-gpio = <0x01>; + trigger-tx-gpio = <0x08>; + serializer-id = <0x42>; + maxim,link-mode = "GMSL2"; + + port { + + endpoint@0 { + remote-endpoint = <0x2e>; + phandle = <0x22>; + }; + }; + }; + + camera71 { + status = "disabled"; + reg = <0x71>; + ser-alias-id = <0x61>; + sensor-alias-id = <0x71>; + compatible = "bst,jk_ox08b"; + sensor-id = <0x36>; + data-type = <0x2d>; + fv-polarity_low = <0x00>; + fpd3-mode = "csi-2"; + serializer = "max9295"; + algo-bin = "ox08b/Ox08B40_raw14_hk_h120_AlgoParam.bin"; + iq-bin = "ox08b/Ox08B40_raw14_hk_h120_IqParam.bin"; + hdr-stagger-en = <0x01>; + exp-num = <0x01>; + pwl-format = <0x0f>; + dvp-data-type = <0x2d>; + vin-data-type = <0x2d>; + size = <0xf00 0x876>; + dvp-dummy = <0xaaa0>; + view0-fmt = <0x01>; + view0-size = <0x500 0x2d0>; + view1-fmt = <0x01>; + view1-size = <0xf00 0x870>; + pdns-mode = <0x00>; + pdns-input-view = <0x00>; + hblank = <0x00>; + input-crop = <0x00 0xf00 0x02 0x872>; + clock-frequency = <0x18>; + sensor-fps = <0x1e>; + maxim,rx_rate = <0x06>; + trigger-gpio = <0x01>; + trigger-tx-gpio = <0x08>; + serializer-id = <0x42>; + maxim,link-mode = "GMSL2"; + + port { + + endpoint@0 { + remote-endpoint = <0x2f>; + phandle = <0x23>; + }; + }; + }; + + camera@72 { + status = "disabled"; + reg = <0x72>; + ser-alias-id = <0x62>; + sensor-alias-id = <0x72>; + compatible = "bst,jk_ox08b"; + sensor-id = <0x36>; + data-type = <0x2d>; + fv-polarity_low = <0x00>; + fpd3-mode = "csi-2"; + serializer = "max9295"; + algo-bin = "ox08b/Ox08B40_raw14_hk_h120_AlgoParam.bin"; + iq-bin = "ox08b/Ox08B40_raw14_hk_h120_IqParam.bin"; + hdr-stagger-en = <0x01>; + exp-num = <0x01>; + pwl-format = <0x0f>; + dvp-data-type = <0x2d>; + vin-data-type = <0x2d>; + size = <0xf00 0x876>; + dvp-dummy = <0xaaa0>; + view0-fmt = <0x01>; + view0-size = <0x500 0x2d0>; + view1-fmt = <0x01>; + view1-size = <0xf00 0x870>; + pdns-mode = <0x00>; + pdns-input-view = <0x00>; + hblank = <0x00>; + input-crop = <0x00 0xf00 0x02 0x872>; + clock-frequency = <0x18>; + sensor-fps = <0x1e>; + maxim,rx_rate = <0x06>; + trigger-gpio = <0x01>; + trigger-tx-gpio = <0x08>; + serializer-id = <0x42>; + maxim,link-mode = "GMSL2"; + + port { + + endpoint@0 { + remote-endpoint = <0x30>; + phandle = <0x24>; + }; + }; + }; + + camera@73 { + status = "disabled"; + reg = <0x73>; + ser-alias-id = <0x63>; + sensor-alias-id = <0x73>; + compatible = "bst,jk_ox08b"; + sensor-id = <0x36>; + data-type = <0x2d>; + fv-polarity_low = <0x00>; + fpd3-mode = "csi-2"; + serializer = "max9295"; + algo-bin = "ox08b/Ox08B40_raw14_hk_h120_AlgoParam.bin"; + iq-bin = "ox08b/Ox08B40_raw14_hk_h120_IqParam.bin"; + hdr-stagger-en = <0x01>; + exp-num = <0x01>; + pwl-format = <0x0f>; + dvp-data-type = <0x2d>; + vin-data-type = <0x2d>; + size = <0xf00 0x876>; + dvp-dummy = <0xaaa0>; + view0-fmt = <0x01>; + view0-size = <0x500 0x2d0>; + view1-fmt = <0x01>; + view1-size = <0xf00 0x870>; + pdns-mode = <0x00>; + pdns-input-view = <0x00>; + hblank = <0x00>; + input-crop = <0x00 0xf00 0x02 0x872>; + clock-frequency = <0x18>; + sensor-fps = <0x1e>; + maxim,rx_rate = <0x06>; + trigger-gpio = <0x01>; + trigger-tx-gpio = <0x08>; + serializer-id = <0x42>; + maxim,link-mode = "GMSL2"; + + port { + + endpoint@0 { + remote-endpoint = <0x31>; + phandle = <0x25>; + }; + }; + }; + + camera@54 { + reg = <0x54>; + ser-alias-id = <0x64>; + sensor-alias-id = <0x54>; + compatible = "bst,ofilm_ox3c"; + sensor-id = <0x36>; + data-type = <0x2d>; + fv-polarity-low = <0x00>; + fpd3-mode = "csi-2"; + serializer = "max96717f"; + algo-bin = "ox3c/0X03C10_raw14_OF_h100_AlgoParam.bin"; + iq-bin = "ox3c/0X03C10_raw14_OF_h100_IqParam.bin"; + hdr-stagger-en = <0x01>; + exp-num = <0x01>; + pwl-format = <0x0f>; + dvp-data-type = <0x2d>; + vin-data-type = <0x2d>; + size = <0x780 0x506>; + dvp-dummy = <0xabcd>; + view0-fmt = <0x01>; + view0-size = <0x500 0x2d0>; + view1-fmt = <0x01>; + view1-size = <0x780 0x438>; + pdns-mode = <0x00>; + pdns-input-view = <0x00>; + hblank = <0x00>; + input-crop = <0x00 0x780 0x64 0x49c>; + sensor-fps = <0x1e>; + trigger-gpio = <0x00>; + trigger-tx-gpio = <0x00>; + maxim,rx_rate = <0x03>; + serializer-id = <0x42>; + maxim,link-mode = "GMSL2"; + + port { + + endpoint@0 { + remote-endpoint = <0x32>; + phandle = <0x27>; + }; + }; + }; + + camera@55 { + reg = <0x55>; + ser-alias-id = <0x65>; + sensor-alias-id = <0x55>; + compatible = "bst,ofilm_ox3c"; + sensor-id = <0x36>; + data-type = <0x2d>; + fv-polarity-low = <0x00>; + fpd3-mode = "csi-2"; + serializer = "max96717f"; + algo-bin = "ox3c/0X03C10_raw14_OF_h100_AlgoParam.bin"; + iq-bin = "ox3c/0X03C10_raw14_OF_h100_IqParam.bin"; + hdr-stagger-en = <0x01>; + exp-num = <0x01>; + pwl-format = <0x0f>; + dvp-data-type = <0x2d>; + vin-data-type = <0x2d>; + size = <0x780 0x506>; + dvp-dummy = <0xabcd>; + view0-fmt = <0x01>; + view0-size = <0x500 0x2d0>; + view1-fmt = <0x01>; + view1-size = <0x780 0x438>; + pdns-mode = <0x00>; + pdns-input-view = <0x00>; + hblank = <0x00>; + input-crop = <0x00 0x780 0x64 0x49c>; + sensor-fps = <0x1e>; + trigger-gpio = <0x00>; + trigger-tx-gpio = <0x00>; + maxim,rx_rate = <0x03>; + serializer-id = <0x42>; + maxim,link-mode = "GMSL2"; + + port { + + endpoint@0 { + remote-endpoint = <0x33>; + phandle = <0x28>; + }; + }; + }; + + camera@56 { + reg = <0x56>; + ser-alias-id = <0x66>; + sensor-alias-id = <0x56>; + compatible = "bst,ofilm_ox3c"; + sensor-id = <0x36>; + data-type = <0x2d>; + fv-polarity-low = <0x00>; + fpd3-mode = "csi-2"; + serializer = "max96717f"; + algo-bin = "ox3c/0X03C10_raw14_OF_h100_AlgoParam.bin"; + iq-bin = "ox3c/0X03C10_raw14_OF_h100_IqParam.bin"; + hdr-stagger-en = <0x01>; + exp-num = <0x01>; + pwl-format = <0x0f>; + dvp-data-type = <0x2d>; + vin-data-type = <0x2d>; + size = <0x780 0x506>; + dvp-dummy = <0xabcd>; + view0-fmt = <0x01>; + view0-size = <0x500 0x2d0>; + view1-fmt = <0x01>; + view1-size = <0x780 0x438>; + pdns-mode = <0x00>; + pdns-input-view = <0x00>; + hblank = <0x00>; + input-crop = <0x00 0x780 0x64 0x49c>; + sensor-fps = <0x1e>; + trigger-gpio = <0x00>; + trigger-tx-gpio = <0x00>; + maxim,rx_rate = <0x03>; + serializer-id = <0x42>; + maxim,link-mode = "GMSL2"; + + port { + + endpoint@0 { + remote-endpoint = <0x34>; + phandle = <0x29>; + }; + }; + }; + + camera@57 { + reg = <0x57>; + ser-alias-id = <0x67>; + sensor-alias-id = <0x57>; + compatible = "bst,ofilm_ox3c"; + sensor-id = <0x36>; + data-type = <0x2d>; + fv-polarity-low = <0x00>; + fpd3-mode = "csi-2"; + serializer = "max96717f"; + algo-bin = "ox3c/0X03C10_raw14_OF_h100_AlgoParam.bin"; + iq-bin = "ox3c/0X03C10_raw14_OF_h100_IqParam.bin"; + hdr-stagger-en = <0x01>; + exp-num = <0x01>; + pwl-format = <0x0f>; + dvp-data-type = <0x2d>; + vin-data-type = <0x2d>; + size = <0x780 0x506>; + dvp-dummy = <0xabcd>; + view0-fmt = <0x01>; + view0-size = <0x500 0x2d0>; + view1-fmt = <0x01>; + view1-size = <0x780 0x438>; + pdns-mode = <0x00>; + pdns-input-view = <0x00>; + hblank = <0x00>; + input-crop = <0x00 0x780 0x64 0x49c>; + sensor-fps = <0x1e>; + trigger-gpio = <0x00>; + trigger-tx-gpio = <0x00>; + maxim,rx_rate = <0x03>; + serializer-id = <0x42>; + maxim,link-mode = "GMSL2"; + + port { + + endpoint@0 { + remote-endpoint = <0x35>; + phandle = <0x2a>; + }; + }; + }; + + camera@58 { + reg = <0x58>; + ser-alias-id = <0x48>; + sensor-alias-id = <0x58>; + compatible = "bst,jk_ox08b"; + sensor-id = <0x36>; + data-type = <0x2d>; + fv-polarity_low = <0x00>; + fpd3-mode = "csi-2"; + serializer = "max9295"; + algo-bin = "ox08b/Ox08B40_raw14_hk_h120_AlgoParam.bin"; + iq-bin = "ox08b/Ox08B40_raw14_hk_h120_IqParam.bin"; + hdr-stagger-en = <0x01>; + exp-num = <0x01>; + pwl-format = <0x0f>; + dvp-data-type = <0x2d>; + vin-data-type = <0x2d>; + size = <0xf00 0x876>; + dvp-dummy = <0xaaa0>; + view0-fmt = <0x01>; + view0-size = <0x500 0x2d0>; + view1-fmt = <0x01>; + view1-size = <0xf00 0x870>; + pdns-mode = <0x00>; + pdns-input-view = <0x00>; + hblank = <0x00>; + input-crop = <0x00 0xf00 0x02 0x872>; + clock-frequency = <0x18>; + sensor-fps = <0x1e>; + maxim,rx_rate = <0x06>; + trigger-gpio = <0x01>; + trigger-tx-gpio = <0x08>; + serializer-id = <0x42>; + maxim,link-mode = "GMSL2"; + + port { + + endpoint@0 { + remote-endpoint = <0x36>; + phandle = <0x2c>; + }; + }; + }; + + camera@59 { + status = "disabled"; + reg = <0x59>; + ser-alias-id = <0x49>; + sensor-alias-id = <0x59>; + compatible = "bst,jk_ox08b"; + sensor-id = <0x36>; + data-type = <0x2d>; + fv-polarity_low = <0x00>; + fpd3-mode = "csi-2"; + serializer = "max9295"; + algo-bin = "ox08b/Ox08B40_raw14_hk_h120_AlgoParam.bin"; + iq-bin = "ox08b/Ox08B40_raw14_hk_h120_IqParam.bin"; + hdr-stagger-en = <0x01>; + exp-num = <0x01>; + pwl-format = <0x0f>; + dvp-data-type = <0x2d>; + vin-data-type = <0x2d>; + size = <0xf00 0x876>; + dvp-dummy = <0xaaa0>; + view0-fmt = <0x01>; + view0-size = <0x500 0x2d0>; + view1-fmt = <0x01>; + view1-size = <0xf00 0x870>; + pdns-mode = <0x00>; + pdns-input-view = <0x00>; + hblank = <0x00>; + input-crop = <0x00 0xf00 0x02 0x872>; + clock-frequency = <0x18>; + sensor-fps = <0x1e>; + maxim,rx_rate = <0x06>; + trigger-gpio = <0x01>; + trigger-tx-gpio = <0x08>; + serializer-id = <0x42>; + maxim,link-mode = "GMSL2"; + + port { + + endpoint@0 { + remote-endpoint = <0x37>; + phandle = <0x2d>; + }; + }; + }; + }; + + i2c@20003000 { + status = "okay"; + #address-cells = <0x01>; + #size-cells = <0x01>; + compatible = "snps,designware-i2c"; + reg = <0x00 0x20003000 0x1000>; + interrupt-parent = <0x01>; + interrupts = <0x00 0xd2 0x04>; + clock-frequency = <0x186a0>; + i2c-sda-hold-time-ns = <0x12c>; + i2c-sda-falling-time-ns = <0x12c>; + i2c-scl-falling-time-ns = <0x12c>; + clocks = <0x05 0x4c 0x05 0x4a>; + clock-names = "LSP1_PCLK\0LSP1_WCLK"; + resets = <0x06 0x2c>; + reset-names = "i2c3_reset"; + pinctrl-names = "default"; + pinctrl-0 = <0x38>; + }; + + i2c@20004000 { + status = "okay"; + #address-cells = <0x01>; + #size-cells = <0x00>; + compatible = "snps,designware-i2c"; + reg = <0x00 0x20004000 0x1000>; + interrupt-parent = <0x01>; + interrupts = <0x00 0xd3 0x04>; + clock-frequency = <0x186a0>; + i2c-sda-hold-time-ns = <0x12c>; + i2c-sda-falling-time-ns = <0x12c>; + i2c-scl-falling-time-ns = <0x12c>; + clocks = <0x05 0x4c 0x05 0x4a>; + clock-names = "LSP1_PCLK\0LSP1_WCLK"; + resets = <0x06 0x2d>; + reset-names = "i2c4_reset"; + pinctrl-names = "default"; + pinctrl-0 = <0x39>; + + eeprom@56 { + compatible = "atmel,24c02"; + reg = <0x56>; + pagesize = <0x10>; + }; + + lt9211@2d { + compatible = "bst,lt9211"; + reg = <0x2d>; + }; + }; + + i2c@20005000 { + status = "okay"; + #address-cells = <0x01>; + #size-cells = <0x01>; + compatible = "snps,designware-i2c"; + reg = <0x00 0x20005000 0x1000>; + interrupt-parent = <0x01>; + interrupts = <0x00 0xd4 0x04>; + clock-frequency = <0x186a0>; + i2c-sda-hold-time-ns = <0x12c>; + i2c-sda-falling-time-ns = <0x12c>; + i2c-scl-falling-time-ns = <0x12c>; + clocks = <0x05 0x4c 0x05 0x4a>; + clock-names = "LSP1_PCLK\0LSP1_WCLK"; + resets = <0x06 0x26>; + reset-names = "i2c5_reset"; + pinctrl-names = "default"; + pinctrl-0 = <0x3a>; + }; + + ddr_ecc { + status = "okay"; + compatible = "bst,a1000_ddr_ecc"; + reg = <0x00 0x38000000 0x1400 0x00 0x3c000000 0x1400 0x00 0x33000000 0x140>; + reg-names = "ddr0\0ddr1\0a55_ctrl"; + interrupt-parent = <0x01>; + interrupts = <0x00 0x8b 0x04 0x00 0x8d 0x04>; + interrupt-names = "ddr0_ecc_irq\0ddr1_ecc_irq"; + mbox-names = "bstn-mbox"; + }; + + arm_pmu { + status = "okay"; + compatible = "arm,armv8-pmuv3"; + interrupt-parent = <0x01>; + interrupts = <0x00 0x38 0xff04 0x00 0x39 0xff04 0x00 0x3a 0xff04 0x00 0x3b 0xff04 0x00 0x3c 0xff04 0x00 0x3d 0xff04 0x00 0x3e 0xff04 0x00 0x3f 0xff04>; + interrupt-affinity = <0x3b 0x3c 0x3d 0x3e 0x3f 0x40 0x41 0x42>; + }; + + noc_pmu@0x32702000 { + status = "okay"; + compatible = "bst,bst_noc_pmu"; + reg = <0x00 0x32702000 0x1000 0x00 0x32703000 0x1000 0x00 0x32704000 0x2000 0x00 0x32708000 0x1000 0x00 0x33402000 0x2400 0x00 0x33422000 0x4400 0x00 0x33401100 0x10 0x00 0x33421480 0x10>; + reg-names = "coresight_cpunoc_etf\0coresight_etr\0coresight_funnel\0coresight_corenoc_etf\0cpu_port_set\0core_port_set\0cpunoc_atb\0corenoc_atb"; + memory-region = <0x43>; + }; + + lsp0_pwm0@20012000 { + status = "disable"; + compatible = "snps,bst-pwm"; + clocks = <0x05 0x56 0x05 0x6b>; + clock-names = "wclk\0pclk"; + clock-frequency = <0x17d7840>; + reg = <0x00 0x20012000 0x14 0x00 0x200120b0 0x04>; + reg-names = "base\0top"; + pwm-ch = <0x01>; + pinctrl-names = "default"; + pinctrl-0 = <0x44>; + }; + + lsp0_pwm1@20012014 { + status = "disable"; + compatible = "snps,bst-pwm"; + clocks = <0x05 0x57 0x05 0x6b>; + clock-names = "wclk\0pclk"; + clock-frequency = <0x17d7840>; + reg = <0x00 0x20012014 0x14 0x00 0x200120b4 0x04>; + reg-names = "base\0top"; + pwm-ch = <0x01>; + pinctrl-names = "default"; + pinctrl-0 = <0x45>; + }; + + lsp1_pwm0@20013000 { + status = "disable"; + compatible = "snps,bst-pwm"; + clocks = <0x05 0x71 0x05 0x7a>; + clock-names = "wclk\0pclk"; + clock-frequency = <0x17d7840>; + reg = <0x00 0x20013000 0x14 0x00 0x200130b0 0x04>; + reg-names = "base\0top"; + pwm-ch = <0x01>; + pinctrl-names = "default"; + pinctrl-0 = <0x46>; + }; + + lsp1_pwm1@20013014 { + status = "disable"; + compatible = "snps,bst-pwm"; + clocks = <0x05 0x72 0x05 0x7a>; + clock-names = "wclk\0pclk"; + clock-frequency = <0x17d7840>; + reg = <0x00 0x20013014 0x14 0x00 0x200130b4 0x04>; + reg-names = "base\0top"; + pwm-ch = <0x01>; + pinctrl-names = "default"; + pinctrl-0 = <0x47>; + }; + + a55_timer0@32008000 { + status = "disable"; + compatible = "snps,dw-apb-timer"; + clock-frequency = <0x14dc9380>; + interrupt-parent = <0x01>; + interrupts = <0x00 0x4b 0x04>; + reg = <0x00 0x32008000 0x14>; + }; + + a55_timer1@32008014 { + status = "disable"; + compatible = "snps,dw-apb-timer"; + clock-frequency = <0x14dc9380>; + interrupt-parent = <0x01>; + interrupts = <0x00 0x4c 0x04>; + reg = <0x00 0x32008014 0x14>; + }; + + a55_timer2@32008028 { + status = "disable"; + compatible = "snps,dw-apb-timer"; + clock-frequency = <0x14dc9380>; + interrupt-parent = <0x01>; + interrupts = <0x00 0x4d 0x04>; + reg = <0x00 0x32008028 0x14>; + }; + + a55_timer3@3200803c { + status = "disable"; + compatible = "snps,dw-apb-timer"; + clock-frequency = <0x14dc9380>; + interrupt-parent = <0x01>; + interrupts = <0x00 0x4e 0x04>; + reg = <0x00 0x3200803c 0x14>; + }; + + a55_timer4@32008050 { + status = "disable"; + compatible = "snps,dw-apb-timer"; + clock-frequency = <0x14dc9380>; + interrupt-parent = <0x01>; + interrupts = <0x00 0x4f 0x04>; + reg = <0x00 0x32008050 0x14>; + }; + + a55_timer5@32008064 { + status = "disable"; + compatible = "snps,dw-apb-timer"; + clock-frequency = <0x14dc9380>; + interrupt-parent = <0x01>; + interrupts = <0x00 0x50 0x04>; + reg = <0x00 0x32008064 0x14>; + }; + + a55_timer6@32008078 { + status = "disable"; + compatible = "snps,dw-apb-timer"; + clock-frequency = <0x14dc9380>; + interrupt-parent = <0x01>; + interrupts = <0x00 0x51 0x04>; + reg = <0x00 0x32008078 0x14>; + }; + + a55_timer7@3200808c { + status = "disable"; + compatible = "snps,dw-apb-timer"; + clock-frequency = <0x14dc9380>; + interrupt-parent = <0x01>; + interrupts = <0x00 0x52 0x04>; + reg = <0x00 0x3200808c 0x14>; + }; + + spi@2000c000 { + status = "disable"; + compatible = "snps,dw-apb-ssi"; + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x00 0x2000c000 0x800>; + interrupt-parent = <0x01>; + interrupts = <0x00 0xdb 0x04>; + clocks = <0x05 0x58 0x05 0x68>; + clock-names = "spi_wclk\0spi_pclk"; + num-cs = <0x01>; + bus-num = <0x00>; + cs-gpios = <0x48 0x02 0x00>; + pinctrl-names = "default"; + pinctrl-0 = <0x49>; + }; + + spi@2000d000 { + status = "disable"; + compatible = "snps,dw-apb-ssi"; + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x00 0x2000d000 0x800>; + interrupt-parent = <0x01>; + interrupts = <0x00 0xdc 0x04>; + clocks = <0x05 0x73 0x05 0x80>; + clock-names = "spi_wclk\0spi_pclk"; + num-cs = <0x01>; + bus-num = <0x01>; + cs-gpios = <0x48 0x06 0x00>; + pinctrl-names = "default"; + pinctrl-0 = <0x4a>; + }; + + spi@2000c800 { + status = "disable"; + compatible = "snps,dw-apb-ssi"; + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x00 0x2000c800 0x800>; + interrupt-parent = <0x01>; + interrupts = <0x00 0xf4 0x04>; + clocks = <0x05 0x58 0x05 0x68>; + clock-names = "spi_wclk\0spi_pclk"; + num-cs = <0x01>; + bus-num = <0x02>; + cs-gpios = <0x4b 0x08 0x00>; + pinctrl-names = "default"; + pinctrl-0 = <0x4c 0x4d>; + }; + + spi@2000d800 { + status = "disable"; + compatible = "snps,dw-apb-ssi"; + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x00 0x2000d800 0x800>; + interrupt-parent = <0x01>; + interrupts = <0x00 0xf5 0x04>; + clocks = <0x05 0x73 0x05 0x80>; + clock-names = "spi_wclk\0spi_pclk"; + num-cs = <0x01>; + bus-num = <0x03>; + cs-gpios = <0x4b 0x10 0x00>; + pinctrl-names = "default"; + pinctrl-0 = <0x4e 0x4f>; + }; + + spi@20022000 { + status = "okay"; + compatible = "snps,dw-apb-ssi"; + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x00 0x20022000 0x800>; + interrupt-parent = <0x01>; + interrupts = <0x00 0xe2 0x04>; + clocks = <0x05 0x58 0x05 0x68>; + clock-names = "spi_wclk\0spi_pclk"; + num-cs = <0x01>; + bus-num = <0x04>; + cs-gpios = <0x48 0x02 0x00>; + pinctrl-names = "default"; + pinctrl-0 = <0x50>; + spi-slave; + + slave@0 { + compatible = "rohm,dh2228fv"; + reg = <0x00>; + spi-max-frequency = <0x989680>; + }; + }; + + spi@20023000 { + status = "disable"; + compatible = "snps,dw-apb-ssi"; + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x00 0x20023000 0x800>; + interrupt-parent = <0x01>; + interrupts = <0x00 0xe1 0x04>; + clocks = <0x05 0x73 0x05 0x80>; + clock-names = "spi_wclk\0spi_pclk"; + num-cs = <0x01>; + bus-num = <0x05>; + cs-gpios = <0x48 0x06 0x00>; + pinctrl-names = "default"; + pinctrl-0 = <0x51>; + }; + + i2s-play@2000e000 { + status = "disable"; + compatible = "snps,designware-i2s"; + reg = <0x00 0x2000e000 0x1000>; + interrupt-names = "play_irq"; + interrupt-parent = <0x01>; + interrupts = <0x00 0xdd 0x04>; + clocks = <0x05 0x61 0x05 0x59>; + clock-names = "i2spclk\0i2sclk"; + play; + channel = <0x02>; + #sound-dai-cells = <0x00>; + pinctrl-names = "default"; + pinctrl-0 = <0x52>; + }; + + i2s-rec@2000f000 { + status = "disable"; + compatible = "snps,designware-i2s"; + reg = <0x00 0x2000f000 0x1000>; + interrupt-names = "record_irq"; + interrupt-parent = <0x01>; + interrupts = <0x00 0xde 0x04>; + clocks = <0x02>; + record; + channel = <0x02>; + #sound-dai-cells = <0x00>; + pinctrl-names = "default"; + pinctrl-0 = <0x53>; + }; + + qspi@00000000 { + status = "okay"; + compatible = "snps,dwc-ssi-1.01a"; + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x00 0x00 0x4000000>; + interrupt-parent = <0x01>; + interrupts = <0x00 0xd9 0x04>; + clocks = <0x05 0x4d 0x05 0x4e>; + clock-names = "hclk\0wclk"; + work-mode = <0x01>; + reg-io-width = <0x04>; + bst,use-gpio-cs; + spi-rx-bus-width = <0x04>; + spi-tx-bus-width = <0x04>; + cs-gpios = <0x48 0x15 0x00>; + num-cs = <0x01>; + bus-num = <0x06>; + pinctrl-names = "default"; + pinctrl-0 = <0x54>; + + qspi0-nor0@0 { + #address-cells = <0x01>; + #size-cells = <0x01>; + spi-rx-bus-width = <0x01>; + spi-tx-bus-width = <0x01>; + compatible = "jedec,spi-nor"; + status = "okay"; + spi-max-frequency = <0xf4240>; + reg = <0x00>; + mode = <0x00>; + powerctl-fad-gpios = <0x20 0x1c 0x00>; + + partition@0 { + reg = <0x00 0x1e00000>; + label = "nor0_part0"; + }; + + partition@1e00000 { + reg = <0x1e00000 0x200000>; + label = "nor0_part1"; + }; + }; + }; + + qspi@14000000 { + status = "disable"; + compatible = "snps,dwc-ssi-1.01a"; + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x00 0x14000000 0x4000000>; + interrupt-parent = <0x01>; + interrupts = <0x00 0xda 0x04>; + clocks = <0x05 0x4f 0x05 0x50>; + clock-names = "hclk\0wclk"; + work-mode = <0x01>; + reg-io-width = <0x04>; + bst,use-gpio-cs; + spi-rx-bus-width = <0x04>; + spi-tx-bus-width = <0x04>; + cs-gpios = <0x55 0x01 0x00>; + num-cs = <0x01>; + bus-num = <0x07>; + pinctrl-names = "default"; + pinctrl-0 = <0x56>; + }; + + stmmac-axi-config { + snps,wr_osr_lmt = <0x0f>; + snps,rd_osr_lmt = <0x0f>; + snps,axi_fb; + snps,blen = <0x04 0x08 0x10 0x00 0x00 0x00 0x00>; + phandle = <0x57>; + }; + + rx-queues-config { + snps,rx-queues-to-use = <0x04>; + snps,rx-sched-sp; + phandle = <0x58>; + + queue0 { + snps,dcb-algorithm; + snps,map-to-dma-channel = <0x00>; + snps,priority = <0x00>; + }; + + queue1 { + snps,dcb-algorithm; + snps,map-to-dma-channel = <0x01>; + snps,priority = <0x01>; + }; + + queue2 { + snps,dcb-algorithm; + snps,map-to-dma-channel = <0x02>; + snps,priority = <0x02>; + }; + + queue3 { + snps,dcb-algorithm; + snps,map-to-dma-channel = <0x03>; + snps,priority = <0x03>; + }; + }; + + tx-queues-config { + snps,tx-queues-to-use = <0x04>; + snps,tx-sched-wrr; + phandle = <0x59>; + + queue0 { + snps,weight = <0x10>; + snps,dcb-algorithm; + snps,priority = <0x00>; + }; + + queue1 { + snps,weight = <0x10>; + snps,dcb-algorithm; + snps,priority = <0x01>; + }; + + queue2 { + snps,weight = <0x10>; + snps,dcb-algorithm; + snps,priority = <0x02>; + }; + + queue3 { + snps,weight = <0x10>; + snps,dcb-algorithm; + snps,priority = <0x03>; + }; + }; + + thermal@70039000 { + status = "okay"; + compatible = "bst,bst-thermal"; + reg = <0x00 0x70039000 0x1000>; + #thermal-sensor-cells = <0x00>; + phandle = <0x62>; + }; + + ethernet@30000000 { + status = "okay"; + compatible = "bst,dw-eqos-eth"; + reg = <0x00 0x30000000 0x100000>; + interrupt-parent = <0x01>; + interrupts = <0x00 0x9f 0xff04 0x00 0xa0 0xff04 0x00 0xa1 0xff04 0x00 0xa2 0xff04 0x00 0xa3 0xff04 0x00 0xa4 0xff04 0x00 0xa5 0xff04 0x00 0xa6 0xff04 0x00 0xa7 0xff04 0x00 0xa8 0xff04 0x00 0xa9 0xff04 0x00 0xaa 0xff04>; + interrupt-names = "sbd_irq\0sfty_ce_irq\0sfty_ue_irq\0tx_chan0_irq\0tx_chan1_irq\0tx_chan2_irq\0tx_chan3_irq\0rx_chan0_irq\0rx_chan1_irq\0rx_chan2_irq\0rx_chan3_irq\0eth_lpi"; + ethernet-id = <0x00>; + mac-address = [00 00 00 00 00 00]; + max-frame-size = <0xed8>; + phy-mode = "rgmii"; + snps,multicast-filter-bins = <0x100>; + snps,perfect-filter-entries = <0x80>; + rx-fifo-depth = <0x4000>; + tx-fifo-depth = <0x4000>; + clocks = <0x05 0x0f 0x05 0x13 0x05 0x15 0x05 0x11>; + clock-names = "wclk\0axim_aclk\0pclk\0ptp_ref"; + bst,fix-safety = <0x00>; + bst,dma_int_mode = <0x01>; + snps,fixed-burst; + snps,force_sf_dma_mode; + snps,ps-speed = <0x3e8>; + snps,axi-config = <0x57>; + snps,mtl-rx-config = <0x58>; + snps,mtl-tx-config = <0x59>; + label = "gmac0"; + resets = <0x06 0x11>; + reset-names = "bstgmaceth"; + eth-name = "gmac0"; + eth-number = <0x00>; + mac-mode = "rgmii"; + extend-op = <0x03>; + pinctrl-names = "default"; + pinctrl-0 = <0x5a>; + + fixed-link { + speed = <0x3e8>; + full-duplex; + }; + }; + + ethernet@30100000 { + status = "disable"; + compatible = "bst,dw-eqos-eth"; + reg = <0x00 0x30100000 0x100000>; + interrupt-parent = <0x01>; + interrupts = <0x00 0xab 0xff04 0x00 0xac 0xff04 0x00 0xad 0xff04 0x00 0xae 0xff04 0x00 0xaf 0xff04 0x00 0xb0 0xff04 0x00 0xb1 0xff04 0x00 0xb2 0xff04 0x00 0xb3 0xff04 0x00 0xb4 0xff04 0x00 0xb5 0xff04 0x00 0xb6 0xff04>; + interrupt-names = "sbd_irq\0sfty_ce_irq\0sfty_ue_irq\0tx_chan0_irq\0tx_chan1_irq\0tx_chan2_irq\0tx_chan3_irq\0rx_chan0_irq\0rx_chan1_irq\0rx_chan2_irq\0rx_chan3_irq\0eth_lpi"; + ethernet-id = <0x01>; + mac-address = [00 00 00 00 00 00]; + max-frame-size = <0xed8>; + phy-mode = "rgmii"; + snps,multicast-filter-bins = <0x100>; + snps,perfect-filter-entries = <0x80>; + rx-fifo-depth = <0x4000>; + tx-fifo-depth = <0x4000>; + clocks = <0x05 0x10 0x05 0x14 0x05 0x16 0x05 0x12>; + clock-names = "wclk\0axim_aclk\0pclk\0ptp_ref"; + bst,fix-safety = <0x00>; + bst,dma_int_mode = <0x01>; + snps,fixed-burst; + snps,force_sf_dma_mode; + snps,ps-speed = <0x3e8>; + snps,axi-config = <0x57>; + snps,mtl-rx-config = <0x58>; + snps,mtl-tx-config = <0x59>; + label = "gmac1"; + resets = <0x06 0x12>; + reset-names = "bstgmaceth"; + pinctrl-names = "default"; + pinctrl-0 = <0x5b>; + extend-op = <0x03>; + eth-name = "gmac1"; + eth-number = <0x01>; + mac-mode = "rgmii"; + phy-handle = <0x5c>; + + mdio { + compatible = "snps,dwmac-mdio"; + #address-cells = <0x01>; + #size-cells = <0x00>; + + eth_phy1@1 { + compatible = "marvell,88Q2122\0ethernet-phy-id002B.0983\0ethernet-phy-ieee802.3-c45"; + device_type = "ethernet-phy"; + max-speed = <0x3e8>; + reg = <0x01>; + reset-gpios = <0x20 0x09 0x01>; + reset-active-low; + reset-assert-us = <0x4e20>; + reset-deassert-us = <0x4e20>; + phandle = <0x5c>; + }; + }; + }; + + phy@30E01000 { + compatible = "bst,dwc-usb-phy"; + #phy-cells = <0x00>; + reg = <0x00 0x30e01000 0x1000>; + usb_mode = "usb20"; + phandle = <0x5f>; + }; + + phy@30E00000 { + compatible = "bst,dwc-usb-phy"; + reg = <0x00 0x30e00000 0x1000>; + #phy-cells = <0x00>; + usb_mode = "usb30"; + pll_type = "internal"; + phandle = <0x5d>; + }; + + usb3 { + compatible = "bst,dwc3usb"; + status = "okay"; + ranges; + #address-cells = <0x02>; + #size-cells = <0x01>; + clock-names = "suspend\0ref\0axi\0apb"; + clocks = <0x05 0x17 0x05 0x18 0x05 0x19 0x05 0x1a>; + resets = <0x06 0x04>; + reset-names = "usb3_reset"; + phys = <0x5d>; + phy-names = "usb-phy"; + pll_type = "internal"; + powerctl-gpios = <0x20 0x0e 0x00>; + pinctrl-names = "default"; + pinctrl-0 = <0x5e>; + + dwc3@30200000 { + compatible = "snps,dwc3"; + reg-shift = <0x02>; + reg-io-width = <0x04>; + reg = <0x00 0x30200000 0x100000>; + interrupts = <0x00 0xc8 0x04>; + interrupt-parent = <0x01>; + dr_mode = "host"; + snps,dis_u3_susphy_quirk; + }; + }; + + usb2 { + compatible = "bst,dwc3usb"; + status = "okay"; + ranges; + #address-cells = <0x02>; + #size-cells = <0x01>; + clock-names = "ahb\0ref\0apb"; + clocks = <0x05 0x1b 0x05 0x1d 0x05 0x1c>; + reset-names = "usb2_reset"; + resets = <0x06 0x05>; + phys = <0x5f>; + phy-names = "usb-phy"; + pll_type = "internal"; + + dwc3@30300000 { + status = "okay"; + compatible = "snps,dwc3"; + reg = <0x00 0x30300000 0x100000>; + interrupts = <0x00 0xc9 0x04>; + interrupt-parent = <0x01>; + dr_mode = "peripheral"; + snps,incr-burst-type-adjustment = <0x01 0x04 0x08 0x10>; + snps,reqinfo-for-data-read = <0x08>; + snps,reqinfo-for-descriptor-read = <0x08>; + }; + }; + + dwmmc0@30400000 { + status = "okay"; + compatible = "bst,dwcmshc-sdhci"; + clocks = <0x05 0x1f 0x05 0x1e>; + clock-names = "core\0bus"; + reg = <0x00 0x30400000 0x1000>; + interrupt-parent = <0x01>; + interrupts = <0x00 0xb9 0x04>; + interrupt-names = "IRQDWMMC0"; + #address-cells = <0x01>; + #size-cells = <0x00>; + data-addr = <0x200>; + fifo-watermark-aligned; + clock-frequency = <0x2faf080>; + max-frequency = <0xbebc200>; + min-frequency = <0x61a80>; + broken-64bit-dma; + clear-tarns-mode; + fifo-depth = <0x400>; + card-detect-delay = <0xc8>; + bus-width = <0x08>; + cap-mmc-highspeed; + non-removable; + no-sdio; + no-sd; + keep-power-in-suspend; + no-3-3-v; + sdhci,auto-cmd12; + pinctrl-names = "default"; + pinctrl-0 = <0x60>; + }; + + dwmmc1@30500000 { + status = "okay"; + compatible = "bst,dwcmshc-sdhci"; + clocks = <0x05 0x21 0x05 0x20>; + clock-names = "core\0bus"; + reg = <0x00 0x30500000 0x1000>; + interrupt-parent = <0x01>; + interrupts = <0x00 0xbd 0x04>; + interrupt-names = "IRQDWMMC1"; + #address-cells = <0x01>; + #size-cells = <0x00>; + data-addr = <0x200>; + fifo-watermark-aligned; + clock-frequency = <0x5f5e100>; + max-frequency = <0xbebc200>; + min-frequency = <0x61a80>; + broken-64bit-dma; + clear-tarns-mode; + fifo-depth = <0x400>; + card-detect-delay = <0xc8>; + bus-width = <0x04>; + cap-sd-highspeed; + sd-uhs-sdr12; + sd-uhs-sdr25; + sd-uhs-sdr50; + no-sdio; + no-mmc; + sdhci,auto-cmd12; + keep-power-in-suspend; + pinctrl-names = "default"; + pinctrl-0 = <0x61>; + }; + + gpu@33300000 { + status = "okay"; + compatible = "arm,mali-450\0arm,mali-utgard"; + reg = <0x00 0x33300000 0x30000>; + interrupt-parent = <0x01>; + interrupts = <0x00 0x81 0x04 0x00 0x82 0x04 0x00 0x83 0x04 0x00 0x84 0x04 0x00 0x85 0x04 0x00 0x86 0x04 0x00 0x87 0x04 0x00 0x88 0x04>; + interrupt-names = "IRQPP0\0IRQPPMMU0\0IRQPP1\0IRQPPMMU1\0IRQGP\0IRQGPMMU\0IRQPMU\0IRQPP"; + clocks = <0x05 0x31 0x05 0x32>; + clock-names = "clk_mali\0clk_mali_apb"; + resets = <0x06 0x0b>; + reset-names = "gpu_reset"; + ppcores = <0x02>; + dedicated_mem_start = <0x00>; + dedicated_mem_size = <0x00>; + }; + + mali-v500@0x55000000 { + status = "okay"; + compatible = "arm,mali-v500"; + reg = <0x00 0x55000000 0xffff>; + interrupt-parent = <0x01>; + interrupts = <0x00 0x9a 0x04>; + interrupt-names = "IRQV500"; + resets = <0x06 0x00>; + reset-names = "codec_reset"; + clocks = <0x05 0x3d>; + clock-names = "clk_v500"; + }; + }; + + cooling_dev { + + pwm { + cpumask = <0x0f>; + capacitance = <0x5dc>; + #cooling-cells = <0x02>; + phandle = <0x64>; + }; + }; + + thermal-zones { + + cpu-thermal { + polling-delay-passive = <0x1f4>; + polling-delay = <0x3e8>; + thermal-sensors = <0x62>; + + trips { + + switch_trip { + temperature = <0x15f90>; + hysteresis = <0x7d0>; + type = "passive"; + phandle = <0x63>; + }; + + critical_trip { + temperature = <0x1e848>; + hysteresis = <0x00>; + type = "critical"; + }; + }; + + cooling-maps { + + map0 { + trip = <0x63>; + cooling-device = <0x64 0x00 0x01>; + }; + }; + }; + }; + + pinctrl@70038000 { + status = "okay"; + compatible = "bst,pinctrl-a1000b"; + #address-cells = <0x02>; + #size-cells = <0x02>; + reg = <0x00 0x70038000 0x00 0x1000 0x00 0x33001000 0x00 0x1000>; + reg-names = "aon\0top"; + #gpio-cells = <0x02>; + + spi0_pinctrl { + phandle = <0x49>; + + mux { + pins = "spi0_miso\0spi0_mosi\0spi0_sclk"; + function = "spi0"; + }; + }; + + spi1_pinctrl { + phandle = <0x4a>; + + mux { + pins = "spi1_miso\0spi1_mosi\0spi1_sclk"; + function = "spi1"; + }; + }; + + spi2_pinctrl { + phandle = <0x4c>; + + mux { + pins = "uart0_cts\0uart1_cts\0uart1_rts"; + function = "spi2"; + }; + }; + + spi2_cs_pinctrl { + phandle = <0x4d>; + + mux { + pins = "uart0_rts"; + function = "gpio"; + }; + }; + + spi3_pinctrl { + phandle = <0x4e>; + + mux { + pins = "uart2_cts\0uart3_cts\0uart3_rts"; + function = "spi3"; + }; + }; + + spi3_cs_pinctrl { + phandle = <0x4f>; + + mux { + pins = "uart2_rts"; + function = "gpio"; + }; + }; + + spi4_pinctrl { + phandle = <0x50>; + + mux { + pins = "spi0_miso\0spi0_mosi\0spi0_sclk\0spi0_cs"; + function = "spi0_s"; + }; + }; + + spi5_pinctrl { + phandle = <0x51>; + + mux { + pins = "spi1_miso\0spi1_mosi\0spi1_sclk"; + function = "spi1_s"; + }; + }; + + i2c0_pinctrl { + phandle = <0x1d>; + + mux { + pins = "i2c0_scl\0i2c0_sda"; + function = "i2c0"; + }; + }; + + i2c1_pinctrl { + phandle = <0x1e>; + + mux { + pins = "i2c1_scl\0i2c1_sda"; + function = "i2c1"; + }; + }; + + i2c2_pinctrl { + phandle = <0x1f>; + + mux { + pins = "i2c2_scl\0i2c2_sda"; + function = "i2c2"; + }; + }; + + i2c3_pinctrl { + phandle = <0x38>; + + mux { + pins = "i2c3_scl\0i2c3_sda"; + function = "i2c3"; + }; + }; + + i2c4_pinctrl { + phandle = <0x39>; + + mux { + pins = "i2c4_scl\0i2c4_sda"; + function = "i2c4"; + }; + }; + + i2c5_pinctrl { + phandle = <0x3a>; + + mux { + pins = "i2c5_scl\0i2c5_sda"; + function = "i2c5"; + }; + }; + + uart0_pinctrl { + phandle = <0x07>; + + mux { + pins = "uart0_txd\0uart0_rxd"; + function = "uart0"; + }; + }; + + uart1_pinctrl { + phandle = <0x08>; + + mux { + pins = "uart1_txd\0uart1_rxd"; + function = "uart1"; + }; + }; + + uart2_pinctrl { + phandle = <0x09>; + + mux { + pins = "uart2_txd\0uart2_rxd"; + function = "uart2"; + }; + }; + + uart3_pinctrl { + phandle = <0x0a>; + + mux { + pins = "uart3_txd\0uart3_rxd"; + function = "uart3"; + }; + }; + + gpio0_pinctrl { + + mux { + pins = "gpio_29"; + function = "gpio"; + }; + }; + + gpio_special_func_pinctrl { + + mux { + pins = "gpio_24\0gpio_29\0debug4\0debug5\0uart0_cts\0uart0_rts"; + function = "gpio"; + }; + }; + + qspi0_pinctrl { + phandle = <0x54>; + + mux { + pins = "qspi0_cs0"; + function = "gpio"; + }; + }; + + usb3_pinctrl { + phandle = <0x5e>; + + mux { + pins = "gpio_14"; + function = "gpio"; + }; + }; + + qspi1_pinctrl { + phandle = <0x56>; + + mux { + pins = "qspi1_cs1"; + function = "gpio"; + }; + }; + + des_960_1_pinctrl { + + mux { + pins = "qspi1_io1"; + function = "gpio"; + }; + }; + + des_960_2_pinctrl { + + mux { + pins = "qspi1_io3"; + function = "gpio"; + }; + }; + + des_960_3_pinctrl { + + mux { + pins = "qspi1_io5"; + function = "gpio"; + }; + }; + + bist_pinctrl { + + mux { + pins = "spi1_mosi"; + function = "bist"; + }; + }; + + + + i2s0_pinctrl { + phandle = <0x52>; + + mux { + pins = "i2s0_ck\0i2s0_mck\0i2s0_sd_out\0i2s0_ws\0qspi0_io4"; + function = "i2s0"; + }; + }; + + i2s1_pinctrl { + phandle = <0x53>; + + mux { + pins = "i2s1_ck\0i2s1_sd_in\0i2s1_ws"; + function = "i2s1"; + }; + }; + + isp_pinctrl { + phandle = <0x67>; + + mux { + pins = "isp_fsync0\0isp_fsync1\0isp_fsync2\0isp_fsync3"; + function = "isp"; + }; + }; + + ptp_pinctrl { + + mux { + pins = "ptp_pps0\0ptp_pps1\0ptp_clk"; + function = "ptp"; + }; + }; + + ptp_pinconfig { + + config { + pins = "ptp_clk"; + drive-strength = <0x02>; + input-enable; + }; + }; + + err_rpt_l0_pinctrl { + + mux { + pins = "err_rpt_l0_n\0err_rpt_l0_p"; + function = "err_rpt_l0"; + }; + }; + + err_rpt_gpio_l0_pinctrl { + + mux { + pins = "err_rpt_l0_n\0err_rpt_l0_p"; + function = "gpio"; + }; + }; + + err_rpt_l1_pinctrl { + + mux { + pins = "err_rpt_l1_n\0err_rpt_l1_p"; + function = "err_rpt_l1"; + }; + }; + + pwm_lsp0_pwm0_pinctrl { + phandle = <0x44>; + + mux { + pins = "pwm0"; + function = "pwm"; + }; + }; + + pwm_lsp0_pwm1_pinctrl { + phandle = <0x45>; + + mux { + pins = "pwm1"; + function = "pwm"; + }; + }; + + pwm_lsp1_pwm0_pinctrl { + phandle = <0x46>; + + mux { + pins = "pwm2"; + function = "pwm"; + }; + }; + + pwm_lsp1_pwm1_pinctrl { + phandle = <0x47>; + + mux { + pins = "pwm3"; + function = "pwm"; + }; + }; + + ts_pinctrl { + + mux { + pins = "ts_trig_in00\0ts_trig_in01\0ts_trig_in10\0ts_trig_in11"; + function = "ts"; + }; + }; + + sdemmc0_pinctrl { + phandle = <0x15>; + + mux { + pins = "sdemmc0_clk\0sdemmc0_cmd\0sdemmc0_dat0\0sdemmc0_dat1\0sdemmc0_dat2\0sdemmc0_dat3\0sdemmc0_dat4\0sdemmc0_dat5\0sdemmc0_dat6\0sdemmc0_dat7\0sdemmc0_rstb\0sdemmc0_cdn\0sdemmc0_wp"; + function = "sdemmc0"; + }; + }; + + sdemmc0_pinconfig { + phandle = <0x60>; + + config { + pins = "sdemmc0_clk\0sdemmc0_cmd\0sdemmc0_dat0\0sdemmc0_dat1\0sdemmc0_dat2\0sdemmc0_dat3\0sdemmc0_dat4\0sdemmc0_dat5\0sdemmc0_dat6\0sdemmc0_dat7\0sdemmc0_rstb\0sdemmc0_cdn\0sdemmc0_wp"; + drive-strength = <0x02>; + input-enable; + }; + }; + + sdemmc1_pinctrl { + phandle = <0x16>; + + mux { + pins = "sdemmc1_clk\0sdemmc1_cmd\0sdemmc1_dat0\0sdemmc1_dat1\0sdemmc1_dat2\0sdemmc1_dat3\0sdemmc1_dat4\0sdemmc1_dat5\0sdemmc1_dat6\0sdemmc1_dat7\0sdemmc1_rstb\0sdemmc1_cdn\0sdemmc1_wp"; + function = "sdemmc1"; + }; + }; + + sdemmc1_pinconfig { + phandle = <0x61>; + + config { + pins = "sdemmc1_clk\0sdemmc1_cmd\0sdemmc1_dat0\0sdemmc1_dat1\0sdemmc1_dat2\0sdemmc1_dat3\0sdemmc1_dat4\0sdemmc1_dat5\0sdemmc1_dat6\0sdemmc1_dat7\0sdemmc1_rstb\0sdemmc1_cdn\0sdemmc1_wp"; + drive-strength = <0x0f>; + input-enable; + }; + }; + + debug_pinctrl { + phandle = <0x17>; + + mux { + pins = "debug0\0debug1\0debug2\0debug3\0debug4\0debug5\0debug6\0debug7"; + function = "debug"; + }; + }; + + strap_pinctrl { + + mux { + pins = "gpio_24\0gpio_25\0gpio_26\0gpio_27\0gpio_28\0gpio_29\0spi1_sclk\0i2s0_mck\0i2s0_ck\0gpio_107\0gpio_108"; + function = "strap"; + }; + }; + + vout_pinctrl { + phandle = <0x18>; + + mux { + pins = "vout_r0\0vout_r1\0vout_r2\0vout_r3\0vout_r4\0vout_r5\0vout_r6\0vout_r7\0vout_g0\0vout_g1\0vout_g2\0vout_g3\0vout_g4\0vout_g5\0vout_g6\0vout_g7\0vout_b0\0vout_b1\0vout_b2\0vout_b3\0vout_b4\0vout_b5\0vout_b6\0vout_b7\0vout_hs\0vout_vs\0vout_de\0vout_pclk\0vout_pdb"; + function = "vout"; + }; + }; + + vout_pinconfig { + + config { + pins = "vout_r0\0vout_r1\0vout_r2\0vout_r3\0vout_r4\0vout_r5\0vout_r6\0vout_r7\0vout_g0\0vout_g1\0vout_g2\0vout_g3\0vout_g4\0vout_g5\0vout_g6\0vout_g7\0vout_b0\0vout_b1\0vout_b2\0vout_b3\0vout_b4\0vout_b5\0vout_b6\0vout_b7\0vout_hs\0vout_vs\0vout_de\0vout_pclk\0vout_pdb"; + drive-strength = <0x02>; + input-enable; + }; + }; + + vin_pinctrl { + phandle = <0x19>; + + mux { + pins = "vin_b0\0vin_b1\0vin_b2\0vin_b3\0vin_b4\0vin_de\0vin_g0\0vin_g1\0vin_g2\0vin_g3\0vin_g4\0vin_g5\0vin_hs\0vin_llc\0vin_r0\0vin_r1\0vin_r2\0vin_r3\0vin_r4\0vin_vs"; + function = "vin"; + }; + }; + + vin_pinconfig { + + config { + pins = "vin_b0\0vin_b1\0vin_b2\0vin_b3\0vin_b4\0vin_de\0vin_g0\0vin_g1\0vin_g2\0vin_g3\0vin_g4\0vin_g5\0vin_hs\0vin_llc\0vin_r0\0vin_r1\0vin_r2\0vin_r3\0vin_r4\0vin_vs"; + drive-strength = <0x02>; + input-enable; + }; + }; + + rgmii0_pinctrl { + phandle = <0x5a>; + + mux { + pins = "rgmii0_txd0\0rgmii0_txd1\0rgmii0_txd2\0rgmii0_txd3\0gmii0_txd4\0gmii0_txd5\0gmii0_txd6\0gmii0_txd7\0gmii0_txer\0rgmii0_txctrl\0mii0_txclk\0rgmii0_gtxclk\0rgmii0_rxd0\0rgmii0_rxd1\0rgmii0_rxd2\0rgmii0_rxd3\0gmii0_rxd4\0gmii0_rxd5\0gmii0_rxd6\0gmii0_rxd7\0gmii0_rxer\0rgmii0_rxctrl\0rgmii0_rxclk\0rgmii0_mdio\0rgmii0_mdc\0rgmii0_intr"; + function = "rgmii0"; + }; + }; + + rgmii0_pinconfig { + + config { + pins = "rgmii0_gtxclk\0rgmii0_mdc\0rgmii0_mdio\0rgmii0_rxclk\0rgmii0_rxctrl\0rgmii0_rxd0\0rgmii0_rxd1\0rgmii0_rxd2\0rgmii0_rxd3\0rgmii0_txctrl\0rgmii0_txd0\0rgmii0_txd1\0rgmii0_txd2\0rgmii0_txd3"; + drive-strength = <0x02>; + input-enable; + }; + }; + + rgmii1_pinctrl { + phandle = <0x5b>; + + mux { + pins = "rgmii1_txd0\0rgmii1_txd1\0rgmii1_txd2\0rgmii1_txd3\0mii1_rxer\0mii1_txclk\0rgmii1_txctrl\0rgmii1_gtxclk\0rgmii1_rxd0\0rgmii1_rxd1\0rgmii1_rxd2\0rgmii1_rxd3\0rgmii1_rxctrl\0rgmii1_rxclk\0rgmii1_mdc\0rgmii1_mdio\0rgmii1_intr"; + function = "rgmii1"; + }; + }; + + rgmii1_pinconfig { + + config { + pins = "rgmii1_gtxclk\0rgmii1_mdc\0rgmii1_mdio\0rgmii1_rxclk\0rgmii1_rxctrl\0rgmii1_rxd0\0rgmii1_rxd1\0rgmii1_rxd2\0rgmii1_rxd3\0rgmii1_txctrl\0rgmii1_txd0\0rgmii1_txd1\0rgmii1_txd2\0rgmii1_txd3"; + drive-strength = <0x02>; + input-enable; + }; + }; + + gmii0_pinconfig { + + config { + pins = "gmii0_rxd4\0gmii0_rxd5\0gmii0_rxd6\0gmii0_rxd7\0gmii0_rxer\0gmii0_txd4\0gmii0_txd5\0gmii0_txd6\0gmii0_txd7\0gmii0_txer"; + drive-strength = <0x02>; + input-enable; + }; + }; + + ssd_pinctrl { + phandle = <0x1a>; + + mux { + pins = "sdemmc0_led_ctl\0sdemmc1_led_ctl\0gpio_26\0gpio_27"; + function = "gpio"; + }; + }; + + gnss_pinctrl { + phandle = <0x1b>; + + mux { + pins = "gpio_31\0gpio_12\0pwm1"; + function = "gpio"; + }; + }; + + fan_pinctrl { + phandle = <0x1c>; + + mux { + pins = "gpio_27\0gpio_28"; + function = "gpio"; + }; + }; + + + }; + + isp { + #address-cells = <0x02>; + #size-cells = <0x02>; + compatible = "bst,a1000b-isp"; + memory-region = <0x65 0x66>; + assigned-mem-size = <0x1000>; + mbox-names = "bstn-mbox"; + mboxes = <0xea 0x06>; + isp-fw-fbuf-addr = <0xa2000000>; + isp-fw-fbuf-size = <0x10000000>; + dma-coherent; + pinctrl-names = "default"; + pinctrl-0 = <0x67>; + + core@0 { + id = <0x00>; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + reg = <0x00>; + + endpoint@0 { + remote-endpoint = <0x68>; + phandle = <0x73>; + }; + }; + + port@1 { + reg = <0x01>; + + endpoint@1 { + remote-endpoint = <0x69>; + phandle = <0x74>; + }; + }; + + port@2 { + reg = <0x02>; + + endpoint@2 { + remote-endpoint = <0x6a>; + phandle = <0x75>; + }; + }; + + port@3 { + reg = <0x03>; + + endpoint@3 { + remote-endpoint = <0x6b>; + phandle = <0x76>; + }; + }; + }; + }; + + core@1 { + id = <0x01>; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + reg = <0x00>; + + endpoint@4 { + remote-endpoint = <0x6c>; + phandle = <0x78>; + }; + }; + + port@1 { + reg = <0x01>; + + endpoint@5 { + remote-endpoint = <0x6d>; + phandle = <0x79>; + }; + }; + + port@2 { + reg = <0x02>; + + endpoint@6 { + remote-endpoint = <0x6e>; + phandle = <0x7a>; + }; + }; + + port@3 { + reg = <0x03>; + + endpoint@7 { + remote-endpoint = <0x6f>; + phandle = <0x7b>; + }; + }; + }; + }; + + core@2 { + id = <0x02>; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + reg = <0x00>; + + endpoint@8 { + remote-endpoint = <0x70>; + phandle = <0x7d>; + }; + }; + + port@1 { + reg = <0x01>; + + endpoint@9 { + remote-endpoint = <0x71>; + phandle = <0x7e>; + }; + }; + }; + }; + }; + + csi@0 { + compatible = "bst,a1000b_csi2"; + #address-cells = <0x01>; + #size-cells = <0x00>; + clock-lanes = <0x00>; + data-lanes = <0x01 0x02>; + lane-speed = <0x960>; + id = <0x00>; + resets = <0x06 0x0d>; + reset-names = "csi0_reset"; + + csi-link { + + ports { + + port@0 { + + endpoint@0 { + remote-endpoint = <0x72>; + phandle = <0x21>; + }; + }; + }; + }; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + reg = <0x00>; + + endpoint@0 { + remote-endpoint = <0x73>; + phandle = <0x68>; + }; + }; + + port@1 { + reg = <0x01>; + + endpoint@1 { + remote-endpoint = <0x74>; + phandle = <0x69>; + }; + }; + + port@2 { + reg = <0x02>; + + endpoint@2 { + remote-endpoint = <0x75>; + phandle = <0x6a>; + }; + }; + + port@3 { + reg = <0x03>; + + endpoint@3 { + remote-endpoint = <0x76>; + phandle = <0x6b>; + }; + }; + }; + }; + + csi@1 { + compatible = "bst,a1000b_csi2"; + #address-cells = <0x01>; + #size-cells = <0x00>; + clock-lanes = <0x00>; + data-lanes = <0x01 0x02 0x03 0x04>; + lane-speed = <0x640>; + id = <0x01>; + resets = <0x06 0x0e>; + reset-names = "csi1_reset"; + + csi-link { + + ports { + + port@0 { + + endpoint@0 { + remote-endpoint = <0x77>; + phandle = <0x26>; + }; + }; + }; + }; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + reg = <0x00>; + + endpoint@0 { + remote-endpoint = <0x78>; + phandle = <0x6c>; + }; + }; + + port@1 { + reg = <0x01>; + + endpoint@1 { + remote-endpoint = <0x79>; + phandle = <0x6d>; + }; + }; + + port@2 { + reg = <0x02>; + + endpoint@2 { + remote-endpoint = <0x7a>; + phandle = <0x6e>; + }; + }; + + port@3 { + reg = <0x03>; + + endpoint@3 { + remote-endpoint = <0x7b>; + phandle = <0x6f>; + }; + }; + }; + }; + + csi@3 { + compatible = "bst,a1000b-csi2-2x2"; + #address-cells = <0x01>; + #size-cells = <0x00>; + clock-lanes = <0x00>; + data-lanes = <0x01 0x02>; + lane-speed = <0x960>; + resets = <0x06 0x10>; + reset-names = "csi2_reset"; + id = <0x03>; + + csi-link { + + ports { + + port@0 { + + endpoint@0 { + remote-endpoint = <0x7c>; + phandle = <0x2b>; + }; + }; + }; + }; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + reg = <0x00>; + + endpoint@0 { + remote-endpoint = <0x7d>; + phandle = <0x70>; + }; + }; + + port@1 { + reg = <0x01>; + + endpoint@1 { + remote-endpoint = <0x7e>; + phandle = <0x71>; + }; + }; + }; + }; + + chosen { + bootargs = "earlycon=uart8250,mmio32,0x20008000 console=ttyS0,115200n8 memreserve=64M@0xf8000000 rdinit=/sbin/init root=/dev/mmcblk0p7 rw"; + stdout-path = "uart0"; + }; + + aliases { + // uart0 = "/amba_apu/serial@20008000"; + }; + + memory@80000000 { + device_type = "memory"; + reg = <0x00 0x80000000 0x00 0x70000000>; + }; + + // memory@1b0000000 { + // device_type = "memory"; + // reg = <0x01 0xb0000000 0x00 0x40000000>; + // }; + + reserved-memory { + #address-cells = <0x02>; + #size-cells = <0x02>; + ranges; + + // linux,cma@88000000 { + // compatible = "shared-dma-pool"; + // reusable; + // reg = <0x0 0x84000000 0x0 0x07000000>; + // linux,cma-default; + // }; + + pcie_ctrl@8fd00000 { + compatible = "bst,pcie-ctrl"; + reg = <0x00 0x8fd00000 0x00 0x100000>; + no-map; + phandle = <0x0c>; + }; + + bst_atf@8b000000 { + compatible = "shared-dma-pool"; + reg = <0x00 0x8b000000 0x00 0x2000000>; + no-map; + }; + + bst_tee@8fec0000 { + compatible = "shared-dma-pool"; + reg = <0x00 0x8fec0000 0x00 0x40000>; + no-map; + phandle = <0x82>; + }; + + bstn_cma@8ff00000 { + compatible = "shared-dma-pool"; + reg = <0x00 0x8ff00000 0x00 0x100000>; + no-map; + phandle = <0x7f>; + }; + + bstn@90000000 { + compatible = "bst,bstn"; + reg = <0x00 0x90000000 0x00 0x2000000>; + no-map; + }; + + bst_lwnn@92000000 { + compatible = "bst,bst_lwnn"; + reg = <0x00 0x92000000 0x00 0x2000000>; + no-map; + }; + + bst_lwnn@94000000 { + compatible = "bst,bst_lwnn"; + reg = <0x00 0x94000000 0x00 0x2000000>; + no-map; + }; + + bst_cv@96000000 { + compatible = "bst,bst_cv"; + reg = <0x00 0x96000000 0x00 0x4000000>; + no-map; + }; + + bst_cv_cma@9a000000 { + compatible = "shared-dma-pool"; + reg = <0x00 0x9a000000 0x00 0x2000000>; + align-shift = <0x08>; + no-map; + phandle = <0x80>; + }; + + vsp@0x9c000000 { + compatible = "shared-dma-pool"; + reg = <0x00 0x9c000000 0x00 0x1000000>; + no-map; + phandle = <0x81>; + }; + + vsp_fw@0x9d000000 { + reg = <0x00 0x9d000000 0x00 0x4000000>; + no-map; + }; + + bst_isp@0xa1000000 { + compatible = "shared-dma-pool"; + reg = <0x00 0xa1000000 0x00 0x1000000>; + no-map; + phandle = <0x65>; + }; + + bst_isp_fw@0xa2000000 { + reg = <0x00 0xa2000000 0x00 0x10000000>; + no-map; + }; + + coreip_pub_cma@0xb2000000 { + compatible = "shared-dma-pool"; + align-shift = <0x08>; + reg = <0x00 0xb2000000 0x00 0x36000000>; + reusable; + phandle = <0x66>; + }; + + noc_pmu@0xe8000000 { + compatible = "shared-dma-pool"; + reg = <0x00 0xe8000000 0x00 0x800000>; + reusable; + phandle = <0x43>; + }; + + + ddr0@0xf0000000 { + reg = <0x00 0xf0000000 0x00 0x10000000>; + no-map; + }; + + ddr1@0x1f0000000 { + reg = <0x01 0xf0000000 0x00 0x10000000>; + no-map; + }; + }; + + mbox-poll-clients { + compatible = "bst,ipc-mbox-client"; + reg = <0xfec00020 0x08 0x52030090 0x08 0x53090008 0x08 0xfec00028 0x08>; + #mbox-cells = <0x01>; + phandle = <0x0e>; + }; + + bstn-mbox { + compatible = "bstn,bstn-mbox"; + reg = <0x00 0x33102000 0x00 0x2000 0x00 0x33100000 0x00 0x2000 0x00 0x80000000 0x00 0x04 0x00 0x80002000 0x00 0x04>; + fpga-reset = <0x01>; + memory-region = <0x7f>; + assigned-mem-size = <0x1000>; + interrupt-parent = <0x01>; + interrupts = <0x00 0x71 0xff04 0x00 0x72 0xff04 0x00 0x73 0xff04 0x00 0x74 0xff04 0x00 0x75 0xff04 0x00 0x76 0xff04 0x00 0x77 0xff04 0x00 0x78 0xff04>; + #mbox-cells = <0x01>; + phandle = <0xea>; + }; + + bstn@0 { + #address-cells = <0x02>; + #size-cells = <0x02>; + compatible = "bst,bstn-a1000b,cma"; + reg = <0x00 0x50020000 0x00 0x100 0x00 0x90000000 0x00 0x2000000>; + memory-region = <0x66>; + rmem-base = <0x00 0xb2000000>; + rmem-size = <0x00 0x36000000>; + id = <0x00>; + assigned-mem-size = <0x1000>; + bus-offset = <0x00 0x00>; + mbox-names = "bstn-mbox"; + mboxes = <0xea 0x08>; + firmware = "bstn_dsp_rtos.rbf"; + }; + + bst_cv@0x51030000 { + #address-cells = <0x02>; + #size-cells = <0x02>; + compatible = "bst,bst_cv,cma"; + reg = <0x00 0x51030000 0x00 0x100 0x00 0x96000000 0x00 0x2000000 0x00 0x98000000 0x00 0x2000000 0x00 0x92000000 0x00 0x2000000 0x00 0x94000000 0x00 0x2000000>; + memory-region = <0x80>; + assigned-mem-size = <0x4000>; + bus-offset = <0x00 0x00>; + mbox-names = "bstn-mbox"; + mboxes = <0xea 0x09>; + dsp-num = <0x04>; + ipc-register-addr = <0x8ff00000>; + + dsp@0x96000000 { + index = <0x00>; + firmware = "bst_cv_dsp_rt.rbf"; + assigned-mem-size = <0x1000>; + rt-init-addr = <0x967ff000>; + ipc-src-core = <0x03>; + }; + + dsp@0x98000000 { + index = <0x01>; + firmware = "bst_cv_dsp1_rt.rbf"; + assigned-mem-size = <0x1000>; + rt-init-addr = <0x987ff000>; + ipc-src-core = <0x03>; + }; + + dsp@0x92000000 { + index = <0x02>; + firmware = "bst_cv_dsp2_rt.rbf"; + assigned-mem-size = <0x1000>; + rt-init-addr = <0x927ff000>; + ipc-src-core = <0x03>; + }; + + dsp@0x94000000 { + index = <0x03>; + firmware = "bst_cv_dsp3_rt.rbf"; + assigned-mem-size = <0x1000>; + rt-init-addr = <0x947ff000>; + ipc-src-core = <0x03>; + }; + }; + + bst_gwarp_scaler@0x51060000 { + #address-cells = <0x02>; + #size-cells = <0x02>; + compatible = "bst,bst_gwarp_scaler,cma"; + reg = <0x00 0x51030000 0x00 0x100 0x00 0x51050000 0x00 0x100 0x00 0x51060000 0x00 0x100>; + memory-region = <0x66>; + id = <0x00>; + bus-offset = <0x00 0x00>; + assigned-mem-size = <0x1000>; + interrupt-parent = <0x01>; + interrupts = <0x00 0x9b 0x04>; + interrupt-names = "bst_cv_irq"; + }; + + bare_cv@51030000 { + #address-cells = <0x02>; + #size-cells = <0x02>; + compatible = "bst,bare_cv,cma"; + reg = <0x00 0x51030000 0x00 0x100 0x00 0x96000000 0x00 0x1000000 0x00 0x98000000 0x00 0x1000000 0x00 0x97000000 0x00 0x1000000 0x00 0x99000000 0x00 0x1000000>; + memory-region = <0x80>; + id = <0x01>; + assigned-mem-size = <0x2000000 0x2000000 0x2000000 0x2000000>; + bus-offset = <0x00 0x00>; + mbox-names = "bstn-mbox"; + mboxes = <0xea 0x09>; + firmware = "bstcv0.rbf\0bstcv1.rbf\0bstcv2.rbf\0bstcv3.rbf"; + }; + + bst_lwnn@0x51030000 { + compatible = "bst,bst_lwnn-a1000b,cma"; + reg = <0x00 0x51030000 0x00 0x100 0x00 0x92000000 0x00 0x2000000 0x00 0x94000000 0x00 0x2000000>; + memory-region = <0x66>; + bus-offset = <0x00 0x00>; + mbox-names = "bst-lwnn-mbox"; + dsp-num = <0x02>; + ipc-register-addr = <0x8ff00000>; + + dsp@0x92000000 { + index = <0x02>; + firmware = "bst_lwnn_dsp2_rt.rbf"; + assigned-mem-size = <0x2000>; + rt-init-addr = <0x927ff000>; + ipc-src-core = <0x06>; + }; + + dsp@0x94000000 { + index = <0x03>; + firmware = "bst_lwnn_dsp3_rt.rbf"; + assigned-mem-size = <0x2000>; + rt-init-addr = <0x947ff000>; + ipc-src-core = <0x00>; + }; + }; + + ipc_vsp@0 { + #address-cells = <0x02>; + #size-cells = <0x02>; + compatible = "bst,bst-vsp-ipc"; + reg = <0x00 0x9c000000 0x00 0x100000 0x00 0x9c100000 0x00 0x80000 0x00 0x9c180000 0x00 0x80000 0x00 0x53090004 0x00 0x04 0x00 0x53090010 0x00 0x0c 0x00 0x33102fbc 0x00 0x04 0x00 0x9d000000 0x00 0x4000000>; + memory-region = <0x81>; + mbox-names = "bstn-mbox"; + mboxes = <0xea 0x07>; + }; + + vsp@1 { + #address-cells = <0x02>; + #size-cells = <0x02>; + compatible = "bst,bst-vsp"; + memory-region = <0x66>; + assigned-mem-size = <0x1000>; + clocks = <0x05 0x43>; + clock-names = "vout_display_clk"; + output-format = "HDMI_RGB"; + output-hsize = <0x780>; + output-vsize = <0x438>; + output-fresh = <0x3c>; + }; + + gmwarp@0 { + #address-cells = <0x02>; + #size-cells = <0x02>; + compatible = "bst,bst-gmwarp"; + memory-region = <0x66>; + }; + + encoder@0 { + #address-cells = <0x02>; + #size-cells = <0x02>; + compatible = "bst,bst-encoder"; + memory-region = <0x66>; + }; + + codec_dma_buf@0 { + compatible = "bst,dma_buf_te"; + memory-region = <0x66>; + }; + + firmware { + + optee { + compatible = "linaro,optee-tz"; + method = "smc"; + chip-number = <0x02>; + }; + }; + + tee { + #address-cells = <0x02>; + #size-cells = <0x02>; + reg = <0x00 0x18060000 0x00 0x20000>; + memory-region = <0x82>; + mbox-names = "bstn-mbox"; + chip-number = <0x01>; + }; + + ipc_arm0@0 { + #address-cells = <0x02>; + #size-cells = <0x02>; + compatible = "bst,arm0"; + reg = <0x04 0xfec00000 0x00 0x20 0x04 0x80000000 0x00 0x20000>; + memory-region = <0x7f>; + assigned-mem-size = <0x1000>; + mbox-names = "bstn-mbox"; + mboxes = <0xea 0x00>; + }; + + ipc_arm3@3 { + #address-cells = <0x02>; + #size-cells = <0x02>; + compatible = "bst,arm3"; + reg = <0x04 0xfec10000 0x00 0x20 0x04 0x80000000 0x00 0x20000>; + memory-region = <0x7f>; + assigned-mem-size = <0x1000>; + mbox-names = "bstn-mbox"; + mboxes = <0xea 0x03>; + }; + + ipc_arm2@2 { + #address-cells = <0x02>; + #size-cells = <0x02>; + compatible = "bst,arm2"; + reg = <0x04 0xfec10000 0x00 0x20 0x04 0x80000000 0x00 0x20000>; + memory-region = <0x7f>; + assigned-mem-size = <0x1000>; + mbox-names = "bstn-mbox"; + mboxes = <0xea 0x02>; + }; + + ipc_arm1@1 { + #address-cells = <0x02>; + #size-cells = <0x02>; + compatible = "bst,arm1"; + reg = <0x04 0xfec10000 0x00 0x20 0x04 0x80000000 0x00 0x20000>; + memory-region = <0x7f>; + assigned-mem-size = <0x1000>; + mbox-names = "bstn-mbox"; + mboxes = <0xea 0x01>; + }; + + ipc@0 { + #address-cells = <0x02>; + #size-cells = <0x02>; + compatible = "bst,ipc"; + reg = <0x04 0xfec00000 0x00 0x20 0x04 0x80000000 0x00 0x20000>; + memory-region = <0x7f>; + assigned-mem-size = <0x1000>; + mbox-names = "bstn-mbox"; + mboxes = <0xea 0x05>; + }; +}; diff --git a/configs/vms/linux-aarch64-a1000-smp8.toml b/configs/vms/linux-aarch64-a1000-smp8.toml new file mode 100644 index 00000000..f9767d4a --- /dev/null +++ b/configs/vms/linux-aarch64-a1000-smp8.toml @@ -0,0 +1,57 @@ +# Vm base info configs +# +[base] +# Guest vm id. +id = 1 +# Guest vm name. +name = "linux" +# Virtualization type. +vm_type = 1 +# The number of virtual CPUs. +cpu_num = 8 +# The physical CPU ids. +phys_cpu_ids = [0x00, 0x100, 0x200, 0x300, 0x400, 0x500, 0x600, 0x700] +# Guest vm physical cpu sets. +phys_cpu_sets = [1, 2, 4, 8, 16, 32, 64, 128] + + +# +# Vm kernel configs +# +[kernel] +# The entry point of the kernel image. +entry_point = 0x1_ce80_0000 +# The location of image: "memory" | "fs". +# Load from memory. +image_location = "memory" +# The load address of the kernel image. +kernel_load_addr = 0x1_ce80_0000 +## The file path of the kernel image. +kernel_path = "/path/to/kernel" +## The file path of the device tree blob (DTB). +dtb_load_addr = 0x1_cef0_0000 +dtb_path = "/path/to/dtb" +# Memory regions with format (`base_paddr`, `size`, `flags`, `map_type`). +# For `map_type`, 0 means `MAP_ALLOC`, 1 means `MAP_IDENTICAL`. +memory_regions = [ + [0x8000_0000, 0x2000_0000, 0x7, 1], # System RAM 1G MAP_IDENTICAL +] +# +# Device specifications +# +[devices] +# The interrupt mode. +interrupt_mode = "passthrough" +# Emu_devices. +# Name Base-Ipa Ipa_len Alloc-Irq Emu-Type EmuConfig. +emu_devices = [] + +# Pass-through devices. +# Name Base-Ipa Base-Pa Length Alloc-Irq. +passthrough_devices = [ +["most-devices", 0x0, 0x0, 0x8000_0000, 0x1], +["memory", 0x8000_0000, 0x8000_0000, 0x7000_0000, 0x1] +] +excluded_devices = [ + # ["/gic-v3"], +] \ No newline at end of file diff --git a/configs/vms/linux-aarch64-rk3588-smp8.dts b/configs/vms/linux-aarch64-rk3588-smp8.dts new file mode 100644 index 00000000..20bc1c3d --- /dev/null +++ b/configs/vms/linux-aarch64-rk3588-smp8.dts @@ -0,0 +1,8099 @@ +/dts-v1/; + +/ { + compatible = "rockchip,rk3588-firefly-itx-3588j\0rockchip,rk3588"; + interrupt-parent = <0x01>; + #address-cells = <0x02>; + #size-cells = <0x02>; + model = "Firefly ITX-3588J HDMI(Linux)"; + + aliases { + csi2dcphy0 = "/csi2-dcphy0"; + csi2dcphy1 = "/csi2-dcphy1"; + csi2dphy0 = "/csi2-dphy0"; + csi2dphy1 = "/csi2-dphy1"; + csi2dphy2 = "/csi2-dphy2"; + dsi0 = "/dsi@fde20000"; + dsi1 = "/dsi@fde30000"; + ethernet0 = "/ethernet@fe1b0000"; + ethernet1 = "/ethernet@fe1c0000"; + gpio0 = "/pinctrl/gpio@fd8a0000"; + gpio1 = "/pinctrl/gpio@fec20000"; + gpio2 = "/pinctrl/gpio@fec30000"; + gpio3 = "/pinctrl/gpio@fec40000"; + gpio4 = "/pinctrl/gpio@fec50000"; + i2c0 = "/i2c@fd880000"; + i2c1 = "/i2c@fea90000"; + i2c2 = "/i2c@feaa0000"; + i2c3 = "/i2c@feab0000"; + i2c4 = "/i2c@feac0000"; + i2c5 = "/i2c@fead0000"; + i2c6 = "/i2c@fec80000"; + i2c7 = "/i2c@fec90000"; + i2c8 = "/i2c@feca0000"; + rkcif_mipi_lvds0 = "/rkcif-mipi-lvds"; + rkcif_mipi_lvds1 = "/rkcif-mipi-lvds1"; + rkcif_mipi_lvds2 = "/rkcif-mipi-lvds2"; + rkcif_mipi_lvds3 = "/rkcif-mipi-lvds3"; + rkvenc0 = "/rkvenc-core@fdbd0000"; + rkvenc1 = "/rkvenc-core@fdbe0000"; + jpege0 = "/jpege-core@fdba0000"; + jpege1 = "/jpege-core@fdba4000"; + jpege2 = "/jpege-core@fdba8000"; + jpege3 = "/jpege-core@fdbac000"; + serial0 = "/serial@fd890000"; + serial1 = "/serial@feb40000"; + serial2 = "/serial@feb50000"; + serial3 = "/serial@feb60000"; + serial4 = "/serial@feb70000"; + serial5 = "/serial@feb80000"; + serial6 = "/serial@feb90000"; + serial7 = "/serial@feba0000"; + serial8 = "/serial@febb0000"; + serial9 = "/serial@febc0000"; + spi0 = "/spi@feb00000"; + spi1 = "/spi@feb10000"; + spi2 = "/spi@feb20000"; + spi3 = "/spi@feb30000"; + spi4 = "/spi@fecb0000"; + spi5 = "/spi@fe2b0000"; + hdcp0 = "/hdcp@fde40000"; + hdcp1 = "/hdcp@fde70000"; + pwm0 = "/pwm@fd8b0000"; + pwm1 = "/pwm@fd8b0010"; + pwm2 = "/pwm@fd8b0020"; + pwm3 = "/pwm@fd8b0030"; + pwm4 = "/pwm@febd0000"; + pwm5 = "/pwm@febd0010"; + pwm6 = "/pwm@febd0020"; + pwm7 = "/pwm@febd0030"; + pwm8 = "/pwm@febe0000"; + pwm9 = "/pwm@febe0010"; + pwm10 = "/pwm@febe0020"; + pwm11 = "/pwm@febe0030"; + pwm12 = "/pwm@febf0000"; + pwm13 = "/pwm@febf0010"; + pwm14 = "/pwm@febf0020"; + pwm15 = "/pwm@febf0030"; + csi2dphy3 = "/csi2-dphy3"; + csi2dphy4 = "/csi2-dphy4"; + csi2dphy5 = "/csi2-dphy5"; + dp0 = "/dp@fde50000"; + dp1 = "/dp@fde60000"; + edp0 = "/edp@fdec0000"; + edp1 = "/edp@fded0000"; + hdptx0 = "/phy@fed60000"; + hdptx1 = "/phy@fed70000"; + hdptxhdmi0 = "/hdmiphy@fed60000"; + hdptxhdmi1 = "/hdmiphy@fed70000"; + hdmi0 = "/hdmi@fde80000"; + hdmi1 = "/hdmi@fdea0000"; + hdmirx0 = "/hdmirx-controller@fdee0000"; + rkcif_mipi_lvds4 = "/rkcif-mipi-lvds4"; + rkcif_mipi_lvds5 = "/rkcif-mipi-lvds5"; + usbdp0 = "/phy@fed80000"; + usbdp1 = "/phy@fed90000"; + mmc0 = "/mmc@fe2e0000"; + mmc1 = "/mmc@fe2c0000"; + mmc2 = "/mmc@fe2d0000"; + }; + + clocks { + compatible = "simple-bus"; + #address-cells = <0x02>; + #size-cells = <0x02>; + ranges; + + spll { + compatible = "fixed-clock"; + #clock-cells = <0x00>; + clock-frequency = <0x29d7ab80>; + clock-output-names = "spll"; + }; + + xin32k { + compatible = "fixed-clock"; + #clock-cells = <0x00>; + clock-frequency = <0x8000>; + clock-output-names = "xin32k"; + }; + + xin24m { + compatible = "fixed-clock"; + #clock-cells = <0x00>; + clock-frequency = <0x16e3600>; + clock-output-names = "xin24m"; + }; + + hclk_vo1@fd7c08ec { + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c08ec 0x00 0x10>; + clock-names = "link"; + clocks = <0x02 0x264>; + #power-domain-cells = <0x01>; + #clock-cells = <0x00>; + phandle = <0x05>; + }; + + aclk_vdpu_low_pre@fd7c08b0 { + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c08b0 0x00 0x10>; + clock-names = "link"; + clocks = <0x02 0x1bc>; + #power-domain-cells = <0x01>; + #clock-cells = <0x00>; + }; + + hclk_vo0@fd7c08dc { + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c08dc 0x00 0x10>; + clock-names = "link"; + clocks = <0x02 0x26d>; + #power-domain-cells = <0x01>; + #clock-cells = <0x00>; + phandle = <0x04>; + }; + + hclk_usb@fd7c08a8 { + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c08a8 0x00 0x10>; + clock-names = "link"; + clocks = <0x02 0x264>; + #power-domain-cells = <0x01>; + #clock-cells = <0x00>; + }; + + hclk_nvm@fd7c087c { + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c087c 0x00 0x10>; + clock-names = "link"; + clocks = <0x02 0x141>; + #power-domain-cells = <0x01>; + #clock-cells = <0x00>; + phandle = <0x03>; + }; + + aclk_usb@fd7c08a8 { + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c08a8 0x00 0x10>; + clock-names = "link"; + clocks = <0x02 0x263>; + #power-domain-cells = <0x01>; + #clock-cells = <0x00>; + }; + + hclk_isp1_pre@fd7c0868 { + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c0868 0x00 0x10>; + clock-names = "link"; + clocks = <0x02 0x1e1>; + #power-domain-cells = <0x01>; + #clock-cells = <0x00>; + }; + + aclk_isp1_pre@fd7c0868 { + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c0868 0x00 0x10>; + clock-names = "link"; + clocks = <0x02 0x1e0>; + #power-domain-cells = <0x01>; + #clock-cells = <0x00>; + }; + + aclk_rkvdec0_pre@fd7c08a0 { + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c08a0 0x00 0x10>; + clock-names = "link"; + clocks = <0x02 0x1bc>; + #power-domain-cells = <0x01>; + #clock-cells = <0x00>; + }; + + hclk_rkvdec0_pre@fd7c08a0 { + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c08a0 0x00 0x10>; + clock-names = "link"; + clocks = <0x02 0x1be>; + #power-domain-cells = <0x01>; + #clock-cells = <0x00>; + }; + + aclk_rkvdec1_pre@fd7c08a4 { + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c08a4 0x00 0x10>; + clock-names = "link"; + clocks = <0x02 0x1bc>; + #power-domain-cells = <0x01>; + #clock-cells = <0x00>; + }; + + hclk_rkvdec1_pre@fd7c08a4 { + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c08a4 0x00 0x10>; + clock-names = "link"; + clocks = <0x02 0x1be>; + #power-domain-cells = <0x01>; + #clock-cells = <0x00>; + }; + + aclk_jpeg_decoder_pre@fd7c08b0 { + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c08b0 0x00 0x10>; + clock-names = "link"; + clocks = <0x02 0x1bc>; + #power-domain-cells = <0x01>; + #clock-cells = <0x00>; + }; + + aclk_rkvenc1_pre@fd7c08c0 { + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c08c0 0x00 0x10>; + clock-names = "link"; + clocks = <0x02 0x1c5>; + #power-domain-cells = <0x01>; + #clock-cells = <0x00>; + }; + + hclk_rkvenc1_pre@fd7c08c0 { + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c08c0 0x00 0x10>; + clock-names = "link"; + clocks = <0x02 0x1c4>; + #power-domain-cells = <0x01>; + #clock-cells = <0x00>; + }; + + aclk_hdcp0_pre@fd7c08dc { + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c08dc 0x00 0x10>; + clock-names = "link"; + clocks = <0x02 0x26c>; + #power-domain-cells = <0x01>; + #clock-cells = <0x00>; + }; + + aclk_hdcp1_pre@fd7c08ec { + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c08ec 0x00 0x10>; + clock-names = "link"; + clocks = <0x02 0x263>; + #power-domain-cells = <0x01>; + #clock-cells = <0x00>; + }; + + pclk_av1_pre@fd7c0910 { + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c0910 0x00 0x10>; + clock-names = "link"; + clocks = <0x02 0x1be>; + #power-domain-cells = <0x01>; + #clock-cells = <0x00>; + }; + + aclk_av1_pre@fd7c0910 { + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c0910 0x00 0x10>; + clock-names = "link"; + clocks = <0x02 0x1bc>; + #power-domain-cells = <0x01>; + #clock-cells = <0x00>; + }; + + hclk_sdio_pre@fd7c092c { + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c092c 0x00 0x10>; + clock-names = "link"; + clocks = <0x03>; + #power-domain-cells = <0x01>; + #clock-cells = <0x00>; + }; + + pclk_vo0_grf@fd7c08dc { + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c08dc 0x00 0x04>; + clocks = <0x04>; + clock-names = "link"; + #clock-cells = <0x00>; + phandle = <0x5d>; + }; + + pclk_vo1_grf@fd7c08ec { + compatible = "rockchip,rk3588-clock-gate-link"; + reg = <0x00 0xfd7c08ec 0x00 0x04>; + clocks = <0x05>; + clock-names = "link"; + #clock-cells = <0x00>; + phandle = <0x5e>; + }; + }; + + cpus { + #address-cells = <0x01>; + #size-cells = <0x00>; + + cpu-map { + + cluster0 { + + core0 { + cpu = <0x06>; + }; + + core1 { + cpu = <0x07>; + }; + + core2 { + cpu = <0x08>; + }; + + core3 { + cpu = <0x09>; + }; + }; + + cluster1 { + + core0 { + cpu = <0x0a>; + }; + + core1 { + cpu = <0x0b>; + }; + }; + + cluster2 { + + core0 { + cpu = <0x0c>; + }; + + core1 { + cpu = <0x0d>; + }; + }; + }; + + cpu@0 { + device_type = "cpu"; + compatible = "arm,cortex-a55"; + reg = <0x00>; + enable-method = "psci"; + capacity-dmips-mhz = <0x212>; + clocks = <0x0e 0x00>; + operating-points-v2 = <0x0f>; + cpu-idle-states = <0x10>; + i-cache-size = <0x8000>; + i-cache-line-size = <0x40>; + i-cache-sets = <0x80>; + d-cache-size = <0x8000>; + d-cache-line-size = <0x40>; + d-cache-sets = <0x80>; + next-level-cache = <0x11>; + #cooling-cells = <0x02>; + dynamic-power-coefficient = <0x64>; + cpu-supply = <0x12>; + mem-supply = <0x12>; + phandle = <0x06>; + }; + + // cpu@100 { + // device_type = "cpu"; + // compatible = "arm,cortex-a55"; + // reg = <0x100>; + // enable-method = "psci"; + // capacity-dmips-mhz = <0x212>; + // clocks = <0x0e 0x00>; + // operating-points-v2 = <0x0f>; + // cpu-idle-states = <0x10>; + // i-cache-size = <0x8000>; + // i-cache-line-size = <0x40>; + // i-cache-sets = <0x80>; + // d-cache-size = <0x8000>; + // d-cache-line-size = <0x40>; + // d-cache-sets = <0x80>; + // next-level-cache = <0x13>; + // phandle = <0x07>; + // }; + + // cpu@200 { + // device_type = "cpu"; + // compatible = "arm,cortex-a55"; + // reg = <0x200>; + // enable-method = "psci"; + // capacity-dmips-mhz = <0x212>; + // clocks = <0x0e 0x00>; + // operating-points-v2 = <0x0f>; + // cpu-idle-states = <0x10>; + // i-cache-size = <0x8000>; + // i-cache-line-size = <0x40>; + // i-cache-sets = <0x80>; + // d-cache-size = <0x8000>; + // d-cache-line-size = <0x40>; + // d-cache-sets = <0x80>; + // next-level-cache = <0x14>; + // phandle = <0x08>; + // }; + + // cpu@300 { + // device_type = "cpu"; + // compatible = "arm,cortex-a55"; + // reg = <0x300>; + // enable-method = "psci"; + // capacity-dmips-mhz = <0x212>; + // clocks = <0x0e 0x00>; + // operating-points-v2 = <0x0f>; + // cpu-idle-states = <0x10>; + // i-cache-size = <0x8000>; + // i-cache-line-size = <0x40>; + // i-cache-sets = <0x80>; + // d-cache-size = <0x8000>; + // d-cache-line-size = <0x40>; + // d-cache-sets = <0x80>; + // next-level-cache = <0x15>; + // phandle = <0x09>; + // }; + + // cpu@400 { + // device_type = "cpu"; + // compatible = "arm,cortex-a76"; + // reg = <0x400>; + // enable-method = "psci"; + // capacity-dmips-mhz = <0x400>; + // clocks = <0x0e 0x02>; + // operating-points-v2 = <0x16>; + // cpu-idle-states = <0x10>; + // i-cache-size = <0x10000>; + // i-cache-line-size = <0x40>; + // i-cache-sets = <0x100>; + // d-cache-size = <0x10000>; + // d-cache-line-size = <0x40>; + // d-cache-sets = <0x100>; + // next-level-cache = <0x17>; + // #cooling-cells = <0x02>; + // dynamic-power-coefficient = <0x12c>; + // cpu-supply = <0x18>; + // mem-supply = <0x18>; + // phandle = <0x0a>; + // }; + + // cpu@500 { + // device_type = "cpu"; + // compatible = "arm,cortex-a76"; + // reg = <0x500>; + // enable-method = "psci"; + // capacity-dmips-mhz = <0x400>; + // clocks = <0x0e 0x02>; + // operating-points-v2 = <0x16>; + // cpu-idle-states = <0x10>; + // i-cache-size = <0x10000>; + // i-cache-line-size = <0x40>; + // i-cache-sets = <0x100>; + // d-cache-size = <0x10000>; + // d-cache-line-size = <0x40>; + // d-cache-sets = <0x100>; + // next-level-cache = <0x19>; + // phandle = <0x0b>; + // }; + + // cpu@600 { + // device_type = "cpu"; + // compatible = "arm,cortex-a76"; + // reg = <0x600>; + // enable-method = "psci"; + // capacity-dmips-mhz = <0x400>; + // clocks = <0x0e 0x03>; + // operating-points-v2 = <0x1a>; + // cpu-idle-states = <0x10>; + // i-cache-size = <0x10000>; + // i-cache-line-size = <0x40>; + // i-cache-sets = <0x100>; + // d-cache-size = <0x10000>; + // d-cache-line-size = <0x40>; + // d-cache-sets = <0x100>; + // next-level-cache = <0x1b>; + // #cooling-cells = <0x02>; + // dynamic-power-coefficient = <0x12c>; + // cpu-supply = <0x1c>; + // mem-supply = <0x1c>; + // phandle = <0x0c>; + // }; + + // cpu@700 { + // device_type = "cpu"; + // compatible = "arm,cortex-a76"; + // reg = <0x700>; + // enable-method = "psci"; + // capacity-dmips-mhz = <0x400>; + // clocks = <0x0e 0x03>; + // operating-points-v2 = <0x1a>; + // cpu-idle-states = <0x10>; + // i-cache-size = <0x10000>; + // i-cache-line-size = <0x40>; + // i-cache-sets = <0x100>; + // d-cache-size = <0x10000>; + // d-cache-line-size = <0x40>; + // d-cache-sets = <0x100>; + // next-level-cache = <0x1d>; + // phandle = <0x0d>; + // }; + + l2-cache-l0 { + compatible = "cache"; + cache-size = <0x20000>; + cache-line-size = <0x40>; + cache-sets = <0x200>; + next-level-cache = <0x1e>; + phandle = <0x11>; + }; + + l2-cache-l1 { + compatible = "cache"; + cache-size = <0x20000>; + cache-line-size = <0x40>; + cache-sets = <0x200>; + next-level-cache = <0x1e>; + phandle = <0x13>; + }; + + l2-cache-l2 { + compatible = "cache"; + cache-size = <0x20000>; + cache-line-size = <0x40>; + cache-sets = <0x200>; + next-level-cache = <0x1e>; + phandle = <0x14>; + }; + + l2-cache-l3 { + compatible = "cache"; + cache-size = <0x20000>; + cache-line-size = <0x40>; + cache-sets = <0x200>; + next-level-cache = <0x1e>; + phandle = <0x15>; + }; + + l2-cache-b0 { + compatible = "cache"; + cache-size = <0x80000>; + cache-line-size = <0x40>; + cache-sets = <0x400>; + next-level-cache = <0x1e>; + phandle = <0x17>; + }; + + l2-cache-b1 { + compatible = "cache"; + cache-size = <0x80000>; + cache-line-size = <0x40>; + cache-sets = <0x400>; + next-level-cache = <0x1e>; + phandle = <0x19>; + }; + + l2-cache-b2 { + compatible = "cache"; + cache-size = <0x80000>; + cache-line-size = <0x40>; + cache-sets = <0x400>; + next-level-cache = <0x1e>; + phandle = <0x1b>; + }; + + l2-cache-b3 { + compatible = "cache"; + cache-size = <0x80000>; + cache-line-size = <0x40>; + cache-sets = <0x400>; + next-level-cache = <0x1e>; + phandle = <0x1d>; + }; + + l3-cache { + compatible = "cache"; + cache-size = <0x300000>; + cache-line-size = <0x40>; + cache-sets = <0x1000>; + phandle = <0x1e>; + }; + }; + + cluster0-opp-table { + compatible = "operating-points-v2"; + opp-shared; + nvmem-cells = <0x1f 0x20>; + nvmem-cell-names = "leakage\0specification_serial_number"; + rockchip,supported-hw; + rockchip,opp-shared-dsu; + rockchip,pvtm-voltage-sel = <0x00 0x582 0x00 0x583 0x59a 0x01 0x59b 0x5b2 0x02 0x5b3 0x5ca 0x03 0x5cb 0x5e2 0x04 0x5e3 0x5fa 0x05 0x5fb 0x270f 0x06>; + rockchip,pvtm-pvtpll; + rockchip,pvtm-offset = <0x64>; + rockchip,pvtm-sample-time = <0x44c>; + rockchip,pvtm-freq = <0x159b40>; + rockchip,pvtm-volt = <0xb71b0>; + rockchip,pvtm-ref-temp = <0x19>; + rockchip,pvtm-temp-prop = <0xf4 0xf4>; + rockchip,pvtm-thermal-zone = "soc-thermal"; + rockchip,grf = <0x21>; + rockchip,dsu-grf = <0x22>; + volt-mem-read-margin = <0xd0bd8 0x01 0xbac48 0x02 0xa4cb8 0x03 0x78d98 0x04>; + low-volt-mem-read-margin = <0x04>; + intermediate-threshold-freq = <0xf6180>; + rockchip,reboot-freq = <0x159b40>; + rockchip,temp-hysteresis = <0x1388>; + rockchip,low-temp = <0x2710>; + rockchip,low-temp-min-volt = <0xb71b0>; + rockchip,high-temp = <0x14c08>; + rockchip,high-temp-max-freq = <0x188940>; + phandle = <0x0f>; + + opp-408000000 { + opp-supported-hw = <0xff 0xffff>; + opp-hz = <0x00 0x18519600>; + opp-microvolt = <0xa4cb8 0xa4cb8 0xe7ef0 0xa4cb8 0xa4cb8 0xe7ef0>; + clock-latency-ns = <0x9c40>; + }; + + opp-600000000 { + opp-supported-hw = <0xff 0xffff>; + opp-hz = <0x00 0x23c34600>; + opp-microvolt = <0xa4cb8 0xa4cb8 0xe7ef0 0xa4cb8 0xa4cb8 0xe7ef0>; + clock-latency-ns = <0x9c40>; + }; + + opp-816000000 { + opp-supported-hw = <0xff 0xffff>; + opp-hz = <0x00 0x30a32c00>; + opp-microvolt = <0xa4cb8 0xa4cb8 0xe7ef0 0xa4cb8 0xa4cb8 0xe7ef0>; + clock-latency-ns = <0x9c40>; + }; + + opp-1008000000 { + opp-supported-hw = <0xff 0xffff>; + opp-hz = <0x00 0x3c14dc00>; + opp-microvolt = <0xa4cb8 0xa4cb8 0xe7ef0 0xa4cb8 0xa4cb8 0xe7ef0>; + clock-latency-ns = <0x9c40>; + }; + + opp-1200000000 { + opp-supported-hw = <0xff 0xffff>; + opp-hz = <0x00 0x47868c00>; + opp-microvolt = <0xadf34 0xadf34 0xe7ef0 0xadf34 0xadf34 0xe7ef0>; + opp-microvolt-L1 = <0xaae60 0xaae60 0xe7ef0 0xaae60 0xaae60 0xe7ef0>; + opp-microvolt-L2 = <0xaae60 0xaae60 0xe7ef0 0xaae60 0xaae60 0xe7ef0>; + opp-microvolt-L3 = <0xa7d8c 0xa7d8c 0xe7ef0 0xa7d8c 0xa7d8c 0xe7ef0>; + opp-microvolt-L4 = <0xa4cb8 0xa4cb8 0xe7ef0 0xa4cb8 0xa4cb8 0xe7ef0>; + opp-microvolt-L5 = <0xa4cb8 0xa4cb8 0xe7ef0 0xa4cb8 0xa4cb8 0xe7ef0>; + opp-microvolt-L6 = <0xa4cb8 0xa4cb8 0xe7ef0 0xa4cb8 0xa4cb8 0xe7ef0>; + clock-latency-ns = <0x9c40>; + }; + + opp-1416000000 { + opp-supported-hw = <0xff 0xffff>; + opp-hz = <0x00 0x54667200>; + opp-microvolt = <0xba284 0xba284 0xe7ef0 0xba284 0xba284 0xe7ef0>; + opp-microvolt-L1 = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; + opp-microvolt-L2 = <0xb40dc 0xb40dc 0xe7ef0 0xb40dc 0xb40dc 0xe7ef0>; + opp-microvolt-L3 = <0xb1008 0xb1008 0xe7ef0 0xb1008 0xb1008 0xe7ef0>; + opp-microvolt-L4 = <0xb1008 0xb1008 0xe7ef0 0xb1008 0xb1008 0xe7ef0>; + opp-microvolt-L5 = <0xadf34 0xadf34 0xe7ef0 0xadf34 0xadf34 0xe7ef0>; + opp-microvolt-L6 = <0xadf34 0xadf34 0xe7ef0 0xadf34 0xadf34 0xe7ef0>; + clock-latency-ns = <0x9c40>; + opp-suspend; + }; + + opp-1608000000 { + opp-supported-hw = <0xfb 0xffff>; + opp-hz = <0x00 0x5fd82200>; + opp-microvolt = <0xcf850 0xcf850 0xe7ef0 0xcf850 0xcf850 0xe7ef0>; + opp-microvolt-L1 = <0xcc77c 0xcc77c 0xe7ef0 0xcc77c 0xcc77c 0xe7ef0>; + opp-microvolt-L2 = <0xc96a8 0xc96a8 0xe7ef0 0xc96a8 0xc96a8 0xe7ef0>; + opp-microvolt-L3 = <0xc65d4 0xc65d4 0xe7ef0 0xc65d4 0xc65d4 0xe7ef0>; + opp-microvolt-L4 = <0xc3500 0xc3500 0xe7ef0 0xc3500 0xc3500 0xe7ef0>; + opp-microvolt-L5 = <0xc3500 0xc3500 0xe7ef0 0xc3500 0xc3500 0xe7ef0>; + opp-microvolt-L6 = <0xc042c 0xc042c 0xe7ef0 0xc042c 0xc042c 0xe7ef0>; + clock-latency-ns = <0x9c40>; + }; + + opp-1704000000 { + opp-supported-hw = <0x02 0xffff>; + opp-hz = <0x00 0x6590fa00>; + opp-microvolt = <0xdbba0 0xdbba0 0xe7ef0 0xdbba0 0xdbba0 0xe7ef0>; + opp-microvolt-L1 = <0xd8acc 0xd8acc 0xe7ef0 0xd8acc 0xd8acc 0xe7ef0>; + opp-microvolt-L2 = <0xd59f8 0xd59f8 0xe7ef0 0xd59f8 0xd59f8 0xe7ef0>; + opp-microvolt-L3 = <0xd2924 0xd2924 0xe7ef0 0xd2924 0xd2924 0xe7ef0>; + opp-microvolt-L4 = <0xcf850 0xcf850 0xe7ef0 0xcf850 0xcf850 0xe7ef0>; + opp-microvolt-L5 = <0xcc77c 0xcc77c 0xe7ef0 0xcc77c 0xcc77c 0xe7ef0>; + opp-microvolt-L6 = <0xc96a8 0xc96a8 0xe7ef0 0xc96a8 0xc96a8 0xe7ef0>; + clock-latency-ns = <0x9c40>; + }; + + opp-1800000000 { + opp-supported-hw = <0xf9 0xffff>; + opp-hz = <0x00 0x6b49d200>; + opp-microvolt = <0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0>; + opp-microvolt-L1 = <0xe4e1c 0xe4e1c 0xe7ef0 0xe4e1c 0xe4e1c 0xe7ef0>; + opp-microvolt-L2 = <0xe1d48 0xe1d48 0xe7ef0 0xe1d48 0xe1d48 0xe7ef0>; + opp-microvolt-L3 = <0xdec74 0xdec74 0xe7ef0 0xdec74 0xdec74 0xe7ef0>; + opp-microvolt-L4 = <0xdbba0 0xdbba0 0xe7ef0 0xdbba0 0xdbba0 0xe7ef0>; + opp-microvolt-L5 = <0xd8acc 0xd8acc 0xe7ef0 0xd8acc 0xd8acc 0xe7ef0>; + opp-microvolt-L6 = <0xd59f8 0xd59f8 0xe7ef0 0xd59f8 0xd59f8 0xe7ef0>; + clock-latency-ns = <0x9c40>; + }; + }; + + arm-pmu { + compatible = "arm,armv8-pmuv3"; + interrupts = <0x01 0x07 0x08>; + interrupt-affinity = <0x06 0x07 0x08 0x09 0x0a 0x0b 0x0c 0x0d>; + }; + + cpuinfo { + compatible = "rockchip,cpuinfo"; + nvmem-cells = <0x27 0x28 0x29>; + nvmem-cell-names = "id\0cpu-version\0cpu-code"; + }; + + csi2-dcphy0 { + compatible = "rockchip,rk3588-csi2-dcphy"; + phys = <0x2a>; + phy-names = "dcphy"; + status = "disabled"; + }; + + csi2-dcphy1 { + compatible = "rockchip,rk3588-csi2-dcphy"; + phys = <0x2b>; + phy-names = "dcphy"; + status = "disabled"; + }; + + csi2-dphy0 { + compatible = "rockchip,rk3568-csi2-dphy"; + rockchip,hw = <0x2c>; + status = "disabled"; + }; + + csi2-dphy1 { + compatible = "rockchip,rk3568-csi2-dphy"; + rockchip,hw = <0x2c>; + status = "disabled"; + }; + + csi2-dphy2 { + compatible = "rockchip,rk3568-csi2-dphy"; + rockchip,hw = <0x2c>; + status = "disabled"; + }; + + display-subsystem { + compatible = "rockchip,display-subsystem"; + ports = <0x2d>; + clocks = <0x2e 0x2f>; + clock-names = "hdmi0_phy_pll\0hdmi1_phy_pll"; + memory-region = <0x30>; + memory-region-names = "drm-logo"; + + route { + + route-dp0 { + status = "disabled"; + logo,uboot = "logo.bmp"; + logo,kernel = "logo_kernel.bmp"; + logo,mode = "center"; + charge_logo,mode = "center"; + connect = <0x31>; + }; + + route-dsi0 { + status = "disabled"; + logo,uboot = "logo.bmp"; + logo,kernel = "logo_kernel.bmp"; + logo,mode = "center"; + charge_logo,mode = "center"; + connect = <0x32>; + }; + + route-dsi1 { + status = "disabled"; + logo,uboot = "logo.bmp"; + logo,kernel = "logo_kernel.bmp"; + logo,mode = "center"; + charge_logo,mode = "center"; + connect = <0x33>; + }; + + route-edp0 { + status = "disabled"; + logo,uboot = "logo.bmp"; + logo,kernel = "logo_kernel.bmp"; + logo,mode = "center"; + charge_logo,mode = "center"; + connect = <0x34>; + }; + + route-edp1 { + status = "disabled"; + logo,uboot = "logo.bmp"; + logo,kernel = "logo_kernel.bmp"; + logo,mode = "center"; + charge_logo,mode = "center"; + }; + + route-hdmi0 { + status = "okay"; + logo,uboot = "logo.bmp"; + logo,kernel = "logo_kernel.bmp"; + logo,mode = "center"; + charge_logo,mode = "center"; + connect = <0x35>; + }; + + route-rgb { + status = "disabled"; + logo,uboot = "logo.bmp"; + logo,kernel = "logo_kernel.bmp"; + logo,mode = "center"; + charge_logo,mode = "center"; + connect = <0x36>; + }; + + route-dp1 { + status = "disabled"; + logo,uboot = "logo.bmp"; + logo,kernel = "logo_kernel.bmp"; + logo,mode = "center"; + charge_logo,mode = "center"; + connect = <0x37>; + }; + + route-hdmi1 { + status = "disabled"; + logo,uboot = "logo.bmp"; + logo,kernel = "logo_kernel.bmp"; + logo,mode = "center"; + charge_logo,mode = "center"; + connect = <0x38>; + }; + }; + }; + + dmc { + compatible = "rockchip,rk3588-dmc"; + interrupts = <0x00 0x49 0x04>; + interrupt-names = "complete"; + devfreq-events = <0x39>; + clocks = <0x0e 0x04>; + clock-names = "dmc_clk"; + operating-points-v2 = <0x3a>; + upthreshold = <0x28>; + downdifferential = <0x14>; + system-status-level = <0x01 0x04 0x08 0x08 0x02 0x01 0x10 0x04 0x10000 0x04 0x80000 0x04 0x1000 0x08 0x4000 0x08 0x2000 0x08 0xc00 0x08 0x40000 0x08>; + auto-freq-en = <0x01>; + status = "okay"; + center-supply = <0x3b>; + mem-supply = <0x3c>; + }; + + dmc-opp-table { + compatible = "operating-points-v2"; + nvmem-cells = <0x3d>; + nvmem-cell-names = "leakage"; + rockchip,leakage-voltage-sel = <0x01 0x1f 0x00 0x20 0x2c 0x01 0x2d 0x39 0x02 0x3a 0xfe 0x03>; + rockchip,temp-hysteresis = <0x1388>; + rockchip,low-temp = <0x2710>; + rockchip,low-temp-min-volt = <0xb71b0>; + phandle = <0x3a>; + + opp-528000000 { + opp-hz = <0x00 0x1f78a400>; + opp-microvolt = <0xa4cb8 0xa4cb8 0xd59f8 0xb1008 0xb1008 0xb71b0>; + opp-microvolt-L1 = <0xa4cb8 0xa4cb8 0xd59f8 0xaae60 0xaae60 0xb71b0>; + opp-microvolt-L2 = <0xa4cb8 0xa4cb8 0xd59f8 0xa7d8c 0xa7d8c 0xb71b0>; + opp-microvolt-L3 = <0xa4cb8 0xa4cb8 0xd59f8 0xa4cb8 0xa4cb8 0xb71b0>; + }; + + opp-1068000000 { + opp-hz = <0x00 0x3fa86300>; + opp-microvolt = <0xb1008 0xb1008 0xd59f8 0xb40dc 0xb40dc 0xb71b0>; + opp-microvolt-L1 = <0xaae60 0xaae60 0xd59f8 0xadf34 0xadf34 0xb71b0>; + opp-microvolt-L2 = <0xa4cb8 0xa4cb8 0xd59f8 0xaae60 0xaae60 0xb71b0>; + opp-microvolt-L3 = <0xa4cb8 0xa4cb8 0xd59f8 0xa7d8c 0xa7d8c 0xb71b0>; + }; + + opp-1560000000 { + opp-hz = <0x00 0x5cfbb600>; + opp-microvolt = <0xc3500 0xc3500 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; + opp-microvolt-L1 = <0xbd358 0xbd358 0xd59f8 0xb1008 0xb1008 0xb71b0>; + opp-microvolt-L2 = <0xb71b0 0xb71b0 0xd59f8 0xadf34 0xadf34 0xb71b0>; + opp-microvolt-L3 = <0xb1008 0xb1008 0xd59f8 0xaae60 0xaae60 0xb71b0>; + }; + + opp-2750000000 { + opp-hz = <0x00 0xa3e9ab80>; + opp-microvolt = <0xd59f8 0xd59f8 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; + opp-microvolt-L1 = <0xcf850 0xcf850 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; + opp-microvolt-L2 = <0xcc77c 0xcc77c 0xd59f8 0xb1008 0xb1008 0xb71b0>; + opp-microvolt-L3 = <0xc96a8 0xc8320 0xd59f8 0xaae60 0xaae60 0xb71b0>; + }; + }; + + firmware { + + scmi { + compatible = "arm,scmi-smc"; + shmem = <0x3e>; + arm,smc-id = <0x82000010>; + #address-cells = <0x01>; + #size-cells = <0x00>; + + protocol@14 { + reg = <0x14>; + #clock-cells = <0x01>; + assigned-clocks = <0x0e 0x00 0x0e 0x02 0x0e 0x03>; + assigned-clock-rates = <0x30a32c00 0x30a32c00 0x30a32c00>; + phandle = <0x0e>; + }; + + protocol@16 { + reg = <0x16>; + #reset-cells = <0x01>; + phandle = <0x104>; + }; + }; + + sdei { + compatible = "arm,sdei-1.0"; + method = "smc"; + }; + + optee { + compatible = "linaro,optee-tz"; + method = "smc"; + }; + }; + + jpege-ccu { + compatible = "rockchip,vpu-jpege-ccu"; + status = "okay"; + phandle = <0xa4>; + }; + + mpp-srv { + compatible = "rockchip,mpp-service"; + rockchip,taskqueue-count = <0x0c>; + rockchip,resetgroup-count = <0x01>; + status = "okay"; + phandle = <0x9f>; + }; + + psci { + compatible = "arm,psci-1.0"; + method = "smc"; + }; + + rkcif-dvp { + compatible = "rockchip,rkcif-dvp"; + rockchip,hw = <0x3f>; + iommus = <0x40>; + status = "disabled"; + phandle = <0x41>; + }; + + rkcif-dvp-sditf { + compatible = "rockchip,rkcif-sditf"; + rockchip,cif = <0x41>; + status = "disabled"; + }; + + rkcif-mipi-lvds { + compatible = "rockchip,rkcif-mipi-lvds"; + rockchip,hw = <0x3f>; + iommus = <0x40>; + status = "disabled"; + phandle = <0x42>; + }; + + rkcif-mipi-lvds-sditf { + compatible = "rockchip,rkcif-sditf"; + rockchip,cif = <0x42>; + status = "disabled"; + }; + + rkcif-mipi-lvds-sditf-vir1 { + compatible = "rockchip,rkcif-sditf"; + rockchip,cif = <0x42>; + status = "disabled"; + }; + + rkcif-mipi-lvds-sditf-vir2 { + compatible = "rockchip,rkcif-sditf"; + rockchip,cif = <0x42>; + status = "disabled"; + }; + + rkcif-mipi-lvds-sditf-vir3 { + compatible = "rockchip,rkcif-sditf"; + rockchip,cif = <0x42>; + status = "disabled"; + }; + + rkcif-mipi-lvds1 { + compatible = "rockchip,rkcif-mipi-lvds"; + rockchip,hw = <0x3f>; + iommus = <0x40>; + status = "disabled"; + phandle = <0x43>; + }; + + rkcif-mipi-lvds1-sditf { + compatible = "rockchip,rkcif-sditf"; + rockchip,cif = <0x43>; + status = "disabled"; + }; + + rkcif-mipi-lvds1-sditf-vir1 { + compatible = "rockchip,rkcif-sditf"; + rockchip,cif = <0x43>; + status = "disabled"; + }; + + rkcif-mipi-lvds1-sditf-vir2 { + compatible = "rockchip,rkcif-sditf"; + rockchip,cif = <0x43>; + status = "disabled"; + }; + + rkcif-mipi-lvds1-sditf-vir3 { + compatible = "rockchip,rkcif-sditf"; + rockchip,cif = <0x43>; + status = "disabled"; + }; + + rkcif-mipi-lvds2 { + compatible = "rockchip,rkcif-mipi-lvds"; + rockchip,hw = <0x3f>; + iommus = <0x40>; + status = "disabled"; + phandle = <0x44>; + }; + + rkcif-mipi-lvds2-sditf { + compatible = "rockchip,rkcif-sditf"; + rockchip,cif = <0x44>; + status = "disabled"; + }; + + rkcif-mipi-lvds2-sditf-vir1 { + compatible = "rockchip,rkcif-sditf"; + rockchip,cif = <0x44>; + status = "disabled"; + }; + + rkcif-mipi-lvds2-sditf-vir2 { + compatible = "rockchip,rkcif-sditf"; + rockchip,cif = <0x44>; + status = "disabled"; + }; + + rkcif-mipi-lvds2-sditf-vir3 { + compatible = "rockchip,rkcif-sditf"; + rockchip,cif = <0x44>; + status = "disabled"; + }; + + rkcif-mipi-lvds3 { + compatible = "rockchip,rkcif-mipi-lvds"; + rockchip,hw = <0x3f>; + iommus = <0x40>; + status = "disabled"; + phandle = <0x45>; + }; + + rkcif-mipi-lvds3-sditf { + compatible = "rockchip,rkcif-sditf"; + rockchip,cif = <0x45>; + status = "disabled"; + }; + + rkcif-mipi-lvds3-sditf-vir1 { + compatible = "rockchip,rkcif-sditf"; + rockchip,cif = <0x45>; + status = "disabled"; + }; + + rkcif-mipi-lvds3-sditf-vir2 { + compatible = "rockchip,rkcif-sditf"; + rockchip,cif = <0x45>; + status = "disabled"; + }; + + rkcif-mipi-lvds3-sditf-vir3 { + compatible = "rockchip,rkcif-sditf"; + rockchip,cif = <0x45>; + status = "disabled"; + }; + + rkisp0-vir0 { + compatible = "rockchip,rkisp-vir"; + rockchip,hw = <0x46>; + status = "disabled"; + }; + + rkisp0-vir1 { + compatible = "rockchip,rkisp-vir"; + rockchip,hw = <0x46>; + status = "disabled"; + }; + + rkisp0-vir2 { + compatible = "rockchip,rkisp-vir"; + rockchip,hw = <0x46>; + status = "disabled"; + }; + + rkisp0-vir3 { + compatible = "rockchip,rkisp-vir"; + rockchip,hw = <0x46>; + status = "disabled"; + }; + + rkisp1-vir0 { + compatible = "rockchip,rkisp-vir"; + rockchip,hw = <0x47>; + status = "disabled"; + }; + + rkisp1-vir1 { + compatible = "rockchip,rkisp-vir"; + rockchip,hw = <0x47>; + status = "disabled"; + }; + + rkisp1-vir2 { + compatible = "rockchip,rkisp-vir"; + rockchip,hw = <0x47>; + status = "disabled"; + }; + + rkisp1-vir3 { + compatible = "rockchip,rkisp-vir"; + rockchip,hw = <0x47>; + status = "disabled"; + }; + + rkispp0-vir0 { + compatible = "rockchip,rk3588-rkispp-vir"; + rockchip,hw = <0x48>; + status = "disabled"; + }; + + rkispp1-vir0 { + compatible = "rockchip,rk3588-rkispp-vir"; + rockchip,hw = <0x49>; + status = "disabled"; + }; + + rkvenc-ccu { + compatible = "rockchip,rkv-encoder-v2-ccu"; + status = "okay"; + phandle = <0xaa>; + }; + + rockchip-suspend { + compatible = "rockchip,pm-rk3588"; + status = "okay"; + rockchip,sleep-debug-en = <0x01>; + rockchip,sleep-mode-config = <0x04>; + rockchip,wakeup-config = <0x900>; + }; + + rockchip-system-monitor { + compatible = "rockchip,system-monitor"; + rockchip,thermal-zone = "soc-thermal"; + }; + + thermal-zones { + + soc-thermal { + polling-delay-passive = <0x14>; + polling-delay = <0x3e8>; + sustainable-power = <0x834>; + thermal-sensors = <0x4a 0x00>; + + trips { + + trip-point-0 { + temperature = <0x124f8>; + hysteresis = <0x7d0>; + type = "passive"; + }; + + trip-point-1 { + temperature = <0x14c08>; + hysteresis = <0x7d0>; + type = "passive"; + phandle = <0x4b>; + }; + + soc-crit { + temperature = <0x1c138>; + hysteresis = <0x7d0>; + type = "critical"; + }; + }; + + cooling-maps { + + map0 { + trip = <0x4b>; + cooling-device = <0x06 0xffffffff 0xffffffff>; + contribution = <0x400>; + }; + + map3 { + trip = <0x4b>; + cooling-device = <0x4c 0xffffffff 0xffffffff>; + contribution = <0x400>; + }; + }; + }; + + bigcore0-thermal { + polling-delay-passive = <0x14>; + polling-delay = <0x3e8>; + thermal-sensors = <0x4a 0x01>; + }; + + bigcore1-thermal { + polling-delay-passive = <0x14>; + polling-delay = <0x3e8>; + thermal-sensors = <0x4a 0x02>; + }; + + littlecore-thermal { + polling-delay-passive = <0x14>; + polling-delay = <0x3e8>; + thermal-sensors = <0x4a 0x03>; + }; + + center-thermal { + polling-delay-passive = <0x14>; + polling-delay = <0x3e8>; + thermal-sensors = <0x4a 0x04>; + }; + + gpu-thermal { + polling-delay-passive = <0x14>; + polling-delay = <0x3e8>; + thermal-sensors = <0x4a 0x05>; + }; + + npu-thermal { + polling-delay-passive = <0x14>; + polling-delay = <0x3e8>; + thermal-sensors = <0x4a 0x06>; + }; + }; + + timer { + compatible = "arm,armv8-timer"; + interrupts = <0x01 0x0d 0xf04 0x01 0x0e 0xf04 0x01 0x0b 0xf04 0x01 0x0a 0xf04>; + }; + + sram@10f000 { + compatible = "mmio-sram"; + reg = <0x00 0x10f000 0x00 0x100>; + #address-cells = <0x01>; + #size-cells = <0x01>; + ranges = <0x00 0x00 0x10f000 0x100>; + + sram@0 { + compatible = "arm,scmi-shmem"; + reg = <0x00 0x100>; + phandle = <0x3e>; + }; + }; + + gpu@fb000000 { + compatible = "arm,mali-bifrost"; + reg = <0x00 0xfb000000 0x00 0x200000>; + interrupts = <0x00 0x5e 0x04 0x00 0x5d 0x04 0x00 0x5c 0x04>; + interrupt-names = "GPU\0MMU\0JOB"; + clocks = <0x0e 0x05 0x02 0x115 0x02 0x116 0x02 0x114>; + clock-names = "clk_mali\0clk_gpu_coregroup\0clk_gpu_stacks\0clk_gpu"; + assigned-clocks = <0x0e 0x05>; + assigned-clock-rates = <0xbebc200>; + power-domains = <0x4d 0x0c>; + operating-points-v2 = <0x4e>; + #cooling-cells = <0x02>; + dynamic-power-coefficient = <0xba6>; + upthreshold = <0x1e>; + downdifferential = <0x0a>; + status = "okay"; + mali-supply = <0x4f>; + mem-supply = <0x4f>; + phandle = <0x4c>; + }; + + gpu-opp-table { + compatible = "operating-points-v2"; + nvmem-cells = <0x50 0x20>; + nvmem-cell-names = "leakage\0specification_serial_number"; + rockchip,supported-hw; + rockchip,pvtm-voltage-sel = <0x00 0x32f 0x00 0x330 0x343 0x01 0x344 0x35c 0x02 0x35d 0x375 0x03 0x376 0x38e 0x04 0x38f 0x270f 0x05>; + rockchip,pvtm-pvtpll; + rockchip,pvtm-offset = <0x1c>; + rockchip,pvtm-freq = <0xc3500>; + rockchip,pvtm-sample-time = <0x44c>; + rockchip,pvtm-volt = <0xb71b0>; + rockchip,pvtm-ref-temp = <0x19>; + rockchip,pvtm-temp-prop = <0xffffff79 0xffffff79>; + rockchip,pvtm-thermal-zone = "gpu-thermal"; + clocks = <0x02 0x114>; + clock-names = "clk"; + rockchip,grf = <0x51>; + volt-mem-read-margin = <0xd0bd8 0x01 0xbac48 0x02 0xa4cb8 0x03 0x78d98 0x04>; + low-volt-mem-read-margin = <0x04>; + intermediate-threshold-freq = <0x61a80>; + rockchip,temp-hysteresis = <0x1388>; + rockchip,low-temp = <0x2710>; + rockchip,low-temp-min-volt = <0xb71b0>; + rockchip,high-temp = <0x14c08>; + rockchip,high-temp-max-freq = <0xc3500>; + phandle = <0x4e>; + + opp-300000000 { + opp-supported-hw = <0xff 0xffff>; + opp-hz = <0x00 0x11e1a300>; + opp-microvolt = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + }; + + opp-400000000 { + opp-supported-hw = <0xff 0xffff>; + opp-hz = <0x00 0x17d78400>; + opp-microvolt = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + }; + + opp-500000000 { + opp-supported-hw = <0xff 0xffff>; + opp-hz = <0x00 0x1dcd6500>; + opp-microvolt = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + }; + + opp-600000000 { + opp-supported-hw = <0xff 0xffff>; + opp-hz = <0x00 0x23c34600>; + opp-microvolt = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + }; + + opp-700000000 { + opp-supported-hw = <0xff 0xffff>; + opp-hz = <0x00 0x29b92700>; + opp-microvolt = <0xaae60 0xaae60 0xcf850 0xaae60 0xaae60 0xcf850>; + opp-microvolt-L1 = <0xa7d8c 0xa7d8c 0xcf850 0xa7d8c 0xa7d8c 0xcf850>; + opp-microvolt-L2 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + opp-microvolt-L4 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + opp-microvolt-L5 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + }; + + opp-800000000 { + opp-supported-hw = <0xff 0xffff>; + opp-hz = <0x00 0x2faf0800>; + opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; + opp-microvolt-L1 = <0xb40dc 0xb40dc 0xcf850 0xb40dc 0xb40dc 0xcf850>; + opp-microvolt-L2 = <0xb1008 0xb1008 0xcf850 0xb1008 0xb1008 0xcf850>; + opp-microvolt-L3 = <0xadf34 0xadf34 0xcf850 0xadf34 0xadf34 0xcf850>; + opp-microvolt-L4 = <0xaae60 0xaae60 0xcf850 0xaae60 0xaae60 0xcf850>; + }; + + opp-900000000 { + opp-supported-hw = <0xfb 0xffff>; + opp-hz = <0x00 0x35a4e900>; + opp-microvolt = <0xc3500 0xc3500 0xcf850 0xc3500 0xc3500 0xcf850>; + opp-microvolt-L1 = <0xc042c 0xc042c 0xcf850 0xc042c 0xc042c 0xcf850>; + opp-microvolt-L2 = <0xbd358 0xbd358 0xcf850 0xbd358 0xbd358 0xcf850>; + opp-microvolt-L3 = <0xba284 0xba284 0xcf850 0xba284 0xba284 0xcf850>; + opp-microvolt-L4 = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; + }; + + opp-1000000000 { + opp-supported-hw = <0xfb 0xffff>; + opp-hz = <0x00 0x3b9aca00>; + opp-microvolt = <0xcf850 0xcf850 0xcf850 0xcf850 0xcf850 0xcf850>; + opp-microvolt-L1 = <0xcc77c 0xcc77c 0xcf850 0xcc77c 0xcc77c 0xcf850>; + opp-microvolt-L2 = <0xc96a8 0xc96a8 0xcf850 0xc96a8 0xc96a8 0xcf850>; + opp-microvolt-L3 = <0xc65d4 0xc65d4 0xcf850 0xc65d4 0xc65d4 0xcf850>; + opp-microvolt-L4 = <0xc3500 0xc3500 0xcf850 0xc3500 0xc3500 0xcf850>; + }; + }; + + usbdrd3_0 { + compatible = "rockchip,rk3588-dwc3\0rockchip,rk3399-dwc3"; + clocks = <0x02 0x1a3 0x02 0x1a2 0x02 0x1a1>; + clock-names = "ref\0suspend\0bus"; + #address-cells = <0x02>; + #size-cells = <0x02>; + ranges; + status = "okay"; + + usb@fc000000 { + compatible = "snps,dwc3"; + reg = <0x00 0xfc000000 0x00 0x400000>; + interrupts = <0x00 0xdc 0x04>; + power-domains = <0x4d 0x1f>; + resets = <0x02 0x2a4>; + reset-names = "usb3-otg"; + dr_mode = "host"; + phys = <0x52 0x53>; + phy-names = "usb2-phy\0usb3-phy"; + phy_type = "utmi_wide"; + snps,dis_enblslpm_quirk; + snps,dis-u2-freeclk-exists-quirk; + snps,dis-del-phy-power-chg-quirk; + snps,dis-tx-ipgap-linecheck-quirk; + snps,parkmode-disable-ss-quirk; + status = "okay"; + usb-role-switch; + + port { + #address-cells = <0x01>; + #size-cells = <0x00>; + + endpoint@0 { + reg = <0x00>; + remote-endpoint = <0x54>; + phandle = <0x163>; + }; + }; + }; + }; + + usb@fc800000 { + compatible = "rockchip,rk3588-ehci\0generic-ehci"; + reg = <0x00 0xfc800000 0x00 0x40000>; + interrupts = <0x00 0xd7 0x04>; + clocks = <0x02 0x19d 0x02 0x19e 0x55>; + clock-names = "usbhost\0arbiter\0utmi"; + companion = <0x56>; + phys = <0x57>; + phy-names = "usb2-phy"; + power-domains = <0x4d 0x1f>; + status = "okay"; + }; + + usb@fc840000 { + compatible = "generic-ohci"; + reg = <0x00 0xfc840000 0x00 0x40000>; + interrupts = <0x00 0xd8 0x04>; + clocks = <0x02 0x19d 0x02 0x19e 0x55>; + clock-names = "usbhost\0arbiter\0utmi"; + phys = <0x57>; + phy-names = "usb2-phy"; + power-domains = <0x4d 0x1f>; + status = "okay"; + phandle = <0x56>; + }; + + usb@fc880000 { + compatible = "rockchip,rk3588-ehci\0generic-ehci"; + reg = <0x00 0xfc880000 0x00 0x40000>; + interrupts = <0x00 0xda 0x04>; + clocks = <0x02 0x19f 0x02 0x1a0 0x58>; + clock-names = "usbhost\0arbiter\0utmi"; + companion = <0x59>; + phys = <0x5a>; + phy-names = "usb2-phy"; + power-domains = <0x4d 0x1f>; + status = "okay"; + }; + + usb@fc8c0000 { + compatible = "generic-ohci"; + reg = <0x00 0xfc8c0000 0x00 0x40000>; + interrupts = <0x00 0xdb 0x04>; + clocks = <0x02 0x19f 0x02 0x1a0 0x58>; + clock-names = "usbhost\0arbiter\0utmi"; + phys = <0x5a>; + phy-names = "usb2-phy"; + power-domains = <0x4d 0x1f>; + status = "okay"; + phandle = <0x59>; + }; + + iommu@fc900000 { + compatible = "arm,smmu-v3"; + reg = <0x00 0xfc900000 0x00 0x200000>; + interrupts = <0x00 0x171 0x04 0x00 0x173 0x04 0x00 0x176 0x04 0x00 0x16f 0x04>; + interrupt-names = "eventq\0gerror\0priq\0cmdq-sync"; + #iommu-cells = <0x01>; + status = "disabled"; + }; + + iommu@fcb00000 { + compatible = "arm,smmu-v3"; + reg = <0x00 0xfcb00000 0x00 0x200000>; + interrupts = <0x00 0x17d 0x04 0x00 0x17f 0x04 0x00 0x182 0x04 0x00 0x17b 0x04>; + interrupt-names = "eventq\0gerror\0priq\0cmdq-sync"; + #iommu-cells = <0x01>; + status = "disabled"; + }; + + usbhost3_0 { + compatible = "rockchip,rk3588-dwc3\0rockchip,rk3399-dwc3"; + clocks = <0x02 0x179 0x02 0x178 0x02 0x177 0x02 0x17a 0x02 0x166 0x02 0x181>; + clock-names = "ref\0suspend\0bus\0utmi\0php\0pipe"; + #address-cells = <0x02>; + #size-cells = <0x02>; + ranges; + status = "disabled"; + + usb@fcd00000 { + compatible = "snps,dwc3"; + reg = <0x00 0xfcd00000 0x00 0x400000>; + interrupts = <0x00 0xde 0x04>; + resets = <0x02 0x237>; + reset-names = "usb3-host"; + dr_mode = "host"; + phys = <0x5b 0x04>; + phy-names = "usb3-phy"; + phy_type = "utmi_wide"; + snps,dis_enblslpm_quirk; + snps,dis-u2-freeclk-exists-quirk; + snps,dis-del-phy-power-chg-quirk; + snps,dis-tx-ipgap-linecheck-quirk; + snps,dis_rxdet_inp3_quirk; + snps,parkmode-disable-ss-quirk; + status = "disabled"; + }; + }; + + syscon@fd588000 { + compatible = "rockchip,rk3588-pmu0-grf\0syscon\0simple-mfd"; + reg = <0x00 0xfd588000 0x00 0x2000>; + + reboot-mode { + compatible = "syscon-reboot-mode"; + offset = <0x80>; + mode-bootloader = <0x5242c301>; + mode-charge = <0x5242c30b>; + mode-fastboot = <0x5242c309>; + mode-loader = <0x5242c301>; + mode-normal = <0x5242c300>; + mode-recovery = <0x5242c303>; + mode-ums = <0x5242c30c>; + mode-panic = <0x5242c307>; + mode-watchdog = <0x5242c308>; + }; + }; + + syscon@fd58a000 { + compatible = "rockchip,rk3588-pmu1-grf\0syscon"; + reg = <0x00 0xfd58a000 0x00 0x2000>; + phandle = <0xe6>; + }; + + syscon@fd58c000 { + compatible = "rockchip,rk3588-sys-grf\0syscon\0simple-mfd"; + reg = <0x00 0xfd58c000 0x00 0x1000>; + phandle = <0xb7>; + + rgb { + compatible = "rockchip,rk3588-rgb"; + pinctrl-names = "default"; + pinctrl-0 = <0x5c>; + status = "disabled"; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + reg = <0x00>; + #address-cells = <0x01>; + #size-cells = <0x00>; + + endpoint@2 { + reg = <0x02>; + remote-endpoint = <0x36>; + status = "disabled"; + phandle = <0xd2>; + }; + }; + }; + }; + }; + + syscon@fd590000 { + compatible = "rockchip,rk3588-bigcore0-grf\0syscon"; + reg = <0x00 0xfd590000 0x00 0x100>; + phandle = <0x24>; + }; + + syscon@fd592000 { + compatible = "rockchip,rk3588-bigcore1-grf\0syscon"; + reg = <0x00 0xfd592000 0x00 0x100>; + phandle = <0x26>; + }; + + syscon@fd594000 { + compatible = "rockchip,rk3588-litcore-grf\0syscon"; + reg = <0x00 0xfd594000 0x00 0x100>; + phandle = <0x21>; + }; + + syscon@fd598000 { + compatible = "rockchip,rk3588-dsu-grf\0syscon"; + reg = <0x00 0xfd598000 0x00 0x100>; + phandle = <0x22>; + }; + + syscon@fd5a0000 { + compatible = "rockchip,rk3588-gpu-grf\0syscon"; + reg = <0x00 0xfd5a0000 0x00 0x100>; + phandle = <0x51>; + }; + + syscon@fd5a2000 { + compatible = "rockchip,rk3588-npu-grf\0syscon"; + reg = <0x00 0xfd5a2000 0x00 0x100>; + phandle = <0x9d>; + }; + + syscon@fd5a4000 { + compatible = "rockchip,rk3588-vop-grf\0syscon"; + reg = <0x00 0xfd5a4000 0x00 0x2000>; + phandle = <0xb9>; + }; + + syscon@fd5a6000 { + compatible = "rockchip,rk3588-vo-grf\0syscon"; + reg = <0x00 0xfd5a6000 0x00 0x2000>; + clocks = <0x5d>; + phandle = <0xd7>; + }; + + syscon@fd5a8000 { + compatible = "rockchip,rk3588-vo-grf\0syscon"; + reg = <0x00 0xfd5a8000 0x00 0x100>; + clocks = <0x5e>; + phandle = <0xba>; + }; + + syscon@fd5ac000 { + compatible = "rockchip,rk3588-usb-grf\0syscon"; + reg = <0x00 0xfd5ac000 0x00 0x4000>; + phandle = <0x5f>; + }; + + syscon@fd5b0000 { + compatible = "rockchip,rk3588-php-grf\0syscon"; + reg = <0x00 0xfd5b0000 0x00 0x1000>; + phandle = <0x61>; + }; + + syscon@fd5b4000 { + compatible = "rockchip,mipi-dphy-grf\0syscon"; + reg = <0x00 0xfd5b4000 0x00 0x1000>; + phandle = <0x173>; + }; + + syscon@fd5b5000 { + compatible = "rockchip,mipi-dphy-grf\0syscon"; + reg = <0x00 0xfd5b5000 0x00 0x1000>; + phandle = <0x1a7>; + }; + + syscon@fd5bc000 { + compatible = "rockchip,pipe-phy-grf\0syscon"; + reg = <0x00 0xfd5bc000 0x00 0x100>; + phandle = <0x174>; + }; + + syscon@fd5c4000 { + compatible = "rockchip,pipe-phy-grf\0syscon"; + reg = <0x00 0xfd5c4000 0x00 0x100>; + phandle = <0x175>; + }; + + syscon@fd5c8000 { + compatible = "rockchip,rk3588-usbdpphy-grf\0syscon"; + reg = <0x00 0xfd5c8000 0x00 0x4000>; + phandle = <0x16d>; + }; + + syscon@fd5d0000 { + compatible = "rockchip,rk3588-usb2phy-grf\0syscon\0simple-mfd"; + reg = <0x00 0xfd5d0000 0x00 0x4000>; + #address-cells = <0x01>; + #size-cells = <0x01>; + phandle = <0x16c>; + + usb2-phy@0 { + compatible = "rockchip,rk3588-usb2phy"; + reg = <0x00 0x10>; + interrupts = <0x00 0x189 0x04>; + resets = <0x02 0xc0047 0x02 0x488>; + reset-names = "phy\0apb"; + clocks = <0x02 0x2b5>; + clock-names = "phyclk"; + clock-output-names = "usb480m_phy0"; + #clock-cells = <0x00>; + rockchip,usbctrl-grf = <0x5f>; + status = "okay"; + phandle = <0x16e>; + + otg-port { + #phy-cells = <0x00>; + status = "okay"; + rockchip,typec-vbus-det; + phandle = <0x52>; + }; + }; + }; + + syscon@fd5d8000 { + compatible = "rockchip,rk3588-usb2phy-grf\0syscon\0simple-mfd"; + reg = <0x00 0xfd5d8000 0x00 0x4000>; + #address-cells = <0x01>; + #size-cells = <0x01>; + + usb2-phy@8000 { + compatible = "rockchip,rk3588-usb2phy"; + reg = <0x8000 0x10>; + interrupts = <0x00 0x187 0x04>; + resets = <0x02 0xc0049 0x02 0x48a>; + reset-names = "phy\0apb"; + clocks = <0x02 0x2b5>; + clock-names = "phyclk"; + clock-output-names = "usb480m_phy2"; + #clock-cells = <0x00>; + status = "okay"; + phandle = <0x55>; + + host-port { + #phy-cells = <0x00>; + status = "okay"; + phy-supply = <0x60>; + phandle = <0x57>; + }; + }; + }; + + syscon@fd5dc000 { + compatible = "rockchip,rk3588-usb2phy-grf\0syscon\0simple-mfd"; + reg = <0x00 0xfd5dc000 0x00 0x4000>; + #address-cells = <0x01>; + #size-cells = <0x01>; + + usb2-phy@c000 { + compatible = "rockchip,rk3588-usb2phy"; + reg = <0xc000 0x10>; + interrupts = <0x00 0x188 0x04>; + resets = <0x02 0xc004a 0x02 0x48b>; + reset-names = "phy\0apb"; + clocks = <0x02 0x2b5>; + clock-names = "phyclk"; + clock-output-names = "usb480m_phy3"; + #clock-cells = <0x00>; + status = "okay"; + phandle = <0x58>; + + host-port { + #phy-cells = <0x00>; + status = "okay"; + phy-supply = <0x60>; + phandle = <0x5a>; + }; + }; + }; + + syscon@fd5e0000 { + compatible = "rockchip,rk3588-hdptxphy-grf\0syscon"; + reg = <0x00 0xfd5e0000 0x00 0x100>; + phandle = <0x16b>; + }; + + syscon@fd5e8000 { + compatible = "rockchip,mipi-dcphy-grf\0syscon"; + reg = <0x00 0xfd5e8000 0x00 0x4000>; + phandle = <0x171>; + }; + + syscon@fd5ec000 { + compatible = "rockchip,mipi-dcphy-grf\0syscon"; + reg = <0x00 0xfd5ec000 0x00 0x4000>; + phandle = <0x172>; + }; + + syscon@fd5f0000 { + compatible = "rockchip,rk3588-ioc\0syscon"; + reg = <0x00 0xfd5f0000 0x00 0x10000>; + phandle = <0x176>; + }; + + clock-controller@fd7c0000 { + compatible = "rockchip,rk3588-cru"; + rockchip,grf = <0x61>; + reg = <0x00 0xfd7c0000 0x00 0x5c000>; + #clock-cells = <0x01>; + #reset-cells = <0x01>; + assigned-clocks = <0x02 0x09 0x02 0x05 0x02 0x08 0x02 0x07 0x02 0xd8 0x02 0xda 0x02 0xd9 0x02 0x10e 0x02 0x10f 0x02 0x110 0x02 0x299 0x02 0x29a 0x02 0x7b 0x02 0xec 0x02 0x114 0x02 0x208 0x02 0x20e>; + assigned-clock-rates = <0x4190ab00 0x2ee00000 0x32a9f880 0x46cf7100 0x29d7ab80 0x17d78400 0x1dcd6500 0x2faf0800 0x5f5e100 0x17d78400 0x5f5e100 0xbebc200 0x165a0bc0 0x8f0d180 0xbebc200 0xb71b00 0xb71b00>; + phandle = <0x02>; + }; + + i2c@fd880000 { + compatible = "rockchip,rk3588-i2c\0rockchip,rk3399-i2c"; + reg = <0x00 0xfd880000 0x00 0x1000>; + clocks = <0x02 0x287 0x02 0x286>; + clock-names = "i2c\0pclk"; + interrupts = <0x00 0x13d 0x04>; + pinctrl-names = "default"; + pinctrl-0 = <0x62>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "okay"; + + rk8602@42 { + compatible = "rockchip,rk8602"; + reg = <0x42>; + vin-supply = <0x63>; + regulator-compatible = "rk860x-reg"; + regulator-name = "vdd_cpu_big0_s0"; + regulator-min-microvolt = <0x86470>; + regulator-max-microvolt = <0x100590>; + regulator-ramp-delay = <0x8fc>; + rockchip,suspend-voltage-selector = <0x01>; + regulator-boot-on; + regulator-always-on; + phandle = <0x18>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + rk8603@43 { + compatible = "rockchip,rk8603"; + reg = <0x43>; + vin-supply = <0x63>; + regulator-compatible = "rk860x-reg"; + regulator-name = "vdd_cpu_big1_s0"; + regulator-min-microvolt = <0x86470>; + regulator-max-microvolt = <0x100590>; + regulator-ramp-delay = <0x8fc>; + rockchip,suspend-voltage-selector = <0x01>; + regulator-boot-on; + regulator-always-on; + phandle = <0x1c>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + }; + + serial@fd890000 { + compatible = "rockchip,rk3588-uart\0snps,dw-apb-uart"; + reg = <0x00 0xfd890000 0x00 0x100>; + interrupts = <0x00 0x14b 0x04>; + clocks = <0x02 0x2ae 0x02 0x2af>; + clock-names = "baudclk\0apb_pclk"; + reg-shift = <0x02>; + reg-io-width = <0x04>; + dmas = <0x64 0x06 0x64 0x07>; + pinctrl-names = "default"; + pinctrl-0 = <0x65>; + status = "disabled"; + }; + + pwm@fd8b0000 { + compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; + reg = <0x00 0xfd8b0000 0x00 0x10>; + #pwm-cells = <0x03>; + pinctrl-names = "active"; + pinctrl-0 = <0x66>; + clocks = <0x02 0x2a5 0x02 0x2a4>; + clock-names = "pwm\0pclk"; + status = "disabled"; + }; + + pwm@fd8b0010 { + compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; + reg = <0x00 0xfd8b0010 0x00 0x10>; + #pwm-cells = <0x03>; + pinctrl-names = "active"; + pinctrl-0 = <0x67>; + clocks = <0x02 0x2a5 0x02 0x2a4>; + clock-names = "pwm\0pclk"; + status = "disabled"; + }; + + pwm@fd8b0020 { + compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; + reg = <0x00 0xfd8b0020 0x00 0x10>; + #pwm-cells = <0x03>; + pinctrl-names = "active"; + pinctrl-0 = <0x68>; + clocks = <0x02 0x2a5 0x02 0x2a4>; + clock-names = "pwm\0pclk"; + status = "disabled"; + }; + + pwm@fd8b0030 { + compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; + reg = <0x00 0xfd8b0030 0x00 0x10>; + interrupts = <0x00 0x158 0x04 0x00 0x159 0x04>; + #pwm-cells = <0x03>; + pinctrl-names = "active"; + pinctrl-0 = <0x69>; + clocks = <0x02 0x2a5 0x02 0x2a4>; + clock-names = "pwm\0pclk"; + status = "disabled"; + }; + + power-management@fd8d8000 { + compatible = "rockchip,rk3588-pmu\0syscon\0simple-mfd"; + reg = <0x00 0xfd8d8000 0x00 0x400>; + phandle = <0xbb>; + + power-controller { + compatible = "rockchip,rk3588-power-controller"; + #power-domain-cells = <0x01>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "okay"; + phandle = <0x4d>; + + power-domain@8 { + reg = <0x08>; + #address-cells = <0x01>; + #size-cells = <0x00>; + + power-domain@9 { + reg = <0x09>; + #address-cells = <0x01>; + #size-cells = <0x00>; + clocks = <0x02 0x12f 0x02 0x131 0x02 0x130 0x02 0x126>; + pm_qos = <0x6a 0x6b 0x6c>; + + power-domain@10 { + reg = <0x0a>; + clocks = <0x02 0x12f 0x02 0x131 0x02 0x130>; + pm_qos = <0x6d>; + }; + + power-domain@11 { + reg = <0x0b>; + clocks = <0x02 0x12f 0x02 0x131 0x02 0x130>; + pm_qos = <0x6e>; + }; + }; + }; + + power-domain@12 { + reg = <0x0c>; + clocks = <0x02 0x114 0x02 0x115 0x02 0x116>; + pm_qos = <0x6f 0x70 0x71 0x72>; + }; + + power-domain@13 { + reg = <0x0d>; + #address-cells = <0x01>; + #size-cells = <0x00>; + + power-domain@14 { + reg = <0x0e>; + clocks = <0x02 0x18f 0x02 0x1be 0x02 0x1bc 0x02 0x190 0x02 0x18e>; + pm_qos = <0x73>; + }; + + power-domain@15 { + reg = <0x0f>; + clocks = <0x02 0x194 0x02 0x1be 0x02 0x1bc 0x02 0x195>; + pm_qos = <0x74>; + }; + + power-domain@16 { + reg = <0x10>; + #address-cells = <0x01>; + #size-cells = <0x00>; + clocks = <0x02 0x1c4 0x02 0x1c5>; + pm_qos = <0x75 0x76 0x77>; + + power-domain@17 { + reg = <0x11>; + clocks = <0x02 0x1c9 0x02 0x1c4 0x02 0x1c5 0x02 0x1ca>; + pm_qos = <0x78 0x79 0x7a>; + }; + }; + }; + + power-domain@21 { + reg = <0x15>; + #address-cells = <0x01>; + #size-cells = <0x00>; + clocks = <0x02 0x1be 0x02 0x1bd 0x02 0x1bc 0x02 0x1bf 0x02 0x1aa 0x02 0x1a9 0x02 0x1ac 0x02 0x1ad 0x02 0x1ae 0x02 0x1af 0x02 0x1b0 0x02 0x1b1 0x02 0x1b2 0x02 0x1b3 0x02 0x1b4 0x02 0x1b5 0x02 0x1b7 0x02 0x1b6>; + pm_qos = <0x7b 0x7c 0x7d 0x7e 0x7f 0x80 0x81 0x82>; + + power-domain@23 { + reg = <0x17>; + clocks = <0x02 0x4b 0x02 0x49 0x02 0x1be>; + pm_qos = <0x83>; + }; + + power-domain@14 { + reg = <0x0e>; + clocks = <0x02 0x18f 0x02 0x1be 0x02 0x1bc 0x02 0x190>; + pm_qos = <0x73>; + }; + + power-domain@15 { + reg = <0x0f>; + clocks = <0x02 0x194 0x02 0x1be 0x02 0x1bc>; + pm_qos = <0x74>; + }; + + power-domain@22 { + reg = <0x16>; + clocks = <0x02 0x1ba 0x02 0x1b9>; + pm_qos = <0x84>; + }; + }; + + power-domain@24 { + reg = <0x18>; + #address-cells = <0x01>; + #size-cells = <0x00>; + clocks = <0x02 0x26e 0x02 0x26d 0x02 0x270>; + pm_qos = <0x85 0x86>; + + power-domain@25 { + reg = <0x19>; + clocks = <0x02 0x1f6 0x02 0x1f7 0x02 0x1f5 0x02 0x1f3 0x02 0x1ee 0x02 0x1ed 0x02 0x26d>; + pm_qos = <0x87>; + }; + }; + + power-domain@26 { + reg = <0x1a>; + clocks = <0x02 0x22e 0x02 0x22f 0x02 0x22d 0x02 0x218 0x02 0x217 0x02 0x22b 0x02 0x264>; + pm_qos = <0x88 0x89>; + }; + + power-domain@27 { + reg = <0x1b>; + #address-cells = <0x01>; + #size-cells = <0x00>; + clocks = <0x02 0x1e1 0x02 0x1e2 0x02 0x1df 0x02 0x1de 0x02 0x1e5 0x02 0x1e4>; + pm_qos = <0x8a 0x8b 0x8c 0x8d>; + + power-domain@28 { + reg = <0x1c>; + clocks = <0x02 0x121 0x02 0x120 0x02 0x1e1 0x02 0x1e2>; + pm_qos = <0x8e 0x8f>; + }; + + power-domain@29 { + reg = <0x1d>; + clocks = <0x02 0x1d6 0x02 0x1d5 0x02 0x1d9 0x02 0x1d8 0x02 0x1e2>; + pm_qos = <0x90 0x91>; + }; + }; + + power-domain@30 { + reg = <0x1e>; + clocks = <0x02 0x189 0x02 0x18a>; + pm_qos = <0x92>; + }; + + power-domain@31 { + reg = <0x1f>; + clocks = <0x02 0x166 0x02 0x19b 0x02 0x19c 0x02 0x19d 0x02 0x19e 0x02 0x19f 0x02 0x1a0>; + pm_qos = <0x93 0x94 0x95 0x96>; + }; + + power-domain@33 { + reg = <0x21>; + clocks = <0x02 0x166 0x02 0x169 0x02 0x16a>; + }; + + power-domain@34 { + reg = <0x22>; + clocks = <0x02 0x166 0x02 0x169 0x02 0x16a>; + }; + + power-domain@37 { + reg = <0x25>; + clocks = <0x02 0x199 0x02 0x140>; + pm_qos = <0x97>; + }; + + power-domain@38 { + reg = <0x26>; + clocks = <0x02 0x3c 0x02 0x3d>; + }; + + power-domain@40 { + reg = <0x28>; + pm_qos = <0x98>; + }; + }; + }; + + pvtm@fda40000 { + compatible = "rockchip,rk3588-bigcore0-pvtm"; + reg = <0x00 0xfda40000 0x00 0x100>; + #address-cells = <0x01>; + #size-cells = <0x00>; + + pvtm@0 { + reg = <0x00>; + clocks = <0x02 0x2c6 0x02 0x15>; + clock-names = "clk\0pclk"; + }; + }; + + pvtm@fda50000 { + compatible = "rockchip,rk3588-bigcore1-pvtm"; + reg = <0x00 0xfda50000 0x00 0x100>; + #address-cells = <0x01>; + #size-cells = <0x00>; + + pvtm@1 { + reg = <0x01>; + clocks = <0x02 0x2c8 0x02 0x17>; + clock-names = "clk\0pclk"; + }; + }; + + pvtm@fda60000 { + compatible = "rockchip,rk3588-litcore-pvtm"; + reg = <0x00 0xfda60000 0x00 0x100>; + #address-cells = <0x01>; + #size-cells = <0x00>; + + pvtm@2 { + reg = <0x02>; + clocks = <0x02 0x2ca 0x02 0x1b>; + clock-names = "clk\0pclk"; + }; + }; + + pvtm@fdaf0000 { + compatible = "rockchip,rk3588-npu-pvtm"; + reg = <0x00 0xfdaf0000 0x00 0x100>; + #address-cells = <0x01>; + #size-cells = <0x00>; + + pvtm@3 { + reg = <0x03>; + clocks = <0x02 0x12b 0x02 0x129>; + clock-names = "clk\0pclk"; + resets = <0x02 0x1de 0x02 0x1dc>; + reset-names = "rts\0rst-p"; + }; + }; + + pvtm@fdb30000 { + compatible = "rockchip,rk3588-gpu-pvtm"; + reg = <0x00 0xfdb30000 0x00 0x100>; + #address-cells = <0x01>; + #size-cells = <0x00>; + + pvtm@4 { + reg = <0x04>; + clocks = <0x02 0x118>; + clock-names = "clk"; + resets = <0x02 0x430 0x02 0x42f>; + reset-names = "rts\0rst-p"; + }; + }; + + npu@fdab0000 { + compatible = "rockchip,rk3588-rknpu"; + reg = <0x00 0xfdab0000 0x00 0x10000 0x00 0xfdac0000 0x00 0x10000 0x00 0xfdad0000 0x00 0x10000>; + interrupts = <0x00 0x6e 0x04 0x00 0x6f 0x04 0x00 0x70 0x04>; + interrupt-names = "npu0_irq\0npu1_irq\0npu2_irq"; + clocks = <0x0e 0x06 0x02 0x12d 0x02 0x122 0x02 0x124 0x02 0x12e 0x02 0x123 0x02 0x125 0x02 0x131>; + clock-names = "clk_npu\0aclk0\0aclk1\0aclk2\0hclk0\0hclk1\0hclk2\0pclk"; + assigned-clocks = <0x0e 0x06>; + assigned-clock-rates = <0xbebc200>; + resets = <0x02 0x1e6 0x02 0x1b0 0x02 0x1c0 0x02 0x1e8 0x02 0x1b2 0x02 0x1c2>; + reset-names = "srst_a0\0srst_a1\0srst_a2\0srst_h0\0srst_h1\0srst_h2"; + power-domains = <0x4d 0x09 0x4d 0x0a 0x4d 0x0b>; + power-domain-names = "npu0\0npu1\0npu2"; + operating-points-v2 = <0x99>; + iommus = <0x9a>; + status = "okay"; + rknpu-supply = <0x9b>; + mem-supply = <0x9b>; + }; + + npu-opp-table { + compatible = "operating-points-v2"; + nvmem-cells = <0x9c 0x20>; + nvmem-cell-names = "leakage\0specification_serial_number"; + rockchip,supported-hw; + rockchip,pvtm-voltage-sel = <0x00 0x32f 0x00 0x330 0x343 0x01 0x344 0x35c 0x02 0x35d 0x375 0x03 0x376 0x38e 0x04 0x38f 0x270f 0x05>; + rockchip,pvtm-pvtpll; + rockchip,pvtm-offset = <0x50>; + rockchip,pvtm-sample-time = <0x44c>; + rockchip,pvtm-freq = <0xc3500>; + rockchip,pvtm-volt = <0xb71b0>; + rockchip,pvtm-ref-temp = <0x19>; + rockchip,pvtm-temp-prop = <0xffffff8f 0xffffff8f>; + rockchip,pvtm-thermal-zone = "npu-thermal"; + clocks = <0x02 0x12a>; + clock-names = "pclk"; + rockchip,grf = <0x9d>; + volt-mem-read-margin = <0xd0bd8 0x01 0xbac48 0x02 0xa4cb8 0x03 0x78d98 0x04>; + low-volt-read-margin = <0x04>; + intermediate-threshold-freq = <0x7a120>; + rockchip,init-freq = <0xf4240>; + rockchip,temp-hysteresis = <0x1388>; + rockchip,low-temp = <0x2710>; + rockchip,low-temp-min-volt = <0xb71b0>; + rockchip,high-temp = <0x14c08>; + rockchip,high-temp-max-freq = <0xc3500>; + phandle = <0x99>; + + opp-300000000 { + opp-supported-hw = <0xff 0xffff>; + opp-hz = <0x00 0x11e1a300>; + opp-microvolt = <0xaae60 0xaae60 0xcf850 0xaae60 0xaae60 0xcf850>; + opp-microvolt-L1 = <0xa7d8c 0xa7d8c 0xcf850 0xa7d8c 0xa7d8c 0xcf850>; + opp-microvolt-L2 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + opp-microvolt-L3 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + opp-microvolt-L4 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + opp-microvolt-L5 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + }; + + opp-400000000 { + opp-supported-hw = <0xff 0xffff>; + opp-hz = <0x00 0x17d78400>; + opp-microvolt = <0xaae60 0xaae60 0xcf850 0xaae60 0xaae60 0xcf850>; + opp-microvolt-L1 = <0xa7d8c 0xa7d8c 0xcf850 0xa7d8c 0xa7d8c 0xcf850>; + opp-microvolt-L2 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + opp-microvolt-L3 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + opp-microvolt-L4 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + opp-microvolt-L5 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + }; + + opp-500000000 { + opp-supported-hw = <0xff 0xffff>; + opp-hz = <0x00 0x1dcd6500>; + opp-microvolt = <0xaae60 0xaae60 0xcf850 0xaae60 0xaae60 0xcf850>; + opp-microvolt-L1 = <0xa7d8c 0xa7d8c 0xcf850 0xa7d8c 0xa7d8c 0xcf850>; + opp-microvolt-L2 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + opp-microvolt-L3 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + opp-microvolt-L4 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + opp-microvolt-L5 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + }; + + opp-600000000 { + opp-supported-hw = <0xff 0xffff>; + opp-hz = <0x00 0x23c34600>; + opp-microvolt = <0xaae60 0xaae60 0xcf850 0xaae60 0xaae60 0xcf850>; + opp-microvolt-L1 = <0xa7d8c 0xa7d8c 0xcf850 0xa7d8c 0xa7d8c 0xcf850>; + opp-microvolt-L2 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + opp-microvolt-L3 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + opp-microvolt-L4 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + opp-microvolt-L5 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + }; + + opp-700000000 { + opp-supported-hw = <0xff 0xffff>; + opp-hz = <0x00 0x29b92700>; + opp-microvolt = <0xaae60 0xaae60 0xcf850 0xaae60 0xaae60 0xcf850>; + opp-microvolt-L3 = <0xa7d8c 0xa7d8c 0xcf850 0xa7d8c 0xa7d8c 0xcf850>; + opp-microvolt-L4 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + opp-microvolt-L5 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; + }; + + opp-800000000 { + opp-supported-hw = <0xff 0xffff>; + opp-hz = <0x00 0x2faf0800>; + opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; + opp-microvolt-L2 = <0xb40dc 0xb40dc 0xcf850 0xb40dc 0xb40dc 0xcf850>; + opp-microvolt-L3 = <0xb1008 0xb1008 0xcf850 0xb1008 0xb1008 0xcf850>; + opp-microvolt-L4 = <0xadf34 0xadf34 0xcf850 0xadf34 0xadf34 0xcf850>; + opp-microvolt-L5 = <0xaae60 0xaae60 0xcf850 0xaae60 0xaae60 0xcf850>; + }; + + opp-900000000 { + opp-supported-hw = <0xfb 0xffff>; + opp-hz = <0x00 0x35a4e900>; + opp-microvolt = <0xc3500 0xc3500 0xcf850 0xc3500 0xc3500 0xcf850>; + opp-microvolt-L1 = <0xc042c 0xc042c 0xcf850 0xc042c 0xc042c 0xcf850>; + opp-microvolt-L2 = <0xbd358 0xbd358 0xcf850 0xbd358 0xbd358 0xcf850>; + opp-microvolt-L3 = <0xba284 0xba284 0xcf850 0xba284 0xba284 0xcf850>; + opp-microvolt-L4 = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; + opp-microvolt-L5 = <0xb40dc 0xb40dc 0xcf850 0xb40dc 0xb40dc 0xcf850>; + }; + + opp-1000000000 { + opp-supported-hw = <0xfb 0xffff>; + opp-hz = <0x00 0x3b9aca00>; + opp-microvolt = <0xcf850 0xcf850 0xcf850 0xcf850 0xcf850 0xcf850>; + opp-microvolt-L1 = <0xcc77c 0xcc77c 0xcf850 0xcc77c 0xcc77c 0xcf850>; + opp-microvolt-L2 = <0xc96a8 0xc96a8 0xcf850 0xc96a8 0xc96a8 0xcf850>; + opp-microvolt-L3 = <0xc65d4 0xc65d4 0xcf850 0xc65d4 0xc65d4 0xcf850>; + opp-microvolt-L4 = <0xc3500 0xc3500 0xcf850 0xc3500 0xc3500 0xcf850>; + opp-microvolt-L5 = <0xc042c 0xc042c 0xcf850 0xc042c 0xc042c 0xcf850>; + }; + }; + + iommu@fdab9000 { + compatible = "rockchip,iommu-v2"; + reg = <0x00 0xfdab9000 0x00 0x100 0x00 0xfdaba000 0x00 0x100 0x00 0xfdaca000 0x00 0x100 0x00 0xfdada000 0x00 0x100>; + interrupts = <0x00 0x6e 0x04 0x00 0x6f 0x04 0x00 0x70 0x04>; + interrupt-names = "npu0_mmu\0npu1_mmu\0npu2_mmu"; + clocks = <0x02 0x12d 0x02 0x122 0x02 0x124 0x02 0x12e 0x02 0x123 0x02 0x125>; + clock-names = "aclk0\0aclk1\0aclk2\0iface0\0iface1\0iface2"; + #iommu-cells = <0x00>; + status = "okay"; + phandle = <0x9a>; + }; + + vepu@fdb50000 { + compatible = "rockchip,vpu-encoder-v2"; + reg = <0x00 0xfdb50000 0x00 0x400>; + interrupts = <0x00 0x78 0x04>; + interrupt-names = "irq_vepu"; + clocks = <0x02 0x1c0 0x02 0x1c1>; + clock-names = "aclk_vcodec\0hclk_vcodec"; + rockchip,normal-rates = <0x2367b880 0x00>; + assigned-clocks = <0x02 0x1c0>; + assigned-clock-rates = <0x2367b880>; + resets = <0x02 0x2c8 0x02 0x2c9>; + reset-names = "shared_video_a\0shared_video_h"; + rockchip,skip-pmu-idle-request; + iommus = <0x9e>; + rockchip,srv = <0x9f>; + rockchip,taskqueue-node = <0x00>; + rockchip,resetgroup-node = <0x00>; + power-domains = <0x4d 0x15>; + status = "disabled"; + }; + + vdpu@fdb50400 { + compatible = "rockchip,vpu-decoder-v2"; + reg = <0x00 0xfdb50400 0x00 0x400>; + interrupts = <0x00 0x77 0x04>; + interrupt-names = "irq_vdpu"; + clocks = <0x02 0x1c0 0x02 0x1c1>; + clock-names = "aclk_vcodec\0hclk_vcodec"; + rockchip,normal-rates = <0x2367b880 0x00>; + assigned-clocks = <0x02 0x1c0>; + assigned-clock-rates = <0x2367b880>; + resets = <0x02 0x2c8 0x02 0x2c9>; + reset-names = "shared_video_a\0shared_video_h"; + rockchip,skip-pmu-idle-request; + iommus = <0x9e>; + rockchip,srv = <0x9f>; + rockchip,taskqueue-node = <0x00>; + rockchip,resetgroup-node = <0x00>; + power-domains = <0x4d 0x15>; + status = "okay"; + }; + + iommu@fdb50800 { + compatible = "rockchip,iommu-v2"; + reg = <0x00 0xfdb50800 0x00 0x40>; + interrupts = <0x00 0x76 0x04>; + interrupt-names = "irq_vdpu_mmu"; + clocks = <0x02 0x1c0 0x02 0x1c1>; + clock-names = "aclk\0iface"; + power-domains = <0x4d 0x15>; + #iommu-cells = <0x00>; + status = "okay"; + phandle = <0x9e>; + }; + + avsd-plus@fdb51000 { + compatible = "rockchip,avs-plus-decoder"; + reg = <0x00 0xfdb51000 0x00 0x200>; + interrupts = <0x00 0x77 0x04>; + interrupt-names = "irq_avsd"; + clocks = <0x02 0x1c0 0x02 0x1c1>; + clock-names = "aclk_vcodec\0hclk_vcodec"; + resets = <0x02 0x2c8 0x02 0x2c9>; + reset-names = "shared_video_a\0shared_video_h"; + rockchip,skip-pmu-idle-request; + iommus = <0x9e>; + power-domains = <0x4d 0x15>; + rockchip,srv = <0x9f>; + rockchip,taskqueue-node = <0x00>; + rockchip,resetgroup-node = <0x00>; + status = "disabled"; + }; + + rga@fdb60000 { + compatible = "rockchip,rga3_core0"; + reg = <0x00 0xfdb60000 0x00 0x1000>; + interrupts = <0x00 0x72 0x04>; + interrupt-names = "rga3_core0_irq"; + clocks = <0x02 0x1ba 0x02 0x1b9 0x02 0x1bb>; + clock-names = "aclk_rga3_0\0hclk_rga3_0\0clk_rga3_0"; + power-domains = <0x4d 0x16>; + iommus = <0xa0>; + status = "okay"; + }; + + iommu@fdb60f00 { + compatible = "rockchip,iommu-v2"; + reg = <0x00 0xfdb60f00 0x00 0x100>; + interrupts = <0x00 0x72 0x04>; + interrupt-names = "rga3_0_mmu"; + clocks = <0x02 0x1ba 0x02 0x1b9>; + clock-names = "aclk\0iface"; + power-domains = <0x4d 0x16>; + #iommu-cells = <0x00>; + status = "okay"; + phandle = <0xa0>; + }; + + rga@fdb70000 { + compatible = "rockchip,rga3_core1"; + reg = <0x00 0xfdb70000 0x00 0x1000>; + interrupts = <0x00 0x73 0x04>; + interrupt-names = "rga3_core1_irq"; + clocks = <0x02 0x18a 0x02 0x189 0x02 0x18b>; + clock-names = "aclk_rga3_1\0hclk_rga3_1\0clk_rga3_1"; + power-domains = <0x4d 0x1e>; + iommus = <0xa1>; + status = "okay"; + }; + + iommu@fdb70f00 { + compatible = "rockchip,iommu-v2"; + reg = <0x00 0xfdb70f00 0x00 0x100>; + interrupts = <0x00 0x73 0x04>; + interrupt-names = "rga3_1_mmu"; + clocks = <0x02 0x18a 0x02 0x189>; + clock-names = "aclk\0iface"; + power-domains = <0x4d 0x1e>; + #iommu-cells = <0x00>; + status = "okay"; + phandle = <0xa1>; + }; + + rga@fdb80000 { + compatible = "rockchip,rga2_core0"; + reg = <0x00 0xfdb80000 0x00 0x1000>; + interrupts = <0x00 0x74 0x04>; + interrupt-names = "rga2_irq"; + clocks = <0x02 0x1b7 0x02 0x1b6 0x02 0x1b8>; + clock-names = "aclk_rga2\0hclk_rga2\0clk_rga2"; + power-domains = <0x4d 0x15>; + status = "okay"; + }; + + jpegd@fdb90000 { + compatible = "rockchip,rkv-jpeg-decoder-v1"; + reg = <0x00 0xfdb90000 0x00 0x400>; + interrupts = <0x00 0x81 0x04>; + interrupt-names = "irq_jpegd"; + clocks = <0x02 0x1b4 0x02 0x1b5>; + clock-names = "aclk_vcodec\0hclk_vcodec"; + rockchip,normal-rates = <0x23c34600 0x00>; + assigned-clocks = <0x02 0x1b4>; + assigned-clock-rates = <0x23c34600>; + resets = <0x02 0x2d2 0x02 0x2d3>; + reset-names = "video_a\0video_h"; + rockchip,skip-pmu-idle-request; + iommus = <0xa2>; + rockchip,srv = <0x9f>; + rockchip,taskqueue-node = <0x01>; + power-domains = <0x4d 0x15>; + status = "okay"; + }; + + iommu@fdb90480 { + compatible = "rockchip,iommu-v2"; + reg = <0x00 0xfdb90480 0x00 0x40>; + interrupts = <0x00 0x82 0x04>; + interrupt-names = "irq_jpegd_mmu"; + clocks = <0x02 0x1b4 0x02 0x1b5>; + clock-names = "aclk\0iface"; + power-domains = <0x4d 0x15>; + #iommu-cells = <0x00>; + status = "okay"; + phandle = <0xa2>; + }; + + jpege-core@fdba0000 { + compatible = "rockchip,vpu-jpege-core"; + reg = <0x00 0xfdba0000 0x00 0x400>; + interrupts = <0x00 0x7a 0x04>; + interrupt-names = "irq_jpege0"; + clocks = <0x02 0x1ac 0x02 0x1ad>; + clock-names = "aclk_vcodec\0hclk_vcodec"; + rockchip,normal-rates = <0x2367b880 0x00>; + assigned-clocks = <0x02 0x1ac>; + assigned-clock-rates = <0x2367b880>; + resets = <0x02 0x2ca 0x02 0x2cb>; + reset-names = "video_a\0video_h"; + rockchip,skip-pmu-idle-request; + iommus = <0xa3>; + rockchip,srv = <0x9f>; + rockchip,taskqueue-node = <0x02>; + rockchip,ccu = <0xa4>; + power-domains = <0x4d 0x15>; + status = "okay"; + }; + + iommu@fdba0800 { + compatible = "rockchip,iommu-v2"; + reg = <0x00 0xfdba0800 0x00 0x40>; + interrupts = <0x00 0x79 0x04>; + interrupt-names = "irq_jpege0_mmu"; + clocks = <0x02 0x1ac 0x02 0x1ad>; + clock-names = "aclk\0iface"; + power-domains = <0x4d 0x15>; + #iommu-cells = <0x00>; + status = "okay"; + phandle = <0xa3>; + }; + + jpege-core@fdba4000 { + compatible = "rockchip,vpu-jpege-core"; + reg = <0x00 0xfdba4000 0x00 0x400>; + interrupts = <0x00 0x7c 0x04>; + interrupt-names = "irq_jpege1"; + clocks = <0x02 0x1ae 0x02 0x1af>; + clock-names = "aclk_vcodec\0hclk_vcodec"; + rockchip,normal-rates = <0x2367b880 0x00>; + assigned-clocks = <0x02 0x1ae>; + assigned-clock-rates = <0x2367b880>; + resets = <0x02 0x2cc 0x02 0x2cd>; + reset-names = "video_a\0video_h"; + rockchip,skip-pmu-idle-request; + iommus = <0xa5>; + rockchip,srv = <0x9f>; + rockchip,taskqueue-node = <0x02>; + rockchip,ccu = <0xa4>; + power-domains = <0x4d 0x15>; + status = "okay"; + }; + + iommu@fdba4800 { + compatible = "rockchip,iommu-v2"; + reg = <0x00 0xfdba4800 0x00 0x40>; + interrupts = <0x00 0x7b 0x04>; + interrupt-names = "irq_jpege1_mmu"; + clocks = <0x02 0x1ae 0x02 0x1af>; + clock-names = "aclk\0iface"; + power-domains = <0x4d 0x15>; + #iommu-cells = <0x00>; + status = "okay"; + phandle = <0xa5>; + }; + + jpege-core@fdba8000 { + compatible = "rockchip,vpu-jpege-core"; + reg = <0x00 0xfdba8000 0x00 0x400>; + interrupts = <0x00 0x7e 0x04>; + interrupt-names = "irq_jpege2"; + clocks = <0x02 0x1b0 0x02 0x1b1>; + clock-names = "aclk_vcodec\0hclk_vcodec"; + rockchip,normal-rates = <0x2367b880 0x00>; + assigned-clocks = <0x02 0x1b0>; + assigned-clock-rates = <0x2367b880>; + resets = <0x02 0x2ce 0x02 0x2cf>; + reset-names = "video_a\0video_h"; + rockchip,skip-pmu-idle-request; + iommus = <0xa6>; + rockchip,srv = <0x9f>; + rockchip,taskqueue-node = <0x02>; + rockchip,ccu = <0xa4>; + power-domains = <0x4d 0x15>; + status = "okay"; + }; + + iommu@fdba8800 { + compatible = "rockchip,iommu-v2"; + reg = <0x00 0xfdba8800 0x00 0x40>; + interrupts = <0x00 0x7d 0x04>; + interrupt-names = "irq_jpege2_mmu"; + clocks = <0x02 0x1b0 0x02 0x1b1>; + clock-names = "aclk\0iface"; + power-domains = <0x4d 0x15>; + #iommu-cells = <0x00>; + status = "okay"; + phandle = <0xa6>; + }; + + jpege-core@fdbac000 { + compatible = "rockchip,vpu-jpege-core"; + reg = <0x00 0xfdbac000 0x00 0x400>; + interrupts = <0x00 0x80 0x04>; + interrupt-names = "irq_jpege3"; + clocks = <0x02 0x1b2 0x02 0x1b3>; + clock-names = "aclk_vcodec\0hclk_vcodec"; + rockchip,normal-rates = <0x2367b880 0x00>; + assigned-clocks = <0x02 0x1b2>; + assigned-clock-rates = <0x2367b880>; + resets = <0x02 0x2d0 0x02 0x2d1>; + reset-names = "video_a\0video_h"; + rockchip,skip-pmu-idle-request; + iommus = <0xa7>; + rockchip,srv = <0x9f>; + rockchip,taskqueue-node = <0x02>; + rockchip,ccu = <0xa4>; + power-domains = <0x4d 0x15>; + status = "okay"; + }; + + iommu@fdbac800 { + compatible = "rockchip,iommu-v2"; + reg = <0x00 0xfdbac800 0x00 0x40>; + interrupts = <0x00 0x7f 0x04>; + interrupt-names = "irq_jpege3_mmu"; + clocks = <0x02 0x1b2 0x02 0x1b3>; + clock-names = "aclk\0iface"; + power-domains = <0x4d 0x15>; + #iommu-cells = <0x00>; + status = "okay"; + phandle = <0xa7>; + }; + + iep@fdbb0000 { + compatible = "rockchip,iep-v2"; + reg = <0x00 0xfdbb0000 0x00 0x500>; + interrupts = <0x00 0x75 0x04>; + interrupt-names = "irq_iep"; + clocks = <0x02 0x1aa 0x02 0x1a9 0x02 0x1ab>; + clock-names = "aclk\0hclk\0sclk"; + resets = <0x02 0x2d5 0x02 0x2d4 0x02 0x2d6>; + reset-names = "rst_a\0rst_h\0rst_s"; + rockchip,skip-pmu-idle-request; + power-domains = <0x4d 0x15>; + rockchip,srv = <0x9f>; + rockchip,taskqueue-node = <0x06>; + iommus = <0xa8>; + status = "okay"; + }; + + iommu@fdbb0800 { + compatible = "rockchip,iommu-v2"; + reg = <0x00 0xfdbb0800 0x00 0x100>; + interrupts = <0x00 0x75 0x04>; + interrupt-names = "irq_iep_mmu"; + clocks = <0x02 0x1aa 0x02 0x1a9>; + clock-names = "aclk\0iface"; + #iommu-cells = <0x00>; + power-domains = <0x4d 0x15>; + status = "okay"; + phandle = <0xa8>; + }; + + rkvenc-core@fdbd0000 { + compatible = "rockchip,rkv-encoder-v2-core"; + reg = <0x00 0xfdbd0000 0x00 0x6000>; + interrupts = <0x00 0x65 0x04>; + interrupt-names = "irq_rkvenc0"; + clocks = <0x02 0x1c5 0x02 0x1c4 0x02 0x1c6>; + clock-names = "aclk_vcodec\0hclk_vcodec\0clk_core"; + rockchip,normal-rates = <0x23c34600 0x00 0x2faf0800>; + assigned-clocks = <0x02 0x1c5 0x02 0x1c6>; + assigned-clock-rates = <0x23c34600 0x2faf0800>; + resets = <0x02 0x2f5 0x02 0x2f4 0x02 0x2f6>; + reset-names = "video_a\0video_h\0video_core"; + rockchip,skip-pmu-idle-request; + iommus = <0xa9>; + rockchip,srv = <0x9f>; + rockchip,ccu = <0xaa>; + rockchip,taskqueue-node = <0x07>; + rockchip,task-capacity = <0x08>; + power-domains = <0x4d 0x10>; + status = "okay"; + }; + + iommu@fdbdf000 { + compatible = "rockchip,iommu-v2"; + reg = <0x00 0xfdbdf000 0x00 0x40 0x00 0xfdbdf040 0x00 0x40>; + interrupts = <0x00 0x63 0x04 0x00 0x64 0x04>; + interrupt-names = "irq_rkvenc0_mmu0\0irq_rkvenc0_mmu1"; + clocks = <0x02 0x1c5 0x02 0x1c4>; + clock-names = "aclk\0iface"; + rockchip,disable-mmu-reset; + rockchip,enable-cmd-retry; + rockchip,shootdown-entire; + #iommu-cells = <0x00>; + power-domains = <0x4d 0x10>; + status = "okay"; + phandle = <0xa9>; + }; + + rkvenc-core@fdbe0000 { + compatible = "rockchip,rkv-encoder-v2-core"; + reg = <0x00 0xfdbe0000 0x00 0x6000>; + interrupts = <0x00 0x68 0x04>; + interrupt-names = "irq_rkvenc1"; + clocks = <0x02 0x1ca 0x02 0x1c9 0x02 0x1cb>; + clock-names = "aclk_vcodec\0hclk_vcodec\0clk_core"; + rockchip,normal-rates = <0x23c34600 0x00 0x2faf0800>; + assigned-clocks = <0x02 0x1ca 0x02 0x1cb>; + assigned-clock-rates = <0x23c34600 0x2faf0800>; + resets = <0x02 0x305 0x02 0x304 0x02 0x306>; + reset-names = "video_a\0video_h\0video_core"; + rockchip,skip-pmu-idle-request; + iommus = <0xab>; + rockchip,srv = <0x9f>; + rockchip,ccu = <0xaa>; + rockchip,taskqueue-node = <0x07>; + rockchip,task-capacity = <0x08>; + power-domains = <0x4d 0x11>; + status = "okay"; + }; + + iommu@fdbef000 { + compatible = "rockchip,iommu-v2"; + reg = <0x00 0xfdbef000 0x00 0x40 0x00 0xfdbef040 0x00 0x40>; + interrupts = <0x00 0x66 0x04 0x00 0x67 0x04>; + interrupt-names = "irq_rkvenc1_mmu0\0irq_rkvenc1_mmu1"; + clocks = <0x02 0x1ca 0x02 0x1c9>; + lock-names = "aclk\0iface"; + rockchip,disable-mmu-reset; + rockchip,enable-cmd-retry; + rockchip,shootdown-entire; + #iommu-cells = <0x00>; + power-domains = <0x4d 0x11>; + status = "okay"; + phandle = <0xab>; + }; + + rkvdec-ccu@fdc30000 { + compatible = "rockchip,rkv-decoder-v2-ccu"; + reg = <0x00 0xfdc30000 0x00 0x100>; + reg-names = "ccu"; + clocks = <0x02 0x18e>; + clock-names = "aclk_ccu"; + assigned-clocks = <0x02 0x18e>; + assigned-clock-rates = <0x23c34600>; + resets = <0x02 0x282>; + reset-names = "video_ccu"; + rockchip,skip-pmu-idle-request; + power-domains = <0x4d 0x0e>; + status = "okay"; + phandle = <0xad>; + }; + + rkvdec-core@fdc38000 { + compatible = "rockchip,rkv-decoder-v2"; + reg = <0x00 0xfdc38100 0x00 0x400 0x00 0xfdc38000 0x00 0x100>; + reg-names = "regs\0link"; + interrupts = <0x00 0x5f 0x04>; + interrupt-names = "irq_rkvdec0"; + clocks = <0x02 0x190 0x02 0x18f 0x02 0x193 0x02 0x191 0x02 0x192>; + clock-names = "aclk_vcodec\0hclk_vcodec\0clk_core\0clk_cabac\0clk_hevc_cabac"; + rockchip,normal-rates = <0x2faf0800 0x00 0x23c34600 0x23c34600 0x3b9aca00>; + assigned-clocks = <0x02 0x190 0x02 0x193 0x02 0x191 0x02 0x192>; + assigned-clock-rates = <0x2faf0800 0x23c34600 0x23c34600 0x3b9aca00>; + resets = <0x02 0x284 0x02 0x283 0x02 0x289 0x02 0x287 0x02 0x288>; + reset-names = "video_a\0video_h\0video_core\0video_cabac\0video_hevc_cabac"; + rockchip,skip-pmu-idle-request; + iommus = <0xac>; + rockchip,srv = <0x9f>; + rockchip,ccu = <0xad>; + rockchip,core-mask = <0x10001>; + rockchip,taskqueue-node = <0x09>; + rockchip,sram = <0xae>; + rockchip,rcb-iova = <0xfff00000 0x100000>; + rockchip,rcb-min-width = <0x200>; + power-domains = <0x4d 0x0e>; + status = "okay"; + }; + + iommu@fdc38700 { + compatible = "rockchip,iommu-v2"; + reg = <0x00 0xfdc38700 0x00 0x40 0x00 0xfdc38740 0x00 0x40>; + interrupts = <0x00 0x60 0x04>; + interrupt-names = "irq_rkvdec0_mmu"; + clocks = <0x02 0x190 0x02 0x18f>; + clock-names = "aclk\0iface"; + rockchip,disable-mmu-reset; + rockchip,enable-cmd-retry; + rockchip,shootdown-entire; + rockchip,master-handle-irq; + #iommu-cells = <0x00>; + power-domains = <0x4d 0x0e>; + status = "okay"; + phandle = <0xac>; + }; + + rkvdec-core@fdc48000 { + compatible = "rockchip,rkv-decoder-v2"; + reg = <0x00 0xfdc48100 0x00 0x400 0x00 0xfdc48000 0x00 0x100>; + reg-names = "regs\0link"; + interrupts = <0x00 0x61 0x04>; + interrupt-names = "irq_rkvdec1"; + clocks = <0x02 0x195 0x02 0x194 0x02 0x198 0x02 0x196 0x02 0x197>; + clock-names = "aclk_vcodec\0hclk_vcodec\0clk_core\0clk_cabac\0clk_hevc_cabac"; + rockchip,normal-rates = <0x2faf0800 0x00 0x23c34600 0x23c34600 0x3b9aca00>; + assigned-clocks = <0x02 0x195 0x02 0x198 0x02 0x196 0x02 0x197>; + assigned-clock-rates = <0x2faf0800 0x23c34600 0x23c34600 0x3b9aca00>; + resets = <0x02 0x293 0x02 0x292 0x02 0x298 0x02 0x296 0x02 0x297>; + reset-names = "video_a\0video_h\0video_core\0video_cabac\0video_hevc_cabac"; + rockchip,skip-pmu-idle-request; + iommus = <0xaf>; + rockchip,srv = <0x9f>; + rockchip,ccu = <0xad>; + rockchip,core-mask = <0x20002>; + rockchip,taskqueue-node = <0x09>; + rockchip,sram = <0xb0>; + rockchip,rcb-iova = <0xffe00000 0x100000>; + rockchip,rcb-min-width = <0x200>; + power-domains = <0x4d 0x0f>; + status = "okay"; + }; + + iommu@fdc48700 { + compatible = "rockchip,iommu-v2"; + reg = <0x00 0xfdc48700 0x00 0x40 0x00 0xfdc48740 0x00 0x40>; + interrupts = <0x00 0x62 0x04>; + interrupt-names = "irq_rkvdec1_mmu"; + clocks = <0x02 0x195 0x02 0x194>; + clock-names = "aclk\0iface"; + rockchip,disable-mmu-reset; + rockchip,enable-cmd-retry; + rockchip,shootdown-entire; + rockchip,master-handle-irq; + #iommu-cells = <0x00>; + power-domains = <0x4d 0x0f>; + status = "okay"; + phandle = <0xaf>; + }; + + av1d@fdc70000 { + compatible = "rockchip,av1-decoder"; + reg = <0x00 0xfdc70000 0x00 0x800 0x00 0xfdc80000 0x00 0x400 0x00 0xfdc90000 0x00 0x400>; + reg-names = "vcd\0cache\0afbc"; + interrupts = <0x00 0x6c 0x04 0x00 0x6b 0x04 0x00 0x6a 0x04>; + interrupt-names = "irq_av1d\0irq_cache\0irq_afbc"; + clocks = <0x02 0x49 0x02 0x4b>; + clock-names = "aclk_vcodec\0hclk_vcodec"; + rockchip,normal-rates = <0x17d78400 0x17d78400>; + assigned-clocks = <0x02 0x49 0x02 0x4b>; + assigned-clock-rates = <0x17d78400 0x17d78400>; + resets = <0x02 0x442 0x02 0x445>; + reset-names = "video_a\0video_h"; + iommus = <0xb1>; + rockchip,srv = <0x9f>; + rockchip,taskqueue-node = <0x0b>; + power-domains = <0x4d 0x17>; + status = "okay"; + }; + + iommu@fdca0000 { + compatible = "rockchip,iommu-av1"; + reg = <0x00 0xfdca0000 0x00 0x600>; + interrupts = <0x00 0x6d 0x04>; + interrupt-names = "irq_av1d_mmu"; + clocks = <0x02 0x49 0x02 0x4b>; + clock-names = "aclk\0iface"; + #iommu-cells = <0x00>; + power-domains = <0x4d 0x17>; + status = "okay"; + phandle = <0xb1>; + }; + + rkisp-unite@fdcb0000 { + compatible = "rockchip,rk3588-rkisp-unite"; + reg = <0x00 0xfdcb0000 0x00 0x10000 0x00 0xfdcc0000 0x00 0x10000>; + interrupts = <0x00 0x87 0x04 0x00 0x89 0x04 0x00 0x8a 0x04>; + interrupt-names = "isp_irq\0mi_irq\0mipi_irq"; + clocks = <0x02 0x1de 0x02 0x1df 0x02 0x1db 0x02 0x1dc 0x02 0x1dd 0x02 0x120 0x02 0x121 0x02 0x11d 0x02 0x11e 0x02 0x11f>; + clock-names = "aclk_isp0\0hclk_isp0\0clk_isp_core0\0clk_isp_core_marvin0\0clk_isp_core_vicap0\0aclk_isp1\0hclk_isp1\0clk_isp_core1\0clk_isp_core_marvin1\0clk_isp_core_vicap1"; + power-domains = <0x4d 0x1c>; + iommus = <0xb2>; + status = "disabled"; + }; + + rkisp@fdcb0000 { + compatible = "rockchip,rk3588-rkisp"; + reg = <0x00 0xfdcb0000 0x00 0x7f00>; + interrupts = <0x00 0x83 0x04 0x00 0x85 0x04 0x00 0x86 0x04>; + interrupt-names = "isp_irq\0mi_irq\0mipi_irq"; + clocks = <0x02 0x1de 0x02 0x1df 0x02 0x1db 0x02 0x1dc 0x02 0x1dd>; + clock-names = "aclk_isp\0hclk_isp\0clk_isp_core\0clk_isp_core_marvin\0clk_isp_core_vicap"; + power-domains = <0x4d 0x1b>; + iommus = <0xb3>; + status = "disabled"; + phandle = <0x46>; + }; + + rkisp-unite-mmu@fdcb7f00 { + compatible = "rockchip,iommu-v2"; + reg = <0x00 0xfdcb7f00 0x00 0x100 0x00 0xfdcc7f00 0x00 0x100>; + interrupts = <0x00 0x84 0x04 0x00 0x88 0x04>; + interrupt-names = "isp0_mmu\0isp1_mmu"; + clocks = <0x02 0x1de 0x02 0x1df 0x02 0x120 0x02 0x121>; + clock-names = "aclk0\0iface0\0aclk1\0iface1"; + power-domains = <0x4d 0x1c>; + #iommu-cells = <0x00>; + rockchip,disable-mmu-reset; + status = "disabled"; + phandle = <0xb2>; + }; + + iommu@fdcb7f00 { + compatible = "rockchip,iommu-v2"; + reg = <0x00 0xfdcb7f00 0x00 0x100>; + interrupts = <0x00 0x84 0x04>; + interrupt-names = "isp0_mmu"; + clocks = <0x02 0x1de 0x02 0x1df>; + clock-names = "aclk\0iface"; + power-domains = <0x4d 0x1b>; + #iommu-cells = <0x00>; + rockchip,disable-mmu-reset; + status = "disabled"; + phandle = <0xb3>; + }; + + rkisp@fdcc0000 { + compatible = "rockchip,rk3588-rkisp"; + reg = <0x00 0xfdcc0000 0x00 0x7f00>; + interrupts = <0x00 0x87 0x04 0x00 0x89 0x04 0x00 0x8a 0x04>; + interrupt-names = "isp_irq\0mi_irq\0mipi_irq"; + clocks = <0x02 0x120 0x02 0x121 0x02 0x11d 0x02 0x11e 0x02 0x11f>; + clock-names = "aclk_isp\0hclk_isp\0clk_isp_core\0clk_isp_core_marvin\0clk_isp_core_vicap"; + power-domains = <0x4d 0x1c>; + iommus = <0xb4>; + status = "disabled"; + phandle = <0x47>; + }; + + iommu@fdcc7f00 { + compatible = "rockchip,iommu-v2"; + reg = <0x00 0xfdcc7f00 0x00 0x100>; + interrupts = <0x00 0x88 0x04>; + interrupt-names = "isp1_mmu"; + clocks = <0x02 0x120 0x02 0x121>; + clock-names = "aclk\0iface"; + power-domains = <0x4d 0x1c>; + #iommu-cells = <0x00>; + rockchip,disable-mmu-reset; + status = "disabled"; + phandle = <0xb4>; + }; + + rkispp@fdcd0000 { + compatible = "rockchip,rk3588-rkispp"; + reg = <0x00 0xfdcd0000 0x00 0xf00>; + interrupts = <0x00 0x8b 0x04>; + interrupt-names = "fec_irq"; + clocks = <0x02 0x1d5 0x02 0x1d6 0x02 0x1d7>; + clock-names = "aclk_ispp\0hclk_ispp\0clk_ispp"; + assigned-clocks = <0x02 0x1d6>; + assigned-clock-rates = <0x5f5e100>; + power-domains = <0x4d 0x1d>; + iommus = <0xb5>; + status = "disabled"; + phandle = <0x48>; + }; + + iommu@fdcd0f00 { + compatible = "rockchip,iommu-v2"; + reg = <0x00 0xfdcd0f00 0x00 0x100>; + interrupts = <0x00 0x8c 0x04>; + interrupt-names = "fec0_mmu"; + clocks = <0x02 0x1d5 0x02 0x1d6 0x02 0x1d7>; + clock-names = "aclk\0iface\0pclk"; + power-domains = <0x4d 0x1d>; + #iommu-cells = <0x00>; + rockchip,disable-mmu-reset; + status = "disabled"; + phandle = <0xb5>; + }; + + rkispp@fdcd8000 { + compatible = "rockchip,rk3588-rkispp"; + reg = <0x00 0xfdcd8000 0x00 0xf00>; + interrupts = <0x00 0x8d 0x04>; + interrupt-names = "fec_irq"; + clocks = <0x02 0x1d8 0x02 0x1d9 0x02 0x1da>; + clock-names = "aclk_ispp\0hclk_ispp\0clk_ispp"; + assigned-clocks = <0x02 0x1d9>; + assigned-clock-rates = <0x5f5e100>; + power-domains = <0x4d 0x1d>; + iommus = <0xb6>; + status = "disabled"; + phandle = <0x49>; + }; + + iommu@fdcd8f00 { + compatible = "rockchip,iommu-v2"; + reg = <0x00 0xfdcd8f00 0x00 0x100>; + interrupts = <0x00 0x8e 0x04>; + interrupt-names = "fec1_mmu"; + clocks = <0x02 0x1d8 0x02 0x1d9 0x02 0x1da>; + clock-names = "aclk\0iface\0pclk"; + power-domains = <0x4d 0x1d>; + #iommu-cells = <0x00>; + rockchip,disable-mmu-reset; + status = "disabled"; + phandle = <0xb6>; + }; + + rkcif@fdce0000 { + compatible = "rockchip,rk3588-cif"; + reg = <0x00 0xfdce0000 0x00 0x800>; + reg-names = "cif_regs"; + interrupts = <0x00 0x9b 0x04>; + interrupt-names = "cif-intr"; + clocks = <0x02 0x1e4 0x02 0x1e5 0x02 0x1e3>; + clock-names = "aclk_cif\0hclk_cif\0dclk_cif"; + resets = <0x02 0x317 0x02 0x318 0x02 0x316>; + reset-names = "rst_cif_a\0rst_cif_h\0rst_cif_d"; + assigned-clocks = <0x02 0x1e3>; + assigned-clock-rates = <0x23c34600>; + power-domains = <0x4d 0x1b>; + rockchip,grf = <0xb7>; + iommus = <0x40>; + status = "disabled"; + phandle = <0x3f>; + }; + + iommu@fdce0800 { + compatible = "rockchip,iommu-v2"; + reg = <0x00 0xfdce0800 0x00 0x100 0x00 0xfdce0900 0x00 0x100>; + interrupts = <0x00 0x71 0x04>; + interrupt-names = "cif_mmu"; + clocks = <0x02 0x1e4 0x02 0x1e5>; + clock-names = "aclk\0iface"; + power-domains = <0x4d 0x1b>; + rockchip,disable-mmu-reset; + #iommu-cells = <0x00>; + status = "disabled"; + phandle = <0x40>; + }; + + mipi0-csi2@fdd10000 { + compatible = "rockchip,rk3588-mipi-csi2"; + reg = <0x00 0xfdd10000 0x00 0x10000>; + reg-names = "csihost_regs"; + interrupts = <0x00 0x8f 0x04 0x00 0x90 0x04>; + interrupt-names = "csi-intr1\0csi-intr2"; + clocks = <0x02 0x1cf 0x02 0x1cd>; + clock-names = "pclk_csi2host\0iclk_csi2host"; + resets = <0x02 0x324 0x02 0x334>; + reset-names = "srst_csihost_p\0srst_csihost_vicap"; + status = "disabled"; + }; + + mipi1-csi2@fdd20000 { + compatible = "rockchip,rk3588-mipi-csi2"; + reg = <0x00 0xfdd20000 0x00 0x10000>; + reg-names = "csihost_regs"; + interrupts = <0x00 0x91 0x04 0x00 0x92 0x04>; + interrupt-names = "csi-intr1\0csi-intr2"; + clocks = <0x02 0x1d0 0x02 0x1ce>; + clock-names = "pclk_csi2host\0iclk_csi2host"; + resets = <0x02 0x325 0x02 0x335>; + reset-names = "srst_csihost_p\0srst_csihost_vicap"; + status = "disabled"; + }; + + mipi2-csi2@fdd30000 { + compatible = "rockchip,rk3588-mipi-csi2"; + reg = <0x00 0xfdd30000 0x00 0x10000>; + reg-names = "csihost_regs"; + interrupts = <0x00 0x93 0x04 0x00 0x94 0x04>; + interrupt-names = "csi-intr1\0csi-intr2"; + clocks = <0x02 0x1d1>; + clock-names = "pclk_csi2host"; + resets = <0x02 0x326 0x02 0x336>; + reset-names = "srst_csihost_p\0srst_csihost_vicap"; + status = "disabled"; + }; + + mipi3-csi2@fdd40000 { + compatible = "rockchip,rk3588-mipi-csi2"; + reg = <0x00 0xfdd40000 0x00 0x10000>; + reg-names = "csihost_regs"; + interrupts = <0x00 0x95 0x04 0x00 0x96 0x04>; + interrupt-names = "csi-intr1\0csi-intr2"; + clocks = <0x02 0x1d2>; + clock-names = "pclk_csi2host"; + resets = <0x02 0x327 0x02 0x337>; + reset-names = "srst_csihost_p\0srst_csihost_vicap"; + status = "disabled"; + }; + + vop@fdd90000 { + compatible = "rockchip,rk3588-vop"; + reg = <0x00 0xfdd90000 0x00 0x4200 0x00 0xfdd95000 0x00 0x1000>; + reg-names = "regs\0gamma_lut"; + interrupts = <0x00 0x9c 0x04>; + clocks = <0x02 0x270 0x02 0x26f 0x02 0x274 0x02 0x275 0x02 0x276 0x02 0x277 0x02 0x26e 0x02 0x271 0x02 0x272 0x02 0x273>; + clock-names = "aclk_vop\0hclk_vop\0dclk_vp0\0dclk_vp1\0dclk_vp2\0dclk_vp3\0pclk_vop\0dclk_src_vp0\0dclk_src_vp1\0dclk_src_vp2"; + assigned-clocks = <0x02 0x270>; + assigned-clock-rates = <0x2faf0800>; + resets = <0x02 0x349 0x02 0x348 0x02 0x34d 0x02 0x350 0x02 0x351 0x02 0x352>; + reset-names = "axi\0ahb\0dclk_vp0\0dclk_vp1\0dclk_vp2\0dclk_vp3"; + iommus = <0xb8>; + power-domains = <0x4d 0x18>; + rockchip,grf = <0xb7>; + rockchip,vop-grf = <0xb9>; + rockchip,vo1-grf = <0xba>; + rockchip,pmu = <0xbb>; + status = "okay"; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + phandle = <0x2d>; + + port@0 { + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x00>; + rockchip,plane-mask = <0x05>; + rockchip,primary-plane = <0x02>; + assigned-clocks = <0x02 0x270>; + assigned-clock-rates = <0x2faf0800>; + + endpoint@0 { + reg = <0x00>; + remote-endpoint = <0xbc>; + phandle = <0xd9>; + }; + + endpoint@1 { + reg = <0x01>; + remote-endpoint = <0xbd>; + phandle = <0xe4>; + }; + + endpoint@2 { + reg = <0x02>; + remote-endpoint = <0xbe>; + phandle = <0x35>; + }; + + endpoint@3 { + reg = <0x03>; + remote-endpoint = <0xbf>; + phandle = <0x18a>; + }; + + endpoint@4 { + reg = <0x04>; + remote-endpoint = <0xc0>; + phandle = <0x194>; + }; + + endpoint@5 { + reg = <0x05>; + remote-endpoint = <0xc1>; + phandle = <0x191>; + }; + }; + + port@1 { + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x01>; + rockchip,plane-mask = <0x0a>; + rockchip,primary-plane = <0x03>; + + endpoint@0 { + reg = <0x00>; + remote-endpoint = <0xc2>; + phandle = <0x31>; + }; + + endpoint@1 { + reg = <0x01>; + remote-endpoint = <0xc3>; + phandle = <0xe5>; + }; + + endpoint@2 { + reg = <0x02>; + remote-endpoint = <0xc4>; + phandle = <0xe1>; + }; + + endpoint@3 { + reg = <0x03>; + remote-endpoint = <0xc5>; + phandle = <0x18b>; + }; + + endpoint@4 { + reg = <0x04>; + remote-endpoint = <0xc6>; + phandle = <0x195>; + }; + + endpoint@5 { + reg = <0x05>; + remote-endpoint = <0xc7>; + phandle = <0x38>; + }; + }; + + port@2 { + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x02>; + assigned-clocks = <0x02 0x273>; + assigned-clock-parents = <0x02 0x04>; + rockchip,plane-mask = <0x140>; + rockchip,primary-plane = <0x08>; + + endpoint@0 { + reg = <0x00>; + remote-endpoint = <0xc8>; + phandle = <0xda>; + }; + + endpoint@1 { + reg = <0x01>; + remote-endpoint = <0xc9>; + phandle = <0x34>; + }; + + endpoint@2 { + reg = <0x02>; + remote-endpoint = <0xca>; + phandle = <0xe2>; + }; + + endpoint@3 { + reg = <0x03>; + remote-endpoint = <0xcb>; + phandle = <0xd5>; + }; + + endpoint@4 { + reg = <0x04>; + remote-endpoint = <0xcc>; + phandle = <0xd6>; + }; + + endpoint@5 { + reg = <0x05>; + remote-endpoint = <0xcd>; + phandle = <0x37>; + }; + + endpoint@6 { + reg = <0x06>; + remote-endpoint = <0xce>; + phandle = <0x196>; + }; + + endpoint@7 { + reg = <0x07>; + remote-endpoint = <0xcf>; + phandle = <0x192>; + }; + }; + + port@3 { + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x03>; + rockchip,plane-mask = <0x280>; + rockchip,primary-plane = <0x09>; + + endpoint@0 { + reg = <0x00>; + remote-endpoint = <0xd0>; + phandle = <0x32>; + }; + + endpoint@1 { + reg = <0x01>; + remote-endpoint = <0xd1>; + phandle = <0x33>; + }; + + endpoint@2 { + reg = <0x02>; + remote-endpoint = <0xd2>; + phandle = <0x36>; + }; + }; + }; + }; + + iommu@fdd97e00 { + compatible = "rockchip,iommu-v2"; + reg = <0x00 0xfdd97e00 0x00 0x100 0x00 0xfdd97f00 0x00 0x100>; + interrupts = <0x00 0x9c 0x04>; + interrupt-names = "vop_mmu"; + clocks = <0x02 0x270 0x02 0x26f>; + clock-names = "aclk\0iface"; + #iommu-cells = <0x00>; + rockchip,disable-device-link-resume; + rockchip,shootdown-entire; + status = "okay"; + phandle = <0xb8>; + }; + + spdif-tx@fddb0000 { + compatible = "rockchip,rk3588-spdif\0rockchip,rk3568-spdif"; + reg = <0x00 0xfddb0000 0x00 0x1000>; + interrupts = <0x00 0xc3 0x04>; + dmas = <0xd3 0x06>; + dma-names = "tx"; + clock-names = "mclk\0hclk"; + clocks = <0x02 0x209 0x02 0x204>; + assigned-clocks = <0x02 0x205>; + assigned-clock-parents = <0x02 0x05>; + power-domains = <0x4d 0x19>; + #sound-dai-cells = <0x00>; + status = "disabled"; + phandle = <0x1af>; + }; + + i2s@fddc0000 { + compatible = "rockchip,rk3588-i2s-tdm"; + reg = <0x00 0xfddc0000 0x00 0x1000>; + interrupts = <0x00 0xb8 0x04>; + clocks = <0x02 0x1fb 0x02 0x1fb 0x02 0x1f0>; + clock-names = "mclk_tx\0mclk_rx\0hclk"; + assigned-clocks = <0x02 0x1f9>; + assigned-clock-parents = <0x02 0x05>; + dmas = <0xd4 0x00>; + dma-names = "tx"; + power-domains = <0x4d 0x19>; + resets = <0x02 0x38d>; + reset-names = "tx-m"; + rockchip,playback-only; + #sound-dai-cells = <0x00>; + status = "disabled"; + }; + + spdif-tx@fdde0000 { + compatible = "rockchip,rk3588-spdif\0rockchip,rk3568-spdif"; + reg = <0x00 0xfdde0000 0x00 0x1000>; + interrupts = <0x00 0xc4 0x04>; + dmas = <0xd3 0x07>; + dma-names = "tx"; + clock-names = "mclk\0hclk"; + clocks = <0x02 0x257 0x02 0x253>; + assigned-clocks = <0x02 0x254>; + assigned-clock-parents = <0x02 0x05>; + power-domains = <0x4d 0x1a>; + #sound-dai-cells = <0x00>; + status = "disabled"; + }; + + i2s@fddf0000 { + compatible = "rockchip,rk3588-i2s-tdm"; + reg = <0x00 0xfddf0000 0x00 0x1000>; + interrupts = <0x00 0xb9 0x04>; + clocks = <0x02 0x246 0x02 0x246 0x02 0x248>; + clock-names = "mclk_tx\0mclk_rx\0hclk"; + assigned-clocks = <0x02 0x243>; + assigned-clock-parents = <0x02 0x07>; + dmas = <0xd4 0x02>; + dma-names = "tx"; + power-domains = <0x4d 0x1a>; + resets = <0x02 0x3e8>; + reset-names = "tx-m"; + rockchip,always-on; + rockchip,hdmi-path; + rockchip,playback-only; + #sound-dai-cells = <0x00>; + status = "okay"; + phandle = <0x1ad>; + }; + + i2s@fddfc000 { + compatible = "rockchip,rk3588-i2s-tdm"; + reg = <0x00 0xfddfc000 0x00 0x1000>; + interrupts = <0x00 0xbd 0x04>; + clocks = <0x02 0x242 0x02 0x242 0x02 0x23e>; + clock-names = "mclk_tx\0mclk_rx\0hclk"; + assigned-clocks = <0x02 0x23f>; + assigned-clock-parents = <0x02 0x05>; + dmas = <0xd4 0x17>; + dma-names = "rx"; + power-domains = <0x4d 0x1a>; + resets = <0x02 0x413>; + reset-names = "rx-m"; + rockchip,capture-only; + #sound-dai-cells = <0x00>; + status = "disabled"; + }; + + spdif-rx@fde08000 { + compatible = "rockchip,rk3588-spdifrx\0rockchip,rk3308-spdifrx"; + reg = <0x00 0xfde08000 0x00 0x1000>; + interrupts = <0x00 0xc7 0x04>; + clocks = <0x02 0x25e 0x02 0x25d>; + clock-names = "mclk\0hclk"; + assigned-clocks = <0x02 0x25e>; + assigned-clock-parents = <0x02 0x05>; + dmas = <0x64 0x15>; + dma-names = "rx"; + power-domains = <0x4d 0x1a>; + resets = <0x02 0x3fd>; + reset-names = "spdifrx-m"; + #sound-dai-cells = <0x00>; + status = "disabled"; + }; + + dsi@fde20000 { + compatible = "rockchip,rk3588-mipi-dsi2"; + reg = <0x00 0xfde20000 0x00 0x10000>; + interrupts = <0x00 0xa7 0x04>; + clocks = <0x02 0x278 0x02 0x27a>; + clock-names = "pclk\0sys_clk"; + resets = <0x02 0x354>; + reset-names = "apb"; + power-domains = <0x4d 0x18>; + phys = <0x2a>; + phy-names = "dcphy"; + rockchip,grf = <0xb9>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "disabled"; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + reg = <0x00>; + #address-cells = <0x01>; + #size-cells = <0x00>; + + endpoint@0 { + reg = <0x00>; + remote-endpoint = <0xd5>; + status = "disabled"; + phandle = <0xcb>; + }; + + endpoint@1 { + reg = <0x01>; + remote-endpoint = <0x32>; + status = "disabled"; + phandle = <0xd0>; + }; + }; + }; + }; + + dsi@fde30000 { + compatible = "rockchip,rk3588-mipi-dsi2"; + reg = <0x00 0xfde30000 0x00 0x10000>; + interrupts = <0x00 0xa8 0x04>; + clocks = <0x02 0x279 0x02 0x27b>; + clock-names = "pclk\0sys_clk"; + resets = <0x02 0x355>; + reset-names = "apb"; + power-domains = <0x4d 0x18>; + phys = <0x2b>; + phy-names = "dcphy"; + rockchip,grf = <0xb9>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "disabled"; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + reg = <0x00>; + #address-cells = <0x01>; + #size-cells = <0x00>; + + endpoint@0 { + reg = <0x00>; + remote-endpoint = <0xd6>; + status = "disabled"; + phandle = <0xcc>; + }; + + endpoint@1 { + reg = <0x01>; + remote-endpoint = <0x33>; + status = "disabled"; + phandle = <0xd1>; + }; + }; + }; + }; + + hdcp@fde40000 { + compatible = "rockchip,rk3588-hdcp"; + reg = <0x00 0xfde40000 0x00 0x80>; + interrupts = <0x00 0x9f 0x04>; + clocks = <0x02 0x1ed 0x02 0x1ef 0x02 0x1ee 0x02 0x1ec 0x02 0x1f1 0x02 0x1f2>; + clock-names = "aclk\0pclk\0hclk\0hclk_key\0aclk_trng\0pclk_trng"; + resets = <0x02 0x37f 0x02 0x37d 0x02 0x37c 0x02 0x37b 0x02 0x381>; + reset-names = "hdcp\0h_hdcp\0a_hdcp\0hdcp_key\0trng"; + power-domains = <0x4d 0x19>; + rockchip,vo-grf = <0xd7>; + status = "disabled"; + }; + + dp@fde50000 { + compatible = "rockchip,rk3588-dp"; + reg = <0x00 0xfde50000 0x00 0x4000>; + interrupts = <0x00 0xa1 0x04>; + clocks = <0x02 0x1e6 0x02 0x2cc 0x02 0x1fb 0x02 0x207 0x04>; + clock-names = "apb\0aux\0i2s\0spdif\0hclk"; + assigned-clocks = <0x02 0x2cc>; + assigned-clock-rates = <0xf42400>; + resets = <0x02 0x388>; + phys = <0xd8>; + power-domains = <0x4d 0x19>; + #sound-dai-cells = <0x01>; + status = "disabled"; + phandle = <0x1b0>; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + reg = <0x00>; + #address-cells = <0x01>; + #size-cells = <0x00>; + + endpoint@0 { + reg = <0x00>; + remote-endpoint = <0xd9>; + status = "disabled"; + phandle = <0xbc>; + }; + + endpoint@1 { + reg = <0x01>; + remote-endpoint = <0x31>; + status = "disabled"; + phandle = <0xc2>; + }; + + endpoint@2 { + reg = <0x02>; + remote-endpoint = <0xda>; + status = "disabled"; + phandle = <0xc8>; + }; + }; + }; + }; + + hdcp@fde70000 { + compatible = "rockchip,rk3588-hdcp"; + reg = <0x00 0xfde70000 0x00 0x80>; + interrupts = <0x00 0xa0 0x04>; + clocks = <0x02 0x217 0x02 0x219 0x02 0x218 0x02 0x216 0x02 0x228 0x02 0x229>; + clock-names = "aclk\0pclk\0hclk\0hclk_key\0aclk_trng\0pclk_trng"; + resets = <0x02 0x3c8 0x02 0x3c6 0x02 0x3c5 0x02 0x3c4 0x02 0x3ca>; + reset-names = "hdcp\0h_hdcp\0a_hdcp\0hdcp_key\0trng"; + power-domains = <0x4d 0x1a>; + rockchip,vo-grf = <0xba>; + status = "disabled"; + }; + + hdmi@fde80000 { + compatible = "rockchip,rk3588-dw-hdmi"; + reg = <0x00 0xfde80000 0x00 0x20000>; + interrupts = <0x00 0xa9 0x04 0x00 0xaa 0x04 0x00 0xab 0x04 0x00 0xac 0x04 0x00 0x168 0x04>; + clocks = <0x02 0x221 0x02 0x265 0x02 0x222 0x02 0x223 0x02 0x246 0x02 0x274 0x02 0x275 0x02 0x276 0x02 0x277 0x05 0x2e>; + clock-names = "pclk\0hpd\0earc\0hdmitx_ref\0aud\0dclk_vp0\0dclk_vp1\0dclk_vp2\0dclk_vp3\0hclk_vo1\0link_clk"; + resets = <0x02 0x3d0 0x02 0x49c>; + reset-names = "ref\0hdp"; + power-domains = <0x4d 0x1a>; + pinctrl-names = "default"; + pinctrl-0 = <0xdb 0xdc 0xdd 0xde>; + reg-io-width = <0x04>; + rockchip,grf = <0xb7>; + rockchip,vo1_grf = <0xba>; + phys = <0xdf>; + phy-names = "hdmi"; + #sound-dai-cells = <0x00>; + status = "okay"; + enable-gpios = <0xe0 0x00 0x00>; + phandle = <0x1ae>; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + reg = <0x00>; + #address-cells = <0x01>; + #size-cells = <0x00>; + + endpoint@0 { + reg = <0x00>; + remote-endpoint = <0x35>; + status = "okay"; + phandle = <0xbe>; + }; + + endpoint@1 { + reg = <0x01>; + remote-endpoint = <0xe1>; + status = "disabled"; + phandle = <0xc4>; + }; + + endpoint@2 { + reg = <0x02>; + remote-endpoint = <0xe2>; + status = "disabled"; + phandle = <0xca>; + }; + }; + }; + }; + + edp@fdec0000 { + compatible = "rockchip,rk3588-edp"; + reg = <0x00 0xfdec0000 0x00 0x1000>; + interrupts = <0x00 0xa3 0x04>; + clocks = <0x02 0x211 0x02 0x210 0x02 0x212 0x05>; + clock-names = "dp\0pclk\0spdif\0hclk"; + resets = <0x02 0x3e1 0x02 0x3e0>; + reset-names = "dp\0apb"; + phys = <0xe3>; + phy-names = "dp"; + power-domains = <0x4d 0x1a>; + rockchip,grf = <0xba>; + status = "disabled"; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + reg = <0x00>; + #address-cells = <0x01>; + #size-cells = <0x00>; + + endpoint@0 { + reg = <0x00>; + remote-endpoint = <0xe4>; + status = "disabled"; + phandle = <0xbd>; + }; + + endpoint@1 { + reg = <0x01>; + remote-endpoint = <0xe5>; + status = "disabled"; + phandle = <0xc3>; + }; + + endpoint@2 { + reg = <0x02>; + remote-endpoint = <0x34>; + status = "disabled"; + phandle = <0xc9>; + }; + }; + }; + }; + + qos@fdf35000 { + compatible = "syscon"; + reg = <0x00 0xfdf35000 0x00 0x20>; + phandle = <0x6f>; + }; + + qos@fdf35200 { + compatible = "syscon"; + reg = <0x00 0xfdf35200 0x00 0x20>; + phandle = <0x70>; + }; + + qos@fdf35400 { + compatible = "syscon"; + reg = <0x00 0xfdf35400 0x00 0x20>; + phandle = <0x71>; + }; + + qos@fdf35600 { + compatible = "syscon"; + reg = <0x00 0xfdf35600 0x00 0x20>; + phandle = <0x72>; + }; + + qos@fdf36000 { + compatible = "syscon"; + reg = <0x00 0xfdf36000 0x00 0x20>; + phandle = <0x92>; + }; + + qos@fdf39000 { + compatible = "syscon"; + reg = <0x00 0xfdf39000 0x00 0x20>; + phandle = <0x97>; + }; + + qos@fdf3d800 { + compatible = "syscon"; + reg = <0x00 0xfdf3d800 0x00 0x20>; + phandle = <0x98>; + }; + + qos@fdf3e000 { + compatible = "syscon"; + reg = <0x00 0xfdf3e000 0x00 0x20>; + phandle = <0x94>; + }; + + qos@fdf3e200 { + compatible = "syscon"; + reg = <0x00 0xfdf3e200 0x00 0x20>; + phandle = <0x93>; + }; + + qos@fdf3e400 { + compatible = "syscon"; + reg = <0x00 0xfdf3e400 0x00 0x20>; + phandle = <0x95>; + }; + + qos@fdf3e600 { + compatible = "syscon"; + reg = <0x00 0xfdf3e600 0x00 0x20>; + phandle = <0x96>; + }; + + qos@fdf40000 { + compatible = "syscon"; + reg = <0x00 0xfdf40000 0x00 0x20>; + phandle = <0x90>; + }; + + qos@fdf40200 { + compatible = "syscon"; + reg = <0x00 0xfdf40200 0x00 0x20>; + phandle = <0x91>; + }; + + qos@fdf40400 { + compatible = "syscon"; + reg = <0x00 0xfdf40400 0x00 0x20>; + phandle = <0x8a>; + }; + + qos@fdf40500 { + compatible = "syscon"; + reg = <0x00 0xfdf40500 0x00 0x20>; + phandle = <0x8b>; + }; + + qos@fdf40600 { + compatible = "syscon"; + reg = <0x00 0xfdf40600 0x00 0x20>; + phandle = <0x8c>; + }; + + qos@fdf40800 { + compatible = "syscon"; + reg = <0x00 0xfdf40800 0x00 0x20>; + phandle = <0x8d>; + }; + + qos@fdf41000 { + compatible = "syscon"; + reg = <0x00 0xfdf41000 0x00 0x20>; + phandle = <0x8e>; + }; + + qos@fdf41100 { + compatible = "syscon"; + reg = <0x00 0xfdf41100 0x00 0x20>; + phandle = <0x8f>; + }; + + qos@fdf60000 { + compatible = "syscon"; + reg = <0x00 0xfdf60000 0x00 0x20>; + phandle = <0x75>; + }; + + qos@fdf60200 { + compatible = "syscon"; + reg = <0x00 0xfdf60200 0x00 0x20>; + phandle = <0x76>; + }; + + qos@fdf60400 { + compatible = "syscon"; + reg = <0x00 0xfdf60400 0x00 0x20>; + phandle = <0x77>; + }; + + qos@fdf61000 { + compatible = "syscon"; + reg = <0x00 0xfdf61000 0x00 0x20>; + phandle = <0x78>; + }; + + qos@fdf61200 { + compatible = "syscon"; + reg = <0x00 0xfdf61200 0x00 0x20>; + phandle = <0x79>; + }; + + qos@fdf61400 { + compatible = "syscon"; + reg = <0x00 0xfdf61400 0x00 0x20>; + phandle = <0x7a>; + }; + + qos@fdf62000 { + compatible = "syscon"; + reg = <0x00 0xfdf62000 0x00 0x20>; + phandle = <0x73>; + }; + + qos@fdf63000 { + compatible = "syscon"; + reg = <0x00 0xfdf63000 0x00 0x20>; + phandle = <0x74>; + }; + + qos@fdf64000 { + compatible = "syscon"; + reg = <0x00 0xfdf64000 0x00 0x20>; + phandle = <0x83>; + }; + + qos@fdf66000 { + compatible = "syscon"; + reg = <0x00 0xfdf66000 0x00 0x20>; + phandle = <0x7b>; + }; + + qos@fdf66200 { + compatible = "syscon"; + reg = <0x00 0xfdf66200 0x00 0x20>; + phandle = <0x7c>; + }; + + qos@fdf66400 { + compatible = "syscon"; + reg = <0x00 0xfdf66400 0x00 0x20>; + phandle = <0x7d>; + }; + + qos@fdf66600 { + compatible = "syscon"; + reg = <0x00 0xfdf66600 0x00 0x20>; + phandle = <0x7e>; + }; + + qos@fdf66800 { + compatible = "syscon"; + reg = <0x00 0xfdf66800 0x00 0x20>; + phandle = <0x7f>; + }; + + qos@fdf66a00 { + compatible = "syscon"; + reg = <0x00 0xfdf66a00 0x00 0x20>; + phandle = <0x80>; + }; + + qos@fdf66c00 { + compatible = "syscon"; + reg = <0x00 0xfdf66c00 0x00 0x20>; + phandle = <0x81>; + }; + + qos@fdf66e00 { + compatible = "syscon"; + reg = <0x00 0xfdf66e00 0x00 0x20>; + phandle = <0x82>; + }; + + qos@fdf67000 { + compatible = "syscon"; + reg = <0x00 0xfdf67000 0x00 0x20>; + phandle = <0x84>; + }; + + qos@fdf67200 { + compatible = "syscon"; + reg = <0x00 0xfdf67200 0x00 0x20>; + }; + + qos@fdf70000 { + compatible = "syscon"; + reg = <0x00 0xfdf70000 0x00 0x20>; + phandle = <0x6d>; + }; + + qos@fdf71000 { + compatible = "syscon"; + reg = <0x00 0xfdf71000 0x00 0x20>; + phandle = <0x6e>; + }; + + qos@fdf72000 { + compatible = "syscon"; + reg = <0x00 0xfdf72000 0x00 0x20>; + phandle = <0x6a>; + }; + + qos@fdf72200 { + compatible = "syscon"; + reg = <0x00 0xfdf72200 0x00 0x20>; + phandle = <0x6b>; + }; + + qos@fdf72400 { + compatible = "syscon"; + reg = <0x00 0xfdf72400 0x00 0x20>; + phandle = <0x6c>; + }; + + qos@fdf80000 { + compatible = "syscon"; + reg = <0x00 0xfdf80000 0x00 0x20>; + phandle = <0x87>; + }; + + qos@fdf81000 { + compatible = "syscon"; + reg = <0x00 0xfdf81000 0x00 0x20>; + phandle = <0x88>; + }; + + qos@fdf81200 { + compatible = "syscon"; + reg = <0x00 0xfdf81200 0x00 0x20>; + phandle = <0x89>; + }; + + qos@fdf82000 { + compatible = "syscon"; + reg = <0x00 0xfdf82000 0x00 0x20>; + phandle = <0x85>; + }; + + qos@fdf82200 { + compatible = "syscon"; + reg = <0x00 0xfdf82200 0x00 0x20>; + phandle = <0x86>; + }; + + dfi@fe060000 { + compatible = "rockchip,rk3588-dfi"; + reg = <0x00 0xfe060000 0x00 0x10000>; + rockchip,pmu_grf = <0xe6>; + status = "okay"; + phandle = <0x39>; + }; + + pcie@fe180000 { + compatible = "rockchip,rk3588-pcie\0snps,dw-pcie"; + #address-cells = <0x03>; + #size-cells = <0x02>; + bus-range = <0x30 0x3f>; + clocks = <0x02 0x151 0x02 0x156 0x02 0x14c 0x02 0x15c 0x02 0x161 0x02 0x2c5>; + clock-names = "aclk_mst\0aclk_slv\0aclk_dbi\0pclk\0aux\0pipe"; + device_type = "pci"; + interrupts = <0x00 0xf8 0x04 0x00 0xf7 0x04 0x00 0xf6 0x04 0x00 0xf5 0x04 0x00 0xf4 0x04>; + interrupt-names = "sys\0pmc\0msg\0legacy\0err"; + #interrupt-cells = <0x01>; + interrupt-map-mask = <0x00 0x00 0x00 0x07>; + interrupt-map = <0x00 0x00 0x00 0x01 0xe7 0x00 0x00 0x00 0x00 0x02 0xe7 0x01 0x00 0x00 0x00 0x03 0xe7 0x02 0x00 0x00 0x00 0x04 0xe7 0x03>; + linux,pci-domain = <0x03>; + num-ib-windows = <0x08>; + num-ob-windows = <0x08>; + num-viewport = <0x04>; + max-link-speed = <0x02>; + msi-map = <0x3000 0xe8 0x3000 0x1000>; + num-lanes = <0x01>; + phys = <0x5b 0x02>; + phy-names = "pcie-phy"; + ranges = <0x800 0x00 0xf3000000 0x00 0xf3000000 0x00 0x100000 0x81000000 0x00 0xf3100000 0x00 0xf3100000 0x00 0x100000 0x82000000 0x00 0xf3200000 0x00 0xf3200000 0x00 0xe00000 0xc3000000 0x09 0xc0000000 0x09 0xc0000000 0x00 0x40000000>; + reg = <0x00 0xfe180000 0x00 0x10000 0x0a 0x40c00000 0x00 0x400000>; + reg-names = "pcie-apb\0pcie-dbi"; + resets = <0x02 0x210 0x02 0x21f>; + reset-names = "pcie\0periph"; + rockchip,pipe-grf = <0x61>; + status = "disabled"; + + legacy-interrupt-controller { + interrupt-controller; + #address-cells = <0x00>; + #interrupt-cells = <0x01>; + interrupt-parent = <0x01>; + interrupts = <0x00 0xf5 0x01>; + phandle = <0xe7>; + }; + }; + + pcie@fe190000 { + compatible = "rockchip,rk3588-pcie\0snps,dw-pcie"; + #address-cells = <0x03>; + #size-cells = <0x02>; + bus-range = <0x40 0x4f>; + clocks = <0x02 0x152 0x02 0x157 0x02 0x14d 0x02 0x15d 0x02 0x162 0x02 0x182>; + clock-names = "aclk_mst\0aclk_slv\0aclk_dbi\0pclk\0aux\0pipe"; + device_type = "pci"; + interrupts = <0x00 0xfd 0x04 0x00 0xfc 0x04 0x00 0xfb 0x04 0x00 0xfa 0x04 0x00 0xf9 0x04>; + interrupt-names = "sys\0pmc\0msg\0legacy\0err"; + #interrupt-cells = <0x01>; + interrupt-map-mask = <0x00 0x00 0x00 0x07>; + interrupt-map = <0x00 0x00 0x00 0x01 0xe9 0x00 0x00 0x00 0x00 0x02 0xe9 0x01 0x00 0x00 0x00 0x03 0xe9 0x02 0x00 0x00 0x00 0x04 0xe9 0x03>; + linux,pci-domain = <0x04>; + num-ib-windows = <0x08>; + num-ob-windows = <0x08>; + num-viewport = <0x04>; + max-link-speed = <0x02>; + msi-map = <0x4000 0xe8 0x4000 0x1000>; + num-lanes = <0x01>; + phys = <0xea 0x02>; + phy-names = "pcie-phy"; + ranges = <0x800 0x00 0xf4000000 0x00 0xf4000000 0x00 0x100000 0x81000000 0x00 0xf4100000 0x00 0xf4100000 0x00 0x100000 0x82000000 0x00 0xf4200000 0x00 0xf4200000 0x00 0xe00000 0xc3000000 0x0a 0x00 0x0a 0x00 0x00 0x40000000>; + reg = <0x00 0xfe190000 0x00 0x10000 0x0a 0x41000000 0x00 0x400000>; + reg-names = "pcie-apb\0pcie-dbi"; + resets = <0x02 0x211 0x02 0x220>; + reset-names = "pcie\0periph"; + rockchip,pipe-grf = <0x61>; + status = "disabled"; + + legacy-interrupt-controller { + interrupt-controller; + #address-cells = <0x00>; + #interrupt-cells = <0x01>; + interrupt-parent = <0x01>; + interrupts = <0x00 0xfa 0x01>; + phandle = <0xe9>; + }; + }; + + ethernet@fe1b0000 { + compatible = "rockchip,rk3588-gmac\0snps,dwmac-4.20a"; + reg = <0x00 0xfe1b0000 0x00 0x10000>; + interrupts = <0x00 0xe3 0x04 0x00 0xe2 0x04>; + interrupt-names = "macirq\0eth_wake_irq"; + rockchip,grf = <0xb7>; + rockchip,php_grf = <0x61>; + local-mac-address = [d2 5e 8a 13 5d df]; + clocks = <0x02 0x144 0x02 0x145 0x02 0x167 0x02 0x16c 0x02 0x142>; + clock-names = "stmmaceth\0clk_mac_ref\0pclk_mac\0aclk_mac\0ptp_ref"; + resets = <0x02 0x20a>; + reset-names = "stmmaceth"; + power-domains = <0x4d 0x21>; + snps,mixed-burst; + snps,tso; + snps,axi-config = <0xeb>; + snps,mtl-rx-config = <0xec>; + snps,mtl-tx-config = <0xed>; + snps,txpbl = <0x04>; + status = "okay"; + phy-mode = "rgmii-rxid"; + clock_in_out = "output"; + snps,reset-gpio = <0xee 0x17 0x01>; + snps,reset-active-low; + snps,reset-delays-us = <0x00 0x4e20 0x186a0>; + pinctrl-names = "default"; + pinctrl-0 = <0xef 0xf0 0xf1 0xf2 0xf3>; + tx_delay = <0x45>; + phy-handle = <0xf4>; + + mdio { + compatible = "snps,dwmac-mdio"; + #address-cells = <0x01>; + #size-cells = <0x00>; + + phy@1 { + compatible = "ethernet-phy-ieee802.3-c22"; + reg = <0x01>; + phandle = <0xf4>; + }; + }; + + stmmac-axi-config { + snps,wr_osr_lmt = <0x04>; + snps,rd_osr_lmt = <0x08>; + snps,blen = <0x00 0x00 0x00 0x00 0x10 0x08 0x04>; + phandle = <0xeb>; + }; + + rx-queues-config { + snps,rx-queues-to-use = <0x02>; + phandle = <0xec>; + + queue0 { + }; + + queue1 { + }; + }; + + tx-queues-config { + snps,tx-queues-to-use = <0x02>; + phandle = <0xed>; + + queue0 { + }; + + queue1 { + }; + }; + }; + + ethernet@fe1c0000 { + compatible = "rockchip,rk3588-gmac\0snps,dwmac-4.20a"; + reg = <0x00 0xfe1c0000 0x00 0x10000>; + interrupts = <0x00 0xea 0x04 0x00 0xe9 0x04>; + interrupt-names = "macirq\0eth_wake_irq"; + rockchip,grf = <0xb7>; + rockchip,php_grf = <0x61>; + local-mac-address = [d6 5e 8a 13 5d df]; + clocks = <0x02 0x144 0x02 0x145 0x02 0x168 0x02 0x16d 0x02 0x143>; + clock-names = "stmmaceth\0clk_mac_ref\0pclk_mac\0aclk_mac\0ptp_ref"; + resets = <0x02 0x20b>; + reset-names = "stmmaceth"; + power-domains = <0x4d 0x21>; + snps,mixed-burst; + snps,tso; + snps,axi-config = <0xf5>; + snps,mtl-rx-config = <0xf6>; + snps,mtl-tx-config = <0xf7>; + snps,txpbl = <0x04>; + status = "okay"; + phy-mode = "rgmii-rxid"; + clock_in_out = "output"; + snps,reset-gpio = <0xee 0x0f 0x01>; + snps,reset-active-low; + snps,reset-delays-us = <0x00 0x4e20 0x186a0>; + pinctrl-names = "default"; + pinctrl-0 = <0xf8 0xf9 0xfa 0xfb 0xfc>; + tx_delay = <0x42>; + phy-handle = <0xfd>; + + mdio { + compatible = "snps,dwmac-mdio"; + #address-cells = <0x01>; + #size-cells = <0x00>; + + phy@1 { + compatible = "ethernet-phy-ieee802.3-c22"; + reg = <0x01>; + phandle = <0xfd>; + }; + }; + + stmmac-axi-config { + snps,wr_osr_lmt = <0x04>; + snps,rd_osr_lmt = <0x08>; + snps,blen = <0x00 0x00 0x00 0x00 0x10 0x08 0x04>; + phandle = <0xf5>; + }; + + rx-queues-config { + snps,rx-queues-to-use = <0x02>; + phandle = <0xf6>; + + queue0 { + }; + + queue1 { + }; + }; + + tx-queues-config { + snps,tx-queues-to-use = <0x02>; + phandle = <0xf7>; + + queue0 { + }; + + queue1 { + }; + }; + }; + + sata@fe210000 { + compatible = "rockchip,rk-ahci\0snps,dwc-ahci"; + reg = <0x00 0xfe210000 0x00 0x1000>; + clocks = <0x02 0x171 0x02 0x16e 0x02 0x174 0x02 0x163 0x02 0x17e>; + clock-names = "sata\0pmalive\0rxoob\0ref\0asic"; + interrupts = <0x00 0x111 0x04>; + interrupt-names = "hostc"; + phys = <0xea 0x01>; + phy-names = "sata-phy"; + ports-implemented = <0x01>; + status = "disabled"; + }; + + sata@fe230000 { + compatible = "rockchip,rk-ahci\0snps,dwc-ahci"; + reg = <0x00 0xfe230000 0x00 0x1000>; + clocks = <0x02 0x173 0x02 0x170 0x02 0x176 0x02 0x165 0x02 0x180>; + clock-names = "sata\0pmalive\0rxoob\0ref\0asic"; + interrupts = <0x00 0x113 0x04>; + interrupt-names = "hostc"; + phys = <0x5b 0x01>; + phy-names = "sata-phy"; + ports-implemented = <0x01>; + status = "disabled"; + }; + + spi@fe2b0000 { + compatible = "rockchip,sfc"; + reg = <0x00 0xfe2b0000 0x00 0x4000>; + interrupts = <0x00 0xce 0x04>; + clocks = <0x02 0x13d 0x02 0x13e>; + clock-names = "clk_sfc\0hclk_sfc"; + assigned-clocks = <0x02 0x13d>; + assigned-clock-rates = <0x5f5e100>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "disabled"; + }; + + mmc@fe2c0000 { + compatible = "rockchip,rk3588-dw-mshc\0rockchip,rk3288-dw-mshc"; + reg = <0x00 0xfe2c0000 0x00 0x4000>; + interrupts = <0x00 0xcb 0x04>; + clocks = <0x0e 0x17 0x0e 0x09 0x02 0x2c2 0x02 0x2c3>; + clock-names = "biu\0ciu\0ciu-drive\0ciu-sample"; + fifo-depth = <0x100>; + max-frequency = <0x8f0d180>; + pinctrl-names = "default"; + pinctrl-0 = <0xfe 0xff 0x100 0x101>; + power-domains = <0x4d 0x28>; + status = "okay"; + no-sdio; + no-mmc; + bus-width = <0x04>; + cap-mmc-highspeed; + cap-sd-highspeed; + disable-wp; + sd-uhs-sdr104; + vqmmc-supply = <0x102>; + }; + + mmc@fe2d0000 { + compatible = "rockchip,rk3588-dw-mshc\0rockchip,rk3288-dw-mshc"; + reg = <0x00 0xfe2d0000 0x00 0x4000>; + interrupts = <0x00 0xcc 0x04>; + clocks = <0x02 0x199 0x02 0x19a 0x02 0x2c0 0x02 0x2c1>; + clock-names = "biu\0ciu\0ciu-drive\0ciu-sample"; + fifo-depth = <0x100>; + max-frequency = <0xbebc200>; + pinctrl-names = "default"; + pinctrl-0 = <0x103>; + power-domains = <0x4d 0x25>; + status = "disabled"; + }; + + mmc@fe2e0000 { + compatible = "rockchip,rk3588-dwcmshc\0rockchip,dwcmshc-sdhci"; + reg = <0x00 0xfe2e0000 0x00 0x10000>; + interrupts = <0x00 0xcd 0x04>; + assigned-clocks = <0x02 0x13b 0x02 0x13c 0x02 0x13a>; + assigned-clock-rates = <0xbebc200 0x16e3600 0xbebc200>; + clocks = <0x02 0x13a 0x02 0x138 0x02 0x139 0x02 0x13b 0x02 0x13c>; + clock-names = "core\0bus\0axi\0block\0timer"; + resets = <0x02 0x1f6 0x02 0x1f4 0x02 0x1f5 0x02 0x1f7 0x02 0x1f8>; + reset-names = "core\0bus\0axi\0block\0timer"; + max-frequency = <0xbebc200>; + status = "okay"; + bus-width = <0x08>; + no-sdio; + no-sd; + non-removable; + mmc-hs400-1_8v; + mmc-hs400-enhanced-strobe; + }; + + crypto@fe370000 { + compatible = "rockchip,rk3588-crypto"; + reg = <0x00 0xfe370000 0x00 0x2000>; + interrupts = <0x00 0xd1 0x04>; + clocks = <0x0e 0x0b 0x0e 0x0c 0x0e 0x14 0x0e 0x15>; + clock-names = "aclk\0hclk\0sclk\0pka"; + resets = <0x104 0x0f>; + reset-names = "crypto-rst"; + status = "disabled"; + }; + + rng@fe378000 { + compatible = "rockchip,trngv1"; + reg = <0x00 0xfe378000 0x00 0x200>; + interrupts = <0x00 0x190 0x04>; + clocks = <0x0e 0x0c>; + clock-names = "hclk_trng"; + resets = <0x104 0x30>; + reset-names = "reset"; + status = "okay"; + }; + + i2s@fe470000 { + compatible = "rockchip,rk3588-i2s-tdm"; + reg = <0x00 0xfe470000 0x00 0x1000>; + interrupts = <0x00 0xb4 0x04>; + clocks = <0x02 0x33 0x02 0x37 0x02 0x30>; + clock-names = "mclk_tx\0mclk_rx\0hclk"; + assigned-clocks = <0x02 0x31 0x02 0x35>; + assigned-clock-parents = <0x02 0x05 0x02 0x05>; + dmas = <0x64 0x00 0x64 0x01>; + dma-names = "tx\0rx"; + power-domains = <0x4d 0x26>; + resets = <0x02 0x77 0x02 0x7a>; + reset-names = "tx-m\0rx-m"; + rockchip,clk-trcm = <0x01>; + pinctrl-names = "default"; + pinctrl-0 = <0x105 0x106 0x107 0x108>; + #sound-dai-cells = <0x00>; + status = "okay"; + phandle = <0x1b4>; + }; + + i2s@fe480000 { + compatible = "rockchip,rk3588-i2s-tdm"; + reg = <0x00 0xfe480000 0x00 0x1000>; + interrupts = <0x00 0xb5 0x04>; + clocks = <0x02 0x28c 0x02 0x290 0x02 0x288>; + clock-names = "mclk_tx\0mclk_rx\0hclk"; + dmas = <0x64 0x02 0x64 0x03>; + dma-names = "tx\0rx"; + resets = <0x02 0xc002a 0x02 0xc002d>; + reset-names = "tx-m\0rx-m"; + rockchip,clk-trcm = <0x01>; + pinctrl-names = "default"; + pinctrl-0 = <0x109 0x10a 0x10b 0x10c 0x10d 0x10e 0x10f 0x110 0x111 0x112>; + #sound-dai-cells = <0x00>; + status = "disabled"; + }; + + i2s@fe490000 { + compatible = "rockchip,rk3588-i2s\0rockchip,rk3066-i2s"; + reg = <0x00 0xfe490000 0x00 0x1000>; + interrupts = <0x00 0xb6 0x04>; + clocks = <0x02 0x27 0x02 0x22>; + clock-names = "i2s_clk\0i2s_hclk"; + assigned-clocks = <0x02 0x24>; + assigned-clock-parents = <0x02 0x05>; + dmas = <0xd3 0x00 0xd3 0x01>; + dma-names = "tx\0rx"; + power-domains = <0x4d 0x26>; + rockchip,clk-trcm = <0x01>; + pinctrl-names = "default"; + pinctrl-0 = <0x113 0x114 0x115 0x116>; + #sound-dai-cells = <0x00>; + status = "disabled"; + }; + + i2s@fe4a0000 { + compatible = "rockchip,rk3588-i2s\0rockchip,rk3066-i2s"; + reg = <0x00 0xfe4a0000 0x00 0x1000>; + interrupts = <0x00 0xb7 0x04>; + clocks = <0x02 0x2d 0x02 0x23>; + clock-names = "i2s_clk\0i2s_hclk"; + assigned-clocks = <0x02 0x2a>; + assigned-clock-parents = <0x02 0x05>; + dmas = <0xd3 0x02 0xd3 0x03>; + dma-names = "tx\0rx"; + power-domains = <0x4d 0x26>; + rockchip,clk-trcm = <0x01>; + pinctrl-names = "default"; + pinctrl-0 = <0x117 0x118 0x119 0x11a>; + #sound-dai-cells = <0x00>; + status = "disabled"; + }; + + pdm@fe4b0000 { + compatible = "rockchip,rk3588-pdm"; + reg = <0x00 0xfe4b0000 0x00 0x1000>; + clocks = <0x02 0x29f 0x02 0x29e>; + clock-names = "pdm_clk\0pdm_hclk"; + dmas = <0x64 0x04>; + dma-names = "rx"; + pinctrl-names = "default"; + pinctrl-0 = <0x11b 0x11c 0x11d 0x11e 0x11f 0x120>; + #sound-dai-cells = <0x00>; + status = "disabled"; + }; + + pdm@fe4c0000 { + compatible = "rockchip,rk3588-pdm"; + reg = <0x00 0xfe4c0000 0x00 0x1000>; + clocks = <0x02 0x3b 0x02 0x3a>; + clock-names = "pdm_clk\0pdm_hclk"; + assigned-clocks = <0x02 0x3b>; + assigned-clock-parents = <0x02 0x05>; + dmas = <0xd3 0x04>; + dma-names = "rx"; + power-domains = <0x4d 0x26>; + pinctrl-names = "default"; + pinctrl-0 = <0x121 0x122 0x123 0x124 0x125 0x126>; + #sound-dai-cells = <0x00>; + status = "disabled"; + }; + + vad@fe4d0000 { + compatible = "rockchip,rk3588-vad"; + reg = <0x00 0xfe4d0000 0x00 0x1000>; + reg-names = "vad"; + clocks = <0x02 0x2a0>; + clock-names = "hclk"; + interrupts = <0x00 0xca 0x04>; + rockchip,audio-src = <0x00>; + rockchip,det-channel = <0x00>; + rockchip,mode = <0x00>; + #sound-dai-cells = <0x00>; + status = "disabled"; + }; + + spdif-tx@fe4e0000 { + compatible = "rockchip,rk3588-spdif\0rockchip,rk3568-spdif"; + reg = <0x00 0xfe4e0000 0x00 0x1000>; + interrupts = <0x00 0xc1 0x04>; + dmas = <0x64 0x05>; + dma-names = "tx"; + clock-names = "mclk\0hclk"; + clocks = <0x02 0x41 0x02 0x3e>; + assigned-clocks = <0x02 0x3f>; + assigned-clock-parents = <0x02 0x05>; + power-domains = <0x4d 0x26>; + pinctrl-names = "default"; + pinctrl-0 = <0x127>; + #sound-dai-cells = <0x00>; + status = "disabled"; + }; + + spdif-tx@fe4f0000 { + compatible = "rockchip,rk3588-spdif\0rockchip,rk3568-spdif"; + reg = <0x00 0xfe4f0000 0x00 0x1000>; + interrupts = <0x00 0xc2 0x04>; + dmas = <0xd3 0x05>; + dma-names = "tx"; + clock-names = "mclk\0hclk"; + clocks = <0x02 0x47 0x02 0x44>; + assigned-clocks = <0x02 0x45>; + assigned-clock-parents = <0x02 0x05>; + power-domains = <0x4d 0x26>; + pinctrl-names = "default"; + pinctrl-0 = <0x128>; + #sound-dai-cells = <0x00>; + status = "disabled"; + phandle = <0x1b1>; + }; + + codec-digital@fe500000 { + compatible = "rockchip,rk3588-codec-digital\0rockchip,codec-digital-v1"; + reg = <0x00 0xfe500000 0x00 0x1000>; + clocks = <0x02 0x29 0x02 0x2f>; + clock-names = "dac\0pclk"; + power-domains = <0x4d 0x26>; + resets = <0x02 0x84>; + reset-names = "reset"; + rockchip,grf = <0xb7>; + rockchip,pwm-output-mode; + pinctrl-names = "default"; + pinctrl-0 = <0x129>; + #sound-dai-cells = <0x00>; + status = "disabled"; + }; + + hwspinlock@fe5a0000 { + compatible = "rockchip,hwspinlock"; + reg = <0x00 0xfe5a0000 0x00 0x100>; + #hwlock-cells = <0x01>; + }; + + interrupt-controller@fe600000 { + compatible = "arm,gic-v3"; + #interrupt-cells = <0x03>; + #address-cells = <0x02>; + #size-cells = <0x02>; + ranges; + interrupt-controller; + reg = <0x00 0xfe600000 0x00 0x10000 0x00 0xfe680000 0x00 0x100000>; + interrupts = <0x01 0x09 0x04>; + phandle = <0x01>; + }; + + dma-controller@fea10000 { + compatible = "arm,pl330\0arm,primecell"; + reg = <0x00 0xfea10000 0x00 0x4000>; + interrupts = <0x00 0x56 0x04 0x00 0x57 0x04>; + clocks = <0x02 0x78>; + clock-names = "apb_pclk"; + #dma-cells = <0x01>; + arm,pl330-periph-burst; + phandle = <0x64>; + }; + + dma-controller@fea30000 { + compatible = "arm,pl330\0arm,primecell"; + reg = <0x00 0xfea30000 0x00 0x4000>; + interrupts = <0x00 0x58 0x04 0x00 0x59 0x04>; + clocks = <0x02 0x79>; + clock-names = "apb_pclk"; + #dma-cells = <0x01>; + arm,pl330-periph-burst; + phandle = <0xd3>; + }; + + can@fea50000 { + compatible = "rockchip,can-2.0"; + reg = <0x00 0xfea50000 0x00 0x1000>; + interrupts = <0x00 0x155 0x04>; + clocks = <0x02 0x70 0x02 0x6f>; + clock-names = "baudclk\0apb_pclk"; + resets = <0x02 0xb9 0x02 0xb8>; + reset-names = "can\0can-apb"; + pinctrl-names = "default"; + pinctrl-0 = <0x12a>; + tx-fifo-depth = <0x01>; + rx-fifo-depth = <0x06>; + status = "disabled"; + }; + + can@fea60000 { + compatible = "rockchip,can-2.0"; + reg = <0x00 0xfea60000 0x00 0x1000>; + interrupts = <0x00 0x156 0x04>; + clocks = <0x02 0x72 0x02 0x71>; + clock-names = "baudclk\0apb_pclk"; + resets = <0x02 0xbb 0x02 0xba>; + reset-names = "can\0can-apb"; + pinctrl-names = "default"; + pinctrl-0 = <0x12b>; + tx-fifo-depth = <0x01>; + rx-fifo-depth = <0x06>; + status = "okay"; + assigned-clocks = <0x02 0x72>; + assigned-clock-rates = <0xbebc200>; + }; + + can@fea70000 { + compatible = "rockchip,can-2.0"; + reg = <0x00 0xfea70000 0x00 0x1000>; + interrupts = <0x00 0x157 0x04>; + clocks = <0x02 0x74 0x02 0x73>; + clock-names = "baudclk\0apb_pclk"; + resets = <0x02 0xbd 0x02 0xbc>; + reset-names = "can\0can-apb"; + pinctrl-names = "default"; + pinctrl-0 = <0x12c>; + tx-fifo-depth = <0x01>; + rx-fifo-depth = <0x06>; + status = "disabled"; + }; + + decompress@fea80000 { + compatible = "rockchip,hw-decompress"; + reg = <0x00 0xfea80000 0x00 0x1000>; + interrupts = <0x00 0x55 0x04>; + clocks = <0x02 0x75 0x02 0x77 0x02 0x76>; + clock-names = "aclk\0dclk\0pclk"; + resets = <0x02 0x118>; + reset-names = "dresetn"; + status = "disabled"; + }; + + i2c@fea90000 { + compatible = "rockchip,rk3588-i2c\0rockchip,rk3399-i2c"; + reg = <0x00 0xfea90000 0x00 0x1000>; + clocks = <0x02 0x8d 0x02 0x85>; + clock-names = "i2c\0pclk"; + interrupts = <0x00 0x13e 0x04>; + pinctrl-names = "default"; + pinctrl-0 = <0x12d>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "okay"; + + rk8602@42 { + compatible = "rockchip,rk8602"; + reg = <0x42>; + vin-supply = <0x63>; + regulator-compatible = "rk860x-reg"; + regulator-name = "vdd_npu_s0"; + regulator-min-microvolt = <0x86470>; + regulator-max-microvolt = <0xe7ef0>; + regulator-ramp-delay = <0x8fc>; + rockchip,suspend-voltage-selector = <0x01>; + regulator-boot-on; + regulator-always-on; + phandle = <0x9b>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + }; + + i2c@feaa0000 { + compatible = "rockchip,rk3588-i2c\0rockchip,rk3399-i2c"; + reg = <0x00 0xfeaa0000 0x00 0x1000>; + clocks = <0x02 0x8e 0x02 0x86>; + clock-names = "i2c\0pclk"; + interrupts = <0x00 0x13f 0x04>; + pinctrl-names = "default"; + pinctrl-0 = <0x12e>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "disabled"; + }; + + i2c@feab0000 { + compatible = "rockchip,rk3588-i2c\0rockchip,rk3399-i2c"; + reg = <0x00 0xfeab0000 0x00 0x1000>; + clocks = <0x02 0x8f 0x02 0x87>; + clock-names = "i2c\0pclk"; + interrupts = <0x00 0x140 0x04>; + pinctrl-names = "default"; + pinctrl-0 = <0x12f>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "disabled"; + + es8388@11 { + status = "disabled"; + #sound-dai-cells = <0x00>; + compatible = "everest,es8388\0everest,es8323"; + reg = <0x11>; + clocks = <0x02 0x39>; + clock-names = "mclk"; + assigned-clocks = <0x02 0x39>; + assigned-clock-rates = <0xbb8000>; + pinctrl-names = "default"; + pinctrl-0 = <0x130>; + phandle = <0x1b5>; + }; + }; + + i2c@feac0000 { + compatible = "rockchip,rk3588-i2c\0rockchip,rk3399-i2c"; + reg = <0x00 0xfeac0000 0x00 0x1000>; + clocks = <0x02 0x90 0x02 0x88>; + clock-names = "i2c\0pclk"; + interrupts = <0x00 0x141 0x04>; + pinctrl-names = "default"; + pinctrl-0 = <0x131>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "disabled"; + }; + + i2c@fead0000 { + compatible = "rockchip,rk3588-i2c\0rockchip,rk3399-i2c"; + reg = <0x00 0xfead0000 0x00 0x1000>; + clocks = <0x02 0x91 0x02 0x89>; + clock-names = "i2c\0pclk"; + interrupts = <0x00 0x142 0x04>; + pinctrl-names = "default"; + pinctrl-0 = <0x132>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "disabled"; + }; + + timer@feae0000 { + compatible = "rockchip,rk3588-timer\0rockchip,rk3288-timer"; + reg = <0x00 0xfeae0000 0x00 0x20>; + interrupts = <0x00 0x121 0x04>; + clocks = <0x02 0x5c 0x02 0x5f>; + clock-names = "pclk\0timer"; + }; + + watchdog@feaf0000 { + compatible = "snps,dw-wdt"; + reg = <0x00 0xfeaf0000 0x00 0x100>; + clocks = <0x02 0x6c 0x02 0x6b>; + clock-names = "tclk\0pclk"; + interrupts = <0x00 0x13b 0x04>; + status = "okay"; + }; + + spi@feb00000 { + compatible = "rockchip,rk3066-spi"; + reg = <0x00 0xfeb00000 0x00 0x1000>; + interrupts = <0x00 0x146 0x04>; + #address-cells = <0x01>; + #size-cells = <0x00>; + clocks = <0x02 0xa3 0x02 0x9e>; + clock-names = "spiclk\0apb_pclk"; + dmas = <0x64 0x0e 0x64 0x0f>; + dma-names = "tx\0rx"; + pinctrl-names = "default"; + pinctrl-0 = <0x133 0x134 0x135>; + num-cs = <0x02>; + status = "disabled"; + }; + + spi@feb10000 { + compatible = "rockchip,rk3066-spi"; + reg = <0x00 0xfeb10000 0x00 0x1000>; + interrupts = <0x00 0x147 0x04>; + #address-cells = <0x01>; + #size-cells = <0x00>; + clocks = <0x02 0xa4 0x02 0x9f>; + clock-names = "spiclk\0apb_pclk"; + dmas = <0x64 0x10 0x64 0x11>; + dma-names = "tx\0rx"; + pinctrl-names = "default"; + pinctrl-0 = <0x136 0x137 0x138>; + num-cs = <0x02>; + status = "disabled"; + }; + + spi@feb20000 { + compatible = "rockchip,rk3066-spi"; + reg = <0x00 0xfeb20000 0x00 0x1000>; + interrupts = <0x00 0x148 0x04>; + #address-cells = <0x01>; + #size-cells = <0x00>; + clocks = <0x02 0xa5 0x02 0xa0>; + clock-names = "spiclk\0apb_pclk"; + dmas = <0xd3 0x0f 0xd3 0x10>; + dma-names = "tx\0rx"; + pinctrl-names = "default"; + pinctrl-0 = <0x139 0x13a>; + num-cs = <0x01>; + status = "okay"; + assigned-clocks = <0x02 0xa5>; + assigned-clock-rates = <0xbebc200>; + + rk806single@0 { + compatible = "rockchip,rk806"; + spi-max-frequency = <0xf4240>; + reg = <0x00>; + interrupt-parent = <0x13b>; + interrupts = <0x07 0x08>; + pinctrl-names = "default\0pmic-power-off"; + pinctrl-0 = <0x13c 0x13d 0x13e 0x13f>; + pinctrl-1 = <0x140>; + low_voltage_threshold = <0xbb8>; + shutdown_voltage_threshold = <0xa8c>; + shutdown_temperture_threshold = <0xa0>; + hotdie_temperture_threshold = <0x73>; + pmic-reset-func = <0x01>; + vcc1-supply = <0x63>; + vcc2-supply = <0x63>; + vcc3-supply = <0x63>; + vcc4-supply = <0x63>; + vcc5-supply = <0x63>; + vcc6-supply = <0x63>; + vcc7-supply = <0x63>; + vcc8-supply = <0x63>; + vcc9-supply = <0x63>; + vcc10-supply = <0x63>; + vcc11-supply = <0x141>; + vcc12-supply = <0x63>; + vcc13-supply = <0x142>; + vcc14-supply = <0x142>; + vcca-supply = <0x63>; + + pwrkey { + status = "okay"; + }; + + pinctrl_rk806 { + gpio-controller; + #gpio-cells = <0x02>; + + rk806_dvs1_null { + pins = "gpio_pwrctrl2"; + function = "pin_fun0"; + phandle = <0x13d>; + }; + + rk806_dvs1_slp { + pins = "gpio_pwrctrl1"; + function = "pin_fun1"; + }; + + rk806_dvs1_pwrdn { + pins = "gpio_pwrctrl1"; + function = "pin_fun2"; + phandle = <0x140>; + }; + + rk806_dvs1_rst { + pins = "gpio_pwrctrl1"; + function = "pin_fun3"; + }; + + rk806_dvs2_null { + pins = "gpio_pwrctrl2"; + function = "pin_fun0"; + phandle = <0x13e>; + }; + + rk806_dvs2_slp { + pins = "gpio_pwrctrl2"; + function = "pin_fun1"; + }; + + rk806_dvs2_pwrdn { + pins = "gpio_pwrctrl2"; + function = "pin_fun2"; + }; + + rk806_dvs2_rst { + pins = "gpio_pwrctrl2"; + function = "pin_fun3"; + }; + + rk806_dvs2_dvs { + pins = "gpio_pwrctrl2"; + function = "pin_fun4"; + }; + + rk806_dvs2_gpio { + pins = "gpio_pwrctrl2"; + function = "pin_fun5"; + }; + + rk806_dvs3_null { + pins = "gpio_pwrctrl3"; + function = "pin_fun0"; + phandle = <0x13f>; + }; + + rk806_dvs3_slp { + pins = "gpio_pwrctrl3"; + function = "pin_fun1"; + }; + + rk806_dvs3_pwrdn { + pins = "gpio_pwrctrl3"; + function = "pin_fun2"; + }; + + rk806_dvs3_rst { + pins = "gpio_pwrctrl3"; + function = "pin_fun3"; + }; + + rk806_dvs3_dvs { + pins = "gpio_pwrctrl3"; + function = "pin_fun4"; + }; + + rk806_dvs3_gpio { + pins = "gpio_pwrctrl3"; + function = "pin_fun5"; + }; + }; + + regulators { + + DCDC_REG1 { + regulator-boot-on; + regulator-min-microvolt = <0x86470>; + regulator-max-microvolt = <0xe7ef0>; + regulator-ramp-delay = <0x30d4>; + regulator-name = "vdd_gpu_s0"; + regulator-enable-ramp-delay = <0x190>; + phandle = <0x4f>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + DCDC_REG2 { + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <0x86470>; + regulator-max-microvolt = <0xe7ef0>; + regulator-ramp-delay = <0x30d4>; + regulator-name = "vdd_cpu_lit_s0"; + phandle = <0x12>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + DCDC_REG3 { + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <0xa4cb8>; + regulator-max-microvolt = <0xb71b0>; + regulator-ramp-delay = <0x30d4>; + regulator-name = "vdd_log_s0"; + phandle = <0x3c>; + + regulator-state-mem { + regulator-suspend-microvolt = <0xb71b0>; + regulator-on-in-suspend; + }; + }; + + DCDC_REG4 { + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <0x86470>; + regulator-max-microvolt = <0xe7ef0>; + regulator-init-microvolt = <0xb71b0>; + regulator-ramp-delay = <0x30d4>; + regulator-name = "vdd_vdenc_s0"; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + DCDC_REG5 { + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <0xa4cb8>; + regulator-max-microvolt = <0xdbba0>; + regulator-ramp-delay = <0x30d4>; + regulator-name = "vdd_ddr_s0"; + phandle = <0x3b>; + + regulator-state-mem { + regulator-off-in-suspend; + regulator-suspend-microvolt = <0xcf850>; + }; + }; + + DCDC_REG6 { + regulator-always-on; + regulator-boot-on; + regulator-name = "vdd2_ddr_s3"; + + regulator-state-mem { + regulator-on-in-suspend; + }; + }; + + DCDC_REG7 { + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <0x1e8480>; + regulator-max-microvolt = <0x1e8480>; + regulator-name = "vdd_2v0_pldo_s3"; + phandle = <0x141>; + + regulator-state-mem { + regulator-on-in-suspend; + regulator-suspend-microvolt = <0x1e8480>; + }; + }; + + DCDC_REG8 { + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <0x325aa0>; + regulator-max-microvolt = <0x325aa0>; + regulator-name = "vcc_3v3_s3"; + + regulator-state-mem { + regulator-on-in-suspend; + regulator-suspend-microvolt = <0x325aa0>; + }; + }; + + DCDC_REG9 { + regulator-always-on; + regulator-boot-on; + regulator-name = "vddq_ddr_s0"; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + DCDC_REG10 { + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <0x1b7740>; + regulator-max-microvolt = <0x1b7740>; + regulator-name = "vcc_1v8_s3"; + + regulator-state-mem { + regulator-on-in-suspend; + regulator-suspend-microvolt = <0x1b7740>; + }; + }; + + PLDO_REG1 { + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <0x1b7740>; + regulator-max-microvolt = <0x1b7740>; + regulator-name = "avcc_1v8_s0"; + phandle = <0x1ba>; + + regulator-state-mem { + regulator-off-in-suspend; + regulator-on-in-suspend; + }; + }; + + PLDO_REG2 { + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <0x1b7740>; + regulator-max-microvolt = <0x1b7740>; + regulator-name = "vcc_1v8_s0"; + phandle = <0x15e>; + + regulator-state-mem { + regulator-off-in-suspend; + regulator-suspend-microvolt = <0x1b7740>; + regulator-on-in-suspend; + }; + }; + + PLDO_REG3 { + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <0x124f80>; + regulator-max-microvolt = <0x124f80>; + regulator-name = "avdd_1v2_s0"; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + PLDO_REG4 { + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <0x325aa0>; + regulator-max-microvolt = <0x325aa0>; + regulator-name = "vcc_3v3_s0"; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + PLDO_REG5 { + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <0x1b7740>; + regulator-max-microvolt = <0x325aa0>; + regulator-name = "vccio_sd_s0"; + phandle = <0x102>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + PLDO_REG6 { + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <0x1b7740>; + regulator-max-microvolt = <0x1b7740>; + regulator-name = "pldo6_s3"; + + regulator-state-mem { + regulator-on-in-suspend; + regulator-suspend-microvolt = <0x1b7740>; + }; + }; + + NLDO_REG1 { + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <0xb71b0>; + regulator-max-microvolt = <0xb71b0>; + regulator-name = "vdd_0v75_s3"; + + regulator-state-mem { + regulator-on-in-suspend; + regulator-suspend-microvolt = <0xb71b0>; + }; + }; + + NLDO_REG2 { + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <0xcf850>; + regulator-max-microvolt = <0xcf850>; + regulator-name = "vdd_ddr_pll_s0"; + + regulator-state-mem { + regulator-off-in-suspend; + regulator-suspend-microvolt = <0xcf850>; + }; + }; + + NLDO_REG3 { + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <0xb71b0>; + regulator-max-microvolt = <0xb71b0>; + regulator-name = "avdd_0v75_s0"; + phandle = <0x1bb>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + NLDO_REG4 { + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <0xcf850>; + regulator-max-microvolt = <0xcf850>; + regulator-name = "vdd_0v85_s0"; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + NLDO_REG5 { + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <0xb71b0>; + regulator-max-microvolt = <0xb71b0>; + regulator-name = "vdd_0v75_s0"; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + }; + }; + }; + + spi@feb30000 { + compatible = "rockchip,rk3066-spi"; + reg = <0x00 0xfeb30000 0x00 0x1000>; + interrupts = <0x00 0x149 0x04>; + #address-cells = <0x01>; + #size-cells = <0x00>; + clocks = <0x02 0xa6 0x02 0xa1>; + clock-names = "spiclk\0apb_pclk"; + dmas = <0xd3 0x11 0xd3 0x12>; + dma-names = "tx\0rx"; + pinctrl-names = "default"; + pinctrl-0 = <0x143 0x144 0x145>; + num-cs = <0x02>; + status = "disabled"; + }; + + serial@feb40000 { + compatible = "rockchip,rk3588-uart\0snps,dw-apb-uart"; + reg = <0x00 0xfeb40000 0x00 0x100>; + interrupts = <0x00 0x14c 0x04>; + clocks = <0x02 0xb7 0x02 0xab>; + clock-names = "baudclk\0apb_pclk"; + reg-shift = <0x02>; + reg-io-width = <0x04>; + dmas = <0x64 0x08 0x64 0x09>; + pinctrl-names = "default"; + pinctrl-0 = <0x146>; + status = "disabled"; + }; + + serial@feb50000 { + compatible = "rockchip,rk3588-uart\0snps,dw-apb-uart"; + reg = <0x00 0xfeb50000 0x00 0x100>; + interrupts = <0x00 0x14d 0x04>; + clocks = <0x02 0xbb 0x02 0xac>; + clock-names = "baudclk\0apb_pclk"; + reg-shift = <0x02>; + reg-io-width = <0x04>; + dmas = <0x64 0x0a 0x64 0x0b>; + pinctrl-names = "default"; + pinctrl-0 = <0x147>; + status = "disabled"; + }; + + serial@feb60000 { + compatible = "rockchip,rk3588-uart\0snps,dw-apb-uart"; + reg = <0x00 0xfeb60000 0x00 0x100>; + interrupts = <0x00 0x14e 0x04>; + clocks = <0x02 0xbf 0x02 0xad>; + clock-names = "baudclk\0apb_pclk"; + reg-shift = <0x02>; + reg-io-width = <0x04>; + dmas = <0x64 0x0c 0x64 0x0d>; + pinctrl-names = "default"; + pinctrl-0 = <0x148>; + status = "disabled"; + }; + + serial@feb70000 { + compatible = "rockchip,rk3588-uart\0snps,dw-apb-uart"; + reg = <0x00 0xfeb70000 0x00 0x100>; + interrupts = <0x00 0x14f 0x04>; + clocks = <0x02 0xc3 0x02 0xae>; + clock-names = "baudclk\0apb_pclk"; + reg-shift = <0x02>; + reg-io-width = <0x04>; + dmas = <0xd3 0x09 0xd3 0x0a>; + pinctrl-names = "default"; + pinctrl-0 = <0x149>; + status = "disabled"; + }; + + serial@feb80000 { + compatible = "rockchip,rk3588-uart\0snps,dw-apb-uart"; + reg = <0x00 0xfeb80000 0x00 0x100>; + interrupts = <0x00 0x150 0x04>; + clocks = <0x02 0xc7 0x02 0xaf>; + clock-names = "baudclk\0apb_pclk"; + reg-shift = <0x02>; + reg-io-width = <0x04>; + dmas = <0xd3 0x0b 0xd3 0x0c>; + pinctrl-names = "default"; + pinctrl-0 = <0x14a>; + status = "disabled"; + }; + + serial@feb90000 { + compatible = "rockchip,rk3588-uart\0snps,dw-apb-uart"; + reg = <0x00 0xfeb90000 0x00 0x100>; + interrupts = <0x00 0x151 0x04>; + clocks = <0x02 0xcb 0x02 0xb0>; + clock-names = "baudclk\0apb_pclk"; + reg-shift = <0x02>; + reg-io-width = <0x04>; + dmas = <0xd3 0x0d 0xd3 0x0e>; + pinctrl-names = "default"; + pinctrl-0 = <0x14b 0x14c>; + status = "okay"; + }; + + serial@feba0000 { + compatible = "rockchip,rk3588-uart\0snps,dw-apb-uart"; + reg = <0x00 0xfeba0000 0x00 0x100>; + interrupts = <0x00 0x152 0x04>; + clocks = <0x02 0xcf 0x02 0xb1>; + clock-names = "baudclk\0apb_pclk"; + reg-shift = <0x02>; + reg-io-width = <0x04>; + dmas = <0xd4 0x07 0xd4 0x08>; + pinctrl-names = "default"; + pinctrl-0 = <0x14d>; + status = "disabled"; + }; + + serial@febb0000 { + compatible = "rockchip,rk3588-uart\0snps,dw-apb-uart"; + reg = <0x00 0xfebb0000 0x00 0x100>; + interrupts = <0x00 0x153 0x04>; + clocks = <0x02 0xd3 0x02 0xb2>; + clock-names = "baudclk\0apb_pclk"; + reg-shift = <0x02>; + reg-io-width = <0x04>; + dmas = <0xd4 0x09 0xd4 0x0a>; + pinctrl-names = "default"; + pinctrl-0 = <0x14e>; + status = "disabled"; + }; + + serial@febc0000 { + compatible = "rockchip,rk3588-uart\0snps,dw-apb-uart"; + reg = <0x00 0xfebc0000 0x00 0x100>; + interrupts = <0x00 0x154 0x04>; + clocks = <0x02 0xd7 0x02 0xb3>; + clock-names = "baudclk\0apb_pclk"; + reg-shift = <0x02>; + reg-io-width = <0x04>; + dmas = <0xd4 0x0b 0xd4 0x0c>; + pinctrl-names = "default"; + pinctrl-0 = <0x14f>; + status = "disabled"; + }; + + pwm@febd0000 { + compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; + reg = <0x00 0xfebd0000 0x00 0x10>; + #pwm-cells = <0x03>; + pinctrl-names = "active"; + pinctrl-0 = <0x150>; + clocks = <0x02 0x54 0x02 0x53>; + clock-names = "pwm\0pclk"; + status = "disabled"; + }; + + pwm@febd0010 { + compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; + reg = <0x00 0xfebd0010 0x00 0x10>; + #pwm-cells = <0x03>; + pinctrl-names = "active"; + pinctrl-0 = <0x151>; + clocks = <0x02 0x54 0x02 0x53>; + clock-names = "pwm\0pclk"; + status = "disabled"; + }; + + pwm@febd0020 { + compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; + reg = <0x00 0xfebd0020 0x00 0x10>; + #pwm-cells = <0x03>; + pinctrl-names = "active"; + pinctrl-0 = <0x152>; + clocks = <0x02 0x54 0x02 0x53>; + clock-names = "pwm\0pclk"; + status = "disabled"; + }; + + pwm@febd0030 { + compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; + reg = <0x00 0xfebd0030 0x00 0x10>; + interrupts = <0x00 0x15a 0x04 0x00 0x15b 0x04>; + #pwm-cells = <0x03>; + pinctrl-names = "active"; + pinctrl-0 = <0x153>; + clocks = <0x02 0x54 0x02 0x53>; + clock-names = "pwm\0pclk"; + status = "disabled"; + }; + + pwm@febe0000 { + compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; + reg = <0x00 0xfebe0000 0x00 0x10>; + #pwm-cells = <0x03>; + pinctrl-names = "active"; + pinctrl-0 = <0x154>; + clocks = <0x02 0x57 0x02 0x56>; + clock-names = "pwm\0pclk"; + status = "disabled"; + }; + + pwm@febe0010 { + compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; + reg = <0x00 0xfebe0010 0x00 0x10>; + #pwm-cells = <0x03>; + pinctrl-names = "active"; + pinctrl-0 = <0x155>; + clocks = <0x02 0x57 0x02 0x56>; + clock-names = "pwm\0pclk"; + status = "disabled"; + }; + + pwm@febe0020 { + compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; + reg = <0x00 0xfebe0020 0x00 0x10>; + #pwm-cells = <0x03>; + pinctrl-names = "active"; + pinctrl-0 = <0x156>; + clocks = <0x02 0x57 0x02 0x56>; + clock-names = "pwm\0pclk"; + status = "disabled"; + }; + + pwm@febe0030 { + compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; + reg = <0x00 0xfebe0030 0x00 0x10>; + interrupts = <0x00 0x15c 0x04 0x00 0x15d 0x04>; + #pwm-cells = <0x03>; + pinctrl-names = "active"; + pinctrl-0 = <0x157>; + clocks = <0x02 0x57 0x02 0x56>; + clock-names = "pwm\0pclk"; + status = "disabled"; + }; + + pwm@febf0000 { + compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; + reg = <0x00 0xfebf0000 0x00 0x10>; + #pwm-cells = <0x03>; + pinctrl-names = "active"; + pinctrl-0 = <0x158>; + clocks = <0x02 0x5a 0x02 0x59>; + clock-names = "pwm\0pclk"; + status = "disabled"; + }; + + pwm@febf0010 { + compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; + reg = <0x00 0xfebf0010 0x00 0x10>; + #pwm-cells = <0x03>; + pinctrl-names = "active"; + pinctrl-0 = <0x159>; + clocks = <0x02 0x5a 0x02 0x59>; + clock-names = "pwm\0pclk"; + status = "disabled"; + }; + + pwm@febf0020 { + compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; + reg = <0x00 0xfebf0020 0x00 0x10>; + #pwm-cells = <0x03>; + pinctrl-names = "active"; + pinctrl-0 = <0x15a>; + clocks = <0x02 0x5a 0x02 0x59>; + clock-names = "pwm\0pclk"; + status = "disabled"; + }; + + pwm@febf0030 { + compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; + reg = <0x00 0xfebf0030 0x00 0x10>; + interrupts = <0x00 0x15e 0x04 0x00 0x15f 0x04>; + #pwm-cells = <0x03>; + pinctrl-names = "active"; + pinctrl-0 = <0x15b>; + clocks = <0x02 0x5a 0x02 0x59>; + clock-names = "pwm\0pclk"; + status = "okay"; + phandle = <0x1ca>; + }; + + tsadc@fec00000 { + compatible = "rockchip,rk3588-tsadc"; + reg = <0x00 0xfec00000 0x00 0x400>; + interrupts = <0x00 0x18d 0x04>; + clocks = <0x02 0xaa 0x02 0xa9>; + clock-names = "tsadc\0apb_pclk"; + assigned-clocks = <0x02 0xaa>; + assigned-clock-rates = <0x1e8480>; + resets = <0x02 0xc1 0x02 0xc0>; + reset-names = "tsadc\0tsadc-apb"; + #thermal-sensor-cells = <0x01>; + rockchip,hw-tshut-temp = <0x1d4c0>; + rockchip,hw-tshut-mode = <0x00>; + rockchip,hw-tshut-polarity = <0x00>; + pinctrl-names = "gpio\0otpout"; + pinctrl-0 = <0x15c>; + pinctrl-1 = <0x15d>; + status = "okay"; + phandle = <0x4a>; + }; + + saradc@fec10000 { + compatible = "rockchip,rk3588-saradc"; + reg = <0x00 0xfec10000 0x00 0x10000>; + interrupts = <0x00 0x18e 0x04>; + #io-channel-cells = <0x01>; + clocks = <0x02 0x9d 0x02 0x9c>; + clock-names = "saradc\0apb_pclk"; + resets = <0x02 0xbe>; + reset-names = "saradc-apb"; + status = "okay"; + vref-supply = <0x15e>; + phandle = <0x1b3>; + }; + + mailbox@fec60000 { + compatible = "rockchip,rk3588-mailbox\0rockchip,rk3368-mailbox"; + reg = <0x00 0xfec60000 0x00 0x200>; + interrupts = <0x00 0x3d 0x04 0x00 0x3e 0x04 0x00 0x3f 0x04 0x00 0x40 0x04>; + clocks = <0x02 0x4c>; + clock-names = "pclk_mailbox"; + #mbox-cells = <0x01>; + status = "disabled"; + }; + + mailbox@fec70000 { + compatible = "rockchip,rk3588-mailbox\0rockchip,rk3368-mailbox"; + reg = <0x00 0xfec70000 0x00 0x200>; + interrupts = <0x00 0x45 0x04 0x00 0x46 0x04 0x00 0x47 0x04 0x00 0x48 0x04>; + clocks = <0x02 0x4d>; + clock-names = "pclk_mailbox"; + #mbox-cells = <0x01>; + status = "disabled"; + }; + + i2c@fec80000 { + compatible = "rockchip,rk3588-i2c\0rockchip,rk3399-i2c"; + reg = <0x00 0xfec80000 0x00 0x1000>; + clocks = <0x02 0x92 0x02 0x8a>; + clock-names = "i2c\0pclk"; + interrupts = <0x00 0x143 0x04>; + pinctrl-names = "default"; + pinctrl-0 = <0x15f>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "disabled"; + clock-frequency = <0x61a80>; + + gpio@21 { + compatible = "nxp,pca9555"; + reg = <0x21>; + gpio-controller; + #gpio-cells = <0x02>; + gpio-group-num = <0xc8>; + status = "disabled"; + phandle = <0x1b8>; + }; + + hym8563@51 { + compatible = "haoyu,hym8563"; + reg = <0x51>; + #clock-cells = <0x00>; + clock-frequency = <0x8000>; + clock-output-names = "hym8563"; + pinctrl-names = "default"; + pinctrl-0 = <0x160>; + interrupt-parent = <0x13b>; + interrupts = <0x08 0x08>; + wakeup-source; + status = "disabled"; + phandle = <0x1c0>; + }; + + fusb302@22 { + compatible = "fcs,fusb302"; + reg = <0x22>; + interrupt-parent = <0x13b>; + interrupts = <0x1b 0x08>; + pinctrl-names = "default"; + pinctrl-0 = <0x161>; + vbus-supply = <0x162>; + status = "okay"; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + reg = <0x00>; + + endpoint@0 { + remote-endpoint = <0x163>; + phandle = <0x54>; + }; + }; + }; + + connector { + compatible = "usb-c-connector"; + label = "USB-C"; + data-role = "dual"; + power-role = "dual"; + try-power-role = "sink"; + op-sink-microwatt = <0xf4240>; + sink-pdos = <0x4019064>; + source-pdos = <0x401912c>; + + altmodes { + #address-cells = <0x01>; + #size-cells = <0x00>; + + altmode@0 { + reg = <0x00>; + svid = <0xff01>; + vdo = <0xffffffff>; + }; + }; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + reg = <0x00>; + + endpoint { + remote-endpoint = <0x164>; + phandle = <0x16f>; + }; + }; + + port@1 { + reg = <0x01>; + + endpoint { + remote-endpoint = <0x165>; + phandle = <0x170>; + }; + }; + }; + }; + }; + }; + + i2c@fec90000 { + compatible = "rockchip,rk3588-i2c\0rockchip,rk3399-i2c"; + reg = <0x00 0xfec90000 0x00 0x1000>; + clocks = <0x02 0x93 0x02 0x8b>; + clock-names = "i2c\0pclk"; + interrupts = <0x00 0x144 0x04>; + pinctrl-names = "default"; + pinctrl-0 = <0x166>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "disabled"; + }; + + i2c@feca0000 { + compatible = "rockchip,rk3588-i2c\0rockchip,rk3399-i2c"; + reg = <0x00 0xfeca0000 0x00 0x1000>; + clocks = <0x02 0x94 0x02 0x8c>; + clock-names = "i2c\0pclk"; + interrupts = <0x00 0x145 0x04>; + pinctrl-names = "default"; + pinctrl-0 = <0x167>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "disabled"; + }; + + spi@fecb0000 { + compatible = "rockchip,rk3066-spi"; + reg = <0x00 0xfecb0000 0x00 0x1000>; + interrupts = <0x00 0x14a 0x04>; + #address-cells = <0x01>; + #size-cells = <0x00>; + clocks = <0x02 0xa7 0x02 0xa2>; + clock-names = "spiclk\0apb_pclk"; + dmas = <0xd4 0x0d 0xd4 0x0e>; + dma-names = "tx\0rx"; + pinctrl-names = "default"; + pinctrl-0 = <0x168 0x169 0x16a>; + num-cs = <0x02>; + status = "disabled"; + }; + + otp@fecc0000 { + compatible = "rockchip,rk3588-otp"; + reg = <0x00 0xfecc0000 0x00 0x400>; + #address-cells = <0x01>; + #size-cells = <0x01>; + clocks = <0x02 0x96 0x02 0x95 0x02 0x97 0x02 0x99>; + clock-names = "otpc\0apb\0arb\0phy"; + resets = <0x02 0x12a 0x02 0x129 0x02 0x12b>; + reset-names = "otpc\0apb\0arb"; + + cpu-code@2 { + reg = <0x02 0x02>; + phandle = <0x29>; + }; + + specification-serial-number@6 { + reg = <0x06 0x01>; + bits = <0x00 0x05>; + phandle = <0x20>; + }; + + id@7 { + reg = <0x07 0x10>; + phandle = <0x27>; + }; + + cpu-version@1c { + reg = <0x1c 0x01>; + bits = <0x03 0x03>; + phandle = <0x28>; + }; + + cpub0-leakage@17 { + reg = <0x17 0x01>; + phandle = <0x23>; + }; + + cpub1-leakage@18 { + reg = <0x18 0x01>; + phandle = <0x25>; + }; + + cpul-leakage@19 { + reg = <0x19 0x01>; + phandle = <0x1f>; + }; + + log-leakage@1a { + reg = <0x1a 0x01>; + phandle = <0x3d>; + }; + + gpu-leakage@1b { + reg = <0x1b 0x01>; + phandle = <0x50>; + }; + + npu-leakage@28 { + reg = <0x28 0x01>; + phandle = <0x9c>; + }; + + codec-leakage@29 { + reg = <0x29 0x01>; + }; + }; + + mailbox@fece0000 { + compatible = "rockchip,rk3588-mailbox\0rockchip,rk3368-mailbox"; + reg = <0x00 0xfece0000 0x00 0x200>; + interrupts = <0x00 0x4d 0x04 0x00 0x4e 0x04 0x00 0x4f 0x04 0x00 0x50 0x04>; + clocks = <0x02 0x4e>; + clock-names = "pclk_mailbox"; + #mbox-cells = <0x01>; + status = "disabled"; + }; + + dma-controller@fed10000 { + compatible = "arm,pl330\0arm,primecell"; + reg = <0x00 0xfed10000 0x00 0x4000>; + interrupts = <0x00 0x5a 0x04 0x00 0x5b 0x04>; + clocks = <0x02 0x7a>; + clock-names = "apb_pclk"; + #dma-cells = <0x01>; + arm,pl330-periph-burst; + phandle = <0xd4>; + }; + + phy@fed60000 { + compatible = "rockchip,rk3588-hdptx-phy"; + reg = <0x00 0xfed60000 0x00 0x2000>; + clocks = <0x02 0x2b5 0x02 0x267>; + clock-names = "ref\0apb"; + resets = <0x02 0x485 0x02 0xc003b 0x02 0xc003c 0x02 0xc003d>; + reset-names = "apb\0init\0cmn\0lane"; + rockchip,grf = <0x16b>; + #phy-cells = <0x00>; + status = "disabled"; + phandle = <0xe3>; + }; + + hdmiphy@fed60000 { + compatible = "rockchip,rk3588-hdptx-phy-hdmi"; + reg = <0x00 0xfed60000 0x00 0x2000>; + clocks = <0x02 0x2b5 0x02 0x267>; + clock-names = "ref\0apb"; + resets = <0x02 0x48e 0x02 0x485 0x02 0xc003b 0x02 0xc003c 0x02 0xc003d 0x02 0x48c 0x02 0x48d>; + reset-names = "phy\0apb\0init\0cmn\0lane\0ropll\0lcpll"; + rockchip,grf = <0x16b>; + #phy-cells = <0x00>; + status = "okay"; + phandle = <0xdf>; + + clk-port { + #clock-cells = <0x00>; + status = "okay"; + phandle = <0x2e>; + }; + }; + + phy@fed80000 { + compatible = "rockchip,rk3588-usbdp-phy"; + reg = <0x00 0xfed80000 0x00 0x10000>; + rockchip,u2phy-grf = <0x16c>; + rockchip,usb-grf = <0x5f>; + rockchip,usbdpphy-grf = <0x16d>; + rockchip,vo-grf = <0xd7>; + clocks = <0x02 0x2b6 0x02 0x27f 0x02 0x269 0x16e>; + clock-names = "refclk\0immortal\0pclk\0utmi"; + resets = <0x02 0x28 0x02 0x29 0x02 0x2a 0x02 0x2b 0x02 0x482>; + reset-names = "init\0cmn\0lane\0pcs_apb\0pma_apb"; + status = "okay"; + orientation-switch; + svid = <0xff01>; + sbu1-dc-gpios = <0xe0 0x06 0x00>; + sbu2-dc-gpios = <0xe0 0x07 0x00>; + + dp-port { + #phy-cells = <0x00>; + status = "okay"; + phandle = <0xd8>; + }; + + u3-port { + #phy-cells = <0x00>; + status = "okay"; + phandle = <0x53>; + }; + + port { + #address-cells = <0x01>; + #size-cells = <0x00>; + + endpoint@0 { + reg = <0x00>; + remote-endpoint = <0x16f>; + phandle = <0x164>; + }; + + endpoint@1 { + reg = <0x01>; + remote-endpoint = <0x170>; + phandle = <0x165>; + }; + }; + }; + + phy@feda0000 { + compatible = "rockchip,rk3588-mipi-dcphy"; + reg = <0x00 0xfeda0000 0x00 0x10000>; + rockchip,grf = <0x171>; + clocks = <0x02 0x108 0x02 0x2b6>; + clock-names = "pclk\0ref"; + resets = <0x02 0xc0043 0x02 0x3e 0x02 0x3f 0x02 0xc0044>; + reset-names = "m_phy\0apb\0grf\0s_phy"; + #phy-cells = <0x00>; + status = "disabled"; + phandle = <0x2a>; + }; + + phy@fedb0000 { + compatible = "rockchip,rk3588-mipi-dcphy"; + reg = <0x00 0xfedb0000 0x00 0x10000>; + rockchip,grf = <0x172>; + clocks = <0x02 0x109 0x02 0x2b6>; + clock-names = "pclk\0ref"; + resets = <0x02 0xc0045 0x02 0x43 0x02 0x44 0x02 0xc0046>; + reset-names = "m_phy\0apb\0grf\0s_phy"; + #phy-cells = <0x00>; + status = "disabled"; + phandle = <0x2b>; + }; + + csi2-dphy0-hw@fedc0000 { + compatible = "rockchip,rk3588-csi2-dphy-hw"; + reg = <0x00 0xfedc0000 0x00 0x8000>; + clocks = <0x02 0x10c>; + clock-names = "pclk"; + resets = <0x02 0x17 0x02 0x16>; + reset-names = "srst_csiphy0\0srst_p_csiphy0"; + rockchip,grf = <0x173>; + rockchip,sys_grf = <0xb7>; + status = "disabled"; + phandle = <0x2c>; + }; + + phy@fee00000 { + compatible = "rockchip,rk3588-naneng-combphy"; + reg = <0x00 0xfee00000 0x00 0x100>; + #phy-cells = <0x01>; + clocks = <0x02 0x2bd 0x02 0x185 0x02 0x166>; + clock-names = "refclk\0apbclk\0phpclk"; + assigned-clocks = <0x02 0x2bd>; + assigned-clock-rates = <0x5f5e100>; + resets = <0x02 0x20005 0x02 0x4d6>; + reset-names = "combphy-apb\0combphy"; + rockchip,pipe-grf = <0x61>; + rockchip,pipe-phy-grf = <0x174>; + status = "disabled"; + phandle = <0xea>; + }; + + phy@fee20000 { + compatible = "rockchip,rk3588-naneng-combphy"; + reg = <0x00 0xfee20000 0x00 0x100>; + #phy-cells = <0x01>; + clocks = <0x02 0x2bf 0x02 0x187 0x02 0x166>; + clock-names = "refclk\0apbclk\0phpclk"; + assigned-clocks = <0x02 0x2bf>; + assigned-clock-rates = <0x5f5e100>; + resets = <0x02 0x20007 0x02 0x4d8>; + reset-names = "combphy-apb\0combphy"; + rockchip,pipe-grf = <0x61>; + rockchip,pipe-phy-grf = <0x175>; + rockchip,pcie1ln-sel-bits = <0x100 0x01 0x01 0x00>; + status = "disabled"; + phandle = <0x5b>; + }; + + sram@ff001000 { + compatible = "mmio-sram"; + reg = <0x00 0xff001000 0x00 0xef000>; + #address-cells = <0x01>; + #size-cells = <0x01>; + ranges = <0x00 0x00 0xff001000 0xef000>; + + rkvdec-sram@0 { + reg = <0x00 0x78000>; + phandle = <0xae>; + }; + + rkvdec-sram@78000 { + reg = <0x78000 0x77000>; + phandle = <0xb0>; + }; + }; + + pinctrl { + compatible = "rockchip,rk3588-pinctrl"; + rockchip,grf = <0x176>; + #address-cells = <0x02>; + #size-cells = <0x02>; + ranges; + phandle = <0x177>; + + gpio@fd8a0000 { + compatible = "rockchip,gpio-bank"; + reg = <0x00 0xfd8a0000 0x00 0x100>; + interrupts = <0x00 0x115 0x04>; + clocks = <0x02 0x284 0x02 0x285>; + gpio-controller; + #gpio-cells = <0x02>; + gpio-ranges = <0x177 0x00 0x00 0x20>; + interrupt-controller; + #interrupt-cells = <0x02>; + phandle = <0x13b>; + }; + + gpio@fec20000 { + compatible = "rockchip,gpio-bank"; + reg = <0x00 0xfec20000 0x00 0x100>; + interrupts = <0x00 0x116 0x04>; + clocks = <0x02 0x7d 0x02 0x7e>; + gpio-controller; + #gpio-cells = <0x02>; + gpio-ranges = <0x177 0x00 0x20 0x20>; + interrupt-controller; + #interrupt-cells = <0x02>; + phandle = <0x189>; + }; + + gpio@fec30000 { + compatible = "rockchip,gpio-bank"; + reg = <0x00 0xfec30000 0x00 0x100>; + interrupts = <0x00 0x117 0x04>; + clocks = <0x02 0x7f 0x02 0x80>; + gpio-controller; + #gpio-cells = <0x02>; + gpio-ranges = <0x177 0x00 0x40 0x20>; + interrupt-controller; + #interrupt-cells = <0x02>; + phandle = <0x1b9>; + }; + + gpio@fec40000 { + compatible = "rockchip,gpio-bank"; + reg = <0x00 0xfec40000 0x00 0x100>; + interrupts = <0x00 0x118 0x04>; + clocks = <0x02 0x81 0x02 0x82>; + gpio-controller; + #gpio-cells = <0x02>; + gpio-ranges = <0x177 0x00 0x60 0x20>; + interrupt-controller; + #interrupt-cells = <0x02>; + phandle = <0xee>; + }; + + gpio@fec50000 { + compatible = "rockchip,gpio-bank"; + reg = <0x00 0xfec50000 0x00 0x100>; + interrupts = <0x00 0x119 0x04>; + clocks = <0x02 0x83 0x02 0x84>; + gpio-controller; + #gpio-cells = <0x02>; + gpio-ranges = <0x177 0x00 0x80 0x20>; + interrupt-controller; + #interrupt-cells = <0x02>; + phandle = <0xe0>; + }; + + pcfg-pull-up { + bias-pull-up; + phandle = <0x17e>; + }; + + pcfg-pull-down { + bias-pull-down; + phandle = <0x181>; + }; + + pcfg-pull-none { + bias-disable; + phandle = <0x178>; + }; + + pcfg-pull-none-drv-level-2 { + bias-disable; + drive-strength = <0x02>; + phandle = <0x180>; + }; + + pcfg-pull-up-drv-level-1 { + bias-pull-up; + drive-strength = <0x01>; + phandle = <0x17f>; + }; + + pcfg-pull-up-drv-level-2 { + bias-pull-up; + drive-strength = <0x02>; + phandle = <0x179>; + }; + + pcfg-pull-up-drv-level-6 { + bias-pull-up; + drive-strength = <0x06>; + phandle = <0x17a>; + }; + + pcfg-pull-none-smt { + bias-disable; + input-schmitt-enable; + phandle = <0x17d>; + }; + + pcfg-pull-none-drv-level-1-smt { + bias-disable; + drive-strength = <0x01>; + input-schmitt-enable; + phandle = <0x17c>; + }; + + pcfg-pull-none-drv-level-5-smt { + bias-disable; + drive-strength = <0x05>; + input-schmitt-enable; + phandle = <0x17b>; + }; + + auddsm { + + auddsm-pins { + rockchip,pins = <0x03 0x01 0x04 0x178 0x03 0x02 0x04 0x178 0x03 0x03 0x04 0x178 0x03 0x04 0x04 0x178>; + phandle = <0x129>; + }; + }; + + bt1120 { + + bt1120-pins { + rockchip,pins = <0x04 0x08 0x02 0x178 0x04 0x00 0x02 0x178 0x04 0x01 0x02 0x178 0x04 0x02 0x02 0x178 0x04 0x03 0x02 0x178 0x04 0x04 0x02 0x178 0x04 0x05 0x02 0x178 0x04 0x06 0x02 0x178 0x04 0x07 0x02 0x178 0x04 0x0a 0x02 0x178 0x04 0x0b 0x02 0x178 0x04 0x0c 0x02 0x178 0x04 0x0d 0x02 0x178 0x04 0x0e 0x02 0x178 0x04 0x0f 0x02 0x178 0x04 0x10 0x02 0x178 0x04 0x11 0x02 0x178>; + phandle = <0x5c>; + }; + }; + + can0 { + + can0m0-pins { + rockchip,pins = <0x00 0x10 0x0b 0x178 0x00 0x0f 0x0b 0x178>; + phandle = <0x12a>; + }; + }; + + can1 { + + can1m1-pins { + rockchip,pins = <0x04 0x0a 0x0c 0x178 0x04 0x0b 0x0c 0x178>; + phandle = <0x12b>; + }; + }; + + can2 { + + can2m0-pins { + rockchip,pins = <0x03 0x14 0x09 0x178 0x03 0x15 0x09 0x178>; + phandle = <0x12c>; + }; + }; + + gmac1 { + + gmac1-miim { + rockchip,pins = <0x03 0x12 0x01 0x178 0x03 0x13 0x01 0x178>; + phandle = <0xf8>; + }; + + gmac1-rx-bus2 { + rockchip,pins = <0x03 0x07 0x01 0x178 0x03 0x08 0x01 0x178 0x03 0x09 0x01 0x178>; + phandle = <0xfa>; + }; + + gmac1-tx-bus2 { + rockchip,pins = <0x03 0x0b 0x01 0x17a 0x03 0x0c 0x01 0x17a 0x03 0x0d 0x01 0x178>; + phandle = <0xf9>; + }; + + gmac1-rgmii-clk { + rockchip,pins = <0x03 0x05 0x01 0x178 0x03 0x04 0x01 0x178>; + phandle = <0xfb>; + }; + + gmac1-rgmii-bus { + rockchip,pins = <0x03 0x02 0x01 0x178 0x03 0x03 0x01 0x178 0x03 0x00 0x01 0x17a 0x03 0x01 0x01 0x17a>; + phandle = <0xfc>; + }; + }; + + hdmi { + + hdmim0-tx0-cec { + rockchip,pins = <0x04 0x11 0x05 0x178>; + phandle = <0xdb>; + }; + + hdmim0-tx0-hpd { + rockchip,pins = <0x01 0x05 0x05 0x178>; + phandle = <0xdc>; + }; + + hdmim0-tx0-scl { + rockchip,pins = <0x04 0x0f 0x05 0x17b>; + phandle = <0xdd>; + }; + + hdmim0-tx0-sda { + rockchip,pins = <0x04 0x10 0x05 0x17c>; + phandle = <0xde>; + }; + + hdmim0-tx1-hpd { + rockchip,pins = <0x01 0x06 0x05 0x178>; + phandle = <0x18d>; + }; + + hdmim1-rx-cec { + rockchip,pins = <0x03 0x19 0x05 0x178>; + phandle = <0x197>; + }; + + hdmim1-rx-hpdin { + rockchip,pins = <0x03 0x1c 0x05 0x178>; + phandle = <0x198>; + }; + + hdmim1-rx-scl { + rockchip,pins = <0x03 0x1a 0x05 0x17d>; + phandle = <0x199>; + }; + + hdmim1-rx-sda { + rockchip,pins = <0x03 0x1b 0x05 0x17d>; + phandle = <0x19a>; + }; + + hdmim1-tx1-scl { + rockchip,pins = <0x03 0x16 0x05 0x17b>; + phandle = <0x18e>; + }; + + hdmim1-tx1-sda { + rockchip,pins = <0x03 0x15 0x05 0x17c>; + phandle = <0x18f>; + }; + + hdmim2-tx1-cec { + rockchip,pins = <0x03 0x14 0x05 0x178>; + phandle = <0x18c>; + }; + }; + + i2c0 { + + i2c0m2-xfer { + rockchip,pins = <0x00 0x19 0x03 0x17d 0x00 0x1a 0x03 0x17d>; + phandle = <0x62>; + }; + }; + + i2c1 { + + i2c1m2-xfer { + rockchip,pins = <0x00 0x1c 0x09 0x17d 0x00 0x1d 0x09 0x17d>; + phandle = <0x12d>; + }; + }; + + i2c2 { + + i2c2m0-xfer { + rockchip,pins = <0x00 0x0f 0x09 0x17d 0x00 0x10 0x09 0x17d>; + phandle = <0x12e>; + }; + }; + + i2c3 { + + i2c3m0-xfer { + rockchip,pins = <0x01 0x11 0x09 0x17d 0x01 0x10 0x09 0x17d>; + phandle = <0x12f>; + }; + }; + + i2c4 { + + i2c4m0-xfer { + rockchip,pins = <0x03 0x06 0x09 0x17d 0x03 0x05 0x09 0x17d>; + phandle = <0x131>; + }; + }; + + i2c5 { + + i2c5m0-xfer { + rockchip,pins = <0x03 0x17 0x09 0x17d 0x03 0x18 0x09 0x17d>; + phandle = <0x132>; + }; + }; + + i2c6 { + + i2c6m0-xfer { + rockchip,pins = <0x00 0x18 0x09 0x17d 0x00 0x17 0x09 0x17d>; + phandle = <0x15f>; + }; + }; + + i2c7 { + + i2c7m0-xfer { + rockchip,pins = <0x01 0x18 0x09 0x17d 0x01 0x19 0x09 0x17d>; + phandle = <0x166>; + }; + }; + + i2c8 { + + i2c8m0-xfer { + rockchip,pins = <0x04 0x1a 0x09 0x17d 0x04 0x1b 0x09 0x17d>; + phandle = <0x167>; + }; + }; + + i2s0 { + + i2s0-lrck { + rockchip,pins = <0x01 0x15 0x01 0x178>; + phandle = <0x105>; + }; + + i2s0-mclk { + rockchip,pins = <0x01 0x12 0x01 0x178>; + phandle = <0x130>; + }; + + i2s0-sclk { + rockchip,pins = <0x01 0x13 0x01 0x178>; + phandle = <0x106>; + }; + + i2s0-sdi0 { + rockchip,pins = <0x01 0x1c 0x02 0x178>; + phandle = <0x107>; + }; + + i2s0-sdo0 { + rockchip,pins = <0x01 0x17 0x01 0x178>; + phandle = <0x108>; + }; + }; + + i2s1 { + + i2s1m0-lrck { + rockchip,pins = <0x04 0x02 0x03 0x178>; + phandle = <0x109>; + }; + + i2s1m0-sclk { + rockchip,pins = <0x04 0x01 0x03 0x178>; + phandle = <0x10a>; + }; + + i2s1m0-sdi0 { + rockchip,pins = <0x04 0x05 0x03 0x178>; + phandle = <0x10b>; + }; + + i2s1m0-sdi1 { + rockchip,pins = <0x04 0x06 0x03 0x178>; + phandle = <0x10c>; + }; + + i2s1m0-sdi2 { + rockchip,pins = <0x04 0x07 0x03 0x178>; + phandle = <0x10d>; + }; + + i2s1m0-sdi3 { + rockchip,pins = <0x04 0x08 0x03 0x178>; + phandle = <0x10e>; + }; + + i2s1m0-sdo0 { + rockchip,pins = <0x04 0x09 0x03 0x178>; + phandle = <0x10f>; + }; + + i2s1m0-sdo1 { + rockchip,pins = <0x04 0x0a 0x03 0x178>; + phandle = <0x110>; + }; + + i2s1m0-sdo2 { + rockchip,pins = <0x04 0x0b 0x03 0x178>; + phandle = <0x111>; + }; + + i2s1m0-sdo3 { + rockchip,pins = <0x04 0x0c 0x03 0x178>; + phandle = <0x112>; + }; + }; + + i2s2 { + + i2s2m1-lrck { + rockchip,pins = <0x03 0x0e 0x03 0x178>; + phandle = <0x113>; + }; + + i2s2m1-sclk { + rockchip,pins = <0x03 0x0d 0x03 0x178>; + phandle = <0x114>; + }; + + i2s2m1-sdi { + rockchip,pins = <0x03 0x0a 0x03 0x178>; + phandle = <0x115>; + }; + + i2s2m1-sdo { + rockchip,pins = <0x03 0x0b 0x03 0x178>; + phandle = <0x116>; + }; + }; + + i2s3 { + + i2s3-lrck { + rockchip,pins = <0x03 0x02 0x03 0x178>; + phandle = <0x117>; + }; + + i2s3-sclk { + rockchip,pins = <0x03 0x01 0x03 0x178>; + phandle = <0x118>; + }; + + i2s3-sdi { + rockchip,pins = <0x03 0x04 0x03 0x178>; + phandle = <0x119>; + }; + + i2s3-sdo { + rockchip,pins = <0x03 0x03 0x03 0x178>; + phandle = <0x11a>; + }; + }; + + pdm0 { + + pdm0m0-clk { + rockchip,pins = <0x01 0x16 0x03 0x178>; + phandle = <0x11b>; + }; + + pdm0m0-clk1 { + rockchip,pins = <0x01 0x14 0x03 0x178>; + phandle = <0x11c>; + }; + + pdm0m0-sdi0 { + rockchip,pins = <0x01 0x1d 0x03 0x178>; + phandle = <0x11d>; + }; + + pdm0m0-sdi1 { + rockchip,pins = <0x01 0x19 0x03 0x178>; + phandle = <0x11e>; + }; + + pdm0m0-sdi2 { + rockchip,pins = <0x01 0x1a 0x03 0x178>; + phandle = <0x11f>; + }; + + pdm0m0-sdi3 { + rockchip,pins = <0x01 0x1b 0x03 0x178>; + phandle = <0x120>; + }; + }; + + pdm1 { + + pdm1m0-clk { + rockchip,pins = <0x04 0x1d 0x02 0x178>; + phandle = <0x121>; + }; + + pdm1m0-clk1 { + rockchip,pins = <0x04 0x1c 0x02 0x178>; + phandle = <0x122>; + }; + + pdm1m0-sdi0 { + rockchip,pins = <0x04 0x1b 0x02 0x178>; + phandle = <0x123>; + }; + + pdm1m0-sdi1 { + rockchip,pins = <0x04 0x1a 0x02 0x178>; + phandle = <0x124>; + }; + + pdm1m0-sdi2 { + rockchip,pins = <0x04 0x19 0x02 0x178>; + phandle = <0x125>; + }; + + pdm1m0-sdi3 { + rockchip,pins = <0x04 0x18 0x02 0x178>; + phandle = <0x126>; + }; + }; + + pmic { + + pmic-pins { + rockchip,pins = <0x00 0x07 0x00 0x17e 0x00 0x02 0x01 0x178 0x00 0x03 0x01 0x178 0x00 0x11 0x01 0x178 0x00 0x12 0x01 0x178 0x00 0x13 0x01 0x178 0x00 0x1e 0x01 0x178>; + phandle = <0x13c>; + }; + }; + + pwm0 { + + pwm0m0-pins { + rockchip,pins = <0x00 0x0f 0x03 0x178>; + phandle = <0x66>; + }; + }; + + pwm1 { + + pwm1m0-pins { + rockchip,pins = <0x00 0x10 0x03 0x178>; + phandle = <0x67>; + }; + }; + + pwm2 { + + pwm2m0-pins { + rockchip,pins = <0x00 0x14 0x03 0x178>; + phandle = <0x68>; + }; + }; + + pwm3 { + + pwm3m0-pins { + rockchip,pins = <0x00 0x1c 0x03 0x178>; + phandle = <0x69>; + }; + }; + + pwm4 { + + pwm4m0-pins { + rockchip,pins = <0x00 0x15 0x0b 0x178>; + phandle = <0x150>; + }; + }; + + pwm5 { + + pwm5m0-pins { + rockchip,pins = <0x00 0x09 0x03 0x178>; + phandle = <0x151>; + }; + }; + + pwm6 { + + pwm6m0-pins { + rockchip,pins = <0x00 0x17 0x0b 0x178>; + phandle = <0x152>; + }; + }; + + pwm7 { + + pwm7m0-pins { + rockchip,pins = <0x00 0x18 0x0b 0x178>; + phandle = <0x153>; + }; + }; + + pwm8 { + + pwm8m0-pins { + rockchip,pins = <0x03 0x07 0x0b 0x178>; + phandle = <0x154>; + }; + }; + + pwm9 { + + pwm9m0-pins { + rockchip,pins = <0x03 0x08 0x0b 0x178>; + phandle = <0x155>; + }; + }; + + pwm10 { + + pwm10m0-pins { + rockchip,pins = <0x03 0x00 0x0b 0x178>; + phandle = <0x156>; + }; + }; + + pwm11 { + + pwm11m0-pins { + rockchip,pins = <0x03 0x01 0x0b 0x178>; + phandle = <0x157>; + }; + }; + + pwm12 { + + pwm12m0-pins { + rockchip,pins = <0x03 0x0d 0x0b 0x178>; + phandle = <0x158>; + }; + }; + + pwm13 { + + pwm13m0-pins { + rockchip,pins = <0x03 0x0e 0x0b 0x178>; + phandle = <0x159>; + }; + }; + + pwm14 { + + pwm14m0-pins { + rockchip,pins = <0x03 0x12 0x0b 0x178>; + phandle = <0x15a>; + }; + }; + + pwm15 { + + pwm15m2-pins { + rockchip,pins = <0x01 0x16 0x0b 0x178>; + phandle = <0x15b>; + }; + }; + + sdio { + + sdiom1-pins { + rockchip,pins = <0x03 0x05 0x02 0x178 0x03 0x04 0x02 0x17e 0x03 0x00 0x02 0x17e 0x03 0x01 0x02 0x17e 0x03 0x02 0x02 0x17e 0x03 0x03 0x02 0x17e>; + phandle = <0x103>; + }; + }; + + sdmmc { + + sdmmc-bus4 { + rockchip,pins = <0x04 0x18 0x01 0x179 0x04 0x19 0x01 0x179 0x04 0x1a 0x01 0x179 0x04 0x1b 0x01 0x179>; + phandle = <0x101>; + }; + + sdmmc-clk { + rockchip,pins = <0x04 0x1d 0x01 0x179>; + phandle = <0xfe>; + }; + + sdmmc-cmd { + rockchip,pins = <0x04 0x1c 0x01 0x179>; + phandle = <0xff>; + }; + + sdmmc-det { + rockchip,pins = <0x00 0x04 0x01 0x17e>; + phandle = <0x100>; + }; + }; + + spdif0 { + + spdif0m0-tx { + rockchip,pins = <0x01 0x0e 0x03 0x178>; + phandle = <0x127>; + }; + }; + + spdif1 { + + spdif1m0-tx { + rockchip,pins = <0x01 0x0f 0x03 0x178>; + phandle = <0x128>; + }; + }; + + spi0 { + + spi0m0-pins { + rockchip,pins = <0x00 0x16 0x08 0x17a 0x00 0x17 0x08 0x17a 0x00 0x10 0x08 0x17a>; + phandle = <0x135>; + }; + + spi0m0-cs0 { + rockchip,pins = <0x00 0x19 0x08 0x17a>; + phandle = <0x133>; + }; + + spi0m0-cs1 { + rockchip,pins = <0x00 0x0f 0x08 0x17a>; + phandle = <0x134>; + }; + }; + + spi1 { + + spi1m1-pins { + rockchip,pins = <0x03 0x11 0x08 0x17a 0x03 0x10 0x08 0x17a 0x03 0x0f 0x08 0x17a>; + phandle = <0x138>; + }; + + spi1m1-cs0 { + rockchip,pins = <0x03 0x12 0x08 0x17a>; + phandle = <0x136>; + }; + + spi1m1-cs1 { + rockchip,pins = <0x03 0x13 0x08 0x17a>; + phandle = <0x137>; + }; + }; + + spi2 { + + spi2m2-pins { + rockchip,pins = <0x00 0x05 0x01 0x17f 0x00 0x0b 0x01 0x17f 0x00 0x06 0x01 0x17f>; + phandle = <0x13a>; + }; + + spi2m2-cs0 { + rockchip,pins = <0x00 0x09 0x01 0x17f>; + phandle = <0x139>; + }; + }; + + spi3 { + + spi3m1-pins { + rockchip,pins = <0x04 0x0f 0x08 0x17a 0x04 0x0d 0x08 0x17a 0x04 0x0e 0x08 0x17a>; + phandle = <0x145>; + }; + + spi3m1-cs0 { + rockchip,pins = <0x04 0x10 0x08 0x17a>; + phandle = <0x143>; + }; + + spi3m1-cs1 { + rockchip,pins = <0x04 0x11 0x08 0x17a>; + phandle = <0x144>; + }; + }; + + spi4 { + + spi4m0-pins { + rockchip,pins = <0x01 0x12 0x08 0x17a 0x01 0x10 0x08 0x17a 0x01 0x11 0x08 0x17a>; + phandle = <0x16a>; + }; + + spi4m0-cs0 { + rockchip,pins = <0x01 0x13 0x08 0x17a>; + phandle = <0x168>; + }; + + spi4m0-cs1 { + rockchip,pins = <0x01 0x14 0x08 0x17a>; + phandle = <0x169>; + }; + }; + + tsadc { + + tsadc-shut { + rockchip,pins = <0x00 0x01 0x02 0x178>; + phandle = <0x15d>; + }; + }; + + uart0 { + + uart0m2-xfer { + rockchip,pins = <0x04 0x04 0x0a 0x17e 0x04 0x03 0x0a 0x17e>; + phandle = <0x65>; + }; + }; + + uart1 { + + uart1m1-xfer { + rockchip,pins = <0x01 0x0f 0x0a 0x17e 0x01 0x0e 0x0a 0x17e>; + phandle = <0x146>; + }; + }; + + uart2 { + + uart2m0-xfer { + rockchip,pins = <0x00 0x0e 0x0a 0x17e 0x00 0x0d 0x0a 0x17e>; + phandle = <0x1ab>; + }; + + uart2m1-xfer { + rockchip,pins = <0x04 0x19 0x0a 0x17e 0x04 0x18 0x0a 0x17e>; + phandle = <0x147>; + }; + }; + + uart3 { + + uart3m1-xfer { + rockchip,pins = <0x03 0x0e 0x0a 0x17e 0x03 0x0d 0x0a 0x17e>; + phandle = <0x148>; + }; + }; + + uart4 { + + uart4m1-xfer { + rockchip,pins = <0x03 0x18 0x0a 0x17e 0x03 0x19 0x0a 0x17e>; + phandle = <0x149>; + }; + }; + + uart5 { + + uart5m1-xfer { + rockchip,pins = <0x03 0x15 0x0a 0x17e 0x03 0x14 0x0a 0x17e>; + phandle = <0x14a>; + }; + }; + + uart6 { + + uart6m1-xfer { + rockchip,pins = <0x01 0x00 0x0a 0x17e 0x01 0x01 0x0a 0x17e>; + phandle = <0x14b>; + }; + + uart6m1-ctsn { + rockchip,pins = <0x01 0x03 0x0a 0x178>; + phandle = <0x14c>; + }; + + uart6m1-rtsn { + rockchip,pins = <0x01 0x02 0x0a 0x178>; + phandle = <0x1c1>; + }; + }; + + uart7 { + + uart7m1-xfer { + rockchip,pins = <0x03 0x11 0x0a 0x17e 0x03 0x10 0x0a 0x17e>; + phandle = <0x14d>; + }; + }; + + uart8 { + + uart8m1-xfer { + rockchip,pins = <0x03 0x03 0x0a 0x17e 0x03 0x02 0x0a 0x17e>; + phandle = <0x14e>; + }; + }; + + uart9 { + + uart9m1-xfer { + rockchip,pins = <0x04 0x0d 0x0a 0x17e 0x04 0x0c 0x0a 0x17e>; + phandle = <0x14f>; + }; + }; + + gpio-func { + + tsadc-gpio-func { + rockchip,pins = <0x00 0x01 0x00 0x178>; + phandle = <0x15c>; + }; + }; + + gmac0 { + + gmac0-miim { + rockchip,pins = <0x04 0x14 0x01 0x178 0x04 0x15 0x01 0x178>; + phandle = <0xef>; + }; + + gmac0-rx-bus2 { + rockchip,pins = <0x02 0x11 0x01 0x178 0x02 0x12 0x01 0x178 0x04 0x12 0x01 0x178>; + phandle = <0xf1>; + }; + + gmac0-tx-bus2 { + rockchip,pins = <0x02 0x0e 0x01 0x17a 0x02 0x0f 0x01 0x17a 0x02 0x10 0x01 0x178>; + phandle = <0xf0>; + }; + + gmac0-rgmii-clk { + rockchip,pins = <0x02 0x08 0x01 0x178 0x02 0x0b 0x01 0x178>; + phandle = <0xf2>; + }; + + gmac0-rgmii-bus { + rockchip,pins = <0x02 0x06 0x01 0x178 0x02 0x07 0x01 0x178 0x02 0x09 0x01 0x17a 0x02 0x0a 0x01 0x17a>; + phandle = <0xf3>; + }; + }; + + dp { + + dp1-hpd { + rockchip,pins = <0x01 0x04 0x00 0x178>; + phandle = <0x188>; + }; + }; + + leds { + + leds-gpio { + rockchip,pins = <0x01 0x0b 0x00 0x178>; + phandle = <0x1ac>; + }; + }; + + hdmirx { + + hdmirx-det { + rockchip,pins = <0x01 0x1d 0x00 0x17e>; + phandle = <0x19b>; + }; + }; + + headphone { + + hp-det { + rockchip,pins = <0x01 0x14 0x00 0x178>; + phandle = <0x1b6>; + }; + }; + + hym8563 { + + hym8563-int { + rockchip,pins = <0x00 0x08 0x00 0x17e>; + phandle = <0x160>; + }; + }; + + lcd { + + lcd-rst-gpio { + rockchip,pins = <0x02 0x0c 0x00 0x178>; + }; + }; + + touch { + + touch-gpio { + rockchip,pins = <0x00 0x1d 0x00 0x17e 0x00 0x16 0x00 0x178>; + }; + }; + + usb-typec { + + usbc0-int { + rockchip,pins = <0x00 0x1b 0x00 0x17e>; + phandle = <0x161>; + }; + }; + + wireless-bluetooth { + + uart6-gpios { + rockchip,pins = <0x01 0x02 0x00 0x178>; + phandle = <0x1c5>; + }; + + bt-reset-gpio { + rockchip,pins = <0x00 0x16 0x00 0x178>; + phandle = <0x1c2>; + }; + + bt-wake-gpio { + rockchip,pins = <0x00 0x15 0x00 0x178>; + phandle = <0x1c3>; + }; + + bt-irq-gpio { + rockchip,pins = <0x00 0x00 0x00 0x181>; + phandle = <0x1c4>; + }; + }; + + wireless-wlan { + + wifi-host-wake-irq { + rockchip,pins = <0x00 0x0a 0x00 0x181>; + }; + + wifi-poweren-gpio { + rockchip,pins = <0x00 0x14 0x00 0x17e>; + phandle = <0x1c6>; + }; + }; + }; + + csi2-dphy3 { + compatible = "rockchip,rk3568-csi2-dphy"; + rockchip,hw = <0x182>; + status = "disabled"; + }; + + csi2-dphy4 { + compatible = "rockchip,rk3568-csi2-dphy"; + rockchip,hw = <0x182>; + status = "disabled"; + }; + + csi2-dphy5 { + compatible = "rockchip,rk3568-csi2-dphy"; + rockchip,hw = <0x182>; + status = "disabled"; + }; + + rkcif-mipi-lvds4 { + compatible = "rockchip,rkcif-mipi-lvds"; + rockchip,hw = <0x3f>; + iommus = <0x40>; + status = "disabled"; + phandle = <0x183>; + }; + + rkcif-mipi-lvds4-sditf { + compatible = "rockchip,rkcif-sditf"; + rockchip,cif = <0x183>; + status = "disabled"; + }; + + rkcif-mipi-lvds4-sditf-vir1 { + compatible = "rockchip,rkcif-sditf"; + rockchip,cif = <0x183>; + status = "disabled"; + }; + + rkcif-mipi-lvds4-sditf-vir2 { + compatible = "rockchip,rkcif-sditf"; + rockchip,cif = <0x183>; + status = "disabled"; + }; + + rkcif-mipi-lvds4-sditf-vir3 { + compatible = "rockchip,rkcif-sditf"; + rockchip,cif = <0x183>; + status = "disabled"; + }; + + rkcif-mipi-lvds5 { + compatible = "rockchip,rkcif-mipi-lvds"; + rockchip,hw = <0x3f>; + iommus = <0x40>; + status = "disabled"; + phandle = <0x184>; + }; + + rkcif-mipi-lvds5-sditf { + compatible = "rockchip,rkcif-sditf"; + rockchip,cif = <0x184>; + status = "disabled"; + }; + + rkcif-mipi-lvds5-sditf-vir1 { + compatible = "rockchip,rkcif-sditf"; + rockchip,cif = <0x184>; + status = "disabled"; + }; + + rkcif-mipi-lvds5-sditf-vir2 { + compatible = "rockchip,rkcif-sditf"; + rockchip,cif = <0x184>; + status = "disabled"; + }; + + rkcif-mipi-lvds5-sditf-vir3 { + compatible = "rockchip,rkcif-sditf"; + rockchip,cif = <0x184>; + status = "disabled"; + }; + + usbdrd3_1 { + compatible = "rockchip,rk3588-dwc3\0rockchip,rk3399-dwc3"; + clocks = <0x02 0x1a6 0x02 0x1a5 0x02 0x1a4>; + clock-names = "ref\0suspend\0bus"; + #address-cells = <0x02>; + #size-cells = <0x02>; + ranges; + status = "okay"; + + usb@fc400000 { + compatible = "snps,dwc3"; + reg = <0x00 0xfc400000 0x00 0x400000>; + interrupts = <0x00 0xdd 0x04>; + power-domains = <0x4d 0x1f>; + resets = <0x02 0x2a7>; + reset-names = "usb3-otg"; + dr_mode = "host"; + phys = <0x185 0x186>; + phy-names = "usb2-phy\0usb3-phy"; + phy_type = "utmi_wide"; + snps,dis_enblslpm_quirk; + snps,dis-u2-freeclk-exists-quirk; + snps,dis-del-phy-power-chg-quirk; + snps,dis-tx-ipgap-linecheck-quirk; + snps,parkmode-disable-ss-quirk; + status = "okay"; + }; + }; + + syscon@fd5b8000 { + compatible = "rockchip,pcie30-phy-grf\0syscon"; + reg = <0x00 0xfd5b8000 0x00 0x10000>; + phandle = <0x1a9>; + }; + + syscon@fd5c0000 { + compatible = "rockchip,pipe-phy-grf\0syscon"; + reg = <0x00 0xfd5c0000 0x00 0x100>; + phandle = <0x1a8>; + }; + + syscon@fd5cc000 { + compatible = "rockchip,rk3588-usbdpphy-grf\0syscon"; + reg = <0x00 0xfd5cc000 0x00 0x4000>; + phandle = <0x1a5>; + }; + + syscon@fd5d4000 { + compatible = "rockchip,rk3588-usb2phy-grf\0syscon\0simple-mfd"; + reg = <0x00 0xfd5d4000 0x00 0x4000>; + #address-cells = <0x01>; + #size-cells = <0x01>; + phandle = <0x1a4>; + + usb2-phy@4000 { + compatible = "rockchip,rk3588-usb2phy"; + reg = <0x4000 0x10>; + interrupts = <0x00 0x18a 0x04>; + resets = <0x02 0xc0048 0x02 0x489>; + reset-names = "phy\0apb"; + clocks = <0x02 0x2b5>; + clock-names = "phyclk"; + clock-output-names = "usb480m_phy1"; + #clock-cells = <0x00>; + rockchip,usbctrl-grf = <0x5f>; + status = "okay"; + phandle = <0x1a6>; + + otg-port { + #phy-cells = <0x00>; + status = "okay"; + phy-supply = <0x60>; + phandle = <0x185>; + }; + }; + }; + + syscon@fd5e4000 { + compatible = "rockchip,rk3588-hdptxphy-grf\0syscon"; + reg = <0x00 0xfd5e4000 0x00 0x100>; + phandle = <0x1a3>; + }; + + mipi4-csi2@fdd50000 { + compatible = "rockchip,rk3588-mipi-csi2"; + reg = <0x00 0xfdd50000 0x00 0x10000>; + reg-names = "csihost_regs"; + interrupts = <0x00 0x97 0x04 0x00 0x98 0x04>; + interrupt-names = "csi-intr1\0csi-intr2"; + clocks = <0x02 0x1d3>; + clock-names = "pclk_csi2host"; + resets = <0x02 0x328 0x02 0x338>; + reset-names = "srst_csihost_p\0srst_csihost_vicap"; + status = "disabled"; + }; + + mipi5-csi2@fdd60000 { + compatible = "rockchip,rk3588-mipi-csi2"; + reg = <0x00 0xfdd60000 0x00 0x10000>; + reg-names = "csihost_regs"; + interrupts = <0x00 0x99 0x04 0x00 0x9a 0x04>; + interrupt-names = "csi-intr1\0csi-intr2"; + clocks = <0x02 0x1d4>; + clock-names = "pclk_csi2host"; + resets = <0x02 0x329 0x02 0x339>; + reset-names = "srst_csihost_p\0srst_csihost_vicap"; + status = "disabled"; + }; + + spdif-tx@fddb8000 { + compatible = "rockchip,rk3588-spdif\0rockchip,rk3568-spdif"; + reg = <0x00 0xfddb8000 0x00 0x1000>; + interrupts = <0x00 0xc6 0x04>; + dmas = <0xd3 0x16>; + dma-names = "tx"; + clock-names = "mclk\0hclk"; + clocks = <0x02 0x20f 0x02 0x20a>; + assigned-clocks = <0x02 0x20b>; + assigned-clock-parents = <0x02 0x05>; + power-domains = <0x4d 0x19>; + #sound-dai-cells = <0x00>; + status = "disabled"; + phandle = <0x1be>; + }; + + i2s@fddc8000 { + compatible = "rockchip,rk3588-i2s-tdm"; + reg = <0x00 0xfddc8000 0x00 0x1000>; + interrupts = <0x00 0xbc 0x04>; + clocks = <0x02 0x201 0x02 0x1fe>; + clock-names = "mclk_tx\0hclk"; + assigned-clocks = <0x02 0x1ff>; + assigned-clock-parents = <0x02 0x05>; + dmas = <0xd4 0x16>; + dma-names = "tx"; + power-domains = <0x4d 0x19>; + resets = <0x02 0x391>; + reset-names = "tx-m"; + rockchip,playback-only; + #sound-dai-cells = <0x00>; + status = "disabled"; + }; + + spdif-tx@fdde8000 { + compatible = "rockchip,rk3588-spdif\0rockchip,rk3568-spdif"; + reg = <0x00 0xfdde8000 0x00 0x1000>; + interrupts = <0x00 0xc5 0x04>; + dmas = <0xd3 0x08>; + dma-names = "tx"; + clock-names = "mclk\0hclk"; + clocks = <0x02 0x25c 0x02 0x258>; + assigned-clocks = <0x02 0x259>; + assigned-clock-parents = <0x02 0x05>; + power-domains = <0x4d 0x1a>; + #sound-dai-cells = <0x00>; + status = "disabled"; + }; + + i2s@fddf4000 { + compatible = "rockchip,rk3588-i2s-tdm"; + reg = <0x00 0xfddf4000 0x00 0x1000>; + interrupts = <0x00 0xba 0x04>; + clocks = <0x02 0x24c 0x02 0x24c 0x02 0x252>; + clock-names = "mclk_tx\0mclk_rx\0hclk"; + assigned-clocks = <0x02 0x249>; + assigned-clock-parents = <0x02 0x07>; + dmas = <0xd4 0x04>; + dma-names = "tx"; + power-domains = <0x4d 0x1a>; + resets = <0x02 0x3ef>; + reset-names = "tx-m"; + rockchip,always-on; + rockchip,hdmi-path; + rockchip,playback-only; + #sound-dai-cells = <0x00>; + status = "okay"; + phandle = <0x1bc>; + }; + + i2s@fddf8000 { + compatible = "rockchip,rk3588-i2s-tdm"; + reg = <0x00 0xfddf8000 0x00 0x1000>; + interrupts = <0x00 0xbb 0x04>; + clocks = <0x02 0x23c 0x02 0x23c 0x02 0x238>; + clock-names = "mclk_tx\0mclk_rx\0hclk"; + assigned-clocks = <0x02 0x239>; + assigned-clock-parents = <0x02 0x05>; + dmas = <0xd4 0x15>; + dma-names = "rx"; + power-domains = <0x4d 0x1a>; + resets = <0x02 0x3c3>; + reset-names = "rx-m"; + rockchip,capture-only; + #sound-dai-cells = <0x00>; + status = "okay"; + phandle = <0x1c8>; + }; + + i2s@fde00000 { + compatible = "rockchip,rk3588-i2s-tdm"; + reg = <0x00 0xfde00000 0x00 0x1000>; + interrupts = <0x00 0xbe 0x04>; + clocks = <0x02 0x237 0x02 0x237 0x02 0x233>; + clock-names = "mclk_tx\0mclk_rx\0hclk"; + assigned-clocks = <0x02 0x234>; + assigned-clock-parents = <0x02 0x05>; + dmas = <0xd4 0x18>; + dma-names = "rx"; + power-domains = <0x4d 0x1a>; + resets = <0x02 0x417>; + reset-names = "rx-m"; + rockchip,capture-only; + #sound-dai-cells = <0x00>; + status = "disabled"; + }; + + spdif-rx@fde10000 { + compatible = "rockchip,rk3588-spdifrx\0rockchip,rk3308-spdifrx"; + reg = <0x00 0xfde10000 0x00 0x1000>; + interrupts = <0x00 0xc8 0x04>; + clocks = <0x02 0x260 0x02 0x25f>; + clock-names = "mclk\0hclk"; + assigned-clocks = <0x02 0x260>; + assigned-clock-parents = <0x02 0x05>; + dmas = <0x64 0x16>; + dma-names = "rx"; + power-domains = <0x4d 0x1a>; + resets = <0x02 0x3ff>; + reset-names = "spdifrx-m"; + #sound-dai-cells = <0x00>; + status = "disabled"; + }; + + spdif-rx@fde18000 { + compatible = "rockchip,rk3588-spdifrx\0rockchip,rk3308-spdifrx"; + reg = <0x00 0xfde18000 0x00 0x1000>; + interrupts = <0x00 0xc9 0x04>; + clocks = <0x02 0x262 0x02 0x261>; + clock-names = "mclk\0hclk"; + assigned-clocks = <0x02 0x262>; + assigned-clock-parents = <0x02 0x05>; + dmas = <0x64 0x17>; + dma-names = "rx"; + power-domains = <0x4d 0x1a>; + resets = <0x02 0x401>; + reset-names = "spdifrx-m"; + #sound-dai-cells = <0x00>; + status = "disabled"; + }; + + dp@fde60000 { + compatible = "rockchip,rk3588-dp"; + reg = <0x00 0xfde60000 0x00 0x4000>; + interrupts = <0x00 0xa2 0x04>; + clocks = <0x02 0x1e7 0x02 0x2cd 0x02 0x201 0x02 0x20d 0x04>; + clock-names = "apb\0aux\0i2s\0spdif\0hclk"; + assigned-clocks = <0x02 0x2cd>; + assigned-clock-rates = <0xf42400>; + resets = <0x02 0x389>; + phys = <0x187>; + power-domains = <0x4d 0x19>; + #sound-dai-cells = <0x01>; + status = "disabled"; + pinctrl-names = "default"; + pinctrl-0 = <0x188>; + hpd-gpios = <0x189 0x04 0x00>; + phandle = <0x1bf>; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + reg = <0x00>; + #address-cells = <0x01>; + #size-cells = <0x00>; + + endpoint@0 { + reg = <0x00>; + remote-endpoint = <0x18a>; + status = "disabled"; + phandle = <0xbf>; + }; + + endpoint@1 { + reg = <0x01>; + remote-endpoint = <0x18b>; + status = "disabled"; + phandle = <0xc5>; + }; + + endpoint@2 { + reg = <0x02>; + remote-endpoint = <0x37>; + status = "disabled"; + phandle = <0xcd>; + }; + }; + }; + }; + + hdmi@fdea0000 { + compatible = "rockchip,rk3588-dw-hdmi"; + reg = <0x00 0xfdea0000 0x00 0x20000>; + interrupts = <0x00 0xad 0x04 0x00 0xae 0x04 0x00 0xaf 0x04 0x00 0xb0 0x04 0x00 0x169 0x04>; + clocks = <0x02 0x224 0x02 0x266 0x02 0x225 0x02 0x226 0x02 0x24c 0x02 0x274 0x02 0x275 0x02 0x276 0x02 0x277 0x05 0x2f>; + clock-names = "pclk\0hpd\0earc\0hdmitx_ref\0aud\0dclk_vp0\0dclk_vp1\0dclk_vp2\0dclk_vp3\0hclk_vo1\0link_clk"; + resets = <0x02 0x3d7 0x02 0x49d>; + reset-names = "ref\0hdp"; + power-domains = <0x4d 0x1a>; + pinctrl-names = "default"; + pinctrl-0 = <0x18c 0x18d 0x18e 0x18f>; + reg-io-width = <0x04>; + rockchip,grf = <0xb7>; + rockchip,vo1_grf = <0xba>; + phys = <0x190>; + phy-names = "hdmi"; + #sound-dai-cells = <0x00>; + status = "disabled"; + enable-gpios = <0xe0 0x0a 0x00>; + phandle = <0x1bd>; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + reg = <0x00>; + #address-cells = <0x01>; + #size-cells = <0x00>; + + endpoint@0 { + reg = <0x00>; + remote-endpoint = <0x191>; + status = "disabled"; + phandle = <0xc1>; + }; + + endpoint@1 { + reg = <0x01>; + remote-endpoint = <0x38>; + status = "disabled"; + phandle = <0xc7>; + }; + + endpoint@2 { + reg = <0x02>; + remote-endpoint = <0x192>; + status = "disabled"; + phandle = <0xcf>; + }; + }; + }; + }; + + edp@fded0000 { + compatible = "rockchip,rk3588-edp"; + reg = <0x00 0xfded0000 0x00 0x1000>; + interrupts = <0x00 0xa4 0x04>; + clocks = <0x02 0x214 0x02 0x213 0x02 0x215 0x05>; + clock-names = "dp\0pclk\0spdif\0hclk"; + resets = <0x02 0x3e4 0x02 0x3e3>; + reset-names = "dp\0apb"; + phys = <0x193>; + phy-names = "dp"; + power-domains = <0x4d 0x1a>; + rockchip,grf = <0xba>; + status = "disabled"; + + ports { + #address-cells = <0x01>; + #size-cells = <0x00>; + + port@0 { + reg = <0x00>; + #address-cells = <0x01>; + #size-cells = <0x00>; + + endpoint@0 { + reg = <0x00>; + remote-endpoint = <0x194>; + status = "disabled"; + phandle = <0xc0>; + }; + + endpoint@1 { + reg = <0x01>; + remote-endpoint = <0x195>; + status = "disabled"; + phandle = <0xc6>; + }; + + endpoint@2 { + reg = <0x02>; + remote-endpoint = <0x196>; + status = "disabled"; + phandle = <0xce>; + }; + }; + }; + }; + + hdmirx-controller@fdee0000 { + compatible = "rockchip,rk3588-hdmirx-ctrler\0rockchip,hdmirx-ctrler"; + reg = <0x00 0xfdee0000 0x00 0x6000>; + reg-names = "hdmirx_regs"; + power-domains = <0x4d 0x1a>; + rockchip,grf = <0xb7>; + rockchip,vo1_grf = <0xba>; + interrupts = <0x00 0xb1 0x04 0x00 0x1b4 0x04 0x00 0xb3 0x04>; + interrupt-names = "cec\0hdmi\0dma"; + clocks = <0x02 0x21a 0x02 0x21f 0x02 0x2b2 0x02 0x21b 0x02 0x21c 0x02 0x232 0x05>; + clock-names = "aclk\0audio\0cr_para\0pclk\0ref\0hclk_s_hdmirx\0hclk_vo1"; + resets = <0x02 0x3d9 0x02 0x3da 0x02 0x3db 0x02 0x3b7>; + reset-names = "rst_a\0rst_p\0rst_ref\0rst_biu"; + pinctrl-0 = <0x197 0x198 0x199 0x19a 0x19b>; + pinctrl-names = "default"; + status = "disabled"; + hpd-trigger-level = <0x01>; + hdmirx-det-gpios = <0x189 0x1d 0x01>; + }; + + pcie@fe150000 { + compatible = "rockchip,rk3588-pcie\0snps,dw-pcie"; + #address-cells = <0x03>; + #size-cells = <0x02>; + bus-range = <0x00 0x0f>; + clocks = <0x02 0x14e 0x02 0x153 0x02 0x149 0x02 0x158 0x02 0x15e 0x02 0x183>; + clock-names = "aclk_mst\0aclk_slv\0aclk_dbi\0pclk\0aux\0pipe"; + device_type = "pci"; + interrupts = <0x00 0x107 0x04 0x00 0x106 0x04 0x00 0x105 0x04 0x00 0x104 0x04 0x00 0x103 0x04>; + interrupt-names = "sys\0pmc\0msg\0legacy\0err"; + #interrupt-cells = <0x01>; + interrupt-map-mask = <0x00 0x00 0x00 0x07>; + interrupt-map = <0x00 0x00 0x00 0x01 0x19c 0x00 0x00 0x00 0x00 0x02 0x19c 0x01 0x00 0x00 0x00 0x03 0x19c 0x02 0x00 0x00 0x00 0x04 0x19c 0x03>; + linux,pci-domain = <0x00>; + num-ib-windows = <0x10>; + num-ob-windows = <0x10>; + num-viewport = <0x08>; + max-link-speed = <0x03>; + msi-map = <0x00 0x19d 0x00 0x1000>; + num-lanes = <0x04>; + phys = <0x19e>; + phy-names = "pcie-phy"; + power-domains = <0x4d 0x22>; + ranges = <0x800 0x00 0xf0000000 0x00 0xf0000000 0x00 0x100000 0x81000000 0x00 0xf0100000 0x00 0xf0100000 0x00 0x100000 0x82000000 0x00 0xf0200000 0x00 0xf0200000 0x00 0xe00000 0xc3000000 0x09 0x00 0x09 0x00 0x00 0x40000000>; + reg = <0x00 0xfe150000 0x00 0x10000 0x0a 0x40000000 0x00 0x400000>; + reg-names = "pcie-apb\0pcie-dbi"; + resets = <0x02 0x20d 0x02 0x21c>; + reset-names = "pcie\0periph"; + rockchip,pipe-grf = <0x61>; + status = "disabled"; + reset-gpios = <0xe0 0x0e 0x00>; + vpcie3v3-supply = <0x19f>; + + legacy-interrupt-controller { + interrupt-controller; + #address-cells = <0x00>; + #interrupt-cells = <0x01>; + interrupt-parent = <0x01>; + interrupts = <0x00 0x104 0x01>; + phandle = <0x19c>; + }; + }; + + pcie@fe160000 { + compatible = "rockchip,rk3588-pcie\0snps,dw-pcie"; + #address-cells = <0x03>; + #size-cells = <0x02>; + bus-range = <0x10 0x1f>; + clocks = <0x02 0x14f 0x02 0x154 0x02 0x14a 0x02 0x159 0x02 0x15f 0x02 0x184>; + clock-names = "aclk_mst\0aclk_slv\0aclk_dbi\0pclk\0aux\0pipe"; + device_type = "pci"; + interrupts = <0x00 0x102 0x04 0x00 0x101 0x04 0x00 0x100 0x04 0x00 0xff 0x04 0x00 0xfe 0x04>; + interrupt-names = "sys\0pmc\0msg\0legacy\0err"; + #interrupt-cells = <0x01>; + interrupt-map-mask = <0x00 0x00 0x00 0x07>; + interrupt-map = <0x00 0x00 0x00 0x01 0x1a0 0x00 0x00 0x00 0x00 0x02 0x1a0 0x01 0x00 0x00 0x00 0x03 0x1a0 0x02 0x00 0x00 0x00 0x04 0x1a0 0x03>; + linux,pci-domain = <0x01>; + num-ib-windows = <0x10>; + num-ob-windows = <0x10>; + num-viewport = <0x08>; + max-link-speed = <0x03>; + msi-map = <0x1000 0x19d 0x1000 0x1000>; + num-lanes = <0x02>; + phys = <0x19e>; + phy-names = "pcie-phy"; + power-domains = <0x4d 0x22>; + ranges = <0x800 0x00 0xf1000000 0x00 0xf1000000 0x00 0x100000 0x81000000 0x00 0xf1100000 0x00 0xf1100000 0x00 0x100000 0x82000000 0x00 0xf1200000 0x00 0xf1200000 0x00 0xe00000 0xc3000000 0x09 0x40000000 0x09 0x40000000 0x00 0x40000000>; + reg = <0x00 0xfe160000 0x00 0x10000 0x0a 0x40400000 0x00 0x400000>; + reg-names = "pcie-apb\0pcie-dbi"; + resets = <0x02 0x20e 0x02 0x21d>; + reset-names = "pcie\0periph"; + rockchip,pipe-grf = <0x61>; + status = "disabled"; + + legacy-interrupt-controller { + interrupt-controller; + #address-cells = <0x00>; + #interrupt-cells = <0x01>; + interrupt-parent = <0x01>; + interrupts = <0x00 0xff 0x01>; + phandle = <0x1a0>; + }; + }; + + pcie@fe170000 { + compatible = "rockchip,rk3588-pcie\0snps,dw-pcie"; + #address-cells = <0x03>; + #size-cells = <0x02>; + bus-range = <0x20 0x2f>; + clocks = <0x02 0x150 0x02 0x155 0x02 0x14b 0x02 0x15b 0x02 0x160 0x02 0x2c4>; + clock-names = "aclk_mst\0aclk_slv\0aclk_dbi\0pclk\0aux\0pipe"; + device_type = "pci"; + interrupts = <0x00 0xf3 0x04 0x00 0xf2 0x04 0x00 0xf1 0x04 0x00 0xf0 0x04 0x00 0xef 0x04>; + interrupt-names = "sys\0pmc\0msg\0legacy\0err"; + #interrupt-cells = <0x01>; + interrupt-map-mask = <0x00 0x00 0x00 0x07>; + interrupt-map = <0x00 0x00 0x00 0x01 0x1a1 0x00 0x00 0x00 0x00 0x02 0x1a1 0x01 0x00 0x00 0x00 0x03 0x1a1 0x02 0x00 0x00 0x00 0x04 0x1a1 0x03>; + linux,pci-domain = <0x02>; + num-ib-windows = <0x08>; + num-ob-windows = <0x08>; + num-viewport = <0x04>; + max-link-speed = <0x02>; + msi-map = <0x2000 0xe8 0x2000 0x1000>; + num-lanes = <0x01>; + phys = <0x1a2 0x02>; + phy-names = "pcie-phy"; + ranges = <0x800 0x00 0xf2000000 0x00 0xf2000000 0x00 0x100000 0x81000000 0x00 0xf2100000 0x00 0xf2100000 0x00 0x100000 0x82000000 0x00 0xf2200000 0x00 0xf2200000 0x00 0xe00000 0xc3000000 0x09 0x80000000 0x09 0x80000000 0x00 0x40000000>; + reg = <0x00 0xfe170000 0x00 0x10000 0x0a 0x40800000 0x00 0x400000>; + reg-names = "pcie-apb\0pcie-dbi"; + resets = <0x02 0x20f 0x02 0x21e>; + reset-names = "pcie\0periph"; + rockchip,pipe-grf = <0x61>; + status = "disabled"; + reset-gpios = <0x189 0x0c 0x00>; + rockchip,skip-scan-in-resume; + + legacy-interrupt-controller { + interrupt-controller; + #address-cells = <0x00>; + #interrupt-cells = <0x01>; + interrupt-parent = <0x01>; + interrupts = <0x00 0xf0 0x01>; + phandle = <0x1a1>; + }; + }; + + sata@fe220000 { + compatible = "rockchip,rk-ahci\0snps,dwc-ahci"; + reg = <0x00 0xfe220000 0x00 0x1000>; + clocks = <0x02 0x172 0x02 0x16f 0x02 0x175 0x02 0x164 0x02 0x17f>; + clock-names = "sata\0pmalive\0rxoob\0ref\0asic"; + interrupts = <0x00 0x112 0x04>; + interrupt-names = "hostc"; + phys = <0x1a2 0x01>; + phy-names = "sata-phy"; + ports-implemented = <0x01>; + status = "disabled"; + }; + + phy@fed70000 { + compatible = "rockchip,rk3588-hdptx-phy"; + reg = <0x00 0xfed70000 0x00 0x2000>; + clocks = <0x02 0x2b5 0x02 0x268>; + clock-names = "ref\0apb"; + resets = <0x02 0x486 0x02 0xc003f 0x02 0xc0040 0x02 0xc0041>; + reset-names = "apb\0init\0cmn\0lane"; + rockchip,grf = <0x1a3>; + #phy-cells = <0x00>; + status = "disabled"; + phandle = <0x193>; + }; + + hdmiphy@fed70000 { + compatible = "rockchip,rk3588-hdptx-phy-hdmi"; + reg = <0x00 0xfed70000 0x00 0x2000>; + clocks = <0x02 0x2b5 0x02 0x268>; + clock-names = "ref\0apb"; + resets = <0x02 0x491 0x02 0x486 0x02 0xc003f 0x02 0xc0040 0x02 0xc0041 0x02 0x48f 0x02 0x490>; + reset-names = "phy\0apb\0init\0cmn\0lane\0ropll\0lcpll"; + rockchip,grf = <0x1a3>; + #phy-cells = <0x00>; + status = "disabled"; + phandle = <0x190>; + + clk-port { + #clock-cells = <0x00>; + status = "okay"; + phandle = <0x2f>; + }; + }; + + phy@fed90000 { + compatible = "rockchip,rk3588-usbdp-phy"; + reg = <0x00 0xfed90000 0x00 0x10000>; + rockchip,u2phy-grf = <0x1a4>; + rockchip,usb-grf = <0x5f>; + rockchip,usbdpphy-grf = <0x1a5>; + rockchip,vo-grf = <0xd7>; + clocks = <0x02 0x2b6 0x02 0x280 0x02 0x26a 0x1a6>; + clock-names = "refclk\0immortal\0pclk\0utmi"; + resets = <0x02 0x2f 0x02 0x30 0x02 0x31 0x02 0x32 0x02 0x484>; + reset-names = "init\0cmn\0lane\0pcs_apb\0pma_apb"; + status = "okay"; + rockchip,dp-lane-mux = <0x00 0x01>; + + dp-port { + #phy-cells = <0x00>; + status = "okay"; + phandle = <0x187>; + }; + + u3-port { + #phy-cells = <0x00>; + status = "okay"; + phandle = <0x186>; + }; + }; + + csi2-dphy1-hw@fedc8000 { + compatible = "rockchip,rk3588-csi2-dphy-hw"; + reg = <0x00 0xfedc8000 0x00 0x8000>; + clocks = <0x02 0x10d>; + clock-names = "pclk"; + resets = <0x02 0x19 0x02 0x18>; + reset-names = "srst_csiphy1\0srst_p_csiphy1"; + rockchip,grf = <0x1a7>; + rockchip,sys_grf = <0xb7>; + status = "disabled"; + phandle = <0x182>; + }; + + phy@fee10000 { + compatible = "rockchip,rk3588-naneng-combphy"; + reg = <0x00 0xfee10000 0x00 0x100>; + #phy-cells = <0x01>; + clocks = <0x02 0x2be 0x02 0x186 0x02 0x166>; + clock-names = "refclk\0apbclk\0phpclk"; + assigned-clocks = <0x02 0x2be>; + assigned-clock-rates = <0x5f5e100>; + resets = <0x02 0x20006 0x02 0x4d7>; + reset-names = "combphy-apb\0combphy"; + rockchip,pipe-grf = <0x61>; + rockchip,pipe-phy-grf = <0x1a8>; + rockchip,pcie1ln-sel-bits = <0x100 0x00 0x00 0x00>; + status = "okay"; + phandle = <0x1a2>; + }; + + phy@fee80000 { + compatible = "rockchip,rk3588-pcie3-phy"; + reg = <0x00 0xfee80000 0x00 0x20000>; + #phy-cells = <0x00>; + clocks = <0x02 0x188>; + clock-names = "pclk"; + resets = <0x02 0x2000a>; + reset-names = "phy"; + rockchip,pipe-grf = <0x61>; + rockchip,phy-grf = <0x1a9>; + status = "disabled"; + phandle = <0x19e>; + }; + + test-power { + status = "okay"; + }; + + vcc12v-dcin { + compatible = "regulator-fixed"; + regulator-name = "vcc12v_dcin"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <0xb71b00>; + regulator-max-microvolt = <0xb71b00>; + phandle = <0x1aa>; + }; + + vcc5v0-sys { + compatible = "regulator-fixed"; + regulator-name = "vcc5v0_sys"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <0x4c4b40>; + regulator-max-microvolt = <0x4c4b40>; + vin-supply = <0x1aa>; + phandle = <0x63>; + }; + + vcc5v0-usbdcin { + compatible = "regulator-fixed"; + regulator-name = "vcc5v0_usbdcin"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <0x4c4b40>; + regulator-max-microvolt = <0x4c4b40>; + vin-supply = <0x1aa>; + }; + + vcc5v0-usb { + compatible = "regulator-fixed"; + regulator-name = "vcc5v0_usb"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <0x4c4b40>; + regulator-max-microvolt = <0x4c4b40>; + vin-supply = <0x1aa>; + phandle = <0x1b7>; + }; + + vcc-1v1-nldo-s3 { + compatible = "regulator-fixed"; + regulator-name = "vcc_1v1_nldo_s3"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <0x10c8e0>; + regulator-max-microvolt = <0x10c8e0>; + vin-supply = <0x63>; + phandle = <0x142>; + }; + + chosen { + bootargs = "storagemedia=emmc androidboot.storagemedia=emmc androidboot.mode=normal storagenode=/mmc@fe2e0000 androidboot.verifiedbootstate=orange rw rootwait earlycon=video,efifb,800x600,32 console=tty2 irqchip.gicv3_pseudo_nmi=0 root=PARTLABEL=rootfs rootfstype=ext4 overlayroot=device:dev=PARTLABEL=userdata,fstype=ext4,mkfs=1 coherent_pool=1m systemd.gpt_auto=0 cgroup_enable=memory swapaccount=1 loglevel=7 nokaslr"; + }; + + memory@40000000 { + device_type = "memory"; + reg = <0x00 0x9400000 0x00 0xe6c00000>; + }; + + cspmu@fd10c000 { + compatible = "rockchip,cspmu"; + reg = <0x00 0xfd10c000 0x00 0x1000 0x00 0xfd10d000 0x00 0x1000 0x00 0xfd10e000 0x00 0x1000 0x00 0xfd10f000 0x00 0x1000 0x00 0xfd12c000 0x00 0x1000 0x00 0xfd12d000 0x00 0x1000 0x00 0xfd12e000 0x00 0x1000 0x00 0xfd12f000 0x00 0x1000>; + }; + + debug@fd104000 { + compatible = "rockchip,debug"; + reg = <0x00 0xfd104000 0x00 0x1000 0x00 0xfd105000 0x00 0x1000 0x00 0xfd106000 0x00 0x1000 0x00 0xfd107000 0x00 0x1000 0x00 0xfd124000 0x00 0x1000 0x00 0xfd125000 0x00 0x1000 0x00 0xfd126000 0x00 0x1000 0x00 0xfd127000 0x00 0x1000>; + }; + + fiq-debugger { + compatible = "rockchip,fiq-debugger"; + rockchip,serial-id = <0x02>; + rockchip,wake-irq = <0x00>; + rockchip,irq-mode-enable = <0x01>; + rockchip,baudrate = <0x16e360>; + interrupts = <0x00 0x1a7 0x08>; + pinctrl-names = "default"; + pinctrl-0 = <0x1ab>; + status = "okay"; + }; + + reserved-memory { + #address-cells = <0x02>; + #size-cells = <0x02>; + ranges; + + cma { + compatible = "shared-dma-pool"; + reusable; + size = <0x00 0x800000>; + linux,cma-default; + reg = <0x00 0x49400000 0x00 0x10000000>; + }; + + drm-logo@00000000 { + compatible = "rockchip,drm-logo"; + reg = <0x00 0x00 0x00 0x00>; + phandle = <0x30>; + }; + + drm-cubic-lut@00000000 { + compatible = "rockchip,drm-cubic-lut"; + reg = <0x00 0x00 0x00 0x00>; + }; + + ramoops@110000 { + compatible = "ramoops"; + reg = <0x00 0x110000 0x00 0xf0000>; + record-size = <0x20000>; + console-size = <0x80000>; + ftrace-size = <0x00>; + pmsg-size = <0x50000>; + }; + }; + + leds { + compatible = "gpio-leds"; + status = "okay"; + pinctrl-names = "default"; + pinctrl-0 = <0x1ac>; + + power { + label = ":power"; + linux,default-trigger = "ir-power-click"; + default-state = "on"; + gpios = <0x189 0x0b 0x00>; + }; + }; + + hdmi0-sound { + status = "okay"; + compatible = "rockchip,hdmi"; + rockchip,mclk-fs = <0x80>; + rockchip,card-name = "rockchip-hdmi0"; + rockchip,cpu = <0x1ad>; + rockchip,codec = <0x1ae>; + rockchip,jack-det; + }; + + dp0-sound { + status = "disabled"; + compatible = "rockchip,hdmi"; + rockchip,card-name = "rockchip-dp0"; + rockchip,mclk-fs = <0x200>; + rockchip,cpu = <0x1af>; + rockchip,codec = <0x1b0 0x01>; + rockchip,jack-det; + }; + + spdif-tx1-dc { + status = "disabled"; + compatible = "linux,spdif-dit"; + #sound-dai-cells = <0x00>; + phandle = <0x1b2>; + }; + + spdif-tx1-sound { + status = "disabled"; + compatible = "simple-audio-card"; + simple-audio-card,mclk-fs = <0x80>; + simple-audio-card,name = "rockchip,spdif-tx1"; + + simple-audio-card,cpu { + sound-dai = <0x1b1>; + }; + + simple-audio-card,codec { + sound-dai = <0x1b2>; + }; + }; + + adc-keys { + status = "okay"; + compatible = "adc-keys"; + io-channels = <0x1b3 0x01>; + io-channel-names = "buttons"; + keyup-threshold-microvolt = <0x1b7740>; + poll-interval = <0x64>; + + recovery-key { + label = "F12"; + linux,code = <0x58>; + press-threshold-microvolt = <0x4268>; + }; + }; + + es8388-sound { + status = "disabled"; + compatible = "firefly,multicodecs-card"; + rockchip,card-name = "rockchip-es8388"; + hp-det-gpio = <0x189 0x14 0x01>; + io-channels = <0x1b3 0x03>; + io-channel-names = "adc-detect"; + spk-con-gpio = <0xee 0x0a 0x00>; + hp-con-gpio = <0xe0 0x08 0x00>; + linein-type = <0x00>; + rockchip,format = "i2s"; + rockchip,mclk-fs = <0x100>; + rockchip,cpu = <0x1b4>; + rockchip,codec = <0x1b5>; + rockchip,audio-routing = "Headphone\0LOUT1\0Headphone\0ROUT1\0Speaker\0LOUT2\0Speaker\0ROUT2\0Headphone\0Headphone Power\0Headphone\0Headphone Power\0Speaker\0Speaker Power\0Speaker\0Speaker Power\0LINPUT1\0Main Mic\0LINPUT2\0Main Mic\0RINPUT1\0Headset Mic\0RINPUT2\0Headset Mic"; + pinctrl-names = "default"; + pinctrl-0 = <0x1b6>; + firefly,not-use-dapm; + }; + + vcc5v0-host { + compatible = "regulator-fixed"; + regulator-name = "vcc5v0_host"; + regulator-boot-on; + regulator-always-on; + regulator-min-microvolt = <0x4c4b40>; + regulator-max-microvolt = <0x4c4b40>; + enable-active-high; + gpio = <0xe0 0x0e 0x00>; + vin-supply = <0x1b7>; + status = "okay"; + phandle = <0x60>; + }; + + vcc-hub-reset-regulator { + compatible = "regulator-fixed"; + regulator-name = "vcc_hub_reset"; + regulator-boot-on; + regulator-always-on; + enable-active-high; + status = "disabled"; + gpio = <0x1b8 0x04 0x00>; + }; + + vbus5v0-typec-pwr-en-regulator { + compatible = "regulator-fixed"; + regulator-name = "vbus5v0_typec_pwr_en"; + enable-active-high; + status = "disabled"; + gpio = <0xe0 0x0a 0x00>; + phandle = <0x162>; + }; + + vcc-hub3-reset-regulator { + compatible = "regulator-fixed"; + regulator-name = "vcc_hub3_reset"; + regulator-always-on; + enable-active-high; + status = "disabled"; + gpio = <0x1b8 0x06 0x00>; + }; + + vcc5v0-host3 { + compatible = "regulator-fixed"; + regulator-name = "vcc5v0_host3"; + regulator-boot-on; + regulator-always-on; + regulator-min-microvolt = <0x4c4b40>; + regulator-max-microvolt = <0x4c4b40>; + enable-active-high; + gpio = <0xe0 0x0a 0x00>; + vin-supply = <0x1b7>; + status = "disabled"; + }; + + vcc-sata-pwr-en-regulator { + compatible = "regulator-fixed"; + regulator-name = "vcc_sata_pwr_en"; + regulator-boot-on; + regulator-always-on; + enable-active-high; + status = "disabled"; + gpio = <0x1b8 0x0a 0x00>; + }; + + vcc-fan-pwr-en-regulator { + compatible = "regulator-fixed"; + regulator-name = "vcc_fan_pwr_en"; + regulator-boot-on; + regulator-always-on; + enable-active-high; + status = "okay"; + gpio = <0x1b8 0x0b 0x00>; + }; + + vcc-sdcard-pwr-en-regulator { + compatible = "regulator-fixed"; + regulator-name = "vcc_sdcard_pwr_en"; + regulator-boot-on; + regulator-always-on; + enable-active-high; + gpio = <0xee 0x11 0x00>; + status = "okay"; + }; + + vcc3v3-pcie30 { + compatible = "regulator-fixed"; + regulator-name = "vcc3v3_pcie30"; + regulator-min-microvolt = <0x325aa0>; + regulator-max-microvolt = <0x325aa0>; + enable-active-high; + gpios = <0x1b9 0x15 0x00>; + startup-delay-us = <0x1388>; + vin-supply = <0x1aa>; + status = "disabled"; + phandle = <0x19f>; + }; + + pcie30-avdd1v8 { + compatible = "regulator-fixed"; + regulator-name = "pcie30_avdd1v8"; + regulator-boot-on; + regulator-always-on; + regulator-min-microvolt = <0x1b7740>; + regulator-max-microvolt = <0x1b7740>; + vin-supply = <0x1ba>; + }; + + pcie30-avdd0v75 { + compatible = "regulator-fixed"; + regulator-name = "pcie30_avdd0v75"; + regulator-boot-on; + regulator-always-on; + regulator-min-microvolt = <0xb71b0>; + regulator-max-microvolt = <0xb71b0>; + vin-supply = <0x1bb>; + }; + + hdmi1-sound { + status = "disabled"; + compatible = "rockchip,hdmi"; + rockchip,mclk-fs = <0x80>; + rockchip,card-name = "rockchip-hdmi1"; + rockchip,cpu = <0x1bc>; + rockchip,codec = <0x1bd>; + rockchip,jack-det; + }; + + dp1-sound { + status = "disabled"; + compatible = "rockchip,hdmi"; + rockchip,card-name = "rockchip,dp1"; + rockchip,mclk-fs = <0x200>; + rockchip,cpu = <0x1be>; + rockchip,codec = <0x1bf 0x01>; + rockchip,jack-det; + }; + + wireless-bluetooth { + compatible = "bluetooth-platdata"; + clocks = <0x1c0>; + clock-names = "ext_clock"; + uart_rts_gpios = <0x189 0x02 0x01>; + pinctrl-names = "default\0rts_gpio"; + pinctrl-0 = <0x1c1 0x1c2 0x1c3 0x1c4>; + pinctrl-1 = <0x1c5>; + BT,reset_gpio = <0x13b 0x16 0x00>; + BT,wake_gpio = <0x13b 0x15 0x00>; + BT,wake_host_irq = <0x13b 0x00 0x00>; + status = "disabled"; + }; + + wireless-wlan { + compatible = "wlan-platdata"; + wifi_chip_type = "ap6275p"; + pinctrl-names = "default"; + pinctrl-0 = <0x1c6>; + WIFI,poweren_gpio = <0x13b 0x14 0x00>; + status = "disabled"; + }; + + hdmiin-dc { + compatible = "rockchip,dummy-codec"; + #sound-dai-cells = <0x00>; + phandle = <0x1c9>; + }; + + hdmiin-sound { + compatible = "simple-audio-card"; + simple-audio-card,format = "i2s"; + simple-audio-card,name = "rockchip,hdmiin"; + simple-audio-card,bitclock-master = <0x1c7>; + simple-audio-card,frame-master = <0x1c7>; + status = "disabled"; + + simple-audio-card,cpu { + sound-dai = <0x1c8>; + }; + + simple-audio-card,codec { + sound-dai = <0x1c9>; + phandle = <0x1c7>; + }; + }; + + pwm-fan { + compatible = "pwm-fan"; + #cooling-cells = <0x02>; + fan-supply = <0x1aa>; + pwms = <0x1ca 0x00 0xc350 0x01>; + }; +}; diff --git a/configs/vms/linux-aarch64-rk3588-smp8.toml b/configs/vms/linux-aarch64-rk3588-smp8.toml new file mode 100644 index 00000000..bc344126 --- /dev/null +++ b/configs/vms/linux-aarch64-rk3588-smp8.toml @@ -0,0 +1,122 @@ +# Vm base info configs +# +[base] +# Guest vm id. +id = 1 +# Guest vm name. +name = "linux" +# Virtualization type. +vm_type = 1 +# The number of virtual CPUs. +cpu_num = 8 +# Guest vm physical cpu sets. +phys_cpu_sets = [1, 2, 4, 8, 16, 32, 64, 128] +phys_cpu_ids = [0x00, 0x100, 0x200, 0x300, 0x400, 0x500, 0x600, 0x700] + + +# +# Vm kernel configs +# +[kernel] +# The entry point of the kernel image. +entry_point = 0x1008_0000 +# The load address of the kernel image. +kernel_load_addr = 0x1008_0000 +# The load address of the device tree blob (DTB). +dtb_load_addr = 0x1000_0000 +# The location of image: "memory" | "fs". +# load from memory +image_location = "memory" +# The file path of the kernel image. +kernel_path = "/path/to/kernel" +# The file path of the device tree blob (DTB). +dtb_path = "/path/to/dtb" + +# load from file system. +# image_location = "fs". +## The file path of the kernel image. +# kernel_path = "linux-arceos-aarch64.bin" +## The file path of the device tree blob (DTB). +# dtb_path = "linux-rk3588.dtb" + +## The file path of the ramdisk image. +# ramdisk_path = "" +## The load address of the ramdisk image. +# ramdisk_load_addr = 0 +## The path of the disk image. +# disk_path = "disk.img" + +# Memory regions with format (`base_paddr`, `size`, `flags`, `map_type`). +# For `map_type`, 0 means `MAP_ALLOC`, 1 means `MAP_IDENTICAL`. +memory_regions = [ + [0x940_0000, 0xd550_0000, 0x7, 1], # ram 3G MAP_IDENTICAL + [0x920_0000, 0x2000, 0x7, 1] +] + +# +# Device specifications +# +[devices] +# Emu_devices. +# Name Base-Ipa Ipa_len Alloc-Irq Emu-Type EmuConfig. +emu_devices = [] + + +interrupt_mode = "passthrough" +# Pass-through devices. +# Name Base-Ipa Base-Pa Length Alloc-Irq. +passthrough_devices = [ + [ + "ramoops", + 0x11_0000, + 0x11_0000, + 0xf_0000, + 0x17, + ], + [ + "sram", + 0x10_f000, + 0x10_f000, + 0x1000, + 0x17, + ], + [ + "gpu", + 0xfb00_0000, + 0xfb00_0000, + 0x20_0000, + 0x17, + ], + [ + "uart8250 UART", + 0xfd00_0000, + 0xfd00_0000, + 0x200_0000, + 0x17, + ], + [ + "usb", + 0xfc00_0000, + 0xfc00_0000, + 0x100_0000, + 0x17, + ], + [ + "uncached", + 0x0, + 0x0, + 0x10_f000, + 0x17, + ], + [ + "device", + 0x920_0000, + 0x920_0000, + 0x2000, + 0x17, + ], +] + +excluded_devices = [ + # ["/gic-v3"], +] \ No newline at end of file From a01561e3897bfb47938e21f10dd824eb82d96a30 Mon Sep 17 00:00:00 2001 From: szy <673586548@qq.com> Date: Sun, 28 Sep 2025 16:38:33 +0800 Subject: [PATCH 215/219] Fix the bug when the dtb_load_addr field is missing. (#263) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix no dtb_load_gpa error --------- Co-authored-by: szy Co-authored-by: 周睿 <34859362+ZR233@users.noreply.github.com> --- configs/vms/nimbos-aarch64-qemu-smp1.toml | 4 ++-- src/vmm/images/mod.rs | 16 ++++++++++------ 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/configs/vms/nimbos-aarch64-qemu-smp1.toml b/configs/vms/nimbos-aarch64-qemu-smp1.toml index 7106afea..88a789e8 100644 --- a/configs/vms/nimbos-aarch64-qemu-smp1.toml +++ b/configs/vms/nimbos-aarch64-qemu-smp1.toml @@ -66,10 +66,10 @@ emu_devices = [ # Name Base-Ipa Base-Pa Length Alloc-Irq. passthrough_devices = [ ["/"], - #["/timer"], + #["/pl011@9000000"], ] # Devices that are not desired to be passed through to the guest excluded_devices = [ - # ["/gic-v3"], + ["/pcie@10000000"], ] \ No newline at end of file diff --git a/src/vmm/images/mod.rs b/src/vmm/images/mod.rs index 9c6ccc43..922a15a2 100644 --- a/src/vmm/images/mod.rs +++ b/src/vmm/images/mod.rs @@ -107,17 +107,19 @@ impl ImageLoader { .expect("Failed to load VM images"); // Load DTB image let vm_config = axvm::config::AxVMConfig::from(self.config.clone()); - if let Some(dtb_arc) = get_vm_dtb_arc(&vm_config) { + if let Some(dtb_arc) = get_vm_dtb_arc(&vm_config) + && let Some(dtb_load_gpa) = self.dtb_load_gpa + { let dtb_slice: &[u8] = &dtb_arc; debug!( "DTB buffer addr: {:x}, size: {:#}", - self.dtb_load_gpa.unwrap(), + dtb_load_gpa, Byte::from(dtb_slice.len()) ); #[cfg(target_arch = "aarch64")] update_fdt( - self.dtb_load_gpa.unwrap(), + dtb_load_gpa, NonNull::new(dtb_slice.as_ptr() as *mut u8).unwrap(), dtb_slice.len(), self.vm.clone(), @@ -254,17 +256,19 @@ mod fs { }; // Load DTB image if needed. let vm_config = axvm::config::AxVMConfig::from(loader.config.clone()); - if let Some(dtb_arc) = get_vm_dtb_arc(&vm_config) { + if let Some(dtb_arc) = get_vm_dtb_arc(&vm_config) + && let Some(dtb_load_gpa) = loader.dtb_load_gpa + { let dtb_slice: &[u8] = &dtb_arc; debug!( "DTB buffer addr: {:x}, size: {:#}", - loader.dtb_load_gpa.unwrap(), + dtb_load_gpa, Byte::from(dtb_slice.len()) ); #[cfg(target_arch = "aarch64")] update_fdt( - loader.dtb_load_gpa.unwrap(), + dtb_load_gpa, NonNull::new(dtb_slice.as_ptr() as *mut u8).unwrap(), dtb_slice.len(), loader.vm.clone(), From df8e1580e9ef7896df5b6cd0119e964bd1244d5d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E7=9D=BF?= <34859362+ZR233@users.noreply.github.com> Date: Mon, 29 Sep 2025 10:42:16 +0800 Subject: [PATCH 216/219] feat: clippy warning as error, log to english (#265) * feat: clippy warn as error * Refactor and translate Axvisor scripts for improved clarity and consistency --- axvisor.sh | 251 +++++++++++++++++++-------------------- scripts/bootstrap.sh | 136 ++++++++++----------- scripts/build.py | 42 +++---- scripts/clean.py | 22 ++-- scripts/clippy.py | 57 +++++---- scripts/disk_img.py | 29 +++-- scripts/requirements.txt | 2 +- scripts/run.py | 26 ++-- scripts/setup.py | 21 ++-- src/vmm/config.rs | 3 +- src/vmm/fdt/mod.rs | 3 +- src/vmm/images/mod.rs | 5 +- 12 files changed, 299 insertions(+), 298 deletions(-) diff --git a/axvisor.sh b/axvisor.sh index 5e5be3e7..b528ad91 100755 --- a/axvisor.sh +++ b/axvisor.sh @@ -1,12 +1,12 @@ #!/bin/bash # -*- coding: utf-8 -*- -# Axvisor 统一管理脚本 -# 替代 Makefile,提供完整的项目管理功能 +# Axvisor unified management script +# Replaces the Makefile, providing complete project management functionality set -e -# 颜色定义 +# Color definitions RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[1;33m' @@ -14,7 +14,7 @@ BLUE='\033[0;34m' CYAN='\033[0;36m' NC='\033[0m' # No Color -# 项目配置 +# Project configuration SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" PROJECT_ROOT="$SCRIPT_DIR" HVCONFIG="$PROJECT_ROOT/.hvconfig.toml" @@ -23,10 +23,10 @@ VENV_DIR="$PROJECT_ROOT/venv" VENV_MARKER="$VENV_DIR/.bootstrapped" REQUIREMENTS="$PROJECT_ROOT/scripts/requirements.txt" -# 切换到项目根目录 +# Switch to project root cd "$PROJECT_ROOT" -# 输出函数 - 统一使用emoji符号 +# Output helper functions - unified emoji style info() { echo -e "${BLUE}ℹ️${NC} $*"; } success() { echo -e "${GREEN}✅${NC} $*"; } warning() { echo -e "${YELLOW}⚠️${NC} $*"; } @@ -34,48 +34,48 @@ error() { echo -e "${RED}❌${NC} $*"; } step() { echo -e "${CYAN}🚀${NC} $*"; } debug() { echo -e "${CYAN}🔍${NC} $*"; } -# 错误处理 +# Error handling handle_error() { error "命令失败: $1" exit 1 } -trap 'handle_error "脚本执行中断"' ERR +trap 'handle_error "Script interrupted"' ERR -# 检查系统依赖 +# Check system dependencies check_system_deps() { local missing_deps=() - # 检查 Python 3 + # Check Python 3 if ! command -v python3 >/dev/null 2>&1; then missing_deps+=("python3") fi - # 检查 Cargo + # Check Cargo if ! command -v cargo >/dev/null 2>&1; then missing_deps+=("cargo") fi if [[ ${#missing_deps[@]} -gt 0 ]]; then - error "缺少必要依赖: ${missing_deps[*]}" - info "请安装缺少的依赖后重试" + error "Missing required dependencies: ${missing_deps[*]}" + info "Install the missing dependencies and retry" exit 1 fi } -# 检查虚拟环境是否需要设置 +# Determine whether venv setup is needed needs_venv_setup() { - # 虚拟环境不存在 + # Virtual environment directory does not exist if [[ ! -d "$VENV_DIR" ]]; then return 0 fi - # Python 可执行文件不存在 + # Python executable missing inside venv if [[ ! -x "$VENV_DIR/bin/python3" ]]; then return 0 fi - # requirements.txt 更新了 + # requirements.txt is newer than the bootstrap marker if [[ "$REQUIREMENTS" -nt "$VENV_MARKER" ]]; then return 0 fi @@ -83,70 +83,69 @@ needs_venv_setup() { return 1 } -# 设置虚拟环境 +# Setup virtual environment setup_venv() { if ! needs_venv_setup; then return 0 fi - step "设置 Python 虚拟环境..." + step "Setting up Python virtual environment..." # 运行 bootstrap 脚本 ./scripts/bootstrap.sh - success "虚拟环境设置完成" + success "Virtual environment ready" } -# 配置文件管理 +# Config file management setup_defconfig() { - step "设置默认配置..." + step "Setting default config..." if [[ ! -f "$DEFAULT_HVCONFIG" ]]; then - error "默认配置文件 $DEFAULT_HVCONFIG 不存在" + error "Default config file $DEFAULT_HVCONFIG not found" exit 1 fi if [[ -f "$HVCONFIG" ]]; then - warning "配置文件 $HVCONFIG 已存在" - read -p "是否覆盖现有配置?(y/N): " -n 1 -r + warning "Config file $HVCONFIG already exists" + read -p "Overwrite existing config? (y/N): " -n 1 -r echo if [[ ! $REPLY =~ ^[Yy]$ ]]; then - info "已取消操作" + info "Operation cancelled" return 0 fi fi cp "$DEFAULT_HVCONFIG" "$HVCONFIG" - success "已复制 $DEFAULT_HVCONFIG -> $HVCONFIG" + success "Copied $DEFAULT_HVCONFIG -> $HVCONFIG" - info "配置文件设置完成" - info "可以编辑 $HVCONFIG 来自定义配置" + info "Config file setup completed" + info "Edit $HVCONFIG to customize settings" } -# 确保配置文件存在(静默方式) +# Ensure config file exists (silent) ensure_config() { if [[ ! -f "$HVCONFIG" ]]; then if [[ -f "$DEFAULT_HVCONFIG" ]]; then - info "自动复制默认配置文件..." + info "Auto copying default config file..." cp "$DEFAULT_HVCONFIG" "$HVCONFIG" - success "已复制 $DEFAULT_HVCONFIG -> $HVCONFIG" + success "Copied $DEFAULT_HVCONFIG -> $HVCONFIG" else - warning "默认配置文件 $DEFAULT_HVCONFIG 不存在" - warning "请先运行 './axvisor.sh defconfig' 设置配置文件" + warning "Default config file $DEFAULT_HVCONFIG not found" + warning "Run './axvisor.sh defconfig' first to create it" fi fi } -# 运行 Python 任务 -# 运行 Python 任务 - 统一的任务执行入口 +# Run Python task (unified entry point) run_python_task() { local cmd="$1" shift - # 检查是否需要帮助 + # Check if help flag requested for arg in "$@"; do if [[ "$arg" == "--help" || "$arg" == "-h" ]]; then - step "显示 $cmd 命令帮助..." + step "Showing help for $cmd..." setup_venv source "$VENV_DIR/bin/activate" python3 scripts/task.py "$cmd" --help @@ -154,7 +153,7 @@ run_python_task() { fi done - # 根据命令类型进行智能参数解析 + # Smart argument parsing based on command case "$cmd" in "clippy") parse_clippy_args "$@" @@ -169,10 +168,10 @@ run_python_task() { parse_run_args "$@" ;; *) - # 其他命令直接透传所有参数 - step "执行 $cmd 命令..." + # Other commands: pass all args + step "Executing command $cmd..." if [[ $# -gt 0 ]]; then - debug "参数: $*" + debug "Args: $*" fi setup_venv source "$VENV_DIR/bin/activate" @@ -181,12 +180,12 @@ run_python_task() { esac } -# 解析 clippy 命令参数 +# Parse clippy command arguments parse_clippy_args() { - local arch="aarch64" # 默认架构 + local arch="aarch64" # default arch local extra_args=() - # 解析参数 + # Parse args while [[ $# -gt 0 ]]; do case $1 in --arch) @@ -194,7 +193,7 @@ parse_clippy_args() { shift 2 ;; *) - # 如果没有 --arch 标志且是第一个未处理的参数,将其作为架构 + # First positional arg (without --arch) is treated as architecture if [[ ${#extra_args[@]} -eq 0 && "$1" != -* ]]; then arch="$1" shift @@ -206,9 +205,9 @@ parse_clippy_args() { esac done - step "运行代码检查 (架构: $arch)..." + step "Running clippy (arch: $arch)..." if [[ ${#extra_args[@]} -gt 0 ]]; then - debug "额外参数: ${extra_args[*]}" + debug "Extra args: ${extra_args[*]}" fi setup_venv @@ -216,12 +215,12 @@ parse_clippy_args() { python3 scripts/task.py clippy --arch "$arch" "${extra_args[@]}" } -# 解析 disk_img 命令参数 +# Parse disk_img command arguments parse_disk_img_args() { - local image="disk.img" # 默认镜像名 + local image="disk.img" # default image name local extra_args=() - # 解析参数 + # Parse args while [[ $# -gt 0 ]]; do case $1 in --image) @@ -229,7 +228,7 @@ parse_disk_img_args() { shift 2 ;; *) - # 如果没有 --image 标志且是第一个未处理的参数,将其作为镜像名 + # First positional arg (without --image) is image name if [[ ${#extra_args[@]} -eq 0 && "$1" != -* ]]; then image="$1" shift @@ -241,9 +240,9 @@ parse_disk_img_args() { esac done - step "创建磁盘镜像: $image" + step "Creating disk image: $image" if [[ ${#extra_args[@]} -gt 0 ]]; then - debug "额外参数: ${extra_args[*]}" + debug "Extra args: ${extra_args[*]}" fi setup_venv @@ -251,11 +250,11 @@ parse_disk_img_args() { python3 scripts/task.py disk_img --image "$image" "${extra_args[@]}" } -# 解析 build 命令参数 +# Parse build command arguments parse_build_args() { - step "构建项目..." + step "Building project..." if [[ $# -gt 0 ]]; then - debug "构建参数: $*" + debug "Build args: $*" fi setup_venv @@ -263,11 +262,11 @@ parse_build_args() { python3 scripts/task.py build "$@" } -# 解析 run 命令参数 +# Parse run command arguments parse_run_args() { - step "运行项目..." + step "Running project..." if [[ $# -gt 0 ]]; then - debug "运行参数: $*" + debug "Run args: $*" fi setup_venv @@ -275,112 +274,112 @@ parse_run_args() { python3 scripts/task.py run "$@" } -# 显示帮助信息 +# Show help information show_help() { - echo -e "${CYAN}🔧 Axvisor 项目管理工具${NC}" + echo -e "${CYAN}🔧 Axvisor Project Management Tool${NC}" echo - echo -e "${YELLOW}📋 用法:${NC} $0 <命令> [参数...]" + echo -e "${YELLOW}📋 Usage:${NC} $0 [args...]" echo - echo -e "${YELLOW}🛠️ 环境管理:${NC}" - echo " setup - 🚀 设置开发环境" - echo " defconfig - ⚙️ 设置默认配置文件" - echo " check-deps - ✅ 检查系统依赖" - echo " rebuild-venv - 🔄 强制重建虚拟环境" - echo " dev-env - 🔧 开发环境工具" + echo -e "${YELLOW}🛠️ Environment:${NC}" + echo " setup - 🚀 Setup development environment" + echo " defconfig - ⚙️ Copy default config file" + echo " check-deps - ✅ Check system dependencies" + echo " rebuild-venv - 🔄 Force rebuild virtual environment" + echo " dev-env - 🔧 Development environment helper" echo - echo -e "${YELLOW}🔨 构建命令:${NC}" - echo " build [args] - 🏗️ 构建项目 (支持完整参数透传)" - echo " clean [args] - 🧹 清理构建产物" - echo " clippy [args] - 🔍 运行代码检查 (支持 --arch 和其他参数)" + echo -e "${YELLOW}🔨 Build:${NC}" + echo " build [args] - 🏗️ Build project (args passthrough)" + echo " clean [args] - 🧹 Clean build artifacts" + echo " clippy [args] - 🔍 Run clippy lint (supports --arch)" echo - echo -e "${YELLOW}▶️ 运行命令:${NC}" - echo " run [args] - 🚀 运行项目 (支持完整参数透传)" - echo " disk_img [args] - 💾 创建磁盘镜像 (支持 --image 和其他参数)" + echo -e "${YELLOW}▶️ Run:${NC}" + echo " run [args] - 🚀 Run project (args passthrough)" + echo " disk_img [args] - 💾 Create disk image (supports --image)" echo - echo -e "${YELLOW}ℹ️ 信息命令:${NC}" - echo " status - 📊 显示项目状态" - echo " version - 📦 显示版本信息" - echo " help - ❓ 显示此帮助信息" + echo -e "${YELLOW}ℹ️ Info:${NC}" + echo " status - 📊 Show project status" + echo " version - 📦 Show version information" + echo " help - ❓ Show this help" echo - echo -e "${YELLOW}🎯 高级功能:${NC}" - echo " • 所有命令支持 --help 查看详细参数" - echo " • 参数完全透传到 task.py,支持所有原生功能" - echo " • 智能参数解析,兼容新老调用方式" + echo -e "${YELLOW}🎯 Advanced:${NC}" + echo " • All commands support --help" + echo " • Arguments passed directly to task.py" + echo " • Smart argument parsing (legacy/new)" echo - echo -e "${YELLOW}📚 构建示例:${NC}" + echo -e "${YELLOW}📚 Build examples:${NC}" echo " $0 build --plat aarch64-qemu-virt-hv" echo " $0 build --plat aarch64-generic --features fs" echo " $0 clippy --arch aarch64" echo - echo -e "${YELLOW}🎮 运行示例:${NC}" + echo -e "${YELLOW}🎮 Run examples:${NC}" echo " $0 run --plat aarch64-qemu-virt-hv" echo " $0 run --vmconfigs configs/vms/linux-qemu-aarch64.toml" } -# 显示项目状态 +# Show project status show_status() { - step "项目状态" + step "Project status" - echo "项目根目录: $PROJECT_ROOT" - echo "配置文件: $([ -f "$HVCONFIG" ] && echo "✓ 存在" || echo "✗ 不存在")" - echo "虚拟环境: $([ -d "$VENV_DIR" ] && echo "✓ 已设置" || echo "✗ 未设置")" + echo "Project root: $PROJECT_ROOT" + echo "Config file: $([ -f "$HVCONFIG" ] && echo "✓ Present" || echo "✗ Missing")" + echo "Virtual env: $([ -d "$VENV_DIR" ] && echo "✓ Present" || echo "✗ Missing")" if [[ -f "$VENV_MARKER" ]]; then - echo "环境状态: ✓ 已初始化" - local timestamp=$(grep "timestamp:" "$VENV_MARKER" 2>/dev/null | cut -d' ' -f2- || echo "未知") - echo "初始化时间: $timestamp" + echo "Env status: ✓ Initialized" + local timestamp=$(grep "timestamp:" "$VENV_MARKER" 2>/dev/null | cut -d' ' -f2- || echo "unknown") + echo "Initialized time: $timestamp" else - echo "环境状态: ✗ 未初始化" + echo "Env status: ✗ Not initialized" fi - # 检查系统依赖 - echo "系统依赖:" + # Check system dependencies + echo "System deps:" command -v python3 >/dev/null 2>&1 && echo " Python3: ✓" || echo " Python3: ✗" command -v cargo >/dev/null 2>&1 && echo " Cargo: ✓" || echo " Cargo: ✗" - # 显示最近的构建产物 + # Show latest build artifact timestamp if [[ -f "axvisor-dev_aarch64-generic.bin" ]]; then local build_time=$(stat -c %y "axvisor-dev_aarch64-generic.bin" 2>/dev/null | cut -d' ' -f1,2) - echo "最近构建: $build_time" + echo "Latest build: $build_time" fi } -# 显示版本信息 +# Show version information show_version() { - echo "Axvisor 管理脚本 v2.0" - echo "项目: axvisor-dev" - echo "分支: $(git branch --show-current 2>/dev/null || echo "未知")" - echo "提交: $(git rev-parse --short HEAD 2>/dev/null || echo "未知")" + echo "Axvisor management script v2.0" + echo "Project: axvisor-dev" + echo "Branch: $(git branch --show-current 2>/dev/null || echo "unknown")" + echo "Commit: $(git rev-parse --short HEAD 2>/dev/null || echo "unknown")" } -# 强制重建虚拟环境 +# Force rebuild virtual environment rebuild_venv() { - step "强制重建虚拟环境..." + step "Force rebuilding virtual environment..." if [[ -d "$VENV_DIR" ]]; then - warning "删除现有虚拟环境..." + warning "Removing existing virtual environment..." rm -rf "$VENV_DIR" fi setup_venv - success "虚拟环境重建完成" + success "Virtual environment rebuilt" } -# 设置完整的开发环境 +# Setup full development environment setup_environment() { - step "设置开发环境..." + step "Setting up development environment..." check_system_deps setup_venv - success "开发环境设置完成" + success "Development environment setup completed" } -# 主命令处理 +# Main command dispatcher main() { local cmd="${1:-help}" shift || true # 移除第一个参数,剩余参数传递给子命令 case "$cmd" in - # 帮助和信息 + # Help & info "help"|"-h"|"--help") show_help ;; @@ -391,7 +390,7 @@ main() { show_status ;; - # 环境管理 + # Environment management "setup") setup_environment ;; @@ -406,18 +405,18 @@ main() { rebuild_venv ;; - # 构建和开发命令 - 统一使用 run_python_task + # Build & development commands "build") run_python_task build "$@" ;; "clean") run_python_task clean "$@" - # 额外清理 cargo 产物 + # Additionally clean cargo artifacts if command -v cargo >/dev/null 2>&1; then - step "清理 Cargo 构建产物..." + step "Cleaning Cargo build artifacts..." cargo clean fi - success "清理完成" + success "Clean completed" ;; "clippy") run_python_task clippy "$@" @@ -429,26 +428,26 @@ main() { run_python_task disk_img "$@" ;; "dev-env") - step "设置开发环境..." + step "Setting up development environment..." setup_venv source "$VENV_DIR/bin/activate" python3 scripts/dev_env.py "$@" ;; - # 未知命令 + # Unknown command *) - error "未知命令: $cmd" - info "使用 '$0 help' 查看可用命令" + error "Unknown command: $cmd" + info "Use '$0 help' to list available commands" exit 1 ;; esac } -# 脚本入口点 +# Script entry point if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then - # 处理中断信号 - trap 'echo -e "\n${YELLOW}用户中断操作${NC}"; exit 130' INT + # Handle interrupt signal + trap 'echo -e "\n${YELLOW}User cancelled operation${NC}"; exit 130' INT - # 执行主函数 + # Execute main function main "$@" fi diff --git a/scripts/bootstrap.sh b/scripts/bootstrap.sh index 43f26d6b..76e9bce7 100755 --- a/scripts/bootstrap.sh +++ b/scripts/bootstrap.sh @@ -2,51 +2,51 @@ # -*- coding: utf-8 -*- # Axvisor Bootstrap Script -# 此脚本用于创建 Python 虚拟环境并安装 task.py 所需的依赖 +# This script creates a Python virtual environment and installs task.py dependencies -set -e # 遇到错误时退出 +set -e # Exit on error -# 颜色输出 +# Colored output RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[1;33m' BLUE='\033[0;34m' NC='\033[0m' # No Color -# 输出函数 +# Output helpers info() { echo -e "${BLUE}ℹ${NC} $1"; } success() { echo -e "${GREEN}✓${NC} $1"; } warning() { echo -e "${YELLOW}⚠${NC} $1"; } error() { echo -e "${RED}✗${NC} $1"; } -# 获取项目根目录 +# Get project root directory SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)" cd "$PROJECT_ROOT" -# 检查是否已经在虚拟环境中 +# If already inside a virtual environment, just update deps if [[ -n "$VIRTUAL_ENV" ]]; then - info "检测到已在虚拟环境中: $VIRTUAL_ENV" + info "Detected active virtual environment: $VIRTUAL_ENV" - # 检查 requirements.txt 文件是否存在 + # Ensure requirements.txt exists if [[ ! -f "scripts/requirements.txt" ]]; then - error "scripts/requirements.txt 文件未找到" + error "scripts/requirements.txt not found" exit 1 fi - # 安装/更新依赖 - info "更新 Python 依赖..." + # Install / update dependencies + info "Updating Python dependencies..." pip install -q -r scripts/requirements.txt -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple - success "依赖更新完成" + success "Dependencies updated" exit 0 fi -# 虚拟环境和标记文件 +# Virtual environment and marker file VENV_DIR="venv" MARKER_FILE="$VENV_DIR/.bootstrapped" REQUIREMENTS_FILE="scripts/requirements.txt" -# 计算依赖哈希值 +# Compute dependency hash compute_dep_hash() { local pyver pyver=$(python3 --version 2>/dev/null || echo "unknown") @@ -60,128 +60,128 @@ compute_dep_hash() { fi } -# 检查是否需要重新引导 +# Decide if bootstrap is needed check_bootstrap_needed() { - # 如果虚拟环境不存在,需要引导 + # Need bootstrap if venv directory missing if [[ ! -d "$VENV_DIR" ]]; then - return 0 # 需要引导 + return 0 # need bootstrap fi - # 如果标记文件不存在,需要引导 + # Need bootstrap if marker file missing if [[ ! -f "$MARKER_FILE" ]]; then - return 0 # 需要引导 + return 0 # need bootstrap fi - # 检查哈希值是否匹配 + # Check dependency hash local existing_hash current_hash existing_hash=$(awk -F":" '/^hash:/ {print $2}' "$MARKER_FILE" 2>/dev/null | tr -d '[:space:]') || existing_hash="" current_hash=$(compute_dep_hash) if [[ "$existing_hash" != "$current_hash" ]]; then - info "检测到依赖变更,需要重新引导" - return 0 # 需要引导 + info "Dependency changes detected, re-bootstrap required" + return 0 # need bootstrap fi - # 检查虚拟环境的Python是否可用 + # Ensure python executable exists in venv if [[ ! -x "$VENV_DIR/bin/python3" ]]; then - warning "虚拟环境的 Python 不可用,需要重新引导" - return 0 # 需要引导 + warning "Python in virtual env not available, re-bootstrap required" + return 0 # need bootstrap fi - return 1 # 不需要引导 + return 1 # bootstrap not needed } -# 快速检查并退出 +# Fast path: already bootstrapped if ! check_bootstrap_needed; then - success "引导已完成且依赖未更改,跳过引导" + success "Bootstrap already done and dependencies unchanged, skipping" exit 0 fi -info "开始设置 Python 虚拟环境..." +info "Starting Python virtual environment setup..." -# 检查系统依赖 +# Check system dependencies check_system_deps() { - info "检查系统依赖..." + info "Checking system dependencies..." - # 检查 Python 3 + # Check python3 exists if ! command -v python3 >/dev/null 2>&1; then - error "python3 未找到,请先安装 Python 3" + error "python3 not found. Please install Python 3" exit 1 fi - # 检查 Python 版本 + # Report Python version local pyver pyver=$(python3 --version 2>&1 | awk '{print $2}' | cut -d. -f1,2) - info "检测到 Python 版本: $pyver" + info "Detected Python version: $pyver" - # 检查 venv 模块 + # Check venv module if ! python3 -c "import venv" 2>/dev/null; then - error "python3-venv 模块未找到" - echo "请安装 python3-venv:" - echo " Ubuntu/Debian: sudo apt install python3-venv" - echo " CentOS/RHEL: sudo yum install python3-venv" - echo " Fedora: sudo dnf install python3-venv" + error "python3-venv module not found" + echo "Install python3-venv via your package manager:" + echo " Ubuntu/Debian: sudo apt install python3-venv" + echo " CentOS/RHEL: sudo yum install python3-venv" + echo " Fedora: sudo dnf install python3-venv" exit 1 fi - # 检查 requirements.txt + # Check requirements.txt exists if [[ ! -f "$REQUIREMENTS_FILE" ]]; then - error "$REQUIREMENTS_FILE 文件未找到" + error "$REQUIREMENTS_FILE not found" exit 1 fi - success "系统依赖检查完成" + success "System dependency check passed" } -# 创建虚拟环境 +# Create virtual environment setup_venv() { - info "设置虚拟环境..." + info "Preparing virtual environment..." - # 如果虚拟环境已存在但损坏,删除它 + # Remove broken venv if [[ -d "$VENV_DIR" ]] && [[ ! -x "$VENV_DIR/bin/python3" ]]; then - warning "检测到损坏的虚拟环境,正在删除..." + warning "Corrupted virtual environment detected, removing..." rm -rf "$VENV_DIR" fi - # 创建虚拟环境 + # Create venv if missing if [[ ! -d "$VENV_DIR" ]]; then - info "创建新的虚拟环境..." + info "Creating new virtual environment..." python3 -m venv "$VENV_DIR" - success "虚拟环境已创建" + success "Virtual environment created" else - info "使用现有虚拟环境" + info "Using existing virtual environment" fi } -# 安装依赖 +# Install dependencies install_deps() { - info "安装 Python 依赖..." + info "Installing Python dependencies..." # 激活虚拟环境 source "$VENV_DIR/bin/activate" - # 升级 pip(静默) + # Upgrade pip (quiet) python -m pip install -q --upgrade pip -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple - # 安装依赖 + # Install requirements pip install -q -r "$REQUIREMENTS_FILE" -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple - success "依赖安装完成" + success "Dependencies installed" } -# 验证安装 +# Verify installation verify_installation() { - info "验证安装..." + info "Verifying installation..." # 测试 task.py if source "$VENV_DIR/bin/activate" && python3 ./scripts/task.py --help >/dev/null 2>&1; then - success "task.py 运行正常" + success "task.py runs correctly" else - error "task.py 运行失败" + error "task.py execution failed" exit 1 fi } -# 写入完成标记 +# Write completion marker write_marker() { local dep_hash dep_hash=$(compute_dep_hash) @@ -192,10 +192,10 @@ timestamp: $(date -u +%Y-%m-%dT%H:%M:%SZ) python_version: $(python3 --version) EOF - success "引导完成标记已写入 (hash: ${dep_hash:0:8}...)" + success "Bootstrap marker written (hash: ${dep_hash:0:8}...)" } -# 主要执行流程 +# Main execution flow main() { check_system_deps setup_venv @@ -203,10 +203,10 @@ main() { verify_installation write_marker - success "虚拟环境设置完成!" - info "使用 'source venv/bin/activate' 激活环境" - info "使用 'make help' 查看可用命令" + success "Virtual environment setup complete!" + info "Activate with: source venv/bin/activate" + info "Use 'make help' to see available commands" } -# 执行主函数 +# Execute main function main "$@" diff --git a/scripts/build.py b/scripts/build.py index 1bd4e893..c54e5294 100644 --- a/scripts/build.py +++ b/scripts/build.py @@ -9,50 +9,52 @@ def main(args) -> int: - """构建项目""" - print("执行 build 功能...") + """Build the project""" + print("Running build task...") - # 获取配置文件路径 + # Get config file path config_file_path = getattr(args, "config", ".hvconfig.toml") - - # 检查配置文件是否存在 + # Check if config file exists config_exists = os.path.exists(config_file_path) - # 首先设置 arceos 依赖 - print("设置 arceos 依赖...") + # Setup arceos dependency first + print("Setting up arceos dependency...") if not setup_arceos(): - print("设置 arceos 失败,无法继续构建") + print("Failed to setup arceos, cannot build") return 1 - # 创建配置对象 + # Create config object config: AxvisorConfig = create_config_from_args(args) - - # 构建 make 命令 + # Build make command cmd = config.format_make_command("") - print(f"执行命令: {cmd}") + print(f"Executing: {cmd}") try: - # 执行 make 命令 + # Run make command result = subprocess.run( cmd, shell=True, check=True, env=config.get_subprocess_env() ) - print("构建成功!") + print("Build succeeded!") - # 如果配置文件不存在且有有意义的命令行参数,则创建配置文件 + # If config file missing and CLI args meaningful, create the config file if not config_exists: - print(f"检测到 {config_file_path} 不存在,根据命令行参数创建配置文件...") + print( + f"Detected missing {config_file_path}, creating config file from arguments..." + ) if save_config_to_file(config, config_file_path): print( - f"配置文件创建成功,下次可以直接运行 './task.py build -c {config_file_path}' 而无需指定参数" + f"Config file created. Next time just run './task.py build -c {config_file_path}'" ) else: - print("配置文件创建失败,下次仍需手动指定参数") + print( + "Failed to create config file; you'll need to pass arguments again next run" + ) return 0 except subprocess.CalledProcessError as e: - print(f"构建失败,退出码: {e.returncode}") + print(f"Build failed, exit code: {e.returncode}") return e.returncode except Exception as e: - print(f"构建过程中发生错误: {e}") + print(f"Error during build: {e}") return 1 diff --git a/scripts/clean.py b/scripts/clean.py index f99e9b24..d8ef62fb 100644 --- a/scripts/clean.py +++ b/scripts/clean.py @@ -6,32 +6,32 @@ def main(args) -> int: - """清理构建产物""" - print("执行 clean 功能...") + """Clean build artifacts""" + print("Running clean task...") - # 首先设置 arceos 依赖 - print("设置 arceos 依赖...") + # Setup arceos dependency first + print("Setting up arceos dependency...") if not setup_arceos(): - print("设置 arceos 失败,无法继续执行 clean") + print("Failed to setup arceos, cannot clean") return 1 cmd = format_make_command_base() cmd.append("clean") - # 构建 make 命令 + # Build make command string cmd = " ".join(cmd) - print(f"执行命令: {cmd}") + print(f"Executing: {cmd}") try: - # 执行 make 命令 + # Run make command subprocess.run(cmd, shell=True, check=True) - print("清理完成!") + print("Clean succeeded!") return 0 except subprocess.CalledProcessError as e: - print(f"清理失败,退出码: {e.returncode}") + print(f"Clean failed, exit code: {e.returncode}") return e.returncode except Exception as e: - print(f"清理过程中发生错误: {e}") + print(f"Error during clean: {e}") return 1 diff --git a/scripts/clippy.py b/scripts/clippy.py index 18c30da4..c7db4e37 100644 --- a/scripts/clippy.py +++ b/scripts/clippy.py @@ -15,62 +15,61 @@ def main(args) -> int: - """运行 clippy 代码检查""" - print("执行 clippy 功能...") + """Run clippy lint checks""" + print("Running clippy task...") - # 首先设置 arceos 依赖 - print("设置 arceos 依赖...") + # First setup arceos dependency + print("Setting up arceos dependency...") if not setup_arceos(): - print("设置 arceos 失败,无法继续执行 clippy") + print("Failed to setup arceos, cannot continue clippy") return 1 - # 读取根目录的 Cargo.toml 并解析 [features] + # Read root Cargo.toml and parse [features] cargo_toml_path = os.path.join(os.getcwd(), "Cargo.toml") if not os.path.exists(cargo_toml_path): - print(f"未找到 {cargo_toml_path},无法继续") + print(f"Not found {cargo_toml_path}, abort") return 1 - - # 解析 Cargo.toml,使用第三方 toml 包(文本模式) + # Parse Cargo.toml using third-party toml package parsed = None if _toml_impl is None: - print("需要安装 python-toml 包(pip install toml)来解析 Cargo.toml") + print("Need python 'toml' package (pip install toml) to parse Cargo.toml") return 1 try: with open(cargo_toml_path, "r", encoding="utf-8") as f: parsed = _toml_impl.load(f) except Exception as e: - print(f"解析 Cargo.toml 失败: {e}") + print(f"Failed to parse Cargo.toml: {e}") return 1 features_dict = parsed.get("features", {}) if isinstance(parsed, dict) else {} all_features: List[str] = list(features_dict.keys()) - # 找出以 plat- 开头的 feature + # Collect features starting with plat- plat_features = [f for f in all_features if f.startswith("plat-")] - # 其他非 plat 的 feature + # Non-plat features non_plat_features = [f for f in all_features if not f.startswith("plat-")] if not plat_features: print( - "在 Cargo.toml 的 [features] 中未找到以 'plat-' 开头的 feature,将以所有 feature 运行一次 clippy" + "No 'plat-' features found in Cargo.toml [features]; running single clippy pass with all features" ) features_arg = ",".join(all_features) if all_features else "" cmd_parts = ["cargo", "clippy"] if features_arg: cmd_parts.extend(["--features", f'"{features_arg}"']) cmd = " ".join(cmd_parts) - print(f"执行命令: {cmd}") + print(f"Executing: {cmd}") try: subprocess.run(cmd, shell=True, check=True) - print("clippy 检查完成!") + print("Clippy finished successfully") return 0 except subprocess.CalledProcessError as e: - print(f"clippy 检查失败,退出码: {e.returncode}") + print(f"Clippy failed with exit code: {e.returncode}") return e.returncode except Exception as e: - print(f"clippy 检查过程中发生错误: {e}") + print(f"Error while running clippy: {e}") return 1 - # 简单的 arch -> target 三元组映射(可按需扩展) + # Simple arch -> target triple map (extend as needed) arch_target_map = { "aarch64": "aarch64-unknown-none-softfloat", "x86": "x86_64-unknown-none", @@ -81,12 +80,12 @@ def main(args) -> int: any_failure = False for plat in plat_features: - # 从 plat 名称尝试提取 arch token(plat--...) + # Extract arch token from plat name (plat--...) parts = plat.split("-") arch_token = parts[1] if len(parts) > 1 else None target = arch_target_map.get(arch_token) if arch_token else None - # 构建 features: 选中当前 plat + 所有非 plat features(避免同时启用多个 plat) + # Build features: current plat + all non-plat ones (avoid enabling multiple plat features) features_to_use = [plat] + non_plat_features features_arg = ",".join(features_to_use) if features_to_use else "" @@ -96,17 +95,25 @@ def main(args) -> int: if features_arg: cmd_parts.extend(["--features", f'"{features_arg}"']) + cmd_parts.extend( + [ + "--", + "-D", + "warnings", + ] + ) + cmd = " ".join(cmd_parts) - print(f"执行命令: {cmd}") + print(f"Executing: {cmd}") try: subprocess.run(cmd, shell=True, check=True) - print(f"{plat}: clippy 检查完成") + print(f"{plat}: clippy finished successfully") except subprocess.CalledProcessError as e: - print(f"{plat}: clippy 检查失败,退出码: {e.returncode}") + print(f"{plat}: clippy failed, exit code: {e.returncode}") any_failure = True except Exception as e: - print(f"{plat}: clippy 检查过程中发生错误: {e}") + print(f"{plat}: error while running clippy: {e}") any_failure = True return 1 if any_failure else 0 diff --git a/scripts/disk_img.py b/scripts/disk_img.py index dd7d4840..be263cfd 100644 --- a/scripts/disk_img.py +++ b/scripts/disk_img.py @@ -9,43 +9,42 @@ def main(args) -> int: - """创建磁盘镜像""" - print("执行 disk_img 功能...") + """Create disk image""" + print("Running disk_img task...") - # 首先设置 arceos 依赖 - print("设置 arceos 依赖...") + # Setup arceos dependency first + print("Setting up arceos dependency...") if not setup_arceos(): - print("设置 arceos 失败,无法继续执行 disk_img") + print("Failed to setup arceos, cannot create disk image") return 1 cmd = format_make_command_base() if args.image: - # 处理镜像路径,如果是相对路径则转换为绝对路径 + # Handle image path: convert relative path to absolute image_path = args.image if not os.path.isabs(image_path): - # 相对于项目根目录计算绝对路径 + # Compute absolute path relative to project root project_root = os.getcwd() image_path = os.path.abspath(os.path.join(project_root, image_path)) - - # 如果指定了镜像路径和文件名,则添加到命令中 + # Add image path to command if specified cmd.append(f"DISK_IMG={image_path}") cmd.append("disk_img") - # 构建 make 命令 + # Build make command cmd = " ".join(cmd) - print(f"执行命令: {cmd}") + print(f"Executing: {cmd}") try: - # 执行 make 命令 + # Run make command subprocess.run(cmd, shell=True, check=True) - print("磁盘镜像创建完成!") + print("Disk image created successfully!") return 0 except subprocess.CalledProcessError as e: - print(f"磁盘镜像创建失败,退出码: {e.returncode}") + print(f"Disk image creation failed, exit code: {e.returncode}") return e.returncode except Exception as e: - print(f"磁盘镜像创建过程中发生错误: {e}") + print(f"Error during disk image creation: {e}") return 1 diff --git a/scripts/requirements.txt b/scripts/requirements.txt index 7fc9d50d..861a3962 100644 --- a/scripts/requirements.txt +++ b/scripts/requirements.txt @@ -1,2 +1,2 @@ -# Axvisor task.py 依赖 +# Axvisor task.py dependencies toml>=0.10.0 diff --git a/scripts/run.py b/scripts/run.py index 383a89cc..c3675e0c 100644 --- a/scripts/run.py +++ b/scripts/run.py @@ -10,34 +10,32 @@ def main(args) -> int: - """运行项目""" - print("执行 run 功能...") + """Run the project""" + print("Running run task...") - # 创建配置对象 + # Create config object config: AxvisorConfig = create_config_from_args(args) - - # 首先执行 build - print("运行前先构建项目...") + # Build first + print("Building project before run...") build_result = build.main(args) if build_result != 0: - print("构建失败,无法运行") + print("Build failed; aborting run") return build_result - - # 构建 make 命令 + # Build make command cmd = config.format_make_command("run") - print(f"执行命令: {cmd}") + print(f"Executing: {cmd}") try: - # 执行 make run 命令 + # Run make run command result = subprocess.run( cmd, shell=True, check=True, env=config.get_subprocess_env() ) - print("运行完成!") + print("Run completed!") return 0 except subprocess.CalledProcessError as e: - print(f"运行失败,退出码: {e.returncode}") + print(f"Run failed, exit code: {e.returncode}") return e.returncode except Exception as e: - print(f"运行过程中发生错误: {e}") + print(f"Error during run: {e}") return 1 diff --git a/scripts/setup.py b/scripts/setup.py index 7393e2b7..38fd5dbb 100644 --- a/scripts/setup.py +++ b/scripts/setup.py @@ -5,13 +5,13 @@ def setup_arceos(): - """设置 arceos 依赖""" + """Setup arceos dependency""" arceos_dir = ".arceos" if not os.path.exists(arceos_dir): - print("正在克隆 arceos 仓库...") + print("Cloning arceos repository...") try: - # 克隆 arceos 仓库 + # Clone arceos repository result = subprocess.run( [ "git", @@ -25,22 +25,21 @@ def setup_arceos(): capture_output=True, text=True, ) - - print("arceos 仓库克隆完成") + print("arceos repository cloned") return True except subprocess.CalledProcessError as e: - print(f"克隆 arceos 仓库失败: {e}") - print(f"错误输出: {e.stderr}") + print(f"Failed to clone arceos repository: {e}") + print(f"Stderr: {e.stderr}") return False except Exception as e: - print(f"设置 arceos 过程中发生错误: {e}") + print(f"Error while setting up arceos: {e}") return False else: - print(".arceos 文件夹已存在") + print(".arceos directory already exists") return True def main(args=None): - """作为独立命令使用时的入口""" - print("执行 setup-arceos 功能...") + """Entry point when used as standalone command""" + print("Running setup-arceos task...") return 0 if setup_arceos() else 1 diff --git a/src/vmm/config.rs b/src/vmm/config.rs index fa14b3c0..06afc5ca 100644 --- a/src/vmm/config.rs +++ b/src/vmm/config.rs @@ -13,13 +13,12 @@ use crate::vmm::fdt::*; use alloc::sync::Arc; -#[allow(clippy::module_inception)] +#[allow(clippy::module_inception, dead_code)] pub mod config { use alloc::string::String; use alloc::vec::Vec; /// Default static VM configs. Used when no VM config is provided. - #[allow(dead_code)] pub fn default_static_vm_configs() -> Vec<&'static str> { vec![ #[cfg(target_arch = "x86_64")] diff --git a/src/vmm/fdt/mod.rs b/src/vmm/fdt/mod.rs index ad294cf9..b76da293 100644 --- a/src/vmm/fdt/mod.rs +++ b/src/vmm/fdt/mod.rs @@ -96,7 +96,8 @@ pub fn get_developer_provided_dtb( use axerrno::ax_err_type; use std::io::{BufReader, Read}; if let Some(dtb_path) = &crate_config.kernel.dtb_path { - let (dtb_file, dtb_size) = crate::vmm::images::open_image_file(dtb_path).unwrap(); + let (dtb_file, dtb_size) = + crate::vmm::images::fs::open_image_file(dtb_path).unwrap(); info!("DTB file in fs, size: 0x{:x}", dtb_size); let mut file = BufReader::new(dtb_file); diff --git a/src/vmm/images/mod.rs b/src/vmm/images/mod.rs index 922a15a2..cfe0fca7 100644 --- a/src/vmm/images/mod.rs +++ b/src/vmm/images/mod.rs @@ -192,7 +192,7 @@ pub fn load_vm_image_from_memory( } #[cfg(feature = "fs")] -mod fs { +pub mod fs { use super::*; use crate::hal::CacheOp; use axerrno::{AxResult, ax_err, ax_err_type}; @@ -328,6 +328,3 @@ mod fs { Ok((file, file_size)) } } - -#[cfg(feature = "fs")] -pub use fs::open_image_file; From 7979f3c91a6b0df5ce8abb49874253beeb44911c Mon Sep 17 00:00:00 2001 From: TQ <128586861+YanLien@users.noreply.github.com> Date: Mon, 29 Sep 2025 15:49:54 +0800 Subject: [PATCH 217/219] feat: Add interactive shell support and improve VM management (#264) * feat: Add interactive shell support and improve VM management * refactor: Reorganize scripts and improve shell module * fix: improve error handling in guest VM initialization --- .github/workflows/test.yml | 4 +- Cargo.lock | 1 + Cargo.toml | 1 + README.md | 6 + configs/vms/arceos-aarch64-e2000-smp2.toml | 2 +- configs/vms_bkp/arceos-aarch64.toml | 4 +- ...41\345\235\227\344\273\213\347\273\215.md" | 379 ++++++++ scripts/auto_interrupt.sh | 50 ++ src/main.rs | 9 +- src/shell/command/base.rs | 749 ++++++++++++++++ src/shell/command/history.rs | 68 ++ src/shell/command/mod.rs | 562 ++++++++++++ src/shell/command/vm.rs | 821 ++++++++++++++++++ src/shell/mod.rs | 209 +++++ src/vmm/config.rs | 86 +- src/vmm/mod.rs | 17 +- 16 files changed, 2916 insertions(+), 52 deletions(-) create mode 100644 "doc/Shell\346\250\241\345\235\227\344\273\213\347\273\215.md" create mode 100755 scripts/auto_interrupt.sh create mode 100644 src/shell/command/base.rs create mode 100644 src/shell/command/history.rs create mode 100644 src/shell/command/mod.rs create mode 100644 src/shell/command/vm.rs create mode 100644 src/shell/mod.rs diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index a9a0904b..c2570100 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -41,7 +41,7 @@ jobs: cargo version export DISK_IMG="${{ github.workspace }}/disk-aarch64.img" export VM_CONFIGS="$(pwd)/configs/vms/nimbos-aarch64-qemu-smp1.toml" - ./axvisor.sh run --plat ${{ matrix.plat }} --vmconfigs $VM_CONFIGS --features fs,ept-level-4 --arceos-args DISK_IMG=$DISK_IMG,BUS=mmio,BLK=y,MEM=8g + ./scripts/auto_interrupt.sh ./axvisor.sh run --plat ${{ matrix.plat }} --vmconfigs $VM_CONFIGS --features fs,ept-level-4 --arceos-args DISK_IMG=$DISK_IMG,BUS=mmio,BLK=y,MEM=8g,LOG=info aarch64-generic-phytiumpi: runs-on: [self-hosted, linux, phytiumpi] @@ -135,4 +135,4 @@ jobs: cargo version export DISK_IMG="${{ github.workspace }}/disk-x86_64.img" export VM_CONFIGS="$(pwd)/configs/vms/nimbos-x86_64-qemu-smp1.toml" - ./axvisor.sh run --plat ${{ matrix.plat }} --vmconfigs $VM_CONFIGS --features fs --arceos-args DISK_IMG=$DISK_IMG,BLK=y + ./scripts/auto_interrupt.sh ./axvisor.sh run --plat ${{ matrix.plat }} --vmconfigs $VM_CONFIGS --features fs --arceos-args DISK_IMG=$DISK_IMG,BLK=y,LOG=info diff --git a/Cargo.lock b/Cargo.lock index 199f307f..fc23d8f6 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1026,6 +1026,7 @@ dependencies = [ "fdt-parser", "kernel_guard", "kspin", + "lazy_static", "lazyinit", "log", "memory_addr", diff --git a/Cargo.toml b/Cargo.toml index ce33f192..bb6d8296 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -28,6 +28,7 @@ lazyinit = "0.2" log = "=0.4.21" spin = "0.9" timer_list = "0.1.0" +lazy_static = { version = "1.5", default-features = false, features = ["spin_no_std"] } # System dependent modules provided by ArceOS. axstd = {git = "https://github.com/arceos-hypervisor/arceos.git", tag = "hv-0.3.1", features = [ diff --git a/README.md b/README.md index 469de2cd..c3327739 100644 --- a/README.md +++ b/README.md @@ -51,6 +51,12 @@ Currently, AxVisor has been verified in scenarios with the following systems as - [NimbOS](https://github.com/equation314/nimbos) - Linux +## Shell Management + +AxVisor provides an interactive shell interface for managing virtual machines and file operations. + +For detailed information about shell features, commands, and usage, see: [Shell模块介绍.md](doc/Shell模块介绍.md) + # Build and Run After AxVisor starts, it loads and starts the guest based on the information in the guest configuration file. Currently, AxVisor supports loading guest images from a FAT32 file system and also supports binding guest images to the hypervisor image through static compilation (using include_bytes). diff --git a/configs/vms/arceos-aarch64-e2000-smp2.toml b/configs/vms/arceos-aarch64-e2000-smp2.toml index fffae98d..0a39e493 100644 --- a/configs/vms/arceos-aarch64-e2000-smp2.toml +++ b/configs/vms/arceos-aarch64-e2000-smp2.toml @@ -23,7 +23,7 @@ image_location = "memory" # The load address of the kernel image. kernel_load_addr = 0x20_2008_0000 ## The file path of the kernel image. -kernel_path = "/path/to/arceos_aarch64-dyn_smp1.bin" +kernel_path = "/guest/arceos/arceos_aarch64-dyn_smp2.bin" ## The file path of the device tree blob (DTB). dtb_load_addr = 0x20_2000_0000 #dtb_path = "/path/to/axvisor/configs/vms/arceos-aarch64-e2000_smp2.dtb" diff --git a/configs/vms_bkp/arceos-aarch64.toml b/configs/vms_bkp/arceos-aarch64.toml index c75f7f49..7936825e 100644 --- a/configs/vms_bkp/arceos-aarch64.toml +++ b/configs/vms_bkp/arceos-aarch64.toml @@ -20,9 +20,9 @@ phys_cpu_sets = [2] entry_point = 0x4020_0000 # The location of image: "memory" | "fs". # Load from file system. -image_location = "memory" +image_location = "fs" # The file path of the kernel image. -kernel_path = "path/to/kernel" +kernel_path = "helloworld_aarch64-qemu-virt.bin" # The load address of the kernel image. kernel_load_addr = 0x4020_0000 ## Load from memory diff --git "a/doc/Shell\346\250\241\345\235\227\344\273\213\347\273\215.md" "b/doc/Shell\346\250\241\345\235\227\344\273\213\347\273\215.md" new file mode 100644 index 00000000..2fb7afa9 --- /dev/null +++ "b/doc/Shell\346\250\241\345\235\227\344\273\213\347\273\215.md" @@ -0,0 +1,379 @@ +# AxVisor Shell 模块详细介绍 + +## 概述 + +AxVisor Shell 模块是 AxVisor 虚拟化管理器中的一个重要组件,为用户提供了一个功能丰富的交互式命令行界面。该模块基于 Rust 语言实现,具有完整的命令解析、历史记录、终端控制和虚拟机管理功能。 + +``` +┌─────────────────────────────────────────────┐ +│ Shell Interface Layer │ +│ ┌─────────────┐ ┌─────────────┐ │ +│ │ Interactive │ │ Command CLI │ │ +│ │ Shell │ │ Parser │ │ +│ └─────────────┘ └─────────────┘ │ +├─────────────────────────────────────────────┤ +│ VM Management Facade │ +│ ┌─────────────┐ ┌──────────────────┐ │ +│ │ Controller │ │ Query & Monitor │ │ +│ └─────────────┘ └──────────────────┘ │ +├─────────────────────────────────────────────┤ +│ Existing VMM Components │ +│ VMList │ VCpu │ IVC │ Timer │ Config │ │ +└─────────────────────────────────────────────┘ +``` + +## 模块架构 + +### 目录结构 +``` +src/shell/ +├── mod.rs # 主模块,实现交互式shell界面 +└── command/ + ├── mod.rs # 命令框架和解析器 + ├── base.rs # 基础Unix命令实现 + ├── vm.rs # 虚拟机管理命令 + └── history.rs # 命令历史记录管理 +``` + +## 核心组件 + +### 1. 交互式Shell界面 (mod.rs) + +#### 主要功能 +- **实时字符输入处理**: 支持逐字符读取和处理用户输入 +- **光标控制**: 支持左右箭头键移动光标位置 +- **行编辑功能**: 支持删除、插入字符等基本编辑操作 +- **历史记录导航**: 通过上下箭头键浏览命令历史 +- **转义序列处理**: 支持部分ANSI转义序列和特殊键处理 + +#### 关键特性 +```rust +const MAX_LINE_LEN: usize = 256; // 最大命令行长度 + +enum InputState { + Normal, // 正常输入状态 + Escape, // ESC键按下状态 + EscapeSeq, // 转义序列处理状态 +} +``` + +#### 支持的按键操作 +- **回车键 (CR/LF)**: 执行当前命令 +- **退格键 (BS/DEL)**: 删除光标前的字符 +- **ESC序列**: 处理箭头键和功能键 +- **上/下箭头**: 浏览命令历史 +- **左/右箭头**: 移动光标位置 + +### 2. 命令框架和解析器 (command/mod.rs) + +#### 命令树结构 +采用基于树状结构的命令系统,支持主命令和子命令的层次化组织: + +```rust +#[derive(Debug, Clone)] +pub struct CommandNode { + handler: Option, // 命令处理函数 + subcommands: BTreeMap, // 子命令映射 + description: &'static str, // 命令描述 + usage: Option<&'static str>, // 使用说明 + log_level: log::LevelFilter, // 日志级别 + options: Vec, // 命令选项 + flags: Vec, // 命令标志 +} +``` + +#### 命令解析功能 +- **智能分词**: 支持引号包围的参数和转义字符 +- **选项解析**: 支持短选项(-x)和长选项(--option) +- **参数验证**: 自动验证必需选项和参数格式 +- **错误处理**: 详细的错误信息和使用提示 + +#### 解析错误类型 +```rust +pub enum ParseError { + UnknownCommand(String), // 未知命令 + UnknownOption(String), // 未知选项 + MissingValue(String), // 缺少参数值 + MissingRequiredOption(String), // 缺少必需选项 + NoHandler(String), // 没有处理函数 +} +``` + +### 3. 基础Unix命令 (command/base.rs) + +实现了部分Unix风格命令,包括: + +#### 文件系统操作命令 +- **ls**: 列出目录内容,支持 `-l`(详细信息) 和 `-a`(显示隐藏文件) 选项 +- **cat**: 显示文件内容,支持多文件连接输出 +- **mkdir**: 创建目录,支持 `-p`(创建父目录) 选项 +- **rm**: 删除文件和目录,支持 `-r`(递归)、`-f`(强制)、`-d`(删除空目录) 选项 +- **cp**: 复制文件和目录,支持 `-r`(递归复制) 选项 +- **mv**: 移动/重命名文件和目录 +- **touch**: 创建空文件 + +#### 系统信息命令 +- **pwd**: 显示当前工作目录 +- **cd**: 切换目录 +- **uname**: 显示系统信息,支持 `-a`(全部信息)、`-s`(内核名)、`-m`(架构) 选项 +- **echo**: 输出文本,支持 `-n`(不换行) 选项和文件重定向 + +#### 系统控制命令 +- **exit**: 退出shell,支持指定退出码 +- **log**: 控制日志级别 (off/error/warn/info/debug/trace) **有计划实现** + +#### 文件权限显示 +实现了完整的Unix风格文件权限显示: +```rust +fn file_type_to_char(ty: FileType) -> char { + match ty { + is_dir() => 'd', + is_file() => '-', + is_symlink() => 'l', + is_char_device() => 'c', + is_block_device() => 'b', + is_socket() => 's', + is_fifo() => 'p', + _ => '?' + } +} +``` + +### 4. 虚拟机管理命令 (command/vm.rs) + +提供完整的虚拟机生命周期管理功能: + +#### 主要子命令 +- **vm create**: 从配置文件创建虚拟机 +- **vm start**: 启动虚拟机(支持单个或全部) +- **vm stop**: 停止虚拟机,支持强制停止 +- **vm restart**: 重启虚拟机 +- **vm delete**: 删除虚拟机,支持数据保留选项 +- **vm list**: 列出虚拟机,支持JSON格式输出 +- **vm show**: 显示虚拟机详细信息 +- **vm status**: 显示虚拟机状态,支持实时监控 + +#### 功能特性 +```rust +// 虚拟机状态显示 +let state = if vm.running() { + "🟢 running" +} else if vm.shutting_down() { + "🟡 stopping" +} else { + "🔴 stopped" +}; +``` + +#### 详细信息显示 +- **配置信息**: BSP/AP入口点、中断模式、直通设备、模拟设备 +- **资源统计**: 内存区域、VCPU数量、设备数量 +- **运行状态**: VCPU状态分布、CPU亲和性设置 + +#### 支持的选项和标志 +- `--all`: 显示所有虚拟机(包括已停止的) +- `--format json`: JSON格式输出 +- `--config`: 显示配置信息 +- `--stats`: 显示统计信息 +- `--force`: 强制操作 +- `--detach`: 后台运行 +- `--watch`: 实时监控 + +### 5. 命令历史管理 (command/history.rs) + +#### 核心功能 +```rust +pub struct CommandHistory { + history: Vec, // 历史命令列表 + current_index: usize, // 当前索引位置 + max_size: usize, // 最大历史记录数 +} +``` + +#### 关键特性 +- **去重处理**: 避免连续重复命令 +- **循环缓冲**: 超出最大容量时自动删除最旧记录 +- **导航功能**: 支持前进/后退浏览 +- **空命令过滤**: 自动忽略空白命令 + +#### 终端控制 +```rust +pub fn clear_line_and_redraw( + stdout: &mut dyn Write, + prompt: &str, + content: &str, + cursor_pos: usize, +) { + write!(stdout, "\r"); // 回到行首 + write!(stdout, "\x1b[2K"); // 清除整行 + write!(stdout, "{}{}", prompt, content); // 重绘内容 + // 调整光标位置 + if cursor_pos < content.len() { + write!(stdout, "\x1b[{}D", content.len() - cursor_pos); + } +} +``` + +## 内置命令 + +### 系统级内置命令 +- **help**: 显示可用命令列表 +- **help ``**: 显示特定命令的详细帮助 +- **clear**: 清屏 (发送ANSI清屏序列) +- **exit/quit**: 退出shell + +### 命令提示符 +```rust +fn print_prompt() { + print!("axvisor:{}$ ", current_directory); +} +``` + +## 扩展性 + +### 添加新命令 + +1. 在对应的模块中实现命令处理函数 +2. 定义命令节点和选项/标志 +3. 在 `build_command_tree()` 中注册命令 + +### 命令定义示例 + +```rust +tree.insert( + "mycommand".to_string(), + CommandNode::new("My custom command") + .with_handler(my_command_handler) + .with_usage("mycommand [OPTIONS] ") + .with_option( + OptionDef::new("config", "Config file path") + .with_short('c') + .with_long("config") + .required() + ) + .with_flag( + FlagDef::new("verbose", "Verbose output") + .with_short('v') + .with_long("verbose") + ), +); +``` + +# 使用说明 + +## 启用Shell功能 + +AxVisor Shell模块需要启用特定的feature才能使用: + +### 必需的Features + +编译时需要启用 `fs` feature 以及对应的文件系统类型: + +#### 基础Shell功能 + +```bash +# 启用Shell基础功能 +--features fs +``` + +#### 文件系统支持 + +根据使用的文件系统类型选择对应的feature,默认为`fatfs`: + +```bash +# FAT32文件系统支持 +./axvisor.sh run --features fs --arceos-features "fatfs" + +# EXT4文件系统支持 +./axvisor.sh run --arceos-features "fs,ext4fs" + +``` + +#### 完整示例 + +```bash +# 使用FAT32文件系统运行AxVisor Shell +./axvisor.sh run --plat aarch64-generic --vmconfigs configs/vms/nimbos-aarch64-qemu-smp1.toml --features fs,ept-level-4 --arceos-features fatfs --arceos-args DISK_IMG=disk-aarch64.img,BUS=mmio,BLK=y,MEM=8g + +# 使用EXT4文件系统运行AxVisor Shell +./axvisor.sh run --plat aarch64-generic --vmconfigs configs/vms/nimbos-aarch64-qemu-smp1.toml --features fs,ept-level-4 --arceos-features ext4fs --arceos-args DISK_IMG=disk-aarch64.img,BUS=mmio,BLK=y,MEM=8g +``` + +### 配置说明 + +Shell模块通过条件编译控制: +```rust +#[cfg(feature = "fs")] +mod shell; + +#[cfg(feature = "fs")] +shell::console_init(); +``` + +只有当启用 `fs` feature时,Shell模块才会被编译和启动。 + +## 快速开始 + +启动AxVisor后会自动进入Shell界面: +``` +axvisor:/$ +``` + +### 基本操作 +- `help` - 查看所有命令 +- `help ` - 查看特定命令帮助 +- `clear` - 清屏 +- `exit` - 退出 + +### 键盘快捷键 +- **上/下箭头**: 浏览命令历史 +- **左/右箭头**: 移动光标 +- **退格键**: 删除字符 + +## 常用命令 + +### 文件操作 +```bash +ls -la # 列出文件(详细信息+隐藏文件) +cat file.txt # 查看文件内容 +mkdir -p dir/subdir # 创建目录 +cp -r source dest # 复制文件/目录 +mv old new # 移动/重命名 +rm -rf path # 删除文件/目录 +touch file.txt # 创建空文件 +``` + +### 虚拟机管理 +```bash +vm list -a # 列出所有虚拟机 +vm create config.toml # 创建虚拟机 +vm start 1 # 启动VM(ID=1) +vm stop -f 1 # 强制停止VM +vm status 1 # 查看VM状态 +vm show -c 1 # 查看VM配置 +``` + +### 系统信息 +```bash +pwd # 当前目录 +uname -a # 系统信息 +``` + +## 典型工作流 + +```bash +# 1. 检查环境 +ls -la + +# 2. 创建并启动虚拟机 +vm create linux.toml +vm start 1 + +# 3. 监控状态 +vm status 1 + +# 4. 停止虚拟机 +vm stop 1 +``` + +更多详细信息请使用 `help ` 查看具体命令的使用方法。 diff --git a/scripts/auto_interrupt.sh b/scripts/auto_interrupt.sh new file mode 100755 index 00000000..2b09847b --- /dev/null +++ b/scripts/auto_interrupt.sh @@ -0,0 +1,50 @@ +#!/bin/bash + +if [ $# -eq 0 ]; then + echo "Usage: $0 [arguments...]" + echo "Example: $0 ostool run uboot" + exit 1 +fi + +COMMAND=("$@") +echo "Executing command: ${COMMAND[*]}" + +"${COMMAND[@]}" 2>&1 | while IFS= read -r line; do + echo "$line" + + if [[ "$line" == *"[OK] Default guest initialized"* ]]; then + echo "Completion signal detected, exiting..." + + sleep 2 + + echo "Safely finding and killing QEMU processes..." + + # Get current script and parent process PIDs to avoid killing them + SCRIPT_PID=$$ + PARENT_PID=$PPID + + echo "Current script PID: $SCRIPT_PID" + echo "Parent process PID: $PARENT_PID" + + # Find QEMU processes, but exclude script-related processes + pgrep -f "qemu" 2>/dev/null | while read pid; do + # Check if it's a script-related process + if [ "$pid" != "$SCRIPT_PID" ] && [ "$pid" != "$PARENT_PID" ]; then + # Further check process command line + CMD=$(ps -p "$pid" -o cmd --no-headers 2>/dev/null) + if [[ "$CMD" == *"qemu-system"* ]]; then + echo "kill -9 $pid (QEMU system process)" + kill -9 "$pid" 2>/dev/null || true + else + echo "Skipping process $pid (not a QEMU system process): $CMD" + fi + else + echo "Skipping script-related process: $pid" + fi + done + + exit 0 + fi +done + +echo "Done" \ No newline at end of file diff --git a/src/main.rs b/src/main.rs index f5fa4ce0..351ace51 100644 --- a/src/main.rs +++ b/src/main.rs @@ -3,6 +3,7 @@ #[macro_use] extern crate log; + #[macro_use] extern crate alloc; @@ -17,6 +18,9 @@ extern crate axplat_aarch64_roc_rk3568_pc; #[cfg(feature = "plat-x86-qemu-q35")] extern crate axplat_x86_qemu_q35; +#[cfg(feature = "fs")] +mod shell; + mod hal; mod logo; mod task; @@ -33,5 +37,8 @@ fn main() { vmm::init(); vmm::start(); - info!("VMM shutdown"); + info!("[OK] Default guest initialized"); + + #[cfg(feature = "fs")] + shell::console_init(); } diff --git a/src/shell/command/base.rs b/src/shell/command/base.rs new file mode 100644 index 00000000..754f3d69 --- /dev/null +++ b/src/shell/command/base.rs @@ -0,0 +1,749 @@ +use std::collections::BTreeMap; +use std::fs::{self, File, FileType}; +use std::io::{self, Read, Write}; +use std::string::{String, ToString}; +use std::vec::Vec; +use std::{print, println}; + +use crate::shell::command::{CommandNode, FlagDef, ParsedCommand}; + +macro_rules! print_err { + ($cmd: literal, $msg: expr) => { + println!("{}: {}", $cmd, $msg); + }; + ($cmd: literal, $arg: expr, $err: expr) => { + println!("{}: {}: {}", $cmd, $arg, $err); + }; +} + +// Helper function: split whitespace +fn split_whitespace(s: &str) -> (&str, &str) { + let s = s.trim(); + if let Some(pos) = s.find(char::is_whitespace) { + let (first, rest) = s.split_at(pos); + (first, rest.trim()) + } else { + (s, "") + } +} + +fn do_ls(cmd: &ParsedCommand) { + let args = &cmd.positional_args; + let show_long = cmd.flags.get("long").unwrap_or(&false); + let show_all = cmd.flags.get("all").unwrap_or(&false); + + let _current_dir = std::env::current_dir().unwrap(); + + fn show_entry_info(path: &str, entry: &str, show_long: bool) -> io::Result<()> { + if show_long { + let metadata = fs::metadata(path)?; + let size = metadata.len(); + let file_type = metadata.file_type(); + let file_type_char = file_type_to_char(file_type); + let rwx = file_perm_to_rwx(metadata.permissions().mode()); + let rwx = unsafe { core::str::from_utf8_unchecked(&rwx) }; + println!("{}{} {:>8} {}", file_type_char, rwx, size, entry); + } else { + println!("{}", entry); + } + Ok(()) + } + + fn list_one(name: &str, print_name: bool, show_long: bool, show_all: bool) -> io::Result<()> { + let is_dir = fs::metadata(name)?.is_dir(); + if !is_dir { + return show_entry_info(name, name, show_long); + } + + if print_name { + println!("{}:", name); + } + + let mut entries = fs::read_dir(name)? + .filter_map(|e| e.ok()) + .map(|e| e.file_name()) + .filter(|name| show_all || !name.starts_with('.')) + .collect::>(); + entries.sort(); + + for entry in entries { + let path = format!("{name}/{entry}"); + if let Err(e) = show_entry_info(&path, &entry, show_long) { + print_err!("ls", path, e); + } + } + Ok(()) + } + + let targets = if args.is_empty() { + vec![".".to_string()] + } else { + args.clone() + }; + + for (i, name) in targets.iter().enumerate() { + if i > 0 { + println!(); + } + if let Err(e) = list_one(name, targets.len() > 1, *show_long, *show_all) { + print_err!("ls", name, e); + } + } +} + +fn do_cat(cmd: &ParsedCommand) { + let args = &cmd.positional_args; + + if args.is_empty() { + print_err!("cat", "no file specified"); + return; + } + + fn cat_one(fname: &str) -> io::Result<()> { + let mut buf = [0; 1024]; + let mut file = File::open(fname)?; + loop { + let n = file.read(&mut buf)?; + if n > 0 { + io::stdout().write_all(&buf[..n])?; + } else { + return Ok(()); + } + } + } + + for fname in args { + if let Err(e) = cat_one(fname) { + print_err!("cat", fname, e); + } + } +} + +fn do_echo(cmd: &ParsedCommand) { + let args = &cmd.positional_args; + let no_newline = cmd.flags.get("no-newline").unwrap_or(&false); + + let args_str = args.join(" "); + + fn echo_file(fname: &str, text_list: &[&str]) -> io::Result<()> { + let mut file = File::create(fname)?; + for text in text_list { + file.write_all(text.as_bytes())?; + } + Ok(()) + } + + if let Some(pos) = args_str.rfind('>') { + let text_before = args_str[..pos].trim(); + let (fname, text_after) = split_whitespace(&args_str[pos + 1..]); + if fname.is_empty() { + print_err!("echo", "no file specified"); + return; + }; + + let text_list = [ + text_before, + if !text_after.is_empty() { " " } else { "" }, + text_after, + if !no_newline { "\n" } else { "" }, + ]; + if let Err(e) = echo_file(fname, &text_list) { + print_err!("echo", fname, e); + } + } else if *no_newline { + print!("{}", args_str); + } else { + println!("{}", args_str); + } +} + +fn do_mkdir(cmd: &ParsedCommand) { + let args = &cmd.positional_args; + let create_parents = cmd.flags.get("parents").unwrap_or(&false); + + if args.is_empty() { + print_err!("mkdir", "missing operand"); + return; + } + + fn mkdir_one(path: &str, create_parents: bool) -> io::Result<()> { + if create_parents { + fs::create_dir_all(path) + } else { + fs::create_dir(path) + } + } + + for path in args { + if let Err(e) = mkdir_one(path, *create_parents) { + print_err!("mkdir", format_args!("cannot create directory '{path}'"), e); + } + } +} + +fn do_rm(cmd: &ParsedCommand) { + let args = &cmd.positional_args; + let rm_dir = cmd.flags.get("dir").unwrap_or(&false); + let recursive = cmd.flags.get("recursive").unwrap_or(&false); + let force = cmd.flags.get("force").unwrap_or(&false); + + if args.is_empty() { + print_err!("rm", "missing operand"); + return; + } + + fn rm_one(path: &str, rm_dir: bool, recursive: bool, force: bool) -> io::Result<()> { + let metadata = fs::metadata(path); + + if force && metadata.is_err() { + return Ok(()); // Ignore non-existent files when in force mode + } + + let metadata = metadata?; + + if metadata.is_dir() { + if recursive { + remove_dir_recursive(path, force) + } else if rm_dir { + fs::remove_dir(path) + } else { + Err(io::Error::Unsupported) + } + } else { + fs::remove_file(path) + } + } + + for path in args { + if let Err(e) = rm_one(path, *rm_dir, *recursive, *force) + && !force + { + print_err!("rm", format_args!("cannot remove '{path}'"), e); + } + } +} + +// Implementation of recursively deleting directories (manual recursion) +fn remove_dir_recursive(path: &str, _force: bool) -> io::Result<()> { + // Read directory contents + let entries = fs::read_dir(path)?; + + // Remove all child items + for entry_result in entries { + let entry = entry_result?; + let entry_path = format!("{}/{}", path, entry.file_name()); + let metadata = entry.file_type(); + + if metadata.is_dir() { + // Recursively delete subdirectory + remove_dir_recursive(&entry_path, _force)?; + } else { + // Delete file + fs::remove_file(&entry_path)?; + } + } + + // Delete empty directory + fs::remove_dir(path) +} + +fn do_cd(cmd: &ParsedCommand) { + let args = &cmd.positional_args; + + let target = if args.is_empty() { + "/" + } else if args.len() == 1 { + &args[0] + } else { + print_err!("cd", "too many arguments"); + return; + }; + + if let Err(e) = std::env::set_current_dir(target) { + print_err!("cd", target, e); + } +} + +fn do_pwd(cmd: &ParsedCommand) { + let _logical = cmd.flags.get("logical").unwrap_or(&false); + + let pwd = std::env::current_dir().unwrap(); + println!("{}", pwd); +} + +fn do_uname(cmd: &ParsedCommand) { + let show_all = cmd.flags.get("all").unwrap_or(&false); + let show_kernel = cmd.flags.get("kernel-name").unwrap_or(&false); + let show_arch = cmd.flags.get("machine").unwrap_or(&false); + + let arch = option_env!("AX_ARCH").unwrap_or(""); + let platform = option_env!("AX_PLATFORM").unwrap_or(""); + let smp = match option_env!("AX_SMP") { + None | Some("1") => "", + _ => " SMP", + }; + let version = option_env!("CARGO_PKG_VERSION").unwrap_or("0.1.0"); + + if *show_all { + println!( + "ArceOS {ver}{smp} {arch} {plat}", + ver = version, + smp = smp, + arch = arch, + plat = platform, + ); + } else if *show_kernel { + println!("ArceOS"); + } else if *show_arch { + println!("{}", arch); + } else { + println!( + "ArceOS {ver}{smp} {arch} {plat}", + ver = version, + smp = smp, + arch = arch, + plat = platform, + ); + } +} + +fn do_exit(cmd: &ParsedCommand) { + let args = &cmd.positional_args; + let exit_code = if args.is_empty() { + 0 + } else { + args[0].parse::().unwrap_or(0) + }; + + println!("Bye~"); + std::process::exit(exit_code); +} + +fn do_log(cmd: &ParsedCommand) { + let args = &cmd.positional_args; + + if args.is_empty() { + println!("Current log level: {:?}", log::max_level()); + return; + } + + match args[0].as_str() { + "on" | "enable" => log::set_max_level(log::LevelFilter::Info), + "off" | "disable" => log::set_max_level(log::LevelFilter::Off), + "error" => log::set_max_level(log::LevelFilter::Error), + "warn" => log::set_max_level(log::LevelFilter::Warn), + "info" => log::set_max_level(log::LevelFilter::Info), + "debug" => log::set_max_level(log::LevelFilter::Debug), + "trace" => log::set_max_level(log::LevelFilter::Trace), + level => { + println!("Unknown log level: {}", level); + println!("Available levels: off, error, warn, info, debug, trace"); + return; + } + } + println!("Log level set to: {:?}", log::max_level()); +} + +fn do_mv(cmd: &ParsedCommand) { + let args = &cmd.positional_args; + + if args.len() < 2 { + print_err!("mv", "missing operand"); + return; + } + + // If only two arguments, handle single file/dir move + if args.len() == 2 { + let source = &args[0]; + let dest = &args[1]; + + // Check if destination exists and is a directory + if let Ok(dest_meta) = fs::metadata(dest) + && dest_meta.is_dir() + { + // Move source into destination directory + let mut file_dir = fs::read_dir(dest).unwrap(); + let source_name = match file_dir.next() { + Some(name) => { + let dir_name = name.expect("Failed to read directory"); + let file = dir_name.file_name(); + format!("{dest}/{file}") + } + None => { + print_err!("mv", format_args!("invalid source path '{source}'")); + return; + } + }; + let dest_path = format!("{dest}/{source_name}"); + if let Err(e) = move_file_or_dir(source, &dest_path) { + print_err!( + "mv", + format_args!("cannot move '{source}' to '{dest_path}'"), + e + ); + } + return; + } + + // Direct rename/move + if let Err(e) = move_file_or_dir(source, dest) { + print_err!("mv", format_args!("cannot move '{source}' to '{dest}'"), e); + } + } else { + // Multiple sources - destination must be a directory + let dest = &args[args.len() - 1]; + let sources = &args[..args.len() - 1]; + + // Check if destination is a directory + match fs::metadata(dest) { + Ok(meta) if meta.is_dir() => { + // Move each source into destination directory + for source in sources { + let mut file_dir = fs::read_dir(source).unwrap(); + let source_name = match file_dir.next() { + Some(name) => { + let dir_name = name.expect("Failed to read directory"); + let file = dir_name.file_name(); + format!("{dest}/{file}") + } + None => { + print_err!("mv", format_args!("invalid source path '{source}'")); + return; + } + }; + let dest_path = format!("{dest}/{source_name}"); + if let Err(e) = move_file_or_dir(source, &dest_path) { + print_err!( + "mv", + format_args!("cannot move '{source}' to '{dest_path}'"), + e + ); + } + } + } + Ok(_) => { + print_err!("mv", format_args!("target '{dest}' is not a directory")); + } + Err(e) => { + print_err!("mv", format_args!("cannot access '{dest}'"), e); + } + } + } +} + +// Helper function to move file or directory (handles cross-filesystem moves) +fn move_file_or_dir(source: &str, dest: &str) -> io::Result<()> { + // Try simple rename first (works within same filesystem) + match fs::rename(source, dest) { + Ok(()) => Ok(()), + Err(_) => { + // If rename fails, try copy + delete (for cross-filesystem moves) + let src_meta = fs::metadata(source)?; + + if src_meta.is_dir() { + // For directories, use recursive copy then remove + copy_dir_recursive(source, dest)?; + remove_dir_recursive(source, false)?; + } else { + // For files, copy then remove + copy_file(source, dest)?; + fs::remove_file(source)?; + } + Ok(()) + } + } +} + +fn do_touch(cmd: &ParsedCommand) { + let args = &cmd.positional_args; + + if args.is_empty() { + print_err!("touch", "missing operand"); + return; + } + + for filename in args { + if let Err(e) = File::create(filename) { + print_err!("touch", filename, e); + } + } +} + +fn do_cp(cmd: &ParsedCommand) { + let args = &cmd.positional_args; + let recursive = cmd.flags.get("recursive").unwrap_or(&false); + + if args.len() < 2 { + print_err!("cp", "missing operand"); + return; + } + + let source = &args[0]; + let dest = &args[1]; + + // Check if source file/directory exists + let src_metadata = match fs::metadata(source) { + Ok(metadata) => metadata, + Err(e) => { + print_err!("cp", format_args!("cannot access '{source}'"), e); + return; + } + }; + + let result = if src_metadata.is_dir() { + if *recursive { + copy_dir_recursive(source, dest) + } else { + Err(io::Error::Unsupported) + } + } else { + copy_file(source, dest) + }; + + if let Err(e) = result { + print_err!("cp", format_args!("cannot copy '{source}' to '{dest}'"), e); + } +} + +// Manually implement file copy +fn copy_file(src: &str, dst: &str) -> io::Result<()> { + let mut src_file = File::open(src)?; + let mut dst_file = File::create(dst)?; + + let mut buffer = [0; 4096]; + loop { + let bytes_read = src_file.read(&mut buffer)?; + if bytes_read == 0 { + break; + } + dst_file.write_all(&buffer[..bytes_read])?; + } + Ok(()) +} + +// Recursively copy directory +fn copy_dir_recursive(src: &str, dst: &str) -> io::Result<()> { + // Create target directory + fs::create_dir(dst)?; + + // Read source directory contents + let entries = fs::read_dir(src)?; + + for entry_result in entries { + let entry = entry_result?; + let file_name = entry.file_name(); + let src_path = format!("{src}/{file_name}"); + let dst_path = format!("{dst}/{file_name}"); + + let metadata = entry.file_type(); + if metadata.is_dir() { + copy_dir_recursive(&src_path, &dst_path)?; + } else { + copy_file(&src_path, &dst_path)?; + } + } + Ok(()) +} + +fn file_type_to_char(ty: FileType) -> char { + if ty.is_char_device() { + 'c' + } else if ty.is_block_device() { + 'b' + } else if ty.is_socket() { + 's' + } else if ty.is_fifo() { + 'p' + } else if ty.is_symlink() { + 'l' + } else if ty.is_dir() { + 'd' + } else if ty.is_file() { + '-' + } else { + '?' + } +} + +#[rustfmt::skip] +const fn file_perm_to_rwx(mode: u32) -> [u8; 9] { + let mut perm = [b'-'; 9]; + macro_rules! set { + ($bit:literal, $rwx:literal) => { + if mode & (1 << $bit) != 0 { + perm[8 - $bit] = $rwx + } + }; + } + + set!(2, b'r'); set!(1, b'w'); set!(0, b'x'); + set!(5, b'r'); set!(4, b'w'); set!(3, b'x'); + set!(8, b'r'); set!(7, b'w'); set!(6, b'x'); + perm +} + +pub fn build_base_cmd(tree: &mut BTreeMap) { + // ls Command + tree.insert( + "ls".to_string(), + CommandNode::new("List directory contents") + .with_handler(do_ls) + .with_usage("ls [OPTIONS] [DIRECTORY...]") + .with_flag( + FlagDef::new("long", "Use long listing format") + .with_short('l') + .with_long("long"), + ) + .with_flag( + FlagDef::new("all", "Show hidden files") + .with_short('a') + .with_long("all"), + ), + ); + + // cat Command + tree.insert( + "cat".to_string(), + CommandNode::new("Display file contents") + .with_handler(do_cat) + .with_usage("cat [FILE2...]"), + ); + + // echo Command + tree.insert( + "echo".to_string(), + CommandNode::new("Display text") + .with_handler(do_echo) + .with_usage("echo [OPTIONS] [TEXT...]") + .with_flag( + FlagDef::new("no-newline", "Do not output trailing newline") + .with_short('n') + .with_long("no-newline"), + ), + ); + + // mkdir Command + tree.insert( + "mkdir".to_string(), + CommandNode::new("Create directories") + .with_handler(do_mkdir) + .with_usage("mkdir [OPTIONS] [DIRECTORY2...]") + .with_flag( + FlagDef::new("parents", "Create parent directories as needed") + .with_short('p') + .with_long("parents"), + ), + ); + + // rm Command + tree.insert( + "rm".to_string(), + CommandNode::new("Remove files and directories") + .with_handler(do_rm) + .with_usage("rm [OPTIONS] [FILE2...]") + .with_flag( + FlagDef::new("dir", "Remove empty directories") + .with_short('d') + .with_long("dir"), + ) + .with_flag( + FlagDef::new("recursive", "Remove directories recursively") + .with_short('r') + .with_long("recursive"), + ) + .with_flag( + FlagDef::new("force", "Force removal, ignore nonexistent files") + .with_short('f') + .with_long("force"), + ), + ); + + // cd Command + tree.insert( + "cd".to_string(), + CommandNode::new("Change directory") + .with_handler(do_cd) + .with_usage("cd [DIRECTORY]"), + ); + + // pwd Command + tree.insert( + "pwd".to_string(), + CommandNode::new("Print working directory") + .with_handler(do_pwd) + .with_usage("pwd [OPTIONS]") + .with_flag( + FlagDef::new("logical", "Use logical path") + .with_short('L') + .with_long("logical"), + ), + ); + + // uname Command + tree.insert( + "uname".to_string(), + CommandNode::new("System information") + .with_handler(do_uname) + .with_usage("uname [OPTIONS]") + .with_flag( + FlagDef::new("all", "Show all information") + .with_short('a') + .with_long("all"), + ) + .with_flag( + FlagDef::new("kernel-name", "Show kernel name") + .with_short('s') + .with_long("kernel-name"), + ) + .with_flag( + FlagDef::new("machine", "Show machine architecture") + .with_short('m') + .with_long("machine"), + ), + ); + + // exit Command + tree.insert( + "exit".to_string(), + CommandNode::new("Exit the shell") + .with_handler(do_exit) + .with_usage("exit [EXIT_CODE]"), + ); + + // log Command + tree.insert( + "log".to_string(), + CommandNode::new("Change log level") + .with_handler(do_log) + .with_usage("log [LEVEL]"), + ); + + // touch Command + tree.insert( + "touch".to_string(), + CommandNode::new("Create empty files") + .with_handler(do_touch) + .with_usage("touch [FILE2...]"), + ); + + // cp Command + tree.insert( + "cp".to_string(), + CommandNode::new("Copy files") + .with_handler(do_cp) + .with_usage("cp [OPTIONS] ") + .with_flag( + FlagDef::new("recursive", "Copy directories recursively") + .with_short('r') + .with_long("recursive"), + ), + ); + + // mv Command + tree.insert( + "mv".to_string(), + CommandNode::new("Move/rename files") + .with_handler(do_mv) + .with_usage("mv | mv [SOURCE2...] "), + ); +} diff --git a/src/shell/command/history.rs b/src/shell/command/history.rs new file mode 100644 index 00000000..9c13fc83 --- /dev/null +++ b/src/shell/command/history.rs @@ -0,0 +1,68 @@ +use std::io::prelude::*; +use std::{string::String, vec::Vec}; + +pub struct CommandHistory { + history: Vec, + current_index: usize, + max_size: usize, +} + +impl CommandHistory { + pub fn new(max_size: usize) -> Self { + Self { + history: Vec::new(), + current_index: 0, + max_size, + } + } + + pub fn add_command(&mut self, cmd: String) { + if !cmd.trim().is_empty() && self.history.last() != Some(&cmd) { + if self.history.len() >= self.max_size { + self.history.remove(0); + } + self.history.push(cmd); + } + self.current_index = self.history.len(); + } + + #[allow(dead_code)] + pub fn previous(&mut self) -> Option<&String> { + if self.current_index > 0 { + self.current_index -= 1; + self.history.get(self.current_index) + } else { + None + } + } + + #[allow(dead_code)] + pub fn next(&mut self) -> Option<&String> { + if self.current_index < self.history.len() { + self.current_index += 1; + if self.current_index < self.history.len() { + self.history.get(self.current_index) + } else { + None + } + } else { + None + } + } +} + +#[allow(unused_must_use)] +pub fn clear_line_and_redraw( + stdout: &mut dyn Write, + prompt: &str, + content: &str, + cursor_pos: usize, +) { + write!(stdout, "\r"); + write!(stdout, "\x1b[2K"); + write!(stdout, "{prompt}{content}"); + if cursor_pos < content.len() { + write!(stdout, "\x1b[{}D", content.len() - cursor_pos); + } + stdout.flush(); +} diff --git a/src/shell/command/mod.rs b/src/shell/command/mod.rs new file mode 100644 index 00000000..434dc5a2 --- /dev/null +++ b/src/shell/command/mod.rs @@ -0,0 +1,562 @@ +mod base; +mod history; +mod vm; + +pub use base::*; +pub use history::*; +pub use vm::*; + +use std::io::prelude::*; +use std::string::String; +use std::vec::Vec; +use std::{collections::BTreeMap, string::ToString}; +use std::{print, println}; + +lazy_static::lazy_static! { + pub static ref COMMAND_TREE: BTreeMap = build_command_tree(); +} + +#[derive(Debug, Clone)] +pub struct CommandNode { + handler: Option, + subcommands: BTreeMap, + description: &'static str, + usage: Option<&'static str>, + #[allow(dead_code)] + log_level: log::LevelFilter, + options: Vec, + flags: Vec, +} + +#[derive(Debug, Clone)] +pub struct OptionDef { + name: &'static str, + short: Option, + long: Option<&'static str>, + description: &'static str, + required: bool, +} + +#[derive(Debug, Clone)] +pub struct FlagDef { + name: &'static str, + short: Option, + long: Option<&'static str>, + description: &'static str, +} + +#[derive(Debug, Clone)] +pub struct ParsedCommand { + pub command_path: Vec, + pub options: BTreeMap, + pub flags: BTreeMap, + pub positional_args: Vec, +} + +#[derive(Debug)] +pub enum ParseError { + UnknownCommand(String), + UnknownOption(String), + MissingValue(String), + MissingRequiredOption(String), + NoHandler(String), +} + +impl CommandNode { + pub fn new(description: &'static str) -> Self { + Self { + handler: None, + subcommands: BTreeMap::new(), + description, + usage: None, + log_level: log::LevelFilter::Off, + options: Vec::new(), + flags: Vec::new(), + } + } + + pub fn with_handler(mut self, handler: fn(&ParsedCommand)) -> Self { + self.handler = Some(handler); + self + } + + pub fn with_usage(mut self, usage: &'static str) -> Self { + self.usage = Some(usage); + self + } + + #[allow(dead_code)] + pub fn with_log_level(mut self, level: log::LevelFilter) -> Self { + self.log_level = level; + self + } + + pub fn with_option(mut self, option: OptionDef) -> Self { + self.options.push(option); + self + } + + pub fn with_flag(mut self, flag: FlagDef) -> Self { + self.flags.push(flag); + self + } + + pub fn add_subcommand>(mut self, name: S, node: CommandNode) -> Self { + self.subcommands.insert(name.into(), node); + self + } +} + +impl OptionDef { + pub fn new(name: &'static str, description: &'static str) -> Self { + Self { + name, + short: None, + long: None, + description, + required: false, + } + } + + pub fn with_short(mut self, short: char) -> Self { + self.short = Some(short); + self + } + + pub fn with_long(mut self, long: &'static str) -> Self { + self.long = Some(long); + self + } + + #[allow(dead_code)] + pub fn required(mut self) -> Self { + self.required = true; + self + } +} + +impl FlagDef { + pub fn new(name: &'static str, description: &'static str) -> Self { + Self { + name, + short: None, + long: None, + description, + } + } + + pub fn with_short(mut self, short: char) -> Self { + self.short = Some(short); + self + } + + pub fn with_long(mut self, long: &'static str) -> Self { + self.long = Some(long); + self + } +} + +// Command Parser +pub struct CommandParser; + +impl CommandParser { + pub fn parse(input: &str) -> Result { + let tokens = Self::tokenize(input); + if tokens.is_empty() { + return Err(ParseError::UnknownCommand("empty command".to_string())); + } + + // Find the command path + let (command_path, command_node, remaining_tokens) = Self::find_command(&tokens)?; + + // Parse the arguments + let (options, flags, positional_args) = Self::parse_args(remaining_tokens, command_node)?; + + // Validate required options + Self::validate_required_options(command_node, &options)?; + + Ok(ParsedCommand { + command_path, + options, + flags, + positional_args, + }) + } + + fn tokenize(input: &str) -> Vec { + let mut tokens = Vec::new(); + let mut current_token = String::new(); + let mut in_quotes = false; + let mut escape_next = false; + + for ch in input.chars() { + if escape_next { + current_token.push(ch); + escape_next = false; + } else if ch == '\\' { + escape_next = true; + } else if ch == '"' { + in_quotes = !in_quotes; + } else if ch.is_whitespace() && !in_quotes { + if !current_token.is_empty() { + tokens.push(current_token.clone()); + current_token.clear(); + } + } else { + current_token.push(ch); + } + } + + if !current_token.is_empty() { + tokens.push(current_token); + } + + tokens + } + + fn find_command( + tokens: &[String], + ) -> Result<(Vec, &CommandNode, &[String]), ParseError> { + let mut current_node = COMMAND_TREE + .get(&tokens[0]) + .ok_or_else(|| ParseError::UnknownCommand(tokens[0].clone()))?; + + let mut command_path = vec![tokens[0].clone()]; + let mut token_index = 1; + + // Traverse to find the deepest command node + while token_index < tokens.len() { + if let Some(subcommand) = current_node.subcommands.get(&tokens[token_index]) { + current_node = subcommand; + command_path.push(tokens[token_index].clone()); + token_index += 1; + } else { + break; + } + } + + Ok((command_path, current_node, &tokens[token_index..])) + } + + #[allow(clippy::type_complexity)] + fn parse_args( + tokens: &[String], + command_node: &CommandNode, + ) -> Result< + ( + BTreeMap, + BTreeMap, + Vec, + ), + ParseError, + > { + let mut options = BTreeMap::new(); + let mut flags = BTreeMap::new(); + let mut positional_args = Vec::new(); + let mut i = 0; + + while i < tokens.len() { + let token = &tokens[i]; + + if let Some(name) = token.strip_prefix("--") { + // Long options/flags + if let Some(eq_pos) = name.find('=') { + // --option=value format + let (opt_name, value) = name.split_at(eq_pos); + let value = &value[1..]; // Skip '=' + if Self::is_option(opt_name, command_node) { + options.insert(opt_name.to_string(), value.to_string()); + } else { + return Err(ParseError::UnknownOption(format!("--{opt_name}"))); + } + } else if Self::is_flag(name, command_node) { + flags.insert(name.to_string(), true); + } else if Self::is_option(name, command_node) { + // --option value format + if i + 1 >= tokens.len() { + return Err(ParseError::MissingValue(format!("--{name}"))); + } + options.insert(name.to_string(), tokens[i + 1].clone()); + i += 1; // Skip value + } else { + return Err(ParseError::UnknownOption(format!("--{name}"))); + } + } else if token.starts_with('-') && token.len() > 1 { + // Short options/flags + let chars: Vec = token[1..].chars().collect(); + for (j, &ch) in chars.iter().enumerate() { + if Self::is_short_flag(ch, command_node) { + flags.insert( + Self::get_flag_name_by_short(ch, command_node) + .unwrap() + .to_string(), + true, + ); + } else if Self::is_short_option(ch, command_node) { + let opt_name = Self::get_option_name_by_short(ch, command_node).unwrap(); + if j == chars.len() - 1 && i + 1 < tokens.len() { + // Last character and there is a next token as value + options.insert(opt_name.to_string(), tokens[i + 1].clone()); + i += 1; // Skip value + } else { + return Err(ParseError::MissingValue(format!("-{ch}"))); + } + } else { + return Err(ParseError::UnknownOption(format!("-{ch}"))); + } + } + } else { + // Positional arguments + positional_args.push(token.clone()); + } + i += 1; + } + + Ok((options, flags, positional_args)) + } + + fn is_option(name: &str, node: &CommandNode) -> bool { + node.options + .iter() + .any(|opt| (opt.long == Some(name)) || opt.name == name) + } + + fn is_flag(name: &str, node: &CommandNode) -> bool { + node.flags + .iter() + .any(|flag| (flag.long == Some(name)) || flag.name == name) + } + + fn is_short_option(ch: char, node: &CommandNode) -> bool { + node.options.iter().any(|opt| opt.short == Some(ch)) + } + + fn is_short_flag(ch: char, node: &CommandNode) -> bool { + node.flags.iter().any(|flag| flag.short == Some(ch)) + } + + fn get_option_name_by_short(ch: char, node: &CommandNode) -> Option<&str> { + node.options + .iter() + .find(|opt| opt.short == Some(ch)) + .map(|opt| opt.name) + } + + fn get_flag_name_by_short(ch: char, node: &CommandNode) -> Option<&str> { + node.flags + .iter() + .find(|flag| flag.short == Some(ch)) + .map(|flag| flag.name) + } + + fn validate_required_options( + node: &CommandNode, + options: &BTreeMap, + ) -> Result<(), ParseError> { + for option in &node.options { + if option.required && !options.contains_key(option.name) { + return Err(ParseError::MissingRequiredOption(option.name.to_string())); + } + } + Ok(()) + } +} + +// Command execution function +pub fn execute_command(input: &str) -> Result<(), ParseError> { + let parsed = CommandParser::parse(input)?; + + // Find the corresponding command node + let mut current_node = COMMAND_TREE.get(&parsed.command_path[0]).unwrap(); + for cmd in &parsed.command_path[1..] { + current_node = current_node.subcommands.get(cmd).unwrap(); + } + + // Execute the command + if let Some(handler) = current_node.handler { + handler(&parsed); + Ok(()) + } else { + Err(ParseError::NoHandler(parsed.command_path.join(" "))) + } +} + +// Build command tree +fn build_command_tree() -> BTreeMap { + let mut tree = BTreeMap::new(); + + build_base_cmd(&mut tree); + build_vm_cmd(&mut tree); + + tree +} + +// Helper function: Display command help +pub fn show_help(command_path: &[String]) -> Result<(), ParseError> { + let mut current_node = COMMAND_TREE + .get(&command_path[0]) + .ok_or_else(|| ParseError::UnknownCommand(command_path[0].clone()))?; + + for cmd in &command_path[1..] { + current_node = current_node + .subcommands + .get(cmd) + .ok_or_else(|| ParseError::UnknownCommand(cmd.clone()))?; + } + + println!("Command: {}", command_path.join(" ")); + println!("Description: {}", current_node.description); + + if let Some(usage) = current_node.usage { + println!("Usage: {}", usage); + } + + if !current_node.options.is_empty() { + println!("\nOptions:"); + for option in ¤t_node.options { + let mut opt_str = String::new(); + if let Some(short) = option.short { + opt_str.push_str(&format!("-{short}")); + } + if let Some(long) = option.long { + if !opt_str.is_empty() { + opt_str.push_str(", "); + } + opt_str.push_str(&format!("--{long}")); + } + if opt_str.is_empty() { + opt_str = option.name.to_string(); + } + + let required_str = if option.required { " (required)" } else { "" }; + println!(" {:<20} {}{}", opt_str, option.description, required_str); + } + } + + if !current_node.flags.is_empty() { + println!("\nFlags:"); + for flag in ¤t_node.flags { + let mut flag_str = String::new(); + if let Some(short) = flag.short { + flag_str.push_str(&format!("-{short}")); + } + if let Some(long) = flag.long { + if !flag_str.is_empty() { + flag_str.push_str(", "); + } + flag_str.push_str(&format!("--{long}")); + } + if flag_str.is_empty() { + flag_str = flag.name.to_string(); + } + + println!(" {:<20} {}", flag_str, flag.description); + } + } + + if !current_node.subcommands.is_empty() { + println!("\nSubcommands:"); + for (name, node) in ¤t_node.subcommands { + println!(" {:<20} {}", name, node.description); + } + } + + Ok(()) +} + +pub fn print_prompt() { + print!("axvisor:{}$ ", std::env::current_dir().unwrap()); + std::io::stdout().flush().unwrap(); +} + +pub fn run_cmd_bytes(cmd_bytes: &[u8]) { + match str::from_utf8(cmd_bytes) { + Ok(cmd_str) => { + let trimmed = cmd_str.trim(); + if trimmed.is_empty() { + return; + } + + match execute_command(trimmed) { + Ok(_) => { + // Command executed successfully + } + Err(ParseError::UnknownCommand(cmd)) => { + println!("Error: Unknown command '{}'", cmd); + println!("Type 'help' to see available commands"); + } + Err(ParseError::UnknownOption(opt)) => { + println!("Error: Unknown option '{}'", opt); + } + Err(ParseError::MissingValue(opt)) => { + println!("Error: Option '{}' is missing a value", opt); + } + Err(ParseError::MissingRequiredOption(opt)) => { + println!("Error: Missing required option '{}'", opt); + } + Err(ParseError::NoHandler(cmd)) => { + println!("Error: Command '{}' has no handler function", cmd); + } + } + } + Err(_) => { + println!("Error: Input contains invalid UTF-8 characters"); + } + } +} + +// Built-in command handler +pub fn handle_builtin_commands(input: &str) -> bool { + match input.trim() { + "help" => { + show_available_commands(); + true + } + "exit" | "quit" => { + println!("Goodbye!"); + std::process::exit(0); + } + "clear" => { + print!("\x1b[2J\x1b[H"); // ANSI clear screen sequence + std::io::stdout().flush().unwrap(); + true + } + _ if input.starts_with("help ") => { + let cmd_parts: Vec = input[5..] + .split_whitespace() + .map(|s| s.to_string()) + .collect(); + if let Err(e) = show_help(&cmd_parts) { + println!("Error: {:?}", e); + } + true + } + _ => false, + } +} + +pub fn show_available_commands() { + println!("ArceOS Shell - Available Commands:"); + println!(); + + // Display all top-level commands + for (name, node) in COMMAND_TREE.iter() { + println!(" {:<15} {}", name, node.description); + + // Display subcommands + if !node.subcommands.is_empty() { + for (sub_name, sub_node) in &node.subcommands { + println!(" {:<13} {}", sub_name, sub_node.description); + } + } + } + + println!(); + println!("Built-in Commands:"); + println!(" help Show help information"); + println!(" help Show help for a specific command"); + println!(" clear Clear the screen"); + println!(" exit/quit Exit the shell"); + println!(); + println!("Tip: Use 'help ' to see detailed usage of a command"); +} diff --git a/src/shell/command/vm.rs b/src/shell/command/vm.rs new file mode 100644 index 00000000..3f6ba782 --- /dev/null +++ b/src/shell/command/vm.rs @@ -0,0 +1,821 @@ +use std::{ + collections::btree_map::BTreeMap, + fs::read_to_string, + println, + string::{String, ToString}, + vec::Vec, +}; + +use crate::{ + shell::command::{CommandNode, FlagDef, OptionDef, ParsedCommand}, + vmm::{ + add_running_vm_count, config::init_guest_vm, get_running_vm_count, vcpus, vm_list, with_vm, + }, +}; + +fn vm_help(_cmd: &ParsedCommand) { + println!("VM - virtual machine management"); + println!("Most commonly used vm commands:"); + println!(" create Create a new virtual machine"); + println!(" start Start a virtual machine"); + println!(" stop Stop a virtual machine"); + println!(" restart Restart a virtual machine"); + println!(" delete Delete a virtual machine"); + println!(" list Show virtual machine lists"); + println!(" show Show virtual machine details"); + println!(" status Show virtual machine status"); + println!(); + println!("Use 'vm --help' for more information on a specific command."); +} + +fn vm_create(cmd: &ParsedCommand) { + let args = &cmd.positional_args; + + println!("Positional args: {:?}", args); + + if args.is_empty() { + println!("Error: No VM configuration file specified"); + println!("Usage: vm create [CONFIG_FILE]"); + return; + } + + let initial_vm_count = vm_list::get_vm_list().len(); + + let mut processed_count = 0; + for config_path in args.iter() { + println!("Creating VM from config: {}", config_path); + + match read_to_string(config_path) { + Ok(raw_cfg) => match init_guest_vm(&raw_cfg) { + Ok(_) => { + println!("✓ Successfully created VM from config: {}", config_path); + processed_count += 1; + } + Err(_) => { + println!( + "✗ Failed to create VM from {}: Configuration error or panic occurred", + config_path + ); + } + }, + Err(e) => { + println!("✗ Failed to read config file {}: {:?}", config_path, e); + } + } + } + + // Check the actual number of VMs created + let final_vm_count = vm_list::get_vm_list().len(); + let created_count = final_vm_count - initial_vm_count; + + if created_count > 0 { + println!("Successfully created {} VM(s)", created_count); + } else if processed_count > 0 { + println!( + "Processed {} config file(s) but no VMs were actually created", + processed_count + ); + } +} + +fn vm_start(cmd: &ParsedCommand) { + let args = &cmd.positional_args; + let detach = cmd.flags.get("detach").unwrap_or(&false); + + if args.is_empty() { + // start all VMs + info!("VMM starting, booting all VMs..."); + let mut started_count = 0; + + for vm in vm_list::get_vm_list() { + // Set up primary virtual CPU before starting + vcpus::setup_vm_primary_vcpu(vm.clone()); + + match vm.boot() { + Ok(_) => { + vcpus::notify_primary_vcpu(vm.id()); + add_running_vm_count(1); + println!("✓ VM[{}] started successfully", vm.id()); + started_count += 1; + } + Err(err) => { + println!("✗ VM[{}] failed to start: {:?}", vm.id(), err); + } + } + } + println!("Started {} VM(s)", started_count); + } else { + // Start specified VMs + for vm_name in args { + // Try to parse as VM ID or lookup VM name + if let Ok(vm_id) = vm_name.parse::() { + start_vm_by_id(vm_id); + } else { + println!("Error: VM name lookup not implemented. Use VM ID instead."); + println!("Available VMs:"); + vm_list_simple(); + } + } + } + + if *detach { + println!("VMs started in background mode"); + } +} + +fn start_vm_by_id(vm_id: usize) { + // Set up primary virtual CPU before starting + match with_vm(vm_id, |vm| { + vcpus::setup_vm_primary_vcpu(vm.clone()); + vm.boot() + }) { + Some(Ok(_)) => { + vcpus::notify_primary_vcpu(vm_id); + add_running_vm_count(1); + println!("✓ VM[{}] started successfully", vm_id); + } + Some(Err(err)) => { + println!("✗ VM[{}] failed to start: {:?}", vm_id, err); + } + None => { + println!("✗ VM[{}] not found", vm_id); + } + } +} + +fn vm_stop(cmd: &ParsedCommand) { + let args = &cmd.positional_args; + let force = cmd.flags.get("force").unwrap_or(&false); + + if args.is_empty() { + println!("Error: No VM specified"); + println!("Usage: vm stop [OPTIONS] "); + return; + } + + for vm_name in args { + if let Ok(vm_id) = vm_name.parse::() { + stop_vm_by_id(vm_id, *force); + } else { + println!("Error: Invalid VM ID: {}", vm_name); + } + } +} + +fn stop_vm_by_id(vm_id: usize, force: bool) { + match with_vm(vm_id, |vm| { + if force { + println!("Force stopping VM[{}]...", vm_id); + // Force shutdown, directly call shutdown + vm.shutdown() + } else { + println!("Stopping VM[{}]...", vm_id); + vm.shutdown() + } + }) { + Some(Ok(_)) => { + println!("✓ VM[{}] stopped successfully", vm_id); + } + Some(Err(err)) => { + println!("✗ Failed to stop VM[{}]: {:?}", vm_id, err); + } + None => { + println!("✗ VM[{}] not found", vm_id); + } + } +} + +fn vm_restart(cmd: &ParsedCommand) { + let args = &cmd.positional_args; + let force = cmd.flags.get("force").unwrap_or(&false); + + if args.is_empty() { + println!("Error: No VM specified"); + println!("Usage: vm restart [OPTIONS] "); + return; + } + + for vm_name in args { + if let Ok(vm_id) = vm_name.parse::() { + restart_vm_by_id(vm_id, *force); + } else { + println!("Error: Invalid VM ID: {}", vm_name); + } + } +} + +fn restart_vm_by_id(vm_id: usize, force: bool) { + println!("Restarting VM[{}]...", vm_id); + + // First stop the virtual machine + stop_vm_by_id(vm_id, force); + + // Wait for a period to ensure complete shutdown + // In actual implementation, more complex state checking may be needed + + // Restart the virtual machine + start_vm_by_id(vm_id); +} + +fn vm_delete(cmd: &ParsedCommand) { + let args = &cmd.positional_args; + let force = cmd.flags.get("force").unwrap_or(&false); + let keep_data = cmd.flags.get("keep-data").unwrap_or(&false); + + if args.is_empty() { + println!("Error: No VM specified"); + println!("Usage: vm delete [OPTIONS] "); + return; + } + + let vm_name = &args[0]; + + if let Ok(vm_id) = vm_name.parse::() { + if !force { + println!( + "Are you sure you want to delete VM[{}]? (This operation cannot be undone)", + vm_id + ); + println!("Use --force to skip confirmation"); + return; + } + + delete_vm_by_id(vm_id, *keep_data); + } else { + println!("Error: Invalid VM ID: {}", vm_name); + } +} + +fn delete_vm_by_id(vm_id: usize, keep_data: bool) { + // First ensure VM is stopped + with_vm(vm_id, |vm| vm.shutdown()).unwrap_or(Ok(())).ok(); + + // Remove VM from global list + match crate::vmm::vm_list::remove_vm(vm_id) { + Some(_) => { + if keep_data { + println!("✓ VM[{}] deleted (data preserved)", vm_id); + } else { + println!("✓ VM[{}] deleted completely", vm_id); + // Here all VM-related data files should be cleaned up + } + } + None => { + println!("✗ VM[{}] not found", vm_id); + } + } +} + +fn vm_list_simple() { + let vms = vm_list::get_vm_list(); + println!("ID NAME STATE VCPU MEMORY"); + println!("---- ----------- ------- ---- ------"); + for vm in vms { + let state = if vm.running() { + "running" + } else if vm.shutting_down() { + "stopping" + } else { + "stopped" + }; + + // Calculate total memory size + let total_memory: usize = vm.memory_regions().iter().map(|region| region.size()).sum(); + + println!( + "{:<4} {:<11} {:<7} {:<4} {}MB", + vm.id(), + vm.with_config(|cfg| cfg.name()), + state, + vm.vcpu_num(), + total_memory / (1024 * 1024) // Convert to MB + ); + } +} + +fn vm_list(cmd: &ParsedCommand) { + let show_all = cmd.flags.get("all").unwrap_or(&false); + let binding = "table".to_string(); + let format = cmd.options.get("format").unwrap_or(&binding); + + let vms = vm_list::get_vm_list(); + + if format == "json" { + println!("{{"); + println!(" \"vms\": ["); + for (i, vm) in vms.iter().enumerate() { + let state = if vm.running() { + "running" + } else if vm.shutting_down() { + "stopping" + } else { + "stopped" + }; + + let total_memory: usize = vm.memory_regions().iter().map(|region| region.size()).sum(); + + println!(" {{"); + println!(" \"id\": {},", vm.id()); + println!(" \"name\": \"{}\",", vm.with_config(|cfg| cfg.name())); + println!(" \"state\": \"{}\",", state); + println!(" \"vcpu\": {},", vm.vcpu_num()); + println!(" \"memory\": \"{}MB\",", total_memory / (1024 * 1024)); + println!( + " \"interrupt_mode\": \"{:?}\"", + vm.with_config(|cfg| cfg.interrupt_mode()) + ); + + if i < vms.len() - 1 { + println!(" }},"); + } else { + println!(" }}"); + } + } + println!(" ]"); + println!("}}"); + } else { + println!("Virtual Machines:"); + if vms.is_empty() { + println!("No virtual machines found."); + return; + } + + // Count running VMs before filtering + let running_count = vms.iter().filter(|vm| vm.running()).count(); + let total_count = vms.len(); + + // Filter displayed VMs + let display_vms: Vec<_> = if *show_all { + vms + } else { + vms.into_iter().filter(|vm| vm.running()).collect() + }; + + if display_vms.is_empty() && !*show_all { + println!("No running virtual machines found."); + println!("Use --all to show all VMs including stopped ones."); + return; + } + + println!("ID NAME STATE VCPU MEMORY"); + println!("---- ----------- ------- ---- ------"); + for vm in display_vms { + let state = if vm.running() { + "🟢 running" + } else if vm.shutting_down() { + "🟡 stopping" + } else { + "🔴 stopped" + }; + + let total_memory: usize = vm.memory_regions().iter().map(|region| region.size()).sum(); + + println!( + "{:<4} {:<11} {:<9} {:<4} {:<8}", + vm.id(), + vm.with_config(|cfg| cfg.name()), + state, + vm.vcpu_num(), + format!("{}MB", total_memory / (1024 * 1024)) + ); + } + + if !show_all && running_count < total_count { + println!( + "\nShowing {} running VMs. Use --all to show all {} VMs.", + running_count, total_count + ); + } + } +} + +fn vm_show(cmd: &ParsedCommand) { + let args = &cmd.positional_args; + let show_config = cmd.flags.get("config").unwrap_or(&false); + let show_stats = cmd.flags.get("stats").unwrap_or(&false); + + if args.is_empty() { + println!("Error: No VM specified"); + println!("Usage: vm show [OPTIONS] "); + return; + } + + let vm_name = &args[0]; + if let Ok(vm_id) = vm_name.parse::() { + show_vm_details(vm_id, *show_config, *show_stats); + } else { + println!("Error: Invalid VM ID: {}", vm_name); + } +} + +/// Show detailed information about a specific VM. +fn show_vm_details(vm_id: usize, show_config: bool, show_stats: bool) { + match with_vm(vm_id, |vm| { + let state = if vm.running() { + "🟢 running" + } else if vm.shutting_down() { + "🟡 stopping" + } else { + "🔴 stopped" + }; + + println!("VM Details: {}", vm_id); + println!(" ID: {}", vm.id()); + println!(" Name: {}", vm.with_config(|cfg| cfg.name())); + println!(" State: {}", state); + println!(" VCPUs: {}", vm.vcpu_num()); + + // show VCPU information + println!(" VCPU List:"); + for (i, vcpu) in vm.vcpu_list().iter().enumerate() { + if let Some(phys_cpu_set) = vcpu.phys_cpu_set() { + println!(" VCPU[{}]: CPU affinity mask = {:#x}", i, phys_cpu_set); + } else { + println!(" VCPU[{}]: No CPU affinity set", i); + } + } + + if show_config { + println!(); + println!("Configuration:"); + vm.with_config(|cfg| { + println!(" BSP Entry: {:#x}", cfg.bsp_entry().as_usize()); + println!(" AP Entry: {:#x}", cfg.ap_entry().as_usize()); + println!(" Interrupt Mode: {:?}", cfg.interrupt_mode()); + + // show passthrough devices + if !cfg.pass_through_devices().is_empty() { + println!(" Passthrough Devices:"); + for device in cfg.pass_through_devices() { + println!( + " {}: GPA[{:#x}~{:#x}] -> HPA[{:#x}~{:#x}]", + device.name, + device.base_gpa, + device.base_gpa + device.length, + device.base_hpa, + device.base_hpa + device.length + ); + } + } + + // show emulated devices + if !cfg.emu_devices().is_empty() { + println!(" Emulated Devices:"); + for device in cfg.emu_devices() { + println!(" {:?}", device); + } + } + }); + } + + if show_stats { + println!(); + println!("Statistics:"); + println!(" EPT Root: {:#x}", vm.ept_root().as_usize()); + println!( + " Device Count: {}", + vm.get_devices().iter_mmio_dev().count() + ); + + let mut vcpu_states = BTreeMap::new(); + for vcpu in vm.vcpu_list() { + let state_key = match vcpu.state() { + axvcpu::VCpuState::Free => "Free", + axvcpu::VCpuState::Running => "Running", + axvcpu::VCpuState::Blocked => "Blocked", + axvcpu::VCpuState::Invalid => "Invalid", + axvcpu::VCpuState::Created => "Created", + axvcpu::VCpuState::Ready => "Ready", + }; + *vcpu_states.entry(state_key).or_insert(0) += 1; + } + + println!(" VCPU States:"); + for (state, count) in vcpu_states { + println!(" {}: {}", state, count); + } + } + }) { + Some(_) => {} + None => { + println!("✗ VM[{}] not found", vm_id); + } + } +} + +fn vm_status(cmd: &ParsedCommand) { + let args = &cmd.positional_args; + let watch = cmd.flags.get("watch").unwrap_or(&false); + + if args.is_empty() { + // show all VM status + show_all_vm_status(*watch); + return; + } + + let vm_name = &args[0]; + if let Ok(vm_id) = vm_name.parse::() { + show_vm_status(vm_id, *watch); + } else { + println!("Error: Invalid VM ID: {}", vm_name); + } +} + +/// Show status of a specific VM. +fn show_vm_status(vm_id: usize, watch: bool) { + if watch { + println!("Watching VM[{}] status (press Ctrl+C to stop):", vm_id); + // TODO: add real-time status information + } + + match with_vm(vm_id, |vm| { + let state = if vm.running() { + "🟢 running" + } else if vm.shutting_down() { + "🟡 stopping" + } else { + "🔴 stopped" + }; + + println!("Virtual machine status for VM[{}]:", vm_id); + println!(" ID: {}", vm.id()); + println!(" Name: {}", vm.with_config(|cfg| cfg.name())); + println!(" State: {}", state); + println!(" VCPUs: {}", vm.vcpu_num()); + + // Calculate total memory + let total_memory: usize = vm.memory_regions().iter().map(|region| region.size()).sum(); + + println!(" Total Memory: {}MB", total_memory / (1024 * 1024)); + + // Show memory region details + println!(" Memory Regions:"); + for (i, region) in vm.memory_regions().iter().enumerate() { + println!( + " Region[{}]: GPA[{:#x}~{:#x}] Size={}KB", + i, + region.gpa, + region.gpa + region.size(), + region.size() / 1024 + ); + } + + println!(" VCPU Details:"); + for vcpu in vm.vcpu_list() { + let vcpu_state = match vcpu.state() { + axvcpu::VCpuState::Free => "Free", + axvcpu::VCpuState::Running => "Running", + axvcpu::VCpuState::Blocked => "Blocked", + axvcpu::VCpuState::Invalid => "Invalid", + axvcpu::VCpuState::Created => "Created", + axvcpu::VCpuState::Ready => "Ready", + }; + + if let Some(phys_cpu_set) = vcpu.phys_cpu_set() { + println!( + " VCPU[{}]: {} (CPU affinity: {:#x})", + vcpu.id(), + vcpu_state, + phys_cpu_set + ); + } else { + println!(" VCPU[{}]: {} (No CPU affinity)", vcpu.id(), vcpu_state); + } + } + + // show device information + let mmio_dev_count = vm.get_devices().iter_mmio_dev().count(); + println!(" Devices: {} MMIO devices", mmio_dev_count); + + // TODO: add more real-time status information + // println!(" Network: connected/disconnected"); + // println!(" Uptime: {} seconds", uptime); + }) { + Some(_) => {} + None => { + println!("✗ VM[{}] not found", vm_id); + } + } +} + +/// Show status of all VMs in a summary format. +fn show_all_vm_status(watch: bool) { + if watch { + println!("Watching all VMs status (press Ctrl+C to stop):"); + } + + let vms = vm_list::get_vm_list(); + if vms.is_empty() { + println!("No virtual machines found."); + return; + } + + println!("System Status:"); + println!(" Total VMs: {}", vms.len()); + println!(" Running VMs: {}", get_running_vm_count()); + + let mut running_count = 0; + let mut stopping_count = 0; + let mut stopped_count = 0; + let mut total_vcpus = 0; + let mut total_memory = 0; + + for vm in &vms { + if vm.running() { + running_count += 1; + } else if vm.shutting_down() { + stopping_count += 1; + } else { + stopped_count += 1; + } + + total_vcpus += vm.vcpu_num(); + total_memory += vm + .memory_regions() + .iter() + .map(|region| region.size()) + .sum::(); + } + + println!(" Total VCPUs: {}", total_vcpus); + println!(" Total Memory: {}MB", total_memory / (1024 * 1024)); + println!(); + + println!("VM Status Overview:"); + println!(" 🟢 Running: {}", running_count); + println!(" 🟡 Stopping: {}", stopping_count); + println!(" 🔴 Stopped: {}", stopped_count); + println!(); + + println!("Individual VM Status:"); + for vm in vms { + let state_icon = if vm.running() { + "🟢" + } else if vm.shutting_down() { + "🟡" + } else { + "🔴" + }; + + let vm_memory: usize = vm.memory_regions().iter().map(|region| region.size()).sum(); + + println!( + " {} VM[{}] {} ({} VCPUs, {}MB)", + state_icon, + vm.id(), + vm.with_config(|cfg| cfg.name()), + vm.vcpu_num(), + vm_memory / (1024 * 1024), + ); + + if vm.running() { + let mut vcpu_summary = BTreeMap::new(); + for vcpu in vm.vcpu_list() { + let state = match vcpu.state() { + axvcpu::VCpuState::Free => "Free", + axvcpu::VCpuState::Running => "Running", + axvcpu::VCpuState::Blocked => "Blocked", + axvcpu::VCpuState::Invalid => "Invalid", + axvcpu::VCpuState::Created => "Created", + axvcpu::VCpuState::Ready => "Ready", + }; + *vcpu_summary.entry(state).or_insert(0) += 1; + } + + let summary_str: Vec = vcpu_summary + .into_iter() + .map(|(state, count)| format!("{state}:{count}")) + .collect(); + + if !summary_str.is_empty() { + println!(" VCPUs: {}", summary_str.join(", ")); + } + } + } +} + +/// Build the VM command tree and register it. +pub fn build_vm_cmd(tree: &mut BTreeMap) { + let create_cmd = CommandNode::new("Create a new virtual machine") + .with_handler(vm_create) + .with_usage("vm create [OPTIONS] ...") + .with_option( + OptionDef::new("name", "Virtual machine name") + .with_short('n') + .with_long("name"), + ) + .with_option( + OptionDef::new("cpu", "Number of CPU cores") + .with_short('c') + .with_long("cpu"), + ) + .with_option( + OptionDef::new("memory", "Amount of memory") + .with_short('m') + .with_long("memory"), + ) + .with_flag( + FlagDef::new("force", "Force creation without confirmation") + .with_short('f') + .with_long("force"), + ); + + let start_cmd = CommandNode::new("Start a virtual machine") + .with_handler(vm_start) + .with_usage("vm start [OPTIONS] [VM_ID...]") + .with_flag( + FlagDef::new("detach", "Start in background") + .with_short('d') + .with_long("detach"), + ) + .with_flag( + FlagDef::new("console", "Attach to console") + .with_short('c') + .with_long("console"), + ); + + let stop_cmd = CommandNode::new("Stop a virtual machine") + .with_handler(vm_stop) + .with_usage("vm stop [OPTIONS] ...") + .with_flag( + FlagDef::new("force", "Force stop") + .with_short('f') + .with_long("force"), + ) + .with_flag( + FlagDef::new("graceful", "Graceful shutdown") + .with_short('g') + .with_long("graceful"), + ); + + let restart_cmd = CommandNode::new("Restart a virtual machine") + .with_handler(vm_restart) + .with_usage("vm restart [OPTIONS] ...") + .with_flag( + FlagDef::new("force", "Force restart") + .with_short('f') + .with_long("force"), + ); + + let delete_cmd = CommandNode::new("Delete a virtual machine") + .with_handler(vm_delete) + .with_usage("vm delete [OPTIONS] ") + .with_flag( + FlagDef::new("force", "Skip confirmation") + .with_short('f') + .with_long("force"), + ) + .with_flag(FlagDef::new("keep-data", "Keep VM data").with_long("keep-data")); + + let list_cmd = CommandNode::new("Show virtual machine lists") + .with_handler(vm_list) + .with_usage("vm list [OPTIONS]") + .with_flag( + FlagDef::new("all", "Show all VMs including stopped ones") + .with_short('a') + .with_long("all"), + ) + .with_option(OptionDef::new("format", "Output format (table, json)").with_long("format")); + + let show_cmd = CommandNode::new("Show virtual machine details") + .with_handler(vm_show) + .with_usage("vm show [OPTIONS] ") + .with_flag( + FlagDef::new("config", "Show configuration") + .with_short('c') + .with_long("config"), + ) + .with_flag( + FlagDef::new("stats", "Show statistics") + .with_short('s') + .with_long("stats"), + ); + + let status_cmd = CommandNode::new("Show virtual machine status") + .with_handler(vm_status) + .with_usage("vm status [OPTIONS] [VM_ID]") + .with_flag( + FlagDef::new("watch", "Watch status changes") + .with_short('w') + .with_long("watch"), + ); + + // main VM command + let vm_node = CommandNode::new("Virtual machine management") + .with_handler(vm_help) + .with_usage("vm [options] [args...]") + .add_subcommand( + "help", + CommandNode::new("Show VM help").with_handler(vm_help), + ) + .add_subcommand("create", create_cmd) + .add_subcommand("start", start_cmd) + .add_subcommand("stop", stop_cmd) + .add_subcommand("restart", restart_cmd) + .add_subcommand("delete", delete_cmd) + .add_subcommand("list", list_cmd) + .add_subcommand("show", show_cmd) + .add_subcommand("status", status_cmd); + + tree.insert("vm".to_string(), vm_node); +} diff --git a/src/shell/mod.rs b/src/shell/mod.rs new file mode 100644 index 00000000..5af82752 --- /dev/null +++ b/src/shell/mod.rs @@ -0,0 +1,209 @@ +mod command; + +use std::io::prelude::*; +use std::println; +use std::string::ToString; + +use crate::shell::command::{ + CommandHistory, clear_line_and_redraw, handle_builtin_commands, print_prompt, run_cmd_bytes, +}; + +const LF: u8 = b'\n'; +const CR: u8 = b'\r'; +const DL: u8 = b'\x7f'; +const BS: u8 = b'\x08'; +const ESC: u8 = 0x1b; // ESC key + +const MAX_LINE_LEN: usize = 256; + +// Initialize the console shell. +pub fn console_init() { + let mut stdin = std::io::stdin(); + let mut stdout = std::io::stdout(); + let mut history = CommandHistory::new(100); + + let mut buf = [0; MAX_LINE_LEN]; + let mut cursor = 0; // cursor position in buffer + let mut line_len = 0; // actual length of current line + + enum InputState { + Normal, + Escape, + EscapeSeq, + } + + let mut input_state = InputState::Normal; + + println!("Welcome to AxVisor Shell!"); + println!("Type 'help' to see available commands"); + println!("Use UP/DOWN arrows to navigate command history"); + println!(); + + print_prompt(); + + loop { + let mut temp_buf = [0u8; 1]; + + let ch = match stdin.read(&mut temp_buf) { + Ok(1) => temp_buf[0], + _ => { + continue; + } + }; + + match input_state { + InputState::Normal => { + match ch { + CR | LF => { + println!(); + if line_len > 0 { + let cmd_str = std::str::from_utf8(&buf[..line_len]).unwrap_or(""); + + // Add to history + history.add_command(cmd_str.to_string()); + + // Execute command + if !handle_builtin_commands(cmd_str) { + run_cmd_bytes(&buf[..line_len]); + } + + // reset buffer + buf[..line_len].fill(0); + cursor = 0; + line_len = 0; + } + print_prompt(); + } + BS | DL => { + // backspace: delete character before cursor / DEL key: delete character at cursor + if cursor > 0 { + // move characters after cursor forward + for i in cursor..line_len { + buf[i - 1] = buf[i]; + } + cursor -= 1; + line_len -= 1; + if line_len < buf.len() { + buf[line_len] = 0; + } + + let current_content = + std::str::from_utf8(&buf[..line_len]).unwrap_or(""); + let prompt = format!("axvisor:{}$ ", &std::env::current_dir().unwrap()); + clear_line_and_redraw(&mut stdout, &prompt, current_content, cursor); + } + } + ESC => { + input_state = InputState::Escape; + } + 0..=31 => { + // ignore other control characters + } + c => { + // insert character + if line_len < MAX_LINE_LEN - 1 { + // move characters after cursor backward to make space for new character + for i in (cursor..line_len).rev() { + buf[i + 1] = buf[i]; + } + buf[cursor] = c; + cursor += 1; + line_len += 1; + + let current_content = + std::str::from_utf8(&buf[..line_len]).unwrap_or(""); + let prompt = format!("axvisor:{}$ ", &std::env::current_dir().unwrap()); + clear_line_and_redraw(&mut stdout, &prompt, current_content, cursor); + } + } + } + } + InputState::Escape => match ch { + b'[' => { + input_state = InputState::EscapeSeq; + } + _ => { + input_state = InputState::Normal; + } + }, + InputState::EscapeSeq => { + match ch { + b'A' => { + // UP arrow - previous command + if let Some(prev_cmd) = history.previous() { + // clear current buffer + buf[..line_len].fill(0); + + let cmd_bytes = prev_cmd.as_bytes(); + let copy_len = cmd_bytes.len().min(MAX_LINE_LEN - 1); + buf[..copy_len].copy_from_slice(&cmd_bytes[..copy_len]); + cursor = copy_len; + line_len = copy_len; + + let prompt = format!("axvisor:{}$ ", &std::env::current_dir().unwrap()); + clear_line_and_redraw(&mut stdout, &prompt, prev_cmd, cursor); + } + input_state = InputState::Normal; + } + b'B' => { + // DOWN arrow - next command + match history.next() { + Some(next_cmd) => { + // clear current buffer + buf[..line_len].fill(0); + + let cmd_bytes = next_cmd.as_bytes(); + let copy_len = cmd_bytes.len().min(MAX_LINE_LEN - 1); + buf[..copy_len].copy_from_slice(&cmd_bytes[..copy_len]); + cursor = copy_len; + line_len = copy_len; + + let prompt = + format!("axvisor:{}$ ", &std::env::current_dir().unwrap()); + clear_line_and_redraw(&mut stdout, &prompt, next_cmd, cursor); + } + None => { + // clear current line + buf[..line_len].fill(0); + cursor = 0; + line_len = 0; + let prompt = + format!("axvisor:{}$ ", &std::env::current_dir().unwrap()); + clear_line_and_redraw(&mut stdout, &prompt, "", cursor); + } + } + input_state = InputState::Normal; + } + b'C' => { + // RIGHT arrow - move cursor right + if cursor < line_len { + cursor += 1; + stdout.write_all(b"\x1b[C").ok(); + stdout.flush().ok(); + } + input_state = InputState::Normal; + } + b'D' => { + // LEFT arrow - move cursor left + if cursor > 0 { + cursor -= 1; + stdout.write_all(b"\x1b[D").ok(); + stdout.flush().ok(); + } + input_state = InputState::Normal; + } + b'3' => { + // check if this is Delete key sequence (ESC[3~) + // need to read next character to confirm + input_state = InputState::Normal; + // can add additional state to handle complete Delete sequence + } + _ => { + // ignore other escape sequences + input_state = InputState::Normal; + } + } + } + } + } +} diff --git a/src/vmm/config.rs b/src/vmm/config.rs index 06afc5ca..10a0d93b 100644 --- a/src/vmm/config.rs +++ b/src/vmm/config.rs @@ -1,4 +1,5 @@ use axaddrspace::GuestPhysAddr; +use axerrno::AxResult; use axvm::{ VMMemoryRegion, config::{AxVMConfig, AxVMCrateConfig, VmMemMappingType}, @@ -20,14 +21,7 @@ pub mod config { /// Default static VM configs. Used when no VM config is provided. pub fn default_static_vm_configs() -> Vec<&'static str> { - vec![ - #[cfg(target_arch = "x86_64")] - core::include_str!("../../configs/vms/nimbos-x86_64-qemu-smp1.toml"), - #[cfg(target_arch = "aarch64")] - core::include_str!("../../configs/vms/nimbos-aarch64-qemu-smp1.toml"), - #[cfg(target_arch = "riscv64")] - core::include_str!("../../configs/vms/nimbos-riscv64-qemu-smp1.toml"), - ] + vec![] } /// Read VM configs from filesystem @@ -93,53 +87,61 @@ pub fn init_guest_vms() { } for raw_cfg_str in gvm_raw_configs { - let vm_create_config = - AxVMCrateConfig::from_toml(&raw_cfg_str).expect("Failed to resolve VM config"); - - if let Some(linux) = super::images::get_image_header(&vm_create_config) { - debug!( - "VM[{}] Linux header: {:#x?}", - vm_create_config.base.id, linux - ); + if let Err(e) = init_guest_vm(&raw_cfg_str) { + error!("Failed to initialize guest VM: {:?}", e); } + } +} + +pub fn init_guest_vm(raw_cfg: &str) -> AxResult { + let vm_create_config = + AxVMCrateConfig::from_toml(raw_cfg).expect("Failed to resolve VM config"); - #[cfg(target_arch = "aarch64")] - let mut vm_config = AxVMConfig::from(vm_create_config.clone()); + if let Some(linux) = super::images::get_image_header(&vm_create_config) { + debug!( + "VM[{}] Linux header: {:#x?}", + vm_create_config.base.id, linux + ); + } + + #[cfg(target_arch = "aarch64")] + let mut vm_config = AxVMConfig::from(vm_create_config.clone()); - #[cfg(not(target_arch = "aarch64"))] - let vm_config = AxVMConfig::from(vm_create_config.clone()); + #[cfg(not(target_arch = "aarch64"))] + let vm_config = AxVMConfig::from(vm_create_config.clone()); - // Handle FDT-related operations for aarch64 - #[cfg(target_arch = "aarch64")] - handle_fdt_operations(&mut vm_config, &vm_create_config); + // Handle FDT-related operations for aarch64 + #[cfg(target_arch = "aarch64")] + handle_fdt_operations(&mut vm_config, &vm_create_config); - // info!("after parse_vm_interrupt, crate VM[{}] with config: {:#?}", vm_config.id(), vm_config); - info!("Creating VM[{}] {:?}", vm_config.id(), vm_config.name()); + // info!("after parse_vm_interrupt, crate VM[{}] with config: {:#?}", vm_config.id(), vm_config); + info!("Creating VM[{}] {:?}", vm_config.id(), vm_config.name()); - // Create VM. - let vm = VM::new(vm_config).expect("Failed to create VM"); - push_vm(vm.clone()); + // Create VM. + let vm = VM::new(vm_config).expect("Failed to create VM"); + push_vm(vm.clone()); - vm_alloc_memorys(&vm_create_config, &vm); + vm_alloc_memorys(&vm_create_config, &vm); - let main_mem = vm - .memory_regions() - .first() - .cloned() - .expect("VM must have at least one memory region"); + let main_mem = vm + .memory_regions() + .first() + .cloned() + .expect("VM must have at least one memory region"); - config_guest_address(&vm, &main_mem); + config_guest_address(&vm, &main_mem); - // Load corresponding images for VM. - info!("VM[{}] created success, loading images...", vm.id()); + // Load corresponding images for VM. + info!("VM[{}] created success, loading images...", vm.id()); - let mut loader = ImageLoader::new(main_mem, vm_create_config, vm.clone()); - loader.load().expect("Failed to load VM images"); + let mut loader = ImageLoader::new(main_mem, vm_create_config, vm.clone()); + loader.load().expect("Failed to load VM images"); - if let Err(e) = vm.init() { - panic!("VM[{}] setup failed: {:?}", vm.id(), e); - } + if let Err(e) = vm.init() { + panic!("VM[{}] setup failed: {:?}", vm.id(), e); } + + Ok(()) } fn config_guest_address(vm: &VM, main_memory: &VMMemoryRegion) { diff --git a/src/vmm/mod.rs b/src/vmm/mod.rs index 0c228bad..50597e50 100644 --- a/src/vmm/mod.rs +++ b/src/vmm/mod.rs @@ -1,10 +1,11 @@ -mod config; mod hvc; -mod images; mod ivc; + +pub mod config; +pub mod images; pub mod timer; -mod vcpus; -mod vm_list; +pub mod vcpus; +pub mod vm_list; #[cfg(target_arch = "aarch64")] pub mod fdt; @@ -127,3 +128,11 @@ pub fn with_vm_and_vcpu_on_pcpu( // with_vm_and_vcpu_on_pcpu(vm_id, vcpu_id, f); // })) } + +pub fn get_running_vm_count() -> usize { + RUNNING_VM_COUNT.load(Ordering::Acquire) +} + +pub fn add_running_vm_count(count: usize) { + RUNNING_VM_COUNT.fetch_add(count, Ordering::Release); +} From 8596a374a85a29f651d1eb10d5cf733f73876642 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E7=9D=BF?= <34859362+ZR233@users.noreply.github.com> Date: Mon, 29 Sep 2025 16:32:17 +0800 Subject: [PATCH 218/219] chore: update deps and rm some log (#266) * chore: Update dependencies in Cargo.lock to latest versions * chore: Change log level from info to trace in register_timer function --- Cargo.lock | 92 ++++++++++++++++++++++++------------------------ src/vmm/timer.rs | 4 +-- 2 files changed, 48 insertions(+), 48 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index fc23d8f6..25eb5669 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -29,9 +29,9 @@ checksum = "0a2c929f5025d9b8a0f549b187c4d3a39671f44015ff6ccddd0b134c874b3c1a" [[package]] name = "addr2line" -version = "0.24.2" +version = "0.25.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1" +checksum = "1b5d307320b3181d6d7954e663bd7c774a838b8220fe0593c86d9fb09f498b4b" dependencies = [ "gimli", ] @@ -635,7 +635,7 @@ dependencies = [ [[package]] name = "axklib" version = "0.2.0" -source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#96049da415c9b8f54caea54fdd98f4d69ca01670" +source = "git+https://github.com/arceos-hypervisor/arceos.git?branch=hypervisor#6fad0ff0aed9be8c75223f69bbf127a6675e933d" dependencies = [ "axerrno", "memory_addr", @@ -1071,7 +1071,7 @@ dependencies = [ [[package]] name = "axvm" version = "0.1.0" -source = "git+https://github.com/arceos-hypervisor/axvm.git?branch=next#d0b1e63004d6a6b3caf47abe0f3b7020ffbacb72" +source = "git+https://github.com/arceos-hypervisor/axvm.git?branch=next#62dc1461bc8dff5d22264962da4d2f86ded915f8" dependencies = [ "arm_vcpu", "arm_vgic 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1108,9 +1108,9 @@ dependencies = [ [[package]] name = "backtrace" -version = "0.3.75" +version = "0.3.76" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6806a6321ec58106fea15becdad98371e28d92ccbc7c8f1b3b6dd724fe8f1002" +checksum = "bb531853791a215d7c62a30daf0dde835f381ab5de4589cfe7c649d2cbe92bd6" dependencies = [ "addr2line", "cfg-if", @@ -1118,7 +1118,7 @@ dependencies = [ "miniz_oxide", "object", "rustc-demangle", - "windows-targets 0.52.6", + "windows-link 0.2.0", ] [[package]] @@ -1298,14 +1298,14 @@ dependencies = [ "semver", "serde", "serde_json", - "thiserror 2.0.16", + "thiserror 2.0.17", ] [[package]] name = "cc" -version = "1.2.38" +version = "1.2.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80f41ae168f955c12fb8960b057d70d0ca153fb83182b57d86380443527be7e9" +checksum = "e1354349954c6fc9cb0deab020f27f783cf0b604e8bb754dc4658ecf0d29c35f" dependencies = [ "find-msvc-tools", "shlex", @@ -1534,7 +1534,7 @@ dependencies = [ "aarch64-cpu-ext", "cfg-if", "spin 0.10.0", - "thiserror 2.0.16", + "thiserror 2.0.17", ] [[package]] @@ -1815,9 +1815,9 @@ dependencies = [ [[package]] name = "gimli" -version = "0.31.1" +version = "0.32.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" +checksum = "e629b9b98ef3dd8afe6ca2bd0f89306cec16d43d907889945bc5d6687f2f13c7" [[package]] name = "h2" @@ -2390,18 +2390,18 @@ checksum = "54c6e48d7df84e6414be8e53976ead35ba4d47a4ba561eaad5d1e2b1447b4c0a" [[package]] name = "linkme" -version = "0.3.33" +version = "0.3.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1b1703c00b2a6a70738920544aa51652532cacddfec2e162d2e29eae01e665c" +checksum = "5e3283ed2d0e50c06dd8602e0ab319bb048b6325d0bba739db64ed8205179898" dependencies = [ "linkme-impl", ] [[package]] name = "linkme-impl" -version = "0.3.33" +version = "0.3.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04d55ca5d5a14363da83bf3c33874b8feaa34653e760d5216d7ef9829c88001a" +checksum = "e5cec0ec4228b4853bb129c84dbf093a27e6c7a20526da046defc334a1b017f7" dependencies = [ "proc-macro2", "quote", @@ -2563,9 +2563,9 @@ checksum = "300e4bdb6b46b592948e700ea1ef24a4296491f6a0ee722b258040abd15a3714" [[package]] name = "object" -version = "0.36.7" +version = "0.37.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87" +checksum = "ff76201f031d8863c38aa7f905eca4f53abbfa15f609db4277d44cd8938f33fe" dependencies = [ "memchr", ] @@ -2644,7 +2644,7 @@ dependencies = [ "bitflags 2.9.4", "log", "num-align", - "thiserror 2.0.16", + "thiserror 2.0.17", ] [[package]] @@ -2724,7 +2724,7 @@ dependencies = [ "log", "pci_types", "rdif-pcie", - "thiserror 2.0.16", + "thiserror 2.0.17", ] [[package]] @@ -2803,7 +2803,7 @@ dependencies = [ "quote", "spin 0.10.0", "syn 2.0.106", - "thiserror 2.0.16", + "thiserror 2.0.17", ] [[package]] @@ -2884,9 +2884,9 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.40" +version = "1.0.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d" +checksum = "ce25767e7b499d1b604768e7cde645d14cc8584231ea6b295e9c9eb22c02e1d1" dependencies = [ "proc-macro2", ] @@ -2959,7 +2959,7 @@ dependencies = [ "async-trait", "paste", "rdif-def", - "thiserror 2.0.16", + "thiserror 2.0.17", ] [[package]] @@ -2973,7 +2973,7 @@ dependencies = [ "futures", "rdif-base", "spin_on", - "thiserror 2.0.16", + "thiserror 2.0.17", ] [[package]] @@ -2991,7 +2991,7 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c238eb44d86fabc99028adc973f896ce2202aeb6184cc8b89863f2d157d7ca06" dependencies = [ - "thiserror 2.0.16", + "thiserror 2.0.17", ] [[package]] @@ -3002,7 +3002,7 @@ checksum = "170ec813e6cf4d1e5fa53fa8fed0fadc7aaab96683d4f1d44c602a6109931eb4" dependencies = [ "cfg-if", "rdif-base", - "thiserror 2.0.16", + "thiserror 2.0.17", ] [[package]] @@ -3013,14 +3013,14 @@ checksum = "0abf057b17ca5ead0ee41c485bf3c2781fd9bbf88cc678539fa361aa5db3ed8d" dependencies = [ "pci_types", "rdif-base", - "thiserror 2.0.16", + "thiserror 2.0.17", ] [[package]] name = "rdrive" -version = "0.18.6" +version = "0.18.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27096bc91e156403ba3be9c7fef8d4379ea12d96d9d1725bdb197104a4fe1010" +checksum = "31c8f4f35afa65218795cbd5d2cb52c6e44e1fade40900966b0ec8bbd2a10ff3" dependencies = [ "fdt-parser", "log", @@ -3030,7 +3030,7 @@ dependencies = [ "rdif-pcie", "rdrive-macros", "spin 0.10.0", - "thiserror 2.0.16", + "thiserror 2.0.17", ] [[package]] @@ -3454,9 +3454,9 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.227" +version = "1.0.228" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80ece43fc6fbed4eb5392ab50c07334d3e577cbf40997ee896fe7af40bba4245" +checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e" dependencies = [ "serde_core", "serde_derive", @@ -3486,18 +3486,18 @@ dependencies = [ [[package]] name = "serde_core" -version = "1.0.227" +version = "1.0.228" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a576275b607a2c86ea29e410193df32bc680303c82f31e275bbfcafe8b33be5" +checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.227" +version = "1.0.228" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51e694923b8824cf0e9b382adf0f60d4e05f348f357b38833a3fa5ed7c2ede04" +checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" dependencies = [ "proc-macro2", "quote", @@ -3591,7 +3591,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7c73e0ca8c566478040487791c9f488f86c5aec846ca1ab18484be8a1d8c55cd" dependencies = [ - "thiserror 2.0.16", + "thiserror 2.0.17", ] [[package]] @@ -3832,11 +3832,11 @@ dependencies = [ [[package]] name = "thiserror" -version = "2.0.16" +version = "2.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3467d614147380f2e4e374161426ff399c91084acd2363eaf549172b3d5e60c0" +checksum = "f63587ca0f12b72a0600bcba1d40081f830876000bb46dd2337a3051618f4fc8" dependencies = [ - "thiserror-impl 2.0.16", + "thiserror-impl 2.0.17", ] [[package]] @@ -3852,9 +3852,9 @@ dependencies = [ [[package]] name = "thiserror-impl" -version = "2.0.16" +version = "2.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c5e1be1c48b9172ee610da68fd9cd2770e7a4056cb3fc98710ee6906f0c7960" +checksum = "3ff15c8ecd7de3849db632e14d18d2571fa09dfc5ed93479bc4485c7a517c913" dependencies = [ "proc-macro2", "quote", @@ -3938,9 +3938,9 @@ dependencies = [ [[package]] name = "tokio-rustls" -version = "0.26.3" +version = "0.26.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05f63835928ca123f1bef57abbcd23bb2ba0ac9ae1235f1e65bda0d06e7786bd" +checksum = "1729aa945f29d91ba541258c8df89027d5792d85a8841fb65e8bf0f4ede4ef61" dependencies = [ "rustls", "tokio", diff --git a/src/vmm/timer.rs b/src/vmm/timer.rs index 188e1a19..01862d5e 100644 --- a/src/vmm/timer.rs +++ b/src/vmm/timer.rs @@ -55,8 +55,8 @@ pub fn register_timer(deadline: u64, handler: F) -> usize where F: FnOnce(TimeValue) + Send + 'static, { - info!("Registering timer..."); - info!( + trace!("Registering timer..."); + trace!( "deadline is {:#?} = {:#?}", deadline, TimeValue::from_nanos(deadline) From 28582598dac7ef6498930d421b6381877794ae4c Mon Sep 17 00:00:00 2001 From: ZCShou Date: Tue, 30 Sep 2025 09:31:22 +0800 Subject: [PATCH 219/219] clean unused file (#267) * clean configs/platforms due to no adaptation * clean guest config due to no adaptation * clean some doc due to no updating * clean quick-start.sh due to no completation --- configs/platforms/aarch64-bsta1000b-hv.toml | 71 - configs/platforms/aarch64-qemu-virt-hv.toml | 119 - configs/platforms/aarch64-rk3588j-hv.toml | 75 - configs/platforms/riscv64-qemu-virt.toml | 77 - configs/platforms/x86_64-qemu-q35.toml | 57 - configs/vms_bkp/aarch64-qemu-gicv3.dts | 397 - configs/vms_bkp/aio-rk3588-jd4-vm1.dts | 12818 --------------- configs/vms_bkp/aio-rk3588-jd4-vm2.dts | 656 - configs/vms_bkp/aio-rk3588-jd4.dts | 12893 --------------- configs/vms_bkp/arceos-aarch64-e2000_smp1.dts | 155 - .../vms_bkp/arceos-aarch64-e2000_smp1.toml | 71 - configs/vms_bkp/arceos-aarch64-e2000_smp2.dts | 155 - .../vms_bkp/arceos-aarch64-e2000_smp2.toml | 71 - .../vms_bkp/arceos-aarch64-rk3568-smp1.toml | 73 - .../vms_bkp/arceos-aarch64-rk3568-smp2.toml | 73 - .../vms_bkp/arceos-aarch64-rk3568_smp1.dts | 87 - .../vms_bkp/arceos-aarch64-rk3568_smp2.dts | 101 - configs/vms_bkp/arceos-aarch64-smp.toml | 55 - configs/vms_bkp/arceos-aarch64.toml | 59 - configs/vms_bkp/arceos-riscv64-smp.toml | 59 - configs/vms_bkp/arceos-riscv64.toml | 59 - .../vms_bkp/arceos-rk3588-aarch64-vm2.toml | 49 - configs/vms_bkp/arceos-x86_64.toml | 78 - configs/vms_bkp/hvconfig-nimbos-aarch64.toml | 4 - configs/vms_bkp/linux-a1000-aarch64-smp8.toml | 58 - configs/vms_bkp/linux-aarch64-e2000_smp1.dts | 1302 -- configs/vms_bkp/linux-aarch64-e2000_smp1.toml | 114 - configs/vms_bkp/linux-aarch64-e2000_smp2.dts | 1302 -- configs/vms_bkp/linux-aarch64-e2000_smp2.toml | 115 - configs/vms_bkp/linux-aarch64-rk3568_smp1.dts | 6108 ------- .../vms_bkp/linux-aarch64-rk3568_smp1.toml | 86 - configs/vms_bkp/linux-aarch64-rk3568_smp2.dts | 6108 ------- .../vms_bkp/linux-aarch64-rk3568_smp2.toml | 86 - .../vms_bkp/linux-qemu-aarch64-gicv3-a.toml | 82 - .../vms_bkp/linux-qemu-aarch64-gicv3-b.toml | 83 - configs/vms_bkp/linux-qemu-aarch64-mem.toml | 70 - configs/vms_bkp/linux-qemu-aarch64-smp2.toml | 68 - configs/vms_bkp/linux-qemu-aarch64-vm2.toml | 68 - configs/vms_bkp/linux-qemu-aarch64.toml | 76 - configs/vms_bkp/linux-qemu-smp2.dts | 364 - configs/vms_bkp/linux-qemu.dts | 354 - configs/vms_bkp/linux-qemu_gicv3-b.dts | 414 - .../vms_bkp/linux-rk3588-aarch64-smp-vm1.toml | 75 - .../vms_bkp/linux-rk3588-aarch64-smp-vm2.toml | 74 - configs/vms_bkp/linux-rk3588-aarch64-smp.toml | 71 - configs/vms_bkp/linux-rk3588-aarch64.toml | 100 - configs/vms_bkp/qemu_gicv3.dts | 410 - configs/vms_bkp/rk3588jd4.dts | 13141 ---------------- configs/vms_bkp/starry-aarch64.toml | 62 - configs/vms_bkp/starry-riscv64.toml | 64 - configs/vms_bkp/starry-x86_64.toml | 62 - doc/GuestVMs.md | 44 - doc/README.md | 170 - doc/SMP.md | 78 - doc/figures/RKDevTool3.3.png | Bin 92129 -> 0 bytes doc/figures/arceos-hv-architecture.svg | 3 - doc/old/Boot-on-qemu.md | 48 - doc/old/Boot-on-rk3588.md | 118 - .../shell.md | 0 quick-start.sh | 13 - 60 files changed, 59703 deletions(-) delete mode 100644 configs/platforms/aarch64-bsta1000b-hv.toml delete mode 100644 configs/platforms/aarch64-qemu-virt-hv.toml delete mode 100644 configs/platforms/aarch64-rk3588j-hv.toml delete mode 100644 configs/platforms/riscv64-qemu-virt.toml delete mode 100644 configs/platforms/x86_64-qemu-q35.toml delete mode 100644 configs/vms_bkp/aarch64-qemu-gicv3.dts delete mode 100644 configs/vms_bkp/aio-rk3588-jd4-vm1.dts delete mode 100644 configs/vms_bkp/aio-rk3588-jd4-vm2.dts delete mode 100644 configs/vms_bkp/aio-rk3588-jd4.dts delete mode 100644 configs/vms_bkp/arceos-aarch64-e2000_smp1.dts delete mode 100644 configs/vms_bkp/arceos-aarch64-e2000_smp1.toml delete mode 100644 configs/vms_bkp/arceos-aarch64-e2000_smp2.dts delete mode 100644 configs/vms_bkp/arceos-aarch64-e2000_smp2.toml delete mode 100644 configs/vms_bkp/arceos-aarch64-rk3568-smp1.toml delete mode 100644 configs/vms_bkp/arceos-aarch64-rk3568-smp2.toml delete mode 100644 configs/vms_bkp/arceos-aarch64-rk3568_smp1.dts delete mode 100644 configs/vms_bkp/arceos-aarch64-rk3568_smp2.dts delete mode 100644 configs/vms_bkp/arceos-aarch64-smp.toml delete mode 100644 configs/vms_bkp/arceos-aarch64.toml delete mode 100644 configs/vms_bkp/arceos-riscv64-smp.toml delete mode 100644 configs/vms_bkp/arceos-riscv64.toml delete mode 100644 configs/vms_bkp/arceos-rk3588-aarch64-vm2.toml delete mode 100644 configs/vms_bkp/arceos-x86_64.toml delete mode 100644 configs/vms_bkp/hvconfig-nimbos-aarch64.toml delete mode 100644 configs/vms_bkp/linux-a1000-aarch64-smp8.toml delete mode 100644 configs/vms_bkp/linux-aarch64-e2000_smp1.dts delete mode 100644 configs/vms_bkp/linux-aarch64-e2000_smp1.toml delete mode 100644 configs/vms_bkp/linux-aarch64-e2000_smp2.dts delete mode 100644 configs/vms_bkp/linux-aarch64-e2000_smp2.toml delete mode 100644 configs/vms_bkp/linux-aarch64-rk3568_smp1.dts delete mode 100644 configs/vms_bkp/linux-aarch64-rk3568_smp1.toml delete mode 100644 configs/vms_bkp/linux-aarch64-rk3568_smp2.dts delete mode 100644 configs/vms_bkp/linux-aarch64-rk3568_smp2.toml delete mode 100644 configs/vms_bkp/linux-qemu-aarch64-gicv3-a.toml delete mode 100644 configs/vms_bkp/linux-qemu-aarch64-gicv3-b.toml delete mode 100644 configs/vms_bkp/linux-qemu-aarch64-mem.toml delete mode 100644 configs/vms_bkp/linux-qemu-aarch64-smp2.toml delete mode 100644 configs/vms_bkp/linux-qemu-aarch64-vm2.toml delete mode 100644 configs/vms_bkp/linux-qemu-aarch64.toml delete mode 100644 configs/vms_bkp/linux-qemu-smp2.dts delete mode 100644 configs/vms_bkp/linux-qemu.dts delete mode 100644 configs/vms_bkp/linux-qemu_gicv3-b.dts delete mode 100644 configs/vms_bkp/linux-rk3588-aarch64-smp-vm1.toml delete mode 100644 configs/vms_bkp/linux-rk3588-aarch64-smp-vm2.toml delete mode 100644 configs/vms_bkp/linux-rk3588-aarch64-smp.toml delete mode 100644 configs/vms_bkp/linux-rk3588-aarch64.toml delete mode 100644 configs/vms_bkp/qemu_gicv3.dts delete mode 100644 configs/vms_bkp/rk3588jd4.dts delete mode 100644 configs/vms_bkp/starry-aarch64.toml delete mode 100644 configs/vms_bkp/starry-riscv64.toml delete mode 100644 configs/vms_bkp/starry-x86_64.toml delete mode 100644 doc/GuestVMs.md delete mode 100644 doc/README.md delete mode 100644 doc/SMP.md delete mode 100644 doc/figures/RKDevTool3.3.png delete mode 100644 doc/figures/arceos-hv-architecture.svg delete mode 100644 doc/old/Boot-on-qemu.md delete mode 100644 doc/old/Boot-on-rk3588.md rename "doc/Shell\346\250\241\345\235\227\344\273\213\347\273\215.md" => doc/shell.md (100%) delete mode 100755 quick-start.sh diff --git a/configs/platforms/aarch64-bsta1000b-hv.toml b/configs/platforms/aarch64-bsta1000b-hv.toml deleted file mode 100644 index 03ba9994..00000000 --- a/configs/platforms/aarch64-bsta1000b-hv.toml +++ /dev/null @@ -1,71 +0,0 @@ -# Architecture identifier. -arch = "aarch64" # str -# Platform identifier. -platform = "aarch64-bsta1000b-hv" # str - -# -# Platform configs -# -[plat] -# Platform family. -family = "aarch64-bsta1000b" # str - -# Base address of the whole physical memory. -phys-memory-base = 0x1_9800_0000 -# Size of the whole physical memory. -phys-memory-size = 0x5800_0000 -# Base physical address of the kernel image. -kernel-base-paddr = 0x1_a000_0000 -# Base virtual address of the kernel image. -kernel-base-vaddr = "0x0000_0001_a000_0000" -# Linear mapping offset, for quick conversions between physical and virtual -# addresses. -phys-virt-offset = "0x0000_0000_0000_0000" -# Offset of bus address and phys address. some boards, the bus address is -# different from the physical address. -phys-bus-offset = 0 -# Kernel address space base. -kernel-aspace-base = "0x0000_0000_0000_0000" -# Kernel address space size. -kernel-aspace-size = "0x0000_ffff_ffff_f000" - -# -# Device specifications -# -[devices] -# MMIO regions with format (`base_paddr`, `size`). -mmio-regions = [ - [0x20008000, 0x1000], # uart8250 UART0 - [0x32000000, 0x8000], # arm,gic-400 - [0x32011000, 0x1000], # CPU CSR - [0x33002000, 0x1000], # Top CRM - [0x70035000, 0x1000], # CRM reg - [0x70038000, 0x1000], # aon pinmux -] # [(uint, uint)] -# VirtIO MMIO regions with format (`base_paddr`, `size`). -virtio-mmio-regions = [] # [(uint, uint)] - -# Base physical address of the PCIe ECAM space. -pci-ecam-base = 0x30E0_2000 - -# UART Address -uart-paddr = 0x2000_8000 # uint -# UART IRQ number -uart-irq = 0xd5 # uint - -# GIC CPU Interface base address -gicc-paddr = 0x3200_2000 # uint -# GIC Distributor base address -gicd-paddr = 0x3200_1000 # uint - -# BST A1000B board registers -cpu-csr-base = 0x3201_1000 # uint -a1000base-topcrm = 0x3300_2000 # uint -a1000base-safetycrm = 0x7003_5000 # uint -a1000base-aoncfg = 0x7003_8000 # uint - -# PSCI -psci-method = "smc" # str - -# RTC (PL031) Address (Need to read from DTB). -rtc-paddr = 0x0 # uint diff --git a/configs/platforms/aarch64-qemu-virt-hv.toml b/configs/platforms/aarch64-qemu-virt-hv.toml deleted file mode 100644 index 7192d01a..00000000 --- a/configs/platforms/aarch64-qemu-virt-hv.toml +++ /dev/null @@ -1,119 +0,0 @@ -# Architecture identifier. -arch = "aarch64" # str -# Platform identifier. -platform = "aarch64-qemu-virt-hv" # str - -# -# Platform configs -# -[plat] -# Platform family. -family = "aarch64-qemu-virt" # str - -# Base address of the whole physical memory. -phys-memory-base = 0x4000_0000 # uint -# Size of the whole physical memory. (2GB) -phys-memory-size = 0x1_0000_0000 # uint -# Base physical address of the kernel image. -kernel-base-paddr = 0x4008_0000 # uint -# Base virtual address of the kernel image. -kernel-base-vaddr = "0x0000_0000_4008_0000" # uint -# Linear mapping offset, for quick conversions between physical and virtual -# addresses. -phys-virt-offset = "0x0000_0000_0000_0000" # uint -# Offset of bus address and phys address. some boards, the bus address is -# different from the physical address. -phys-bus-offset = 0 # uint -# Kernel address space base. -kernel-aspace-base = "0x0000_0000_0000_0000" # uint -# Kernel address space size. -kernel-aspace-size = "0x0000_ffff_ffff_f000" # uint - -# -# Device specifications -# -[devices] -# MMIO regions with format (`base_paddr`, `size`). -mmio-regions = [ - [0x0900_0000, 0x1000], # PL011 UART1 - [0x0904_0000, 0x1000], # PL011 UART2 - [0x0910_0000, 0x1000], # PL031 RTC - [0x0800_0000, 0x2_0000], # GICv2/v3 GICD - [0x0808_0000, 0x2_0000], # GICv3 GITS - [0x080a_0000, 0xf6_0000], # GICv3 GICR - [0x0a00_0000, 0x4000], # VirtIO - [0x1000_0000, 0x2eff_0000], # PCI memory ranges (ranges 1: 32-bit MMIO space) - [0x40_1000_0000, 0x1000_0000], # PCI config space -] # [(uint, uint)] -# VirtIO MMIO regions with format (`base_paddr`, `size`). -virtio-mmio-regions = [ - [0x0a00_0000, 0x200], - [0x0a00_0200, 0x200], - [0x0a00_0400, 0x200], - [0x0a00_0600, 0x200], - [0x0a00_0800, 0x200], - [0x0a00_0a00, 0x200], - [0x0a00_0c00, 0x200], - [0x0a00_0e00, 0x200], - [0x0a00_1000, 0x200], - [0x0a00_1200, 0x200], - [0x0a00_1400, 0x200], - [0x0a00_1600, 0x200], - [0x0a00_1800, 0x200], - [0x0a00_1a00, 0x200], - [0x0a00_1c00, 0x200], - [0x0a00_1e00, 0x200], - [0x0a00_3000, 0x200], - [0x0a00_2200, 0x200], - [0x0a00_2400, 0x200], - [0x0a00_2600, 0x200], - [0x0a00_2800, 0x200], - [0x0a00_2a00, 0x200], - [0x0a00_2c00, 0x200], - [0x0a00_2e00, 0x200], - [0x0a00_3000, 0x200], - [0x0a00_3200, 0x200], - [0x0a00_3400, 0x200], - [0x0a00_3600, 0x200], - [0x0a00_3800, 0x200], - [0x0a00_3a00, 0x200], - [0x0a00_3c00, 0x200], - [0x0a00_3e00, 0x200], -] # [(uint, uint)] -# Base physical address of the PCIe ECAM space. -pci-ecam-base = 0x40_1000_0000 # uint -# End PCI bus number (`bus-range` property in device tree). -pci-bus-end = 0xff # uint -# PCI device memory ranges (`ranges` property in device tree). -pci-ranges = [ - [0x3ef_f0000, 0x1_0000], # PIO space - [0x1000_0000, 0x2eff_0000], # 32-bit MMIO space - [0x80_0000_0000, 0x80_0000_0000], # 64-bit MMIO space -] # [(uint, uint)] -# UART Address -uart-paddr = 0x0900_0000 # uint -# UART IRQ number -uart-irq = 1 # uint - -# GIC CPU Interface base address -gicc-paddr = 0x0801_0000 # uint -# GIC Distributor base address -gicd-paddr = 0x0800_0000 # uint -gicv-paddr = 0x0804_0000 # uint -gich-paddr = 0x0803_0000 # uint - -# GIC Redistributor base address -gicr-paddr = 0x080a_0000 - -# PSCI -psci-method = "smc" # str - -# pl031@9010000 { -# clock-names = "apb_pclk"; -# clocks = <0x8000>; -# interrupts = <0x00 0x02 0x04>; -# reg = <0x00 0x9010000 0x00 0x1000>; -# compatible = "arm,pl031\0arm,primecell"; -# }; -# RTC (PL031) Address -rtc-paddr = 0x901_0000 # uint diff --git a/configs/platforms/aarch64-rk3588j-hv.toml b/configs/platforms/aarch64-rk3588j-hv.toml deleted file mode 100644 index f2e847f2..00000000 --- a/configs/platforms/aarch64-rk3588j-hv.toml +++ /dev/null @@ -1,75 +0,0 @@ -# Architecture identifier. -arch = "aarch64" # str -# Platform identifier. -platform = "aarch64-rk3588j" # str - -# -# Platform configs -# -[plat] -# Platform family. -family = "aarch64-rk3588j" - -# Base address of the whole physical memory. -phys-memory-base = 0x20_0000 # uint -# Size of the whole physical memory. -phys-memory-size = 0x800_0000 # uint -# Base physical address of the kernel image. -kernel-base-paddr = 0x48_0000 # uint -# Base virtual address of the kernel image. -kernel-base-vaddr = "0x0000_0000_0048_0000" -# Linear mapping offset, for quick conversions between physical and virtual -# addresses. -phys-virt-offset = "0x0000_0000_0000_0000" -# Kernel address space base. -kernel-aspace-base = "0x0000_0000_0000_0000" -# Kernel address space size. -kernel-aspace-size = "0x0000_ffff_ffff_f000" - -# -# Device specifications -# -[devices] -# MMIO regions with format (`base_paddr`, `size`). -mmio-regions = [ - [0xfeb50000, 0x1000], # uart8250 UART0 - [0xfe600000, 0x10000], # gic-v3 gicd - [0xfe640000, 0x40000], # gic-v3 gits - [0xfe680000, 0x100000], # gic-v3 gicr - [0xa41000000, 0x400000], - [0xa40c00000, 0x400000], - [0xf4000000,0x1000000], - [0xf3000000,0x1000000], -] # [(uint, uint)] -# VirtIO MMIO regions with format (`base_paddr`, `size`). -virtio-mmio-regions = [] # [(uint, uint)] - -# Base physical address of the PCIe ECAM space. -pci-ecam-base = 0xf4000000 # uint -# End PCI bus number (`bus-range` property in device tree). -pci-bus-end = 0xff # uint -# PCI device memory ranges (`ranges` property in device tree). -pci-ranges = [] # [(uint, uint)] -# UART Address -uart-paddr = 0xfeb5_0000 # uint -uart-irq = 0x14d # uint - -# GICC Address -gicc-paddr = 0xfe610000 # uint -# GICD Address -gicd-paddr = 0xfe600000 # uint -# GICR Address -gicr-paddr = 0xfe680000 # uint - -# PSCI -psci-method = "smc" # str - -# pl031@9010000 { -# clock-names = "apb_pclk"; -# clocks = <0x8000>; -# interrupts = <0x00 0x02 0x04>; -# reg = <0x00 0x9010000 0x00 0x1000>; -# compatible = "arm,pl031\0arm,primecell"; -# }; -# RTC (PL031) Address -rtc-paddr = 0x901_0000 # uint \ No newline at end of file diff --git a/configs/platforms/riscv64-qemu-virt.toml b/configs/platforms/riscv64-qemu-virt.toml deleted file mode 100644 index f272f515..00000000 --- a/configs/platforms/riscv64-qemu-virt.toml +++ /dev/null @@ -1,77 +0,0 @@ -# Architecture identifier. -arch = "riscv64" # str -# Platform identifier. -platform = "riscv64-qemu-virt" # str - -# -# Platform configs -# -[plat] -# Platform family. -family = "riscv64-qemu-virt" # str - -# Base address of the whole physical memory. -phys-memory-base = 0x8000_0000 # uint -# Size of the whole physical memory. (128M) -phys-memory-size = 0x800_0000 # uint -# Base physical address of the kernel image. -kernel-base-paddr = 0x8020_0000 # uint -# Base virtual address of the kernel image. -kernel-base-vaddr = "0xffff_ffc0_8020_0000" # uint -# Linear mapping offset, for quick conversions between physical and virtual -# addresses. -phys-virt-offset = "0xffff_ffc0_0000_0000" # uint -# Offset of bus address and phys address. some boards, the bus address is -# different from the physical address. -phys-bus-offset = 0 # uint -# Kernel address space base. -kernel-aspace-base = "0xffff_ffc0_0000_0000" # uint -# Kernel address space size. -kernel-aspace-size = "0x0000_003f_ffff_f000" # uint - -# -# Device specifications -# -[devices] -# MMIO regions with format (`base_paddr`, `size`). -mmio-regions = [ - [0x0010_1000, 0x1000], # RTC - [0x0c00_0000, 0x21_0000], # PLIC - [0x1000_0000, 0x1000], # UART - [0x1000_1000, 0x8000], # VirtIO - [0x3000_0000, 0x1000_0000], # PCI config space - [0x4000_0000, 0x4000_0000], # PCI memory ranges (ranges 1: 32-bit MMIO space) -] # [(uint, uint)] -# VirtIO MMIO regions with format (`base_paddr`, `size`). -virtio-mmio-regions = [ - [0x1000_1000, 0x1000], - [0x1000_2000, 0x1000], - [0x1000_3000, 0x1000], - [0x1000_4000, 0x1000], - [0x1000_5000, 0x1000], - [0x1000_6000, 0x1000], - [0x1000_7000, 0x1000], - [0x1000_8000, 0x1000], -] # [(uint, uint)] -# Base physical address of the PCIe ECAM space. -pci-ecam-base = 0x3000_0000 # uint -# End PCI bus number (`bus-range` property in device tree). -pci-bus-end = 0xff # uint -# PCI device memory ranges (`ranges` property in device tree). -pci-ranges = [ - [0x0300_0000, 0x1_0000], # PIO space - [0x4000_0000, 0x4000_0000], # 32-bit MMIO space - [0x4_0000_0000, 0x4_0000_0000], # 64-bit MMIO space -] # [(uint, uint)] - -# Timer interrupt frequency in Hz. -timer-frequency = 10_000_000 # uint - -# rtc@101000 { -# interrupts = <0x0b>; -# interrupt-parent = <0x03>; -# reg = <0x00 0x101000 0x00 0x1000>; -# compatible = "google,goldfish-rtc"; -# }; -# RTC (goldfish) Address -rtc-paddr = 0x10_1000 # uint diff --git a/configs/platforms/x86_64-qemu-q35.toml b/configs/platforms/x86_64-qemu-q35.toml deleted file mode 100644 index b47b9d1e..00000000 --- a/configs/platforms/x86_64-qemu-q35.toml +++ /dev/null @@ -1,57 +0,0 @@ -# Architecture identifier. -arch = "x86_64" # str -# Platform identifier. -platform = "x86_64-qemu-q35" # str - -# -# Platform configs -# -[plat] -# Platform family. -family = "x86-pc" # str - -# Base address of the whole physical memory. -phys-memory-base = 0 # uint -# Size of the whole physical memory. (128M) -phys-memory-size = 0x800_0000 # uint -# Base physical address of the kernel image. -kernel-base-paddr = 0x20_0000 # uint -# Base virtual address of the kernel image. -kernel-base-vaddr = "0xffff_8000_0020_0000" # uint -# Linear mapping offset, for quick conversions between physical and virtual -# addresses. -phys-virt-offset = "0xffff_8000_0000_0000" # uint -# Offset of bus address and phys address. some boards, the bus address is -# different from the physical address. -phys-bus-offset = 0 # uint -# Kernel address space base. -kernel-aspace-base = "0xffff_8000_0000_0000" # uint -# Kernel address space size. -kernel-aspace-size = "0x0000_7fff_ffff_f000" # uint - -# -# Device specifications -# -[devices] -# MMIO regions with format (`base_paddr`, `size`). -mmio-regions = [ - [0xb000_0000, 0x1000_0000], # PCI config space - [0xfe00_0000, 0xc0_0000], # PCI devices - [0x7000000000, 0x4000], # PCI devices - [0xfec0_0000, 0x1000], # IO APIC - [0xfed0_0000, 0x1000], # HPET - [0xfee0_0000, 0x1000], # Local APIC - [0x380000000000, 0x4000] # PCI devices -] # [(uint, uint)] - -# VirtIO MMIO regions with format (`base_paddr`, `size`). -virtio-mmio-regions = [] # [(uint, uint)] -# Base physical address of the PCIe ECAM space (should read from ACPI 'MCFG' table). -pci-ecam-base = 0xb000_0000 # uint -# End PCI bus number. -pci-bus-end = 0xff # uint -# PCI device memory ranges (not used on x86). -pci-ranges = [] # [(uint, uint)] - -# Timer interrupt frequencyin Hz. (4.0GHz) -timer-frequency = 4_000_000_000 # uint diff --git a/configs/vms_bkp/aarch64-qemu-gicv3.dts b/configs/vms_bkp/aarch64-qemu-gicv3.dts deleted file mode 100644 index a37731fb..00000000 --- a/configs/vms_bkp/aarch64-qemu-gicv3.dts +++ /dev/null @@ -1,397 +0,0 @@ -/dts-v1/; - -/ { - interrupt-parent = <0x8002>; - dma-coherent; - model = "linux,dummy-virt"; - #size-cells = <0x02>; - #address-cells = <0x02>; - compatible = "linux,dummy-virt"; - - psci { - migrate = <0xc4000005>; - cpu_on = <0xc4000003>; - cpu_off = <0x84000002>; - cpu_suspend = <0xc4000001>; - method = "smc"; - compatible = "arm,psci-1.0\0arm,psci-0.2\0arm,psci"; - }; - - memory@80000000 { - reg = <0x00 0x80000000 0x00 0x40000000>; - device_type = "memory"; - }; - - platform-bus@c000000 { - interrupt-parent = <0x8002>; - ranges = <0x00 0x00 0xc000000 0x2000000>; - #address-cells = <0x01>; - #size-cells = <0x01>; - compatible = "qemu,platform\0simple-bus"; - }; - - fw-cfg@9020000 { - dma-coherent; - reg = <0x00 0x9020000 0x00 0x18>; - compatible = "qemu,fw-cfg-mmio"; - }; - - virtio_mmio@a000000 { - dma-coherent; - interrupts = <0x00 0x10 0x01>; - reg = <0x00 0xa000000 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a000200 { - dma-coherent; - interrupts = <0x00 0x11 0x01>; - reg = <0x00 0xa000200 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a000400 { - dma-coherent; - interrupts = <0x00 0x12 0x01>; - reg = <0x00 0xa000400 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a000600 { - dma-coherent; - interrupts = <0x00 0x13 0x01>; - reg = <0x00 0xa000600 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a000800 { - dma-coherent; - interrupts = <0x00 0x14 0x01>; - reg = <0x00 0xa000800 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a000a00 { - dma-coherent; - interrupts = <0x00 0x15 0x01>; - reg = <0x00 0xa000a00 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a000c00 { - dma-coherent; - interrupts = <0x00 0x16 0x01>; - reg = <0x00 0xa000c00 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a000e00 { - dma-coherent; - interrupts = <0x00 0x17 0x01>; - reg = <0x00 0xa000e00 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a001000 { - dma-coherent; - interrupts = <0x00 0x18 0x01>; - reg = <0x00 0xa001000 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a001200 { - dma-coherent; - interrupts = <0x00 0x19 0x01>; - reg = <0x00 0xa001200 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a001400 { - dma-coherent; - interrupts = <0x00 0x1a 0x01>; - reg = <0x00 0xa001400 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a001600 { - dma-coherent; - interrupts = <0x00 0x1b 0x01>; - reg = <0x00 0xa001600 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a001800 { - dma-coherent; - interrupts = <0x00 0x1c 0x01>; - reg = <0x00 0xa001800 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a001a00 { - dma-coherent; - interrupts = <0x00 0x1d 0x01>; - reg = <0x00 0xa001a00 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a001c00 { - dma-coherent; - interrupts = <0x00 0x1e 0x01>; - reg = <0x00 0xa001c00 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a001e00 { - dma-coherent; - interrupts = <0x00 0x1f 0x01>; - reg = <0x00 0xa001e00 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a002000 { - dma-coherent; - interrupts = <0x00 0x20 0x01>; - reg = <0x00 0xa002000 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a002200 { - dma-coherent; - interrupts = <0x00 0x21 0x01>; - reg = <0x00 0xa002200 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a002400 { - dma-coherent; - interrupts = <0x00 0x22 0x01>; - reg = <0x00 0xa002400 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a002600 { - dma-coherent; - interrupts = <0x00 0x23 0x01>; - reg = <0x00 0xa002600 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a002800 { - dma-coherent; - interrupts = <0x00 0x24 0x01>; - reg = <0x00 0xa002800 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a002a00 { - dma-coherent; - interrupts = <0x00 0x25 0x01>; - reg = <0x00 0xa002a00 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a002c00 { - dma-coherent; - interrupts = <0x00 0x26 0x01>; - reg = <0x00 0xa002c00 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a002e00 { - dma-coherent; - interrupts = <0x00 0x27 0x01>; - reg = <0x00 0xa002e00 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a003000 { - dma-coherent; - interrupts = <0x00 0x28 0x01>; - reg = <0x00 0xa003000 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a003200 { - dma-coherent; - interrupts = <0x00 0x29 0x01>; - reg = <0x00 0xa003200 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a003400 { - dma-coherent; - interrupts = <0x00 0x2a 0x01>; - reg = <0x00 0xa003400 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a003600 { - dma-coherent; - interrupts = <0x00 0x2b 0x01>; - reg = <0x00 0xa003600 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a003800 { - dma-coherent; - interrupts = <0x00 0x2c 0x01>; - reg = <0x00 0xa003800 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a003a00 { - dma-coherent; - interrupts = <0x00 0x2d 0x01>; - reg = <0x00 0xa003a00 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a003c00 { - dma-coherent; - interrupts = <0x00 0x2e 0x01>; - reg = <0x00 0xa003c00 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a003e00 { - dma-coherent; - interrupts = <0x00 0x2f 0x01>; - reg = <0x00 0xa003e00 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - gpio-keys { - compatible = "gpio-keys"; - - poweroff { - gpios = <0x8004 0x03 0x00>; - linux,code = <0x74>; - label = "GPIO Key Poweroff"; - }; - }; - - pl061@9030000 { - phandle = <0x8004>; - clock-names = "apb_pclk"; - clocks = <0x8000>; - interrupts = <0x00 0x07 0x04>; - gpio-controller; - #gpio-cells = <0x02>; - compatible = "arm,pl061\0arm,primecell"; - reg = <0x00 0x9030000 0x00 0x1000>; - }; - - // pcie@10000000 { - // interrupt-map-mask = <0x1800 0x00 0x00 0x07>; - // interrupt-map = <0x00 0x00 0x00 0x01 0x8002 0x00 0x00 0x00 0x03 0x04 0x00 0x00 0x00 0x02 0x8002 0x00 0x00 0x00 0x04 0x04 0x00 0x00 0x00 0x03 0x8002 0x00 0x00 0x00 0x05 0x04 0x00 0x00 0x00 0x04 0x8002 0x00 0x00 0x00 0x06 0x04 0x800 0x00 0x00 0x01 0x8002 0x00 0x00 0x00 0x04 0x04 0x800 0x00 0x00 0x02 0x8002 0x00 0x00 0x00 0x05 0x04 0x800 0x00 0x00 0x03 0x8002 0x00 0x00 0x00 0x06 0x04 0x800 0x00 0x00 0x04 0x8002 0x00 0x00 0x00 0x03 0x04 0x1000 0x00 0x00 0x01 0x8002 0x00 0x00 0x00 0x05 0x04 0x1000 0x00 0x00 0x02 0x8002 0x00 0x00 0x00 0x06 0x04 0x1000 0x00 0x00 0x03 0x8002 0x00 0x00 0x00 0x03 0x04 0x1000 0x00 0x00 0x04 0x8002 0x00 0x00 0x00 0x04 0x04 0x1800 0x00 0x00 0x01 0x8002 0x00 0x00 0x00 0x06 0x04 0x1800 0x00 0x00 0x02 0x8002 0x00 0x00 0x00 0x03 0x04 0x1800 0x00 0x00 0x03 0x8002 0x00 0x00 0x00 0x04 0x04 0x1800 0x00 0x00 0x04 0x8002 0x00 0x00 0x00 0x05 0x04>; - // #interrupt-cells = <0x01>; - // ranges = <0x1000000 0x00 0x00 0x00 0x3eff0000 0x00 0x10000 0x2000000 0x00 0x10000000 0x00 0x10000000 0x00 0x2eff0000 0x3000000 0x80 0x00 0x80 0x00 0x80 0x00>; - // reg = <0x40 0x10000000 0x00 0x10000000>; - // msi-map = <0x00 0x8003 0x00 0x10000>; - // dma-coherent; - // bus-range = <0x00 0xff>; - // linux,pci-domain = <0x00>; - // #size-cells = <0x02>; - // #address-cells = <0x03>; - // device_type = "pci"; - // compatible = "pci-host-ecam-generic"; - // }; - - pl031@9010000 { - clock-names = "apb_pclk"; - clocks = <0x8000>; - interrupts = <0x00 0x02 0x04>; - reg = <0x00 0x9010000 0x00 0x1000>; - compatible = "arm,pl031\0arm,primecell"; - }; - - pl011@9000000 { - clock-names = "uartclk\0apb_pclk"; - clocks = <0x8000 0x8000>; - interrupts = <0x00 0x01 0x04>; - reg = <0x00 0x9000000 0x00 0x1000>; - compatible = "arm,pl011\0arm,primecell"; - }; - - pmu { - interrupts = <0x01 0x07 0x04>; - compatible = "arm,armv8-pmuv3"; - }; - - intc@8000000 { - phandle = <0x8002>; - interrupts = <0x01 0x09 0x04>; - reg = <0x00 0x8000000 0x00 0x10000 0x00 0x80a0000 0x00 0xf60000>; - #redistributor-regions = <0x01>; - compatible = "arm,gic-v3"; - ranges; - #size-cells = <0x02>; - #address-cells = <0x02>; - interrupt-controller; - #interrupt-cells = <0x03>; - - its@8080000 { - phandle = <0x8003>; - reg = <0x00 0x8080000 0x00 0x20000>; - #msi-cells = <0x01>; - msi-controller; - compatible = "arm,gic-v3-its"; - }; - }; - - flash@0 { - bank-width = <0x04>; - reg = <0x00 0x00 0x00 0x4000000 0x00 0x4000000 0x00 0x4000000>; - compatible = "cfi-flash"; - }; - - cpus { - #size-cells = <0x00>; - #address-cells = <0x01>; - - cpu-map { - - socket0 { - - cluster0 { - - core0 { - cpu = <0x8001>; - }; - }; - }; - }; - - cpu@0 { - phandle = <0x8001>; - reg = <0x00>; - compatible = "arm,cortex-a72"; - device_type = "cpu"; - }; - }; - - timer { - interrupts = <0x01 0x0d 0x04 0x01 0x0e 0x04 0x01 0x0b 0x04 0x01 0x0a 0x04>; - always-on; - compatible = "arm,armv8-timer\0arm,armv7-timer"; - }; - - apb-pclk { - phandle = <0x8000>; - clock-output-names = "clk24mhz"; - clock-frequency = <0x16e3600>; - #clock-cells = <0x00>; - compatible = "fixed-clock"; - }; - - aliases { - serial0 = "/pl011@9000000"; - }; - - chosen { - bootargs = "root=/dev/vda rw init=/init"; - stdout-path = "/pl011@9000000"; - rng-seed = <0xc63e7c7f 0x25869631 0xfa243fbb 0xe48363de 0xfd9dc3ce 0x5127dfe3 0x88de6403 0xb04a0eef>; - kaslr-seed = <0xdcf4331d 0x73a35db>; - }; -}; diff --git a/configs/vms_bkp/aio-rk3588-jd4-vm1.dts b/configs/vms_bkp/aio-rk3588-jd4-vm1.dts deleted file mode 100644 index a588f4bb..00000000 --- a/configs/vms_bkp/aio-rk3588-jd4-vm1.dts +++ /dev/null @@ -1,12818 +0,0 @@ -/dts-v1/; - -/ { - #address-cells = <0x02>; - model = "Firefly AIO-3588JD4"; - serial-number = "a0deeea630de3975"; - #size-cells = <0x02>; - interrupt-parent = <0x01>; - compatible = "rockchip,aio-3588jd4\0rockchip,rk3588"; - - pcie30-avdd1v8 { - regulator-max-microvolt = <0x1b7740>; - regulator-boot-on; - regulator-always-on; - regulator-min-microvolt = <0x1b7740>; - regulator-name = "pcie30_avdd1v8"; - compatible = "regulator-fixed"; - phandle = <0x4a6>; - vin-supply = <0x1de>; - }; - - syscon@fd5bc000 { - compatible = "rockchip,pipe-phy-grf\0syscon"; - reg = <0x00 0xfd5bc000 0x00 0x100>; - phandle = <0x194>; - }; - - vcc5v0-host3 { - regulator-max-microvolt = <0x4c4b40>; - regulator-boot-on; - gpio = <0x182 0x07 0x00>; - regulator-always-on; - enable-active-high; - regulator-min-microvolt = <0x4c4b40>; - regulator-name = "vcc5v0_host3"; - compatible = "regulator-fixed"; - status = "disabled"; - phandle = <0x4a2>; - vin-supply = <0x1dd>; - }; - - pwm@febd0030 { - pinctrl-names = "active"; - pinctrl-0 = <0x16c>; - clock-names = "pwm\0pclk"; - interrupts = <0x00 0x15a 0x04 0x00 0x15b 0x04>; - clocks = <0x02 0x54 0x02 0x53>; - #pwm-cells = <0x03>; - compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; - status = "disabled"; - reg = <0x00 0xfebd0030 0x00 0x10>; - phandle = <0x2d4>; - }; - - rkisp@fdcc0000 { - power-domains = <0x60 0x1c>; - iommus = <0xd1>; - clock-names = "aclk_isp\0hclk_isp\0clk_isp_core\0clk_isp_core_marvin\0clk_isp_core_vicap"; - interrupts = <0x00 0x87 0x04 0x00 0x89 0x04 0x00 0x8a 0x04>; - clocks = <0x02 0x120 0x02 0x121 0x02 0x11d 0x02 0x11e 0x02 0x11f>; - compatible = "rockchip,rk3588-rkisp"; - status = "disabled"; - interrupt-names = "isp_irq\0mi_irq\0mipi_irq"; - reg = <0x00 0xfdcc0000 0x00 0x7f00>; - phandle = <0x5a>; - }; - - qos@fdf66600 { - compatible = "syscon"; - reg = <0x00 0xfdf66600 0x00 0x20>; - phandle = <0x96>; - }; - - serial@febb0000 { - reg-io-width = <0x04>; - pinctrl-names = "default"; - pinctrl-0 = <0x167>; - clock-names = "baudclk\0apb_pclk"; - interrupts = <0x00 0x153 0x04>; - clocks = <0x02 0xd3 0x02 0xb2>; - compatible = "rockchip,rk3588-uart\0snps,dw-apb-uart"; - status = "disabled"; - reg = <0x00 0xfebb0000 0x00 0x100>; - phandle = <0x2d0>; - dmas = <0xf2 0x09 0xf2 0x0a>; - reg-shift = <0x02>; - }; - - qos@fdf41000 { - compatible = "syscon"; - reg = <0x00 0xfdf41000 0x00 0x20>; - phandle = <0xa6>; - }; - - csi2-dcphy1 { - rockchip,hw = <0x2d 0x2e>; - phy-names = "dcphy0\0dcphy1"; - compatible = "rockchip,rk3588-csi2-dphy"; - status = "disabled"; - phys = <0x2f 0x30>; - phandle = <0x20e>; - }; - - rkispp0-vir0 { - rockchip,hw = <0x5b>; - compatible = "rockchip,rk3588-rkispp-vir"; - status = "disabled"; - phandle = <0x243>; - }; - - wireless-bluetooth { - pinctrl-names = "default\0rts_gpio"; - pinctrl-0 = <0x1e5 0x1e6 0x1e7 0x1e8>; - clock-names = "ext_clock"; - BT,power_gpio = <0x7b 0x16 0x00>; - clocks = <0x1e4>; - BT,wake_gpio = <0x7b 0x15 0x00>; - uart_rts_gpios = <0xfe 0x02 0x01>; - compatible = "bluetooth-platdata"; - BT,wake_host_irq = <0x7b 0x00 0x00>; - pinctrl-1 = <0x1e9>; - status = "disabled"; - phandle = <0x4aa>; - }; - - pwm@febd0020 { - pinctrl-names = "active"; - pinctrl-0 = <0x16b>; - clock-names = "pwm\0pclk"; - interrupts = <0x00 0x15a 0x04>; - clocks = <0x02 0x54 0x02 0x53>; - #pwm-cells = <0x03>; - compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; - status = "disabled"; - reg = <0x00 0xfebd0020 0x00 0x10>; - phandle = <0x2d3>; - }; - - qos@fdf39000 { - compatible = "syscon"; - reg = <0x00 0xfdf39000 0x00 0x20>; - phandle = <0xaf>; - }; - - cam0-cam1-switch { - regulator-max-microvolt = <0x1b7740>; - pinctrl-names = "default"; - regulator-boot-on; - gpio = <0x181 0x11 0x00>; - pinctrl-0 = <0x1f0>; - regulator-always-on; - enable-active-high; - regulator-min-microvolt = <0x1b7740>; - regulator-name = "cam0_cam1_switch"; - compatible = "regulator-fixed"; - status = "okay"; - phandle = <0x4b2>; - }; - - qos@fdf3e400 { - compatible = "syscon"; - reg = <0x00 0xfdf3e400 0x00 0x20>; - phandle = <0xad>; - }; - - mipi2-csi2 { - rockchip,hw = <0x47 0x48 0x49 0x4a 0x4b 0x4c>; - compatible = "rockchip,rk3588-mipi-csi2"; - status = "okay"; - firefly-compatible; - phandle = <0x226>; - - ports { - #address-cells = <0x01>; - #size-cells = <0x00>; - - port@0 { - #address-cells = <0x01>; - #size-cells = <0x00>; - reg = <0x00>; - - endpoint@0 { - remote-endpoint = <0x4d>; - reg = <0x00>; - phandle = <0x33>; - }; - }; - - port@1 { - #address-cells = <0x01>; - #size-cells = <0x00>; - reg = <0x01>; - - endpoint@0 { - remote-endpoint = <0x4e>; - reg = <0x00>; - phandle = <0x54>; - }; - }; - }; - }; - - iommu@fdc48700 { - power-domains = <0x60 0x0f>; - rockchip,shootdown-entire; - clock-names = "aclk\0iface"; - interrupts = <0x00 0x62 0x04>; - clocks = <0x02 0x195 0x02 0x194>; - rockchip,enable-cmd-retry; - #iommu-cells = <0x00>; - compatible = "rockchip,iommu-v2"; - rockchip,disable-mmu-reset; - status = "okay"; - interrupt-names = "irq_rkvdec1_mmu"; - reg = <0x00 0xfdc48700 0x00 0x40 0x00 0xfdc48740 0x00 0x40>; - phandle = <0xcc>; - rockchip,master-handle-irq; - }; - - clocks { - #address-cells = <0x02>; - #size-cells = <0x02>; - compatible = "simple-bus"; - ranges; - - hclk_nvm@fd7c087c { - clock-names = "link"; - clocks = <0x02 0x141>; - #clock-cells = <0x00>; - #power-domain-cells = <0x01>; - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c087c 0x00 0x10>; - phandle = <0x03>; - }; - - mclkin-i2s0 { - clock-output-names = "i2s0_mclkin"; - #clock-cells = <0x00>; - clock-frequency = <0x00>; - compatible = "fixed-clock"; - phandle = <0x204>; - }; - - hclk_rkvenc1_pre@fd7c08c0 { - clock-names = "link"; - clocks = <0x02 0x1c4>; - #clock-cells = <0x00>; - #power-domain-cells = <0x01>; - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c08c0 0x00 0x10>; - phandle = <0x1fe>; - }; - - mclkout-i2s1@fd58c318 { - rockchip,clk-ignore-unused; - clock-output-names = "i2s1_mclkout_to_io"; - clocks = <0x02 0x291>; - rockchip,bit-set-to-disable; - #clock-cells = <0x00>; - compatible = "rockchip,clk-out"; - reg = <0x00 0xfd58c318 0x00 0x04>; - phandle = <0x208>; - rockchip,bit-shift = <0x01>; - }; - - mclkout-i2s1@fd58a000 { - rockchip,clk-ignore-unused; - clock-output-names = "i2s1m1_mclkout_to_io"; - clocks = <0x02 0x291>; - #clock-cells = <0x00>; - compatible = "rockchip,clk-out"; - reg = <0x00 0xfd58a000 0x00 0x04>; - phandle = <0x209>; - rockchip,bit-shift = <0x06>; - }; - - aclk_hdcp0_pre@fd7c08dc { - clock-names = "link"; - clocks = <0x02 0x26c>; - #clock-cells = <0x00>; - #power-domain-cells = <0x01>; - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c08dc 0x00 0x10>; - phandle = <0x1ff>; - }; - - xin32k { - clock-output-names = "xin32k"; - #clock-cells = <0x00>; - clock-frequency = <0x8000>; - compatible = "fixed-clock"; - phandle = <0x1f2>; - }; - - aclk_usb@fd7c08a8 { - clock-names = "link"; - clocks = <0x02 0x263>; - #clock-cells = <0x00>; - #power-domain-cells = <0x01>; - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c08a8 0x00 0x10>; - phandle = <0x6a>; - }; - - hclk_usb@fd7c08a8 { - clock-names = "link"; - clocks = <0x02 0x264>; - #clock-cells = <0x00>; - #power-domain-cells = <0x01>; - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c08a8 0x00 0x10>; - phandle = <0x1f5>; - }; - - hclk_vo0@fd7c08dc { - clock-names = "link"; - clocks = <0x02 0x26d>; - #clock-cells = <0x00>; - #power-domain-cells = <0x01>; - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c08dc 0x00 0x10>; - phandle = <0x04>; - }; - - pclk_av1_pre@fd7c0910 { - clock-names = "link"; - clocks = <0x02 0x1be>; - #clock-cells = <0x00>; - #power-domain-cells = <0x01>; - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c0910 0x00 0x10>; - phandle = <0x201>; - }; - - mclkout-i2s2@fd58c318 { - rockchip,clk-ignore-unused; - clock-output-names = "i2s2_mclkout_to_io"; - clocks = <0x02 0x28>; - rockchip,bit-set-to-disable; - #clock-cells = <0x00>; - compatible = "rockchip,clk-out"; - reg = <0x00 0xfd58c318 0x00 0x04>; - phandle = <0x20a>; - rockchip,bit-shift = <0x02>; - }; - - aclk_vdpu_low_pre@fd7c08b0 { - clock-names = "link"; - clocks = <0x02 0x1bc>; - #clock-cells = <0x00>; - #power-domain-cells = <0x01>; - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c08b0 0x00 0x10>; - phandle = <0x1f4>; - }; - - mclkin-i2s3 { - clock-output-names = "i2s3_mclkin"; - #clock-cells = <0x00>; - clock-frequency = <0x00>; - compatible = "fixed-clock"; - phandle = <0x207>; - }; - - spll { - clock-output-names = "spll"; - #clock-cells = <0x00>; - clock-frequency = <0x29d7ab80>; - compatible = "fixed-clock"; - phandle = <0x1f1>; - }; - - xin24m { - clock-output-names = "xin24m"; - #clock-cells = <0x00>; - clock-frequency = <0x16e3600>; - compatible = "fixed-clock"; - phandle = <0x1f3>; - }; - - aclk_av1_pre@fd7c0910 { - clock-names = "link"; - clocks = <0x02 0x1bc>; - #clock-cells = <0x00>; - #power-domain-cells = <0x01>; - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c0910 0x00 0x10>; - phandle = <0x202>; - }; - - pclk_vo0_grf@fd7c08dc { - clock-names = "link"; - clocks = <0x04>; - #clock-cells = <0x00>; - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c08dc 0x00 0x04>; - phandle = <0x72>; - }; - - aclk_jpeg_decoder_pre@fd7c08b0 { - clock-names = "link"; - clocks = <0x02 0x1bc>; - #clock-cells = <0x00>; - #power-domain-cells = <0x01>; - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c08b0 0x00 0x10>; - phandle = <0x1fc>; - }; - - aclk_hdcp1_pre@fd7c08ec { - clock-names = "link"; - clocks = <0x02 0x263>; - #clock-cells = <0x00>; - #power-domain-cells = <0x01>; - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c08ec 0x00 0x10>; - phandle = <0x200>; - }; - - mclkin-i2s1 { - clock-output-names = "i2s1_mclkin"; - #clock-cells = <0x00>; - clock-frequency = <0x00>; - compatible = "fixed-clock"; - phandle = <0x205>; - }; - - hclk_vo1@fd7c08ec { - clock-names = "link"; - clocks = <0x02 0x264>; - #clock-cells = <0x00>; - #power-domain-cells = <0x01>; - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c08ec 0x00 0x10>; - phandle = <0x05>; - }; - - mclkout-i2s3@fd58c318 { - rockchip,clk-ignore-unused; - clock-output-names = "i2s3_mclkout_to_io"; - clocks = <0x02 0x2e>; - rockchip,bit-set-to-disable; - #clock-cells = <0x00>; - compatible = "rockchip,clk-out"; - reg = <0x00 0xfd58c318 0x00 0x04>; - phandle = <0x20b>; - rockchip,bit-shift = <0x07>; - }; - - aclk_rkvdec0_pre@fd7c08a0 { - clock-names = "link"; - clocks = <0x02 0x1bc>; - #clock-cells = <0x00>; - #power-domain-cells = <0x01>; - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c08a0 0x00 0x10>; - phandle = <0x1f8>; - }; - - aclk_isp1_pre@fd7c0868 { - clock-names = "link"; - clocks = <0x02 0x1e0>; - #clock-cells = <0x00>; - #power-domain-cells = <0x01>; - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c0868 0x00 0x10>; - phandle = <0x1f7>; - }; - - pclk_vo1_grf@fd7c08ec { - clock-names = "link"; - clocks = <0x05>; - #clock-cells = <0x00>; - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c08ec 0x00 0x04>; - phandle = <0x73>; - }; - - aclk_rkvdec1_pre@fd7c08a4 { - clock-names = "link"; - clocks = <0x02 0x1bc>; - #clock-cells = <0x00>; - #power-domain-cells = <0x01>; - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c08a4 0x00 0x10>; - phandle = <0x1fa>; - }; - - hclk_rkvdec0_pre@fd7c08a0 { - clock-names = "link"; - clocks = <0x02 0x1be>; - #clock-cells = <0x00>; - #power-domain-cells = <0x01>; - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c08a0 0x00 0x10>; - phandle = <0x1f9>; - }; - - hclk_sdio_pre@fd7c092c { - clock-names = "link"; - clocks = <0x03>; - #clock-cells = <0x00>; - #power-domain-cells = <0x01>; - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c092c 0x00 0x10>; - phandle = <0x203>; - }; - - hclk_rkvdec1_pre@fd7c08a4 { - clock-names = "link"; - clocks = <0x02 0x1be>; - #clock-cells = <0x00>; - #power-domain-cells = <0x01>; - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c08a4 0x00 0x10>; - phandle = <0x1fb>; - }; - - hclk_isp1_pre@fd7c0868 { - clock-names = "link"; - clocks = <0x02 0x1e1>; - #clock-cells = <0x00>; - #power-domain-cells = <0x01>; - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c0868 0x00 0x10>; - phandle = <0x1f6>; - }; - - mclkout-i2s0@fd58c318 { - rockchip,clk-ignore-unused; - clock-output-names = "i2s0_mclkout_to_io"; - clocks = <0x02 0x39>; - rockchip,bit-set-to-disable; - #clock-cells = <0x00>; - compatible = "rockchip,clk-out"; - reg = <0x00 0xfd58c318 0x00 0x04>; - phandle = <0x179>; - rockchip,bit-shift = <0x00>; - }; - - mclkin-i2s2 { - clock-output-names = "i2s2_mclkin"; - #clock-cells = <0x00>; - clock-frequency = <0x00>; - compatible = "fixed-clock"; - phandle = <0x206>; - }; - - aclk_rkvenc1_pre@fd7c08c0 { - clock-names = "link"; - clocks = <0x02 0x1c5>; - #clock-cells = <0x00>; - #power-domain-cells = <0x01>; - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c08c0 0x00 0x10>; - phandle = <0x1fd>; - }; - }; - - clock-controller@fd7c0000 { - #reset-cells = <0x01>; - assigned-clocks = <0x02 0x09 0x02 0x05 0x02 0x08 0x02 0x07 0x02 0xd8 0x02 0xda 0x02 0xd9 0x02 0x10e 0x02 0x10f 0x02 0x110 0x02 0x299 0x02 0x29a 0x02 0x7b 0x02 0xec 0x02 0x114 0x02 0x208 0x02 0x20e 0x02 0x21f 0x02 0x77>; - assigned-clock-rates = <0x4190ab00 0x2ee00000 0x32a9f880 0x46cf7100 0x29d7ab80 0x17d78400 0x1dcd6500 0x2cb41780 0x5f5e100 0x17d78400 0x5f5e100 0xbebc200 0x165a0bc0 0x8f0d180 0xbebc200 0xb71b00 0xb71b00 0x5e69ec0 0x1312d00>; - #clock-cells = <0x01>; - compatible = "rockchip,rk3588-cru"; - rockchip,grf = <0x76>; - reg = <0x00 0xfd7c0000 0x00 0x5c000>; - phandle = <0x02>; - }; - - qos@fdf81000 { - compatible = "syscon"; - reg = <0x00 0xfdf81000 0x00 0x20>; - phandle = <0xa0>; - }; - - qos@fdf36000 { - compatible = "syscon"; - reg = <0x00 0xfdf36000 0x00 0x20>; - phandle = <0xaa>; - }; - - i2s@fe4a0000 { - power-domains = <0x60 0x26>; - pinctrl-names = "default\0idle\0clk"; - pinctrl-2 = <0x132 0x133>; - pinctrl-0 = <0x12f 0x130>; - clock-names = "i2s_clk\0i2s_hclk"; - assigned-clocks = <0x02 0x2a>; - assigned-clock-parents = <0x02 0x05>; - interrupts = <0x00 0xb7 0x04>; - clocks = <0x02 0x2d 0x02 0x23>; - dma-names = "tx\0rx"; - #sound-dai-cells = <0x00>; - compatible = "rockchip,rk3588-i2s\0rockchip,rk3066-i2s"; - pinctrl-1 = <0x131>; - status = "disabled"; - reg = <0x00 0xfe4a0000 0x00 0x1000>; - phandle = <0x299>; - dmas = <0xf1 0x02 0xf1 0x03>; - rockchip,clk-trcm = <0x01>; - }; - - syscon@fd5c4000 { - compatible = "rockchip,pipe-phy-grf\0syscon"; - reg = <0x00 0xfd5c4000 0x00 0x100>; - phandle = <0x195>; - }; - - sram@ff001000 { - #address-cells = <0x01>; - #size-cells = <0x01>; - compatible = "mmio-sram"; - ranges = <0x00 0x00 0xff001000 0xef000>; - reg = <0x00 0xff001000 0x00 0xef000>; - phandle = <0x2eb>; - - rkvdec-sram@0 { - reg = <0x00 0x78000>; - phandle = <0xcb>; - }; - - rkvdec-sram@78000 { - reg = <0x78000 0x77000>; - phandle = <0xcd>; - }; - }; - - pwm@febd0010 { - pinctrl-names = "active"; - pinctrl-0 = <0x16a>; - clock-names = "pwm\0pclk"; - interrupts = <0x00 0x15a 0x04>; - clocks = <0x02 0x54 0x02 0x53>; - #pwm-cells = <0x03>; - compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; - status = "okay"; - reg = <0x00 0xfebd0010 0x00 0x10>; - phandle = <0x1ed>; - }; - - rkisp1-vir3 { - rockchip,hw = <0x5a>; - compatible = "rockchip,rkisp-vir"; - status = "disabled"; - phandle = <0x242>; - }; - - pcie-clk2 { - regulator-boot-on; - regulator-always-on; - regulator-name = "pcie_clk2"; - compatible = "regulator-fixed"; - status = "okay"; - phandle = <0x495>; - gpios = <0x181 0x16 0x01>; - }; - - serial@feb40000 { - reg-io-width = <0x04>; - pinctrl-names = "default"; - pinctrl-0 = <0x160>; - clock-names = "baudclk\0apb_pclk"; - interrupts = <0x00 0x14c 0x04>; - clocks = <0x02 0xb7 0x02 0xab>; - compatible = "rockchip,rk3588-uart\0snps,dw-apb-uart"; - status = "okay"; - reg = <0x00 0xfeb40000 0x00 0x100>; - phandle = <0x2c9>; - dmas = <0x7c 0x08 0x7c 0x09>; - reg-shift = <0x02>; - }; - - pinctrl { - #address-cells = <0x02>; - #size-cells = <0x02>; - compatible = "rockchip,rk3588-pinctrl"; - ranges; - rockchip,grf = <0x196>; - phandle = <0x197>; - - eth0 { - - eth0-pins { - rockchip,pins = <0x02 0x13 0x01 0x198>; - phandle = <0x46c>; - }; - }; - - i2c3 { - - i2c3m3-xfer { - rockchip,pins = <0x02 0x0a 0x09 0x19d 0x02 0x0b 0x09 0x19d>; - phandle = <0x361>; - }; - - i2c3m2-xfer { - rockchip,pins = <0x04 0x04 0x09 0x19d 0x04 0x05 0x09 0x19d>; - phandle = <0x14a>; - }; - - i2c3m1-xfer { - rockchip,pins = <0x03 0x0f 0x09 0x19d 0x03 0x10 0x09 0x19d>; - phandle = <0x35f>; - }; - - i2c3m0-xfer { - rockchip,pins = <0x01 0x11 0x09 0x19d 0x01 0x10 0x09 0x19d>; - phandle = <0x35e>; - }; - - i2c3m4-xfer { - rockchip,pins = <0x04 0x18 0x09 0x19d 0x04 0x19 0x09 0x19d>; - phandle = <0x360>; - }; - }; - - pwm9 { - - pwm9m2-pins { - rockchip,pins = <0x03 0x19 0x0b 0x198>; - phandle = <0x3d7>; - }; - - pwm9m1-pins { - rockchip,pins = <0x04 0x19 0x0b 0x198>; - phandle = <0x3d6>; - }; - - pwm9m0-pins { - rockchip,pins = <0x03 0x08 0x0b 0x198>; - phandle = <0x16e>; - }; - }; - - pcfg-pull-none-drv-level-7 { - drive-strength = <0x07>; - bias-disable; - phandle = <0x451>; - }; - - mipi { - - mipi-te1 { - rockchip,pins = <0x03 0x13 0x02 0x198>; - phandle = <0x39f>; - }; - - mipim1-camera2-clk { - rockchip,pins = <0x03 0x07 0x04 0x198>; - phandle = <0x39b>; - }; - - mipim0-camera0-clk { - rockchip,pins = <0x04 0x09 0x01 0x198>; - phandle = <0x395>; - }; - - mipim0-camera4-clk { - rockchip,pins = <0x01 0x1f 0x02 0x198>; - phandle = <0x399>; - }; - - mipim1-camera3-clk { - rockchip,pins = <0x03 0x08 0x04 0x198>; - phandle = <0x39c>; - }; - - mipim0-camera1-clk { - rockchip,pins = <0x01 0x0e 0x02 0x198>; - phandle = <0x396>; - }; - - mipim1-camera0-clk { - rockchip,pins = <0x03 0x05 0x04 0x198>; - phandle = <0x39a>; - }; - - mipim1-camera4-clk { - rockchip,pins = <0x03 0x09 0x04 0x198>; - phandle = <0x39d>; - }; - - mipim0-camera2-clk { - rockchip,pins = <0x01 0x0f 0x02 0x198>; - phandle = <0x397>; - }; - - mipi-te0 { - rockchip,pins = <0x03 0x12 0x02 0x198>; - phandle = <0x39e>; - }; - - mipim1-camera1-clk { - rockchip,pins = <0x03 0x06 0x04 0x198>; - phandle = <0x180>; - }; - - mipim0-camera3-clk { - rockchip,pins = <0x01 0x1e 0x02 0x198>; - phandle = <0x398>; - }; - }; - - pwm14 { - - pwm14m2-pins { - rockchip,pins = <0x01 0x1e 0x0b 0x198>; - phandle = <0x3e1>; - }; - - pwm14m1-pins { - rockchip,pins = <0x04 0x0a 0x0b 0x198>; - phandle = <0x3e0>; - }; - - pwm14m0-pins { - rockchip,pins = <0x03 0x12 0x0b 0x198>; - phandle = <0x173>; - }; - }; - - pcfg-pull-none-drv-level-4-smt { - drive-strength = <0x04>; - bias-disable; - input-schmitt-enable; - phandle = <0x303>; - }; - - headphone { - - hp-det { - rockchip,pins = <0x02 0x13 0x00 0x198>; - phandle = <0x1dc>; - }; - }; - - npu { - - npu-pins { - rockchip,pins = <0x00 0x16 0x02 0x198>; - phandle = <0x3a0>; - }; - }; - - wireless-bluetooth { - - bt-reset-gpio { - rockchip,pins = <0x00 0x16 0x00 0x198>; - phandle = <0x1e6>; - }; - - bt-irq-gpio { - rockchip,pins = <0x00 0x00 0x00 0x198>; - phandle = <0x1e8>; - }; - - bt-wake-gpio { - rockchip,pins = <0x00 0x15 0x00 0x198>; - phandle = <0x1e7>; - }; - - uart6-gpios { - rockchip,pins = <0x01 0x02 0x00 0x198>; - phandle = <0x1e9>; - }; - }; - - pcie30x1 { - - pcie30x1-1-button-rstn { - rockchip,pins = <0x04 0x0a 0x04 0x198>; - phandle = <0x3a9>; - }; - - pcie30x1m1-pins { - rockchip,pins = <0x04 0x03 0x04 0x198 0x04 0x05 0x04 0x198 0x04 0x04 0x04 0x198 0x04 0x00 0x04 0x198 0x04 0x02 0x04 0x198 0x04 0x01 0x04 0x198>; - phandle = <0x3a6>; - }; - - pcie30x1m0-pins { - rockchip,pins = <0x00 0x10 0x0c 0x198 0x00 0x15 0x0c 0x198 0x00 0x14 0x0c 0x198 0x00 0x0d 0x0c 0x198 0x00 0x0f 0x0c 0x198 0x00 0x0e 0x0c 0x198>; - phandle = <0x3a5>; - }; - - pcie30x1-0-button-rstn { - rockchip,pins = <0x04 0x09 0x04 0x198>; - phandle = <0x3a8>; - }; - - pcie30x1m2-pins { - rockchip,pins = <0x01 0x0d 0x04 0x198 0x01 0x0c 0x04 0x198 0x01 0x0b 0x04 0x198 0x01 0x00 0x04 0x198 0x01 0x07 0x04 0x198 0x01 0x01 0x04 0x198>; - phandle = <0x3a7>; - }; - }; - - uart8 { - - uart8m0-rtsn { - rockchip,pins = <0x04 0x0a 0x0a 0x198>; - phandle = <0x443>; - }; - - uart8m1-ctsn { - rockchip,pins = <0x03 0x05 0x0a 0x198>; - phandle = <0x444>; - }; - - uart8m0-ctsn { - rockchip,pins = <0x04 0x0b 0x0a 0x198>; - phandle = <0x442>; - }; - - uart8m1-xfer { - rockchip,pins = <0x03 0x03 0x0a 0x19e 0x03 0x02 0x0a 0x19e>; - phandle = <0x167>; - }; - - uart8m0-xfer { - rockchip,pins = <0x04 0x09 0x0a 0x19e 0x04 0x08 0x0a 0x19e>; - phandle = <0x441>; - }; - - uart8-xfer { - rockchip,pins = <0x04 0x09 0x0a 0x19e>; - phandle = <0x446>; - }; - - uart8m1-rtsn { - rockchip,pins = <0x03 0x04 0x0a 0x198>; - phandle = <0x445>; - }; - }; - - spi2 { - - spi2m0-cs1 { - rockchip,pins = <0x01 0x08 0x08 0x19a>; - phandle = <0x404>; - }; - - spi2m2-cs0 { - rockchip,pins = <0x00 0x09 0x01 0x19f>; - phandle = <0x154>; - }; - - spi2m1-cs1 { - rockchip,pins = <0x04 0x08 0x08 0x19a>; - phandle = <0x407>; - }; - - spi2m2-pins { - rockchip,pins = <0x00 0x05 0x01 0x19f 0x00 0x0b 0x01 0x19f 0x00 0x06 0x01 0x19f>; - phandle = <0x155>; - }; - - spi2m1-pins { - rockchip,pins = <0x04 0x06 0x08 0x19a 0x04 0x04 0x08 0x19a 0x04 0x05 0x08 0x19a>; - phandle = <0x405>; - }; - - spi2m2-cs1 { - rockchip,pins = <0x00 0x08 0x01 0x19f>; - phandle = <0x408>; - }; - - spi2m0-cs0 { - rockchip,pins = <0x01 0x07 0x08 0x19a>; - phandle = <0x403>; - }; - - spi2m0-pins { - rockchip,pins = <0x01 0x06 0x08 0x19a 0x01 0x04 0x08 0x19a 0x01 0x05 0x08 0x19a>; - phandle = <0x402>; - }; - - spi2m1-cs0 { - rockchip,pins = <0x04 0x07 0x08 0x19a>; - phandle = <0x406>; - }; - }; - - pcfg-pull-up-drv-level-15 { - drive-strength = <0x0f>; - phandle = <0x462>; - bias-pull-up; - }; - - pcfg-pull-down-drv-level-13 { - drive-strength = <0x0d>; - bias-pull-down; - phandle = <0x469>; - }; - - pcfg-pull-up-drv-level-2 { - drive-strength = <0x02>; - phandle = <0x199>; - bias-pull-up; - }; - - i2s1 { - - i2s1m0-sdo1 { - rockchip,pins = <0x04 0x0a 0x03 0x198>; - phandle = <0x127>; - }; - - i2s1m1-sdi1 { - rockchip,pins = <0x00 0x16 0x01 0x198>; - phandle = <0x380>; - }; - - i2s1m0-sdi3 { - rockchip,pins = <0x04 0x08 0x03 0x198>; - phandle = <0x125>; - }; - - i2s1m0-mclk { - rockchip,pins = <0x04 0x00 0x03 0x19d>; - phandle = <0x37b>; - }; - - i2s1m0-sdi1 { - rockchip,pins = <0x04 0x06 0x03 0x198>; - phandle = <0x123>; - }; - - i2s1m1-sdo2 { - rockchip,pins = <0x00 0x1c 0x01 0x198>; - phandle = <0x385>; - }; - - i2s1m1-sdo0 { - rockchip,pins = <0x00 0x19 0x01 0x198>; - phandle = <0x383>; - }; - - i2s1m0-sdo2 { - rockchip,pins = <0x04 0x0b 0x03 0x198>; - phandle = <0x128>; - }; - - i2s1m1-sdi2 { - rockchip,pins = <0x00 0x17 0x01 0x198>; - phandle = <0x381>; - }; - - i2s1m0-sdo0 { - rockchip,pins = <0x04 0x09 0x03 0x198>; - phandle = <0x126>; - }; - - i2s1m1-sdi0 { - rockchip,pins = <0x00 0x15 0x01 0x198>; - phandle = <0x37f>; - }; - - i2s1m0-sdi2 { - rockchip,pins = <0x04 0x07 0x03 0x198>; - phandle = <0x124>; - }; - - i2s1m1-sclk { - rockchip,pins = <0x00 0x0e 0x01 0x19d>; - phandle = <0x37e>; - }; - - i2s1m0-sdi0 { - rockchip,pins = <0x04 0x05 0x03 0x198>; - phandle = <0x122>; - }; - - i2s1m1-sdo3 { - rockchip,pins = <0x00 0x1d 0x01 0x198>; - phandle = <0x386>; - }; - - i2s1m1-lrck { - rockchip,pins = <0x00 0x0f 0x01 0x19d>; - phandle = <0x37c>; - }; - - i2s1m0-sclk { - rockchip,pins = <0x04 0x01 0x03 0x19d>; - phandle = <0x121>; - }; - - i2s1m1-sdo1 { - rockchip,pins = <0x00 0x1a 0x01 0x198>; - phandle = <0x384>; - }; - - i2s1m0-sdo3 { - rockchip,pins = <0x04 0x0c 0x03 0x198>; - phandle = <0x129>; - }; - - i2s1m1-sdi3 { - rockchip,pins = <0x00 0x18 0x01 0x198>; - phandle = <0x382>; - }; - - i2s1m0-lrck { - rockchip,pins = <0x04 0x02 0x03 0x19d>; - phandle = <0x120>; - }; - - i2s1m1-mclk { - rockchip,pins = <0x00 0x0d 0x01 0x19d>; - phandle = <0x37d>; - }; - }; - - ddrphych2 { - - ddrphych2-pins { - rockchip,pins = <0x04 0x08 0x07 0x198 0x04 0x09 0x07 0x198 0x04 0x0a 0x07 0x198 0x04 0x0b 0x07 0x198>; - phandle = <0x31a>; - }; - }; - - pcfg-pull-none-drv-level-12 { - drive-strength = <0x0c>; - bias-disable; - phandle = <0x456>; - }; - - i2c1 { - - i2c1m2-xfer { - rockchip,pins = <0x00 0x1c 0x09 0x19d 0x00 0x1d 0x09 0x19d>; - phandle = <0x148>; - }; - - i2c1m1-xfer { - rockchip,pins = <0x00 0x08 0x02 0x19d 0x00 0x09 0x02 0x19d>; - phandle = <0x357>; - }; - - i2c1m0-xfer { - rockchip,pins = <0x00 0x0d 0x09 0x19d 0x00 0x0e 0x09 0x19d>; - phandle = <0x356>; - }; - - i2c1m4-xfer { - rockchip,pins = <0x01 0x1a 0x09 0x19d 0x01 0x1b 0x09 0x19d>; - phandle = <0x359>; - }; - - i2c1m3-xfer { - rockchip,pins = <0x02 0x1c 0x09 0x19d 0x02 0x1d 0x09 0x19d>; - phandle = <0x358>; - }; - }; - - pwm7 { - - pwm7m3-pins { - rockchip,pins = <0x04 0x16 0x0b 0x198>; - phandle = <0x3d3>; - }; - - pwm7m2-pins { - rockchip,pins = <0x01 0x13 0x0b 0x198>; - phandle = <0x3d2>; - }; - - pwm7m1-pins { - rockchip,pins = <0x04 0x1c 0x0b 0x198>; - phandle = <0x3d1>; - }; - - pwm7m0-pins { - rockchip,pins = <0x00 0x18 0x0b 0x198>; - phandle = <0x16c>; - }; - }; - - pcfg-pull-none-drv-level-5 { - drive-strength = <0x05>; - bias-disable; - phandle = <0x2f1>; - }; - - gmac0 { - - gmac0-clkinout { - rockchip,pins = <0x04 0x13 0x01 0x198>; - phandle = <0x46d>; - }; - - gmac0-miim { - rockchip,pins = <0x04 0x14 0x01 0x198 0x04 0x15 0x01 0x198>; - phandle = <0x1c1>; - }; - - gmac0-tx-bus2 { - rockchip,pins = <0x02 0x0e 0x01 0x19a 0x02 0x0f 0x01 0x19a 0x02 0x10 0x01 0x198>; - phandle = <0x1c2>; - }; - - gmac0-rgmii-bus { - rockchip,pins = <0x02 0x06 0x01 0x198 0x02 0x07 0x01 0x198 0x02 0x09 0x01 0x19a 0x02 0x0a 0x01 0x19a>; - phandle = <0x1c5>; - }; - - gmac0-ppsclk { - rockchip,pins = <0x02 0x14 0x01 0x198>; - phandle = <0x46e>; - }; - - gmac0-txer { - rockchip,pins = <0x04 0x16 0x01 0x198>; - phandle = <0x471>; - }; - - gmac0-ptp-refclk { - rockchip,pins = <0x02 0x0c 0x01 0x198>; - phandle = <0x470>; - }; - - gmac0-rx-bus2 { - rockchip,pins = <0x02 0x11 0x01 0x198 0x02 0x12 0x01 0x198 0x04 0x12 0x01 0x198>; - phandle = <0x1c3>; - }; - - gmac0-rgmii-clk { - rockchip,pins = <0x02 0x08 0x01 0x198 0x02 0x0b 0x01 0x198>; - phandle = <0x1c4>; - }; - - gmac0-ppstring { - rockchip,pins = <0x02 0x0d 0x01 0x198>; - phandle = <0x46f>; - }; - }; - - pwm12 { - - pwm12m1-pins { - rockchip,pins = <0x04 0x0d 0x0b 0x198>; - phandle = <0x3dd>; - }; - - pwm12m0-pins { - rockchip,pins = <0x03 0x0d 0x0b 0x198>; - phandle = <0x171>; - }; - }; - - usb-typec { - - usbc0-int { - rockchip,pins = <0x00 0x1b 0x00 0x198>; - phandle = <0x17b>; - }; - - usb-5v-ctrl { - rockchip,pins = <0x01 0x03 0x00 0x198>; - phandle = <0x1ef>; - }; - }; - - uart6 { - - uart6m1-ctsn { - rockchip,pins = <0x01 0x03 0x0a 0x198>; - phandle = <0x436>; - }; - - uart6m2-xfer { - rockchip,pins = <0x01 0x19 0x0a 0x19e 0x01 0x18 0x0a 0x19e>; - phandle = <0x437>; - }; - - uart6m0-ctsn { - rockchip,pins = <0x02 0x09 0x0a 0x198>; - phandle = <0x439>; - }; - - uart6m1-xfer { - rockchip,pins = <0x01 0x00 0x0a 0x19e 0x01 0x01 0x0a 0x19e>; - phandle = <0x165>; - }; - - uart6m0-xfer { - rockchip,pins = <0x02 0x06 0x0a 0x19e 0x02 0x07 0x0a 0x19e>; - phandle = <0x438>; - }; - - uart6m1-rtsn { - rockchip,pins = <0x01 0x02 0x0a 0x198>; - phandle = <0x1e5>; - }; - - uart6m0-rtsn { - rockchip,pins = <0x02 0x08 0x0a 0x198>; - phandle = <0x43a>; - }; - }; - - pcfg-pull-down-drv-level-8 { - drive-strength = <0x08>; - bias-pull-down; - phandle = <0x464>; - }; - - gpu { - - gpu-pins { - rockchip,pins = <0x00 0x15 0x02 0x198>; - phandle = <0x333>; - }; - }; - - spi0 { - - spi0m2-cs1 { - rockchip,pins = <0x01 0x0d 0x08 0x19a>; - phandle = <0x3f8>; - }; - - spi0m0-cs0 { - rockchip,pins = <0x00 0x19 0x08 0x19a>; - phandle = <0x14e>; - }; - - spi0m3-pins { - rockchip,pins = <0x03 0x1b 0x08 0x19a 0x03 0x19 0x08 0x19a 0x03 0x1a 0x08 0x19a>; - phandle = <0x3f9>; - }; - - spi0m3-cs1 { - rockchip,pins = <0x03 0x1d 0x08 0x19a>; - phandle = <0x3fb>; - }; - - spi0m2-pins { - rockchip,pins = <0x01 0x0b 0x08 0x19a 0x01 0x09 0x08 0x19a 0x01 0x0a 0x08 0x19a>; - phandle = <0x3f6>; - }; - - spi0m1-cs0 { - rockchip,pins = <0x04 0x0a 0x08 0x19a>; - phandle = <0x3f4>; - }; - - spi0m1-pins { - rockchip,pins = <0x04 0x02 0x08 0x19a 0x04 0x00 0x08 0x19a 0x04 0x01 0x08 0x19a>; - phandle = <0x3f3>; - }; - - spi0m0-cs1 { - rockchip,pins = <0x00 0x0f 0x08 0x19a>; - phandle = <0x14f>; - }; - - spi0m2-cs0 { - rockchip,pins = <0x01 0x0c 0x08 0x19a>; - phandle = <0x3f7>; - }; - - spi0m0-pins { - rockchip,pins = <0x00 0x16 0x08 0x19a 0x00 0x17 0x08 0x19a 0x00 0x10 0x08 0x19a>; - phandle = <0x150>; - }; - - spi0m1-cs1 { - rockchip,pins = <0x04 0x09 0x08 0x19a>; - phandle = <0x3f5>; - }; - - spi0m3-cs0 { - rockchip,pins = <0x03 0x1c 0x08 0x19a>; - phandle = <0x3fa>; - }; - }; - - fspi { - - fspim0-cs1 { - rockchip,pins = <0x02 0x1f 0x02 0x199>; - phandle = <0x329>; - }; - - fspim1-pins { - rockchip,pins = <0x02 0x0b 0x03 0x199 0x02 0x0c 0x03 0x199 0x02 0x06 0x03 0x199 0x02 0x07 0x03 0x199 0x02 0x08 0x03 0x199 0x02 0x09 0x03 0x199>; - phandle = <0x32c>; - }; - - fspim0-pins { - rockchip,pins = <0x02 0x00 0x02 0x199 0x02 0x1e 0x02 0x199 0x02 0x18 0x02 0x199 0x02 0x19 0x02 0x199 0x02 0x1a 0x02 0x199 0x02 0x1b 0x02 0x199>; - phandle = <0x328>; - }; - - fspim1-cs1 { - rockchip,pins = <0x02 0x0d 0x03 0x199>; - phandle = <0x32d>; - }; - - fspim2-cs1 { - rockchip,pins = <0x03 0x15 0x02 0x199>; - phandle = <0x32b>; - }; - - fspim2-pins { - rockchip,pins = <0x03 0x05 0x05 0x199 0x03 0x14 0x02 0x199 0x03 0x00 0x05 0x199 0x03 0x01 0x05 0x199 0x03 0x02 0x05 0x199 0x03 0x03 0x05 0x199>; - phandle = <0x32a>; - }; - }; - - pcfg-pull-up-drv-level-13 { - drive-strength = <0x0d>; - phandle = <0x460>; - bias-pull-up; - }; - - clk32k { - - clk32k-out0 { - rockchip,pins = <0x00 0x0a 0x02 0x198>; - phandle = <0x315>; - }; - - clk32k-in { - rockchip,pins = <0x00 0x0a 0x01 0x198>; - phandle = <0x314>; - }; - - clk32k-out1 { - rockchip,pins = <0x02 0x15 0x01 0x198>; - phandle = <0x316>; - }; - }; - - pcfg-pull-down-drv-level-11 { - drive-strength = <0x0b>; - bias-pull-down; - phandle = <0x467>; - }; - - pcie30phy { - - pcie30phy-pins { - rockchip,pins = <0x01 0x14 0x04 0x198 0x01 0x19 0x04 0x198>; - phandle = <0x3a4>; - }; - }; - - pcfg-pull-up-drv-level-0 { - drive-strength = <0x00>; - phandle = <0x2f3>; - bias-pull-up; - }; - - ddrphych0 { - - ddrphych0-pins { - rockchip,pins = <0x04 0x00 0x07 0x198 0x04 0x01 0x07 0x198 0x04 0x02 0x07 0x198 0x04 0x03 0x07 0x198>; - phandle = <0x318>; - }; - }; - - pcfg-pull-none-drv-level-10 { - drive-strength = <0x0a>; - bias-disable; - phandle = <0x454>; - }; - - pwm5 { - - pwm5m2-pins { - rockchip,pins = <0x04 0x14 0x0b 0x198>; - phandle = <0x3ce>; - }; - - pwm5m1-pins { - rockchip,pins = <0x00 0x16 0x0b 0x198>; - phandle = <0x16a>; - }; - - pwm5m0-pins { - rockchip,pins = <0x00 0x09 0x03 0x198>; - phandle = <0x3cd>; - }; - }; - - pcfg-pull-none-drv-level-3 { - drive-strength = <0x03>; - bias-disable; - phandle = <0x2ef>; - }; - - pwm10 { - - pwm10m2-pins { - rockchip,pins = <0x03 0x1b 0x0b 0x198>; - phandle = <0x3d9>; - }; - - pwm10m1-pins { - rockchip,pins = <0x04 0x1b 0x0b 0x198>; - phandle = <0x3d8>; - }; - - pwm10m0-pins { - rockchip,pins = <0x03 0x00 0x0b 0x198>; - phandle = <0x16f>; - }; - }; - - pcfg-pull-down-smt { - input-schmitt-enable; - bias-pull-down; - phandle = <0x2ff>; - }; - - gpio@fec50000 { - gpio-controller; - interrupts = <0x00 0x119 0x04>; - clocks = <0x02 0x83 0x02 0x84>; - compatible = "rockchip,gpio-bank"; - #interrupt-cells = <0x02>; - reg = <0x00 0xfec50000 0x00 0x100>; - phandle = <0x10d>; - #gpio-cells = <0x02>; - gpio-ranges = <0x197 0x00 0x80 0x20>; - interrupt-controller; - }; - - pcfg-pull-down { - bias-pull-down; - phandle = <0x2ec>; - }; - - uart4 { - - uart4m2-xfer { - rockchip,pins = <0x01 0x0a 0x0a 0x19e 0x01 0x0b 0x0a 0x19e>; - phandle = <0x42d>; - }; - - uart4-ctsn { - rockchip,pins = <0x01 0x17 0x0a 0x198>; - phandle = <0x42e>; - }; - - uart4m1-xfer { - rockchip,pins = <0x03 0x18 0x0a 0x19e 0x03 0x19 0x0a 0x19e>; - phandle = <0x163>; - }; - - uart4m0-xfer { - rockchip,pins = <0x01 0x1b 0x0a 0x19e 0x01 0x1a 0x0a 0x19e>; - phandle = <0x42c>; - }; - - uart4-rtsn { - rockchip,pins = <0x01 0x15 0x0a 0x198>; - phandle = <0x42f>; - }; - }; - - spdif0 { - - spdif0m0-tx { - rockchip,pins = <0x01 0x0e 0x03 0x198>; - phandle = <0x142>; - }; - - spdif0m1-tx { - rockchip,pins = <0x04 0x0c 0x06 0x198>; - phandle = <0x3f0>; - }; - }; - - pcfg-pull-down-drv-level-6 { - drive-strength = <0x06>; - bias-pull-down; - phandle = <0x2fd>; - }; - - pcfg-pull-up-drv-level-9 { - drive-strength = <0x09>; - phandle = <0x45c>; - bias-pull-up; - }; - - pcfg-pull-none-drv-level-1-smt { - drive-strength = <0x01>; - bias-disable; - input-schmitt-enable; - phandle = <0x19c>; - }; - - pcfg-pull-up-drv-level-11 { - drive-strength = <0x0b>; - phandle = <0x45e>; - bias-pull-up; - }; - - mcu { - - mcum1-pins { - rockchip,pins = <0x03 0x1c 0x06 0x198 0x03 0x1d 0x06 0x198>; - phandle = <0x394>; - }; - - mcum0-pins { - rockchip,pins = <0x04 0x1c 0x05 0x198 0x04 0x1d 0x05 0x198>; - phandle = <0x393>; - }; - }; - - i2c8 { - - i2c8m4-xfer { - rockchip,pins = <0x03 0x12 0x09 0x19d 0x03 0x13 0x09 0x19d>; - phandle = <0x373>; - }; - - i2c8m3-xfer { - rockchip,pins = <0x04 0x10 0x09 0x19d 0x04 0x11 0x09 0x19d>; - phandle = <0x372>; - }; - - i2c8m2-xfer { - rockchip,pins = <0x01 0x1e 0x09 0x19d 0x01 0x1f 0x09 0x19d>; - phandle = <0x371>; - }; - - i2c8m1-xfer { - rockchip,pins = <0x02 0x08 0x09 0x19d 0x02 0x09 0x09 0x19d>; - phandle = <0x374>; - }; - - i2c8m0-xfer { - rockchip,pins = <0x04 0x1a 0x09 0x19d 0x04 0x1b 0x09 0x19d>; - phandle = <0x186>; - }; - }; - - dp0 { - - dp0m0-pins { - rockchip,pins = <0x04 0x0c 0x05 0x198>; - phandle = <0x31c>; - }; - - dp0m2-pins { - rockchip,pins = <0x01 0x00 0x05 0x198>; - phandle = <0x31e>; - }; - - dp0m1-pins { - rockchip,pins = <0x00 0x14 0x0a 0x198>; - phandle = <0x31d>; - }; - }; - - pcfg-pull-none-drv-level-5-smt { - drive-strength = <0x05>; - bias-disable; - input-schmitt-enable; - phandle = <0x19b>; - }; - - pwm3 { - - pwm3m2-pins { - rockchip,pins = <0x01 0x12 0x0b 0x198>; - phandle = <0x3ca>; - }; - - pwm3m1-pins { - rockchip,pins = <0x03 0x0a 0x0b 0x198>; - phandle = <0x3c9>; - }; - - pwm3m0-pins { - rockchip,pins = <0x00 0x1c 0x03 0x198>; - phandle = <0x81>; - }; - - pwm3m3-pins { - rockchip,pins = <0x01 0x07 0x0b 0x198>; - phandle = <0x3cb>; - }; - }; - - pcfg-pull-none-drv-level-1 { - drive-strength = <0x01>; - bias-disable; - phandle = <0x2ee>; - }; - - sata2 { - - sata2m1-pins { - rockchip,pins = <0x01 0x0f 0x06 0x198>; - phandle = <0x3ed>; - }; - - sata2m0-pins { - rockchip,pins = <0x04 0x09 0x06 0x198>; - phandle = <0x3ec>; - }; - }; - - cam { - - cam0-or-cam1-switch-pin { - rockchip,pins = <0x03 0x11 0x00 0x198>; - phandle = <0x1f0>; - }; - }; - - uart2 { - - uart2-rtsn { - rockchip,pins = <0x03 0x0b 0x0a 0x198>; - phandle = <0x427>; - }; - - uart2m1-xfer { - rockchip,pins = <0x04 0x19 0x0a 0x19e 0x04 0x18 0x0a 0x19e>; - phandle = <0x161>; - }; - - uart2m0-xfer { - rockchip,pins = <0x00 0x0e 0x0a 0x19e 0x00 0x0d 0x0a 0x19e>; - phandle = <0x1ce>; - }; - - uart2-ctsn { - rockchip,pins = <0x03 0x0c 0x0a 0x198>; - phandle = <0x426>; - }; - - uart2m2-xfer { - rockchip,pins = <0x03 0x0a 0x0a 0x19e 0x03 0x09 0x0a 0x19e>; - phandle = <0x425>; - }; - }; - - pcfg-pull-down-drv-level-4 { - drive-strength = <0x04>; - bias-pull-down; - phandle = <0x2fb>; - }; - - pcfg-pull-up-drv-level-7 { - drive-strength = <0x07>; - phandle = <0x45a>; - bias-pull-up; - }; - - i2c6 { - - i2c6m4-xfer { - rockchip,pins = <0x03 0x01 0x09 0x19d 0x03 0x00 0x09 0x19d>; - phandle = <0x36c>; - }; - - i2c6m3-xfer { - rockchip,pins = <0x04 0x09 0x09 0x19d 0x04 0x08 0x09 0x19d>; - phandle = <0x36b>; - }; - - i2c6m2-xfer { - rockchip,pins = <0x02 0x13 0x09 0x19d 0x02 0x12 0x09 0x19d>; - phandle = <0x36d>; - }; - - i2c6m1-xfer { - rockchip,pins = <0x01 0x13 0x09 0x19d 0x01 0x12 0x09 0x19d>; - phandle = <0x36a>; - }; - - i2c6m0-xfer { - rockchip,pins = <0x00 0x18 0x09 0x19d 0x00 0x17 0x09 0x19d>; - phandle = <0x178>; - }; - }; - - pdm1 { - - pdm1m1-sdi3 { - rockchip,pins = <0x01 0x0a 0x02 0x198>; - phandle = <0x3c1>; - }; - - pdm1m0-clk { - rockchip,pins = <0x04 0x1d 0x02 0x198>; - phandle = <0x140>; - }; - - pdm1m1-sdi1 { - rockchip,pins = <0x01 0x08 0x02 0x198>; - phandle = <0x3bf>; - }; - - pdm1m0-sdi3 { - rockchip,pins = <0x04 0x18 0x02 0x198>; - phandle = <0x13e>; - }; - - pdm1m0-sdi1 { - rockchip,pins = <0x04 0x1a 0x02 0x198>; - phandle = <0x13c>; - }; - - pdm1m1-clk { - rockchip,pins = <0x01 0x0c 0x02 0x198>; - phandle = <0x3bb>; - }; - - pdm1m1-clk1 { - rockchip,pins = <0x01 0x0b 0x02 0x198>; - phandle = <0x3bc>; - }; - - pdm1m1-idle { - rockchip,pins = <0x01 0x0c 0x00 0x198 0x01 0x0b 0x00 0x198>; - phandle = <0x3bd>; - }; - - pdm1m0-clk1 { - rockchip,pins = <0x04 0x1c 0x02 0x198>; - phandle = <0x141>; - }; - - pdm1m1-sdi2 { - rockchip,pins = <0x01 0x09 0x02 0x198>; - phandle = <0x3c0>; - }; - - pdm1m0-idle { - rockchip,pins = <0x04 0x1d 0x00 0x198 0x04 0x1c 0x00 0x198>; - phandle = <0x13f>; - }; - - pdm1m1-sdi0 { - rockchip,pins = <0x01 0x07 0x02 0x198>; - phandle = <0x3be>; - }; - - pdm1m0-sdi2 { - rockchip,pins = <0x04 0x19 0x02 0x198>; - phandle = <0x13d>; - }; - - pdm1m0-sdi0 { - rockchip,pins = <0x04 0x1b 0x02 0x198>; - phandle = <0x13b>; - }; - }; - - cpu { - - cpu-pins { - rockchip,pins = <0x00 0x19 0x02 0x198 0x00 0x1d 0x02 0x198>; - phandle = <0x317>; - }; - }; - - gpio-func { - - tsadc-gpio-func { - rockchip,pins = <0x00 0x01 0x00 0x198>; - phandle = <0x175>; - }; - }; - - pcie20x1 { - - pcie20x1-2-button-rstn { - rockchip,pins = <0x04 0x0b 0x04 0x198>; - phandle = <0x3a3>; - }; - - pcie20x1m1-pins { - rockchip,pins = <0x04 0x0f 0x04 0x198 0x04 0x11 0x04 0x198 0x04 0x10 0x04 0x198>; - phandle = <0x3a2>; - }; - - pcie20x1m0-pins { - rockchip,pins = <0x03 0x17 0x04 0x198 0x03 0x19 0x04 0x198 0x03 0x18 0x04 0x198>; - phandle = <0x3a1>; - }; - }; - - leds { - - leds-gpio { - rockchip,pins = <0x00 0x15 0x00 0x198>; - phandle = <0x1ee>; - }; - }; - - pwm1 { - - pwm1m1-pins { - rockchip,pins = <0x01 0x1b 0x0b 0x198>; - phandle = <0x3c5>; - }; - - pwm1m0-pins { - rockchip,pins = <0x00 0x10 0x03 0x198>; - phandle = <0x7f>; - }; - - pwm1m2-pins { - rockchip,pins = <0x01 0x03 0x0b 0x198>; - phandle = <0x3c6>; - }; - }; - - sata0 { - - sata0m1-pins { - rockchip,pins = <0x01 0x0b 0x06 0x198>; - phandle = <0x3e9>; - }; - - sata0m0-pins { - rockchip,pins = <0x04 0x0e 0x06 0x198>; - phandle = <0x3e8>; - }; - }; - - refclk { - - refclk-pins { - rockchip,pins = <0x00 0x00 0x01 0x198>; - phandle = <0x3e5>; - }; - }; - - pcie30x4 { - - pcie30x4m2-pins { - rockchip,pins = <0x03 0x14 0x04 0x198 0x03 0x16 0x04 0x198 0x03 0x15 0x04 0x198>; - phandle = <0x3b1>; - }; - - pcie30x4m1-pins { - rockchip,pins = <0x04 0x0c 0x04 0x198 0x04 0x0e 0x04 0x198 0x04 0x0d 0x04 0x198>; - phandle = <0x3b0>; - }; - - pcie30x4-button-rstn { - rockchip,pins = <0x03 0x1d 0x04 0x198>; - phandle = <0x3b3>; - }; - - pcie30x4m0-pins { - rockchip,pins = <0x00 0x16 0x0c 0x198 0x00 0x18 0x0c 0x198 0x00 0x17 0x0c 0x198>; - phandle = <0x3af>; - }; - - pcie30x4m3-pins { - rockchip,pins = <0x01 0x08 0x04 0x198 0x01 0x0a 0x04 0x198 0x01 0x09 0x04 0x198>; - phandle = <0x3b2>; - }; - }; - - can2 { - - can2m1-pins { - rockchip,pins = <0x00 0x1c 0x0a 0x198 0x00 0x1d 0x0a 0x198>; - phandle = <0x30f>; - }; - - can2m0-pins { - rockchip,pins = <0x03 0x14 0x09 0x198 0x03 0x15 0x09 0x198>; - phandle = <0x147>; - }; - }; - - litcpu { - - litcpu-pins { - rockchip,pins = <0x00 0x1b 0x01 0x198>; - phandle = <0x392>; - }; - }; - - sata { - - sata-reset { - rockchip,pins = <0x04 0x11 0x00 0x198>; - phandle = <0x3e7>; - }; - - sata-pins { - rockchip,pins = <0x00 0x16 0x0d 0x198 0x00 0x1c 0x0d 0x198 0x00 0x1d 0x0d 0x198>; - phandle = <0x3e6>; - }; - }; - - tsadc { - - tsadc-shut { - rockchip,pins = <0x00 0x01 0x02 0x198>; - phandle = <0x176>; - }; - - tsadc-shut-org { - rockchip,pins = <0x00 0x01 0x01 0x198>; - phandle = <0x418>; - }; - - tsadcm1-shut { - rockchip,pins = <0x00 0x02 0x02 0x198>; - phandle = <0x417>; - }; - }; - - uart0 { - - uart0m1-xfer { - rockchip,pins = <0x00 0x08 0x04 0x19e 0x00 0x09 0x04 0x19e>; - phandle = <0x7d>; - }; - - uart0m0-xfer { - rockchip,pins = <0x00 0x14 0x04 0x19e 0x00 0x15 0x04 0x19e>; - phandle = <0x419>; - }; - - uart0-rtsn { - rockchip,pins = <0x00 0x16 0x04 0x198>; - phandle = <0x41c>; - }; - - uart0-ctsn { - rockchip,pins = <0x00 0x19 0x04 0x198>; - phandle = <0x41b>; - }; - - uart0m2-xfer { - rockchip,pins = <0x04 0x04 0x0a 0x19e 0x04 0x03 0x0a 0x19e>; - phandle = <0x41a>; - }; - }; - - pcfg-pull-down-drv-level-2 { - drive-strength = <0x02>; - bias-pull-down; - phandle = <0x2f9>; - }; - - pcfg-pull-up-drv-level-5 { - drive-strength = <0x05>; - phandle = <0x2f6>; - bias-pull-up; - }; - - gpio@fec20000 { - gpio-controller; - interrupts = <0x00 0x116 0x04>; - clocks = <0x02 0x7d 0x02 0x7e>; - compatible = "rockchip,gpio-bank"; - #interrupt-cells = <0x02>; - reg = <0x00 0xfec20000 0x00 0x100>; - phandle = <0xfe>; - #gpio-cells = <0x02>; - gpio-ranges = <0x197 0x00 0x20 0x20>; - interrupt-controller; - }; - - pcfg-pull-none-drv-level-15 { - drive-strength = <0x0f>; - bias-disable; - phandle = <0x459>; - }; - - eth1 { - - eth1-pins { - rockchip,pins = <0x03 0x06 0x01 0x198>; - phandle = <0x327>; - }; - }; - - i2c4 { - - i2c4m3-xfer { - rockchip,pins = <0x01 0x03 0x09 0x19d 0x01 0x02 0x09 0x19d>; - phandle = <0x364>; - }; - - i2c4m2-xfer { - rockchip,pins = <0x00 0x15 0x09 0x19d 0x00 0x14 0x09 0x19d>; - phandle = <0x363>; - }; - - i2c4m1-xfer { - rockchip,pins = <0x02 0x0d 0x09 0x19d 0x02 0x0c 0x09 0x19d>; - phandle = <0x14b>; - }; - - i2c4m0-xfer { - rockchip,pins = <0x03 0x06 0x09 0x19d 0x03 0x05 0x09 0x19d>; - phandle = <0x362>; - }; - - i2c4m4-xfer { - rockchip,pins = <0x01 0x17 0x09 0x19d 0x01 0x16 0x09 0x19d>; - phandle = <0x365>; - }; - }; - - emmc { - - emmc-data-strobe { - rockchip,pins = <0x02 0x02 0x01 0x198>; - phandle = <0x326>; - }; - - emmc-clk { - rockchip,pins = <0x02 0x01 0x01 0x199>; - phandle = <0x324>; - }; - - emmc-bus8 { - rockchip,pins = <0x02 0x18 0x01 0x199 0x02 0x19 0x01 0x199 0x02 0x1a 0x01 0x199 0x02 0x1b 0x01 0x199 0x02 0x1c 0x01 0x199 0x02 0x1d 0x01 0x199 0x02 0x1e 0x01 0x199 0x02 0x1f 0x01 0x199>; - phandle = <0x323>; - }; - - emmc-cmd { - rockchip,pins = <0x02 0x00 0x01 0x199>; - phandle = <0x325>; - }; - - emmc-rstnout { - rockchip,pins = <0x02 0x03 0x01 0x198>; - phandle = <0x322>; - }; - }; - - pcfg-pull-none-drv-level-8 { - drive-strength = <0x08>; - bias-disable; - phandle = <0x452>; - }; - - pwm15 { - - pwm15m0-pins { - rockchip,pins = <0x03 0x13 0x0b 0x198>; - phandle = <0x174>; - }; - - pwm15m3-pins { - rockchip,pins = <0x01 0x1f 0x0b 0x198>; - phandle = <0x3e4>; - }; - - pwm15m2-pins { - rockchip,pins = <0x01 0x16 0x0b 0x198>; - phandle = <0x3e3>; - }; - - pwm15m1-pins { - rockchip,pins = <0x04 0x0b 0x0b 0x198>; - phandle = <0x3e2>; - }; - }; - - pcie30x2 { - - pcie30x2m2-pins { - rockchip,pins = <0x03 0x1a 0x04 0x198 0x03 0x1c 0x04 0x198 0x03 0x1b 0x04 0x198>; - phandle = <0x3ac>; - }; - - pcie30x2m1-pins { - rockchip,pins = <0x04 0x06 0x04 0x198 0x04 0x08 0x04 0x198 0x04 0x07 0x04 0x198>; - phandle = <0x3ab>; - }; - - pcie30x2-button-rstn { - rockchip,pins = <0x03 0x11 0x04 0x198>; - phandle = <0x3ae>; - }; - - pcie30x2m0-pins { - rockchip,pins = <0x00 0x19 0x0c 0x198 0x00 0x1c 0x0c 0x198 0x00 0x1a 0x0c 0x198>; - phandle = <0x3aa>; - }; - - pcie30x2m3-pins { - rockchip,pins = <0x01 0x1f 0x04 0x198 0x01 0x0f 0x04 0x198 0x01 0x0e 0x04 0x198>; - phandle = <0x3ad>; - }; - }; - - can0 { - - can0m0-pins { - rockchip,pins = <0x00 0x10 0x0b 0x198 0x00 0x0f 0x0b 0x198>; - phandle = <0x145>; - }; - - can0m1-pins { - rockchip,pins = <0x04 0x1d 0x09 0x198 0x04 0x1c 0x09 0x198>; - phandle = <0x30d>; - }; - }; - - pcfg-output-high { - output-high; - phandle = <0x305>; - }; - - uart9 { - - uart9m0-rtsn { - rockchip,pins = <0x04 0x14 0x0a 0x198>; - phandle = <0x44e>; - }; - - uart9m2-ctsn { - rockchip,pins = <0x03 0x1b 0x0a 0x198>; - phandle = <0x44a>; - }; - - uart9m1-ctsn { - rockchip,pins = <0x04 0x01 0x0a 0x198>; - phandle = <0x447>; - }; - - uart9m2-xfer { - rockchip,pins = <0x03 0x1c 0x0a 0x19e 0x03 0x1d 0x0a 0x19e>; - phandle = <0x449>; - }; - - uart9m0-ctsn { - rockchip,pins = <0x04 0x15 0x0a 0x198>; - phandle = <0x44d>; - }; - - uart9m1-xfer { - rockchip,pins = <0x04 0x0d 0x0a 0x19e 0x04 0x0c 0x0a 0x19e>; - phandle = <0x168>; - }; - - uart9m0-xfer { - rockchip,pins = <0x02 0x14 0x0a 0x19e 0x02 0x12 0x0a 0x19e>; - phandle = <0x44c>; - }; - - uart9m2-rtsn { - rockchip,pins = <0x03 0x1a 0x0a 0x198>; - phandle = <0x44b>; - }; - - uart9m1-rtsn { - rockchip,pins = <0x04 0x00 0x0a 0x198>; - phandle = <0x448>; - }; - }; - - pcfg-pull-none-drv-level-2-smt { - drive-strength = <0x02>; - bias-disable; - input-schmitt-enable; - phandle = <0x301>; - }; - - pcfg-pull-up { - phandle = <0x19e>; - bias-pull-up; - }; - - spi3 { - - spi3m3-cs1 { - rockchip,pins = <0x03 0x15 0x08 0x19a>; - phandle = <0x40e>; - }; - - spi3m1-cs0 { - rockchip,pins = <0x04 0x10 0x08 0x19a>; - phandle = <0x15d>; - }; - - spi3m3-pins { - rockchip,pins = <0x03 0x18 0x08 0x19a 0x03 0x16 0x08 0x19a 0x03 0x17 0x08 0x19a>; - phandle = <0x40c>; - }; - - spi3m0-cs1 { - rockchip,pins = <0x04 0x13 0x08 0x19f>; - phandle = <0x411>; - }; - - spi3m2-cs0 { - rockchip,pins = <0x00 0x1c 0x08 0x19a>; - phandle = <0x40a>; - }; - - spi3m2-pins { - rockchip,pins = <0x00 0x1b 0x08 0x19a 0x00 0x18 0x08 0x19a 0x00 0x1a 0x08 0x19a>; - phandle = <0x409>; - }; - - spi3m1-cs1 { - rockchip,pins = <0x04 0x11 0x08 0x19a>; - phandle = <0x15e>; - }; - - spi3m1-pins { - rockchip,pins = <0x04 0x0f 0x08 0x19a 0x04 0x0d 0x08 0x19a 0x04 0x0e 0x08 0x19a>; - phandle = <0x15f>; - }; - - spi3m3-cs0 { - rockchip,pins = <0x03 0x14 0x08 0x19a>; - phandle = <0x40d>; - }; - - spi3m0-pins { - rockchip,pins = <0x04 0x16 0x08 0x19f 0x04 0x14 0x08 0x19f 0x04 0x15 0x08 0x19f>; - phandle = <0x40f>; - }; - - spi3m2-cs1 { - rockchip,pins = <0x00 0x1d 0x08 0x19a>; - phandle = <0x40b>; - }; - - spi3m0-cs0 { - rockchip,pins = <0x04 0x12 0x08 0x19f>; - phandle = <0x410>; - }; - }; - - pcfg-pull-down-drv-level-14 { - drive-strength = <0x0e>; - bias-pull-down; - phandle = <0x46a>; - }; - - bt656 { - - bt656-pins { - rockchip,pins = <0x04 0x08 0x02 0x1a0 0x04 0x00 0x02 0x1a0 0x04 0x01 0x02 0x1a0 0x04 0x02 0x02 0x1a0 0x04 0x03 0x02 0x1a0 0x04 0x04 0x02 0x1a0 0x04 0x05 0x02 0x1a0 0x04 0x06 0x02 0x1a0 0x04 0x07 0x02 0x1a0>; - phandle = <0x450>; - }; - }; - - pcfg-pull-down-drv-level-0 { - drive-strength = <0x00>; - bias-pull-down; - phandle = <0x2f7>; - }; - - pcfg-pull-up-drv-level-3 { - drive-strength = <0x03>; - phandle = <0x2f4>; - bias-pull-up; - }; - - i2s2 { - - i2s2m0-lrck { - rockchip,pins = <0x02 0x10 0x02 0x19d>; - phandle = <0x389>; - }; - - i2s2m1-mclk { - rockchip,pins = <0x03 0x0c 0x03 0x19d>; - phandle = <0x387>; - }; - - i2s2m0-mclk { - rockchip,pins = <0x02 0x0e 0x02 0x19d>; - phandle = <0x38a>; - }; - - i2s2m1-sdo { - rockchip,pins = <0x03 0x0b 0x03 0x198>; - phandle = <0x12b>; - }; - - i2s2m0-sdi { - rockchip,pins = <0x02 0x13 0x02 0x198>; - phandle = <0x38c>; - }; - - i2s2m1-idle { - rockchip,pins = <0x03 0x0e 0x00 0x198 0x03 0x0d 0x00 0x198>; - phandle = <0x12c>; - }; - - i2s2m1-sdi { - rockchip,pins = <0x03 0x0a 0x03 0x198>; - phandle = <0x12a>; - }; - - i2s2m0-idle { - rockchip,pins = <0x02 0x10 0x00 0x198 0x02 0x0f 0x00 0x198>; - phandle = <0x388>; - }; - - i2s2m1-sclk { - rockchip,pins = <0x03 0x0d 0x03 0x19d>; - phandle = <0x12e>; - }; - - i2s2m1-lrck { - rockchip,pins = <0x03 0x0e 0x03 0x19d>; - phandle = <0x12d>; - }; - - i2s2m0-sclk { - rockchip,pins = <0x02 0x0f 0x02 0x19d>; - phandle = <0x38b>; - }; - - i2s2m0-sdo { - rockchip,pins = <0x04 0x13 0x02 0x198>; - phandle = <0x38d>; - }; - }; - - pcfg-pull-none-drv-level-6-smt { - drive-strength = <0x06>; - bias-disable; - input-schmitt-enable; - phandle = <0x304>; - }; - - ddrphych3 { - - ddrphych3-pins { - rockchip,pins = <0x04 0x0c 0x07 0x198 0x04 0x0d 0x07 0x198 0x04 0x0e 0x07 0x198 0x04 0x0f 0x07 0x198>; - phandle = <0x31b>; - }; - }; - - pcfg-pull-none-drv-level-13 { - drive-strength = <0x0d>; - bias-disable; - phandle = <0x457>; - }; - - i2c2 { - - i2c2m2-xfer { - rockchip,pins = <0x02 0x03 0x09 0x19d 0x02 0x02 0x09 0x19d>; - phandle = <0x35a>; - }; - - i2c2m1-xfer { - rockchip,pins = <0x02 0x11 0x09 0x19d 0x02 0x10 0x09 0x19d>; - phandle = <0x35d>; - }; - - i2c2m0-xfer { - rockchip,pins = <0x00 0x0f 0x09 0x19d 0x00 0x10 0x09 0x19d>; - phandle = <0x149>; - }; - - i2c2m4-xfer { - rockchip,pins = <0x01 0x01 0x09 0x19d 0x01 0x00 0x09 0x19d>; - phandle = <0x35c>; - }; - - i2c2m3-xfer { - rockchip,pins = <0x01 0x15 0x09 0x19d 0x01 0x14 0x09 0x19d>; - phandle = <0x35b>; - }; - }; - - auddsm { - - auddsm-pins { - rockchip,pins = <0x03 0x01 0x04 0x198 0x03 0x02 0x04 0x198 0x03 0x03 0x04 0x198 0x03 0x04 0x04 0x198>; - phandle = <0x144>; - }; - }; - - pwm8 { - - pwm8m2-pins { - rockchip,pins = <0x03 0x18 0x0b 0x198>; - phandle = <0x3d5>; - }; - - pwm8m1-pins { - rockchip,pins = <0x04 0x18 0x0b 0x198>; - phandle = <0x3d4>; - }; - - pwm8m0-pins { - rockchip,pins = <0x03 0x07 0x0b 0x198>; - phandle = <0x16d>; - }; - }; - - pmic { - - pmic-pins { - rockchip,pins = <0x00 0x07 0x00 0x19e 0x00 0x02 0x01 0x198 0x00 0x03 0x01 0x198 0x00 0x11 0x01 0x198 0x00 0x12 0x01 0x198 0x00 0x13 0x01 0x198 0x00 0x1e 0x01 0x198>; - phandle = <0x156>; - }; - }; - - pcfg-pull-none-drv-level-6 { - drive-strength = <0x06>; - bias-disable; - phandle = <0x2f2>; - }; - - jtag { - - jtagm2-pins { - rockchip,pins = <0x00 0x0d 0x02 0x198 0x00 0x0e 0x02 0x198>; - phandle = <0x391>; - }; - - jtagm1-pins { - rockchip,pins = <0x04 0x18 0x05 0x198 0x04 0x19 0x05 0x198>; - phandle = <0x390>; - }; - - jtagm0-pins { - rockchip,pins = <0x04 0x1a 0x05 0x198 0x04 0x1b 0x05 0x198>; - phandle = <0x38f>; - }; - }; - - gpio@fd8a0000 { - gpio-controller; - interrupts = <0x00 0x115 0x04>; - clocks = <0x02 0x284 0x02 0x285>; - compatible = "rockchip,gpio-bank"; - #interrupt-cells = <0x02>; - reg = <0x00 0xfd8a0000 0x00 0x100>; - phandle = <0x7b>; - #gpio-cells = <0x02>; - gpio-ranges = <0x197 0x00 0x00 0x20>; - interrupt-controller; - }; - - gmac1 { - - gmac1-rgmii-clk { - rockchip,pins = <0x03 0x05 0x01 0x198 0x03 0x04 0x01 0x198>; - phandle = <0x111>; - }; - - gmac1-rx-bus2 { - rockchip,pins = <0x03 0x07 0x01 0x198 0x03 0x08 0x01 0x198 0x03 0x09 0x01 0x198>; - phandle = <0x110>; - }; - - gmac1-txer { - rockchip,pins = <0x03 0x0a 0x01 0x198>; - phandle = <0x332>; - }; - - gmac1-clkinout { - rockchip,pins = <0x03 0x0e 0x01 0x198>; - phandle = <0x32e>; - }; - - gmac1-ptp-ref-clk { - rockchip,pins = <0x03 0x0f 0x01 0x198>; - phandle = <0x331>; - }; - - gmac1-ppsclk { - rockchip,pins = <0x03 0x11 0x01 0x198>; - phandle = <0x32f>; - }; - - gmac1-ppstrig { - rockchip,pins = <0x03 0x10 0x01 0x198>; - phandle = <0x330>; - }; - - gmac1-rgmii-bus { - rockchip,pins = <0x03 0x02 0x01 0x198 0x03 0x03 0x01 0x198 0x03 0x00 0x01 0x19a 0x03 0x01 0x01 0x19a>; - phandle = <0x112>; - }; - - gmac1-tx-bus2 { - rockchip,pins = <0x03 0x0b 0x01 0x19a 0x03 0x0c 0x01 0x19a 0x03 0x0d 0x01 0x198>; - phandle = <0x10f>; - }; - - gmac1-miim { - rockchip,pins = <0x03 0x12 0x01 0x198 0x03 0x13 0x01 0x198>; - phandle = <0x10e>; - }; - }; - - pcfg-pull-none { - bias-disable; - phandle = <0x198>; - }; - - pwm13 { - - pwm13m2-pins { - rockchip,pins = <0x01 0x0f 0x0b 0x198>; - phandle = <0x3df>; - }; - - pwm13m1-pins { - rockchip,pins = <0x04 0x0e 0x0b 0x198>; - phandle = <0x3de>; - }; - - pwm13m0-pins { - rockchip,pins = <0x03 0x0e 0x0b 0x198>; - phandle = <0x172>; - }; - }; - - pcfg-output-high-pull-down { - output-high; - bias-pull-down; - phandle = <0x307>; - }; - - uart7 { - - uart7m1-ctsn { - rockchip,pins = <0x03 0x13 0x0a 0x198>; - phandle = <0x43b>; - }; - - uart7m2-xfer { - rockchip,pins = <0x01 0x0c 0x0a 0x19e 0x01 0x0d 0x0a 0x19e>; - phandle = <0x43d>; - }; - - uart7m0-ctsn { - rockchip,pins = <0x04 0x16 0x0a 0x198>; - phandle = <0x43f>; - }; - - uart7m1-xfer { - rockchip,pins = <0x03 0x11 0x0a 0x19e 0x03 0x10 0x0a 0x19e>; - phandle = <0x166>; - }; - - uart7m0-xfer { - rockchip,pins = <0x02 0x0c 0x0a 0x19e 0x02 0x0d 0x0a 0x19e>; - phandle = <0x43e>; - }; - - uart7m1-rtsn { - rockchip,pins = <0x03 0x12 0x0a 0x198>; - phandle = <0x43c>; - }; - - uart7m0-rtsn { - rockchip,pins = <0x04 0x12 0x0a 0x198>; - phandle = <0x440>; - }; - }; - - pcfg-pull-down-drv-level-9 { - drive-strength = <0x09>; - bias-pull-down; - phandle = <0x465>; - }; - - spi1 { - - spi1m1-cs1 { - rockchip,pins = <0x03 0x13 0x08 0x19a>; - phandle = <0x152>; - }; - - spi1m2-cs1 { - rockchip,pins = <0x01 0x1d 0x08 0x19a>; - phandle = <0x3fe>; - }; - - spi1m0-cs0 { - rockchip,pins = <0x02 0x13 0x08 0x19f>; - phandle = <0x400>; - }; - - spi1m2-pins { - rockchip,pins = <0x01 0x1a 0x08 0x19a 0x01 0x18 0x08 0x19a 0x01 0x19 0x08 0x19a>; - phandle = <0x3fc>; - }; - - spi1m1-pins { - rockchip,pins = <0x03 0x11 0x08 0x19a 0x03 0x10 0x08 0x19a 0x03 0x0f 0x08 0x19a>; - phandle = <0x153>; - }; - - spi1m1-cs0 { - rockchip,pins = <0x03 0x12 0x08 0x19a>; - phandle = <0x151>; - }; - - spi1m0-pins { - rockchip,pins = <0x02 0x10 0x08 0x19f 0x02 0x11 0x08 0x19f 0x02 0x12 0x08 0x19f>; - phandle = <0x3ff>; - }; - - spi1m0-cs1 { - rockchip,pins = <0x02 0x14 0x08 0x19f>; - phandle = <0x401>; - }; - - spi1m2-cs0 { - rockchip,pins = <0x01 0x1b 0x08 0x19a>; - phandle = <0x3fd>; - }; - }; - - pcfg-pull-up-drv-level-14 { - drive-strength = <0x0e>; - phandle = <0x461>; - bias-pull-up; - }; - - pcfg-output-low-pull-down { - bias-pull-down; - phandle = <0x30b>; - output-low; - }; - - pcfg-pull-down-drv-level-12 { - drive-strength = <0x0c>; - bias-pull-down; - phandle = <0x468>; - }; - - pcfg-pull-up-drv-level-1 { - drive-strength = <0x01>; - phandle = <0x19f>; - bias-pull-up; - }; - - pcfg-pull-none-smt { - bias-disable; - input-schmitt-enable; - phandle = <0x19d>; - }; - - sdmmc { - - sdmmc-det { - rockchip,pins = <0x00 0x04 0x01 0x19e>; - phandle = <0x116>; - }; - - sdmmc-pwren { - rockchip,pins = <0x00 0x05 0x02 0x198>; - phandle = <0x3ef>; - }; - - sdmmc-bus4 { - rockchip,pins = <0x04 0x18 0x01 0x199 0x04 0x19 0x01 0x199 0x04 0x1a 0x01 0x199 0x04 0x1b 0x01 0x199>; - phandle = <0x117>; - }; - - sdmmc-cmd { - rockchip,pins = <0x04 0x1c 0x01 0x199>; - phandle = <0x115>; - }; - - sdmmc-clk { - rockchip,pins = <0x04 0x1d 0x01 0x199>; - phandle = <0x114>; - }; - }; - - i2s0 { - - i2s0-sclk { - rockchip,pins = <0x01 0x13 0x01 0x19d>; - phandle = <0x11c>; - }; - - i2s0-sdo3 { - rockchip,pins = <0x01 0x1a 0x01 0x198>; - phandle = <0x37a>; - }; - - i2s0-lrck { - rockchip,pins = <0x01 0x15 0x01 0x19d>; - phandle = <0x11b>; - }; - - i2s0-sdo1 { - rockchip,pins = <0x01 0x18 0x01 0x198>; - phandle = <0x378>; - }; - - i2s0-sdi3 { - rockchip,pins = <0x01 0x19 0x02 0x198>; - phandle = <0x377>; - }; - - i2s0-mclk { - rockchip,pins = <0x01 0x12 0x01 0x19d>; - phandle = <0x17a>; - }; - - i2s0-sdi1 { - rockchip,pins = <0x01 0x1b 0x02 0x198>; - phandle = <0x375>; - }; - - i2s0-sdo2 { - rockchip,pins = <0x01 0x19 0x01 0x198>; - phandle = <0x379>; - }; - - i2s0-idle { - rockchip,pins = <0x01 0x15 0x00 0x198 0x01 0x13 0x00 0x198>; - phandle = <0x11f>; - }; - - i2s0-sdo0 { - rockchip,pins = <0x01 0x17 0x01 0x198>; - phandle = <0x11e>; - }; - - i2s0-sdi2 { - rockchip,pins = <0x01 0x1a 0x02 0x198>; - phandle = <0x376>; - }; - - i2s0-sdi0 { - rockchip,pins = <0x01 0x1c 0x02 0x198>; - phandle = <0x11d>; - }; - }; - - ddrphych1 { - - ddrphych1-pins { - rockchip,pins = <0x04 0x04 0x07 0x198 0x04 0x05 0x07 0x198 0x04 0x06 0x07 0x198 0x04 0x07 0x07 0x198>; - phandle = <0x319>; - }; - }; - - pcfg-pull-none-drv-level-11 { - drive-strength = <0x0b>; - bias-disable; - phandle = <0x455>; - }; - - i2c0 { - - i2c0m2-xfer { - rockchip,pins = <0x00 0x19 0x03 0x19d 0x00 0x1a 0x03 0x19d>; - phandle = <0x77>; - }; - - i2c0m1-xfer { - rockchip,pins = <0x04 0x15 0x09 0x19d 0x04 0x16 0x09 0x19d>; - phandle = <0x355>; - }; - - i2c0m0-xfer { - rockchip,pins = <0x00 0x0b 0x02 0x19d 0x00 0x06 0x02 0x19d>; - phandle = <0x354>; - }; - }; - - pwm6 { - - pwm6m2-pins { - rockchip,pins = <0x04 0x15 0x0b 0x198>; - phandle = <0x3d0>; - }; - - pwm6m1-pins { - rockchip,pins = <0x04 0x11 0x0b 0x198>; - phandle = <0x3cf>; - }; - - pwm6m0-pins { - rockchip,pins = <0x00 0x17 0x0b 0x198>; - phandle = <0x16b>; - }; - }; - - hym8563 { - - hym8563-int { - rockchip,pins = <0x00 0x08 0x00 0x198>; - phandle = <0x7a>; - }; - }; - - pcfg-pull-none-drv-level-4 { - drive-strength = <0x04>; - bias-disable; - phandle = <0x2f0>; - }; - - pcfg-output-high-pull-up { - output-high; - phandle = <0x306>; - bias-pull-up; - }; - - pwm11 { - - pwm11m3-pins { - rockchip,pins = <0x03 0x1d 0x0b 0x198>; - phandle = <0x3dc>; - }; - - pwm11m2-pins { - rockchip,pins = <0x01 0x14 0x0b 0x198>; - phandle = <0x3db>; - }; - - pwm11m1-pins { - rockchip,pins = <0x04 0x0c 0x0b 0x198>; - phandle = <0x3da>; - }; - - pwm11m0-pins { - rockchip,pins = <0x03 0x01 0x0b 0x198>; - phandle = <0x170>; - }; - }; - - bt1120 { - - bt1120-pins { - rockchip,pins = <0x04 0x08 0x02 0x198 0x04 0x00 0x02 0x198 0x04 0x01 0x02 0x198 0x04 0x02 0x02 0x198 0x04 0x03 0x02 0x198 0x04 0x04 0x02 0x198 0x04 0x05 0x02 0x198 0x04 0x06 0x02 0x198 0x04 0x07 0x02 0x198 0x04 0x0a 0x02 0x198 0x04 0x0b 0x02 0x198 0x04 0x0c 0x02 0x198 0x04 0x0d 0x02 0x198 0x04 0x0e 0x02 0x198 0x04 0x0f 0x02 0x198 0x04 0x10 0x02 0x198 0x04 0x11 0x02 0x198>; - phandle = <0x71>; - }; - }; - - pcfg-output-low-pull-up { - phandle = <0x30a>; - bias-pull-up; - output-low; - }; - - uart5 { - - uart5m1-ctsn { - rockchip,pins = <0x02 0x02 0x0a 0x198>; - phandle = <0x433>; - }; - - uart5m2-xfer { - rockchip,pins = <0x02 0x1c 0x0a 0x19e 0x02 0x1d 0x0a 0x19e>; - phandle = <0x435>; - }; - - uart5m0-ctsn { - rockchip,pins = <0x04 0x1a 0x0a 0x198>; - phandle = <0x431>; - }; - - uart5m1-xfer { - rockchip,pins = <0x03 0x15 0x0a 0x19e 0x03 0x14 0x0a 0x19e>; - phandle = <0x164>; - }; - - uart5m0-xfer { - rockchip,pins = <0x04 0x1c 0x0a 0x19e 0x04 0x1d 0x0a 0x19e>; - phandle = <0x430>; - }; - - uart5m1-rtsn { - rockchip,pins = <0x02 0x03 0x0a 0x198>; - phandle = <0x434>; - }; - - uart5m0-rtsn { - rockchip,pins = <0x04 0x1b 0x0a 0x198>; - phandle = <0x432>; - }; - }; - - sdio { - - sdiom1-pins { - rockchip,pins = <0x03 0x05 0x02 0x198 0x03 0x04 0x02 0x19e 0x03 0x00 0x02 0x19e 0x03 0x01 0x02 0x19e 0x03 0x02 0x02 0x19e 0x03 0x03 0x02 0x19e>; - phandle = <0x119>; - }; - - sdiom0-pins { - rockchip,pins = <0x02 0x0b 0x02 0x198 0x02 0x0a 0x02 0x19e 0x02 0x06 0x02 0x19e 0x02 0x07 0x02 0x19e 0x02 0x08 0x02 0x19e 0x02 0x09 0x02 0x19e>; - phandle = <0x3ee>; - }; - }; - - spdif1 { - - spdif1m0-tx { - rockchip,pins = <0x01 0x0f 0x03 0x198>; - phandle = <0x143>; - }; - - spdif1m2-tx { - rockchip,pins = <0x04 0x11 0x03 0x198>; - phandle = <0x3f2>; - }; - - spdif1m1-tx { - rockchip,pins = <0x04 0x09 0x02 0x198>; - phandle = <0x3f1>; - }; - }; - - pcfg-pull-down-drv-level-7 { - drive-strength = <0x07>; - bias-pull-down; - phandle = <0x463>; - }; - - gpio@fec30000 { - gpio-controller; - interrupts = <0x00 0x117 0x04>; - clocks = <0x02 0x7f 0x02 0x80>; - compatible = "rockchip,gpio-bank"; - #interrupt-cells = <0x02>; - reg = <0x00 0xfec30000 0x00 0x100>; - phandle = <0x79>; - #gpio-cells = <0x02>; - gpio-ranges = <0x197 0x00 0x40 0x20>; - interrupt-controller; - }; - - pcfg-pull-up-drv-level-12 { - drive-strength = <0x0c>; - phandle = <0x45f>; - bias-pull-up; - }; - - pcfg-pull-down-drv-level-10 { - drive-strength = <0x0a>; - bias-pull-down; - phandle = <0x466>; - }; - - dp1 { - - dp1m1-pins { - rockchip,pins = <0x00 0x15 0x0a 0x198>; - phandle = <0x320>; - }; - - dp1m0-pins { - rockchip,pins = <0x03 0x1d 0x05 0x198>; - phandle = <0x31f>; - }; - - dp1m2-pins { - rockchip,pins = <0x01 0x01 0x05 0x198>; - phandle = <0x321>; - }; - }; - - vop { - - vop-pins { - rockchip,pins = <0x01 0x02 0x01 0x198>; - phandle = <0x44f>; - }; - }; - - pwm4 { - - pwm4m1-pins { - rockchip,pins = <0x04 0x13 0x0b 0x198>; - phandle = <0x3cc>; - }; - - pwm4m0-pins { - rockchip,pins = <0x00 0x15 0x0b 0x198>; - phandle = <0x169>; - }; - }; - - pcfg-pull-none-drv-level-2 { - drive-strength = <0x02>; - bias-disable; - phandle = <0x1a0>; - }; - - pcfg-pull-none-drv-level-3-smt { - drive-strength = <0x03>; - bias-disable; - input-schmitt-enable; - phandle = <0x302>; - }; - - uart3 { - - uart3m2-xfer { - rockchip,pins = <0x04 0x06 0x0a 0x19e 0x04 0x05 0x0a 0x19e>; - phandle = <0x429>; - }; - - uart3m1-xfer { - rockchip,pins = <0x03 0x0e 0x0a 0x19e 0x03 0x0d 0x0a 0x19e>; - phandle = <0x162>; - }; - - uart3-ctsn { - rockchip,pins = <0x01 0x13 0x0a 0x198>; - phandle = <0x42a>; - }; - - uart3m0-xfer { - rockchip,pins = <0x01 0x10 0x0a 0x19e 0x01 0x11 0x0a 0x19e>; - phandle = <0x428>; - }; - - uart3-rtsn { - rockchip,pins = <0x01 0x12 0x0a 0x198>; - phandle = <0x42b>; - }; - }; - - pcfg-pull-down-drv-level-5 { - drive-strength = <0x05>; - bias-pull-down; - phandle = <0x2fc>; - }; - - pcfg-pull-up-drv-level-8 { - drive-strength = <0x08>; - phandle = <0x45b>; - bias-pull-up; - }; - - pcfg-pull-up-drv-level-10 { - drive-strength = <0x0a>; - phandle = <0x45d>; - bias-pull-up; - }; - - pcfg-output-low { - phandle = <0x309>; - output-low; - }; - - i2c7 { - - i2c7m3-xfer { - rockchip,pins = <0x04 0x0a 0x09 0x19d 0x04 0x0b 0x09 0x19d>; - phandle = <0x36f>; - }; - - i2c7m2-xfer { - rockchip,pins = <0x03 0x1a 0x09 0x19d 0x03 0x1b 0x09 0x19d>; - phandle = <0x36e>; - }; - - i2c7m1-xfer { - rockchip,pins = <0x04 0x13 0x09 0x19d 0x04 0x14 0x09 0x19d>; - phandle = <0x370>; - }; - - i2c7m0-xfer { - rockchip,pins = <0x01 0x18 0x09 0x19d 0x01 0x19 0x09 0x19d>; - phandle = <0x185>; - }; - }; - - pwm2 { - - pwm2m2-pins { - rockchip,pins = <0x04 0x12 0x0b 0x198>; - phandle = <0x3c8>; - }; - - pwm2m1-pins { - rockchip,pins = <0x03 0x09 0x0b 0x198>; - phandle = <0x3c7>; - }; - - pwm2m0-pins { - rockchip,pins = <0x00 0x14 0x03 0x198>; - phandle = <0x80>; - }; - }; - - pcfg-pull-none-drv-level-0 { - drive-strength = <0x00>; - bias-disable; - phandle = <0x2ed>; - }; - - sata1 { - - sata1m1-pins { - rockchip,pins = <0x01 0x01 0x06 0x198>; - phandle = <0x3eb>; - }; - - sata1m0-pins { - rockchip,pins = <0x04 0x0d 0x06 0x198>; - phandle = <0x3ea>; - }; - }; - - pmu { - - pmu-pins { - rockchip,pins = <0x00 0x05 0x03 0x198>; - phandle = <0x3c2>; - }; - }; - - hdmirx { - - hdmirx-det { - rockchip,pins = <0x01 0x1d 0x00 0x198>; - phandle = <0x1b4>; - }; - }; - - uart1 { - - uart1m0-ctsn { - rockchip,pins = <0x02 0x11 0x0a 0x198>; - phandle = <0x423>; - }; - - uart1m1-xfer { - rockchip,pins = <0x01 0x0f 0x0a 0x19e 0x01 0x0e 0x0a 0x19e>; - phandle = <0x160>; - }; - - uart1m0-xfer { - rockchip,pins = <0x02 0x0e 0x0a 0x19e 0x02 0x0f 0x0a 0x19e>; - phandle = <0x422>; - }; - - uart1m2-rtsn { - rockchip,pins = <0x00 0x17 0x0a 0x198>; - phandle = <0x421>; - }; - - uart1m1-rtsn { - rockchip,pins = <0x01 0x1e 0x0a 0x198>; - phandle = <0x41e>; - }; - - uart1m0-rtsn { - rockchip,pins = <0x02 0x10 0x0a 0x198>; - phandle = <0x424>; - }; - - uart1m2-ctsn { - rockchip,pins = <0x00 0x18 0x0a 0x198>; - phandle = <0x420>; - }; - - uart1m1-ctsn { - rockchip,pins = <0x01 0x1f 0x0a 0x198>; - phandle = <0x41d>; - }; - - uart1m2-xfer { - rockchip,pins = <0x00 0x1a 0x0a 0x19e 0x00 0x19 0x0a 0x19e>; - phandle = <0x41f>; - }; - }; - - hdmi { - - hdmim1-rx-cec { - rockchip,pins = <0x03 0x19 0x05 0x198>; - phandle = <0x338>; - }; - - hdmim0-rx-scl { - rockchip,pins = <0x00 0x1a 0x0b 0x198>; - phandle = <0x336>; - }; - - hdmim0-rx-sda { - rockchip,pins = <0x00 0x19 0x0b 0x198>; - phandle = <0x337>; - }; - - hdmim0-tx0-cec { - rockchip,pins = <0x04 0x11 0x05 0x198>; - phandle = <0xf9>; - }; - - hdmim2-rx-cec { - rockchip,pins = <0x01 0x0f 0x05 0x198>; - phandle = <0x342>; - }; - - hdmim1-rx-scl { - rockchip,pins = <0x03 0x1a 0x05 0x19d>; - phandle = <0x33a>; - }; - - hdmim1-rx-sda { - rockchip,pins = <0x03 0x1b 0x05 0x19d>; - phandle = <0x33b>; - }; - - hdmim0-tx0-scl { - rockchip,pins = <0x04 0x0f 0x05 0x19b>; - phandle = <0xfb>; - }; - - hdmim0-tx0-sda { - rockchip,pins = <0x04 0x10 0x05 0x19c>; - phandle = <0xfc>; - }; - - hdmim2-rx-scl { - rockchip,pins = <0x01 0x1e 0x05 0x198>; - phandle = <0x344>; - }; - - hdmim2-rx-sda { - rockchip,pins = <0x01 0x1f 0x05 0x198>; - phandle = <0x345>; - }; - - hdmim0-tx0-hpd { - rockchip,pins = <0x01 0x05 0x05 0x198>; - phandle = <0xfa>; - }; - - hdmim2-rx-hpdin { - rockchip,pins = <0x01 0x0e 0x05 0x198>; - phandle = <0x343>; - }; - - hdmi-debug6 { - rockchip,pins = <0x01 0x00 0x07 0x198>; - phandle = <0x350>; - }; - - hdmim2-tx0-scl { - rockchip,pins = <0x03 0x17 0x05 0x19b>; - phandle = <0x346>; - }; - - hdmim2-tx0-sda { - rockchip,pins = <0x03 0x18 0x05 0x19c>; - phandle = <0x347>; - }; - - hdmi-debug4 { - rockchip,pins = <0x01 0x0b 0x07 0x198>; - phandle = <0x34e>; - }; - - hdmim0-tx1-cec { - rockchip,pins = <0x02 0x14 0x04 0x198>; - phandle = <0x351>; - }; - - hdmim0-tx1-scl { - rockchip,pins = <0x02 0x0d 0x04 0x198>; - phandle = <0x352>; - }; - - hdmim0-tx1-sda { - rockchip,pins = <0x02 0x0c 0x04 0x198>; - phandle = <0x353>; - }; - - hdmi-debug2 { - rockchip,pins = <0x01 0x09 0x07 0x198>; - phandle = <0x34c>; - }; - - hdmim0-tx1-hpd { - rockchip,pins = <0x01 0x06 0x05 0x198>; - phandle = <0x1a9>; - }; - - hdmim1-rx { - rockchip,pins = <0x03 0x19 0x05 0x198 0x03 0x1a 0x05 0x19d 0x03 0x1b 0x05 0x19d 0x03 0x1c 0x05 0x198>; - phandle = <0x1b3>; - }; - - hdmim2-tx1-cec { - rockchip,pins = <0x03 0x14 0x05 0x198>; - phandle = <0x1a8>; - }; - - hdmi-debug0 { - rockchip,pins = <0x01 0x07 0x07 0x198>; - phandle = <0x34a>; - }; - - hdmim2-tx1-scl { - rockchip,pins = <0x01 0x04 0x05 0x19b>; - phandle = <0x348>; - }; - - hdmim2-tx1-sda { - rockchip,pins = <0x01 0x03 0x05 0x19c>; - phandle = <0x349>; - }; - - hdmim1-tx0-cec { - rockchip,pins = <0x00 0x19 0x0d 0x198>; - phandle = <0x33c>; - }; - - hdmim1-tx0-scl { - rockchip,pins = <0x00 0x1d 0x0b 0x19b>; - phandle = <0x33e>; - }; - - hdmim1-tx0-sda { - rockchip,pins = <0x00 0x1c 0x0b 0x19c>; - phandle = <0x33f>; - }; - - hdmim1-tx0-hpd { - rockchip,pins = <0x03 0x1c 0x03 0x198>; - phandle = <0x33d>; - }; - - hdmim0-rx-hpdin { - rockchip,pins = <0x04 0x0e 0x05 0x198>; - phandle = <0x335>; - }; - - hdmi-debug5 { - rockchip,pins = <0x01 0x0c 0x07 0x198>; - phandle = <0x34f>; - }; - - hdmi-debug3 { - rockchip,pins = <0x01 0x0a 0x07 0x198>; - phandle = <0x34d>; - }; - - hdmim1-tx1-cec { - rockchip,pins = <0x00 0x1a 0x0d 0x198>; - phandle = <0x340>; - }; - - hdmi-debug1 { - rockchip,pins = <0x01 0x08 0x07 0x198>; - phandle = <0x34b>; - }; - - hdmim1-tx1-scl { - rockchip,pins = <0x03 0x16 0x05 0x19b>; - phandle = <0x1aa>; - }; - - hdmim1-tx1-sda { - rockchip,pins = <0x03 0x15 0x05 0x19c>; - phandle = <0x1ab>; - }; - - hdmim1-tx1-hpd { - rockchip,pins = <0x03 0x0f 0x05 0x198>; - phandle = <0x341>; - }; - - hdmim1-rx-hpdin { - rockchip,pins = <0x03 0x1c 0x05 0x198>; - phandle = <0x339>; - }; - - hdmim0-rx-cec { - rockchip,pins = <0x04 0x0d 0x05 0x198>; - phandle = <0x334>; - }; - }; - - pcfg-pull-down-drv-level-3 { - drive-strength = <0x03>; - bias-pull-down; - phandle = <0x2fa>; - }; - - pcfg-pull-up-drv-level-6 { - drive-strength = <0x06>; - phandle = <0x19a>; - bias-pull-up; - }; - - i2c5 { - - i2c5m3-xfer { - rockchip,pins = <0x01 0x0e 0x09 0x19d 0x01 0x0f 0x09 0x19d>; - phandle = <0x368>; - }; - - i2c5m2-xfer { - rockchip,pins = <0x04 0x06 0x09 0x19d 0x04 0x07 0x09 0x19d>; - phandle = <0x367>; - }; - - i2c5m1-xfer { - rockchip,pins = <0x04 0x0e 0x09 0x19d 0x04 0x0f 0x09 0x19d>; - phandle = <0x366>; - }; - - i2c5m0-xfer { - rockchip,pins = <0x03 0x17 0x09 0x19d 0x03 0x18 0x09 0x19d>; - phandle = <0x14d>; - }; - - i2c5m4-xfer { - rockchip,pins = <0x02 0x0e 0x09 0x19d 0x02 0x0f 0x09 0x19d>; - phandle = <0x369>; - }; - }; - - pcfg-pull-none-drv-level-9 { - drive-strength = <0x09>; - bias-disable; - phandle = <0x453>; - }; - - pdm0 { - - pdm0m1-sdi3 { - rockchip,pins = <0x00 0x1e 0x02 0x198>; - phandle = <0x3ba>; - }; - - pdm0m1-clk { - rockchip,pins = <0x00 0x10 0x02 0x198>; - phandle = <0x3b4>; - }; - - pdm0m1-sdi1 { - rockchip,pins = <0x00 0x18 0x02 0x198>; - phandle = <0x3b8>; - }; - - pdm0m0-sdi3 { - rockchip,pins = <0x01 0x1b 0x03 0x198>; - phandle = <0x137>; - }; - - pdm0m0-sdi1 { - rockchip,pins = <0x01 0x19 0x03 0x198>; - phandle = <0x135>; - }; - - pdm0m1-clk1 { - rockchip,pins = <0x00 0x14 0x02 0x198>; - phandle = <0x3b5>; - }; - - pdm0m1-idle { - rockchip,pins = <0x00 0x10 0x00 0x198 0x00 0x14 0x00 0x198>; - phandle = <0x3b6>; - }; - - pdm0m0-clk1 { - rockchip,pins = <0x01 0x14 0x03 0x198>; - phandle = <0x13a>; - }; - - pdm0m1-sdi2 { - rockchip,pins = <0x00 0x1c 0x02 0x198>; - phandle = <0x3b9>; - }; - - pdm0m0-idle { - rockchip,pins = <0x01 0x16 0x00 0x198 0x01 0x14 0x00 0x198>; - phandle = <0x138>; - }; - - pdm0m1-sdi0 { - rockchip,pins = <0x00 0x17 0x02 0x198>; - phandle = <0x3b7>; - }; - - pdm0m0-sdi2 { - rockchip,pins = <0x01 0x1a 0x03 0x198>; - phandle = <0x136>; - }; - - pdm0m0-sdi0 { - rockchip,pins = <0x01 0x1d 0x03 0x198>; - phandle = <0x134>; - }; - - pdm0m0-clk { - rockchip,pins = <0x01 0x16 0x03 0x198>; - phandle = <0x139>; - }; - }; - - pcfg-output-high-pull-none { - bias-disable; - output-high; - phandle = <0x308>; - }; - - pwm0 { - - pwm0m1-pins { - rockchip,pins = <0x01 0x1a 0x0b 0x198>; - phandle = <0x3c3>; - }; - - pwm0m0-pins { - rockchip,pins = <0x00 0x0f 0x03 0x198>; - phandle = <0x7e>; - }; - - pwm0m2-pins { - rockchip,pins = <0x01 0x02 0x0b 0x198>; - phandle = <0x3c4>; - }; - }; - - cif { - - cif-dvp-clk { - rockchip,pins = <0x04 0x08 0x01 0x198 0x04 0x0a 0x01 0x198 0x04 0x0b 0x01 0x198>; - phandle = <0x311>; - }; - - cif-clk { - rockchip,pins = <0x04 0x0c 0x01 0x198>; - phandle = <0x310>; - }; - - cif-dvp-bus8 { - rockchip,pins = <0x04 0x00 0x01 0x198 0x04 0x01 0x01 0x198 0x04 0x02 0x01 0x198 0x04 0x03 0x01 0x198 0x04 0x04 0x01 0x198 0x04 0x05 0x01 0x198 0x04 0x06 0x01 0x198 0x04 0x07 0x01 0x198>; - phandle = <0x313>; - }; - - cif-dvp-bus16 { - rockchip,pins = <0x03 0x14 0x01 0x198 0x03 0x15 0x01 0x198 0x03 0x16 0x01 0x198 0x03 0x17 0x01 0x198 0x03 0x18 0x01 0x198 0x03 0x19 0x01 0x198 0x03 0x1a 0x01 0x198 0x03 0x1b 0x01 0x198>; - phandle = <0x312>; - }; - }; - - can1 { - - can1m1-pins { - rockchip,pins = <0x04 0x0a 0x0c 0x198 0x04 0x0b 0x0c 0x198>; - phandle = <0x146>; - }; - - can1m0-pins { - rockchip,pins = <0x03 0x0d 0x09 0x198 0x03 0x0e 0x09 0x198>; - phandle = <0x30e>; - }; - }; - - pcfg-output-low-pull-none { - bias-disable; - phandle = <0x30c>; - output-low; - }; - - gpio@fec40000 { - gpio-controller; - interrupts = <0x00 0x118 0x04>; - clocks = <0x02 0x81 0x02 0x82>; - compatible = "rockchip,gpio-bank"; - #interrupt-cells = <0x02>; - reg = <0x00 0xfec40000 0x00 0x100>; - phandle = <0x181>; - #gpio-cells = <0x02>; - gpio-ranges = <0x197 0x00 0x60 0x20>; - interrupt-controller; - }; - - spi4 { - - spi4m0-cs0 { - rockchip,pins = <0x01 0x13 0x08 0x19a>; - phandle = <0x187>; - }; - - spi4m1-cs0 { - rockchip,pins = <0x03 0x03 0x08 0x19a>; - phandle = <0x413>; - }; - - spi4m2-pins { - rockchip,pins = <0x01 0x02 0x08 0x19a 0x01 0x00 0x08 0x19a 0x01 0x01 0x08 0x19a>; - phandle = <0x415>; - }; - - spi4m0-cs1 { - rockchip,pins = <0x01 0x14 0x08 0x19a>; - phandle = <0x188>; - }; - - spi4m1-pins { - rockchip,pins = <0x03 0x02 0x08 0x19a 0x03 0x00 0x08 0x19a 0x03 0x01 0x08 0x19a>; - phandle = <0x412>; - }; - - spi4m2-cs0 { - rockchip,pins = <0x01 0x03 0x08 0x19a>; - phandle = <0x416>; - }; - - spi4m0-pins { - rockchip,pins = <0x01 0x12 0x08 0x19a 0x01 0x10 0x08 0x19a 0x01 0x11 0x08 0x19a>; - phandle = <0x189>; - }; - - spi4m1-cs1 { - rockchip,pins = <0x03 0x04 0x08 0x19a>; - phandle = <0x414>; - }; - }; - - pcfg-pull-down-drv-level-15 { - drive-strength = <0x0f>; - bias-pull-down; - phandle = <0x46b>; - }; - - pcfg-pull-up-smt { - input-schmitt-enable; - phandle = <0x2fe>; - bias-pull-up; - }; - - pcfg-pull-down-drv-level-1 { - drive-strength = <0x01>; - bias-pull-down; - phandle = <0x2f8>; - }; - - pcfg-pull-up-drv-level-4 { - drive-strength = <0x04>; - phandle = <0x2f5>; - bias-pull-up; - }; - - wireless-wlan { - - wifi-host-wake-irq { - rockchip,pins = <0x00 0x0a 0x00 0x198>; - phandle = <0x1ea>; - }; - }; - - wdt-pc9202 { - - wdt-en-base { - rockchip,pins = <0x00 0x14 0x00 0x198>; - phandle = <0x14c>; - }; - }; - - pcfg-pull-none-drv-level-0-smt { - drive-strength = <0x00>; - bias-disable; - input-schmitt-enable; - phandle = <0x300>; - }; - - i2s3 { - - i2s3-sdi { - rockchip,pins = <0x03 0x04 0x03 0x198>; - phandle = <0x12f>; - }; - - i2s3-idle { - rockchip,pins = <0x03 0x02 0x00 0x198 0x03 0x01 0x00 0x198>; - phandle = <0x131>; - }; - - i2s3-sclk { - rockchip,pins = <0x03 0x01 0x03 0x19d>; - phandle = <0x133>; - }; - - i2s3-lrck { - rockchip,pins = <0x03 0x02 0x03 0x19d>; - phandle = <0x132>; - }; - - i2s3-sdo { - rockchip,pins = <0x03 0x03 0x03 0x198>; - phandle = <0x130>; - }; - - i2s3-mclk { - rockchip,pins = <0x03 0x00 0x03 0x19d>; - phandle = <0x38e>; - }; - }; - - pcfg-pull-none-drv-level-14 { - drive-strength = <0x0e>; - bias-disable; - phandle = <0x458>; - }; - }; - - rkcif-mipi-lvds4-sditf-vir1 { - compatible = "rockchip,rkcif-sditf"; - status = "disabled"; - rockchip,cif = <0x1a1>; - phandle = <0x473>; - }; - - bt-sco { - #sound-dai-cells = <0x01>; - compatible = "delta,dfbmcs320"; - status = "disabled"; - phandle = <0x1d2>; - }; - - phy@fed80000 { - svid = <0xff01>; - orientation-switch; - sbu2-dc-gpios = <0x10d 0x07 0x00>; - clock-names = "refclk\0immortal\0pclk\0utmi"; - resets = <0x02 0x28 0x02 0x29 0x02 0x2a 0x02 0x2b 0x02 0x482>; - clocks = <0x02 0x2b6 0x02 0x27f 0x02 0x269 0x18d>; - compatible = "rockchip,rk3588-usbdp-phy"; - status = "okay"; - reg = <0x00 0xfed80000 0x00 0x10000>; - phandle = <0x2ea>; - rockchip,usb-grf = <0x74>; - reset-names = "init\0cmn\0lane\0pcs_apb\0pma_apb"; - rockchip,u2phy-grf = <0x18b>; - sbu1-dc-gpios = <0x10d 0x06 0x00>; - rockchip,usbdpphy-grf = <0x18c>; - rockchip,vo-grf = <0xf5>; - - dp-port { - #phy-cells = <0x00>; - status = "okay"; - phandle = <0xf6>; - }; - - port { - #address-cells = <0x01>; - #size-cells = <0x00>; - - endpoint@1 { - remote-endpoint = <0x18f>; - reg = <0x01>; - phandle = <0x17f>; - }; - - endpoint@0 { - remote-endpoint = <0x18e>; - reg = <0x00>; - phandle = <0x17e>; - }; - }; - - u3-port { - #phy-cells = <0x00>; - status = "okay"; - phandle = <0x67>; - }; - }; - - interrupt-controller@fe600000 { - #address-cells = <0x02>; - interrupts = <0x01 0x09 0x04>; - #size-cells = <0x02>; - compatible = "arm,gic-v3"; - ranges; - #interrupt-cells = <0x03>; - reg = <0x00 0xfe600000 0x00 0x10000 0x00 0xfe680000 0x00 0x100000>; - phandle = <0x01>; - interrupt-controller; - - msi-controller@fe640000 { - msi-controller; - compatible = "arm,gic-v3-its"; - reg = <0x00 0xfe640000 0x00 0x20000>; - phandle = <0x106>; - #msi-cells = <0x01>; - }; - - }; - - pcie-essd { - regulator-max-microvolt = <0x2625a0>; - enable-active-high; - regulator-min-microvolt = <0x2625a0>; - regulator-name = "pcie_essd"; - startup-delay-us = <0x1388>; - compatible = "regulator-fixed"; - status = "disabled"; - phandle = <0x1ba>; - vin-supply = <0x1cd>; - gpios = <0x181 0x0f 0x00>; - }; - - iommu@fdab9000 { - clock-names = "aclk0\0aclk1\0aclk2\0iface0\0iface1\0iface2"; - interrupts = <0x00 0x6e 0x04 0x00 0x6f 0x04 0x00 0x70 0x04>; - clocks = <0x02 0x12d 0x02 0x122 0x02 0x124 0x02 0x12e 0x02 0x123 0x02 0x125>; - #iommu-cells = <0x00>; - compatible = "rockchip,iommu-v2"; - status = "okay"; - interrupt-names = "npu0_mmu\0npu1_mmu\0npu2_mmu"; - reg = <0x00 0xfdab9000 0x00 0x100 0x00 0xfdaba000 0x00 0x100 0x00 0xfdaca000 0x00 0x100 0x00 0xfdada000 0x00 0x100>; - phandle = <0xb2>; - }; - - otp@fecc0000 { - #address-cells = <0x01>; - clock-names = "otpc\0apb\0arb\0phy"; - resets = <0x02 0x12a 0x02 0x129 0x02 0x12b>; - clocks = <0x02 0x96 0x02 0x95 0x02 0x97 0x02 0x99>; - #size-cells = <0x01>; - compatible = "rockchip,rk3588-otp"; - reg = <0x00 0xfecc0000 0x00 0x400>; - phandle = <0x2e7>; - reset-names = "otpc\0apb\0arb"; - - id@7 { - reg = <0x07 0x10>; - phandle = <0x2a>; - }; - - cpul-opp-info@3d { - reg = <0x3d 0x06>; - phandle = <0x20>; - }; - - cpub1-leakage@18 { - reg = <0x18 0x01>; - phandle = <0x27>; - }; - - vop-opp-info@61 { - reg = <0x61 0x06>; - phandle = <0x2e8>; - }; - - cpul-leakage@19 { - reg = <0x19 0x01>; - phandle = <0x1f>; - }; - - codec-leakage@29 { - reg = <0x29 0x01>; - phandle = <0xc6>; - }; - - cpu-version@1c { - bits = <0x03 0x03>; - reg = <0x1c 0x01>; - phandle = <0x2b>; - }; - - cpub0-leakage@17 { - reg = <0x17 0x01>; - phandle = <0x24>; - }; - - log-leakage@1a { - reg = <0x1a 0x01>; - phandle = <0x44>; - }; - - cpu-code@2 { - reg = <0x02 0x02>; - phandle = <0x2c>; - }; - - package-serial-number-low@6 { - bits = <0x05 0x03>; - reg = <0x06 0x01>; - phandle = <0xd4>; - }; - - npu-opp-info@55 { - reg = <0x55 0x06>; - phandle = <0xb5>; - }; - - package-serial-number-high@5 { - bits = <0x00 0x01>; - reg = <0x05 0x01>; - phandle = <0xd5>; - }; - - cpub01-opp-info@43 { - reg = <0x43 0x06>; - phandle = <0x25>; - }; - - dmc-opp-info@5b { - reg = <0x5b 0x06>; - phandle = <0x45>; - }; - - npu-leakage@28 { - reg = <0x28 0x01>; - phandle = <0xb4>; - }; - - gpu-leakage@1b { - reg = <0x1b 0x01>; - phandle = <0x63>; - }; - - specification-serial-number@6 { - bits = <0x00 0x05>; - reg = <0x06 0x01>; - phandle = <0x21>; - }; - - venc-opp-info@67 { - reg = <0x67 0x06>; - phandle = <0xc7>; - }; - - gpu-opp-info@4f { - reg = <0x4f 0x06>; - phandle = <0x64>; - }; - - cpub23-opp-info@49 { - reg = <0x49 0x06>; - phandle = <0x28>; - }; - }; - - i2s@fddf0000 { - power-domains = <0x60 0x1a>; - rockchip,always-on; - clock-names = "mclk_tx\0mclk_rx\0hclk"; - assigned-clocks = <0x02 0x243>; - assigned-clock-parents = <0x02 0x07>; - resets = <0x02 0x3e8>; - interrupts = <0x00 0xb9 0x04>; - clocks = <0x02 0x246 0x02 0x246 0x02 0x248>; - dma-names = "tx"; - #sound-dai-cells = <0x00>; - compatible = "rockchip,rk3588-i2s-tdm"; - rockchip,playback-only; - status = "okay"; - reg = <0x00 0xfddf0000 0x00 0x1000>; - phandle = <0x1d3>; - dmas = <0xf2 0x02>; - reset-names = "tx-m"; - rockchip,hdmi-path; - }; - - dma-controller@fea10000 { - clock-names = "apb_pclk"; - interrupts = <0x00 0x56 0x04 0x00 0x57 0x04>; - clocks = <0x02 0x78>; - arm,pl330-periph-burst; - compatible = "arm,pl330\0arm,primecell"; - reg = <0x00 0xfea10000 0x00 0x4000>; - phandle = <0x7c>; - #dma-cells = <0x01>; - }; - - pwm@febd0000 { - pinctrl-names = "active"; - pinctrl-0 = <0x169>; - clock-names = "pwm\0pclk"; - interrupts = <0x00 0x15a 0x04>; - clocks = <0x02 0x54 0x02 0x53>; - #pwm-cells = <0x03>; - compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; - status = "disabled"; - reg = <0x00 0xfebd0000 0x00 0x10>; - phandle = <0x2d2>; - }; - - rkvenc-ccu { - compatible = "rockchip,rkv-encoder-v2-ccu"; - status = "okay"; - phandle = <0xc3>; - }; - - syscon@fd58c000 { - compatible = "rockchip,rk3588-sys-grf\0syscon\0simple-mfd"; - reg = <0x00 0xfd58c000 0x00 0x1000>; - phandle = <0xc8>; - - rgb { - pinctrl-names = "default"; - pinctrl-0 = <0x71>; - compatible = "rockchip,rk3588-rgb"; - status = "disabled"; - phandle = <0x25c>; - - ports { - #address-cells = <0x01>; - #size-cells = <0x00>; - - port@0 { - #address-cells = <0x01>; - #size-cells = <0x00>; - reg = <0x00>; - - endpoint@2 { - remote-endpoint = <0x3d>; - status = "disabled"; - reg = <0x02>; - phandle = <0xf0>; - }; - }; - }; - }; - }; - - spi@fe2b0000 { - #address-cells = <0x01>; - clock-names = "clk_sfc\0hclk_sfc"; - assigned-clocks = <0x02 0x13d>; - assigned-clock-rates = <0x5f5e100>; - interrupts = <0x00 0xce 0x04>; - clocks = <0x02 0x13d 0x02 0x13e>; - #size-cells = <0x00>; - compatible = "rockchip,sfc"; - status = "disabled"; - reg = <0x00 0xfe2b0000 0x00 0x4000>; - phandle = <0x292>; - }; - - qos@fdf82200 { - compatible = "syscon"; - reg = <0x00 0xfdf82200 0x00 0x20>; - phandle = <0x9e>; - }; - - mmc@fe2c0000 { - power-domains = <0x60 0x28>; - fifo-depth = <0x100>; - pinctrl-names = "default"; - pinctrl-0 = <0x114 0x115 0x116 0x117>; - clock-names = "biu\0ciu\0ciu-drive\0ciu-sample"; - cap-sd-highspeed; - vqmmc-supply = <0x118>; - no-mmc; - bus-width = <0x04>; - no-sdio; - interrupts = <0x00 0xcb 0x04>; - clocks = <0x0e 0x17 0x0e 0x09 0x02 0x2c2 0x02 0x2c3>; - compatible = "rockchip,rk3588-dw-mshc\0rockchip,rk3288-dw-mshc"; - status = "okay"; - disable-wp; - reg = <0x00 0xfe2c0000 0x00 0x4000>; - phandle = <0x293>; - sd-uhs-sdr104; - max-frequency = <0x8f0d180>; - cap-mmc-highspeed; - }; - - serial@feb80000 { - reg-io-width = <0x04>; - pinctrl-names = "default"; - pinctrl-0 = <0x164>; - clock-names = "baudclk\0apb_pclk"; - interrupts = <0x00 0x150 0x04>; - clocks = <0x02 0xc7 0x02 0xaf>; - compatible = "rockchip,rk3588-uart\0snps,dw-apb-uart"; - status = "disabled"; - reg = <0x00 0xfeb80000 0x00 0x100>; - phandle = <0x2cd>; - dmas = <0xf1 0x0b 0xf1 0x0c>; - reg-shift = <0x02>; - }; - - phy@fee10000 { - rockchip,pipe-grf = <0x76>; - clock-names = "refclk\0apbclk\0phpclk"; - assigned-clocks = <0x02 0x2be>; - assigned-clock-rates = <0x5f5e100>; - resets = <0x02 0x20006 0x02 0x4d7>; - clocks = <0x02 0x2be 0x02 0x186 0x02 0x166>; - #phy-cells = <0x01>; - compatible = "rockchip,rk3588-naneng-combphy"; - status = "disabled"; - rockchip,pipe-phy-grf = <0x1cb>; - reg = <0x00 0xfee10000 0x00 0x100>; - phandle = <0x1bc>; - reset-names = "combphy-apb\0combphy"; - rockchip,pcie1ln-sel-bits = <0x100 0x00 0x00 0x00>; - }; - - can@fea60000 { - pinctrl-names = "default"; - pinctrl-0 = <0x146>; - clock-names = "baudclk\0apb_pclk"; - assigned-clocks = <0x02 0x72>; - assigned-clock-rates = <0xbebc200>; - resets = <0x02 0xbb 0x02 0xba>; - interrupts = <0x00 0x156 0x04>; - clocks = <0x02 0x72 0x02 0x71>; - compatible = "rockchip,can-2.0"; - status = "okay"; - tx-fifo-depth = <0x01>; - rx-fifo-depth = <0x06>; - reg = <0x00 0xfea60000 0x00 0x1000>; - phandle = <0x2a1>; - reset-names = "can\0can-apb"; - }; - - pdm@fe4c0000 { - power-domains = <0x60 0x26>; - pinctrl-names = "default\0idle\0clk"; - pinctrl-2 = <0x140 0x141>; - pinctrl-0 = <0x13b 0x13c 0x13d 0x13e>; - clock-names = "pdm_clk\0pdm_hclk"; - assigned-clocks = <0x02 0x3b>; - assigned-clock-parents = <0x02 0x05>; - clocks = <0x02 0x3b 0x02 0x3a>; - dma-names = "rx"; - #sound-dai-cells = <0x00>; - compatible = "rockchip,rk3588-pdm"; - pinctrl-1 = <0x13f>; - status = "disabled"; - reg = <0x00 0xfe4c0000 0x00 0x1000>; - phandle = <0x29b>; - dmas = <0xf1 0x04>; - }; - - rkcif-mipi-lvds3-sditf-vir2 { - compatible = "rockchip,rkcif-sditf"; - status = "disabled"; - rockchip,cif = <0x57>; - phandle = <0x239>; - }; - - qos@fdf66e00 { - compatible = "syscon"; - reg = <0x00 0xfdf66e00 0x00 0x20>; - phandle = <0x9a>; - }; - - usb@fc800000 { - power-domains = <0x60 0x1f>; - phy-names = "usb2-phy"; - clock-names = "usbhost\0arbiter\0utmi\0alk_usb"; - companion = <0x6b>; - interrupts = <0x00 0xd7 0x04>; - clocks = <0x02 0x19d 0x02 0x19e 0x69 0x6a>; - compatible = "rockchip,rk3588-ehci\0generic-ehci"; - status = "okay"; - phys = <0x6c>; - reg = <0x00 0xfc800000 0x00 0x40000>; - phandle = <0x254>; - }; - - i2c@fd880000 { - pinctrl-names = "default"; - #address-cells = <0x01>; - pinctrl-0 = <0x77>; - clock-names = "i2c\0pclk"; - resets = <0x02 0xc0022 0x02 0xc0021>; - interrupts = <0x00 0x13d 0x04>; - clocks = <0x02 0x287 0x02 0x286>; - #size-cells = <0x00>; - compatible = "rockchip,rk3588-i2c\0rockchip,rk3399-i2c"; - status = "okay"; - reg = <0x00 0xfd880000 0x00 0x1000>; - phandle = <0x25f>; - reset-names = "i2c\0apb"; - - hym8563@51 { - pinctrl-names = "default"; - clock-output-names = "hym8563"; - pinctrl-0 = <0x7a>; - wakeup-source; - interrupts = <0x08 0x08>; - #clock-cells = <0x00>; - interrupt-parent = <0x7b>; - clock-frequency = <0x8000>; - compatible = "haoyu,hym8563"; - status = "okay"; - reg = <0x51>; - phandle = <0x1e4>; - }; - - rk8602@42 { - regulator-max-microvolt = <0x100590>; - regulator-boot-on; - rockchip,suspend-voltage-selector = <0x01>; - regulator-always-on; - regulator-min-microvolt = <0x86470>; - regulator-name = "vdd_cpu_big0_s0"; - regulator-ramp-delay = <0x8fc>; - compatible = "rockchip,rk8602"; - reg = <0x42>; - phandle = <0x18>; - vin-supply = <0x78>; - regulator-compatible = "rk860x-reg"; - - regulator-state-mem { - regulator-off-in-suspend; - }; - }; - - rk8603@43 { - regulator-max-microvolt = <0x100590>; - regulator-boot-on; - rockchip,suspend-voltage-selector = <0x01>; - regulator-always-on; - regulator-min-microvolt = <0x86470>; - regulator-name = "vdd_cpu_big1_s0"; - regulator-ramp-delay = <0x8fc>; - compatible = "rockchip,rk8603"; - reg = <0x43>; - phandle = <0x1c>; - vin-supply = <0x78>; - regulator-compatible = "rk860x-reg"; - - regulator-state-mem { - regulator-off-in-suspend; - }; - }; - - pc9202@3c { - index = <0x00>; - compatible = "firefly,pc9202"; - status = "okay"; - wd-en-gpio = <0x79 0x15 0x00>; - driver-names = "wdt_core"; - reg = <0x3c>; - }; - }; - - rkcif-mipi-lvds3-sditf { - compatible = "rockchip,rkcif-sditf"; - status = "disabled"; - rockchip,cif = <0x57>; - phandle = <0x237>; - }; - - serial@fd890000 { - reg-io-width = <0x04>; - pinctrl-names = "default"; - pinctrl-0 = <0x7d>; - clock-names = "baudclk\0apb_pclk"; - interrupts = <0x00 0x14b 0x04>; - clocks = <0x02 0x2ae 0x02 0x2af>; - compatible = "rockchip,rk3588-uart\0snps,dw-apb-uart"; - status = "disabled"; - reg = <0x00 0xfd890000 0x00 0x100>; - phandle = <0x260>; - dmas = <0x7c 0x06 0x7c 0x07>; - reg-shift = <0x02>; - }; - - qos@fdf70000 { - compatible = "syscon"; - reg = <0x00 0xfdf70000 0x00 0x20>; - phandle = <0x85>; - }; - - gpu-opp-table { - rockchip,pvtm-offset = <0x1c>; - rockchip,pvtm-sample-time = <0x44c>; - rockchip,pvtm-hw = <0x04>; - nvmem-cells = <0x63 0x64 0x21>; - rockchip,low-temp = <0x2710>; - rockchip,pvtm-voltage-sel-hw = <0x00 0x31f 0x00 0x320 0x333 0x01 0x334 0x34c 0x02 0x34d 0x365 0x03 0x366 0x37e 0x04 0x37f 0x270f 0x05>; - rockchip,pvtm-thermal-zone = "gpu-thermal"; - rockchip,high-temp-max-freq = "\0\f5"; - rockchip,opp-clocks = <0x02 0x114>; - rockchip,pvtm-freq = "\0\f5"; - rockchip,pvtm-ref-temp = <0x19>; - low-volt-mem-read-margin = <0x04>; - volt-mem-read-margin = <0xd0bd8 0x01 0xbac48 0x02 0xa4cb8 0x03 0x78d98 0x04>; - compatible = "operating-points-v2"; - rockchip,low-temp-min-volt = <0xb71b0>; - rockchip,grf = <0x65>; - nvmem-cell-names = "leakage\0opp-info\0specification_serial_number"; - rockchip,pvtm-voltage-sel = <0x00 0x32f 0x00 0x330 0x343 0x01 0x344 0x35c 0x02 0x35d 0x375 0x03 0x376 0x38e 0x04 0x38f 0x270f 0x05>; - phandle = <0x61>; - rockchip,pvtm-temp-prop = <0xffffff79 0xffffff79>; - rockchip,temp-hysteresis = <0x1388>; - rockchip,high-temp = <0x14c08>; - rockchip,pvtm-pvtpll; - rockchip,supported-hw; - intermediate-threshold-freq = <0x61a80>; - rockchip,pvtm-volt = <0xb71b0>; - - opp-j-m-700000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; - opp-hz = <0x00 0x29b92700>; - opp-supported-hw = <0x06 0xffff>; - }; - - opp-300000000 { - opp-microvolt = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; - opp-hz = <0x00 0x11e1a300>; - opp-supported-hw = <0xf9 0xffff>; - }; - - opp-500000000 { - opp-microvolt = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; - opp-hz = <0x00 0x1dcd6500>; - opp-supported-hw = <0xf9 0xffff>; - }; - - opp-m-800000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; - opp-hz = <0x00 0x2faf0800>; - opp-supported-hw = <0x02 0xffff>; - }; - - opp-j-850000000 { - opp-microvolt = <0xc042c 0xc042c 0xcf850 0xc042c 0xc042c 0xcf850>; - opp-microvolt-L4 = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; - opp-microvolt-L2 = <0xba284 0xba284 0xcf850 0xba284 0xba284 0xcf850>; - opp-hz = <0x00 0x32a9f880>; - opp-supported-hw = <0x04 0xffff>; - opp-microvolt-L5 = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; - opp-microvolt-L3 = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; - opp-microvolt-L1 = <0xbd358 0xbd358 0xcf850 0xbd358 0xbd358 0xcf850>; - }; - - opp-j-m-400000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; - opp-hz = <0x00 0x17d78400>; - opp-supported-hw = <0x06 0xffff>; - }; - - opp-700000000 { - opp-microvolt = <0xaae60 0xaae60 0xcf850 0xaae60 0xaae60 0xcf850>; - opp-microvolt-L4 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; - opp-microvolt-L2 = <0xa7d8c 0xa7d8c 0xcf850 0xa7d8c 0xa7d8c 0xcf850>; - opp-hz = <0x00 0x29b92700>; - opp-supported-hw = <0xf9 0xffff>; - opp-microvolt-L5 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; - opp-microvolt-L3 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; - }; - - opp-j-m-600000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; - opp-hz = <0x00 0x23c34600>; - opp-supported-hw = <0x06 0xffff>; - }; - - opp-900000000 { - opp-microvolt = <0xc3500 0xc3500 0xcf850 0xc3500 0xc3500 0xcf850>; - opp-microvolt-L4 = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; - opp-microvolt-L2 = <0xbd358 0xbd358 0xcf850 0xbd358 0xbd358 0xcf850>; - opp-hz = <0x00 0x35a4e900>; - opp-supported-hw = <0xf9 0xffff>; - opp-microvolt-L5 = <0xb40dc 0xb40dc 0xcf850 0xb40dc 0xb40dc 0xcf850>; - opp-microvolt-L3 = <0xba284 0xba284 0xcf850 0xba284 0xba284 0xcf850>; - opp-microvolt-L1 = <0xc042c 0xc042c 0xcf850 0xc042c 0xc042c 0xcf850>; - }; - - opp-m-1000000000 { - opp-microvolt = <0xcf850 0xcf850 0xcf850 0xcf850 0xcf850 0xcf850>; - opp-microvolt-L4 = <0xc3500 0xc3500 0xcf850 0xc3500 0xc3500 0xcf850>; - opp-microvolt-L2 = <0xc96a8 0xc96a8 0xcf850 0xc96a8 0xc96a8 0xcf850>; - opp-hz = <0x00 0x3b9aca00>; - opp-supported-hw = <0x02 0xffff>; - opp-microvolt-L5 = <0xc042c 0xc042c 0xcf850 0xc042c 0xc042c 0xcf850>; - opp-microvolt-L3 = <0xc65d4 0xc65d4 0xcf850 0xc65d4 0xc65d4 0xcf850>; - opp-microvolt-L1 = <0xcc77c 0xcc77c 0xcf850 0xcc77c 0xcc77c 0xcf850>; - }; - - opp-400000000 { - opp-microvolt = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; - opp-hz = <0x00 0x17d78400>; - opp-supported-hw = <0xf9 0xffff>; - }; - - opp-j-m-300000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; - opp-hz = <0x00 0x11e1a300>; - opp-supported-hw = <0x06 0xffff>; - }; - - opp-600000000 { - opp-microvolt = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; - opp-hz = <0x00 0x23c34600>; - opp-supported-hw = <0xf9 0xffff>; - }; - - opp-m-900000000 { - opp-microvolt = <0xc3500 0xc3500 0xcf850 0xc3500 0xc3500 0xcf850>; - opp-microvolt-L4 = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; - opp-microvolt-L2 = <0xbd358 0xbd358 0xcf850 0xbd358 0xbd358 0xcf850>; - opp-hz = <0x00 0x35a4e900>; - opp-supported-hw = <0x02 0xffff>; - opp-microvolt-L5 = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; - opp-microvolt-L3 = <0xba284 0xba284 0xcf850 0xba284 0xba284 0xcf850>; - opp-microvolt-L1 = <0xc042c 0xc042c 0xcf850 0xc042c 0xc042c 0xcf850>; - }; - - opp-1000000000 { - opp-microvolt = <0xcf850 0xcf850 0xcf850 0xcf850 0xcf850 0xcf850>; - opp-microvolt-L4 = <0xc3500 0xc3500 0xcf850 0xc3500 0xc3500 0xcf850>; - opp-microvolt-L2 = <0xc96a8 0xc96a8 0xcf850 0xc96a8 0xc96a8 0xcf850>; - opp-hz = <0x00 0x3b9aca00>; - opp-supported-hw = <0xf9 0xffff>; - opp-microvolt-L5 = <0xc042c 0xc042c 0xcf850 0xc042c 0xc042c 0xcf850>; - opp-microvolt-L3 = <0xc65d4 0xc65d4 0xcf850 0xc65d4 0xc65d4 0xcf850>; - opp-microvolt-L1 = <0xcc77c 0xcc77c 0xcf850 0xcc77c 0xcc77c 0xcf850>; - }; - - opp-j-m-500000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; - opp-hz = <0x00 0x1dcd6500>; - opp-supported-hw = <0x06 0xffff>; - }; - - opp-800000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; - opp-microvolt-L4 = <0xaae60 0xaae60 0xcf850 0xaae60 0xaae60 0xcf850>; - opp-microvolt-L2 = <0xb1008 0xb1008 0xcf850 0xb1008 0xb1008 0xcf850>; - opp-hz = <0x00 0x2faf0800>; - opp-supported-hw = <0xf9 0xffff>; - opp-microvolt-L5 = <0xaae60 0xaae60 0xcf850 0xaae60 0xaae60 0xcf850>; - opp-microvolt-L3 = <0xadf34 0xadf34 0xcf850 0xadf34 0xadf34 0xcf850>; - opp-microvolt-L1 = <0xb40dc 0xb40dc 0xcf850 0xb40dc 0xb40dc 0xcf850>; - }; - }; - - csi2-dphy1-hw@fedc8000 { - clock-names = "pclk"; - resets = <0x02 0x19 0x02 0x18>; - clocks = <0x02 0x10d>; - compatible = "rockchip,rk3588-csi2-dphy-hw"; - status = "okay"; - rockchip,grf = <0x193>; - reg = <0x00 0xfedc8000 0x00 0x8000>; - phandle = <0x2e>; - reset-names = "srst_csiphy1\0srst_p_csiphy1"; - rockchip,sys_grf = <0xc8>; - }; - - hdcp@fde40000 { - power-domains = <0x60 0x19>; - clock-names = "aclk\0pclk\0hclk\0hclk_key\0aclk_trng\0pclk_trng"; - resets = <0x02 0x37f 0x02 0x37d 0x02 0x37c 0x02 0x37b 0x02 0x381>; - interrupts = <0x00 0x9f 0x04>; - clocks = <0x02 0x1ed 0x02 0x1ef 0x02 0x1ee 0x02 0x1ec 0x02 0x1f1 0x02 0x1f2>; - compatible = "rockchip,rk3588-hdcp"; - status = "disabled"; - reg = <0x00 0xfde40000 0x00 0x80>; - phandle = <0x285>; - reset-names = "hdcp\0h_hdcp\0a_hdcp\0hdcp_key\0trng"; - rockchip,vo-grf = <0xf5>; - }; - - iommu@fdbac800 { - power-domains = <0x60 0x15>; - clock-names = "aclk\0iface"; - interrupts = <0x00 0x7f 0x04>; - clocks = <0x02 0x1b2 0x02 0x1b3>; - #iommu-cells = <0x00>; - compatible = "rockchip,iommu-v2"; - status = "okay"; - interrupt-names = "irq_jpege3_mmu"; - reg = <0x00 0xfdbac800 0x00 0x40>; - phandle = <0xc0>; - }; - - qos@fdf40400 { - compatible = "syscon"; - reg = <0x00 0xfdf40400 0x00 0x20>; - phandle = <0xa2>; - }; - - rga@fdb70000 { - power-domains = <0x60 0x1e>; - iommus = <0xba>; - clock-names = "aclk_rga3_1\0hclk_rga3_1\0clk_rga3_1"; - interrupts = <0x00 0x73 0x04>; - clocks = <0x02 0x18a 0x02 0x189 0x02 0x18b>; - compatible = "rockchip,rga3_core1"; - status = "okay"; - interrupt-names = "rga3_core1_irq"; - reg = <0x00 0xfdb70000 0x00 0x1000>; - phandle = <0x26a>; - }; - - spi@feb00000 { - pinctrl-names = "default"; - #address-cells = <0x01>; - num-cs = <0x02>; - pinctrl-0 = <0x14e 0x14f 0x150>; - clock-names = "spiclk\0apb_pclk"; - interrupts = <0x00 0x146 0x04>; - clocks = <0x02 0xa3 0x02 0x9e>; - #size-cells = <0x00>; - dma-names = "tx\0rx"; - compatible = "rockchip,rk3066-spi"; - status = "disabled"; - reg = <0x00 0xfeb00000 0x00 0x1000>; - phandle = <0x2ab>; - dmas = <0x7c 0x0e 0x7c 0x0f>; - }; - - pcie@fe170000 { - #address-cells = <0x03>; - rockchip,pipe-grf = <0x76>; - phy-names = "pcie-phy"; - bus-range = <0x20 0x2f>; - clock-names = "aclk_mst\0aclk_slv\0aclk_dbi\0pclk\0aux\0pipe"; - reg-names = "pcie-apb\0pcie-dbi"; - num-ob-windows = <0x08>; - resets = <0x02 0x20f 0x02 0x21e>; - interrupts = <0x00 0xf3 0x04 0x00 0xf2 0x04 0x00 0xf1 0x04 0x00 0xf0 0x04 0x00 0xef 0x04>; - clocks = <0x02 0x150 0x02 0x155 0x02 0x14b 0x02 0x15b 0x02 0x160 0x02 0x2c4>; - interrupt-map = <0x00 0x00 0x00 0x01 0x1bb 0x00 0x00 0x00 0x00 0x02 0x1bb 0x01 0x00 0x00 0x00 0x03 0x1bb 0x02 0x00 0x00 0x00 0x04 0x1bb 0x03>; - #size-cells = <0x02>; - max-link-speed = <0x02>; - device_type = "pci"; - interrupt-map-mask = <0x00 0x00 0x00 0x07>; - num-lanes = <0x01>; - compatible = "rockchip,rk3588-pcie\0snps,dw-pcie"; - ranges = <0x800 0x00 0xf2000000 0x00 0xf2000000 0x00 0x100000 0x81000000 0x00 0xf2100000 0x00 0xf2100000 0x00 0x100000 0x82000000 0x00 0xf2200000 0x00 0xf2200000 0x00 0xe00000 0xc3000000 0x09 0x80000000 0x09 0x80000000 0x00 0x40000000>; - msi-map = <0x2000 0x106 0x2000 0x1000>; - #interrupt-cells = <0x01>; - status = "disabled"; - interrupt-names = "sys\0pmc\0msg\0legacy\0err"; - phys = <0x1bc 0x02>; - num-viewport = <0x04>; - reg = <0x00 0xfe170000 0x00 0x10000 0x0a 0x40800000 0x00 0x400000>; - linux,pci-domain = <0x02>; - phandle = <0x487>; - reset-names = "pcie\0periph"; - num-ib-windows = <0x08>; - - legacy-interrupt-controller { - #address-cells = <0x00>; - interrupts = <0x00 0xf0 0x01>; - interrupt-parent = <0x01>; - #interrupt-cells = <0x01>; - phandle = <0x1bb>; - interrupt-controller; - }; - }; - - i2s@fe470000 { - power-domains = <0x60 0x26>; - pinctrl-names = "default\0idle\0clk"; - pinctrl-2 = <0x11b 0x11c>; - pinctrl-0 = <0x11b 0x11c 0x11d 0x11e>; - clock-names = "mclk_tx\0mclk_rx\0hclk"; - assigned-clocks = <0x02 0x31 0x02 0x35>; - assigned-clock-parents = <0x02 0x05 0x02 0x05>; - resets = <0x02 0x77 0x02 0x7a>; - interrupts = <0x00 0xb4 0x04>; - clocks = <0x02 0x33 0x02 0x37 0x02 0x30>; - dma-names = "tx\0rx"; - #sound-dai-cells = <0x00>; - compatible = "rockchip,rk3588-i2s-tdm"; - pinctrl-1 = <0x11f>; - status = "okay"; - reg = <0x00 0xfe470000 0x00 0x1000>; - phandle = <0x1da>; - dmas = <0x7c 0x00 0x7c 0x01>; - reset-names = "tx-m\0rx-m"; - rockchip,clk-trcm = <0x01>; - }; - - syscon@fd594000 { - compatible = "rockchip,rk3588-litcore-grf\0syscon"; - reg = <0x00 0xfd594000 0x00 0x100>; - phandle = <0x22>; - }; - - csi2-dphy5 { - rockchip,hw = <0x2d 0x2e>; - phy-names = "dcphy0\0dcphy1"; - compatible = "rockchip,rk3588-csi2-dphy"; - status = "disabled"; - phys = <0x2f 0x30>; - phandle = <0x214>; - }; - - usb@fc840000 { - power-domains = <0x60 0x1f>; - phy-names = "usb2-phy"; - clock-names = "usbhost\0arbiter\0utmi\0alk_usb"; - interrupts = <0x00 0xd8 0x04>; - clocks = <0x02 0x19d 0x02 0x19e 0x69 0x6a>; - compatible = "rockchip,rk3588-ohci\0generic-ohci"; - status = "okay"; - phys = <0x6c>; - reg = <0x00 0xfc840000 0x00 0x40000>; - phandle = <0x6b>; - }; - - syscon@fd5b0000 { - compatible = "rockchip,rk3588-php-grf\0syscon"; - reg = <0x00 0xfd5b0000 0x00 0x1000>; - phandle = <0x76>; - }; - - rkcif-mipi-lvds2-sditf-vir3 { - compatible = "rockchip,rkcif-sditf"; - status = "disabled"; - rockchip,cif = <0x55>; - phandle = <0x236>; - }; - - rkisp1-vir1 { - rockchip,hw = <0x5a>; - compatible = "rockchip,rkisp-vir"; - status = "disabled"; - phandle = <0x240>; - }; - - i2c@feaa0000 { - pinctrl-names = "default"; - #address-cells = <0x01>; - pinctrl-0 = <0x149>; - clock-names = "i2c\0pclk"; - resets = <0x02 0xb1 0x02 0xa9>; - interrupts = <0x00 0x13f 0x04>; - clocks = <0x02 0x8e 0x02 0x86>; - #size-cells = <0x00>; - compatible = "rockchip,rk3588-i2c\0rockchip,rk3399-i2c"; - status = "disabled"; - reg = <0x00 0xfeaa0000 0x00 0x1000>; - phandle = <0x2a5>; - reset-names = "i2c\0apb"; - }; - - dmc { - downdifferential = <0x14>; - clock-names = "dmc_clk"; - interrupts = <0x00 0x49 0x04>; - clocks = <0x0e 0x04>; - upthreshold = <0x28>; - center-supply = <0x42>; - devfreq-events = <0x40>; - compatible = "rockchip,rk3588-dmc"; - status = "disabled"; - interrupt-names = "complete"; - mem-supply = <0x43>; - phandle = <0x21f>; - operating-points-v2 = <0x41>; - system-status-level = <0x01 0x04 0x08 0x08 0x02 0x01 0x10 0x04 0x10000 0x04 0x80000 0x04 0x1000 0x08 0x4000 0x08 0x2000 0x08 0xc00 0x08 0x40000 0x08 0x200000 0x08>; - auto-freq-en = <0x01>; - }; - - hdmi1-sound { - rockchip,jack-det; - rockchip,cpu = <0x1e0>; - rockchip,codec = <0x1e1>; - rockchip,card-name = "rockchip-hdmi1"; - compatible = "rockchip,hdmi"; - status = "disabled"; - phandle = <0x4a8>; - rockchip,mclk-fs = <0x80>; - }; - - qos@fdf3d800 { - compatible = "syscon"; - reg = <0x00 0xfdf3d800 0x00 0x20>; - phandle = <0xb0>; - }; - - mipi-dcphy-dummy { - phandle = <0x223>; - }; - - jpege-core@fdbac000 { - power-domains = <0x60 0x15>; - iommus = <0xc0>; - rockchip,ccu = <0xbd>; - clock-names = "aclk_vcodec\0hclk_vcodec"; - assigned-clocks = <0x02 0x1b2>; - rockchip,normal-rates = <0x2367b880 0x00>; - assigned-clock-rates = <0x2367b880>; - resets = <0x02 0x2d0 0x02 0x2d1>; - interrupts = <0x00 0x80 0x04>; - clocks = <0x02 0x1b2 0x02 0x1b3>; - rockchip,srv = <0xb8>; - rockchip,taskqueue-node = <0x02>; - rockchip,disable-auto-freq; - compatible = "rockchip,vpu-jpege-core"; - status = "okay"; - interrupt-names = "irq_jpege3"; - rockchip,skip-pmu-idle-request; - reg = <0x00 0xfdbac000 0x00 0x400>; - phandle = <0x270>; - reset-names = "video_a\0video_h"; - }; - - iommu@fdce0800 { - power-domains = <0x60 0x1b>; - clock-names = "aclk\0iface"; - interrupts = <0x00 0x71 0x04>; - clocks = <0x02 0x1e4 0x02 0x1e5>; - #iommu-cells = <0x00>; - compatible = "rockchip,iommu-v2"; - rockchip,disable-mmu-reset; - status = "okay"; - interrupt-names = "cif_mmu"; - reg = <0x00 0xfdce0800 0x00 0x100 0x00 0xfdce0900 0x00 0x100>; - phandle = <0x50>; - }; - - qos@fdf35400 { - compatible = "syscon"; - reg = <0x00 0xfdf35400 0x00 0x20>; - phandle = <0x89>; - }; - - syscon@fd5a8000 { - clocks = <0x73>; - compatible = "rockchip,rk3588-vo-grf\0syscon"; - reg = <0x00 0xfd5a8000 0x00 0x100>; - phandle = <0xd8>; - }; - - dp0-sound { - rockchip,jack-det; - rockchip,cpu = <0x1d5>; - rockchip,codec = <0x1d6 0x01>; - rockchip,card-name = "rockchip-dp0"; - compatible = "rockchip,hdmi"; - status = "disabled"; - phandle = <0x49c>; - rockchip,mclk-fs = <0x200>; - }; - - rkcif-mipi-lvds4 { - iommus = <0x50>; - rockchip,hw = <0x4f>; - compatible = "rockchip,rkcif-mipi-lvds"; - status = "disabled"; - phandle = <0x1a1>; - }; - - usb@fc880000 { - power-domains = <0x60 0x1f>; - phy-names = "usb2-phy"; - clock-names = "usbhost\0arbiter\0utmi\0alk_usb"; - companion = <0x6e>; - interrupts = <0x00 0xda 0x04>; - clocks = <0x02 0x19f 0x02 0x1a0 0x6d 0x6a>; - compatible = "rockchip,rk3588-ehci\0generic-ehci"; - status = "okay"; - phys = <0x6f>; - reg = <0x00 0xfc880000 0x00 0x40000>; - phandle = <0x255>; - }; - - qos@fdf62000 { - compatible = "syscon"; - reg = <0x00 0xfdf62000 0x00 0x20>; - phandle = <0x8b>; - }; - - syscon@fd5f0000 { - compatible = "rockchip,rk3588-ioc\0syscon"; - reg = <0x00 0xfd5f0000 0x00 0x10000>; - phandle = <0x196>; - }; - - mipi1-csi2 { - rockchip,hw = <0x47 0x48 0x49 0x4a 0x4b 0x4c>; - compatible = "rockchip,rk3588-mipi-csi2"; - status = "disabled"; - phandle = <0x225>; - }; - - hdmiphy@fed70000 { - clock-names = "ref\0apb"; - resets = <0x02 0x491 0x02 0x486 0x02 0xc003f 0x02 0xc0040 0x02 0xc0041 0x02 0x48f 0x02 0x490>; - clocks = <0x02 0x2b5 0x02 0x268>; - #phy-cells = <0x00>; - compatible = "rockchip,rk3588-hdptx-phy-hdmi"; - status = "disabled"; - rockchip,grf = <0x1c7>; - reg = <0x00 0xfed70000 0x00 0x2000>; - phandle = <0x1ac>; - reset-names = "phy\0apb\0init\0cmn\0lane\0ropll\0lcpll"; - - clk-port { - #clock-cells = <0x00>; - status = "okay"; - phandle = <0x36>; - }; - }; - - i2c@fec80000 { - pinctrl-names = "default"; - #address-cells = <0x01>; - pinctrl-0 = <0x178>; - clock-names = "i2c\0pclk"; - resets = <0x02 0xb5 0x02 0xad>; - interrupts = <0x00 0x143 0x04>; - clocks = <0x02 0x92 0x02 0x8a>; - #size-cells = <0x00>; - compatible = "rockchip,rk3588-i2c\0rockchip,rk3399-i2c"; - status = "okay"; - reg = <0x00 0xfec80000 0x00 0x1000>; - phandle = <0x2df>; - reset-names = "i2c\0apb"; - - imx415@37 { - power-domains = <0x60 0x1b>; - pinctrl-names = "default"; - pinctrl-0 = <0x180>; - clock-names = "xvclk"; - clocks = <0x02 0x100>; - firefly,clkout-enabled-index = <0x00>; - rockchip,camera-module-name = "CMK-OT2022-PX1"; - reset-gpios = <0x182 0x05 0x01>; - rockchip,camera-module-index = <0x00>; - compatible = "sony,imx415"; - rockchip,camera-module-facing = "back"; - power-gpios = <0x181 0x1d 0x00>; - reg = <0x37>; - rockchip,camera-module-lens-name = "IR0147-50IRC-8M-F20"; - phandle = <0x2e3>; - - port { - - endpoint { - data-lanes = <0x01 0x02 0x03 0x04>; - remote-endpoint = <0x184>; - phandle = <0x32>; - }; - }; - }; - - es8388@11 { - pinctrl-names = "default"; - pinctrl-0 = <0x17a>; - clock-names = "mclk"; - assigned-clocks = <0x179>; - assigned-clock-rates = <0xbb8000>; - clocks = <0x179>; - #sound-dai-cells = <0x00>; - compatible = "everest,es8388\0everest,es8323"; - status = "okay"; - reg = <0x11>; - phandle = <0x1db>; - }; - - XC7160b@1b { - power-domains = <0x60 0x1b>; - pinctrl-names = "default"; - pinctrl-0 = <0x180>; - clock-names = "xvclk"; - pwdn-gpios = <0xfe 0x04 0x00>; - clocks = <0x02 0x100>; - firefly,clkout-enabled-index = <0x00>; - rockchip,camera-module-name = "NC"; - reset-gpios = <0x182 0x05 0x00>; - rockchip,camera-module-index = <0x00>; - compatible = "firefly,xc7160"; - rockchip,camera-module-facing = "back"; - power-gpios = <0x181 0x1d 0x01>; - reg = <0x1b>; - rockchip,camera-module-lens-name = "NC"; - phandle = <0x2e2>; - - port { - - endpoint { - data-lanes = <0x01 0x02 0x03 0x04>; - remote-endpoint = <0x183>; - phandle = <0x31>; - }; - }; - }; - - fusb302@22 { - pinctrl-names = "default"; - pinctrl-0 = <0x17b>; - interrupts = <0x1b 0x08>; - vbus-supply = <0x17c>; - interrupt-parent = <0x7b>; - compatible = "fcs,fusb302"; - status = "disabled"; - reg = <0x22>; - phandle = <0x2e0>; - - connector { - sink-pdos = <0x4019064>; - power-role = "dual"; - source-pdos = <0x401912c>; - data-role = "dual"; - label = "USB-C"; - try-power-role = "sink"; - compatible = "usb-c-connector"; - op-sink-microwatt = <0xf4240>; - phandle = <0x2e1>; - - ports { - #address-cells = <0x01>; - #size-cells = <0x00>; - - port@0 { - reg = <0x00>; - - endpoint { - remote-endpoint = <0x17e>; - phandle = <0x18e>; - }; - }; - - port@1 { - reg = <0x01>; - - endpoint { - remote-endpoint = <0x17f>; - phandle = <0x18f>; - }; - }; - }; - - altmodes { - #address-cells = <0x01>; - #size-cells = <0x00>; - - altmode@0 { - svid = <0xff01>; - vdo = <0xffffffff>; - reg = <0x00>; - }; - }; - }; - - ports { - #address-cells = <0x01>; - #size-cells = <0x00>; - - port@0 { - reg = <0x00>; - - endpoint@0 { - remote-endpoint = <0x17d>; - phandle = <0x68>; - }; - }; - }; - }; - }; - - syscon@fd5e8000 { - compatible = "rockchip,mipi-dcphy-grf\0syscon"; - reg = <0x00 0xfd5e8000 0x00 0x4000>; - phandle = <0x190>; - }; - - vbus5v0-typec-pwr-en-regulator { - gpio = <0x182 0x0c 0x00>; - enable-active-high; - regulator-name = "vbus5v0_typec_pwr_en"; - compatible = "regulator-fixed"; - status = "disabled"; - phandle = <0x17c>; - }; - - mipi2-csi2-hw@fdd30000 { - clock-names = "pclk_csi2host"; - reg-names = "csihost_regs"; - resets = <0x02 0x326>; - interrupts = <0x00 0x93 0x04 0x00 0x94 0x04>; - clocks = <0x02 0x1d1>; - compatible = "rockchip,rk3588-mipi-csi2-hw"; - status = "okay"; - interrupt-names = "csi-intr1\0csi-intr2"; - reg = <0x00 0xfdd30000 0x00 0x10000>; - phandle = <0x49>; - reset-names = "srst_csihost_p"; - }; - - spdif-rx@fde18000 { - power-domains = <0x60 0x1a>; - clock-names = "mclk\0hclk"; - assigned-clocks = <0x02 0x262>; - assigned-clock-parents = <0x02 0x05>; - resets = <0x02 0x401>; - interrupts = <0x00 0xc9 0x04>; - clocks = <0x02 0x262 0x02 0x261>; - dma-names = "rx"; - #sound-dai-cells = <0x00>; - compatible = "rockchip,rk3588-spdifrx\0rockchip,rk3308-spdifrx"; - status = "disabled"; - reg = <0x00 0xfde18000 0x00 0x1000>; - phandle = <0x480>; - dmas = <0x7c 0x17>; - reset-names = "spdifrx-m"; - }; - - syscon@fd5a2000 { - compatible = "rockchip,rk3588-npu-grf\0syscon"; - reg = <0x00 0xfd5a2000 0x00 0x100>; - phandle = <0xb6>; - }; - - rkisp0-vir3 { - rockchip,hw = <0x58>; - compatible = "rockchip,rkisp-vir"; - status = "disabled"; - phandle = <0x23e>; - }; - - qos@fdf66200 { - compatible = "syscon"; - reg = <0x00 0xfdf66200 0x00 0x20>; - phandle = <0x94>; - }; - - rkcif@fdce0000 { - power-domains = <0x60 0x1b>; - iommus = <0x50>; - nvmem-cells = <0x21 0xd4 0xd5>; - clock-names = "aclk_cif\0hclk_cif\0dclk_cif\0iclk_host0\0iclk_host1"; - reg-names = "cif_regs"; - assigned-clocks = <0x02 0x1e3>; - assigned-clock-rates = <0x23c34600>; - resets = <0x02 0x317 0x02 0x318 0x02 0x316 0x02 0x334 0x02 0x335 0x02 0x336 0x02 0x337 0x02 0x338 0x02 0x339>; - interrupts = <0x00 0x9b 0x04>; - clocks = <0x02 0x1e4 0x02 0x1e5 0x02 0x1e3 0x02 0x1cd 0x02 0x1ce>; - compatible = "rockchip,rk3588-cif"; - status = "okay"; - rockchip,grf = <0xc8>; - interrupt-names = "cif-intr"; - nvmem-cell-names = "specification\0package_low\0package_high"; - reg = <0x00 0xfdce0000 0x00 0x800>; - phandle = <0x4f>; - reset-names = "rst_cif_a\0rst_cif_h\0rst_cif_d\0rst_cif_host0\0rst_cif_host1\0rst_cif_host2\0rst_cif_host3\0rst_cif_host4\0rst_cif_host5"; - }; - - edp@fdec0000 { - power-domains = <0x60 0x1a>; - phy-names = "dp"; - clock-names = "dp\0pclk\0spdif\0hclk"; - resets = <0x02 0x3e1 0x02 0x3e0>; - interrupts = <0x00 0xa3 0x04>; - clocks = <0x02 0x211 0x02 0x210 0x02 0x212 0x05>; - compatible = "rockchip,rk3588-edp"; - status = "disabled"; - rockchip,grf = <0xd8>; - phys = <0x101>; - reg = <0x00 0xfdec0000 0x00 0x1000>; - phandle = <0x289>; - reset-names = "dp\0apb"; - - ports { - #address-cells = <0x01>; - #size-cells = <0x00>; - - port@0 { - #address-cells = <0x01>; - #size-cells = <0x00>; - reg = <0x00>; - - endpoint@1 { - remote-endpoint = <0x103>; - status = "disabled"; - reg = <0x01>; - phandle = <0xe1>; - }; - - endpoint@2 { - remote-endpoint = <0x3b>; - status = "disabled"; - reg = <0x02>; - phandle = <0xe7>; - }; - - endpoint@0 { - remote-endpoint = <0x102>; - status = "disabled"; - reg = <0x00>; - phandle = <0xdb>; - }; - }; - - port@1 { - reg = <0x01>; - - endpoint { - phandle = <0x28a>; - }; - }; - }; - }; - - qos@fdf72400 { - compatible = "syscon"; - reg = <0x00 0xfdf72400 0x00 0x20>; - phandle = <0x84>; - }; - - dp@fde60000 { - power-domains = <0x60 0x19>; - clock-names = "apb\0aux\0i2s\0spdif\0hclk\0hdcp"; - assigned-clocks = <0x02 0x2cd>; - assigned-clock-rates = <0xf42400>; - resets = <0x02 0x389>; - interrupts = <0x00 0xa2 0x04>; - clocks = <0x02 0x1e7 0x02 0x2cd 0x02 0x201 0x02 0x20d 0x04 0x02 0x1eb>; - #sound-dai-cells = <0x01>; - compatible = "rockchip,rk3588-dp"; - status = "disabled"; - phys = <0x1a5>; - reg = <0x00 0xfde60000 0x00 0x4000>; - phandle = <0x1e3>; - - ports { - #address-cells = <0x01>; - #size-cells = <0x00>; - - port@0 { - #address-cells = <0x01>; - #size-cells = <0x00>; - reg = <0x00>; - - endpoint@1 { - remote-endpoint = <0x3e>; - status = "disabled"; - reg = <0x01>; - phandle = <0xe3>; - }; - - endpoint@2 { - remote-endpoint = <0x1a7>; - status = "disabled"; - reg = <0x02>; - phandle = <0xeb>; - }; - - endpoint@0 { - remote-endpoint = <0x1a6>; - status = "disabled"; - reg = <0x00>; - phandle = <0xdd>; - }; - }; - - port@1 { - reg = <0x01>; - - endpoint { - phandle = <0x481>; - }; - }; - }; - }; - - vcc5v0-usbdcin { - regulator-max-microvolt = <0x4c4b40>; - regulator-boot-on; - regulator-always-on; - regulator-min-microvolt = <0x4c4b40>; - regulator-name = "vcc5v0_usbdcin"; - compatible = "regulator-fixed"; - phandle = <0x48c>; - vin-supply = <0x1cd>; - }; - - rkvdec-core@fdc48000 { - power-domains = <0x60 0x0f>; - iommus = <0xcc>; - rockchip,ccu = <0xca>; - clock-names = "aclk_vcodec\0hclk_vcodec\0clk_core\0clk_cabac\0clk_hevc_cabac"; - reg-names = "regs\0link"; - assigned-clocks = <0x02 0x195 0x02 0x198 0x02 0x196 0x02 0x197>; - rockchip,core-mask = <0x20002>; - rockchip,task-capacity = <0x10>; - rockchip,normal-rates = <0x2faf0800 0x00 0x23c34600 0x23c34600 0x3b9aca00>; - assigned-clock-rates = <0x2faf0800 0x23c34600 0x23c34600 0x3b9aca00>; - resets = <0x02 0x293 0x02 0x292 0x02 0x298 0x02 0x296 0x02 0x297>; - interrupts = <0x00 0x61 0x04>; - rockchip,rcb-info = <0x88 0x6000 0x89 0xc000 0x8d 0x16000 0x8c 0xc000 0x8b 0x2c000 0x85 0xc000 0x86 0x2000 0x87 0x1100 0x8a 0x3300 0x8e 0x47300>; - clocks = <0x02 0x195 0x02 0x194 0x02 0x198 0x02 0x196 0x02 0x197>; - rockchip,rcb-min-width = <0x200>; - rockchip,srv = <0xb8>; - rockchip,taskqueue-node = <0x09>; - compatible = "rockchip,rkv-decoder-v2"; - status = "okay"; - interrupt-names = "irq_rkvdec1"; - rockchip,skip-pmu-idle-request; - rockchip,rcb-iova = <0xffe00000 0x100000>; - reg = <0x00 0xfdc48100 0x00 0x400 0x00 0xfdc48000 0x00 0x100>; - phandle = <0x275>; - reset-names = "video_a\0video_h\0video_core\0video_cabac\0video_hevc_cabac"; - rockchip,sram = <0xcd>; - }; - - vcc-1v1-nldo-s3 { - regulator-max-microvolt = <0x10c8e0>; - regulator-boot-on; - regulator-always-on; - regulator-min-microvolt = <0x10c8e0>; - regulator-name = "vcc_1v1_nldo_s3"; - compatible = "regulator-fixed"; - phandle = <0x15c>; - vin-supply = <0x78>; - }; - - power-management@fd8d8000 { - compatible = "rockchip,rk3588-pmu\0syscon\0simple-mfd"; - reg = <0x00 0xfd8d8000 0x00 0x400>; - phandle = <0xd9>; - - power-controller { - #address-cells = <0x01>; - #size-cells = <0x00>; - #power-domain-cells = <0x01>; - compatible = "rockchip,rk3588-power-controller"; - status = "okay"; - phandle = <0x60>; - - power-domain@37 { - clocks = <0x02 0x199 0x02 0x140>; - reg = <0x25>; - pm_qos = <0xaf>; - }; - - power-domain@27 { - #address-cells = <0x01>; - clocks = <0x02 0x1e1 0x02 0x1e2 0x02 0x1df 0x02 0x1de 0x02 0x1e5 0x02 0x1e4>; - #size-cells = <0x00>; - reg = <0x1b>; - pm_qos = <0xa2 0xa3 0xa4 0xa5>; - - power-domain@29 { - clocks = <0x02 0x1d6 0x02 0x1d5 0x02 0x1d9 0x02 0x1d8 0x02 0x1e2>; - reg = <0x1d>; - pm_qos = <0xa8 0xa9>; - }; - - power-domain@28 { - clocks = <0x02 0x121 0x02 0x120 0x02 0x1e1 0x02 0x1e2>; - reg = <0x1c>; - pm_qos = <0xa6 0xa7>; - }; - }; - - power-domain@33 { - clocks = <0x02 0x166 0x02 0x169 0x02 0x16a>; - reg = <0x21>; - }; - - power-domain@13 { - #address-cells = <0x01>; - #size-cells = <0x00>; - reg = <0x0d>; - - power-domain@15 { - clocks = <0x02 0x194 0x02 0x1be 0x02 0x1bc 0x02 0x195>; - reg = <0x0f>; - pm_qos = <0x8c>; - }; - - power-domain@16 { - #address-cells = <0x01>; - clocks = <0x02 0x1c4 0x02 0x1c5>; - #size-cells = <0x00>; - reg = <0x10>; - pm_qos = <0x8d 0x8e 0x8f>; - - power-domain@17 { - clocks = <0x02 0x1c9 0x02 0x1c4 0x02 0x1c5 0x02 0x1ca>; - reg = <0x11>; - pm_qos = <0x90 0x91 0x92>; - }; - }; - - power-domain@14 { - clocks = <0x02 0x18f 0x02 0x1be 0x02 0x1bc 0x02 0x190 0x02 0x18e>; - reg = <0x0e>; - pm_qos = <0x8b>; - }; - }; - - power-domain@31 { - clocks = <0x02 0x166 0x02 0x1a1 0x02 0x1a4 0x02 0x19d 0x02 0x19e 0x02 0x19f 0x02 0x1a0>; - reg = <0x1f>; - pm_qos = <0xab 0xac 0xad 0xae>; - }; - - power-domain@21 { - #address-cells = <0x01>; - clocks = <0x02 0x1be 0x02 0x1bd 0x02 0x1bc 0x02 0x1bf 0x02 0x1aa 0x02 0x1a9 0x02 0x1ac 0x02 0x1ad 0x02 0x1ae 0x02 0x1af 0x02 0x1b0 0x02 0x1b1 0x02 0x1b2 0x02 0x1b3 0x02 0x1b4 0x02 0x1b5 0x02 0x1b7 0x02 0x1b6>; - #size-cells = <0x00>; - reg = <0x15>; - pm_qos = <0x93 0x94 0x95 0x96 0x97 0x98 0x99 0x9a>; - - power-domain@15 { - clocks = <0x02 0x194 0x02 0x1be 0x02 0x1bc>; - reg = <0x0f>; - pm_qos = <0x8c>; - }; - - power-domain@23 { - clocks = <0x02 0x4b 0x02 0x49 0x02 0x1be>; - reg = <0x17>; - pm_qos = <0x9b>; - }; - - power-domain@14 { - clocks = <0x02 0x18f 0x02 0x1be 0x02 0x1bc 0x02 0x190>; - reg = <0x0e>; - pm_qos = <0x8b>; - }; - - power-domain@22 { - clocks = <0x02 0x1ba 0x02 0x1b9>; - reg = <0x16>; - pm_qos = <0x9c>; - }; - }; - - power-domain@38 { - clocks = <0x02 0x3c 0x02 0x3d>; - reg = <0x26>; - }; - - power-domain@8 { - #address-cells = <0x01>; - #size-cells = <0x00>; - reg = <0x08>; - - power-domain@9 { - #address-cells = <0x01>; - clocks = <0x02 0x12f 0x02 0x131 0x02 0x130 0x02 0x126>; - #size-cells = <0x00>; - reg = <0x09>; - pm_qos = <0x82 0x83 0x84>; - - power-domain@11 { - clocks = <0x02 0x12f 0x02 0x131 0x02 0x130>; - reg = <0x0b>; - pm_qos = <0x86>; - }; - - power-domain@10 { - clocks = <0x02 0x12f 0x02 0x131 0x02 0x130>; - reg = <0x0a>; - pm_qos = <0x85>; - }; - }; - }; - - power-domain@26 { - clocks = <0x02 0x22e 0x02 0x22f 0x02 0x22d 0x02 0x218 0x02 0x217 0x02 0x22b 0x02 0x264>; - reg = <0x1a>; - pm_qos = <0xa0 0xa1>; - }; - - power-domain@34 { - clocks = <0x02 0x166 0x02 0x169 0x02 0x16a>; - reg = <0x22>; - }; - - power-domain@24 { - #address-cells = <0x01>; - clocks = <0x02 0x26e 0x02 0x26d 0x02 0x270>; - #size-cells = <0x00>; - reg = <0x18>; - pm_qos = <0x9d 0x9e>; - - power-domain@25 { - clocks = <0x02 0x1f6 0x02 0x1f7 0x02 0x1f5 0x02 0x1f3 0x02 0x1ee 0x02 0x1ed 0x02 0x26d>; - reg = <0x19>; - pm_qos = <0x9f>; - }; - }; - - power-domain@12 { - clocks = <0x02 0x114 0x02 0x115 0x02 0x116>; - reg = <0x0c>; - pm_qos = <0x87 0x88 0x89 0x8a>; - }; - - power-domain@40 { - reg = <0x28>; - pm_qos = <0xb0>; - }; - - power-domain@30 { - clocks = <0x02 0x189 0x02 0x18a>; - reg = <0x1e>; - pm_qos = <0xaa>; - }; - }; - }; - - csi2-dphy3 { - rockchip,hw = <0x2d 0x2e>; - phy-names = "dcphy0\0dcphy1"; - compatible = "rockchip,rk3588-csi2-dphy"; - status = "disabled"; - phys = <0x2f 0x30>; - phandle = <0x212>; - }; - - qos@fdf3e000 { - compatible = "syscon"; - reg = <0x00 0xfdf3e000 0x00 0x20>; - phandle = <0xac>; - }; - - pwm@fd8b0030 { - pinctrl-names = "active"; - pinctrl-0 = <0x81>; - clock-names = "pwm\0pclk"; - interrupts = <0x00 0x158 0x04 0x00 0x159 0x04>; - clocks = <0x02 0x2a5 0x02 0x2a4>; - #pwm-cells = <0x03>; - compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; - status = "disabled"; - reg = <0x00 0xfd8b0030 0x00 0x10>; - phandle = <0x264>; - }; - - rkcif-mipi-lvds2-sditf-vir1 { - compatible = "rockchip,rkcif-sditf"; - status = "disabled"; - rockchip,cif = <0x55>; - phandle = <0x234>; - }; - - syscon@fd5cc000 { - compatible = "rockchip,rk3588-usbdpphy-grf\0syscon"; - reg = <0x00 0xfd5cc000 0x00 0x4000>; - phandle = <0x1c9>; - }; - - vdpu@fdb50400 { - power-domains = <0x60 0x15>; - iommus = <0xb7>; - clock-names = "aclk_vcodec\0hclk_vcodec"; - assigned-clocks = <0x02 0x1c0>; - rockchip,normal-rates = <0x2367b880 0x00>; - assigned-clock-rates = <0x2367b880>; - resets = <0x02 0x2c8 0x02 0x2c9>; - interrupts = <0x00 0x77 0x04>; - clocks = <0x02 0x1c0 0x02 0x1c1>; - rockchip,srv = <0xb8>; - rockchip,taskqueue-node = <0x00>; - rockchip,disable-auto-freq; - compatible = "rockchip,vpu-decoder-v2"; - rockchip,resetgroup-node = <0x00>; - status = "okay"; - interrupt-names = "irq_vdpu"; - rockchip,skip-pmu-idle-request; - reg = <0x00 0xfdb50400 0x00 0x400>; - phandle = <0x267>; - reset-names = "shared_video_a\0shared_video_h"; - }; - - qos@fdf60200 { - compatible = "syscon"; - reg = <0x00 0xfdf60200 0x00 0x20>; - phandle = <0x8e>; - }; - - pwm@febe0030 { - pinctrl-names = "active"; - pinctrl-0 = <0x170>; - clock-names = "pwm\0pclk"; - interrupts = <0x00 0x15c 0x04 0x00 0x15d 0x04>; - clocks = <0x02 0x57 0x02 0x56>; - #pwm-cells = <0x03>; - compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; - status = "disabled"; - reg = <0x00 0xfebe0030 0x00 0x10>; - phandle = <0x2d8>; - }; - - display-subsystem { - memory-region-names = "drm-logo"; - clock-names = "hdmi0_phy_pll\0hdmi1_phy_pll"; - ports = <0x34>; - memory-region = <0x37>; - clocks = <0x35 0x36>; - compatible = "rockchip,display-subsystem"; - phandle = <0x215>; - - route { - - route-edp1 { - logo,kernel = "logo_kernel.bmp"; - logo,uboot = "logo.bmp"; - charge_logo,mode = "center"; - logo,mode = "center"; - status = "disabled"; - phandle = <0x21a>; - }; - - route-hdmi1 { - logo,kernel = "logo_kernel.bmp"; - logo,uboot = "logo.bmp"; - charge_logo,mode = "center"; - connect = <0x3f>; - logo,mode = "center"; - status = "disabled"; - phandle = <0x21e>; - }; - - route-dp1 { - logo,kernel = "logo_kernel.bmp"; - logo,uboot = "logo.bmp"; - charge_logo,mode = "center"; - connect = <0x3e>; - logo,mode = "center"; - status = "disabled"; - phandle = <0x21d>; - }; - - route-dsi1 { - logo,kernel = "logo_kernel.bmp"; - logo,uboot = "logo.bmp"; - charge_logo,mode = "center"; - connect = <0x3a>; - logo,mode = "center"; - status = "disabled"; - phandle = <0x218>; - }; - - route-edp0 { - logo,kernel = "logo_kernel.bmp"; - logo,uboot = "logo.bmp"; - charge_logo,mode = "center"; - connect = <0x3b>; - logo,mode = "center"; - status = "disabled"; - phandle = <0x219>; - }; - - route-hdmi0 { - logo,kernel = "logo_kernel.bmp"; - logo,uboot = "logo.bmp"; - charge_logo,mode = "center"; - connect = <0x3c>; - logo,mode = "center"; - status = "okay"; - phandle = <0x21b>; - }; - - route-dp0 { - logo,kernel = "logo_kernel.bmp"; - logo,uboot = "logo.bmp"; - charge_logo,mode = "center"; - connect = <0x38>; - logo,mode = "center"; - status = "disabled"; - phandle = <0x216>; - }; - - route-rgb { - logo,kernel = "logo_kernel.bmp"; - logo,uboot = "logo.bmp"; - charge_logo,mode = "center"; - connect = <0x3d>; - logo,mode = "center"; - status = "disabled"; - phandle = <0x21c>; - }; - - route-dsi0 { - logo,kernel = "logo_kernel.bmp"; - logo,uboot = "logo.bmp"; - charge_logo,mode = "center"; - connect = <0x39>; - logo,mode = "center"; - status = "disabled"; - phandle = <0x217>; - }; - }; - }; - - serial@febc0000 { - reg-io-width = <0x04>; - pinctrl-names = "default"; - pinctrl-0 = <0x168>; - clock-names = "baudclk\0apb_pclk"; - interrupts = <0x00 0x154 0x04>; - clocks = <0x02 0xd7 0x02 0xb3>; - compatible = "rockchip,rk3588-uart\0snps,dw-apb-uart"; - status = "disabled"; - reg = <0x00 0xfebc0000 0x00 0x100>; - phandle = <0x2d1>; - dmas = <0xf2 0x0b 0xf2 0x0c>; - reg-shift = <0x02>; - }; - - adc-keys { - io-channels = <0x1d9 0x01>; - poll-interval = <0x64>; - keyup-threshold-microvolt = <0x1b7740>; - compatible = "adc-keys"; - status = "okay"; - phandle = <0x49e>; - io-channel-names = "buttons"; - - recovery-key { - press-threshold-microvolt = <0x4268>; - label = "F12"; - linux,code = <0x58>; - }; - }; - - pvtm@fdaf0000 { - #address-cells = <0x01>; - #size-cells = <0x00>; - compatible = "rockchip,rk3588-npu-pvtm"; - reg = <0x00 0xfdaf0000 0x00 0x100>; - - pvtm@3 { - clock-names = "clk\0pclk"; - resets = <0x02 0x1de 0x02 0x1dc>; - clocks = <0x02 0x12b 0x02 0x129>; - reg = <0x03>; - reset-names = "rts\0rst-p"; - }; - }; - - codec-digital@fe500000 { - power-domains = <0x60 0x26>; - pinctrl-names = "default"; - pinctrl-0 = <0x144>; - clock-names = "dac\0pclk"; - resets = <0x02 0x84>; - clocks = <0x02 0x29 0x02 0x2f>; - #sound-dai-cells = <0x00>; - compatible = "rockchip,rk3588-codec-digital\0rockchip,codec-digital-v1"; - status = "disabled"; - rockchip,grf = <0xc8>; - reg = <0x00 0xfe500000 0x00 0x1000>; - phandle = <0x29e>; - reset-names = "reset"; - rockchip,pwm-output-mode; - }; - - pwm@fd8b0020 { - pinctrl-names = "active"; - pinctrl-0 = <0x80>; - clock-names = "pwm\0pclk"; - interrupts = <0x00 0x158 0x04>; - clocks = <0x02 0x2a5 0x02 0x2a4>; - #pwm-cells = <0x03>; - compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; - status = "disabled"; - reg = <0x00 0xfd8b0020 0x00 0x10>; - phandle = <0x263>; - }; - - rkcif-mipi-lvds2 { - iommus = <0x50>; - rockchip,hw = <0x4f>; - compatible = "rockchip,rkcif-mipi-lvds"; - status = "okay"; - phandle = <0x55>; - - port { - - endpoint { - remote-endpoint = <0x54>; - phandle = <0x4e>; - }; - }; - }; - - pwm@febe0020 { - pinctrl-names = "active"; - pinctrl-0 = <0x16f>; - clock-names = "pwm\0pclk"; - interrupts = <0x00 0x15c 0x04>; - clocks = <0x02 0x57 0x02 0x56>; - #pwm-cells = <0x03>; - compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; - status = "disabled"; - reg = <0x00 0xfebe0020 0x00 0x10>; - phandle = <0x2d7>; - }; - - vcc-fan-pwr-en-regulator { - regulator-boot-on; - gpio = <0x182 0x0b 0x00>; - regulator-always-on; - enable-active-high; - regulator-name = "vcc_fan_pwr_en"; - compatible = "regulator-fixed"; - status = "disabled"; - phandle = <0x4a4>; - }; - - iommu@fdba0800 { - power-domains = <0x60 0x15>; - clock-names = "aclk\0iface"; - interrupts = <0x00 0x79 0x04>; - clocks = <0x02 0x1ac 0x02 0x1ad>; - #iommu-cells = <0x00>; - compatible = "rockchip,iommu-v2"; - status = "okay"; - interrupt-names = "irq_jpege0_mmu"; - reg = <0x00 0xfdba0800 0x00 0x40>; - phandle = <0xbc>; - }; - - rkcif-mipi-lvds1-sditf-vir2 { - compatible = "rockchip,rkcif-sditf"; - status = "disabled"; - rockchip,cif = <0x53>; - phandle = <0x231>; - }; - - arm-pmu { - interrupt-affinity = <0x06 0x07 0x08 0x09 0x0a 0x0b 0x0c 0x0d>; - interrupts = <0x01 0x07 0x08>; - compatible = "arm,armv8-pmuv3"; - phandle = <0x20c>; - }; - - pvtm@fda40000 { - #address-cells = <0x01>; - #size-cells = <0x00>; - compatible = "rockchip,rk3588-bigcore0-pvtm"; - reg = <0x00 0xfda40000 0x00 0x100>; - - pvtm@0 { - clock-names = "clk\0pclk"; - clocks = <0x02 0x2c6 0x02 0x15>; - reg = <0x00>; - }; - }; - - pwm@fd8b0010 { - pinctrl-names = "active"; - pinctrl-0 = <0x7f>; - clock-names = "pwm\0pclk"; - interrupts = <0x00 0x158 0x04>; - clocks = <0x02 0x2a5 0x02 0x2a4>; - #pwm-cells = <0x03>; - compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; - status = "disabled"; - reg = <0x00 0xfd8b0010 0x00 0x10>; - phandle = <0x262>; - }; - - i2s@fddc0000 { - power-domains = <0x60 0x19>; - clock-names = "mclk_tx\0mclk_rx\0hclk"; - assigned-clocks = <0x02 0x1f9>; - assigned-clock-parents = <0x02 0x05>; - resets = <0x02 0x38d>; - interrupts = <0x00 0xb8 0x04>; - clocks = <0x02 0x1fb 0x02 0x1fb 0x02 0x1f0>; - dma-names = "tx"; - #sound-dai-cells = <0x00>; - compatible = "rockchip,rk3588-i2s-tdm"; - rockchip,playback-only; - status = "disabled"; - reg = <0x00 0xfddc0000 0x00 0x1000>; - phandle = <0x27d>; - dmas = <0xf2 0x00>; - reset-names = "tx-m"; - }; - - qos@fdf61400 { - compatible = "syscon"; - reg = <0x00 0xfdf61400 0x00 0x20>; - phandle = <0x92>; - }; - - syscon@fd5d4000 { - #address-cells = <0x01>; - #size-cells = <0x01>; - compatible = "rockchip,rk3588-usb2phy-grf\0syscon\0simple-mfd"; - reg = <0x00 0xfd5d4000 0x00 0x4000>; - phandle = <0x1c8>; - - usb2-phy@4000 { - clock-output-names = "usb480m_phy1"; - clock-names = "phyclk"; - resets = <0x02 0xc0048 0x02 0x489>; - interrupts = <0x00 0x18a 0x04>; - clocks = <0x02 0x2b5>; - #clock-cells = <0x00>; - rockchip,usbctrl-grf = <0x74>; - compatible = "rockchip,rk3588-usb2phy"; - status = "okay"; - reg = <0x4000 0x10>; - phandle = <0x1ca>; - reset-names = "phy\0apb"; - - otg-port { - phy-supply = <0x75>; - #phy-cells = <0x00>; - status = "okay"; - phandle = <0x1a3>; - }; - }; - }; - - rkisp0-vir1 { - rockchip,hw = <0x58>; - compatible = "rockchip,rkisp-vir"; - status = "disabled"; - phandle = <0x23c>; - }; - - pwm@febe0010 { - pinctrl-names = "active"; - pinctrl-0 = <0x16e>; - clock-names = "pwm\0pclk"; - interrupts = <0x00 0x15c 0x04>; - clocks = <0x02 0x57 0x02 0x56>; - #pwm-cells = <0x03>; - compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; - status = "disabled"; - reg = <0x00 0xfebe0010 0x00 0x10>; - phandle = <0x2d6>; - }; - - thermal-zones { - phandle = <0x248>; - - bigcore1-thermal { - polling-delay = <0x3e8>; - polling-delay-passive = <0x14>; - thermal-sensors = <0x5d 0x02>; - phandle = <0x24d>; - }; - - soc-thermal { - polling-delay = <0x3e8>; - polling-delay-passive = <0x14>; - thermal-sensors = <0x5d 0x00>; - sustainable-power = <0x834>; - phandle = <0x249>; - - trips { - - trip-point-0 { - temperature = <0x124f8>; - hysteresis = <0x7d0>; - type = "passive"; - phandle = <0x24a>; - }; - - trip-point-1 { - temperature = <0x14c08>; - hysteresis = <0x7d0>; - type = "passive"; - phandle = <0x5e>; - }; - - soc-crit { - temperature = <0x1c138>; - hysteresis = <0x7d0>; - type = "critical"; - phandle = <0x24b>; - }; - }; - - cooling-maps { - map0 { - trip = <0x5e>; - cooling-device = <0x06 0xffffffff 0xffffffff>; - contribution = <0x400>; - }; - - map3 { - trip = <0x5e>; - cooling-device = <0x5f 0xffffffff 0xffffffff>; - contribution = <0x400>; - }; - }; - }; - - npu-thermal { - polling-delay = <0x3e8>; - polling-delay-passive = <0x14>; - thermal-sensors = <0x5d 0x06>; - phandle = <0x251>; - }; - - center-thermal { - polling-delay = <0x3e8>; - polling-delay-passive = <0x14>; - thermal-sensors = <0x5d 0x04>; - phandle = <0x24f>; - }; - - gpu-thermal { - polling-delay = <0x3e8>; - polling-delay-passive = <0x14>; - thermal-sensors = <0x5d 0x05>; - phandle = <0x250>; - }; - - littlecore-thermal { - polling-delay = <0x3e8>; - polling-delay-passive = <0x14>; - thermal-sensors = <0x5d 0x03>; - phandle = <0x24e>; - }; - - bigcore0-thermal { - polling-delay = <0x3e8>; - polling-delay-passive = <0x14>; - thermal-sensors = <0x5d 0x01>; - phandle = <0x24c>; - }; - }; - - iommu@fdbdf000 { - power-domains = <0x60 0x10>; - rockchip,shootdown-entire; - clock-names = "aclk\0iface"; - interrupts = <0x00 0x63 0x04 0x00 0x64 0x04>; - clocks = <0x02 0x1c5 0x02 0x1c4>; - rockchip,enable-cmd-retry; - #iommu-cells = <0x00>; - compatible = "rockchip,iommu-v2"; - rockchip,disable-mmu-reset; - status = "okay"; - interrupt-names = "irq_rkvenc0_mmu0\0irq_rkvenc0_mmu1"; - reg = <0x00 0xfdbdf000 0x00 0x40 0x00 0xfdbdf040 0x00 0x40>; - phandle = <0xc2>; - }; - - iommu@fdcd0f00 { - power-domains = <0x60 0x1d>; - clock-names = "aclk\0iface\0pclk"; - interrupts = <0x00 0x8c 0x04>; - clocks = <0x02 0x1d5 0x02 0x1d6 0x02 0x1d7>; - #iommu-cells = <0x00>; - compatible = "rockchip,iommu-v2"; - rockchip,disable-mmu-reset; - status = "disabled"; - interrupt-names = "fec0_mmu"; - reg = <0x00 0xfdcd0f00 0x00 0x100>; - phandle = <0xd2>; - }; - - vcc5v0-host { - regulator-max-microvolt = <0x4c4b40>; - regulator-boot-on; - gpio = <0x182 0x02 0x00>; - regulator-always-on; - enable-active-high; - regulator-min-microvolt = <0x4c4b40>; - regulator-name = "vcc5v0_host"; - compatible = "regulator-fixed"; - status = "okay"; - phandle = <0x75>; - vin-supply = <0x1dd>; - }; - - qos@fdf66a00 { - compatible = "syscon"; - reg = <0x00 0xfdf66a00 0x00 0x20>; - phandle = <0x98>; - }; - - phy@fed90000 { - clock-names = "refclk\0immortal\0pclk\0utmi"; - resets = <0x02 0x2f 0x02 0x30 0x02 0x31 0x02 0x32 0x02 0x484>; - clocks = <0x02 0x2b6 0x02 0x280 0x02 0x26a 0x1ca>; - compatible = "rockchip,rk3588-usbdp-phy"; - status = "okay"; - rockchip,dp-lane-mux = <0x02 0x03>; - reg = <0x00 0xfed90000 0x00 0x10000>; - phandle = <0x48b>; - rockchip,usb-grf = <0x74>; - reset-names = "init\0cmn\0lane\0pcs_apb\0pma_apb"; - rockchip,u2phy-grf = <0x1c8>; - rockchip,usbdpphy-grf = <0x1c9>; - rockchip,vo-grf = <0xf5>; - - dp-port { - #phy-cells = <0x00>; - status = "okay"; - phandle = <0x1a5>; - }; - - u3-port { - #phy-cells = <0x00>; - status = "okay"; - phandle = <0x1a4>; - }; - }; - - jpege-core@fdba0000 { - power-domains = <0x60 0x15>; - iommus = <0xbc>; - rockchip,ccu = <0xbd>; - clock-names = "aclk_vcodec\0hclk_vcodec"; - assigned-clocks = <0x02 0x1ac>; - rockchip,normal-rates = <0x2367b880 0x00>; - assigned-clock-rates = <0x2367b880>; - resets = <0x02 0x2ca 0x02 0x2cb>; - interrupts = <0x00 0x7a 0x04>; - clocks = <0x02 0x1ac 0x02 0x1ad>; - rockchip,srv = <0xb8>; - rockchip,taskqueue-node = <0x02>; - rockchip,disable-auto-freq; - compatible = "rockchip,vpu-jpege-core"; - status = "okay"; - interrupt-names = "irq_jpege0"; - rockchip,skip-pmu-idle-request; - reg = <0x00 0xfdba0000 0x00 0x400>; - phandle = <0x26d>; - reset-names = "video_a\0video_h"; - }; - - vcc5v0-sys { - regulator-max-microvolt = <0x4c4b40>; - regulator-boot-on; - regulator-always-on; - regulator-min-microvolt = <0x4c4b40>; - regulator-name = "vcc5v0_sys"; - compatible = "regulator-fixed"; - phandle = <0x78>; - vin-supply = <0x1cd>; - }; - - pwm@fd8b0000 { - pinctrl-names = "active"; - pinctrl-0 = <0x7e>; - clock-names = "pwm\0pclk"; - interrupts = <0x00 0x158 0x04>; - clocks = <0x02 0x2a5 0x02 0x2a4>; - #pwm-cells = <0x03>; - compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; - status = "disabled"; - reg = <0x00 0xfd8b0000 0x00 0x10>; - phandle = <0x261>; - }; - - vop@fdd90000 { - power-domains = <0x60 0x18>; - iommus = <0xd6>; - rockchip,vop-grf = <0xd7>; - clock-names = "aclk_vop\0hclk_vop\0dclk_vp0\0dclk_vp1\0dclk_vp2\0dclk_vp3\0pclk_vop\0dclk_src_vp0\0dclk_src_vp1\0dclk_src_vp2"; - reg-names = "regs\0gamma_lut"; - assigned-clocks = <0x02 0x270>; - assigned-clock-rates = <0x2cb41780>; - resets = <0x02 0x349 0x02 0x348 0x02 0x34d 0x02 0x350 0x02 0x351 0x02 0x352>; - interrupts = <0x00 0x9c 0x04>; - clocks = <0x02 0x270 0x02 0x26f 0x02 0x274 0x02 0x275 0x02 0x276 0x02 0x277 0x02 0x26e 0x02 0x271 0x02 0x272 0x02 0x273>; - compatible = "rockchip,rk3588-vop"; - rockchip,pmu = <0xd9>; - status = "okay"; - rockchip,grf = <0xc8>; - reg = <0x00 0xfdd90000 0x00 0x4200 0x00 0xfdd95000 0x00 0x1000>; - phandle = <0x278>; - rockchip,vo1-grf = <0xd8>; - reset-names = "axi\0ahb\0dclk_vp0\0dclk_vp1\0dclk_vp2\0dclk_vp3"; - - ports { - #address-cells = <0x01>; - #size-cells = <0x00>; - phandle = <0x34>; - - port@0 { - rockchip,primary-plane = <0x02>; - rockchip,plane-mask = <0x05>; - #address-cells = <0x01>; - assigned-clocks = <0x02 0x270>; - assigned-clock-rates = <0x2faf0800>; - #size-cells = <0x00>; - reg = <0x00>; - phandle = <0x279>; - - endpoint@5 { - remote-endpoint = <0xdf>; - reg = <0x05>; - phandle = <0x1ad>; - }; - - endpoint@3 { - remote-endpoint = <0xdd>; - reg = <0x03>; - phandle = <0x1a6>; - }; - - endpoint@1 { - remote-endpoint = <0xdb>; - reg = <0x01>; - phandle = <0x102>; - }; - - endpoint@4 { - remote-endpoint = <0xde>; - reg = <0x04>; - phandle = <0x1b0>; - }; - - endpoint@2 { - remote-endpoint = <0xdc>; - reg = <0x02>; - phandle = <0x3c>; - }; - - endpoint@0 { - remote-endpoint = <0xda>; - reg = <0x00>; - phandle = <0xf7>; - }; - }; - - port@3 { - rockchip,primary-plane = <0x09>; - rockchip,plane-mask = <0x280>; - #address-cells = <0x01>; - #size-cells = <0x00>; - reg = <0x03>; - phandle = <0x27c>; - - endpoint@1 { - remote-endpoint = <0xef>; - reg = <0x01>; - phandle = <0x3a>; - }; - - endpoint@2 { - remote-endpoint = <0xf0>; - reg = <0x02>; - phandle = <0x3d>; - }; - - endpoint@0 { - remote-endpoint = <0xee>; - reg = <0x00>; - phandle = <0x39>; - }; - }; - - port@1 { - rockchip,primary-plane = <0x03>; - rockchip,plane-mask = <0x0a>; - #address-cells = <0x01>; - #size-cells = <0x00>; - reg = <0x01>; - phandle = <0x27a>; - - endpoint@5 { - remote-endpoint = <0xe5>; - reg = <0x05>; - phandle = <0x3f>; - }; - - endpoint@3 { - remote-endpoint = <0xe3>; - reg = <0x03>; - phandle = <0x3e>; - }; - - endpoint@1 { - remote-endpoint = <0xe1>; - reg = <0x01>; - phandle = <0x103>; - }; - - endpoint@4 { - remote-endpoint = <0xe4>; - reg = <0x04>; - phandle = <0x1b1>; - }; - - endpoint@2 { - remote-endpoint = <0xe2>; - reg = <0x02>; - phandle = <0xff>; - }; - - endpoint@0 { - remote-endpoint = <0xe0>; - reg = <0x00>; - phandle = <0x38>; - }; - }; - - port@2 { - rockchip,primary-plane = <0x08>; - rockchip,plane-mask = <0x140>; - #address-cells = <0x01>; - assigned-clocks = <0x02 0x273>; - assigned-clock-parents = <0x02 0x04>; - #size-cells = <0x00>; - reg = <0x02>; - phandle = <0x27b>; - - endpoint@5 { - remote-endpoint = <0xeb>; - reg = <0x05>; - phandle = <0x1a7>; - }; - - endpoint@3 { - remote-endpoint = <0xe9>; - reg = <0x03>; - phandle = <0xf3>; - }; - - endpoint@1 { - remote-endpoint = <0xe7>; - reg = <0x01>; - phandle = <0x3b>; - }; - - endpoint@6 { - remote-endpoint = <0xec>; - reg = <0x06>; - phandle = <0x1b2>; - }; - - endpoint@4 { - remote-endpoint = <0xea>; - reg = <0x04>; - phandle = <0xf4>; - }; - - endpoint@2 { - remote-endpoint = <0xe8>; - reg = <0x02>; - phandle = <0x100>; - }; - - endpoint@0 { - remote-endpoint = <0xe6>; - reg = <0x00>; - phandle = <0xf8>; - }; - - endpoint@7 { - remote-endpoint = <0xed>; - reg = <0x07>; - phandle = <0x1ae>; - }; - }; - }; - }; - - csi2-dphy1 { - rockchip,hw = <0x2d 0x2e>; - phy-names = "dcphy0\0dcphy1"; - compatible = "rockchip,rk3588-csi2-dphy"; - status = "disabled"; - phys = <0x2f 0x30>; - phandle = <0x210>; - }; - - pwm@febe0000 { - pinctrl-names = "active"; - pinctrl-0 = <0x16d>; - clock-names = "pwm\0pclk"; - interrupts = <0x00 0x15c 0x04>; - clocks = <0x02 0x57 0x02 0x56>; - #pwm-cells = <0x03>; - compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; - status = "disabled"; - reg = <0x00 0xfebe0000 0x00 0x10>; - phandle = <0x2d5>; - }; - - usb@fc8c0000 { - power-domains = <0x60 0x1f>; - phy-names = "usb2-phy"; - clock-names = "usbhost\0arbiter\0utmi\0alk_usb"; - interrupts = <0x00 0xdb 0x04>; - clocks = <0x02 0x19f 0x02 0x1a0 0x6d 0x6a>; - compatible = "rockchip,rk3588-ohci\0generic-ohci"; - status = "okay"; - phys = <0x6f>; - reg = <0x00 0xfc8c0000 0x00 0x40000>; - phandle = <0x6e>; - }; - - qos@fdf40000 { - compatible = "syscon"; - reg = <0x00 0xfdf40000 0x00 0x20>; - phandle = <0xa8>; - }; - - mipi0-csi2 { - rockchip,hw = <0x47 0x48 0x49 0x4a 0x4b 0x4c>; - compatible = "rockchip,rk3588-mipi-csi2"; - status = "disabled"; - phandle = <0x224>; - }; - - cluster1-opp-table { - rockchip,pvtm-offset = <0x18>; - rockchip,pvtm-sample-time = <0x44c>; - rockchip,pvtm-hw = <0x06>; - nvmem-cells = <0x24 0x25 0x21>; - rockchip,low-temp = <0x2710>; - rockchip,pvtm-voltage-sel-hw = <0x00 0x603 0x00 0x604 0x61c 0x01 0x61d 0x635 0x02 0x636 0x64e 0x03 0x64f 0x66c 0x04 0x66d 0x68a 0x05 0x68b 0x6a8 0x06 0x6a9 0x270f 0x07>; - rockchip,pvtm-thermal-zone = "soc-thermal"; - rockchip,pvtm-low-len-sel = <0x03>; - rockchip,high-temp-max-freq = <0x21b100>; - opp-shared; - rockchip,reboot-freq = <0x1b7740>; - rockchip,pvtm-freq = <0x188940>; - rockchip,pvtm-ref-temp = <0x19>; - low-volt-mem-read-margin = <0x04>; - volt-mem-read-margin = <0xd0bd8 0x01 0xbac48 0x02 0xa4cb8 0x03 0x78d98 0x04>; - compatible = "operating-points-v2"; - rockchip,low-temp-min-volt = <0xb71b0>; - rockchip,grf = <0x26>; - nvmem-cell-names = "leakage\0opp-info\0specification_serial_number"; - rockchip,pvtm-voltage-sel = <0x00 0x63b 0x00 0x63c 0x64f 0x01 0x650 0x668 0x02 0x669 0x68b 0x03 0x68c 0x6ae 0x04 0x6af 0x6cf 0x05 0x6d0 0x6f0 0x06 0x6f1 0x270f 0x07>; - phandle = <0x16>; - rockchip,idle-threshold-freq = <0x21b100>; - rockchip,pvtm-temp-prop = <0x10e 0x10e>; - rockchip,temp-hysteresis = <0x1388>; - rockchip,high-temp = <0x14c08>; - rockchip,pvtm-pvtpll; - rockchip,supported-hw; - intermediate-threshold-freq = <0xf6180>; - rockchip,pvtm-volt = <0xb71b0>; - - opp-j-m-2016000000 { - opp-microvolt = <0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0>; - opp-microvolt-L6 = <0xd8acc 0xd8acc 0xe7ef0 0xd8acc 0xd8acc 0xe7ef0>; - opp-microvolt-L4 = <0xdec74 0xdec74 0xe7ef0 0xdec74 0xdec74 0xe7ef0>; - opp-microvolt-L2 = <0xe4e1c 0xe4e1c 0xe7ef0 0xe4e1c 0xe4e1c 0xe7ef0>; - opp-hz = <0x00 0x7829b800>; - opp-supported-hw = <0x06 0xffff>; - opp-microvolt-L7 = <0xd59f8 0xd59f8 0xe7ef0 0xd59f8 0xd59f8 0xe7ef0>; - opp-microvolt-L5 = <0xdbba0 0xdbba0 0xe7ef0 0xdbba0 0xdbba0 0xe7ef0>; - opp-microvolt-L3 = <0xe1d48 0xe1d48 0xe7ef0 0xe1d48 0xe1d48 0xe7ef0>; - clock-latency-ns = <0x9c40>; - opp-microvolt-L1 = <0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0>; - }; - - opp-1200000000 { - opp-microvolt = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; - opp-hz = <0x00 0x47868c00>; - opp-supported-hw = <0xf9 0xffff>; - clock-latency-ns = <0x9c40>; - }; - - opp-j-m-1416000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - opp-hz = <0x00 0x54667200>; - opp-microvolt-L0 = <0xba284 0xba284 0xe7ef0 0xba284 0xba284 0xe7ef0>; - opp-supported-hw = <0x06 0xffff>; - opp-suspend; - clock-latency-ns = <0x9c40>; - }; - - opp-1008000000 { - opp-microvolt = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; - opp-hz = <0x00 0x3c14dc00>; - opp-supported-hw = <0xf9 0xffff>; - clock-latency-ns = <0x9c40>; - }; - - opp-2256000000 { - opp-microvolt = <0xf4240 0xf4240 0xf4240 0xf4240 0xf4240 0xf4240>; - opp-hz = <0x00 0x8677d400>; - opp-supported-hw = <0xf9 0x13>; - clock-latency-ns = <0x9c40>; - }; - - opp-j-m-1200000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - opp-hz = <0x00 0x47868c00>; - opp-supported-hw = <0x06 0xffff>; - clock-latency-ns = <0x9c40>; - }; - - opp-j-m-1008000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - opp-hz = <0x00 0x3c14dc00>; - opp-supported-hw = <0x06 0xffff>; - clock-latency-ns = <0x9c40>; - }; - - opp-j-m-816000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - opp-hz = <0x00 0x30a32c00>; - opp-supported-hw = <0x06 0xffff>; - clock-latency-ns = <0x9c40>; - }; - - opp-2400000000 { - opp-microvolt = <0xf4240 0xf4240 0xf4240 0xf4240 0xf4240 0xf4240>; - opp-hz = <0x00 0x8f0d1800>; - opp-supported-hw = <0xf9 0x80>; - clock-latency-ns = <0x9c40>; - }; - - opp-1800000000 { - opp-microvolt = <0xcf850 0xcf850 0xf4240 0xcf850 0xcf850 0xf4240>; - opp-microvolt-L6 = <0xbd358 0xbd358 0xf4240 0xbd358 0xbd358 0xf4240>; - opp-microvolt-L4 = <0xc3500 0xc3500 0xf4240 0xc3500 0xc3500 0xf4240>; - opp-microvolt-L2 = <0xc96a8 0xc96a8 0xf4240 0xc96a8 0xc96a8 0xf4240>; - opp-hz = <0x00 0x6b49d200>; - opp-supported-hw = <0xf9 0xffff>; - opp-microvolt-L7 = <0xba284 0xba284 0xf4240 0xba284 0xba284 0xf4240>; - opp-microvolt-L5 = <0xc042c 0xc042c 0xf4240 0xc042c 0xc042c 0xf4240>; - opp-microvolt-L3 = <0xc65d4 0xc65d4 0xf4240 0xc65d4 0xc65d4 0xf4240>; - clock-latency-ns = <0x9c40>; - opp-microvolt-L1 = <0xcc77c 0xcc77c 0xf4240 0xcc77c 0xcc77c 0xf4240>; - }; - - opp-j-m-600000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - opp-hz = <0x00 0x23c34600>; - opp-supported-hw = <0x06 0xffff>; - clock-latency-ns = <0x9c40>; - }; - - opp-2208000000 { - opp-microvolt = <0xf116c 0xf116c 0xf4240 0xf116c 0xf116c 0xf4240>; - opp-microvolt-L6 = <0xe1d48 0xe1d48 0xf4240 0xe1d48 0xe1d48 0xf4240>; - opp-microvolt-L4 = <0xeafc4 0xeafc4 0xf4240 0xeafc4 0xeafc4 0xf4240>; - opp-microvolt-L2 = <0xeafc4 0xeafc4 0xf4240 0xeafc4 0xeafc4 0xf4240>; - opp-hz = <0x00 0x839b6800>; - opp-supported-hw = <0xf9 0xffff>; - opp-microvolt-L7 = <0xdec74 0xdec74 0xf4240 0xdec74 0xdec74 0xf4240>; - opp-microvolt-L5 = <0xe7ef0 0xe7ef0 0xf4240 0xe7ef0 0xe7ef0 0xf4240>; - opp-microvolt-L3 = <0xe7ef0 0xe7ef0 0xf4240 0xe7ef0 0xe7ef0 0xf4240>; - clock-latency-ns = <0x9c40>; - opp-microvolt-L1 = <0xee098 0xee098 0xf4240 0xee098 0xee098 0xf4240>; - }; - - opp-1608000000 { - opp-microvolt = <0xba284 0xba284 0xf4240 0xba284 0xba284 0xf4240>; - opp-microvolt-L6 = <0xaae60 0xaae60 0xf4240 0xaae60 0xaae60 0xf4240>; - opp-microvolt-L4 = <0xb1008 0xb1008 0xf4240 0xb1008 0xb1008 0xf4240>; - opp-microvolt-L2 = <0xb71b0 0xb71b0 0xf4240 0xb71b0 0xb71b0 0xf4240>; - opp-hz = <0x00 0x5fd82200>; - opp-supported-hw = <0xf9 0xffff>; - opp-microvolt-L7 = <0xaae60 0xaae60 0xf4240 0xaae60 0xaae60 0xf4240>; - opp-microvolt-L5 = <0xadf34 0xadf34 0xf4240 0xadf34 0xadf34 0xf4240>; - opp-microvolt-L3 = <0xb40dc 0xb40dc 0xf4240 0xb40dc 0xb40dc 0xf4240>; - clock-latency-ns = <0x9c40>; - }; - - opp-j-m-408000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - opp-hz = <0x00 0x18519600>; - opp-supported-hw = <0x06 0xffff>; - clock-latency-ns = <0x9c40>; - }; - - opp-j-m-1800000000 { - opp-microvolt = <0xd59f8 0xd59f8 0xe7ef0 0xd59f8 0xd59f8 0xe7ef0>; - opp-microvolt-L6 = <0xc3500 0xc3500 0xe7ef0 0xc3500 0xc3500 0xe7ef0>; - opp-microvolt-L4 = <0xc96a8 0xc96a8 0xe7ef0 0xc96a8 0xc96a8 0xe7ef0>; - opp-microvolt-L2 = <0xcf850 0xcf850 0xe7ef0 0xcf850 0xcf850 0xe7ef0>; - opp-hz = <0x00 0x6b49d200>; - opp-supported-hw = <0x06 0xffff>; - opp-microvolt-L7 = <0xc042c 0xc042c 0xe7ef0 0xc042c 0xc042c 0xe7ef0>; - opp-microvolt-L5 = <0xc65d4 0xc65d4 0xe7ef0 0xc65d4 0xc65d4 0xe7ef0>; - opp-microvolt-L3 = <0xcc77c 0xcc77c 0xe7ef0 0xcc77c 0xcc77c 0xe7ef0>; - clock-latency-ns = <0x9c40>; - opp-microvolt-L1 = <0xd2924 0xd2924 0xe7ef0 0xd2924 0xd2924 0xe7ef0>; - }; - - opp-2352000000 { - opp-microvolt = <0xf4240 0xf4240 0xf4240 0xf4240 0xf4240 0xf4240>; - opp-hz = <0x00 0x8c30ac00>; - opp-supported-hw = <0xf9 0x48>; - clock-latency-ns = <0x9c40>; - }; - - opp-816000000 { - opp-microvolt = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; - opp-hz = <0x00 0x30a32c00>; - opp-supported-hw = <0xf9 0xffff>; - clock-latency-ns = <0x9c40>; - }; - - opp-j-m-1608000000 { - opp-microvolt = <0xc042c 0xc042c 0xe7ef0 0xc042c 0xc042c 0xe7ef0>; - opp-microvolt-L6 = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - opp-microvolt-L4 = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - opp-microvolt-L2 = <0xbd358 0xbd358 0xe7ef0 0xbd358 0xbd358 0xe7ef0>; - opp-hz = <0x00 0x5fd82200>; - opp-supported-hw = <0x06 0xffff>; - opp-microvolt-L7 = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - opp-microvolt-L5 = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - opp-microvolt-L3 = <0xba284 0xba284 0xe7ef0 0xba284 0xba284 0xe7ef0>; - clock-latency-ns = <0x9c40>; - }; - - opp-600000000 { - opp-microvolt = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; - opp-hz = <0x00 0x23c34600>; - opp-supported-hw = <0xf9 0xffff>; - clock-latency-ns = <0x9c40>; - }; - - opp-2016000000 { - opp-microvolt = <0xe1d48 0xe1d48 0xf4240 0xe1d48 0xe1d48 0xf4240>; - opp-microvolt-L6 = <0xcf850 0xcf850 0xf4240 0xcf850 0xcf850 0xf4240>; - opp-microvolt-L4 = <0xd59f8 0xd59f8 0xf4240 0xd59f8 0xd59f8 0xf4240>; - opp-microvolt-L2 = <0xdbba0 0xdbba0 0xf4240 0xdbba0 0xdbba0 0xf4240>; - opp-hz = <0x00 0x7829b800>; - opp-supported-hw = <0xf9 0xffff>; - opp-microvolt-L7 = <0xcc77c 0xcc77c 0xf4240 0xcc77c 0xcc77c 0xf4240>; - opp-microvolt-L5 = <0xd2924 0xd2924 0xf4240 0xd2924 0xd2924 0xf4240>; - opp-microvolt-L3 = <0xd8acc 0xd8acc 0xf4240 0xd8acc 0xd8acc 0xf4240>; - clock-latency-ns = <0x9c40>; - opp-microvolt-L1 = <0xdec74 0xdec74 0xf4240 0xdec74 0xdec74 0xf4240>; - }; - - opp-1416000000 { - opp-microvolt = <0xb1008 0xb1008 0xf4240 0xb1008 0xb1008 0xf4240>; - opp-microvolt-L6 = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; - opp-microvolt-L4 = <0xaae60 0xaae60 0xf4240 0xaae60 0xaae60 0xf4240>; - opp-microvolt-L2 = <0xadf34 0xadf34 0xf4240 0xadf34 0xadf34 0xf4240>; - opp-hz = <0x00 0x54667200>; - opp-supported-hw = <0xf9 0xffff>; - opp-microvolt-L7 = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; - opp-microvolt-L5 = <0xa7d8c 0xa7d8c 0xf4240 0xa7d8c 0xa7d8c 0xf4240>; - opp-microvolt-L3 = <0xaae60 0xaae60 0xf4240 0xaae60 0xaae60 0xf4240>; - clock-latency-ns = <0x9c40>; - }; - - opp-408000000 { - opp-microvolt = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; - opp-hz = <0x00 0x18519600>; - opp-supported-hw = <0xf9 0xffff>; - opp-suspend; - clock-latency-ns = <0x9c40>; - }; - - opp-2304000000 { - opp-microvolt = <0xf4240 0xf4240 0xf4240 0xf4240 0xf4240 0xf4240>; - opp-hz = <0x00 0x89544000>; - opp-supported-hw = <0xf9 0x24>; - clock-latency-ns = <0x9c40>; - }; - }; - - mmc@fe2d0000 { - power-domains = <0x60 0x25>; - fifo-depth = <0x100>; - pinctrl-names = "default"; - pinctrl-0 = <0x119>; - clock-names = "biu\0ciu\0ciu-drive\0ciu-sample"; - interrupts = <0x00 0xcc 0x04>; - clocks = <0x02 0x199 0x02 0x19a 0x02 0x2c0 0x02 0x2c1>; - compatible = "rockchip,rk3588-dw-mshc\0rockchip,rk3288-dw-mshc"; - status = "disabled"; - reg = <0x00 0xfe2d0000 0x00 0x4000>; - phandle = <0x294>; - max-frequency = <0xbebc200>; - }; - - rkcif-mipi-lvds-sditf-vir3 { - compatible = "rockchip,rkcif-sditf"; - status = "disabled"; - rockchip,cif = <0x52>; - phandle = <0x22e>; - }; - - serial@feb90000 { - reg-io-width = <0x04>; - pinctrl-names = "default"; - pinctrl-0 = <0x165>; - clock-names = "baudclk\0apb_pclk"; - interrupts = <0x00 0x151 0x04>; - clocks = <0x02 0xcb 0x02 0xb0>; - compatible = "rockchip,rk3588-uart\0snps,dw-apb-uart"; - status = "okay"; - reg = <0x00 0xfeb90000 0x00 0x100>; - phandle = <0x2ce>; - dmas = <0xf1 0x0d 0xf1 0x0e>; - reg-shift = <0x02>; - }; - - i2s@fddf8000 { - power-domains = <0x60 0x1a>; - clock-names = "mclk_tx\0mclk_rx\0hclk"; - assigned-clocks = <0x02 0x239>; - assigned-clock-parents = <0x02 0x05>; - rockchip,capture-only; - resets = <0x02 0x3c3>; - interrupts = <0x00 0xbb 0x04>; - clocks = <0x02 0x23c 0x02 0x23c 0x02 0x238>; - dma-names = "rx"; - #sound-dai-cells = <0x00>; - compatible = "rockchip,rk3588-i2s-tdm"; - status = "okay"; - reg = <0x00 0xfddf8000 0x00 0x1000>; - phandle = <0x1ec>; - dmas = <0xf2 0x15>; - reset-names = "rx-m"; - }; - - phy@fee20000 { - rockchip,pipe-grf = <0x76>; - clock-names = "refclk\0apbclk\0phpclk"; - assigned-clocks = <0x02 0x2bf>; - assigned-clock-rates = <0x5f5e100>; - resets = <0x02 0x20007 0x02 0x4d8>; - clocks = <0x02 0x2bf 0x02 0x187 0x02 0x166>; - #phy-cells = <0x01>; - compatible = "rockchip,rk3588-naneng-combphy"; - status = "disabled"; - rockchip,pipe-phy-grf = <0x195>; - reg = <0x00 0xfee20000 0x00 0x100>; - phandle = <0x70>; - reset-names = "combphy-apb\0combphy"; - rockchip,pcie1ln-sel-bits = <0x100 0x01 0x01 0x00>; - }; - - csi2-dphy0-hw@fedc0000 { - clock-names = "pclk"; - resets = <0x02 0x17 0x02 0x16>; - clocks = <0x02 0x10c>; - compatible = "rockchip,rk3588-csi2-dphy-hw"; - status = "okay"; - rockchip,grf = <0x192>; - reg = <0x00 0xfedc0000 0x00 0x8000>; - phandle = <0x2d>; - reset-names = "srst_csiphy0\0srst_p_csiphy0"; - rockchip,sys_grf = <0xc8>; - }; - - can@fea70000 { - pinctrl-names = "default"; - pinctrl-0 = <0x147>; - clock-names = "baudclk\0apb_pclk"; - resets = <0x02 0xbd 0x02 0xbc>; - interrupts = <0x00 0x157 0x04>; - clocks = <0x02 0x74 0x02 0x73>; - compatible = "rockchip,can-2.0"; - status = "disabled"; - tx-fifo-depth = <0x01>; - rx-fifo-depth = <0x06>; - reg = <0x00 0xfea70000 0x00 0x1000>; - phandle = <0x2a2>; - reset-names = "can\0can-apb"; - }; - - mailbox@fec60000 { - clock-names = "pclk_mailbox"; - interrupts = <0x00 0x3d 0x04 0x00 0x3e 0x04 0x00 0x3f 0x04 0x00 0x40 0x04>; - clocks = <0x02 0x4c>; - #mbox-cells = <0x01>; - compatible = "rockchip,rk3588-mailbox\0rockchip,rk3368-mailbox"; - status = "disabled"; - reg = <0x00 0xfec60000 0x00 0x200>; - phandle = <0x2dd>; - }; - - usbdrd3_1 { - #address-cells = <0x02>; - clock-names = "ref\0suspend\0bus"; - clocks = <0x02 0x1a6 0x02 0x1a5 0x02 0x1a4>; - #size-cells = <0x02>; - compatible = "rockchip,rk3588-dwc3\0rockchip,rk3399-dwc3"; - ranges; - status = "okay"; - phandle = <0x47a>; - - usb@fc400000 { - power-domains = <0x60 0x1f>; - snps,dis-u1-entry-quirk; - snps,dis_enblslpm_quirk; - phy-names = "usb2-phy\0usb3-phy"; - snps,dis-u2-freeclk-exists-quirk; - phy_type = "utmi_wide"; - resets = <0x02 0x2a7>; - interrupts = <0x00 0xdd 0x04>; - snps,dis-u2-entry-quirk; - compatible = "snps,dwc3"; - snps,parkmode-disable-hs-quirk; - snps,dis-del-phy-power-chg-quirk; - status = "okay"; - snps,parkmode-disable-ss-quirk; - phys = <0x1a3 0x1a4>; - reg = <0x00 0xfc400000 0x00 0x400000>; - phandle = <0x47b>; - dr_mode = "host"; - reset-names = "usb3-otg"; - snps,dis-tx-ipgap-linecheck-quirk; - }; - }; - - sata@fe210000 { - phy-names = "sata-phy"; - clock-names = "sata\0pmalive\0rxoob\0ref\0asic"; - interrupts = <0x00 0x111 0x04>; - clocks = <0x02 0x171 0x02 0x16e 0x02 0x174 0x02 0x163 0x02 0x17e>; - compatible = "rockchip,rk-ahci\0snps,dwc-ahci"; - status = "okay"; - interrupt-names = "hostc"; - phys = <0x108 0x01>; - reg = <0x00 0xfe210000 0x00 0x1000>; - phandle = <0x290>; - ports-implemented = <0x01>; - }; - - leds { - compatible = "gpio-leds"; - status = "okay"; - phandle = <0x497>; - - user { - linux,default-trigger = "ir-user-click"; - label = ":user"; - default-state = "off"; - phandle = <0x499>; - gpios = <0x182 0x03 0x00>; - }; - - power { - linux,default-trigger = "ir-power-click"; - label = ":power"; - default-state = "on"; - status = "disabled"; - phandle = <0x498>; - gpios = <0x7b 0x15 0x00>; - }; - }; - - rkcif-mipi-lvds5-sditf-vir3 { - compatible = "rockchip,rkcif-sditf"; - status = "disabled"; - rockchip,cif = <0x1a2>; - phandle = <0x479>; - }; - - qos@fdf80000 { - compatible = "syscon"; - reg = <0x00 0xfdf80000 0x00 0x20>; - phandle = <0x9f>; - }; - - spdif-tx@fdde0000 { - power-domains = <0x60 0x1a>; - clock-names = "mclk\0hclk"; - assigned-clocks = <0x02 0x254>; - assigned-clock-parents = <0x02 0x05>; - interrupts = <0x00 0xc4 0x04>; - clocks = <0x02 0x257 0x02 0x253>; - dma-names = "tx"; - #sound-dai-cells = <0x00>; - compatible = "rockchip,rk3588-spdif\0rockchip,rk3568-spdif"; - status = "disabled"; - reg = <0x00 0xfdde0000 0x00 0x1000>; - phandle = <0x27e>; - dmas = <0xf1 0x07>; - }; - - qos@fdf35000 { - compatible = "syscon"; - reg = <0x00 0xfdf35000 0x00 0x20>; - phandle = <0x87>; - }; - - psci { - method = "smc"; - compatible = "arm,psci-1.0"; - }; - - rkcif-mipi-lvds { - iommus = <0x50>; - rockchip,hw = <0x4f>; - compatible = "rockchip,rkcif-mipi-lvds"; - status = "disabled"; - phandle = <0x52>; - }; - - rga@fdb80000 { - power-domains = <0x60 0x15>; - clock-names = "aclk_rga2\0hclk_rga2\0clk_rga2"; - interrupts = <0x00 0x74 0x04>; - clocks = <0x02 0x1b7 0x02 0x1b6 0x02 0x1b8>; - compatible = "rockchip,rga2_core0"; - status = "okay"; - interrupt-names = "rga2_irq"; - reg = <0x00 0xfdb80000 0x00 0x1000>; - phandle = <0x26b>; - }; - - qos@fdf66800 { - compatible = "syscon"; - reg = <0x00 0xfdf66800 0x00 0x20>; - phandle = <0x97>; - }; - - spi@feb10000 { - pinctrl-names = "default"; - #address-cells = <0x01>; - num-cs = <0x02>; - pinctrl-0 = <0x151 0x152 0x153>; - clock-names = "spiclk\0apb_pclk"; - interrupts = <0x00 0x147 0x04>; - clocks = <0x02 0xa4 0x02 0x9f>; - #size-cells = <0x00>; - dma-names = "tx\0rx"; - compatible = "rockchip,rk3066-spi"; - status = "disabled"; - reg = <0x00 0xfeb10000 0x00 0x1000>; - phandle = <0x2ac>; - dmas = <0x7c 0x10 0x7c 0x11>; - }; - - rkcif-mipi-lvds4-sditf { - compatible = "rockchip,rkcif-sditf"; - status = "disabled"; - rockchip,cif = <0x1a1>; - phandle = <0x472>; - }; - - hdmi@fdea0000 { - power-domains = <0x60 0x1a>; - reg-io-width = <0x04>; - pinctrl-names = "default"; - phy-names = "hdmi"; - pinctrl-0 = <0x1a8 0x1a9 0x1aa 0x1ab>; - clock-names = "pclk\0hpd\0earc\0hdmitx_ref\0aud\0dclk_vp0\0dclk_vp1\0dclk_vp2\0dclk_vp3\0hclk_vo1\0link_clk"; - resets = <0x02 0x3d7 0x02 0x49d>; - interrupts = <0x00 0xad 0x04 0x00 0xae 0x04 0x00 0xaf 0x04 0x00 0xb0 0x04 0x00 0x169 0x04>; - clocks = <0x02 0x224 0x02 0x266 0x02 0x225 0x02 0x226 0x02 0x24c 0x02 0x274 0x02 0x275 0x02 0x276 0x02 0x277 0x05 0x36>; - #sound-dai-cells = <0x00>; - compatible = "rockchip,rk3588-dw-hdmi"; - status = "disabled"; - rockchip,grf = <0xc8>; - phys = <0x1ac>; - reg = <0x00 0xfdea0000 0x00 0x10000 0x00 0xfdeb0000 0x00 0x10000>; - phandle = <0x1e1>; - reset-names = "ref\0hdp"; - rockchip,vo1_grf = <0xd8>; - - ports { - #address-cells = <0x01>; - #size-cells = <0x00>; - - port@0 { - #address-cells = <0x01>; - #size-cells = <0x00>; - reg = <0x00>; - phandle = <0x482>; - - endpoint@1 { - remote-endpoint = <0x3f>; - status = "disabled"; - reg = <0x01>; - phandle = <0xe5>; - }; - - endpoint@2 { - remote-endpoint = <0x1ae>; - status = "disabled"; - reg = <0x02>; - phandle = <0xed>; - }; - - endpoint@0 { - remote-endpoint = <0x1ad>; - status = "disabled"; - reg = <0x00>; - phandle = <0xdf>; - }; - }; - }; - }; - - pcie@fe180000 { - #address-cells = <0x03>; - rockchip,pipe-grf = <0x76>; - phy-names = "pcie-phy"; - bus-range = <0x30 0x3f>; - clock-names = "aclk_mst\0aclk_slv\0aclk_dbi\0pclk\0aux\0pipe"; - reg-names = "pcie-apb\0pcie-dbi"; - num-ob-windows = <0x08>; - resets = <0x02 0x210 0x02 0x21f>; - interrupts = <0x00 0xf8 0x04 0x00 0xf7 0x04 0x00 0xf6 0x04 0x00 0xf5 0x04 0x00 0xf4 0x04>; - clocks = <0x02 0x151 0x02 0x156 0x02 0x14c 0x02 0x15c 0x02 0x161 0x02 0x2c5>; - interrupt-map = <0x00 0x00 0x00 0x01 0x105 0x00 0x00 0x00 0x00 0x02 0x105 0x01 0x00 0x00 0x00 0x03 0x105 0x02 0x00 0x00 0x00 0x04 0x105 0x03>; - #size-cells = <0x02>; - max-link-speed = <0x02>; - device_type = "pci"; - interrupt-map-mask = <0x00 0x00 0x00 0x07>; - num-lanes = <0x01>; - compatible = "rockchip,rk3588-pcie\0snps,dw-pcie"; - ranges = <0x800 0x00 0xf3000000 0x00 0xf3000000 0x00 0x100000 0x81000000 0x00 0xf3100000 0x00 0xf3100000 0x00 0x100000 0x82000000 0x00 0xf3200000 0x00 0xf3200000 0x00 0xe00000 0xc3000000 0x09 0xc0000000 0x09 0xc0000000 0x00 0x40000000>; - msi-map = <0x3000 0x106 0x3000 0x1000>; - #interrupt-cells = <0x01>; - status = "disabled"; - interrupt-names = "sys\0pmc\0msg\0legacy\0err"; - phys = <0x70 0x02>; - num-viewport = <0x04>; - reg = <0x00 0xfe180000 0x00 0x10000 0x0a 0x40c00000 0x00 0x400000>; - linux,pci-domain = <0x03>; - phandle = <0x28c>; - reset-names = "pcie\0periph"; - num-ib-windows = <0x08>; - - legacy-interrupt-controller { - #address-cells = <0x00>; - interrupts = <0x00 0xf5 0x01>; - interrupt-parent = <0x01>; - #interrupt-cells = <0x01>; - phandle = <0x105>; - interrupt-controller; - }; - }; - - i2s@fe480000 { - pinctrl-names = "default"; - pinctrl-0 = <0x120 0x121 0x122 0x123 0x124 0x125 0x126 0x127 0x128 0x129>; - clock-names = "mclk_tx\0mclk_rx\0hclk"; - resets = <0x02 0xc002a 0x02 0xc002d>; - interrupts = <0x00 0xb5 0x04>; - clocks = <0x02 0x28c 0x02 0x290 0x02 0x288>; - dma-names = "tx\0rx"; - #sound-dai-cells = <0x00>; - compatible = "rockchip,rk3588-i2s-tdm"; - status = "disabled"; - reg = <0x00 0xfe480000 0x00 0x1000>; - phandle = <0x1d1>; - dmas = <0x7c 0x02 0x7c 0x03>; - reset-names = "tx-m\0rx-m"; - rockchip,clk-trcm = <0x01>; - }; - - syscon@fd5c0000 { - compatible = "rockchip,pipe-phy-grf\0syscon"; - reg = <0x00 0xfd5c0000 0x00 0x100>; - phandle = <0x1cb>; - }; - - i2c@feab0000 { - pinctrl-names = "default"; - #address-cells = <0x01>; - pinctrl-0 = <0x14a>; - clock-names = "i2c\0pclk"; - resets = <0x02 0xb2 0x02 0xaa>; - interrupts = <0x00 0x140 0x04>; - clocks = <0x02 0x8f 0x02 0x87>; - #size-cells = <0x00>; - compatible = "rockchip,rk3588-i2c\0rockchip,rk3399-i2c"; - status = "okay"; - reg = <0x00 0xfeab0000 0x00 0x1000>; - phandle = <0x2a6>; - reset-names = "i2c\0apb"; - - gpio@21 { - gpio-controller; - gpio-group-num = <0xc8>; - compatible = "nxp,pca9555"; - status = "okay"; - reg = <0x21>; - phandle = <0x182>; - #gpio-cells = <0x02>; - }; - }; - - iommu@fdcb7f00 { - power-domains = <0x60 0x1b>; - clock-names = "aclk\0iface"; - interrupts = <0x00 0x84 0x04>; - clocks = <0x02 0x1de 0x02 0x1df>; - #iommu-cells = <0x00>; - compatible = "rockchip,iommu-v2"; - rockchip,disable-mmu-reset; - status = "okay"; - interrupt-names = "isp0_mmu"; - reg = <0x00 0xfdcb7f00 0x00 0x100>; - phandle = <0xd0>; - }; - - qos@fdf3e600 { - compatible = "syscon"; - reg = <0x00 0xfdf3e600 0x00 0x20>; - phandle = <0xae>; - }; - - syscon@fd5b8000 { - compatible = "rockchip,pcie30-phy-grf\0syscon"; - reg = <0x00 0xfd5b8000 0x00 0x10000>; - phandle = <0x1cc>; - }; - - qos@fdf81200 { - compatible = "syscon"; - reg = <0x00 0xfdf81200 0x00 0x20>; - phandle = <0xa1>; - }; - - mipi5-csi2-hw@fdd60000 { - clock-names = "pclk_csi2host"; - reg-names = "csihost_regs"; - resets = <0x02 0x329>; - interrupts = <0x00 0x99 0x04 0x00 0x9a 0x04>; - clocks = <0x02 0x1d4>; - compatible = "rockchip,rk3588-mipi-csi2-hw"; - status = "okay"; - interrupt-names = "csi-intr1\0csi-intr2"; - reg = <0x00 0xfdd60000 0x00 0x10000>; - phandle = <0x4c>; - reset-names = "srst_csihost_p"; - }; - - qos@fdf72000 { - compatible = "syscon"; - reg = <0x00 0xfdf72000 0x00 0x20>; - phandle = <0x82>; - }; - - timer@feae0000 { - clock-names = "pclk\0timer"; - interrupts = <0x00 0x121 0x04>; - clocks = <0x02 0x5c 0x02 0x5f>; - compatible = "rockchip,rk3588-timer\0rockchip,rk3288-timer"; - reg = <0x00 0xfeae0000 0x00 0x20>; - phandle = <0x2a9>; - }; - - rkcif-mipi-lvds-sditf-vir1 { - compatible = "rockchip,rkcif-sditf"; - status = "disabled"; - rockchip,cif = <0x52>; - phandle = <0x22c>; - }; - - syscon@fd5b5000 { - compatible = "rockchip,mipi-dphy-grf\0syscon"; - reg = <0x00 0xfd5b5000 0x00 0x1000>; - phandle = <0x193>; - }; - - i2c@fec90000 { - pinctrl-names = "default"; - #address-cells = <0x01>; - pinctrl-0 = <0x185>; - clock-names = "i2c\0pclk"; - resets = <0x02 0xb6 0x02 0xae>; - interrupts = <0x00 0x144 0x04>; - clocks = <0x02 0x93 0x02 0x8b>; - #size-cells = <0x00>; - compatible = "rockchip,rk3588-i2c\0rockchip,rk3399-i2c"; - status = "disabled"; - reg = <0x00 0xfec90000 0x00 0x1000>; - phandle = <0x2e4>; - reset-names = "i2c\0apb"; - }; - - avsd-plus@fdb51000 { - power-domains = <0x60 0x15>; - iommus = <0xb7>; - clock-names = "aclk_vcodec\0hclk_vcodec"; - assigned-clocks = <0x02 0x1c0>; - rockchip,normal-rates = <0x2367b880 0x00>; - assigned-clock-rates = <0x2367b880>; - resets = <0x02 0x2c8 0x02 0x2c9>; - interrupts = <0x00 0x77 0x04>; - clocks = <0x02 0x1c0 0x02 0x1c1>; - rockchip,srv = <0xb8>; - rockchip,taskqueue-node = <0x00>; - rockchip,disable-auto-freq; - compatible = "rockchip,avs-plus-decoder"; - rockchip,resetgroup-node = <0x00>; - status = "disabled"; - interrupt-names = "irq_avsd"; - rockchip,skip-pmu-idle-request; - reg = <0x00 0xfdb51000 0x00 0x200>; - phandle = <0x268>; - reset-names = "shared_video_a\0shared_video_h"; - }; - - dp1-sound { - rockchip,jack-det; - rockchip,cpu = <0x1e2>; - rockchip,codec = <0x1e3 0x01>; - rockchip,card-name = "rockchip,dp1"; - compatible = "rockchip,hdmi"; - status = "disabled"; - phandle = <0x4a9>; - rockchip,mclk-fs = <0x200>; - }; - - mipi1-csi2-hw@fdd20000 { - clock-names = "pclk_csi2host"; - reg-names = "csihost_regs"; - resets = <0x02 0x325>; - interrupts = <0x00 0x91 0x04 0x00 0x92 0x04>; - clocks = <0x02 0x1d0>; - compatible = "rockchip,rk3588-mipi-csi2-hw"; - status = "okay"; - interrupt-names = "csi-intr1\0csi-intr2"; - reg = <0x00 0xfdd20000 0x00 0x10000>; - phandle = <0x48>; - reset-names = "srst_csihost_p"; - }; - - iep@fdbb0000 { - power-domains = <0x60 0x15>; - iommus = <0xc1>; - clock-names = "aclk\0hclk\0sclk"; - assigned-clocks = <0x02 0x1aa>; - rockchip,normal-rates = <0x2367b880 0x00>; - assigned-clock-rates = <0x2367b880>; - resets = <0x02 0x2d5 0x02 0x2d4 0x02 0x2d6>; - interrupts = <0x00 0x75 0x04>; - clocks = <0x02 0x1aa 0x02 0x1a9 0x02 0x1ab>; - rockchip,srv = <0xb8>; - rockchip,taskqueue-node = <0x06>; - rockchip,disable-auto-freq; - compatible = "rockchip,iep-v2"; - status = "okay"; - interrupt-names = "irq_iep"; - rockchip,skip-pmu-idle-request; - reg = <0x00 0xfdbb0000 0x00 0x500>; - phandle = <0x271>; - reset-names = "rst_a\0rst_h\0rst_s"; - }; - - dsi@fde20000 { - power-domains = <0x60 0x18>; - #address-cells = <0x01>; - phy-names = "dcphy"; - clock-names = "pclk\0sys_clk"; - resets = <0x02 0x354>; - interrupts = <0x00 0xa7 0x04>; - clocks = <0x02 0x278 0x02 0x27a>; - #size-cells = <0x00>; - compatible = "rockchip,rk3588-mipi-dsi2"; - status = "disabled"; - rockchip,grf = <0xd7>; - phys = <0x2f>; - reg = <0x00 0xfde20000 0x00 0x10000>; - phandle = <0x281>; - reset-names = "apb"; - - ports { - #address-cells = <0x01>; - #size-cells = <0x00>; - - port@0 { - #address-cells = <0x01>; - #size-cells = <0x00>; - reg = <0x00>; - phandle = <0x282>; - - endpoint@1 { - remote-endpoint = <0x39>; - status = "disabled"; - reg = <0x01>; - phandle = <0xee>; - }; - - endpoint@0 { - remote-endpoint = <0xf3>; - status = "disabled"; - reg = <0x00>; - phandle = <0xe9>; - }; - }; - }; - }; - - rkcif-mipi-lvds5-sditf-vir1 { - compatible = "rockchip,rkcif-sditf"; - status = "disabled"; - rockchip,cif = <0x1a2>; - phandle = <0x477>; - }; - - edp@fded0000 { - power-domains = <0x60 0x1a>; - phy-names = "dp"; - clock-names = "dp\0pclk\0spdif\0hclk"; - resets = <0x02 0x3e4 0x02 0x3e3>; - interrupts = <0x00 0xa4 0x04>; - clocks = <0x02 0x214 0x02 0x213 0x02 0x215 0x05>; - compatible = "rockchip,rk3588-edp"; - status = "disabled"; - rockchip,grf = <0xd8>; - phys = <0x1af>; - reg = <0x00 0xfded0000 0x00 0x1000>; - phandle = <0x483>; - reset-names = "dp\0apb"; - - ports { - #address-cells = <0x01>; - #size-cells = <0x00>; - - port@0 { - #address-cells = <0x01>; - #size-cells = <0x00>; - reg = <0x00>; - - endpoint@1 { - remote-endpoint = <0x1b1>; - status = "disabled"; - reg = <0x01>; - phandle = <0xe4>; - }; - - endpoint@2 { - remote-endpoint = <0x1b2>; - status = "disabled"; - reg = <0x02>; - phandle = <0xec>; - }; - - endpoint@0 { - remote-endpoint = <0x1b0>; - status = "disabled"; - reg = <0x00>; - phandle = <0xde>; - }; - }; - - port@1 { - reg = <0x01>; - - endpoint { - phandle = <0x484>; - }; - }; - }; - }; - - qos@fdf67000 { - compatible = "syscon"; - reg = <0x00 0xfdf67000 0x00 0x20>; - phandle = <0x9c>; - }; - - qos@fdf64000 { - compatible = "syscon"; - reg = <0x00 0xfdf64000 0x00 0x20>; - phandle = <0x9b>; - }; - - npu-opp-table { - rockchip,pvtm-offset = <0x50>; - rockchip,pvtm-sample-time = <0x44c>; - rockchip,init-freq = <0xf4240>; - rockchip,pvtm-hw = <0x06>; - nvmem-cells = <0xb4 0xb5 0x21>; - rockchip,low-temp = <0x2710>; - rockchip,pvtm-voltage-sel-hw = <0x00 0x31f 0x00 0x320 0x333 0x01 0x334 0x34c 0x02 0x34d 0x365 0x03 0x366 0x37e 0x04 0x37f 0x270f 0x05>; - rockchip,pvtm-thermal-zone = "npu-thermal"; - rockchip,high-temp-max-freq = "\0\f5"; - rockchip,opp-clocks = <0x02 0x12a 0x02 0x12f>; - rockchip,pvtm-freq = "\0\f5"; - rockchip,pvtm-ref-temp = <0x19>; - low-volt-mem-read-margin = <0x04>; - volt-mem-read-margin = <0xd0bd8 0x01 0xbac48 0x02 0xa4cb8 0x03 0x78d98 0x04>; - compatible = "operating-points-v2"; - rockchip,low-temp-min-volt = <0xb71b0>; - rockchip,grf = <0xb6>; - nvmem-cell-names = "leakage\0opp-info\0specification_serial_number"; - rockchip,pvtm-voltage-sel = <0x00 0x32f 0x00 0x330 0x343 0x01 0x344 0x35c 0x02 0x35d 0x375 0x03 0x376 0x38e 0x04 0x38f 0x270f 0x05>; - phandle = <0xb1>; - rockchip,pvtm-temp-prop = <0xffffff8f 0xffffff8f>; - rockchip,temp-hysteresis = <0x1388>; - rockchip,high-temp = <0x14c08>; - rockchip,pvtm-pvtpll; - rockchip,supported-hw; - intermediate-threshold-freq = <0x7a120>; - rockchip,pvtm-volt = <0xb71b0>; - - opp-j-m-700000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; - opp-hz = <0x00 0x29b92700>; - opp-supported-hw = <0x06 0xffff>; - }; - - opp-300000000 { - opp-microvolt = <0xaae60 0xaae60 0xcf850 0xaae60 0xaae60 0xcf850>; - opp-microvolt-L4 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; - opp-microvolt-L2 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; - opp-hz = <0x00 0x11e1a300>; - opp-supported-hw = <0xf9 0xffff>; - opp-microvolt-L5 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; - opp-microvolt-L3 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; - opp-microvolt-L1 = <0xa7d8c 0xa7d8c 0xcf850 0xa7d8c 0xa7d8c 0xcf850>; - }; - - opp-500000000 { - opp-microvolt = <0xaae60 0xaae60 0xcf850 0xaae60 0xaae60 0xcf850>; - opp-microvolt-L4 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; - opp-microvolt-L2 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; - opp-hz = <0x00 0x1dcd6500>; - opp-supported-hw = <0xf9 0xffff>; - opp-microvolt-L5 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; - opp-microvolt-L3 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; - opp-microvolt-L1 = <0xa7d8c 0xa7d8c 0xcf850 0xa7d8c 0xa7d8c 0xcf850>; - }; - - opp-j-m-400000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; - opp-hz = <0x00 0x17d78400>; - opp-supported-hw = <0x06 0xffff>; - }; - - opp-700000000 { - opp-microvolt = <0xaae60 0xaae60 0xcf850 0xaae60 0xaae60 0xcf850>; - opp-microvolt-L4 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; - opp-hz = <0x00 0x29b92700>; - opp-supported-hw = <0xf9 0xffff>; - opp-microvolt-L5 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; - opp-microvolt-L3 = <0xa7d8c 0xa7d8c 0xcf850 0xa7d8c 0xa7d8c 0xcf850>; - }; - - opp-j-m-950000000 { - opp-microvolt = <0xcc77c 0xcc77c 0xcf850 0xcc77c 0xcc77c 0xcf850>; - opp-microvolt-L4 = <0xc042c 0xc042c 0xcf850 0xc042c 0xc042c 0xcf850>; - opp-microvolt-L2 = <0xc65d4 0xc65d4 0xcf850 0xc65d4 0xc65d4 0xcf850>; - opp-hz = <0x00 0x389fd980>; - opp-supported-hw = <0x06 0xffff>; - opp-microvolt-L5 = <0xbd358 0xbd358 0xcf850 0xbd358 0xbd358 0xcf850>; - opp-microvolt-L3 = <0xc3500 0xc3500 0xcf850 0xc3500 0xc3500 0xcf850>; - opp-microvolt-L1 = <0xc96a8 0xc96a8 0xcf850 0xc96a8 0xc96a8 0xcf850>; - }; - - opp-j-m-600000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; - opp-hz = <0x00 0x23c34600>; - opp-supported-hw = <0x06 0xffff>; - }; - - opp-900000000 { - opp-microvolt = <0xc3500 0xc3500 0xcf850 0xc3500 0xc3500 0xcf850>; - opp-microvolt-L4 = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; - opp-microvolt-L2 = <0xbd358 0xbd358 0xcf850 0xbd358 0xbd358 0xcf850>; - opp-hz = <0x00 0x35a4e900>; - opp-supported-hw = <0xf9 0xffff>; - opp-microvolt-L5 = <0xb40dc 0xb40dc 0xcf850 0xb40dc 0xb40dc 0xcf850>; - opp-microvolt-L3 = <0xba284 0xba284 0xcf850 0xba284 0xba284 0xcf850>; - opp-microvolt-L1 = <0xc042c 0xc042c 0xcf850 0xc042c 0xc042c 0xcf850>; - }; - - opp-j-m-800000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; - opp-hz = <0x00 0x2faf0800>; - opp-supported-hw = <0x06 0xffff>; - }; - - opp-400000000 { - opp-microvolt = <0xaae60 0xaae60 0xcf850 0xaae60 0xaae60 0xcf850>; - opp-microvolt-L4 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; - opp-microvolt-L2 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; - opp-hz = <0x00 0x17d78400>; - opp-supported-hw = <0xf9 0xffff>; - opp-microvolt-L5 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; - opp-microvolt-L3 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; - opp-microvolt-L1 = <0xa7d8c 0xa7d8c 0xcf850 0xa7d8c 0xa7d8c 0xcf850>; - }; - - opp-j-m-300000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; - opp-hz = <0x00 0x11e1a300>; - opp-supported-hw = <0x06 0xffff>; - }; - - opp-600000000 { - opp-microvolt = <0xaae60 0xaae60 0xcf850 0xaae60 0xaae60 0xcf850>; - opp-microvolt-L4 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; - opp-microvolt-L2 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; - opp-hz = <0x00 0x23c34600>; - opp-supported-hw = <0xf9 0xffff>; - opp-microvolt-L5 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; - opp-microvolt-L3 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; - opp-microvolt-L1 = <0xa7d8c 0xa7d8c 0xcf850 0xa7d8c 0xa7d8c 0xcf850>; - }; - - opp-1000000000 { - opp-microvolt = <0xcf850 0xcf850 0xcf850 0xcf850 0xcf850 0xcf850>; - opp-microvolt-L4 = <0xc3500 0xc3500 0xcf850 0xc3500 0xc3500 0xcf850>; - opp-microvolt-L2 = <0xc96a8 0xc96a8 0xcf850 0xc96a8 0xc96a8 0xcf850>; - opp-hz = <0x00 0x3b9aca00>; - opp-supported-hw = <0xf9 0xffff>; - opp-microvolt-L5 = <0xc042c 0xc042c 0xcf850 0xc042c 0xc042c 0xcf850>; - opp-microvolt-L3 = <0xc65d4 0xc65d4 0xcf850 0xc65d4 0xc65d4 0xcf850>; - opp-microvolt-L1 = <0xcc77c 0xcc77c 0xcf850 0xcc77c 0xcc77c 0xcf850>; - }; - - opp-j-m-500000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; - opp-hz = <0x00 0x1dcd6500>; - opp-supported-hw = <0x06 0xffff>; - }; - - opp-800000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; - opp-microvolt-L4 = <0xadf34 0xadf34 0xcf850 0xadf34 0xadf34 0xcf850>; - opp-microvolt-L2 = <0xb40dc 0xb40dc 0xcf850 0xb40dc 0xb40dc 0xcf850>; - opp-hz = <0x00 0x2faf0800>; - opp-supported-hw = <0xf9 0xffff>; - opp-microvolt-L5 = <0xaae60 0xaae60 0xcf850 0xaae60 0xaae60 0xcf850>; - opp-microvolt-L3 = <0xb1008 0xb1008 0xcf850 0xb1008 0xb1008 0xcf850>; - }; - }; - - syscon@fd590000 { - compatible = "rockchip,rk3588-bigcore0-grf\0syscon"; - reg = <0x00 0xfd590000 0x00 0x100>; - phandle = <0x26>; - }; - - syscon@fd5dc000 { - #address-cells = <0x01>; - #size-cells = <0x01>; - compatible = "rockchip,rk3588-usb2phy-grf\0syscon\0simple-mfd"; - reg = <0x00 0xfd5dc000 0x00 0x4000>; - phandle = <0x25e>; - - usb2-phy@c000 { - clock-output-names = "usb480m_phy3"; - clock-names = "phyclk"; - resets = <0x02 0xc004a 0x02 0x48b>; - interrupts = <0x00 0x188 0x04>; - clocks = <0x02 0x2b5>; - #clock-cells = <0x00>; - compatible = "rockchip,rk3588-usb2phy"; - status = "okay"; - reg = <0xc000 0x10>; - phandle = <0x6d>; - reset-names = "phy\0apb"; - - host-port { - phy-supply = <0x75>; - #phy-cells = <0x00>; - status = "okay"; - phandle = <0x6f>; - }; - }; - }; - - pcie-clk3 { - regulator-boot-on; - regulator-always-on; - regulator-name = "pcie_clk3"; - compatible = "regulator-fixed"; - status = "okay"; - phandle = <0x496>; - gpios = <0xfe 0x09 0x01>; - }; - - pwm@febf0030 { - pinctrl-names = "active"; - pinctrl-0 = <0x174>; - clock-names = "pwm\0pclk"; - interrupts = <0x00 0x15e 0x04 0x00 0x15f 0x04>; - clocks = <0x02 0x5a 0x02 0x59>; - #pwm-cells = <0x03>; - compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; - status = "disabled"; - reg = <0x00 0xfebf0030 0x00 0x10>; - phandle = <0x2dc>; - }; - - hwspinlock@fe5a0000 { - compatible = "rockchip,hwspinlock"; - reg = <0x00 0xfe5a0000 0x00 0x100>; - phandle = <0x29f>; - #hwlock-cells = <0x01>; - }; - - rkcif-mipi-lvds4-sditf-vir2 { - compatible = "rockchip,rkcif-sditf"; - status = "disabled"; - rockchip,cif = <0x1a1>; - phandle = <0x474>; - }; - - sram@10f000 { - #address-cells = <0x01>; - #size-cells = <0x01>; - compatible = "mmio-sram"; - ranges = <0x00 0x00 0x10f000 0x100>; - reg = <0x00 0x10f000 0x00 0x100>; - - sram@0 { - compatible = "arm,scmi-shmem"; - reg = <0x00 0x100>; - phandle = <0x46>; - }; - }; - - hdmirx-controller@fdee0000 { - power-domains = <0x60 0x1a>; - pinctrl-names = "default"; - pinctrl-0 = <0x1b3 0x1b4>; - clock-names = "aclk\0audio\0cr_para\0pclk\0ref\0hclk_s_hdmirx\0hclk_vo1"; - reg-names = "hdmirx_regs"; - resets = <0x02 0x3d9 0x02 0x3da 0x02 0x3db 0x02 0x3b7>; - interrupts = <0x00 0xb1 0x04 0x00 0x1b4 0x04 0x00 0xb3 0x04>; - clocks = <0x02 0x21a 0x02 0x21f 0x02 0x2b2 0x02 0x21b 0x02 0x21c 0x02 0x232 0x05>; - hpd-trigger-level = <0x01>; - #sound-dai-cells = <0x01>; - compatible = "rockchip,rk3588-hdmirx-ctrler\0rockchip,hdmirx-ctrler"; - status = "disabled"; - rockchip,grf = <0xc8>; - interrupt-names = "cec\0hdmi\0dma"; - hdmirx-det-gpios = <0xfe 0x1d 0x01>; - reg = <0x00 0xfdee0000 0x00 0x6000>; - phandle = <0x1eb>; - reset-names = "rst_a\0rst_p\0rst_ref\0rst_biu"; - rockchip,vo1_grf = <0xd8>; - }; - - qos@fdf61000 { - compatible = "syscon"; - reg = <0x00 0xfdf61000 0x00 0x20>; - phandle = <0x90>; - }; - - qos@fdf40600 { - compatible = "syscon"; - reg = <0x00 0xfdf40600 0x00 0x20>; - phandle = <0xa4>; - }; - - syscon@fd588000 { - compatible = "rockchip,rk3588-pmu0-grf\0syscon\0simple-mfd"; - reg = <0x00 0xfd588000 0x00 0x2000>; - phandle = <0x25a>; - - reboot-mode { - mode-normal = <0x5242c300>; - mode-loader = <0x5242c301>; - mode-quiescent = <0x5242c30e>; - mode-bootloader = <0x5242c301>; - mode-recovery = <0x5242c303>; - mode-watchdog = <0x5242c308>; - mode-ums = <0x5242c30c>; - mode-fastboot = <0x5242c309>; - offset = <0x80>; - compatible = "syscon-reboot-mode"; - mode-winusb = <0x5242c30f>; - phandle = <0x25b>; - mode-charge = <0x5242c30b>; - mode-panic = <0x5242c307>; - }; - }; - - syscon@fd5a4000 { - compatible = "rockchip,rk3588-vop-grf\0syscon"; - reg = <0x00 0xfd5a4000 0x00 0x2000>; - phandle = <0xd7>; - }; - - iommu@fdb60f00 { - power-domains = <0x60 0x16>; - clock-names = "aclk\0iface"; - interrupts = <0x00 0x72 0x04>; - clocks = <0x02 0x1ba 0x02 0x1b9>; - #iommu-cells = <0x00>; - compatible = "rockchip,iommu-v2"; - status = "okay"; - interrupt-names = "rga3_0_mmu"; - reg = <0x00 0xfdb60f00 0x00 0x100>; - phandle = <0xb9>; - }; - - pwm@febf0020 { - pinctrl-names = "active"; - pinctrl-0 = <0x173>; - clock-names = "pwm\0pclk"; - interrupts = <0x00 0x15e 0x04>; - clocks = <0x02 0x5a 0x02 0x59>; - #pwm-cells = <0x03>; - compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; - status = "disabled"; - reg = <0x00 0xfebf0020 0x00 0x10>; - phandle = <0x2db>; - }; - - rkispp@fdcd0000 { - power-domains = <0x60 0x1d>; - iommus = <0xd2>; - clock-names = "aclk_ispp\0hclk_ispp\0clk_ispp"; - assigned-clocks = <0x02 0x1d6>; - assigned-clock-rates = <0x5f5e100>; - interrupts = <0x00 0x8b 0x04>; - clocks = <0x02 0x1d5 0x02 0x1d6 0x02 0x1d7>; - compatible = "rockchip,rk3588-rkispp"; - status = "disabled"; - interrupt-names = "fec_irq"; - reg = <0x00 0xfdcd0000 0x00 0xf00>; - phandle = <0x5b>; - }; - - tsadc@fec00000 { - pinctrl-names = "gpio\0otpout"; - pinctrl-0 = <0x175>; - clock-names = "tsadc\0apb_pclk"; - rockchip,hw-tshut-polarity = <0x00>; - assigned-clocks = <0x02 0xaa>; - assigned-clock-rates = <0x1e8480>; - resets = <0x02 0xc1 0x02 0xc0>; - interrupts = <0x00 0x18d 0x04>; - rockchip,hw-tshut-mode = <0x00>; - clocks = <0x02 0xaa 0x02 0xa9>; - #thermal-sensor-cells = <0x01>; - compatible = "rockchip,rk3588-tsadc"; - pinctrl-1 = <0x176>; - status = "okay"; - reg = <0x00 0xfec00000 0x00 0x400>; - phandle = <0x5d>; - reset-names = "tsadc\0tsadc-apb"; - rockchip,hw-tshut-temp = <0x1d4c0>; - }; - - iommu@fdbb0800 { - power-domains = <0x60 0x15>; - clock-names = "aclk\0iface"; - interrupts = <0x00 0x75 0x04>; - clocks = <0x02 0x1aa 0x02 0x1a9>; - #iommu-cells = <0x00>; - compatible = "rockchip,iommu-v2"; - status = "okay"; - interrupt-names = "irq_iep_mmu"; - reg = <0x00 0xfdbb0800 0x00 0x100>; - phandle = <0xc1>; - }; - - phy@fed60000 { - clock-names = "ref\0apb"; - resets = <0x02 0x485 0x02 0xc003b 0x02 0xc003c 0x02 0xc003d>; - clocks = <0x02 0x2b5 0x02 0x267>; - #phy-cells = <0x00>; - compatible = "rockchip,rk3588-hdptx-phy"; - status = "disabled"; - rockchip,grf = <0x18a>; - reg = <0x00 0xfed60000 0x00 0x2000>; - phandle = <0x101>; - reset-names = "apb\0init\0cmn\0lane"; - }; - - pvtm@fda50000 { - #address-cells = <0x01>; - #size-cells = <0x00>; - compatible = "rockchip,rk3588-bigcore1-pvtm"; - reg = <0x00 0xfda50000 0x00 0x100>; - - pvtm@1 { - clock-names = "clk\0pclk"; - clocks = <0x02 0x2c8 0x02 0x17>; - reg = <0x01>; - }; - }; - - csi2-dcphy0 { - rockchip,hw = <0x2d 0x2e>; - phy-names = "dcphy0\0dcphy1"; - compatible = "rockchip,rk3588-csi2-dphy"; - status = "disabled"; - phys = <0x2f 0x30>; - phandle = <0x20d>; - }; - - mailbox@fece0000 { - clock-names = "pclk_mailbox"; - interrupts = <0x00 0x4d 0x04 0x00 0x4e 0x04 0x00 0x4f 0x04 0x00 0x50 0x04>; - clocks = <0x02 0x4e>; - #mbox-cells = <0x01>; - compatible = "rockchip,rk3588-mailbox\0rockchip,rk3368-mailbox"; - status = "disabled"; - reg = <0x00 0xfece0000 0x00 0x200>; - phandle = <0x2e9>; - }; - - rkcif-mipi-lvds3-sditf-vir3 { - compatible = "rockchip,rkcif-sditf"; - status = "disabled"; - rockchip,cif = <0x57>; - phandle = <0x23a>; - }; - - rkcif-mipi-lvds1-sditf { - compatible = "rockchip,rkcif-sditf"; - status = "disabled"; - rockchip,cif = <0x53>; - phandle = <0x22f>; - }; - - dfi@fe060000 { - rockchip,pmu_grf = <0x104>; - compatible = "rockchip,rk3588-dfi"; - status = "disabled"; - reg = <0x00 0xfe060000 0x00 0x10000>; - phandle = <0x40>; - }; - - iommu@fdca0000 { - power-domains = <0x60 0x17>; - clock-names = "aclk\0iface"; - interrupts = <0x00 0x6d 0x04>; - clocks = <0x02 0x49 0x02 0x4b>; - #iommu-cells = <0x00>; - compatible = "rockchip,iommu-av1"; - status = "okay"; - interrupt-names = "irq_av1d_mmu"; - reg = <0x00 0xfdca0000 0x00 0x600>; - phandle = <0xce>; - }; - - mipi5-csi2 { - rockchip,hw = <0x47 0x48 0x49 0x4a 0x4b 0x4c>; - compatible = "rockchip,rk3588-mipi-csi2"; - status = "disabled"; - phandle = <0x229>; - }; - - qos@fdf35600 { - compatible = "syscon"; - reg = <0x00 0xfdf35600 0x00 0x20>; - phandle = <0x8a>; - }; - - syscon@fd5e4000 { - compatible = "rockchip,rk3588-hdptxphy-grf\0syscon"; - reg = <0x00 0xfd5e4000 0x00 0x100>; - phandle = <0x1c7>; - }; - - iommu@fdba8800 { - power-domains = <0x60 0x15>; - clock-names = "aclk\0iface"; - interrupts = <0x00 0x7d 0x04>; - clocks = <0x02 0x1b0 0x02 0x1b1>; - #iommu-cells = <0x00>; - compatible = "rockchip,iommu-v2"; - status = "okay"; - interrupt-names = "irq_jpege2_mmu"; - reg = <0x00 0xfdba8800 0x00 0x40>; - phandle = <0xbf>; - }; - - mpp-srv { - rockchip,resetgroup-count = <0x01>; - rockchip,taskqueue-count = <0x0c>; - compatible = "rockchip,mpp-service"; - status = "okay"; - phandle = <0xb8>; - }; - - cspmu@fd10c000 { - compatible = "rockchip,cspmu"; - reg = <0x00 0xfd10c000 0x00 0x1000 0x00 0xfd10d000 0x00 0x1000 0x00 0xfd10e000 0x00 0x1000 0x00 0xfd10f000 0x00 0x1000 0x00 0xfd12c000 0x00 0x1000 0x00 0xfd12d000 0x00 0x1000 0x00 0xfd12e000 0x00 0x1000 0x00 0xfd12f000 0x00 0x1000>; - phandle = <0x48e>; - }; - - pwm@febf0010 { - pinctrl-names = "active"; - pinctrl-0 = <0x172>; - clock-names = "pwm\0pclk"; - interrupts = <0x00 0x15e 0x04>; - clocks = <0x02 0x5a 0x02 0x59>; - #pwm-cells = <0x03>; - compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; - status = "disabled"; - reg = <0x00 0xfebf0010 0x00 0x10>; - phandle = <0x2da>; - }; - - iommu@fdbef000 { - power-domains = <0x60 0x11>; - rockchip,shootdown-entire; - interrupts = <0x00 0x66 0x04 0x00 0x67 0x04>; - clocks = <0x02 0x1ca 0x02 0x1c9>; - rockchip,enable-cmd-retry; - #iommu-cells = <0x00>; - compatible = "rockchip,iommu-v2"; - rockchip,disable-mmu-reset; - status = "okay"; - interrupt-names = "irq_rkvenc1_mmu0\0irq_rkvenc1_mmu1"; - reg = <0x00 0xfdbef000 0x00 0x40 0x00 0xfdbef040 0x00 0x40>; - phandle = <0xc5>; - lock-names = "aclk\0iface"; - }; - - serial@feb60000 { - reg-io-width = <0x04>; - pinctrl-names = "default"; - pinctrl-0 = <0x162>; - clock-names = "baudclk\0apb_pclk"; - interrupts = <0x00 0x14e 0x04>; - clocks = <0x02 0xbf 0x02 0xad>; - compatible = "rockchip,rk3588-uart\0snps,dw-apb-uart"; - status = "disabled"; - reg = <0x00 0xfeb60000 0x00 0x100>; - phandle = <0x2cb>; - dmas = <0x7c 0x0c 0x7c 0x0d>; - reg-shift = <0x02>; - }; - - hdmiin-sound { - rockchip,jack-det; - rockchip,cpu = <0x1ec>; - rockchip,codec = <0x1eb 0x00>; - rockchip,bitclock-master = <0x1eb>; - rockchip,card-name = "rockchip,hdmiin"; - rockchip,format = "i2s"; - compatible = "rockchip,hdmi"; - phandle = <0x4ac>; - rockchip,frame-master = <0x1eb>; - rockchip,mclk-fs = <0x80>; - }; - - i2s@fddc8000 { - power-domains = <0x60 0x19>; - clock-names = "mclk_tx\0hclk"; - assigned-clocks = <0x02 0x1ff>; - assigned-clock-parents = <0x02 0x05>; - resets = <0x02 0x391>; - interrupts = <0x00 0xbc 0x04>; - clocks = <0x02 0x201 0x02 0x1fe>; - dma-names = "tx"; - #sound-dai-cells = <0x00>; - compatible = "rockchip,rk3588-i2s-tdm"; - rockchip,playback-only; - status = "disabled"; - reg = <0x00 0xfddc8000 0x00 0x1000>; - phandle = <0x47c>; - dmas = <0xf2 0x16>; - reset-names = "tx-m"; - }; - - pcie30-avdd0v75 { - regulator-max-microvolt = <0xb71b0>; - regulator-boot-on; - regulator-always-on; - regulator-min-microvolt = <0xb71b0>; - regulator-name = "pcie30_avdd0v75"; - compatible = "regulator-fixed"; - phandle = <0x4a7>; - vin-supply = <0x1df>; - }; - - timer { - interrupts = <0x01 0x0d 0xf04 0x01 0x0e 0xf04 0x01 0x0b 0xf04 0x01 0x0a 0xf04>; - compatible = "arm,armv8-timer"; - }; - - rockchip-suspend { - rockchip,sleep-debug-en = <0x01>; - rockchip,sleep-mode-config = <0x5000604>; - compatible = "rockchip,pm-rk3588"; - status = "okay"; - rockchip,wakeup-config = <0x100>; - phandle = <0x246>; - }; - - decompress@fea80000 { - clock-names = "aclk\0dclk\0pclk"; - resets = <0x02 0x118>; - interrupts = <0x00 0x55 0x04>; - clocks = <0x02 0x75 0x02 0x77 0x02 0x76>; - compatible = "rockchip,hw-decompress"; - status = "disabled"; - reg = <0x00 0xfea80000 0x00 0x1000>; - phandle = <0x2a3>; - reset-names = "dresetn"; - }; - - dma-controller@fea30000 { - clock-names = "apb_pclk"; - interrupts = <0x00 0x58 0x04 0x00 0x59 0x04>; - clocks = <0x02 0x79>; - arm,pl330-periph-burst; - compatible = "arm,pl330\0arm,primecell"; - reg = <0x00 0xfea30000 0x00 0x4000>; - phandle = <0xf1>; - #dma-cells = <0x01>; - }; - - pwm@febf0000 { - pinctrl-names = "active"; - pinctrl-0 = <0x171>; - clock-names = "pwm\0pclk"; - interrupts = <0x00 0x15e 0x04>; - clocks = <0x02 0x5a 0x02 0x59>; - #pwm-cells = <0x03>; - compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; - status = "disabled"; - reg = <0x00 0xfebf0000 0x00 0x10>; - phandle = <0x2d9>; - }; - - iommu@fdcd8f00 { - power-domains = <0x60 0x1d>; - clock-names = "aclk\0iface\0pclk"; - interrupts = <0x00 0x8e 0x04>; - clocks = <0x02 0x1d8 0x02 0x1d9 0x02 0x1da>; - #iommu-cells = <0x00>; - compatible = "rockchip,iommu-v2"; - rockchip,disable-mmu-reset; - status = "disabled"; - interrupt-names = "fec1_mmu"; - reg = <0x00 0xfdcd8f00 0x00 0x100>; - phandle = <0xd3>; - }; - - spdif-tx@fddb0000 { - power-domains = <0x60 0x19>; - clock-names = "mclk\0hclk"; - assigned-clocks = <0x02 0x205>; - assigned-clock-parents = <0x02 0x05>; - interrupts = <0x00 0xc3 0x04>; - clocks = <0x02 0x209 0x02 0x204>; - dma-names = "tx"; - #sound-dai-cells = <0x00>; - compatible = "rockchip,rk3588-spdif\0rockchip,rk3568-spdif"; - status = "disabled"; - reg = <0x00 0xfddb0000 0x00 0x1000>; - phandle = <0x1d5>; - dmas = <0xf1 0x06>; - }; - - rkisp1-vir2 { - rockchip,hw = <0x5a>; - compatible = "rockchip,rkisp-vir"; - status = "disabled"; - phandle = <0x241>; - }; - - pcie-clk1 { - regulator-boot-on; - regulator-always-on; - regulator-name = "pcie_clk1"; - compatible = "regulator-fixed"; - status = "okay"; - phandle = <0x494>; - vin-supply = <0x1cd>; - gpios = <0x181 0x15 0x01>; - }; - - jpege-core@fdba8000 { - power-domains = <0x60 0x15>; - iommus = <0xbf>; - rockchip,ccu = <0xbd>; - clock-names = "aclk_vcodec\0hclk_vcodec"; - assigned-clocks = <0x02 0x1b0>; - rockchip,normal-rates = <0x2367b880 0x00>; - assigned-clock-rates = <0x2367b880>; - resets = <0x02 0x2ce 0x02 0x2cf>; - interrupts = <0x00 0x7e 0x04>; - clocks = <0x02 0x1b0 0x02 0x1b1>; - rockchip,srv = <0xb8>; - rockchip,taskqueue-node = <0x02>; - rockchip,disable-auto-freq; - compatible = "rockchip,vpu-jpege-core"; - status = "okay"; - interrupt-names = "irq_jpege2"; - rockchip,skip-pmu-idle-request; - reg = <0x00 0xfdba8000 0x00 0x400>; - phandle = <0x26f>; - reset-names = "video_a\0video_h"; - }; - - qos@fdf66400 { - compatible = "syscon"; - reg = <0x00 0xfdf66400 0x00 0x20>; - phandle = <0x95>; - }; - - spdif-tx1-sound { - simple-audio-card,name = "rockchip,spdif-tx1"; - compatible = "simple-audio-card"; - status = "disabled"; - phandle = <0x49d>; - simple-audio-card,mclk-fs = <0x80>; - - simple-audio-card,cpu { - sound-dai = <0x1d7>; - }; - - simple-audio-card,codec { - sound-dai = <0x1d8>; - }; - }; - - mmc@fe2e0000 { - mmc-hs400-enhanced-strobe; - clock-names = "core\0bus\0axi\0block\0timer"; - assigned-clocks = <0x02 0x13b 0x02 0x13c 0x02 0x13a>; - bus-width = <0x08>; - non-removable; - no-sdio; - assigned-clock-rates = <0xbebc200 0x16e3600 0xbebc200>; - resets = <0x02 0x1f6 0x02 0x1f4 0x02 0x1f5 0x02 0x1f7 0x02 0x1f8>; - mmc-hs400-1_8v; - interrupts = <0x00 0xcd 0x04>; - clocks = <0x02 0x13a 0x02 0x138 0x02 0x139 0x02 0x13b 0x02 0x13c>; - no-sd; - compatible = "rockchip,rk3588-dwcmshc\0rockchip,dwcmshc-sdhci"; - status = "okay"; - reg = <0x00 0xfe2e0000 0x00 0x10000>; - phandle = <0x295>; - max-frequency = <0xbebc200>; - reset-names = "core\0bus\0axi\0block\0timer"; - }; - - dma-controller@fed10000 { - clock-names = "apb_pclk"; - interrupts = <0x00 0x5a 0x04 0x00 0x5b 0x04>; - clocks = <0x02 0x7a>; - arm,pl330-periph-burst; - compatible = "arm,pl330\0arm,primecell"; - reg = <0x00 0xfed10000 0x00 0x4000>; - phandle = <0xf2>; - #dma-cells = <0x01>; - }; - - iommu@fc900000 { - interrupts = <0x00 0x171 0x04 0x00 0x173 0x04 0x00 0x176 0x04 0x00 0x16f 0x04>; - #iommu-cells = <0x01>; - compatible = "arm,smmu-v3"; - status = "disabled"; - interrupt-names = "eventq\0gerror\0priq\0cmdq-sync"; - reg = <0x00 0xfc900000 0x00 0x200000>; - phandle = <0x256>; - }; - - mailbox@fec70000 { - clock-names = "pclk_mailbox"; - interrupts = <0x00 0x45 0x04 0x00 0x46 0x04 0x00 0x47 0x04 0x00 0x48 0x04>; - clocks = <0x02 0x4d>; - #mbox-cells = <0x01>; - compatible = "rockchip,rk3588-mailbox\0rockchip,rk3368-mailbox"; - status = "disabled"; - reg = <0x00 0xfec70000 0x00 0x200>; - phandle = <0x2de>; - }; - - pcie@fe150000 { - power-domains = <0x60 0x22>; - vpcie3v3-supply = <0x1b8>; - #address-cells = <0x03>; - rockchip,pipe-grf = <0x76>; - phy-names = "pcie-phy"; - bus-range = <0x00 0x0f>; - clock-names = "aclk_mst\0aclk_slv\0aclk_dbi\0pclk\0aux\0pipe"; - reg-names = "pcie-apb\0pcie-dbi"; - num-ob-windows = <0x10>; - resets = <0x02 0x20d 0x02 0x21c>; - interrupts = <0x00 0x107 0x04 0x00 0x106 0x04 0x00 0x105 0x04 0x00 0x104 0x04 0x00 0x103 0x04>; - clocks = <0x02 0x14e 0x02 0x153 0x02 0x149 0x02 0x158 0x02 0x15e 0x02 0x183>; - interrupt-map = <0x00 0x00 0x00 0x01 0x1b5 0x00 0x00 0x00 0x00 0x02 0x1b5 0x01 0x00 0x00 0x00 0x03 0x1b5 0x02 0x00 0x00 0x00 0x04 0x1b5 0x03>; - #size-cells = <0x02>; - max-link-speed = <0x03>; - device_type = "pci"; - interrupt-map-mask = <0x00 0x00 0x00 0x07>; - reset-gpios = <0x10d 0x0e 0x00>; - num-lanes = <0x01>; - compatible = "rockchip,rk3588-pcie\0snps,dw-pcie"; - ranges = <0x800 0x00 0xf0000000 0x00 0xf0000000 0x00 0x100000 0x81000000 0x00 0xf0100000 0x00 0xf0100000 0x00 0x100000 0x82000000 0x00 0xf0200000 0x00 0xf0200000 0x00 0xe00000 0xc3000000 0x09 0x00 0x09 0x00 0x00 0x40000000>; - msi-map = <0x00 0x1b6 0x00 0x1000>; - #interrupt-cells = <0x01>; - status = "okay"; - interrupt-names = "sys\0pmc\0msg\0legacy\0err"; - phys = <0x1b7>; - num-viewport = <0x08>; - reg = <0x00 0xfe150000 0x00 0x10000 0x0a 0x40000000 0x00 0x400000>; - linux,pci-domain = <0x00>; - phandle = <0x485>; - reset-names = "pcie\0periph"; - num-ib-windows = <0x10>; - - legacy-interrupt-controller { - #address-cells = <0x00>; - interrupts = <0x00 0x104 0x01>; - interrupt-parent = <0x01>; - #interrupt-cells = <0x01>; - phandle = <0x1b5>; - interrupt-controller; - }; - }; - - rng@fe378000 { - clock-names = "hclk_trng"; - resets = <0x11a 0x30>; - interrupts = <0x00 0x190 0x04>; - clocks = <0x0e 0x0c>; - compatible = "rockchip,trngv1"; - status = "okay"; - reg = <0x00 0xfe378000 0x00 0x200>; - phandle = <0x297>; - reset-names = "reset"; - }; - - sata@fe220000 { - phy-names = "sata-phy"; - clock-names = "sata\0pmalive\0rxoob\0ref\0asic"; - interrupts = <0x00 0x112 0x04>; - clocks = <0x02 0x172 0x02 0x16f 0x02 0x175 0x02 0x164 0x02 0x17f>; - compatible = "rockchip,rk-ahci\0snps,dwc-ahci"; - status = "disabled"; - interrupt-names = "hostc"; - phys = <0x1bc 0x01>; - reg = <0x00 0xfe220000 0x00 0x1000>; - phandle = <0x48a>; - ports-implemented = <0x01>; - }; - - rkcif-mipi-lvds5 { - iommus = <0x50>; - rockchip,hw = <0x4f>; - compatible = "rockchip,rkcif-mipi-lvds"; - status = "disabled"; - phandle = <0x1a2>; - }; - - vcc-sata-pwr-en-regulator { - regulator-max-microvolt = <0x325aa0>; - regulator-boot-on; - gpio = <0x182 0x0c 0x00>; - regulator-always-on; - enable-active-high; - regulator-min-microvolt = <0x325aa0>; - regulator-name = "vcc_sata_pwr_en"; - startup-delay-us = <0x1388>; - compatible = "regulator-fixed"; - status = "okay"; - phandle = <0x4a3>; - vin-supply = <0x1cd>; - }; - - pwm-fan { - cooling-levels = <0x32 0x32 0x64 0x96 0xc8 0xff>; - rockchip,temp-trips = <0xc350 0x01 0xd6d8 0x02 0xea60 0x03 0xfde8 0x04 0x11170 0x05>; - compatible = "pwm-fan"; - phandle = <0x4ad>; - pwms = <0x1ed 0x00 0xc350 0x00>; - #cooling-cells = <0x02>; - fan-supply = <0x78>; - }; - - qos@fdf3e200 { - compatible = "syscon"; - reg = <0x00 0xfdf3e200 0x00 0x20>; - phandle = <0xab>; - }; - - spdif-tx@fe4e0000 { - power-domains = <0x60 0x26>; - pinctrl-names = "default"; - pinctrl-0 = <0x142>; - clock-names = "mclk\0hclk"; - assigned-clocks = <0x02 0x3f>; - assigned-clock-parents = <0x02 0x05>; - interrupts = <0x00 0xc1 0x04>; - clocks = <0x02 0x41 0x02 0x3e>; - dma-names = "tx"; - #sound-dai-cells = <0x00>; - compatible = "rockchip,rk3588-spdif\0rockchip,rk3568-spdif"; - status = "disabled"; - reg = <0x00 0xfe4e0000 0x00 0x1000>; - phandle = <0x29d>; - dmas = <0x7c 0x05>; - }; - - vad@fe4d0000 { - rockchip,det-channel = <0x00>; - rockchip,audio-src = <0x00>; - clock-names = "hclk"; - reg-names = "vad"; - interrupts = <0x00 0xca 0x04>; - clocks = <0x02 0x2a0>; - #sound-dai-cells = <0x00>; - compatible = "rockchip,rk3588-vad"; - status = "disabled"; - rockchip,mode = <0x00>; - reg = <0x00 0xfe4d0000 0x00 0x1000>; - phandle = <0x29c>; - }; - - jpegd@fdb90000 { - power-domains = <0x60 0x15>; - iommus = <0xbb>; - clock-names = "aclk_vcodec\0hclk_vcodec"; - assigned-clocks = <0x02 0x1b4>; - rockchip,normal-rates = <0x23c34600 0x00>; - assigned-clock-rates = <0x23c34600>; - resets = <0x02 0x2d2 0x02 0x2d3>; - interrupts = <0x00 0x81 0x04>; - clocks = <0x02 0x1b4 0x02 0x1b5>; - rockchip,srv = <0xb8>; - rockchip,taskqueue-node = <0x01>; - compatible = "rockchip,rkv-jpeg-decoder-v1"; - status = "okay"; - interrupt-names = "irq_jpegd"; - rockchip,skip-pmu-idle-request; - reg = <0x00 0xfdb90000 0x00 0x400>; - phandle = <0x26c>; - reset-names = "video_a\0video_h"; - }; - - cpuinfo { - nvmem-cells = <0x2a 0x2b 0x2c>; - compatible = "rockchip,cpuinfo"; - nvmem-cell-names = "id\0cpu-version\0cpu-code"; - }; - - qos@fdf60400 { - compatible = "syscon"; - reg = <0x00 0xfdf60400 0x00 0x20>; - phandle = <0x8f>; - }; - - spi@feb20000 { - pinctrl-names = "default"; - #address-cells = <0x01>; - num-cs = <0x01>; - pinctrl-0 = <0x154 0x155>; - clock-names = "spiclk\0apb_pclk"; - assigned-clocks = <0x02 0xa5>; - assigned-clock-rates = <0xbebc200>; - interrupts = <0x00 0x148 0x04>; - clocks = <0x02 0xa5 0x02 0xa0>; - #size-cells = <0x00>; - dma-names = "tx\0rx"; - compatible = "rockchip,rk3066-spi"; - status = "okay"; - reg = <0x00 0xfeb20000 0x00 0x1000>; - phandle = <0x2ad>; - dmas = <0xf1 0x0f 0xf1 0x10>; - - rk806single@0 { - vcc11-supply = <0x15b>; - pinctrl-names = "default\0pmic-power-off"; - vcc12-supply = <0x78>; - vcc13-supply = <0x15c>; - vcc14-supply = <0x15c>; - pinctrl-0 = <0x156 0x157 0x158 0x159>; - interrupts = <0x07 0x08>; - spi-max-frequency = <0xf4240>; - interrupt-parent = <0x7b>; - low_voltage_threshold = <0xbb8>; - vcca-supply = <0x78>; - vcc1-supply = <0x78>; - pmic-reset-func = <0x01>; - vcc2-supply = <0x78>; - hotdie_temperture_threshold = <0x73>; - compatible = "rockchip,rk806"; - vcc3-supply = <0x78>; - pinctrl-1 = <0x15a>; - vcc4-supply = <0x78>; - vcc5-supply = <0x78>; - reg = <0x00>; - phandle = <0x2ae>; - vcc6-supply = <0x78>; - shutdown_voltage_threshold = <0xa8c>; - vcc7-supply = <0x78>; - vcc8-supply = <0x78>; - shutdown_temperture_threshold = <0xa0>; - vcc9-supply = <0x78>; - vcc10-supply = <0x78>; - - pinctrl_rk806 { - gpio-controller; - phandle = <0x2af>; - #gpio-cells = <0x02>; - - rk806_dvs2_rst { - function = "pin_fun3"; - pins = "gpio_pwrctrl2"; - phandle = <0x2b4>; - }; - - rk806_dvs3_null { - function = "pin_fun0"; - pins = "gpio_pwrctrl3"; - phandle = <0x159>; - }; - - rk806_dvs3_dvs { - function = "pin_fun4"; - pins = "gpio_pwrctrl3"; - phandle = <0x2ba>; - }; - - rk806_dvs3_rst { - function = "pin_fun3"; - pins = "gpio_pwrctrl3"; - phandle = <0x2b9>; - }; - - rk806_dvs2_null { - function = "pin_fun0"; - pins = "gpio_pwrctrl2"; - phandle = <0x158>; - }; - - rk806_dvs1_pwrdn { - function = "pin_fun2"; - pins = "gpio_pwrctrl1"; - phandle = <0x15a>; - }; - - rk806_dvs1_slp { - function = "pin_fun1"; - pins = "gpio_pwrctrl1"; - phandle = <0x2b0>; - }; - - rk806_dvs1_null { - function = "pin_fun0"; - pins = "gpio_pwrctrl2"; - phandle = <0x157>; - }; - - rk806_dvs3_gpio { - function = "pin_fun5"; - pins = "gpio_pwrctrl3"; - phandle = <0x2bb>; - }; - - rk806_dvs2_gpio { - function = "pin_fun5"; - pins = "gpio_pwrctrl2"; - phandle = <0x2b6>; - }; - - rk806_dvs2_slp { - function = "pin_fun1"; - pins = "gpio_pwrctrl2"; - phandle = <0x2b2>; - }; - - rk806_dvs2_pwrdn { - function = "pin_fun2"; - pins = "gpio_pwrctrl2"; - phandle = <0x2b3>; - }; - - rk806_dvs1_rst { - function = "pin_fun3"; - pins = "gpio_pwrctrl1"; - phandle = <0x2b1>; - }; - - rk806_dvs3_slp { - function = "pin_fun1"; - pins = "gpio_pwrctrl3"; - phandle = <0x2b7>; - }; - - rk806_dvs2_dvs { - function = "pin_fun4"; - pins = "gpio_pwrctrl2"; - phandle = <0x2b5>; - }; - - rk806_dvs3_pwrdn { - function = "pin_fun2"; - pins = "gpio_pwrctrl3"; - phandle = <0x2b8>; - }; - }; - - pwrkey { - status = "okay"; - }; - - regulators { - - PLDO_REG2 { - regulator-max-microvolt = <0x1b7740>; - regulator-boot-on; - regulator-always-on; - regulator-min-microvolt = <0x1b7740>; - regulator-name = "vcc_1v8_s0"; - phandle = <0x177>; - - regulator-state-mem { - regulator-off-in-suspend; - regulator-suspend-microvolt = <0x1b7740>; - }; - }; - - DCDC_REG4 { - regulator-max-microvolt = <0xe7ef0>; - regulator-boot-on; - regulator-init-microvolt = <0xb71b0>; - regulator-always-on; - regulator-min-microvolt = <0x86470>; - regulator-name = "vdd_vdenc_s0"; - regulator-ramp-delay = <0x30d4>; - phandle = <0x2bc>; - - regulator-state-mem { - regulator-off-in-suspend; - }; - }; - - DCDC_REG2 { - regulator-max-microvolt = <0xe7ef0>; - regulator-boot-on; - regulator-always-on; - regulator-min-microvolt = <0x86470>; - regulator-name = "vdd_cpu_lit_s0"; - regulator-ramp-delay = <0x30d4>; - phandle = <0x12>; - - regulator-state-mem { - regulator-off-in-suspend; - }; - }; - - NLDO_REG4 { - regulator-max-microvolt = <0xcf850>; - regulator-boot-on; - regulator-always-on; - regulator-min-microvolt = <0xcf850>; - regulator-name = "vdd_0v85_s0"; - phandle = <0x2c6>; - - regulator-state-mem { - regulator-off-in-suspend; - }; - }; - - DCDC_REG9 { - regulator-boot-on; - regulator-always-on; - regulator-name = "vddq_ddr_s0"; - phandle = <0x2bf>; - - regulator-state-mem { - regulator-off-in-suspend; - }; - }; - - NLDO_REG2 { - regulator-max-microvolt = <0xcf850>; - regulator-boot-on; - regulator-always-on; - regulator-min-microvolt = <0xcf850>; - regulator-name = "vdd_ddr_pll_s0"; - phandle = <0x2c5>; - - regulator-state-mem { - regulator-off-in-suspend; - regulator-suspend-microvolt = <0xcf850>; - }; - }; - - PLDO_REG5 { - regulator-max-microvolt = <0x325aa0>; - regulator-boot-on; - regulator-always-on; - regulator-min-microvolt = <0x1b7740>; - regulator-name = "vccio_sd_s0"; - phandle = <0x118>; - - regulator-state-mem { - regulator-off-in-suspend; - }; - }; - - DCDC_REG7 { - regulator-max-microvolt = <0x1e8480>; - regulator-boot-on; - regulator-always-on; - regulator-min-microvolt = <0x1e8480>; - regulator-name = "vdd_2v0_pldo_s3"; - phandle = <0x15b>; - - regulator-state-mem { - regulator-suspend-microvolt = <0x1e8480>; - regulator-on-in-suspend; - }; - }; - - PLDO_REG3 { - regulator-max-microvolt = <0x124f80>; - regulator-boot-on; - regulator-always-on; - regulator-min-microvolt = <0x124f80>; - regulator-name = "avdd_1v2_s0"; - phandle = <0x2c1>; - - regulator-state-mem { - regulator-off-in-suspend; - }; - }; - - DCDC_REG5 { - regulator-max-microvolt = <0xdbba0>; - regulator-boot-on; - regulator-always-on; - regulator-min-microvolt = <0xa4cb8>; - regulator-name = "vdd_ddr_s0"; - regulator-ramp-delay = <0x30d4>; - phandle = <0x42>; - - regulator-state-mem { - regulator-off-in-suspend; - regulator-suspend-microvolt = <0xcf850>; - }; - }; - - DCDC_REG10 { - regulator-max-microvolt = <0x1b7740>; - regulator-boot-on; - regulator-always-on; - regulator-min-microvolt = <0x1b7740>; - regulator-name = "vcc_1v8_s3"; - phandle = <0x2c0>; - - regulator-state-mem { - regulator-suspend-microvolt = <0x1b7740>; - regulator-on-in-suspend; - }; - }; - - PLDO_REG1 { - regulator-max-microvolt = <0x1b7740>; - regulator-boot-on; - regulator-always-on; - regulator-min-microvolt = <0x1b7740>; - regulator-name = "avcc_1v8_s0"; - phandle = <0x1de>; - - regulator-state-mem { - regulator-off-in-suspend; - }; - }; - - DCDC_REG3 { - regulator-max-microvolt = <0xb71b0>; - regulator-boot-on; - regulator-always-on; - regulator-min-microvolt = <0xa4cb8>; - regulator-name = "vdd_log_s0"; - regulator-ramp-delay = <0x30d4>; - phandle = <0x43>; - - regulator-state-mem { - regulator-suspend-microvolt = <0xb71b0>; - regulator-on-in-suspend; - }; - }; - - DCDC_REG1 { - regulator-max-microvolt = <0xe7ef0>; - regulator-boot-on; - regulator-enable-ramp-delay = <0x190>; - regulator-min-microvolt = <0x86470>; - regulator-name = "vdd_gpu_s0"; - regulator-ramp-delay = <0x30d4>; - phandle = <0x62>; - - regulator-state-mem { - regulator-off-in-suspend; - }; - }; - - NLDO_REG5 { - regulator-max-microvolt = <0xb71b0>; - regulator-boot-on; - regulator-always-on; - regulator-min-microvolt = <0xb71b0>; - regulator-name = "vdd_0v75_s0"; - phandle = <0x2c7>; - - regulator-state-mem { - regulator-off-in-suspend; - }; - }; - - NLDO_REG3 { - regulator-max-microvolt = <0xb71b0>; - regulator-boot-on; - regulator-always-on; - regulator-min-microvolt = <0xb71b0>; - regulator-name = "avdd_0v75_s0"; - phandle = <0x1df>; - - regulator-state-mem { - regulator-off-in-suspend; - }; - }; - - PLDO_REG6 { - regulator-max-microvolt = <0x1b7740>; - regulator-boot-on; - regulator-always-on; - regulator-min-microvolt = <0x1b7740>; - regulator-name = "pldo6_s3"; - phandle = <0x2c3>; - - regulator-state-mem { - regulator-suspend-microvolt = <0x1b7740>; - regulator-on-in-suspend; - }; - }; - - DCDC_REG8 { - regulator-max-microvolt = <0x325aa0>; - regulator-boot-on; - regulator-always-on; - regulator-min-microvolt = <0x325aa0>; - regulator-name = "vcc_3v3_s3"; - phandle = <0x2be>; - - regulator-state-mem { - regulator-suspend-microvolt = <0x325aa0>; - regulator-on-in-suspend; - }; - }; - - NLDO_REG1 { - regulator-max-microvolt = <0xb71b0>; - regulator-boot-on; - regulator-always-on; - regulator-min-microvolt = <0xb71b0>; - regulator-name = "vdd_0v75_s3"; - phandle = <0x2c4>; - - regulator-state-mem { - regulator-suspend-microvolt = <0xb71b0>; - regulator-on-in-suspend; - }; - }; - - PLDO_REG4 { - regulator-max-microvolt = <0x325aa0>; - regulator-boot-on; - regulator-always-on; - regulator-min-microvolt = <0x325aa0>; - regulator-name = "vcc_3v3_s0"; - phandle = <0x2c2>; - - regulator-state-mem { - regulator-off-in-suspend; - }; - }; - - DCDC_REG6 { - regulator-boot-on; - regulator-always-on; - regulator-name = "vdd2_ddr_s3"; - phandle = <0x2bd>; - - regulator-state-mem { - regulator-on-in-suspend; - }; - }; - }; - }; - }; - - usbhost3_0 { - #address-cells = <0x02>; - clock-names = "ref\0suspend\0bus\0utmi\0php\0pipe"; - clocks = <0x02 0x179 0x02 0x178 0x02 0x177 0x02 0x17a 0x02 0x166 0x02 0x181>; - #size-cells = <0x02>; - compatible = "rockchip,rk3588-dwc3\0rockchip,rk3399-dwc3"; - ranges; - status = "disabled"; - phandle = <0x258>; - - usb@fcd00000 { - snps,dis_enblslpm_quirk; - phy-names = "usb3-phy"; - snps,dis-u2-freeclk-exists-quirk; - phy_type = "utmi_wide"; - resets = <0x02 0x237>; - interrupts = <0x00 0xde 0x04>; - snps,dis_rxdet_inp3_quirk; - compatible = "snps,dwc3"; - snps,parkmode-disable-hs-quirk; - snps,dis-del-phy-power-chg-quirk; - status = "disabled"; - snps,parkmode-disable-ss-quirk; - phys = <0x70 0x04>; - reg = <0x00 0xfcd00000 0x00 0x400000>; - phandle = <0x259>; - dr_mode = "host"; - reset-names = "usb3-host"; - snps,dis-tx-ipgap-linecheck-quirk; - }; - }; - - pcie@fe190000 { - #address-cells = <0x03>; - rockchip,pipe-grf = <0x76>; - phy-names = "pcie-phy"; - bus-range = <0x40 0x4f>; - clock-names = "aclk_mst\0aclk_slv\0aclk_dbi\0pclk\0aux\0pipe"; - reg-names = "pcie-apb\0pcie-dbi"; - num-ob-windows = <0x08>; - resets = <0x02 0x211 0x02 0x220>; - interrupts = <0x00 0xfd 0x04 0x00 0xfc 0x04 0x00 0xfb 0x04 0x00 0xfa 0x04 0x00 0xf9 0x04>; - clocks = <0x02 0x152 0x02 0x157 0x02 0x14d 0x02 0x15d 0x02 0x162 0x02 0x182>; - interrupt-map = <0x00 0x00 0x00 0x01 0x107 0x00 0x00 0x00 0x00 0x02 0x107 0x01 0x00 0x00 0x00 0x03 0x107 0x02 0x00 0x00 0x00 0x04 0x107 0x03>; - #size-cells = <0x02>; - max-link-speed = <0x02>; - device_type = "pci"; - interrupt-map-mask = <0x00 0x00 0x00 0x07>; - num-lanes = <0x01>; - compatible = "rockchip,rk3588-pcie\0snps,dw-pcie"; - ranges = <0x800 0x00 0xf4000000 0x00 0xf4000000 0x00 0x100000 0x81000000 0x00 0xf4100000 0x00 0xf4100000 0x00 0x100000 0x82000000 0x00 0xf4200000 0x00 0xf4200000 0x00 0xe00000 0xc3000000 0x0a 0x00 0x0a 0x00 0x00 0x40000000>; - msi-map = <0x4000 0x106 0x4000 0x1000>; - #interrupt-cells = <0x01>; - status = "disabled"; - interrupt-names = "sys\0pmc\0msg\0legacy\0err"; - phys = <0x108 0x02>; - num-viewport = <0x04>; - reg = <0x00 0xfe190000 0x00 0x10000 0x0a 0x41000000 0x00 0x400000>; - linux,pci-domain = <0x04>; - phandle = <0x28d>; - reset-names = "pcie\0periph"; - num-ib-windows = <0x08>; - - legacy-interrupt-controller { - #address-cells = <0x00>; - interrupts = <0x00 0xfa 0x01>; - interrupt-parent = <0x01>; - #interrupt-cells = <0x01>; - phandle = <0x107>; - interrupt-controller; - }; - }; - - rkcif-mipi-lvds3-sditf-vir1 { - compatible = "rockchip,rkcif-sditf"; - status = "disabled"; - rockchip,cif = <0x57>; - phandle = <0x238>; - }; - - aliases { - i2c3 = "/i2c@feab0000"; - ethernet0 = "/ethernet@fe1b0000"; - pwm9 = "/pwm@febe0010"; - pwm14 = "/pwm@febf0020"; - spi2 = "/spi@feb20000"; - usbdp0 = "/phy@fed80000"; - gpio0 = "/pinctrl/gpio@fd8a0000"; - dsi1 = "/dsi@fde30000"; - hdmi1 = "/hdmi@fdea0000"; - serial7 = "/serial@feba0000"; - i2c1 = "/i2c@fea90000"; - pwm7 = "/pwm@febd0030"; - pwm12 = "/pwm@febf0000"; - jpege3 = "/jpege-core@fdbac000"; - spi0 = "/spi@feb00000"; - hdptx1 = "/phy@fed70000"; - csi2dphy5 = "/csi2-dphy5"; - serial5 = "/serial@feb80000"; - csi2dcphy1 = "/csi2-dcphy1"; - pwm5 = "/pwm@febd0010"; - mmc1 = "/mmc@fe2c0000"; - pwm10 = "/pwm@febe0020"; - jpege1 = "/jpege-core@fdba4000"; - rkcif_mipi_lvds4 = "/rkcif-mipi-lvds4"; - i2c8 = "/i2c@feca0000"; - dp0 = "/dp@fde50000"; - csi2dphy3 = "/csi2-dphy3"; - serial3 = "/serial@feb60000"; - edp0 = "/edp@fdec0000"; - pwm3 = "/pwm@fd8b0030"; - hdcp1 = "/hdcp@fde70000"; - rkcif_mipi_lvds2 = "/rkcif-mipi-lvds2"; - i2c6 = "/i2c@fec80000"; - csi2dphy1 = "/csi2-dphy1"; - serial1 = "/serial@feb40000"; - pwm1 = "/pwm@fd8b0010"; - rkvenc0 = "/rkvenc-core@fdbd0000"; - spi5 = "/spi@fe2b0000"; - gpio3 = "/pinctrl/gpio@fec40000"; - hdptxhdmi1 = "/hdmiphy@fed70000"; - rkcif_mipi_lvds0 = "/rkcif-mipi-lvds"; - i2c4 = "/i2c@feac0000"; - rkvdec0 = "/rkvdec-core@fdc38000"; - pwm15 = "/pwm@febf0030"; - hdmirx0 = "/hdmirx-controller@fdee0000"; - spi3 = "/spi@feb30000"; - usbdp1 = "/phy@fed90000"; - gpio1 = "/pinctrl/gpio@fec20000"; - serial8 = "/serial@febb0000"; - i2c2 = "/i2c@feaa0000"; - pwm8 = "/pwm@febe0000"; - pwm13 = "/pwm@febf0010"; - spi1 = "/spi@feb10000"; - dsi0 = "/dsi@fde20000"; - hdmi0 = "/hdmi@fde80000"; - serial6 = "/serial@feb90000"; - i2c0 = "/i2c@fd880000"; - pwm6 = "/pwm@febd0020"; - mmc2 = "/mmc@fe2d0000"; - pwm11 = "/pwm@febe0030"; - jpege2 = "/jpege-core@fdba8000"; - hdptx0 = "/phy@fed60000"; - rkcif_mipi_lvds5 = "/rkcif-mipi-lvds5"; - dp1 = "/dp@fde60000"; - csi2dphy4 = "/csi2-dphy4"; - serial4 = "/serial@feb70000"; - edp1 = "/edp@fded0000"; - csi2dcphy0 = "/csi2-dcphy0"; - pwm4 = "/pwm@febd0000"; - mmc0 = "/mmc@fe2e0000"; - jpege0 = "/jpege-core@fdba0000"; - rkcif_mipi_lvds3 = "/rkcif-mipi-lvds3"; - i2c7 = "/i2c@fec90000"; - csi2dphy2 = "/csi2-dphy2"; - pwm2 = "/pwm@fd8b0020"; - rkvenc1 = "/rkvenc-core@fdbe0000"; - gpio4 = "/pinctrl/gpio@fec50000"; - hdcp0 = "/hdcp@fde40000"; - rkcif_mipi_lvds1 = "/rkcif-mipi-lvds1"; - i2c5 = "/i2c@fead0000"; - csi2dphy0 = "/csi2-dphy0"; - serial0 = "/serial@fd890000"; - rkvdec1 = "/rkvdec-core@fdc48000"; - pwm0 = "/pwm@fd8b0000"; - spi4 = "/spi@fecb0000"; - gpio2 = "/pinctrl/gpio@fec30000"; - hdptxhdmi0 = "/hdmiphy@fed60000"; - serial9 = "/serial@febc0000"; - }; - - spdif-tx@fdde8000 { - power-domains = <0x60 0x1a>; - clock-names = "mclk\0hclk"; - assigned-clocks = <0x02 0x259>; - assigned-clock-parents = <0x02 0x05>; - interrupts = <0x00 0xc5 0x04>; - clocks = <0x02 0x25c 0x02 0x258>; - dma-names = "tx"; - #sound-dai-cells = <0x00>; - compatible = "rockchip,rk3588-spdif\0rockchip,rk3568-spdif"; - status = "disabled"; - reg = <0x00 0xfdde8000 0x00 0x1000>; - phandle = <0x47d>; - dmas = <0xf1 0x08>; - }; - - i2s@fe490000 { - power-domains = <0x60 0x26>; - pinctrl-names = "default\0idle\0clk"; - pinctrl-2 = <0x12d 0x12e>; - pinctrl-0 = <0x12a 0x12b>; - clock-names = "i2s_clk\0i2s_hclk"; - assigned-clocks = <0x02 0x24>; - assigned-clock-parents = <0x02 0x05>; - interrupts = <0x00 0xb6 0x04>; - clocks = <0x02 0x27 0x02 0x22>; - dma-names = "tx\0rx"; - #sound-dai-cells = <0x00>; - compatible = "rockchip,rk3588-i2s\0rockchip,rk3066-i2s"; - pinctrl-1 = <0x12c>; - status = "disabled"; - reg = <0x00 0xfe490000 0x00 0x1000>; - phandle = <0x298>; - dmas = <0xf1 0x00 0xf1 0x01>; - rockchip,clk-trcm = <0x01>; - }; - - syscon@fd5d0000 { - #address-cells = <0x01>; - #size-cells = <0x01>; - compatible = "rockchip,rk3588-usb2phy-grf\0syscon\0simple-mfd"; - reg = <0x00 0xfd5d0000 0x00 0x4000>; - phandle = <0x18b>; - - usb2-phy@0 { - clock-output-names = "usb480m_phy0"; - clock-names = "phyclk"; - resets = <0x02 0xc0047 0x02 0x488>; - interrupts = <0x00 0x189 0x04>; - clocks = <0x02 0x2b5>; - #clock-cells = <0x00>; - rockchip,usbctrl-grf = <0x74>; - compatible = "rockchip,rk3588-usb2phy"; - status = "okay"; - reg = <0x00 0x10>; - phandle = <0x18d>; - reset-names = "phy\0apb"; - - otg-port { - #phy-cells = <0x00>; - rockchip,typec-vbus-det; - status = "okay"; - phandle = <0x66>; - }; - }; - }; - - i2c@feac0000 { - pinctrl-names = "default"; - #address-cells = <0x01>; - pinctrl-0 = <0x14b>; - clock-names = "i2c\0pclk"; - resets = <0x02 0xb3 0x02 0xab>; - interrupts = <0x00 0x141 0x04>; - clocks = <0x02 0x90 0x02 0x88>; - #size-cells = <0x00>; - compatible = "rockchip,rk3588-i2c\0rockchip,rk3399-i2c"; - status = "okay"; - reg = <0x00 0xfeac0000 0x00 0x1000>; - phandle = <0x2a7>; - reset-names = "i2c\0apb"; - - pc9202@3c { - pinctrl-names = "default"; - pinctrl-0 = <0x14c>; - index = <0x01>; - compatible = "firefly,pc9202"; - status = "okay"; - wd-en-gpio = <0x7b 0x14 0x00>; - driver-names = "wdt_base"; - reg = <0x3c>; - }; - }; - - rkcif-mipi-lvds5-sditf { - compatible = "rockchip,rkcif-sditf"; - status = "disabled"; - rockchip,cif = <0x1a2>; - phandle = <0x476>; - }; - - firmware { - - optee { - method = "smc"; - compatible = "linaro,optee-tz"; - phandle = <0x222>; - }; - - sdei { - method = "smc"; - compatible = "arm,sdei-1.0"; - phandle = <0x221>; - }; - - scmi { - shmem = <0x46>; - #address-cells = <0x01>; - #size-cells = <0x00>; - compatible = "arm,scmi-smc"; - phandle = <0x220>; - arm,smc-id = <0x82000010>; - - protocol@16 { - #reset-cells = <0x01>; - reg = <0x16>; - phandle = <0x11a>; - }; - - protocol@14 { - assigned-clocks = <0x0e 0x00 0x0e 0x02 0x0e 0x03>; - assigned-clock-rates = <0x30a32c00 0x30a32c00 0x30a32c00>; - #clock-cells = <0x01>; - reg = <0x14>; - phandle = <0x0e>; - }; - }; - }; - - rkvenc-core@fdbd0000 { - power-domains = <0x60 0x10>; - iommus = <0xc2>; - rockchip,ccu = <0xc3>; - clock-names = "aclk_vcodec\0hclk_vcodec\0clk_core"; - assigned-clocks = <0x02 0x1c5 0x02 0x1c6>; - rockchip,task-capacity = <0x08>; - rockchip,normal-rates = <0x1dcd6500 0x00 0x2faf0800>; - assigned-clock-rates = <0x1dcd6500 0x2faf0800>; - resets = <0x02 0x2f5 0x02 0x2f4 0x02 0x2f6>; - interrupts = <0x00 0x65 0x04>; - clocks = <0x02 0x1c5 0x02 0x1c4 0x02 0x1c6>; - rockchip,srv = <0xb8>; - rockchip,taskqueue-node = <0x07>; - compatible = "rockchip,rkv-encoder-v2-core"; - status = "okay"; - interrupt-names = "irq_rkvenc0"; - rockchip,skip-pmu-idle-request; - reg = <0x00 0xfdbd0000 0x00 0x6000>; - phandle = <0x272>; - reset-names = "video_a\0video_h\0video_core"; - operating-points-v2 = <0xc4>; - }; - - iommu@fdcc7f00 { - power-domains = <0x60 0x1c>; - clock-names = "aclk\0iface"; - interrupts = <0x00 0x88 0x04>; - clocks = <0x02 0x120 0x02 0x121>; - #iommu-cells = <0x00>; - compatible = "rockchip,iommu-v2"; - rockchip,disable-mmu-reset; - status = "disabled"; - interrupt-names = "isp1_mmu"; - reg = <0x00 0xfdcc7f00 0x00 0x100>; - phandle = <0xd1>; - }; - - rkcif-mipi-lvds-sditf { - compatible = "rockchip,rkcif-sditf"; - status = "disabled"; - rockchip,cif = <0x52>; - phandle = <0x22b>; - }; - - syscon@fd5c8000 { - compatible = "rockchip,rk3588-usbdpphy-grf\0syscon"; - reg = <0x00 0xfd5c8000 0x00 0x4000>; - phandle = <0x18c>; - }; - - gpu@fb000000 { - power-domains = <0x60 0x0c>; - downdifferential = <0x0a>; - mali-supply = <0x62>; - clock-names = "clk_mali\0clk_gpu_coregroup\0clk_gpu_stacks\0clk_gpu"; - assigned-clocks = <0x0e 0x05>; - assigned-clock-rates = <0xbebc200>; - interrupts = <0x00 0x5e 0x04 0x00 0x5d 0x04 0x00 0x5c 0x04>; - clocks = <0x0e 0x05 0x02 0x115 0x02 0x116 0x02 0x114>; - upthreshold = <0x1e>; - compatible = "arm,mali-bifrost"; - dynamic-power-coefficient = <0xba6>; - status = "okay"; - interrupt-names = "GPU\0MMU\0JOB"; - mem-supply = <0x62>; - reg = <0x00 0xfb000000 0x00 0x200000>; - phandle = <0x5f>; - operating-points-v2 = <0x61>; - #cooling-cells = <0x02>; - }; - - csi2-dphy4 { - rockchip,hw = <0x2d 0x2e>; - phy-names = "dcphy0\0dcphy1"; - compatible = "rockchip,rk3588-csi2-dphy"; - status = "disabled"; - phys = <0x2f 0x30>; - phandle = <0x213>; - }; - - mipi4-csi2-hw@fdd50000 { - clock-names = "pclk_csi2host"; - reg-names = "csihost_regs"; - resets = <0x02 0x328>; - interrupts = <0x00 0x97 0x04 0x00 0x98 0x04>; - clocks = <0x02 0x1d3>; - compatible = "rockchip,rk3588-mipi-csi2-hw"; - status = "okay"; - interrupt-names = "csi-intr1\0csi-intr2"; - reg = <0x00 0xfdd50000 0x00 0x10000>; - phandle = <0x4b>; - reset-names = "srst_csihost_p"; - }; - - qos@fdf82000 { - compatible = "syscon"; - reg = <0x00 0xfdf82000 0x00 0x20>; - phandle = <0x9d>; - }; - - rkcif-mipi-lvds2-sditf-vir2 { - compatible = "rockchip,rkcif-sditf"; - status = "disabled"; - rockchip,cif = <0x55>; - phandle = <0x235>; - }; - - rkisp1-vir0 { - rockchip,hw = <0x5a>; - compatible = "rockchip,rkisp-vir"; - status = "disabled"; - phandle = <0x23f>; - }; - - qos@fdf41100 { - compatible = "syscon"; - reg = <0x00 0xfdf41100 0x00 0x20>; - phandle = <0xa7>; - }; - - test-power { - status = "okay"; - }; - - usb-5v { - pinctrl-names = "default"; - regulator-boot-on; - gpio = <0xfe 0x03 0x00>; - pinctrl-0 = <0x1ef>; - regulator-always-on; - enable-active-high; - regulator-name = "usb_5v"; - compatible = "regulator-fixed"; - status = "okay"; - phandle = <0x4b1>; - }; - - phy@feda0000 { - clock-names = "pclk\0ref"; - resets = <0x02 0xc0043 0x02 0x3e 0x02 0x3f 0x02 0xc0044>; - clocks = <0x02 0x108 0x02 0x2b6>; - #phy-cells = <0x00>; - compatible = "rockchip,rk3588-mipi-dcphy"; - status = "okay"; - rockchip,grf = <0x190>; - reg = <0x00 0xfeda0000 0x00 0x10000>; - phandle = <0x2f>; - reset-names = "m_phy\0apb\0grf\0s_phy"; - }; - - mod-sleep-regulator { - pinctrl-names = "default"; - regulator-boot-on; - gpio = <0x7b 0x15 0x00>; - pinctrl-0 = <0x1ee>; - regulator-always-on; - enable-active-high; - regulator-name = "mod_sleep"; - compatible = "regulator-fixed"; - status = "okay"; - phandle = <0x4ae>; - - regulator-state-mem { - regulator-on-in-suspend; - }; - }; - - qos@fdf66c00 { - compatible = "syscon"; - reg = <0x00 0xfdf66c00 0x00 0x20>; - phandle = <0x99>; - }; - - crypto@fe370000 { - clock-names = "aclk\0hclk\0sclk\0pka"; - resets = <0x11a 0x0f>; - interrupts = <0x00 0xd1 0x04>; - clocks = <0x0e 0x0b 0x0e 0x0c 0x0e 0x14 0x0e 0x15>; - compatible = "rockchip,rk3588-crypto"; - status = "disabled"; - reg = <0x00 0xfe370000 0x00 0x2000>; - phandle = <0x296>; - reset-names = "crypto-rst"; - }; - - i2s@fddf4000 { - power-domains = <0x60 0x1a>; - rockchip,always-on; - clock-names = "mclk_tx\0mclk_rx\0hclk"; - assigned-clocks = <0x02 0x249>; - assigned-clock-parents = <0x02 0x07>; - resets = <0x02 0x3ef>; - interrupts = <0x00 0xba 0x04>; - clocks = <0x02 0x24c 0x02 0x24c 0x02 0x252>; - dma-names = "tx"; - #sound-dai-cells = <0x00>; - compatible = "rockchip,rk3588-i2s-tdm"; - rockchip,playback-only; - status = "okay"; - reg = <0x00 0xfddf4000 0x00 0x1000>; - phandle = <0x1e0>; - dmas = <0xf2 0x04>; - reset-names = "tx-m"; - rockchip,hdmi-path; - }; - - mipi0-csi2-hw@fdd10000 { - clock-names = "pclk_csi2host"; - reg-names = "csihost_regs"; - resets = <0x02 0x324>; - interrupts = <0x00 0x8f 0x04 0x00 0x90 0x04>; - clocks = <0x02 0x1cf>; - compatible = "rockchip,rk3588-mipi-csi2-hw"; - status = "okay"; - interrupt-names = "csi-intr1\0csi-intr2"; - reg = <0x00 0xfdd10000 0x00 0x10000>; - phandle = <0x47>; - reset-names = "srst_csihost_p"; - }; - - mipi4-csi2 { - rockchip,hw = <0x47 0x48 0x49 0x4a 0x4b 0x4c>; - compatible = "rockchip,rk3588-mipi-csi2"; - status = "disabled"; - phandle = <0x228>; - }; - - jpege-ccu { - compatible = "rockchip,vpu-jpege-ccu"; - status = "okay"; - phandle = <0xbd>; - }; - - dsi@fde30000 { - power-domains = <0x60 0x18>; - #address-cells = <0x01>; - phy-names = "dcphy"; - clock-names = "pclk\0sys_clk"; - resets = <0x02 0x355>; - interrupts = <0x00 0xa8 0x04>; - clocks = <0x02 0x279 0x02 0x27b>; - #size-cells = <0x00>; - compatible = "rockchip,rk3588-mipi-dsi2"; - status = "disabled"; - rockchip,grf = <0xd7>; - phys = <0x30>; - reg = <0x00 0xfde30000 0x00 0x10000>; - phandle = <0x283>; - reset-names = "apb"; - - ports { - #address-cells = <0x01>; - #size-cells = <0x00>; - - port@0 { - #address-cells = <0x01>; - #size-cells = <0x00>; - reg = <0x00>; - phandle = <0x284>; - - endpoint@1 { - remote-endpoint = <0x3a>; - status = "disabled"; - reg = <0x01>; - phandle = <0xef>; - }; - - endpoint@0 { - remote-endpoint = <0xf4>; - status = "disabled"; - reg = <0x00>; - phandle = <0xea>; - }; - }; - }; - }; - - iommu@fcb00000 { - interrupts = <0x00 0x17d 0x04 0x00 0x17f 0x04 0x00 0x182 0x04 0x00 0x17b 0x04>; - #iommu-cells = <0x01>; - compatible = "arm,smmu-v3"; - status = "disabled"; - interrupt-names = "eventq\0gerror\0priq\0cmdq-sync"; - reg = <0x00 0xfcb00000 0x00 0x200000>; - phandle = <0x257>; - }; - - rkcif-mipi-lvds3 { - iommus = <0x50>; - rockchip,hw = <0x4f>; - compatible = "rockchip,rkcif-mipi-lvds"; - status = "disabled"; - phandle = <0x57>; - }; - - vcc-hub-regulator { - regulator-boot-on; - gpio = <0x182 0x01 0x00>; - regulator-always-on; - enable-active-high; - regulator-name = "vcc_hub"; - compatible = "regulator-fixed"; - status = "okay"; - phandle = <0x4af>; - }; - - syscon@fd5ac000 { - compatible = "rockchip,rk3588-usb-grf\0syscon"; - reg = <0x00 0xfd5ac000 0x00 0x4000>; - phandle = <0x74>; - }; - - qos@fdf40200 { - compatible = "syscon"; - reg = <0x00 0xfdf40200 0x00 0x20>; - phandle = <0xa9>; - }; - - rkisp@fdcb0000 { - power-domains = <0x60 0x1b>; - iommus = <0xd0>; - clock-names = "aclk_isp\0hclk_isp\0clk_isp_core\0clk_isp_core_marvin\0clk_isp_core_vicap"; - interrupts = <0x00 0x83 0x04 0x00 0x85 0x04 0x00 0x86 0x04>; - clocks = <0x02 0x1de 0x02 0x1df 0x02 0x1db 0x02 0x1dc 0x02 0x1dd>; - compatible = "rockchip,rk3588-rkisp"; - status = "okay"; - interrupt-names = "isp_irq\0mi_irq\0mipi_irq"; - reg = <0x00 0xfdcb0000 0x00 0x7f00>; - phandle = <0x58>; - }; - - serial@feba0000 { - reg-io-width = <0x04>; - pinctrl-names = "default"; - pinctrl-0 = <0x166>; - clock-names = "baudclk\0apb_pclk"; - interrupts = <0x00 0x152 0x04>; - clocks = <0x02 0xcf 0x02 0xb1>; - compatible = "rockchip,rk3588-uart\0snps,dw-apb-uart"; - status = "disabled"; - reg = <0x00 0xfeba0000 0x00 0x100>; - phandle = <0x2cf>; - dmas = <0xf2 0x07 0xf2 0x08>; - reg-shift = <0x02>; - }; - - rkcif-mipi-lvds1-sditf-vir3 { - compatible = "rockchip,rkcif-sditf"; - status = "disabled"; - rockchip,cif = <0x53>; - phandle = <0x232>; - }; - - chosen { - linux,initrd-end = <0x00 0xaac8000>; - bootargs = "storagemedia=emmc androidboot.storagemedia=emmc androidboot.mode=normal storagenode=/mmc@fe2e0000 androidboot.verifiedbootstate=orange ro rootwait console=ttyS1,115200n8 irqchip.gicv3_pseudo_nmi=0 root=PARTLABEL=rootfs rootfstype=ext4 overlayroot=device:dev=PARTLABEL=userdata,fstype=ext4,mkfs=1 coherent_pool=1m systemd.gpt_auto=0 cgroup_enable=memory swapaccount=1 net.ifnames=0 rcupdate.rcu_expedited=0 comm-05/28/2025 androidboot.fwver=ddr-v1.15-d5483af87d,spl-v1.13,bl31-v1.44,bl32-v1.15,uboot--boot clk_ignore_unused libata.force=1.00:disable"; - linux,initrd-start = <0x00 0xa200000>; - phandle = <0x48d>; - }; - - hdmi@fde80000 { - power-domains = <0x60 0x1a>; - reg-io-width = <0x04>; - pinctrl-names = "default"; - phy-names = "hdmi"; - pinctrl-0 = <0xf9 0xfa 0xfb 0xfc>; - clock-names = "pclk\0hpd\0earc\0hdmitx_ref\0aud\0dclk_vp0\0dclk_vp1\0dclk_vp2\0dclk_vp3\0hclk_vo1\0link_clk"; - resets = <0x02 0x3d0 0x02 0x49c>; - interrupts = <0x00 0xa9 0x04 0x00 0xaa 0x04 0x00 0xab 0x04 0x00 0xac 0x04 0x00 0x168 0x04>; - clocks = <0x02 0x221 0x02 0x265 0x02 0x222 0x02 0x223 0x02 0x246 0x02 0x274 0x02 0x275 0x02 0x276 0x02 0x277 0x05 0x35>; - #sound-dai-cells = <0x00>; - compatible = "rockchip,rk3588-dw-hdmi"; - status = "okay"; - rockchip,grf = <0xc8>; - phys = <0xfd>; - enable-gpios = <0xfe 0x08 0x00>; - reg = <0x00 0xfde80000 0x00 0x10000 0x00 0xfde90000 0x00 0x10000>; - phandle = <0x1d4>; - reset-names = "ref\0hdp"; - rockchip,vo1_grf = <0xd8>; - - ports { - #address-cells = <0x01>; - #size-cells = <0x00>; - - port@0 { - #address-cells = <0x01>; - #size-cells = <0x00>; - reg = <0x00>; - phandle = <0x288>; - - endpoint@1 { - remote-endpoint = <0xff>; - status = "disabled"; - reg = <0x01>; - phandle = <0xe2>; - }; - - endpoint@2 { - remote-endpoint = <0x100>; - status = "disabled"; - reg = <0x02>; - phandle = <0xe8>; - }; - - endpoint@0 { - remote-endpoint = <0x3c>; - status = "okay"; - reg = <0x00>; - phandle = <0xdc>; - }; - }; - }; - }; - - cluster2-opp-table { - rockchip,pvtm-offset = <0x18>; - rockchip,pvtm-sample-time = <0x44c>; - rockchip,pvtm-hw = <0x06>; - nvmem-cells = <0x27 0x28 0x21>; - rockchip,low-temp = <0x2710>; - rockchip,pvtm-voltage-sel-hw = <0x00 0x603 0x00 0x604 0x61c 0x01 0x61d 0x635 0x02 0x636 0x64e 0x03 0x64f 0x66c 0x04 0x66d 0x68a 0x05 0x68b 0x6a8 0x06 0x6a9 0x270f 0x07>; - rockchip,pvtm-thermal-zone = "soc-thermal"; - rockchip,pvtm-low-len-sel = <0x03>; - rockchip,high-temp-max-freq = <0x21b100>; - opp-shared; - rockchip,reboot-freq = <0x1b7740>; - rockchip,pvtm-freq = <0x188940>; - rockchip,pvtm-ref-temp = <0x19>; - low-volt-mem-read-margin = <0x04>; - volt-mem-read-margin = <0xd0bd8 0x01 0xbac48 0x02 0xa4cb8 0x03 0x78d98 0x04>; - compatible = "operating-points-v2"; - rockchip,low-temp-min-volt = <0xb71b0>; - rockchip,grf = <0x29>; - nvmem-cell-names = "leakage\0opp-info\0specification_serial_number"; - rockchip,pvtm-voltage-sel = <0x00 0x63b 0x00 0x63c 0x64f 0x01 0x650 0x668 0x02 0x669 0x68b 0x03 0x68c 0x6ae 0x04 0x6af 0x6cf 0x05 0x6d0 0x6f0 0x06 0x6f1 0x270f 0x07>; - phandle = <0x1a>; - rockchip,idle-threshold-freq = <0x21b100>; - rockchip,pvtm-temp-prop = <0x10e 0x10e>; - rockchip,temp-hysteresis = <0x1388>; - rockchip,high-temp = <0x14c08>; - rockchip,pvtm-pvtpll; - rockchip,supported-hw; - intermediate-threshold-freq = <0xf6180>; - rockchip,pvtm-volt = <0xb71b0>; - - opp-j-m-2016000000 { - opp-microvolt = <0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0>; - opp-microvolt-L6 = <0xd8acc 0xd8acc 0xe7ef0 0xd8acc 0xd8acc 0xe7ef0>; - opp-microvolt-L4 = <0xdec74 0xdec74 0xe7ef0 0xdec74 0xdec74 0xe7ef0>; - opp-microvolt-L2 = <0xe4e1c 0xe4e1c 0xe7ef0 0xe4e1c 0xe4e1c 0xe7ef0>; - opp-hz = <0x00 0x7829b800>; - opp-supported-hw = <0x06 0xffff>; - opp-microvolt-L7 = <0xd59f8 0xd59f8 0xe7ef0 0xd59f8 0xd59f8 0xe7ef0>; - opp-microvolt-L5 = <0xdbba0 0xdbba0 0xe7ef0 0xdbba0 0xdbba0 0xe7ef0>; - opp-microvolt-L3 = <0xe1d48 0xe1d48 0xe7ef0 0xe1d48 0xe1d48 0xe7ef0>; - clock-latency-ns = <0x9c40>; - opp-microvolt-L1 = <0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0>; - }; - - opp-1200000000 { - opp-microvolt = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; - opp-hz = <0x00 0x47868c00>; - opp-supported-hw = <0xf9 0xffff>; - clock-latency-ns = <0x9c40>; - }; - - opp-j-m-1416000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - opp-hz = <0x00 0x54667200>; - opp-microvolt-L0 = <0xba284 0xba284 0xe7ef0 0xba284 0xba284 0xe7ef0>; - opp-supported-hw = <0x06 0xffff>; - opp-suspend; - clock-latency-ns = <0x9c40>; - }; - - opp-1008000000 { - opp-microvolt = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; - opp-hz = <0x00 0x3c14dc00>; - opp-supported-hw = <0xf9 0xffff>; - clock-latency-ns = <0x9c40>; - }; - - opp-2256000000 { - opp-microvolt = <0xf4240 0xf4240 0xf4240 0xf4240 0xf4240 0xf4240>; - opp-hz = <0x00 0x8677d400>; - opp-supported-hw = <0xf9 0x13>; - clock-latency-ns = <0x9c40>; - }; - - opp-j-m-1200000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - opp-hz = <0x00 0x47868c00>; - opp-supported-hw = <0x06 0xffff>; - clock-latency-ns = <0x9c40>; - }; - - opp-j-m-1008000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - opp-hz = <0x00 0x3c14dc00>; - opp-supported-hw = <0x06 0xffff>; - clock-latency-ns = <0x9c40>; - }; - - opp-j-m-816000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - opp-hz = <0x00 0x30a32c00>; - opp-supported-hw = <0x06 0xffff>; - clock-latency-ns = <0x9c40>; - }; - - opp-2400000000 { - opp-microvolt = <0xf4240 0xf4240 0xf4240 0xf4240 0xf4240 0xf4240>; - opp-hz = <0x00 0x8f0d1800>; - opp-supported-hw = <0xf9 0x80>; - clock-latency-ns = <0x9c40>; - }; - - opp-1800000000 { - opp-microvolt = <0xcf850 0xcf850 0xf4240 0xcf850 0xcf850 0xf4240>; - opp-microvolt-L6 = <0xbd358 0xbd358 0xf4240 0xbd358 0xbd358 0xf4240>; - opp-microvolt-L4 = <0xc3500 0xc3500 0xf4240 0xc3500 0xc3500 0xf4240>; - opp-microvolt-L2 = <0xc96a8 0xc96a8 0xf4240 0xc96a8 0xc96a8 0xf4240>; - opp-hz = <0x00 0x6b49d200>; - opp-supported-hw = <0xf9 0xffff>; - opp-microvolt-L7 = <0xba284 0xba284 0xf4240 0xba284 0xba284 0xf4240>; - opp-microvolt-L5 = <0xc042c 0xc042c 0xf4240 0xc042c 0xc042c 0xf4240>; - opp-microvolt-L3 = <0xc65d4 0xc65d4 0xf4240 0xc65d4 0xc65d4 0xf4240>; - clock-latency-ns = <0x9c40>; - opp-microvolt-L1 = <0xcc77c 0xcc77c 0xf4240 0xcc77c 0xcc77c 0xf4240>; - }; - - opp-j-m-600000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - opp-hz = <0x00 0x23c34600>; - opp-supported-hw = <0x06 0xffff>; - clock-latency-ns = <0x9c40>; - }; - - opp-2208000000 { - opp-microvolt = <0xf116c 0xf116c 0xf4240 0xf116c 0xf116c 0xf4240>; - opp-microvolt-L6 = <0xe1d48 0xe1d48 0xf4240 0xe1d48 0xe1d48 0xf4240>; - opp-microvolt-L4 = <0xeafc4 0xeafc4 0xf4240 0xeafc4 0xeafc4 0xf4240>; - opp-hz = <0x00 0x839b6800>; - opp-supported-hw = <0xf9 0xffff>; - opp-microvolt-L7 = <0xdec74 0xdec74 0xf4240 0xdec74 0xdec74 0xf4240>; - opp-microvolt-L5 = <0xe7ef0 0xe7ef0 0xf4240 0xe7ef0 0xe7ef0 0xf4240>; - opp-microvolt-L3 = <0xee098 0xee098 0xf4240 0xee098 0xee098 0xf4240>; - clock-latency-ns = <0x9c40>; - }; - - opp-1608000000 { - opp-microvolt = <0xba284 0xba284 0xf4240 0xba284 0xba284 0xf4240>; - opp-microvolt-L6 = <0xaae60 0xaae60 0xf4240 0xaae60 0xaae60 0xf4240>; - opp-microvolt-L4 = <0xb1008 0xb1008 0xf4240 0xb1008 0xb1008 0xf4240>; - opp-microvolt-L2 = <0xb71b0 0xb71b0 0xf4240 0xb71b0 0xb71b0 0xf4240>; - opp-hz = <0x00 0x5fd82200>; - opp-supported-hw = <0xf9 0xffff>; - opp-microvolt-L7 = <0xaae60 0xaae60 0xf4240 0xaae60 0xaae60 0xf4240>; - opp-microvolt-L5 = <0xadf34 0xadf34 0xf4240 0xadf34 0xadf34 0xf4240>; - opp-microvolt-L3 = <0xb40dc 0xb40dc 0xf4240 0xb40dc 0xb40dc 0xf4240>; - clock-latency-ns = <0x9c40>; - }; - - opp-j-m-408000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - opp-hz = <0x00 0x18519600>; - opp-supported-hw = <0x06 0xffff>; - clock-latency-ns = <0x9c40>; - }; - - opp-j-m-1800000000 { - opp-microvolt = <0xd59f8 0xd59f8 0xe7ef0 0xd59f8 0xd59f8 0xe7ef0>; - opp-microvolt-L6 = <0xc3500 0xc3500 0xe7ef0 0xc3500 0xc3500 0xe7ef0>; - opp-microvolt-L4 = <0xc96a8 0xc96a8 0xe7ef0 0xc96a8 0xc96a8 0xe7ef0>; - opp-microvolt-L2 = <0xcf850 0xcf850 0xe7ef0 0xcf850 0xcf850 0xe7ef0>; - opp-hz = <0x00 0x6b49d200>; - opp-supported-hw = <0x06 0xffff>; - opp-microvolt-L7 = <0xc042c 0xc042c 0xe7ef0 0xc042c 0xc042c 0xe7ef0>; - opp-microvolt-L5 = <0xc65d4 0xc65d4 0xe7ef0 0xc65d4 0xc65d4 0xe7ef0>; - opp-microvolt-L3 = <0xcc77c 0xcc77c 0xe7ef0 0xcc77c 0xcc77c 0xe7ef0>; - clock-latency-ns = <0x9c40>; - opp-microvolt-L1 = <0xd2924 0xd2924 0xe7ef0 0xd2924 0xd2924 0xe7ef0>; - }; - - opp-2352000000 { - opp-microvolt = <0xf4240 0xf4240 0xf4240 0xf4240 0xf4240 0xf4240>; - opp-hz = <0x00 0x8c30ac00>; - opp-supported-hw = <0xf9 0x48>; - clock-latency-ns = <0x9c40>; - }; - - opp-816000000 { - opp-microvolt = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; - opp-hz = <0x00 0x30a32c00>; - opp-supported-hw = <0xf9 0xffff>; - clock-latency-ns = <0x9c40>; - }; - - opp-j-m-1608000000 { - opp-microvolt = <0xc042c 0xc042c 0xe7ef0 0xc042c 0xc042c 0xe7ef0>; - opp-microvolt-L6 = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - opp-microvolt-L4 = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - opp-microvolt-L2 = <0xbd358 0xbd358 0xe7ef0 0xbd358 0xbd358 0xe7ef0>; - opp-hz = <0x00 0x5fd82200>; - opp-supported-hw = <0x06 0xffff>; - opp-microvolt-L7 = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - opp-microvolt-L5 = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - opp-microvolt-L3 = <0xba284 0xba284 0xe7ef0 0xba284 0xba284 0xe7ef0>; - clock-latency-ns = <0x9c40>; - }; - - opp-600000000 { - opp-microvolt = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; - opp-hz = <0x00 0x23c34600>; - opp-supported-hw = <0xf9 0xffff>; - clock-latency-ns = <0x9c40>; - }; - - opp-2016000000 { - opp-microvolt = <0xe1d48 0xe1d48 0xf4240 0xe1d48 0xe1d48 0xf4240>; - opp-microvolt-L6 = <0xcf850 0xcf850 0xf4240 0xcf850 0xcf850 0xf4240>; - opp-microvolt-L4 = <0xd59f8 0xd59f8 0xf4240 0xd59f8 0xd59f8 0xf4240>; - opp-microvolt-L2 = <0xdbba0 0xdbba0 0xf4240 0xdbba0 0xdbba0 0xf4240>; - opp-hz = <0x00 0x7829b800>; - opp-supported-hw = <0xf9 0xffff>; - opp-microvolt-L7 = <0xcc77c 0xcc77c 0xf4240 0xcc77c 0xcc77c 0xf4240>; - opp-microvolt-L5 = <0xd2924 0xd2924 0xf4240 0xd2924 0xd2924 0xf4240>; - opp-microvolt-L3 = <0xd8acc 0xd8acc 0xf4240 0xd8acc 0xd8acc 0xf4240>; - clock-latency-ns = <0x9c40>; - opp-microvolt-L1 = <0xdec74 0xdec74 0xf4240 0xdec74 0xdec74 0xf4240>; - }; - - opp-1416000000 { - opp-microvolt = <0xb1008 0xb1008 0xf4240 0xb1008 0xb1008 0xf4240>; - opp-microvolt-L6 = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; - opp-microvolt-L4 = <0xaae60 0xaae60 0xf4240 0xaae60 0xaae60 0xf4240>; - opp-microvolt-L2 = <0xadf34 0xadf34 0xf4240 0xadf34 0xadf34 0xf4240>; - opp-hz = <0x00 0x54667200>; - opp-supported-hw = <0xf9 0xffff>; - opp-microvolt-L7 = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; - opp-microvolt-L5 = <0xa7d8c 0xa7d8c 0xf4240 0xa7d8c 0xa7d8c 0xf4240>; - opp-microvolt-L3 = <0xaae60 0xaae60 0xf4240 0xaae60 0xaae60 0xf4240>; - clock-latency-ns = <0x9c40>; - }; - - opp-408000000 { - opp-microvolt = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; - opp-hz = <0x00 0x18519600>; - opp-supported-hw = <0xf9 0xffff>; - opp-suspend; - clock-latency-ns = <0x9c40>; - }; - - opp-2304000000 { - opp-microvolt = <0xf4240 0xf4240 0xf4240 0xf4240 0xf4240 0xf4240>; - opp-hz = <0x00 0x89544000>; - opp-supported-hw = <0xf9 0x24>; - clock-latency-ns = <0x9c40>; - }; - }; - - rkcif-dvp { - iommus = <0x50>; - rockchip,hw = <0x4f>; - compatible = "rockchip,rkcif-dvp"; - status = "disabled"; - phandle = <0x51>; - }; - - rkisp0-vir2 { - rockchip,hw = <0x58>; - compatible = "rockchip,rkisp-vir"; - status = "okay"; - phandle = <0x23d>; - - port { - #address-cells = <0x01>; - #size-cells = <0x00>; - - endpoint@0 { - remote-endpoint = <0x59>; - reg = <0x00>; - phandle = <0x56>; - }; - }; - }; - - i2c@fea90000 { - pinctrl-names = "default"; - #address-cells = <0x01>; - pinctrl-0 = <0x148>; - clock-names = "i2c\0pclk"; - resets = <0x02 0xb0 0x02 0xa8>; - interrupts = <0x00 0x13e 0x04>; - clocks = <0x02 0x8d 0x02 0x85>; - #size-cells = <0x00>; - compatible = "rockchip,rk3588-i2c\0rockchip,rk3399-i2c"; - status = "okay"; - reg = <0x00 0xfea90000 0x00 0x1000>; - phandle = <0x2a4>; - reset-names = "i2c\0apb"; - - rk8602@42 { - regulator-max-microvolt = <0xe7ef0>; - regulator-boot-on; - rockchip,suspend-voltage-selector = <0x01>; - regulator-always-on; - regulator-min-microvolt = <0x86470>; - regulator-name = "vdd_npu_s0"; - regulator-ramp-delay = <0x8fc>; - compatible = "rockchip,rk8602"; - reg = <0x42>; - phandle = <0xb3>; - vin-supply = <0x78>; - regulator-compatible = "rk860x-reg"; - - regulator-state-mem { - regulator-off-in-suspend; - }; - }; - }; - - syscon@fd58a000 { - compatible = "rockchip,rk3588-pmu1-grf\0syscon"; - reg = <0x00 0xfd58a000 0x00 0x2000>; - phandle = <0x104>; - }; - - syscon@fd5ec000 { - compatible = "rockchip,mipi-dcphy-grf\0syscon"; - reg = <0x00 0xfd5ec000 0x00 0x4000>; - phandle = <0x191>; - }; - - venc-opp-table { - nvmem-cells = <0xc6 0xc7>; - rockchip,leakage-voltage-sel = <0x01 0x0f 0x00 0x10 0x19 0x01 0x1a 0xfe 0x02>; - volt-mem-read-margin = <0xd0bd8 0x01 0xbac48 0x02 0xa4cb8 0x03 0x78d98 0x04>; - compatible = "operating-points-v2"; - rockchip,grf = <0xc8>; - nvmem-cell-names = "leakage\0opp-info"; - phandle = <0xc4>; - - opp-800000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; - opp-microvolt-L2 = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; - opp-hz = <0x00 0x2faf0800>; - opp-microvolt-L0 = <0xc3500 0xc3500 0xcf850 0xc3500 0xc3500 0xcf850>; - opp-microvolt-L1 = <0xbd358 0xbd358 0xcf850 0xbd358 0xbd358 0xcf850>; - }; - }; - - iommu@fdc38700 { - power-domains = <0x60 0x0e>; - rockchip,shootdown-entire; - clock-names = "aclk\0iface"; - interrupts = <0x00 0x60 0x04>; - clocks = <0x02 0x190 0x02 0x18f>; - rockchip,enable-cmd-retry; - #iommu-cells = <0x00>; - compatible = "rockchip,iommu-v2"; - rockchip,disable-mmu-reset; - status = "okay"; - interrupt-names = "irq_rkvdec0_mmu"; - reg = <0x00 0xfdc38700 0x00 0x40 0x00 0xfdc38740 0x00 0x40>; - phandle = <0xc9>; - rockchip,master-handle-irq; - }; - - qos@fdf35200 { - compatible = "syscon"; - reg = <0x00 0xfdf35200 0x00 0x20>; - phandle = <0x88>; - }; - - qos@fdf71000 { - compatible = "syscon"; - reg = <0x00 0xfdf71000 0x00 0x20>; - phandle = <0x86>; - }; - - syscon@fd598000 { - compatible = "rockchip,rk3588-dsu-grf\0syscon"; - reg = <0x00 0xfd598000 0x00 0x100>; - phandle = <0x23>; - }; - - csi2-dphy2 { - rockchip,hw = <0x2d 0x2e>; - phy-names = "dcphy0\0dcphy1"; - compatible = "rockchip,rk3588-csi2-dphy"; - status = "disabled"; - phys = <0x2f 0x30>; - phandle = <0x211>; - }; - - syscon@fd5b4000 { - compatible = "rockchip,mipi-dphy-grf\0syscon"; - reg = <0x00 0xfd5b4000 0x00 0x1000>; - phandle = <0x192>; - }; - - uio@fe1b0000 { - compatible = "rockchip,uio-gmac"; - status = "disabled"; - reg = <0x00 0xfe1b0000 0x00 0x10000>; - phandle = <0x488>; - rockchip,ethernet = <0x1bd>; - }; - - iommu@fdb70f00 { - power-domains = <0x60 0x1e>; - clock-names = "aclk\0iface"; - interrupts = <0x00 0x73 0x04>; - clocks = <0x02 0x18a 0x02 0x189>; - #iommu-cells = <0x00>; - compatible = "rockchip,iommu-v2"; - status = "okay"; - interrupt-names = "rga3_1_mmu"; - reg = <0x00 0xfdb70f00 0x00 0x100>; - phandle = <0xba>; - }; - - vcc5v0-usb { - regulator-max-microvolt = <0x4c4b40>; - regulator-boot-on; - regulator-always-on; - regulator-min-microvolt = <0x4c4b40>; - regulator-name = "vcc5v0_usb"; - compatible = "regulator-fixed"; - phandle = <0x1dd>; - vin-supply = <0x1cd>; - }; - - fiq-debugger { - pinctrl-names = "default"; - rockchip,irq-mode-enable = <0x01>; - rockchip,baudrate = <0x1c200>; - pinctrl-0 = <0x1ce>; - interrupts = <0x00 0x1a7 0x08>; - rockchip,wake-irq = <0x00>; - compatible = "rockchip,fiq-debugger"; - status = "disabled"; - phandle = <0x490>; - rockchip,serial-id = <0x02>; - }; - - phy@fed70000 { - clock-names = "ref\0apb"; - resets = <0x02 0x486 0x02 0xc003f 0x02 0xc0040 0x02 0xc0041>; - clocks = <0x02 0x2b5 0x02 0x268>; - #phy-cells = <0x00>; - compatible = "rockchip,rk3588-hdptx-phy"; - status = "disabled"; - rockchip,grf = <0x1c7>; - reg = <0x00 0xfed70000 0x00 0x2000>; - phandle = <0x1af>; - reset-names = "apb\0init\0cmn\0lane"; - }; - - ethernet@fe1b0000 { - power-domains = <0x60 0x21>; - pinctrl-names = "default"; - phy-mode = "rgmii-rxid"; - snps,mixed-burst; - snps,mtl-rx-config = <0x1bf>; - snps,reset-active-low; - pinctrl-0 = <0x1c1 0x1c2 0x1c3 0x1c4 0x1c5>; - clock-names = "stmmaceth\0clk_mac_ref\0pclk_mac\0aclk_mac\0ptp_ref"; - snps,mtl-tx-config = <0x1c0>; - local-mac-address = [a6 50 47 45 20 4f]; - resets = <0x02 0x20a>; - interrupts = <0x00 0xe3 0x04 0x00 0xe2 0x04>; - clocks = <0x02 0x144 0x02 0x145 0x02 0x167 0x02 0x16c 0x02 0x142>; - clock_in_out = "output"; - snps,tso; - compatible = "rockchip,rk3588-gmac\0snps,dwmac-4.20a"; - status = "okay"; - rockchip,grf = <0xc8>; - interrupt-names = "macirq\0eth_wake_irq"; - snps,reset-gpio = <0x10d 0x02 0x01>; - reg = <0x00 0xfe1b0000 0x00 0x10000>; - rockchip,php_grf = <0x76>; - phandle = <0x1bd>; - phy-handle = <0x1c6>; - reset-names = "stmmaceth"; - tx_delay = <0x31>; - snps,axi-config = <0x1be>; - snps,reset-delays-us = <0x00 0x4e20 0x186a0>; - - mdio { - #address-cells = <0x01>; - #size-cells = <0x00>; - compatible = "snps,dwmac-mdio"; - phandle = <0x489>; - - phy@1 { - compatible = "ethernet-phy-ieee802.3-c22"; - reg = <0x01>; - phandle = <0x1c6>; - }; - }; - - tx-queues-config { - phandle = <0x1c0>; - snps,tx-queues-to-use = <0x01>; - - queue0 { - }; - }; - - stmmac-axi-config { - snps,wr_osr_lmt = <0x04>; - phandle = <0x1be>; - snps,blen = <0x00 0x00 0x00 0x00 0x10 0x08 0x04>; - snps,rd_osr_lmt = <0x08>; - }; - - rx-queues-config { - snps,rx-queues-to-use = <0x01>; - phandle = <0x1bf>; - - queue0 { - }; - }; - }; - - pvtm@fda60000 { - #address-cells = <0x01>; - #size-cells = <0x00>; - compatible = "rockchip,rk3588-litcore-pvtm"; - reg = <0x00 0xfda60000 0x00 0x100>; - - pvtm@2 { - clock-names = "clk\0pclk"; - clocks = <0x02 0x2ca 0x02 0x1b>; - reg = <0x02>; - }; - }; - - rkispp@fdcd8000 { - power-domains = <0x60 0x1d>; - iommus = <0xd3>; - clock-names = "aclk_ispp\0hclk_ispp\0clk_ispp"; - assigned-clocks = <0x02 0x1d9>; - assigned-clock-rates = <0x5f5e100>; - interrupts = <0x00 0x8d 0x04>; - clocks = <0x02 0x1d8 0x02 0x1d9 0x02 0x1da>; - compatible = "rockchip,rk3588-rkispp"; - status = "disabled"; - interrupt-names = "fec_irq"; - reg = <0x00 0xfdcd8000 0x00 0xf00>; - phandle = <0x5c>; - }; - - qos@fdf66000 { - compatible = "syscon"; - reg = <0x00 0xfdf66000 0x00 0x20>; - phandle = <0x93>; - }; - - syscon@fd592000 { - compatible = "rockchip,rk3588-bigcore1-grf\0syscon"; - reg = <0x00 0xfd592000 0x00 0x100>; - phandle = <0x29>; - }; - - rkcif-mipi-lvds1 { - iommus = <0x50>; - rockchip,hw = <0x4f>; - compatible = "rockchip,rkcif-mipi-lvds"; - status = "disabled"; - phandle = <0x53>; - }; - - av1d@fdc70000 { - power-domains = <0x60 0x17>; - iommus = <0xce>; - clock-names = "aclk_vcodec\0hclk_vcodec"; - reg-names = "vcd\0cache\0afbc"; - assigned-clocks = <0x02 0x49 0x02 0x4b>; - rockchip,normal-rates = <0x17d78400 0x17d78400>; - assigned-clock-rates = <0x17d78400 0x17d78400>; - resets = <0x02 0x442 0x02 0x445>; - interrupts = <0x00 0x6c 0x04 0x00 0x6b 0x04 0x00 0x6a 0x04>; - clocks = <0x02 0x49 0x02 0x4b>; - rockchip,srv = <0xb8>; - rockchip,taskqueue-node = <0x0b>; - compatible = "rockchip,av1-decoder"; - status = "okay"; - interrupt-names = "irq_av1d\0irq_cache\0irq_afbc"; - reg = <0x00 0xfdc70000 0x00 0x800 0x00 0xfdc80000 0x00 0x400 0x00 0xfdc90000 0x00 0x400>; - phandle = <0x276>; - reset-names = "video_a\0video_h"; - }; - - qos@fdf40500 { - compatible = "syscon"; - reg = <0x00 0xfdf40500 0x00 0x20>; - phandle = <0xa3>; - }; - - vcc-hub-reset-regulator { - regulator-boot-on; - gpio = <0x182 0x04 0x00>; - regulator-always-on; - enable-active-high; - regulator-name = "vcc_hub_reset"; - compatible = "regulator-fixed"; - status = "disabled"; - phandle = <0x4a0>; - }; - - qos@fdf72200 { - compatible = "syscon"; - reg = <0x00 0xfdf72200 0x00 0x20>; - phandle = <0x83>; - }; - - serial@feb70000 { - reg-io-width = <0x04>; - pinctrl-names = "default"; - pinctrl-0 = <0x163>; - clock-names = "baudclk\0apb_pclk"; - interrupts = <0x00 0x14f 0x04>; - clocks = <0x02 0xc3 0x02 0xae>; - compatible = "rockchip,rk3588-uart\0snps,dw-apb-uart"; - status = "disabled"; - reg = <0x00 0xfeb70000 0x00 0x100>; - phandle = <0x2cc>; - dmas = <0xf1 0x09 0xf1 0x0a>; - reg-shift = <0x02>; - }; - - rkcif-mipi-lvds2-sditf { - compatible = "rockchip,rkcif-sditf"; - status = "okay"; - rockchip,cif = <0x55>; - phandle = <0x233>; - - port { - - endpoint { - remote-endpoint = <0x56>; - phandle = <0x59>; - }; - }; - }; - - i2c@feca0000 { - pinctrl-names = "default"; - #address-cells = <0x01>; - pinctrl-0 = <0x186>; - clock-names = "i2c\0pclk"; - resets = <0x02 0xb7 0x02 0xaf>; - interrupts = <0x00 0x145 0x04>; - clocks = <0x02 0x94 0x02 0x8c>; - #size-cells = <0x00>; - compatible = "rockchip,rk3588-i2c\0rockchip,rk3399-i2c"; - status = "disabled"; - reg = <0x00 0xfeca0000 0x00 0x1000>; - phandle = <0x2e5>; - reset-names = "i2c\0apb"; - }; - - vcc-sdcard-pwr-en-regulator { - regulator-boot-on; - gpio = <0xfe 0x07 0x00>; - regulator-always-on; - enable-active-high; - regulator-name = "vcc_sdcard_pwr_en"; - compatible = "regulator-fixed"; - status = "okay"; - phandle = <0x4a5>; - }; - - rkcif-mipi-lvds1-sditf-vir1 { - compatible = "rockchip,rkcif-sditf"; - status = "disabled"; - rockchip,cif = <0x53>; - phandle = <0x230>; - }; - - qos@fdf63000 { - compatible = "syscon"; - reg = <0x00 0xfdf63000 0x00 0x20>; - phandle = <0x8c>; - }; - - phy@fee00000 { - rockchip,pipe-grf = <0x76>; - clock-names = "refclk\0apbclk\0phpclk"; - assigned-clocks = <0x02 0x2bd>; - assigned-clock-rates = <0x5f5e100>; - resets = <0x02 0x20005 0x02 0x4d6>; - clocks = <0x02 0x2bd 0x02 0x185 0x02 0x166>; - #phy-cells = <0x01>; - compatible = "rockchip,rk3588-naneng-combphy"; - status = "okay"; - rockchip,pipe-phy-grf = <0x194>; - reg = <0x00 0xfee00000 0x00 0x100>; - phandle = <0x108>; - reset-names = "combphy-apb\0combphy"; - }; - - can@fea50000 { - pinctrl-names = "default"; - pinctrl-0 = <0x145>; - clock-names = "baudclk\0apb_pclk"; - resets = <0x02 0xb9 0x02 0xb8>; - interrupts = <0x00 0x155 0x04>; - clocks = <0x02 0x70 0x02 0x6f>; - compatible = "rockchip,can-2.0"; - status = "disabled"; - tx-fifo-depth = <0x01>; - rx-fifo-depth = <0x06>; - reg = <0x00 0xfea50000 0x00 0x1000>; - phandle = <0x2a0>; - reset-names = "can\0can-apb"; - }; - - pdm@fe4b0000 { - pinctrl-names = "default\0idle\0clk"; - pinctrl-2 = <0x139 0x13a>; - pinctrl-0 = <0x134 0x135 0x136 0x137>; - clock-names = "pdm_clk\0pdm_hclk"; - clocks = <0x02 0x29f 0x02 0x29e>; - dma-names = "rx"; - #sound-dai-cells = <0x00>; - compatible = "rockchip,rk3588-pdm"; - pinctrl-1 = <0x138>; - status = "disabled"; - reg = <0x00 0xfe4b0000 0x00 0x1000>; - phandle = <0x29a>; - dmas = <0x7c 0x04>; - }; - - rkisp-unite-mmu@fdcb7f00 { - power-domains = <0x60 0x1c>; - clock-names = "aclk0\0iface0\0aclk1\0iface1"; - interrupts = <0x00 0x84 0x04 0x00 0x88 0x04>; - clocks = <0x02 0x1de 0x02 0x1df 0x02 0x120 0x02 0x121>; - #iommu-cells = <0x00>; - compatible = "rockchip,iommu-v2"; - rockchip,disable-mmu-reset; - status = "disabled"; - interrupt-names = "isp0_mmu\0isp1_mmu"; - reg = <0x00 0xfdcb7f00 0x00 0x100 0x00 0xfdcc7f00 0x00 0x100>; - phandle = <0xcf>; - }; - - syscon@fd5a6000 { - clocks = <0x72>; - compatible = "rockchip,rk3588-vo-grf\0syscon"; - reg = <0x00 0xfd5a6000 0x00 0x2000>; - phandle = <0xf5>; - }; - - cpus { - #address-cells = <0x01>; - #size-cells = <0x00>; - - cpu@0 { - device_type = "cpu"; - compatible = "arm,cortex-a55"; - reg = <0x00>; - enable-method = "psci"; - clocks = <0x0e 0x00>; - cpu-idle-states = <0x10>; - operating-points-v2 = <0x0f>; - capacity-dmips-mhz = <0x212>; - - cpu-supply = <0x12>; - mem-supply = <0x12>; - dynamic-power-coefficient = <0x64>; - - i-cache-line-size = <0x40>; - i-cache-size = <0x8000>; - i-cache-sets = <0x80>; - - d-cache-line-size = <0x40>; - d-cache-size = <0x8000>; - d-cache-sets = <0x80>; - - next-level-cache = <0x11>; - #cooling-cells = <0x02>; - phandle = <0x06>; - }; - - cpu@100 { - device_type = "cpu"; - compatible = "arm,cortex-a55"; - reg = <0x100>; - enable-method = "psci"; - capacity-dmips-mhz = <0x212>; - clocks = <0x0e 0x00>; - operating-points-v2 = <0x0f>; - cpu-idle-states = <0x10>; - i-cache-size = <0x8000>; - i-cache-line-size = <0x40>; - i-cache-sets = <0x80>; - d-cache-size = <0x8000>; - d-cache-line-size = <0x40>; - d-cache-sets = <0x80>; - next-level-cache = <0x13>; - phandle = <0x07>; - }; - - l2-cache-l0 { - compatible = "cache"; - cache-size = <0x20000>; - cache-sets = <0x200>; - cache-line-size = <0x40>; - next-level-cache = <0x1e>; - phandle = <0x11>; - }; - - l2-cache-l1 { - compatible = "cache"; - cache-size = <0x20000>; - cache-line-size = <0x40>; - cache-sets = <0x200>; - next-level-cache = <0x1e>; - phandle = <0x13>; - }; - - l3-cache { - compatible = "cache"; - cache-size = <0x300000>; - cache-sets = <0x1000>; - cache-line-size = <0x40>; - phandle = <0x1e>; - }; - - idle-states { - entry-method = "psci"; - - cpu-sleep { - compatible = "arm,idle-state"; - entry-latency-us = <0x64>; - exit-latency-us = <0x78>; - min-residency-us = <0x3e8>; - local-timer-stop; - arm,psci-suspend-param = <0x10000>; - phandle = <0x10>; - }; - }; - - cpu-map { - cluster0 { - core0 { - cpu = <0x06>; - }; - - core1 { - cpu = <0x07>; - }; - }; - }; - }; - - vcc-hub3-reset-regulator { - gpio = <0x182 0x06 0x00>; - regulator-always-on; - enable-active-high; - regulator-name = "vcc_hub3_reset"; - compatible = "regulator-fixed"; - status = "disabled"; - phandle = <0x4a1>; - }; - - rkispp1-vir0 { - rockchip,hw = <0x5c>; - compatible = "rockchip,rk3588-rkispp-vir"; - status = "disabled"; - phandle = <0x244>; - }; - - saradc@fec10000 { - vref-supply = <0x177>; - clock-names = "saradc\0apb_pclk"; - resets = <0x02 0xbe>; - interrupts = <0x00 0x18e 0x04>; - clocks = <0x02 0x9d 0x02 0x9c>; - #io-channel-cells = <0x01>; - compatible = "rockchip,rk3588-saradc"; - status = "okay"; - reg = <0x00 0xfec10000 0x00 0x10000>; - phandle = <0x1d9>; - reset-names = "saradc-apb"; - }; - - rkisp0-vir0 { - rockchip,hw = <0x58>; - compatible = "rockchip,rkisp-vir"; - status = "disabled"; - phandle = <0x23b>; - }; - - __symbols__ { - i2s2m0_lrck = "/pinctrl/i2s2/i2s2m0-lrck"; - i2c3 = "/i2c@feab0000"; - scmi_shmem = "/sram@10f000/sram@0"; - rkispp0_vir0 = "/rkispp0-vir0"; - qos_jpeg_enc0 = "/qos@fdf66400"; - i2s1m1_sdi1 = "/pinctrl/i2s1/i2s1m1-sdi1"; - dp_altmode_mux = "/i2c@fec80000/fusb302@22/connector/ports/port@1/endpoint"; - pmic_pins = "/pinctrl/pmic/pmic-pins"; - usb_host1_ohci = "/usb@fc8c0000"; - pwm9 = "/pwm@febe0010"; - i2c6m4_xfer = "/pinctrl/i2c6/i2c6m4-xfer"; - leds_gpio = "/pinctrl/leds/leds-gpio"; - i2c3m3_xfer = "/pinctrl/i2c3/i2c3m3-xfer"; - qos_usb3_1 = "/qos@fdf3e000"; - hdmi_debug4 = "/pinctrl/hdmi/hdmi-debug4"; - i2c0m2_xfer = "/pinctrl/i2c0/i2c0m2-xfer"; - gmac0_rgmii_bus = "/pinctrl/gmac0/gmac0-rgmii-bus"; - pcie30x2m2_pins = "/pinctrl/pcie30x2/pcie30x2m2-pins"; - sdmmc_clk = "/pinctrl/sdmmc/sdmmc-clk"; - spi0m3_cs0 = "/pinctrl/spi0/spi0m3-cs0"; - hwlock = "/hwspinlock@fe5a0000"; - pcie3x2 = "/pcie@fe160000"; - i2s2m1_mclk = "/pinctrl/i2s2/i2s2m1-mclk"; - mipim0_camera3_clk = "/pinctrl/mipi/mipim0-camera3-clk"; - mclkin_i2s0 = "/clocks/mclkin-i2s0"; - edp1_in_vp1 = "/edp@fded0000/ports/port@0/endpoint@1"; - rkvenc0_mmu = "/iommu@fdbdf000"; - pwm14 = "/pwm@febf0020"; - rk806_dvs2_rst = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs2_rst"; - mipi2_csi2 = "/mipi2-csi2"; - can2m1_pins = "/pinctrl/can2/can2m1-pins"; - pcie2x1l1 = "/pcie@fe180000"; - hdmi0_in_vp2 = "/hdmi@fde80000/ports/port@0/endpoint@2"; - qos_rkvenc0_m2wo = "/qos@fdf60400"; - pwm3m2_pins = "/pinctrl/pwm3/pwm3m2-pins"; - optee = "/firmware/optee"; - l2_cache_b2 = "/cpus/l2-cache-b2"; - pwm0m1_pins = "/pinctrl/pwm0/pwm0m1-pins"; - vdpu = "/vdpu@fdb50400"; - i2s3_sdo = "/pinctrl/i2s3/i2s3-sdo"; - usbdp_phy0_u3 = "/phy@fed80000/u3-port"; - thermal_zones = "/thermal-zones"; - hdmim2_rx_scl = "/pinctrl/hdmi/hdmim2-rx-scl"; - hdmim2_rx_sda = "/pinctrl/hdmi/hdmim2-rx-sda"; - uart9m0_rtsn = "/pinctrl/uart9/uart9m0-rtsn"; - spi1m2_cs0 = "/pinctrl/spi1/spi1m2-cs0"; - pcie2x1l1_intc = "/pcie@fe180000/legacy-interrupt-controller"; - spdif1m1_tx = "/pinctrl/spdif1/spdif1m1-tx"; - venc_opp_info = "/otp@fecc0000/venc-opp-info@67"; - qos_iep = "/qos@fdf66000"; - pcfg_pull_none_drv_level_3 = "/pinctrl/pcfg-pull-none-drv-level-3"; - spi3m2_cs1 = "/pinctrl/spi3/spi3m2-cs1"; - uart4m2_xfer = "/pinctrl/uart4/uart4m2-xfer"; - vp1 = "/vop@fdd90000/ports/port@1"; - bigcore1_grf = "/syscon@fd592000"; - uart1m1_xfer = "/pinctrl/uart1/uart1m1-xfer"; - uart5m1_ctsn = "/pinctrl/uart5/uart5m1-ctsn"; - fspim1_pins = "/pinctrl/fspi/fspim1-pins"; - cpu_l1 = "/cpus/cpu@100"; - uart8 = "/serial@febb0000"; - rkisp1_vir3 = "/rkisp1-vir3"; - qos_vop_m1 = "/qos@fdf82200"; - pcie_clk2 = "/pcie-clk2"; - cluster2_opp_table = "/cluster2-opp-table"; - usb_grf = "/syscon@fd5ac000"; - pcfg_pull_none_smt = "/pinctrl/pcfg-pull-none-smt"; - jpege0_mmu = "/iommu@fdba0800"; - spi2m1_cs0 = "/pinctrl/spi2/spi2m1-cs0"; - u2phy3 = "/syscon@fd5dc000/usb2-phy@c000"; - power_led = "/leds/power"; - aclk_usb = "/clocks/aclk_usb@fd7c08a8"; - csi2_dphy1 = "/csi2-dphy1"; - spi2 = "/spi@feb20000"; - uart2_rtsn = "/pinctrl/uart2/uart2-rtsn"; - spi4m1_cs1 = "/pinctrl/spi4/spi4m1-cs1"; - pcfg_pull_up_drv_level_15 = "/pinctrl/pcfg-pull-up-drv-level-15"; - vo1_grf = "/syscon@fd5a8000"; - pcie_essd = "/pcie-essd"; - i2c4m3_xfer = "/pinctrl/i2c4/i2c4m3-xfer"; - gpio0 = "/pinctrl/gpio@fd8a0000"; - saradc = "/saradc@fec10000"; - i2s1m0_sdi3 = "/pinctrl/i2s1/i2s1m0-sdi3"; - i2c1m2_xfer = "/pinctrl/i2c1/i2c1m2-xfer"; - csidphy0_out = "/csi2-dphy0/ports/port@1/endpoint@0"; - emmc_rstnout = "/pinctrl/emmc/emmc-rstnout"; - mclkout_i2s3 = "/clocks/mclkout-i2s3@fd58c318"; - xc7160_out0 = "/i2c@fec80000/XC7160b@1b/port/endpoint"; - rkcif_mipi_lvds1_sditf_vir1 = "/rkcif-mipi-lvds1-sditf-vir1"; - dsi1 = "/dsi@fde30000"; - venc_opp_table = "/venc-opp-table"; - qos_isp0_mwo = "/qos@fdf40500"; - pmu_pins = "/pinctrl/pmu/pmu-pins"; - gmac0_miim = "/pinctrl/gmac0/gmac0-miim"; - spi3m0_cs0 = "/pinctrl/spi3/spi3m0-cs0"; - mipi_dcphy0 = "/mipi-dcphy-dummy"; - minidump_mem = "/reserved-memory/minidump-mem@c000000"; - avdd_1v2_s0 = "/spi@feb20000/rk806single@0/regulators/PLDO_REG3"; - pwm7m3_pins = "/pinctrl/pwm7/pwm7m3-pins"; - route_edp1 = "/display-subsystem/route/route-edp1"; - hdmi1 = "/hdmi@fdea0000"; - crypto = "/crypto@fe370000"; - hdmi1_in_vp2 = "/hdmi@fdea0000/ports/port@0/endpoint@2"; - dfi = "/dfi@fe060000"; - can0m0_pins = "/pinctrl/can0/can0m0-pins"; - pcfg_pull_up_drv_level_2 = "/pinctrl/pcfg-pull-up-drv-level-2"; - pinctrl = "/pinctrl"; - rgmii_phy0 = "/ethernet@fe1b0000/mdio/phy@1"; - pcfg_pull_down_drv_level_6 = "/pinctrl/pcfg-pull-down-drv-level-6"; - dp0m0_pins = "/pinctrl/dp0/dp0m0-pins"; - i2s0_sdo3 = "/pinctrl/i2s0/i2s0-sdo3"; - vcc_sata_pwr_en = "/vcc-sata-pwr-en-regulator"; - pwm1m1_pins = "/pinctrl/pwm1/pwm1m1-pins"; - pcie30_avdd1v8 = "/pcie30-avdd1v8"; - usb2phy3_grf = "/syscon@fd5dc000"; - u2phy2_host = "/syscon@fd5d8000/usb2-phy@8000/host-port"; - hym8563_int = "/pinctrl/hym8563/hym8563-int"; - mailbox1 = "/mailbox@fec70000"; - pdm0m1_sdi3 = "/pinctrl/pdm0/pdm0m1-sdi3"; - combphy1_ps = "/phy@fee10000"; - hdptxphy0_grf = "/syscon@fd5e0000"; - sdei = "/firmware/sdei"; - vp0_out_dp1 = "/vop@fdd90000/ports/port@0/endpoint@3"; - uart5m2_xfer = "/pinctrl/uart5/uart5m2-xfer"; - uart9m2_ctsn = "/pinctrl/uart9/uart9m2-ctsn"; - uart2m1_xfer = "/pinctrl/uart2/uart2m1-xfer"; - dp0_out = "/dp@fde50000/ports/port@1/endpoint"; - uart6m1_ctsn = "/pinctrl/uart6/uart6m1-ctsn"; - route_rgb = "/display-subsystem/route/route-rgb"; - csidphy0_out1 = "/csi2-dphy0/ports/port@1/endpoint@0"; - i2c1 = "/i2c@fea90000"; - pinctrl_rk806 = "/spi@feb20000/rk806single@0/pinctrl_rk806"; - cpu_code = "/otp@fecc0000/cpu-code@2"; - pwm7 = "/pwm@febd0030"; - mipi5_csi2_hw = "/mipi5-csi2-hw@fdd60000"; - gpu_leakage = "/otp@fecc0000/gpu-leakage@1b"; - hdmi_debug2 = "/pinctrl/hdmi/hdmi-debug2"; - pdm0m0_clk = "/pinctrl/pdm0/pdm0m0-clk"; - gmac0_ppsclk = "/pinctrl/gmac0/gmac0-ppsclk"; - i2c8m4_xfer = "/pinctrl/i2c8/i2c8m4-xfer"; - vdd_npu_s0 = "/i2c@fea90000/rk8602@42"; - i2c5m3_xfer = "/pinctrl/i2c5/i2c5m3-xfer"; - gmac0 = "/ethernet@fe1b0000"; - i2c2m2_xfer = "/pinctrl/i2c2/i2c2m2-xfer"; - rockchip_system_monitor = "/rockchip-system-monitor"; - pcie30x4m2_pins = "/pinctrl/pcie30x4/pcie30x4m2-pins"; - pwm12 = "/pwm@febf0000"; - emmc_cmd = "/pinctrl/emmc/emmc-cmd"; - i2s1_8ch = "/i2s@fe480000"; - pcie30x1m1_pins = "/pinctrl/pcie30x1/pcie30x1m1-pins"; - uart4_ctsn = "/pinctrl/uart4/uart4-ctsn"; - vdd_cpu_big0_mem_s0 = "/i2c@fd880000/rk8602@42"; - pcfg_pull_none = "/pinctrl/pcfg-pull-none"; - i2s1m0_mclk = "/pinctrl/i2s1/i2s1m0-mclk"; - vp1_out_edp1 = "/vop@fdd90000/ports/port@1/endpoint@4"; - hdmi0_in_vp0 = "/hdmi@fde80000/ports/port@0/endpoint@0"; - vcc_4g = "/vcc-4g-regulator"; - firefly_leds = "/leds"; - jpege3 = "/jpege-core@fdbac000"; - l2_cache_b0 = "/cpus/l2-cache-b0"; - pmu1_grf = "/syscon@fd58a000"; - aclk_rkvenc1_pre = "/clocks/aclk_rkvenc1_pre@fd7c08c0"; - can1m0_pins = "/pinctrl/can1/can1m0-pins"; - spi0m3_pins = "/pinctrl/spi0/spi0m3-pins"; - pwm5m2_pins = "/pinctrl/pwm5/pwm5m2-pins"; - mipidphy0_in_ucam1 = "/csi2-dphy0/ports/port@0/endpoint@1"; - i2s0_lrck = "/pinctrl/i2s0/i2s0-lrck"; - clk32k_out0 = "/pinctrl/clk32k/clk32k-out0"; - dp1m0_pins = "/pinctrl/dp1/dp1m0-pins"; - pwm2m1_pins = "/pinctrl/pwm2/pwm2m1-pins"; - usbc0 = "/i2c@fec80000/fusb302@22"; - eth1_pins = "/pinctrl/eth1/eth1-pins"; - pcfg_pull_none_drv_level_1 = "/pinctrl/pcfg-pull-none-drv-level-1"; - csi2_dphy0_hw = "/csi2-dphy0-hw@fedc0000"; - pdm1m1_sdi3 = "/pinctrl/pdm1/pdm1m1-sdi3"; - dsi0_in_vp3 = "/dsi@fde20000/ports/port@0/endpoint@1"; - hdmim1_tx1_cec = "/pinctrl/hdmi/hdmim1-tx1-cec"; - usbc0_role_sw = "/i2c@fec80000/fusb302@22/ports/port@0/endpoint@0"; - uart6 = "/serial@feb90000"; - rkisp1_vir1 = "/rkisp1-vir1"; - sdhci = "/mmc@fe2e0000"; - uart6m2_xfer = "/pinctrl/uart6/uart6m2-xfer"; - target = "/thermal-zones/soc-thermal/trips/trip-point-1"; - rkcif_mipi_lvds_sditf_vir3 = "/rkcif-mipi-lvds-sditf-vir3"; - pcfg_pull_none_drv_level_0_smt = "/pinctrl/pcfg-pull-none-drv-level-0-smt"; - uart3m1_xfer = "/pinctrl/uart3/uart3m1-xfer"; - uart7m1_ctsn = "/pinctrl/uart7/uart7m1-ctsn"; - uart0m0_xfer = "/pinctrl/uart0/uart0m0-xfer"; - rgb_in_vp3 = "/syscon@fd58c000/rgb/ports/port@0/endpoint@2"; - rkcif_mipi_lvds5_sditf_vir2 = "/rkcif-mipi-lvds5-sditf-vir2"; - u2phy1 = "/syscon@fd5d4000/usb2-phy@4000"; - i2s5_8ch = "/i2s@fddf0000"; - i2s2m0_sdo = "/pinctrl/i2s2/i2s2m0-sdo"; - gpu = "/gpu@fb000000"; - spi0 = "/spi@feb00000"; - iep = "/iep@fdbb0000"; - pcfg_pull_up_drv_level_13 = "/pinctrl/pcfg-pull-up-drv-level-13"; - spdif_tx5 = "/spdif-tx@fddb8000"; - hdptxphy_hdmi_clk1 = "/hdmiphy@fed70000/clk-port"; - drm_logo = "/reserved-memory/drm-logo@00000000"; - i2s1m0_sdi1 = "/pinctrl/i2s1/i2s1m0-sdi1"; - rk806_dvs3_null = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs3_null"; - gmac1_ppsclk = "/pinctrl/gmac1/gmac1-ppsclk"; - usb_host0_ohci = "/usb@fc840000"; - mclkout_i2s1 = "/clocks/mclkout-i2s1@fd58c318"; - i2c6m3_xfer = "/pinctrl/i2c6/i2c6m3-xfer"; - i2c3m2_xfer = "/pinctrl/i2c3/i2c3m2-xfer"; - vop_opp_info = "/otp@fecc0000/vop-opp-info@61"; - cif_dvp_bus16 = "/pinctrl/cif/cif-dvp-bus16"; - i2c0m1_xfer = "/pinctrl/i2c0/i2c0m1-xfer"; - pcie30x2m1_pins = "/pinctrl/pcie30x2/pcie30x2m1-pins"; - mipidcphy0_grf = "/syscon@fd5e8000"; - vdd_cpu_big1_mem_s0 = "/i2c@fd880000/rk8603@43"; - pcie30phy = "/phy@fee80000"; - dmc = "/dmc"; - i2s2m0_mclk = "/pinctrl/i2s2/i2s2m0-mclk"; - mipidcphy1 = "/phy@fedb0000"; - dp1_sound = "/dp1-sound"; - hdmi1_in_vp0 = "/hdmi@fdea0000/ports/port@0/endpoint@0"; - scmi = "/firmware/scmi"; - pcfg_pull_up_drv_level_0 = "/pinctrl/pcfg-pull-up-drv-level-0"; - gmac1_clkinout = "/pinctrl/gmac1/gmac1-clkinout"; - pcfg_pull_down_drv_level_4 = "/pinctrl/pcfg-pull-down-drv-level-4"; - i2s0_sdo1 = "/pinctrl/i2s0/i2s0-sdo1"; - l3_cache = "/cpus/l3-cache"; - i2s3_idle = "/pinctrl/i2s3/i2s3-idle"; - pcfg_pull_none_drv_level_4_smt = "/pinctrl/pcfg-pull-none-drv-level-4-smt"; - litcpu_pins = "/pinctrl/litcpu/litcpu-pins"; - mipi1_csi2 = "/mipi1-csi2"; - can2m0_pins = "/pinctrl/can2/can2m0-pins"; - pwm6m2_pins = "/pinctrl/pwm6/pwm6m2-pins"; - usbdp_phy0 = "/phy@fed80000"; - pdm0m1_sdi1 = "/pinctrl/pdm0/pdm0m1-sdi1"; - pwm3m1_pins = "/pinctrl/pwm3/pwm3m1-pins"; - vdd_log_s0 = "/spi@feb20000/rk806single@0/regulators/DCDC_REG3"; - i2s9_8ch = "/i2s@fddfc000"; - pwm0m0_pins = "/pinctrl/pwm0/pwm0m0-pins"; - vcc_hub3_reset = "/vcc-hub3-reset-regulator"; - dsi1_in_vp3 = "/dsi@fde30000/ports/port@0/endpoint@1"; - otp_cpu_version = "/otp@fecc0000/cpu-version@1c"; - pcie2x1l0_intc = "/pcie@fe170000/legacy-interrupt-controller"; - spdif0m1_tx = "/pinctrl/spdif0/spdif0m1-tx"; - pcfg_pull_down_drv_level_15 = "/pinctrl/pcfg-pull-down-drv-level-15"; - XC7160 = "/i2c@fec80000/XC7160b@1b"; - rkcif_mipi_lvds4_sditf_vir3 = "/rkcif-mipi-lvds4-sditf-vir3"; - uart7m2_xfer = "/pinctrl/uart7/uart7m2-xfer"; - uart4m1_xfer = "/pinctrl/uart4/uart4m1-xfer"; - hdmim1_tx1_scl = "/pinctrl/hdmi/hdmim1-tx1-scl"; - hdmim1_tx1_sda = "/pinctrl/hdmi/hdmim1-tx1-sda"; - uart8m1_ctsn = "/pinctrl/uart8/uart8m1-ctsn"; - i2s2_2ch = "/i2s@fe490000"; - pwm5 = "/pwm@febd0010"; - uart1m0_xfer = "/pinctrl/uart1/uart1m0-xfer"; - uart5m0_ctsn = "/pinctrl/uart5/uart5m0-ctsn"; - fspim0_cs1 = "/pinctrl/fspi/fspim0-cs1"; - fspim0_pins = "/pinctrl/fspi/fspim0-pins"; - rkisp0_vir3 = "/rkisp0-vir3"; - l2_cache_l3 = "/cpus/l2-cache-l3"; - rk806_dvs3_dvs = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs3_dvs"; - hdmi_debug0 = "/pinctrl/hdmi/hdmi-debug0"; - hdmim1_tx1_hpd = "/pinctrl/hdmi/hdmim1-tx1-hpd"; - vp1_out_dp0 = "/vop@fdd90000/ports/port@1/endpoint@0"; - qos_isp0_mro = "/qos@fdf40400"; - spi0m2_cs1 = "/pinctrl/spi0/spi0m2-cs1"; - vdd_gpu_s0 = "/spi@feb20000/rk806single@0/regulators/DCDC_REG1"; - tsadc_shut = "/pinctrl/tsadc/tsadc-shut"; - pwm10 = "/pwm@febe0020"; - i2c7m3_xfer = "/pinctrl/i2c7/i2c7m3-xfer"; - rktimer = "/timer@feae0000"; - cpub0_leakage = "/otp@fecc0000/cpub0-leakage@17"; - i2c4m2_xfer = "/pinctrl/i2c4/i2c4m2-xfer"; - hclk_rkvdec1_pre = "/clocks/hclk_rkvdec1_pre@fd7c08a4"; - pcie30phy_pins = "/pinctrl/pcie30phy/pcie30phy-pins"; - jpege1 = "/jpege-core@fdba4000"; - pcfg_pull_none_drv_level_14 = "/pinctrl/pcfg-pull-none-drv-level-14"; - i2c1m1_xfer = "/pinctrl/i2c1/i2c1m1-xfer"; - rkcif_dvp_sditf = "/rkcif-dvp-sditf"; - rkcif_mipi_lvds4_sditf = "/rkcif-mipi-lvds4-sditf"; - vp2_out_dp1 = "/vop@fdd90000/ports/port@2/endpoint@5"; - vp2_out_dsi0 = "/vop@fdd90000/ports/port@2/endpoint@3"; - its1 = "/interrupt-controller@fe600000/msi-controller@fe660000"; - cpu_b3 = "/cpus/cpu@700"; - vcc_hub_reset = "/vcc-hub-reset-regulator"; - spi1m1_cs1 = "/pinctrl/spi1/spi1m1-cs1"; - vdd_npu_mem_s0 = "/i2c@fea90000/rk8602@42"; - pwm7m2_pins = "/pinctrl/pwm7/pwm7m2-pins"; - pdm1m1_sdi1 = "/pinctrl/pdm1/pdm1m1-sdi1"; - vbus5v0_typec_pwr_en = "/vbus5v0-typec-pwr-en-regulator"; - pwm4m1_pins = "/pinctrl/pwm4/pwm4m1-pins"; - dmc_opp_table = "/dmc-opp-table"; - pcie30x4_button_rstn = "/pinctrl/pcie30x4/pcie30x4-button-rstn"; - uart4 = "/serial@feb70000"; - pwm1m0_pins = "/pinctrl/pwm1/pwm1m0-pins"; - spi0m0_cs0 = "/pinctrl/spi0/spi0m0-cs0"; - pldo6_s3 = "/spi@feb20000/rk806single@0/regulators/PLDO_REG6"; - mipim1_camera2_clk = "/pinctrl/mipi/mipim1-camera2-clk"; - mipim0_camera0_clk = "/pinctrl/mipi/mipim0-camera0-clk"; - rkcif_mipi_lvds_sditf_vir1 = "/rkcif-mipi-lvds-sditf-vir1"; - pcfg_pull_up_drv_level_9 = "/pinctrl/pcfg-pull-up-drv-level-9"; - dmac2 = "/dma-controller@fed10000"; - pdm0m0_sdi3 = "/pinctrl/pdm0/pdm0m0-sdi3"; - qos_gpu_m2 = "/qos@fdf35400"; - i2s0_sdi3 = "/pinctrl/i2s0/i2s0-sdi3"; - cluster0_opp_table = "/cluster0-opp-table"; - spi2m0_cs1 = "/pinctrl/spi2/spi2m0-cs1"; - otp_id = "/otp@fecc0000/id@7"; - uart5m1_xfer = "/pinctrl/uart5/uart5m1-xfer"; - uart9m1_ctsn = "/pinctrl/uart9/uart9m1-ctsn"; - qos_rga3_0 = "/qos@fdf67000"; - usbdp_phy0_dp = "/phy@fed80000/dp-port"; - uart2m0_xfer = "/pinctrl/uart2/uart2m0-xfer"; - uart6m0_ctsn = "/pinctrl/uart6/uart6m0-ctsn"; - npu_pins = "/pinctrl/npu/npu-pins"; - pcfg_pull_up_drv_level_11 = "/pinctrl/pcfg-pull-up-drv-level-11"; - spdif_tx3 = "/spdif-tx@fdde0000"; - rkispp0 = "/rkispp@fdcd0000"; - xin32k = "/clocks/xin32k"; - vcc_1v8_s3 = "/spi@feb20000/rk806single@0/regulators/DCDC_REG10"; - qos_usb2host_1 = "/qos@fdf3e600"; - bt_sco = "/bt-sco"; - pcfg_output_high_pull_none = "/pinctrl/pcfg-output-high-pull-none"; - adc_keys = "/adc-keys"; - rkcif_mipi_lvds4 = "/rkcif-mipi-lvds4"; - i2c8 = "/i2c@feca0000"; - dp0 = "/dp@fde50000"; - mipi_te1 = "/pinctrl/mipi/mipi-te1"; - i2c8m3_xfer = "/pinctrl/i2c8/i2c8m3-xfer"; - i2c5m2_xfer = "/pinctrl/i2c5/i2c5m2-xfer"; - pcie30x2_button_rstn = "/pinctrl/pcie30x2/pcie30x2-button-rstn"; - syssram = "/sram@ff001000"; - pcfg_pull_down_drv_level_2 = "/pinctrl/pcfg-pull-down-drv-level-2"; - qos_hdmirx = "/qos@fdf81200"; - i2c2m1_xfer = "/pinctrl/i2c2/i2c2m1-xfer"; - pcie30x4m1_pins = "/pinctrl/pcie30x4/pcie30x4m1-pins"; - vdd_0v75_s0 = "/spi@feb20000/rk806single@0/regulators/NLDO_REG5"; - hw_decompress = "/decompress@fea80000"; - pcie30x1m0_pins = "/pinctrl/pcie30x1/pcie30x1m0-pins"; - mipim0_camera4_clk = "/pinctrl/mipi/mipim0-camera4-clk"; - gmac1_txer = "/pinctrl/gmac1/gmac1-txer"; - uart3_ctsn = "/pinctrl/uart3/uart3-ctsn"; - vcc_sdcard_pwr_en = "/vcc-sdcard-pwr-en-regulator"; - mipi0_csi2_hw = "/mipi0-csi2-hw@fdd10000"; - rkvenc1_mmu = "/iommu@fdbef000"; - edp0 = "/edp@fdec0000"; - rkvenc_ccu = "/rkvenc-ccu"; - rk806_dvs3_rst = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs3_rst"; - power = "/power-management@fd8d8000/power-controller"; - vad = "/vad@fe4d0000"; - spi3m3_pins = "/pinctrl/spi3/spi3m3-pins"; - pwm8m2_pins = "/pinctrl/pwm8/pwm8m2-pins"; - spi0m2_pins = "/pinctrl/spi0/spi0m2-pins"; - pwm5m1_pins = "/pinctrl/pwm5/pwm5m1-pins"; - vcc_3v3_s0 = "/spi@feb20000/rk806single@0/regulators/PLDO_REG4"; - aclk_isp1_pre = "/clocks/aclk_isp1_pre@fd7c0868"; - pwm2m0_pins = "/pinctrl/pwm2/pwm2m0-pins"; - i2s1m1_sdo2 = "/pinctrl/i2s1/i2s1m1-sdo2"; - pcfg_pull_down_drv_level_13 = "/pinctrl/pcfg-pull-down-drv-level-13"; - eth0_pins = "/pinctrl/eth0/eth0-pins"; - rkcif_mipi_lvds4_sditf_vir1 = "/rkcif-mipi-lvds4-sditf-vir1"; - pwm3 = "/pwm@fd8b0030"; - pdm1m0_sdi3 = "/pinctrl/pdm1/pdm1m0-sdi3"; - rkcif_mmu = "/iommu@fdce0800"; - usbc0_int = "/pinctrl/usb-typec/usbc0-int"; - gmac0_tx_bus2 = "/pinctrl/gmac0/gmac0-tx-bus2"; - sata2 = "/sata@fe230000"; - uart9m2_xfer = "/pinctrl/uart9/uart9m2-xfer"; - dp0_in_vp2 = "/dp@fde50000/ports/port@0/endpoint@2"; - hdmiin_sound = "/hdmiin-sound"; - rkisp0_vir1 = "/rkisp0-vir1"; - uart6_gpios = "/pinctrl/wireless-bluetooth/uart6-gpios"; - spi3m3_cs1 = "/pinctrl/spi3/spi3m3-cs1"; - l2_cache_l1 = "/cpus/l2-cache-l1"; - pcfg_pull_none_drv_level_8 = "/pinctrl/pcfg-pull-none-drv-level-8"; - uart6m1_xfer = "/pinctrl/uart6/uart6m1-xfer"; - pwm11m3_pins = "/pinctrl/pwm11/pwm11m3-pins"; - vp2_out_hdmi0 = "/vop@fdd90000/ports/port@2/endpoint@2"; - qos_hdcp1 = "/qos@fdf81000"; - scmi_reset = "/firmware/scmi/protocol@16"; - vdd_cpu_lit_mem_s0 = "/spi@feb20000/rk806single@0/regulators/DCDC_REG2"; - i2s0_mclk = "/pinctrl/i2s0/i2s0-mclk"; - uart3m0_xfer = "/pinctrl/uart3/uart3m0-xfer"; - uart7m0_ctsn = "/pinctrl/uart7/uart7m0-ctsn"; - usbhost_dwc3_0 = "/usbhost3_0/usb@fcd00000"; - hdmim0_rx_hpdin = "/pinctrl/hdmi/hdmim0-rx-hpdin"; - edp0_out = "/edp@fdec0000/ports/port@1/endpoint"; - rkisp0 = "/rkisp@fdcb0000"; - dsu_grf = "/syscon@fd598000"; - vcc_fan_pwr_en = "/vcc-fan-pwr-en-regulator"; - gmac1_rx_bus2 = "/pinctrl/gmac1/gmac1-rx-bus2"; - uart1m2_rtsn = "/pinctrl/uart1/uart1m2-rtsn"; - csi2_dcphy0 = "/csi2-dcphy0"; - usb2phy0_grf = "/syscon@fd5d0000"; - scmi_clk = "/firmware/scmi/protocol@14"; - emmc_clk = "/pinctrl/emmc/emmc-clk"; - jpege1_mmu = "/iommu@fdba4800"; - qos_rkvenc1_m1ro = "/qos@fdf61200"; - spi2m2_cs0 = "/pinctrl/spi2/spi2m2-cs0"; - vcc5v0_host = "/vcc5v0-host"; - cru = "/clock-controller@fd7c0000"; - hdmim0_tx0_cec = "/pinctrl/hdmi/hdmim0-tx0-cec"; - pcfg_pull_none_drv_level_12 = "/pinctrl/pcfg-pull-none-drv-level-12"; - rk806_dvs2_null = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs2_null"; - cpub01_opp_info = "/otp@fecc0000/cpub01-opp-info@43"; - i2s3_sdi = "/pinctrl/i2s3/i2s3-sdi"; - aclk_rkvdec0_pre = "/clocks/aclk_rkvdec0_pre@fd7c08a0"; - cpu_b1 = "/cpus/cpu@500"; - i2c6m2_xfer = "/pinctrl/i2c6/i2c6m2-xfer"; - rknpu_mmu = "/iommu@fdab9000"; - rkcif_mipi_lvds_sditf = "/rkcif-mipi-lvds-sditf"; - i2c3m1_xfer = "/pinctrl/i2c3/i2c3m1-xfer"; - i2c0m0_xfer = "/pinctrl/i2c0/i2c0m0-xfer"; - pcie30x2m0_pins = "/pinctrl/pcie30x2/pcie30x2m0-pins"; - qos_isp1_mwo = "/qos@fdf41000"; - mipi2_csi2_output1 = "/mipi2-csi2/ports/port@1/endpoint@0"; - vcc5v0_usbdcin = "/vcc5v0-usbdcin"; - spi3m1_cs0 = "/pinctrl/spi3/spi3m1-cs0"; - reboot_mode = "/syscon@fd588000/reboot-mode"; - rga3_0_mmu = "/iommu@fdb60f00"; - imx415_out0 = "/i2c@fec80000/imx415@37/port/endpoint"; - rkcif_mipi_lvds3_sditf_vir2 = "/rkcif-mipi-lvds3-sditf-vir2"; - pwm9m2_pins = "/pinctrl/pwm9/pwm9m2-pins"; - fec0_mmu = "/iommu@fdcd0f00"; - mipi0_csi2 = "/mipi0-csi2"; - spi1m2_pins = "/pinctrl/spi1/spi1m2-pins"; - pcfg_pull_up_drv_level_7 = "/pinctrl/pcfg-pull-up-drv-level-7"; - pwm6m1_pins = "/pinctrl/pwm6/pwm6m1-pins"; - tsadc_shut_org = "/pinctrl/tsadc/tsadc-shut-org"; - qos_rkvdec1 = "/qos@fdf63000"; - dmac0 = "/dma-controller@fea10000"; - vp2_out_edp1 = "/vop@fdd90000/ports/port@2/endpoint@6"; - pdm0m0_sdi1 = "/pinctrl/pdm0/pdm0m0-sdi1"; - qos_gpu_m0 = "/qos@fdf35000"; - pwm3m0_pins = "/pinctrl/pwm3/pwm3m0-pins"; - i2s0_sdi1 = "/pinctrl/i2s0/i2s0-sdi1"; - qos_av1 = "/qos@fdf64000"; - pcfg_output_low = "/pinctrl/pcfg-output-low"; - spdif_tx1 = "/spdif-tx@fe4f0000"; - hdptxphy1_grf = "/syscon@fd5e4000"; - spi4m0_cs0 = "/pinctrl/spi4/spi4m0-cs0"; - dp1_in_vp2 = "/dp@fde60000/ports/port@0/endpoint@2"; - jpegd_mmu = "/iommu@fdb90480"; - sata0m1_pins = "/pinctrl/sata0/sata0m1-pins"; - uart7m1_xfer = "/pinctrl/uart7/uart7m1-xfer"; - vp1_out_hdmi1 = "/vop@fdd90000/ports/port@1/endpoint@5"; - dp1_out = "/dp@fde60000/ports/port@1/endpoint"; - otp = "/otp@fecc0000"; - uart4m0_xfer = "/pinctrl/uart4/uart4m0-xfer"; - uart8m0_ctsn = "/pinctrl/uart8/uart8m0-ctsn"; - hdcp1 = "/hdcp@fde70000"; - rkcif_mipi_lvds2 = "/rkcif-mipi-lvds2"; - i2c6 = "/i2c@fec80000"; - qos_jpeg_enc3 = "/qos@fdf66a00"; - i2s2m1_idle = "/pinctrl/i2s2/i2s2m1-idle"; - refclk_pins = "/pinctrl/refclk/refclk-pins"; - pcie3x4_intc = "/pcie@fe150000/legacy-interrupt-controller"; - hdptxphy_hdmi1 = "/hdmiphy@fed70000"; - mipi2_lvds2_sditf = "/rkcif-mipi-lvds2-sditf/port/endpoint"; - pdm1 = "/pdm@fe4c0000"; - vdd_cpu_lit_s0 = "/spi@feb20000/rk806single@0/regulators/DCDC_REG2"; - pdm0m1_clk = "/pinctrl/pdm0/pdm0m1-clk"; - pcfg_pull_down_drv_level_0 = "/pinctrl/pcfg-pull-down-drv-level-0"; - qos_vicap_m0 = "/qos@fdf40600"; - gic = "/interrupt-controller@fe600000"; - vdd_cpu_big1_s0 = "/i2c@fd880000/rk8603@43"; - uart0_rtsn = "/pinctrl/uart0/uart0-rtsn"; - i2c7m2_xfer = "/pinctrl/i2c7/i2c7m2-xfer"; - mclkin_i2s3 = "/clocks/mclkin-i2s3"; - hdmim0_tx0_scl = "/pinctrl/hdmi/hdmim0-tx0-scl"; - hdmim0_tx0_sda = "/pinctrl/hdmi/hdmim0-tx0-sda"; - i2c4m1_xfer = "/pinctrl/i2c4/i2c4m1-xfer"; - spdif1m0_tx = "/pinctrl/spdif1/spdif1m0-tx"; - sdmmc_det = "/pinctrl/sdmmc/sdmmc-det"; - i2c1m0_xfer = "/pinctrl/i2c1/i2c1m0-xfer"; - rkcif_mipi_lvds2_sditf_vir3 = "/rkcif-mipi-lvds2-sditf-vir3"; - hdptxphy1 = "/phy@fed70000"; - route_dp1 = "/display-subsystem/route/route-dp1"; - hdmim0_tx0_hpd = "/pinctrl/hdmi/hdmim0-tx0-hpd"; - i2s1m1_sdo0 = "/pinctrl/i2s1/i2s1m1-sdo0"; - pdm1m0_clk = "/pinctrl/pdm1/pdm1m0-clk"; - pcfg_pull_down_drv_level_11 = "/pinctrl/pcfg-pull-down-drv-level-11"; - usbdrd3_1 = "/usbdrd3_1"; - spi2m2_pins = "/pinctrl/spi2/spi2m2-pins"; - pwm7m1_pins = "/pinctrl/pwm7/pwm7m1-pins"; - rkcif_mipi_lvds1_sditf = "/rkcif-mipi-lvds1-sditf"; - pwm1 = "/pwm@fd8b0010"; - pdm1m0_sdi1 = "/pinctrl/pdm1/pdm1m0-sdi1"; - threshold = "/thermal-zones/soc-thermal/trips/trip-point-0"; - pwm4m0_pins = "/pinctrl/pwm4/pwm4m0-pins"; - gmac0_mtl_rx_setup = "/ethernet@fe1b0000/rx-queues-config"; - sata0 = "/sata@fe210000"; - dp0_in_vp0 = "/dp@fde50000/ports/port@0/endpoint@0"; - can2 = "/can@fea70000"; - pcfg_pull_none_drv_level_6 = "/pinctrl/pcfg-pull-none-drv-level-6"; - usbdrd_dwc3_0 = "/usbdrd3_0/usb@fc000000"; - rkvenc0 = "/rkvenc-core@fdbd0000"; - bt_reset_gpio = "/pinctrl/wireless-bluetooth/bt-reset-gpio"; - sata1m1_pins = "/pinctrl/sata1/sata1m1-pins"; - spll = "/clocks/spll"; - uart8m1_xfer = "/pinctrl/uart8/uart8m1-xfer"; - sata_pins = "/pinctrl/sata/sata-pins"; - pcfg_pull_none_drv_level_1_smt = "/pinctrl/pcfg-pull-none-drv-level-1-smt"; - qos_npu1 = "/qos@fdf70000"; - uart5m0_xfer = "/pinctrl/uart5/uart5m0-xfer"; - uart9m0_ctsn = "/pinctrl/uart9/uart9m0-ctsn"; - pwm10m2_pins = "/pinctrl/pwm10/pwm10m2-pins"; - rk806_dvs1_pwrdn = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs1_pwrdn"; - pipe_phy0_grf = "/syscon@fd5bc000"; - es8388 = "/i2c@fec80000/es8388@11"; - spdif_rx2 = "/spdif-rx@fde18000"; - usb_host1_ehci = "/usb@fc880000"; - xin24m = "/clocks/xin24m"; - pcie20x1_2_button_rstn = "/pinctrl/pcie20x1/pcie20x1-2-button-rstn"; - mipi2_csi2_hw = "/mipi2-csi2-hw@fdd30000"; - acdcdig_dsm = "/codec-digital@fe500000"; - vop_grf = "/syscon@fd5a4000"; - rk806_dvs1_slp = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs1_slp"; - i2s6_8ch = "/i2s@fddf4000"; - i2s2m1_sdo = "/pinctrl/i2s2/i2s2m1-sdo"; - pcie30x1_1_button_rstn = "/pinctrl/pcie30x1/pcie30x1-1-button-rstn"; - pcfg_output_low_pull_down = "/pinctrl/pcfg-output-low-pull-down"; - pcfg_pull_none_drv_level_10 = "/pinctrl/pcfg-pull-none-drv-level-10"; - pdm0m1_clk1 = "/pinctrl/pdm0/pdm0m1-clk1"; - mipidphy0_grf = "/syscon@fd5b4000"; - route_dsi1 = "/display-subsystem/route/route-dsi1"; - route_hdmi0 = "/display-subsystem/route/route-hdmi0"; - rkvdec_ccu = "/rkvdec-ccu@fdc30000"; - csi2_dphy4 = "/csi2-dphy4"; - gmac1_rgmii_bus = "/pinctrl/gmac1/gmac1-rgmii-bus"; - qos_sdio = "/qos@fdf39000"; - tsadc = "/tsadc@fec00000"; - pcfg_output_high_pull_up = "/pinctrl/pcfg-output-high-pull-up"; - hclk_usb = "/clocks/hclk_usb@fd7c08a8"; - avcc_1v8_s0 = "/spi@feb20000/rk806single@0/regulators/PLDO_REG1"; - edp0_in_vp2 = "/edp@fdec0000/ports/port@0/endpoint@2"; - gpio3 = "/pinctrl/gpio@fec40000"; - gpu_opp_table = "/gpu-opp-table"; - cif_mipi2_in0 = "/rkcif-mipi-lvds2/port/endpoint"; - pcfg_output_high = "/pinctrl/pcfg-output-high"; - i2c8m2_xfer = "/pinctrl/i2c8/i2c8m2-xfer"; - vdpu_mmu = "/iommu@fdb50800"; - i2c5m1_xfer = "/pinctrl/i2c5/i2c5m1-xfer"; - combphy0_ps = "/phy@fee00000"; - rgb = "/syscon@fd58c000/rgb"; - hclk_vo1 = "/clocks/hclk_vo1@fd7c08ec"; - i2c2m0_xfer = "/pinctrl/i2c2/i2c2m0-xfer"; - uart0 = "/serial@fd890000"; - mipidcphy1_grf = "/syscon@fd5ec000"; - pcie30x4m0_pins = "/pinctrl/pcie30x4/pcie30x4m0-pins"; - vdd_ddr_pll_s0 = "/spi@feb20000/rk806single@0/regulators/NLDO_REG2"; - gmac0_txer = "/pinctrl/gmac0/gmac0-txer"; - uart2_ctsn = "/pinctrl/uart2/uart2-ctsn"; - pcfg_pull_up_drv_level_5 = "/pinctrl/pcfg-pull-up-drv-level-5"; - pcfg_pull_down_drv_level_9 = "/pinctrl/pcfg-pull-down-drv-level-9"; - pcfg_pull_none_drv_level_5_smt = "/pinctrl/pcfg-pull-none-drv-level-5-smt"; - i2s2m0_sdi = "/pinctrl/i2s2/i2s2m0-sdi"; - qos_rga2_mwo = "/qos@fdf66e00"; - spi3m2_pins = "/pinctrl/spi3/spi3m2-pins"; - pwm8m1_pins = "/pinctrl/pwm8/pwm8m1-pins"; - dsi1_in = "/dsi@fde30000/ports/port@0"; - vp3_out_dsi0 = "/vop@fdd90000/ports/port@3/endpoint@0"; - pclk_vo0_grf = "/clocks/pclk_vo0_grf@fd7c08dc"; - spi0m1_pins = "/pinctrl/spi0/spi0m1-pins"; - pwm5m0_pins = "/pinctrl/pwm5/pwm5m0-pins"; - bt1120_pins = "/pinctrl/bt1120/bt1120-pins"; - dp1_in_vp0 = "/dp@fde60000/ports/port@0/endpoint@0"; - i2s1m0_sdo2 = "/pinctrl/i2s1/i2s1m0-sdo2"; - mipi2_csi2_input0 = "/mipi2-csi2/ports/port@0/endpoint@0"; - u2phy0_otg = "/syscon@fd5d0000/usb2-phy@0/otg-port"; - vp0_out_edp0 = "/vop@fdd90000/ports/port@0/endpoint@1"; - qos_fisheye0 = "/qos@fdf40000"; - i2c4 = "/i2c@feac0000"; - sata2m1_pins = "/pinctrl/sata2/sata2m1-pins"; - uart9m1_xfer = "/pinctrl/uart9/uart9m1-xfer"; - qos_jpeg_enc1 = "/qos@fdf66600"; - i2s1m1_sdi2 = "/pinctrl/i2s1/i2s1m1-sdi2"; - i2s3_2ch = "/i2s@fe4a0000"; - uart6m0_xfer = "/pinctrl/uart6/uart6m0-xfer"; - cpul_leakage = "/otp@fecc0000/cpul-leakage@19"; - pwm11m2_pins = "/pinctrl/pwm11/pwm11m2-pins"; - fspim1_cs1 = "/pinctrl/fspi/fspim1-cs1"; - vdd_vdenc_s0 = "/spi@feb20000/rk806single@0/regulators/DCDC_REG4"; - pdm1m1_clk1 = "/pinctrl/pdm1/pdm1m1-clk1"; - hdmi_debug5 = "/pinctrl/hdmi/hdmi-debug5"; - uart1m1_rtsn = "/pinctrl/uart1/uart1m1-rtsn"; - qos_isp1_mro = "/qos@fdf41100"; - ddrphych3_pins = "/pinctrl/ddrphych3/ddrphych3-pins"; - spi0m3_cs1 = "/pinctrl/spi0/spi0m3-cs1"; - qos_rkvenc0_m1ro = "/qos@fdf60200"; - qos_jpeg_dec = "/qos@fdf66200"; - mclkin_i2s1 = "/clocks/mclkin-i2s1"; - edp1_in_vp2 = "/edp@fded0000/ports/port@0/endpoint@2"; - pcie30_avdd0v75 = "/pcie30-avdd0v75"; - isp0_mmu = "/iommu@fdcb7f00"; - qos_npu0_mwr = "/qos@fdf72000"; - rkvdec0 = "/rkvdec-core@fdc38000"; - rkvdec0_mmu = "/iommu@fdc38700"; - rk806_dvs1_null = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs1_null"; - pwm15 = "/pwm@febf0030"; - vop_mmu = "/iommu@fdd97e00"; - rkcif_mipi_lvds2_sditf_vir1 = "/rkcif-mipi-lvds2-sditf-vir1"; - pcie2x1l2 = "/pcie@fe190000"; - i2c6m1_xfer = "/pinctrl/i2c6/i2c6m1-xfer"; - package_serial_number_low = "/otp@fecc0000/package-serial-number-low@6"; - iep_mmu = "/iommu@fdbb0800"; - l2_cache_b3 = "/cpus/l2-cache-b3"; - i2c3m0_xfer = "/pinctrl/i2c3/i2c3m0-xfer"; - vcc_1v1_nldo_s3 = "/vcc-1v1-nldo-s3"; - spi1m2_cs1 = "/pinctrl/spi1/spi1m2-cs1"; - pdm0m1_idle = "/pinctrl/pdm0/pdm0m1-idle"; - can0 = "/can@fea50000"; - spi4m2_pins = "/pinctrl/spi4/spi4m2-pins"; - pcfg_pull_none_drv_level_4 = "/pinctrl/pcfg-pull-none-drv-level-4"; - pwm9m1_pins = "/pinctrl/pwm9/pwm9m1-pins"; - arm_pmu = "/arm-pmu"; - vp2 = "/vop@fdd90000/ports/port@2"; - rk806single = "/spi@feb20000/rk806single@0"; - spi1m1_pins = "/pinctrl/spi1/spi1m1-pins"; - pwm6m0_pins = "/pinctrl/pwm6/pwm6m0-pins"; - gmac0_mtl_tx_setup = "/ethernet@fe1b0000/tx-queues-config"; - rng = "/rng@fe378000"; - cpu_l2 = "/cpus/cpu@200"; - uart9 = "/serial@febc0000"; - spi0m1_cs0 = "/pinctrl/spi0/spi0m1-cs0"; - rk806_dvs3_gpio = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs3_gpio"; - rkcif_mipi_lvds5_sditf = "/rkcif-mipi-lvds5-sditf"; - usbdpphy0_grf = "/syscon@fd5c8000"; - mipim1_camera3_clk = "/pinctrl/mipi/mipim1-camera3-clk"; - pcie_clk3 = "/pcie-clk3"; - mipim0_camera1_clk = "/pinctrl/mipi/mipim0-camera1-clk"; - vp0_out_hdmi0 = "/vop@fdd90000/ports/port@0/endpoint@2"; - rkcif = "/rkcif@fdce0000"; - gmac0_rgmii_clk = "/pinctrl/gmac0/gmac0-rgmii-clk"; - wdt_en_base = "/pinctrl/wdt-pc9202/wdt-en-base"; - vp3_out_rgb = "/vop@fdd90000/ports/port@3/endpoint@2"; - spdif_rx0 = "/spdif-rx@fde08000"; - sdmmc_bus4 = "/pinctrl/sdmmc/sdmmc-bus4"; - hdmim2_tx0_scl = "/pinctrl/hdmi/hdmim2-tx0-scl"; - hdmim2_tx0_sda = "/pinctrl/hdmi/hdmim2-tx0-sda"; - spi2m1_cs1 = "/pinctrl/spi2/spi2m1-cs1"; - pwm15m3_pins = "/pinctrl/pwm15/pwm15m3-pins"; - sata0m0_pins = "/pinctrl/sata0/sata0m0-pins"; - uart7m0_xfer = "/pinctrl/uart7/uart7m0-xfer"; - csi2_dphy2 = "/csi2-dphy2"; - spi3 = "/spi@feb30000"; - edp0_in_vp0 = "/edp@fdec0000/ports/port@0/endpoint@0"; - gpio1 = "/pinctrl/gpio@fec20000"; - tsadcm1_shut = "/pinctrl/tsadc/tsadcm1-shut"; - usbdp_phy0_dp_altmode_mux = "/phy@fed80000/port/endpoint@1"; - i2s2m0_idle = "/pinctrl/i2s2/i2s2m0-idle"; - spi1m0_cs0 = "/pinctrl/spi1/spi1m0-cs0"; - rkcif_mipi_lvds1_sditf_vir2 = "/rkcif-mipi-lvds1-sditf-vir2"; - i2s3_sclk = "/pinctrl/i2s3/i2s3-sclk"; - hdmim1_rx_hpdin = "/pinctrl/hdmi/hdmim1-rx-hpdin"; - spi3m0_cs1 = "/pinctrl/spi3/spi3m0-cs1"; - mipi_dcphy1 = "/mipi-dcphy-dummy"; - vcc5v0_sys = "/vcc5v0-sys"; - aclk_hdcp0_pre = "/clocks/aclk_hdcp0_pre@fd7c08dc"; - usb_con = "/i2c@fec80000/fusb302@22/connector"; - hdmirx_ctrler = "/hdmirx-controller@fdee0000"; - i2c7m1_xfer = "/pinctrl/i2c7/i2c7m1-xfer"; - pcfg_pull_up_drv_level_3 = "/pinctrl/pcfg-pull-up-drv-level-3"; - i2c4m0_xfer = "/pinctrl/i2c4/i2c4m0-xfer"; - pcfg_pull_down_drv_level_7 = "/pinctrl/pcfg-pull-down-drv-level-7"; - spdif0m0_tx = "/pinctrl/spdif0/spdif0m0-tx"; - wdt = "/watchdog@feaf0000"; - vdd_0v85_s0 = "/spi@feb20000/rk806single@0/regulators/NLDO_REG4"; - cspmu = "/cspmu@fd10c000"; - gmac_uio0 = "/uio@fe1b0000"; - av1d_mmu = "/iommu@fdca0000"; - mailbox2 = "/mailbox@fece0000"; - mipi4_csi2_hw = "/mipi4-csi2-hw@fdd50000"; - pdm1m1_idle = "/pinctrl/pdm1/pdm1m1-idle"; - rga3_core0 = "/rga@fdb60000"; - i2s1m0_sdo0 = "/pinctrl/i2s1/i2s1m0-sdo0"; - bigcore1_thermal = "/thermal-zones/bigcore1-thermal"; - pcfg_output_low_pull_up = "/pinctrl/pcfg-output-low-pull-up"; - spi2m1_pins = "/pinctrl/spi2/spi2m1-pins"; - pwm7m0_pins = "/pinctrl/pwm7/pwm7m0-pins"; - i2c2 = "/i2c@feaa0000"; - npu_grf = "/syscon@fd5a2000"; - i2s1m1_sdi0 = "/pinctrl/i2s1/i2s1m1-sdi0"; - mipi5_csi2 = "/mipi5-csi2"; - pwm8 = "/pwm@febe0000"; - log_leakage = "/otp@fecc0000/log-leakage@1a"; - cpub23_opp_info = "/otp@fecc0000/cpub23-opp-info@49"; - vdd_vdenc_mem_s0 = "/spi@feb20000/rk806single@0/regulators/DCDC_REG4"; - rga2 = "/rga@fdb80000"; - emmc_bus8 = "/pinctrl/emmc/emmc-bus8"; - qos_usb3_0 = "/qos@fdf3e200"; - sata1m0_pins = "/pinctrl/sata1/sata1m0-pins"; - uart8m0_xfer = "/pinctrl/uart8/uart8m0-xfer"; - pwm13m2_pins = "/pinctrl/pwm13/pwm13m2-pins"; - hdmi_debug3 = "/pinctrl/hdmi/hdmi-debug3"; - cam0_or_cam1_switch_pin = "/pinctrl/cam/cam0-or-cam1-switch-pin"; - mcum1_pins = "/pinctrl/mcu/mcum1-pins"; - pwm10m1_pins = "/pinctrl/pwm10/pwm10m1-pins"; - edp1_out = "/edp@fded0000/ports/port@1/endpoint"; - hclk_sdio_pre = "/clocks/hclk_sdio_pre@fd7c092c"; - usb_host0_ehci = "/usb@fc800000"; - edp1_in_vp0 = "/edp@fded0000/ports/port@0/endpoint@0"; - i2s10_8ch = "/i2s@fde00000"; - hdmi1_in = "/hdmi@fdea0000/ports/port@0"; - usb2phy1_grf = "/syscon@fd5d4000"; - pdm0m0_clk1 = "/pinctrl/pdm0/pdm0m0-clk1"; - jpege2_mmu = "/iommu@fdba8800"; - pwm13 = "/pwm@febf0010"; - pcie2x1l0 = "/pcie@fe170000"; - hdmi0_in_vp1 = "/hdmi@fde80000/ports/port@0/endpoint@1"; - hdmim0_tx1_cec = "/pinctrl/hdmi/hdmim0-tx1-cec"; - l2_cache_b1 = "/cpus/l2-cache-b1"; - cif_dvp_bus8 = "/pinctrl/cif/cif-dvp-bus8"; - qos_rga2_mro = "/qos@fdf66c00"; - aclk_rkvdec1_pre = "/clocks/aclk_rkvdec1_pre@fd7c08a4"; - i2c8m1_xfer = "/pinctrl/i2c8/i2c8m1-xfer"; - vdd_ddr_s0 = "/spi@feb20000/rk806single@0/regulators/DCDC_REG5"; - hdmirx_det = "/pinctrl/hdmirx/hdmirx-det"; - pca9555 = "/i2c@feab0000/gpio@21"; - qos_sdmmc = "/qos@fdf3d800"; - clk32k_out1 = "/pinctrl/clk32k/clk32k-out1"; - i2c5m0_xfer = "/pinctrl/i2c5/i2c5m0-xfer"; - cif_dvp_clk = "/pinctrl/cif/cif-dvp-clk"; - rknpu = "/npu@fdab0000"; - pcfg_pull_none_drv_level_2 = "/pinctrl/pcfg-pull-none-drv-level-2"; - spi3m2_cs0 = "/pinctrl/spi3/spi3m2-cs0"; - vp0 = "/vop@fdd90000/ports/port@0"; - rga3_1_mmu = "/iommu@fdb70f00"; - jtagm2_pins = "/pinctrl/jtag/jtagm2-pins"; - cpu_l0 = "/cpus/cpu@0"; - uart7 = "/serial@feba0000"; - rkisp1_vir2 = "/rkisp1-vir2"; - fec1_mmu = "/iommu@fdcd8f00"; - qos_vop_m0 = "/qos@fdf82000"; - pcie_clk1 = "/pcie-clk1"; - gmac1_ptp_ref_clk = "/pinctrl/gmac1/gmac1-ptp-ref-clk"; - spi3m1_pins = "/pinctrl/spi3/spi3m1-pins"; - pwm8m0_pins = "/pinctrl/pwm8/pwm8m0-pins"; - hdmi0_sound = "/hdmi0-sound"; - ioc = "/syscon@fd5f0000"; - spi0m0_pins = "/pinctrl/spi0/spi0m0-pins"; - avsd = "/avsd-plus@fdb51000"; - rkcif_mipi_lvds5_sditf_vir3 = "/rkcif-mipi-lvds5-sditf-vir3"; - u2phy2 = "/syscon@fd5d8000/usb2-phy@8000"; - sfc = "/spi@fe2b0000"; - csi2_dphy0 = "/csi2-dphy0"; - spi1 = "/spi@feb10000"; - spi4m1_cs0 = "/pinctrl/spi4/spi4m1-cs0"; - gpu_grf = "/syscon@fd5a0000"; - pcfg_pull_up_drv_level_14 = "/pinctrl/pcfg-pull-up-drv-level-14"; - wireless_bluetooth = "/wireless-bluetooth"; - pclk_av1_pre = "/clocks/pclk_av1_pre@fd7c0910"; - sata2m0_pins = "/pinctrl/sata2/sata2m0-pins"; - uart9m0_xfer = "/pinctrl/uart9/uart9m0-xfer"; - pwm14m2_pins = "/pinctrl/pwm14/pwm14m2-pins"; - i2s1m0_sdi2 = "/pinctrl/i2s1/i2s1m0-sdi2"; - pwm11m1_pins = "/pinctrl/pwm11/pwm11m1-pins"; - bt_sound = "/bt-sound"; - qos_rkvenc1_m0ro = "/qos@fdf61000"; - mclkout_i2s2 = "/clocks/mclkout-i2s2@fd58c318"; - dsi0 = "/dsi@fde20000"; - pdm1m0_clk1 = "/pinctrl/pdm1/pdm1m0-clk1"; - uart1m0_rtsn = "/pinctrl/uart1/uart1m0-rtsn"; - ddrphych2_pins = "/pinctrl/ddrphych2/ddrphych2-pins"; - route_edp0 = "/display-subsystem/route/route-edp0"; - hdmi0 = "/hdmi@fde80000"; - es8388_sound = "/es8388-sound"; - hdmi1_in_vp1 = "/hdmi@fdea0000/ports/port@0/endpoint@1"; - pcfg_pull_up_drv_level_1 = "/pinctrl/pcfg-pull-up-drv-level-1"; - pcfg_pull_down_drv_level_5 = "/pinctrl/pcfg-pull-down-drv-level-5"; - i2s0_sdo2 = "/pinctrl/i2s0/i2s0-sdo2"; - vop_out = "/vop@fdd90000/ports"; - vdd_0v75_s3 = "/spi@feb20000/rk806single@0/regulators/NLDO_REG1"; - hdmim1_rx = "/pinctrl/hdmi/hdmim1-rx"; - pcfg_pull_down_smt = "/pinctrl/pcfg-pull-down-smt"; - hdmim0_tx1_scl = "/pinctrl/hdmi/hdmim0-tx1-scl"; - hdmim0_tx1_sda = "/pinctrl/hdmi/hdmim0-tx1-sda"; - cpul_opp_info = "/otp@fecc0000/cpul-opp-info@3d"; - clk32k_in = "/pinctrl/clk32k/clk32k-in"; - usbdp_phy1 = "/phy@fed90000"; - mailbox0 = "/mailbox@fec60000"; - i2c6m0_xfer = "/pinctrl/i2c6/i2c6m0-xfer"; - pdm0m1_sdi2 = "/pinctrl/pdm0/pdm0m1-sdi2"; - sdmmc = "/mmc@fe2c0000"; - hclk_nvm = "/clocks/hclk_nvm@fd7c087c"; - hdmim0_tx1_hpd = "/pinctrl/hdmi/hdmim0-tx1-hpd"; - vp0_out_dp0 = "/vop@fdd90000/ports/port@0/endpoint@0"; - vddq_ddr_s0 = "/spi@feb20000/rk806single@0/regulators/DCDC_REG9"; - vcc_3v3_s3 = "/spi@feb20000/rk806single@0/regulators/DCDC_REG8"; - gmac0_ppstring = "/pinctrl/gmac0/gmac0-ppstring"; - i2c0 = "/i2c@fd880000"; - pdm1m1_clk = "/pinctrl/pdm1/pdm1m1-clk"; - pdm0m0_idle = "/pinctrl/pdm0/pdm0m0-idle"; - soc_thermal = "/thermal-zones/soc-thermal"; - cluster1_opp_table = "/cluster1-opp-table"; - i2s0_idle = "/pinctrl/i2s0/i2s0-idle"; - spi4m1_pins = "/pinctrl/spi4/spi4m1-pins"; - npu_opp_info = "/otp@fecc0000/npu-opp-info@55"; - pwm9m0_pins = "/pinctrl/pwm9/pwm9m0-pins"; - pwm6 = "/pwm@febd0020"; - spi1m0_pins = "/pinctrl/spi1/spi1m0-pins"; - hym8563 = "/i2c@fd880000/hym8563@51"; - i2s1m1_sclk = "/pinctrl/i2s1/i2s1m1-sclk"; - rk806_dvs2_gpio = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs2_gpio"; - hp_det = "/pinctrl/headphone/hp-det"; - hdmi_debug1 = "/pinctrl/hdmi/hdmi-debug1"; - vp1_out_dp1 = "/vop@fdd90000/ports/port@1/endpoint@3"; - qos_mcu_npu = "/qos@fdf72400"; - auddsm_pins = "/pinctrl/auddsm/auddsm-pins"; - i2s3_lrck = "/pinctrl/i2s3/i2s3-lrck"; - pcfg_pull_none_drv_level_2_smt = "/pinctrl/pcfg-pull-none-drv-level-2-smt"; - pwm15m2_pins = "/pinctrl/pwm15/pwm15m2-pins"; - pipe_phy1_grf = "/syscon@fd5c0000"; - pwm12m1_pins = "/pinctrl/pwm12/pwm12m1-pins"; - pwm11 = "/pwm@febe0030"; - rkisp_unite = "/rkisp-unite@fdcb0000"; - rkcif_mipi_lvds2_sditf = "/rkcif-mipi-lvds2-sditf"; - vp1_out_edp0 = "/vop@fdd90000/ports/port@1/endpoint@1"; - hclk_isp1_pre = "/clocks/hclk_isp1_pre@fd7c0868"; - rk806_dvs2_slp = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs2_slp"; - i2s7_8ch = "/i2s@fddf8000"; - uart5m1_rtsn = "/pinctrl/uart5/uart5m1-rtsn"; - mipidphy1_grf = "/syscon@fd5b5000"; - usbhost3_0 = "/usbhost3_0"; - jpege2 = "/jpege-core@fdba8000"; - pcfg_pull_none_drv_level_15 = "/pinctrl/pcfg-pull-none-drv-level-15"; - pcie3x2_intc = "/pcie@fe160000/legacy-interrupt-controller"; - vp2_out_dsi1 = "/vop@fdd90000/ports/port@2/endpoint@4"; - mipidphy0_in_ucam0 = "/csi2-dphy0/ports/port@0/endpoint@0"; - av1d = "/av1d@fdc70000"; - uart1m2_ctsn = "/pinctrl/uart1/uart1m2-ctsn"; - sdiom1_pins = "/pinctrl/sdio/sdiom1-pins"; - rockchip_suspend = "/rockchip-suspend"; - rk806_dvs2_pwrdn = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs2_pwrdn"; - pcfg_pull_none_drv_level_0 = "/pinctrl/pcfg-pull-none-drv-level-0"; - npu_thermal = "/thermal-zones/npu-thermal"; - i2c7m0_xfer = "/pinctrl/i2c7/i2c7m0-xfer"; - pdm1m1_sdi2 = "/pinctrl/pdm1/pdm1m1-sdi2"; - cpu_pins = "/pinctrl/cpu/cpu-pins"; - dsi0_in_vp2 = "/dsi@fde20000/ports/port@0/endpoint@0"; - bt_wake_gpio = "/pinctrl/wireless-bluetooth/bt-wake-gpio"; - uart5 = "/serial@feb80000"; - dwc3_0_role_switch = "/usbdrd3_0/usb@fc000000/port/endpoint@0"; - rkisp1_vir0 = "/rkisp1-vir0"; - fiq_debugger = "/fiq-debugger"; - usbdp_phy1_u3 = "/phy@fed90000/u3-port"; - spi0m0_cs1 = "/pinctrl/spi0/spi0m0-cs1"; - sdio = "/mmc@fe2d0000"; - rkcif_mipi_lvds_sditf_vir2 = "/rkcif-mipi-lvds-sditf-vir2"; - spdif1m2_tx = "/pinctrl/spdif1/spdif1m2-tx"; - qos_gpu_m3 = "/qos@fdf35600"; - pdm1m0_idle = "/pinctrl/pdm1/pdm1m0-idle"; - pcfg_pull_none_drv_level_6_smt = "/pinctrl/pcfg-pull-none-drv-level-6-smt"; - user_led = "/leds/user"; - rkcif_mipi_lvds5_sditf_vir1 = "/rkcif-mipi-lvds5-sditf-vir1"; - i2s2m1_sdi = "/pinctrl/i2s2/i2s2m1-sdi"; - uart8_xfer = "/pinctrl/uart8/uart8-xfer"; - u2phy0 = "/syscon@fd5d0000/usb2-phy@0"; - pclk_vo1_grf = "/clocks/pclk_vo1_grf@fd7c08ec"; - vdd_gpu_mem_s0 = "/spi@feb20000/rk806single@0/regulators/DCDC_REG1"; - spi2m0_pins = "/pinctrl/spi2/spi2m0-pins"; - qos_rga3_1 = "/qos@fdf36000"; - i2s2m1_sclk = "/pinctrl/i2s2/i2s2m1-sclk"; - pcfg_pull_up_drv_level_12 = "/pinctrl/pcfg-pull-up-drv-level-12"; - spdif_tx4 = "/spdif-tx@fdde8000"; - rkispp1 = "/rkispp@fdcd8000"; - hdmim2_tx1_cec = "/pinctrl/hdmi/hdmim2-tx1-cec"; - u2phy1_otg = "/syscon@fd5d4000/usb2-phy@4000/otg-port"; - hdptxphy_hdmi_clk0 = "/hdmiphy@fed60000/clk-port"; - i2s1m0_sdi0 = "/pinctrl/i2s1/i2s1m0-sdi0"; - mipi4_csi2 = "/mipi4-csi2"; - mclkout_i2s0 = "/clocks/mclkout-i2s0@fd58c318"; - vcc5v0_host3 = "/vcc5v0-host3"; - rkcif_mipi_lvds5 = "/rkcif-mipi-lvds5"; - vdd_cpu_big0_s0 = "/i2c@fd880000/rk8602@42"; - dp1 = "/dp@fde60000"; - emmc_data_strobe = "/pinctrl/emmc/emmc-data-strobe"; - pwm13m1_pins = "/pinctrl/pwm13/pwm13m1-pins"; - vop_pins = "/pinctrl/vop/vop-pins"; - pcie20x1m1_pins = "/pinctrl/pcie20x1/pcie20x1m1-pins"; - fspim2_cs1 = "/pinctrl/fspi/fspim2-cs1"; - vcc_hub = "/vcc-hub-regulator"; - mcum0_pins = "/pinctrl/mcu/mcum0-pins"; - pwm10m0_pins = "/pinctrl/pwm10/pwm10m0-pins"; - uart9m2_rtsn = "/pinctrl/uart9/uart9m2-rtsn"; - mipidcphy0 = "/phy@feda0000"; - uart6m1_rtsn = "/pinctrl/uart6/uart6m1-rtsn"; - vcc3v3_pcie30 = "/vcc3v3-pcie30"; - pcfg_pull_down_drv_level_3 = "/pinctrl/pcfg-pull-down-drv-level-3"; - mipim1_camera0_clk = "/pinctrl/mipi/mipim1-camera0-clk"; - i2s0_sdo0 = "/pinctrl/i2s0/i2s0-sdo0"; - vop = "/vop@fdd90000"; - gmac0_ptp_refclk = "/pinctrl/gmac0/gmac0-ptp-refclk"; - usbdp_phy0_orientation_switch = "/phy@fed80000/port/endpoint@0"; - vepu = "/vepu@fdb50000"; - cif_clk = "/pinctrl/cif/cif-clk"; - pcie30_phy_grf = "/syscon@fd5b8000"; - isp1_mmu = "/iommu@fdcc7f00"; - pdm0m1_sdi0 = "/pinctrl/pdm0/pdm0m1-sdi0"; - rkvdec1_mmu = "/iommu@fdc48700"; - edp1 = "/edp@fded0000"; - cam0_cam1_switch = "/cam0-cam1-switch"; - gmac1_ppstrig = "/pinctrl/gmac1/gmac1-ppstrig"; - i2c8m0_xfer = "/pinctrl/i2c8/i2c8m0-xfer"; - dsi1_in_vp2 = "/dsi@fde30000/ports/port@0/endpoint@0"; - hdmim2_rx_hpdin = "/pinctrl/hdmi/hdmim2-rx-hpdin"; - i2s1m1_sdo3 = "/pinctrl/i2s1/i2s1m1-sdo3"; - pcfg_pull_down_drv_level_14 = "/pinctrl/pcfg-pull-down-drv-level-14"; - gmac0_rx_bus2 = "/pinctrl/gmac0/gmac0-rx-bus2"; - rkcif_mipi_lvds4_sditf_vir2 = "/rkcif-mipi-lvds4-sditf-vir2"; - center_thermal = "/thermal-zones/center-thermal"; - uart0_ctsn = "/pinctrl/uart0/uart0-ctsn"; - uart4_rtsn = "/pinctrl/uart4/uart4-rtsn"; - pwm4 = "/pwm@febd0000"; - vdd2_ddr_s3 = "/spi@feb20000/rk806single@0/regulators/DCDC_REG6"; - jtagm1_pins = "/pinctrl/jtag/jtagm1-pins"; - rkisp0_vir2 = "/rkisp0-vir2"; - i2c1m4_xfer = "/pinctrl/i2c1/i2c1m4-xfer"; - l2_cache_l2 = "/cpus/l2-cache-l2"; - pcfg_pull_none_drv_level_9 = "/pinctrl/pcfg-pull-none-drv-level-9"; - qos_vdpu = "/qos@fdf67200"; - vp2_out_hdmi1 = "/vop@fdd90000/ports/port@2/endpoint@7"; - spi3m0_pins = "/pinctrl/spi3/spi3m0-pins"; - pcfg_output_low_pull_none = "/pinctrl/pcfg-output-low-pull-none"; - spi0m2_cs0 = "/pinctrl/spi0/spi0m2-cs0"; - rkisp1 = "/rkisp@fdcc0000"; - usbdpphy1_grf = "/syscon@fd5cc000"; - mipim1_camera4_clk = "/pinctrl/mipi/mipim1-camera4-clk"; - mipim0_camera2_clk = "/pinctrl/mipi/mipim0-camera2-clk"; - csi2_dcphy1 = "/csi2-dcphy1"; - hdmim2_tx1_scl = "/pinctrl/hdmi/hdmim2-tx1-scl"; - hdmim2_tx1_sda = "/pinctrl/hdmi/hdmim2-tx1-sda"; - spi2m2_cs1 = "/pinctrl/spi2/spi2m2-cs1"; - chosen = "/chosen"; - soc_crit = "/thermal-zones/soc-thermal/trips/soc-crit"; - rk806_dvs1_rst = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs1_rst"; - mpp_srv = "/mpp-srv"; - hclk_rkvenc1_pre = "/clocks/hclk_rkvenc1_pre@fd7c08c0"; - dp0m2_pins = "/pinctrl/dp0/dp0m2-pins"; - debug = "/debug@fd104000"; - jpege0 = "/jpege-core@fdba0000"; - pcfg_pull_none_drv_level_13 = "/pinctrl/pcfg-pull-none-drv-level-13"; - pwm14m1_pins = "/pinctrl/pwm14/pwm14m1-pins"; - pwm11m0_pins = "/pinctrl/pwm11/pwm11m0-pins"; - vp2_out_dp0 = "/vop@fdd90000/ports/port@2/endpoint@0"; - qos_rkvenc0_m0ro = "/qos@fdf60000"; - its0 = "/interrupt-controller@fe600000/msi-controller@fe640000"; - cpu_b2 = "/cpus/cpu@600"; - uart7m1_rtsn = "/pinctrl/uart7/uart7m1-rtsn"; - usb_5v_ctrl = "/pinctrl/usb-typec/usb-5v-ctrl"; - tsadc_gpio_func = "/pinctrl/gpio-func/tsadc-gpio-func"; - spi1m1_cs0 = "/pinctrl/spi1/spi1m1-cs0"; - pcfg_pull_down = "/pinctrl/pcfg-pull-down"; - dmc_opp_info = "/otp@fecc0000/dmc-opp-info@5b"; - ddrphych1_pins = "/pinctrl/ddrphych1/ddrphych1-pins"; - dsi0_in = "/dsi@fde20000/ports/port@0"; - pdm1m1_sdi0 = "/pinctrl/pdm1/pdm1m1-sdi0"; - spi3m1_cs1 = "/pinctrl/spi3/spi3m1-cs1"; - bigcore0_grf = "/syscon@fd590000"; - cpub1_leakage = "/otp@fecc0000/cpub1-leakage@18"; - uart3 = "/serial@feb60000"; - aclk_hdcp1_pre = "/clocks/aclk_hdcp1_pre@fd7c08ec"; - pcfg_pull_up = "/pinctrl/pcfg-pull-up"; - rkcif_mipi_lvds3_sditf_vir3 = "/rkcif-mipi-lvds3-sditf-vir3"; - codec_leakage = "/otp@fecc0000/codec-leakage@29"; - pcfg_pull_up_drv_level_8 = "/pinctrl/pcfg-pull-up-drv-level-8"; - dmac1 = "/dma-controller@fea30000"; - pdm0m0_sdi2 = "/pinctrl/pdm0/pdm0m0-sdi2"; - i2s1m1_lrck = "/pinctrl/i2s1/i2s1m1-lrck"; - qos_gpu_m1 = "/qos@fdf35200"; - i2s0_sdi2 = "/pinctrl/i2s0/i2s0-sdi2"; - spi2m0_cs0 = "/pinctrl/spi2/spi2m0-cs0"; - gpu_opp_info = "/otp@fecc0000/gpu-opp-info@4f"; - csi2_dphy1_hw = "/csi2-dphy1-hw@fedc8000"; - pcfg_pull_up_drv_level_10 = "/pinctrl/pcfg-pull-up-drv-level-10"; - spdif_tx2 = "/spdif-tx@fddb0000"; - npu_opp_table = "/npu-opp-table"; - spi4m0_cs1 = "/pinctrl/spi4/spi4m0-cs1"; - vo0_grf = "/syscon@fd5a6000"; - i2c2m4_xfer = "/pinctrl/i2c2/i2c2m4-xfer"; - qos_usb2host_0 = "/qos@fdf3e400"; - spi4m0_pins = "/pinctrl/spi4/spi4m0-pins"; - rkcif_mipi_lvds3 = "/rkcif-mipi-lvds3"; - i2s1m0_sclk = "/pinctrl/i2s1/i2s1m0-sclk"; - i2c7 = "/i2c@fec90000"; - mipi2_csi2_output = "/mipi2-csi2/ports/port@1/endpoint@0"; - mipi_te0 = "/pinctrl/mipi/mipi-te0"; - sata_reset = "/pinctrl/sata/sata-reset"; - dp1m2_pins = "/pinctrl/dp1/dp1m2-pins"; - pwm15m1_pins = "/pinctrl/pwm15/pwm15m1-pins"; - pcfg_pull_down_drv_level_1 = "/pinctrl/pcfg-pull-down-drv-level-1"; - pwm12m0_pins = "/pinctrl/pwm12/pwm12m0-pins"; - qos_vicap_m1 = "/qos@fdf40800"; - sdmmc_cmd = "/pinctrl/sdmmc/sdmmc-cmd"; - uart8m1_rtsn = "/pinctrl/uart8/uart8m1-rtsn"; - usb2phy2_grf = "/syscon@fd5d8000"; - rkvdec1_sram = "/sram@ff001000/rkvdec-sram@78000"; - uart5m0_rtsn = "/pinctrl/uart5/uart5m0-rtsn"; - jpege3_mmu = "/iommu@fdbac800"; - vcc_2v0_pldo_s3 = "/spi@feb20000/rk806single@0/regulators/DCDC_REG7"; - i2s3_mclk = "/pinctrl/i2s3/i2s3-mclk"; - mclkout_i2s1m1 = "/clocks/mclkout-i2s1@fd58a000"; - spdif_tx1_dc = "/spdif-tx1-dc"; - uart0m2_xfer = "/pinctrl/uart0/uart0m2-xfer"; - wifi_host_wake_irq = "/pinctrl/wireless-wlan/wifi-host-wake-irq"; - i2s1m1_sdo1 = "/pinctrl/i2s1/i2s1m1-sdo1"; - uart1m1_ctsn = "/pinctrl/uart1/uart1m1-ctsn"; - pcfg_pull_down_drv_level_12 = "/pinctrl/pcfg-pull-down-drv-level-12"; - sdiom0_pins = "/pinctrl/sdio/sdiom0-pins"; - pcfg_pull_up_smt = "/pinctrl/pcfg-pull-up-smt"; - php_grf = "/syscon@fd5b0000"; - pwm2 = "/pwm@fd8b0020"; - pdm1m0_sdi2 = "/pinctrl/pdm1/pdm1m0-sdi2"; - i2s2m1_lrck = "/pinctrl/i2s2/i2s2m1-lrck"; - gmac0_stmmac_axi_setup = "/ethernet@fe1b0000/stmmac-axi-config"; - mipi1_csi2_hw = "/mipi1-csi2-hw@fdd20000"; - sata1 = "/sata@fe220000"; - rkispp1_vir0 = "/rkispp1-vir0"; - dp0_in_vp1 = "/dp@fde50000/ports/port@0/endpoint@1"; - CPU_SLEEP = "/cpus/idle-states/cpu-sleep"; - rkisp0_vir0 = "/rkisp0-vir0"; - spi3m3_cs0 = "/pinctrl/spi3/spi3m3-cs0"; - specification_serial_number = "/otp@fecc0000/specification-serial-number@6"; - l2_cache_l0 = "/cpus/l2-cache-l0"; - pcfg_pull_none_drv_level_7 = "/pinctrl/pcfg-pull-none-drv-level-7"; - qos_hdcp0 = "/qos@fdf80000"; - qos_npu0_mro = "/qos@fdf72200"; - usbdrd_dwc3_1 = "/usbdrd3_1/usb@fc400000"; - rkvenc1 = "/rkvenc-core@fdbe0000"; - display_subsystem = "/display-subsystem"; - i2c3m4_xfer = "/pinctrl/i2c3/i2c3m4-xfer"; - pcie30x2m3_pins = "/pinctrl/pcie30x2/pcie30x2m3-pins"; - qos_npu2 = "/qos@fdf71000"; - i2s0_8ch = "/i2s@fe470000"; - i2s2m0_sclk = "/pinctrl/i2s2/i2s2m0-sclk"; - pmu = "/power-management@fd8d8000"; - gmac1_tx_bus2 = "/pinctrl/gmac1/gmac1-tx-bus2"; - pcfg_pull_none_drv_level_11 = "/pinctrl/pcfg-pull-none-drv-level-11"; - route_hdmi1 = "/display-subsystem/route/route-hdmi1"; - csi2_dphy5 = "/csi2-dphy5"; - spi4m2_cs0 = "/pinctrl/spi4/spi4m2-cs0"; - mipi3_csi2 = "/mipi3-csi2"; - pmu0_grf = "/syscon@fd588000"; - fan = "/pwm-fan"; - cpu_b0 = "/cpus/cpu@400"; - vccio_sd_s0 = "/spi@feb20000/rk806single@0/regulators/PLDO_REG5"; - qos_rkvenc1_m2wo = "/qos@fdf61400"; - gpio4 = "/pinctrl/gpio@fec50000"; - hdmim0_rx_cec = "/pinctrl/hdmi/hdmim0-rx-cec"; - pwm3m3_pins = "/pinctrl/pwm3/pwm3m3-pins"; - aclk_vdpu_low_pre = "/clocks/aclk_vdpu_low_pre@fd7c08b0"; - mmu600_php = "/iommu@fcb00000"; - cif_mipi2_in1 = "/rkcif-mipi-lvds2/port/endpoint"; - pwm0m2_pins = "/pinctrl/pwm0/pwm0m2-pins"; - pwm13m0_pins = "/pinctrl/pwm13/pwm13m0-pins"; - pcie20x1m0_pins = "/pinctrl/pcie20x1/pcie20x1m0-pins"; - bt656_pins = "/pinctrl/bt656/bt656-pins"; - hdmi1_sound = "/hdmi1-sound"; - uart9m1_rtsn = "/pinctrl/uart9/uart9m1-rtsn"; - uart6m0_rtsn = "/pinctrl/uart6/uart6m0-rtsn"; - pcie2x1l2_intc = "/pcie@fe190000/legacy-interrupt-controller"; - mod_sleep = "/mod-sleep-regulator"; - gpu_thermal = "/thermal-zones/gpu-thermal"; - hdmim1_tx0_cec = "/pinctrl/hdmi/hdmim1-tx0-cec"; - uart1 = "/serial@feb40000"; - rkcif_mipi_lvds3_sditf_vir1 = "/rkcif-mipi-lvds3-sditf-vir1"; - pcfg_pull_up_drv_level_6 = "/pinctrl/pcfg-pull-up-drv-level-6"; - qos_rkvdec0 = "/qos@fdf62000"; - vp2_out_edp0 = "/vop@fdd90000/ports/port@2/endpoint@1"; - uart1m2_xfer = "/pinctrl/uart1/uart1m2-xfer"; - pdm0m0_sdi0 = "/pinctrl/pdm0/pdm0m0-sdi0"; - fspim2_pins = "/pinctrl/fspi/fspim2-pins"; - i2s0_sdi0 = "/pinctrl/i2s0/i2s0-sdi0"; - gpu_pins = "/pinctrl/gpu/gpu-pins"; - imx415 = "/i2c@fec80000/imx415@37"; - vp3_out_dsi1 = "/vop@fdd90000/ports/port@3/endpoint@1"; - i2s4_8ch = "/i2s@fddc0000"; - ramoops = "/reserved-memory/ramoops@110000"; - dp0_sound = "/dp0-sound"; - spdif_tx0 = "/spdif-tx@fe4e0000"; - dp1_in_vp1 = "/dp@fde60000/ports/port@0/endpoint@1"; - i2s1m0_sdo3 = "/pinctrl/i2s1/i2s1m0-sdo3"; - mipi2_csi2_input1 = "/mipi2-csi2/ports/port@0/endpoint@0"; - vcc_1v8_s0 = "/spi@feb20000/rk806single@0/regulators/PLDO_REG2"; - vp1_out_hdmi0 = "/vop@fdd90000/ports/port@1/endpoint@2"; - vcc12v_dcin = "/vcc12v-dcin"; - vp0_out_edp1 = "/vop@fdd90000/ports/port@0/endpoint@4"; - uart3_rtsn = "/pinctrl/uart3/uart3-rtsn"; - gmac1_rgmii_clk = "/pinctrl/gmac1/gmac1-rgmii-clk"; - package_serial_number_high = "/otp@fecc0000/package-serial-number-high@5"; - hdcp0 = "/hdcp@fde40000"; - qos_fisheye1 = "/qos@fdf40200"; - rkcif_mipi_lvds1 = "/rkcif-mipi-lvds1"; - i2c5 = "/i2c@fead0000"; - jtagm0_pins = "/pinctrl/jtag/jtagm0-pins"; - i2c4m4_xfer = "/pinctrl/i2c4/i2c4m4-xfer"; - spdif_tx1_sound = "/spdif-tx1-sound"; - qos_jpeg_enc2 = "/qos@fdf66800"; - hdmi0_in = "/hdmi@fde80000/ports/port@0"; - i2s1m1_sdi3 = "/pinctrl/i2s1/i2s1m1-sdi3"; - i2c1m3_xfer = "/pinctrl/i2c1/i2c1m3-xfer"; - hdptxphy_hdmi0 = "/hdmiphy@fed60000"; - sdmmc_pwren = "/pinctrl/sdmmc/sdmmc-pwren"; - usbdp_phy1_dp = "/phy@fed90000/dp-port"; - npu_leakage = "/otp@fecc0000/npu-leakage@28"; - aclk_jpeg_decoder_pre = "/clocks/aclk_jpeg_decoder_pre@fd7c08b0"; - pdm0 = "/pdm@fe4b0000"; - gmac1_miim = "/pinctrl/gmac1/gmac1-miim"; - pcfg_output_high_pull_down = "/pinctrl/pcfg-output-high-pull-down"; - hdmi_debug6 = "/pinctrl/hdmi/hdmi-debug6"; - pcie3x4 = "/pcie@fe150000"; - can0m1_pins = "/pinctrl/can0/can0m1-pins"; - mclkin_i2s2 = "/clocks/mclkin-i2s2"; - jpege_ccu = "/jpege-ccu"; - pcfg_pull_none_drv_level_3_smt = "/pinctrl/pcfg-pull-none-drv-level-3-smt"; - hdmim1_rx_cec = "/pinctrl/hdmi/hdmim1-rx-cec"; - pipe_phy2_grf = "/syscon@fd5c4000"; - dp0m1_pins = "/pinctrl/dp0/dp0m1-pins"; - rkvdec1 = "/rkvdec-core@fdc48000"; - pwm1m2_pins = "/pinctrl/pwm1/pwm1m2-pins"; - pwm14m0_pins = "/pinctrl/pwm14/pwm14m0-pins"; - little_core_thermal = "/thermal-zones/littlecore-thermal"; - rk806_dvs3_slp = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs3_slp"; - usb_5v = "/usb-5v"; - i2s8_8ch = "/i2s@fddc8000"; - drm_cubic_lut = "/reserved-memory/drm-cubic-lut@00000000"; - rkcif_mipi_lvds2_sditf_vir2 = "/rkcif-mipi-lvds2-sditf-vir2"; - hdptxphy0 = "/phy@fed60000"; - pcie30x1_0_button_rstn = "/pinctrl/pcie30x1/pcie30x1-0-button-rstn"; - u2phy3_host = "/syscon@fd5dc000/usb2-phy@c000/host-port"; - route_dp0 = "/display-subsystem/route/route-dp0"; - hdmim0_rx_scl = "/pinctrl/hdmi/hdmim0-rx-scl"; - hdmim0_rx_sda = "/pinctrl/hdmi/hdmim0-rx-sda"; - uart7m0_rtsn = "/pinctrl/uart7/uart7m0-rtsn"; - pcfg_pull_down_drv_level_10 = "/pinctrl/pcfg-pull-down-drv-level-10"; - usbdrd3_0 = "/usbdrd3_0"; - ddrphych0_pins = "/pinctrl/ddrphych0/ddrphych0-pins"; - bt_irq_gpio = "/pinctrl/wireless-bluetooth/bt-irq-gpio"; - pwm0 = "/pwm@fd8b0000"; - uart2m2_xfer = "/pinctrl/uart2/uart2m2-xfer"; - pdm1m0_sdi0 = "/pinctrl/pdm1/pdm1m0-sdi0"; - hdmim1_tx0_scl = "/pinctrl/hdmi/hdmim1-tx0-scl"; - hdmim1_tx0_sda = "/pinctrl/hdmi/hdmim1-tx0-sda"; - can1 = "/can@fea60000"; - rkvtunnel = "/rkvtunnel"; - pcfg_pull_none_drv_level_5 = "/pinctrl/pcfg-pull-none-drv-level-5"; - rkcif_mipi_lvds3_sditf = "/rkcif-mipi-lvds3-sditf"; - combphy2_psu = "/phy@fee20000"; - vp3 = "/vop@fdd90000/ports/port@3"; - rk806_dvs2_dvs = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs2_dvs"; - mmu600_pcie = "/iommu@fc900000"; - hdmim1_tx0_hpd = "/pinctrl/hdmi/hdmim1-tx0-hpd"; - i2s1m0_lrck = "/pinctrl/i2s1/i2s1m0-lrck"; - cpu_l3 = "/cpus/cpu@300"; - spi0m1_cs1 = "/pinctrl/spi0/spi0m1-cs1"; - vp0_out_hdmi1 = "/vop@fdd90000/ports/port@0/endpoint@5"; - spdif_rx1 = "/spdif-rx@fde10000"; - gmac0_clkinout = "/pinctrl/gmac0/gmac0-clkinout"; - rkcif_dvp = "/rkcif-dvp"; - i2c5m4_xfer = "/pinctrl/i2c5/i2c5m4-xfer"; - wireless_wlan = "/wireless-wlan"; - rkcif_mipi_lvds = "/rkcif-mipi-lvds"; - avdd_0v75_s0 = "/spi@feb20000/rk806single@0/regulators/NLDO_REG3"; - i2c2m3_xfer = "/pinctrl/i2c2/i2c2m3-xfer"; - pcie30x4m3_pins = "/pinctrl/pcie30x4/pcie30x4m3-pins"; - hclk_rkvdec0_pre = "/clocks/hclk_rkvdec0_pre@fd7c08a0"; - route_dsi0 = "/display-subsystem/route/route-dsi0"; - rk806_dvs3_pwrdn = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs3_pwrdn"; - csi2_dphy3 = "/csi2-dphy3"; - pcie30x1m2_pins = "/pinctrl/pcie30x1/pcie30x1m2-pins"; - spi4 = "/spi@fecb0000"; - litcore_grf = "/syscon@fd594000"; - isp0_vir2 = "/rkisp0-vir2/port/endpoint@0"; - i2s1m1_mclk = "/pinctrl/i2s1/i2s1m1-mclk"; - sys_grf = "/syscon@fd58c000"; - edp0_in_vp1 = "/edp@fdec0000/ports/port@0/endpoint@1"; - mdio0 = "/ethernet@fe1b0000/mdio"; - rkisp_unite_mmu = "/rkisp-unite-mmu@fdcb7f00"; - gpio2 = "/pinctrl/gpio@fec30000"; - spi1m0_cs1 = "/pinctrl/spi1/spi1m0-cs1"; - aclk_av1_pre = "/clocks/aclk_av1_pre@fd7c0910"; - can1m1_pins = "/pinctrl/can1/can1m1-pins"; - rkcif_mipi_lvds1_sditf_vir3 = "/rkcif-mipi-lvds1-sditf-vir3"; - hdmim2_rx_cec = "/pinctrl/hdmi/hdmim2-rx-cec"; - mipi3_csi2_hw = "/mipi3-csi2-hw@fdd40000"; - dp1m1_pins = "/pinctrl/dp1/dp1m1-pins"; - pwm2m2_pins = "/pinctrl/pwm2/pwm2m2-pins"; - pwm15m0_pins = "/pinctrl/pwm15/pwm15m0-pins"; - hclk_vo0 = "/clocks/hclk_vo0@fd7c08dc"; - bigcore0_thermal = "/thermal-zones/bigcore0-thermal"; - hdmim1_rx_scl = "/pinctrl/hdmi/hdmim1-rx-scl"; - hdmim1_rx_sda = "/pinctrl/hdmi/hdmim1-rx-sda"; - uart8m0_rtsn = "/pinctrl/uart8/uart8m0-rtsn"; - pcfg_pull_up_drv_level_4 = "/pinctrl/pcfg-pull-up-drv-level-4"; - mipim1_camera1_clk = "/pinctrl/mipi/mipim1-camera1-clk"; - rkvdec0_sram = "/sram@ff001000/rkvdec-sram@0"; - pcfg_pull_down_drv_level_8 = "/pinctrl/pcfg-pull-down-drv-level-8"; - usbc0_orien_sw = "/i2c@fec80000/fusb302@22/connector/ports/port@0/endpoint"; - jpegd = "/jpegd@fdb90000"; - uart3m2_xfer = "/pinctrl/uart3/uart3m2-xfer"; - minidump_smem = "/reserved-memory/minidump-smem@1f0000"; - i2s0_sclk = "/pinctrl/i2s0/i2s0-sclk"; - uart0m1_xfer = "/pinctrl/uart0/uart0m1-xfer"; - rga3_core1 = "/rga@fdb70000"; - i2s1m0_sdo1 = "/pinctrl/i2s1/i2s1m0-sdo1"; - uart1m0_ctsn = "/pinctrl/uart1/uart1m0-ctsn"; - vcc5v0_usb = "/vcc5v0-usb"; - minidump = "/minidump"; - }; - - rkvdec-ccu@fdc30000 { - power-domains = <0x60 0x0e>; - rockchip,ccu-mode = <0x01>; - clock-names = "aclk_ccu"; - reg-names = "ccu"; - assigned-clocks = <0x02 0x18e>; - assigned-clock-rates = <0x23c34600>; - resets = <0x02 0x282>; - clocks = <0x02 0x18e>; - compatible = "rockchip,rkv-decoder-v2-ccu"; - status = "okay"; - rockchip,skip-pmu-idle-request; - reg = <0x00 0xfdc30000 0x00 0x100>; - phandle = <0xca>; - reset-names = "video_ccu"; - }; - - qos@fdf60000 { - compatible = "syscon"; - reg = <0x00 0xfdf60000 0x00 0x20>; - phandle = <0x8d>; - }; - - iommu@fdb50800 { - power-domains = <0x60 0x15>; - clock-names = "aclk\0iface"; - interrupts = <0x00 0x76 0x04>; - clocks = <0x02 0x1c0 0x02 0x1c1>; - #iommu-cells = <0x00>; - compatible = "rockchip,iommu-v2"; - status = "okay"; - interrupt-names = "irq_vdpu_mmu"; - reg = <0x00 0xfdb50800 0x00 0x40>; - phandle = <0xb7>; - }; - - rga@fdb60000 { - power-domains = <0x60 0x16>; - iommus = <0xb9>; - clock-names = "aclk_rga3_0\0hclk_rga3_0\0clk_rga3_0"; - interrupts = <0x00 0x72 0x04>; - clocks = <0x02 0x1ba 0x02 0x1b9 0x02 0x1bb>; - compatible = "rockchip,rga3_core0"; - status = "okay"; - interrupt-names = "rga3_core0_irq"; - reg = <0x00 0xfdb60000 0x00 0x1000>; - phandle = <0x269>; - }; - - qos@fdf67200 { - compatible = "syscon"; - reg = <0x00 0xfdf67200 0x00 0x20>; - phandle = <0x28b>; - }; - - vepu@fdb50000 { - power-domains = <0x60 0x15>; - iommus = <0xb7>; - clock-names = "aclk_vcodec\0hclk_vcodec"; - assigned-clocks = <0x02 0x1c0>; - rockchip,normal-rates = <0x2367b880 0x00>; - assigned-clock-rates = <0x2367b880>; - resets = <0x02 0x2c8 0x02 0x2c9>; - interrupts = <0x00 0x78 0x04>; - clocks = <0x02 0x1c0 0x02 0x1c1>; - rockchip,srv = <0xb8>; - rockchip,taskqueue-node = <0x00>; - rockchip,disable-auto-freq; - compatible = "rockchip,vpu-encoder-v2"; - rockchip,resetgroup-node = <0x00>; - status = "disabled"; - interrupt-names = "irq_vepu"; - rockchip,skip-pmu-idle-request; - reg = <0x00 0xfdb50000 0x00 0x400>; - phandle = <0x266>; - reset-names = "shared_video_a\0shared_video_h"; - }; - - mipi3-csi2 { - rockchip,hw = <0x47 0x48 0x49 0x4a 0x4b 0x4c>; - compatible = "rockchip,rk3588-mipi-csi2"; - status = "disabled"; - phandle = <0x227>; - }; - - hdmi0-sound { - rockchip,jack-det; - rockchip,cpu = <0x1d3>; - rockchip,codec = <0x1d4>; - rockchip,card-name = "rockchip-hdmi0"; - compatible = "rockchip,hdmi"; - status = "okay"; - phandle = <0x49b>; - rockchip,mclk-fs = <0x80>; - }; - - reserved-memory { - #address-cells = <0x02>; - #size-cells = <0x02>; - ranges; - - minidump-smem@1f0000 { - status = "disabled"; - reg = <0x00 0x1f0000 0x00 0x100>; - phandle = <0x1cf>; - no-map; - }; - - minidump-mem@c000000 { - status = "disabled"; - reg = <0x00 0xc000000 0x00 0x2000000>; - phandle = <0x1d0>; - no-map; - }; - - cma { - linux,cma-default; - compatible = "shared-dma-pool"; - size = <0x00 0x800000>; - reusable; - }; - - drm-logo@00000000 { - compatible = "rockchip,drm-logo"; - reg = <0x00 0xedf00000 0x00 0x2e0000>; - phandle = <0x37>; - }; - - ramoops@110000 { - boot-log-count = <0x01>; - record-size = <0x14000>; - pmsg-size = <0x30000>; - compatible = "ramoops"; - console-size = <0x80000>; - reg = <0x00 0x110000 0x00 0xe0000>; - phandle = <0x493>; - boot-log-size = <0x8000>; - ftrace-size = <0x00>; - }; - - drm-cubic-lut@00000000 { - compatible = "rockchip,drm-cubic-lut"; - reg = <0x00 0x00 0x00 0x00>; - phandle = <0x492>; - }; - }; - - pcie@fe160000 { - power-domains = <0x60 0x22>; - vpcie3v3-supply = <0x1ba>; - #address-cells = <0x03>; - rockchip,pipe-grf = <0x76>; - phy-names = "pcie-phy"; - bus-range = <0x10 0x1f>; - clock-names = "aclk_mst\0aclk_slv\0aclk_dbi\0pclk\0aux\0pipe"; - reg-names = "pcie-apb\0pcie-dbi"; - num-ob-windows = <0x10>; - resets = <0x02 0x20e 0x02 0x21d>; - interrupts = <0x00 0x102 0x04 0x00 0x101 0x04 0x00 0x100 0x04 0x00 0xff 0x04 0x00 0xfe 0x04>; - clocks = <0x02 0x14f 0x02 0x154 0x02 0x14a 0x02 0x159 0x02 0x15f 0x02 0x184>; - interrupt-map = <0x00 0x00 0x00 0x01 0x1b9 0x00 0x00 0x00 0x00 0x02 0x1b9 0x01 0x00 0x00 0x00 0x03 0x1b9 0x02 0x00 0x00 0x00 0x04 0x1b9 0x03>; - #size-cells = <0x02>; - max-link-speed = <0x03>; - device_type = "pci"; - interrupt-map-mask = <0x00 0x00 0x00 0x07>; - reset-gpios = <0x10d 0x08 0x00>; - num-lanes = <0x02>; - compatible = "rockchip,rk3588-pcie\0snps,dw-pcie"; - ranges = <0x800 0x00 0xf1000000 0x00 0xf1000000 0x00 0x100000 0x81000000 0x00 0xf1100000 0x00 0xf1100000 0x00 0x100000 0x82000000 0x00 0xf1200000 0x00 0xf1200000 0x00 0xe00000 0xc3000000 0x09 0x40000000 0x09 0x40000000 0x00 0x40000000>; - msi-map = <0x1000 0x1b6 0x1000 0x1000>; - #interrupt-cells = <0x01>; - status = "disabled"; - interrupt-names = "sys\0pmc\0msg\0legacy\0err"; - phys = <0x1b7>; - num-viewport = <0x08>; - reg = <0x00 0xfe160000 0x00 0x10000 0x0a 0x40400000 0x00 0x400000>; - linux,pci-domain = <0x01>; - phandle = <0x486>; - reset-names = "pcie\0periph"; - num-ib-windows = <0x10>; - - legacy-interrupt-controller { - #address-cells = <0x00>; - interrupts = <0x00 0xff 0x01>; - interrupt-parent = <0x01>; - #interrupt-cells = <0x01>; - phandle = <0x1b9>; - interrupt-controller; - }; - }; - - spdif-tx@fddb8000 { - power-domains = <0x60 0x19>; - clock-names = "mclk\0hclk"; - assigned-clocks = <0x02 0x20b>; - assigned-clock-parents = <0x02 0x05>; - interrupts = <0x00 0xc6 0x04>; - clocks = <0x02 0x20f 0x02 0x20a>; - dma-names = "tx"; - #sound-dai-cells = <0x00>; - compatible = "rockchip,rk3588-spdif\0rockchip,rk3568-spdif"; - status = "disabled"; - reg = <0x00 0xfddb8000 0x00 0x1000>; - phandle = <0x1e2>; - dmas = <0xf1 0x16>; - }; - - pvtm@fdb30000 { - #address-cells = <0x01>; - #size-cells = <0x00>; - compatible = "rockchip,rk3588-gpu-pvtm"; - reg = <0x00 0xfdb30000 0x00 0x100>; - - pvtm@4 { - clock-names = "clk"; - resets = <0x02 0x430 0x02 0x42f>; - clocks = <0x02 0x118>; - reg = <0x04>; - reset-names = "rts\0rst-p"; - }; - }; - - spdif-tx1-dc { - #sound-dai-cells = <0x00>; - compatible = "linux,spdif-dit"; - status = "disabled"; - phandle = <0x1d8>; - }; - - csi2-dphy0 { - rockchip,hw = <0x2d 0x2e>; - phy-names = "dcphy0\0dcphy1"; - compatible = "rockchip,rk3588-csi2-dphy"; - status = "okay"; - phys = <0x2f 0x30>; - firefly-compatible; - phandle = <0x20f>; - - ports { - #address-cells = <0x01>; - #size-cells = <0x00>; - - port@0 { - #address-cells = <0x01>; - #size-cells = <0x00>; - reg = <0x00>; - - endpoint@1 { - data-lanes = <0x01 0x02 0x03 0x04>; - remote-endpoint = <0x32>; - reg = <0x01>; - phandle = <0x184>; - }; - - endpoint@0 { - data-lanes = <0x01 0x02 0x03 0x04>; - remote-endpoint = <0x31>; - reg = <0x00>; - phandle = <0x183>; - }; - }; - - port@1 { - #address-cells = <0x01>; - #size-cells = <0x00>; - reg = <0x01>; - - endpoint@0 { - remote-endpoint = <0x33>; - reg = <0x00>; - phandle = <0x4d>; - }; - }; - }; - }; - - rkisp-unite@fdcb0000 { - power-domains = <0x60 0x1c>; - iommus = <0xcf>; - clock-names = "aclk_isp0\0hclk_isp0\0clk_isp_core0\0clk_isp_core_marvin0\0clk_isp_core_vicap0\0aclk_isp1\0hclk_isp1\0clk_isp_core1\0clk_isp_core_marvin1\0clk_isp_core_vicap1"; - interrupts = <0x00 0x87 0x04 0x00 0x89 0x04 0x00 0x8a 0x04>; - clocks = <0x02 0x1de 0x02 0x1df 0x02 0x1db 0x02 0x1dc 0x02 0x1dd 0x02 0x120 0x02 0x121 0x02 0x11d 0x02 0x11e 0x02 0x11f>; - compatible = "rockchip,rk3588-rkisp-unite"; - status = "disabled"; - interrupt-names = "isp_irq\0mi_irq\0mipi_irq"; - reg = <0x00 0xfdcb0000 0x00 0x10000 0x00 0xfdcc0000 0x00 0x10000>; - phandle = <0x277>; - }; - - sata@fe230000 { - phy-names = "sata-phy"; - clock-names = "sata\0pmalive\0rxoob\0ref\0asic"; - interrupts = <0x00 0x113 0x04>; - clocks = <0x02 0x173 0x02 0x170 0x02 0x176 0x02 0x165 0x02 0x180>; - compatible = "rockchip,rk-ahci\0snps,dwc-ahci"; - status = "disabled"; - interrupt-names = "hostc"; - phys = <0x70 0x01>; - reg = <0x00 0xfe230000 0x00 0x1000>; - phandle = <0x291>; - ports-implemented = <0x01>; - }; - - syscon@fd5a0000 { - compatible = "rockchip,rk3588-gpu-grf\0syscon"; - reg = <0x00 0xfd5a0000 0x00 0x100>; - phandle = <0x65>; - }; - - bt-sound { - simple-audio-card,name = "rockchip,bt"; - simple-audio-card,format = "dsp_a"; - simple-audio-card,bitclock-inversion = <0x00>; - compatible = "simple-audio-card"; - status = "disabled"; - phandle = <0x49a>; - simple-audio-card,mclk-fs = <0x100>; - - simple-audio-card,cpu { - sound-dai = <0x1d1>; - }; - - simple-audio-card,codec { - sound-dai = <0x1d2 0x01>; - }; - }; - - iommu@fdb90480 { - power-domains = <0x60 0x15>; - clock-names = "aclk\0iface"; - interrupts = <0x00 0x82 0x04>; - clocks = <0x02 0x1b4 0x02 0x1b5>; - #iommu-cells = <0x00>; - compatible = "rockchip,iommu-v2"; - status = "okay"; - interrupt-names = "irq_jpegd_mmu"; - reg = <0x00 0xfdb90480 0x00 0x40>; - phandle = <0xbb>; - }; - - hdcp@fde70000 { - power-domains = <0x60 0x1a>; - clock-names = "aclk\0pclk\0hclk\0hclk_key\0aclk_trng\0pclk_trng"; - resets = <0x02 0x3c8 0x02 0x3c6 0x02 0x3c5 0x02 0x3c4 0x02 0x3ca>; - interrupts = <0x00 0xa0 0x04>; - clocks = <0x02 0x217 0x02 0x219 0x02 0x218 0x02 0x216 0x02 0x228 0x02 0x229>; - compatible = "rockchip,rk3588-hdcp"; - status = "disabled"; - reg = <0x00 0xfde70000 0x00 0x80>; - phandle = <0x287>; - reset-names = "hdcp\0h_hdcp\0a_hdcp\0hdcp_key\0trng"; - rockchip,vo-grf = <0xd8>; - }; - - spdif-tx@fe4f0000 { - power-domains = <0x60 0x26>; - pinctrl-names = "default"; - pinctrl-0 = <0x143>; - clock-names = "mclk\0hclk"; - assigned-clocks = <0x02 0x45>; - assigned-clock-parents = <0x02 0x05>; - interrupts = <0x00 0xc2 0x04>; - clocks = <0x02 0x47 0x02 0x44>; - dma-names = "tx"; - #sound-dai-cells = <0x00>; - compatible = "rockchip,rk3588-spdif\0rockchip,rk3568-spdif"; - status = "disabled"; - reg = <0x00 0xfe4f0000 0x00 0x1000>; - phandle = <0x1d7>; - dmas = <0xf1 0x05>; - }; - - rkcif-mipi-lvds-sditf-vir2 { - compatible = "rockchip,rkcif-sditf"; - status = "disabled"; - rockchip,cif = <0x52>; - phandle = <0x22d>; - }; - - es8388-sound { - pinctrl-names = "default"; - rockchip,cpu = <0x1da>; - pinctrl-0 = <0x1dc>; - rockchip,codec = <0x1db>; - hp-det-gpio = <0x79 0x13 0x00>; - rockchip,card-name = "rockchip-es8388"; - rockchip,format = "i2s"; - rockchip,audio-routing = "Headphone\0LOUT1\0Headphone\0ROUT1\0Speaker\0LOUT2\0Speaker\0ROUT2\0Headphone\0Headphone Power\0Headphone\0Headphone Power\0LINPUT2\0Main Mic\0RINPUT2\0Main Mic\0LINPUT1\0Headset Mic\0RINPUT1\0Headset Mic"; - compatible = "firefly,multicodecs-card"; - linein-type = <0x01>; - status = "okay"; - phandle = <0x49f>; - hp-con-gpio = <0x182 0x0b 0x00>; - firefly,not-use-dapm; - rockchip,mclk-fs = <0x180>; - }; - - spi@feb30000 { - pinctrl-names = "default"; - #address-cells = <0x01>; - num-cs = <0x02>; - pinctrl-0 = <0x15d 0x15e 0x15f>; - clock-names = "spiclk\0apb_pclk"; - interrupts = <0x00 0x149 0x04>; - clocks = <0x02 0xa6 0x02 0xa1>; - #size-cells = <0x00>; - dma-names = "tx\0rx"; - compatible = "rockchip,rk3066-spi"; - status = "disabled"; - reg = <0x00 0xfeb30000 0x00 0x1000>; - phandle = <0x2c8>; - dmas = <0xf1 0x11 0xf1 0x12>; - }; - - phy@fee80000 { - rockchip,pipe-grf = <0x76>; - clock-names = "pclk"; - rockchip,pcie30-phymode = <0x01>; - resets = <0x02 0x2000a>; - clocks = <0x02 0x188>; - #phy-cells = <0x00>; - compatible = "rockchip,rk3588-pcie3-phy"; - status = "okay"; - reg = <0x00 0xfee80000 0x00 0x20000>; - phandle = <0x1b7>; - reset-names = "phy"; - rockchip,phy-grf = <0x1cc>; - }; - - vcc12v-dcin { - regulator-max-microvolt = <0xb71b00>; - regulator-boot-on; - regulator-always-on; - regulator-min-microvolt = <0xb71b00>; - regulator-name = "vcc12v_dcin"; - compatible = "regulator-fixed"; - phandle = <0x1cd>; - }; - - qos@fdf61200 { - compatible = "syscon"; - reg = <0x00 0xfdf61200 0x00 0x20>; - phandle = <0x91>; - }; - - i2s@fde00000 { - power-domains = <0x60 0x1a>; - clock-names = "mclk_tx\0mclk_rx\0hclk"; - assigned-clocks = <0x02 0x234>; - assigned-clock-parents = <0x02 0x05>; - rockchip,capture-only; - resets = <0x02 0x417>; - interrupts = <0x00 0xbe 0x04>; - clocks = <0x02 0x237 0x02 0x237 0x02 0x233>; - dma-names = "rx"; - #sound-dai-cells = <0x00>; - compatible = "rockchip,rk3588-i2s-tdm"; - status = "disabled"; - reg = <0x00 0xfde00000 0x00 0x1000>; - phandle = <0x47e>; - dmas = <0xf2 0x18>; - reset-names = "rx-m"; - }; - - qos@fdf40800 { - compatible = "syscon"; - reg = <0x00 0xfdf40800 0x00 0x20>; - phandle = <0xa5>; - }; - - i2s@fddfc000 { - power-domains = <0x60 0x1a>; - clock-names = "mclk_tx\0mclk_rx\0hclk"; - assigned-clocks = <0x02 0x23f>; - assigned-clock-parents = <0x02 0x05>; - rockchip,capture-only; - resets = <0x02 0x413>; - interrupts = <0x00 0xbd 0x04>; - clocks = <0x02 0x242 0x02 0x242 0x02 0x23e>; - dma-names = "rx"; - #sound-dai-cells = <0x00>; - compatible = "rockchip,rk3588-i2s-tdm"; - status = "disabled"; - reg = <0x00 0xfddfc000 0x00 0x1000>; - phandle = <0x27f>; - dmas = <0xf2 0x17>; - reset-names = "rx-m"; - }; - - usbdrd3_0 { - #address-cells = <0x02>; - clock-names = "ref\0suspend\0bus"; - clocks = <0x02 0x1a3 0x02 0x1a2 0x02 0x1a1>; - #size-cells = <0x02>; - compatible = "rockchip,rk3588-dwc3\0rockchip,rk3399-dwc3"; - ranges; - status = "okay"; - phandle = <0x252>; - - usb@fc000000 { - power-domains = <0x60 0x1f>; - snps,dis-u1-entry-quirk; - snps,dis_enblslpm_quirk; - phy-names = "usb2-phy\0usb3-phy"; - snps,dis-u2-freeclk-exists-quirk; - usb-role-switch; - phy_type = "utmi_wide"; - quirk-skip-phy-init; - resets = <0x02 0x2a4>; - interrupts = <0x00 0xdc 0x04>; - snps,dis-u2-entry-quirk; - compatible = "snps,dwc3"; - snps,parkmode-disable-hs-quirk; - snps,dis-del-phy-power-chg-quirk; - status = "okay"; - snps,parkmode-disable-ss-quirk; - phys = <0x66 0x67>; - reg = <0x00 0xfc000000 0x00 0x400000>; - phandle = <0x253>; - dr_mode = "host"; - reset-names = "usb3-otg"; - snps,dis-tx-ipgap-linecheck-quirk; - - port { - #address-cells = <0x01>; - #size-cells = <0x00>; - - endpoint@0 { - remote-endpoint = <0x68>; - reg = <0x00>; - phandle = <0x17d>; - }; - }; - }; - }; - - rkcif-mipi-lvds5-sditf-vir2 { - compatible = "rockchip,rkcif-sditf"; - status = "disabled"; - rockchip,cif = <0x1a2>; - phandle = <0x478>; - }; - - rkcif-dvp-sditf { - compatible = "rockchip,rkcif-sditf"; - status = "disabled"; - rockchip,cif = <0x51>; - phandle = <0x22a>; - }; - - iommu@fdd97e00 { - rockchip,shootdown-entire; - clock-names = "aclk\0iface"; - interrupts = <0x00 0x9c 0x04>; - clocks = <0x02 0x270 0x02 0x26f>; - #iommu-cells = <0x00>; - compatible = "rockchip,iommu-v2"; - status = "okay"; - interrupt-names = "vop_mmu"; - reg = <0x00 0xfdd97e00 0x00 0x100 0x00 0xfdd97f00 0x00 0x100>; - phandle = <0xd6>; - rockchip,disable-device-link-resume; - }; - - rkvtunnel { - compatible = "rockchip,video-tunnel"; - status = "disabled"; - phandle = <0x245>; - }; - - syscon@fd5e0000 { - compatible = "rockchip,rk3588-hdptxphy-grf\0syscon"; - reg = <0x00 0xfd5e0000 0x00 0x100>; - phandle = <0x18a>; - }; - - i2c@fead0000 { - pinctrl-names = "default"; - #address-cells = <0x01>; - pinctrl-0 = <0x14d>; - clock-names = "i2c\0pclk"; - resets = <0x02 0xb4 0x02 0xac>; - interrupts = <0x00 0x142 0x04>; - clocks = <0x02 0x91 0x02 0x89>; - #size-cells = <0x00>; - compatible = "rockchip,rk3588-i2c\0rockchip,rk3399-i2c"; - status = "disabled"; - reg = <0x00 0xfead0000 0x00 0x1000>; - phandle = <0x2a8>; - reset-names = "i2c\0apb"; - }; - - iommu@fdba4800 { - power-domains = <0x60 0x15>; - clock-names = "aclk\0iface"; - interrupts = <0x00 0x7b 0x04>; - clocks = <0x02 0x1ae 0x02 0x1af>; - #iommu-cells = <0x00>; - compatible = "rockchip,iommu-v2"; - status = "okay"; - interrupt-names = "irq_jpege1_mmu"; - reg = <0x00 0xfdba4800 0x00 0x40>; - phandle = <0xbe>; - }; - - spdif-rx@fde10000 { - power-domains = <0x60 0x1a>; - clock-names = "mclk\0hclk"; - assigned-clocks = <0x02 0x260>; - assigned-clock-parents = <0x02 0x05>; - resets = <0x02 0x3ff>; - interrupts = <0x00 0xc8 0x04>; - clocks = <0x02 0x260 0x02 0x25f>; - dma-names = "rx"; - #sound-dai-cells = <0x00>; - compatible = "rockchip,rk3588-spdifrx\0rockchip,rk3308-spdifrx"; - status = "disabled"; - reg = <0x00 0xfde10000 0x00 0x1000>; - phandle = <0x47f>; - dmas = <0x7c 0x16>; - reset-names = "spdifrx-m"; - }; - - npu@fdab0000 { - power-domains = <0x60 0x09 0x60 0x0a 0x60 0x0b>; - iommus = <0xb2>; - clock-names = "clk_npu\0aclk0\0aclk1\0aclk2\0hclk0\0hclk1\0hclk2\0pclk"; - assigned-clocks = <0x0e 0x06>; - power-domain-names = "npu0\0npu1\0npu2"; - rknpu-supply = <0xb3>; - assigned-clock-rates = <0xbebc200>; - resets = <0x02 0x1e6 0x02 0x1b0 0x02 0x1c0 0x02 0x1e8 0x02 0x1b2 0x02 0x1c2>; - interrupts = <0x00 0x6e 0x04 0x00 0x6f 0x04 0x00 0x70 0x04>; - clocks = <0x0e 0x06 0x02 0x12d 0x02 0x122 0x02 0x124 0x02 0x12e 0x02 0x123 0x02 0x125 0x02 0x131>; - compatible = "rockchip,rk3588-rknpu"; - status = "okay"; - interrupt-names = "npu0_irq\0npu1_irq\0npu2_irq"; - mem-supply = <0xb3>; - reg = <0x00 0xfdab0000 0x00 0x10000 0x00 0xfdac0000 0x00 0x10000 0x00 0xfdad0000 0x00 0x10000>; - phandle = <0x265>; - reset-names = "srst_a0\0srst_a1\0srst_a2\0srst_h0\0srst_h1\0srst_h2"; - operating-points-v2 = <0xb1>; - }; - - hdmiphy@fed60000 { - clock-names = "ref\0apb"; - resets = <0x02 0x48e 0x02 0x485 0x02 0xc003b 0x02 0xc003c 0x02 0xc003d 0x02 0x48c 0x02 0x48d>; - clocks = <0x02 0x2b5 0x02 0x267>; - #phy-cells = <0x00>; - compatible = "rockchip,rk3588-hdptx-phy-hdmi"; - status = "okay"; - rockchip,grf = <0x18a>; - reg = <0x00 0xfed60000 0x00 0x2000>; - phandle = <0xfd>; - reset-names = "phy\0apb\0init\0cmn\0lane\0ropll\0lcpll"; - - clk-port { - #clock-cells = <0x00>; - status = "okay"; - phandle = <0x35>; - }; - }; - - dmc-opp-table { - nvmem-cells = <0x44 0x45 0x21>; - rockchip,low-temp = <0x2710>; - rockchip,leakage-voltage-sel = <0x01 0x1f 0x00 0x20 0x2c 0x01 0x2d 0x39 0x02 0x3a 0xfe 0x03>; - compatible = "operating-points-v2"; - rockchip,low-temp-min-volt = <0xb71b0>; - nvmem-cell-names = "leakage\0opp-info\0specification_serial_number"; - phandle = <0x41>; - rockchip,temp-hysteresis = <0x1388>; - rockchip,supported-hw; - - opp-1560000000 { - opp-microvolt = <0xc3500 0xc3500 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; - opp-microvolt-L2 = <0xb71b0 0xb71b0 0xd59f8 0xadf34 0xadf34 0xb71b0>; - opp-hz = <0x00 0x5cfbb600>; - opp-supported-hw = <0xf9 0xffff>; - opp-microvolt-L3 = <0xb1008 0xb1008 0xd59f8 0xaae60 0xaae60 0xb71b0>; - opp-microvolt-L1 = <0xbd358 0xbd358 0xd59f8 0xb1008 0xb1008 0xb71b0>; - }; - - opp-j-m-1560000000 { - opp-microvolt = <0xc3500 0xc3500 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; - opp-microvolt-L2 = <0xb71b0 0xb71b0 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; - opp-hz = <0x00 0x5cfbb600>; - opp-supported-hw = <0x06 0xffff>; - opp-microvolt-L3 = <0xb71b0 0xb71b0 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; - opp-microvolt-L1 = <0xbd358 0xbd358 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; - }; - - opp-j-m-528000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; - opp-hz = <0x00 0x1f78a400>; - opp-supported-hw = <0x06 0xffff>; - }; - - opp-2750000000 { - opp-microvolt = <0xd59f8 0xd59f8 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; - opp-microvolt-L2 = <0xcc77c 0xcc77c 0xd59f8 0xb1008 0xb1008 0xb71b0>; - opp-hz = <0x00 0xa3e9ab80>; - opp-supported-hw = <0xf9 0xffff>; - opp-microvolt-L3 = <0xc96a8 0xc8320 0xd59f8 0xaae60 0xaae60 0xb71b0>; - opp-microvolt-L1 = <0xcf850 0xcf850 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; - }; - - opp-1068000000 { - opp-microvolt = <0xb1008 0xb1008 0xd59f8 0xb40dc 0xb40dc 0xb71b0>; - opp-microvolt-L2 = <0xa4cb8 0xa4cb8 0xd59f8 0xaae60 0xaae60 0xb71b0>; - opp-hz = <0x00 0x3fa86300>; - opp-supported-hw = <0xf9 0xffff>; - opp-microvolt-L3 = <0xa4cb8 0xa4cb8 0xd59f8 0xa7d8c 0xa7d8c 0xb71b0>; - opp-microvolt-L1 = <0xaae60 0xaae60 0xd59f8 0xadf34 0xadf34 0xb71b0>; - }; - - opp-j-m-2750000000 { - opp-microvolt = <0xd59f8 0xd59f8 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; - opp-microvolt-L2 = <0xcc77c 0xcc77c 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; - opp-hz = <0x00 0xa3e9ab80>; - opp-supported-hw = <0x06 0xffff>; - opp-microvolt-L3 = <0xc96a8 0xc8320 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; - opp-microvolt-L1 = <0xcf850 0xcf850 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; - }; - - opp-528000000 { - opp-microvolt = <0xa4cb8 0xa4cb8 0xd59f8 0xb1008 0xb1008 0xb71b0>; - opp-microvolt-L2 = <0xa4cb8 0xa4cb8 0xd59f8 0xa7d8c 0xa7d8c 0xb71b0>; - opp-hz = <0x00 0x1f78a400>; - opp-supported-hw = <0xf9 0xffff>; - opp-microvolt-L3 = <0xa4cb8 0xa4cb8 0xd59f8 0xa4cb8 0xa4cb8 0xb71b0>; - opp-microvolt-L1 = <0xa4cb8 0xa4cb8 0xd59f8 0xaae60 0xaae60 0xb71b0>; - }; - - opp-j-m-1068000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; - opp-hz = <0x00 0x3fa86300>; - opp-supported-hw = <0x06 0xffff>; - }; - }; - - rkvenc-core@fdbe0000 { - power-domains = <0x60 0x11>; - iommus = <0xc5>; - rockchip,ccu = <0xc3>; - clock-names = "aclk_vcodec\0hclk_vcodec\0clk_core"; - assigned-clocks = <0x02 0x1ca 0x02 0x1cb>; - rockchip,task-capacity = <0x08>; - rockchip,normal-rates = <0x1dcd6500 0x00 0x2faf0800>; - assigned-clock-rates = <0x1dcd6500 0x2faf0800>; - resets = <0x02 0x305 0x02 0x304 0x02 0x306>; - interrupts = <0x00 0x68 0x04>; - clocks = <0x02 0x1ca 0x02 0x1c9 0x02 0x1cb>; - rockchip,srv = <0xb8>; - rockchip,taskqueue-node = <0x07>; - compatible = "rockchip,rkv-encoder-v2-core"; - status = "okay"; - interrupt-names = "irq_rkvenc1"; - rockchip,skip-pmu-idle-request; - reg = <0x00 0xfdbe0000 0x00 0x6000>; - phandle = <0x273>; - reset-names = "video_a\0video_h\0video_core"; - operating-points-v2 = <0xc4>; - }; - - debug@fd104000 { - compatible = "rockchip,debug"; - reg = <0x00 0xfd104000 0x00 0x1000 0x00 0xfd105000 0x00 0x1000 0x00 0xfd106000 0x00 0x1000 0x00 0xfd107000 0x00 0x1000 0x00 0xfd124000 0x00 0x1000 0x00 0xfd125000 0x00 0x1000 0x00 0xfd126000 0x00 0x1000 0x00 0xfd127000 0x00 0x1000>; - phandle = <0x48f>; - }; - - watchdog@feaf0000 { - clock-names = "tclk\0pclk"; - interrupts = <0x00 0x13b 0x04>; - clocks = <0x02 0x6c 0x02 0x6b>; - compatible = "snps,dw-wdt"; - status = "okay"; - reg = <0x00 0xfeaf0000 0x00 0x100>; - phandle = <0x2aa>; - }; - - syscon@fd5d8000 { - #address-cells = <0x01>; - #size-cells = <0x01>; - compatible = "rockchip,rk3588-usb2phy-grf\0syscon\0simple-mfd"; - reg = <0x00 0xfd5d8000 0x00 0x4000>; - phandle = <0x25d>; - - usb2-phy@8000 { - clock-output-names = "usb480m_phy2"; - clock-names = "phyclk"; - resets = <0x02 0xc0049 0x02 0x48a>; - interrupts = <0x00 0x187 0x04>; - clocks = <0x02 0x2b5>; - #clock-cells = <0x00>; - compatible = "rockchip,rk3588-usb2phy"; - status = "okay"; - reg = <0x8000 0x10>; - phandle = <0x69>; - reset-names = "phy\0apb"; - - host-port { - phy-supply = <0x75>; - #phy-cells = <0x00>; - status = "okay"; - phandle = <0x6c>; - }; - }; - }; - - cluster0-opp-table { - rockchip,pvtm-offset = <0x64>; - rockchip,pvtm-sample-time = <0x44c>; - rockchip,dsu-grf = <0x23>; - rockchip,pvtm-hw = <0x06>; - nvmem-cells = <0x1f 0x20 0x21>; - rockchip,low-temp = <0x2710>; - rockchip,pvtm-voltage-sel-hw = <0x00 0x555 0x00 0x556 0x56b 0x01 0x56c 0x581 0x02 0x582 0x597 0x03 0x598 0x5ad 0x04 0x5ae 0x5c3 0x05 0x5c4 0x270f 0x06>; - rockchip,pvtm-thermal-zone = "soc-thermal"; - rockchip,opp-shared-dsu; - rockchip,high-temp-max-freq = <0x188940>; - opp-shared; - rockchip,reboot-freq = <0x159b40>; - rockchip,pvtm-freq = <0x159b40>; - rockchip,pvtm-ref-temp = <0x19>; - low-volt-mem-read-margin = <0x04>; - volt-mem-read-margin = <0xd0bd8 0x01 0xbac48 0x02 0xa4cb8 0x03 0x78d98 0x04>; - compatible = "operating-points-v2"; - rockchip,low-temp-min-volt = <0xb71b0>; - rockchip,grf = <0x22>; - nvmem-cell-names = "leakage\0opp-info\0specification_serial_number"; - rockchip,pvtm-voltage-sel = <0x00 0x582 0x00 0x583 0x59a 0x01 0x59b 0x5b2 0x02 0x5b3 0x5ca 0x03 0x5cb 0x5e2 0x04 0x5e3 0x5fa 0x05 0x5fb 0x270f 0x06>; - phandle = <0x0f>; - rockchip,pvtm-temp-prop = <0xf4 0xf4>; - rockchip,temp-hysteresis = <0x1388>; - rockchip,high-temp = <0x14c08>; - rockchip,pvtm-pvtpll; - rockchip,supported-hw; - intermediate-threshold-freq = <0xf6180>; - rockchip,pvtm-volt = <0xb71b0>; - - opp-1200000000 { - opp-microvolt = <0xadf34 0xadf34 0xe7ef0 0xadf34 0xadf34 0xe7ef0>; - opp-microvolt-L6 = <0xa4cb8 0xa4cb8 0xe7ef0 0xa4cb8 0xa4cb8 0xe7ef0>; - opp-microvolt-L4 = <0xa4cb8 0xa4cb8 0xe7ef0 0xa4cb8 0xa4cb8 0xe7ef0>; - opp-microvolt-L2 = <0xaae60 0xaae60 0xe7ef0 0xaae60 0xaae60 0xe7ef0>; - opp-hz = <0x00 0x47868c00>; - opp-supported-hw = <0xf9 0xffff>; - opp-microvolt-L5 = <0xa4cb8 0xa4cb8 0xe7ef0 0xa4cb8 0xa4cb8 0xe7ef0>; - opp-microvolt-L3 = <0xa7d8c 0xa7d8c 0xe7ef0 0xa7d8c 0xa7d8c 0xe7ef0>; - clock-latency-ns = <0x9c40>; - opp-microvolt-L1 = <0xaae60 0xaae60 0xe7ef0 0xaae60 0xaae60 0xe7ef0>; - }; - - opp-j-m-1416000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - opp-microvolt-L2 = <0xba284 0xba284 0xe7ef0 0xba284 0xba284 0xe7ef0>; - opp-hz = <0x00 0x54667200>; - opp-microvolt-L0 = <0xc042c 0xc042c 0xe7ef0 0xc042c 0xc042c 0xe7ef0>; - opp-supported-hw = <0x06 0xffff>; - opp-suspend; - clock-latency-ns = <0x9c40>; - opp-microvolt-L1 = <0xbd358 0xbd358 0xe7ef0 0xbd358 0xbd358 0xe7ef0>; - }; - - opp-1008000000 { - opp-microvolt = <0xa4cb8 0xa4cb8 0xe7ef0 0xa4cb8 0xa4cb8 0xe7ef0>; - opp-hz = <0x00 0x3c14dc00>; - opp-supported-hw = <0xf9 0xffff>; - clock-latency-ns = <0x9c40>; - }; - - opp-j-m-1704000000 { - opp-microvolt = <0xe4e1c 0xe4e1c 0xe7ef0 0xe4e1c 0xe4e1c 0xe7ef0>; - opp-microvolt-L6 = <0xd2924 0xd2924 0xe7ef0 0xd2924 0xd2924 0xe7ef0>; - opp-microvolt-L4 = <0xd8acc 0xd8acc 0xe7ef0 0xd8acc 0xd8acc 0xe7ef0>; - opp-microvolt-L2 = <0xdec74 0xdec74 0xe7ef0 0xdec74 0xdec74 0xe7ef0>; - opp-hz = <0x00 0x6590fa00>; - opp-supported-hw = <0x06 0xffff>; - opp-microvolt-L5 = <0xd59f8 0xd59f8 0xe7ef0 0xd59f8 0xd59f8 0xe7ef0>; - opp-microvolt-L3 = <0xdbba0 0xdbba0 0xe7ef0 0xdbba0 0xdbba0 0xe7ef0>; - clock-latency-ns = <0x9c40>; - opp-microvolt-L1 = <0xe1d48 0xe1d48 0xe7ef0 0xe1d48 0xe1d48 0xe7ef0>; - }; - - opp-j-m-1200000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - opp-hz = <0x00 0x47868c00>; - opp-supported-hw = <0x06 0xffff>; - clock-latency-ns = <0x9c40>; - }; - - opp-j-m-1008000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - opp-hz = <0x00 0x3c14dc00>; - opp-supported-hw = <0x06 0xffff>; - clock-latency-ns = <0x9c40>; - }; - - opp-j-m-816000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - opp-hz = <0x00 0x30a32c00>; - opp-supported-hw = <0x06 0xffff>; - clock-latency-ns = <0x9c40>; - }; - - opp-1800000000 { - opp-microvolt = <0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0>; - opp-microvolt-L6 = <0xd59f8 0xd59f8 0xe7ef0 0xd59f8 0xd59f8 0xe7ef0>; - opp-microvolt-L4 = <0xdbba0 0xdbba0 0xe7ef0 0xdbba0 0xdbba0 0xe7ef0>; - opp-microvolt-L2 = <0xe1d48 0xe1d48 0xe7ef0 0xe1d48 0xe1d48 0xe7ef0>; - opp-hz = <0x00 0x6b49d200>; - opp-supported-hw = <0xf9 0xffff>; - opp-microvolt-L5 = <0xd8acc 0xd8acc 0xe7ef0 0xd8acc 0xd8acc 0xe7ef0>; - opp-microvolt-L3 = <0xdec74 0xdec74 0xe7ef0 0xdec74 0xdec74 0xe7ef0>; - clock-latency-ns = <0x9c40>; - opp-microvolt-L1 = <0xe4e1c 0xe4e1c 0xe7ef0 0xe4e1c 0xe4e1c 0xe7ef0>; - }; - - opp-j-m-600000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - opp-hz = <0x00 0x23c34600>; - opp-supported-hw = <0x06 0xffff>; - clock-latency-ns = <0x9c40>; - }; - - opp-1608000000 { - opp-microvolt = <0xcf850 0xcf850 0xe7ef0 0xcf850 0xcf850 0xe7ef0>; - opp-microvolt-L6 = <0xc042c 0xc042c 0xe7ef0 0xc042c 0xc042c 0xe7ef0>; - opp-microvolt-L4 = <0xc3500 0xc3500 0xe7ef0 0xc3500 0xc3500 0xe7ef0>; - opp-microvolt-L2 = <0xc96a8 0xc96a8 0xe7ef0 0xc96a8 0xc96a8 0xe7ef0>; - opp-hz = <0x00 0x5fd82200>; - opp-supported-hw = <0xf9 0xffff>; - opp-microvolt-L5 = <0xc3500 0xc3500 0xe7ef0 0xc3500 0xc3500 0xe7ef0>; - opp-microvolt-L3 = <0xc65d4 0xc65d4 0xe7ef0 0xc65d4 0xc65d4 0xe7ef0>; - clock-latency-ns = <0x9c40>; - opp-microvolt-L1 = <0xcc77c 0xcc77c 0xe7ef0 0xcc77c 0xcc77c 0xe7ef0>; - }; - - opp-j-1296000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - opp-hz = <0x00 0x4d3f6400>; - opp-microvolt-L0 = <0xbd358 0xbd358 0xe7ef0 0xbd358 0xbd358 0xe7ef0>; - opp-supported-hw = <0x04 0xffff>; - clock-latency-ns = <0x9c40>; - opp-microvolt-L1 = <0xba284 0xba284 0xe7ef0 0xba284 0xba284 0xe7ef0>; - }; - - opp-j-m-408000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - opp-hz = <0x00 0x18519600>; - opp-supported-hw = <0x06 0xffff>; - clock-latency-ns = <0x9c40>; - }; - - opp-816000000 { - opp-microvolt = <0xa4cb8 0xa4cb8 0xe7ef0 0xa4cb8 0xa4cb8 0xe7ef0>; - opp-hz = <0x00 0x30a32c00>; - opp-supported-hw = <0xf9 0xffff>; - clock-latency-ns = <0x9c40>; - }; - - opp-j-m-1608000000 { - opp-microvolt = <0xd8acc 0xd8acc 0xe7ef0 0xd8acc 0xd8acc 0xe7ef0>; - opp-microvolt-L6 = <0xc65d4 0xc65d4 0xe7ef0 0xc65d4 0xc65d4 0xe7ef0>; - opp-microvolt-L4 = <0xcc77c 0xcc77c 0xe7ef0 0xcc77c 0xcc77c 0xe7ef0>; - opp-microvolt-L2 = <0xd2924 0xd2924 0xe7ef0 0xd2924 0xd2924 0xe7ef0>; - opp-hz = <0x00 0x5fd82200>; - opp-supported-hw = <0x06 0xffff>; - opp-microvolt-L5 = <0xc96a8 0xc96a8 0xe7ef0 0xc96a8 0xc96a8 0xe7ef0>; - opp-microvolt-L3 = <0xcf850 0xcf850 0xe7ef0 0xcf850 0xcf850 0xe7ef0>; - clock-latency-ns = <0x9c40>; - opp-microvolt-L1 = <0xd59f8 0xd59f8 0xe7ef0 0xd59f8 0xd59f8 0xe7ef0>; - }; - - opp-600000000 { - opp-microvolt = <0xa4cb8 0xa4cb8 0xe7ef0 0xa4cb8 0xa4cb8 0xe7ef0>; - opp-hz = <0x00 0x23c34600>; - opp-supported-hw = <0xf9 0xffff>; - clock-latency-ns = <0x9c40>; - }; - - opp-1416000000 { - opp-microvolt = <0xba284 0xba284 0xe7ef0 0xba284 0xba284 0xe7ef0>; - opp-microvolt-L6 = <0xadf34 0xadf34 0xe7ef0 0xadf34 0xadf34 0xe7ef0>; - opp-microvolt-L4 = <0xb1008 0xb1008 0xe7ef0 0xb1008 0xb1008 0xe7ef0>; - opp-microvolt-L2 = <0xb40dc 0xb40dc 0xe7ef0 0xb40dc 0xb40dc 0xe7ef0>; - opp-hz = <0x00 0x54667200>; - opp-supported-hw = <0xf9 0xffff>; - opp-microvolt-L5 = <0xadf34 0xadf34 0xe7ef0 0xadf34 0xadf34 0xe7ef0>; - opp-suspend; - opp-microvolt-L3 = <0xb1008 0xb1008 0xe7ef0 0xb1008 0xb1008 0xe7ef0>; - clock-latency-ns = <0x9c40>; - opp-microvolt-L1 = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - }; - - opp-408000000 { - opp-microvolt = <0xa4cb8 0xa4cb8 0xe7ef0 0xa4cb8 0xa4cb8 0xe7ef0>; - opp-hz = <0x00 0x18519600>; - opp-supported-hw = <0xf9 0xffff>; - clock-latency-ns = <0x9c40>; - }; - }; - - vcc-4g-regulator { - regulator-boot-on; - gpio = <0x182 0x00 0x00>; - regulator-always-on; - enable-active-high; - regulator-name = "vcc_4g"; - compatible = "regulator-fixed"; - status = "okay"; - phandle = <0x4b0>; - }; - - spi@fecb0000 { - pinctrl-names = "default"; - #address-cells = <0x01>; - num-cs = <0x02>; - pinctrl-0 = <0x187 0x188 0x189>; - clock-names = "spiclk\0apb_pclk"; - interrupts = <0x00 0x14a 0x04>; - clocks = <0x02 0xa7 0x02 0xa2>; - #size-cells = <0x00>; - dma-names = "tx\0rx"; - compatible = "rockchip,rk3066-spi"; - status = "disabled"; - reg = <0x00 0xfecb0000 0x00 0x1000>; - phandle = <0x2e6>; - dmas = <0xf2 0x0d 0xf2 0x0e>; - }; - - spdif-rx@fde08000 { - power-domains = <0x60 0x1a>; - clock-names = "mclk\0hclk"; - assigned-clocks = <0x02 0x25e>; - assigned-clock-parents = <0x02 0x05>; - resets = <0x02 0x3fd>; - interrupts = <0x00 0xc7 0x04>; - clocks = <0x02 0x25e 0x02 0x25d>; - dma-names = "rx"; - #sound-dai-cells = <0x00>; - compatible = "rockchip,rk3588-spdifrx\0rockchip,rk3308-spdifrx"; - status = "disabled"; - reg = <0x00 0xfde08000 0x00 0x1000>; - phandle = <0x280>; - dmas = <0x7c 0x15>; - reset-names = "spdifrx-m"; - }; - - mipi3-csi2-hw@fdd40000 { - clock-names = "pclk_csi2host"; - reg-names = "csihost_regs"; - resets = <0x02 0x327>; - interrupts = <0x00 0x95 0x04 0x00 0x96 0x04>; - clocks = <0x02 0x1d2>; - compatible = "rockchip,rk3588-mipi-csi2-hw"; - status = "okay"; - interrupt-names = "csi-intr1\0csi-intr2"; - reg = <0x00 0xfdd40000 0x00 0x10000>; - phandle = <0x4a>; - reset-names = "srst_csihost_p"; - }; - - // DTB memory region: { address: 0x0940_0000, size: 0xc6c0_0000 } ~3.3G - - memory { - device_type = "memory"; - reg = <0x00 0x9400000 0x00 0xc6c00000>; - }; - - jpege-core@fdba4000 { - power-domains = <0x60 0x15>; - iommus = <0xbe>; - rockchip,ccu = <0xbd>; - clock-names = "aclk_vcodec\0hclk_vcodec"; - assigned-clocks = <0x02 0x1ae>; - rockchip,normal-rates = <0x2367b880 0x00>; - assigned-clock-rates = <0x2367b880>; - resets = <0x02 0x2cc 0x02 0x2cd>; - interrupts = <0x00 0x7c 0x04>; - clocks = <0x02 0x1ae 0x02 0x1af>; - rockchip,srv = <0xb8>; - rockchip,taskqueue-node = <0x02>; - rockchip,disable-auto-freq; - compatible = "rockchip,vpu-jpege-core"; - status = "okay"; - interrupt-names = "irq_jpege1"; - rockchip,skip-pmu-idle-request; - reg = <0x00 0xfdba4000 0x00 0x400>; - phandle = <0x26e>; - reset-names = "video_a\0video_h"; - }; - - wireless-wlan { - pinctrl-names = "default"; - pinctrl-0 = <0x1ea>; - WIFI,host_wake_irq = <0x182 0x0a 0x00>; - wifi_chip_type = "rtl8822ce"; - compatible = "wlan-platdata"; - status = "okay"; - phandle = <0x4ab>; - }; - - rkcif-mipi-lvds4-sditf-vir3 { - compatible = "rockchip,rkcif-sditf"; - status = "disabled"; - rockchip,cif = <0x1a1>; - phandle = <0x475>; - }; - - dp@fde50000 { - power-domains = <0x60 0x19>; - clock-names = "apb\0aux\0i2s\0spdif\0hclk\0hdcp"; - assigned-clocks = <0x02 0x2cc>; - assigned-clock-rates = <0xf42400>; - resets = <0x02 0x388>; - interrupts = <0x00 0xa1 0x04>; - clocks = <0x02 0x1e6 0x02 0x2cc 0x02 0x1fb 0x02 0x207 0x04 0x02 0x1ea>; - #sound-dai-cells = <0x01>; - compatible = "rockchip,rk3588-dp"; - status = "disabled"; - phys = <0xf6>; - reg = <0x00 0xfde50000 0x00 0x4000>; - phandle = <0x1d6>; - - ports { - #address-cells = <0x01>; - #size-cells = <0x00>; - - port@0 { - #address-cells = <0x01>; - #size-cells = <0x00>; - reg = <0x00>; - - endpoint@1 { - remote-endpoint = <0x38>; - status = "disabled"; - reg = <0x01>; - phandle = <0xe0>; - }; - - endpoint@2 { - remote-endpoint = <0xf8>; - status = "disabled"; - reg = <0x02>; - phandle = <0xe6>; - }; - - endpoint@0 { - remote-endpoint = <0xf7>; - status = "disabled"; - reg = <0x00>; - phandle = <0xda>; - }; - }; - - port@1 { - reg = <0x01>; - - endpoint { - phandle = <0x286>; - }; - }; - }; - }; - - rockchip-system-monitor { - rockchip,thermal-zone = "soc-thermal"; - compatible = "rockchip,system-monitor"; - phandle = <0x247>; - }; - - vcc3v3-pcie30 { - regulator-max-microvolt = <0x325aa0>; - enable-active-high; - regulator-min-microvolt = <0x325aa0>; - regulator-name = "vcc3v3_pcie30"; - startup-delay-us = <0x1388>; - compatible = "regulator-fixed"; - status = "okay"; - phandle = <0x1b8>; - vin-supply = <0x1cd>; - gpios = <0x182 0x04 0x00>; - }; - - phy@fedb0000 { - clock-names = "pclk\0ref"; - resets = <0x02 0xc0045 0x02 0x43 0x02 0x44 0x02 0xc0046>; - clocks = <0x02 0x109 0x02 0x2b6>; - #phy-cells = <0x00>; - compatible = "rockchip,rk3588-mipi-dcphy"; - status = "okay"; - rockchip,grf = <0x191>; - reg = <0x00 0xfedb0000 0x00 0x10000>; - phandle = <0x30>; - reset-names = "m_phy\0apb\0grf\0s_phy"; - }; - - rkvdec-core@fdc38000 { - power-domains = <0x60 0x0e>; - iommus = <0xc9>; - rockchip,ccu = <0xca>; - clock-names = "aclk_vcodec\0hclk_vcodec\0clk_core\0clk_cabac\0clk_hevc_cabac"; - reg-names = "regs\0link"; - assigned-clocks = <0x02 0x190 0x02 0x193 0x02 0x191 0x02 0x192>; - rockchip,core-mask = <0x10001>; - rockchip,task-capacity = <0x10>; - rockchip,normal-rates = <0x2faf0800 0x00 0x23c34600 0x23c34600 0x3b9aca00>; - assigned-clock-rates = <0x2faf0800 0x23c34600 0x23c34600 0x3b9aca00>; - resets = <0x02 0x284 0x02 0x283 0x02 0x289 0x02 0x287 0x02 0x288>; - interrupts = <0x00 0x5f 0x04>; - rockchip,rcb-info = <0x88 0x6000 0x89 0xc000 0x8d 0x16000 0x8c 0xc000 0x8b 0x2c000 0x85 0xc000 0x86 0x2000 0x87 0x1100 0x8a 0x3300 0x8e 0x47300>; - clocks = <0x02 0x190 0x02 0x18f 0x02 0x193 0x02 0x191 0x02 0x192>; - rockchip,rcb-min-width = <0x200>; - rockchip,srv = <0xb8>; - rockchip,taskqueue-node = <0x09>; - compatible = "rockchip,rkv-decoder-v2"; - status = "okay"; - interrupt-names = "irq_rkvdec0"; - rockchip,skip-pmu-idle-request; - rockchip,rcb-iova = <0xfff00000 0x100000>; - reg = <0x00 0xfdc38100 0x00 0x400 0x00 0xfdc38000 0x00 0x100>; - phandle = <0x274>; - reset-names = "video_a\0video_h\0video_core\0video_cabac\0video_hevc_cabac"; - rockchip,sram = <0xcb>; - }; - - minidump { - smem-region = <0x1cf>; - minidump-region = <0x1d0>; - compatible = "rockchip,minidump"; - status = "disabled"; - phandle = <0x491>; - }; -}; diff --git a/configs/vms_bkp/aio-rk3588-jd4-vm2.dts b/configs/vms_bkp/aio-rk3588-jd4-vm2.dts deleted file mode 100644 index 5fc9d3b2..00000000 --- a/configs/vms_bkp/aio-rk3588-jd4-vm2.dts +++ /dev/null @@ -1,656 +0,0 @@ -/dts-v1/; - -/ { - #address-cells = <0x02>; - model = "Firefly AIO-3588JD4"; - serial-number = "a0deeea630de3975"; - #size-cells = <0x02>; - interrupt-parent = <0x01>; - compatible = "rockchip,aio-3588jd4\0rockchip,rk3588"; - - chosen { - linux,initrd-start = <0x01 0x0a200000>; - linux,initrd-end = <0x01 0xaac8000>; - bootargs = "rw earlycon=uart8250,mmio32,0xfeb50000 console=ttyFIQ0 irqchip.gicv3_pseudo_nmi=0 root=/dev/sda1"; - phandle = <0x48d>; - }; - - // DTB memory region: { address: 0xe000_0000, size: 0x1000_0000 } 256M - // DTB memory region: { address: 0x1_0000_0000, size: 0xe000_0000 } 3.7G - - - memory { - device_type = "memory"; - reg = <0x00 0xe0000000 0x00 0x10000000 0x01 0x00000000 0x00 0xe0000000>; - }; - - cpus { - #address-cells = <0x01>; - #size-cells = <0x00>; - - cpu@200 { - device_type = "cpu"; - compatible = "arm,cortex-a55"; - reg = <0x200>; - enable-method = "psci"; - capacity-dmips-mhz = <0x212>; - clocks = <0x0e 0x00>; - operating-points-v2 = <0x0f>; - cpu-idle-states = <0x10>; - i-cache-size = <0x8000>; - i-cache-line-size = <0x40>; - i-cache-sets = <0x80>; - d-cache-size = <0x8000>; - d-cache-line-size = <0x40>; - d-cache-sets = <0x80>; - next-level-cache = <0x14>; - phandle = <0x08>; - }; - - cpu@300 { - device_type = "cpu"; - compatible = "arm,cortex-a55"; - reg = <0x300>; - enable-method = "psci"; - capacity-dmips-mhz = <0x212>; - clocks = <0x0e 0x00>; - operating-points-v2 = <0x0f>; - cpu-idle-states = <0x10>; - i-cache-size = <0x8000>; - i-cache-line-size = <0x40>; - i-cache-sets = <0x80>; - d-cache-size = <0x8000>; - d-cache-line-size = <0x40>; - d-cache-sets = <0x80>; - next-level-cache = <0x15>; - phandle = <0x09>; - }; - - l2-cache-l2 { - compatible = "cache"; - cache-size = <0x20000>; - cache-line-size = <0x40>; - cache-sets = <0x200>; - next-level-cache = <0x1e>; - phandle = <0x14>; - }; - - l2-cache-l3 { - compatible = "cache"; - cache-size = <0x20000>; - cache-line-size = <0x40>; - cache-sets = <0x200>; - next-level-cache = <0x1e>; - phandle = <0x15>; - }; - - l3-cache { - compatible = "cache"; - cache-size = <0x300000>; - cache-sets = <0x1000>; - cache-line-size = <0x40>; - phandle = <0x1e>; - }; - - idle-states { - entry-method = "psci"; - - cpu-sleep { - compatible = "arm,idle-state"; - entry-latency-us = <0x64>; - exit-latency-us = <0x78>; - min-residency-us = <0x3e8>; - local-timer-stop; - arm,psci-suspend-param = <0x10000>; - phandle = <0x10>; - }; - }; - - cpu-map { - cluster0 { - core2 { - cpu = <0x08>; - }; - - core3 { - cpu = <0x09>; - }; - }; - }; - }; - - sram@10f000 { - #address-cells = <0x01>; - #size-cells = <0x01>; - compatible = "mmio-sram"; - ranges = <0x00 0x00 0x10f000 0x100>; - reg = <0x00 0x10f000 0x00 0x100>; - - sram@0 { - compatible = "arm,scmi-shmem"; - reg = <0x00 0x100>; - phandle = <0x46>; - }; - }; - - firmware { - sdei { - method = "smc"; - compatible = "arm,sdei-1.0"; - phandle = <0x221>; - }; - - scmi { - shmem = <0x46>; - #address-cells = <0x01>; - #size-cells = <0x00>; - compatible = "arm,scmi-smc"; - phandle = <0x220>; - arm,smc-id = <0x82000010>; - - protocol@16 { - #reset-cells = <0x01>; - reg = <0x16>; - phandle = <0x11a>; - }; - - protocol@14 { - assigned-clocks = <0x0e 0x00 0x0e 0x02 0x0e 0x03>; - assigned-clock-rates = <0x30a32c00 0x30a32c00 0x30a32c00>; - #clock-cells = <0x01>; - reg = <0x14>; - phandle = <0x0e>; - }; - }; - }; - - timer { - interrupts = <0x01 0x0d 0xf04 0x01 0x0e 0xf04 0x01 0x0b 0xf04 0x01 0x0a 0xf04>; - compatible = "arm,armv8-timer"; - }; - - interrupt-controller@fe600000 { - #address-cells = <0x02>; - interrupts = <0x01 0x09 0x04>; - #size-cells = <0x02>; - compatible = "arm,gic-v3"; - ranges; - #interrupt-cells = <0x03>; - reg = <0x00 0xfe600000 0x00 0x10000 0x00 0xfe6c0000 0x00 0x100000>; - phandle = <0x01>; - interrupt-controller; - - }; - - psci { - method = "smc"; - compatible = "arm,psci-1.0"; - }; - - // dummy clocks that are configured by VM1 - clocks { - #address-cells = <0x02>; - #size-cells = <0x02>; - compatible = "simple-bus"; - ranges; - - // serial - serial_baud_24m { - clock-output-names = "serial_baud_24m"; - compatible = "fixed-clock"; - clock-frequency = <24000000>; - #clock-cells = <0>; - phandle = <0xbb>; - }; - - serial_pclk_100m { - clock-output-names = "serial_pclk_100m"; - compatible = "fixed-clock"; - clock-frequency = <100000000>; - #clock-cells = <0>; - phandle = <0xac>; - }; - - // ethernet - gmac_125m { - clock-output-names = "gmac_125m"; - compatible = "fixed-clock"; - clock-frequency = <125000000>; - #clock-cells = <0>; - phandle = <0x144>; - }; - - gmac_50m { - clock-output-names = "gmac_50m"; - compatible = "fixed-clock"; - clock-frequency = <50000000>; - #clock-cells = <0>; - phandle = <0x145>; - }; - - gmac1_pclk_150m { - clock-output-names = "gmac1_pclk_150m"; - compatible = "fixed-clock"; - clock-frequency = <150000000>; - #clock-cells = <0>; - phandle = <0x168>; - }; - - gmac1_aclk_396m { - clock-output-names = "gmac1_aclk_396m"; - compatible = "fixed-clock"; - clock-frequency = <396000000>; - #clock-cells = <0>; - phandle = <0x16d>; - }; - - gmac1_ptp_ref_100m { - clock-output-names = "gmac1_ptp_ref_100m"; - compatible = "fixed-clock"; - clock-frequency = <100000000>; - #clock-cells = <0>; - phandle = <0x143>; - }; - - sata0_aclk_396m { - clock-output-names = "sata0_aclk_396m"; - compatible = "fixed-clock"; - clock-frequency = <396000000>; - #clock-cells = <0>; - phandle = <0x171>; - }; - - sata0_pmalive_24m { - clock-output-names = "sata0_pmalive_24m"; - compatible = "fixed-clock"; - clock-frequency = <24000000>; - #clock-cells = <0>; - phandle = <0x16e>; - }; - - sata0_rxoob_50m { - clock-output-names = "sata0_rxoob_50m"; - compatible = "fixed-clock"; - clock-frequency = <50000000>; - #clock-cells = <0>; - phandle = <0x174>; - }; - - sata0_pipephy_ref_24m { - clock-output-names = "sata0_pipephy_ref_24m"; - compatible = "fixed-clock"; - clock-frequency = <24000000>; - #clock-cells = <0>; - phandle = <0x163>; - }; - - sata0_pipephy_asic_0 { - clock-output-names = "sata0_pipephy_asic_0"; - compatible = "fixed-clock"; - clock-frequency = <0>; - #clock-cells = <0>; - phandle = <0x17e>; - }; - - phy0_refclk_100m { - clock-output-names = "phy0_refclk_100m"; - compatible = "fixed-clock"; - clock-frequency = <100000000>; - #clock-cells = <0>; - phandle = <0x2bd>; - }; - - phy0_apbclk_100m { - clock-output-names = "phy0_apbclk_100m"; - compatible = "fixed-clock"; - clock-frequency = <100000000>; - #clock-cells = <0>; - phandle = <0x185>; - }; - - phy0_phpclk_150m { - clock-output-names = "phy0_phpclk_150m"; - compatible = "fixed-clock"; - clock-frequency = <150000000>; - #clock-cells = <0>; - phandle = <0x166>; - }; - }; - - serial@feb50000 { - reg-io-width = <0x04>; - pinctrl-names = "default"; - pinctrl-0 = <0x161>; - interrupts = <0x00 0x14d 0x04>; - // Avoid driver messing with CRU - clock-names = "baudclk\0apb_pclk"; - clocks = <0xbb 0xac>; - compatible = "rockchip,rk3588-uart\0snps,dw-apb-uart"; - status = "disabled"; - reg = <0x00 0xfeb50000 0x00 0x100>; - phandle = <0x2ca>; - dmas = <0x7c 0x0a 0x7c 0x0b>; - reg-shift = <0x02>; - }; - - fiq-debugger { - pinctrl-names = "default"; - rockchip,irq-mode-enable = <0x01>; - rockchip,baudrate = <0x1c200>; - pinctrl-0 = <0x1ce>; - interrupts = <0x00 0x1a7 0x08>; - rockchip,wake-irq = <0x00>; - compatible = "rockchip,fiq-debugger"; - status = "okay"; - phandle = <0x490>; - rockchip,serial-id = <0x02>; - }; - - syscon@fd5b0000 { - compatible = "rockchip,rk3588-php-grf\0syscon"; - reg = <0x00 0xfd5b0000 0x00 0x1000>; - phandle = <0x76>; - }; - - syscon@fd58c000 { - compatible = "rockchip,rk3588-sys-grf\0syscon\0simple-mfd"; - reg = <0x00 0xfd58c000 0x00 0x1000>; - phandle = <0xc8>; - }; - - syscon@fd5bc000 { - compatible = "rockchip,pipe-phy-grf\0syscon"; - reg = <0x00 0xfd5bc000 0x00 0x100>; - phandle = <0x194>; - }; - - sata@fe210000 { - phy-names = "sata-phy"; - clock-names = "sata\0pmalive\0rxoob\0ref\0asic"; - interrupts = <0x00 0x111 0x04>; - clocks = <0x171 0x16e 0x174 0x163 0x17e>; - compatible = "rockchip,rk-ahci\0snps,dwc-ahci"; - status = "okay"; - interrupt-names = "hostc"; - phys = <0x108 0x01>; - reg = <0x00 0xfe210000 0x00 0x1000>; - phandle = <0x290>; - ports-implemented = <0x01>; - }; - - phy@fee00000 { - rockchip,pipe-grf = <0x76>; - clock-names = "refclk\0apbclk\0phpclk"; - clocks = <0x2bd 0x185 0x166>; - #phy-cells = <0x01>; - compatible = "rockchip,rk3588-naneng-combphy"; - status = "okay"; - rockchip,pipe-phy-grf = <0x194>; - reg = <0x00 0xfee00000 0x00 0x100>; - phandle = <0x108>; - // resets = <0x02 0x20005 0x02 0x4d6>; - // reset-names = "combphy-apb\0combphy"; - }; - - ethernet@fe1c0000 { - power-domains = <0x60 0x21>; - pinctrl-names = "default"; - phy-mode = "rgmii-rxid"; - snps,mixed-burst; - snps,mtl-rx-config = <0x10b>; - pinctrl-0 = <0x10e 0x10f 0x110 0x111 0x112>; - clock-names = "stmmaceth\0clk_mac_ref\0pclk_mac\0aclk_mac\0ptp_ref"; - snps,mtl-tx-config = <0x10c>; - local-mac-address = [a6 50 47 45 20 ee]; - interrupt-names = "macirq\0eth_wake_irq"; - interrupts = <0x00 0xea 0x04 0x00 0xe9 0x04>; - clocks = <0x144 0x145 0x168 0x16d 0x143>; - clock_in_out = "output"; - snps,tso; - compatible = "rockchip,rk3588-gmac\0snps,dwmac-4.20a"; - status = "okay"; - rockchip,grf = <0xc8>; - // reset-names = "stmmaceth"; - // resets = <0x02 0x20b>; - // snps,reset-active-low; - // snps,reset-gpio = <0x10d 0x08 0x01>; - // snps,reset-delays-us = <0x00 0x4e20 0x186a0>; - reg = <0x00 0xfe1c0000 0x00 0x10000>; - rockchip,php_grf = <0x76>; - phandle = <0x109>; - phy-handle = <0x113>; - tx_delay = <0x40>; - snps,axi-config = <0x10a>; - - mdio { - #address-cells = <0x01>; - #size-cells = <0x00>; - compatible = "snps,dwmac-mdio"; - phandle = <0x28f>; - - phy@1 { - compatible = "ethernet-phy-ieee802.3-c22"; - reg = <0x01>; - phandle = <0x113>; - }; - }; - - tx-queues-config { - phandle = <0x10c>; - snps,tx-queues-to-use = <0x01>; - - queue0 { - }; - }; - - stmmac-axi-config { - snps,wr_osr_lmt = <0x04>; - phandle = <0x10a>; - snps,blen = <0x00 0x00 0x00 0x00 0x10 0x08 0x04>; - snps,rd_osr_lmt = <0x08>; - }; - - rx-queues-config { - snps,rx-queues-to-use = <0x01>; - phandle = <0x10b>; - - queue0 { - }; - }; - }; - - reserved-memory { - #address-cells = <0x02>; - #size-cells = <0x02>; - ranges; - - cma { - linux,cma-default; - compatible = "shared-dma-pool"; - size = <0x00 0x800000>; - reusable; - }; - }; - - aliases { - serial2 = "/serial@feb50000"; - ethernet1 = "/ethernet@fe1c0000"; - mmc1 = "/mmc@fe2c0000"; - }; - - __symbols__ { - chosen = "/chosen"; - gic = "/interrupt-controller@fe600000"; - uart2 = "/serial@feb50000"; - - scmi_shmem = "/sram@10f000/sram@0"; - scmi = "/firmware/scmi"; - scmi_reset = "/firmware/scmi/protocol@16"; - scmi_clk = "/firmware/scmi/protocol@14"; - - gmac1 = "/ethernet@fe1c0000"; - mdio1 = "/ethernet@fe1c0000/mdio"; - rgmii_phy1 = "/ethernet@fe1c0000/mdio/phy@1"; - gmac1_mtl_rx_setup = "/ethernet@fe1c0000/rx-queues-config"; - gmac1_mtl_tx_setup = "/ethernet@fe1c0000/tx-queues-config"; - gmac1_stmmac_axi_setup = "/ethernet@fe1c0000/stmmac-axi-config"; - - sata0 = "/sata@fe210000"; - sata0m0_pins = "/pinctrl/sata0/sata0m0-pins"; - sata0m1_pins = "/pinctrl/sata0/sata0m1-pins"; - - }; - - syscon@fd5f0000 { - compatible = "rockchip,rk3588-ioc\0syscon"; - reg = <0x00 0xfd5f0000 0x00 0x10000>; - phandle = <0x196>; - }; - - pinctrl { - #address-cells = <0x02>; - #size-cells = <0x02>; - compatible = "rockchip,rk3588-pinctrl"; - ranges; - rockchip,grf = <0x196>; - phandle = <0x197>; - - uart2 { - - uart2-rtsn { - rockchip,pins = <0x03 0x0b 0x0a 0x198>; - phandle = <0x427>; - }; - - uart2m1-xfer { - rockchip,pins = <0x04 0x19 0x0a 0x19e 0x04 0x18 0x0a 0x19e>; - phandle = <0x161>; - }; - - uart2m0-xfer { - rockchip,pins = <0x00 0x0e 0x0a 0x19e 0x00 0x0d 0x0a 0x19e>; - phandle = <0x1ce>; - }; - - uart2-ctsn { - rockchip,pins = <0x03 0x0c 0x0a 0x198>; - phandle = <0x426>; - }; - - uart2m2-xfer { - rockchip,pins = <0x03 0x0a 0x0a 0x19e 0x03 0x09 0x0a 0x19e>; - phandle = <0x425>; - }; - }; - - gmac1 { - - gmac1-rgmii-clk { - rockchip,pins = <0x03 0x05 0x01 0x198 0x03 0x04 0x01 0x198>; - phandle = <0x111>; - }; - - gmac1-rx-bus2 { - rockchip,pins = <0x03 0x07 0x01 0x198 0x03 0x08 0x01 0x198 0x03 0x09 0x01 0x198>; - phandle = <0x110>; - }; - - gmac1-txer { - rockchip,pins = <0x03 0x0a 0x01 0x198>; - phandle = <0x332>; - }; - - gmac1-clkinout { - rockchip,pins = <0x03 0x0e 0x01 0x198>; - phandle = <0x32e>; - }; - - gmac1-ptp-ref-clk { - rockchip,pins = <0x03 0x0f 0x01 0x198>; - phandle = <0x331>; - }; - - gmac1-ppsclk { - rockchip,pins = <0x03 0x11 0x01 0x198>; - phandle = <0x32f>; - }; - - gmac1-ppstrig { - rockchip,pins = <0x03 0x10 0x01 0x198>; - phandle = <0x330>; - }; - - gmac1-rgmii-bus { - rockchip,pins = <0x03 0x02 0x01 0x198 0x03 0x03 0x01 0x198 0x03 0x00 0x01 0x19a 0x03 0x01 0x01 0x19a>; - phandle = <0x112>; - }; - - gmac1-tx-bus2 { - rockchip,pins = <0x03 0x0b 0x01 0x19a 0x03 0x0c 0x01 0x19a 0x03 0x0d 0x01 0x198>; - phandle = <0x10f>; - }; - - gmac1-miim { - rockchip,pins = <0x03 0x12 0x01 0x198 0x03 0x13 0x01 0x198>; - phandle = <0x10e>; - }; - }; - - sata { - - sata-reset { - rockchip,pins = <0x04 0x11 0x00 0x198>; - phandle = <0x3e7>; - }; - - sata-pins { - rockchip,pins = <0x00 0x16 0x0d 0x198 0x00 0x1c 0x0d 0x198 0x00 0x1d 0x0d 0x198>; - phandle = <0x3e6>; - }; - }; - - sata0 { - - sata0m1-pins { - rockchip,pins = <0x01 0x0b 0x06 0x198>; - phandle = <0x3e9>; - }; - - sata0m0-pins { - rockchip,pins = <0x04 0x0e 0x06 0x198>; - phandle = <0x3e8>; - }; - }; - - // output - - // pull up - - pcfg-pull-up { - phandle = <0x19e>; - bias-pull-up; - }; - - pcfg-pull-up-drv-level-2 { - drive-strength = <0x02>; - phandle = <0x199>; - bias-pull-up; - }; - - pcfg-pull-up-drv-level-6 { - drive-strength = <0x06>; - phandle = <0x19a>; - bias-pull-up; - }; - - // pull down - - // pull none - - pcfg-pull-none { - bias-disable; - phandle = <0x198>; - }; - }; - -}; diff --git a/configs/vms_bkp/aio-rk3588-jd4.dts b/configs/vms_bkp/aio-rk3588-jd4.dts deleted file mode 100644 index b1681d82..00000000 --- a/configs/vms_bkp/aio-rk3588-jd4.dts +++ /dev/null @@ -1,12893 +0,0 @@ -/dts-v1/; - -/ { - #address-cells = <0x02>; - model = "Firefly AIO-3588JD4"; - serial-number = "a0deeea630de3975"; - #size-cells = <0x02>; - interrupt-parent = <0x01>; - compatible = "rockchip,aio-3588jd4\0rockchip,rk3588"; - - pcie30-avdd1v8 { - regulator-max-microvolt = <0x1b7740>; - regulator-boot-on; - regulator-always-on; - regulator-min-microvolt = <0x1b7740>; - regulator-name = "pcie30_avdd1v8"; - compatible = "regulator-fixed"; - phandle = <0x4a6>; - vin-supply = <0x1de>; - }; - - syscon@fd5bc000 { - compatible = "rockchip,pipe-phy-grf\0syscon"; - reg = <0x00 0xfd5bc000 0x00 0x100>; - phandle = <0x194>; - }; - - vcc5v0-host3 { - regulator-max-microvolt = <0x4c4b40>; - regulator-boot-on; - gpio = <0x182 0x07 0x00>; - regulator-always-on; - enable-active-high; - regulator-min-microvolt = <0x4c4b40>; - regulator-name = "vcc5v0_host3"; - compatible = "regulator-fixed"; - status = "disabled"; - phandle = <0x4a2>; - vin-supply = <0x1dd>; - }; - - pwm@febd0030 { - pinctrl-names = "active"; - pinctrl-0 = <0x16c>; - clock-names = "pwm\0pclk"; - interrupts = <0x00 0x15a 0x04 0x00 0x15b 0x04>; - clocks = <0x02 0x54 0x02 0x53>; - #pwm-cells = <0x03>; - compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; - status = "disabled"; - reg = <0x00 0xfebd0030 0x00 0x10>; - phandle = <0x2d4>; - }; - - rkisp@fdcc0000 { - power-domains = <0x60 0x1c>; - iommus = <0xd1>; - clock-names = "aclk_isp\0hclk_isp\0clk_isp_core\0clk_isp_core_marvin\0clk_isp_core_vicap"; - interrupts = <0x00 0x87 0x04 0x00 0x89 0x04 0x00 0x8a 0x04>; - clocks = <0x02 0x120 0x02 0x121 0x02 0x11d 0x02 0x11e 0x02 0x11f>; - compatible = "rockchip,rk3588-rkisp"; - status = "disabled"; - interrupt-names = "isp_irq\0mi_irq\0mipi_irq"; - reg = <0x00 0xfdcc0000 0x00 0x7f00>; - phandle = <0x5a>; - }; - - qos@fdf66600 { - compatible = "syscon"; - reg = <0x00 0xfdf66600 0x00 0x20>; - phandle = <0x96>; - }; - - serial@febb0000 { - reg-io-width = <0x04>; - pinctrl-names = "default"; - pinctrl-0 = <0x167>; - clock-names = "baudclk\0apb_pclk"; - interrupts = <0x00 0x153 0x04>; - clocks = <0x02 0xd3 0x02 0xb2>; - compatible = "rockchip,rk3588-uart\0snps,dw-apb-uart"; - status = "disabled"; - reg = <0x00 0xfebb0000 0x00 0x100>; - phandle = <0x2d0>; - dmas = <0xf2 0x09 0xf2 0x0a>; - reg-shift = <0x02>; - }; - - qos@fdf41000 { - compatible = "syscon"; - reg = <0x00 0xfdf41000 0x00 0x20>; - phandle = <0xa6>; - }; - - csi2-dcphy1 { - rockchip,hw = <0x2d 0x2e>; - phy-names = "dcphy0\0dcphy1"; - compatible = "rockchip,rk3588-csi2-dphy"; - status = "disabled"; - phys = <0x2f 0x30>; - phandle = <0x20e>; - }; - - rkispp0-vir0 { - rockchip,hw = <0x5b>; - compatible = "rockchip,rk3588-rkispp-vir"; - status = "disabled"; - phandle = <0x243>; - }; - - wireless-bluetooth { - pinctrl-names = "default\0rts_gpio"; - pinctrl-0 = <0x1e5 0x1e6 0x1e7 0x1e8>; - clock-names = "ext_clock"; - BT,power_gpio = <0x7b 0x16 0x00>; - clocks = <0x1e4>; - BT,wake_gpio = <0x7b 0x15 0x00>; - uart_rts_gpios = <0xfe 0x02 0x01>; - compatible = "bluetooth-platdata"; - BT,wake_host_irq = <0x7b 0x00 0x00>; - pinctrl-1 = <0x1e9>; - status = "disabled"; - phandle = <0x4aa>; - }; - - pwm@febd0020 { - pinctrl-names = "active"; - pinctrl-0 = <0x16b>; - clock-names = "pwm\0pclk"; - interrupts = <0x00 0x15a 0x04>; - clocks = <0x02 0x54 0x02 0x53>; - #pwm-cells = <0x03>; - compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; - status = "disabled"; - reg = <0x00 0xfebd0020 0x00 0x10>; - phandle = <0x2d3>; - }; - - qos@fdf39000 { - compatible = "syscon"; - reg = <0x00 0xfdf39000 0x00 0x20>; - phandle = <0xaf>; - }; - - cam0-cam1-switch { - regulator-max-microvolt = <0x1b7740>; - pinctrl-names = "default"; - regulator-boot-on; - gpio = <0x181 0x11 0x00>; - pinctrl-0 = <0x1f0>; - regulator-always-on; - enable-active-high; - regulator-min-microvolt = <0x1b7740>; - regulator-name = "cam0_cam1_switch"; - compatible = "regulator-fixed"; - status = "okay"; - phandle = <0x4b2>; - }; - - qos@fdf3e400 { - compatible = "syscon"; - reg = <0x00 0xfdf3e400 0x00 0x20>; - phandle = <0xad>; - }; - - mipi2-csi2 { - rockchip,hw = <0x47 0x48 0x49 0x4a 0x4b 0x4c>; - compatible = "rockchip,rk3588-mipi-csi2"; - status = "okay"; - firefly-compatible; - phandle = <0x226>; - - ports { - #address-cells = <0x01>; - #size-cells = <0x00>; - - port@0 { - #address-cells = <0x01>; - #size-cells = <0x00>; - reg = <0x00>; - - endpoint@0 { - remote-endpoint = <0x4d>; - reg = <0x00>; - phandle = <0x33>; - }; - }; - - port@1 { - #address-cells = <0x01>; - #size-cells = <0x00>; - reg = <0x01>; - - endpoint@0 { - remote-endpoint = <0x4e>; - reg = <0x00>; - phandle = <0x54>; - }; - }; - }; - }; - - iommu@fdc48700 { - power-domains = <0x60 0x0f>; - rockchip,shootdown-entire; - clock-names = "aclk\0iface"; - interrupts = <0x00 0x62 0x04>; - clocks = <0x02 0x195 0x02 0x194>; - rockchip,enable-cmd-retry; - #iommu-cells = <0x00>; - compatible = "rockchip,iommu-v2"; - rockchip,disable-mmu-reset; - status = "okay"; - interrupt-names = "irq_rkvdec1_mmu"; - reg = <0x00 0xfdc48700 0x00 0x40 0x00 0xfdc48740 0x00 0x40>; - phandle = <0xcc>; - rockchip,master-handle-irq; - }; - - clock-controller@fd7c0000 { - #reset-cells = <0x01>; - assigned-clocks = <0x02 0x09 0x02 0x05 0x02 0x08 0x02 0x07 0x02 0xd8 0x02 0xda 0x02 0xd9 0x02 0x10e 0x02 0x10f 0x02 0x110 0x02 0x299 0x02 0x29a 0x02 0x7b 0x02 0xec 0x02 0x114 0x02 0x208 0x02 0x20e 0x02 0x21f 0x02 0x77>; - assigned-clock-rates = <0x4190ab00 0x2ee00000 0x32a9f880 0x46cf7100 0x29d7ab80 0x17d78400 0x1dcd6500 0x2cb41780 0x5f5e100 0x17d78400 0x5f5e100 0xbebc200 0x165a0bc0 0x8f0d180 0xbebc200 0xb71b00 0xb71b00 0x5e69ec0 0x1312d00>; - #clock-cells = <0x01>; - compatible = "rockchip,rk3588-cru"; - rockchip,grf = <0x76>; - reg = <0x00 0xfd7c0000 0x00 0x5c000>; - phandle = <0x02>; - }; - - qos@fdf81000 { - compatible = "syscon"; - reg = <0x00 0xfdf81000 0x00 0x20>; - phandle = <0xa0>; - }; - - qos@fdf36000 { - compatible = "syscon"; - reg = <0x00 0xfdf36000 0x00 0x20>; - phandle = <0xaa>; - }; - - i2s@fe4a0000 { - power-domains = <0x60 0x26>; - pinctrl-names = "default\0idle\0clk"; - pinctrl-2 = <0x132 0x133>; - pinctrl-0 = <0x12f 0x130>; - clock-names = "i2s_clk\0i2s_hclk"; - assigned-clocks = <0x02 0x2a>; - assigned-clock-parents = <0x02 0x05>; - interrupts = <0x00 0xb7 0x04>; - clocks = <0x02 0x2d 0x02 0x23>; - dma-names = "tx\0rx"; - #sound-dai-cells = <0x00>; - compatible = "rockchip,rk3588-i2s\0rockchip,rk3066-i2s"; - pinctrl-1 = <0x131>; - status = "disabled"; - reg = <0x00 0xfe4a0000 0x00 0x1000>; - phandle = <0x299>; - dmas = <0xf1 0x02 0xf1 0x03>; - rockchip,clk-trcm = <0x01>; - }; - - syscon@fd5c4000 { - compatible = "rockchip,pipe-phy-grf\0syscon"; - reg = <0x00 0xfd5c4000 0x00 0x100>; - phandle = <0x195>; - }; - - sram@ff001000 { - #address-cells = <0x01>; - #size-cells = <0x01>; - compatible = "mmio-sram"; - ranges = <0x00 0x00 0xff001000 0xef000>; - reg = <0x00 0xff001000 0x00 0xef000>; - phandle = <0x2eb>; - - rkvdec-sram@0 { - reg = <0x00 0x78000>; - phandle = <0xcb>; - }; - - rkvdec-sram@78000 { - reg = <0x78000 0x77000>; - phandle = <0xcd>; - }; - }; - - uio@fe1c0000 { - compatible = "rockchip,uio-gmac"; - status = "disabled"; - reg = <0x00 0xfe1c0000 0x00 0x10000>; - phandle = <0x28e>; - rockchip,ethernet = <0x109>; - }; - - pwm@febd0010 { - pinctrl-names = "active"; - pinctrl-0 = <0x16a>; - clock-names = "pwm\0pclk"; - interrupts = <0x00 0x15a 0x04>; - clocks = <0x02 0x54 0x02 0x53>; - #pwm-cells = <0x03>; - compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; - status = "okay"; - reg = <0x00 0xfebd0010 0x00 0x10>; - phandle = <0x1ed>; - }; - - rkisp1-vir3 { - rockchip,hw = <0x5a>; - compatible = "rockchip,rkisp-vir"; - status = "disabled"; - phandle = <0x242>; - }; - - pcie-clk2 { - regulator-boot-on; - regulator-always-on; - regulator-name = "pcie_clk2"; - compatible = "regulator-fixed"; - status = "okay"; - phandle = <0x495>; - gpios = <0x181 0x16 0x01>; - }; - - serial@feb40000 { - reg-io-width = <0x04>; - pinctrl-names = "default"; - pinctrl-0 = <0x160>; - clock-names = "baudclk\0apb_pclk"; - interrupts = <0x00 0x14c 0x04>; - clocks = <0x02 0xb7 0x02 0xab>; - compatible = "rockchip,rk3588-uart\0snps,dw-apb-uart"; - status = "okay"; - reg = <0x00 0xfeb40000 0x00 0x100>; - phandle = <0x2c9>; - dmas = <0x7c 0x08 0x7c 0x09>; - reg-shift = <0x02>; - }; - - pinctrl { - #address-cells = <0x02>; - #size-cells = <0x02>; - compatible = "rockchip,rk3588-pinctrl"; - ranges; - rockchip,grf = <0x196>; - phandle = <0x197>; - - eth0 { - - eth0-pins { - rockchip,pins = <0x02 0x13 0x01 0x198>; - phandle = <0x46c>; - }; - }; - - i2c3 { - - i2c3m3-xfer { - rockchip,pins = <0x02 0x0a 0x09 0x19d 0x02 0x0b 0x09 0x19d>; - phandle = <0x361>; - }; - - i2c3m2-xfer { - rockchip,pins = <0x04 0x04 0x09 0x19d 0x04 0x05 0x09 0x19d>; - phandle = <0x14a>; - }; - - i2c3m1-xfer { - rockchip,pins = <0x03 0x0f 0x09 0x19d 0x03 0x10 0x09 0x19d>; - phandle = <0x35f>; - }; - - i2c3m0-xfer { - rockchip,pins = <0x01 0x11 0x09 0x19d 0x01 0x10 0x09 0x19d>; - phandle = <0x35e>; - }; - - i2c3m4-xfer { - rockchip,pins = <0x04 0x18 0x09 0x19d 0x04 0x19 0x09 0x19d>; - phandle = <0x360>; - }; - }; - - pwm9 { - - pwm9m2-pins { - rockchip,pins = <0x03 0x19 0x0b 0x198>; - phandle = <0x3d7>; - }; - - pwm9m1-pins { - rockchip,pins = <0x04 0x19 0x0b 0x198>; - phandle = <0x3d6>; - }; - - pwm9m0-pins { - rockchip,pins = <0x03 0x08 0x0b 0x198>; - phandle = <0x16e>; - }; - }; - - pcfg-pull-none-drv-level-7 { - drive-strength = <0x07>; - bias-disable; - phandle = <0x451>; - }; - - mipi { - - mipi-te1 { - rockchip,pins = <0x03 0x13 0x02 0x198>; - phandle = <0x39f>; - }; - - mipim1-camera2-clk { - rockchip,pins = <0x03 0x07 0x04 0x198>; - phandle = <0x39b>; - }; - - mipim0-camera0-clk { - rockchip,pins = <0x04 0x09 0x01 0x198>; - phandle = <0x395>; - }; - - mipim0-camera4-clk { - rockchip,pins = <0x01 0x1f 0x02 0x198>; - phandle = <0x399>; - }; - - mipim1-camera3-clk { - rockchip,pins = <0x03 0x08 0x04 0x198>; - phandle = <0x39c>; - }; - - mipim0-camera1-clk { - rockchip,pins = <0x01 0x0e 0x02 0x198>; - phandle = <0x396>; - }; - - mipim1-camera0-clk { - rockchip,pins = <0x03 0x05 0x04 0x198>; - phandle = <0x39a>; - }; - - mipim1-camera4-clk { - rockchip,pins = <0x03 0x09 0x04 0x198>; - phandle = <0x39d>; - }; - - mipim0-camera2-clk { - rockchip,pins = <0x01 0x0f 0x02 0x198>; - phandle = <0x397>; - }; - - mipi-te0 { - rockchip,pins = <0x03 0x12 0x02 0x198>; - phandle = <0x39e>; - }; - - mipim1-camera1-clk { - rockchip,pins = <0x03 0x06 0x04 0x198>; - phandle = <0x180>; - }; - - mipim0-camera3-clk { - rockchip,pins = <0x01 0x1e 0x02 0x198>; - phandle = <0x398>; - }; - }; - - pwm14 { - - pwm14m2-pins { - rockchip,pins = <0x01 0x1e 0x0b 0x198>; - phandle = <0x3e1>; - }; - - pwm14m1-pins { - rockchip,pins = <0x04 0x0a 0x0b 0x198>; - phandle = <0x3e0>; - }; - - pwm14m0-pins { - rockchip,pins = <0x03 0x12 0x0b 0x198>; - phandle = <0x173>; - }; - }; - - pcfg-pull-none-drv-level-4-smt { - drive-strength = <0x04>; - bias-disable; - input-schmitt-enable; - phandle = <0x303>; - }; - - headphone { - - hp-det { - rockchip,pins = <0x02 0x13 0x00 0x198>; - phandle = <0x1dc>; - }; - }; - - npu { - - npu-pins { - rockchip,pins = <0x00 0x16 0x02 0x198>; - phandle = <0x3a0>; - }; - }; - - wireless-bluetooth { - - bt-reset-gpio { - rockchip,pins = <0x00 0x16 0x00 0x198>; - phandle = <0x1e6>; - }; - - bt-irq-gpio { - rockchip,pins = <0x00 0x00 0x00 0x198>; - phandle = <0x1e8>; - }; - - bt-wake-gpio { - rockchip,pins = <0x00 0x15 0x00 0x198>; - phandle = <0x1e7>; - }; - - uart6-gpios { - rockchip,pins = <0x01 0x02 0x00 0x198>; - phandle = <0x1e9>; - }; - }; - - pcie30x1 { - - pcie30x1-1-button-rstn { - rockchip,pins = <0x04 0x0a 0x04 0x198>; - phandle = <0x3a9>; - }; - - pcie30x1m1-pins { - rockchip,pins = <0x04 0x03 0x04 0x198 0x04 0x05 0x04 0x198 0x04 0x04 0x04 0x198 0x04 0x00 0x04 0x198 0x04 0x02 0x04 0x198 0x04 0x01 0x04 0x198>; - phandle = <0x3a6>; - }; - - pcie30x1m0-pins { - rockchip,pins = <0x00 0x10 0x0c 0x198 0x00 0x15 0x0c 0x198 0x00 0x14 0x0c 0x198 0x00 0x0d 0x0c 0x198 0x00 0x0f 0x0c 0x198 0x00 0x0e 0x0c 0x198>; - phandle = <0x3a5>; - }; - - pcie30x1-0-button-rstn { - rockchip,pins = <0x04 0x09 0x04 0x198>; - phandle = <0x3a8>; - }; - - pcie30x1m2-pins { - rockchip,pins = <0x01 0x0d 0x04 0x198 0x01 0x0c 0x04 0x198 0x01 0x0b 0x04 0x198 0x01 0x00 0x04 0x198 0x01 0x07 0x04 0x198 0x01 0x01 0x04 0x198>; - phandle = <0x3a7>; - }; - }; - - uart8 { - - uart8m0-rtsn { - rockchip,pins = <0x04 0x0a 0x0a 0x198>; - phandle = <0x443>; - }; - - uart8m1-ctsn { - rockchip,pins = <0x03 0x05 0x0a 0x198>; - phandle = <0x444>; - }; - - uart8m0-ctsn { - rockchip,pins = <0x04 0x0b 0x0a 0x198>; - phandle = <0x442>; - }; - - uart8m1-xfer { - rockchip,pins = <0x03 0x03 0x0a 0x19e 0x03 0x02 0x0a 0x19e>; - phandle = <0x167>; - }; - - uart8m0-xfer { - rockchip,pins = <0x04 0x09 0x0a 0x19e 0x04 0x08 0x0a 0x19e>; - phandle = <0x441>; - }; - - uart8-xfer { - rockchip,pins = <0x04 0x09 0x0a 0x19e>; - phandle = <0x446>; - }; - - uart8m1-rtsn { - rockchip,pins = <0x03 0x04 0x0a 0x198>; - phandle = <0x445>; - }; - }; - - spi2 { - - spi2m0-cs1 { - rockchip,pins = <0x01 0x08 0x08 0x19a>; - phandle = <0x404>; - }; - - spi2m2-cs0 { - rockchip,pins = <0x00 0x09 0x01 0x19f>; - phandle = <0x154>; - }; - - spi2m1-cs1 { - rockchip,pins = <0x04 0x08 0x08 0x19a>; - phandle = <0x407>; - }; - - spi2m2-pins { - rockchip,pins = <0x00 0x05 0x01 0x19f 0x00 0x0b 0x01 0x19f 0x00 0x06 0x01 0x19f>; - phandle = <0x155>; - }; - - spi2m1-pins { - rockchip,pins = <0x04 0x06 0x08 0x19a 0x04 0x04 0x08 0x19a 0x04 0x05 0x08 0x19a>; - phandle = <0x405>; - }; - - spi2m2-cs1 { - rockchip,pins = <0x00 0x08 0x01 0x19f>; - phandle = <0x408>; - }; - - spi2m0-cs0 { - rockchip,pins = <0x01 0x07 0x08 0x19a>; - phandle = <0x403>; - }; - - spi2m0-pins { - rockchip,pins = <0x01 0x06 0x08 0x19a 0x01 0x04 0x08 0x19a 0x01 0x05 0x08 0x19a>; - phandle = <0x402>; - }; - - spi2m1-cs0 { - rockchip,pins = <0x04 0x07 0x08 0x19a>; - phandle = <0x406>; - }; - }; - - pcfg-pull-up-drv-level-15 { - drive-strength = <0x0f>; - phandle = <0x462>; - bias-pull-up; - }; - - pcfg-pull-down-drv-level-13 { - drive-strength = <0x0d>; - bias-pull-down; - phandle = <0x469>; - }; - - pcfg-pull-up-drv-level-2 { - drive-strength = <0x02>; - phandle = <0x199>; - bias-pull-up; - }; - - i2s1 { - - i2s1m0-sdo1 { - rockchip,pins = <0x04 0x0a 0x03 0x198>; - phandle = <0x127>; - }; - - i2s1m1-sdi1 { - rockchip,pins = <0x00 0x16 0x01 0x198>; - phandle = <0x380>; - }; - - i2s1m0-sdi3 { - rockchip,pins = <0x04 0x08 0x03 0x198>; - phandle = <0x125>; - }; - - i2s1m0-mclk { - rockchip,pins = <0x04 0x00 0x03 0x19d>; - phandle = <0x37b>; - }; - - i2s1m0-sdi1 { - rockchip,pins = <0x04 0x06 0x03 0x198>; - phandle = <0x123>; - }; - - i2s1m1-sdo2 { - rockchip,pins = <0x00 0x1c 0x01 0x198>; - phandle = <0x385>; - }; - - i2s1m1-sdo0 { - rockchip,pins = <0x00 0x19 0x01 0x198>; - phandle = <0x383>; - }; - - i2s1m0-sdo2 { - rockchip,pins = <0x04 0x0b 0x03 0x198>; - phandle = <0x128>; - }; - - i2s1m1-sdi2 { - rockchip,pins = <0x00 0x17 0x01 0x198>; - phandle = <0x381>; - }; - - i2s1m0-sdo0 { - rockchip,pins = <0x04 0x09 0x03 0x198>; - phandle = <0x126>; - }; - - i2s1m1-sdi0 { - rockchip,pins = <0x00 0x15 0x01 0x198>; - phandle = <0x37f>; - }; - - i2s1m0-sdi2 { - rockchip,pins = <0x04 0x07 0x03 0x198>; - phandle = <0x124>; - }; - - i2s1m1-sclk { - rockchip,pins = <0x00 0x0e 0x01 0x19d>; - phandle = <0x37e>; - }; - - i2s1m0-sdi0 { - rockchip,pins = <0x04 0x05 0x03 0x198>; - phandle = <0x122>; - }; - - i2s1m1-sdo3 { - rockchip,pins = <0x00 0x1d 0x01 0x198>; - phandle = <0x386>; - }; - - i2s1m1-lrck { - rockchip,pins = <0x00 0x0f 0x01 0x19d>; - phandle = <0x37c>; - }; - - i2s1m0-sclk { - rockchip,pins = <0x04 0x01 0x03 0x19d>; - phandle = <0x121>; - }; - - i2s1m1-sdo1 { - rockchip,pins = <0x00 0x1a 0x01 0x198>; - phandle = <0x384>; - }; - - i2s1m0-sdo3 { - rockchip,pins = <0x04 0x0c 0x03 0x198>; - phandle = <0x129>; - }; - - i2s1m1-sdi3 { - rockchip,pins = <0x00 0x18 0x01 0x198>; - phandle = <0x382>; - }; - - i2s1m0-lrck { - rockchip,pins = <0x04 0x02 0x03 0x19d>; - phandle = <0x120>; - }; - - i2s1m1-mclk { - rockchip,pins = <0x00 0x0d 0x01 0x19d>; - phandle = <0x37d>; - }; - }; - - ddrphych2 { - - ddrphych2-pins { - rockchip,pins = <0x04 0x08 0x07 0x198 0x04 0x09 0x07 0x198 0x04 0x0a 0x07 0x198 0x04 0x0b 0x07 0x198>; - phandle = <0x31a>; - }; - }; - - pcfg-pull-none-drv-level-12 { - drive-strength = <0x0c>; - bias-disable; - phandle = <0x456>; - }; - - i2c1 { - - i2c1m2-xfer { - rockchip,pins = <0x00 0x1c 0x09 0x19d 0x00 0x1d 0x09 0x19d>; - phandle = <0x148>; - }; - - i2c1m1-xfer { - rockchip,pins = <0x00 0x08 0x02 0x19d 0x00 0x09 0x02 0x19d>; - phandle = <0x357>; - }; - - i2c1m0-xfer { - rockchip,pins = <0x00 0x0d 0x09 0x19d 0x00 0x0e 0x09 0x19d>; - phandle = <0x356>; - }; - - i2c1m4-xfer { - rockchip,pins = <0x01 0x1a 0x09 0x19d 0x01 0x1b 0x09 0x19d>; - phandle = <0x359>; - }; - - i2c1m3-xfer { - rockchip,pins = <0x02 0x1c 0x09 0x19d 0x02 0x1d 0x09 0x19d>; - phandle = <0x358>; - }; - }; - - pwm7 { - - pwm7m3-pins { - rockchip,pins = <0x04 0x16 0x0b 0x198>; - phandle = <0x3d3>; - }; - - pwm7m2-pins { - rockchip,pins = <0x01 0x13 0x0b 0x198>; - phandle = <0x3d2>; - }; - - pwm7m1-pins { - rockchip,pins = <0x04 0x1c 0x0b 0x198>; - phandle = <0x3d1>; - }; - - pwm7m0-pins { - rockchip,pins = <0x00 0x18 0x0b 0x198>; - phandle = <0x16c>; - }; - }; - - pcfg-pull-none-drv-level-5 { - drive-strength = <0x05>; - bias-disable; - phandle = <0x2f1>; - }; - - gmac0 { - - gmac0-clkinout { - rockchip,pins = <0x04 0x13 0x01 0x198>; - phandle = <0x46d>; - }; - - gmac0-miim { - rockchip,pins = <0x04 0x14 0x01 0x198 0x04 0x15 0x01 0x198>; - phandle = <0x1c1>; - }; - - gmac0-tx-bus2 { - rockchip,pins = <0x02 0x0e 0x01 0x19a 0x02 0x0f 0x01 0x19a 0x02 0x10 0x01 0x198>; - phandle = <0x1c2>; - }; - - gmac0-rgmii-bus { - rockchip,pins = <0x02 0x06 0x01 0x198 0x02 0x07 0x01 0x198 0x02 0x09 0x01 0x19a 0x02 0x0a 0x01 0x19a>; - phandle = <0x1c5>; - }; - - gmac0-ppsclk { - rockchip,pins = <0x02 0x14 0x01 0x198>; - phandle = <0x46e>; - }; - - gmac0-txer { - rockchip,pins = <0x04 0x16 0x01 0x198>; - phandle = <0x471>; - }; - - gmac0-ptp-refclk { - rockchip,pins = <0x02 0x0c 0x01 0x198>; - phandle = <0x470>; - }; - - gmac0-rx-bus2 { - rockchip,pins = <0x02 0x11 0x01 0x198 0x02 0x12 0x01 0x198 0x04 0x12 0x01 0x198>; - phandle = <0x1c3>; - }; - - gmac0-rgmii-clk { - rockchip,pins = <0x02 0x08 0x01 0x198 0x02 0x0b 0x01 0x198>; - phandle = <0x1c4>; - }; - - gmac0-ppstring { - rockchip,pins = <0x02 0x0d 0x01 0x198>; - phandle = <0x46f>; - }; - }; - - pwm12 { - - pwm12m1-pins { - rockchip,pins = <0x04 0x0d 0x0b 0x198>; - phandle = <0x3dd>; - }; - - pwm12m0-pins { - rockchip,pins = <0x03 0x0d 0x0b 0x198>; - phandle = <0x171>; - }; - }; - - usb-typec { - - usbc0-int { - rockchip,pins = <0x00 0x1b 0x00 0x198>; - phandle = <0x17b>; - }; - - usb-5v-ctrl { - rockchip,pins = <0x01 0x03 0x00 0x198>; - phandle = <0x1ef>; - }; - }; - - uart6 { - - uart6m1-ctsn { - rockchip,pins = <0x01 0x03 0x0a 0x198>; - phandle = <0x436>; - }; - - uart6m2-xfer { - rockchip,pins = <0x01 0x19 0x0a 0x19e 0x01 0x18 0x0a 0x19e>; - phandle = <0x437>; - }; - - uart6m0-ctsn { - rockchip,pins = <0x02 0x09 0x0a 0x198>; - phandle = <0x439>; - }; - - uart6m1-xfer { - rockchip,pins = <0x01 0x00 0x0a 0x19e 0x01 0x01 0x0a 0x19e>; - phandle = <0x165>; - }; - - uart6m0-xfer { - rockchip,pins = <0x02 0x06 0x0a 0x19e 0x02 0x07 0x0a 0x19e>; - phandle = <0x438>; - }; - - uart6m1-rtsn { - rockchip,pins = <0x01 0x02 0x0a 0x198>; - phandle = <0x1e5>; - }; - - uart6m0-rtsn { - rockchip,pins = <0x02 0x08 0x0a 0x198>; - phandle = <0x43a>; - }; - }; - - pcfg-pull-down-drv-level-8 { - drive-strength = <0x08>; - bias-pull-down; - phandle = <0x464>; - }; - - gpu { - - gpu-pins { - rockchip,pins = <0x00 0x15 0x02 0x198>; - phandle = <0x333>; - }; - }; - - spi0 { - - spi0m2-cs1 { - rockchip,pins = <0x01 0x0d 0x08 0x19a>; - phandle = <0x3f8>; - }; - - spi0m0-cs0 { - rockchip,pins = <0x00 0x19 0x08 0x19a>; - phandle = <0x14e>; - }; - - spi0m3-pins { - rockchip,pins = <0x03 0x1b 0x08 0x19a 0x03 0x19 0x08 0x19a 0x03 0x1a 0x08 0x19a>; - phandle = <0x3f9>; - }; - - spi0m3-cs1 { - rockchip,pins = <0x03 0x1d 0x08 0x19a>; - phandle = <0x3fb>; - }; - - spi0m2-pins { - rockchip,pins = <0x01 0x0b 0x08 0x19a 0x01 0x09 0x08 0x19a 0x01 0x0a 0x08 0x19a>; - phandle = <0x3f6>; - }; - - spi0m1-cs0 { - rockchip,pins = <0x04 0x0a 0x08 0x19a>; - phandle = <0x3f4>; - }; - - spi0m1-pins { - rockchip,pins = <0x04 0x02 0x08 0x19a 0x04 0x00 0x08 0x19a 0x04 0x01 0x08 0x19a>; - phandle = <0x3f3>; - }; - - spi0m0-cs1 { - rockchip,pins = <0x00 0x0f 0x08 0x19a>; - phandle = <0x14f>; - }; - - spi0m2-cs0 { - rockchip,pins = <0x01 0x0c 0x08 0x19a>; - phandle = <0x3f7>; - }; - - spi0m0-pins { - rockchip,pins = <0x00 0x16 0x08 0x19a 0x00 0x17 0x08 0x19a 0x00 0x10 0x08 0x19a>; - phandle = <0x150>; - }; - - spi0m1-cs1 { - rockchip,pins = <0x04 0x09 0x08 0x19a>; - phandle = <0x3f5>; - }; - - spi0m3-cs0 { - rockchip,pins = <0x03 0x1c 0x08 0x19a>; - phandle = <0x3fa>; - }; - }; - - fspi { - - fspim0-cs1 { - rockchip,pins = <0x02 0x1f 0x02 0x199>; - phandle = <0x329>; - }; - - fspim1-pins { - rockchip,pins = <0x02 0x0b 0x03 0x199 0x02 0x0c 0x03 0x199 0x02 0x06 0x03 0x199 0x02 0x07 0x03 0x199 0x02 0x08 0x03 0x199 0x02 0x09 0x03 0x199>; - phandle = <0x32c>; - }; - - fspim0-pins { - rockchip,pins = <0x02 0x00 0x02 0x199 0x02 0x1e 0x02 0x199 0x02 0x18 0x02 0x199 0x02 0x19 0x02 0x199 0x02 0x1a 0x02 0x199 0x02 0x1b 0x02 0x199>; - phandle = <0x328>; - }; - - fspim1-cs1 { - rockchip,pins = <0x02 0x0d 0x03 0x199>; - phandle = <0x32d>; - }; - - fspim2-cs1 { - rockchip,pins = <0x03 0x15 0x02 0x199>; - phandle = <0x32b>; - }; - - fspim2-pins { - rockchip,pins = <0x03 0x05 0x05 0x199 0x03 0x14 0x02 0x199 0x03 0x00 0x05 0x199 0x03 0x01 0x05 0x199 0x03 0x02 0x05 0x199 0x03 0x03 0x05 0x199>; - phandle = <0x32a>; - }; - }; - - pcfg-pull-up-drv-level-13 { - drive-strength = <0x0d>; - phandle = <0x460>; - bias-pull-up; - }; - - clk32k { - - clk32k-out0 { - rockchip,pins = <0x00 0x0a 0x02 0x198>; - phandle = <0x315>; - }; - - clk32k-in { - rockchip,pins = <0x00 0x0a 0x01 0x198>; - phandle = <0x314>; - }; - - clk32k-out1 { - rockchip,pins = <0x02 0x15 0x01 0x198>; - phandle = <0x316>; - }; - }; - - pcfg-pull-down-drv-level-11 { - drive-strength = <0x0b>; - bias-pull-down; - phandle = <0x467>; - }; - - pcie30phy { - - pcie30phy-pins { - rockchip,pins = <0x01 0x14 0x04 0x198 0x01 0x19 0x04 0x198>; - phandle = <0x3a4>; - }; - }; - - pcfg-pull-up-drv-level-0 { - drive-strength = <0x00>; - phandle = <0x2f3>; - bias-pull-up; - }; - - ddrphych0 { - - ddrphych0-pins { - rockchip,pins = <0x04 0x00 0x07 0x198 0x04 0x01 0x07 0x198 0x04 0x02 0x07 0x198 0x04 0x03 0x07 0x198>; - phandle = <0x318>; - }; - }; - - pcfg-pull-none-drv-level-10 { - drive-strength = <0x0a>; - bias-disable; - phandle = <0x454>; - }; - - pwm5 { - - pwm5m2-pins { - rockchip,pins = <0x04 0x14 0x0b 0x198>; - phandle = <0x3ce>; - }; - - pwm5m1-pins { - rockchip,pins = <0x00 0x16 0x0b 0x198>; - phandle = <0x16a>; - }; - - pwm5m0-pins { - rockchip,pins = <0x00 0x09 0x03 0x198>; - phandle = <0x3cd>; - }; - }; - - pcfg-pull-none-drv-level-3 { - drive-strength = <0x03>; - bias-disable; - phandle = <0x2ef>; - }; - - pwm10 { - - pwm10m2-pins { - rockchip,pins = <0x03 0x1b 0x0b 0x198>; - phandle = <0x3d9>; - }; - - pwm10m1-pins { - rockchip,pins = <0x04 0x1b 0x0b 0x198>; - phandle = <0x3d8>; - }; - - pwm10m0-pins { - rockchip,pins = <0x03 0x00 0x0b 0x198>; - phandle = <0x16f>; - }; - }; - - pcfg-pull-down-smt { - input-schmitt-enable; - bias-pull-down; - phandle = <0x2ff>; - }; - - gpio@fec50000 { - gpio-controller; - interrupts = <0x00 0x119 0x04>; - clocks = <0x02 0x83 0x02 0x84>; - compatible = "rockchip,gpio-bank"; - #interrupt-cells = <0x02>; - reg = <0x00 0xfec50000 0x00 0x100>; - phandle = <0x10d>; - #gpio-cells = <0x02>; - gpio-ranges = <0x197 0x00 0x80 0x20>; - interrupt-controller; - }; - - pcfg-pull-down { - bias-pull-down; - phandle = <0x2ec>; - }; - - uart4 { - - uart4m2-xfer { - rockchip,pins = <0x01 0x0a 0x0a 0x19e 0x01 0x0b 0x0a 0x19e>; - phandle = <0x42d>; - }; - - uart4-ctsn { - rockchip,pins = <0x01 0x17 0x0a 0x198>; - phandle = <0x42e>; - }; - - uart4m1-xfer { - rockchip,pins = <0x03 0x18 0x0a 0x19e 0x03 0x19 0x0a 0x19e>; - phandle = <0x163>; - }; - - uart4m0-xfer { - rockchip,pins = <0x01 0x1b 0x0a 0x19e 0x01 0x1a 0x0a 0x19e>; - phandle = <0x42c>; - }; - - uart4-rtsn { - rockchip,pins = <0x01 0x15 0x0a 0x198>; - phandle = <0x42f>; - }; - }; - - spdif0 { - - spdif0m0-tx { - rockchip,pins = <0x01 0x0e 0x03 0x198>; - phandle = <0x142>; - }; - - spdif0m1-tx { - rockchip,pins = <0x04 0x0c 0x06 0x198>; - phandle = <0x3f0>; - }; - }; - - pcfg-pull-down-drv-level-6 { - drive-strength = <0x06>; - bias-pull-down; - phandle = <0x2fd>; - }; - - pcfg-pull-up-drv-level-9 { - drive-strength = <0x09>; - phandle = <0x45c>; - bias-pull-up; - }; - - pcfg-pull-none-drv-level-1-smt { - drive-strength = <0x01>; - bias-disable; - input-schmitt-enable; - phandle = <0x19c>; - }; - - pcfg-pull-up-drv-level-11 { - drive-strength = <0x0b>; - phandle = <0x45e>; - bias-pull-up; - }; - - mcu { - - mcum1-pins { - rockchip,pins = <0x03 0x1c 0x06 0x198 0x03 0x1d 0x06 0x198>; - phandle = <0x394>; - }; - - mcum0-pins { - rockchip,pins = <0x04 0x1c 0x05 0x198 0x04 0x1d 0x05 0x198>; - phandle = <0x393>; - }; - }; - - i2c8 { - - i2c8m4-xfer { - rockchip,pins = <0x03 0x12 0x09 0x19d 0x03 0x13 0x09 0x19d>; - phandle = <0x373>; - }; - - i2c8m3-xfer { - rockchip,pins = <0x04 0x10 0x09 0x19d 0x04 0x11 0x09 0x19d>; - phandle = <0x372>; - }; - - i2c8m2-xfer { - rockchip,pins = <0x01 0x1e 0x09 0x19d 0x01 0x1f 0x09 0x19d>; - phandle = <0x371>; - }; - - i2c8m1-xfer { - rockchip,pins = <0x02 0x08 0x09 0x19d 0x02 0x09 0x09 0x19d>; - phandle = <0x374>; - }; - - i2c8m0-xfer { - rockchip,pins = <0x04 0x1a 0x09 0x19d 0x04 0x1b 0x09 0x19d>; - phandle = <0x186>; - }; - }; - - dp0 { - - dp0m0-pins { - rockchip,pins = <0x04 0x0c 0x05 0x198>; - phandle = <0x31c>; - }; - - dp0m2-pins { - rockchip,pins = <0x01 0x00 0x05 0x198>; - phandle = <0x31e>; - }; - - dp0m1-pins { - rockchip,pins = <0x00 0x14 0x0a 0x198>; - phandle = <0x31d>; - }; - }; - - pcfg-pull-none-drv-level-5-smt { - drive-strength = <0x05>; - bias-disable; - input-schmitt-enable; - phandle = <0x19b>; - }; - - pwm3 { - - pwm3m2-pins { - rockchip,pins = <0x01 0x12 0x0b 0x198>; - phandle = <0x3ca>; - }; - - pwm3m1-pins { - rockchip,pins = <0x03 0x0a 0x0b 0x198>; - phandle = <0x3c9>; - }; - - pwm3m0-pins { - rockchip,pins = <0x00 0x1c 0x03 0x198>; - phandle = <0x81>; - }; - - pwm3m3-pins { - rockchip,pins = <0x01 0x07 0x0b 0x198>; - phandle = <0x3cb>; - }; - }; - - pcfg-pull-none-drv-level-1 { - drive-strength = <0x01>; - bias-disable; - phandle = <0x2ee>; - }; - - sata2 { - - sata2m1-pins { - rockchip,pins = <0x01 0x0f 0x06 0x198>; - phandle = <0x3ed>; - }; - - sata2m0-pins { - rockchip,pins = <0x04 0x09 0x06 0x198>; - phandle = <0x3ec>; - }; - }; - - cam { - - cam0-or-cam1-switch-pin { - rockchip,pins = <0x03 0x11 0x00 0x198>; - phandle = <0x1f0>; - }; - }; - - uart2 { - - uart2-rtsn { - rockchip,pins = <0x03 0x0b 0x0a 0x198>; - phandle = <0x427>; - }; - - uart2m1-xfer { - rockchip,pins = <0x04 0x19 0x0a 0x19e 0x04 0x18 0x0a 0x19e>; - phandle = <0x161>; - }; - - uart2m0-xfer { - rockchip,pins = <0x00 0x0e 0x0a 0x19e 0x00 0x0d 0x0a 0x19e>; - phandle = <0x1ce>; - }; - - uart2-ctsn { - rockchip,pins = <0x03 0x0c 0x0a 0x198>; - phandle = <0x426>; - }; - - uart2m2-xfer { - rockchip,pins = <0x03 0x0a 0x0a 0x19e 0x03 0x09 0x0a 0x19e>; - phandle = <0x425>; - }; - }; - - pcfg-pull-down-drv-level-4 { - drive-strength = <0x04>; - bias-pull-down; - phandle = <0x2fb>; - }; - - pcfg-pull-up-drv-level-7 { - drive-strength = <0x07>; - phandle = <0x45a>; - bias-pull-up; - }; - - i2c6 { - - i2c6m4-xfer { - rockchip,pins = <0x03 0x01 0x09 0x19d 0x03 0x00 0x09 0x19d>; - phandle = <0x36c>; - }; - - i2c6m3-xfer { - rockchip,pins = <0x04 0x09 0x09 0x19d 0x04 0x08 0x09 0x19d>; - phandle = <0x36b>; - }; - - i2c6m2-xfer { - rockchip,pins = <0x02 0x13 0x09 0x19d 0x02 0x12 0x09 0x19d>; - phandle = <0x36d>; - }; - - i2c6m1-xfer { - rockchip,pins = <0x01 0x13 0x09 0x19d 0x01 0x12 0x09 0x19d>; - phandle = <0x36a>; - }; - - i2c6m0-xfer { - rockchip,pins = <0x00 0x18 0x09 0x19d 0x00 0x17 0x09 0x19d>; - phandle = <0x178>; - }; - }; - - pdm1 { - - pdm1m1-sdi3 { - rockchip,pins = <0x01 0x0a 0x02 0x198>; - phandle = <0x3c1>; - }; - - pdm1m0-clk { - rockchip,pins = <0x04 0x1d 0x02 0x198>; - phandle = <0x140>; - }; - - pdm1m1-sdi1 { - rockchip,pins = <0x01 0x08 0x02 0x198>; - phandle = <0x3bf>; - }; - - pdm1m0-sdi3 { - rockchip,pins = <0x04 0x18 0x02 0x198>; - phandle = <0x13e>; - }; - - pdm1m0-sdi1 { - rockchip,pins = <0x04 0x1a 0x02 0x198>; - phandle = <0x13c>; - }; - - pdm1m1-clk { - rockchip,pins = <0x01 0x0c 0x02 0x198>; - phandle = <0x3bb>; - }; - - pdm1m1-clk1 { - rockchip,pins = <0x01 0x0b 0x02 0x198>; - phandle = <0x3bc>; - }; - - pdm1m1-idle { - rockchip,pins = <0x01 0x0c 0x00 0x198 0x01 0x0b 0x00 0x198>; - phandle = <0x3bd>; - }; - - pdm1m0-clk1 { - rockchip,pins = <0x04 0x1c 0x02 0x198>; - phandle = <0x141>; - }; - - pdm1m1-sdi2 { - rockchip,pins = <0x01 0x09 0x02 0x198>; - phandle = <0x3c0>; - }; - - pdm1m0-idle { - rockchip,pins = <0x04 0x1d 0x00 0x198 0x04 0x1c 0x00 0x198>; - phandle = <0x13f>; - }; - - pdm1m1-sdi0 { - rockchip,pins = <0x01 0x07 0x02 0x198>; - phandle = <0x3be>; - }; - - pdm1m0-sdi2 { - rockchip,pins = <0x04 0x19 0x02 0x198>; - phandle = <0x13d>; - }; - - pdm1m0-sdi0 { - rockchip,pins = <0x04 0x1b 0x02 0x198>; - phandle = <0x13b>; - }; - }; - - cpu { - - cpu-pins { - rockchip,pins = <0x00 0x19 0x02 0x198 0x00 0x1d 0x02 0x198>; - phandle = <0x317>; - }; - }; - - gpio-func { - - tsadc-gpio-func { - rockchip,pins = <0x00 0x01 0x00 0x198>; - phandle = <0x175>; - }; - }; - - pcie20x1 { - - pcie20x1-2-button-rstn { - rockchip,pins = <0x04 0x0b 0x04 0x198>; - phandle = <0x3a3>; - }; - - pcie20x1m1-pins { - rockchip,pins = <0x04 0x0f 0x04 0x198 0x04 0x11 0x04 0x198 0x04 0x10 0x04 0x198>; - phandle = <0x3a2>; - }; - - pcie20x1m0-pins { - rockchip,pins = <0x03 0x17 0x04 0x198 0x03 0x19 0x04 0x198 0x03 0x18 0x04 0x198>; - phandle = <0x3a1>; - }; - }; - - leds { - - leds-gpio { - rockchip,pins = <0x00 0x15 0x00 0x198>; - phandle = <0x1ee>; - }; - }; - - pwm1 { - - pwm1m1-pins { - rockchip,pins = <0x01 0x1b 0x0b 0x198>; - phandle = <0x3c5>; - }; - - pwm1m0-pins { - rockchip,pins = <0x00 0x10 0x03 0x198>; - phandle = <0x7f>; - }; - - pwm1m2-pins { - rockchip,pins = <0x01 0x03 0x0b 0x198>; - phandle = <0x3c6>; - }; - }; - - sata0 { - - sata0m1-pins { - rockchip,pins = <0x01 0x0b 0x06 0x198>; - phandle = <0x3e9>; - }; - - sata0m0-pins { - rockchip,pins = <0x04 0x0e 0x06 0x198>; - phandle = <0x3e8>; - }; - }; - - refclk { - - refclk-pins { - rockchip,pins = <0x00 0x00 0x01 0x198>; - phandle = <0x3e5>; - }; - }; - - pcie30x4 { - - pcie30x4m2-pins { - rockchip,pins = <0x03 0x14 0x04 0x198 0x03 0x16 0x04 0x198 0x03 0x15 0x04 0x198>; - phandle = <0x3b1>; - }; - - pcie30x4m1-pins { - rockchip,pins = <0x04 0x0c 0x04 0x198 0x04 0x0e 0x04 0x198 0x04 0x0d 0x04 0x198>; - phandle = <0x3b0>; - }; - - pcie30x4-button-rstn { - rockchip,pins = <0x03 0x1d 0x04 0x198>; - phandle = <0x3b3>; - }; - - pcie30x4m0-pins { - rockchip,pins = <0x00 0x16 0x0c 0x198 0x00 0x18 0x0c 0x198 0x00 0x17 0x0c 0x198>; - phandle = <0x3af>; - }; - - pcie30x4m3-pins { - rockchip,pins = <0x01 0x08 0x04 0x198 0x01 0x0a 0x04 0x198 0x01 0x09 0x04 0x198>; - phandle = <0x3b2>; - }; - }; - - can2 { - - can2m1-pins { - rockchip,pins = <0x00 0x1c 0x0a 0x198 0x00 0x1d 0x0a 0x198>; - phandle = <0x30f>; - }; - - can2m0-pins { - rockchip,pins = <0x03 0x14 0x09 0x198 0x03 0x15 0x09 0x198>; - phandle = <0x147>; - }; - }; - - litcpu { - - litcpu-pins { - rockchip,pins = <0x00 0x1b 0x01 0x198>; - phandle = <0x392>; - }; - }; - - sata { - - sata-reset { - rockchip,pins = <0x04 0x11 0x00 0x198>; - phandle = <0x3e7>; - }; - - sata-pins { - rockchip,pins = <0x00 0x16 0x0d 0x198 0x00 0x1c 0x0d 0x198 0x00 0x1d 0x0d 0x198>; - phandle = <0x3e6>; - }; - }; - - tsadc { - - tsadc-shut { - rockchip,pins = <0x00 0x01 0x02 0x198>; - phandle = <0x176>; - }; - - tsadc-shut-org { - rockchip,pins = <0x00 0x01 0x01 0x198>; - phandle = <0x418>; - }; - - tsadcm1-shut { - rockchip,pins = <0x00 0x02 0x02 0x198>; - phandle = <0x417>; - }; - }; - - uart0 { - - uart0m1-xfer { - rockchip,pins = <0x00 0x08 0x04 0x19e 0x00 0x09 0x04 0x19e>; - phandle = <0x7d>; - }; - - uart0m0-xfer { - rockchip,pins = <0x00 0x14 0x04 0x19e 0x00 0x15 0x04 0x19e>; - phandle = <0x419>; - }; - - uart0-rtsn { - rockchip,pins = <0x00 0x16 0x04 0x198>; - phandle = <0x41c>; - }; - - uart0-ctsn { - rockchip,pins = <0x00 0x19 0x04 0x198>; - phandle = <0x41b>; - }; - - uart0m2-xfer { - rockchip,pins = <0x04 0x04 0x0a 0x19e 0x04 0x03 0x0a 0x19e>; - phandle = <0x41a>; - }; - }; - - pcfg-pull-down-drv-level-2 { - drive-strength = <0x02>; - bias-pull-down; - phandle = <0x2f9>; - }; - - pcfg-pull-up-drv-level-5 { - drive-strength = <0x05>; - phandle = <0x2f6>; - bias-pull-up; - }; - - gpio@fec20000 { - gpio-controller; - interrupts = <0x00 0x116 0x04>; - clocks = <0x02 0x7d 0x02 0x7e>; - compatible = "rockchip,gpio-bank"; - #interrupt-cells = <0x02>; - reg = <0x00 0xfec20000 0x00 0x100>; - phandle = <0xfe>; - #gpio-cells = <0x02>; - gpio-ranges = <0x197 0x00 0x20 0x20>; - interrupt-controller; - }; - - pcfg-pull-none-drv-level-15 { - drive-strength = <0x0f>; - bias-disable; - phandle = <0x459>; - }; - - eth1 { - - eth1-pins { - rockchip,pins = <0x03 0x06 0x01 0x198>; - phandle = <0x327>; - }; - }; - - i2c4 { - - i2c4m3-xfer { - rockchip,pins = <0x01 0x03 0x09 0x19d 0x01 0x02 0x09 0x19d>; - phandle = <0x364>; - }; - - i2c4m2-xfer { - rockchip,pins = <0x00 0x15 0x09 0x19d 0x00 0x14 0x09 0x19d>; - phandle = <0x363>; - }; - - i2c4m1-xfer { - rockchip,pins = <0x02 0x0d 0x09 0x19d 0x02 0x0c 0x09 0x19d>; - phandle = <0x14b>; - }; - - i2c4m0-xfer { - rockchip,pins = <0x03 0x06 0x09 0x19d 0x03 0x05 0x09 0x19d>; - phandle = <0x362>; - }; - - i2c4m4-xfer { - rockchip,pins = <0x01 0x17 0x09 0x19d 0x01 0x16 0x09 0x19d>; - phandle = <0x365>; - }; - }; - - emmc { - - emmc-data-strobe { - rockchip,pins = <0x02 0x02 0x01 0x198>; - phandle = <0x326>; - }; - - emmc-clk { - rockchip,pins = <0x02 0x01 0x01 0x199>; - phandle = <0x324>; - }; - - emmc-bus8 { - rockchip,pins = <0x02 0x18 0x01 0x199 0x02 0x19 0x01 0x199 0x02 0x1a 0x01 0x199 0x02 0x1b 0x01 0x199 0x02 0x1c 0x01 0x199 0x02 0x1d 0x01 0x199 0x02 0x1e 0x01 0x199 0x02 0x1f 0x01 0x199>; - phandle = <0x323>; - }; - - emmc-cmd { - rockchip,pins = <0x02 0x00 0x01 0x199>; - phandle = <0x325>; - }; - - emmc-rstnout { - rockchip,pins = <0x02 0x03 0x01 0x198>; - phandle = <0x322>; - }; - }; - - pcfg-pull-none-drv-level-8 { - drive-strength = <0x08>; - bias-disable; - phandle = <0x452>; - }; - - pwm15 { - - pwm15m0-pins { - rockchip,pins = <0x03 0x13 0x0b 0x198>; - phandle = <0x174>; - }; - - pwm15m3-pins { - rockchip,pins = <0x01 0x1f 0x0b 0x198>; - phandle = <0x3e4>; - }; - - pwm15m2-pins { - rockchip,pins = <0x01 0x16 0x0b 0x198>; - phandle = <0x3e3>; - }; - - pwm15m1-pins { - rockchip,pins = <0x04 0x0b 0x0b 0x198>; - phandle = <0x3e2>; - }; - }; - - pcie30x2 { - - pcie30x2m2-pins { - rockchip,pins = <0x03 0x1a 0x04 0x198 0x03 0x1c 0x04 0x198 0x03 0x1b 0x04 0x198>; - phandle = <0x3ac>; - }; - - pcie30x2m1-pins { - rockchip,pins = <0x04 0x06 0x04 0x198 0x04 0x08 0x04 0x198 0x04 0x07 0x04 0x198>; - phandle = <0x3ab>; - }; - - pcie30x2-button-rstn { - rockchip,pins = <0x03 0x11 0x04 0x198>; - phandle = <0x3ae>; - }; - - pcie30x2m0-pins { - rockchip,pins = <0x00 0x19 0x0c 0x198 0x00 0x1c 0x0c 0x198 0x00 0x1a 0x0c 0x198>; - phandle = <0x3aa>; - }; - - pcie30x2m3-pins { - rockchip,pins = <0x01 0x1f 0x04 0x198 0x01 0x0f 0x04 0x198 0x01 0x0e 0x04 0x198>; - phandle = <0x3ad>; - }; - }; - - can0 { - - can0m0-pins { - rockchip,pins = <0x00 0x10 0x0b 0x198 0x00 0x0f 0x0b 0x198>; - phandle = <0x145>; - }; - - can0m1-pins { - rockchip,pins = <0x04 0x1d 0x09 0x198 0x04 0x1c 0x09 0x198>; - phandle = <0x30d>; - }; - }; - - pcfg-output-high { - output-high; - phandle = <0x305>; - }; - - uart9 { - - uart9m0-rtsn { - rockchip,pins = <0x04 0x14 0x0a 0x198>; - phandle = <0x44e>; - }; - - uart9m2-ctsn { - rockchip,pins = <0x03 0x1b 0x0a 0x198>; - phandle = <0x44a>; - }; - - uart9m1-ctsn { - rockchip,pins = <0x04 0x01 0x0a 0x198>; - phandle = <0x447>; - }; - - uart9m2-xfer { - rockchip,pins = <0x03 0x1c 0x0a 0x19e 0x03 0x1d 0x0a 0x19e>; - phandle = <0x449>; - }; - - uart9m0-ctsn { - rockchip,pins = <0x04 0x15 0x0a 0x198>; - phandle = <0x44d>; - }; - - uart9m1-xfer { - rockchip,pins = <0x04 0x0d 0x0a 0x19e 0x04 0x0c 0x0a 0x19e>; - phandle = <0x168>; - }; - - uart9m0-xfer { - rockchip,pins = <0x02 0x14 0x0a 0x19e 0x02 0x12 0x0a 0x19e>; - phandle = <0x44c>; - }; - - uart9m2-rtsn { - rockchip,pins = <0x03 0x1a 0x0a 0x198>; - phandle = <0x44b>; - }; - - uart9m1-rtsn { - rockchip,pins = <0x04 0x00 0x0a 0x198>; - phandle = <0x448>; - }; - }; - - pcfg-pull-none-drv-level-2-smt { - drive-strength = <0x02>; - bias-disable; - input-schmitt-enable; - phandle = <0x301>; - }; - - pcfg-pull-up { - phandle = <0x19e>; - bias-pull-up; - }; - - spi3 { - - spi3m3-cs1 { - rockchip,pins = <0x03 0x15 0x08 0x19a>; - phandle = <0x40e>; - }; - - spi3m1-cs0 { - rockchip,pins = <0x04 0x10 0x08 0x19a>; - phandle = <0x15d>; - }; - - spi3m3-pins { - rockchip,pins = <0x03 0x18 0x08 0x19a 0x03 0x16 0x08 0x19a 0x03 0x17 0x08 0x19a>; - phandle = <0x40c>; - }; - - spi3m0-cs1 { - rockchip,pins = <0x04 0x13 0x08 0x19f>; - phandle = <0x411>; - }; - - spi3m2-cs0 { - rockchip,pins = <0x00 0x1c 0x08 0x19a>; - phandle = <0x40a>; - }; - - spi3m2-pins { - rockchip,pins = <0x00 0x1b 0x08 0x19a 0x00 0x18 0x08 0x19a 0x00 0x1a 0x08 0x19a>; - phandle = <0x409>; - }; - - spi3m1-cs1 { - rockchip,pins = <0x04 0x11 0x08 0x19a>; - phandle = <0x15e>; - }; - - spi3m1-pins { - rockchip,pins = <0x04 0x0f 0x08 0x19a 0x04 0x0d 0x08 0x19a 0x04 0x0e 0x08 0x19a>; - phandle = <0x15f>; - }; - - spi3m3-cs0 { - rockchip,pins = <0x03 0x14 0x08 0x19a>; - phandle = <0x40d>; - }; - - spi3m0-pins { - rockchip,pins = <0x04 0x16 0x08 0x19f 0x04 0x14 0x08 0x19f 0x04 0x15 0x08 0x19f>; - phandle = <0x40f>; - }; - - spi3m2-cs1 { - rockchip,pins = <0x00 0x1d 0x08 0x19a>; - phandle = <0x40b>; - }; - - spi3m0-cs0 { - rockchip,pins = <0x04 0x12 0x08 0x19f>; - phandle = <0x410>; - }; - }; - - pcfg-pull-down-drv-level-14 { - drive-strength = <0x0e>; - bias-pull-down; - phandle = <0x46a>; - }; - - bt656 { - - bt656-pins { - rockchip,pins = <0x04 0x08 0x02 0x1a0 0x04 0x00 0x02 0x1a0 0x04 0x01 0x02 0x1a0 0x04 0x02 0x02 0x1a0 0x04 0x03 0x02 0x1a0 0x04 0x04 0x02 0x1a0 0x04 0x05 0x02 0x1a0 0x04 0x06 0x02 0x1a0 0x04 0x07 0x02 0x1a0>; - phandle = <0x450>; - }; - }; - - pcfg-pull-down-drv-level-0 { - drive-strength = <0x00>; - bias-pull-down; - phandle = <0x2f7>; - }; - - pcfg-pull-up-drv-level-3 { - drive-strength = <0x03>; - phandle = <0x2f4>; - bias-pull-up; - }; - - i2s2 { - - i2s2m0-lrck { - rockchip,pins = <0x02 0x10 0x02 0x19d>; - phandle = <0x389>; - }; - - i2s2m1-mclk { - rockchip,pins = <0x03 0x0c 0x03 0x19d>; - phandle = <0x387>; - }; - - i2s2m0-mclk { - rockchip,pins = <0x02 0x0e 0x02 0x19d>; - phandle = <0x38a>; - }; - - i2s2m1-sdo { - rockchip,pins = <0x03 0x0b 0x03 0x198>; - phandle = <0x12b>; - }; - - i2s2m0-sdi { - rockchip,pins = <0x02 0x13 0x02 0x198>; - phandle = <0x38c>; - }; - - i2s2m1-idle { - rockchip,pins = <0x03 0x0e 0x00 0x198 0x03 0x0d 0x00 0x198>; - phandle = <0x12c>; - }; - - i2s2m1-sdi { - rockchip,pins = <0x03 0x0a 0x03 0x198>; - phandle = <0x12a>; - }; - - i2s2m0-idle { - rockchip,pins = <0x02 0x10 0x00 0x198 0x02 0x0f 0x00 0x198>; - phandle = <0x388>; - }; - - i2s2m1-sclk { - rockchip,pins = <0x03 0x0d 0x03 0x19d>; - phandle = <0x12e>; - }; - - i2s2m1-lrck { - rockchip,pins = <0x03 0x0e 0x03 0x19d>; - phandle = <0x12d>; - }; - - i2s2m0-sclk { - rockchip,pins = <0x02 0x0f 0x02 0x19d>; - phandle = <0x38b>; - }; - - i2s2m0-sdo { - rockchip,pins = <0x04 0x13 0x02 0x198>; - phandle = <0x38d>; - }; - }; - - pcfg-pull-none-drv-level-6-smt { - drive-strength = <0x06>; - bias-disable; - input-schmitt-enable; - phandle = <0x304>; - }; - - ddrphych3 { - - ddrphych3-pins { - rockchip,pins = <0x04 0x0c 0x07 0x198 0x04 0x0d 0x07 0x198 0x04 0x0e 0x07 0x198 0x04 0x0f 0x07 0x198>; - phandle = <0x31b>; - }; - }; - - pcfg-pull-none-drv-level-13 { - drive-strength = <0x0d>; - bias-disable; - phandle = <0x457>; - }; - - i2c2 { - - i2c2m2-xfer { - rockchip,pins = <0x02 0x03 0x09 0x19d 0x02 0x02 0x09 0x19d>; - phandle = <0x35a>; - }; - - i2c2m1-xfer { - rockchip,pins = <0x02 0x11 0x09 0x19d 0x02 0x10 0x09 0x19d>; - phandle = <0x35d>; - }; - - i2c2m0-xfer { - rockchip,pins = <0x00 0x0f 0x09 0x19d 0x00 0x10 0x09 0x19d>; - phandle = <0x149>; - }; - - i2c2m4-xfer { - rockchip,pins = <0x01 0x01 0x09 0x19d 0x01 0x00 0x09 0x19d>; - phandle = <0x35c>; - }; - - i2c2m3-xfer { - rockchip,pins = <0x01 0x15 0x09 0x19d 0x01 0x14 0x09 0x19d>; - phandle = <0x35b>; - }; - }; - - auddsm { - - auddsm-pins { - rockchip,pins = <0x03 0x01 0x04 0x198 0x03 0x02 0x04 0x198 0x03 0x03 0x04 0x198 0x03 0x04 0x04 0x198>; - phandle = <0x144>; - }; - }; - - pwm8 { - - pwm8m2-pins { - rockchip,pins = <0x03 0x18 0x0b 0x198>; - phandle = <0x3d5>; - }; - - pwm8m1-pins { - rockchip,pins = <0x04 0x18 0x0b 0x198>; - phandle = <0x3d4>; - }; - - pwm8m0-pins { - rockchip,pins = <0x03 0x07 0x0b 0x198>; - phandle = <0x16d>; - }; - }; - - pmic { - - pmic-pins { - rockchip,pins = <0x00 0x07 0x00 0x19e 0x00 0x02 0x01 0x198 0x00 0x03 0x01 0x198 0x00 0x11 0x01 0x198 0x00 0x12 0x01 0x198 0x00 0x13 0x01 0x198 0x00 0x1e 0x01 0x198>; - phandle = <0x156>; - }; - }; - - pcfg-pull-none-drv-level-6 { - drive-strength = <0x06>; - bias-disable; - phandle = <0x2f2>; - }; - - jtag { - - jtagm2-pins { - rockchip,pins = <0x00 0x0d 0x02 0x198 0x00 0x0e 0x02 0x198>; - phandle = <0x391>; - }; - - jtagm1-pins { - rockchip,pins = <0x04 0x18 0x05 0x198 0x04 0x19 0x05 0x198>; - phandle = <0x390>; - }; - - jtagm0-pins { - rockchip,pins = <0x04 0x1a 0x05 0x198 0x04 0x1b 0x05 0x198>; - phandle = <0x38f>; - }; - }; - - gpio@fd8a0000 { - gpio-controller; - interrupts = <0x00 0x115 0x04>; - clocks = <0x02 0x284 0x02 0x285>; - compatible = "rockchip,gpio-bank"; - #interrupt-cells = <0x02>; - reg = <0x00 0xfd8a0000 0x00 0x100>; - phandle = <0x7b>; - #gpio-cells = <0x02>; - gpio-ranges = <0x197 0x00 0x00 0x20>; - interrupt-controller; - }; - - gmac1 { - - gmac1-rgmii-clk { - rockchip,pins = <0x03 0x05 0x01 0x198 0x03 0x04 0x01 0x198>; - phandle = <0x111>; - }; - - gmac1-rx-bus2 { - rockchip,pins = <0x03 0x07 0x01 0x198 0x03 0x08 0x01 0x198 0x03 0x09 0x01 0x198>; - phandle = <0x110>; - }; - - gmac1-txer { - rockchip,pins = <0x03 0x0a 0x01 0x198>; - phandle = <0x332>; - }; - - gmac1-clkinout { - rockchip,pins = <0x03 0x0e 0x01 0x198>; - phandle = <0x32e>; - }; - - gmac1-ptp-ref-clk { - rockchip,pins = <0x03 0x0f 0x01 0x198>; - phandle = <0x331>; - }; - - gmac1-ppsclk { - rockchip,pins = <0x03 0x11 0x01 0x198>; - phandle = <0x32f>; - }; - - gmac1-ppstrig { - rockchip,pins = <0x03 0x10 0x01 0x198>; - phandle = <0x330>; - }; - - gmac1-rgmii-bus { - rockchip,pins = <0x03 0x02 0x01 0x198 0x03 0x03 0x01 0x198 0x03 0x00 0x01 0x19a 0x03 0x01 0x01 0x19a>; - phandle = <0x112>; - }; - - gmac1-tx-bus2 { - rockchip,pins = <0x03 0x0b 0x01 0x19a 0x03 0x0c 0x01 0x19a 0x03 0x0d 0x01 0x198>; - phandle = <0x10f>; - }; - - gmac1-miim { - rockchip,pins = <0x03 0x12 0x01 0x198 0x03 0x13 0x01 0x198>; - phandle = <0x10e>; - }; - }; - - pcfg-pull-none { - bias-disable; - phandle = <0x198>; - }; - - pwm13 { - - pwm13m2-pins { - rockchip,pins = <0x01 0x0f 0x0b 0x198>; - phandle = <0x3df>; - }; - - pwm13m1-pins { - rockchip,pins = <0x04 0x0e 0x0b 0x198>; - phandle = <0x3de>; - }; - - pwm13m0-pins { - rockchip,pins = <0x03 0x0e 0x0b 0x198>; - phandle = <0x172>; - }; - }; - - pcfg-output-high-pull-down { - output-high; - bias-pull-down; - phandle = <0x307>; - }; - - uart7 { - - uart7m1-ctsn { - rockchip,pins = <0x03 0x13 0x0a 0x198>; - phandle = <0x43b>; - }; - - uart7m2-xfer { - rockchip,pins = <0x01 0x0c 0x0a 0x19e 0x01 0x0d 0x0a 0x19e>; - phandle = <0x43d>; - }; - - uart7m0-ctsn { - rockchip,pins = <0x04 0x16 0x0a 0x198>; - phandle = <0x43f>; - }; - - uart7m1-xfer { - rockchip,pins = <0x03 0x11 0x0a 0x19e 0x03 0x10 0x0a 0x19e>; - phandle = <0x166>; - }; - - uart7m0-xfer { - rockchip,pins = <0x02 0x0c 0x0a 0x19e 0x02 0x0d 0x0a 0x19e>; - phandle = <0x43e>; - }; - - uart7m1-rtsn { - rockchip,pins = <0x03 0x12 0x0a 0x198>; - phandle = <0x43c>; - }; - - uart7m0-rtsn { - rockchip,pins = <0x04 0x12 0x0a 0x198>; - phandle = <0x440>; - }; - }; - - pcfg-pull-down-drv-level-9 { - drive-strength = <0x09>; - bias-pull-down; - phandle = <0x465>; - }; - - spi1 { - - spi1m1-cs1 { - rockchip,pins = <0x03 0x13 0x08 0x19a>; - phandle = <0x152>; - }; - - spi1m2-cs1 { - rockchip,pins = <0x01 0x1d 0x08 0x19a>; - phandle = <0x3fe>; - }; - - spi1m0-cs0 { - rockchip,pins = <0x02 0x13 0x08 0x19f>; - phandle = <0x400>; - }; - - spi1m2-pins { - rockchip,pins = <0x01 0x1a 0x08 0x19a 0x01 0x18 0x08 0x19a 0x01 0x19 0x08 0x19a>; - phandle = <0x3fc>; - }; - - spi1m1-pins { - rockchip,pins = <0x03 0x11 0x08 0x19a 0x03 0x10 0x08 0x19a 0x03 0x0f 0x08 0x19a>; - phandle = <0x153>; - }; - - spi1m1-cs0 { - rockchip,pins = <0x03 0x12 0x08 0x19a>; - phandle = <0x151>; - }; - - spi1m0-pins { - rockchip,pins = <0x02 0x10 0x08 0x19f 0x02 0x11 0x08 0x19f 0x02 0x12 0x08 0x19f>; - phandle = <0x3ff>; - }; - - spi1m0-cs1 { - rockchip,pins = <0x02 0x14 0x08 0x19f>; - phandle = <0x401>; - }; - - spi1m2-cs0 { - rockchip,pins = <0x01 0x1b 0x08 0x19a>; - phandle = <0x3fd>; - }; - }; - - pcfg-pull-up-drv-level-14 { - drive-strength = <0x0e>; - phandle = <0x461>; - bias-pull-up; - }; - - pcfg-output-low-pull-down { - bias-pull-down; - phandle = <0x30b>; - output-low; - }; - - pcfg-pull-down-drv-level-12 { - drive-strength = <0x0c>; - bias-pull-down; - phandle = <0x468>; - }; - - pcfg-pull-up-drv-level-1 { - drive-strength = <0x01>; - phandle = <0x19f>; - bias-pull-up; - }; - - pcfg-pull-none-smt { - bias-disable; - input-schmitt-enable; - phandle = <0x19d>; - }; - - sdmmc { - - sdmmc-det { - rockchip,pins = <0x00 0x04 0x01 0x19e>; - phandle = <0x116>; - }; - - sdmmc-pwren { - rockchip,pins = <0x00 0x05 0x02 0x198>; - phandle = <0x3ef>; - }; - - sdmmc-bus4 { - rockchip,pins = <0x04 0x18 0x01 0x199 0x04 0x19 0x01 0x199 0x04 0x1a 0x01 0x199 0x04 0x1b 0x01 0x199>; - phandle = <0x117>; - }; - - sdmmc-cmd { - rockchip,pins = <0x04 0x1c 0x01 0x199>; - phandle = <0x115>; - }; - - sdmmc-clk { - rockchip,pins = <0x04 0x1d 0x01 0x199>; - phandle = <0x114>; - }; - }; - - i2s0 { - - i2s0-sclk { - rockchip,pins = <0x01 0x13 0x01 0x19d>; - phandle = <0x11c>; - }; - - i2s0-sdo3 { - rockchip,pins = <0x01 0x1a 0x01 0x198>; - phandle = <0x37a>; - }; - - i2s0-lrck { - rockchip,pins = <0x01 0x15 0x01 0x19d>; - phandle = <0x11b>; - }; - - i2s0-sdo1 { - rockchip,pins = <0x01 0x18 0x01 0x198>; - phandle = <0x378>; - }; - - i2s0-sdi3 { - rockchip,pins = <0x01 0x19 0x02 0x198>; - phandle = <0x377>; - }; - - i2s0-mclk { - rockchip,pins = <0x01 0x12 0x01 0x19d>; - phandle = <0x17a>; - }; - - i2s0-sdi1 { - rockchip,pins = <0x01 0x1b 0x02 0x198>; - phandle = <0x375>; - }; - - i2s0-sdo2 { - rockchip,pins = <0x01 0x19 0x01 0x198>; - phandle = <0x379>; - }; - - i2s0-idle { - rockchip,pins = <0x01 0x15 0x00 0x198 0x01 0x13 0x00 0x198>; - phandle = <0x11f>; - }; - - i2s0-sdo0 { - rockchip,pins = <0x01 0x17 0x01 0x198>; - phandle = <0x11e>; - }; - - i2s0-sdi2 { - rockchip,pins = <0x01 0x1a 0x02 0x198>; - phandle = <0x376>; - }; - - i2s0-sdi0 { - rockchip,pins = <0x01 0x1c 0x02 0x198>; - phandle = <0x11d>; - }; - }; - - ddrphych1 { - - ddrphych1-pins { - rockchip,pins = <0x04 0x04 0x07 0x198 0x04 0x05 0x07 0x198 0x04 0x06 0x07 0x198 0x04 0x07 0x07 0x198>; - phandle = <0x319>; - }; - }; - - pcfg-pull-none-drv-level-11 { - drive-strength = <0x0b>; - bias-disable; - phandle = <0x455>; - }; - - i2c0 { - - i2c0m2-xfer { - rockchip,pins = <0x00 0x19 0x03 0x19d 0x00 0x1a 0x03 0x19d>; - phandle = <0x77>; - }; - - i2c0m1-xfer { - rockchip,pins = <0x04 0x15 0x09 0x19d 0x04 0x16 0x09 0x19d>; - phandle = <0x355>; - }; - - i2c0m0-xfer { - rockchip,pins = <0x00 0x0b 0x02 0x19d 0x00 0x06 0x02 0x19d>; - phandle = <0x354>; - }; - }; - - pwm6 { - - pwm6m2-pins { - rockchip,pins = <0x04 0x15 0x0b 0x198>; - phandle = <0x3d0>; - }; - - pwm6m1-pins { - rockchip,pins = <0x04 0x11 0x0b 0x198>; - phandle = <0x3cf>; - }; - - pwm6m0-pins { - rockchip,pins = <0x00 0x17 0x0b 0x198>; - phandle = <0x16b>; - }; - }; - - hym8563 { - - hym8563-int { - rockchip,pins = <0x00 0x08 0x00 0x198>; - phandle = <0x7a>; - }; - }; - - pcfg-pull-none-drv-level-4 { - drive-strength = <0x04>; - bias-disable; - phandle = <0x2f0>; - }; - - pcfg-output-high-pull-up { - output-high; - phandle = <0x306>; - bias-pull-up; - }; - - pwm11 { - - pwm11m3-pins { - rockchip,pins = <0x03 0x1d 0x0b 0x198>; - phandle = <0x3dc>; - }; - - pwm11m2-pins { - rockchip,pins = <0x01 0x14 0x0b 0x198>; - phandle = <0x3db>; - }; - - pwm11m1-pins { - rockchip,pins = <0x04 0x0c 0x0b 0x198>; - phandle = <0x3da>; - }; - - pwm11m0-pins { - rockchip,pins = <0x03 0x01 0x0b 0x198>; - phandle = <0x170>; - }; - }; - - bt1120 { - - bt1120-pins { - rockchip,pins = <0x04 0x08 0x02 0x198 0x04 0x00 0x02 0x198 0x04 0x01 0x02 0x198 0x04 0x02 0x02 0x198 0x04 0x03 0x02 0x198 0x04 0x04 0x02 0x198 0x04 0x05 0x02 0x198 0x04 0x06 0x02 0x198 0x04 0x07 0x02 0x198 0x04 0x0a 0x02 0x198 0x04 0x0b 0x02 0x198 0x04 0x0c 0x02 0x198 0x04 0x0d 0x02 0x198 0x04 0x0e 0x02 0x198 0x04 0x0f 0x02 0x198 0x04 0x10 0x02 0x198 0x04 0x11 0x02 0x198>; - phandle = <0x71>; - }; - }; - - pcfg-output-low-pull-up { - phandle = <0x30a>; - bias-pull-up; - output-low; - }; - - uart5 { - - uart5m1-ctsn { - rockchip,pins = <0x02 0x02 0x0a 0x198>; - phandle = <0x433>; - }; - - uart5m2-xfer { - rockchip,pins = <0x02 0x1c 0x0a 0x19e 0x02 0x1d 0x0a 0x19e>; - phandle = <0x435>; - }; - - uart5m0-ctsn { - rockchip,pins = <0x04 0x1a 0x0a 0x198>; - phandle = <0x431>; - }; - - uart5m1-xfer { - rockchip,pins = <0x03 0x15 0x0a 0x19e 0x03 0x14 0x0a 0x19e>; - phandle = <0x164>; - }; - - uart5m0-xfer { - rockchip,pins = <0x04 0x1c 0x0a 0x19e 0x04 0x1d 0x0a 0x19e>; - phandle = <0x430>; - }; - - uart5m1-rtsn { - rockchip,pins = <0x02 0x03 0x0a 0x198>; - phandle = <0x434>; - }; - - uart5m0-rtsn { - rockchip,pins = <0x04 0x1b 0x0a 0x198>; - phandle = <0x432>; - }; - }; - - sdio { - - sdiom1-pins { - rockchip,pins = <0x03 0x05 0x02 0x198 0x03 0x04 0x02 0x19e 0x03 0x00 0x02 0x19e 0x03 0x01 0x02 0x19e 0x03 0x02 0x02 0x19e 0x03 0x03 0x02 0x19e>; - phandle = <0x119>; - }; - - sdiom0-pins { - rockchip,pins = <0x02 0x0b 0x02 0x198 0x02 0x0a 0x02 0x19e 0x02 0x06 0x02 0x19e 0x02 0x07 0x02 0x19e 0x02 0x08 0x02 0x19e 0x02 0x09 0x02 0x19e>; - phandle = <0x3ee>; - }; - }; - - spdif1 { - - spdif1m0-tx { - rockchip,pins = <0x01 0x0f 0x03 0x198>; - phandle = <0x143>; - }; - - spdif1m2-tx { - rockchip,pins = <0x04 0x11 0x03 0x198>; - phandle = <0x3f2>; - }; - - spdif1m1-tx { - rockchip,pins = <0x04 0x09 0x02 0x198>; - phandle = <0x3f1>; - }; - }; - - pcfg-pull-down-drv-level-7 { - drive-strength = <0x07>; - bias-pull-down; - phandle = <0x463>; - }; - - gpio@fec30000 { - gpio-controller; - interrupts = <0x00 0x117 0x04>; - clocks = <0x02 0x7f 0x02 0x80>; - compatible = "rockchip,gpio-bank"; - #interrupt-cells = <0x02>; - reg = <0x00 0xfec30000 0x00 0x100>; - phandle = <0x79>; - #gpio-cells = <0x02>; - gpio-ranges = <0x197 0x00 0x40 0x20>; - interrupt-controller; - }; - - pcfg-pull-up-drv-level-12 { - drive-strength = <0x0c>; - phandle = <0x45f>; - bias-pull-up; - }; - - pcfg-pull-down-drv-level-10 { - drive-strength = <0x0a>; - bias-pull-down; - phandle = <0x466>; - }; - - dp1 { - - dp1m1-pins { - rockchip,pins = <0x00 0x15 0x0a 0x198>; - phandle = <0x320>; - }; - - dp1m0-pins { - rockchip,pins = <0x03 0x1d 0x05 0x198>; - phandle = <0x31f>; - }; - - dp1m2-pins { - rockchip,pins = <0x01 0x01 0x05 0x198>; - phandle = <0x321>; - }; - }; - - vop { - - vop-pins { - rockchip,pins = <0x01 0x02 0x01 0x198>; - phandle = <0x44f>; - }; - }; - - pwm4 { - - pwm4m1-pins { - rockchip,pins = <0x04 0x13 0x0b 0x198>; - phandle = <0x3cc>; - }; - - pwm4m0-pins { - rockchip,pins = <0x00 0x15 0x0b 0x198>; - phandle = <0x169>; - }; - }; - - pcfg-pull-none-drv-level-2 { - drive-strength = <0x02>; - bias-disable; - phandle = <0x1a0>; - }; - - pcfg-pull-none-drv-level-3-smt { - drive-strength = <0x03>; - bias-disable; - input-schmitt-enable; - phandle = <0x302>; - }; - - uart3 { - - uart3m2-xfer { - rockchip,pins = <0x04 0x06 0x0a 0x19e 0x04 0x05 0x0a 0x19e>; - phandle = <0x429>; - }; - - uart3m1-xfer { - rockchip,pins = <0x03 0x0e 0x0a 0x19e 0x03 0x0d 0x0a 0x19e>; - phandle = <0x162>; - }; - - uart3-ctsn { - rockchip,pins = <0x01 0x13 0x0a 0x198>; - phandle = <0x42a>; - }; - - uart3m0-xfer { - rockchip,pins = <0x01 0x10 0x0a 0x19e 0x01 0x11 0x0a 0x19e>; - phandle = <0x428>; - }; - - uart3-rtsn { - rockchip,pins = <0x01 0x12 0x0a 0x198>; - phandle = <0x42b>; - }; - }; - - pcfg-pull-down-drv-level-5 { - drive-strength = <0x05>; - bias-pull-down; - phandle = <0x2fc>; - }; - - pcfg-pull-up-drv-level-8 { - drive-strength = <0x08>; - phandle = <0x45b>; - bias-pull-up; - }; - - pcfg-pull-up-drv-level-10 { - drive-strength = <0x0a>; - phandle = <0x45d>; - bias-pull-up; - }; - - pcfg-output-low { - phandle = <0x309>; - output-low; - }; - - i2c7 { - - i2c7m3-xfer { - rockchip,pins = <0x04 0x0a 0x09 0x19d 0x04 0x0b 0x09 0x19d>; - phandle = <0x36f>; - }; - - i2c7m2-xfer { - rockchip,pins = <0x03 0x1a 0x09 0x19d 0x03 0x1b 0x09 0x19d>; - phandle = <0x36e>; - }; - - i2c7m1-xfer { - rockchip,pins = <0x04 0x13 0x09 0x19d 0x04 0x14 0x09 0x19d>; - phandle = <0x370>; - }; - - i2c7m0-xfer { - rockchip,pins = <0x01 0x18 0x09 0x19d 0x01 0x19 0x09 0x19d>; - phandle = <0x185>; - }; - }; - - pwm2 { - - pwm2m2-pins { - rockchip,pins = <0x04 0x12 0x0b 0x198>; - phandle = <0x3c8>; - }; - - pwm2m1-pins { - rockchip,pins = <0x03 0x09 0x0b 0x198>; - phandle = <0x3c7>; - }; - - pwm2m0-pins { - rockchip,pins = <0x00 0x14 0x03 0x198>; - phandle = <0x80>; - }; - }; - - pcfg-pull-none-drv-level-0 { - drive-strength = <0x00>; - bias-disable; - phandle = <0x2ed>; - }; - - sata1 { - - sata1m1-pins { - rockchip,pins = <0x01 0x01 0x06 0x198>; - phandle = <0x3eb>; - }; - - sata1m0-pins { - rockchip,pins = <0x04 0x0d 0x06 0x198>; - phandle = <0x3ea>; - }; - }; - - pmu { - - pmu-pins { - rockchip,pins = <0x00 0x05 0x03 0x198>; - phandle = <0x3c2>; - }; - }; - - hdmirx { - - hdmirx-det { - rockchip,pins = <0x01 0x1d 0x00 0x198>; - phandle = <0x1b4>; - }; - }; - - uart1 { - - uart1m0-ctsn { - rockchip,pins = <0x02 0x11 0x0a 0x198>; - phandle = <0x423>; - }; - - uart1m1-xfer { - rockchip,pins = <0x01 0x0f 0x0a 0x19e 0x01 0x0e 0x0a 0x19e>; - phandle = <0x160>; - }; - - uart1m0-xfer { - rockchip,pins = <0x02 0x0e 0x0a 0x19e 0x02 0x0f 0x0a 0x19e>; - phandle = <0x422>; - }; - - uart1m2-rtsn { - rockchip,pins = <0x00 0x17 0x0a 0x198>; - phandle = <0x421>; - }; - - uart1m1-rtsn { - rockchip,pins = <0x01 0x1e 0x0a 0x198>; - phandle = <0x41e>; - }; - - uart1m0-rtsn { - rockchip,pins = <0x02 0x10 0x0a 0x198>; - phandle = <0x424>; - }; - - uart1m2-ctsn { - rockchip,pins = <0x00 0x18 0x0a 0x198>; - phandle = <0x420>; - }; - - uart1m1-ctsn { - rockchip,pins = <0x01 0x1f 0x0a 0x198>; - phandle = <0x41d>; - }; - - uart1m2-xfer { - rockchip,pins = <0x00 0x1a 0x0a 0x19e 0x00 0x19 0x0a 0x19e>; - phandle = <0x41f>; - }; - }; - - hdmi { - - hdmim1-rx-cec { - rockchip,pins = <0x03 0x19 0x05 0x198>; - phandle = <0x338>; - }; - - hdmim0-rx-scl { - rockchip,pins = <0x00 0x1a 0x0b 0x198>; - phandle = <0x336>; - }; - - hdmim0-rx-sda { - rockchip,pins = <0x00 0x19 0x0b 0x198>; - phandle = <0x337>; - }; - - hdmim0-tx0-cec { - rockchip,pins = <0x04 0x11 0x05 0x198>; - phandle = <0xf9>; - }; - - hdmim2-rx-cec { - rockchip,pins = <0x01 0x0f 0x05 0x198>; - phandle = <0x342>; - }; - - hdmim1-rx-scl { - rockchip,pins = <0x03 0x1a 0x05 0x19d>; - phandle = <0x33a>; - }; - - hdmim1-rx-sda { - rockchip,pins = <0x03 0x1b 0x05 0x19d>; - phandle = <0x33b>; - }; - - hdmim0-tx0-scl { - rockchip,pins = <0x04 0x0f 0x05 0x19b>; - phandle = <0xfb>; - }; - - hdmim0-tx0-sda { - rockchip,pins = <0x04 0x10 0x05 0x19c>; - phandle = <0xfc>; - }; - - hdmim2-rx-scl { - rockchip,pins = <0x01 0x1e 0x05 0x198>; - phandle = <0x344>; - }; - - hdmim2-rx-sda { - rockchip,pins = <0x01 0x1f 0x05 0x198>; - phandle = <0x345>; - }; - - hdmim0-tx0-hpd { - rockchip,pins = <0x01 0x05 0x05 0x198>; - phandle = <0xfa>; - }; - - hdmim2-rx-hpdin { - rockchip,pins = <0x01 0x0e 0x05 0x198>; - phandle = <0x343>; - }; - - hdmi-debug6 { - rockchip,pins = <0x01 0x00 0x07 0x198>; - phandle = <0x350>; - }; - - hdmim2-tx0-scl { - rockchip,pins = <0x03 0x17 0x05 0x19b>; - phandle = <0x346>; - }; - - hdmim2-tx0-sda { - rockchip,pins = <0x03 0x18 0x05 0x19c>; - phandle = <0x347>; - }; - - hdmi-debug4 { - rockchip,pins = <0x01 0x0b 0x07 0x198>; - phandle = <0x34e>; - }; - - hdmim0-tx1-cec { - rockchip,pins = <0x02 0x14 0x04 0x198>; - phandle = <0x351>; - }; - - hdmim0-tx1-scl { - rockchip,pins = <0x02 0x0d 0x04 0x198>; - phandle = <0x352>; - }; - - hdmim0-tx1-sda { - rockchip,pins = <0x02 0x0c 0x04 0x198>; - phandle = <0x353>; - }; - - hdmi-debug2 { - rockchip,pins = <0x01 0x09 0x07 0x198>; - phandle = <0x34c>; - }; - - hdmim0-tx1-hpd { - rockchip,pins = <0x01 0x06 0x05 0x198>; - phandle = <0x1a9>; - }; - - hdmim1-rx { - rockchip,pins = <0x03 0x19 0x05 0x198 0x03 0x1a 0x05 0x19d 0x03 0x1b 0x05 0x19d 0x03 0x1c 0x05 0x198>; - phandle = <0x1b3>; - }; - - hdmim2-tx1-cec { - rockchip,pins = <0x03 0x14 0x05 0x198>; - phandle = <0x1a8>; - }; - - hdmi-debug0 { - rockchip,pins = <0x01 0x07 0x07 0x198>; - phandle = <0x34a>; - }; - - hdmim2-tx1-scl { - rockchip,pins = <0x01 0x04 0x05 0x19b>; - phandle = <0x348>; - }; - - hdmim2-tx1-sda { - rockchip,pins = <0x01 0x03 0x05 0x19c>; - phandle = <0x349>; - }; - - hdmim1-tx0-cec { - rockchip,pins = <0x00 0x19 0x0d 0x198>; - phandle = <0x33c>; - }; - - hdmim1-tx0-scl { - rockchip,pins = <0x00 0x1d 0x0b 0x19b>; - phandle = <0x33e>; - }; - - hdmim1-tx0-sda { - rockchip,pins = <0x00 0x1c 0x0b 0x19c>; - phandle = <0x33f>; - }; - - hdmim1-tx0-hpd { - rockchip,pins = <0x03 0x1c 0x03 0x198>; - phandle = <0x33d>; - }; - - hdmim0-rx-hpdin { - rockchip,pins = <0x04 0x0e 0x05 0x198>; - phandle = <0x335>; - }; - - hdmi-debug5 { - rockchip,pins = <0x01 0x0c 0x07 0x198>; - phandle = <0x34f>; - }; - - hdmi-debug3 { - rockchip,pins = <0x01 0x0a 0x07 0x198>; - phandle = <0x34d>; - }; - - hdmim1-tx1-cec { - rockchip,pins = <0x00 0x1a 0x0d 0x198>; - phandle = <0x340>; - }; - - hdmi-debug1 { - rockchip,pins = <0x01 0x08 0x07 0x198>; - phandle = <0x34b>; - }; - - hdmim1-tx1-scl { - rockchip,pins = <0x03 0x16 0x05 0x19b>; - phandle = <0x1aa>; - }; - - hdmim1-tx1-sda { - rockchip,pins = <0x03 0x15 0x05 0x19c>; - phandle = <0x1ab>; - }; - - hdmim1-tx1-hpd { - rockchip,pins = <0x03 0x0f 0x05 0x198>; - phandle = <0x341>; - }; - - hdmim1-rx-hpdin { - rockchip,pins = <0x03 0x1c 0x05 0x198>; - phandle = <0x339>; - }; - - hdmim0-rx-cec { - rockchip,pins = <0x04 0x0d 0x05 0x198>; - phandle = <0x334>; - }; - }; - - pcfg-pull-down-drv-level-3 { - drive-strength = <0x03>; - bias-pull-down; - phandle = <0x2fa>; - }; - - pcfg-pull-up-drv-level-6 { - drive-strength = <0x06>; - phandle = <0x19a>; - bias-pull-up; - }; - - i2c5 { - - i2c5m3-xfer { - rockchip,pins = <0x01 0x0e 0x09 0x19d 0x01 0x0f 0x09 0x19d>; - phandle = <0x368>; - }; - - i2c5m2-xfer { - rockchip,pins = <0x04 0x06 0x09 0x19d 0x04 0x07 0x09 0x19d>; - phandle = <0x367>; - }; - - i2c5m1-xfer { - rockchip,pins = <0x04 0x0e 0x09 0x19d 0x04 0x0f 0x09 0x19d>; - phandle = <0x366>; - }; - - i2c5m0-xfer { - rockchip,pins = <0x03 0x17 0x09 0x19d 0x03 0x18 0x09 0x19d>; - phandle = <0x14d>; - }; - - i2c5m4-xfer { - rockchip,pins = <0x02 0x0e 0x09 0x19d 0x02 0x0f 0x09 0x19d>; - phandle = <0x369>; - }; - }; - - pcfg-pull-none-drv-level-9 { - drive-strength = <0x09>; - bias-disable; - phandle = <0x453>; - }; - - pdm0 { - - pdm0m1-sdi3 { - rockchip,pins = <0x00 0x1e 0x02 0x198>; - phandle = <0x3ba>; - }; - - pdm0m1-clk { - rockchip,pins = <0x00 0x10 0x02 0x198>; - phandle = <0x3b4>; - }; - - pdm0m1-sdi1 { - rockchip,pins = <0x00 0x18 0x02 0x198>; - phandle = <0x3b8>; - }; - - pdm0m0-sdi3 { - rockchip,pins = <0x01 0x1b 0x03 0x198>; - phandle = <0x137>; - }; - - pdm0m0-sdi1 { - rockchip,pins = <0x01 0x19 0x03 0x198>; - phandle = <0x135>; - }; - - pdm0m1-clk1 { - rockchip,pins = <0x00 0x14 0x02 0x198>; - phandle = <0x3b5>; - }; - - pdm0m1-idle { - rockchip,pins = <0x00 0x10 0x00 0x198 0x00 0x14 0x00 0x198>; - phandle = <0x3b6>; - }; - - pdm0m0-clk1 { - rockchip,pins = <0x01 0x14 0x03 0x198>; - phandle = <0x13a>; - }; - - pdm0m1-sdi2 { - rockchip,pins = <0x00 0x1c 0x02 0x198>; - phandle = <0x3b9>; - }; - - pdm0m0-idle { - rockchip,pins = <0x01 0x16 0x00 0x198 0x01 0x14 0x00 0x198>; - phandle = <0x138>; - }; - - pdm0m1-sdi0 { - rockchip,pins = <0x00 0x17 0x02 0x198>; - phandle = <0x3b7>; - }; - - pdm0m0-sdi2 { - rockchip,pins = <0x01 0x1a 0x03 0x198>; - phandle = <0x136>; - }; - - pdm0m0-sdi0 { - rockchip,pins = <0x01 0x1d 0x03 0x198>; - phandle = <0x134>; - }; - - pdm0m0-clk { - rockchip,pins = <0x01 0x16 0x03 0x198>; - phandle = <0x139>; - }; - }; - - pcfg-output-high-pull-none { - bias-disable; - output-high; - phandle = <0x308>; - }; - - pwm0 { - - pwm0m1-pins { - rockchip,pins = <0x01 0x1a 0x0b 0x198>; - phandle = <0x3c3>; - }; - - pwm0m0-pins { - rockchip,pins = <0x00 0x0f 0x03 0x198>; - phandle = <0x7e>; - }; - - pwm0m2-pins { - rockchip,pins = <0x01 0x02 0x0b 0x198>; - phandle = <0x3c4>; - }; - }; - - cif { - - cif-dvp-clk { - rockchip,pins = <0x04 0x08 0x01 0x198 0x04 0x0a 0x01 0x198 0x04 0x0b 0x01 0x198>; - phandle = <0x311>; - }; - - cif-clk { - rockchip,pins = <0x04 0x0c 0x01 0x198>; - phandle = <0x310>; - }; - - cif-dvp-bus8 { - rockchip,pins = <0x04 0x00 0x01 0x198 0x04 0x01 0x01 0x198 0x04 0x02 0x01 0x198 0x04 0x03 0x01 0x198 0x04 0x04 0x01 0x198 0x04 0x05 0x01 0x198 0x04 0x06 0x01 0x198 0x04 0x07 0x01 0x198>; - phandle = <0x313>; - }; - - cif-dvp-bus16 { - rockchip,pins = <0x03 0x14 0x01 0x198 0x03 0x15 0x01 0x198 0x03 0x16 0x01 0x198 0x03 0x17 0x01 0x198 0x03 0x18 0x01 0x198 0x03 0x19 0x01 0x198 0x03 0x1a 0x01 0x198 0x03 0x1b 0x01 0x198>; - phandle = <0x312>; - }; - }; - - can1 { - - can1m1-pins { - rockchip,pins = <0x04 0x0a 0x0c 0x198 0x04 0x0b 0x0c 0x198>; - phandle = <0x146>; - }; - - can1m0-pins { - rockchip,pins = <0x03 0x0d 0x09 0x198 0x03 0x0e 0x09 0x198>; - phandle = <0x30e>; - }; - }; - - pcfg-output-low-pull-none { - bias-disable; - phandle = <0x30c>; - output-low; - }; - - gpio@fec40000 { - gpio-controller; - interrupts = <0x00 0x118 0x04>; - clocks = <0x02 0x81 0x02 0x82>; - compatible = "rockchip,gpio-bank"; - #interrupt-cells = <0x02>; - reg = <0x00 0xfec40000 0x00 0x100>; - phandle = <0x181>; - #gpio-cells = <0x02>; - gpio-ranges = <0x197 0x00 0x60 0x20>; - interrupt-controller; - }; - - spi4 { - - spi4m0-cs0 { - rockchip,pins = <0x01 0x13 0x08 0x19a>; - phandle = <0x187>; - }; - - spi4m1-cs0 { - rockchip,pins = <0x03 0x03 0x08 0x19a>; - phandle = <0x413>; - }; - - spi4m2-pins { - rockchip,pins = <0x01 0x02 0x08 0x19a 0x01 0x00 0x08 0x19a 0x01 0x01 0x08 0x19a>; - phandle = <0x415>; - }; - - spi4m0-cs1 { - rockchip,pins = <0x01 0x14 0x08 0x19a>; - phandle = <0x188>; - }; - - spi4m1-pins { - rockchip,pins = <0x03 0x02 0x08 0x19a 0x03 0x00 0x08 0x19a 0x03 0x01 0x08 0x19a>; - phandle = <0x412>; - }; - - spi4m2-cs0 { - rockchip,pins = <0x01 0x03 0x08 0x19a>; - phandle = <0x416>; - }; - - spi4m0-pins { - rockchip,pins = <0x01 0x12 0x08 0x19a 0x01 0x10 0x08 0x19a 0x01 0x11 0x08 0x19a>; - phandle = <0x189>; - }; - - spi4m1-cs1 { - rockchip,pins = <0x03 0x04 0x08 0x19a>; - phandle = <0x414>; - }; - }; - - pcfg-pull-down-drv-level-15 { - drive-strength = <0x0f>; - bias-pull-down; - phandle = <0x46b>; - }; - - pcfg-pull-up-smt { - input-schmitt-enable; - phandle = <0x2fe>; - bias-pull-up; - }; - - pcfg-pull-down-drv-level-1 { - drive-strength = <0x01>; - bias-pull-down; - phandle = <0x2f8>; - }; - - pcfg-pull-up-drv-level-4 { - drive-strength = <0x04>; - phandle = <0x2f5>; - bias-pull-up; - }; - - wireless-wlan { - - wifi-host-wake-irq { - rockchip,pins = <0x00 0x0a 0x00 0x198>; - phandle = <0x1ea>; - }; - }; - - wdt-pc9202 { - - wdt-en-base { - rockchip,pins = <0x00 0x14 0x00 0x198>; - phandle = <0x14c>; - }; - }; - - pcfg-pull-none-drv-level-0-smt { - drive-strength = <0x00>; - bias-disable; - input-schmitt-enable; - phandle = <0x300>; - }; - - i2s3 { - - i2s3-sdi { - rockchip,pins = <0x03 0x04 0x03 0x198>; - phandle = <0x12f>; - }; - - i2s3-idle { - rockchip,pins = <0x03 0x02 0x00 0x198 0x03 0x01 0x00 0x198>; - phandle = <0x131>; - }; - - i2s3-sclk { - rockchip,pins = <0x03 0x01 0x03 0x19d>; - phandle = <0x133>; - }; - - i2s3-lrck { - rockchip,pins = <0x03 0x02 0x03 0x19d>; - phandle = <0x132>; - }; - - i2s3-sdo { - rockchip,pins = <0x03 0x03 0x03 0x198>; - phandle = <0x130>; - }; - - i2s3-mclk { - rockchip,pins = <0x03 0x00 0x03 0x19d>; - phandle = <0x38e>; - }; - }; - - pcfg-pull-none-drv-level-14 { - drive-strength = <0x0e>; - bias-disable; - phandle = <0x458>; - }; - }; - - rkcif-mipi-lvds4-sditf-vir1 { - compatible = "rockchip,rkcif-sditf"; - status = "disabled"; - rockchip,cif = <0x1a1>; - phandle = <0x473>; - }; - - bt-sco { - #sound-dai-cells = <0x01>; - compatible = "delta,dfbmcs320"; - status = "disabled"; - phandle = <0x1d2>; - }; - - phy@fed80000 { - svid = <0xff01>; - orientation-switch; - sbu2-dc-gpios = <0x10d 0x07 0x00>; - clock-names = "refclk\0immortal\0pclk\0utmi"; - resets = <0x02 0x28 0x02 0x29 0x02 0x2a 0x02 0x2b 0x02 0x482>; - clocks = <0x02 0x2b6 0x02 0x27f 0x02 0x269 0x18d>; - compatible = "rockchip,rk3588-usbdp-phy"; - status = "okay"; - reg = <0x00 0xfed80000 0x00 0x10000>; - phandle = <0x2ea>; - rockchip,usb-grf = <0x74>; - reset-names = "init\0cmn\0lane\0pcs_apb\0pma_apb"; - rockchip,u2phy-grf = <0x18b>; - sbu1-dc-gpios = <0x10d 0x06 0x00>; - rockchip,usbdpphy-grf = <0x18c>; - rockchip,vo-grf = <0xf5>; - - dp-port { - #phy-cells = <0x00>; - status = "okay"; - phandle = <0xf6>; - }; - - port { - #address-cells = <0x01>; - #size-cells = <0x00>; - - endpoint@1 { - remote-endpoint = <0x18f>; - reg = <0x01>; - phandle = <0x17f>; - }; - - endpoint@0 { - remote-endpoint = <0x18e>; - reg = <0x00>; - phandle = <0x17e>; - }; - }; - - u3-port { - #phy-cells = <0x00>; - status = "okay"; - phandle = <0x67>; - }; - }; - - interrupt-controller@fe600000 { - #address-cells = <0x02>; - interrupts = <0x01 0x09 0x04>; - #size-cells = <0x02>; - compatible = "arm,gic-v3"; - ranges; - #interrupt-cells = <0x03>; - reg = <0x00 0xfe600000 0x00 0x10000 0x00 0xfe680000 0x00 0x100000>; - phandle = <0x01>; - interrupt-controller; - - msi-controller@fe640000 { - msi-controller; - compatible = "arm,gic-v3-its"; - reg = <0x00 0xfe640000 0x00 0x20000>; - phandle = <0x106>; - #msi-cells = <0x01>; - }; - - msi-controller@fe660000 { - msi-controller; - compatible = "arm,gic-v3-its"; - reg = <0x00 0xfe660000 0x00 0x20000>; - phandle = <0x1b6>; - #msi-cells = <0x01>; - }; - }; - - ethernet@fe1c0000 { - power-domains = <0x60 0x21>; - pinctrl-names = "default"; - phy-mode = "rgmii-rxid"; - snps,mixed-burst; - snps,mtl-rx-config = <0x10b>; - snps,reset-active-low; - pinctrl-0 = <0x10e 0x10f 0x110 0x111 0x112>; - clock-names = "stmmaceth\0clk_mac_ref\0pclk_mac\0aclk_mac\0ptp_ref"; - snps,mtl-tx-config = <0x10c>; - local-mac-address = [de 2f 1a d4 a9 85]; - resets = <0x02 0x20b>; - interrupts = <0x00 0xea 0x04 0x00 0xe9 0x04>; - clocks = <0x02 0x144 0x02 0x145 0x02 0x168 0x02 0x16d 0x02 0x143>; - clock_in_out = "output"; - snps,tso; - compatible = "rockchip,rk3588-gmac\0snps,dwmac-4.20a"; - status = "okay"; - rockchip,grf = <0xc8>; - interrupt-names = "macirq\0eth_wake_irq"; - snps,reset-gpio = <0x10d 0x08 0x01>; - reg = <0x00 0xfe1c0000 0x00 0x10000>; - rockchip,php_grf = <0x76>; - phandle = <0x109>; - phy-handle = <0x113>; - reset-names = "stmmaceth"; - tx_delay = <0x40>; - snps,axi-config = <0x10a>; - snps,reset-delays-us = <0x00 0x4e20 0x186a0>; - - mdio { - #address-cells = <0x01>; - #size-cells = <0x00>; - compatible = "snps,dwmac-mdio"; - phandle = <0x28f>; - - phy@1 { - compatible = "ethernet-phy-ieee802.3-c22"; - reg = <0x01>; - phandle = <0x113>; - }; - }; - - tx-queues-config { - phandle = <0x10c>; - snps,tx-queues-to-use = <0x01>; - - queue0 { - }; - }; - - stmmac-axi-config { - snps,wr_osr_lmt = <0x04>; - phandle = <0x10a>; - snps,blen = <0x00 0x00 0x00 0x00 0x10 0x08 0x04>; - snps,rd_osr_lmt = <0x08>; - }; - - rx-queues-config { - snps,rx-queues-to-use = <0x01>; - phandle = <0x10b>; - - queue0 { - }; - }; - }; - - pcie-essd { - regulator-max-microvolt = <0x2625a0>; - enable-active-high; - regulator-min-microvolt = <0x2625a0>; - regulator-name = "pcie_essd"; - startup-delay-us = <0x1388>; - compatible = "regulator-fixed"; - status = "disabled"; - phandle = <0x1ba>; - vin-supply = <0x1cd>; - gpios = <0x181 0x0f 0x00>; - }; - - iommu@fdab9000 { - clock-names = "aclk0\0aclk1\0aclk2\0iface0\0iface1\0iface2"; - interrupts = <0x00 0x6e 0x04 0x00 0x6f 0x04 0x00 0x70 0x04>; - clocks = <0x02 0x12d 0x02 0x122 0x02 0x124 0x02 0x12e 0x02 0x123 0x02 0x125>; - #iommu-cells = <0x00>; - compatible = "rockchip,iommu-v2"; - status = "okay"; - interrupt-names = "npu0_mmu\0npu1_mmu\0npu2_mmu"; - reg = <0x00 0xfdab9000 0x00 0x100 0x00 0xfdaba000 0x00 0x100 0x00 0xfdaca000 0x00 0x100 0x00 0xfdada000 0x00 0x100>; - phandle = <0xb2>; - }; - - otp@fecc0000 { - #address-cells = <0x01>; - clock-names = "otpc\0apb\0arb\0phy"; - resets = <0x02 0x12a 0x02 0x129 0x02 0x12b>; - clocks = <0x02 0x96 0x02 0x95 0x02 0x97 0x02 0x99>; - #size-cells = <0x01>; - compatible = "rockchip,rk3588-otp"; - reg = <0x00 0xfecc0000 0x00 0x400>; - phandle = <0x2e7>; - reset-names = "otpc\0apb\0arb"; - - id@7 { - reg = <0x07 0x10>; - phandle = <0x2a>; - }; - - cpul-opp-info@3d { - reg = <0x3d 0x06>; - phandle = <0x20>; - }; - - cpub1-leakage@18 { - reg = <0x18 0x01>; - phandle = <0x27>; - }; - - vop-opp-info@61 { - reg = <0x61 0x06>; - phandle = <0x2e8>; - }; - - cpul-leakage@19 { - reg = <0x19 0x01>; - phandle = <0x1f>; - }; - - codec-leakage@29 { - reg = <0x29 0x01>; - phandle = <0xc6>; - }; - - cpu-version@1c { - bits = <0x03 0x03>; - reg = <0x1c 0x01>; - phandle = <0x2b>; - }; - - cpub0-leakage@17 { - reg = <0x17 0x01>; - phandle = <0x24>; - }; - - log-leakage@1a { - reg = <0x1a 0x01>; - phandle = <0x44>; - }; - - cpu-code@2 { - reg = <0x02 0x02>; - phandle = <0x2c>; - }; - - package-serial-number-low@6 { - bits = <0x05 0x03>; - reg = <0x06 0x01>; - phandle = <0xd4>; - }; - - npu-opp-info@55 { - reg = <0x55 0x06>; - phandle = <0xb5>; - }; - - package-serial-number-high@5 { - bits = <0x00 0x01>; - reg = <0x05 0x01>; - phandle = <0xd5>; - }; - - cpub01-opp-info@43 { - reg = <0x43 0x06>; - phandle = <0x25>; - }; - - dmc-opp-info@5b { - reg = <0x5b 0x06>; - phandle = <0x45>; - }; - - npu-leakage@28 { - reg = <0x28 0x01>; - phandle = <0xb4>; - }; - - gpu-leakage@1b { - reg = <0x1b 0x01>; - phandle = <0x63>; - }; - - specification-serial-number@6 { - bits = <0x00 0x05>; - reg = <0x06 0x01>; - phandle = <0x21>; - }; - - venc-opp-info@67 { - reg = <0x67 0x06>; - phandle = <0xc7>; - }; - - gpu-opp-info@4f { - reg = <0x4f 0x06>; - phandle = <0x64>; - }; - - cpub23-opp-info@49 { - reg = <0x49 0x06>; - phandle = <0x28>; - }; - }; - - i2s@fddf0000 { - power-domains = <0x60 0x1a>; - rockchip,always-on; - clock-names = "mclk_tx\0mclk_rx\0hclk"; - assigned-clocks = <0x02 0x243>; - assigned-clock-parents = <0x02 0x07>; - resets = <0x02 0x3e8>; - interrupts = <0x00 0xb9 0x04>; - clocks = <0x02 0x246 0x02 0x246 0x02 0x248>; - dma-names = "tx"; - #sound-dai-cells = <0x00>; - compatible = "rockchip,rk3588-i2s-tdm"; - rockchip,playback-only; - status = "okay"; - reg = <0x00 0xfddf0000 0x00 0x1000>; - phandle = <0x1d3>; - dmas = <0xf2 0x02>; - reset-names = "tx-m"; - rockchip,hdmi-path; - }; - - dma-controller@fea10000 { - clock-names = "apb_pclk"; - interrupts = <0x00 0x56 0x04 0x00 0x57 0x04>; - clocks = <0x02 0x78>; - arm,pl330-periph-burst; - compatible = "arm,pl330\0arm,primecell"; - reg = <0x00 0xfea10000 0x00 0x4000>; - phandle = <0x7c>; - #dma-cells = <0x01>; - }; - - pwm@febd0000 { - pinctrl-names = "active"; - pinctrl-0 = <0x169>; - clock-names = "pwm\0pclk"; - interrupts = <0x00 0x15a 0x04>; - clocks = <0x02 0x54 0x02 0x53>; - #pwm-cells = <0x03>; - compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; - status = "disabled"; - reg = <0x00 0xfebd0000 0x00 0x10>; - phandle = <0x2d2>; - }; - - rkvenc-ccu { - compatible = "rockchip,rkv-encoder-v2-ccu"; - status = "okay"; - phandle = <0xc3>; - }; - - syscon@fd58c000 { - compatible = "rockchip,rk3588-sys-grf\0syscon\0simple-mfd"; - reg = <0x00 0xfd58c000 0x00 0x1000>; - phandle = <0xc8>; - - rgb { - pinctrl-names = "default"; - pinctrl-0 = <0x71>; - compatible = "rockchip,rk3588-rgb"; - status = "disabled"; - phandle = <0x25c>; - - ports { - #address-cells = <0x01>; - #size-cells = <0x00>; - - port@0 { - #address-cells = <0x01>; - #size-cells = <0x00>; - reg = <0x00>; - - endpoint@2 { - remote-endpoint = <0x3d>; - status = "disabled"; - reg = <0x02>; - phandle = <0xf0>; - }; - }; - }; - }; - }; - - spi@fe2b0000 { - #address-cells = <0x01>; - clock-names = "clk_sfc\0hclk_sfc"; - assigned-clocks = <0x02 0x13d>; - assigned-clock-rates = <0x5f5e100>; - interrupts = <0x00 0xce 0x04>; - clocks = <0x02 0x13d 0x02 0x13e>; - #size-cells = <0x00>; - compatible = "rockchip,sfc"; - status = "disabled"; - reg = <0x00 0xfe2b0000 0x00 0x4000>; - phandle = <0x292>; - }; - - qos@fdf82200 { - compatible = "syscon"; - reg = <0x00 0xfdf82200 0x00 0x20>; - phandle = <0x9e>; - }; - - mmc@fe2c0000 { - power-domains = <0x60 0x28>; - fifo-depth = <0x100>; - pinctrl-names = "default"; - pinctrl-0 = <0x114 0x115 0x116 0x117>; - clock-names = "biu\0ciu\0ciu-drive\0ciu-sample"; - cap-sd-highspeed; - vqmmc-supply = <0x118>; - no-mmc; - bus-width = <0x04>; - no-sdio; - interrupts = <0x00 0xcb 0x04>; - clocks = <0x0e 0x17 0x0e 0x09 0x02 0x2c2 0x02 0x2c3>; - compatible = "rockchip,rk3588-dw-mshc\0rockchip,rk3288-dw-mshc"; - status = "okay"; - disable-wp; - reg = <0x00 0xfe2c0000 0x00 0x4000>; - phandle = <0x293>; - sd-uhs-sdr104; - max-frequency = <0x8f0d180>; - cap-mmc-highspeed; - }; - - serial@feb80000 { - reg-io-width = <0x04>; - pinctrl-names = "default"; - pinctrl-0 = <0x164>; - clock-names = "baudclk\0apb_pclk"; - interrupts = <0x00 0x150 0x04>; - clocks = <0x02 0xc7 0x02 0xaf>; - compatible = "rockchip,rk3588-uart\0snps,dw-apb-uart"; - status = "disabled"; - reg = <0x00 0xfeb80000 0x00 0x100>; - phandle = <0x2cd>; - dmas = <0xf1 0x0b 0xf1 0x0c>; - reg-shift = <0x02>; - }; - - phy@fee10000 { - rockchip,pipe-grf = <0x76>; - clock-names = "refclk\0apbclk\0phpclk"; - assigned-clocks = <0x02 0x2be>; - assigned-clock-rates = <0x5f5e100>; - resets = <0x02 0x20006 0x02 0x4d7>; - clocks = <0x02 0x2be 0x02 0x186 0x02 0x166>; - #phy-cells = <0x01>; - compatible = "rockchip,rk3588-naneng-combphy"; - status = "disabled"; - rockchip,pipe-phy-grf = <0x1cb>; - reg = <0x00 0xfee10000 0x00 0x100>; - phandle = <0x1bc>; - reset-names = "combphy-apb\0combphy"; - rockchip,pcie1ln-sel-bits = <0x100 0x00 0x00 0x00>; - }; - - can@fea60000 { - pinctrl-names = "default"; - pinctrl-0 = <0x146>; - clock-names = "baudclk\0apb_pclk"; - assigned-clocks = <0x02 0x72>; - assigned-clock-rates = <0xbebc200>; - resets = <0x02 0xbb 0x02 0xba>; - interrupts = <0x00 0x156 0x04>; - clocks = <0x02 0x72 0x02 0x71>; - compatible = "rockchip,can-2.0"; - status = "okay"; - tx-fifo-depth = <0x01>; - rx-fifo-depth = <0x06>; - reg = <0x00 0xfea60000 0x00 0x1000>; - phandle = <0x2a1>; - reset-names = "can\0can-apb"; - }; - - pdm@fe4c0000 { - power-domains = <0x60 0x26>; - pinctrl-names = "default\0idle\0clk"; - pinctrl-2 = <0x140 0x141>; - pinctrl-0 = <0x13b 0x13c 0x13d 0x13e>; - clock-names = "pdm_clk\0pdm_hclk"; - assigned-clocks = <0x02 0x3b>; - assigned-clock-parents = <0x02 0x05>; - clocks = <0x02 0x3b 0x02 0x3a>; - dma-names = "rx"; - #sound-dai-cells = <0x00>; - compatible = "rockchip,rk3588-pdm"; - pinctrl-1 = <0x13f>; - status = "disabled"; - reg = <0x00 0xfe4c0000 0x00 0x1000>; - phandle = <0x29b>; - dmas = <0xf1 0x04>; - }; - - rkcif-mipi-lvds3-sditf-vir2 { - compatible = "rockchip,rkcif-sditf"; - status = "disabled"; - rockchip,cif = <0x57>; - phandle = <0x239>; - }; - - qos@fdf66e00 { - compatible = "syscon"; - reg = <0x00 0xfdf66e00 0x00 0x20>; - phandle = <0x9a>; - }; - - usb@fc800000 { - power-domains = <0x60 0x1f>; - phy-names = "usb2-phy"; - clock-names = "usbhost\0arbiter\0utmi\0alk_usb"; - companion = <0x6b>; - interrupts = <0x00 0xd7 0x04>; - clocks = <0x02 0x19d 0x02 0x19e 0x69 0x6a>; - compatible = "rockchip,rk3588-ehci\0generic-ehci"; - status = "okay"; - phys = <0x6c>; - reg = <0x00 0xfc800000 0x00 0x40000>; - phandle = <0x254>; - }; - - i2c@fd880000 { - pinctrl-names = "default"; - #address-cells = <0x01>; - pinctrl-0 = <0x77>; - clock-names = "i2c\0pclk"; - resets = <0x02 0xc0022 0x02 0xc0021>; - interrupts = <0x00 0x13d 0x04>; - clocks = <0x02 0x287 0x02 0x286>; - #size-cells = <0x00>; - compatible = "rockchip,rk3588-i2c\0rockchip,rk3399-i2c"; - status = "okay"; - reg = <0x00 0xfd880000 0x00 0x1000>; - phandle = <0x25f>; - reset-names = "i2c\0apb"; - - hym8563@51 { - pinctrl-names = "default"; - clock-output-names = "hym8563"; - pinctrl-0 = <0x7a>; - wakeup-source; - interrupts = <0x08 0x08>; - #clock-cells = <0x00>; - interrupt-parent = <0x7b>; - clock-frequency = <0x8000>; - compatible = "haoyu,hym8563"; - status = "okay"; - reg = <0x51>; - phandle = <0x1e4>; - }; - - rk8602@42 { - regulator-max-microvolt = <0x100590>; - regulator-boot-on; - rockchip,suspend-voltage-selector = <0x01>; - regulator-always-on; - regulator-min-microvolt = <0x86470>; - regulator-name = "vdd_cpu_big0_s0"; - regulator-ramp-delay = <0x8fc>; - compatible = "rockchip,rk8602"; - reg = <0x42>; - phandle = <0x18>; - vin-supply = <0x78>; - regulator-compatible = "rk860x-reg"; - - regulator-state-mem { - regulator-off-in-suspend; - }; - }; - - rk8603@43 { - regulator-max-microvolt = <0x100590>; - regulator-boot-on; - rockchip,suspend-voltage-selector = <0x01>; - regulator-always-on; - regulator-min-microvolt = <0x86470>; - regulator-name = "vdd_cpu_big1_s0"; - regulator-ramp-delay = <0x8fc>; - compatible = "rockchip,rk8603"; - reg = <0x43>; - phandle = <0x1c>; - vin-supply = <0x78>; - regulator-compatible = "rk860x-reg"; - - regulator-state-mem { - regulator-off-in-suspend; - }; - }; - - pc9202@3c { - index = <0x00>; - compatible = "firefly,pc9202"; - status = "okay"; - wd-en-gpio = <0x79 0x15 0x00>; - driver-names = "wdt_core"; - reg = <0x3c>; - }; - }; - - rkcif-mipi-lvds3-sditf { - compatible = "rockchip,rkcif-sditf"; - status = "disabled"; - rockchip,cif = <0x57>; - phandle = <0x237>; - }; - - serial@fd890000 { - reg-io-width = <0x04>; - pinctrl-names = "default"; - pinctrl-0 = <0x7d>; - clock-names = "baudclk\0apb_pclk"; - interrupts = <0x00 0x14b 0x04>; - clocks = <0x02 0x2ae 0x02 0x2af>; - compatible = "rockchip,rk3588-uart\0snps,dw-apb-uart"; - status = "disabled"; - reg = <0x00 0xfd890000 0x00 0x100>; - phandle = <0x260>; - dmas = <0x7c 0x06 0x7c 0x07>; - reg-shift = <0x02>; - }; - - qos@fdf70000 { - compatible = "syscon"; - reg = <0x00 0xfdf70000 0x00 0x20>; - phandle = <0x85>; - }; - - gpu-opp-table { - rockchip,pvtm-offset = <0x1c>; - rockchip,pvtm-sample-time = <0x44c>; - rockchip,pvtm-hw = <0x04>; - nvmem-cells = <0x63 0x64 0x21>; - rockchip,low-temp = <0x2710>; - rockchip,pvtm-voltage-sel-hw = <0x00 0x31f 0x00 0x320 0x333 0x01 0x334 0x34c 0x02 0x34d 0x365 0x03 0x366 0x37e 0x04 0x37f 0x270f 0x05>; - rockchip,pvtm-thermal-zone = "gpu-thermal"; - rockchip,high-temp-max-freq = "\0\f5"; - rockchip,opp-clocks = <0x02 0x114>; - rockchip,pvtm-freq = "\0\f5"; - rockchip,pvtm-ref-temp = <0x19>; - low-volt-mem-read-margin = <0x04>; - volt-mem-read-margin = <0xd0bd8 0x01 0xbac48 0x02 0xa4cb8 0x03 0x78d98 0x04>; - compatible = "operating-points-v2"; - rockchip,low-temp-min-volt = <0xb71b0>; - rockchip,grf = <0x65>; - nvmem-cell-names = "leakage\0opp-info\0specification_serial_number"; - rockchip,pvtm-voltage-sel = <0x00 0x32f 0x00 0x330 0x343 0x01 0x344 0x35c 0x02 0x35d 0x375 0x03 0x376 0x38e 0x04 0x38f 0x270f 0x05>; - phandle = <0x61>; - rockchip,pvtm-temp-prop = <0xffffff79 0xffffff79>; - rockchip,temp-hysteresis = <0x1388>; - rockchip,high-temp = <0x14c08>; - rockchip,pvtm-pvtpll; - rockchip,supported-hw; - intermediate-threshold-freq = <0x61a80>; - rockchip,pvtm-volt = <0xb71b0>; - - opp-j-m-700000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; - opp-hz = <0x00 0x29b92700>; - opp-supported-hw = <0x06 0xffff>; - }; - - opp-300000000 { - opp-microvolt = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; - opp-hz = <0x00 0x11e1a300>; - opp-supported-hw = <0xf9 0xffff>; - }; - - opp-500000000 { - opp-microvolt = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; - opp-hz = <0x00 0x1dcd6500>; - opp-supported-hw = <0xf9 0xffff>; - }; - - opp-m-800000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; - opp-hz = <0x00 0x2faf0800>; - opp-supported-hw = <0x02 0xffff>; - }; - - opp-j-850000000 { - opp-microvolt = <0xc042c 0xc042c 0xcf850 0xc042c 0xc042c 0xcf850>; - opp-microvolt-L4 = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; - opp-microvolt-L2 = <0xba284 0xba284 0xcf850 0xba284 0xba284 0xcf850>; - opp-hz = <0x00 0x32a9f880>; - opp-supported-hw = <0x04 0xffff>; - opp-microvolt-L5 = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; - opp-microvolt-L3 = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; - opp-microvolt-L1 = <0xbd358 0xbd358 0xcf850 0xbd358 0xbd358 0xcf850>; - }; - - opp-j-m-400000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; - opp-hz = <0x00 0x17d78400>; - opp-supported-hw = <0x06 0xffff>; - }; - - opp-700000000 { - opp-microvolt = <0xaae60 0xaae60 0xcf850 0xaae60 0xaae60 0xcf850>; - opp-microvolt-L4 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; - opp-microvolt-L2 = <0xa7d8c 0xa7d8c 0xcf850 0xa7d8c 0xa7d8c 0xcf850>; - opp-hz = <0x00 0x29b92700>; - opp-supported-hw = <0xf9 0xffff>; - opp-microvolt-L5 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; - opp-microvolt-L3 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; - }; - - opp-j-m-600000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; - opp-hz = <0x00 0x23c34600>; - opp-supported-hw = <0x06 0xffff>; - }; - - opp-900000000 { - opp-microvolt = <0xc3500 0xc3500 0xcf850 0xc3500 0xc3500 0xcf850>; - opp-microvolt-L4 = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; - opp-microvolt-L2 = <0xbd358 0xbd358 0xcf850 0xbd358 0xbd358 0xcf850>; - opp-hz = <0x00 0x35a4e900>; - opp-supported-hw = <0xf9 0xffff>; - opp-microvolt-L5 = <0xb40dc 0xb40dc 0xcf850 0xb40dc 0xb40dc 0xcf850>; - opp-microvolt-L3 = <0xba284 0xba284 0xcf850 0xba284 0xba284 0xcf850>; - opp-microvolt-L1 = <0xc042c 0xc042c 0xcf850 0xc042c 0xc042c 0xcf850>; - }; - - opp-m-1000000000 { - opp-microvolt = <0xcf850 0xcf850 0xcf850 0xcf850 0xcf850 0xcf850>; - opp-microvolt-L4 = <0xc3500 0xc3500 0xcf850 0xc3500 0xc3500 0xcf850>; - opp-microvolt-L2 = <0xc96a8 0xc96a8 0xcf850 0xc96a8 0xc96a8 0xcf850>; - opp-hz = <0x00 0x3b9aca00>; - opp-supported-hw = <0x02 0xffff>; - opp-microvolt-L5 = <0xc042c 0xc042c 0xcf850 0xc042c 0xc042c 0xcf850>; - opp-microvolt-L3 = <0xc65d4 0xc65d4 0xcf850 0xc65d4 0xc65d4 0xcf850>; - opp-microvolt-L1 = <0xcc77c 0xcc77c 0xcf850 0xcc77c 0xcc77c 0xcf850>; - }; - - opp-400000000 { - opp-microvolt = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; - opp-hz = <0x00 0x17d78400>; - opp-supported-hw = <0xf9 0xffff>; - }; - - opp-j-m-300000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; - opp-hz = <0x00 0x11e1a300>; - opp-supported-hw = <0x06 0xffff>; - }; - - opp-600000000 { - opp-microvolt = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; - opp-hz = <0x00 0x23c34600>; - opp-supported-hw = <0xf9 0xffff>; - }; - - opp-m-900000000 { - opp-microvolt = <0xc3500 0xc3500 0xcf850 0xc3500 0xc3500 0xcf850>; - opp-microvolt-L4 = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; - opp-microvolt-L2 = <0xbd358 0xbd358 0xcf850 0xbd358 0xbd358 0xcf850>; - opp-hz = <0x00 0x35a4e900>; - opp-supported-hw = <0x02 0xffff>; - opp-microvolt-L5 = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; - opp-microvolt-L3 = <0xba284 0xba284 0xcf850 0xba284 0xba284 0xcf850>; - opp-microvolt-L1 = <0xc042c 0xc042c 0xcf850 0xc042c 0xc042c 0xcf850>; - }; - - opp-1000000000 { - opp-microvolt = <0xcf850 0xcf850 0xcf850 0xcf850 0xcf850 0xcf850>; - opp-microvolt-L4 = <0xc3500 0xc3500 0xcf850 0xc3500 0xc3500 0xcf850>; - opp-microvolt-L2 = <0xc96a8 0xc96a8 0xcf850 0xc96a8 0xc96a8 0xcf850>; - opp-hz = <0x00 0x3b9aca00>; - opp-supported-hw = <0xf9 0xffff>; - opp-microvolt-L5 = <0xc042c 0xc042c 0xcf850 0xc042c 0xc042c 0xcf850>; - opp-microvolt-L3 = <0xc65d4 0xc65d4 0xcf850 0xc65d4 0xc65d4 0xcf850>; - opp-microvolt-L1 = <0xcc77c 0xcc77c 0xcf850 0xcc77c 0xcc77c 0xcf850>; - }; - - opp-j-m-500000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; - opp-hz = <0x00 0x1dcd6500>; - opp-supported-hw = <0x06 0xffff>; - }; - - opp-800000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; - opp-microvolt-L4 = <0xaae60 0xaae60 0xcf850 0xaae60 0xaae60 0xcf850>; - opp-microvolt-L2 = <0xb1008 0xb1008 0xcf850 0xb1008 0xb1008 0xcf850>; - opp-hz = <0x00 0x2faf0800>; - opp-supported-hw = <0xf9 0xffff>; - opp-microvolt-L5 = <0xaae60 0xaae60 0xcf850 0xaae60 0xaae60 0xcf850>; - opp-microvolt-L3 = <0xadf34 0xadf34 0xcf850 0xadf34 0xadf34 0xcf850>; - opp-microvolt-L1 = <0xb40dc 0xb40dc 0xcf850 0xb40dc 0xb40dc 0xcf850>; - }; - }; - - csi2-dphy1-hw@fedc8000 { - clock-names = "pclk"; - resets = <0x02 0x19 0x02 0x18>; - clocks = <0x02 0x10d>; - compatible = "rockchip,rk3588-csi2-dphy-hw"; - status = "okay"; - rockchip,grf = <0x193>; - reg = <0x00 0xfedc8000 0x00 0x8000>; - phandle = <0x2e>; - reset-names = "srst_csiphy1\0srst_p_csiphy1"; - rockchip,sys_grf = <0xc8>; - }; - - hdcp@fde40000 { - power-domains = <0x60 0x19>; - clock-names = "aclk\0pclk\0hclk\0hclk_key\0aclk_trng\0pclk_trng"; - resets = <0x02 0x37f 0x02 0x37d 0x02 0x37c 0x02 0x37b 0x02 0x381>; - interrupts = <0x00 0x9f 0x04>; - clocks = <0x02 0x1ed 0x02 0x1ef 0x02 0x1ee 0x02 0x1ec 0x02 0x1f1 0x02 0x1f2>; - compatible = "rockchip,rk3588-hdcp"; - status = "disabled"; - reg = <0x00 0xfde40000 0x00 0x80>; - phandle = <0x285>; - reset-names = "hdcp\0h_hdcp\0a_hdcp\0hdcp_key\0trng"; - rockchip,vo-grf = <0xf5>; - }; - - iommu@fdbac800 { - power-domains = <0x60 0x15>; - clock-names = "aclk\0iface"; - interrupts = <0x00 0x7f 0x04>; - clocks = <0x02 0x1b2 0x02 0x1b3>; - #iommu-cells = <0x00>; - compatible = "rockchip,iommu-v2"; - status = "okay"; - interrupt-names = "irq_jpege3_mmu"; - reg = <0x00 0xfdbac800 0x00 0x40>; - phandle = <0xc0>; - }; - - qos@fdf40400 { - compatible = "syscon"; - reg = <0x00 0xfdf40400 0x00 0x20>; - phandle = <0xa2>; - }; - - rga@fdb70000 { - power-domains = <0x60 0x1e>; - iommus = <0xba>; - clock-names = "aclk_rga3_1\0hclk_rga3_1\0clk_rga3_1"; - interrupts = <0x00 0x73 0x04>; - clocks = <0x02 0x18a 0x02 0x189 0x02 0x18b>; - compatible = "rockchip,rga3_core1"; - status = "okay"; - interrupt-names = "rga3_core1_irq"; - reg = <0x00 0xfdb70000 0x00 0x1000>; - phandle = <0x26a>; - }; - - spi@feb00000 { - pinctrl-names = "default"; - #address-cells = <0x01>; - num-cs = <0x02>; - pinctrl-0 = <0x14e 0x14f 0x150>; - clock-names = "spiclk\0apb_pclk"; - interrupts = <0x00 0x146 0x04>; - clocks = <0x02 0xa3 0x02 0x9e>; - #size-cells = <0x00>; - dma-names = "tx\0rx"; - compatible = "rockchip,rk3066-spi"; - status = "disabled"; - reg = <0x00 0xfeb00000 0x00 0x1000>; - phandle = <0x2ab>; - dmas = <0x7c 0x0e 0x7c 0x0f>; - }; - - pcie@fe170000 { - #address-cells = <0x03>; - rockchip,pipe-grf = <0x76>; - phy-names = "pcie-phy"; - bus-range = <0x20 0x2f>; - clock-names = "aclk_mst\0aclk_slv\0aclk_dbi\0pclk\0aux\0pipe"; - reg-names = "pcie-apb\0pcie-dbi"; - num-ob-windows = <0x08>; - resets = <0x02 0x20f 0x02 0x21e>; - interrupts = <0x00 0xf3 0x04 0x00 0xf2 0x04 0x00 0xf1 0x04 0x00 0xf0 0x04 0x00 0xef 0x04>; - clocks = <0x02 0x150 0x02 0x155 0x02 0x14b 0x02 0x15b 0x02 0x160 0x02 0x2c4>; - interrupt-map = <0x00 0x00 0x00 0x01 0x1bb 0x00 0x00 0x00 0x00 0x02 0x1bb 0x01 0x00 0x00 0x00 0x03 0x1bb 0x02 0x00 0x00 0x00 0x04 0x1bb 0x03>; - #size-cells = <0x02>; - max-link-speed = <0x02>; - device_type = "pci"; - interrupt-map-mask = <0x00 0x00 0x00 0x07>; - num-lanes = <0x01>; - compatible = "rockchip,rk3588-pcie\0snps,dw-pcie"; - ranges = <0x800 0x00 0xf2000000 0x00 0xf2000000 0x00 0x100000 0x81000000 0x00 0xf2100000 0x00 0xf2100000 0x00 0x100000 0x82000000 0x00 0xf2200000 0x00 0xf2200000 0x00 0xe00000 0xc3000000 0x09 0x80000000 0x09 0x80000000 0x00 0x40000000>; - msi-map = <0x2000 0x106 0x2000 0x1000>; - #interrupt-cells = <0x01>; - status = "disabled"; - interrupt-names = "sys\0pmc\0msg\0legacy\0err"; - phys = <0x1bc 0x02>; - num-viewport = <0x04>; - reg = <0x00 0xfe170000 0x00 0x10000 0x0a 0x40800000 0x00 0x400000>; - linux,pci-domain = <0x02>; - phandle = <0x487>; - reset-names = "pcie\0periph"; - num-ib-windows = <0x08>; - - legacy-interrupt-controller { - #address-cells = <0x00>; - interrupts = <0x00 0xf0 0x01>; - interrupt-parent = <0x01>; - #interrupt-cells = <0x01>; - phandle = <0x1bb>; - interrupt-controller; - }; - }; - - i2s@fe470000 { - power-domains = <0x60 0x26>; - pinctrl-names = "default\0idle\0clk"; - pinctrl-2 = <0x11b 0x11c>; - pinctrl-0 = <0x11b 0x11c 0x11d 0x11e>; - clock-names = "mclk_tx\0mclk_rx\0hclk"; - assigned-clocks = <0x02 0x31 0x02 0x35>; - assigned-clock-parents = <0x02 0x05 0x02 0x05>; - resets = <0x02 0x77 0x02 0x7a>; - interrupts = <0x00 0xb4 0x04>; - clocks = <0x02 0x33 0x02 0x37 0x02 0x30>; - dma-names = "tx\0rx"; - #sound-dai-cells = <0x00>; - compatible = "rockchip,rk3588-i2s-tdm"; - pinctrl-1 = <0x11f>; - status = "okay"; - reg = <0x00 0xfe470000 0x00 0x1000>; - phandle = <0x1da>; - dmas = <0x7c 0x00 0x7c 0x01>; - reset-names = "tx-m\0rx-m"; - rockchip,clk-trcm = <0x01>; - }; - - syscon@fd594000 { - compatible = "rockchip,rk3588-litcore-grf\0syscon"; - reg = <0x00 0xfd594000 0x00 0x100>; - phandle = <0x22>; - }; - - csi2-dphy5 { - rockchip,hw = <0x2d 0x2e>; - phy-names = "dcphy0\0dcphy1"; - compatible = "rockchip,rk3588-csi2-dphy"; - status = "disabled"; - phys = <0x2f 0x30>; - phandle = <0x214>; - }; - - usb@fc840000 { - power-domains = <0x60 0x1f>; - phy-names = "usb2-phy"; - clock-names = "usbhost\0arbiter\0utmi\0alk_usb"; - interrupts = <0x00 0xd8 0x04>; - clocks = <0x02 0x19d 0x02 0x19e 0x69 0x6a>; - compatible = "rockchip,rk3588-ohci\0generic-ohci"; - status = "okay"; - phys = <0x6c>; - reg = <0x00 0xfc840000 0x00 0x40000>; - phandle = <0x6b>; - }; - - syscon@fd5b0000 { - compatible = "rockchip,rk3588-php-grf\0syscon"; - reg = <0x00 0xfd5b0000 0x00 0x1000>; - phandle = <0x76>; - }; - - rkcif-mipi-lvds2-sditf-vir3 { - compatible = "rockchip,rkcif-sditf"; - status = "disabled"; - rockchip,cif = <0x55>; - phandle = <0x236>; - }; - - rkisp1-vir1 { - rockchip,hw = <0x5a>; - compatible = "rockchip,rkisp-vir"; - status = "disabled"; - phandle = <0x240>; - }; - - i2c@feaa0000 { - pinctrl-names = "default"; - #address-cells = <0x01>; - pinctrl-0 = <0x149>; - clock-names = "i2c\0pclk"; - resets = <0x02 0xb1 0x02 0xa9>; - interrupts = <0x00 0x13f 0x04>; - clocks = <0x02 0x8e 0x02 0x86>; - #size-cells = <0x00>; - compatible = "rockchip,rk3588-i2c\0rockchip,rk3399-i2c"; - status = "disabled"; - reg = <0x00 0xfeaa0000 0x00 0x1000>; - phandle = <0x2a5>; - reset-names = "i2c\0apb"; - }; - - dmc { - downdifferential = <0x14>; - clock-names = "dmc_clk"; - interrupts = <0x00 0x49 0x04>; - clocks = <0x0e 0x04>; - upthreshold = <0x28>; - center-supply = <0x42>; - devfreq-events = <0x40>; - compatible = "rockchip,rk3588-dmc"; - status = "disabled"; - interrupt-names = "complete"; - mem-supply = <0x43>; - phandle = <0x21f>; - operating-points-v2 = <0x41>; - system-status-level = <0x01 0x04 0x08 0x08 0x02 0x01 0x10 0x04 0x10000 0x04 0x80000 0x04 0x1000 0x08 0x4000 0x08 0x2000 0x08 0xc00 0x08 0x40000 0x08 0x200000 0x08>; - auto-freq-en = <0x01>; - }; - - hdmi1-sound { - rockchip,jack-det; - rockchip,cpu = <0x1e0>; - rockchip,codec = <0x1e1>; - rockchip,card-name = "rockchip-hdmi1"; - compatible = "rockchip,hdmi"; - status = "disabled"; - phandle = <0x4a8>; - rockchip,mclk-fs = <0x80>; - }; - - qos@fdf3d800 { - compatible = "syscon"; - reg = <0x00 0xfdf3d800 0x00 0x20>; - phandle = <0xb0>; - }; - - mipi-dcphy-dummy { - phandle = <0x223>; - }; - - jpege-core@fdbac000 { - power-domains = <0x60 0x15>; - iommus = <0xc0>; - rockchip,ccu = <0xbd>; - clock-names = "aclk_vcodec\0hclk_vcodec"; - assigned-clocks = <0x02 0x1b2>; - rockchip,normal-rates = <0x2367b880 0x00>; - assigned-clock-rates = <0x2367b880>; - resets = <0x02 0x2d0 0x02 0x2d1>; - interrupts = <0x00 0x80 0x04>; - clocks = <0x02 0x1b2 0x02 0x1b3>; - rockchip,srv = <0xb8>; - rockchip,taskqueue-node = <0x02>; - rockchip,disable-auto-freq; - compatible = "rockchip,vpu-jpege-core"; - status = "okay"; - interrupt-names = "irq_jpege3"; - rockchip,skip-pmu-idle-request; - reg = <0x00 0xfdbac000 0x00 0x400>; - phandle = <0x270>; - reset-names = "video_a\0video_h"; - }; - - iommu@fdce0800 { - power-domains = <0x60 0x1b>; - clock-names = "aclk\0iface"; - interrupts = <0x00 0x71 0x04>; - clocks = <0x02 0x1e4 0x02 0x1e5>; - #iommu-cells = <0x00>; - compatible = "rockchip,iommu-v2"; - rockchip,disable-mmu-reset; - status = "okay"; - interrupt-names = "cif_mmu"; - reg = <0x00 0xfdce0800 0x00 0x100 0x00 0xfdce0900 0x00 0x100>; - phandle = <0x50>; - }; - - qos@fdf35400 { - compatible = "syscon"; - reg = <0x00 0xfdf35400 0x00 0x20>; - phandle = <0x89>; - }; - - syscon@fd5a8000 { - clocks = <0x73>; - compatible = "rockchip,rk3588-vo-grf\0syscon"; - reg = <0x00 0xfd5a8000 0x00 0x100>; - phandle = <0xd8>; - }; - - dp0-sound { - rockchip,jack-det; - rockchip,cpu = <0x1d5>; - rockchip,codec = <0x1d6 0x01>; - rockchip,card-name = "rockchip-dp0"; - compatible = "rockchip,hdmi"; - status = "disabled"; - phandle = <0x49c>; - rockchip,mclk-fs = <0x200>; - }; - - rkcif-mipi-lvds4 { - iommus = <0x50>; - rockchip,hw = <0x4f>; - compatible = "rockchip,rkcif-mipi-lvds"; - status = "disabled"; - phandle = <0x1a1>; - }; - - usb@fc880000 { - power-domains = <0x60 0x1f>; - phy-names = "usb2-phy"; - clock-names = "usbhost\0arbiter\0utmi\0alk_usb"; - companion = <0x6e>; - interrupts = <0x00 0xda 0x04>; - clocks = <0x02 0x19f 0x02 0x1a0 0x6d 0x6a>; - compatible = "rockchip,rk3588-ehci\0generic-ehci"; - status = "okay"; - phys = <0x6f>; - reg = <0x00 0xfc880000 0x00 0x40000>; - phandle = <0x255>; - }; - - qos@fdf62000 { - compatible = "syscon"; - reg = <0x00 0xfdf62000 0x00 0x20>; - phandle = <0x8b>; - }; - - syscon@fd5f0000 { - compatible = "rockchip,rk3588-ioc\0syscon"; - reg = <0x00 0xfd5f0000 0x00 0x10000>; - phandle = <0x196>; - }; - - mipi1-csi2 { - rockchip,hw = <0x47 0x48 0x49 0x4a 0x4b 0x4c>; - compatible = "rockchip,rk3588-mipi-csi2"; - status = "disabled"; - phandle = <0x225>; - }; - - hdmiphy@fed70000 { - clock-names = "ref\0apb"; - resets = <0x02 0x491 0x02 0x486 0x02 0xc003f 0x02 0xc0040 0x02 0xc0041 0x02 0x48f 0x02 0x490>; - clocks = <0x02 0x2b5 0x02 0x268>; - #phy-cells = <0x00>; - compatible = "rockchip,rk3588-hdptx-phy-hdmi"; - status = "disabled"; - rockchip,grf = <0x1c7>; - reg = <0x00 0xfed70000 0x00 0x2000>; - phandle = <0x1ac>; - reset-names = "phy\0apb\0init\0cmn\0lane\0ropll\0lcpll"; - - clk-port { - #clock-cells = <0x00>; - status = "okay"; - phandle = <0x36>; - }; - }; - - i2c@fec80000 { - pinctrl-names = "default"; - #address-cells = <0x01>; - pinctrl-0 = <0x178>; - clock-names = "i2c\0pclk"; - resets = <0x02 0xb5 0x02 0xad>; - interrupts = <0x00 0x143 0x04>; - clocks = <0x02 0x92 0x02 0x8a>; - #size-cells = <0x00>; - compatible = "rockchip,rk3588-i2c\0rockchip,rk3399-i2c"; - status = "okay"; - reg = <0x00 0xfec80000 0x00 0x1000>; - phandle = <0x2df>; - reset-names = "i2c\0apb"; - - imx415@37 { - power-domains = <0x60 0x1b>; - pinctrl-names = "default"; - pinctrl-0 = <0x180>; - clock-names = "xvclk"; - clocks = <0x02 0x100>; - firefly,clkout-enabled-index = <0x00>; - rockchip,camera-module-name = "CMK-OT2022-PX1"; - reset-gpios = <0x182 0x05 0x01>; - rockchip,camera-module-index = <0x00>; - compatible = "sony,imx415"; - rockchip,camera-module-facing = "back"; - power-gpios = <0x181 0x1d 0x00>; - reg = <0x37>; - rockchip,camera-module-lens-name = "IR0147-50IRC-8M-F20"; - phandle = <0x2e3>; - - port { - - endpoint { - data-lanes = <0x01 0x02 0x03 0x04>; - remote-endpoint = <0x184>; - phandle = <0x32>; - }; - }; - }; - - es8388@11 { - pinctrl-names = "default"; - pinctrl-0 = <0x17a>; - clock-names = "mclk"; - assigned-clocks = <0x179>; - assigned-clock-rates = <0xbb8000>; - clocks = <0x179>; - #sound-dai-cells = <0x00>; - compatible = "everest,es8388\0everest,es8323"; - status = "okay"; - reg = <0x11>; - phandle = <0x1db>; - }; - - XC7160b@1b { - power-domains = <0x60 0x1b>; - pinctrl-names = "default"; - pinctrl-0 = <0x180>; - clock-names = "xvclk"; - pwdn-gpios = <0xfe 0x04 0x00>; - clocks = <0x02 0x100>; - firefly,clkout-enabled-index = <0x00>; - rockchip,camera-module-name = "NC"; - reset-gpios = <0x182 0x05 0x00>; - rockchip,camera-module-index = <0x00>; - compatible = "firefly,xc7160"; - rockchip,camera-module-facing = "back"; - power-gpios = <0x181 0x1d 0x01>; - reg = <0x1b>; - rockchip,camera-module-lens-name = "NC"; - phandle = <0x2e2>; - - port { - - endpoint { - data-lanes = <0x01 0x02 0x03 0x04>; - remote-endpoint = <0x183>; - phandle = <0x31>; - }; - }; - }; - - fusb302@22 { - pinctrl-names = "default"; - pinctrl-0 = <0x17b>; - interrupts = <0x1b 0x08>; - vbus-supply = <0x17c>; - interrupt-parent = <0x7b>; - compatible = "fcs,fusb302"; - status = "disabled"; - reg = <0x22>; - phandle = <0x2e0>; - - connector { - sink-pdos = <0x4019064>; - power-role = "dual"; - source-pdos = <0x401912c>; - data-role = "dual"; - label = "USB-C"; - try-power-role = "sink"; - compatible = "usb-c-connector"; - op-sink-microwatt = <0xf4240>; - phandle = <0x2e1>; - - ports { - #address-cells = <0x01>; - #size-cells = <0x00>; - - port@0 { - reg = <0x00>; - - endpoint { - remote-endpoint = <0x17e>; - phandle = <0x18e>; - }; - }; - - port@1 { - reg = <0x01>; - - endpoint { - remote-endpoint = <0x17f>; - phandle = <0x18f>; - }; - }; - }; - - altmodes { - #address-cells = <0x01>; - #size-cells = <0x00>; - - altmode@0 { - svid = <0xff01>; - vdo = <0xffffffff>; - reg = <0x00>; - }; - }; - }; - - ports { - #address-cells = <0x01>; - #size-cells = <0x00>; - - port@0 { - reg = <0x00>; - - endpoint@0 { - remote-endpoint = <0x17d>; - phandle = <0x68>; - }; - }; - }; - }; - }; - - syscon@fd5e8000 { - compatible = "rockchip,mipi-dcphy-grf\0syscon"; - reg = <0x00 0xfd5e8000 0x00 0x4000>; - phandle = <0x190>; - }; - - vbus5v0-typec-pwr-en-regulator { - gpio = <0x182 0x0c 0x00>; - enable-active-high; - regulator-name = "vbus5v0_typec_pwr_en"; - compatible = "regulator-fixed"; - status = "disabled"; - phandle = <0x17c>; - }; - - mipi2-csi2-hw@fdd30000 { - clock-names = "pclk_csi2host"; - reg-names = "csihost_regs"; - resets = <0x02 0x326>; - interrupts = <0x00 0x93 0x04 0x00 0x94 0x04>; - clocks = <0x02 0x1d1>; - compatible = "rockchip,rk3588-mipi-csi2-hw"; - status = "okay"; - interrupt-names = "csi-intr1\0csi-intr2"; - reg = <0x00 0xfdd30000 0x00 0x10000>; - phandle = <0x49>; - reset-names = "srst_csihost_p"; - }; - - spdif-rx@fde18000 { - power-domains = <0x60 0x1a>; - clock-names = "mclk\0hclk"; - assigned-clocks = <0x02 0x262>; - assigned-clock-parents = <0x02 0x05>; - resets = <0x02 0x401>; - interrupts = <0x00 0xc9 0x04>; - clocks = <0x02 0x262 0x02 0x261>; - dma-names = "rx"; - #sound-dai-cells = <0x00>; - compatible = "rockchip,rk3588-spdifrx\0rockchip,rk3308-spdifrx"; - status = "disabled"; - reg = <0x00 0xfde18000 0x00 0x1000>; - phandle = <0x480>; - dmas = <0x7c 0x17>; - reset-names = "spdifrx-m"; - }; - - syscon@fd5a2000 { - compatible = "rockchip,rk3588-npu-grf\0syscon"; - reg = <0x00 0xfd5a2000 0x00 0x100>; - phandle = <0xb6>; - }; - - rkisp0-vir3 { - rockchip,hw = <0x58>; - compatible = "rockchip,rkisp-vir"; - status = "disabled"; - phandle = <0x23e>; - }; - - qos@fdf66200 { - compatible = "syscon"; - reg = <0x00 0xfdf66200 0x00 0x20>; - phandle = <0x94>; - }; - - rkcif@fdce0000 { - power-domains = <0x60 0x1b>; - iommus = <0x50>; - nvmem-cells = <0x21 0xd4 0xd5>; - clock-names = "aclk_cif\0hclk_cif\0dclk_cif\0iclk_host0\0iclk_host1"; - reg-names = "cif_regs"; - assigned-clocks = <0x02 0x1e3>; - assigned-clock-rates = <0x23c34600>; - resets = <0x02 0x317 0x02 0x318 0x02 0x316 0x02 0x334 0x02 0x335 0x02 0x336 0x02 0x337 0x02 0x338 0x02 0x339>; - interrupts = <0x00 0x9b 0x04>; - clocks = <0x02 0x1e4 0x02 0x1e5 0x02 0x1e3 0x02 0x1cd 0x02 0x1ce>; - compatible = "rockchip,rk3588-cif"; - status = "okay"; - rockchip,grf = <0xc8>; - interrupt-names = "cif-intr"; - nvmem-cell-names = "specification\0package_low\0package_high"; - reg = <0x00 0xfdce0000 0x00 0x800>; - phandle = <0x4f>; - reset-names = "rst_cif_a\0rst_cif_h\0rst_cif_d\0rst_cif_host0\0rst_cif_host1\0rst_cif_host2\0rst_cif_host3\0rst_cif_host4\0rst_cif_host5"; - }; - - edp@fdec0000 { - power-domains = <0x60 0x1a>; - phy-names = "dp"; - clock-names = "dp\0pclk\0spdif\0hclk"; - resets = <0x02 0x3e1 0x02 0x3e0>; - interrupts = <0x00 0xa3 0x04>; - clocks = <0x02 0x211 0x02 0x210 0x02 0x212 0x05>; - compatible = "rockchip,rk3588-edp"; - status = "disabled"; - rockchip,grf = <0xd8>; - phys = <0x101>; - reg = <0x00 0xfdec0000 0x00 0x1000>; - phandle = <0x289>; - reset-names = "dp\0apb"; - - ports { - #address-cells = <0x01>; - #size-cells = <0x00>; - - port@0 { - #address-cells = <0x01>; - #size-cells = <0x00>; - reg = <0x00>; - - endpoint@1 { - remote-endpoint = <0x103>; - status = "disabled"; - reg = <0x01>; - phandle = <0xe1>; - }; - - endpoint@2 { - remote-endpoint = <0x3b>; - status = "disabled"; - reg = <0x02>; - phandle = <0xe7>; - }; - - endpoint@0 { - remote-endpoint = <0x102>; - status = "disabled"; - reg = <0x00>; - phandle = <0xdb>; - }; - }; - - port@1 { - reg = <0x01>; - - endpoint { - phandle = <0x28a>; - }; - }; - }; - }; - - qos@fdf72400 { - compatible = "syscon"; - reg = <0x00 0xfdf72400 0x00 0x20>; - phandle = <0x84>; - }; - - dp@fde60000 { - power-domains = <0x60 0x19>; - clock-names = "apb\0aux\0i2s\0spdif\0hclk\0hdcp"; - assigned-clocks = <0x02 0x2cd>; - assigned-clock-rates = <0xf42400>; - resets = <0x02 0x389>; - interrupts = <0x00 0xa2 0x04>; - clocks = <0x02 0x1e7 0x02 0x2cd 0x02 0x201 0x02 0x20d 0x04 0x02 0x1eb>; - #sound-dai-cells = <0x01>; - compatible = "rockchip,rk3588-dp"; - status = "disabled"; - phys = <0x1a5>; - reg = <0x00 0xfde60000 0x00 0x4000>; - phandle = <0x1e3>; - - ports { - #address-cells = <0x01>; - #size-cells = <0x00>; - - port@0 { - #address-cells = <0x01>; - #size-cells = <0x00>; - reg = <0x00>; - - endpoint@1 { - remote-endpoint = <0x3e>; - status = "disabled"; - reg = <0x01>; - phandle = <0xe3>; - }; - - endpoint@2 { - remote-endpoint = <0x1a7>; - status = "disabled"; - reg = <0x02>; - phandle = <0xeb>; - }; - - endpoint@0 { - remote-endpoint = <0x1a6>; - status = "disabled"; - reg = <0x00>; - phandle = <0xdd>; - }; - }; - - port@1 { - reg = <0x01>; - - endpoint { - phandle = <0x481>; - }; - }; - }; - }; - - vcc5v0-usbdcin { - regulator-max-microvolt = <0x4c4b40>; - regulator-boot-on; - regulator-always-on; - regulator-min-microvolt = <0x4c4b40>; - regulator-name = "vcc5v0_usbdcin"; - compatible = "regulator-fixed"; - phandle = <0x48c>; - vin-supply = <0x1cd>; - }; - - rkvdec-core@fdc48000 { - power-domains = <0x60 0x0f>; - iommus = <0xcc>; - rockchip,ccu = <0xca>; - clock-names = "aclk_vcodec\0hclk_vcodec\0clk_core\0clk_cabac\0clk_hevc_cabac"; - reg-names = "regs\0link"; - assigned-clocks = <0x02 0x195 0x02 0x198 0x02 0x196 0x02 0x197>; - rockchip,core-mask = <0x20002>; - rockchip,task-capacity = <0x10>; - rockchip,normal-rates = <0x2faf0800 0x00 0x23c34600 0x23c34600 0x3b9aca00>; - assigned-clock-rates = <0x2faf0800 0x23c34600 0x23c34600 0x3b9aca00>; - resets = <0x02 0x293 0x02 0x292 0x02 0x298 0x02 0x296 0x02 0x297>; - interrupts = <0x00 0x61 0x04>; - rockchip,rcb-info = <0x88 0x6000 0x89 0xc000 0x8d 0x16000 0x8c 0xc000 0x8b 0x2c000 0x85 0xc000 0x86 0x2000 0x87 0x1100 0x8a 0x3300 0x8e 0x47300>; - clocks = <0x02 0x195 0x02 0x194 0x02 0x198 0x02 0x196 0x02 0x197>; - rockchip,rcb-min-width = <0x200>; - rockchip,srv = <0xb8>; - rockchip,taskqueue-node = <0x09>; - compatible = "rockchip,rkv-decoder-v2"; - status = "okay"; - interrupt-names = "irq_rkvdec1"; - rockchip,skip-pmu-idle-request; - rockchip,rcb-iova = <0xffe00000 0x100000>; - reg = <0x00 0xfdc48100 0x00 0x400 0x00 0xfdc48000 0x00 0x100>; - phandle = <0x275>; - reset-names = "video_a\0video_h\0video_core\0video_cabac\0video_hevc_cabac"; - rockchip,sram = <0xcd>; - }; - - vcc-1v1-nldo-s3 { - regulator-max-microvolt = <0x10c8e0>; - regulator-boot-on; - regulator-always-on; - regulator-min-microvolt = <0x10c8e0>; - regulator-name = "vcc_1v1_nldo_s3"; - compatible = "regulator-fixed"; - phandle = <0x15c>; - vin-supply = <0x78>; - }; - - power-management@fd8d8000 { - compatible = "rockchip,rk3588-pmu\0syscon\0simple-mfd"; - reg = <0x00 0xfd8d8000 0x00 0x400>; - phandle = <0xd9>; - - power-controller { - #address-cells = <0x01>; - #size-cells = <0x00>; - #power-domain-cells = <0x01>; - compatible = "rockchip,rk3588-power-controller"; - status = "okay"; - phandle = <0x60>; - - power-domain@37 { - clocks = <0x02 0x199 0x02 0x140>; - reg = <0x25>; - pm_qos = <0xaf>; - }; - - power-domain@27 { - #address-cells = <0x01>; - clocks = <0x02 0x1e1 0x02 0x1e2 0x02 0x1df 0x02 0x1de 0x02 0x1e5 0x02 0x1e4>; - #size-cells = <0x00>; - reg = <0x1b>; - pm_qos = <0xa2 0xa3 0xa4 0xa5>; - - power-domain@29 { - clocks = <0x02 0x1d6 0x02 0x1d5 0x02 0x1d9 0x02 0x1d8 0x02 0x1e2>; - reg = <0x1d>; - pm_qos = <0xa8 0xa9>; - }; - - power-domain@28 { - clocks = <0x02 0x121 0x02 0x120 0x02 0x1e1 0x02 0x1e2>; - reg = <0x1c>; - pm_qos = <0xa6 0xa7>; - }; - }; - - power-domain@33 { - clocks = <0x02 0x166 0x02 0x169 0x02 0x16a>; - reg = <0x21>; - }; - - power-domain@13 { - #address-cells = <0x01>; - #size-cells = <0x00>; - reg = <0x0d>; - - power-domain@15 { - clocks = <0x02 0x194 0x02 0x1be 0x02 0x1bc 0x02 0x195>; - reg = <0x0f>; - pm_qos = <0x8c>; - }; - - power-domain@16 { - #address-cells = <0x01>; - clocks = <0x02 0x1c4 0x02 0x1c5>; - #size-cells = <0x00>; - reg = <0x10>; - pm_qos = <0x8d 0x8e 0x8f>; - - power-domain@17 { - clocks = <0x02 0x1c9 0x02 0x1c4 0x02 0x1c5 0x02 0x1ca>; - reg = <0x11>; - pm_qos = <0x90 0x91 0x92>; - }; - }; - - power-domain@14 { - clocks = <0x02 0x18f 0x02 0x1be 0x02 0x1bc 0x02 0x190 0x02 0x18e>; - reg = <0x0e>; - pm_qos = <0x8b>; - }; - }; - - power-domain@31 { - clocks = <0x02 0x166 0x02 0x1a1 0x02 0x1a4 0x02 0x19d 0x02 0x19e 0x02 0x19f 0x02 0x1a0>; - reg = <0x1f>; - pm_qos = <0xab 0xac 0xad 0xae>; - }; - - power-domain@21 { - #address-cells = <0x01>; - clocks = <0x02 0x1be 0x02 0x1bd 0x02 0x1bc 0x02 0x1bf 0x02 0x1aa 0x02 0x1a9 0x02 0x1ac 0x02 0x1ad 0x02 0x1ae 0x02 0x1af 0x02 0x1b0 0x02 0x1b1 0x02 0x1b2 0x02 0x1b3 0x02 0x1b4 0x02 0x1b5 0x02 0x1b7 0x02 0x1b6>; - #size-cells = <0x00>; - reg = <0x15>; - pm_qos = <0x93 0x94 0x95 0x96 0x97 0x98 0x99 0x9a>; - - power-domain@15 { - clocks = <0x02 0x194 0x02 0x1be 0x02 0x1bc>; - reg = <0x0f>; - pm_qos = <0x8c>; - }; - - power-domain@23 { - clocks = <0x02 0x4b 0x02 0x49 0x02 0x1be>; - reg = <0x17>; - pm_qos = <0x9b>; - }; - - power-domain@14 { - clocks = <0x02 0x18f 0x02 0x1be 0x02 0x1bc 0x02 0x190>; - reg = <0x0e>; - pm_qos = <0x8b>; - }; - - power-domain@22 { - clocks = <0x02 0x1ba 0x02 0x1b9>; - reg = <0x16>; - pm_qos = <0x9c>; - }; - }; - - power-domain@38 { - clocks = <0x02 0x3c 0x02 0x3d>; - reg = <0x26>; - }; - - power-domain@8 { - #address-cells = <0x01>; - #size-cells = <0x00>; - reg = <0x08>; - - power-domain@9 { - #address-cells = <0x01>; - clocks = <0x02 0x12f 0x02 0x131 0x02 0x130 0x02 0x126>; - #size-cells = <0x00>; - reg = <0x09>; - pm_qos = <0x82 0x83 0x84>; - - power-domain@11 { - clocks = <0x02 0x12f 0x02 0x131 0x02 0x130>; - reg = <0x0b>; - pm_qos = <0x86>; - }; - - power-domain@10 { - clocks = <0x02 0x12f 0x02 0x131 0x02 0x130>; - reg = <0x0a>; - pm_qos = <0x85>; - }; - }; - }; - - power-domain@26 { - clocks = <0x02 0x22e 0x02 0x22f 0x02 0x22d 0x02 0x218 0x02 0x217 0x02 0x22b 0x02 0x264>; - reg = <0x1a>; - pm_qos = <0xa0 0xa1>; - }; - - power-domain@34 { - clocks = <0x02 0x166 0x02 0x169 0x02 0x16a>; - reg = <0x22>; - }; - - power-domain@24 { - #address-cells = <0x01>; - clocks = <0x02 0x26e 0x02 0x26d 0x02 0x270>; - #size-cells = <0x00>; - reg = <0x18>; - pm_qos = <0x9d 0x9e>; - - power-domain@25 { - clocks = <0x02 0x1f6 0x02 0x1f7 0x02 0x1f5 0x02 0x1f3 0x02 0x1ee 0x02 0x1ed 0x02 0x26d>; - reg = <0x19>; - pm_qos = <0x9f>; - }; - }; - - power-domain@12 { - clocks = <0x02 0x114 0x02 0x115 0x02 0x116>; - reg = <0x0c>; - pm_qos = <0x87 0x88 0x89 0x8a>; - }; - - power-domain@40 { - reg = <0x28>; - pm_qos = <0xb0>; - }; - - power-domain@30 { - clocks = <0x02 0x189 0x02 0x18a>; - reg = <0x1e>; - pm_qos = <0xaa>; - }; - }; - }; - - csi2-dphy3 { - rockchip,hw = <0x2d 0x2e>; - phy-names = "dcphy0\0dcphy1"; - compatible = "rockchip,rk3588-csi2-dphy"; - status = "disabled"; - phys = <0x2f 0x30>; - phandle = <0x212>; - }; - - qos@fdf3e000 { - compatible = "syscon"; - reg = <0x00 0xfdf3e000 0x00 0x20>; - phandle = <0xac>; - }; - - pwm@fd8b0030 { - pinctrl-names = "active"; - pinctrl-0 = <0x81>; - clock-names = "pwm\0pclk"; - interrupts = <0x00 0x158 0x04 0x00 0x159 0x04>; - clocks = <0x02 0x2a5 0x02 0x2a4>; - #pwm-cells = <0x03>; - compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; - status = "disabled"; - reg = <0x00 0xfd8b0030 0x00 0x10>; - phandle = <0x264>; - }; - - rkcif-mipi-lvds2-sditf-vir1 { - compatible = "rockchip,rkcif-sditf"; - status = "disabled"; - rockchip,cif = <0x55>; - phandle = <0x234>; - }; - - syscon@fd5cc000 { - compatible = "rockchip,rk3588-usbdpphy-grf\0syscon"; - reg = <0x00 0xfd5cc000 0x00 0x4000>; - phandle = <0x1c9>; - }; - - vdpu@fdb50400 { - power-domains = <0x60 0x15>; - iommus = <0xb7>; - clock-names = "aclk_vcodec\0hclk_vcodec"; - assigned-clocks = <0x02 0x1c0>; - rockchip,normal-rates = <0x2367b880 0x00>; - assigned-clock-rates = <0x2367b880>; - resets = <0x02 0x2c8 0x02 0x2c9>; - interrupts = <0x00 0x77 0x04>; - clocks = <0x02 0x1c0 0x02 0x1c1>; - rockchip,srv = <0xb8>; - rockchip,taskqueue-node = <0x00>; - rockchip,disable-auto-freq; - compatible = "rockchip,vpu-decoder-v2"; - rockchip,resetgroup-node = <0x00>; - status = "okay"; - interrupt-names = "irq_vdpu"; - rockchip,skip-pmu-idle-request; - reg = <0x00 0xfdb50400 0x00 0x400>; - phandle = <0x267>; - reset-names = "shared_video_a\0shared_video_h"; - }; - - qos@fdf60200 { - compatible = "syscon"; - reg = <0x00 0xfdf60200 0x00 0x20>; - phandle = <0x8e>; - }; - - pwm@febe0030 { - pinctrl-names = "active"; - pinctrl-0 = <0x170>; - clock-names = "pwm\0pclk"; - interrupts = <0x00 0x15c 0x04 0x00 0x15d 0x04>; - clocks = <0x02 0x57 0x02 0x56>; - #pwm-cells = <0x03>; - compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; - status = "disabled"; - reg = <0x00 0xfebe0030 0x00 0x10>; - phandle = <0x2d8>; - }; - - display-subsystem { - memory-region-names = "drm-logo"; - clock-names = "hdmi0_phy_pll\0hdmi1_phy_pll"; - ports = <0x34>; - memory-region = <0x37>; - clocks = <0x35 0x36>; - compatible = "rockchip,display-subsystem"; - phandle = <0x215>; - - route { - - route-edp1 { - logo,kernel = "logo_kernel.bmp"; - logo,uboot = "logo.bmp"; - charge_logo,mode = "center"; - logo,mode = "center"; - status = "disabled"; - phandle = <0x21a>; - }; - - route-hdmi1 { - logo,kernel = "logo_kernel.bmp"; - logo,uboot = "logo.bmp"; - charge_logo,mode = "center"; - connect = <0x3f>; - logo,mode = "center"; - status = "disabled"; - phandle = <0x21e>; - }; - - route-dp1 { - logo,kernel = "logo_kernel.bmp"; - logo,uboot = "logo.bmp"; - charge_logo,mode = "center"; - connect = <0x3e>; - logo,mode = "center"; - status = "disabled"; - phandle = <0x21d>; - }; - - route-dsi1 { - logo,kernel = "logo_kernel.bmp"; - logo,uboot = "logo.bmp"; - charge_logo,mode = "center"; - connect = <0x3a>; - logo,mode = "center"; - status = "disabled"; - phandle = <0x218>; - }; - - route-edp0 { - logo,kernel = "logo_kernel.bmp"; - logo,uboot = "logo.bmp"; - charge_logo,mode = "center"; - connect = <0x3b>; - logo,mode = "center"; - status = "disabled"; - phandle = <0x219>; - }; - - route-hdmi0 { - logo,kernel = "logo_kernel.bmp"; - logo,uboot = "logo.bmp"; - charge_logo,mode = "center"; - connect = <0x3c>; - logo,mode = "center"; - status = "okay"; - phandle = <0x21b>; - }; - - route-dp0 { - logo,kernel = "logo_kernel.bmp"; - logo,uboot = "logo.bmp"; - charge_logo,mode = "center"; - connect = <0x38>; - logo,mode = "center"; - status = "disabled"; - phandle = <0x216>; - }; - - route-rgb { - logo,kernel = "logo_kernel.bmp"; - logo,uboot = "logo.bmp"; - charge_logo,mode = "center"; - connect = <0x3d>; - logo,mode = "center"; - status = "disabled"; - phandle = <0x21c>; - }; - - route-dsi0 { - logo,kernel = "logo_kernel.bmp"; - logo,uboot = "logo.bmp"; - charge_logo,mode = "center"; - connect = <0x39>; - logo,mode = "center"; - status = "disabled"; - phandle = <0x217>; - }; - }; - }; - - serial@febc0000 { - reg-io-width = <0x04>; - pinctrl-names = "default"; - pinctrl-0 = <0x168>; - clock-names = "baudclk\0apb_pclk"; - interrupts = <0x00 0x154 0x04>; - clocks = <0x02 0xd7 0x02 0xb3>; - compatible = "rockchip,rk3588-uart\0snps,dw-apb-uart"; - status = "disabled"; - reg = <0x00 0xfebc0000 0x00 0x100>; - phandle = <0x2d1>; - dmas = <0xf2 0x0b 0xf2 0x0c>; - reg-shift = <0x02>; - }; - - adc-keys { - io-channels = <0x1d9 0x01>; - poll-interval = <0x64>; - keyup-threshold-microvolt = <0x1b7740>; - compatible = "adc-keys"; - status = "okay"; - phandle = <0x49e>; - io-channel-names = "buttons"; - - recovery-key { - press-threshold-microvolt = <0x4268>; - label = "F12"; - linux,code = <0x58>; - }; - }; - - pvtm@fdaf0000 { - #address-cells = <0x01>; - #size-cells = <0x00>; - compatible = "rockchip,rk3588-npu-pvtm"; - reg = <0x00 0xfdaf0000 0x00 0x100>; - - pvtm@3 { - clock-names = "clk\0pclk"; - resets = <0x02 0x1de 0x02 0x1dc>; - clocks = <0x02 0x12b 0x02 0x129>; - reg = <0x03>; - reset-names = "rts\0rst-p"; - }; - }; - - codec-digital@fe500000 { - power-domains = <0x60 0x26>; - pinctrl-names = "default"; - pinctrl-0 = <0x144>; - clock-names = "dac\0pclk"; - resets = <0x02 0x84>; - clocks = <0x02 0x29 0x02 0x2f>; - #sound-dai-cells = <0x00>; - compatible = "rockchip,rk3588-codec-digital\0rockchip,codec-digital-v1"; - status = "disabled"; - rockchip,grf = <0xc8>; - reg = <0x00 0xfe500000 0x00 0x1000>; - phandle = <0x29e>; - reset-names = "reset"; - rockchip,pwm-output-mode; - }; - - pwm@fd8b0020 { - pinctrl-names = "active"; - pinctrl-0 = <0x80>; - clock-names = "pwm\0pclk"; - interrupts = <0x00 0x158 0x04>; - clocks = <0x02 0x2a5 0x02 0x2a4>; - #pwm-cells = <0x03>; - compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; - status = "disabled"; - reg = <0x00 0xfd8b0020 0x00 0x10>; - phandle = <0x263>; - }; - - rkcif-mipi-lvds2 { - iommus = <0x50>; - rockchip,hw = <0x4f>; - compatible = "rockchip,rkcif-mipi-lvds"; - status = "okay"; - phandle = <0x55>; - - port { - - endpoint { - remote-endpoint = <0x54>; - phandle = <0x4e>; - }; - }; - }; - - pwm@febe0020 { - pinctrl-names = "active"; - pinctrl-0 = <0x16f>; - clock-names = "pwm\0pclk"; - interrupts = <0x00 0x15c 0x04>; - clocks = <0x02 0x57 0x02 0x56>; - #pwm-cells = <0x03>; - compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; - status = "disabled"; - reg = <0x00 0xfebe0020 0x00 0x10>; - phandle = <0x2d7>; - }; - - vcc-fan-pwr-en-regulator { - regulator-boot-on; - gpio = <0x182 0x0b 0x00>; - regulator-always-on; - enable-active-high; - regulator-name = "vcc_fan_pwr_en"; - compatible = "regulator-fixed"; - status = "disabled"; - phandle = <0x4a4>; - }; - - iommu@fdba0800 { - power-domains = <0x60 0x15>; - clock-names = "aclk\0iface"; - interrupts = <0x00 0x79 0x04>; - clocks = <0x02 0x1ac 0x02 0x1ad>; - #iommu-cells = <0x00>; - compatible = "rockchip,iommu-v2"; - status = "okay"; - interrupt-names = "irq_jpege0_mmu"; - reg = <0x00 0xfdba0800 0x00 0x40>; - phandle = <0xbc>; - }; - - rkcif-mipi-lvds1-sditf-vir2 { - compatible = "rockchip,rkcif-sditf"; - status = "disabled"; - rockchip,cif = <0x53>; - phandle = <0x231>; - }; - - arm-pmu { - interrupt-affinity = <0x06 0x07 0x08 0x09 0x0a 0x0b 0x0c 0x0d>; - interrupts = <0x01 0x07 0x08>; - compatible = "arm,armv8-pmuv3"; - phandle = <0x20c>; - }; - - pvtm@fda40000 { - #address-cells = <0x01>; - #size-cells = <0x00>; - compatible = "rockchip,rk3588-bigcore0-pvtm"; - reg = <0x00 0xfda40000 0x00 0x100>; - - pvtm@0 { - clock-names = "clk\0pclk"; - clocks = <0x02 0x2c6 0x02 0x15>; - reg = <0x00>; - }; - }; - - pwm@fd8b0010 { - pinctrl-names = "active"; - pinctrl-0 = <0x7f>; - clock-names = "pwm\0pclk"; - interrupts = <0x00 0x158 0x04>; - clocks = <0x02 0x2a5 0x02 0x2a4>; - #pwm-cells = <0x03>; - compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; - status = "disabled"; - reg = <0x00 0xfd8b0010 0x00 0x10>; - phandle = <0x262>; - }; - - i2s@fddc0000 { - power-domains = <0x60 0x19>; - clock-names = "mclk_tx\0mclk_rx\0hclk"; - assigned-clocks = <0x02 0x1f9>; - assigned-clock-parents = <0x02 0x05>; - resets = <0x02 0x38d>; - interrupts = <0x00 0xb8 0x04>; - clocks = <0x02 0x1fb 0x02 0x1fb 0x02 0x1f0>; - dma-names = "tx"; - #sound-dai-cells = <0x00>; - compatible = "rockchip,rk3588-i2s-tdm"; - rockchip,playback-only; - status = "disabled"; - reg = <0x00 0xfddc0000 0x00 0x1000>; - phandle = <0x27d>; - dmas = <0xf2 0x00>; - reset-names = "tx-m"; - }; - - qos@fdf61400 { - compatible = "syscon"; - reg = <0x00 0xfdf61400 0x00 0x20>; - phandle = <0x92>; - }; - - syscon@fd5d4000 { - #address-cells = <0x01>; - #size-cells = <0x01>; - compatible = "rockchip,rk3588-usb2phy-grf\0syscon\0simple-mfd"; - reg = <0x00 0xfd5d4000 0x00 0x4000>; - phandle = <0x1c8>; - - usb2-phy@4000 { - clock-output-names = "usb480m_phy1"; - clock-names = "phyclk"; - resets = <0x02 0xc0048 0x02 0x489>; - interrupts = <0x00 0x18a 0x04>; - clocks = <0x02 0x2b5>; - #clock-cells = <0x00>; - rockchip,usbctrl-grf = <0x74>; - compatible = "rockchip,rk3588-usb2phy"; - status = "okay"; - reg = <0x4000 0x10>; - phandle = <0x1ca>; - reset-names = "phy\0apb"; - - otg-port { - phy-supply = <0x75>; - #phy-cells = <0x00>; - status = "okay"; - phandle = <0x1a3>; - }; - }; - }; - - rkisp0-vir1 { - rockchip,hw = <0x58>; - compatible = "rockchip,rkisp-vir"; - status = "disabled"; - phandle = <0x23c>; - }; - - pwm@febe0010 { - pinctrl-names = "active"; - pinctrl-0 = <0x16e>; - clock-names = "pwm\0pclk"; - interrupts = <0x00 0x15c 0x04>; - clocks = <0x02 0x57 0x02 0x56>; - #pwm-cells = <0x03>; - compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; - status = "disabled"; - reg = <0x00 0xfebe0010 0x00 0x10>; - phandle = <0x2d6>; - }; - - thermal-zones { - phandle = <0x248>; - - bigcore1-thermal { - polling-delay = <0x3e8>; - polling-delay-passive = <0x14>; - thermal-sensors = <0x5d 0x02>; - phandle = <0x24d>; - }; - - soc-thermal { - polling-delay = <0x3e8>; - polling-delay-passive = <0x14>; - thermal-sensors = <0x5d 0x00>; - sustainable-power = <0x834>; - phandle = <0x249>; - - trips { - - trip-point-0 { - temperature = <0x124f8>; - hysteresis = <0x7d0>; - type = "passive"; - phandle = <0x24a>; - }; - - trip-point-1 { - temperature = <0x14c08>; - hysteresis = <0x7d0>; - type = "passive"; - phandle = <0x5e>; - }; - - soc-crit { - temperature = <0x1c138>; - hysteresis = <0x7d0>; - type = "critical"; - phandle = <0x24b>; - }; - }; - - cooling-maps { - - map0 { - trip = <0x5e>; - cooling-device = <0x06 0xffffffff 0xffffffff>; - contribution = <0x400>; - }; - - map3 { - trip = <0x5e>; - cooling-device = <0x5f 0xffffffff 0xffffffff>; - contribution = <0x400>; - }; - }; - }; - - npu-thermal { - polling-delay = <0x3e8>; - polling-delay-passive = <0x14>; - thermal-sensors = <0x5d 0x06>; - phandle = <0x251>; - }; - - center-thermal { - polling-delay = <0x3e8>; - polling-delay-passive = <0x14>; - thermal-sensors = <0x5d 0x04>; - phandle = <0x24f>; - }; - - gpu-thermal { - polling-delay = <0x3e8>; - polling-delay-passive = <0x14>; - thermal-sensors = <0x5d 0x05>; - phandle = <0x250>; - }; - - littlecore-thermal { - polling-delay = <0x3e8>; - polling-delay-passive = <0x14>; - thermal-sensors = <0x5d 0x03>; - phandle = <0x24e>; - }; - - bigcore0-thermal { - polling-delay = <0x3e8>; - polling-delay-passive = <0x14>; - thermal-sensors = <0x5d 0x01>; - phandle = <0x24c>; - }; - }; - - iommu@fdbdf000 { - power-domains = <0x60 0x10>; - rockchip,shootdown-entire; - clock-names = "aclk\0iface"; - interrupts = <0x00 0x63 0x04 0x00 0x64 0x04>; - clocks = <0x02 0x1c5 0x02 0x1c4>; - rockchip,enable-cmd-retry; - #iommu-cells = <0x00>; - compatible = "rockchip,iommu-v2"; - rockchip,disable-mmu-reset; - status = "okay"; - interrupt-names = "irq_rkvenc0_mmu0\0irq_rkvenc0_mmu1"; - reg = <0x00 0xfdbdf000 0x00 0x40 0x00 0xfdbdf040 0x00 0x40>; - phandle = <0xc2>; - }; - - serial@feb50000 { - reg-io-width = <0x04>; - pinctrl-names = "default"; - pinctrl-0 = <0x161>; - clock-names = "baudclk\0apb_pclk"; - interrupts = <0x00 0x14d 0x04>; - clocks = <0x02 0xbb 0x02 0xac>; - compatible = "rockchip,rk3588-uart\0snps,dw-apb-uart"; - status = "disabled"; - reg = <0x00 0xfeb50000 0x00 0x100>; - phandle = <0x2ca>; - dmas = <0x7c 0x0a 0x7c 0x0b>; - reg-shift = <0x02>; - }; - - iommu@fdcd0f00 { - power-domains = <0x60 0x1d>; - clock-names = "aclk\0iface\0pclk"; - interrupts = <0x00 0x8c 0x04>; - clocks = <0x02 0x1d5 0x02 0x1d6 0x02 0x1d7>; - #iommu-cells = <0x00>; - compatible = "rockchip,iommu-v2"; - rockchip,disable-mmu-reset; - status = "disabled"; - interrupt-names = "fec0_mmu"; - reg = <0x00 0xfdcd0f00 0x00 0x100>; - phandle = <0xd2>; - }; - - vcc5v0-host { - regulator-max-microvolt = <0x4c4b40>; - regulator-boot-on; - gpio = <0x182 0x02 0x00>; - regulator-always-on; - enable-active-high; - regulator-min-microvolt = <0x4c4b40>; - regulator-name = "vcc5v0_host"; - compatible = "regulator-fixed"; - status = "okay"; - phandle = <0x75>; - vin-supply = <0x1dd>; - }; - - qos@fdf66a00 { - compatible = "syscon"; - reg = <0x00 0xfdf66a00 0x00 0x20>; - phandle = <0x98>; - }; - - phy@fed90000 { - clock-names = "refclk\0immortal\0pclk\0utmi"; - resets = <0x02 0x2f 0x02 0x30 0x02 0x31 0x02 0x32 0x02 0x484>; - clocks = <0x02 0x2b6 0x02 0x280 0x02 0x26a 0x1ca>; - compatible = "rockchip,rk3588-usbdp-phy"; - status = "okay"; - rockchip,dp-lane-mux = <0x02 0x03>; - reg = <0x00 0xfed90000 0x00 0x10000>; - phandle = <0x48b>; - rockchip,usb-grf = <0x74>; - reset-names = "init\0cmn\0lane\0pcs_apb\0pma_apb"; - rockchip,u2phy-grf = <0x1c8>; - rockchip,usbdpphy-grf = <0x1c9>; - rockchip,vo-grf = <0xf5>; - - dp-port { - #phy-cells = <0x00>; - status = "okay"; - phandle = <0x1a5>; - }; - - u3-port { - #phy-cells = <0x00>; - status = "okay"; - phandle = <0x1a4>; - }; - }; - - jpege-core@fdba0000 { - power-domains = <0x60 0x15>; - iommus = <0xbc>; - rockchip,ccu = <0xbd>; - clock-names = "aclk_vcodec\0hclk_vcodec"; - assigned-clocks = <0x02 0x1ac>; - rockchip,normal-rates = <0x2367b880 0x00>; - assigned-clock-rates = <0x2367b880>; - resets = <0x02 0x2ca 0x02 0x2cb>; - interrupts = <0x00 0x7a 0x04>; - clocks = <0x02 0x1ac 0x02 0x1ad>; - rockchip,srv = <0xb8>; - rockchip,taskqueue-node = <0x02>; - rockchip,disable-auto-freq; - compatible = "rockchip,vpu-jpege-core"; - status = "okay"; - interrupt-names = "irq_jpege0"; - rockchip,skip-pmu-idle-request; - reg = <0x00 0xfdba0000 0x00 0x400>; - phandle = <0x26d>; - reset-names = "video_a\0video_h"; - }; - - vcc5v0-sys { - regulator-max-microvolt = <0x4c4b40>; - regulator-boot-on; - regulator-always-on; - regulator-min-microvolt = <0x4c4b40>; - regulator-name = "vcc5v0_sys"; - compatible = "regulator-fixed"; - phandle = <0x78>; - vin-supply = <0x1cd>; - }; - - pwm@fd8b0000 { - pinctrl-names = "active"; - pinctrl-0 = <0x7e>; - clock-names = "pwm\0pclk"; - interrupts = <0x00 0x158 0x04>; - clocks = <0x02 0x2a5 0x02 0x2a4>; - #pwm-cells = <0x03>; - compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; - status = "disabled"; - reg = <0x00 0xfd8b0000 0x00 0x10>; - phandle = <0x261>; - }; - - vop@fdd90000 { - power-domains = <0x60 0x18>; - iommus = <0xd6>; - rockchip,vop-grf = <0xd7>; - clock-names = "aclk_vop\0hclk_vop\0dclk_vp0\0dclk_vp1\0dclk_vp2\0dclk_vp3\0pclk_vop\0dclk_src_vp0\0dclk_src_vp1\0dclk_src_vp2"; - reg-names = "regs\0gamma_lut"; - assigned-clocks = <0x02 0x270>; - assigned-clock-rates = <0x2cb41780>; - resets = <0x02 0x349 0x02 0x348 0x02 0x34d 0x02 0x350 0x02 0x351 0x02 0x352>; - interrupts = <0x00 0x9c 0x04>; - clocks = <0x02 0x270 0x02 0x26f 0x02 0x274 0x02 0x275 0x02 0x276 0x02 0x277 0x02 0x26e 0x02 0x271 0x02 0x272 0x02 0x273>; - compatible = "rockchip,rk3588-vop"; - rockchip,pmu = <0xd9>; - status = "okay"; - rockchip,grf = <0xc8>; - reg = <0x00 0xfdd90000 0x00 0x4200 0x00 0xfdd95000 0x00 0x1000>; - phandle = <0x278>; - rockchip,vo1-grf = <0xd8>; - reset-names = "axi\0ahb\0dclk_vp0\0dclk_vp1\0dclk_vp2\0dclk_vp3"; - - ports { - #address-cells = <0x01>; - #size-cells = <0x00>; - phandle = <0x34>; - - port@0 { - rockchip,primary-plane = <0x02>; - rockchip,plane-mask = <0x05>; - #address-cells = <0x01>; - assigned-clocks = <0x02 0x270>; - assigned-clock-rates = <0x2faf0800>; - #size-cells = <0x00>; - reg = <0x00>; - phandle = <0x279>; - - endpoint@5 { - remote-endpoint = <0xdf>; - reg = <0x05>; - phandle = <0x1ad>; - }; - - endpoint@3 { - remote-endpoint = <0xdd>; - reg = <0x03>; - phandle = <0x1a6>; - }; - - endpoint@1 { - remote-endpoint = <0xdb>; - reg = <0x01>; - phandle = <0x102>; - }; - - endpoint@4 { - remote-endpoint = <0xde>; - reg = <0x04>; - phandle = <0x1b0>; - }; - - endpoint@2 { - remote-endpoint = <0xdc>; - reg = <0x02>; - phandle = <0x3c>; - }; - - endpoint@0 { - remote-endpoint = <0xda>; - reg = <0x00>; - phandle = <0xf7>; - }; - }; - - port@3 { - rockchip,primary-plane = <0x09>; - rockchip,plane-mask = <0x280>; - #address-cells = <0x01>; - #size-cells = <0x00>; - reg = <0x03>; - phandle = <0x27c>; - - endpoint@1 { - remote-endpoint = <0xef>; - reg = <0x01>; - phandle = <0x3a>; - }; - - endpoint@2 { - remote-endpoint = <0xf0>; - reg = <0x02>; - phandle = <0x3d>; - }; - - endpoint@0 { - remote-endpoint = <0xee>; - reg = <0x00>; - phandle = <0x39>; - }; - }; - - port@1 { - rockchip,primary-plane = <0x03>; - rockchip,plane-mask = <0x0a>; - #address-cells = <0x01>; - #size-cells = <0x00>; - reg = <0x01>; - phandle = <0x27a>; - - endpoint@5 { - remote-endpoint = <0xe5>; - reg = <0x05>; - phandle = <0x3f>; - }; - - endpoint@3 { - remote-endpoint = <0xe3>; - reg = <0x03>; - phandle = <0x3e>; - }; - - endpoint@1 { - remote-endpoint = <0xe1>; - reg = <0x01>; - phandle = <0x103>; - }; - - endpoint@4 { - remote-endpoint = <0xe4>; - reg = <0x04>; - phandle = <0x1b1>; - }; - - endpoint@2 { - remote-endpoint = <0xe2>; - reg = <0x02>; - phandle = <0xff>; - }; - - endpoint@0 { - remote-endpoint = <0xe0>; - reg = <0x00>; - phandle = <0x38>; - }; - }; - - port@2 { - rockchip,primary-plane = <0x08>; - rockchip,plane-mask = <0x140>; - #address-cells = <0x01>; - assigned-clocks = <0x02 0x273>; - assigned-clock-parents = <0x02 0x04>; - #size-cells = <0x00>; - reg = <0x02>; - phandle = <0x27b>; - - endpoint@5 { - remote-endpoint = <0xeb>; - reg = <0x05>; - phandle = <0x1a7>; - }; - - endpoint@3 { - remote-endpoint = <0xe9>; - reg = <0x03>; - phandle = <0xf3>; - }; - - endpoint@1 { - remote-endpoint = <0xe7>; - reg = <0x01>; - phandle = <0x3b>; - }; - - endpoint@6 { - remote-endpoint = <0xec>; - reg = <0x06>; - phandle = <0x1b2>; - }; - - endpoint@4 { - remote-endpoint = <0xea>; - reg = <0x04>; - phandle = <0xf4>; - }; - - endpoint@2 { - remote-endpoint = <0xe8>; - reg = <0x02>; - phandle = <0x100>; - }; - - endpoint@0 { - remote-endpoint = <0xe6>; - reg = <0x00>; - phandle = <0xf8>; - }; - - endpoint@7 { - remote-endpoint = <0xed>; - reg = <0x07>; - phandle = <0x1ae>; - }; - }; - }; - }; - - csi2-dphy1 { - rockchip,hw = <0x2d 0x2e>; - phy-names = "dcphy0\0dcphy1"; - compatible = "rockchip,rk3588-csi2-dphy"; - status = "disabled"; - phys = <0x2f 0x30>; - phandle = <0x210>; - }; - - pwm@febe0000 { - pinctrl-names = "active"; - pinctrl-0 = <0x16d>; - clock-names = "pwm\0pclk"; - interrupts = <0x00 0x15c 0x04>; - clocks = <0x02 0x57 0x02 0x56>; - #pwm-cells = <0x03>; - compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; - status = "disabled"; - reg = <0x00 0xfebe0000 0x00 0x10>; - phandle = <0x2d5>; - }; - - clocks { - #address-cells = <0x02>; - #size-cells = <0x02>; - compatible = "simple-bus"; - ranges; - - hclk_nvm@fd7c087c { - clock-names = "link"; - clocks = <0x02 0x141>; - #clock-cells = <0x00>; - #power-domain-cells = <0x01>; - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c087c 0x00 0x10>; - phandle = <0x03>; - }; - - mclkin-i2s0 { - clock-output-names = "i2s0_mclkin"; - #clock-cells = <0x00>; - clock-frequency = <0x00>; - compatible = "fixed-clock"; - phandle = <0x204>; - }; - - hclk_rkvenc1_pre@fd7c08c0 { - clock-names = "link"; - clocks = <0x02 0x1c4>; - #clock-cells = <0x00>; - #power-domain-cells = <0x01>; - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c08c0 0x00 0x10>; - phandle = <0x1fe>; - }; - - mclkout-i2s1@fd58c318 { - rockchip,clk-ignore-unused; - clock-output-names = "i2s1_mclkout_to_io"; - clocks = <0x02 0x291>; - rockchip,bit-set-to-disable; - #clock-cells = <0x00>; - compatible = "rockchip,clk-out"; - reg = <0x00 0xfd58c318 0x00 0x04>; - phandle = <0x208>; - rockchip,bit-shift = <0x01>; - }; - - mclkout-i2s1@fd58a000 { - rockchip,clk-ignore-unused; - clock-output-names = "i2s1m1_mclkout_to_io"; - clocks = <0x02 0x291>; - #clock-cells = <0x00>; - compatible = "rockchip,clk-out"; - reg = <0x00 0xfd58a000 0x00 0x04>; - phandle = <0x209>; - rockchip,bit-shift = <0x06>; - }; - - aclk_hdcp0_pre@fd7c08dc { - clock-names = "link"; - clocks = <0x02 0x26c>; - #clock-cells = <0x00>; - #power-domain-cells = <0x01>; - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c08dc 0x00 0x10>; - phandle = <0x1ff>; - }; - - xin32k { - clock-output-names = "xin32k"; - #clock-cells = <0x00>; - clock-frequency = <0x8000>; - compatible = "fixed-clock"; - phandle = <0x1f2>; - }; - - aclk_usb@fd7c08a8 { - clock-names = "link"; - clocks = <0x02 0x263>; - #clock-cells = <0x00>; - #power-domain-cells = <0x01>; - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c08a8 0x00 0x10>; - phandle = <0x6a>; - }; - - hclk_usb@fd7c08a8 { - clock-names = "link"; - clocks = <0x02 0x264>; - #clock-cells = <0x00>; - #power-domain-cells = <0x01>; - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c08a8 0x00 0x10>; - phandle = <0x1f5>; - }; - - hclk_vo0@fd7c08dc { - clock-names = "link"; - clocks = <0x02 0x26d>; - #clock-cells = <0x00>; - #power-domain-cells = <0x01>; - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c08dc 0x00 0x10>; - phandle = <0x04>; - }; - - pclk_av1_pre@fd7c0910 { - clock-names = "link"; - clocks = <0x02 0x1be>; - #clock-cells = <0x00>; - #power-domain-cells = <0x01>; - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c0910 0x00 0x10>; - phandle = <0x201>; - }; - - mclkout-i2s2@fd58c318 { - rockchip,clk-ignore-unused; - clock-output-names = "i2s2_mclkout_to_io"; - clocks = <0x02 0x28>; - rockchip,bit-set-to-disable; - #clock-cells = <0x00>; - compatible = "rockchip,clk-out"; - reg = <0x00 0xfd58c318 0x00 0x04>; - phandle = <0x20a>; - rockchip,bit-shift = <0x02>; - }; - - aclk_vdpu_low_pre@fd7c08b0 { - clock-names = "link"; - clocks = <0x02 0x1bc>; - #clock-cells = <0x00>; - #power-domain-cells = <0x01>; - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c08b0 0x00 0x10>; - phandle = <0x1f4>; - }; - - mclkin-i2s3 { - clock-output-names = "i2s3_mclkin"; - #clock-cells = <0x00>; - clock-frequency = <0x00>; - compatible = "fixed-clock"; - phandle = <0x207>; - }; - - spll { - clock-output-names = "spll"; - #clock-cells = <0x00>; - clock-frequency = <0x29d7ab80>; - compatible = "fixed-clock"; - phandle = <0x1f1>; - }; - - xin24m { - clock-output-names = "xin24m"; - #clock-cells = <0x00>; - clock-frequency = <0x16e3600>; - compatible = "fixed-clock"; - phandle = <0x1f3>; - }; - - aclk_av1_pre@fd7c0910 { - clock-names = "link"; - clocks = <0x02 0x1bc>; - #clock-cells = <0x00>; - #power-domain-cells = <0x01>; - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c0910 0x00 0x10>; - phandle = <0x202>; - }; - - pclk_vo0_grf@fd7c08dc { - clock-names = "link"; - clocks = <0x04>; - #clock-cells = <0x00>; - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c08dc 0x00 0x04>; - phandle = <0x72>; - }; - - aclk_jpeg_decoder_pre@fd7c08b0 { - clock-names = "link"; - clocks = <0x02 0x1bc>; - #clock-cells = <0x00>; - #power-domain-cells = <0x01>; - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c08b0 0x00 0x10>; - phandle = <0x1fc>; - }; - - aclk_hdcp1_pre@fd7c08ec { - clock-names = "link"; - clocks = <0x02 0x263>; - #clock-cells = <0x00>; - #power-domain-cells = <0x01>; - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c08ec 0x00 0x10>; - phandle = <0x200>; - }; - - mclkin-i2s1 { - clock-output-names = "i2s1_mclkin"; - #clock-cells = <0x00>; - clock-frequency = <0x00>; - compatible = "fixed-clock"; - phandle = <0x205>; - }; - - hclk_vo1@fd7c08ec { - clock-names = "link"; - clocks = <0x02 0x264>; - #clock-cells = <0x00>; - #power-domain-cells = <0x01>; - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c08ec 0x00 0x10>; - phandle = <0x05>; - }; - - mclkout-i2s3@fd58c318 { - rockchip,clk-ignore-unused; - clock-output-names = "i2s3_mclkout_to_io"; - clocks = <0x02 0x2e>; - rockchip,bit-set-to-disable; - #clock-cells = <0x00>; - compatible = "rockchip,clk-out"; - reg = <0x00 0xfd58c318 0x00 0x04>; - phandle = <0x20b>; - rockchip,bit-shift = <0x07>; - }; - - aclk_rkvdec0_pre@fd7c08a0 { - clock-names = "link"; - clocks = <0x02 0x1bc>; - #clock-cells = <0x00>; - #power-domain-cells = <0x01>; - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c08a0 0x00 0x10>; - phandle = <0x1f8>; - }; - - aclk_isp1_pre@fd7c0868 { - clock-names = "link"; - clocks = <0x02 0x1e0>; - #clock-cells = <0x00>; - #power-domain-cells = <0x01>; - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c0868 0x00 0x10>; - phandle = <0x1f7>; - }; - - pclk_vo1_grf@fd7c08ec { - clock-names = "link"; - clocks = <0x05>; - #clock-cells = <0x00>; - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c08ec 0x00 0x04>; - phandle = <0x73>; - }; - - aclk_rkvdec1_pre@fd7c08a4 { - clock-names = "link"; - clocks = <0x02 0x1bc>; - #clock-cells = <0x00>; - #power-domain-cells = <0x01>; - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c08a4 0x00 0x10>; - phandle = <0x1fa>; - }; - - hclk_rkvdec0_pre@fd7c08a0 { - clock-names = "link"; - clocks = <0x02 0x1be>; - #clock-cells = <0x00>; - #power-domain-cells = <0x01>; - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c08a0 0x00 0x10>; - phandle = <0x1f9>; - }; - - hclk_sdio_pre@fd7c092c { - clock-names = "link"; - clocks = <0x03>; - #clock-cells = <0x00>; - #power-domain-cells = <0x01>; - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c092c 0x00 0x10>; - phandle = <0x203>; - }; - - hclk_rkvdec1_pre@fd7c08a4 { - clock-names = "link"; - clocks = <0x02 0x1be>; - #clock-cells = <0x00>; - #power-domain-cells = <0x01>; - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c08a4 0x00 0x10>; - phandle = <0x1fb>; - }; - - hclk_isp1_pre@fd7c0868 { - clock-names = "link"; - clocks = <0x02 0x1e1>; - #clock-cells = <0x00>; - #power-domain-cells = <0x01>; - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c0868 0x00 0x10>; - phandle = <0x1f6>; - }; - - mclkout-i2s0@fd58c318 { - rockchip,clk-ignore-unused; - clock-output-names = "i2s0_mclkout_to_io"; - clocks = <0x02 0x39>; - rockchip,bit-set-to-disable; - #clock-cells = <0x00>; - compatible = "rockchip,clk-out"; - reg = <0x00 0xfd58c318 0x00 0x04>; - phandle = <0x179>; - rockchip,bit-shift = <0x00>; - }; - - mclkin-i2s2 { - clock-output-names = "i2s2_mclkin"; - #clock-cells = <0x00>; - clock-frequency = <0x00>; - compatible = "fixed-clock"; - phandle = <0x206>; - }; - - aclk_rkvenc1_pre@fd7c08c0 { - clock-names = "link"; - clocks = <0x02 0x1c5>; - #clock-cells = <0x00>; - #power-domain-cells = <0x01>; - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c08c0 0x00 0x10>; - phandle = <0x1fd>; - }; - }; - - usb@fc8c0000 { - power-domains = <0x60 0x1f>; - phy-names = "usb2-phy"; - clock-names = "usbhost\0arbiter\0utmi\0alk_usb"; - interrupts = <0x00 0xdb 0x04>; - clocks = <0x02 0x19f 0x02 0x1a0 0x6d 0x6a>; - compatible = "rockchip,rk3588-ohci\0generic-ohci"; - status = "okay"; - phys = <0x6f>; - reg = <0x00 0xfc8c0000 0x00 0x40000>; - phandle = <0x6e>; - }; - - qos@fdf40000 { - compatible = "syscon"; - reg = <0x00 0xfdf40000 0x00 0x20>; - phandle = <0xa8>; - }; - - mipi0-csi2 { - rockchip,hw = <0x47 0x48 0x49 0x4a 0x4b 0x4c>; - compatible = "rockchip,rk3588-mipi-csi2"; - status = "disabled"; - phandle = <0x224>; - }; - - cluster1-opp-table { - rockchip,pvtm-offset = <0x18>; - rockchip,pvtm-sample-time = <0x44c>; - rockchip,pvtm-hw = <0x06>; - nvmem-cells = <0x24 0x25 0x21>; - rockchip,low-temp = <0x2710>; - rockchip,pvtm-voltage-sel-hw = <0x00 0x603 0x00 0x604 0x61c 0x01 0x61d 0x635 0x02 0x636 0x64e 0x03 0x64f 0x66c 0x04 0x66d 0x68a 0x05 0x68b 0x6a8 0x06 0x6a9 0x270f 0x07>; - rockchip,pvtm-thermal-zone = "soc-thermal"; - rockchip,pvtm-low-len-sel = <0x03>; - rockchip,high-temp-max-freq = <0x21b100>; - opp-shared; - rockchip,reboot-freq = <0x1b7740>; - rockchip,pvtm-freq = <0x188940>; - rockchip,pvtm-ref-temp = <0x19>; - low-volt-mem-read-margin = <0x04>; - volt-mem-read-margin = <0xd0bd8 0x01 0xbac48 0x02 0xa4cb8 0x03 0x78d98 0x04>; - compatible = "operating-points-v2"; - rockchip,low-temp-min-volt = <0xb71b0>; - rockchip,grf = <0x26>; - nvmem-cell-names = "leakage\0opp-info\0specification_serial_number"; - rockchip,pvtm-voltage-sel = <0x00 0x63b 0x00 0x63c 0x64f 0x01 0x650 0x668 0x02 0x669 0x68b 0x03 0x68c 0x6ae 0x04 0x6af 0x6cf 0x05 0x6d0 0x6f0 0x06 0x6f1 0x270f 0x07>; - phandle = <0x16>; - rockchip,idle-threshold-freq = <0x21b100>; - rockchip,pvtm-temp-prop = <0x10e 0x10e>; - rockchip,temp-hysteresis = <0x1388>; - rockchip,high-temp = <0x14c08>; - rockchip,pvtm-pvtpll; - rockchip,supported-hw; - intermediate-threshold-freq = <0xf6180>; - rockchip,pvtm-volt = <0xb71b0>; - - opp-j-m-2016000000 { - opp-microvolt = <0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0>; - opp-microvolt-L6 = <0xd8acc 0xd8acc 0xe7ef0 0xd8acc 0xd8acc 0xe7ef0>; - opp-microvolt-L4 = <0xdec74 0xdec74 0xe7ef0 0xdec74 0xdec74 0xe7ef0>; - opp-microvolt-L2 = <0xe4e1c 0xe4e1c 0xe7ef0 0xe4e1c 0xe4e1c 0xe7ef0>; - opp-hz = <0x00 0x7829b800>; - opp-supported-hw = <0x06 0xffff>; - opp-microvolt-L7 = <0xd59f8 0xd59f8 0xe7ef0 0xd59f8 0xd59f8 0xe7ef0>; - opp-microvolt-L5 = <0xdbba0 0xdbba0 0xe7ef0 0xdbba0 0xdbba0 0xe7ef0>; - opp-microvolt-L3 = <0xe1d48 0xe1d48 0xe7ef0 0xe1d48 0xe1d48 0xe7ef0>; - clock-latency-ns = <0x9c40>; - opp-microvolt-L1 = <0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0>; - }; - - opp-1200000000 { - opp-microvolt = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; - opp-hz = <0x00 0x47868c00>; - opp-supported-hw = <0xf9 0xffff>; - clock-latency-ns = <0x9c40>; - }; - - opp-j-m-1416000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - opp-hz = <0x00 0x54667200>; - opp-microvolt-L0 = <0xba284 0xba284 0xe7ef0 0xba284 0xba284 0xe7ef0>; - opp-supported-hw = <0x06 0xffff>; - opp-suspend; - clock-latency-ns = <0x9c40>; - }; - - opp-1008000000 { - opp-microvolt = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; - opp-hz = <0x00 0x3c14dc00>; - opp-supported-hw = <0xf9 0xffff>; - clock-latency-ns = <0x9c40>; - }; - - opp-2256000000 { - opp-microvolt = <0xf4240 0xf4240 0xf4240 0xf4240 0xf4240 0xf4240>; - opp-hz = <0x00 0x8677d400>; - opp-supported-hw = <0xf9 0x13>; - clock-latency-ns = <0x9c40>; - }; - - opp-j-m-1200000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - opp-hz = <0x00 0x47868c00>; - opp-supported-hw = <0x06 0xffff>; - clock-latency-ns = <0x9c40>; - }; - - opp-j-m-1008000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - opp-hz = <0x00 0x3c14dc00>; - opp-supported-hw = <0x06 0xffff>; - clock-latency-ns = <0x9c40>; - }; - - opp-j-m-816000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - opp-hz = <0x00 0x30a32c00>; - opp-supported-hw = <0x06 0xffff>; - clock-latency-ns = <0x9c40>; - }; - - opp-2400000000 { - opp-microvolt = <0xf4240 0xf4240 0xf4240 0xf4240 0xf4240 0xf4240>; - opp-hz = <0x00 0x8f0d1800>; - opp-supported-hw = <0xf9 0x80>; - clock-latency-ns = <0x9c40>; - }; - - opp-1800000000 { - opp-microvolt = <0xcf850 0xcf850 0xf4240 0xcf850 0xcf850 0xf4240>; - opp-microvolt-L6 = <0xbd358 0xbd358 0xf4240 0xbd358 0xbd358 0xf4240>; - opp-microvolt-L4 = <0xc3500 0xc3500 0xf4240 0xc3500 0xc3500 0xf4240>; - opp-microvolt-L2 = <0xc96a8 0xc96a8 0xf4240 0xc96a8 0xc96a8 0xf4240>; - opp-hz = <0x00 0x6b49d200>; - opp-supported-hw = <0xf9 0xffff>; - opp-microvolt-L7 = <0xba284 0xba284 0xf4240 0xba284 0xba284 0xf4240>; - opp-microvolt-L5 = <0xc042c 0xc042c 0xf4240 0xc042c 0xc042c 0xf4240>; - opp-microvolt-L3 = <0xc65d4 0xc65d4 0xf4240 0xc65d4 0xc65d4 0xf4240>; - clock-latency-ns = <0x9c40>; - opp-microvolt-L1 = <0xcc77c 0xcc77c 0xf4240 0xcc77c 0xcc77c 0xf4240>; - }; - - opp-j-m-600000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - opp-hz = <0x00 0x23c34600>; - opp-supported-hw = <0x06 0xffff>; - clock-latency-ns = <0x9c40>; - }; - - opp-2208000000 { - opp-microvolt = <0xf116c 0xf116c 0xf4240 0xf116c 0xf116c 0xf4240>; - opp-microvolt-L6 = <0xe1d48 0xe1d48 0xf4240 0xe1d48 0xe1d48 0xf4240>; - opp-microvolt-L4 = <0xeafc4 0xeafc4 0xf4240 0xeafc4 0xeafc4 0xf4240>; - opp-microvolt-L2 = <0xeafc4 0xeafc4 0xf4240 0xeafc4 0xeafc4 0xf4240>; - opp-hz = <0x00 0x839b6800>; - opp-supported-hw = <0xf9 0xffff>; - opp-microvolt-L7 = <0xdec74 0xdec74 0xf4240 0xdec74 0xdec74 0xf4240>; - opp-microvolt-L5 = <0xe7ef0 0xe7ef0 0xf4240 0xe7ef0 0xe7ef0 0xf4240>; - opp-microvolt-L3 = <0xe7ef0 0xe7ef0 0xf4240 0xe7ef0 0xe7ef0 0xf4240>; - clock-latency-ns = <0x9c40>; - opp-microvolt-L1 = <0xee098 0xee098 0xf4240 0xee098 0xee098 0xf4240>; - }; - - opp-1608000000 { - opp-microvolt = <0xba284 0xba284 0xf4240 0xba284 0xba284 0xf4240>; - opp-microvolt-L6 = <0xaae60 0xaae60 0xf4240 0xaae60 0xaae60 0xf4240>; - opp-microvolt-L4 = <0xb1008 0xb1008 0xf4240 0xb1008 0xb1008 0xf4240>; - opp-microvolt-L2 = <0xb71b0 0xb71b0 0xf4240 0xb71b0 0xb71b0 0xf4240>; - opp-hz = <0x00 0x5fd82200>; - opp-supported-hw = <0xf9 0xffff>; - opp-microvolt-L7 = <0xaae60 0xaae60 0xf4240 0xaae60 0xaae60 0xf4240>; - opp-microvolt-L5 = <0xadf34 0xadf34 0xf4240 0xadf34 0xadf34 0xf4240>; - opp-microvolt-L3 = <0xb40dc 0xb40dc 0xf4240 0xb40dc 0xb40dc 0xf4240>; - clock-latency-ns = <0x9c40>; - }; - - opp-j-m-408000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - opp-hz = <0x00 0x18519600>; - opp-supported-hw = <0x06 0xffff>; - clock-latency-ns = <0x9c40>; - }; - - opp-j-m-1800000000 { - opp-microvolt = <0xd59f8 0xd59f8 0xe7ef0 0xd59f8 0xd59f8 0xe7ef0>; - opp-microvolt-L6 = <0xc3500 0xc3500 0xe7ef0 0xc3500 0xc3500 0xe7ef0>; - opp-microvolt-L4 = <0xc96a8 0xc96a8 0xe7ef0 0xc96a8 0xc96a8 0xe7ef0>; - opp-microvolt-L2 = <0xcf850 0xcf850 0xe7ef0 0xcf850 0xcf850 0xe7ef0>; - opp-hz = <0x00 0x6b49d200>; - opp-supported-hw = <0x06 0xffff>; - opp-microvolt-L7 = <0xc042c 0xc042c 0xe7ef0 0xc042c 0xc042c 0xe7ef0>; - opp-microvolt-L5 = <0xc65d4 0xc65d4 0xe7ef0 0xc65d4 0xc65d4 0xe7ef0>; - opp-microvolt-L3 = <0xcc77c 0xcc77c 0xe7ef0 0xcc77c 0xcc77c 0xe7ef0>; - clock-latency-ns = <0x9c40>; - opp-microvolt-L1 = <0xd2924 0xd2924 0xe7ef0 0xd2924 0xd2924 0xe7ef0>; - }; - - opp-2352000000 { - opp-microvolt = <0xf4240 0xf4240 0xf4240 0xf4240 0xf4240 0xf4240>; - opp-hz = <0x00 0x8c30ac00>; - opp-supported-hw = <0xf9 0x48>; - clock-latency-ns = <0x9c40>; - }; - - opp-816000000 { - opp-microvolt = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; - opp-hz = <0x00 0x30a32c00>; - opp-supported-hw = <0xf9 0xffff>; - clock-latency-ns = <0x9c40>; - }; - - opp-j-m-1608000000 { - opp-microvolt = <0xc042c 0xc042c 0xe7ef0 0xc042c 0xc042c 0xe7ef0>; - opp-microvolt-L6 = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - opp-microvolt-L4 = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - opp-microvolt-L2 = <0xbd358 0xbd358 0xe7ef0 0xbd358 0xbd358 0xe7ef0>; - opp-hz = <0x00 0x5fd82200>; - opp-supported-hw = <0x06 0xffff>; - opp-microvolt-L7 = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - opp-microvolt-L5 = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - opp-microvolt-L3 = <0xba284 0xba284 0xe7ef0 0xba284 0xba284 0xe7ef0>; - clock-latency-ns = <0x9c40>; - }; - - opp-600000000 { - opp-microvolt = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; - opp-hz = <0x00 0x23c34600>; - opp-supported-hw = <0xf9 0xffff>; - clock-latency-ns = <0x9c40>; - }; - - opp-2016000000 { - opp-microvolt = <0xe1d48 0xe1d48 0xf4240 0xe1d48 0xe1d48 0xf4240>; - opp-microvolt-L6 = <0xcf850 0xcf850 0xf4240 0xcf850 0xcf850 0xf4240>; - opp-microvolt-L4 = <0xd59f8 0xd59f8 0xf4240 0xd59f8 0xd59f8 0xf4240>; - opp-microvolt-L2 = <0xdbba0 0xdbba0 0xf4240 0xdbba0 0xdbba0 0xf4240>; - opp-hz = <0x00 0x7829b800>; - opp-supported-hw = <0xf9 0xffff>; - opp-microvolt-L7 = <0xcc77c 0xcc77c 0xf4240 0xcc77c 0xcc77c 0xf4240>; - opp-microvolt-L5 = <0xd2924 0xd2924 0xf4240 0xd2924 0xd2924 0xf4240>; - opp-microvolt-L3 = <0xd8acc 0xd8acc 0xf4240 0xd8acc 0xd8acc 0xf4240>; - clock-latency-ns = <0x9c40>; - opp-microvolt-L1 = <0xdec74 0xdec74 0xf4240 0xdec74 0xdec74 0xf4240>; - }; - - opp-1416000000 { - opp-microvolt = <0xb1008 0xb1008 0xf4240 0xb1008 0xb1008 0xf4240>; - opp-microvolt-L6 = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; - opp-microvolt-L4 = <0xaae60 0xaae60 0xf4240 0xaae60 0xaae60 0xf4240>; - opp-microvolt-L2 = <0xadf34 0xadf34 0xf4240 0xadf34 0xadf34 0xf4240>; - opp-hz = <0x00 0x54667200>; - opp-supported-hw = <0xf9 0xffff>; - opp-microvolt-L7 = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; - opp-microvolt-L5 = <0xa7d8c 0xa7d8c 0xf4240 0xa7d8c 0xa7d8c 0xf4240>; - opp-microvolt-L3 = <0xaae60 0xaae60 0xf4240 0xaae60 0xaae60 0xf4240>; - clock-latency-ns = <0x9c40>; - }; - - opp-408000000 { - opp-microvolt = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; - opp-hz = <0x00 0x18519600>; - opp-supported-hw = <0xf9 0xffff>; - opp-suspend; - clock-latency-ns = <0x9c40>; - }; - - opp-2304000000 { - opp-microvolt = <0xf4240 0xf4240 0xf4240 0xf4240 0xf4240 0xf4240>; - opp-hz = <0x00 0x89544000>; - opp-supported-hw = <0xf9 0x24>; - clock-latency-ns = <0x9c40>; - }; - }; - - mmc@fe2d0000 { - power-domains = <0x60 0x25>; - fifo-depth = <0x100>; - pinctrl-names = "default"; - pinctrl-0 = <0x119>; - clock-names = "biu\0ciu\0ciu-drive\0ciu-sample"; - interrupts = <0x00 0xcc 0x04>; - clocks = <0x02 0x199 0x02 0x19a 0x02 0x2c0 0x02 0x2c1>; - compatible = "rockchip,rk3588-dw-mshc\0rockchip,rk3288-dw-mshc"; - status = "disabled"; - reg = <0x00 0xfe2d0000 0x00 0x4000>; - phandle = <0x294>; - max-frequency = <0xbebc200>; - }; - - rkcif-mipi-lvds-sditf-vir3 { - compatible = "rockchip,rkcif-sditf"; - status = "disabled"; - rockchip,cif = <0x52>; - phandle = <0x22e>; - }; - - serial@feb90000 { - reg-io-width = <0x04>; - pinctrl-names = "default"; - pinctrl-0 = <0x165>; - clock-names = "baudclk\0apb_pclk"; - interrupts = <0x00 0x151 0x04>; - clocks = <0x02 0xcb 0x02 0xb0>; - compatible = "rockchip,rk3588-uart\0snps,dw-apb-uart"; - status = "okay"; - reg = <0x00 0xfeb90000 0x00 0x100>; - phandle = <0x2ce>; - dmas = <0xf1 0x0d 0xf1 0x0e>; - reg-shift = <0x02>; - }; - - i2s@fddf8000 { - power-domains = <0x60 0x1a>; - clock-names = "mclk_tx\0mclk_rx\0hclk"; - assigned-clocks = <0x02 0x239>; - assigned-clock-parents = <0x02 0x05>; - rockchip,capture-only; - resets = <0x02 0x3c3>; - interrupts = <0x00 0xbb 0x04>; - clocks = <0x02 0x23c 0x02 0x23c 0x02 0x238>; - dma-names = "rx"; - #sound-dai-cells = <0x00>; - compatible = "rockchip,rk3588-i2s-tdm"; - status = "okay"; - reg = <0x00 0xfddf8000 0x00 0x1000>; - phandle = <0x1ec>; - dmas = <0xf2 0x15>; - reset-names = "rx-m"; - }; - - phy@fee20000 { - rockchip,pipe-grf = <0x76>; - clock-names = "refclk\0apbclk\0phpclk"; - assigned-clocks = <0x02 0x2bf>; - assigned-clock-rates = <0x5f5e100>; - resets = <0x02 0x20007 0x02 0x4d8>; - clocks = <0x02 0x2bf 0x02 0x187 0x02 0x166>; - #phy-cells = <0x01>; - compatible = "rockchip,rk3588-naneng-combphy"; - status = "disabled"; - rockchip,pipe-phy-grf = <0x195>; - reg = <0x00 0xfee20000 0x00 0x100>; - phandle = <0x70>; - reset-names = "combphy-apb\0combphy"; - rockchip,pcie1ln-sel-bits = <0x100 0x01 0x01 0x00>; - }; - - csi2-dphy0-hw@fedc0000 { - clock-names = "pclk"; - resets = <0x02 0x17 0x02 0x16>; - clocks = <0x02 0x10c>; - compatible = "rockchip,rk3588-csi2-dphy-hw"; - status = "okay"; - rockchip,grf = <0x192>; - reg = <0x00 0xfedc0000 0x00 0x8000>; - phandle = <0x2d>; - reset-names = "srst_csiphy0\0srst_p_csiphy0"; - rockchip,sys_grf = <0xc8>; - }; - - can@fea70000 { - pinctrl-names = "default"; - pinctrl-0 = <0x147>; - clock-names = "baudclk\0apb_pclk"; - resets = <0x02 0xbd 0x02 0xbc>; - interrupts = <0x00 0x157 0x04>; - clocks = <0x02 0x74 0x02 0x73>; - compatible = "rockchip,can-2.0"; - status = "disabled"; - tx-fifo-depth = <0x01>; - rx-fifo-depth = <0x06>; - reg = <0x00 0xfea70000 0x00 0x1000>; - phandle = <0x2a2>; - reset-names = "can\0can-apb"; - }; - - mailbox@fec60000 { - clock-names = "pclk_mailbox"; - interrupts = <0x00 0x3d 0x04 0x00 0x3e 0x04 0x00 0x3f 0x04 0x00 0x40 0x04>; - clocks = <0x02 0x4c>; - #mbox-cells = <0x01>; - compatible = "rockchip,rk3588-mailbox\0rockchip,rk3368-mailbox"; - status = "disabled"; - reg = <0x00 0xfec60000 0x00 0x200>; - phandle = <0x2dd>; - }; - - usbdrd3_1 { - #address-cells = <0x02>; - clock-names = "ref\0suspend\0bus"; - clocks = <0x02 0x1a6 0x02 0x1a5 0x02 0x1a4>; - #size-cells = <0x02>; - compatible = "rockchip,rk3588-dwc3\0rockchip,rk3399-dwc3"; - ranges; - status = "okay"; - phandle = <0x47a>; - - usb@fc400000 { - power-domains = <0x60 0x1f>; - snps,dis-u1-entry-quirk; - snps,dis_enblslpm_quirk; - phy-names = "usb2-phy\0usb3-phy"; - snps,dis-u2-freeclk-exists-quirk; - phy_type = "utmi_wide"; - resets = <0x02 0x2a7>; - interrupts = <0x00 0xdd 0x04>; - snps,dis-u2-entry-quirk; - compatible = "snps,dwc3"; - snps,parkmode-disable-hs-quirk; - snps,dis-del-phy-power-chg-quirk; - status = "okay"; - snps,parkmode-disable-ss-quirk; - phys = <0x1a3 0x1a4>; - reg = <0x00 0xfc400000 0x00 0x400000>; - phandle = <0x47b>; - dr_mode = "host"; - reset-names = "usb3-otg"; - snps,dis-tx-ipgap-linecheck-quirk; - }; - }; - - sata@fe210000 { - phy-names = "sata-phy"; - clock-names = "sata\0pmalive\0rxoob\0ref\0asic"; - interrupts = <0x00 0x111 0x04>; - clocks = <0x02 0x171 0x02 0x16e 0x02 0x174 0x02 0x163 0x02 0x17e>; - compatible = "rockchip,rk-ahci\0snps,dwc-ahci"; - status = "okay"; - interrupt-names = "hostc"; - phys = <0x108 0x01>; - reg = <0x00 0xfe210000 0x00 0x1000>; - phandle = <0x290>; - ports-implemented = <0x01>; - }; - - leds { - compatible = "gpio-leds"; - status = "okay"; - phandle = <0x497>; - - user { - linux,default-trigger = "ir-user-click"; - label = ":user"; - default-state = "off"; - phandle = <0x499>; - gpios = <0x182 0x03 0x00>; - }; - - power { - linux,default-trigger = "ir-power-click"; - label = ":power"; - default-state = "on"; - status = "disabled"; - phandle = <0x498>; - gpios = <0x7b 0x15 0x00>; - }; - }; - - rkcif-mipi-lvds5-sditf-vir3 { - compatible = "rockchip,rkcif-sditf"; - status = "disabled"; - rockchip,cif = <0x1a2>; - phandle = <0x479>; - }; - - qos@fdf80000 { - compatible = "syscon"; - reg = <0x00 0xfdf80000 0x00 0x20>; - phandle = <0x9f>; - }; - - spdif-tx@fdde0000 { - power-domains = <0x60 0x1a>; - clock-names = "mclk\0hclk"; - assigned-clocks = <0x02 0x254>; - assigned-clock-parents = <0x02 0x05>; - interrupts = <0x00 0xc4 0x04>; - clocks = <0x02 0x257 0x02 0x253>; - dma-names = "tx"; - #sound-dai-cells = <0x00>; - compatible = "rockchip,rk3588-spdif\0rockchip,rk3568-spdif"; - status = "disabled"; - reg = <0x00 0xfdde0000 0x00 0x1000>; - phandle = <0x27e>; - dmas = <0xf1 0x07>; - }; - - qos@fdf35000 { - compatible = "syscon"; - reg = <0x00 0xfdf35000 0x00 0x20>; - phandle = <0x87>; - }; - - psci { - method = "smc"; - compatible = "arm,psci-1.0"; - }; - - rkcif-mipi-lvds { - iommus = <0x50>; - rockchip,hw = <0x4f>; - compatible = "rockchip,rkcif-mipi-lvds"; - status = "disabled"; - phandle = <0x52>; - }; - - rga@fdb80000 { - power-domains = <0x60 0x15>; - clock-names = "aclk_rga2\0hclk_rga2\0clk_rga2"; - interrupts = <0x00 0x74 0x04>; - clocks = <0x02 0x1b7 0x02 0x1b6 0x02 0x1b8>; - compatible = "rockchip,rga2_core0"; - status = "okay"; - interrupt-names = "rga2_irq"; - reg = <0x00 0xfdb80000 0x00 0x1000>; - phandle = <0x26b>; - }; - - qos@fdf66800 { - compatible = "syscon"; - reg = <0x00 0xfdf66800 0x00 0x20>; - phandle = <0x97>; - }; - - spi@feb10000 { - pinctrl-names = "default"; - #address-cells = <0x01>; - num-cs = <0x02>; - pinctrl-0 = <0x151 0x152 0x153>; - clock-names = "spiclk\0apb_pclk"; - interrupts = <0x00 0x147 0x04>; - clocks = <0x02 0xa4 0x02 0x9f>; - #size-cells = <0x00>; - dma-names = "tx\0rx"; - compatible = "rockchip,rk3066-spi"; - status = "disabled"; - reg = <0x00 0xfeb10000 0x00 0x1000>; - phandle = <0x2ac>; - dmas = <0x7c 0x10 0x7c 0x11>; - }; - - rkcif-mipi-lvds4-sditf { - compatible = "rockchip,rkcif-sditf"; - status = "disabled"; - rockchip,cif = <0x1a1>; - phandle = <0x472>; - }; - - hdmi@fdea0000 { - power-domains = <0x60 0x1a>; - reg-io-width = <0x04>; - pinctrl-names = "default"; - phy-names = "hdmi"; - pinctrl-0 = <0x1a8 0x1a9 0x1aa 0x1ab>; - clock-names = "pclk\0hpd\0earc\0hdmitx_ref\0aud\0dclk_vp0\0dclk_vp1\0dclk_vp2\0dclk_vp3\0hclk_vo1\0link_clk"; - resets = <0x02 0x3d7 0x02 0x49d>; - interrupts = <0x00 0xad 0x04 0x00 0xae 0x04 0x00 0xaf 0x04 0x00 0xb0 0x04 0x00 0x169 0x04>; - clocks = <0x02 0x224 0x02 0x266 0x02 0x225 0x02 0x226 0x02 0x24c 0x02 0x274 0x02 0x275 0x02 0x276 0x02 0x277 0x05 0x36>; - #sound-dai-cells = <0x00>; - compatible = "rockchip,rk3588-dw-hdmi"; - status = "disabled"; - rockchip,grf = <0xc8>; - phys = <0x1ac>; - reg = <0x00 0xfdea0000 0x00 0x10000 0x00 0xfdeb0000 0x00 0x10000>; - phandle = <0x1e1>; - reset-names = "ref\0hdp"; - rockchip,vo1_grf = <0xd8>; - - ports { - #address-cells = <0x01>; - #size-cells = <0x00>; - - port@0 { - #address-cells = <0x01>; - #size-cells = <0x00>; - reg = <0x00>; - phandle = <0x482>; - - endpoint@1 { - remote-endpoint = <0x3f>; - status = "disabled"; - reg = <0x01>; - phandle = <0xe5>; - }; - - endpoint@2 { - remote-endpoint = <0x1ae>; - status = "disabled"; - reg = <0x02>; - phandle = <0xed>; - }; - - endpoint@0 { - remote-endpoint = <0x1ad>; - status = "disabled"; - reg = <0x00>; - phandle = <0xdf>; - }; - }; - }; - }; - - pcie@fe180000 { - #address-cells = <0x03>; - rockchip,pipe-grf = <0x76>; - phy-names = "pcie-phy"; - bus-range = <0x30 0x3f>; - clock-names = "aclk_mst\0aclk_slv\0aclk_dbi\0pclk\0aux\0pipe"; - reg-names = "pcie-apb\0pcie-dbi"; - num-ob-windows = <0x08>; - resets = <0x02 0x210 0x02 0x21f>; - interrupts = <0x00 0xf8 0x04 0x00 0xf7 0x04 0x00 0xf6 0x04 0x00 0xf5 0x04 0x00 0xf4 0x04>; - clocks = <0x02 0x151 0x02 0x156 0x02 0x14c 0x02 0x15c 0x02 0x161 0x02 0x2c5>; - interrupt-map = <0x00 0x00 0x00 0x01 0x105 0x00 0x00 0x00 0x00 0x02 0x105 0x01 0x00 0x00 0x00 0x03 0x105 0x02 0x00 0x00 0x00 0x04 0x105 0x03>; - #size-cells = <0x02>; - max-link-speed = <0x02>; - device_type = "pci"; - interrupt-map-mask = <0x00 0x00 0x00 0x07>; - num-lanes = <0x01>; - compatible = "rockchip,rk3588-pcie\0snps,dw-pcie"; - ranges = <0x800 0x00 0xf3000000 0x00 0xf3000000 0x00 0x100000 0x81000000 0x00 0xf3100000 0x00 0xf3100000 0x00 0x100000 0x82000000 0x00 0xf3200000 0x00 0xf3200000 0x00 0xe00000 0xc3000000 0x09 0xc0000000 0x09 0xc0000000 0x00 0x40000000>; - msi-map = <0x3000 0x106 0x3000 0x1000>; - #interrupt-cells = <0x01>; - status = "disabled"; - interrupt-names = "sys\0pmc\0msg\0legacy\0err"; - phys = <0x70 0x02>; - num-viewport = <0x04>; - reg = <0x00 0xfe180000 0x00 0x10000 0x0a 0x40c00000 0x00 0x400000>; - linux,pci-domain = <0x03>; - phandle = <0x28c>; - reset-names = "pcie\0periph"; - num-ib-windows = <0x08>; - - legacy-interrupt-controller { - #address-cells = <0x00>; - interrupts = <0x00 0xf5 0x01>; - interrupt-parent = <0x01>; - #interrupt-cells = <0x01>; - phandle = <0x105>; - interrupt-controller; - }; - }; - - i2s@fe480000 { - pinctrl-names = "default"; - pinctrl-0 = <0x120 0x121 0x122 0x123 0x124 0x125 0x126 0x127 0x128 0x129>; - clock-names = "mclk_tx\0mclk_rx\0hclk"; - resets = <0x02 0xc002a 0x02 0xc002d>; - interrupts = <0x00 0xb5 0x04>; - clocks = <0x02 0x28c 0x02 0x290 0x02 0x288>; - dma-names = "tx\0rx"; - #sound-dai-cells = <0x00>; - compatible = "rockchip,rk3588-i2s-tdm"; - status = "disabled"; - reg = <0x00 0xfe480000 0x00 0x1000>; - phandle = <0x1d1>; - dmas = <0x7c 0x02 0x7c 0x03>; - reset-names = "tx-m\0rx-m"; - rockchip,clk-trcm = <0x01>; - }; - - syscon@fd5c0000 { - compatible = "rockchip,pipe-phy-grf\0syscon"; - reg = <0x00 0xfd5c0000 0x00 0x100>; - phandle = <0x1cb>; - }; - - i2c@feab0000 { - pinctrl-names = "default"; - #address-cells = <0x01>; - pinctrl-0 = <0x14a>; - clock-names = "i2c\0pclk"; - resets = <0x02 0xb2 0x02 0xaa>; - interrupts = <0x00 0x140 0x04>; - clocks = <0x02 0x8f 0x02 0x87>; - #size-cells = <0x00>; - compatible = "rockchip,rk3588-i2c\0rockchip,rk3399-i2c"; - status = "okay"; - reg = <0x00 0xfeab0000 0x00 0x1000>; - phandle = <0x2a6>; - reset-names = "i2c\0apb"; - - gpio@21 { - gpio-controller; - gpio-group-num = <0xc8>; - compatible = "nxp,pca9555"; - status = "okay"; - reg = <0x21>; - phandle = <0x182>; - #gpio-cells = <0x02>; - }; - }; - - iommu@fdcb7f00 { - power-domains = <0x60 0x1b>; - clock-names = "aclk\0iface"; - interrupts = <0x00 0x84 0x04>; - clocks = <0x02 0x1de 0x02 0x1df>; - #iommu-cells = <0x00>; - compatible = "rockchip,iommu-v2"; - rockchip,disable-mmu-reset; - status = "okay"; - interrupt-names = "isp0_mmu"; - reg = <0x00 0xfdcb7f00 0x00 0x100>; - phandle = <0xd0>; - }; - - qos@fdf3e600 { - compatible = "syscon"; - reg = <0x00 0xfdf3e600 0x00 0x20>; - phandle = <0xae>; - }; - - syscon@fd5b8000 { - compatible = "rockchip,pcie30-phy-grf\0syscon"; - reg = <0x00 0xfd5b8000 0x00 0x10000>; - phandle = <0x1cc>; - }; - - qos@fdf81200 { - compatible = "syscon"; - reg = <0x00 0xfdf81200 0x00 0x20>; - phandle = <0xa1>; - }; - - mipi5-csi2-hw@fdd60000 { - clock-names = "pclk_csi2host"; - reg-names = "csihost_regs"; - resets = <0x02 0x329>; - interrupts = <0x00 0x99 0x04 0x00 0x9a 0x04>; - clocks = <0x02 0x1d4>; - compatible = "rockchip,rk3588-mipi-csi2-hw"; - status = "okay"; - interrupt-names = "csi-intr1\0csi-intr2"; - reg = <0x00 0xfdd60000 0x00 0x10000>; - phandle = <0x4c>; - reset-names = "srst_csihost_p"; - }; - - qos@fdf72000 { - compatible = "syscon"; - reg = <0x00 0xfdf72000 0x00 0x20>; - phandle = <0x82>; - }; - - timer@feae0000 { - clock-names = "pclk\0timer"; - interrupts = <0x00 0x121 0x04>; - clocks = <0x02 0x5c 0x02 0x5f>; - compatible = "rockchip,rk3588-timer\0rockchip,rk3288-timer"; - reg = <0x00 0xfeae0000 0x00 0x20>; - phandle = <0x2a9>; - }; - - rkcif-mipi-lvds-sditf-vir1 { - compatible = "rockchip,rkcif-sditf"; - status = "disabled"; - rockchip,cif = <0x52>; - phandle = <0x22c>; - }; - - syscon@fd5b5000 { - compatible = "rockchip,mipi-dphy-grf\0syscon"; - reg = <0x00 0xfd5b5000 0x00 0x1000>; - phandle = <0x193>; - }; - - i2c@fec90000 { - pinctrl-names = "default"; - #address-cells = <0x01>; - pinctrl-0 = <0x185>; - clock-names = "i2c\0pclk"; - resets = <0x02 0xb6 0x02 0xae>; - interrupts = <0x00 0x144 0x04>; - clocks = <0x02 0x93 0x02 0x8b>; - #size-cells = <0x00>; - compatible = "rockchip,rk3588-i2c\0rockchip,rk3399-i2c"; - status = "disabled"; - reg = <0x00 0xfec90000 0x00 0x1000>; - phandle = <0x2e4>; - reset-names = "i2c\0apb"; - }; - - avsd-plus@fdb51000 { - power-domains = <0x60 0x15>; - iommus = <0xb7>; - clock-names = "aclk_vcodec\0hclk_vcodec"; - assigned-clocks = <0x02 0x1c0>; - rockchip,normal-rates = <0x2367b880 0x00>; - assigned-clock-rates = <0x2367b880>; - resets = <0x02 0x2c8 0x02 0x2c9>; - interrupts = <0x00 0x77 0x04>; - clocks = <0x02 0x1c0 0x02 0x1c1>; - rockchip,srv = <0xb8>; - rockchip,taskqueue-node = <0x00>; - rockchip,disable-auto-freq; - compatible = "rockchip,avs-plus-decoder"; - rockchip,resetgroup-node = <0x00>; - status = "disabled"; - interrupt-names = "irq_avsd"; - rockchip,skip-pmu-idle-request; - reg = <0x00 0xfdb51000 0x00 0x200>; - phandle = <0x268>; - reset-names = "shared_video_a\0shared_video_h"; - }; - - dp1-sound { - rockchip,jack-det; - rockchip,cpu = <0x1e2>; - rockchip,codec = <0x1e3 0x01>; - rockchip,card-name = "rockchip,dp1"; - compatible = "rockchip,hdmi"; - status = "disabled"; - phandle = <0x4a9>; - rockchip,mclk-fs = <0x200>; - }; - - mipi1-csi2-hw@fdd20000 { - clock-names = "pclk_csi2host"; - reg-names = "csihost_regs"; - resets = <0x02 0x325>; - interrupts = <0x00 0x91 0x04 0x00 0x92 0x04>; - clocks = <0x02 0x1d0>; - compatible = "rockchip,rk3588-mipi-csi2-hw"; - status = "okay"; - interrupt-names = "csi-intr1\0csi-intr2"; - reg = <0x00 0xfdd20000 0x00 0x10000>; - phandle = <0x48>; - reset-names = "srst_csihost_p"; - }; - - iep@fdbb0000 { - power-domains = <0x60 0x15>; - iommus = <0xc1>; - clock-names = "aclk\0hclk\0sclk"; - assigned-clocks = <0x02 0x1aa>; - rockchip,normal-rates = <0x2367b880 0x00>; - assigned-clock-rates = <0x2367b880>; - resets = <0x02 0x2d5 0x02 0x2d4 0x02 0x2d6>; - interrupts = <0x00 0x75 0x04>; - clocks = <0x02 0x1aa 0x02 0x1a9 0x02 0x1ab>; - rockchip,srv = <0xb8>; - rockchip,taskqueue-node = <0x06>; - rockchip,disable-auto-freq; - compatible = "rockchip,iep-v2"; - status = "okay"; - interrupt-names = "irq_iep"; - rockchip,skip-pmu-idle-request; - reg = <0x00 0xfdbb0000 0x00 0x500>; - phandle = <0x271>; - reset-names = "rst_a\0rst_h\0rst_s"; - }; - - dsi@fde20000 { - power-domains = <0x60 0x18>; - #address-cells = <0x01>; - phy-names = "dcphy"; - clock-names = "pclk\0sys_clk"; - resets = <0x02 0x354>; - interrupts = <0x00 0xa7 0x04>; - clocks = <0x02 0x278 0x02 0x27a>; - #size-cells = <0x00>; - compatible = "rockchip,rk3588-mipi-dsi2"; - status = "disabled"; - rockchip,grf = <0xd7>; - phys = <0x2f>; - reg = <0x00 0xfde20000 0x00 0x10000>; - phandle = <0x281>; - reset-names = "apb"; - - ports { - #address-cells = <0x01>; - #size-cells = <0x00>; - - port@0 { - #address-cells = <0x01>; - #size-cells = <0x00>; - reg = <0x00>; - phandle = <0x282>; - - endpoint@1 { - remote-endpoint = <0x39>; - status = "disabled"; - reg = <0x01>; - phandle = <0xee>; - }; - - endpoint@0 { - remote-endpoint = <0xf3>; - status = "disabled"; - reg = <0x00>; - phandle = <0xe9>; - }; - }; - }; - }; - - rkcif-mipi-lvds5-sditf-vir1 { - compatible = "rockchip,rkcif-sditf"; - status = "disabled"; - rockchip,cif = <0x1a2>; - phandle = <0x477>; - }; - - edp@fded0000 { - power-domains = <0x60 0x1a>; - phy-names = "dp"; - clock-names = "dp\0pclk\0spdif\0hclk"; - resets = <0x02 0x3e4 0x02 0x3e3>; - interrupts = <0x00 0xa4 0x04>; - clocks = <0x02 0x214 0x02 0x213 0x02 0x215 0x05>; - compatible = "rockchip,rk3588-edp"; - status = "disabled"; - rockchip,grf = <0xd8>; - phys = <0x1af>; - reg = <0x00 0xfded0000 0x00 0x1000>; - phandle = <0x483>; - reset-names = "dp\0apb"; - - ports { - #address-cells = <0x01>; - #size-cells = <0x00>; - - port@0 { - #address-cells = <0x01>; - #size-cells = <0x00>; - reg = <0x00>; - - endpoint@1 { - remote-endpoint = <0x1b1>; - status = "disabled"; - reg = <0x01>; - phandle = <0xe4>; - }; - - endpoint@2 { - remote-endpoint = <0x1b2>; - status = "disabled"; - reg = <0x02>; - phandle = <0xec>; - }; - - endpoint@0 { - remote-endpoint = <0x1b0>; - status = "disabled"; - reg = <0x00>; - phandle = <0xde>; - }; - }; - - port@1 { - reg = <0x01>; - - endpoint { - phandle = <0x484>; - }; - }; - }; - }; - - qos@fdf67000 { - compatible = "syscon"; - reg = <0x00 0xfdf67000 0x00 0x20>; - phandle = <0x9c>; - }; - - qos@fdf64000 { - compatible = "syscon"; - reg = <0x00 0xfdf64000 0x00 0x20>; - phandle = <0x9b>; - }; - - npu-opp-table { - rockchip,pvtm-offset = <0x50>; - rockchip,pvtm-sample-time = <0x44c>; - rockchip,init-freq = <0xf4240>; - rockchip,pvtm-hw = <0x06>; - nvmem-cells = <0xb4 0xb5 0x21>; - rockchip,low-temp = <0x2710>; - rockchip,pvtm-voltage-sel-hw = <0x00 0x31f 0x00 0x320 0x333 0x01 0x334 0x34c 0x02 0x34d 0x365 0x03 0x366 0x37e 0x04 0x37f 0x270f 0x05>; - rockchip,pvtm-thermal-zone = "npu-thermal"; - rockchip,high-temp-max-freq = "\0\f5"; - rockchip,opp-clocks = <0x02 0x12a 0x02 0x12f>; - rockchip,pvtm-freq = "\0\f5"; - rockchip,pvtm-ref-temp = <0x19>; - low-volt-mem-read-margin = <0x04>; - volt-mem-read-margin = <0xd0bd8 0x01 0xbac48 0x02 0xa4cb8 0x03 0x78d98 0x04>; - compatible = "operating-points-v2"; - rockchip,low-temp-min-volt = <0xb71b0>; - rockchip,grf = <0xb6>; - nvmem-cell-names = "leakage\0opp-info\0specification_serial_number"; - rockchip,pvtm-voltage-sel = <0x00 0x32f 0x00 0x330 0x343 0x01 0x344 0x35c 0x02 0x35d 0x375 0x03 0x376 0x38e 0x04 0x38f 0x270f 0x05>; - phandle = <0xb1>; - rockchip,pvtm-temp-prop = <0xffffff8f 0xffffff8f>; - rockchip,temp-hysteresis = <0x1388>; - rockchip,high-temp = <0x14c08>; - rockchip,pvtm-pvtpll; - rockchip,supported-hw; - intermediate-threshold-freq = <0x7a120>; - rockchip,pvtm-volt = <0xb71b0>; - - opp-j-m-700000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; - opp-hz = <0x00 0x29b92700>; - opp-supported-hw = <0x06 0xffff>; - }; - - opp-300000000 { - opp-microvolt = <0xaae60 0xaae60 0xcf850 0xaae60 0xaae60 0xcf850>; - opp-microvolt-L4 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; - opp-microvolt-L2 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; - opp-hz = <0x00 0x11e1a300>; - opp-supported-hw = <0xf9 0xffff>; - opp-microvolt-L5 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; - opp-microvolt-L3 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; - opp-microvolt-L1 = <0xa7d8c 0xa7d8c 0xcf850 0xa7d8c 0xa7d8c 0xcf850>; - }; - - opp-500000000 { - opp-microvolt = <0xaae60 0xaae60 0xcf850 0xaae60 0xaae60 0xcf850>; - opp-microvolt-L4 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; - opp-microvolt-L2 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; - opp-hz = <0x00 0x1dcd6500>; - opp-supported-hw = <0xf9 0xffff>; - opp-microvolt-L5 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; - opp-microvolt-L3 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; - opp-microvolt-L1 = <0xa7d8c 0xa7d8c 0xcf850 0xa7d8c 0xa7d8c 0xcf850>; - }; - - opp-j-m-400000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; - opp-hz = <0x00 0x17d78400>; - opp-supported-hw = <0x06 0xffff>; - }; - - opp-700000000 { - opp-microvolt = <0xaae60 0xaae60 0xcf850 0xaae60 0xaae60 0xcf850>; - opp-microvolt-L4 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; - opp-hz = <0x00 0x29b92700>; - opp-supported-hw = <0xf9 0xffff>; - opp-microvolt-L5 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; - opp-microvolt-L3 = <0xa7d8c 0xa7d8c 0xcf850 0xa7d8c 0xa7d8c 0xcf850>; - }; - - opp-j-m-950000000 { - opp-microvolt = <0xcc77c 0xcc77c 0xcf850 0xcc77c 0xcc77c 0xcf850>; - opp-microvolt-L4 = <0xc042c 0xc042c 0xcf850 0xc042c 0xc042c 0xcf850>; - opp-microvolt-L2 = <0xc65d4 0xc65d4 0xcf850 0xc65d4 0xc65d4 0xcf850>; - opp-hz = <0x00 0x389fd980>; - opp-supported-hw = <0x06 0xffff>; - opp-microvolt-L5 = <0xbd358 0xbd358 0xcf850 0xbd358 0xbd358 0xcf850>; - opp-microvolt-L3 = <0xc3500 0xc3500 0xcf850 0xc3500 0xc3500 0xcf850>; - opp-microvolt-L1 = <0xc96a8 0xc96a8 0xcf850 0xc96a8 0xc96a8 0xcf850>; - }; - - opp-j-m-600000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; - opp-hz = <0x00 0x23c34600>; - opp-supported-hw = <0x06 0xffff>; - }; - - opp-900000000 { - opp-microvolt = <0xc3500 0xc3500 0xcf850 0xc3500 0xc3500 0xcf850>; - opp-microvolt-L4 = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; - opp-microvolt-L2 = <0xbd358 0xbd358 0xcf850 0xbd358 0xbd358 0xcf850>; - opp-hz = <0x00 0x35a4e900>; - opp-supported-hw = <0xf9 0xffff>; - opp-microvolt-L5 = <0xb40dc 0xb40dc 0xcf850 0xb40dc 0xb40dc 0xcf850>; - opp-microvolt-L3 = <0xba284 0xba284 0xcf850 0xba284 0xba284 0xcf850>; - opp-microvolt-L1 = <0xc042c 0xc042c 0xcf850 0xc042c 0xc042c 0xcf850>; - }; - - opp-j-m-800000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; - opp-hz = <0x00 0x2faf0800>; - opp-supported-hw = <0x06 0xffff>; - }; - - opp-400000000 { - opp-microvolt = <0xaae60 0xaae60 0xcf850 0xaae60 0xaae60 0xcf850>; - opp-microvolt-L4 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; - opp-microvolt-L2 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; - opp-hz = <0x00 0x17d78400>; - opp-supported-hw = <0xf9 0xffff>; - opp-microvolt-L5 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; - opp-microvolt-L3 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; - opp-microvolt-L1 = <0xa7d8c 0xa7d8c 0xcf850 0xa7d8c 0xa7d8c 0xcf850>; - }; - - opp-j-m-300000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; - opp-hz = <0x00 0x11e1a300>; - opp-supported-hw = <0x06 0xffff>; - }; - - opp-600000000 { - opp-microvolt = <0xaae60 0xaae60 0xcf850 0xaae60 0xaae60 0xcf850>; - opp-microvolt-L4 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; - opp-microvolt-L2 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; - opp-hz = <0x00 0x23c34600>; - opp-supported-hw = <0xf9 0xffff>; - opp-microvolt-L5 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; - opp-microvolt-L3 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; - opp-microvolt-L1 = <0xa7d8c 0xa7d8c 0xcf850 0xa7d8c 0xa7d8c 0xcf850>; - }; - - opp-1000000000 { - opp-microvolt = <0xcf850 0xcf850 0xcf850 0xcf850 0xcf850 0xcf850>; - opp-microvolt-L4 = <0xc3500 0xc3500 0xcf850 0xc3500 0xc3500 0xcf850>; - opp-microvolt-L2 = <0xc96a8 0xc96a8 0xcf850 0xc96a8 0xc96a8 0xcf850>; - opp-hz = <0x00 0x3b9aca00>; - opp-supported-hw = <0xf9 0xffff>; - opp-microvolt-L5 = <0xc042c 0xc042c 0xcf850 0xc042c 0xc042c 0xcf850>; - opp-microvolt-L3 = <0xc65d4 0xc65d4 0xcf850 0xc65d4 0xc65d4 0xcf850>; - opp-microvolt-L1 = <0xcc77c 0xcc77c 0xcf850 0xcc77c 0xcc77c 0xcf850>; - }; - - opp-j-m-500000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; - opp-hz = <0x00 0x1dcd6500>; - opp-supported-hw = <0x06 0xffff>; - }; - - opp-800000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; - opp-microvolt-L4 = <0xadf34 0xadf34 0xcf850 0xadf34 0xadf34 0xcf850>; - opp-microvolt-L2 = <0xb40dc 0xb40dc 0xcf850 0xb40dc 0xb40dc 0xcf850>; - opp-hz = <0x00 0x2faf0800>; - opp-supported-hw = <0xf9 0xffff>; - opp-microvolt-L5 = <0xaae60 0xaae60 0xcf850 0xaae60 0xaae60 0xcf850>; - opp-microvolt-L3 = <0xb1008 0xb1008 0xcf850 0xb1008 0xb1008 0xcf850>; - }; - }; - - syscon@fd590000 { - compatible = "rockchip,rk3588-bigcore0-grf\0syscon"; - reg = <0x00 0xfd590000 0x00 0x100>; - phandle = <0x26>; - }; - - syscon@fd5dc000 { - #address-cells = <0x01>; - #size-cells = <0x01>; - compatible = "rockchip,rk3588-usb2phy-grf\0syscon\0simple-mfd"; - reg = <0x00 0xfd5dc000 0x00 0x4000>; - phandle = <0x25e>; - - usb2-phy@c000 { - clock-output-names = "usb480m_phy3"; - clock-names = "phyclk"; - resets = <0x02 0xc004a 0x02 0x48b>; - interrupts = <0x00 0x188 0x04>; - clocks = <0x02 0x2b5>; - #clock-cells = <0x00>; - compatible = "rockchip,rk3588-usb2phy"; - status = "okay"; - reg = <0xc000 0x10>; - phandle = <0x6d>; - reset-names = "phy\0apb"; - - host-port { - phy-supply = <0x75>; - #phy-cells = <0x00>; - status = "okay"; - phandle = <0x6f>; - }; - }; - }; - - pcie-clk3 { - regulator-boot-on; - regulator-always-on; - regulator-name = "pcie_clk3"; - compatible = "regulator-fixed"; - status = "okay"; - phandle = <0x496>; - gpios = <0xfe 0x09 0x01>; - }; - - pwm@febf0030 { - pinctrl-names = "active"; - pinctrl-0 = <0x174>; - clock-names = "pwm\0pclk"; - interrupts = <0x00 0x15e 0x04 0x00 0x15f 0x04>; - clocks = <0x02 0x5a 0x02 0x59>; - #pwm-cells = <0x03>; - compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; - status = "disabled"; - reg = <0x00 0xfebf0030 0x00 0x10>; - phandle = <0x2dc>; - }; - - hwspinlock@fe5a0000 { - compatible = "rockchip,hwspinlock"; - reg = <0x00 0xfe5a0000 0x00 0x100>; - phandle = <0x29f>; - #hwlock-cells = <0x01>; - }; - - rkcif-mipi-lvds4-sditf-vir2 { - compatible = "rockchip,rkcif-sditf"; - status = "disabled"; - rockchip,cif = <0x1a1>; - phandle = <0x474>; - }; - - sram@10f000 { - #address-cells = <0x01>; - #size-cells = <0x01>; - compatible = "mmio-sram"; - ranges = <0x00 0x00 0x10f000 0x100>; - reg = <0x00 0x10f000 0x00 0x100>; - - sram@0 { - compatible = "arm,scmi-shmem"; - reg = <0x00 0x100>; - phandle = <0x46>; - }; - }; - - hdmirx-controller@fdee0000 { - power-domains = <0x60 0x1a>; - pinctrl-names = "default"; - pinctrl-0 = <0x1b3 0x1b4>; - clock-names = "aclk\0audio\0cr_para\0pclk\0ref\0hclk_s_hdmirx\0hclk_vo1"; - reg-names = "hdmirx_regs"; - resets = <0x02 0x3d9 0x02 0x3da 0x02 0x3db 0x02 0x3b7>; - interrupts = <0x00 0xb1 0x04 0x00 0x1b4 0x04 0x00 0xb3 0x04>; - clocks = <0x02 0x21a 0x02 0x21f 0x02 0x2b2 0x02 0x21b 0x02 0x21c 0x02 0x232 0x05>; - hpd-trigger-level = <0x01>; - #sound-dai-cells = <0x01>; - compatible = "rockchip,rk3588-hdmirx-ctrler\0rockchip,hdmirx-ctrler"; - status = "disabled"; - rockchip,grf = <0xc8>; - interrupt-names = "cec\0hdmi\0dma"; - hdmirx-det-gpios = <0xfe 0x1d 0x01>; - reg = <0x00 0xfdee0000 0x00 0x6000>; - phandle = <0x1eb>; - reset-names = "rst_a\0rst_p\0rst_ref\0rst_biu"; - rockchip,vo1_grf = <0xd8>; - }; - - qos@fdf61000 { - compatible = "syscon"; - reg = <0x00 0xfdf61000 0x00 0x20>; - phandle = <0x90>; - }; - - qos@fdf40600 { - compatible = "syscon"; - reg = <0x00 0xfdf40600 0x00 0x20>; - phandle = <0xa4>; - }; - - syscon@fd588000 { - compatible = "rockchip,rk3588-pmu0-grf\0syscon\0simple-mfd"; - reg = <0x00 0xfd588000 0x00 0x2000>; - phandle = <0x25a>; - - reboot-mode { - mode-normal = <0x5242c300>; - mode-loader = <0x5242c301>; - mode-quiescent = <0x5242c30e>; - mode-bootloader = <0x5242c301>; - mode-recovery = <0x5242c303>; - mode-watchdog = <0x5242c308>; - mode-ums = <0x5242c30c>; - mode-fastboot = <0x5242c309>; - offset = <0x80>; - compatible = "syscon-reboot-mode"; - mode-winusb = <0x5242c30f>; - phandle = <0x25b>; - mode-charge = <0x5242c30b>; - mode-panic = <0x5242c307>; - }; - }; - - syscon@fd5a4000 { - compatible = "rockchip,rk3588-vop-grf\0syscon"; - reg = <0x00 0xfd5a4000 0x00 0x2000>; - phandle = <0xd7>; - }; - - iommu@fdb60f00 { - power-domains = <0x60 0x16>; - clock-names = "aclk\0iface"; - interrupts = <0x00 0x72 0x04>; - clocks = <0x02 0x1ba 0x02 0x1b9>; - #iommu-cells = <0x00>; - compatible = "rockchip,iommu-v2"; - status = "okay"; - interrupt-names = "rga3_0_mmu"; - reg = <0x00 0xfdb60f00 0x00 0x100>; - phandle = <0xb9>; - }; - - pwm@febf0020 { - pinctrl-names = "active"; - pinctrl-0 = <0x173>; - clock-names = "pwm\0pclk"; - interrupts = <0x00 0x15e 0x04>; - clocks = <0x02 0x5a 0x02 0x59>; - #pwm-cells = <0x03>; - compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; - status = "disabled"; - reg = <0x00 0xfebf0020 0x00 0x10>; - phandle = <0x2db>; - }; - - rkispp@fdcd0000 { - power-domains = <0x60 0x1d>; - iommus = <0xd2>; - clock-names = "aclk_ispp\0hclk_ispp\0clk_ispp"; - assigned-clocks = <0x02 0x1d6>; - assigned-clock-rates = <0x5f5e100>; - interrupts = <0x00 0x8b 0x04>; - clocks = <0x02 0x1d5 0x02 0x1d6 0x02 0x1d7>; - compatible = "rockchip,rk3588-rkispp"; - status = "disabled"; - interrupt-names = "fec_irq"; - reg = <0x00 0xfdcd0000 0x00 0xf00>; - phandle = <0x5b>; - }; - - tsadc@fec00000 { - pinctrl-names = "gpio\0otpout"; - pinctrl-0 = <0x175>; - clock-names = "tsadc\0apb_pclk"; - rockchip,hw-tshut-polarity = <0x00>; - assigned-clocks = <0x02 0xaa>; - assigned-clock-rates = <0x1e8480>; - resets = <0x02 0xc1 0x02 0xc0>; - interrupts = <0x00 0x18d 0x04>; - rockchip,hw-tshut-mode = <0x00>; - clocks = <0x02 0xaa 0x02 0xa9>; - #thermal-sensor-cells = <0x01>; - compatible = "rockchip,rk3588-tsadc"; - pinctrl-1 = <0x176>; - status = "okay"; - reg = <0x00 0xfec00000 0x00 0x400>; - phandle = <0x5d>; - reset-names = "tsadc\0tsadc-apb"; - rockchip,hw-tshut-temp = <0x1d4c0>; - }; - - iommu@fdbb0800 { - power-domains = <0x60 0x15>; - clock-names = "aclk\0iface"; - interrupts = <0x00 0x75 0x04>; - clocks = <0x02 0x1aa 0x02 0x1a9>; - #iommu-cells = <0x00>; - compatible = "rockchip,iommu-v2"; - status = "okay"; - interrupt-names = "irq_iep_mmu"; - reg = <0x00 0xfdbb0800 0x00 0x100>; - phandle = <0xc1>; - }; - - phy@fed60000 { - clock-names = "ref\0apb"; - resets = <0x02 0x485 0x02 0xc003b 0x02 0xc003c 0x02 0xc003d>; - clocks = <0x02 0x2b5 0x02 0x267>; - #phy-cells = <0x00>; - compatible = "rockchip,rk3588-hdptx-phy"; - status = "disabled"; - rockchip,grf = <0x18a>; - reg = <0x00 0xfed60000 0x00 0x2000>; - phandle = <0x101>; - reset-names = "apb\0init\0cmn\0lane"; - }; - - pvtm@fda50000 { - #address-cells = <0x01>; - #size-cells = <0x00>; - compatible = "rockchip,rk3588-bigcore1-pvtm"; - reg = <0x00 0xfda50000 0x00 0x100>; - - pvtm@1 { - clock-names = "clk\0pclk"; - clocks = <0x02 0x2c8 0x02 0x17>; - reg = <0x01>; - }; - }; - - csi2-dcphy0 { - rockchip,hw = <0x2d 0x2e>; - phy-names = "dcphy0\0dcphy1"; - compatible = "rockchip,rk3588-csi2-dphy"; - status = "disabled"; - phys = <0x2f 0x30>; - phandle = <0x20d>; - }; - - mailbox@fece0000 { - clock-names = "pclk_mailbox"; - interrupts = <0x00 0x4d 0x04 0x00 0x4e 0x04 0x00 0x4f 0x04 0x00 0x50 0x04>; - clocks = <0x02 0x4e>; - #mbox-cells = <0x01>; - compatible = "rockchip,rk3588-mailbox\0rockchip,rk3368-mailbox"; - status = "disabled"; - reg = <0x00 0xfece0000 0x00 0x200>; - phandle = <0x2e9>; - }; - - rkcif-mipi-lvds3-sditf-vir3 { - compatible = "rockchip,rkcif-sditf"; - status = "disabled"; - rockchip,cif = <0x57>; - phandle = <0x23a>; - }; - - rkcif-mipi-lvds1-sditf { - compatible = "rockchip,rkcif-sditf"; - status = "disabled"; - rockchip,cif = <0x53>; - phandle = <0x22f>; - }; - - dfi@fe060000 { - rockchip,pmu_grf = <0x104>; - compatible = "rockchip,rk3588-dfi"; - status = "disabled"; - reg = <0x00 0xfe060000 0x00 0x10000>; - phandle = <0x40>; - }; - - iommu@fdca0000 { - power-domains = <0x60 0x17>; - clock-names = "aclk\0iface"; - interrupts = <0x00 0x6d 0x04>; - clocks = <0x02 0x49 0x02 0x4b>; - #iommu-cells = <0x00>; - compatible = "rockchip,iommu-av1"; - status = "okay"; - interrupt-names = "irq_av1d_mmu"; - reg = <0x00 0xfdca0000 0x00 0x600>; - phandle = <0xce>; - }; - - mipi5-csi2 { - rockchip,hw = <0x47 0x48 0x49 0x4a 0x4b 0x4c>; - compatible = "rockchip,rk3588-mipi-csi2"; - status = "disabled"; - phandle = <0x229>; - }; - - qos@fdf35600 { - compatible = "syscon"; - reg = <0x00 0xfdf35600 0x00 0x20>; - phandle = <0x8a>; - }; - - syscon@fd5e4000 { - compatible = "rockchip,rk3588-hdptxphy-grf\0syscon"; - reg = <0x00 0xfd5e4000 0x00 0x100>; - phandle = <0x1c7>; - }; - - iommu@fdba8800 { - power-domains = <0x60 0x15>; - clock-names = "aclk\0iface"; - interrupts = <0x00 0x7d 0x04>; - clocks = <0x02 0x1b0 0x02 0x1b1>; - #iommu-cells = <0x00>; - compatible = "rockchip,iommu-v2"; - status = "okay"; - interrupt-names = "irq_jpege2_mmu"; - reg = <0x00 0xfdba8800 0x00 0x40>; - phandle = <0xbf>; - }; - - mpp-srv { - rockchip,resetgroup-count = <0x01>; - rockchip,taskqueue-count = <0x0c>; - compatible = "rockchip,mpp-service"; - status = "okay"; - phandle = <0xb8>; - }; - - cspmu@fd10c000 { - compatible = "rockchip,cspmu"; - reg = <0x00 0xfd10c000 0x00 0x1000 0x00 0xfd10d000 0x00 0x1000 0x00 0xfd10e000 0x00 0x1000 0x00 0xfd10f000 0x00 0x1000 0x00 0xfd12c000 0x00 0x1000 0x00 0xfd12d000 0x00 0x1000 0x00 0xfd12e000 0x00 0x1000 0x00 0xfd12f000 0x00 0x1000>; - phandle = <0x48e>; - }; - - pwm@febf0010 { - pinctrl-names = "active"; - pinctrl-0 = <0x172>; - clock-names = "pwm\0pclk"; - interrupts = <0x00 0x15e 0x04>; - clocks = <0x02 0x5a 0x02 0x59>; - #pwm-cells = <0x03>; - compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; - status = "disabled"; - reg = <0x00 0xfebf0010 0x00 0x10>; - phandle = <0x2da>; - }; - - iommu@fdbef000 { - power-domains = <0x60 0x11>; - rockchip,shootdown-entire; - interrupts = <0x00 0x66 0x04 0x00 0x67 0x04>; - clocks = <0x02 0x1ca 0x02 0x1c9>; - rockchip,enable-cmd-retry; - #iommu-cells = <0x00>; - compatible = "rockchip,iommu-v2"; - rockchip,disable-mmu-reset; - status = "okay"; - interrupt-names = "irq_rkvenc1_mmu0\0irq_rkvenc1_mmu1"; - reg = <0x00 0xfdbef000 0x00 0x40 0x00 0xfdbef040 0x00 0x40>; - phandle = <0xc5>; - lock-names = "aclk\0iface"; - }; - - serial@feb60000 { - reg-io-width = <0x04>; - pinctrl-names = "default"; - pinctrl-0 = <0x162>; - clock-names = "baudclk\0apb_pclk"; - interrupts = <0x00 0x14e 0x04>; - clocks = <0x02 0xbf 0x02 0xad>; - compatible = "rockchip,rk3588-uart\0snps,dw-apb-uart"; - status = "disabled"; - reg = <0x00 0xfeb60000 0x00 0x100>; - phandle = <0x2cb>; - dmas = <0x7c 0x0c 0x7c 0x0d>; - reg-shift = <0x02>; - }; - - hdmiin-sound { - rockchip,jack-det; - rockchip,cpu = <0x1ec>; - rockchip,codec = <0x1eb 0x00>; - rockchip,bitclock-master = <0x1eb>; - rockchip,card-name = "rockchip,hdmiin"; - rockchip,format = "i2s"; - compatible = "rockchip,hdmi"; - phandle = <0x4ac>; - rockchip,frame-master = <0x1eb>; - rockchip,mclk-fs = <0x80>; - }; - - i2s@fddc8000 { - power-domains = <0x60 0x19>; - clock-names = "mclk_tx\0hclk"; - assigned-clocks = <0x02 0x1ff>; - assigned-clock-parents = <0x02 0x05>; - resets = <0x02 0x391>; - interrupts = <0x00 0xbc 0x04>; - clocks = <0x02 0x201 0x02 0x1fe>; - dma-names = "tx"; - #sound-dai-cells = <0x00>; - compatible = "rockchip,rk3588-i2s-tdm"; - rockchip,playback-only; - status = "disabled"; - reg = <0x00 0xfddc8000 0x00 0x1000>; - phandle = <0x47c>; - dmas = <0xf2 0x16>; - reset-names = "tx-m"; - }; - - pcie30-avdd0v75 { - regulator-max-microvolt = <0xb71b0>; - regulator-boot-on; - regulator-always-on; - regulator-min-microvolt = <0xb71b0>; - regulator-name = "pcie30_avdd0v75"; - compatible = "regulator-fixed"; - phandle = <0x4a7>; - vin-supply = <0x1df>; - }; - - timer { - interrupts = <0x01 0x0d 0xf04 0x01 0x0e 0xf04 0x01 0x0b 0xf04 0x01 0x0a 0xf04>; - compatible = "arm,armv8-timer"; - }; - - rockchip-suspend { - rockchip,sleep-debug-en = <0x01>; - rockchip,sleep-mode-config = <0x5000604>; - compatible = "rockchip,pm-rk3588"; - status = "okay"; - rockchip,wakeup-config = <0x100>; - phandle = <0x246>; - }; - - decompress@fea80000 { - clock-names = "aclk\0dclk\0pclk"; - resets = <0x02 0x118>; - interrupts = <0x00 0x55 0x04>; - clocks = <0x02 0x75 0x02 0x77 0x02 0x76>; - compatible = "rockchip,hw-decompress"; - status = "disabled"; - reg = <0x00 0xfea80000 0x00 0x1000>; - phandle = <0x2a3>; - reset-names = "dresetn"; - }; - - dma-controller@fea30000 { - clock-names = "apb_pclk"; - interrupts = <0x00 0x58 0x04 0x00 0x59 0x04>; - clocks = <0x02 0x79>; - arm,pl330-periph-burst; - compatible = "arm,pl330\0arm,primecell"; - reg = <0x00 0xfea30000 0x00 0x4000>; - phandle = <0xf1>; - #dma-cells = <0x01>; - }; - - pwm@febf0000 { - pinctrl-names = "active"; - pinctrl-0 = <0x171>; - clock-names = "pwm\0pclk"; - interrupts = <0x00 0x15e 0x04>; - clocks = <0x02 0x5a 0x02 0x59>; - #pwm-cells = <0x03>; - compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; - status = "disabled"; - reg = <0x00 0xfebf0000 0x00 0x10>; - phandle = <0x2d9>; - }; - - iommu@fdcd8f00 { - power-domains = <0x60 0x1d>; - clock-names = "aclk\0iface\0pclk"; - interrupts = <0x00 0x8e 0x04>; - clocks = <0x02 0x1d8 0x02 0x1d9 0x02 0x1da>; - #iommu-cells = <0x00>; - compatible = "rockchip,iommu-v2"; - rockchip,disable-mmu-reset; - status = "disabled"; - interrupt-names = "fec1_mmu"; - reg = <0x00 0xfdcd8f00 0x00 0x100>; - phandle = <0xd3>; - }; - - spdif-tx@fddb0000 { - power-domains = <0x60 0x19>; - clock-names = "mclk\0hclk"; - assigned-clocks = <0x02 0x205>; - assigned-clock-parents = <0x02 0x05>; - interrupts = <0x00 0xc3 0x04>; - clocks = <0x02 0x209 0x02 0x204>; - dma-names = "tx"; - #sound-dai-cells = <0x00>; - compatible = "rockchip,rk3588-spdif\0rockchip,rk3568-spdif"; - status = "disabled"; - reg = <0x00 0xfddb0000 0x00 0x1000>; - phandle = <0x1d5>; - dmas = <0xf1 0x06>; - }; - - rkisp1-vir2 { - rockchip,hw = <0x5a>; - compatible = "rockchip,rkisp-vir"; - status = "disabled"; - phandle = <0x241>; - }; - - pcie-clk1 { - regulator-boot-on; - regulator-always-on; - regulator-name = "pcie_clk1"; - compatible = "regulator-fixed"; - status = "okay"; - phandle = <0x494>; - vin-supply = <0x1cd>; - gpios = <0x181 0x15 0x01>; - }; - - jpege-core@fdba8000 { - power-domains = <0x60 0x15>; - iommus = <0xbf>; - rockchip,ccu = <0xbd>; - clock-names = "aclk_vcodec\0hclk_vcodec"; - assigned-clocks = <0x02 0x1b0>; - rockchip,normal-rates = <0x2367b880 0x00>; - assigned-clock-rates = <0x2367b880>; - resets = <0x02 0x2ce 0x02 0x2cf>; - interrupts = <0x00 0x7e 0x04>; - clocks = <0x02 0x1b0 0x02 0x1b1>; - rockchip,srv = <0xb8>; - rockchip,taskqueue-node = <0x02>; - rockchip,disable-auto-freq; - compatible = "rockchip,vpu-jpege-core"; - status = "okay"; - interrupt-names = "irq_jpege2"; - rockchip,skip-pmu-idle-request; - reg = <0x00 0xfdba8000 0x00 0x400>; - phandle = <0x26f>; - reset-names = "video_a\0video_h"; - }; - - qos@fdf66400 { - compatible = "syscon"; - reg = <0x00 0xfdf66400 0x00 0x20>; - phandle = <0x95>; - }; - - spdif-tx1-sound { - simple-audio-card,name = "rockchip,spdif-tx1"; - compatible = "simple-audio-card"; - status = "disabled"; - phandle = <0x49d>; - simple-audio-card,mclk-fs = <0x80>; - - simple-audio-card,cpu { - sound-dai = <0x1d7>; - }; - - simple-audio-card,codec { - sound-dai = <0x1d8>; - }; - }; - - mmc@fe2e0000 { - mmc-hs400-enhanced-strobe; - clock-names = "core\0bus\0axi\0block\0timer"; - assigned-clocks = <0x02 0x13b 0x02 0x13c 0x02 0x13a>; - bus-width = <0x08>; - non-removable; - no-sdio; - assigned-clock-rates = <0xbebc200 0x16e3600 0xbebc200>; - resets = <0x02 0x1f6 0x02 0x1f4 0x02 0x1f5 0x02 0x1f7 0x02 0x1f8>; - mmc-hs400-1_8v; - interrupts = <0x00 0xcd 0x04>; - clocks = <0x02 0x13a 0x02 0x138 0x02 0x139 0x02 0x13b 0x02 0x13c>; - no-sd; - compatible = "rockchip,rk3588-dwcmshc\0rockchip,dwcmshc-sdhci"; - status = "okay"; - reg = <0x00 0xfe2e0000 0x00 0x10000>; - phandle = <0x295>; - max-frequency = <0xbebc200>; - reset-names = "core\0bus\0axi\0block\0timer"; - }; - - dma-controller@fed10000 { - clock-names = "apb_pclk"; - interrupts = <0x00 0x5a 0x04 0x00 0x5b 0x04>; - clocks = <0x02 0x7a>; - arm,pl330-periph-burst; - compatible = "arm,pl330\0arm,primecell"; - reg = <0x00 0xfed10000 0x00 0x4000>; - phandle = <0xf2>; - #dma-cells = <0x01>; - }; - - iommu@fc900000 { - interrupts = <0x00 0x171 0x04 0x00 0x173 0x04 0x00 0x176 0x04 0x00 0x16f 0x04>; - #iommu-cells = <0x01>; - compatible = "arm,smmu-v3"; - status = "disabled"; - interrupt-names = "eventq\0gerror\0priq\0cmdq-sync"; - reg = <0x00 0xfc900000 0x00 0x200000>; - phandle = <0x256>; - }; - - mailbox@fec70000 { - clock-names = "pclk_mailbox"; - interrupts = <0x00 0x45 0x04 0x00 0x46 0x04 0x00 0x47 0x04 0x00 0x48 0x04>; - clocks = <0x02 0x4d>; - #mbox-cells = <0x01>; - compatible = "rockchip,rk3588-mailbox\0rockchip,rk3368-mailbox"; - status = "disabled"; - reg = <0x00 0xfec70000 0x00 0x200>; - phandle = <0x2de>; - }; - - pcie@fe150000 { - power-domains = <0x60 0x22>; - vpcie3v3-supply = <0x1b8>; - #address-cells = <0x03>; - rockchip,pipe-grf = <0x76>; - phy-names = "pcie-phy"; - bus-range = <0x00 0x0f>; - clock-names = "aclk_mst\0aclk_slv\0aclk_dbi\0pclk\0aux\0pipe"; - reg-names = "pcie-apb\0pcie-dbi"; - num-ob-windows = <0x10>; - resets = <0x02 0x20d 0x02 0x21c>; - interrupts = <0x00 0x107 0x04 0x00 0x106 0x04 0x00 0x105 0x04 0x00 0x104 0x04 0x00 0x103 0x04>; - clocks = <0x02 0x14e 0x02 0x153 0x02 0x149 0x02 0x158 0x02 0x15e 0x02 0x183>; - interrupt-map = <0x00 0x00 0x00 0x01 0x1b5 0x00 0x00 0x00 0x00 0x02 0x1b5 0x01 0x00 0x00 0x00 0x03 0x1b5 0x02 0x00 0x00 0x00 0x04 0x1b5 0x03>; - #size-cells = <0x02>; - max-link-speed = <0x03>; - device_type = "pci"; - interrupt-map-mask = <0x00 0x00 0x00 0x07>; - reset-gpios = <0x10d 0x0e 0x00>; - num-lanes = <0x01>; - compatible = "rockchip,rk3588-pcie\0snps,dw-pcie"; - ranges = <0x800 0x00 0xf0000000 0x00 0xf0000000 0x00 0x100000 0x81000000 0x00 0xf0100000 0x00 0xf0100000 0x00 0x100000 0x82000000 0x00 0xf0200000 0x00 0xf0200000 0x00 0xe00000 0xc3000000 0x09 0x00 0x09 0x00 0x00 0x40000000>; - msi-map = <0x00 0x1b6 0x00 0x1000>; - #interrupt-cells = <0x01>; - status = "okay"; - interrupt-names = "sys\0pmc\0msg\0legacy\0err"; - phys = <0x1b7>; - num-viewport = <0x08>; - reg = <0x00 0xfe150000 0x00 0x10000 0x0a 0x40000000 0x00 0x400000>; - linux,pci-domain = <0x00>; - phandle = <0x485>; - reset-names = "pcie\0periph"; - num-ib-windows = <0x10>; - - legacy-interrupt-controller { - #address-cells = <0x00>; - interrupts = <0x00 0x104 0x01>; - interrupt-parent = <0x01>; - #interrupt-cells = <0x01>; - phandle = <0x1b5>; - interrupt-controller; - }; - }; - - rng@fe378000 { - clock-names = "hclk_trng"; - resets = <0x11a 0x30>; - interrupts = <0x00 0x190 0x04>; - clocks = <0x0e 0x0c>; - compatible = "rockchip,trngv1"; - status = "okay"; - reg = <0x00 0xfe378000 0x00 0x200>; - phandle = <0x297>; - reset-names = "reset"; - }; - - sata@fe220000 { - phy-names = "sata-phy"; - clock-names = "sata\0pmalive\0rxoob\0ref\0asic"; - interrupts = <0x00 0x112 0x04>; - clocks = <0x02 0x172 0x02 0x16f 0x02 0x175 0x02 0x164 0x02 0x17f>; - compatible = "rockchip,rk-ahci\0snps,dwc-ahci"; - status = "disabled"; - interrupt-names = "hostc"; - phys = <0x1bc 0x01>; - reg = <0x00 0xfe220000 0x00 0x1000>; - phandle = <0x48a>; - ports-implemented = <0x01>; - }; - - rkcif-mipi-lvds5 { - iommus = <0x50>; - rockchip,hw = <0x4f>; - compatible = "rockchip,rkcif-mipi-lvds"; - status = "disabled"; - phandle = <0x1a2>; - }; - - vcc-sata-pwr-en-regulator { - regulator-max-microvolt = <0x325aa0>; - regulator-boot-on; - gpio = <0x182 0x0c 0x00>; - regulator-always-on; - enable-active-high; - regulator-min-microvolt = <0x325aa0>; - regulator-name = "vcc_sata_pwr_en"; - startup-delay-us = <0x1388>; - compatible = "regulator-fixed"; - status = "okay"; - phandle = <0x4a3>; - vin-supply = <0x1cd>; - }; - - pwm-fan { - cooling-levels = <0x32 0x32 0x64 0x96 0xc8 0xff>; - rockchip,temp-trips = <0xc350 0x01 0xd6d8 0x02 0xea60 0x03 0xfde8 0x04 0x11170 0x05>; - compatible = "pwm-fan"; - phandle = <0x4ad>; - pwms = <0x1ed 0x00 0xc350 0x00>; - #cooling-cells = <0x02>; - fan-supply = <0x78>; - }; - - qos@fdf3e200 { - compatible = "syscon"; - reg = <0x00 0xfdf3e200 0x00 0x20>; - phandle = <0xab>; - }; - - spdif-tx@fe4e0000 { - power-domains = <0x60 0x26>; - pinctrl-names = "default"; - pinctrl-0 = <0x142>; - clock-names = "mclk\0hclk"; - assigned-clocks = <0x02 0x3f>; - assigned-clock-parents = <0x02 0x05>; - interrupts = <0x00 0xc1 0x04>; - clocks = <0x02 0x41 0x02 0x3e>; - dma-names = "tx"; - #sound-dai-cells = <0x00>; - compatible = "rockchip,rk3588-spdif\0rockchip,rk3568-spdif"; - status = "disabled"; - reg = <0x00 0xfe4e0000 0x00 0x1000>; - phandle = <0x29d>; - dmas = <0x7c 0x05>; - }; - - vad@fe4d0000 { - rockchip,det-channel = <0x00>; - rockchip,audio-src = <0x00>; - clock-names = "hclk"; - reg-names = "vad"; - interrupts = <0x00 0xca 0x04>; - clocks = <0x02 0x2a0>; - #sound-dai-cells = <0x00>; - compatible = "rockchip,rk3588-vad"; - status = "disabled"; - rockchip,mode = <0x00>; - reg = <0x00 0xfe4d0000 0x00 0x1000>; - phandle = <0x29c>; - }; - - jpegd@fdb90000 { - power-domains = <0x60 0x15>; - iommus = <0xbb>; - clock-names = "aclk_vcodec\0hclk_vcodec"; - assigned-clocks = <0x02 0x1b4>; - rockchip,normal-rates = <0x23c34600 0x00>; - assigned-clock-rates = <0x23c34600>; - resets = <0x02 0x2d2 0x02 0x2d3>; - interrupts = <0x00 0x81 0x04>; - clocks = <0x02 0x1b4 0x02 0x1b5>; - rockchip,srv = <0xb8>; - rockchip,taskqueue-node = <0x01>; - compatible = "rockchip,rkv-jpeg-decoder-v1"; - status = "okay"; - interrupt-names = "irq_jpegd"; - rockchip,skip-pmu-idle-request; - reg = <0x00 0xfdb90000 0x00 0x400>; - phandle = <0x26c>; - reset-names = "video_a\0video_h"; - }; - - cpuinfo { - nvmem-cells = <0x2a 0x2b 0x2c>; - compatible = "rockchip,cpuinfo"; - nvmem-cell-names = "id\0cpu-version\0cpu-code"; - }; - - qos@fdf60400 { - compatible = "syscon"; - reg = <0x00 0xfdf60400 0x00 0x20>; - phandle = <0x8f>; - }; - - spi@feb20000 { - pinctrl-names = "default"; - #address-cells = <0x01>; - num-cs = <0x01>; - pinctrl-0 = <0x154 0x155>; - clock-names = "spiclk\0apb_pclk"; - assigned-clocks = <0x02 0xa5>; - assigned-clock-rates = <0xbebc200>; - interrupts = <0x00 0x148 0x04>; - clocks = <0x02 0xa5 0x02 0xa0>; - #size-cells = <0x00>; - dma-names = "tx\0rx"; - compatible = "rockchip,rk3066-spi"; - status = "okay"; - reg = <0x00 0xfeb20000 0x00 0x1000>; - phandle = <0x2ad>; - dmas = <0xf1 0x0f 0xf1 0x10>; - - rk806single@0 { - vcc11-supply = <0x15b>; - pinctrl-names = "default\0pmic-power-off"; - vcc12-supply = <0x78>; - vcc13-supply = <0x15c>; - vcc14-supply = <0x15c>; - pinctrl-0 = <0x156 0x157 0x158 0x159>; - interrupts = <0x07 0x08>; - spi-max-frequency = <0xf4240>; - interrupt-parent = <0x7b>; - low_voltage_threshold = <0xbb8>; - vcca-supply = <0x78>; - vcc1-supply = <0x78>; - pmic-reset-func = <0x01>; - vcc2-supply = <0x78>; - hotdie_temperture_threshold = <0x73>; - compatible = "rockchip,rk806"; - vcc3-supply = <0x78>; - pinctrl-1 = <0x15a>; - vcc4-supply = <0x78>; - vcc5-supply = <0x78>; - reg = <0x00>; - phandle = <0x2ae>; - vcc6-supply = <0x78>; - shutdown_voltage_threshold = <0xa8c>; - vcc7-supply = <0x78>; - vcc8-supply = <0x78>; - shutdown_temperture_threshold = <0xa0>; - vcc9-supply = <0x78>; - vcc10-supply = <0x78>; - - pinctrl_rk806 { - gpio-controller; - phandle = <0x2af>; - #gpio-cells = <0x02>; - - rk806_dvs2_rst { - function = "pin_fun3"; - pins = "gpio_pwrctrl2"; - phandle = <0x2b4>; - }; - - rk806_dvs3_null { - function = "pin_fun0"; - pins = "gpio_pwrctrl3"; - phandle = <0x159>; - }; - - rk806_dvs3_dvs { - function = "pin_fun4"; - pins = "gpio_pwrctrl3"; - phandle = <0x2ba>; - }; - - rk806_dvs3_rst { - function = "pin_fun3"; - pins = "gpio_pwrctrl3"; - phandle = <0x2b9>; - }; - - rk806_dvs2_null { - function = "pin_fun0"; - pins = "gpio_pwrctrl2"; - phandle = <0x158>; - }; - - rk806_dvs1_pwrdn { - function = "pin_fun2"; - pins = "gpio_pwrctrl1"; - phandle = <0x15a>; - }; - - rk806_dvs1_slp { - function = "pin_fun1"; - pins = "gpio_pwrctrl1"; - phandle = <0x2b0>; - }; - - rk806_dvs1_null { - function = "pin_fun0"; - pins = "gpio_pwrctrl2"; - phandle = <0x157>; - }; - - rk806_dvs3_gpio { - function = "pin_fun5"; - pins = "gpio_pwrctrl3"; - phandle = <0x2bb>; - }; - - rk806_dvs2_gpio { - function = "pin_fun5"; - pins = "gpio_pwrctrl2"; - phandle = <0x2b6>; - }; - - rk806_dvs2_slp { - function = "pin_fun1"; - pins = "gpio_pwrctrl2"; - phandle = <0x2b2>; - }; - - rk806_dvs2_pwrdn { - function = "pin_fun2"; - pins = "gpio_pwrctrl2"; - phandle = <0x2b3>; - }; - - rk806_dvs1_rst { - function = "pin_fun3"; - pins = "gpio_pwrctrl1"; - phandle = <0x2b1>; - }; - - rk806_dvs3_slp { - function = "pin_fun1"; - pins = "gpio_pwrctrl3"; - phandle = <0x2b7>; - }; - - rk806_dvs2_dvs { - function = "pin_fun4"; - pins = "gpio_pwrctrl2"; - phandle = <0x2b5>; - }; - - rk806_dvs3_pwrdn { - function = "pin_fun2"; - pins = "gpio_pwrctrl3"; - phandle = <0x2b8>; - }; - }; - - pwrkey { - status = "okay"; - }; - - regulators { - - PLDO_REG2 { - regulator-max-microvolt = <0x1b7740>; - regulator-boot-on; - regulator-always-on; - regulator-min-microvolt = <0x1b7740>; - regulator-name = "vcc_1v8_s0"; - phandle = <0x177>; - - regulator-state-mem { - regulator-off-in-suspend; - regulator-suspend-microvolt = <0x1b7740>; - }; - }; - - DCDC_REG4 { - regulator-max-microvolt = <0xe7ef0>; - regulator-boot-on; - regulator-init-microvolt = <0xb71b0>; - regulator-always-on; - regulator-min-microvolt = <0x86470>; - regulator-name = "vdd_vdenc_s0"; - regulator-ramp-delay = <0x30d4>; - phandle = <0x2bc>; - - regulator-state-mem { - regulator-off-in-suspend; - }; - }; - - DCDC_REG2 { - regulator-max-microvolt = <0xe7ef0>; - regulator-boot-on; - regulator-always-on; - regulator-min-microvolt = <0x86470>; - regulator-name = "vdd_cpu_lit_s0"; - regulator-ramp-delay = <0x30d4>; - phandle = <0x12>; - - regulator-state-mem { - regulator-off-in-suspend; - }; - }; - - NLDO_REG4 { - regulator-max-microvolt = <0xcf850>; - regulator-boot-on; - regulator-always-on; - regulator-min-microvolt = <0xcf850>; - regulator-name = "vdd_0v85_s0"; - phandle = <0x2c6>; - - regulator-state-mem { - regulator-off-in-suspend; - }; - }; - - DCDC_REG9 { - regulator-boot-on; - regulator-always-on; - regulator-name = "vddq_ddr_s0"; - phandle = <0x2bf>; - - regulator-state-mem { - regulator-off-in-suspend; - }; - }; - - NLDO_REG2 { - regulator-max-microvolt = <0xcf850>; - regulator-boot-on; - regulator-always-on; - regulator-min-microvolt = <0xcf850>; - regulator-name = "vdd_ddr_pll_s0"; - phandle = <0x2c5>; - - regulator-state-mem { - regulator-off-in-suspend; - regulator-suspend-microvolt = <0xcf850>; - }; - }; - - PLDO_REG5 { - regulator-max-microvolt = <0x325aa0>; - regulator-boot-on; - regulator-always-on; - regulator-min-microvolt = <0x1b7740>; - regulator-name = "vccio_sd_s0"; - phandle = <0x118>; - - regulator-state-mem { - regulator-off-in-suspend; - }; - }; - - DCDC_REG7 { - regulator-max-microvolt = <0x1e8480>; - regulator-boot-on; - regulator-always-on; - regulator-min-microvolt = <0x1e8480>; - regulator-name = "vdd_2v0_pldo_s3"; - phandle = <0x15b>; - - regulator-state-mem { - regulator-suspend-microvolt = <0x1e8480>; - regulator-on-in-suspend; - }; - }; - - PLDO_REG3 { - regulator-max-microvolt = <0x124f80>; - regulator-boot-on; - regulator-always-on; - regulator-min-microvolt = <0x124f80>; - regulator-name = "avdd_1v2_s0"; - phandle = <0x2c1>; - - regulator-state-mem { - regulator-off-in-suspend; - }; - }; - - DCDC_REG5 { - regulator-max-microvolt = <0xdbba0>; - regulator-boot-on; - regulator-always-on; - regulator-min-microvolt = <0xa4cb8>; - regulator-name = "vdd_ddr_s0"; - regulator-ramp-delay = <0x30d4>; - phandle = <0x42>; - - regulator-state-mem { - regulator-off-in-suspend; - regulator-suspend-microvolt = <0xcf850>; - }; - }; - - DCDC_REG10 { - regulator-max-microvolt = <0x1b7740>; - regulator-boot-on; - regulator-always-on; - regulator-min-microvolt = <0x1b7740>; - regulator-name = "vcc_1v8_s3"; - phandle = <0x2c0>; - - regulator-state-mem { - regulator-suspend-microvolt = <0x1b7740>; - regulator-on-in-suspend; - }; - }; - - PLDO_REG1 { - regulator-max-microvolt = <0x1b7740>; - regulator-boot-on; - regulator-always-on; - regulator-min-microvolt = <0x1b7740>; - regulator-name = "avcc_1v8_s0"; - phandle = <0x1de>; - - regulator-state-mem { - regulator-off-in-suspend; - }; - }; - - DCDC_REG3 { - regulator-max-microvolt = <0xb71b0>; - regulator-boot-on; - regulator-always-on; - regulator-min-microvolt = <0xa4cb8>; - regulator-name = "vdd_log_s0"; - regulator-ramp-delay = <0x30d4>; - phandle = <0x43>; - - regulator-state-mem { - regulator-suspend-microvolt = <0xb71b0>; - regulator-on-in-suspend; - }; - }; - - DCDC_REG1 { - regulator-max-microvolt = <0xe7ef0>; - regulator-boot-on; - regulator-enable-ramp-delay = <0x190>; - regulator-min-microvolt = <0x86470>; - regulator-name = "vdd_gpu_s0"; - regulator-ramp-delay = <0x30d4>; - phandle = <0x62>; - - regulator-state-mem { - regulator-off-in-suspend; - }; - }; - - NLDO_REG5 { - regulator-max-microvolt = <0xb71b0>; - regulator-boot-on; - regulator-always-on; - regulator-min-microvolt = <0xb71b0>; - regulator-name = "vdd_0v75_s0"; - phandle = <0x2c7>; - - regulator-state-mem { - regulator-off-in-suspend; - }; - }; - - NLDO_REG3 { - regulator-max-microvolt = <0xb71b0>; - regulator-boot-on; - regulator-always-on; - regulator-min-microvolt = <0xb71b0>; - regulator-name = "avdd_0v75_s0"; - phandle = <0x1df>; - - regulator-state-mem { - regulator-off-in-suspend; - }; - }; - - PLDO_REG6 { - regulator-max-microvolt = <0x1b7740>; - regulator-boot-on; - regulator-always-on; - regulator-min-microvolt = <0x1b7740>; - regulator-name = "pldo6_s3"; - phandle = <0x2c3>; - - regulator-state-mem { - regulator-suspend-microvolt = <0x1b7740>; - regulator-on-in-suspend; - }; - }; - - DCDC_REG8 { - regulator-max-microvolt = <0x325aa0>; - regulator-boot-on; - regulator-always-on; - regulator-min-microvolt = <0x325aa0>; - regulator-name = "vcc_3v3_s3"; - phandle = <0x2be>; - - regulator-state-mem { - regulator-suspend-microvolt = <0x325aa0>; - regulator-on-in-suspend; - }; - }; - - NLDO_REG1 { - regulator-max-microvolt = <0xb71b0>; - regulator-boot-on; - regulator-always-on; - regulator-min-microvolt = <0xb71b0>; - regulator-name = "vdd_0v75_s3"; - phandle = <0x2c4>; - - regulator-state-mem { - regulator-suspend-microvolt = <0xb71b0>; - regulator-on-in-suspend; - }; - }; - - PLDO_REG4 { - regulator-max-microvolt = <0x325aa0>; - regulator-boot-on; - regulator-always-on; - regulator-min-microvolt = <0x325aa0>; - regulator-name = "vcc_3v3_s0"; - phandle = <0x2c2>; - - regulator-state-mem { - regulator-off-in-suspend; - }; - }; - - DCDC_REG6 { - regulator-boot-on; - regulator-always-on; - regulator-name = "vdd2_ddr_s3"; - phandle = <0x2bd>; - - regulator-state-mem { - regulator-on-in-suspend; - }; - }; - }; - }; - }; - - usbhost3_0 { - #address-cells = <0x02>; - clock-names = "ref\0suspend\0bus\0utmi\0php\0pipe"; - clocks = <0x02 0x179 0x02 0x178 0x02 0x177 0x02 0x17a 0x02 0x166 0x02 0x181>; - #size-cells = <0x02>; - compatible = "rockchip,rk3588-dwc3\0rockchip,rk3399-dwc3"; - ranges; - status = "disabled"; - phandle = <0x258>; - - usb@fcd00000 { - snps,dis_enblslpm_quirk; - phy-names = "usb3-phy"; - snps,dis-u2-freeclk-exists-quirk; - phy_type = "utmi_wide"; - resets = <0x02 0x237>; - interrupts = <0x00 0xde 0x04>; - snps,dis_rxdet_inp3_quirk; - compatible = "snps,dwc3"; - snps,parkmode-disable-hs-quirk; - snps,dis-del-phy-power-chg-quirk; - status = "disabled"; - snps,parkmode-disable-ss-quirk; - phys = <0x70 0x04>; - reg = <0x00 0xfcd00000 0x00 0x400000>; - phandle = <0x259>; - dr_mode = "host"; - reset-names = "usb3-host"; - snps,dis-tx-ipgap-linecheck-quirk; - }; - }; - - pcie@fe190000 { - #address-cells = <0x03>; - rockchip,pipe-grf = <0x76>; - phy-names = "pcie-phy"; - bus-range = <0x40 0x4f>; - clock-names = "aclk_mst\0aclk_slv\0aclk_dbi\0pclk\0aux\0pipe"; - reg-names = "pcie-apb\0pcie-dbi"; - num-ob-windows = <0x08>; - resets = <0x02 0x211 0x02 0x220>; - interrupts = <0x00 0xfd 0x04 0x00 0xfc 0x04 0x00 0xfb 0x04 0x00 0xfa 0x04 0x00 0xf9 0x04>; - clocks = <0x02 0x152 0x02 0x157 0x02 0x14d 0x02 0x15d 0x02 0x162 0x02 0x182>; - interrupt-map = <0x00 0x00 0x00 0x01 0x107 0x00 0x00 0x00 0x00 0x02 0x107 0x01 0x00 0x00 0x00 0x03 0x107 0x02 0x00 0x00 0x00 0x04 0x107 0x03>; - #size-cells = <0x02>; - max-link-speed = <0x02>; - device_type = "pci"; - interrupt-map-mask = <0x00 0x00 0x00 0x07>; - num-lanes = <0x01>; - compatible = "rockchip,rk3588-pcie\0snps,dw-pcie"; - ranges = <0x800 0x00 0xf4000000 0x00 0xf4000000 0x00 0x100000 0x81000000 0x00 0xf4100000 0x00 0xf4100000 0x00 0x100000 0x82000000 0x00 0xf4200000 0x00 0xf4200000 0x00 0xe00000 0xc3000000 0x0a 0x00 0x0a 0x00 0x00 0x40000000>; - msi-map = <0x4000 0x106 0x4000 0x1000>; - #interrupt-cells = <0x01>; - status = "disabled"; - interrupt-names = "sys\0pmc\0msg\0legacy\0err"; - phys = <0x108 0x02>; - num-viewport = <0x04>; - reg = <0x00 0xfe190000 0x00 0x10000 0x0a 0x41000000 0x00 0x400000>; - linux,pci-domain = <0x04>; - phandle = <0x28d>; - reset-names = "pcie\0periph"; - num-ib-windows = <0x08>; - - legacy-interrupt-controller { - #address-cells = <0x00>; - interrupts = <0x00 0xfa 0x01>; - interrupt-parent = <0x01>; - #interrupt-cells = <0x01>; - phandle = <0x107>; - interrupt-controller; - }; - }; - - rkcif-mipi-lvds3-sditf-vir1 { - compatible = "rockchip,rkcif-sditf"; - status = "disabled"; - rockchip,cif = <0x57>; - phandle = <0x238>; - }; - - aliases { - i2c3 = "/i2c@feab0000"; - ethernet0 = "/ethernet@fe1b0000"; - pwm9 = "/pwm@febe0010"; - pwm14 = "/pwm@febf0020"; - spi2 = "/spi@feb20000"; - usbdp0 = "/phy@fed80000"; - gpio0 = "/pinctrl/gpio@fd8a0000"; - dsi1 = "/dsi@fde30000"; - hdmi1 = "/hdmi@fdea0000"; - serial7 = "/serial@feba0000"; - i2c1 = "/i2c@fea90000"; - pwm7 = "/pwm@febd0030"; - pwm12 = "/pwm@febf0000"; - jpege3 = "/jpege-core@fdbac000"; - spi0 = "/spi@feb00000"; - hdptx1 = "/phy@fed70000"; - csi2dphy5 = "/csi2-dphy5"; - serial5 = "/serial@feb80000"; - csi2dcphy1 = "/csi2-dcphy1"; - pwm5 = "/pwm@febd0010"; - mmc1 = "/mmc@fe2c0000"; - pwm10 = "/pwm@febe0020"; - jpege1 = "/jpege-core@fdba4000"; - rkcif_mipi_lvds4 = "/rkcif-mipi-lvds4"; - i2c8 = "/i2c@feca0000"; - dp0 = "/dp@fde50000"; - csi2dphy3 = "/csi2-dphy3"; - serial3 = "/serial@feb60000"; - edp0 = "/edp@fdec0000"; - pwm3 = "/pwm@fd8b0030"; - hdcp1 = "/hdcp@fde70000"; - rkcif_mipi_lvds2 = "/rkcif-mipi-lvds2"; - i2c6 = "/i2c@fec80000"; - csi2dphy1 = "/csi2-dphy1"; - serial1 = "/serial@feb40000"; - pwm1 = "/pwm@fd8b0010"; - rkvenc0 = "/rkvenc-core@fdbd0000"; - spi5 = "/spi@fe2b0000"; - gpio3 = "/pinctrl/gpio@fec40000"; - hdptxhdmi1 = "/hdmiphy@fed70000"; - rkcif_mipi_lvds0 = "/rkcif-mipi-lvds"; - i2c4 = "/i2c@feac0000"; - ethernet1 = "/ethernet@fe1c0000"; - rkvdec0 = "/rkvdec-core@fdc38000"; - pwm15 = "/pwm@febf0030"; - hdmirx0 = "/hdmirx-controller@fdee0000"; - spi3 = "/spi@feb30000"; - usbdp1 = "/phy@fed90000"; - gpio1 = "/pinctrl/gpio@fec20000"; - serial8 = "/serial@febb0000"; - i2c2 = "/i2c@feaa0000"; - pwm8 = "/pwm@febe0000"; - pwm13 = "/pwm@febf0010"; - spi1 = "/spi@feb10000"; - dsi0 = "/dsi@fde20000"; - hdmi0 = "/hdmi@fde80000"; - serial6 = "/serial@feb90000"; - i2c0 = "/i2c@fd880000"; - pwm6 = "/pwm@febd0020"; - mmc2 = "/mmc@fe2d0000"; - pwm11 = "/pwm@febe0030"; - jpege2 = "/jpege-core@fdba8000"; - hdptx0 = "/phy@fed60000"; - rkcif_mipi_lvds5 = "/rkcif-mipi-lvds5"; - dp1 = "/dp@fde60000"; - csi2dphy4 = "/csi2-dphy4"; - serial4 = "/serial@feb70000"; - edp1 = "/edp@fded0000"; - csi2dcphy0 = "/csi2-dcphy0"; - pwm4 = "/pwm@febd0000"; - mmc0 = "/mmc@fe2e0000"; - jpege0 = "/jpege-core@fdba0000"; - rkcif_mipi_lvds3 = "/rkcif-mipi-lvds3"; - i2c7 = "/i2c@fec90000"; - csi2dphy2 = "/csi2-dphy2"; - serial2 = "/serial@feb50000"; - pwm2 = "/pwm@fd8b0020"; - rkvenc1 = "/rkvenc-core@fdbe0000"; - gpio4 = "/pinctrl/gpio@fec50000"; - hdcp0 = "/hdcp@fde40000"; - rkcif_mipi_lvds1 = "/rkcif-mipi-lvds1"; - i2c5 = "/i2c@fead0000"; - csi2dphy0 = "/csi2-dphy0"; - serial0 = "/serial@fd890000"; - rkvdec1 = "/rkvdec-core@fdc48000"; - pwm0 = "/pwm@fd8b0000"; - spi4 = "/spi@fecb0000"; - gpio2 = "/pinctrl/gpio@fec30000"; - hdptxhdmi0 = "/hdmiphy@fed60000"; - serial9 = "/serial@febc0000"; - }; - - spdif-tx@fdde8000 { - power-domains = <0x60 0x1a>; - clock-names = "mclk\0hclk"; - assigned-clocks = <0x02 0x259>; - assigned-clock-parents = <0x02 0x05>; - interrupts = <0x00 0xc5 0x04>; - clocks = <0x02 0x25c 0x02 0x258>; - dma-names = "tx"; - #sound-dai-cells = <0x00>; - compatible = "rockchip,rk3588-spdif\0rockchip,rk3568-spdif"; - status = "disabled"; - reg = <0x00 0xfdde8000 0x00 0x1000>; - phandle = <0x47d>; - dmas = <0xf1 0x08>; - }; - - i2s@fe490000 { - power-domains = <0x60 0x26>; - pinctrl-names = "default\0idle\0clk"; - pinctrl-2 = <0x12d 0x12e>; - pinctrl-0 = <0x12a 0x12b>; - clock-names = "i2s_clk\0i2s_hclk"; - assigned-clocks = <0x02 0x24>; - assigned-clock-parents = <0x02 0x05>; - interrupts = <0x00 0xb6 0x04>; - clocks = <0x02 0x27 0x02 0x22>; - dma-names = "tx\0rx"; - #sound-dai-cells = <0x00>; - compatible = "rockchip,rk3588-i2s\0rockchip,rk3066-i2s"; - pinctrl-1 = <0x12c>; - status = "disabled"; - reg = <0x00 0xfe490000 0x00 0x1000>; - phandle = <0x298>; - dmas = <0xf1 0x00 0xf1 0x01>; - rockchip,clk-trcm = <0x01>; - }; - - syscon@fd5d0000 { - #address-cells = <0x01>; - #size-cells = <0x01>; - compatible = "rockchip,rk3588-usb2phy-grf\0syscon\0simple-mfd"; - reg = <0x00 0xfd5d0000 0x00 0x4000>; - phandle = <0x18b>; - - usb2-phy@0 { - clock-output-names = "usb480m_phy0"; - clock-names = "phyclk"; - resets = <0x02 0xc0047 0x02 0x488>; - interrupts = <0x00 0x189 0x04>; - clocks = <0x02 0x2b5>; - #clock-cells = <0x00>; - rockchip,usbctrl-grf = <0x74>; - compatible = "rockchip,rk3588-usb2phy"; - status = "okay"; - reg = <0x00 0x10>; - phandle = <0x18d>; - reset-names = "phy\0apb"; - - otg-port { - #phy-cells = <0x00>; - rockchip,typec-vbus-det; - status = "okay"; - phandle = <0x66>; - }; - }; - }; - - i2c@feac0000 { - pinctrl-names = "default"; - #address-cells = <0x01>; - pinctrl-0 = <0x14b>; - clock-names = "i2c\0pclk"; - resets = <0x02 0xb3 0x02 0xab>; - interrupts = <0x00 0x141 0x04>; - clocks = <0x02 0x90 0x02 0x88>; - #size-cells = <0x00>; - compatible = "rockchip,rk3588-i2c\0rockchip,rk3399-i2c"; - status = "okay"; - reg = <0x00 0xfeac0000 0x00 0x1000>; - phandle = <0x2a7>; - reset-names = "i2c\0apb"; - - pc9202@3c { - pinctrl-names = "default"; - pinctrl-0 = <0x14c>; - index = <0x01>; - compatible = "firefly,pc9202"; - status = "okay"; - wd-en-gpio = <0x7b 0x14 0x00>; - driver-names = "wdt_base"; - reg = <0x3c>; - }; - }; - - rkcif-mipi-lvds5-sditf { - compatible = "rockchip,rkcif-sditf"; - status = "disabled"; - rockchip,cif = <0x1a2>; - phandle = <0x476>; - }; - - firmware { - - optee { - method = "smc"; - compatible = "linaro,optee-tz"; - phandle = <0x222>; - }; - - sdei { - method = "smc"; - compatible = "arm,sdei-1.0"; - phandle = <0x221>; - }; - - scmi { - shmem = <0x46>; - #address-cells = <0x01>; - #size-cells = <0x00>; - compatible = "arm,scmi-smc"; - phandle = <0x220>; - arm,smc-id = <0x82000010>; - - protocol@16 { - #reset-cells = <0x01>; - reg = <0x16>; - phandle = <0x11a>; - }; - - protocol@14 { - assigned-clocks = <0x0e 0x00 0x0e 0x02 0x0e 0x03>; - assigned-clock-rates = <0x30a32c00 0x30a32c00 0x30a32c00>; - #clock-cells = <0x01>; - reg = <0x14>; - phandle = <0x0e>; - }; - }; - }; - - rkvenc-core@fdbd0000 { - power-domains = <0x60 0x10>; - iommus = <0xc2>; - rockchip,ccu = <0xc3>; - clock-names = "aclk_vcodec\0hclk_vcodec\0clk_core"; - assigned-clocks = <0x02 0x1c5 0x02 0x1c6>; - rockchip,task-capacity = <0x08>; - rockchip,normal-rates = <0x1dcd6500 0x00 0x2faf0800>; - assigned-clock-rates = <0x1dcd6500 0x2faf0800>; - resets = <0x02 0x2f5 0x02 0x2f4 0x02 0x2f6>; - interrupts = <0x00 0x65 0x04>; - clocks = <0x02 0x1c5 0x02 0x1c4 0x02 0x1c6>; - rockchip,srv = <0xb8>; - rockchip,taskqueue-node = <0x07>; - compatible = "rockchip,rkv-encoder-v2-core"; - status = "okay"; - interrupt-names = "irq_rkvenc0"; - rockchip,skip-pmu-idle-request; - reg = <0x00 0xfdbd0000 0x00 0x6000>; - phandle = <0x272>; - reset-names = "video_a\0video_h\0video_core"; - operating-points-v2 = <0xc4>; - }; - - iommu@fdcc7f00 { - power-domains = <0x60 0x1c>; - clock-names = "aclk\0iface"; - interrupts = <0x00 0x88 0x04>; - clocks = <0x02 0x120 0x02 0x121>; - #iommu-cells = <0x00>; - compatible = "rockchip,iommu-v2"; - rockchip,disable-mmu-reset; - status = "disabled"; - interrupt-names = "isp1_mmu"; - reg = <0x00 0xfdcc7f00 0x00 0x100>; - phandle = <0xd1>; - }; - - rkcif-mipi-lvds-sditf { - compatible = "rockchip,rkcif-sditf"; - status = "disabled"; - rockchip,cif = <0x52>; - phandle = <0x22b>; - }; - - syscon@fd5c8000 { - compatible = "rockchip,rk3588-usbdpphy-grf\0syscon"; - reg = <0x00 0xfd5c8000 0x00 0x4000>; - phandle = <0x18c>; - }; - - gpu@fb000000 { - power-domains = <0x60 0x0c>; - downdifferential = <0x0a>; - mali-supply = <0x62>; - clock-names = "clk_mali\0clk_gpu_coregroup\0clk_gpu_stacks\0clk_gpu"; - assigned-clocks = <0x0e 0x05>; - assigned-clock-rates = <0xbebc200>; - interrupts = <0x00 0x5e 0x04 0x00 0x5d 0x04 0x00 0x5c 0x04>; - clocks = <0x0e 0x05 0x02 0x115 0x02 0x116 0x02 0x114>; - upthreshold = <0x1e>; - compatible = "arm,mali-bifrost"; - dynamic-power-coefficient = <0xba6>; - status = "okay"; - interrupt-names = "GPU\0MMU\0JOB"; - mem-supply = <0x62>; - reg = <0x00 0xfb000000 0x00 0x200000>; - phandle = <0x5f>; - operating-points-v2 = <0x61>; - #cooling-cells = <0x02>; - }; - - csi2-dphy4 { - rockchip,hw = <0x2d 0x2e>; - phy-names = "dcphy0\0dcphy1"; - compatible = "rockchip,rk3588-csi2-dphy"; - status = "disabled"; - phys = <0x2f 0x30>; - phandle = <0x213>; - }; - - mipi4-csi2-hw@fdd50000 { - clock-names = "pclk_csi2host"; - reg-names = "csihost_regs"; - resets = <0x02 0x328>; - interrupts = <0x00 0x97 0x04 0x00 0x98 0x04>; - clocks = <0x02 0x1d3>; - compatible = "rockchip,rk3588-mipi-csi2-hw"; - status = "okay"; - interrupt-names = "csi-intr1\0csi-intr2"; - reg = <0x00 0xfdd50000 0x00 0x10000>; - phandle = <0x4b>; - reset-names = "srst_csihost_p"; - }; - - qos@fdf82000 { - compatible = "syscon"; - reg = <0x00 0xfdf82000 0x00 0x20>; - phandle = <0x9d>; - }; - - rkcif-mipi-lvds2-sditf-vir2 { - compatible = "rockchip,rkcif-sditf"; - status = "disabled"; - rockchip,cif = <0x55>; - phandle = <0x235>; - }; - - rkisp1-vir0 { - rockchip,hw = <0x5a>; - compatible = "rockchip,rkisp-vir"; - status = "disabled"; - phandle = <0x23f>; - }; - - qos@fdf41100 { - compatible = "syscon"; - reg = <0x00 0xfdf41100 0x00 0x20>; - phandle = <0xa7>; - }; - - test-power { - status = "okay"; - }; - - usb-5v { - pinctrl-names = "default"; - regulator-boot-on; - gpio = <0xfe 0x03 0x00>; - pinctrl-0 = <0x1ef>; - regulator-always-on; - enable-active-high; - regulator-name = "usb_5v"; - compatible = "regulator-fixed"; - status = "okay"; - phandle = <0x4b1>; - }; - - phy@feda0000 { - clock-names = "pclk\0ref"; - resets = <0x02 0xc0043 0x02 0x3e 0x02 0x3f 0x02 0xc0044>; - clocks = <0x02 0x108 0x02 0x2b6>; - #phy-cells = <0x00>; - compatible = "rockchip,rk3588-mipi-dcphy"; - status = "okay"; - rockchip,grf = <0x190>; - reg = <0x00 0xfeda0000 0x00 0x10000>; - phandle = <0x2f>; - reset-names = "m_phy\0apb\0grf\0s_phy"; - }; - - mod-sleep-regulator { - pinctrl-names = "default"; - regulator-boot-on; - gpio = <0x7b 0x15 0x00>; - pinctrl-0 = <0x1ee>; - regulator-always-on; - enable-active-high; - regulator-name = "mod_sleep"; - compatible = "regulator-fixed"; - status = "okay"; - phandle = <0x4ae>; - - regulator-state-mem { - regulator-on-in-suspend; - }; - }; - - qos@fdf66c00 { - compatible = "syscon"; - reg = <0x00 0xfdf66c00 0x00 0x20>; - phandle = <0x99>; - }; - - crypto@fe370000 { - clock-names = "aclk\0hclk\0sclk\0pka"; - resets = <0x11a 0x0f>; - interrupts = <0x00 0xd1 0x04>; - clocks = <0x0e 0x0b 0x0e 0x0c 0x0e 0x14 0x0e 0x15>; - compatible = "rockchip,rk3588-crypto"; - status = "disabled"; - reg = <0x00 0xfe370000 0x00 0x2000>; - phandle = <0x296>; - reset-names = "crypto-rst"; - }; - - i2s@fddf4000 { - power-domains = <0x60 0x1a>; - rockchip,always-on; - clock-names = "mclk_tx\0mclk_rx\0hclk"; - assigned-clocks = <0x02 0x249>; - assigned-clock-parents = <0x02 0x07>; - resets = <0x02 0x3ef>; - interrupts = <0x00 0xba 0x04>; - clocks = <0x02 0x24c 0x02 0x24c 0x02 0x252>; - dma-names = "tx"; - #sound-dai-cells = <0x00>; - compatible = "rockchip,rk3588-i2s-tdm"; - rockchip,playback-only; - status = "okay"; - reg = <0x00 0xfddf4000 0x00 0x1000>; - phandle = <0x1e0>; - dmas = <0xf2 0x04>; - reset-names = "tx-m"; - rockchip,hdmi-path; - }; - - mipi0-csi2-hw@fdd10000 { - clock-names = "pclk_csi2host"; - reg-names = "csihost_regs"; - resets = <0x02 0x324>; - interrupts = <0x00 0x8f 0x04 0x00 0x90 0x04>; - clocks = <0x02 0x1cf>; - compatible = "rockchip,rk3588-mipi-csi2-hw"; - status = "okay"; - interrupt-names = "csi-intr1\0csi-intr2"; - reg = <0x00 0xfdd10000 0x00 0x10000>; - phandle = <0x47>; - reset-names = "srst_csihost_p"; - }; - - mipi4-csi2 { - rockchip,hw = <0x47 0x48 0x49 0x4a 0x4b 0x4c>; - compatible = "rockchip,rk3588-mipi-csi2"; - status = "disabled"; - phandle = <0x228>; - }; - - jpege-ccu { - compatible = "rockchip,vpu-jpege-ccu"; - status = "okay"; - phandle = <0xbd>; - }; - - dsi@fde30000 { - power-domains = <0x60 0x18>; - #address-cells = <0x01>; - phy-names = "dcphy"; - clock-names = "pclk\0sys_clk"; - resets = <0x02 0x355>; - interrupts = <0x00 0xa8 0x04>; - clocks = <0x02 0x279 0x02 0x27b>; - #size-cells = <0x00>; - compatible = "rockchip,rk3588-mipi-dsi2"; - status = "disabled"; - rockchip,grf = <0xd7>; - phys = <0x30>; - reg = <0x00 0xfde30000 0x00 0x10000>; - phandle = <0x283>; - reset-names = "apb"; - - ports { - #address-cells = <0x01>; - #size-cells = <0x00>; - - port@0 { - #address-cells = <0x01>; - #size-cells = <0x00>; - reg = <0x00>; - phandle = <0x284>; - - endpoint@1 { - remote-endpoint = <0x3a>; - status = "disabled"; - reg = <0x01>; - phandle = <0xef>; - }; - - endpoint@0 { - remote-endpoint = <0xf4>; - status = "disabled"; - reg = <0x00>; - phandle = <0xea>; - }; - }; - }; - }; - - iommu@fcb00000 { - interrupts = <0x00 0x17d 0x04 0x00 0x17f 0x04 0x00 0x182 0x04 0x00 0x17b 0x04>; - #iommu-cells = <0x01>; - compatible = "arm,smmu-v3"; - status = "disabled"; - interrupt-names = "eventq\0gerror\0priq\0cmdq-sync"; - reg = <0x00 0xfcb00000 0x00 0x200000>; - phandle = <0x257>; - }; - - rkcif-mipi-lvds3 { - iommus = <0x50>; - rockchip,hw = <0x4f>; - compatible = "rockchip,rkcif-mipi-lvds"; - status = "disabled"; - phandle = <0x57>; - }; - - vcc-hub-regulator { - regulator-boot-on; - gpio = <0x182 0x01 0x00>; - regulator-always-on; - enable-active-high; - regulator-name = "vcc_hub"; - compatible = "regulator-fixed"; - status = "okay"; - phandle = <0x4af>; - }; - - syscon@fd5ac000 { - compatible = "rockchip,rk3588-usb-grf\0syscon"; - reg = <0x00 0xfd5ac000 0x00 0x4000>; - phandle = <0x74>; - }; - - qos@fdf40200 { - compatible = "syscon"; - reg = <0x00 0xfdf40200 0x00 0x20>; - phandle = <0xa9>; - }; - - rkisp@fdcb0000 { - power-domains = <0x60 0x1b>; - iommus = <0xd0>; - clock-names = "aclk_isp\0hclk_isp\0clk_isp_core\0clk_isp_core_marvin\0clk_isp_core_vicap"; - interrupts = <0x00 0x83 0x04 0x00 0x85 0x04 0x00 0x86 0x04>; - clocks = <0x02 0x1de 0x02 0x1df 0x02 0x1db 0x02 0x1dc 0x02 0x1dd>; - compatible = "rockchip,rk3588-rkisp"; - status = "okay"; - interrupt-names = "isp_irq\0mi_irq\0mipi_irq"; - reg = <0x00 0xfdcb0000 0x00 0x7f00>; - phandle = <0x58>; - }; - - serial@feba0000 { - reg-io-width = <0x04>; - pinctrl-names = "default"; - pinctrl-0 = <0x166>; - clock-names = "baudclk\0apb_pclk"; - interrupts = <0x00 0x152 0x04>; - clocks = <0x02 0xcf 0x02 0xb1>; - compatible = "rockchip,rk3588-uart\0snps,dw-apb-uart"; - status = "disabled"; - reg = <0x00 0xfeba0000 0x00 0x100>; - phandle = <0x2cf>; - dmas = <0xf2 0x07 0xf2 0x08>; - reg-shift = <0x02>; - }; - - rkcif-mipi-lvds1-sditf-vir3 { - compatible = "rockchip,rkcif-sditf"; - status = "disabled"; - rockchip,cif = <0x53>; - phandle = <0x232>; - }; - - chosen { - linux,initrd-end = <0x00 0xaac72ae>; - bootargs = "storagemedia=emmc androidboot.storagemedia=emmc androidboot.mode=normal storagenode=/mmc@fe2e0000 androidboot.verifiedbootstate=orange ro rootwait earlycon=uart8250,mmio32,0xfeb50000 console=ttyFIQ0 irqchip.gicv3_pseudo_nmi=0 root=PARTLABEL=rootfs rootfstype=ext4 overlayroot=device:dev=PARTLABEL=userdata,fstype=ext4,mkfs=1 coherent_pool=1m systemd.gpt_auto=0 cgroup_enable=memory swapaccount=1 net.ifnames=0 rcupdate.rcu_expedited=0 comm-05/28/2025 androidboot.fwver=ddr-v1.15-d5483af87d,spl-v1.13,bl31-v1.44,bl32-v1.15,uboot--boot"; - linux,initrd-start = <0x00 0xa200000>; - phandle = <0x48d>; - }; - - hdmi@fde80000 { - power-domains = <0x60 0x1a>; - reg-io-width = <0x04>; - pinctrl-names = "default"; - phy-names = "hdmi"; - pinctrl-0 = <0xf9 0xfa 0xfb 0xfc>; - clock-names = "pclk\0hpd\0earc\0hdmitx_ref\0aud\0dclk_vp0\0dclk_vp1\0dclk_vp2\0dclk_vp3\0hclk_vo1\0link_clk"; - resets = <0x02 0x3d0 0x02 0x49c>; - interrupts = <0x00 0xa9 0x04 0x00 0xaa 0x04 0x00 0xab 0x04 0x00 0xac 0x04 0x00 0x168 0x04>; - clocks = <0x02 0x221 0x02 0x265 0x02 0x222 0x02 0x223 0x02 0x246 0x02 0x274 0x02 0x275 0x02 0x276 0x02 0x277 0x05 0x35>; - #sound-dai-cells = <0x00>; - compatible = "rockchip,rk3588-dw-hdmi"; - status = "okay"; - rockchip,grf = <0xc8>; - phys = <0xfd>; - enable-gpios = <0xfe 0x08 0x00>; - reg = <0x00 0xfde80000 0x00 0x10000 0x00 0xfde90000 0x00 0x10000>; - phandle = <0x1d4>; - reset-names = "ref\0hdp"; - rockchip,vo1_grf = <0xd8>; - - ports { - #address-cells = <0x01>; - #size-cells = <0x00>; - - port@0 { - #address-cells = <0x01>; - #size-cells = <0x00>; - reg = <0x00>; - phandle = <0x288>; - - endpoint@1 { - remote-endpoint = <0xff>; - status = "disabled"; - reg = <0x01>; - phandle = <0xe2>; - }; - - endpoint@2 { - remote-endpoint = <0x100>; - status = "disabled"; - reg = <0x02>; - phandle = <0xe8>; - }; - - endpoint@0 { - remote-endpoint = <0x3c>; - status = "okay"; - reg = <0x00>; - phandle = <0xdc>; - }; - }; - }; - }; - - cluster2-opp-table { - rockchip,pvtm-offset = <0x18>; - rockchip,pvtm-sample-time = <0x44c>; - rockchip,pvtm-hw = <0x06>; - nvmem-cells = <0x27 0x28 0x21>; - rockchip,low-temp = <0x2710>; - rockchip,pvtm-voltage-sel-hw = <0x00 0x603 0x00 0x604 0x61c 0x01 0x61d 0x635 0x02 0x636 0x64e 0x03 0x64f 0x66c 0x04 0x66d 0x68a 0x05 0x68b 0x6a8 0x06 0x6a9 0x270f 0x07>; - rockchip,pvtm-thermal-zone = "soc-thermal"; - rockchip,pvtm-low-len-sel = <0x03>; - rockchip,high-temp-max-freq = <0x21b100>; - opp-shared; - rockchip,reboot-freq = <0x1b7740>; - rockchip,pvtm-freq = <0x188940>; - rockchip,pvtm-ref-temp = <0x19>; - low-volt-mem-read-margin = <0x04>; - volt-mem-read-margin = <0xd0bd8 0x01 0xbac48 0x02 0xa4cb8 0x03 0x78d98 0x04>; - compatible = "operating-points-v2"; - rockchip,low-temp-min-volt = <0xb71b0>; - rockchip,grf = <0x29>; - nvmem-cell-names = "leakage\0opp-info\0specification_serial_number"; - rockchip,pvtm-voltage-sel = <0x00 0x63b 0x00 0x63c 0x64f 0x01 0x650 0x668 0x02 0x669 0x68b 0x03 0x68c 0x6ae 0x04 0x6af 0x6cf 0x05 0x6d0 0x6f0 0x06 0x6f1 0x270f 0x07>; - phandle = <0x1a>; - rockchip,idle-threshold-freq = <0x21b100>; - rockchip,pvtm-temp-prop = <0x10e 0x10e>; - rockchip,temp-hysteresis = <0x1388>; - rockchip,high-temp = <0x14c08>; - rockchip,pvtm-pvtpll; - rockchip,supported-hw; - intermediate-threshold-freq = <0xf6180>; - rockchip,pvtm-volt = <0xb71b0>; - - opp-j-m-2016000000 { - opp-microvolt = <0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0>; - opp-microvolt-L6 = <0xd8acc 0xd8acc 0xe7ef0 0xd8acc 0xd8acc 0xe7ef0>; - opp-microvolt-L4 = <0xdec74 0xdec74 0xe7ef0 0xdec74 0xdec74 0xe7ef0>; - opp-microvolt-L2 = <0xe4e1c 0xe4e1c 0xe7ef0 0xe4e1c 0xe4e1c 0xe7ef0>; - opp-hz = <0x00 0x7829b800>; - opp-supported-hw = <0x06 0xffff>; - opp-microvolt-L7 = <0xd59f8 0xd59f8 0xe7ef0 0xd59f8 0xd59f8 0xe7ef0>; - opp-microvolt-L5 = <0xdbba0 0xdbba0 0xe7ef0 0xdbba0 0xdbba0 0xe7ef0>; - opp-microvolt-L3 = <0xe1d48 0xe1d48 0xe7ef0 0xe1d48 0xe1d48 0xe7ef0>; - clock-latency-ns = <0x9c40>; - opp-microvolt-L1 = <0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0>; - }; - - opp-1200000000 { - opp-microvolt = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; - opp-hz = <0x00 0x47868c00>; - opp-supported-hw = <0xf9 0xffff>; - clock-latency-ns = <0x9c40>; - }; - - opp-j-m-1416000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - opp-hz = <0x00 0x54667200>; - opp-microvolt-L0 = <0xba284 0xba284 0xe7ef0 0xba284 0xba284 0xe7ef0>; - opp-supported-hw = <0x06 0xffff>; - opp-suspend; - clock-latency-ns = <0x9c40>; - }; - - opp-1008000000 { - opp-microvolt = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; - opp-hz = <0x00 0x3c14dc00>; - opp-supported-hw = <0xf9 0xffff>; - clock-latency-ns = <0x9c40>; - }; - - opp-2256000000 { - opp-microvolt = <0xf4240 0xf4240 0xf4240 0xf4240 0xf4240 0xf4240>; - opp-hz = <0x00 0x8677d400>; - opp-supported-hw = <0xf9 0x13>; - clock-latency-ns = <0x9c40>; - }; - - opp-j-m-1200000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - opp-hz = <0x00 0x47868c00>; - opp-supported-hw = <0x06 0xffff>; - clock-latency-ns = <0x9c40>; - }; - - opp-j-m-1008000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - opp-hz = <0x00 0x3c14dc00>; - opp-supported-hw = <0x06 0xffff>; - clock-latency-ns = <0x9c40>; - }; - - opp-j-m-816000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - opp-hz = <0x00 0x30a32c00>; - opp-supported-hw = <0x06 0xffff>; - clock-latency-ns = <0x9c40>; - }; - - opp-2400000000 { - opp-microvolt = <0xf4240 0xf4240 0xf4240 0xf4240 0xf4240 0xf4240>; - opp-hz = <0x00 0x8f0d1800>; - opp-supported-hw = <0xf9 0x80>; - clock-latency-ns = <0x9c40>; - }; - - opp-1800000000 { - opp-microvolt = <0xcf850 0xcf850 0xf4240 0xcf850 0xcf850 0xf4240>; - opp-microvolt-L6 = <0xbd358 0xbd358 0xf4240 0xbd358 0xbd358 0xf4240>; - opp-microvolt-L4 = <0xc3500 0xc3500 0xf4240 0xc3500 0xc3500 0xf4240>; - opp-microvolt-L2 = <0xc96a8 0xc96a8 0xf4240 0xc96a8 0xc96a8 0xf4240>; - opp-hz = <0x00 0x6b49d200>; - opp-supported-hw = <0xf9 0xffff>; - opp-microvolt-L7 = <0xba284 0xba284 0xf4240 0xba284 0xba284 0xf4240>; - opp-microvolt-L5 = <0xc042c 0xc042c 0xf4240 0xc042c 0xc042c 0xf4240>; - opp-microvolt-L3 = <0xc65d4 0xc65d4 0xf4240 0xc65d4 0xc65d4 0xf4240>; - clock-latency-ns = <0x9c40>; - opp-microvolt-L1 = <0xcc77c 0xcc77c 0xf4240 0xcc77c 0xcc77c 0xf4240>; - }; - - opp-j-m-600000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - opp-hz = <0x00 0x23c34600>; - opp-supported-hw = <0x06 0xffff>; - clock-latency-ns = <0x9c40>; - }; - - opp-2208000000 { - opp-microvolt = <0xf116c 0xf116c 0xf4240 0xf116c 0xf116c 0xf4240>; - opp-microvolt-L6 = <0xe1d48 0xe1d48 0xf4240 0xe1d48 0xe1d48 0xf4240>; - opp-microvolt-L4 = <0xeafc4 0xeafc4 0xf4240 0xeafc4 0xeafc4 0xf4240>; - opp-hz = <0x00 0x839b6800>; - opp-supported-hw = <0xf9 0xffff>; - opp-microvolt-L7 = <0xdec74 0xdec74 0xf4240 0xdec74 0xdec74 0xf4240>; - opp-microvolt-L5 = <0xe7ef0 0xe7ef0 0xf4240 0xe7ef0 0xe7ef0 0xf4240>; - opp-microvolt-L3 = <0xee098 0xee098 0xf4240 0xee098 0xee098 0xf4240>; - clock-latency-ns = <0x9c40>; - }; - - opp-1608000000 { - opp-microvolt = <0xba284 0xba284 0xf4240 0xba284 0xba284 0xf4240>; - opp-microvolt-L6 = <0xaae60 0xaae60 0xf4240 0xaae60 0xaae60 0xf4240>; - opp-microvolt-L4 = <0xb1008 0xb1008 0xf4240 0xb1008 0xb1008 0xf4240>; - opp-microvolt-L2 = <0xb71b0 0xb71b0 0xf4240 0xb71b0 0xb71b0 0xf4240>; - opp-hz = <0x00 0x5fd82200>; - opp-supported-hw = <0xf9 0xffff>; - opp-microvolt-L7 = <0xaae60 0xaae60 0xf4240 0xaae60 0xaae60 0xf4240>; - opp-microvolt-L5 = <0xadf34 0xadf34 0xf4240 0xadf34 0xadf34 0xf4240>; - opp-microvolt-L3 = <0xb40dc 0xb40dc 0xf4240 0xb40dc 0xb40dc 0xf4240>; - clock-latency-ns = <0x9c40>; - }; - - opp-j-m-408000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - opp-hz = <0x00 0x18519600>; - opp-supported-hw = <0x06 0xffff>; - clock-latency-ns = <0x9c40>; - }; - - opp-j-m-1800000000 { - opp-microvolt = <0xd59f8 0xd59f8 0xe7ef0 0xd59f8 0xd59f8 0xe7ef0>; - opp-microvolt-L6 = <0xc3500 0xc3500 0xe7ef0 0xc3500 0xc3500 0xe7ef0>; - opp-microvolt-L4 = <0xc96a8 0xc96a8 0xe7ef0 0xc96a8 0xc96a8 0xe7ef0>; - opp-microvolt-L2 = <0xcf850 0xcf850 0xe7ef0 0xcf850 0xcf850 0xe7ef0>; - opp-hz = <0x00 0x6b49d200>; - opp-supported-hw = <0x06 0xffff>; - opp-microvolt-L7 = <0xc042c 0xc042c 0xe7ef0 0xc042c 0xc042c 0xe7ef0>; - opp-microvolt-L5 = <0xc65d4 0xc65d4 0xe7ef0 0xc65d4 0xc65d4 0xe7ef0>; - opp-microvolt-L3 = <0xcc77c 0xcc77c 0xe7ef0 0xcc77c 0xcc77c 0xe7ef0>; - clock-latency-ns = <0x9c40>; - opp-microvolt-L1 = <0xd2924 0xd2924 0xe7ef0 0xd2924 0xd2924 0xe7ef0>; - }; - - opp-2352000000 { - opp-microvolt = <0xf4240 0xf4240 0xf4240 0xf4240 0xf4240 0xf4240>; - opp-hz = <0x00 0x8c30ac00>; - opp-supported-hw = <0xf9 0x48>; - clock-latency-ns = <0x9c40>; - }; - - opp-816000000 { - opp-microvolt = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; - opp-hz = <0x00 0x30a32c00>; - opp-supported-hw = <0xf9 0xffff>; - clock-latency-ns = <0x9c40>; - }; - - opp-j-m-1608000000 { - opp-microvolt = <0xc042c 0xc042c 0xe7ef0 0xc042c 0xc042c 0xe7ef0>; - opp-microvolt-L6 = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - opp-microvolt-L4 = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - opp-microvolt-L2 = <0xbd358 0xbd358 0xe7ef0 0xbd358 0xbd358 0xe7ef0>; - opp-hz = <0x00 0x5fd82200>; - opp-supported-hw = <0x06 0xffff>; - opp-microvolt-L7 = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - opp-microvolt-L5 = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - opp-microvolt-L3 = <0xba284 0xba284 0xe7ef0 0xba284 0xba284 0xe7ef0>; - clock-latency-ns = <0x9c40>; - }; - - opp-600000000 { - opp-microvolt = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; - opp-hz = <0x00 0x23c34600>; - opp-supported-hw = <0xf9 0xffff>; - clock-latency-ns = <0x9c40>; - }; - - opp-2016000000 { - opp-microvolt = <0xe1d48 0xe1d48 0xf4240 0xe1d48 0xe1d48 0xf4240>; - opp-microvolt-L6 = <0xcf850 0xcf850 0xf4240 0xcf850 0xcf850 0xf4240>; - opp-microvolt-L4 = <0xd59f8 0xd59f8 0xf4240 0xd59f8 0xd59f8 0xf4240>; - opp-microvolt-L2 = <0xdbba0 0xdbba0 0xf4240 0xdbba0 0xdbba0 0xf4240>; - opp-hz = <0x00 0x7829b800>; - opp-supported-hw = <0xf9 0xffff>; - opp-microvolt-L7 = <0xcc77c 0xcc77c 0xf4240 0xcc77c 0xcc77c 0xf4240>; - opp-microvolt-L5 = <0xd2924 0xd2924 0xf4240 0xd2924 0xd2924 0xf4240>; - opp-microvolt-L3 = <0xd8acc 0xd8acc 0xf4240 0xd8acc 0xd8acc 0xf4240>; - clock-latency-ns = <0x9c40>; - opp-microvolt-L1 = <0xdec74 0xdec74 0xf4240 0xdec74 0xdec74 0xf4240>; - }; - - opp-1416000000 { - opp-microvolt = <0xb1008 0xb1008 0xf4240 0xb1008 0xb1008 0xf4240>; - opp-microvolt-L6 = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; - opp-microvolt-L4 = <0xaae60 0xaae60 0xf4240 0xaae60 0xaae60 0xf4240>; - opp-microvolt-L2 = <0xadf34 0xadf34 0xf4240 0xadf34 0xadf34 0xf4240>; - opp-hz = <0x00 0x54667200>; - opp-supported-hw = <0xf9 0xffff>; - opp-microvolt-L7 = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; - opp-microvolt-L5 = <0xa7d8c 0xa7d8c 0xf4240 0xa7d8c 0xa7d8c 0xf4240>; - opp-microvolt-L3 = <0xaae60 0xaae60 0xf4240 0xaae60 0xaae60 0xf4240>; - clock-latency-ns = <0x9c40>; - }; - - opp-408000000 { - opp-microvolt = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; - opp-hz = <0x00 0x18519600>; - opp-supported-hw = <0xf9 0xffff>; - opp-suspend; - clock-latency-ns = <0x9c40>; - }; - - opp-2304000000 { - opp-microvolt = <0xf4240 0xf4240 0xf4240 0xf4240 0xf4240 0xf4240>; - opp-hz = <0x00 0x89544000>; - opp-supported-hw = <0xf9 0x24>; - clock-latency-ns = <0x9c40>; - }; - }; - - rkcif-dvp { - iommus = <0x50>; - rockchip,hw = <0x4f>; - compatible = "rockchip,rkcif-dvp"; - status = "disabled"; - phandle = <0x51>; - }; - - rkisp0-vir2 { - rockchip,hw = <0x58>; - compatible = "rockchip,rkisp-vir"; - status = "okay"; - phandle = <0x23d>; - - port { - #address-cells = <0x01>; - #size-cells = <0x00>; - - endpoint@0 { - remote-endpoint = <0x59>; - reg = <0x00>; - phandle = <0x56>; - }; - }; - }; - - i2c@fea90000 { - pinctrl-names = "default"; - #address-cells = <0x01>; - pinctrl-0 = <0x148>; - clock-names = "i2c\0pclk"; - resets = <0x02 0xb0 0x02 0xa8>; - interrupts = <0x00 0x13e 0x04>; - clocks = <0x02 0x8d 0x02 0x85>; - #size-cells = <0x00>; - compatible = "rockchip,rk3588-i2c\0rockchip,rk3399-i2c"; - status = "okay"; - reg = <0x00 0xfea90000 0x00 0x1000>; - phandle = <0x2a4>; - reset-names = "i2c\0apb"; - - rk8602@42 { - regulator-max-microvolt = <0xe7ef0>; - regulator-boot-on; - rockchip,suspend-voltage-selector = <0x01>; - regulator-always-on; - regulator-min-microvolt = <0x86470>; - regulator-name = "vdd_npu_s0"; - regulator-ramp-delay = <0x8fc>; - compatible = "rockchip,rk8602"; - reg = <0x42>; - phandle = <0xb3>; - vin-supply = <0x78>; - regulator-compatible = "rk860x-reg"; - - regulator-state-mem { - regulator-off-in-suspend; - }; - }; - }; - - syscon@fd58a000 { - compatible = "rockchip,rk3588-pmu1-grf\0syscon"; - reg = <0x00 0xfd58a000 0x00 0x2000>; - phandle = <0x104>; - }; - - syscon@fd5ec000 { - compatible = "rockchip,mipi-dcphy-grf\0syscon"; - reg = <0x00 0xfd5ec000 0x00 0x4000>; - phandle = <0x191>; - }; - - venc-opp-table { - nvmem-cells = <0xc6 0xc7>; - rockchip,leakage-voltage-sel = <0x01 0x0f 0x00 0x10 0x19 0x01 0x1a 0xfe 0x02>; - volt-mem-read-margin = <0xd0bd8 0x01 0xbac48 0x02 0xa4cb8 0x03 0x78d98 0x04>; - compatible = "operating-points-v2"; - rockchip,grf = <0xc8>; - nvmem-cell-names = "leakage\0opp-info"; - phandle = <0xc4>; - - opp-800000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; - opp-microvolt-L2 = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; - opp-hz = <0x00 0x2faf0800>; - opp-microvolt-L0 = <0xc3500 0xc3500 0xcf850 0xc3500 0xc3500 0xcf850>; - opp-microvolt-L1 = <0xbd358 0xbd358 0xcf850 0xbd358 0xbd358 0xcf850>; - }; - }; - - iommu@fdc38700 { - power-domains = <0x60 0x0e>; - rockchip,shootdown-entire; - clock-names = "aclk\0iface"; - interrupts = <0x00 0x60 0x04>; - clocks = <0x02 0x190 0x02 0x18f>; - rockchip,enable-cmd-retry; - #iommu-cells = <0x00>; - compatible = "rockchip,iommu-v2"; - rockchip,disable-mmu-reset; - status = "okay"; - interrupt-names = "irq_rkvdec0_mmu"; - reg = <0x00 0xfdc38700 0x00 0x40 0x00 0xfdc38740 0x00 0x40>; - phandle = <0xc9>; - rockchip,master-handle-irq; - }; - - qos@fdf35200 { - compatible = "syscon"; - reg = <0x00 0xfdf35200 0x00 0x20>; - phandle = <0x88>; - }; - - qos@fdf71000 { - compatible = "syscon"; - reg = <0x00 0xfdf71000 0x00 0x20>; - phandle = <0x86>; - }; - - syscon@fd598000 { - compatible = "rockchip,rk3588-dsu-grf\0syscon"; - reg = <0x00 0xfd598000 0x00 0x100>; - phandle = <0x23>; - }; - - csi2-dphy2 { - rockchip,hw = <0x2d 0x2e>; - phy-names = "dcphy0\0dcphy1"; - compatible = "rockchip,rk3588-csi2-dphy"; - status = "disabled"; - phys = <0x2f 0x30>; - phandle = <0x211>; - }; - - syscon@fd5b4000 { - compatible = "rockchip,mipi-dphy-grf\0syscon"; - reg = <0x00 0xfd5b4000 0x00 0x1000>; - phandle = <0x192>; - }; - - uio@fe1b0000 { - compatible = "rockchip,uio-gmac"; - status = "disabled"; - reg = <0x00 0xfe1b0000 0x00 0x10000>; - phandle = <0x488>; - rockchip,ethernet = <0x1bd>; - }; - - iommu@fdb70f00 { - power-domains = <0x60 0x1e>; - clock-names = "aclk\0iface"; - interrupts = <0x00 0x73 0x04>; - clocks = <0x02 0x18a 0x02 0x189>; - #iommu-cells = <0x00>; - compatible = "rockchip,iommu-v2"; - status = "okay"; - interrupt-names = "rga3_1_mmu"; - reg = <0x00 0xfdb70f00 0x00 0x100>; - phandle = <0xba>; - }; - - vcc5v0-usb { - regulator-max-microvolt = <0x4c4b40>; - regulator-boot-on; - regulator-always-on; - regulator-min-microvolt = <0x4c4b40>; - regulator-name = "vcc5v0_usb"; - compatible = "regulator-fixed"; - phandle = <0x1dd>; - vin-supply = <0x1cd>; - }; - - fiq-debugger { - pinctrl-names = "default"; - rockchip,irq-mode-enable = <0x01>; - rockchip,baudrate = <0x1c200>; - pinctrl-0 = <0x1ce>; - interrupts = <0x00 0x1a7 0x08>; - rockchip,wake-irq = <0x00>; - compatible = "rockchip,fiq-debugger"; - status = "okay"; - phandle = <0x490>; - rockchip,serial-id = <0x02>; - }; - - phy@fed70000 { - clock-names = "ref\0apb"; - resets = <0x02 0x486 0x02 0xc003f 0x02 0xc0040 0x02 0xc0041>; - clocks = <0x02 0x2b5 0x02 0x268>; - #phy-cells = <0x00>; - compatible = "rockchip,rk3588-hdptx-phy"; - status = "disabled"; - rockchip,grf = <0x1c7>; - reg = <0x00 0xfed70000 0x00 0x2000>; - phandle = <0x1af>; - reset-names = "apb\0init\0cmn\0lane"; - }; - - ethernet@fe1b0000 { - power-domains = <0x60 0x21>; - pinctrl-names = "default"; - phy-mode = "rgmii-rxid"; - snps,mixed-burst; - snps,mtl-rx-config = <0x1bf>; - snps,reset-active-low; - pinctrl-0 = <0x1c1 0x1c2 0x1c3 0x1c4 0x1c5>; - clock-names = "stmmaceth\0clk_mac_ref\0pclk_mac\0aclk_mac\0ptp_ref"; - snps,mtl-tx-config = <0x1c0>; - local-mac-address = [da 2f 1a d4 a9 85]; - resets = <0x02 0x20a>; - interrupts = <0x00 0xe3 0x04 0x00 0xe2 0x04>; - clocks = <0x02 0x144 0x02 0x145 0x02 0x167 0x02 0x16c 0x02 0x142>; - clock_in_out = "output"; - snps,tso; - compatible = "rockchip,rk3588-gmac\0snps,dwmac-4.20a"; - status = "okay"; - rockchip,grf = <0xc8>; - interrupt-names = "macirq\0eth_wake_irq"; - snps,reset-gpio = <0x10d 0x02 0x01>; - reg = <0x00 0xfe1b0000 0x00 0x10000>; - rockchip,php_grf = <0x76>; - phandle = <0x1bd>; - phy-handle = <0x1c6>; - reset-names = "stmmaceth"; - tx_delay = <0x31>; - snps,axi-config = <0x1be>; - snps,reset-delays-us = <0x00 0x4e20 0x186a0>; - - mdio { - #address-cells = <0x01>; - #size-cells = <0x00>; - compatible = "snps,dwmac-mdio"; - phandle = <0x489>; - - phy@1 { - compatible = "ethernet-phy-ieee802.3-c22"; - reg = <0x01>; - phandle = <0x1c6>; - }; - }; - - tx-queues-config { - phandle = <0x1c0>; - snps,tx-queues-to-use = <0x01>; - - queue0 { - }; - }; - - stmmac-axi-config { - snps,wr_osr_lmt = <0x04>; - phandle = <0x1be>; - snps,blen = <0x00 0x00 0x00 0x00 0x10 0x08 0x04>; - snps,rd_osr_lmt = <0x08>; - }; - - rx-queues-config { - snps,rx-queues-to-use = <0x01>; - phandle = <0x1bf>; - - queue0 { - }; - }; - }; - - pvtm@fda60000 { - #address-cells = <0x01>; - #size-cells = <0x00>; - compatible = "rockchip,rk3588-litcore-pvtm"; - reg = <0x00 0xfda60000 0x00 0x100>; - - pvtm@2 { - clock-names = "clk\0pclk"; - clocks = <0x02 0x2ca 0x02 0x1b>; - reg = <0x02>; - }; - }; - - rkispp@fdcd8000 { - power-domains = <0x60 0x1d>; - iommus = <0xd3>; - clock-names = "aclk_ispp\0hclk_ispp\0clk_ispp"; - assigned-clocks = <0x02 0x1d9>; - assigned-clock-rates = <0x5f5e100>; - interrupts = <0x00 0x8d 0x04>; - clocks = <0x02 0x1d8 0x02 0x1d9 0x02 0x1da>; - compatible = "rockchip,rk3588-rkispp"; - status = "disabled"; - interrupt-names = "fec_irq"; - reg = <0x00 0xfdcd8000 0x00 0xf00>; - phandle = <0x5c>; - }; - - qos@fdf66000 { - compatible = "syscon"; - reg = <0x00 0xfdf66000 0x00 0x20>; - phandle = <0x93>; - }; - - syscon@fd592000 { - compatible = "rockchip,rk3588-bigcore1-grf\0syscon"; - reg = <0x00 0xfd592000 0x00 0x100>; - phandle = <0x29>; - }; - - rkcif-mipi-lvds1 { - iommus = <0x50>; - rockchip,hw = <0x4f>; - compatible = "rockchip,rkcif-mipi-lvds"; - status = "disabled"; - phandle = <0x53>; - }; - - av1d@fdc70000 { - power-domains = <0x60 0x17>; - iommus = <0xce>; - clock-names = "aclk_vcodec\0hclk_vcodec"; - reg-names = "vcd\0cache\0afbc"; - assigned-clocks = <0x02 0x49 0x02 0x4b>; - rockchip,normal-rates = <0x17d78400 0x17d78400>; - assigned-clock-rates = <0x17d78400 0x17d78400>; - resets = <0x02 0x442 0x02 0x445>; - interrupts = <0x00 0x6c 0x04 0x00 0x6b 0x04 0x00 0x6a 0x04>; - clocks = <0x02 0x49 0x02 0x4b>; - rockchip,srv = <0xb8>; - rockchip,taskqueue-node = <0x0b>; - compatible = "rockchip,av1-decoder"; - status = "okay"; - interrupt-names = "irq_av1d\0irq_cache\0irq_afbc"; - reg = <0x00 0xfdc70000 0x00 0x800 0x00 0xfdc80000 0x00 0x400 0x00 0xfdc90000 0x00 0x400>; - phandle = <0x276>; - reset-names = "video_a\0video_h"; - }; - - qos@fdf40500 { - compatible = "syscon"; - reg = <0x00 0xfdf40500 0x00 0x20>; - phandle = <0xa3>; - }; - - vcc-hub-reset-regulator { - regulator-boot-on; - gpio = <0x182 0x04 0x00>; - regulator-always-on; - enable-active-high; - regulator-name = "vcc_hub_reset"; - compatible = "regulator-fixed"; - status = "disabled"; - phandle = <0x4a0>; - }; - - qos@fdf72200 { - compatible = "syscon"; - reg = <0x00 0xfdf72200 0x00 0x20>; - phandle = <0x83>; - }; - - serial@feb70000 { - reg-io-width = <0x04>; - pinctrl-names = "default"; - pinctrl-0 = <0x163>; - clock-names = "baudclk\0apb_pclk"; - interrupts = <0x00 0x14f 0x04>; - clocks = <0x02 0xc3 0x02 0xae>; - compatible = "rockchip,rk3588-uart\0snps,dw-apb-uart"; - status = "disabled"; - reg = <0x00 0xfeb70000 0x00 0x100>; - phandle = <0x2cc>; - dmas = <0xf1 0x09 0xf1 0x0a>; - reg-shift = <0x02>; - }; - - rkcif-mipi-lvds2-sditf { - compatible = "rockchip,rkcif-sditf"; - status = "okay"; - rockchip,cif = <0x55>; - phandle = <0x233>; - - port { - - endpoint { - remote-endpoint = <0x56>; - phandle = <0x59>; - }; - }; - }; - - i2c@feca0000 { - pinctrl-names = "default"; - #address-cells = <0x01>; - pinctrl-0 = <0x186>; - clock-names = "i2c\0pclk"; - resets = <0x02 0xb7 0x02 0xaf>; - interrupts = <0x00 0x145 0x04>; - clocks = <0x02 0x94 0x02 0x8c>; - #size-cells = <0x00>; - compatible = "rockchip,rk3588-i2c\0rockchip,rk3399-i2c"; - status = "disabled"; - reg = <0x00 0xfeca0000 0x00 0x1000>; - phandle = <0x2e5>; - reset-names = "i2c\0apb"; - }; - - vcc-sdcard-pwr-en-regulator { - regulator-boot-on; - gpio = <0xfe 0x07 0x00>; - regulator-always-on; - enable-active-high; - regulator-name = "vcc_sdcard_pwr_en"; - compatible = "regulator-fixed"; - status = "okay"; - phandle = <0x4a5>; - }; - - rkcif-mipi-lvds1-sditf-vir1 { - compatible = "rockchip,rkcif-sditf"; - status = "disabled"; - rockchip,cif = <0x53>; - phandle = <0x230>; - }; - - qos@fdf63000 { - compatible = "syscon"; - reg = <0x00 0xfdf63000 0x00 0x20>; - phandle = <0x8c>; - }; - - phy@fee00000 { - rockchip,pipe-grf = <0x76>; - clock-names = "refclk\0apbclk\0phpclk"; - assigned-clocks = <0x02 0x2bd>; - assigned-clock-rates = <0x5f5e100>; - resets = <0x02 0x20005 0x02 0x4d6>; - clocks = <0x02 0x2bd 0x02 0x185 0x02 0x166>; - #phy-cells = <0x01>; - compatible = "rockchip,rk3588-naneng-combphy"; - status = "okay"; - rockchip,pipe-phy-grf = <0x194>; - reg = <0x00 0xfee00000 0x00 0x100>; - phandle = <0x108>; - reset-names = "combphy-apb\0combphy"; - }; - - can@fea50000 { - pinctrl-names = "default"; - pinctrl-0 = <0x145>; - clock-names = "baudclk\0apb_pclk"; - resets = <0x02 0xb9 0x02 0xb8>; - interrupts = <0x00 0x155 0x04>; - clocks = <0x02 0x70 0x02 0x6f>; - compatible = "rockchip,can-2.0"; - status = "disabled"; - tx-fifo-depth = <0x01>; - rx-fifo-depth = <0x06>; - reg = <0x00 0xfea50000 0x00 0x1000>; - phandle = <0x2a0>; - reset-names = "can\0can-apb"; - }; - - pdm@fe4b0000 { - pinctrl-names = "default\0idle\0clk"; - pinctrl-2 = <0x139 0x13a>; - pinctrl-0 = <0x134 0x135 0x136 0x137>; - clock-names = "pdm_clk\0pdm_hclk"; - clocks = <0x02 0x29f 0x02 0x29e>; - dma-names = "rx"; - #sound-dai-cells = <0x00>; - compatible = "rockchip,rk3588-pdm"; - pinctrl-1 = <0x138>; - status = "disabled"; - reg = <0x00 0xfe4b0000 0x00 0x1000>; - phandle = <0x29a>; - dmas = <0x7c 0x04>; - }; - - rkisp-unite-mmu@fdcb7f00 { - power-domains = <0x60 0x1c>; - clock-names = "aclk0\0iface0\0aclk1\0iface1"; - interrupts = <0x00 0x84 0x04 0x00 0x88 0x04>; - clocks = <0x02 0x1de 0x02 0x1df 0x02 0x120 0x02 0x121>; - #iommu-cells = <0x00>; - compatible = "rockchip,iommu-v2"; - rockchip,disable-mmu-reset; - status = "disabled"; - interrupt-names = "isp0_mmu\0isp1_mmu"; - reg = <0x00 0xfdcb7f00 0x00 0x100 0x00 0xfdcc7f00 0x00 0x100>; - phandle = <0xcf>; - }; - - syscon@fd5a6000 { - clocks = <0x72>; - compatible = "rockchip,rk3588-vo-grf\0syscon"; - reg = <0x00 0xfd5a6000 0x00 0x2000>; - phandle = <0xf5>; - }; - - cpus { - #address-cells = <0x01>; - #size-cells = <0x00>; - - cpu@0 { - device_type = "cpu"; - compatible = "arm,cortex-a55"; - reg = <0x00>; - enable-method = "psci"; - clocks = <0x0e 0x00>; - cpu-idle-states = <0x10>; - operating-points-v2 = <0x0f>; - capacity-dmips-mhz = <0x212>; - - cpu-supply = <0x12>; - mem-supply = <0x12>; - dynamic-power-coefficient = <0x64>; - - i-cache-line-size = <0x40>; - i-cache-size = <0x8000>; - i-cache-sets = <0x80>; - - d-cache-line-size = <0x40>; - d-cache-size = <0x8000>; - d-cache-sets = <0x80>; - - next-level-cache = <0x11>; - #cooling-cells = <0x02>; - phandle = <0x06>; - }; - - l2-cache-l0 { - compatible = "cache"; - cache-size = <0x20000>; - cache-sets = <0x200>; - cache-line-size = <0x40>; - next-level-cache = <0x1e>; - phandle = <0x11>; - }; - - l3-cache { - compatible = "cache"; - cache-size = <0x300000>; - cache-sets = <0x1000>; - cache-line-size = <0x40>; - phandle = <0x1e>; - }; - - idle-states { - entry-method = "psci"; - - cpu-sleep { - compatible = "arm,idle-state"; - entry-latency-us = <0x64>; - exit-latency-us = <0x78>; - min-residency-us = <0x3e8>; - local-timer-stop; - arm,psci-suspend-param = <0x10000>; - phandle = <0x10>; - }; - }; - - cpu-map { - cluster0 { - core0 { - cpu = <0x06>; - }; - }; - }; - }; - - vcc-hub3-reset-regulator { - gpio = <0x182 0x06 0x00>; - regulator-always-on; - enable-active-high; - regulator-name = "vcc_hub3_reset"; - compatible = "regulator-fixed"; - status = "disabled"; - phandle = <0x4a1>; - }; - - rkispp1-vir0 { - rockchip,hw = <0x5c>; - compatible = "rockchip,rk3588-rkispp-vir"; - status = "disabled"; - phandle = <0x244>; - }; - - saradc@fec10000 { - vref-supply = <0x177>; - clock-names = "saradc\0apb_pclk"; - resets = <0x02 0xbe>; - interrupts = <0x00 0x18e 0x04>; - clocks = <0x02 0x9d 0x02 0x9c>; - #io-channel-cells = <0x01>; - compatible = "rockchip,rk3588-saradc"; - status = "okay"; - reg = <0x00 0xfec10000 0x00 0x10000>; - phandle = <0x1d9>; - reset-names = "saradc-apb"; - }; - - rkisp0-vir0 { - rockchip,hw = <0x58>; - compatible = "rockchip,rkisp-vir"; - status = "disabled"; - phandle = <0x23b>; - }; - - __symbols__ { - i2s2m0_lrck = "/pinctrl/i2s2/i2s2m0-lrck"; - i2c3 = "/i2c@feab0000"; - scmi_shmem = "/sram@10f000/sram@0"; - rkispp0_vir0 = "/rkispp0-vir0"; - qos_jpeg_enc0 = "/qos@fdf66400"; - i2s1m1_sdi1 = "/pinctrl/i2s1/i2s1m1-sdi1"; - dp_altmode_mux = "/i2c@fec80000/fusb302@22/connector/ports/port@1/endpoint"; - pmic_pins = "/pinctrl/pmic/pmic-pins"; - usb_host1_ohci = "/usb@fc8c0000"; - pwm9 = "/pwm@febe0010"; - i2c6m4_xfer = "/pinctrl/i2c6/i2c6m4-xfer"; - leds_gpio = "/pinctrl/leds/leds-gpio"; - i2c3m3_xfer = "/pinctrl/i2c3/i2c3m3-xfer"; - qos_usb3_1 = "/qos@fdf3e000"; - hdmi_debug4 = "/pinctrl/hdmi/hdmi-debug4"; - i2c0m2_xfer = "/pinctrl/i2c0/i2c0m2-xfer"; - gmac0_rgmii_bus = "/pinctrl/gmac0/gmac0-rgmii-bus"; - pcie30x2m2_pins = "/pinctrl/pcie30x2/pcie30x2m2-pins"; - sdmmc_clk = "/pinctrl/sdmmc/sdmmc-clk"; - spi0m3_cs0 = "/pinctrl/spi0/spi0m3-cs0"; - hwlock = "/hwspinlock@fe5a0000"; - pcie3x2 = "/pcie@fe160000"; - i2s2m1_mclk = "/pinctrl/i2s2/i2s2m1-mclk"; - mipim0_camera3_clk = "/pinctrl/mipi/mipim0-camera3-clk"; - mclkin_i2s0 = "/clocks/mclkin-i2s0"; - edp1_in_vp1 = "/edp@fded0000/ports/port@0/endpoint@1"; - rkvenc0_mmu = "/iommu@fdbdf000"; - pwm14 = "/pwm@febf0020"; - rk806_dvs2_rst = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs2_rst"; - mipi2_csi2 = "/mipi2-csi2"; - can2m1_pins = "/pinctrl/can2/can2m1-pins"; - pcie2x1l1 = "/pcie@fe180000"; - hdmi0_in_vp2 = "/hdmi@fde80000/ports/port@0/endpoint@2"; - qos_rkvenc0_m2wo = "/qos@fdf60400"; - pwm3m2_pins = "/pinctrl/pwm3/pwm3m2-pins"; - optee = "/firmware/optee"; - l2_cache_b2 = "/cpus/l2-cache-b2"; - pwm0m1_pins = "/pinctrl/pwm0/pwm0m1-pins"; - vdpu = "/vdpu@fdb50400"; - i2s3_sdo = "/pinctrl/i2s3/i2s3-sdo"; - usbdp_phy0_u3 = "/phy@fed80000/u3-port"; - thermal_zones = "/thermal-zones"; - hdmim2_rx_scl = "/pinctrl/hdmi/hdmim2-rx-scl"; - hdmim2_rx_sda = "/pinctrl/hdmi/hdmim2-rx-sda"; - uart9m0_rtsn = "/pinctrl/uart9/uart9m0-rtsn"; - spi1m2_cs0 = "/pinctrl/spi1/spi1m2-cs0"; - pcie2x1l1_intc = "/pcie@fe180000/legacy-interrupt-controller"; - spdif1m1_tx = "/pinctrl/spdif1/spdif1m1-tx"; - venc_opp_info = "/otp@fecc0000/venc-opp-info@67"; - qos_iep = "/qos@fdf66000"; - pcfg_pull_none_drv_level_3 = "/pinctrl/pcfg-pull-none-drv-level-3"; - spi3m2_cs1 = "/pinctrl/spi3/spi3m2-cs1"; - uart4m2_xfer = "/pinctrl/uart4/uart4m2-xfer"; - vp1 = "/vop@fdd90000/ports/port@1"; - bigcore1_grf = "/syscon@fd592000"; - uart1m1_xfer = "/pinctrl/uart1/uart1m1-xfer"; - uart5m1_ctsn = "/pinctrl/uart5/uart5m1-ctsn"; - fspim1_pins = "/pinctrl/fspi/fspim1-pins"; - cpu_l1 = "/cpus/cpu@100"; - uart8 = "/serial@febb0000"; - rkisp1_vir3 = "/rkisp1-vir3"; - qos_vop_m1 = "/qos@fdf82200"; - pcie_clk2 = "/pcie-clk2"; - cluster2_opp_table = "/cluster2-opp-table"; - usb_grf = "/syscon@fd5ac000"; - pcfg_pull_none_smt = "/pinctrl/pcfg-pull-none-smt"; - jpege0_mmu = "/iommu@fdba0800"; - spi2m1_cs0 = "/pinctrl/spi2/spi2m1-cs0"; - u2phy3 = "/syscon@fd5dc000/usb2-phy@c000"; - power_led = "/leds/power"; - aclk_usb = "/clocks/aclk_usb@fd7c08a8"; - csi2_dphy1 = "/csi2-dphy1"; - spi2 = "/spi@feb20000"; - uart2_rtsn = "/pinctrl/uart2/uart2-rtsn"; - spi4m1_cs1 = "/pinctrl/spi4/spi4m1-cs1"; - pcfg_pull_up_drv_level_15 = "/pinctrl/pcfg-pull-up-drv-level-15"; - vo1_grf = "/syscon@fd5a8000"; - pcie_essd = "/pcie-essd"; - i2c4m3_xfer = "/pinctrl/i2c4/i2c4m3-xfer"; - gpio0 = "/pinctrl/gpio@fd8a0000"; - saradc = "/saradc@fec10000"; - i2s1m0_sdi3 = "/pinctrl/i2s1/i2s1m0-sdi3"; - i2c1m2_xfer = "/pinctrl/i2c1/i2c1m2-xfer"; - csidphy0_out = "/csi2-dphy0/ports/port@1/endpoint@0"; - emmc_rstnout = "/pinctrl/emmc/emmc-rstnout"; - mclkout_i2s3 = "/clocks/mclkout-i2s3@fd58c318"; - xc7160_out0 = "/i2c@fec80000/XC7160b@1b/port/endpoint"; - rkcif_mipi_lvds1_sditf_vir1 = "/rkcif-mipi-lvds1-sditf-vir1"; - dsi1 = "/dsi@fde30000"; - venc_opp_table = "/venc-opp-table"; - qos_isp0_mwo = "/qos@fdf40500"; - pmu_pins = "/pinctrl/pmu/pmu-pins"; - gmac0_miim = "/pinctrl/gmac0/gmac0-miim"; - spi3m0_cs0 = "/pinctrl/spi3/spi3m0-cs0"; - mipi_dcphy0 = "/mipi-dcphy-dummy"; - minidump_mem = "/reserved-memory/minidump-mem@c000000"; - avdd_1v2_s0 = "/spi@feb20000/rk806single@0/regulators/PLDO_REG3"; - pwm7m3_pins = "/pinctrl/pwm7/pwm7m3-pins"; - route_edp1 = "/display-subsystem/route/route-edp1"; - hdmi1 = "/hdmi@fdea0000"; - crypto = "/crypto@fe370000"; - hdmi1_in_vp2 = "/hdmi@fdea0000/ports/port@0/endpoint@2"; - dfi = "/dfi@fe060000"; - can0m0_pins = "/pinctrl/can0/can0m0-pins"; - pcfg_pull_up_drv_level_2 = "/pinctrl/pcfg-pull-up-drv-level-2"; - pinctrl = "/pinctrl"; - rgmii_phy0 = "/ethernet@fe1b0000/mdio/phy@1"; - pcfg_pull_down_drv_level_6 = "/pinctrl/pcfg-pull-down-drv-level-6"; - dp0m0_pins = "/pinctrl/dp0/dp0m0-pins"; - i2s0_sdo3 = "/pinctrl/i2s0/i2s0-sdo3"; - vcc_sata_pwr_en = "/vcc-sata-pwr-en-regulator"; - pwm1m1_pins = "/pinctrl/pwm1/pwm1m1-pins"; - pcie30_avdd1v8 = "/pcie30-avdd1v8"; - usb2phy3_grf = "/syscon@fd5dc000"; - u2phy2_host = "/syscon@fd5d8000/usb2-phy@8000/host-port"; - hym8563_int = "/pinctrl/hym8563/hym8563-int"; - mailbox1 = "/mailbox@fec70000"; - pdm0m1_sdi3 = "/pinctrl/pdm0/pdm0m1-sdi3"; - combphy1_ps = "/phy@fee10000"; - hdptxphy0_grf = "/syscon@fd5e0000"; - sdei = "/firmware/sdei"; - vp0_out_dp1 = "/vop@fdd90000/ports/port@0/endpoint@3"; - uart5m2_xfer = "/pinctrl/uart5/uart5m2-xfer"; - uart9m2_ctsn = "/pinctrl/uart9/uart9m2-ctsn"; - uart2m1_xfer = "/pinctrl/uart2/uart2m1-xfer"; - dp0_out = "/dp@fde50000/ports/port@1/endpoint"; - uart6m1_ctsn = "/pinctrl/uart6/uart6m1-ctsn"; - route_rgb = "/display-subsystem/route/route-rgb"; - csidphy0_out1 = "/csi2-dphy0/ports/port@1/endpoint@0"; - i2c1 = "/i2c@fea90000"; - pinctrl_rk806 = "/spi@feb20000/rk806single@0/pinctrl_rk806"; - cpu_code = "/otp@fecc0000/cpu-code@2"; - pwm7 = "/pwm@febd0030"; - mipi5_csi2_hw = "/mipi5-csi2-hw@fdd60000"; - gpu_leakage = "/otp@fecc0000/gpu-leakage@1b"; - hdmi_debug2 = "/pinctrl/hdmi/hdmi-debug2"; - pdm0m0_clk = "/pinctrl/pdm0/pdm0m0-clk"; - gmac0_ppsclk = "/pinctrl/gmac0/gmac0-ppsclk"; - i2c8m4_xfer = "/pinctrl/i2c8/i2c8m4-xfer"; - vdd_npu_s0 = "/i2c@fea90000/rk8602@42"; - i2c5m3_xfer = "/pinctrl/i2c5/i2c5m3-xfer"; - gmac0 = "/ethernet@fe1b0000"; - i2c2m2_xfer = "/pinctrl/i2c2/i2c2m2-xfer"; - rockchip_system_monitor = "/rockchip-system-monitor"; - pcie30x4m2_pins = "/pinctrl/pcie30x4/pcie30x4m2-pins"; - pwm12 = "/pwm@febf0000"; - emmc_cmd = "/pinctrl/emmc/emmc-cmd"; - i2s1_8ch = "/i2s@fe480000"; - pcie30x1m1_pins = "/pinctrl/pcie30x1/pcie30x1m1-pins"; - uart4_ctsn = "/pinctrl/uart4/uart4-ctsn"; - vdd_cpu_big0_mem_s0 = "/i2c@fd880000/rk8602@42"; - pcfg_pull_none = "/pinctrl/pcfg-pull-none"; - i2s1m0_mclk = "/pinctrl/i2s1/i2s1m0-mclk"; - vp1_out_edp1 = "/vop@fdd90000/ports/port@1/endpoint@4"; - hdmi0_in_vp0 = "/hdmi@fde80000/ports/port@0/endpoint@0"; - vcc_4g = "/vcc-4g-regulator"; - firefly_leds = "/leds"; - jpege3 = "/jpege-core@fdbac000"; - l2_cache_b0 = "/cpus/l2-cache-b0"; - pmu1_grf = "/syscon@fd58a000"; - aclk_rkvenc1_pre = "/clocks/aclk_rkvenc1_pre@fd7c08c0"; - can1m0_pins = "/pinctrl/can1/can1m0-pins"; - spi0m3_pins = "/pinctrl/spi0/spi0m3-pins"; - pwm5m2_pins = "/pinctrl/pwm5/pwm5m2-pins"; - mipidphy0_in_ucam1 = "/csi2-dphy0/ports/port@0/endpoint@1"; - i2s0_lrck = "/pinctrl/i2s0/i2s0-lrck"; - clk32k_out0 = "/pinctrl/clk32k/clk32k-out0"; - dp1m0_pins = "/pinctrl/dp1/dp1m0-pins"; - pwm2m1_pins = "/pinctrl/pwm2/pwm2m1-pins"; - usbc0 = "/i2c@fec80000/fusb302@22"; - eth1_pins = "/pinctrl/eth1/eth1-pins"; - pcfg_pull_none_drv_level_1 = "/pinctrl/pcfg-pull-none-drv-level-1"; - csi2_dphy0_hw = "/csi2-dphy0-hw@fedc0000"; - pdm1m1_sdi3 = "/pinctrl/pdm1/pdm1m1-sdi3"; - dsi0_in_vp3 = "/dsi@fde20000/ports/port@0/endpoint@1"; - hdmim1_tx1_cec = "/pinctrl/hdmi/hdmim1-tx1-cec"; - usbc0_role_sw = "/i2c@fec80000/fusb302@22/ports/port@0/endpoint@0"; - uart6 = "/serial@feb90000"; - rkisp1_vir1 = "/rkisp1-vir1"; - sdhci = "/mmc@fe2e0000"; - uart6m2_xfer = "/pinctrl/uart6/uart6m2-xfer"; - target = "/thermal-zones/soc-thermal/trips/trip-point-1"; - rkcif_mipi_lvds_sditf_vir3 = "/rkcif-mipi-lvds-sditf-vir3"; - pcfg_pull_none_drv_level_0_smt = "/pinctrl/pcfg-pull-none-drv-level-0-smt"; - uart3m1_xfer = "/pinctrl/uart3/uart3m1-xfer"; - uart7m1_ctsn = "/pinctrl/uart7/uart7m1-ctsn"; - uart0m0_xfer = "/pinctrl/uart0/uart0m0-xfer"; - rgb_in_vp3 = "/syscon@fd58c000/rgb/ports/port@0/endpoint@2"; - rkcif_mipi_lvds5_sditf_vir2 = "/rkcif-mipi-lvds5-sditf-vir2"; - u2phy1 = "/syscon@fd5d4000/usb2-phy@4000"; - i2s5_8ch = "/i2s@fddf0000"; - i2s2m0_sdo = "/pinctrl/i2s2/i2s2m0-sdo"; - gpu = "/gpu@fb000000"; - spi0 = "/spi@feb00000"; - iep = "/iep@fdbb0000"; - pcfg_pull_up_drv_level_13 = "/pinctrl/pcfg-pull-up-drv-level-13"; - spdif_tx5 = "/spdif-tx@fddb8000"; - hdptxphy_hdmi_clk1 = "/hdmiphy@fed70000/clk-port"; - drm_logo = "/reserved-memory/drm-logo@00000000"; - i2s1m0_sdi1 = "/pinctrl/i2s1/i2s1m0-sdi1"; - rk806_dvs3_null = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs3_null"; - gmac1_ppsclk = "/pinctrl/gmac1/gmac1-ppsclk"; - usb_host0_ohci = "/usb@fc840000"; - mclkout_i2s1 = "/clocks/mclkout-i2s1@fd58c318"; - i2c6m3_xfer = "/pinctrl/i2c6/i2c6m3-xfer"; - i2c3m2_xfer = "/pinctrl/i2c3/i2c3m2-xfer"; - vop_opp_info = "/otp@fecc0000/vop-opp-info@61"; - cif_dvp_bus16 = "/pinctrl/cif/cif-dvp-bus16"; - i2c0m1_xfer = "/pinctrl/i2c0/i2c0m1-xfer"; - pcie30x2m1_pins = "/pinctrl/pcie30x2/pcie30x2m1-pins"; - mipidcphy0_grf = "/syscon@fd5e8000"; - vdd_cpu_big1_mem_s0 = "/i2c@fd880000/rk8603@43"; - pcie30phy = "/phy@fee80000"; - dmc = "/dmc"; - i2s2m0_mclk = "/pinctrl/i2s2/i2s2m0-mclk"; - mipidcphy1 = "/phy@fedb0000"; - dp1_sound = "/dp1-sound"; - hdmi1_in_vp0 = "/hdmi@fdea0000/ports/port@0/endpoint@0"; - scmi = "/firmware/scmi"; - pcfg_pull_up_drv_level_0 = "/pinctrl/pcfg-pull-up-drv-level-0"; - gmac1_clkinout = "/pinctrl/gmac1/gmac1-clkinout"; - pcfg_pull_down_drv_level_4 = "/pinctrl/pcfg-pull-down-drv-level-4"; - i2s0_sdo1 = "/pinctrl/i2s0/i2s0-sdo1"; - l3_cache = "/cpus/l3-cache"; - i2s3_idle = "/pinctrl/i2s3/i2s3-idle"; - pcfg_pull_none_drv_level_4_smt = "/pinctrl/pcfg-pull-none-drv-level-4-smt"; - litcpu_pins = "/pinctrl/litcpu/litcpu-pins"; - mipi1_csi2 = "/mipi1-csi2"; - can2m0_pins = "/pinctrl/can2/can2m0-pins"; - pwm6m2_pins = "/pinctrl/pwm6/pwm6m2-pins"; - usbdp_phy0 = "/phy@fed80000"; - pdm0m1_sdi1 = "/pinctrl/pdm0/pdm0m1-sdi1"; - pwm3m1_pins = "/pinctrl/pwm3/pwm3m1-pins"; - vdd_log_s0 = "/spi@feb20000/rk806single@0/regulators/DCDC_REG3"; - i2s9_8ch = "/i2s@fddfc000"; - pwm0m0_pins = "/pinctrl/pwm0/pwm0m0-pins"; - vcc_hub3_reset = "/vcc-hub3-reset-regulator"; - dsi1_in_vp3 = "/dsi@fde30000/ports/port@0/endpoint@1"; - otp_cpu_version = "/otp@fecc0000/cpu-version@1c"; - pcie2x1l0_intc = "/pcie@fe170000/legacy-interrupt-controller"; - spdif0m1_tx = "/pinctrl/spdif0/spdif0m1-tx"; - pcfg_pull_down_drv_level_15 = "/pinctrl/pcfg-pull-down-drv-level-15"; - XC7160 = "/i2c@fec80000/XC7160b@1b"; - rkcif_mipi_lvds4_sditf_vir3 = "/rkcif-mipi-lvds4-sditf-vir3"; - uart7m2_xfer = "/pinctrl/uart7/uart7m2-xfer"; - uart4m1_xfer = "/pinctrl/uart4/uart4m1-xfer"; - hdmim1_tx1_scl = "/pinctrl/hdmi/hdmim1-tx1-scl"; - hdmim1_tx1_sda = "/pinctrl/hdmi/hdmim1-tx1-sda"; - uart8m1_ctsn = "/pinctrl/uart8/uart8m1-ctsn"; - i2s2_2ch = "/i2s@fe490000"; - pwm5 = "/pwm@febd0010"; - uart1m0_xfer = "/pinctrl/uart1/uart1m0-xfer"; - uart5m0_ctsn = "/pinctrl/uart5/uart5m0-ctsn"; - fspim0_cs1 = "/pinctrl/fspi/fspim0-cs1"; - fspim0_pins = "/pinctrl/fspi/fspim0-pins"; - rkisp0_vir3 = "/rkisp0-vir3"; - l2_cache_l3 = "/cpus/l2-cache-l3"; - rk806_dvs3_dvs = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs3_dvs"; - hdmi_debug0 = "/pinctrl/hdmi/hdmi-debug0"; - hdmim1_tx1_hpd = "/pinctrl/hdmi/hdmim1-tx1-hpd"; - vp1_out_dp0 = "/vop@fdd90000/ports/port@1/endpoint@0"; - qos_isp0_mro = "/qos@fdf40400"; - spi0m2_cs1 = "/pinctrl/spi0/spi0m2-cs1"; - vdd_gpu_s0 = "/spi@feb20000/rk806single@0/regulators/DCDC_REG1"; - tsadc_shut = "/pinctrl/tsadc/tsadc-shut"; - pwm10 = "/pwm@febe0020"; - i2c7m3_xfer = "/pinctrl/i2c7/i2c7m3-xfer"; - rktimer = "/timer@feae0000"; - cpub0_leakage = "/otp@fecc0000/cpub0-leakage@17"; - i2c4m2_xfer = "/pinctrl/i2c4/i2c4m2-xfer"; - hclk_rkvdec1_pre = "/clocks/hclk_rkvdec1_pre@fd7c08a4"; - pcie30phy_pins = "/pinctrl/pcie30phy/pcie30phy-pins"; - jpege1 = "/jpege-core@fdba4000"; - pcfg_pull_none_drv_level_14 = "/pinctrl/pcfg-pull-none-drv-level-14"; - i2c1m1_xfer = "/pinctrl/i2c1/i2c1m1-xfer"; - rkcif_dvp_sditf = "/rkcif-dvp-sditf"; - rkcif_mipi_lvds4_sditf = "/rkcif-mipi-lvds4-sditf"; - vp2_out_dp1 = "/vop@fdd90000/ports/port@2/endpoint@5"; - vp2_out_dsi0 = "/vop@fdd90000/ports/port@2/endpoint@3"; - its1 = "/interrupt-controller@fe600000/msi-controller@fe660000"; - cpu_b3 = "/cpus/cpu@700"; - vcc_hub_reset = "/vcc-hub-reset-regulator"; - spi1m1_cs1 = "/pinctrl/spi1/spi1m1-cs1"; - vdd_npu_mem_s0 = "/i2c@fea90000/rk8602@42"; - pwm7m2_pins = "/pinctrl/pwm7/pwm7m2-pins"; - pdm1m1_sdi1 = "/pinctrl/pdm1/pdm1m1-sdi1"; - vbus5v0_typec_pwr_en = "/vbus5v0-typec-pwr-en-regulator"; - pwm4m1_pins = "/pinctrl/pwm4/pwm4m1-pins"; - dmc_opp_table = "/dmc-opp-table"; - pcie30x4_button_rstn = "/pinctrl/pcie30x4/pcie30x4-button-rstn"; - uart4 = "/serial@feb70000"; - pwm1m0_pins = "/pinctrl/pwm1/pwm1m0-pins"; - spi0m0_cs0 = "/pinctrl/spi0/spi0m0-cs0"; - pldo6_s3 = "/spi@feb20000/rk806single@0/regulators/PLDO_REG6"; - mipim1_camera2_clk = "/pinctrl/mipi/mipim1-camera2-clk"; - mipim0_camera0_clk = "/pinctrl/mipi/mipim0-camera0-clk"; - rkcif_mipi_lvds_sditf_vir1 = "/rkcif-mipi-lvds-sditf-vir1"; - pcfg_pull_up_drv_level_9 = "/pinctrl/pcfg-pull-up-drv-level-9"; - dmac2 = "/dma-controller@fed10000"; - pdm0m0_sdi3 = "/pinctrl/pdm0/pdm0m0-sdi3"; - qos_gpu_m2 = "/qos@fdf35400"; - i2s0_sdi3 = "/pinctrl/i2s0/i2s0-sdi3"; - cluster0_opp_table = "/cluster0-opp-table"; - spi2m0_cs1 = "/pinctrl/spi2/spi2m0-cs1"; - otp_id = "/otp@fecc0000/id@7"; - uart5m1_xfer = "/pinctrl/uart5/uart5m1-xfer"; - uart9m1_ctsn = "/pinctrl/uart9/uart9m1-ctsn"; - qos_rga3_0 = "/qos@fdf67000"; - usbdp_phy0_dp = "/phy@fed80000/dp-port"; - uart2m0_xfer = "/pinctrl/uart2/uart2m0-xfer"; - uart6m0_ctsn = "/pinctrl/uart6/uart6m0-ctsn"; - npu_pins = "/pinctrl/npu/npu-pins"; - pcfg_pull_up_drv_level_11 = "/pinctrl/pcfg-pull-up-drv-level-11"; - spdif_tx3 = "/spdif-tx@fdde0000"; - rkispp0 = "/rkispp@fdcd0000"; - xin32k = "/clocks/xin32k"; - vcc_1v8_s3 = "/spi@feb20000/rk806single@0/regulators/DCDC_REG10"; - qos_usb2host_1 = "/qos@fdf3e600"; - bt_sco = "/bt-sco"; - pcfg_output_high_pull_none = "/pinctrl/pcfg-output-high-pull-none"; - adc_keys = "/adc-keys"; - rkcif_mipi_lvds4 = "/rkcif-mipi-lvds4"; - i2c8 = "/i2c@feca0000"; - dp0 = "/dp@fde50000"; - mipi_te1 = "/pinctrl/mipi/mipi-te1"; - i2c8m3_xfer = "/pinctrl/i2c8/i2c8m3-xfer"; - i2c5m2_xfer = "/pinctrl/i2c5/i2c5m2-xfer"; - pcie30x2_button_rstn = "/pinctrl/pcie30x2/pcie30x2-button-rstn"; - syssram = "/sram@ff001000"; - pcfg_pull_down_drv_level_2 = "/pinctrl/pcfg-pull-down-drv-level-2"; - qos_hdmirx = "/qos@fdf81200"; - i2c2m1_xfer = "/pinctrl/i2c2/i2c2m1-xfer"; - pcie30x4m1_pins = "/pinctrl/pcie30x4/pcie30x4m1-pins"; - vdd_0v75_s0 = "/spi@feb20000/rk806single@0/regulators/NLDO_REG5"; - hw_decompress = "/decompress@fea80000"; - pcie30x1m0_pins = "/pinctrl/pcie30x1/pcie30x1m0-pins"; - mipim0_camera4_clk = "/pinctrl/mipi/mipim0-camera4-clk"; - gmac1_txer = "/pinctrl/gmac1/gmac1-txer"; - uart3_ctsn = "/pinctrl/uart3/uart3-ctsn"; - vcc_sdcard_pwr_en = "/vcc-sdcard-pwr-en-regulator"; - mipi0_csi2_hw = "/mipi0-csi2-hw@fdd10000"; - rkvenc1_mmu = "/iommu@fdbef000"; - edp0 = "/edp@fdec0000"; - rkvenc_ccu = "/rkvenc-ccu"; - rk806_dvs3_rst = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs3_rst"; - power = "/power-management@fd8d8000/power-controller"; - vad = "/vad@fe4d0000"; - spi3m3_pins = "/pinctrl/spi3/spi3m3-pins"; - pwm8m2_pins = "/pinctrl/pwm8/pwm8m2-pins"; - spi0m2_pins = "/pinctrl/spi0/spi0m2-pins"; - pwm5m1_pins = "/pinctrl/pwm5/pwm5m1-pins"; - vcc_3v3_s0 = "/spi@feb20000/rk806single@0/regulators/PLDO_REG4"; - aclk_isp1_pre = "/clocks/aclk_isp1_pre@fd7c0868"; - pwm2m0_pins = "/pinctrl/pwm2/pwm2m0-pins"; - i2s1m1_sdo2 = "/pinctrl/i2s1/i2s1m1-sdo2"; - pcfg_pull_down_drv_level_13 = "/pinctrl/pcfg-pull-down-drv-level-13"; - eth0_pins = "/pinctrl/eth0/eth0-pins"; - rkcif_mipi_lvds4_sditf_vir1 = "/rkcif-mipi-lvds4-sditf-vir1"; - pwm3 = "/pwm@fd8b0030"; - pdm1m0_sdi3 = "/pinctrl/pdm1/pdm1m0-sdi3"; - rkcif_mmu = "/iommu@fdce0800"; - usbc0_int = "/pinctrl/usb-typec/usbc0-int"; - gmac0_tx_bus2 = "/pinctrl/gmac0/gmac0-tx-bus2"; - sata2 = "/sata@fe230000"; - uart9m2_xfer = "/pinctrl/uart9/uart9m2-xfer"; - dp0_in_vp2 = "/dp@fde50000/ports/port@0/endpoint@2"; - hdmiin_sound = "/hdmiin-sound"; - rkisp0_vir1 = "/rkisp0-vir1"; - uart6_gpios = "/pinctrl/wireless-bluetooth/uart6-gpios"; - spi3m3_cs1 = "/pinctrl/spi3/spi3m3-cs1"; - l2_cache_l1 = "/cpus/l2-cache-l1"; - pcfg_pull_none_drv_level_8 = "/pinctrl/pcfg-pull-none-drv-level-8"; - uart6m1_xfer = "/pinctrl/uart6/uart6m1-xfer"; - pwm11m3_pins = "/pinctrl/pwm11/pwm11m3-pins"; - vp2_out_hdmi0 = "/vop@fdd90000/ports/port@2/endpoint@2"; - qos_hdcp1 = "/qos@fdf81000"; - scmi_reset = "/firmware/scmi/protocol@16"; - vdd_cpu_lit_mem_s0 = "/spi@feb20000/rk806single@0/regulators/DCDC_REG2"; - i2s0_mclk = "/pinctrl/i2s0/i2s0-mclk"; - uart3m0_xfer = "/pinctrl/uart3/uart3m0-xfer"; - uart7m0_ctsn = "/pinctrl/uart7/uart7m0-ctsn"; - usbhost_dwc3_0 = "/usbhost3_0/usb@fcd00000"; - hdmim0_rx_hpdin = "/pinctrl/hdmi/hdmim0-rx-hpdin"; - edp0_out = "/edp@fdec0000/ports/port@1/endpoint"; - rkisp0 = "/rkisp@fdcb0000"; - dsu_grf = "/syscon@fd598000"; - vcc_fan_pwr_en = "/vcc-fan-pwr-en-regulator"; - gmac1_rx_bus2 = "/pinctrl/gmac1/gmac1-rx-bus2"; - uart1m2_rtsn = "/pinctrl/uart1/uart1m2-rtsn"; - csi2_dcphy0 = "/csi2-dcphy0"; - usb2phy0_grf = "/syscon@fd5d0000"; - scmi_clk = "/firmware/scmi/protocol@14"; - emmc_clk = "/pinctrl/emmc/emmc-clk"; - jpege1_mmu = "/iommu@fdba4800"; - qos_rkvenc1_m1ro = "/qos@fdf61200"; - spi2m2_cs0 = "/pinctrl/spi2/spi2m2-cs0"; - vcc5v0_host = "/vcc5v0-host"; - cru = "/clock-controller@fd7c0000"; - hdmim0_tx0_cec = "/pinctrl/hdmi/hdmim0-tx0-cec"; - pcfg_pull_none_drv_level_12 = "/pinctrl/pcfg-pull-none-drv-level-12"; - rk806_dvs2_null = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs2_null"; - cpub01_opp_info = "/otp@fecc0000/cpub01-opp-info@43"; - i2s3_sdi = "/pinctrl/i2s3/i2s3-sdi"; - aclk_rkvdec0_pre = "/clocks/aclk_rkvdec0_pre@fd7c08a0"; - cpu_b1 = "/cpus/cpu@500"; - i2c6m2_xfer = "/pinctrl/i2c6/i2c6m2-xfer"; - rknpu_mmu = "/iommu@fdab9000"; - rkcif_mipi_lvds_sditf = "/rkcif-mipi-lvds-sditf"; - i2c3m1_xfer = "/pinctrl/i2c3/i2c3m1-xfer"; - i2c0m0_xfer = "/pinctrl/i2c0/i2c0m0-xfer"; - pcie30x2m0_pins = "/pinctrl/pcie30x2/pcie30x2m0-pins"; - qos_isp1_mwo = "/qos@fdf41000"; - mipi2_csi2_output1 = "/mipi2-csi2/ports/port@1/endpoint@0"; - gmac1_stmmac_axi_setup = "/ethernet@fe1c0000/stmmac-axi-config"; - vcc5v0_usbdcin = "/vcc5v0-usbdcin"; - spi3m1_cs0 = "/pinctrl/spi3/spi3m1-cs0"; - reboot_mode = "/syscon@fd588000/reboot-mode"; - rga3_0_mmu = "/iommu@fdb60f00"; - uart2 = "/serial@feb50000"; - imx415_out0 = "/i2c@fec80000/imx415@37/port/endpoint"; - rkcif_mipi_lvds3_sditf_vir2 = "/rkcif-mipi-lvds3-sditf-vir2"; - pwm9m2_pins = "/pinctrl/pwm9/pwm9m2-pins"; - fec0_mmu = "/iommu@fdcd0f00"; - mipi0_csi2 = "/mipi0-csi2"; - spi1m2_pins = "/pinctrl/spi1/spi1m2-pins"; - pcfg_pull_up_drv_level_7 = "/pinctrl/pcfg-pull-up-drv-level-7"; - pwm6m1_pins = "/pinctrl/pwm6/pwm6m1-pins"; - tsadc_shut_org = "/pinctrl/tsadc/tsadc-shut-org"; - qos_rkvdec1 = "/qos@fdf63000"; - dmac0 = "/dma-controller@fea10000"; - vp2_out_edp1 = "/vop@fdd90000/ports/port@2/endpoint@6"; - pdm0m0_sdi1 = "/pinctrl/pdm0/pdm0m0-sdi1"; - qos_gpu_m0 = "/qos@fdf35000"; - pwm3m0_pins = "/pinctrl/pwm3/pwm3m0-pins"; - i2s0_sdi1 = "/pinctrl/i2s0/i2s0-sdi1"; - qos_av1 = "/qos@fdf64000"; - pcfg_output_low = "/pinctrl/pcfg-output-low"; - spdif_tx1 = "/spdif-tx@fe4f0000"; - hdptxphy1_grf = "/syscon@fd5e4000"; - spi4m0_cs0 = "/pinctrl/spi4/spi4m0-cs0"; - dp1_in_vp2 = "/dp@fde60000/ports/port@0/endpoint@2"; - jpegd_mmu = "/iommu@fdb90480"; - sata0m1_pins = "/pinctrl/sata0/sata0m1-pins"; - uart7m1_xfer = "/pinctrl/uart7/uart7m1-xfer"; - vp1_out_hdmi1 = "/vop@fdd90000/ports/port@1/endpoint@5"; - dp1_out = "/dp@fde60000/ports/port@1/endpoint"; - otp = "/otp@fecc0000"; - uart4m0_xfer = "/pinctrl/uart4/uart4m0-xfer"; - uart8m0_ctsn = "/pinctrl/uart8/uart8m0-ctsn"; - hdcp1 = "/hdcp@fde70000"; - rkcif_mipi_lvds2 = "/rkcif-mipi-lvds2"; - i2c6 = "/i2c@fec80000"; - qos_jpeg_enc3 = "/qos@fdf66a00"; - i2s2m1_idle = "/pinctrl/i2s2/i2s2m1-idle"; - refclk_pins = "/pinctrl/refclk/refclk-pins"; - pcie3x4_intc = "/pcie@fe150000/legacy-interrupt-controller"; - hdptxphy_hdmi1 = "/hdmiphy@fed70000"; - mipi2_lvds2_sditf = "/rkcif-mipi-lvds2-sditf/port/endpoint"; - pdm1 = "/pdm@fe4c0000"; - vdd_cpu_lit_s0 = "/spi@feb20000/rk806single@0/regulators/DCDC_REG2"; - pdm0m1_clk = "/pinctrl/pdm0/pdm0m1-clk"; - pcfg_pull_down_drv_level_0 = "/pinctrl/pcfg-pull-down-drv-level-0"; - qos_vicap_m0 = "/qos@fdf40600"; - gic = "/interrupt-controller@fe600000"; - vdd_cpu_big1_s0 = "/i2c@fd880000/rk8603@43"; - uart0_rtsn = "/pinctrl/uart0/uart0-rtsn"; - i2c7m2_xfer = "/pinctrl/i2c7/i2c7m2-xfer"; - mclkin_i2s3 = "/clocks/mclkin-i2s3"; - hdmim0_tx0_scl = "/pinctrl/hdmi/hdmim0-tx0-scl"; - hdmim0_tx0_sda = "/pinctrl/hdmi/hdmim0-tx0-sda"; - i2c4m1_xfer = "/pinctrl/i2c4/i2c4m1-xfer"; - spdif1m0_tx = "/pinctrl/spdif1/spdif1m0-tx"; - sdmmc_det = "/pinctrl/sdmmc/sdmmc-det"; - i2c1m0_xfer = "/pinctrl/i2c1/i2c1m0-xfer"; - rkcif_mipi_lvds2_sditf_vir3 = "/rkcif-mipi-lvds2-sditf-vir3"; - hdptxphy1 = "/phy@fed70000"; - route_dp1 = "/display-subsystem/route/route-dp1"; - hdmim0_tx0_hpd = "/pinctrl/hdmi/hdmim0-tx0-hpd"; - i2s1m1_sdo0 = "/pinctrl/i2s1/i2s1m1-sdo0"; - pdm1m0_clk = "/pinctrl/pdm1/pdm1m0-clk"; - pcfg_pull_down_drv_level_11 = "/pinctrl/pcfg-pull-down-drv-level-11"; - usbdrd3_1 = "/usbdrd3_1"; - spi2m2_pins = "/pinctrl/spi2/spi2m2-pins"; - pwm7m1_pins = "/pinctrl/pwm7/pwm7m1-pins"; - rkcif_mipi_lvds1_sditf = "/rkcif-mipi-lvds1-sditf"; - pwm1 = "/pwm@fd8b0010"; - pdm1m0_sdi1 = "/pinctrl/pdm1/pdm1m0-sdi1"; - threshold = "/thermal-zones/soc-thermal/trips/trip-point-0"; - pwm4m0_pins = "/pinctrl/pwm4/pwm4m0-pins"; - gmac0_mtl_rx_setup = "/ethernet@fe1b0000/rx-queues-config"; - sata0 = "/sata@fe210000"; - dp0_in_vp0 = "/dp@fde50000/ports/port@0/endpoint@0"; - can2 = "/can@fea70000"; - pcfg_pull_none_drv_level_6 = "/pinctrl/pcfg-pull-none-drv-level-6"; - usbdrd_dwc3_0 = "/usbdrd3_0/usb@fc000000"; - rkvenc0 = "/rkvenc-core@fdbd0000"; - bt_reset_gpio = "/pinctrl/wireless-bluetooth/bt-reset-gpio"; - sata1m1_pins = "/pinctrl/sata1/sata1m1-pins"; - spll = "/clocks/spll"; - uart8m1_xfer = "/pinctrl/uart8/uart8m1-xfer"; - sata_pins = "/pinctrl/sata/sata-pins"; - pcfg_pull_none_drv_level_1_smt = "/pinctrl/pcfg-pull-none-drv-level-1-smt"; - qos_npu1 = "/qos@fdf70000"; - uart5m0_xfer = "/pinctrl/uart5/uart5m0-xfer"; - uart9m0_ctsn = "/pinctrl/uart9/uart9m0-ctsn"; - pwm10m2_pins = "/pinctrl/pwm10/pwm10m2-pins"; - rk806_dvs1_pwrdn = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs1_pwrdn"; - pipe_phy0_grf = "/syscon@fd5bc000"; - es8388 = "/i2c@fec80000/es8388@11"; - spdif_rx2 = "/spdif-rx@fde18000"; - usb_host1_ehci = "/usb@fc880000"; - xin24m = "/clocks/xin24m"; - pcie20x1_2_button_rstn = "/pinctrl/pcie20x1/pcie20x1-2-button-rstn"; - mipi2_csi2_hw = "/mipi2-csi2-hw@fdd30000"; - acdcdig_dsm = "/codec-digital@fe500000"; - vop_grf = "/syscon@fd5a4000"; - rk806_dvs1_slp = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs1_slp"; - i2s6_8ch = "/i2s@fddf4000"; - i2s2m1_sdo = "/pinctrl/i2s2/i2s2m1-sdo"; - pcie30x1_1_button_rstn = "/pinctrl/pcie30x1/pcie30x1-1-button-rstn"; - pcfg_output_low_pull_down = "/pinctrl/pcfg-output-low-pull-down"; - pcfg_pull_none_drv_level_10 = "/pinctrl/pcfg-pull-none-drv-level-10"; - pdm0m1_clk1 = "/pinctrl/pdm0/pdm0m1-clk1"; - mipidphy0_grf = "/syscon@fd5b4000"; - route_dsi1 = "/display-subsystem/route/route-dsi1"; - route_hdmi0 = "/display-subsystem/route/route-hdmi0"; - rkvdec_ccu = "/rkvdec-ccu@fdc30000"; - csi2_dphy4 = "/csi2-dphy4"; - gmac1_rgmii_bus = "/pinctrl/gmac1/gmac1-rgmii-bus"; - qos_sdio = "/qos@fdf39000"; - tsadc = "/tsadc@fec00000"; - pcfg_output_high_pull_up = "/pinctrl/pcfg-output-high-pull-up"; - hclk_usb = "/clocks/hclk_usb@fd7c08a8"; - avcc_1v8_s0 = "/spi@feb20000/rk806single@0/regulators/PLDO_REG1"; - edp0_in_vp2 = "/edp@fdec0000/ports/port@0/endpoint@2"; - mdio1 = "/ethernet@fe1c0000/mdio"; - gpio3 = "/pinctrl/gpio@fec40000"; - gpu_opp_table = "/gpu-opp-table"; - cif_mipi2_in0 = "/rkcif-mipi-lvds2/port/endpoint"; - pcfg_output_high = "/pinctrl/pcfg-output-high"; - i2c8m2_xfer = "/pinctrl/i2c8/i2c8m2-xfer"; - vdpu_mmu = "/iommu@fdb50800"; - i2c5m1_xfer = "/pinctrl/i2c5/i2c5m1-xfer"; - combphy0_ps = "/phy@fee00000"; - rgb = "/syscon@fd58c000/rgb"; - hclk_vo1 = "/clocks/hclk_vo1@fd7c08ec"; - i2c2m0_xfer = "/pinctrl/i2c2/i2c2m0-xfer"; - uart0 = "/serial@fd890000"; - mipidcphy1_grf = "/syscon@fd5ec000"; - pcie30x4m0_pins = "/pinctrl/pcie30x4/pcie30x4m0-pins"; - vdd_ddr_pll_s0 = "/spi@feb20000/rk806single@0/regulators/NLDO_REG2"; - gmac0_txer = "/pinctrl/gmac0/gmac0-txer"; - uart2_ctsn = "/pinctrl/uart2/uart2-ctsn"; - pcfg_pull_up_drv_level_5 = "/pinctrl/pcfg-pull-up-drv-level-5"; - pcfg_pull_down_drv_level_9 = "/pinctrl/pcfg-pull-down-drv-level-9"; - pcfg_pull_none_drv_level_5_smt = "/pinctrl/pcfg-pull-none-drv-level-5-smt"; - i2s2m0_sdi = "/pinctrl/i2s2/i2s2m0-sdi"; - qos_rga2_mwo = "/qos@fdf66e00"; - spi3m2_pins = "/pinctrl/spi3/spi3m2-pins"; - pwm8m1_pins = "/pinctrl/pwm8/pwm8m1-pins"; - dsi1_in = "/dsi@fde30000/ports/port@0"; - vp3_out_dsi0 = "/vop@fdd90000/ports/port@3/endpoint@0"; - pclk_vo0_grf = "/clocks/pclk_vo0_grf@fd7c08dc"; - spi0m1_pins = "/pinctrl/spi0/spi0m1-pins"; - pwm5m0_pins = "/pinctrl/pwm5/pwm5m0-pins"; - bt1120_pins = "/pinctrl/bt1120/bt1120-pins"; - dp1_in_vp0 = "/dp@fde60000/ports/port@0/endpoint@0"; - i2s1m0_sdo2 = "/pinctrl/i2s1/i2s1m0-sdo2"; - mipi2_csi2_input0 = "/mipi2-csi2/ports/port@0/endpoint@0"; - u2phy0_otg = "/syscon@fd5d0000/usb2-phy@0/otg-port"; - vp0_out_edp0 = "/vop@fdd90000/ports/port@0/endpoint@1"; - qos_fisheye0 = "/qos@fdf40000"; - i2c4 = "/i2c@feac0000"; - sata2m1_pins = "/pinctrl/sata2/sata2m1-pins"; - uart9m1_xfer = "/pinctrl/uart9/uart9m1-xfer"; - qos_jpeg_enc1 = "/qos@fdf66600"; - i2s1m1_sdi2 = "/pinctrl/i2s1/i2s1m1-sdi2"; - i2s3_2ch = "/i2s@fe4a0000"; - uart6m0_xfer = "/pinctrl/uart6/uart6m0-xfer"; - cpul_leakage = "/otp@fecc0000/cpul-leakage@19"; - pwm11m2_pins = "/pinctrl/pwm11/pwm11m2-pins"; - fspim1_cs1 = "/pinctrl/fspi/fspim1-cs1"; - vdd_vdenc_s0 = "/spi@feb20000/rk806single@0/regulators/DCDC_REG4"; - pdm1m1_clk1 = "/pinctrl/pdm1/pdm1m1-clk1"; - hdmi_debug5 = "/pinctrl/hdmi/hdmi-debug5"; - uart1m1_rtsn = "/pinctrl/uart1/uart1m1-rtsn"; - qos_isp1_mro = "/qos@fdf41100"; - ddrphych3_pins = "/pinctrl/ddrphych3/ddrphych3-pins"; - spi0m3_cs1 = "/pinctrl/spi0/spi0m3-cs1"; - qos_rkvenc0_m1ro = "/qos@fdf60200"; - qos_jpeg_dec = "/qos@fdf66200"; - mclkin_i2s1 = "/clocks/mclkin-i2s1"; - edp1_in_vp2 = "/edp@fded0000/ports/port@0/endpoint@2"; - pcie30_avdd0v75 = "/pcie30-avdd0v75"; - isp0_mmu = "/iommu@fdcb7f00"; - qos_npu0_mwr = "/qos@fdf72000"; - rkvdec0 = "/rkvdec-core@fdc38000"; - rkvdec0_mmu = "/iommu@fdc38700"; - rk806_dvs1_null = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs1_null"; - pwm15 = "/pwm@febf0030"; - vop_mmu = "/iommu@fdd97e00"; - rkcif_mipi_lvds2_sditf_vir1 = "/rkcif-mipi-lvds2-sditf-vir1"; - pcie2x1l2 = "/pcie@fe190000"; - i2c6m1_xfer = "/pinctrl/i2c6/i2c6m1-xfer"; - package_serial_number_low = "/otp@fecc0000/package-serial-number-low@6"; - iep_mmu = "/iommu@fdbb0800"; - l2_cache_b3 = "/cpus/l2-cache-b3"; - i2c3m0_xfer = "/pinctrl/i2c3/i2c3m0-xfer"; - vcc_1v1_nldo_s3 = "/vcc-1v1-nldo-s3"; - spi1m2_cs1 = "/pinctrl/spi1/spi1m2-cs1"; - pdm0m1_idle = "/pinctrl/pdm0/pdm0m1-idle"; - can0 = "/can@fea50000"; - spi4m2_pins = "/pinctrl/spi4/spi4m2-pins"; - pcfg_pull_none_drv_level_4 = "/pinctrl/pcfg-pull-none-drv-level-4"; - pwm9m1_pins = "/pinctrl/pwm9/pwm9m1-pins"; - arm_pmu = "/arm-pmu"; - vp2 = "/vop@fdd90000/ports/port@2"; - rk806single = "/spi@feb20000/rk806single@0"; - spi1m1_pins = "/pinctrl/spi1/spi1m1-pins"; - pwm6m0_pins = "/pinctrl/pwm6/pwm6m0-pins"; - gmac0_mtl_tx_setup = "/ethernet@fe1b0000/tx-queues-config"; - rng = "/rng@fe378000"; - cpu_l2 = "/cpus/cpu@200"; - uart9 = "/serial@febc0000"; - spi0m1_cs0 = "/pinctrl/spi0/spi0m1-cs0"; - rk806_dvs3_gpio = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs3_gpio"; - rkcif_mipi_lvds5_sditf = "/rkcif-mipi-lvds5-sditf"; - usbdpphy0_grf = "/syscon@fd5c8000"; - mipim1_camera3_clk = "/pinctrl/mipi/mipim1-camera3-clk"; - pcie_clk3 = "/pcie-clk3"; - mipim0_camera1_clk = "/pinctrl/mipi/mipim0-camera1-clk"; - vp0_out_hdmi0 = "/vop@fdd90000/ports/port@0/endpoint@2"; - rkcif = "/rkcif@fdce0000"; - gmac0_rgmii_clk = "/pinctrl/gmac0/gmac0-rgmii-clk"; - wdt_en_base = "/pinctrl/wdt-pc9202/wdt-en-base"; - vp3_out_rgb = "/vop@fdd90000/ports/port@3/endpoint@2"; - spdif_rx0 = "/spdif-rx@fde08000"; - sdmmc_bus4 = "/pinctrl/sdmmc/sdmmc-bus4"; - hdmim2_tx0_scl = "/pinctrl/hdmi/hdmim2-tx0-scl"; - hdmim2_tx0_sda = "/pinctrl/hdmi/hdmim2-tx0-sda"; - spi2m1_cs1 = "/pinctrl/spi2/spi2m1-cs1"; - pwm15m3_pins = "/pinctrl/pwm15/pwm15m3-pins"; - sata0m0_pins = "/pinctrl/sata0/sata0m0-pins"; - uart7m0_xfer = "/pinctrl/uart7/uart7m0-xfer"; - csi2_dphy2 = "/csi2-dphy2"; - spi3 = "/spi@feb30000"; - edp0_in_vp0 = "/edp@fdec0000/ports/port@0/endpoint@0"; - gpio1 = "/pinctrl/gpio@fec20000"; - tsadcm1_shut = "/pinctrl/tsadc/tsadcm1-shut"; - usbdp_phy0_dp_altmode_mux = "/phy@fed80000/port/endpoint@1"; - i2s2m0_idle = "/pinctrl/i2s2/i2s2m0-idle"; - spi1m0_cs0 = "/pinctrl/spi1/spi1m0-cs0"; - rkcif_mipi_lvds1_sditf_vir2 = "/rkcif-mipi-lvds1-sditf-vir2"; - i2s3_sclk = "/pinctrl/i2s3/i2s3-sclk"; - hdmim1_rx_hpdin = "/pinctrl/hdmi/hdmim1-rx-hpdin"; - spi3m0_cs1 = "/pinctrl/spi3/spi3m0-cs1"; - mipi_dcphy1 = "/mipi-dcphy-dummy"; - vcc5v0_sys = "/vcc5v0-sys"; - aclk_hdcp0_pre = "/clocks/aclk_hdcp0_pre@fd7c08dc"; - usb_con = "/i2c@fec80000/fusb302@22/connector"; - hdmirx_ctrler = "/hdmirx-controller@fdee0000"; - i2c7m1_xfer = "/pinctrl/i2c7/i2c7m1-xfer"; - pcfg_pull_up_drv_level_3 = "/pinctrl/pcfg-pull-up-drv-level-3"; - rgmii_phy1 = "/ethernet@fe1c0000/mdio/phy@1"; - i2c4m0_xfer = "/pinctrl/i2c4/i2c4m0-xfer"; - pcfg_pull_down_drv_level_7 = "/pinctrl/pcfg-pull-down-drv-level-7"; - spdif0m0_tx = "/pinctrl/spdif0/spdif0m0-tx"; - wdt = "/watchdog@feaf0000"; - vdd_0v85_s0 = "/spi@feb20000/rk806single@0/regulators/NLDO_REG4"; - cspmu = "/cspmu@fd10c000"; - gmac_uio0 = "/uio@fe1b0000"; - av1d_mmu = "/iommu@fdca0000"; - mailbox2 = "/mailbox@fece0000"; - mipi4_csi2_hw = "/mipi4-csi2-hw@fdd50000"; - pdm1m1_idle = "/pinctrl/pdm1/pdm1m1-idle"; - rga3_core0 = "/rga@fdb60000"; - i2s1m0_sdo0 = "/pinctrl/i2s1/i2s1m0-sdo0"; - bigcore1_thermal = "/thermal-zones/bigcore1-thermal"; - pcfg_output_low_pull_up = "/pinctrl/pcfg-output-low-pull-up"; - spi2m1_pins = "/pinctrl/spi2/spi2m1-pins"; - pwm7m0_pins = "/pinctrl/pwm7/pwm7m0-pins"; - i2c2 = "/i2c@feaa0000"; - npu_grf = "/syscon@fd5a2000"; - i2s1m1_sdi0 = "/pinctrl/i2s1/i2s1m1-sdi0"; - mipi5_csi2 = "/mipi5-csi2"; - pwm8 = "/pwm@febe0000"; - log_leakage = "/otp@fecc0000/log-leakage@1a"; - cpub23_opp_info = "/otp@fecc0000/cpub23-opp-info@49"; - vdd_vdenc_mem_s0 = "/spi@feb20000/rk806single@0/regulators/DCDC_REG4"; - rga2 = "/rga@fdb80000"; - emmc_bus8 = "/pinctrl/emmc/emmc-bus8"; - qos_usb3_0 = "/qos@fdf3e200"; - sata1m0_pins = "/pinctrl/sata1/sata1m0-pins"; - uart8m0_xfer = "/pinctrl/uart8/uart8m0-xfer"; - pwm13m2_pins = "/pinctrl/pwm13/pwm13m2-pins"; - hdmi_debug3 = "/pinctrl/hdmi/hdmi-debug3"; - cam0_or_cam1_switch_pin = "/pinctrl/cam/cam0-or-cam1-switch-pin"; - mcum1_pins = "/pinctrl/mcu/mcum1-pins"; - pwm10m1_pins = "/pinctrl/pwm10/pwm10m1-pins"; - edp1_out = "/edp@fded0000/ports/port@1/endpoint"; - hclk_sdio_pre = "/clocks/hclk_sdio_pre@fd7c092c"; - usb_host0_ehci = "/usb@fc800000"; - edp1_in_vp0 = "/edp@fded0000/ports/port@0/endpoint@0"; - gmac1 = "/ethernet@fe1c0000"; - i2s10_8ch = "/i2s@fde00000"; - hdmi1_in = "/hdmi@fdea0000/ports/port@0"; - usb2phy1_grf = "/syscon@fd5d4000"; - pdm0m0_clk1 = "/pinctrl/pdm0/pdm0m0-clk1"; - jpege2_mmu = "/iommu@fdba8800"; - pwm13 = "/pwm@febf0010"; - pcie2x1l0 = "/pcie@fe170000"; - hdmi0_in_vp1 = "/hdmi@fde80000/ports/port@0/endpoint@1"; - hdmim0_tx1_cec = "/pinctrl/hdmi/hdmim0-tx1-cec"; - l2_cache_b1 = "/cpus/l2-cache-b1"; - cif_dvp_bus8 = "/pinctrl/cif/cif-dvp-bus8"; - qos_rga2_mro = "/qos@fdf66c00"; - aclk_rkvdec1_pre = "/clocks/aclk_rkvdec1_pre@fd7c08a4"; - i2c8m1_xfer = "/pinctrl/i2c8/i2c8m1-xfer"; - vdd_ddr_s0 = "/spi@feb20000/rk806single@0/regulators/DCDC_REG5"; - hdmirx_det = "/pinctrl/hdmirx/hdmirx-det"; - pca9555 = "/i2c@feab0000/gpio@21"; - qos_sdmmc = "/qos@fdf3d800"; - clk32k_out1 = "/pinctrl/clk32k/clk32k-out1"; - i2c5m0_xfer = "/pinctrl/i2c5/i2c5m0-xfer"; - cif_dvp_clk = "/pinctrl/cif/cif-dvp-clk"; - rknpu = "/npu@fdab0000"; - pcfg_pull_none_drv_level_2 = "/pinctrl/pcfg-pull-none-drv-level-2"; - spi3m2_cs0 = "/pinctrl/spi3/spi3m2-cs0"; - vp0 = "/vop@fdd90000/ports/port@0"; - rga3_1_mmu = "/iommu@fdb70f00"; - jtagm2_pins = "/pinctrl/jtag/jtagm2-pins"; - cpu_l0 = "/cpus/cpu@0"; - uart7 = "/serial@feba0000"; - rkisp1_vir2 = "/rkisp1-vir2"; - fec1_mmu = "/iommu@fdcd8f00"; - qos_vop_m0 = "/qos@fdf82000"; - pcie_clk1 = "/pcie-clk1"; - gmac1_ptp_ref_clk = "/pinctrl/gmac1/gmac1-ptp-ref-clk"; - spi3m1_pins = "/pinctrl/spi3/spi3m1-pins"; - pwm8m0_pins = "/pinctrl/pwm8/pwm8m0-pins"; - hdmi0_sound = "/hdmi0-sound"; - ioc = "/syscon@fd5f0000"; - spi0m0_pins = "/pinctrl/spi0/spi0m0-pins"; - avsd = "/avsd-plus@fdb51000"; - rkcif_mipi_lvds5_sditf_vir3 = "/rkcif-mipi-lvds5-sditf-vir3"; - u2phy2 = "/syscon@fd5d8000/usb2-phy@8000"; - sfc = "/spi@fe2b0000"; - csi2_dphy0 = "/csi2-dphy0"; - spi1 = "/spi@feb10000"; - spi4m1_cs0 = "/pinctrl/spi4/spi4m1-cs0"; - gpu_grf = "/syscon@fd5a0000"; - pcfg_pull_up_drv_level_14 = "/pinctrl/pcfg-pull-up-drv-level-14"; - wireless_bluetooth = "/wireless-bluetooth"; - pclk_av1_pre = "/clocks/pclk_av1_pre@fd7c0910"; - sata2m0_pins = "/pinctrl/sata2/sata2m0-pins"; - uart9m0_xfer = "/pinctrl/uart9/uart9m0-xfer"; - pwm14m2_pins = "/pinctrl/pwm14/pwm14m2-pins"; - i2s1m0_sdi2 = "/pinctrl/i2s1/i2s1m0-sdi2"; - pwm11m1_pins = "/pinctrl/pwm11/pwm11m1-pins"; - bt_sound = "/bt-sound"; - qos_rkvenc1_m0ro = "/qos@fdf61000"; - mclkout_i2s2 = "/clocks/mclkout-i2s2@fd58c318"; - dsi0 = "/dsi@fde20000"; - pdm1m0_clk1 = "/pinctrl/pdm1/pdm1m0-clk1"; - uart1m0_rtsn = "/pinctrl/uart1/uart1m0-rtsn"; - ddrphych2_pins = "/pinctrl/ddrphych2/ddrphych2-pins"; - route_edp0 = "/display-subsystem/route/route-edp0"; - hdmi0 = "/hdmi@fde80000"; - es8388_sound = "/es8388-sound"; - hdmi1_in_vp1 = "/hdmi@fdea0000/ports/port@0/endpoint@1"; - pcfg_pull_up_drv_level_1 = "/pinctrl/pcfg-pull-up-drv-level-1"; - pcfg_pull_down_drv_level_5 = "/pinctrl/pcfg-pull-down-drv-level-5"; - i2s0_sdo2 = "/pinctrl/i2s0/i2s0-sdo2"; - vop_out = "/vop@fdd90000/ports"; - vdd_0v75_s3 = "/spi@feb20000/rk806single@0/regulators/NLDO_REG1"; - hdmim1_rx = "/pinctrl/hdmi/hdmim1-rx"; - pcfg_pull_down_smt = "/pinctrl/pcfg-pull-down-smt"; - hdmim0_tx1_scl = "/pinctrl/hdmi/hdmim0-tx1-scl"; - hdmim0_tx1_sda = "/pinctrl/hdmi/hdmim0-tx1-sda"; - cpul_opp_info = "/otp@fecc0000/cpul-opp-info@3d"; - clk32k_in = "/pinctrl/clk32k/clk32k-in"; - usbdp_phy1 = "/phy@fed90000"; - mailbox0 = "/mailbox@fec60000"; - i2c6m0_xfer = "/pinctrl/i2c6/i2c6m0-xfer"; - pdm0m1_sdi2 = "/pinctrl/pdm0/pdm0m1-sdi2"; - sdmmc = "/mmc@fe2c0000"; - hclk_nvm = "/clocks/hclk_nvm@fd7c087c"; - hdmim0_tx1_hpd = "/pinctrl/hdmi/hdmim0-tx1-hpd"; - vp0_out_dp0 = "/vop@fdd90000/ports/port@0/endpoint@0"; - vddq_ddr_s0 = "/spi@feb20000/rk806single@0/regulators/DCDC_REG9"; - vcc_3v3_s3 = "/spi@feb20000/rk806single@0/regulators/DCDC_REG8"; - gmac0_ppstring = "/pinctrl/gmac0/gmac0-ppstring"; - i2c0 = "/i2c@fd880000"; - pdm1m1_clk = "/pinctrl/pdm1/pdm1m1-clk"; - pdm0m0_idle = "/pinctrl/pdm0/pdm0m0-idle"; - soc_thermal = "/thermal-zones/soc-thermal"; - cluster1_opp_table = "/cluster1-opp-table"; - i2s0_idle = "/pinctrl/i2s0/i2s0-idle"; - spi4m1_pins = "/pinctrl/spi4/spi4m1-pins"; - npu_opp_info = "/otp@fecc0000/npu-opp-info@55"; - pwm9m0_pins = "/pinctrl/pwm9/pwm9m0-pins"; - pwm6 = "/pwm@febd0020"; - spi1m0_pins = "/pinctrl/spi1/spi1m0-pins"; - hym8563 = "/i2c@fd880000/hym8563@51"; - i2s1m1_sclk = "/pinctrl/i2s1/i2s1m1-sclk"; - rk806_dvs2_gpio = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs2_gpio"; - hp_det = "/pinctrl/headphone/hp-det"; - hdmi_debug1 = "/pinctrl/hdmi/hdmi-debug1"; - vp1_out_dp1 = "/vop@fdd90000/ports/port@1/endpoint@3"; - qos_mcu_npu = "/qos@fdf72400"; - auddsm_pins = "/pinctrl/auddsm/auddsm-pins"; - i2s3_lrck = "/pinctrl/i2s3/i2s3-lrck"; - pcfg_pull_none_drv_level_2_smt = "/pinctrl/pcfg-pull-none-drv-level-2-smt"; - pwm15m2_pins = "/pinctrl/pwm15/pwm15m2-pins"; - pipe_phy1_grf = "/syscon@fd5c0000"; - pwm12m1_pins = "/pinctrl/pwm12/pwm12m1-pins"; - pwm11 = "/pwm@febe0030"; - rkisp_unite = "/rkisp-unite@fdcb0000"; - rkcif_mipi_lvds2_sditf = "/rkcif-mipi-lvds2-sditf"; - vp1_out_edp0 = "/vop@fdd90000/ports/port@1/endpoint@1"; - hclk_isp1_pre = "/clocks/hclk_isp1_pre@fd7c0868"; - rk806_dvs2_slp = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs2_slp"; - i2s7_8ch = "/i2s@fddf8000"; - uart5m1_rtsn = "/pinctrl/uart5/uart5m1-rtsn"; - mipidphy1_grf = "/syscon@fd5b5000"; - usbhost3_0 = "/usbhost3_0"; - jpege2 = "/jpege-core@fdba8000"; - pcfg_pull_none_drv_level_15 = "/pinctrl/pcfg-pull-none-drv-level-15"; - pcie3x2_intc = "/pcie@fe160000/legacy-interrupt-controller"; - vp2_out_dsi1 = "/vop@fdd90000/ports/port@2/endpoint@4"; - mipidphy0_in_ucam0 = "/csi2-dphy0/ports/port@0/endpoint@0"; - av1d = "/av1d@fdc70000"; - uart1m2_ctsn = "/pinctrl/uart1/uart1m2-ctsn"; - sdiom1_pins = "/pinctrl/sdio/sdiom1-pins"; - rockchip_suspend = "/rockchip-suspend"; - rk806_dvs2_pwrdn = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs2_pwrdn"; - pcfg_pull_none_drv_level_0 = "/pinctrl/pcfg-pull-none-drv-level-0"; - npu_thermal = "/thermal-zones/npu-thermal"; - i2c7m0_xfer = "/pinctrl/i2c7/i2c7m0-xfer"; - pdm1m1_sdi2 = "/pinctrl/pdm1/pdm1m1-sdi2"; - cpu_pins = "/pinctrl/cpu/cpu-pins"; - dsi0_in_vp2 = "/dsi@fde20000/ports/port@0/endpoint@0"; - bt_wake_gpio = "/pinctrl/wireless-bluetooth/bt-wake-gpio"; - uart5 = "/serial@feb80000"; - dwc3_0_role_switch = "/usbdrd3_0/usb@fc000000/port/endpoint@0"; - rkisp1_vir0 = "/rkisp1-vir0"; - fiq_debugger = "/fiq-debugger"; - usbdp_phy1_u3 = "/phy@fed90000/u3-port"; - spi0m0_cs1 = "/pinctrl/spi0/spi0m0-cs1"; - sdio = "/mmc@fe2d0000"; - rkcif_mipi_lvds_sditf_vir2 = "/rkcif-mipi-lvds-sditf-vir2"; - spdif1m2_tx = "/pinctrl/spdif1/spdif1m2-tx"; - qos_gpu_m3 = "/qos@fdf35600"; - pdm1m0_idle = "/pinctrl/pdm1/pdm1m0-idle"; - pcfg_pull_none_drv_level_6_smt = "/pinctrl/pcfg-pull-none-drv-level-6-smt"; - user_led = "/leds/user"; - rkcif_mipi_lvds5_sditf_vir1 = "/rkcif-mipi-lvds5-sditf-vir1"; - i2s2m1_sdi = "/pinctrl/i2s2/i2s2m1-sdi"; - uart8_xfer = "/pinctrl/uart8/uart8-xfer"; - u2phy0 = "/syscon@fd5d0000/usb2-phy@0"; - pclk_vo1_grf = "/clocks/pclk_vo1_grf@fd7c08ec"; - vdd_gpu_mem_s0 = "/spi@feb20000/rk806single@0/regulators/DCDC_REG1"; - spi2m0_pins = "/pinctrl/spi2/spi2m0-pins"; - qos_rga3_1 = "/qos@fdf36000"; - i2s2m1_sclk = "/pinctrl/i2s2/i2s2m1-sclk"; - pcfg_pull_up_drv_level_12 = "/pinctrl/pcfg-pull-up-drv-level-12"; - spdif_tx4 = "/spdif-tx@fdde8000"; - gmac1_mtl_rx_setup = "/ethernet@fe1c0000/rx-queues-config"; - rkispp1 = "/rkispp@fdcd8000"; - hdmim2_tx1_cec = "/pinctrl/hdmi/hdmim2-tx1-cec"; - u2phy1_otg = "/syscon@fd5d4000/usb2-phy@4000/otg-port"; - hdptxphy_hdmi_clk0 = "/hdmiphy@fed60000/clk-port"; - i2s1m0_sdi0 = "/pinctrl/i2s1/i2s1m0-sdi0"; - mipi4_csi2 = "/mipi4-csi2"; - mclkout_i2s0 = "/clocks/mclkout-i2s0@fd58c318"; - vcc5v0_host3 = "/vcc5v0-host3"; - rkcif_mipi_lvds5 = "/rkcif-mipi-lvds5"; - vdd_cpu_big0_s0 = "/i2c@fd880000/rk8602@42"; - dp1 = "/dp@fde60000"; - emmc_data_strobe = "/pinctrl/emmc/emmc-data-strobe"; - pwm13m1_pins = "/pinctrl/pwm13/pwm13m1-pins"; - vop_pins = "/pinctrl/vop/vop-pins"; - pcie20x1m1_pins = "/pinctrl/pcie20x1/pcie20x1m1-pins"; - fspim2_cs1 = "/pinctrl/fspi/fspim2-cs1"; - vcc_hub = "/vcc-hub-regulator"; - mcum0_pins = "/pinctrl/mcu/mcum0-pins"; - pwm10m0_pins = "/pinctrl/pwm10/pwm10m0-pins"; - uart9m2_rtsn = "/pinctrl/uart9/uart9m2-rtsn"; - mipidcphy0 = "/phy@feda0000"; - uart6m1_rtsn = "/pinctrl/uart6/uart6m1-rtsn"; - vcc3v3_pcie30 = "/vcc3v3-pcie30"; - pcfg_pull_down_drv_level_3 = "/pinctrl/pcfg-pull-down-drv-level-3"; - mipim1_camera0_clk = "/pinctrl/mipi/mipim1-camera0-clk"; - i2s0_sdo0 = "/pinctrl/i2s0/i2s0-sdo0"; - vop = "/vop@fdd90000"; - gmac0_ptp_refclk = "/pinctrl/gmac0/gmac0-ptp-refclk"; - usbdp_phy0_orientation_switch = "/phy@fed80000/port/endpoint@0"; - vepu = "/vepu@fdb50000"; - cif_clk = "/pinctrl/cif/cif-clk"; - pcie30_phy_grf = "/syscon@fd5b8000"; - isp1_mmu = "/iommu@fdcc7f00"; - pdm0m1_sdi0 = "/pinctrl/pdm0/pdm0m1-sdi0"; - rkvdec1_mmu = "/iommu@fdc48700"; - edp1 = "/edp@fded0000"; - cam0_cam1_switch = "/cam0-cam1-switch"; - gmac1_ppstrig = "/pinctrl/gmac1/gmac1-ppstrig"; - i2c8m0_xfer = "/pinctrl/i2c8/i2c8m0-xfer"; - dsi1_in_vp2 = "/dsi@fde30000/ports/port@0/endpoint@0"; - hdmim2_rx_hpdin = "/pinctrl/hdmi/hdmim2-rx-hpdin"; - i2s1m1_sdo3 = "/pinctrl/i2s1/i2s1m1-sdo3"; - pcfg_pull_down_drv_level_14 = "/pinctrl/pcfg-pull-down-drv-level-14"; - gmac0_rx_bus2 = "/pinctrl/gmac0/gmac0-rx-bus2"; - rkcif_mipi_lvds4_sditf_vir2 = "/rkcif-mipi-lvds4-sditf-vir2"; - center_thermal = "/thermal-zones/center-thermal"; - uart0_ctsn = "/pinctrl/uart0/uart0-ctsn"; - uart4_rtsn = "/pinctrl/uart4/uart4-rtsn"; - pwm4 = "/pwm@febd0000"; - vdd2_ddr_s3 = "/spi@feb20000/rk806single@0/regulators/DCDC_REG6"; - jtagm1_pins = "/pinctrl/jtag/jtagm1-pins"; - rkisp0_vir2 = "/rkisp0-vir2"; - i2c1m4_xfer = "/pinctrl/i2c1/i2c1m4-xfer"; - l2_cache_l2 = "/cpus/l2-cache-l2"; - pcfg_pull_none_drv_level_9 = "/pinctrl/pcfg-pull-none-drv-level-9"; - qos_vdpu = "/qos@fdf67200"; - vp2_out_hdmi1 = "/vop@fdd90000/ports/port@2/endpoint@7"; - spi3m0_pins = "/pinctrl/spi3/spi3m0-pins"; - pcfg_output_low_pull_none = "/pinctrl/pcfg-output-low-pull-none"; - spi0m2_cs0 = "/pinctrl/spi0/spi0m2-cs0"; - rkisp1 = "/rkisp@fdcc0000"; - usbdpphy1_grf = "/syscon@fd5cc000"; - mipim1_camera4_clk = "/pinctrl/mipi/mipim1-camera4-clk"; - mipim0_camera2_clk = "/pinctrl/mipi/mipim0-camera2-clk"; - csi2_dcphy1 = "/csi2-dcphy1"; - hdmim2_tx1_scl = "/pinctrl/hdmi/hdmim2-tx1-scl"; - hdmim2_tx1_sda = "/pinctrl/hdmi/hdmim2-tx1-sda"; - spi2m2_cs1 = "/pinctrl/spi2/spi2m2-cs1"; - chosen = "/chosen"; - soc_crit = "/thermal-zones/soc-thermal/trips/soc-crit"; - rk806_dvs1_rst = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs1_rst"; - mpp_srv = "/mpp-srv"; - hclk_rkvenc1_pre = "/clocks/hclk_rkvenc1_pre@fd7c08c0"; - dp0m2_pins = "/pinctrl/dp0/dp0m2-pins"; - debug = "/debug@fd104000"; - jpege0 = "/jpege-core@fdba0000"; - pcfg_pull_none_drv_level_13 = "/pinctrl/pcfg-pull-none-drv-level-13"; - pwm14m1_pins = "/pinctrl/pwm14/pwm14m1-pins"; - pwm11m0_pins = "/pinctrl/pwm11/pwm11m0-pins"; - vp2_out_dp0 = "/vop@fdd90000/ports/port@2/endpoint@0"; - qos_rkvenc0_m0ro = "/qos@fdf60000"; - its0 = "/interrupt-controller@fe600000/msi-controller@fe640000"; - cpu_b2 = "/cpus/cpu@600"; - uart7m1_rtsn = "/pinctrl/uart7/uart7m1-rtsn"; - usb_5v_ctrl = "/pinctrl/usb-typec/usb-5v-ctrl"; - tsadc_gpio_func = "/pinctrl/gpio-func/tsadc-gpio-func"; - spi1m1_cs0 = "/pinctrl/spi1/spi1m1-cs0"; - pcfg_pull_down = "/pinctrl/pcfg-pull-down"; - dmc_opp_info = "/otp@fecc0000/dmc-opp-info@5b"; - ddrphych1_pins = "/pinctrl/ddrphych1/ddrphych1-pins"; - dsi0_in = "/dsi@fde20000/ports/port@0"; - pdm1m1_sdi0 = "/pinctrl/pdm1/pdm1m1-sdi0"; - spi3m1_cs1 = "/pinctrl/spi3/spi3m1-cs1"; - bigcore0_grf = "/syscon@fd590000"; - cpub1_leakage = "/otp@fecc0000/cpub1-leakage@18"; - uart3 = "/serial@feb60000"; - aclk_hdcp1_pre = "/clocks/aclk_hdcp1_pre@fd7c08ec"; - pcfg_pull_up = "/pinctrl/pcfg-pull-up"; - rkcif_mipi_lvds3_sditf_vir3 = "/rkcif-mipi-lvds3-sditf-vir3"; - codec_leakage = "/otp@fecc0000/codec-leakage@29"; - pcfg_pull_up_drv_level_8 = "/pinctrl/pcfg-pull-up-drv-level-8"; - dmac1 = "/dma-controller@fea30000"; - pdm0m0_sdi2 = "/pinctrl/pdm0/pdm0m0-sdi2"; - i2s1m1_lrck = "/pinctrl/i2s1/i2s1m1-lrck"; - qos_gpu_m1 = "/qos@fdf35200"; - i2s0_sdi2 = "/pinctrl/i2s0/i2s0-sdi2"; - spi2m0_cs0 = "/pinctrl/spi2/spi2m0-cs0"; - gpu_opp_info = "/otp@fecc0000/gpu-opp-info@4f"; - csi2_dphy1_hw = "/csi2-dphy1-hw@fedc8000"; - pcfg_pull_up_drv_level_10 = "/pinctrl/pcfg-pull-up-drv-level-10"; - spdif_tx2 = "/spdif-tx@fddb0000"; - npu_opp_table = "/npu-opp-table"; - spi4m0_cs1 = "/pinctrl/spi4/spi4m0-cs1"; - vo0_grf = "/syscon@fd5a6000"; - i2c2m4_xfer = "/pinctrl/i2c2/i2c2m4-xfer"; - qos_usb2host_0 = "/qos@fdf3e400"; - spi4m0_pins = "/pinctrl/spi4/spi4m0-pins"; - gmac1_mtl_tx_setup = "/ethernet@fe1c0000/tx-queues-config"; - rkcif_mipi_lvds3 = "/rkcif-mipi-lvds3"; - i2s1m0_sclk = "/pinctrl/i2s1/i2s1m0-sclk"; - i2c7 = "/i2c@fec90000"; - mipi2_csi2_output = "/mipi2-csi2/ports/port@1/endpoint@0"; - mipi_te0 = "/pinctrl/mipi/mipi-te0"; - sata_reset = "/pinctrl/sata/sata-reset"; - dp1m2_pins = "/pinctrl/dp1/dp1m2-pins"; - pwm15m1_pins = "/pinctrl/pwm15/pwm15m1-pins"; - pcfg_pull_down_drv_level_1 = "/pinctrl/pcfg-pull-down-drv-level-1"; - pwm12m0_pins = "/pinctrl/pwm12/pwm12m0-pins"; - qos_vicap_m1 = "/qos@fdf40800"; - sdmmc_cmd = "/pinctrl/sdmmc/sdmmc-cmd"; - uart8m1_rtsn = "/pinctrl/uart8/uart8m1-rtsn"; - usb2phy2_grf = "/syscon@fd5d8000"; - rkvdec1_sram = "/sram@ff001000/rkvdec-sram@78000"; - uart5m0_rtsn = "/pinctrl/uart5/uart5m0-rtsn"; - jpege3_mmu = "/iommu@fdbac800"; - vcc_2v0_pldo_s3 = "/spi@feb20000/rk806single@0/regulators/DCDC_REG7"; - i2s3_mclk = "/pinctrl/i2s3/i2s3-mclk"; - mclkout_i2s1m1 = "/clocks/mclkout-i2s1@fd58a000"; - spdif_tx1_dc = "/spdif-tx1-dc"; - uart0m2_xfer = "/pinctrl/uart0/uart0m2-xfer"; - wifi_host_wake_irq = "/pinctrl/wireless-wlan/wifi-host-wake-irq"; - i2s1m1_sdo1 = "/pinctrl/i2s1/i2s1m1-sdo1"; - uart1m1_ctsn = "/pinctrl/uart1/uart1m1-ctsn"; - pcfg_pull_down_drv_level_12 = "/pinctrl/pcfg-pull-down-drv-level-12"; - sdiom0_pins = "/pinctrl/sdio/sdiom0-pins"; - pcfg_pull_up_smt = "/pinctrl/pcfg-pull-up-smt"; - php_grf = "/syscon@fd5b0000"; - pwm2 = "/pwm@fd8b0020"; - pdm1m0_sdi2 = "/pinctrl/pdm1/pdm1m0-sdi2"; - i2s2m1_lrck = "/pinctrl/i2s2/i2s2m1-lrck"; - gmac0_stmmac_axi_setup = "/ethernet@fe1b0000/stmmac-axi-config"; - mipi1_csi2_hw = "/mipi1-csi2-hw@fdd20000"; - sata1 = "/sata@fe220000"; - rkispp1_vir0 = "/rkispp1-vir0"; - dp0_in_vp1 = "/dp@fde50000/ports/port@0/endpoint@1"; - CPU_SLEEP = "/cpus/idle-states/cpu-sleep"; - rkisp0_vir0 = "/rkisp0-vir0"; - spi3m3_cs0 = "/pinctrl/spi3/spi3m3-cs0"; - specification_serial_number = "/otp@fecc0000/specification-serial-number@6"; - l2_cache_l0 = "/cpus/l2-cache-l0"; - pcfg_pull_none_drv_level_7 = "/pinctrl/pcfg-pull-none-drv-level-7"; - qos_hdcp0 = "/qos@fdf80000"; - qos_npu0_mro = "/qos@fdf72200"; - usbdrd_dwc3_1 = "/usbdrd3_1/usb@fc400000"; - rkvenc1 = "/rkvenc-core@fdbe0000"; - display_subsystem = "/display-subsystem"; - i2c3m4_xfer = "/pinctrl/i2c3/i2c3m4-xfer"; - pcie30x2m3_pins = "/pinctrl/pcie30x2/pcie30x2m3-pins"; - qos_npu2 = "/qos@fdf71000"; - i2s0_8ch = "/i2s@fe470000"; - i2s2m0_sclk = "/pinctrl/i2s2/i2s2m0-sclk"; - pmu = "/power-management@fd8d8000"; - gmac1_tx_bus2 = "/pinctrl/gmac1/gmac1-tx-bus2"; - pcfg_pull_none_drv_level_11 = "/pinctrl/pcfg-pull-none-drv-level-11"; - route_hdmi1 = "/display-subsystem/route/route-hdmi1"; - csi2_dphy5 = "/csi2-dphy5"; - spi4m2_cs0 = "/pinctrl/spi4/spi4m2-cs0"; - mipi3_csi2 = "/mipi3-csi2"; - pmu0_grf = "/syscon@fd588000"; - fan = "/pwm-fan"; - cpu_b0 = "/cpus/cpu@400"; - vccio_sd_s0 = "/spi@feb20000/rk806single@0/regulators/PLDO_REG5"; - qos_rkvenc1_m2wo = "/qos@fdf61400"; - gpio4 = "/pinctrl/gpio@fec50000"; - hdmim0_rx_cec = "/pinctrl/hdmi/hdmim0-rx-cec"; - pwm3m3_pins = "/pinctrl/pwm3/pwm3m3-pins"; - aclk_vdpu_low_pre = "/clocks/aclk_vdpu_low_pre@fd7c08b0"; - mmu600_php = "/iommu@fcb00000"; - cif_mipi2_in1 = "/rkcif-mipi-lvds2/port/endpoint"; - pwm0m2_pins = "/pinctrl/pwm0/pwm0m2-pins"; - pwm13m0_pins = "/pinctrl/pwm13/pwm13m0-pins"; - pcie20x1m0_pins = "/pinctrl/pcie20x1/pcie20x1m0-pins"; - bt656_pins = "/pinctrl/bt656/bt656-pins"; - hdmi1_sound = "/hdmi1-sound"; - uart9m1_rtsn = "/pinctrl/uart9/uart9m1-rtsn"; - uart6m0_rtsn = "/pinctrl/uart6/uart6m0-rtsn"; - pcie2x1l2_intc = "/pcie@fe190000/legacy-interrupt-controller"; - mod_sleep = "/mod-sleep-regulator"; - gpu_thermal = "/thermal-zones/gpu-thermal"; - hdmim1_tx0_cec = "/pinctrl/hdmi/hdmim1-tx0-cec"; - uart1 = "/serial@feb40000"; - rkcif_mipi_lvds3_sditf_vir1 = "/rkcif-mipi-lvds3-sditf-vir1"; - pcfg_pull_up_drv_level_6 = "/pinctrl/pcfg-pull-up-drv-level-6"; - qos_rkvdec0 = "/qos@fdf62000"; - vp2_out_edp0 = "/vop@fdd90000/ports/port@2/endpoint@1"; - uart1m2_xfer = "/pinctrl/uart1/uart1m2-xfer"; - pdm0m0_sdi0 = "/pinctrl/pdm0/pdm0m0-sdi0"; - fspim2_pins = "/pinctrl/fspi/fspim2-pins"; - i2s0_sdi0 = "/pinctrl/i2s0/i2s0-sdi0"; - gpu_pins = "/pinctrl/gpu/gpu-pins"; - imx415 = "/i2c@fec80000/imx415@37"; - vp3_out_dsi1 = "/vop@fdd90000/ports/port@3/endpoint@1"; - i2s4_8ch = "/i2s@fddc0000"; - ramoops = "/reserved-memory/ramoops@110000"; - dp0_sound = "/dp0-sound"; - spdif_tx0 = "/spdif-tx@fe4e0000"; - dp1_in_vp1 = "/dp@fde60000/ports/port@0/endpoint@1"; - i2s1m0_sdo3 = "/pinctrl/i2s1/i2s1m0-sdo3"; - mipi2_csi2_input1 = "/mipi2-csi2/ports/port@0/endpoint@0"; - vcc_1v8_s0 = "/spi@feb20000/rk806single@0/regulators/PLDO_REG2"; - vp1_out_hdmi0 = "/vop@fdd90000/ports/port@1/endpoint@2"; - vcc12v_dcin = "/vcc12v-dcin"; - vp0_out_edp1 = "/vop@fdd90000/ports/port@0/endpoint@4"; - uart3_rtsn = "/pinctrl/uart3/uart3-rtsn"; - gmac1_rgmii_clk = "/pinctrl/gmac1/gmac1-rgmii-clk"; - package_serial_number_high = "/otp@fecc0000/package-serial-number-high@5"; - hdcp0 = "/hdcp@fde40000"; - qos_fisheye1 = "/qos@fdf40200"; - rkcif_mipi_lvds1 = "/rkcif-mipi-lvds1"; - i2c5 = "/i2c@fead0000"; - jtagm0_pins = "/pinctrl/jtag/jtagm0-pins"; - i2c4m4_xfer = "/pinctrl/i2c4/i2c4m4-xfer"; - spdif_tx1_sound = "/spdif-tx1-sound"; - qos_jpeg_enc2 = "/qos@fdf66800"; - hdmi0_in = "/hdmi@fde80000/ports/port@0"; - i2s1m1_sdi3 = "/pinctrl/i2s1/i2s1m1-sdi3"; - i2c1m3_xfer = "/pinctrl/i2c1/i2c1m3-xfer"; - hdptxphy_hdmi0 = "/hdmiphy@fed60000"; - sdmmc_pwren = "/pinctrl/sdmmc/sdmmc-pwren"; - usbdp_phy1_dp = "/phy@fed90000/dp-port"; - npu_leakage = "/otp@fecc0000/npu-leakage@28"; - aclk_jpeg_decoder_pre = "/clocks/aclk_jpeg_decoder_pre@fd7c08b0"; - pdm0 = "/pdm@fe4b0000"; - gmac1_miim = "/pinctrl/gmac1/gmac1-miim"; - pcfg_output_high_pull_down = "/pinctrl/pcfg-output-high-pull-down"; - hdmi_debug6 = "/pinctrl/hdmi/hdmi-debug6"; - pcie3x4 = "/pcie@fe150000"; - can0m1_pins = "/pinctrl/can0/can0m1-pins"; - mclkin_i2s2 = "/clocks/mclkin-i2s2"; - jpege_ccu = "/jpege-ccu"; - pcfg_pull_none_drv_level_3_smt = "/pinctrl/pcfg-pull-none-drv-level-3-smt"; - hdmim1_rx_cec = "/pinctrl/hdmi/hdmim1-rx-cec"; - pipe_phy2_grf = "/syscon@fd5c4000"; - dp0m1_pins = "/pinctrl/dp0/dp0m1-pins"; - rkvdec1 = "/rkvdec-core@fdc48000"; - pwm1m2_pins = "/pinctrl/pwm1/pwm1m2-pins"; - pwm14m0_pins = "/pinctrl/pwm14/pwm14m0-pins"; - little_core_thermal = "/thermal-zones/littlecore-thermal"; - rk806_dvs3_slp = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs3_slp"; - usb_5v = "/usb-5v"; - i2s8_8ch = "/i2s@fddc8000"; - drm_cubic_lut = "/reserved-memory/drm-cubic-lut@00000000"; - rkcif_mipi_lvds2_sditf_vir2 = "/rkcif-mipi-lvds2-sditf-vir2"; - hdptxphy0 = "/phy@fed60000"; - pcie30x1_0_button_rstn = "/pinctrl/pcie30x1/pcie30x1-0-button-rstn"; - u2phy3_host = "/syscon@fd5dc000/usb2-phy@c000/host-port"; - route_dp0 = "/display-subsystem/route/route-dp0"; - hdmim0_rx_scl = "/pinctrl/hdmi/hdmim0-rx-scl"; - hdmim0_rx_sda = "/pinctrl/hdmi/hdmim0-rx-sda"; - uart7m0_rtsn = "/pinctrl/uart7/uart7m0-rtsn"; - pcfg_pull_down_drv_level_10 = "/pinctrl/pcfg-pull-down-drv-level-10"; - usbdrd3_0 = "/usbdrd3_0"; - ddrphych0_pins = "/pinctrl/ddrphych0/ddrphych0-pins"; - bt_irq_gpio = "/pinctrl/wireless-bluetooth/bt-irq-gpio"; - pwm0 = "/pwm@fd8b0000"; - uart2m2_xfer = "/pinctrl/uart2/uart2m2-xfer"; - pdm1m0_sdi0 = "/pinctrl/pdm1/pdm1m0-sdi0"; - hdmim1_tx0_scl = "/pinctrl/hdmi/hdmim1-tx0-scl"; - hdmim1_tx0_sda = "/pinctrl/hdmi/hdmim1-tx0-sda"; - can1 = "/can@fea60000"; - rkvtunnel = "/rkvtunnel"; - pcfg_pull_none_drv_level_5 = "/pinctrl/pcfg-pull-none-drv-level-5"; - rkcif_mipi_lvds3_sditf = "/rkcif-mipi-lvds3-sditf"; - combphy2_psu = "/phy@fee20000"; - vp3 = "/vop@fdd90000/ports/port@3"; - rk806_dvs2_dvs = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs2_dvs"; - mmu600_pcie = "/iommu@fc900000"; - hdmim1_tx0_hpd = "/pinctrl/hdmi/hdmim1-tx0-hpd"; - i2s1m0_lrck = "/pinctrl/i2s1/i2s1m0-lrck"; - cpu_l3 = "/cpus/cpu@300"; - spi0m1_cs1 = "/pinctrl/spi0/spi0m1-cs1"; - vp0_out_hdmi1 = "/vop@fdd90000/ports/port@0/endpoint@5"; - spdif_rx1 = "/spdif-rx@fde10000"; - gmac0_clkinout = "/pinctrl/gmac0/gmac0-clkinout"; - rkcif_dvp = "/rkcif-dvp"; - i2c5m4_xfer = "/pinctrl/i2c5/i2c5m4-xfer"; - wireless_wlan = "/wireless-wlan"; - rkcif_mipi_lvds = "/rkcif-mipi-lvds"; - avdd_0v75_s0 = "/spi@feb20000/rk806single@0/regulators/NLDO_REG3"; - i2c2m3_xfer = "/pinctrl/i2c2/i2c2m3-xfer"; - pcie30x4m3_pins = "/pinctrl/pcie30x4/pcie30x4m3-pins"; - hclk_rkvdec0_pre = "/clocks/hclk_rkvdec0_pre@fd7c08a0"; - route_dsi0 = "/display-subsystem/route/route-dsi0"; - rk806_dvs3_pwrdn = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs3_pwrdn"; - csi2_dphy3 = "/csi2-dphy3"; - pcie30x1m2_pins = "/pinctrl/pcie30x1/pcie30x1m2-pins"; - spi4 = "/spi@fecb0000"; - litcore_grf = "/syscon@fd594000"; - isp0_vir2 = "/rkisp0-vir2/port/endpoint@0"; - i2s1m1_mclk = "/pinctrl/i2s1/i2s1m1-mclk"; - sys_grf = "/syscon@fd58c000"; - edp0_in_vp1 = "/edp@fdec0000/ports/port@0/endpoint@1"; - mdio0 = "/ethernet@fe1b0000/mdio"; - rkisp_unite_mmu = "/rkisp-unite-mmu@fdcb7f00"; - gpio2 = "/pinctrl/gpio@fec30000"; - spi1m0_cs1 = "/pinctrl/spi1/spi1m0-cs1"; - aclk_av1_pre = "/clocks/aclk_av1_pre@fd7c0910"; - can1m1_pins = "/pinctrl/can1/can1m1-pins"; - rkcif_mipi_lvds1_sditf_vir3 = "/rkcif-mipi-lvds1-sditf-vir3"; - hdmim2_rx_cec = "/pinctrl/hdmi/hdmim2-rx-cec"; - mipi3_csi2_hw = "/mipi3-csi2-hw@fdd40000"; - dp1m1_pins = "/pinctrl/dp1/dp1m1-pins"; - pwm2m2_pins = "/pinctrl/pwm2/pwm2m2-pins"; - pwm15m0_pins = "/pinctrl/pwm15/pwm15m0-pins"; - hclk_vo0 = "/clocks/hclk_vo0@fd7c08dc"; - bigcore0_thermal = "/thermal-zones/bigcore0-thermal"; - hdmim1_rx_scl = "/pinctrl/hdmi/hdmim1-rx-scl"; - hdmim1_rx_sda = "/pinctrl/hdmi/hdmim1-rx-sda"; - uart8m0_rtsn = "/pinctrl/uart8/uart8m0-rtsn"; - pcfg_pull_up_drv_level_4 = "/pinctrl/pcfg-pull-up-drv-level-4"; - mipim1_camera1_clk = "/pinctrl/mipi/mipim1-camera1-clk"; - rkvdec0_sram = "/sram@ff001000/rkvdec-sram@0"; - pcfg_pull_down_drv_level_8 = "/pinctrl/pcfg-pull-down-drv-level-8"; - gmac_uio1 = "/uio@fe1c0000"; - usbc0_orien_sw = "/i2c@fec80000/fusb302@22/connector/ports/port@0/endpoint"; - jpegd = "/jpegd@fdb90000"; - uart3m2_xfer = "/pinctrl/uart3/uart3m2-xfer"; - minidump_smem = "/reserved-memory/minidump-smem@1f0000"; - i2s0_sclk = "/pinctrl/i2s0/i2s0-sclk"; - uart0m1_xfer = "/pinctrl/uart0/uart0m1-xfer"; - rga3_core1 = "/rga@fdb70000"; - i2s1m0_sdo1 = "/pinctrl/i2s1/i2s1m0-sdo1"; - uart1m0_ctsn = "/pinctrl/uart1/uart1m0-ctsn"; - vcc5v0_usb = "/vcc5v0-usb"; - minidump = "/minidump"; - }; - - rkvdec-ccu@fdc30000 { - power-domains = <0x60 0x0e>; - rockchip,ccu-mode = <0x01>; - clock-names = "aclk_ccu"; - reg-names = "ccu"; - assigned-clocks = <0x02 0x18e>; - assigned-clock-rates = <0x23c34600>; - resets = <0x02 0x282>; - clocks = <0x02 0x18e>; - compatible = "rockchip,rkv-decoder-v2-ccu"; - status = "okay"; - rockchip,skip-pmu-idle-request; - reg = <0x00 0xfdc30000 0x00 0x100>; - phandle = <0xca>; - reset-names = "video_ccu"; - }; - - qos@fdf60000 { - compatible = "syscon"; - reg = <0x00 0xfdf60000 0x00 0x20>; - phandle = <0x8d>; - }; - - iommu@fdb50800 { - power-domains = <0x60 0x15>; - clock-names = "aclk\0iface"; - interrupts = <0x00 0x76 0x04>; - clocks = <0x02 0x1c0 0x02 0x1c1>; - #iommu-cells = <0x00>; - compatible = "rockchip,iommu-v2"; - status = "okay"; - interrupt-names = "irq_vdpu_mmu"; - reg = <0x00 0xfdb50800 0x00 0x40>; - phandle = <0xb7>; - }; - - rga@fdb60000 { - power-domains = <0x60 0x16>; - iommus = <0xb9>; - clock-names = "aclk_rga3_0\0hclk_rga3_0\0clk_rga3_0"; - interrupts = <0x00 0x72 0x04>; - clocks = <0x02 0x1ba 0x02 0x1b9 0x02 0x1bb>; - compatible = "rockchip,rga3_core0"; - status = "okay"; - interrupt-names = "rga3_core0_irq"; - reg = <0x00 0xfdb60000 0x00 0x1000>; - phandle = <0x269>; - }; - - qos@fdf67200 { - compatible = "syscon"; - reg = <0x00 0xfdf67200 0x00 0x20>; - phandle = <0x28b>; - }; - - vepu@fdb50000 { - power-domains = <0x60 0x15>; - iommus = <0xb7>; - clock-names = "aclk_vcodec\0hclk_vcodec"; - assigned-clocks = <0x02 0x1c0>; - rockchip,normal-rates = <0x2367b880 0x00>; - assigned-clock-rates = <0x2367b880>; - resets = <0x02 0x2c8 0x02 0x2c9>; - interrupts = <0x00 0x78 0x04>; - clocks = <0x02 0x1c0 0x02 0x1c1>; - rockchip,srv = <0xb8>; - rockchip,taskqueue-node = <0x00>; - rockchip,disable-auto-freq; - compatible = "rockchip,vpu-encoder-v2"; - rockchip,resetgroup-node = <0x00>; - status = "disabled"; - interrupt-names = "irq_vepu"; - rockchip,skip-pmu-idle-request; - reg = <0x00 0xfdb50000 0x00 0x400>; - phandle = <0x266>; - reset-names = "shared_video_a\0shared_video_h"; - }; - - mipi3-csi2 { - rockchip,hw = <0x47 0x48 0x49 0x4a 0x4b 0x4c>; - compatible = "rockchip,rk3588-mipi-csi2"; - status = "disabled"; - phandle = <0x227>; - }; - - hdmi0-sound { - rockchip,jack-det; - rockchip,cpu = <0x1d3>; - rockchip,codec = <0x1d4>; - rockchip,card-name = "rockchip-hdmi0"; - compatible = "rockchip,hdmi"; - status = "okay"; - phandle = <0x49b>; - rockchip,mclk-fs = <0x80>; - }; - - reserved-memory { - #address-cells = <0x02>; - #size-cells = <0x02>; - ranges; - - minidump-smem@1f0000 { - status = "disabled"; - reg = <0x00 0x1f0000 0x00 0x100>; - phandle = <0x1cf>; - no-map; - }; - - minidump-mem@c000000 { - status = "disabled"; - reg = <0x00 0xc000000 0x00 0x2000000>; - phandle = <0x1d0>; - no-map; - }; - - cma { - linux,cma-default; - compatible = "shared-dma-pool"; - size = <0x00 0x800000>; - reg = <0x00 0x10000000 0x00 0x10000000>; - reusable; - }; - - drm-logo@00000000 { - compatible = "rockchip,drm-logo"; - reg = <0x00 0xedf00000 0x00 0x2e0000>; - phandle = <0x37>; - }; - - ramoops@110000 { - boot-log-count = <0x01>; - record-size = <0x14000>; - pmsg-size = <0x30000>; - compatible = "ramoops"; - console-size = <0x80000>; - reg = <0x00 0x110000 0x00 0xe0000>; - phandle = <0x493>; - boot-log-size = <0x8000>; - ftrace-size = <0x00>; - }; - - drm-cubic-lut@00000000 { - compatible = "rockchip,drm-cubic-lut"; - reg = <0x00 0x00 0x00 0x00>; - phandle = <0x492>; - }; - }; - - pcie@fe160000 { - power-domains = <0x60 0x22>; - vpcie3v3-supply = <0x1ba>; - #address-cells = <0x03>; - rockchip,pipe-grf = <0x76>; - phy-names = "pcie-phy"; - bus-range = <0x10 0x1f>; - clock-names = "aclk_mst\0aclk_slv\0aclk_dbi\0pclk\0aux\0pipe"; - reg-names = "pcie-apb\0pcie-dbi"; - num-ob-windows = <0x10>; - resets = <0x02 0x20e 0x02 0x21d>; - interrupts = <0x00 0x102 0x04 0x00 0x101 0x04 0x00 0x100 0x04 0x00 0xff 0x04 0x00 0xfe 0x04>; - clocks = <0x02 0x14f 0x02 0x154 0x02 0x14a 0x02 0x159 0x02 0x15f 0x02 0x184>; - interrupt-map = <0x00 0x00 0x00 0x01 0x1b9 0x00 0x00 0x00 0x00 0x02 0x1b9 0x01 0x00 0x00 0x00 0x03 0x1b9 0x02 0x00 0x00 0x00 0x04 0x1b9 0x03>; - #size-cells = <0x02>; - max-link-speed = <0x03>; - device_type = "pci"; - interrupt-map-mask = <0x00 0x00 0x00 0x07>; - reset-gpios = <0x10d 0x08 0x00>; - num-lanes = <0x02>; - compatible = "rockchip,rk3588-pcie\0snps,dw-pcie"; - ranges = <0x800 0x00 0xf1000000 0x00 0xf1000000 0x00 0x100000 0x81000000 0x00 0xf1100000 0x00 0xf1100000 0x00 0x100000 0x82000000 0x00 0xf1200000 0x00 0xf1200000 0x00 0xe00000 0xc3000000 0x09 0x40000000 0x09 0x40000000 0x00 0x40000000>; - msi-map = <0x1000 0x1b6 0x1000 0x1000>; - #interrupt-cells = <0x01>; - status = "disabled"; - interrupt-names = "sys\0pmc\0msg\0legacy\0err"; - phys = <0x1b7>; - num-viewport = <0x08>; - reg = <0x00 0xfe160000 0x00 0x10000 0x0a 0x40400000 0x00 0x400000>; - linux,pci-domain = <0x01>; - phandle = <0x486>; - reset-names = "pcie\0periph"; - num-ib-windows = <0x10>; - - legacy-interrupt-controller { - #address-cells = <0x00>; - interrupts = <0x00 0xff 0x01>; - interrupt-parent = <0x01>; - #interrupt-cells = <0x01>; - phandle = <0x1b9>; - interrupt-controller; - }; - }; - - spdif-tx@fddb8000 { - power-domains = <0x60 0x19>; - clock-names = "mclk\0hclk"; - assigned-clocks = <0x02 0x20b>; - assigned-clock-parents = <0x02 0x05>; - interrupts = <0x00 0xc6 0x04>; - clocks = <0x02 0x20f 0x02 0x20a>; - dma-names = "tx"; - #sound-dai-cells = <0x00>; - compatible = "rockchip,rk3588-spdif\0rockchip,rk3568-spdif"; - status = "disabled"; - reg = <0x00 0xfddb8000 0x00 0x1000>; - phandle = <0x1e2>; - dmas = <0xf1 0x16>; - }; - - pvtm@fdb30000 { - #address-cells = <0x01>; - #size-cells = <0x00>; - compatible = "rockchip,rk3588-gpu-pvtm"; - reg = <0x00 0xfdb30000 0x00 0x100>; - - pvtm@4 { - clock-names = "clk"; - resets = <0x02 0x430 0x02 0x42f>; - clocks = <0x02 0x118>; - reg = <0x04>; - reset-names = "rts\0rst-p"; - }; - }; - - spdif-tx1-dc { - #sound-dai-cells = <0x00>; - compatible = "linux,spdif-dit"; - status = "disabled"; - phandle = <0x1d8>; - }; - - csi2-dphy0 { - rockchip,hw = <0x2d 0x2e>; - phy-names = "dcphy0\0dcphy1"; - compatible = "rockchip,rk3588-csi2-dphy"; - status = "okay"; - phys = <0x2f 0x30>; - firefly-compatible; - phandle = <0x20f>; - - ports { - #address-cells = <0x01>; - #size-cells = <0x00>; - - port@0 { - #address-cells = <0x01>; - #size-cells = <0x00>; - reg = <0x00>; - - endpoint@1 { - data-lanes = <0x01 0x02 0x03 0x04>; - remote-endpoint = <0x32>; - reg = <0x01>; - phandle = <0x184>; - }; - - endpoint@0 { - data-lanes = <0x01 0x02 0x03 0x04>; - remote-endpoint = <0x31>; - reg = <0x00>; - phandle = <0x183>; - }; - }; - - port@1 { - #address-cells = <0x01>; - #size-cells = <0x00>; - reg = <0x01>; - - endpoint@0 { - remote-endpoint = <0x33>; - reg = <0x00>; - phandle = <0x4d>; - }; - }; - }; - }; - - rkisp-unite@fdcb0000 { - power-domains = <0x60 0x1c>; - iommus = <0xcf>; - clock-names = "aclk_isp0\0hclk_isp0\0clk_isp_core0\0clk_isp_core_marvin0\0clk_isp_core_vicap0\0aclk_isp1\0hclk_isp1\0clk_isp_core1\0clk_isp_core_marvin1\0clk_isp_core_vicap1"; - interrupts = <0x00 0x87 0x04 0x00 0x89 0x04 0x00 0x8a 0x04>; - clocks = <0x02 0x1de 0x02 0x1df 0x02 0x1db 0x02 0x1dc 0x02 0x1dd 0x02 0x120 0x02 0x121 0x02 0x11d 0x02 0x11e 0x02 0x11f>; - compatible = "rockchip,rk3588-rkisp-unite"; - status = "disabled"; - interrupt-names = "isp_irq\0mi_irq\0mipi_irq"; - reg = <0x00 0xfdcb0000 0x00 0x10000 0x00 0xfdcc0000 0x00 0x10000>; - phandle = <0x277>; - }; - - sata@fe230000 { - phy-names = "sata-phy"; - clock-names = "sata\0pmalive\0rxoob\0ref\0asic"; - interrupts = <0x00 0x113 0x04>; - clocks = <0x02 0x173 0x02 0x170 0x02 0x176 0x02 0x165 0x02 0x180>; - compatible = "rockchip,rk-ahci\0snps,dwc-ahci"; - status = "disabled"; - interrupt-names = "hostc"; - phys = <0x70 0x01>; - reg = <0x00 0xfe230000 0x00 0x1000>; - phandle = <0x291>; - ports-implemented = <0x01>; - }; - - syscon@fd5a0000 { - compatible = "rockchip,rk3588-gpu-grf\0syscon"; - reg = <0x00 0xfd5a0000 0x00 0x100>; - phandle = <0x65>; - }; - - bt-sound { - simple-audio-card,name = "rockchip,bt"; - simple-audio-card,format = "dsp_a"; - simple-audio-card,bitclock-inversion = <0x00>; - compatible = "simple-audio-card"; - status = "disabled"; - phandle = <0x49a>; - simple-audio-card,mclk-fs = <0x100>; - - simple-audio-card,cpu { - sound-dai = <0x1d1>; - }; - - simple-audio-card,codec { - sound-dai = <0x1d2 0x01>; - }; - }; - - iommu@fdb90480 { - power-domains = <0x60 0x15>; - clock-names = "aclk\0iface"; - interrupts = <0x00 0x82 0x04>; - clocks = <0x02 0x1b4 0x02 0x1b5>; - #iommu-cells = <0x00>; - compatible = "rockchip,iommu-v2"; - status = "okay"; - interrupt-names = "irq_jpegd_mmu"; - reg = <0x00 0xfdb90480 0x00 0x40>; - phandle = <0xbb>; - }; - - hdcp@fde70000 { - power-domains = <0x60 0x1a>; - clock-names = "aclk\0pclk\0hclk\0hclk_key\0aclk_trng\0pclk_trng"; - resets = <0x02 0x3c8 0x02 0x3c6 0x02 0x3c5 0x02 0x3c4 0x02 0x3ca>; - interrupts = <0x00 0xa0 0x04>; - clocks = <0x02 0x217 0x02 0x219 0x02 0x218 0x02 0x216 0x02 0x228 0x02 0x229>; - compatible = "rockchip,rk3588-hdcp"; - status = "disabled"; - reg = <0x00 0xfde70000 0x00 0x80>; - phandle = <0x287>; - reset-names = "hdcp\0h_hdcp\0a_hdcp\0hdcp_key\0trng"; - rockchip,vo-grf = <0xd8>; - }; - - spdif-tx@fe4f0000 { - power-domains = <0x60 0x26>; - pinctrl-names = "default"; - pinctrl-0 = <0x143>; - clock-names = "mclk\0hclk"; - assigned-clocks = <0x02 0x45>; - assigned-clock-parents = <0x02 0x05>; - interrupts = <0x00 0xc2 0x04>; - clocks = <0x02 0x47 0x02 0x44>; - dma-names = "tx"; - #sound-dai-cells = <0x00>; - compatible = "rockchip,rk3588-spdif\0rockchip,rk3568-spdif"; - status = "disabled"; - reg = <0x00 0xfe4f0000 0x00 0x1000>; - phandle = <0x1d7>; - dmas = <0xf1 0x05>; - }; - - rkcif-mipi-lvds-sditf-vir2 { - compatible = "rockchip,rkcif-sditf"; - status = "disabled"; - rockchip,cif = <0x52>; - phandle = <0x22d>; - }; - - es8388-sound { - pinctrl-names = "default"; - rockchip,cpu = <0x1da>; - pinctrl-0 = <0x1dc>; - rockchip,codec = <0x1db>; - hp-det-gpio = <0x79 0x13 0x00>; - rockchip,card-name = "rockchip-es8388"; - rockchip,format = "i2s"; - rockchip,audio-routing = "Headphone\0LOUT1\0Headphone\0ROUT1\0Speaker\0LOUT2\0Speaker\0ROUT2\0Headphone\0Headphone Power\0Headphone\0Headphone Power\0LINPUT2\0Main Mic\0RINPUT2\0Main Mic\0LINPUT1\0Headset Mic\0RINPUT1\0Headset Mic"; - compatible = "firefly,multicodecs-card"; - linein-type = <0x01>; - status = "okay"; - phandle = <0x49f>; - hp-con-gpio = <0x182 0x0b 0x00>; - firefly,not-use-dapm; - rockchip,mclk-fs = <0x180>; - }; - - spi@feb30000 { - pinctrl-names = "default"; - #address-cells = <0x01>; - num-cs = <0x02>; - pinctrl-0 = <0x15d 0x15e 0x15f>; - clock-names = "spiclk\0apb_pclk"; - interrupts = <0x00 0x149 0x04>; - clocks = <0x02 0xa6 0x02 0xa1>; - #size-cells = <0x00>; - dma-names = "tx\0rx"; - compatible = "rockchip,rk3066-spi"; - status = "disabled"; - reg = <0x00 0xfeb30000 0x00 0x1000>; - phandle = <0x2c8>; - dmas = <0xf1 0x11 0xf1 0x12>; - }; - - phy@fee80000 { - rockchip,pipe-grf = <0x76>; - clock-names = "pclk"; - rockchip,pcie30-phymode = <0x01>; - resets = <0x02 0x2000a>; - clocks = <0x02 0x188>; - #phy-cells = <0x00>; - compatible = "rockchip,rk3588-pcie3-phy"; - status = "okay"; - reg = <0x00 0xfee80000 0x00 0x20000>; - phandle = <0x1b7>; - reset-names = "phy"; - rockchip,phy-grf = <0x1cc>; - }; - - vcc12v-dcin { - regulator-max-microvolt = <0xb71b00>; - regulator-boot-on; - regulator-always-on; - regulator-min-microvolt = <0xb71b00>; - regulator-name = "vcc12v_dcin"; - compatible = "regulator-fixed"; - phandle = <0x1cd>; - }; - - qos@fdf61200 { - compatible = "syscon"; - reg = <0x00 0xfdf61200 0x00 0x20>; - phandle = <0x91>; - }; - - i2s@fde00000 { - power-domains = <0x60 0x1a>; - clock-names = "mclk_tx\0mclk_rx\0hclk"; - assigned-clocks = <0x02 0x234>; - assigned-clock-parents = <0x02 0x05>; - rockchip,capture-only; - resets = <0x02 0x417>; - interrupts = <0x00 0xbe 0x04>; - clocks = <0x02 0x237 0x02 0x237 0x02 0x233>; - dma-names = "rx"; - #sound-dai-cells = <0x00>; - compatible = "rockchip,rk3588-i2s-tdm"; - status = "disabled"; - reg = <0x00 0xfde00000 0x00 0x1000>; - phandle = <0x47e>; - dmas = <0xf2 0x18>; - reset-names = "rx-m"; - }; - - qos@fdf40800 { - compatible = "syscon"; - reg = <0x00 0xfdf40800 0x00 0x20>; - phandle = <0xa5>; - }; - - i2s@fddfc000 { - power-domains = <0x60 0x1a>; - clock-names = "mclk_tx\0mclk_rx\0hclk"; - assigned-clocks = <0x02 0x23f>; - assigned-clock-parents = <0x02 0x05>; - rockchip,capture-only; - resets = <0x02 0x413>; - interrupts = <0x00 0xbd 0x04>; - clocks = <0x02 0x242 0x02 0x242 0x02 0x23e>; - dma-names = "rx"; - #sound-dai-cells = <0x00>; - compatible = "rockchip,rk3588-i2s-tdm"; - status = "disabled"; - reg = <0x00 0xfddfc000 0x00 0x1000>; - phandle = <0x27f>; - dmas = <0xf2 0x17>; - reset-names = "rx-m"; - }; - - usbdrd3_0 { - #address-cells = <0x02>; - clock-names = "ref\0suspend\0bus"; - clocks = <0x02 0x1a3 0x02 0x1a2 0x02 0x1a1>; - #size-cells = <0x02>; - compatible = "rockchip,rk3588-dwc3\0rockchip,rk3399-dwc3"; - ranges; - status = "okay"; - phandle = <0x252>; - - usb@fc000000 { - power-domains = <0x60 0x1f>; - snps,dis-u1-entry-quirk; - snps,dis_enblslpm_quirk; - phy-names = "usb2-phy\0usb3-phy"; - snps,dis-u2-freeclk-exists-quirk; - usb-role-switch; - phy_type = "utmi_wide"; - quirk-skip-phy-init; - resets = <0x02 0x2a4>; - interrupts = <0x00 0xdc 0x04>; - snps,dis-u2-entry-quirk; - compatible = "snps,dwc3"; - snps,parkmode-disable-hs-quirk; - snps,dis-del-phy-power-chg-quirk; - status = "okay"; - snps,parkmode-disable-ss-quirk; - phys = <0x66 0x67>; - reg = <0x00 0xfc000000 0x00 0x400000>; - phandle = <0x253>; - dr_mode = "host"; - reset-names = "usb3-otg"; - snps,dis-tx-ipgap-linecheck-quirk; - - port { - #address-cells = <0x01>; - #size-cells = <0x00>; - - endpoint@0 { - remote-endpoint = <0x68>; - reg = <0x00>; - phandle = <0x17d>; - }; - }; - }; - }; - - rkcif-mipi-lvds5-sditf-vir2 { - compatible = "rockchip,rkcif-sditf"; - status = "disabled"; - rockchip,cif = <0x1a2>; - phandle = <0x478>; - }; - - rkcif-dvp-sditf { - compatible = "rockchip,rkcif-sditf"; - status = "disabled"; - rockchip,cif = <0x51>; - phandle = <0x22a>; - }; - - iommu@fdd97e00 { - rockchip,shootdown-entire; - clock-names = "aclk\0iface"; - interrupts = <0x00 0x9c 0x04>; - clocks = <0x02 0x270 0x02 0x26f>; - #iommu-cells = <0x00>; - compatible = "rockchip,iommu-v2"; - status = "okay"; - interrupt-names = "vop_mmu"; - reg = <0x00 0xfdd97e00 0x00 0x100 0x00 0xfdd97f00 0x00 0x100>; - phandle = <0xd6>; - rockchip,disable-device-link-resume; - }; - - rkvtunnel { - compatible = "rockchip,video-tunnel"; - status = "disabled"; - phandle = <0x245>; - }; - - syscon@fd5e0000 { - compatible = "rockchip,rk3588-hdptxphy-grf\0syscon"; - reg = <0x00 0xfd5e0000 0x00 0x100>; - phandle = <0x18a>; - }; - - i2c@fead0000 { - pinctrl-names = "default"; - #address-cells = <0x01>; - pinctrl-0 = <0x14d>; - clock-names = "i2c\0pclk"; - resets = <0x02 0xb4 0x02 0xac>; - interrupts = <0x00 0x142 0x04>; - clocks = <0x02 0x91 0x02 0x89>; - #size-cells = <0x00>; - compatible = "rockchip,rk3588-i2c\0rockchip,rk3399-i2c"; - status = "disabled"; - reg = <0x00 0xfead0000 0x00 0x1000>; - phandle = <0x2a8>; - reset-names = "i2c\0apb"; - }; - - iommu@fdba4800 { - power-domains = <0x60 0x15>; - clock-names = "aclk\0iface"; - interrupts = <0x00 0x7b 0x04>; - clocks = <0x02 0x1ae 0x02 0x1af>; - #iommu-cells = <0x00>; - compatible = "rockchip,iommu-v2"; - status = "okay"; - interrupt-names = "irq_jpege1_mmu"; - reg = <0x00 0xfdba4800 0x00 0x40>; - phandle = <0xbe>; - }; - - spdif-rx@fde10000 { - power-domains = <0x60 0x1a>; - clock-names = "mclk\0hclk"; - assigned-clocks = <0x02 0x260>; - assigned-clock-parents = <0x02 0x05>; - resets = <0x02 0x3ff>; - interrupts = <0x00 0xc8 0x04>; - clocks = <0x02 0x260 0x02 0x25f>; - dma-names = "rx"; - #sound-dai-cells = <0x00>; - compatible = "rockchip,rk3588-spdifrx\0rockchip,rk3308-spdifrx"; - status = "disabled"; - reg = <0x00 0xfde10000 0x00 0x1000>; - phandle = <0x47f>; - dmas = <0x7c 0x16>; - reset-names = "spdifrx-m"; - }; - - npu@fdab0000 { - power-domains = <0x60 0x09 0x60 0x0a 0x60 0x0b>; - iommus = <0xb2>; - clock-names = "clk_npu\0aclk0\0aclk1\0aclk2\0hclk0\0hclk1\0hclk2\0pclk"; - assigned-clocks = <0x0e 0x06>; - power-domain-names = "npu0\0npu1\0npu2"; - rknpu-supply = <0xb3>; - assigned-clock-rates = <0xbebc200>; - resets = <0x02 0x1e6 0x02 0x1b0 0x02 0x1c0 0x02 0x1e8 0x02 0x1b2 0x02 0x1c2>; - interrupts = <0x00 0x6e 0x04 0x00 0x6f 0x04 0x00 0x70 0x04>; - clocks = <0x0e 0x06 0x02 0x12d 0x02 0x122 0x02 0x124 0x02 0x12e 0x02 0x123 0x02 0x125 0x02 0x131>; - compatible = "rockchip,rk3588-rknpu"; - status = "okay"; - interrupt-names = "npu0_irq\0npu1_irq\0npu2_irq"; - mem-supply = <0xb3>; - reg = <0x00 0xfdab0000 0x00 0x10000 0x00 0xfdac0000 0x00 0x10000 0x00 0xfdad0000 0x00 0x10000>; - phandle = <0x265>; - reset-names = "srst_a0\0srst_a1\0srst_a2\0srst_h0\0srst_h1\0srst_h2"; - operating-points-v2 = <0xb1>; - }; - - hdmiphy@fed60000 { - clock-names = "ref\0apb"; - resets = <0x02 0x48e 0x02 0x485 0x02 0xc003b 0x02 0xc003c 0x02 0xc003d 0x02 0x48c 0x02 0x48d>; - clocks = <0x02 0x2b5 0x02 0x267>; - #phy-cells = <0x00>; - compatible = "rockchip,rk3588-hdptx-phy-hdmi"; - status = "okay"; - rockchip,grf = <0x18a>; - reg = <0x00 0xfed60000 0x00 0x2000>; - phandle = <0xfd>; - reset-names = "phy\0apb\0init\0cmn\0lane\0ropll\0lcpll"; - - clk-port { - #clock-cells = <0x00>; - status = "okay"; - phandle = <0x35>; - }; - }; - - dmc-opp-table { - nvmem-cells = <0x44 0x45 0x21>; - rockchip,low-temp = <0x2710>; - rockchip,leakage-voltage-sel = <0x01 0x1f 0x00 0x20 0x2c 0x01 0x2d 0x39 0x02 0x3a 0xfe 0x03>; - compatible = "operating-points-v2"; - rockchip,low-temp-min-volt = <0xb71b0>; - nvmem-cell-names = "leakage\0opp-info\0specification_serial_number"; - phandle = <0x41>; - rockchip,temp-hysteresis = <0x1388>; - rockchip,supported-hw; - - opp-1560000000 { - opp-microvolt = <0xc3500 0xc3500 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; - opp-microvolt-L2 = <0xb71b0 0xb71b0 0xd59f8 0xadf34 0xadf34 0xb71b0>; - opp-hz = <0x00 0x5cfbb600>; - opp-supported-hw = <0xf9 0xffff>; - opp-microvolt-L3 = <0xb1008 0xb1008 0xd59f8 0xaae60 0xaae60 0xb71b0>; - opp-microvolt-L1 = <0xbd358 0xbd358 0xd59f8 0xb1008 0xb1008 0xb71b0>; - }; - - opp-j-m-1560000000 { - opp-microvolt = <0xc3500 0xc3500 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; - opp-microvolt-L2 = <0xb71b0 0xb71b0 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; - opp-hz = <0x00 0x5cfbb600>; - opp-supported-hw = <0x06 0xffff>; - opp-microvolt-L3 = <0xb71b0 0xb71b0 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; - opp-microvolt-L1 = <0xbd358 0xbd358 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; - }; - - opp-j-m-528000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; - opp-hz = <0x00 0x1f78a400>; - opp-supported-hw = <0x06 0xffff>; - }; - - opp-2750000000 { - opp-microvolt = <0xd59f8 0xd59f8 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; - opp-microvolt-L2 = <0xcc77c 0xcc77c 0xd59f8 0xb1008 0xb1008 0xb71b0>; - opp-hz = <0x00 0xa3e9ab80>; - opp-supported-hw = <0xf9 0xffff>; - opp-microvolt-L3 = <0xc96a8 0xc8320 0xd59f8 0xaae60 0xaae60 0xb71b0>; - opp-microvolt-L1 = <0xcf850 0xcf850 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; - }; - - opp-1068000000 { - opp-microvolt = <0xb1008 0xb1008 0xd59f8 0xb40dc 0xb40dc 0xb71b0>; - opp-microvolt-L2 = <0xa4cb8 0xa4cb8 0xd59f8 0xaae60 0xaae60 0xb71b0>; - opp-hz = <0x00 0x3fa86300>; - opp-supported-hw = <0xf9 0xffff>; - opp-microvolt-L3 = <0xa4cb8 0xa4cb8 0xd59f8 0xa7d8c 0xa7d8c 0xb71b0>; - opp-microvolt-L1 = <0xaae60 0xaae60 0xd59f8 0xadf34 0xadf34 0xb71b0>; - }; - - opp-j-m-2750000000 { - opp-microvolt = <0xd59f8 0xd59f8 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; - opp-microvolt-L2 = <0xcc77c 0xcc77c 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; - opp-hz = <0x00 0xa3e9ab80>; - opp-supported-hw = <0x06 0xffff>; - opp-microvolt-L3 = <0xc96a8 0xc8320 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; - opp-microvolt-L1 = <0xcf850 0xcf850 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; - }; - - opp-528000000 { - opp-microvolt = <0xa4cb8 0xa4cb8 0xd59f8 0xb1008 0xb1008 0xb71b0>; - opp-microvolt-L2 = <0xa4cb8 0xa4cb8 0xd59f8 0xa7d8c 0xa7d8c 0xb71b0>; - opp-hz = <0x00 0x1f78a400>; - opp-supported-hw = <0xf9 0xffff>; - opp-microvolt-L3 = <0xa4cb8 0xa4cb8 0xd59f8 0xa4cb8 0xa4cb8 0xb71b0>; - opp-microvolt-L1 = <0xa4cb8 0xa4cb8 0xd59f8 0xaae60 0xaae60 0xb71b0>; - }; - - opp-j-m-1068000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; - opp-hz = <0x00 0x3fa86300>; - opp-supported-hw = <0x06 0xffff>; - }; - }; - - rkvenc-core@fdbe0000 { - power-domains = <0x60 0x11>; - iommus = <0xc5>; - rockchip,ccu = <0xc3>; - clock-names = "aclk_vcodec\0hclk_vcodec\0clk_core"; - assigned-clocks = <0x02 0x1ca 0x02 0x1cb>; - rockchip,task-capacity = <0x08>; - rockchip,normal-rates = <0x1dcd6500 0x00 0x2faf0800>; - assigned-clock-rates = <0x1dcd6500 0x2faf0800>; - resets = <0x02 0x305 0x02 0x304 0x02 0x306>; - interrupts = <0x00 0x68 0x04>; - clocks = <0x02 0x1ca 0x02 0x1c9 0x02 0x1cb>; - rockchip,srv = <0xb8>; - rockchip,taskqueue-node = <0x07>; - compatible = "rockchip,rkv-encoder-v2-core"; - status = "okay"; - interrupt-names = "irq_rkvenc1"; - rockchip,skip-pmu-idle-request; - reg = <0x00 0xfdbe0000 0x00 0x6000>; - phandle = <0x273>; - reset-names = "video_a\0video_h\0video_core"; - operating-points-v2 = <0xc4>; - }; - - debug@fd104000 { - compatible = "rockchip,debug"; - reg = <0x00 0xfd104000 0x00 0x1000 0x00 0xfd105000 0x00 0x1000 0x00 0xfd106000 0x00 0x1000 0x00 0xfd107000 0x00 0x1000 0x00 0xfd124000 0x00 0x1000 0x00 0xfd125000 0x00 0x1000 0x00 0xfd126000 0x00 0x1000 0x00 0xfd127000 0x00 0x1000>; - phandle = <0x48f>; - }; - - watchdog@feaf0000 { - clock-names = "tclk\0pclk"; - interrupts = <0x00 0x13b 0x04>; - clocks = <0x02 0x6c 0x02 0x6b>; - compatible = "snps,dw-wdt"; - status = "okay"; - reg = <0x00 0xfeaf0000 0x00 0x100>; - phandle = <0x2aa>; - }; - - syscon@fd5d8000 { - #address-cells = <0x01>; - #size-cells = <0x01>; - compatible = "rockchip,rk3588-usb2phy-grf\0syscon\0simple-mfd"; - reg = <0x00 0xfd5d8000 0x00 0x4000>; - phandle = <0x25d>; - - usb2-phy@8000 { - clock-output-names = "usb480m_phy2"; - clock-names = "phyclk"; - resets = <0x02 0xc0049 0x02 0x48a>; - interrupts = <0x00 0x187 0x04>; - clocks = <0x02 0x2b5>; - #clock-cells = <0x00>; - compatible = "rockchip,rk3588-usb2phy"; - status = "okay"; - reg = <0x8000 0x10>; - phandle = <0x69>; - reset-names = "phy\0apb"; - - host-port { - phy-supply = <0x75>; - #phy-cells = <0x00>; - status = "okay"; - phandle = <0x6c>; - }; - }; - }; - - cluster0-opp-table { - rockchip,pvtm-offset = <0x64>; - rockchip,pvtm-sample-time = <0x44c>; - rockchip,dsu-grf = <0x23>; - rockchip,pvtm-hw = <0x06>; - nvmem-cells = <0x1f 0x20 0x21>; - rockchip,low-temp = <0x2710>; - rockchip,pvtm-voltage-sel-hw = <0x00 0x555 0x00 0x556 0x56b 0x01 0x56c 0x581 0x02 0x582 0x597 0x03 0x598 0x5ad 0x04 0x5ae 0x5c3 0x05 0x5c4 0x270f 0x06>; - rockchip,pvtm-thermal-zone = "soc-thermal"; - rockchip,opp-shared-dsu; - rockchip,high-temp-max-freq = <0x188940>; - opp-shared; - rockchip,reboot-freq = <0x159b40>; - rockchip,pvtm-freq = <0x159b40>; - rockchip,pvtm-ref-temp = <0x19>; - low-volt-mem-read-margin = <0x04>; - volt-mem-read-margin = <0xd0bd8 0x01 0xbac48 0x02 0xa4cb8 0x03 0x78d98 0x04>; - compatible = "operating-points-v2"; - rockchip,low-temp-min-volt = <0xb71b0>; - rockchip,grf = <0x22>; - nvmem-cell-names = "leakage\0opp-info\0specification_serial_number"; - rockchip,pvtm-voltage-sel = <0x00 0x582 0x00 0x583 0x59a 0x01 0x59b 0x5b2 0x02 0x5b3 0x5ca 0x03 0x5cb 0x5e2 0x04 0x5e3 0x5fa 0x05 0x5fb 0x270f 0x06>; - phandle = <0x0f>; - rockchip,pvtm-temp-prop = <0xf4 0xf4>; - rockchip,temp-hysteresis = <0x1388>; - rockchip,high-temp = <0x14c08>; - rockchip,pvtm-pvtpll; - rockchip,supported-hw; - intermediate-threshold-freq = <0xf6180>; - rockchip,pvtm-volt = <0xb71b0>; - - opp-1200000000 { - opp-microvolt = <0xadf34 0xadf34 0xe7ef0 0xadf34 0xadf34 0xe7ef0>; - opp-microvolt-L6 = <0xa4cb8 0xa4cb8 0xe7ef0 0xa4cb8 0xa4cb8 0xe7ef0>; - opp-microvolt-L4 = <0xa4cb8 0xa4cb8 0xe7ef0 0xa4cb8 0xa4cb8 0xe7ef0>; - opp-microvolt-L2 = <0xaae60 0xaae60 0xe7ef0 0xaae60 0xaae60 0xe7ef0>; - opp-hz = <0x00 0x47868c00>; - opp-supported-hw = <0xf9 0xffff>; - opp-microvolt-L5 = <0xa4cb8 0xa4cb8 0xe7ef0 0xa4cb8 0xa4cb8 0xe7ef0>; - opp-microvolt-L3 = <0xa7d8c 0xa7d8c 0xe7ef0 0xa7d8c 0xa7d8c 0xe7ef0>; - clock-latency-ns = <0x9c40>; - opp-microvolt-L1 = <0xaae60 0xaae60 0xe7ef0 0xaae60 0xaae60 0xe7ef0>; - }; - - opp-j-m-1416000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - opp-microvolt-L2 = <0xba284 0xba284 0xe7ef0 0xba284 0xba284 0xe7ef0>; - opp-hz = <0x00 0x54667200>; - opp-microvolt-L0 = <0xc042c 0xc042c 0xe7ef0 0xc042c 0xc042c 0xe7ef0>; - opp-supported-hw = <0x06 0xffff>; - opp-suspend; - clock-latency-ns = <0x9c40>; - opp-microvolt-L1 = <0xbd358 0xbd358 0xe7ef0 0xbd358 0xbd358 0xe7ef0>; - }; - - opp-1008000000 { - opp-microvolt = <0xa4cb8 0xa4cb8 0xe7ef0 0xa4cb8 0xa4cb8 0xe7ef0>; - opp-hz = <0x00 0x3c14dc00>; - opp-supported-hw = <0xf9 0xffff>; - clock-latency-ns = <0x9c40>; - }; - - opp-j-m-1704000000 { - opp-microvolt = <0xe4e1c 0xe4e1c 0xe7ef0 0xe4e1c 0xe4e1c 0xe7ef0>; - opp-microvolt-L6 = <0xd2924 0xd2924 0xe7ef0 0xd2924 0xd2924 0xe7ef0>; - opp-microvolt-L4 = <0xd8acc 0xd8acc 0xe7ef0 0xd8acc 0xd8acc 0xe7ef0>; - opp-microvolt-L2 = <0xdec74 0xdec74 0xe7ef0 0xdec74 0xdec74 0xe7ef0>; - opp-hz = <0x00 0x6590fa00>; - opp-supported-hw = <0x06 0xffff>; - opp-microvolt-L5 = <0xd59f8 0xd59f8 0xe7ef0 0xd59f8 0xd59f8 0xe7ef0>; - opp-microvolt-L3 = <0xdbba0 0xdbba0 0xe7ef0 0xdbba0 0xdbba0 0xe7ef0>; - clock-latency-ns = <0x9c40>; - opp-microvolt-L1 = <0xe1d48 0xe1d48 0xe7ef0 0xe1d48 0xe1d48 0xe7ef0>; - }; - - opp-j-m-1200000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - opp-hz = <0x00 0x47868c00>; - opp-supported-hw = <0x06 0xffff>; - clock-latency-ns = <0x9c40>; - }; - - opp-j-m-1008000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - opp-hz = <0x00 0x3c14dc00>; - opp-supported-hw = <0x06 0xffff>; - clock-latency-ns = <0x9c40>; - }; - - opp-j-m-816000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - opp-hz = <0x00 0x30a32c00>; - opp-supported-hw = <0x06 0xffff>; - clock-latency-ns = <0x9c40>; - }; - - opp-1800000000 { - opp-microvolt = <0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0>; - opp-microvolt-L6 = <0xd59f8 0xd59f8 0xe7ef0 0xd59f8 0xd59f8 0xe7ef0>; - opp-microvolt-L4 = <0xdbba0 0xdbba0 0xe7ef0 0xdbba0 0xdbba0 0xe7ef0>; - opp-microvolt-L2 = <0xe1d48 0xe1d48 0xe7ef0 0xe1d48 0xe1d48 0xe7ef0>; - opp-hz = <0x00 0x6b49d200>; - opp-supported-hw = <0xf9 0xffff>; - opp-microvolt-L5 = <0xd8acc 0xd8acc 0xe7ef0 0xd8acc 0xd8acc 0xe7ef0>; - opp-microvolt-L3 = <0xdec74 0xdec74 0xe7ef0 0xdec74 0xdec74 0xe7ef0>; - clock-latency-ns = <0x9c40>; - opp-microvolt-L1 = <0xe4e1c 0xe4e1c 0xe7ef0 0xe4e1c 0xe4e1c 0xe7ef0>; - }; - - opp-j-m-600000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - opp-hz = <0x00 0x23c34600>; - opp-supported-hw = <0x06 0xffff>; - clock-latency-ns = <0x9c40>; - }; - - opp-1608000000 { - opp-microvolt = <0xcf850 0xcf850 0xe7ef0 0xcf850 0xcf850 0xe7ef0>; - opp-microvolt-L6 = <0xc042c 0xc042c 0xe7ef0 0xc042c 0xc042c 0xe7ef0>; - opp-microvolt-L4 = <0xc3500 0xc3500 0xe7ef0 0xc3500 0xc3500 0xe7ef0>; - opp-microvolt-L2 = <0xc96a8 0xc96a8 0xe7ef0 0xc96a8 0xc96a8 0xe7ef0>; - opp-hz = <0x00 0x5fd82200>; - opp-supported-hw = <0xf9 0xffff>; - opp-microvolt-L5 = <0xc3500 0xc3500 0xe7ef0 0xc3500 0xc3500 0xe7ef0>; - opp-microvolt-L3 = <0xc65d4 0xc65d4 0xe7ef0 0xc65d4 0xc65d4 0xe7ef0>; - clock-latency-ns = <0x9c40>; - opp-microvolt-L1 = <0xcc77c 0xcc77c 0xe7ef0 0xcc77c 0xcc77c 0xe7ef0>; - }; - - opp-j-1296000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - opp-hz = <0x00 0x4d3f6400>; - opp-microvolt-L0 = <0xbd358 0xbd358 0xe7ef0 0xbd358 0xbd358 0xe7ef0>; - opp-supported-hw = <0x04 0xffff>; - clock-latency-ns = <0x9c40>; - opp-microvolt-L1 = <0xba284 0xba284 0xe7ef0 0xba284 0xba284 0xe7ef0>; - }; - - opp-j-m-408000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - opp-hz = <0x00 0x18519600>; - opp-supported-hw = <0x06 0xffff>; - clock-latency-ns = <0x9c40>; - }; - - opp-816000000 { - opp-microvolt = <0xa4cb8 0xa4cb8 0xe7ef0 0xa4cb8 0xa4cb8 0xe7ef0>; - opp-hz = <0x00 0x30a32c00>; - opp-supported-hw = <0xf9 0xffff>; - clock-latency-ns = <0x9c40>; - }; - - opp-j-m-1608000000 { - opp-microvolt = <0xd8acc 0xd8acc 0xe7ef0 0xd8acc 0xd8acc 0xe7ef0>; - opp-microvolt-L6 = <0xc65d4 0xc65d4 0xe7ef0 0xc65d4 0xc65d4 0xe7ef0>; - opp-microvolt-L4 = <0xcc77c 0xcc77c 0xe7ef0 0xcc77c 0xcc77c 0xe7ef0>; - opp-microvolt-L2 = <0xd2924 0xd2924 0xe7ef0 0xd2924 0xd2924 0xe7ef0>; - opp-hz = <0x00 0x5fd82200>; - opp-supported-hw = <0x06 0xffff>; - opp-microvolt-L5 = <0xc96a8 0xc96a8 0xe7ef0 0xc96a8 0xc96a8 0xe7ef0>; - opp-microvolt-L3 = <0xcf850 0xcf850 0xe7ef0 0xcf850 0xcf850 0xe7ef0>; - clock-latency-ns = <0x9c40>; - opp-microvolt-L1 = <0xd59f8 0xd59f8 0xe7ef0 0xd59f8 0xd59f8 0xe7ef0>; - }; - - opp-600000000 { - opp-microvolt = <0xa4cb8 0xa4cb8 0xe7ef0 0xa4cb8 0xa4cb8 0xe7ef0>; - opp-hz = <0x00 0x23c34600>; - opp-supported-hw = <0xf9 0xffff>; - clock-latency-ns = <0x9c40>; - }; - - opp-1416000000 { - opp-microvolt = <0xba284 0xba284 0xe7ef0 0xba284 0xba284 0xe7ef0>; - opp-microvolt-L6 = <0xadf34 0xadf34 0xe7ef0 0xadf34 0xadf34 0xe7ef0>; - opp-microvolt-L4 = <0xb1008 0xb1008 0xe7ef0 0xb1008 0xb1008 0xe7ef0>; - opp-microvolt-L2 = <0xb40dc 0xb40dc 0xe7ef0 0xb40dc 0xb40dc 0xe7ef0>; - opp-hz = <0x00 0x54667200>; - opp-supported-hw = <0xf9 0xffff>; - opp-microvolt-L5 = <0xadf34 0xadf34 0xe7ef0 0xadf34 0xadf34 0xe7ef0>; - opp-suspend; - opp-microvolt-L3 = <0xb1008 0xb1008 0xe7ef0 0xb1008 0xb1008 0xe7ef0>; - clock-latency-ns = <0x9c40>; - opp-microvolt-L1 = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - }; - - opp-408000000 { - opp-microvolt = <0xa4cb8 0xa4cb8 0xe7ef0 0xa4cb8 0xa4cb8 0xe7ef0>; - opp-hz = <0x00 0x18519600>; - opp-supported-hw = <0xf9 0xffff>; - clock-latency-ns = <0x9c40>; - }; - }; - - vcc-4g-regulator { - regulator-boot-on; - gpio = <0x182 0x00 0x00>; - regulator-always-on; - enable-active-high; - regulator-name = "vcc_4g"; - compatible = "regulator-fixed"; - status = "okay"; - phandle = <0x4b0>; - }; - - spi@fecb0000 { - pinctrl-names = "default"; - #address-cells = <0x01>; - num-cs = <0x02>; - pinctrl-0 = <0x187 0x188 0x189>; - clock-names = "spiclk\0apb_pclk"; - interrupts = <0x00 0x14a 0x04>; - clocks = <0x02 0xa7 0x02 0xa2>; - #size-cells = <0x00>; - dma-names = "tx\0rx"; - compatible = "rockchip,rk3066-spi"; - status = "disabled"; - reg = <0x00 0xfecb0000 0x00 0x1000>; - phandle = <0x2e6>; - dmas = <0xf2 0x0d 0xf2 0x0e>; - }; - - spdif-rx@fde08000 { - power-domains = <0x60 0x1a>; - clock-names = "mclk\0hclk"; - assigned-clocks = <0x02 0x25e>; - assigned-clock-parents = <0x02 0x05>; - resets = <0x02 0x3fd>; - interrupts = <0x00 0xc7 0x04>; - clocks = <0x02 0x25e 0x02 0x25d>; - dma-names = "rx"; - #sound-dai-cells = <0x00>; - compatible = "rockchip,rk3588-spdifrx\0rockchip,rk3308-spdifrx"; - status = "disabled"; - reg = <0x00 0xfde08000 0x00 0x1000>; - phandle = <0x280>; - dmas = <0x7c 0x15>; - reset-names = "spdifrx-m"; - }; - - mipi3-csi2-hw@fdd40000 { - clock-names = "pclk_csi2host"; - reg-names = "csihost_regs"; - resets = <0x02 0x327>; - interrupts = <0x00 0x95 0x04 0x00 0x96 0x04>; - clocks = <0x02 0x1d2>; - compatible = "rockchip,rk3588-mipi-csi2-hw"; - status = "okay"; - interrupt-names = "csi-intr1\0csi-intr2"; - reg = <0x00 0xfdd40000 0x00 0x10000>; - phandle = <0x4a>; - reset-names = "srst_csihost_p"; - }; - - memory { - device_type = "memory"; - reg = <0x00 0x9400000 0x00 0xe6c00000 0x01 0x00 0x01 0x00 0x02 0xf0000000 0x00 0x10000000 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00>; - }; - - jpege-core@fdba4000 { - power-domains = <0x60 0x15>; - iommus = <0xbe>; - rockchip,ccu = <0xbd>; - clock-names = "aclk_vcodec\0hclk_vcodec"; - assigned-clocks = <0x02 0x1ae>; - rockchip,normal-rates = <0x2367b880 0x00>; - assigned-clock-rates = <0x2367b880>; - resets = <0x02 0x2cc 0x02 0x2cd>; - interrupts = <0x00 0x7c 0x04>; - clocks = <0x02 0x1ae 0x02 0x1af>; - rockchip,srv = <0xb8>; - rockchip,taskqueue-node = <0x02>; - rockchip,disable-auto-freq; - compatible = "rockchip,vpu-jpege-core"; - status = "okay"; - interrupt-names = "irq_jpege1"; - rockchip,skip-pmu-idle-request; - reg = <0x00 0xfdba4000 0x00 0x400>; - phandle = <0x26e>; - reset-names = "video_a\0video_h"; - }; - - wireless-wlan { - pinctrl-names = "default"; - pinctrl-0 = <0x1ea>; - WIFI,host_wake_irq = <0x182 0x0a 0x00>; - wifi_chip_type = "rtl8822ce"; - compatible = "wlan-platdata"; - status = "okay"; - phandle = <0x4ab>; - }; - - rkcif-mipi-lvds4-sditf-vir3 { - compatible = "rockchip,rkcif-sditf"; - status = "disabled"; - rockchip,cif = <0x1a1>; - phandle = <0x475>; - }; - - dp@fde50000 { - power-domains = <0x60 0x19>; - clock-names = "apb\0aux\0i2s\0spdif\0hclk\0hdcp"; - assigned-clocks = <0x02 0x2cc>; - assigned-clock-rates = <0xf42400>; - resets = <0x02 0x388>; - interrupts = <0x00 0xa1 0x04>; - clocks = <0x02 0x1e6 0x02 0x2cc 0x02 0x1fb 0x02 0x207 0x04 0x02 0x1ea>; - #sound-dai-cells = <0x01>; - compatible = "rockchip,rk3588-dp"; - status = "disabled"; - phys = <0xf6>; - reg = <0x00 0xfde50000 0x00 0x4000>; - phandle = <0x1d6>; - - ports { - #address-cells = <0x01>; - #size-cells = <0x00>; - - port@0 { - #address-cells = <0x01>; - #size-cells = <0x00>; - reg = <0x00>; - - endpoint@1 { - remote-endpoint = <0x38>; - status = "disabled"; - reg = <0x01>; - phandle = <0xe0>; - }; - - endpoint@2 { - remote-endpoint = <0xf8>; - status = "disabled"; - reg = <0x02>; - phandle = <0xe6>; - }; - - endpoint@0 { - remote-endpoint = <0xf7>; - status = "disabled"; - reg = <0x00>; - phandle = <0xda>; - }; - }; - - port@1 { - reg = <0x01>; - - endpoint { - phandle = <0x286>; - }; - }; - }; - }; - - rockchip-system-monitor { - rockchip,thermal-zone = "soc-thermal"; - compatible = "rockchip,system-monitor"; - phandle = <0x247>; - }; - - vcc3v3-pcie30 { - regulator-max-microvolt = <0x325aa0>; - enable-active-high; - regulator-min-microvolt = <0x325aa0>; - regulator-name = "vcc3v3_pcie30"; - startup-delay-us = <0x1388>; - compatible = "regulator-fixed"; - status = "okay"; - phandle = <0x1b8>; - vin-supply = <0x1cd>; - gpios = <0x182 0x04 0x00>; - }; - - phy@fedb0000 { - clock-names = "pclk\0ref"; - resets = <0x02 0xc0045 0x02 0x43 0x02 0x44 0x02 0xc0046>; - clocks = <0x02 0x109 0x02 0x2b6>; - #phy-cells = <0x00>; - compatible = "rockchip,rk3588-mipi-dcphy"; - status = "okay"; - rockchip,grf = <0x191>; - reg = <0x00 0xfedb0000 0x00 0x10000>; - phandle = <0x30>; - reset-names = "m_phy\0apb\0grf\0s_phy"; - }; - - rkvdec-core@fdc38000 { - power-domains = <0x60 0x0e>; - iommus = <0xc9>; - rockchip,ccu = <0xca>; - clock-names = "aclk_vcodec\0hclk_vcodec\0clk_core\0clk_cabac\0clk_hevc_cabac"; - reg-names = "regs\0link"; - assigned-clocks = <0x02 0x190 0x02 0x193 0x02 0x191 0x02 0x192>; - rockchip,core-mask = <0x10001>; - rockchip,task-capacity = <0x10>; - rockchip,normal-rates = <0x2faf0800 0x00 0x23c34600 0x23c34600 0x3b9aca00>; - assigned-clock-rates = <0x2faf0800 0x23c34600 0x23c34600 0x3b9aca00>; - resets = <0x02 0x284 0x02 0x283 0x02 0x289 0x02 0x287 0x02 0x288>; - interrupts = <0x00 0x5f 0x04>; - rockchip,rcb-info = <0x88 0x6000 0x89 0xc000 0x8d 0x16000 0x8c 0xc000 0x8b 0x2c000 0x85 0xc000 0x86 0x2000 0x87 0x1100 0x8a 0x3300 0x8e 0x47300>; - clocks = <0x02 0x190 0x02 0x18f 0x02 0x193 0x02 0x191 0x02 0x192>; - rockchip,rcb-min-width = <0x200>; - rockchip,srv = <0xb8>; - rockchip,taskqueue-node = <0x09>; - compatible = "rockchip,rkv-decoder-v2"; - status = "okay"; - interrupt-names = "irq_rkvdec0"; - rockchip,skip-pmu-idle-request; - rockchip,rcb-iova = <0xfff00000 0x100000>; - reg = <0x00 0xfdc38100 0x00 0x400 0x00 0xfdc38000 0x00 0x100>; - phandle = <0x274>; - reset-names = "video_a\0video_h\0video_core\0video_cabac\0video_hevc_cabac"; - rockchip,sram = <0xcb>; - }; - - minidump { - smem-region = <0x1cf>; - minidump-region = <0x1d0>; - compatible = "rockchip,minidump"; - status = "disabled"; - phandle = <0x491>; - }; -}; diff --git a/configs/vms_bkp/arceos-aarch64-e2000_smp1.dts b/configs/vms_bkp/arceos-aarch64-e2000_smp1.dts deleted file mode 100644 index e2f9d8e4..00000000 --- a/configs/vms_bkp/arceos-aarch64-e2000_smp1.dts +++ /dev/null @@ -1,155 +0,0 @@ -/dts-v1/; - -/memreserve/ 0x0000000080000000 0x0000000000010000; -/ { - compatible = "phytium,pe2204"; - interrupt-parent = <0x01>; - #address-cells = <0x02>; - #size-cells = <0x02>; - model = "Phytium Pi Board"; - - // memory@01 { - // device_type = "memory"; - // reg = <0x20 0x00 0x00 0x80000000>; - // numa-node-id = <0x00>; - // }; - - aliases { - serial1 = "/soc/uart@2800d000"; - }; - - psci { - compatible = "arm,psci-1.0"; - method = "smc"; - cpu_suspend = <0xc4000001>; - cpu_off = <0x84000002>; - cpu_on = <0xc4000003>; - sys_poweroff = <0x84000008>; - sys_reset = <0x84000009>; - }; - - cpus { - #address-cells = <0x02>; - #size-cells = <0x00>; - - cpu-map { - - cluster0 { - - core0 { - cpu = <0x05>; - }; - }; - - // cluster1 { - - // core0 { - // cpu = <0x06>; - // }; - // }; - - // cluster2 { - - // core0 { - // cpu = <0x07>; - // }; - - // core1 { - // cpu = <0x08>; - // }; - // }; - }; - - // cpu@0 { - // device_type = "cpu"; - // compatible = "phytium,ftc310\0arm,armv8"; - // reg = <0x00 0x200>; - // enable-method = "psci"; - // clocks = <0x09 0x02>; - // capacity-dmips-mhz = <0xb22>; - // phandle = <0x07>; - // }; - - // cpu@1 { - // device_type = "cpu"; - // compatible = "phytium,ftc310\0arm,armv8"; - // reg = <0x00 0x201>; - // enable-method = "psci"; - // clocks = <0x09 0x02>; - // capacity-dmips-mhz = <0xb22>; - // phandle = <0x08>; - // }; - - cpu@100 { - device_type = "cpu"; - compatible = "phytium,ftc664\0arm,armv8"; - reg = <0x00 0x00>; - enable-method = "psci"; - clocks = <0x09 0x00>; - capacity-dmips-mhz = <0x161c>; - phandle = <0x05>; - }; - - // cpu@101 { - // device_type = "cpu"; - // compatible = "phytium,ftc664\0arm,armv8"; - // reg = <0x00 0x100>; - // enable-method = "psci"; - // clocks = <0x09 0x01>; - // capacity-dmips-mhz = <0x161c>; - // phandle = <0x06>; - // }; - }; - - interrupt-controller@30800000 { - compatible = "arm,gic-v3"; - #interrupt-cells = <0x03>; - #address-cells = <0x02>; - #size-cells = <0x02>; - ranges; - interrupt-controller; - reg = <0x00 0x30800000 0x00 0x20000 0x00 0x30880000 0x00 0x80000 0x00 0x30840000 0x00 0x10000 0x00 0x30850000 0x00 0x10000 0x00 0x30860000 0x00 0x10000>; - interrupts = <0x01 0x09 0x08>; - phandle = <0x01>; - - gic-its@30820000 { - compatible = "arm,gic-v3-its"; - msi-controller; - reg = <0x00 0x30820000 0x00 0x20000>; - phandle = <0x0f>; - }; - }; - - timer { - compatible = "arm,armv8-timer"; - interrupts = <0x01 0x0d 0x08 0x01 0x0e 0x08 0x01 0x0b 0x08 0x01 0x0a 0x08>; - clock-frequency = <0x2faf080>; - }; - - soc { - compatible = "simple-bus"; - #address-cells = <0x02>; - #size-cells = <0x02>; - dma-coherent; - ranges; - - uart@2800d000 { - compatible = "arm,pl011\0arm,primecell"; - reg = <0x00 0x2800d000 0x00 0x1000>; - interrupts = <0x00 0x54 0x04>; - clocks = <0x0c 0x0c>; - clock-names = "uartclk\0apb_pclk"; - status = "okay"; - }; - }; - - chosen { - bootargs = "console=ttyAMA1,115200 earlycon=pl011,0x2800d000 root=/dev/mmcblk0p1 rootfstype=ext4 rootwait rw cma=256m ;"; - stdout-path = "serial1:115200n8"; - }; - - memory@00 { - device_type = "memory"; - reg = <0x20 0x20000000 0x00 0x20000000>; - }; -}; diff --git a/configs/vms_bkp/arceos-aarch64-e2000_smp1.toml b/configs/vms_bkp/arceos-aarch64-e2000_smp1.toml deleted file mode 100644 index dbbae96e..00000000 --- a/configs/vms_bkp/arceos-aarch64-e2000_smp1.toml +++ /dev/null @@ -1,71 +0,0 @@ -# Vm base info configs -# -[base] -# Guest vm id. -id = 2 -# Guest vm name. -name = "arceos" -# Virtualization type. -vm_type = 1 -# The number of virtual CPUs. -cpu_num = 1 -# The physical CPU ids. -phys_cpu_ids = [0x00] -# Guest vm physical cpu sets. -phys_cpu_sets = [4] - -# -# Vm kernel configs -# -[kernel] -# The entry point of the kernel image. -entry_point = 0x20_2008_0000 -# The location of image: "memory" | "fs". -# Load from file system. -image_location = "memory" -# The load address of the kernel image. -kernel_load_addr = 0x20_2008_0000 -## The file path of the kernel image. -kernel_path = "/path/to/arceos_aarch64-dyn_smp1.bin" -## The file path of the device tree blob (DTB). -dtb_load_addr = 0x20_2000_0000 -dtb_path = "/path/to/axvisor/configs/vms/arceos-aarch64-e2000_smp1.dtb" -# Memory regions with format (`base_paddr`, `size`, `flags`, `map_type`). -# For `map_type`, 0 means `MAP_ALLOC`, 1 means `MAP_IDENTICAL`. -memory_regions = [ - [0x20_2000_0000, 0x2000_0000, 0x7, 1], # System RAM MAP_IDENTICAL -] - -# -# Device specifications -# -[devices] -# Emu_devices. -# Name Base-Ipa Ipa_len Alloc-Irq Emu-Type EmuConfig. -emu_devices = [] - -# Pass-through devices. -# Name Base-Ipa Base-Pa Length Alloc-Irq. -passthrough_devices = [ - [ - "UART1", - 0x2800_d000, - 0x2800_d000, - 0x1000, - 0x1, - ], - [ - "gic-v3", - 0x3080_0000, - 0x3080_0000, - 0x10000, - 0x1, - ], - [ - "gic-v3-its", - 0x3082_0000, - 0x3082_0000, - 0x100000, - 0x1, - ], -] diff --git a/configs/vms_bkp/arceos-aarch64-e2000_smp2.dts b/configs/vms_bkp/arceos-aarch64-e2000_smp2.dts deleted file mode 100644 index b80c5dad..00000000 --- a/configs/vms_bkp/arceos-aarch64-e2000_smp2.dts +++ /dev/null @@ -1,155 +0,0 @@ -/dts-v1/; - -/memreserve/ 0x0000000080000000 0x0000000000010000; -/ { - compatible = "phytium,pe2204"; - interrupt-parent = <0x01>; - #address-cells = <0x02>; - #size-cells = <0x02>; - model = "Phytium Pi Board"; - - // memory@01 { - // device_type = "memory"; - // reg = <0x20 0x00 0x00 0x80000000>; - // numa-node-id = <0x00>; - // }; - - aliases { - serial1 = "/soc/uart@2800d000"; - }; - - psci { - compatible = "arm,psci-1.0"; - method = "smc"; - cpu_suspend = <0xc4000001>; - cpu_off = <0x84000002>; - cpu_on = <0xc4000003>; - sys_poweroff = <0x84000008>; - sys_reset = <0x84000009>; - }; - - cpus { - #address-cells = <0x02>; - #size-cells = <0x00>; - - cpu-map { - - // cluster0 { - - // core0 { - // cpu = <0x05>; - // }; - // }; - - cluster1 { - - core0 { - cpu = <0x06>; - }; - }; - - cluster2 { - - // core0 { - // cpu = <0x07>; - // }; - - core1 { - cpu = <0x08>; - }; - }; - }; - - // cpu@0 { - // device_type = "cpu"; - // compatible = "phytium,ftc310\0arm,armv8"; - // reg = <0x00 0x200>; - // enable-method = "psci"; - // clocks = <0x09 0x02>; - // capacity-dmips-mhz = <0xb22>; - // phandle = <0x07>; - // }; - - cpu@1 { - device_type = "cpu"; - compatible = "phytium,ftc310\0arm,armv8"; - reg = <0x00 0x201>; - enable-method = "psci"; - clocks = <0x09 0x02>; - capacity-dmips-mhz = <0xb22>; - phandle = <0x08>; - }; - - // cpu@100 { - // device_type = "cpu"; - // compatible = "phytium,ftc664\0arm,armv8"; - // reg = <0x00 0x00>; - // enable-method = "psci"; - // clocks = <0x09 0x00>; - // capacity-dmips-mhz = <0x161c>; - // phandle = <0x05>; - // }; - - cpu@101 { - device_type = "cpu"; - compatible = "phytium,ftc664\0arm,armv8"; - reg = <0x00 0x100>; - enable-method = "psci"; - clocks = <0x09 0x01>; - capacity-dmips-mhz = <0x161c>; - phandle = <0x06>; - }; - }; - - interrupt-controller@30800000 { - compatible = "arm,gic-v3"; - #interrupt-cells = <0x03>; - #address-cells = <0x02>; - #size-cells = <0x02>; - ranges; - interrupt-controller; - reg = <0x00 0x30800000 0x00 0x20000 0x00 0x30880000 0x00 0x80000 0x00 0x30840000 0x00 0x10000 0x00 0x30850000 0x00 0x10000 0x00 0x30860000 0x00 0x10000>; - interrupts = <0x01 0x09 0x08>; - phandle = <0x01>; - - gic-its@30820000 { - compatible = "arm,gic-v3-its"; - msi-controller; - reg = <0x00 0x30820000 0x00 0x20000>; - phandle = <0x0f>; - }; - }; - - timer { - compatible = "arm,armv8-timer"; - interrupts = <0x01 0x0d 0x08 0x01 0x0e 0x08 0x01 0x0b 0x08 0x01 0x0a 0x08>; - clock-frequency = <0x2faf080>; - }; - - soc { - compatible = "simple-bus"; - #address-cells = <0x02>; - #size-cells = <0x02>; - dma-coherent; - ranges; - - uart@2800d000 { - compatible = "arm,pl011\0arm,primecell"; - reg = <0x00 0x2800d000 0x00 0x1000>; - interrupts = <0x00 0x54 0x04>; - clocks = <0x0c 0x0c>; - clock-names = "uartclk\0apb_pclk"; - status = "okay"; - }; - }; - - chosen { - bootargs = "console=ttyAMA1,115200 earlycon=pl011,0x2800d000 root=/dev/mmcblk0p1 rootfstype=ext4 rootwait rw cma=256m ;"; - stdout-path = "serial1:115200n8"; - }; - - memory@00 { - device_type = "memory"; - reg = <0x20 0x20000000 0x00 0x20000000>; - }; -}; diff --git a/configs/vms_bkp/arceos-aarch64-e2000_smp2.toml b/configs/vms_bkp/arceos-aarch64-e2000_smp2.toml deleted file mode 100644 index 4f69f198..00000000 --- a/configs/vms_bkp/arceos-aarch64-e2000_smp2.toml +++ /dev/null @@ -1,71 +0,0 @@ -# Vm base info configs -# -[base] -# Guest vm id. -id = 2 -# Guest vm name. -name = "arceos" -# Virtualization type. -vm_type = 1 -# The number of virtual CPUs. -cpu_num = 2 -# The physical CPU ids. -phys_cpu_ids = [0x201, 0x100] -# Guest vm physical cpu sets. -phys_cpu_sets = [2, 8] - -# -# Vm kernel configs -# -[kernel] -# The entry point of the kernel image. -entry_point = 0x20_2008_0000 -# The location of image: "memory" | "fs". -# Load from file system. -image_location = "memory" -# The load address of the kernel image. -kernel_load_addr = 0x20_2008_0000 -## The file path of the kernel image. -kernel_path = "/path/to/arceos_aarch64-dyn_smp1.bin" -## The file path of the device tree blob (DTB). -dtb_load_addr = 0x20_2000_0000 -dtb_path = "/path/to/axvisor/configs/vms/arceos-aarch64-e2000_smp2.dtb" -# Memory regions with format (`base_paddr`, `size`, `flags`, `map_type`). -# For `map_type`, 0 means `MAP_ALLOC`, 1 means `MAP_IDENTICAL`. -memory_regions = [ - [0x20_2000_0000, 0x2000_0000, 0x7, 1], # System RAM MAP_IDENTICAL -] - -# -# Device specifications -# -[devices] -# Emu_devices. -# Name Base-Ipa Ipa_len Alloc-Irq Emu-Type EmuConfig. -emu_devices = [] - -# Pass-through devices. -# Name Base-Ipa Base-Pa Length Alloc-Irq. -passthrough_devices = [ - [ - "UART1", - 0x2800_d000, - 0x2800_d000, - 0x1000, - 0x1, - ], - [ - "gic-v3", - 0x3080_0000, - 0x3080_0000, - 0x10000, - 0x1, - ], - [ - "gic-v3-its", - 0x3082_0000, - 0x3082_0000, - 0x100000, - 0x1, - ], -] diff --git a/configs/vms_bkp/arceos-aarch64-rk3568-smp1.toml b/configs/vms_bkp/arceos-aarch64-rk3568-smp1.toml deleted file mode 100644 index eddf9ca4..00000000 --- a/configs/vms_bkp/arceos-aarch64-rk3568-smp1.toml +++ /dev/null @@ -1,73 +0,0 @@ -# Vm base info configs -# -[base] -# Guest vm id. -id = 1 -# Guest vm name. -name = "arceos" -# Virtualization type. -vm_type = 1 -# The number of virtual CPUs. -cpu_num = 1 -# The physical CPU ids. -phys_cpu_ids = [0x200] -# Guest vm physical cpu sets. -phys_cpu_sets = [1] - -# -# Vm kernel configs -# -[kernel] -# The entry point of the kernel image. -entry_point = 0x7008_0000 -# The location of image: "memory" | "fs". -# Load from memory. -image_location = "memory" -# The load address of the kernel image. -kernel_load_addr = 0x7008_0000 -## The file path of the kernel image. -kernel_path = "/path/arceos-aarch64-dyn.bin" -## The file path of the device tree blob (DTB). -dtb_load_addr = 0x7000_0000 -dtb_path = "/path/arceos-rk3568.dtb" -# Memory regions with format (`base_paddr`, `size`, `flags`, `map_type`). -# For `map_type`, 0 means `MAP_ALLOC`, 1 means `MAP_IDENTICAL`. -memory_regions = [ - [0x7000_0000, 0x1000_0000, 0x7, 0], # System RAM 1G MAP_IDENTICAL -] - -# -# Device specifications -# -[devices] -# The interrupt mode. -interrupt_mode = "passthrough" -# Emu_devices. -# Name Base-Ipa Ipa_len Alloc-Irq Emu-Type EmuConfig. -emu_devices = [] - -# Pass-through devices. -# Name Base-Ipa Base-Pa Length Alloc-Irq. -passthrough_devices = [ - [ - "UART2", - 0xfe66_0000, - 0xfe66_0000, - 0x10000, - 0x1, - ], - [ - "gic-v3", - 0xfd40_0000, - 0xfd40_0000, - 0x10000, - 0x1, - ], - [ - "gic-v3-its", - 0xfd44_0000, - 0xfd44_0000, - 0x100000, - 0x1, - ], -] diff --git a/configs/vms_bkp/arceos-aarch64-rk3568-smp2.toml b/configs/vms_bkp/arceos-aarch64-rk3568-smp2.toml deleted file mode 100644 index b70a70ee..00000000 --- a/configs/vms_bkp/arceos-aarch64-rk3568-smp2.toml +++ /dev/null @@ -1,73 +0,0 @@ -# Vm base info configs -# -[base] -# Guest vm id. -id = 2 -# Guest vm name. -name = "arceos" -# Virtualization type. -vm_type = 1 -# The number of virtual CPUs. -cpu_num = 2 -# The physical CPU ids. -phys_cpu_ids = [0x00, 0x100] -# Guest vm physical cpu sets. -phys_cpu_sets = [1, 2] - -# -# Vm kernel configs -# -[kernel] -# The entry point of the kernel image. -entry_point = 0x7008_0000 -# The location of image: "memory" | "fs". -# Load from memory. -image_location = "memory" -# The load address of the kernel image. -kernel_load_addr = 0x7008_0000 -## The file path of the kernel image. -kernel_path = "/path/arceos-aarch64-dyn.bin" -## The file path of the device tree blob (DTB). -dtb_load_addr = 0x7000_0000 -dtb_path = "/path/arceos-aarch64-rk3568_smp2.dtb" -# Memory regions with format (`base_paddr`, `size`, `flags`, `map_type`). -# For `map_type`, 0 means `MAP_ALLOC`, 1 means `MAP_IDENTICAL`. -memory_regions = [ - [0x7000_0000, 0x1000_0000, 0x7, 1], # System RAM 1G MAP_IDENTICAL -] - -# -# Device specifications -# -[devices] -# The interrupt mode. -interrupt_mode = "passthrough" -# Emu_devices. -# Name Base-Ipa Ipa_len Alloc-Irq Emu-Type EmuConfig. -emu_devices = [] - -# Pass-through devices. -# Name Base-Ipa Base-Pa Length Alloc-Irq. -passthrough_devices = [ - [ - "UART2", - 0xfe66_0000, - 0xfe66_0000, - 0x10000, - 0x1, - ], - [ - "gic-v3", - 0xfd40_0000, - 0xfd40_0000, - 0x10000, - 0x1, - ], - [ - "gic-v3-its", - 0xfd44_0000, - 0xfd44_0000, - 0x100000, - 0x1, - ], -] diff --git a/configs/vms_bkp/arceos-aarch64-rk3568_smp1.dts b/configs/vms_bkp/arceos-aarch64-rk3568_smp1.dts deleted file mode 100644 index d1ad3a39..00000000 --- a/configs/vms_bkp/arceos-aarch64-rk3568_smp1.dts +++ /dev/null @@ -1,87 +0,0 @@ -/dts-v1/; - -/memreserve/ 0x0000000008300000 0x000000000001c000; -/memreserve/ 0x000000000a200000 0x00000000008cf15d; -/ { - serial-number = "425ca8fc29ade692"; - compatible = "rockchip,rk3568-firefly-roc-pc\0rockchip,rk3568"; - interrupt-parent = <0x01>; - #address-cells = <0x02>; - #size-cells = <0x02>; - model = "Firefly RK3568-ROC-PC"; - - memory { - reg = <0x00 0x70000000 0x00 0x10000000>; - device_type = "memory"; - }; - - chosen { - bootargs = "earlycon=uart8250,mmio32,0xfe660000"; - }; - - aliases { - serial2 = "/serial@fe660000"; - }; - - cpus { - #address-cells = <0x02>; - #size-cells = <0x00>; - - cpu@200 { - device_type = "cpu"; - compatible = "arm,cortex-a55"; - reg = <0x00 0x200>; - enable-method = "psci"; - clocks = <0x02 0x00>; - operating-points-v2 = <0x03>; - cpu-idle-states = <0x04>; - phandle = <0x0d>; - }; - }; - - psci { - compatible = "arm,psci-1.0"; - method = "smc"; - }; - - timer { - compatible = "arm,armv8-timer"; - interrupts = <0x01 0x0d 0xf04 0x01 0x0e 0xf04 0x01 0x0b 0xf04 0x01 0x0a 0xf04>; - arm,no-tick-in-suspend; - }; - - interrupt-controller@fd400000 { - compatible = "arm,gic-v3"; - #interrupt-cells = <0x03>; - #address-cells = <0x02>; - #size-cells = <0x02>; - ranges; - interrupt-controller; - reg = <0x00 0xfd400000 0x00 0x10000 0x00 0xfd460000 0x00 0xc0000>; - interrupts = <0x01 0x09 0x04>; - phandle = <0x01>; - - interrupt-controller@fd440000 { - compatible = "arm,gic-v3-its"; - msi-controller; - #msi-cells = <0x01>; - reg = <0x00 0xfd440000 0x00 0x20000>; - status = "okay"; - phandle = <0xbe>; - }; - }; - - serial@fe660000 { - compatible = "rockchip,rk3568-uart\0snps,dw-apb-uart"; - reg = <0x00 0xfe660000 0x00 0x100>; - interrupts = <0x00 0x76 0x04>; - clocks = <0x23 0x123 0x23 0x120>; - clock-names = "baudclk\0apb_pclk"; - reg-shift = <0x02>; - reg-io-width = <0x04>; - dmas = <0x4e 0x04 0x4e 0x05>; - pinctrl-names = "default"; - pinctrl-0 = <0x10c>; - status = "okay"; - }; -}; \ No newline at end of file diff --git a/configs/vms_bkp/arceos-aarch64-rk3568_smp2.dts b/configs/vms_bkp/arceos-aarch64-rk3568_smp2.dts deleted file mode 100644 index 6da5bf8b..00000000 --- a/configs/vms_bkp/arceos-aarch64-rk3568_smp2.dts +++ /dev/null @@ -1,101 +0,0 @@ -/dts-v1/; - -/memreserve/ 0x0000000008300000 0x000000000001c000; -/memreserve/ 0x000000000a200000 0x00000000008cf15d; -/ { - serial-number = "425ca8fc29ade692"; - compatible = "rockchip,rk3568-firefly-roc-pc\0rockchip,rk3568"; - interrupt-parent = <0x01>; - #address-cells = <0x02>; - #size-cells = <0x02>; - model = "Firefly RK3568-ROC-PC"; - - memory { - reg = <0x00 0x70000000 0x00 0x10000000>; - device_type = "memory"; - }; - - chosen { - bootargs = "earlycon=uart8250,mmio32,0xfe660000"; - }; - - aliases { - serial2 = "/serial@fe660000"; - }; - - cpus { - #address-cells = <0x02>; - #size-cells = <0x00>; - - cpu@0 { - device_type = "cpu"; - compatible = "arm,cortex-a55"; - reg = <0x00 0x00>; - enable-method = "psci"; - clocks = <0x02 0x00>; - operating-points-v2 = <0x03>; - cpu-idle-states = <0x04>; - #cooling-cells = <0x02>; - dynamic-power-coefficient = <0xbb>; - cpu-supply = <0x05>; - phandle = <0x0c>; - }; - - cpu@100 { - device_type = "cpu"; - compatible = "arm,cortex-a55"; - reg = <0x00 0x100>; - enable-method = "psci"; - clocks = <0x02 0x00>; - operating-points-v2 = <0x03>; - cpu-idle-states = <0x04>; - phandle = <0x0d>; - }; - }; - - psci { - compatible = "arm,psci-1.0"; - method = "smc"; - }; - - timer { - compatible = "arm,armv8-timer"; - interrupts = <0x01 0x0d 0xf04 0x01 0x0e 0xf04 0x01 0x0b 0xf04 0x01 0x0a 0xf04>; - arm,no-tick-in-suspend; - }; - - interrupt-controller@fd400000 { - compatible = "arm,gic-v3"; - #interrupt-cells = <0x03>; - #address-cells = <0x02>; - #size-cells = <0x02>; - ranges; - interrupt-controller; - reg = <0x00 0xfd400000 0x00 0x10000 0x00 0xfd460000 0x00 0xc0000>; - interrupts = <0x01 0x09 0x04>; - phandle = <0x01>; - - interrupt-controller@fd440000 { - compatible = "arm,gic-v3-its"; - msi-controller; - #msi-cells = <0x01>; - reg = <0x00 0xfd440000 0x00 0x20000>; - status = "okay"; - phandle = <0xbe>; - }; - }; - - serial@fe660000 { - compatible = "rockchip,rk3568-uart\0snps,dw-apb-uart"; - reg = <0x00 0xfe660000 0x00 0x100>; - interrupts = <0x00 0x76 0x04>; - clocks = <0x23 0x123 0x23 0x120>; - clock-names = "baudclk\0apb_pclk"; - reg-shift = <0x02>; - reg-io-width = <0x04>; - dmas = <0x4e 0x04 0x4e 0x05>; - pinctrl-names = "default"; - pinctrl-0 = <0x10c>; - status = "okay"; - }; -}; \ No newline at end of file diff --git a/configs/vms_bkp/arceos-aarch64-smp.toml b/configs/vms_bkp/arceos-aarch64-smp.toml deleted file mode 100644 index e8c61729..00000000 --- a/configs/vms_bkp/arceos-aarch64-smp.toml +++ /dev/null @@ -1,55 +0,0 @@ -# Vm base info configs -# -[base] -# Guest vm id. -id = 1 -# Guest vm name. -name = "arceos" -# Virtualization type. -vm_type = 1 -# The number of virtual CPUs. -cpu_num = 2 -# Guest vm physical cpu sets. -phys_cpu_sets = [1, 2] - -# -# Vm kernel configs -# -[kernel] -# The entry point of the kernel image. -entry_point = 0x4008_0000 -# The file path of the kernel image. -kernel_path = "arceos-aarch64-smp.bin" -# The load address of the kernel image. -kernel_load_addr = 0x4008_0000 - -## The file path of the ramdisk image. -# ramdisk_path = "" -## The load address of the ramdisk image. -# ramdisk_load_addr = 0 -## The path of the disk image. -# disk_path = "disk.img" - -# Memory regions with format (`base_paddr`, `size`, `flags`, `map_type`). -# For `map_type`, 0 means `MAP_ALLOC`, 1 means `MAP_IDENTICAL`. -memory_regions = [ - [0x4000_0000, 0x100_0000, 0x7, 0], # Low RAM 16M 0b00111 R|W|EXECUTE MAP_ALLOC -] - -# -# Device specifications -# -[devices] -# Emu_devices. -# Name Base-Ipa Ipa_len Alloc-Irq Emu-Type EmuConfig. -emu_devices = [] - -# Pass-through devices. -# Name Base-Ipa Base-Pa Length Alloc-Irq. -passthrough_devices = [ - ["intc@8000000", 0x800_0000, 0x800_0000, 0x50_000, 0x1], - ["pl011@9000000", 0x900_0000, 0x900_0000, 0x1000, 0x1], - ["pl031@9010000", 0x901_0000, 0x901_0000, 0x1000, 0x1], - ["pl061@9030000", 0x903_0000, 0x903_0000, 0x1000, 0x1], # a003000.virtio_mmio virtio_mmio@a003000 # a003200.virtio_mmio virtio_mmio@a003200 - ["virtio_mmio", 0xa00_0000, 0xa00_0000, 0x4000, 0x1], -] diff --git a/configs/vms_bkp/arceos-aarch64.toml b/configs/vms_bkp/arceos-aarch64.toml deleted file mode 100644 index 7936825e..00000000 --- a/configs/vms_bkp/arceos-aarch64.toml +++ /dev/null @@ -1,59 +0,0 @@ -# Vm base info configs -# -[base] -# Guest vm id. -id = 2 -# Guest vm name. -name = "arceos" -# Virtualization type. -vm_type = 1 -# The number of virtual CPUs. -cpu_num = 1 -# Guest vm physical cpu sets. -phys_cpu_sets = [2] - -# -# Vm kernel configs -# -[kernel] -# The entry point of the kernel image. -entry_point = 0x4020_0000 -# The location of image: "memory" | "fs". -# Load from file system. -image_location = "fs" -# The file path of the kernel image. -kernel_path = "helloworld_aarch64-qemu-virt.bin" -# The load address of the kernel image. -kernel_load_addr = 0x4020_0000 -## Load from memory -# image_location = "memory" -## The file path of the kernel image. -# kernel_path = "" -## The file path of the device tree blob (DTB). -# dtb_path = "" -# Memory regions with format (`base_paddr`, `size`, `flags`, `map_type`). -# For `map_type`, 0 means `MAP_ALLOC`, 1 means `MAP_IDENTICAL`. -memory_regions = [ - [0x4000_0000, 0x100_0000, 0x7, 0], # Low RAM 16M 0b00111 R|W|EXECUTE -] - -# -# Device specifications -# -[devices] -# Emu_devices. -# Name Base-Ipa Ipa_len Alloc-Irq Emu-Type EmuConfig. -emu_devices = [ - ["ivc-channel", 0x3000_0000, 0x1000_0000, 0x0, 0xa, []], -] - -# Pass-through devices. -# Name Base-Ipa Base-Pa Length Alloc-Irq. -passthrough_devices = [ - ["intc@8000000", 0x800_0000, 0x800_0000, 0x50_000, 0x1], - ["pl011@9000000", 0x900_0000, 0x900_0000, 0x1000, 0x1], - ["pl011@9040000", 0x904_0000, 0x904_0000, 0x1000, 0x1], - ["pl031@9010000", 0x901_0000, 0x901_0000, 0x1000, 0x1], - ["pl061@9030000", 0x903_0000, 0x903_0000, 0x1000, 0x1], # a003000.virtio_mmio virtio_mmio@a003000 # a003200.virtio_mmio virtio_mmio@a003200 - ["virtio_mmio", 0xa00_0000, 0xa00_0000, 0x4000, 0x1], -] diff --git a/configs/vms_bkp/arceos-riscv64-smp.toml b/configs/vms_bkp/arceos-riscv64-smp.toml deleted file mode 100644 index b436c542..00000000 --- a/configs/vms_bkp/arceos-riscv64-smp.toml +++ /dev/null @@ -1,59 +0,0 @@ -# Vm base info configs -# -[base] -# Guest vm id. -id = 1 -# Guest vm name. -name = "arceos" -# Virtualization type. -vm_type = 1 -# The number of virtual CPUs. -cpu_num = 2 -# Guest vm physical cpu sets. -phys_cpu_sets = [1, 2] - -# -# Vm kernel configs -# -[kernel] -# The entry point of the kernel image. -entry_point = 0x8020_0000 -# The location of image: "memory" | "fs". -# Load from file system. -image_location = "fs" -# The file path of the kernel image. -kernel_path = "arceos-riscv64-smp.bin" -# The load address of the kernel image. -kernel_load_addr = 0x8020_0000 -# Memory regions with format (`base_paddr`, `size`, `flags`, `map_type`). -# For `map_type`, 0 means `MAP_ALLOC`, 1 means `MAP_IDENTICAL`. -memory_regions = [ - [0x8000_0000, 0x100_0000, 0xf, 0], # Low RAM 16M 0b1111 R|W|EXECUTE|U -] - -# -# Device specifications -# -[devices] -# Emu_devices. -# Name Base-Ipa Ipa_len Alloc-Irq Emu-Type EmuConfig. -emu_devices = [] - -# Pass-through devices. -# Name Base-Ipa Base-Pa Length Alloc-Irq. -passthrough_devices = [ - [ - "PLIC@c000000", - 0x0c00_0000, - 0x0c00_0000, - 0x21_0000, - 0x1, - ], - [ - "UART@10000000", - 0x1000_0000, - 0x1000_0000, - 0x1000, - 0x1, - ], -] diff --git a/configs/vms_bkp/arceos-riscv64.toml b/configs/vms_bkp/arceos-riscv64.toml deleted file mode 100644 index db89884a..00000000 --- a/configs/vms_bkp/arceos-riscv64.toml +++ /dev/null @@ -1,59 +0,0 @@ -# Vm base info configs -# -[base] -# Guest vm id. -id = 1 -# Guest vm name. -name = "arceos" -# Virtualization type. -vm_type = 1 -# The number of virtual CPUs. -cpu_num = 1 -# Guest vm physical cpu sets. -phys_cpu_sets = [1] - -# -# Vm kernel configs -# -[kernel] -# The entry point of the kernel image. -entry_point = 0x8020_0000 -# The location of image: "memory" | "fs". -# Load from file system. -image_location = "fs" -# The file path of the kernel image. -kernel_path = "arceos-riscv64.bin" -# The load address of the kernel image. -kernel_load_addr = 0x8020_0000 -# Memory regions with format (`base_paddr`, `size`, `flags`, `map_type`). -# For `map_type`, 0 means `MAP_ALLOC`, 1 means `MAP_IDENTICAL`. -memory_regions = [ - [0x8000_0000, 0x100_0000, 0xf, 0], # Low RAM 16M 0b1111 R|W|EXECUTE|U -] - -# -# Device specifications -# -[devices] -# Emu_devices. -# Name Base-Ipa Ipa_len Alloc-Irq Emu-Type EmuConfig. -emu_devices = [] - -# Pass-through devices. -# Name Base-Ipa Base-Pa Length Alloc-Irq. -passthrough_devices = [ - [ - "PLIC@c000000", - 0x0c00_0000, - 0x0c00_0000, - 0x21_0000, - 0x1, - ], - [ - "UART@10000000", - 0x1000_0000, - 0x1000_0000, - 0x1000, - 0x1, - ], -] diff --git a/configs/vms_bkp/arceos-rk3588-aarch64-vm2.toml b/configs/vms_bkp/arceos-rk3588-aarch64-vm2.toml deleted file mode 100644 index b5093442..00000000 --- a/configs/vms_bkp/arceos-rk3588-aarch64-vm2.toml +++ /dev/null @@ -1,49 +0,0 @@ -# Vm base info configs -# -[base] -# Guest vm id. -id = 2 -# Guest vm name. -name = "arceos" -# Virtualization type. -vm_type = 1 -# The number of virtual CPUs. -cpu_num = 1 -# Guest vm physical cpu sets. -phys_cpu_sets = [4] - -# -# Vm kernel configs -# -[kernel] -# The entry point of the kernel image. -entry_point = 0x1_0048_0000 -# The load address of the kernel image. -kernel_load_addr = 0x1_0048_0000 -# The load address of the device tree blob (DTB). -dtb_load_addr = 0x1_1000_0000 -# The location of image: "memory" | "fs". -# Load from memory -image_location = "memory" -# The file path of the kernel image. -kernel_path = "gicv3_tester_aarch64-rk3588j-guest.bin" -# The file path of the device tree blob (DTB). -dtb_path = "aio-rk3588-jd4-vm2.dtb" -# Memory regions with format (`base_paddr`, `size`, `flags`, `map_type`). -# For `map_type`, 0 means `MAP_ALLOC`, 1 means `MAP_IDENTICAL`. -memory_regions = [] - -# -# Device specifications -# -[devices] -# Emu_devices. -# Name Base-Ipa Ipa_len Alloc-Irq Emu-Type EmuConfig. -emu_devices = [] - -# Pass-through devices. -# Name Base-Ipa Base-Pa Length Alloc-Irq. -passthrough_devices = [ - ["uart@feb40000", 0xfeb4_0000, 0xfeb4_0000, 0x1000, 0x1], - ["uart@feb50000", 0xfeb5_0000, 0xfeb4_0000, 0x1000, 0x1], -] diff --git a/configs/vms_bkp/arceos-x86_64.toml b/configs/vms_bkp/arceos-x86_64.toml deleted file mode 100644 index 27ab7f3a..00000000 --- a/configs/vms_bkp/arceos-x86_64.toml +++ /dev/null @@ -1,78 +0,0 @@ -# Vm base info configs -# -[base] -# Guest vm id. -id = 1 -# Guest vm name. -name = "arceos" -# Virtualization type. -vm_type = 1 -# The number of virtual CPUs. -cpu_num = 1 -# Guest vm physical cpu sets. -phys_cpu_sets = [1] - -# -# Vm kernel configs -# -[kernel] -# The entry point of the kernel image. -entry_point = 0x20_0000 -# The location of image: "memory" | "fs". -# Load from file system. -image_location = "fs" -# The file path of the BIOS image. -bios_path = "axvm-bios.bin" -# The load address of the BIOS image. -bios_load_addr = 0x8000 -# The file path of the kernel image. -kernel_path = "guest-test_x86-pc.bin" -# The load address of the kernel image. -kernel_load_addr = 0x20_0000 - -## The file path of the ramdisk image. -# ramdisk_path = "" -## The load address of the ramdisk image. -# ramdisk_load_addr = 0 -## The path of the disk image. -# disk_path = "disk.img" - -# Memory regions with format (`base_paddr`, `size`, `flags`, `map_type`). -# For `map_type`, 0 means `MAP_ALLOC`, 1 means `MAP_IDENTICAL`. -memory_regions = [ - [0x0000_0000, 0x100_0000, 0x7, 0], # Low RAM 16M 0b111 -] - -# -# Device specifications -# -[devices] -# Emu_devices. -# Name Base-Ipa Ipa_len Alloc-Irq Emu-Type EmuConfig. -emu_devices = [] - -# Pass-through devices. -# Name Base-Ipa Base-Pa Length Alloc-Irq. -passthrough_devices = [ - [ - "IO APIC", - 0xfec0_0000, - 0xfec0_0000, - 0x1000, - 0x1, - ], - [ - "Local APIC", - 0xfee0_0000, - 0xfee0_0000, - 0x1000, - 0x1, - ], - [ - "HPET", - 0xfed0_0000, - 0xfed0_0000, - 0x1000, - 0x1, - ], -] diff --git a/configs/vms_bkp/hvconfig-nimbos-aarch64.toml b/configs/vms_bkp/hvconfig-nimbos-aarch64.toml deleted file mode 100644 index fde67f0b..00000000 --- a/configs/vms_bkp/hvconfig-nimbos-aarch64.toml +++ /dev/null @@ -1,4 +0,0 @@ -arceos_args = ["DISK_IMG=nimbos-aarch64.img", "BUS=mmio", "BLK=y", "MEM=8g", "LOG=debug"] -features = ["fs"] -plat = "aarch64-generic" -vmconfigs = ["configs/vms/nimbos-aarch64.toml"] diff --git a/configs/vms_bkp/linux-a1000-aarch64-smp8.toml b/configs/vms_bkp/linux-a1000-aarch64-smp8.toml deleted file mode 100644 index db0a6f02..00000000 --- a/configs/vms_bkp/linux-a1000-aarch64-smp8.toml +++ /dev/null @@ -1,58 +0,0 @@ -# Vm base info configs -# -[base] -# Guest vm id. -id = 1 -# Guest vm name. -name = "linux-a1000" -# Virtualization type. -vm_type = 1 -# The number of virtual CPUs. -cpu_num = 8 -# The physical CPU ids. -phys_cpu_ids = [0x00, 0x100, 0x200, 0x300, 0x400, 0x500, 0x600, 0x700] -# Guest vm physical cpu sets. -phys_cpu_sets = [1, 2, 4, 8, 16, 32, 64, 128] - -# -# Vm kernel configs -# -[kernel] -# The entry point of the kernel image. -entry_point = 0x8100_0000 -# The location of image: "memory" | "fs". -## Load from memory. -image_location = "memory" -# The file path of the kernel image. -kernel_path = "path/to/kernel" -# The load address of the kernel image. -kernel_load_addr = 0x8100_0000 -# The file path of the device tree blob (DTB). -dtb_path = "path/to/dtb" -# The load address of the device tree blob (DTB). -dtb_load_addr = 0x82e0_0000 - -## The file path of the ramdisk image. -# ramdisk_path = "" -## The load address of the ramdisk image. -# ramdisk_load_addr = 0 -## The path of the disk image. -# disk_path = "disk.img" - -# Memory regions with format (`base_paddr`, `size`, `flags`). -memory_regions = [ - [0x8000_0000, 0x7000_0000, 0x7, 1], #ram 1792MB -] - -# -# Device specifications -# -[devices] -# Emu_devices. -# Name Base-Ipa Ipa_len Alloc-Irq Emu-Type EmuConfig. -emu_devices = [] - -# Pass-through devices. -passthrough_devices = [ - ["most-devices", 0x0, 0x0, 0x8000_0000, 0x1], -] diff --git a/configs/vms_bkp/linux-aarch64-e2000_smp1.dts b/configs/vms_bkp/linux-aarch64-e2000_smp1.dts deleted file mode 100644 index 18d68f0f..00000000 --- a/configs/vms_bkp/linux-aarch64-e2000_smp1.dts +++ /dev/null @@ -1,1302 +0,0 @@ -/dts-v1/; - -/memreserve/ 0x0000000080000000 0x0000000000010000; -/ { - compatible = "phytium,pe2204"; - interrupt-parent = <0x01>; - #address-cells = <0x02>; - #size-cells = <0x02>; - model = "Phytium Pi Board"; - - // memory@01 { - // device_type = "memory"; - // reg = <0x20 0x40000000 0x00 0x40000000>; - // numa-node-id = <0x00>; - // }; - - aliases { - serial0 = "/soc/uart@2800c000"; - serial1 = "/soc/uart@2800d000"; - serial2 = "/soc/uart@2800e000"; - serial3 = "/soc/uart@2800f000"; - ethernet0 = "/soc/ethernet@3200c000"; - ethernet1 = "/soc/ethernet@3200e000"; - ethernet2 = "/soc/ethernet@32010000"; - ethernet3 = "/soc/ethernet@32012000"; - serial4 = "/soc/uart@28014000"; - serial5 = "/soc/uart@2802A000"; - serial6 = "/soc/uart@28032000"; - }; - - psci { - compatible = "arm,psci-1.0"; - method = "smc"; - cpu_suspend = <0xc4000001>; - cpu_off = <0x84000002>; - cpu_on = <0xc4000003>; - sys_poweroff = <0x84000008>; - sys_reset = <0x84000009>; - }; - - firmware { - - scmi { - compatible = "arm,scmi"; - mboxes = <0x02 0x00>; - mbox-names = "tx"; - shmem = <0x03>; - #address-cells = <0x01>; - #size-cells = <0x00>; - - protocol@13 { - reg = <0x13>; - #clock-cells = <0x01>; - phandle = <0x09>; - }; - - protocol@15 { - reg = <0x15>; - #thermal-sensor-cells = <0x01>; - phandle = <0x04>; - }; - }; - - optee { - compatible = "linaro,optee-tz"; - method = "smc"; - }; - }; - - thermal-zones { - - sensor0 { - polling-delay-passive = <0x64>; - polling-delay = <0x3e8>; - thermal-sensors = <0x04 0x00>; - }; - - sensor1 { - polling-delay-passive = <0x64>; - polling-delay = <0x3e8>; - thermal-sensors = <0x04 0x01>; - }; - }; - - cpus { - #address-cells = <0x02>; - #size-cells = <0x00>; - - cpu-map { - - // cluster0 { - - // core0 { - // cpu = <0x05>; - // }; - // }; - - cluster1 { - - core0 { - cpu = <0x06>; - }; - }; - - // cluster2 { - - // core0 { - // cpu = <0x07>; - // }; - - // core1 { - // cpu = <0x08>; - // }; - // }; - }; - - // cpu@0 { - // device_type = "cpu"; - // compatible = "phytium,ftc310\0arm,armv8"; - // reg = <0x00 0x200>; - // enable-method = "psci"; - // clocks = <0x09 0x02>; - // capacity-dmips-mhz = <0xb22>; - // phandle = <0x07>; - // }; - - // cpu@1 { - // device_type = "cpu"; - // compatible = "phytium,ftc310\0arm,armv8"; - // reg = <0x00 0x201>; - // enable-method = "psci"; - // clocks = <0x09 0x02>; - // capacity-dmips-mhz = <0xb22>; - // phandle = <0x08>; - // }; - - // cpu@100 { - // device_type = "cpu"; - // compatible = "phytium,ftc664\0arm,armv8"; - // reg = <0x00 0x00>; - // enable-method = "psci"; - // clocks = <0x09 0x00>; - // capacity-dmips-mhz = <0x161c>; - // phandle = <0x05>; - // }; - - cpu@101 { - device_type = "cpu"; - compatible = "phytium,ftc664\0arm,armv8"; - reg = <0x00 0x100>; - enable-method = "psci"; - clocks = <0x09 0x01>; - capacity-dmips-mhz = <0x161c>; - phandle = <0x06>; - }; - }; - - interrupt-controller@30800000 { - compatible = "arm,gic-v3"; - #interrupt-cells = <0x03>; - #address-cells = <0x02>; - #size-cells = <0x02>; - ranges; - interrupt-controller; - reg = <0x00 0x30800000 0x00 0x20000 0x00 0x30880000 0x00 0x80000 0x00 0x30840000 0x00 0x10000 0x00 0x30850000 0x00 0x10000 0x00 0x30860000 0x00 0x10000>; - interrupts = <0x01 0x09 0x08>; - phandle = <0x01>; - - gic-its@30820000 { - compatible = "arm,gic-v3-its"; - msi-controller; - reg = <0x00 0x30820000 0x00 0x20000>; - phandle = <0x0f>; - }; - }; - - pmu { - compatible = "arm,armv8-pmuv3"; - interrupts = <0x01 0x07 0x08>; - }; - - timer { - compatible = "arm,armv8-timer"; - interrupts = <0x01 0x0d 0x08 0x01 0x0e 0x08 0x01 0x0b 0x08 0x01 0x0a 0x08>; - clock-frequency = <0x2faf080>; - }; - - clocks { - #address-cells = <0x02>; - #size-cells = <0x02>; - ranges; - - clk48mhz { - compatible = "fixed-clock"; - #clock-cells = <0x00>; - clock-frequency = <0x2dc6c00>; - phandle = <0x13>; - }; - - clk50mhz { - compatible = "fixed-clock"; - #clock-cells = <0x00>; - clock-frequency = <0x2faf080>; - phandle = <0x0d>; - }; - - clk100mhz { - compatible = "fixed-clock"; - #clock-cells = <0x00>; - clock-frequency = <0x5f5e100>; - phandle = <0x0c>; - }; - - clk200mhz { - compatible = "fixed-clock"; - #clock-cells = <0x00>; - clock-frequency = <0xbebc200>; - phandle = <0x11>; - }; - - clk250mhz { - compatible = "fixed-clock"; - #clock-cells = <0x00>; - clock-frequency = <0xee6b280>; - phandle = <0x12>; - }; - - clk300mhz { - compatible = "fixed-clock"; - #clock-cells = <0x00>; - clock-frequency = <0x11e1a300>; - phandle = <0x0b>; - }; - - clk600mhz { - compatible = "fixed-clock"; - #clock-cells = <0x00>; - clock-frequency = <0x23c34600>; - phandle = <0x0e>; - }; - - clk1200mhz { - compatible = "fixed-clock"; - #clock-cells = <0x00>; - clock-frequency = <0x47868c00>; - phandle = <0x0a>; - }; - }; - - iommu@30000000 { - compatible = "arm,smmu-v3"; - reg = <0x00 0x30000000 0x00 0x800000>; - interrupts = <0x00 0xf0 0x01 0x00 0xef 0x01 0x00 0xec 0x01 0x00 0xf2 0x01>; - interrupt-names = "eventq\0priq\0cmdq-sync\0gerror"; - dma-coherent; - #iommu-cells = <0x01>; - phandle = <0x10>; - }; - - soc { - compatible = "simple-bus"; - #address-cells = <0x02>; - #size-cells = <0x02>; - dma-coherent; - ranges; - - mmc@28000000 { - compatible = "phytium,mci"; - reg = <0x00 0x28000000 0x00 0x1000>; - interrupts = <0x00 0x48 0x04>; - clocks = <0x0a>; - clock-names = "phytium_mci_clk"; - status = "okay"; - bus-width = <0x04>; - max-frequency = <0x2faf080>; - cap-sdio-irq; - cap-sd-highspeed; - no-mmc; - }; - - mmc@28001000 { - compatible = "phytium,mci"; - reg = <0x00 0x28001000 0x00 0x1000>; - interrupts = <0x00 0x49 0x04>; - clocks = <0x0a>; - clock-names = "phytium_mci_clk"; - status = "okay"; - bus-width = <0x04>; - max-frequency = <0x2faf080>; - cap-sdio-irq; - cap-sd-highspeed; - no-mmc; - no-sd; - non-removable; - }; - - nand@28002000 { - compatible = "phytium,nfc"; - reg = <0x00 0x28002000 0x00 0x1000>; - interrupts = <0x00 0x4a 0x04>; - status = "disabled"; - }; - - ddma@28003000 { - compatible = "phytium,ddma"; - reg = <0x00 0x28003000 0x00 0x1000>; - interrupts = <0x00 0x4b 0x04>; - #dma-cells = <0x02>; - dma-channels = <0x08>; - }; - - ddma@28004000 { - compatible = "phytium,ddma"; - reg = <0x00 0x28004000 0x00 0x1000>; - interrupts = <0x00 0x4c 0x04>; - #dma-cells = <0x02>; - dma-channels = <0x08>; - }; - - spi@28008000 { - compatible = "phytium,qspi-nor"; - reg = <0x00 0x28008000 0x00 0x1000 0x00 0x00 0x00 0xfffffff>; - reg-names = "qspi\0qspi_mm"; - clocks = <0x0b>; - status = "okay"; - #address-cells = <0x01>; - #size-cells = <0x00>; - - flash@0 { - compatible = "jedec,spi-nor"; - reg = <0x00>; - spi-rx-bus-width = <0x01>; - spi-max-frequency = <0x1312d00>; - status = "okay"; - }; - }; - - uart@2800c000 { - compatible = "arm,pl011\0arm,primecell"; - reg = <0x00 0x2800c000 0x00 0x1000>; - interrupts = <0x00 0x53 0x04>; - clocks = <0x0c 0x0c>; - clock-names = "uartclk\0apb_pclk"; - status = "okay"; - }; - - uart@2800d000 { - compatible = "arm,pl011\0arm,primecell"; - reg = <0x00 0x2800d000 0x00 0x1000>; - interrupts = <0x00 0x54 0x04>; - clocks = <0x0c 0x0c>; - clock-names = "uartclk\0apb_pclk"; - status = "okay"; - }; - - uart@2800e000 { - compatible = "arm,pl011\0arm,primecell"; - reg = <0x00 0x2800e000 0x00 0x1000>; - interrupts = <0x00 0x55 0x04>; - clocks = <0x0c 0x0c>; - clock-names = "uartclk\0apb_pclk"; - status = "okay"; - }; - - uart@2800f000 { - compatible = "arm,pl011\0arm,primecell"; - reg = <0x00 0x2800f000 0x00 0x1000>; - interrupts = <0x00 0x56 0x04>; - clocks = <0x0c 0x0c>; - clock-names = "uartclk\0apb_pclk"; - status = "okay"; - }; - - lpc@28010000 { - compatible = "simple-mfd\0syscon"; - reg = <0x00 0x28010000 0x00 0x1000>; - reg-io-width = <0x04>; - #address-cells = <0x01>; - #size-cells = <0x01>; - ranges = <0x00 0x00 0x28010000 0x1000>; - - kcs@24 { - compatible = "phytium,kcs-bmc"; - reg = <0x24 0x01 0x30 0x01 0x3c 0x01>; - interrupts = <0x00 0x58 0x04>; - status = "disabled"; - }; - - kcs@28 { - compatible = "phytium,kcs-bmc"; - reg = <0x28 0x01 0x34 0x01 0x40 0x01>; - interrupts = <0x00 0x58 0x04>; - status = "disabled"; - }; - - kcs@2c { - compatible = "phytium,kcs-bmc"; - reg = <0x2c 0x01 0x38 0x01 0x44 0x01>; - interrupts = <0x00 0x58 0x04>; - status = "disabled"; - }; - - kcs@8c { - compatible = "phytium,kcs-bmc"; - reg = <0x8c 0x01 0x90 0x01 0x94 0x01>; - interrupts = <0x00 0x58 0x04>; - status = "disabled"; - }; - - bt@48 { - compatible = "phytium,bt-bmc"; - reg = <0x48 0x20>; - interrupts = <0x00 0x58 0x04>; - status = "disabled"; - }; - }; - - gpio@28034000 { - compatible = "phytium,gpio"; - reg = <0x00 0x28034000 0x00 0x1000>; - interrupts = <0x00 0x6c 0x04 0x00 0x6d 0x04 0x00 0x6e 0x04 0x00 0x6f 0x04 0x00 0x70 0x04 0x00 0x71 0x04 0x00 0x72 0x04 0x00 0x73 0x04 0x00 0x74 0x04 0x00 0x75 0x04 0x00 0x76 0x04 0x00 0x77 0x04 0x00 0x78 0x04 0x00 0x79 0x04 0x00 0x7a 0x04 0x00 0x7b 0x04>; - gpio-controller; - #gpio-cells = <0x02>; - #address-cells = <0x01>; - #size-cells = <0x00>; - status = "okay"; - - porta { - compatible = "phytium,gpio-port"; - reg = <0x00>; - ngpios = <0x10>; - }; - }; - - gpio@28035000 { - compatible = "phytium,gpio"; - reg = <0x00 0x28035000 0x00 0x1000>; - interrupts = <0x00 0x7c 0x04 0x00 0x7d 0x04 0x00 0x7e 0x04 0x00 0x7f 0x04 0x00 0x80 0x04 0x00 0x81 0x04 0x00 0x82 0x04 0x00 0x83 0x04 0x00 0x84 0x04 0x00 0x85 0x04 0x00 0x86 0x04 0x00 0x87 0x04 0x00 0x88 0x04 0x00 0x89 0x04 0x00 0x8a 0x04 0x00 0x8b 0x04>; - gpio-controller; - #gpio-cells = <0x02>; - #address-cells = <0x01>; - #size-cells = <0x00>; - status = "okay"; - phandle = <0x14>; - - porta { - compatible = "phytium,gpio-port"; - reg = <0x00>; - ngpios = <0x10>; - }; - }; - - gpio@28036000 { - compatible = "phytium,gpio"; - reg = <0x00 0x28036000 0x00 0x1000>; - interrupts = <0x00 0x8c 0x04 0x00 0x8d 0x04 0x00 0x8e 0x04 0x00 0x8f 0x04 0x00 0x90 0x04 0x00 0x91 0x04 0x00 0x92 0x04 0x00 0x93 0x04 0x00 0x94 0x04 0x00 0x95 0x04 0x00 0x96 0x04 0x00 0x97 0x04 0x00 0x98 0x04 0x00 0x99 0x04 0x00 0x9a 0x04 0x00 0x9b 0x04>; - gpio-controller; - #gpio-cells = <0x02>; - #address-cells = <0x01>; - #size-cells = <0x00>; - status = "okay"; - phandle = <0x15>; - - porta { - compatible = "phytium,gpio-port"; - reg = <0x00>; - ngpios = <0x10>; - }; - }; - - gpio@28037000 { - compatible = "phytium,gpio"; - reg = <0x00 0x28037000 0x00 0x1000>; - interrupts = <0x00 0x9c 0x04>; - gpio-controller; - #gpio-cells = <0x02>; - #address-cells = <0x01>; - #size-cells = <0x00>; - status = "okay"; - - porta { - compatible = "phytium,gpio-port"; - reg = <0x00>; - ngpios = <0x10>; - }; - }; - - gpio@28038000 { - compatible = "phytium,gpio"; - reg = <0x00 0x28038000 0x00 0x1000>; - interrupts = <0x00 0x9d 0x04>; - gpio-controller; - #gpio-cells = <0x02>; - #address-cells = <0x01>; - #size-cells = <0x00>; - status = "okay"; - - porta { - compatible = "phytium,gpio-port"; - reg = <0x00>; - ngpios = <0x10>; - }; - }; - - gpio@28039000 { - compatible = "phytium,gpio"; - reg = <0x00 0x28039000 0x00 0x1000>; - interrupts = <0x00 0x9e 0x04>; - gpio-controller; - #gpio-cells = <0x02>; - #address-cells = <0x01>; - #size-cells = <0x00>; - status = "okay"; - - porta { - compatible = "phytium,gpio-port"; - reg = <0x00>; - ngpios = <0x10>; - }; - }; - - spi@2803a000 { - compatible = "phytium,spi"; - reg = <0x00 0x2803a000 0x00 0x1000>; - interrupts = <0x00 0x9f 0x04>; - clocks = <0x0d>; - num-cs = <0x04>; - #address-cells = <0x01>; - #size-cells = <0x00>; - status = "okay"; - global-cs = <0x01>; - - spidev@0 { - compatible = "spidev"; - reg = <0x00>; - spi-max-frequency = <0x2faf080>; - status = "disabled"; - }; - }; - - spi@2803b000 { - compatible = "phytium,spi"; - reg = <0x00 0x2803b000 0x00 0x1000>; - interrupts = <0x00 0xa0 0x04>; - clocks = <0x0d>; - num-cs = <0x04>; - #address-cells = <0x01>; - #size-cells = <0x00>; - status = "disabled"; - }; - - spi@2803c000 { - compatible = "phytium,spi"; - reg = <0x00 0x2803c000 0x00 0x1000>; - interrupts = <0x00 0xa1 0x04>; - clocks = <0x0d>; - num-cs = <0x04>; - #address-cells = <0x01>; - #size-cells = <0x00>; - status = "disabled"; - }; - - spi@2803d000 { - compatible = "phytium,spi"; - reg = <0x00 0x2803d000 0x00 0x1000>; - interrupts = <0x00 0xa2 0x04>; - clocks = <0x0d>; - num-cs = <0x04>; - #address-cells = <0x01>; - #size-cells = <0x00>; - status = "disabled"; - }; - - watchdog@28040000 { - compatible = "arm,sbsa-gwdt"; - reg = <0x00 0x28041000 0x00 0x1000 0x00 0x28040000 0x00 0x1000>; - interrupts = <0x00 0xa4 0x04>; - timeout-sec = <0x1e>; - status = "okay"; - }; - - watchdog@28042000 { - compatible = "arm,sbsa-gwdt"; - reg = <0x00 0x28043000 0x00 0x1000 0x00 0x28042000 0x00 0x1000>; - interrupts = <0x00 0xa5 0x04>; - timeout-sec = <0x1e>; - status = "okay"; - }; - - pwm@2804a000 { - compatible = "phytium,pwm"; - reg = <0x00 0x2804a000 0x00 0x1000>; - interrupts = <0x00 0xad 0x04>; - clocks = <0x0d>; - status = "okay"; - phytium,db = <0x00 0x00 0x64 0x3e8 0x3e8 0x00>; - }; - - pwm@2804b000 { - compatible = "phytium,pwm"; - reg = <0x00 0x2804b000 0x00 0x1000>; - interrupts = <0x00 0xae 0x04>; - clocks = <0x0d>; - status = "okay"; - phytium,db = <0x00 0x00 0x64 0x3e8 0x3e8 0x00>; - }; - - tacho@28054000 { - compatible = "phytium,tacho"; - reg = <0x00 0x28054000 0x00 0x1000>; - interrupts = <0x00 0xc2 0x04>; - clocks = <0x0d>; - status = "disabled"; - }; - - tacho@28055000 { - compatible = "phytium,tacho"; - reg = <0x00 0x28055000 0x00 0x1000>; - interrupts = <0x00 0xc3 0x04>; - clocks = <0x0d>; - status = "disabled"; - }; - - tacho@28056000 { - compatible = "phytium,tacho"; - reg = <0x00 0x28056000 0x00 0x1000>; - interrupts = <0x00 0xc4 0x04>; - clocks = <0x0d>; - status = "disabled"; - }; - - tacho@28057000 { - compatible = "phytium,tacho"; - reg = <0x00 0x28057000 0x00 0x1000>; - interrupts = <0x00 0xc5 0x04>; - clocks = <0x0d>; - status = "disabled"; - }; - - tacho@28058000 { - compatible = "phytium,tacho"; - reg = <0x00 0x28058000 0x00 0x1000>; - interrupts = <0x00 0xc6 0x04>; - clocks = <0x0d>; - status = "disabled"; - }; - - tacho@28059000 { - compatible = "phytium,tacho"; - reg = <0x00 0x28059000 0x00 0x1000>; - interrupts = <0x00 0xc7 0x04>; - clocks = <0x0d>; - status = "disabled"; - }; - - tacho@2805a000 { - compatible = "phytium,tacho"; - reg = <0x00 0x2805a000 0x00 0x1000>; - interrupts = <0x00 0xc8 0x04>; - clocks = <0x0d>; - status = "disabled"; - }; - - tacho@2805b000 { - compatible = "phytium,tacho"; - reg = <0x00 0x2805b000 0x00 0x1000>; - interrupts = <0x00 0xc9 0x04>; - clocks = <0x0d>; - status = "disabled"; - }; - - tacho@2805c000 { - compatible = "phytium,tacho"; - reg = <0x00 0x2805c000 0x00 0x1000>; - interrupts = <0x00 0xca 0x04>; - clocks = <0x0d>; - status = "disabled"; - }; - - tacho@2805d000 { - compatible = "phytium,tacho"; - reg = <0x00 0x2805d000 0x00 0x1000>; - interrupts = <0x00 0xcb 0x04>; - clocks = <0x0d>; - status = "disabled"; - }; - - tacho@2805e000 { - compatible = "phytium,tacho"; - reg = <0x00 0x2805e000 0x00 0x1000>; - interrupts = <0x00 0xcc 0x04>; - clocks = <0x0d>; - status = "disabled"; - }; - - tacho@2805f000 { - compatible = "phytium,tacho"; - reg = <0x00 0x2805f000 0x00 0x1000>; - interrupts = <0x00 0xcd 0x04>; - clocks = <0x0d>; - status = "disabled"; - }; - - tacho@28060000 { - compatible = "phytium,tacho"; - reg = <0x00 0x28060000 0x00 0x1000>; - interrupts = <0x00 0xce 0x04>; - clocks = <0x0d>; - status = "disabled"; - }; - - tacho@28061000 { - compatible = "phytium,tacho"; - reg = <0x00 0x28061000 0x00 0x1000>; - interrupts = <0x00 0xcf 0x04>; - clocks = <0x0d>; - status = "disabled"; - }; - - tacho@28062000 { - compatible = "phytium,tacho"; - reg = <0x00 0x28062000 0x00 0x1000>; - interrupts = <0x00 0xd0 0x04>; - clocks = <0x0d>; - status = "disabled"; - }; - - tacho@28063000 { - compatible = "phytium,tacho"; - reg = <0x00 0x28063000 0x00 0x1000>; - interrupts = <0x00 0xd1 0x04>; - clocks = <0x0d>; - status = "disabled"; - }; - - tacho@28064000 { - compatible = "phytium,tacho"; - reg = <0x00 0x28064000 0x00 0x1000>; - interrupts = <0x00 0xd2 0x04>; - clocks = <0x0d>; - status = "disabled"; - }; - - tacho@28065000 { - compatible = "phytium,tacho"; - reg = <0x00 0x28065000 0x00 0x1000>; - interrupts = <0x00 0xd3 0x04>; - clocks = <0x0d>; - status = "disabled"; - }; - - tacho@28066000 { - compatible = "phytium,tacho"; - reg = <0x00 0x28066000 0x00 0x1000>; - interrupts = <0x00 0xd4 0x04>; - clocks = <0x0d>; - status = "disabled"; - }; - - tacho@28067000 { - compatible = "phytium,tacho"; - reg = <0x00 0x28067000 0x00 0x1000>; - interrupts = <0x00 0xd5 0x04>; - clocks = <0x0d>; - status = "disabled"; - }; - - tacho@28068000 { - compatible = "phytium,tacho"; - reg = <0x00 0x28068000 0x00 0x1000>; - interrupts = <0x00 0xd6 0x04>; - clocks = <0x0d>; - status = "disabled"; - }; - - tacho@28069000 { - compatible = "phytium,tacho"; - reg = <0x00 0x28069000 0x00 0x1000>; - interrupts = <0x00 0xd7 0x04>; - clocks = <0x0d>; - status = "disabled"; - }; - - tacho@2806a000 { - compatible = "phytium,tacho"; - reg = <0x00 0x2806a000 0x00 0x1000>; - interrupts = <0x00 0xd8 0x04>; - clocks = <0x0d>; - status = "disabled"; - }; - - tacho@2806b000 { - compatible = "phytium,tacho"; - reg = <0x00 0x2806b000 0x00 0x1000>; - interrupts = <0x00 0xd9 0x04>; - clocks = <0x0d>; - status = "disabled"; - }; - - tacho@2806c000 { - compatible = "phytium,tacho"; - reg = <0x00 0x2806c000 0x00 0x1000>; - interrupts = <0x00 0xda 0x04>; - clocks = <0x0d>; - status = "disabled"; - }; - - tacho@2806d000 { - compatible = "phytium,tacho"; - reg = <0x00 0x2806d000 0x00 0x1000>; - interrupts = <0x00 0xdb 0x04>; - clocks = <0x0d>; - status = "disabled"; - }; - - tacho@2806e000 { - compatible = "phytium,tacho"; - reg = <0x00 0x2806e000 0x00 0x1000>; - interrupts = <0x00 0xdc 0x04>; - clocks = <0x0d>; - status = "disabled"; - }; - - tacho@2806f000 { - compatible = "phytium,tacho"; - reg = <0x00 0x2806f000 0x00 0x1000>; - interrupts = <0x00 0xdd 0x04>; - clocks = <0x0d>; - status = "disabled"; - }; - - tacho@28070000 { - compatible = "phytium,tacho"; - reg = <0x00 0x28070000 0x00 0x1000>; - interrupts = <0x00 0xde 0x04>; - clocks = <0x0d>; - status = "disabled"; - }; - - tacho@28071000 { - compatible = "phytium,tacho"; - reg = <0x00 0x28071000 0x00 0x1000>; - interrupts = <0x00 0xdf 0x04>; - clocks = <0x0d>; - status = "disabled"; - }; - - tacho@28072000 { - compatible = "phytium,tacho"; - reg = <0x00 0x28072000 0x00 0x1000>; - interrupts = <0x00 0xe0 0x04>; - clocks = <0x0d>; - status = "disabled"; - }; - - tacho@28073000 { - compatible = "phytium,tacho"; - reg = <0x00 0x28073000 0x00 0x1000>; - interrupts = <0x00 0xe1 0x04>; - clocks = <0x0d>; - status = "disabled"; - }; - - tacho@28074000 { - compatible = "phytium,tacho"; - reg = <0x00 0x28074000 0x00 0x1000>; - interrupts = <0x00 0xe2 0x04>; - clocks = <0x0d>; - status = "disabled"; - }; - - tacho@28075000 { - compatible = "phytium,tacho"; - reg = <0x00 0x28075000 0x00 0x1000>; - interrupts = <0x00 0xe3 0x04>; - clocks = <0x0d>; - status = "disabled"; - }; - - tacho@28076000 { - compatible = "phytium,tacho"; - reg = <0x00 0x28076000 0x00 0x1000>; - interrupts = <0x00 0xe4 0x04>; - clocks = <0x0d>; - status = "disabled"; - }; - - tacho@28077000 { - compatible = "phytium,tacho"; - reg = <0x00 0x28077000 0x00 0x1000>; - interrupts = <0x00 0xe5 0x04>; - clocks = <0x0d>; - status = "disabled"; - }; - - tacho@28078000 { - compatible = "phytium,tacho"; - reg = <0x00 0x28078000 0x00 0x1000>; - interrupts = <0x00 0xe6 0x04>; - clocks = <0x0d>; - status = "disabled"; - }; - - tacho@28079000 { - compatible = "phytium,tacho"; - reg = <0x00 0x28079000 0x00 0x1000>; - interrupts = <0x00 0xe7 0x04>; - clocks = <0x0d>; - status = "disabled"; - }; - - usb2@31800000 { - compatible = "phytium,usb2"; - reg = <0x00 0x31800000 0x00 0x80000 0x00 0x31990000 0x00 0x10000>; - interrupts = <0x00 0x20 0x04>; - status = "okay"; - dr_mode = "host"; - }; - - usb2@31880000 { - compatible = "phytium,usb2"; - reg = <0x00 0x31880000 0x00 0x80000 0x00 0x319a0000 0x00 0x10000>; - interrupts = <0x00 0x21 0x04>; - status = "disabled"; - dr_mode = "peripheral"; - }; - - usb2@31900000 { - compatible = "phytium,usb2"; - reg = <0x00 0x31900000 0x00 0x80000 0x00 0x319b0000 0x00 0x10000>; - interrupts = <0x00 0x22 0x04>; - status = "disabled"; - dr_mode = "peripheral"; - }; - - usb2@32800000 { - compatible = "phytium,usb2"; - reg = <0x00 0x32800000 0x00 0x40000 0x00 0x32880000 0x00 0x40000>; - interrupts = <0x00 0x0e 0x04>; - status = "okay"; - dr_mode = "host"; - }; - - usb2@32840000 { - compatible = "phytium,usb2"; - reg = <0x00 0x32840000 0x00 0x40000 0x00 0x328c0000 0x00 0x40000>; - interrupts = <0x00 0x0f 0x04>; - status = "okay"; - dr_mode = "host"; - }; - - dc@32000000 { - compatible = "phytium,dc"; - reg = <0x00 0x32000000 0x00 0x8000>; - interrupts = <0x00 0x2c 0x04>; - status = "okay"; - pipe_mask = [01]; - edp_mask = [00]; - }; - - i2s_dp0@32009000 { - compatible = "phytium,i2s"; - reg = <0x00 0x32009000 0x00 0x1000 0x00 0x32008000 0x00 0x1000>; - interrupts = <0x00 0x2f 0x04>; - clocks = <0x0e>; - clock-names = "i2s_clk"; - dai-name = "phytium-i2s-dp0"; - status = "okay"; - }; - - i2s_dp1@3200B000 { - compatible = "phytium,i2s"; - reg = <0x00 0x3200b000 0x00 0x1000 0x00 0x3200a000 0x00 0x1000>; - interrupts = <0x00 0x30 0x04>; - clocks = <0x0e>; - clock-names = "i2s_clk"; - dai-name = "phytium-i2s-dp1"; - status = "disabled"; - }; - - pmdk_dp { - compatible = "phytium,pmdk-dp"; - status = "okay"; - num-dp = <0x01>; - dp-mask = [01]; - }; - - mailbox@32a00000 { - compatible = "phytium,mbox"; - reg = <0x00 0x32a00000 0x00 0x1000>; - interrupts = <0x00 0x16 0x04>; - #mbox-cells = <0x01>; - phandle = <0x02>; - }; - - rng@32a36000 { - compatible = "phytium,rng"; - reg = <0x00 0x32a36000 0x00 0x1000>; - status = "okay"; - }; - - sram@32a10000 { - compatible = "phytium,pe220x-sram-ns\0mmio-sram"; - reg = <0x00 0x32a10000 0x00 0x2000>; - #address-cells = <0x01>; - #size-cells = <0x01>; - ranges = <0x00 0x00 0x32a10000 0x2000>; - - scp-shmem@0 { - compatible = "arm,scmi-shmem"; - reg = <0x1000 0x400>; - }; - - scp-shmem@1 { - compatible = "arm,scmi-shmem"; - reg = <0x1400 0x400>; - phandle = <0x03>; - }; - }; - - gdma@32b34000 { - compatible = "phytium,gdma"; - dma-channels = <0x10>; - max-outstanding = <0x10>; - reg = <0x00 0x32b34000 0x00 0x1000>; - interrupts = <0x00 0xea 0x04>; - #dma-cells = <0x01>; - }; - - spinlock@32b36000 { - compatible = "phytium,hwspinlock"; - reg = <0x00 0x32b36000 0x00 0x1000>; - #hwlock-cells = <0x01>; - nr-locks = <0x20>; - status = "disabled"; - }; - - pcie@40000000 { - compatible = "pci-host-ecam-generic"; - device_type = "pci"; - #address-cells = <0x03>; - #size-cells = <0x02>; - #interrupt-cells = <0x01>; - reg = <0x00 0x40000000 0x00 0x10000000>; - msi-parent = <0x0f>; - bus-range = <0x00 0xff>; - interrupt-map-mask = <0x00 0x00 0x00 0x07>; - interrupt-map = <0x00 0x00 0x00 0x01 0x01 0x00 0x00 0x00 0x04 0x04 0x00 0x00 0x00 0x02 0x01 0x00 0x00 0x00 0x05 0x04 0x00 0x00 0x00 0x03 0x01 0x00 0x00 0x00 0x06 0x04 0x00 0x00 0x00 0x04 0x01 0x00 0x00 0x00 0x07 0x04>; - ranges = <0x1000000 0x00 0x00 0x00 0x50000000 0x00 0xf00000 0x2000000 0x00 0x58000000 0x00 0x58000000 0x00 0x28000000 0x3000000 0x10 0x00 0x10 0x00 0x10 0x00>; - iommu-map = <0x00 0x10 0x00 0x10000>; - status = "okay"; - }; - - edac@32b28000 { - compatible = "phytium,pe220x-edac"; - reg = <0x00 0x32b28000 0x00 0x1000 0x00 0x31400000 0x00 0x1000 0x00 0x31401000 0x00 0x1000>; - interrupts = <0x00 0x00 0x04 0x00 0x01 0x04>; - status = "disabled"; - }; - - hda@28006000 { - compatible = "phytium,hda"; - reg = <0x00 0x28006000 0x00 0x1000>; - interrupts = <0x00 0x4e 0x04>; - status = "disabled"; - }; - - i2s@28009000 { - compatible = "phytium,i2s"; - reg = <0x00 0x28009000 0x00 0x1000 0x00 0x28005000 0x00 0x1000>; - interrupts = <0x00 0x4d 0x04>; - clocks = <0x0e>; - clock-names = "i2s_clk"; - status = "okay"; - #sound-dai-cells = <0x00>; - dai-name = "phytium-i2s-lsd"; - phandle = <0x16>; - }; - - can@2800a000 { - compatible = "phytium,canfd"; - reg = <0x00 0x2800a000 0x00 0x1000>; - interrupts = <0x00 0x51 0x04>; - clocks = <0x11>; - clock-names = "can_clk"; - tx-fifo-depth = <0x40>; - rx-fifo-depth = <0x40>; - status = "okay"; - }; - - can@2800b000 { - compatible = "phytium,canfd"; - reg = <0x00 0x2800b000 0x00 0x1000>; - interrupts = <0x00 0x52 0x04>; - clocks = <0x11>; - clock-names = "can_clk"; - tx-fifo-depth = <0x40>; - rx-fifo-depth = <0x40>; - status = "okay"; - }; - - keypad@2807a000 { - compatible = "phytium,keypad"; - reg = <0x00 0x2807a000 0x00 0x1000>; - interrupts = <0x00 0xbd 0x04>; - clocks = <0x0d>; - status = "disabled"; - }; - - usb3@31a08000 { - compatible = "phytium,pe220x-xhci"; - reg = <0x00 0x31a08000 0x00 0x18000>; - interrupts = <0x00 0x10 0x04>; - status = "okay"; - }; - - usb3@31a28000 { - compatible = "phytium,pe220x-xhci"; - reg = <0x00 0x31a28000 0x00 0x18000>; - interrupts = <0x00 0x11 0x04>; - status = "okay"; - }; - - sata@31a40000 { - compatible = "generic-ahci"; - reg = <0x00 0x31a40000 0x00 0x1000>; - interrupts = <0x00 0x2a 0x04>; - status = "disabled"; - }; - - sata@32014000 { - compatible = "generic-ahci"; - reg = <0x00 0x32014000 0x00 0x1000>; - interrupts = <0x00 0x2b 0x04>; - status = "disabled"; - }; - - ethernet@3200c000 { - compatible = "cdns,phytium-gem-1.0"; - reg = <0x00 0x3200c000 0x00 0x2000>; - interrupts = <0x00 0x37 0x04 0x00 0x38 0x04 0x00 0x39 0x04 0x00 0x3a 0x04 0x00 0x1c 0x04 0x00 0x1d 0x04 0x00 0x1e 0x04 0x00 0x1f 0x04>; - clock-names = "pclk\0hclk\0tx_clk\0tsu_clk"; - clocks = <0x12 0x13 0x13 0x12>; - magic-packet; - support-tsn; - status = "okay"; - phy-mode = "sgmii"; - use-mii; - }; - - ethernet@3200e000 { - compatible = "cdns,phytium-gem-1.0"; - reg = <0x00 0x3200e000 0x00 0x2000>; - interrupts = <0x00 0x3b 0x04 0x00 0x3c 0x04 0x00 0x3d 0x04 0x00 0x3e 0x04>; - clock-names = "pclk\0hclk\0tx_clk\0tsu_clk"; - clocks = <0x12 0x13 0x13 0x12>; - magic-packet; - status = "okay"; - phy-mode = "sgmii"; - use-mii; - }; - - ethernet@32010000 { - compatible = "cdns,phytium-gem-1.0"; - reg = <0x00 0x32010000 0x00 0x2000>; - interrupts = <0x00 0x40 0x04 0x00 0x41 0x04 0x00 0x42 0x04 0x00 0x43 0x04>; - clock-names = "pclk\0hclk\0tx_clk\0tsu_clk"; - clocks = <0x12 0x13 0x13 0x12>; - magic-packet; - status = "disabled"; - }; - - ethernet@32012000 { - compatible = "cdns,phytium-gem-1.0"; - reg = <0x00 0x32012000 0x00 0x2000>; - interrupts = <0x00 0x44 0x04 0x00 0x45 0x04 0x00 0x46 0x04 0x00 0x47 0x04>; - clock-names = "pclk\0hclk\0tx_clk\0tsu_clk"; - clocks = <0x12 0x13 0x13 0x12>; - magic-packet; - status = "disabled"; - }; - - vpu@32b00000 { - compatible = "phytium,vpu"; - reg = <0x00 0x32b00000 0x00 0x20000>; - interrupts = <0x00 0x0c 0x04>; - status = "okay"; - }; - - i2c@28026000 { - compatible = "phytium,i2c"; - reg = <0x00 0x28026000 0x00 0x1000>; - interrupts = <0x00 0x65 0x04>; - clocks = <0x0d>; - #address-cells = <0x01>; - #size-cells = <0x00>; - status = "okay"; - }; - - i2c@28030000 { - compatible = "phytium,i2c"; - reg = <0x00 0x28030000 0x00 0x1000>; - interrupts = <0x00 0x6a 0x04>; - clocks = <0x0d>; - #address-cells = <0x01>; - #size-cells = <0x00>; - status = "okay"; - - es8336@10 { - #sound-dai-cells = <0x00>; - compatible = "everest,es8336"; - reg = <0x10>; - phandle = <0x17>; - }; - }; - - uart@28014000 { - compatible = "arm,pl011\0arm,primecell"; - reg = <0x00 0x28014000 0x00 0x1000>; - interrupts = <0x00 0x5c 0x04>; - clocks = <0x0d 0x0d>; - clock-names = "uartclk\0apb_pclk"; - status = "okay"; - }; - - i2c@28016000 { - compatible = "phytium,i2c"; - reg = <0x00 0x28016000 0x00 0x1000>; - interrupts = <0x00 0x5d 0x04>; - clocks = <0x0d>; - #address-cells = <0x01>; - #size-cells = <0x00>; - status = "okay"; - }; - - i2c@28024000 { - compatible = "phytium,i2c"; - reg = <0x00 0x28024000 0x00 0x1000>; - interrupts = <0x00 0x64 0x04>; - clocks = <0x0d>; - #address-cells = <0x01>; - #size-cells = <0x00>; - status = "okay"; - }; - - uart@2802A000 { - compatible = "arm,pl011\0arm,primecell"; - reg = <0x00 0x2802a000 0x00 0x1000>; - interrupts = <0x00 0x67 0x04>; - clocks = <0x0d 0x0d>; - clock-names = "uartclk\0apb_pclk"; - status = "okay"; - }; - - uart@28032000 { - compatible = "arm,pl011\0arm,primecell"; - reg = <0x00 0x28032000 0x00 0x1000>; - interrupts = <0x00 0x6b 0x04>; - clocks = <0x0d 0x0d>; - clock-names = "uartclk\0apb_pclk"; - status = "okay"; - }; - }; - - chosen { - bootargs = "console=ttyAMA1,115200 earlycon=pl011,0x2800d000 root=/dev/mmcblk0p1 rootfstype=ext4 rootwait rw cma=256m ;"; - stdout-path = "serial1:115200n8"; - }; - - memory { - device_type = "memory"; - reg = <0x20 0x40000000 0x00 0x40000000>; - }; - - leds { - compatible = "gpio-leds"; - - sysled { - label = "sysled"; - gpios = <0x14 0x05 0x00>; - linux,default-trigger = "none"; - }; - }; - - sound { - compatible = "simple-audio-card"; - simple-audio-card,format = "i2s"; - simple-audio-card,name = "phytium,pe220x-i2s-audio"; - simple-audio-card,pin-switches = "mic-in"; - simple-audio-card,widgets = "Microphone\0mic-in\0Headphone\0Headphones"; - simple-audio-card,routing = "MIC2\0mic-in"; - simple-audio-card,hp-det-gpio = <0x15 0x0b 0x01>; - - simple-audio-card,cpu { - sound-dai = <0x16>; - }; - - simple-audio-card,codec { - sound-dai = <0x17>; - }; - }; -}; diff --git a/configs/vms_bkp/linux-aarch64-e2000_smp1.toml b/configs/vms_bkp/linux-aarch64-e2000_smp1.toml deleted file mode 100644 index 52017828..00000000 --- a/configs/vms_bkp/linux-aarch64-e2000_smp1.toml +++ /dev/null @@ -1,114 +0,0 @@ -# Vm base info configs -# -[base] -# Guest vm id. -id = 1 -# Guest vm name. -name = "linux" -# Virtualization type. -vm_type = 1 -# The number of virtual CPUs. -cpu_num = 1 -# The physical CPU ids. -phys_cpu_ids = [0x100] -# Guest vm physical cpu sets. -phys_cpu_sets = [8] - -# -# Vm kernel configs -# -[kernel] -# The entry point of the kernel image. -entry_point = 0x20_4008_0000 -# The location of image: "memory" | "fs". -# Load from file system. -image_location = "memory" -# The load address of the kernel image. -kernel_load_addr = 0x20_4008_0000 -## The file path of the kernel image. -kernel_path = "/path/to/Image" -## The file path of the device tree blob (DTB). -dtb_load_addr = 0x20_4000_0000 -dtb_path = "/path/to/axvisor/configs/vms/linux-aarch64-e2000_smp1.dtb" -# Memory regions with format (`base_paddr`, `size`, `flags`, `map_type`). -# For `map_type`, 0 means `MAP_ALLOC`, 1 means `MAP_IDENTICAL`. -memory_regions = [ - [0x20_4000_0000, 0x4000_0000, 0x7, 1], # System RAM MAP_IDENTICAL -] - -# -# Device specifications -# -[devices] -# Emu_devices. -# Name Base-Ipa Ipa_len Alloc-Irq Emu-Type EmuConfig. -interrupt_mode = "passthrough" -emu_devices = [] - -# Pass-through devices. -# Name Base-Ipa Base-Pa Length Alloc-Irq. -passthrough_devices = [ - [ - "QSPI", - 0x0000_0000, - 0x0000_0000, - 0x1000_0000, - 0x1, - ], - [ - "LocalBus", - 0x1000_0000, - 0x1000_0000, - 0x1000_0000, - 0x1, - ], - [ - "low speed peripherals", - 0x2800_0000, - 0x2800_0000, - 0x0800_0000, - 0x1, - ], - [ - "other peripherals", - 0x3000_0000, - 0x3000_0000, - 0x0800_0000, - 0x1, - ], - [ - "IACC", - 0x3800_0000, - 0x3800_0000, - 0x0800_0000, - 0x1, - ], - [ - "PCIE", - 0x4000_0000, - 0x4000_0000, - 0x4000_0000, - 0x1, - ], - [ - "QSPI high address", - 0x01_0000_0000, - 0x01_0000_0000, - 0x8000_0000, - 0x1, - ], - [ - "LocalBus high address", - 0x01_8000_0000, - 0x01_8000_0000, - 0x8000_0000, - 0x1, - ], - [ - "PCIe MEM64", - 0x10_0000_0000, - 0x10_0000_0000, - 0x01_0000_0000, - 0x1, - ], -] diff --git a/configs/vms_bkp/linux-aarch64-e2000_smp2.dts b/configs/vms_bkp/linux-aarch64-e2000_smp2.dts deleted file mode 100644 index 0d3b86b4..00000000 --- a/configs/vms_bkp/linux-aarch64-e2000_smp2.dts +++ /dev/null @@ -1,1302 +0,0 @@ -/dts-v1/; - -/memreserve/ 0x0000000080000000 0x0000000000010000; -/ { - compatible = "phytium,pe2204"; - interrupt-parent = <0x01>; - #address-cells = <0x02>; - #size-cells = <0x02>; - model = "Phytium Pi Board"; - - // memory@01 { - // device_type = "memory"; - // reg = <0x20 0x00000000 0x00 0x40000000>; - // numa-node-id = <0x00>; - // }; - - aliases { - serial0 = "/soc/uart@2800c000"; - serial1 = "/soc/uart@2800d000"; - serial2 = "/soc/uart@2800e000"; - serial3 = "/soc/uart@2800f000"; - ethernet0 = "/soc/ethernet@3200c000"; - ethernet1 = "/soc/ethernet@3200e000"; - ethernet2 = "/soc/ethernet@32010000"; - ethernet3 = "/soc/ethernet@32012000"; - serial4 = "/soc/uart@28014000"; - serial5 = "/soc/uart@2802A000"; - serial6 = "/soc/uart@28032000"; - }; - - psci { - compatible = "arm,psci-1.0"; - method = "smc"; - cpu_suspend = <0xc4000001>; - cpu_off = <0x84000002>; - cpu_on = <0xc4000003>; - sys_poweroff = <0x84000008>; - sys_reset = <0x84000009>; - }; - - firmware { - - scmi { - compatible = "arm,scmi"; - mboxes = <0x02 0x00>; - mbox-names = "tx"; - shmem = <0x03>; - #address-cells = <0x01>; - #size-cells = <0x00>; - - protocol@13 { - reg = <0x13>; - #clock-cells = <0x01>; - phandle = <0x09>; - }; - - protocol@15 { - reg = <0x15>; - #thermal-sensor-cells = <0x01>; - phandle = <0x04>; - }; - }; - - optee { - compatible = "linaro,optee-tz"; - method = "smc"; - }; - }; - - thermal-zones { - - sensor0 { - polling-delay-passive = <0x64>; - polling-delay = <0x3e8>; - thermal-sensors = <0x04 0x00>; - }; - - sensor1 { - polling-delay-passive = <0x64>; - polling-delay = <0x3e8>; - thermal-sensors = <0x04 0x01>; - }; - }; - - cpus { - #address-cells = <0x02>; - #size-cells = <0x00>; - - cpu-map { - - cluster0 { - - core0 { - cpu = <0x05>; - }; - }; - - // cluster1 { - - // core0 { - // cpu = <0x06>; - // }; - // }; - - cluster2 { - - core0 { - cpu = <0x07>; - }; - - // core1 { - // cpu = <0x08>; - // }; - }; - }; - - cpu@0 { - device_type = "cpu"; - compatible = "phytium,ftc310\0arm,armv8"; - reg = <0x00 0x200>; - enable-method = "psci"; - clocks = <0x09 0x02>; - capacity-dmips-mhz = <0xb22>; - phandle = <0x07>; - }; - - // cpu@1 { - // device_type = "cpu"; - // compatible = "phytium,ftc310\0arm,armv8"; - // reg = <0x00 0x201>; - // enable-method = "psci"; - // clocks = <0x09 0x02>; - // capacity-dmips-mhz = <0xb22>; - // phandle = <0x08>; - // }; - - cpu@100 { - device_type = "cpu"; - compatible = "phytium,ftc664\0arm,armv8"; - reg = <0x00 0x00>; - enable-method = "psci"; - clocks = <0x09 0x00>; - capacity-dmips-mhz = <0x161c>; - phandle = <0x05>; - }; - - // cpu@101 { - // device_type = "cpu"; - // compatible = "phytium,ftc664\0arm,armv8"; - // reg = <0x00 0x100>; - // enable-method = "psci"; - // clocks = <0x09 0x01>; - // capacity-dmips-mhz = <0x161c>; - // phandle = <0x06>; - // }; - }; - - interrupt-controller@30800000 { - compatible = "arm,gic-v3"; - #interrupt-cells = <0x03>; - #address-cells = <0x02>; - #size-cells = <0x02>; - ranges; - interrupt-controller; - reg = <0x00 0x30800000 0x00 0x20000 0x00 0x30880000 0x00 0x80000 0x00 0x30840000 0x00 0x10000 0x00 0x30850000 0x00 0x10000 0x00 0x30860000 0x00 0x10000>; - interrupts = <0x01 0x09 0x08>; - phandle = <0x01>; - - gic-its@30820000 { - compatible = "arm,gic-v3-its"; - msi-controller; - reg = <0x00 0x30820000 0x00 0x20000>; - phandle = <0x0f>; - }; - }; - - pmu { - compatible = "arm,armv8-pmuv3"; - interrupts = <0x01 0x07 0x08>; - }; - - timer { - compatible = "arm,armv8-timer"; - interrupts = <0x01 0x0d 0x08 0x01 0x0e 0x08 0x01 0x0b 0x08 0x01 0x0a 0x08>; - clock-frequency = <0x2faf080>; - }; - - clocks { - #address-cells = <0x02>; - #size-cells = <0x02>; - ranges; - - clk48mhz { - compatible = "fixed-clock"; - #clock-cells = <0x00>; - clock-frequency = <0x2dc6c00>; - phandle = <0x13>; - }; - - clk50mhz { - compatible = "fixed-clock"; - #clock-cells = <0x00>; - clock-frequency = <0x2faf080>; - phandle = <0x0d>; - }; - - clk100mhz { - compatible = "fixed-clock"; - #clock-cells = <0x00>; - clock-frequency = <0x5f5e100>; - phandle = <0x0c>; - }; - - clk200mhz { - compatible = "fixed-clock"; - #clock-cells = <0x00>; - clock-frequency = <0xbebc200>; - phandle = <0x11>; - }; - - clk250mhz { - compatible = "fixed-clock"; - #clock-cells = <0x00>; - clock-frequency = <0xee6b280>; - phandle = <0x12>; - }; - - clk300mhz { - compatible = "fixed-clock"; - #clock-cells = <0x00>; - clock-frequency = <0x11e1a300>; - phandle = <0x0b>; - }; - - clk600mhz { - compatible = "fixed-clock"; - #clock-cells = <0x00>; - clock-frequency = <0x23c34600>; - phandle = <0x0e>; - }; - - clk1200mhz { - compatible = "fixed-clock"; - #clock-cells = <0x00>; - clock-frequency = <0x47868c00>; - phandle = <0x0a>; - }; - }; - - iommu@30000000 { - compatible = "arm,smmu-v3"; - reg = <0x00 0x30000000 0x00 0x800000>; - interrupts = <0x00 0xf0 0x01 0x00 0xef 0x01 0x00 0xec 0x01 0x00 0xf2 0x01>; - interrupt-names = "eventq\0priq\0cmdq-sync\0gerror"; - dma-coherent; - #iommu-cells = <0x01>; - phandle = <0x10>; - }; - - soc { - compatible = "simple-bus"; - #address-cells = <0x02>; - #size-cells = <0x02>; - dma-coherent; - ranges; - - mmc@28000000 { - compatible = "phytium,mci"; - reg = <0x00 0x28000000 0x00 0x1000>; - interrupts = <0x00 0x48 0x04>; - clocks = <0x0a>; - clock-names = "phytium_mci_clk"; - status = "okay"; - bus-width = <0x04>; - max-frequency = <0x2faf080>; - cap-sdio-irq; - cap-sd-highspeed; - no-mmc; - }; - - mmc@28001000 { - compatible = "phytium,mci"; - reg = <0x00 0x28001000 0x00 0x1000>; - interrupts = <0x00 0x49 0x04>; - clocks = <0x0a>; - clock-names = "phytium_mci_clk"; - status = "okay"; - bus-width = <0x04>; - max-frequency = <0x2faf080>; - cap-sdio-irq; - cap-sd-highspeed; - no-mmc; - no-sd; - non-removable; - }; - - nand@28002000 { - compatible = "phytium,nfc"; - reg = <0x00 0x28002000 0x00 0x1000>; - interrupts = <0x00 0x4a 0x04>; - status = "disabled"; - }; - - ddma@28003000 { - compatible = "phytium,ddma"; - reg = <0x00 0x28003000 0x00 0x1000>; - interrupts = <0x00 0x4b 0x04>; - #dma-cells = <0x02>; - dma-channels = <0x08>; - }; - - ddma@28004000 { - compatible = "phytium,ddma"; - reg = <0x00 0x28004000 0x00 0x1000>; - interrupts = <0x00 0x4c 0x04>; - #dma-cells = <0x02>; - dma-channels = <0x08>; - }; - - spi@28008000 { - compatible = "phytium,qspi-nor"; - reg = <0x00 0x28008000 0x00 0x1000 0x00 0x00 0x00 0xfffffff>; - reg-names = "qspi\0qspi_mm"; - clocks = <0x0b>; - status = "okay"; - #address-cells = <0x01>; - #size-cells = <0x00>; - - flash@0 { - compatible = "jedec,spi-nor"; - reg = <0x00>; - spi-rx-bus-width = <0x01>; - spi-max-frequency = <0x1312d00>; - status = "okay"; - }; - }; - - uart@2800c000 { - compatible = "arm,pl011\0arm,primecell"; - reg = <0x00 0x2800c000 0x00 0x1000>; - interrupts = <0x00 0x53 0x04>; - clocks = <0x0c 0x0c>; - clock-names = "uartclk\0apb_pclk"; - status = "okay"; - }; - - uart@2800d000 { - compatible = "arm,pl011\0arm,primecell"; - reg = <0x00 0x2800d000 0x00 0x1000>; - interrupts = <0x00 0x54 0x04>; - clocks = <0x0c 0x0c>; - clock-names = "uartclk\0apb_pclk"; - status = "okay"; - }; - - uart@2800e000 { - compatible = "arm,pl011\0arm,primecell"; - reg = <0x00 0x2800e000 0x00 0x1000>; - interrupts = <0x00 0x55 0x04>; - clocks = <0x0c 0x0c>; - clock-names = "uartclk\0apb_pclk"; - status = "okay"; - }; - - uart@2800f000 { - compatible = "arm,pl011\0arm,primecell"; - reg = <0x00 0x2800f000 0x00 0x1000>; - interrupts = <0x00 0x56 0x04>; - clocks = <0x0c 0x0c>; - clock-names = "uartclk\0apb_pclk"; - status = "okay"; - }; - - lpc@28010000 { - compatible = "simple-mfd\0syscon"; - reg = <0x00 0x28010000 0x00 0x1000>; - reg-io-width = <0x04>; - #address-cells = <0x01>; - #size-cells = <0x01>; - ranges = <0x00 0x00 0x28010000 0x1000>; - - kcs@24 { - compatible = "phytium,kcs-bmc"; - reg = <0x24 0x01 0x30 0x01 0x3c 0x01>; - interrupts = <0x00 0x58 0x04>; - status = "disabled"; - }; - - kcs@28 { - compatible = "phytium,kcs-bmc"; - reg = <0x28 0x01 0x34 0x01 0x40 0x01>; - interrupts = <0x00 0x58 0x04>; - status = "disabled"; - }; - - kcs@2c { - compatible = "phytium,kcs-bmc"; - reg = <0x2c 0x01 0x38 0x01 0x44 0x01>; - interrupts = <0x00 0x58 0x04>; - status = "disabled"; - }; - - kcs@8c { - compatible = "phytium,kcs-bmc"; - reg = <0x8c 0x01 0x90 0x01 0x94 0x01>; - interrupts = <0x00 0x58 0x04>; - status = "disabled"; - }; - - bt@48 { - compatible = "phytium,bt-bmc"; - reg = <0x48 0x20>; - interrupts = <0x00 0x58 0x04>; - status = "disabled"; - }; - }; - - gpio@28034000 { - compatible = "phytium,gpio"; - reg = <0x00 0x28034000 0x00 0x1000>; - interrupts = <0x00 0x6c 0x04 0x00 0x6d 0x04 0x00 0x6e 0x04 0x00 0x6f 0x04 0x00 0x70 0x04 0x00 0x71 0x04 0x00 0x72 0x04 0x00 0x73 0x04 0x00 0x74 0x04 0x00 0x75 0x04 0x00 0x76 0x04 0x00 0x77 0x04 0x00 0x78 0x04 0x00 0x79 0x04 0x00 0x7a 0x04 0x00 0x7b 0x04>; - gpio-controller; - #gpio-cells = <0x02>; - #address-cells = <0x01>; - #size-cells = <0x00>; - status = "okay"; - - porta { - compatible = "phytium,gpio-port"; - reg = <0x00>; - ngpios = <0x10>; - }; - }; - - gpio@28035000 { - compatible = "phytium,gpio"; - reg = <0x00 0x28035000 0x00 0x1000>; - interrupts = <0x00 0x7c 0x04 0x00 0x7d 0x04 0x00 0x7e 0x04 0x00 0x7f 0x04 0x00 0x80 0x04 0x00 0x81 0x04 0x00 0x82 0x04 0x00 0x83 0x04 0x00 0x84 0x04 0x00 0x85 0x04 0x00 0x86 0x04 0x00 0x87 0x04 0x00 0x88 0x04 0x00 0x89 0x04 0x00 0x8a 0x04 0x00 0x8b 0x04>; - gpio-controller; - #gpio-cells = <0x02>; - #address-cells = <0x01>; - #size-cells = <0x00>; - status = "okay"; - phandle = <0x14>; - - porta { - compatible = "phytium,gpio-port"; - reg = <0x00>; - ngpios = <0x10>; - }; - }; - - gpio@28036000 { - compatible = "phytium,gpio"; - reg = <0x00 0x28036000 0x00 0x1000>; - interrupts = <0x00 0x8c 0x04 0x00 0x8d 0x04 0x00 0x8e 0x04 0x00 0x8f 0x04 0x00 0x90 0x04 0x00 0x91 0x04 0x00 0x92 0x04 0x00 0x93 0x04 0x00 0x94 0x04 0x00 0x95 0x04 0x00 0x96 0x04 0x00 0x97 0x04 0x00 0x98 0x04 0x00 0x99 0x04 0x00 0x9a 0x04 0x00 0x9b 0x04>; - gpio-controller; - #gpio-cells = <0x02>; - #address-cells = <0x01>; - #size-cells = <0x00>; - status = "okay"; - phandle = <0x15>; - - porta { - compatible = "phytium,gpio-port"; - reg = <0x00>; - ngpios = <0x10>; - }; - }; - - gpio@28037000 { - compatible = "phytium,gpio"; - reg = <0x00 0x28037000 0x00 0x1000>; - interrupts = <0x00 0x9c 0x04>; - gpio-controller; - #gpio-cells = <0x02>; - #address-cells = <0x01>; - #size-cells = <0x00>; - status = "okay"; - - porta { - compatible = "phytium,gpio-port"; - reg = <0x00>; - ngpios = <0x10>; - }; - }; - - gpio@28038000 { - compatible = "phytium,gpio"; - reg = <0x00 0x28038000 0x00 0x1000>; - interrupts = <0x00 0x9d 0x04>; - gpio-controller; - #gpio-cells = <0x02>; - #address-cells = <0x01>; - #size-cells = <0x00>; - status = "okay"; - - porta { - compatible = "phytium,gpio-port"; - reg = <0x00>; - ngpios = <0x10>; - }; - }; - - gpio@28039000 { - compatible = "phytium,gpio"; - reg = <0x00 0x28039000 0x00 0x1000>; - interrupts = <0x00 0x9e 0x04>; - gpio-controller; - #gpio-cells = <0x02>; - #address-cells = <0x01>; - #size-cells = <0x00>; - status = "okay"; - - porta { - compatible = "phytium,gpio-port"; - reg = <0x00>; - ngpios = <0x10>; - }; - }; - - spi@2803a000 { - compatible = "phytium,spi"; - reg = <0x00 0x2803a000 0x00 0x1000>; - interrupts = <0x00 0x9f 0x04>; - clocks = <0x0d>; - num-cs = <0x04>; - #address-cells = <0x01>; - #size-cells = <0x00>; - status = "okay"; - global-cs = <0x01>; - - spidev@0 { - compatible = "spidev"; - reg = <0x00>; - spi-max-frequency = <0x2faf080>; - status = "disabled"; - }; - }; - - spi@2803b000 { - compatible = "phytium,spi"; - reg = <0x00 0x2803b000 0x00 0x1000>; - interrupts = <0x00 0xa0 0x04>; - clocks = <0x0d>; - num-cs = <0x04>; - #address-cells = <0x01>; - #size-cells = <0x00>; - status = "disabled"; - }; - - spi@2803c000 { - compatible = "phytium,spi"; - reg = <0x00 0x2803c000 0x00 0x1000>; - interrupts = <0x00 0xa1 0x04>; - clocks = <0x0d>; - num-cs = <0x04>; - #address-cells = <0x01>; - #size-cells = <0x00>; - status = "disabled"; - }; - - spi@2803d000 { - compatible = "phytium,spi"; - reg = <0x00 0x2803d000 0x00 0x1000>; - interrupts = <0x00 0xa2 0x04>; - clocks = <0x0d>; - num-cs = <0x04>; - #address-cells = <0x01>; - #size-cells = <0x00>; - status = "disabled"; - }; - - watchdog@28040000 { - compatible = "arm,sbsa-gwdt"; - reg = <0x00 0x28041000 0x00 0x1000 0x00 0x28040000 0x00 0x1000>; - interrupts = <0x00 0xa4 0x04>; - timeout-sec = <0x1e>; - status = "okay"; - }; - - watchdog@28042000 { - compatible = "arm,sbsa-gwdt"; - reg = <0x00 0x28043000 0x00 0x1000 0x00 0x28042000 0x00 0x1000>; - interrupts = <0x00 0xa5 0x04>; - timeout-sec = <0x1e>; - status = "okay"; - }; - - pwm@2804a000 { - compatible = "phytium,pwm"; - reg = <0x00 0x2804a000 0x00 0x1000>; - interrupts = <0x00 0xad 0x04>; - clocks = <0x0d>; - status = "okay"; - phytium,db = <0x00 0x00 0x64 0x3e8 0x3e8 0x00>; - }; - - pwm@2804b000 { - compatible = "phytium,pwm"; - reg = <0x00 0x2804b000 0x00 0x1000>; - interrupts = <0x00 0xae 0x04>; - clocks = <0x0d>; - status = "okay"; - phytium,db = <0x00 0x00 0x64 0x3e8 0x3e8 0x00>; - }; - - tacho@28054000 { - compatible = "phytium,tacho"; - reg = <0x00 0x28054000 0x00 0x1000>; - interrupts = <0x00 0xc2 0x04>; - clocks = <0x0d>; - status = "disabled"; - }; - - tacho@28055000 { - compatible = "phytium,tacho"; - reg = <0x00 0x28055000 0x00 0x1000>; - interrupts = <0x00 0xc3 0x04>; - clocks = <0x0d>; - status = "disabled"; - }; - - tacho@28056000 { - compatible = "phytium,tacho"; - reg = <0x00 0x28056000 0x00 0x1000>; - interrupts = <0x00 0xc4 0x04>; - clocks = <0x0d>; - status = "disabled"; - }; - - tacho@28057000 { - compatible = "phytium,tacho"; - reg = <0x00 0x28057000 0x00 0x1000>; - interrupts = <0x00 0xc5 0x04>; - clocks = <0x0d>; - status = "disabled"; - }; - - tacho@28058000 { - compatible = "phytium,tacho"; - reg = <0x00 0x28058000 0x00 0x1000>; - interrupts = <0x00 0xc6 0x04>; - clocks = <0x0d>; - status = "disabled"; - }; - - tacho@28059000 { - compatible = "phytium,tacho"; - reg = <0x00 0x28059000 0x00 0x1000>; - interrupts = <0x00 0xc7 0x04>; - clocks = <0x0d>; - status = "disabled"; - }; - - tacho@2805a000 { - compatible = "phytium,tacho"; - reg = <0x00 0x2805a000 0x00 0x1000>; - interrupts = <0x00 0xc8 0x04>; - clocks = <0x0d>; - status = "disabled"; - }; - - tacho@2805b000 { - compatible = "phytium,tacho"; - reg = <0x00 0x2805b000 0x00 0x1000>; - interrupts = <0x00 0xc9 0x04>; - clocks = <0x0d>; - status = "disabled"; - }; - - tacho@2805c000 { - compatible = "phytium,tacho"; - reg = <0x00 0x2805c000 0x00 0x1000>; - interrupts = <0x00 0xca 0x04>; - clocks = <0x0d>; - status = "disabled"; - }; - - tacho@2805d000 { - compatible = "phytium,tacho"; - reg = <0x00 0x2805d000 0x00 0x1000>; - interrupts = <0x00 0xcb 0x04>; - clocks = <0x0d>; - status = "disabled"; - }; - - tacho@2805e000 { - compatible = "phytium,tacho"; - reg = <0x00 0x2805e000 0x00 0x1000>; - interrupts = <0x00 0xcc 0x04>; - clocks = <0x0d>; - status = "disabled"; - }; - - tacho@2805f000 { - compatible = "phytium,tacho"; - reg = <0x00 0x2805f000 0x00 0x1000>; - interrupts = <0x00 0xcd 0x04>; - clocks = <0x0d>; - status = "disabled"; - }; - - tacho@28060000 { - compatible = "phytium,tacho"; - reg = <0x00 0x28060000 0x00 0x1000>; - interrupts = <0x00 0xce 0x04>; - clocks = <0x0d>; - status = "disabled"; - }; - - tacho@28061000 { - compatible = "phytium,tacho"; - reg = <0x00 0x28061000 0x00 0x1000>; - interrupts = <0x00 0xcf 0x04>; - clocks = <0x0d>; - status = "disabled"; - }; - - tacho@28062000 { - compatible = "phytium,tacho"; - reg = <0x00 0x28062000 0x00 0x1000>; - interrupts = <0x00 0xd0 0x04>; - clocks = <0x0d>; - status = "disabled"; - }; - - tacho@28063000 { - compatible = "phytium,tacho"; - reg = <0x00 0x28063000 0x00 0x1000>; - interrupts = <0x00 0xd1 0x04>; - clocks = <0x0d>; - status = "disabled"; - }; - - tacho@28064000 { - compatible = "phytium,tacho"; - reg = <0x00 0x28064000 0x00 0x1000>; - interrupts = <0x00 0xd2 0x04>; - clocks = <0x0d>; - status = "disabled"; - }; - - tacho@28065000 { - compatible = "phytium,tacho"; - reg = <0x00 0x28065000 0x00 0x1000>; - interrupts = <0x00 0xd3 0x04>; - clocks = <0x0d>; - status = "disabled"; - }; - - tacho@28066000 { - compatible = "phytium,tacho"; - reg = <0x00 0x28066000 0x00 0x1000>; - interrupts = <0x00 0xd4 0x04>; - clocks = <0x0d>; - status = "disabled"; - }; - - tacho@28067000 { - compatible = "phytium,tacho"; - reg = <0x00 0x28067000 0x00 0x1000>; - interrupts = <0x00 0xd5 0x04>; - clocks = <0x0d>; - status = "disabled"; - }; - - tacho@28068000 { - compatible = "phytium,tacho"; - reg = <0x00 0x28068000 0x00 0x1000>; - interrupts = <0x00 0xd6 0x04>; - clocks = <0x0d>; - status = "disabled"; - }; - - tacho@28069000 { - compatible = "phytium,tacho"; - reg = <0x00 0x28069000 0x00 0x1000>; - interrupts = <0x00 0xd7 0x04>; - clocks = <0x0d>; - status = "disabled"; - }; - - tacho@2806a000 { - compatible = "phytium,tacho"; - reg = <0x00 0x2806a000 0x00 0x1000>; - interrupts = <0x00 0xd8 0x04>; - clocks = <0x0d>; - status = "disabled"; - }; - - tacho@2806b000 { - compatible = "phytium,tacho"; - reg = <0x00 0x2806b000 0x00 0x1000>; - interrupts = <0x00 0xd9 0x04>; - clocks = <0x0d>; - status = "disabled"; - }; - - tacho@2806c000 { - compatible = "phytium,tacho"; - reg = <0x00 0x2806c000 0x00 0x1000>; - interrupts = <0x00 0xda 0x04>; - clocks = <0x0d>; - status = "disabled"; - }; - - tacho@2806d000 { - compatible = "phytium,tacho"; - reg = <0x00 0x2806d000 0x00 0x1000>; - interrupts = <0x00 0xdb 0x04>; - clocks = <0x0d>; - status = "disabled"; - }; - - tacho@2806e000 { - compatible = "phytium,tacho"; - reg = <0x00 0x2806e000 0x00 0x1000>; - interrupts = <0x00 0xdc 0x04>; - clocks = <0x0d>; - status = "disabled"; - }; - - tacho@2806f000 { - compatible = "phytium,tacho"; - reg = <0x00 0x2806f000 0x00 0x1000>; - interrupts = <0x00 0xdd 0x04>; - clocks = <0x0d>; - status = "disabled"; - }; - - tacho@28070000 { - compatible = "phytium,tacho"; - reg = <0x00 0x28070000 0x00 0x1000>; - interrupts = <0x00 0xde 0x04>; - clocks = <0x0d>; - status = "disabled"; - }; - - tacho@28071000 { - compatible = "phytium,tacho"; - reg = <0x00 0x28071000 0x00 0x1000>; - interrupts = <0x00 0xdf 0x04>; - clocks = <0x0d>; - status = "disabled"; - }; - - tacho@28072000 { - compatible = "phytium,tacho"; - reg = <0x00 0x28072000 0x00 0x1000>; - interrupts = <0x00 0xe0 0x04>; - clocks = <0x0d>; - status = "disabled"; - }; - - tacho@28073000 { - compatible = "phytium,tacho"; - reg = <0x00 0x28073000 0x00 0x1000>; - interrupts = <0x00 0xe1 0x04>; - clocks = <0x0d>; - status = "disabled"; - }; - - tacho@28074000 { - compatible = "phytium,tacho"; - reg = <0x00 0x28074000 0x00 0x1000>; - interrupts = <0x00 0xe2 0x04>; - clocks = <0x0d>; - status = "disabled"; - }; - - tacho@28075000 { - compatible = "phytium,tacho"; - reg = <0x00 0x28075000 0x00 0x1000>; - interrupts = <0x00 0xe3 0x04>; - clocks = <0x0d>; - status = "disabled"; - }; - - tacho@28076000 { - compatible = "phytium,tacho"; - reg = <0x00 0x28076000 0x00 0x1000>; - interrupts = <0x00 0xe4 0x04>; - clocks = <0x0d>; - status = "disabled"; - }; - - tacho@28077000 { - compatible = "phytium,tacho"; - reg = <0x00 0x28077000 0x00 0x1000>; - interrupts = <0x00 0xe5 0x04>; - clocks = <0x0d>; - status = "disabled"; - }; - - tacho@28078000 { - compatible = "phytium,tacho"; - reg = <0x00 0x28078000 0x00 0x1000>; - interrupts = <0x00 0xe6 0x04>; - clocks = <0x0d>; - status = "disabled"; - }; - - tacho@28079000 { - compatible = "phytium,tacho"; - reg = <0x00 0x28079000 0x00 0x1000>; - interrupts = <0x00 0xe7 0x04>; - clocks = <0x0d>; - status = "disabled"; - }; - - usb2@31800000 { - compatible = "phytium,usb2"; - reg = <0x00 0x31800000 0x00 0x80000 0x00 0x31990000 0x00 0x10000>; - interrupts = <0x00 0x20 0x04>; - status = "okay"; - dr_mode = "host"; - }; - - usb2@31880000 { - compatible = "phytium,usb2"; - reg = <0x00 0x31880000 0x00 0x80000 0x00 0x319a0000 0x00 0x10000>; - interrupts = <0x00 0x21 0x04>; - status = "disabled"; - dr_mode = "peripheral"; - }; - - usb2@31900000 { - compatible = "phytium,usb2"; - reg = <0x00 0x31900000 0x00 0x80000 0x00 0x319b0000 0x00 0x10000>; - interrupts = <0x00 0x22 0x04>; - status = "disabled"; - dr_mode = "peripheral"; - }; - - usb2@32800000 { - compatible = "phytium,usb2"; - reg = <0x00 0x32800000 0x00 0x40000 0x00 0x32880000 0x00 0x40000>; - interrupts = <0x00 0x0e 0x04>; - status = "okay"; - dr_mode = "host"; - }; - - usb2@32840000 { - compatible = "phytium,usb2"; - reg = <0x00 0x32840000 0x00 0x40000 0x00 0x328c0000 0x00 0x40000>; - interrupts = <0x00 0x0f 0x04>; - status = "okay"; - dr_mode = "host"; - }; - - dc@32000000 { - compatible = "phytium,dc"; - reg = <0x00 0x32000000 0x00 0x8000>; - interrupts = <0x00 0x2c 0x04>; - status = "okay"; - pipe_mask = [01]; - edp_mask = [00]; - }; - - i2s_dp0@32009000 { - compatible = "phytium,i2s"; - reg = <0x00 0x32009000 0x00 0x1000 0x00 0x32008000 0x00 0x1000>; - interrupts = <0x00 0x2f 0x04>; - clocks = <0x0e>; - clock-names = "i2s_clk"; - dai-name = "phytium-i2s-dp0"; - status = "okay"; - }; - - i2s_dp1@3200B000 { - compatible = "phytium,i2s"; - reg = <0x00 0x3200b000 0x00 0x1000 0x00 0x3200a000 0x00 0x1000>; - interrupts = <0x00 0x30 0x04>; - clocks = <0x0e>; - clock-names = "i2s_clk"; - dai-name = "phytium-i2s-dp1"; - status = "disabled"; - }; - - pmdk_dp { - compatible = "phytium,pmdk-dp"; - status = "okay"; - num-dp = <0x01>; - dp-mask = [01]; - }; - - mailbox@32a00000 { - compatible = "phytium,mbox"; - reg = <0x00 0x32a00000 0x00 0x1000>; - interrupts = <0x00 0x16 0x04>; - #mbox-cells = <0x01>; - phandle = <0x02>; - }; - - rng@32a36000 { - compatible = "phytium,rng"; - reg = <0x00 0x32a36000 0x00 0x1000>; - status = "okay"; - }; - - sram@32a10000 { - compatible = "phytium,pe220x-sram-ns\0mmio-sram"; - reg = <0x00 0x32a10000 0x00 0x2000>; - #address-cells = <0x01>; - #size-cells = <0x01>; - ranges = <0x00 0x00 0x32a10000 0x2000>; - - scp-shmem@0 { - compatible = "arm,scmi-shmem"; - reg = <0x1000 0x400>; - }; - - scp-shmem@1 { - compatible = "arm,scmi-shmem"; - reg = <0x1400 0x400>; - phandle = <0x03>; - }; - }; - - gdma@32b34000 { - compatible = "phytium,gdma"; - dma-channels = <0x10>; - max-outstanding = <0x10>; - reg = <0x00 0x32b34000 0x00 0x1000>; - interrupts = <0x00 0xea 0x04>; - #dma-cells = <0x01>; - }; - - spinlock@32b36000 { - compatible = "phytium,hwspinlock"; - reg = <0x00 0x32b36000 0x00 0x1000>; - #hwlock-cells = <0x01>; - nr-locks = <0x20>; - status = "disabled"; - }; - - pcie@40000000 { - compatible = "pci-host-ecam-generic"; - device_type = "pci"; - #address-cells = <0x03>; - #size-cells = <0x02>; - #interrupt-cells = <0x01>; - reg = <0x00 0x40000000 0x00 0x10000000>; - msi-parent = <0x0f>; - bus-range = <0x00 0xff>; - interrupt-map-mask = <0x00 0x00 0x00 0x07>; - interrupt-map = <0x00 0x00 0x00 0x01 0x01 0x00 0x00 0x00 0x04 0x04 0x00 0x00 0x00 0x02 0x01 0x00 0x00 0x00 0x05 0x04 0x00 0x00 0x00 0x03 0x01 0x00 0x00 0x00 0x06 0x04 0x00 0x00 0x00 0x04 0x01 0x00 0x00 0x00 0x07 0x04>; - ranges = <0x1000000 0x00 0x00 0x00 0x50000000 0x00 0xf00000 0x2000000 0x00 0x58000000 0x00 0x58000000 0x00 0x28000000 0x3000000 0x10 0x00 0x10 0x00 0x10 0x00>; - iommu-map = <0x00 0x10 0x00 0x10000>; - status = "okay"; - }; - - edac@32b28000 { - compatible = "phytium,pe220x-edac"; - reg = <0x00 0x32b28000 0x00 0x1000 0x00 0x31400000 0x00 0x1000 0x00 0x31401000 0x00 0x1000>; - interrupts = <0x00 0x00 0x04 0x00 0x01 0x04>; - status = "disabled"; - }; - - hda@28006000 { - compatible = "phytium,hda"; - reg = <0x00 0x28006000 0x00 0x1000>; - interrupts = <0x00 0x4e 0x04>; - status = "disabled"; - }; - - i2s@28009000 { - compatible = "phytium,i2s"; - reg = <0x00 0x28009000 0x00 0x1000 0x00 0x28005000 0x00 0x1000>; - interrupts = <0x00 0x4d 0x04>; - clocks = <0x0e>; - clock-names = "i2s_clk"; - status = "okay"; - #sound-dai-cells = <0x00>; - dai-name = "phytium-i2s-lsd"; - phandle = <0x16>; - }; - - can@2800a000 { - compatible = "phytium,canfd"; - reg = <0x00 0x2800a000 0x00 0x1000>; - interrupts = <0x00 0x51 0x04>; - clocks = <0x11>; - clock-names = "can_clk"; - tx-fifo-depth = <0x40>; - rx-fifo-depth = <0x40>; - status = "okay"; - }; - - can@2800b000 { - compatible = "phytium,canfd"; - reg = <0x00 0x2800b000 0x00 0x1000>; - interrupts = <0x00 0x52 0x04>; - clocks = <0x11>; - clock-names = "can_clk"; - tx-fifo-depth = <0x40>; - rx-fifo-depth = <0x40>; - status = "okay"; - }; - - keypad@2807a000 { - compatible = "phytium,keypad"; - reg = <0x00 0x2807a000 0x00 0x1000>; - interrupts = <0x00 0xbd 0x04>; - clocks = <0x0d>; - status = "disabled"; - }; - - usb3@31a08000 { - compatible = "phytium,pe220x-xhci"; - reg = <0x00 0x31a08000 0x00 0x18000>; - interrupts = <0x00 0x10 0x04>; - status = "okay"; - }; - - usb3@31a28000 { - compatible = "phytium,pe220x-xhci"; - reg = <0x00 0x31a28000 0x00 0x18000>; - interrupts = <0x00 0x11 0x04>; - status = "okay"; - }; - - sata@31a40000 { - compatible = "generic-ahci"; - reg = <0x00 0x31a40000 0x00 0x1000>; - interrupts = <0x00 0x2a 0x04>; - status = "disabled"; - }; - - sata@32014000 { - compatible = "generic-ahci"; - reg = <0x00 0x32014000 0x00 0x1000>; - interrupts = <0x00 0x2b 0x04>; - status = "disabled"; - }; - - ethernet@3200c000 { - compatible = "cdns,phytium-gem-1.0"; - reg = <0x00 0x3200c000 0x00 0x2000>; - interrupts = <0x00 0x37 0x04 0x00 0x38 0x04 0x00 0x39 0x04 0x00 0x3a 0x04 0x00 0x1c 0x04 0x00 0x1d 0x04 0x00 0x1e 0x04 0x00 0x1f 0x04>; - clock-names = "pclk\0hclk\0tx_clk\0tsu_clk"; - clocks = <0x12 0x13 0x13 0x12>; - magic-packet; - support-tsn; - status = "okay"; - phy-mode = "sgmii"; - use-mii; - }; - - ethernet@3200e000 { - compatible = "cdns,phytium-gem-1.0"; - reg = <0x00 0x3200e000 0x00 0x2000>; - interrupts = <0x00 0x3b 0x04 0x00 0x3c 0x04 0x00 0x3d 0x04 0x00 0x3e 0x04>; - clock-names = "pclk\0hclk\0tx_clk\0tsu_clk"; - clocks = <0x12 0x13 0x13 0x12>; - magic-packet; - status = "okay"; - phy-mode = "sgmii"; - use-mii; - }; - - ethernet@32010000 { - compatible = "cdns,phytium-gem-1.0"; - reg = <0x00 0x32010000 0x00 0x2000>; - interrupts = <0x00 0x40 0x04 0x00 0x41 0x04 0x00 0x42 0x04 0x00 0x43 0x04>; - clock-names = "pclk\0hclk\0tx_clk\0tsu_clk"; - clocks = <0x12 0x13 0x13 0x12>; - magic-packet; - status = "disabled"; - }; - - ethernet@32012000 { - compatible = "cdns,phytium-gem-1.0"; - reg = <0x00 0x32012000 0x00 0x2000>; - interrupts = <0x00 0x44 0x04 0x00 0x45 0x04 0x00 0x46 0x04 0x00 0x47 0x04>; - clock-names = "pclk\0hclk\0tx_clk\0tsu_clk"; - clocks = <0x12 0x13 0x13 0x12>; - magic-packet; - status = "disabled"; - }; - - vpu@32b00000 { - compatible = "phytium,vpu"; - reg = <0x00 0x32b00000 0x00 0x20000>; - interrupts = <0x00 0x0c 0x04>; - status = "okay"; - }; - - i2c@28026000 { - compatible = "phytium,i2c"; - reg = <0x00 0x28026000 0x00 0x1000>; - interrupts = <0x00 0x65 0x04>; - clocks = <0x0d>; - #address-cells = <0x01>; - #size-cells = <0x00>; - status = "okay"; - }; - - i2c@28030000 { - compatible = "phytium,i2c"; - reg = <0x00 0x28030000 0x00 0x1000>; - interrupts = <0x00 0x6a 0x04>; - clocks = <0x0d>; - #address-cells = <0x01>; - #size-cells = <0x00>; - status = "okay"; - - es8336@10 { - #sound-dai-cells = <0x00>; - compatible = "everest,es8336"; - reg = <0x10>; - phandle = <0x17>; - }; - }; - - uart@28014000 { - compatible = "arm,pl011\0arm,primecell"; - reg = <0x00 0x28014000 0x00 0x1000>; - interrupts = <0x00 0x5c 0x04>; - clocks = <0x0d 0x0d>; - clock-names = "uartclk\0apb_pclk"; - status = "okay"; - }; - - i2c@28016000 { - compatible = "phytium,i2c"; - reg = <0x00 0x28016000 0x00 0x1000>; - interrupts = <0x00 0x5d 0x04>; - clocks = <0x0d>; - #address-cells = <0x01>; - #size-cells = <0x00>; - status = "okay"; - }; - - i2c@28024000 { - compatible = "phytium,i2c"; - reg = <0x00 0x28024000 0x00 0x1000>; - interrupts = <0x00 0x64 0x04>; - clocks = <0x0d>; - #address-cells = <0x01>; - #size-cells = <0x00>; - status = "okay"; - }; - - uart@2802A000 { - compatible = "arm,pl011\0arm,primecell"; - reg = <0x00 0x2802a000 0x00 0x1000>; - interrupts = <0x00 0x67 0x04>; - clocks = <0x0d 0x0d>; - clock-names = "uartclk\0apb_pclk"; - status = "okay"; - }; - - uart@28032000 { - compatible = "arm,pl011\0arm,primecell"; - reg = <0x00 0x28032000 0x00 0x1000>; - interrupts = <0x00 0x6b 0x04>; - clocks = <0x0d 0x0d>; - clock-names = "uartclk\0apb_pclk"; - status = "okay"; - }; - }; - - chosen { - bootargs = "console=ttyAMA1,115200 earlycon=pl011,0x2800d000 root=/dev/mmcblk0p1 rootfstype=ext4 rootwait rw cma=256m ;"; - stdout-path = "serial1:115200n8"; - }; - - memory@00 { - device_type = "memory"; - reg = <0x20 0x40000000 0x00 0x40000000>; - }; - - leds { - compatible = "gpio-leds"; - - sysled { - label = "sysled"; - gpios = <0x14 0x05 0x00>; - linux,default-trigger = "none"; - }; - }; - - sound { - compatible = "simple-audio-card"; - simple-audio-card,format = "i2s"; - simple-audio-card,name = "phytium,pe220x-i2s-audio"; - simple-audio-card,pin-switches = "mic-in"; - simple-audio-card,widgets = "Microphone\0mic-in\0Headphone\0Headphones"; - simple-audio-card,routing = "MIC2\0mic-in"; - simple-audio-card,hp-det-gpio = <0x15 0x0b 0x01>; - - simple-audio-card,cpu { - sound-dai = <0x16>; - }; - - simple-audio-card,codec { - sound-dai = <0x17>; - }; - }; -}; diff --git a/configs/vms_bkp/linux-aarch64-e2000_smp2.toml b/configs/vms_bkp/linux-aarch64-e2000_smp2.toml deleted file mode 100644 index bf409a0b..00000000 --- a/configs/vms_bkp/linux-aarch64-e2000_smp2.toml +++ /dev/null @@ -1,115 +0,0 @@ -# Vm base info configs -# -[base] -# Guest vm id. -id = 1 -# Guest vm name. -name = "linux" -# Virtualization type. -vm_type = 1 -# The number of virtual CPUs. -cpu_num = 2 -# The physical CPU ids. -phys_cpu_ids = [0x200, 0x00] -# Guest vm physical cpu sets. -phys_cpu_sets = [1, 4] - -# -# Vm kernel configs -# -[kernel] -# The entry point of the kernel image. -entry_point = 0x20_4008_0000 -# The location of image: "memory" | "fs". -# Load from file system. -image_location = "memory" -# The load address of the kernel image. -kernel_load_addr = 0x20_4008_0000 -## The file path of the kernel image. -kernel_path = "/path/to/Image" -## The file path of the device tree blob (DTB). -dtb_load_addr = 0x20_4000_0000 -dtb_path = "/path/to/axvisor/configs/vms/linux-aarch64-e2000_smp2.dtb" -# Memory regions with format (`base_paddr`, `size`, `flags`, `map_type`). -# For `map_type`, 0 means `MAP_ALLOC`, 1 means `MAP_IDENTICAL`. -memory_regions = [ - [0x20_4000_0000, 0x4000_0000, 0x7, 1], # System RAM MAP_IDENTICAL - # [0xa000_0000, 0x2000_0000, 0x7, 1], # System RAM 1G MAP_IDENTICAL -] - -# -# Device specifications -# -[devices] -# Emu_devices. -# Name Base-Ipa Ipa_len Alloc-Irq Emu-Type EmuConfig. -interrupt_mode = "passthrough" -emu_devices = [] - -# Pass-through devices. -# Name Base-Ipa Base-Pa Length Alloc-Irq. -passthrough_devices = [ - [ - "QSPI", - 0x0000_0000, - 0x0000_0000, - 0x1000_0000, - 0x1, - ], - [ - "LocalBus", - 0x1000_0000, - 0x1000_0000, - 0x1000_0000, - 0x1, - ], - [ - "low speed peripherals", - 0x2800_0000, - 0x2800_0000, - 0x0800_0000, - 0x1, - ], - [ - "other peripherals", - 0x3000_0000, - 0x3000_0000, - 0x0800_0000, - 0x1, - ], - [ - "IACC", - 0x3800_0000, - 0x3800_0000, - 0x0800_0000, - 0x1, - ], - [ - "PCIE", - 0x4000_0000, - 0x4000_0000, - 0x4000_0000, - 0x1, - ], - [ - "QSPI high address", - 0x01_0000_0000, - 0x01_0000_0000, - 0x8000_0000, - 0x1, - ], - [ - "LocalBus high address", - 0x01_8000_0000, - 0x01_8000_0000, - 0x8000_0000, - 0x1, - ], - [ - "PCIe MEM64", - 0x10_0000_0000, - 0x10_0000_0000, - 0x01_0000_0000, - 0x1, - ], -] diff --git a/configs/vms_bkp/linux-aarch64-rk3568_smp1.dts b/configs/vms_bkp/linux-aarch64-rk3568_smp1.dts deleted file mode 100644 index bdc54614..00000000 --- a/configs/vms_bkp/linux-aarch64-rk3568_smp1.dts +++ /dev/null @@ -1,6108 +0,0 @@ -/dts-v1/; - -/memreserve/ 0x0000000008300000 0x000000000001c000; -/memreserve/ 0x000000000a200000 0x00000000008cf15d; -/ { - serial-number = "425ca8fc29ade692"; - compatible = "rockchip,rk3568-firefly-roc-pc-se\0rockchip,rk3568"; - interrupt-parent = <0x01>; - #address-cells = <0x02>; - #size-cells = <0x02>; - model = "Firefly RK3568-ROC-PC-SE HDMI (Linux)"; - - memory { - reg = <0x00 0x80000000 0x00 0x60000000>; - device_type = "memory"; - }; - - ddr3-params { - version = <0x100>; - expanded_version = <0x00>; - reserved = <0x00>; - freq_0 = <0x420>; - freq_1 = <0x144>; - freq_2 = <0x210>; - freq_3 = <0x30c>; - freq_4 = <0x00>; - freq_5 = <0x00>; - pd_idle = <0x0d>; - sr_idle = <0x5d>; - sr_mc_gate_idle = <0x00>; - srpd_lite_idle = <0x00>; - standby_idle = <0x00>; - pd_dis_freq = <0x42a>; - sr_dis_freq = <0x320>; - dram_dll_dis_freq = <0x12c>; - phy_dll_dis_freq = <0x00>; - phy_dq_drv_odten = <0x21>; - phy_ca_drv_odten = <0x21>; - phy_clk_drv_odten = <0x21>; - dram_dq_drv_odten = <0x22>; - phy_dq_drv_odtoff = <0x21>; - phy_ca_drv_odtoff = <0x21>; - phy_clk_drv_odtoff = <0x21>; - dram_dq_drv_odtoff = <0x22>; - dram_odt = <0x78>; - phy_odt = <0xa7>; - phy_odt_puup_en = <0x01>; - phy_odt_pudn_en = <0x01>; - dram_dq_odt_en_freq = <0x14d>; - phy_odt_en_freq = <0x14d>; - phy_dq_sr_odten = <0x0f>; - phy_ca_sr_odten = <0x03>; - phy_clk_sr_odten = <0x00>; - phy_dq_sr_odtoff = <0x0f>; - phy_ca_sr_odtoff = <0x03>; - phy_clk_sr_odtoff = <0x00>; - ssmod_downspread = <0x00>; - ssmod_div = <0x00>; - ssmod_spread = <0x00>; - mode_2t = <0x00>; - speed_bin = <0x15>; - dram_ext_temp = <0x00>; - byte_map = <0xe4>; - dq_map_cs0_dq_l = <0x00>; - dq_map_cs0_dq_h = <0x00>; - dq_map_cs1_dq_l = <0x00>; - dq_map_cs1_dq_h = <0x00>; - phandle = <0xb7>; - }; - - ddr4-params { - version = <0x100>; - expanded_version = <0x00>; - reserved = <0x00>; - freq_0 = <0x420>; - freq_1 = <0x144>; - freq_2 = <0x210>; - freq_3 = <0x30c>; - freq_4 = <0x00>; - freq_5 = <0x00>; - pd_idle = <0x0d>; - sr_idle = <0x5d>; - sr_mc_gate_idle = <0x00>; - srpd_lite_idle = <0x00>; - standby_idle = <0x00>; - pd_dis_freq = <0x42a>; - sr_dis_freq = <0x320>; - dram_dll_dis_freq = <0x271>; - phy_dll_dis_freq = <0x00>; - phy_dq_drv_odten = <0x25>; - phy_ca_drv_odten = <0x25>; - phy_clk_drv_odten = <0x25>; - dram_dq_drv_odten = <0x22>; - phy_dq_drv_odtoff = <0x25>; - phy_ca_drv_odtoff = <0x25>; - phy_clk_drv_odtoff = <0x25>; - dram_dq_drv_odtoff = <0x22>; - dram_odt = <0x78>; - phy_odt = <0x8b>; - phy_odt_puup_en = <0x01>; - phy_odt_pudn_en = <0x01>; - dram_dq_odt_en_freq = <0x1f4>; - phy_odt_en_freq = <0x1f4>; - phy_dq_sr_odten = <0x0e>; - phy_ca_sr_odten = <0x01>; - phy_clk_sr_odten = <0x01>; - phy_dq_sr_odtoff = <0x0e>; - phy_ca_sr_odtoff = <0x01>; - phy_clk_sr_odtoff = <0x01>; - ssmod_downspread = <0x00>; - ssmod_div = <0x00>; - ssmod_spread = <0x00>; - mode_2t = <0x00>; - speed_bin = <0x0c>; - dram_ext_temp = <0x00>; - byte_map = <0xe4>; - dq_map_cs0_dq_l = <0x22777788>; - dq_map_cs0_dq_h = <0xd7888877>; - dq_map_cs1_dq_l = <0x22777788>; - dq_map_cs1_dq_h = <0xd7888877>; - phandle = <0xb8>; - }; - - lpddr3-params { - version = <0x100>; - expanded_version = <0x00>; - reserved = <0x00>; - freq_0 = <0x420>; - freq_1 = <0x144>; - freq_2 = <0x210>; - freq_3 = <0x30c>; - freq_4 = <0x00>; - freq_5 = <0x00>; - pd_idle = <0x0d>; - sr_idle = <0x5d>; - sr_mc_gate_idle = <0x00>; - srpd_lite_idle = <0x00>; - standby_idle = <0x00>; - pd_dis_freq = <0x42a>; - sr_dis_freq = <0x320>; - dram_dll_dis_freq = <0x00>; - phy_dll_dis_freq = <0x00>; - phy_dq_drv_odten = <0x25>; - phy_ca_drv_odten = <0x25>; - phy_clk_drv_odten = <0x27>; - dram_dq_drv_odten = <0x22>; - phy_dq_drv_odtoff = <0x25>; - phy_ca_drv_odtoff = <0x25>; - phy_clk_drv_odtoff = <0x27>; - dram_dq_drv_odtoff = <0x22>; - dram_odt = <0x78>; - phy_odt = <0x94>; - phy_odt_puup_en = <0x01>; - phy_odt_pudn_en = <0x01>; - dram_dq_odt_en_freq = <0x14d>; - phy_odt_en_freq = <0x14d>; - phy_dq_sr_odten = <0x0f>; - phy_ca_sr_odten = <0x01>; - phy_clk_sr_odten = <0x0f>; - phy_dq_sr_odtoff = <0x0f>; - phy_ca_sr_odtoff = <0x01>; - phy_clk_sr_odtoff = <0x0f>; - ssmod_downspread = <0x00>; - ssmod_div = <0x00>; - ssmod_spread = <0x00>; - mode_2t = <0x00>; - speed_bin = <0x00>; - dram_ext_temp = <0x00>; - byte_map = <0x8d>; - dq_map_cs0_dq_l = <0x00>; - dq_map_cs0_dq_h = <0x00>; - dq_map_cs1_dq_l = <0x00>; - dq_map_cs1_dq_h = <0x00>; - phandle = <0xb9>; - }; - - lpddr4-params { - version = <0x100>; - expanded_version = <0x00>; - reserved = <0x00>; - freq_0 = <0x618>; - freq_1 = <0x144>; - freq_2 = <0x210>; - freq_3 = <0x30c>; - freq_4 = <0x00>; - freq_5 = <0x00>; - pd_idle = <0x0d>; - sr_idle = <0x5d>; - sr_mc_gate_idle = <0x00>; - srpd_lite_idle = <0x00>; - standby_idle = <0x00>; - pd_dis_freq = <0x42a>; - sr_dis_freq = <0x320>; - dram_dll_dis_freq = <0x00>; - phy_dll_dis_freq = <0x00>; - phy_dq_drv_odten = <0x1e>; - phy_ca_drv_odten = <0x26>; - phy_clk_drv_odten = <0x26>; - dram_dq_drv_odten = <0x28>; - phy_dq_drv_odtoff = <0x1e>; - phy_ca_drv_odtoff = <0x26>; - phy_clk_drv_odtoff = <0x26>; - dram_dq_drv_odtoff = <0x28>; - dram_odt = <0x50>; - phy_odt = <0x3c>; - phy_odt_puup_en = <0x00>; - phy_odt_pudn_en = <0x00>; - dram_dq_odt_en_freq = <0x320>; - phy_odt_en_freq = <0x320>; - phy_dq_sr_odten = <0x00>; - phy_ca_sr_odten = <0x0f>; - phy_clk_sr_odten = <0x0f>; - phy_dq_sr_odtoff = <0x00>; - phy_ca_sr_odtoff = <0x0f>; - phy_clk_sr_odtoff = <0x0f>; - ssmod_downspread = <0x00>; - ssmod_div = <0x00>; - ssmod_spread = <0x00>; - mode_2t = <0x00>; - speed_bin = <0x00>; - dram_ext_temp = <0x00>; - byte_map = <0xe4>; - dq_map_cs0_dq_l = <0x00>; - dq_map_cs0_dq_h = <0x00>; - dq_map_cs1_dq_l = <0x00>; - dq_map_cs1_dq_h = <0x00>; - lp4_ca_odt = <0x78>; - lp4_drv_pu_cal_odten = <0x01>; - lp4_drv_pu_cal_odtoff = <0x01>; - phy_lp4_drv_pulldown_en_odten = <0x00>; - phy_lp4_drv_pulldown_en_odtoff = <0x00>; - lp4_ca_odt_en_freq = <0x320>; - phy_lp4_cs_drv_odten = <0x00>; - phy_lp4_cs_drv_odtoff = <0x00>; - lp4_odte_ck_en = <0x01>; - lp4_odte_cs_en = <0x01>; - lp4_odtd_ca_en = <0x00>; - phy_lp4_dq_vref_odten = <0xa6>; - lp4_dq_vref_odten = <0x12c>; - lp4_ca_vref_odten = <0x17c>; - phy_lp4_dq_vref_odtoff = <0x1a4>; - lp4_dq_vref_odtoff = <0x1a4>; - lp4_ca_vref_odtoff = <0x1a4>; - phandle = <0xba>; - }; - - lpddr4x-params { - version = <0x100>; - expanded_version = <0x00>; - reserved = <0x00>; - freq_0 = <0x618>; - freq_1 = <0x144>; - freq_2 = <0x210>; - freq_3 = <0x30c>; - freq_4 = <0x00>; - freq_5 = <0x00>; - pd_idle = <0x0d>; - sr_idle = <0x5d>; - sr_mc_gate_idle = <0x00>; - srpd_lite_idle = <0x00>; - standby_idle = <0x00>; - pd_dis_freq = <0x42a>; - sr_dis_freq = <0x320>; - dram_dll_dis_freq = <0x00>; - phy_dll_dis_freq = <0x00>; - phy_dq_drv_odten = <0x1d>; - phy_ca_drv_odten = <0x24>; - phy_clk_drv_odten = <0x24>; - dram_dq_drv_odten = <0x28>; - phy_dq_drv_odtoff = <0x1d>; - phy_ca_drv_odtoff = <0x24>; - phy_clk_drv_odtoff = <0x24>; - dram_dq_drv_odtoff = <0x28>; - dram_odt = <0x50>; - phy_odt = <0x3c>; - phy_odt_puup_en = <0x00>; - phy_odt_pudn_en = <0x00>; - dram_dq_odt_en_freq = <0x320>; - phy_odt_en_freq = <0x320>; - phy_dq_sr_odten = <0x00>; - phy_ca_sr_odten = <0x00>; - phy_clk_sr_odten = <0x00>; - phy_dq_sr_odtoff = <0x00>; - phy_ca_sr_odtoff = <0x00>; - phy_clk_sr_odtoff = <0x00>; - ssmod_downspread = <0x00>; - ssmod_div = <0x00>; - ssmod_spread = <0x00>; - mode_2t = <0x00>; - speed_bin = <0x00>; - dram_ext_temp = <0x00>; - byte_map = <0xe4>; - dq_map_cs0_dq_l = <0x00>; - dq_map_cs0_dq_h = <0x00>; - dq_map_cs1_dq_l = <0x00>; - dq_map_cs1_dq_h = <0x00>; - lp4_ca_odt = <0x78>; - lp4_drv_pu_cal_odten = <0x00>; - lp4_drv_pu_cal_odtoff = <0x00>; - phy_lp4_drv_pulldown_en_odten = <0x00>; - phy_lp4_drv_pulldown_en_odtoff = <0x00>; - lp4_ca_odt_en_freq = <0x320>; - phy_lp4_cs_drv_odten = <0x00>; - phy_lp4_cs_drv_odtoff = <0x00>; - lp4_odte_ck_en = <0x00>; - lp4_odte_cs_en = <0x00>; - lp4_odtd_ca_en = <0x00>; - phy_lp4_dq_vref_odten = <0xa6>; - lp4_dq_vref_odten = <0xe4>; - lp4_ca_vref_odten = <0x157>; - phy_lp4_dq_vref_odtoff = <0x1a4>; - lp4_dq_vref_odtoff = <0x1a4>; - lp4_ca_vref_odtoff = <0x157>; - phandle = <0xbb>; - }; - - aliases { - csi2dphy0 = "/csi2-dphy0"; - csi2dphy1 = "/csi2-dphy1"; - csi2dphy2 = "/csi2-dphy2"; - dsi0 = "/dsi@fe060000"; - dsi1 = "/dsi@fe070000"; - ethernet0 = "/ethernet@fe2a0000"; - ethernet1 = "/ethernet@fe010000"; - gpio0 = "/pinctrl/gpio0@fdd60000"; - gpio1 = "/pinctrl/gpio1@fe740000"; - gpio2 = "/pinctrl/gpio2@fe750000"; - gpio3 = "/pinctrl/gpio3@fe760000"; - gpio4 = "/pinctrl/gpio4@fe770000"; - i2c0 = "/i2c@fdd40000"; - i2c1 = "/i2c@fe5a0000"; - i2c2 = "/i2c@fe5b0000"; - i2c3 = "/i2c@fe5c0000"; - i2c4 = "/i2c@fe5d0000"; - i2c5 = "/i2c@fe5e0000"; - mmc0 = "/sdhci@fe310000"; - mmc1 = "/dwmmc@fe2b0000"; - mmc2 = "/dwmmc@fe2c0000"; - mmc3 = "/dwmmc@fe000000"; - serial0 = "/serial@fdd50000"; - serial1 = "/serial@fe650000"; - serial2 = "/serial@fe660000"; - serial3 = "/serial@fe670000"; - serial4 = "/serial@fe680000"; - serial5 = "/serial@fe690000"; - serial6 = "/serial@fe6a0000"; - serial7 = "/serial@fe6b0000"; - serial8 = "/serial@fe6c0000"; - serial9 = "/serial@fe6d0000"; - spi0 = "/spi@fe610000"; - spi1 = "/spi@fe620000"; - spi2 = "/spi@fe630000"; - spi3 = "/spi@fe640000"; - lvds0 = "/syscon@fdc60000/lvds"; - lvds1 = "/syscon@fdc60000/lvds1"; - }; - - cpus { - #address-cells = <0x02>; - #size-cells = <0x00>; - - cpu@0 { - device_type = "cpu"; - compatible = "arm,cortex-a55"; - reg = <0x00 0x00>; - enable-method = "psci"; - clocks = <0x02 0x00>; - operating-points-v2 = <0x03>; - cpu-idle-states = <0x04>; - #cooling-cells = <0x02>; - dynamic-power-coefficient = <0xbb>; - cpu-supply = <0x05>; - phandle = <0x0c>; - }; - - // cpu@100 { - // device_type = "cpu"; - // compatible = "arm,cortex-a55"; - // reg = <0x00 0x100>; - // enable-method = "psci"; - // clocks = <0x02 0x00>; - // operating-points-v2 = <0x03>; - // cpu-idle-states = <0x04>; - // phandle = <0x0d>; - // }; - - // cpu@200 { - // device_type = "cpu"; - // compatible = "arm,cortex-a55"; - // reg = <0x00 0x200>; - // enable-method = "psci"; - // clocks = <0x02 0x00>; - // operating-points-v2 = <0x03>; - // cpu-idle-states = <0x04>; - // phandle = <0x0e>; - // }; - - // cpu@300 { - // device_type = "cpu"; - // compatible = "arm,cortex-a55"; - // reg = <0x00 0x300>; - // enable-method = "psci"; - // clocks = <0x02 0x00>; - // operating-points-v2 = <0x03>; - // cpu-idle-states = <0x04>; - // phandle = <0x0f>; - // }; - - idle-states { - entry-method = "psci"; - - cpu-sleep { - compatible = "arm,idle-state"; - local-timer-stop; - arm,psci-suspend-param = <0x10000>; - entry-latency-us = <0x64>; - exit-latency-us = <0x78>; - min-residency-us = <0x3e8>; - phandle = <0x04>; - }; - }; - }; - - cpu0-opp-table { - compatible = "operating-points-v2"; - opp-shared; - mbist-vmin = <0xc96a8 0xdbba0 0xe7ef0>; - nvmem-cells = <0x06 0x07 0x08 0x09 0x0a 0x0b>; - nvmem-cell-names = "leakage\0pvtm\0mbist-vmin\0opp-info\0specification_serial_number\0remark_spec_serial_number"; - rockchip,supported-hw; - rockchip,max-volt = <0x118c30>; - rockchip,pvtm-voltage-sel = <0x00 0x14820 0x00 0x14821 0x153d8 0x01 0x153d9 0x16378 0x02 0x16379 0x186a0 0x03>; - rockchip,pvtm-freq = <0x639c0>; - rockchip,pvtm-volt = <0xdbba0>; - rockchip,pvtm-ch = <0x00 0x05>; - rockchip,pvtm-sample-time = <0x3e8>; - rockchip,pvtm-number = <0x0a>; - rockchip,pvtm-error = <0x3e8>; - rockchip,pvtm-ref-temp = <0x28>; - rockchip,pvtm-temp-prop = <0x1a 0x1a>; - rockchip,thermal-zone = "soc-thermal"; - rockchip,temp-hysteresis = <0x1388>; - rockchip,low-temp = <0x00>; - rockchip,low-temp-adjust-volt = <0x00 0x7c8 0x124f8>; - phandle = <0x03>; - - opp-408000000 { - opp-supported-hw = <0xfb 0xffff>; - opp-hz = <0x00 0x18519600>; - opp-microvolt = <0xcf850 0xcf850 0x118c30>; - clock-latency-ns = <0x9c40>; - }; - - opp-600000000 { - opp-supported-hw = <0xfb 0xffff>; - opp-hz = <0x00 0x23c34600>; - opp-microvolt = <0xcf850 0xcf850 0x118c30>; - clock-latency-ns = <0x9c40>; - }; - - opp-816000000 { - opp-supported-hw = <0xfb 0xffff>; - opp-hz = <0x00 0x30a32c00>; - opp-microvolt = <0xcf850 0xcf850 0x118c30>; - clock-latency-ns = <0x9c40>; - opp-suspend; - }; - - opp-1104000000 { - opp-supported-hw = <0xfb 0xffff>; - opp-hz = <0x00 0x41cdb400>; - opp-microvolt = <0xdbba0 0xdbba0 0x118c30>; - opp-microvolt-L0 = <0xdbba0 0xdbba0 0x118c30>; - opp-microvolt-L1 = <0xcf850 0xcf850 0x118c30>; - opp-microvolt-L2 = <0xcf850 0xcf850 0x118c30>; - opp-microvolt-L3 = <0xcf850 0xcf850 0x118c30>; - clock-latency-ns = <0x9c40>; - }; - - opp-1416000000 { - opp-supported-hw = <0xfb 0xffff>; - opp-hz = <0x00 0x54667200>; - opp-microvolt = <0xfa3e8 0xfa3e8 0x118c30>; - opp-microvolt-L0 = <0xfa3e8 0xfa3e8 0x118c30>; - opp-microvolt-L1 = <0xee098 0xee098 0x118c30>; - opp-microvolt-L2 = <0xe7ef0 0xe7ef0 0x118c30>; - opp-microvolt-L3 = <0xe1d48 0xe1d48 0x118c30>; - clock-latency-ns = <0x9c40>; - }; - - opp-1608000000 { - opp-supported-hw = <0xf9 0xffff>; - opp-hz = <0x00 0x5fd82200>; - opp-microvolt = <0x10c8e0 0x10c8e0 0x118c30>; - opp-microvolt-L0 = <0x10c8e0 0x10c8e0 0x118c30>; - opp-microvolt-L1 = <0x100590 0x100590 0x118c30>; - opp-microvolt-L2 = <0xfa3e8 0xfa3e8 0x118c30>; - opp-microvolt-L3 = <0xf4240 0xf4240 0x118c30>; - clock-latency-ns = <0x9c40>; - }; - - opp-1800000000 { - opp-supported-hw = <0xf9 0xffff>; - opp-hz = <0x00 0x6b49d200>; - opp-microvolt = <0x118c30 0x118c30 0x118c30>; - opp-microvolt-L0 = <0x118c30 0x118c30 0x118c30>; - opp-microvolt-L1 = <0x10c8e0 0x10c8e0 0x118c30>; - opp-microvolt-L2 = <0x106738 0x106738 0x118c30>; - opp-microvolt-L3 = <0x100590 0x100590 0x118c30>; - clock-latency-ns = <0x9c40>; - }; - - opp-1992000000 { - opp-supported-hw = <0xf9 0xffff>; - opp-hz = <0x00 0x76bb8200>; - opp-microvolt = <0x118c30 0x118c30 0x118c30>; - opp-microvolt-L0 = <0x118c30 0x118c30 0x118c30>; - opp-microvolt-L1 = <0x118c30 0x118c30 0x118c30>; - opp-microvolt-L2 = <0x112a88 0x112a88 0x118c30>; - opp-microvolt-L3 = <0x10c8e0 0x10c8e0 0x118c30>; - clock-latency-ns = <0x9c40>; - }; - - opp-j-1008000000 { - opp-supported-hw = <0x04 0xffff>; - opp-hz = <0x00 0x3c14dc00>; - opp-microvolt = <0xcf850 0xcf850 0x118c30>; - clock-latency-ns = <0x9c40>; - }; - - opp-j-1416000000 { - opp-supported-hw = <0x04 0xffff>; - opp-hz = <0x00 0x54667200>; - opp-microvolt = <0xdbba0 0xdbba0 0x118c30>; - clock-latency-ns = <0x9c40>; - }; - - opp-m-1608000000 { - opp-supported-hw = <0x02 0xffff>; - opp-hz = <0x00 0x5fd82200>; - opp-microvolt = <0xf4240 0xf4240 0x118c30>; - clock-latency-ns = <0x9c40>; - }; - }; - - arm-pmu { - compatible = "arm,cortex-a55-pmu\0arm,armv8-pmuv3"; - interrupts = <0x00 0xe4 0x04 0x00 0xe5 0x04 0x00 0xe6 0x04 0x00 0xe7 0x04>; - interrupt-affinity = <0x0c 0x0d 0x0e 0x0f>; - }; - - cpuinfo { - compatible = "rockchip,cpuinfo"; - nvmem-cells = <0x10 0x11 0x12>; - nvmem-cell-names = "id\0cpu-version\0cpu-code"; - }; - - display-subsystem { - compatible = "rockchip,display-subsystem"; - memory-region = <0x13 0x14>; - memory-region-names = "drm-logo\0drm-cubic-lut"; - ports = <0x15>; - devfreq = <0x16>; - - route { - - route-dsi0 { - status = "disabled"; - logo,uboot = "logo.bmp"; - logo,kernel = "logo_kernel.bmp"; - logo,mode = "center"; - charge_logo,mode = "center"; - connect = <0x17>; - }; - - route-dsi1 { - status = "disabled"; - logo,uboot = "logo.bmp"; - logo,kernel = "logo_kernel.bmp"; - logo,mode = "center"; - charge_logo,mode = "center"; - connect = <0x18>; - }; - - route-edp { - status = "disabled"; - logo,uboot = "logo.bmp"; - logo,kernel = "logo_kernel.bmp"; - logo,mode = "center"; - charge_logo,mode = "center"; - connect = <0x19>; - }; - - route-hdmi { - status = "okay"; - logo,uboot = "logo.bmp"; - logo,kernel = "logo_kernel.bmp"; - logo,mode = "center"; - charge_logo,mode = "center"; - connect = <0x1a>; - }; - - route-lvds { - status = "disabled"; - logo,uboot = "logo.bmp"; - logo,kernel = "logo_kernel.bmp"; - logo,mode = "center"; - charge_logo,mode = "center"; - connect = <0x1b>; - }; - - route-rgb { - status = "disabled"; - logo,uboot = "logo.bmp"; - logo,kernel = "logo_kernel.bmp"; - logo,mode = "center"; - charge_logo,mode = "center"; - connect = <0x1c>; - }; - }; - }; - - edac { - compatible = "rockchip,rk3568-edac"; - interrupts = <0x00 0xad 0x04 0x00 0xaf 0x04>; - interrupt-names = "ce\0ue"; - status = "disabled"; - }; - - firmware { - - scmi { - compatible = "arm,scmi-smc"; - shmem = <0x1d>; - arm,smc-id = <0x82000010>; - #address-cells = <0x01>; - #size-cells = <0x00>; - - protocol@14 { - reg = <0x14>; - #clock-cells = <0x01>; - rockchip,clk-init = <0x41cdb400>; - phandle = <0x02>; - }; - }; - - sdei { - compatible = "arm,sdei-1.0"; - method = "smc"; - }; - }; - - mipi-csi2 { - compatible = "rockchip,rk3568-mipi-csi2"; - rockchip,hw = <0x1e>; - status = "disabled"; - }; - - mpp-srv { - compatible = "rockchip,mpp-service"; - rockchip,taskqueue-count = <0x06>; - rockchip,resetgroup-count = <0x06>; - status = "okay"; - phandle = <0x7b>; - }; - - psci { - compatible = "arm,psci-1.0"; - method = "smc"; - }; - - reserved-memory { - #address-cells = <0x02>; - #size-cells = <0x02>; - ranges; - - drm-logo@00000000 { - compatible = "rockchip,drm-logo"; - reg = <0x00 0xedf00000 0x00 0x2e0000>; - phandle = <0x13>; - }; - - drm-cubic-lut@00000000 { - compatible = "rockchip,drm-cubic-lut"; - reg = <0x00 0xeff00000 0x00 0x8000>; - phandle = <0x14>; - }; - - ramoops@110000 { - compatible = "ramoops"; - reg = <0x00 0x110000 0x00 0xf0000>; - record-size = <0x20000>; - console-size = <0x80000>; - ftrace-size = <0x00>; - pmsg-size = <0x50000>; - }; - }; - - rockchip-suspend { - compatible = "rockchip,pm-rk3568"; - status = "okay"; - rockchip,sleep-debug-en = <0x01>; - rockchip,sleep-mode-config = <0x5ec>; - rockchip,wakeup-config = <0x10>; - }; - - rockchip-system-monitor { - compatible = "rockchip,system-monitor"; - rockchip,thermal-zone = "soc-thermal"; - }; - - thermal-zones { - - soc-thermal { - polling-delay-passive = <0x14>; - polling-delay = <0x3e8>; - sustainable-power = <0x389>; - thermal-sensors = <0x1f 0x00>; - - trips { - - trip-point-0 { - temperature = <0x124f8>; - hysteresis = <0x7d0>; - type = "passive"; - }; - - trip-point-1 { - temperature = <0x14c08>; - hysteresis = <0x7d0>; - type = "passive"; - phandle = <0x20>; - }; - - soc-crit { - temperature = <0x1c138>; - hysteresis = <0x7d0>; - type = "critical"; - }; - }; - - cooling-maps { - - map0 { - trip = <0x20>; - cooling-device = <0x0c 0xffffffff 0xffffffff>; - contribution = <0x400>; - }; - - map1 { - trip = <0x20>; - cooling-device = <0x21 0xffffffff 0xffffffff>; - contribution = <0x400>; - }; - }; - }; - - gpu-thermal { - polling-delay-passive = <0x14>; - polling-delay = <0x3e8>; - thermal-sensors = <0x1f 0x01>; - }; - }; - - timer { - compatible = "arm,armv8-timer"; - interrupts = <0x01 0x0d 0xf04 0x01 0x0e 0xf04 0x01 0x0b 0xf04 0x01 0x0a 0xf04>; - arm,no-tick-in-suspend; - }; - - external-gmac0-clock { - compatible = "fixed-clock"; - clock-frequency = <0x7735940>; - clock-output-names = "gmac0_clkin"; - #clock-cells = <0x00>; - phandle = <0xc7>; - }; - - external-gmac1-clock { - compatible = "fixed-clock"; - clock-frequency = <0x7735940>; - clock-output-names = "gmac1_clkin"; - #clock-cells = <0x00>; - phandle = <0x92>; - }; - - xpcs-gmac0-clock { - compatible = "fixed-clock"; - clock-frequency = <0x7735940>; - clock-output-names = "clk_gmac0_xpcs_mii"; - #clock-cells = <0x00>; - }; - - xpcs-gmac1-clock { - compatible = "fixed-clock"; - clock-frequency = <0x7735940>; - clock-output-names = "clk_gmac1_xpcs_mii"; - #clock-cells = <0x00>; - }; - - i2s1-mclkin-rx { - compatible = "fixed-clock"; - #clock-cells = <0x00>; - clock-frequency = <0xbb8000>; - clock-output-names = "i2s1_mclkin_rx"; - }; - - i2s1-mclkin-tx { - compatible = "fixed-clock"; - #clock-cells = <0x00>; - clock-frequency = <0xbb8000>; - clock-output-names = "i2s1_mclkin_tx"; - }; - - i2s2-mclkin { - compatible = "fixed-clock"; - #clock-cells = <0x00>; - clock-frequency = <0xbb8000>; - clock-output-names = "i2s2_mclkin"; - }; - - i2s3-mclkin { - compatible = "fixed-clock"; - #clock-cells = <0x00>; - clock-frequency = <0xbb8000>; - clock-output-names = "i2s3_mclkin"; - }; - - mpll { - compatible = "fixed-clock"; - #clock-cells = <0x00>; - clock-frequency = <0x2faf0800>; - clock-output-names = "mpll"; - }; - - xin24m { - compatible = "fixed-clock"; - #clock-cells = <0x00>; - clock-frequency = <0x16e3600>; - clock-output-names = "xin24m"; - }; - - xin32k { - compatible = "fixed-clock"; - clock-frequency = <0x8000>; - clock-output-names = "xin32k"; - #clock-cells = <0x00>; - pinctrl-names = "default"; - pinctrl-0 = <0x22>; - }; - - scmi-shmem@10f000 { - compatible = "arm,scmi-shmem"; - reg = <0x00 0x10f000 0x00 0x100>; - phandle = <0x1d>; - }; - - sata@fc000000 { - compatible = "snps,dwc-ahci"; - reg = <0x00 0xfc000000 0x00 0x1000>; - clocks = <0x23 0x96 0x23 0x97 0x23 0x98>; - clock-names = "sata\0pmalive\0rxoob"; - interrupts = <0x00 0x5e 0x04>; - interrupt-names = "hostc"; - phys = <0x24 0x01>; - phy-names = "sata-phy"; - ports-implemented = <0x01>; - power-domains = <0x25 0x0f>; - status = "disabled"; - }; - - sata@fc400000 { - compatible = "snps,dwc-ahci"; - reg = <0x00 0xfc400000 0x00 0x1000>; - clocks = <0x23 0x9b 0x23 0x9c 0x23 0x9d>; - clock-names = "sata\0pmalive\0rxoob"; - interrupts = <0x00 0x5f 0x04>; - interrupt-names = "hostc"; - phys = <0x26 0x01>; - phy-names = "sata-phy"; - ports-implemented = <0x01>; - power-domains = <0x25 0x0f>; - status = "disabled"; - }; - - sata@fc800000 { - compatible = "snps,dwc-ahci"; - reg = <0x00 0xfc800000 0x00 0x1000>; - clocks = <0x23 0xa0 0x23 0xa1 0x23 0xa2>; - clock-names = "sata\0pmalive\0rxoob"; - interrupts = <0x00 0x60 0x04>; - interrupt-names = "hostc"; - phys = <0x27 0x01>; - phy-names = "sata-phy"; - ports-implemented = <0x01>; - power-domains = <0x25 0x0f>; - status = "okay"; - }; - - usbdrd { - compatible = "rockchip,rk3568-dwc3\0rockchip,rk3399-dwc3"; - clocks = <0x23 0xa6 0x23 0xa7 0x23 0xa5 0x23 0x7f>; - clock-names = "ref_clk\0suspend_clk\0bus_clk\0pipe_clk"; - #address-cells = <0x02>; - #size-cells = <0x02>; - ranges; - status = "okay"; - - dwc3@fcc00000 { - compatible = "snps,dwc3"; - reg = <0x00 0xfcc00000 0x00 0x400000>; - interrupts = <0x00 0xa9 0x04>; - dr_mode = "otg"; - phys = <0x28 0x24 0x04>; - phy-names = "usb2-phy\0usb3-phy"; - phy_type = "utmi_wide"; - power-domains = <0x25 0x0f>; - resets = <0x23 0x94>; - reset-names = "usb3-otg"; - snps,dis_enblslpm_quirk; - snps,dis-u1-entry-quirk; - snps,dis-u2-entry-quirk; - snps,dis-u2-freeclk-exists-quirk; - snps,dis-del-phy-power-chg-quirk; - snps,dis-tx-ipgap-linecheck-quirk; - snps,dis_rxdet_inp3_quirk; - snps,parkmode-disable-hs-quirk; - snps,parkmode-disable-ss-quirk; - quirk-skip-phy-init; - status = "okay"; - extcon = <0x29>; - usb-role-switch; - - port { - #address-cells = <0x01>; - #size-cells = <0x00>; - - endpoint@0 { - reg = <0x00>; - remote-endpoint = <0x2a>; - phandle = <0x4d>; - }; - }; - }; - }; - - usbhost { - compatible = "rockchip,rk3568-dwc3\0rockchip,rk3399-dwc3"; - clocks = <0x23 0xa9 0x23 0xaa 0x23 0xa8 0x23 0x7f>; - clock-names = "ref_clk\0suspend_clk\0bus_clk\0pipe_clk"; - #address-cells = <0x02>; - #size-cells = <0x02>; - ranges; - status = "okay"; - - dwc3@fd000000 { - compatible = "snps,dwc3"; - reg = <0x00 0xfd000000 0x00 0x400000>; - interrupts = <0x00 0xaa 0x04>; - dr_mode = "host"; - phys = <0x2b 0x26 0x04>; - phy-names = "usb2-phy\0usb3-phy"; - phy_type = "utmi_wide"; - power-domains = <0x25 0x0f>; - resets = <0x23 0x95>; - reset-names = "usb3-host"; - snps,dis_enblslpm_quirk; - snps,dis-u2-freeclk-exists-quirk; - snps,dis-del-phy-power-chg-quirk; - snps,dis-tx-ipgap-linecheck-quirk; - snps,dis_rxdet_inp3_quirk; - snps,parkmode-disable-hs-quirk; - snps,parkmode-disable-ss-quirk; - status = "okay"; - }; - }; - - interrupt-controller@fd400000 { - compatible = "arm,gic-v3"; - #interrupt-cells = <0x03>; - #address-cells = <0x02>; - #size-cells = <0x02>; - ranges; - interrupt-controller; - reg = <0x00 0xfd400000 0x00 0x10000 0x00 0xfd460000 0x00 0xc0000>; - interrupts = <0x01 0x09 0x04>; - phandle = <0x01>; - - interrupt-controller@fd440000 { - compatible = "arm,gic-v3-its"; - msi-controller; - #msi-cells = <0x01>; - reg = <0x00 0xfd440000 0x00 0x20000>; - status = "okay"; - phandle = <0xbe>; - }; - }; - - usb@fd800000 { - compatible = "generic-ehci"; - reg = <0x00 0xfd800000 0x00 0x40000>; - interrupts = <0x00 0x82 0x04>; - clocks = <0x23 0xbd 0x23 0xbe 0x23 0xbc 0x2c>; - clock-names = "usbhost\0arbiter\0pclk\0utmi"; - phys = <0x2d>; - phy-names = "usb2-phy"; - status = "okay"; - }; - - usb@fd840000 { - compatible = "generic-ohci"; - reg = <0x00 0xfd840000 0x00 0x40000>; - interrupts = <0x00 0x83 0x04>; - clocks = <0x23 0xbd 0x23 0xbe 0x23 0xbc 0x2c>; - clock-names = "usbhost\0arbiter\0pclk\0utmi"; - phys = <0x2d>; - phy-names = "usb2-phy"; - status = "okay"; - }; - - usb@fd880000 { - compatible = "generic-ehci"; - reg = <0x00 0xfd880000 0x00 0x40000>; - interrupts = <0x00 0x85 0x04>; - clocks = <0x23 0xbf 0x23 0xc0 0x23 0xbc 0x2c>; - clock-names = "usbhost\0arbiter\0pclk\0utmi"; - phys = <0x2e>; - phy-names = "usb2-phy"; - status = "okay"; - }; - - usb@fd8c0000 { - compatible = "generic-ohci"; - reg = <0x00 0xfd8c0000 0x00 0x40000>; - interrupts = <0x00 0x86 0x04>; - clocks = <0x23 0xbf 0x23 0xc0 0x23 0xbc 0x2c>; - clock-names = "usbhost\0arbiter\0pclk\0utmi"; - phys = <0x2e>; - phy-names = "usb2-phy"; - status = "okay"; - }; - - syscon@fda00000 { - compatible = "rockchip,rk3568-xpcs\0syscon"; - reg = <0x00 0xfda00000 0x00 0x200000>; - status = "disabled"; - }; - - syscon@fdc20000 { - compatible = "rockchip,rk3568-pmugrf\0syscon\0simple-mfd"; - reg = <0x00 0xfdc20000 0x00 0x10000>; - phandle = <0x3c>; - - io-domains { - compatible = "rockchip,rk3568-pmu-io-voltage-domain"; - status = "okay"; - pmuio1-supply = <0x2f>; - pmuio2-supply = <0x2f>; - vccio1-supply = <0x30>; - vccio3-supply = <0x31>; - vccio4-supply = <0x32>; - vccio5-supply = <0x33>; - vccio6-supply = <0x32>; - vccio7-supply = <0x33>; - }; - - reboot-mode { - compatible = "syscon-reboot-mode"; - offset = <0x200>; - mode-bootloader = <0x5242c301>; - mode-charge = <0x5242c30b>; - mode-fastboot = <0x5242c309>; - mode-loader = <0x5242c301>; - mode-normal = <0x5242c300>; - mode-recovery = <0x5242c303>; - mode-ums = <0x5242c30c>; - mode-panic = <0x5242c307>; - mode-watchdog = <0x5242c308>; - }; - }; - - syscon@fdc50000 { - compatible = "rockchip,rk3568-pipegrf\0syscon"; - reg = <0x00 0xfdc50000 0x00 0x1000>; - phandle = <0x12a>; - }; - - syscon@fdc60000 { - compatible = "rockchip,rk3568-grf\0syscon\0simple-mfd"; - reg = <0x00 0xfdc60000 0x00 0x10000>; - phandle = <0x3b>; - - io-domains { - compatible = "rockchip,rk3568-io-voltage-domain"; - status = "disabled"; - }; - - lvds { - compatible = "rockchip,rk3568-lvds"; - phys = <0x34>; - phy-names = "phy"; - status = "disabled"; - - ports { - #address-cells = <0x01>; - #size-cells = <0x00>; - - port@0 { - reg = <0x00>; - #address-cells = <0x01>; - #size-cells = <0x00>; - - endpoint@1 { - reg = <0x01>; - remote-endpoint = <0x1b>; - status = "disabled"; - phandle = <0xa3>; - }; - - endpoint@2 { - reg = <0x02>; - remote-endpoint = <0x35>; - status = "disabled"; - phandle = <0xa5>; - }; - }; - }; - }; - - lvds1 { - compatible = "rockchip,rk3568-lvds"; - phys = <0x36>; - phy-names = "phy"; - status = "disabled"; - - ports { - #address-cells = <0x01>; - #size-cells = <0x00>; - - port@0 { - reg = <0x00>; - #address-cells = <0x01>; - #size-cells = <0x00>; - - endpoint@0 { - reg = <0x00>; - remote-endpoint = <0x37>; - phandle = <0xa4>; - }; - - endpoint@1 { - reg = <0x01>; - remote-endpoint = <0x38>; - phandle = <0xa7>; - }; - }; - }; - }; - - rgb { - compatible = "rockchip,rk3568-rgb"; - pinctrl-names = "default"; - pinctrl-0 = <0x39>; - status = "disabled"; - - ports { - #address-cells = <0x01>; - #size-cells = <0x00>; - - port@0 { - reg = <0x00>; - #address-cells = <0x01>; - #size-cells = <0x00>; - - endpoint@2 { - reg = <0x02>; - remote-endpoint = <0x1c>; - status = "disabled"; - phandle = <0xa6>; - }; - }; - }; - }; - }; - - syscon@fdc70000 { - compatible = "rockchip,pipe-phy-grf\0syscon"; - reg = <0x00 0xfdc70000 0x00 0x1000>; - phandle = <0x12b>; - }; - - syscon@fdc80000 { - compatible = "rockchip,pipe-phy-grf\0syscon"; - reg = <0x00 0xfdc80000 0x00 0x1000>; - phandle = <0x12c>; - }; - - syscon@fdc90000 { - compatible = "rockchip,pipe-phy-grf\0syscon"; - reg = <0x00 0xfdc90000 0x00 0x1000>; - phandle = <0x12d>; - }; - - syscon@fdca0000 { - compatible = "rockchip,rk3568-usb2phy-grf\0syscon"; - reg = <0x00 0xfdca0000 0x00 0x8000>; - phandle = <0x135>; - }; - - syscon@fdca8000 { - compatible = "rockchip,rk3568-usb2phy-grf\0syscon"; - reg = <0x00 0xfdca8000 0x00 0x8000>; - phandle = <0x137>; - }; - - syscon@fdcb0000 { - compatible = "rockchip,rk3568-edp-phy-grf\0syscon\0simple-mfd"; - reg = <0x00 0xfdcb0000 0x00 0x100>; - clocks = <0x23 0x192>; - - edp-phy { - compatible = "rockchip,rk3568-edp-phy"; - clocks = <0x3a 0x29>; - clock-names = "refclk"; - #phy-cells = <0x00>; - status = "disabled"; - phandle = <0xae>; - }; - }; - - syscon@fdcb8000 { - compatible = "rockchip,pcie30-phy-grf\0syscon"; - reg = <0x00 0xfdcb8000 0x00 0x10000>; - phandle = <0x138>; - }; - - sram@fdcc0000 { - compatible = "mmio-sram"; - reg = <0x00 0xfdcc0000 0x00 0xb000>; - #address-cells = <0x01>; - #size-cells = <0x01>; - ranges = <0x00 0x00 0xfdcc0000 0xb000>; - - rkvdec-sram@0 { - reg = <0x00 0xb000>; - phandle = <0x84>; - }; - }; - - clock-controller@fdd00000 { - compatible = "rockchip,rk3568-pmucru"; - reg = <0x00 0xfdd00000 0x00 0x1000>; - rockchip,grf = <0x3b>; - rockchip,pmugrf = <0x3c>; - #clock-cells = <0x01>; - #reset-cells = <0x01>; - assigned-clocks = <0x3a 0x32>; - assigned-clock-parents = <0x3a 0x05>; - phandle = <0x3a>; - }; - - clock-controller@fdd20000 { - compatible = "rockchip,rk3568-cru"; - reg = <0x00 0xfdd20000 0x00 0x1000>; - rockchip,grf = <0x3b>; - #clock-cells = <0x01>; - #reset-cells = <0x01>; - assigned-clocks = <0x3a 0x05 0x23 0x106 0x23 0x10b 0x3a 0x01 0x3a 0x2b 0x23 0x03 0x23 0x19b 0x23 0x09 0x23 0x19c 0x23 0x19d 0x23 0x1a1 0x23 0x19e 0x23 0x19f 0x23 0x1a0 0x23 0x04 0x23 0x10d 0x23 0x10e 0x23 0x173 0x23 0x174 0x23 0x175 0x23 0x176 0x23 0xc9 0x23 0xca 0x23 0x06 0x23 0x7e 0x23 0x7f 0x23 0x3d 0x23 0x41 0x23 0x45 0x23 0x49 0x23 0x4d 0x23 0x4d 0x23 0x55 0x23 0x51 0x23 0x5d 0x23 0xdd>; - assigned-clock-rates = <0x8000 0x11e1a300 0x11e1a300 0xbebc200 0x5f5e100 0x3b9aca00 0x1dcd6500 0x13d92d40 0xee6b280 0x7735940 0x5f5e100 0x3b9aca0 0x2faf080 0x17d7840 0x46cf7100 0x8f0d180 0x5f5e100 0x1dcd6500 0x17d78400 0x8f0d180 0x5f5e100 0x11e1a300 0x8f0d180 0x47868c00 0x17d78400 0x5f5e100 0x46cf7100 0x46cf7100 0x46cf7100 0x46cf7100 0x46cf7100 0x46cf7100 0x46cf7100 0x46cf7100 0x46cf7100 0x1dcd6500>; - assigned-clock-parents = <0x3a 0x08 0x23 0x04 0x23 0x04>; - phandle = <0x23>; - }; - - i2c@fdd40000 { - compatible = "rockchip,rk3399-i2c"; - reg = <0x00 0xfdd40000 0x00 0x1000>; - clocks = <0x3a 0x07 0x3a 0x2d>; - clock-names = "i2c\0pclk"; - interrupts = <0x00 0x2e 0x04>; - pinctrl-names = "default"; - pinctrl-0 = <0x3d>; - #address-cells = <0x01>; - #size-cells = <0x00>; - status = "okay"; - - tcs4525@1c { - compatible = "tcs,tcs452x"; - reg = <0x1c>; - vin-supply = <0x3e>; - regulator-compatible = "fan53555-reg"; - regulator-name = "vdd_cpu"; - regulator-min-microvolt = <0xadf34>; - regulator-max-microvolt = <0x1535b0>; - regulator-ramp-delay = <0x8fc>; - fcs,suspend-voltage-selector = <0x01>; - regulator-boot-on; - regulator-always-on; - phandle = <0x05>; - - regulator-state-mem { - regulator-off-in-suspend; - }; - }; - - pmic@20 { - compatible = "rockchip,rk809"; - reg = <0x20>; - interrupt-parent = <0x3f>; - interrupts = <0x03 0x08>; - pinctrl-names = "default\0pmic-sleep\0pmic-power-off\0pmic-reset"; - pinctrl-0 = <0x40>; - pinctrl-1 = <0x41 0x42>; - pinctrl-2 = <0x43 0x44>; - pinctrl-3 = <0x43 0x45>; - rockchip,system-power-controller; - wakeup-source; - #clock-cells = <0x01>; - clock-output-names = "rk808-clkout1\0rk808-clkout2"; - pmic-reset-func = <0x00>; - not-save-power-en = <0x01>; - vcc1-supply = <0x46>; - vcc2-supply = <0x46>; - vcc3-supply = <0x46>; - vcc4-supply = <0x46>; - vcc5-supply = <0x46>; - vcc6-supply = <0x46>; - vcc7-supply = <0x46>; - vcc8-supply = <0x46>; - vcc9-supply = <0x46>; - phandle = <0x152>; - - pwrkey { - status = "okay"; - }; - - pinctrl_rk8xx { - gpio-controller; - #gpio-cells = <0x02>; - - rk817_slppin_null { - pins = "gpio_slp"; - function = "pin_fun0"; - }; - - rk817_slppin_slp { - pins = "gpio_slp"; - function = "pin_fun1"; - phandle = <0x42>; - }; - - rk817_slppin_pwrdn { - pins = "gpio_slp"; - function = "pin_fun2"; - phandle = <0x44>; - }; - - rk817_slppin_rst { - pins = "gpio_slp"; - function = "pin_fun3"; - phandle = <0x45>; - }; - }; - - regulators { - - DCDC_REG1 { - regulator-always-on; - regulator-boot-on; - regulator-min-microvolt = <0x7a120>; - regulator-max-microvolt = <0x149970>; - regulator-init-microvolt = <0xdbba0>; - regulator-ramp-delay = <0x1771>; - regulator-initial-mode = <0x02>; - regulator-name = "vdd_logic"; - phandle = <0x75>; - - regulator-state-mem { - regulator-off-in-suspend; - }; - }; - - DCDC_REG2 { - regulator-always-on; - regulator-boot-on; - regulator-min-microvolt = <0x7a120>; - regulator-max-microvolt = <0x149970>; - regulator-init-microvolt = <0xdbba0>; - regulator-ramp-delay = <0x1771>; - regulator-initial-mode = <0x02>; - regulator-name = "vdd_gpu"; - phandle = <0x77>; - - regulator-state-mem { - regulator-off-in-suspend; - }; - }; - - DCDC_REG3 { - regulator-always-on; - regulator-boot-on; - regulator-initial-mode = <0x02>; - regulator-name = "vcc_ddr"; - - regulator-state-mem { - regulator-on-in-suspend; - }; - }; - - DCDC_REG4 { - regulator-always-on; - regulator-boot-on; - regulator-min-microvolt = <0x7a120>; - regulator-max-microvolt = <0x149970>; - regulator-init-microvolt = <0xdbba0>; - regulator-ramp-delay = <0x1771>; - regulator-initial-mode = <0x02>; - regulator-name = "vdd_npu"; - phandle = <0x71>; - - regulator-state-mem { - regulator-off-in-suspend; - }; - }; - - LDO_REG1 { - regulator-boot-on; - regulator-always-on; - regulator-min-microvolt = <0xdbba0>; - regulator-max-microvolt = <0xdbba0>; - regulator-name = "vdda0v9_image"; - - regulator-state-mem { - regulator-off-in-suspend; - }; - }; - - LDO_REG2 { - regulator-always-on; - regulator-boot-on; - regulator-min-microvolt = <0xdbba0>; - regulator-max-microvolt = <0xdbba0>; - regulator-name = "vdda_0v9"; - - regulator-state-mem { - regulator-off-in-suspend; - }; - }; - - LDO_REG3 { - regulator-always-on; - regulator-boot-on; - regulator-min-microvolt = <0xdbba0>; - regulator-max-microvolt = <0xdbba0>; - regulator-name = "vdda0v9_pmu"; - - regulator-state-mem { - regulator-on-in-suspend; - regulator-suspend-microvolt = <0xdbba0>; - }; - }; - - LDO_REG4 { - regulator-always-on; - regulator-boot-on; - regulator-min-microvolt = <0x325aa0>; - regulator-max-microvolt = <0x325aa0>; - regulator-name = "vccio_acodec"; - phandle = <0x30>; - - regulator-state-mem { - regulator-off-in-suspend; - }; - }; - - LDO_REG5 { - regulator-always-on; - regulator-boot-on; - regulator-min-microvolt = <0x1b7740>; - regulator-max-microvolt = <0x325aa0>; - regulator-name = "vccio_sd"; - phandle = <0x31>; - - regulator-state-mem { - regulator-off-in-suspend; - }; - }; - - LDO_REG6 { - regulator-always-on; - regulator-boot-on; - regulator-min-microvolt = <0x325aa0>; - regulator-max-microvolt = <0x325aa0>; - regulator-name = "vcc3v3_pmu"; - phandle = <0x2f>; - - regulator-state-mem { - regulator-on-in-suspend; - regulator-suspend-microvolt = <0x325aa0>; - }; - }; - - LDO_REG7 { - regulator-always-on; - regulator-boot-on; - regulator-min-microvolt = <0x1b7740>; - regulator-max-microvolt = <0x1b7740>; - regulator-name = "vcca_1v8"; - phandle = <0x129>; - - regulator-state-mem { - regulator-off-in-suspend; - }; - }; - - LDO_REG8 { - regulator-always-on; - regulator-boot-on; - regulator-min-microvolt = <0x1b7740>; - regulator-max-microvolt = <0x1b7740>; - regulator-name = "vcca1v8_pmu"; - - regulator-state-mem { - regulator-on-in-suspend; - regulator-suspend-microvolt = <0x1b7740>; - }; - }; - - LDO_REG9 { - regulator-always-on; - regulator-boot-on; - regulator-min-microvolt = <0x1b7740>; - regulator-max-microvolt = <0x1b7740>; - regulator-name = "vcca1v8_image"; - - regulator-state-mem { - regulator-off-in-suspend; - }; - }; - - DCDC_REG5 { - regulator-always-on; - regulator-boot-on; - regulator-min-microvolt = <0x1b7740>; - regulator-max-microvolt = <0x1b7740>; - regulator-name = "vcc_1v8"; - phandle = <0x32>; - - regulator-state-mem { - regulator-off-in-suspend; - }; - }; - - SWITCH_REG1 { - regulator-always-on; - regulator-boot-on; - regulator-name = "vcc_3v3"; - phandle = <0x33>; - - regulator-state-mem { - regulator-off-in-suspend; - }; - }; - - SWITCH_REG2 { - regulator-always-on; - regulator-boot-on; - regulator-name = "vcc3v3_sd"; - phandle = <0xcf>; - - regulator-state-mem { - regulator-off-in-suspend; - }; - }; - }; - - codec { - #sound-dai-cells = <0x00>; - compatible = "rockchip,rk809-codec\0rockchip,rk817-codec"; - clocks = <0x23 0x1a3>; - clock-names = "mclk"; - assigned-clocks = <0x23 0x1a3 0x23 0x1a6>; - assigned-clock-rates = <0xbb8000>; - assigned-clock-parents = <0x23 0x48 0x23 0x48>; - pinctrl-names = "default\0spk_gpio"; - pinctrl-0 = <0x47>; - pinctrl-1 = <0x48>; - hp-volume = <0x03>; - spk-volume = <0x03>; - mic-in-differential; - board-spk-from-hp; - capture-volume = <0x00>; - io-channels = <0x49 0x07>; - hp-det-adc-value = <0x3e8>; - status = "okay"; - hp-adc-drift-scope = <0x64>; - phandle = <0x14b>; - }; - - rtc { - status = "disabled"; - }; - }; - - fusb302@22 { - compatible = "fcs,fusb302"; - reg = <0x22>; - interrupt-parent = <0x3f>; - fcs,int_n = <0x3f 0x11 0x08>; - fusb340-switch-gpios = <0x4a 0x12 0x00>; - pinctrl-names = "default"; - pinctrl-0 = <0x4b>; - vbus-supply = <0x4c>; - status = "okay"; - - ports { - #address-cells = <0x01>; - #size-cells = <0x00>; - - port@0 { - reg = <0x00>; - - endpoint@0 { - remote-endpoint = <0x4d>; - phandle = <0x2a>; - }; - }; - }; - - connector { - compatible = "usb-c-connector"; - label = "USB-C"; - data-role = "dual"; - power-role = "dual"; - try-power-role = "sink"; - op-sink-microwatt = <0xf4240>; - sink-pdos = <0x40190fa>; - source-pdos = <0x4019096>; - }; - }; - }; - - serial@fdd50000 { - compatible = "rockchip,rk3568-uart\0snps,dw-apb-uart"; - reg = <0x00 0xfdd50000 0x00 0x100>; - interrupts = <0x00 0x74 0x04>; - clocks = <0x3a 0x0b 0x3a 0x2c>; - clock-names = "baudclk\0apb_pclk"; - reg-shift = <0x02>; - reg-io-width = <0x04>; - dmas = <0x4e 0x00 0x4e 0x01>; - pinctrl-names = "default"; - pinctrl-0 = <0x4f>; - status = "disabled"; - }; - - pwm@fdd70000 { - compatible = "rockchip,rk3568-pwm\0rockchip,rk3328-pwm"; - reg = <0x00 0xfdd70000 0x00 0x10>; - interrupts = <0x00 0x52 0x04>; - #pwm-cells = <0x03>; - pinctrl-names = "active"; - pinctrl-0 = <0x50>; - clocks = <0x3a 0x0d 0x3a 0x30>; - clock-names = "pwm\0pclk"; - status = "disabled"; - }; - - pwm@fdd70010 { - compatible = "rockchip,rk3568-pwm\0rockchip,rk3328-pwm"; - reg = <0x00 0xfdd70010 0x00 0x10>; - interrupts = <0x00 0x52 0x04>; - #pwm-cells = <0x03>; - pinctrl-names = "active"; - pinctrl-0 = <0x51>; - clocks = <0x3a 0x0d 0x3a 0x30>; - clock-names = "pwm\0pclk"; - status = "disabled"; - }; - - pwm@fdd70020 { - compatible = "rockchip,rk3568-pwm\0rockchip,rk3328-pwm"; - reg = <0x00 0xfdd70020 0x00 0x10>; - interrupts = <0x00 0x52 0x04>; - #pwm-cells = <0x03>; - pinctrl-names = "active"; - pinctrl-0 = <0x52>; - clocks = <0x3a 0x0d 0x3a 0x30>; - clock-names = "pwm\0pclk"; - status = "disabled"; - }; - - pwm@fdd70030 { - compatible = "rockchip,rk3568-pwm\0rockchip,rk3328-pwm"; - reg = <0x00 0xfdd70030 0x00 0x10>; - interrupts = <0x00 0x52 0x04 0x00 0x56 0x04>; - #pwm-cells = <0x03>; - pinctrl-names = "active"; - pinctrl-0 = <0x53>; - clocks = <0x3a 0x0d 0x3a 0x30>; - clock-names = "pwm\0pclk"; - status = "disabled"; - }; - - power-management@fdd90000 { - compatible = "rockchip,rk3568-pmu\0syscon\0simple-mfd"; - reg = <0x00 0xfdd90000 0x00 0x1000>; - - power-controller { - compatible = "rockchip,rk3568-power-controller"; - #power-domain-cells = <0x01>; - #address-cells = <0x01>; - #size-cells = <0x00>; - status = "okay"; - phandle = <0x25>; - - pd_npu@6 { - reg = <0x06>; - clocks = <0x23 0x27 0x23 0x25 0x23 0x26>; - pm_qos = <0x54>; - }; - - pd_gpu@7 { - reg = <0x07>; - clocks = <0x23 0x19 0x23 0x1a>; - pm_qos = <0x55>; - }; - - pd_vi@8 { - reg = <0x08>; - clocks = <0x23 0xcc 0x23 0xcd>; - pm_qos = <0x56 0x57 0x58>; - }; - - pd_vo@9 { - reg = <0x09>; - clocks = <0x23 0xda 0x23 0xdb 0x23 0xdc>; - pm_qos = <0x59 0x5a 0x5b>; - }; - - pd_rga@10 { - reg = <0x0a>; - clocks = <0x23 0xf1 0x23 0xf2>; - pm_qos = <0x5c 0x5d 0x5e 0x5f 0x60 0x61>; - }; - - pd_vpu@11 { - reg = <0x0b>; - clocks = <0x23 0xed>; - pm_qos = <0x62>; - }; - - pd_rkvdec@13 { - clocks = <0x23 0x107>; - reg = <0x0d>; - pm_qos = <0x63>; - }; - - pd_rkvenc@14 { - reg = <0x0e>; - clocks = <0x23 0x102>; - pm_qos = <0x64 0x65 0x66>; - }; - - pd_pipe@15 { - reg = <0x0f>; - clocks = <0x23 0x7f>; - pm_qos = <0x67 0x68 0x69 0x6a 0x6b 0x6c 0x6d 0x6e>; - }; - }; - }; - - pvtm@fde00000 { - compatible = "rockchip,rk3568-core-pvtm"; - reg = <0x00 0xfde00000 0x00 0x100>; - #address-cells = <0x01>; - #size-cells = <0x00>; - - pvtm@0 { - reg = <0x00>; - clocks = <0x23 0x13 0x23 0x1c2>; - clock-names = "clk\0pclk"; - resets = <0x23 0x1a 0x23 0x19>; - reset-names = "rts\0rst-p"; - thermal-zone = "soc-thermal"; - }; - }; - - npu@fde40000 { - compatible = "rockchip,rk3568-rknpu\0rockchip,rknpu"; - reg = <0x00 0xfde40000 0x00 0x10000>; - interrupts = <0x00 0x97 0x04>; - clocks = <0x02 0x02 0x23 0x23 0x23 0x28 0x23 0x29>; - clock-names = "scmi_clk\0clk\0aclk\0hclk"; - assigned-clocks = <0x23 0x23>; - assigned-clock-rates = <0x23c34600>; - resets = <0x23 0x2b 0x23 0x2c>; - reset-names = "srst_a\0srst_h"; - power-domains = <0x25 0x06>; - operating-points-v2 = <0x6f>; - iommus = <0x70>; - status = "okay"; - rknpu-supply = <0x71>; - }; - - npu-opp-table { - compatible = "operating-points-v2"; - mbist-vmin = <0xc96a8 0xdbba0 0xe7ef0>; - nvmem-cells = <0x72 0x07 0x08 0x73 0x0a 0x0b>; - nvmem-cell-names = "leakage\0pvtm\0mbist-vmin\0opp-info\0specification_serial_number\0remark_spec_serial_number"; - rockchip,supported-hw; - rockchip,max-volt = <0xf4240>; - rockchip,temp-hysteresis = <0x1388>; - rockchip,low-temp = <0x00>; - rockchip,low-temp-adjust-volt = <0x00 0x3e8 0xc350>; - rockchip,pvtm-voltage-sel = <0x00 0x14820 0x00 0x14821 0x153d8 0x01 0x153d9 0x16378 0x02 0x16379 0x186a0 0x03>; - rockchip,pvtm-ch = <0x00 0x05>; - phandle = <0x6f>; - - opp-200000000 { - opp-supported-hw = <0xfb 0xffff>; - opp-hz = <0x00 0xbebc200>; - opp-microvolt = <0xcf850 0xcf850 0xf4240>; - }; - - opp-300000000 { - opp-supported-hw = <0xfb 0xffff>; - opp-hz = <0x00 0x11b3dc40>; - opp-microvolt = <0xcf850 0xcf850 0xf4240>; - }; - - opp-400000000 { - opp-supported-hw = <0xfb 0xffff>; - opp-hz = <0x00 0x17d78400>; - opp-microvolt = <0xcf850 0xcf850 0xf4240>; - }; - - opp-600000000 { - opp-supported-hw = <0xfb 0xffff>; - opp-hz = <0x00 0x23c34600>; - opp-microvolt = <0xcf850 0xcf850 0xf4240>; - }; - - opp-700000000 { - opp-supported-hw = <0xfb 0xffff>; - opp-hz = <0x00 0x29b92700>; - opp-microvolt = <0xd59f8 0xd59f8 0xf4240>; - opp-microvolt-L0 = <0xd59f8 0xd59f8 0xf4240>; - opp-microvolt-L1 = <0xcf850 0xcf850 0xf4240>; - opp-microvolt-L2 = <0xcf850 0xcf850 0xf4240>; - opp-microvolt-L3 = <0xcf850 0xcf850 0xf4240>; - }; - - opp-800000000 { - opp-supported-hw = <0xfb 0xffff>; - opp-hz = <0x00 0x2faf0800>; - opp-microvolt = <0xe1d48 0xe1d48 0xf4240>; - opp-microvolt-L0 = <0xe1d48 0xe1d48 0xf4240>; - opp-microvolt-L1 = <0xdbba0 0xdbba0 0xf4240>; - opp-microvolt-L2 = <0xd59f8 0xd59f8 0xf4240>; - opp-microvolt-L3 = <0xd59f8 0xd59f8 0xf4240>; - }; - - opp-900000000 { - opp-supported-hw = <0xf9 0xffff>; - opp-hz = <0x00 0x35a4e900>; - opp-microvolt = <0xee098 0xee098 0xf4240>; - opp-microvolt-L0 = <0xee098 0xee098 0xf4240>; - opp-microvolt-L1 = <0xe7ef0 0xe7ef0 0xf4240>; - opp-microvolt-L2 = <0xe1d48 0xe1d48 0xf4240>; - opp-microvolt-L3 = <0xdbba0 0xdbba0 0xf4240>; - }; - - opp-1000000000 { - opp-supported-hw = <0xf9 0xffff>; - opp-hz = <0x00 0x3b9aca00>; - opp-microvolt = <0xf4240 0xf4240 0xf4240>; - opp-microvolt-L0 = <0xf4240 0xf4240 0xf4240>; - opp-microvolt-L1 = <0xee098 0xee098 0xf4240>; - opp-microvolt-L2 = <0xe7ef0 0xe7ef0 0xf4240>; - opp-microvolt-L3 = <0xe1d48 0xe1d48 0xf4240>; - status = "disabled"; - }; - - opp-j-600000000 { - opp-supported-hw = <0x04 0xffff>; - opp-hz = <0x00 0x23c34600>; - opp-microvolt = <0xdbba0 0xdbba0 0xf4240>; - }; - - opp-m-900000000 { - opp-supported-hw = <0x02 0xffff>; - opp-hz = <0x00 0x35a4e900>; - opp-microvolt = <0xe1d48 0xe1d48 0xf4240>; - }; - }; - - bus-npu { - compatible = "rockchip,rk3568-bus"; - rockchip,busfreq-policy = "clkfreq"; - clocks = <0x02 0x02>; - clock-names = "bus"; - operating-points-v2 = <0x74>; - status = "okay"; - bus-supply = <0x75>; - pvtm-supply = <0x05>; - }; - - bus-npu-opp-table { - compatible = "operating-points-v2"; - opp-shared; - nvmem-cells = <0x07>; - nvmem-cell-names = "pvtm"; - rockchip,pvtm-voltage-sel = <0x00 0x14820 0x00 0x14821 0x16378 0x01 0x16379 0x186a0 0x02>; - rockchip,pvtm-ch = <0x00 0x05>; - phandle = <0x74>; - - opp-700000000 { - opp-hz = <0x00 0x29b92700>; - opp-microvolt = <0xdbba0>; - opp-microvolt-L0 = <0xdbba0>; - opp-microvolt-L1 = <0xd59f8>; - opp-microvolt-L2 = <0xd59f8>; - }; - - opp-900000000 { - opp-hz = <0x00 0x35a4e900>; - opp-microvolt = <0xdbba0>; - }; - - opp-1000000000 { - opp-hz = <0x00 0x3b9aca00>; - opp-microvolt = <0xe7ef0>; - opp-microvolt-L0 = <0xe7ef0>; - opp-microvolt-L1 = <0xe1d48>; - opp-microvolt-L2 = <0xdbba0>; - }; - }; - - iommu@fde4b000 { - compatible = "rockchip,iommu-v2"; - reg = <0x00 0xfde4b000 0x00 0x40>; - interrupts = <0x00 0x97 0x04>; - interrupt-names = "rknpu_mmu"; - clocks = <0x23 0x28 0x23 0x29>; - clock-names = "aclk\0iface"; - power-domains = <0x25 0x06>; - #iommu-cells = <0x00>; - status = "okay"; - phandle = <0x70>; - }; - - gpu@fde60000 { - compatible = "arm,mali-bifrost"; - reg = <0x00 0xfde60000 0x00 0x4000>; - interrupts = <0x00 0x27 0x04 0x00 0x29 0x04 0x00 0x28 0x04>; - interrupt-names = "GPU\0MMU\0JOB"; - upthreshold = <0x28>; - downdifferential = <0x0a>; - clocks = <0x02 0x01 0x23 0x1b>; - clock-names = "clk_mali\0clk_gpu"; - power-domains = <0x25 0x07>; - #cooling-cells = <0x02>; - operating-points-v2 = <0x76>; - status = "okay"; - mali-supply = <0x77>; - phandle = <0x21>; - - power-model { - compatible = "simple-power-model"; - leakage-range = <0x05 0x0f>; - ls = <0xffffa23e 0x5927 0x00>; - static-coefficient = <0x186a0>; - dynamic-coefficient = <0x3b9>; - ts = <0xfffe56a6 0xf87a 0xfffffab5 0x14>; - thermal-zone = "gpu-thermal"; - }; - }; - - opp-table2 { - compatible = "operating-points-v2"; - mbist-vmin = <0xc96a8 0xdbba0 0xe7ef0>; - nvmem-cells = <0x78 0x07 0x08 0x79 0x0a 0x0b>; - nvmem-cell-names = "leakage\0pvtm\0mbist-vmin\0opp-info\0specification_serial_number\0remark_spec_serial_number"; - rockchip,supported-hw; - rockchip,max-volt = <0xf4240>; - rockchip,temp-hysteresis = <0x1388>; - rockchip,low-temp = <0x00>; - rockchip,low-temp-adjust-volt = <0x00 0x320 0xc350>; - rockchip,pvtm-voltage-sel = <0x00 0x14820 0x00 0x14821 0x153d8 0x01 0x153d9 0x16378 0x02 0x16379 0x186a0 0x03>; - rockchip,pvtm-ch = <0x00 0x05>; - phandle = <0x76>; - - opp-200000000 { - opp-supported-hw = <0xfb 0xffff>; - opp-hz = <0x00 0xbebc200>; - opp-microvolt = <0xcf850 0xcf850 0xf4240>; - }; - - opp-300000000 { - opp-supported-hw = <0xfb 0xffff>; - opp-hz = <0x00 0x11e1a300>; - opp-microvolt = <0xcf850 0xcf850 0xf4240>; - }; - - opp-400000000 { - opp-supported-hw = <0xfb 0xffff>; - opp-hz = <0x00 0x17d78400>; - opp-microvolt = <0xcf850 0xcf850 0xf4240>; - }; - - opp-600000000 { - opp-supported-hw = <0xfb 0xffff>; - opp-hz = <0x00 0x23c34600>; - opp-microvolt = <0xdbba0 0xdbba0 0xf4240>; - opp-microvolt-L0 = <0xdbba0 0xdbba0 0xf4240>; - opp-microvolt-L1 = <0xd59f8 0xd59f8 0xf4240>; - opp-microvolt-L2 = <0xcf850 0xcf850 0xf4240>; - opp-microvolt-L3 = <0xcf850 0xcf850 0xf4240>; - }; - - opp-700000000 { - opp-supported-hw = <0xfb 0xffff>; - opp-hz = <0x00 0x29b92700>; - opp-microvolt = <0xe7ef0 0xe7ef0 0xf4240>; - opp-microvolt-L0 = <0xe7ef0 0xe7ef0 0xf4240>; - opp-microvolt-L1 = <0xe1d48 0xe1d48 0xf4240>; - opp-microvolt-L2 = <0xdbba0 0xdbba0 0xf4240>; - opp-microvolt-L3 = <0xd59f8 0xd59f8 0xf4240>; - }; - - opp-800000000 { - opp-supported-hw = <0xf9 0xffff>; - opp-hz = <0x00 0x2faf0800>; - opp-microvolt = <0xf4240 0xf4240 0xf4240>; - opp-microvolt-L0 = <0xf4240 0xf4240 0xf4240>; - opp-microvolt-L1 = <0xee098 0xee098 0xf4240>; - opp-microvolt-L2 = <0xe7ef0 0xe7ef0 0xf4240>; - opp-microvolt-L3 = <0xe1d48 0xe1d48 0xf4240>; - }; - - opp-j-600000000 { - opp-supported-hw = <0x04 0xffff>; - opp-hz = <0x00 0x23c34600>; - opp-microvolt = <0xdbba0 0xdbba0 0xf4240>; - }; - - opp-m-800000000 { - opp-supported-hw = <0x02 0xffff>; - opp-hz = <0x00 0x2faf0800>; - opp-microvolt = <0xe7ef0 0xe7ef0 0xf4240>; - }; - }; - - pvtm@fde80000 { - compatible = "rockchip,rk3568-gpu-pvtm"; - reg = <0x00 0xfde80000 0x00 0x100>; - #address-cells = <0x01>; - #size-cells = <0x00>; - - pvtm@1 { - reg = <0x01>; - clocks = <0x23 0x1e 0x23 0x1d>; - clock-names = "clk\0pclk"; - resets = <0x23 0x24 0x23 0x23>; - reset-names = "rts\0rst-p"; - thermal-zone = "gpu-thermal"; - }; - }; - - pvtm@fde90000 { - compatible = "rockchip,rk3568-npu-pvtm"; - reg = <0x00 0xfde90000 0x00 0x100>; - #address-cells = <0x01>; - #size-cells = <0x00>; - - pvtm@2 { - reg = <0x02>; - clocks = <0x23 0x2b 0x23 0x2a 0x23 0x25>; - clock-names = "clk\0pclk\0hclk"; - resets = <0x23 0x2e 0x23 0x2d>; - reset-names = "rts\0rst-p"; - thermal-zone = "soc-thermal"; - }; - }; - - vdpu@fdea0400 { - compatible = "rockchip,vpu-decoder-v2"; - reg = <0x00 0xfdea0400 0x00 0x400>; - interrupts = <0x00 0x8b 0x04>; - interrupt-names = "irq_dec"; - clocks = <0x23 0xee 0x23 0xef>; - clock-names = "aclk_vcodec\0hclk_vcodec"; - resets = <0x23 0x11a 0x23 0x11b>; - reset-names = "video_a\0video_h"; - iommus = <0x7a>; - power-domains = <0x25 0x0b>; - rockchip,srv = <0x7b>; - rockchip,taskqueue-node = <0x00>; - rockchip,resetgroup-node = <0x00>; - status = "okay"; - }; - - iommu@fdea0800 { - compatible = "rockchip,iommu-v2"; - reg = <0x00 0xfdea0800 0x00 0x40>; - interrupts = <0x00 0x8a 0x04>; - interrupt-names = "vdpu_mmu"; - clock-names = "aclk\0iface"; - clocks = <0x23 0xee 0x23 0xef>; - power-domains = <0x25 0x0b>; - #iommu-cells = <0x00>; - status = "okay"; - phandle = <0x7a>; - }; - - rk_rga@fdeb0000 { - compatible = "rockchip,rga2"; - reg = <0x00 0xfdeb0000 0x00 0x1000>; - interrupts = <0x00 0x5a 0x04>; - clocks = <0x23 0xf3 0x23 0xf4 0x23 0xf5>; - clock-names = "aclk_rga\0hclk_rga\0clk_rga"; - power-domains = <0x25 0x0a>; - status = "okay"; - }; - - ebc@fdec0000 { - compatible = "rockchip,rk3568-ebc-tcon"; - reg = <0x00 0xfdec0000 0x00 0x5000>; - interrupts = <0x00 0x11 0x04>; - clocks = <0x23 0xf9 0x23 0xfa>; - clock-names = "hclk\0dclk"; - power-domains = <0x25 0x0a>; - rockchip,grf = <0x3b>; - pinctrl-names = "default"; - pinctrl-0 = <0x7c>; - status = "disabled"; - }; - - jpegd@fded0000 { - compatible = "rockchip,rkv-jpeg-decoder-v1"; - reg = <0x00 0xfded0000 0x00 0x400>; - interrupts = <0x00 0x3e 0x04>; - clocks = <0x23 0xfb 0x23 0xfc>; - clock-names = "aclk_vcodec\0hclk_vcodec"; - rockchip,disable-auto-freq; - resets = <0x23 0x12c 0x23 0x12d>; - reset-names = "video_a\0video_h"; - iommus = <0x7d>; - rockchip,srv = <0x7b>; - rockchip,taskqueue-node = <0x01>; - rockchip,resetgroup-node = <0x01>; - power-domains = <0x25 0x0a>; - status = "okay"; - }; - - iommu@fded0480 { - compatible = "rockchip,iommu-v2"; - reg = <0x00 0xfded0480 0x00 0x40>; - interrupts = <0x00 0x3d 0x04>; - interrupt-names = "jpegd_mmu"; - clock-names = "aclk\0iface"; - clocks = <0x23 0xfb 0x23 0xfc>; - power-domains = <0x25 0x0a>; - #iommu-cells = <0x00>; - status = "okay"; - phandle = <0x7d>; - }; - - vepu@fdee0000 { - compatible = "rockchip,vpu-encoder-v2"; - reg = <0x00 0xfdee0000 0x00 0x400>; - interrupts = <0x00 0x40 0x04>; - clocks = <0x23 0xfd 0x23 0xfe>; - clock-names = "aclk_vcodec\0hclk_vcodec"; - rockchip,disable-auto-freq; - resets = <0x23 0x12e 0x23 0x12f>; - reset-names = "video_a\0video_h"; - iommus = <0x7e>; - rockchip,srv = <0x7b>; - rockchip,taskqueue-node = <0x02>; - rockchip,resetgroup-node = <0x02>; - power-domains = <0x25 0x0a>; - status = "okay"; - }; - - iommu@fdee0800 { - compatible = "rockchip,iommu-v2"; - reg = <0x00 0xfdee0800 0x00 0x40>; - interrupts = <0x00 0x3f 0x04>; - interrupt-names = "vepu_mmu"; - clock-names = "aclk\0iface"; - clocks = <0x23 0xfd 0x23 0xfe>; - power-domains = <0x25 0x0a>; - #iommu-cells = <0x00>; - status = "okay"; - phandle = <0x7e>; - }; - - iep@fdef0000 { - compatible = "rockchip,iep-v2"; - reg = <0x00 0xfdef0000 0x00 0x500>; - interrupts = <0x00 0x38 0x04>; - clocks = <0x23 0xf6 0x23 0xf7 0x23 0xf8>; - clock-names = "aclk\0hclk\0sclk"; - resets = <0x23 0x127 0x23 0x128 0x23 0x129>; - reset-names = "rst_a\0rst_h\0rst_s"; - power-domains = <0x25 0x0a>; - rockchip,srv = <0x7b>; - rockchip,taskqueue-node = <0x05>; - rockchip,resetgroup-node = <0x05>; - iommus = <0x7f>; - status = "okay"; - }; - - iommu@fdef0800 { - compatible = "rockchip,iommu-v2"; - reg = <0x00 0xfdef0800 0x00 0x100>; - interrupts = <0x00 0x38 0x04>; - interrupt-names = "iep_mmu"; - clocks = <0x23 0xf6 0x23 0xf7>; - clock-names = "aclk\0iface"; - #iommu-cells = <0x00>; - power-domains = <0x25 0x0a>; - status = "okay"; - phandle = <0x7f>; - }; - - eink@fdf00000 { - compatible = "rockchip,rk3568-eink-tcon"; - reg = <0x00 0xfdf00000 0x00 0x74>; - interrupts = <0x00 0xb2 0x04>; - clocks = <0x23 0xff 0x23 0x100>; - clock-names = "pclk\0hclk"; - status = "disabled"; - }; - - rkvenc@fdf40000 { - compatible = "rockchip,rkv-encoder-v1"; - reg = <0x00 0xfdf40000 0x00 0x400>; - interrupts = <0x00 0x8c 0x04>; - interrupt-names = "irq_enc"; - clocks = <0x23 0x103 0x23 0x104 0x23 0x105>; - clock-names = "aclk_vcodec\0hclk_vcodec\0clk_core"; - rockchip,normal-rates = <0x11b3dc40 0x00 0x11b3dc40>; - resets = <0x23 0x133 0x23 0x134 0x23 0x135>; - reset-names = "video_a\0video_h\0video_core"; - assigned-clocks = <0x23 0x103 0x23 0x105>; - assigned-clock-rates = <0x11b3dc40 0x11b3dc40>; - iommus = <0x80>; - node-name = "rkvenc"; - rockchip,srv = <0x7b>; - rockchip,taskqueue-node = <0x03>; - rockchip,resetgroup-node = <0x03>; - power-domains = <0x25 0x0e>; - operating-points-v2 = <0x81>; - status = "okay"; - venc-supply = <0x75>; - }; - - rkvenc-opp-table { - compatible = "operating-points-v2"; - nvmem-cells = <0x07>; - nvmem-cell-names = "pvtm"; - rockchip,pvtm-voltage-sel = <0x00 0x14820 0x00 0x14821 0x16378 0x01 0x16379 0x186a0 0x02>; - rockchip,pvtm-ch = <0x00 0x05>; - phandle = <0x81>; - - opp-297000000 { - opp-hz = <0x00 0x11b3dc40>; - opp-microvolt = <0xdbba0>; - opp-microvolt-L0 = <0xdbba0>; - opp-microvolt-L1 = <0xd59f8>; - opp-microvolt-L2 = <0xd59f8>; - }; - - opp-400000000 { - opp-hz = <0x00 0x17d78400>; - opp-microvolt = <0xe7ef0>; - opp-microvolt-L0 = <0xe7ef0>; - opp-microvolt-L1 = <0xe1d48>; - opp-microvolt-L2 = <0xdbba0>; - }; - }; - - iommu@fdf40f00 { - compatible = "rockchip,iommu-v2"; - reg = <0x00 0xfdf40f00 0x00 0x40 0x00 0xfdf40f40 0x00 0x40>; - interrupts = <0x00 0x8d 0x04 0x00 0x8e 0x04>; - interrupt-names = "rkvenc_mmu0\0rkvenc_mmu1"; - clocks = <0x23 0x103 0x23 0x104>; - clock-names = "aclk\0iface"; - rockchip,disable-mmu-reset; - rockchip,enable-cmd-retry; - #iommu-cells = <0x00>; - power-domains = <0x25 0x0e>; - status = "okay"; - phandle = <0x80>; - }; - - rkvdec@fdf80200 { - compatible = "rockchip,rkv-decoder-rk3568\0rockchip,rkv-decoder-v2"; - reg = <0x00 0xfdf80200 0x00 0x400 0x00 0xfdf80100 0x00 0x100>; - reg-names = "regs\0link"; - interrupts = <0x00 0x5b 0x04>; - interrupt-names = "irq_dec"; - clocks = <0x23 0x108 0x23 0x109 0x23 0x10a 0x23 0x10b 0x23 0x10c>; - clock-names = "aclk_vcodec\0hclk_vcodec\0clk_cabac\0clk_core\0clk_hevc_cabac"; - rockchip,normal-rates = <0x11b3dc40 0x00 0x11b3dc40 0x11b3dc40 0x23c34600>; - rockchip,advanced-rates = <0x179a7b00 0x00 0x179a7b00 0x179a7b00 0x23c34600>; - rockchip,default-max-load = <0x1fe000>; - resets = <0x23 0x142 0x23 0x143 0x23 0x144 0x23 0x145 0x23 0x146>; - assigned-clocks = <0x23 0x108 0x23 0x10a 0x23 0x10b 0x23 0x10c>; - assigned-clock-rates = <0x11b3dc40 0x11b3dc40 0x11b3dc40 0x11b3dc40>; - reset-names = "video_a\0video_h\0video_cabac\0video_core\0video_hevc_cabac"; - power-domains = <0x25 0x0d>; - operating-points-v2 = <0x82>; - vdec-supply = <0x75>; - iommus = <0x83>; - rockchip,srv = <0x7b>; - rockchip,taskqueue-node = <0x04>; - rockchip,resetgroup-node = <0x04>; - rockchip,sram = <0x84>; - rockchip,rcb-iova = <0x10000000 0x10000>; - rockchip,rcb-min-width = <0x200>; - rockchip,task-capacity = <0x10>; - status = "okay"; - }; - - rkvdec-opp-table { - compatible = "operating-points-v2"; - nvmem-cells = <0x85 0x07>; - nvmem-cell-names = "leakage\0pvtm"; - rockchip,leakage-voltage-sel = <0x01 0x50 0x00 0x51 0xfe 0x01>; - rockchip,pvtm-voltage-sel = <0x00 0x14820 0x00 0x14821 0x186a0 0x01>; - rockchip,pvtm-ch = <0x00 0x05>; - phandle = <0x82>; - - opp-297000000 { - opp-hz = <0x00 0x11b3dc40>; - opp-microvolt = <0xdbba0>; - opp-microvolt-L0 = <0xdbba0>; - opp-microvolt-L1 = <0xd59f8>; - }; - - opp-400000000 { - opp-hz = <0x00 0x17d78400>; - opp-microvolt = <0xdbba0>; - }; - }; - - iommu@fdf80800 { - compatible = "rockchip,iommu-v2"; - reg = <0x00 0xfdf80800 0x00 0x40 0x00 0xfdf80840 0x00 0x40>; - interrupts = <0x00 0x5c 0x04>; - interrupt-names = "rkvdec_mmu"; - clocks = <0x23 0x108 0x23 0x109>; - clock-names = "aclk\0iface"; - power-domains = <0x25 0x0d>; - #iommu-cells = <0x00>; - status = "okay"; - phandle = <0x83>; - }; - - mipi-csi2-hw@fdfb0000 { - compatible = "rockchip,rk3568-mipi-csi2-hw"; - reg = <0x00 0xfdfb0000 0x00 0x10000>; - reg-names = "csihost_regs"; - interrupts = <0x00 0x08 0x04 0x00 0x09 0x04>; - interrupt-names = "csi-intr1\0csi-intr2"; - clocks = <0x23 0xd5>; - clock-names = "pclk_csi2host"; - resets = <0x23 0xff>; - reset-names = "srst_csihost_p"; - status = "okay"; - phandle = <0x1e>; - }; - - rkcif@fdfe0000 { - compatible = "rockchip,rk3568-cif"; - reg = <0x00 0xfdfe0000 0x00 0x8000>; - reg-names = "cif_regs"; - interrupts = <0x00 0x92 0x04>; - interrupt-names = "cif-intr"; - clocks = <0x23 0xce 0x23 0xcf 0x23 0xd0 0x23 0xd1>; - clock-names = "aclk_cif\0hclk_cif\0dclk_cif\0iclk_cif_g"; - resets = <0x23 0xf7 0x23 0xf8 0x23 0xf9 0x23 0xfb 0x23 0xfa>; - reset-names = "rst_cif_a\0rst_cif_h\0rst_cif_d\0rst_cif_p\0rst_cif_i"; - assigned-clocks = <0x23 0xd0>; - assigned-clock-rates = <0x11e1a300>; - power-domains = <0x25 0x08>; - rockchip,grf = <0x3b>; - iommus = <0x86>; - status = "disabled"; - phandle = <0x87>; - }; - - iommu@fdfe0800 { - compatible = "rockchip,iommu-v2"; - reg = <0x00 0xfdfe0800 0x00 0x100>; - interrupts = <0x00 0x92 0x04>; - interrupt-names = "cif_mmu"; - clocks = <0x23 0xce 0x23 0xcf>; - clock-names = "aclk\0iface"; - power-domains = <0x25 0x08>; - rockchip,disable-mmu-reset; - #iommu-cells = <0x00>; - status = "disabled"; - phandle = <0x86>; - }; - - rkcif_dvp { - compatible = "rockchip,rkcif-dvp"; - rockchip,hw = <0x87>; - status = "disabled"; - phandle = <0x88>; - }; - - rkcif_dvp_sditf { - compatible = "rockchip,rkcif-sditf"; - rockchip,cif = <0x88>; - status = "disabled"; - }; - - rkcif_mipi_lvds { - compatible = "rockchip,rkcif-mipi-lvds"; - rockchip,hw = <0x87>; - status = "disabled"; - phandle = <0x89>; - }; - - rkcif_mipi_lvds_sditf { - compatible = "rockchip,rkcif-sditf"; - rockchip,cif = <0x89>; - status = "disabled"; - }; - - rkisp@fdff0000 { - compatible = "rockchip,rk3568-rkisp"; - reg = <0x00 0xfdff0000 0x00 0x10000>; - interrupts = <0x00 0x39 0x04 0x00 0x3a 0x04 0x00 0x3c 0x04>; - interrupt-names = "mipi_irq\0mi_irq\0isp_irq"; - clocks = <0x23 0xd2 0x23 0xd3 0x23 0xd4>; - clock-names = "aclk_isp\0hclk_isp\0clk_isp"; - resets = <0x23 0xfd 0x23 0xfc>; - reset-names = "isp\0isp-h"; - rockchip,grf = <0x3b>; - power-domains = <0x25 0x08>; - iommus = <0x8a>; - rockchip,iq-feature = <0x1bfb 0xfffe67ff>; - status = "okay"; - phandle = <0x8b>; - }; - - iommu@fdff1a00 { - compatible = "rockchip,iommu-v2"; - reg = <0x00 0xfdff1a00 0x00 0x100>; - interrupts = <0x00 0x3b 0x04>; - interrupt-names = "isp_mmu"; - clocks = <0x23 0xd2 0x23 0xd3>; - clock-names = "aclk\0iface"; - power-domains = <0x25 0x08>; - #iommu-cells = <0x00>; - rockchip,disable-mmu-reset; - status = "okay"; - phandle = <0x8a>; - }; - - rkisp-vir0 { - compatible = "rockchip,rkisp-vir"; - rockchip,hw = <0x8b>; - status = "okay"; - - port { - #address-cells = <0x01>; - #size-cells = <0x00>; - - endpoint@0 { - reg = <0x00>; - remote-endpoint = <0x8c>; - phandle = <0x134>; - }; - }; - }; - - rkisp-vir1 { - compatible = "rockchip,rkisp-vir"; - rockchip,hw = <0x8b>; - status = "disabled"; - }; - - uio@fe010000 { - compatible = "rockchip,uio-gmac"; - reg = <0x00 0xfe010000 0x00 0x10000>; - rockchip,ethernet = <0x8d>; - status = "disabled"; - }; - - ethernet@fe010000 { - local-mac-address = [5e 4f fd 70 05 c6]; - compatible = "rockchip,rk3568-gmac\0snps,dwmac-4.20a"; - reg = <0x00 0xfe010000 0x00 0x10000>; - interrupts = <0x00 0x20 0x04 0x00 0x1d 0x04>; - interrupt-names = "macirq\0eth_wake_irq"; - rockchip,grf = <0x3b>; - clocks = <0x23 0x186 0x23 0x189 0x23 0x189 0x23 0xc7 0x23 0xc3 0x23 0xc4 0x23 0x189 0x23 0xc8 0x23 0xac 0x23 0xab>; - clock-names = "stmmaceth\0mac_clk_rx\0mac_clk_tx\0clk_mac_refout\0aclk_mac\0pclk_mac\0clk_mac_speed\0ptp_ref\0pclk_xpcs\0clk_xpcs_eee"; - resets = <0x23 0xec>; - reset-names = "stmmaceth"; - snps,mixed-burst; - snps,tso; - snps,axi-config = <0x8e>; - snps,mtl-rx-config = <0x8f>; - snps,mtl-tx-config = <0x90>; - status = "okay"; - phy-mode = "rgmii"; - clock_in_out = "input"; - snps,reset-gpio = <0x91 0x19 0x01>; - snps,reset-active-low; - snps,reset-delays-us = <0x00 0x4e20 0x186a0>; - assigned-clocks = <0x23 0x189 0x23 0x186>; - assigned-clock-parents = <0x23 0x187 0x92>; - pinctrl-names = "default"; - pinctrl-0 = <0x93 0x94 0x95 0x96 0x97 0x98>; - tx_delay = <0x3e>; - rx_delay = <0x32>; - phy-handle = <0x99>; - phandle = <0x8d>; - - mdio { - compatible = "snps,dwmac-mdio"; - #address-cells = <0x01>; - #size-cells = <0x00>; - - phy@0 { - compatible = "ethernet-phy-ieee802.3-c22"; - reg = <0x00>; - led_status_value = <0x6940>; - phandle = <0x99>; - }; - }; - - stmmac-axi-config { - snps,wr_osr_lmt = <0x04>; - snps,rd_osr_lmt = <0x08>; - snps,blen = <0x00 0x00 0x00 0x00 0x10 0x08 0x04>; - phandle = <0x8e>; - }; - - rx-queues-config { - snps,rx-queues-to-use = <0x01>; - phandle = <0x8f>; - - queue0 { - }; - }; - - tx-queues-config { - snps,tx-queues-to-use = <0x01>; - phandle = <0x90>; - - queue0 { - }; - }; - }; - - vop@fe040000 { - compatible = "rockchip,rk3568-vop"; - reg = <0x00 0xfe040000 0x00 0x3000 0x00 0xfe044000 0x00 0x1000>; - reg-names = "regs\0gamma_lut"; - rockchip,grf = <0x3b>; - interrupts = <0x00 0x94 0x04>; - clocks = <0x23 0xdd 0x23 0xde 0x23 0xdf 0x23 0xe0 0x23 0xe1>; - clock-names = "aclk_vop\0hclk_vop\0dclk_vp0\0dclk_vp1\0dclk_vp2"; - iommus = <0x9a>; - power-domains = <0x25 0x09>; - status = "okay"; - assigned-clocks = <0x23 0xdf 0x23 0xe0>; - assigned-clock-parents = <0x3a 0x02 0x23 0x05>; - disable-win-move; - - ports { - #address-cells = <0x01>; - #size-cells = <0x00>; - phandle = <0x15>; - - port@0 { - rockchip,primary-plane = <0x04>; - rockchip,plane-mask = <0x15>; - #address-cells = <0x01>; - #size-cells = <0x00>; - reg = <0x00>; - - endpoint@0 { - reg = <0x00>; - remote-endpoint = <0x9b>; - phandle = <0x17>; - }; - - endpoint@1 { - reg = <0x01>; - remote-endpoint = <0x9c>; - phandle = <0x18>; - }; - - endpoint@2 { - reg = <0x02>; - remote-endpoint = <0x9d>; - phandle = <0x19>; - }; - - endpoint@3 { - reg = <0x03>; - remote-endpoint = <0x9e>; - phandle = <0x1a>; - }; - }; - - port@1 { - rockchip,primary-plane = <0x05>; - rockchip,plane-mask = <0x22>; - #address-cells = <0x01>; - #size-cells = <0x00>; - reg = <0x01>; - - endpoint@0 { - reg = <0x00>; - remote-endpoint = <0x9f>; - phandle = <0xa8>; - }; - - endpoint@1 { - reg = <0x01>; - remote-endpoint = <0xa0>; - phandle = <0xa9>; - }; - - endpoint@2 { - reg = <0x02>; - remote-endpoint = <0xa1>; - phandle = <0xaf>; - }; - - endpoint@3 { - reg = <0x03>; - remote-endpoint = <0xa2>; - phandle = <0xad>; - }; - - endpoint@4 { - reg = <0x04>; - remote-endpoint = <0xa3>; - phandle = <0x1b>; - }; - - endpoint@5 { - reg = <0x05>; - remote-endpoint = <0xa4>; - phandle = <0x37>; - }; - }; - - port@2 { - rockchip,primary-plane = <0x03>; - rockchip,plane-mask = <0x08>; - #address-cells = <0x01>; - #size-cells = <0x00>; - reg = <0x02>; - - endpoint@0 { - reg = <0x00>; - remote-endpoint = <0xa5>; - phandle = <0x35>; - }; - - endpoint@1 { - reg = <0x01>; - remote-endpoint = <0xa6>; - phandle = <0x1c>; - }; - - endpoint@2 { - reg = <0x02>; - remote-endpoint = <0xa7>; - phandle = <0x38>; - }; - }; - }; - }; - - iommu@fe043e00 { - compatible = "rockchip,iommu-v2"; - reg = <0x00 0xfe043e00 0x00 0x100 0x00 0xfe043f00 0x00 0x100>; - interrupts = <0x00 0x94 0x04>; - interrupt-names = "vop_mmu"; - clocks = <0x23 0xdd 0x23 0xde>; - clock-names = "aclk\0iface"; - #iommu-cells = <0x00>; - rockchip,disable-device-link-resume; - status = "okay"; - phandle = <0x9a>; - }; - - dsi@fe060000 { - compatible = "rockchip,rk3568-mipi-dsi"; - reg = <0x00 0xfe060000 0x00 0x10000>; - interrupts = <0x00 0x44 0x04>; - clocks = <0x23 0xe8 0x23 0xda>; - clock-names = "pclk\0hclk"; - resets = <0x23 0x110>; - reset-names = "apb"; - phys = <0x34>; - phy-names = "dphy"; - power-domains = <0x25 0x09>; - rockchip,grf = <0x3b>; - #address-cells = <0x01>; - #size-cells = <0x00>; - status = "disabled"; - - ports { - #address-cells = <0x01>; - #size-cells = <0x00>; - - port@0 { - reg = <0x00>; - #address-cells = <0x01>; - #size-cells = <0x00>; - - endpoint@0 { - reg = <0x00>; - remote-endpoint = <0x17>; - status = "disabled"; - phandle = <0x9b>; - }; - - endpoint@1 { - reg = <0x01>; - remote-endpoint = <0xa8>; - status = "disabled"; - phandle = <0x9f>; - }; - }; - }; - }; - - dsi@fe070000 { - compatible = "rockchip,rk3568-mipi-dsi"; - reg = <0x00 0xfe070000 0x00 0x10000>; - interrupts = <0x00 0x45 0x04>; - clocks = <0x23 0xe9 0x23 0xda>; - clock-names = "pclk\0hclk"; - resets = <0x23 0x111>; - reset-names = "apb"; - phys = <0x36>; - phy-names = "dphy"; - power-domains = <0x25 0x09>; - rockchip,grf = <0x3b>; - #address-cells = <0x01>; - #size-cells = <0x00>; - status = "disabled"; - - ports { - #address-cells = <0x01>; - #size-cells = <0x00>; - - port@0 { - reg = <0x00>; - #address-cells = <0x01>; - #size-cells = <0x00>; - - endpoint@0 { - reg = <0x00>; - remote-endpoint = <0x18>; - status = "disabled"; - phandle = <0x9c>; - }; - - endpoint@1 { - reg = <0x01>; - remote-endpoint = <0xa9>; - status = "disabled"; - phandle = <0xa0>; - }; - }; - }; - }; - - hdmi@fe0a0000 { - compatible = "rockchip,rk3568-dw-hdmi"; - reg = <0x00 0xfe0a0000 0x00 0x20000>; - interrupts = <0x00 0x2d 0x04>; - clocks = <0x23 0xe6 0x23 0xe7 0x23 0x193 0x3a 0x02 0x23 0xde>; - clock-names = "iahb\0isfr\0cec\0ref\0hclk"; - power-domains = <0x25 0x09>; - reg-io-width = <0x04>; - rockchip,grf = <0x3b>; - #sound-dai-cells = <0x00>; - pinctrl-names = "default"; - pinctrl-0 = <0xaa 0xab 0xac>; - status = "okay"; - phandle = <0x147>; - - ports { - #address-cells = <0x01>; - #size-cells = <0x00>; - - port@0 { - reg = <0x00>; - #address-cells = <0x01>; - #size-cells = <0x00>; - - endpoint@0 { - reg = <0x00>; - remote-endpoint = <0x1a>; - status = "okay"; - phandle = <0x9e>; - }; - - endpoint@1 { - reg = <0x01>; - remote-endpoint = <0xad>; - status = "disabled"; - phandle = <0xa2>; - }; - }; - }; - }; - - edp@fe0c0000 { - compatible = "rockchip,rk3568-edp"; - reg = <0x00 0xfe0c0000 0x00 0x10000>; - interrupts = <0x00 0x12 0x04>; - clocks = <0x3a 0x29 0x23 0xea 0x23 0xeb 0x23 0xda>; - clock-names = "dp\0pclk\0spdif\0hclk"; - resets = <0x23 0x113 0x23 0x112>; - reset-names = "dp\0apb"; - phys = <0xae>; - phy-names = "dp"; - power-domains = <0x25 0x09>; - status = "disabled"; - - ports { - #address-cells = <0x01>; - #size-cells = <0x00>; - - port@0 { - reg = <0x00>; - #address-cells = <0x01>; - #size-cells = <0x00>; - - endpoint@0 { - reg = <0x00>; - remote-endpoint = <0x19>; - status = "disabled"; - phandle = <0x9d>; - }; - - endpoint@1 { - reg = <0x01>; - remote-endpoint = <0xaf>; - status = "disabled"; - phandle = <0xa1>; - }; - }; - }; - }; - - nocp-cpu@fe102000 { - compatible = "rockchip,rk3568-nocp"; - reg = <0x00 0xfe102000 0x00 0x400>; - phandle = <0xb5>; - }; - - nocp-gpu-vpu-rga-venc@fe102400 { - compatible = "rockchip,rk3568-nocp"; - reg = <0x00 0xfe102400 0x00 0x400>; - }; - - nocp-vdec@fe102800 { - compatible = "rockchip,rk3568-nocp"; - reg = <0x00 0xfe102800 0x00 0x400>; - }; - - nocp-vi-usb-peri-pipe@fe102c00 { - compatible = "rockchip,rk3568-nocp"; - reg = <0x00 0xfe102c00 0x00 0x400>; - }; - - nocp-vo@fe103000 { - compatible = "rockchip,rk3568-nocp"; - reg = <0x00 0xfe103000 0x00 0x400>; - }; - - qos@fe128000 { - compatible = "syscon"; - reg = <0x00 0xfe128000 0x00 0x20>; - phandle = <0x55>; - }; - - qos@fe138080 { - compatible = "syscon"; - reg = <0x00 0xfe138080 0x00 0x20>; - phandle = <0x64>; - }; - - qos@fe138100 { - compatible = "syscon"; - reg = <0x00 0xfe138100 0x00 0x20>; - phandle = <0x65>; - }; - - qos@fe138180 { - compatible = "syscon"; - reg = <0x00 0xfe138180 0x00 0x20>; - phandle = <0x66>; - }; - - qos@fe148000 { - compatible = "syscon"; - reg = <0x00 0xfe148000 0x00 0x20>; - phandle = <0x56>; - }; - - qos@fe148080 { - compatible = "syscon"; - reg = <0x00 0xfe148080 0x00 0x20>; - phandle = <0x57>; - }; - - qos@fe148100 { - compatible = "syscon"; - reg = <0x00 0xfe148100 0x00 0x20>; - phandle = <0x58>; - }; - - qos@fe150000 { - compatible = "syscon"; - reg = <0x00 0xfe150000 0x00 0x20>; - phandle = <0x62>; - }; - - qos@fe158000 { - compatible = "syscon"; - reg = <0x00 0xfe158000 0x00 0x20>; - phandle = <0x5c>; - }; - - qos@fe158100 { - compatible = "syscon"; - reg = <0x00 0xfe158100 0x00 0x20>; - phandle = <0x5d>; - }; - - qos@fe158180 { - compatible = "syscon"; - reg = <0x00 0xfe158180 0x00 0x20>; - phandle = <0x5e>; - }; - - qos@fe158200 { - compatible = "syscon"; - reg = <0x00 0xfe158200 0x00 0x20>; - phandle = <0x5f>; - }; - - qos@fe158280 { - compatible = "syscon"; - reg = <0x00 0xfe158280 0x00 0x20>; - phandle = <0x60>; - }; - - qos@fe158300 { - compatible = "syscon"; - reg = <0x00 0xfe158300 0x00 0x20>; - phandle = <0x61>; - }; - - qos@fe180000 { - compatible = "syscon"; - reg = <0x00 0xfe180000 0x00 0x20>; - phandle = <0x54>; - }; - - qos@fe190000 { - compatible = "syscon"; - reg = <0x00 0xfe190000 0x00 0x20>; - phandle = <0x67>; - }; - - qos@fe190080 { - compatible = "syscon"; - reg = <0x00 0xfe190080 0x00 0x20>; - phandle = <0x68>; - }; - - qos@fe190100 { - compatible = "syscon"; - reg = <0x00 0xfe190100 0x00 0x20>; - phandle = <0x69>; - }; - - qos@fe190200 { - compatible = "syscon"; - reg = <0x00 0xfe190200 0x00 0x20>; - phandle = <0x6a>; - }; - - qos@fe190280 { - compatible = "syscon"; - reg = <0x00 0xfe190280 0x00 0x20>; - phandle = <0x6b>; - }; - - qos@fe190300 { - compatible = "syscon"; - reg = <0x00 0xfe190300 0x00 0x20>; - phandle = <0x6c>; - }; - - qos@fe190380 { - compatible = "syscon"; - reg = <0x00 0xfe190380 0x00 0x20>; - phandle = <0x6d>; - }; - - qos@fe190400 { - compatible = "syscon"; - reg = <0x00 0xfe190400 0x00 0x20>; - phandle = <0x6e>; - }; - - qos@fe198000 { - compatible = "syscon"; - reg = <0x00 0xfe198000 0x00 0x20>; - phandle = <0x63>; - }; - - qos@fe1a8000 { - compatible = "syscon"; - reg = <0x00 0xfe1a8000 0x00 0x20>; - phandle = <0x59>; - }; - - qos@fe1a8080 { - compatible = "syscon"; - reg = <0x00 0xfe1a8080 0x00 0x20>; - phandle = <0x5a>; - }; - - qos@fe1a8100 { - compatible = "syscon"; - reg = <0x00 0xfe1a8100 0x00 0x20>; - phandle = <0x5b>; - }; - - dwmmc@fe000000 { - compatible = "rockchip,rk3568-dw-mshc\0rockchip,rk3288-dw-mshc"; - reg = <0x00 0xfe000000 0x00 0x4000>; - interrupts = <0x00 0x64 0x04>; - max-frequency = <0x8f0d180>; - clocks = <0x23 0xc1 0x23 0xc2 0x23 0x18e 0x23 0x18f>; - clock-names = "biu\0ciu\0ciu-drive\0ciu-sample"; - fifo-depth = <0x100>; - resets = <0x23 0xeb>; - reset-names = "reset"; - status = "okay"; - no-sd; - no-mmc; - bus-width = <0x04>; - disable-wp; - cap-sd-highspeed; - cap-sdio-irq; - keep-power-in-suspend; - pinctrl-names = "default"; - pinctrl-0 = <0xb0 0xb1 0xb2>; - sd-uhs-sdr104; - mmc-pwrseq = <0xb3>; - non-removable; - }; - - dfi@fe230000 { - reg = <0x00 0xfe230000 0x00 0x400>; - compatible = "rockchip,rk3568-dfi"; - rockchip,pmugrf = <0x3c>; - status = "okay"; - phandle = <0xb4>; - }; - - dmc { - compatible = "rockchip,rk3568-dmc"; - interrupts = <0x00 0x0a 0x04>; - interrupt-names = "complete"; - devfreq-events = <0xb4 0xb5>; - clocks = <0x02 0x03>; - clock-names = "dmc_clk"; - operating-points-v2 = <0xb6>; - vop-bw-dmc-freq = <0x00 0x11e 0x4f1a0 0x11f 0x1869f 0x80e80>; - vop-frame-bw-dmc-freq = <0x00 0x26c 0x4f1a0 0x26d 0x1869f 0xbe6e0>; - cpu-bw-dmc-freq = <0x00 0x15e 0x4f1a0 0x15f 0x190 0x80e80 0x191 0x1869f 0xbe6e0>; - upthreshold = <0x28>; - downdifferential = <0x14>; - system-status-level = <0x01 0x04 0x08 0x08 0x02 0x01 0x10 0x04 0x10000 0x04 0x1000 0x08 0x4000 0x08 0x2000 0x08 0xc00 0x08>; - auto-min-freq = <0x4f1a0>; - auto-freq-en = <0x01>; - #cooling-cells = <0x02>; - status = "okay"; - center-supply = <0x75>; - phandle = <0x16>; - }; - - dmc-fsp { - compatible = "rockchip,rk3568-dmc-fsp"; - debug_print_level = <0x00>; - ddr3_params = <0xb7>; - ddr4_params = <0xb8>; - lpddr3_params = <0xb9>; - lpddr4_params = <0xba>; - lpddr4x_params = <0xbb>; - status = "okay"; - }; - - dmc-opp-table { - compatible = "operating-points-v2"; - mbist-vmin = <0xc96a8 0xdbba0 0xe7ef0>; - nvmem-cells = <0x85 0x07 0x08 0xbc 0x0a 0x0b>; - nvmem-cell-names = "leakage\0pvtm\0mbist-vmin\0opp-info\0specification_serial_number\0remark_spec_serial_number"; - rockchip,supported-hw; - rockchip,max-volt = <0xf4240>; - rockchip,temp-hysteresis = <0x1388>; - rockchip,low-temp = <0x00>; - rockchip,low-temp-adjust-volt = <0x00 0x618 0x124f8>; - rockchip,leakage-voltage-sel = <0x01 0x50 0x00 0x51 0xfe 0x01>; - rockchip,pvtm-voltage-sel = <0x00 0x14820 0x00 0x14821 0x186a0 0x01>; - rockchip,pvtm-ch = <0x00 0x05>; - phandle = <0xb6>; - - opp-1560000000 { - opp-supported-hw = <0xf9 0xffff>; - opp-hz = <0x00 0x5cfbb600>; - opp-microvolt = <0xdbba0 0xdbba0 0xf4240>; - opp-microvolt-L0 = <0xdbba0 0xdbba0 0xf4240>; - opp-microvolt-L1 = <0xd59f8 0xd59f8 0xf4240>; - }; - - opp-j-m-1560000000 { - opp-supported-hw = <0x06 0xffff>; - opp-hz = <0x00 0x5cfbb600>; - opp-microvolt = <0xd59f8 0xd59f8 0xf4240>; - }; - }; - - pcie@fe260000 { - compatible = "rockchip,rk3568-pcie\0snps,dw-pcie"; - #address-cells = <0x03>; - #size-cells = <0x02>; - bus-range = <0x00 0x0f>; - clocks = <0x23 0x81 0x23 0x82 0x23 0x83 0x23 0x84 0x23 0x85>; - clock-names = "aclk_mst\0aclk_slv\0aclk_dbi\0pclk\0aux"; - device_type = "pci"; - interrupts = <0x00 0x4b 0x04 0x00 0x4a 0x04 0x00 0x49 0x04 0x00 0x48 0x04 0x00 0x47 0x04>; - interrupt-names = "sys\0pmc\0msg\0legacy\0err"; - #interrupt-cells = <0x01>; - interrupt-map-mask = <0x00 0x00 0x00 0x07>; - interrupt-map = <0x00 0x00 0x00 0x01 0xbd 0x00 0x00 0x00 0x00 0x02 0xbd 0x01 0x00 0x00 0x00 0x03 0xbd 0x02 0x00 0x00 0x00 0x04 0xbd 0x03>; - linux,pci-domain = <0x00>; - num-ib-windows = <0x06>; - num-viewport = <0x08>; - num-ob-windows = <0x02>; - max-link-speed = <0x02>; - msi-map = <0x00 0xbe 0x00 0x1000>; - num-lanes = <0x01>; - phys = <0x27 0x02>; - phy-names = "pcie-phy"; - power-domains = <0x25 0x0f>; - ranges = <0x800 0x00 0xf4000000 0x00 0xf4000000 0x00 0x100000 0x81000000 0x00 0xf4100000 0x00 0xf4100000 0x00 0x100000 0x82000000 0x00 0xf4200000 0x00 0xf4200000 0x00 0x1e00000 0xc3000000 0x03 0x00 0x03 0x00 0x00 0x40000000>; - reg = <0x03 0xc0000000 0x00 0x400000 0x00 0xfe260000 0x00 0x10000>; - reg-names = "pcie-dbi\0pcie-apb"; - resets = <0x23 0xa1>; - reset-names = "pipe"; - status = "disabled"; - - legacy-interrupt-controller { - interrupt-controller; - #address-cells = <0x00>; - #interrupt-cells = <0x01>; - interrupt-parent = <0x01>; - interrupts = <0x00 0x48 0x01>; - phandle = <0xbd>; - }; - }; - - pcie@fe270000 { - compatible = "rockchip,rk3568-pcie\0snps,dw-pcie"; - #address-cells = <0x03>; - #size-cells = <0x02>; - bus-range = <0x10 0x1f>; - clocks = <0x23 0x88 0x23 0x89 0x23 0x8a 0x23 0x8b 0x23 0x8c>; - clock-names = "aclk_mst\0aclk_slv\0aclk_dbi\0pclk\0aux"; - device_type = "pci"; - interrupts = <0x00 0xa0 0x04 0x00 0x9f 0x04 0x00 0x9e 0x04 0x00 0x9d 0x04 0x00 0x9c 0x04>; - interrupt-names = "sys\0pmc\0msg\0legacy\0err"; - #interrupt-cells = <0x01>; - interrupt-map-mask = <0x00 0x00 0x00 0x07>; - interrupt-map = <0x00 0x00 0x00 0x01 0xbf 0x00 0x00 0x00 0x00 0x02 0xbf 0x01 0x00 0x00 0x00 0x03 0xbf 0x02 0x00 0x00 0x00 0x04 0xbf 0x03>; - linux,pci-domain = <0x01>; - num-ib-windows = <0x06>; - num-ob-windows = <0x02>; - num-viewport = <0x08>; - max-link-speed = <0x03>; - msi-map = <0x1000 0xbe 0x1000 0x1000>; - num-lanes = <0x01>; - phys = <0xc0>; - phy-names = "pcie-phy"; - power-domains = <0x25 0x0f>; - ranges = <0x800 0x00 0xf2000000 0x00 0xf2000000 0x00 0x100000 0x81000000 0x00 0xf2100000 0x00 0xf2100000 0x00 0x100000 0x82000000 0x00 0xf2200000 0x00 0xf2200000 0x00 0x1e00000 0xc3000000 0x03 0x40000000 0x03 0x40000000 0x00 0x40000000>; - reg = <0x03 0xc0400000 0x00 0x400000 0x00 0xfe270000 0x00 0x10000>; - reg-names = "pcie-dbi\0pcie-apb"; - resets = <0x23 0xb1>; - reset-names = "pipe"; - status = "disabled"; - - legacy-interrupt-controller { - interrupt-controller; - #address-cells = <0x00>; - #interrupt-cells = <0x01>; - interrupt-parent = <0x01>; - interrupts = <0x00 0x9d 0x01>; - phandle = <0xbf>; - }; - }; - - pcie@fe280000 { - compatible = "rockchip,rk3568-pcie\0snps,dw-pcie"; - #address-cells = <0x03>; - #size-cells = <0x02>; - bus-range = <0x20 0x2f>; - clocks = <0x23 0x8f 0x23 0x90 0x23 0x91 0x23 0x92 0x23 0x93>; - clock-names = "aclk_mst\0aclk_slv\0aclk_dbi\0pclk\0aux"; - device_type = "pci"; - interrupts = <0x00 0xa5 0x04 0x00 0xa4 0x04 0x00 0xa3 0x04 0x00 0xa2 0x04 0x00 0xa1 0x04>; - interrupt-names = "sys\0pmc\0msg\0legacy\0err"; - #interrupt-cells = <0x01>; - interrupt-map-mask = <0x00 0x00 0x00 0x07>; - interrupt-map = <0x00 0x00 0x00 0x01 0xc1 0x00 0x00 0x00 0x00 0x02 0xc1 0x01 0x00 0x00 0x00 0x03 0xc1 0x02 0x00 0x00 0x00 0x04 0xc1 0x03>; - linux,pci-domain = <0x02>; - num-ib-windows = <0x06>; - num-viewport = <0x08>; - num-ob-windows = <0x02>; - max-link-speed = <0x03>; - msi-map = <0x2000 0xbe 0x2000 0x1000>; - num-lanes = <0x02>; - phys = <0xc0>; - phy-names = "pcie-phy"; - power-domains = <0x25 0x0f>; - ranges = <0x800 0x00 0xf0000000 0x00 0xf0000000 0x00 0x100000 0x81000000 0x00 0xf0100000 0x00 0xf0100000 0x00 0x100000 0x82000000 0x00 0xf0200000 0x00 0xf0200000 0x00 0x1e00000 0xc3000000 0x03 0x80000000 0x03 0x80000000 0x00 0x40000000>; - reg = <0x03 0xc0800000 0x00 0x400000 0x00 0xfe280000 0x00 0x10000>; - reg-names = "pcie-dbi\0pcie-apb"; - resets = <0x23 0xc1>; - reset-names = "pipe"; - status = "okay"; - reset-gpios = <0x91 0x1e 0x00>; - vpcie3v3-supply = <0xc2>; - - legacy-interrupt-controller { - interrupt-controller; - #address-cells = <0x00>; - #interrupt-cells = <0x01>; - interrupt-parent = <0x01>; - interrupts = <0x00 0xa2 0x01>; - phandle = <0xc1>; - }; - }; - - uio@fe2a0000 { - compatible = "rockchip,uio-gmac"; - reg = <0x00 0xfe2a0000 0x00 0x10000>; - rockchip,ethernet = <0xc3>; - status = "disabled"; - }; - - ethernet@fe2a0000 { - local-mac-address = [5a 4f fd 70 05 c6]; - compatible = "rockchip,rk3568-gmac\0snps,dwmac-4.20a"; - reg = <0x00 0xfe2a0000 0x00 0x10000>; - interrupts = <0x00 0x1b 0x04 0x00 0x18 0x04>; - interrupt-names = "macirq\0eth_wake_irq"; - rockchip,grf = <0x3b>; - clocks = <0x23 0x182 0x23 0x185 0x23 0x185 0x23 0xb8 0x23 0xb4 0x23 0xb5 0x23 0x185 0x23 0xb9 0x23 0xac 0x23 0xab>; - clock-names = "stmmaceth\0mac_clk_rx\0mac_clk_tx\0clk_mac_refout\0aclk_mac\0pclk_mac\0clk_mac_speed\0ptp_ref\0pclk_xpcs\0clk_xpcs_eee"; - resets = <0x23 0xd7>; - reset-names = "stmmaceth"; - snps,mixed-burst; - snps,tso; - snps,axi-config = <0xc4>; - snps,mtl-rx-config = <0xc5>; - snps,mtl-tx-config = <0xc6>; - status = "okay"; - phy-mode = "rgmii"; - clock_in_out = "input"; - snps,reset-gpio = <0x91 0x1b 0x01>; - snps,reset-active-low; - snps,reset-delays-us = <0x00 0x4e20 0x186a0>; - assigned-clocks = <0x23 0x185 0x23 0x182>; - assigned-clock-parents = <0x23 0x183 0xc7>; - pinctrl-names = "default"; - pinctrl-0 = <0xc8 0xc9 0xca 0xcb 0xcc 0xcd>; - tx_delay = <0x4a>; - rx_delay = <0x2e>; - phy-handle = <0xce>; - phandle = <0xc3>; - - mdio { - compatible = "snps,dwmac-mdio"; - #address-cells = <0x01>; - #size-cells = <0x00>; - - phy@0 { - compatible = "ethernet-phy-ieee802.3-c22"; - reg = <0x00>; - led_status_value = <0x6940>; - phandle = <0xce>; - }; - }; - - stmmac-axi-config { - snps,wr_osr_lmt = <0x04>; - snps,rd_osr_lmt = <0x08>; - snps,blen = <0x00 0x00 0x00 0x00 0x10 0x08 0x04>; - phandle = <0xc4>; - }; - - rx-queues-config { - snps,rx-queues-to-use = <0x01>; - phandle = <0xc5>; - - queue0 { - }; - }; - - tx-queues-config { - snps,tx-queues-to-use = <0x01>; - phandle = <0xc6>; - - queue0 { - }; - }; - }; - - dwmmc@fe2b0000 { - compatible = "rockchip,rk3568-dw-mshc\0rockchip,rk3288-dw-mshc"; - reg = <0x00 0xfe2b0000 0x00 0x4000>; - interrupts = <0x00 0x62 0x04>; - max-frequency = <0x8f0d180>; - clocks = <0x23 0xb0 0x23 0xb1 0x23 0x18a 0x23 0x18b>; - clock-names = "biu\0ciu\0ciu-drive\0ciu-sample"; - fifo-depth = <0x100>; - resets = <0x23 0xd4>; - reset-names = "reset"; - status = "okay"; - no-sdio; - no-mmc; - bus-width = <0x04>; - cap-mmc-highspeed; - cap-sd-highspeed; - disable-wp; - sd-uhs-sdr104; - vmmc-supply = <0xcf>; - vqmmc-supply = <0x31>; - pinctrl-names = "default"; - pinctrl-0 = <0xd0 0xd1 0xd2 0xd3>; - }; - - dwmmc@fe2c0000 { - compatible = "rockchip,rk3568-dw-mshc\0rockchip,rk3288-dw-mshc"; - reg = <0x00 0xfe2c0000 0x00 0x4000>; - interrupts = <0x00 0x63 0x04>; - max-frequency = <0x8f0d180>; - clocks = <0x23 0xb2 0x23 0xb3 0x23 0x18c 0x23 0x18d>; - clock-names = "biu\0ciu\0ciu-drive\0ciu-sample"; - fifo-depth = <0x100>; - resets = <0x23 0xd6>; - reset-names = "reset"; - status = "disabled"; - }; - - spi@fe300000 { - compatible = "rockchip,sfc"; - reg = <0x00 0xfe300000 0x00 0x4000>; - interrupts = <0x00 0x65 0x04>; - clocks = <0x23 0x78 0x23 0x76>; - clock-names = "clk_sfc\0hclk_sfc"; - assigned-clocks = <0x23 0x78>; - assigned-clock-rates = <0x2faf080>; - #address-cells = <0x01>; - #size-cells = <0x00>; - status = "okay"; - pinctrl-names = "default"; - pinctrl-0 = <0xd4>; - - flash@0 { - compatible = "jedec,spi-nor"; - reg = <0x00>; - spi-max-frequency = <0x2faf080>; - spi-rx-bus-width = <0x01>; - spi-tx-bus-width = <0x01>; - }; - }; - - sdhci@fe310000 { - compatible = "rockchip,rk3568-dwcmshc\0rockchip,dwcmshc-sdhci"; - reg = <0x00 0xfe310000 0x00 0x10000>; - interrupts = <0x00 0x13 0x04>; - assigned-clocks = <0x23 0x7b 0x23 0x7d 0x23 0x7c>; - assigned-clock-rates = <0xbebc200 0x16e3600 0xbebc200>; - clocks = <0x23 0x7c 0x23 0x7a 0x23 0x79 0x23 0x7b 0x23 0x7d>; - clock-names = "core\0bus\0axi\0block\0timer"; - resets = <0x23 0x78 0x23 0x76 0x23 0x75 0x23 0x77 0x23 0x79>; - reset-names = "core\0bus\0axi\0block\0timer"; - status = "okay"; - bus-width = <0x08>; - no-sdio; - no-sd; - non-removable; - max-frequency = <0xbebc200>; - full-pwr-cycle-in-suspend; - }; - - nandc@fe330000 { - compatible = "rockchip,rk-nandc-v9"; - reg = <0x00 0xfe330000 0x00 0x4000>; - interrupts = <0x00 0x46 0x04>; - nandc_id = <0x00>; - clocks = <0x23 0x75 0x23 0x74>; - clock-names = "clk_nandc\0hclk_nandc"; - status = "okay"; - #address-cells = <0x01>; - #size-cells = <0x00>; - - nand@0 { - reg = <0x00>; - nand-bus-width = <0x08>; - nand-ecc-mode = "hw"; - nand-ecc-strength = <0x10>; - nand-ecc-step-size = <0x400>; - }; - }; - - crypto@fe380000 { - compatible = "rockchip,rk3568-crypto"; - reg = <0x00 0xfe380000 0x00 0x4000>; - interrupts = <0x00 0x04 0x04>; - clocks = <0x23 0x6a 0x23 0x6b 0x23 0x6c 0x23 0x6d>; - clock-names = "aclk\0hclk\0sclk\0apb_pclk"; - assigned-clocks = <0x23 0x6c>; - assigned-clock-rates = <0xbebc200>; - resets = <0x23 0x69>; - reset-names = "crypto-rst"; - status = "disabled"; - }; - - rng@fe388000 { - compatible = "rockchip,cryptov2-rng"; - reg = <0x00 0xfe388000 0x00 0x2000>; - clocks = <0x23 0x70 0x23 0x6f>; - clock-names = "clk_trng\0hclk_trng"; - resets = <0x23 0x6d>; - reset-names = "reset"; - status = "okay"; - }; - - otp@fe38c000 { - compatible = "rockchip,rk3568-otp"; - reg = <0x00 0xfe38c000 0x00 0x4000>; - #address-cells = <0x01>; - #size-cells = <0x01>; - clocks = <0x23 0x73 0x23 0x72 0x23 0x71 0x23 0x181>; - clock-names = "usr\0sbpi\0apb\0phy"; - resets = <0x23 0x1cf>; - reset-names = "otp_phy"; - - cpu-code@2 { - reg = <0x02 0x02>; - phandle = <0x12>; - }; - - specification-serial-number@7 { - reg = <0x07 0x01>; - bits = <0x00 0x05>; - phandle = <0x0a>; - }; - - cpu-version@8 { - reg = <0x08 0x01>; - bits = <0x03 0x03>; - phandle = <0x11>; - }; - - mbist-vmin@9 { - reg = <0x09 0x01>; - bits = <0x00 0x04>; - phandle = <0x08>; - }; - - id@a { - reg = <0x0a 0x10>; - phandle = <0x10>; - }; - - cpu-leakage@1a { - reg = <0x1a 0x01>; - phandle = <0x06>; - }; - - log-leakage@1b { - reg = <0x1b 0x01>; - phandle = <0x85>; - }; - - npu-leakage@1c { - reg = <0x1c 0x01>; - phandle = <0x72>; - }; - - gpu-leakage@1d { - reg = <0x1d 0x01>; - phandle = <0x78>; - }; - - core-pvtm@2a { - reg = <0x2a 0x02>; - phandle = <0x07>; - }; - - cpu-tsadc-trim-l@2e { - reg = <0x2e 0x01>; - phandle = <0x125>; - }; - - cpu-tsadc-trim-h@2f { - reg = <0x2f 0x01>; - bits = <0x00 0x04>; - phandle = <0x126>; - }; - - npu-tsadc-trim-l@30 { - reg = <0x30 0x01>; - phandle = <0x127>; - }; - - npu-tsadc-trim-h@31 { - reg = <0x31 0x01>; - bits = <0x00 0x04>; - phandle = <0x128>; - }; - - tsadc-trim-base-frac@31 { - reg = <0x31 0x01>; - bits = <0x04 0x04>; - phandle = <0x122>; - }; - - tsadc-trim-base@32 { - reg = <0x32 0x01>; - phandle = <0x121>; - }; - - cpu-opp-info@36 { - reg = <0x36 0x06>; - phandle = <0x09>; - }; - - gpu-opp-info@3c { - reg = <0x3c 0x06>; - phandle = <0x79>; - }; - - npu-opp-info@42 { - reg = <0x42 0x06>; - phandle = <0x73>; - }; - - dmc-opp-info@48 { - reg = <0x48 0x06>; - phandle = <0xbc>; - }; - - remark-spec-serial-number@56 { - reg = <0x56 0x01>; - bits = <0x00 0x05>; - phandle = <0x0b>; - }; - }; - - i2s@fe400000 { - compatible = "rockchip,rk3568-i2s-tdm"; - reg = <0x00 0xfe400000 0x00 0x1000>; - interrupts = <0x00 0x34 0x04>; - clocks = <0x23 0x3f 0x23 0x43 0x23 0x39>; - clock-names = "mclk_tx\0mclk_rx\0hclk"; - dmas = <0xd5 0x00>; - dma-names = "tx"; - resets = <0x23 0x50 0x23 0x51>; - reset-names = "tx-m\0rx-m"; - rockchip,cru = <0x23>; - rockchip,grf = <0x3b>; - rockchip,playback-only; - #sound-dai-cells = <0x00>; - status = "okay"; - phandle = <0x146>; - }; - - i2s@fe410000 { - compatible = "rockchip,rk3568-i2s-tdm"; - reg = <0x00 0xfe410000 0x00 0x1000>; - interrupts = <0x00 0x35 0x04>; - clocks = <0x23 0x47 0x23 0x4b 0x23 0x3a>; - clock-names = "mclk_tx\0mclk_rx\0hclk"; - dmas = <0xd5 0x02 0xd5 0x03>; - dma-names = "tx\0rx"; - resets = <0x23 0x52 0x23 0x53>; - reset-names = "tx-m\0rx-m"; - rockchip,cru = <0x23>; - rockchip,grf = <0x3b>; - #sound-dai-cells = <0x00>; - pinctrl-names = "default"; - pinctrl-0 = <0xd6 0xd7 0xd8 0xd9>; - status = "okay"; - rockchip,clk-trcm = <0x01>; - phandle = <0xe8>; - }; - - i2s@fe420000 { - compatible = "rockchip,rk3568-i2s-tdm"; - reg = <0x00 0xfe420000 0x00 0x1000>; - interrupts = <0x00 0x36 0x04>; - clocks = <0x23 0x4f 0x23 0x4f 0x23 0x3b>; - clock-names = "mclk_tx\0mclk_rx\0hclk"; - dmas = <0xd5 0x04 0xd5 0x05>; - dma-names = "tx\0rx"; - rockchip,cru = <0x23>; - rockchip,grf = <0x3b>; - rockchip,clk-trcm = <0x01>; - #sound-dai-cells = <0x00>; - pinctrl-names = "default"; - pinctrl-0 = <0xda 0xdb 0xdc 0xdd>; - status = "disabled"; - }; - - i2s@fe430000 { - compatible = "rockchip,rk3568-i2s-tdm"; - reg = <0x00 0xfe430000 0x00 0x1000>; - interrupts = <0x00 0x37 0x04>; - clocks = <0x23 0x53 0x23 0x57 0x23 0x3c>; - clock-names = "mclk_tx\0mclk_rx\0hclk"; - dmas = <0xd5 0x06 0xd5 0x07>; - dma-names = "tx\0rx"; - resets = <0x23 0x55 0x23 0x56>; - reset-names = "tx-m\0rx-m"; - rockchip,cru = <0x23>; - rockchip,grf = <0x3b>; - rockchip,clk-trcm = <0x01>; - #sound-dai-cells = <0x00>; - pinctrl-names = "default"; - pinctrl-0 = <0xde 0xdf 0xe0 0xe1>; - status = "disabled"; - phandle = <0x144>; - }; - - pdm@fe440000 { - compatible = "rockchip,rk3568-pdm\0rockchip,pdm"; - reg = <0x00 0xfe440000 0x00 0x1000>; - clocks = <0x23 0x5a 0x23 0x59>; - clock-names = "pdm_clk\0pdm_hclk"; - dmas = <0xd5 0x09>; - dma-names = "rx"; - pinctrl-names = "default"; - pinctrl-0 = <0xe2 0xe3 0xe4 0xe5 0xe6 0xe7>; - #sound-dai-cells = <0x00>; - status = "disabled"; - phandle = <0x149>; - }; - - vad@fe450000 { - compatible = "rockchip,rk3568-vad"; - reg = <0x00 0xfe450000 0x00 0x10000>; - reg-names = "vad"; - clocks = <0x23 0x5b>; - clock-names = "hclk"; - interrupts = <0x00 0x89 0x04>; - rockchip,audio-src = <0xe8>; - rockchip,det-channel = <0x00>; - rockchip,mode = <0x00>; - #sound-dai-cells = <0x00>; - status = "disabled"; - rockchip,buffer-time-ms = <0x80>; - phandle = <0x14e>; - }; - - spdif@fe460000 { - compatible = "rockchip,rk3568-spdif"; - reg = <0x00 0xfe460000 0x00 0x1000>; - interrupts = <0x00 0x66 0x04>; - dmas = <0xd5 0x01>; - dma-names = "tx"; - clock-names = "mclk\0hclk"; - clocks = <0x23 0x5f 0x23 0x5c>; - #sound-dai-cells = <0x00>; - pinctrl-names = "default"; - pinctrl-0 = <0xe9>; - status = "disabled"; - phandle = <0x14c>; - }; - - audpwm@fe470000 { - compatible = "rockchip,rk3568-audio-pwm\0rockchip,audio-pwm-v1"; - reg = <0x00 0xfe470000 0x00 0x1000>; - clocks = <0x23 0x63 0x23 0x60>; - clock-names = "clk\0hclk"; - dmas = <0xd5 0x08>; - dma-names = "tx"; - #sound-dai-cells = <0x00>; - rockchip,sample-width-bits = <0x0b>; - rockchip,interpolat-points = <0x01>; - status = "disabled"; - }; - - codec-digital@fe478000 { - compatible = "rockchip,rk3568-codec-digital\0rockchip,codec-digital-v1"; - reg = <0x00 0xfe478000 0x00 0x1000>; - clocks = <0x23 0x67 0x23 0x66 0x23 0x65 0x23 0x64>; - clock-names = "adc\0dac\0i2c\0pclk"; - pinctrl-names = "default"; - pinctrl-0 = <0xea>; - resets = <0x23 0x5f>; - reset-names = "reset"; - rockchip,grf = <0x3b>; - #sound-dai-cells = <0x00>; - status = "disabled"; - phandle = <0x145>; - }; - - dmac@fe530000 { - compatible = "arm,pl330\0arm,primecell"; - reg = <0x00 0xfe530000 0x00 0x4000>; - interrupts = <0x00 0x0e 0x04 0x00 0x0d 0x04>; - clocks = <0x23 0x10d>; - clock-names = "apb_pclk"; - #dma-cells = <0x01>; - arm,pl330-periph-burst; - phandle = <0x4e>; - }; - - dmac@fe550000 { - compatible = "arm,pl330\0arm,primecell"; - reg = <0x00 0xfe550000 0x00 0x4000>; - interrupts = <0x00 0x10 0x04 0x00 0x0f 0x04>; - clocks = <0x23 0x10d>; - clock-names = "apb_pclk"; - #dma-cells = <0x01>; - arm,pl330-periph-burst; - phandle = <0xd5>; - }; - - rkscr@fe560000 { - compatible = "rockchip-scr"; - reg = <0x00 0xfe560000 0x00 0x10000>; - interrupts = <0x00 0x61 0x04>; - pinctrl-names = "default"; - pinctrl-0 = <0xeb>; - clocks = <0x23 0x114>; - clock-names = "g_pclk_sim_card"; - status = "disabled"; - }; - - can@fe570000 { - compatible = "rockchip,rk3568-can-2.0"; - reg = <0x00 0xfe570000 0x00 0x1000>; - interrupts = <0x00 0x01 0x04>; - clocks = <0x23 0x141 0x23 0x140>; - clock-names = "baudclk\0apb_pclk"; - resets = <0x23 0x155 0x23 0x154>; - reset-names = "can\0can-apb"; - tx-fifo-depth = <0x01>; - rx-fifo-depth = <0x06>; - status = "disabled"; - }; - - can@fe580000 { - compatible = "rockchip,rk3568-can-2.0"; - reg = <0x00 0xfe580000 0x00 0x1000>; - interrupts = <0x00 0x02 0x04>; - clocks = <0x23 0x143 0x23 0x142>; - clock-names = "baudclk\0apb_pclk"; - resets = <0x23 0x157 0x23 0x156>; - reset-names = "can\0can-apb"; - tx-fifo-depth = <0x01>; - rx-fifo-depth = <0x06>; - status = "okay"; - assigned-clocks = <0x23 0x143>; - assigned-clock-rates = <0xbebc200>; - pinctrl-names = "default"; - pinctrl-0 = <0xec>; - }; - - can@fe590000 { - compatible = "rockchip,rk3568-can-2.0"; - reg = <0x00 0xfe590000 0x00 0x1000>; - interrupts = <0x00 0x03 0x04>; - clocks = <0x23 0x145 0x23 0x144>; - clock-names = "baudclk\0apb_pclk"; - resets = <0x23 0x159 0x23 0x158>; - reset-names = "can\0can-apb"; - tx-fifo-depth = <0x01>; - rx-fifo-depth = <0x06>; - status = "disabled"; - assigned-clocks = <0x23 0x145>; - assigned-clock-rates = <0xbebc200>; - pinctrl-names = "default"; - pinctrl-0 = <0xed>; - }; - - i2c@fe5a0000 { - compatible = "rockchip,rk3399-i2c"; - reg = <0x00 0xfe5a0000 0x00 0x1000>; - clocks = <0x23 0x148 0x23 0x147>; - clock-names = "i2c\0pclk"; - interrupts = <0x00 0x2f 0x04>; - pinctrl-names = "default"; - pinctrl-0 = <0xee>; - #address-cells = <0x01>; - #size-cells = <0x00>; - status = "okay"; - clock-frequency = <0x186a0>; - - gpio@21 { - status = "disabled"; - compatible = "nxp,pca9555"; - reg = <0x21>; - gpio-controller; - #gpio-cells = <0x02>; - gpio-group-num = <0xc8>; - phandle = <0x102>; - }; - - gt1x@14 { - status = "disabled"; - compatible = "goodix,gt1x"; - reg = <0x14>; - pinctrl-names = "default"; - pinctrl-0 = <0xef>; - goodix,rst-gpio = <0x3f 0x0e 0x00>; - goodix,irq-gpio = <0x3f 0x0d 0x08>; - }; - }; - - i2c@fe5b0000 { - compatible = "rockchip,rk3399-i2c"; - reg = <0x00 0xfe5b0000 0x00 0x1000>; - clocks = <0x23 0x14a 0x23 0x149>; - clock-names = "i2c\0pclk"; - interrupts = <0x00 0x30 0x04>; - pinctrl-names = "default"; - pinctrl-0 = <0xf0>; - #address-cells = <0x01>; - #size-cells = <0x00>; - status = "disabled"; - }; - - i2c@fe5c0000 { - compatible = "rockchip,rk3399-i2c"; - reg = <0x00 0xfe5c0000 0x00 0x1000>; - clocks = <0x23 0x14c 0x23 0x14b>; - clock-names = "i2c\0pclk"; - interrupts = <0x00 0x31 0x04>; - pinctrl-names = "default"; - pinctrl-0 = <0xf1>; - #address-cells = <0x01>; - #size-cells = <0x00>; - status = "disabled"; - }; - - i2c@fe5d0000 { - compatible = "rockchip,rk3399-i2c"; - reg = <0x00 0xfe5d0000 0x00 0x1000>; - clocks = <0x23 0x14e 0x23 0x14d>; - clock-names = "i2c\0pclk"; - interrupts = <0x00 0x32 0x04>; - pinctrl-names = "default"; - pinctrl-0 = <0xf2>; - #address-cells = <0x01>; - #size-cells = <0x00>; - status = "okay"; - clock-frequency = <0x61a80>; - - gc8034@37 { - compatible = "galaxycore,gc8034"; - status = "disabled"; - reg = <0x37>; - clocks = <0x23 0xd6>; - clock-names = "xvclk"; - pinctrl-names = "default"; - pinctrl-0 = <0xf3>; - reset-gpios = <0x4a 0x0e 0x01>; - pwdn-gpios = <0xf4 0x0c 0x01>; - rockchip,grf = <0x3b>; - rockchip,camera-module-index = <0x00>; - rockchip,camera-module-facing = "back"; - rockchip,camera-module-name = "RK-CMK-8M-2-v1"; - rockchip,camera-module-lens-name = "CK8401"; - - port { - - endpoint { - remote-endpoint = <0xf5>; - data-lanes = <0x01 0x02 0x03 0x04>; - phandle = <0x130>; - }; - }; - }; - - os04a10@36 { - status = "disabled"; - compatible = "ovti,os04a10"; - reg = <0x36>; - clocks = <0x23 0xd6>; - clock-names = "xvclk"; - power-domains = <0x25 0x08>; - pinctrl-names = "default"; - pinctrl-0 = <0xf3>; - reset-gpios = <0x4a 0x0e 0x01>; - pwdn-gpios = <0xf4 0x0c 0x00>; - rockchip,camera-module-index = <0x00>; - rockchip,camera-module-facing = "back"; - rockchip,camera-module-name = "CMK-OT1607-FV1"; - rockchip,camera-module-lens-name = "M12-40IRC-4MP-F16"; - - port { - - endpoint { - remote-endpoint = <0xf6>; - data-lanes = <0x01 0x02 0x03 0x04>; - phandle = <0x12f>; - }; - }; - }; - - ov5695@36 { - status = "disabled"; - compatible = "ovti,ov5695"; - reg = <0x36>; - clocks = <0x23 0xd6>; - clock-names = "xvclk"; - power-domains = <0x25 0x08>; - pinctrl-names = "default"; - pinctrl-0 = <0xf3>; - reset-gpios = <0x4a 0x0e 0x00>; - pwdn-gpios = <0xf4 0x0c 0x00>; - rockchip,camera-module-index = <0x00>; - rockchip,camera-module-facing = "back"; - rockchip,camera-module-name = "TongJu"; - rockchip,camera-module-lens-name = "CHT842-MD"; - - port { - - endpoint { - remote-endpoint = <0xf7>; - data-lanes = <0x01 0x02>; - phandle = <0x131>; - }; - }; - }; - - XC7160b@1b { - status = "okay"; - compatible = "firefly,xc7160"; - reg = <0x1b>; - clocks = <0x23 0xd6>; - clock-names = "xvclk"; - power-domains = <0x25 0x08>; - pinctrl-names = "default"; - pinctrl-0 = <0xf3>; - reset-gpios = <0x3f 0x1d 0x00>; - pwdn-gpios = <0xf4 0x0c 0x00>; - firefly,clkout-enabled-index = <0x00>; - rockchip,camera-module-index = <0x00>; - rockchip,camera-module-facing = "back"; - rockchip,camera-module-name = "NC"; - rockchip,camera-module-lens-name = "NC"; - - port { - - endpoint { - remote-endpoint = <0xf8>; - data-lanes = <0x01 0x02 0x03 0x04>; - phandle = <0x132>; - }; - }; - }; - - imx415@37 { - status = "okay"; - compatible = "sony,imx415"; - reg = <0x37>; - clocks = <0x23 0xd6>; - clock-names = "xvclk"; - power-domains = <0x25 0x08>; - pinctrl-names = "default"; - pinctrl-0 = <0xf3>; - reset-gpios = <0x3f 0x1d 0x01>; - pwdn-gpios = <0xf4 0x0c 0x00>; - firefly,clkout-enabled-index = <0x00>; - rockchip,camera-module-index = <0x00>; - rockchip,camera-module-facing = "back"; - rockchip,camera-module-name = "CMK-OT2022-PX1"; - rockchip,camera-module-lens-name = "IR0147-50IRC-8M-F20"; - - port { - - endpoint { - remote-endpoint = <0xf9>; - data-lanes = <0x01 0x02 0x03 0x04>; - phandle = <0x133>; - }; - }; - }; - }; - - i2c@fe5e0000 { - compatible = "rockchip,rk3399-i2c"; - reg = <0x00 0xfe5e0000 0x00 0x1000>; - clocks = <0x23 0x150 0x23 0x14f>; - clock-names = "i2c\0pclk"; - interrupts = <0x00 0x33 0x04>; - pinctrl-names = "default"; - pinctrl-0 = <0xfa>; - #address-cells = <0x01>; - #size-cells = <0x00>; - status = "okay"; - - hym8563@51 { - status = "okay"; - compatible = "haoyu,hym8563"; - reg = <0x51>; - #clock-cells = <0x00>; - rtc-irq-gpio = <0x3f 0x1b 0x02>; - clock-frequency = <0x8000>; - }; - - mc3230sensor@4c { - compatible = "gs_mc3230"; - reg = <0x4c>; - type = <0x02>; - irq_enable = <0x00>; - poll_delay_ms = <0x1e>; - layout = <0x04>; - status = "okay"; - }; - - mxc6655xa@15 { - status = "disabled"; - compatible = "gs_mxc6655xa"; - pinctrl-names = "default"; - pinctrl-0 = <0xfb>; - reg = <0x15>; - irq-gpio = <0x4a 0x11 0x08>; - irq_enable = <0x00>; - poll_delay_ms = <0x1e>; - type = <0x02>; - power-off-in-suspend = <0x01>; - layout = <0x01>; - }; - }; - - timer@fe5f0000 { - compatible = "rockchip,rk3568-timer\0rockchip,rk3288-timer"; - reg = <0x00 0xfe5f0000 0x00 0x1000>; - interrupts = <0x00 0x6d 0x04>; - clocks = <0x23 0x16c 0x23 0x16d>; - clock-names = "pclk\0timer"; - }; - - watchdog@fe600000 { - compatible = "snps,dw-wdt"; - reg = <0x00 0xfe600000 0x00 0x100>; - clocks = <0x23 0x116 0x23 0x115>; - clock-names = "tclk\0pclk"; - interrupts = <0x00 0x95 0x04>; - status = "okay"; - }; - - spi@fe610000 { - compatible = "rockchip,rk3066-spi"; - reg = <0x00 0xfe610000 0x00 0x1000>; - interrupts = <0x00 0x67 0x04>; - #address-cells = <0x01>; - #size-cells = <0x00>; - clocks = <0x23 0x152 0x23 0x151>; - clock-names = "spiclk\0apb_pclk"; - dmas = <0x4e 0x14 0x4e 0x15>; - dma-names = "tx\0rx"; - pinctrl-names = "default\0high_speed"; - pinctrl-0 = <0xfc 0xfd 0xfe>; - pinctrl-1 = <0xfc 0xfd 0xff>; - num-cs = <0x02>; - status = "disabled"; - }; - - spi@fe620000 { - compatible = "rockchip,rk3066-spi"; - reg = <0x00 0xfe620000 0x00 0x1000>; - interrupts = <0x00 0x68 0x04>; - #address-cells = <0x01>; - #size-cells = <0x00>; - clocks = <0x23 0x154 0x23 0x153>; - clock-names = "spiclk\0apb_pclk"; - dmas = <0x4e 0x16 0x4e 0x17>; - dma-names = "tx\0rx"; - pinctrl-names = "default\0high_speed"; - pinctrl-0 = <0x100>; - pinctrl-1 = <0x101>; - num-cs = <0x02>; - status = "disabled"; - max-freq = <0x2dc6c00>; - dev-port = <0x00>; - - spi_wk2xxx@0 { - status = "disabled"; - compatible = "firefly,spi-wk2xxx"; - reg = <0x00>; - spi-max-frequency = <0x989680>; - power-gpio = <0x102 0x0f 0x00>; - reset-gpio = <0x102 0x09 0x00>; - irq-gpio = <0x3f 0x06 0x02>; - cs-gpio = <0x4a 0x01 0x00>; - }; - }; - - spi@fe630000 { - compatible = "rockchip,rk3066-spi"; - reg = <0x00 0xfe630000 0x00 0x1000>; - interrupts = <0x00 0x69 0x04>; - #address-cells = <0x01>; - #size-cells = <0x00>; - clocks = <0x23 0x156 0x23 0x155>; - clock-names = "spiclk\0apb_pclk"; - dmas = <0x4e 0x18 0x4e 0x19>; - dma-names = "tx\0rx"; - pinctrl-names = "default\0high_speed"; - pinctrl-0 = <0x103 0x104 0x105>; - pinctrl-1 = <0x103 0x104 0x106>; - num-cs = <0x02>; - status = "disabled"; - }; - - spi@fe640000 { - compatible = "rockchip,rk3066-spi"; - reg = <0x00 0xfe640000 0x00 0x1000>; - interrupts = <0x00 0x6a 0x04>; - #address-cells = <0x01>; - #size-cells = <0x00>; - clocks = <0x23 0x158 0x23 0x157>; - clock-names = "spiclk\0apb_pclk"; - dmas = <0x4e 0x1a 0x4e 0x1b>; - dma-names = "tx\0rx"; - pinctrl-names = "default\0high_speed"; - pinctrl-0 = <0x107 0x108 0x109>; - pinctrl-1 = <0x107 0x108 0x10a>; - num-cs = <0x02>; - status = "disabled"; - }; - - serial@fe650000 { - compatible = "rockchip,rk3568-uart\0snps,dw-apb-uart"; - reg = <0x00 0xfe650000 0x00 0x100>; - interrupts = <0x00 0x75 0x04>; - clocks = <0x23 0x11f 0x23 0x11c>; - clock-names = "baudclk\0apb_pclk"; - reg-shift = <0x02>; - reg-io-width = <0x04>; - dmas = <0x4e 0x02 0x4e 0x03>; - pinctrl-names = "default"; - pinctrl-0 = <0x10b>; - status = "disabled"; - }; - - serial@fe660000 { - compatible = "rockchip,rk3568-uart\0snps,dw-apb-uart"; - reg = <0x00 0xfe660000 0x00 0x100>; - interrupts = <0x00 0x76 0x04>; - clocks = <0x23 0x123 0x23 0x120>; - clock-names = "baudclk\0apb_pclk"; - reg-shift = <0x02>; - reg-io-width = <0x04>; - dmas = <0x4e 0x04 0x4e 0x05>; - pinctrl-names = "default"; - pinctrl-0 = <0x10c>; - status = "disabled"; - }; - - serial@fe670000 { - compatible = "rockchip,rk3568-uart\0snps,dw-apb-uart"; - reg = <0x00 0xfe670000 0x00 0x100>; - interrupts = <0x00 0x77 0x04>; - clocks = <0x23 0x127 0x23 0x124>; - clock-names = "baudclk\0apb_pclk"; - reg-shift = <0x02>; - reg-io-width = <0x04>; - dmas = <0x4e 0x06 0x4e 0x07>; - pinctrl-names = "default"; - pinctrl-0 = <0x10d>; - status = "okay"; - }; - - serial@fe680000 { - compatible = "rockchip,rk3568-uart\0snps,dw-apb-uart"; - reg = <0x00 0xfe680000 0x00 0x100>; - interrupts = <0x00 0x78 0x04>; - clocks = <0x23 0x12b 0x23 0x128>; - clock-names = "baudclk\0apb_pclk"; - reg-shift = <0x02>; - reg-io-width = <0x04>; - dmas = <0x4e 0x08 0x4e 0x09>; - pinctrl-names = "default"; - pinctrl-0 = <0x10e>; - status = "okay"; - }; - - serial@fe690000 { - compatible = "rockchip,rk3568-uart\0snps,dw-apb-uart"; - reg = <0x00 0xfe690000 0x00 0x100>; - interrupts = <0x00 0x79 0x04>; - clocks = <0x23 0x12f 0x23 0x12c>; - clock-names = "baudclk\0apb_pclk"; - reg-shift = <0x02>; - reg-io-width = <0x04>; - dmas = <0x4e 0x0a 0x4e 0x0b>; - pinctrl-names = "default"; - pinctrl-0 = <0x10f>; - status = "disabled"; - }; - - serial@fe6a0000 { - compatible = "rockchip,rk3568-uart\0snps,dw-apb-uart"; - reg = <0x00 0xfe6a0000 0x00 0x100>; - interrupts = <0x00 0x7a 0x04>; - clocks = <0x23 0x133 0x23 0x130>; - clock-names = "baudclk\0apb_pclk"; - reg-shift = <0x02>; - reg-io-width = <0x04>; - dmas = <0x4e 0x0c 0x4e 0x0d>; - pinctrl-names = "default"; - pinctrl-0 = <0x110>; - status = "disabled"; - }; - - serial@fe6b0000 { - compatible = "rockchip,rk3568-uart\0snps,dw-apb-uart"; - reg = <0x00 0xfe6b0000 0x00 0x100>; - interrupts = <0x00 0x7b 0x04>; - clocks = <0x23 0x137 0x23 0x134>; - clock-names = "baudclk\0apb_pclk"; - reg-shift = <0x02>; - reg-io-width = <0x04>; - dmas = <0x4e 0x0e 0x4e 0x0f>; - pinctrl-names = "default"; - pinctrl-0 = <0x111>; - status = "okay"; - }; - - serial@fe6c0000 { - compatible = "rockchip,rk3568-uart\0snps,dw-apb-uart"; - reg = <0x00 0xfe6c0000 0x00 0x100>; - interrupts = <0x00 0x7c 0x04>; - clocks = <0x23 0x13b 0x23 0x138>; - clock-names = "baudclk\0apb_pclk"; - reg-shift = <0x02>; - reg-io-width = <0x04>; - dmas = <0x4e 0x10 0x4e 0x11>; - pinctrl-names = "default"; - pinctrl-0 = <0x112 0x113>; - status = "okay"; - }; - - serial@fe6d0000 { - compatible = "rockchip,rk3568-uart\0snps,dw-apb-uart"; - reg = <0x00 0xfe6d0000 0x00 0x100>; - interrupts = <0x00 0x7d 0x04>; - clocks = <0x23 0x13f 0x23 0x13c>; - clock-names = "baudclk\0apb_pclk"; - reg-shift = <0x02>; - reg-io-width = <0x04>; - dmas = <0x4e 0x12 0x4e 0x13>; - pinctrl-names = "default"; - pinctrl-0 = <0x114>; - status = "okay"; - }; - - pwm@fe6e0000 { - compatible = "rockchip,rk3568-pwm\0rockchip,rk3328-pwm"; - reg = <0x00 0xfe6e0000 0x00 0x10>; - interrupts = <0x00 0x53 0x04>; - #pwm-cells = <0x03>; - pinctrl-names = "active"; - pinctrl-0 = <0x115>; - clocks = <0x23 0x15a 0x23 0x159>; - clock-names = "pwm\0pclk"; - status = "okay"; - }; - - pwm@fe6e0010 { - compatible = "rockchip,rk3568-pwm\0rockchip,rk3328-pwm"; - reg = <0x00 0xfe6e0010 0x00 0x10>; - interrupts = <0x00 0x53 0x04>; - #pwm-cells = <0x03>; - pinctrl-names = "active"; - pinctrl-0 = <0x116>; - clocks = <0x23 0x15a 0x23 0x159>; - clock-names = "pwm\0pclk"; - status = "okay"; - }; - - pwm@fe6e0020 { - compatible = "rockchip,rk3568-pwm\0rockchip,rk3328-pwm"; - reg = <0x00 0xfe6e0020 0x00 0x10>; - interrupts = <0x00 0x53 0x04>; - #pwm-cells = <0x03>; - pinctrl-names = "active"; - pinctrl-0 = <0x117>; - clocks = <0x23 0x15a 0x23 0x159>; - clock-names = "pwm\0pclk"; - status = "disabled"; - }; - - pwm@fe6e0030 { - compatible = "rockchip,remotectl-pwm"; - reg = <0x00 0xfe6e0030 0x00 0x10>; - interrupts = <0x00 0x53 0x04>; - #pwm-cells = <0x03>; - pinctrl-names = "default"; - pinctrl-0 = <0x118>; - clocks = <0x23 0x15a 0x23 0x159>; - clock-names = "pwm\0pclk"; - status = "okay"; - remote_pwm_id = <0x03>; - handle_cpu_id = <0x01>; - remote_support_psci = <0x00>; - - ir_key_firefly { - rockchip,usercode = <0xff00>; - rockchip,key_table = <0xeb 0x74 0xec 0x8b 0xfe 0x9e 0xb7 0x66 0xa3 0x96 0xf4 0x73 0xa7 0x72 0xf8 0xe8 0xfc 0x67 0xfd 0x6c 0xf1 0x69 0xe5 0x6a>; - }; - }; - - pwm@fe6f0000 { - compatible = "rockchip,rk3568-pwm\0rockchip,rk3328-pwm"; - reg = <0x00 0xfe6f0000 0x00 0x10>; - interrupts = <0x00 0x54 0x04>; - #pwm-cells = <0x03>; - pinctrl-names = "active"; - pinctrl-0 = <0x119>; - clocks = <0x23 0x15d 0x23 0x15c>; - clock-names = "pwm\0pclk"; - status = "disabled"; - }; - - pwm@fe6f0010 { - compatible = "rockchip,rk3568-pwm\0rockchip,rk3328-pwm"; - reg = <0x00 0xfe6f0010 0x00 0x10>; - interrupts = <0x00 0x54 0x04>; - #pwm-cells = <0x03>; - pinctrl-names = "active"; - pinctrl-0 = <0x11a>; - clocks = <0x23 0x15d 0x23 0x15c>; - clock-names = "pwm\0pclk"; - status = "disabled"; - }; - - pwm@fe6f0020 { - compatible = "rockchip,rk3568-pwm\0rockchip,rk3328-pwm"; - reg = <0x00 0xfe6f0020 0x00 0x10>; - interrupts = <0x00 0x54 0x04>; - #pwm-cells = <0x03>; - pinctrl-names = "active"; - pinctrl-0 = <0x11b>; - clocks = <0x23 0x15d 0x23 0x15c>; - clock-names = "pwm\0pclk"; - status = "disabled"; - }; - - pwm@fe6f0030 { - compatible = "rockchip,rk3568-pwm\0rockchip,rk3328-pwm"; - reg = <0x00 0xfe6f0030 0x00 0x10>; - interrupts = <0x00 0x54 0x04 0x00 0x58 0x04>; - #pwm-cells = <0x03>; - pinctrl-names = "active"; - pinctrl-0 = <0x11c>; - clocks = <0x23 0x15d 0x23 0x15c>; - clock-names = "pwm\0pclk"; - status = "disabled"; - phandle = <0x157>; - }; - - pwm@fe700000 { - compatible = "rockchip,rk3568-pwm\0rockchip,rk3328-pwm"; - reg = <0x00 0xfe700000 0x00 0x10>; - interrupts = <0x00 0x55 0x04>; - #pwm-cells = <0x03>; - pinctrl-names = "active"; - pinctrl-0 = <0x11d>; - clocks = <0x23 0x160 0x23 0x15f>; - clock-names = "pwm\0pclk"; - status = "disabled"; - }; - - pwm@fe700010 { - compatible = "rockchip,rk3568-pwm\0rockchip,rk3328-pwm"; - reg = <0x00 0xfe700010 0x00 0x10>; - interrupts = <0x00 0x55 0x04>; - #pwm-cells = <0x03>; - pinctrl-names = "active"; - pinctrl-0 = <0x11e>; - clocks = <0x23 0x160 0x23 0x15f>; - clock-names = "pwm\0pclk"; - status = "disabled"; - }; - - pwm@fe700020 { - compatible = "rockchip,rk3568-pwm\0rockchip,rk3328-pwm"; - reg = <0x00 0xfe700020 0x00 0x10>; - interrupts = <0x00 0x55 0x04>; - #pwm-cells = <0x03>; - pinctrl-names = "active"; - pinctrl-0 = <0x11f>; - clocks = <0x23 0x160 0x23 0x15f>; - clock-names = "pwm\0pclk"; - status = "disabled"; - }; - - pwm@fe700030 { - compatible = "rockchip,rk3568-pwm\0rockchip,rk3328-pwm"; - reg = <0x00 0xfe700030 0x00 0x10>; - interrupts = <0x00 0x55 0x04 0x00 0x59 0x04>; - #pwm-cells = <0x03>; - pinctrl-names = "active"; - pinctrl-0 = <0x120>; - clocks = <0x23 0x160 0x23 0x15f>; - clock-names = "pwm\0pclk"; - status = "disabled"; - }; - - tsadc@fe710000 { - compatible = "rockchip,rk3568-tsadc"; - reg = <0x00 0xfe710000 0x00 0x100>; - interrupts = <0x00 0x73 0x04>; - rockchip,grf = <0x3b>; - clocks = <0x23 0x111 0x23 0x10f>; - clock-names = "tsadc\0apb_pclk"; - assigned-clocks = <0x23 0x110 0x23 0x111>; - assigned-clock-rates = <0x1036640 0xaae60>; - resets = <0x23 0x182 0x23 0x181 0x23 0x1d7>; - reset-names = "tsadc\0tsadc-apb\0tsadc-phy"; - #thermal-sensor-cells = <0x01>; - nvmem-cells = <0x121 0x122>; - nvmem-cell-names = "trim_base\0trim_base_frac"; - rockchip,hw-tshut-temp = <0x1d4c0>; - rockchip,hw-tshut-mode = <0x00>; - rockchip,hw-tshut-polarity = <0x00>; - pinctrl-names = "gpio\0otpout"; - pinctrl-0 = <0x123>; - pinctrl-1 = <0x124>; - #address-cells = <0x01>; - #size-cells = <0x00>; - status = "okay"; - phandle = <0x1f>; - - tsadc@0 { - reg = <0x00>; - nvmem-cells = <0x125 0x126>; - nvmem-cell-names = "trim_l\0trim_h"; - }; - - tsadc@1 { - reg = <0x01>; - nvmem-cells = <0x127 0x128>; - nvmem-cell-names = "trim_l\0trim_h"; - }; - }; - - saradc@fe720000 { - compatible = "rockchip,rk3568-saradc\0rockchip,rk3399-saradc"; - reg = <0x00 0xfe720000 0x00 0x100>; - interrupts = <0x00 0x5d 0x04>; - #io-channel-cells = <0x01>; - clocks = <0x23 0x113 0x23 0x112>; - clock-names = "saradc\0apb_pclk"; - resets = <0x23 0x180>; - reset-names = "saradc-apb"; - status = "okay"; - vref-supply = <0x129>; - phandle = <0x49>; - }; - - mailbox@fe780000 { - compatible = "rockchip,rk3568-mailbox\0rockchip,rk3368-mailbox"; - reg = <0x00 0xfe780000 0x00 0x1000>; - interrupts = <0x00 0xb7 0x04 0x00 0xb8 0x04 0x00 0xb9 0x04 0x00 0xba 0x04>; - clocks = <0x23 0x11b>; - clock-names = "pclk_mailbox"; - #mbox-cells = <0x01>; - status = "disabled"; - }; - - phy@fe820000 { - compatible = "rockchip,rk3568-naneng-combphy"; - reg = <0x00 0xfe820000 0x00 0x100>; - #phy-cells = <0x01>; - clocks = <0x3a 0x1f 0x23 0x17c 0x23 0x7f>; - clock-names = "refclk\0apbclk\0pipe_clk"; - assigned-clocks = <0x3a 0x1f>; - assigned-clock-rates = <0x5f5e100>; - resets = <0x23 0x1c4 0x23 0x1c5>; - reset-names = "combphy-apb\0combphy"; - rockchip,pipe-grf = <0x12a>; - rockchip,pipe-phy-grf = <0x12b>; - status = "okay"; - phandle = <0x24>; - }; - - phy@fe830000 { - compatible = "rockchip,rk3568-naneng-combphy"; - reg = <0x00 0xfe830000 0x00 0x100>; - #phy-cells = <0x01>; - clocks = <0x3a 0x22 0x23 0x17d 0x23 0x7f>; - clock-names = "refclk\0apbclk\0pipe_clk"; - assigned-clocks = <0x3a 0x22>; - assigned-clock-rates = <0x5f5e100>; - resets = <0x23 0x1c6 0x23 0x1c7>; - reset-names = "combphy-apb\0combphy"; - rockchip,pipe-grf = <0x12a>; - rockchip,pipe-phy-grf = <0x12c>; - status = "okay"; - phandle = <0x26>; - }; - - phy@fe840000 { - compatible = "rockchip,rk3568-naneng-combphy"; - reg = <0x00 0xfe840000 0x00 0x100>; - #phy-cells = <0x01>; - clocks = <0x3a 0x25 0x23 0x17e 0x23 0x7f>; - clock-names = "refclk\0apbclk\0pipe_clk"; - assigned-clocks = <0x3a 0x25>; - assigned-clock-rates = <0x5f5e100>; - resets = <0x23 0x1c8 0x23 0x1c9>; - reset-names = "combphy-apb\0combphy"; - rockchip,pipe-grf = <0x12a>; - rockchip,pipe-phy-grf = <0x12d>; - status = "okay"; - phandle = <0x27>; - }; - - phy@fe850000 { - compatible = "rockchip,rk3568-dsi-dphy\0rockchip,rk3568-video-phy"; - reg = <0x00 0xfe850000 0x00 0x10000 0x00 0xfe060000 0x00 0x10000>; - reg-names = "phy\0host"; - clocks = <0x3a 0x17 0x23 0x17a 0x23 0xe8>; - clock-names = "ref\0pclk\0pclk_host"; - #clock-cells = <0x00>; - resets = <0x23 0x1bb>; - reset-names = "apb"; - power-domains = <0x25 0x09>; - #phy-cells = <0x00>; - status = "disabled"; - phandle = <0x34>; - }; - - phy@fe860000 { - compatible = "rockchip,rk3568-dsi-dphy\0rockchip,rk3568-video-phy"; - reg = <0x00 0xfe860000 0x00 0x10000 0x00 0xfe070000 0x00 0x10000>; - reg-names = "phy\0host"; - clocks = <0x3a 0x19 0x23 0x17b 0x23 0xe9>; - clock-names = "ref\0pclk\0pclk_host"; - #clock-cells = <0x00>; - resets = <0x23 0x1bc>; - reset-names = "apb"; - power-domains = <0x25 0x09>; - #phy-cells = <0x00>; - status = "disabled"; - phandle = <0x36>; - }; - - csi2-dphy-hw@fe870000 { - compatible = "rockchip,rk3568-csi2-dphy-hw"; - reg = <0x00 0xfe870000 0x00 0x1000>; - clocks = <0x23 0x179>; - clock-names = "pclk"; - rockchip,grf = <0x3b>; - status = "okay"; - phandle = <0x12e>; - }; - - csi2-dphy0 { - compatible = "rockchip,rk3568-csi2-dphy"; - rockchip,hw = <0x12e>; - status = "okay"; - - ports { - #address-cells = <0x01>; - #size-cells = <0x00>; - - port@0 { - reg = <0x00>; - #address-cells = <0x01>; - #size-cells = <0x00>; - - endpoint@1 { - reg = <0x01>; - remote-endpoint = <0x12f>; - data-lanes = <0x01 0x02 0x03 0x04>; - phandle = <0xf6>; - }; - - endpoint@2 { - reg = <0x02>; - remote-endpoint = <0x130>; - data-lanes = <0x01 0x02 0x03 0x04>; - phandle = <0xf5>; - }; - - endpoint@3 { - reg = <0x03>; - remote-endpoint = <0x131>; - data-lanes = <0x01 0x02>; - phandle = <0xf7>; - }; - - endpoint@4 { - reg = <0x04>; - remote-endpoint = <0x132>; - data-lanes = <0x01 0x02 0x03 0x04>; - phandle = <0xf8>; - }; - - endpoint@5 { - reg = <0x05>; - remote-endpoint = <0x133>; - data-lanes = <0x01 0x02 0x03 0x04>; - phandle = <0xf9>; - }; - }; - - port@1 { - reg = <0x01>; - #address-cells = <0x01>; - #size-cells = <0x00>; - - endpoint@0 { - reg = <0x00>; - remote-endpoint = <0x134>; - phandle = <0x8c>; - }; - }; - }; - }; - - csi2-dphy1 { - compatible = "rockchip,rk3568-csi2-dphy"; - rockchip,hw = <0x12e>; - status = "disabled"; - }; - - csi2-dphy2 { - compatible = "rockchip,rk3568-csi2-dphy"; - rockchip,hw = <0x12e>; - status = "disabled"; - }; - - usb2-phy@fe8a0000 { - compatible = "rockchip,rk3568-usb2phy"; - reg = <0x00 0xfe8a0000 0x00 0x10000>; - interrupts = <0x00 0x87 0x04>; - clocks = <0x3a 0x13>; - clock-names = "phyclk"; - #clock-cells = <0x00>; - assigned-clocks = <0x23 0x0b>; - assigned-clock-parents = <0x29>; - clock-output-names = "usb480m_phy"; - rockchip,usbgrf = <0x135>; - status = "okay"; - phandle = <0x29>; - - host-port { - #phy-cells = <0x00>; - status = "okay"; - phy-supply = <0x136>; - phandle = <0x2b>; - }; - - otg-port { - #phy-cells = <0x00>; - status = "okay"; - phandle = <0x28>; - }; - }; - - usb2-phy@fe8b0000 { - compatible = "rockchip,rk3568-usb2phy"; - reg = <0x00 0xfe8b0000 0x00 0x10000>; - interrupts = <0x00 0x88 0x04>; - clocks = <0x3a 0x15>; - clock-names = "phyclk"; - #clock-cells = <0x00>; - rockchip,usbgrf = <0x137>; - status = "okay"; - phandle = <0x2c>; - - host-port { - #phy-cells = <0x00>; - status = "okay"; - phy-supply = <0x136>; - phandle = <0x2e>; - }; - - otg-port { - #phy-cells = <0x00>; - status = "okay"; - phy-supply = <0x136>; - phandle = <0x2d>; - }; - }; - - phy@fe8c0000 { - compatible = "rockchip,rk3568-pcie3-phy"; - reg = <0x00 0xfe8c0000 0x00 0x20000>; - #phy-cells = <0x00>; - clocks = <0x3a 0x26 0x3a 0x27 0x23 0x177>; - clock-names = "refclk_m\0refclk_n\0pclk"; - resets = <0x23 0x1be>; - reset-names = "phy"; - rockchip,phy-grf = <0x138>; - status = "okay"; - phandle = <0xc0>; - }; - - pinctrl { - compatible = "rockchip,rk3568-pinctrl"; - rockchip,grf = <0x3b>; - rockchip,pmu = <0x3c>; - #address-cells = <0x02>; - #size-cells = <0x02>; - ranges; - - gpio0@fdd60000 { - compatible = "rockchip,gpio-bank"; - reg = <0x00 0xfdd60000 0x00 0x100>; - interrupts = <0x00 0x21 0x04>; - clocks = <0x3a 0x2e 0x3a 0x0c>; - gpio-controller; - #gpio-cells = <0x02>; - interrupt-controller; - #interrupt-cells = <0x02>; - phandle = <0x3f>; - }; - - gpio1@fe740000 { - compatible = "rockchip,gpio-bank"; - reg = <0x00 0xfe740000 0x00 0x100>; - interrupts = <0x00 0x22 0x04>; - clocks = <0x23 0x163 0x23 0x164>; - gpio-controller; - #gpio-cells = <0x02>; - interrupt-controller; - #interrupt-cells = <0x02>; - phandle = <0x159>; - }; - - gpio2@fe750000 { - compatible = "rockchip,gpio-bank"; - reg = <0x00 0xfe750000 0x00 0x100>; - interrupts = <0x00 0x23 0x04>; - clocks = <0x23 0x165 0x23 0x166>; - gpio-controller; - #gpio-cells = <0x02>; - interrupt-controller; - #interrupt-cells = <0x02>; - phandle = <0x91>; - }; - - gpio3@fe760000 { - compatible = "rockchip,gpio-bank"; - reg = <0x00 0xfe760000 0x00 0x100>; - interrupts = <0x00 0x24 0x04>; - clocks = <0x23 0x167 0x23 0x168>; - gpio-controller; - #gpio-cells = <0x02>; - interrupt-controller; - #interrupt-cells = <0x02>; - phandle = <0x4a>; - }; - - gpio4@fe770000 { - compatible = "rockchip,gpio-bank"; - reg = <0x00 0xfe770000 0x00 0x100>; - interrupts = <0x00 0x25 0x04>; - clocks = <0x23 0x169 0x23 0x16a>; - gpio-controller; - #gpio-cells = <0x02>; - interrupt-controller; - #interrupt-cells = <0x02>; - phandle = <0xf4>; - }; - - pcfg-pull-up { - bias-pull-up; - phandle = <0x13b>; - }; - - pcfg-pull-down { - bias-pull-down; - phandle = <0x142>; - }; - - pcfg-pull-none { - bias-disable; - phandle = <0x139>; - }; - - pcfg-pull-none-drv-level-1 { - bias-disable; - drive-strength = <0x01>; - phandle = <0x13d>; - }; - - pcfg-pull-none-drv-level-2 { - bias-disable; - drive-strength = <0x02>; - phandle = <0x13c>; - }; - - pcfg-pull-none-drv-level-3 { - bias-disable; - drive-strength = <0x03>; - phandle = <0x141>; - }; - - pcfg-pull-up-drv-level-1 { - bias-pull-up; - drive-strength = <0x01>; - phandle = <0x140>; - }; - - pcfg-pull-up-drv-level-2 { - bias-pull-up; - drive-strength = <0x02>; - phandle = <0x13a>; - }; - - pcfg-pull-none-smt { - bias-disable; - input-schmitt-enable; - phandle = <0x13e>; - }; - - pcfg-output-low-pull-down { - output-low; - bias-pull-down; - phandle = <0x13f>; - }; - - acodec { - - acodec-pins { - rockchip,pins = <0x01 0x09 0x05 0x139 0x01 0x01 0x05 0x139 0x01 0x00 0x05 0x139 0x01 0x07 0x05 0x139 0x01 0x08 0x05 0x139 0x01 0x03 0x05 0x139 0x01 0x05 0x05 0x139>; - phandle = <0xea>; - }; - }; - - cam { - - vcc-cam { - rockchip,pins = <0x00 0x11 0x00 0x139>; - phandle = <0x158>; - }; - }; - - can1 { - - can1m1-pins { - rockchip,pins = <0x04 0x12 0x03 0x139 0x04 0x13 0x03 0x139>; - phandle = <0xec>; - }; - }; - - can2 { - - can2m0-pins { - rockchip,pins = <0x04 0x0c 0x03 0x139 0x04 0x0d 0x03 0x139>; - phandle = <0xed>; - }; - }; - - cif { - - cif-clk { - rockchip,pins = <0x04 0x10 0x01 0x139>; - phandle = <0xf3>; - }; - }; - - clk32k { - - clk32k-out0 { - rockchip,pins = <0x00 0x08 0x02 0x139>; - phandle = <0x22>; - }; - }; - - ebc { - - ebc-pins { - rockchip,pins = <0x04 0x10 0x02 0x139 0x04 0x0b 0x02 0x139 0x04 0x0c 0x02 0x139 0x04 0x06 0x02 0x139 0x04 0x11 0x02 0x139 0x03 0x16 0x02 0x139 0x03 0x17 0x02 0x139 0x03 0x18 0x02 0x139 0x03 0x19 0x02 0x139 0x03 0x1a 0x02 0x139 0x03 0x1b 0x02 0x139 0x03 0x1c 0x02 0x139 0x03 0x1d 0x02 0x139 0x03 0x1e 0x02 0x139 0x03 0x1f 0x02 0x139 0x04 0x00 0x02 0x139 0x04 0x01 0x02 0x139 0x04 0x02 0x02 0x139 0x04 0x03 0x02 0x139 0x04 0x04 0x02 0x139 0x04 0x05 0x02 0x139 0x04 0x0e 0x02 0x139 0x04 0x0f 0x02 0x139>; - phandle = <0x7c>; - }; - }; - - fspi { - - fspi-pins { - rockchip,pins = <0x01 0x18 0x01 0x139 0x01 0x1b 0x01 0x139 0x01 0x19 0x01 0x139 0x01 0x1a 0x01 0x139 0x01 0x17 0x02 0x139 0x01 0x1c 0x01 0x139>; - phandle = <0xd4>; - }; - }; - - gmac0 { - - gmac0-miim { - rockchip,pins = <0x02 0x13 0x02 0x139 0x02 0x14 0x02 0x139>; - phandle = <0xc8>; - }; - - gmac0-clkinout { - rockchip,pins = <0x02 0x12 0x02 0x139>; - phandle = <0xcd>; - }; - - gmac0-rx-bus2 { - rockchip,pins = <0x02 0x0e 0x01 0x139 0x02 0x0f 0x02 0x139 0x02 0x10 0x02 0x139>; - phandle = <0xca>; - }; - - gmac0-tx-bus2 { - rockchip,pins = <0x02 0x0b 0x01 0x13c 0x02 0x0c 0x01 0x13c 0x02 0x0d 0x01 0x139>; - phandle = <0xc9>; - }; - - gmac0-rgmii-clk { - rockchip,pins = <0x02 0x05 0x02 0x139 0x02 0x08 0x02 0x13d>; - phandle = <0xcb>; - }; - - gmac0-rgmii-bus { - rockchip,pins = <0x02 0x03 0x02 0x139 0x02 0x04 0x02 0x139 0x02 0x06 0x02 0x13c 0x02 0x07 0x02 0x13c>; - phandle = <0xcc>; - }; - }; - - gmac1 { - - gmac1m1-miim { - rockchip,pins = <0x04 0x0e 0x03 0x139 0x04 0x0f 0x03 0x139>; - phandle = <0x93>; - }; - - gmac1m1-clkinout { - rockchip,pins = <0x04 0x11 0x03 0x139>; - phandle = <0x98>; - }; - - gmac1m1-rx-bus2 { - rockchip,pins = <0x04 0x07 0x03 0x139 0x04 0x08 0x03 0x139 0x04 0x09 0x03 0x139>; - phandle = <0x95>; - }; - - gmac1m1-tx-bus2 { - rockchip,pins = <0x04 0x04 0x03 0x13c 0x04 0x05 0x03 0x13c 0x04 0x06 0x03 0x139>; - phandle = <0x94>; - }; - - gmac1m1-rgmii-clk { - rockchip,pins = <0x04 0x03 0x03 0x139 0x04 0x00 0x03 0x13d>; - phandle = <0x96>; - }; - - gmac1m1-rgmii-bus { - rockchip,pins = <0x04 0x01 0x03 0x139 0x04 0x02 0x03 0x139 0x03 0x1e 0x03 0x13c 0x03 0x1f 0x03 0x13c>; - phandle = <0x97>; - }; - }; - - hdmitx { - - hdmitxm0-cec { - rockchip,pins = <0x04 0x19 0x01 0x139>; - phandle = <0xac>; - }; - - hdmitx-scl { - rockchip,pins = <0x04 0x17 0x01 0x139>; - phandle = <0xaa>; - }; - - hdmitx-sda { - rockchip,pins = <0x04 0x18 0x01 0x139>; - phandle = <0xab>; - }; - }; - - i2c0 { - - i2c0-xfer { - rockchip,pins = <0x00 0x09 0x01 0x13e 0x00 0x0a 0x01 0x13e>; - phandle = <0x3d>; - }; - }; - - i2c1 { - - i2c1-xfer { - rockchip,pins = <0x00 0x0b 0x01 0x13e 0x00 0x0c 0x01 0x13e>; - phandle = <0xee>; - }; - }; - - i2c2 { - - i2c2m0-xfer { - rockchip,pins = <0x00 0x0d 0x01 0x13e 0x00 0x0e 0x01 0x13e>; - phandle = <0xf0>; - }; - }; - - i2c3 { - - i2c3m0-xfer { - rockchip,pins = <0x01 0x01 0x01 0x13e 0x01 0x00 0x01 0x13e>; - phandle = <0xf1>; - }; - }; - - i2c4 { - - i2c4m0-xfer { - rockchip,pins = <0x04 0x0b 0x01 0x13e 0x04 0x0a 0x01 0x13e>; - phandle = <0xf2>; - }; - }; - - i2c5 { - - i2c5m0-xfer { - rockchip,pins = <0x03 0x0b 0x04 0x13e 0x03 0x0c 0x04 0x13e>; - phandle = <0xfa>; - }; - }; - - i2s1 { - - i2s1m0-lrcktx { - rockchip,pins = <0x01 0x05 0x01 0x13e>; - phandle = <0xd7>; - }; - - i2s1m0-mclk { - rockchip,pins = <0x01 0x02 0x01 0x13e>; - phandle = <0x47>; - }; - - i2s1m0-sclktx { - rockchip,pins = <0x01 0x03 0x01 0x13e>; - phandle = <0xd6>; - }; - - i2s1m0-sdi0 { - rockchip,pins = <0x01 0x0b 0x01 0x139>; - phandle = <0xd8>; - }; - - i2s1m0-sdo0 { - rockchip,pins = <0x01 0x07 0x01 0x139>; - phandle = <0xd9>; - }; - }; - - i2s2 { - - i2s2m0-lrcktx { - rockchip,pins = <0x02 0x13 0x01 0x13e>; - phandle = <0xdb>; - }; - - i2s2m0-sclktx { - rockchip,pins = <0x02 0x12 0x01 0x13e>; - phandle = <0xda>; - }; - - i2s2m0-sdi { - rockchip,pins = <0x02 0x15 0x01 0x139>; - phandle = <0xdc>; - }; - - i2s2m0-sdo { - rockchip,pins = <0x02 0x14 0x01 0x139>; - phandle = <0xdd>; - }; - }; - - i2s3 { - - i2s3m0-lrck { - rockchip,pins = <0x03 0x04 0x04 0x13e>; - phandle = <0xdf>; - }; - - i2s3m0-sclk { - rockchip,pins = <0x03 0x03 0x04 0x13e>; - phandle = <0xde>; - }; - - i2s3m0-sdi { - rockchip,pins = <0x03 0x06 0x04 0x139>; - phandle = <0xe0>; - }; - - i2s3m0-sdo { - rockchip,pins = <0x03 0x05 0x04 0x139>; - phandle = <0xe1>; - }; - }; - - lcdc { - - lcdc-ctl { - rockchip,pins = <0x03 0x00 0x01 0x139 0x02 0x18 0x01 0x139 0x02 0x19 0x01 0x139 0x02 0x1a 0x01 0x139 0x02 0x1b 0x01 0x139 0x02 0x1c 0x01 0x139 0x02 0x1d 0x01 0x139 0x02 0x1e 0x01 0x139 0x02 0x1f 0x01 0x139 0x03 0x01 0x01 0x139 0x03 0x02 0x01 0x139 0x03 0x03 0x01 0x139 0x03 0x04 0x01 0x139 0x03 0x05 0x01 0x139 0x03 0x06 0x01 0x139 0x03 0x07 0x01 0x139 0x03 0x08 0x01 0x139 0x03 0x09 0x01 0x139 0x03 0x0a 0x01 0x139 0x03 0x0b 0x01 0x139 0x03 0x0c 0x01 0x139 0x03 0x0d 0x01 0x139 0x03 0x0e 0x01 0x139 0x03 0x0f 0x01 0x139 0x03 0x10 0x01 0x139 0x03 0x13 0x01 0x139 0x03 0x11 0x01 0x139 0x03 0x12 0x01 0x139>; - phandle = <0x39>; - }; - }; - - pdm { - - pdmm0-clk { - rockchip,pins = <0x01 0x06 0x03 0x139>; - phandle = <0xe2>; - }; - - pdmm0-clk1 { - rockchip,pins = <0x01 0x04 0x03 0x139>; - phandle = <0xe3>; - }; - - pdmm0-sdi0 { - rockchip,pins = <0x01 0x0b 0x02 0x139>; - phandle = <0xe4>; - }; - - pdmm0-sdi1 { - rockchip,pins = <0x01 0x0a 0x03 0x139>; - phandle = <0xe5>; - }; - - pdmm0-sdi2 { - rockchip,pins = <0x01 0x09 0x03 0x139>; - phandle = <0xe6>; - }; - - pdmm0-sdi3 { - rockchip,pins = <0x01 0x08 0x03 0x139>; - phandle = <0xe7>; - }; - }; - - pmic { - - pmic_int { - rockchip,pins = <0x00 0x03 0x00 0x13b>; - phandle = <0x40>; - }; - - soc_slppin_gpio { - rockchip,pins = <0x00 0x02 0x00 0x13f>; - phandle = <0x43>; - }; - - soc_slppin_slp { - rockchip,pins = <0x00 0x02 0x01 0x13b>; - phandle = <0x41>; - }; - - soc_slppin_rst { - rockchip,pins = <0x00 0x02 0x02 0x139>; - }; - - spk_ctl_gpio { - rockchip,pins = <0x03 0x15 0x00 0x13b>; - phandle = <0x48>; - }; - }; - - pwm0 { - - pwm0m0-pins { - rockchip,pins = <0x00 0x0f 0x01 0x139>; - phandle = <0x50>; - }; - }; - - pwm1 { - - pwm1m0-pins { - rockchip,pins = <0x00 0x10 0x01 0x139>; - phandle = <0x51>; - }; - }; - - pwm2 { - - pwm2m0-pins { - rockchip,pins = <0x00 0x11 0x01 0x139>; - phandle = <0x52>; - }; - }; - - pwm3 { - - pwm3-pins { - rockchip,pins = <0x00 0x12 0x01 0x139>; - phandle = <0x53>; - }; - }; - - pwm4 { - - pwm4-pins { - rockchip,pins = <0x00 0x13 0x01 0x139>; - phandle = <0x115>; - }; - }; - - pwm5 { - - pwm5-pins { - rockchip,pins = <0x00 0x14 0x01 0x139>; - phandle = <0x116>; - }; - }; - - pwm6 { - - pwm6-pins { - rockchip,pins = <0x00 0x15 0x01 0x139>; - phandle = <0x117>; - }; - }; - - pwm7 { - - pwm7-pins { - rockchip,pins = <0x00 0x16 0x01 0x139>; - phandle = <0x118>; - }; - }; - - pwm8 { - - pwm8m0-pins { - rockchip,pins = <0x03 0x09 0x05 0x139>; - phandle = <0x119>; - }; - }; - - pwm9 { - - pwm9m0-pins { - rockchip,pins = <0x03 0x0a 0x05 0x139>; - phandle = <0x11a>; - }; - }; - - pwm10 { - - pwm10m0-pins { - rockchip,pins = <0x03 0x0d 0x05 0x139>; - phandle = <0x11b>; - }; - }; - - pwm11 { - - pwm11m0-pins { - rockchip,pins = <0x03 0x0e 0x05 0x139>; - phandle = <0x11c>; - }; - }; - - pwm12 { - - pwm12m0-pins { - rockchip,pins = <0x03 0x0f 0x02 0x139>; - phandle = <0x11d>; - }; - }; - - pwm13 { - - pwm13m0-pins { - rockchip,pins = <0x03 0x10 0x02 0x139>; - phandle = <0x11e>; - }; - }; - - pwm14 { - - pwm14m0-pins { - rockchip,pins = <0x03 0x14 0x01 0x139>; - phandle = <0x11f>; - }; - }; - - pwm15 { - - pwm15m0-pins { - rockchip,pins = <0x03 0x15 0x01 0x139>; - phandle = <0x120>; - }; - }; - - scr { - - scr-pins { - rockchip,pins = <0x01 0x02 0x03 0x139 0x01 0x07 0x03 0x13b 0x01 0x03 0x03 0x13b 0x01 0x05 0x03 0x139>; - phandle = <0xeb>; - }; - }; - - sdmmc0 { - - sdmmc0-bus4 { - rockchip,pins = <0x01 0x1d 0x01 0x13a 0x01 0x1e 0x01 0x13a 0x01 0x1f 0x01 0x13a 0x02 0x00 0x01 0x13a>; - phandle = <0xd0>; - }; - - sdmmc0-clk { - rockchip,pins = <0x02 0x02 0x01 0x13a>; - phandle = <0xd1>; - }; - - sdmmc0-cmd { - rockchip,pins = <0x02 0x01 0x01 0x13a>; - phandle = <0xd2>; - }; - - sdmmc0-det { - rockchip,pins = <0x00 0x04 0x01 0x13b>; - phandle = <0xd3>; - }; - }; - - sdmmc2 { - - sdmmc2m0-bus4 { - rockchip,pins = <0x03 0x16 0x03 0x13a 0x03 0x17 0x03 0x13a 0x03 0x18 0x03 0x13a 0x03 0x19 0x03 0x13a>; - phandle = <0xb0>; - }; - - sdmmc2m0-clk { - rockchip,pins = <0x03 0x1b 0x03 0x13a>; - phandle = <0xb2>; - }; - - sdmmc2m0-cmd { - rockchip,pins = <0x03 0x1a 0x03 0x13a>; - phandle = <0xb1>; - }; - }; - - spdif { - - spdifm1-tx { - rockchip,pins = <0x03 0x15 0x02 0x139>; - phandle = <0xe9>; - }; - }; - - spi0 { - - spi0m0-pins { - rockchip,pins = <0x00 0x0d 0x02 0x139 0x00 0x15 0x02 0x139 0x00 0x0e 0x02 0x139>; - phandle = <0xfe>; - }; - - spi0m0-cs0 { - rockchip,pins = <0x00 0x16 0x02 0x139>; - phandle = <0xfc>; - }; - - spi0m0-cs1 { - rockchip,pins = <0x00 0x14 0x02 0x139>; - phandle = <0xfd>; - }; - }; - - spi1 { - - spi1m1-pins { - rockchip,pins = <0x03 0x13 0x03 0x139 0x03 0x12 0x03 0x139 0x03 0x11 0x03 0x139>; - phandle = <0x100>; - }; - }; - - spi2 { - - spi2m0-pins { - rockchip,pins = <0x02 0x11 0x04 0x139 0x02 0x12 0x04 0x139 0x02 0x13 0x04 0x139>; - phandle = <0x105>; - }; - - spi2m0-cs0 { - rockchip,pins = <0x02 0x14 0x04 0x139>; - phandle = <0x103>; - }; - - spi2m0-cs1 { - rockchip,pins = <0x02 0x15 0x04 0x139>; - phandle = <0x104>; - }; - }; - - spi3 { - - spi3m0-pins { - rockchip,pins = <0x04 0x0b 0x04 0x139 0x04 0x08 0x04 0x139 0x04 0x0a 0x04 0x139>; - phandle = <0x109>; - }; - - spi3m0-cs0 { - rockchip,pins = <0x04 0x06 0x04 0x139>; - phandle = <0x107>; - }; - - spi3m0-cs1 { - rockchip,pins = <0x04 0x07 0x04 0x139>; - phandle = <0x108>; - }; - }; - - tsadc { - - tsadc-shutorg { - rockchip,pins = <0x00 0x01 0x02 0x139>; - phandle = <0x124>; - }; - }; - - uart0 { - - uart0-xfer { - rockchip,pins = <0x00 0x10 0x03 0x13b 0x00 0x11 0x03 0x13b>; - phandle = <0x4f>; - }; - }; - - uart1 { - - uart1m0-xfer { - rockchip,pins = <0x02 0x0b 0x02 0x13b 0x02 0x0c 0x02 0x13b>; - phandle = <0x10b>; - }; - }; - - uart2 { - - uart2m0-xfer { - rockchip,pins = <0x00 0x18 0x01 0x13b 0x00 0x19 0x01 0x13b>; - phandle = <0x10c>; - }; - }; - - uart3 { - - uart3m1-xfer { - rockchip,pins = <0x03 0x10 0x04 0x13b 0x03 0x0f 0x04 0x13b>; - phandle = <0x10d>; - }; - }; - - uart4 { - - uart4m1-xfer { - rockchip,pins = <0x03 0x09 0x04 0x13b 0x03 0x0a 0x04 0x13b>; - phandle = <0x10e>; - }; - }; - - uart5 { - - uart5m0-xfer { - rockchip,pins = <0x02 0x01 0x03 0x13b 0x02 0x02 0x03 0x13b>; - phandle = <0x10f>; - }; - }; - - uart6 { - - uart6m0-xfer { - rockchip,pins = <0x02 0x03 0x03 0x13b 0x02 0x04 0x03 0x13b>; - phandle = <0x110>; - }; - }; - - uart7 { - - uart7m1-xfer { - rockchip,pins = <0x03 0x15 0x04 0x13b 0x03 0x14 0x04 0x13b>; - phandle = <0x111>; - }; - }; - - uart8 { - - uart8m0-xfer { - rockchip,pins = <0x02 0x16 0x02 0x13b 0x02 0x15 0x03 0x13b>; - phandle = <0x112>; - }; - - uart8m0-ctsn { - rockchip,pins = <0x02 0x0a 0x03 0x139>; - phandle = <0x113>; - }; - - uart8m0-rtsn { - rockchip,pins = <0x02 0x09 0x03 0x139>; - phandle = <0x155>; - }; - }; - - uart9 { - - uart9m1-xfer { - rockchip,pins = <0x04 0x16 0x04 0x13b 0x04 0x15 0x04 0x13b>; - phandle = <0x114>; - }; - }; - - spi0-hs { - - spi0m0-pins { - rockchip,pins = <0x00 0x0d 0x02 0x140 0x00 0x15 0x02 0x140 0x00 0x0e 0x02 0x140>; - phandle = <0xff>; - }; - }; - - spi1-hs { - - spi1m1-pins { - rockchip,pins = <0x03 0x13 0x03 0x140 0x03 0x12 0x03 0x140 0x03 0x11 0x03 0x140>; - phandle = <0x101>; - }; - }; - - spi2-hs { - - spi2m0-pins { - rockchip,pins = <0x02 0x11 0x04 0x140 0x02 0x12 0x04 0x140 0x02 0x13 0x04 0x140>; - phandle = <0x106>; - }; - }; - - spi3-hs { - - spi3m0-pins { - rockchip,pins = <0x04 0x0b 0x04 0x140 0x04 0x08 0x04 0x140 0x04 0x0a 0x04 0x140>; - phandle = <0x10a>; - }; - }; - - gpio-func { - - tsadc-gpio-func { - rockchip,pins = <0x00 0x01 0x00 0x139>; - phandle = <0x123>; - }; - }; - - usb { - - vcc5v0-host-en { - rockchip,pins = <0x00 0x06 0x00 0x139>; - phandle = <0x150>; - }; - - vcc5v0-otg-en { - rockchip,pins = <0x00 0x05 0x00 0x139>; - phandle = <0x151>; - }; - - vcc-hub-reset-en { - rockchip,pins = <0x01 0x04 0x00 0x139>; - phandle = <0x15a>; - }; - }; - - headphone { - - hp-det { - rockchip,pins = <0x03 0x12 0x00 0x142>; - phandle = <0x148>; - }; - }; - - sdio-pwrseq { - - wifi-enable-h { - rockchip,pins = <0x03 0x1d 0x00 0x139>; - phandle = <0x153>; - }; - }; - - wireless-wlan { - - wifi-host-wake-irq { - rockchip,pins = <0x03 0x1c 0x00 0x142>; - phandle = <0x154>; - }; - }; - - wireless-bluetooth { - - uart8-gpios { - rockchip,pins = <0x02 0x09 0x00 0x139>; - phandle = <0x156>; - }; - }; - - touch { - - touch-gpio { - rockchip,pins = <0x00 0x0d 0x00 0x13b 0x00 0x0e 0x00 0x139>; - phandle = <0xef>; - }; - }; - - mxc6655xa { - - mxc6655xa_irq_gpio { - rockchip,pins = <0x03 0x11 0x00 0x139>; - phandle = <0xfb>; - }; - }; - - pcie { - - pcie-pi6c-oe-en { - rockchip,pins = <0x03 0x07 0x00 0x139>; - phandle = <0x15b>; - }; - }; - - leds { - - leds-gpio { - rockchip,pins = <0x01 0x0a 0x00 0x139 0x01 0x09 0x00 0x139 0x01 0x08 0x00 0x139 0x02 0x11 0x00 0x139>; - phandle = <0x15d>; - }; - }; - - 4g { - - vcc-4g-power-en { - rockchip,pins = <0x03 0x03 0x00 0x139>; - phandle = <0x15c>; - }; - }; - - usb-typec { - - usbc0-int { - rockchip,pins = <0x00 0x11 0x00 0x13b>; - phandle = <0x4b>; - }; - - vcc5v0-typec0-en { - rockchip,pins = <0x00 0x05 0x00 0x139>; - }; - }; - }; - - audiopwmout-diff { - status = "disabled"; - compatible = "simple-audio-card"; - simple-audio-card,format = "i2s"; - simple-audio-card,name = "rockchip,audiopwmout-diff"; - simple-audio-card,mclk-fs = <0x100>; - simple-audio-card,bitclock-master = <0x143>; - simple-audio-card,frame-master = <0x143>; - - simple-audio-card,cpu { - sound-dai = <0x144>; - }; - - simple-audio-card,codec { - sound-dai = <0x145>; - phandle = <0x143>; - }; - }; - - dc-12v { - compatible = "regulator-fixed"; - regulator-name = "dc_12v"; - regulator-always-on; - regulator-boot-on; - regulator-min-microvolt = <0xb71b00>; - regulator-max-microvolt = <0xb71b00>; - phandle = <0x14f>; - }; - - hdmi-sound { - compatible = "simple-audio-card"; - simple-audio-card,format = "i2s"; - simple-audio-card,mclk-fs = <0x80>; - simple-audio-card,name = "rockchip,hdmi"; - status = "okay"; - - simple-audio-card,cpu { - sound-dai = <0x146>; - }; - - simple-audio-card,codec { - sound-dai = <0x147>; - }; - }; - - rk-headset { - status = "disabled"; - compatible = "rockchip_headset"; - headset_gpio = <0x4a 0x12 0x01>; - pinctrl-names = "default"; - pinctrl-0 = <0x148>; - }; - - dummy-codec { - status = "disabled"; - compatible = "rockchip,dummy-codec"; - #sound-dai-cells = <0x00>; - phandle = <0x14a>; - }; - - pdm-mic-array { - status = "disabled"; - compatible = "simple-audio-card"; - simple-audio-card,name = "rockchip,pdm-mic-array"; - - simple-audio-card,cpu { - sound-dai = <0x149>; - }; - - simple-audio-card,codec { - sound-dai = <0x14a>; - }; - }; - - rk809-sound { - status = "okay"; - compatible = "rockchip,multicodecs-card"; - rockchip,card-name = "rockchip-rk809"; - rockchip,format = "i2s"; - rockchip,mclk-fs = <0x100>; - rockchip,cpu = <0xe8>; - rockchip,codec = <0x14b>; - }; - - spdif-sound { - status = "okay"; - compatible = "simple-audio-card"; - simple-audio-card,name = "ROCKCHIP,SPDIF"; - - simple-audio-card,cpu { - sound-dai = <0x14c>; - }; - - simple-audio-card,codec { - sound-dai = <0x14d>; - }; - }; - - spdif-out { - status = "okay"; - compatible = "linux,spdif-dit"; - #sound-dai-cells = <0x00>; - phandle = <0x14d>; - }; - - vad-sound { - status = "disabled"; - compatible = "rockchip,multicodecs-card"; - rockchip,card-name = "rockchip,rk3568-vad"; - rockchip,cpu = <0xe8>; - rockchip,codec = <0x14b 0x14e>; - }; - - vcc3v3-sys { - compatible = "regulator-fixed"; - regulator-name = "vcc3v3_sys"; - regulator-always-on; - regulator-boot-on; - regulator-min-microvolt = <0x325aa0>; - regulator-max-microvolt = <0x325aa0>; - vin-supply = <0x14f>; - phandle = <0x46>; - }; - - vcc5v0-sys { - compatible = "regulator-fixed"; - regulator-name = "vcc5v0_sys"; - regulator-always-on; - regulator-boot-on; - regulator-min-microvolt = <0x4c4b40>; - regulator-max-microvolt = <0x4c4b40>; - vin-supply = <0x14f>; - phandle = <0x3e>; - }; - - vcc5v0-host-regulator { - compatible = "regulator-fixed"; - enable-active-high; - gpio = <0x3f 0x06 0x00>; - pinctrl-names = "default"; - pinctrl-0 = <0x150>; - regulator-name = "vcc5v0_host"; - regulator-always-on; - regulator-boot-on; - phandle = <0x136>; - }; - - vcc5v0-otg-regulator { - compatible = "regulator-fixed"; - enable-active-high; - gpio = <0x3f 0x05 0x00>; - pinctrl-names = "default"; - pinctrl-0 = <0x151>; - regulator-name = "vcc5v0_otg"; - phandle = <0x4c>; - }; - - vcc3v3-lcd0-n { - compatible = "regulator-fixed"; - regulator-name = "vcc3v3_lcd0_n"; - regulator-boot-on; - - regulator-state-mem { - regulator-off-in-suspend; - }; - }; - - vcc3v3-lcd1-n { - compatible = "regulator-fixed"; - regulator-name = "vcc3v3_lcd1_n"; - regulator-boot-on; - status = "disabled"; - - regulator-state-mem { - regulator-off-in-suspend; - }; - }; - - test-power { - status = "okay"; - }; - - chosen { - // linux,initrd-end = <0x00 0xaacf15d>; - // linux,initrd-start = <0x00 0xa200000>; - bootargs = "storagemedia=emmc androidboot.storagemedia=emmc androidboot.mode=normal androidboot.verifiedbootstate=orange rw rootwait earlycon=uart8250,mmio32,0xfe660000 console=ttyFIQ0 root=PARTLABEL=rootfs rootfstype=ext4 overlayroot=device:dev=PARTLABEL=userdata,fstype=ext4,mkfs=1 coherent_pool=1m systemd.gpt_auto=0 cgroup_enable=memory swapaccount=1 swiotlb=0x10000 net.ifnames=0 comm-05/20/2025 androidboot.fwver=ddr-v1.21-2d653b3476,spl-v1.14,bl31-v1.44,bl32-v2.12,uboot--boot"; - }; - - fiq-debugger { - compatible = "rockchip,fiq-debugger"; - rockchip,serial-id = <0x02>; - rockchip,wake-irq = <0x00>; - rockchip,irq-mode-enable = <0x01>; - rockchip,baudrate = <0x16e360>; - interrupts = <0x00 0xfc 0x08>; - pinctrl-names = "default"; - pinctrl-0 = <0x10c>; - status = "okay"; - }; - - debug@fd904000 { - compatible = "rockchip,debug"; - reg = <0x00 0xfd904000 0x00 0x1000 0x00 0xfd905000 0x00 0x1000 0x00 0xfd906000 0x00 0x1000 0x00 0xfd907000 0x00 0x1000>; - }; - - cspmu@fd90c000 { - compatible = "rockchip,cspmu"; - reg = <0x00 0xfd90c000 0x00 0x1000 0x00 0xfd90d000 0x00 0x1000 0x00 0xfd90e000 0x00 0x1000 0x00 0xfd90f000 0x00 0x1000>; - }; - - adc-keys { - compatible = "adc-keys"; - io-channels = <0x49 0x00>; - io-channel-names = "buttons"; - keyup-threshold-microvolt = <0x1b7740>; - poll-interval = <0x64>; - - recovery-key { - label = "F12"; - linux,code = <0x58>; - press-threshold-microvolt = <0x6d6>; - }; - - vol-down-key { - label = "volume down"; - linux,code = <0x72>; - press-threshold-microvolt = <0x48a1c>; - }; - - menu-key { - label = "menu"; - linux,code = <0x8b>; - press-threshold-microvolt = <0xef420>; - }; - - back-key { - label = "back"; - linux,code = <0x9e>; - press-threshold-microvolt = <0x13eb9c>; - }; - }; - - vcc2v5-ddr { - compatible = "regulator-fixed"; - regulator-name = "vcc2v5-sys"; - regulator-always-on; - regulator-boot-on; - regulator-min-microvolt = <0x2625a0>; - regulator-max-microvolt = <0x2625a0>; - vin-supply = <0x46>; - }; - - pcie30-avdd0v9 { - compatible = "regulator-fixed"; - regulator-name = "pcie30_avdd0v9"; - regulator-always-on; - regulator-boot-on; - regulator-min-microvolt = <0xdbba0>; - regulator-max-microvolt = <0xdbba0>; - vin-supply = <0x46>; - }; - - pcie30-avdd1v8 { - compatible = "regulator-fixed"; - regulator-name = "pcie30_avdd1v8"; - regulator-always-on; - regulator-boot-on; - regulator-min-microvolt = <0x1b7740>; - regulator-max-microvolt = <0x1b7740>; - vin-supply = <0x46>; - }; - - gpio-regulator { - compatible = "regulator-gpio"; - regulator-name = "pcie30_3v3"; - regulator-min-microvolt = <0x186a0>; - regulator-max-microvolt = <0x325aa0>; - gpios = <0x3f 0x1c 0x00>; - gpios-states = <0x01>; - states = <0x186a0 0x00 0x325aa0 0x01>; - phandle = <0xc2>; - }; - - vcc3v3-bu { - compatible = "regulator-fixed"; - regulator-name = "vcc3v3_bu"; - regulator-always-on; - regulator-boot-on; - regulator-min-microvolt = <0x325aa0>; - regulator-max-microvolt = <0x325aa0>; - vin-supply = <0x3e>; - }; - - sdio-pwrseq { - compatible = "mmc-pwrseq-simple"; - clocks = <0x152 0x01>; - clock-names = "ext_clock"; - pinctrl-names = "default"; - pinctrl-0 = <0x153>; - post-power-on-delay-ms = <0x64>; - reset-gpios = <0x4a 0x1d 0x01>; - status = "okay"; - phandle = <0xb3>; - }; - - wireless-wlan { - compatible = "wlan-platdata"; - rockchip,grf = <0x3b>; - wifi_chip_type = "ap6256"; - pinctrl-names = "default"; - pinctrl-0 = <0x154>; - WIFI,host_wake_irq = <0x4a 0x1c 0x00>; - status = "okay"; - }; - - wireless-bluetooth { - compatible = "bluetooth-platdata"; - clocks = <0x152 0x01>; - clock-names = "ext_clock"; - uart_rts_gpios = <0x91 0x09 0x01>; - pinctrl-names = "default\0rts_gpio"; - pinctrl-0 = <0x155>; - pinctrl-1 = <0x156>; - BT,reset_gpio = <0x4a 0x00 0x00>; - BT,wake_gpio = <0x4a 0x02 0x00>; - BT,wake_host_irq = <0x4a 0x01 0x00>; - status = "okay"; - }; - - flash-led { - compatible = "led,rgb13h"; - label = "pwm-flash-led"; - led-max-microamp = <0x4e20>; - flash-max-microamp = <0x4e20>; - flash-max-timeout-us = <0xf4240>; - pwms = <0x157 0x00 0x61a8 0x00>; - rockchip,camera-module-index = <0x01>; - rockchip,camera-module-facing = "front"; - status = "disabled"; - }; - - vcc-camera-regulator { - compatible = "regulator-fixed"; - gpio = <0x102 0x03 0x00>; - pinctrl-names = "default"; - pinctrl-0 = <0x158>; - regulator-name = "vcc_camera"; - enable-active-high; - status = "disabled"; - }; - - vcc-hub-reset-regulator { - compatible = "regulator-fixed"; - enable-active-high; - gpio = <0x159 0x04 0x00>; - pinctrl-names = "default"; - pinctrl-0 = <0x15a>; - regulator-name = "vcc_hub_reset_en"; - regulator-always-on; - }; - - pcie-pi6c-oe-regulator { - compatible = "regulator-fixed"; - gpio = <0x4a 0x07 0x01>; - pinctrl-names = "default"; - pinctrl-0 = <0x15b>; - regulator-name = "pcie_pi6c_oe_en"; - regulator-always-on; - }; - - vcc-4g-power-regulator { - compatible = "regulator-fixed"; - enable-active-high; - gpio = <0x4a 0x03 0x00>; - pinctrl-names = "default"; - pinctrl-0 = <0x15c>; - regulator-name = "vcc_4g_power_en"; - regulator-always-on; - }; - - leds { - status = "okay"; - compatible = "gpio-leds"; - pinctrl-names = "default"; - pinctrl-0 = <0x15d>; - - power { - label = "firefly:blue:power"; - linux,default-trigger = "ir-power-click"; - default-state = "on"; - gpios = <0x159 0x0a 0x00>; - }; - - user { - label = "firefly:yellow:user"; - linux,default-trigger = "ir-user-click"; - default-state = "off"; - gpios = <0x159 0x09 0x00>; - }; - - diy1 { - label = "firefly:green:diy"; - linux,default-trigger = "ir-user-click"; - default-state = "off"; - gpios = <0x159 0x08 0x00>; - }; - - diy2 { - label = "firefly:yellow:diy"; - linux,default-trigger = "ir-user-click"; - default-state = "off"; - gpios = <0x91 0x11 0x00>; - }; - }; -}; \ No newline at end of file diff --git a/configs/vms_bkp/linux-aarch64-rk3568_smp1.toml b/configs/vms_bkp/linux-aarch64-rk3568_smp1.toml deleted file mode 100644 index 69217e45..00000000 --- a/configs/vms_bkp/linux-aarch64-rk3568_smp1.toml +++ /dev/null @@ -1,86 +0,0 @@ -# Vm base info configs -# -[base] -# Guest vm id. -id = 2 -# Guest vm name. -name = "linux" -# Virtualization type. -vm_type = 1 -# The number of virtual CPUs. -cpu_num = 1 -# The physical CPU ids. -phys_cpu_ids = [0x00] -# Guest vm physical cpu sets. -phys_cpu_sets = [1] - -# -# Vm kernel configs -# -[kernel] -# The entry point of the kernel image. -entry_point = 0x8008_0000 -# The location of image: "memory" | "fs". -# Load from memory. -image_location = "memory" -# The load address of the kernel image. -kernel_load_addr = 0x8008_0000 -## The file path of the kernel image. -kernel_path = "/path/Image" -## The file path of the device tree blob (DTB). -dtb_load_addr = 0x8000_0000 -dtb_path = "/path/linux-aarch64-rk3568_smp1.dtb" -# Memory regions with format (`base_paddr`, `size`, `flags`, `map_type`). -# For `map_type`, 0 means `MAP_ALLOC`, 1 means `MAP_IDENTICAL`. -memory_regions = [ - [0x8000_0000, 0x6000_0000, 0x7, 1], # System RAM 1G MAP_IDENTICAL -] -# -# Device specifications -# -[devices] -# The interrupt mode. -interrupt_mode = "passthrough" -# Emu_devices. -# Name Base-Ipa Ipa_len Alloc-Irq Emu-Type EmuConfig. -emu_devices = [] - -# Pass-through devices. -# Name Base-Ipa Base-Pa Length Alloc-Irq. -passthrough_devices = [ - # [ - # "peripherals 1", - # 0xf000_0000, - # 0xf000_0000, - # 0xe66_0000, - # 0x1, - # ], - # [ - # "peripherals 2", - # 0xfe67_0000, - # 0xfe67_0000, - # 0x99_0000, - # 0x1, - # ], - [ - "all peripherals", - 0xf0000000, - 0xf0000000, - 0xf000000, - 0x1, - ], - [ - "PCIe related", - 0x3_0000_0000, - 0x3_0000_0000, - 0xd000_0000, - 0x1, - ], - [ - "ramoops, scmi-shmem, etc.", - 0x100000, - 0x100000, - 0x200000, - 0x1, - ], -] diff --git a/configs/vms_bkp/linux-aarch64-rk3568_smp2.dts b/configs/vms_bkp/linux-aarch64-rk3568_smp2.dts deleted file mode 100644 index 5475dbe6..00000000 --- a/configs/vms_bkp/linux-aarch64-rk3568_smp2.dts +++ /dev/null @@ -1,6108 +0,0 @@ -/dts-v1/; - -/memreserve/ 0x0000000008300000 0x000000000001c000; -/memreserve/ 0x000000000a200000 0x00000000008cf15d; -/ { - serial-number = "425ca8fc29ade692"; - compatible = "rockchip,rk3568-firefly-roc-pc-se\0rockchip,rk3568"; - interrupt-parent = <0x01>; - #address-cells = <0x02>; - #size-cells = <0x02>; - model = "Firefly RK3568-ROC-PC-SE HDMI (Linux)"; - - memory { - reg = <0x00 0x80000000 0x00 0x60000000>; - device_type = "memory"; - }; - - ddr3-params { - version = <0x100>; - expanded_version = <0x00>; - reserved = <0x00>; - freq_0 = <0x420>; - freq_1 = <0x144>; - freq_2 = <0x210>; - freq_3 = <0x30c>; - freq_4 = <0x00>; - freq_5 = <0x00>; - pd_idle = <0x0d>; - sr_idle = <0x5d>; - sr_mc_gate_idle = <0x00>; - srpd_lite_idle = <0x00>; - standby_idle = <0x00>; - pd_dis_freq = <0x42a>; - sr_dis_freq = <0x320>; - dram_dll_dis_freq = <0x12c>; - phy_dll_dis_freq = <0x00>; - phy_dq_drv_odten = <0x21>; - phy_ca_drv_odten = <0x21>; - phy_clk_drv_odten = <0x21>; - dram_dq_drv_odten = <0x22>; - phy_dq_drv_odtoff = <0x21>; - phy_ca_drv_odtoff = <0x21>; - phy_clk_drv_odtoff = <0x21>; - dram_dq_drv_odtoff = <0x22>; - dram_odt = <0x78>; - phy_odt = <0xa7>; - phy_odt_puup_en = <0x01>; - phy_odt_pudn_en = <0x01>; - dram_dq_odt_en_freq = <0x14d>; - phy_odt_en_freq = <0x14d>; - phy_dq_sr_odten = <0x0f>; - phy_ca_sr_odten = <0x03>; - phy_clk_sr_odten = <0x00>; - phy_dq_sr_odtoff = <0x0f>; - phy_ca_sr_odtoff = <0x03>; - phy_clk_sr_odtoff = <0x00>; - ssmod_downspread = <0x00>; - ssmod_div = <0x00>; - ssmod_spread = <0x00>; - mode_2t = <0x00>; - speed_bin = <0x15>; - dram_ext_temp = <0x00>; - byte_map = <0xe4>; - dq_map_cs0_dq_l = <0x00>; - dq_map_cs0_dq_h = <0x00>; - dq_map_cs1_dq_l = <0x00>; - dq_map_cs1_dq_h = <0x00>; - phandle = <0xb7>; - }; - - ddr4-params { - version = <0x100>; - expanded_version = <0x00>; - reserved = <0x00>; - freq_0 = <0x420>; - freq_1 = <0x144>; - freq_2 = <0x210>; - freq_3 = <0x30c>; - freq_4 = <0x00>; - freq_5 = <0x00>; - pd_idle = <0x0d>; - sr_idle = <0x5d>; - sr_mc_gate_idle = <0x00>; - srpd_lite_idle = <0x00>; - standby_idle = <0x00>; - pd_dis_freq = <0x42a>; - sr_dis_freq = <0x320>; - dram_dll_dis_freq = <0x271>; - phy_dll_dis_freq = <0x00>; - phy_dq_drv_odten = <0x25>; - phy_ca_drv_odten = <0x25>; - phy_clk_drv_odten = <0x25>; - dram_dq_drv_odten = <0x22>; - phy_dq_drv_odtoff = <0x25>; - phy_ca_drv_odtoff = <0x25>; - phy_clk_drv_odtoff = <0x25>; - dram_dq_drv_odtoff = <0x22>; - dram_odt = <0x78>; - phy_odt = <0x8b>; - phy_odt_puup_en = <0x01>; - phy_odt_pudn_en = <0x01>; - dram_dq_odt_en_freq = <0x1f4>; - phy_odt_en_freq = <0x1f4>; - phy_dq_sr_odten = <0x0e>; - phy_ca_sr_odten = <0x01>; - phy_clk_sr_odten = <0x01>; - phy_dq_sr_odtoff = <0x0e>; - phy_ca_sr_odtoff = <0x01>; - phy_clk_sr_odtoff = <0x01>; - ssmod_downspread = <0x00>; - ssmod_div = <0x00>; - ssmod_spread = <0x00>; - mode_2t = <0x00>; - speed_bin = <0x0c>; - dram_ext_temp = <0x00>; - byte_map = <0xe4>; - dq_map_cs0_dq_l = <0x22777788>; - dq_map_cs0_dq_h = <0xd7888877>; - dq_map_cs1_dq_l = <0x22777788>; - dq_map_cs1_dq_h = <0xd7888877>; - phandle = <0xb8>; - }; - - lpddr3-params { - version = <0x100>; - expanded_version = <0x00>; - reserved = <0x00>; - freq_0 = <0x420>; - freq_1 = <0x144>; - freq_2 = <0x210>; - freq_3 = <0x30c>; - freq_4 = <0x00>; - freq_5 = <0x00>; - pd_idle = <0x0d>; - sr_idle = <0x5d>; - sr_mc_gate_idle = <0x00>; - srpd_lite_idle = <0x00>; - standby_idle = <0x00>; - pd_dis_freq = <0x42a>; - sr_dis_freq = <0x320>; - dram_dll_dis_freq = <0x00>; - phy_dll_dis_freq = <0x00>; - phy_dq_drv_odten = <0x25>; - phy_ca_drv_odten = <0x25>; - phy_clk_drv_odten = <0x27>; - dram_dq_drv_odten = <0x22>; - phy_dq_drv_odtoff = <0x25>; - phy_ca_drv_odtoff = <0x25>; - phy_clk_drv_odtoff = <0x27>; - dram_dq_drv_odtoff = <0x22>; - dram_odt = <0x78>; - phy_odt = <0x94>; - phy_odt_puup_en = <0x01>; - phy_odt_pudn_en = <0x01>; - dram_dq_odt_en_freq = <0x14d>; - phy_odt_en_freq = <0x14d>; - phy_dq_sr_odten = <0x0f>; - phy_ca_sr_odten = <0x01>; - phy_clk_sr_odten = <0x0f>; - phy_dq_sr_odtoff = <0x0f>; - phy_ca_sr_odtoff = <0x01>; - phy_clk_sr_odtoff = <0x0f>; - ssmod_downspread = <0x00>; - ssmod_div = <0x00>; - ssmod_spread = <0x00>; - mode_2t = <0x00>; - speed_bin = <0x00>; - dram_ext_temp = <0x00>; - byte_map = <0x8d>; - dq_map_cs0_dq_l = <0x00>; - dq_map_cs0_dq_h = <0x00>; - dq_map_cs1_dq_l = <0x00>; - dq_map_cs1_dq_h = <0x00>; - phandle = <0xb9>; - }; - - lpddr4-params { - version = <0x100>; - expanded_version = <0x00>; - reserved = <0x00>; - freq_0 = <0x618>; - freq_1 = <0x144>; - freq_2 = <0x210>; - freq_3 = <0x30c>; - freq_4 = <0x00>; - freq_5 = <0x00>; - pd_idle = <0x0d>; - sr_idle = <0x5d>; - sr_mc_gate_idle = <0x00>; - srpd_lite_idle = <0x00>; - standby_idle = <0x00>; - pd_dis_freq = <0x42a>; - sr_dis_freq = <0x320>; - dram_dll_dis_freq = <0x00>; - phy_dll_dis_freq = <0x00>; - phy_dq_drv_odten = <0x1e>; - phy_ca_drv_odten = <0x26>; - phy_clk_drv_odten = <0x26>; - dram_dq_drv_odten = <0x28>; - phy_dq_drv_odtoff = <0x1e>; - phy_ca_drv_odtoff = <0x26>; - phy_clk_drv_odtoff = <0x26>; - dram_dq_drv_odtoff = <0x28>; - dram_odt = <0x50>; - phy_odt = <0x3c>; - phy_odt_puup_en = <0x00>; - phy_odt_pudn_en = <0x00>; - dram_dq_odt_en_freq = <0x320>; - phy_odt_en_freq = <0x320>; - phy_dq_sr_odten = <0x00>; - phy_ca_sr_odten = <0x0f>; - phy_clk_sr_odten = <0x0f>; - phy_dq_sr_odtoff = <0x00>; - phy_ca_sr_odtoff = <0x0f>; - phy_clk_sr_odtoff = <0x0f>; - ssmod_downspread = <0x00>; - ssmod_div = <0x00>; - ssmod_spread = <0x00>; - mode_2t = <0x00>; - speed_bin = <0x00>; - dram_ext_temp = <0x00>; - byte_map = <0xe4>; - dq_map_cs0_dq_l = <0x00>; - dq_map_cs0_dq_h = <0x00>; - dq_map_cs1_dq_l = <0x00>; - dq_map_cs1_dq_h = <0x00>; - lp4_ca_odt = <0x78>; - lp4_drv_pu_cal_odten = <0x01>; - lp4_drv_pu_cal_odtoff = <0x01>; - phy_lp4_drv_pulldown_en_odten = <0x00>; - phy_lp4_drv_pulldown_en_odtoff = <0x00>; - lp4_ca_odt_en_freq = <0x320>; - phy_lp4_cs_drv_odten = <0x00>; - phy_lp4_cs_drv_odtoff = <0x00>; - lp4_odte_ck_en = <0x01>; - lp4_odte_cs_en = <0x01>; - lp4_odtd_ca_en = <0x00>; - phy_lp4_dq_vref_odten = <0xa6>; - lp4_dq_vref_odten = <0x12c>; - lp4_ca_vref_odten = <0x17c>; - phy_lp4_dq_vref_odtoff = <0x1a4>; - lp4_dq_vref_odtoff = <0x1a4>; - lp4_ca_vref_odtoff = <0x1a4>; - phandle = <0xba>; - }; - - lpddr4x-params { - version = <0x100>; - expanded_version = <0x00>; - reserved = <0x00>; - freq_0 = <0x618>; - freq_1 = <0x144>; - freq_2 = <0x210>; - freq_3 = <0x30c>; - freq_4 = <0x00>; - freq_5 = <0x00>; - pd_idle = <0x0d>; - sr_idle = <0x5d>; - sr_mc_gate_idle = <0x00>; - srpd_lite_idle = <0x00>; - standby_idle = <0x00>; - pd_dis_freq = <0x42a>; - sr_dis_freq = <0x320>; - dram_dll_dis_freq = <0x00>; - phy_dll_dis_freq = <0x00>; - phy_dq_drv_odten = <0x1d>; - phy_ca_drv_odten = <0x24>; - phy_clk_drv_odten = <0x24>; - dram_dq_drv_odten = <0x28>; - phy_dq_drv_odtoff = <0x1d>; - phy_ca_drv_odtoff = <0x24>; - phy_clk_drv_odtoff = <0x24>; - dram_dq_drv_odtoff = <0x28>; - dram_odt = <0x50>; - phy_odt = <0x3c>; - phy_odt_puup_en = <0x00>; - phy_odt_pudn_en = <0x00>; - dram_dq_odt_en_freq = <0x320>; - phy_odt_en_freq = <0x320>; - phy_dq_sr_odten = <0x00>; - phy_ca_sr_odten = <0x00>; - phy_clk_sr_odten = <0x00>; - phy_dq_sr_odtoff = <0x00>; - phy_ca_sr_odtoff = <0x00>; - phy_clk_sr_odtoff = <0x00>; - ssmod_downspread = <0x00>; - ssmod_div = <0x00>; - ssmod_spread = <0x00>; - mode_2t = <0x00>; - speed_bin = <0x00>; - dram_ext_temp = <0x00>; - byte_map = <0xe4>; - dq_map_cs0_dq_l = <0x00>; - dq_map_cs0_dq_h = <0x00>; - dq_map_cs1_dq_l = <0x00>; - dq_map_cs1_dq_h = <0x00>; - lp4_ca_odt = <0x78>; - lp4_drv_pu_cal_odten = <0x00>; - lp4_drv_pu_cal_odtoff = <0x00>; - phy_lp4_drv_pulldown_en_odten = <0x00>; - phy_lp4_drv_pulldown_en_odtoff = <0x00>; - lp4_ca_odt_en_freq = <0x320>; - phy_lp4_cs_drv_odten = <0x00>; - phy_lp4_cs_drv_odtoff = <0x00>; - lp4_odte_ck_en = <0x00>; - lp4_odte_cs_en = <0x00>; - lp4_odtd_ca_en = <0x00>; - phy_lp4_dq_vref_odten = <0xa6>; - lp4_dq_vref_odten = <0xe4>; - lp4_ca_vref_odten = <0x157>; - phy_lp4_dq_vref_odtoff = <0x1a4>; - lp4_dq_vref_odtoff = <0x1a4>; - lp4_ca_vref_odtoff = <0x157>; - phandle = <0xbb>; - }; - - aliases { - csi2dphy0 = "/csi2-dphy0"; - csi2dphy1 = "/csi2-dphy1"; - csi2dphy2 = "/csi2-dphy2"; - dsi0 = "/dsi@fe060000"; - dsi1 = "/dsi@fe070000"; - ethernet0 = "/ethernet@fe2a0000"; - ethernet1 = "/ethernet@fe010000"; - gpio0 = "/pinctrl/gpio0@fdd60000"; - gpio1 = "/pinctrl/gpio1@fe740000"; - gpio2 = "/pinctrl/gpio2@fe750000"; - gpio3 = "/pinctrl/gpio3@fe760000"; - gpio4 = "/pinctrl/gpio4@fe770000"; - i2c0 = "/i2c@fdd40000"; - i2c1 = "/i2c@fe5a0000"; - i2c2 = "/i2c@fe5b0000"; - i2c3 = "/i2c@fe5c0000"; - i2c4 = "/i2c@fe5d0000"; - i2c5 = "/i2c@fe5e0000"; - mmc0 = "/sdhci@fe310000"; - mmc1 = "/dwmmc@fe2b0000"; - mmc2 = "/dwmmc@fe2c0000"; - mmc3 = "/dwmmc@fe000000"; - serial0 = "/serial@fdd50000"; - serial1 = "/serial@fe650000"; - serial2 = "/serial@fe660000"; - serial3 = "/serial@fe670000"; - serial4 = "/serial@fe680000"; - serial5 = "/serial@fe690000"; - serial6 = "/serial@fe6a0000"; - serial7 = "/serial@fe6b0000"; - serial8 = "/serial@fe6c0000"; - serial9 = "/serial@fe6d0000"; - spi0 = "/spi@fe610000"; - spi1 = "/spi@fe620000"; - spi2 = "/spi@fe630000"; - spi3 = "/spi@fe640000"; - lvds0 = "/syscon@fdc60000/lvds"; - lvds1 = "/syscon@fdc60000/lvds1"; - }; - - cpus { - #address-cells = <0x02>; - #size-cells = <0x00>; - - // cpu@0 { - // device_type = "cpu"; - // compatible = "arm,cortex-a55"; - // reg = <0x00 0x00>; - // enable-method = "psci"; - // clocks = <0x02 0x00>; - // operating-points-v2 = <0x03>; - // cpu-idle-states = <0x04>; - // #cooling-cells = <0x02>; - // dynamic-power-coefficient = <0xbb>; - // cpu-supply = <0x05>; - // phandle = <0x0c>; - // }; - - // cpu@100 { - // device_type = "cpu"; - // compatible = "arm,cortex-a55"; - // reg = <0x00 0x100>; - // enable-method = "psci"; - // clocks = <0x02 0x00>; - // operating-points-v2 = <0x03>; - // cpu-idle-states = <0x04>; - // phandle = <0x0d>; - // }; - - cpu@200 { - device_type = "cpu"; - compatible = "arm,cortex-a55"; - reg = <0x00 0x200>; - enable-method = "psci"; - clocks = <0x02 0x00>; - operating-points-v2 = <0x03>; - cpu-idle-states = <0x04>; - phandle = <0x0e>; - }; - - cpu@300 { - device_type = "cpu"; - compatible = "arm,cortex-a55"; - reg = <0x00 0x300>; - enable-method = "psci"; - clocks = <0x02 0x00>; - operating-points-v2 = <0x03>; - cpu-idle-states = <0x04>; - phandle = <0x0f>; - }; - - idle-states { - entry-method = "psci"; - - cpu-sleep { - compatible = "arm,idle-state"; - local-timer-stop; - arm,psci-suspend-param = <0x10000>; - entry-latency-us = <0x64>; - exit-latency-us = <0x78>; - min-residency-us = <0x3e8>; - phandle = <0x04>; - }; - }; - }; - - cpu0-opp-table { - compatible = "operating-points-v2"; - opp-shared; - mbist-vmin = <0xc96a8 0xdbba0 0xe7ef0>; - nvmem-cells = <0x06 0x07 0x08 0x09 0x0a 0x0b>; - nvmem-cell-names = "leakage\0pvtm\0mbist-vmin\0opp-info\0specification_serial_number\0remark_spec_serial_number"; - rockchip,supported-hw; - rockchip,max-volt = <0x118c30>; - rockchip,pvtm-voltage-sel = <0x00 0x14820 0x00 0x14821 0x153d8 0x01 0x153d9 0x16378 0x02 0x16379 0x186a0 0x03>; - rockchip,pvtm-freq = <0x639c0>; - rockchip,pvtm-volt = <0xdbba0>; - rockchip,pvtm-ch = <0x00 0x05>; - rockchip,pvtm-sample-time = <0x3e8>; - rockchip,pvtm-number = <0x0a>; - rockchip,pvtm-error = <0x3e8>; - rockchip,pvtm-ref-temp = <0x28>; - rockchip,pvtm-temp-prop = <0x1a 0x1a>; - rockchip,thermal-zone = "soc-thermal"; - rockchip,temp-hysteresis = <0x1388>; - rockchip,low-temp = <0x00>; - rockchip,low-temp-adjust-volt = <0x00 0x7c8 0x124f8>; - phandle = <0x03>; - - opp-408000000 { - opp-supported-hw = <0xfb 0xffff>; - opp-hz = <0x00 0x18519600>; - opp-microvolt = <0xcf850 0xcf850 0x118c30>; - clock-latency-ns = <0x9c40>; - }; - - opp-600000000 { - opp-supported-hw = <0xfb 0xffff>; - opp-hz = <0x00 0x23c34600>; - opp-microvolt = <0xcf850 0xcf850 0x118c30>; - clock-latency-ns = <0x9c40>; - }; - - opp-816000000 { - opp-supported-hw = <0xfb 0xffff>; - opp-hz = <0x00 0x30a32c00>; - opp-microvolt = <0xcf850 0xcf850 0x118c30>; - clock-latency-ns = <0x9c40>; - opp-suspend; - }; - - opp-1104000000 { - opp-supported-hw = <0xfb 0xffff>; - opp-hz = <0x00 0x41cdb400>; - opp-microvolt = <0xdbba0 0xdbba0 0x118c30>; - opp-microvolt-L0 = <0xdbba0 0xdbba0 0x118c30>; - opp-microvolt-L1 = <0xcf850 0xcf850 0x118c30>; - opp-microvolt-L2 = <0xcf850 0xcf850 0x118c30>; - opp-microvolt-L3 = <0xcf850 0xcf850 0x118c30>; - clock-latency-ns = <0x9c40>; - }; - - opp-1416000000 { - opp-supported-hw = <0xfb 0xffff>; - opp-hz = <0x00 0x54667200>; - opp-microvolt = <0xfa3e8 0xfa3e8 0x118c30>; - opp-microvolt-L0 = <0xfa3e8 0xfa3e8 0x118c30>; - opp-microvolt-L1 = <0xee098 0xee098 0x118c30>; - opp-microvolt-L2 = <0xe7ef0 0xe7ef0 0x118c30>; - opp-microvolt-L3 = <0xe1d48 0xe1d48 0x118c30>; - clock-latency-ns = <0x9c40>; - }; - - opp-1608000000 { - opp-supported-hw = <0xf9 0xffff>; - opp-hz = <0x00 0x5fd82200>; - opp-microvolt = <0x10c8e0 0x10c8e0 0x118c30>; - opp-microvolt-L0 = <0x10c8e0 0x10c8e0 0x118c30>; - opp-microvolt-L1 = <0x100590 0x100590 0x118c30>; - opp-microvolt-L2 = <0xfa3e8 0xfa3e8 0x118c30>; - opp-microvolt-L3 = <0xf4240 0xf4240 0x118c30>; - clock-latency-ns = <0x9c40>; - }; - - opp-1800000000 { - opp-supported-hw = <0xf9 0xffff>; - opp-hz = <0x00 0x6b49d200>; - opp-microvolt = <0x118c30 0x118c30 0x118c30>; - opp-microvolt-L0 = <0x118c30 0x118c30 0x118c30>; - opp-microvolt-L1 = <0x10c8e0 0x10c8e0 0x118c30>; - opp-microvolt-L2 = <0x106738 0x106738 0x118c30>; - opp-microvolt-L3 = <0x100590 0x100590 0x118c30>; - clock-latency-ns = <0x9c40>; - }; - - opp-1992000000 { - opp-supported-hw = <0xf9 0xffff>; - opp-hz = <0x00 0x76bb8200>; - opp-microvolt = <0x118c30 0x118c30 0x118c30>; - opp-microvolt-L0 = <0x118c30 0x118c30 0x118c30>; - opp-microvolt-L1 = <0x118c30 0x118c30 0x118c30>; - opp-microvolt-L2 = <0x112a88 0x112a88 0x118c30>; - opp-microvolt-L3 = <0x10c8e0 0x10c8e0 0x118c30>; - clock-latency-ns = <0x9c40>; - }; - - opp-j-1008000000 { - opp-supported-hw = <0x04 0xffff>; - opp-hz = <0x00 0x3c14dc00>; - opp-microvolt = <0xcf850 0xcf850 0x118c30>; - clock-latency-ns = <0x9c40>; - }; - - opp-j-1416000000 { - opp-supported-hw = <0x04 0xffff>; - opp-hz = <0x00 0x54667200>; - opp-microvolt = <0xdbba0 0xdbba0 0x118c30>; - clock-latency-ns = <0x9c40>; - }; - - opp-m-1608000000 { - opp-supported-hw = <0x02 0xffff>; - opp-hz = <0x00 0x5fd82200>; - opp-microvolt = <0xf4240 0xf4240 0x118c30>; - clock-latency-ns = <0x9c40>; - }; - }; - - arm-pmu { - compatible = "arm,cortex-a55-pmu\0arm,armv8-pmuv3"; - interrupts = <0x00 0xe4 0x04 0x00 0xe5 0x04 0x00 0xe6 0x04 0x00 0xe7 0x04>; - interrupt-affinity = <0x0c 0x0d 0x0e 0x0f>; - }; - - cpuinfo { - compatible = "rockchip,cpuinfo"; - nvmem-cells = <0x10 0x11 0x12>; - nvmem-cell-names = "id\0cpu-version\0cpu-code"; - }; - - display-subsystem { - compatible = "rockchip,display-subsystem"; - memory-region = <0x13 0x14>; - memory-region-names = "drm-logo\0drm-cubic-lut"; - ports = <0x15>; - devfreq = <0x16>; - - route { - - route-dsi0 { - status = "disabled"; - logo,uboot = "logo.bmp"; - logo,kernel = "logo_kernel.bmp"; - logo,mode = "center"; - charge_logo,mode = "center"; - connect = <0x17>; - }; - - route-dsi1 { - status = "disabled"; - logo,uboot = "logo.bmp"; - logo,kernel = "logo_kernel.bmp"; - logo,mode = "center"; - charge_logo,mode = "center"; - connect = <0x18>; - }; - - route-edp { - status = "disabled"; - logo,uboot = "logo.bmp"; - logo,kernel = "logo_kernel.bmp"; - logo,mode = "center"; - charge_logo,mode = "center"; - connect = <0x19>; - }; - - route-hdmi { - status = "okay"; - logo,uboot = "logo.bmp"; - logo,kernel = "logo_kernel.bmp"; - logo,mode = "center"; - charge_logo,mode = "center"; - connect = <0x1a>; - }; - - route-lvds { - status = "disabled"; - logo,uboot = "logo.bmp"; - logo,kernel = "logo_kernel.bmp"; - logo,mode = "center"; - charge_logo,mode = "center"; - connect = <0x1b>; - }; - - route-rgb { - status = "disabled"; - logo,uboot = "logo.bmp"; - logo,kernel = "logo_kernel.bmp"; - logo,mode = "center"; - charge_logo,mode = "center"; - connect = <0x1c>; - }; - }; - }; - - edac { - compatible = "rockchip,rk3568-edac"; - interrupts = <0x00 0xad 0x04 0x00 0xaf 0x04>; - interrupt-names = "ce\0ue"; - status = "disabled"; - }; - - firmware { - - scmi { - compatible = "arm,scmi-smc"; - shmem = <0x1d>; - arm,smc-id = <0x82000010>; - #address-cells = <0x01>; - #size-cells = <0x00>; - - protocol@14 { - reg = <0x14>; - #clock-cells = <0x01>; - rockchip,clk-init = <0x41cdb400>; - phandle = <0x02>; - }; - }; - - sdei { - compatible = "arm,sdei-1.0"; - method = "smc"; - }; - }; - - mipi-csi2 { - compatible = "rockchip,rk3568-mipi-csi2"; - rockchip,hw = <0x1e>; - status = "disabled"; - }; - - mpp-srv { - compatible = "rockchip,mpp-service"; - rockchip,taskqueue-count = <0x06>; - rockchip,resetgroup-count = <0x06>; - status = "okay"; - phandle = <0x7b>; - }; - - psci { - compatible = "arm,psci-1.0"; - method = "smc"; - }; - - reserved-memory { - #address-cells = <0x02>; - #size-cells = <0x02>; - ranges; - - drm-logo@00000000 { - compatible = "rockchip,drm-logo"; - reg = <0x00 0xedf00000 0x00 0x2e0000>; - phandle = <0x13>; - }; - - drm-cubic-lut@00000000 { - compatible = "rockchip,drm-cubic-lut"; - reg = <0x00 0xeff00000 0x00 0x8000>; - phandle = <0x14>; - }; - - ramoops@110000 { - compatible = "ramoops"; - reg = <0x00 0x110000 0x00 0xf0000>; - record-size = <0x20000>; - console-size = <0x80000>; - ftrace-size = <0x00>; - pmsg-size = <0x50000>; - }; - }; - - rockchip-suspend { - compatible = "rockchip,pm-rk3568"; - status = "okay"; - rockchip,sleep-debug-en = <0x01>; - rockchip,sleep-mode-config = <0x5ec>; - rockchip,wakeup-config = <0x10>; - }; - - rockchip-system-monitor { - compatible = "rockchip,system-monitor"; - rockchip,thermal-zone = "soc-thermal"; - }; - - thermal-zones { - - soc-thermal { - polling-delay-passive = <0x14>; - polling-delay = <0x3e8>; - sustainable-power = <0x389>; - thermal-sensors = <0x1f 0x00>; - - trips { - - trip-point-0 { - temperature = <0x124f8>; - hysteresis = <0x7d0>; - type = "passive"; - }; - - trip-point-1 { - temperature = <0x14c08>; - hysteresis = <0x7d0>; - type = "passive"; - phandle = <0x20>; - }; - - soc-crit { - temperature = <0x1c138>; - hysteresis = <0x7d0>; - type = "critical"; - }; - }; - - cooling-maps { - - map0 { - trip = <0x20>; - cooling-device = <0x0c 0xffffffff 0xffffffff>; - contribution = <0x400>; - }; - - map1 { - trip = <0x20>; - cooling-device = <0x21 0xffffffff 0xffffffff>; - contribution = <0x400>; - }; - }; - }; - - gpu-thermal { - polling-delay-passive = <0x14>; - polling-delay = <0x3e8>; - thermal-sensors = <0x1f 0x01>; - }; - }; - - timer { - compatible = "arm,armv8-timer"; - interrupts = <0x01 0x0d 0xf04 0x01 0x0e 0xf04 0x01 0x0b 0xf04 0x01 0x0a 0xf04>; - arm,no-tick-in-suspend; - }; - - external-gmac0-clock { - compatible = "fixed-clock"; - clock-frequency = <0x7735940>; - clock-output-names = "gmac0_clkin"; - #clock-cells = <0x00>; - phandle = <0xc7>; - }; - - external-gmac1-clock { - compatible = "fixed-clock"; - clock-frequency = <0x7735940>; - clock-output-names = "gmac1_clkin"; - #clock-cells = <0x00>; - phandle = <0x92>; - }; - - xpcs-gmac0-clock { - compatible = "fixed-clock"; - clock-frequency = <0x7735940>; - clock-output-names = "clk_gmac0_xpcs_mii"; - #clock-cells = <0x00>; - }; - - xpcs-gmac1-clock { - compatible = "fixed-clock"; - clock-frequency = <0x7735940>; - clock-output-names = "clk_gmac1_xpcs_mii"; - #clock-cells = <0x00>; - }; - - i2s1-mclkin-rx { - compatible = "fixed-clock"; - #clock-cells = <0x00>; - clock-frequency = <0xbb8000>; - clock-output-names = "i2s1_mclkin_rx"; - }; - - i2s1-mclkin-tx { - compatible = "fixed-clock"; - #clock-cells = <0x00>; - clock-frequency = <0xbb8000>; - clock-output-names = "i2s1_mclkin_tx"; - }; - - i2s2-mclkin { - compatible = "fixed-clock"; - #clock-cells = <0x00>; - clock-frequency = <0xbb8000>; - clock-output-names = "i2s2_mclkin"; - }; - - i2s3-mclkin { - compatible = "fixed-clock"; - #clock-cells = <0x00>; - clock-frequency = <0xbb8000>; - clock-output-names = "i2s3_mclkin"; - }; - - mpll { - compatible = "fixed-clock"; - #clock-cells = <0x00>; - clock-frequency = <0x2faf0800>; - clock-output-names = "mpll"; - }; - - xin24m { - compatible = "fixed-clock"; - #clock-cells = <0x00>; - clock-frequency = <0x16e3600>; - clock-output-names = "xin24m"; - }; - - xin32k { - compatible = "fixed-clock"; - clock-frequency = <0x8000>; - clock-output-names = "xin32k"; - #clock-cells = <0x00>; - pinctrl-names = "default"; - pinctrl-0 = <0x22>; - }; - - scmi-shmem@10f000 { - compatible = "arm,scmi-shmem"; - reg = <0x00 0x10f000 0x00 0x100>; - phandle = <0x1d>; - }; - - sata@fc000000 { - compatible = "snps,dwc-ahci"; - reg = <0x00 0xfc000000 0x00 0x1000>; - clocks = <0x23 0x96 0x23 0x97 0x23 0x98>; - clock-names = "sata\0pmalive\0rxoob"; - interrupts = <0x00 0x5e 0x04>; - interrupt-names = "hostc"; - phys = <0x24 0x01>; - phy-names = "sata-phy"; - ports-implemented = <0x01>; - power-domains = <0x25 0x0f>; - status = "disabled"; - }; - - sata@fc400000 { - compatible = "snps,dwc-ahci"; - reg = <0x00 0xfc400000 0x00 0x1000>; - clocks = <0x23 0x9b 0x23 0x9c 0x23 0x9d>; - clock-names = "sata\0pmalive\0rxoob"; - interrupts = <0x00 0x5f 0x04>; - interrupt-names = "hostc"; - phys = <0x26 0x01>; - phy-names = "sata-phy"; - ports-implemented = <0x01>; - power-domains = <0x25 0x0f>; - status = "disabled"; - }; - - sata@fc800000 { - compatible = "snps,dwc-ahci"; - reg = <0x00 0xfc800000 0x00 0x1000>; - clocks = <0x23 0xa0 0x23 0xa1 0x23 0xa2>; - clock-names = "sata\0pmalive\0rxoob"; - interrupts = <0x00 0x60 0x04>; - interrupt-names = "hostc"; - phys = <0x27 0x01>; - phy-names = "sata-phy"; - ports-implemented = <0x01>; - power-domains = <0x25 0x0f>; - status = "okay"; - }; - - usbdrd { - compatible = "rockchip,rk3568-dwc3\0rockchip,rk3399-dwc3"; - clocks = <0x23 0xa6 0x23 0xa7 0x23 0xa5 0x23 0x7f>; - clock-names = "ref_clk\0suspend_clk\0bus_clk\0pipe_clk"; - #address-cells = <0x02>; - #size-cells = <0x02>; - ranges; - status = "okay"; - - dwc3@fcc00000 { - compatible = "snps,dwc3"; - reg = <0x00 0xfcc00000 0x00 0x400000>; - interrupts = <0x00 0xa9 0x04>; - dr_mode = "otg"; - phys = <0x28 0x24 0x04>; - phy-names = "usb2-phy\0usb3-phy"; - phy_type = "utmi_wide"; - power-domains = <0x25 0x0f>; - resets = <0x23 0x94>; - reset-names = "usb3-otg"; - snps,dis_enblslpm_quirk; - snps,dis-u1-entry-quirk; - snps,dis-u2-entry-quirk; - snps,dis-u2-freeclk-exists-quirk; - snps,dis-del-phy-power-chg-quirk; - snps,dis-tx-ipgap-linecheck-quirk; - snps,dis_rxdet_inp3_quirk; - snps,parkmode-disable-hs-quirk; - snps,parkmode-disable-ss-quirk; - quirk-skip-phy-init; - status = "okay"; - extcon = <0x29>; - usb-role-switch; - - port { - #address-cells = <0x01>; - #size-cells = <0x00>; - - endpoint@0 { - reg = <0x00>; - remote-endpoint = <0x2a>; - phandle = <0x4d>; - }; - }; - }; - }; - - usbhost { - compatible = "rockchip,rk3568-dwc3\0rockchip,rk3399-dwc3"; - clocks = <0x23 0xa9 0x23 0xaa 0x23 0xa8 0x23 0x7f>; - clock-names = "ref_clk\0suspend_clk\0bus_clk\0pipe_clk"; - #address-cells = <0x02>; - #size-cells = <0x02>; - ranges; - status = "okay"; - - dwc3@fd000000 { - compatible = "snps,dwc3"; - reg = <0x00 0xfd000000 0x00 0x400000>; - interrupts = <0x00 0xaa 0x04>; - dr_mode = "host"; - phys = <0x2b 0x26 0x04>; - phy-names = "usb2-phy\0usb3-phy"; - phy_type = "utmi_wide"; - power-domains = <0x25 0x0f>; - resets = <0x23 0x95>; - reset-names = "usb3-host"; - snps,dis_enblslpm_quirk; - snps,dis-u2-freeclk-exists-quirk; - snps,dis-del-phy-power-chg-quirk; - snps,dis-tx-ipgap-linecheck-quirk; - snps,dis_rxdet_inp3_quirk; - snps,parkmode-disable-hs-quirk; - snps,parkmode-disable-ss-quirk; - status = "okay"; - }; - }; - - interrupt-controller@fd400000 { - compatible = "arm,gic-v3"; - #interrupt-cells = <0x03>; - #address-cells = <0x02>; - #size-cells = <0x02>; - ranges; - interrupt-controller; - reg = <0x00 0xfd400000 0x00 0x10000 0x00 0xfd460000 0x00 0xc0000>; - interrupts = <0x01 0x09 0x04>; - phandle = <0x01>; - - interrupt-controller@fd440000 { - compatible = "arm,gic-v3-its"; - msi-controller; - #msi-cells = <0x01>; - reg = <0x00 0xfd440000 0x00 0x20000>; - status = "okay"; - phandle = <0xbe>; - }; - }; - - usb@fd800000 { - compatible = "generic-ehci"; - reg = <0x00 0xfd800000 0x00 0x40000>; - interrupts = <0x00 0x82 0x04>; - clocks = <0x23 0xbd 0x23 0xbe 0x23 0xbc 0x2c>; - clock-names = "usbhost\0arbiter\0pclk\0utmi"; - phys = <0x2d>; - phy-names = "usb2-phy"; - status = "okay"; - }; - - usb@fd840000 { - compatible = "generic-ohci"; - reg = <0x00 0xfd840000 0x00 0x40000>; - interrupts = <0x00 0x83 0x04>; - clocks = <0x23 0xbd 0x23 0xbe 0x23 0xbc 0x2c>; - clock-names = "usbhost\0arbiter\0pclk\0utmi"; - phys = <0x2d>; - phy-names = "usb2-phy"; - status = "okay"; - }; - - usb@fd880000 { - compatible = "generic-ehci"; - reg = <0x00 0xfd880000 0x00 0x40000>; - interrupts = <0x00 0x85 0x04>; - clocks = <0x23 0xbf 0x23 0xc0 0x23 0xbc 0x2c>; - clock-names = "usbhost\0arbiter\0pclk\0utmi"; - phys = <0x2e>; - phy-names = "usb2-phy"; - status = "okay"; - }; - - usb@fd8c0000 { - compatible = "generic-ohci"; - reg = <0x00 0xfd8c0000 0x00 0x40000>; - interrupts = <0x00 0x86 0x04>; - clocks = <0x23 0xbf 0x23 0xc0 0x23 0xbc 0x2c>; - clock-names = "usbhost\0arbiter\0pclk\0utmi"; - phys = <0x2e>; - phy-names = "usb2-phy"; - status = "okay"; - }; - - syscon@fda00000 { - compatible = "rockchip,rk3568-xpcs\0syscon"; - reg = <0x00 0xfda00000 0x00 0x200000>; - status = "disabled"; - }; - - syscon@fdc20000 { - compatible = "rockchip,rk3568-pmugrf\0syscon\0simple-mfd"; - reg = <0x00 0xfdc20000 0x00 0x10000>; - phandle = <0x3c>; - - io-domains { - compatible = "rockchip,rk3568-pmu-io-voltage-domain"; - status = "okay"; - pmuio1-supply = <0x2f>; - pmuio2-supply = <0x2f>; - vccio1-supply = <0x30>; - vccio3-supply = <0x31>; - vccio4-supply = <0x32>; - vccio5-supply = <0x33>; - vccio6-supply = <0x32>; - vccio7-supply = <0x33>; - }; - - reboot-mode { - compatible = "syscon-reboot-mode"; - offset = <0x200>; - mode-bootloader = <0x5242c301>; - mode-charge = <0x5242c30b>; - mode-fastboot = <0x5242c309>; - mode-loader = <0x5242c301>; - mode-normal = <0x5242c300>; - mode-recovery = <0x5242c303>; - mode-ums = <0x5242c30c>; - mode-panic = <0x5242c307>; - mode-watchdog = <0x5242c308>; - }; - }; - - syscon@fdc50000 { - compatible = "rockchip,rk3568-pipegrf\0syscon"; - reg = <0x00 0xfdc50000 0x00 0x1000>; - phandle = <0x12a>; - }; - - syscon@fdc60000 { - compatible = "rockchip,rk3568-grf\0syscon\0simple-mfd"; - reg = <0x00 0xfdc60000 0x00 0x10000>; - phandle = <0x3b>; - - io-domains { - compatible = "rockchip,rk3568-io-voltage-domain"; - status = "disabled"; - }; - - lvds { - compatible = "rockchip,rk3568-lvds"; - phys = <0x34>; - phy-names = "phy"; - status = "disabled"; - - ports { - #address-cells = <0x01>; - #size-cells = <0x00>; - - port@0 { - reg = <0x00>; - #address-cells = <0x01>; - #size-cells = <0x00>; - - endpoint@1 { - reg = <0x01>; - remote-endpoint = <0x1b>; - status = "disabled"; - phandle = <0xa3>; - }; - - endpoint@2 { - reg = <0x02>; - remote-endpoint = <0x35>; - status = "disabled"; - phandle = <0xa5>; - }; - }; - }; - }; - - lvds1 { - compatible = "rockchip,rk3568-lvds"; - phys = <0x36>; - phy-names = "phy"; - status = "disabled"; - - ports { - #address-cells = <0x01>; - #size-cells = <0x00>; - - port@0 { - reg = <0x00>; - #address-cells = <0x01>; - #size-cells = <0x00>; - - endpoint@0 { - reg = <0x00>; - remote-endpoint = <0x37>; - phandle = <0xa4>; - }; - - endpoint@1 { - reg = <0x01>; - remote-endpoint = <0x38>; - phandle = <0xa7>; - }; - }; - }; - }; - - rgb { - compatible = "rockchip,rk3568-rgb"; - pinctrl-names = "default"; - pinctrl-0 = <0x39>; - status = "disabled"; - - ports { - #address-cells = <0x01>; - #size-cells = <0x00>; - - port@0 { - reg = <0x00>; - #address-cells = <0x01>; - #size-cells = <0x00>; - - endpoint@2 { - reg = <0x02>; - remote-endpoint = <0x1c>; - status = "disabled"; - phandle = <0xa6>; - }; - }; - }; - }; - }; - - syscon@fdc70000 { - compatible = "rockchip,pipe-phy-grf\0syscon"; - reg = <0x00 0xfdc70000 0x00 0x1000>; - phandle = <0x12b>; - }; - - syscon@fdc80000 { - compatible = "rockchip,pipe-phy-grf\0syscon"; - reg = <0x00 0xfdc80000 0x00 0x1000>; - phandle = <0x12c>; - }; - - syscon@fdc90000 { - compatible = "rockchip,pipe-phy-grf\0syscon"; - reg = <0x00 0xfdc90000 0x00 0x1000>; - phandle = <0x12d>; - }; - - syscon@fdca0000 { - compatible = "rockchip,rk3568-usb2phy-grf\0syscon"; - reg = <0x00 0xfdca0000 0x00 0x8000>; - phandle = <0x135>; - }; - - syscon@fdca8000 { - compatible = "rockchip,rk3568-usb2phy-grf\0syscon"; - reg = <0x00 0xfdca8000 0x00 0x8000>; - phandle = <0x137>; - }; - - syscon@fdcb0000 { - compatible = "rockchip,rk3568-edp-phy-grf\0syscon\0simple-mfd"; - reg = <0x00 0xfdcb0000 0x00 0x100>; - clocks = <0x23 0x192>; - - edp-phy { - compatible = "rockchip,rk3568-edp-phy"; - clocks = <0x3a 0x29>; - clock-names = "refclk"; - #phy-cells = <0x00>; - status = "disabled"; - phandle = <0xae>; - }; - }; - - syscon@fdcb8000 { - compatible = "rockchip,pcie30-phy-grf\0syscon"; - reg = <0x00 0xfdcb8000 0x00 0x10000>; - phandle = <0x138>; - }; - - sram@fdcc0000 { - compatible = "mmio-sram"; - reg = <0x00 0xfdcc0000 0x00 0xb000>; - #address-cells = <0x01>; - #size-cells = <0x01>; - ranges = <0x00 0x00 0xfdcc0000 0xb000>; - - rkvdec-sram@0 { - reg = <0x00 0xb000>; - phandle = <0x84>; - }; - }; - - clock-controller@fdd00000 { - compatible = "rockchip,rk3568-pmucru"; - reg = <0x00 0xfdd00000 0x00 0x1000>; - rockchip,grf = <0x3b>; - rockchip,pmugrf = <0x3c>; - #clock-cells = <0x01>; - #reset-cells = <0x01>; - assigned-clocks = <0x3a 0x32>; - assigned-clock-parents = <0x3a 0x05>; - phandle = <0x3a>; - }; - - clock-controller@fdd20000 { - compatible = "rockchip,rk3568-cru"; - reg = <0x00 0xfdd20000 0x00 0x1000>; - rockchip,grf = <0x3b>; - #clock-cells = <0x01>; - #reset-cells = <0x01>; - assigned-clocks = <0x3a 0x05 0x23 0x106 0x23 0x10b 0x3a 0x01 0x3a 0x2b 0x23 0x03 0x23 0x19b 0x23 0x09 0x23 0x19c 0x23 0x19d 0x23 0x1a1 0x23 0x19e 0x23 0x19f 0x23 0x1a0 0x23 0x04 0x23 0x10d 0x23 0x10e 0x23 0x173 0x23 0x174 0x23 0x175 0x23 0x176 0x23 0xc9 0x23 0xca 0x23 0x06 0x23 0x7e 0x23 0x7f 0x23 0x3d 0x23 0x41 0x23 0x45 0x23 0x49 0x23 0x4d 0x23 0x4d 0x23 0x55 0x23 0x51 0x23 0x5d 0x23 0xdd>; - assigned-clock-rates = <0x8000 0x11e1a300 0x11e1a300 0xbebc200 0x5f5e100 0x3b9aca00 0x1dcd6500 0x13d92d40 0xee6b280 0x7735940 0x5f5e100 0x3b9aca0 0x2faf080 0x17d7840 0x46cf7100 0x8f0d180 0x5f5e100 0x1dcd6500 0x17d78400 0x8f0d180 0x5f5e100 0x11e1a300 0x8f0d180 0x47868c00 0x17d78400 0x5f5e100 0x46cf7100 0x46cf7100 0x46cf7100 0x46cf7100 0x46cf7100 0x46cf7100 0x46cf7100 0x46cf7100 0x46cf7100 0x1dcd6500>; - assigned-clock-parents = <0x3a 0x08 0x23 0x04 0x23 0x04>; - phandle = <0x23>; - }; - - i2c@fdd40000 { - compatible = "rockchip,rk3399-i2c"; - reg = <0x00 0xfdd40000 0x00 0x1000>; - clocks = <0x3a 0x07 0x3a 0x2d>; - clock-names = "i2c\0pclk"; - interrupts = <0x00 0x2e 0x04>; - pinctrl-names = "default"; - pinctrl-0 = <0x3d>; - #address-cells = <0x01>; - #size-cells = <0x00>; - status = "okay"; - - tcs4525@1c { - compatible = "tcs,tcs452x"; - reg = <0x1c>; - vin-supply = <0x3e>; - regulator-compatible = "fan53555-reg"; - regulator-name = "vdd_cpu"; - regulator-min-microvolt = <0xadf34>; - regulator-max-microvolt = <0x1535b0>; - regulator-ramp-delay = <0x8fc>; - fcs,suspend-voltage-selector = <0x01>; - regulator-boot-on; - regulator-always-on; - phandle = <0x05>; - - regulator-state-mem { - regulator-off-in-suspend; - }; - }; - - pmic@20 { - compatible = "rockchip,rk809"; - reg = <0x20>; - interrupt-parent = <0x3f>; - interrupts = <0x03 0x08>; - pinctrl-names = "default\0pmic-sleep\0pmic-power-off\0pmic-reset"; - pinctrl-0 = <0x40>; - pinctrl-1 = <0x41 0x42>; - pinctrl-2 = <0x43 0x44>; - pinctrl-3 = <0x43 0x45>; - rockchip,system-power-controller; - wakeup-source; - #clock-cells = <0x01>; - clock-output-names = "rk808-clkout1\0rk808-clkout2"; - pmic-reset-func = <0x00>; - not-save-power-en = <0x01>; - vcc1-supply = <0x46>; - vcc2-supply = <0x46>; - vcc3-supply = <0x46>; - vcc4-supply = <0x46>; - vcc5-supply = <0x46>; - vcc6-supply = <0x46>; - vcc7-supply = <0x46>; - vcc8-supply = <0x46>; - vcc9-supply = <0x46>; - phandle = <0x152>; - - pwrkey { - status = "okay"; - }; - - pinctrl_rk8xx { - gpio-controller; - #gpio-cells = <0x02>; - - rk817_slppin_null { - pins = "gpio_slp"; - function = "pin_fun0"; - }; - - rk817_slppin_slp { - pins = "gpio_slp"; - function = "pin_fun1"; - phandle = <0x42>; - }; - - rk817_slppin_pwrdn { - pins = "gpio_slp"; - function = "pin_fun2"; - phandle = <0x44>; - }; - - rk817_slppin_rst { - pins = "gpio_slp"; - function = "pin_fun3"; - phandle = <0x45>; - }; - }; - - regulators { - - DCDC_REG1 { - regulator-always-on; - regulator-boot-on; - regulator-min-microvolt = <0x7a120>; - regulator-max-microvolt = <0x149970>; - regulator-init-microvolt = <0xdbba0>; - regulator-ramp-delay = <0x1771>; - regulator-initial-mode = <0x02>; - regulator-name = "vdd_logic"; - phandle = <0x75>; - - regulator-state-mem { - regulator-off-in-suspend; - }; - }; - - DCDC_REG2 { - regulator-always-on; - regulator-boot-on; - regulator-min-microvolt = <0x7a120>; - regulator-max-microvolt = <0x149970>; - regulator-init-microvolt = <0xdbba0>; - regulator-ramp-delay = <0x1771>; - regulator-initial-mode = <0x02>; - regulator-name = "vdd_gpu"; - phandle = <0x77>; - - regulator-state-mem { - regulator-off-in-suspend; - }; - }; - - DCDC_REG3 { - regulator-always-on; - regulator-boot-on; - regulator-initial-mode = <0x02>; - regulator-name = "vcc_ddr"; - - regulator-state-mem { - regulator-on-in-suspend; - }; - }; - - DCDC_REG4 { - regulator-always-on; - regulator-boot-on; - regulator-min-microvolt = <0x7a120>; - regulator-max-microvolt = <0x149970>; - regulator-init-microvolt = <0xdbba0>; - regulator-ramp-delay = <0x1771>; - regulator-initial-mode = <0x02>; - regulator-name = "vdd_npu"; - phandle = <0x71>; - - regulator-state-mem { - regulator-off-in-suspend; - }; - }; - - LDO_REG1 { - regulator-boot-on; - regulator-always-on; - regulator-min-microvolt = <0xdbba0>; - regulator-max-microvolt = <0xdbba0>; - regulator-name = "vdda0v9_image"; - - regulator-state-mem { - regulator-off-in-suspend; - }; - }; - - LDO_REG2 { - regulator-always-on; - regulator-boot-on; - regulator-min-microvolt = <0xdbba0>; - regulator-max-microvolt = <0xdbba0>; - regulator-name = "vdda_0v9"; - - regulator-state-mem { - regulator-off-in-suspend; - }; - }; - - LDO_REG3 { - regulator-always-on; - regulator-boot-on; - regulator-min-microvolt = <0xdbba0>; - regulator-max-microvolt = <0xdbba0>; - regulator-name = "vdda0v9_pmu"; - - regulator-state-mem { - regulator-on-in-suspend; - regulator-suspend-microvolt = <0xdbba0>; - }; - }; - - LDO_REG4 { - regulator-always-on; - regulator-boot-on; - regulator-min-microvolt = <0x325aa0>; - regulator-max-microvolt = <0x325aa0>; - regulator-name = "vccio_acodec"; - phandle = <0x30>; - - regulator-state-mem { - regulator-off-in-suspend; - }; - }; - - LDO_REG5 { - regulator-always-on; - regulator-boot-on; - regulator-min-microvolt = <0x1b7740>; - regulator-max-microvolt = <0x325aa0>; - regulator-name = "vccio_sd"; - phandle = <0x31>; - - regulator-state-mem { - regulator-off-in-suspend; - }; - }; - - LDO_REG6 { - regulator-always-on; - regulator-boot-on; - regulator-min-microvolt = <0x325aa0>; - regulator-max-microvolt = <0x325aa0>; - regulator-name = "vcc3v3_pmu"; - phandle = <0x2f>; - - regulator-state-mem { - regulator-on-in-suspend; - regulator-suspend-microvolt = <0x325aa0>; - }; - }; - - LDO_REG7 { - regulator-always-on; - regulator-boot-on; - regulator-min-microvolt = <0x1b7740>; - regulator-max-microvolt = <0x1b7740>; - regulator-name = "vcca_1v8"; - phandle = <0x129>; - - regulator-state-mem { - regulator-off-in-suspend; - }; - }; - - LDO_REG8 { - regulator-always-on; - regulator-boot-on; - regulator-min-microvolt = <0x1b7740>; - regulator-max-microvolt = <0x1b7740>; - regulator-name = "vcca1v8_pmu"; - - regulator-state-mem { - regulator-on-in-suspend; - regulator-suspend-microvolt = <0x1b7740>; - }; - }; - - LDO_REG9 { - regulator-always-on; - regulator-boot-on; - regulator-min-microvolt = <0x1b7740>; - regulator-max-microvolt = <0x1b7740>; - regulator-name = "vcca1v8_image"; - - regulator-state-mem { - regulator-off-in-suspend; - }; - }; - - DCDC_REG5 { - regulator-always-on; - regulator-boot-on; - regulator-min-microvolt = <0x1b7740>; - regulator-max-microvolt = <0x1b7740>; - regulator-name = "vcc_1v8"; - phandle = <0x32>; - - regulator-state-mem { - regulator-off-in-suspend; - }; - }; - - SWITCH_REG1 { - regulator-always-on; - regulator-boot-on; - regulator-name = "vcc_3v3"; - phandle = <0x33>; - - regulator-state-mem { - regulator-off-in-suspend; - }; - }; - - SWITCH_REG2 { - regulator-always-on; - regulator-boot-on; - regulator-name = "vcc3v3_sd"; - phandle = <0xcf>; - - regulator-state-mem { - regulator-off-in-suspend; - }; - }; - }; - - codec { - #sound-dai-cells = <0x00>; - compatible = "rockchip,rk809-codec\0rockchip,rk817-codec"; - clocks = <0x23 0x1a3>; - clock-names = "mclk"; - assigned-clocks = <0x23 0x1a3 0x23 0x1a6>; - assigned-clock-rates = <0xbb8000>; - assigned-clock-parents = <0x23 0x48 0x23 0x48>; - pinctrl-names = "default\0spk_gpio"; - pinctrl-0 = <0x47>; - pinctrl-1 = <0x48>; - hp-volume = <0x03>; - spk-volume = <0x03>; - mic-in-differential; - board-spk-from-hp; - capture-volume = <0x00>; - io-channels = <0x49 0x07>; - hp-det-adc-value = <0x3e8>; - status = "okay"; - hp-adc-drift-scope = <0x64>; - phandle = <0x14b>; - }; - - rtc { - status = "disabled"; - }; - }; - - fusb302@22 { - compatible = "fcs,fusb302"; - reg = <0x22>; - interrupt-parent = <0x3f>; - fcs,int_n = <0x3f 0x11 0x08>; - fusb340-switch-gpios = <0x4a 0x12 0x00>; - pinctrl-names = "default"; - pinctrl-0 = <0x4b>; - vbus-supply = <0x4c>; - status = "okay"; - - ports { - #address-cells = <0x01>; - #size-cells = <0x00>; - - port@0 { - reg = <0x00>; - - endpoint@0 { - remote-endpoint = <0x4d>; - phandle = <0x2a>; - }; - }; - }; - - connector { - compatible = "usb-c-connector"; - label = "USB-C"; - data-role = "dual"; - power-role = "dual"; - try-power-role = "sink"; - op-sink-microwatt = <0xf4240>; - sink-pdos = <0x40190fa>; - source-pdos = <0x4019096>; - }; - }; - }; - - serial@fdd50000 { - compatible = "rockchip,rk3568-uart\0snps,dw-apb-uart"; - reg = <0x00 0xfdd50000 0x00 0x100>; - interrupts = <0x00 0x74 0x04>; - clocks = <0x3a 0x0b 0x3a 0x2c>; - clock-names = "baudclk\0apb_pclk"; - reg-shift = <0x02>; - reg-io-width = <0x04>; - dmas = <0x4e 0x00 0x4e 0x01>; - pinctrl-names = "default"; - pinctrl-0 = <0x4f>; - status = "disabled"; - }; - - pwm@fdd70000 { - compatible = "rockchip,rk3568-pwm\0rockchip,rk3328-pwm"; - reg = <0x00 0xfdd70000 0x00 0x10>; - interrupts = <0x00 0x52 0x04>; - #pwm-cells = <0x03>; - pinctrl-names = "active"; - pinctrl-0 = <0x50>; - clocks = <0x3a 0x0d 0x3a 0x30>; - clock-names = "pwm\0pclk"; - status = "disabled"; - }; - - pwm@fdd70010 { - compatible = "rockchip,rk3568-pwm\0rockchip,rk3328-pwm"; - reg = <0x00 0xfdd70010 0x00 0x10>; - interrupts = <0x00 0x52 0x04>; - #pwm-cells = <0x03>; - pinctrl-names = "active"; - pinctrl-0 = <0x51>; - clocks = <0x3a 0x0d 0x3a 0x30>; - clock-names = "pwm\0pclk"; - status = "disabled"; - }; - - pwm@fdd70020 { - compatible = "rockchip,rk3568-pwm\0rockchip,rk3328-pwm"; - reg = <0x00 0xfdd70020 0x00 0x10>; - interrupts = <0x00 0x52 0x04>; - #pwm-cells = <0x03>; - pinctrl-names = "active"; - pinctrl-0 = <0x52>; - clocks = <0x3a 0x0d 0x3a 0x30>; - clock-names = "pwm\0pclk"; - status = "disabled"; - }; - - pwm@fdd70030 { - compatible = "rockchip,rk3568-pwm\0rockchip,rk3328-pwm"; - reg = <0x00 0xfdd70030 0x00 0x10>; - interrupts = <0x00 0x52 0x04 0x00 0x56 0x04>; - #pwm-cells = <0x03>; - pinctrl-names = "active"; - pinctrl-0 = <0x53>; - clocks = <0x3a 0x0d 0x3a 0x30>; - clock-names = "pwm\0pclk"; - status = "disabled"; - }; - - power-management@fdd90000 { - compatible = "rockchip,rk3568-pmu\0syscon\0simple-mfd"; - reg = <0x00 0xfdd90000 0x00 0x1000>; - - power-controller { - compatible = "rockchip,rk3568-power-controller"; - #power-domain-cells = <0x01>; - #address-cells = <0x01>; - #size-cells = <0x00>; - status = "okay"; - phandle = <0x25>; - - pd_npu@6 { - reg = <0x06>; - clocks = <0x23 0x27 0x23 0x25 0x23 0x26>; - pm_qos = <0x54>; - }; - - pd_gpu@7 { - reg = <0x07>; - clocks = <0x23 0x19 0x23 0x1a>; - pm_qos = <0x55>; - }; - - pd_vi@8 { - reg = <0x08>; - clocks = <0x23 0xcc 0x23 0xcd>; - pm_qos = <0x56 0x57 0x58>; - }; - - pd_vo@9 { - reg = <0x09>; - clocks = <0x23 0xda 0x23 0xdb 0x23 0xdc>; - pm_qos = <0x59 0x5a 0x5b>; - }; - - pd_rga@10 { - reg = <0x0a>; - clocks = <0x23 0xf1 0x23 0xf2>; - pm_qos = <0x5c 0x5d 0x5e 0x5f 0x60 0x61>; - }; - - pd_vpu@11 { - reg = <0x0b>; - clocks = <0x23 0xed>; - pm_qos = <0x62>; - }; - - pd_rkvdec@13 { - clocks = <0x23 0x107>; - reg = <0x0d>; - pm_qos = <0x63>; - }; - - pd_rkvenc@14 { - reg = <0x0e>; - clocks = <0x23 0x102>; - pm_qos = <0x64 0x65 0x66>; - }; - - pd_pipe@15 { - reg = <0x0f>; - clocks = <0x23 0x7f>; - pm_qos = <0x67 0x68 0x69 0x6a 0x6b 0x6c 0x6d 0x6e>; - }; - }; - }; - - pvtm@fde00000 { - compatible = "rockchip,rk3568-core-pvtm"; - reg = <0x00 0xfde00000 0x00 0x100>; - #address-cells = <0x01>; - #size-cells = <0x00>; - - pvtm@0 { - reg = <0x00>; - clocks = <0x23 0x13 0x23 0x1c2>; - clock-names = "clk\0pclk"; - resets = <0x23 0x1a 0x23 0x19>; - reset-names = "rts\0rst-p"; - thermal-zone = "soc-thermal"; - }; - }; - - npu@fde40000 { - compatible = "rockchip,rk3568-rknpu\0rockchip,rknpu"; - reg = <0x00 0xfde40000 0x00 0x10000>; - interrupts = <0x00 0x97 0x04>; - clocks = <0x02 0x02 0x23 0x23 0x23 0x28 0x23 0x29>; - clock-names = "scmi_clk\0clk\0aclk\0hclk"; - assigned-clocks = <0x23 0x23>; - assigned-clock-rates = <0x23c34600>; - resets = <0x23 0x2b 0x23 0x2c>; - reset-names = "srst_a\0srst_h"; - power-domains = <0x25 0x06>; - operating-points-v2 = <0x6f>; - iommus = <0x70>; - status = "okay"; - rknpu-supply = <0x71>; - }; - - npu-opp-table { - compatible = "operating-points-v2"; - mbist-vmin = <0xc96a8 0xdbba0 0xe7ef0>; - nvmem-cells = <0x72 0x07 0x08 0x73 0x0a 0x0b>; - nvmem-cell-names = "leakage\0pvtm\0mbist-vmin\0opp-info\0specification_serial_number\0remark_spec_serial_number"; - rockchip,supported-hw; - rockchip,max-volt = <0xf4240>; - rockchip,temp-hysteresis = <0x1388>; - rockchip,low-temp = <0x00>; - rockchip,low-temp-adjust-volt = <0x00 0x3e8 0xc350>; - rockchip,pvtm-voltage-sel = <0x00 0x14820 0x00 0x14821 0x153d8 0x01 0x153d9 0x16378 0x02 0x16379 0x186a0 0x03>; - rockchip,pvtm-ch = <0x00 0x05>; - phandle = <0x6f>; - - opp-200000000 { - opp-supported-hw = <0xfb 0xffff>; - opp-hz = <0x00 0xbebc200>; - opp-microvolt = <0xcf850 0xcf850 0xf4240>; - }; - - opp-300000000 { - opp-supported-hw = <0xfb 0xffff>; - opp-hz = <0x00 0x11b3dc40>; - opp-microvolt = <0xcf850 0xcf850 0xf4240>; - }; - - opp-400000000 { - opp-supported-hw = <0xfb 0xffff>; - opp-hz = <0x00 0x17d78400>; - opp-microvolt = <0xcf850 0xcf850 0xf4240>; - }; - - opp-600000000 { - opp-supported-hw = <0xfb 0xffff>; - opp-hz = <0x00 0x23c34600>; - opp-microvolt = <0xcf850 0xcf850 0xf4240>; - }; - - opp-700000000 { - opp-supported-hw = <0xfb 0xffff>; - opp-hz = <0x00 0x29b92700>; - opp-microvolt = <0xd59f8 0xd59f8 0xf4240>; - opp-microvolt-L0 = <0xd59f8 0xd59f8 0xf4240>; - opp-microvolt-L1 = <0xcf850 0xcf850 0xf4240>; - opp-microvolt-L2 = <0xcf850 0xcf850 0xf4240>; - opp-microvolt-L3 = <0xcf850 0xcf850 0xf4240>; - }; - - opp-800000000 { - opp-supported-hw = <0xfb 0xffff>; - opp-hz = <0x00 0x2faf0800>; - opp-microvolt = <0xe1d48 0xe1d48 0xf4240>; - opp-microvolt-L0 = <0xe1d48 0xe1d48 0xf4240>; - opp-microvolt-L1 = <0xdbba0 0xdbba0 0xf4240>; - opp-microvolt-L2 = <0xd59f8 0xd59f8 0xf4240>; - opp-microvolt-L3 = <0xd59f8 0xd59f8 0xf4240>; - }; - - opp-900000000 { - opp-supported-hw = <0xf9 0xffff>; - opp-hz = <0x00 0x35a4e900>; - opp-microvolt = <0xee098 0xee098 0xf4240>; - opp-microvolt-L0 = <0xee098 0xee098 0xf4240>; - opp-microvolt-L1 = <0xe7ef0 0xe7ef0 0xf4240>; - opp-microvolt-L2 = <0xe1d48 0xe1d48 0xf4240>; - opp-microvolt-L3 = <0xdbba0 0xdbba0 0xf4240>; - }; - - opp-1000000000 { - opp-supported-hw = <0xf9 0xffff>; - opp-hz = <0x00 0x3b9aca00>; - opp-microvolt = <0xf4240 0xf4240 0xf4240>; - opp-microvolt-L0 = <0xf4240 0xf4240 0xf4240>; - opp-microvolt-L1 = <0xee098 0xee098 0xf4240>; - opp-microvolt-L2 = <0xe7ef0 0xe7ef0 0xf4240>; - opp-microvolt-L3 = <0xe1d48 0xe1d48 0xf4240>; - status = "disabled"; - }; - - opp-j-600000000 { - opp-supported-hw = <0x04 0xffff>; - opp-hz = <0x00 0x23c34600>; - opp-microvolt = <0xdbba0 0xdbba0 0xf4240>; - }; - - opp-m-900000000 { - opp-supported-hw = <0x02 0xffff>; - opp-hz = <0x00 0x35a4e900>; - opp-microvolt = <0xe1d48 0xe1d48 0xf4240>; - }; - }; - - bus-npu { - compatible = "rockchip,rk3568-bus"; - rockchip,busfreq-policy = "clkfreq"; - clocks = <0x02 0x02>; - clock-names = "bus"; - operating-points-v2 = <0x74>; - status = "okay"; - bus-supply = <0x75>; - pvtm-supply = <0x05>; - }; - - bus-npu-opp-table { - compatible = "operating-points-v2"; - opp-shared; - nvmem-cells = <0x07>; - nvmem-cell-names = "pvtm"; - rockchip,pvtm-voltage-sel = <0x00 0x14820 0x00 0x14821 0x16378 0x01 0x16379 0x186a0 0x02>; - rockchip,pvtm-ch = <0x00 0x05>; - phandle = <0x74>; - - opp-700000000 { - opp-hz = <0x00 0x29b92700>; - opp-microvolt = <0xdbba0>; - opp-microvolt-L0 = <0xdbba0>; - opp-microvolt-L1 = <0xd59f8>; - opp-microvolt-L2 = <0xd59f8>; - }; - - opp-900000000 { - opp-hz = <0x00 0x35a4e900>; - opp-microvolt = <0xdbba0>; - }; - - opp-1000000000 { - opp-hz = <0x00 0x3b9aca00>; - opp-microvolt = <0xe7ef0>; - opp-microvolt-L0 = <0xe7ef0>; - opp-microvolt-L1 = <0xe1d48>; - opp-microvolt-L2 = <0xdbba0>; - }; - }; - - iommu@fde4b000 { - compatible = "rockchip,iommu-v2"; - reg = <0x00 0xfde4b000 0x00 0x40>; - interrupts = <0x00 0x97 0x04>; - interrupt-names = "rknpu_mmu"; - clocks = <0x23 0x28 0x23 0x29>; - clock-names = "aclk\0iface"; - power-domains = <0x25 0x06>; - #iommu-cells = <0x00>; - status = "okay"; - phandle = <0x70>; - }; - - gpu@fde60000 { - compatible = "arm,mali-bifrost"; - reg = <0x00 0xfde60000 0x00 0x4000>; - interrupts = <0x00 0x27 0x04 0x00 0x29 0x04 0x00 0x28 0x04>; - interrupt-names = "GPU\0MMU\0JOB"; - upthreshold = <0x28>; - downdifferential = <0x0a>; - clocks = <0x02 0x01 0x23 0x1b>; - clock-names = "clk_mali\0clk_gpu"; - power-domains = <0x25 0x07>; - #cooling-cells = <0x02>; - operating-points-v2 = <0x76>; - status = "okay"; - mali-supply = <0x77>; - phandle = <0x21>; - - power-model { - compatible = "simple-power-model"; - leakage-range = <0x05 0x0f>; - ls = <0xffffa23e 0x5927 0x00>; - static-coefficient = <0x186a0>; - dynamic-coefficient = <0x3b9>; - ts = <0xfffe56a6 0xf87a 0xfffffab5 0x14>; - thermal-zone = "gpu-thermal"; - }; - }; - - opp-table2 { - compatible = "operating-points-v2"; - mbist-vmin = <0xc96a8 0xdbba0 0xe7ef0>; - nvmem-cells = <0x78 0x07 0x08 0x79 0x0a 0x0b>; - nvmem-cell-names = "leakage\0pvtm\0mbist-vmin\0opp-info\0specification_serial_number\0remark_spec_serial_number"; - rockchip,supported-hw; - rockchip,max-volt = <0xf4240>; - rockchip,temp-hysteresis = <0x1388>; - rockchip,low-temp = <0x00>; - rockchip,low-temp-adjust-volt = <0x00 0x320 0xc350>; - rockchip,pvtm-voltage-sel = <0x00 0x14820 0x00 0x14821 0x153d8 0x01 0x153d9 0x16378 0x02 0x16379 0x186a0 0x03>; - rockchip,pvtm-ch = <0x00 0x05>; - phandle = <0x76>; - - opp-200000000 { - opp-supported-hw = <0xfb 0xffff>; - opp-hz = <0x00 0xbebc200>; - opp-microvolt = <0xcf850 0xcf850 0xf4240>; - }; - - opp-300000000 { - opp-supported-hw = <0xfb 0xffff>; - opp-hz = <0x00 0x11e1a300>; - opp-microvolt = <0xcf850 0xcf850 0xf4240>; - }; - - opp-400000000 { - opp-supported-hw = <0xfb 0xffff>; - opp-hz = <0x00 0x17d78400>; - opp-microvolt = <0xcf850 0xcf850 0xf4240>; - }; - - opp-600000000 { - opp-supported-hw = <0xfb 0xffff>; - opp-hz = <0x00 0x23c34600>; - opp-microvolt = <0xdbba0 0xdbba0 0xf4240>; - opp-microvolt-L0 = <0xdbba0 0xdbba0 0xf4240>; - opp-microvolt-L1 = <0xd59f8 0xd59f8 0xf4240>; - opp-microvolt-L2 = <0xcf850 0xcf850 0xf4240>; - opp-microvolt-L3 = <0xcf850 0xcf850 0xf4240>; - }; - - opp-700000000 { - opp-supported-hw = <0xfb 0xffff>; - opp-hz = <0x00 0x29b92700>; - opp-microvolt = <0xe7ef0 0xe7ef0 0xf4240>; - opp-microvolt-L0 = <0xe7ef0 0xe7ef0 0xf4240>; - opp-microvolt-L1 = <0xe1d48 0xe1d48 0xf4240>; - opp-microvolt-L2 = <0xdbba0 0xdbba0 0xf4240>; - opp-microvolt-L3 = <0xd59f8 0xd59f8 0xf4240>; - }; - - opp-800000000 { - opp-supported-hw = <0xf9 0xffff>; - opp-hz = <0x00 0x2faf0800>; - opp-microvolt = <0xf4240 0xf4240 0xf4240>; - opp-microvolt-L0 = <0xf4240 0xf4240 0xf4240>; - opp-microvolt-L1 = <0xee098 0xee098 0xf4240>; - opp-microvolt-L2 = <0xe7ef0 0xe7ef0 0xf4240>; - opp-microvolt-L3 = <0xe1d48 0xe1d48 0xf4240>; - }; - - opp-j-600000000 { - opp-supported-hw = <0x04 0xffff>; - opp-hz = <0x00 0x23c34600>; - opp-microvolt = <0xdbba0 0xdbba0 0xf4240>; - }; - - opp-m-800000000 { - opp-supported-hw = <0x02 0xffff>; - opp-hz = <0x00 0x2faf0800>; - opp-microvolt = <0xe7ef0 0xe7ef0 0xf4240>; - }; - }; - - pvtm@fde80000 { - compatible = "rockchip,rk3568-gpu-pvtm"; - reg = <0x00 0xfde80000 0x00 0x100>; - #address-cells = <0x01>; - #size-cells = <0x00>; - - pvtm@1 { - reg = <0x01>; - clocks = <0x23 0x1e 0x23 0x1d>; - clock-names = "clk\0pclk"; - resets = <0x23 0x24 0x23 0x23>; - reset-names = "rts\0rst-p"; - thermal-zone = "gpu-thermal"; - }; - }; - - pvtm@fde90000 { - compatible = "rockchip,rk3568-npu-pvtm"; - reg = <0x00 0xfde90000 0x00 0x100>; - #address-cells = <0x01>; - #size-cells = <0x00>; - - pvtm@2 { - reg = <0x02>; - clocks = <0x23 0x2b 0x23 0x2a 0x23 0x25>; - clock-names = "clk\0pclk\0hclk"; - resets = <0x23 0x2e 0x23 0x2d>; - reset-names = "rts\0rst-p"; - thermal-zone = "soc-thermal"; - }; - }; - - vdpu@fdea0400 { - compatible = "rockchip,vpu-decoder-v2"; - reg = <0x00 0xfdea0400 0x00 0x400>; - interrupts = <0x00 0x8b 0x04>; - interrupt-names = "irq_dec"; - clocks = <0x23 0xee 0x23 0xef>; - clock-names = "aclk_vcodec\0hclk_vcodec"; - resets = <0x23 0x11a 0x23 0x11b>; - reset-names = "video_a\0video_h"; - iommus = <0x7a>; - power-domains = <0x25 0x0b>; - rockchip,srv = <0x7b>; - rockchip,taskqueue-node = <0x00>; - rockchip,resetgroup-node = <0x00>; - status = "okay"; - }; - - iommu@fdea0800 { - compatible = "rockchip,iommu-v2"; - reg = <0x00 0xfdea0800 0x00 0x40>; - interrupts = <0x00 0x8a 0x04>; - interrupt-names = "vdpu_mmu"; - clock-names = "aclk\0iface"; - clocks = <0x23 0xee 0x23 0xef>; - power-domains = <0x25 0x0b>; - #iommu-cells = <0x00>; - status = "okay"; - phandle = <0x7a>; - }; - - rk_rga@fdeb0000 { - compatible = "rockchip,rga2"; - reg = <0x00 0xfdeb0000 0x00 0x1000>; - interrupts = <0x00 0x5a 0x04>; - clocks = <0x23 0xf3 0x23 0xf4 0x23 0xf5>; - clock-names = "aclk_rga\0hclk_rga\0clk_rga"; - power-domains = <0x25 0x0a>; - status = "okay"; - }; - - ebc@fdec0000 { - compatible = "rockchip,rk3568-ebc-tcon"; - reg = <0x00 0xfdec0000 0x00 0x5000>; - interrupts = <0x00 0x11 0x04>; - clocks = <0x23 0xf9 0x23 0xfa>; - clock-names = "hclk\0dclk"; - power-domains = <0x25 0x0a>; - rockchip,grf = <0x3b>; - pinctrl-names = "default"; - pinctrl-0 = <0x7c>; - status = "disabled"; - }; - - jpegd@fded0000 { - compatible = "rockchip,rkv-jpeg-decoder-v1"; - reg = <0x00 0xfded0000 0x00 0x400>; - interrupts = <0x00 0x3e 0x04>; - clocks = <0x23 0xfb 0x23 0xfc>; - clock-names = "aclk_vcodec\0hclk_vcodec"; - rockchip,disable-auto-freq; - resets = <0x23 0x12c 0x23 0x12d>; - reset-names = "video_a\0video_h"; - iommus = <0x7d>; - rockchip,srv = <0x7b>; - rockchip,taskqueue-node = <0x01>; - rockchip,resetgroup-node = <0x01>; - power-domains = <0x25 0x0a>; - status = "okay"; - }; - - iommu@fded0480 { - compatible = "rockchip,iommu-v2"; - reg = <0x00 0xfded0480 0x00 0x40>; - interrupts = <0x00 0x3d 0x04>; - interrupt-names = "jpegd_mmu"; - clock-names = "aclk\0iface"; - clocks = <0x23 0xfb 0x23 0xfc>; - power-domains = <0x25 0x0a>; - #iommu-cells = <0x00>; - status = "okay"; - phandle = <0x7d>; - }; - - vepu@fdee0000 { - compatible = "rockchip,vpu-encoder-v2"; - reg = <0x00 0xfdee0000 0x00 0x400>; - interrupts = <0x00 0x40 0x04>; - clocks = <0x23 0xfd 0x23 0xfe>; - clock-names = "aclk_vcodec\0hclk_vcodec"; - rockchip,disable-auto-freq; - resets = <0x23 0x12e 0x23 0x12f>; - reset-names = "video_a\0video_h"; - iommus = <0x7e>; - rockchip,srv = <0x7b>; - rockchip,taskqueue-node = <0x02>; - rockchip,resetgroup-node = <0x02>; - power-domains = <0x25 0x0a>; - status = "okay"; - }; - - iommu@fdee0800 { - compatible = "rockchip,iommu-v2"; - reg = <0x00 0xfdee0800 0x00 0x40>; - interrupts = <0x00 0x3f 0x04>; - interrupt-names = "vepu_mmu"; - clock-names = "aclk\0iface"; - clocks = <0x23 0xfd 0x23 0xfe>; - power-domains = <0x25 0x0a>; - #iommu-cells = <0x00>; - status = "okay"; - phandle = <0x7e>; - }; - - iep@fdef0000 { - compatible = "rockchip,iep-v2"; - reg = <0x00 0xfdef0000 0x00 0x500>; - interrupts = <0x00 0x38 0x04>; - clocks = <0x23 0xf6 0x23 0xf7 0x23 0xf8>; - clock-names = "aclk\0hclk\0sclk"; - resets = <0x23 0x127 0x23 0x128 0x23 0x129>; - reset-names = "rst_a\0rst_h\0rst_s"; - power-domains = <0x25 0x0a>; - rockchip,srv = <0x7b>; - rockchip,taskqueue-node = <0x05>; - rockchip,resetgroup-node = <0x05>; - iommus = <0x7f>; - status = "okay"; - }; - - iommu@fdef0800 { - compatible = "rockchip,iommu-v2"; - reg = <0x00 0xfdef0800 0x00 0x100>; - interrupts = <0x00 0x38 0x04>; - interrupt-names = "iep_mmu"; - clocks = <0x23 0xf6 0x23 0xf7>; - clock-names = "aclk\0iface"; - #iommu-cells = <0x00>; - power-domains = <0x25 0x0a>; - status = "okay"; - phandle = <0x7f>; - }; - - eink@fdf00000 { - compatible = "rockchip,rk3568-eink-tcon"; - reg = <0x00 0xfdf00000 0x00 0x74>; - interrupts = <0x00 0xb2 0x04>; - clocks = <0x23 0xff 0x23 0x100>; - clock-names = "pclk\0hclk"; - status = "disabled"; - }; - - rkvenc@fdf40000 { - compatible = "rockchip,rkv-encoder-v1"; - reg = <0x00 0xfdf40000 0x00 0x400>; - interrupts = <0x00 0x8c 0x04>; - interrupt-names = "irq_enc"; - clocks = <0x23 0x103 0x23 0x104 0x23 0x105>; - clock-names = "aclk_vcodec\0hclk_vcodec\0clk_core"; - rockchip,normal-rates = <0x11b3dc40 0x00 0x11b3dc40>; - resets = <0x23 0x133 0x23 0x134 0x23 0x135>; - reset-names = "video_a\0video_h\0video_core"; - assigned-clocks = <0x23 0x103 0x23 0x105>; - assigned-clock-rates = <0x11b3dc40 0x11b3dc40>; - iommus = <0x80>; - node-name = "rkvenc"; - rockchip,srv = <0x7b>; - rockchip,taskqueue-node = <0x03>; - rockchip,resetgroup-node = <0x03>; - power-domains = <0x25 0x0e>; - operating-points-v2 = <0x81>; - status = "okay"; - venc-supply = <0x75>; - }; - - rkvenc-opp-table { - compatible = "operating-points-v2"; - nvmem-cells = <0x07>; - nvmem-cell-names = "pvtm"; - rockchip,pvtm-voltage-sel = <0x00 0x14820 0x00 0x14821 0x16378 0x01 0x16379 0x186a0 0x02>; - rockchip,pvtm-ch = <0x00 0x05>; - phandle = <0x81>; - - opp-297000000 { - opp-hz = <0x00 0x11b3dc40>; - opp-microvolt = <0xdbba0>; - opp-microvolt-L0 = <0xdbba0>; - opp-microvolt-L1 = <0xd59f8>; - opp-microvolt-L2 = <0xd59f8>; - }; - - opp-400000000 { - opp-hz = <0x00 0x17d78400>; - opp-microvolt = <0xe7ef0>; - opp-microvolt-L0 = <0xe7ef0>; - opp-microvolt-L1 = <0xe1d48>; - opp-microvolt-L2 = <0xdbba0>; - }; - }; - - iommu@fdf40f00 { - compatible = "rockchip,iommu-v2"; - reg = <0x00 0xfdf40f00 0x00 0x40 0x00 0xfdf40f40 0x00 0x40>; - interrupts = <0x00 0x8d 0x04 0x00 0x8e 0x04>; - interrupt-names = "rkvenc_mmu0\0rkvenc_mmu1"; - clocks = <0x23 0x103 0x23 0x104>; - clock-names = "aclk\0iface"; - rockchip,disable-mmu-reset; - rockchip,enable-cmd-retry; - #iommu-cells = <0x00>; - power-domains = <0x25 0x0e>; - status = "okay"; - phandle = <0x80>; - }; - - rkvdec@fdf80200 { - compatible = "rockchip,rkv-decoder-rk3568\0rockchip,rkv-decoder-v2"; - reg = <0x00 0xfdf80200 0x00 0x400 0x00 0xfdf80100 0x00 0x100>; - reg-names = "regs\0link"; - interrupts = <0x00 0x5b 0x04>; - interrupt-names = "irq_dec"; - clocks = <0x23 0x108 0x23 0x109 0x23 0x10a 0x23 0x10b 0x23 0x10c>; - clock-names = "aclk_vcodec\0hclk_vcodec\0clk_cabac\0clk_core\0clk_hevc_cabac"; - rockchip,normal-rates = <0x11b3dc40 0x00 0x11b3dc40 0x11b3dc40 0x23c34600>; - rockchip,advanced-rates = <0x179a7b00 0x00 0x179a7b00 0x179a7b00 0x23c34600>; - rockchip,default-max-load = <0x1fe000>; - resets = <0x23 0x142 0x23 0x143 0x23 0x144 0x23 0x145 0x23 0x146>; - assigned-clocks = <0x23 0x108 0x23 0x10a 0x23 0x10b 0x23 0x10c>; - assigned-clock-rates = <0x11b3dc40 0x11b3dc40 0x11b3dc40 0x11b3dc40>; - reset-names = "video_a\0video_h\0video_cabac\0video_core\0video_hevc_cabac"; - power-domains = <0x25 0x0d>; - operating-points-v2 = <0x82>; - vdec-supply = <0x75>; - iommus = <0x83>; - rockchip,srv = <0x7b>; - rockchip,taskqueue-node = <0x04>; - rockchip,resetgroup-node = <0x04>; - rockchip,sram = <0x84>; - rockchip,rcb-iova = <0x10000000 0x10000>; - rockchip,rcb-min-width = <0x200>; - rockchip,task-capacity = <0x10>; - status = "okay"; - }; - - rkvdec-opp-table { - compatible = "operating-points-v2"; - nvmem-cells = <0x85 0x07>; - nvmem-cell-names = "leakage\0pvtm"; - rockchip,leakage-voltage-sel = <0x01 0x50 0x00 0x51 0xfe 0x01>; - rockchip,pvtm-voltage-sel = <0x00 0x14820 0x00 0x14821 0x186a0 0x01>; - rockchip,pvtm-ch = <0x00 0x05>; - phandle = <0x82>; - - opp-297000000 { - opp-hz = <0x00 0x11b3dc40>; - opp-microvolt = <0xdbba0>; - opp-microvolt-L0 = <0xdbba0>; - opp-microvolt-L1 = <0xd59f8>; - }; - - opp-400000000 { - opp-hz = <0x00 0x17d78400>; - opp-microvolt = <0xdbba0>; - }; - }; - - iommu@fdf80800 { - compatible = "rockchip,iommu-v2"; - reg = <0x00 0xfdf80800 0x00 0x40 0x00 0xfdf80840 0x00 0x40>; - interrupts = <0x00 0x5c 0x04>; - interrupt-names = "rkvdec_mmu"; - clocks = <0x23 0x108 0x23 0x109>; - clock-names = "aclk\0iface"; - power-domains = <0x25 0x0d>; - #iommu-cells = <0x00>; - status = "okay"; - phandle = <0x83>; - }; - - mipi-csi2-hw@fdfb0000 { - compatible = "rockchip,rk3568-mipi-csi2-hw"; - reg = <0x00 0xfdfb0000 0x00 0x10000>; - reg-names = "csihost_regs"; - interrupts = <0x00 0x08 0x04 0x00 0x09 0x04>; - interrupt-names = "csi-intr1\0csi-intr2"; - clocks = <0x23 0xd5>; - clock-names = "pclk_csi2host"; - resets = <0x23 0xff>; - reset-names = "srst_csihost_p"; - status = "okay"; - phandle = <0x1e>; - }; - - rkcif@fdfe0000 { - compatible = "rockchip,rk3568-cif"; - reg = <0x00 0xfdfe0000 0x00 0x8000>; - reg-names = "cif_regs"; - interrupts = <0x00 0x92 0x04>; - interrupt-names = "cif-intr"; - clocks = <0x23 0xce 0x23 0xcf 0x23 0xd0 0x23 0xd1>; - clock-names = "aclk_cif\0hclk_cif\0dclk_cif\0iclk_cif_g"; - resets = <0x23 0xf7 0x23 0xf8 0x23 0xf9 0x23 0xfb 0x23 0xfa>; - reset-names = "rst_cif_a\0rst_cif_h\0rst_cif_d\0rst_cif_p\0rst_cif_i"; - assigned-clocks = <0x23 0xd0>; - assigned-clock-rates = <0x11e1a300>; - power-domains = <0x25 0x08>; - rockchip,grf = <0x3b>; - iommus = <0x86>; - status = "disabled"; - phandle = <0x87>; - }; - - iommu@fdfe0800 { - compatible = "rockchip,iommu-v2"; - reg = <0x00 0xfdfe0800 0x00 0x100>; - interrupts = <0x00 0x92 0x04>; - interrupt-names = "cif_mmu"; - clocks = <0x23 0xce 0x23 0xcf>; - clock-names = "aclk\0iface"; - power-domains = <0x25 0x08>; - rockchip,disable-mmu-reset; - #iommu-cells = <0x00>; - status = "disabled"; - phandle = <0x86>; - }; - - rkcif_dvp { - compatible = "rockchip,rkcif-dvp"; - rockchip,hw = <0x87>; - status = "disabled"; - phandle = <0x88>; - }; - - rkcif_dvp_sditf { - compatible = "rockchip,rkcif-sditf"; - rockchip,cif = <0x88>; - status = "disabled"; - }; - - rkcif_mipi_lvds { - compatible = "rockchip,rkcif-mipi-lvds"; - rockchip,hw = <0x87>; - status = "disabled"; - phandle = <0x89>; - }; - - rkcif_mipi_lvds_sditf { - compatible = "rockchip,rkcif-sditf"; - rockchip,cif = <0x89>; - status = "disabled"; - }; - - rkisp@fdff0000 { - compatible = "rockchip,rk3568-rkisp"; - reg = <0x00 0xfdff0000 0x00 0x10000>; - interrupts = <0x00 0x39 0x04 0x00 0x3a 0x04 0x00 0x3c 0x04>; - interrupt-names = "mipi_irq\0mi_irq\0isp_irq"; - clocks = <0x23 0xd2 0x23 0xd3 0x23 0xd4>; - clock-names = "aclk_isp\0hclk_isp\0clk_isp"; - resets = <0x23 0xfd 0x23 0xfc>; - reset-names = "isp\0isp-h"; - rockchip,grf = <0x3b>; - power-domains = <0x25 0x08>; - iommus = <0x8a>; - rockchip,iq-feature = <0x1bfb 0xfffe67ff>; - status = "okay"; - phandle = <0x8b>; - }; - - iommu@fdff1a00 { - compatible = "rockchip,iommu-v2"; - reg = <0x00 0xfdff1a00 0x00 0x100>; - interrupts = <0x00 0x3b 0x04>; - interrupt-names = "isp_mmu"; - clocks = <0x23 0xd2 0x23 0xd3>; - clock-names = "aclk\0iface"; - power-domains = <0x25 0x08>; - #iommu-cells = <0x00>; - rockchip,disable-mmu-reset; - status = "okay"; - phandle = <0x8a>; - }; - - rkisp-vir0 { - compatible = "rockchip,rkisp-vir"; - rockchip,hw = <0x8b>; - status = "okay"; - - port { - #address-cells = <0x01>; - #size-cells = <0x00>; - - endpoint@0 { - reg = <0x00>; - remote-endpoint = <0x8c>; - phandle = <0x134>; - }; - }; - }; - - rkisp-vir1 { - compatible = "rockchip,rkisp-vir"; - rockchip,hw = <0x8b>; - status = "disabled"; - }; - - uio@fe010000 { - compatible = "rockchip,uio-gmac"; - reg = <0x00 0xfe010000 0x00 0x10000>; - rockchip,ethernet = <0x8d>; - status = "disabled"; - }; - - ethernet@fe010000 { - local-mac-address = [5e 4f fd 70 05 c6]; - compatible = "rockchip,rk3568-gmac\0snps,dwmac-4.20a"; - reg = <0x00 0xfe010000 0x00 0x10000>; - interrupts = <0x00 0x20 0x04 0x00 0x1d 0x04>; - interrupt-names = "macirq\0eth_wake_irq"; - rockchip,grf = <0x3b>; - clocks = <0x23 0x186 0x23 0x189 0x23 0x189 0x23 0xc7 0x23 0xc3 0x23 0xc4 0x23 0x189 0x23 0xc8 0x23 0xac 0x23 0xab>; - clock-names = "stmmaceth\0mac_clk_rx\0mac_clk_tx\0clk_mac_refout\0aclk_mac\0pclk_mac\0clk_mac_speed\0ptp_ref\0pclk_xpcs\0clk_xpcs_eee"; - resets = <0x23 0xec>; - reset-names = "stmmaceth"; - snps,mixed-burst; - snps,tso; - snps,axi-config = <0x8e>; - snps,mtl-rx-config = <0x8f>; - snps,mtl-tx-config = <0x90>; - status = "okay"; - phy-mode = "rgmii"; - clock_in_out = "input"; - snps,reset-gpio = <0x91 0x19 0x01>; - snps,reset-active-low; - snps,reset-delays-us = <0x00 0x4e20 0x186a0>; - assigned-clocks = <0x23 0x189 0x23 0x186>; - assigned-clock-parents = <0x23 0x187 0x92>; - pinctrl-names = "default"; - pinctrl-0 = <0x93 0x94 0x95 0x96 0x97 0x98>; - tx_delay = <0x3e>; - rx_delay = <0x32>; - phy-handle = <0x99>; - phandle = <0x8d>; - - mdio { - compatible = "snps,dwmac-mdio"; - #address-cells = <0x01>; - #size-cells = <0x00>; - - phy@0 { - compatible = "ethernet-phy-ieee802.3-c22"; - reg = <0x00>; - led_status_value = <0x6940>; - phandle = <0x99>; - }; - }; - - stmmac-axi-config { - snps,wr_osr_lmt = <0x04>; - snps,rd_osr_lmt = <0x08>; - snps,blen = <0x00 0x00 0x00 0x00 0x10 0x08 0x04>; - phandle = <0x8e>; - }; - - rx-queues-config { - snps,rx-queues-to-use = <0x01>; - phandle = <0x8f>; - - queue0 { - }; - }; - - tx-queues-config { - snps,tx-queues-to-use = <0x01>; - phandle = <0x90>; - - queue0 { - }; - }; - }; - - vop@fe040000 { - compatible = "rockchip,rk3568-vop"; - reg = <0x00 0xfe040000 0x00 0x3000 0x00 0xfe044000 0x00 0x1000>; - reg-names = "regs\0gamma_lut"; - rockchip,grf = <0x3b>; - interrupts = <0x00 0x94 0x04>; - clocks = <0x23 0xdd 0x23 0xde 0x23 0xdf 0x23 0xe0 0x23 0xe1>; - clock-names = "aclk_vop\0hclk_vop\0dclk_vp0\0dclk_vp1\0dclk_vp2"; - iommus = <0x9a>; - power-domains = <0x25 0x09>; - status = "okay"; - assigned-clocks = <0x23 0xdf 0x23 0xe0>; - assigned-clock-parents = <0x3a 0x02 0x23 0x05>; - disable-win-move; - - ports { - #address-cells = <0x01>; - #size-cells = <0x00>; - phandle = <0x15>; - - port@0 { - rockchip,primary-plane = <0x04>; - rockchip,plane-mask = <0x15>; - #address-cells = <0x01>; - #size-cells = <0x00>; - reg = <0x00>; - - endpoint@0 { - reg = <0x00>; - remote-endpoint = <0x9b>; - phandle = <0x17>; - }; - - endpoint@1 { - reg = <0x01>; - remote-endpoint = <0x9c>; - phandle = <0x18>; - }; - - endpoint@2 { - reg = <0x02>; - remote-endpoint = <0x9d>; - phandle = <0x19>; - }; - - endpoint@3 { - reg = <0x03>; - remote-endpoint = <0x9e>; - phandle = <0x1a>; - }; - }; - - port@1 { - rockchip,primary-plane = <0x05>; - rockchip,plane-mask = <0x22>; - #address-cells = <0x01>; - #size-cells = <0x00>; - reg = <0x01>; - - endpoint@0 { - reg = <0x00>; - remote-endpoint = <0x9f>; - phandle = <0xa8>; - }; - - endpoint@1 { - reg = <0x01>; - remote-endpoint = <0xa0>; - phandle = <0xa9>; - }; - - endpoint@2 { - reg = <0x02>; - remote-endpoint = <0xa1>; - phandle = <0xaf>; - }; - - endpoint@3 { - reg = <0x03>; - remote-endpoint = <0xa2>; - phandle = <0xad>; - }; - - endpoint@4 { - reg = <0x04>; - remote-endpoint = <0xa3>; - phandle = <0x1b>; - }; - - endpoint@5 { - reg = <0x05>; - remote-endpoint = <0xa4>; - phandle = <0x37>; - }; - }; - - port@2 { - rockchip,primary-plane = <0x03>; - rockchip,plane-mask = <0x08>; - #address-cells = <0x01>; - #size-cells = <0x00>; - reg = <0x02>; - - endpoint@0 { - reg = <0x00>; - remote-endpoint = <0xa5>; - phandle = <0x35>; - }; - - endpoint@1 { - reg = <0x01>; - remote-endpoint = <0xa6>; - phandle = <0x1c>; - }; - - endpoint@2 { - reg = <0x02>; - remote-endpoint = <0xa7>; - phandle = <0x38>; - }; - }; - }; - }; - - iommu@fe043e00 { - compatible = "rockchip,iommu-v2"; - reg = <0x00 0xfe043e00 0x00 0x100 0x00 0xfe043f00 0x00 0x100>; - interrupts = <0x00 0x94 0x04>; - interrupt-names = "vop_mmu"; - clocks = <0x23 0xdd 0x23 0xde>; - clock-names = "aclk\0iface"; - #iommu-cells = <0x00>; - rockchip,disable-device-link-resume; - status = "okay"; - phandle = <0x9a>; - }; - - dsi@fe060000 { - compatible = "rockchip,rk3568-mipi-dsi"; - reg = <0x00 0xfe060000 0x00 0x10000>; - interrupts = <0x00 0x44 0x04>; - clocks = <0x23 0xe8 0x23 0xda>; - clock-names = "pclk\0hclk"; - resets = <0x23 0x110>; - reset-names = "apb"; - phys = <0x34>; - phy-names = "dphy"; - power-domains = <0x25 0x09>; - rockchip,grf = <0x3b>; - #address-cells = <0x01>; - #size-cells = <0x00>; - status = "disabled"; - - ports { - #address-cells = <0x01>; - #size-cells = <0x00>; - - port@0 { - reg = <0x00>; - #address-cells = <0x01>; - #size-cells = <0x00>; - - endpoint@0 { - reg = <0x00>; - remote-endpoint = <0x17>; - status = "disabled"; - phandle = <0x9b>; - }; - - endpoint@1 { - reg = <0x01>; - remote-endpoint = <0xa8>; - status = "disabled"; - phandle = <0x9f>; - }; - }; - }; - }; - - dsi@fe070000 { - compatible = "rockchip,rk3568-mipi-dsi"; - reg = <0x00 0xfe070000 0x00 0x10000>; - interrupts = <0x00 0x45 0x04>; - clocks = <0x23 0xe9 0x23 0xda>; - clock-names = "pclk\0hclk"; - resets = <0x23 0x111>; - reset-names = "apb"; - phys = <0x36>; - phy-names = "dphy"; - power-domains = <0x25 0x09>; - rockchip,grf = <0x3b>; - #address-cells = <0x01>; - #size-cells = <0x00>; - status = "disabled"; - - ports { - #address-cells = <0x01>; - #size-cells = <0x00>; - - port@0 { - reg = <0x00>; - #address-cells = <0x01>; - #size-cells = <0x00>; - - endpoint@0 { - reg = <0x00>; - remote-endpoint = <0x18>; - status = "disabled"; - phandle = <0x9c>; - }; - - endpoint@1 { - reg = <0x01>; - remote-endpoint = <0xa9>; - status = "disabled"; - phandle = <0xa0>; - }; - }; - }; - }; - - hdmi@fe0a0000 { - compatible = "rockchip,rk3568-dw-hdmi"; - reg = <0x00 0xfe0a0000 0x00 0x20000>; - interrupts = <0x00 0x2d 0x04>; - clocks = <0x23 0xe6 0x23 0xe7 0x23 0x193 0x3a 0x02 0x23 0xde>; - clock-names = "iahb\0isfr\0cec\0ref\0hclk"; - power-domains = <0x25 0x09>; - reg-io-width = <0x04>; - rockchip,grf = <0x3b>; - #sound-dai-cells = <0x00>; - pinctrl-names = "default"; - pinctrl-0 = <0xaa 0xab 0xac>; - status = "okay"; - phandle = <0x147>; - - ports { - #address-cells = <0x01>; - #size-cells = <0x00>; - - port@0 { - reg = <0x00>; - #address-cells = <0x01>; - #size-cells = <0x00>; - - endpoint@0 { - reg = <0x00>; - remote-endpoint = <0x1a>; - status = "okay"; - phandle = <0x9e>; - }; - - endpoint@1 { - reg = <0x01>; - remote-endpoint = <0xad>; - status = "disabled"; - phandle = <0xa2>; - }; - }; - }; - }; - - edp@fe0c0000 { - compatible = "rockchip,rk3568-edp"; - reg = <0x00 0xfe0c0000 0x00 0x10000>; - interrupts = <0x00 0x12 0x04>; - clocks = <0x3a 0x29 0x23 0xea 0x23 0xeb 0x23 0xda>; - clock-names = "dp\0pclk\0spdif\0hclk"; - resets = <0x23 0x113 0x23 0x112>; - reset-names = "dp\0apb"; - phys = <0xae>; - phy-names = "dp"; - power-domains = <0x25 0x09>; - status = "disabled"; - - ports { - #address-cells = <0x01>; - #size-cells = <0x00>; - - port@0 { - reg = <0x00>; - #address-cells = <0x01>; - #size-cells = <0x00>; - - endpoint@0 { - reg = <0x00>; - remote-endpoint = <0x19>; - status = "disabled"; - phandle = <0x9d>; - }; - - endpoint@1 { - reg = <0x01>; - remote-endpoint = <0xaf>; - status = "disabled"; - phandle = <0xa1>; - }; - }; - }; - }; - - nocp-cpu@fe102000 { - compatible = "rockchip,rk3568-nocp"; - reg = <0x00 0xfe102000 0x00 0x400>; - phandle = <0xb5>; - }; - - nocp-gpu-vpu-rga-venc@fe102400 { - compatible = "rockchip,rk3568-nocp"; - reg = <0x00 0xfe102400 0x00 0x400>; - }; - - nocp-vdec@fe102800 { - compatible = "rockchip,rk3568-nocp"; - reg = <0x00 0xfe102800 0x00 0x400>; - }; - - nocp-vi-usb-peri-pipe@fe102c00 { - compatible = "rockchip,rk3568-nocp"; - reg = <0x00 0xfe102c00 0x00 0x400>; - }; - - nocp-vo@fe103000 { - compatible = "rockchip,rk3568-nocp"; - reg = <0x00 0xfe103000 0x00 0x400>; - }; - - qos@fe128000 { - compatible = "syscon"; - reg = <0x00 0xfe128000 0x00 0x20>; - phandle = <0x55>; - }; - - qos@fe138080 { - compatible = "syscon"; - reg = <0x00 0xfe138080 0x00 0x20>; - phandle = <0x64>; - }; - - qos@fe138100 { - compatible = "syscon"; - reg = <0x00 0xfe138100 0x00 0x20>; - phandle = <0x65>; - }; - - qos@fe138180 { - compatible = "syscon"; - reg = <0x00 0xfe138180 0x00 0x20>; - phandle = <0x66>; - }; - - qos@fe148000 { - compatible = "syscon"; - reg = <0x00 0xfe148000 0x00 0x20>; - phandle = <0x56>; - }; - - qos@fe148080 { - compatible = "syscon"; - reg = <0x00 0xfe148080 0x00 0x20>; - phandle = <0x57>; - }; - - qos@fe148100 { - compatible = "syscon"; - reg = <0x00 0xfe148100 0x00 0x20>; - phandle = <0x58>; - }; - - qos@fe150000 { - compatible = "syscon"; - reg = <0x00 0xfe150000 0x00 0x20>; - phandle = <0x62>; - }; - - qos@fe158000 { - compatible = "syscon"; - reg = <0x00 0xfe158000 0x00 0x20>; - phandle = <0x5c>; - }; - - qos@fe158100 { - compatible = "syscon"; - reg = <0x00 0xfe158100 0x00 0x20>; - phandle = <0x5d>; - }; - - qos@fe158180 { - compatible = "syscon"; - reg = <0x00 0xfe158180 0x00 0x20>; - phandle = <0x5e>; - }; - - qos@fe158200 { - compatible = "syscon"; - reg = <0x00 0xfe158200 0x00 0x20>; - phandle = <0x5f>; - }; - - qos@fe158280 { - compatible = "syscon"; - reg = <0x00 0xfe158280 0x00 0x20>; - phandle = <0x60>; - }; - - qos@fe158300 { - compatible = "syscon"; - reg = <0x00 0xfe158300 0x00 0x20>; - phandle = <0x61>; - }; - - qos@fe180000 { - compatible = "syscon"; - reg = <0x00 0xfe180000 0x00 0x20>; - phandle = <0x54>; - }; - - qos@fe190000 { - compatible = "syscon"; - reg = <0x00 0xfe190000 0x00 0x20>; - phandle = <0x67>; - }; - - qos@fe190080 { - compatible = "syscon"; - reg = <0x00 0xfe190080 0x00 0x20>; - phandle = <0x68>; - }; - - qos@fe190100 { - compatible = "syscon"; - reg = <0x00 0xfe190100 0x00 0x20>; - phandle = <0x69>; - }; - - qos@fe190200 { - compatible = "syscon"; - reg = <0x00 0xfe190200 0x00 0x20>; - phandle = <0x6a>; - }; - - qos@fe190280 { - compatible = "syscon"; - reg = <0x00 0xfe190280 0x00 0x20>; - phandle = <0x6b>; - }; - - qos@fe190300 { - compatible = "syscon"; - reg = <0x00 0xfe190300 0x00 0x20>; - phandle = <0x6c>; - }; - - qos@fe190380 { - compatible = "syscon"; - reg = <0x00 0xfe190380 0x00 0x20>; - phandle = <0x6d>; - }; - - qos@fe190400 { - compatible = "syscon"; - reg = <0x00 0xfe190400 0x00 0x20>; - phandle = <0x6e>; - }; - - qos@fe198000 { - compatible = "syscon"; - reg = <0x00 0xfe198000 0x00 0x20>; - phandle = <0x63>; - }; - - qos@fe1a8000 { - compatible = "syscon"; - reg = <0x00 0xfe1a8000 0x00 0x20>; - phandle = <0x59>; - }; - - qos@fe1a8080 { - compatible = "syscon"; - reg = <0x00 0xfe1a8080 0x00 0x20>; - phandle = <0x5a>; - }; - - qos@fe1a8100 { - compatible = "syscon"; - reg = <0x00 0xfe1a8100 0x00 0x20>; - phandle = <0x5b>; - }; - - dwmmc@fe000000 { - compatible = "rockchip,rk3568-dw-mshc\0rockchip,rk3288-dw-mshc"; - reg = <0x00 0xfe000000 0x00 0x4000>; - interrupts = <0x00 0x64 0x04>; - max-frequency = <0x8f0d180>; - clocks = <0x23 0xc1 0x23 0xc2 0x23 0x18e 0x23 0x18f>; - clock-names = "biu\0ciu\0ciu-drive\0ciu-sample"; - fifo-depth = <0x100>; - resets = <0x23 0xeb>; - reset-names = "reset"; - status = "okay"; - no-sd; - no-mmc; - bus-width = <0x04>; - disable-wp; - cap-sd-highspeed; - cap-sdio-irq; - keep-power-in-suspend; - pinctrl-names = "default"; - pinctrl-0 = <0xb0 0xb1 0xb2>; - sd-uhs-sdr104; - mmc-pwrseq = <0xb3>; - non-removable; - }; - - dfi@fe230000 { - reg = <0x00 0xfe230000 0x00 0x400>; - compatible = "rockchip,rk3568-dfi"; - rockchip,pmugrf = <0x3c>; - status = "okay"; - phandle = <0xb4>; - }; - - dmc { - compatible = "rockchip,rk3568-dmc"; - interrupts = <0x00 0x0a 0x04>; - interrupt-names = "complete"; - devfreq-events = <0xb4 0xb5>; - clocks = <0x02 0x03>; - clock-names = "dmc_clk"; - operating-points-v2 = <0xb6>; - vop-bw-dmc-freq = <0x00 0x11e 0x4f1a0 0x11f 0x1869f 0x80e80>; - vop-frame-bw-dmc-freq = <0x00 0x26c 0x4f1a0 0x26d 0x1869f 0xbe6e0>; - cpu-bw-dmc-freq = <0x00 0x15e 0x4f1a0 0x15f 0x190 0x80e80 0x191 0x1869f 0xbe6e0>; - upthreshold = <0x28>; - downdifferential = <0x14>; - system-status-level = <0x01 0x04 0x08 0x08 0x02 0x01 0x10 0x04 0x10000 0x04 0x1000 0x08 0x4000 0x08 0x2000 0x08 0xc00 0x08>; - auto-min-freq = <0x4f1a0>; - auto-freq-en = <0x01>; - #cooling-cells = <0x02>; - status = "okay"; - center-supply = <0x75>; - phandle = <0x16>; - }; - - dmc-fsp { - compatible = "rockchip,rk3568-dmc-fsp"; - debug_print_level = <0x00>; - ddr3_params = <0xb7>; - ddr4_params = <0xb8>; - lpddr3_params = <0xb9>; - lpddr4_params = <0xba>; - lpddr4x_params = <0xbb>; - status = "okay"; - }; - - dmc-opp-table { - compatible = "operating-points-v2"; - mbist-vmin = <0xc96a8 0xdbba0 0xe7ef0>; - nvmem-cells = <0x85 0x07 0x08 0xbc 0x0a 0x0b>; - nvmem-cell-names = "leakage\0pvtm\0mbist-vmin\0opp-info\0specification_serial_number\0remark_spec_serial_number"; - rockchip,supported-hw; - rockchip,max-volt = <0xf4240>; - rockchip,temp-hysteresis = <0x1388>; - rockchip,low-temp = <0x00>; - rockchip,low-temp-adjust-volt = <0x00 0x618 0x124f8>; - rockchip,leakage-voltage-sel = <0x01 0x50 0x00 0x51 0xfe 0x01>; - rockchip,pvtm-voltage-sel = <0x00 0x14820 0x00 0x14821 0x186a0 0x01>; - rockchip,pvtm-ch = <0x00 0x05>; - phandle = <0xb6>; - - opp-1560000000 { - opp-supported-hw = <0xf9 0xffff>; - opp-hz = <0x00 0x5cfbb600>; - opp-microvolt = <0xdbba0 0xdbba0 0xf4240>; - opp-microvolt-L0 = <0xdbba0 0xdbba0 0xf4240>; - opp-microvolt-L1 = <0xd59f8 0xd59f8 0xf4240>; - }; - - opp-j-m-1560000000 { - opp-supported-hw = <0x06 0xffff>; - opp-hz = <0x00 0x5cfbb600>; - opp-microvolt = <0xd59f8 0xd59f8 0xf4240>; - }; - }; - - pcie@fe260000 { - compatible = "rockchip,rk3568-pcie\0snps,dw-pcie"; - #address-cells = <0x03>; - #size-cells = <0x02>; - bus-range = <0x00 0x0f>; - clocks = <0x23 0x81 0x23 0x82 0x23 0x83 0x23 0x84 0x23 0x85>; - clock-names = "aclk_mst\0aclk_slv\0aclk_dbi\0pclk\0aux"; - device_type = "pci"; - interrupts = <0x00 0x4b 0x04 0x00 0x4a 0x04 0x00 0x49 0x04 0x00 0x48 0x04 0x00 0x47 0x04>; - interrupt-names = "sys\0pmc\0msg\0legacy\0err"; - #interrupt-cells = <0x01>; - interrupt-map-mask = <0x00 0x00 0x00 0x07>; - interrupt-map = <0x00 0x00 0x00 0x01 0xbd 0x00 0x00 0x00 0x00 0x02 0xbd 0x01 0x00 0x00 0x00 0x03 0xbd 0x02 0x00 0x00 0x00 0x04 0xbd 0x03>; - linux,pci-domain = <0x00>; - num-ib-windows = <0x06>; - num-viewport = <0x08>; - num-ob-windows = <0x02>; - max-link-speed = <0x02>; - msi-map = <0x00 0xbe 0x00 0x1000>; - num-lanes = <0x01>; - phys = <0x27 0x02>; - phy-names = "pcie-phy"; - power-domains = <0x25 0x0f>; - ranges = <0x800 0x00 0xf4000000 0x00 0xf4000000 0x00 0x100000 0x81000000 0x00 0xf4100000 0x00 0xf4100000 0x00 0x100000 0x82000000 0x00 0xf4200000 0x00 0xf4200000 0x00 0x1e00000 0xc3000000 0x03 0x00 0x03 0x00 0x00 0x40000000>; - reg = <0x03 0xc0000000 0x00 0x400000 0x00 0xfe260000 0x00 0x10000>; - reg-names = "pcie-dbi\0pcie-apb"; - resets = <0x23 0xa1>; - reset-names = "pipe"; - status = "disabled"; - - legacy-interrupt-controller { - interrupt-controller; - #address-cells = <0x00>; - #interrupt-cells = <0x01>; - interrupt-parent = <0x01>; - interrupts = <0x00 0x48 0x01>; - phandle = <0xbd>; - }; - }; - - pcie@fe270000 { - compatible = "rockchip,rk3568-pcie\0snps,dw-pcie"; - #address-cells = <0x03>; - #size-cells = <0x02>; - bus-range = <0x10 0x1f>; - clocks = <0x23 0x88 0x23 0x89 0x23 0x8a 0x23 0x8b 0x23 0x8c>; - clock-names = "aclk_mst\0aclk_slv\0aclk_dbi\0pclk\0aux"; - device_type = "pci"; - interrupts = <0x00 0xa0 0x04 0x00 0x9f 0x04 0x00 0x9e 0x04 0x00 0x9d 0x04 0x00 0x9c 0x04>; - interrupt-names = "sys\0pmc\0msg\0legacy\0err"; - #interrupt-cells = <0x01>; - interrupt-map-mask = <0x00 0x00 0x00 0x07>; - interrupt-map = <0x00 0x00 0x00 0x01 0xbf 0x00 0x00 0x00 0x00 0x02 0xbf 0x01 0x00 0x00 0x00 0x03 0xbf 0x02 0x00 0x00 0x00 0x04 0xbf 0x03>; - linux,pci-domain = <0x01>; - num-ib-windows = <0x06>; - num-ob-windows = <0x02>; - num-viewport = <0x08>; - max-link-speed = <0x03>; - msi-map = <0x1000 0xbe 0x1000 0x1000>; - num-lanes = <0x01>; - phys = <0xc0>; - phy-names = "pcie-phy"; - power-domains = <0x25 0x0f>; - ranges = <0x800 0x00 0xf2000000 0x00 0xf2000000 0x00 0x100000 0x81000000 0x00 0xf2100000 0x00 0xf2100000 0x00 0x100000 0x82000000 0x00 0xf2200000 0x00 0xf2200000 0x00 0x1e00000 0xc3000000 0x03 0x40000000 0x03 0x40000000 0x00 0x40000000>; - reg = <0x03 0xc0400000 0x00 0x400000 0x00 0xfe270000 0x00 0x10000>; - reg-names = "pcie-dbi\0pcie-apb"; - resets = <0x23 0xb1>; - reset-names = "pipe"; - status = "disabled"; - - legacy-interrupt-controller { - interrupt-controller; - #address-cells = <0x00>; - #interrupt-cells = <0x01>; - interrupt-parent = <0x01>; - interrupts = <0x00 0x9d 0x01>; - phandle = <0xbf>; - }; - }; - - pcie@fe280000 { - compatible = "rockchip,rk3568-pcie\0snps,dw-pcie"; - #address-cells = <0x03>; - #size-cells = <0x02>; - bus-range = <0x20 0x2f>; - clocks = <0x23 0x8f 0x23 0x90 0x23 0x91 0x23 0x92 0x23 0x93>; - clock-names = "aclk_mst\0aclk_slv\0aclk_dbi\0pclk\0aux"; - device_type = "pci"; - interrupts = <0x00 0xa5 0x04 0x00 0xa4 0x04 0x00 0xa3 0x04 0x00 0xa2 0x04 0x00 0xa1 0x04>; - interrupt-names = "sys\0pmc\0msg\0legacy\0err"; - #interrupt-cells = <0x01>; - interrupt-map-mask = <0x00 0x00 0x00 0x07>; - interrupt-map = <0x00 0x00 0x00 0x01 0xc1 0x00 0x00 0x00 0x00 0x02 0xc1 0x01 0x00 0x00 0x00 0x03 0xc1 0x02 0x00 0x00 0x00 0x04 0xc1 0x03>; - linux,pci-domain = <0x02>; - num-ib-windows = <0x06>; - num-viewport = <0x08>; - num-ob-windows = <0x02>; - max-link-speed = <0x03>; - msi-map = <0x2000 0xbe 0x2000 0x1000>; - num-lanes = <0x02>; - phys = <0xc0>; - phy-names = "pcie-phy"; - power-domains = <0x25 0x0f>; - ranges = <0x800 0x00 0xf0000000 0x00 0xf0000000 0x00 0x100000 0x81000000 0x00 0xf0100000 0x00 0xf0100000 0x00 0x100000 0x82000000 0x00 0xf0200000 0x00 0xf0200000 0x00 0x1e00000 0xc3000000 0x03 0x80000000 0x03 0x80000000 0x00 0x40000000>; - reg = <0x03 0xc0800000 0x00 0x400000 0x00 0xfe280000 0x00 0x10000>; - reg-names = "pcie-dbi\0pcie-apb"; - resets = <0x23 0xc1>; - reset-names = "pipe"; - status = "okay"; - reset-gpios = <0x91 0x1e 0x00>; - vpcie3v3-supply = <0xc2>; - - legacy-interrupt-controller { - interrupt-controller; - #address-cells = <0x00>; - #interrupt-cells = <0x01>; - interrupt-parent = <0x01>; - interrupts = <0x00 0xa2 0x01>; - phandle = <0xc1>; - }; - }; - - uio@fe2a0000 { - compatible = "rockchip,uio-gmac"; - reg = <0x00 0xfe2a0000 0x00 0x10000>; - rockchip,ethernet = <0xc3>; - status = "disabled"; - }; - - ethernet@fe2a0000 { - local-mac-address = [5a 4f fd 70 05 c6]; - compatible = "rockchip,rk3568-gmac\0snps,dwmac-4.20a"; - reg = <0x00 0xfe2a0000 0x00 0x10000>; - interrupts = <0x00 0x1b 0x04 0x00 0x18 0x04>; - interrupt-names = "macirq\0eth_wake_irq"; - rockchip,grf = <0x3b>; - clocks = <0x23 0x182 0x23 0x185 0x23 0x185 0x23 0xb8 0x23 0xb4 0x23 0xb5 0x23 0x185 0x23 0xb9 0x23 0xac 0x23 0xab>; - clock-names = "stmmaceth\0mac_clk_rx\0mac_clk_tx\0clk_mac_refout\0aclk_mac\0pclk_mac\0clk_mac_speed\0ptp_ref\0pclk_xpcs\0clk_xpcs_eee"; - resets = <0x23 0xd7>; - reset-names = "stmmaceth"; - snps,mixed-burst; - snps,tso; - snps,axi-config = <0xc4>; - snps,mtl-rx-config = <0xc5>; - snps,mtl-tx-config = <0xc6>; - status = "okay"; - phy-mode = "rgmii"; - clock_in_out = "input"; - snps,reset-gpio = <0x91 0x1b 0x01>; - snps,reset-active-low; - snps,reset-delays-us = <0x00 0x4e20 0x186a0>; - assigned-clocks = <0x23 0x185 0x23 0x182>; - assigned-clock-parents = <0x23 0x183 0xc7>; - pinctrl-names = "default"; - pinctrl-0 = <0xc8 0xc9 0xca 0xcb 0xcc 0xcd>; - tx_delay = <0x4a>; - rx_delay = <0x2e>; - phy-handle = <0xce>; - phandle = <0xc3>; - - mdio { - compatible = "snps,dwmac-mdio"; - #address-cells = <0x01>; - #size-cells = <0x00>; - - phy@0 { - compatible = "ethernet-phy-ieee802.3-c22"; - reg = <0x00>; - led_status_value = <0x6940>; - phandle = <0xce>; - }; - }; - - stmmac-axi-config { - snps,wr_osr_lmt = <0x04>; - snps,rd_osr_lmt = <0x08>; - snps,blen = <0x00 0x00 0x00 0x00 0x10 0x08 0x04>; - phandle = <0xc4>; - }; - - rx-queues-config { - snps,rx-queues-to-use = <0x01>; - phandle = <0xc5>; - - queue0 { - }; - }; - - tx-queues-config { - snps,tx-queues-to-use = <0x01>; - phandle = <0xc6>; - - queue0 { - }; - }; - }; - - dwmmc@fe2b0000 { - compatible = "rockchip,rk3568-dw-mshc\0rockchip,rk3288-dw-mshc"; - reg = <0x00 0xfe2b0000 0x00 0x4000>; - interrupts = <0x00 0x62 0x04>; - max-frequency = <0x8f0d180>; - clocks = <0x23 0xb0 0x23 0xb1 0x23 0x18a 0x23 0x18b>; - clock-names = "biu\0ciu\0ciu-drive\0ciu-sample"; - fifo-depth = <0x100>; - resets = <0x23 0xd4>; - reset-names = "reset"; - status = "okay"; - no-sdio; - no-mmc; - bus-width = <0x04>; - cap-mmc-highspeed; - cap-sd-highspeed; - disable-wp; - sd-uhs-sdr104; - vmmc-supply = <0xcf>; - vqmmc-supply = <0x31>; - pinctrl-names = "default"; - pinctrl-0 = <0xd0 0xd1 0xd2 0xd3>; - }; - - dwmmc@fe2c0000 { - compatible = "rockchip,rk3568-dw-mshc\0rockchip,rk3288-dw-mshc"; - reg = <0x00 0xfe2c0000 0x00 0x4000>; - interrupts = <0x00 0x63 0x04>; - max-frequency = <0x8f0d180>; - clocks = <0x23 0xb2 0x23 0xb3 0x23 0x18c 0x23 0x18d>; - clock-names = "biu\0ciu\0ciu-drive\0ciu-sample"; - fifo-depth = <0x100>; - resets = <0x23 0xd6>; - reset-names = "reset"; - status = "disabled"; - }; - - spi@fe300000 { - compatible = "rockchip,sfc"; - reg = <0x00 0xfe300000 0x00 0x4000>; - interrupts = <0x00 0x65 0x04>; - clocks = <0x23 0x78 0x23 0x76>; - clock-names = "clk_sfc\0hclk_sfc"; - assigned-clocks = <0x23 0x78>; - assigned-clock-rates = <0x2faf080>; - #address-cells = <0x01>; - #size-cells = <0x00>; - status = "okay"; - pinctrl-names = "default"; - pinctrl-0 = <0xd4>; - - flash@0 { - compatible = "jedec,spi-nor"; - reg = <0x00>; - spi-max-frequency = <0x2faf080>; - spi-rx-bus-width = <0x01>; - spi-tx-bus-width = <0x01>; - }; - }; - - sdhci@fe310000 { - compatible = "rockchip,rk3568-dwcmshc\0rockchip,dwcmshc-sdhci"; - reg = <0x00 0xfe310000 0x00 0x10000>; - interrupts = <0x00 0x13 0x04>; - assigned-clocks = <0x23 0x7b 0x23 0x7d 0x23 0x7c>; - assigned-clock-rates = <0xbebc200 0x16e3600 0xbebc200>; - clocks = <0x23 0x7c 0x23 0x7a 0x23 0x79 0x23 0x7b 0x23 0x7d>; - clock-names = "core\0bus\0axi\0block\0timer"; - resets = <0x23 0x78 0x23 0x76 0x23 0x75 0x23 0x77 0x23 0x79>; - reset-names = "core\0bus\0axi\0block\0timer"; - status = "okay"; - bus-width = <0x08>; - no-sdio; - no-sd; - non-removable; - max-frequency = <0xbebc200>; - full-pwr-cycle-in-suspend; - }; - - nandc@fe330000 { - compatible = "rockchip,rk-nandc-v9"; - reg = <0x00 0xfe330000 0x00 0x4000>; - interrupts = <0x00 0x46 0x04>; - nandc_id = <0x00>; - clocks = <0x23 0x75 0x23 0x74>; - clock-names = "clk_nandc\0hclk_nandc"; - status = "okay"; - #address-cells = <0x01>; - #size-cells = <0x00>; - - nand@0 { - reg = <0x00>; - nand-bus-width = <0x08>; - nand-ecc-mode = "hw"; - nand-ecc-strength = <0x10>; - nand-ecc-step-size = <0x400>; - }; - }; - - crypto@fe380000 { - compatible = "rockchip,rk3568-crypto"; - reg = <0x00 0xfe380000 0x00 0x4000>; - interrupts = <0x00 0x04 0x04>; - clocks = <0x23 0x6a 0x23 0x6b 0x23 0x6c 0x23 0x6d>; - clock-names = "aclk\0hclk\0sclk\0apb_pclk"; - assigned-clocks = <0x23 0x6c>; - assigned-clock-rates = <0xbebc200>; - resets = <0x23 0x69>; - reset-names = "crypto-rst"; - status = "disabled"; - }; - - rng@fe388000 { - compatible = "rockchip,cryptov2-rng"; - reg = <0x00 0xfe388000 0x00 0x2000>; - clocks = <0x23 0x70 0x23 0x6f>; - clock-names = "clk_trng\0hclk_trng"; - resets = <0x23 0x6d>; - reset-names = "reset"; - status = "okay"; - }; - - otp@fe38c000 { - compatible = "rockchip,rk3568-otp"; - reg = <0x00 0xfe38c000 0x00 0x4000>; - #address-cells = <0x01>; - #size-cells = <0x01>; - clocks = <0x23 0x73 0x23 0x72 0x23 0x71 0x23 0x181>; - clock-names = "usr\0sbpi\0apb\0phy"; - resets = <0x23 0x1cf>; - reset-names = "otp_phy"; - - cpu-code@2 { - reg = <0x02 0x02>; - phandle = <0x12>; - }; - - specification-serial-number@7 { - reg = <0x07 0x01>; - bits = <0x00 0x05>; - phandle = <0x0a>; - }; - - cpu-version@8 { - reg = <0x08 0x01>; - bits = <0x03 0x03>; - phandle = <0x11>; - }; - - mbist-vmin@9 { - reg = <0x09 0x01>; - bits = <0x00 0x04>; - phandle = <0x08>; - }; - - id@a { - reg = <0x0a 0x10>; - phandle = <0x10>; - }; - - cpu-leakage@1a { - reg = <0x1a 0x01>; - phandle = <0x06>; - }; - - log-leakage@1b { - reg = <0x1b 0x01>; - phandle = <0x85>; - }; - - npu-leakage@1c { - reg = <0x1c 0x01>; - phandle = <0x72>; - }; - - gpu-leakage@1d { - reg = <0x1d 0x01>; - phandle = <0x78>; - }; - - core-pvtm@2a { - reg = <0x2a 0x02>; - phandle = <0x07>; - }; - - cpu-tsadc-trim-l@2e { - reg = <0x2e 0x01>; - phandle = <0x125>; - }; - - cpu-tsadc-trim-h@2f { - reg = <0x2f 0x01>; - bits = <0x00 0x04>; - phandle = <0x126>; - }; - - npu-tsadc-trim-l@30 { - reg = <0x30 0x01>; - phandle = <0x127>; - }; - - npu-tsadc-trim-h@31 { - reg = <0x31 0x01>; - bits = <0x00 0x04>; - phandle = <0x128>; - }; - - tsadc-trim-base-frac@31 { - reg = <0x31 0x01>; - bits = <0x04 0x04>; - phandle = <0x122>; - }; - - tsadc-trim-base@32 { - reg = <0x32 0x01>; - phandle = <0x121>; - }; - - cpu-opp-info@36 { - reg = <0x36 0x06>; - phandle = <0x09>; - }; - - gpu-opp-info@3c { - reg = <0x3c 0x06>; - phandle = <0x79>; - }; - - npu-opp-info@42 { - reg = <0x42 0x06>; - phandle = <0x73>; - }; - - dmc-opp-info@48 { - reg = <0x48 0x06>; - phandle = <0xbc>; - }; - - remark-spec-serial-number@56 { - reg = <0x56 0x01>; - bits = <0x00 0x05>; - phandle = <0x0b>; - }; - }; - - i2s@fe400000 { - compatible = "rockchip,rk3568-i2s-tdm"; - reg = <0x00 0xfe400000 0x00 0x1000>; - interrupts = <0x00 0x34 0x04>; - clocks = <0x23 0x3f 0x23 0x43 0x23 0x39>; - clock-names = "mclk_tx\0mclk_rx\0hclk"; - dmas = <0xd5 0x00>; - dma-names = "tx"; - resets = <0x23 0x50 0x23 0x51>; - reset-names = "tx-m\0rx-m"; - rockchip,cru = <0x23>; - rockchip,grf = <0x3b>; - rockchip,playback-only; - #sound-dai-cells = <0x00>; - status = "okay"; - phandle = <0x146>; - }; - - i2s@fe410000 { - compatible = "rockchip,rk3568-i2s-tdm"; - reg = <0x00 0xfe410000 0x00 0x1000>; - interrupts = <0x00 0x35 0x04>; - clocks = <0x23 0x47 0x23 0x4b 0x23 0x3a>; - clock-names = "mclk_tx\0mclk_rx\0hclk"; - dmas = <0xd5 0x02 0xd5 0x03>; - dma-names = "tx\0rx"; - resets = <0x23 0x52 0x23 0x53>; - reset-names = "tx-m\0rx-m"; - rockchip,cru = <0x23>; - rockchip,grf = <0x3b>; - #sound-dai-cells = <0x00>; - pinctrl-names = "default"; - pinctrl-0 = <0xd6 0xd7 0xd8 0xd9>; - status = "okay"; - rockchip,clk-trcm = <0x01>; - phandle = <0xe8>; - }; - - i2s@fe420000 { - compatible = "rockchip,rk3568-i2s-tdm"; - reg = <0x00 0xfe420000 0x00 0x1000>; - interrupts = <0x00 0x36 0x04>; - clocks = <0x23 0x4f 0x23 0x4f 0x23 0x3b>; - clock-names = "mclk_tx\0mclk_rx\0hclk"; - dmas = <0xd5 0x04 0xd5 0x05>; - dma-names = "tx\0rx"; - rockchip,cru = <0x23>; - rockchip,grf = <0x3b>; - rockchip,clk-trcm = <0x01>; - #sound-dai-cells = <0x00>; - pinctrl-names = "default"; - pinctrl-0 = <0xda 0xdb 0xdc 0xdd>; - status = "disabled"; - }; - - i2s@fe430000 { - compatible = "rockchip,rk3568-i2s-tdm"; - reg = <0x00 0xfe430000 0x00 0x1000>; - interrupts = <0x00 0x37 0x04>; - clocks = <0x23 0x53 0x23 0x57 0x23 0x3c>; - clock-names = "mclk_tx\0mclk_rx\0hclk"; - dmas = <0xd5 0x06 0xd5 0x07>; - dma-names = "tx\0rx"; - resets = <0x23 0x55 0x23 0x56>; - reset-names = "tx-m\0rx-m"; - rockchip,cru = <0x23>; - rockchip,grf = <0x3b>; - rockchip,clk-trcm = <0x01>; - #sound-dai-cells = <0x00>; - pinctrl-names = "default"; - pinctrl-0 = <0xde 0xdf 0xe0 0xe1>; - status = "disabled"; - phandle = <0x144>; - }; - - pdm@fe440000 { - compatible = "rockchip,rk3568-pdm\0rockchip,pdm"; - reg = <0x00 0xfe440000 0x00 0x1000>; - clocks = <0x23 0x5a 0x23 0x59>; - clock-names = "pdm_clk\0pdm_hclk"; - dmas = <0xd5 0x09>; - dma-names = "rx"; - pinctrl-names = "default"; - pinctrl-0 = <0xe2 0xe3 0xe4 0xe5 0xe6 0xe7>; - #sound-dai-cells = <0x00>; - status = "disabled"; - phandle = <0x149>; - }; - - vad@fe450000 { - compatible = "rockchip,rk3568-vad"; - reg = <0x00 0xfe450000 0x00 0x10000>; - reg-names = "vad"; - clocks = <0x23 0x5b>; - clock-names = "hclk"; - interrupts = <0x00 0x89 0x04>; - rockchip,audio-src = <0xe8>; - rockchip,det-channel = <0x00>; - rockchip,mode = <0x00>; - #sound-dai-cells = <0x00>; - status = "disabled"; - rockchip,buffer-time-ms = <0x80>; - phandle = <0x14e>; - }; - - spdif@fe460000 { - compatible = "rockchip,rk3568-spdif"; - reg = <0x00 0xfe460000 0x00 0x1000>; - interrupts = <0x00 0x66 0x04>; - dmas = <0xd5 0x01>; - dma-names = "tx"; - clock-names = "mclk\0hclk"; - clocks = <0x23 0x5f 0x23 0x5c>; - #sound-dai-cells = <0x00>; - pinctrl-names = "default"; - pinctrl-0 = <0xe9>; - status = "disabled"; - phandle = <0x14c>; - }; - - audpwm@fe470000 { - compatible = "rockchip,rk3568-audio-pwm\0rockchip,audio-pwm-v1"; - reg = <0x00 0xfe470000 0x00 0x1000>; - clocks = <0x23 0x63 0x23 0x60>; - clock-names = "clk\0hclk"; - dmas = <0xd5 0x08>; - dma-names = "tx"; - #sound-dai-cells = <0x00>; - rockchip,sample-width-bits = <0x0b>; - rockchip,interpolat-points = <0x01>; - status = "disabled"; - }; - - codec-digital@fe478000 { - compatible = "rockchip,rk3568-codec-digital\0rockchip,codec-digital-v1"; - reg = <0x00 0xfe478000 0x00 0x1000>; - clocks = <0x23 0x67 0x23 0x66 0x23 0x65 0x23 0x64>; - clock-names = "adc\0dac\0i2c\0pclk"; - pinctrl-names = "default"; - pinctrl-0 = <0xea>; - resets = <0x23 0x5f>; - reset-names = "reset"; - rockchip,grf = <0x3b>; - #sound-dai-cells = <0x00>; - status = "disabled"; - phandle = <0x145>; - }; - - dmac@fe530000 { - compatible = "arm,pl330\0arm,primecell"; - reg = <0x00 0xfe530000 0x00 0x4000>; - interrupts = <0x00 0x0e 0x04 0x00 0x0d 0x04>; - clocks = <0x23 0x10d>; - clock-names = "apb_pclk"; - #dma-cells = <0x01>; - arm,pl330-periph-burst; - phandle = <0x4e>; - }; - - dmac@fe550000 { - compatible = "arm,pl330\0arm,primecell"; - reg = <0x00 0xfe550000 0x00 0x4000>; - interrupts = <0x00 0x10 0x04 0x00 0x0f 0x04>; - clocks = <0x23 0x10d>; - clock-names = "apb_pclk"; - #dma-cells = <0x01>; - arm,pl330-periph-burst; - phandle = <0xd5>; - }; - - rkscr@fe560000 { - compatible = "rockchip-scr"; - reg = <0x00 0xfe560000 0x00 0x10000>; - interrupts = <0x00 0x61 0x04>; - pinctrl-names = "default"; - pinctrl-0 = <0xeb>; - clocks = <0x23 0x114>; - clock-names = "g_pclk_sim_card"; - status = "disabled"; - }; - - can@fe570000 { - compatible = "rockchip,rk3568-can-2.0"; - reg = <0x00 0xfe570000 0x00 0x1000>; - interrupts = <0x00 0x01 0x04>; - clocks = <0x23 0x141 0x23 0x140>; - clock-names = "baudclk\0apb_pclk"; - resets = <0x23 0x155 0x23 0x154>; - reset-names = "can\0can-apb"; - tx-fifo-depth = <0x01>; - rx-fifo-depth = <0x06>; - status = "disabled"; - }; - - can@fe580000 { - compatible = "rockchip,rk3568-can-2.0"; - reg = <0x00 0xfe580000 0x00 0x1000>; - interrupts = <0x00 0x02 0x04>; - clocks = <0x23 0x143 0x23 0x142>; - clock-names = "baudclk\0apb_pclk"; - resets = <0x23 0x157 0x23 0x156>; - reset-names = "can\0can-apb"; - tx-fifo-depth = <0x01>; - rx-fifo-depth = <0x06>; - status = "okay"; - assigned-clocks = <0x23 0x143>; - assigned-clock-rates = <0xbebc200>; - pinctrl-names = "default"; - pinctrl-0 = <0xec>; - }; - - can@fe590000 { - compatible = "rockchip,rk3568-can-2.0"; - reg = <0x00 0xfe590000 0x00 0x1000>; - interrupts = <0x00 0x03 0x04>; - clocks = <0x23 0x145 0x23 0x144>; - clock-names = "baudclk\0apb_pclk"; - resets = <0x23 0x159 0x23 0x158>; - reset-names = "can\0can-apb"; - tx-fifo-depth = <0x01>; - rx-fifo-depth = <0x06>; - status = "disabled"; - assigned-clocks = <0x23 0x145>; - assigned-clock-rates = <0xbebc200>; - pinctrl-names = "default"; - pinctrl-0 = <0xed>; - }; - - i2c@fe5a0000 { - compatible = "rockchip,rk3399-i2c"; - reg = <0x00 0xfe5a0000 0x00 0x1000>; - clocks = <0x23 0x148 0x23 0x147>; - clock-names = "i2c\0pclk"; - interrupts = <0x00 0x2f 0x04>; - pinctrl-names = "default"; - pinctrl-0 = <0xee>; - #address-cells = <0x01>; - #size-cells = <0x00>; - status = "okay"; - clock-frequency = <0x186a0>; - - gpio@21 { - status = "disabled"; - compatible = "nxp,pca9555"; - reg = <0x21>; - gpio-controller; - #gpio-cells = <0x02>; - gpio-group-num = <0xc8>; - phandle = <0x102>; - }; - - gt1x@14 { - status = "disabled"; - compatible = "goodix,gt1x"; - reg = <0x14>; - pinctrl-names = "default"; - pinctrl-0 = <0xef>; - goodix,rst-gpio = <0x3f 0x0e 0x00>; - goodix,irq-gpio = <0x3f 0x0d 0x08>; - }; - }; - - i2c@fe5b0000 { - compatible = "rockchip,rk3399-i2c"; - reg = <0x00 0xfe5b0000 0x00 0x1000>; - clocks = <0x23 0x14a 0x23 0x149>; - clock-names = "i2c\0pclk"; - interrupts = <0x00 0x30 0x04>; - pinctrl-names = "default"; - pinctrl-0 = <0xf0>; - #address-cells = <0x01>; - #size-cells = <0x00>; - status = "disabled"; - }; - - i2c@fe5c0000 { - compatible = "rockchip,rk3399-i2c"; - reg = <0x00 0xfe5c0000 0x00 0x1000>; - clocks = <0x23 0x14c 0x23 0x14b>; - clock-names = "i2c\0pclk"; - interrupts = <0x00 0x31 0x04>; - pinctrl-names = "default"; - pinctrl-0 = <0xf1>; - #address-cells = <0x01>; - #size-cells = <0x00>; - status = "disabled"; - }; - - i2c@fe5d0000 { - compatible = "rockchip,rk3399-i2c"; - reg = <0x00 0xfe5d0000 0x00 0x1000>; - clocks = <0x23 0x14e 0x23 0x14d>; - clock-names = "i2c\0pclk"; - interrupts = <0x00 0x32 0x04>; - pinctrl-names = "default"; - pinctrl-0 = <0xf2>; - #address-cells = <0x01>; - #size-cells = <0x00>; - status = "okay"; - clock-frequency = <0x61a80>; - - gc8034@37 { - compatible = "galaxycore,gc8034"; - status = "disabled"; - reg = <0x37>; - clocks = <0x23 0xd6>; - clock-names = "xvclk"; - pinctrl-names = "default"; - pinctrl-0 = <0xf3>; - reset-gpios = <0x4a 0x0e 0x01>; - pwdn-gpios = <0xf4 0x0c 0x01>; - rockchip,grf = <0x3b>; - rockchip,camera-module-index = <0x00>; - rockchip,camera-module-facing = "back"; - rockchip,camera-module-name = "RK-CMK-8M-2-v1"; - rockchip,camera-module-lens-name = "CK8401"; - - port { - - endpoint { - remote-endpoint = <0xf5>; - data-lanes = <0x01 0x02 0x03 0x04>; - phandle = <0x130>; - }; - }; - }; - - os04a10@36 { - status = "disabled"; - compatible = "ovti,os04a10"; - reg = <0x36>; - clocks = <0x23 0xd6>; - clock-names = "xvclk"; - power-domains = <0x25 0x08>; - pinctrl-names = "default"; - pinctrl-0 = <0xf3>; - reset-gpios = <0x4a 0x0e 0x01>; - pwdn-gpios = <0xf4 0x0c 0x00>; - rockchip,camera-module-index = <0x00>; - rockchip,camera-module-facing = "back"; - rockchip,camera-module-name = "CMK-OT1607-FV1"; - rockchip,camera-module-lens-name = "M12-40IRC-4MP-F16"; - - port { - - endpoint { - remote-endpoint = <0xf6>; - data-lanes = <0x01 0x02 0x03 0x04>; - phandle = <0x12f>; - }; - }; - }; - - ov5695@36 { - status = "disabled"; - compatible = "ovti,ov5695"; - reg = <0x36>; - clocks = <0x23 0xd6>; - clock-names = "xvclk"; - power-domains = <0x25 0x08>; - pinctrl-names = "default"; - pinctrl-0 = <0xf3>; - reset-gpios = <0x4a 0x0e 0x00>; - pwdn-gpios = <0xf4 0x0c 0x00>; - rockchip,camera-module-index = <0x00>; - rockchip,camera-module-facing = "back"; - rockchip,camera-module-name = "TongJu"; - rockchip,camera-module-lens-name = "CHT842-MD"; - - port { - - endpoint { - remote-endpoint = <0xf7>; - data-lanes = <0x01 0x02>; - phandle = <0x131>; - }; - }; - }; - - XC7160b@1b { - status = "okay"; - compatible = "firefly,xc7160"; - reg = <0x1b>; - clocks = <0x23 0xd6>; - clock-names = "xvclk"; - power-domains = <0x25 0x08>; - pinctrl-names = "default"; - pinctrl-0 = <0xf3>; - reset-gpios = <0x3f 0x1d 0x00>; - pwdn-gpios = <0xf4 0x0c 0x00>; - firefly,clkout-enabled-index = <0x00>; - rockchip,camera-module-index = <0x00>; - rockchip,camera-module-facing = "back"; - rockchip,camera-module-name = "NC"; - rockchip,camera-module-lens-name = "NC"; - - port { - - endpoint { - remote-endpoint = <0xf8>; - data-lanes = <0x01 0x02 0x03 0x04>; - phandle = <0x132>; - }; - }; - }; - - imx415@37 { - status = "okay"; - compatible = "sony,imx415"; - reg = <0x37>; - clocks = <0x23 0xd6>; - clock-names = "xvclk"; - power-domains = <0x25 0x08>; - pinctrl-names = "default"; - pinctrl-0 = <0xf3>; - reset-gpios = <0x3f 0x1d 0x01>; - pwdn-gpios = <0xf4 0x0c 0x00>; - firefly,clkout-enabled-index = <0x00>; - rockchip,camera-module-index = <0x00>; - rockchip,camera-module-facing = "back"; - rockchip,camera-module-name = "CMK-OT2022-PX1"; - rockchip,camera-module-lens-name = "IR0147-50IRC-8M-F20"; - - port { - - endpoint { - remote-endpoint = <0xf9>; - data-lanes = <0x01 0x02 0x03 0x04>; - phandle = <0x133>; - }; - }; - }; - }; - - i2c@fe5e0000 { - compatible = "rockchip,rk3399-i2c"; - reg = <0x00 0xfe5e0000 0x00 0x1000>; - clocks = <0x23 0x150 0x23 0x14f>; - clock-names = "i2c\0pclk"; - interrupts = <0x00 0x33 0x04>; - pinctrl-names = "default"; - pinctrl-0 = <0xfa>; - #address-cells = <0x01>; - #size-cells = <0x00>; - status = "okay"; - - hym8563@51 { - status = "okay"; - compatible = "haoyu,hym8563"; - reg = <0x51>; - #clock-cells = <0x00>; - rtc-irq-gpio = <0x3f 0x1b 0x02>; - clock-frequency = <0x8000>; - }; - - mc3230sensor@4c { - compatible = "gs_mc3230"; - reg = <0x4c>; - type = <0x02>; - irq_enable = <0x00>; - poll_delay_ms = <0x1e>; - layout = <0x04>; - status = "okay"; - }; - - mxc6655xa@15 { - status = "disabled"; - compatible = "gs_mxc6655xa"; - pinctrl-names = "default"; - pinctrl-0 = <0xfb>; - reg = <0x15>; - irq-gpio = <0x4a 0x11 0x08>; - irq_enable = <0x00>; - poll_delay_ms = <0x1e>; - type = <0x02>; - power-off-in-suspend = <0x01>; - layout = <0x01>; - }; - }; - - timer@fe5f0000 { - compatible = "rockchip,rk3568-timer\0rockchip,rk3288-timer"; - reg = <0x00 0xfe5f0000 0x00 0x1000>; - interrupts = <0x00 0x6d 0x04>; - clocks = <0x23 0x16c 0x23 0x16d>; - clock-names = "pclk\0timer"; - }; - - watchdog@fe600000 { - compatible = "snps,dw-wdt"; - reg = <0x00 0xfe600000 0x00 0x100>; - clocks = <0x23 0x116 0x23 0x115>; - clock-names = "tclk\0pclk"; - interrupts = <0x00 0x95 0x04>; - status = "okay"; - }; - - spi@fe610000 { - compatible = "rockchip,rk3066-spi"; - reg = <0x00 0xfe610000 0x00 0x1000>; - interrupts = <0x00 0x67 0x04>; - #address-cells = <0x01>; - #size-cells = <0x00>; - clocks = <0x23 0x152 0x23 0x151>; - clock-names = "spiclk\0apb_pclk"; - dmas = <0x4e 0x14 0x4e 0x15>; - dma-names = "tx\0rx"; - pinctrl-names = "default\0high_speed"; - pinctrl-0 = <0xfc 0xfd 0xfe>; - pinctrl-1 = <0xfc 0xfd 0xff>; - num-cs = <0x02>; - status = "disabled"; - }; - - spi@fe620000 { - compatible = "rockchip,rk3066-spi"; - reg = <0x00 0xfe620000 0x00 0x1000>; - interrupts = <0x00 0x68 0x04>; - #address-cells = <0x01>; - #size-cells = <0x00>; - clocks = <0x23 0x154 0x23 0x153>; - clock-names = "spiclk\0apb_pclk"; - dmas = <0x4e 0x16 0x4e 0x17>; - dma-names = "tx\0rx"; - pinctrl-names = "default\0high_speed"; - pinctrl-0 = <0x100>; - pinctrl-1 = <0x101>; - num-cs = <0x02>; - status = "disabled"; - max-freq = <0x2dc6c00>; - dev-port = <0x00>; - - spi_wk2xxx@0 { - status = "disabled"; - compatible = "firefly,spi-wk2xxx"; - reg = <0x00>; - spi-max-frequency = <0x989680>; - power-gpio = <0x102 0x0f 0x00>; - reset-gpio = <0x102 0x09 0x00>; - irq-gpio = <0x3f 0x06 0x02>; - cs-gpio = <0x4a 0x01 0x00>; - }; - }; - - spi@fe630000 { - compatible = "rockchip,rk3066-spi"; - reg = <0x00 0xfe630000 0x00 0x1000>; - interrupts = <0x00 0x69 0x04>; - #address-cells = <0x01>; - #size-cells = <0x00>; - clocks = <0x23 0x156 0x23 0x155>; - clock-names = "spiclk\0apb_pclk"; - dmas = <0x4e 0x18 0x4e 0x19>; - dma-names = "tx\0rx"; - pinctrl-names = "default\0high_speed"; - pinctrl-0 = <0x103 0x104 0x105>; - pinctrl-1 = <0x103 0x104 0x106>; - num-cs = <0x02>; - status = "disabled"; - }; - - spi@fe640000 { - compatible = "rockchip,rk3066-spi"; - reg = <0x00 0xfe640000 0x00 0x1000>; - interrupts = <0x00 0x6a 0x04>; - #address-cells = <0x01>; - #size-cells = <0x00>; - clocks = <0x23 0x158 0x23 0x157>; - clock-names = "spiclk\0apb_pclk"; - dmas = <0x4e 0x1a 0x4e 0x1b>; - dma-names = "tx\0rx"; - pinctrl-names = "default\0high_speed"; - pinctrl-0 = <0x107 0x108 0x109>; - pinctrl-1 = <0x107 0x108 0x10a>; - num-cs = <0x02>; - status = "disabled"; - }; - - serial@fe650000 { - compatible = "rockchip,rk3568-uart\0snps,dw-apb-uart"; - reg = <0x00 0xfe650000 0x00 0x100>; - interrupts = <0x00 0x75 0x04>; - clocks = <0x23 0x11f 0x23 0x11c>; - clock-names = "baudclk\0apb_pclk"; - reg-shift = <0x02>; - reg-io-width = <0x04>; - dmas = <0x4e 0x02 0x4e 0x03>; - pinctrl-names = "default"; - pinctrl-0 = <0x10b>; - status = "disabled"; - }; - - serial@fe660000 { - compatible = "rockchip,rk3568-uart\0snps,dw-apb-uart"; - reg = <0x00 0xfe660000 0x00 0x100>; - interrupts = <0x00 0x76 0x04>; - clocks = <0x23 0x123 0x23 0x120>; - clock-names = "baudclk\0apb_pclk"; - reg-shift = <0x02>; - reg-io-width = <0x04>; - dmas = <0x4e 0x04 0x4e 0x05>; - pinctrl-names = "default"; - pinctrl-0 = <0x10c>; - status = "disabled"; - }; - - serial@fe670000 { - compatible = "rockchip,rk3568-uart\0snps,dw-apb-uart"; - reg = <0x00 0xfe670000 0x00 0x100>; - interrupts = <0x00 0x77 0x04>; - clocks = <0x23 0x127 0x23 0x124>; - clock-names = "baudclk\0apb_pclk"; - reg-shift = <0x02>; - reg-io-width = <0x04>; - dmas = <0x4e 0x06 0x4e 0x07>; - pinctrl-names = "default"; - pinctrl-0 = <0x10d>; - status = "okay"; - }; - - serial@fe680000 { - compatible = "rockchip,rk3568-uart\0snps,dw-apb-uart"; - reg = <0x00 0xfe680000 0x00 0x100>; - interrupts = <0x00 0x78 0x04>; - clocks = <0x23 0x12b 0x23 0x128>; - clock-names = "baudclk\0apb_pclk"; - reg-shift = <0x02>; - reg-io-width = <0x04>; - dmas = <0x4e 0x08 0x4e 0x09>; - pinctrl-names = "default"; - pinctrl-0 = <0x10e>; - status = "okay"; - }; - - serial@fe690000 { - compatible = "rockchip,rk3568-uart\0snps,dw-apb-uart"; - reg = <0x00 0xfe690000 0x00 0x100>; - interrupts = <0x00 0x79 0x04>; - clocks = <0x23 0x12f 0x23 0x12c>; - clock-names = "baudclk\0apb_pclk"; - reg-shift = <0x02>; - reg-io-width = <0x04>; - dmas = <0x4e 0x0a 0x4e 0x0b>; - pinctrl-names = "default"; - pinctrl-0 = <0x10f>; - status = "disabled"; - }; - - serial@fe6a0000 { - compatible = "rockchip,rk3568-uart\0snps,dw-apb-uart"; - reg = <0x00 0xfe6a0000 0x00 0x100>; - interrupts = <0x00 0x7a 0x04>; - clocks = <0x23 0x133 0x23 0x130>; - clock-names = "baudclk\0apb_pclk"; - reg-shift = <0x02>; - reg-io-width = <0x04>; - dmas = <0x4e 0x0c 0x4e 0x0d>; - pinctrl-names = "default"; - pinctrl-0 = <0x110>; - status = "disabled"; - }; - - serial@fe6b0000 { - compatible = "rockchip,rk3568-uart\0snps,dw-apb-uart"; - reg = <0x00 0xfe6b0000 0x00 0x100>; - interrupts = <0x00 0x7b 0x04>; - clocks = <0x23 0x137 0x23 0x134>; - clock-names = "baudclk\0apb_pclk"; - reg-shift = <0x02>; - reg-io-width = <0x04>; - dmas = <0x4e 0x0e 0x4e 0x0f>; - pinctrl-names = "default"; - pinctrl-0 = <0x111>; - status = "okay"; - }; - - serial@fe6c0000 { - compatible = "rockchip,rk3568-uart\0snps,dw-apb-uart"; - reg = <0x00 0xfe6c0000 0x00 0x100>; - interrupts = <0x00 0x7c 0x04>; - clocks = <0x23 0x13b 0x23 0x138>; - clock-names = "baudclk\0apb_pclk"; - reg-shift = <0x02>; - reg-io-width = <0x04>; - dmas = <0x4e 0x10 0x4e 0x11>; - pinctrl-names = "default"; - pinctrl-0 = <0x112 0x113>; - status = "okay"; - }; - - serial@fe6d0000 { - compatible = "rockchip,rk3568-uart\0snps,dw-apb-uart"; - reg = <0x00 0xfe6d0000 0x00 0x100>; - interrupts = <0x00 0x7d 0x04>; - clocks = <0x23 0x13f 0x23 0x13c>; - clock-names = "baudclk\0apb_pclk"; - reg-shift = <0x02>; - reg-io-width = <0x04>; - dmas = <0x4e 0x12 0x4e 0x13>; - pinctrl-names = "default"; - pinctrl-0 = <0x114>; - status = "okay"; - }; - - pwm@fe6e0000 { - compatible = "rockchip,rk3568-pwm\0rockchip,rk3328-pwm"; - reg = <0x00 0xfe6e0000 0x00 0x10>; - interrupts = <0x00 0x53 0x04>; - #pwm-cells = <0x03>; - pinctrl-names = "active"; - pinctrl-0 = <0x115>; - clocks = <0x23 0x15a 0x23 0x159>; - clock-names = "pwm\0pclk"; - status = "okay"; - }; - - pwm@fe6e0010 { - compatible = "rockchip,rk3568-pwm\0rockchip,rk3328-pwm"; - reg = <0x00 0xfe6e0010 0x00 0x10>; - interrupts = <0x00 0x53 0x04>; - #pwm-cells = <0x03>; - pinctrl-names = "active"; - pinctrl-0 = <0x116>; - clocks = <0x23 0x15a 0x23 0x159>; - clock-names = "pwm\0pclk"; - status = "okay"; - }; - - pwm@fe6e0020 { - compatible = "rockchip,rk3568-pwm\0rockchip,rk3328-pwm"; - reg = <0x00 0xfe6e0020 0x00 0x10>; - interrupts = <0x00 0x53 0x04>; - #pwm-cells = <0x03>; - pinctrl-names = "active"; - pinctrl-0 = <0x117>; - clocks = <0x23 0x15a 0x23 0x159>; - clock-names = "pwm\0pclk"; - status = "disabled"; - }; - - pwm@fe6e0030 { - compatible = "rockchip,remotectl-pwm"; - reg = <0x00 0xfe6e0030 0x00 0x10>; - interrupts = <0x00 0x53 0x04>; - #pwm-cells = <0x03>; - pinctrl-names = "default"; - pinctrl-0 = <0x118>; - clocks = <0x23 0x15a 0x23 0x159>; - clock-names = "pwm\0pclk"; - status = "okay"; - remote_pwm_id = <0x03>; - handle_cpu_id = <0x01>; - remote_support_psci = <0x00>; - - ir_key_firefly { - rockchip,usercode = <0xff00>; - rockchip,key_table = <0xeb 0x74 0xec 0x8b 0xfe 0x9e 0xb7 0x66 0xa3 0x96 0xf4 0x73 0xa7 0x72 0xf8 0xe8 0xfc 0x67 0xfd 0x6c 0xf1 0x69 0xe5 0x6a>; - }; - }; - - pwm@fe6f0000 { - compatible = "rockchip,rk3568-pwm\0rockchip,rk3328-pwm"; - reg = <0x00 0xfe6f0000 0x00 0x10>; - interrupts = <0x00 0x54 0x04>; - #pwm-cells = <0x03>; - pinctrl-names = "active"; - pinctrl-0 = <0x119>; - clocks = <0x23 0x15d 0x23 0x15c>; - clock-names = "pwm\0pclk"; - status = "disabled"; - }; - - pwm@fe6f0010 { - compatible = "rockchip,rk3568-pwm\0rockchip,rk3328-pwm"; - reg = <0x00 0xfe6f0010 0x00 0x10>; - interrupts = <0x00 0x54 0x04>; - #pwm-cells = <0x03>; - pinctrl-names = "active"; - pinctrl-0 = <0x11a>; - clocks = <0x23 0x15d 0x23 0x15c>; - clock-names = "pwm\0pclk"; - status = "disabled"; - }; - - pwm@fe6f0020 { - compatible = "rockchip,rk3568-pwm\0rockchip,rk3328-pwm"; - reg = <0x00 0xfe6f0020 0x00 0x10>; - interrupts = <0x00 0x54 0x04>; - #pwm-cells = <0x03>; - pinctrl-names = "active"; - pinctrl-0 = <0x11b>; - clocks = <0x23 0x15d 0x23 0x15c>; - clock-names = "pwm\0pclk"; - status = "disabled"; - }; - - pwm@fe6f0030 { - compatible = "rockchip,rk3568-pwm\0rockchip,rk3328-pwm"; - reg = <0x00 0xfe6f0030 0x00 0x10>; - interrupts = <0x00 0x54 0x04 0x00 0x58 0x04>; - #pwm-cells = <0x03>; - pinctrl-names = "active"; - pinctrl-0 = <0x11c>; - clocks = <0x23 0x15d 0x23 0x15c>; - clock-names = "pwm\0pclk"; - status = "disabled"; - phandle = <0x157>; - }; - - pwm@fe700000 { - compatible = "rockchip,rk3568-pwm\0rockchip,rk3328-pwm"; - reg = <0x00 0xfe700000 0x00 0x10>; - interrupts = <0x00 0x55 0x04>; - #pwm-cells = <0x03>; - pinctrl-names = "active"; - pinctrl-0 = <0x11d>; - clocks = <0x23 0x160 0x23 0x15f>; - clock-names = "pwm\0pclk"; - status = "disabled"; - }; - - pwm@fe700010 { - compatible = "rockchip,rk3568-pwm\0rockchip,rk3328-pwm"; - reg = <0x00 0xfe700010 0x00 0x10>; - interrupts = <0x00 0x55 0x04>; - #pwm-cells = <0x03>; - pinctrl-names = "active"; - pinctrl-0 = <0x11e>; - clocks = <0x23 0x160 0x23 0x15f>; - clock-names = "pwm\0pclk"; - status = "disabled"; - }; - - pwm@fe700020 { - compatible = "rockchip,rk3568-pwm\0rockchip,rk3328-pwm"; - reg = <0x00 0xfe700020 0x00 0x10>; - interrupts = <0x00 0x55 0x04>; - #pwm-cells = <0x03>; - pinctrl-names = "active"; - pinctrl-0 = <0x11f>; - clocks = <0x23 0x160 0x23 0x15f>; - clock-names = "pwm\0pclk"; - status = "disabled"; - }; - - pwm@fe700030 { - compatible = "rockchip,rk3568-pwm\0rockchip,rk3328-pwm"; - reg = <0x00 0xfe700030 0x00 0x10>; - interrupts = <0x00 0x55 0x04 0x00 0x59 0x04>; - #pwm-cells = <0x03>; - pinctrl-names = "active"; - pinctrl-0 = <0x120>; - clocks = <0x23 0x160 0x23 0x15f>; - clock-names = "pwm\0pclk"; - status = "disabled"; - }; - - tsadc@fe710000 { - compatible = "rockchip,rk3568-tsadc"; - reg = <0x00 0xfe710000 0x00 0x100>; - interrupts = <0x00 0x73 0x04>; - rockchip,grf = <0x3b>; - clocks = <0x23 0x111 0x23 0x10f>; - clock-names = "tsadc\0apb_pclk"; - assigned-clocks = <0x23 0x110 0x23 0x111>; - assigned-clock-rates = <0x1036640 0xaae60>; - resets = <0x23 0x182 0x23 0x181 0x23 0x1d7>; - reset-names = "tsadc\0tsadc-apb\0tsadc-phy"; - #thermal-sensor-cells = <0x01>; - nvmem-cells = <0x121 0x122>; - nvmem-cell-names = "trim_base\0trim_base_frac"; - rockchip,hw-tshut-temp = <0x1d4c0>; - rockchip,hw-tshut-mode = <0x00>; - rockchip,hw-tshut-polarity = <0x00>; - pinctrl-names = "gpio\0otpout"; - pinctrl-0 = <0x123>; - pinctrl-1 = <0x124>; - #address-cells = <0x01>; - #size-cells = <0x00>; - status = "okay"; - phandle = <0x1f>; - - tsadc@0 { - reg = <0x00>; - nvmem-cells = <0x125 0x126>; - nvmem-cell-names = "trim_l\0trim_h"; - }; - - tsadc@1 { - reg = <0x01>; - nvmem-cells = <0x127 0x128>; - nvmem-cell-names = "trim_l\0trim_h"; - }; - }; - - saradc@fe720000 { - compatible = "rockchip,rk3568-saradc\0rockchip,rk3399-saradc"; - reg = <0x00 0xfe720000 0x00 0x100>; - interrupts = <0x00 0x5d 0x04>; - #io-channel-cells = <0x01>; - clocks = <0x23 0x113 0x23 0x112>; - clock-names = "saradc\0apb_pclk"; - resets = <0x23 0x180>; - reset-names = "saradc-apb"; - status = "okay"; - vref-supply = <0x129>; - phandle = <0x49>; - }; - - mailbox@fe780000 { - compatible = "rockchip,rk3568-mailbox\0rockchip,rk3368-mailbox"; - reg = <0x00 0xfe780000 0x00 0x1000>; - interrupts = <0x00 0xb7 0x04 0x00 0xb8 0x04 0x00 0xb9 0x04 0x00 0xba 0x04>; - clocks = <0x23 0x11b>; - clock-names = "pclk_mailbox"; - #mbox-cells = <0x01>; - status = "disabled"; - }; - - phy@fe820000 { - compatible = "rockchip,rk3568-naneng-combphy"; - reg = <0x00 0xfe820000 0x00 0x100>; - #phy-cells = <0x01>; - clocks = <0x3a 0x1f 0x23 0x17c 0x23 0x7f>; - clock-names = "refclk\0apbclk\0pipe_clk"; - assigned-clocks = <0x3a 0x1f>; - assigned-clock-rates = <0x5f5e100>; - resets = <0x23 0x1c4 0x23 0x1c5>; - reset-names = "combphy-apb\0combphy"; - rockchip,pipe-grf = <0x12a>; - rockchip,pipe-phy-grf = <0x12b>; - status = "okay"; - phandle = <0x24>; - }; - - phy@fe830000 { - compatible = "rockchip,rk3568-naneng-combphy"; - reg = <0x00 0xfe830000 0x00 0x100>; - #phy-cells = <0x01>; - clocks = <0x3a 0x22 0x23 0x17d 0x23 0x7f>; - clock-names = "refclk\0apbclk\0pipe_clk"; - assigned-clocks = <0x3a 0x22>; - assigned-clock-rates = <0x5f5e100>; - resets = <0x23 0x1c6 0x23 0x1c7>; - reset-names = "combphy-apb\0combphy"; - rockchip,pipe-grf = <0x12a>; - rockchip,pipe-phy-grf = <0x12c>; - status = "okay"; - phandle = <0x26>; - }; - - phy@fe840000 { - compatible = "rockchip,rk3568-naneng-combphy"; - reg = <0x00 0xfe840000 0x00 0x100>; - #phy-cells = <0x01>; - clocks = <0x3a 0x25 0x23 0x17e 0x23 0x7f>; - clock-names = "refclk\0apbclk\0pipe_clk"; - assigned-clocks = <0x3a 0x25>; - assigned-clock-rates = <0x5f5e100>; - resets = <0x23 0x1c8 0x23 0x1c9>; - reset-names = "combphy-apb\0combphy"; - rockchip,pipe-grf = <0x12a>; - rockchip,pipe-phy-grf = <0x12d>; - status = "okay"; - phandle = <0x27>; - }; - - phy@fe850000 { - compatible = "rockchip,rk3568-dsi-dphy\0rockchip,rk3568-video-phy"; - reg = <0x00 0xfe850000 0x00 0x10000 0x00 0xfe060000 0x00 0x10000>; - reg-names = "phy\0host"; - clocks = <0x3a 0x17 0x23 0x17a 0x23 0xe8>; - clock-names = "ref\0pclk\0pclk_host"; - #clock-cells = <0x00>; - resets = <0x23 0x1bb>; - reset-names = "apb"; - power-domains = <0x25 0x09>; - #phy-cells = <0x00>; - status = "disabled"; - phandle = <0x34>; - }; - - phy@fe860000 { - compatible = "rockchip,rk3568-dsi-dphy\0rockchip,rk3568-video-phy"; - reg = <0x00 0xfe860000 0x00 0x10000 0x00 0xfe070000 0x00 0x10000>; - reg-names = "phy\0host"; - clocks = <0x3a 0x19 0x23 0x17b 0x23 0xe9>; - clock-names = "ref\0pclk\0pclk_host"; - #clock-cells = <0x00>; - resets = <0x23 0x1bc>; - reset-names = "apb"; - power-domains = <0x25 0x09>; - #phy-cells = <0x00>; - status = "disabled"; - phandle = <0x36>; - }; - - csi2-dphy-hw@fe870000 { - compatible = "rockchip,rk3568-csi2-dphy-hw"; - reg = <0x00 0xfe870000 0x00 0x1000>; - clocks = <0x23 0x179>; - clock-names = "pclk"; - rockchip,grf = <0x3b>; - status = "okay"; - phandle = <0x12e>; - }; - - csi2-dphy0 { - compatible = "rockchip,rk3568-csi2-dphy"; - rockchip,hw = <0x12e>; - status = "okay"; - - ports { - #address-cells = <0x01>; - #size-cells = <0x00>; - - port@0 { - reg = <0x00>; - #address-cells = <0x01>; - #size-cells = <0x00>; - - endpoint@1 { - reg = <0x01>; - remote-endpoint = <0x12f>; - data-lanes = <0x01 0x02 0x03 0x04>; - phandle = <0xf6>; - }; - - endpoint@2 { - reg = <0x02>; - remote-endpoint = <0x130>; - data-lanes = <0x01 0x02 0x03 0x04>; - phandle = <0xf5>; - }; - - endpoint@3 { - reg = <0x03>; - remote-endpoint = <0x131>; - data-lanes = <0x01 0x02>; - phandle = <0xf7>; - }; - - endpoint@4 { - reg = <0x04>; - remote-endpoint = <0x132>; - data-lanes = <0x01 0x02 0x03 0x04>; - phandle = <0xf8>; - }; - - endpoint@5 { - reg = <0x05>; - remote-endpoint = <0x133>; - data-lanes = <0x01 0x02 0x03 0x04>; - phandle = <0xf9>; - }; - }; - - port@1 { - reg = <0x01>; - #address-cells = <0x01>; - #size-cells = <0x00>; - - endpoint@0 { - reg = <0x00>; - remote-endpoint = <0x134>; - phandle = <0x8c>; - }; - }; - }; - }; - - csi2-dphy1 { - compatible = "rockchip,rk3568-csi2-dphy"; - rockchip,hw = <0x12e>; - status = "disabled"; - }; - - csi2-dphy2 { - compatible = "rockchip,rk3568-csi2-dphy"; - rockchip,hw = <0x12e>; - status = "disabled"; - }; - - usb2-phy@fe8a0000 { - compatible = "rockchip,rk3568-usb2phy"; - reg = <0x00 0xfe8a0000 0x00 0x10000>; - interrupts = <0x00 0x87 0x04>; - clocks = <0x3a 0x13>; - clock-names = "phyclk"; - #clock-cells = <0x00>; - assigned-clocks = <0x23 0x0b>; - assigned-clock-parents = <0x29>; - clock-output-names = "usb480m_phy"; - rockchip,usbgrf = <0x135>; - status = "okay"; - phandle = <0x29>; - - host-port { - #phy-cells = <0x00>; - status = "okay"; - phy-supply = <0x136>; - phandle = <0x2b>; - }; - - otg-port { - #phy-cells = <0x00>; - status = "okay"; - phandle = <0x28>; - }; - }; - - usb2-phy@fe8b0000 { - compatible = "rockchip,rk3568-usb2phy"; - reg = <0x00 0xfe8b0000 0x00 0x10000>; - interrupts = <0x00 0x88 0x04>; - clocks = <0x3a 0x15>; - clock-names = "phyclk"; - #clock-cells = <0x00>; - rockchip,usbgrf = <0x137>; - status = "okay"; - phandle = <0x2c>; - - host-port { - #phy-cells = <0x00>; - status = "okay"; - phy-supply = <0x136>; - phandle = <0x2e>; - }; - - otg-port { - #phy-cells = <0x00>; - status = "okay"; - phy-supply = <0x136>; - phandle = <0x2d>; - }; - }; - - phy@fe8c0000 { - compatible = "rockchip,rk3568-pcie3-phy"; - reg = <0x00 0xfe8c0000 0x00 0x20000>; - #phy-cells = <0x00>; - clocks = <0x3a 0x26 0x3a 0x27 0x23 0x177>; - clock-names = "refclk_m\0refclk_n\0pclk"; - resets = <0x23 0x1be>; - reset-names = "phy"; - rockchip,phy-grf = <0x138>; - status = "okay"; - phandle = <0xc0>; - }; - - pinctrl { - compatible = "rockchip,rk3568-pinctrl"; - rockchip,grf = <0x3b>; - rockchip,pmu = <0x3c>; - #address-cells = <0x02>; - #size-cells = <0x02>; - ranges; - - gpio0@fdd60000 { - compatible = "rockchip,gpio-bank"; - reg = <0x00 0xfdd60000 0x00 0x100>; - interrupts = <0x00 0x21 0x04>; - clocks = <0x3a 0x2e 0x3a 0x0c>; - gpio-controller; - #gpio-cells = <0x02>; - interrupt-controller; - #interrupt-cells = <0x02>; - phandle = <0x3f>; - }; - - gpio1@fe740000 { - compatible = "rockchip,gpio-bank"; - reg = <0x00 0xfe740000 0x00 0x100>; - interrupts = <0x00 0x22 0x04>; - clocks = <0x23 0x163 0x23 0x164>; - gpio-controller; - #gpio-cells = <0x02>; - interrupt-controller; - #interrupt-cells = <0x02>; - phandle = <0x159>; - }; - - gpio2@fe750000 { - compatible = "rockchip,gpio-bank"; - reg = <0x00 0xfe750000 0x00 0x100>; - interrupts = <0x00 0x23 0x04>; - clocks = <0x23 0x165 0x23 0x166>; - gpio-controller; - #gpio-cells = <0x02>; - interrupt-controller; - #interrupt-cells = <0x02>; - phandle = <0x91>; - }; - - gpio3@fe760000 { - compatible = "rockchip,gpio-bank"; - reg = <0x00 0xfe760000 0x00 0x100>; - interrupts = <0x00 0x24 0x04>; - clocks = <0x23 0x167 0x23 0x168>; - gpio-controller; - #gpio-cells = <0x02>; - interrupt-controller; - #interrupt-cells = <0x02>; - phandle = <0x4a>; - }; - - gpio4@fe770000 { - compatible = "rockchip,gpio-bank"; - reg = <0x00 0xfe770000 0x00 0x100>; - interrupts = <0x00 0x25 0x04>; - clocks = <0x23 0x169 0x23 0x16a>; - gpio-controller; - #gpio-cells = <0x02>; - interrupt-controller; - #interrupt-cells = <0x02>; - phandle = <0xf4>; - }; - - pcfg-pull-up { - bias-pull-up; - phandle = <0x13b>; - }; - - pcfg-pull-down { - bias-pull-down; - phandle = <0x142>; - }; - - pcfg-pull-none { - bias-disable; - phandle = <0x139>; - }; - - pcfg-pull-none-drv-level-1 { - bias-disable; - drive-strength = <0x01>; - phandle = <0x13d>; - }; - - pcfg-pull-none-drv-level-2 { - bias-disable; - drive-strength = <0x02>; - phandle = <0x13c>; - }; - - pcfg-pull-none-drv-level-3 { - bias-disable; - drive-strength = <0x03>; - phandle = <0x141>; - }; - - pcfg-pull-up-drv-level-1 { - bias-pull-up; - drive-strength = <0x01>; - phandle = <0x140>; - }; - - pcfg-pull-up-drv-level-2 { - bias-pull-up; - drive-strength = <0x02>; - phandle = <0x13a>; - }; - - pcfg-pull-none-smt { - bias-disable; - input-schmitt-enable; - phandle = <0x13e>; - }; - - pcfg-output-low-pull-down { - output-low; - bias-pull-down; - phandle = <0x13f>; - }; - - acodec { - - acodec-pins { - rockchip,pins = <0x01 0x09 0x05 0x139 0x01 0x01 0x05 0x139 0x01 0x00 0x05 0x139 0x01 0x07 0x05 0x139 0x01 0x08 0x05 0x139 0x01 0x03 0x05 0x139 0x01 0x05 0x05 0x139>; - phandle = <0xea>; - }; - }; - - cam { - - vcc-cam { - rockchip,pins = <0x00 0x11 0x00 0x139>; - phandle = <0x158>; - }; - }; - - can1 { - - can1m1-pins { - rockchip,pins = <0x04 0x12 0x03 0x139 0x04 0x13 0x03 0x139>; - phandle = <0xec>; - }; - }; - - can2 { - - can2m0-pins { - rockchip,pins = <0x04 0x0c 0x03 0x139 0x04 0x0d 0x03 0x139>; - phandle = <0xed>; - }; - }; - - cif { - - cif-clk { - rockchip,pins = <0x04 0x10 0x01 0x139>; - phandle = <0xf3>; - }; - }; - - clk32k { - - clk32k-out0 { - rockchip,pins = <0x00 0x08 0x02 0x139>; - phandle = <0x22>; - }; - }; - - ebc { - - ebc-pins { - rockchip,pins = <0x04 0x10 0x02 0x139 0x04 0x0b 0x02 0x139 0x04 0x0c 0x02 0x139 0x04 0x06 0x02 0x139 0x04 0x11 0x02 0x139 0x03 0x16 0x02 0x139 0x03 0x17 0x02 0x139 0x03 0x18 0x02 0x139 0x03 0x19 0x02 0x139 0x03 0x1a 0x02 0x139 0x03 0x1b 0x02 0x139 0x03 0x1c 0x02 0x139 0x03 0x1d 0x02 0x139 0x03 0x1e 0x02 0x139 0x03 0x1f 0x02 0x139 0x04 0x00 0x02 0x139 0x04 0x01 0x02 0x139 0x04 0x02 0x02 0x139 0x04 0x03 0x02 0x139 0x04 0x04 0x02 0x139 0x04 0x05 0x02 0x139 0x04 0x0e 0x02 0x139 0x04 0x0f 0x02 0x139>; - phandle = <0x7c>; - }; - }; - - fspi { - - fspi-pins { - rockchip,pins = <0x01 0x18 0x01 0x139 0x01 0x1b 0x01 0x139 0x01 0x19 0x01 0x139 0x01 0x1a 0x01 0x139 0x01 0x17 0x02 0x139 0x01 0x1c 0x01 0x139>; - phandle = <0xd4>; - }; - }; - - gmac0 { - - gmac0-miim { - rockchip,pins = <0x02 0x13 0x02 0x139 0x02 0x14 0x02 0x139>; - phandle = <0xc8>; - }; - - gmac0-clkinout { - rockchip,pins = <0x02 0x12 0x02 0x139>; - phandle = <0xcd>; - }; - - gmac0-rx-bus2 { - rockchip,pins = <0x02 0x0e 0x01 0x139 0x02 0x0f 0x02 0x139 0x02 0x10 0x02 0x139>; - phandle = <0xca>; - }; - - gmac0-tx-bus2 { - rockchip,pins = <0x02 0x0b 0x01 0x13c 0x02 0x0c 0x01 0x13c 0x02 0x0d 0x01 0x139>; - phandle = <0xc9>; - }; - - gmac0-rgmii-clk { - rockchip,pins = <0x02 0x05 0x02 0x139 0x02 0x08 0x02 0x13d>; - phandle = <0xcb>; - }; - - gmac0-rgmii-bus { - rockchip,pins = <0x02 0x03 0x02 0x139 0x02 0x04 0x02 0x139 0x02 0x06 0x02 0x13c 0x02 0x07 0x02 0x13c>; - phandle = <0xcc>; - }; - }; - - gmac1 { - - gmac1m1-miim { - rockchip,pins = <0x04 0x0e 0x03 0x139 0x04 0x0f 0x03 0x139>; - phandle = <0x93>; - }; - - gmac1m1-clkinout { - rockchip,pins = <0x04 0x11 0x03 0x139>; - phandle = <0x98>; - }; - - gmac1m1-rx-bus2 { - rockchip,pins = <0x04 0x07 0x03 0x139 0x04 0x08 0x03 0x139 0x04 0x09 0x03 0x139>; - phandle = <0x95>; - }; - - gmac1m1-tx-bus2 { - rockchip,pins = <0x04 0x04 0x03 0x13c 0x04 0x05 0x03 0x13c 0x04 0x06 0x03 0x139>; - phandle = <0x94>; - }; - - gmac1m1-rgmii-clk { - rockchip,pins = <0x04 0x03 0x03 0x139 0x04 0x00 0x03 0x13d>; - phandle = <0x96>; - }; - - gmac1m1-rgmii-bus { - rockchip,pins = <0x04 0x01 0x03 0x139 0x04 0x02 0x03 0x139 0x03 0x1e 0x03 0x13c 0x03 0x1f 0x03 0x13c>; - phandle = <0x97>; - }; - }; - - hdmitx { - - hdmitxm0-cec { - rockchip,pins = <0x04 0x19 0x01 0x139>; - phandle = <0xac>; - }; - - hdmitx-scl { - rockchip,pins = <0x04 0x17 0x01 0x139>; - phandle = <0xaa>; - }; - - hdmitx-sda { - rockchip,pins = <0x04 0x18 0x01 0x139>; - phandle = <0xab>; - }; - }; - - i2c0 { - - i2c0-xfer { - rockchip,pins = <0x00 0x09 0x01 0x13e 0x00 0x0a 0x01 0x13e>; - phandle = <0x3d>; - }; - }; - - i2c1 { - - i2c1-xfer { - rockchip,pins = <0x00 0x0b 0x01 0x13e 0x00 0x0c 0x01 0x13e>; - phandle = <0xee>; - }; - }; - - i2c2 { - - i2c2m0-xfer { - rockchip,pins = <0x00 0x0d 0x01 0x13e 0x00 0x0e 0x01 0x13e>; - phandle = <0xf0>; - }; - }; - - i2c3 { - - i2c3m0-xfer { - rockchip,pins = <0x01 0x01 0x01 0x13e 0x01 0x00 0x01 0x13e>; - phandle = <0xf1>; - }; - }; - - i2c4 { - - i2c4m0-xfer { - rockchip,pins = <0x04 0x0b 0x01 0x13e 0x04 0x0a 0x01 0x13e>; - phandle = <0xf2>; - }; - }; - - i2c5 { - - i2c5m0-xfer { - rockchip,pins = <0x03 0x0b 0x04 0x13e 0x03 0x0c 0x04 0x13e>; - phandle = <0xfa>; - }; - }; - - i2s1 { - - i2s1m0-lrcktx { - rockchip,pins = <0x01 0x05 0x01 0x13e>; - phandle = <0xd7>; - }; - - i2s1m0-mclk { - rockchip,pins = <0x01 0x02 0x01 0x13e>; - phandle = <0x47>; - }; - - i2s1m0-sclktx { - rockchip,pins = <0x01 0x03 0x01 0x13e>; - phandle = <0xd6>; - }; - - i2s1m0-sdi0 { - rockchip,pins = <0x01 0x0b 0x01 0x139>; - phandle = <0xd8>; - }; - - i2s1m0-sdo0 { - rockchip,pins = <0x01 0x07 0x01 0x139>; - phandle = <0xd9>; - }; - }; - - i2s2 { - - i2s2m0-lrcktx { - rockchip,pins = <0x02 0x13 0x01 0x13e>; - phandle = <0xdb>; - }; - - i2s2m0-sclktx { - rockchip,pins = <0x02 0x12 0x01 0x13e>; - phandle = <0xda>; - }; - - i2s2m0-sdi { - rockchip,pins = <0x02 0x15 0x01 0x139>; - phandle = <0xdc>; - }; - - i2s2m0-sdo { - rockchip,pins = <0x02 0x14 0x01 0x139>; - phandle = <0xdd>; - }; - }; - - i2s3 { - - i2s3m0-lrck { - rockchip,pins = <0x03 0x04 0x04 0x13e>; - phandle = <0xdf>; - }; - - i2s3m0-sclk { - rockchip,pins = <0x03 0x03 0x04 0x13e>; - phandle = <0xde>; - }; - - i2s3m0-sdi { - rockchip,pins = <0x03 0x06 0x04 0x139>; - phandle = <0xe0>; - }; - - i2s3m0-sdo { - rockchip,pins = <0x03 0x05 0x04 0x139>; - phandle = <0xe1>; - }; - }; - - lcdc { - - lcdc-ctl { - rockchip,pins = <0x03 0x00 0x01 0x139 0x02 0x18 0x01 0x139 0x02 0x19 0x01 0x139 0x02 0x1a 0x01 0x139 0x02 0x1b 0x01 0x139 0x02 0x1c 0x01 0x139 0x02 0x1d 0x01 0x139 0x02 0x1e 0x01 0x139 0x02 0x1f 0x01 0x139 0x03 0x01 0x01 0x139 0x03 0x02 0x01 0x139 0x03 0x03 0x01 0x139 0x03 0x04 0x01 0x139 0x03 0x05 0x01 0x139 0x03 0x06 0x01 0x139 0x03 0x07 0x01 0x139 0x03 0x08 0x01 0x139 0x03 0x09 0x01 0x139 0x03 0x0a 0x01 0x139 0x03 0x0b 0x01 0x139 0x03 0x0c 0x01 0x139 0x03 0x0d 0x01 0x139 0x03 0x0e 0x01 0x139 0x03 0x0f 0x01 0x139 0x03 0x10 0x01 0x139 0x03 0x13 0x01 0x139 0x03 0x11 0x01 0x139 0x03 0x12 0x01 0x139>; - phandle = <0x39>; - }; - }; - - pdm { - - pdmm0-clk { - rockchip,pins = <0x01 0x06 0x03 0x139>; - phandle = <0xe2>; - }; - - pdmm0-clk1 { - rockchip,pins = <0x01 0x04 0x03 0x139>; - phandle = <0xe3>; - }; - - pdmm0-sdi0 { - rockchip,pins = <0x01 0x0b 0x02 0x139>; - phandle = <0xe4>; - }; - - pdmm0-sdi1 { - rockchip,pins = <0x01 0x0a 0x03 0x139>; - phandle = <0xe5>; - }; - - pdmm0-sdi2 { - rockchip,pins = <0x01 0x09 0x03 0x139>; - phandle = <0xe6>; - }; - - pdmm0-sdi3 { - rockchip,pins = <0x01 0x08 0x03 0x139>; - phandle = <0xe7>; - }; - }; - - pmic { - - pmic_int { - rockchip,pins = <0x00 0x03 0x00 0x13b>; - phandle = <0x40>; - }; - - soc_slppin_gpio { - rockchip,pins = <0x00 0x02 0x00 0x13f>; - phandle = <0x43>; - }; - - soc_slppin_slp { - rockchip,pins = <0x00 0x02 0x01 0x13b>; - phandle = <0x41>; - }; - - soc_slppin_rst { - rockchip,pins = <0x00 0x02 0x02 0x139>; - }; - - spk_ctl_gpio { - rockchip,pins = <0x03 0x15 0x00 0x13b>; - phandle = <0x48>; - }; - }; - - pwm0 { - - pwm0m0-pins { - rockchip,pins = <0x00 0x0f 0x01 0x139>; - phandle = <0x50>; - }; - }; - - pwm1 { - - pwm1m0-pins { - rockchip,pins = <0x00 0x10 0x01 0x139>; - phandle = <0x51>; - }; - }; - - pwm2 { - - pwm2m0-pins { - rockchip,pins = <0x00 0x11 0x01 0x139>; - phandle = <0x52>; - }; - }; - - pwm3 { - - pwm3-pins { - rockchip,pins = <0x00 0x12 0x01 0x139>; - phandle = <0x53>; - }; - }; - - pwm4 { - - pwm4-pins { - rockchip,pins = <0x00 0x13 0x01 0x139>; - phandle = <0x115>; - }; - }; - - pwm5 { - - pwm5-pins { - rockchip,pins = <0x00 0x14 0x01 0x139>; - phandle = <0x116>; - }; - }; - - pwm6 { - - pwm6-pins { - rockchip,pins = <0x00 0x15 0x01 0x139>; - phandle = <0x117>; - }; - }; - - pwm7 { - - pwm7-pins { - rockchip,pins = <0x00 0x16 0x01 0x139>; - phandle = <0x118>; - }; - }; - - pwm8 { - - pwm8m0-pins { - rockchip,pins = <0x03 0x09 0x05 0x139>; - phandle = <0x119>; - }; - }; - - pwm9 { - - pwm9m0-pins { - rockchip,pins = <0x03 0x0a 0x05 0x139>; - phandle = <0x11a>; - }; - }; - - pwm10 { - - pwm10m0-pins { - rockchip,pins = <0x03 0x0d 0x05 0x139>; - phandle = <0x11b>; - }; - }; - - pwm11 { - - pwm11m0-pins { - rockchip,pins = <0x03 0x0e 0x05 0x139>; - phandle = <0x11c>; - }; - }; - - pwm12 { - - pwm12m0-pins { - rockchip,pins = <0x03 0x0f 0x02 0x139>; - phandle = <0x11d>; - }; - }; - - pwm13 { - - pwm13m0-pins { - rockchip,pins = <0x03 0x10 0x02 0x139>; - phandle = <0x11e>; - }; - }; - - pwm14 { - - pwm14m0-pins { - rockchip,pins = <0x03 0x14 0x01 0x139>; - phandle = <0x11f>; - }; - }; - - pwm15 { - - pwm15m0-pins { - rockchip,pins = <0x03 0x15 0x01 0x139>; - phandle = <0x120>; - }; - }; - - scr { - - scr-pins { - rockchip,pins = <0x01 0x02 0x03 0x139 0x01 0x07 0x03 0x13b 0x01 0x03 0x03 0x13b 0x01 0x05 0x03 0x139>; - phandle = <0xeb>; - }; - }; - - sdmmc0 { - - sdmmc0-bus4 { - rockchip,pins = <0x01 0x1d 0x01 0x13a 0x01 0x1e 0x01 0x13a 0x01 0x1f 0x01 0x13a 0x02 0x00 0x01 0x13a>; - phandle = <0xd0>; - }; - - sdmmc0-clk { - rockchip,pins = <0x02 0x02 0x01 0x13a>; - phandle = <0xd1>; - }; - - sdmmc0-cmd { - rockchip,pins = <0x02 0x01 0x01 0x13a>; - phandle = <0xd2>; - }; - - sdmmc0-det { - rockchip,pins = <0x00 0x04 0x01 0x13b>; - phandle = <0xd3>; - }; - }; - - sdmmc2 { - - sdmmc2m0-bus4 { - rockchip,pins = <0x03 0x16 0x03 0x13a 0x03 0x17 0x03 0x13a 0x03 0x18 0x03 0x13a 0x03 0x19 0x03 0x13a>; - phandle = <0xb0>; - }; - - sdmmc2m0-clk { - rockchip,pins = <0x03 0x1b 0x03 0x13a>; - phandle = <0xb2>; - }; - - sdmmc2m0-cmd { - rockchip,pins = <0x03 0x1a 0x03 0x13a>; - phandle = <0xb1>; - }; - }; - - spdif { - - spdifm1-tx { - rockchip,pins = <0x03 0x15 0x02 0x139>; - phandle = <0xe9>; - }; - }; - - spi0 { - - spi0m0-pins { - rockchip,pins = <0x00 0x0d 0x02 0x139 0x00 0x15 0x02 0x139 0x00 0x0e 0x02 0x139>; - phandle = <0xfe>; - }; - - spi0m0-cs0 { - rockchip,pins = <0x00 0x16 0x02 0x139>; - phandle = <0xfc>; - }; - - spi0m0-cs1 { - rockchip,pins = <0x00 0x14 0x02 0x139>; - phandle = <0xfd>; - }; - }; - - spi1 { - - spi1m1-pins { - rockchip,pins = <0x03 0x13 0x03 0x139 0x03 0x12 0x03 0x139 0x03 0x11 0x03 0x139>; - phandle = <0x100>; - }; - }; - - spi2 { - - spi2m0-pins { - rockchip,pins = <0x02 0x11 0x04 0x139 0x02 0x12 0x04 0x139 0x02 0x13 0x04 0x139>; - phandle = <0x105>; - }; - - spi2m0-cs0 { - rockchip,pins = <0x02 0x14 0x04 0x139>; - phandle = <0x103>; - }; - - spi2m0-cs1 { - rockchip,pins = <0x02 0x15 0x04 0x139>; - phandle = <0x104>; - }; - }; - - spi3 { - - spi3m0-pins { - rockchip,pins = <0x04 0x0b 0x04 0x139 0x04 0x08 0x04 0x139 0x04 0x0a 0x04 0x139>; - phandle = <0x109>; - }; - - spi3m0-cs0 { - rockchip,pins = <0x04 0x06 0x04 0x139>; - phandle = <0x107>; - }; - - spi3m0-cs1 { - rockchip,pins = <0x04 0x07 0x04 0x139>; - phandle = <0x108>; - }; - }; - - tsadc { - - tsadc-shutorg { - rockchip,pins = <0x00 0x01 0x02 0x139>; - phandle = <0x124>; - }; - }; - - uart0 { - - uart0-xfer { - rockchip,pins = <0x00 0x10 0x03 0x13b 0x00 0x11 0x03 0x13b>; - phandle = <0x4f>; - }; - }; - - uart1 { - - uart1m0-xfer { - rockchip,pins = <0x02 0x0b 0x02 0x13b 0x02 0x0c 0x02 0x13b>; - phandle = <0x10b>; - }; - }; - - uart2 { - - uart2m0-xfer { - rockchip,pins = <0x00 0x18 0x01 0x13b 0x00 0x19 0x01 0x13b>; - phandle = <0x10c>; - }; - }; - - uart3 { - - uart3m1-xfer { - rockchip,pins = <0x03 0x10 0x04 0x13b 0x03 0x0f 0x04 0x13b>; - phandle = <0x10d>; - }; - }; - - uart4 { - - uart4m1-xfer { - rockchip,pins = <0x03 0x09 0x04 0x13b 0x03 0x0a 0x04 0x13b>; - phandle = <0x10e>; - }; - }; - - uart5 { - - uart5m0-xfer { - rockchip,pins = <0x02 0x01 0x03 0x13b 0x02 0x02 0x03 0x13b>; - phandle = <0x10f>; - }; - }; - - uart6 { - - uart6m0-xfer { - rockchip,pins = <0x02 0x03 0x03 0x13b 0x02 0x04 0x03 0x13b>; - phandle = <0x110>; - }; - }; - - uart7 { - - uart7m1-xfer { - rockchip,pins = <0x03 0x15 0x04 0x13b 0x03 0x14 0x04 0x13b>; - phandle = <0x111>; - }; - }; - - uart8 { - - uart8m0-xfer { - rockchip,pins = <0x02 0x16 0x02 0x13b 0x02 0x15 0x03 0x13b>; - phandle = <0x112>; - }; - - uart8m0-ctsn { - rockchip,pins = <0x02 0x0a 0x03 0x139>; - phandle = <0x113>; - }; - - uart8m0-rtsn { - rockchip,pins = <0x02 0x09 0x03 0x139>; - phandle = <0x155>; - }; - }; - - uart9 { - - uart9m1-xfer { - rockchip,pins = <0x04 0x16 0x04 0x13b 0x04 0x15 0x04 0x13b>; - phandle = <0x114>; - }; - }; - - spi0-hs { - - spi0m0-pins { - rockchip,pins = <0x00 0x0d 0x02 0x140 0x00 0x15 0x02 0x140 0x00 0x0e 0x02 0x140>; - phandle = <0xff>; - }; - }; - - spi1-hs { - - spi1m1-pins { - rockchip,pins = <0x03 0x13 0x03 0x140 0x03 0x12 0x03 0x140 0x03 0x11 0x03 0x140>; - phandle = <0x101>; - }; - }; - - spi2-hs { - - spi2m0-pins { - rockchip,pins = <0x02 0x11 0x04 0x140 0x02 0x12 0x04 0x140 0x02 0x13 0x04 0x140>; - phandle = <0x106>; - }; - }; - - spi3-hs { - - spi3m0-pins { - rockchip,pins = <0x04 0x0b 0x04 0x140 0x04 0x08 0x04 0x140 0x04 0x0a 0x04 0x140>; - phandle = <0x10a>; - }; - }; - - gpio-func { - - tsadc-gpio-func { - rockchip,pins = <0x00 0x01 0x00 0x139>; - phandle = <0x123>; - }; - }; - - usb { - - vcc5v0-host-en { - rockchip,pins = <0x00 0x06 0x00 0x139>; - phandle = <0x150>; - }; - - vcc5v0-otg-en { - rockchip,pins = <0x00 0x05 0x00 0x139>; - phandle = <0x151>; - }; - - vcc-hub-reset-en { - rockchip,pins = <0x01 0x04 0x00 0x139>; - phandle = <0x15a>; - }; - }; - - headphone { - - hp-det { - rockchip,pins = <0x03 0x12 0x00 0x142>; - phandle = <0x148>; - }; - }; - - sdio-pwrseq { - - wifi-enable-h { - rockchip,pins = <0x03 0x1d 0x00 0x139>; - phandle = <0x153>; - }; - }; - - wireless-wlan { - - wifi-host-wake-irq { - rockchip,pins = <0x03 0x1c 0x00 0x142>; - phandle = <0x154>; - }; - }; - - wireless-bluetooth { - - uart8-gpios { - rockchip,pins = <0x02 0x09 0x00 0x139>; - phandle = <0x156>; - }; - }; - - touch { - - touch-gpio { - rockchip,pins = <0x00 0x0d 0x00 0x13b 0x00 0x0e 0x00 0x139>; - phandle = <0xef>; - }; - }; - - mxc6655xa { - - mxc6655xa_irq_gpio { - rockchip,pins = <0x03 0x11 0x00 0x139>; - phandle = <0xfb>; - }; - }; - - pcie { - - pcie-pi6c-oe-en { - rockchip,pins = <0x03 0x07 0x00 0x139>; - phandle = <0x15b>; - }; - }; - - leds { - - leds-gpio { - rockchip,pins = <0x01 0x0a 0x00 0x139 0x01 0x09 0x00 0x139 0x01 0x08 0x00 0x139 0x02 0x11 0x00 0x139>; - phandle = <0x15d>; - }; - }; - - 4g { - - vcc-4g-power-en { - rockchip,pins = <0x03 0x03 0x00 0x139>; - phandle = <0x15c>; - }; - }; - - usb-typec { - - usbc0-int { - rockchip,pins = <0x00 0x11 0x00 0x13b>; - phandle = <0x4b>; - }; - - vcc5v0-typec0-en { - rockchip,pins = <0x00 0x05 0x00 0x139>; - }; - }; - }; - - audiopwmout-diff { - status = "disabled"; - compatible = "simple-audio-card"; - simple-audio-card,format = "i2s"; - simple-audio-card,name = "rockchip,audiopwmout-diff"; - simple-audio-card,mclk-fs = <0x100>; - simple-audio-card,bitclock-master = <0x143>; - simple-audio-card,frame-master = <0x143>; - - simple-audio-card,cpu { - sound-dai = <0x144>; - }; - - simple-audio-card,codec { - sound-dai = <0x145>; - phandle = <0x143>; - }; - }; - - dc-12v { - compatible = "regulator-fixed"; - regulator-name = "dc_12v"; - regulator-always-on; - regulator-boot-on; - regulator-min-microvolt = <0xb71b00>; - regulator-max-microvolt = <0xb71b00>; - phandle = <0x14f>; - }; - - hdmi-sound { - compatible = "simple-audio-card"; - simple-audio-card,format = "i2s"; - simple-audio-card,mclk-fs = <0x80>; - simple-audio-card,name = "rockchip,hdmi"; - status = "okay"; - - simple-audio-card,cpu { - sound-dai = <0x146>; - }; - - simple-audio-card,codec { - sound-dai = <0x147>; - }; - }; - - rk-headset { - status = "disabled"; - compatible = "rockchip_headset"; - headset_gpio = <0x4a 0x12 0x01>; - pinctrl-names = "default"; - pinctrl-0 = <0x148>; - }; - - dummy-codec { - status = "disabled"; - compatible = "rockchip,dummy-codec"; - #sound-dai-cells = <0x00>; - phandle = <0x14a>; - }; - - pdm-mic-array { - status = "disabled"; - compatible = "simple-audio-card"; - simple-audio-card,name = "rockchip,pdm-mic-array"; - - simple-audio-card,cpu { - sound-dai = <0x149>; - }; - - simple-audio-card,codec { - sound-dai = <0x14a>; - }; - }; - - rk809-sound { - status = "okay"; - compatible = "rockchip,multicodecs-card"; - rockchip,card-name = "rockchip-rk809"; - rockchip,format = "i2s"; - rockchip,mclk-fs = <0x100>; - rockchip,cpu = <0xe8>; - rockchip,codec = <0x14b>; - }; - - spdif-sound { - status = "okay"; - compatible = "simple-audio-card"; - simple-audio-card,name = "ROCKCHIP,SPDIF"; - - simple-audio-card,cpu { - sound-dai = <0x14c>; - }; - - simple-audio-card,codec { - sound-dai = <0x14d>; - }; - }; - - spdif-out { - status = "okay"; - compatible = "linux,spdif-dit"; - #sound-dai-cells = <0x00>; - phandle = <0x14d>; - }; - - vad-sound { - status = "disabled"; - compatible = "rockchip,multicodecs-card"; - rockchip,card-name = "rockchip,rk3568-vad"; - rockchip,cpu = <0xe8>; - rockchip,codec = <0x14b 0x14e>; - }; - - vcc3v3-sys { - compatible = "regulator-fixed"; - regulator-name = "vcc3v3_sys"; - regulator-always-on; - regulator-boot-on; - regulator-min-microvolt = <0x325aa0>; - regulator-max-microvolt = <0x325aa0>; - vin-supply = <0x14f>; - phandle = <0x46>; - }; - - vcc5v0-sys { - compatible = "regulator-fixed"; - regulator-name = "vcc5v0_sys"; - regulator-always-on; - regulator-boot-on; - regulator-min-microvolt = <0x4c4b40>; - regulator-max-microvolt = <0x4c4b40>; - vin-supply = <0x14f>; - phandle = <0x3e>; - }; - - vcc5v0-host-regulator { - compatible = "regulator-fixed"; - enable-active-high; - gpio = <0x3f 0x06 0x00>; - pinctrl-names = "default"; - pinctrl-0 = <0x150>; - regulator-name = "vcc5v0_host"; - regulator-always-on; - regulator-boot-on; - phandle = <0x136>; - }; - - vcc5v0-otg-regulator { - compatible = "regulator-fixed"; - enable-active-high; - gpio = <0x3f 0x05 0x00>; - pinctrl-names = "default"; - pinctrl-0 = <0x151>; - regulator-name = "vcc5v0_otg"; - phandle = <0x4c>; - }; - - vcc3v3-lcd0-n { - compatible = "regulator-fixed"; - regulator-name = "vcc3v3_lcd0_n"; - regulator-boot-on; - - regulator-state-mem { - regulator-off-in-suspend; - }; - }; - - vcc3v3-lcd1-n { - compatible = "regulator-fixed"; - regulator-name = "vcc3v3_lcd1_n"; - regulator-boot-on; - status = "disabled"; - - regulator-state-mem { - regulator-off-in-suspend; - }; - }; - - test-power { - status = "okay"; - }; - - chosen { - // linux,initrd-end = <0x00 0xaacf15d>; - // linux,initrd-start = <0x00 0xa200000>; - bootargs = "storagemedia=emmc androidboot.storagemedia=emmc androidboot.mode=normal androidboot.verifiedbootstate=orange rw rootwait earlycon=uart8250,mmio32,0xfe660000 console=ttyFIQ0 root=PARTLABEL=rootfs rootfstype=ext4 overlayroot=device:dev=PARTLABEL=userdata,fstype=ext4,mkfs=1 coherent_pool=1m systemd.gpt_auto=0 cgroup_enable=memory swapaccount=1 swiotlb=0x10000 net.ifnames=0 comm-05/20/2025 androidboot.fwver=ddr-v1.21-2d653b3476,spl-v1.14,bl31-v1.44,bl32-v2.12,uboot--boot"; - }; - - fiq-debugger { - compatible = "rockchip,fiq-debugger"; - rockchip,serial-id = <0x02>; - rockchip,wake-irq = <0x00>; - rockchip,irq-mode-enable = <0x01>; - rockchip,baudrate = <0x16e360>; - interrupts = <0x00 0xfc 0x08>; - pinctrl-names = "default"; - pinctrl-0 = <0x10c>; - status = "okay"; - }; - - debug@fd904000 { - compatible = "rockchip,debug"; - reg = <0x00 0xfd904000 0x00 0x1000 0x00 0xfd905000 0x00 0x1000 0x00 0xfd906000 0x00 0x1000 0x00 0xfd907000 0x00 0x1000>; - }; - - cspmu@fd90c000 { - compatible = "rockchip,cspmu"; - reg = <0x00 0xfd90c000 0x00 0x1000 0x00 0xfd90d000 0x00 0x1000 0x00 0xfd90e000 0x00 0x1000 0x00 0xfd90f000 0x00 0x1000>; - }; - - adc-keys { - compatible = "adc-keys"; - io-channels = <0x49 0x00>; - io-channel-names = "buttons"; - keyup-threshold-microvolt = <0x1b7740>; - poll-interval = <0x64>; - - recovery-key { - label = "F12"; - linux,code = <0x58>; - press-threshold-microvolt = <0x6d6>; - }; - - vol-down-key { - label = "volume down"; - linux,code = <0x72>; - press-threshold-microvolt = <0x48a1c>; - }; - - menu-key { - label = "menu"; - linux,code = <0x8b>; - press-threshold-microvolt = <0xef420>; - }; - - back-key { - label = "back"; - linux,code = <0x9e>; - press-threshold-microvolt = <0x13eb9c>; - }; - }; - - vcc2v5-ddr { - compatible = "regulator-fixed"; - regulator-name = "vcc2v5-sys"; - regulator-always-on; - regulator-boot-on; - regulator-min-microvolt = <0x2625a0>; - regulator-max-microvolt = <0x2625a0>; - vin-supply = <0x46>; - }; - - pcie30-avdd0v9 { - compatible = "regulator-fixed"; - regulator-name = "pcie30_avdd0v9"; - regulator-always-on; - regulator-boot-on; - regulator-min-microvolt = <0xdbba0>; - regulator-max-microvolt = <0xdbba0>; - vin-supply = <0x46>; - }; - - pcie30-avdd1v8 { - compatible = "regulator-fixed"; - regulator-name = "pcie30_avdd1v8"; - regulator-always-on; - regulator-boot-on; - regulator-min-microvolt = <0x1b7740>; - regulator-max-microvolt = <0x1b7740>; - vin-supply = <0x46>; - }; - - gpio-regulator { - compatible = "regulator-gpio"; - regulator-name = "pcie30_3v3"; - regulator-min-microvolt = <0x186a0>; - regulator-max-microvolt = <0x325aa0>; - gpios = <0x3f 0x1c 0x00>; - gpios-states = <0x01>; - states = <0x186a0 0x00 0x325aa0 0x01>; - phandle = <0xc2>; - }; - - vcc3v3-bu { - compatible = "regulator-fixed"; - regulator-name = "vcc3v3_bu"; - regulator-always-on; - regulator-boot-on; - regulator-min-microvolt = <0x325aa0>; - regulator-max-microvolt = <0x325aa0>; - vin-supply = <0x3e>; - }; - - sdio-pwrseq { - compatible = "mmc-pwrseq-simple"; - clocks = <0x152 0x01>; - clock-names = "ext_clock"; - pinctrl-names = "default"; - pinctrl-0 = <0x153>; - post-power-on-delay-ms = <0x64>; - reset-gpios = <0x4a 0x1d 0x01>; - status = "okay"; - phandle = <0xb3>; - }; - - wireless-wlan { - compatible = "wlan-platdata"; - rockchip,grf = <0x3b>; - wifi_chip_type = "ap6256"; - pinctrl-names = "default"; - pinctrl-0 = <0x154>; - WIFI,host_wake_irq = <0x4a 0x1c 0x00>; - status = "okay"; - }; - - wireless-bluetooth { - compatible = "bluetooth-platdata"; - clocks = <0x152 0x01>; - clock-names = "ext_clock"; - uart_rts_gpios = <0x91 0x09 0x01>; - pinctrl-names = "default\0rts_gpio"; - pinctrl-0 = <0x155>; - pinctrl-1 = <0x156>; - BT,reset_gpio = <0x4a 0x00 0x00>; - BT,wake_gpio = <0x4a 0x02 0x00>; - BT,wake_host_irq = <0x4a 0x01 0x00>; - status = "okay"; - }; - - flash-led { - compatible = "led,rgb13h"; - label = "pwm-flash-led"; - led-max-microamp = <0x4e20>; - flash-max-microamp = <0x4e20>; - flash-max-timeout-us = <0xf4240>; - pwms = <0x157 0x00 0x61a8 0x00>; - rockchip,camera-module-index = <0x01>; - rockchip,camera-module-facing = "front"; - status = "disabled"; - }; - - vcc-camera-regulator { - compatible = "regulator-fixed"; - gpio = <0x102 0x03 0x00>; - pinctrl-names = "default"; - pinctrl-0 = <0x158>; - regulator-name = "vcc_camera"; - enable-active-high; - status = "disabled"; - }; - - vcc-hub-reset-regulator { - compatible = "regulator-fixed"; - enable-active-high; - gpio = <0x159 0x04 0x00>; - pinctrl-names = "default"; - pinctrl-0 = <0x15a>; - regulator-name = "vcc_hub_reset_en"; - regulator-always-on; - }; - - pcie-pi6c-oe-regulator { - compatible = "regulator-fixed"; - gpio = <0x4a 0x07 0x01>; - pinctrl-names = "default"; - pinctrl-0 = <0x15b>; - regulator-name = "pcie_pi6c_oe_en"; - regulator-always-on; - }; - - vcc-4g-power-regulator { - compatible = "regulator-fixed"; - enable-active-high; - gpio = <0x4a 0x03 0x00>; - pinctrl-names = "default"; - pinctrl-0 = <0x15c>; - regulator-name = "vcc_4g_power_en"; - regulator-always-on; - }; - - leds { - status = "okay"; - compatible = "gpio-leds"; - pinctrl-names = "default"; - pinctrl-0 = <0x15d>; - - power { - label = "firefly:blue:power"; - linux,default-trigger = "ir-power-click"; - default-state = "on"; - gpios = <0x159 0x0a 0x00>; - }; - - user { - label = "firefly:yellow:user"; - linux,default-trigger = "ir-user-click"; - default-state = "off"; - gpios = <0x159 0x09 0x00>; - }; - - diy1 { - label = "firefly:green:diy"; - linux,default-trigger = "ir-user-click"; - default-state = "off"; - gpios = <0x159 0x08 0x00>; - }; - - diy2 { - label = "firefly:yellow:diy"; - linux,default-trigger = "ir-user-click"; - default-state = "off"; - gpios = <0x91 0x11 0x00>; - }; - }; -}; \ No newline at end of file diff --git a/configs/vms_bkp/linux-aarch64-rk3568_smp2.toml b/configs/vms_bkp/linux-aarch64-rk3568_smp2.toml deleted file mode 100644 index 411b7fdc..00000000 --- a/configs/vms_bkp/linux-aarch64-rk3568_smp2.toml +++ /dev/null @@ -1,86 +0,0 @@ -# Vm base info configs -# -[base] -# Guest vm id. -id = 1 -# Guest vm name. -name = "linux" -# Virtualization type. -vm_type = 1 -# The number of virtual CPUs. -cpu_num = 2 -# The physical CPU ids. -phys_cpu_ids = [0x200, 0x300] -# Guest vm physical cpu sets. -phys_cpu_sets = [4, 8] - -# -# Vm kernel configs -# -[kernel] -# The entry point of the kernel image. -entry_point = 0x8008_0000 -# The location of image: "memory" | "fs". -# Load from memory. -image_location = "memory" -# The load address of the kernel image. -kernel_load_addr = 0x8008_0000 -## The file path of the kernel image. -kernel_path = "/code/axvisor/rk3568-linux/Image" -## The file path of the device tree blob (DTB). -dtb_load_addr = 0x8000_0000 -dtb_path = "/code/axvisor/configs/vms/linux-aarch64-rk3568_smp2.dtb" -# Memory regions with format (`base_paddr`, `size`, `flags`, `map_type`). -# For `map_type`, 0 means `MAP_ALLOC`, 1 means `MAP_IDENTICAL`. -memory_regions = [ - [0x8000_0000, 0x6000_0000, 0x7, 1], # System RAM 1G MAP_IDENTICAL -] -# -# Device specifications -# -[devices] -# The interrupt mode. -interrupt_mode = "passthrough" -# Emu_devices. -# Name Base-Ipa Ipa_len Alloc-Irq Emu-Type EmuConfig. -emu_devices = [] - -# Pass-through devices. -# Name Base-Ipa Base-Pa Length Alloc-Irq. -passthrough_devices = [ - # [ - # "peripherals 1", - # 0xf000_0000, - # 0xf000_0000, - # 0xe66_0000, - # 0x1, - # ], - # [ - # "peripherals 2", - # 0xfe67_0000, - # 0xfe67_0000, - # 0x99_0000, - # 0x1, - # ], - [ - "all peripherals", - 0xf0000000, - 0xf0000000, - 0xf000000, - 0x1, - ], - [ - "PCIe related", - 0x300000000, - 0x300000000, - 0xd0000000, - 0x1, - ], - [ - "ramoops, scmi-shmem, etc.", - 0x100000, - 0x100000, - 0x200000, - 0x1, - ], -] diff --git a/configs/vms_bkp/linux-qemu-aarch64-gicv3-a.toml b/configs/vms_bkp/linux-qemu-aarch64-gicv3-a.toml deleted file mode 100644 index 247a2a6e..00000000 --- a/configs/vms_bkp/linux-qemu-aarch64-gicv3-a.toml +++ /dev/null @@ -1,82 +0,0 @@ -# Vm base info configs -# -[base] -# Guest vm id. -id = 1 -# Guest vm name. -name = "linux-qemu" -# Virtualization type. -vm_type = 1 -# The number of virtual CPUs. -cpu_num = 1 -# Guest vm physical cpu sets. -phys_cpu_ids = [0] -phys_cpu_sets = [1] - -# -# Vm kernel configs -# -[kernel] -# The entry point of the kernel image. -entry_point = 0x8008_0000 -# The location of image: "memory" | "fs". -# load from memory. -image_location = "memory" -# The file path of the kernel image. -# kernel_path = "linux-6.6.62.bin" -kernel_path = "linux-5.10.198.bin" -# The load address of the kernel image. -kernel_load_addr = 0x8008_0000 -# The file path of the device tree blob (DTB). -dtb_path = "linux-qemu_gicv3.dtb" -# The load address of the device tree blob (DTB). -dtb_load_addr = 0x8000_0000 - -## load from file system -# image_location = "fs" -## The file path of the kernel image. -# kernel_path = "linux-arceos-aarch64.bin" -## The file path of the device tree blob (DTB). -# dtb_path = "linux-rk3588.dtb" - -## The file path of the ramdisk image. -# ramdisk_path = "" -## The load address of the ramdisk image. -# ramdisk_load_addr = 0 -## The path of the disk image. -# disk_path = "disk.img" - -# Memory regions with format (`base_paddr`, `size`, `flags`, `map_type`). -# For `map_type`, 0 means `MAP_ALLOC`, 1 means `MAP_IDENTICAL`. -memory_regions = [ - # [0x8000_0000, 0x4000_0000, 0x7, 1], # System RAM 1G MAP_IDENTICAL -] - -# -# Device specifications -# -[devices] -# Pass-through devices. -passthrough_devices = [ - # ["intc@8000000", 0x800_0000, 0x800_0000, 0x50_000, 0x1], - # ["pl011@9000000", 0x900_0000, 0x900_0000, 0x1000, 0x1], - # ["pl031@9010000", 0x901_0000, 0x901_0000, 0x1000, 0x1], - # ["pl061@9030000", 0x903_0000, 0x903_0000, 0x1000, 0x1], - # a003000.virtio_mmio virtio_mmio@a003000 - # a003200.virtio_mmio virtio_mmio@a003200 - # ["virtio_mmio", 0xa00_0000, 0xa00_0000, 0x4000, 0x1], - ["low-devices", 0x0, 0x0, 0x0800_0000, 0x1], - ["low-devices2", 0x09000000, 0x09000000, 0x1000_0000, 0x1], - ["pci", 0x8000000000, 0x8000000000, 0x10000, 0x1], - ["pci", 0x4010000000, 0x4010000000, 0x100000, 0x1], -] - -# Emu_devices. -# Name Base-Ipa Ipa_len Alloc-Irq Emu-Type EmuConfig. -emu_devices = [ - ["gppt-gicd", 0x0800_0000, 0x1_0000, 0, 0x21, []], - ["gppt-gicr", 0x080a_0000, 0x2_0000, 0, 0x20, [1, 0x2_0000, 0]], # 1 vcpu, stride 0x20000, starts with pcpu 0 - ["gppt-gits", 0x0808_0000, 0x2_0000, 0, 0x22, [0x0808_0000]], # host_gits_base -] - -interrupt_mode = "passthrough" diff --git a/configs/vms_bkp/linux-qemu-aarch64-gicv3-b.toml b/configs/vms_bkp/linux-qemu-aarch64-gicv3-b.toml deleted file mode 100644 index 5bfd84e3..00000000 --- a/configs/vms_bkp/linux-qemu-aarch64-gicv3-b.toml +++ /dev/null @@ -1,83 +0,0 @@ -# Vm base info configs -# -[base] -# Guest vm id. -id = 2 -# Guest vm name. -name = "linux-qemu-b" -# Virtualization type. -vm_type = 1 -# The number of virtual CPUs. -cpu_num = 1 -# Guest vm physical cpu sets. -phys_cpu_ids = [1] -phys_cpu_sets = [2] - -# -# Vm kernel configs -# -[kernel] -# The entry point of the kernel image. -entry_point = 0xc008_0000 -# The location of image: "memory" | "fs". -# load from memory. -image_location = "memory" -# The file path of the kernel image. -# kernel_path = "linux-6.6.62.bin" -kernel_path = "linux-5.10.198.bin" -# The load address of the kernel image. -kernel_load_addr = 0xc008_0000 -# The file path of the device tree blob (DTB). -dtb_path = "linux-qemu_gicv3-b.dtb" -# The load address of the device tree blob (DTB). -dtb_load_addr = 0xc000_0000 -# Use `bios` to load initramfs. -bios_load_addr = 0xfe00_0000 -bios_path = "initramfs-busybox-arm64.cpio.gz" - -## load from file system -# image_location = "fs" -## The file path of the kernel image. -# kernel_path = "linux-arceos-aarch64.bin" -## The file path of the device tree blob (DTB). -# dtb_path = "linux-rk3588.dtb" - -## The file path of the ramdisk image. -# ramdisk_path = "" -## The load address of the ramdisk image. -# ramdisk_load_addr = 0 -## The path of the disk image. -# disk_path = "disk.img" - -# Memory regions with format (`base_paddr`, `size`, `flags`, `map_type`). -# For `map_type`, 0 means `MAP_ALLOC`, 1 means `MAP_IDENTICAL`. -memory_regions = [ - # [0xc000_0000, 0x4000_0000, 0x7, 1], # System RAM 1G MAP_IDENTICAL -] - -# -# Device specifications -# -[devices] -# Pass-through devices. -passthrough_devices = [ - # ["intc@8000000", 0x800_0000, 0x800_0000, 0x50_000, 0x1], - # ["pl011@9000000", 0x900_0000, 0x900_0000, 0x1000, 0x1], - # ["pl031@9010000", 0x901_0000, 0x901_0000, 0x1000, 0x1], - # ["pl061@9030000", 0x903_0000, 0x903_0000, 0x1000, 0x1], - # a003000.virtio_mmio virtio_mmio@a003000 - # a003200.virtio_mmio virtio_mmio@a003200 - # ["virtio_mmio", 0xa00_0000, 0xa00_0000, 0x4000, 0x1], - # ["low-memory", 0x0, 0x0, 0x2000_0000, 0x1], - ["pl011@9100000", 0x910_0000, 0x910_0000, 0x1000, 0x1], # ["pci", 0x8000000000, 0x8000000000, 0x10000, 0x1], - # ["pci", 0x4010000000, 0x4010000000, 0x100000, 0x1], -] - -# Emu_devices. -# Name Base-Ipa Ipa_len Alloc-Irq Emu-Type EmuConfig. -emu_devices = [ - ["gppt-gicd", 0x0800_0000, 0x1_0000, 0, 0x21, []], - ["gppt-gicr", 0x080c_0000, 0x2_0000, 0, 0x20, [1, 0x2_0000, 1]], # 1 vcpu, stride 0x20000 -] - -interrupt_mode = "passthrough" diff --git a/configs/vms_bkp/linux-qemu-aarch64-mem.toml b/configs/vms_bkp/linux-qemu-aarch64-mem.toml deleted file mode 100644 index d2c1a819..00000000 --- a/configs/vms_bkp/linux-qemu-aarch64-mem.toml +++ /dev/null @@ -1,70 +0,0 @@ -# Vm base info configs -# -[base] -# Guest vm id. -id = 1 -# Guest vm name. -name = "linux-qemu" -# Virtualization type. -vm_type = 1 -# The number of virtual CPUs. -cpu_num = 1 -# Guest vm physical cpu sets. -phys_cpu_ids = [0] -phys_cpu_sets = [1] - -# -# Vm kernel configs -# -[kernel] -# The entry point of the kernel image. -entry_point = 0x8020_0000 -# The location of image: "memory" | "fs". -# load from memory. -image_location = "memory" -# The file path of the kernel image. -# kernel_path = "linux-6.6.62.bin" -kernel_path = "tmp/Image" -# The load address of the kernel image. -kernel_load_addr = 0x8020_0000 -# The file path of the device tree blob (DTB). -dtb_path = "tmp/aarch64-qemu-gicv3.dtb" -# The load address of the device tree blob (DTB). -dtb_load_addr = 0x8000_0000 - -# Memory regions with format (`base_paddr`, `size`, `flags`, `map_type`). -# For `map_type`, 0 means `MAP_ALLOC`, 1 means `MAP_IDENTICAL`. -memory_regions = [ - # [0x8000_0000, 0x4000_0000, 0x7, 1], # System RAM 1G MAP_IDENTICAL -] - -# -# Device specifications -# -[devices] -# Pass-through devices. -passthrough_devices = [ - ["intc@8000000", 0x800_0000, 0x800_0000, 0x100_0000, 0x1], - # ["pl011@9000000", 0x900_0000, 0x900_0000, 0x1000, 0x1], - # ["pl031@9010000", 0x901_0000, 0x901_0000, 0x1000, 0x1], - # ["pl061@9030000", 0x903_0000, 0x903_0000, 0x1000, 0x1], - # a003000.virtio_mmio virtio_mmio@a003000 - # a003200.virtio_mmio virtio_mmio@a003200 - # ["virtio_mmio", 0xa00_0000, 0xa00_0000, 0x4000, 0x1], - # ["low-devices", 0x0, 0x0, 0x0800_0000, 0x1], - # ["low-devices2", 0x09000000, 0x09000000, 0x1000_0000, 0x1], - # ["pci@10000000", 0x10000000, 0x10000000, 0x10000000, 0x1], - # ["pci", 0x4010000000, 0x4010000000, 0x100000, 0x1], - # ["pci-range", 0x8000000000, 0x8000000000, 0x10000, 0x1], -] - -# Emu_devices. -# Name Base-Ipa Ipa_len Alloc-Irq Emu-Type EmuConfig. -emu_devices = [ - # ["gppt-gicd", 0x0800_0000, 0x1_0000, 0, 0x21, []], - # ["gppt-gicr", 0x080a_0000, 0x2_0000, 0, 0x20, [1, 0x2_0000, 0]], # 1 vcpu, stride 0x20000, starts with pcpu 0 - # ["gppt-gits", 0x0808_0000, 0x2_0000, 0, 0x22, [0x0808_0000]], # host_gits_base -] - -interrupt_mode = "passthrough" - diff --git a/configs/vms_bkp/linux-qemu-aarch64-smp2.toml b/configs/vms_bkp/linux-qemu-aarch64-smp2.toml deleted file mode 100644 index 25d93746..00000000 --- a/configs/vms_bkp/linux-qemu-aarch64-smp2.toml +++ /dev/null @@ -1,68 +0,0 @@ -# Vm base info configs -# -[base] -# Guest vm id. -id = 1 -# Guest vm name. -name = "linux-qemu" -# Virtualization type. -vm_type = 1 -# The number of virtual CPUs. -cpu_num = 2 -# Guest vm physical cpu sets. -phys_cpu_sets = [1, 2] - -# -# Vm kernel configs -# -[kernel] -# The entry point of the kernel image. -entry_point = 0x8008_0000 -# The location of image: "memory" | "fs". -# load from memory. -image_location = "memory" -# The file path of the kernel image. -kernel_path = "linux-6.6.62.bin" -# The load address of the kernel image. -kernel_load_addr = 0x8008_0000 -# The file path of the device tree blob (DTB). -dtb_path = "linux-qemu-smp2.dtb" -# The load address of the device tree blob (DTB). -dtb_load_addr = 0x8000_0000 - -## load from file system -# image_location = "fs" -## The file path of the kernel image. -# kernel_path = "linux-arceos-aarch64.bin" -## The file path of the device tree blob (DTB). -# dtb_path = "linux-rk3588.dtb" - -## The file path of the ramdisk image. -# ramdisk_path = "" -## The load address of the ramdisk image. -# ramdisk_load_addr = 0 -## The path of the disk image. -# disk_path = "disk.img" - -# Memory regions with format (`base_paddr`, `size`, `flags`, `map_type`). -# For `map_type`, 0 means `MAP_ALLOC`, 1 means `MAP_IDENTICAL`. -memory_regions = [ - [0x8000_0000, 0x4000_0000, 0x7, 1], # System RAM 1G MAP_IDENTICAL -] - -# -# Device specifications -# -[devices] -# Emu_devices. -# Name Base-Ipa Ipa_len Alloc-Irq Emu-Type EmuConfig. -emu_devices = [] - -# Pass-through devices. -passthrough_devices = [ - ["intc@8000000", 0x800_0000, 0x800_0000, 0x50_000, 0x1], - ["pl011@9000000", 0x900_0000, 0x900_0000, 0x1000, 0x1], - ["pl031@9010000", 0x901_0000, 0x901_0000, 0x1000, 0x1], - ["pl061@9030000", 0x903_0000, 0x903_0000, 0x1000, 0x1], # a003000.virtio_mmio virtio_mmio@a003000 # a003200.virtio_mmio virtio_mmio@a003200 - ["virtio_mmio", 0xa00_0000, 0xa00_0000, 0x4000, 0x1], -] diff --git a/configs/vms_bkp/linux-qemu-aarch64-vm2.toml b/configs/vms_bkp/linux-qemu-aarch64-vm2.toml deleted file mode 100644 index 86310110..00000000 --- a/configs/vms_bkp/linux-qemu-aarch64-vm2.toml +++ /dev/null @@ -1,68 +0,0 @@ -# Vm base info configs -# -[base] -# Guest vm id. -id = 2 -# Guest vm name. -name = "linux-qemu" -# Virtualization type. -vm_type = 1 -# The number of virtual CPUs. -cpu_num = 1 -# Guest vm physical cpu sets. -phys_cpu_sets = [2] - -# -# Vm kernel configs -# -[kernel] -# The entry point of the kernel image. -entry_point = 0x8008_0000 -# The location of image: "memory" | "fs" -# load from memory -image_location = "memory" -# The file path of the kernel image. -kernel_path = "linux-6.6.62.bin" -# The load address of the kernel image. -kernel_load_addr = 0x8008_0000 -# The file path of the device tree blob (DTB). -dtb_path = "linux-qemu.dtb" -# The load address of the device tree blob (DTB). -dtb_load_addr = 0x8000_0000 - -## load from file system -# image_location = "fs" -## The file path of the kernel image. -# kernel_path = "linux-arceos-aarch64.bin" -## The file path of the device tree blob (DTB). -# dtb_path = "linux-rk3588.dtb" - -## The file path of the ramdisk image. -# ramdisk_path = "" -## The load address of the ramdisk image. -# ramdisk_load_addr = 0 -## The path of the disk image. -# disk_path = "disk.img" - -# Memory regions with format (`base_paddr`, `size`, `flags`, `map_type`). -# For `map_type`, 0 means `MAP_ALLOC`, 1 means `MAP_IDENTICAL`. -memory_regions = [ - [0x8000_0000, 0x4000_0000, 0x7, 1], # System RAM 1G MAP_IDENTICAL -] - -# -# Device specifications -# -[devices] -# Pass-through devices -passthrough_devices = [ - ["intc@8000000", 0x800_0000, 0x800_0000, 0x50_000, 0x1], # map qemu uart2 as vm uart - ["pl011@9000000", 0x900_0000, 0x904_0000, 0x1000, 0x1], - ["pl031@9010000", 0x901_0000, 0x901_0000, 0x1000, 0x1], - ["pl061@9030000", 0x903_0000, 0x903_0000, 0x1000, 0x1], # a003000.virtio_mmio virtio_mmio@a003000 # a003200.virtio_mmio virtio_mmio@a003200 - ["virtio_mmio", 0xa00_0000, 0xa00_0000, 0x4000, 0x1], -] - -# Emu_devices -# Name Base-Ipa Ipa_len Alloc-Irq Emu-Type EmuConfig -emu_devices = [] diff --git a/configs/vms_bkp/linux-qemu-aarch64.toml b/configs/vms_bkp/linux-qemu-aarch64.toml deleted file mode 100644 index e35ad773..00000000 --- a/configs/vms_bkp/linux-qemu-aarch64.toml +++ /dev/null @@ -1,76 +0,0 @@ -# Vm base info configs -# -[base] -# Guest vm id. -id = 1 -# Guest vm name. -name = "linux-qemu" -# Virtualization type. -vm_type = 1 -# The number of virtual CPUs. -cpu_num = 1 -# Guest vm physical cpu sets. -phys_cpu_ids = [0] -phys_cpu_sets = [1] - -# -# Vm kernel configs -# -[kernel] -# The entry point of the kernel image. -entry_point = 0x8020_0000 -# The location of image: "memory" | "fs". -# load from memory. -image_location = "fs" -# The file path of the kernel image. -kernel_path = "/boot/Image" -# The load address of the kernel image. -kernel_load_addr = 0x8020_0000 -# The file path of the device tree blob (DTB). -dtb_path = "/boot/aarch64-qemu-gicv3.dtb" -# The load address of the device tree blob (DTB). -dtb_load_addr = 0x8000_0000 - -## The file path of the ramdisk image. -# ramdisk_path = "" -## The load address of the ramdisk image. -# ramdisk_load_addr = 0 -## The path of the disk image. -# disk_path = "disk.img" - -# Memory regions with format (`base_paddr`, `size`, `flags`, `map_type`). -# For `map_type`, 0 means `MAP_ALLOC`, 1 means `MAP_IDENTICAL`. -memory_regions = [ - # [0x8000_0000, 0x4000_0000, 0x7, 1], # System RAM 1G MAP_IDENTICAL -] - -# -# Device specifications -# -[devices] -# Pass-through devices. -passthrough_devices = [ - ["intc@8000000", 0x800_0000, 0x800_0000, 0x100_0000, 0x1], - # ["pl011@9000000", 0x900_0000, 0x900_0000, 0x1000, 0x1], - # ["pl031@9010000", 0x901_0000, 0x901_0000, 0x1000, 0x1], - # ["pl061@9030000", 0x903_0000, 0x903_0000, 0x1000, 0x1], - # a003000.virtio_mmio virtio_mmio@a003000 - # a003200.virtio_mmio virtio_mmio@a003200 - # ["virtio_mmio", 0xa00_0000, 0xa00_0000, 0x4000, 0x1], - # ["low-devices", 0x0, 0x0, 0x0800_0000, 0x1], - # ["low-devices2", 0x09000000, 0x09000000, 0x1000_0000, 0x1], - # ["pci@10000000", 0x10000000, 0x10000000, 0x10000000, 0x1], - # ["pci", 0x4010000000, 0x4010000000, 0x100000, 0x1], - # ["pci-range", 0x8000000000, 0x8000000000, 0x10000, 0x1], -] - -# Emu_devices. -# Name Base-Ipa Ipa_len Alloc-Irq Emu-Type EmuConfig. -emu_devices = [ - # ["gppt-gicd", 0x0800_0000, 0x1_0000, 0, 0x21, []], - # ["gppt-gicr", 0x080a_0000, 0x2_0000, 0, 0x20, [1, 0x2_0000, 0]], # 1 vcpu, stride 0x20000, starts with pcpu 0 - # ["gppt-gits", 0x0808_0000, 0x2_0000, 0, 0x22, [0x0808_0000]], # host_gits_base -] - -interrupt_mode = "passthrough" - diff --git a/configs/vms_bkp/linux-qemu-smp2.dts b/configs/vms_bkp/linux-qemu-smp2.dts deleted file mode 100644 index 3168e40a..00000000 --- a/configs/vms_bkp/linux-qemu-smp2.dts +++ /dev/null @@ -1,364 +0,0 @@ -/dts-v1/; - -/ { - interrupt-parent = <0x8003>; - model = "linux,dummy-virt"; - #size-cells = <0x02>; - #address-cells = <0x02>; - compatible = "linux,dummy-virt"; - - psci { - migrate = <0xc4000005>; - cpu_on = <0xc4000003>; - cpu_off = <0x84000002>; - cpu_suspend = <0xc4000001>; - method = "smc"; - compatible = "arm,psci-1.0\0arm,psci-0.2\0arm,psci"; - }; - - memory@80000000 { - reg = <0x00 0x80000000 0x00 0x40000000>; - device_type = "memory"; - }; - - virtio_mmio@a000000 { - dma-coherent; - interrupts = <0x00 0x10 0x01>; - reg = <0x00 0xa000000 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a000200 { - dma-coherent; - interrupts = <0x00 0x11 0x01>; - reg = <0x00 0xa000200 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a000400 { - dma-coherent; - interrupts = <0x00 0x12 0x01>; - reg = <0x00 0xa000400 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a000600 { - dma-coherent; - interrupts = <0x00 0x13 0x01>; - reg = <0x00 0xa000600 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a000800 { - dma-coherent; - interrupts = <0x00 0x14 0x01>; - reg = <0x00 0xa000800 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a000a00 { - dma-coherent; - interrupts = <0x00 0x15 0x01>; - reg = <0x00 0xa000a00 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a000c00 { - dma-coherent; - interrupts = <0x00 0x16 0x01>; - reg = <0x00 0xa000c00 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a000e00 { - dma-coherent; - interrupts = <0x00 0x17 0x01>; - reg = <0x00 0xa000e00 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a001000 { - dma-coherent; - interrupts = <0x00 0x18 0x01>; - reg = <0x00 0xa001000 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a001200 { - dma-coherent; - interrupts = <0x00 0x19 0x01>; - reg = <0x00 0xa001200 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a001400 { - dma-coherent; - interrupts = <0x00 0x1a 0x01>; - reg = <0x00 0xa001400 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a001600 { - dma-coherent; - interrupts = <0x00 0x1b 0x01>; - reg = <0x00 0xa001600 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a001800 { - dma-coherent; - interrupts = <0x00 0x1c 0x01>; - reg = <0x00 0xa001800 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a001a00 { - dma-coherent; - interrupts = <0x00 0x1d 0x01>; - reg = <0x00 0xa001a00 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a001c00 { - dma-coherent; - interrupts = <0x00 0x1e 0x01>; - reg = <0x00 0xa001c00 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a001e00 { - dma-coherent; - interrupts = <0x00 0x1f 0x01>; - reg = <0x00 0xa001e00 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a002000 { - dma-coherent; - interrupts = <0x00 0x20 0x01>; - reg = <0x00 0xa002000 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a002200 { - dma-coherent; - interrupts = <0x00 0x21 0x01>; - reg = <0x00 0xa002200 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a002400 { - dma-coherent; - interrupts = <0x00 0x22 0x01>; - reg = <0x00 0xa002400 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a002600 { - dma-coherent; - interrupts = <0x00 0x23 0x01>; - reg = <0x00 0xa002600 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a002800 { - dma-coherent; - interrupts = <0x00 0x24 0x01>; - reg = <0x00 0xa002800 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a002a00 { - dma-coherent; - interrupts = <0x00 0x25 0x01>; - reg = <0x00 0xa002a00 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a002c00 { - dma-coherent; - interrupts = <0x00 0x26 0x01>; - reg = <0x00 0xa002c00 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a002e00 { - dma-coherent; - interrupts = <0x00 0x27 0x01>; - reg = <0x00 0xa002e00 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a003000 { - dma-coherent; - interrupts = <0x00 0x28 0x01>; - reg = <0x00 0xa003000 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a003200 { - dma-coherent; - interrupts = <0x00 0x29 0x01>; - reg = <0x00 0xa003200 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a003400 { - dma-coherent; - interrupts = <0x00 0x2a 0x01>; - reg = <0x00 0xa003400 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a003600 { - dma-coherent; - interrupts = <0x00 0x2b 0x01>; - reg = <0x00 0xa003600 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a003800 { - dma-coherent; - interrupts = <0x00 0x2c 0x01>; - reg = <0x00 0xa003800 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a003a00 { - dma-coherent; - interrupts = <0x00 0x2d 0x01>; - reg = <0x00 0xa003a00 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a003c00 { - dma-coherent; - interrupts = <0x00 0x2e 0x01>; - reg = <0x00 0xa003c00 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a003e00 { - dma-coherent; - interrupts = <0x00 0x2f 0x01>; - reg = <0x00 0xa003e00 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - gpio-keys { - compatible = "gpio-keys"; - - poweroff { - gpios = <0x8004 0x03 0x00>; - linux,code = <0x74>; - label = "GPIO Key Poweroff"; - }; - }; - - pl061@9030000 { - phandle = <0x8005>; - clock-names = "apb_pclk"; - clocks = <0x8000>; - interrupts = <0x00 0x07 0x04>; - gpio-controller; - #gpio-cells = <0x02>; - compatible = "arm,pl061\0arm,primecell"; - reg = <0x00 0x9030000 0x00 0x1000>; - }; - - pl031@9010000 { - clock-names = "apb_pclk"; - clocks = <0x8000>; - interrupts = <0x00 0x02 0x04>; - reg = <0x00 0x9010000 0x00 0x1000>; - compatible = "arm,pl031\0arm,primecell"; - }; - - pl011@9000000 { - clock-names = "uartclk\0apb_pclk"; - clocks = <0x8000 0x8000>; - interrupts = <0x00 0x01 0x04>; - reg = <0x00 0x9000000 0x00 0x1000>; - compatible = "arm,pl011\0arm,primecell"; - }; - - pmu { - interrupts = <0x01 0x07 0x104>; - compatible = "arm,armv8-pmuv3"; - }; - - intc@8000000 { - phandle = <0x8003>; - interrupts = <0x01 0x09 0x04>; - reg = <0x00 0x8000000 0x00 0x10000 0x00 0x8010000 0x00 0x10000 0x00 0x8030000 0x00 0x10000 0x00 0x8040000 0x00 0x10000>; - compatible = "arm,cortex-a15-gic"; - ranges; - #size-cells = <0x02>; - #address-cells = <0x02>; - interrupt-controller; - #interrupt-cells = <0x03>; - - v2m@8020000 { - phandle = <0x8004>; - reg = <0x00 0x8020000 0x00 0x1000>; - msi-controller; - compatible = "arm,gic-v2m-frame"; - }; - }; - - cpus { - #size-cells = <0x00>; - #address-cells = <0x01>; - - cpu-map { - - socket0 { - - cluster0 { - core0 { - cpu = <0x8002>; - }; - core1 { - cpu = <0x8001>; - }; - }; - }; - }; - - cpu@0 { - phandle = <0x8002>; - reg = <0x00>; - enable-method = "psci"; - compatible = "arm,cortex-a57"; - device_type = "cpu"; - }; - cpu@1 { - phandle = <0x8001>; - reg = <0x01>; - enable-method = "psci"; - compatible = "arm,cortex-a57"; - device_type = "cpu"; - }; - }; - - timer { - interrupts = <0x01 0x0d 0x104 0x01 0x0e 0x104 0x01 0x0b 0x104 0x01 0x0a 0x104>; - always-on; - compatible = "arm,armv8-timer\0arm,armv7-timer"; - }; - - apb-pclk { - phandle = <0x8000>; - clock-output-names = "clk24mhz"; - clock-frequency = <0x16e3600>; - #clock-cells = <0x00>; - compatible = "fixed-clock"; - }; - - chosen { - bootargs = "earlycon console=ttyAMA0 root=/dev/vda rw audit=0 default_hugepagesz=32M hugepagesz=32M hugepages=4"; - stdout-path = "/pl011@9000000"; - rng-seed = <0x7d690073 0x793eb999 0xf6bdac0f 0xd29fa1a 0x78c11b49 0xf975a441 0xbb12bacc 0xd938d0a9>; - kaslr-seed = <0x45202e26 0x23f63f1f>; - }; -}; diff --git a/configs/vms_bkp/linux-qemu.dts b/configs/vms_bkp/linux-qemu.dts deleted file mode 100644 index 28f34042..00000000 --- a/configs/vms_bkp/linux-qemu.dts +++ /dev/null @@ -1,354 +0,0 @@ -/dts-v1/; - -/ { - interrupt-parent = <0x8002>; - model = "linux,dummy-virt"; - #size-cells = <0x02>; - #address-cells = <0x02>; - compatible = "linux,dummy-virt"; - - psci { - migrate = <0xc4000005>; - cpu_on = <0xc4000003>; - cpu_off = <0x84000002>; - cpu_suspend = <0xc4000001>; - method = "smc"; - compatible = "arm,psci-1.0\0arm,psci-0.2\0arm,psci"; - }; - - memory@80000000 { - reg = <0x00 0x80000000 0x00 0x40000000>; - device_type = "memory"; - }; - - virtio_mmio@a000000 { - dma-coherent; - interrupts = <0x00 0x10 0x01>; - reg = <0x00 0xa000000 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a000200 { - dma-coherent; - interrupts = <0x00 0x11 0x01>; - reg = <0x00 0xa000200 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a000400 { - dma-coherent; - interrupts = <0x00 0x12 0x01>; - reg = <0x00 0xa000400 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a000600 { - dma-coherent; - interrupts = <0x00 0x13 0x01>; - reg = <0x00 0xa000600 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a000800 { - dma-coherent; - interrupts = <0x00 0x14 0x01>; - reg = <0x00 0xa000800 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a000a00 { - dma-coherent; - interrupts = <0x00 0x15 0x01>; - reg = <0x00 0xa000a00 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a000c00 { - dma-coherent; - interrupts = <0x00 0x16 0x01>; - reg = <0x00 0xa000c00 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a000e00 { - dma-coherent; - interrupts = <0x00 0x17 0x01>; - reg = <0x00 0xa000e00 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a001000 { - dma-coherent; - interrupts = <0x00 0x18 0x01>; - reg = <0x00 0xa001000 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a001200 { - dma-coherent; - interrupts = <0x00 0x19 0x01>; - reg = <0x00 0xa001200 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a001400 { - dma-coherent; - interrupts = <0x00 0x1a 0x01>; - reg = <0x00 0xa001400 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a001600 { - dma-coherent; - interrupts = <0x00 0x1b 0x01>; - reg = <0x00 0xa001600 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a001800 { - dma-coherent; - interrupts = <0x00 0x1c 0x01>; - reg = <0x00 0xa001800 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a001a00 { - dma-coherent; - interrupts = <0x00 0x1d 0x01>; - reg = <0x00 0xa001a00 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a001c00 { - dma-coherent; - interrupts = <0x00 0x1e 0x01>; - reg = <0x00 0xa001c00 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a001e00 { - dma-coherent; - interrupts = <0x00 0x1f 0x01>; - reg = <0x00 0xa001e00 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a002000 { - dma-coherent; - interrupts = <0x00 0x20 0x01>; - reg = <0x00 0xa002000 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a002200 { - dma-coherent; - interrupts = <0x00 0x21 0x01>; - reg = <0x00 0xa002200 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a002400 { - dma-coherent; - interrupts = <0x00 0x22 0x01>; - reg = <0x00 0xa002400 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a002600 { - dma-coherent; - interrupts = <0x00 0x23 0x01>; - reg = <0x00 0xa002600 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a002800 { - dma-coherent; - interrupts = <0x00 0x24 0x01>; - reg = <0x00 0xa002800 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a002a00 { - dma-coherent; - interrupts = <0x00 0x25 0x01>; - reg = <0x00 0xa002a00 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a002c00 { - dma-coherent; - interrupts = <0x00 0x26 0x01>; - reg = <0x00 0xa002c00 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a002e00 { - dma-coherent; - interrupts = <0x00 0x27 0x01>; - reg = <0x00 0xa002e00 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a003000 { - dma-coherent; - interrupts = <0x00 0x28 0x01>; - reg = <0x00 0xa003000 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a003200 { - dma-coherent; - interrupts = <0x00 0x29 0x01>; - reg = <0x00 0xa003200 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a003400 { - dma-coherent; - interrupts = <0x00 0x2a 0x01>; - reg = <0x00 0xa003400 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a003600 { - dma-coherent; - interrupts = <0x00 0x2b 0x01>; - reg = <0x00 0xa003600 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a003800 { - dma-coherent; - interrupts = <0x00 0x2c 0x01>; - reg = <0x00 0xa003800 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a003a00 { - dma-coherent; - interrupts = <0x00 0x2d 0x01>; - reg = <0x00 0xa003a00 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a003c00 { - dma-coherent; - interrupts = <0x00 0x2e 0x01>; - reg = <0x00 0xa003c00 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a003e00 { - dma-coherent; - interrupts = <0x00 0x2f 0x01>; - reg = <0x00 0xa003e00 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - gpio-keys { - compatible = "gpio-keys"; - - poweroff { - gpios = <0x8004 0x03 0x00>; - linux,code = <0x74>; - label = "GPIO Key Poweroff"; - }; - }; - - pl061@9030000 { - phandle = <0x8004>; - clock-names = "apb_pclk"; - clocks = <0x8000>; - interrupts = <0x00 0x07 0x04>; - gpio-controller; - #gpio-cells = <0x02>; - compatible = "arm,pl061\0arm,primecell"; - reg = <0x00 0x9030000 0x00 0x1000>; - }; - - pl031@9010000 { - clock-names = "apb_pclk"; - clocks = <0x8000>; - interrupts = <0x00 0x02 0x04>; - reg = <0x00 0x9010000 0x00 0x1000>; - compatible = "arm,pl031\0arm,primecell"; - }; - - pl011@9000000 { - clock-names = "uartclk\0apb_pclk"; - clocks = <0x8000 0x8000>; - interrupts = <0x00 0x01 0x04>; - reg = <0x00 0x9000000 0x00 0x1000>; - compatible = "arm,pl011\0arm,primecell"; - }; - - pmu { - interrupts = <0x01 0x07 0x104>; - compatible = "arm,armv8-pmuv3"; - }; - - intc@8000000 { - phandle = <0x8002>; - interrupts = <0x01 0x09 0x04>; - reg = <0x00 0x8000000 0x00 0x10000 0x00 0x8010000 0x00 0x10000 0x00 0x8030000 0x00 0x10000 0x00 0x8040000 0x00 0x10000>; - compatible = "arm,cortex-a15-gic"; - ranges; - #size-cells = <0x02>; - #address-cells = <0x02>; - interrupt-controller; - #interrupt-cells = <0x03>; - - v2m@8020000 { - phandle = <0x8003>; - reg = <0x00 0x8020000 0x00 0x1000>; - msi-controller; - compatible = "arm,gic-v2m-frame"; - }; - }; - - cpus { - #size-cells = <0x00>; - #address-cells = <0x01>; - - cpu-map { - - socket0 { - - cluster0 { - - core0 { - cpu = <0x8001>; - }; - }; - }; - }; - - cpu@0 { - phandle = <0x8001>; - reg = <0x00>; - compatible = "arm,cortex-a57"; - device_type = "cpu"; - }; - }; - - timer { - interrupts = <0x01 0x0d 0x104 0x01 0x0e 0x104 0x01 0x0b 0x104 0x01 0x0a 0x104>; - always-on; - compatible = "arm,armv8-timer\0arm,armv7-timer"; - }; - - apb-pclk { - phandle = <0x8000>; - clock-output-names = "clk24mhz"; - clock-frequency = <0x16e3600>; - #clock-cells = <0x00>; - compatible = "fixed-clock"; - }; - - chosen { - bootargs = "earlycon console=ttyAMA0 root=/dev/vda rw audit=0 default_hugepagesz=32M hugepagesz=32M hugepages=4"; - stdout-path = "/pl011@9000000"; - rng-seed = <0x7d690073 0x793eb999 0xf6bdac0f 0xd29fa1a 0x78c11b49 0xf975a441 0xbb12bacc 0xd938d0a9>; - kaslr-seed = <0x45202e26 0x23f63f1f>; - }; -}; diff --git a/configs/vms_bkp/linux-qemu_gicv3-b.dts b/configs/vms_bkp/linux-qemu_gicv3-b.dts deleted file mode 100644 index d362d68d..00000000 --- a/configs/vms_bkp/linux-qemu_gicv3-b.dts +++ /dev/null @@ -1,414 +0,0 @@ -/dts-v1/; - -/ { - interrupt-parent = <0x8003>; - dma-coherent; - model = "linux,dummy-virt"; - #size-cells = <0x02>; - #address-cells = <0x02>; - compatible = "linux,dummy-virt"; - - psci { - migrate = <0xc4000005>; - cpu_on = <0xc4000003>; - cpu_off = <0x84000002>; - cpu_suspend = <0xc4000001>; - method = "smc"; - compatible = "arm,psci-1.0\0arm,psci-0.2\0arm,psci"; - }; - - memory@c0000000 { - reg = <0x00 0xc0000000 0x00 0x40000000>; - device_type = "memory"; - }; - - // platform-bus@c000000 { - // interrupt-parent = <0x8003>; - // ranges = <0x00 0x00 0xc000000 0x2000000>; - // #address-cells = <0x01>; - // #size-cells = <0x01>; - // compatible = "qemu,platform\0simple-bus"; - // }; - - // fw-cfg@9020000 { - // dma-coherent; - // reg = <0x00 0x9020000 0x00 0x18>; - // compatible = "qemu,fw-cfg-mmio"; - // }; - - // virtio_mmio@a000000 { - // dma-coherent; - // interrupts = <0x00 0x10 0x01>; - // reg = <0x00 0xa000000 0x00 0x200>; - // compatible = "virtio,mmio"; - // }; - - // virtio_mmio@a000200 { - // dma-coherent; - // interrupts = <0x00 0x11 0x01>; - // reg = <0x00 0xa000200 0x00 0x200>; - // compatible = "virtio,mmio"; - // }; - - // virtio_mmio@a000400 { - // dma-coherent; - // interrupts = <0x00 0x12 0x01>; - // reg = <0x00 0xa000400 0x00 0x200>; - // compatible = "virtio,mmio"; - // }; - - // virtio_mmio@a000600 { - // dma-coherent; - // interrupts = <0x00 0x13 0x01>; - // reg = <0x00 0xa000600 0x00 0x200>; - // compatible = "virtio,mmio"; - // }; - - // virtio_mmio@a000800 { - // dma-coherent; - // interrupts = <0x00 0x14 0x01>; - // reg = <0x00 0xa000800 0x00 0x200>; - // compatible = "virtio,mmio"; - // }; - - // virtio_mmio@a000a00 { - // dma-coherent; - // interrupts = <0x00 0x15 0x01>; - // reg = <0x00 0xa000a00 0x00 0x200>; - // compatible = "virtio,mmio"; - // }; - - // virtio_mmio@a000c00 { - // dma-coherent; - // interrupts = <0x00 0x16 0x01>; - // reg = <0x00 0xa000c00 0x00 0x200>; - // compatible = "virtio,mmio"; - // }; - - // virtio_mmio@a000e00 { - // dma-coherent; - // interrupts = <0x00 0x17 0x01>; - // reg = <0x00 0xa000e00 0x00 0x200>; - // compatible = "virtio,mmio"; - // }; - - // virtio_mmio@a001000 { - // dma-coherent; - // interrupts = <0x00 0x18 0x01>; - // reg = <0x00 0xa001000 0x00 0x200>; - // compatible = "virtio,mmio"; - // }; - - // virtio_mmio@a001200 { - // dma-coherent; - // interrupts = <0x00 0x19 0x01>; - // reg = <0x00 0xa001200 0x00 0x200>; - // compatible = "virtio,mmio"; - // }; - - // virtio_mmio@a001400 { - // dma-coherent; - // interrupts = <0x00 0x1a 0x01>; - // reg = <0x00 0xa001400 0x00 0x200>; - // compatible = "virtio,mmio"; - // }; - - // virtio_mmio@a001600 { - // dma-coherent; - // interrupts = <0x00 0x1b 0x01>; - // reg = <0x00 0xa001600 0x00 0x200>; - // compatible = "virtio,mmio"; - // }; - - // virtio_mmio@a001800 { - // dma-coherent; - // interrupts = <0x00 0x1c 0x01>; - // reg = <0x00 0xa001800 0x00 0x200>; - // compatible = "virtio,mmio"; - // }; - - // virtio_mmio@a001a00 { - // dma-coherent; - // interrupts = <0x00 0x1d 0x01>; - // reg = <0x00 0xa001a00 0x00 0x200>; - // compatible = "virtio,mmio"; - // }; - - // virtio_mmio@a001c00 { - // dma-coherent; - // interrupts = <0x00 0x1e 0x01>; - // reg = <0x00 0xa001c00 0x00 0x200>; - // compatible = "virtio,mmio"; - // }; - - // virtio_mmio@a001e00 { - // dma-coherent; - // interrupts = <0x00 0x1f 0x01>; - // reg = <0x00 0xa001e00 0x00 0x200>; - // compatible = "virtio,mmio"; - // }; - - // virtio_mmio@a002000 { - // dma-coherent; - // interrupts = <0x00 0x20 0x01>; - // reg = <0x00 0xa002000 0x00 0x200>; - // compatible = "virtio,mmio"; - // }; - - // virtio_mmio@a002200 { - // dma-coherent; - // interrupts = <0x00 0x21 0x01>; - // reg = <0x00 0xa002200 0x00 0x200>; - // compatible = "virtio,mmio"; - // }; - - // virtio_mmio@a002400 { - // dma-coherent; - // interrupts = <0x00 0x22 0x01>; - // reg = <0x00 0xa002400 0x00 0x200>; - // compatible = "virtio,mmio"; - // }; - - // virtio_mmio@a002600 { - // dma-coherent; - // interrupts = <0x00 0x23 0x01>; - // reg = <0x00 0xa002600 0x00 0x200>; - // compatible = "virtio,mmio"; - // }; - - // virtio_mmio@a002800 { - // dma-coherent; - // interrupts = <0x00 0x24 0x01>; - // reg = <0x00 0xa002800 0x00 0x200>; - // compatible = "virtio,mmio"; - // }; - - // virtio_mmio@a002a00 { - // dma-coherent; - // interrupts = <0x00 0x25 0x01>; - // reg = <0x00 0xa002a00 0x00 0x200>; - // compatible = "virtio,mmio"; - // }; - - // virtio_mmio@a002c00 { - // dma-coherent; - // interrupts = <0x00 0x26 0x01>; - // reg = <0x00 0xa002c00 0x00 0x200>; - // compatible = "virtio,mmio"; - // }; - - // virtio_mmio@a002e00 { - // dma-coherent; - // interrupts = <0x00 0x27 0x01>; - // reg = <0x00 0xa002e00 0x00 0x200>; - // compatible = "virtio,mmio"; - // }; - - // virtio_mmio@a003000 { - // dma-coherent; - // interrupts = <0x00 0x28 0x01>; - // reg = <0x00 0xa003000 0x00 0x200>; - // compatible = "virtio,mmio"; - // }; - - // virtio_mmio@a003200 { - // dma-coherent; - // interrupts = <0x00 0x29 0x01>; - // reg = <0x00 0xa003200 0x00 0x200>; - // compatible = "virtio,mmio"; - // }; - - // virtio_mmio@a003400 { - // dma-coherent; - // interrupts = <0x00 0x2a 0x01>; - // reg = <0x00 0xa003400 0x00 0x200>; - // compatible = "virtio,mmio"; - // }; - - // virtio_mmio@a003600 { - // dma-coherent; - // interrupts = <0x00 0x2b 0x01>; - // reg = <0x00 0xa003600 0x00 0x200>; - // compatible = "virtio,mmio"; - // }; - - // virtio_mmio@a003800 { - // dma-coherent; - // interrupts = <0x00 0x2c 0x01>; - // reg = <0x00 0xa003800 0x00 0x200>; - // compatible = "virtio,mmio"; - // }; - - // virtio_mmio@a003a00 { - // dma-coherent; - // interrupts = <0x00 0x2d 0x01>; - // reg = <0x00 0xa003a00 0x00 0x200>; - // compatible = "virtio,mmio"; - // }; - - // virtio_mmio@a003c00 { - // dma-coherent; - // interrupts = <0x00 0x2e 0x01>; - // reg = <0x00 0xa003c00 0x00 0x200>; - // compatible = "virtio,mmio"; - // }; - - // virtio_mmio@a003e00 { - // dma-coherent; - // interrupts = <0x00 0x2f 0x01>; - // reg = <0x00 0xa003e00 0x00 0x200>; - // compatible = "virtio,mmio"; - // }; - - // gpio-keys { - // compatible = "gpio-keys"; - - // poweroff { - // gpios = <0x8005 0x03 0x00>; - // linux,code = <0x74>; - // label = "GPIO Key Poweroff"; - // }; - // }; - - // pl061@9030000 { - // phandle = <0x8005>; - // clock-names = "apb_pclk"; - // clocks = <0x8000>; - // interrupts = <0x00 0x07 0x04>; - // gpio-controller; - // #gpio-cells = <0x02>; - // compatible = "arm,pl061\0arm,primecell"; - // reg = <0x00 0x9030000 0x00 0x1000>; - // }; - - // pcie@10000000 { - // interrupt-map-mask = <0x1800 0x00 0x00 0x07>; - // interrupt-map = <0x00 0x00 0x00 0x01 0x8003 0x00 0x00 0x00 0x03 0x04 0x00 0x00 0x00 0x02 0x8003 0x00 0x00 0x00 0x04 0x04 0x00 0x00 0x00 0x03 0x8003 0x00 0x00 0x00 0x05 0x04 0x00 0x00 0x00 0x04 0x8003 0x00 0x00 0x00 0x06 0x04 0x800 0x00 0x00 0x01 0x8003 0x00 0x00 0x00 0x04 0x04 0x800 0x00 0x00 0x02 0x8003 0x00 0x00 0x00 0x05 0x04 0x800 0x00 0x00 0x03 0x8003 0x00 0x00 0x00 0x06 0x04 0x800 0x00 0x00 0x04 0x8003 0x00 0x00 0x00 0x03 0x04 0x1000 0x00 0x00 0x01 0x8003 0x00 0x00 0x00 0x05 0x04 0x1000 0x00 0x00 0x02 0x8003 0x00 0x00 0x00 0x06 0x04 0x1000 0x00 0x00 0x03 0x8003 0x00 0x00 0x00 0x03 0x04 0x1000 0x00 0x00 0x04 0x8003 0x00 0x00 0x00 0x04 0x04 0x1800 0x00 0x00 0x01 0x8003 0x00 0x00 0x00 0x06 0x04 0x1800 0x00 0x00 0x02 0x8003 0x00 0x00 0x00 0x03 0x04 0x1800 0x00 0x00 0x03 0x8003 0x00 0x00 0x00 0x04 0x04 0x1800 0x00 0x00 0x04 0x8003 0x00 0x00 0x00 0x05 0x04>; - // #interrupt-cells = <0x01>; - // ranges = <0x1000000 0x00 0x00 0x00 0x3eff0000 0x00 0x10000 0x2000000 0x00 0x10000000 0x00 0x10000000 0x00 0x2eff0000 0x3000000 0x80 0x00 0x80 0x00 0x80 0x00>; - // // reg = <0x40 0x10000000 0x00 0x10000000>; - // reg = <0x00 0x10000000>; - // msi-map = <0x00 0x8004 0x00 0x10000>; - // dma-coherent; - // bus-range = <0x00 0xff>; - // linux,pci-domain = <0x00>; - // #size-cells = <0x02>; - // #address-cells = <0x03>; - // device_type = "pci"; - // compatible = "pci-host-ecam-generic"; - // }; - - // pl031@9010000 { - // clock-names = "apb_pclk"; - // clocks = <0x8000>; - // interrupts = <0x00 0x02 0x04>; - // reg = <0x00 0x9010000 0x00 0x1000>; - // compatible = "arm,pl031\0arm,primecell"; - // }; - - // pl011@9000000 { - // clock-names = "uartclk\0apb_pclk"; - // clocks = <0x8000 0x8000>; - // interrupts = <0x00 0x01 0x04>; - // reg = <0x00 0x9000000 0x00 0x1000>; - // compatible = "arm,pl011\0arm,primecell"; - // }; - - pl011@9100000 { - clock-names = "uartclk\0apb_pclk"; - clocks = <0x8000 0x8000>; - interrupts = <0x00 0x0a 0x04>; - reg = <0x00 0x9100000 0x00 0x1000>; - compatible = "arm,pl011\0arm,primecell"; - }; - - pmu { - interrupts = <0x01 0x07 0x04>; - compatible = "arm,armv8-pmuv3"; - }; - - intc@8000000 { - phandle = <0x8003>; - interrupts = <0x01 0x09 0x04>; - reg = <0x00 0x8000000 0x00 0x10000 0x00 0x80c0000 0x00 0xf60000>; - #redistributor-regions = <0x01>; - compatible = "arm,gic-v3"; - ranges; - #size-cells = <0x02>; - #address-cells = <0x02>; - interrupt-controller; - #interrupt-cells = <0x03>; - - // its@8080000 { - // phandle = <0x8004>; - // reg = <0x00 0x8080000 0x00 0x20000>; - // #msi-cells = <0x01>; - // msi-controller; - // compatible = "arm,gic-v3-its"; - // }; - }; - - // flash@0 { - // bank-width = <0x04>; - // reg = <0x00 0x00 0x00 0x4000000 0x00 0x4000000 0x00 0x4000000>; - // compatible = "cfi-flash"; - // }; - - cpus { - #size-cells = <0x00>; - #address-cells = <0x01>; - - cpu-map { - - socket0 { - - cluster0 { - - core0 { - cpu = <0x8001>; - }; - - //core1 { - // cpu = <0x8001>; - //}; - }; - }; - }; - - cpu@0 { - phandle = <0x8001>; - reg = <0x01>; - enable-method = "psci"; - compatible = "arm,cortex-a57"; - device_type = "cpu"; - }; - }; - - timer { - interrupts = <0x01 0x0d 0x04 0x01 0x0e 0x04 0x01 0x0b 0x04 0x01 0x0a 0x04>; - always-on; - compatible = "arm,armv8-timer\0arm,armv7-timer"; - }; - - apb-pclk { - phandle = <0x8000>; - clock-output-names = "clk24mhz"; - clock-frequency = <0x16e3600>; - #clock-cells = <0x00>; - compatible = "fixed-clock"; - }; - - aliases { - serial0 = "/pl011@9100000"; - }; - - chosen { - // initrd-start = <0xfe000000>; - // initrd-end = <0xff000000>; - // bootargs = "earlycon console=ttyAMA0 root=/dev/ram rw audit=0 default_hugepagesz=32M hugepagesz=32M hugepages=4"; - bootargs = "earlycon console=ttyAMA0 initrd=0xfe000000,0x1000000 audit=0 default_hugepagesz=32M hugepagesz=32M hugepages=4"; - stdout-path = "/pl011@9100000"; - rng-seed = <0x79361ef3 0x1a4e5964 0x9fb01da 0x749b376f 0x7036ec7c 0xdea25f0c 0x79d7ee4e 0xe2e216af>; - kaslr-seed = <0x2758c1 0xf528d3d5>; - }; -}; diff --git a/configs/vms_bkp/linux-rk3588-aarch64-smp-vm1.toml b/configs/vms_bkp/linux-rk3588-aarch64-smp-vm1.toml deleted file mode 100644 index b085ab41..00000000 --- a/configs/vms_bkp/linux-rk3588-aarch64-smp-vm1.toml +++ /dev/null @@ -1,75 +0,0 @@ -# Vm base info configs -# -[base] -# Guest vm id. -id = 1 -# Guest vm name. -name = "linux-full" -# Virtualization type. -vm_type = 1 -# The number of virtual CPUs. -cpu_num = 2 -# Guest vm physical cpu sets. -# phys_cpu_sets = [1, 2, 4, 8, 16, 32, 64, 128] -phys_cpu_ids = [0x00, 0x100] -phys_cpu_sets = [1, 2] - -# -# Vm kernel configs -# -[kernel] -# The entry point of the kernel image. -entry_point = 0x1020_0000 -# The load address of the kernel image. -kernel_load_addr = 0x1020_0000 -# The load address of the device tree blob (DTB). -dtb_load_addr = 0x1000_0000 -# The load address of the ramdisk image. -ramdisk_load_addr = 0x0a20_0000 -# The location of image: "memory" | "fs". -# load from memory -image_location = "memory" -# The file path of the kernel image. -kernel_path = "Image-5.10.198-rt89-preempt.bin" -# The file path of the device tree blob (DTB). -dtb_path = "aio-rk3588-jd4-vm1.dtb" -# The file path of the ramdisk image. -ramdisk_path = "ramdisk.img" -# ramdisk_path = "initramfs-busybox-arm64-vm1.img" - -# load from file system. -# image_location = "fs". -## The file path of the kernel image. -# kernel_path = "linux-arceos-aarch64.bin" -## The file path of the device tree blob (DTB). -# dtb_path = "linux-rk3588.dtb" - -## The file path of the ramdisk image. -# ramdisk_path = "" -## The load address of the ramdisk image. -# ramdisk_load_addr = 0 -## The path of the disk image. -# disk_path = "disk.img" - -# Memory regions with format (`base_paddr`, `size`, `flags`, `map_type`). -# For `map_type`, 0 means `MAP_ALLOC`, 1 means `MAP_IDENTICAL`. -memory_regions = [ - # [0x0, 0x10_f000, 0x7, 1], # passthrough uncahed MAP_IDENTICAL - # [0x940_0000, 0xe6c00000, 0x7, 1], # ram 3G MAP_IDENTICAL - # [0x4000_0000, 0x4000_0000, 0x7, 1], # ram 1G MAP_IDENTICAL -] - -# -# Device specifications -# -[devices] -# Emu_devices. -# Name Base-Ipa Ipa_len Alloc-Irq Emu-Type EmuConfig. -emu_devices = [] - -# Pass-through devices. -# Name Base-Ipa Base-Pa Length Alloc-Irq. -passthrough_devices = [ - # ["uart@feb40000", 0xfeb4_0000, 0xfeb4_0000, 0x1000, 0x1], - # ["uart@feb50000", 0xfeb5_0000, 0xfeb5_0000, 0x1000, 0x1], -] diff --git a/configs/vms_bkp/linux-rk3588-aarch64-smp-vm2.toml b/configs/vms_bkp/linux-rk3588-aarch64-smp-vm2.toml deleted file mode 100644 index daf93cbb..00000000 --- a/configs/vms_bkp/linux-rk3588-aarch64-smp-vm2.toml +++ /dev/null @@ -1,74 +0,0 @@ -# Vm base info configs -# -[base] -# Guest vm id. -id = 2 -# Guest vm name. -name = "linux-minimal" -# Virtualization type. -vm_type = 1 -# The number of virtual CPUs. -cpu_num = 2 -# Guest vm physical cpu sets. -# phys_cpu_sets = [1, 2, 4, 8, 16, 32, 64, 128] -phys_cpu_ids = [0x200, 0x300] -phys_cpu_sets = [4, 8] - -# -# Vm kernel configs -# -[kernel] -# The entry point of the kernel image. -entry_point = 0x1_1020_0000 -# The load address of the kernel image. -kernel_load_addr = 0x1_1020_0000 -# The load address of the device tree blob (DTB). -dtb_load_addr = 0x1_1000_0000 -# The load address of the ramdisk image. -ramdisk_load_addr = 0x1_0a20_0000 -# The location of image: "memory" | "fs". -# load from memory -image_location = "memory" -# The file path of the kernel image. -kernel_path = "Image-5.10.198-rt89-preempt.bin" -# The file path of the device tree blob (DTB). -dtb_path = "aio-rk3588-jd4-vm2.dtb" -# The file path of the ramdisk image. -ramdisk_path = "ramdisk.img" - -# load from file system. -# image_location = "fs". -## The file path of the kernel image. -# kernel_path = "linux-arceos-aarch64.bin" -## The file path of the device tree blob (DTB). -# dtb_path = "linux-rk3588.dtb" - -## The file path of the ramdisk image. -# ramdisk_path = "" -## The load address of the ramdisk image. -# ramdisk_load_addr = 0 -## The path of the disk image. -# disk_path = "disk.img" - -# Memory regions with format (`base_paddr`, `size`, `flags`, `map_type`). -# For `map_type`, 0 means `MAP_ALLOC`, 1 means `MAP_IDENTICAL`. -memory_regions = [ - # [0x0, 0x10_f000, 0x7, 1], # passthrough uncahed MAP_IDENTICAL - # [0x940_0000, 0xe6c00000, 0x7, 1], # ram 3G MAP_IDENTICAL - # [0x4000_0000, 0x4000_0000, 0x7, 1], # ram 1G MAP_IDENTICAL -] - -# -# Device specifications -# -[devices] -# Emu_devices. -# Name Base-Ipa Ipa_len Alloc-Irq Emu-Type EmuConfig. -emu_devices = [] - -# Pass-through devices. -# Name Base-Ipa Base-Pa Length Alloc-Irq. -passthrough_devices = [ - # ["uart@feb40000", 0xfeb4_0000, 0xfeb4_0000, 0x1000, 0x1], - # ["uart@feb50000", 0xfeb5_0000, 0xfeb4_0000, 0x1000, 0x1], -] diff --git a/configs/vms_bkp/linux-rk3588-aarch64-smp.toml b/configs/vms_bkp/linux-rk3588-aarch64-smp.toml deleted file mode 100644 index 6c33a9e8..00000000 --- a/configs/vms_bkp/linux-rk3588-aarch64-smp.toml +++ /dev/null @@ -1,71 +0,0 @@ -# Vm base info configs -# -[base] -# Guest vm id. -id = 1 -# Guest vm name. -name = "linux" -# Virtualization type. -vm_type = 1 -# The number of virtual CPUs. -cpu_num = 4 -# Guest vm physical cpu sets. -# phys_cpu_sets = [1, 2, 4, 8, 16, 32, 64, 128] -phys_cpu_ids = [0x00, 0x100, 0x200, 0x300] -phys_cpu_sets = [1, 2, 4, 8] - -# -# Vm kernel configs -# -[kernel] -# The entry point of the kernel image. -entry_point = 0x1020_0000 -# The load address of the kernel image. -kernel_load_addr = 0x1020_0000 -# The load address of the device tree blob (DTB). -dtb_load_addr = 0x1000_0000 -# The load address of the ramdisk image. -ramdisk_load_addr = 0x0a20_0000 -# The location of image: "memory" | "fs". -# load from memory -image_location = "memory" -# The file path of the kernel image. -kernel_path = "Image.bin" -# The file path of the device tree blob (DTB). -dtb_path = "aio-rk3588-jd4.dtb" -# The file path of the ramdisk image. -ramdisk_path = "ramdisk.img" - -# load from file system. -# image_location = "fs". -## The file path of the kernel image. -# kernel_path = "linux-arceos-aarch64.bin" -## The file path of the device tree blob (DTB). -# dtb_path = "linux-rk3588.dtb" - -## The file path of the ramdisk image. -# ramdisk_path = "" -## The load address of the ramdisk image. -# ramdisk_load_addr = 0 -## The path of the disk image. -# disk_path = "disk.img" - -# Memory regions with format (`base_paddr`, `size`, `flags`, `map_type`). -# For `map_type`, 0 means `MAP_ALLOC`, 1 means `MAP_IDENTICAL`. -memory_regions = [ - # [0x0, 0x10_f000, 0x7, 1], # passthrough uncahed MAP_IDENTICAL - # [0x940_0000, 0xe6c00000, 0x7, 1], # ram 3G MAP_IDENTICAL - # [0x4000_0000, 0x4000_0000, 0x7, 1], # ram 1G MAP_IDENTICAL -] - -# -# Device specifications -# -[devices] -# Emu_devices. -# Name Base-Ipa Ipa_len Alloc-Irq Emu-Type EmuConfig. -emu_devices = [] - -# Pass-through devices. -# Name Base-Ipa Base-Pa Length Alloc-Irq. -passthrough_devices = [] diff --git a/configs/vms_bkp/linux-rk3588-aarch64.toml b/configs/vms_bkp/linux-rk3588-aarch64.toml deleted file mode 100644 index 0cba48fd..00000000 --- a/configs/vms_bkp/linux-rk3588-aarch64.toml +++ /dev/null @@ -1,100 +0,0 @@ -# Vm base info configs -# -[base] -# Guest vm id. -id = 1 -# Guest vm name. -name = "linux" -# Virtualization type. -vm_type = 1 -# The number of virtual CPUs. -cpu_num = 1 -# Guest vm physical cpu sets. -cpu_set = 2 - -# -# Vm kernel configs -# -[kernel] -# The entry point of the kernel image. -entry_point = 0x1008_0000 -# The load address of the kernel image. -kernel_load_addr = 0x1008_0000 -# The load address of the device tree blob (DTB). -dtb_load_addr = 0x1000_0000 -# The location of image: "memory" | "fs". -# load from memory -image_location = "memory" -# The file path of the kernel image. -kernel_path = "linux-rk3588-aarch64.bin" -# The file path of the device tree blob (DTB). -dtb_path = "linux-rk3588.dtb" - -# load from file system. -# image_location = "fs". -## The file path of the kernel image. -# kernel_path = "linux-arceos-aarch64.bin" -## The file path of the device tree blob (DTB). -# dtb_path = "linux-rk3588.dtb" - -## The file path of the ramdisk image. -# ramdisk_path = "" -## The load address of the ramdisk image. -# ramdisk_load_addr = 0 -## The path of the disk image. -# disk_path = "disk.img" - -# Memory regions with format (`base_paddr`, `size`, `flags`, `map_type`). -# For `map_type`, 0 means `MAP_ALLOC`, 1 means `MAP_IDENTICAL`. -memory_regions = [ - [0x0, 0x10_f000, 0x37, 1], # passthrough uncahed MAP_IDENTICAL - [0x940_0000, 0x76c00000, 0x7, 1], # ram 3G MAP_IDENTICAL -] - -# -# Device specifications -# -[devices] -# Emu_devices. -# Name Base-Ipa Ipa_len Alloc-Irq Emu-Type EmuConfig. -emu_devices = [] - -# Pass-through devices. -# Name Base-Ipa Base-Pa Length Alloc-Irq. -passthrough_devices = [ - [ - "ramoops", - 0x11_0000, - 0x11_0000, - 0xf_0000, - 0x1, - ], - [ - "sram", - 0x10_f000, - 0x10_f000, - 0x1000, - 0x1, - ], - [ - "gpu", - 0xfb00_0000, - 0xfb00_0000, - 0x200000, - 0x1, - ], - [ - "uart8250 UART", - 0xfd00_0000, - 0xfd00_0000, - 0x2000000, - 0x1, - ], - [ - "usb", - 0xfc00_0000, - 0xfc00_0000, - 0x1000000, - 0x1, - ], -] diff --git a/configs/vms_bkp/qemu_gicv3.dts b/configs/vms_bkp/qemu_gicv3.dts deleted file mode 100644 index 73b3158f..00000000 --- a/configs/vms_bkp/qemu_gicv3.dts +++ /dev/null @@ -1,410 +0,0 @@ -/dts-v1/; - -/ { - interrupt-parent = <0x8003>; - dma-coherent; - model = "linux,dummy-virt"; - #size-cells = <0x02>; - #address-cells = <0x02>; - compatible = "linux,dummy-virt"; - - psci { - migrate = <0xc4000005>; - cpu_on = <0xc4000003>; - cpu_off = <0x84000002>; - cpu_suspend = <0xc4000001>; - method = "smc"; - compatible = "arm,psci-1.0\0arm,psci-0.2\0arm,psci"; - }; - - memory@40000000 { - reg = <0x00 0x80000000 0x00 0x40000000>; - device_type = "memory"; - }; - - platform-bus@c000000 { - interrupt-parent = <0x8003>; - ranges = <0x00 0x00 0xc000000 0x2000000>; - #address-cells = <0x01>; - #size-cells = <0x01>; - compatible = "qemu,platform\0simple-bus"; - }; - - fw-cfg@9020000 { - dma-coherent; - reg = <0x00 0x9020000 0x00 0x18>; - compatible = "qemu,fw-cfg-mmio"; - }; - - virtio_mmio@a000000 { - dma-coherent; - interrupts = <0x00 0x10 0x01>; - reg = <0x00 0xa000000 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a000200 { - dma-coherent; - interrupts = <0x00 0x11 0x01>; - reg = <0x00 0xa000200 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a000400 { - dma-coherent; - interrupts = <0x00 0x12 0x01>; - reg = <0x00 0xa000400 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a000600 { - dma-coherent; - interrupts = <0x00 0x13 0x01>; - reg = <0x00 0xa000600 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a000800 { - dma-coherent; - interrupts = <0x00 0x14 0x01>; - reg = <0x00 0xa000800 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a000a00 { - dma-coherent; - interrupts = <0x00 0x15 0x01>; - reg = <0x00 0xa000a00 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a000c00 { - dma-coherent; - interrupts = <0x00 0x16 0x01>; - reg = <0x00 0xa000c00 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a000e00 { - dma-coherent; - interrupts = <0x00 0x17 0x01>; - reg = <0x00 0xa000e00 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a001000 { - dma-coherent; - interrupts = <0x00 0x18 0x01>; - reg = <0x00 0xa001000 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a001200 { - dma-coherent; - interrupts = <0x00 0x19 0x01>; - reg = <0x00 0xa001200 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a001400 { - dma-coherent; - interrupts = <0x00 0x1a 0x01>; - reg = <0x00 0xa001400 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a001600 { - dma-coherent; - interrupts = <0x00 0x1b 0x01>; - reg = <0x00 0xa001600 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a001800 { - dma-coherent; - interrupts = <0x00 0x1c 0x01>; - reg = <0x00 0xa001800 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a001a00 { - dma-coherent; - interrupts = <0x00 0x1d 0x01>; - reg = <0x00 0xa001a00 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a001c00 { - dma-coherent; - interrupts = <0x00 0x1e 0x01>; - reg = <0x00 0xa001c00 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a001e00 { - dma-coherent; - interrupts = <0x00 0x1f 0x01>; - reg = <0x00 0xa001e00 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a002000 { - dma-coherent; - interrupts = <0x00 0x20 0x01>; - reg = <0x00 0xa002000 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a002200 { - dma-coherent; - interrupts = <0x00 0x21 0x01>; - reg = <0x00 0xa002200 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a002400 { - dma-coherent; - interrupts = <0x00 0x22 0x01>; - reg = <0x00 0xa002400 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a002600 { - dma-coherent; - interrupts = <0x00 0x23 0x01>; - reg = <0x00 0xa002600 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a002800 { - dma-coherent; - interrupts = <0x00 0x24 0x01>; - reg = <0x00 0xa002800 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a002a00 { - dma-coherent; - interrupts = <0x00 0x25 0x01>; - reg = <0x00 0xa002a00 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a002c00 { - dma-coherent; - interrupts = <0x00 0x26 0x01>; - reg = <0x00 0xa002c00 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a002e00 { - dma-coherent; - interrupts = <0x00 0x27 0x01>; - reg = <0x00 0xa002e00 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a003000 { - dma-coherent; - interrupts = <0x00 0x28 0x01>; - reg = <0x00 0xa003000 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a003200 { - dma-coherent; - interrupts = <0x00 0x29 0x01>; - reg = <0x00 0xa003200 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a003400 { - dma-coherent; - interrupts = <0x00 0x2a 0x01>; - reg = <0x00 0xa003400 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a003600 { - dma-coherent; - interrupts = <0x00 0x2b 0x01>; - reg = <0x00 0xa003600 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a003800 { - dma-coherent; - interrupts = <0x00 0x2c 0x01>; - reg = <0x00 0xa003800 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a003a00 { - dma-coherent; - interrupts = <0x00 0x2d 0x01>; - reg = <0x00 0xa003a00 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a003c00 { - dma-coherent; - interrupts = <0x00 0x2e 0x01>; - reg = <0x00 0xa003c00 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - virtio_mmio@a003e00 { - dma-coherent; - interrupts = <0x00 0x2f 0x01>; - reg = <0x00 0xa003e00 0x00 0x200>; - compatible = "virtio,mmio"; - }; - - gpio-keys { - compatible = "gpio-keys"; - - poweroff { - gpios = <0x8005 0x03 0x00>; - linux,code = <0x74>; - label = "GPIO Key Poweroff"; - }; - }; - - pl061@9030000 { - phandle = <0x8005>; - clock-names = "apb_pclk"; - clocks = <0x8000>; - interrupts = <0x00 0x07 0x04>; - gpio-controller; - #gpio-cells = <0x02>; - compatible = "arm,pl061\0arm,primecell"; - reg = <0x00 0x9030000 0x00 0x1000>; - }; - - pcie@10000000 { - interrupt-map-mask = <0x1800 0x00 0x00 0x07>; - interrupt-map = <0x00 0x00 0x00 0x01 0x8003 0x00 0x00 0x00 0x03 0x04 0x00 0x00 0x00 0x02 0x8003 0x00 0x00 0x00 0x04 0x04 0x00 0x00 0x00 0x03 0x8003 0x00 0x00 0x00 0x05 0x04 0x00 0x00 0x00 0x04 0x8003 0x00 0x00 0x00 0x06 0x04 0x800 0x00 0x00 0x01 0x8003 0x00 0x00 0x00 0x04 0x04 0x800 0x00 0x00 0x02 0x8003 0x00 0x00 0x00 0x05 0x04 0x800 0x00 0x00 0x03 0x8003 0x00 0x00 0x00 0x06 0x04 0x800 0x00 0x00 0x04 0x8003 0x00 0x00 0x00 0x03 0x04 0x1000 0x00 0x00 0x01 0x8003 0x00 0x00 0x00 0x05 0x04 0x1000 0x00 0x00 0x02 0x8003 0x00 0x00 0x00 0x06 0x04 0x1000 0x00 0x00 0x03 0x8003 0x00 0x00 0x00 0x03 0x04 0x1000 0x00 0x00 0x04 0x8003 0x00 0x00 0x00 0x04 0x04 0x1800 0x00 0x00 0x01 0x8003 0x00 0x00 0x00 0x06 0x04 0x1800 0x00 0x00 0x02 0x8003 0x00 0x00 0x00 0x03 0x04 0x1800 0x00 0x00 0x03 0x8003 0x00 0x00 0x00 0x04 0x04 0x1800 0x00 0x00 0x04 0x8003 0x00 0x00 0x00 0x05 0x04>; - #interrupt-cells = <0x01>; - ranges = <0x1000000 0x00 0x00 0x00 0x3eff0000 0x00 0x10000 0x2000000 0x00 0x10000000 0x00 0x10000000 0x00 0x2eff0000 0x3000000 0x80 0x00 0x80 0x00 0x80 0x00>; - reg = <0x40 0x10000000 0x00 0x10000000>; - msi-map = <0x00 0x8004 0x00 0x10000>; - dma-coherent; - bus-range = <0x00 0xff>; - linux,pci-domain = <0x00>; - #size-cells = <0x02>; - #address-cells = <0x03>; - device_type = "pci"; - compatible = "pci-host-ecam-generic"; - }; - - pl031@9010000 { - clock-names = "apb_pclk"; - clocks = <0x8000>; - interrupts = <0x00 0x02 0x04>; - reg = <0x00 0x9010000 0x00 0x1000>; - compatible = "arm,pl031\0arm,primecell"; - }; - - pl011@9000000 { - clock-names = "uartclk\0apb_pclk"; - clocks = <0x8000 0x8000>; - interrupts = <0x00 0x01 0x04>; - reg = <0x00 0x9000000 0x00 0x1000>; - compatible = "arm,pl011\0arm,primecell"; - }; - - pmu { - interrupts = <0x01 0x07 0x04>; - compatible = "arm,armv8-pmuv3"; - }; - - intc@8000000 { - phandle = <0x8003>; - interrupts = <0x01 0x09 0x04>; - reg = <0x00 0x8000000 0x00 0x10000 0x00 0x80a0000 0x00 0xf60000>; - #redistributor-regions = <0x01>; - compatible = "arm,gic-v3"; - ranges; - #size-cells = <0x02>; - #address-cells = <0x02>; - interrupt-controller; - #interrupt-cells = <0x03>; - - its@8080000 { - phandle = <0x8004>; - reg = <0x00 0x8080000 0x00 0x20000>; - #msi-cells = <0x01>; - msi-controller; - compatible = "arm,gic-v3-its"; - }; - }; - - flash@0 { - bank-width = <0x04>; - reg = <0x00 0x00 0x00 0x4000000 0x00 0x4000000 0x00 0x4000000>; - compatible = "cfi-flash"; - }; - - cpus { - #size-cells = <0x00>; - #address-cells = <0x01>; - - cpu-map { - - socket0 { - - cluster0 { - - core0 { - cpu = <0x8002>; - }; - - //core1 { - // cpu = <0x8001>; - //}; - }; - }; - }; - - cpu@0 { - phandle = <0x8002>; - reg = <0x00>; - enable-method = "psci"; - compatible = "arm,cortex-a57"; - device_type = "cpu"; - }; - - //cpu@1 { - // phandle = <0x8001>; - // reg = <0x01>; - // enable-method = "psci"; - // compatible = "arm,cortex-a57"; - // device_type = "cpu"; - //}; - }; - - timer { - interrupts = <0x01 0x0d 0x04 0x01 0x0e 0x04 0x01 0x0b 0x04 0x01 0x0a 0x04>; - always-on; - compatible = "arm,armv8-timer\0arm,armv7-timer"; - }; - - apb-pclk { - phandle = <0x8000>; - clock-output-names = "clk24mhz"; - clock-frequency = <0x16e3600>; - #clock-cells = <0x00>; - compatible = "fixed-clock"; - }; - - aliases { - serial0 = "/pl011@9000000"; - }; - - chosen { - bootargs = "earlycon console=ttyAMA0 root=/dev/vda rw audit=0 default_hugepagesz=32M hugepagesz=32M hugepages=4"; - stdout-path = "/pl011@9000000"; - rng-seed = <0x79361ef3 0x1a4e5964 0x9fb01da 0x749b376f 0x7036ec7c 0xdea25f0c 0x79d7ee4e 0xe2e216af>; - kaslr-seed = <0x2758c1 0xf528d3d5>; - }; -}; diff --git a/configs/vms_bkp/rk3588jd4.dts b/configs/vms_bkp/rk3588jd4.dts deleted file mode 100644 index 9f4eeb7a..00000000 --- a/configs/vms_bkp/rk3588jd4.dts +++ /dev/null @@ -1,13141 +0,0 @@ -/dts-v1/; - -/ { - #address-cells = <0x02>; - model = "Firefly AIO-3588JD4"; - serial-number = "a0deeea630de3975"; - #size-cells = <0x02>; - interrupt-parent = <0x01>; - compatible = "rockchip,aio-3588jd4\0rockchip,rk3588"; - - pcie30-avdd1v8 { - regulator-max-microvolt = <0x1b7740>; - regulator-boot-on; - regulator-always-on; - regulator-min-microvolt = <0x1b7740>; - regulator-name = "pcie30_avdd1v8"; - compatible = "regulator-fixed"; - phandle = <0x4a6>; - vin-supply = <0x1de>; - }; - - syscon@fd5bc000 { - compatible = "rockchip,pipe-phy-grf\0syscon"; - reg = <0x00 0xfd5bc000 0x00 0x100>; - phandle = <0x194>; - }; - - vcc5v0-host3 { - regulator-max-microvolt = <0x4c4b40>; - regulator-boot-on; - gpio = <0x182 0x07 0x00>; - regulator-always-on; - enable-active-high; - regulator-min-microvolt = <0x4c4b40>; - regulator-name = "vcc5v0_host3"; - compatible = "regulator-fixed"; - status = "disabled"; - phandle = <0x4a2>; - vin-supply = <0x1dd>; - }; - - pwm@febd0030 { - pinctrl-names = "active"; - pinctrl-0 = <0x16c>; - clock-names = "pwm\0pclk"; - interrupts = <0x00 0x15a 0x04 0x00 0x15b 0x04>; - clocks = <0x02 0x54 0x02 0x53>; - #pwm-cells = <0x03>; - compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; - status = "disabled"; - reg = <0x00 0xfebd0030 0x00 0x10>; - phandle = <0x2d4>; - }; - - rkisp@fdcc0000 { - power-domains = <0x60 0x1c>; - iommus = <0xd1>; - clock-names = "aclk_isp\0hclk_isp\0clk_isp_core\0clk_isp_core_marvin\0clk_isp_core_vicap"; - interrupts = <0x00 0x87 0x04 0x00 0x89 0x04 0x00 0x8a 0x04>; - clocks = <0x02 0x120 0x02 0x121 0x02 0x11d 0x02 0x11e 0x02 0x11f>; - compatible = "rockchip,rk3588-rkisp"; - status = "disabled"; - interrupt-names = "isp_irq\0mi_irq\0mipi_irq"; - reg = <0x00 0xfdcc0000 0x00 0x7f00>; - phandle = <0x5a>; - }; - - qos@fdf66600 { - compatible = "syscon"; - reg = <0x00 0xfdf66600 0x00 0x20>; - phandle = <0x96>; - }; - - serial@febb0000 { - reg-io-width = <0x04>; - pinctrl-names = "default"; - pinctrl-0 = <0x167>; - clock-names = "baudclk\0apb_pclk"; - interrupts = <0x00 0x153 0x04>; - clocks = <0x02 0xd3 0x02 0xb2>; - compatible = "rockchip,rk3588-uart\0snps,dw-apb-uart"; - status = "disabled"; - reg = <0x00 0xfebb0000 0x00 0x100>; - phandle = <0x2d0>; - dmas = <0xf2 0x09 0xf2 0x0a>; - reg-shift = <0x02>; - }; - - qos@fdf41000 { - compatible = "syscon"; - reg = <0x00 0xfdf41000 0x00 0x20>; - phandle = <0xa6>; - }; - - csi2-dcphy1 { - rockchip,hw = <0x2d 0x2e>; - phy-names = "dcphy0\0dcphy1"; - compatible = "rockchip,rk3588-csi2-dphy"; - status = "disabled"; - phys = <0x2f 0x30>; - phandle = <0x20e>; - }; - - rkispp0-vir0 { - rockchip,hw = <0x5b>; - compatible = "rockchip,rk3588-rkispp-vir"; - status = "disabled"; - phandle = <0x243>; - }; - - wireless-bluetooth { - pinctrl-names = "default\0rts_gpio"; - pinctrl-0 = <0x1e5 0x1e6 0x1e7 0x1e8>; - clock-names = "ext_clock"; - BT,power_gpio = <0x7b 0x16 0x00>; - clocks = <0x1e4>; - BT,wake_gpio = <0x7b 0x15 0x00>; - uart_rts_gpios = <0xfe 0x02 0x01>; - compatible = "bluetooth-platdata"; - BT,wake_host_irq = <0x7b 0x00 0x00>; - pinctrl-1 = <0x1e9>; - status = "disabled"; - phandle = <0x4aa>; - }; - - pwm@febd0020 { - pinctrl-names = "active"; - pinctrl-0 = <0x16b>; - clock-names = "pwm\0pclk"; - interrupts = <0x00 0x15a 0x04>; - clocks = <0x02 0x54 0x02 0x53>; - #pwm-cells = <0x03>; - compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; - status = "disabled"; - reg = <0x00 0xfebd0020 0x00 0x10>; - phandle = <0x2d3>; - }; - - qos@fdf39000 { - compatible = "syscon"; - reg = <0x00 0xfdf39000 0x00 0x20>; - phandle = <0xaf>; - }; - - cam0-cam1-switch { - regulator-max-microvolt = <0x1b7740>; - pinctrl-names = "default"; - regulator-boot-on; - gpio = <0x181 0x11 0x00>; - pinctrl-0 = <0x1f0>; - regulator-always-on; - enable-active-high; - regulator-min-microvolt = <0x1b7740>; - regulator-name = "cam0_cam1_switch"; - compatible = "regulator-fixed"; - status = "okay"; - phandle = <0x4b2>; - }; - - qos@fdf3e400 { - compatible = "syscon"; - reg = <0x00 0xfdf3e400 0x00 0x20>; - phandle = <0xad>; - }; - - mipi2-csi2 { - rockchip,hw = <0x47 0x48 0x49 0x4a 0x4b 0x4c>; - compatible = "rockchip,rk3588-mipi-csi2"; - status = "okay"; - firefly-compatible; - phandle = <0x226>; - - ports { - #address-cells = <0x01>; - #size-cells = <0x00>; - - port@0 { - #address-cells = <0x01>; - #size-cells = <0x00>; - reg = <0x00>; - - endpoint@0 { - remote-endpoint = <0x4d>; - reg = <0x00>; - phandle = <0x33>; - }; - }; - - port@1 { - #address-cells = <0x01>; - #size-cells = <0x00>; - reg = <0x01>; - - endpoint@0 { - remote-endpoint = <0x4e>; - reg = <0x00>; - phandle = <0x54>; - }; - }; - }; - }; - - iommu@fdc48700 { - power-domains = <0x60 0x0f>; - rockchip,shootdown-entire; - clock-names = "aclk\0iface"; - interrupts = <0x00 0x62 0x04>; - clocks = <0x02 0x195 0x02 0x194>; - rockchip,enable-cmd-retry; - #iommu-cells = <0x00>; - compatible = "rockchip,iommu-v2"; - rockchip,disable-mmu-reset; - status = "okay"; - interrupt-names = "irq_rkvdec1_mmu"; - reg = <0x00 0xfdc48700 0x00 0x40 0x00 0xfdc48740 0x00 0x40>; - phandle = <0xcc>; - rockchip,master-handle-irq; - }; - - clock-controller@fd7c0000 { - #reset-cells = <0x01>; - assigned-clocks = <0x02 0x09 0x02 0x05 0x02 0x08 0x02 0x07 0x02 0xd8 0x02 0xda 0x02 0xd9 0x02 0x10e 0x02 0x10f 0x02 0x110 0x02 0x299 0x02 0x29a 0x02 0x7b 0x02 0xec 0x02 0x114 0x02 0x208 0x02 0x20e 0x02 0x21f 0x02 0x77>; - assigned-clock-rates = <0x4190ab00 0x2ee00000 0x32a9f880 0x46cf7100 0x29d7ab80 0x17d78400 0x1dcd6500 0x2cb41780 0x5f5e100 0x17d78400 0x5f5e100 0xbebc200 0x165a0bc0 0x8f0d180 0xbebc200 0xb71b00 0xb71b00 0x5e69ec0 0x1312d00>; - #clock-cells = <0x01>; - compatible = "rockchip,rk3588-cru"; - rockchip,grf = <0x76>; - reg = <0x00 0xfd7c0000 0x00 0x5c000>; - phandle = <0x02>; - }; - - qos@fdf81000 { - compatible = "syscon"; - reg = <0x00 0xfdf81000 0x00 0x20>; - phandle = <0xa0>; - }; - - qos@fdf36000 { - compatible = "syscon"; - reg = <0x00 0xfdf36000 0x00 0x20>; - phandle = <0xaa>; - }; - - i2s@fe4a0000 { - power-domains = <0x60 0x26>; - pinctrl-names = "default\0idle\0clk"; - pinctrl-2 = <0x132 0x133>; - pinctrl-0 = <0x12f 0x130>; - clock-names = "i2s_clk\0i2s_hclk"; - assigned-clocks = <0x02 0x2a>; - assigned-clock-parents = <0x02 0x05>; - interrupts = <0x00 0xb7 0x04>; - clocks = <0x02 0x2d 0x02 0x23>; - dma-names = "tx\0rx"; - #sound-dai-cells = <0x00>; - compatible = "rockchip,rk3588-i2s\0rockchip,rk3066-i2s"; - pinctrl-1 = <0x131>; - status = "disabled"; - reg = <0x00 0xfe4a0000 0x00 0x1000>; - phandle = <0x299>; - dmas = <0xf1 0x02 0xf1 0x03>; - rockchip,clk-trcm = <0x01>; - }; - - syscon@fd5c4000 { - compatible = "rockchip,pipe-phy-grf\0syscon"; - reg = <0x00 0xfd5c4000 0x00 0x100>; - phandle = <0x195>; - }; - - sram@ff001000 { - #address-cells = <0x01>; - #size-cells = <0x01>; - compatible = "mmio-sram"; - ranges = <0x00 0x00 0xff001000 0xef000>; - reg = <0x00 0xff001000 0x00 0xef000>; - phandle = <0x2eb>; - - rkvdec-sram@0 { - reg = <0x00 0x78000>; - phandle = <0xcb>; - }; - - rkvdec-sram@78000 { - reg = <0x78000 0x77000>; - phandle = <0xcd>; - }; - }; - - uio@fe1c0000 { - compatible = "rockchip,uio-gmac"; - status = "disabled"; - reg = <0x00 0xfe1c0000 0x00 0x10000>; - phandle = <0x28e>; - rockchip,ethernet = <0x109>; - }; - - pwm@febd0010 { - pinctrl-names = "active"; - pinctrl-0 = <0x16a>; - clock-names = "pwm\0pclk"; - interrupts = <0x00 0x15a 0x04>; - clocks = <0x02 0x54 0x02 0x53>; - #pwm-cells = <0x03>; - compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; - status = "okay"; - reg = <0x00 0xfebd0010 0x00 0x10>; - phandle = <0x1ed>; - }; - - rkisp1-vir3 { - rockchip,hw = <0x5a>; - compatible = "rockchip,rkisp-vir"; - status = "disabled"; - phandle = <0x242>; - }; - - pcie-clk2 { - regulator-boot-on; - regulator-always-on; - regulator-name = "pcie_clk2"; - compatible = "regulator-fixed"; - status = "okay"; - phandle = <0x495>; - gpios = <0x181 0x16 0x01>; - }; - - serial@feb40000 { - reg-io-width = <0x04>; - pinctrl-names = "default"; - pinctrl-0 = <0x160>; - clock-names = "baudclk\0apb_pclk"; - interrupts = <0x00 0x14c 0x04>; - clocks = <0x02 0xb7 0x02 0xab>; - compatible = "rockchip,rk3588-uart\0snps,dw-apb-uart"; - status = "okay"; - reg = <0x00 0xfeb40000 0x00 0x100>; - phandle = <0x2c9>; - dmas = <0x7c 0x08 0x7c 0x09>; - reg-shift = <0x02>; - }; - - pinctrl { - #address-cells = <0x02>; - #size-cells = <0x02>; - compatible = "rockchip,rk3588-pinctrl"; - ranges; - rockchip,grf = <0x196>; - phandle = <0x197>; - - eth0 { - - eth0-pins { - rockchip,pins = <0x02 0x13 0x01 0x198>; - phandle = <0x46c>; - }; - }; - - i2c3 { - - i2c3m3-xfer { - rockchip,pins = <0x02 0x0a 0x09 0x19d 0x02 0x0b 0x09 0x19d>; - phandle = <0x361>; - }; - - i2c3m2-xfer { - rockchip,pins = <0x04 0x04 0x09 0x19d 0x04 0x05 0x09 0x19d>; - phandle = <0x14a>; - }; - - i2c3m1-xfer { - rockchip,pins = <0x03 0x0f 0x09 0x19d 0x03 0x10 0x09 0x19d>; - phandle = <0x35f>; - }; - - i2c3m0-xfer { - rockchip,pins = <0x01 0x11 0x09 0x19d 0x01 0x10 0x09 0x19d>; - phandle = <0x35e>; - }; - - i2c3m4-xfer { - rockchip,pins = <0x04 0x18 0x09 0x19d 0x04 0x19 0x09 0x19d>; - phandle = <0x360>; - }; - }; - - pwm9 { - - pwm9m2-pins { - rockchip,pins = <0x03 0x19 0x0b 0x198>; - phandle = <0x3d7>; - }; - - pwm9m1-pins { - rockchip,pins = <0x04 0x19 0x0b 0x198>; - phandle = <0x3d6>; - }; - - pwm9m0-pins { - rockchip,pins = <0x03 0x08 0x0b 0x198>; - phandle = <0x16e>; - }; - }; - - pcfg-pull-none-drv-level-7 { - drive-strength = <0x07>; - bias-disable; - phandle = <0x451>; - }; - - mipi { - - mipi-te1 { - rockchip,pins = <0x03 0x13 0x02 0x198>; - phandle = <0x39f>; - }; - - mipim1-camera2-clk { - rockchip,pins = <0x03 0x07 0x04 0x198>; - phandle = <0x39b>; - }; - - mipim0-camera0-clk { - rockchip,pins = <0x04 0x09 0x01 0x198>; - phandle = <0x395>; - }; - - mipim0-camera4-clk { - rockchip,pins = <0x01 0x1f 0x02 0x198>; - phandle = <0x399>; - }; - - mipim1-camera3-clk { - rockchip,pins = <0x03 0x08 0x04 0x198>; - phandle = <0x39c>; - }; - - mipim0-camera1-clk { - rockchip,pins = <0x01 0x0e 0x02 0x198>; - phandle = <0x396>; - }; - - mipim1-camera0-clk { - rockchip,pins = <0x03 0x05 0x04 0x198>; - phandle = <0x39a>; - }; - - mipim1-camera4-clk { - rockchip,pins = <0x03 0x09 0x04 0x198>; - phandle = <0x39d>; - }; - - mipim0-camera2-clk { - rockchip,pins = <0x01 0x0f 0x02 0x198>; - phandle = <0x397>; - }; - - mipi-te0 { - rockchip,pins = <0x03 0x12 0x02 0x198>; - phandle = <0x39e>; - }; - - mipim1-camera1-clk { - rockchip,pins = <0x03 0x06 0x04 0x198>; - phandle = <0x180>; - }; - - mipim0-camera3-clk { - rockchip,pins = <0x01 0x1e 0x02 0x198>; - phandle = <0x398>; - }; - }; - - pwm14 { - - pwm14m2-pins { - rockchip,pins = <0x01 0x1e 0x0b 0x198>; - phandle = <0x3e1>; - }; - - pwm14m1-pins { - rockchip,pins = <0x04 0x0a 0x0b 0x198>; - phandle = <0x3e0>; - }; - - pwm14m0-pins { - rockchip,pins = <0x03 0x12 0x0b 0x198>; - phandle = <0x173>; - }; - }; - - pcfg-pull-none-drv-level-4-smt { - drive-strength = <0x04>; - bias-disable; - input-schmitt-enable; - phandle = <0x303>; - }; - - headphone { - - hp-det { - rockchip,pins = <0x02 0x13 0x00 0x198>; - phandle = <0x1dc>; - }; - }; - - npu { - - npu-pins { - rockchip,pins = <0x00 0x16 0x02 0x198>; - phandle = <0x3a0>; - }; - }; - - wireless-bluetooth { - - bt-reset-gpio { - rockchip,pins = <0x00 0x16 0x00 0x198>; - phandle = <0x1e6>; - }; - - bt-irq-gpio { - rockchip,pins = <0x00 0x00 0x00 0x198>; - phandle = <0x1e8>; - }; - - bt-wake-gpio { - rockchip,pins = <0x00 0x15 0x00 0x198>; - phandle = <0x1e7>; - }; - - uart6-gpios { - rockchip,pins = <0x01 0x02 0x00 0x198>; - phandle = <0x1e9>; - }; - }; - - pcie30x1 { - - pcie30x1-1-button-rstn { - rockchip,pins = <0x04 0x0a 0x04 0x198>; - phandle = <0x3a9>; - }; - - pcie30x1m1-pins { - rockchip,pins = <0x04 0x03 0x04 0x198 0x04 0x05 0x04 0x198 0x04 0x04 0x04 0x198 0x04 0x00 0x04 0x198 0x04 0x02 0x04 0x198 0x04 0x01 0x04 0x198>; - phandle = <0x3a6>; - }; - - pcie30x1m0-pins { - rockchip,pins = <0x00 0x10 0x0c 0x198 0x00 0x15 0x0c 0x198 0x00 0x14 0x0c 0x198 0x00 0x0d 0x0c 0x198 0x00 0x0f 0x0c 0x198 0x00 0x0e 0x0c 0x198>; - phandle = <0x3a5>; - }; - - pcie30x1-0-button-rstn { - rockchip,pins = <0x04 0x09 0x04 0x198>; - phandle = <0x3a8>; - }; - - pcie30x1m2-pins { - rockchip,pins = <0x01 0x0d 0x04 0x198 0x01 0x0c 0x04 0x198 0x01 0x0b 0x04 0x198 0x01 0x00 0x04 0x198 0x01 0x07 0x04 0x198 0x01 0x01 0x04 0x198>; - phandle = <0x3a7>; - }; - }; - - uart8 { - - uart8m0-rtsn { - rockchip,pins = <0x04 0x0a 0x0a 0x198>; - phandle = <0x443>; - }; - - uart8m1-ctsn { - rockchip,pins = <0x03 0x05 0x0a 0x198>; - phandle = <0x444>; - }; - - uart8m0-ctsn { - rockchip,pins = <0x04 0x0b 0x0a 0x198>; - phandle = <0x442>; - }; - - uart8m1-xfer { - rockchip,pins = <0x03 0x03 0x0a 0x19e 0x03 0x02 0x0a 0x19e>; - phandle = <0x167>; - }; - - uart8m0-xfer { - rockchip,pins = <0x04 0x09 0x0a 0x19e 0x04 0x08 0x0a 0x19e>; - phandle = <0x441>; - }; - - uart8-xfer { - rockchip,pins = <0x04 0x09 0x0a 0x19e>; - phandle = <0x446>; - }; - - uart8m1-rtsn { - rockchip,pins = <0x03 0x04 0x0a 0x198>; - phandle = <0x445>; - }; - }; - - spi2 { - - spi2m0-cs1 { - rockchip,pins = <0x01 0x08 0x08 0x19a>; - phandle = <0x404>; - }; - - spi2m2-cs0 { - rockchip,pins = <0x00 0x09 0x01 0x19f>; - phandle = <0x154>; - }; - - spi2m1-cs1 { - rockchip,pins = <0x04 0x08 0x08 0x19a>; - phandle = <0x407>; - }; - - spi2m2-pins { - rockchip,pins = <0x00 0x05 0x01 0x19f 0x00 0x0b 0x01 0x19f 0x00 0x06 0x01 0x19f>; - phandle = <0x155>; - }; - - spi2m1-pins { - rockchip,pins = <0x04 0x06 0x08 0x19a 0x04 0x04 0x08 0x19a 0x04 0x05 0x08 0x19a>; - phandle = <0x405>; - }; - - spi2m2-cs1 { - rockchip,pins = <0x00 0x08 0x01 0x19f>; - phandle = <0x408>; - }; - - spi2m0-cs0 { - rockchip,pins = <0x01 0x07 0x08 0x19a>; - phandle = <0x403>; - }; - - spi2m0-pins { - rockchip,pins = <0x01 0x06 0x08 0x19a 0x01 0x04 0x08 0x19a 0x01 0x05 0x08 0x19a>; - phandle = <0x402>; - }; - - spi2m1-cs0 { - rockchip,pins = <0x04 0x07 0x08 0x19a>; - phandle = <0x406>; - }; - }; - - pcfg-pull-up-drv-level-15 { - drive-strength = <0x0f>; - phandle = <0x462>; - bias-pull-up; - }; - - pcfg-pull-down-drv-level-13 { - drive-strength = <0x0d>; - bias-pull-down; - phandle = <0x469>; - }; - - pcfg-pull-up-drv-level-2 { - drive-strength = <0x02>; - phandle = <0x199>; - bias-pull-up; - }; - - i2s1 { - - i2s1m0-sdo1 { - rockchip,pins = <0x04 0x0a 0x03 0x198>; - phandle = <0x127>; - }; - - i2s1m1-sdi1 { - rockchip,pins = <0x00 0x16 0x01 0x198>; - phandle = <0x380>; - }; - - i2s1m0-sdi3 { - rockchip,pins = <0x04 0x08 0x03 0x198>; - phandle = <0x125>; - }; - - i2s1m0-mclk { - rockchip,pins = <0x04 0x00 0x03 0x19d>; - phandle = <0x37b>; - }; - - i2s1m0-sdi1 { - rockchip,pins = <0x04 0x06 0x03 0x198>; - phandle = <0x123>; - }; - - i2s1m1-sdo2 { - rockchip,pins = <0x00 0x1c 0x01 0x198>; - phandle = <0x385>; - }; - - i2s1m1-sdo0 { - rockchip,pins = <0x00 0x19 0x01 0x198>; - phandle = <0x383>; - }; - - i2s1m0-sdo2 { - rockchip,pins = <0x04 0x0b 0x03 0x198>; - phandle = <0x128>; - }; - - i2s1m1-sdi2 { - rockchip,pins = <0x00 0x17 0x01 0x198>; - phandle = <0x381>; - }; - - i2s1m0-sdo0 { - rockchip,pins = <0x04 0x09 0x03 0x198>; - phandle = <0x126>; - }; - - i2s1m1-sdi0 { - rockchip,pins = <0x00 0x15 0x01 0x198>; - phandle = <0x37f>; - }; - - i2s1m0-sdi2 { - rockchip,pins = <0x04 0x07 0x03 0x198>; - phandle = <0x124>; - }; - - i2s1m1-sclk { - rockchip,pins = <0x00 0x0e 0x01 0x19d>; - phandle = <0x37e>; - }; - - i2s1m0-sdi0 { - rockchip,pins = <0x04 0x05 0x03 0x198>; - phandle = <0x122>; - }; - - i2s1m1-sdo3 { - rockchip,pins = <0x00 0x1d 0x01 0x198>; - phandle = <0x386>; - }; - - i2s1m1-lrck { - rockchip,pins = <0x00 0x0f 0x01 0x19d>; - phandle = <0x37c>; - }; - - i2s1m0-sclk { - rockchip,pins = <0x04 0x01 0x03 0x19d>; - phandle = <0x121>; - }; - - i2s1m1-sdo1 { - rockchip,pins = <0x00 0x1a 0x01 0x198>; - phandle = <0x384>; - }; - - i2s1m0-sdo3 { - rockchip,pins = <0x04 0x0c 0x03 0x198>; - phandle = <0x129>; - }; - - i2s1m1-sdi3 { - rockchip,pins = <0x00 0x18 0x01 0x198>; - phandle = <0x382>; - }; - - i2s1m0-lrck { - rockchip,pins = <0x04 0x02 0x03 0x19d>; - phandle = <0x120>; - }; - - i2s1m1-mclk { - rockchip,pins = <0x00 0x0d 0x01 0x19d>; - phandle = <0x37d>; - }; - }; - - ddrphych2 { - - ddrphych2-pins { - rockchip,pins = <0x04 0x08 0x07 0x198 0x04 0x09 0x07 0x198 0x04 0x0a 0x07 0x198 0x04 0x0b 0x07 0x198>; - phandle = <0x31a>; - }; - }; - - pcfg-pull-none-drv-level-12 { - drive-strength = <0x0c>; - bias-disable; - phandle = <0x456>; - }; - - i2c1 { - - i2c1m2-xfer { - rockchip,pins = <0x00 0x1c 0x09 0x19d 0x00 0x1d 0x09 0x19d>; - phandle = <0x148>; - }; - - i2c1m1-xfer { - rockchip,pins = <0x00 0x08 0x02 0x19d 0x00 0x09 0x02 0x19d>; - phandle = <0x357>; - }; - - i2c1m0-xfer { - rockchip,pins = <0x00 0x0d 0x09 0x19d 0x00 0x0e 0x09 0x19d>; - phandle = <0x356>; - }; - - i2c1m4-xfer { - rockchip,pins = <0x01 0x1a 0x09 0x19d 0x01 0x1b 0x09 0x19d>; - phandle = <0x359>; - }; - - i2c1m3-xfer { - rockchip,pins = <0x02 0x1c 0x09 0x19d 0x02 0x1d 0x09 0x19d>; - phandle = <0x358>; - }; - }; - - pwm7 { - - pwm7m3-pins { - rockchip,pins = <0x04 0x16 0x0b 0x198>; - phandle = <0x3d3>; - }; - - pwm7m2-pins { - rockchip,pins = <0x01 0x13 0x0b 0x198>; - phandle = <0x3d2>; - }; - - pwm7m1-pins { - rockchip,pins = <0x04 0x1c 0x0b 0x198>; - phandle = <0x3d1>; - }; - - pwm7m0-pins { - rockchip,pins = <0x00 0x18 0x0b 0x198>; - phandle = <0x16c>; - }; - }; - - pcfg-pull-none-drv-level-5 { - drive-strength = <0x05>; - bias-disable; - phandle = <0x2f1>; - }; - - gmac0 { - - gmac0-clkinout { - rockchip,pins = <0x04 0x13 0x01 0x198>; - phandle = <0x46d>; - }; - - gmac0-miim { - rockchip,pins = <0x04 0x14 0x01 0x198 0x04 0x15 0x01 0x198>; - phandle = <0x1c1>; - }; - - gmac0-tx-bus2 { - rockchip,pins = <0x02 0x0e 0x01 0x19a 0x02 0x0f 0x01 0x19a 0x02 0x10 0x01 0x198>; - phandle = <0x1c2>; - }; - - gmac0-rgmii-bus { - rockchip,pins = <0x02 0x06 0x01 0x198 0x02 0x07 0x01 0x198 0x02 0x09 0x01 0x19a 0x02 0x0a 0x01 0x19a>; - phandle = <0x1c5>; - }; - - gmac0-ppsclk { - rockchip,pins = <0x02 0x14 0x01 0x198>; - phandle = <0x46e>; - }; - - gmac0-txer { - rockchip,pins = <0x04 0x16 0x01 0x198>; - phandle = <0x471>; - }; - - gmac0-ptp-refclk { - rockchip,pins = <0x02 0x0c 0x01 0x198>; - phandle = <0x470>; - }; - - gmac0-rx-bus2 { - rockchip,pins = <0x02 0x11 0x01 0x198 0x02 0x12 0x01 0x198 0x04 0x12 0x01 0x198>; - phandle = <0x1c3>; - }; - - gmac0-rgmii-clk { - rockchip,pins = <0x02 0x08 0x01 0x198 0x02 0x0b 0x01 0x198>; - phandle = <0x1c4>; - }; - - gmac0-ppstring { - rockchip,pins = <0x02 0x0d 0x01 0x198>; - phandle = <0x46f>; - }; - }; - - pwm12 { - - pwm12m1-pins { - rockchip,pins = <0x04 0x0d 0x0b 0x198>; - phandle = <0x3dd>; - }; - - pwm12m0-pins { - rockchip,pins = <0x03 0x0d 0x0b 0x198>; - phandle = <0x171>; - }; - }; - - usb-typec { - - usbc0-int { - rockchip,pins = <0x00 0x1b 0x00 0x198>; - phandle = <0x17b>; - }; - - usb-5v-ctrl { - rockchip,pins = <0x01 0x03 0x00 0x198>; - phandle = <0x1ef>; - }; - }; - - uart6 { - - uart6m1-ctsn { - rockchip,pins = <0x01 0x03 0x0a 0x198>; - phandle = <0x436>; - }; - - uart6m2-xfer { - rockchip,pins = <0x01 0x19 0x0a 0x19e 0x01 0x18 0x0a 0x19e>; - phandle = <0x437>; - }; - - uart6m0-ctsn { - rockchip,pins = <0x02 0x09 0x0a 0x198>; - phandle = <0x439>; - }; - - uart6m1-xfer { - rockchip,pins = <0x01 0x00 0x0a 0x19e 0x01 0x01 0x0a 0x19e>; - phandle = <0x165>; - }; - - uart6m0-xfer { - rockchip,pins = <0x02 0x06 0x0a 0x19e 0x02 0x07 0x0a 0x19e>; - phandle = <0x438>; - }; - - uart6m1-rtsn { - rockchip,pins = <0x01 0x02 0x0a 0x198>; - phandle = <0x1e5>; - }; - - uart6m0-rtsn { - rockchip,pins = <0x02 0x08 0x0a 0x198>; - phandle = <0x43a>; - }; - }; - - pcfg-pull-down-drv-level-8 { - drive-strength = <0x08>; - bias-pull-down; - phandle = <0x464>; - }; - - gpu { - - gpu-pins { - rockchip,pins = <0x00 0x15 0x02 0x198>; - phandle = <0x333>; - }; - }; - - spi0 { - - spi0m2-cs1 { - rockchip,pins = <0x01 0x0d 0x08 0x19a>; - phandle = <0x3f8>; - }; - - spi0m0-cs0 { - rockchip,pins = <0x00 0x19 0x08 0x19a>; - phandle = <0x14e>; - }; - - spi0m3-pins { - rockchip,pins = <0x03 0x1b 0x08 0x19a 0x03 0x19 0x08 0x19a 0x03 0x1a 0x08 0x19a>; - phandle = <0x3f9>; - }; - - spi0m3-cs1 { - rockchip,pins = <0x03 0x1d 0x08 0x19a>; - phandle = <0x3fb>; - }; - - spi0m2-pins { - rockchip,pins = <0x01 0x0b 0x08 0x19a 0x01 0x09 0x08 0x19a 0x01 0x0a 0x08 0x19a>; - phandle = <0x3f6>; - }; - - spi0m1-cs0 { - rockchip,pins = <0x04 0x0a 0x08 0x19a>; - phandle = <0x3f4>; - }; - - spi0m1-pins { - rockchip,pins = <0x04 0x02 0x08 0x19a 0x04 0x00 0x08 0x19a 0x04 0x01 0x08 0x19a>; - phandle = <0x3f3>; - }; - - spi0m0-cs1 { - rockchip,pins = <0x00 0x0f 0x08 0x19a>; - phandle = <0x14f>; - }; - - spi0m2-cs0 { - rockchip,pins = <0x01 0x0c 0x08 0x19a>; - phandle = <0x3f7>; - }; - - spi0m0-pins { - rockchip,pins = <0x00 0x16 0x08 0x19a 0x00 0x17 0x08 0x19a 0x00 0x10 0x08 0x19a>; - phandle = <0x150>; - }; - - spi0m1-cs1 { - rockchip,pins = <0x04 0x09 0x08 0x19a>; - phandle = <0x3f5>; - }; - - spi0m3-cs0 { - rockchip,pins = <0x03 0x1c 0x08 0x19a>; - phandle = <0x3fa>; - }; - }; - - fspi { - - fspim0-cs1 { - rockchip,pins = <0x02 0x1f 0x02 0x199>; - phandle = <0x329>; - }; - - fspim1-pins { - rockchip,pins = <0x02 0x0b 0x03 0x199 0x02 0x0c 0x03 0x199 0x02 0x06 0x03 0x199 0x02 0x07 0x03 0x199 0x02 0x08 0x03 0x199 0x02 0x09 0x03 0x199>; - phandle = <0x32c>; - }; - - fspim0-pins { - rockchip,pins = <0x02 0x00 0x02 0x199 0x02 0x1e 0x02 0x199 0x02 0x18 0x02 0x199 0x02 0x19 0x02 0x199 0x02 0x1a 0x02 0x199 0x02 0x1b 0x02 0x199>; - phandle = <0x328>; - }; - - fspim1-cs1 { - rockchip,pins = <0x02 0x0d 0x03 0x199>; - phandle = <0x32d>; - }; - - fspim2-cs1 { - rockchip,pins = <0x03 0x15 0x02 0x199>; - phandle = <0x32b>; - }; - - fspim2-pins { - rockchip,pins = <0x03 0x05 0x05 0x199 0x03 0x14 0x02 0x199 0x03 0x00 0x05 0x199 0x03 0x01 0x05 0x199 0x03 0x02 0x05 0x199 0x03 0x03 0x05 0x199>; - phandle = <0x32a>; - }; - }; - - pcfg-pull-up-drv-level-13 { - drive-strength = <0x0d>; - phandle = <0x460>; - bias-pull-up; - }; - - clk32k { - - clk32k-out0 { - rockchip,pins = <0x00 0x0a 0x02 0x198>; - phandle = <0x315>; - }; - - clk32k-in { - rockchip,pins = <0x00 0x0a 0x01 0x198>; - phandle = <0x314>; - }; - - clk32k-out1 { - rockchip,pins = <0x02 0x15 0x01 0x198>; - phandle = <0x316>; - }; - }; - - pcfg-pull-down-drv-level-11 { - drive-strength = <0x0b>; - bias-pull-down; - phandle = <0x467>; - }; - - pcie30phy { - - pcie30phy-pins { - rockchip,pins = <0x01 0x14 0x04 0x198 0x01 0x19 0x04 0x198>; - phandle = <0x3a4>; - }; - }; - - pcfg-pull-up-drv-level-0 { - drive-strength = <0x00>; - phandle = <0x2f3>; - bias-pull-up; - }; - - ddrphych0 { - - ddrphych0-pins { - rockchip,pins = <0x04 0x00 0x07 0x198 0x04 0x01 0x07 0x198 0x04 0x02 0x07 0x198 0x04 0x03 0x07 0x198>; - phandle = <0x318>; - }; - }; - - pcfg-pull-none-drv-level-10 { - drive-strength = <0x0a>; - bias-disable; - phandle = <0x454>; - }; - - pwm5 { - - pwm5m2-pins { - rockchip,pins = <0x04 0x14 0x0b 0x198>; - phandle = <0x3ce>; - }; - - pwm5m1-pins { - rockchip,pins = <0x00 0x16 0x0b 0x198>; - phandle = <0x16a>; - }; - - pwm5m0-pins { - rockchip,pins = <0x00 0x09 0x03 0x198>; - phandle = <0x3cd>; - }; - }; - - pcfg-pull-none-drv-level-3 { - drive-strength = <0x03>; - bias-disable; - phandle = <0x2ef>; - }; - - pwm10 { - - pwm10m2-pins { - rockchip,pins = <0x03 0x1b 0x0b 0x198>; - phandle = <0x3d9>; - }; - - pwm10m1-pins { - rockchip,pins = <0x04 0x1b 0x0b 0x198>; - phandle = <0x3d8>; - }; - - pwm10m0-pins { - rockchip,pins = <0x03 0x00 0x0b 0x198>; - phandle = <0x16f>; - }; - }; - - pcfg-pull-down-smt { - input-schmitt-enable; - bias-pull-down; - phandle = <0x2ff>; - }; - - gpio@fec50000 { - gpio-controller; - interrupts = <0x00 0x119 0x04>; - clocks = <0x02 0x83 0x02 0x84>; - compatible = "rockchip,gpio-bank"; - #interrupt-cells = <0x02>; - reg = <0x00 0xfec50000 0x00 0x100>; - phandle = <0x10d>; - #gpio-cells = <0x02>; - gpio-ranges = <0x197 0x00 0x80 0x20>; - interrupt-controller; - }; - - pcfg-pull-down { - bias-pull-down; - phandle = <0x2ec>; - }; - - uart4 { - - uart4m2-xfer { - rockchip,pins = <0x01 0x0a 0x0a 0x19e 0x01 0x0b 0x0a 0x19e>; - phandle = <0x42d>; - }; - - uart4-ctsn { - rockchip,pins = <0x01 0x17 0x0a 0x198>; - phandle = <0x42e>; - }; - - uart4m1-xfer { - rockchip,pins = <0x03 0x18 0x0a 0x19e 0x03 0x19 0x0a 0x19e>; - phandle = <0x163>; - }; - - uart4m0-xfer { - rockchip,pins = <0x01 0x1b 0x0a 0x19e 0x01 0x1a 0x0a 0x19e>; - phandle = <0x42c>; - }; - - uart4-rtsn { - rockchip,pins = <0x01 0x15 0x0a 0x198>; - phandle = <0x42f>; - }; - }; - - spdif0 { - - spdif0m0-tx { - rockchip,pins = <0x01 0x0e 0x03 0x198>; - phandle = <0x142>; - }; - - spdif0m1-tx { - rockchip,pins = <0x04 0x0c 0x06 0x198>; - phandle = <0x3f0>; - }; - }; - - pcfg-pull-down-drv-level-6 { - drive-strength = <0x06>; - bias-pull-down; - phandle = <0x2fd>; - }; - - pcfg-pull-up-drv-level-9 { - drive-strength = <0x09>; - phandle = <0x45c>; - bias-pull-up; - }; - - pcfg-pull-none-drv-level-1-smt { - drive-strength = <0x01>; - bias-disable; - input-schmitt-enable; - phandle = <0x19c>; - }; - - pcfg-pull-up-drv-level-11 { - drive-strength = <0x0b>; - phandle = <0x45e>; - bias-pull-up; - }; - - mcu { - - mcum1-pins { - rockchip,pins = <0x03 0x1c 0x06 0x198 0x03 0x1d 0x06 0x198>; - phandle = <0x394>; - }; - - mcum0-pins { - rockchip,pins = <0x04 0x1c 0x05 0x198 0x04 0x1d 0x05 0x198>; - phandle = <0x393>; - }; - }; - - i2c8 { - - i2c8m4-xfer { - rockchip,pins = <0x03 0x12 0x09 0x19d 0x03 0x13 0x09 0x19d>; - phandle = <0x373>; - }; - - i2c8m3-xfer { - rockchip,pins = <0x04 0x10 0x09 0x19d 0x04 0x11 0x09 0x19d>; - phandle = <0x372>; - }; - - i2c8m2-xfer { - rockchip,pins = <0x01 0x1e 0x09 0x19d 0x01 0x1f 0x09 0x19d>; - phandle = <0x371>; - }; - - i2c8m1-xfer { - rockchip,pins = <0x02 0x08 0x09 0x19d 0x02 0x09 0x09 0x19d>; - phandle = <0x374>; - }; - - i2c8m0-xfer { - rockchip,pins = <0x04 0x1a 0x09 0x19d 0x04 0x1b 0x09 0x19d>; - phandle = <0x186>; - }; - }; - - dp0 { - - dp0m0-pins { - rockchip,pins = <0x04 0x0c 0x05 0x198>; - phandle = <0x31c>; - }; - - dp0m2-pins { - rockchip,pins = <0x01 0x00 0x05 0x198>; - phandle = <0x31e>; - }; - - dp0m1-pins { - rockchip,pins = <0x00 0x14 0x0a 0x198>; - phandle = <0x31d>; - }; - }; - - pcfg-pull-none-drv-level-5-smt { - drive-strength = <0x05>; - bias-disable; - input-schmitt-enable; - phandle = <0x19b>; - }; - - pwm3 { - - pwm3m2-pins { - rockchip,pins = <0x01 0x12 0x0b 0x198>; - phandle = <0x3ca>; - }; - - pwm3m1-pins { - rockchip,pins = <0x03 0x0a 0x0b 0x198>; - phandle = <0x3c9>; - }; - - pwm3m0-pins { - rockchip,pins = <0x00 0x1c 0x03 0x198>; - phandle = <0x81>; - }; - - pwm3m3-pins { - rockchip,pins = <0x01 0x07 0x0b 0x198>; - phandle = <0x3cb>; - }; - }; - - pcfg-pull-none-drv-level-1 { - drive-strength = <0x01>; - bias-disable; - phandle = <0x2ee>; - }; - - sata2 { - - sata2m1-pins { - rockchip,pins = <0x01 0x0f 0x06 0x198>; - phandle = <0x3ed>; - }; - - sata2m0-pins { - rockchip,pins = <0x04 0x09 0x06 0x198>; - phandle = <0x3ec>; - }; - }; - - cam { - - cam0-or-cam1-switch-pin { - rockchip,pins = <0x03 0x11 0x00 0x198>; - phandle = <0x1f0>; - }; - }; - - uart2 { - - uart2-rtsn { - rockchip,pins = <0x03 0x0b 0x0a 0x198>; - phandle = <0x427>; - }; - - uart2m1-xfer { - rockchip,pins = <0x04 0x19 0x0a 0x19e 0x04 0x18 0x0a 0x19e>; - phandle = <0x161>; - }; - - uart2m0-xfer { - rockchip,pins = <0x00 0x0e 0x0a 0x19e 0x00 0x0d 0x0a 0x19e>; - phandle = <0x1ce>; - }; - - uart2-ctsn { - rockchip,pins = <0x03 0x0c 0x0a 0x198>; - phandle = <0x426>; - }; - - uart2m2-xfer { - rockchip,pins = <0x03 0x0a 0x0a 0x19e 0x03 0x09 0x0a 0x19e>; - phandle = <0x425>; - }; - }; - - pcfg-pull-down-drv-level-4 { - drive-strength = <0x04>; - bias-pull-down; - phandle = <0x2fb>; - }; - - pcfg-pull-up-drv-level-7 { - drive-strength = <0x07>; - phandle = <0x45a>; - bias-pull-up; - }; - - i2c6 { - - i2c6m4-xfer { - rockchip,pins = <0x03 0x01 0x09 0x19d 0x03 0x00 0x09 0x19d>; - phandle = <0x36c>; - }; - - i2c6m3-xfer { - rockchip,pins = <0x04 0x09 0x09 0x19d 0x04 0x08 0x09 0x19d>; - phandle = <0x36b>; - }; - - i2c6m2-xfer { - rockchip,pins = <0x02 0x13 0x09 0x19d 0x02 0x12 0x09 0x19d>; - phandle = <0x36d>; - }; - - i2c6m1-xfer { - rockchip,pins = <0x01 0x13 0x09 0x19d 0x01 0x12 0x09 0x19d>; - phandle = <0x36a>; - }; - - i2c6m0-xfer { - rockchip,pins = <0x00 0x18 0x09 0x19d 0x00 0x17 0x09 0x19d>; - phandle = <0x178>; - }; - }; - - pdm1 { - - pdm1m1-sdi3 { - rockchip,pins = <0x01 0x0a 0x02 0x198>; - phandle = <0x3c1>; - }; - - pdm1m0-clk { - rockchip,pins = <0x04 0x1d 0x02 0x198>; - phandle = <0x140>; - }; - - pdm1m1-sdi1 { - rockchip,pins = <0x01 0x08 0x02 0x198>; - phandle = <0x3bf>; - }; - - pdm1m0-sdi3 { - rockchip,pins = <0x04 0x18 0x02 0x198>; - phandle = <0x13e>; - }; - - pdm1m0-sdi1 { - rockchip,pins = <0x04 0x1a 0x02 0x198>; - phandle = <0x13c>; - }; - - pdm1m1-clk { - rockchip,pins = <0x01 0x0c 0x02 0x198>; - phandle = <0x3bb>; - }; - - pdm1m1-clk1 { - rockchip,pins = <0x01 0x0b 0x02 0x198>; - phandle = <0x3bc>; - }; - - pdm1m1-idle { - rockchip,pins = <0x01 0x0c 0x00 0x198 0x01 0x0b 0x00 0x198>; - phandle = <0x3bd>; - }; - - pdm1m0-clk1 { - rockchip,pins = <0x04 0x1c 0x02 0x198>; - phandle = <0x141>; - }; - - pdm1m1-sdi2 { - rockchip,pins = <0x01 0x09 0x02 0x198>; - phandle = <0x3c0>; - }; - - pdm1m0-idle { - rockchip,pins = <0x04 0x1d 0x00 0x198 0x04 0x1c 0x00 0x198>; - phandle = <0x13f>; - }; - - pdm1m1-sdi0 { - rockchip,pins = <0x01 0x07 0x02 0x198>; - phandle = <0x3be>; - }; - - pdm1m0-sdi2 { - rockchip,pins = <0x04 0x19 0x02 0x198>; - phandle = <0x13d>; - }; - - pdm1m0-sdi0 { - rockchip,pins = <0x04 0x1b 0x02 0x198>; - phandle = <0x13b>; - }; - }; - - cpu { - - cpu-pins { - rockchip,pins = <0x00 0x19 0x02 0x198 0x00 0x1d 0x02 0x198>; - phandle = <0x317>; - }; - }; - - gpio-func { - - tsadc-gpio-func { - rockchip,pins = <0x00 0x01 0x00 0x198>; - phandle = <0x175>; - }; - }; - - pcie20x1 { - - pcie20x1-2-button-rstn { - rockchip,pins = <0x04 0x0b 0x04 0x198>; - phandle = <0x3a3>; - }; - - pcie20x1m1-pins { - rockchip,pins = <0x04 0x0f 0x04 0x198 0x04 0x11 0x04 0x198 0x04 0x10 0x04 0x198>; - phandle = <0x3a2>; - }; - - pcie20x1m0-pins { - rockchip,pins = <0x03 0x17 0x04 0x198 0x03 0x19 0x04 0x198 0x03 0x18 0x04 0x198>; - phandle = <0x3a1>; - }; - }; - - leds { - - leds-gpio { - rockchip,pins = <0x00 0x15 0x00 0x198>; - phandle = <0x1ee>; - }; - }; - - pwm1 { - - pwm1m1-pins { - rockchip,pins = <0x01 0x1b 0x0b 0x198>; - phandle = <0x3c5>; - }; - - pwm1m0-pins { - rockchip,pins = <0x00 0x10 0x03 0x198>; - phandle = <0x7f>; - }; - - pwm1m2-pins { - rockchip,pins = <0x01 0x03 0x0b 0x198>; - phandle = <0x3c6>; - }; - }; - - sata0 { - - sata0m1-pins { - rockchip,pins = <0x01 0x0b 0x06 0x198>; - phandle = <0x3e9>; - }; - - sata0m0-pins { - rockchip,pins = <0x04 0x0e 0x06 0x198>; - phandle = <0x3e8>; - }; - }; - - refclk { - - refclk-pins { - rockchip,pins = <0x00 0x00 0x01 0x198>; - phandle = <0x3e5>; - }; - }; - - pcie30x4 { - - pcie30x4m2-pins { - rockchip,pins = <0x03 0x14 0x04 0x198 0x03 0x16 0x04 0x198 0x03 0x15 0x04 0x198>; - phandle = <0x3b1>; - }; - - pcie30x4m1-pins { - rockchip,pins = <0x04 0x0c 0x04 0x198 0x04 0x0e 0x04 0x198 0x04 0x0d 0x04 0x198>; - phandle = <0x3b0>; - }; - - pcie30x4-button-rstn { - rockchip,pins = <0x03 0x1d 0x04 0x198>; - phandle = <0x3b3>; - }; - - pcie30x4m0-pins { - rockchip,pins = <0x00 0x16 0x0c 0x198 0x00 0x18 0x0c 0x198 0x00 0x17 0x0c 0x198>; - phandle = <0x3af>; - }; - - pcie30x4m3-pins { - rockchip,pins = <0x01 0x08 0x04 0x198 0x01 0x0a 0x04 0x198 0x01 0x09 0x04 0x198>; - phandle = <0x3b2>; - }; - }; - - can2 { - - can2m1-pins { - rockchip,pins = <0x00 0x1c 0x0a 0x198 0x00 0x1d 0x0a 0x198>; - phandle = <0x30f>; - }; - - can2m0-pins { - rockchip,pins = <0x03 0x14 0x09 0x198 0x03 0x15 0x09 0x198>; - phandle = <0x147>; - }; - }; - - litcpu { - - litcpu-pins { - rockchip,pins = <0x00 0x1b 0x01 0x198>; - phandle = <0x392>; - }; - }; - - sata { - - sata-reset { - rockchip,pins = <0x04 0x11 0x00 0x198>; - phandle = <0x3e7>; - }; - - sata-pins { - rockchip,pins = <0x00 0x16 0x0d 0x198 0x00 0x1c 0x0d 0x198 0x00 0x1d 0x0d 0x198>; - phandle = <0x3e6>; - }; - }; - - tsadc { - - tsadc-shut { - rockchip,pins = <0x00 0x01 0x02 0x198>; - phandle = <0x176>; - }; - - tsadc-shut-org { - rockchip,pins = <0x00 0x01 0x01 0x198>; - phandle = <0x418>; - }; - - tsadcm1-shut { - rockchip,pins = <0x00 0x02 0x02 0x198>; - phandle = <0x417>; - }; - }; - - uart0 { - - uart0m1-xfer { - rockchip,pins = <0x00 0x08 0x04 0x19e 0x00 0x09 0x04 0x19e>; - phandle = <0x7d>; - }; - - uart0m0-xfer { - rockchip,pins = <0x00 0x14 0x04 0x19e 0x00 0x15 0x04 0x19e>; - phandle = <0x419>; - }; - - uart0-rtsn { - rockchip,pins = <0x00 0x16 0x04 0x198>; - phandle = <0x41c>; - }; - - uart0-ctsn { - rockchip,pins = <0x00 0x19 0x04 0x198>; - phandle = <0x41b>; - }; - - uart0m2-xfer { - rockchip,pins = <0x04 0x04 0x0a 0x19e 0x04 0x03 0x0a 0x19e>; - phandle = <0x41a>; - }; - }; - - pcfg-pull-down-drv-level-2 { - drive-strength = <0x02>; - bias-pull-down; - phandle = <0x2f9>; - }; - - pcfg-pull-up-drv-level-5 { - drive-strength = <0x05>; - phandle = <0x2f6>; - bias-pull-up; - }; - - gpio@fec20000 { - gpio-controller; - interrupts = <0x00 0x116 0x04>; - clocks = <0x02 0x7d 0x02 0x7e>; - compatible = "rockchip,gpio-bank"; - #interrupt-cells = <0x02>; - reg = <0x00 0xfec20000 0x00 0x100>; - phandle = <0xfe>; - #gpio-cells = <0x02>; - gpio-ranges = <0x197 0x00 0x20 0x20>; - interrupt-controller; - }; - - pcfg-pull-none-drv-level-15 { - drive-strength = <0x0f>; - bias-disable; - phandle = <0x459>; - }; - - eth1 { - - eth1-pins { - rockchip,pins = <0x03 0x06 0x01 0x198>; - phandle = <0x327>; - }; - }; - - i2c4 { - - i2c4m3-xfer { - rockchip,pins = <0x01 0x03 0x09 0x19d 0x01 0x02 0x09 0x19d>; - phandle = <0x364>; - }; - - i2c4m2-xfer { - rockchip,pins = <0x00 0x15 0x09 0x19d 0x00 0x14 0x09 0x19d>; - phandle = <0x363>; - }; - - i2c4m1-xfer { - rockchip,pins = <0x02 0x0d 0x09 0x19d 0x02 0x0c 0x09 0x19d>; - phandle = <0x14b>; - }; - - i2c4m0-xfer { - rockchip,pins = <0x03 0x06 0x09 0x19d 0x03 0x05 0x09 0x19d>; - phandle = <0x362>; - }; - - i2c4m4-xfer { - rockchip,pins = <0x01 0x17 0x09 0x19d 0x01 0x16 0x09 0x19d>; - phandle = <0x365>; - }; - }; - - emmc { - - emmc-data-strobe { - rockchip,pins = <0x02 0x02 0x01 0x198>; - phandle = <0x326>; - }; - - emmc-clk { - rockchip,pins = <0x02 0x01 0x01 0x199>; - phandle = <0x324>; - }; - - emmc-bus8 { - rockchip,pins = <0x02 0x18 0x01 0x199 0x02 0x19 0x01 0x199 0x02 0x1a 0x01 0x199 0x02 0x1b 0x01 0x199 0x02 0x1c 0x01 0x199 0x02 0x1d 0x01 0x199 0x02 0x1e 0x01 0x199 0x02 0x1f 0x01 0x199>; - phandle = <0x323>; - }; - - emmc-cmd { - rockchip,pins = <0x02 0x00 0x01 0x199>; - phandle = <0x325>; - }; - - emmc-rstnout { - rockchip,pins = <0x02 0x03 0x01 0x198>; - phandle = <0x322>; - }; - }; - - pcfg-pull-none-drv-level-8 { - drive-strength = <0x08>; - bias-disable; - phandle = <0x452>; - }; - - pwm15 { - - pwm15m0-pins { - rockchip,pins = <0x03 0x13 0x0b 0x198>; - phandle = <0x174>; - }; - - pwm15m3-pins { - rockchip,pins = <0x01 0x1f 0x0b 0x198>; - phandle = <0x3e4>; - }; - - pwm15m2-pins { - rockchip,pins = <0x01 0x16 0x0b 0x198>; - phandle = <0x3e3>; - }; - - pwm15m1-pins { - rockchip,pins = <0x04 0x0b 0x0b 0x198>; - phandle = <0x3e2>; - }; - }; - - pcie30x2 { - - pcie30x2m2-pins { - rockchip,pins = <0x03 0x1a 0x04 0x198 0x03 0x1c 0x04 0x198 0x03 0x1b 0x04 0x198>; - phandle = <0x3ac>; - }; - - pcie30x2m1-pins { - rockchip,pins = <0x04 0x06 0x04 0x198 0x04 0x08 0x04 0x198 0x04 0x07 0x04 0x198>; - phandle = <0x3ab>; - }; - - pcie30x2-button-rstn { - rockchip,pins = <0x03 0x11 0x04 0x198>; - phandle = <0x3ae>; - }; - - pcie30x2m0-pins { - rockchip,pins = <0x00 0x19 0x0c 0x198 0x00 0x1c 0x0c 0x198 0x00 0x1a 0x0c 0x198>; - phandle = <0x3aa>; - }; - - pcie30x2m3-pins { - rockchip,pins = <0x01 0x1f 0x04 0x198 0x01 0x0f 0x04 0x198 0x01 0x0e 0x04 0x198>; - phandle = <0x3ad>; - }; - }; - - can0 { - - can0m0-pins { - rockchip,pins = <0x00 0x10 0x0b 0x198 0x00 0x0f 0x0b 0x198>; - phandle = <0x145>; - }; - - can0m1-pins { - rockchip,pins = <0x04 0x1d 0x09 0x198 0x04 0x1c 0x09 0x198>; - phandle = <0x30d>; - }; - }; - - pcfg-output-high { - output-high; - phandle = <0x305>; - }; - - uart9 { - - uart9m0-rtsn { - rockchip,pins = <0x04 0x14 0x0a 0x198>; - phandle = <0x44e>; - }; - - uart9m2-ctsn { - rockchip,pins = <0x03 0x1b 0x0a 0x198>; - phandle = <0x44a>; - }; - - uart9m1-ctsn { - rockchip,pins = <0x04 0x01 0x0a 0x198>; - phandle = <0x447>; - }; - - uart9m2-xfer { - rockchip,pins = <0x03 0x1c 0x0a 0x19e 0x03 0x1d 0x0a 0x19e>; - phandle = <0x449>; - }; - - uart9m0-ctsn { - rockchip,pins = <0x04 0x15 0x0a 0x198>; - phandle = <0x44d>; - }; - - uart9m1-xfer { - rockchip,pins = <0x04 0x0d 0x0a 0x19e 0x04 0x0c 0x0a 0x19e>; - phandle = <0x168>; - }; - - uart9m0-xfer { - rockchip,pins = <0x02 0x14 0x0a 0x19e 0x02 0x12 0x0a 0x19e>; - phandle = <0x44c>; - }; - - uart9m2-rtsn { - rockchip,pins = <0x03 0x1a 0x0a 0x198>; - phandle = <0x44b>; - }; - - uart9m1-rtsn { - rockchip,pins = <0x04 0x00 0x0a 0x198>; - phandle = <0x448>; - }; - }; - - pcfg-pull-none-drv-level-2-smt { - drive-strength = <0x02>; - bias-disable; - input-schmitt-enable; - phandle = <0x301>; - }; - - pcfg-pull-up { - phandle = <0x19e>; - bias-pull-up; - }; - - spi3 { - - spi3m3-cs1 { - rockchip,pins = <0x03 0x15 0x08 0x19a>; - phandle = <0x40e>; - }; - - spi3m1-cs0 { - rockchip,pins = <0x04 0x10 0x08 0x19a>; - phandle = <0x15d>; - }; - - spi3m3-pins { - rockchip,pins = <0x03 0x18 0x08 0x19a 0x03 0x16 0x08 0x19a 0x03 0x17 0x08 0x19a>; - phandle = <0x40c>; - }; - - spi3m0-cs1 { - rockchip,pins = <0x04 0x13 0x08 0x19f>; - phandle = <0x411>; - }; - - spi3m2-cs0 { - rockchip,pins = <0x00 0x1c 0x08 0x19a>; - phandle = <0x40a>; - }; - - spi3m2-pins { - rockchip,pins = <0x00 0x1b 0x08 0x19a 0x00 0x18 0x08 0x19a 0x00 0x1a 0x08 0x19a>; - phandle = <0x409>; - }; - - spi3m1-cs1 { - rockchip,pins = <0x04 0x11 0x08 0x19a>; - phandle = <0x15e>; - }; - - spi3m1-pins { - rockchip,pins = <0x04 0x0f 0x08 0x19a 0x04 0x0d 0x08 0x19a 0x04 0x0e 0x08 0x19a>; - phandle = <0x15f>; - }; - - spi3m3-cs0 { - rockchip,pins = <0x03 0x14 0x08 0x19a>; - phandle = <0x40d>; - }; - - spi3m0-pins { - rockchip,pins = <0x04 0x16 0x08 0x19f 0x04 0x14 0x08 0x19f 0x04 0x15 0x08 0x19f>; - phandle = <0x40f>; - }; - - spi3m2-cs1 { - rockchip,pins = <0x00 0x1d 0x08 0x19a>; - phandle = <0x40b>; - }; - - spi3m0-cs0 { - rockchip,pins = <0x04 0x12 0x08 0x19f>; - phandle = <0x410>; - }; - }; - - pcfg-pull-down-drv-level-14 { - drive-strength = <0x0e>; - bias-pull-down; - phandle = <0x46a>; - }; - - bt656 { - - bt656-pins { - rockchip,pins = <0x04 0x08 0x02 0x1a0 0x04 0x00 0x02 0x1a0 0x04 0x01 0x02 0x1a0 0x04 0x02 0x02 0x1a0 0x04 0x03 0x02 0x1a0 0x04 0x04 0x02 0x1a0 0x04 0x05 0x02 0x1a0 0x04 0x06 0x02 0x1a0 0x04 0x07 0x02 0x1a0>; - phandle = <0x450>; - }; - }; - - pcfg-pull-down-drv-level-0 { - drive-strength = <0x00>; - bias-pull-down; - phandle = <0x2f7>; - }; - - pcfg-pull-up-drv-level-3 { - drive-strength = <0x03>; - phandle = <0x2f4>; - bias-pull-up; - }; - - i2s2 { - - i2s2m0-lrck { - rockchip,pins = <0x02 0x10 0x02 0x19d>; - phandle = <0x389>; - }; - - i2s2m1-mclk { - rockchip,pins = <0x03 0x0c 0x03 0x19d>; - phandle = <0x387>; - }; - - i2s2m0-mclk { - rockchip,pins = <0x02 0x0e 0x02 0x19d>; - phandle = <0x38a>; - }; - - i2s2m1-sdo { - rockchip,pins = <0x03 0x0b 0x03 0x198>; - phandle = <0x12b>; - }; - - i2s2m0-sdi { - rockchip,pins = <0x02 0x13 0x02 0x198>; - phandle = <0x38c>; - }; - - i2s2m1-idle { - rockchip,pins = <0x03 0x0e 0x00 0x198 0x03 0x0d 0x00 0x198>; - phandle = <0x12c>; - }; - - i2s2m1-sdi { - rockchip,pins = <0x03 0x0a 0x03 0x198>; - phandle = <0x12a>; - }; - - i2s2m0-idle { - rockchip,pins = <0x02 0x10 0x00 0x198 0x02 0x0f 0x00 0x198>; - phandle = <0x388>; - }; - - i2s2m1-sclk { - rockchip,pins = <0x03 0x0d 0x03 0x19d>; - phandle = <0x12e>; - }; - - i2s2m1-lrck { - rockchip,pins = <0x03 0x0e 0x03 0x19d>; - phandle = <0x12d>; - }; - - i2s2m0-sclk { - rockchip,pins = <0x02 0x0f 0x02 0x19d>; - phandle = <0x38b>; - }; - - i2s2m0-sdo { - rockchip,pins = <0x04 0x13 0x02 0x198>; - phandle = <0x38d>; - }; - }; - - pcfg-pull-none-drv-level-6-smt { - drive-strength = <0x06>; - bias-disable; - input-schmitt-enable; - phandle = <0x304>; - }; - - ddrphych3 { - - ddrphych3-pins { - rockchip,pins = <0x04 0x0c 0x07 0x198 0x04 0x0d 0x07 0x198 0x04 0x0e 0x07 0x198 0x04 0x0f 0x07 0x198>; - phandle = <0x31b>; - }; - }; - - pcfg-pull-none-drv-level-13 { - drive-strength = <0x0d>; - bias-disable; - phandle = <0x457>; - }; - - i2c2 { - - i2c2m2-xfer { - rockchip,pins = <0x02 0x03 0x09 0x19d 0x02 0x02 0x09 0x19d>; - phandle = <0x35a>; - }; - - i2c2m1-xfer { - rockchip,pins = <0x02 0x11 0x09 0x19d 0x02 0x10 0x09 0x19d>; - phandle = <0x35d>; - }; - - i2c2m0-xfer { - rockchip,pins = <0x00 0x0f 0x09 0x19d 0x00 0x10 0x09 0x19d>; - phandle = <0x149>; - }; - - i2c2m4-xfer { - rockchip,pins = <0x01 0x01 0x09 0x19d 0x01 0x00 0x09 0x19d>; - phandle = <0x35c>; - }; - - i2c2m3-xfer { - rockchip,pins = <0x01 0x15 0x09 0x19d 0x01 0x14 0x09 0x19d>; - phandle = <0x35b>; - }; - }; - - auddsm { - - auddsm-pins { - rockchip,pins = <0x03 0x01 0x04 0x198 0x03 0x02 0x04 0x198 0x03 0x03 0x04 0x198 0x03 0x04 0x04 0x198>; - phandle = <0x144>; - }; - }; - - pwm8 { - - pwm8m2-pins { - rockchip,pins = <0x03 0x18 0x0b 0x198>; - phandle = <0x3d5>; - }; - - pwm8m1-pins { - rockchip,pins = <0x04 0x18 0x0b 0x198>; - phandle = <0x3d4>; - }; - - pwm8m0-pins { - rockchip,pins = <0x03 0x07 0x0b 0x198>; - phandle = <0x16d>; - }; - }; - - pmic { - - pmic-pins { - rockchip,pins = <0x00 0x07 0x00 0x19e 0x00 0x02 0x01 0x198 0x00 0x03 0x01 0x198 0x00 0x11 0x01 0x198 0x00 0x12 0x01 0x198 0x00 0x13 0x01 0x198 0x00 0x1e 0x01 0x198>; - phandle = <0x156>; - }; - }; - - pcfg-pull-none-drv-level-6 { - drive-strength = <0x06>; - bias-disable; - phandle = <0x2f2>; - }; - - jtag { - - jtagm2-pins { - rockchip,pins = <0x00 0x0d 0x02 0x198 0x00 0x0e 0x02 0x198>; - phandle = <0x391>; - }; - - jtagm1-pins { - rockchip,pins = <0x04 0x18 0x05 0x198 0x04 0x19 0x05 0x198>; - phandle = <0x390>; - }; - - jtagm0-pins { - rockchip,pins = <0x04 0x1a 0x05 0x198 0x04 0x1b 0x05 0x198>; - phandle = <0x38f>; - }; - }; - - gpio@fd8a0000 { - gpio-controller; - interrupts = <0x00 0x115 0x04>; - clocks = <0x02 0x284 0x02 0x285>; - compatible = "rockchip,gpio-bank"; - #interrupt-cells = <0x02>; - reg = <0x00 0xfd8a0000 0x00 0x100>; - phandle = <0x7b>; - #gpio-cells = <0x02>; - gpio-ranges = <0x197 0x00 0x00 0x20>; - interrupt-controller; - }; - - gmac1 { - - gmac1-rgmii-clk { - rockchip,pins = <0x03 0x05 0x01 0x198 0x03 0x04 0x01 0x198>; - phandle = <0x111>; - }; - - gmac1-rx-bus2 { - rockchip,pins = <0x03 0x07 0x01 0x198 0x03 0x08 0x01 0x198 0x03 0x09 0x01 0x198>; - phandle = <0x110>; - }; - - gmac1-txer { - rockchip,pins = <0x03 0x0a 0x01 0x198>; - phandle = <0x332>; - }; - - gmac1-clkinout { - rockchip,pins = <0x03 0x0e 0x01 0x198>; - phandle = <0x32e>; - }; - - gmac1-ptp-ref-clk { - rockchip,pins = <0x03 0x0f 0x01 0x198>; - phandle = <0x331>; - }; - - gmac1-ppsclk { - rockchip,pins = <0x03 0x11 0x01 0x198>; - phandle = <0x32f>; - }; - - gmac1-ppstrig { - rockchip,pins = <0x03 0x10 0x01 0x198>; - phandle = <0x330>; - }; - - gmac1-rgmii-bus { - rockchip,pins = <0x03 0x02 0x01 0x198 0x03 0x03 0x01 0x198 0x03 0x00 0x01 0x19a 0x03 0x01 0x01 0x19a>; - phandle = <0x112>; - }; - - gmac1-tx-bus2 { - rockchip,pins = <0x03 0x0b 0x01 0x19a 0x03 0x0c 0x01 0x19a 0x03 0x0d 0x01 0x198>; - phandle = <0x10f>; - }; - - gmac1-miim { - rockchip,pins = <0x03 0x12 0x01 0x198 0x03 0x13 0x01 0x198>; - phandle = <0x10e>; - }; - }; - - pcfg-pull-none { - bias-disable; - phandle = <0x198>; - }; - - pwm13 { - - pwm13m2-pins { - rockchip,pins = <0x01 0x0f 0x0b 0x198>; - phandle = <0x3df>; - }; - - pwm13m1-pins { - rockchip,pins = <0x04 0x0e 0x0b 0x198>; - phandle = <0x3de>; - }; - - pwm13m0-pins { - rockchip,pins = <0x03 0x0e 0x0b 0x198>; - phandle = <0x172>; - }; - }; - - pcfg-output-high-pull-down { - output-high; - bias-pull-down; - phandle = <0x307>; - }; - - uart7 { - - uart7m1-ctsn { - rockchip,pins = <0x03 0x13 0x0a 0x198>; - phandle = <0x43b>; - }; - - uart7m2-xfer { - rockchip,pins = <0x01 0x0c 0x0a 0x19e 0x01 0x0d 0x0a 0x19e>; - phandle = <0x43d>; - }; - - uart7m0-ctsn { - rockchip,pins = <0x04 0x16 0x0a 0x198>; - phandle = <0x43f>; - }; - - uart7m1-xfer { - rockchip,pins = <0x03 0x11 0x0a 0x19e 0x03 0x10 0x0a 0x19e>; - phandle = <0x166>; - }; - - uart7m0-xfer { - rockchip,pins = <0x02 0x0c 0x0a 0x19e 0x02 0x0d 0x0a 0x19e>; - phandle = <0x43e>; - }; - - uart7m1-rtsn { - rockchip,pins = <0x03 0x12 0x0a 0x198>; - phandle = <0x43c>; - }; - - uart7m0-rtsn { - rockchip,pins = <0x04 0x12 0x0a 0x198>; - phandle = <0x440>; - }; - }; - - pcfg-pull-down-drv-level-9 { - drive-strength = <0x09>; - bias-pull-down; - phandle = <0x465>; - }; - - spi1 { - - spi1m1-cs1 { - rockchip,pins = <0x03 0x13 0x08 0x19a>; - phandle = <0x152>; - }; - - spi1m2-cs1 { - rockchip,pins = <0x01 0x1d 0x08 0x19a>; - phandle = <0x3fe>; - }; - - spi1m0-cs0 { - rockchip,pins = <0x02 0x13 0x08 0x19f>; - phandle = <0x400>; - }; - - spi1m2-pins { - rockchip,pins = <0x01 0x1a 0x08 0x19a 0x01 0x18 0x08 0x19a 0x01 0x19 0x08 0x19a>; - phandle = <0x3fc>; - }; - - spi1m1-pins { - rockchip,pins = <0x03 0x11 0x08 0x19a 0x03 0x10 0x08 0x19a 0x03 0x0f 0x08 0x19a>; - phandle = <0x153>; - }; - - spi1m1-cs0 { - rockchip,pins = <0x03 0x12 0x08 0x19a>; - phandle = <0x151>; - }; - - spi1m0-pins { - rockchip,pins = <0x02 0x10 0x08 0x19f 0x02 0x11 0x08 0x19f 0x02 0x12 0x08 0x19f>; - phandle = <0x3ff>; - }; - - spi1m0-cs1 { - rockchip,pins = <0x02 0x14 0x08 0x19f>; - phandle = <0x401>; - }; - - spi1m2-cs0 { - rockchip,pins = <0x01 0x1b 0x08 0x19a>; - phandle = <0x3fd>; - }; - }; - - pcfg-pull-up-drv-level-14 { - drive-strength = <0x0e>; - phandle = <0x461>; - bias-pull-up; - }; - - pcfg-output-low-pull-down { - bias-pull-down; - phandle = <0x30b>; - output-low; - }; - - pcfg-pull-down-drv-level-12 { - drive-strength = <0x0c>; - bias-pull-down; - phandle = <0x468>; - }; - - pcfg-pull-up-drv-level-1 { - drive-strength = <0x01>; - phandle = <0x19f>; - bias-pull-up; - }; - - pcfg-pull-none-smt { - bias-disable; - input-schmitt-enable; - phandle = <0x19d>; - }; - - sdmmc { - - sdmmc-det { - rockchip,pins = <0x00 0x04 0x01 0x19e>; - phandle = <0x116>; - }; - - sdmmc-pwren { - rockchip,pins = <0x00 0x05 0x02 0x198>; - phandle = <0x3ef>; - }; - - sdmmc-bus4 { - rockchip,pins = <0x04 0x18 0x01 0x199 0x04 0x19 0x01 0x199 0x04 0x1a 0x01 0x199 0x04 0x1b 0x01 0x199>; - phandle = <0x117>; - }; - - sdmmc-cmd { - rockchip,pins = <0x04 0x1c 0x01 0x199>; - phandle = <0x115>; - }; - - sdmmc-clk { - rockchip,pins = <0x04 0x1d 0x01 0x199>; - phandle = <0x114>; - }; - }; - - i2s0 { - - i2s0-sclk { - rockchip,pins = <0x01 0x13 0x01 0x19d>; - phandle = <0x11c>; - }; - - i2s0-sdo3 { - rockchip,pins = <0x01 0x1a 0x01 0x198>; - phandle = <0x37a>; - }; - - i2s0-lrck { - rockchip,pins = <0x01 0x15 0x01 0x19d>; - phandle = <0x11b>; - }; - - i2s0-sdo1 { - rockchip,pins = <0x01 0x18 0x01 0x198>; - phandle = <0x378>; - }; - - i2s0-sdi3 { - rockchip,pins = <0x01 0x19 0x02 0x198>; - phandle = <0x377>; - }; - - i2s0-mclk { - rockchip,pins = <0x01 0x12 0x01 0x19d>; - phandle = <0x17a>; - }; - - i2s0-sdi1 { - rockchip,pins = <0x01 0x1b 0x02 0x198>; - phandle = <0x375>; - }; - - i2s0-sdo2 { - rockchip,pins = <0x01 0x19 0x01 0x198>; - phandle = <0x379>; - }; - - i2s0-idle { - rockchip,pins = <0x01 0x15 0x00 0x198 0x01 0x13 0x00 0x198>; - phandle = <0x11f>; - }; - - i2s0-sdo0 { - rockchip,pins = <0x01 0x17 0x01 0x198>; - phandle = <0x11e>; - }; - - i2s0-sdi2 { - rockchip,pins = <0x01 0x1a 0x02 0x198>; - phandle = <0x376>; - }; - - i2s0-sdi0 { - rockchip,pins = <0x01 0x1c 0x02 0x198>; - phandle = <0x11d>; - }; - }; - - ddrphych1 { - - ddrphych1-pins { - rockchip,pins = <0x04 0x04 0x07 0x198 0x04 0x05 0x07 0x198 0x04 0x06 0x07 0x198 0x04 0x07 0x07 0x198>; - phandle = <0x319>; - }; - }; - - pcfg-pull-none-drv-level-11 { - drive-strength = <0x0b>; - bias-disable; - phandle = <0x455>; - }; - - i2c0 { - - i2c0m2-xfer { - rockchip,pins = <0x00 0x19 0x03 0x19d 0x00 0x1a 0x03 0x19d>; - phandle = <0x77>; - }; - - i2c0m1-xfer { - rockchip,pins = <0x04 0x15 0x09 0x19d 0x04 0x16 0x09 0x19d>; - phandle = <0x355>; - }; - - i2c0m0-xfer { - rockchip,pins = <0x00 0x0b 0x02 0x19d 0x00 0x06 0x02 0x19d>; - phandle = <0x354>; - }; - }; - - pwm6 { - - pwm6m2-pins { - rockchip,pins = <0x04 0x15 0x0b 0x198>; - phandle = <0x3d0>; - }; - - pwm6m1-pins { - rockchip,pins = <0x04 0x11 0x0b 0x198>; - phandle = <0x3cf>; - }; - - pwm6m0-pins { - rockchip,pins = <0x00 0x17 0x0b 0x198>; - phandle = <0x16b>; - }; - }; - - hym8563 { - - hym8563-int { - rockchip,pins = <0x00 0x08 0x00 0x198>; - phandle = <0x7a>; - }; - }; - - pcfg-pull-none-drv-level-4 { - drive-strength = <0x04>; - bias-disable; - phandle = <0x2f0>; - }; - - pcfg-output-high-pull-up { - output-high; - phandle = <0x306>; - bias-pull-up; - }; - - pwm11 { - - pwm11m3-pins { - rockchip,pins = <0x03 0x1d 0x0b 0x198>; - phandle = <0x3dc>; - }; - - pwm11m2-pins { - rockchip,pins = <0x01 0x14 0x0b 0x198>; - phandle = <0x3db>; - }; - - pwm11m1-pins { - rockchip,pins = <0x04 0x0c 0x0b 0x198>; - phandle = <0x3da>; - }; - - pwm11m0-pins { - rockchip,pins = <0x03 0x01 0x0b 0x198>; - phandle = <0x170>; - }; - }; - - bt1120 { - - bt1120-pins { - rockchip,pins = <0x04 0x08 0x02 0x198 0x04 0x00 0x02 0x198 0x04 0x01 0x02 0x198 0x04 0x02 0x02 0x198 0x04 0x03 0x02 0x198 0x04 0x04 0x02 0x198 0x04 0x05 0x02 0x198 0x04 0x06 0x02 0x198 0x04 0x07 0x02 0x198 0x04 0x0a 0x02 0x198 0x04 0x0b 0x02 0x198 0x04 0x0c 0x02 0x198 0x04 0x0d 0x02 0x198 0x04 0x0e 0x02 0x198 0x04 0x0f 0x02 0x198 0x04 0x10 0x02 0x198 0x04 0x11 0x02 0x198>; - phandle = <0x71>; - }; - }; - - pcfg-output-low-pull-up { - phandle = <0x30a>; - bias-pull-up; - output-low; - }; - - uart5 { - - uart5m1-ctsn { - rockchip,pins = <0x02 0x02 0x0a 0x198>; - phandle = <0x433>; - }; - - uart5m2-xfer { - rockchip,pins = <0x02 0x1c 0x0a 0x19e 0x02 0x1d 0x0a 0x19e>; - phandle = <0x435>; - }; - - uart5m0-ctsn { - rockchip,pins = <0x04 0x1a 0x0a 0x198>; - phandle = <0x431>; - }; - - uart5m1-xfer { - rockchip,pins = <0x03 0x15 0x0a 0x19e 0x03 0x14 0x0a 0x19e>; - phandle = <0x164>; - }; - - uart5m0-xfer { - rockchip,pins = <0x04 0x1c 0x0a 0x19e 0x04 0x1d 0x0a 0x19e>; - phandle = <0x430>; - }; - - uart5m1-rtsn { - rockchip,pins = <0x02 0x03 0x0a 0x198>; - phandle = <0x434>; - }; - - uart5m0-rtsn { - rockchip,pins = <0x04 0x1b 0x0a 0x198>; - phandle = <0x432>; - }; - }; - - sdio { - - sdiom1-pins { - rockchip,pins = <0x03 0x05 0x02 0x198 0x03 0x04 0x02 0x19e 0x03 0x00 0x02 0x19e 0x03 0x01 0x02 0x19e 0x03 0x02 0x02 0x19e 0x03 0x03 0x02 0x19e>; - phandle = <0x119>; - }; - - sdiom0-pins { - rockchip,pins = <0x02 0x0b 0x02 0x198 0x02 0x0a 0x02 0x19e 0x02 0x06 0x02 0x19e 0x02 0x07 0x02 0x19e 0x02 0x08 0x02 0x19e 0x02 0x09 0x02 0x19e>; - phandle = <0x3ee>; - }; - }; - - spdif1 { - - spdif1m0-tx { - rockchip,pins = <0x01 0x0f 0x03 0x198>; - phandle = <0x143>; - }; - - spdif1m2-tx { - rockchip,pins = <0x04 0x11 0x03 0x198>; - phandle = <0x3f2>; - }; - - spdif1m1-tx { - rockchip,pins = <0x04 0x09 0x02 0x198>; - phandle = <0x3f1>; - }; - }; - - pcfg-pull-down-drv-level-7 { - drive-strength = <0x07>; - bias-pull-down; - phandle = <0x463>; - }; - - gpio@fec30000 { - gpio-controller; - interrupts = <0x00 0x117 0x04>; - clocks = <0x02 0x7f 0x02 0x80>; - compatible = "rockchip,gpio-bank"; - #interrupt-cells = <0x02>; - reg = <0x00 0xfec30000 0x00 0x100>; - phandle = <0x79>; - #gpio-cells = <0x02>; - gpio-ranges = <0x197 0x00 0x40 0x20>; - interrupt-controller; - }; - - pcfg-pull-up-drv-level-12 { - drive-strength = <0x0c>; - phandle = <0x45f>; - bias-pull-up; - }; - - pcfg-pull-down-drv-level-10 { - drive-strength = <0x0a>; - bias-pull-down; - phandle = <0x466>; - }; - - dp1 { - - dp1m1-pins { - rockchip,pins = <0x00 0x15 0x0a 0x198>; - phandle = <0x320>; - }; - - dp1m0-pins { - rockchip,pins = <0x03 0x1d 0x05 0x198>; - phandle = <0x31f>; - }; - - dp1m2-pins { - rockchip,pins = <0x01 0x01 0x05 0x198>; - phandle = <0x321>; - }; - }; - - vop { - - vop-pins { - rockchip,pins = <0x01 0x02 0x01 0x198>; - phandle = <0x44f>; - }; - }; - - pwm4 { - - pwm4m1-pins { - rockchip,pins = <0x04 0x13 0x0b 0x198>; - phandle = <0x3cc>; - }; - - pwm4m0-pins { - rockchip,pins = <0x00 0x15 0x0b 0x198>; - phandle = <0x169>; - }; - }; - - pcfg-pull-none-drv-level-2 { - drive-strength = <0x02>; - bias-disable; - phandle = <0x1a0>; - }; - - pcfg-pull-none-drv-level-3-smt { - drive-strength = <0x03>; - bias-disable; - input-schmitt-enable; - phandle = <0x302>; - }; - - uart3 { - - uart3m2-xfer { - rockchip,pins = <0x04 0x06 0x0a 0x19e 0x04 0x05 0x0a 0x19e>; - phandle = <0x429>; - }; - - uart3m1-xfer { - rockchip,pins = <0x03 0x0e 0x0a 0x19e 0x03 0x0d 0x0a 0x19e>; - phandle = <0x162>; - }; - - uart3-ctsn { - rockchip,pins = <0x01 0x13 0x0a 0x198>; - phandle = <0x42a>; - }; - - uart3m0-xfer { - rockchip,pins = <0x01 0x10 0x0a 0x19e 0x01 0x11 0x0a 0x19e>; - phandle = <0x428>; - }; - - uart3-rtsn { - rockchip,pins = <0x01 0x12 0x0a 0x198>; - phandle = <0x42b>; - }; - }; - - pcfg-pull-down-drv-level-5 { - drive-strength = <0x05>; - bias-pull-down; - phandle = <0x2fc>; - }; - - pcfg-pull-up-drv-level-8 { - drive-strength = <0x08>; - phandle = <0x45b>; - bias-pull-up; - }; - - pcfg-pull-up-drv-level-10 { - drive-strength = <0x0a>; - phandle = <0x45d>; - bias-pull-up; - }; - - pcfg-output-low { - phandle = <0x309>; - output-low; - }; - - i2c7 { - - i2c7m3-xfer { - rockchip,pins = <0x04 0x0a 0x09 0x19d 0x04 0x0b 0x09 0x19d>; - phandle = <0x36f>; - }; - - i2c7m2-xfer { - rockchip,pins = <0x03 0x1a 0x09 0x19d 0x03 0x1b 0x09 0x19d>; - phandle = <0x36e>; - }; - - i2c7m1-xfer { - rockchip,pins = <0x04 0x13 0x09 0x19d 0x04 0x14 0x09 0x19d>; - phandle = <0x370>; - }; - - i2c7m0-xfer { - rockchip,pins = <0x01 0x18 0x09 0x19d 0x01 0x19 0x09 0x19d>; - phandle = <0x185>; - }; - }; - - pwm2 { - - pwm2m2-pins { - rockchip,pins = <0x04 0x12 0x0b 0x198>; - phandle = <0x3c8>; - }; - - pwm2m1-pins { - rockchip,pins = <0x03 0x09 0x0b 0x198>; - phandle = <0x3c7>; - }; - - pwm2m0-pins { - rockchip,pins = <0x00 0x14 0x03 0x198>; - phandle = <0x80>; - }; - }; - - pcfg-pull-none-drv-level-0 { - drive-strength = <0x00>; - bias-disable; - phandle = <0x2ed>; - }; - - sata1 { - - sata1m1-pins { - rockchip,pins = <0x01 0x01 0x06 0x198>; - phandle = <0x3eb>; - }; - - sata1m0-pins { - rockchip,pins = <0x04 0x0d 0x06 0x198>; - phandle = <0x3ea>; - }; - }; - - pmu { - - pmu-pins { - rockchip,pins = <0x00 0x05 0x03 0x198>; - phandle = <0x3c2>; - }; - }; - - hdmirx { - - hdmirx-det { - rockchip,pins = <0x01 0x1d 0x00 0x198>; - phandle = <0x1b4>; - }; - }; - - uart1 { - - uart1m0-ctsn { - rockchip,pins = <0x02 0x11 0x0a 0x198>; - phandle = <0x423>; - }; - - uart1m1-xfer { - rockchip,pins = <0x01 0x0f 0x0a 0x19e 0x01 0x0e 0x0a 0x19e>; - phandle = <0x160>; - }; - - uart1m0-xfer { - rockchip,pins = <0x02 0x0e 0x0a 0x19e 0x02 0x0f 0x0a 0x19e>; - phandle = <0x422>; - }; - - uart1m2-rtsn { - rockchip,pins = <0x00 0x17 0x0a 0x198>; - phandle = <0x421>; - }; - - uart1m1-rtsn { - rockchip,pins = <0x01 0x1e 0x0a 0x198>; - phandle = <0x41e>; - }; - - uart1m0-rtsn { - rockchip,pins = <0x02 0x10 0x0a 0x198>; - phandle = <0x424>; - }; - - uart1m2-ctsn { - rockchip,pins = <0x00 0x18 0x0a 0x198>; - phandle = <0x420>; - }; - - uart1m1-ctsn { - rockchip,pins = <0x01 0x1f 0x0a 0x198>; - phandle = <0x41d>; - }; - - uart1m2-xfer { - rockchip,pins = <0x00 0x1a 0x0a 0x19e 0x00 0x19 0x0a 0x19e>; - phandle = <0x41f>; - }; - }; - - hdmi { - - hdmim1-rx-cec { - rockchip,pins = <0x03 0x19 0x05 0x198>; - phandle = <0x338>; - }; - - hdmim0-rx-scl { - rockchip,pins = <0x00 0x1a 0x0b 0x198>; - phandle = <0x336>; - }; - - hdmim0-rx-sda { - rockchip,pins = <0x00 0x19 0x0b 0x198>; - phandle = <0x337>; - }; - - hdmim0-tx0-cec { - rockchip,pins = <0x04 0x11 0x05 0x198>; - phandle = <0xf9>; - }; - - hdmim2-rx-cec { - rockchip,pins = <0x01 0x0f 0x05 0x198>; - phandle = <0x342>; - }; - - hdmim1-rx-scl { - rockchip,pins = <0x03 0x1a 0x05 0x19d>; - phandle = <0x33a>; - }; - - hdmim1-rx-sda { - rockchip,pins = <0x03 0x1b 0x05 0x19d>; - phandle = <0x33b>; - }; - - hdmim0-tx0-scl { - rockchip,pins = <0x04 0x0f 0x05 0x19b>; - phandle = <0xfb>; - }; - - hdmim0-tx0-sda { - rockchip,pins = <0x04 0x10 0x05 0x19c>; - phandle = <0xfc>; - }; - - hdmim2-rx-scl { - rockchip,pins = <0x01 0x1e 0x05 0x198>; - phandle = <0x344>; - }; - - hdmim2-rx-sda { - rockchip,pins = <0x01 0x1f 0x05 0x198>; - phandle = <0x345>; - }; - - hdmim0-tx0-hpd { - rockchip,pins = <0x01 0x05 0x05 0x198>; - phandle = <0xfa>; - }; - - hdmim2-rx-hpdin { - rockchip,pins = <0x01 0x0e 0x05 0x198>; - phandle = <0x343>; - }; - - hdmi-debug6 { - rockchip,pins = <0x01 0x00 0x07 0x198>; - phandle = <0x350>; - }; - - hdmim2-tx0-scl { - rockchip,pins = <0x03 0x17 0x05 0x19b>; - phandle = <0x346>; - }; - - hdmim2-tx0-sda { - rockchip,pins = <0x03 0x18 0x05 0x19c>; - phandle = <0x347>; - }; - - hdmi-debug4 { - rockchip,pins = <0x01 0x0b 0x07 0x198>; - phandle = <0x34e>; - }; - - hdmim0-tx1-cec { - rockchip,pins = <0x02 0x14 0x04 0x198>; - phandle = <0x351>; - }; - - hdmim0-tx1-scl { - rockchip,pins = <0x02 0x0d 0x04 0x198>; - phandle = <0x352>; - }; - - hdmim0-tx1-sda { - rockchip,pins = <0x02 0x0c 0x04 0x198>; - phandle = <0x353>; - }; - - hdmi-debug2 { - rockchip,pins = <0x01 0x09 0x07 0x198>; - phandle = <0x34c>; - }; - - hdmim0-tx1-hpd { - rockchip,pins = <0x01 0x06 0x05 0x198>; - phandle = <0x1a9>; - }; - - hdmim1-rx { - rockchip,pins = <0x03 0x19 0x05 0x198 0x03 0x1a 0x05 0x19d 0x03 0x1b 0x05 0x19d 0x03 0x1c 0x05 0x198>; - phandle = <0x1b3>; - }; - - hdmim2-tx1-cec { - rockchip,pins = <0x03 0x14 0x05 0x198>; - phandle = <0x1a8>; - }; - - hdmi-debug0 { - rockchip,pins = <0x01 0x07 0x07 0x198>; - phandle = <0x34a>; - }; - - hdmim2-tx1-scl { - rockchip,pins = <0x01 0x04 0x05 0x19b>; - phandle = <0x348>; - }; - - hdmim2-tx1-sda { - rockchip,pins = <0x01 0x03 0x05 0x19c>; - phandle = <0x349>; - }; - - hdmim1-tx0-cec { - rockchip,pins = <0x00 0x19 0x0d 0x198>; - phandle = <0x33c>; - }; - - hdmim1-tx0-scl { - rockchip,pins = <0x00 0x1d 0x0b 0x19b>; - phandle = <0x33e>; - }; - - hdmim1-tx0-sda { - rockchip,pins = <0x00 0x1c 0x0b 0x19c>; - phandle = <0x33f>; - }; - - hdmim1-tx0-hpd { - rockchip,pins = <0x03 0x1c 0x03 0x198>; - phandle = <0x33d>; - }; - - hdmim0-rx-hpdin { - rockchip,pins = <0x04 0x0e 0x05 0x198>; - phandle = <0x335>; - }; - - hdmi-debug5 { - rockchip,pins = <0x01 0x0c 0x07 0x198>; - phandle = <0x34f>; - }; - - hdmi-debug3 { - rockchip,pins = <0x01 0x0a 0x07 0x198>; - phandle = <0x34d>; - }; - - hdmim1-tx1-cec { - rockchip,pins = <0x00 0x1a 0x0d 0x198>; - phandle = <0x340>; - }; - - hdmi-debug1 { - rockchip,pins = <0x01 0x08 0x07 0x198>; - phandle = <0x34b>; - }; - - hdmim1-tx1-scl { - rockchip,pins = <0x03 0x16 0x05 0x19b>; - phandle = <0x1aa>; - }; - - hdmim1-tx1-sda { - rockchip,pins = <0x03 0x15 0x05 0x19c>; - phandle = <0x1ab>; - }; - - hdmim1-tx1-hpd { - rockchip,pins = <0x03 0x0f 0x05 0x198>; - phandle = <0x341>; - }; - - hdmim1-rx-hpdin { - rockchip,pins = <0x03 0x1c 0x05 0x198>; - phandle = <0x339>; - }; - - hdmim0-rx-cec { - rockchip,pins = <0x04 0x0d 0x05 0x198>; - phandle = <0x334>; - }; - }; - - pcfg-pull-down-drv-level-3 { - drive-strength = <0x03>; - bias-pull-down; - phandle = <0x2fa>; - }; - - pcfg-pull-up-drv-level-6 { - drive-strength = <0x06>; - phandle = <0x19a>; - bias-pull-up; - }; - - i2c5 { - - i2c5m3-xfer { - rockchip,pins = <0x01 0x0e 0x09 0x19d 0x01 0x0f 0x09 0x19d>; - phandle = <0x368>; - }; - - i2c5m2-xfer { - rockchip,pins = <0x04 0x06 0x09 0x19d 0x04 0x07 0x09 0x19d>; - phandle = <0x367>; - }; - - i2c5m1-xfer { - rockchip,pins = <0x04 0x0e 0x09 0x19d 0x04 0x0f 0x09 0x19d>; - phandle = <0x366>; - }; - - i2c5m0-xfer { - rockchip,pins = <0x03 0x17 0x09 0x19d 0x03 0x18 0x09 0x19d>; - phandle = <0x14d>; - }; - - i2c5m4-xfer { - rockchip,pins = <0x02 0x0e 0x09 0x19d 0x02 0x0f 0x09 0x19d>; - phandle = <0x369>; - }; - }; - - pcfg-pull-none-drv-level-9 { - drive-strength = <0x09>; - bias-disable; - phandle = <0x453>; - }; - - pdm0 { - - pdm0m1-sdi3 { - rockchip,pins = <0x00 0x1e 0x02 0x198>; - phandle = <0x3ba>; - }; - - pdm0m1-clk { - rockchip,pins = <0x00 0x10 0x02 0x198>; - phandle = <0x3b4>; - }; - - pdm0m1-sdi1 { - rockchip,pins = <0x00 0x18 0x02 0x198>; - phandle = <0x3b8>; - }; - - pdm0m0-sdi3 { - rockchip,pins = <0x01 0x1b 0x03 0x198>; - phandle = <0x137>; - }; - - pdm0m0-sdi1 { - rockchip,pins = <0x01 0x19 0x03 0x198>; - phandle = <0x135>; - }; - - pdm0m1-clk1 { - rockchip,pins = <0x00 0x14 0x02 0x198>; - phandle = <0x3b5>; - }; - - pdm0m1-idle { - rockchip,pins = <0x00 0x10 0x00 0x198 0x00 0x14 0x00 0x198>; - phandle = <0x3b6>; - }; - - pdm0m0-clk1 { - rockchip,pins = <0x01 0x14 0x03 0x198>; - phandle = <0x13a>; - }; - - pdm0m1-sdi2 { - rockchip,pins = <0x00 0x1c 0x02 0x198>; - phandle = <0x3b9>; - }; - - pdm0m0-idle { - rockchip,pins = <0x01 0x16 0x00 0x198 0x01 0x14 0x00 0x198>; - phandle = <0x138>; - }; - - pdm0m1-sdi0 { - rockchip,pins = <0x00 0x17 0x02 0x198>; - phandle = <0x3b7>; - }; - - pdm0m0-sdi2 { - rockchip,pins = <0x01 0x1a 0x03 0x198>; - phandle = <0x136>; - }; - - pdm0m0-sdi0 { - rockchip,pins = <0x01 0x1d 0x03 0x198>; - phandle = <0x134>; - }; - - pdm0m0-clk { - rockchip,pins = <0x01 0x16 0x03 0x198>; - phandle = <0x139>; - }; - }; - - pcfg-output-high-pull-none { - bias-disable; - output-high; - phandle = <0x308>; - }; - - pwm0 { - - pwm0m1-pins { - rockchip,pins = <0x01 0x1a 0x0b 0x198>; - phandle = <0x3c3>; - }; - - pwm0m0-pins { - rockchip,pins = <0x00 0x0f 0x03 0x198>; - phandle = <0x7e>; - }; - - pwm0m2-pins { - rockchip,pins = <0x01 0x02 0x0b 0x198>; - phandle = <0x3c4>; - }; - }; - - cif { - - cif-dvp-clk { - rockchip,pins = <0x04 0x08 0x01 0x198 0x04 0x0a 0x01 0x198 0x04 0x0b 0x01 0x198>; - phandle = <0x311>; - }; - - cif-clk { - rockchip,pins = <0x04 0x0c 0x01 0x198>; - phandle = <0x310>; - }; - - cif-dvp-bus8 { - rockchip,pins = <0x04 0x00 0x01 0x198 0x04 0x01 0x01 0x198 0x04 0x02 0x01 0x198 0x04 0x03 0x01 0x198 0x04 0x04 0x01 0x198 0x04 0x05 0x01 0x198 0x04 0x06 0x01 0x198 0x04 0x07 0x01 0x198>; - phandle = <0x313>; - }; - - cif-dvp-bus16 { - rockchip,pins = <0x03 0x14 0x01 0x198 0x03 0x15 0x01 0x198 0x03 0x16 0x01 0x198 0x03 0x17 0x01 0x198 0x03 0x18 0x01 0x198 0x03 0x19 0x01 0x198 0x03 0x1a 0x01 0x198 0x03 0x1b 0x01 0x198>; - phandle = <0x312>; - }; - }; - - can1 { - - can1m1-pins { - rockchip,pins = <0x04 0x0a 0x0c 0x198 0x04 0x0b 0x0c 0x198>; - phandle = <0x146>; - }; - - can1m0-pins { - rockchip,pins = <0x03 0x0d 0x09 0x198 0x03 0x0e 0x09 0x198>; - phandle = <0x30e>; - }; - }; - - pcfg-output-low-pull-none { - bias-disable; - phandle = <0x30c>; - output-low; - }; - - gpio@fec40000 { - gpio-controller; - interrupts = <0x00 0x118 0x04>; - clocks = <0x02 0x81 0x02 0x82>; - compatible = "rockchip,gpio-bank"; - #interrupt-cells = <0x02>; - reg = <0x00 0xfec40000 0x00 0x100>; - phandle = <0x181>; - #gpio-cells = <0x02>; - gpio-ranges = <0x197 0x00 0x60 0x20>; - interrupt-controller; - }; - - spi4 { - - spi4m0-cs0 { - rockchip,pins = <0x01 0x13 0x08 0x19a>; - phandle = <0x187>; - }; - - spi4m1-cs0 { - rockchip,pins = <0x03 0x03 0x08 0x19a>; - phandle = <0x413>; - }; - - spi4m2-pins { - rockchip,pins = <0x01 0x02 0x08 0x19a 0x01 0x00 0x08 0x19a 0x01 0x01 0x08 0x19a>; - phandle = <0x415>; - }; - - spi4m0-cs1 { - rockchip,pins = <0x01 0x14 0x08 0x19a>; - phandle = <0x188>; - }; - - spi4m1-pins { - rockchip,pins = <0x03 0x02 0x08 0x19a 0x03 0x00 0x08 0x19a 0x03 0x01 0x08 0x19a>; - phandle = <0x412>; - }; - - spi4m2-cs0 { - rockchip,pins = <0x01 0x03 0x08 0x19a>; - phandle = <0x416>; - }; - - spi4m0-pins { - rockchip,pins = <0x01 0x12 0x08 0x19a 0x01 0x10 0x08 0x19a 0x01 0x11 0x08 0x19a>; - phandle = <0x189>; - }; - - spi4m1-cs1 { - rockchip,pins = <0x03 0x04 0x08 0x19a>; - phandle = <0x414>; - }; - }; - - pcfg-pull-down-drv-level-15 { - drive-strength = <0x0f>; - bias-pull-down; - phandle = <0x46b>; - }; - - pcfg-pull-up-smt { - input-schmitt-enable; - phandle = <0x2fe>; - bias-pull-up; - }; - - pcfg-pull-down-drv-level-1 { - drive-strength = <0x01>; - bias-pull-down; - phandle = <0x2f8>; - }; - - pcfg-pull-up-drv-level-4 { - drive-strength = <0x04>; - phandle = <0x2f5>; - bias-pull-up; - }; - - wireless-wlan { - - wifi-host-wake-irq { - rockchip,pins = <0x00 0x0a 0x00 0x198>; - phandle = <0x1ea>; - }; - }; - - wdt-pc9202 { - - wdt-en-base { - rockchip,pins = <0x00 0x14 0x00 0x198>; - phandle = <0x14c>; - }; - }; - - pcfg-pull-none-drv-level-0-smt { - drive-strength = <0x00>; - bias-disable; - input-schmitt-enable; - phandle = <0x300>; - }; - - i2s3 { - - i2s3-sdi { - rockchip,pins = <0x03 0x04 0x03 0x198>; - phandle = <0x12f>; - }; - - i2s3-idle { - rockchip,pins = <0x03 0x02 0x00 0x198 0x03 0x01 0x00 0x198>; - phandle = <0x131>; - }; - - i2s3-sclk { - rockchip,pins = <0x03 0x01 0x03 0x19d>; - phandle = <0x133>; - }; - - i2s3-lrck { - rockchip,pins = <0x03 0x02 0x03 0x19d>; - phandle = <0x132>; - }; - - i2s3-sdo { - rockchip,pins = <0x03 0x03 0x03 0x198>; - phandle = <0x130>; - }; - - i2s3-mclk { - rockchip,pins = <0x03 0x00 0x03 0x19d>; - phandle = <0x38e>; - }; - }; - - pcfg-pull-none-drv-level-14 { - drive-strength = <0x0e>; - bias-disable; - phandle = <0x458>; - }; - }; - - rkcif-mipi-lvds4-sditf-vir1 { - compatible = "rockchip,rkcif-sditf"; - status = "disabled"; - rockchip,cif = <0x1a1>; - phandle = <0x473>; - }; - - bt-sco { - #sound-dai-cells = <0x01>; - compatible = "delta,dfbmcs320"; - status = "disabled"; - phandle = <0x1d2>; - }; - - phy@fed80000 { - svid = <0xff01>; - orientation-switch; - sbu2-dc-gpios = <0x10d 0x07 0x00>; - clock-names = "refclk\0immortal\0pclk\0utmi"; - resets = <0x02 0x28 0x02 0x29 0x02 0x2a 0x02 0x2b 0x02 0x482>; - clocks = <0x02 0x2b6 0x02 0x27f 0x02 0x269 0x18d>; - compatible = "rockchip,rk3588-usbdp-phy"; - status = "okay"; - reg = <0x00 0xfed80000 0x00 0x10000>; - phandle = <0x2ea>; - rockchip,usb-grf = <0x74>; - reset-names = "init\0cmn\0lane\0pcs_apb\0pma_apb"; - rockchip,u2phy-grf = <0x18b>; - sbu1-dc-gpios = <0x10d 0x06 0x00>; - rockchip,usbdpphy-grf = <0x18c>; - rockchip,vo-grf = <0xf5>; - - dp-port { - #phy-cells = <0x00>; - status = "okay"; - phandle = <0xf6>; - }; - - port { - #address-cells = <0x01>; - #size-cells = <0x00>; - - endpoint@1 { - remote-endpoint = <0x18f>; - reg = <0x01>; - phandle = <0x17f>; - }; - - endpoint@0 { - remote-endpoint = <0x18e>; - reg = <0x00>; - phandle = <0x17e>; - }; - }; - - u3-port { - #phy-cells = <0x00>; - status = "okay"; - phandle = <0x67>; - }; - }; - - interrupt-controller@fe600000 { - #address-cells = <0x02>; - interrupts = <0x01 0x09 0x04>; - #size-cells = <0x02>; - compatible = "arm,gic-v3"; - ranges; - #interrupt-cells = <0x03>; - reg = <0x00 0xfe600000 0x00 0x10000 0x00 0xfe680000 0x00 0x100000>; - phandle = <0x01>; - interrupt-controller; - - msi-controller@fe640000 { - msi-controller; - compatible = "arm,gic-v3-its"; - reg = <0x00 0xfe640000 0x00 0x20000>; - phandle = <0x106>; - #msi-cells = <0x01>; - }; - - msi-controller@fe660000 { - msi-controller; - compatible = "arm,gic-v3-its"; - reg = <0x00 0xfe660000 0x00 0x20000>; - phandle = <0x1b6>; - #msi-cells = <0x01>; - }; - }; - - ethernet@fe1c0000 { - power-domains = <0x60 0x21>; - pinctrl-names = "default"; - phy-mode = "rgmii-rxid"; - snps,mixed-burst; - snps,mtl-rx-config = <0x10b>; - snps,reset-active-low; - pinctrl-0 = <0x10e 0x10f 0x110 0x111 0x112>; - clock-names = "stmmaceth\0clk_mac_ref\0pclk_mac\0aclk_mac\0ptp_ref"; - snps,mtl-tx-config = <0x10c>; - local-mac-address = [de 2f 1a d4 a9 85]; - resets = <0x02 0x20b>; - interrupts = <0x00 0xea 0x04 0x00 0xe9 0x04>; - clocks = <0x02 0x144 0x02 0x145 0x02 0x168 0x02 0x16d 0x02 0x143>; - clock_in_out = "output"; - snps,tso; - compatible = "rockchip,rk3588-gmac\0snps,dwmac-4.20a"; - status = "okay"; - rockchip,grf = <0xc8>; - interrupt-names = "macirq\0eth_wake_irq"; - snps,reset-gpio = <0x10d 0x08 0x01>; - reg = <0x00 0xfe1c0000 0x00 0x10000>; - rockchip,php_grf = <0x76>; - phandle = <0x109>; - phy-handle = <0x113>; - reset-names = "stmmaceth"; - tx_delay = <0x40>; - snps,axi-config = <0x10a>; - snps,reset-delays-us = <0x00 0x4e20 0x186a0>; - - mdio { - #address-cells = <0x01>; - #size-cells = <0x00>; - compatible = "snps,dwmac-mdio"; - phandle = <0x28f>; - - phy@1 { - compatible = "ethernet-phy-ieee802.3-c22"; - reg = <0x01>; - phandle = <0x113>; - }; - }; - - tx-queues-config { - phandle = <0x10c>; - snps,tx-queues-to-use = <0x01>; - - queue0 { - }; - }; - - stmmac-axi-config { - snps,wr_osr_lmt = <0x04>; - phandle = <0x10a>; - snps,blen = <0x00 0x00 0x00 0x00 0x10 0x08 0x04>; - snps,rd_osr_lmt = <0x08>; - }; - - rx-queues-config { - snps,rx-queues-to-use = <0x01>; - phandle = <0x10b>; - - queue0 { - }; - }; - }; - - pcie-essd { - regulator-max-microvolt = <0x2625a0>; - enable-active-high; - regulator-min-microvolt = <0x2625a0>; - regulator-name = "pcie_essd"; - startup-delay-us = <0x1388>; - compatible = "regulator-fixed"; - status = "disabled"; - phandle = <0x1ba>; - vin-supply = <0x1cd>; - gpios = <0x181 0x0f 0x00>; - }; - - iommu@fdab9000 { - clock-names = "aclk0\0aclk1\0aclk2\0iface0\0iface1\0iface2"; - interrupts = <0x00 0x6e 0x04 0x00 0x6f 0x04 0x00 0x70 0x04>; - clocks = <0x02 0x12d 0x02 0x122 0x02 0x124 0x02 0x12e 0x02 0x123 0x02 0x125>; - #iommu-cells = <0x00>; - compatible = "rockchip,iommu-v2"; - status = "okay"; - interrupt-names = "npu0_mmu\0npu1_mmu\0npu2_mmu"; - reg = <0x00 0xfdab9000 0x00 0x100 0x00 0xfdaba000 0x00 0x100 0x00 0xfdaca000 0x00 0x100 0x00 0xfdada000 0x00 0x100>; - phandle = <0xb2>; - }; - - otp@fecc0000 { - #address-cells = <0x01>; - clock-names = "otpc\0apb\0arb\0phy"; - resets = <0x02 0x12a 0x02 0x129 0x02 0x12b>; - clocks = <0x02 0x96 0x02 0x95 0x02 0x97 0x02 0x99>; - #size-cells = <0x01>; - compatible = "rockchip,rk3588-otp"; - reg = <0x00 0xfecc0000 0x00 0x400>; - phandle = <0x2e7>; - reset-names = "otpc\0apb\0arb"; - - id@7 { - reg = <0x07 0x10>; - phandle = <0x2a>; - }; - - cpul-opp-info@3d { - reg = <0x3d 0x06>; - phandle = <0x20>; - }; - - cpub1-leakage@18 { - reg = <0x18 0x01>; - phandle = <0x27>; - }; - - vop-opp-info@61 { - reg = <0x61 0x06>; - phandle = <0x2e8>; - }; - - cpul-leakage@19 { - reg = <0x19 0x01>; - phandle = <0x1f>; - }; - - codec-leakage@29 { - reg = <0x29 0x01>; - phandle = <0xc6>; - }; - - cpu-version@1c { - bits = <0x03 0x03>; - reg = <0x1c 0x01>; - phandle = <0x2b>; - }; - - cpub0-leakage@17 { - reg = <0x17 0x01>; - phandle = <0x24>; - }; - - log-leakage@1a { - reg = <0x1a 0x01>; - phandle = <0x44>; - }; - - cpu-code@2 { - reg = <0x02 0x02>; - phandle = <0x2c>; - }; - - package-serial-number-low@6 { - bits = <0x05 0x03>; - reg = <0x06 0x01>; - phandle = <0xd4>; - }; - - npu-opp-info@55 { - reg = <0x55 0x06>; - phandle = <0xb5>; - }; - - package-serial-number-high@5 { - bits = <0x00 0x01>; - reg = <0x05 0x01>; - phandle = <0xd5>; - }; - - cpub01-opp-info@43 { - reg = <0x43 0x06>; - phandle = <0x25>; - }; - - dmc-opp-info@5b { - reg = <0x5b 0x06>; - phandle = <0x45>; - }; - - npu-leakage@28 { - reg = <0x28 0x01>; - phandle = <0xb4>; - }; - - gpu-leakage@1b { - reg = <0x1b 0x01>; - phandle = <0x63>; - }; - - specification-serial-number@6 { - bits = <0x00 0x05>; - reg = <0x06 0x01>; - phandle = <0x21>; - }; - - venc-opp-info@67 { - reg = <0x67 0x06>; - phandle = <0xc7>; - }; - - gpu-opp-info@4f { - reg = <0x4f 0x06>; - phandle = <0x64>; - }; - - cpub23-opp-info@49 { - reg = <0x49 0x06>; - phandle = <0x28>; - }; - }; - - i2s@fddf0000 { - power-domains = <0x60 0x1a>; - rockchip,always-on; - clock-names = "mclk_tx\0mclk_rx\0hclk"; - assigned-clocks = <0x02 0x243>; - assigned-clock-parents = <0x02 0x07>; - resets = <0x02 0x3e8>; - interrupts = <0x00 0xb9 0x04>; - clocks = <0x02 0x246 0x02 0x246 0x02 0x248>; - dma-names = "tx"; - #sound-dai-cells = <0x00>; - compatible = "rockchip,rk3588-i2s-tdm"; - rockchip,playback-only; - status = "okay"; - reg = <0x00 0xfddf0000 0x00 0x1000>; - phandle = <0x1d3>; - dmas = <0xf2 0x02>; - reset-names = "tx-m"; - rockchip,hdmi-path; - }; - - dma-controller@fea10000 { - clock-names = "apb_pclk"; - interrupts = <0x00 0x56 0x04 0x00 0x57 0x04>; - clocks = <0x02 0x78>; - arm,pl330-periph-burst; - compatible = "arm,pl330\0arm,primecell"; - reg = <0x00 0xfea10000 0x00 0x4000>; - phandle = <0x7c>; - #dma-cells = <0x01>; - }; - - pwm@febd0000 { - pinctrl-names = "active"; - pinctrl-0 = <0x169>; - clock-names = "pwm\0pclk"; - interrupts = <0x00 0x15a 0x04>; - clocks = <0x02 0x54 0x02 0x53>; - #pwm-cells = <0x03>; - compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; - status = "disabled"; - reg = <0x00 0xfebd0000 0x00 0x10>; - phandle = <0x2d2>; - }; - - rkvenc-ccu { - compatible = "rockchip,rkv-encoder-v2-ccu"; - status = "okay"; - phandle = <0xc3>; - }; - - syscon@fd58c000 { - compatible = "rockchip,rk3588-sys-grf\0syscon\0simple-mfd"; - reg = <0x00 0xfd58c000 0x00 0x1000>; - phandle = <0xc8>; - - rgb { - pinctrl-names = "default"; - pinctrl-0 = <0x71>; - compatible = "rockchip,rk3588-rgb"; - status = "disabled"; - phandle = <0x25c>; - - ports { - #address-cells = <0x01>; - #size-cells = <0x00>; - - port@0 { - #address-cells = <0x01>; - #size-cells = <0x00>; - reg = <0x00>; - - endpoint@2 { - remote-endpoint = <0x3d>; - status = "disabled"; - reg = <0x02>; - phandle = <0xf0>; - }; - }; - }; - }; - }; - - spi@fe2b0000 { - #address-cells = <0x01>; - clock-names = "clk_sfc\0hclk_sfc"; - assigned-clocks = <0x02 0x13d>; - assigned-clock-rates = <0x5f5e100>; - interrupts = <0x00 0xce 0x04>; - clocks = <0x02 0x13d 0x02 0x13e>; - #size-cells = <0x00>; - compatible = "rockchip,sfc"; - status = "disabled"; - reg = <0x00 0xfe2b0000 0x00 0x4000>; - phandle = <0x292>; - }; - - qos@fdf82200 { - compatible = "syscon"; - reg = <0x00 0xfdf82200 0x00 0x20>; - phandle = <0x9e>; - }; - - mmc@fe2c0000 { - power-domains = <0x60 0x28>; - fifo-depth = <0x100>; - pinctrl-names = "default"; - pinctrl-0 = <0x114 0x115 0x116 0x117>; - clock-names = "biu\0ciu\0ciu-drive\0ciu-sample"; - cap-sd-highspeed; - vqmmc-supply = <0x118>; - no-mmc; - bus-width = <0x04>; - no-sdio; - interrupts = <0x00 0xcb 0x04>; - clocks = <0x0e 0x17 0x0e 0x09 0x02 0x2c2 0x02 0x2c3>; - compatible = "rockchip,rk3588-dw-mshc\0rockchip,rk3288-dw-mshc"; - status = "okay"; - disable-wp; - reg = <0x00 0xfe2c0000 0x00 0x4000>; - phandle = <0x293>; - sd-uhs-sdr104; - max-frequency = <0x8f0d180>; - cap-mmc-highspeed; - }; - - serial@feb80000 { - reg-io-width = <0x04>; - pinctrl-names = "default"; - pinctrl-0 = <0x164>; - clock-names = "baudclk\0apb_pclk"; - interrupts = <0x00 0x150 0x04>; - clocks = <0x02 0xc7 0x02 0xaf>; - compatible = "rockchip,rk3588-uart\0snps,dw-apb-uart"; - status = "disabled"; - reg = <0x00 0xfeb80000 0x00 0x100>; - phandle = <0x2cd>; - dmas = <0xf1 0x0b 0xf1 0x0c>; - reg-shift = <0x02>; - }; - - phy@fee10000 { - rockchip,pipe-grf = <0x76>; - clock-names = "refclk\0apbclk\0phpclk"; - assigned-clocks = <0x02 0x2be>; - assigned-clock-rates = <0x5f5e100>; - resets = <0x02 0x20006 0x02 0x4d7>; - clocks = <0x02 0x2be 0x02 0x186 0x02 0x166>; - #phy-cells = <0x01>; - compatible = "rockchip,rk3588-naneng-combphy"; - status = "disabled"; - rockchip,pipe-phy-grf = <0x1cb>; - reg = <0x00 0xfee10000 0x00 0x100>; - phandle = <0x1bc>; - reset-names = "combphy-apb\0combphy"; - rockchip,pcie1ln-sel-bits = <0x100 0x00 0x00 0x00>; - }; - - can@fea60000 { - pinctrl-names = "default"; - pinctrl-0 = <0x146>; - clock-names = "baudclk\0apb_pclk"; - assigned-clocks = <0x02 0x72>; - assigned-clock-rates = <0xbebc200>; - resets = <0x02 0xbb 0x02 0xba>; - interrupts = <0x00 0x156 0x04>; - clocks = <0x02 0x72 0x02 0x71>; - compatible = "rockchip,can-2.0"; - status = "okay"; - tx-fifo-depth = <0x01>; - rx-fifo-depth = <0x06>; - reg = <0x00 0xfea60000 0x00 0x1000>; - phandle = <0x2a1>; - reset-names = "can\0can-apb"; - }; - - pdm@fe4c0000 { - power-domains = <0x60 0x26>; - pinctrl-names = "default\0idle\0clk"; - pinctrl-2 = <0x140 0x141>; - pinctrl-0 = <0x13b 0x13c 0x13d 0x13e>; - clock-names = "pdm_clk\0pdm_hclk"; - assigned-clocks = <0x02 0x3b>; - assigned-clock-parents = <0x02 0x05>; - clocks = <0x02 0x3b 0x02 0x3a>; - dma-names = "rx"; - #sound-dai-cells = <0x00>; - compatible = "rockchip,rk3588-pdm"; - pinctrl-1 = <0x13f>; - status = "disabled"; - reg = <0x00 0xfe4c0000 0x00 0x1000>; - phandle = <0x29b>; - dmas = <0xf1 0x04>; - }; - - rkcif-mipi-lvds3-sditf-vir2 { - compatible = "rockchip,rkcif-sditf"; - status = "disabled"; - rockchip,cif = <0x57>; - phandle = <0x239>; - }; - - qos@fdf66e00 { - compatible = "syscon"; - reg = <0x00 0xfdf66e00 0x00 0x20>; - phandle = <0x9a>; - }; - - usb@fc800000 { - power-domains = <0x60 0x1f>; - phy-names = "usb2-phy"; - clock-names = "usbhost\0arbiter\0utmi\0alk_usb"; - companion = <0x6b>; - interrupts = <0x00 0xd7 0x04>; - clocks = <0x02 0x19d 0x02 0x19e 0x69 0x6a>; - compatible = "rockchip,rk3588-ehci\0generic-ehci"; - status = "okay"; - phys = <0x6c>; - reg = <0x00 0xfc800000 0x00 0x40000>; - phandle = <0x254>; - }; - - i2c@fd880000 { - pinctrl-names = "default"; - #address-cells = <0x01>; - pinctrl-0 = <0x77>; - clock-names = "i2c\0pclk"; - resets = <0x02 0xc0022 0x02 0xc0021>; - interrupts = <0x00 0x13d 0x04>; - clocks = <0x02 0x287 0x02 0x286>; - #size-cells = <0x00>; - compatible = "rockchip,rk3588-i2c\0rockchip,rk3399-i2c"; - status = "okay"; - reg = <0x00 0xfd880000 0x00 0x1000>; - phandle = <0x25f>; - reset-names = "i2c\0apb"; - - hym8563@51 { - pinctrl-names = "default"; - clock-output-names = "hym8563"; - pinctrl-0 = <0x7a>; - wakeup-source; - interrupts = <0x08 0x08>; - #clock-cells = <0x00>; - interrupt-parent = <0x7b>; - clock-frequency = <0x8000>; - compatible = "haoyu,hym8563"; - status = "okay"; - reg = <0x51>; - phandle = <0x1e4>; - }; - - rk8602@42 { - regulator-max-microvolt = <0x100590>; - regulator-boot-on; - rockchip,suspend-voltage-selector = <0x01>; - regulator-always-on; - regulator-min-microvolt = <0x86470>; - regulator-name = "vdd_cpu_big0_s0"; - regulator-ramp-delay = <0x8fc>; - compatible = "rockchip,rk8602"; - reg = <0x42>; - phandle = <0x18>; - vin-supply = <0x78>; - regulator-compatible = "rk860x-reg"; - - regulator-state-mem { - regulator-off-in-suspend; - }; - }; - - rk8603@43 { - regulator-max-microvolt = <0x100590>; - regulator-boot-on; - rockchip,suspend-voltage-selector = <0x01>; - regulator-always-on; - regulator-min-microvolt = <0x86470>; - regulator-name = "vdd_cpu_big1_s0"; - regulator-ramp-delay = <0x8fc>; - compatible = "rockchip,rk8603"; - reg = <0x43>; - phandle = <0x1c>; - vin-supply = <0x78>; - regulator-compatible = "rk860x-reg"; - - regulator-state-mem { - regulator-off-in-suspend; - }; - }; - - pc9202@3c { - index = <0x00>; - compatible = "firefly,pc9202"; - status = "okay"; - wd-en-gpio = <0x79 0x15 0x00>; - driver-names = "wdt_core"; - reg = <0x3c>; - }; - }; - - rkcif-mipi-lvds3-sditf { - compatible = "rockchip,rkcif-sditf"; - status = "disabled"; - rockchip,cif = <0x57>; - phandle = <0x237>; - }; - - serial@fd890000 { - reg-io-width = <0x04>; - pinctrl-names = "default"; - pinctrl-0 = <0x7d>; - clock-names = "baudclk\0apb_pclk"; - interrupts = <0x00 0x14b 0x04>; - clocks = <0x02 0x2ae 0x02 0x2af>; - compatible = "rockchip,rk3588-uart\0snps,dw-apb-uart"; - status = "disabled"; - reg = <0x00 0xfd890000 0x00 0x100>; - phandle = <0x260>; - dmas = <0x7c 0x06 0x7c 0x07>; - reg-shift = <0x02>; - }; - - qos@fdf70000 { - compatible = "syscon"; - reg = <0x00 0xfdf70000 0x00 0x20>; - phandle = <0x85>; - }; - - gpu-opp-table { - rockchip,pvtm-offset = <0x1c>; - rockchip,pvtm-sample-time = <0x44c>; - rockchip,pvtm-hw = <0x04>; - nvmem-cells = <0x63 0x64 0x21>; - rockchip,low-temp = <0x2710>; - rockchip,pvtm-voltage-sel-hw = <0x00 0x31f 0x00 0x320 0x333 0x01 0x334 0x34c 0x02 0x34d 0x365 0x03 0x366 0x37e 0x04 0x37f 0x270f 0x05>; - rockchip,pvtm-thermal-zone = "gpu-thermal"; - rockchip,high-temp-max-freq = "\0\f5"; - rockchip,opp-clocks = <0x02 0x114>; - rockchip,pvtm-freq = "\0\f5"; - rockchip,pvtm-ref-temp = <0x19>; - low-volt-mem-read-margin = <0x04>; - volt-mem-read-margin = <0xd0bd8 0x01 0xbac48 0x02 0xa4cb8 0x03 0x78d98 0x04>; - compatible = "operating-points-v2"; - rockchip,low-temp-min-volt = <0xb71b0>; - rockchip,grf = <0x65>; - nvmem-cell-names = "leakage\0opp-info\0specification_serial_number"; - rockchip,pvtm-voltage-sel = <0x00 0x32f 0x00 0x330 0x343 0x01 0x344 0x35c 0x02 0x35d 0x375 0x03 0x376 0x38e 0x04 0x38f 0x270f 0x05>; - phandle = <0x61>; - rockchip,pvtm-temp-prop = <0xffffff79 0xffffff79>; - rockchip,temp-hysteresis = <0x1388>; - rockchip,high-temp = <0x14c08>; - rockchip,pvtm-pvtpll; - rockchip,supported-hw; - intermediate-threshold-freq = <0x61a80>; - rockchip,pvtm-volt = <0xb71b0>; - - opp-j-m-700000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; - opp-hz = <0x00 0x29b92700>; - opp-supported-hw = <0x06 0xffff>; - }; - - opp-300000000 { - opp-microvolt = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; - opp-hz = <0x00 0x11e1a300>; - opp-supported-hw = <0xf9 0xffff>; - }; - - opp-500000000 { - opp-microvolt = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; - opp-hz = <0x00 0x1dcd6500>; - opp-supported-hw = <0xf9 0xffff>; - }; - - opp-m-800000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; - opp-hz = <0x00 0x2faf0800>; - opp-supported-hw = <0x02 0xffff>; - }; - - opp-j-850000000 { - opp-microvolt = <0xc042c 0xc042c 0xcf850 0xc042c 0xc042c 0xcf850>; - opp-microvolt-L4 = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; - opp-microvolt-L2 = <0xba284 0xba284 0xcf850 0xba284 0xba284 0xcf850>; - opp-hz = <0x00 0x32a9f880>; - opp-supported-hw = <0x04 0xffff>; - opp-microvolt-L5 = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; - opp-microvolt-L3 = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; - opp-microvolt-L1 = <0xbd358 0xbd358 0xcf850 0xbd358 0xbd358 0xcf850>; - }; - - opp-j-m-400000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; - opp-hz = <0x00 0x17d78400>; - opp-supported-hw = <0x06 0xffff>; - }; - - opp-700000000 { - opp-microvolt = <0xaae60 0xaae60 0xcf850 0xaae60 0xaae60 0xcf850>; - opp-microvolt-L4 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; - opp-microvolt-L2 = <0xa7d8c 0xa7d8c 0xcf850 0xa7d8c 0xa7d8c 0xcf850>; - opp-hz = <0x00 0x29b92700>; - opp-supported-hw = <0xf9 0xffff>; - opp-microvolt-L5 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; - opp-microvolt-L3 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; - }; - - opp-j-m-600000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; - opp-hz = <0x00 0x23c34600>; - opp-supported-hw = <0x06 0xffff>; - }; - - opp-900000000 { - opp-microvolt = <0xc3500 0xc3500 0xcf850 0xc3500 0xc3500 0xcf850>; - opp-microvolt-L4 = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; - opp-microvolt-L2 = <0xbd358 0xbd358 0xcf850 0xbd358 0xbd358 0xcf850>; - opp-hz = <0x00 0x35a4e900>; - opp-supported-hw = <0xf9 0xffff>; - opp-microvolt-L5 = <0xb40dc 0xb40dc 0xcf850 0xb40dc 0xb40dc 0xcf850>; - opp-microvolt-L3 = <0xba284 0xba284 0xcf850 0xba284 0xba284 0xcf850>; - opp-microvolt-L1 = <0xc042c 0xc042c 0xcf850 0xc042c 0xc042c 0xcf850>; - }; - - opp-m-1000000000 { - opp-microvolt = <0xcf850 0xcf850 0xcf850 0xcf850 0xcf850 0xcf850>; - opp-microvolt-L4 = <0xc3500 0xc3500 0xcf850 0xc3500 0xc3500 0xcf850>; - opp-microvolt-L2 = <0xc96a8 0xc96a8 0xcf850 0xc96a8 0xc96a8 0xcf850>; - opp-hz = <0x00 0x3b9aca00>; - opp-supported-hw = <0x02 0xffff>; - opp-microvolt-L5 = <0xc042c 0xc042c 0xcf850 0xc042c 0xc042c 0xcf850>; - opp-microvolt-L3 = <0xc65d4 0xc65d4 0xcf850 0xc65d4 0xc65d4 0xcf850>; - opp-microvolt-L1 = <0xcc77c 0xcc77c 0xcf850 0xcc77c 0xcc77c 0xcf850>; - }; - - opp-400000000 { - opp-microvolt = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; - opp-hz = <0x00 0x17d78400>; - opp-supported-hw = <0xf9 0xffff>; - }; - - opp-j-m-300000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; - opp-hz = <0x00 0x11e1a300>; - opp-supported-hw = <0x06 0xffff>; - }; - - opp-600000000 { - opp-microvolt = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; - opp-hz = <0x00 0x23c34600>; - opp-supported-hw = <0xf9 0xffff>; - }; - - opp-m-900000000 { - opp-microvolt = <0xc3500 0xc3500 0xcf850 0xc3500 0xc3500 0xcf850>; - opp-microvolt-L4 = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; - opp-microvolt-L2 = <0xbd358 0xbd358 0xcf850 0xbd358 0xbd358 0xcf850>; - opp-hz = <0x00 0x35a4e900>; - opp-supported-hw = <0x02 0xffff>; - opp-microvolt-L5 = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; - opp-microvolt-L3 = <0xba284 0xba284 0xcf850 0xba284 0xba284 0xcf850>; - opp-microvolt-L1 = <0xc042c 0xc042c 0xcf850 0xc042c 0xc042c 0xcf850>; - }; - - opp-1000000000 { - opp-microvolt = <0xcf850 0xcf850 0xcf850 0xcf850 0xcf850 0xcf850>; - opp-microvolt-L4 = <0xc3500 0xc3500 0xcf850 0xc3500 0xc3500 0xcf850>; - opp-microvolt-L2 = <0xc96a8 0xc96a8 0xcf850 0xc96a8 0xc96a8 0xcf850>; - opp-hz = <0x00 0x3b9aca00>; - opp-supported-hw = <0xf9 0xffff>; - opp-microvolt-L5 = <0xc042c 0xc042c 0xcf850 0xc042c 0xc042c 0xcf850>; - opp-microvolt-L3 = <0xc65d4 0xc65d4 0xcf850 0xc65d4 0xc65d4 0xcf850>; - opp-microvolt-L1 = <0xcc77c 0xcc77c 0xcf850 0xcc77c 0xcc77c 0xcf850>; - }; - - opp-j-m-500000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; - opp-hz = <0x00 0x1dcd6500>; - opp-supported-hw = <0x06 0xffff>; - }; - - opp-800000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; - opp-microvolt-L4 = <0xaae60 0xaae60 0xcf850 0xaae60 0xaae60 0xcf850>; - opp-microvolt-L2 = <0xb1008 0xb1008 0xcf850 0xb1008 0xb1008 0xcf850>; - opp-hz = <0x00 0x2faf0800>; - opp-supported-hw = <0xf9 0xffff>; - opp-microvolt-L5 = <0xaae60 0xaae60 0xcf850 0xaae60 0xaae60 0xcf850>; - opp-microvolt-L3 = <0xadf34 0xadf34 0xcf850 0xadf34 0xadf34 0xcf850>; - opp-microvolt-L1 = <0xb40dc 0xb40dc 0xcf850 0xb40dc 0xb40dc 0xcf850>; - }; - }; - - csi2-dphy1-hw@fedc8000 { - clock-names = "pclk"; - resets = <0x02 0x19 0x02 0x18>; - clocks = <0x02 0x10d>; - compatible = "rockchip,rk3588-csi2-dphy-hw"; - status = "okay"; - rockchip,grf = <0x193>; - reg = <0x00 0xfedc8000 0x00 0x8000>; - phandle = <0x2e>; - reset-names = "srst_csiphy1\0srst_p_csiphy1"; - rockchip,sys_grf = <0xc8>; - }; - - hdcp@fde40000 { - power-domains = <0x60 0x19>; - clock-names = "aclk\0pclk\0hclk\0hclk_key\0aclk_trng\0pclk_trng"; - resets = <0x02 0x37f 0x02 0x37d 0x02 0x37c 0x02 0x37b 0x02 0x381>; - interrupts = <0x00 0x9f 0x04>; - clocks = <0x02 0x1ed 0x02 0x1ef 0x02 0x1ee 0x02 0x1ec 0x02 0x1f1 0x02 0x1f2>; - compatible = "rockchip,rk3588-hdcp"; - status = "disabled"; - reg = <0x00 0xfde40000 0x00 0x80>; - phandle = <0x285>; - reset-names = "hdcp\0h_hdcp\0a_hdcp\0hdcp_key\0trng"; - rockchip,vo-grf = <0xf5>; - }; - - iommu@fdbac800 { - power-domains = <0x60 0x15>; - clock-names = "aclk\0iface"; - interrupts = <0x00 0x7f 0x04>; - clocks = <0x02 0x1b2 0x02 0x1b3>; - #iommu-cells = <0x00>; - compatible = "rockchip,iommu-v2"; - status = "okay"; - interrupt-names = "irq_jpege3_mmu"; - reg = <0x00 0xfdbac800 0x00 0x40>; - phandle = <0xc0>; - }; - - qos@fdf40400 { - compatible = "syscon"; - reg = <0x00 0xfdf40400 0x00 0x20>; - phandle = <0xa2>; - }; - - rga@fdb70000 { - power-domains = <0x60 0x1e>; - iommus = <0xba>; - clock-names = "aclk_rga3_1\0hclk_rga3_1\0clk_rga3_1"; - interrupts = <0x00 0x73 0x04>; - clocks = <0x02 0x18a 0x02 0x189 0x02 0x18b>; - compatible = "rockchip,rga3_core1"; - status = "okay"; - interrupt-names = "rga3_core1_irq"; - reg = <0x00 0xfdb70000 0x00 0x1000>; - phandle = <0x26a>; - }; - - spi@feb00000 { - pinctrl-names = "default"; - #address-cells = <0x01>; - num-cs = <0x02>; - pinctrl-0 = <0x14e 0x14f 0x150>; - clock-names = "spiclk\0apb_pclk"; - interrupts = <0x00 0x146 0x04>; - clocks = <0x02 0xa3 0x02 0x9e>; - #size-cells = <0x00>; - dma-names = "tx\0rx"; - compatible = "rockchip,rk3066-spi"; - status = "disabled"; - reg = <0x00 0xfeb00000 0x00 0x1000>; - phandle = <0x2ab>; - dmas = <0x7c 0x0e 0x7c 0x0f>; - }; - - pcie@fe170000 { - #address-cells = <0x03>; - rockchip,pipe-grf = <0x76>; - phy-names = "pcie-phy"; - bus-range = <0x20 0x2f>; - clock-names = "aclk_mst\0aclk_slv\0aclk_dbi\0pclk\0aux\0pipe"; - reg-names = "pcie-apb\0pcie-dbi"; - num-ob-windows = <0x08>; - resets = <0x02 0x20f 0x02 0x21e>; - interrupts = <0x00 0xf3 0x04 0x00 0xf2 0x04 0x00 0xf1 0x04 0x00 0xf0 0x04 0x00 0xef 0x04>; - clocks = <0x02 0x150 0x02 0x155 0x02 0x14b 0x02 0x15b 0x02 0x160 0x02 0x2c4>; - interrupt-map = <0x00 0x00 0x00 0x01 0x1bb 0x00 0x00 0x00 0x00 0x02 0x1bb 0x01 0x00 0x00 0x00 0x03 0x1bb 0x02 0x00 0x00 0x00 0x04 0x1bb 0x03>; - #size-cells = <0x02>; - max-link-speed = <0x02>; - device_type = "pci"; - interrupt-map-mask = <0x00 0x00 0x00 0x07>; - num-lanes = <0x01>; - compatible = "rockchip,rk3588-pcie\0snps,dw-pcie"; - ranges = <0x800 0x00 0xf2000000 0x00 0xf2000000 0x00 0x100000 0x81000000 0x00 0xf2100000 0x00 0xf2100000 0x00 0x100000 0x82000000 0x00 0xf2200000 0x00 0xf2200000 0x00 0xe00000 0xc3000000 0x09 0x80000000 0x09 0x80000000 0x00 0x40000000>; - msi-map = <0x2000 0x106 0x2000 0x1000>; - #interrupt-cells = <0x01>; - status = "disabled"; - interrupt-names = "sys\0pmc\0msg\0legacy\0err"; - phys = <0x1bc 0x02>; - num-viewport = <0x04>; - reg = <0x00 0xfe170000 0x00 0x10000 0x0a 0x40800000 0x00 0x400000>; - linux,pci-domain = <0x02>; - phandle = <0x487>; - reset-names = "pcie\0periph"; - num-ib-windows = <0x08>; - - legacy-interrupt-controller { - #address-cells = <0x00>; - interrupts = <0x00 0xf0 0x01>; - interrupt-parent = <0x01>; - #interrupt-cells = <0x01>; - phandle = <0x1bb>; - interrupt-controller; - }; - }; - - i2s@fe470000 { - power-domains = <0x60 0x26>; - pinctrl-names = "default\0idle\0clk"; - pinctrl-2 = <0x11b 0x11c>; - pinctrl-0 = <0x11b 0x11c 0x11d 0x11e>; - clock-names = "mclk_tx\0mclk_rx\0hclk"; - assigned-clocks = <0x02 0x31 0x02 0x35>; - assigned-clock-parents = <0x02 0x05 0x02 0x05>; - resets = <0x02 0x77 0x02 0x7a>; - interrupts = <0x00 0xb4 0x04>; - clocks = <0x02 0x33 0x02 0x37 0x02 0x30>; - dma-names = "tx\0rx"; - #sound-dai-cells = <0x00>; - compatible = "rockchip,rk3588-i2s-tdm"; - pinctrl-1 = <0x11f>; - status = "okay"; - reg = <0x00 0xfe470000 0x00 0x1000>; - phandle = <0x1da>; - dmas = <0x7c 0x00 0x7c 0x01>; - reset-names = "tx-m\0rx-m"; - rockchip,clk-trcm = <0x01>; - }; - - syscon@fd594000 { - compatible = "rockchip,rk3588-litcore-grf\0syscon"; - reg = <0x00 0xfd594000 0x00 0x100>; - phandle = <0x22>; - }; - - csi2-dphy5 { - rockchip,hw = <0x2d 0x2e>; - phy-names = "dcphy0\0dcphy1"; - compatible = "rockchip,rk3588-csi2-dphy"; - status = "disabled"; - phys = <0x2f 0x30>; - phandle = <0x214>; - }; - - usb@fc840000 { - power-domains = <0x60 0x1f>; - phy-names = "usb2-phy"; - clock-names = "usbhost\0arbiter\0utmi\0alk_usb"; - interrupts = <0x00 0xd8 0x04>; - clocks = <0x02 0x19d 0x02 0x19e 0x69 0x6a>; - compatible = "rockchip,rk3588-ohci\0generic-ohci"; - status = "okay"; - phys = <0x6c>; - reg = <0x00 0xfc840000 0x00 0x40000>; - phandle = <0x6b>; - }; - - syscon@fd5b0000 { - compatible = "rockchip,rk3588-php-grf\0syscon"; - reg = <0x00 0xfd5b0000 0x00 0x1000>; - phandle = <0x76>; - }; - - rkcif-mipi-lvds2-sditf-vir3 { - compatible = "rockchip,rkcif-sditf"; - status = "disabled"; - rockchip,cif = <0x55>; - phandle = <0x236>; - }; - - rkisp1-vir1 { - rockchip,hw = <0x5a>; - compatible = "rockchip,rkisp-vir"; - status = "disabled"; - phandle = <0x240>; - }; - - i2c@feaa0000 { - pinctrl-names = "default"; - #address-cells = <0x01>; - pinctrl-0 = <0x149>; - clock-names = "i2c\0pclk"; - resets = <0x02 0xb1 0x02 0xa9>; - interrupts = <0x00 0x13f 0x04>; - clocks = <0x02 0x8e 0x02 0x86>; - #size-cells = <0x00>; - compatible = "rockchip,rk3588-i2c\0rockchip,rk3399-i2c"; - status = "disabled"; - reg = <0x00 0xfeaa0000 0x00 0x1000>; - phandle = <0x2a5>; - reset-names = "i2c\0apb"; - }; - - dmc { - downdifferential = <0x14>; - clock-names = "dmc_clk"; - interrupts = <0x00 0x49 0x04>; - clocks = <0x0e 0x04>; - upthreshold = <0x28>; - center-supply = <0x42>; - devfreq-events = <0x40>; - compatible = "rockchip,rk3588-dmc"; - status = "disabled"; - interrupt-names = "complete"; - mem-supply = <0x43>; - phandle = <0x21f>; - operating-points-v2 = <0x41>; - system-status-level = <0x01 0x04 0x08 0x08 0x02 0x01 0x10 0x04 0x10000 0x04 0x80000 0x04 0x1000 0x08 0x4000 0x08 0x2000 0x08 0xc00 0x08 0x40000 0x08 0x200000 0x08>; - auto-freq-en = <0x01>; - }; - - hdmi1-sound { - rockchip,jack-det; - rockchip,cpu = <0x1e0>; - rockchip,codec = <0x1e1>; - rockchip,card-name = "rockchip-hdmi1"; - compatible = "rockchip,hdmi"; - status = "disabled"; - phandle = <0x4a8>; - rockchip,mclk-fs = <0x80>; - }; - - qos@fdf3d800 { - compatible = "syscon"; - reg = <0x00 0xfdf3d800 0x00 0x20>; - phandle = <0xb0>; - }; - - mipi-dcphy-dummy { - phandle = <0x223>; - }; - - jpege-core@fdbac000 { - power-domains = <0x60 0x15>; - iommus = <0xc0>; - rockchip,ccu = <0xbd>; - clock-names = "aclk_vcodec\0hclk_vcodec"; - assigned-clocks = <0x02 0x1b2>; - rockchip,normal-rates = <0x2367b880 0x00>; - assigned-clock-rates = <0x2367b880>; - resets = <0x02 0x2d0 0x02 0x2d1>; - interrupts = <0x00 0x80 0x04>; - clocks = <0x02 0x1b2 0x02 0x1b3>; - rockchip,srv = <0xb8>; - rockchip,taskqueue-node = <0x02>; - rockchip,disable-auto-freq; - compatible = "rockchip,vpu-jpege-core"; - status = "okay"; - interrupt-names = "irq_jpege3"; - rockchip,skip-pmu-idle-request; - reg = <0x00 0xfdbac000 0x00 0x400>; - phandle = <0x270>; - reset-names = "video_a\0video_h"; - }; - - iommu@fdce0800 { - power-domains = <0x60 0x1b>; - clock-names = "aclk\0iface"; - interrupts = <0x00 0x71 0x04>; - clocks = <0x02 0x1e4 0x02 0x1e5>; - #iommu-cells = <0x00>; - compatible = "rockchip,iommu-v2"; - rockchip,disable-mmu-reset; - status = "okay"; - interrupt-names = "cif_mmu"; - reg = <0x00 0xfdce0800 0x00 0x100 0x00 0xfdce0900 0x00 0x100>; - phandle = <0x50>; - }; - - qos@fdf35400 { - compatible = "syscon"; - reg = <0x00 0xfdf35400 0x00 0x20>; - phandle = <0x89>; - }; - - syscon@fd5a8000 { - clocks = <0x73>; - compatible = "rockchip,rk3588-vo-grf\0syscon"; - reg = <0x00 0xfd5a8000 0x00 0x100>; - phandle = <0xd8>; - }; - - dp0-sound { - rockchip,jack-det; - rockchip,cpu = <0x1d5>; - rockchip,codec = <0x1d6 0x01>; - rockchip,card-name = "rockchip-dp0"; - compatible = "rockchip,hdmi"; - status = "disabled"; - phandle = <0x49c>; - rockchip,mclk-fs = <0x200>; - }; - - rkcif-mipi-lvds4 { - iommus = <0x50>; - rockchip,hw = <0x4f>; - compatible = "rockchip,rkcif-mipi-lvds"; - status = "disabled"; - phandle = <0x1a1>; - }; - - usb@fc880000 { - power-domains = <0x60 0x1f>; - phy-names = "usb2-phy"; - clock-names = "usbhost\0arbiter\0utmi\0alk_usb"; - companion = <0x6e>; - interrupts = <0x00 0xda 0x04>; - clocks = <0x02 0x19f 0x02 0x1a0 0x6d 0x6a>; - compatible = "rockchip,rk3588-ehci\0generic-ehci"; - status = "okay"; - phys = <0x6f>; - reg = <0x00 0xfc880000 0x00 0x40000>; - phandle = <0x255>; - }; - - qos@fdf62000 { - compatible = "syscon"; - reg = <0x00 0xfdf62000 0x00 0x20>; - phandle = <0x8b>; - }; - - syscon@fd5f0000 { - compatible = "rockchip,rk3588-ioc\0syscon"; - reg = <0x00 0xfd5f0000 0x00 0x10000>; - phandle = <0x196>; - }; - - mipi1-csi2 { - rockchip,hw = <0x47 0x48 0x49 0x4a 0x4b 0x4c>; - compatible = "rockchip,rk3588-mipi-csi2"; - status = "disabled"; - phandle = <0x225>; - }; - - hdmiphy@fed70000 { - clock-names = "ref\0apb"; - resets = <0x02 0x491 0x02 0x486 0x02 0xc003f 0x02 0xc0040 0x02 0xc0041 0x02 0x48f 0x02 0x490>; - clocks = <0x02 0x2b5 0x02 0x268>; - #phy-cells = <0x00>; - compatible = "rockchip,rk3588-hdptx-phy-hdmi"; - status = "disabled"; - rockchip,grf = <0x1c7>; - reg = <0x00 0xfed70000 0x00 0x2000>; - phandle = <0x1ac>; - reset-names = "phy\0apb\0init\0cmn\0lane\0ropll\0lcpll"; - - clk-port { - #clock-cells = <0x00>; - status = "okay"; - phandle = <0x36>; - }; - }; - - i2c@fec80000 { - pinctrl-names = "default"; - #address-cells = <0x01>; - pinctrl-0 = <0x178>; - clock-names = "i2c\0pclk"; - resets = <0x02 0xb5 0x02 0xad>; - interrupts = <0x00 0x143 0x04>; - clocks = <0x02 0x92 0x02 0x8a>; - #size-cells = <0x00>; - compatible = "rockchip,rk3588-i2c\0rockchip,rk3399-i2c"; - status = "okay"; - reg = <0x00 0xfec80000 0x00 0x1000>; - phandle = <0x2df>; - reset-names = "i2c\0apb"; - - imx415@37 { - power-domains = <0x60 0x1b>; - pinctrl-names = "default"; - pinctrl-0 = <0x180>; - clock-names = "xvclk"; - clocks = <0x02 0x100>; - firefly,clkout-enabled-index = <0x00>; - rockchip,camera-module-name = "CMK-OT2022-PX1"; - reset-gpios = <0x182 0x05 0x01>; - rockchip,camera-module-index = <0x00>; - compatible = "sony,imx415"; - rockchip,camera-module-facing = "back"; - power-gpios = <0x181 0x1d 0x00>; - reg = <0x37>; - rockchip,camera-module-lens-name = "IR0147-50IRC-8M-F20"; - phandle = <0x2e3>; - - port { - - endpoint { - data-lanes = <0x01 0x02 0x03 0x04>; - remote-endpoint = <0x184>; - phandle = <0x32>; - }; - }; - }; - - es8388@11 { - pinctrl-names = "default"; - pinctrl-0 = <0x17a>; - clock-names = "mclk"; - assigned-clocks = <0x179>; - assigned-clock-rates = <0xbb8000>; - clocks = <0x179>; - #sound-dai-cells = <0x00>; - compatible = "everest,es8388\0everest,es8323"; - status = "okay"; - reg = <0x11>; - phandle = <0x1db>; - }; - - XC7160b@1b { - power-domains = <0x60 0x1b>; - pinctrl-names = "default"; - pinctrl-0 = <0x180>; - clock-names = "xvclk"; - pwdn-gpios = <0xfe 0x04 0x00>; - clocks = <0x02 0x100>; - firefly,clkout-enabled-index = <0x00>; - rockchip,camera-module-name = "NC"; - reset-gpios = <0x182 0x05 0x00>; - rockchip,camera-module-index = <0x00>; - compatible = "firefly,xc7160"; - rockchip,camera-module-facing = "back"; - power-gpios = <0x181 0x1d 0x01>; - reg = <0x1b>; - rockchip,camera-module-lens-name = "NC"; - phandle = <0x2e2>; - - port { - - endpoint { - data-lanes = <0x01 0x02 0x03 0x04>; - remote-endpoint = <0x183>; - phandle = <0x31>; - }; - }; - }; - - fusb302@22 { - pinctrl-names = "default"; - pinctrl-0 = <0x17b>; - interrupts = <0x1b 0x08>; - vbus-supply = <0x17c>; - interrupt-parent = <0x7b>; - compatible = "fcs,fusb302"; - status = "disabled"; - reg = <0x22>; - phandle = <0x2e0>; - - connector { - sink-pdos = <0x4019064>; - power-role = "dual"; - source-pdos = <0x401912c>; - data-role = "dual"; - label = "USB-C"; - try-power-role = "sink"; - compatible = "usb-c-connector"; - op-sink-microwatt = <0xf4240>; - phandle = <0x2e1>; - - ports { - #address-cells = <0x01>; - #size-cells = <0x00>; - - port@0 { - reg = <0x00>; - - endpoint { - remote-endpoint = <0x17e>; - phandle = <0x18e>; - }; - }; - - port@1 { - reg = <0x01>; - - endpoint { - remote-endpoint = <0x17f>; - phandle = <0x18f>; - }; - }; - }; - - altmodes { - #address-cells = <0x01>; - #size-cells = <0x00>; - - altmode@0 { - svid = <0xff01>; - vdo = <0xffffffff>; - reg = <0x00>; - }; - }; - }; - - ports { - #address-cells = <0x01>; - #size-cells = <0x00>; - - port@0 { - reg = <0x00>; - - endpoint@0 { - remote-endpoint = <0x17d>; - phandle = <0x68>; - }; - }; - }; - }; - }; - - syscon@fd5e8000 { - compatible = "rockchip,mipi-dcphy-grf\0syscon"; - reg = <0x00 0xfd5e8000 0x00 0x4000>; - phandle = <0x190>; - }; - - vbus5v0-typec-pwr-en-regulator { - gpio = <0x182 0x0c 0x00>; - enable-active-high; - regulator-name = "vbus5v0_typec_pwr_en"; - compatible = "regulator-fixed"; - status = "disabled"; - phandle = <0x17c>; - }; - - mipi2-csi2-hw@fdd30000 { - clock-names = "pclk_csi2host"; - reg-names = "csihost_regs"; - resets = <0x02 0x326>; - interrupts = <0x00 0x93 0x04 0x00 0x94 0x04>; - clocks = <0x02 0x1d1>; - compatible = "rockchip,rk3588-mipi-csi2-hw"; - status = "okay"; - interrupt-names = "csi-intr1\0csi-intr2"; - reg = <0x00 0xfdd30000 0x00 0x10000>; - phandle = <0x49>; - reset-names = "srst_csihost_p"; - }; - - spdif-rx@fde18000 { - power-domains = <0x60 0x1a>; - clock-names = "mclk\0hclk"; - assigned-clocks = <0x02 0x262>; - assigned-clock-parents = <0x02 0x05>; - resets = <0x02 0x401>; - interrupts = <0x00 0xc9 0x04>; - clocks = <0x02 0x262 0x02 0x261>; - dma-names = "rx"; - #sound-dai-cells = <0x00>; - compatible = "rockchip,rk3588-spdifrx\0rockchip,rk3308-spdifrx"; - status = "disabled"; - reg = <0x00 0xfde18000 0x00 0x1000>; - phandle = <0x480>; - dmas = <0x7c 0x17>; - reset-names = "spdifrx-m"; - }; - - syscon@fd5a2000 { - compatible = "rockchip,rk3588-npu-grf\0syscon"; - reg = <0x00 0xfd5a2000 0x00 0x100>; - phandle = <0xb6>; - }; - - rkisp0-vir3 { - rockchip,hw = <0x58>; - compatible = "rockchip,rkisp-vir"; - status = "disabled"; - phandle = <0x23e>; - }; - - qos@fdf66200 { - compatible = "syscon"; - reg = <0x00 0xfdf66200 0x00 0x20>; - phandle = <0x94>; - }; - - rkcif@fdce0000 { - power-domains = <0x60 0x1b>; - iommus = <0x50>; - nvmem-cells = <0x21 0xd4 0xd5>; - clock-names = "aclk_cif\0hclk_cif\0dclk_cif\0iclk_host0\0iclk_host1"; - reg-names = "cif_regs"; - assigned-clocks = <0x02 0x1e3>; - assigned-clock-rates = <0x23c34600>; - resets = <0x02 0x317 0x02 0x318 0x02 0x316 0x02 0x334 0x02 0x335 0x02 0x336 0x02 0x337 0x02 0x338 0x02 0x339>; - interrupts = <0x00 0x9b 0x04>; - clocks = <0x02 0x1e4 0x02 0x1e5 0x02 0x1e3 0x02 0x1cd 0x02 0x1ce>; - compatible = "rockchip,rk3588-cif"; - status = "okay"; - rockchip,grf = <0xc8>; - interrupt-names = "cif-intr"; - nvmem-cell-names = "specification\0package_low\0package_high"; - reg = <0x00 0xfdce0000 0x00 0x800>; - phandle = <0x4f>; - reset-names = "rst_cif_a\0rst_cif_h\0rst_cif_d\0rst_cif_host0\0rst_cif_host1\0rst_cif_host2\0rst_cif_host3\0rst_cif_host4\0rst_cif_host5"; - }; - - edp@fdec0000 { - power-domains = <0x60 0x1a>; - phy-names = "dp"; - clock-names = "dp\0pclk\0spdif\0hclk"; - resets = <0x02 0x3e1 0x02 0x3e0>; - interrupts = <0x00 0xa3 0x04>; - clocks = <0x02 0x211 0x02 0x210 0x02 0x212 0x05>; - compatible = "rockchip,rk3588-edp"; - status = "disabled"; - rockchip,grf = <0xd8>; - phys = <0x101>; - reg = <0x00 0xfdec0000 0x00 0x1000>; - phandle = <0x289>; - reset-names = "dp\0apb"; - - ports { - #address-cells = <0x01>; - #size-cells = <0x00>; - - port@0 { - #address-cells = <0x01>; - #size-cells = <0x00>; - reg = <0x00>; - - endpoint@1 { - remote-endpoint = <0x103>; - status = "disabled"; - reg = <0x01>; - phandle = <0xe1>; - }; - - endpoint@2 { - remote-endpoint = <0x3b>; - status = "disabled"; - reg = <0x02>; - phandle = <0xe7>; - }; - - endpoint@0 { - remote-endpoint = <0x102>; - status = "disabled"; - reg = <0x00>; - phandle = <0xdb>; - }; - }; - - port@1 { - reg = <0x01>; - - endpoint { - phandle = <0x28a>; - }; - }; - }; - }; - - qos@fdf72400 { - compatible = "syscon"; - reg = <0x00 0xfdf72400 0x00 0x20>; - phandle = <0x84>; - }; - - dp@fde60000 { - power-domains = <0x60 0x19>; - clock-names = "apb\0aux\0i2s\0spdif\0hclk\0hdcp"; - assigned-clocks = <0x02 0x2cd>; - assigned-clock-rates = <0xf42400>; - resets = <0x02 0x389>; - interrupts = <0x00 0xa2 0x04>; - clocks = <0x02 0x1e7 0x02 0x2cd 0x02 0x201 0x02 0x20d 0x04 0x02 0x1eb>; - #sound-dai-cells = <0x01>; - compatible = "rockchip,rk3588-dp"; - status = "disabled"; - phys = <0x1a5>; - reg = <0x00 0xfde60000 0x00 0x4000>; - phandle = <0x1e3>; - - ports { - #address-cells = <0x01>; - #size-cells = <0x00>; - - port@0 { - #address-cells = <0x01>; - #size-cells = <0x00>; - reg = <0x00>; - - endpoint@1 { - remote-endpoint = <0x3e>; - status = "disabled"; - reg = <0x01>; - phandle = <0xe3>; - }; - - endpoint@2 { - remote-endpoint = <0x1a7>; - status = "disabled"; - reg = <0x02>; - phandle = <0xeb>; - }; - - endpoint@0 { - remote-endpoint = <0x1a6>; - status = "disabled"; - reg = <0x00>; - phandle = <0xdd>; - }; - }; - - port@1 { - reg = <0x01>; - - endpoint { - phandle = <0x481>; - }; - }; - }; - }; - - vcc5v0-usbdcin { - regulator-max-microvolt = <0x4c4b40>; - regulator-boot-on; - regulator-always-on; - regulator-min-microvolt = <0x4c4b40>; - regulator-name = "vcc5v0_usbdcin"; - compatible = "regulator-fixed"; - phandle = <0x48c>; - vin-supply = <0x1cd>; - }; - - rkvdec-core@fdc48000 { - power-domains = <0x60 0x0f>; - iommus = <0xcc>; - rockchip,ccu = <0xca>; - clock-names = "aclk_vcodec\0hclk_vcodec\0clk_core\0clk_cabac\0clk_hevc_cabac"; - reg-names = "regs\0link"; - assigned-clocks = <0x02 0x195 0x02 0x198 0x02 0x196 0x02 0x197>; - rockchip,core-mask = <0x20002>; - rockchip,task-capacity = <0x10>; - rockchip,normal-rates = <0x2faf0800 0x00 0x23c34600 0x23c34600 0x3b9aca00>; - assigned-clock-rates = <0x2faf0800 0x23c34600 0x23c34600 0x3b9aca00>; - resets = <0x02 0x293 0x02 0x292 0x02 0x298 0x02 0x296 0x02 0x297>; - interrupts = <0x00 0x61 0x04>; - rockchip,rcb-info = <0x88 0x6000 0x89 0xc000 0x8d 0x16000 0x8c 0xc000 0x8b 0x2c000 0x85 0xc000 0x86 0x2000 0x87 0x1100 0x8a 0x3300 0x8e 0x47300>; - clocks = <0x02 0x195 0x02 0x194 0x02 0x198 0x02 0x196 0x02 0x197>; - rockchip,rcb-min-width = <0x200>; - rockchip,srv = <0xb8>; - rockchip,taskqueue-node = <0x09>; - compatible = "rockchip,rkv-decoder-v2"; - status = "okay"; - interrupt-names = "irq_rkvdec1"; - rockchip,skip-pmu-idle-request; - rockchip,rcb-iova = <0xffe00000 0x100000>; - reg = <0x00 0xfdc48100 0x00 0x400 0x00 0xfdc48000 0x00 0x100>; - phandle = <0x275>; - reset-names = "video_a\0video_h\0video_core\0video_cabac\0video_hevc_cabac"; - rockchip,sram = <0xcd>; - }; - - vcc-1v1-nldo-s3 { - regulator-max-microvolt = <0x10c8e0>; - regulator-boot-on; - regulator-always-on; - regulator-min-microvolt = <0x10c8e0>; - regulator-name = "vcc_1v1_nldo_s3"; - compatible = "regulator-fixed"; - phandle = <0x15c>; - vin-supply = <0x78>; - }; - - power-management@fd8d8000 { - compatible = "rockchip,rk3588-pmu\0syscon\0simple-mfd"; - reg = <0x00 0xfd8d8000 0x00 0x400>; - phandle = <0xd9>; - - power-controller { - #address-cells = <0x01>; - #size-cells = <0x00>; - #power-domain-cells = <0x01>; - compatible = "rockchip,rk3588-power-controller"; - status = "okay"; - phandle = <0x60>; - - power-domain@37 { - clocks = <0x02 0x199 0x02 0x140>; - reg = <0x25>; - pm_qos = <0xaf>; - }; - - power-domain@27 { - #address-cells = <0x01>; - clocks = <0x02 0x1e1 0x02 0x1e2 0x02 0x1df 0x02 0x1de 0x02 0x1e5 0x02 0x1e4>; - #size-cells = <0x00>; - reg = <0x1b>; - pm_qos = <0xa2 0xa3 0xa4 0xa5>; - - power-domain@29 { - clocks = <0x02 0x1d6 0x02 0x1d5 0x02 0x1d9 0x02 0x1d8 0x02 0x1e2>; - reg = <0x1d>; - pm_qos = <0xa8 0xa9>; - }; - - power-domain@28 { - clocks = <0x02 0x121 0x02 0x120 0x02 0x1e1 0x02 0x1e2>; - reg = <0x1c>; - pm_qos = <0xa6 0xa7>; - }; - }; - - power-domain@33 { - clocks = <0x02 0x166 0x02 0x169 0x02 0x16a>; - reg = <0x21>; - }; - - power-domain@13 { - #address-cells = <0x01>; - #size-cells = <0x00>; - reg = <0x0d>; - - power-domain@15 { - clocks = <0x02 0x194 0x02 0x1be 0x02 0x1bc 0x02 0x195>; - reg = <0x0f>; - pm_qos = <0x8c>; - }; - - power-domain@16 { - #address-cells = <0x01>; - clocks = <0x02 0x1c4 0x02 0x1c5>; - #size-cells = <0x00>; - reg = <0x10>; - pm_qos = <0x8d 0x8e 0x8f>; - - power-domain@17 { - clocks = <0x02 0x1c9 0x02 0x1c4 0x02 0x1c5 0x02 0x1ca>; - reg = <0x11>; - pm_qos = <0x90 0x91 0x92>; - }; - }; - - power-domain@14 { - clocks = <0x02 0x18f 0x02 0x1be 0x02 0x1bc 0x02 0x190 0x02 0x18e>; - reg = <0x0e>; - pm_qos = <0x8b>; - }; - }; - - power-domain@31 { - clocks = <0x02 0x166 0x02 0x1a1 0x02 0x1a4 0x02 0x19d 0x02 0x19e 0x02 0x19f 0x02 0x1a0>; - reg = <0x1f>; - pm_qos = <0xab 0xac 0xad 0xae>; - }; - - power-domain@21 { - #address-cells = <0x01>; - clocks = <0x02 0x1be 0x02 0x1bd 0x02 0x1bc 0x02 0x1bf 0x02 0x1aa 0x02 0x1a9 0x02 0x1ac 0x02 0x1ad 0x02 0x1ae 0x02 0x1af 0x02 0x1b0 0x02 0x1b1 0x02 0x1b2 0x02 0x1b3 0x02 0x1b4 0x02 0x1b5 0x02 0x1b7 0x02 0x1b6>; - #size-cells = <0x00>; - reg = <0x15>; - pm_qos = <0x93 0x94 0x95 0x96 0x97 0x98 0x99 0x9a>; - - power-domain@15 { - clocks = <0x02 0x194 0x02 0x1be 0x02 0x1bc>; - reg = <0x0f>; - pm_qos = <0x8c>; - }; - - power-domain@23 { - clocks = <0x02 0x4b 0x02 0x49 0x02 0x1be>; - reg = <0x17>; - pm_qos = <0x9b>; - }; - - power-domain@14 { - clocks = <0x02 0x18f 0x02 0x1be 0x02 0x1bc 0x02 0x190>; - reg = <0x0e>; - pm_qos = <0x8b>; - }; - - power-domain@22 { - clocks = <0x02 0x1ba 0x02 0x1b9>; - reg = <0x16>; - pm_qos = <0x9c>; - }; - }; - - power-domain@38 { - clocks = <0x02 0x3c 0x02 0x3d>; - reg = <0x26>; - }; - - power-domain@8 { - #address-cells = <0x01>; - #size-cells = <0x00>; - reg = <0x08>; - - power-domain@9 { - #address-cells = <0x01>; - clocks = <0x02 0x12f 0x02 0x131 0x02 0x130 0x02 0x126>; - #size-cells = <0x00>; - reg = <0x09>; - pm_qos = <0x82 0x83 0x84>; - - power-domain@11 { - clocks = <0x02 0x12f 0x02 0x131 0x02 0x130>; - reg = <0x0b>; - pm_qos = <0x86>; - }; - - power-domain@10 { - clocks = <0x02 0x12f 0x02 0x131 0x02 0x130>; - reg = <0x0a>; - pm_qos = <0x85>; - }; - }; - }; - - power-domain@26 { - clocks = <0x02 0x22e 0x02 0x22f 0x02 0x22d 0x02 0x218 0x02 0x217 0x02 0x22b 0x02 0x264>; - reg = <0x1a>; - pm_qos = <0xa0 0xa1>; - }; - - power-domain@34 { - clocks = <0x02 0x166 0x02 0x169 0x02 0x16a>; - reg = <0x22>; - }; - - power-domain@24 { - #address-cells = <0x01>; - clocks = <0x02 0x26e 0x02 0x26d 0x02 0x270>; - #size-cells = <0x00>; - reg = <0x18>; - pm_qos = <0x9d 0x9e>; - - power-domain@25 { - clocks = <0x02 0x1f6 0x02 0x1f7 0x02 0x1f5 0x02 0x1f3 0x02 0x1ee 0x02 0x1ed 0x02 0x26d>; - reg = <0x19>; - pm_qos = <0x9f>; - }; - }; - - power-domain@12 { - clocks = <0x02 0x114 0x02 0x115 0x02 0x116>; - reg = <0x0c>; - pm_qos = <0x87 0x88 0x89 0x8a>; - }; - - power-domain@40 { - reg = <0x28>; - pm_qos = <0xb0>; - }; - - power-domain@30 { - clocks = <0x02 0x189 0x02 0x18a>; - reg = <0x1e>; - pm_qos = <0xaa>; - }; - }; - }; - - csi2-dphy3 { - rockchip,hw = <0x2d 0x2e>; - phy-names = "dcphy0\0dcphy1"; - compatible = "rockchip,rk3588-csi2-dphy"; - status = "disabled"; - phys = <0x2f 0x30>; - phandle = <0x212>; - }; - - qos@fdf3e000 { - compatible = "syscon"; - reg = <0x00 0xfdf3e000 0x00 0x20>; - phandle = <0xac>; - }; - - pwm@fd8b0030 { - pinctrl-names = "active"; - pinctrl-0 = <0x81>; - clock-names = "pwm\0pclk"; - interrupts = <0x00 0x158 0x04 0x00 0x159 0x04>; - clocks = <0x02 0x2a5 0x02 0x2a4>; - #pwm-cells = <0x03>; - compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; - status = "disabled"; - reg = <0x00 0xfd8b0030 0x00 0x10>; - phandle = <0x264>; - }; - - rkcif-mipi-lvds2-sditf-vir1 { - compatible = "rockchip,rkcif-sditf"; - status = "disabled"; - rockchip,cif = <0x55>; - phandle = <0x234>; - }; - - syscon@fd5cc000 { - compatible = "rockchip,rk3588-usbdpphy-grf\0syscon"; - reg = <0x00 0xfd5cc000 0x00 0x4000>; - phandle = <0x1c9>; - }; - - vdpu@fdb50400 { - power-domains = <0x60 0x15>; - iommus = <0xb7>; - clock-names = "aclk_vcodec\0hclk_vcodec"; - assigned-clocks = <0x02 0x1c0>; - rockchip,normal-rates = <0x2367b880 0x00>; - assigned-clock-rates = <0x2367b880>; - resets = <0x02 0x2c8 0x02 0x2c9>; - interrupts = <0x00 0x77 0x04>; - clocks = <0x02 0x1c0 0x02 0x1c1>; - rockchip,srv = <0xb8>; - rockchip,taskqueue-node = <0x00>; - rockchip,disable-auto-freq; - compatible = "rockchip,vpu-decoder-v2"; - rockchip,resetgroup-node = <0x00>; - status = "okay"; - interrupt-names = "irq_vdpu"; - rockchip,skip-pmu-idle-request; - reg = <0x00 0xfdb50400 0x00 0x400>; - phandle = <0x267>; - reset-names = "shared_video_a\0shared_video_h"; - }; - - qos@fdf60200 { - compatible = "syscon"; - reg = <0x00 0xfdf60200 0x00 0x20>; - phandle = <0x8e>; - }; - - pwm@febe0030 { - pinctrl-names = "active"; - pinctrl-0 = <0x170>; - clock-names = "pwm\0pclk"; - interrupts = <0x00 0x15c 0x04 0x00 0x15d 0x04>; - clocks = <0x02 0x57 0x02 0x56>; - #pwm-cells = <0x03>; - compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; - status = "disabled"; - reg = <0x00 0xfebe0030 0x00 0x10>; - phandle = <0x2d8>; - }; - - display-subsystem { - memory-region-names = "drm-logo"; - clock-names = "hdmi0_phy_pll\0hdmi1_phy_pll"; - ports = <0x34>; - memory-region = <0x37>; - clocks = <0x35 0x36>; - compatible = "rockchip,display-subsystem"; - phandle = <0x215>; - - route { - - route-edp1 { - logo,kernel = "logo_kernel.bmp"; - logo,uboot = "logo.bmp"; - charge_logo,mode = "center"; - logo,mode = "center"; - status = "disabled"; - phandle = <0x21a>; - }; - - route-hdmi1 { - logo,kernel = "logo_kernel.bmp"; - logo,uboot = "logo.bmp"; - charge_logo,mode = "center"; - connect = <0x3f>; - logo,mode = "center"; - status = "disabled"; - phandle = <0x21e>; - }; - - route-dp1 { - logo,kernel = "logo_kernel.bmp"; - logo,uboot = "logo.bmp"; - charge_logo,mode = "center"; - connect = <0x3e>; - logo,mode = "center"; - status = "disabled"; - phandle = <0x21d>; - }; - - route-dsi1 { - logo,kernel = "logo_kernel.bmp"; - logo,uboot = "logo.bmp"; - charge_logo,mode = "center"; - connect = <0x3a>; - logo,mode = "center"; - status = "disabled"; - phandle = <0x218>; - }; - - route-edp0 { - logo,kernel = "logo_kernel.bmp"; - logo,uboot = "logo.bmp"; - charge_logo,mode = "center"; - connect = <0x3b>; - logo,mode = "center"; - status = "disabled"; - phandle = <0x219>; - }; - - route-hdmi0 { - logo,kernel = "logo_kernel.bmp"; - logo,uboot = "logo.bmp"; - charge_logo,mode = "center"; - connect = <0x3c>; - logo,mode = "center"; - status = "okay"; - phandle = <0x21b>; - }; - - route-dp0 { - logo,kernel = "logo_kernel.bmp"; - logo,uboot = "logo.bmp"; - charge_logo,mode = "center"; - connect = <0x38>; - logo,mode = "center"; - status = "disabled"; - phandle = <0x216>; - }; - - route-rgb { - logo,kernel = "logo_kernel.bmp"; - logo,uboot = "logo.bmp"; - charge_logo,mode = "center"; - connect = <0x3d>; - logo,mode = "center"; - status = "disabled"; - phandle = <0x21c>; - }; - - route-dsi0 { - logo,kernel = "logo_kernel.bmp"; - logo,uboot = "logo.bmp"; - charge_logo,mode = "center"; - connect = <0x39>; - logo,mode = "center"; - status = "disabled"; - phandle = <0x217>; - }; - }; - }; - - serial@febc0000 { - reg-io-width = <0x04>; - pinctrl-names = "default"; - pinctrl-0 = <0x168>; - clock-names = "baudclk\0apb_pclk"; - interrupts = <0x00 0x154 0x04>; - clocks = <0x02 0xd7 0x02 0xb3>; - compatible = "rockchip,rk3588-uart\0snps,dw-apb-uart"; - status = "disabled"; - reg = <0x00 0xfebc0000 0x00 0x100>; - phandle = <0x2d1>; - dmas = <0xf2 0x0b 0xf2 0x0c>; - reg-shift = <0x02>; - }; - - adc-keys { - io-channels = <0x1d9 0x01>; - poll-interval = <0x64>; - keyup-threshold-microvolt = <0x1b7740>; - compatible = "adc-keys"; - status = "okay"; - phandle = <0x49e>; - io-channel-names = "buttons"; - - recovery-key { - press-threshold-microvolt = <0x4268>; - label = "F12"; - linux,code = <0x58>; - }; - }; - - pvtm@fdaf0000 { - #address-cells = <0x01>; - #size-cells = <0x00>; - compatible = "rockchip,rk3588-npu-pvtm"; - reg = <0x00 0xfdaf0000 0x00 0x100>; - - pvtm@3 { - clock-names = "clk\0pclk"; - resets = <0x02 0x1de 0x02 0x1dc>; - clocks = <0x02 0x12b 0x02 0x129>; - reg = <0x03>; - reset-names = "rts\0rst-p"; - }; - }; - - codec-digital@fe500000 { - power-domains = <0x60 0x26>; - pinctrl-names = "default"; - pinctrl-0 = <0x144>; - clock-names = "dac\0pclk"; - resets = <0x02 0x84>; - clocks = <0x02 0x29 0x02 0x2f>; - #sound-dai-cells = <0x00>; - compatible = "rockchip,rk3588-codec-digital\0rockchip,codec-digital-v1"; - status = "disabled"; - rockchip,grf = <0xc8>; - reg = <0x00 0xfe500000 0x00 0x1000>; - phandle = <0x29e>; - reset-names = "reset"; - rockchip,pwm-output-mode; - }; - - pwm@fd8b0020 { - pinctrl-names = "active"; - pinctrl-0 = <0x80>; - clock-names = "pwm\0pclk"; - interrupts = <0x00 0x158 0x04>; - clocks = <0x02 0x2a5 0x02 0x2a4>; - #pwm-cells = <0x03>; - compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; - status = "disabled"; - reg = <0x00 0xfd8b0020 0x00 0x10>; - phandle = <0x263>; - }; - - rkcif-mipi-lvds2 { - iommus = <0x50>; - rockchip,hw = <0x4f>; - compatible = "rockchip,rkcif-mipi-lvds"; - status = "okay"; - phandle = <0x55>; - - port { - - endpoint { - remote-endpoint = <0x54>; - phandle = <0x4e>; - }; - }; - }; - - pwm@febe0020 { - pinctrl-names = "active"; - pinctrl-0 = <0x16f>; - clock-names = "pwm\0pclk"; - interrupts = <0x00 0x15c 0x04>; - clocks = <0x02 0x57 0x02 0x56>; - #pwm-cells = <0x03>; - compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; - status = "disabled"; - reg = <0x00 0xfebe0020 0x00 0x10>; - phandle = <0x2d7>; - }; - - vcc-fan-pwr-en-regulator { - regulator-boot-on; - gpio = <0x182 0x0b 0x00>; - regulator-always-on; - enable-active-high; - regulator-name = "vcc_fan_pwr_en"; - compatible = "regulator-fixed"; - status = "disabled"; - phandle = <0x4a4>; - }; - - iommu@fdba0800 { - power-domains = <0x60 0x15>; - clock-names = "aclk\0iface"; - interrupts = <0x00 0x79 0x04>; - clocks = <0x02 0x1ac 0x02 0x1ad>; - #iommu-cells = <0x00>; - compatible = "rockchip,iommu-v2"; - status = "okay"; - interrupt-names = "irq_jpege0_mmu"; - reg = <0x00 0xfdba0800 0x00 0x40>; - phandle = <0xbc>; - }; - - rkcif-mipi-lvds1-sditf-vir2 { - compatible = "rockchip,rkcif-sditf"; - status = "disabled"; - rockchip,cif = <0x53>; - phandle = <0x231>; - }; - - arm-pmu { - interrupt-affinity = <0x06 0x07 0x08 0x09 0x0a 0x0b 0x0c 0x0d>; - interrupts = <0x01 0x07 0x08>; - compatible = "arm,armv8-pmuv3"; - phandle = <0x20c>; - }; - - pvtm@fda40000 { - #address-cells = <0x01>; - #size-cells = <0x00>; - compatible = "rockchip,rk3588-bigcore0-pvtm"; - reg = <0x00 0xfda40000 0x00 0x100>; - - pvtm@0 { - clock-names = "clk\0pclk"; - clocks = <0x02 0x2c6 0x02 0x15>; - reg = <0x00>; - }; - }; - - pwm@fd8b0010 { - pinctrl-names = "active"; - pinctrl-0 = <0x7f>; - clock-names = "pwm\0pclk"; - interrupts = <0x00 0x158 0x04>; - clocks = <0x02 0x2a5 0x02 0x2a4>; - #pwm-cells = <0x03>; - compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; - status = "disabled"; - reg = <0x00 0xfd8b0010 0x00 0x10>; - phandle = <0x262>; - }; - - i2s@fddc0000 { - power-domains = <0x60 0x19>; - clock-names = "mclk_tx\0mclk_rx\0hclk"; - assigned-clocks = <0x02 0x1f9>; - assigned-clock-parents = <0x02 0x05>; - resets = <0x02 0x38d>; - interrupts = <0x00 0xb8 0x04>; - clocks = <0x02 0x1fb 0x02 0x1fb 0x02 0x1f0>; - dma-names = "tx"; - #sound-dai-cells = <0x00>; - compatible = "rockchip,rk3588-i2s-tdm"; - rockchip,playback-only; - status = "disabled"; - reg = <0x00 0xfddc0000 0x00 0x1000>; - phandle = <0x27d>; - dmas = <0xf2 0x00>; - reset-names = "tx-m"; - }; - - qos@fdf61400 { - compatible = "syscon"; - reg = <0x00 0xfdf61400 0x00 0x20>; - phandle = <0x92>; - }; - - syscon@fd5d4000 { - #address-cells = <0x01>; - #size-cells = <0x01>; - compatible = "rockchip,rk3588-usb2phy-grf\0syscon\0simple-mfd"; - reg = <0x00 0xfd5d4000 0x00 0x4000>; - phandle = <0x1c8>; - - usb2-phy@4000 { - clock-output-names = "usb480m_phy1"; - clock-names = "phyclk"; - resets = <0x02 0xc0048 0x02 0x489>; - interrupts = <0x00 0x18a 0x04>; - clocks = <0x02 0x2b5>; - #clock-cells = <0x00>; - rockchip,usbctrl-grf = <0x74>; - compatible = "rockchip,rk3588-usb2phy"; - status = "okay"; - reg = <0x4000 0x10>; - phandle = <0x1ca>; - reset-names = "phy\0apb"; - - otg-port { - phy-supply = <0x75>; - #phy-cells = <0x00>; - status = "okay"; - phandle = <0x1a3>; - }; - }; - }; - - rkisp0-vir1 { - rockchip,hw = <0x58>; - compatible = "rockchip,rkisp-vir"; - status = "disabled"; - phandle = <0x23c>; - }; - - pwm@febe0010 { - pinctrl-names = "active"; - pinctrl-0 = <0x16e>; - clock-names = "pwm\0pclk"; - interrupts = <0x00 0x15c 0x04>; - clocks = <0x02 0x57 0x02 0x56>; - #pwm-cells = <0x03>; - compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; - status = "disabled"; - reg = <0x00 0xfebe0010 0x00 0x10>; - phandle = <0x2d6>; - }; - - thermal-zones { - phandle = <0x248>; - - bigcore1-thermal { - polling-delay = <0x3e8>; - polling-delay-passive = <0x14>; - thermal-sensors = <0x5d 0x02>; - phandle = <0x24d>; - }; - - soc-thermal { - polling-delay = <0x3e8>; - polling-delay-passive = <0x14>; - thermal-sensors = <0x5d 0x00>; - sustainable-power = <0x834>; - phandle = <0x249>; - - trips { - - trip-point-0 { - temperature = <0x124f8>; - hysteresis = <0x7d0>; - type = "passive"; - phandle = <0x24a>; - }; - - trip-point-1 { - temperature = <0x14c08>; - hysteresis = <0x7d0>; - type = "passive"; - phandle = <0x5e>; - }; - - soc-crit { - temperature = <0x1c138>; - hysteresis = <0x7d0>; - type = "critical"; - phandle = <0x24b>; - }; - }; - - cooling-maps { - - map2 { - trip = <0x5e>; - cooling-device = <0x0c 0xffffffff 0xffffffff>; - contribution = <0x400>; - }; - - map0 { - trip = <0x5e>; - cooling-device = <0x06 0xffffffff 0xffffffff>; - contribution = <0x400>; - }; - - map3 { - trip = <0x5e>; - cooling-device = <0x5f 0xffffffff 0xffffffff>; - contribution = <0x400>; - }; - - map1 { - trip = <0x5e>; - cooling-device = <0x0a 0xffffffff 0xffffffff>; - contribution = <0x400>; - }; - }; - }; - - npu-thermal { - polling-delay = <0x3e8>; - polling-delay-passive = <0x14>; - thermal-sensors = <0x5d 0x06>; - phandle = <0x251>; - }; - - center-thermal { - polling-delay = <0x3e8>; - polling-delay-passive = <0x14>; - thermal-sensors = <0x5d 0x04>; - phandle = <0x24f>; - }; - - gpu-thermal { - polling-delay = <0x3e8>; - polling-delay-passive = <0x14>; - thermal-sensors = <0x5d 0x05>; - phandle = <0x250>; - }; - - littlecore-thermal { - polling-delay = <0x3e8>; - polling-delay-passive = <0x14>; - thermal-sensors = <0x5d 0x03>; - phandle = <0x24e>; - }; - - bigcore0-thermal { - polling-delay = <0x3e8>; - polling-delay-passive = <0x14>; - thermal-sensors = <0x5d 0x01>; - phandle = <0x24c>; - }; - }; - - iommu@fdbdf000 { - power-domains = <0x60 0x10>; - rockchip,shootdown-entire; - clock-names = "aclk\0iface"; - interrupts = <0x00 0x63 0x04 0x00 0x64 0x04>; - clocks = <0x02 0x1c5 0x02 0x1c4>; - rockchip,enable-cmd-retry; - #iommu-cells = <0x00>; - compatible = "rockchip,iommu-v2"; - rockchip,disable-mmu-reset; - status = "okay"; - interrupt-names = "irq_rkvenc0_mmu0\0irq_rkvenc0_mmu1"; - reg = <0x00 0xfdbdf000 0x00 0x40 0x00 0xfdbdf040 0x00 0x40>; - phandle = <0xc2>; - }; - - serial@feb50000 { - reg-io-width = <0x04>; - pinctrl-names = "default"; - pinctrl-0 = <0x161>; - clock-names = "baudclk\0apb_pclk"; - interrupts = <0x00 0x14d 0x04>; - clocks = <0x02 0xbb 0x02 0xac>; - compatible = "rockchip,rk3588-uart\0snps,dw-apb-uart"; - status = "disabled"; - reg = <0x00 0xfeb50000 0x00 0x100>; - phandle = <0x2ca>; - dmas = <0x7c 0x0a 0x7c 0x0b>; - reg-shift = <0x02>; - }; - - iommu@fdcd0f00 { - power-domains = <0x60 0x1d>; - clock-names = "aclk\0iface\0pclk"; - interrupts = <0x00 0x8c 0x04>; - clocks = <0x02 0x1d5 0x02 0x1d6 0x02 0x1d7>; - #iommu-cells = <0x00>; - compatible = "rockchip,iommu-v2"; - rockchip,disable-mmu-reset; - status = "disabled"; - interrupt-names = "fec0_mmu"; - reg = <0x00 0xfdcd0f00 0x00 0x100>; - phandle = <0xd2>; - }; - - vcc5v0-host { - regulator-max-microvolt = <0x4c4b40>; - regulator-boot-on; - gpio = <0x182 0x02 0x00>; - regulator-always-on; - enable-active-high; - regulator-min-microvolt = <0x4c4b40>; - regulator-name = "vcc5v0_host"; - compatible = "regulator-fixed"; - status = "okay"; - phandle = <0x75>; - vin-supply = <0x1dd>; - }; - - qos@fdf66a00 { - compatible = "syscon"; - reg = <0x00 0xfdf66a00 0x00 0x20>; - phandle = <0x98>; - }; - - phy@fed90000 { - clock-names = "refclk\0immortal\0pclk\0utmi"; - resets = <0x02 0x2f 0x02 0x30 0x02 0x31 0x02 0x32 0x02 0x484>; - clocks = <0x02 0x2b6 0x02 0x280 0x02 0x26a 0x1ca>; - compatible = "rockchip,rk3588-usbdp-phy"; - status = "okay"; - rockchip,dp-lane-mux = <0x02 0x03>; - reg = <0x00 0xfed90000 0x00 0x10000>; - phandle = <0x48b>; - rockchip,usb-grf = <0x74>; - reset-names = "init\0cmn\0lane\0pcs_apb\0pma_apb"; - rockchip,u2phy-grf = <0x1c8>; - rockchip,usbdpphy-grf = <0x1c9>; - rockchip,vo-grf = <0xf5>; - - dp-port { - #phy-cells = <0x00>; - status = "okay"; - phandle = <0x1a5>; - }; - - u3-port { - #phy-cells = <0x00>; - status = "okay"; - phandle = <0x1a4>; - }; - }; - - jpege-core@fdba0000 { - power-domains = <0x60 0x15>; - iommus = <0xbc>; - rockchip,ccu = <0xbd>; - clock-names = "aclk_vcodec\0hclk_vcodec"; - assigned-clocks = <0x02 0x1ac>; - rockchip,normal-rates = <0x2367b880 0x00>; - assigned-clock-rates = <0x2367b880>; - resets = <0x02 0x2ca 0x02 0x2cb>; - interrupts = <0x00 0x7a 0x04>; - clocks = <0x02 0x1ac 0x02 0x1ad>; - rockchip,srv = <0xb8>; - rockchip,taskqueue-node = <0x02>; - rockchip,disable-auto-freq; - compatible = "rockchip,vpu-jpege-core"; - status = "okay"; - interrupt-names = "irq_jpege0"; - rockchip,skip-pmu-idle-request; - reg = <0x00 0xfdba0000 0x00 0x400>; - phandle = <0x26d>; - reset-names = "video_a\0video_h"; - }; - - vcc5v0-sys { - regulator-max-microvolt = <0x4c4b40>; - regulator-boot-on; - regulator-always-on; - regulator-min-microvolt = <0x4c4b40>; - regulator-name = "vcc5v0_sys"; - compatible = "regulator-fixed"; - phandle = <0x78>; - vin-supply = <0x1cd>; - }; - - pwm@fd8b0000 { - pinctrl-names = "active"; - pinctrl-0 = <0x7e>; - clock-names = "pwm\0pclk"; - interrupts = <0x00 0x158 0x04>; - clocks = <0x02 0x2a5 0x02 0x2a4>; - #pwm-cells = <0x03>; - compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; - status = "disabled"; - reg = <0x00 0xfd8b0000 0x00 0x10>; - phandle = <0x261>; - }; - - vop@fdd90000 { - power-domains = <0x60 0x18>; - iommus = <0xd6>; - rockchip,vop-grf = <0xd7>; - clock-names = "aclk_vop\0hclk_vop\0dclk_vp0\0dclk_vp1\0dclk_vp2\0dclk_vp3\0pclk_vop\0dclk_src_vp0\0dclk_src_vp1\0dclk_src_vp2"; - reg-names = "regs\0gamma_lut"; - assigned-clocks = <0x02 0x270>; - assigned-clock-rates = <0x2cb41780>; - resets = <0x02 0x349 0x02 0x348 0x02 0x34d 0x02 0x350 0x02 0x351 0x02 0x352>; - interrupts = <0x00 0x9c 0x04>; - clocks = <0x02 0x270 0x02 0x26f 0x02 0x274 0x02 0x275 0x02 0x276 0x02 0x277 0x02 0x26e 0x02 0x271 0x02 0x272 0x02 0x273>; - compatible = "rockchip,rk3588-vop"; - rockchip,pmu = <0xd9>; - status = "okay"; - rockchip,grf = <0xc8>; - reg = <0x00 0xfdd90000 0x00 0x4200 0x00 0xfdd95000 0x00 0x1000>; - phandle = <0x278>; - rockchip,vo1-grf = <0xd8>; - reset-names = "axi\0ahb\0dclk_vp0\0dclk_vp1\0dclk_vp2\0dclk_vp3"; - - ports { - #address-cells = <0x01>; - #size-cells = <0x00>; - phandle = <0x34>; - - port@0 { - rockchip,primary-plane = <0x02>; - rockchip,plane-mask = <0x05>; - #address-cells = <0x01>; - assigned-clocks = <0x02 0x270>; - assigned-clock-rates = <0x2faf0800>; - #size-cells = <0x00>; - reg = <0x00>; - phandle = <0x279>; - - endpoint@5 { - remote-endpoint = <0xdf>; - reg = <0x05>; - phandle = <0x1ad>; - }; - - endpoint@3 { - remote-endpoint = <0xdd>; - reg = <0x03>; - phandle = <0x1a6>; - }; - - endpoint@1 { - remote-endpoint = <0xdb>; - reg = <0x01>; - phandle = <0x102>; - }; - - endpoint@4 { - remote-endpoint = <0xde>; - reg = <0x04>; - phandle = <0x1b0>; - }; - - endpoint@2 { - remote-endpoint = <0xdc>; - reg = <0x02>; - phandle = <0x3c>; - }; - - endpoint@0 { - remote-endpoint = <0xda>; - reg = <0x00>; - phandle = <0xf7>; - }; - }; - - port@3 { - rockchip,primary-plane = <0x09>; - rockchip,plane-mask = <0x280>; - #address-cells = <0x01>; - #size-cells = <0x00>; - reg = <0x03>; - phandle = <0x27c>; - - endpoint@1 { - remote-endpoint = <0xef>; - reg = <0x01>; - phandle = <0x3a>; - }; - - endpoint@2 { - remote-endpoint = <0xf0>; - reg = <0x02>; - phandle = <0x3d>; - }; - - endpoint@0 { - remote-endpoint = <0xee>; - reg = <0x00>; - phandle = <0x39>; - }; - }; - - port@1 { - rockchip,primary-plane = <0x03>; - rockchip,plane-mask = <0x0a>; - #address-cells = <0x01>; - #size-cells = <0x00>; - reg = <0x01>; - phandle = <0x27a>; - - endpoint@5 { - remote-endpoint = <0xe5>; - reg = <0x05>; - phandle = <0x3f>; - }; - - endpoint@3 { - remote-endpoint = <0xe3>; - reg = <0x03>; - phandle = <0x3e>; - }; - - endpoint@1 { - remote-endpoint = <0xe1>; - reg = <0x01>; - phandle = <0x103>; - }; - - endpoint@4 { - remote-endpoint = <0xe4>; - reg = <0x04>; - phandle = <0x1b1>; - }; - - endpoint@2 { - remote-endpoint = <0xe2>; - reg = <0x02>; - phandle = <0xff>; - }; - - endpoint@0 { - remote-endpoint = <0xe0>; - reg = <0x00>; - phandle = <0x38>; - }; - }; - - port@2 { - rockchip,primary-plane = <0x08>; - rockchip,plane-mask = <0x140>; - #address-cells = <0x01>; - assigned-clocks = <0x02 0x273>; - assigned-clock-parents = <0x02 0x04>; - #size-cells = <0x00>; - reg = <0x02>; - phandle = <0x27b>; - - endpoint@5 { - remote-endpoint = <0xeb>; - reg = <0x05>; - phandle = <0x1a7>; - }; - - endpoint@3 { - remote-endpoint = <0xe9>; - reg = <0x03>; - phandle = <0xf3>; - }; - - endpoint@1 { - remote-endpoint = <0xe7>; - reg = <0x01>; - phandle = <0x3b>; - }; - - endpoint@6 { - remote-endpoint = <0xec>; - reg = <0x06>; - phandle = <0x1b2>; - }; - - endpoint@4 { - remote-endpoint = <0xea>; - reg = <0x04>; - phandle = <0xf4>; - }; - - endpoint@2 { - remote-endpoint = <0xe8>; - reg = <0x02>; - phandle = <0x100>; - }; - - endpoint@0 { - remote-endpoint = <0xe6>; - reg = <0x00>; - phandle = <0xf8>; - }; - - endpoint@7 { - remote-endpoint = <0xed>; - reg = <0x07>; - phandle = <0x1ae>; - }; - }; - }; - }; - - csi2-dphy1 { - rockchip,hw = <0x2d 0x2e>; - phy-names = "dcphy0\0dcphy1"; - compatible = "rockchip,rk3588-csi2-dphy"; - status = "disabled"; - phys = <0x2f 0x30>; - phandle = <0x210>; - }; - - pwm@febe0000 { - pinctrl-names = "active"; - pinctrl-0 = <0x16d>; - clock-names = "pwm\0pclk"; - interrupts = <0x00 0x15c 0x04>; - clocks = <0x02 0x57 0x02 0x56>; - #pwm-cells = <0x03>; - compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; - status = "disabled"; - reg = <0x00 0xfebe0000 0x00 0x10>; - phandle = <0x2d5>; - }; - - clocks { - #address-cells = <0x02>; - #size-cells = <0x02>; - compatible = "simple-bus"; - ranges; - - hclk_nvm@fd7c087c { - clock-names = "link"; - clocks = <0x02 0x141>; - #clock-cells = <0x00>; - #power-domain-cells = <0x01>; - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c087c 0x00 0x10>; - phandle = <0x03>; - }; - - mclkin-i2s0 { - clock-output-names = "i2s0_mclkin"; - #clock-cells = <0x00>; - clock-frequency = <0x00>; - compatible = "fixed-clock"; - phandle = <0x204>; - }; - - hclk_rkvenc1_pre@fd7c08c0 { - clock-names = "link"; - clocks = <0x02 0x1c4>; - #clock-cells = <0x00>; - #power-domain-cells = <0x01>; - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c08c0 0x00 0x10>; - phandle = <0x1fe>; - }; - - mclkout-i2s1@fd58c318 { - rockchip,clk-ignore-unused; - clock-output-names = "i2s1_mclkout_to_io"; - clocks = <0x02 0x291>; - rockchip,bit-set-to-disable; - #clock-cells = <0x00>; - compatible = "rockchip,clk-out"; - reg = <0x00 0xfd58c318 0x00 0x04>; - phandle = <0x208>; - rockchip,bit-shift = <0x01>; - }; - - mclkout-i2s1@fd58a000 { - rockchip,clk-ignore-unused; - clock-output-names = "i2s1m1_mclkout_to_io"; - clocks = <0x02 0x291>; - #clock-cells = <0x00>; - compatible = "rockchip,clk-out"; - reg = <0x00 0xfd58a000 0x00 0x04>; - phandle = <0x209>; - rockchip,bit-shift = <0x06>; - }; - - aclk_hdcp0_pre@fd7c08dc { - clock-names = "link"; - clocks = <0x02 0x26c>; - #clock-cells = <0x00>; - #power-domain-cells = <0x01>; - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c08dc 0x00 0x10>; - phandle = <0x1ff>; - }; - - xin32k { - clock-output-names = "xin32k"; - #clock-cells = <0x00>; - clock-frequency = <0x8000>; - compatible = "fixed-clock"; - phandle = <0x1f2>; - }; - - aclk_usb@fd7c08a8 { - clock-names = "link"; - clocks = <0x02 0x263>; - #clock-cells = <0x00>; - #power-domain-cells = <0x01>; - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c08a8 0x00 0x10>; - phandle = <0x6a>; - }; - - hclk_usb@fd7c08a8 { - clock-names = "link"; - clocks = <0x02 0x264>; - #clock-cells = <0x00>; - #power-domain-cells = <0x01>; - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c08a8 0x00 0x10>; - phandle = <0x1f5>; - }; - - hclk_vo0@fd7c08dc { - clock-names = "link"; - clocks = <0x02 0x26d>; - #clock-cells = <0x00>; - #power-domain-cells = <0x01>; - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c08dc 0x00 0x10>; - phandle = <0x04>; - }; - - pclk_av1_pre@fd7c0910 { - clock-names = "link"; - clocks = <0x02 0x1be>; - #clock-cells = <0x00>; - #power-domain-cells = <0x01>; - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c0910 0x00 0x10>; - phandle = <0x201>; - }; - - mclkout-i2s2@fd58c318 { - rockchip,clk-ignore-unused; - clock-output-names = "i2s2_mclkout_to_io"; - clocks = <0x02 0x28>; - rockchip,bit-set-to-disable; - #clock-cells = <0x00>; - compatible = "rockchip,clk-out"; - reg = <0x00 0xfd58c318 0x00 0x04>; - phandle = <0x20a>; - rockchip,bit-shift = <0x02>; - }; - - aclk_vdpu_low_pre@fd7c08b0 { - clock-names = "link"; - clocks = <0x02 0x1bc>; - #clock-cells = <0x00>; - #power-domain-cells = <0x01>; - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c08b0 0x00 0x10>; - phandle = <0x1f4>; - }; - - mclkin-i2s3 { - clock-output-names = "i2s3_mclkin"; - #clock-cells = <0x00>; - clock-frequency = <0x00>; - compatible = "fixed-clock"; - phandle = <0x207>; - }; - - spll { - clock-output-names = "spll"; - #clock-cells = <0x00>; - clock-frequency = <0x29d7ab80>; - compatible = "fixed-clock"; - phandle = <0x1f1>; - }; - - xin24m { - clock-output-names = "xin24m"; - #clock-cells = <0x00>; - clock-frequency = <0x16e3600>; - compatible = "fixed-clock"; - phandle = <0x1f3>; - }; - - aclk_av1_pre@fd7c0910 { - clock-names = "link"; - clocks = <0x02 0x1bc>; - #clock-cells = <0x00>; - #power-domain-cells = <0x01>; - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c0910 0x00 0x10>; - phandle = <0x202>; - }; - - pclk_vo0_grf@fd7c08dc { - clock-names = "link"; - clocks = <0x04>; - #clock-cells = <0x00>; - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c08dc 0x00 0x04>; - phandle = <0x72>; - }; - - aclk_jpeg_decoder_pre@fd7c08b0 { - clock-names = "link"; - clocks = <0x02 0x1bc>; - #clock-cells = <0x00>; - #power-domain-cells = <0x01>; - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c08b0 0x00 0x10>; - phandle = <0x1fc>; - }; - - aclk_hdcp1_pre@fd7c08ec { - clock-names = "link"; - clocks = <0x02 0x263>; - #clock-cells = <0x00>; - #power-domain-cells = <0x01>; - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c08ec 0x00 0x10>; - phandle = <0x200>; - }; - - mclkin-i2s1 { - clock-output-names = "i2s1_mclkin"; - #clock-cells = <0x00>; - clock-frequency = <0x00>; - compatible = "fixed-clock"; - phandle = <0x205>; - }; - - hclk_vo1@fd7c08ec { - clock-names = "link"; - clocks = <0x02 0x264>; - #clock-cells = <0x00>; - #power-domain-cells = <0x01>; - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c08ec 0x00 0x10>; - phandle = <0x05>; - }; - - mclkout-i2s3@fd58c318 { - rockchip,clk-ignore-unused; - clock-output-names = "i2s3_mclkout_to_io"; - clocks = <0x02 0x2e>; - rockchip,bit-set-to-disable; - #clock-cells = <0x00>; - compatible = "rockchip,clk-out"; - reg = <0x00 0xfd58c318 0x00 0x04>; - phandle = <0x20b>; - rockchip,bit-shift = <0x07>; - }; - - aclk_rkvdec0_pre@fd7c08a0 { - clock-names = "link"; - clocks = <0x02 0x1bc>; - #clock-cells = <0x00>; - #power-domain-cells = <0x01>; - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c08a0 0x00 0x10>; - phandle = <0x1f8>; - }; - - aclk_isp1_pre@fd7c0868 { - clock-names = "link"; - clocks = <0x02 0x1e0>; - #clock-cells = <0x00>; - #power-domain-cells = <0x01>; - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c0868 0x00 0x10>; - phandle = <0x1f7>; - }; - - pclk_vo1_grf@fd7c08ec { - clock-names = "link"; - clocks = <0x05>; - #clock-cells = <0x00>; - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c08ec 0x00 0x04>; - phandle = <0x73>; - }; - - aclk_rkvdec1_pre@fd7c08a4 { - clock-names = "link"; - clocks = <0x02 0x1bc>; - #clock-cells = <0x00>; - #power-domain-cells = <0x01>; - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c08a4 0x00 0x10>; - phandle = <0x1fa>; - }; - - hclk_rkvdec0_pre@fd7c08a0 { - clock-names = "link"; - clocks = <0x02 0x1be>; - #clock-cells = <0x00>; - #power-domain-cells = <0x01>; - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c08a0 0x00 0x10>; - phandle = <0x1f9>; - }; - - hclk_sdio_pre@fd7c092c { - clock-names = "link"; - clocks = <0x03>; - #clock-cells = <0x00>; - #power-domain-cells = <0x01>; - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c092c 0x00 0x10>; - phandle = <0x203>; - }; - - hclk_rkvdec1_pre@fd7c08a4 { - clock-names = "link"; - clocks = <0x02 0x1be>; - #clock-cells = <0x00>; - #power-domain-cells = <0x01>; - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c08a4 0x00 0x10>; - phandle = <0x1fb>; - }; - - hclk_isp1_pre@fd7c0868 { - clock-names = "link"; - clocks = <0x02 0x1e1>; - #clock-cells = <0x00>; - #power-domain-cells = <0x01>; - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c0868 0x00 0x10>; - phandle = <0x1f6>; - }; - - mclkout-i2s0@fd58c318 { - rockchip,clk-ignore-unused; - clock-output-names = "i2s0_mclkout_to_io"; - clocks = <0x02 0x39>; - rockchip,bit-set-to-disable; - #clock-cells = <0x00>; - compatible = "rockchip,clk-out"; - reg = <0x00 0xfd58c318 0x00 0x04>; - phandle = <0x179>; - rockchip,bit-shift = <0x00>; - }; - - mclkin-i2s2 { - clock-output-names = "i2s2_mclkin"; - #clock-cells = <0x00>; - clock-frequency = <0x00>; - compatible = "fixed-clock"; - phandle = <0x206>; - }; - - aclk_rkvenc1_pre@fd7c08c0 { - clock-names = "link"; - clocks = <0x02 0x1c5>; - #clock-cells = <0x00>; - #power-domain-cells = <0x01>; - compatible = "rockchip,rk3588-clock-gate-link"; - reg = <0x00 0xfd7c08c0 0x00 0x10>; - phandle = <0x1fd>; - }; - }; - - usb@fc8c0000 { - power-domains = <0x60 0x1f>; - phy-names = "usb2-phy"; - clock-names = "usbhost\0arbiter\0utmi\0alk_usb"; - interrupts = <0x00 0xdb 0x04>; - clocks = <0x02 0x19f 0x02 0x1a0 0x6d 0x6a>; - compatible = "rockchip,rk3588-ohci\0generic-ohci"; - status = "okay"; - phys = <0x6f>; - reg = <0x00 0xfc8c0000 0x00 0x40000>; - phandle = <0x6e>; - }; - - qos@fdf40000 { - compatible = "syscon"; - reg = <0x00 0xfdf40000 0x00 0x20>; - phandle = <0xa8>; - }; - - mipi0-csi2 { - rockchip,hw = <0x47 0x48 0x49 0x4a 0x4b 0x4c>; - compatible = "rockchip,rk3588-mipi-csi2"; - status = "disabled"; - phandle = <0x224>; - }; - - cluster1-opp-table { - rockchip,pvtm-offset = <0x18>; - rockchip,pvtm-sample-time = <0x44c>; - rockchip,pvtm-hw = <0x06>; - nvmem-cells = <0x24 0x25 0x21>; - rockchip,low-temp = <0x2710>; - rockchip,pvtm-voltage-sel-hw = <0x00 0x603 0x00 0x604 0x61c 0x01 0x61d 0x635 0x02 0x636 0x64e 0x03 0x64f 0x66c 0x04 0x66d 0x68a 0x05 0x68b 0x6a8 0x06 0x6a9 0x270f 0x07>; - rockchip,pvtm-thermal-zone = "soc-thermal"; - rockchip,pvtm-low-len-sel = <0x03>; - rockchip,high-temp-max-freq = <0x21b100>; - opp-shared; - rockchip,reboot-freq = <0x1b7740>; - rockchip,pvtm-freq = <0x188940>; - rockchip,pvtm-ref-temp = <0x19>; - low-volt-mem-read-margin = <0x04>; - volt-mem-read-margin = <0xd0bd8 0x01 0xbac48 0x02 0xa4cb8 0x03 0x78d98 0x04>; - compatible = "operating-points-v2"; - rockchip,low-temp-min-volt = <0xb71b0>; - rockchip,grf = <0x26>; - nvmem-cell-names = "leakage\0opp-info\0specification_serial_number"; - rockchip,pvtm-voltage-sel = <0x00 0x63b 0x00 0x63c 0x64f 0x01 0x650 0x668 0x02 0x669 0x68b 0x03 0x68c 0x6ae 0x04 0x6af 0x6cf 0x05 0x6d0 0x6f0 0x06 0x6f1 0x270f 0x07>; - phandle = <0x16>; - rockchip,idle-threshold-freq = <0x21b100>; - rockchip,pvtm-temp-prop = <0x10e 0x10e>; - rockchip,temp-hysteresis = <0x1388>; - rockchip,high-temp = <0x14c08>; - rockchip,pvtm-pvtpll; - rockchip,supported-hw; - intermediate-threshold-freq = <0xf6180>; - rockchip,pvtm-volt = <0xb71b0>; - - opp-j-m-2016000000 { - opp-microvolt = <0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0>; - opp-microvolt-L6 = <0xd8acc 0xd8acc 0xe7ef0 0xd8acc 0xd8acc 0xe7ef0>; - opp-microvolt-L4 = <0xdec74 0xdec74 0xe7ef0 0xdec74 0xdec74 0xe7ef0>; - opp-microvolt-L2 = <0xe4e1c 0xe4e1c 0xe7ef0 0xe4e1c 0xe4e1c 0xe7ef0>; - opp-hz = <0x00 0x7829b800>; - opp-supported-hw = <0x06 0xffff>; - opp-microvolt-L7 = <0xd59f8 0xd59f8 0xe7ef0 0xd59f8 0xd59f8 0xe7ef0>; - opp-microvolt-L5 = <0xdbba0 0xdbba0 0xe7ef0 0xdbba0 0xdbba0 0xe7ef0>; - opp-microvolt-L3 = <0xe1d48 0xe1d48 0xe7ef0 0xe1d48 0xe1d48 0xe7ef0>; - clock-latency-ns = <0x9c40>; - opp-microvolt-L1 = <0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0>; - }; - - opp-1200000000 { - opp-microvolt = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; - opp-hz = <0x00 0x47868c00>; - opp-supported-hw = <0xf9 0xffff>; - clock-latency-ns = <0x9c40>; - }; - - opp-j-m-1416000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - opp-hz = <0x00 0x54667200>; - opp-microvolt-L0 = <0xba284 0xba284 0xe7ef0 0xba284 0xba284 0xe7ef0>; - opp-supported-hw = <0x06 0xffff>; - opp-suspend; - clock-latency-ns = <0x9c40>; - }; - - opp-1008000000 { - opp-microvolt = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; - opp-hz = <0x00 0x3c14dc00>; - opp-supported-hw = <0xf9 0xffff>; - clock-latency-ns = <0x9c40>; - }; - - opp-2256000000 { - opp-microvolt = <0xf4240 0xf4240 0xf4240 0xf4240 0xf4240 0xf4240>; - opp-hz = <0x00 0x8677d400>; - opp-supported-hw = <0xf9 0x13>; - clock-latency-ns = <0x9c40>; - }; - - opp-j-m-1200000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - opp-hz = <0x00 0x47868c00>; - opp-supported-hw = <0x06 0xffff>; - clock-latency-ns = <0x9c40>; - }; - - opp-j-m-1008000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - opp-hz = <0x00 0x3c14dc00>; - opp-supported-hw = <0x06 0xffff>; - clock-latency-ns = <0x9c40>; - }; - - opp-j-m-816000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - opp-hz = <0x00 0x30a32c00>; - opp-supported-hw = <0x06 0xffff>; - clock-latency-ns = <0x9c40>; - }; - - opp-2400000000 { - opp-microvolt = <0xf4240 0xf4240 0xf4240 0xf4240 0xf4240 0xf4240>; - opp-hz = <0x00 0x8f0d1800>; - opp-supported-hw = <0xf9 0x80>; - clock-latency-ns = <0x9c40>; - }; - - opp-1800000000 { - opp-microvolt = <0xcf850 0xcf850 0xf4240 0xcf850 0xcf850 0xf4240>; - opp-microvolt-L6 = <0xbd358 0xbd358 0xf4240 0xbd358 0xbd358 0xf4240>; - opp-microvolt-L4 = <0xc3500 0xc3500 0xf4240 0xc3500 0xc3500 0xf4240>; - opp-microvolt-L2 = <0xc96a8 0xc96a8 0xf4240 0xc96a8 0xc96a8 0xf4240>; - opp-hz = <0x00 0x6b49d200>; - opp-supported-hw = <0xf9 0xffff>; - opp-microvolt-L7 = <0xba284 0xba284 0xf4240 0xba284 0xba284 0xf4240>; - opp-microvolt-L5 = <0xc042c 0xc042c 0xf4240 0xc042c 0xc042c 0xf4240>; - opp-microvolt-L3 = <0xc65d4 0xc65d4 0xf4240 0xc65d4 0xc65d4 0xf4240>; - clock-latency-ns = <0x9c40>; - opp-microvolt-L1 = <0xcc77c 0xcc77c 0xf4240 0xcc77c 0xcc77c 0xf4240>; - }; - - opp-j-m-600000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - opp-hz = <0x00 0x23c34600>; - opp-supported-hw = <0x06 0xffff>; - clock-latency-ns = <0x9c40>; - }; - - opp-2208000000 { - opp-microvolt = <0xf116c 0xf116c 0xf4240 0xf116c 0xf116c 0xf4240>; - opp-microvolt-L6 = <0xe1d48 0xe1d48 0xf4240 0xe1d48 0xe1d48 0xf4240>; - opp-microvolt-L4 = <0xeafc4 0xeafc4 0xf4240 0xeafc4 0xeafc4 0xf4240>; - opp-microvolt-L2 = <0xeafc4 0xeafc4 0xf4240 0xeafc4 0xeafc4 0xf4240>; - opp-hz = <0x00 0x839b6800>; - opp-supported-hw = <0xf9 0xffff>; - opp-microvolt-L7 = <0xdec74 0xdec74 0xf4240 0xdec74 0xdec74 0xf4240>; - opp-microvolt-L5 = <0xe7ef0 0xe7ef0 0xf4240 0xe7ef0 0xe7ef0 0xf4240>; - opp-microvolt-L3 = <0xe7ef0 0xe7ef0 0xf4240 0xe7ef0 0xe7ef0 0xf4240>; - clock-latency-ns = <0x9c40>; - opp-microvolt-L1 = <0xee098 0xee098 0xf4240 0xee098 0xee098 0xf4240>; - }; - - opp-1608000000 { - opp-microvolt = <0xba284 0xba284 0xf4240 0xba284 0xba284 0xf4240>; - opp-microvolt-L6 = <0xaae60 0xaae60 0xf4240 0xaae60 0xaae60 0xf4240>; - opp-microvolt-L4 = <0xb1008 0xb1008 0xf4240 0xb1008 0xb1008 0xf4240>; - opp-microvolt-L2 = <0xb71b0 0xb71b0 0xf4240 0xb71b0 0xb71b0 0xf4240>; - opp-hz = <0x00 0x5fd82200>; - opp-supported-hw = <0xf9 0xffff>; - opp-microvolt-L7 = <0xaae60 0xaae60 0xf4240 0xaae60 0xaae60 0xf4240>; - opp-microvolt-L5 = <0xadf34 0xadf34 0xf4240 0xadf34 0xadf34 0xf4240>; - opp-microvolt-L3 = <0xb40dc 0xb40dc 0xf4240 0xb40dc 0xb40dc 0xf4240>; - clock-latency-ns = <0x9c40>; - }; - - opp-j-m-408000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - opp-hz = <0x00 0x18519600>; - opp-supported-hw = <0x06 0xffff>; - clock-latency-ns = <0x9c40>; - }; - - opp-j-m-1800000000 { - opp-microvolt = <0xd59f8 0xd59f8 0xe7ef0 0xd59f8 0xd59f8 0xe7ef0>; - opp-microvolt-L6 = <0xc3500 0xc3500 0xe7ef0 0xc3500 0xc3500 0xe7ef0>; - opp-microvolt-L4 = <0xc96a8 0xc96a8 0xe7ef0 0xc96a8 0xc96a8 0xe7ef0>; - opp-microvolt-L2 = <0xcf850 0xcf850 0xe7ef0 0xcf850 0xcf850 0xe7ef0>; - opp-hz = <0x00 0x6b49d200>; - opp-supported-hw = <0x06 0xffff>; - opp-microvolt-L7 = <0xc042c 0xc042c 0xe7ef0 0xc042c 0xc042c 0xe7ef0>; - opp-microvolt-L5 = <0xc65d4 0xc65d4 0xe7ef0 0xc65d4 0xc65d4 0xe7ef0>; - opp-microvolt-L3 = <0xcc77c 0xcc77c 0xe7ef0 0xcc77c 0xcc77c 0xe7ef0>; - clock-latency-ns = <0x9c40>; - opp-microvolt-L1 = <0xd2924 0xd2924 0xe7ef0 0xd2924 0xd2924 0xe7ef0>; - }; - - opp-2352000000 { - opp-microvolt = <0xf4240 0xf4240 0xf4240 0xf4240 0xf4240 0xf4240>; - opp-hz = <0x00 0x8c30ac00>; - opp-supported-hw = <0xf9 0x48>; - clock-latency-ns = <0x9c40>; - }; - - opp-816000000 { - opp-microvolt = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; - opp-hz = <0x00 0x30a32c00>; - opp-supported-hw = <0xf9 0xffff>; - clock-latency-ns = <0x9c40>; - }; - - opp-j-m-1608000000 { - opp-microvolt = <0xc042c 0xc042c 0xe7ef0 0xc042c 0xc042c 0xe7ef0>; - opp-microvolt-L6 = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - opp-microvolt-L4 = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - opp-microvolt-L2 = <0xbd358 0xbd358 0xe7ef0 0xbd358 0xbd358 0xe7ef0>; - opp-hz = <0x00 0x5fd82200>; - opp-supported-hw = <0x06 0xffff>; - opp-microvolt-L7 = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - opp-microvolt-L5 = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - opp-microvolt-L3 = <0xba284 0xba284 0xe7ef0 0xba284 0xba284 0xe7ef0>; - clock-latency-ns = <0x9c40>; - }; - - opp-600000000 { - opp-microvolt = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; - opp-hz = <0x00 0x23c34600>; - opp-supported-hw = <0xf9 0xffff>; - clock-latency-ns = <0x9c40>; - }; - - opp-2016000000 { - opp-microvolt = <0xe1d48 0xe1d48 0xf4240 0xe1d48 0xe1d48 0xf4240>; - opp-microvolt-L6 = <0xcf850 0xcf850 0xf4240 0xcf850 0xcf850 0xf4240>; - opp-microvolt-L4 = <0xd59f8 0xd59f8 0xf4240 0xd59f8 0xd59f8 0xf4240>; - opp-microvolt-L2 = <0xdbba0 0xdbba0 0xf4240 0xdbba0 0xdbba0 0xf4240>; - opp-hz = <0x00 0x7829b800>; - opp-supported-hw = <0xf9 0xffff>; - opp-microvolt-L7 = <0xcc77c 0xcc77c 0xf4240 0xcc77c 0xcc77c 0xf4240>; - opp-microvolt-L5 = <0xd2924 0xd2924 0xf4240 0xd2924 0xd2924 0xf4240>; - opp-microvolt-L3 = <0xd8acc 0xd8acc 0xf4240 0xd8acc 0xd8acc 0xf4240>; - clock-latency-ns = <0x9c40>; - opp-microvolt-L1 = <0xdec74 0xdec74 0xf4240 0xdec74 0xdec74 0xf4240>; - }; - - opp-1416000000 { - opp-microvolt = <0xb1008 0xb1008 0xf4240 0xb1008 0xb1008 0xf4240>; - opp-microvolt-L6 = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; - opp-microvolt-L4 = <0xaae60 0xaae60 0xf4240 0xaae60 0xaae60 0xf4240>; - opp-microvolt-L2 = <0xadf34 0xadf34 0xf4240 0xadf34 0xadf34 0xf4240>; - opp-hz = <0x00 0x54667200>; - opp-supported-hw = <0xf9 0xffff>; - opp-microvolt-L7 = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; - opp-microvolt-L5 = <0xa7d8c 0xa7d8c 0xf4240 0xa7d8c 0xa7d8c 0xf4240>; - opp-microvolt-L3 = <0xaae60 0xaae60 0xf4240 0xaae60 0xaae60 0xf4240>; - clock-latency-ns = <0x9c40>; - }; - - opp-408000000 { - opp-microvolt = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; - opp-hz = <0x00 0x18519600>; - opp-supported-hw = <0xf9 0xffff>; - opp-suspend; - clock-latency-ns = <0x9c40>; - }; - - opp-2304000000 { - opp-microvolt = <0xf4240 0xf4240 0xf4240 0xf4240 0xf4240 0xf4240>; - opp-hz = <0x00 0x89544000>; - opp-supported-hw = <0xf9 0x24>; - clock-latency-ns = <0x9c40>; - }; - }; - - mmc@fe2d0000 { - power-domains = <0x60 0x25>; - fifo-depth = <0x100>; - pinctrl-names = "default"; - pinctrl-0 = <0x119>; - clock-names = "biu\0ciu\0ciu-drive\0ciu-sample"; - interrupts = <0x00 0xcc 0x04>; - clocks = <0x02 0x199 0x02 0x19a 0x02 0x2c0 0x02 0x2c1>; - compatible = "rockchip,rk3588-dw-mshc\0rockchip,rk3288-dw-mshc"; - status = "disabled"; - reg = <0x00 0xfe2d0000 0x00 0x4000>; - phandle = <0x294>; - max-frequency = <0xbebc200>; - }; - - rkcif-mipi-lvds-sditf-vir3 { - compatible = "rockchip,rkcif-sditf"; - status = "disabled"; - rockchip,cif = <0x52>; - phandle = <0x22e>; - }; - - serial@feb90000 { - reg-io-width = <0x04>; - pinctrl-names = "default"; - pinctrl-0 = <0x165>; - clock-names = "baudclk\0apb_pclk"; - interrupts = <0x00 0x151 0x04>; - clocks = <0x02 0xcb 0x02 0xb0>; - compatible = "rockchip,rk3588-uart\0snps,dw-apb-uart"; - status = "okay"; - reg = <0x00 0xfeb90000 0x00 0x100>; - phandle = <0x2ce>; - dmas = <0xf1 0x0d 0xf1 0x0e>; - reg-shift = <0x02>; - }; - - i2s@fddf8000 { - power-domains = <0x60 0x1a>; - clock-names = "mclk_tx\0mclk_rx\0hclk"; - assigned-clocks = <0x02 0x239>; - assigned-clock-parents = <0x02 0x05>; - rockchip,capture-only; - resets = <0x02 0x3c3>; - interrupts = <0x00 0xbb 0x04>; - clocks = <0x02 0x23c 0x02 0x23c 0x02 0x238>; - dma-names = "rx"; - #sound-dai-cells = <0x00>; - compatible = "rockchip,rk3588-i2s-tdm"; - status = "okay"; - reg = <0x00 0xfddf8000 0x00 0x1000>; - phandle = <0x1ec>; - dmas = <0xf2 0x15>; - reset-names = "rx-m"; - }; - - phy@fee20000 { - rockchip,pipe-grf = <0x76>; - clock-names = "refclk\0apbclk\0phpclk"; - assigned-clocks = <0x02 0x2bf>; - assigned-clock-rates = <0x5f5e100>; - resets = <0x02 0x20007 0x02 0x4d8>; - clocks = <0x02 0x2bf 0x02 0x187 0x02 0x166>; - #phy-cells = <0x01>; - compatible = "rockchip,rk3588-naneng-combphy"; - status = "disabled"; - rockchip,pipe-phy-grf = <0x195>; - reg = <0x00 0xfee20000 0x00 0x100>; - phandle = <0x70>; - reset-names = "combphy-apb\0combphy"; - rockchip,pcie1ln-sel-bits = <0x100 0x01 0x01 0x00>; - }; - - csi2-dphy0-hw@fedc0000 { - clock-names = "pclk"; - resets = <0x02 0x17 0x02 0x16>; - clocks = <0x02 0x10c>; - compatible = "rockchip,rk3588-csi2-dphy-hw"; - status = "okay"; - rockchip,grf = <0x192>; - reg = <0x00 0xfedc0000 0x00 0x8000>; - phandle = <0x2d>; - reset-names = "srst_csiphy0\0srst_p_csiphy0"; - rockchip,sys_grf = <0xc8>; - }; - - can@fea70000 { - pinctrl-names = "default"; - pinctrl-0 = <0x147>; - clock-names = "baudclk\0apb_pclk"; - resets = <0x02 0xbd 0x02 0xbc>; - interrupts = <0x00 0x157 0x04>; - clocks = <0x02 0x74 0x02 0x73>; - compatible = "rockchip,can-2.0"; - status = "disabled"; - tx-fifo-depth = <0x01>; - rx-fifo-depth = <0x06>; - reg = <0x00 0xfea70000 0x00 0x1000>; - phandle = <0x2a2>; - reset-names = "can\0can-apb"; - }; - - mailbox@fec60000 { - clock-names = "pclk_mailbox"; - interrupts = <0x00 0x3d 0x04 0x00 0x3e 0x04 0x00 0x3f 0x04 0x00 0x40 0x04>; - clocks = <0x02 0x4c>; - #mbox-cells = <0x01>; - compatible = "rockchip,rk3588-mailbox\0rockchip,rk3368-mailbox"; - status = "disabled"; - reg = <0x00 0xfec60000 0x00 0x200>; - phandle = <0x2dd>; - }; - - usbdrd3_1 { - #address-cells = <0x02>; - clock-names = "ref\0suspend\0bus"; - clocks = <0x02 0x1a6 0x02 0x1a5 0x02 0x1a4>; - #size-cells = <0x02>; - compatible = "rockchip,rk3588-dwc3\0rockchip,rk3399-dwc3"; - ranges; - status = "okay"; - phandle = <0x47a>; - - usb@fc400000 { - power-domains = <0x60 0x1f>; - snps,dis-u1-entry-quirk; - snps,dis_enblslpm_quirk; - phy-names = "usb2-phy\0usb3-phy"; - snps,dis-u2-freeclk-exists-quirk; - phy_type = "utmi_wide"; - resets = <0x02 0x2a7>; - interrupts = <0x00 0xdd 0x04>; - snps,dis-u2-entry-quirk; - compatible = "snps,dwc3"; - snps,parkmode-disable-hs-quirk; - snps,dis-del-phy-power-chg-quirk; - status = "okay"; - snps,parkmode-disable-ss-quirk; - phys = <0x1a3 0x1a4>; - reg = <0x00 0xfc400000 0x00 0x400000>; - phandle = <0x47b>; - dr_mode = "host"; - reset-names = "usb3-otg"; - snps,dis-tx-ipgap-linecheck-quirk; - }; - }; - - sata@fe210000 { - phy-names = "sata-phy"; - clock-names = "sata\0pmalive\0rxoob\0ref\0asic"; - interrupts = <0x00 0x111 0x04>; - clocks = <0x02 0x171 0x02 0x16e 0x02 0x174 0x02 0x163 0x02 0x17e>; - compatible = "rockchip,rk-ahci\0snps,dwc-ahci"; - status = "okay"; - interrupt-names = "hostc"; - phys = <0x108 0x01>; - reg = <0x00 0xfe210000 0x00 0x1000>; - phandle = <0x290>; - ports-implemented = <0x01>; - }; - - leds { - compatible = "gpio-leds"; - status = "okay"; - phandle = <0x497>; - - user { - linux,default-trigger = "ir-user-click"; - label = ":user"; - default-state = "off"; - phandle = <0x499>; - gpios = <0x182 0x03 0x00>; - }; - - power { - linux,default-trigger = "ir-power-click"; - label = ":power"; - default-state = "on"; - status = "disabled"; - phandle = <0x498>; - gpios = <0x7b 0x15 0x00>; - }; - }; - - rkcif-mipi-lvds5-sditf-vir3 { - compatible = "rockchip,rkcif-sditf"; - status = "disabled"; - rockchip,cif = <0x1a2>; - phandle = <0x479>; - }; - - qos@fdf80000 { - compatible = "syscon"; - reg = <0x00 0xfdf80000 0x00 0x20>; - phandle = <0x9f>; - }; - - spdif-tx@fdde0000 { - power-domains = <0x60 0x1a>; - clock-names = "mclk\0hclk"; - assigned-clocks = <0x02 0x254>; - assigned-clock-parents = <0x02 0x05>; - interrupts = <0x00 0xc4 0x04>; - clocks = <0x02 0x257 0x02 0x253>; - dma-names = "tx"; - #sound-dai-cells = <0x00>; - compatible = "rockchip,rk3588-spdif\0rockchip,rk3568-spdif"; - status = "disabled"; - reg = <0x00 0xfdde0000 0x00 0x1000>; - phandle = <0x27e>; - dmas = <0xf1 0x07>; - }; - - qos@fdf35000 { - compatible = "syscon"; - reg = <0x00 0xfdf35000 0x00 0x20>; - phandle = <0x87>; - }; - - psci { - method = "smc"; - compatible = "arm,psci-1.0"; - }; - - rkcif-mipi-lvds { - iommus = <0x50>; - rockchip,hw = <0x4f>; - compatible = "rockchip,rkcif-mipi-lvds"; - status = "disabled"; - phandle = <0x52>; - }; - - rga@fdb80000 { - power-domains = <0x60 0x15>; - clock-names = "aclk_rga2\0hclk_rga2\0clk_rga2"; - interrupts = <0x00 0x74 0x04>; - clocks = <0x02 0x1b7 0x02 0x1b6 0x02 0x1b8>; - compatible = "rockchip,rga2_core0"; - status = "okay"; - interrupt-names = "rga2_irq"; - reg = <0x00 0xfdb80000 0x00 0x1000>; - phandle = <0x26b>; - }; - - qos@fdf66800 { - compatible = "syscon"; - reg = <0x00 0xfdf66800 0x00 0x20>; - phandle = <0x97>; - }; - - spi@feb10000 { - pinctrl-names = "default"; - #address-cells = <0x01>; - num-cs = <0x02>; - pinctrl-0 = <0x151 0x152 0x153>; - clock-names = "spiclk\0apb_pclk"; - interrupts = <0x00 0x147 0x04>; - clocks = <0x02 0xa4 0x02 0x9f>; - #size-cells = <0x00>; - dma-names = "tx\0rx"; - compatible = "rockchip,rk3066-spi"; - status = "disabled"; - reg = <0x00 0xfeb10000 0x00 0x1000>; - phandle = <0x2ac>; - dmas = <0x7c 0x10 0x7c 0x11>; - }; - - rkcif-mipi-lvds4-sditf { - compatible = "rockchip,rkcif-sditf"; - status = "disabled"; - rockchip,cif = <0x1a1>; - phandle = <0x472>; - }; - - hdmi@fdea0000 { - power-domains = <0x60 0x1a>; - reg-io-width = <0x04>; - pinctrl-names = "default"; - phy-names = "hdmi"; - pinctrl-0 = <0x1a8 0x1a9 0x1aa 0x1ab>; - clock-names = "pclk\0hpd\0earc\0hdmitx_ref\0aud\0dclk_vp0\0dclk_vp1\0dclk_vp2\0dclk_vp3\0hclk_vo1\0link_clk"; - resets = <0x02 0x3d7 0x02 0x49d>; - interrupts = <0x00 0xad 0x04 0x00 0xae 0x04 0x00 0xaf 0x04 0x00 0xb0 0x04 0x00 0x169 0x04>; - clocks = <0x02 0x224 0x02 0x266 0x02 0x225 0x02 0x226 0x02 0x24c 0x02 0x274 0x02 0x275 0x02 0x276 0x02 0x277 0x05 0x36>; - #sound-dai-cells = <0x00>; - compatible = "rockchip,rk3588-dw-hdmi"; - status = "disabled"; - rockchip,grf = <0xc8>; - phys = <0x1ac>; - reg = <0x00 0xfdea0000 0x00 0x10000 0x00 0xfdeb0000 0x00 0x10000>; - phandle = <0x1e1>; - reset-names = "ref\0hdp"; - rockchip,vo1_grf = <0xd8>; - - ports { - #address-cells = <0x01>; - #size-cells = <0x00>; - - port@0 { - #address-cells = <0x01>; - #size-cells = <0x00>; - reg = <0x00>; - phandle = <0x482>; - - endpoint@1 { - remote-endpoint = <0x3f>; - status = "disabled"; - reg = <0x01>; - phandle = <0xe5>; - }; - - endpoint@2 { - remote-endpoint = <0x1ae>; - status = "disabled"; - reg = <0x02>; - phandle = <0xed>; - }; - - endpoint@0 { - remote-endpoint = <0x1ad>; - status = "disabled"; - reg = <0x00>; - phandle = <0xdf>; - }; - }; - }; - }; - - pcie@fe180000 { - #address-cells = <0x03>; - rockchip,pipe-grf = <0x76>; - phy-names = "pcie-phy"; - bus-range = <0x30 0x3f>; - clock-names = "aclk_mst\0aclk_slv\0aclk_dbi\0pclk\0aux\0pipe"; - reg-names = "pcie-apb\0pcie-dbi"; - num-ob-windows = <0x08>; - resets = <0x02 0x210 0x02 0x21f>; - interrupts = <0x00 0xf8 0x04 0x00 0xf7 0x04 0x00 0xf6 0x04 0x00 0xf5 0x04 0x00 0xf4 0x04>; - clocks = <0x02 0x151 0x02 0x156 0x02 0x14c 0x02 0x15c 0x02 0x161 0x02 0x2c5>; - interrupt-map = <0x00 0x00 0x00 0x01 0x105 0x00 0x00 0x00 0x00 0x02 0x105 0x01 0x00 0x00 0x00 0x03 0x105 0x02 0x00 0x00 0x00 0x04 0x105 0x03>; - #size-cells = <0x02>; - max-link-speed = <0x02>; - device_type = "pci"; - interrupt-map-mask = <0x00 0x00 0x00 0x07>; - num-lanes = <0x01>; - compatible = "rockchip,rk3588-pcie\0snps,dw-pcie"; - ranges = <0x800 0x00 0xf3000000 0x00 0xf3000000 0x00 0x100000 0x81000000 0x00 0xf3100000 0x00 0xf3100000 0x00 0x100000 0x82000000 0x00 0xf3200000 0x00 0xf3200000 0x00 0xe00000 0xc3000000 0x09 0xc0000000 0x09 0xc0000000 0x00 0x40000000>; - msi-map = <0x3000 0x106 0x3000 0x1000>; - #interrupt-cells = <0x01>; - status = "disabled"; - interrupt-names = "sys\0pmc\0msg\0legacy\0err"; - phys = <0x70 0x02>; - num-viewport = <0x04>; - reg = <0x00 0xfe180000 0x00 0x10000 0x0a 0x40c00000 0x00 0x400000>; - linux,pci-domain = <0x03>; - phandle = <0x28c>; - reset-names = "pcie\0periph"; - num-ib-windows = <0x08>; - - legacy-interrupt-controller { - #address-cells = <0x00>; - interrupts = <0x00 0xf5 0x01>; - interrupt-parent = <0x01>; - #interrupt-cells = <0x01>; - phandle = <0x105>; - interrupt-controller; - }; - }; - - i2s@fe480000 { - pinctrl-names = "default"; - pinctrl-0 = <0x120 0x121 0x122 0x123 0x124 0x125 0x126 0x127 0x128 0x129>; - clock-names = "mclk_tx\0mclk_rx\0hclk"; - resets = <0x02 0xc002a 0x02 0xc002d>; - interrupts = <0x00 0xb5 0x04>; - clocks = <0x02 0x28c 0x02 0x290 0x02 0x288>; - dma-names = "tx\0rx"; - #sound-dai-cells = <0x00>; - compatible = "rockchip,rk3588-i2s-tdm"; - status = "disabled"; - reg = <0x00 0xfe480000 0x00 0x1000>; - phandle = <0x1d1>; - dmas = <0x7c 0x02 0x7c 0x03>; - reset-names = "tx-m\0rx-m"; - rockchip,clk-trcm = <0x01>; - }; - - syscon@fd5c0000 { - compatible = "rockchip,pipe-phy-grf\0syscon"; - reg = <0x00 0xfd5c0000 0x00 0x100>; - phandle = <0x1cb>; - }; - - i2c@feab0000 { - pinctrl-names = "default"; - #address-cells = <0x01>; - pinctrl-0 = <0x14a>; - clock-names = "i2c\0pclk"; - resets = <0x02 0xb2 0x02 0xaa>; - interrupts = <0x00 0x140 0x04>; - clocks = <0x02 0x8f 0x02 0x87>; - #size-cells = <0x00>; - compatible = "rockchip,rk3588-i2c\0rockchip,rk3399-i2c"; - status = "okay"; - reg = <0x00 0xfeab0000 0x00 0x1000>; - phandle = <0x2a6>; - reset-names = "i2c\0apb"; - - gpio@21 { - gpio-controller; - gpio-group-num = <0xc8>; - compatible = "nxp,pca9555"; - status = "okay"; - reg = <0x21>; - phandle = <0x182>; - #gpio-cells = <0x02>; - }; - }; - - iommu@fdcb7f00 { - power-domains = <0x60 0x1b>; - clock-names = "aclk\0iface"; - interrupts = <0x00 0x84 0x04>; - clocks = <0x02 0x1de 0x02 0x1df>; - #iommu-cells = <0x00>; - compatible = "rockchip,iommu-v2"; - rockchip,disable-mmu-reset; - status = "okay"; - interrupt-names = "isp0_mmu"; - reg = <0x00 0xfdcb7f00 0x00 0x100>; - phandle = <0xd0>; - }; - - qos@fdf3e600 { - compatible = "syscon"; - reg = <0x00 0xfdf3e600 0x00 0x20>; - phandle = <0xae>; - }; - - syscon@fd5b8000 { - compatible = "rockchip,pcie30-phy-grf\0syscon"; - reg = <0x00 0xfd5b8000 0x00 0x10000>; - phandle = <0x1cc>; - }; - - qos@fdf81200 { - compatible = "syscon"; - reg = <0x00 0xfdf81200 0x00 0x20>; - phandle = <0xa1>; - }; - - mipi5-csi2-hw@fdd60000 { - clock-names = "pclk_csi2host"; - reg-names = "csihost_regs"; - resets = <0x02 0x329>; - interrupts = <0x00 0x99 0x04 0x00 0x9a 0x04>; - clocks = <0x02 0x1d4>; - compatible = "rockchip,rk3588-mipi-csi2-hw"; - status = "okay"; - interrupt-names = "csi-intr1\0csi-intr2"; - reg = <0x00 0xfdd60000 0x00 0x10000>; - phandle = <0x4c>; - reset-names = "srst_csihost_p"; - }; - - qos@fdf72000 { - compatible = "syscon"; - reg = <0x00 0xfdf72000 0x00 0x20>; - phandle = <0x82>; - }; - - timer@feae0000 { - clock-names = "pclk\0timer"; - interrupts = <0x00 0x121 0x04>; - clocks = <0x02 0x5c 0x02 0x5f>; - compatible = "rockchip,rk3588-timer\0rockchip,rk3288-timer"; - reg = <0x00 0xfeae0000 0x00 0x20>; - phandle = <0x2a9>; - }; - - rkcif-mipi-lvds-sditf-vir1 { - compatible = "rockchip,rkcif-sditf"; - status = "disabled"; - rockchip,cif = <0x52>; - phandle = <0x22c>; - }; - - syscon@fd5b5000 { - compatible = "rockchip,mipi-dphy-grf\0syscon"; - reg = <0x00 0xfd5b5000 0x00 0x1000>; - phandle = <0x193>; - }; - - i2c@fec90000 { - pinctrl-names = "default"; - #address-cells = <0x01>; - pinctrl-0 = <0x185>; - clock-names = "i2c\0pclk"; - resets = <0x02 0xb6 0x02 0xae>; - interrupts = <0x00 0x144 0x04>; - clocks = <0x02 0x93 0x02 0x8b>; - #size-cells = <0x00>; - compatible = "rockchip,rk3588-i2c\0rockchip,rk3399-i2c"; - status = "disabled"; - reg = <0x00 0xfec90000 0x00 0x1000>; - phandle = <0x2e4>; - reset-names = "i2c\0apb"; - }; - - avsd-plus@fdb51000 { - power-domains = <0x60 0x15>; - iommus = <0xb7>; - clock-names = "aclk_vcodec\0hclk_vcodec"; - assigned-clocks = <0x02 0x1c0>; - rockchip,normal-rates = <0x2367b880 0x00>; - assigned-clock-rates = <0x2367b880>; - resets = <0x02 0x2c8 0x02 0x2c9>; - interrupts = <0x00 0x77 0x04>; - clocks = <0x02 0x1c0 0x02 0x1c1>; - rockchip,srv = <0xb8>; - rockchip,taskqueue-node = <0x00>; - rockchip,disable-auto-freq; - compatible = "rockchip,avs-plus-decoder"; - rockchip,resetgroup-node = <0x00>; - status = "disabled"; - interrupt-names = "irq_avsd"; - rockchip,skip-pmu-idle-request; - reg = <0x00 0xfdb51000 0x00 0x200>; - phandle = <0x268>; - reset-names = "shared_video_a\0shared_video_h"; - }; - - dp1-sound { - rockchip,jack-det; - rockchip,cpu = <0x1e2>; - rockchip,codec = <0x1e3 0x01>; - rockchip,card-name = "rockchip,dp1"; - compatible = "rockchip,hdmi"; - status = "disabled"; - phandle = <0x4a9>; - rockchip,mclk-fs = <0x200>; - }; - - mipi1-csi2-hw@fdd20000 { - clock-names = "pclk_csi2host"; - reg-names = "csihost_regs"; - resets = <0x02 0x325>; - interrupts = <0x00 0x91 0x04 0x00 0x92 0x04>; - clocks = <0x02 0x1d0>; - compatible = "rockchip,rk3588-mipi-csi2-hw"; - status = "okay"; - interrupt-names = "csi-intr1\0csi-intr2"; - reg = <0x00 0xfdd20000 0x00 0x10000>; - phandle = <0x48>; - reset-names = "srst_csihost_p"; - }; - - iep@fdbb0000 { - power-domains = <0x60 0x15>; - iommus = <0xc1>; - clock-names = "aclk\0hclk\0sclk"; - assigned-clocks = <0x02 0x1aa>; - rockchip,normal-rates = <0x2367b880 0x00>; - assigned-clock-rates = <0x2367b880>; - resets = <0x02 0x2d5 0x02 0x2d4 0x02 0x2d6>; - interrupts = <0x00 0x75 0x04>; - clocks = <0x02 0x1aa 0x02 0x1a9 0x02 0x1ab>; - rockchip,srv = <0xb8>; - rockchip,taskqueue-node = <0x06>; - rockchip,disable-auto-freq; - compatible = "rockchip,iep-v2"; - status = "okay"; - interrupt-names = "irq_iep"; - rockchip,skip-pmu-idle-request; - reg = <0x00 0xfdbb0000 0x00 0x500>; - phandle = <0x271>; - reset-names = "rst_a\0rst_h\0rst_s"; - }; - - dsi@fde20000 { - power-domains = <0x60 0x18>; - #address-cells = <0x01>; - phy-names = "dcphy"; - clock-names = "pclk\0sys_clk"; - resets = <0x02 0x354>; - interrupts = <0x00 0xa7 0x04>; - clocks = <0x02 0x278 0x02 0x27a>; - #size-cells = <0x00>; - compatible = "rockchip,rk3588-mipi-dsi2"; - status = "disabled"; - rockchip,grf = <0xd7>; - phys = <0x2f>; - reg = <0x00 0xfde20000 0x00 0x10000>; - phandle = <0x281>; - reset-names = "apb"; - - ports { - #address-cells = <0x01>; - #size-cells = <0x00>; - - port@0 { - #address-cells = <0x01>; - #size-cells = <0x00>; - reg = <0x00>; - phandle = <0x282>; - - endpoint@1 { - remote-endpoint = <0x39>; - status = "disabled"; - reg = <0x01>; - phandle = <0xee>; - }; - - endpoint@0 { - remote-endpoint = <0xf3>; - status = "disabled"; - reg = <0x00>; - phandle = <0xe9>; - }; - }; - }; - }; - - rkcif-mipi-lvds5-sditf-vir1 { - compatible = "rockchip,rkcif-sditf"; - status = "disabled"; - rockchip,cif = <0x1a2>; - phandle = <0x477>; - }; - - edp@fded0000 { - power-domains = <0x60 0x1a>; - phy-names = "dp"; - clock-names = "dp\0pclk\0spdif\0hclk"; - resets = <0x02 0x3e4 0x02 0x3e3>; - interrupts = <0x00 0xa4 0x04>; - clocks = <0x02 0x214 0x02 0x213 0x02 0x215 0x05>; - compatible = "rockchip,rk3588-edp"; - status = "disabled"; - rockchip,grf = <0xd8>; - phys = <0x1af>; - reg = <0x00 0xfded0000 0x00 0x1000>; - phandle = <0x483>; - reset-names = "dp\0apb"; - - ports { - #address-cells = <0x01>; - #size-cells = <0x00>; - - port@0 { - #address-cells = <0x01>; - #size-cells = <0x00>; - reg = <0x00>; - - endpoint@1 { - remote-endpoint = <0x1b1>; - status = "disabled"; - reg = <0x01>; - phandle = <0xe4>; - }; - - endpoint@2 { - remote-endpoint = <0x1b2>; - status = "disabled"; - reg = <0x02>; - phandle = <0xec>; - }; - - endpoint@0 { - remote-endpoint = <0x1b0>; - status = "disabled"; - reg = <0x00>; - phandle = <0xde>; - }; - }; - - port@1 { - reg = <0x01>; - - endpoint { - phandle = <0x484>; - }; - }; - }; - }; - - qos@fdf67000 { - compatible = "syscon"; - reg = <0x00 0xfdf67000 0x00 0x20>; - phandle = <0x9c>; - }; - - qos@fdf64000 { - compatible = "syscon"; - reg = <0x00 0xfdf64000 0x00 0x20>; - phandle = <0x9b>; - }; - - npu-opp-table { - rockchip,pvtm-offset = <0x50>; - rockchip,pvtm-sample-time = <0x44c>; - rockchip,init-freq = <0xf4240>; - rockchip,pvtm-hw = <0x06>; - nvmem-cells = <0xb4 0xb5 0x21>; - rockchip,low-temp = <0x2710>; - rockchip,pvtm-voltage-sel-hw = <0x00 0x31f 0x00 0x320 0x333 0x01 0x334 0x34c 0x02 0x34d 0x365 0x03 0x366 0x37e 0x04 0x37f 0x270f 0x05>; - rockchip,pvtm-thermal-zone = "npu-thermal"; - rockchip,high-temp-max-freq = "\0\f5"; - rockchip,opp-clocks = <0x02 0x12a 0x02 0x12f>; - rockchip,pvtm-freq = "\0\f5"; - rockchip,pvtm-ref-temp = <0x19>; - low-volt-mem-read-margin = <0x04>; - volt-mem-read-margin = <0xd0bd8 0x01 0xbac48 0x02 0xa4cb8 0x03 0x78d98 0x04>; - compatible = "operating-points-v2"; - rockchip,low-temp-min-volt = <0xb71b0>; - rockchip,grf = <0xb6>; - nvmem-cell-names = "leakage\0opp-info\0specification_serial_number"; - rockchip,pvtm-voltage-sel = <0x00 0x32f 0x00 0x330 0x343 0x01 0x344 0x35c 0x02 0x35d 0x375 0x03 0x376 0x38e 0x04 0x38f 0x270f 0x05>; - phandle = <0xb1>; - rockchip,pvtm-temp-prop = <0xffffff8f 0xffffff8f>; - rockchip,temp-hysteresis = <0x1388>; - rockchip,high-temp = <0x14c08>; - rockchip,pvtm-pvtpll; - rockchip,supported-hw; - intermediate-threshold-freq = <0x7a120>; - rockchip,pvtm-volt = <0xb71b0>; - - opp-j-m-700000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; - opp-hz = <0x00 0x29b92700>; - opp-supported-hw = <0x06 0xffff>; - }; - - opp-300000000 { - opp-microvolt = <0xaae60 0xaae60 0xcf850 0xaae60 0xaae60 0xcf850>; - opp-microvolt-L4 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; - opp-microvolt-L2 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; - opp-hz = <0x00 0x11e1a300>; - opp-supported-hw = <0xf9 0xffff>; - opp-microvolt-L5 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; - opp-microvolt-L3 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; - opp-microvolt-L1 = <0xa7d8c 0xa7d8c 0xcf850 0xa7d8c 0xa7d8c 0xcf850>; - }; - - opp-500000000 { - opp-microvolt = <0xaae60 0xaae60 0xcf850 0xaae60 0xaae60 0xcf850>; - opp-microvolt-L4 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; - opp-microvolt-L2 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; - opp-hz = <0x00 0x1dcd6500>; - opp-supported-hw = <0xf9 0xffff>; - opp-microvolt-L5 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; - opp-microvolt-L3 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; - opp-microvolt-L1 = <0xa7d8c 0xa7d8c 0xcf850 0xa7d8c 0xa7d8c 0xcf850>; - }; - - opp-j-m-400000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; - opp-hz = <0x00 0x17d78400>; - opp-supported-hw = <0x06 0xffff>; - }; - - opp-700000000 { - opp-microvolt = <0xaae60 0xaae60 0xcf850 0xaae60 0xaae60 0xcf850>; - opp-microvolt-L4 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; - opp-hz = <0x00 0x29b92700>; - opp-supported-hw = <0xf9 0xffff>; - opp-microvolt-L5 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; - opp-microvolt-L3 = <0xa7d8c 0xa7d8c 0xcf850 0xa7d8c 0xa7d8c 0xcf850>; - }; - - opp-j-m-950000000 { - opp-microvolt = <0xcc77c 0xcc77c 0xcf850 0xcc77c 0xcc77c 0xcf850>; - opp-microvolt-L4 = <0xc042c 0xc042c 0xcf850 0xc042c 0xc042c 0xcf850>; - opp-microvolt-L2 = <0xc65d4 0xc65d4 0xcf850 0xc65d4 0xc65d4 0xcf850>; - opp-hz = <0x00 0x389fd980>; - opp-supported-hw = <0x06 0xffff>; - opp-microvolt-L5 = <0xbd358 0xbd358 0xcf850 0xbd358 0xbd358 0xcf850>; - opp-microvolt-L3 = <0xc3500 0xc3500 0xcf850 0xc3500 0xc3500 0xcf850>; - opp-microvolt-L1 = <0xc96a8 0xc96a8 0xcf850 0xc96a8 0xc96a8 0xcf850>; - }; - - opp-j-m-600000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; - opp-hz = <0x00 0x23c34600>; - opp-supported-hw = <0x06 0xffff>; - }; - - opp-900000000 { - opp-microvolt = <0xc3500 0xc3500 0xcf850 0xc3500 0xc3500 0xcf850>; - opp-microvolt-L4 = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; - opp-microvolt-L2 = <0xbd358 0xbd358 0xcf850 0xbd358 0xbd358 0xcf850>; - opp-hz = <0x00 0x35a4e900>; - opp-supported-hw = <0xf9 0xffff>; - opp-microvolt-L5 = <0xb40dc 0xb40dc 0xcf850 0xb40dc 0xb40dc 0xcf850>; - opp-microvolt-L3 = <0xba284 0xba284 0xcf850 0xba284 0xba284 0xcf850>; - opp-microvolt-L1 = <0xc042c 0xc042c 0xcf850 0xc042c 0xc042c 0xcf850>; - }; - - opp-j-m-800000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; - opp-hz = <0x00 0x2faf0800>; - opp-supported-hw = <0x06 0xffff>; - }; - - opp-400000000 { - opp-microvolt = <0xaae60 0xaae60 0xcf850 0xaae60 0xaae60 0xcf850>; - opp-microvolt-L4 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; - opp-microvolt-L2 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; - opp-hz = <0x00 0x17d78400>; - opp-supported-hw = <0xf9 0xffff>; - opp-microvolt-L5 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; - opp-microvolt-L3 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; - opp-microvolt-L1 = <0xa7d8c 0xa7d8c 0xcf850 0xa7d8c 0xa7d8c 0xcf850>; - }; - - opp-j-m-300000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; - opp-hz = <0x00 0x11e1a300>; - opp-supported-hw = <0x06 0xffff>; - }; - - opp-600000000 { - opp-microvolt = <0xaae60 0xaae60 0xcf850 0xaae60 0xaae60 0xcf850>; - opp-microvolt-L4 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; - opp-microvolt-L2 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; - opp-hz = <0x00 0x23c34600>; - opp-supported-hw = <0xf9 0xffff>; - opp-microvolt-L5 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; - opp-microvolt-L3 = <0xa4cb8 0xa4cb8 0xcf850 0xa4cb8 0xa4cb8 0xcf850>; - opp-microvolt-L1 = <0xa7d8c 0xa7d8c 0xcf850 0xa7d8c 0xa7d8c 0xcf850>; - }; - - opp-1000000000 { - opp-microvolt = <0xcf850 0xcf850 0xcf850 0xcf850 0xcf850 0xcf850>; - opp-microvolt-L4 = <0xc3500 0xc3500 0xcf850 0xc3500 0xc3500 0xcf850>; - opp-microvolt-L2 = <0xc96a8 0xc96a8 0xcf850 0xc96a8 0xc96a8 0xcf850>; - opp-hz = <0x00 0x3b9aca00>; - opp-supported-hw = <0xf9 0xffff>; - opp-microvolt-L5 = <0xc042c 0xc042c 0xcf850 0xc042c 0xc042c 0xcf850>; - opp-microvolt-L3 = <0xc65d4 0xc65d4 0xcf850 0xc65d4 0xc65d4 0xcf850>; - opp-microvolt-L1 = <0xcc77c 0xcc77c 0xcf850 0xcc77c 0xcc77c 0xcf850>; - }; - - opp-j-m-500000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; - opp-hz = <0x00 0x1dcd6500>; - opp-supported-hw = <0x06 0xffff>; - }; - - opp-800000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; - opp-microvolt-L4 = <0xadf34 0xadf34 0xcf850 0xadf34 0xadf34 0xcf850>; - opp-microvolt-L2 = <0xb40dc 0xb40dc 0xcf850 0xb40dc 0xb40dc 0xcf850>; - opp-hz = <0x00 0x2faf0800>; - opp-supported-hw = <0xf9 0xffff>; - opp-microvolt-L5 = <0xaae60 0xaae60 0xcf850 0xaae60 0xaae60 0xcf850>; - opp-microvolt-L3 = <0xb1008 0xb1008 0xcf850 0xb1008 0xb1008 0xcf850>; - }; - }; - - syscon@fd590000 { - compatible = "rockchip,rk3588-bigcore0-grf\0syscon"; - reg = <0x00 0xfd590000 0x00 0x100>; - phandle = <0x26>; - }; - - syscon@fd5dc000 { - #address-cells = <0x01>; - #size-cells = <0x01>; - compatible = "rockchip,rk3588-usb2phy-grf\0syscon\0simple-mfd"; - reg = <0x00 0xfd5dc000 0x00 0x4000>; - phandle = <0x25e>; - - usb2-phy@c000 { - clock-output-names = "usb480m_phy3"; - clock-names = "phyclk"; - resets = <0x02 0xc004a 0x02 0x48b>; - interrupts = <0x00 0x188 0x04>; - clocks = <0x02 0x2b5>; - #clock-cells = <0x00>; - compatible = "rockchip,rk3588-usb2phy"; - status = "okay"; - reg = <0xc000 0x10>; - phandle = <0x6d>; - reset-names = "phy\0apb"; - - host-port { - phy-supply = <0x75>; - #phy-cells = <0x00>; - status = "okay"; - phandle = <0x6f>; - }; - }; - }; - - pcie-clk3 { - regulator-boot-on; - regulator-always-on; - regulator-name = "pcie_clk3"; - compatible = "regulator-fixed"; - status = "okay"; - phandle = <0x496>; - gpios = <0xfe 0x09 0x01>; - }; - - pwm@febf0030 { - pinctrl-names = "active"; - pinctrl-0 = <0x174>; - clock-names = "pwm\0pclk"; - interrupts = <0x00 0x15e 0x04 0x00 0x15f 0x04>; - clocks = <0x02 0x5a 0x02 0x59>; - #pwm-cells = <0x03>; - compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; - status = "disabled"; - reg = <0x00 0xfebf0030 0x00 0x10>; - phandle = <0x2dc>; - }; - - hwspinlock@fe5a0000 { - compatible = "rockchip,hwspinlock"; - reg = <0x00 0xfe5a0000 0x00 0x100>; - phandle = <0x29f>; - #hwlock-cells = <0x01>; - }; - - rkcif-mipi-lvds4-sditf-vir2 { - compatible = "rockchip,rkcif-sditf"; - status = "disabled"; - rockchip,cif = <0x1a1>; - phandle = <0x474>; - }; - - sram@10f000 { - #address-cells = <0x01>; - #size-cells = <0x01>; - compatible = "mmio-sram"; - ranges = <0x00 0x00 0x10f000 0x100>; - reg = <0x00 0x10f000 0x00 0x100>; - - sram@0 { - compatible = "arm,scmi-shmem"; - reg = <0x00 0x100>; - phandle = <0x46>; - }; - }; - - hdmirx-controller@fdee0000 { - power-domains = <0x60 0x1a>; - pinctrl-names = "default"; - pinctrl-0 = <0x1b3 0x1b4>; - clock-names = "aclk\0audio\0cr_para\0pclk\0ref\0hclk_s_hdmirx\0hclk_vo1"; - reg-names = "hdmirx_regs"; - resets = <0x02 0x3d9 0x02 0x3da 0x02 0x3db 0x02 0x3b7>; - interrupts = <0x00 0xb1 0x04 0x00 0x1b4 0x04 0x00 0xb3 0x04>; - clocks = <0x02 0x21a 0x02 0x21f 0x02 0x2b2 0x02 0x21b 0x02 0x21c 0x02 0x232 0x05>; - hpd-trigger-level = <0x01>; - #sound-dai-cells = <0x01>; - compatible = "rockchip,rk3588-hdmirx-ctrler\0rockchip,hdmirx-ctrler"; - status = "disabled"; - rockchip,grf = <0xc8>; - interrupt-names = "cec\0hdmi\0dma"; - hdmirx-det-gpios = <0xfe 0x1d 0x01>; - reg = <0x00 0xfdee0000 0x00 0x6000>; - phandle = <0x1eb>; - reset-names = "rst_a\0rst_p\0rst_ref\0rst_biu"; - rockchip,vo1_grf = <0xd8>; - }; - - qos@fdf61000 { - compatible = "syscon"; - reg = <0x00 0xfdf61000 0x00 0x20>; - phandle = <0x90>; - }; - - qos@fdf40600 { - compatible = "syscon"; - reg = <0x00 0xfdf40600 0x00 0x20>; - phandle = <0xa4>; - }; - - syscon@fd588000 { - compatible = "rockchip,rk3588-pmu0-grf\0syscon\0simple-mfd"; - reg = <0x00 0xfd588000 0x00 0x2000>; - phandle = <0x25a>; - - reboot-mode { - mode-normal = <0x5242c300>; - mode-loader = <0x5242c301>; - mode-quiescent = <0x5242c30e>; - mode-bootloader = <0x5242c301>; - mode-recovery = <0x5242c303>; - mode-watchdog = <0x5242c308>; - mode-ums = <0x5242c30c>; - mode-fastboot = <0x5242c309>; - offset = <0x80>; - compatible = "syscon-reboot-mode"; - mode-winusb = <0x5242c30f>; - phandle = <0x25b>; - mode-charge = <0x5242c30b>; - mode-panic = <0x5242c307>; - }; - }; - - syscon@fd5a4000 { - compatible = "rockchip,rk3588-vop-grf\0syscon"; - reg = <0x00 0xfd5a4000 0x00 0x2000>; - phandle = <0xd7>; - }; - - iommu@fdb60f00 { - power-domains = <0x60 0x16>; - clock-names = "aclk\0iface"; - interrupts = <0x00 0x72 0x04>; - clocks = <0x02 0x1ba 0x02 0x1b9>; - #iommu-cells = <0x00>; - compatible = "rockchip,iommu-v2"; - status = "okay"; - interrupt-names = "rga3_0_mmu"; - reg = <0x00 0xfdb60f00 0x00 0x100>; - phandle = <0xb9>; - }; - - pwm@febf0020 { - pinctrl-names = "active"; - pinctrl-0 = <0x173>; - clock-names = "pwm\0pclk"; - interrupts = <0x00 0x15e 0x04>; - clocks = <0x02 0x5a 0x02 0x59>; - #pwm-cells = <0x03>; - compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; - status = "disabled"; - reg = <0x00 0xfebf0020 0x00 0x10>; - phandle = <0x2db>; - }; - - rkispp@fdcd0000 { - power-domains = <0x60 0x1d>; - iommus = <0xd2>; - clock-names = "aclk_ispp\0hclk_ispp\0clk_ispp"; - assigned-clocks = <0x02 0x1d6>; - assigned-clock-rates = <0x5f5e100>; - interrupts = <0x00 0x8b 0x04>; - clocks = <0x02 0x1d5 0x02 0x1d6 0x02 0x1d7>; - compatible = "rockchip,rk3588-rkispp"; - status = "disabled"; - interrupt-names = "fec_irq"; - reg = <0x00 0xfdcd0000 0x00 0xf00>; - phandle = <0x5b>; - }; - - tsadc@fec00000 { - pinctrl-names = "gpio\0otpout"; - pinctrl-0 = <0x175>; - clock-names = "tsadc\0apb_pclk"; - rockchip,hw-tshut-polarity = <0x00>; - assigned-clocks = <0x02 0xaa>; - assigned-clock-rates = <0x1e8480>; - resets = <0x02 0xc1 0x02 0xc0>; - interrupts = <0x00 0x18d 0x04>; - rockchip,hw-tshut-mode = <0x00>; - clocks = <0x02 0xaa 0x02 0xa9>; - #thermal-sensor-cells = <0x01>; - compatible = "rockchip,rk3588-tsadc"; - pinctrl-1 = <0x176>; - status = "okay"; - reg = <0x00 0xfec00000 0x00 0x400>; - phandle = <0x5d>; - reset-names = "tsadc\0tsadc-apb"; - rockchip,hw-tshut-temp = <0x1d4c0>; - }; - - iommu@fdbb0800 { - power-domains = <0x60 0x15>; - clock-names = "aclk\0iface"; - interrupts = <0x00 0x75 0x04>; - clocks = <0x02 0x1aa 0x02 0x1a9>; - #iommu-cells = <0x00>; - compatible = "rockchip,iommu-v2"; - status = "okay"; - interrupt-names = "irq_iep_mmu"; - reg = <0x00 0xfdbb0800 0x00 0x100>; - phandle = <0xc1>; - }; - - phy@fed60000 { - clock-names = "ref\0apb"; - resets = <0x02 0x485 0x02 0xc003b 0x02 0xc003c 0x02 0xc003d>; - clocks = <0x02 0x2b5 0x02 0x267>; - #phy-cells = <0x00>; - compatible = "rockchip,rk3588-hdptx-phy"; - status = "disabled"; - rockchip,grf = <0x18a>; - reg = <0x00 0xfed60000 0x00 0x2000>; - phandle = <0x101>; - reset-names = "apb\0init\0cmn\0lane"; - }; - - pvtm@fda50000 { - #address-cells = <0x01>; - #size-cells = <0x00>; - compatible = "rockchip,rk3588-bigcore1-pvtm"; - reg = <0x00 0xfda50000 0x00 0x100>; - - pvtm@1 { - clock-names = "clk\0pclk"; - clocks = <0x02 0x2c8 0x02 0x17>; - reg = <0x01>; - }; - }; - - csi2-dcphy0 { - rockchip,hw = <0x2d 0x2e>; - phy-names = "dcphy0\0dcphy1"; - compatible = "rockchip,rk3588-csi2-dphy"; - status = "disabled"; - phys = <0x2f 0x30>; - phandle = <0x20d>; - }; - - mailbox@fece0000 { - clock-names = "pclk_mailbox"; - interrupts = <0x00 0x4d 0x04 0x00 0x4e 0x04 0x00 0x4f 0x04 0x00 0x50 0x04>; - clocks = <0x02 0x4e>; - #mbox-cells = <0x01>; - compatible = "rockchip,rk3588-mailbox\0rockchip,rk3368-mailbox"; - status = "disabled"; - reg = <0x00 0xfece0000 0x00 0x200>; - phandle = <0x2e9>; - }; - - rkcif-mipi-lvds3-sditf-vir3 { - compatible = "rockchip,rkcif-sditf"; - status = "disabled"; - rockchip,cif = <0x57>; - phandle = <0x23a>; - }; - - rkcif-mipi-lvds1-sditf { - compatible = "rockchip,rkcif-sditf"; - status = "disabled"; - rockchip,cif = <0x53>; - phandle = <0x22f>; - }; - - dfi@fe060000 { - rockchip,pmu_grf = <0x104>; - compatible = "rockchip,rk3588-dfi"; - status = "disabled"; - reg = <0x00 0xfe060000 0x00 0x10000>; - phandle = <0x40>; - }; - - iommu@fdca0000 { - power-domains = <0x60 0x17>; - clock-names = "aclk\0iface"; - interrupts = <0x00 0x6d 0x04>; - clocks = <0x02 0x49 0x02 0x4b>; - #iommu-cells = <0x00>; - compatible = "rockchip,iommu-av1"; - status = "okay"; - interrupt-names = "irq_av1d_mmu"; - reg = <0x00 0xfdca0000 0x00 0x600>; - phandle = <0xce>; - }; - - mipi5-csi2 { - rockchip,hw = <0x47 0x48 0x49 0x4a 0x4b 0x4c>; - compatible = "rockchip,rk3588-mipi-csi2"; - status = "disabled"; - phandle = <0x229>; - }; - - qos@fdf35600 { - compatible = "syscon"; - reg = <0x00 0xfdf35600 0x00 0x20>; - phandle = <0x8a>; - }; - - syscon@fd5e4000 { - compatible = "rockchip,rk3588-hdptxphy-grf\0syscon"; - reg = <0x00 0xfd5e4000 0x00 0x100>; - phandle = <0x1c7>; - }; - - iommu@fdba8800 { - power-domains = <0x60 0x15>; - clock-names = "aclk\0iface"; - interrupts = <0x00 0x7d 0x04>; - clocks = <0x02 0x1b0 0x02 0x1b1>; - #iommu-cells = <0x00>; - compatible = "rockchip,iommu-v2"; - status = "okay"; - interrupt-names = "irq_jpege2_mmu"; - reg = <0x00 0xfdba8800 0x00 0x40>; - phandle = <0xbf>; - }; - - mpp-srv { - rockchip,resetgroup-count = <0x01>; - rockchip,taskqueue-count = <0x0c>; - compatible = "rockchip,mpp-service"; - status = "okay"; - phandle = <0xb8>; - }; - - cspmu@fd10c000 { - compatible = "rockchip,cspmu"; - reg = <0x00 0xfd10c000 0x00 0x1000 0x00 0xfd10d000 0x00 0x1000 0x00 0xfd10e000 0x00 0x1000 0x00 0xfd10f000 0x00 0x1000 0x00 0xfd12c000 0x00 0x1000 0x00 0xfd12d000 0x00 0x1000 0x00 0xfd12e000 0x00 0x1000 0x00 0xfd12f000 0x00 0x1000>; - phandle = <0x48e>; - }; - - pwm@febf0010 { - pinctrl-names = "active"; - pinctrl-0 = <0x172>; - clock-names = "pwm\0pclk"; - interrupts = <0x00 0x15e 0x04>; - clocks = <0x02 0x5a 0x02 0x59>; - #pwm-cells = <0x03>; - compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; - status = "disabled"; - reg = <0x00 0xfebf0010 0x00 0x10>; - phandle = <0x2da>; - }; - - iommu@fdbef000 { - power-domains = <0x60 0x11>; - rockchip,shootdown-entire; - interrupts = <0x00 0x66 0x04 0x00 0x67 0x04>; - clocks = <0x02 0x1ca 0x02 0x1c9>; - rockchip,enable-cmd-retry; - #iommu-cells = <0x00>; - compatible = "rockchip,iommu-v2"; - rockchip,disable-mmu-reset; - status = "okay"; - interrupt-names = "irq_rkvenc1_mmu0\0irq_rkvenc1_mmu1"; - reg = <0x00 0xfdbef000 0x00 0x40 0x00 0xfdbef040 0x00 0x40>; - phandle = <0xc5>; - lock-names = "aclk\0iface"; - }; - - serial@feb60000 { - reg-io-width = <0x04>; - pinctrl-names = "default"; - pinctrl-0 = <0x162>; - clock-names = "baudclk\0apb_pclk"; - interrupts = <0x00 0x14e 0x04>; - clocks = <0x02 0xbf 0x02 0xad>; - compatible = "rockchip,rk3588-uart\0snps,dw-apb-uart"; - status = "disabled"; - reg = <0x00 0xfeb60000 0x00 0x100>; - phandle = <0x2cb>; - dmas = <0x7c 0x0c 0x7c 0x0d>; - reg-shift = <0x02>; - }; - - hdmiin-sound { - rockchip,jack-det; - rockchip,cpu = <0x1ec>; - rockchip,codec = <0x1eb 0x00>; - rockchip,bitclock-master = <0x1eb>; - rockchip,card-name = "rockchip,hdmiin"; - rockchip,format = "i2s"; - compatible = "rockchip,hdmi"; - phandle = <0x4ac>; - rockchip,frame-master = <0x1eb>; - rockchip,mclk-fs = <0x80>; - }; - - i2s@fddc8000 { - power-domains = <0x60 0x19>; - clock-names = "mclk_tx\0hclk"; - assigned-clocks = <0x02 0x1ff>; - assigned-clock-parents = <0x02 0x05>; - resets = <0x02 0x391>; - interrupts = <0x00 0xbc 0x04>; - clocks = <0x02 0x201 0x02 0x1fe>; - dma-names = "tx"; - #sound-dai-cells = <0x00>; - compatible = "rockchip,rk3588-i2s-tdm"; - rockchip,playback-only; - status = "disabled"; - reg = <0x00 0xfddc8000 0x00 0x1000>; - phandle = <0x47c>; - dmas = <0xf2 0x16>; - reset-names = "tx-m"; - }; - - pcie30-avdd0v75 { - regulator-max-microvolt = <0xb71b0>; - regulator-boot-on; - regulator-always-on; - regulator-min-microvolt = <0xb71b0>; - regulator-name = "pcie30_avdd0v75"; - compatible = "regulator-fixed"; - phandle = <0x4a7>; - vin-supply = <0x1df>; - }; - - timer { - interrupts = <0x01 0x0d 0xf04 0x01 0x0e 0xf04 0x01 0x0b 0xf04 0x01 0x0a 0xf04>; - compatible = "arm,armv8-timer"; - }; - - rockchip-suspend { - rockchip,sleep-debug-en = <0x01>; - rockchip,sleep-mode-config = <0x5000604>; - compatible = "rockchip,pm-rk3588"; - status = "okay"; - rockchip,wakeup-config = <0x100>; - phandle = <0x246>; - }; - - decompress@fea80000 { - clock-names = "aclk\0dclk\0pclk"; - resets = <0x02 0x118>; - interrupts = <0x00 0x55 0x04>; - clocks = <0x02 0x75 0x02 0x77 0x02 0x76>; - compatible = "rockchip,hw-decompress"; - status = "disabled"; - reg = <0x00 0xfea80000 0x00 0x1000>; - phandle = <0x2a3>; - reset-names = "dresetn"; - }; - - dma-controller@fea30000 { - clock-names = "apb_pclk"; - interrupts = <0x00 0x58 0x04 0x00 0x59 0x04>; - clocks = <0x02 0x79>; - arm,pl330-periph-burst; - compatible = "arm,pl330\0arm,primecell"; - reg = <0x00 0xfea30000 0x00 0x4000>; - phandle = <0xf1>; - #dma-cells = <0x01>; - }; - - pwm@febf0000 { - pinctrl-names = "active"; - pinctrl-0 = <0x171>; - clock-names = "pwm\0pclk"; - interrupts = <0x00 0x15e 0x04>; - clocks = <0x02 0x5a 0x02 0x59>; - #pwm-cells = <0x03>; - compatible = "rockchip,rk3588-pwm\0rockchip,rk3328-pwm"; - status = "disabled"; - reg = <0x00 0xfebf0000 0x00 0x10>; - phandle = <0x2d9>; - }; - - iommu@fdcd8f00 { - power-domains = <0x60 0x1d>; - clock-names = "aclk\0iface\0pclk"; - interrupts = <0x00 0x8e 0x04>; - clocks = <0x02 0x1d8 0x02 0x1d9 0x02 0x1da>; - #iommu-cells = <0x00>; - compatible = "rockchip,iommu-v2"; - rockchip,disable-mmu-reset; - status = "disabled"; - interrupt-names = "fec1_mmu"; - reg = <0x00 0xfdcd8f00 0x00 0x100>; - phandle = <0xd3>; - }; - - spdif-tx@fddb0000 { - power-domains = <0x60 0x19>; - clock-names = "mclk\0hclk"; - assigned-clocks = <0x02 0x205>; - assigned-clock-parents = <0x02 0x05>; - interrupts = <0x00 0xc3 0x04>; - clocks = <0x02 0x209 0x02 0x204>; - dma-names = "tx"; - #sound-dai-cells = <0x00>; - compatible = "rockchip,rk3588-spdif\0rockchip,rk3568-spdif"; - status = "disabled"; - reg = <0x00 0xfddb0000 0x00 0x1000>; - phandle = <0x1d5>; - dmas = <0xf1 0x06>; - }; - - rkisp1-vir2 { - rockchip,hw = <0x5a>; - compatible = "rockchip,rkisp-vir"; - status = "disabled"; - phandle = <0x241>; - }; - - pcie-clk1 { - regulator-boot-on; - regulator-always-on; - regulator-name = "pcie_clk1"; - compatible = "regulator-fixed"; - status = "okay"; - phandle = <0x494>; - vin-supply = <0x1cd>; - gpios = <0x181 0x15 0x01>; - }; - - jpege-core@fdba8000 { - power-domains = <0x60 0x15>; - iommus = <0xbf>; - rockchip,ccu = <0xbd>; - clock-names = "aclk_vcodec\0hclk_vcodec"; - assigned-clocks = <0x02 0x1b0>; - rockchip,normal-rates = <0x2367b880 0x00>; - assigned-clock-rates = <0x2367b880>; - resets = <0x02 0x2ce 0x02 0x2cf>; - interrupts = <0x00 0x7e 0x04>; - clocks = <0x02 0x1b0 0x02 0x1b1>; - rockchip,srv = <0xb8>; - rockchip,taskqueue-node = <0x02>; - rockchip,disable-auto-freq; - compatible = "rockchip,vpu-jpege-core"; - status = "okay"; - interrupt-names = "irq_jpege2"; - rockchip,skip-pmu-idle-request; - reg = <0x00 0xfdba8000 0x00 0x400>; - phandle = <0x26f>; - reset-names = "video_a\0video_h"; - }; - - qos@fdf66400 { - compatible = "syscon"; - reg = <0x00 0xfdf66400 0x00 0x20>; - phandle = <0x95>; - }; - - spdif-tx1-sound { - simple-audio-card,name = "rockchip,spdif-tx1"; - compatible = "simple-audio-card"; - status = "disabled"; - phandle = <0x49d>; - simple-audio-card,mclk-fs = <0x80>; - - simple-audio-card,cpu { - sound-dai = <0x1d7>; - }; - - simple-audio-card,codec { - sound-dai = <0x1d8>; - }; - }; - - mmc@fe2e0000 { - mmc-hs400-enhanced-strobe; - clock-names = "core\0bus\0axi\0block\0timer"; - assigned-clocks = <0x02 0x13b 0x02 0x13c 0x02 0x13a>; - bus-width = <0x08>; - non-removable; - no-sdio; - assigned-clock-rates = <0xbebc200 0x16e3600 0xbebc200>; - resets = <0x02 0x1f6 0x02 0x1f4 0x02 0x1f5 0x02 0x1f7 0x02 0x1f8>; - mmc-hs400-1_8v; - interrupts = <0x00 0xcd 0x04>; - clocks = <0x02 0x13a 0x02 0x138 0x02 0x139 0x02 0x13b 0x02 0x13c>; - no-sd; - compatible = "rockchip,rk3588-dwcmshc\0rockchip,dwcmshc-sdhci"; - status = "okay"; - reg = <0x00 0xfe2e0000 0x00 0x10000>; - phandle = <0x295>; - max-frequency = <0xbebc200>; - reset-names = "core\0bus\0axi\0block\0timer"; - }; - - dma-controller@fed10000 { - clock-names = "apb_pclk"; - interrupts = <0x00 0x5a 0x04 0x00 0x5b 0x04>; - clocks = <0x02 0x7a>; - arm,pl330-periph-burst; - compatible = "arm,pl330\0arm,primecell"; - reg = <0x00 0xfed10000 0x00 0x4000>; - phandle = <0xf2>; - #dma-cells = <0x01>; - }; - - iommu@fc900000 { - interrupts = <0x00 0x171 0x04 0x00 0x173 0x04 0x00 0x176 0x04 0x00 0x16f 0x04>; - #iommu-cells = <0x01>; - compatible = "arm,smmu-v3"; - status = "disabled"; - interrupt-names = "eventq\0gerror\0priq\0cmdq-sync"; - reg = <0x00 0xfc900000 0x00 0x200000>; - phandle = <0x256>; - }; - - mailbox@fec70000 { - clock-names = "pclk_mailbox"; - interrupts = <0x00 0x45 0x04 0x00 0x46 0x04 0x00 0x47 0x04 0x00 0x48 0x04>; - clocks = <0x02 0x4d>; - #mbox-cells = <0x01>; - compatible = "rockchip,rk3588-mailbox\0rockchip,rk3368-mailbox"; - status = "disabled"; - reg = <0x00 0xfec70000 0x00 0x200>; - phandle = <0x2de>; - }; - - pcie@fe150000 { - power-domains = <0x60 0x22>; - vpcie3v3-supply = <0x1b8>; - #address-cells = <0x03>; - rockchip,pipe-grf = <0x76>; - phy-names = "pcie-phy"; - bus-range = <0x00 0x0f>; - clock-names = "aclk_mst\0aclk_slv\0aclk_dbi\0pclk\0aux\0pipe"; - reg-names = "pcie-apb\0pcie-dbi"; - num-ob-windows = <0x10>; - resets = <0x02 0x20d 0x02 0x21c>; - interrupts = <0x00 0x107 0x04 0x00 0x106 0x04 0x00 0x105 0x04 0x00 0x104 0x04 0x00 0x103 0x04>; - clocks = <0x02 0x14e 0x02 0x153 0x02 0x149 0x02 0x158 0x02 0x15e 0x02 0x183>; - interrupt-map = <0x00 0x00 0x00 0x01 0x1b5 0x00 0x00 0x00 0x00 0x02 0x1b5 0x01 0x00 0x00 0x00 0x03 0x1b5 0x02 0x00 0x00 0x00 0x04 0x1b5 0x03>; - #size-cells = <0x02>; - max-link-speed = <0x03>; - device_type = "pci"; - interrupt-map-mask = <0x00 0x00 0x00 0x07>; - reset-gpios = <0x10d 0x0e 0x00>; - num-lanes = <0x01>; - compatible = "rockchip,rk3588-pcie\0snps,dw-pcie"; - ranges = <0x800 0x00 0xf0000000 0x00 0xf0000000 0x00 0x100000 0x81000000 0x00 0xf0100000 0x00 0xf0100000 0x00 0x100000 0x82000000 0x00 0xf0200000 0x00 0xf0200000 0x00 0xe00000 0xc3000000 0x09 0x00 0x09 0x00 0x00 0x40000000>; - msi-map = <0x00 0x1b6 0x00 0x1000>; - #interrupt-cells = <0x01>; - status = "okay"; - interrupt-names = "sys\0pmc\0msg\0legacy\0err"; - phys = <0x1b7>; - num-viewport = <0x08>; - reg = <0x00 0xfe150000 0x00 0x10000 0x0a 0x40000000 0x00 0x400000>; - linux,pci-domain = <0x00>; - phandle = <0x485>; - reset-names = "pcie\0periph"; - num-ib-windows = <0x10>; - - legacy-interrupt-controller { - #address-cells = <0x00>; - interrupts = <0x00 0x104 0x01>; - interrupt-parent = <0x01>; - #interrupt-cells = <0x01>; - phandle = <0x1b5>; - interrupt-controller; - }; - }; - - rng@fe378000 { - clock-names = "hclk_trng"; - resets = <0x11a 0x30>; - interrupts = <0x00 0x190 0x04>; - clocks = <0x0e 0x0c>; - compatible = "rockchip,trngv1"; - status = "okay"; - reg = <0x00 0xfe378000 0x00 0x200>; - phandle = <0x297>; - reset-names = "reset"; - }; - - sata@fe220000 { - phy-names = "sata-phy"; - clock-names = "sata\0pmalive\0rxoob\0ref\0asic"; - interrupts = <0x00 0x112 0x04>; - clocks = <0x02 0x172 0x02 0x16f 0x02 0x175 0x02 0x164 0x02 0x17f>; - compatible = "rockchip,rk-ahci\0snps,dwc-ahci"; - status = "disabled"; - interrupt-names = "hostc"; - phys = <0x1bc 0x01>; - reg = <0x00 0xfe220000 0x00 0x1000>; - phandle = <0x48a>; - ports-implemented = <0x01>; - }; - - rkcif-mipi-lvds5 { - iommus = <0x50>; - rockchip,hw = <0x4f>; - compatible = "rockchip,rkcif-mipi-lvds"; - status = "disabled"; - phandle = <0x1a2>; - }; - - vcc-sata-pwr-en-regulator { - regulator-max-microvolt = <0x325aa0>; - regulator-boot-on; - gpio = <0x182 0x0c 0x00>; - regulator-always-on; - enable-active-high; - regulator-min-microvolt = <0x325aa0>; - regulator-name = "vcc_sata_pwr_en"; - startup-delay-us = <0x1388>; - compatible = "regulator-fixed"; - status = "okay"; - phandle = <0x4a3>; - vin-supply = <0x1cd>; - }; - - pwm-fan { - cooling-levels = <0x32 0x32 0x64 0x96 0xc8 0xff>; - rockchip,temp-trips = <0xc350 0x01 0xd6d8 0x02 0xea60 0x03 0xfde8 0x04 0x11170 0x05>; - compatible = "pwm-fan"; - phandle = <0x4ad>; - pwms = <0x1ed 0x00 0xc350 0x00>; - #cooling-cells = <0x02>; - fan-supply = <0x78>; - }; - - qos@fdf3e200 { - compatible = "syscon"; - reg = <0x00 0xfdf3e200 0x00 0x20>; - phandle = <0xab>; - }; - - spdif-tx@fe4e0000 { - power-domains = <0x60 0x26>; - pinctrl-names = "default"; - pinctrl-0 = <0x142>; - clock-names = "mclk\0hclk"; - assigned-clocks = <0x02 0x3f>; - assigned-clock-parents = <0x02 0x05>; - interrupts = <0x00 0xc1 0x04>; - clocks = <0x02 0x41 0x02 0x3e>; - dma-names = "tx"; - #sound-dai-cells = <0x00>; - compatible = "rockchip,rk3588-spdif\0rockchip,rk3568-spdif"; - status = "disabled"; - reg = <0x00 0xfe4e0000 0x00 0x1000>; - phandle = <0x29d>; - dmas = <0x7c 0x05>; - }; - - vad@fe4d0000 { - rockchip,det-channel = <0x00>; - rockchip,audio-src = <0x00>; - clock-names = "hclk"; - reg-names = "vad"; - interrupts = <0x00 0xca 0x04>; - clocks = <0x02 0x2a0>; - #sound-dai-cells = <0x00>; - compatible = "rockchip,rk3588-vad"; - status = "disabled"; - rockchip,mode = <0x00>; - reg = <0x00 0xfe4d0000 0x00 0x1000>; - phandle = <0x29c>; - }; - - jpegd@fdb90000 { - power-domains = <0x60 0x15>; - iommus = <0xbb>; - clock-names = "aclk_vcodec\0hclk_vcodec"; - assigned-clocks = <0x02 0x1b4>; - rockchip,normal-rates = <0x23c34600 0x00>; - assigned-clock-rates = <0x23c34600>; - resets = <0x02 0x2d2 0x02 0x2d3>; - interrupts = <0x00 0x81 0x04>; - clocks = <0x02 0x1b4 0x02 0x1b5>; - rockchip,srv = <0xb8>; - rockchip,taskqueue-node = <0x01>; - compatible = "rockchip,rkv-jpeg-decoder-v1"; - status = "okay"; - interrupt-names = "irq_jpegd"; - rockchip,skip-pmu-idle-request; - reg = <0x00 0xfdb90000 0x00 0x400>; - phandle = <0x26c>; - reset-names = "video_a\0video_h"; - }; - - cpuinfo { - nvmem-cells = <0x2a 0x2b 0x2c>; - compatible = "rockchip,cpuinfo"; - nvmem-cell-names = "id\0cpu-version\0cpu-code"; - }; - - qos@fdf60400 { - compatible = "syscon"; - reg = <0x00 0xfdf60400 0x00 0x20>; - phandle = <0x8f>; - }; - - spi@feb20000 { - pinctrl-names = "default"; - #address-cells = <0x01>; - num-cs = <0x01>; - pinctrl-0 = <0x154 0x155>; - clock-names = "spiclk\0apb_pclk"; - assigned-clocks = <0x02 0xa5>; - assigned-clock-rates = <0xbebc200>; - interrupts = <0x00 0x148 0x04>; - clocks = <0x02 0xa5 0x02 0xa0>; - #size-cells = <0x00>; - dma-names = "tx\0rx"; - compatible = "rockchip,rk3066-spi"; - status = "okay"; - reg = <0x00 0xfeb20000 0x00 0x1000>; - phandle = <0x2ad>; - dmas = <0xf1 0x0f 0xf1 0x10>; - - rk806single@0 { - vcc11-supply = <0x15b>; - pinctrl-names = "default\0pmic-power-off"; - vcc12-supply = <0x78>; - vcc13-supply = <0x15c>; - vcc14-supply = <0x15c>; - pinctrl-0 = <0x156 0x157 0x158 0x159>; - interrupts = <0x07 0x08>; - spi-max-frequency = <0xf4240>; - interrupt-parent = <0x7b>; - low_voltage_threshold = <0xbb8>; - vcca-supply = <0x78>; - vcc1-supply = <0x78>; - pmic-reset-func = <0x01>; - vcc2-supply = <0x78>; - hotdie_temperture_threshold = <0x73>; - compatible = "rockchip,rk806"; - vcc3-supply = <0x78>; - pinctrl-1 = <0x15a>; - vcc4-supply = <0x78>; - vcc5-supply = <0x78>; - reg = <0x00>; - phandle = <0x2ae>; - vcc6-supply = <0x78>; - shutdown_voltage_threshold = <0xa8c>; - vcc7-supply = <0x78>; - vcc8-supply = <0x78>; - shutdown_temperture_threshold = <0xa0>; - vcc9-supply = <0x78>; - vcc10-supply = <0x78>; - - pinctrl_rk806 { - gpio-controller; - phandle = <0x2af>; - #gpio-cells = <0x02>; - - rk806_dvs2_rst { - function = "pin_fun3"; - pins = "gpio_pwrctrl2"; - phandle = <0x2b4>; - }; - - rk806_dvs3_null { - function = "pin_fun0"; - pins = "gpio_pwrctrl3"; - phandle = <0x159>; - }; - - rk806_dvs3_dvs { - function = "pin_fun4"; - pins = "gpio_pwrctrl3"; - phandle = <0x2ba>; - }; - - rk806_dvs3_rst { - function = "pin_fun3"; - pins = "gpio_pwrctrl3"; - phandle = <0x2b9>; - }; - - rk806_dvs2_null { - function = "pin_fun0"; - pins = "gpio_pwrctrl2"; - phandle = <0x158>; - }; - - rk806_dvs1_pwrdn { - function = "pin_fun2"; - pins = "gpio_pwrctrl1"; - phandle = <0x15a>; - }; - - rk806_dvs1_slp { - function = "pin_fun1"; - pins = "gpio_pwrctrl1"; - phandle = <0x2b0>; - }; - - rk806_dvs1_null { - function = "pin_fun0"; - pins = "gpio_pwrctrl2"; - phandle = <0x157>; - }; - - rk806_dvs3_gpio { - function = "pin_fun5"; - pins = "gpio_pwrctrl3"; - phandle = <0x2bb>; - }; - - rk806_dvs2_gpio { - function = "pin_fun5"; - pins = "gpio_pwrctrl2"; - phandle = <0x2b6>; - }; - - rk806_dvs2_slp { - function = "pin_fun1"; - pins = "gpio_pwrctrl2"; - phandle = <0x2b2>; - }; - - rk806_dvs2_pwrdn { - function = "pin_fun2"; - pins = "gpio_pwrctrl2"; - phandle = <0x2b3>; - }; - - rk806_dvs1_rst { - function = "pin_fun3"; - pins = "gpio_pwrctrl1"; - phandle = <0x2b1>; - }; - - rk806_dvs3_slp { - function = "pin_fun1"; - pins = "gpio_pwrctrl3"; - phandle = <0x2b7>; - }; - - rk806_dvs2_dvs { - function = "pin_fun4"; - pins = "gpio_pwrctrl2"; - phandle = <0x2b5>; - }; - - rk806_dvs3_pwrdn { - function = "pin_fun2"; - pins = "gpio_pwrctrl3"; - phandle = <0x2b8>; - }; - }; - - pwrkey { - status = "okay"; - }; - - regulators { - - PLDO_REG2 { - regulator-max-microvolt = <0x1b7740>; - regulator-boot-on; - regulator-always-on; - regulator-min-microvolt = <0x1b7740>; - regulator-name = "vcc_1v8_s0"; - phandle = <0x177>; - - regulator-state-mem { - regulator-off-in-suspend; - regulator-suspend-microvolt = <0x1b7740>; - }; - }; - - DCDC_REG4 { - regulator-max-microvolt = <0xe7ef0>; - regulator-boot-on; - regulator-init-microvolt = <0xb71b0>; - regulator-always-on; - regulator-min-microvolt = <0x86470>; - regulator-name = "vdd_vdenc_s0"; - regulator-ramp-delay = <0x30d4>; - phandle = <0x2bc>; - - regulator-state-mem { - regulator-off-in-suspend; - }; - }; - - DCDC_REG2 { - regulator-max-microvolt = <0xe7ef0>; - regulator-boot-on; - regulator-always-on; - regulator-min-microvolt = <0x86470>; - regulator-name = "vdd_cpu_lit_s0"; - regulator-ramp-delay = <0x30d4>; - phandle = <0x12>; - - regulator-state-mem { - regulator-off-in-suspend; - }; - }; - - NLDO_REG4 { - regulator-max-microvolt = <0xcf850>; - regulator-boot-on; - regulator-always-on; - regulator-min-microvolt = <0xcf850>; - regulator-name = "vdd_0v85_s0"; - phandle = <0x2c6>; - - regulator-state-mem { - regulator-off-in-suspend; - }; - }; - - DCDC_REG9 { - regulator-boot-on; - regulator-always-on; - regulator-name = "vddq_ddr_s0"; - phandle = <0x2bf>; - - regulator-state-mem { - regulator-off-in-suspend; - }; - }; - - NLDO_REG2 { - regulator-max-microvolt = <0xcf850>; - regulator-boot-on; - regulator-always-on; - regulator-min-microvolt = <0xcf850>; - regulator-name = "vdd_ddr_pll_s0"; - phandle = <0x2c5>; - - regulator-state-mem { - regulator-off-in-suspend; - regulator-suspend-microvolt = <0xcf850>; - }; - }; - - PLDO_REG5 { - regulator-max-microvolt = <0x325aa0>; - regulator-boot-on; - regulator-always-on; - regulator-min-microvolt = <0x1b7740>; - regulator-name = "vccio_sd_s0"; - phandle = <0x118>; - - regulator-state-mem { - regulator-off-in-suspend; - }; - }; - - DCDC_REG7 { - regulator-max-microvolt = <0x1e8480>; - regulator-boot-on; - regulator-always-on; - regulator-min-microvolt = <0x1e8480>; - regulator-name = "vdd_2v0_pldo_s3"; - phandle = <0x15b>; - - regulator-state-mem { - regulator-suspend-microvolt = <0x1e8480>; - regulator-on-in-suspend; - }; - }; - - PLDO_REG3 { - regulator-max-microvolt = <0x124f80>; - regulator-boot-on; - regulator-always-on; - regulator-min-microvolt = <0x124f80>; - regulator-name = "avdd_1v2_s0"; - phandle = <0x2c1>; - - regulator-state-mem { - regulator-off-in-suspend; - }; - }; - - DCDC_REG5 { - regulator-max-microvolt = <0xdbba0>; - regulator-boot-on; - regulator-always-on; - regulator-min-microvolt = <0xa4cb8>; - regulator-name = "vdd_ddr_s0"; - regulator-ramp-delay = <0x30d4>; - phandle = <0x42>; - - regulator-state-mem { - regulator-off-in-suspend; - regulator-suspend-microvolt = <0xcf850>; - }; - }; - - DCDC_REG10 { - regulator-max-microvolt = <0x1b7740>; - regulator-boot-on; - regulator-always-on; - regulator-min-microvolt = <0x1b7740>; - regulator-name = "vcc_1v8_s3"; - phandle = <0x2c0>; - - regulator-state-mem { - regulator-suspend-microvolt = <0x1b7740>; - regulator-on-in-suspend; - }; - }; - - PLDO_REG1 { - regulator-max-microvolt = <0x1b7740>; - regulator-boot-on; - regulator-always-on; - regulator-min-microvolt = <0x1b7740>; - regulator-name = "avcc_1v8_s0"; - phandle = <0x1de>; - - regulator-state-mem { - regulator-off-in-suspend; - }; - }; - - DCDC_REG3 { - regulator-max-microvolt = <0xb71b0>; - regulator-boot-on; - regulator-always-on; - regulator-min-microvolt = <0xa4cb8>; - regulator-name = "vdd_log_s0"; - regulator-ramp-delay = <0x30d4>; - phandle = <0x43>; - - regulator-state-mem { - regulator-suspend-microvolt = <0xb71b0>; - regulator-on-in-suspend; - }; - }; - - DCDC_REG1 { - regulator-max-microvolt = <0xe7ef0>; - regulator-boot-on; - regulator-enable-ramp-delay = <0x190>; - regulator-min-microvolt = <0x86470>; - regulator-name = "vdd_gpu_s0"; - regulator-ramp-delay = <0x30d4>; - phandle = <0x62>; - - regulator-state-mem { - regulator-off-in-suspend; - }; - }; - - NLDO_REG5 { - regulator-max-microvolt = <0xb71b0>; - regulator-boot-on; - regulator-always-on; - regulator-min-microvolt = <0xb71b0>; - regulator-name = "vdd_0v75_s0"; - phandle = <0x2c7>; - - regulator-state-mem { - regulator-off-in-suspend; - }; - }; - - NLDO_REG3 { - regulator-max-microvolt = <0xb71b0>; - regulator-boot-on; - regulator-always-on; - regulator-min-microvolt = <0xb71b0>; - regulator-name = "avdd_0v75_s0"; - phandle = <0x1df>; - - regulator-state-mem { - regulator-off-in-suspend; - }; - }; - - PLDO_REG6 { - regulator-max-microvolt = <0x1b7740>; - regulator-boot-on; - regulator-always-on; - regulator-min-microvolt = <0x1b7740>; - regulator-name = "pldo6_s3"; - phandle = <0x2c3>; - - regulator-state-mem { - regulator-suspend-microvolt = <0x1b7740>; - regulator-on-in-suspend; - }; - }; - - DCDC_REG8 { - regulator-max-microvolt = <0x325aa0>; - regulator-boot-on; - regulator-always-on; - regulator-min-microvolt = <0x325aa0>; - regulator-name = "vcc_3v3_s3"; - phandle = <0x2be>; - - regulator-state-mem { - regulator-suspend-microvolt = <0x325aa0>; - regulator-on-in-suspend; - }; - }; - - NLDO_REG1 { - regulator-max-microvolt = <0xb71b0>; - regulator-boot-on; - regulator-always-on; - regulator-min-microvolt = <0xb71b0>; - regulator-name = "vdd_0v75_s3"; - phandle = <0x2c4>; - - regulator-state-mem { - regulator-suspend-microvolt = <0xb71b0>; - regulator-on-in-suspend; - }; - }; - - PLDO_REG4 { - regulator-max-microvolt = <0x325aa0>; - regulator-boot-on; - regulator-always-on; - regulator-min-microvolt = <0x325aa0>; - regulator-name = "vcc_3v3_s0"; - phandle = <0x2c2>; - - regulator-state-mem { - regulator-off-in-suspend; - }; - }; - - DCDC_REG6 { - regulator-boot-on; - regulator-always-on; - regulator-name = "vdd2_ddr_s3"; - phandle = <0x2bd>; - - regulator-state-mem { - regulator-on-in-suspend; - }; - }; - }; - }; - }; - - usbhost3_0 { - #address-cells = <0x02>; - clock-names = "ref\0suspend\0bus\0utmi\0php\0pipe"; - clocks = <0x02 0x179 0x02 0x178 0x02 0x177 0x02 0x17a 0x02 0x166 0x02 0x181>; - #size-cells = <0x02>; - compatible = "rockchip,rk3588-dwc3\0rockchip,rk3399-dwc3"; - ranges; - status = "disabled"; - phandle = <0x258>; - - usb@fcd00000 { - snps,dis_enblslpm_quirk; - phy-names = "usb3-phy"; - snps,dis-u2-freeclk-exists-quirk; - phy_type = "utmi_wide"; - resets = <0x02 0x237>; - interrupts = <0x00 0xde 0x04>; - snps,dis_rxdet_inp3_quirk; - compatible = "snps,dwc3"; - snps,parkmode-disable-hs-quirk; - snps,dis-del-phy-power-chg-quirk; - status = "disabled"; - snps,parkmode-disable-ss-quirk; - phys = <0x70 0x04>; - reg = <0x00 0xfcd00000 0x00 0x400000>; - phandle = <0x259>; - dr_mode = "host"; - reset-names = "usb3-host"; - snps,dis-tx-ipgap-linecheck-quirk; - }; - }; - - pcie@fe190000 { - #address-cells = <0x03>; - rockchip,pipe-grf = <0x76>; - phy-names = "pcie-phy"; - bus-range = <0x40 0x4f>; - clock-names = "aclk_mst\0aclk_slv\0aclk_dbi\0pclk\0aux\0pipe"; - reg-names = "pcie-apb\0pcie-dbi"; - num-ob-windows = <0x08>; - resets = <0x02 0x211 0x02 0x220>; - interrupts = <0x00 0xfd 0x04 0x00 0xfc 0x04 0x00 0xfb 0x04 0x00 0xfa 0x04 0x00 0xf9 0x04>; - clocks = <0x02 0x152 0x02 0x157 0x02 0x14d 0x02 0x15d 0x02 0x162 0x02 0x182>; - interrupt-map = <0x00 0x00 0x00 0x01 0x107 0x00 0x00 0x00 0x00 0x02 0x107 0x01 0x00 0x00 0x00 0x03 0x107 0x02 0x00 0x00 0x00 0x04 0x107 0x03>; - #size-cells = <0x02>; - max-link-speed = <0x02>; - device_type = "pci"; - interrupt-map-mask = <0x00 0x00 0x00 0x07>; - num-lanes = <0x01>; - compatible = "rockchip,rk3588-pcie\0snps,dw-pcie"; - ranges = <0x800 0x00 0xf4000000 0x00 0xf4000000 0x00 0x100000 0x81000000 0x00 0xf4100000 0x00 0xf4100000 0x00 0x100000 0x82000000 0x00 0xf4200000 0x00 0xf4200000 0x00 0xe00000 0xc3000000 0x0a 0x00 0x0a 0x00 0x00 0x40000000>; - msi-map = <0x4000 0x106 0x4000 0x1000>; - #interrupt-cells = <0x01>; - status = "disabled"; - interrupt-names = "sys\0pmc\0msg\0legacy\0err"; - phys = <0x108 0x02>; - num-viewport = <0x04>; - reg = <0x00 0xfe190000 0x00 0x10000 0x0a 0x41000000 0x00 0x400000>; - linux,pci-domain = <0x04>; - phandle = <0x28d>; - reset-names = "pcie\0periph"; - num-ib-windows = <0x08>; - - legacy-interrupt-controller { - #address-cells = <0x00>; - interrupts = <0x00 0xfa 0x01>; - interrupt-parent = <0x01>; - #interrupt-cells = <0x01>; - phandle = <0x107>; - interrupt-controller; - }; - }; - - rkcif-mipi-lvds3-sditf-vir1 { - compatible = "rockchip,rkcif-sditf"; - status = "disabled"; - rockchip,cif = <0x57>; - phandle = <0x238>; - }; - - aliases { - i2c3 = "/i2c@feab0000"; - ethernet0 = "/ethernet@fe1b0000"; - pwm9 = "/pwm@febe0010"; - pwm14 = "/pwm@febf0020"; - spi2 = "/spi@feb20000"; - usbdp0 = "/phy@fed80000"; - gpio0 = "/pinctrl/gpio@fd8a0000"; - dsi1 = "/dsi@fde30000"; - hdmi1 = "/hdmi@fdea0000"; - serial7 = "/serial@feba0000"; - i2c1 = "/i2c@fea90000"; - pwm7 = "/pwm@febd0030"; - pwm12 = "/pwm@febf0000"; - jpege3 = "/jpege-core@fdbac000"; - spi0 = "/spi@feb00000"; - hdptx1 = "/phy@fed70000"; - csi2dphy5 = "/csi2-dphy5"; - serial5 = "/serial@feb80000"; - csi2dcphy1 = "/csi2-dcphy1"; - pwm5 = "/pwm@febd0010"; - mmc1 = "/mmc@fe2c0000"; - pwm10 = "/pwm@febe0020"; - jpege1 = "/jpege-core@fdba4000"; - rkcif_mipi_lvds4 = "/rkcif-mipi-lvds4"; - i2c8 = "/i2c@feca0000"; - dp0 = "/dp@fde50000"; - csi2dphy3 = "/csi2-dphy3"; - serial3 = "/serial@feb60000"; - edp0 = "/edp@fdec0000"; - pwm3 = "/pwm@fd8b0030"; - hdcp1 = "/hdcp@fde70000"; - rkcif_mipi_lvds2 = "/rkcif-mipi-lvds2"; - i2c6 = "/i2c@fec80000"; - csi2dphy1 = "/csi2-dphy1"; - serial1 = "/serial@feb40000"; - pwm1 = "/pwm@fd8b0010"; - rkvenc0 = "/rkvenc-core@fdbd0000"; - spi5 = "/spi@fe2b0000"; - gpio3 = "/pinctrl/gpio@fec40000"; - hdptxhdmi1 = "/hdmiphy@fed70000"; - rkcif_mipi_lvds0 = "/rkcif-mipi-lvds"; - i2c4 = "/i2c@feac0000"; - ethernet1 = "/ethernet@fe1c0000"; - rkvdec0 = "/rkvdec-core@fdc38000"; - pwm15 = "/pwm@febf0030"; - hdmirx0 = "/hdmirx-controller@fdee0000"; - spi3 = "/spi@feb30000"; - usbdp1 = "/phy@fed90000"; - gpio1 = "/pinctrl/gpio@fec20000"; - serial8 = "/serial@febb0000"; - i2c2 = "/i2c@feaa0000"; - pwm8 = "/pwm@febe0000"; - pwm13 = "/pwm@febf0010"; - spi1 = "/spi@feb10000"; - dsi0 = "/dsi@fde20000"; - hdmi0 = "/hdmi@fde80000"; - serial6 = "/serial@feb90000"; - i2c0 = "/i2c@fd880000"; - pwm6 = "/pwm@febd0020"; - mmc2 = "/mmc@fe2d0000"; - pwm11 = "/pwm@febe0030"; - jpege2 = "/jpege-core@fdba8000"; - hdptx0 = "/phy@fed60000"; - rkcif_mipi_lvds5 = "/rkcif-mipi-lvds5"; - dp1 = "/dp@fde60000"; - csi2dphy4 = "/csi2-dphy4"; - serial4 = "/serial@feb70000"; - edp1 = "/edp@fded0000"; - csi2dcphy0 = "/csi2-dcphy0"; - pwm4 = "/pwm@febd0000"; - mmc0 = "/mmc@fe2e0000"; - jpege0 = "/jpege-core@fdba0000"; - rkcif_mipi_lvds3 = "/rkcif-mipi-lvds3"; - i2c7 = "/i2c@fec90000"; - csi2dphy2 = "/csi2-dphy2"; - serial2 = "/serial@feb50000"; - pwm2 = "/pwm@fd8b0020"; - rkvenc1 = "/rkvenc-core@fdbe0000"; - gpio4 = "/pinctrl/gpio@fec50000"; - hdcp0 = "/hdcp@fde40000"; - rkcif_mipi_lvds1 = "/rkcif-mipi-lvds1"; - i2c5 = "/i2c@fead0000"; - csi2dphy0 = "/csi2-dphy0"; - serial0 = "/serial@fd890000"; - rkvdec1 = "/rkvdec-core@fdc48000"; - pwm0 = "/pwm@fd8b0000"; - spi4 = "/spi@fecb0000"; - gpio2 = "/pinctrl/gpio@fec30000"; - hdptxhdmi0 = "/hdmiphy@fed60000"; - serial9 = "/serial@febc0000"; - }; - - spdif-tx@fdde8000 { - power-domains = <0x60 0x1a>; - clock-names = "mclk\0hclk"; - assigned-clocks = <0x02 0x259>; - assigned-clock-parents = <0x02 0x05>; - interrupts = <0x00 0xc5 0x04>; - clocks = <0x02 0x25c 0x02 0x258>; - dma-names = "tx"; - #sound-dai-cells = <0x00>; - compatible = "rockchip,rk3588-spdif\0rockchip,rk3568-spdif"; - status = "disabled"; - reg = <0x00 0xfdde8000 0x00 0x1000>; - phandle = <0x47d>; - dmas = <0xf1 0x08>; - }; - - i2s@fe490000 { - power-domains = <0x60 0x26>; - pinctrl-names = "default\0idle\0clk"; - pinctrl-2 = <0x12d 0x12e>; - pinctrl-0 = <0x12a 0x12b>; - clock-names = "i2s_clk\0i2s_hclk"; - assigned-clocks = <0x02 0x24>; - assigned-clock-parents = <0x02 0x05>; - interrupts = <0x00 0xb6 0x04>; - clocks = <0x02 0x27 0x02 0x22>; - dma-names = "tx\0rx"; - #sound-dai-cells = <0x00>; - compatible = "rockchip,rk3588-i2s\0rockchip,rk3066-i2s"; - pinctrl-1 = <0x12c>; - status = "disabled"; - reg = <0x00 0xfe490000 0x00 0x1000>; - phandle = <0x298>; - dmas = <0xf1 0x00 0xf1 0x01>; - rockchip,clk-trcm = <0x01>; - }; - - syscon@fd5d0000 { - #address-cells = <0x01>; - #size-cells = <0x01>; - compatible = "rockchip,rk3588-usb2phy-grf\0syscon\0simple-mfd"; - reg = <0x00 0xfd5d0000 0x00 0x4000>; - phandle = <0x18b>; - - usb2-phy@0 { - clock-output-names = "usb480m_phy0"; - clock-names = "phyclk"; - resets = <0x02 0xc0047 0x02 0x488>; - interrupts = <0x00 0x189 0x04>; - clocks = <0x02 0x2b5>; - #clock-cells = <0x00>; - rockchip,usbctrl-grf = <0x74>; - compatible = "rockchip,rk3588-usb2phy"; - status = "okay"; - reg = <0x00 0x10>; - phandle = <0x18d>; - reset-names = "phy\0apb"; - - otg-port { - #phy-cells = <0x00>; - rockchip,typec-vbus-det; - status = "okay"; - phandle = <0x66>; - }; - }; - }; - - i2c@feac0000 { - pinctrl-names = "default"; - #address-cells = <0x01>; - pinctrl-0 = <0x14b>; - clock-names = "i2c\0pclk"; - resets = <0x02 0xb3 0x02 0xab>; - interrupts = <0x00 0x141 0x04>; - clocks = <0x02 0x90 0x02 0x88>; - #size-cells = <0x00>; - compatible = "rockchip,rk3588-i2c\0rockchip,rk3399-i2c"; - status = "okay"; - reg = <0x00 0xfeac0000 0x00 0x1000>; - phandle = <0x2a7>; - reset-names = "i2c\0apb"; - - pc9202@3c { - pinctrl-names = "default"; - pinctrl-0 = <0x14c>; - index = <0x01>; - compatible = "firefly,pc9202"; - status = "okay"; - wd-en-gpio = <0x7b 0x14 0x00>; - driver-names = "wdt_base"; - reg = <0x3c>; - }; - }; - - rkcif-mipi-lvds5-sditf { - compatible = "rockchip,rkcif-sditf"; - status = "disabled"; - rockchip,cif = <0x1a2>; - phandle = <0x476>; - }; - - firmware { - - optee { - method = "smc"; - compatible = "linaro,optee-tz"; - phandle = <0x222>; - }; - - sdei { - method = "smc"; - compatible = "arm,sdei-1.0"; - phandle = <0x221>; - }; - - scmi { - shmem = <0x46>; - #address-cells = <0x01>; - #size-cells = <0x00>; - compatible = "arm,scmi-smc"; - phandle = <0x220>; - arm,smc-id = <0x82000010>; - - protocol@16 { - #reset-cells = <0x01>; - reg = <0x16>; - phandle = <0x11a>; - }; - - protocol@14 { - assigned-clocks = <0x0e 0x00 0x0e 0x02 0x0e 0x03>; - assigned-clock-rates = <0x30a32c00 0x30a32c00 0x30a32c00>; - #clock-cells = <0x01>; - reg = <0x14>; - phandle = <0x0e>; - }; - }; - }; - - rkvenc-core@fdbd0000 { - power-domains = <0x60 0x10>; - iommus = <0xc2>; - rockchip,ccu = <0xc3>; - clock-names = "aclk_vcodec\0hclk_vcodec\0clk_core"; - assigned-clocks = <0x02 0x1c5 0x02 0x1c6>; - rockchip,task-capacity = <0x08>; - rockchip,normal-rates = <0x1dcd6500 0x00 0x2faf0800>; - assigned-clock-rates = <0x1dcd6500 0x2faf0800>; - resets = <0x02 0x2f5 0x02 0x2f4 0x02 0x2f6>; - interrupts = <0x00 0x65 0x04>; - clocks = <0x02 0x1c5 0x02 0x1c4 0x02 0x1c6>; - rockchip,srv = <0xb8>; - rockchip,taskqueue-node = <0x07>; - compatible = "rockchip,rkv-encoder-v2-core"; - status = "okay"; - interrupt-names = "irq_rkvenc0"; - rockchip,skip-pmu-idle-request; - reg = <0x00 0xfdbd0000 0x00 0x6000>; - phandle = <0x272>; - reset-names = "video_a\0video_h\0video_core"; - operating-points-v2 = <0xc4>; - }; - - iommu@fdcc7f00 { - power-domains = <0x60 0x1c>; - clock-names = "aclk\0iface"; - interrupts = <0x00 0x88 0x04>; - clocks = <0x02 0x120 0x02 0x121>; - #iommu-cells = <0x00>; - compatible = "rockchip,iommu-v2"; - rockchip,disable-mmu-reset; - status = "disabled"; - interrupt-names = "isp1_mmu"; - reg = <0x00 0xfdcc7f00 0x00 0x100>; - phandle = <0xd1>; - }; - - rkcif-mipi-lvds-sditf { - compatible = "rockchip,rkcif-sditf"; - status = "disabled"; - rockchip,cif = <0x52>; - phandle = <0x22b>; - }; - - syscon@fd5c8000 { - compatible = "rockchip,rk3588-usbdpphy-grf\0syscon"; - reg = <0x00 0xfd5c8000 0x00 0x4000>; - phandle = <0x18c>; - }; - - gpu@fb000000 { - power-domains = <0x60 0x0c>; - downdifferential = <0x0a>; - mali-supply = <0x62>; - clock-names = "clk_mali\0clk_gpu_coregroup\0clk_gpu_stacks\0clk_gpu"; - assigned-clocks = <0x0e 0x05>; - assigned-clock-rates = <0xbebc200>; - interrupts = <0x00 0x5e 0x04 0x00 0x5d 0x04 0x00 0x5c 0x04>; - clocks = <0x0e 0x05 0x02 0x115 0x02 0x116 0x02 0x114>; - upthreshold = <0x1e>; - compatible = "arm,mali-bifrost"; - dynamic-power-coefficient = <0xba6>; - status = "okay"; - interrupt-names = "GPU\0MMU\0JOB"; - mem-supply = <0x62>; - reg = <0x00 0xfb000000 0x00 0x200000>; - phandle = <0x5f>; - operating-points-v2 = <0x61>; - #cooling-cells = <0x02>; - }; - - csi2-dphy4 { - rockchip,hw = <0x2d 0x2e>; - phy-names = "dcphy0\0dcphy1"; - compatible = "rockchip,rk3588-csi2-dphy"; - status = "disabled"; - phys = <0x2f 0x30>; - phandle = <0x213>; - }; - - mipi4-csi2-hw@fdd50000 { - clock-names = "pclk_csi2host"; - reg-names = "csihost_regs"; - resets = <0x02 0x328>; - interrupts = <0x00 0x97 0x04 0x00 0x98 0x04>; - clocks = <0x02 0x1d3>; - compatible = "rockchip,rk3588-mipi-csi2-hw"; - status = "okay"; - interrupt-names = "csi-intr1\0csi-intr2"; - reg = <0x00 0xfdd50000 0x00 0x10000>; - phandle = <0x4b>; - reset-names = "srst_csihost_p"; - }; - - qos@fdf82000 { - compatible = "syscon"; - reg = <0x00 0xfdf82000 0x00 0x20>; - phandle = <0x9d>; - }; - - rkcif-mipi-lvds2-sditf-vir2 { - compatible = "rockchip,rkcif-sditf"; - status = "disabled"; - rockchip,cif = <0x55>; - phandle = <0x235>; - }; - - rkisp1-vir0 { - rockchip,hw = <0x5a>; - compatible = "rockchip,rkisp-vir"; - status = "disabled"; - phandle = <0x23f>; - }; - - qos@fdf41100 { - compatible = "syscon"; - reg = <0x00 0xfdf41100 0x00 0x20>; - phandle = <0xa7>; - }; - - test-power { - status = "okay"; - }; - - usb-5v { - pinctrl-names = "default"; - regulator-boot-on; - gpio = <0xfe 0x03 0x00>; - pinctrl-0 = <0x1ef>; - regulator-always-on; - enable-active-high; - regulator-name = "usb_5v"; - compatible = "regulator-fixed"; - status = "okay"; - phandle = <0x4b1>; - }; - - phy@feda0000 { - clock-names = "pclk\0ref"; - resets = <0x02 0xc0043 0x02 0x3e 0x02 0x3f 0x02 0xc0044>; - clocks = <0x02 0x108 0x02 0x2b6>; - #phy-cells = <0x00>; - compatible = "rockchip,rk3588-mipi-dcphy"; - status = "okay"; - rockchip,grf = <0x190>; - reg = <0x00 0xfeda0000 0x00 0x10000>; - phandle = <0x2f>; - reset-names = "m_phy\0apb\0grf\0s_phy"; - }; - - mod-sleep-regulator { - pinctrl-names = "default"; - regulator-boot-on; - gpio = <0x7b 0x15 0x00>; - pinctrl-0 = <0x1ee>; - regulator-always-on; - enable-active-high; - regulator-name = "mod_sleep"; - compatible = "regulator-fixed"; - status = "okay"; - phandle = <0x4ae>; - - regulator-state-mem { - regulator-on-in-suspend; - }; - }; - - qos@fdf66c00 { - compatible = "syscon"; - reg = <0x00 0xfdf66c00 0x00 0x20>; - phandle = <0x99>; - }; - - crypto@fe370000 { - clock-names = "aclk\0hclk\0sclk\0pka"; - resets = <0x11a 0x0f>; - interrupts = <0x00 0xd1 0x04>; - clocks = <0x0e 0x0b 0x0e 0x0c 0x0e 0x14 0x0e 0x15>; - compatible = "rockchip,rk3588-crypto"; - status = "disabled"; - reg = <0x00 0xfe370000 0x00 0x2000>; - phandle = <0x296>; - reset-names = "crypto-rst"; - }; - - i2s@fddf4000 { - power-domains = <0x60 0x1a>; - rockchip,always-on; - clock-names = "mclk_tx\0mclk_rx\0hclk"; - assigned-clocks = <0x02 0x249>; - assigned-clock-parents = <0x02 0x07>; - resets = <0x02 0x3ef>; - interrupts = <0x00 0xba 0x04>; - clocks = <0x02 0x24c 0x02 0x24c 0x02 0x252>; - dma-names = "tx"; - #sound-dai-cells = <0x00>; - compatible = "rockchip,rk3588-i2s-tdm"; - rockchip,playback-only; - status = "okay"; - reg = <0x00 0xfddf4000 0x00 0x1000>; - phandle = <0x1e0>; - dmas = <0xf2 0x04>; - reset-names = "tx-m"; - rockchip,hdmi-path; - }; - - mipi0-csi2-hw@fdd10000 { - clock-names = "pclk_csi2host"; - reg-names = "csihost_regs"; - resets = <0x02 0x324>; - interrupts = <0x00 0x8f 0x04 0x00 0x90 0x04>; - clocks = <0x02 0x1cf>; - compatible = "rockchip,rk3588-mipi-csi2-hw"; - status = "okay"; - interrupt-names = "csi-intr1\0csi-intr2"; - reg = <0x00 0xfdd10000 0x00 0x10000>; - phandle = <0x47>; - reset-names = "srst_csihost_p"; - }; - - mipi4-csi2 { - rockchip,hw = <0x47 0x48 0x49 0x4a 0x4b 0x4c>; - compatible = "rockchip,rk3588-mipi-csi2"; - status = "disabled"; - phandle = <0x228>; - }; - - jpege-ccu { - compatible = "rockchip,vpu-jpege-ccu"; - status = "okay"; - phandle = <0xbd>; - }; - - dsi@fde30000 { - power-domains = <0x60 0x18>; - #address-cells = <0x01>; - phy-names = "dcphy"; - clock-names = "pclk\0sys_clk"; - resets = <0x02 0x355>; - interrupts = <0x00 0xa8 0x04>; - clocks = <0x02 0x279 0x02 0x27b>; - #size-cells = <0x00>; - compatible = "rockchip,rk3588-mipi-dsi2"; - status = "disabled"; - rockchip,grf = <0xd7>; - phys = <0x30>; - reg = <0x00 0xfde30000 0x00 0x10000>; - phandle = <0x283>; - reset-names = "apb"; - - ports { - #address-cells = <0x01>; - #size-cells = <0x00>; - - port@0 { - #address-cells = <0x01>; - #size-cells = <0x00>; - reg = <0x00>; - phandle = <0x284>; - - endpoint@1 { - remote-endpoint = <0x3a>; - status = "disabled"; - reg = <0x01>; - phandle = <0xef>; - }; - - endpoint@0 { - remote-endpoint = <0xf4>; - status = "disabled"; - reg = <0x00>; - phandle = <0xea>; - }; - }; - }; - }; - - iommu@fcb00000 { - interrupts = <0x00 0x17d 0x04 0x00 0x17f 0x04 0x00 0x182 0x04 0x00 0x17b 0x04>; - #iommu-cells = <0x01>; - compatible = "arm,smmu-v3"; - status = "disabled"; - interrupt-names = "eventq\0gerror\0priq\0cmdq-sync"; - reg = <0x00 0xfcb00000 0x00 0x200000>; - phandle = <0x257>; - }; - - rkcif-mipi-lvds3 { - iommus = <0x50>; - rockchip,hw = <0x4f>; - compatible = "rockchip,rkcif-mipi-lvds"; - status = "disabled"; - phandle = <0x57>; - }; - - vcc-hub-regulator { - regulator-boot-on; - gpio = <0x182 0x01 0x00>; - regulator-always-on; - enable-active-high; - regulator-name = "vcc_hub"; - compatible = "regulator-fixed"; - status = "okay"; - phandle = <0x4af>; - }; - - syscon@fd5ac000 { - compatible = "rockchip,rk3588-usb-grf\0syscon"; - reg = <0x00 0xfd5ac000 0x00 0x4000>; - phandle = <0x74>; - }; - - qos@fdf40200 { - compatible = "syscon"; - reg = <0x00 0xfdf40200 0x00 0x20>; - phandle = <0xa9>; - }; - - rkisp@fdcb0000 { - power-domains = <0x60 0x1b>; - iommus = <0xd0>; - clock-names = "aclk_isp\0hclk_isp\0clk_isp_core\0clk_isp_core_marvin\0clk_isp_core_vicap"; - interrupts = <0x00 0x83 0x04 0x00 0x85 0x04 0x00 0x86 0x04>; - clocks = <0x02 0x1de 0x02 0x1df 0x02 0x1db 0x02 0x1dc 0x02 0x1dd>; - compatible = "rockchip,rk3588-rkisp"; - status = "okay"; - interrupt-names = "isp_irq\0mi_irq\0mipi_irq"; - reg = <0x00 0xfdcb0000 0x00 0x7f00>; - phandle = <0x58>; - }; - - serial@feba0000 { - reg-io-width = <0x04>; - pinctrl-names = "default"; - pinctrl-0 = <0x166>; - clock-names = "baudclk\0apb_pclk"; - interrupts = <0x00 0x152 0x04>; - clocks = <0x02 0xcf 0x02 0xb1>; - compatible = "rockchip,rk3588-uart\0snps,dw-apb-uart"; - status = "disabled"; - reg = <0x00 0xfeba0000 0x00 0x100>; - phandle = <0x2cf>; - dmas = <0xf2 0x07 0xf2 0x08>; - reg-shift = <0x02>; - }; - - rkcif-mipi-lvds1-sditf-vir3 { - compatible = "rockchip,rkcif-sditf"; - status = "disabled"; - rockchip,cif = <0x53>; - phandle = <0x232>; - }; - - chosen { - linux,initrd-end = <0x00 0xaac72ae>; - bootargs = "storagemedia=emmc androidboot.storagemedia=emmc androidboot.mode=normal storagenode=/mmc@fe2e0000 androidboot.verifiedbootstate=orange ro rootwait earlycon=uart8250,mmio32,0xfeb50000 console=ttyFIQ0 irqchip.gicv3_pseudo_nmi=0 root=PARTLABEL=rootfs rootfstype=ext4 overlayroot=device:dev=PARTLABEL=userdata,fstype=ext4,mkfs=1 coherent_pool=1m systemd.gpt_auto=0 cgroup_enable=memory swapaccount=1 net.ifnames=0 rcupdate.rcu_expedited=1 rcu_nocbs=all comm-05/28/2025 androidboot.fwver=ddr-v1.15-d5483af87d,spl-v1.13,bl31-v1.44,bl32-v1.15,uboot--boot"; - linux,initrd-start = <0x00 0xa200000>; - phandle = <0x48d>; - }; - - hdmi@fde80000 { - power-domains = <0x60 0x1a>; - reg-io-width = <0x04>; - pinctrl-names = "default"; - phy-names = "hdmi"; - pinctrl-0 = <0xf9 0xfa 0xfb 0xfc>; - clock-names = "pclk\0hpd\0earc\0hdmitx_ref\0aud\0dclk_vp0\0dclk_vp1\0dclk_vp2\0dclk_vp3\0hclk_vo1\0link_clk"; - resets = <0x02 0x3d0 0x02 0x49c>; - interrupts = <0x00 0xa9 0x04 0x00 0xaa 0x04 0x00 0xab 0x04 0x00 0xac 0x04 0x00 0x168 0x04>; - clocks = <0x02 0x221 0x02 0x265 0x02 0x222 0x02 0x223 0x02 0x246 0x02 0x274 0x02 0x275 0x02 0x276 0x02 0x277 0x05 0x35>; - #sound-dai-cells = <0x00>; - compatible = "rockchip,rk3588-dw-hdmi"; - status = "okay"; - rockchip,grf = <0xc8>; - phys = <0xfd>; - enable-gpios = <0xfe 0x08 0x00>; - reg = <0x00 0xfde80000 0x00 0x10000 0x00 0xfde90000 0x00 0x10000>; - phandle = <0x1d4>; - reset-names = "ref\0hdp"; - rockchip,vo1_grf = <0xd8>; - - ports { - #address-cells = <0x01>; - #size-cells = <0x00>; - - port@0 { - #address-cells = <0x01>; - #size-cells = <0x00>; - reg = <0x00>; - phandle = <0x288>; - - endpoint@1 { - remote-endpoint = <0xff>; - status = "disabled"; - reg = <0x01>; - phandle = <0xe2>; - }; - - endpoint@2 { - remote-endpoint = <0x100>; - status = "disabled"; - reg = <0x02>; - phandle = <0xe8>; - }; - - endpoint@0 { - remote-endpoint = <0x3c>; - status = "okay"; - reg = <0x00>; - phandle = <0xdc>; - }; - }; - }; - }; - - cluster2-opp-table { - rockchip,pvtm-offset = <0x18>; - rockchip,pvtm-sample-time = <0x44c>; - rockchip,pvtm-hw = <0x06>; - nvmem-cells = <0x27 0x28 0x21>; - rockchip,low-temp = <0x2710>; - rockchip,pvtm-voltage-sel-hw = <0x00 0x603 0x00 0x604 0x61c 0x01 0x61d 0x635 0x02 0x636 0x64e 0x03 0x64f 0x66c 0x04 0x66d 0x68a 0x05 0x68b 0x6a8 0x06 0x6a9 0x270f 0x07>; - rockchip,pvtm-thermal-zone = "soc-thermal"; - rockchip,pvtm-low-len-sel = <0x03>; - rockchip,high-temp-max-freq = <0x21b100>; - opp-shared; - rockchip,reboot-freq = <0x1b7740>; - rockchip,pvtm-freq = <0x188940>; - rockchip,pvtm-ref-temp = <0x19>; - low-volt-mem-read-margin = <0x04>; - volt-mem-read-margin = <0xd0bd8 0x01 0xbac48 0x02 0xa4cb8 0x03 0x78d98 0x04>; - compatible = "operating-points-v2"; - rockchip,low-temp-min-volt = <0xb71b0>; - rockchip,grf = <0x29>; - nvmem-cell-names = "leakage\0opp-info\0specification_serial_number"; - rockchip,pvtm-voltage-sel = <0x00 0x63b 0x00 0x63c 0x64f 0x01 0x650 0x668 0x02 0x669 0x68b 0x03 0x68c 0x6ae 0x04 0x6af 0x6cf 0x05 0x6d0 0x6f0 0x06 0x6f1 0x270f 0x07>; - phandle = <0x1a>; - rockchip,idle-threshold-freq = <0x21b100>; - rockchip,pvtm-temp-prop = <0x10e 0x10e>; - rockchip,temp-hysteresis = <0x1388>; - rockchip,high-temp = <0x14c08>; - rockchip,pvtm-pvtpll; - rockchip,supported-hw; - intermediate-threshold-freq = <0xf6180>; - rockchip,pvtm-volt = <0xb71b0>; - - opp-j-m-2016000000 { - opp-microvolt = <0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0>; - opp-microvolt-L6 = <0xd8acc 0xd8acc 0xe7ef0 0xd8acc 0xd8acc 0xe7ef0>; - opp-microvolt-L4 = <0xdec74 0xdec74 0xe7ef0 0xdec74 0xdec74 0xe7ef0>; - opp-microvolt-L2 = <0xe4e1c 0xe4e1c 0xe7ef0 0xe4e1c 0xe4e1c 0xe7ef0>; - opp-hz = <0x00 0x7829b800>; - opp-supported-hw = <0x06 0xffff>; - opp-microvolt-L7 = <0xd59f8 0xd59f8 0xe7ef0 0xd59f8 0xd59f8 0xe7ef0>; - opp-microvolt-L5 = <0xdbba0 0xdbba0 0xe7ef0 0xdbba0 0xdbba0 0xe7ef0>; - opp-microvolt-L3 = <0xe1d48 0xe1d48 0xe7ef0 0xe1d48 0xe1d48 0xe7ef0>; - clock-latency-ns = <0x9c40>; - opp-microvolt-L1 = <0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0>; - }; - - opp-1200000000 { - opp-microvolt = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; - opp-hz = <0x00 0x47868c00>; - opp-supported-hw = <0xf9 0xffff>; - clock-latency-ns = <0x9c40>; - }; - - opp-j-m-1416000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - opp-hz = <0x00 0x54667200>; - opp-microvolt-L0 = <0xba284 0xba284 0xe7ef0 0xba284 0xba284 0xe7ef0>; - opp-supported-hw = <0x06 0xffff>; - opp-suspend; - clock-latency-ns = <0x9c40>; - }; - - opp-1008000000 { - opp-microvolt = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; - opp-hz = <0x00 0x3c14dc00>; - opp-supported-hw = <0xf9 0xffff>; - clock-latency-ns = <0x9c40>; - }; - - opp-2256000000 { - opp-microvolt = <0xf4240 0xf4240 0xf4240 0xf4240 0xf4240 0xf4240>; - opp-hz = <0x00 0x8677d400>; - opp-supported-hw = <0xf9 0x13>; - clock-latency-ns = <0x9c40>; - }; - - opp-j-m-1200000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - opp-hz = <0x00 0x47868c00>; - opp-supported-hw = <0x06 0xffff>; - clock-latency-ns = <0x9c40>; - }; - - opp-j-m-1008000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - opp-hz = <0x00 0x3c14dc00>; - opp-supported-hw = <0x06 0xffff>; - clock-latency-ns = <0x9c40>; - }; - - opp-j-m-816000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - opp-hz = <0x00 0x30a32c00>; - opp-supported-hw = <0x06 0xffff>; - clock-latency-ns = <0x9c40>; - }; - - opp-2400000000 { - opp-microvolt = <0xf4240 0xf4240 0xf4240 0xf4240 0xf4240 0xf4240>; - opp-hz = <0x00 0x8f0d1800>; - opp-supported-hw = <0xf9 0x80>; - clock-latency-ns = <0x9c40>; - }; - - opp-1800000000 { - opp-microvolt = <0xcf850 0xcf850 0xf4240 0xcf850 0xcf850 0xf4240>; - opp-microvolt-L6 = <0xbd358 0xbd358 0xf4240 0xbd358 0xbd358 0xf4240>; - opp-microvolt-L4 = <0xc3500 0xc3500 0xf4240 0xc3500 0xc3500 0xf4240>; - opp-microvolt-L2 = <0xc96a8 0xc96a8 0xf4240 0xc96a8 0xc96a8 0xf4240>; - opp-hz = <0x00 0x6b49d200>; - opp-supported-hw = <0xf9 0xffff>; - opp-microvolt-L7 = <0xba284 0xba284 0xf4240 0xba284 0xba284 0xf4240>; - opp-microvolt-L5 = <0xc042c 0xc042c 0xf4240 0xc042c 0xc042c 0xf4240>; - opp-microvolt-L3 = <0xc65d4 0xc65d4 0xf4240 0xc65d4 0xc65d4 0xf4240>; - clock-latency-ns = <0x9c40>; - opp-microvolt-L1 = <0xcc77c 0xcc77c 0xf4240 0xcc77c 0xcc77c 0xf4240>; - }; - - opp-j-m-600000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - opp-hz = <0x00 0x23c34600>; - opp-supported-hw = <0x06 0xffff>; - clock-latency-ns = <0x9c40>; - }; - - opp-2208000000 { - opp-microvolt = <0xf116c 0xf116c 0xf4240 0xf116c 0xf116c 0xf4240>; - opp-microvolt-L6 = <0xe1d48 0xe1d48 0xf4240 0xe1d48 0xe1d48 0xf4240>; - opp-microvolt-L4 = <0xeafc4 0xeafc4 0xf4240 0xeafc4 0xeafc4 0xf4240>; - opp-hz = <0x00 0x839b6800>; - opp-supported-hw = <0xf9 0xffff>; - opp-microvolt-L7 = <0xdec74 0xdec74 0xf4240 0xdec74 0xdec74 0xf4240>; - opp-microvolt-L5 = <0xe7ef0 0xe7ef0 0xf4240 0xe7ef0 0xe7ef0 0xf4240>; - opp-microvolt-L3 = <0xee098 0xee098 0xf4240 0xee098 0xee098 0xf4240>; - clock-latency-ns = <0x9c40>; - }; - - opp-1608000000 { - opp-microvolt = <0xba284 0xba284 0xf4240 0xba284 0xba284 0xf4240>; - opp-microvolt-L6 = <0xaae60 0xaae60 0xf4240 0xaae60 0xaae60 0xf4240>; - opp-microvolt-L4 = <0xb1008 0xb1008 0xf4240 0xb1008 0xb1008 0xf4240>; - opp-microvolt-L2 = <0xb71b0 0xb71b0 0xf4240 0xb71b0 0xb71b0 0xf4240>; - opp-hz = <0x00 0x5fd82200>; - opp-supported-hw = <0xf9 0xffff>; - opp-microvolt-L7 = <0xaae60 0xaae60 0xf4240 0xaae60 0xaae60 0xf4240>; - opp-microvolt-L5 = <0xadf34 0xadf34 0xf4240 0xadf34 0xadf34 0xf4240>; - opp-microvolt-L3 = <0xb40dc 0xb40dc 0xf4240 0xb40dc 0xb40dc 0xf4240>; - clock-latency-ns = <0x9c40>; - }; - - opp-j-m-408000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - opp-hz = <0x00 0x18519600>; - opp-supported-hw = <0x06 0xffff>; - clock-latency-ns = <0x9c40>; - }; - - opp-j-m-1800000000 { - opp-microvolt = <0xd59f8 0xd59f8 0xe7ef0 0xd59f8 0xd59f8 0xe7ef0>; - opp-microvolt-L6 = <0xc3500 0xc3500 0xe7ef0 0xc3500 0xc3500 0xe7ef0>; - opp-microvolt-L4 = <0xc96a8 0xc96a8 0xe7ef0 0xc96a8 0xc96a8 0xe7ef0>; - opp-microvolt-L2 = <0xcf850 0xcf850 0xe7ef0 0xcf850 0xcf850 0xe7ef0>; - opp-hz = <0x00 0x6b49d200>; - opp-supported-hw = <0x06 0xffff>; - opp-microvolt-L7 = <0xc042c 0xc042c 0xe7ef0 0xc042c 0xc042c 0xe7ef0>; - opp-microvolt-L5 = <0xc65d4 0xc65d4 0xe7ef0 0xc65d4 0xc65d4 0xe7ef0>; - opp-microvolt-L3 = <0xcc77c 0xcc77c 0xe7ef0 0xcc77c 0xcc77c 0xe7ef0>; - clock-latency-ns = <0x9c40>; - opp-microvolt-L1 = <0xd2924 0xd2924 0xe7ef0 0xd2924 0xd2924 0xe7ef0>; - }; - - opp-2352000000 { - opp-microvolt = <0xf4240 0xf4240 0xf4240 0xf4240 0xf4240 0xf4240>; - opp-hz = <0x00 0x8c30ac00>; - opp-supported-hw = <0xf9 0x48>; - clock-latency-ns = <0x9c40>; - }; - - opp-816000000 { - opp-microvolt = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; - opp-hz = <0x00 0x30a32c00>; - opp-supported-hw = <0xf9 0xffff>; - clock-latency-ns = <0x9c40>; - }; - - opp-j-m-1608000000 { - opp-microvolt = <0xc042c 0xc042c 0xe7ef0 0xc042c 0xc042c 0xe7ef0>; - opp-microvolt-L6 = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - opp-microvolt-L4 = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - opp-microvolt-L2 = <0xbd358 0xbd358 0xe7ef0 0xbd358 0xbd358 0xe7ef0>; - opp-hz = <0x00 0x5fd82200>; - opp-supported-hw = <0x06 0xffff>; - opp-microvolt-L7 = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - opp-microvolt-L5 = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - opp-microvolt-L3 = <0xba284 0xba284 0xe7ef0 0xba284 0xba284 0xe7ef0>; - clock-latency-ns = <0x9c40>; - }; - - opp-600000000 { - opp-microvolt = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; - opp-hz = <0x00 0x23c34600>; - opp-supported-hw = <0xf9 0xffff>; - clock-latency-ns = <0x9c40>; - }; - - opp-2016000000 { - opp-microvolt = <0xe1d48 0xe1d48 0xf4240 0xe1d48 0xe1d48 0xf4240>; - opp-microvolt-L6 = <0xcf850 0xcf850 0xf4240 0xcf850 0xcf850 0xf4240>; - opp-microvolt-L4 = <0xd59f8 0xd59f8 0xf4240 0xd59f8 0xd59f8 0xf4240>; - opp-microvolt-L2 = <0xdbba0 0xdbba0 0xf4240 0xdbba0 0xdbba0 0xf4240>; - opp-hz = <0x00 0x7829b800>; - opp-supported-hw = <0xf9 0xffff>; - opp-microvolt-L7 = <0xcc77c 0xcc77c 0xf4240 0xcc77c 0xcc77c 0xf4240>; - opp-microvolt-L5 = <0xd2924 0xd2924 0xf4240 0xd2924 0xd2924 0xf4240>; - opp-microvolt-L3 = <0xd8acc 0xd8acc 0xf4240 0xd8acc 0xd8acc 0xf4240>; - clock-latency-ns = <0x9c40>; - opp-microvolt-L1 = <0xdec74 0xdec74 0xf4240 0xdec74 0xdec74 0xf4240>; - }; - - opp-1416000000 { - opp-microvolt = <0xb1008 0xb1008 0xf4240 0xb1008 0xb1008 0xf4240>; - opp-microvolt-L6 = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; - opp-microvolt-L4 = <0xaae60 0xaae60 0xf4240 0xaae60 0xaae60 0xf4240>; - opp-microvolt-L2 = <0xadf34 0xadf34 0xf4240 0xadf34 0xadf34 0xf4240>; - opp-hz = <0x00 0x54667200>; - opp-supported-hw = <0xf9 0xffff>; - opp-microvolt-L7 = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; - opp-microvolt-L5 = <0xa7d8c 0xa7d8c 0xf4240 0xa7d8c 0xa7d8c 0xf4240>; - opp-microvolt-L3 = <0xaae60 0xaae60 0xf4240 0xaae60 0xaae60 0xf4240>; - clock-latency-ns = <0x9c40>; - }; - - opp-408000000 { - opp-microvolt = <0xa4cb8 0xa4cb8 0xf4240 0xa4cb8 0xa4cb8 0xf4240>; - opp-hz = <0x00 0x18519600>; - opp-supported-hw = <0xf9 0xffff>; - opp-suspend; - clock-latency-ns = <0x9c40>; - }; - - opp-2304000000 { - opp-microvolt = <0xf4240 0xf4240 0xf4240 0xf4240 0xf4240 0xf4240>; - opp-hz = <0x00 0x89544000>; - opp-supported-hw = <0xf9 0x24>; - clock-latency-ns = <0x9c40>; - }; - }; - - rkcif-dvp { - iommus = <0x50>; - rockchip,hw = <0x4f>; - compatible = "rockchip,rkcif-dvp"; - status = "disabled"; - phandle = <0x51>; - }; - - rkisp0-vir2 { - rockchip,hw = <0x58>; - compatible = "rockchip,rkisp-vir"; - status = "okay"; - phandle = <0x23d>; - - port { - #address-cells = <0x01>; - #size-cells = <0x00>; - - endpoint@0 { - remote-endpoint = <0x59>; - reg = <0x00>; - phandle = <0x56>; - }; - }; - }; - - i2c@fea90000 { - pinctrl-names = "default"; - #address-cells = <0x01>; - pinctrl-0 = <0x148>; - clock-names = "i2c\0pclk"; - resets = <0x02 0xb0 0x02 0xa8>; - interrupts = <0x00 0x13e 0x04>; - clocks = <0x02 0x8d 0x02 0x85>; - #size-cells = <0x00>; - compatible = "rockchip,rk3588-i2c\0rockchip,rk3399-i2c"; - status = "okay"; - reg = <0x00 0xfea90000 0x00 0x1000>; - phandle = <0x2a4>; - reset-names = "i2c\0apb"; - - rk8602@42 { - regulator-max-microvolt = <0xe7ef0>; - regulator-boot-on; - rockchip,suspend-voltage-selector = <0x01>; - regulator-always-on; - regulator-min-microvolt = <0x86470>; - regulator-name = "vdd_npu_s0"; - regulator-ramp-delay = <0x8fc>; - compatible = "rockchip,rk8602"; - reg = <0x42>; - phandle = <0xb3>; - vin-supply = <0x78>; - regulator-compatible = "rk860x-reg"; - - regulator-state-mem { - regulator-off-in-suspend; - }; - }; - }; - - syscon@fd58a000 { - compatible = "rockchip,rk3588-pmu1-grf\0syscon"; - reg = <0x00 0xfd58a000 0x00 0x2000>; - phandle = <0x104>; - }; - - syscon@fd5ec000 { - compatible = "rockchip,mipi-dcphy-grf\0syscon"; - reg = <0x00 0xfd5ec000 0x00 0x4000>; - phandle = <0x191>; - }; - - venc-opp-table { - nvmem-cells = <0xc6 0xc7>; - rockchip,leakage-voltage-sel = <0x01 0x0f 0x00 0x10 0x19 0x01 0x1a 0xfe 0x02>; - volt-mem-read-margin = <0xd0bd8 0x01 0xbac48 0x02 0xa4cb8 0x03 0x78d98 0x04>; - compatible = "operating-points-v2"; - rockchip,grf = <0xc8>; - nvmem-cell-names = "leakage\0opp-info"; - phandle = <0xc4>; - - opp-800000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; - opp-microvolt-L2 = <0xb71b0 0xb71b0 0xcf850 0xb71b0 0xb71b0 0xcf850>; - opp-hz = <0x00 0x2faf0800>; - opp-microvolt-L0 = <0xc3500 0xc3500 0xcf850 0xc3500 0xc3500 0xcf850>; - opp-microvolt-L1 = <0xbd358 0xbd358 0xcf850 0xbd358 0xbd358 0xcf850>; - }; - }; - - iommu@fdc38700 { - power-domains = <0x60 0x0e>; - rockchip,shootdown-entire; - clock-names = "aclk\0iface"; - interrupts = <0x00 0x60 0x04>; - clocks = <0x02 0x190 0x02 0x18f>; - rockchip,enable-cmd-retry; - #iommu-cells = <0x00>; - compatible = "rockchip,iommu-v2"; - rockchip,disable-mmu-reset; - status = "okay"; - interrupt-names = "irq_rkvdec0_mmu"; - reg = <0x00 0xfdc38700 0x00 0x40 0x00 0xfdc38740 0x00 0x40>; - phandle = <0xc9>; - rockchip,master-handle-irq; - }; - - qos@fdf35200 { - compatible = "syscon"; - reg = <0x00 0xfdf35200 0x00 0x20>; - phandle = <0x88>; - }; - - qos@fdf71000 { - compatible = "syscon"; - reg = <0x00 0xfdf71000 0x00 0x20>; - phandle = <0x86>; - }; - - syscon@fd598000 { - compatible = "rockchip,rk3588-dsu-grf\0syscon"; - reg = <0x00 0xfd598000 0x00 0x100>; - phandle = <0x23>; - }; - - csi2-dphy2 { - rockchip,hw = <0x2d 0x2e>; - phy-names = "dcphy0\0dcphy1"; - compatible = "rockchip,rk3588-csi2-dphy"; - status = "disabled"; - phys = <0x2f 0x30>; - phandle = <0x211>; - }; - - syscon@fd5b4000 { - compatible = "rockchip,mipi-dphy-grf\0syscon"; - reg = <0x00 0xfd5b4000 0x00 0x1000>; - phandle = <0x192>; - }; - - uio@fe1b0000 { - compatible = "rockchip,uio-gmac"; - status = "disabled"; - reg = <0x00 0xfe1b0000 0x00 0x10000>; - phandle = <0x488>; - rockchip,ethernet = <0x1bd>; - }; - - iommu@fdb70f00 { - power-domains = <0x60 0x1e>; - clock-names = "aclk\0iface"; - interrupts = <0x00 0x73 0x04>; - clocks = <0x02 0x18a 0x02 0x189>; - #iommu-cells = <0x00>; - compatible = "rockchip,iommu-v2"; - status = "okay"; - interrupt-names = "rga3_1_mmu"; - reg = <0x00 0xfdb70f00 0x00 0x100>; - phandle = <0xba>; - }; - - vcc5v0-usb { - regulator-max-microvolt = <0x4c4b40>; - regulator-boot-on; - regulator-always-on; - regulator-min-microvolt = <0x4c4b40>; - regulator-name = "vcc5v0_usb"; - compatible = "regulator-fixed"; - phandle = <0x1dd>; - vin-supply = <0x1cd>; - }; - - fiq-debugger { - pinctrl-names = "default"; - rockchip,irq-mode-enable = <0x01>; - rockchip,baudrate = <0x1c200>; - pinctrl-0 = <0x1ce>; - interrupts = <0x00 0x1a7 0x08>; - rockchip,wake-irq = <0x00>; - compatible = "rockchip,fiq-debugger"; - status = "okay"; - phandle = <0x490>; - rockchip,serial-id = <0x02>; - }; - - phy@fed70000 { - clock-names = "ref\0apb"; - resets = <0x02 0x486 0x02 0xc003f 0x02 0xc0040 0x02 0xc0041>; - clocks = <0x02 0x2b5 0x02 0x268>; - #phy-cells = <0x00>; - compatible = "rockchip,rk3588-hdptx-phy"; - status = "disabled"; - rockchip,grf = <0x1c7>; - reg = <0x00 0xfed70000 0x00 0x2000>; - phandle = <0x1af>; - reset-names = "apb\0init\0cmn\0lane"; - }; - - ethernet@fe1b0000 { - power-domains = <0x60 0x21>; - pinctrl-names = "default"; - phy-mode = "rgmii-rxid"; - snps,mixed-burst; - snps,mtl-rx-config = <0x1bf>; - snps,reset-active-low; - pinctrl-0 = <0x1c1 0x1c2 0x1c3 0x1c4 0x1c5>; - clock-names = "stmmaceth\0clk_mac_ref\0pclk_mac\0aclk_mac\0ptp_ref"; - snps,mtl-tx-config = <0x1c0>; - local-mac-address = [da 2f 1a d4 a9 85]; - resets = <0x02 0x20a>; - interrupts = <0x00 0xe3 0x04 0x00 0xe2 0x04>; - clocks = <0x02 0x144 0x02 0x145 0x02 0x167 0x02 0x16c 0x02 0x142>; - clock_in_out = "output"; - snps,tso; - compatible = "rockchip,rk3588-gmac\0snps,dwmac-4.20a"; - status = "okay"; - rockchip,grf = <0xc8>; - interrupt-names = "macirq\0eth_wake_irq"; - snps,reset-gpio = <0x10d 0x02 0x01>; - reg = <0x00 0xfe1b0000 0x00 0x10000>; - rockchip,php_grf = <0x76>; - phandle = <0x1bd>; - phy-handle = <0x1c6>; - reset-names = "stmmaceth"; - tx_delay = <0x31>; - snps,axi-config = <0x1be>; - snps,reset-delays-us = <0x00 0x4e20 0x186a0>; - - mdio { - #address-cells = <0x01>; - #size-cells = <0x00>; - compatible = "snps,dwmac-mdio"; - phandle = <0x489>; - - phy@1 { - compatible = "ethernet-phy-ieee802.3-c22"; - reg = <0x01>; - phandle = <0x1c6>; - }; - }; - - tx-queues-config { - phandle = <0x1c0>; - snps,tx-queues-to-use = <0x01>; - - queue0 { - }; - }; - - stmmac-axi-config { - snps,wr_osr_lmt = <0x04>; - phandle = <0x1be>; - snps,blen = <0x00 0x00 0x00 0x00 0x10 0x08 0x04>; - snps,rd_osr_lmt = <0x08>; - }; - - rx-queues-config { - snps,rx-queues-to-use = <0x01>; - phandle = <0x1bf>; - - queue0 { - }; - }; - }; - - pvtm@fda60000 { - #address-cells = <0x01>; - #size-cells = <0x00>; - compatible = "rockchip,rk3588-litcore-pvtm"; - reg = <0x00 0xfda60000 0x00 0x100>; - - pvtm@2 { - clock-names = "clk\0pclk"; - clocks = <0x02 0x2ca 0x02 0x1b>; - reg = <0x02>; - }; - }; - - rkispp@fdcd8000 { - power-domains = <0x60 0x1d>; - iommus = <0xd3>; - clock-names = "aclk_ispp\0hclk_ispp\0clk_ispp"; - assigned-clocks = <0x02 0x1d9>; - assigned-clock-rates = <0x5f5e100>; - interrupts = <0x00 0x8d 0x04>; - clocks = <0x02 0x1d8 0x02 0x1d9 0x02 0x1da>; - compatible = "rockchip,rk3588-rkispp"; - status = "disabled"; - interrupt-names = "fec_irq"; - reg = <0x00 0xfdcd8000 0x00 0xf00>; - phandle = <0x5c>; - }; - - qos@fdf66000 { - compatible = "syscon"; - reg = <0x00 0xfdf66000 0x00 0x20>; - phandle = <0x93>; - }; - - syscon@fd592000 { - compatible = "rockchip,rk3588-bigcore1-grf\0syscon"; - reg = <0x00 0xfd592000 0x00 0x100>; - phandle = <0x29>; - }; - - rkcif-mipi-lvds1 { - iommus = <0x50>; - rockchip,hw = <0x4f>; - compatible = "rockchip,rkcif-mipi-lvds"; - status = "disabled"; - phandle = <0x53>; - }; - - av1d@fdc70000 { - power-domains = <0x60 0x17>; - iommus = <0xce>; - clock-names = "aclk_vcodec\0hclk_vcodec"; - reg-names = "vcd\0cache\0afbc"; - assigned-clocks = <0x02 0x49 0x02 0x4b>; - rockchip,normal-rates = <0x17d78400 0x17d78400>; - assigned-clock-rates = <0x17d78400 0x17d78400>; - resets = <0x02 0x442 0x02 0x445>; - interrupts = <0x00 0x6c 0x04 0x00 0x6b 0x04 0x00 0x6a 0x04>; - clocks = <0x02 0x49 0x02 0x4b>; - rockchip,srv = <0xb8>; - rockchip,taskqueue-node = <0x0b>; - compatible = "rockchip,av1-decoder"; - status = "okay"; - interrupt-names = "irq_av1d\0irq_cache\0irq_afbc"; - reg = <0x00 0xfdc70000 0x00 0x800 0x00 0xfdc80000 0x00 0x400 0x00 0xfdc90000 0x00 0x400>; - phandle = <0x276>; - reset-names = "video_a\0video_h"; - }; - - qos@fdf40500 { - compatible = "syscon"; - reg = <0x00 0xfdf40500 0x00 0x20>; - phandle = <0xa3>; - }; - - vcc-hub-reset-regulator { - regulator-boot-on; - gpio = <0x182 0x04 0x00>; - regulator-always-on; - enable-active-high; - regulator-name = "vcc_hub_reset"; - compatible = "regulator-fixed"; - status = "disabled"; - phandle = <0x4a0>; - }; - - qos@fdf72200 { - compatible = "syscon"; - reg = <0x00 0xfdf72200 0x00 0x20>; - phandle = <0x83>; - }; - - serial@feb70000 { - reg-io-width = <0x04>; - pinctrl-names = "default"; - pinctrl-0 = <0x163>; - clock-names = "baudclk\0apb_pclk"; - interrupts = <0x00 0x14f 0x04>; - clocks = <0x02 0xc3 0x02 0xae>; - compatible = "rockchip,rk3588-uart\0snps,dw-apb-uart"; - status = "disabled"; - reg = <0x00 0xfeb70000 0x00 0x100>; - phandle = <0x2cc>; - dmas = <0xf1 0x09 0xf1 0x0a>; - reg-shift = <0x02>; - }; - - rkcif-mipi-lvds2-sditf { - compatible = "rockchip,rkcif-sditf"; - status = "okay"; - rockchip,cif = <0x55>; - phandle = <0x233>; - - port { - - endpoint { - remote-endpoint = <0x56>; - phandle = <0x59>; - }; - }; - }; - - i2c@feca0000 { - pinctrl-names = "default"; - #address-cells = <0x01>; - pinctrl-0 = <0x186>; - clock-names = "i2c\0pclk"; - resets = <0x02 0xb7 0x02 0xaf>; - interrupts = <0x00 0x145 0x04>; - clocks = <0x02 0x94 0x02 0x8c>; - #size-cells = <0x00>; - compatible = "rockchip,rk3588-i2c\0rockchip,rk3399-i2c"; - status = "disabled"; - reg = <0x00 0xfeca0000 0x00 0x1000>; - phandle = <0x2e5>; - reset-names = "i2c\0apb"; - }; - - vcc-sdcard-pwr-en-regulator { - regulator-boot-on; - gpio = <0xfe 0x07 0x00>; - regulator-always-on; - enable-active-high; - regulator-name = "vcc_sdcard_pwr_en"; - compatible = "regulator-fixed"; - status = "okay"; - phandle = <0x4a5>; - }; - - rkcif-mipi-lvds1-sditf-vir1 { - compatible = "rockchip,rkcif-sditf"; - status = "disabled"; - rockchip,cif = <0x53>; - phandle = <0x230>; - }; - - qos@fdf63000 { - compatible = "syscon"; - reg = <0x00 0xfdf63000 0x00 0x20>; - phandle = <0x8c>; - }; - - phy@fee00000 { - rockchip,pipe-grf = <0x76>; - clock-names = "refclk\0apbclk\0phpclk"; - assigned-clocks = <0x02 0x2bd>; - assigned-clock-rates = <0x5f5e100>; - resets = <0x02 0x20005 0x02 0x4d6>; - clocks = <0x02 0x2bd 0x02 0x185 0x02 0x166>; - #phy-cells = <0x01>; - compatible = "rockchip,rk3588-naneng-combphy"; - status = "okay"; - rockchip,pipe-phy-grf = <0x194>; - reg = <0x00 0xfee00000 0x00 0x100>; - phandle = <0x108>; - reset-names = "combphy-apb\0combphy"; - }; - - can@fea50000 { - pinctrl-names = "default"; - pinctrl-0 = <0x145>; - clock-names = "baudclk\0apb_pclk"; - resets = <0x02 0xb9 0x02 0xb8>; - interrupts = <0x00 0x155 0x04>; - clocks = <0x02 0x70 0x02 0x6f>; - compatible = "rockchip,can-2.0"; - status = "disabled"; - tx-fifo-depth = <0x01>; - rx-fifo-depth = <0x06>; - reg = <0x00 0xfea50000 0x00 0x1000>; - phandle = <0x2a0>; - reset-names = "can\0can-apb"; - }; - - pdm@fe4b0000 { - pinctrl-names = "default\0idle\0clk"; - pinctrl-2 = <0x139 0x13a>; - pinctrl-0 = <0x134 0x135 0x136 0x137>; - clock-names = "pdm_clk\0pdm_hclk"; - clocks = <0x02 0x29f 0x02 0x29e>; - dma-names = "rx"; - #sound-dai-cells = <0x00>; - compatible = "rockchip,rk3588-pdm"; - pinctrl-1 = <0x138>; - status = "disabled"; - reg = <0x00 0xfe4b0000 0x00 0x1000>; - phandle = <0x29a>; - dmas = <0x7c 0x04>; - }; - - rkisp-unite-mmu@fdcb7f00 { - power-domains = <0x60 0x1c>; - clock-names = "aclk0\0iface0\0aclk1\0iface1"; - interrupts = <0x00 0x84 0x04 0x00 0x88 0x04>; - clocks = <0x02 0x1de 0x02 0x1df 0x02 0x120 0x02 0x121>; - #iommu-cells = <0x00>; - compatible = "rockchip,iommu-v2"; - rockchip,disable-mmu-reset; - status = "disabled"; - interrupt-names = "isp0_mmu\0isp1_mmu"; - reg = <0x00 0xfdcb7f00 0x00 0x100 0x00 0xfdcc7f00 0x00 0x100>; - phandle = <0xcf>; - }; - - syscon@fd5a6000 { - clocks = <0x72>; - compatible = "rockchip,rk3588-vo-grf\0syscon"; - reg = <0x00 0xfd5a6000 0x00 0x2000>; - phandle = <0xf5>; - }; - - cpus { - #address-cells = <0x01>; - #size-cells = <0x00>; - - l2-cache-b0 { - cache-size = <0x80000>; - cache-sets = <0x400>; - compatible = "cache"; - cache-line-size = <0x40>; - next-level-cache = <0x1e>; - phandle = <0x17>; - }; - - l2-cache-l3 { - cache-size = <0x20000>; - cache-sets = <0x200>; - compatible = "cache"; - cache-line-size = <0x40>; - next-level-cache = <0x1e>; - phandle = <0x15>; - }; - - cpu@300 { - d-cache-line-size = <0x40>; - capacity-dmips-mhz = <0x212>; - clocks = <0x0e 0x00>; - i-cache-line-size = <0x40>; - cpu-idle-states = <0x10>; - device_type = "cpu"; - compatible = "arm,cortex-a55"; - d-cache-size = <0x8000>; - next-level-cache = <0x15>; - i-cache-size = <0x8000>; - reg = <0x300>; - enable-method = "psci"; - phandle = <0x09>; - d-cache-sets = <0x80>; - operating-points-v2 = <0x0f>; - i-cache-sets = <0x80>; - }; - - l2-cache-l1 { - cache-size = <0x20000>; - cache-sets = <0x200>; - compatible = "cache"; - cache-line-size = <0x40>; - next-level-cache = <0x1e>; - phandle = <0x13>; - }; - - cpu@600 { - d-cache-line-size = <0x40>; - capacity-dmips-mhz = <0x400>; - cpu-supply = <0x1c>; - clocks = <0x0e 0x03>; - i-cache-line-size = <0x40>; - cpu-idle-states = <0x10>; - device_type = "cpu"; - compatible = "arm,cortex-a76"; - dynamic-power-coefficient = <0x12c>; - d-cache-size = <0x10000>; - next-level-cache = <0x1b>; - i-cache-size = <0x10000>; - mem-supply = <0x1c>; - reg = <0x600>; - enable-method = "psci"; - phandle = <0x0c>; - d-cache-sets = <0x100>; - operating-points-v2 = <0x1a>; - i-cache-sets = <0x100>; - #cooling-cells = <0x02>; - }; - - l2-cache-b3 { - cache-size = <0x80000>; - cache-sets = <0x400>; - compatible = "cache"; - cache-line-size = <0x40>; - next-level-cache = <0x1e>; - phandle = <0x1d>; - }; - - idle-states { - entry-method = "psci"; - - cpu-sleep { - entry-latency-us = <0x64>; - local-timer-stop; - exit-latency-us = <0x78>; - arm,psci-suspend-param = <0x10000>; - compatible = "arm,idle-state"; - phandle = <0x10>; - min-residency-us = <0x3e8>; - }; - }; - - cpu-map { - - cluster2 { - - core1 { - cpu = <0x0d>; - }; - - core0 { - cpu = <0x0c>; - }; - }; - - cluster0 { - - core3 { - cpu = <0x09>; - }; - - core1 { - cpu = <0x07>; - }; - - core2 { - cpu = <0x08>; - }; - - core0 { - cpu = <0x06>; - }; - }; - - cluster1 { - - core1 { - cpu = <0x0b>; - }; - - core0 { - cpu = <0x0a>; - }; - }; - }; - - l3-cache { - cache-size = <0x300000>; - cache-sets = <0x1000>; - compatible = "cache"; - cache-line-size = <0x40>; - phandle = <0x1e>; - }; - - cpu@200 { - d-cache-line-size = <0x40>; - capacity-dmips-mhz = <0x212>; - clocks = <0x0e 0x00>; - i-cache-line-size = <0x40>; - cpu-idle-states = <0x10>; - device_type = "cpu"; - compatible = "arm,cortex-a55"; - d-cache-size = <0x8000>; - next-level-cache = <0x14>; - i-cache-size = <0x8000>; - reg = <0x200>; - enable-method = "psci"; - phandle = <0x08>; - d-cache-sets = <0x80>; - operating-points-v2 = <0x0f>; - i-cache-sets = <0x80>; - }; - - l2-cache-b1 { - cache-size = <0x80000>; - cache-sets = <0x400>; - compatible = "cache"; - cache-line-size = <0x40>; - next-level-cache = <0x1e>; - phandle = <0x19>; - }; - - cpu@500 { - d-cache-line-size = <0x40>; - capacity-dmips-mhz = <0x400>; - clocks = <0x0e 0x02>; - i-cache-line-size = <0x40>; - cpu-idle-states = <0x10>; - device_type = "cpu"; - compatible = "arm,cortex-a76"; - d-cache-size = <0x10000>; - next-level-cache = <0x19>; - i-cache-size = <0x10000>; - reg = <0x500>; - enable-method = "psci"; - phandle = <0x0b>; - d-cache-sets = <0x100>; - operating-points-v2 = <0x16>; - i-cache-sets = <0x100>; - }; - - cpu@0 { - d-cache-line-size = <0x40>; - capacity-dmips-mhz = <0x212>; - cpu-supply = <0x12>; - clocks = <0x0e 0x00>; - i-cache-line-size = <0x40>; - cpu-idle-states = <0x10>; - device_type = "cpu"; - compatible = "arm,cortex-a55"; - dynamic-power-coefficient = <0x64>; - d-cache-size = <0x8000>; - next-level-cache = <0x11>; - i-cache-size = <0x8000>; - mem-supply = <0x12>; - reg = <0x00>; - enable-method = "psci"; - phandle = <0x06>; - d-cache-sets = <0x80>; - operating-points-v2 = <0x0f>; - i-cache-sets = <0x80>; - #cooling-cells = <0x02>; - }; - - l2-cache-l2 { - cache-size = <0x20000>; - cache-sets = <0x200>; - compatible = "cache"; - cache-line-size = <0x40>; - next-level-cache = <0x1e>; - phandle = <0x14>; - }; - - l2-cache-l0 { - cache-size = <0x20000>; - cache-sets = <0x200>; - compatible = "cache"; - cache-line-size = <0x40>; - next-level-cache = <0x1e>; - phandle = <0x11>; - }; - - cpu@100 { - d-cache-line-size = <0x40>; - capacity-dmips-mhz = <0x212>; - clocks = <0x0e 0x00>; - i-cache-line-size = <0x40>; - cpu-idle-states = <0x10>; - device_type = "cpu"; - compatible = "arm,cortex-a55"; - d-cache-size = <0x8000>; - next-level-cache = <0x13>; - i-cache-size = <0x8000>; - reg = <0x100>; - enable-method = "psci"; - phandle = <0x07>; - d-cache-sets = <0x80>; - operating-points-v2 = <0x0f>; - i-cache-sets = <0x80>; - }; - - cpu@400 { - d-cache-line-size = <0x40>; - capacity-dmips-mhz = <0x400>; - cpu-supply = <0x18>; - clocks = <0x0e 0x02>; - i-cache-line-size = <0x40>; - cpu-idle-states = <0x10>; - device_type = "cpu"; - compatible = "arm,cortex-a76"; - dynamic-power-coefficient = <0x12c>; - d-cache-size = <0x10000>; - next-level-cache = <0x17>; - i-cache-size = <0x10000>; - mem-supply = <0x18>; - reg = <0x400>; - enable-method = "psci"; - phandle = <0x0a>; - d-cache-sets = <0x100>; - operating-points-v2 = <0x16>; - i-cache-sets = <0x100>; - #cooling-cells = <0x02>; - }; - - l2-cache-b2 { - cache-size = <0x80000>; - cache-sets = <0x400>; - compatible = "cache"; - cache-line-size = <0x40>; - next-level-cache = <0x1e>; - phandle = <0x1b>; - }; - - cpu@700 { - d-cache-line-size = <0x40>; - capacity-dmips-mhz = <0x400>; - clocks = <0x0e 0x03>; - i-cache-line-size = <0x40>; - cpu-idle-states = <0x10>; - device_type = "cpu"; - compatible = "arm,cortex-a76"; - d-cache-size = <0x10000>; - next-level-cache = <0x1d>; - i-cache-size = <0x10000>; - reg = <0x700>; - enable-method = "psci"; - phandle = <0x0d>; - d-cache-sets = <0x100>; - operating-points-v2 = <0x1a>; - i-cache-sets = <0x100>; - }; - }; - - vcc-hub3-reset-regulator { - gpio = <0x182 0x06 0x00>; - regulator-always-on; - enable-active-high; - regulator-name = "vcc_hub3_reset"; - compatible = "regulator-fixed"; - status = "disabled"; - phandle = <0x4a1>; - }; - - rkispp1-vir0 { - rockchip,hw = <0x5c>; - compatible = "rockchip,rk3588-rkispp-vir"; - status = "disabled"; - phandle = <0x244>; - }; - - saradc@fec10000 { - vref-supply = <0x177>; - clock-names = "saradc\0apb_pclk"; - resets = <0x02 0xbe>; - interrupts = <0x00 0x18e 0x04>; - clocks = <0x02 0x9d 0x02 0x9c>; - #io-channel-cells = <0x01>; - compatible = "rockchip,rk3588-saradc"; - status = "okay"; - reg = <0x00 0xfec10000 0x00 0x10000>; - phandle = <0x1d9>; - reset-names = "saradc-apb"; - }; - - rkisp0-vir0 { - rockchip,hw = <0x58>; - compatible = "rockchip,rkisp-vir"; - status = "disabled"; - phandle = <0x23b>; - }; - - __symbols__ { - i2s2m0_lrck = "/pinctrl/i2s2/i2s2m0-lrck"; - i2c3 = "/i2c@feab0000"; - scmi_shmem = "/sram@10f000/sram@0"; - rkispp0_vir0 = "/rkispp0-vir0"; - qos_jpeg_enc0 = "/qos@fdf66400"; - i2s1m1_sdi1 = "/pinctrl/i2s1/i2s1m1-sdi1"; - dp_altmode_mux = "/i2c@fec80000/fusb302@22/connector/ports/port@1/endpoint"; - pmic_pins = "/pinctrl/pmic/pmic-pins"; - usb_host1_ohci = "/usb@fc8c0000"; - pwm9 = "/pwm@febe0010"; - i2c6m4_xfer = "/pinctrl/i2c6/i2c6m4-xfer"; - leds_gpio = "/pinctrl/leds/leds-gpio"; - i2c3m3_xfer = "/pinctrl/i2c3/i2c3m3-xfer"; - qos_usb3_1 = "/qos@fdf3e000"; - hdmi_debug4 = "/pinctrl/hdmi/hdmi-debug4"; - i2c0m2_xfer = "/pinctrl/i2c0/i2c0m2-xfer"; - gmac0_rgmii_bus = "/pinctrl/gmac0/gmac0-rgmii-bus"; - pcie30x2m2_pins = "/pinctrl/pcie30x2/pcie30x2m2-pins"; - sdmmc_clk = "/pinctrl/sdmmc/sdmmc-clk"; - spi0m3_cs0 = "/pinctrl/spi0/spi0m3-cs0"; - hwlock = "/hwspinlock@fe5a0000"; - pcie3x2 = "/pcie@fe160000"; - i2s2m1_mclk = "/pinctrl/i2s2/i2s2m1-mclk"; - mipim0_camera3_clk = "/pinctrl/mipi/mipim0-camera3-clk"; - mclkin_i2s0 = "/clocks/mclkin-i2s0"; - edp1_in_vp1 = "/edp@fded0000/ports/port@0/endpoint@1"; - rkvenc0_mmu = "/iommu@fdbdf000"; - pwm14 = "/pwm@febf0020"; - rk806_dvs2_rst = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs2_rst"; - mipi2_csi2 = "/mipi2-csi2"; - can2m1_pins = "/pinctrl/can2/can2m1-pins"; - pcie2x1l1 = "/pcie@fe180000"; - hdmi0_in_vp2 = "/hdmi@fde80000/ports/port@0/endpoint@2"; - qos_rkvenc0_m2wo = "/qos@fdf60400"; - pwm3m2_pins = "/pinctrl/pwm3/pwm3m2-pins"; - optee = "/firmware/optee"; - l2_cache_b2 = "/cpus/l2-cache-b2"; - pwm0m1_pins = "/pinctrl/pwm0/pwm0m1-pins"; - vdpu = "/vdpu@fdb50400"; - i2s3_sdo = "/pinctrl/i2s3/i2s3-sdo"; - usbdp_phy0_u3 = "/phy@fed80000/u3-port"; - thermal_zones = "/thermal-zones"; - hdmim2_rx_scl = "/pinctrl/hdmi/hdmim2-rx-scl"; - hdmim2_rx_sda = "/pinctrl/hdmi/hdmim2-rx-sda"; - uart9m0_rtsn = "/pinctrl/uart9/uart9m0-rtsn"; - spi1m2_cs0 = "/pinctrl/spi1/spi1m2-cs0"; - pcie2x1l1_intc = "/pcie@fe180000/legacy-interrupt-controller"; - spdif1m1_tx = "/pinctrl/spdif1/spdif1m1-tx"; - venc_opp_info = "/otp@fecc0000/venc-opp-info@67"; - qos_iep = "/qos@fdf66000"; - pcfg_pull_none_drv_level_3 = "/pinctrl/pcfg-pull-none-drv-level-3"; - spi3m2_cs1 = "/pinctrl/spi3/spi3m2-cs1"; - uart4m2_xfer = "/pinctrl/uart4/uart4m2-xfer"; - vp1 = "/vop@fdd90000/ports/port@1"; - bigcore1_grf = "/syscon@fd592000"; - uart1m1_xfer = "/pinctrl/uart1/uart1m1-xfer"; - uart5m1_ctsn = "/pinctrl/uart5/uart5m1-ctsn"; - fspim1_pins = "/pinctrl/fspi/fspim1-pins"; - cpu_l1 = "/cpus/cpu@100"; - uart8 = "/serial@febb0000"; - rkisp1_vir3 = "/rkisp1-vir3"; - qos_vop_m1 = "/qos@fdf82200"; - pcie_clk2 = "/pcie-clk2"; - cluster2_opp_table = "/cluster2-opp-table"; - usb_grf = "/syscon@fd5ac000"; - pcfg_pull_none_smt = "/pinctrl/pcfg-pull-none-smt"; - jpege0_mmu = "/iommu@fdba0800"; - spi2m1_cs0 = "/pinctrl/spi2/spi2m1-cs0"; - u2phy3 = "/syscon@fd5dc000/usb2-phy@c000"; - power_led = "/leds/power"; - aclk_usb = "/clocks/aclk_usb@fd7c08a8"; - csi2_dphy1 = "/csi2-dphy1"; - spi2 = "/spi@feb20000"; - uart2_rtsn = "/pinctrl/uart2/uart2-rtsn"; - spi4m1_cs1 = "/pinctrl/spi4/spi4m1-cs1"; - pcfg_pull_up_drv_level_15 = "/pinctrl/pcfg-pull-up-drv-level-15"; - vo1_grf = "/syscon@fd5a8000"; - pcie_essd = "/pcie-essd"; - i2c4m3_xfer = "/pinctrl/i2c4/i2c4m3-xfer"; - gpio0 = "/pinctrl/gpio@fd8a0000"; - saradc = "/saradc@fec10000"; - i2s1m0_sdi3 = "/pinctrl/i2s1/i2s1m0-sdi3"; - i2c1m2_xfer = "/pinctrl/i2c1/i2c1m2-xfer"; - csidphy0_out = "/csi2-dphy0/ports/port@1/endpoint@0"; - emmc_rstnout = "/pinctrl/emmc/emmc-rstnout"; - mclkout_i2s3 = "/clocks/mclkout-i2s3@fd58c318"; - xc7160_out0 = "/i2c@fec80000/XC7160b@1b/port/endpoint"; - rkcif_mipi_lvds1_sditf_vir1 = "/rkcif-mipi-lvds1-sditf-vir1"; - dsi1 = "/dsi@fde30000"; - venc_opp_table = "/venc-opp-table"; - qos_isp0_mwo = "/qos@fdf40500"; - pmu_pins = "/pinctrl/pmu/pmu-pins"; - gmac0_miim = "/pinctrl/gmac0/gmac0-miim"; - spi3m0_cs0 = "/pinctrl/spi3/spi3m0-cs0"; - mipi_dcphy0 = "/mipi-dcphy-dummy"; - minidump_mem = "/reserved-memory/minidump-mem@c000000"; - avdd_1v2_s0 = "/spi@feb20000/rk806single@0/regulators/PLDO_REG3"; - pwm7m3_pins = "/pinctrl/pwm7/pwm7m3-pins"; - route_edp1 = "/display-subsystem/route/route-edp1"; - hdmi1 = "/hdmi@fdea0000"; - crypto = "/crypto@fe370000"; - hdmi1_in_vp2 = "/hdmi@fdea0000/ports/port@0/endpoint@2"; - dfi = "/dfi@fe060000"; - can0m0_pins = "/pinctrl/can0/can0m0-pins"; - pcfg_pull_up_drv_level_2 = "/pinctrl/pcfg-pull-up-drv-level-2"; - pinctrl = "/pinctrl"; - rgmii_phy0 = "/ethernet@fe1b0000/mdio/phy@1"; - pcfg_pull_down_drv_level_6 = "/pinctrl/pcfg-pull-down-drv-level-6"; - dp0m0_pins = "/pinctrl/dp0/dp0m0-pins"; - i2s0_sdo3 = "/pinctrl/i2s0/i2s0-sdo3"; - vcc_sata_pwr_en = "/vcc-sata-pwr-en-regulator"; - pwm1m1_pins = "/pinctrl/pwm1/pwm1m1-pins"; - pcie30_avdd1v8 = "/pcie30-avdd1v8"; - usb2phy3_grf = "/syscon@fd5dc000"; - u2phy2_host = "/syscon@fd5d8000/usb2-phy@8000/host-port"; - hym8563_int = "/pinctrl/hym8563/hym8563-int"; - mailbox1 = "/mailbox@fec70000"; - pdm0m1_sdi3 = "/pinctrl/pdm0/pdm0m1-sdi3"; - combphy1_ps = "/phy@fee10000"; - hdptxphy0_grf = "/syscon@fd5e0000"; - sdei = "/firmware/sdei"; - vp0_out_dp1 = "/vop@fdd90000/ports/port@0/endpoint@3"; - uart5m2_xfer = "/pinctrl/uart5/uart5m2-xfer"; - uart9m2_ctsn = "/pinctrl/uart9/uart9m2-ctsn"; - uart2m1_xfer = "/pinctrl/uart2/uart2m1-xfer"; - dp0_out = "/dp@fde50000/ports/port@1/endpoint"; - uart6m1_ctsn = "/pinctrl/uart6/uart6m1-ctsn"; - route_rgb = "/display-subsystem/route/route-rgb"; - csidphy0_out1 = "/csi2-dphy0/ports/port@1/endpoint@0"; - i2c1 = "/i2c@fea90000"; - pinctrl_rk806 = "/spi@feb20000/rk806single@0/pinctrl_rk806"; - cpu_code = "/otp@fecc0000/cpu-code@2"; - pwm7 = "/pwm@febd0030"; - mipi5_csi2_hw = "/mipi5-csi2-hw@fdd60000"; - gpu_leakage = "/otp@fecc0000/gpu-leakage@1b"; - hdmi_debug2 = "/pinctrl/hdmi/hdmi-debug2"; - pdm0m0_clk = "/pinctrl/pdm0/pdm0m0-clk"; - gmac0_ppsclk = "/pinctrl/gmac0/gmac0-ppsclk"; - i2c8m4_xfer = "/pinctrl/i2c8/i2c8m4-xfer"; - vdd_npu_s0 = "/i2c@fea90000/rk8602@42"; - i2c5m3_xfer = "/pinctrl/i2c5/i2c5m3-xfer"; - gmac0 = "/ethernet@fe1b0000"; - i2c2m2_xfer = "/pinctrl/i2c2/i2c2m2-xfer"; - rockchip_system_monitor = "/rockchip-system-monitor"; - pcie30x4m2_pins = "/pinctrl/pcie30x4/pcie30x4m2-pins"; - pwm12 = "/pwm@febf0000"; - emmc_cmd = "/pinctrl/emmc/emmc-cmd"; - i2s1_8ch = "/i2s@fe480000"; - pcie30x1m1_pins = "/pinctrl/pcie30x1/pcie30x1m1-pins"; - uart4_ctsn = "/pinctrl/uart4/uart4-ctsn"; - vdd_cpu_big0_mem_s0 = "/i2c@fd880000/rk8602@42"; - pcfg_pull_none = "/pinctrl/pcfg-pull-none"; - i2s1m0_mclk = "/pinctrl/i2s1/i2s1m0-mclk"; - vp1_out_edp1 = "/vop@fdd90000/ports/port@1/endpoint@4"; - hdmi0_in_vp0 = "/hdmi@fde80000/ports/port@0/endpoint@0"; - vcc_4g = "/vcc-4g-regulator"; - firefly_leds = "/leds"; - jpege3 = "/jpege-core@fdbac000"; - l2_cache_b0 = "/cpus/l2-cache-b0"; - pmu1_grf = "/syscon@fd58a000"; - aclk_rkvenc1_pre = "/clocks/aclk_rkvenc1_pre@fd7c08c0"; - can1m0_pins = "/pinctrl/can1/can1m0-pins"; - spi0m3_pins = "/pinctrl/spi0/spi0m3-pins"; - pwm5m2_pins = "/pinctrl/pwm5/pwm5m2-pins"; - mipidphy0_in_ucam1 = "/csi2-dphy0/ports/port@0/endpoint@1"; - i2s0_lrck = "/pinctrl/i2s0/i2s0-lrck"; - clk32k_out0 = "/pinctrl/clk32k/clk32k-out0"; - dp1m0_pins = "/pinctrl/dp1/dp1m0-pins"; - pwm2m1_pins = "/pinctrl/pwm2/pwm2m1-pins"; - usbc0 = "/i2c@fec80000/fusb302@22"; - eth1_pins = "/pinctrl/eth1/eth1-pins"; - pcfg_pull_none_drv_level_1 = "/pinctrl/pcfg-pull-none-drv-level-1"; - csi2_dphy0_hw = "/csi2-dphy0-hw@fedc0000"; - pdm1m1_sdi3 = "/pinctrl/pdm1/pdm1m1-sdi3"; - dsi0_in_vp3 = "/dsi@fde20000/ports/port@0/endpoint@1"; - hdmim1_tx1_cec = "/pinctrl/hdmi/hdmim1-tx1-cec"; - usbc0_role_sw = "/i2c@fec80000/fusb302@22/ports/port@0/endpoint@0"; - uart6 = "/serial@feb90000"; - rkisp1_vir1 = "/rkisp1-vir1"; - sdhci = "/mmc@fe2e0000"; - uart6m2_xfer = "/pinctrl/uart6/uart6m2-xfer"; - target = "/thermal-zones/soc-thermal/trips/trip-point-1"; - rkcif_mipi_lvds_sditf_vir3 = "/rkcif-mipi-lvds-sditf-vir3"; - pcfg_pull_none_drv_level_0_smt = "/pinctrl/pcfg-pull-none-drv-level-0-smt"; - uart3m1_xfer = "/pinctrl/uart3/uart3m1-xfer"; - uart7m1_ctsn = "/pinctrl/uart7/uart7m1-ctsn"; - uart0m0_xfer = "/pinctrl/uart0/uart0m0-xfer"; - rgb_in_vp3 = "/syscon@fd58c000/rgb/ports/port@0/endpoint@2"; - rkcif_mipi_lvds5_sditf_vir2 = "/rkcif-mipi-lvds5-sditf-vir2"; - u2phy1 = "/syscon@fd5d4000/usb2-phy@4000"; - i2s5_8ch = "/i2s@fddf0000"; - i2s2m0_sdo = "/pinctrl/i2s2/i2s2m0-sdo"; - gpu = "/gpu@fb000000"; - spi0 = "/spi@feb00000"; - iep = "/iep@fdbb0000"; - pcfg_pull_up_drv_level_13 = "/pinctrl/pcfg-pull-up-drv-level-13"; - spdif_tx5 = "/spdif-tx@fddb8000"; - hdptxphy_hdmi_clk1 = "/hdmiphy@fed70000/clk-port"; - drm_logo = "/reserved-memory/drm-logo@00000000"; - i2s1m0_sdi1 = "/pinctrl/i2s1/i2s1m0-sdi1"; - rk806_dvs3_null = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs3_null"; - gmac1_ppsclk = "/pinctrl/gmac1/gmac1-ppsclk"; - usb_host0_ohci = "/usb@fc840000"; - mclkout_i2s1 = "/clocks/mclkout-i2s1@fd58c318"; - i2c6m3_xfer = "/pinctrl/i2c6/i2c6m3-xfer"; - i2c3m2_xfer = "/pinctrl/i2c3/i2c3m2-xfer"; - vop_opp_info = "/otp@fecc0000/vop-opp-info@61"; - cif_dvp_bus16 = "/pinctrl/cif/cif-dvp-bus16"; - i2c0m1_xfer = "/pinctrl/i2c0/i2c0m1-xfer"; - pcie30x2m1_pins = "/pinctrl/pcie30x2/pcie30x2m1-pins"; - mipidcphy0_grf = "/syscon@fd5e8000"; - vdd_cpu_big1_mem_s0 = "/i2c@fd880000/rk8603@43"; - pcie30phy = "/phy@fee80000"; - dmc = "/dmc"; - i2s2m0_mclk = "/pinctrl/i2s2/i2s2m0-mclk"; - mipidcphy1 = "/phy@fedb0000"; - dp1_sound = "/dp1-sound"; - hdmi1_in_vp0 = "/hdmi@fdea0000/ports/port@0/endpoint@0"; - scmi = "/firmware/scmi"; - pcfg_pull_up_drv_level_0 = "/pinctrl/pcfg-pull-up-drv-level-0"; - gmac1_clkinout = "/pinctrl/gmac1/gmac1-clkinout"; - pcfg_pull_down_drv_level_4 = "/pinctrl/pcfg-pull-down-drv-level-4"; - i2s0_sdo1 = "/pinctrl/i2s0/i2s0-sdo1"; - l3_cache = "/cpus/l3-cache"; - i2s3_idle = "/pinctrl/i2s3/i2s3-idle"; - pcfg_pull_none_drv_level_4_smt = "/pinctrl/pcfg-pull-none-drv-level-4-smt"; - litcpu_pins = "/pinctrl/litcpu/litcpu-pins"; - mipi1_csi2 = "/mipi1-csi2"; - can2m0_pins = "/pinctrl/can2/can2m0-pins"; - pwm6m2_pins = "/pinctrl/pwm6/pwm6m2-pins"; - usbdp_phy0 = "/phy@fed80000"; - pdm0m1_sdi1 = "/pinctrl/pdm0/pdm0m1-sdi1"; - pwm3m1_pins = "/pinctrl/pwm3/pwm3m1-pins"; - vdd_log_s0 = "/spi@feb20000/rk806single@0/regulators/DCDC_REG3"; - i2s9_8ch = "/i2s@fddfc000"; - pwm0m0_pins = "/pinctrl/pwm0/pwm0m0-pins"; - vcc_hub3_reset = "/vcc-hub3-reset-regulator"; - dsi1_in_vp3 = "/dsi@fde30000/ports/port@0/endpoint@1"; - otp_cpu_version = "/otp@fecc0000/cpu-version@1c"; - pcie2x1l0_intc = "/pcie@fe170000/legacy-interrupt-controller"; - spdif0m1_tx = "/pinctrl/spdif0/spdif0m1-tx"; - pcfg_pull_down_drv_level_15 = "/pinctrl/pcfg-pull-down-drv-level-15"; - XC7160 = "/i2c@fec80000/XC7160b@1b"; - rkcif_mipi_lvds4_sditf_vir3 = "/rkcif-mipi-lvds4-sditf-vir3"; - uart7m2_xfer = "/pinctrl/uart7/uart7m2-xfer"; - uart4m1_xfer = "/pinctrl/uart4/uart4m1-xfer"; - hdmim1_tx1_scl = "/pinctrl/hdmi/hdmim1-tx1-scl"; - hdmim1_tx1_sda = "/pinctrl/hdmi/hdmim1-tx1-sda"; - uart8m1_ctsn = "/pinctrl/uart8/uart8m1-ctsn"; - i2s2_2ch = "/i2s@fe490000"; - pwm5 = "/pwm@febd0010"; - uart1m0_xfer = "/pinctrl/uart1/uart1m0-xfer"; - uart5m0_ctsn = "/pinctrl/uart5/uart5m0-ctsn"; - fspim0_cs1 = "/pinctrl/fspi/fspim0-cs1"; - fspim0_pins = "/pinctrl/fspi/fspim0-pins"; - rkisp0_vir3 = "/rkisp0-vir3"; - l2_cache_l3 = "/cpus/l2-cache-l3"; - rk806_dvs3_dvs = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs3_dvs"; - hdmi_debug0 = "/pinctrl/hdmi/hdmi-debug0"; - hdmim1_tx1_hpd = "/pinctrl/hdmi/hdmim1-tx1-hpd"; - vp1_out_dp0 = "/vop@fdd90000/ports/port@1/endpoint@0"; - qos_isp0_mro = "/qos@fdf40400"; - spi0m2_cs1 = "/pinctrl/spi0/spi0m2-cs1"; - vdd_gpu_s0 = "/spi@feb20000/rk806single@0/regulators/DCDC_REG1"; - tsadc_shut = "/pinctrl/tsadc/tsadc-shut"; - pwm10 = "/pwm@febe0020"; - i2c7m3_xfer = "/pinctrl/i2c7/i2c7m3-xfer"; - rktimer = "/timer@feae0000"; - cpub0_leakage = "/otp@fecc0000/cpub0-leakage@17"; - i2c4m2_xfer = "/pinctrl/i2c4/i2c4m2-xfer"; - hclk_rkvdec1_pre = "/clocks/hclk_rkvdec1_pre@fd7c08a4"; - pcie30phy_pins = "/pinctrl/pcie30phy/pcie30phy-pins"; - jpege1 = "/jpege-core@fdba4000"; - pcfg_pull_none_drv_level_14 = "/pinctrl/pcfg-pull-none-drv-level-14"; - i2c1m1_xfer = "/pinctrl/i2c1/i2c1m1-xfer"; - rkcif_dvp_sditf = "/rkcif-dvp-sditf"; - rkcif_mipi_lvds4_sditf = "/rkcif-mipi-lvds4-sditf"; - vp2_out_dp1 = "/vop@fdd90000/ports/port@2/endpoint@5"; - vp2_out_dsi0 = "/vop@fdd90000/ports/port@2/endpoint@3"; - its1 = "/interrupt-controller@fe600000/msi-controller@fe660000"; - cpu_b3 = "/cpus/cpu@700"; - vcc_hub_reset = "/vcc-hub-reset-regulator"; - spi1m1_cs1 = "/pinctrl/spi1/spi1m1-cs1"; - vdd_npu_mem_s0 = "/i2c@fea90000/rk8602@42"; - pwm7m2_pins = "/pinctrl/pwm7/pwm7m2-pins"; - pdm1m1_sdi1 = "/pinctrl/pdm1/pdm1m1-sdi1"; - vbus5v0_typec_pwr_en = "/vbus5v0-typec-pwr-en-regulator"; - pwm4m1_pins = "/pinctrl/pwm4/pwm4m1-pins"; - dmc_opp_table = "/dmc-opp-table"; - pcie30x4_button_rstn = "/pinctrl/pcie30x4/pcie30x4-button-rstn"; - uart4 = "/serial@feb70000"; - pwm1m0_pins = "/pinctrl/pwm1/pwm1m0-pins"; - spi0m0_cs0 = "/pinctrl/spi0/spi0m0-cs0"; - pldo6_s3 = "/spi@feb20000/rk806single@0/regulators/PLDO_REG6"; - mipim1_camera2_clk = "/pinctrl/mipi/mipim1-camera2-clk"; - mipim0_camera0_clk = "/pinctrl/mipi/mipim0-camera0-clk"; - rkcif_mipi_lvds_sditf_vir1 = "/rkcif-mipi-lvds-sditf-vir1"; - pcfg_pull_up_drv_level_9 = "/pinctrl/pcfg-pull-up-drv-level-9"; - dmac2 = "/dma-controller@fed10000"; - pdm0m0_sdi3 = "/pinctrl/pdm0/pdm0m0-sdi3"; - qos_gpu_m2 = "/qos@fdf35400"; - i2s0_sdi3 = "/pinctrl/i2s0/i2s0-sdi3"; - cluster0_opp_table = "/cluster0-opp-table"; - spi2m0_cs1 = "/pinctrl/spi2/spi2m0-cs1"; - otp_id = "/otp@fecc0000/id@7"; - uart5m1_xfer = "/pinctrl/uart5/uart5m1-xfer"; - uart9m1_ctsn = "/pinctrl/uart9/uart9m1-ctsn"; - qos_rga3_0 = "/qos@fdf67000"; - usbdp_phy0_dp = "/phy@fed80000/dp-port"; - uart2m0_xfer = "/pinctrl/uart2/uart2m0-xfer"; - uart6m0_ctsn = "/pinctrl/uart6/uart6m0-ctsn"; - npu_pins = "/pinctrl/npu/npu-pins"; - pcfg_pull_up_drv_level_11 = "/pinctrl/pcfg-pull-up-drv-level-11"; - spdif_tx3 = "/spdif-tx@fdde0000"; - rkispp0 = "/rkispp@fdcd0000"; - xin32k = "/clocks/xin32k"; - vcc_1v8_s3 = "/spi@feb20000/rk806single@0/regulators/DCDC_REG10"; - qos_usb2host_1 = "/qos@fdf3e600"; - bt_sco = "/bt-sco"; - pcfg_output_high_pull_none = "/pinctrl/pcfg-output-high-pull-none"; - adc_keys = "/adc-keys"; - rkcif_mipi_lvds4 = "/rkcif-mipi-lvds4"; - i2c8 = "/i2c@feca0000"; - dp0 = "/dp@fde50000"; - mipi_te1 = "/pinctrl/mipi/mipi-te1"; - i2c8m3_xfer = "/pinctrl/i2c8/i2c8m3-xfer"; - i2c5m2_xfer = "/pinctrl/i2c5/i2c5m2-xfer"; - pcie30x2_button_rstn = "/pinctrl/pcie30x2/pcie30x2-button-rstn"; - syssram = "/sram@ff001000"; - pcfg_pull_down_drv_level_2 = "/pinctrl/pcfg-pull-down-drv-level-2"; - qos_hdmirx = "/qos@fdf81200"; - i2c2m1_xfer = "/pinctrl/i2c2/i2c2m1-xfer"; - pcie30x4m1_pins = "/pinctrl/pcie30x4/pcie30x4m1-pins"; - vdd_0v75_s0 = "/spi@feb20000/rk806single@0/regulators/NLDO_REG5"; - hw_decompress = "/decompress@fea80000"; - pcie30x1m0_pins = "/pinctrl/pcie30x1/pcie30x1m0-pins"; - mipim0_camera4_clk = "/pinctrl/mipi/mipim0-camera4-clk"; - gmac1_txer = "/pinctrl/gmac1/gmac1-txer"; - uart3_ctsn = "/pinctrl/uart3/uart3-ctsn"; - vcc_sdcard_pwr_en = "/vcc-sdcard-pwr-en-regulator"; - mipi0_csi2_hw = "/mipi0-csi2-hw@fdd10000"; - rkvenc1_mmu = "/iommu@fdbef000"; - edp0 = "/edp@fdec0000"; - rkvenc_ccu = "/rkvenc-ccu"; - rk806_dvs3_rst = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs3_rst"; - power = "/power-management@fd8d8000/power-controller"; - vad = "/vad@fe4d0000"; - spi3m3_pins = "/pinctrl/spi3/spi3m3-pins"; - pwm8m2_pins = "/pinctrl/pwm8/pwm8m2-pins"; - spi0m2_pins = "/pinctrl/spi0/spi0m2-pins"; - pwm5m1_pins = "/pinctrl/pwm5/pwm5m1-pins"; - vcc_3v3_s0 = "/spi@feb20000/rk806single@0/regulators/PLDO_REG4"; - aclk_isp1_pre = "/clocks/aclk_isp1_pre@fd7c0868"; - pwm2m0_pins = "/pinctrl/pwm2/pwm2m0-pins"; - i2s1m1_sdo2 = "/pinctrl/i2s1/i2s1m1-sdo2"; - pcfg_pull_down_drv_level_13 = "/pinctrl/pcfg-pull-down-drv-level-13"; - eth0_pins = "/pinctrl/eth0/eth0-pins"; - rkcif_mipi_lvds4_sditf_vir1 = "/rkcif-mipi-lvds4-sditf-vir1"; - pwm3 = "/pwm@fd8b0030"; - pdm1m0_sdi3 = "/pinctrl/pdm1/pdm1m0-sdi3"; - rkcif_mmu = "/iommu@fdce0800"; - usbc0_int = "/pinctrl/usb-typec/usbc0-int"; - gmac0_tx_bus2 = "/pinctrl/gmac0/gmac0-tx-bus2"; - sata2 = "/sata@fe230000"; - uart9m2_xfer = "/pinctrl/uart9/uart9m2-xfer"; - dp0_in_vp2 = "/dp@fde50000/ports/port@0/endpoint@2"; - hdmiin_sound = "/hdmiin-sound"; - rkisp0_vir1 = "/rkisp0-vir1"; - uart6_gpios = "/pinctrl/wireless-bluetooth/uart6-gpios"; - spi3m3_cs1 = "/pinctrl/spi3/spi3m3-cs1"; - l2_cache_l1 = "/cpus/l2-cache-l1"; - pcfg_pull_none_drv_level_8 = "/pinctrl/pcfg-pull-none-drv-level-8"; - uart6m1_xfer = "/pinctrl/uart6/uart6m1-xfer"; - pwm11m3_pins = "/pinctrl/pwm11/pwm11m3-pins"; - vp2_out_hdmi0 = "/vop@fdd90000/ports/port@2/endpoint@2"; - qos_hdcp1 = "/qos@fdf81000"; - scmi_reset = "/firmware/scmi/protocol@16"; - vdd_cpu_lit_mem_s0 = "/spi@feb20000/rk806single@0/regulators/DCDC_REG2"; - i2s0_mclk = "/pinctrl/i2s0/i2s0-mclk"; - uart3m0_xfer = "/pinctrl/uart3/uart3m0-xfer"; - uart7m0_ctsn = "/pinctrl/uart7/uart7m0-ctsn"; - usbhost_dwc3_0 = "/usbhost3_0/usb@fcd00000"; - hdmim0_rx_hpdin = "/pinctrl/hdmi/hdmim0-rx-hpdin"; - edp0_out = "/edp@fdec0000/ports/port@1/endpoint"; - rkisp0 = "/rkisp@fdcb0000"; - dsu_grf = "/syscon@fd598000"; - vcc_fan_pwr_en = "/vcc-fan-pwr-en-regulator"; - gmac1_rx_bus2 = "/pinctrl/gmac1/gmac1-rx-bus2"; - uart1m2_rtsn = "/pinctrl/uart1/uart1m2-rtsn"; - csi2_dcphy0 = "/csi2-dcphy0"; - usb2phy0_grf = "/syscon@fd5d0000"; - scmi_clk = "/firmware/scmi/protocol@14"; - emmc_clk = "/pinctrl/emmc/emmc-clk"; - jpege1_mmu = "/iommu@fdba4800"; - qos_rkvenc1_m1ro = "/qos@fdf61200"; - spi2m2_cs0 = "/pinctrl/spi2/spi2m2-cs0"; - vcc5v0_host = "/vcc5v0-host"; - cru = "/clock-controller@fd7c0000"; - hdmim0_tx0_cec = "/pinctrl/hdmi/hdmim0-tx0-cec"; - pcfg_pull_none_drv_level_12 = "/pinctrl/pcfg-pull-none-drv-level-12"; - rk806_dvs2_null = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs2_null"; - cpub01_opp_info = "/otp@fecc0000/cpub01-opp-info@43"; - i2s3_sdi = "/pinctrl/i2s3/i2s3-sdi"; - aclk_rkvdec0_pre = "/clocks/aclk_rkvdec0_pre@fd7c08a0"; - cpu_b1 = "/cpus/cpu@500"; - i2c6m2_xfer = "/pinctrl/i2c6/i2c6m2-xfer"; - rknpu_mmu = "/iommu@fdab9000"; - rkcif_mipi_lvds_sditf = "/rkcif-mipi-lvds-sditf"; - i2c3m1_xfer = "/pinctrl/i2c3/i2c3m1-xfer"; - i2c0m0_xfer = "/pinctrl/i2c0/i2c0m0-xfer"; - pcie30x2m0_pins = "/pinctrl/pcie30x2/pcie30x2m0-pins"; - qos_isp1_mwo = "/qos@fdf41000"; - mipi2_csi2_output1 = "/mipi2-csi2/ports/port@1/endpoint@0"; - gmac1_stmmac_axi_setup = "/ethernet@fe1c0000/stmmac-axi-config"; - vcc5v0_usbdcin = "/vcc5v0-usbdcin"; - spi3m1_cs0 = "/pinctrl/spi3/spi3m1-cs0"; - reboot_mode = "/syscon@fd588000/reboot-mode"; - rga3_0_mmu = "/iommu@fdb60f00"; - uart2 = "/serial@feb50000"; - imx415_out0 = "/i2c@fec80000/imx415@37/port/endpoint"; - rkcif_mipi_lvds3_sditf_vir2 = "/rkcif-mipi-lvds3-sditf-vir2"; - pwm9m2_pins = "/pinctrl/pwm9/pwm9m2-pins"; - fec0_mmu = "/iommu@fdcd0f00"; - mipi0_csi2 = "/mipi0-csi2"; - spi1m2_pins = "/pinctrl/spi1/spi1m2-pins"; - pcfg_pull_up_drv_level_7 = "/pinctrl/pcfg-pull-up-drv-level-7"; - pwm6m1_pins = "/pinctrl/pwm6/pwm6m1-pins"; - tsadc_shut_org = "/pinctrl/tsadc/tsadc-shut-org"; - qos_rkvdec1 = "/qos@fdf63000"; - dmac0 = "/dma-controller@fea10000"; - vp2_out_edp1 = "/vop@fdd90000/ports/port@2/endpoint@6"; - pdm0m0_sdi1 = "/pinctrl/pdm0/pdm0m0-sdi1"; - qos_gpu_m0 = "/qos@fdf35000"; - pwm3m0_pins = "/pinctrl/pwm3/pwm3m0-pins"; - i2s0_sdi1 = "/pinctrl/i2s0/i2s0-sdi1"; - qos_av1 = "/qos@fdf64000"; - pcfg_output_low = "/pinctrl/pcfg-output-low"; - spdif_tx1 = "/spdif-tx@fe4f0000"; - hdptxphy1_grf = "/syscon@fd5e4000"; - spi4m0_cs0 = "/pinctrl/spi4/spi4m0-cs0"; - dp1_in_vp2 = "/dp@fde60000/ports/port@0/endpoint@2"; - jpegd_mmu = "/iommu@fdb90480"; - sata0m1_pins = "/pinctrl/sata0/sata0m1-pins"; - uart7m1_xfer = "/pinctrl/uart7/uart7m1-xfer"; - vp1_out_hdmi1 = "/vop@fdd90000/ports/port@1/endpoint@5"; - dp1_out = "/dp@fde60000/ports/port@1/endpoint"; - otp = "/otp@fecc0000"; - uart4m0_xfer = "/pinctrl/uart4/uart4m0-xfer"; - uart8m0_ctsn = "/pinctrl/uart8/uart8m0-ctsn"; - hdcp1 = "/hdcp@fde70000"; - rkcif_mipi_lvds2 = "/rkcif-mipi-lvds2"; - i2c6 = "/i2c@fec80000"; - qos_jpeg_enc3 = "/qos@fdf66a00"; - i2s2m1_idle = "/pinctrl/i2s2/i2s2m1-idle"; - refclk_pins = "/pinctrl/refclk/refclk-pins"; - pcie3x4_intc = "/pcie@fe150000/legacy-interrupt-controller"; - hdptxphy_hdmi1 = "/hdmiphy@fed70000"; - mipi2_lvds2_sditf = "/rkcif-mipi-lvds2-sditf/port/endpoint"; - pdm1 = "/pdm@fe4c0000"; - vdd_cpu_lit_s0 = "/spi@feb20000/rk806single@0/regulators/DCDC_REG2"; - pdm0m1_clk = "/pinctrl/pdm0/pdm0m1-clk"; - pcfg_pull_down_drv_level_0 = "/pinctrl/pcfg-pull-down-drv-level-0"; - qos_vicap_m0 = "/qos@fdf40600"; - gic = "/interrupt-controller@fe600000"; - vdd_cpu_big1_s0 = "/i2c@fd880000/rk8603@43"; - uart0_rtsn = "/pinctrl/uart0/uart0-rtsn"; - i2c7m2_xfer = "/pinctrl/i2c7/i2c7m2-xfer"; - mclkin_i2s3 = "/clocks/mclkin-i2s3"; - hdmim0_tx0_scl = "/pinctrl/hdmi/hdmim0-tx0-scl"; - hdmim0_tx0_sda = "/pinctrl/hdmi/hdmim0-tx0-sda"; - i2c4m1_xfer = "/pinctrl/i2c4/i2c4m1-xfer"; - spdif1m0_tx = "/pinctrl/spdif1/spdif1m0-tx"; - sdmmc_det = "/pinctrl/sdmmc/sdmmc-det"; - i2c1m0_xfer = "/pinctrl/i2c1/i2c1m0-xfer"; - rkcif_mipi_lvds2_sditf_vir3 = "/rkcif-mipi-lvds2-sditf-vir3"; - hdptxphy1 = "/phy@fed70000"; - route_dp1 = "/display-subsystem/route/route-dp1"; - hdmim0_tx0_hpd = "/pinctrl/hdmi/hdmim0-tx0-hpd"; - i2s1m1_sdo0 = "/pinctrl/i2s1/i2s1m1-sdo0"; - pdm1m0_clk = "/pinctrl/pdm1/pdm1m0-clk"; - pcfg_pull_down_drv_level_11 = "/pinctrl/pcfg-pull-down-drv-level-11"; - usbdrd3_1 = "/usbdrd3_1"; - spi2m2_pins = "/pinctrl/spi2/spi2m2-pins"; - pwm7m1_pins = "/pinctrl/pwm7/pwm7m1-pins"; - rkcif_mipi_lvds1_sditf = "/rkcif-mipi-lvds1-sditf"; - pwm1 = "/pwm@fd8b0010"; - pdm1m0_sdi1 = "/pinctrl/pdm1/pdm1m0-sdi1"; - threshold = "/thermal-zones/soc-thermal/trips/trip-point-0"; - pwm4m0_pins = "/pinctrl/pwm4/pwm4m0-pins"; - gmac0_mtl_rx_setup = "/ethernet@fe1b0000/rx-queues-config"; - sata0 = "/sata@fe210000"; - dp0_in_vp0 = "/dp@fde50000/ports/port@0/endpoint@0"; - can2 = "/can@fea70000"; - pcfg_pull_none_drv_level_6 = "/pinctrl/pcfg-pull-none-drv-level-6"; - usbdrd_dwc3_0 = "/usbdrd3_0/usb@fc000000"; - rkvenc0 = "/rkvenc-core@fdbd0000"; - bt_reset_gpio = "/pinctrl/wireless-bluetooth/bt-reset-gpio"; - sata1m1_pins = "/pinctrl/sata1/sata1m1-pins"; - spll = "/clocks/spll"; - uart8m1_xfer = "/pinctrl/uart8/uart8m1-xfer"; - sata_pins = "/pinctrl/sata/sata-pins"; - pcfg_pull_none_drv_level_1_smt = "/pinctrl/pcfg-pull-none-drv-level-1-smt"; - qos_npu1 = "/qos@fdf70000"; - uart5m0_xfer = "/pinctrl/uart5/uart5m0-xfer"; - uart9m0_ctsn = "/pinctrl/uart9/uart9m0-ctsn"; - pwm10m2_pins = "/pinctrl/pwm10/pwm10m2-pins"; - rk806_dvs1_pwrdn = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs1_pwrdn"; - pipe_phy0_grf = "/syscon@fd5bc000"; - es8388 = "/i2c@fec80000/es8388@11"; - spdif_rx2 = "/spdif-rx@fde18000"; - usb_host1_ehci = "/usb@fc880000"; - xin24m = "/clocks/xin24m"; - pcie20x1_2_button_rstn = "/pinctrl/pcie20x1/pcie20x1-2-button-rstn"; - mipi2_csi2_hw = "/mipi2-csi2-hw@fdd30000"; - acdcdig_dsm = "/codec-digital@fe500000"; - vop_grf = "/syscon@fd5a4000"; - rk806_dvs1_slp = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs1_slp"; - i2s6_8ch = "/i2s@fddf4000"; - i2s2m1_sdo = "/pinctrl/i2s2/i2s2m1-sdo"; - pcie30x1_1_button_rstn = "/pinctrl/pcie30x1/pcie30x1-1-button-rstn"; - pcfg_output_low_pull_down = "/pinctrl/pcfg-output-low-pull-down"; - pcfg_pull_none_drv_level_10 = "/pinctrl/pcfg-pull-none-drv-level-10"; - pdm0m1_clk1 = "/pinctrl/pdm0/pdm0m1-clk1"; - mipidphy0_grf = "/syscon@fd5b4000"; - route_dsi1 = "/display-subsystem/route/route-dsi1"; - route_hdmi0 = "/display-subsystem/route/route-hdmi0"; - rkvdec_ccu = "/rkvdec-ccu@fdc30000"; - csi2_dphy4 = "/csi2-dphy4"; - gmac1_rgmii_bus = "/pinctrl/gmac1/gmac1-rgmii-bus"; - qos_sdio = "/qos@fdf39000"; - tsadc = "/tsadc@fec00000"; - pcfg_output_high_pull_up = "/pinctrl/pcfg-output-high-pull-up"; - hclk_usb = "/clocks/hclk_usb@fd7c08a8"; - avcc_1v8_s0 = "/spi@feb20000/rk806single@0/regulators/PLDO_REG1"; - edp0_in_vp2 = "/edp@fdec0000/ports/port@0/endpoint@2"; - mdio1 = "/ethernet@fe1c0000/mdio"; - gpio3 = "/pinctrl/gpio@fec40000"; - gpu_opp_table = "/gpu-opp-table"; - cif_mipi2_in0 = "/rkcif-mipi-lvds2/port/endpoint"; - pcfg_output_high = "/pinctrl/pcfg-output-high"; - i2c8m2_xfer = "/pinctrl/i2c8/i2c8m2-xfer"; - vdpu_mmu = "/iommu@fdb50800"; - i2c5m1_xfer = "/pinctrl/i2c5/i2c5m1-xfer"; - combphy0_ps = "/phy@fee00000"; - rgb = "/syscon@fd58c000/rgb"; - hclk_vo1 = "/clocks/hclk_vo1@fd7c08ec"; - i2c2m0_xfer = "/pinctrl/i2c2/i2c2m0-xfer"; - uart0 = "/serial@fd890000"; - mipidcphy1_grf = "/syscon@fd5ec000"; - pcie30x4m0_pins = "/pinctrl/pcie30x4/pcie30x4m0-pins"; - vdd_ddr_pll_s0 = "/spi@feb20000/rk806single@0/regulators/NLDO_REG2"; - gmac0_txer = "/pinctrl/gmac0/gmac0-txer"; - uart2_ctsn = "/pinctrl/uart2/uart2-ctsn"; - pcfg_pull_up_drv_level_5 = "/pinctrl/pcfg-pull-up-drv-level-5"; - pcfg_pull_down_drv_level_9 = "/pinctrl/pcfg-pull-down-drv-level-9"; - pcfg_pull_none_drv_level_5_smt = "/pinctrl/pcfg-pull-none-drv-level-5-smt"; - i2s2m0_sdi = "/pinctrl/i2s2/i2s2m0-sdi"; - qos_rga2_mwo = "/qos@fdf66e00"; - spi3m2_pins = "/pinctrl/spi3/spi3m2-pins"; - pwm8m1_pins = "/pinctrl/pwm8/pwm8m1-pins"; - dsi1_in = "/dsi@fde30000/ports/port@0"; - vp3_out_dsi0 = "/vop@fdd90000/ports/port@3/endpoint@0"; - pclk_vo0_grf = "/clocks/pclk_vo0_grf@fd7c08dc"; - spi0m1_pins = "/pinctrl/spi0/spi0m1-pins"; - pwm5m0_pins = "/pinctrl/pwm5/pwm5m0-pins"; - bt1120_pins = "/pinctrl/bt1120/bt1120-pins"; - dp1_in_vp0 = "/dp@fde60000/ports/port@0/endpoint@0"; - i2s1m0_sdo2 = "/pinctrl/i2s1/i2s1m0-sdo2"; - mipi2_csi2_input0 = "/mipi2-csi2/ports/port@0/endpoint@0"; - u2phy0_otg = "/syscon@fd5d0000/usb2-phy@0/otg-port"; - vp0_out_edp0 = "/vop@fdd90000/ports/port@0/endpoint@1"; - qos_fisheye0 = "/qos@fdf40000"; - i2c4 = "/i2c@feac0000"; - sata2m1_pins = "/pinctrl/sata2/sata2m1-pins"; - uart9m1_xfer = "/pinctrl/uart9/uart9m1-xfer"; - qos_jpeg_enc1 = "/qos@fdf66600"; - i2s1m1_sdi2 = "/pinctrl/i2s1/i2s1m1-sdi2"; - i2s3_2ch = "/i2s@fe4a0000"; - uart6m0_xfer = "/pinctrl/uart6/uart6m0-xfer"; - cpul_leakage = "/otp@fecc0000/cpul-leakage@19"; - pwm11m2_pins = "/pinctrl/pwm11/pwm11m2-pins"; - fspim1_cs1 = "/pinctrl/fspi/fspim1-cs1"; - vdd_vdenc_s0 = "/spi@feb20000/rk806single@0/regulators/DCDC_REG4"; - pdm1m1_clk1 = "/pinctrl/pdm1/pdm1m1-clk1"; - hdmi_debug5 = "/pinctrl/hdmi/hdmi-debug5"; - uart1m1_rtsn = "/pinctrl/uart1/uart1m1-rtsn"; - qos_isp1_mro = "/qos@fdf41100"; - ddrphych3_pins = "/pinctrl/ddrphych3/ddrphych3-pins"; - spi0m3_cs1 = "/pinctrl/spi0/spi0m3-cs1"; - qos_rkvenc0_m1ro = "/qos@fdf60200"; - qos_jpeg_dec = "/qos@fdf66200"; - mclkin_i2s1 = "/clocks/mclkin-i2s1"; - edp1_in_vp2 = "/edp@fded0000/ports/port@0/endpoint@2"; - pcie30_avdd0v75 = "/pcie30-avdd0v75"; - isp0_mmu = "/iommu@fdcb7f00"; - qos_npu0_mwr = "/qos@fdf72000"; - rkvdec0 = "/rkvdec-core@fdc38000"; - rkvdec0_mmu = "/iommu@fdc38700"; - rk806_dvs1_null = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs1_null"; - pwm15 = "/pwm@febf0030"; - vop_mmu = "/iommu@fdd97e00"; - rkcif_mipi_lvds2_sditf_vir1 = "/rkcif-mipi-lvds2-sditf-vir1"; - pcie2x1l2 = "/pcie@fe190000"; - i2c6m1_xfer = "/pinctrl/i2c6/i2c6m1-xfer"; - package_serial_number_low = "/otp@fecc0000/package-serial-number-low@6"; - iep_mmu = "/iommu@fdbb0800"; - l2_cache_b3 = "/cpus/l2-cache-b3"; - i2c3m0_xfer = "/pinctrl/i2c3/i2c3m0-xfer"; - vcc_1v1_nldo_s3 = "/vcc-1v1-nldo-s3"; - spi1m2_cs1 = "/pinctrl/spi1/spi1m2-cs1"; - pdm0m1_idle = "/pinctrl/pdm0/pdm0m1-idle"; - can0 = "/can@fea50000"; - spi4m2_pins = "/pinctrl/spi4/spi4m2-pins"; - pcfg_pull_none_drv_level_4 = "/pinctrl/pcfg-pull-none-drv-level-4"; - pwm9m1_pins = "/pinctrl/pwm9/pwm9m1-pins"; - arm_pmu = "/arm-pmu"; - vp2 = "/vop@fdd90000/ports/port@2"; - rk806single = "/spi@feb20000/rk806single@0"; - spi1m1_pins = "/pinctrl/spi1/spi1m1-pins"; - pwm6m0_pins = "/pinctrl/pwm6/pwm6m0-pins"; - gmac0_mtl_tx_setup = "/ethernet@fe1b0000/tx-queues-config"; - rng = "/rng@fe378000"; - cpu_l2 = "/cpus/cpu@200"; - uart9 = "/serial@febc0000"; - spi0m1_cs0 = "/pinctrl/spi0/spi0m1-cs0"; - rk806_dvs3_gpio = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs3_gpio"; - rkcif_mipi_lvds5_sditf = "/rkcif-mipi-lvds5-sditf"; - usbdpphy0_grf = "/syscon@fd5c8000"; - mipim1_camera3_clk = "/pinctrl/mipi/mipim1-camera3-clk"; - pcie_clk3 = "/pcie-clk3"; - mipim0_camera1_clk = "/pinctrl/mipi/mipim0-camera1-clk"; - vp0_out_hdmi0 = "/vop@fdd90000/ports/port@0/endpoint@2"; - rkcif = "/rkcif@fdce0000"; - gmac0_rgmii_clk = "/pinctrl/gmac0/gmac0-rgmii-clk"; - wdt_en_base = "/pinctrl/wdt-pc9202/wdt-en-base"; - vp3_out_rgb = "/vop@fdd90000/ports/port@3/endpoint@2"; - spdif_rx0 = "/spdif-rx@fde08000"; - sdmmc_bus4 = "/pinctrl/sdmmc/sdmmc-bus4"; - hdmim2_tx0_scl = "/pinctrl/hdmi/hdmim2-tx0-scl"; - hdmim2_tx0_sda = "/pinctrl/hdmi/hdmim2-tx0-sda"; - spi2m1_cs1 = "/pinctrl/spi2/spi2m1-cs1"; - pwm15m3_pins = "/pinctrl/pwm15/pwm15m3-pins"; - sata0m0_pins = "/pinctrl/sata0/sata0m0-pins"; - uart7m0_xfer = "/pinctrl/uart7/uart7m0-xfer"; - csi2_dphy2 = "/csi2-dphy2"; - spi3 = "/spi@feb30000"; - edp0_in_vp0 = "/edp@fdec0000/ports/port@0/endpoint@0"; - gpio1 = "/pinctrl/gpio@fec20000"; - tsadcm1_shut = "/pinctrl/tsadc/tsadcm1-shut"; - usbdp_phy0_dp_altmode_mux = "/phy@fed80000/port/endpoint@1"; - i2s2m0_idle = "/pinctrl/i2s2/i2s2m0-idle"; - spi1m0_cs0 = "/pinctrl/spi1/spi1m0-cs0"; - rkcif_mipi_lvds1_sditf_vir2 = "/rkcif-mipi-lvds1-sditf-vir2"; - i2s3_sclk = "/pinctrl/i2s3/i2s3-sclk"; - hdmim1_rx_hpdin = "/pinctrl/hdmi/hdmim1-rx-hpdin"; - spi3m0_cs1 = "/pinctrl/spi3/spi3m0-cs1"; - mipi_dcphy1 = "/mipi-dcphy-dummy"; - vcc5v0_sys = "/vcc5v0-sys"; - aclk_hdcp0_pre = "/clocks/aclk_hdcp0_pre@fd7c08dc"; - usb_con = "/i2c@fec80000/fusb302@22/connector"; - hdmirx_ctrler = "/hdmirx-controller@fdee0000"; - i2c7m1_xfer = "/pinctrl/i2c7/i2c7m1-xfer"; - pcfg_pull_up_drv_level_3 = "/pinctrl/pcfg-pull-up-drv-level-3"; - rgmii_phy1 = "/ethernet@fe1c0000/mdio/phy@1"; - i2c4m0_xfer = "/pinctrl/i2c4/i2c4m0-xfer"; - pcfg_pull_down_drv_level_7 = "/pinctrl/pcfg-pull-down-drv-level-7"; - spdif0m0_tx = "/pinctrl/spdif0/spdif0m0-tx"; - wdt = "/watchdog@feaf0000"; - vdd_0v85_s0 = "/spi@feb20000/rk806single@0/regulators/NLDO_REG4"; - cspmu = "/cspmu@fd10c000"; - gmac_uio0 = "/uio@fe1b0000"; - av1d_mmu = "/iommu@fdca0000"; - mailbox2 = "/mailbox@fece0000"; - mipi4_csi2_hw = "/mipi4-csi2-hw@fdd50000"; - pdm1m1_idle = "/pinctrl/pdm1/pdm1m1-idle"; - rga3_core0 = "/rga@fdb60000"; - i2s1m0_sdo0 = "/pinctrl/i2s1/i2s1m0-sdo0"; - bigcore1_thermal = "/thermal-zones/bigcore1-thermal"; - pcfg_output_low_pull_up = "/pinctrl/pcfg-output-low-pull-up"; - spi2m1_pins = "/pinctrl/spi2/spi2m1-pins"; - pwm7m0_pins = "/pinctrl/pwm7/pwm7m0-pins"; - i2c2 = "/i2c@feaa0000"; - npu_grf = "/syscon@fd5a2000"; - i2s1m1_sdi0 = "/pinctrl/i2s1/i2s1m1-sdi0"; - mipi5_csi2 = "/mipi5-csi2"; - pwm8 = "/pwm@febe0000"; - log_leakage = "/otp@fecc0000/log-leakage@1a"; - cpub23_opp_info = "/otp@fecc0000/cpub23-opp-info@49"; - vdd_vdenc_mem_s0 = "/spi@feb20000/rk806single@0/regulators/DCDC_REG4"; - rga2 = "/rga@fdb80000"; - emmc_bus8 = "/pinctrl/emmc/emmc-bus8"; - qos_usb3_0 = "/qos@fdf3e200"; - sata1m0_pins = "/pinctrl/sata1/sata1m0-pins"; - uart8m0_xfer = "/pinctrl/uart8/uart8m0-xfer"; - pwm13m2_pins = "/pinctrl/pwm13/pwm13m2-pins"; - hdmi_debug3 = "/pinctrl/hdmi/hdmi-debug3"; - cam0_or_cam1_switch_pin = "/pinctrl/cam/cam0-or-cam1-switch-pin"; - mcum1_pins = "/pinctrl/mcu/mcum1-pins"; - pwm10m1_pins = "/pinctrl/pwm10/pwm10m1-pins"; - edp1_out = "/edp@fded0000/ports/port@1/endpoint"; - hclk_sdio_pre = "/clocks/hclk_sdio_pre@fd7c092c"; - usb_host0_ehci = "/usb@fc800000"; - edp1_in_vp0 = "/edp@fded0000/ports/port@0/endpoint@0"; - gmac1 = "/ethernet@fe1c0000"; - i2s10_8ch = "/i2s@fde00000"; - hdmi1_in = "/hdmi@fdea0000/ports/port@0"; - usb2phy1_grf = "/syscon@fd5d4000"; - pdm0m0_clk1 = "/pinctrl/pdm0/pdm0m0-clk1"; - jpege2_mmu = "/iommu@fdba8800"; - pwm13 = "/pwm@febf0010"; - pcie2x1l0 = "/pcie@fe170000"; - hdmi0_in_vp1 = "/hdmi@fde80000/ports/port@0/endpoint@1"; - hdmim0_tx1_cec = "/pinctrl/hdmi/hdmim0-tx1-cec"; - l2_cache_b1 = "/cpus/l2-cache-b1"; - cif_dvp_bus8 = "/pinctrl/cif/cif-dvp-bus8"; - qos_rga2_mro = "/qos@fdf66c00"; - aclk_rkvdec1_pre = "/clocks/aclk_rkvdec1_pre@fd7c08a4"; - i2c8m1_xfer = "/pinctrl/i2c8/i2c8m1-xfer"; - vdd_ddr_s0 = "/spi@feb20000/rk806single@0/regulators/DCDC_REG5"; - hdmirx_det = "/pinctrl/hdmirx/hdmirx-det"; - pca9555 = "/i2c@feab0000/gpio@21"; - qos_sdmmc = "/qos@fdf3d800"; - clk32k_out1 = "/pinctrl/clk32k/clk32k-out1"; - i2c5m0_xfer = "/pinctrl/i2c5/i2c5m0-xfer"; - cif_dvp_clk = "/pinctrl/cif/cif-dvp-clk"; - rknpu = "/npu@fdab0000"; - pcfg_pull_none_drv_level_2 = "/pinctrl/pcfg-pull-none-drv-level-2"; - spi3m2_cs0 = "/pinctrl/spi3/spi3m2-cs0"; - vp0 = "/vop@fdd90000/ports/port@0"; - rga3_1_mmu = "/iommu@fdb70f00"; - jtagm2_pins = "/pinctrl/jtag/jtagm2-pins"; - cpu_l0 = "/cpus/cpu@0"; - uart7 = "/serial@feba0000"; - rkisp1_vir2 = "/rkisp1-vir2"; - fec1_mmu = "/iommu@fdcd8f00"; - qos_vop_m0 = "/qos@fdf82000"; - pcie_clk1 = "/pcie-clk1"; - gmac1_ptp_ref_clk = "/pinctrl/gmac1/gmac1-ptp-ref-clk"; - spi3m1_pins = "/pinctrl/spi3/spi3m1-pins"; - pwm8m0_pins = "/pinctrl/pwm8/pwm8m0-pins"; - hdmi0_sound = "/hdmi0-sound"; - ioc = "/syscon@fd5f0000"; - spi0m0_pins = "/pinctrl/spi0/spi0m0-pins"; - avsd = "/avsd-plus@fdb51000"; - rkcif_mipi_lvds5_sditf_vir3 = "/rkcif-mipi-lvds5-sditf-vir3"; - u2phy2 = "/syscon@fd5d8000/usb2-phy@8000"; - sfc = "/spi@fe2b0000"; - csi2_dphy0 = "/csi2-dphy0"; - spi1 = "/spi@feb10000"; - spi4m1_cs0 = "/pinctrl/spi4/spi4m1-cs0"; - gpu_grf = "/syscon@fd5a0000"; - pcfg_pull_up_drv_level_14 = "/pinctrl/pcfg-pull-up-drv-level-14"; - wireless_bluetooth = "/wireless-bluetooth"; - pclk_av1_pre = "/clocks/pclk_av1_pre@fd7c0910"; - sata2m0_pins = "/pinctrl/sata2/sata2m0-pins"; - uart9m0_xfer = "/pinctrl/uart9/uart9m0-xfer"; - pwm14m2_pins = "/pinctrl/pwm14/pwm14m2-pins"; - i2s1m0_sdi2 = "/pinctrl/i2s1/i2s1m0-sdi2"; - pwm11m1_pins = "/pinctrl/pwm11/pwm11m1-pins"; - bt_sound = "/bt-sound"; - qos_rkvenc1_m0ro = "/qos@fdf61000"; - mclkout_i2s2 = "/clocks/mclkout-i2s2@fd58c318"; - dsi0 = "/dsi@fde20000"; - pdm1m0_clk1 = "/pinctrl/pdm1/pdm1m0-clk1"; - uart1m0_rtsn = "/pinctrl/uart1/uart1m0-rtsn"; - ddrphych2_pins = "/pinctrl/ddrphych2/ddrphych2-pins"; - route_edp0 = "/display-subsystem/route/route-edp0"; - hdmi0 = "/hdmi@fde80000"; - es8388_sound = "/es8388-sound"; - hdmi1_in_vp1 = "/hdmi@fdea0000/ports/port@0/endpoint@1"; - pcfg_pull_up_drv_level_1 = "/pinctrl/pcfg-pull-up-drv-level-1"; - pcfg_pull_down_drv_level_5 = "/pinctrl/pcfg-pull-down-drv-level-5"; - i2s0_sdo2 = "/pinctrl/i2s0/i2s0-sdo2"; - vop_out = "/vop@fdd90000/ports"; - vdd_0v75_s3 = "/spi@feb20000/rk806single@0/regulators/NLDO_REG1"; - hdmim1_rx = "/pinctrl/hdmi/hdmim1-rx"; - pcfg_pull_down_smt = "/pinctrl/pcfg-pull-down-smt"; - hdmim0_tx1_scl = "/pinctrl/hdmi/hdmim0-tx1-scl"; - hdmim0_tx1_sda = "/pinctrl/hdmi/hdmim0-tx1-sda"; - cpul_opp_info = "/otp@fecc0000/cpul-opp-info@3d"; - clk32k_in = "/pinctrl/clk32k/clk32k-in"; - usbdp_phy1 = "/phy@fed90000"; - mailbox0 = "/mailbox@fec60000"; - i2c6m0_xfer = "/pinctrl/i2c6/i2c6m0-xfer"; - pdm0m1_sdi2 = "/pinctrl/pdm0/pdm0m1-sdi2"; - sdmmc = "/mmc@fe2c0000"; - hclk_nvm = "/clocks/hclk_nvm@fd7c087c"; - hdmim0_tx1_hpd = "/pinctrl/hdmi/hdmim0-tx1-hpd"; - vp0_out_dp0 = "/vop@fdd90000/ports/port@0/endpoint@0"; - vddq_ddr_s0 = "/spi@feb20000/rk806single@0/regulators/DCDC_REG9"; - vcc_3v3_s3 = "/spi@feb20000/rk806single@0/regulators/DCDC_REG8"; - gmac0_ppstring = "/pinctrl/gmac0/gmac0-ppstring"; - i2c0 = "/i2c@fd880000"; - pdm1m1_clk = "/pinctrl/pdm1/pdm1m1-clk"; - pdm0m0_idle = "/pinctrl/pdm0/pdm0m0-idle"; - soc_thermal = "/thermal-zones/soc-thermal"; - cluster1_opp_table = "/cluster1-opp-table"; - i2s0_idle = "/pinctrl/i2s0/i2s0-idle"; - spi4m1_pins = "/pinctrl/spi4/spi4m1-pins"; - npu_opp_info = "/otp@fecc0000/npu-opp-info@55"; - pwm9m0_pins = "/pinctrl/pwm9/pwm9m0-pins"; - pwm6 = "/pwm@febd0020"; - spi1m0_pins = "/pinctrl/spi1/spi1m0-pins"; - hym8563 = "/i2c@fd880000/hym8563@51"; - i2s1m1_sclk = "/pinctrl/i2s1/i2s1m1-sclk"; - rk806_dvs2_gpio = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs2_gpio"; - hp_det = "/pinctrl/headphone/hp-det"; - hdmi_debug1 = "/pinctrl/hdmi/hdmi-debug1"; - vp1_out_dp1 = "/vop@fdd90000/ports/port@1/endpoint@3"; - qos_mcu_npu = "/qos@fdf72400"; - auddsm_pins = "/pinctrl/auddsm/auddsm-pins"; - i2s3_lrck = "/pinctrl/i2s3/i2s3-lrck"; - pcfg_pull_none_drv_level_2_smt = "/pinctrl/pcfg-pull-none-drv-level-2-smt"; - pwm15m2_pins = "/pinctrl/pwm15/pwm15m2-pins"; - pipe_phy1_grf = "/syscon@fd5c0000"; - pwm12m1_pins = "/pinctrl/pwm12/pwm12m1-pins"; - pwm11 = "/pwm@febe0030"; - rkisp_unite = "/rkisp-unite@fdcb0000"; - rkcif_mipi_lvds2_sditf = "/rkcif-mipi-lvds2-sditf"; - vp1_out_edp0 = "/vop@fdd90000/ports/port@1/endpoint@1"; - hclk_isp1_pre = "/clocks/hclk_isp1_pre@fd7c0868"; - rk806_dvs2_slp = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs2_slp"; - i2s7_8ch = "/i2s@fddf8000"; - uart5m1_rtsn = "/pinctrl/uart5/uart5m1-rtsn"; - mipidphy1_grf = "/syscon@fd5b5000"; - usbhost3_0 = "/usbhost3_0"; - jpege2 = "/jpege-core@fdba8000"; - pcfg_pull_none_drv_level_15 = "/pinctrl/pcfg-pull-none-drv-level-15"; - pcie3x2_intc = "/pcie@fe160000/legacy-interrupt-controller"; - vp2_out_dsi1 = "/vop@fdd90000/ports/port@2/endpoint@4"; - mipidphy0_in_ucam0 = "/csi2-dphy0/ports/port@0/endpoint@0"; - av1d = "/av1d@fdc70000"; - uart1m2_ctsn = "/pinctrl/uart1/uart1m2-ctsn"; - sdiom1_pins = "/pinctrl/sdio/sdiom1-pins"; - rockchip_suspend = "/rockchip-suspend"; - rk806_dvs2_pwrdn = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs2_pwrdn"; - pcfg_pull_none_drv_level_0 = "/pinctrl/pcfg-pull-none-drv-level-0"; - npu_thermal = "/thermal-zones/npu-thermal"; - i2c7m0_xfer = "/pinctrl/i2c7/i2c7m0-xfer"; - pdm1m1_sdi2 = "/pinctrl/pdm1/pdm1m1-sdi2"; - cpu_pins = "/pinctrl/cpu/cpu-pins"; - dsi0_in_vp2 = "/dsi@fde20000/ports/port@0/endpoint@0"; - bt_wake_gpio = "/pinctrl/wireless-bluetooth/bt-wake-gpio"; - uart5 = "/serial@feb80000"; - dwc3_0_role_switch = "/usbdrd3_0/usb@fc000000/port/endpoint@0"; - rkisp1_vir0 = "/rkisp1-vir0"; - fiq_debugger = "/fiq-debugger"; - usbdp_phy1_u3 = "/phy@fed90000/u3-port"; - spi0m0_cs1 = "/pinctrl/spi0/spi0m0-cs1"; - sdio = "/mmc@fe2d0000"; - rkcif_mipi_lvds_sditf_vir2 = "/rkcif-mipi-lvds-sditf-vir2"; - spdif1m2_tx = "/pinctrl/spdif1/spdif1m2-tx"; - qos_gpu_m3 = "/qos@fdf35600"; - pdm1m0_idle = "/pinctrl/pdm1/pdm1m0-idle"; - pcfg_pull_none_drv_level_6_smt = "/pinctrl/pcfg-pull-none-drv-level-6-smt"; - user_led = "/leds/user"; - rkcif_mipi_lvds5_sditf_vir1 = "/rkcif-mipi-lvds5-sditf-vir1"; - i2s2m1_sdi = "/pinctrl/i2s2/i2s2m1-sdi"; - uart8_xfer = "/pinctrl/uart8/uart8-xfer"; - u2phy0 = "/syscon@fd5d0000/usb2-phy@0"; - pclk_vo1_grf = "/clocks/pclk_vo1_grf@fd7c08ec"; - vdd_gpu_mem_s0 = "/spi@feb20000/rk806single@0/regulators/DCDC_REG1"; - spi2m0_pins = "/pinctrl/spi2/spi2m0-pins"; - qos_rga3_1 = "/qos@fdf36000"; - i2s2m1_sclk = "/pinctrl/i2s2/i2s2m1-sclk"; - pcfg_pull_up_drv_level_12 = "/pinctrl/pcfg-pull-up-drv-level-12"; - spdif_tx4 = "/spdif-tx@fdde8000"; - gmac1_mtl_rx_setup = "/ethernet@fe1c0000/rx-queues-config"; - rkispp1 = "/rkispp@fdcd8000"; - hdmim2_tx1_cec = "/pinctrl/hdmi/hdmim2-tx1-cec"; - u2phy1_otg = "/syscon@fd5d4000/usb2-phy@4000/otg-port"; - hdptxphy_hdmi_clk0 = "/hdmiphy@fed60000/clk-port"; - i2s1m0_sdi0 = "/pinctrl/i2s1/i2s1m0-sdi0"; - mipi4_csi2 = "/mipi4-csi2"; - mclkout_i2s0 = "/clocks/mclkout-i2s0@fd58c318"; - vcc5v0_host3 = "/vcc5v0-host3"; - rkcif_mipi_lvds5 = "/rkcif-mipi-lvds5"; - vdd_cpu_big0_s0 = "/i2c@fd880000/rk8602@42"; - dp1 = "/dp@fde60000"; - emmc_data_strobe = "/pinctrl/emmc/emmc-data-strobe"; - pwm13m1_pins = "/pinctrl/pwm13/pwm13m1-pins"; - vop_pins = "/pinctrl/vop/vop-pins"; - pcie20x1m1_pins = "/pinctrl/pcie20x1/pcie20x1m1-pins"; - fspim2_cs1 = "/pinctrl/fspi/fspim2-cs1"; - vcc_hub = "/vcc-hub-regulator"; - mcum0_pins = "/pinctrl/mcu/mcum0-pins"; - pwm10m0_pins = "/pinctrl/pwm10/pwm10m0-pins"; - uart9m2_rtsn = "/pinctrl/uart9/uart9m2-rtsn"; - mipidcphy0 = "/phy@feda0000"; - uart6m1_rtsn = "/pinctrl/uart6/uart6m1-rtsn"; - vcc3v3_pcie30 = "/vcc3v3-pcie30"; - pcfg_pull_down_drv_level_3 = "/pinctrl/pcfg-pull-down-drv-level-3"; - mipim1_camera0_clk = "/pinctrl/mipi/mipim1-camera0-clk"; - i2s0_sdo0 = "/pinctrl/i2s0/i2s0-sdo0"; - vop = "/vop@fdd90000"; - gmac0_ptp_refclk = "/pinctrl/gmac0/gmac0-ptp-refclk"; - usbdp_phy0_orientation_switch = "/phy@fed80000/port/endpoint@0"; - vepu = "/vepu@fdb50000"; - cif_clk = "/pinctrl/cif/cif-clk"; - pcie30_phy_grf = "/syscon@fd5b8000"; - isp1_mmu = "/iommu@fdcc7f00"; - pdm0m1_sdi0 = "/pinctrl/pdm0/pdm0m1-sdi0"; - rkvdec1_mmu = "/iommu@fdc48700"; - edp1 = "/edp@fded0000"; - cam0_cam1_switch = "/cam0-cam1-switch"; - gmac1_ppstrig = "/pinctrl/gmac1/gmac1-ppstrig"; - i2c8m0_xfer = "/pinctrl/i2c8/i2c8m0-xfer"; - dsi1_in_vp2 = "/dsi@fde30000/ports/port@0/endpoint@0"; - hdmim2_rx_hpdin = "/pinctrl/hdmi/hdmim2-rx-hpdin"; - i2s1m1_sdo3 = "/pinctrl/i2s1/i2s1m1-sdo3"; - pcfg_pull_down_drv_level_14 = "/pinctrl/pcfg-pull-down-drv-level-14"; - gmac0_rx_bus2 = "/pinctrl/gmac0/gmac0-rx-bus2"; - rkcif_mipi_lvds4_sditf_vir2 = "/rkcif-mipi-lvds4-sditf-vir2"; - center_thermal = "/thermal-zones/center-thermal"; - uart0_ctsn = "/pinctrl/uart0/uart0-ctsn"; - uart4_rtsn = "/pinctrl/uart4/uart4-rtsn"; - pwm4 = "/pwm@febd0000"; - vdd2_ddr_s3 = "/spi@feb20000/rk806single@0/regulators/DCDC_REG6"; - jtagm1_pins = "/pinctrl/jtag/jtagm1-pins"; - rkisp0_vir2 = "/rkisp0-vir2"; - i2c1m4_xfer = "/pinctrl/i2c1/i2c1m4-xfer"; - l2_cache_l2 = "/cpus/l2-cache-l2"; - pcfg_pull_none_drv_level_9 = "/pinctrl/pcfg-pull-none-drv-level-9"; - qos_vdpu = "/qos@fdf67200"; - vp2_out_hdmi1 = "/vop@fdd90000/ports/port@2/endpoint@7"; - spi3m0_pins = "/pinctrl/spi3/spi3m0-pins"; - pcfg_output_low_pull_none = "/pinctrl/pcfg-output-low-pull-none"; - spi0m2_cs0 = "/pinctrl/spi0/spi0m2-cs0"; - rkisp1 = "/rkisp@fdcc0000"; - usbdpphy1_grf = "/syscon@fd5cc000"; - mipim1_camera4_clk = "/pinctrl/mipi/mipim1-camera4-clk"; - mipim0_camera2_clk = "/pinctrl/mipi/mipim0-camera2-clk"; - csi2_dcphy1 = "/csi2-dcphy1"; - hdmim2_tx1_scl = "/pinctrl/hdmi/hdmim2-tx1-scl"; - hdmim2_tx1_sda = "/pinctrl/hdmi/hdmim2-tx1-sda"; - spi2m2_cs1 = "/pinctrl/spi2/spi2m2-cs1"; - chosen = "/chosen"; - soc_crit = "/thermal-zones/soc-thermal/trips/soc-crit"; - rk806_dvs1_rst = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs1_rst"; - mpp_srv = "/mpp-srv"; - hclk_rkvenc1_pre = "/clocks/hclk_rkvenc1_pre@fd7c08c0"; - dp0m2_pins = "/pinctrl/dp0/dp0m2-pins"; - debug = "/debug@fd104000"; - jpege0 = "/jpege-core@fdba0000"; - pcfg_pull_none_drv_level_13 = "/pinctrl/pcfg-pull-none-drv-level-13"; - pwm14m1_pins = "/pinctrl/pwm14/pwm14m1-pins"; - pwm11m0_pins = "/pinctrl/pwm11/pwm11m0-pins"; - vp2_out_dp0 = "/vop@fdd90000/ports/port@2/endpoint@0"; - qos_rkvenc0_m0ro = "/qos@fdf60000"; - its0 = "/interrupt-controller@fe600000/msi-controller@fe640000"; - cpu_b2 = "/cpus/cpu@600"; - uart7m1_rtsn = "/pinctrl/uart7/uart7m1-rtsn"; - usb_5v_ctrl = "/pinctrl/usb-typec/usb-5v-ctrl"; - tsadc_gpio_func = "/pinctrl/gpio-func/tsadc-gpio-func"; - spi1m1_cs0 = "/pinctrl/spi1/spi1m1-cs0"; - pcfg_pull_down = "/pinctrl/pcfg-pull-down"; - dmc_opp_info = "/otp@fecc0000/dmc-opp-info@5b"; - ddrphych1_pins = "/pinctrl/ddrphych1/ddrphych1-pins"; - dsi0_in = "/dsi@fde20000/ports/port@0"; - pdm1m1_sdi0 = "/pinctrl/pdm1/pdm1m1-sdi0"; - spi3m1_cs1 = "/pinctrl/spi3/spi3m1-cs1"; - bigcore0_grf = "/syscon@fd590000"; - cpub1_leakage = "/otp@fecc0000/cpub1-leakage@18"; - uart3 = "/serial@feb60000"; - aclk_hdcp1_pre = "/clocks/aclk_hdcp1_pre@fd7c08ec"; - pcfg_pull_up = "/pinctrl/pcfg-pull-up"; - rkcif_mipi_lvds3_sditf_vir3 = "/rkcif-mipi-lvds3-sditf-vir3"; - codec_leakage = "/otp@fecc0000/codec-leakage@29"; - pcfg_pull_up_drv_level_8 = "/pinctrl/pcfg-pull-up-drv-level-8"; - dmac1 = "/dma-controller@fea30000"; - pdm0m0_sdi2 = "/pinctrl/pdm0/pdm0m0-sdi2"; - i2s1m1_lrck = "/pinctrl/i2s1/i2s1m1-lrck"; - qos_gpu_m1 = "/qos@fdf35200"; - i2s0_sdi2 = "/pinctrl/i2s0/i2s0-sdi2"; - spi2m0_cs0 = "/pinctrl/spi2/spi2m0-cs0"; - gpu_opp_info = "/otp@fecc0000/gpu-opp-info@4f"; - csi2_dphy1_hw = "/csi2-dphy1-hw@fedc8000"; - pcfg_pull_up_drv_level_10 = "/pinctrl/pcfg-pull-up-drv-level-10"; - spdif_tx2 = "/spdif-tx@fddb0000"; - npu_opp_table = "/npu-opp-table"; - spi4m0_cs1 = "/pinctrl/spi4/spi4m0-cs1"; - vo0_grf = "/syscon@fd5a6000"; - i2c2m4_xfer = "/pinctrl/i2c2/i2c2m4-xfer"; - qos_usb2host_0 = "/qos@fdf3e400"; - spi4m0_pins = "/pinctrl/spi4/spi4m0-pins"; - gmac1_mtl_tx_setup = "/ethernet@fe1c0000/tx-queues-config"; - rkcif_mipi_lvds3 = "/rkcif-mipi-lvds3"; - i2s1m0_sclk = "/pinctrl/i2s1/i2s1m0-sclk"; - i2c7 = "/i2c@fec90000"; - mipi2_csi2_output = "/mipi2-csi2/ports/port@1/endpoint@0"; - mipi_te0 = "/pinctrl/mipi/mipi-te0"; - sata_reset = "/pinctrl/sata/sata-reset"; - dp1m2_pins = "/pinctrl/dp1/dp1m2-pins"; - pwm15m1_pins = "/pinctrl/pwm15/pwm15m1-pins"; - pcfg_pull_down_drv_level_1 = "/pinctrl/pcfg-pull-down-drv-level-1"; - pwm12m0_pins = "/pinctrl/pwm12/pwm12m0-pins"; - qos_vicap_m1 = "/qos@fdf40800"; - sdmmc_cmd = "/pinctrl/sdmmc/sdmmc-cmd"; - uart8m1_rtsn = "/pinctrl/uart8/uart8m1-rtsn"; - usb2phy2_grf = "/syscon@fd5d8000"; - rkvdec1_sram = "/sram@ff001000/rkvdec-sram@78000"; - uart5m0_rtsn = "/pinctrl/uart5/uart5m0-rtsn"; - jpege3_mmu = "/iommu@fdbac800"; - vcc_2v0_pldo_s3 = "/spi@feb20000/rk806single@0/regulators/DCDC_REG7"; - i2s3_mclk = "/pinctrl/i2s3/i2s3-mclk"; - mclkout_i2s1m1 = "/clocks/mclkout-i2s1@fd58a000"; - spdif_tx1_dc = "/spdif-tx1-dc"; - uart0m2_xfer = "/pinctrl/uart0/uart0m2-xfer"; - wifi_host_wake_irq = "/pinctrl/wireless-wlan/wifi-host-wake-irq"; - i2s1m1_sdo1 = "/pinctrl/i2s1/i2s1m1-sdo1"; - uart1m1_ctsn = "/pinctrl/uart1/uart1m1-ctsn"; - pcfg_pull_down_drv_level_12 = "/pinctrl/pcfg-pull-down-drv-level-12"; - sdiom0_pins = "/pinctrl/sdio/sdiom0-pins"; - pcfg_pull_up_smt = "/pinctrl/pcfg-pull-up-smt"; - php_grf = "/syscon@fd5b0000"; - pwm2 = "/pwm@fd8b0020"; - pdm1m0_sdi2 = "/pinctrl/pdm1/pdm1m0-sdi2"; - i2s2m1_lrck = "/pinctrl/i2s2/i2s2m1-lrck"; - gmac0_stmmac_axi_setup = "/ethernet@fe1b0000/stmmac-axi-config"; - mipi1_csi2_hw = "/mipi1-csi2-hw@fdd20000"; - sata1 = "/sata@fe220000"; - rkispp1_vir0 = "/rkispp1-vir0"; - dp0_in_vp1 = "/dp@fde50000/ports/port@0/endpoint@1"; - CPU_SLEEP = "/cpus/idle-states/cpu-sleep"; - rkisp0_vir0 = "/rkisp0-vir0"; - spi3m3_cs0 = "/pinctrl/spi3/spi3m3-cs0"; - specification_serial_number = "/otp@fecc0000/specification-serial-number@6"; - l2_cache_l0 = "/cpus/l2-cache-l0"; - pcfg_pull_none_drv_level_7 = "/pinctrl/pcfg-pull-none-drv-level-7"; - qos_hdcp0 = "/qos@fdf80000"; - qos_npu0_mro = "/qos@fdf72200"; - usbdrd_dwc3_1 = "/usbdrd3_1/usb@fc400000"; - rkvenc1 = "/rkvenc-core@fdbe0000"; - display_subsystem = "/display-subsystem"; - i2c3m4_xfer = "/pinctrl/i2c3/i2c3m4-xfer"; - pcie30x2m3_pins = "/pinctrl/pcie30x2/pcie30x2m3-pins"; - qos_npu2 = "/qos@fdf71000"; - i2s0_8ch = "/i2s@fe470000"; - i2s2m0_sclk = "/pinctrl/i2s2/i2s2m0-sclk"; - pmu = "/power-management@fd8d8000"; - gmac1_tx_bus2 = "/pinctrl/gmac1/gmac1-tx-bus2"; - pcfg_pull_none_drv_level_11 = "/pinctrl/pcfg-pull-none-drv-level-11"; - route_hdmi1 = "/display-subsystem/route/route-hdmi1"; - csi2_dphy5 = "/csi2-dphy5"; - spi4m2_cs0 = "/pinctrl/spi4/spi4m2-cs0"; - mipi3_csi2 = "/mipi3-csi2"; - pmu0_grf = "/syscon@fd588000"; - fan = "/pwm-fan"; - cpu_b0 = "/cpus/cpu@400"; - vccio_sd_s0 = "/spi@feb20000/rk806single@0/regulators/PLDO_REG5"; - qos_rkvenc1_m2wo = "/qos@fdf61400"; - gpio4 = "/pinctrl/gpio@fec50000"; - hdmim0_rx_cec = "/pinctrl/hdmi/hdmim0-rx-cec"; - pwm3m3_pins = "/pinctrl/pwm3/pwm3m3-pins"; - aclk_vdpu_low_pre = "/clocks/aclk_vdpu_low_pre@fd7c08b0"; - mmu600_php = "/iommu@fcb00000"; - cif_mipi2_in1 = "/rkcif-mipi-lvds2/port/endpoint"; - pwm0m2_pins = "/pinctrl/pwm0/pwm0m2-pins"; - pwm13m0_pins = "/pinctrl/pwm13/pwm13m0-pins"; - pcie20x1m0_pins = "/pinctrl/pcie20x1/pcie20x1m0-pins"; - bt656_pins = "/pinctrl/bt656/bt656-pins"; - hdmi1_sound = "/hdmi1-sound"; - uart9m1_rtsn = "/pinctrl/uart9/uart9m1-rtsn"; - uart6m0_rtsn = "/pinctrl/uart6/uart6m0-rtsn"; - pcie2x1l2_intc = "/pcie@fe190000/legacy-interrupt-controller"; - mod_sleep = "/mod-sleep-regulator"; - gpu_thermal = "/thermal-zones/gpu-thermal"; - hdmim1_tx0_cec = "/pinctrl/hdmi/hdmim1-tx0-cec"; - uart1 = "/serial@feb40000"; - rkcif_mipi_lvds3_sditf_vir1 = "/rkcif-mipi-lvds3-sditf-vir1"; - pcfg_pull_up_drv_level_6 = "/pinctrl/pcfg-pull-up-drv-level-6"; - qos_rkvdec0 = "/qos@fdf62000"; - vp2_out_edp0 = "/vop@fdd90000/ports/port@2/endpoint@1"; - uart1m2_xfer = "/pinctrl/uart1/uart1m2-xfer"; - pdm0m0_sdi0 = "/pinctrl/pdm0/pdm0m0-sdi0"; - fspim2_pins = "/pinctrl/fspi/fspim2-pins"; - i2s0_sdi0 = "/pinctrl/i2s0/i2s0-sdi0"; - gpu_pins = "/pinctrl/gpu/gpu-pins"; - imx415 = "/i2c@fec80000/imx415@37"; - vp3_out_dsi1 = "/vop@fdd90000/ports/port@3/endpoint@1"; - i2s4_8ch = "/i2s@fddc0000"; - ramoops = "/reserved-memory/ramoops@110000"; - dp0_sound = "/dp0-sound"; - spdif_tx0 = "/spdif-tx@fe4e0000"; - dp1_in_vp1 = "/dp@fde60000/ports/port@0/endpoint@1"; - i2s1m0_sdo3 = "/pinctrl/i2s1/i2s1m0-sdo3"; - mipi2_csi2_input1 = "/mipi2-csi2/ports/port@0/endpoint@0"; - vcc_1v8_s0 = "/spi@feb20000/rk806single@0/regulators/PLDO_REG2"; - vp1_out_hdmi0 = "/vop@fdd90000/ports/port@1/endpoint@2"; - vcc12v_dcin = "/vcc12v-dcin"; - vp0_out_edp1 = "/vop@fdd90000/ports/port@0/endpoint@4"; - uart3_rtsn = "/pinctrl/uart3/uart3-rtsn"; - gmac1_rgmii_clk = "/pinctrl/gmac1/gmac1-rgmii-clk"; - package_serial_number_high = "/otp@fecc0000/package-serial-number-high@5"; - hdcp0 = "/hdcp@fde40000"; - qos_fisheye1 = "/qos@fdf40200"; - rkcif_mipi_lvds1 = "/rkcif-mipi-lvds1"; - i2c5 = "/i2c@fead0000"; - jtagm0_pins = "/pinctrl/jtag/jtagm0-pins"; - i2c4m4_xfer = "/pinctrl/i2c4/i2c4m4-xfer"; - spdif_tx1_sound = "/spdif-tx1-sound"; - qos_jpeg_enc2 = "/qos@fdf66800"; - hdmi0_in = "/hdmi@fde80000/ports/port@0"; - i2s1m1_sdi3 = "/pinctrl/i2s1/i2s1m1-sdi3"; - i2c1m3_xfer = "/pinctrl/i2c1/i2c1m3-xfer"; - hdptxphy_hdmi0 = "/hdmiphy@fed60000"; - sdmmc_pwren = "/pinctrl/sdmmc/sdmmc-pwren"; - usbdp_phy1_dp = "/phy@fed90000/dp-port"; - npu_leakage = "/otp@fecc0000/npu-leakage@28"; - aclk_jpeg_decoder_pre = "/clocks/aclk_jpeg_decoder_pre@fd7c08b0"; - pdm0 = "/pdm@fe4b0000"; - gmac1_miim = "/pinctrl/gmac1/gmac1-miim"; - pcfg_output_high_pull_down = "/pinctrl/pcfg-output-high-pull-down"; - hdmi_debug6 = "/pinctrl/hdmi/hdmi-debug6"; - pcie3x4 = "/pcie@fe150000"; - can0m1_pins = "/pinctrl/can0/can0m1-pins"; - mclkin_i2s2 = "/clocks/mclkin-i2s2"; - jpege_ccu = "/jpege-ccu"; - pcfg_pull_none_drv_level_3_smt = "/pinctrl/pcfg-pull-none-drv-level-3-smt"; - hdmim1_rx_cec = "/pinctrl/hdmi/hdmim1-rx-cec"; - pipe_phy2_grf = "/syscon@fd5c4000"; - dp0m1_pins = "/pinctrl/dp0/dp0m1-pins"; - rkvdec1 = "/rkvdec-core@fdc48000"; - pwm1m2_pins = "/pinctrl/pwm1/pwm1m2-pins"; - pwm14m0_pins = "/pinctrl/pwm14/pwm14m0-pins"; - little_core_thermal = "/thermal-zones/littlecore-thermal"; - rk806_dvs3_slp = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs3_slp"; - usb_5v = "/usb-5v"; - i2s8_8ch = "/i2s@fddc8000"; - drm_cubic_lut = "/reserved-memory/drm-cubic-lut@00000000"; - rkcif_mipi_lvds2_sditf_vir2 = "/rkcif-mipi-lvds2-sditf-vir2"; - hdptxphy0 = "/phy@fed60000"; - pcie30x1_0_button_rstn = "/pinctrl/pcie30x1/pcie30x1-0-button-rstn"; - u2phy3_host = "/syscon@fd5dc000/usb2-phy@c000/host-port"; - route_dp0 = "/display-subsystem/route/route-dp0"; - hdmim0_rx_scl = "/pinctrl/hdmi/hdmim0-rx-scl"; - hdmim0_rx_sda = "/pinctrl/hdmi/hdmim0-rx-sda"; - uart7m0_rtsn = "/pinctrl/uart7/uart7m0-rtsn"; - pcfg_pull_down_drv_level_10 = "/pinctrl/pcfg-pull-down-drv-level-10"; - usbdrd3_0 = "/usbdrd3_0"; - ddrphych0_pins = "/pinctrl/ddrphych0/ddrphych0-pins"; - bt_irq_gpio = "/pinctrl/wireless-bluetooth/bt-irq-gpio"; - pwm0 = "/pwm@fd8b0000"; - uart2m2_xfer = "/pinctrl/uart2/uart2m2-xfer"; - pdm1m0_sdi0 = "/pinctrl/pdm1/pdm1m0-sdi0"; - hdmim1_tx0_scl = "/pinctrl/hdmi/hdmim1-tx0-scl"; - hdmim1_tx0_sda = "/pinctrl/hdmi/hdmim1-tx0-sda"; - can1 = "/can@fea60000"; - rkvtunnel = "/rkvtunnel"; - pcfg_pull_none_drv_level_5 = "/pinctrl/pcfg-pull-none-drv-level-5"; - rkcif_mipi_lvds3_sditf = "/rkcif-mipi-lvds3-sditf"; - combphy2_psu = "/phy@fee20000"; - vp3 = "/vop@fdd90000/ports/port@3"; - rk806_dvs2_dvs = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs2_dvs"; - mmu600_pcie = "/iommu@fc900000"; - hdmim1_tx0_hpd = "/pinctrl/hdmi/hdmim1-tx0-hpd"; - i2s1m0_lrck = "/pinctrl/i2s1/i2s1m0-lrck"; - cpu_l3 = "/cpus/cpu@300"; - spi0m1_cs1 = "/pinctrl/spi0/spi0m1-cs1"; - vp0_out_hdmi1 = "/vop@fdd90000/ports/port@0/endpoint@5"; - spdif_rx1 = "/spdif-rx@fde10000"; - gmac0_clkinout = "/pinctrl/gmac0/gmac0-clkinout"; - rkcif_dvp = "/rkcif-dvp"; - i2c5m4_xfer = "/pinctrl/i2c5/i2c5m4-xfer"; - wireless_wlan = "/wireless-wlan"; - rkcif_mipi_lvds = "/rkcif-mipi-lvds"; - avdd_0v75_s0 = "/spi@feb20000/rk806single@0/regulators/NLDO_REG3"; - i2c2m3_xfer = "/pinctrl/i2c2/i2c2m3-xfer"; - pcie30x4m3_pins = "/pinctrl/pcie30x4/pcie30x4m3-pins"; - hclk_rkvdec0_pre = "/clocks/hclk_rkvdec0_pre@fd7c08a0"; - route_dsi0 = "/display-subsystem/route/route-dsi0"; - rk806_dvs3_pwrdn = "/spi@feb20000/rk806single@0/pinctrl_rk806/rk806_dvs3_pwrdn"; - csi2_dphy3 = "/csi2-dphy3"; - pcie30x1m2_pins = "/pinctrl/pcie30x1/pcie30x1m2-pins"; - spi4 = "/spi@fecb0000"; - litcore_grf = "/syscon@fd594000"; - isp0_vir2 = "/rkisp0-vir2/port/endpoint@0"; - i2s1m1_mclk = "/pinctrl/i2s1/i2s1m1-mclk"; - sys_grf = "/syscon@fd58c000"; - edp0_in_vp1 = "/edp@fdec0000/ports/port@0/endpoint@1"; - mdio0 = "/ethernet@fe1b0000/mdio"; - rkisp_unite_mmu = "/rkisp-unite-mmu@fdcb7f00"; - gpio2 = "/pinctrl/gpio@fec30000"; - spi1m0_cs1 = "/pinctrl/spi1/spi1m0-cs1"; - aclk_av1_pre = "/clocks/aclk_av1_pre@fd7c0910"; - can1m1_pins = "/pinctrl/can1/can1m1-pins"; - rkcif_mipi_lvds1_sditf_vir3 = "/rkcif-mipi-lvds1-sditf-vir3"; - hdmim2_rx_cec = "/pinctrl/hdmi/hdmim2-rx-cec"; - mipi3_csi2_hw = "/mipi3-csi2-hw@fdd40000"; - dp1m1_pins = "/pinctrl/dp1/dp1m1-pins"; - pwm2m2_pins = "/pinctrl/pwm2/pwm2m2-pins"; - pwm15m0_pins = "/pinctrl/pwm15/pwm15m0-pins"; - hclk_vo0 = "/clocks/hclk_vo0@fd7c08dc"; - bigcore0_thermal = "/thermal-zones/bigcore0-thermal"; - hdmim1_rx_scl = "/pinctrl/hdmi/hdmim1-rx-scl"; - hdmim1_rx_sda = "/pinctrl/hdmi/hdmim1-rx-sda"; - uart8m0_rtsn = "/pinctrl/uart8/uart8m0-rtsn"; - pcfg_pull_up_drv_level_4 = "/pinctrl/pcfg-pull-up-drv-level-4"; - mipim1_camera1_clk = "/pinctrl/mipi/mipim1-camera1-clk"; - rkvdec0_sram = "/sram@ff001000/rkvdec-sram@0"; - pcfg_pull_down_drv_level_8 = "/pinctrl/pcfg-pull-down-drv-level-8"; - gmac_uio1 = "/uio@fe1c0000"; - usbc0_orien_sw = "/i2c@fec80000/fusb302@22/connector/ports/port@0/endpoint"; - jpegd = "/jpegd@fdb90000"; - uart3m2_xfer = "/pinctrl/uart3/uart3m2-xfer"; - minidump_smem = "/reserved-memory/minidump-smem@1f0000"; - i2s0_sclk = "/pinctrl/i2s0/i2s0-sclk"; - uart0m1_xfer = "/pinctrl/uart0/uart0m1-xfer"; - rga3_core1 = "/rga@fdb70000"; - i2s1m0_sdo1 = "/pinctrl/i2s1/i2s1m0-sdo1"; - uart1m0_ctsn = "/pinctrl/uart1/uart1m0-ctsn"; - vcc5v0_usb = "/vcc5v0-usb"; - minidump = "/minidump"; - }; - - rkvdec-ccu@fdc30000 { - power-domains = <0x60 0x0e>; - rockchip,ccu-mode = <0x01>; - clock-names = "aclk_ccu"; - reg-names = "ccu"; - assigned-clocks = <0x02 0x18e>; - assigned-clock-rates = <0x23c34600>; - resets = <0x02 0x282>; - clocks = <0x02 0x18e>; - compatible = "rockchip,rkv-decoder-v2-ccu"; - status = "okay"; - rockchip,skip-pmu-idle-request; - reg = <0x00 0xfdc30000 0x00 0x100>; - phandle = <0xca>; - reset-names = "video_ccu"; - }; - - qos@fdf60000 { - compatible = "syscon"; - reg = <0x00 0xfdf60000 0x00 0x20>; - phandle = <0x8d>; - }; - - iommu@fdb50800 { - power-domains = <0x60 0x15>; - clock-names = "aclk\0iface"; - interrupts = <0x00 0x76 0x04>; - clocks = <0x02 0x1c0 0x02 0x1c1>; - #iommu-cells = <0x00>; - compatible = "rockchip,iommu-v2"; - status = "okay"; - interrupt-names = "irq_vdpu_mmu"; - reg = <0x00 0xfdb50800 0x00 0x40>; - phandle = <0xb7>; - }; - - rga@fdb60000 { - power-domains = <0x60 0x16>; - iommus = <0xb9>; - clock-names = "aclk_rga3_0\0hclk_rga3_0\0clk_rga3_0"; - interrupts = <0x00 0x72 0x04>; - clocks = <0x02 0x1ba 0x02 0x1b9 0x02 0x1bb>; - compatible = "rockchip,rga3_core0"; - status = "okay"; - interrupt-names = "rga3_core0_irq"; - reg = <0x00 0xfdb60000 0x00 0x1000>; - phandle = <0x269>; - }; - - qos@fdf67200 { - compatible = "syscon"; - reg = <0x00 0xfdf67200 0x00 0x20>; - phandle = <0x28b>; - }; - - vepu@fdb50000 { - power-domains = <0x60 0x15>; - iommus = <0xb7>; - clock-names = "aclk_vcodec\0hclk_vcodec"; - assigned-clocks = <0x02 0x1c0>; - rockchip,normal-rates = <0x2367b880 0x00>; - assigned-clock-rates = <0x2367b880>; - resets = <0x02 0x2c8 0x02 0x2c9>; - interrupts = <0x00 0x78 0x04>; - clocks = <0x02 0x1c0 0x02 0x1c1>; - rockchip,srv = <0xb8>; - rockchip,taskqueue-node = <0x00>; - rockchip,disable-auto-freq; - compatible = "rockchip,vpu-encoder-v2"; - rockchip,resetgroup-node = <0x00>; - status = "disabled"; - interrupt-names = "irq_vepu"; - rockchip,skip-pmu-idle-request; - reg = <0x00 0xfdb50000 0x00 0x400>; - phandle = <0x266>; - reset-names = "shared_video_a\0shared_video_h"; - }; - - mipi3-csi2 { - rockchip,hw = <0x47 0x48 0x49 0x4a 0x4b 0x4c>; - compatible = "rockchip,rk3588-mipi-csi2"; - status = "disabled"; - phandle = <0x227>; - }; - - hdmi0-sound { - rockchip,jack-det; - rockchip,cpu = <0x1d3>; - rockchip,codec = <0x1d4>; - rockchip,card-name = "rockchip-hdmi0"; - compatible = "rockchip,hdmi"; - status = "okay"; - phandle = <0x49b>; - rockchip,mclk-fs = <0x80>; - }; - - reserved-memory { - #address-cells = <0x02>; - #size-cells = <0x02>; - ranges; - - minidump-smem@1f0000 { - status = "disabled"; - reg = <0x00 0x1f0000 0x00 0x100>; - phandle = <0x1cf>; - no-map; - }; - - minidump-mem@c000000 { - status = "disabled"; - reg = <0x00 0xc000000 0x00 0x2000000>; - phandle = <0x1d0>; - no-map; - }; - - cma { - linux,cma-default; - compatible = "shared-dma-pool"; - size = <0x00 0x800000>; - reg = <0x00 0x10000000 0x00 0x10000000>; - reusable; - }; - - drm-logo@00000000 { - compatible = "rockchip,drm-logo"; - reg = <0x00 0xedf00000 0x00 0x2e0000>; - phandle = <0x37>; - }; - - ramoops@110000 { - boot-log-count = <0x01>; - record-size = <0x14000>; - pmsg-size = <0x30000>; - compatible = "ramoops"; - console-size = <0x80000>; - reg = <0x00 0x110000 0x00 0xe0000>; - phandle = <0x493>; - boot-log-size = <0x8000>; - ftrace-size = <0x00>; - }; - - drm-cubic-lut@00000000 { - compatible = "rockchip,drm-cubic-lut"; - reg = <0x00 0x00 0x00 0x00>; - phandle = <0x492>; - }; - }; - - pcie@fe160000 { - power-domains = <0x60 0x22>; - vpcie3v3-supply = <0x1ba>; - #address-cells = <0x03>; - rockchip,pipe-grf = <0x76>; - phy-names = "pcie-phy"; - bus-range = <0x10 0x1f>; - clock-names = "aclk_mst\0aclk_slv\0aclk_dbi\0pclk\0aux\0pipe"; - reg-names = "pcie-apb\0pcie-dbi"; - num-ob-windows = <0x10>; - resets = <0x02 0x20e 0x02 0x21d>; - interrupts = <0x00 0x102 0x04 0x00 0x101 0x04 0x00 0x100 0x04 0x00 0xff 0x04 0x00 0xfe 0x04>; - clocks = <0x02 0x14f 0x02 0x154 0x02 0x14a 0x02 0x159 0x02 0x15f 0x02 0x184>; - interrupt-map = <0x00 0x00 0x00 0x01 0x1b9 0x00 0x00 0x00 0x00 0x02 0x1b9 0x01 0x00 0x00 0x00 0x03 0x1b9 0x02 0x00 0x00 0x00 0x04 0x1b9 0x03>; - #size-cells = <0x02>; - max-link-speed = <0x03>; - device_type = "pci"; - interrupt-map-mask = <0x00 0x00 0x00 0x07>; - reset-gpios = <0x10d 0x08 0x00>; - num-lanes = <0x02>; - compatible = "rockchip,rk3588-pcie\0snps,dw-pcie"; - ranges = <0x800 0x00 0xf1000000 0x00 0xf1000000 0x00 0x100000 0x81000000 0x00 0xf1100000 0x00 0xf1100000 0x00 0x100000 0x82000000 0x00 0xf1200000 0x00 0xf1200000 0x00 0xe00000 0xc3000000 0x09 0x40000000 0x09 0x40000000 0x00 0x40000000>; - msi-map = <0x1000 0x1b6 0x1000 0x1000>; - #interrupt-cells = <0x01>; - status = "disabled"; - interrupt-names = "sys\0pmc\0msg\0legacy\0err"; - phys = <0x1b7>; - num-viewport = <0x08>; - reg = <0x00 0xfe160000 0x00 0x10000 0x0a 0x40400000 0x00 0x400000>; - linux,pci-domain = <0x01>; - phandle = <0x486>; - reset-names = "pcie\0periph"; - num-ib-windows = <0x10>; - - legacy-interrupt-controller { - #address-cells = <0x00>; - interrupts = <0x00 0xff 0x01>; - interrupt-parent = <0x01>; - #interrupt-cells = <0x01>; - phandle = <0x1b9>; - interrupt-controller; - }; - }; - - spdif-tx@fddb8000 { - power-domains = <0x60 0x19>; - clock-names = "mclk\0hclk"; - assigned-clocks = <0x02 0x20b>; - assigned-clock-parents = <0x02 0x05>; - interrupts = <0x00 0xc6 0x04>; - clocks = <0x02 0x20f 0x02 0x20a>; - dma-names = "tx"; - #sound-dai-cells = <0x00>; - compatible = "rockchip,rk3588-spdif\0rockchip,rk3568-spdif"; - status = "disabled"; - reg = <0x00 0xfddb8000 0x00 0x1000>; - phandle = <0x1e2>; - dmas = <0xf1 0x16>; - }; - - pvtm@fdb30000 { - #address-cells = <0x01>; - #size-cells = <0x00>; - compatible = "rockchip,rk3588-gpu-pvtm"; - reg = <0x00 0xfdb30000 0x00 0x100>; - - pvtm@4 { - clock-names = "clk"; - resets = <0x02 0x430 0x02 0x42f>; - clocks = <0x02 0x118>; - reg = <0x04>; - reset-names = "rts\0rst-p"; - }; - }; - - spdif-tx1-dc { - #sound-dai-cells = <0x00>; - compatible = "linux,spdif-dit"; - status = "disabled"; - phandle = <0x1d8>; - }; - - csi2-dphy0 { - rockchip,hw = <0x2d 0x2e>; - phy-names = "dcphy0\0dcphy1"; - compatible = "rockchip,rk3588-csi2-dphy"; - status = "okay"; - phys = <0x2f 0x30>; - firefly-compatible; - phandle = <0x20f>; - - ports { - #address-cells = <0x01>; - #size-cells = <0x00>; - - port@0 { - #address-cells = <0x01>; - #size-cells = <0x00>; - reg = <0x00>; - - endpoint@1 { - data-lanes = <0x01 0x02 0x03 0x04>; - remote-endpoint = <0x32>; - reg = <0x01>; - phandle = <0x184>; - }; - - endpoint@0 { - data-lanes = <0x01 0x02 0x03 0x04>; - remote-endpoint = <0x31>; - reg = <0x00>; - phandle = <0x183>; - }; - }; - - port@1 { - #address-cells = <0x01>; - #size-cells = <0x00>; - reg = <0x01>; - - endpoint@0 { - remote-endpoint = <0x33>; - reg = <0x00>; - phandle = <0x4d>; - }; - }; - }; - }; - - rkisp-unite@fdcb0000 { - power-domains = <0x60 0x1c>; - iommus = <0xcf>; - clock-names = "aclk_isp0\0hclk_isp0\0clk_isp_core0\0clk_isp_core_marvin0\0clk_isp_core_vicap0\0aclk_isp1\0hclk_isp1\0clk_isp_core1\0clk_isp_core_marvin1\0clk_isp_core_vicap1"; - interrupts = <0x00 0x87 0x04 0x00 0x89 0x04 0x00 0x8a 0x04>; - clocks = <0x02 0x1de 0x02 0x1df 0x02 0x1db 0x02 0x1dc 0x02 0x1dd 0x02 0x120 0x02 0x121 0x02 0x11d 0x02 0x11e 0x02 0x11f>; - compatible = "rockchip,rk3588-rkisp-unite"; - status = "disabled"; - interrupt-names = "isp_irq\0mi_irq\0mipi_irq"; - reg = <0x00 0xfdcb0000 0x00 0x10000 0x00 0xfdcc0000 0x00 0x10000>; - phandle = <0x277>; - }; - - sata@fe230000 { - phy-names = "sata-phy"; - clock-names = "sata\0pmalive\0rxoob\0ref\0asic"; - interrupts = <0x00 0x113 0x04>; - clocks = <0x02 0x173 0x02 0x170 0x02 0x176 0x02 0x165 0x02 0x180>; - compatible = "rockchip,rk-ahci\0snps,dwc-ahci"; - status = "disabled"; - interrupt-names = "hostc"; - phys = <0x70 0x01>; - reg = <0x00 0xfe230000 0x00 0x1000>; - phandle = <0x291>; - ports-implemented = <0x01>; - }; - - syscon@fd5a0000 { - compatible = "rockchip,rk3588-gpu-grf\0syscon"; - reg = <0x00 0xfd5a0000 0x00 0x100>; - phandle = <0x65>; - }; - - bt-sound { - simple-audio-card,name = "rockchip,bt"; - simple-audio-card,format = "dsp_a"; - simple-audio-card,bitclock-inversion = <0x00>; - compatible = "simple-audio-card"; - status = "disabled"; - phandle = <0x49a>; - simple-audio-card,mclk-fs = <0x100>; - - simple-audio-card,cpu { - sound-dai = <0x1d1>; - }; - - simple-audio-card,codec { - sound-dai = <0x1d2 0x01>; - }; - }; - - iommu@fdb90480 { - power-domains = <0x60 0x15>; - clock-names = "aclk\0iface"; - interrupts = <0x00 0x82 0x04>; - clocks = <0x02 0x1b4 0x02 0x1b5>; - #iommu-cells = <0x00>; - compatible = "rockchip,iommu-v2"; - status = "okay"; - interrupt-names = "irq_jpegd_mmu"; - reg = <0x00 0xfdb90480 0x00 0x40>; - phandle = <0xbb>; - }; - - hdcp@fde70000 { - power-domains = <0x60 0x1a>; - clock-names = "aclk\0pclk\0hclk\0hclk_key\0aclk_trng\0pclk_trng"; - resets = <0x02 0x3c8 0x02 0x3c6 0x02 0x3c5 0x02 0x3c4 0x02 0x3ca>; - interrupts = <0x00 0xa0 0x04>; - clocks = <0x02 0x217 0x02 0x219 0x02 0x218 0x02 0x216 0x02 0x228 0x02 0x229>; - compatible = "rockchip,rk3588-hdcp"; - status = "disabled"; - reg = <0x00 0xfde70000 0x00 0x80>; - phandle = <0x287>; - reset-names = "hdcp\0h_hdcp\0a_hdcp\0hdcp_key\0trng"; - rockchip,vo-grf = <0xd8>; - }; - - spdif-tx@fe4f0000 { - power-domains = <0x60 0x26>; - pinctrl-names = "default"; - pinctrl-0 = <0x143>; - clock-names = "mclk\0hclk"; - assigned-clocks = <0x02 0x45>; - assigned-clock-parents = <0x02 0x05>; - interrupts = <0x00 0xc2 0x04>; - clocks = <0x02 0x47 0x02 0x44>; - dma-names = "tx"; - #sound-dai-cells = <0x00>; - compatible = "rockchip,rk3588-spdif\0rockchip,rk3568-spdif"; - status = "disabled"; - reg = <0x00 0xfe4f0000 0x00 0x1000>; - phandle = <0x1d7>; - dmas = <0xf1 0x05>; - }; - - rkcif-mipi-lvds-sditf-vir2 { - compatible = "rockchip,rkcif-sditf"; - status = "disabled"; - rockchip,cif = <0x52>; - phandle = <0x22d>; - }; - - es8388-sound { - pinctrl-names = "default"; - rockchip,cpu = <0x1da>; - pinctrl-0 = <0x1dc>; - rockchip,codec = <0x1db>; - hp-det-gpio = <0x79 0x13 0x00>; - rockchip,card-name = "rockchip-es8388"; - rockchip,format = "i2s"; - rockchip,audio-routing = "Headphone\0LOUT1\0Headphone\0ROUT1\0Speaker\0LOUT2\0Speaker\0ROUT2\0Headphone\0Headphone Power\0Headphone\0Headphone Power\0LINPUT2\0Main Mic\0RINPUT2\0Main Mic\0LINPUT1\0Headset Mic\0RINPUT1\0Headset Mic"; - compatible = "firefly,multicodecs-card"; - linein-type = <0x01>; - status = "okay"; - phandle = <0x49f>; - hp-con-gpio = <0x182 0x0b 0x00>; - firefly,not-use-dapm; - rockchip,mclk-fs = <0x180>; - }; - - spi@feb30000 { - pinctrl-names = "default"; - #address-cells = <0x01>; - num-cs = <0x02>; - pinctrl-0 = <0x15d 0x15e 0x15f>; - clock-names = "spiclk\0apb_pclk"; - interrupts = <0x00 0x149 0x04>; - clocks = <0x02 0xa6 0x02 0xa1>; - #size-cells = <0x00>; - dma-names = "tx\0rx"; - compatible = "rockchip,rk3066-spi"; - status = "disabled"; - reg = <0x00 0xfeb30000 0x00 0x1000>; - phandle = <0x2c8>; - dmas = <0xf1 0x11 0xf1 0x12>; - }; - - phy@fee80000 { - rockchip,pipe-grf = <0x76>; - clock-names = "pclk"; - rockchip,pcie30-phymode = <0x01>; - resets = <0x02 0x2000a>; - clocks = <0x02 0x188>; - #phy-cells = <0x00>; - compatible = "rockchip,rk3588-pcie3-phy"; - status = "okay"; - reg = <0x00 0xfee80000 0x00 0x20000>; - phandle = <0x1b7>; - reset-names = "phy"; - rockchip,phy-grf = <0x1cc>; - }; - - vcc12v-dcin { - regulator-max-microvolt = <0xb71b00>; - regulator-boot-on; - regulator-always-on; - regulator-min-microvolt = <0xb71b00>; - regulator-name = "vcc12v_dcin"; - compatible = "regulator-fixed"; - phandle = <0x1cd>; - }; - - qos@fdf61200 { - compatible = "syscon"; - reg = <0x00 0xfdf61200 0x00 0x20>; - phandle = <0x91>; - }; - - i2s@fde00000 { - power-domains = <0x60 0x1a>; - clock-names = "mclk_tx\0mclk_rx\0hclk"; - assigned-clocks = <0x02 0x234>; - assigned-clock-parents = <0x02 0x05>; - rockchip,capture-only; - resets = <0x02 0x417>; - interrupts = <0x00 0xbe 0x04>; - clocks = <0x02 0x237 0x02 0x237 0x02 0x233>; - dma-names = "rx"; - #sound-dai-cells = <0x00>; - compatible = "rockchip,rk3588-i2s-tdm"; - status = "disabled"; - reg = <0x00 0xfde00000 0x00 0x1000>; - phandle = <0x47e>; - dmas = <0xf2 0x18>; - reset-names = "rx-m"; - }; - - qos@fdf40800 { - compatible = "syscon"; - reg = <0x00 0xfdf40800 0x00 0x20>; - phandle = <0xa5>; - }; - - i2s@fddfc000 { - power-domains = <0x60 0x1a>; - clock-names = "mclk_tx\0mclk_rx\0hclk"; - assigned-clocks = <0x02 0x23f>; - assigned-clock-parents = <0x02 0x05>; - rockchip,capture-only; - resets = <0x02 0x413>; - interrupts = <0x00 0xbd 0x04>; - clocks = <0x02 0x242 0x02 0x242 0x02 0x23e>; - dma-names = "rx"; - #sound-dai-cells = <0x00>; - compatible = "rockchip,rk3588-i2s-tdm"; - status = "disabled"; - reg = <0x00 0xfddfc000 0x00 0x1000>; - phandle = <0x27f>; - dmas = <0xf2 0x17>; - reset-names = "rx-m"; - }; - - usbdrd3_0 { - #address-cells = <0x02>; - clock-names = "ref\0suspend\0bus"; - clocks = <0x02 0x1a3 0x02 0x1a2 0x02 0x1a1>; - #size-cells = <0x02>; - compatible = "rockchip,rk3588-dwc3\0rockchip,rk3399-dwc3"; - ranges; - status = "okay"; - phandle = <0x252>; - - usb@fc000000 { - power-domains = <0x60 0x1f>; - snps,dis-u1-entry-quirk; - snps,dis_enblslpm_quirk; - phy-names = "usb2-phy\0usb3-phy"; - snps,dis-u2-freeclk-exists-quirk; - usb-role-switch; - phy_type = "utmi_wide"; - quirk-skip-phy-init; - resets = <0x02 0x2a4>; - interrupts = <0x00 0xdc 0x04>; - snps,dis-u2-entry-quirk; - compatible = "snps,dwc3"; - snps,parkmode-disable-hs-quirk; - snps,dis-del-phy-power-chg-quirk; - status = "okay"; - snps,parkmode-disable-ss-quirk; - phys = <0x66 0x67>; - reg = <0x00 0xfc000000 0x00 0x400000>; - phandle = <0x253>; - dr_mode = "host"; - reset-names = "usb3-otg"; - snps,dis-tx-ipgap-linecheck-quirk; - - port { - #address-cells = <0x01>; - #size-cells = <0x00>; - - endpoint@0 { - remote-endpoint = <0x68>; - reg = <0x00>; - phandle = <0x17d>; - }; - }; - }; - }; - - rkcif-mipi-lvds5-sditf-vir2 { - compatible = "rockchip,rkcif-sditf"; - status = "disabled"; - rockchip,cif = <0x1a2>; - phandle = <0x478>; - }; - - rkcif-dvp-sditf { - compatible = "rockchip,rkcif-sditf"; - status = "disabled"; - rockchip,cif = <0x51>; - phandle = <0x22a>; - }; - - iommu@fdd97e00 { - rockchip,shootdown-entire; - clock-names = "aclk\0iface"; - interrupts = <0x00 0x9c 0x04>; - clocks = <0x02 0x270 0x02 0x26f>; - #iommu-cells = <0x00>; - compatible = "rockchip,iommu-v2"; - status = "okay"; - interrupt-names = "vop_mmu"; - reg = <0x00 0xfdd97e00 0x00 0x100 0x00 0xfdd97f00 0x00 0x100>; - phandle = <0xd6>; - rockchip,disable-device-link-resume; - }; - - rkvtunnel { - compatible = "rockchip,video-tunnel"; - status = "disabled"; - phandle = <0x245>; - }; - - syscon@fd5e0000 { - compatible = "rockchip,rk3588-hdptxphy-grf\0syscon"; - reg = <0x00 0xfd5e0000 0x00 0x100>; - phandle = <0x18a>; - }; - - i2c@fead0000 { - pinctrl-names = "default"; - #address-cells = <0x01>; - pinctrl-0 = <0x14d>; - clock-names = "i2c\0pclk"; - resets = <0x02 0xb4 0x02 0xac>; - interrupts = <0x00 0x142 0x04>; - clocks = <0x02 0x91 0x02 0x89>; - #size-cells = <0x00>; - compatible = "rockchip,rk3588-i2c\0rockchip,rk3399-i2c"; - status = "disabled"; - reg = <0x00 0xfead0000 0x00 0x1000>; - phandle = <0x2a8>; - reset-names = "i2c\0apb"; - }; - - iommu@fdba4800 { - power-domains = <0x60 0x15>; - clock-names = "aclk\0iface"; - interrupts = <0x00 0x7b 0x04>; - clocks = <0x02 0x1ae 0x02 0x1af>; - #iommu-cells = <0x00>; - compatible = "rockchip,iommu-v2"; - status = "okay"; - interrupt-names = "irq_jpege1_mmu"; - reg = <0x00 0xfdba4800 0x00 0x40>; - phandle = <0xbe>; - }; - - spdif-rx@fde10000 { - power-domains = <0x60 0x1a>; - clock-names = "mclk\0hclk"; - assigned-clocks = <0x02 0x260>; - assigned-clock-parents = <0x02 0x05>; - resets = <0x02 0x3ff>; - interrupts = <0x00 0xc8 0x04>; - clocks = <0x02 0x260 0x02 0x25f>; - dma-names = "rx"; - #sound-dai-cells = <0x00>; - compatible = "rockchip,rk3588-spdifrx\0rockchip,rk3308-spdifrx"; - status = "disabled"; - reg = <0x00 0xfde10000 0x00 0x1000>; - phandle = <0x47f>; - dmas = <0x7c 0x16>; - reset-names = "spdifrx-m"; - }; - - npu@fdab0000 { - power-domains = <0x60 0x09 0x60 0x0a 0x60 0x0b>; - iommus = <0xb2>; - clock-names = "clk_npu\0aclk0\0aclk1\0aclk2\0hclk0\0hclk1\0hclk2\0pclk"; - assigned-clocks = <0x0e 0x06>; - power-domain-names = "npu0\0npu1\0npu2"; - rknpu-supply = <0xb3>; - assigned-clock-rates = <0xbebc200>; - resets = <0x02 0x1e6 0x02 0x1b0 0x02 0x1c0 0x02 0x1e8 0x02 0x1b2 0x02 0x1c2>; - interrupts = <0x00 0x6e 0x04 0x00 0x6f 0x04 0x00 0x70 0x04>; - clocks = <0x0e 0x06 0x02 0x12d 0x02 0x122 0x02 0x124 0x02 0x12e 0x02 0x123 0x02 0x125 0x02 0x131>; - compatible = "rockchip,rk3588-rknpu"; - status = "okay"; - interrupt-names = "npu0_irq\0npu1_irq\0npu2_irq"; - mem-supply = <0xb3>; - reg = <0x00 0xfdab0000 0x00 0x10000 0x00 0xfdac0000 0x00 0x10000 0x00 0xfdad0000 0x00 0x10000>; - phandle = <0x265>; - reset-names = "srst_a0\0srst_a1\0srst_a2\0srst_h0\0srst_h1\0srst_h2"; - operating-points-v2 = <0xb1>; - }; - - hdmiphy@fed60000 { - clock-names = "ref\0apb"; - resets = <0x02 0x48e 0x02 0x485 0x02 0xc003b 0x02 0xc003c 0x02 0xc003d 0x02 0x48c 0x02 0x48d>; - clocks = <0x02 0x2b5 0x02 0x267>; - #phy-cells = <0x00>; - compatible = "rockchip,rk3588-hdptx-phy-hdmi"; - status = "okay"; - rockchip,grf = <0x18a>; - reg = <0x00 0xfed60000 0x00 0x2000>; - phandle = <0xfd>; - reset-names = "phy\0apb\0init\0cmn\0lane\0ropll\0lcpll"; - - clk-port { - #clock-cells = <0x00>; - status = "okay"; - phandle = <0x35>; - }; - }; - - dmc-opp-table { - nvmem-cells = <0x44 0x45 0x21>; - rockchip,low-temp = <0x2710>; - rockchip,leakage-voltage-sel = <0x01 0x1f 0x00 0x20 0x2c 0x01 0x2d 0x39 0x02 0x3a 0xfe 0x03>; - compatible = "operating-points-v2"; - rockchip,low-temp-min-volt = <0xb71b0>; - nvmem-cell-names = "leakage\0opp-info\0specification_serial_number"; - phandle = <0x41>; - rockchip,temp-hysteresis = <0x1388>; - rockchip,supported-hw; - - opp-1560000000 { - opp-microvolt = <0xc3500 0xc3500 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; - opp-microvolt-L2 = <0xb71b0 0xb71b0 0xd59f8 0xadf34 0xadf34 0xb71b0>; - opp-hz = <0x00 0x5cfbb600>; - opp-supported-hw = <0xf9 0xffff>; - opp-microvolt-L3 = <0xb1008 0xb1008 0xd59f8 0xaae60 0xaae60 0xb71b0>; - opp-microvolt-L1 = <0xbd358 0xbd358 0xd59f8 0xb1008 0xb1008 0xb71b0>; - }; - - opp-j-m-1560000000 { - opp-microvolt = <0xc3500 0xc3500 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; - opp-microvolt-L2 = <0xb71b0 0xb71b0 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; - opp-hz = <0x00 0x5cfbb600>; - opp-supported-hw = <0x06 0xffff>; - opp-microvolt-L3 = <0xb71b0 0xb71b0 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; - opp-microvolt-L1 = <0xbd358 0xbd358 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; - }; - - opp-j-m-528000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; - opp-hz = <0x00 0x1f78a400>; - opp-supported-hw = <0x06 0xffff>; - }; - - opp-2750000000 { - opp-microvolt = <0xd59f8 0xd59f8 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; - opp-microvolt-L2 = <0xcc77c 0xcc77c 0xd59f8 0xb1008 0xb1008 0xb71b0>; - opp-hz = <0x00 0xa3e9ab80>; - opp-supported-hw = <0xf9 0xffff>; - opp-microvolt-L3 = <0xc96a8 0xc8320 0xd59f8 0xaae60 0xaae60 0xb71b0>; - opp-microvolt-L1 = <0xcf850 0xcf850 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; - }; - - opp-1068000000 { - opp-microvolt = <0xb1008 0xb1008 0xd59f8 0xb40dc 0xb40dc 0xb71b0>; - opp-microvolt-L2 = <0xa4cb8 0xa4cb8 0xd59f8 0xaae60 0xaae60 0xb71b0>; - opp-hz = <0x00 0x3fa86300>; - opp-supported-hw = <0xf9 0xffff>; - opp-microvolt-L3 = <0xa4cb8 0xa4cb8 0xd59f8 0xa7d8c 0xa7d8c 0xb71b0>; - opp-microvolt-L1 = <0xaae60 0xaae60 0xd59f8 0xadf34 0xadf34 0xb71b0>; - }; - - opp-j-m-2750000000 { - opp-microvolt = <0xd59f8 0xd59f8 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; - opp-microvolt-L2 = <0xcc77c 0xcc77c 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; - opp-hz = <0x00 0xa3e9ab80>; - opp-supported-hw = <0x06 0xffff>; - opp-microvolt-L3 = <0xc96a8 0xc8320 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; - opp-microvolt-L1 = <0xcf850 0xcf850 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; - }; - - opp-528000000 { - opp-microvolt = <0xa4cb8 0xa4cb8 0xd59f8 0xb1008 0xb1008 0xb71b0>; - opp-microvolt-L2 = <0xa4cb8 0xa4cb8 0xd59f8 0xa7d8c 0xa7d8c 0xb71b0>; - opp-hz = <0x00 0x1f78a400>; - opp-supported-hw = <0xf9 0xffff>; - opp-microvolt-L3 = <0xa4cb8 0xa4cb8 0xd59f8 0xa4cb8 0xa4cb8 0xb71b0>; - opp-microvolt-L1 = <0xa4cb8 0xa4cb8 0xd59f8 0xaae60 0xaae60 0xb71b0>; - }; - - opp-j-m-1068000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xd59f8 0xb71b0 0xb71b0 0xb71b0>; - opp-hz = <0x00 0x3fa86300>; - opp-supported-hw = <0x06 0xffff>; - }; - }; - - rkvenc-core@fdbe0000 { - power-domains = <0x60 0x11>; - iommus = <0xc5>; - rockchip,ccu = <0xc3>; - clock-names = "aclk_vcodec\0hclk_vcodec\0clk_core"; - assigned-clocks = <0x02 0x1ca 0x02 0x1cb>; - rockchip,task-capacity = <0x08>; - rockchip,normal-rates = <0x1dcd6500 0x00 0x2faf0800>; - assigned-clock-rates = <0x1dcd6500 0x2faf0800>; - resets = <0x02 0x305 0x02 0x304 0x02 0x306>; - interrupts = <0x00 0x68 0x04>; - clocks = <0x02 0x1ca 0x02 0x1c9 0x02 0x1cb>; - rockchip,srv = <0xb8>; - rockchip,taskqueue-node = <0x07>; - compatible = "rockchip,rkv-encoder-v2-core"; - status = "okay"; - interrupt-names = "irq_rkvenc1"; - rockchip,skip-pmu-idle-request; - reg = <0x00 0xfdbe0000 0x00 0x6000>; - phandle = <0x273>; - reset-names = "video_a\0video_h\0video_core"; - operating-points-v2 = <0xc4>; - }; - - debug@fd104000 { - compatible = "rockchip,debug"; - reg = <0x00 0xfd104000 0x00 0x1000 0x00 0xfd105000 0x00 0x1000 0x00 0xfd106000 0x00 0x1000 0x00 0xfd107000 0x00 0x1000 0x00 0xfd124000 0x00 0x1000 0x00 0xfd125000 0x00 0x1000 0x00 0xfd126000 0x00 0x1000 0x00 0xfd127000 0x00 0x1000>; - phandle = <0x48f>; - }; - - watchdog@feaf0000 { - clock-names = "tclk\0pclk"; - interrupts = <0x00 0x13b 0x04>; - clocks = <0x02 0x6c 0x02 0x6b>; - compatible = "snps,dw-wdt"; - status = "okay"; - reg = <0x00 0xfeaf0000 0x00 0x100>; - phandle = <0x2aa>; - }; - - syscon@fd5d8000 { - #address-cells = <0x01>; - #size-cells = <0x01>; - compatible = "rockchip,rk3588-usb2phy-grf\0syscon\0simple-mfd"; - reg = <0x00 0xfd5d8000 0x00 0x4000>; - phandle = <0x25d>; - - usb2-phy@8000 { - clock-output-names = "usb480m_phy2"; - clock-names = "phyclk"; - resets = <0x02 0xc0049 0x02 0x48a>; - interrupts = <0x00 0x187 0x04>; - clocks = <0x02 0x2b5>; - #clock-cells = <0x00>; - compatible = "rockchip,rk3588-usb2phy"; - status = "okay"; - reg = <0x8000 0x10>; - phandle = <0x69>; - reset-names = "phy\0apb"; - - host-port { - phy-supply = <0x75>; - #phy-cells = <0x00>; - status = "okay"; - phandle = <0x6c>; - }; - }; - }; - - cluster0-opp-table { - rockchip,pvtm-offset = <0x64>; - rockchip,pvtm-sample-time = <0x44c>; - rockchip,dsu-grf = <0x23>; - rockchip,pvtm-hw = <0x06>; - nvmem-cells = <0x1f 0x20 0x21>; - rockchip,low-temp = <0x2710>; - rockchip,pvtm-voltage-sel-hw = <0x00 0x555 0x00 0x556 0x56b 0x01 0x56c 0x581 0x02 0x582 0x597 0x03 0x598 0x5ad 0x04 0x5ae 0x5c3 0x05 0x5c4 0x270f 0x06>; - rockchip,pvtm-thermal-zone = "soc-thermal"; - rockchip,opp-shared-dsu; - rockchip,high-temp-max-freq = <0x188940>; - opp-shared; - rockchip,reboot-freq = <0x159b40>; - rockchip,pvtm-freq = <0x159b40>; - rockchip,pvtm-ref-temp = <0x19>; - low-volt-mem-read-margin = <0x04>; - volt-mem-read-margin = <0xd0bd8 0x01 0xbac48 0x02 0xa4cb8 0x03 0x78d98 0x04>; - compatible = "operating-points-v2"; - rockchip,low-temp-min-volt = <0xb71b0>; - rockchip,grf = <0x22>; - nvmem-cell-names = "leakage\0opp-info\0specification_serial_number"; - rockchip,pvtm-voltage-sel = <0x00 0x582 0x00 0x583 0x59a 0x01 0x59b 0x5b2 0x02 0x5b3 0x5ca 0x03 0x5cb 0x5e2 0x04 0x5e3 0x5fa 0x05 0x5fb 0x270f 0x06>; - phandle = <0x0f>; - rockchip,pvtm-temp-prop = <0xf4 0xf4>; - rockchip,temp-hysteresis = <0x1388>; - rockchip,high-temp = <0x14c08>; - rockchip,pvtm-pvtpll; - rockchip,supported-hw; - intermediate-threshold-freq = <0xf6180>; - rockchip,pvtm-volt = <0xb71b0>; - - opp-1200000000 { - opp-microvolt = <0xadf34 0xadf34 0xe7ef0 0xadf34 0xadf34 0xe7ef0>; - opp-microvolt-L6 = <0xa4cb8 0xa4cb8 0xe7ef0 0xa4cb8 0xa4cb8 0xe7ef0>; - opp-microvolt-L4 = <0xa4cb8 0xa4cb8 0xe7ef0 0xa4cb8 0xa4cb8 0xe7ef0>; - opp-microvolt-L2 = <0xaae60 0xaae60 0xe7ef0 0xaae60 0xaae60 0xe7ef0>; - opp-hz = <0x00 0x47868c00>; - opp-supported-hw = <0xf9 0xffff>; - opp-microvolt-L5 = <0xa4cb8 0xa4cb8 0xe7ef0 0xa4cb8 0xa4cb8 0xe7ef0>; - opp-microvolt-L3 = <0xa7d8c 0xa7d8c 0xe7ef0 0xa7d8c 0xa7d8c 0xe7ef0>; - clock-latency-ns = <0x9c40>; - opp-microvolt-L1 = <0xaae60 0xaae60 0xe7ef0 0xaae60 0xaae60 0xe7ef0>; - }; - - opp-j-m-1416000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - opp-microvolt-L2 = <0xba284 0xba284 0xe7ef0 0xba284 0xba284 0xe7ef0>; - opp-hz = <0x00 0x54667200>; - opp-microvolt-L0 = <0xc042c 0xc042c 0xe7ef0 0xc042c 0xc042c 0xe7ef0>; - opp-supported-hw = <0x06 0xffff>; - opp-suspend; - clock-latency-ns = <0x9c40>; - opp-microvolt-L1 = <0xbd358 0xbd358 0xe7ef0 0xbd358 0xbd358 0xe7ef0>; - }; - - opp-1008000000 { - opp-microvolt = <0xa4cb8 0xa4cb8 0xe7ef0 0xa4cb8 0xa4cb8 0xe7ef0>; - opp-hz = <0x00 0x3c14dc00>; - opp-supported-hw = <0xf9 0xffff>; - clock-latency-ns = <0x9c40>; - }; - - opp-j-m-1704000000 { - opp-microvolt = <0xe4e1c 0xe4e1c 0xe7ef0 0xe4e1c 0xe4e1c 0xe7ef0>; - opp-microvolt-L6 = <0xd2924 0xd2924 0xe7ef0 0xd2924 0xd2924 0xe7ef0>; - opp-microvolt-L4 = <0xd8acc 0xd8acc 0xe7ef0 0xd8acc 0xd8acc 0xe7ef0>; - opp-microvolt-L2 = <0xdec74 0xdec74 0xe7ef0 0xdec74 0xdec74 0xe7ef0>; - opp-hz = <0x00 0x6590fa00>; - opp-supported-hw = <0x06 0xffff>; - opp-microvolt-L5 = <0xd59f8 0xd59f8 0xe7ef0 0xd59f8 0xd59f8 0xe7ef0>; - opp-microvolt-L3 = <0xdbba0 0xdbba0 0xe7ef0 0xdbba0 0xdbba0 0xe7ef0>; - clock-latency-ns = <0x9c40>; - opp-microvolt-L1 = <0xe1d48 0xe1d48 0xe7ef0 0xe1d48 0xe1d48 0xe7ef0>; - }; - - opp-j-m-1200000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - opp-hz = <0x00 0x47868c00>; - opp-supported-hw = <0x06 0xffff>; - clock-latency-ns = <0x9c40>; - }; - - opp-j-m-1008000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - opp-hz = <0x00 0x3c14dc00>; - opp-supported-hw = <0x06 0xffff>; - clock-latency-ns = <0x9c40>; - }; - - opp-j-m-816000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - opp-hz = <0x00 0x30a32c00>; - opp-supported-hw = <0x06 0xffff>; - clock-latency-ns = <0x9c40>; - }; - - opp-1800000000 { - opp-microvolt = <0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0 0xe7ef0>; - opp-microvolt-L6 = <0xd59f8 0xd59f8 0xe7ef0 0xd59f8 0xd59f8 0xe7ef0>; - opp-microvolt-L4 = <0xdbba0 0xdbba0 0xe7ef0 0xdbba0 0xdbba0 0xe7ef0>; - opp-microvolt-L2 = <0xe1d48 0xe1d48 0xe7ef0 0xe1d48 0xe1d48 0xe7ef0>; - opp-hz = <0x00 0x6b49d200>; - opp-supported-hw = <0xf9 0xffff>; - opp-microvolt-L5 = <0xd8acc 0xd8acc 0xe7ef0 0xd8acc 0xd8acc 0xe7ef0>; - opp-microvolt-L3 = <0xdec74 0xdec74 0xe7ef0 0xdec74 0xdec74 0xe7ef0>; - clock-latency-ns = <0x9c40>; - opp-microvolt-L1 = <0xe4e1c 0xe4e1c 0xe7ef0 0xe4e1c 0xe4e1c 0xe7ef0>; - }; - - opp-j-m-600000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - opp-hz = <0x00 0x23c34600>; - opp-supported-hw = <0x06 0xffff>; - clock-latency-ns = <0x9c40>; - }; - - opp-1608000000 { - opp-microvolt = <0xcf850 0xcf850 0xe7ef0 0xcf850 0xcf850 0xe7ef0>; - opp-microvolt-L6 = <0xc042c 0xc042c 0xe7ef0 0xc042c 0xc042c 0xe7ef0>; - opp-microvolt-L4 = <0xc3500 0xc3500 0xe7ef0 0xc3500 0xc3500 0xe7ef0>; - opp-microvolt-L2 = <0xc96a8 0xc96a8 0xe7ef0 0xc96a8 0xc96a8 0xe7ef0>; - opp-hz = <0x00 0x5fd82200>; - opp-supported-hw = <0xf9 0xffff>; - opp-microvolt-L5 = <0xc3500 0xc3500 0xe7ef0 0xc3500 0xc3500 0xe7ef0>; - opp-microvolt-L3 = <0xc65d4 0xc65d4 0xe7ef0 0xc65d4 0xc65d4 0xe7ef0>; - clock-latency-ns = <0x9c40>; - opp-microvolt-L1 = <0xcc77c 0xcc77c 0xe7ef0 0xcc77c 0xcc77c 0xe7ef0>; - }; - - opp-j-1296000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - opp-hz = <0x00 0x4d3f6400>; - opp-microvolt-L0 = <0xbd358 0xbd358 0xe7ef0 0xbd358 0xbd358 0xe7ef0>; - opp-supported-hw = <0x04 0xffff>; - clock-latency-ns = <0x9c40>; - opp-microvolt-L1 = <0xba284 0xba284 0xe7ef0 0xba284 0xba284 0xe7ef0>; - }; - - opp-j-m-408000000 { - opp-microvolt = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - opp-hz = <0x00 0x18519600>; - opp-supported-hw = <0x06 0xffff>; - clock-latency-ns = <0x9c40>; - }; - - opp-816000000 { - opp-microvolt = <0xa4cb8 0xa4cb8 0xe7ef0 0xa4cb8 0xa4cb8 0xe7ef0>; - opp-hz = <0x00 0x30a32c00>; - opp-supported-hw = <0xf9 0xffff>; - clock-latency-ns = <0x9c40>; - }; - - opp-j-m-1608000000 { - opp-microvolt = <0xd8acc 0xd8acc 0xe7ef0 0xd8acc 0xd8acc 0xe7ef0>; - opp-microvolt-L6 = <0xc65d4 0xc65d4 0xe7ef0 0xc65d4 0xc65d4 0xe7ef0>; - opp-microvolt-L4 = <0xcc77c 0xcc77c 0xe7ef0 0xcc77c 0xcc77c 0xe7ef0>; - opp-microvolt-L2 = <0xd2924 0xd2924 0xe7ef0 0xd2924 0xd2924 0xe7ef0>; - opp-hz = <0x00 0x5fd82200>; - opp-supported-hw = <0x06 0xffff>; - opp-microvolt-L5 = <0xc96a8 0xc96a8 0xe7ef0 0xc96a8 0xc96a8 0xe7ef0>; - opp-microvolt-L3 = <0xcf850 0xcf850 0xe7ef0 0xcf850 0xcf850 0xe7ef0>; - clock-latency-ns = <0x9c40>; - opp-microvolt-L1 = <0xd59f8 0xd59f8 0xe7ef0 0xd59f8 0xd59f8 0xe7ef0>; - }; - - opp-600000000 { - opp-microvolt = <0xa4cb8 0xa4cb8 0xe7ef0 0xa4cb8 0xa4cb8 0xe7ef0>; - opp-hz = <0x00 0x23c34600>; - opp-supported-hw = <0xf9 0xffff>; - clock-latency-ns = <0x9c40>; - }; - - opp-1416000000 { - opp-microvolt = <0xba284 0xba284 0xe7ef0 0xba284 0xba284 0xe7ef0>; - opp-microvolt-L6 = <0xadf34 0xadf34 0xe7ef0 0xadf34 0xadf34 0xe7ef0>; - opp-microvolt-L4 = <0xb1008 0xb1008 0xe7ef0 0xb1008 0xb1008 0xe7ef0>; - opp-microvolt-L2 = <0xb40dc 0xb40dc 0xe7ef0 0xb40dc 0xb40dc 0xe7ef0>; - opp-hz = <0x00 0x54667200>; - opp-supported-hw = <0xf9 0xffff>; - opp-microvolt-L5 = <0xadf34 0xadf34 0xe7ef0 0xadf34 0xadf34 0xe7ef0>; - opp-suspend; - opp-microvolt-L3 = <0xb1008 0xb1008 0xe7ef0 0xb1008 0xb1008 0xe7ef0>; - clock-latency-ns = <0x9c40>; - opp-microvolt-L1 = <0xb71b0 0xb71b0 0xe7ef0 0xb71b0 0xb71b0 0xe7ef0>; - }; - - opp-408000000 { - opp-microvolt = <0xa4cb8 0xa4cb8 0xe7ef0 0xa4cb8 0xa4cb8 0xe7ef0>; - opp-hz = <0x00 0x18519600>; - opp-supported-hw = <0xf9 0xffff>; - clock-latency-ns = <0x9c40>; - }; - }; - - vcc-4g-regulator { - regulator-boot-on; - gpio = <0x182 0x00 0x00>; - regulator-always-on; - enable-active-high; - regulator-name = "vcc_4g"; - compatible = "regulator-fixed"; - status = "okay"; - phandle = <0x4b0>; - }; - - spi@fecb0000 { - pinctrl-names = "default"; - #address-cells = <0x01>; - num-cs = <0x02>; - pinctrl-0 = <0x187 0x188 0x189>; - clock-names = "spiclk\0apb_pclk"; - interrupts = <0x00 0x14a 0x04>; - clocks = <0x02 0xa7 0x02 0xa2>; - #size-cells = <0x00>; - dma-names = "tx\0rx"; - compatible = "rockchip,rk3066-spi"; - status = "disabled"; - reg = <0x00 0xfecb0000 0x00 0x1000>; - phandle = <0x2e6>; - dmas = <0xf2 0x0d 0xf2 0x0e>; - }; - - spdif-rx@fde08000 { - power-domains = <0x60 0x1a>; - clock-names = "mclk\0hclk"; - assigned-clocks = <0x02 0x25e>; - assigned-clock-parents = <0x02 0x05>; - resets = <0x02 0x3fd>; - interrupts = <0x00 0xc7 0x04>; - clocks = <0x02 0x25e 0x02 0x25d>; - dma-names = "rx"; - #sound-dai-cells = <0x00>; - compatible = "rockchip,rk3588-spdifrx\0rockchip,rk3308-spdifrx"; - status = "disabled"; - reg = <0x00 0xfde08000 0x00 0x1000>; - phandle = <0x280>; - dmas = <0x7c 0x15>; - reset-names = "spdifrx-m"; - }; - - mipi3-csi2-hw@fdd40000 { - clock-names = "pclk_csi2host"; - reg-names = "csihost_regs"; - resets = <0x02 0x327>; - interrupts = <0x00 0x95 0x04 0x00 0x96 0x04>; - clocks = <0x02 0x1d2>; - compatible = "rockchip,rk3588-mipi-csi2-hw"; - status = "okay"; - interrupt-names = "csi-intr1\0csi-intr2"; - reg = <0x00 0xfdd40000 0x00 0x10000>; - phandle = <0x4a>; - reset-names = "srst_csihost_p"; - }; - - memory { - device_type = "memory"; - reg = <0x00 0x200000 0x00 0x8200000 0x00 0x9400000 0x00 0xe6c00000 0x01 0x00 0x01 0x00 0x02 0xf0000000 0x00 0x10000000 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00>; - }; - - jpege-core@fdba4000 { - power-domains = <0x60 0x15>; - iommus = <0xbe>; - rockchip,ccu = <0xbd>; - clock-names = "aclk_vcodec\0hclk_vcodec"; - assigned-clocks = <0x02 0x1ae>; - rockchip,normal-rates = <0x2367b880 0x00>; - assigned-clock-rates = <0x2367b880>; - resets = <0x02 0x2cc 0x02 0x2cd>; - interrupts = <0x00 0x7c 0x04>; - clocks = <0x02 0x1ae 0x02 0x1af>; - rockchip,srv = <0xb8>; - rockchip,taskqueue-node = <0x02>; - rockchip,disable-auto-freq; - compatible = "rockchip,vpu-jpege-core"; - status = "okay"; - interrupt-names = "irq_jpege1"; - rockchip,skip-pmu-idle-request; - reg = <0x00 0xfdba4000 0x00 0x400>; - phandle = <0x26e>; - reset-names = "video_a\0video_h"; - }; - - wireless-wlan { - pinctrl-names = "default"; - pinctrl-0 = <0x1ea>; - WIFI,host_wake_irq = <0x182 0x0a 0x00>; - wifi_chip_type = "rtl8822ce"; - compatible = "wlan-platdata"; - status = "okay"; - phandle = <0x4ab>; - }; - - rkcif-mipi-lvds4-sditf-vir3 { - compatible = "rockchip,rkcif-sditf"; - status = "disabled"; - rockchip,cif = <0x1a1>; - phandle = <0x475>; - }; - - dp@fde50000 { - power-domains = <0x60 0x19>; - clock-names = "apb\0aux\0i2s\0spdif\0hclk\0hdcp"; - assigned-clocks = <0x02 0x2cc>; - assigned-clock-rates = <0xf42400>; - resets = <0x02 0x388>; - interrupts = <0x00 0xa1 0x04>; - clocks = <0x02 0x1e6 0x02 0x2cc 0x02 0x1fb 0x02 0x207 0x04 0x02 0x1ea>; - #sound-dai-cells = <0x01>; - compatible = "rockchip,rk3588-dp"; - status = "disabled"; - phys = <0xf6>; - reg = <0x00 0xfde50000 0x00 0x4000>; - phandle = <0x1d6>; - - ports { - #address-cells = <0x01>; - #size-cells = <0x00>; - - port@0 { - #address-cells = <0x01>; - #size-cells = <0x00>; - reg = <0x00>; - - endpoint@1 { - remote-endpoint = <0x38>; - status = "disabled"; - reg = <0x01>; - phandle = <0xe0>; - }; - - endpoint@2 { - remote-endpoint = <0xf8>; - status = "disabled"; - reg = <0x02>; - phandle = <0xe6>; - }; - - endpoint@0 { - remote-endpoint = <0xf7>; - status = "disabled"; - reg = <0x00>; - phandle = <0xda>; - }; - }; - - port@1 { - reg = <0x01>; - - endpoint { - phandle = <0x286>; - }; - }; - }; - }; - - rockchip-system-monitor { - rockchip,thermal-zone = "soc-thermal"; - compatible = "rockchip,system-monitor"; - phandle = <0x247>; - }; - - vcc3v3-pcie30 { - regulator-max-microvolt = <0x325aa0>; - enable-active-high; - regulator-min-microvolt = <0x325aa0>; - regulator-name = "vcc3v3_pcie30"; - startup-delay-us = <0x1388>; - compatible = "regulator-fixed"; - status = "okay"; - phandle = <0x1b8>; - vin-supply = <0x1cd>; - gpios = <0x182 0x04 0x00>; - }; - - phy@fedb0000 { - clock-names = "pclk\0ref"; - resets = <0x02 0xc0045 0x02 0x43 0x02 0x44 0x02 0xc0046>; - clocks = <0x02 0x109 0x02 0x2b6>; - #phy-cells = <0x00>; - compatible = "rockchip,rk3588-mipi-dcphy"; - status = "okay"; - rockchip,grf = <0x191>; - reg = <0x00 0xfedb0000 0x00 0x10000>; - phandle = <0x30>; - reset-names = "m_phy\0apb\0grf\0s_phy"; - }; - - rkvdec-core@fdc38000 { - power-domains = <0x60 0x0e>; - iommus = <0xc9>; - rockchip,ccu = <0xca>; - clock-names = "aclk_vcodec\0hclk_vcodec\0clk_core\0clk_cabac\0clk_hevc_cabac"; - reg-names = "regs\0link"; - assigned-clocks = <0x02 0x190 0x02 0x193 0x02 0x191 0x02 0x192>; - rockchip,core-mask = <0x10001>; - rockchip,task-capacity = <0x10>; - rockchip,normal-rates = <0x2faf0800 0x00 0x23c34600 0x23c34600 0x3b9aca00>; - assigned-clock-rates = <0x2faf0800 0x23c34600 0x23c34600 0x3b9aca00>; - resets = <0x02 0x284 0x02 0x283 0x02 0x289 0x02 0x287 0x02 0x288>; - interrupts = <0x00 0x5f 0x04>; - rockchip,rcb-info = <0x88 0x6000 0x89 0xc000 0x8d 0x16000 0x8c 0xc000 0x8b 0x2c000 0x85 0xc000 0x86 0x2000 0x87 0x1100 0x8a 0x3300 0x8e 0x47300>; - clocks = <0x02 0x190 0x02 0x18f 0x02 0x193 0x02 0x191 0x02 0x192>; - rockchip,rcb-min-width = <0x200>; - rockchip,srv = <0xb8>; - rockchip,taskqueue-node = <0x09>; - compatible = "rockchip,rkv-decoder-v2"; - status = "okay"; - interrupt-names = "irq_rkvdec0"; - rockchip,skip-pmu-idle-request; - rockchip,rcb-iova = <0xfff00000 0x100000>; - reg = <0x00 0xfdc38100 0x00 0x400 0x00 0xfdc38000 0x00 0x100>; - phandle = <0x274>; - reset-names = "video_a\0video_h\0video_core\0video_cabac\0video_hevc_cabac"; - rockchip,sram = <0xcb>; - }; - - minidump { - smem-region = <0x1cf>; - minidump-region = <0x1d0>; - compatible = "rockchip,minidump"; - status = "disabled"; - phandle = <0x491>; - }; -}; diff --git a/configs/vms_bkp/starry-aarch64.toml b/configs/vms_bkp/starry-aarch64.toml deleted file mode 100644 index 2c37c938..00000000 --- a/configs/vms_bkp/starry-aarch64.toml +++ /dev/null @@ -1,62 +0,0 @@ -# Vm base info configs -# -[base] -# Guest vm id. -id = 1 -# Guest vm name. -name = "starry" -# Virtualization type. -vm_type = 1 -# The number of virtual CPUs. -cpu_num = 1 -# Guest vm physical cpu sets. -phys_cpu_sets = [1] - -# -# Vm kernel configs -# -[kernel] -# The entry point of the kernel image. -entry_point = 0x4008_0000 -# The location of image: "memory" | "fs". -# Load from file system. -image_location = "fs" -# The file path of the kernel image. -kernel_path = "starry-aarch64.bin" -# The load address of the kernel image. -kernel_load_addr = 0x4008_0000 -# The file path of the BIOS image. -dtb_load_addr = 0x4000_0000 -# The load address of the BIOS image. -dtb_path = "starry-aarch64.bin" - -## The file path of the ramdisk image. -# ramdisk_path = "" -## The load address of the ramdisk image. -# ramdisk_load_addr = 0 -## The path of the disk image. -# disk_path = "disk.img" - -# Memory regions with format (`base_paddr`, `size`, `flags`, `map_type`). -# For `map_type`, 0 means `MAP_ALLOC`, 1 means `MAP_IDENTICAL`. -memory_regions = [ - [0x4000_0000, 0x100_0000, 0x7, 0], # Low RAM 16M 0b00111 R|W|EXECUTE -] - -# -# Device specifications -# -[devices] -# Emu_devices. -# Name Base-Ipa Ipa_len Alloc-Irq Emu-Type EmuConfig. -emu_devices = [] - -# Pass-through devices. -# Name Base-Ipa Base-Pa Length Alloc-Irq. -passthrough_devices = [ - ["intc@8000000", 0x800_0000, 0x800_0000, 0x50_000, 0x1], - ["pl011@9000000", 0x900_0000, 0x900_0000, 0x1000, 0x1], - ["pl031@9010000", 0x901_0000, 0x901_0000, 0x1000, 0x1], - ["pl061@9030000", 0x903_0000, 0x903_0000, 0x1000, 0x1], # a003000.virtio_mmio virtio_mmio@a003000 # a003200.virtio_mmio virtio_mmio@a003200 - ["virtio_mmio", 0xa00_0000, 0xa00_0000, 0x4000, 0x1], -] diff --git a/configs/vms_bkp/starry-riscv64.toml b/configs/vms_bkp/starry-riscv64.toml deleted file mode 100644 index 92961f9c..00000000 --- a/configs/vms_bkp/starry-riscv64.toml +++ /dev/null @@ -1,64 +0,0 @@ -# Vm base info configs -# -[base] -# Guest vm id. -id = 1 -# Guest vm name. -name = "starry" -# Virtualization type. -vm_type = 1 -# The number of virtual CPUs. -cpu_num = 1 -# Guest vm physical cpu sets. -phys_cpu_sets = [1] - -# -# Vm kernel configs -# -[kernel] -# The entry point of the kernel image. -entry_point = 0x8020_0000 -# The location of image: "memory" | "fs". -# Load from file system. -image_location = "fs" -# The file path of the kernel image. -kernel_path = "starry_riscv64.bin" -# The load address of the kernel image. -kernel_load_addr = 0x8020_0000 -# The file path of the device tree blob (DTB) -dtb_path = "starry_riscv64.bin" -# The load address of the device tree blob (DTB). -dtb_load_addr = 0x8000_0000 - -# Memory regions with format (`base_paddr`, `size`, `flags`, `map_type`). -# For `map_type`, 0 means `MAP_ALLOC`, 1 means `MAP_IDENTICAL`. -memory_regions = [ - [0x8000_0000, 0x100_0000, 0xf, 0], # Low RAM 16M 0b1111 R|W|EXECUTE|U -] - -# -# Device specifications -# -[devices] -# Emu_devices -# Name Base-Ipa Ipa_len Alloc-Irq Emu-Type EmuConfig -emu_devices = [] - -# Pass-through devices -# Name Base-Ipa Base-Pa Length Alloc-Irq -passthrough_devices = [ - [ - "PLIC@c000000", - 0x0c00_0000, - 0x0c00_0000, - 0x21_0000, - 0x1, - ], - [ - "UART@10000000", - 0x1000_0000, - 0x1000_0000, - 0x1000, - 0x1, - ], -] diff --git a/configs/vms_bkp/starry-x86_64.toml b/configs/vms_bkp/starry-x86_64.toml deleted file mode 100644 index 891e55d4..00000000 --- a/configs/vms_bkp/starry-x86_64.toml +++ /dev/null @@ -1,62 +0,0 @@ -# Vm base info configs -# -[base] -# Guest vm id. -id = 1 -# Guest vm name. -name = "starry" -# Virtualization type. -vm_type = 1 -# The number of virtual CPUs. -cpu_num = 1 -# Guest vm physical cpu sets. -phys_cpu_sets = [1] - -# -# Vm kernel configs -# -[kernel] -# The entry point of the kernel image. -entry_point = 0x4008_0000 -# The location of image: "memory" | "fs". -# Load from file system. -image_location = "fs" -# The file path of the kernel image. -kernel_path = "starry-aarch64.bin" -# The load address of the kernel image. -kernel_load_addr = 0x4008_0000 -# The file path of the BIOS image. -dtb_load_addr = 0x4000_0000 -# The load address of the BIOS image. -dtb_path = "starry-aarch64.bin" - -## The file path of the ramdisk image. -# ramdisk_path = "" -## The load address of the ramdisk image. -# ramdisk_load_addr = 0 -## The path of the disk image. -# disk_path = "disk.img" - -# Memory regions with format (`base_paddr`, `size`, `flags`, `map_type`). -# For `map_type`, 0 means `MAP_ALLOC`, 1 means `MAP_IDENTICAL`. -memory_regions = [ - [0x4000_0000, 0x100_0000, 0x7, 0], # Low RAM 16M 0b00111 R|W|EXECUTE -] - -# -# Device specifications -# -[devices] -# Emu_devices. -# Name Base-Ipa Ipa_len Alloc-Irq Emu-Type EmuConfig. -emu_devices = [] - -# Pass-through devices. -# Name Base-Ipa Base-Pa Length Alloc-Irq. -passthrough_devices = [ - ["intc@8000000", 0x800_0000, 0x800_0000, 0x50_000, 0x1], - ["pl011@9000000", 0x900_0000, 0x900_0000, 0x1000, 0x1], - ["pl031@9010000", 0x901_0000, 0x901_0000, 0x1000, 0x1], - ["pl061@9030000", 0x903_0000, 0x903_0000, 0x1000, 0x1], # a003000.virtio_mmio virtio_mmio@a003000 # a003200.virtio_mmio virtio_mmio@a003200 - ["virtio_mmio", 0xa00_0000, 0xa00_0000, 0x4000, 0x1], -] diff --git a/doc/GuestVMs.md b/doc/GuestVMs.md deleted file mode 100644 index 257dd959..00000000 --- a/doc/GuestVMs.md +++ /dev/null @@ -1,44 +0,0 @@ -# ArceOS-Hypervisor Supported GuestVMs - -## [NimbOS](https://github.com/arceos-hypervisor/nimbos) - -* Simple real time guest VM that can only be used for **single-core** testing -* It supports the x86_64, aarch64, and riscv64 architectures -* Configuration file templates at [nimbos-aarch64.toml](../configs/vms/nimbos-aarch64.toml), [nimbos-x86_64.toml](../configs/vms/nimbos-x86_64.toml), and [nimbos-riscv64.toml](../configs/vms/nimbos-riscv64.toml) -* Kernel binary images availble at [nimbos/releases](https://github.com/arceos-hypervisor/nimbos/releases/tag/v0.6) - -## [ArceOS](https://github.com/arceos-hypervisor/arceos) -* Used for **SMP** testing -* It supports the x86_64, aarch64, and riscv64 architectures -* Configuration file templates at [arceos-aarch64.toml](../configs/vms/arceos-aarch64.toml), [arceos-x86_64.toml](../configs/vms/arceos-x86_64.toml), and [arceos-riscv64.toml](../configs/vms/arceos-riscv64.toml) - -### Testcases - -* **Hypercall**: - * ArceOS HelloWorld application that can be used to test hypercall functionality is provided [here](https://github.com/arceos-hypervisor/arceos/blob/gvm_test/examples/helloworld/src/main.rs) - * Just run `make A=examples/helloworld ARCH=[x86_64|aarch64|riscv64] build` to get binary images - -* **virtio-pci-devices (PCI)**: - * Branch (pci_pio)[https://github.com/hky1999/arceos/tree/pci_pio] can be used for virtio-pci devices testing (PCI device probed through port I/O) - -## [axvm-bios](https://github.com/arceos-hypervisor/axvm-bios-x86) - -* A extremely simple bios for x86_64 guests -* It can act as a bootloader for NimbOS and ArceOS -* Binary product available at [here](https://github.com/arceos-hypervisor/axvm-bios-x86/releases/download/v0.1/axvm-bios.bin) - -# ArceOS-Hypervisor in RK3588 board -## How to run ArceOS on rk3588 -1. Prepare your kernal file `linux-rk3588-aarch64.bin` and DTB file `rk3588.dtb`. -2. Set the kernel path and DTB path in the configuration file `configs/vms/linux-rk3588-aarch64.toml`. - ```toml - image_location = "memory" - kernel_path = "/path/to/linux-rk3588-aarch64.bin" - dtb_path = "/path/to/rk3588.dtb" - ``` -3. Use Command `make A=(pwd) ARCH=aarch64 VM_CONFIGS=configs/vms/linux-rk3588-aarch64.toml kernel` to build the kernel image `boot.img`. -4. Download the [RKDevTool](https://download.t-firefly.com/product/Board/RK3588/Tool/Window/RKDevTool_Release_v3.31.zip). - >This tool has only been tested on [Pji's](https://www.pji.net.cn/) Electronic Control Unit of RK3588. Other RK3588 development boards require independent testing. -5. Set the path of `boot.img` in **boot** and connect the RK3588 board. -6. Press the `Run` button to flash the image to the RK3588 board. -![RKDevTool](./figures/RKDevTool3.3.png) \ No newline at end of file diff --git a/doc/README.md b/doc/README.md deleted file mode 100644 index 4553a854..00000000 --- a/doc/README.md +++ /dev/null @@ -1,170 +0,0 @@ -# Axvisor 文档 - -## 概述 - -本目录包含 Axvisor 项目的相关文档。 - -## 文档列表 - -### 使用指南 - -- [task.py 使用说明](task.py-usage.md) - Axvisor 命令行工具的完整使用指南 - -### 架构文档 - -- [架构概览](#axvisor-architecture-overview) - Axvisor 整体架构介绍 -- [虚拟机管理](GuestVMs.md) - 虚拟机配置和管理 -- [SMP 支持](SMP.md) - 多处理器支持 - -### 配置文档 - -- [平台配置增强](../PLATFORM_CONFIG_ENHANCEMENT.md) - 平台配置自动读取功能说明 - ---- - -# Axvisor Architecture Overview - -About the overall architecture of Axvisor (the [main repo](https://github.com/arceos-hypervisor/axvisor) and [all components repos](https://github.com/arceos-hypervisor/)), -a unified modular hypervisor based on [ArceOS](https://github.com/arceos-org/arceos). - -The hypervisor mainly consists of the VMM (Virtual Machine Monitor) app named `axvisor` (the very repo you are looking at) and modules/crates responsible for implementing virtualization functions (e.g., `axvm`, `axvcpu`, `axdevice`, etc., which are in separate repos under the [arceos-hypervisor](https://github.com/arceos-hypervisor/) organization). - -## Design Goal - -This project originated from the [discussion/13](https://github.com/orgs/rcore-os/discussions/13) of [rCore-OS](https://github.com/rcore-os) community. - -In general, this project hopes to build a modular hypervisor that supports multiple architectures based on the basic OS functions provided by ArceOS unikernel through add several virtualization support modules/crates. - -We hope to make the hypervisor as modular as possible and minimize modifications to the arceos kernel code while maximizing the reuse of codes across different architectures. - -## Components - -Axvisor runs as an ArceOS app, mainly composed of the following independent components: - -(The definitions of ArceOS crates and modules can be seen in [ArceOS/doc/README.md](https://github.com/arceos-org/arceos/blob/main/doc/README.md)) - -### The App `axvisor` - -A user app of ArceOS, which is: - -- completely architecture-independent, -- main entry point of the hypervisor, and -- responsible for VM management (configuration & runtime). - -**Note that we aim to consolidate all dependencies on ArceOS within the vmm-app.** Currently, the modules from ArceOS that the vmm-app depends on include: - -- [axstd](https://github.com/arceos-hypervisor/arceos/tree/vmm/ulib/axstd): a standard dependency interface for ArceOS's user app. -- [axhal](https://github.com/arceos-hypervisor/arceos/tree/vmm/modules/axhal): for OS-related functions, including memory management, clock operations, and more. -- [axtask](https://github.com/arceos-org/arceos/tree/monolithic/modules/axtask): for the scheduling of vCPUs. - -### Modules - -- [axvm](https://github.com/arceos-hypervisor/axvm): responsible for **resource management** within each VM. - - partially architecture-independent. - - resources include: - - vcpu: [axvcpu](https://github.com/arceos-hypervisor/axvcpu) list. - - memory: [axaddrspace](https://github.com/arceos-hypervisor/axaddrspace) for guest memory management. - - device: [axdevice](https://github.com/arceos-hypervisor/axdevice) list. - -- [axvcpu](https://github.com/arceos-hypervisor/axvcpu): providing CPU virtualization support. - - highly architecture-dependent. - - stores exception context frame of different architecture. - - basic scheduling item. - - arch-specific vcpu implementations need to be separated into separate crates. - -- [axaddrspace](https://github.com/arceos-hypervisor/axaddrspace). - - architecture-independent. - - responsible for managing and mapping the guest VM's second-stage address space (GPA -> HPA). - -- [axdevice](https://github.com/arceos-hypervisor/axdevice): providing device emulation support. - - partially architecture-independent. - - different emulated device implementations need to be separated into separate crates. - -### Crates - -`crates` includes implementations of VCpus for different architectures, various emulated devices, and other utilities. - -## Dependency diagram - -![](figures/arceos-hv-architecture.svg) - -Since modules/crates used for virtualization functionality in the ArceOS-Hypervisor architecture need to call OS-related resource management interfaces, while we aim to consolidate all OS-related dependencies within the vmm-app. - -Various modules/crates will achieve dependency injection through Rust traits. - -### axvm - -The axvm crate defines the `AxVMHal trait`, which is a combination of generic types defined by `axaddrspace`, `axvcpu`, and `axdevice`. The `vmm-app` needs to implement the `AxVMHal` trait for `axvm` by calling system interfaces provided by ArceOS (or other OSs). - -### axvcpu - -Typically, `axvcpu` focuses on CPU virtualization support across different architectures, including managing registers for guest VM CPU context and virtualizing hardware abstractions, which generally does not depend on OS functionalities. - -However, for the x86 architecture, VMX requires allocating physical page frames for managing VMX regions (such as VMCS regions), which depends on OS-related memory allocation APIs. -This can be handled by importing the `PagingHandler` generic type, or passing pre-allocated physical page frames as parameters in the vCPU constructor. - -### axaddrspace - -The `struct AddrSpace` in `axaddrspace` uses a generic type parameter `` constrained by the `PagingHandler trait` from [`page_table_multiarch`](https://crates.io/crates/page_table_multiarch). - -While `PagingHandler` is an associated type of `AxVMHal trait`. - -### axdevice - -`axdevice` depends on `axaddrspace` to handle the guest request's parsing process in device emulation. -For example, when handling a Virtio request, the virtio-device needs to translate the accessed GPA into HVA and to perform subsequent operations. - -Additionally, axdevice depends on certain interfaces provided by the VMM to perform operations like interrupt injection and inter-VM communication. - -## Example about how we achieve dependency injection - -Taking [`axaddrspace`](https://github.com/arceos-hypervisor/axaddrspace) for an example, its [`AddrSpace`](https://github.com/arceos-hypervisor/axaddrspace/blob/d377e5aa4eb06afa50a3a901ec3239559be1eb51/src/address_space.rs#L16C12-L16C21) represents memory regions and two-stage address mapping for guest VM, which relies on a generic type `PagingHandler` for page table related stuff. - -```Rust -/// The virtual memory address space. -pub struct AddrSpace { - va_range: VirtAddrRange, - areas: MemorySet, Backend>, - pt: PageTable, -} -``` - -`axaddrspace` is owned and managed by `axvm`'s `AxVM` structure, which replies on `AxVMHal` trait ( defined in `axvm`'s [hal.rs](https://github.com/arceos-hypervisor/axvm/blob/master/src/hal.rs) ) . - -Indeed, `PagingHandler` is a associate type of `AxVMHal` trait. - -```Rust -/// The interfaces which the underlying software (kernel or hypervisor) must implement. -pub trait AxVMHal: Sized { - type PagingHandler: page_table_multiarch::PagingHandler; - /// Converts a virtual address to the corresponding physical address. - fn virt_to_phys(vaddr: HostVirtAddr) -> HostPhysAddr; - /// Current time in nanoseconds. - fn current_time_nanos() -> u64; - // ... -} -``` - -While `AxVMHal` is implemented by `AxVMHalImpl` in vmm-app, which rely on `PagingHandlerImpl` from `ArceOS`'s `axhal` module to implement its associate type `PagingHandler`. - -```Rust -pub struct AxVMHalImpl; - -impl AxVMHal for AxVMHalImpl { - type PagingHandler = axhal::paging::PagingHandlerImpl; - fn virt_to_phys(vaddr: VirtAddr) -> PhysAddr { - axhal::mem::virt_to_phys(vaddr) - } - fn current_time_nanos() -> u64 { - axhal::time::monotonic_time_nanos() - } - // ... -} -``` - -So, current design achieve dependency injection through Rust's generic type (`Trait`) and its associate type mechanism. - -For other virtualization-related modules/crates such as `axvcpu`, `axdevice`, etc., -we also want them to expose well-designed generics, and to converge these carefully crafted generics as subtraits or associated types within the `AxVmHal trait` of `axvm` (since `axvm` is reponsible for VM resource management). - -Ultimately, the `vmm-app` layer will call the relevant functionalities of `ArceOS` to implement them. diff --git a/doc/SMP.md b/doc/SMP.md deleted file mode 100644 index 85fc9686..00000000 --- a/doc/SMP.md +++ /dev/null @@ -1,78 +0,0 @@ -# About SMP support in ArceOS-Hypervisor - -## How to boot Starry and ArceOS on different cores currently - -* Note that Starry and ArceOS themselves are all configured to run on a single core. -* only tested in x86_64 -* refer to [README.md](../README.md) for the preparation of `disk.img`. - -### Guest VM images and configs - -* ArceOS binary image - * repo: https://github.com/arceos-hypervisor/arceos/tree/gvm_sleep - * build: - * `make A=examples/helloworld build` - * copy image: - * `sudo cp /PATH/TO/arceos/examples/helloworld/helloworld_x86_64-qemu-q35.bin DISK/MOUNT/ON/tmp/arceos-x86-sleep.bin` - * config file for vmm available at [arceos-x86_64-sleep.toml](../configs/vms/arceos-x86_64-sleep.toml) - * Note: ArceOS use COM1 at **0x2f8** for serial output. - -* Starry binary image - * repo: https://github.com/arceos-org/starry-next/tree/tick_loop - * build: - * `./scripts/get_deps.sh` - * `make user_apps` - * `make ARCH=x86_64 build` - * copy image: - * `sudo cp /PATH/TO/starry-next/starry-next_x86_64-qemu-q35.bin DISK/MOUNT/ON/tmp/starry-x86_64.bin` - * config file for vmm available at [starry-x86_64.toml](../configs/vms/starry-x86_64.toml) - -### How to run - -* open first terminal - * `make ARCH=x86_64 ACCEL=y VM_CONFIGS=configs/vms/arceos-x86_64-sleep.toml:configs/vms/starry-x86_64.toml SMP=2 SECOND_SERIAL=y run` - * ArceOS-hypervisor itself and Starry-next will print to this terminal. - * `SECOND_SERIAL=y` will make qemu open a second serial port and listen on the socket interface from localhost constrained by the `TELNET_PORT` variable (default is 4321, currently only valid under `qemu_system_x86_64`) - ```bash - qemu-system-x86_64: -serial telnet:localhost:4321,server: info: QEMU waiting for connection on: disconnected:telnet:127.0.0.1:4321,server=on - ``` - -* open another terminal - * `telnet localhost 4321` - * ArceOS as guest VM will print to this terminal. - -## How to boot a guest OS with SMP support - -Currently, the arceos-hypervisor supports booting a guest VM configured with multiple cores (vCPUs). - -> Due to the lack of interrupt virtualization support in this project, each vCPU is currently pinned to a specific physical core. -> Once interrupt virtualization is supported, flexible many-to-many scheduling between vCPUs and physical cores will be enabled. - -### Guest VM images and configs - -Refer to [GuestVMs.md](./GuestVMs.md) for available guest VMs. - -[arceos-aarch64-smp.toml](../configs/vms/arceos-aarch64-smp.toml) and [arceos-riscv64-smp.toml](../configs/vms/arceos-riscv64-smp.toml) provide templates for configuring multiple vCPUs for a guest VM. - -Key configuration options include: -* `cpu_num`: Specifies the number of vCPUs required by the guest VM. -* `phys_cpu_ids`: Represents the physical CPU IDs from the guest VM’s perspective. Due to certain hardware platform requirements with clustered CPU designs, physical CPU IDs may be non-contiguous. This information can be retrieved from the DTB. -* `phys_cpu_sets`: Defines the affinity bitmap for each vCPU, binding it to specific physical CPUs. - * For example, in an SMP configuration with `cpu_num = 2`, if the `phys_cpu_set` for a particular vCPU is set to 0x1 (0b01), that vCPU will only run on physical core 0. If set to 0x3 (0b11), it could be scheduled on either core 0 or core 1. If set to 0x8 (0b1000), it will result in an error due to exceeding the available physical cores. - - Example configuration: - - ```toml - cpu_num = 4 - phys_cpu_ids = [0x00, 0x100, 0x200, 0x300] - phys_cpu_sets = [0x1, 0x2, 0xC, 0xC] - ``` - * In this example, the guest VM is configured with 4 vCPUs. The physical CPU IDs for the vCPUs are 0x00, 0x100, 0x200, and 0x300, respectively. The first vCPU is fixed to run on physical core 0, the second on physical core 1, while the third and fourth vCPUs can be scheduled on either physical core 2 or core 3. - -### How to run - -* example command - - ```bash - make ARCH=aarch64 VM_CONFIGS=configs/vms/arceos-aarch64-smp.toml SMP=2 run - ``` \ No newline at end of file diff --git a/doc/figures/RKDevTool3.3.png b/doc/figures/RKDevTool3.3.png deleted file mode 100644 index d390f4219b81a1752fe22216aff5c200f51c0af5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 92129 zcmeFY1yr2Nwl3NUPJje=cMqc98-qmln!3lC5K`V7EDe>93Ti1dgK@EG?I67Hj4-2m!`K|X$r^hfJ}fBT@Jqhg?7 zK0!i${6_`LX8-`oLpeG&>JwySObnDq0Av(Yw8u#3j|edch=_HQQ)ck+NyvmjI(nXs zi0N5ecdx{xR9=2TA?@1whNj6WQd&(9Ov|_gItC_Y76FB@x;{o8J`pJmGq-p2uVm${ zZ611|`j_beejmrfp#JCx9Ru^BTpbti2pRCuDHb;J13*Q35bt9oWE5OfG(3D-9u2d& z>JxMVLS89dh)c@&1cI1^j_;Kw=w0HcFO#QQ@wqib^bF>!7>xV^f)9RxDi*J<7_Z)(-Cj2{sTgW{@0~)#fr{#4z3QPAP|B~F8*m%%&5SZBx>EPi zjN_BP?YJ5cW2PYfHoGvF$R0KqvA0sUqt}QMSF_x-AFb7WTpFkwU8T*;qU2L=uT#*W zRixJw)^v*K(A>mOBA~N}!>C3P28pr;TJ8cJtiTrqS(wISM3oU{h#kH1{6+|oIp$K& z*ZHitQcDZV;De+_rf4}}AJ2#@h@@NxPEpcM811m!$206owS%a%ukPQ1(dE|nM?^%V zv2oq9IiHXXAA4U@h!3PMv8cVUNAn$PTHR8f-hJi0uMQ*@dd0}{Q`DR`mgJhOmRf@r zOVT5ioxrl>##&JP^Uz$I9R5r3x?7LWZ%V5(udFD+qQ(wRjJB|IZ?h)j4sVou`?Z=a zsD#~6R{U*-amd97o}TCnyD@Ln#ShiqJ#1qYEWuo+j+xO6eYcBSl}a{Lg;qM^My1M* z){D<=bG62Gj2y}sJC0+`1*g<2xNcP!`|c+?l5LkNb_c4nyIpeW?`+HhciUo?U4A6G zHqi%+33}t7ZTtevXw#bfu4un6A4&(b_60|}+j2@ue;Jl+z`B{W!9};z7yib@Dh#iC zZIEk`%tR2Ampe^&Bf*>+KDNO0KpTVY7PC7|KXiuAVBJ^>XGmk~EN6ZW8_=$yB0|cS zD1Hi#i;gciFCDStN&Y6wj8{qS@k}~Vg^i&+gU&=$U%b;F59n*$A#EqKz&Wdzp0z*H z6M?buLx}>a>ww#RCTs5`c$rcwBv1j?5yk~xILu9mWHyNC6p&{=^^h|8jMb(gjwqcWaj zXjU#2(SBM$CZg?D&OfZwLo%@W^jVFZi7tCPq2pX(wwbxo6{okVvQd7YP(CXq8NZxV zDw(UB^?IaUs3N|qhOo*e4Ly96e*rauxr~8|-`L3rx{r*|f*R*WqDAU@=j=7 z)BKD9RA!I}m{qpwj=z?vuY}Qja#vB)E=efQF*s~f!H+9%mjON8fK(LZl24<7(oZ;le;=BFN@nJy3;h8Z^;9tiQu}*EUzfv z#6y@(S4E)e*MG$fTn^+6)?zp2uB3(NA`v|_JCOxxg%kmOwYiBE-u4m^jOfc^Jmxl5 zY+XG5&-Rz5bqsBq()&46EC=Vb=6GMdNEsPA@W-y8yrJjmgM*$)KV=b#1QYk8l~xEx zFcwbj{?4b#pp3JPr$79i{KG6WVeV zEtcNcoPzLVR%;6%EUvC59Myqyup4dV8E25eegWb)=0-|WTvQo;z$Gt7`nCSV)4wkk z%GO(6_aT1eIUZb*Z+*&KHq;=C_>#tDH75Eb?^`G>L(>#`GZ%dy+tJp72FG%FOJ7F5 zgMVey(?;!y=;ra+3S$uIfX;?YYJ~uK19ik2%VDyZ@3X3nIbX6XHj!G9(hMWSvhl&0 zQ4%4lVt1CyC9@E1A&n4EsNrdH$!96|0Z>Sss2b zF>@4^5H9))fH7E165G#9a7YQz;pUS@#kNavG>}O7Ycc zv8YkgzMrCC35XQ97PQ*q|I zs)h3JQh52hl3|a%^>iS;GsOSl|MyISa=tfUy89P^`tO=(bxwV?WZ(SHzh$D9y*yC~ z;<|XCb;IeDl-t(8kAF+od%3SF7{BkEw)AIq{Vh`>>6mXySuYPbrgO#mJElr`G|Ka@ zUHm;FsEzV34G$3gyF_rXPHn$t8vS>PK)CN;NB{ST;GZM^mv@2RO+e~_2>vPaKYZ^0 z%WeEqTmBPmIsF1hfIl{5vL`zkc6gIw>+2vQn-MCdGg@IJB4ET|@eJ^y(WOOH!=!G% zz(A{_d9rfo?6Cz&CydU#DcK&*{PQxK^7t3PIriTOSuN|gH-tYEa@~ZcEG)u)m7E<2 zD+0Dqp>X}k;cE8lV7BTyPT9B#Y}q^rFip6-qrOK!Mg5PrOz=?Xg-1e zWpT$o%ZN>VG+%Q`Q7yQLXC$`RzElv0T2Y+^B4jchFz)_D_NXB1Ji+%%4S&Fe=krC| zB>XouM*D|^Ye}ZuAXyzl`@-?0Cm>L1qZ6n+sJn80x>OfzIAaiCz@@7;pwm7pJ>=?! z4EOck%+NWUt(7IP8dVsVB{0ZMXUR>A+g9P9RN>z(;GZl^w^I?dd-(e=zfYUKmYMu4 zS}eEkZqTQIDB&0R=Ep@;>a?}wA&j=*g1XFX2c@1hvM$_&#jV+@t&8$`a@#9!O>lqW z^3+aEawr`)+6_{S2x=gpKsqrHkjXYVV#UZrM?$$Fak>Peli!^;Rm2DiG*BSZfO~Yl zQb}Np;ZFSs9cri#6O#Dx_#|d09GYF2X1)}Y*aeyXmKx1Shfwlu*^0E9U{L5$%xp0{ z8IB&%^%m6Ps2vNEfZ4RA7v9>$!`O1!*b42wnV<-i(D!=_#LR7z2+sGRH4Y%FHls!~p$2XGY$h3`)ET2kw;;vEn@skzq?M&UA9ied1 zf#yK!i)?p7fdv7JsS!efDWk%t_~2NG!f8ufZkW5@yn%gZnv5pQfzcV3sw%Jj;x)A8 z8j~rDN4BQXk>#l_6Rm+LqS&l1Eo617K(TlndKixhcFn%gf6Tzc{@O1_z5#1m7`K!H z+Y&e}G+1k|N*#9aQMLw6L*;VXj7^wgXLsJ=5f$VPuu*GwTg%;dmOu=;72tKkS6 zN*31ib_lmZ`GvxoA&2n+{P}Zy;C$kQp$ol}xm1$i0TS2FU@Fx8XS9{d7WQQFB2ST0l=BLI8muDJrZ{b4;LVHt*;GBGX=o-fKr7BX}OX%aYfsFP ztzp9Gndl)jAMGMT;at2aDL4y}?Ad9J)Td9NZ;vYm(JOR&6;q3iF%+ z6{<07s2sel=q=sgBs~=~8ExsaYM?I6Q|yoF!+zYoaRWChd-YCD6aJFRTr6w!g-Zn% zP&&n-=~>&-(Hm57SBhgsG9TS$Ez2B8zcJnIVq1y7@{18Kj_;V_LEFM?^Je9ik86#8W=cwv#P|fba9`dY--6} zfViyAUr^z`I}|AELnYlKBhgYSr77e?KYKM~)yO5No?*XfC4y^6wzVB%U0cK+7sB6J zd=NSj(UL)zOA3@1h=cRtGuN0v1&z=Idx^|Qc0ZL$i6~Ajxi5=fWNp_G?X`ln_i;qQ zBF1)H{ascxVhf`y+77s$%&#KCnQZ&$=yGBGunU!+iE)+=uG$V7gGO=)0gyo+N_lG8CB}?x zqxI!S0F~I*5+TJAfu-ZJa=Wslqto4Zx$;bBap~$y06=xYr^uva0{}pBY7LCPeG35S zHpWQ20RXJG+2QzM007>2 z;Iuw37(Tir{uW`AHoUmRUrMErk=}o4tukaK2=Z_N4_c;KrZE|z^O;DrX^6Z9V7;Xv z&tls~h%bF!`@BsQ?&883PywGN$DefB9ds%mWm6?j z&IFTtgM%Eu^bE!OKx-SB#a`5hKWFhvui0Q3Gk^KGAYCzulD=U%Jih<%8qPN&xYT*+ zj0Bp4lP9>&IcR(oZ)%hhf5GRv>lq&aHwl_@^M-)md-+&zPaHG+bZJ9d*kS$!&=33t z*q8qWxD6T?0*E73MZ~ueSqc+mR~20Bx%GtrGvJfi{IUv?;PS8F;MK zQTg;gYCO7pboP&@yZ%uF;Q#Xfd-K!@AZ-3=m>Y|IMQ8INq9Q$UQiaQ~)PPIl7XTe0 zx?fJr3WK^&s@TmKxKBsGiVWa{t!RswWr??)zIH?$Y7vG=Gc|!Mr&HFDeU<4 zs`&wJe&pd|=VeZ|H9R`H`JRRI8^%t&&lAZxa3ApIv+e+`tRMb?hF+Q*=~$|9d~IA> zIzJVq_zjb@{*-f-oZXK%IX&^)3w&IU{%LkZkfP}YJOXqDJ z+rfectYywdp7<}VNaBC`9oOVc+3@|0 zhI2DH&g`}P@UM74-nM_a0@7BJ#iKTNln-K``{x4ua{)yEPgp>w>25-|c~tDaURmX5wzZ{-LtPen zTo5i50;DaYmeO9Dtk~YI_B2>SL~i2WEpF6;%H-x3V0Ar%S}7{-vj3dw6VlL%(1f0r3LD+ahHQw^X{}yOP_Yl%vd7fqtx~&sZ=U!MQccQ`(3xnV2Lz`)j|b>hgev`zT4%h zs<0G$oRQ9gnX!%JRkln66+7Rad1M8$e3lBT4ng-iGa~jCTVw(9s(hYmZzzR6gp5eyIoDC znZWZ#C7uB|vrO3W4qQ%S@k9jjdE1Wvj3;8%!S%*q-NCX>XVG;u^$=I^tQJ)W)W}Ec zTe{1fP=ve#pJcZ-*=p^q2&81T`JhjzaHYiCX+mK$gn*r6v@jQEumQ~ZOjDsRJp8;BTTJAQ3wWwghvw3 zk~NlVA}@Do^bRPalX_gopQN~Yx*Big>Km`V6BgdrVR}1dPoV9xwus)G3o7e!py!!A z%G;& z=(pr^K#Z@{@(aLdq8AyN398z$<18F(`!Ln{CN0Oykml77J=q!DtkV^$=&ruJ52@JF z?rjm{i7uC)Xu6(mObb5$tZx%ntX60;>vj6E=Zg(KC?VcO2UZ`KbGXUzDJm|fc8q7 zdCaCyVm>xTLeje&Qr#fLWo;l`-z3nWp)URGyBL$k3u;yo}{*y)36 z^a1<(iOIq-qZBS<$2EWs#tt$EzUBFo5ufk1vOLpbdJ}NW37|BNSRuSn8@+WWB2wBx+3Jn+Z!Q;23irzUk`#~&Icc3 zH%cd;LrP-RFUqE^L_z3-%KX-Kog*>%f?>G&P7`SbaQ^iGQ6(?&`zbZmKLI9 zddX+T)a1BlE{5@I=pnr|b!JhQouz({H6yYr4hr9lXsYs5TTHXDoizxFxnd|jk|I{A zstBAarG8-lRc_4e!A=ehhib?`@>axpc;XR@M{O+qmAyspao?2A+5-BK*pYDY=2jXq zx^#VIV@46#a1$k*Sa#e%Oh39aBvoU|jL=3eid5W7jol_y1ZLDx`1&zC)S_(42<+;Wt15cup1x508dVni z&9+H9hu~mQu|G4y9KJr2>u`gOQd&JzebVJW8?g~%+RCZmJ=Ypt)-O5-hxBQ_NpMGf zkz#>m>9nELVPVBF@OYhJ@%yK=ND)a=3s>D1+P2Onlqyv_zoP!Ha4O;wQaEzebkZ4C zAI15(N)Hw9gl7J^yY%7ys^rW5gb8V~^qk7#Pj>{8b_uzx9z0Dw?cbwTh-Z((%B`Gm z$+RpLPnAMH@F?dn%G)c}FxX!yu*F`fn@Fk22IST*W4C!UcnU9m;G+})Ry^eqlB6@T z`GRgu7Cd_{a*hA#XlL;zF=tXjoI2x~Y3j0%6i_PCl9U6sz%pf*x}i-xWtPZRL;#N~ zcrHSs@frW1rMdJ&mG7r-QvvN(Eg^cgym=)P>#xmqOonl5d`-|al0F7-iY=y8O@;5ns^jKs&pSbWf8vH&+> z8)9syBhmzoUO{q?=UM@qN*Kn$RyqnVlX%){S$lCHRAwgmNO`mfaT!Pi_%J;fedpc0|Cz++qrTTAsN`g41EwKcnFI9$nb8U{3Iwd6cL2j`U2PeeF9)wdB1bE79Qig$SNX_1&P97}@|(&CALM6xb)E zMT>#^)vDs!j>TAqN>%F2GW$GKU(LVbr^QL6Eq?R7XTDHoCfb_>YsE#K4x+F4dRp>$ z#|Va|WuLWo!{674)O6*dwp5WiK$C`r#VWpW8YL|0gb@b%#>tK*jI(-QNG2Xm99Mck z%-!*QU*<9oPJ?aZ2~!$4#8P#9({f-DGi3G}T}0x#@tOpcOdGF0jJHi5$7jEWj{flP z!^%l>NoTKrMPC6~f42Sw-jgk8ctgQE^&y76|ARN8EFtntCZxe!0JO$d$>9aUtSSFvj z*9k_%SGbE>Komz6doh@PjB&{ILaYt7(lR)`j;6#Ql{C$SvpA`#rx@(|R19$x*XrP& z8ixGt{4&3-7;R4G0i~g21gj5CUv!A#B(#T;)D&+M>MC9pQU0tu{sV8)Q~LQ(`_RR5 z?{K@!%|L2*omxB&rOQgTrrht|ui=GLP4jBX9rz6cMFlB}kb&K^hx_#sdlh(1`lCf> zNLz+Rjy$@NHB?)1r|jI?Q~EX4151riD;gm!uS9(R?&X0X&AWk*QKlq_iSP~VtCo^R z=6NVAQWu}f8onj5+x}ExWT#~GYlcUJBcfWkjl)GSMcs(GNrQRqLS}LmU-t7CpnH{< z`TmHqwvILAZN$u~pPA_Mt*zy$;3;Rx$Uxj9WIp{joCkp}samutLwR>h_E~HIW+iw_CZAjiED+IKVjp!;_A!iUIaMi+vo>d_> zqpVJOmK!-lb0-`|bTxpB5gG<-r@GR_uKLt2H?bSsnwiRWEoR;s&xB%`bYMM&OKjK& zsnYUscv$$3On5N|k34W|O9>Y#UMM zJ)_FVB|>HlAakRz2bPr#`~q;vb9flBb5>!+H?6yNy2S4TUn@bQn3OzcFM3Kbxbd4% zt&f~#;172&L#>!C3pixYkV#rc+~vVxn|##9gPbWc?hK7q$x3l)g$kd~Z*1edGRA8% zAP3dxdQsZUI&f`;J33{hxN|yDhuYfy40QU3aEx@zPd#=6Zo#lNcj-%?%urg(vx8{g z(NY^C+_q?Uw~y8B)0;r%h<|_Nqu?S|Rq`IAAq%^Jcre$(sy}{K&YDKxbBI<{%xt~hR;1-*NF zWG(r1sJLcX#U0^Tr1tYu&i#$_F95}B-6;O9*%|aal$}Bz-B0=`pMPq{LQ~g53C$$F z80)vrIHlHpF_P|Ub$}*{;i>T7Wzra$mr7t?jil!vh`*1Ymw#1lU;v*>ovEKW(|&WQ zy*~^3c`@zsQyWxt9q2EhRgt7sk+TF6-K|L9FKo64%w%F@V~2~HjLG>gIBEc9+e)ZcSQL(c8_DdD9)e40Xl18oaNp z_nARGO7Foc5dW+@fDz(ZO`f-zIGcgYq5K`nD~E&1uYnKt{Vei@MGl;g>}Ll}Nf!r5 z8D$ysU|@V{QngIYV+yt=V|V50b|?)wzY1BGW2py?HjR)6iezch;|tP@!@Mb_-=}l? zEn3P48QX(C3ves%DD;H9uf6l4(a3&-&Z?eS^;7w3QwwTrjEuNUnrjyBXSRhO<*^6i7f{NhBEQaq%Y9t z*8%m>lXqC9j(KwCN|9Ekm4`G7awNXpPTE^`2?4&wJY_#=L6HDQQ>V_v&FPYKVY(|# zh$yscy_O#5pZe_8k7mZosCbB7G3Y#dv}VajD>B?bHNtmu(FboK-q0qJBkgBpGRo44 z-;A&IvFzc=f9c|yB`VJ_rX8io8W)`X6}U{2D8)*^S^j*m`pFui0oNVHU9n=)Ix1CN zNXX<{{?B2(pZ6>UwA@c`*e zqAF)q9*^pc8HI&naUlBH5&s(r^6y?N9tKGnn&M=IdGX-lLeJ-WLA+95$fS=H0j(Jv zaw>9&M3QkfD^|MhvZ2+4uaB)Y*B8G;a|z|$iakV9va=%_yHOWbhQ4!_Vv+W-mohRu zbi535B~-)$%B6MMiBbG9?1c631`urExridPIM?#bi=iCZ!jT>Njt zX7390Jn3G{VKLRcy=%>*U^NY9bK}#bA#%X2?m*-?GjgwLEFR#Pp=0cFI z)7JwSN?QtFv8fwKA@Q-92R&=>Fchlpd8HcAwKJ-_5O+;k%?Kye&H!R$FO6J_1t7oS zPn$IGQ@C~P1(qoyt_dYpuv1s>h&rS7AFDVj_C@tZls_J;3r;@s=d(Hz<(tF0O=EE7 z<4>GOFn4?&N)keNuv!nq&9iXbb5rZ*P!^wVP7B4bN}9lJ6mU@ zDQE^M@Fu4VHPH1;Z*cwe7blAucr$4=+r}trcrwxQF}fPddOOq7HG$z^-GP=~XxxYk zv1?+it`SJ0n?b2L@d4y-);rXf_iV%D(1V8%l;&ig~8InbM`tepqO2b^*$fbQUi9U=T+Q&{G z<1IpK&L7$YzEjY2CWIk33Jfu?F=&N!pWSgfR?`wMONy;sPmgsw#5{I6`%p`-oV@uWTo1Te{M1xGVHuF(R_OfM1RU^mVjR}2>Z-FG| z8MEt&_Irol!w2t5yy-&%*%8nf#mE^5%hx>Dngg%V0#6H3TV6YjUf2@e5%+J@=rV5DV41h2!EUwahdeQ`iie^Gn~YG}ARR9jF|dohj#^DIoOA3DT(psrW~CFttIo5oZrIDmsoh zym%~9K6-^B&b>4}qt7$Gp6PZtrynKbe+FQ%{6%N~RW{~nqG@{mFMx{hzz<+|Zdb&g z)9W|=KdycOYA8G(-w=QNx&G%3>M0s;-|dH}F51zbi&uVze%KD}No)9oO!m``ix&jX zkv@xI+=qQ%+H*?fym{JJ>DOI(yYWT+FY+V*I9O(Ed?z0M)enH$u0zD@qBbya#1mE2 zZ~z<+H>|3G^V*-(FeFi#_xW$dfifrZ*iu zZE84A+*|uhR+a`iZ?Ctprt%qn?zc6~6!{)3Ke{?vY3Dv3DV@JlG+v*}e0=w|fI?+! zJ9~)!C~;-qO}T24%*BCKgj+eG)AF;)Eg>wUWG4=f!9e5LQgGrB5N&LcY14z+==tmF z7TJWuuigw1{^i;Zf+~6g`FA_tR0=wfe*s4M14bAmnySC`M4P-@qt+c+J>&e&d=JUH zvZKB1i9zLXxp?~Qw%r+1^>o?QhYEOocy2t==>>Si_+K&YUz9&G;f*}k&e<&@l?>NQ z)PwvfX%r|zoxO4;9sSLe?t;4Y|G~CCAD(ji{Q{hvj>Hu7D%@^(Lupn$<3tq_zFgmj z<`t6EgJzq2Bd~&RISh?$EVKy_1`P&RAxeh2&a#J=!E8@bi-2|==0P8hwd}7FCkqyQ zv`o_N3QTEgEhVYi&ha|-6Ht^sUn1?ziiJE}HBl)kDOpPvD`sV7A#Htg`|dmrUwoje zNR_l=HOP7-74CAAAarEZ7H~Ouv{cc&4=Z>2^bgKoucv^@_#D2##XVZSQI)w-YK5v? zj(DbrcZYwrg+;*YdF_wug{~7mXY6e*s|tyDA-vSy7Cc)C*>ZgN;wBIKb$~Ikk$Tv- zgt9HLbs(xy`PQ+6rFr!ILYX^r_K$;wv-Ydy7KvA82TRAZsfRyX?2kuRZ0e6G_f3B6 za5tgfnGd!W^ev$^-P0od2L#}u|6YQIvp5ZOZCFr!k0(Yp=v&b6c1Nwo1>3a2WzZK& z5kF4O%sJPeK*X6@r+t}WeK`Bvd<2yhE}KAnxT`Y%Ir*jh0ugAFOJe6m-zhrze?UO& zOPPMM0ab<(P`JW@gY1Q#d#(rSN5n1naf5H0cXE+yb#0u`;j!-?bg~eAWaGBs zTBqIP88N#h$Wc0IBuHr;)^rtYSBEcJ-` zx8!f|e|rf&jRT`_f`ASqeRVnUxY>00ELo85PDlIP(dCvw)@bjj%t~Y1F-%A`mEP3x zFh%Pqso8v7i*T9UB6YT=k`;0-btD<~68ZgOiQkgH!T;?gOfRQ_5GMOFpuB|vcWzfX zew6@f<#?cf?b7~my;v4BGrYsucSReV^<1ufZh@<4iQTOyw~)P6r;n%F%0zShC}=V8 z*;@=`WdHw2zWWdO&yxQI=>&ypOaqm*9P(Gn*B-*{>fSVryvB^A=Q`_0h4B@>eb2&lw$d{ zV%{zH_koVok^2Rwn2o@PJ$+K4bJC6lrz*71jo)%^dSmADLuZJ@Nvemwic9a^v`WbS z=RQqwS!~oGiAcbmsK_f#U)7fl1yMln436kKP_ig;cUzW`q^)PKL!(zx*tfAsP{ z&qw82HD$X;Z^ zKjb`Ib`6j}yz6=kk;z$TF`2GyZ>Z=x^sj0-o%c^0$=QRndLoaP@lFfndyNw2eHY;D zYvl2B#w`gpOA@p02C-iu?#`t&v6mN5K%wqQ8Rg-*!5Nwgy)6^FMDaUYq2FfsBbD5O zkjMS0yIM?}Nsi*o>z*r<#W>BshpH}ipNi~FlrHEx=@glIW@XfuKGTh{x3jRQKaKZR zjCX=A32QzDt5$XkTS?t~D2~9@z>**K6r+`*-Hy3~v2mSYswF2z=U~CVtLA4%7dA4b zINJ8B={m}(^=aC_2XEmhsBa%s31kK`SC@lMGMHdOr*S|9x!DXVDG5yr;qSn2gEHwW zV8C(Ol0itEF?W|>UqdZDF-jm~+nNyt^t`qU5lC2O^E3;%xCO zh-P9?TSS_cAj?lQ-S5*+%Ogn&Ug((5TGt$YbEoTof)GD%o2@L+^7vyS$eZ%X#JCu_ zs5SL1{2+P_vu5#fFQ7hfSom=j)P2uEfqfqScHcoqZwV-Pa!XupM&_N{l;q=CZEc!@ zSzzzuRW`2M7~T`S=3;ia<;v7FEPA)kD>qqH-8F0Vwux1sx8@*&ch!V(NK-mPTuAl1 zJk3DU`cp}&BW!51d{X(pUCP%@^3cT8{Fh7l5*A+hOtC8L^Wh2H)=SBYE%ps0O=ax^ zmW|K!hkHHj!0Gh{oJ25DU+*e}qfjHzWt{d=)8b17E)`a66l|6>nQk|?&S0%c{J|6k zg|_$8oCbwa&Gn1P{vwOcHVv4seS5Y}P4wKwvPR3;QWm*9wX!-tni>1|uAAyE?h3=2 zTAN^R=F>Yn(`td3_NY;mqUJXl*IAHd4ldC8)?ze{*FZYVzwxPUlPcv zpSJL9rZVq)-TC09thOaYR%1e8QwB8W0CJICmPqc+v;_$>)H*Bko0QucHVQ|JHXMfK;a~-tx_a{FQ9U6#pAqT(jIFgX&N7fn8dC1f6A9yIcEY%&i2@dO75R- zmjG66SqvSaKh|-ro6{$Ea(KeajpjsFNx52Z;2gE^6xlj*nFr{>qF7Tw2xmBW7q=>M zx@AJ1UNE~ZW*&gdkS*gc^F$$Xh?hQ#)zD$X9DG}~ow)L(x6B#eE3f^)F<1a;$GC2U z$U(B^DywF5D67^w>@b}1+lC>tc;W0IX=m7;O`Ml>FIH2xxq=g^$aUv7hLA&Th}zaY zaZz*T4`z4fSXW_>`Rc>ERXPTwQN!tpHjX~B0pqw%kG%gj=j zW9)EJcJ7}@OiHxqdqg8lh9u@@*FRKsg~o|r%Jrvqws%^eFXk>c{!*Uu(?-hUd=>#10KPub#X zK=vkIR7>k5Z8Fn=k%HlCt>m;QUpmOQK26_OMxruv1Z-!|^oy+T(z4Ti)t$!^ zV^UfOA;&3nEs;{#k0Ub?>{+}tYdt&kwya6I2#Viw6RU~#nA_tnZLnfzt2MeUVr!># zr(cf&1;p0LFR%YDvfj1RWNY1i7O4b|Cc2r8=dJ6jv?xt`@(yitM+EL3L2&=X{QS&F zrWy-Yrb6_I|@n%I+o_V;c%48(0zs%tJwfMgXPXApU{{FvX@Y63M{Bn@c3+bFRfGD zs6BH{pp_s%TAk695WdvieInz3B*B{%9UxiHx~nDS|HD+BfW4(x!!HWsPc#J>Q6(B6~3<{O!GN$ubaLPdWd|#pDHR)LAgG4qFd>2^QRdN=wQSx=?$@O z>1Y6J^|=qlboZM%g=9rxud(q=Eq9Pyt9Dh@K{BHd4IesHc)I~Z0jgD~8XGP$F@)I- z9#Y@#F?wPIbm4AuC}BNB`tUSm)OZZ-g^HcGOSMDXeIil!3MvQFiYpSKYLwzn>wM(B#ct-Sz+xB~eod%J}z6!yq z$f-h~Xz@!C$UO5fe5CHc%dGCMoQE5t*oE3aUiolMQkwhPbR)pxGYRZ&ut+5=oH$}; z(@!jt^gK@R9Y@aEdmgjdMhfwwXq-mUnOSNHOMbH9@Hbbaoja5-H{SnP3JBnz%n;$S z=lMWW;ODet5IZ}8^|~B9%57vqkJR|px$Vfe6E_IF8u4c_WHg3l>m!m!Htppw!iEZ?}iQ z8-G@BcKeSo7#*uK(&qKqtGJ6v&Pw7Q)uEh28Kk1V7`1$-@s92UB z_+8A|#JX8TtBH`WYX5<^ze?t4lB&hJD+|zm&kZk>d%eYnQGm47fMa5R@P=14utQ8V zBWgjfMcb$;O_(g);>X31yc=z-nm{J2*(XZ|!XDZ6@0nSWW0(^VhERv5J&N=L&w0bo z(>~|WP|A-VJCgIl(Vmg&C-x7aVX3h8>Ggk$TgI-N0OMGhyLAg;wIlikzMtc!F!!=y zgp@Kl>w$sxE_WhTE?rU84eL5Uu~6b=rwx4BY_7E}+zF!aqLr#W$b7R&sY8TYdbr_c zBVW2>I4ZCGTJpAqwNP>sb8ng7O0bc_aJbN0`|C_B@N)yZSqXiV?aw{yOhog3^fU!u z5U#|Dao1@>^~)u{ON^RSwNH|IKJlXDWBa|JMO4jM>oGd7mHcBvY!vU2P9=7y{?)zf z0HO53!#P!4N_6*m;Lq7$zS?#WL< zJtjl3OyJp`UVRc;-4q-BYQcc-?o%<*FF?1i#;JW{qKYhXVh({m+FwlriKkF7k4~fg zio!$&VskJb{Vi59RA@ZoHdWxusT`1TAAG)%!2#~d`%CTpu zyS$~ILUv125&|Sud+kyO`*hcIqn20u20Zb<85Xlc-fVO zPRZJ19&Q5XE7o8-*$d!%HyxBX2)4NM=X0lu(-;WnR(x`EjEnv$6yV zhb)w4*Dv;U#gP=3g%Mtv-}5c9v>BY1E#~~r0wio+ zF^xm44U!5-ANg|QZJ@&_rBb#8kjY7~#TeFgRFlH7rPak_*J5>(Ha9oo^`--CEY~ii z7zD9rwX&Fu^j(YTc#}?tdK&qn+9~7hqBIu|co-ywzpM@i`4B>k{|9?-9TnH}?TL~E zLI{%J?(Xgu+#Q-m6I>g2jo>uaxQ5`+Xd{gi+#$F_pm7ZvG#T!^w^s67>we$NyEAL% zy}RbWb55Oes!pA%z4vGDU7rdNyIxdu5!^B*5M}MWP0cd4&TS!Agka4}xQE$c**tZK zv%@veg4u}0Tegy=q!U;$1BkmK1q9jdU6id5dnl3AtqUldJLWAlU-uIZ>y~{?3qILh zZ<_{50G6?CUudrz==-+dCF!bWxw4rGr~VDty8lIeFTK&MJR#Z{^7)jNj`ky${4bm* z@lQIx_wtE!%U{6mf6ctGcPGxfIhFAU79bzJ5x$m3jX0Y!V^0p;3Q`zZW^`6;!~{=v zrHJslnyQt0p@yc}x%X_@&=@VCQHrB0jmEyr>TSrfU;D7qKf<_Ry=}!sqDZgf)ROni zYn-ivY)cJv|Dk5dQLG?58U`iL%L4N1k#Y?Uh6F9SZQ*AxEXhc3fiiRJOK!!oxv^;6 z2Q_SS#CmKycX&Cq_tVHH5N>Gx+EYvQJcXzCfF7i}nuSt* zt==*u#6Znv3xoQl(x~xAAFwyzwc>7Wc6p{ooi<}Lx~77C`M})9s9Udf-30KXtXgDl zim-)yzQ1wH{9*KAKq;+xeHBP;Hu(ntHgM=5DQ%W8Q#l*8C5ma8hA`e`pUOekE0hK9 zRPgEa?DW!-?JwW0XeSm1u&!_hex2~f*U8~9H#kg;%;M;Uqs>ZZDbVp-pC^Pgulb5l z@nW}D-am2?(4{6P4G86^m|>Jurcw&#wJs+UztaD7ENsQr#AxAUXwhyt;IsB@2}1iY zDn7Xb02V8_TZForND}1=Bc5&g*U3(1Z1eCC7KbDBP)vNi_(L~~T2U#ruOXi!JynjL zdSi*MxRtqwyU&o1v$R3Dm!3ja-C^ikP{EeOyt#Bjv4Q!-X(oM0CZz1fk+BX+ojYLP zP{G`;wbD0>yHZB5E7ETAW)yE_>H~w3yRhV^rEWa9=!+k6VQ0}K{$u#A1mAlsXnvf4 ziPqZ|U4mkwx&u!O8Ga1rX0~OH1#!Ri2MPT|&mxuK{L9vB3h&dY8SlR;6lbyJ?1-6u zKWCxOz0SaD);MUn{62l8&+VnCUfzU#RyOHq7}Tsa$K?OQ=sh3p6m6O8WQQ1N^Na9U za?)~in`q{eIBoLfMF8 z+h@o2RIEwM_G$;X4nc8Pg~_819?j(GNAdgdsD#zT&POg{narZZ3?^0BV8Z3G0{r9t z%P|gmLlMqKFwUB@ql}BagC!lWW1}3F8T;AUppbFv(ezD6P5mllAYv=Sx6q$9ifM6= zE@9MyWJeg=i|m<6tXO|Y4)fL|`5YCawif?3v?R|0yt&($qc_&;p5K{o-?=kY<6;RG0+mta*h8SZ zSE{V?*on4kr6(#`=e3D)IY2oxhAg24?H~$cyL5(U8w`hVBo61;~wZl0j~JuoXJ3VX8SQu$HUV_XSR7ZeBS%->4Z0n}!5dqE!R}_Ba@gkS9j1 zY@f$l2zonBb#bZjOf2i;!WU<@;1=~InmsmfiFIwXBef>khoM%Uk%u&df9COpx5;hF z6oz$9>~0FY{%s+NRK!)k`ww>VsRz8i)6A7pfdA~B21YlxgFeWsf~CO;xJ(s<0JL7w zErc;sECosC{YC<3-hkJR8s_^N$Zj^pq^3y6OU#C76M}JgzI2BO_z617aKo;d&J4Xy zaymh69p1m@%y*?lHxK_1TloKJygV-q$p_U;a)Oey zO|2HCgZldNBrW+jl5rZ#^M5Gd_I`PzU(oP_F+t?j`-2Zzrlg6IH#CF~YsTbpeUWE` zlv@TJRhZj@+x#qa%6j|~{)q?#YP zpI%18d6sJZE7T59BT87G{bdpN!^)%@W1r-D;7F&-Huq1CpOQd7#we3zBU*&{RXe5f zN|Qj&a^6Qd)fsF;&1iM_0!DcZ@InZe51b9W5fmBWuMn*GR;zRLfflhZCHUm0)g`Vz zxJYvi630jfPsGtYg76zoLiVG}@{cA*4xY2&6m5}h*0S&yeL5XnEO>5V1~!hkts9oFFnuwg{s~!wiY-a?kSuZl z%J|Y~a_Ghb!N)xHtM@Tq!{%Ec({x|5m$FI)n7_F-T)AE=+{{l@B4vZRWRK;0pEq)=j%ld4XiK5jIz z>uKQEj=1=)$^HFlZZa0O3brx@%-SLQp&^@0@3E57lI)Iv_46IhRX&%QgCY!*CciDu zgG#j(qCWm8uD#rqXp31f`!!L>>Bos4hG%L|vcMqA5u^A5RaRnEr{ZFq_Tm7Do3Cj9 z@qGErWC0ps?VGRCtq`DxYE_SA+i<&JQ8?{-CL4}&jSMyXT8r^QROLr z7puZ4qVk2o(57uP)4v8` zz4-hqsCG-1bZdA`D&zAI0|5q8N5pcy{W?wvJVC~D)+zeJ0A_R7p{+}rzc}~J(V4XO z;w@HJ^`RRpVHI!+6VDMp*O9m0GQkMkG%)R+kvXb2s^jw;>23W|;G#@fjBqEHDy=d% znLhT{tt$DLz*m!S4Qp?;XAq%@d0xXxK>cw0rfP!ssEU+iT3X^Zp+*JabrN#utMy|| z8aZ$nB#E5b(3KC3gHAY+je14W6JJekW788t z;9fH+cdR^^BSY8jz#PmJJg#8F0OijvY)dnN7^>xEG);{%Otg9%lYk<>XUOC)QWp@- zqJq~OPNQ*VdbrAsFuTjY^)M|&jzZd+Qy8jv@hQn-?ejjL*Hi}ew*_rv^!1&XWyH;~J>coGHpMhO!>)7NHt?^_#b&(`k4RP^X|}%$4=?Y0F+X%x@R^JTbe2z-;0N zIWvad4q&w0)Cc4@}6R@|@ePQg7?he@{T!#LD1{0l6tJywClsA0(dEuWYy*=EQll ztUUW4twws7^3q>_8<(>6n7g9D?xP_G!eT(5Ox>o;G7++%hID{ZL?=&Y6uGM@Ojg`H zp&gq%Jw+0`#A8(6Cn$gpC4&^v3+?aibT2|}NBM>;j1EDg8GU47+SM7VA^g;&eD9Sv zq!;`#YkzVSmab|^wAn^3GS^o&U@XfUDeC0S1k)QPYB2|^iK0(Cl%u%2-M*>lYuJOw zCPwn}kKv_#E3=4ttL!A8Z@Q_6n>}v3my>qDG#O0?$M*aw-fO4KFKahYG%iLlluAxg z+D0xv^T_|CrsqIVI3m|rS>X9O%4<8qHk2iWdd6B93?s$A^rj%R&dfHiXXaXPKnQT% zxvzGY^Ws)WpfZrngg2B+NG>O8`_1PE<2wn??^LQfz%S6>RPPHw_w|+d!bGmh_KU~} zwooNj#3USP{4%6$(A#XVyFmTmsoH$Eb#}wY{3}JzU2l5AZNI#t5tjr`X(esl)?|`$ zC5NN5>DsIhP@#3!vE$ipOy&W56$OrK@T%*iB`2Rzpn^TqXetQDIAE>O?rKuo*t&BY z_S{X&+R{C$C!;9d`;|Gd)UQlC;TrN~R^jr#sZ|@f(%zzd{Pd{Q3I-0rQ>9$jPU}}4 zXc?ter?f;eB4LW%R_x`6{*v-{ZF2!Em-Jml^GlVw(I(gr6*T~JOmZNYVDPDAfo zb-xtTII?NENXz_w(ZZ;L71xgRX;bHpWU|4q(bSH?&&vhwCCPHM!GwhebPyemyi#0s zon-Bo0}*{GdRfZMysjRp+^oE}=2IUAPE1^0XEDVqHv-TG*yUZ); zje5>dXj!WbI&gozE%Nq05i4vqPUYFDQ@{Up1I?^9-2OPBeWo1XsNDN=50jO9cTzWF ziR+L#X`#?Z%~A4ob|bsE?%)kIpL{v$^Ebs}S6AO4=O4K>B8=H*3$=_KW4T~Fr-5LE zJXc7_C-yXVP9_U<9sQh2Vguhszu~brb!$!n@NSMGb+>gt)fnMHR6=(3SD_G%LZPHz zwItov#FM7>$$kpHb>{|hAVYwhER<;E2zEwL7n7Wte36w{!uW-3#f3#xnPKUX$iQHE~JysJ5N49uDC z@F%fap=hb)2VCvkGom}Dc>x6UHM~I;49a%s_?{dNR5tVk)(S%9N@aGaE?3k^lzR<{ znb<2`wHYHI@of*oEJLR+25F^!ljewEybM$_f_Ha6(#ulb;&6xXmRN$hr{*8Yb|JX3 z_Fr8rU%HPwgU~pIXz{K?yH@P=@EZmY=(L=K^J9D#FBBDd7Q%VX!no@BefQUsQ!~TM zTQ||wt`H6ZJo}bMz+YRm*|KHKq}Oen26T{gPkhA;x2&>wfUG8&x}5`rtz>DBwP z?b&V2iIS5Fe=v&jc9)x}6+eHq6jNT?+q|*cEVW|I@3c<&5dA9FSa>X1Y;ONtkzhHI z(foPyY-WwB;iB0Zp#%1jnLsr_v+BLKRMPB-XoJX{oq{*5`34c?Z=@JASB+5dDSGY5 zq}8LFD4nou9@Y#!Rr|j9)~wj$K)PyN3IPqJzi_X;v9VS zt_!-R?)xPOfNJx{v^7|_SnN;HBB2&X6Nfjok@fr!pFw5=w}2!o!N@aa(%S-Em2m^{ zo*!Pj3o=|~4S|>yAp5Wlmi)-E@{|-UwUJhkyvkp?D@d^5Hhp%R5j^gWHr-H9RdAc8 z%k&uqc!l0#SQ;`>8ewz{APgH1pEx>{M%VW@Ew75nuIa9;l)ZnZ+Co`>0JcMkzNWMo zYd$bL$^ZB!<{D=bM7eT2@%6`|P{pr}?~QUXLmICrkVC~MLF|-C zyxsb@gMfl*<+oGnU6&*W*DZgPKdGH*LH)Q59+W;%%R$0tDc_Lz*=MZxd&ZAR2_BM9 zq4tErX(}0z*;;Ys%bpq3LHX!-ZtY}Jp ziLVY-zI3^Ar~gA!MNZ)WBh;E+7lO_;j9g(^(^gUS6e>RmC-pUmADvW3?fMibP2HbP zlEkPRcITf@(_(rip`YMEW?Lk-?9h{r78R1A2Jvf1pM9N)JoJTukSZ21Xryab`%$|zVUr}TyA^`H|M!JSpTMHvr3iXD#k;%Y|;@**q^UE}h_FN9SqXn$X1+`)eC zJA&zKp>`CnPA0JIviYm0XvLzBX{uHaze=U83HZCFb~hp)O3nZ`HI}aw4l(~Gifw?% zt%n{1JuV^Buh(+$8+Lf0i*Xhw^86@Oj*`!(S_Sc^Z7lJyCdo-E!q+v|o3o}!XBc`* z?HEvE=e$@N%(`Z?P5RMlwcrj?kqedZoa;Ts=>&+*g=1?BAT2KP`4H{*JW=u3v1Fa$ z&uVXAb_cHq;e_RKux93Ab%&#?O!7^rr=A9{831L`D{5>zipKJqJqVmH7G^28Usg@npm286Zm zNIK~^Sxy(MiQKo)0PgtuA;~I)u9Ar1V->JMbVF~de`I6cZoPDyt#b}fir(=G5~ zuuRFVEi$eCplkM>?4CQMK?HlzNy$u@>({w`9<+a!K!4Q|(E^+BIihdf2*?#VEG<(I z*mZrKKxnjEO<${j#5=u>ymOVhnBtyB;YJ(Jw%LT)L@@{=5KVwhdekoS(5Se!be(a8 zG*7D;DL5y2vbHF@SoV@Il&}ab?W*-lI@2J)fVB}%x*Y@PtA{jg&zG6D1=Ns1W$#Qe zLS3FvdQ05kkXa8Km#0hVdsf)La!k(YQ|%1Zl~_4i**TO$g(RjV^bl5RIkO@OS@Ml& z0zInoJ+|HN={L76xOqYVL+17H;l@dA{^(Rzx}r%BXO?Z=cof=uO>>(&PXdb?p&`5BHf;e(^^{!xQoIaU zsR&p|^yAv=-Eru^g%buUCS3YL*X70|d5(R)g#nZQ#aEQ@zoe|_A1Ouo(Ak1#j^3uJ2AwzdKV|z;ZZ=@WidHZnqm5mwh+Ij> zo?5*m>9%i}y@h))8XXmamABo>S3 z_WCV~Ey-K$lj=QjD^<98W%>OL&h%%(GSx^OC%=)C6uY&2rg*;H;Fn63Q<0Xet;p8R zhEoseyJ~1fs(u(W;2p3`9kt@zLUjYEo)OcZ8>rmKY`6b~l~4x)4DV>g-W*g-m}dKj zR3WiR{<&3ZIXO`*OetVi`oo_8~9ZxxKU2dnu3e{Zf)`Nz}lpY)dF z)R4FQNgYY#e^vT7`1?QA{Acbo;q9G=cNW`(`o~>gGyMOWX?0;-n>_S);rQ#NXhIbm z%1Q)aQqbpG`;ClS*8)6gK7Er4zUiU7p#0$`)Q$s1JQ{ZwE4dr_wM>*A#GoiemA?SZ}EqLX+4P!{kGWb zc#pa}sbk}5^(Gdb(!yJQ>lvs>^^`3upyD~dvcVxR#~3p~2AP}tOoc7h(Y0?*{Mf;; zEV=w2B?kZB5<^1fUp)+@2Ft1Ur%FLFd=Gmvcy@V16rvsd<ecMpA)}34W{KUzJrMr1(bhc+gdbE_z!sNkw zp0X6vV>j5!sq7+J#Z#sNlW^i*^q1=jhPPtfGvy!umU+Ivrph#ZG@^mqW&iKxp2GoL z`rZiob_?J`!#Cn@ohEDGl$#iftED%=aK;B>>~-f($@3V>TBTQ&e=S80hz>&gjg)2k zkf9jpYS9@@*7mGNqAIg1vDG_kH5}4*7cl2hor8p=^ya^{nBX7E^}%`fGmN)(eHt48 zdIGY4IVGeVQ`mtLFB2ij0i{`(j;>HZx?P3M6iasO@l;5mkuAO2?A{Bs?{q^n(T zkG&ObQ~lF-W?8}YrcB9Au=2xNs@xnNjgVWSv-P&kNge!S%Dts|oWu8gv>(?;qAMM& zSN^||KE%u%r7npEiq6?NtKBV*oJg#-VS43|3q?wJ49%vf@Grhl+fCUFLZqah9=t^7 zS~PSUn;MYUgaV9-{sP_X za7-`b5B7|Z@vJ0!OD8|r$e_c7cJw~IO5ZFgM9|n#HiCIT(N#+yFX5AO=_wSabh+^R zjzpi;Xhq$H;02s#fbB64UzmNQ!R?WMG;XuC;~O1f=KE7A?D2;WzmbkV{YFZBcF?CR z33(i^ZxZA5KmAAn*xN-7y6oTW#r6l6SbP*ETYR=Pma(Yi%vm94g>y*gMo-?<0P(Ir zZ*U^7_2j8-aP-pqrhOC`+WfU#sK4oF6of*+V(H=gpg*+bEtiM-4-cs8WxUdzR^PT6 z6+3&$338Jn#Ekv6$YUaVH%svg&I-IPiN&~$;7H5&-R@Jy{#vZQP1Pl#HC1ESs*&D| z-u#(A3z=l0Ll3*1;rY?mZPVNj=392t8FGcJcF15NO%ctQ#Hc8F%=PM)n$XwXHDYRg z(_HHt?R@46{=wiL%j~AFMKB!)N5{(P;#z^6k+l{{J0@q2wKn)^``ps8lHKI}+qxt? zT`Q)vh8vm`W6fn%8mVeXWC+}|BHN3U z0DJCsTYWn(TN$H2o+G?>SeLzGYox-8Zj5t z2WQuINq{xa6`swNvpi&4%jL7~9Q<{KcEf#vF~V1~S0ztX zo{+dsV4c;FxF1yQ7J`gHJs z=}d~0>OyLUZ1uLl-KARF8&OwP%WMOfJ_oaoRNgexYcctjEB+??#E_We**4CUHaYy4 zW1I+c_rs;8wv1PR;Xs@>ImJZs?5e>QXtNB0mVL_kBWRE@CAl&zAzv>wFGX}lH&&`; zrNe-*1RFMgSzsEWBZIWn(h*VVOYvt>uE)u+ov3x9J7h|=%l^7cF4>7l;S8hxg-ZYl zSf}t1BiUP#s1iNKN`~mb$;m~u=8WGVK|7XMCsB9?V=XJq*#H1x&{6C?S^Qeu?3}cN zC@%|!Yqfu=XcU|{ zs*e0qsy;IuhvHry%Bjwq&-%g@CT@f4!0#<(BfSqIe)55*JFa&yn#i<@h{sFzqjB0# zzR?lGx33cu3ijf8F$;brucqtBE>5Q`j0-PXrNGF+lQG+KUC?7#JE~dKCs$BWdWtik zJIFY0h1VI>1<44^BuJLsc@K+t`%>(i3W!1Mn)GW<#Cd= z@+YnK-cOJ`7n-I_&!>SOEaoZ=8Vz6Hol|m*kQTirC8U^$rvTd}x9=}+fX~-&-K4!N zC-$CP4EhRg=ZofO;GIpJNw8E;Td?AGTVF0<$u*&~Xz>nUfm=pj{G?vGCR_Kic$QDK z#fbdeDmqbd{*slSx`-BF9Vw`2RU0ujqA#9&yi*tPU5dRa;}k^TPPDd~VU9&4pO_<6}gM z3Q#XT6;LcmZl&|km>9SF8)=~>?p$^cvd8K=9kp@XutCWDQ81M|dl$xL%<^TS_@5j627ays44`SWE0j3XChK)unUj%#7A~i>H;%^s@^AdO zivV{}_bA@+@V!B_g+zq{)G7MSwG8mFub9rT!oYP|w-&fu12c2ZQkY5HjW=%ejI~;BT?Lqx<|&Q2lKb76b_f{7$JX#EqNW`Q?2tSe~#P3(#2Y3kasGX%o4)aXQM`Lnrj&$0O zvMnb=44nbITKP%V%QzVns++xuOwM4iZ-4p0d45`t%b@kLmGr&-2lLZDgU|M#ZB&g1 z`pG2e+VUcT$##004Dq6J;#Kstpb5^ZS#dA=%dn01od&l2$S^zu42<1K;#GzTrm`a^ zm37=kd}evR3T+0hoXWiu&}DzwT)@mcllHQSm`5q*`Ubq6x(zQ9rfseVZ+H@82Jyut zE&(rzzfLI0--%Cg4Of1IW;|{NO`lARuluR=uzksyOEdi{_%Dfyp)r)6KWV66I-jLv z-o&%jSOA3>wcD%3sQ|U(6V;1N+b=*1bphFpMLg=|3#_SlrMVOKcrPeuP3}mR>y^6X zhYn0rhfVV$(f@iWtFd6SV0bOW{l*N+&`4a0ofxF)C6>&CMVxi2Boqxm_arwTue9u5 zkR<6r$;Q0*^T(OUjvr<>f+~GuEmdn>O;xSMU%`agH{L~iK0_zoJ)InGmy0Jcwj03O z{ZO>#fpAiXQ+iqVCF1mC89w(@K<8R#e#$d|CLk#if7l;EqwH8$xSXrtT91K<=FwSq zuue8~_yio1iU2tHZS!4{yiI&N`P?TlYS9Jo)Nnyz^8)J!C z$ZV}HM%|nzukvBzJ4nRZ>ke&XQNg_zvSfcJECSSOT#Z22@YV;GZq@j9@`^{7^nUBs zpy%v4F7>mLb?rKB=FI_sIBOHl?)_I3I>mAnf`sy##(f15z+a_it1aApIt2XrNzv#v zL=Z@8N>Xvc#D%uf6lHxrvmtfD+gA*QmkkKaNM7l&os7q9;&(B+}M+T=DsEtF}Ukjm$XY8d?vT|wp)XV$X zC&|Q~iH&rV*I0N#c_bs?{NBRm*0=d0O{D-i%f{0WcM(pr(O00@Lq?JHQeMIzsMxEP zNlAzv`DcZ~U!i!%?lOX)DgiPk!l@MvC6JlOg!V9o$G|l@p^#IiG`74L&8CW3EtirK zDo-#)P2e~s&U={NbE}wa9S=AOPm)6t)#CS=$VFZkD)~ufG|!L233+`{;3G3XQfv9* zSk_Hl9^a{Vc(sfauUE8aAIaWb1hRQW14Fh!v`rg>p!&e9Y&NE4XIYfu7HGNd*?jBw z^qk&l^IfxINa}{SZW~XY(7MkG@i?nM>cU{1R?J5qZ_*8SC{EgfrWSb3)e>0?vgc-O zIJ9gaYIzGgV+3J0H$mmCI5$=BaqwnV*hy|y|2f27J`@SnQ=PnwXN~|%=s(~zV zVhPN2dnFJ-+8xDx`I%Iw>m9EeoQID4e!WzzECq?Y_G3~6CvsTe#EM9uOFLnjj_IE# zSS^HFx#~?9V4L-=f_hH&|hex=e_aGcKERzy?C4TBtGF*%z$1o8^Wl-soJWU2(p|xlWvC!+4A%c4?VTTR3y@IFQPA{G61!yNTb2Vfs& zviCABMK-(`tl3+-+GL79@=_KjwRZZZCIGN1Daou{NoF}Hs6jp}iX-o+%rIn8tv}a4 zfSZpF?LF=L=RZL!_jVi?ccP%?ZVLUc{wA7W%okqc<`ZH#bZi#zuww#YVO7yroRDAb zg~KcF7mC0qpz}8HNzmH7*U?FE{gp}Cjydx8e?s$5CJz4f=JVAe<}7|E>Son)arV6k40_DpSAG@iki4P-p$fwf$<3C5?9ihw=WHFUQ&!t;mH zqj$);T)JEM$Y27Ra){4{d7d@HV`NfWo!1BQ(eDFO&?mZaY$3xI`Ilr&<}P4Y+LNS{=5biBYJdhOBaB807qZ87Irl-vSh!$SWq_ zdzof1sFdk`VbgBo7kkm1qQkyCW0?~9;%eeG$$-*e(zJShDl06qJ~l(pEty`XU@$*P z_1EcT`EC@IqCC4RRl3Oc7;~bT_sy<&XVgg+4s6@zte&bvN}q-z`<;v4iev}vq4(ns zkTe5Y^wQ`6mwNMX_M%<4+vbFGw4$l%>PQ8Iu-|^um_8{i3Av{*s~34@*g=QcccK@WFdiHX#L zl6^_AEB;YD@!RMT@Ou~amW8WG=5>1sjS6-3!CB_F(V5sua&cQ|X4VRnAZ0sZPWr|X z+LTEA?9*tP;k}>sl3QG#cSx3wz9ii^ z#wA`+ymT**%8noHyI+Vq3V&{;z7Hx1{6K)Hi`EwQNkG$~8q2n9HP(*DLH^wQj6m03 zFwRwcE$&83Tong7=&NOoHjKM5q6c)E8q0I_wkD@mnreq61F_{$vfSV#O7W(>b^W=$S&Sd9uLg#Ee3C^O)p_t=Mp|Nh# zK{N&$pR%@Kft@l-PuxIS@c=8~(7iE0#V*y^8I;*nDgO03pLmliPZyh)J*^7U`nd)X z;9cYy1(GY1S$&9g8OBg{2-HU^o@4~W_MDo?+UiB%{h&|lvdX%=zBePeA#9t0)rM|q&yM)>tHIYrenci8@r+qG!^#IGwh82wUJ^z6O1L@_ z^r50SJKhe~HAs~v<=8R`WHh|{$U3N@=d<|6I1_1r4m8uwFtMr=lKk|lRZcaYH;mj; zVtz92C6DkR^KlS2Pw$N|zNf|Fy+=PdJ>m9-jbvbhTc(qic`a6u8d{y~bbTdROWnR7 zwslAReLs2%=E=xr2Drlk^rZz+X7ig_=r-mj3{IizQ?KaAT0QHXz`01o*?=aDC!Q4y zJ`p$X12gtshV1Z`BGB?`E%kMZlUi)uO^o%lbPRbulg@xx z(2#$wqiT)Wn0&Uuiw>H0TE?uP_bS3}LKm9jioIc^F%9<9^fK+z@ofEZ&DQFHb4?}R zvyv>8+?lLX?&g@Lmrg(OaWf#ggPFKC#KUyoHB=hp_Kb~^{J3&99uQRdxHYmm;9=kb zvo@^BfEimi%vsV4SX}nddmrRtJbN4r+I7ft1ASovg3|_UZDSZdD{qEF;B?1%%bxPD z38Z%BN)UfRnuAb&!SdH6?poenZ5 z8GSRBmD9suYni|q%@pc{}Q)kE4oYC zY7HKE0g;T{p3jjCv!)ICvXI^{-W!c=d4(HW>RSRv~t-sxk8Nir+H>Y zkJr}xjU9osduh`$sE@t_{~1NizK*%F+v*!jWH{w8u44^lH`iWw^&t=915J+)4B2(; z72t_>IcoV@!q}AdlVT?YU1?E+>$KTaY}Zk#pbT`@1Ig8!U&#*OdIW<^C4dK*dO=Z#~#`j4o(`ehvaS9cgGlh z);>sYmz%DGSXp)8!)z-MwB^NyJX!trQ#zqzR_rv{>ULZ&I}@u(%j|2=oAV9OI*3Qo zcDUYVY@qUPOK7Fgij%9np6-lO*S%rjdlSFDqte;##GGRZ(j2Pan%|Qnk%kR=QtG)h zd?N&MBC+0^WgY2r_;#Fr2=ePg=~GPy6Mab{;*l$A$ckf7Ju>iXEn#HST+kKe5XIq< zYF|?9w`8^>-h0ixFgO}UBo_d)6P#RGa~j6BX!}XiTOrIL>7i8p8wuHGDK@i; zVPol-1M!67E;6)_RgPbA_(Nj1^^FB<1qCi+kxK$u+a(|9R(WRlV*feOa$*t!)_6GK zZ)F*D0nSqmUS9gRDeKk1-8j$LgnP&2CZacpq2U2r-Cq!;5kz3Ne)r|hY{H6YB3HgQ zr>!IRMp*gC9-LBadUIw!?nT~wvdIdNN;7`xvRwb_I8qw?d|0?BYci2`yK;YIC@#J! zKKBP?cJ?j19sAeMtb!1aJ`2SfJi}~Ug%&v|bD^bZ{DRGy55ZH*6|$~t4GJP*!}S5% z!0tFmKqp}r*uXB6U5;hqAbEy<*fNhd>P1}lcu0!!a1bl6Oz$06hJtGeQw>6>2)!Yaywcg<4(ox(lv?Q}Y9f=f`~NW_7Ya`WAY9Sq5gU+m4M|BUy^3&XomZ z3?*P#ip!*1o@-uzM0&g71GL`Z!|?mb%rdl$%pqb_%7wwwHO|vd{MnOxVnMD;A9V`F z)OrSv%C#Mod;R?khVa-g3w}I0*7hv3swMT@NhKF|q_Z{K136HKU z#f%hMY1fOkcx%Q1f0wVX*6Q`dEQ1fiB-5yMUSQVF$64#?+t)4g$dy}Boitv0)EkWz zqwVlmDjMJLCtDGc*cWc)r;H|XdTlA+X6KHjl-5~C&(@c%!sa`55|i+M0Hc(ZaHH&_ zd@>A#`T2$F5oIr5qMF^J2c+jFD|xGY3B45zS}t_;te80XEDu{N3T?V~V+o_?mc z+Vx^g@z1NdZ0ifL?MV)pc}<718vS{%7@Zh6u9FR=Fz83Xx7_Z(9kWrWok+WEU*@-vt++5Z?n4c zm1f$5D^rTpWLXfSD4vsYAHDw}Z>;E5le?Rpv!^s~KSavjw_rv^Q&H@E0aMVyI-%#0 zk9Mv@6b+;wnKXXMM>&9dH5GF8g%ixE8&>-*_(9@_wOsbyK6*QLyhD6E+Gp3y1y&5V zl`Z65>gzSz=jANPXUr@(oY^9?3`f!=sw+8lmJEsWnh8j&(PdlTvBUi)o_f=y4a&np zDwfsCJ{CeXC44Tu*zBBU6tFV+D@fLO{hBv9=+{@35bEaqZApK7mEXOXiuCb@_)Mk6 zI9s9O{5YXIE#@X!9l`-3(W?J>giNKoHL)+N$HAXT=^avxP-?g@V~lXb?3Jb~C)Sw; zi92@1;g?4R%eP@lzL~?fO>49u)zd0EC}uYz4~K=MAidoDkGK5*SCIM?w8xVtk5c2R zM-I78V<7X4gt1!-eXI*BTn_I)!0Fw~A-4NcATe`>+5FvXxql>r#cGYElY2yQqXVs} z%xYjvd;En@PrCQ~9~3lWcKGVET1kO?C4m5!vd;~c<*%S^2ZHeX*o#sHhR01)X2vWL zX%(W~j5VX*2gAQySO_1VIy75{_>$7=nv4Qt*dCT$*xgKZ9p&DesD>DSaD5;T*8|RK z8^zN%Jxyz%2+y0v6EOM7Br#k=>DIM~gR@+{9Zdt+L8Sr0)DxzsH+_X;V?pGxxogfP z>;veIvkn=bp*yie#c+a^$h5Recld_T!xXdi<05&JIQo|Gc`%x~M<|`=!Z&D&mh)pj zpfGH->j>ygarHC+*w|f>_6#hGo0m>XgaN<`pQ$E)NaHl5(+6%|PSwKK>HeH=l>OOJ zslBtqd`@E8QU>SI_*Sc9GTjatDxG-VK=7+!6{i-U`44qx4XjcD66?BzGtBB}$Ryiu zq-2QGo8qQ~q)poLvUh^`H4hediZ#D%Kc1NwILRd#wGD~|T0MptRjNeZ!H}s1CA~PG zNYD{4dq zyFx}|koQ$at;#UHg>@z~_`utWSOFOr4qo8)8A2e)77`Bn?g_Rz$;5N?DXKe2h@U!X zT3E#r^A!Ye`gJ#9t!zwv1ZJGQL!iUF(tQpQ?^^kLg&XC~QmN^KD44(UZoM>SNH+{n zO{4YDzlF69ENj z*c%8*)LCKxtXWUHh?)W#-1cdDJ@_o!_eI97&So$SMg9JU`FtPqfHsNxt$5;A+&3*A{7QTDVch%3I1Qd%fWndw(3QdhLJq({@be1V8+b3*NE*WnNtRp{ODj~wOOU109Fmhngr&H`0e zUO#Q(*-$K)f*4iX^TesntHmcOF&eZFgI4R_WDgYaXqA6q^~SZ&Ew!J1l_PEvO=489 z)m=2|AP*l|t!zU7Bd7n$jlco^qs(P}?$i}qp44^U(l5aBDUkk1(gOMJC2ul$SdwDB zj)``G_MtgEiL5_iGBtS+J_xN$yF{Jsj*>+Qm2f(o zN}v5{H|BHWW#^=Y`N-x^Q4^VruUX^Hc_bkTR3-2BGh;%L`(T-O0=)a0AoW=JmY^qI zG;qro-o(};v@%w#wQ0~;UJWwwcd`ZKYy-cTBI&vaK6$h}FEXCCM?C9AC$9b|J0KL; zek~G^qp6fa_W~{Idk~{MOKe1Y7+Xx!c>+rDK;Zt>J1Rpz$xO9F=AoymjrUPvQamzO zTYF5AR073+)YYdyEq+P3%vK%jA=*5#Jko!I1fl!Tw`?TdTG>9fB}NwKjnk5p#I?$( zq)HRNrr3Y!{j@bYsZ4zi54LM=l3C+S}SzH1O6pUsip7&ICll zV0~kBVO-<4g%6zg3tYYVYX`+Bef6QE_DFQ&Ho1v{^5Co*z(68Nwe`V|NGSLURR42pLUkI^=N z+!E-~8({Q9;~t@KI4N@wO@RU2+NGer3|OV4S^F5gLn3Jnp)>~mFz@GlbNULp{iEQ7 zd`IxhW>wG{{|X!9dn6pqzi{LKn?rmAQwP7&uMF43>*Pqe@P9q+KTo(h`i*2Mbc}Mw zDRtMM+8%uEv)w<5pbK;p>o0k8_H+C<(krt0TVu<(N` zd_s~uP?I+l{-@wyI2FENcT45$kB*G5TL|YItzv++R>@fH;mb>sfr49sm#qT(t`A%7 z@Fvh@n?K-YwYMeMarMd{{rF#!GZnD1&<1~^MXMc?`7)xHH(7@HpJoz^Rn-WJ?HJ&2 zTZ^y75YXPVMx15Or+we}L=qTHqh>Bj#-dJ4%uk)R>Y51frIcc{-P)L)ied^*nE#a5 zfZCF;uhD9oy5yU63;FWmoIc*vU0uZ@>05n#!P$QAA-7TlF-Eyt#2J=2MKb z%Y4F+(@yduD`E0WDqiASD2<#IzH$o3$h+pnm>yaGFf_xwGb7uN)b@@u-qOtkEpI`S z8h>SLBE5_zN*=#4<&U#sI0z;|6WlBkRr?j9=D>9B0vnXIiF)cE$px!%6G&15>QpPq z_vT+Il~A(U&Jfyic+6zjcDMmMiz~8&Y_X@$4upwTPDhx~@uX^D*8+fQCCo-bKDlv7E z+`OcbXoiuv)-EXh+KFF54fu-GfE~C^5CuF+fs&_;l|cuYdMe6V@UT_{f^PEnqhtAd zWp=V+=X4^K^yW`J*jQUkqR~0{>-lxw2N1g^Iu1jOYF(A3i$3Du*r|}rr)-(SoeV3P z!Ep`-OIxNX&ZWeYH%rr+p7QJYDTCj%M4~T><7ss3LVHDx`e1L>a0xr!_1u?ch|?GP zWk>d;Jfg8;2cKD$y*%@uhkqUZSDf}gv!qhBaj?N^kbR-CkXlCy4UMlb#!D-U~R|XA;SGnHaX*Wy+Sj)fvEMF{E)E6UsSBSM6ltVVgBOlKC({ zqGT*mky`R?YEk+f(14q&*ELA4!v1p{WTcbQ$X?PeSe82}=O~d_aHA<6`lSS7O_Fq2 z$9DH8Rz>1CN5Vrf8BIWC+HdzkD={{`quDA;dGgSPM;45{w;?{lP`SsEa6t`@Eiev^ zbHn_QxaDM%i1q?eqz1CkweItjpUk*>OM8?eA5E^!M9P~n_q{y8zPQD5PIc}b4DlYS zR<>v%;s!BIq>Rm18u~Bny#-X9U6(Eh2}yuJ5wgf;$ur!QBci z+_fOVt$^T8fVs;$Yu@sApcQ}zo{Juq(MlxtSE#n4y!C0x|CC2U!{Lno5ZnhgP^_H&; z9^(U?&C2>|q-~wa1u%;tG^e!b^w`7Cp%!Z4+6=r9B{rj@q0euoR_msi-dJxUJz-I# zmfvps^po{5H#_SkEa`NF*@X@>Ze30?r1pY{0!qnKETCC%a?!P;u`Dxy78ddfjZEsj zS@5BNt0E+~r9D1O2H)Ltl%6{(&7mHjzo6Dj2R2KZIOHrSu3)U zRklL|Rnc-z-Mue5YP{3i##IpT;hAM%tu3`f{R))!ZRVBM=s``OGyV*k!qJXrlDG%J z05CGdym^fE%C|MuCQ%nO^;Pn9BktzhXeZsg$GVj0Ow<^(NbdP567 zp$h%v&A_Y)25E&7SE^~p>e2{xp6+A&INiutUYwqUiK!s+DI&DWaNo(E)XHr)UKz`w zQN?^8ZGc0s{s!0#3Dq6Eg_w7`c-t>l+7L_Vk&(*3xz)>MdT8AYCe7cJ=UQVCXVm}uqkhk4zGHs`ccLg+< zNodpWwPkOU$I>uUVmV?-=>hai%e2==fUbn*w()98jNMGPpXE>?ytHuU5S98Rd#npTb5t z)~8|$LA2ac6;lh%tG2B~4C@PzX;xjyIQ1i#`rMq;%-XHrmFh8e9BLQ|B`ncXhtDhM zE19(-7p8HTHP>2ZzkS$KP4vuw?bGwiAAC$3fB;2^3B=+x>u^ybD<@l_xG)LDFdH?0 zdY>sSv^_dfOKyg3$DxePl*b~X-h6;#6yrc$$F*%MczxnLY%6IqM7}zJLg9gne=rp8 zSN(rLl13&#s%qGJ!HOI(^q#RnL{n4OkVHnEz0cDJN9v;=4{D38+P3vH0IPtiwvv7} zt#i<*tLnZPBnHbi-89`oKrcW;dRc*SFlvr_Il`?e+O#7b z!0gwD7_TsNOPCSgTRSj6)Ku;#GKBn+WW0n0;4Zkrtj@-zV%rn-Y-757*3C4F{S7El zA6hgTQ-o+Sb;KWnG%H<;y|fp@sVYSuDL4G{%Q1-^?c;DJ7Ov0FJ?1H3S1>zRa#zRp zi=AV9hnRz32uII;Ar#EL$rN=s-uAz#J|0@gIoHBQn5DN5d^32)cqWe);J7)pLCQ^Y zI9$EgM5BX`9z$ggl^#8h0*ydVB3KK%;}~LSfQUCWQ~TCEaRsq2WWh?RvmD0BL7E>U ziFbc`d}xv@bCaCUh+&tIgJj_2QE_|&8}8{Kk6u21BbsHC`i zVTGgRQCfuW@k&!wQsljYRdMrjQQQ(eJVWn6Ek!>yk0IKY-EfXhi$-gFYB0K7{feCn z$#;NrCmxUJ@En@bqWxHri1aEUW#`lZn2ldk-R|{M71AQ^_Z3~6(;m;Iy%AO(Y zN3u3{0p(jzsO&=>_r>_*&~({TDejYfqsE-MFnEf>vYL}?VDGWPmoZHei@3&z0d`w6 zOjh#Tq_xcG;77Kys~GvbSuF%I=$h^l6R!xdvZmKz9#Jz?gEI>iQ&i1g4FPRxuc-DU z?mtqf?U8Y&R^i(ndm6ugCuJ-4y+Gw4ZDI`^8FO!<(;7Ig!$H_`}GrQQ=j;x zLzv2YTT?A}BsfI6z9@(3F)!@OxZlOYPdt1h94B-^GplO2fb!|y!T_VA8yzqnK;8WpE<6R$Ktn`OYp$9$m`nI+hwDaK}ta@_A;x6ns>f>(k3&B$O9?*QZj^*#p{tIEu-%SGg3n6c)0M)}g+i7K|X!j72 zQ-y`6Kspo|RZ@Q7EEYh|mCs`zQNUupRCjlQ+@?fT_arxybOaClktgrn{PY%ZV^cqH z#$u%M*-t!?iKUa3Seg&*e|$8IAJ+6*5-OhJZEuFaL@#1DB!3~iE>mXcQ)h4mCT)Op z+EC3~n+L1yrO-&|xDG+Eg)I*{SVEqw;1Bw)b3c3k9UF;ow*@yOSUYbw+Z_Pn6}Cw zQo?cH5E#d#T17B}LM0^#$(vJ86+~oHK&HQ~Jbahhw=P)FTPHP|SqVE)#a zGqm|cWMXM5!uf-@DCT_WX4K|-oNRApcJZbjG;8kz2{%xY|34V%^9BsagXQ~{W>pL5 z4yr`MQEhS|_UghmvXWcoT7(x9hG$>KBF*jQ*`2_WmQB)qQ%Unm3LR=9r7G&SmeEwP z!=}~Jj-6EiQp5+&|1k;1vIt044AA$3;RuKuaZ zA1Txbk|BTJOzr=tfT#IfFNtb$Lp%a~z(&~0gSBo5JbJ`Tg{V`Qw)o+T8kGQQ^$K4l zbucC4oV0Q>ZD~n~s{Ty7LJp6G&POKggg3GJH{k{s!-1a+p9Q#K-D8}zPA{?Ooc^!B z2T_+n#+{ROw|;-CIhFnX+Ab?=-G~2f-PiHJ8p?Xs^*(H^B4P{f;amLC?6M*Ucktb! zoc}cY$+nt&>-OU-e{Ms4=Ou2d#Pn(_+zUCoqO;^ncyt9*4s+;r=JFqYoqXHL6wW8B zfDXJUx{l4KR*iS9qmKW1ZKJCf~K*134 zNhIr(!)u0-So|OsT?UK%7nH|}e%#c73jGET25)hnZo zineq){+Lg}#hBJ)IF__eqW~7kE*QeD0wEiHhPTH|a1Hx?%Q zC=%WqG6f@})|oX69P-e^DC8Q4_KfH=@$9ILCm{7#!^H+Qhqf#A=H)iSt^}!nSfvw2 z5`Dp-d<-#w){QWUU~Qy}ziSSsSsLw!=mZl8Z%8cutC?jJVKkYzcTv^PrFm`=*dIl= z4G+5FHuCqYDo!pl6_e*1?LE$6Cy--wOC?N9N=c7%#&Abq^ty0&ET7c%86cnCB&{BQ zS|A=Hw13|pT(ukX%2CJg1g~>J{Ca80hsVq|2Ej4N%CWn$?baO`(|sj<4MM?0916_y z8TrBPd+Uq~_9rRSqRQUta&5G`6yT(`7dDmSNMz`bKYxiR;{WBv`~0vA zURg~wZG#{&!k_`{Re(l0*vI$VG+*~P;#zeSn_3lP%#ao7lx$rNE8C@*W{Vg5CcqpC z*v>8R7@}&Lk;cK`Dk7L zWmH3Ykp%?br54TrEE2(WaDpxd6GR<=?|PJSTdO#Ga7I(bp%t30sYt3Y#;`m9Sy-k|G5E{FlzUkgwd69|(M$b*Wg(SA*s-;fs4u6c5 z@GL~O@8vovRVq%ZPEucC5+=eV-v(~*S%Dstm;$BbWWQN(f%&y^?Mc(=V?|bzXsN_K zX=dL0nq=D+DngS|5R20D2e7?2cM&bIs)f`mf+L9%#X*|K$uIxNclRMy1gD?HcB z48qJy1;?d;AXl21QZC_ro0pHUZYgvtDPrTyooXS7ikfdUUk>6@Daqv82KqWg@P_gup@G{UU$XK!!Fn|s{P<&nd=)8iifpp&Lh^MWc8$$8t8 zNE6)v`s4y)R(IPh?sw!L*RH9`Ym`}BC8YetAShIbbwUrH;>80=U>iw!KcS*|!Z!@B z-Bv7>86doNOs1E#_mPWSLYa>R(2d$WxspfyN?hN3BqR;R{VCAR6s`9f`e{GL8CNio zSSiX;lsx_HWb!JRJeYj&vP3wZRp3_CIhEpF_)Issh{6n3oGF9!_ug2|1;<48w>PZ- zE|S;Hhh;daY|ouhUuSG+Nf!e+mnJg!xxmlxDH5*35$H>V4kEi?IS*T4=mQxoA@lw^ zmg}U1`G`mL&C*G1pNCLN*BtgUZhUWz6;`mf?7c~3*h=b(73R*k?vKOg#E^A-%4f91 z_*8Ik%Z6YF=_Rl{{(Yp<)EgeE)IuSN=0b*HXI*Ffs?U{f*zM@U&1qrGPb5lNxTzoH z;17{lf8ITnSeK5{L~BYBBf@u-xrsstG#gYlq0J&`1FoPX>eIzAcnngDiC1))l;%lc zP*NI&g|HWOVpGmV*dFPAN|UQPv%<7CpmpfN83v6y>BGIgN25*{+9N~Kjm)bx8Q3$f zGDk{srZ!^5E}Z!IwYFoePi>2pL|qe*E&w8hu1S@mb%QZOx=1dk6IA!fFD?}RDdqBE z>GeL4e_2Wom;XJoQu=T60B+xbVIdjeP0X@R7(eLZ@?;4#xiYXPte2;h>liA7>a8W% zsQguEo4)BNQHi^kQ#-EdVACWCi@kdm;L5-#v_M5Ksn|gtKyRB~C!Ut+E#6 zF7mun%ha)OOOX>?;?6-@wDbGyd%5JjVd-!@=&iZZx&&tLp#DG9zRUC5`Gs)x)eXz$ z7s6+Z+TYfh?xX)@odxC``+GcHW1b-VtKCJ{znOv2gVEmxgWm6+dT=z=QDA#pJfSt2 zspoh0(>Ub*g@86+t(fTLR@PKCw$RCR!`{igbEo083X~!1M29Z?LZCF(IKFG)aRI}S zG`C{l9x2ynuCIyypgE6{zhGnWTdbfok;GNV6q9njHxsDoFhMnVpJv(e z(t20}BSJcU@kJU2hyg8xrTMdOadCDn3eQ@T4&&;ZO|%a(ev<(hSBSX0CMj?W>Fu(_ z%dOXoi|Xv$dQTMVkNT}Nua|W?MqLI6HmT9K16_onxIBe3uFv@wf}#H{ylc#6*P~+c?U^fbHreo2L`9pUi}Rl6QnDqjS;{SW zY?ExcI+BSv393V*SHm<#Gzp!CYmYa-tWkhk~6}DZnr~b3}Rbp`dm3j3$r1q(^uxm;yIyU?vmS! z1qCv)hsQ#ANWvJ@on4Ayuuy>RID7s=h&_?m<<}6t(tvs9(h3hZVOvH&qPlZCVo z;ZxiP-tm3iLB5_k{;?c%?D%si`<4Hm5DQPjPiQu!ceMZ38=R~jU8G+K33{KuzF5)u zyV-hNZrio3WH#^L29&Gw**;WJq`tDwoSfj{zKhlQv9ydRDymqwD> z?K`C5>@~~Dv2}TRNV-u~!6a!!L5IbQ8s8b4qYVe>ouMU1pvZ`{d#j(sx z1n&bb>(Txx^NyvC&^{hJen<4=r`skHkd);U9c5H!{I;%i7Fdz;)W%ugK0Q^c{JjhP zE2xMYctHg(1z7y-<8XYBmG&@b(DbqtrL%+^Jfz;V*-Ihx(o02DIhG?mF8(gYBNkOosINVyt;Y_zZ2y zxuY;a z>Ze2+5OIm`iqt+d$7l1o8*_?xVxF9c+i~KtdmTP+H+eUGA{#&iZ}4hBxG%<}68~*6 z4L|VSUi#>a3_g*~jD?h2{6sGX{#bUgtKZ{q3_j>uQEwC^_g4hKKonJPHY)#x>-S&b zfx|WIs(<0SDi6=8=wDoSH>br})wmT@mtM+CJk&~yz7z8szkZ9|VtTh4f3i*TE-`N~ z4=MOKpy2-Ve(|075ZCQn3l<$zHbUR>bQGI;4T@&%%`mo8bGceoAU^FzMMVOz+1?Nq z@i|SA-*}X152ri!^yBT|oo4zp6@$J5&l0N%s>;yQ&46NBBZ^u1r zd5OD-1z@VZDUyj%{}b`s3061B$L8LDr&!?Iz!N94qLCS1s&>?NiY4x&A?bP=SSLO& z+9HRuW)WLew+fCt5a^gE#O-?#kF-3j9`J%j!|On&-oQjpz53zaf2(u{(djJ`e-LeI9V(5ZJY zx$uLYK}|HTC?;vLzqNRHp+lm3dTHCPB)K*ZUR_F+&`#C!vpF^3kA0o+Vg3`k5D6ak z+{XlzYU|qYBgm(QdPv@{h5S7-ELT{$x+t*p`>TJJF{PBsz<{ zVmN4Ae`^M!>jy_{Z>L_}Y3ZbeX}ZdCF1D4S3Qj3Z5$5-M45~ zO-+}e8&yDAZxW25ks>QI*?#)u^JU_*h=N5G=eMBesXUsH zvKT_r48MzYTvg=M_YKA&ls};6ng(Cp!&fCzsb`#36~%uc(5iKqIQVbCz9RF23h9+M zK^JtRu?_|hGQe!U{ayMdqh;wBdFn_617^EDC8yTu4E2|HGv;s)To+a#i$iQd&*+7MK1N@mQ?Gi;FLoeUV+* zYYo*GmB?b?^Gf+$DEhyD3wxfB!;LL5aj)|!k6kC56W=^A+UD#UZ# zOsoBheY1g;47IJtX{(!-pg#imipAdoysUbs#m*QM*_MuHf|m*b+je*?qof=C z(o>`nIcIc%G22givD&(UjnOTgEyZE>Tt>z6A*Org1OeKum1rIaNwY^fvMR}i8b~6u z{kzZ><+F}=N}Z%FCGV5BZ;YDM<*K^f!G0CdX$a&wkcs1*Qo60N% zK5>#6(#`G-eY`>aNxDN3{G%UB5oxcCAb@2AC2l@_?2mb>#>GF+mYZ?+AfmXswtfgg? zMM%xZL-s_1ghh|~8*L}!4fJl}D#LB|Qhfi~wZ_BX+m2ypD~cAq%dMNdaO4*we=Hfh zf0d5)mjEf`2;UJSVp z3Fl!cJ*@72*=+WlaNA&+P+M^rtra(a49|C8J#X7*gkraEos4$EUf1@^qJE56H?5wR zufW5o2v~CoK?UmJ>WX_v>Uy^-l0+w1KMrz3SvUL4*F=8E8AoiInuf4A5SAbw$22~H z4Y*7?Uq%Y&=2Zv>5<}PA>D{d53y%rdpf-w zJ{dVtwr#<{t{pr{9DM;A$sNcRm64-XQr()~ptXo)0u~L-nL>K^`Nv z&+_M|e4DlJk)t`x@bLS#BUJ<0-_~eRRRl)Fh|dNZ=ph{F_GrGPp;+qB$G z`0{<@{H)nXqt^#Pv2cXv6Zzp&Q7vZNWUnKhi{kDDx$^t$kY3zG*H+4Q2Y4ai1FQd0 zk^bjv#dTS@hvY#c{2{i#ohlEC?c;;!{N+^n?_2)o-WY2-L#y4mZXcQk+_NE&QlfIv zr3Jt%%}cf*S}EGD5r-?`$VzWbWU!OzTvk$!^+**i&Sp_)4H)fsW}-0)YHt{l_n7c5 z`uY$aHdDuk`Txu3|FAk=Pf#dgv15sagfS*5^l&6``9IT(h>1R1;4?b9=;TUd%x&{l zG}iIHjLz@yw)?rz&fVUA#)JG{3Y?|aD*C&)4IMnv$|3E$;uvx^tlSS9_xS1x|Faf^-b zr2nS3R+E1<`}3%iHtV9JQUBt|tX1OYDqd68)jy%M$ekFY$vBQ4=>{1Lv`OgZyeCM8k>XS~>xE(yX*zIv zO4-f%*z*ZB&LLyoUkEkA_h0-^4H3iHc2bQ6EI8)TE;dlm0qkZd*|X9cvDnjGIzTW; z4F`kYzf9Ibb^IG;kGQNu16I*zd^iHiLjF^Fh#LeL$x+w}t;jUzURK5rY{ZPD*L~|_ zlJ|4Cwz6NRG>I^`mVUxE`wpU=rB27IXl~=JKRKp7slA;vrz_o;sp4du&DNZ$IT{;z z{N&E(BW{X@dT!X7l9`p6GLK!hin_Xrz*2{+xcs}L+ntv=ynZM7AFK6PjE_d==&N-i zi6mGn-UEGGaR)0rW;$HJXI8jC1DpTPGDjm|i0$CeZw(8b<%1DuOZsk5Yb*QNvVbzl1mRiI{pG(n_o+zu?Y`zsZt7=)vcXH~5C8QiN_9gf2 zI%N$N4**fecSJd1908oXxiBF7K71R3qrluB^bHcopdl%0UpA1C*gQ3R5GWEmy>#R@ zf*Hg)|EUVb7qcuX$ClxeAnF@<_Gb-Wl(iX&9Hws{R>%(Y10(kiJWY5RzbCzBuVZ1b z{v$aBKib5VB$@>Mca^NJmFR*=2qI-xSL%6Wvbx`hI})amu>t6SX*!y4n<6Og8c%tf zX}x{6{36ob*@?b+IGON-LP60&H>8%Nu_9(BKqXP>D`@nhU8PPnG{_G}N0<5{7Aupy~3 zDo1uIb|(2)qmN5B68<)rsjNTL1LIiv8Em1B+6U^wiHx7WN0RnL4dYh}keB)8XQTx~ zuy-PNv)}R%qTYgaBI|#p$Ib_LX1;T62`8)shzEvRlSq@ zuu|jlfiuhsJL#wu=Rp&Xh`62}PULG=LfBf_Slfe#rL>;jJAi)Y3YklA6hf;dO8LwD64_*IgsgxyCZYOB(}Iq*cJ25v#Qs={UYdY$}t4UOc#Z zv9FWohXzuJ%nx08HYwOPLZI756~Zx`DVfi~wY>>WBO`fAg*ej46DheH+_046QZ+I1 zsE8p~s}z!gi@mh2mf_*7iTf{Tuha*{Dv{#~IA2RP$C|h(Kz*tD55j6k)ZZSk@KzZH zAx~XzX7EeLr`?_=4a@2?TY@-o@gi()_Dt9bK_sBp3%-eGo9?vR_Z}us^lIPO`(r|> z^I}+fwM0%vpD{5rFmJdC7|Tj`FJoag=ej$~axZWbG?GHuhwvqyBol)HvL^H%C4{Q~ z-g(db!C`~b1kf;-;I2udeNMVsc{;{DeHb+~kOWEIouM`Yt7e!jP{;dgdh;x8$+9i< zk5Vu&5h>If6)n_RHgJ7W-lH$*)q} zP`N9TQ@rYM*@s}aC^PZk4-;lb;bPzTBkH}rCn<+k-KFUdYJKQMuQ16d4UIG9^4f}e zjM9E)_dIBBRZXO6d7BNy-MgJ6@#9ov*MdUR`AG#pO#&O%gk?MrXOx6bxH5GCQ?*K2sBEl7^wy<(vD8!) z+0HcFsnwg?qPD?B!eP#v@x%@a(KllYEK}C+b{!T#%pFD1-ZblNzEW;%YPwxAF_gIZ?N`Jy3Q#$&-9)3GctC0L z=D6BDyDL0kK&(;A{rVoPkRr{I&BJz;K?`NMI~i#llOm-iwXRcIyU92c;SdXx&mEke`Xv<=SHWR}eVf|4l$7nL1uVfnPKzQz-kk=ZoX!mJtXOc^ zDyWDl>oFqRgi6`;$1fwt=yIwc3$PeSQCZ1jLjYg@K zf5D_o!*6GuB^U{sRAp1$OiKhZ*bP3GaT^RJ;0tQU*q{=TJvrp&T(*=Nr8_?KRgD*E ziJyF~{6?~4Ih>URrn}1Cy?h!%OlC4gMKp-?I{I}(@zN9_8=nz<8(viYCAQ1*5r}R+ zN)v)-baTcIvjq*;?p0(0>#bXDw!sSjJ}ViaMDiPb zEURvsa?H9_W(7IfIst8KyUK1p$s4rQ5UuN;Ik~vnb#>n!#n(UN5^|^SEco^;HkU>| zue|_rpQV*udo+-t1QJOZ@nEGznr`DMFqiQqZqg-|sk-+&02mPC&*~O&Q^^wsGG+_I zLP?hB&{tK$9pm#X}VViJdhvYX~qAqiZk4|{)cq`LH_o- z|8e;T`G4$4tm#~S+$fN1c{f3nOq>l{+Fy2iIxqc5w?$puEWJi18hNTD3jB;0m~F?kHe$k9}Phsx4lh$*;{qu1H(Vazu+1kMoiwNB;#%aK2DlJ(g_zi zlK3T&quHa5NML)Rt>$N6GioR19Ta99eC*IS7927N=X@>!?rmTHMDY)xto;L-bNnOf z@ttWC)aFg&A_DUFzlGZu694-$6X_NHaR;$s{re7^7EMJ21jcArh^IbI9-;-B{KFBBoPn zX-p5HUkG2$)nPxsqxTr(adCTPm_H8?J2_ZorT+Lccz9z0t@wFw6PQ)f$Ck<*Re$_Q{>GsGTNRO@ z)_te%-V&-q`Tqs$HGTmS)+`zT5~VW%n*8cW8+45&xK>w3O|5L-q2xK zyMC?FaD0kA2Ty(!*H}dky5BQr4;0(Q*dSYnI&VxFmE=Y=*?inAc1}=^R|b=LzNKf@ zK`Kp7Kg@Jc1mt2f(;nauGE!3)NRZl6hg1uRQg4bNfEjnO4+N29pif zD4=U4VMl@a3IFIsI8u62f-YKtnnZp@n*4okq((k(uQ){;Pop78!u}`l$ zG8@LJQ^RH42|tyg3K~?*VJ6LJv(0_vGO2)^j;!5a8L~w=2$4<6TP|Z}AVzq1eQ7ig3(v41+=~S1j9RypwUQ{BiG`k5 zdW2Nc>-#nnjZVK}(5>W4l&UYZBaIJ2eI|ne1}aH)*9c=V$=iY824fXqNbS9!s64lc zECywT^--&;IBPtyCBI=g)5ZA|-zt??3kuB=ozoiM2+f3X!P%xfeq8gsjYpa6uDY9BvE&y$#_!tjTX11$rTd$p4L z?5c$@n&fL}Vi2wR)&+iUT4<{Evf+rzlj4eowLROVII2WMnM7?YE%VSTe$oCa3yH+h<%11TM(KOo5c1y0Lk-vrt~SR|x~}qLUwOH3 z=m(3Jj!Le)MKMmq=_3VP8Qa=6dzPx(#M2z@TAnKsU1 zHZ(175$Si-wV``GsN?MXVL3LwTsI=gaU?Tsyu|!&v)5~+KAtUIg4r+Cvt0PXCS zM)IaDo@e`~%i0SGLDZ6VOjQ?GqaY2w$+*>51twm}>tjWCu*=>jlIvy8`?_8wJ$7oQ z*GX9_5v{>}(}Ry(ZM)~Qzof~H53x?q>K*BPm_L&i<4a5_XPE+s`p;`Ila9pu@iAKF z#>R7WlPRb=dMr1sGo&?A4+{QkoC;%Y|lf%ISHGJ)@v6gu(N0_y6`s18hrSEGNRcTD7 zq7yC`*`{<{oRF`@7p=?eCX-NqCFj@0@u$&-|HK1t&bC-^kwt&O}Vr zwm3s2-afHhA~aEZolkRS*Hsc4g)IN1&m$nyeqTbtvmJahN(}zAt1J;aDUyZjc=ZHN zCEap|Y@wn|%&Nnzr~?$DVBLsSEKwF&3jLvHyS0Ejah|YHv+5?80}kpxj!u~^I^P*B zv&e!mosL?c)pr07;tU2D07AF!!gyrTj0?SftPYg}ilC2boveLjeSI%<_#Z<5VmBRMGkz4BLAhD&>7Dn~n3*gXhYc)L}0K zI&*v8a^rl!``$)Hs2CH@J9P7!hwuSUkx#dW?m<01l1z%6m`_4f6@ppR9H-is{^Cutg zC7e2pNw^DS({AN&`luO|45(9o96JCLMLOZC=2<*8j?;CGPY$+F=Z4_<3;CMK4}?ytyqEq&1XchOC506F@&>GYnXARIfG2??F|aY zax}xcgxd1PBPHyCcdnm~0xMeQrsNKMlJ|Eh^KDB>rXz?>SQiLODp$LZ;qW$QPRLSP7=I8*|Kak zg15p*Gv`$w#=XFWMS;!bB-ltn$7iCPlP|+*n9nV&FSg^xzFyW_i0b4bh3;Gd^>^JO z4E%wO7?&U_7zPmb1#grRpJuN|84o7ZLJAPu{ z5}F{ClGTnw+a^Zb(#bYZm?g4OYm}zkw6Rnz7>$-H!AiOfqoz!|@uOOnrg{E=EFSDj zzQjv68XS(J!PmbKi1dnL1Z$1?24{wb!y~@c73c6AE=Oe*%QLJ9)E2+Y!7zp653_(7 zJ0^oEpU@g}Xhh?jrIRF0P;ozYlC=>iXrP^>)-;o^+Iu7=mu42E+&jEQ+DzoM6eHm& zK-oa8)6iAWXmU|?oc}dLFD#dqw^-=KfHWqOcDGu*h6!yrSy-wBP*cUeC($VgA}YkR zN)?9n_ydL+D&sgi9d6B{h^CZ^oYnZqjub(yHNrCG=f+JN$RO7k%XCWItAa&H?Acvf zjQYsBZn5s++rd~X3ta3hOkD199@vT7K=V(v#kU26sYRYGL>A&v+b&g~)vDebmJYLu z!M@C#i+B3PkI_<@(&-uL2xd{f1kl$t1pfhrxH;vq8WXvhB~YE@3t zp@NEmdls9JX&@3(w5=%VR!jMmqJbEgNIs}&%5{6p>)QmAvlw;lIC7}S$B0Atj~rZv zbRU-NKe_3nKQ=`abcAd(10O$-f4S)&F8_Pv|BgFI-hkoCy2`#KE)`Qc`aIEa^n=po z1a&eSop)5`S_kJ!K4%OKkss|f8Jz;(l|YpGDUvl66l$zQCX|~h{t=pCpjW3~*+BFR zuld6R8TdQ2{cssXKzS(ZA_s?NP=o4t4EzPnz_|Y9@M`p5pc%qwG9+tPuHeuNtNc@7 zI5dO84dar?PxHCSoqqvV^*H^$jQIU@th#Vq>c^&MH0hdqJfBoz_tnqP zyh|il)$#K+*QJIzr!A=bAb$#zZn^dWM9=Y-uk4_zrD3+LysXj{j-)WBXAL*4ep^>M zf&W_Dllzr;@tYwCM;|hO=?TiR-&qIlj?8D!ANZP$uvLg-4u79i6^e~5Q+xM9y|1VK zvy-r5OS#qnPPkXYmL#^(%L+V>CD4-eUdlRXjpH1=r@+fA_zU5~#yE#K&;E{8bw2af z=sg{IxLWNMK^hwo$zEw~RNSNeU?*4oH__2G!2ZB9AJQzw=RH<9{A`@dd@_Yo>q&$K zo8)~0#H5V9Oa z^N~1w-JUBq^d-(oJ|_RtojC>N(fAY2gbW=MGq*y)wE9c)`-NL+F;BPqqt58dj#VdF zg_QOCf=_w*wD0=0aSkPUJmE{%88t7T7E6F5 zyrw|62|F2X){aTn?%AL!V_Hog%&kPXa>XV#VGl^pWKcP+Cvy-mihg+9XVYn-11jZ_ zTF|qZys?>9B70~9s`ML7;cwf3zWbeN{kLsE|LRWhw{1ZGa-%);m;cAN`44nZjtH^9 zJE`Tpw1cgTJu5fs2q#rkiK4(Q60QwCz#;^jP$_LA4O>v=%{(I#Xa%%VK1qb&#Mx6` z3W-V8fdumyUxSAQg;F7FZw==KWW!Tk|&nIO8XacVxtR~NA zHl8XB#mOd;Y^OmYW!EvCII`HD8rA1awocJmW@slY@$T@;foH{P)0Ns5uho3#NYx^* z=T#th|AW2vj%upg`h~F<1f@$?dRKZEmEH{y0-*_^g(@AXD$<(?gc6F0(i`w~PAz{kK~$vWna!{kMV!GKC{Er$^%{S8l{iZKmCfO7U_?WYA}zSk}LgQz5vY zOhy5&5)EZ$oV>r+Q$+8mXy+qs{7_~m{<=VD3p!j*=xjyaAIKY3l9&PnxF|C9svok( zsJefM@9dA|Q%dj5h~c$LSpHt>n)AT$ZeooGGrQ@t5w53ZO5CcEHSE00EKO%{9d_#x z$Ngy9zBkgO*il&ml1WV=AF>$z{%75r=eLY{Z=f!A6PU3)U6MMu@;sqK|8@uLJ2L3F z)rG2#NA=iIojz%lb&H7lR$ATtq+xEB=i;*;+CzK2@`;=|dJ&muuh$#Uwn=FLvGo3m zq6i)jU2BHK11)jxN5!9PKK1|}Jp9rcbSIRr>DE$QBrtSwG3O)PJ-JEGG$mKU1RBX> zPi_pgUn+x-2B4AgEO}C&lZSR3c!biGgKQxKiVjv;ES;PY+ER-G3=1u;56N+m&kN38O|v6D0^%VV zBhv${+X{1o!Z6k1CwKhg{WhFE$9b2P{WHmT#t$9n<5Nwwbf0VfMn(;} z=&q=+cyM90w+4Rw*2na?TIzJz_+1TGnP#jeyv-H!7fvG=uM>Et#Tz$AMSCgrdi_d| zSO0DNJzlf$Thda3nJ7Mw1#^G z1n5KbE|FqGk@efL&+Es<=Dh8g%A_hvZVvdby+01;@)t-ojARqDmPM*Pk1)E{@1hwG z*KOfUkB4xF>Fv^cN?-{9Yi_W$23{h(uFPwFf(nUx#XgaGywzKM|&l~b} zv7DoG_ZYUTGF6kG2y{9sS`3})c2h5|Poh>H{M$&Q+STMxtvjyvy+4X0@GE-wnySqp81- zi9DXWkMSq(#B~^``c$Xu&iKcCjyk!lRCh;ab|7WZvrXj7B^e{1;#s*Y_MGY|;lR-U zzgSHz^A`~F@35Z#5-j?qfuH&7#|$za;xBr$oWp>o}DzDB4DcsormQo;AM5$aeXM#NiH%*IL! z7IyxN-_JP5q~Xl3X-F0tUnvV_xwGuT$SWW?;UM9MciS{E#AQ^?4|_D%>DS`EA@6(8 zGWA1b+zXvaMs`~ew+;U!S{5?xcw^;v$Zuqc+~|N;Pp4M^IE@)4E;NY=bP*pmP?dI^~6G{(R@`4e>kl_^;A-9 z*@$HQ@LqLA=^sqp#3$RN`Nj+Lqzo(VOxRxcccw?JUpc&CykTEYZmPQed9dh`(m#nV z*=*76RBF0@*5~kMKljJFbCLRjTc0A9UCt_HMFkH+ELh|$o{^DV5l;+FlTjMJ2>p=~ zBV*ma_-UE)=I$e=5K`_7?r;AN3I2_?=l)*_0)jti11CQU3Dj6wPfoR$d0?!Z8{9To zv(DBYx)$NnXUKG$>>|j0XkP8#(@93 zgoJ;O!ZnJ+@kW(HRsL(R+%T%;S`jtre*>$WB?9Q|?D7k>S9 zg5I<@aiN!IugfX@CYn9vb71ys~=qH4s{X!@s4cZ#nUDc@nbReY4VVjE97yfagqD2pBl+- zto*0Lf2j0-F>CzJ)@1p+08r8ajSJ*3&4EVKa+A7JdgHnFV+j_`-V1QXawn9b1~jGI z3~!**Vji#}3|*LQdPJ!=5`YioZp?Tb0sr zE^Le`&UR(Dw5tVzMtbkjXc#FQNxXSF&n%TVp>L`!>x}{Ni3F9;LYviPZgOCr3r|)W z)2gQQZ-b&)aKffMFf^Lw>v>mMajWz0DYh3S@9DbMKVSo;vDt#?qVi#GraTi4Z$$Dp zo;O))U)@ww23(vuduJOr!}Hl%*7%J_ z5ibJ|k5Q=sW57bM+(nfFi5hk-3Zo+`xkyM^=3wCM>2gWFW@~C?eHdN!o&2C@uNK6` z+Oiw0buyp(mB!X7IK~_hjkn6;D*|EcHrH{w&H(d$v5rO$y?xFMiv!1k@Yp)1t@pxy zSiBQ<;V9N+I{K?InyLhFfUpP2^HB+O2~B$m-d=8d(3V-%9gq9KM`!k~{F0Q4Wn=qG zPY!Lk?cQoui=JYwLC(U+k6WEGjRRG@dkj61nFGU7o4M^f6t4+ltx0MiKd`UN4Bm4) zA+b7EbzqgOBLj6cQuO#rQhpj-(^uBg4Z%dKMK z{*RIOQ}P(5Uf*$t-^eiN2B)$B&dg;+T!x(~)3Rb^^tYKr%9N%uPtJwLna7TN!dEbL z#+yitLF1rPljr8fB_(Ils^11)v<Ew6l@E@#UIptzjhyv)9vJgF0 z6*98Ve>15lO*0410{mucYnw}U;i}2r<6&RMM>R{3jjlR~u+);=?RC(4HF(?)Q)^US zT3lt>LB9z;%L@CAEJXVQJuggG#O(|hTkXcpZZ*)6X2TDbH+>Ipr;?dut4cJ~C!X9c z7PGf=vwu8@NNa`kHql1sV@a)2nW9VSvJY=a_tK4vU7|B|EvwBEd0nuJi@D~|T|)J4 zCpaeljog#@U=ap!dy-$7Pg{t^V9NJAU&ZaHb^pUJjyZN-X6hSEC!KX0m10fPQ}dVE z0emIxZo6d#F(z92958g!Wr#m)k%3J+-~rWUj)=y!9ygSC&O$ZHt~v&mZ}iPMt+o+Gtyo^(cUM-dQ6u1K#9U6F0rH9fKP8rscuuEpFOArJWPgjT$5* zvlq@IG7!tFW@OxE=JV1a5Eh59Gg(Njvcqy--fR?^vai{i!l_CN&tT_ND`xwAMhlEU zs@_QiUV-0iV} z(I%S?UN5b+Aad}XBnx!zWi#xo-oztWq3NKV*Gn(pYImjYTP9?b=<{UfPc6@ul(|hAuud77Z{3oT?5sXLHBj12Nmz}oqbxgkaOIOLSDl33%S~^jS=dSd7h>G9 z41Jk1ek^4Vh~O%@;cJ2`h+2%Wx*&~31m2vPwF#hX?B)z`ku}XtlR^kc=@xOQO32g{ z6SJtc-;b-KGAGPeAsg(!;~th@bPztbj=v$)@7vvCvzei5OZ%fvcw9HH2g*fbq-9RX z@_zSGyuEKy417}VGlKIIHZQUe7}b?Lf)c?#X9Y}O*&nGW*jMy_Y=1rKw|*p1RMYen zkwJ9YfR1W;Z=fp5L$tg{bstzI=}HXgFW_ohxXqMEyY7=6FIeJtu*nEBzGa+T(m0`# z9#Es&yXjlFeYh*rx|IQy?EUqdEE!dfwyXQr!^KJBj*Pn0S;V(D?NVG7E zIz9s^`C_5@v+?YgX!Vt9JG3`N>FA~Uf$#*+=gZu`8}J<-iBGS^UKf4~^B3A2TYf0om!zjHA$bnAs zh=$f@uIOgaYu)vxq)Ic9cV4IWyiNtwP8L;!CS@RJppeFUqwSm1Ef#bH$7YH3fQ0HQ zjv1L{#R!?ATedp-isE@;dfi)+FOsNOszTPbzR0SkT?g1Sygi~_4(DZ#?$Bw&2ns%S z-v#Z9wO-n6v_S8SY^3cWGw>LGB`(;yaMUFEh9;|jmSx%XG30oxpp#6VI?nl-GxsYl zQ;Q2LdG>G}L#hv`kF2ObHy5qJtgqg>ko=&UGB@~bK|&>W`mCT?b%ocW%@#mi;8Qvy zhqb?(q;)kgvfApG{zx#}5`y}k?Qji7RYB4}l&ie-;J^01_@k+bVI2)lv&v3xbd;tt zUCuXZcsDn@?~Q=44M~UyU2yGUD?wc@qp2)6yU8mq^~9&jFy$@v0+glE(80|yRag0W z%ahG6#tYHc(bOsCI_T}{OVops=FY_ob&n*(g=j$%c75)wHUd#7(Ki;@uRaJSfr$WxsvsN|3dz3;o{&qO@)b!;&nP~tTB)h+>_iolI z$F-SJJds`H!DH$~e6<3`)^S1z>z|(|0ag`vFy*WuMPB_NdLxuF3tzR&?e9@4^wHhe zry!hBn=wIlmg1OD+6EvXRt{~|2=&v4!W08grb9>ul|3ix=|r%1`gU8Gjfs?e_@}Hm z#P;MzmmXHr(m}ci-xM$>IW~DJDnZO6;C$bvOCK}=UTaaDT)5+r^w88NZ>C@M&P>%soA&} zGsE6;<`bA4kaNk{p3H}Coz_SIOJb_n_sM0SL~^^#Q9AX4*?S;x46bCUKDpDeZp4Vy z4dLS;9c>8BNTn+%MIMQYxgqVR3L zH;sALkv&%jZEh^GO5{<0l%BKYS=DbG^(RPm^4muti6T}Kj}}>S9D4` z+pGN}ks?XWJqcG}7dMyN`^ec2)#9{VP+QiC4ZL0ns>taT{f$f@%Zjw`x5-d-f%h{x zO?P3cG}UipdAHXa9^6ix8sP2wmi)BGPJ${q)2%D4z6O9LIM=~?Egn=fEj$w%(&VN) zD<6yPqD9cgr*NngWE4_ZVeDspR(az?wyJ=-%xTl_=!ifGfEv3kHxOvtXs9bOdRtcV zFPRBTXBu-<_b<5#XW0d#7Cxu*nH3W;pv`Kc-%h3uRg2-5;ATkl?Bw$+_ozC;<=-ewtsplV3<7?cw zY?(52a%i@aR~~3aa);q_1^nU|bmcztwSlef#{nLGR5rev4#0wYa2;{rdltPLGldy6 zzf+`=G8nl3d`dd^3&OV%hlpx9^~g_OzZf;{y|Cq>Eqlz><>L|(inXLj*IeolTjLqh zLfCmdL;H@NgPNYxdgLQ^U2a&rI5jF&@9x_4Es{bnBD#A4;J2rX`njga!w1 z6nCc!GYH*X9Zx%T>KrU)B%Q0t!4JZCf;HcA7- ztIIrFFnKX7di?}@F9Ye3)^xY=CN&hu+M(bQ*w|^p#6k$;;lEgJhX$k{BCISxJ{YZL ztYihe@4hf{rFg8|i?vSp`k_V1+|op2Px__IPZ#euBGyo~(;_kCtSFhkes=Kfp(`Ew zL3Y^XT?o(Z@cc|u$OA?Qld)vrGzPt2i!-z{0fX21PdgD>8%X)Vb+1hvW zBng-rGlTY5({|HozV%x4erza&b8ci-jJe{TIn*kpJDLH*QM5>K2(Nbb5jH?Y7F>=hBjk%(1Y2yaZZcHXP2Uv47D?& zej^)>v;JU71!Z$7lq*wpMVvvNv|n}#d^M_i`#Z)*wyAdOiHb`yARn_w@)TB^jvnxk z6qu|D&*&!C25k%>ll}1txQ4gzk|zXf45PhSNU8VykTHS+-bv|BV)f|+HODuzVyjqom-KZWlGr6{`b^S-=RnG{= z%xb>TH-rt50CgsrY{qC5B)d>|k5%MSS)HiK$rx5l1yS?si(pDGHt zde6kk2swu)q})YR?egwn?|I9fb$Jc&?xg(_V+H8i$KXSfd_RHi-|fH$=(0&oZB zY^dq!w$o8Vd--=LrQYg;G-6Um^l5z6E=QN%)k76B4ZWK3KwVj{^5KAZ(Mrw4B*%ih zGb0*}T9wsy8pC4?R?~m6Z@1wK-B=e9TNgSSCv zkp&a7x5|~dE!7&Mwlu`Db9>#p*X+z9wepz}vrGbMcZ!s{rLAz(4mtzkjNTTK4?>e@ zzYFbKkz#qdJuIUec2^u!4~51cI?GQr8FZc+_?aZ$wST!wzt5|X!N@~Q7`AXfx~wZU zA$MR|s{KsL@w-7X2APc-XGaSZf&Fh2@<^i=^74Gwd_{(Lek1!)K38oV zi>)v`+cP9K1(i#pgBBP8&%!$uuvZTd(*m~TAa|=_S!jEb{c6k}E~L76>ykuuz$YB& zry#LbKyM(`9aK>#LM#A@0D(S0M1)W4CPLVivioNQaLF*+Qg3w%-pz!`NeBkyWw zHJg3$KH!!|z{vA9rg)dxJg}Q-bBS_lEhb>rXr{&s>;^DKjOsON)^=@Z@fT)amPBnp zN3sWYu3P-T_{u?x>^%1t>h4)oS|yQ6NmJ_$mMy}-aUgiT0*x&CjjZiAvJ6x9_k527 z$!yI3zACYiLCmBLUl23OZ|DgikAS>}TFoxX52masW4M`1}?Y!wc#k-k+;!(%+0p7yOhwpz0yQn=gC5H|0x z#9{d*r?srh_SF%1Q@9@QxWg#-7t8pF|@O`WRr=5_6X%m&(dUj5yEY4DbQS- zKIus^)-!z5I2QLK50c1TVUusA{Ixg}#IcTXGh4aYnU{Q|hC@s<_w2NS^@)=UY1UfAXkC-Y_Ag(AEp&~l^2ugple!dN~O1I>i0W#-c~(`gJbor zU!$YTM;Ru*o{UCI0=vZSSe7pF!aNP!ma%|4ja(~6s}3BoJ~OW^YjbZnyiOTXR(5+} z<*NDvOV7qTV#H8d?9ZJfzS%2w?kk_J0Ob{J$c-K9NBwEJ=ldEyiB%)Ty9?XO(D`ym z6Pzr>z)kYA3bs$u)7-k&qg+fyt{qmvi>2Vja2eaGRUH@3Ea7_^-d`zXbfz&W^emM` zJd0e|kxVqnMULBdU94(cqLa3l8=z5)dr$fZ8Y2xcY|v&OW0gLo38Uy*${DMaK#da5wdr=3&tb z3Mpm;K}(o4r>ms-klLEjm$!W#LVBhX7|Ovtx?briPr*+9kor8NNqIC6bt3D4#&)d# zF!w&PqwOA0++N;8BI8w z_bW5WUC2wH`fTPY!dkimAE|y7opiZk3p0bTa0Q*hKc(J$2@s#nM@7!pxpkwEZZ0u8 z2G`M&fRRQMSE(`Y!k5mtc2j1YkdT*U`K#t=mT`Q!-2?{)5O0KM=XLHm+Xo)LC8{?Y zQ)5}N4E9_6-N0`r;Y(*9Yl&37j!TOODxLOzUkB($=nf47?Ut6j!u6(ko$xij0zx^y zq{e%rR#0&_{13Td&pE_3$EVdwOPJ8*%T{0Wg8WHoQGfGL{q^^sRn`7?0&n{_GK8^z zzGLXWxUK(-o!na}?(M?BE+i|Hm_SCZ^iMPG)_g_tG0a+!l#yBEJ)_xS>*mts=zzCF z%OzluytP1W`Ds-Si<%&_w`9swiOy-8W!d9S8x8%wdaA0EfpnFSYKt$DcrQ?JX-rh% z-j|fJZ>BG&X^2SK`H(&o`A6*PQ77MqRf9k zr~J!{@;bM@4MD_rAR>wA9aD|vXQn7-DNE2T9!}cd#7Qj}pTSx&Q!k`UN^y~D4Fq8+ zoa(Y=*c9qM@E1wmP1N>+r%;AKhQ8~H4H8ErjcH6$fRry7aFvQC$Tr;V5>c1C?Y@t% zd4AryJajJ>OV}@ws$Hb$d@71Wb1B%ESMq3@&Vp!zMH+3Xf@`mnPhV zIdTiRin(PN;IPEW`VC^KT&pVdOytrN3-*m&1<}FQ#79J0{5aXFX@587nJ*yb?1hDZ_x8W z<4?7n5@a`0<0sxGAAZj+Z-GWKqm}r#zbKl8jNTq16BC4QSWf_(KH)Dxtaut3bX7g_ z1xs0Rl?P@*s6xMc?yzu&z)YFlygdqde)a?fQ$=E5g zO<$+t(5GZKUunax<^egPy*CuF}_@QQeS zy2W#@umtO%Ek^{#td4H|@22U0(&DeGBE;^-KpQ7UpG&6P_HA{6K$?#n*Z7eA=U)S{IKSQ0-bYTWUPsYLT zzdpPdG7Ap%t+hl4Kb~Ee<|mR0aUj=W&zM@mS?X4~N4kdYnH|D^eiOlJ6p#GB)Vt}uGpfGbhKR??B(f4YYUzkJto{K|8|Pjz@d?Q5UO zE++rO?f%u%Oa8t0@CKoUnYO3gHUR66Kb(5}TnY&courh185BDd@()RsY&na4f7rxP zA}oAPWtBt!%BN$tSeYxHqz$Up45AyzcXLLwi#*kBrnGd+yun-!Uy4f=L|HghG_DcB zrGG6m!u+kqXyorTM*kXq5E&)we;MhW{&ybbHQRX{tmOqXd|Ohr48rw8bUo&T;dV@| z8u?3IewBi$(0Ma4l_RsuF6N^@R&Y)+wWlW+m+$ifU+V#5m!g_gwqMsC-F^Mdn$3XU zEw(c$x{0}0cu_sp6bGc=O5?XytD$$DDMbo4xFMZUT4z2;vc$6aY_91Vr!bSj3uWoK zvN5n!-MtqXra1o>)L&Myg&kwf>>BLSjwL%5wwlmVwAAiTt^U%T!=O)Hd;q_ zZ$362$(3Lpx_E!ro*VN7E`*t+h8%_RfSvTYczjy@%(yG&YS_^6Y#P|qTme`y@VaWYcsq))sw+s+s(>5q`8e8N!mldyG>^>ed5D)N{tjNOIKa2Nz z?i-w^YB&XWFG%8)vVEz1`Y@GiXY-=E;cPkU{oa}h)Vj$2k6<(te|KMWgqu7O8K+7& zjzC1Kb_E@D52)~EYLo()nNK%su2e$o*(NJ(-meSEH;J|39&zSovl67meIkrYmjP!wmzz<~Mxc2Y23Vo0Y9txg zik~dU-(3)TwfJn>=_BafVYr|`Mi*cjNvD_frI7YL)}(a}FSNey>cdyQNnXcfPYq`& zCu|-&P#=IsD93;e{)LpG-ts(8JWdVnS2B*2H85-i-x?^fG_MmDgQQ=IQ}fa72HEN} zs1BdZxTNPf$ajS4JWaz(EQL^iZsu2A_pPVSUJrN2%%&ogy#g*jdA%cdWjqAHG1ik_ z;^gBi#3N&t&l*?vxG$&aD>m|WsfnYbYSoa6vAbavT(3Yli^sw`B%`;mlHWOm;LiVf zLsi%?Ns36%9@Vi^#F#!&_>*tS(2Yi9CVt{rhc>qu%?EHo8KrFyqRWR}CP`~E#dUnT zZYvh=%?x6|sOM$r+?(kx9W?C1Mdn48Wr4|bcbbh)rqg^7Q$bjEedhKQ0Rv@0K|X)0Kuw6Ha?(<2L&sEY*7CqKu@h`}j0$@<3U2-A3FzV#y7z12pv$ znQHNXt(U8N6Rch!zKd$#(S{65_0s!xntY6np^ng`3SX4q7`$PVz*C@26NmL;xlR=~ z)w6M&%2m$FkW_euqc(ZR;PtSDXP3$To(*K;YwGw1lTeJ*2MFRW}A`4IB(`Wr}zNHrao?7dfZYz*l^rt=Ao5% zdACbWZL5LFGH&Nw)4Ux^lsjJ=jkyP1(WAm8zB*8o!gt}IF~rS+l!PVU{6b6pL?g3< zghqmPmna&58)+@sxFV{uNDL+R`P$BOwfQXi*MRde^w; zk{K~|>;^|}-4tK{BM*L+kxhyMpy*AOtqYpyXz6SJ~jKN)LTbch}4J;89{+OHQ z%kJcB63vp}6BlqpYd2L$GSzoutQM|lVSn|u*J9+Y4_~Usd>o4+g6#R3rl~Zuen<%^ zv)ptNS?D#e#(dT#7(Z}2920+7r5O(P;fV9{mEI>! zICm_IVtdnp{Jo+_-*o~8LvdfC&%4K_PmGsECnYW!U6S!*W3Ef-dsm=t|9L_chb7nq zR@7ZMD)H%0x6w-aL_fUIV@d|@)eiP(2-y0#;atII>YH(SgZ701LlUPwCZ2}RIX@HZ z0<%r=SkpG@O*DHZHEB#l>egIaQ@NU?9Dvhi)>C@67QEYH7wU;!N6}0&J9K`MXTPXl z9N%h-!D)tfS;|6!`59lUtI;pey;XoFEToN=boVP=Z$l}6256Q_rA(DoD@Uj@VL|G4 zaqR;07>H{hC7Ld|g>}YP#{fjgg7|sd@4qYjurIBA(&8~^{18!R@YaGyrVFIwIgO-# z|25UmO;0vfEG43;VcX4imnE_@R}3IhGMP}X^)AkI>{vWC6%vuFpdn)J!R#kBMAgsI z0vz#Et~nQagyDD5Z?&UvO{uU~+aKL5mL+s3@h2&k9R*tg0y>FW21dd+f zHtYx1Y@7R=poC@6#GI+D4srn6FXVEKaaINYrFaRwZ*ec`I27NmR`Q{>_@{KvQbP2U zT>Cw~TS%!zEva>p*&+OU&cY8`GH+N!jE+>wzhvAU8j|-MKeJrllO!JbGPrzJKyC_4&-+k2p3RRiWal)xTL-Rtsi7_z1k=t6K3u2vtDm*F!j=T!B1#@f13$5 zoZIU!*L<8NqcM5o0ObVQ_!U6C)^B^r}B^MD3vtY(Q3Sa%tR5uAPB#SVh&t z@Xm;~#>mL%?zrd?*C;tZdND^NZ;T_zP}(Acd}5*D{yScqslMxiS%u3H&A_Un+D;U&GRt@g=0^8uem4H$gjcNsr}$ z#&<_Nw!wYU>((r|s|5e*s4|_zCVPu!93(X5R1LXFAhe7uC(!6eU8cz6=TyJ$0BmoG61T6C9d{7X*#h z1R9~`V3+thAzCWy>>9j$q0_L!-FVNeWj0Cage7v-xwVo(8T%h%d>t1TDb7dvMN6bL zyqbu$TfP|eHFdM%+go;nu?*N=I<=Hrb5?>lY++hcH??pC*$2vuk64WAebjjrzC;_2 zS`oPNCV4Q|(nwz;`ztF!BppEQgO^y|$@Ynq|wY2bNk zw9a%SHlvUGNKLp?U_lRCWh=_Tp3_jUaB)Y^L$fSB;6`#z7ORNEWJf9hbkUDNz4S)! zjPs`d@w(>g0yC}HNT#m%+X?bEsyY{YhfUBZ#oAW;yqO2@N<8?>hShmqy~qN?(RsZw zba3rEM$PI*ddv#WW&xk1?Dvk>8;k@#);yO2u+QFDMbWFH`B7hG`<=64@*WAi^ZgOd zROL8vsYSa=HMutvoiezy3>smTK^}wJ>93w>cFBU^OC=JpJoD~l#9}QGdun<9PFv^$VE~EZO74_Goqs+{XQ>#zPqAdR=e?*&>-| zAjpcEE7^&g1+AAvnqSs z#!DSBPVo<{;2FLvg|oCjlZSOBRtu3jdV8rw6ilv{Uu9S@yI?+1s?srVTAL0ZiIjcN z=F@CjT@;yytxAdR_ZI)o^BX@a+mo%E;LIMtx6ik_U8eYCEs z-qo&yYygZ@X8J~MsV%PkPbokb!II>ux|re>CfdclI2y}lQcS_XOeYGvqI7Gifa{3+ zo*Sl8ps#4hZl%jy;C0rS3-&_yw<*cUkitH`A_GE|Wo{&Q_a`y*dE3z94ywz>5Em3b zml>$3oT>AB=F_9lf+_d(eE8lty_fY+@dCH&Es{4asI1qg)KG`08`e09GfsBab@TQ%==Q2u{t~8kXz<<5|Ds+WiRJ3D^Am`yT#zB`XnIIw0=$mKIb{~3SsNZdZp7^DFBKuLBMnUR z=o5=(-Y3}^oH(b+B;|MLDL5ymt>*tmW{_Q+{1J&q7bekZ%Tbl+8^u6`&1WRX^;M>v zo{U9AA(3+uW9}IDV99!knf(j{4a+{NxtQmra+kca#GR&VBB$LJmaE%6fz5j3+Elu< zp6Wt3fli$(bEoo7(z6N1a=h~+%B=WuL;~exiRFnYy|3&yIYA@W@w$s;i2fk)8cFrM ziT4%SOhkqAeBNg49W9|aY^Qp%1I>tDgPw}hAiyjETc*H$sf$U!%^=kClgQx$q4f*%^0m!XOyg^=`VATa&M;1*aEaAS*7(dNZDlsF-MCC1fTh2LPDatrV}6K4^1DPjH@x2%7kS z23EnPogb=mIW70x%v_v@;R0x`--+4pRPQlK_7!&+;}xM3x)Its#!jK>I8TDAw}9wFH?Cb^gDEkW^iD@(I` z)E(^GfvXi~iSFrQuz>2dj=n}@OiVYZvLLO_vo#*&uvV|NM>i#|Te@1Bbys>?a5T7z zgp-w?J_||K`54V5Lh0zF#>G`t^{5dQZlv0Ax2@6%aaG+({2&zV@I7WW)jkeyXy^6W zaIxC{?Y)K5D2rgfh#q86OYHGopS?MbLMhLAh3pf8V7wPOeZH)cawH8Veq!|q8(VWG1IURMRR-^kO9iZxzHQu-76V4W7@brb6*p59 z`&=`P1Rjh^fxf*?gLG9)FPw3T+IQGVLw!heCkJ|(!vHc@TmDo;oUizdN>pc%3(e<7 z$Y#Hgo284=P8k&18bvDrhZ5em^(*zcdh-qt zaB?33VW)Al*QhqtujXRPSO2W<&UT4v+Ls2t2Y2`|zmZ+j`Q{R)1@KAR8a-ADCB5FU zT%CE8`#<=fNy13e2cf5`zP^#@9`pd3&bihiCG9`5`(aXJ<_@ z(V+*7+|6cxDn5$nbpIDlRw%YUJA0|Lw~nSwGo?4tvYiYC$L8EIgrHUmKtY|VzAn8B zRoyevQZv9?(XpH^t)fE;TG}jjo>4JgtFnhuNT=ITQcW-F&7dqPYUy?LN12~-%uwIx zPlnIBUC*x{u-wR(SijDHkSHiilXR7~)<3K5vha|72XJ82mr-QYPxcP7j|(rw4#rVy z)89Vb8+ycyJStE%S+L2=Ud8|(=VG?vyGuCjVi-gLfKB9cR$3}q)DGOV0J0b(sp1Wn z?6;A{8|lRU>D;RK$RSeH>;}Hf2BG=f1DVu+?m`o&1rl#gc;D zPJbg0#7dEZiUvYk9@*)iFo$4lRQanzPkFt-I-$ol;}z;#PUGqun;QZmbDboXAAt(; z@^NTgOo~}DtS7r|3e_@ZVOWR!j0t=uv5k9#=pdd z`PV!WE^l033FD>qaJU1F{w~dYH?t#QvF09D<;k&c`xd|EI1sw*q^_b8#hNfezMN3+ zjB{LI3Kzz#gZAzMrC6oc;u#NqEwLv~9?o zmAR~Kw4m`dc&(l8!|`>y>!#Hv7`j#a4wP?kZoI6Oyy&MC35&j)sT47$4BWOA9n3L} zjUV;}ktg_P&SllaGEbG04quiY2@TyWyiX1-6f*3IyB#+uKL*LTPY z%ErTGO>v=P&UwZax__!MxXI2({ki;}?c)-=|92zx+pmv*`#Z9KBJzLivdzmsA*nS? zD=|$Vp96s9QXS_P4k)LE9g&{ZS)d9!5xWO@41%?Y@)&6Tu#z|e1_P%CwEDl^|x$1TFBn(e?GpIeE>}uUh%20t@&vSFWraikm zNP2uz!btHu^&2vdxr?$tiytk=M83EF5UGT?sxbWI3_|W9S*-u9FFQF`kOFK+k>^=X zjqZF`RsJN(Pj+7TKacoDC|m0DH6JhKmsPhr(FZjcO7J|ZQ9GXW-8?wQe5IFw&3sel ziy!Nwl-_F|{#Vv7(m6|&A)h2?g?L|(Q9t=FOVNMr0^K5Ci=^f$ z(j)2cEJ_;r$J4Iwu%pd06F_F`($2j{KmGyfFd*_DFfc|a8J^SRM=P+0t^^2wzW1V# z?u2@~YiwOYC+1Uj%9Y%sz=Migx8}|tUbnUyzQ+=*SEI7w!)m@!-)q2?obM_V=fww; z3o4;eyGA2dxE$HfOC#YlUb?{`kz>tou+4E$0q~y9A3YEPc)qe1sQVpKqQeKJkY1y0 z=x<~tX{RPG1^V=FkJA%L39L$FH$PP)6u_Zt_DU(t{DvJxr-hKCr#C-bIN11GtB7Ac zFMK0A`SG__)_?Cv_VYp|!Dq5VCv4XE<^9uVutnx2QuAQkQ1~2Re)8Nq*xod8(b$jz6U^Y{ z&bKXP!y#|9(4{qFh`m?&bndRGc`6*5G}XbbjFwG5T15p)b(Vn$sfTG(>SL~SWVXWnCtok zSD_B7s>s({bH0WST9v0{c-iYx2Xki@hH9!{{5B1(99WY}7Dj&~GZg(bU-jC- zXU}^l`;5`^IL9U3p872E+d)Y#D3Gg7On)Lo+(sy>!wU<*`vH?sg3JX!YOcykMnt;H zZXaB}k9CiO?ZmTntiu$dlMK(x)niHaEC#B2Vz0bmBu^%R zItl@&X;z!%c3eYL-v`DbaZwP%jzl}*@#5S?)H!Yf7-QJqLN|s%Ai3T6=q#b$Bem#lLL+@;V_q0&o`s)3!ez#G-w`~gfC(Z zT6MmFR3H`>cef}R@`jZ?8L8E$O;+Yb^Rig>IFlMpmbA}5it3`%tHjks7G|DYkjYztPGBMN_nM!w=l1j){EAWz($tqUyRxA9PBgZrAiW7uIhS{t!k!U(Bj%BZQu?_P=~-;W~2=j~w+@A;HXl6v$@X!=~|3YfIX# z%|{!vY?4E%W0*~49eWpQy-S|;1VRUGF5ZwzG`7KWCvT1W&LIrrlsrDuLMXS276|LZ z*zbm%`7?QZ~nk zYmDfV`vsTuXENL~)VVxvgRV@VxL%$E$J$rhBAbm@+H9IS6>+iLM#EsJ5RIx6Z$XBu zs*RjPqDl73QZ~@L9Ci$XXnppkeviwkv3ChD6=>d=f@`E9mAyPt_yx6Dsthxvg$$(J zikS24GRuSVW~{RlValB>qVWs-=eUp+uB{0rTRa`<(bjQ9?wii=a<%10)mldjKSb5#27@z zcvCor3;0zf$3O^rEuu?N?C1mJ5c%S^3Q4jz&w*ngvtrc}J0PsvFw_Eu5-TVwy59bn zo+*A<@X(+@?6_|bC_*=^IW;QkW6#sEe7sPb<|BIkMBgUx zRPCl!Er$xkeU9f1J*@BXQ+eVv95827gfo6$+Z!jOCQmW}b}1w8OE)ubs2Yj*Rv!Fh zj(>c}xXdBRL`O6AzKHgM>+NEv2j7X`>hm8wYEK-N*8r~B@}(Q^wuAQox>8`G5M>u%$S|o3F zFvHPWe(*isO+(}rDr?evQnaYVF!a){`JWCr<_Z2pH9rcg@`ZbyM%e{S}tr?t9#c+CuS%)L>qET`G8m6uI|PtbYV)cA_qFW*ls%u|!m zI##UG)qS3)!ZTr^5p~He3w7|q06Nm5T-sk2OLl*}5-S;sYfX#o)43r_Fz}S4$n+$% znTbj1eWahuft7*M1}Pb5%Vud`5~1Hx9Ozh)ibq>W1!W>;qyZ)np;^CMbdU&mXO<)pUZ0bKn8*x#>l8nvKAVW*Q}RbeWCx^qC${7uy>goy4O_4trI+K2$ty)U%|2 z3EW}ogSZL*+Bvw4KXtr5B{b5)YlZG%5S0zdi7C52Xj6XdU@@quyIkm{P@V&7AXi^A zEZa<5wOZ@P_MluH}T6I?a%+N^aPbbNpq?6F$y zQv1Xg*cv+>Nq*X2Zm|;Yl)%ULhGZ)X&eRPTx}sa?WFM!mJ}@QG*+q1TEsb`E(ZtdY zW&ezdXFE+jf9oP3Pnk0`){#mz?YJ4?fq{xeQuykFC5?4s;K)@PPo@#_TocUv+#TM4 z;h!y~uEvMj2ZzNQnCnB&cHGr^F_5x$eH$>s(k`W&_I@pz#T>GV^_i+hs4(`up(vPT_(As3D8;LVgOAx(`yX@EQo;ZUM&FKhVw+$gZYSlS~ zP-yU)F?;2DRLZ5-6&9>4_t9c#ve;5WayjbHQto%js{q{QmzernUIoAbzUrxJfVa5W zU%_9YV_D0t-Y_1tI{e%+X%ce*K z;-NLDn`v(T&eXiQvwJ+(HrnuM9u9$CJM+@G{ub9GIb3U9LX=B-YEQ^9d10mVrc(4> zJ_I)*&m+!;ru1=mGWFvOu? zeD!B6!?!RI0DztSYq#n@j52?ivOx#0yEYoWHo9t%g45DfM$Ia6r$c!YJiquXdDs@xxd~Y&;MbRZ` z2Vviw8ha!Aw;t;b+35pVwf&EPZ<=-s;>AD6x*|hbR`kRv;eIh`^`TG9b3Dq#^xxip z61a)!h!ty5uvz36W6fNMBIU#3b8H1yY8ZK7(qfsEjc2DEmGfjPEZ{Qj3nkDR6YYFs z1O@+KzNKY}MW;Ormk7}M2kV~?;OEgpOUag*Km^-LBCH1emYtxahPNS2h^sMrIp6gdl`5@&RIg`;6+sR;ubK ztD1Gb$cw*9a}l@48%D6Hdr-B(zxI+#U8*hL?mPmwr@r!~>e9pR$o!Q&{)U=UQ!5>- zA}t_<505BoPGe$&cPv_gbe|8sD#rhQqq|4N;PlSwG=u@H)M2#|XQ?=Jy9~0RhI4W^ zjqpW7i;k1)?0`2jHeC6U*x}nmydy&?IsYXW)wAX`OqmsH#IU_xIIGy9>F^EWHx~c9 z&mu6Tb6u|&h+~pVFEBmRrP{ijW@D7zbwF~$B80#hPd{}9F!YfhGxF&9F-U`F_aQ7M z((FmMiQRy0d_bdX6XRx2u>DmD-_@8Y)W_;5u=o+pQY$!@>p?J&%g1x;LGEXi18>UX%(w&!eW)^(s zv%XpS7nFbF>8~BlZ#?~P@w5%_-3GwOToA@sm-J2=SdYMQx2?a}YTisVNQ8)}MGWmr zn>DxspS)s%wGoKHPEI7cjhfewco~>3CdK=gMA+`Tdw!E6JLX?2;qsSmOSG#G41DCS z5t_I!83^8jX1}JSg67G!pPsd}wGvsao_9Gs9sk}|s?Va~2~_U8IhP=+Tg?#6dop$> zm9-l_an)0b1|kdi?jKal-jaq&?`aj2l@$un;u*3s1_P zViX{3fJoUPFk_VyO~Wy5gGoqfox<9>jo%TlI`ef~-ni6_BkJnLT46I<0neF6CwlLT zu|6G44y49m>7@;6tO+-(N^29}y$#M>F^6hK0r}tb5LF zIe_L1R(_>>#td4v$gB&wc}nHNG~}E%k9eDWxGKCM_bvVUnvVcivks2&0uz(j53bd)i4W^n9`$c-5?Q!Y>UJuD9S6k-W#z<_NTDei^d*# - -
vmm-app
axstd
axhal
axtask
axvm
axvcpu
axaddrspace
axdevice
ArceOS modules
arm-vcpu
x86-vcpu-vmx
riscv-vcpu
arm-vgic
virtio-devices
x86-vlapic
...
OS-independent crates
OS-independent modules
\ No newline at end of file diff --git a/doc/old/Boot-on-qemu.md b/doc/old/Boot-on-qemu.md deleted file mode 100644 index da6e7c89..00000000 --- a/doc/old/Boot-on-qemu.md +++ /dev/null @@ -1,48 +0,0 @@ -## Compile AxVisor - -* get deps -```bash -./tool/dev_env.py -cd crates/arceos && git checkout rk3588_jd4_qemu -cd crates/axvm && git checkout ivc -cd crates/axvcpu && git checkout ivc -cd crates/arm_vcpu && git checkout ivc_and_4lpt -cd crates/axaddrspace && git checkout 4_level_paging -cd crates/axhvc && git checkout ivc -cd crates/axdevice && git checkout ivc -cd crates/axvmconfig && git checkout ivc -``` - -* build dtb - -```bash -dtc -o configs/vms/qemu_gicv3.dtb -O dtb -I dts configs/vms/qemu_gicv3.dts -``` - -```bash -make ARCH=aarch64 PLATFORM=configs/platforms/aarch64-qemu-virt-hv.toml defconfig -make ARCH=aarch64 PLATFORM=configs/platforms/aarch64-qemu-virt-hv.toml LOG=debug VM_CONFIGS=configs/vms/linux-qemu-aarch64.toml:configs/vms/arceos-aarch64.toml GICV3=y NET=y SMP=2 run DISK_IMG=configs/vms/ubuntu-22.04-rootfs_ext4.img SECOND_SERIAL=y - -telnet localhost 4321 -``` - -## Test AxVisor IVC - -* Compile arceos ivc tester as guest VM 2 - -repo: https://github.com/arceos-hypervisor/arceos/tree/ivc_tester - -```bash -make ARCH=aarch64 A=examples/ivc_tester defconfig -make ARCH=aarch64 A=examples/ivc_tester build -# You can get `examples/ivc_tester/ivc_tester_aarch64-qemu-virt.bin`, -# whose path should be set to `kernel_path` field in `configs/vms/arceos-aarch64.toml`. -``` - -* Build and install axvisor-driver - -```bash -git clone git@github.com:arceos-hypervisor/axvisor-tools.git --branch ivc -``` - -see its [README](https://github.com/arceos-hypervisor/axvisor-tools/blob/ivc/axvisor-driver/README.md) about how to compile it and how to subscribe messages from guest ArceOS's ivc publisher. diff --git a/doc/old/Boot-on-rk3588.md b/doc/old/Boot-on-rk3588.md deleted file mode 100644 index 58507836..00000000 --- a/doc/old/Boot-on-rk3588.md +++ /dev/null @@ -1,118 +0,0 @@ -# Boot Two Linux VMs on the Firefly AIO-3588JD4 Board - -## Setup TFTP Server - -```bash -sudo apt-get install tftpd-hpa tftp-hpa -sudo chmod 777 /srv/tftp -``` - -Check if TFTP works - -```bash -echo "TFTP Server Test" > /srv/tftp/testfile.txt -tftp localhost -tftp> get testfile.txt -tftp> quit -cat testfile.txt -``` - -You should see `TFTP Server Test` on your screen. - -## Setup rootfs for VM2 - -### SATA disk - -Burn the rootfs image to an **M.2 SATA** SSD with whatever tools you prefer (e.g. dd, rufus, Balena Etcher, or even a loop mount and rsync), and install it to the back of the board. Specify the proper partition identifier (e.g. `/dev/sda1`) in the DTS bootargs. - -The kernel need built with SCSI disk, libata and AHCI platform support, or the corresponding kernel modules need to be put into the initramfs image. The default config in the Firefly SDK builds them as kernel modules but are not included in the initramfs image, hence the kernel failed to recognize the disk and mount the root partition. - -### NFS-root (optional) - -This works when directly attached storage is not available for VM2. - -Setup an NFS server: - -```bash -sudo apt install nfs-kernel-server -sudo mkdir -p /srv/nfs/firefly-rootfs -# Download rootfs image from firefly wiki, assume rootfs.img -# expand image and partition -sudo dd if=/dev/zero of=rootfs.img bs=1M count=0 seek=16384 -# ... will show which loop device the image is mounted on, assume loopX -sudo losetup -f --show rootfs.img -sudo e2fsck -f /dev/loopX && sudo resize2fs /dev/loopX -sudo losetup -D /dev/loopX -# now mount the image file to rootfs path -sudo mount -t loop rootfs.img /srv/nfs/firefly-rootfs -# Add to NFS exports -sudo cat <> /etc/exports -/srv/nfs 192.168.XXX.0/24(rw,async,no_subtree_check,fsid=0) -/srv/nfs/firefly-rootfs 192.168.XXX.0/24(rw,async,no_subtree_check,no_root_squash) -EOF -sudo exportfs -ar -``` - -Before compiling the DTS, edit the bootargs in `aio-rk3588-jd4-vm2.dts` and specify an NFS root as `root=/dev/nfs nfsroot=:` where `:` is your own NFS server IP and rootfs export path setup in the previous step. - -## Compile device tree - -```bash -dtc -o configs/vms/aio-rk3588-jd4-vm1.dtb -O dtb -I dts configs/vms/aio-rk3588-jd4-vm1.dts -dtc -o configs/vms/aio-rk3588-jd4-vm2.dtb -O dtb -I dts configs/vms/aio-rk3588-jd4-vm2.dts -``` - -## Prepare Linux kernel binary - -Prepare RK3588 SDK following manufacturer's instruction, checkout the Linux kernel repository to this branch: https://github.com/arceos-hypervisor/firefly-linux-bsp/tree/axvisor-rk3588-jd4-rt89, then build the kernel. This branch has PREEMPT_RT patches and native SCS, SATA and AHCI support, bootable on both VMs. - -Copy the kernel and ramdisk image to AxVisor directory: - -```bash -scp xxx@192.168.xxx.xxx:/home/xxx/firefly_rk3588_SDK/kernel/arch/arm64/boot/Image configs/vms/Image.bin -scp xxx@192.168.xxx.xxx:/home/xxx/firefly_rk3588_SDK/kernel/ramdisk.img configs/vms/ramdisk.img -``` - -## Compile AxVisor - -* get deps - -```bash -./tool/dev_env.py -cd crates/arceos && git checkout rk3588_jd4 -``` - -* compile - -```bash -make ARCH=aarch64 PLATFORM=configs/platforms/aarch64-rk3588j-hv.toml SMP=4 defconfig -make ARCH=aarch64 PLATFORM=configs/platforms/aarch64-rk3588j-hv.toml SMP=4 VM_CONFIGS=configs/vms/linux-rk3588-aarch64-smp-vm1.toml:configs/vms/linux-rk3588-aarch64-smp-vm2.toml LOG=debug GICV3=y upload -``` - -* copy to tftp dir (make xxx upload will copy the image to `/srv/tftp/axvisor` automatically) - -```bash -cp axvisor_aarch64-rk3588j.img /srv/tftp/axvisor -``` - -## rk3588 console - -上电,在 uboot 中 ctrl+C - -```bash -# 这是 tftp 服务器所在的主机 ip -setenv serverip 192.168.50.97 -# 这是 rk3588 所在设备的 ip (Firefly Linux 自己 DHCP 拿到的地址) -setenv ipaddr 192.168.50.8 -# 使用 tftp 加载镜像到指定内存地址并 boot -setenv serverip 192.168.50.97;setenv ipaddr 192.168.50.8;tftp 0x00480000 ${serverip}:axvisor;tftp 0x10000000 ${serverip}:rk3588_dtb.bin;bootm 0x00480000 - 0x10000000; -``` - -The VM2 will wait for several seconds before boot to allow VM1 to setup clocks of the whole SoC first. - -The VM1 output goes to the RS232 on the board (ttyS1 in Linux and serial@feb40000 in the device tree), and the VM2 output goes to the USB Type-C (ttyS2/ttyFIQ0 in Linux and serial@feb5000 in the device tree). - -## Known Issues - -* Resets of the ethernet in VM2 is not working, and reconfigure the NIC (e.g. with NetworkManager) may cause the VM2 to hang. Currently the initramfs will attempt to autoconfig the eth port when NFS-root is used. You may override the configuration with `ip=` kernel bootarg. -* Execute `reboot` in either VM would reset the whole board, which may be unexpected for the other VM. You may `shutdown` VM2 first, then do shutdown or reboot in VM1. diff --git "a/doc/Shell\346\250\241\345\235\227\344\273\213\347\273\215.md" b/doc/shell.md similarity index 100% rename from "doc/Shell\346\250\241\345\235\227\344\273\213\347\273\215.md" rename to doc/shell.md diff --git a/quick-start.sh b/quick-start.sh deleted file mode 100755 index 8496b879..00000000 --- a/quick-start.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/bash -guestos=$1 -current_path=$(pwd) -arceos_config_path="./tmp/arceos-aarch64.toml" -arceos_kernel_path="$current_path/tmp/arceos_aarch64-dyn.bin" -arceos_img_path="https://raw.githubusercontent.com/arceos-hypervisor/axvisor-guest/main/IMAGES/arceos/arceos_aarch64-dyn.bin" - -mkdir -p ./tmp -wget -O ./tmp/arceos_aarch64-dyn.bin $arceos_img_path -cp $current_path/configs/vms/arceos-aarch64.toml ./tmp -sed -i 's|^kernel_path =.*|kernel_path = $arceos_kernel_path|' "$arceos_config_path" -./axvisor.sh run --plat aarch64-generic --arceos-args "LOG=info,SMP=4" --features "ept-level-4" --vmconfigs "$arceos_config_path" -rm -rf tmp \ No newline at end of file