6 Star 7 Fork 11

Bianbu Linux/linux-6.1

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
k1-x.dtsi 69.48 KB
一键复制 编辑 原始数据 按行查看 历史
James Deng 提交于 2024-08-31 14:23 . Update for v1.0.14
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506
// SPDX-License-Identifier: (GPL-2.0 OR MIT)
/* Copyright (c) 2022 Spacemit, Inc */
/dts-v1/;
#include <dt-bindings/mmc/k1x_sdhci.h>
#include <dt-bindings/usb/k1x_ci_usb.h>
#include <dt-bindings/reset/spacemit-k1x-reset.h>
#include <dt-bindings/clock/spacemit-k1x-clock.h>
#include <dt-bindings/display/spacemit-dpu.h>
#include <dt-bindings/pmu/k1x_pmu.h>
#include <dt-bindings/dma/k1x-dmac.h>
#include <dt-bindings/thermal/thermal.h>
#include <dt-bindings/phy/phy.h>
/ {
compatible = "spacemit,k1-x";
#address-cells = <2>;
#size-cells = <2>;
aliases {
serial0 = &uart0;
serial1 = &uart2;
serial2 = &uart3;
serial3 = &uart4;
serial4 = &uart5;
serial5 = &uart6;
serial6 = &uart7;
serial7 = &uart8;
serial8 = &uart9;
serial9 = &r_uart1;
mmc0 = &sdhci0;
mmc1 = &sdhci1;
mmc2 = &sdhci2;
ethernet0 = &eth0;
ethernet1 = &eth1;
};
cpus: cpus {
#address-cells = <1>;
#size-cells = <0>;
timebase-frequency = <10000000>;
cpu_0: cpu@0 {
compatible = "riscv";
device_type = "cpu";
model = "Spacemit(R) X60";
reg = <0>;
status = "okay";
riscv,isa = "rv64imafdcv_zicsr_zifencei_zicbom_zicboz_zicbop_zihintpause_zicond_zba_zbb_zbc_zbs_svpbmt_sstc_sscofpmf";
riscv,cbom-block-size = <64>;
i-cache-block-size = <64>;
i-cache-size = <32768>;
i-cache-sets = <128>;
d-cache-block-size = <64>;
d-cache-size = <32768>;
d-cache-sets = <128>;
next-level-cache = <&clst0_l2_cache>;
mmu-type = "riscv,sv39";
cpu-idle-states = <&CPU_NONRET> /*, <&CLUSTER_NONRET>, <&TOP_NONRET> */;
#cooling-cells = <2>;
cpu0_intc: interrupt-controller {
#interrupt-cells = <1>;
compatible = "riscv,cpu-intc";
interrupt-controller;
};
};
cpu_1: cpu@1 {
device_type = "cpu";
reg = <1>;
status = "okay";
compatible = "riscv";
model = "Spacemit(R) X60";
riscv,isa = "rv64imafdcv_zicsr_zifencei_zicbom_zicboz_zicbop_zihintpause_zicond_zba_zbb_zbc_zbs_svpbmt_sstc_sscofpmf";
riscv,cbom-block-size = <64>;
i-cache-block-size = <64>;
i-cache-size = <32768>;
i-cache-sets = <128>;
d-cache-block-size = <64>;
d-cache-size = <32768>;
d-cache-sets = <128>;
next-level-cache = <&clst0_l2_cache>;
mmu-type = "riscv,sv39";
cpu-idle-states = <&CPU_NONRET> /*, <&CLUSTER_NONRET>, <&TOP_NONRET> */;
#cooling-cells = <2>;
cpu1_intc: interrupt-controller {
#interrupt-cells = <1>;
compatible = "riscv,cpu-intc";
interrupt-controller;
};
};
cpu_2: cpu@2 {
device_type = "cpu";
reg = <2>;
status = "okay";
compatible = "riscv";
model = "Spacemit(R) X60";
riscv,isa = "rv64imafdcv_zicsr_zifencei_zicbom_zicboz_zicbop_zihintpause_zicond_zba_zbb_zbc_zbs_svpbmt_sstc_sscofpmf";
riscv,cbom-block-size = <64>;
i-cache-block-size = <64>;
i-cache-size = <32768>;
i-cache-sets = <128>;
d-cache-block-size = <64>;
d-cache-size = <32768>;
d-cache-sets = <128>;
next-level-cache = <&clst0_l2_cache>;
mmu-type = "riscv,sv39";
cpu-idle-states = <&CPU_NONRET> /*, <&CLUSTER_NONRET>, <&TOP_NONRET> */;
#cooling-cells = <2>;
cpu2_intc: interrupt-controller {
#interrupt-cells = <1>;
compatible = "riscv,cpu-intc";
interrupt-controller;
};
};
cpu_3: cpu@3 {
device_type = "cpu";
reg = <3>;
status = "okay";
compatible = "riscv";
model = "Spacemit(R) X60";
riscv,isa = "rv64imafdcv_zicsr_zifencei_zicbom_zicboz_zicbop_zihintpause_zicond_zba_zbb_zbc_zbs_svpbmt_sstc_sscofpmf";
riscv,cbom-block-size = <64>;
i-cache-block-size = <64>;
i-cache-size = <32768>;
i-cache-sets = <128>;
d-cache-block-size = <64>;
d-cache-size = <32768>;
d-cache-sets = <128>;
next-level-cache = <&clst0_l2_cache>;
mmu-type = "riscv,sv39";
cpu-idle-states = <&CPU_NONRET> /*, <&CLUSTER_NONRET>, <&TOP_NONRET> */;
#cooling-cells = <2>;
cpu3_intc: interrupt-controller {
#interrupt-cells = <1>;
compatible = "riscv,cpu-intc";
interrupt-controller;
};
};
cpu_4: cpu@4 {
device_type = "cpu";
reg = <4>;
status = "okay";
compatible = "riscv";
model = "Spacemit(R) X60";
riscv,isa = "rv64imafdcv_zicsr_zifencei_zicbom_zicboz_zicbop_zihintpause_zicond_zba_zbb_zbc_zbs_svpbmt_sstc_sscofpmf";
riscv,cbom-block-size = <64>;
i-cache-block-size = <64>;
i-cache-size = <32768>;
i-cache-sets = <128>;
d-cache-block-size = <64>;
d-cache-size = <32768>;
d-cache-sets = <128>;
next-level-cache = <&clst1_l2_cache>;
mmu-type = "riscv,sv39";
cpu-idle-states = <&CPU_NONRET> /*, <&CLUSTER_NONRET>, <&TOP_NONRET> */;
#cooling-cells = <2>;
cpu4_intc: interrupt-controller {
#interrupt-cells = <1>;
compatible = "riscv,cpu-intc";
interrupt-controller;
};
};
cpu_5: cpu@5 {
device_type = "cpu";
reg = <5>;
status = "okay";
compatible = "riscv";
model = "Spacemit(R) X60";
riscv,isa = "rv64imafdcv_zicsr_zifencei_zicbom_zicboz_zicbop_zihintpause_zicond_zba_zbb_zbc_zbs_svpbmt_sstc_sscofpmf";
riscv,cbom-block-size = <64>;
i-cache-block-size = <64>;
i-cache-size = <32768>;
i-cache-sets = <128>;
d-cache-block-size = <64>;
d-cache-size = <32768>;
d-cache-sets = <128>;
next-level-cache = <&clst1_l2_cache>;
mmu-type = "riscv,sv39";
cpu-idle-states = <&CPU_NONRET> /*, <&CLUSTER_NONRET>, <&TOP_NONRET> */;
#cooling-cells = <2>;
cpu5_intc: interrupt-controller {
#interrupt-cells = <1>;
compatible = "riscv,cpu-intc";
interrupt-controller;
};
};
cpu_6: cpu@6 {
device_type = "cpu";
reg = <6>;
status = "okay";
compatible = "riscv";
model = "Spacemit(R) X60";
riscv,isa = "rv64imafdcv_zicsr_zifencei_zicbom_zicboz_zicbop_zihintpause_zicond_zba_zbb_zbc_zbs_svpbmt_sstc_sscofpmf";
riscv,cbom-block-size = <64>;
i-cache-block-size = <64>;
i-cache-size = <32768>;
i-cache-sets = <128>;
d-cache-block-size = <64>;
d-cache-size = <32768>;
d-cache-sets = <128>;
next-level-cache = <&clst1_l2_cache>;
mmu-type = "riscv,sv39";
cpu-idle-states = <&CPU_NONRET> /*, <&CLUSTER_NONRET>, <&TOP_NONRET> */;
#cooling-cells = <2>;
cpu6_intc: interrupt-controller {
#interrupt-cells = <1>;
compatible = "riscv,cpu-intc";
interrupt-controller;
};
};
cpu_7: cpu@7 {
device_type = "cpu";
reg = <7>;
status = "okay";
compatible = "riscv";
model = "Spacemit(R) X60";
riscv,isa = "rv64imafdcv_zicsr_zifencei_zicbom_zicboz_zicbop_zihintpause_zicond_zba_zbb_zbc_zbs_svpbmt_sstc_sscofpmf";
riscv,cbom-block-size = <64>;
i-cache-block-size = <64>;
i-cache-size = <32768>;
i-cache-sets = <128>;
d-cache-block-size = <64>;
d-cache-size = <32768>;
d-cache-sets = <128>;
next-level-cache = <&clst1_l2_cache>;
mmu-type = "riscv,sv39";
cpu-idle-states = <&CPU_NONRET> /*, <&CLUSTER_NONRET>, <&TOP_NONRET> */;
#cooling-cells = <2>;
cpu7_intc: interrupt-controller {
#interrupt-cells = <1>;
compatible = "riscv,cpu-intc";
interrupt-controller;
};
};
clst0_l2_cache: l2-cache0 {
compatible = "cache";
cache-block-size = <64>;
cache-level = <2>;
cache-size = <524288>;
cache-sets = <512>;
cache-unified;
};
clst1_l2_cache: l2-cache1 {
compatible = "cache";
cache-block-size = <64>;
cache-level = <2>;
cache-size = <524288>;
cache-sets = <512>;
cache-unified;
};
idle-states {
CPU_NONRET: cpu-nonret {
compatible = "riscv,idle-state";
idle-state-name = "riscv,cpu-nonret";
riscv,sbi-suspend-param = <0x90000000>;
local-timer-stop;
entry-latency-us = <200>;
exit-latency-us = <500>;
min-residency-us = <950>;
};
CLUSTER_NONRET: cluster-nonret {
compatible = "riscv,idle-state";
idle-state-name = "riscv,cluster-nonret";
riscv,sbi-suspend-param = <0x91000000>;
local-timer-stop;
entry-latency-us = <600>;
exit-latency-us = <1100>;
min-residency-us = <2700>;
wakeup-latency-us = <1500>;
};
TOP_NONRET: top-nonret {
compatible = "riscv,idle-state";
idle-state-name = "riscv,top-nonret";
riscv,sbi-suspend-param = <0x92000000>;
local-timer-stop;
entry-latency-us = <700>;
exit-latency-us = <1200>;
min-residency-us = <2800>;
wakeup-latency-us = <1600>;
};
};
};
clocks {
#address-cells = <0x2>;
#size-cells = <0x2>;
ranges;
vctcxo_24: clock-vctcxo_24 {
#clock-cells = <0>;
compatible = "fixed-clock";
clock-frequency = <24000000>;
clock-output-names = "vctcxo_24";
};
vctcxo_3: clock-vctcxo_3 {
#clock-cells = <0>;
compatible = "fixed-clock";
clock-frequency = <3000000>;
clock-output-names = "vctcxo_3";
};
vctcxo_1: clock-vctcxo_1 {
#clock-cells = <0>;
compatible = "fixed-clock";
clock-frequency = <1000000>;
clock-output-names = "vctcxo_1";
};
pll1_2457p6_vco: clock-pll1_2457p6_vco {
#clock-cells = <0>;
compatible = "fixed-clock";
clock-frequency = <2457600000>;
clock-output-names = "pll1_2457p6_vco";
};
clk_32k: clock-clk32k {
#clock-cells = <0>;
compatible = "fixed-clock";
clock-frequency = <32000>;
clock-output-names = "clk_32k";
};
pll_clk_cluster0: clock-pll_clk_cluster0 {
#clock-cells = <0>;
compatible = "fixed-clock";
clock-frequency = <10000000>;
clock-output-names = "pll_clk_cluster0";
};
pll_clk_cluster1: clock-pll_clk_cluster1 {
#clock-cells = <0>;
compatible = "fixed-clock";
clock-frequency = <10000000>;
clock-output-names = "pll_clk_cluster1";
};
};
reserved-memory {
#address-cells = <2>;
#size-cells = <2>;
ranges;
area_reserved@80000000 {
/* dram area is 0~2GB, and 4GB~, the 2GB~4GB is io area */
reg = <0x0 0x80000000 0x0 0x40800000>;
no-map;
};
/* sram area, used for rcpu code & data & heap space */
rcpu_mem_0: mem@c0800000 {
reg = <0x0 0xc0800000 0x0 0x40000>;
da_base = <0x0>;
no-map;
};
area_reserved@c0840000 {
/* dram area is 0~2GB, and 4GB~, the 2GB~4GB is io area */
reg = <0x0 0xc0840000 0x0 0x3f7c0000>;
no-map;
};
/* rcpu's heap */
rcpu_mem_1: mem@30000000 {
reg = <0x0 0x30000000 0x0 0x200000>;
no-map;
};
/* vring0 */
vdev0vring0: vdev0vring0@30200000 {
reg = <0x0 0x30200000 0x0 0x3000>;
no-map;
};
/* vring1 */
vdev0vring1: vdev0vring1@30203000 {
reg = <0x0 0x30203000 0x0 0x3000>;
no-map;
};
/* share memory buffer */
vdev0buffer: vdev0buffer@30206000 {
compatible = "shared-dma-pool";
reg = <0x0 0x30206000 0x0 0xf6000>;
no-map;
};
/* the resource table */
rsc_table: rsc_table@302fc000 {
reg = <0x0 0x302fc000 0x0 0x4000>;
no-map;
};
/* memory snapshots of rcpu when rcpu poweroff */
rcpu_mem_snapshots: rcpu_mem_snapshots@30300000 {
reg = <0x0 0x30300000 0x0 0x40000>;
no-map;
};
};
soc: soc {
compatible = "simple-bus";
#address-cells = <2>;
#size-cells = <2>;
ranges;
/* dram mapping for usb/sdh for ex. */
dram_range0: dram_range@0 {
compatible = "spacemit-dram-bus";
#address-cells = <2>;
#size-cells = <2>;
dma-ranges = <0x0 0x00000000 0x0 0x00000000 0x0 0x80000000>;
#interconnect-cells = <0>;
status = "okay";
};
/* dram mapping for vpu/gpu/dpu for ex. */
dram_range1: dram_range@1 {
compatible = "spacemit-dram-bus";
#address-cells = <2>;
#size-cells = <2>;
dma-ranges = <0x0 0x00000000 0x0 0x00000000 0x0 0x80000000>,
<0x0 0x80000000 0x1 0x00000000 0x3 0x80000000>;
#interconnect-cells = <0>;
status = "okay";
};
/* dram mapping for pcie for ex. */
dram_range2: dram_range@2 {
compatible = "spacemit-dram-bus";
#address-cells = <2>;
#size-cells = <2>;
dma-ranges = <0x0 0x00000000 0x0 0x00000000 0x0 0x80000000>,
<0x0 0xb8000000 0x1 0x38000000 0x3 0x48000000>;
#interconnect-cells = <0>;
status = "okay";
};
/* dram mapping for v2d/isp/csi/vi/cpp for ex. */
dram_range3: dram_range@3 {
compatible = "spacemit-dram-bus";
#address-cells = <2>;
#size-cells = <2>;
dma-ranges = <0x0 0x00000000 0x0 0x00000000 0x0 0x80000000>,
<0x0 0x80000000 0x1 0x00000000 0x1 0x80000000>;
#interconnect-cells = <0>;
status = "okay";
};
/* dram mapping for dma&users for ex. */
dram_range4: dram_range@4 {
compatible = "spacemit-dram-bus";
#address-cells = <2>;
#size-cells = <2>;
dma-ranges = <0x0 0x00000000 0x0 0x00000000 0x0 0x80000000>,
<0x1 0x00000000 0x1 0x80000000 0x3 0x00000000>;
#interconnect-cells = <0>;
status = "okay";
};
/* dram mapping for eth/crypto/jpu for ex. */
dram_range5: dram_range@5 {
compatible = "spacemit-dram-bus";
#address-cells = <2>;
#size-cells = <2>;
dma-ranges = <0x0 0x00000000 0x0 0x00000000 0x0 0x80000000>,
<0x0 0x80000000 0x1 0x00000000 0x0 0x80000000>;
#interconnect-cells = <0>;
status = "okay";
};
clint0: clint@e4000000 {
compatible = "riscv,clint0";
interrupts-extended = <
&cpu0_intc 3 &cpu0_intc 7
&cpu1_intc 3 &cpu1_intc 7
&cpu2_intc 3 &cpu2_intc 7
&cpu3_intc 3 &cpu3_intc 7
&cpu4_intc 3 &cpu4_intc 7
&cpu5_intc 3 &cpu5_intc 7
&cpu6_intc 3 &cpu6_intc 7
&cpu7_intc 3 &cpu7_intc 7
>;
reg = <0x0 0xE4000000 0x0 0x00010000>;
};
ccu: clock-controller@d4050000 {
compatible = "spacemit,k1x-clock";
reg = <0x0 0xd4050000 0x0 0x209c>,
<0x0 0xd4282800 0x0 0x400>,
<0x0 0xd4015000 0x0 0x1000>,
<0x0 0xd4090000 0x0 0x1000>,
<0x0 0xd4282c00 0x0 0x400>,
<0x0 0xd8440000 0x0 0x98>,
<0x0 0xc0000000 0x0 0x4280>,
<0x0 0xf0610000 0x0 0x20>,
<0x0 0xc0880000 0x0 0x2050>,
<0x0 0xc0888000 0x0 0x30>;
reg-names = "mpmu", "apmu", "apbc", "apbs", "ciu", "dciu", "ddrc", "apbc2", "rcpu", "rcpu2";
clocks = <&vctcxo_24>, <&vctcxo_3>, <&vctcxo_1>, <&pll1_2457p6_vco>,
<&clk_32k>;
clock-names = "vctcxo_24", "vctcxo_3", "vctcxo_1", "pll1_2457p6_vco",
"clk_32k";
#clock-cells = <1>;
status = "okay";
};
reset: reset-controller@d4050000 {
compatible = "spacemit,k1x-reset";
reg = <0x0 0xd4050000 0x0 0x209c>,
<0x0 0xd4282800 0x0 0x400>,
<0x0 0xd4015000 0x0 0x1000>,
<0x0 0xd4090000 0x0 0x1000>,
<0x0 0xd4282c00 0x0 0x400>,
<0x0 0xd8440000 0x0 0x98>,
<0x0 0xc0000000 0x0 0x4280>,
<0x0 0xf0610000 0x0 0x20>,
<0x0 0xc0880000 0x0 0x2050>,
<0x0 0xc0888000 0x0 0x30>;
reg-names = "mpmu", "apmu", "apbc", "apbs", "ciu", "dciu", "ddrc", "apbc2", "rcpu", "rcpu2";
#reset-cells = <1>;
status = "okay";
};
intc: interrupt-controller@e0000000 {
#interrupt-cells = <1>;
compatible = "riscv,plic0";
interrupt-controller;
interrupts-extended = <
&cpu0_intc 11 &cpu0_intc 9
&cpu1_intc 11 &cpu1_intc 9
&cpu2_intc 11 &cpu2_intc 9
&cpu3_intc 11 &cpu3_intc 9
&cpu4_intc 11 &cpu4_intc 9
&cpu5_intc 11 &cpu5_intc 9
&cpu6_intc 11 &cpu6_intc 9
&cpu7_intc 11 &cpu7_intc 9
>;
reg = <0x0 0xE0000000 0x0 0x04000000>;
reg-names = "control";
riscv,max-priority = <7>;
riscv,ndev = <159>;
};
pinctrl: pinctrl@d401e000 {
compatible = "pinconf-single-aib";
reg = <0x0 0xd401e000 0x0 0x250>,
<0x0 0xd4019800 0x0 0x10>;
#address-cells = <1>;
#size-cells = <1>;
#pinctrl-cells = <2>;
#gpio-range-cells = <3>;
pinctrl-single,register-width = <32>;
pinctrl-single,function-mask = <0xff77>;
clocks = <&ccu CLK_AIB>;
clock-names = "clk_aib";
resets = <&reset RESET_AIB>;
reset-names = "aib_rst";
interrupt-parent = <&intc>;
interrupts = <60>;
interrupt-controller;
#interrupt-cells = <1>;
range: gpio-range {
#pinctrl-single,gpio-range-cells = <3>;
};
};
pmu: power-management@0 {
compatible = "simple-bus";
#address-cells = <2>;
#size-cells = <2>;
ranges;
mpmu: mpmu@1 {
compatible = "simple-mfd", "spacemit,spacemit-mpmu", "syscon";
reg = <0x0 0xd4050000 0x0 0x3004>;
};
apmu: apmu@2 {
compatible = "simple-mfd", "spacemit,spacemit-apmu", "syscon";
reg = <0x0 0xd4282800 0x0 0x400>;
};
power: power-controller {
compatible = "spacemit,power-controller";
#power-domain-cells = <1>;
#address-cells = <1>;
#size-cells = <0>;
domains = <0x9>;
power-domain@SPT_PD_BUS {
reg = <0x0>;
pm_qos = <0x7>;
#power-domain-cells = <0>;
};
power-domain@SPT_PD_VPU {
reg = <0x1>;
pm_qos = <12>;
reg_pwr_ctrl = <0xa8>;
bit_sleep2 = <3>;
bit_sleep1 = <2>;
bit_isolation = <1>;
bit_pwr_stat = <1>;
bit_hw_pwr_stat = <9>;
#power-domain-cells = <0>;
};
power-domain@SPT_PD_GPU {
reg = <0x2>;
pm_qos = <12>;
reg_pwr_ctrl = <0xd0>;
bit_sleep2 = <3>;
bit_sleep1 = <2>;
bit_isolation = <1>;
bit_pwr_stat = <0>;
#power-domain-cells = <0>;
};
power-domain@SPT_PD_LCD {
reg = <0x3>;
pm_qos = <12>;
reg_pwr_ctrl = <0x380>;
bit_hw_mode = <4>;
bit_sleep2 = <3>;
bit_sleep1 = <2>;
bit_isolation = <1>;
bit_auto_pwr_on = <0>;
bit_pwr_stat = <4>;
bit_hw_pwr_stat = <12>;
use_hw = <1>;
#power-domain-cells = <0>;
};
power-domain@SPT_PD_ISP {
reg = <0x4>;
pm_qos = <12>;
reg_pwr_ctrl = <0x37c>;
bit_hw_mode = <4>;
bit_sleep2 = <3>;
bit_sleep1 = <2>;
bit_isolation = <1>;
bit_auto_pwr_on = <0>;
bit_pwr_stat = <2>;
bit_hw_pwr_stat = <10>;
#power-domain-cells = <0>;
};
power-domain@SPT_PD_AUDIO {
reg = <0x5>;
pm_qos = <15>;
reg_pwr_ctrl = <0x378>;
bit_hw_mode = <4>;
bit_sleep2 = <3>;
bit_sleep1 = <2>;
bit_isolation = <1>;
bit_auto_pwr_on = <0>;
bit_pwr_stat = <3>;
bit_hw_pwr_stat = <11>;
use_hw = <1>;
#power-domain-cells = <0>;
};
power-domain@SPT_PD_GNSS {
reg = <0x6>;
pm_qos = <15>;
reg_pwr_ctrl = <0x13c>;
bit_hw_mode = <4>;
bit_sleep2 = <3>;
bit_sleep1 = <2>;
bit_isolation = <1>;
bit_auto_pwr_on = <0>;
bit_pwr_stat = <6>;
bit_hw_pwr_stat = <14>;
#power-domain-cells = <0>;
};
power-domain@SPT_PD_HDMI {
reg = <0x7>;
pm_qos = <12>;
reg_pwr_ctrl = <0x3f4>;
bit_hw_mode = <4>;
bit_sleep2 = <3>;
bit_sleep1 = <2>;
bit_isolation = <1>;
bit_auto_pwr_on = <0>;
bit_pwr_stat = <7>;
bit_hw_pwr_stat = <15>;
use_hw = <1>;
#power-domain-cells = <0>;
};
power-domain@SPT_PD_DUMMY {
reg = <0x8>;
pm_qos = <15>;
#power-domain-cells = <0>;
};
};
};
uart0: serial@d4017000 {
compatible = "spacemit,pxa-uart";
reg = <0x0 0xd4017000 0x0 0x100>;
interrupt-parent = <&intc>;
interrupts = <42>;
clocks = <&ccu CLK_UART1>, <&ccu CLK_SLOW_UART>;
clock-names = "func", "gate";
clk-fpga = <14750000>;
resets = <&reset RESET_UART1>;
power-domains = <&power K1X_PMU_BUS_PWR_DOMAIN>;
clk,pm-runtime,no-sleep;
cpuidle,pm-runtime,sleep;
dmas = <&pdma0 DMA_UART0_RX 1
&pdma0 DMA_UART0_TX 1>;
dma-names = "rx", "tx";
interconnects = <&dram_range4>;
interconnect-names = "dma-mem";
reg-shift = <2>;
reg-io-width = <4>;
status = "ok";
};
r_uart1: r_uart1@c088d000 {
compatible = "spacemit,rcpu-pxa-uart";
reg = <0x0 0xc088d000 0x0 0x100>;
clocks = <&ccu CLK_RCPU_UART1>, <&ccu CLK_SLOW_UART>;
clock-names = "func", "gate";
resets = <&reset RESET_RCPU_UART1>;
power-domains = <&power K1X_PMU_BUS_PWR_DOMAIN>;
clk,pm-runtime,no-sleep;
cpuidle,pm-runtime,sleep;
rcpu-uart;
interconnects = <&dram_range4>;
interconnect-names = "dma-mem";
reg-shift = <2>;
reg-io-width = <4>;
status = "ok";
};
uart2: uart@d4017100 {
compatible = "spacemit,pxa-uart";
reg = <0x0 0xd4017100 0x0 0x100>;
interrupt-parent = <&intc>;
interrupts = <44>;
clocks = <&ccu CLK_UART2>, <&ccu CLK_SLOW_UART>;
clock-names = "func", "gate";
clk-fpga = <14750000>;
resets = <&reset RESET_UART2>;
power-domains = <&power K1X_PMU_BUS_PWR_DOMAIN>;
clk,pm-runtime,no-sleep;
cpuidle,pm-runtime,sleep;
interconnects = <&dram_range4>;
interconnect-names = "dma-mem";
status = "disabled";
};
uart3: uart@d4017200 {
compatible = "spacemit,pxa-uart";
reg = <0x0 0xd4017200 0x0 0x100>;
interrupt-parent = <&intc>;
interrupts = <45>;
clocks = <&ccu CLK_UART3>, <&ccu CLK_SLOW_UART>;
clock-names = "func", "gate";
clk-fpga = <14750000>;
resets = <&reset RESET_UART3>;
power-domains = <&power K1X_PMU_BUS_PWR_DOMAIN>;
clk,pm-runtime,no-sleep;
cpuidle,pm-runtime,sleep;
interconnects = <&dram_range4>;
interconnect-names = "dma-mem";
status = "disabled";
};
uart4: uart@d4017300 {
compatible = "spacemit,pxa-uart";
interrupt-parent = <&intc>;
reg = <0x0 0xd4017300 0x0 0x100>;
interrupts = <46>;
clocks = <&ccu CLK_UART4>, <&ccu CLK_SLOW_UART>;
clock-names = "func", "gate";
clk-fpga = <14750000>;
resets = <&reset RESET_UART4>;
power-domains = <&power K1X_PMU_BUS_PWR_DOMAIN>;
clk,pm-runtime,no-sleep;
cpuidle,pm-runtime,sleep;
interconnects = <&dram_range4>;
interconnect-names = "dma-mem";
status = "disabled";
};
uart5: uart@d4017400 {
compatible = "spacemit,pxa-uart";
interrupt-parent = <&intc>;
reg = <0x0 0xd4017400 0x0 0x100>;
interrupts = <47>;
clocks = <&ccu CLK_UART5>, <&ccu CLK_SLOW_UART>;
clock-names = "func", "gate";
clk-fpga = <14750000>;
resets = <&reset RESET_UART5>;
power-domains = <&power K1X_PMU_BUS_PWR_DOMAIN>;
clk,pm-runtime,no-sleep;
cpuidle,pm-runtime,sleep;
interconnects = <&dram_range4>;
interconnect-names = "dma-mem";
status = "disabled";
};
uart6: uart@d4017500 {
compatible = "spacemit,pxa-uart";
interrupt-parent = <&intc>;
reg = <0x0 0xd4017500 0x0 0x100>;
interrupts = <48>;
clocks = <&ccu CLK_UART6>, <&ccu CLK_SLOW_UART>;
clock-names = "func", "gate";
clk-fpga = <14750000>;
resets = <&reset RESET_UART6>;
power-domains = <&power K1X_PMU_BUS_PWR_DOMAIN>;
clk,pm-runtime,no-sleep;
cpuidle,pm-runtime,sleep;
interconnects = <&dram_range4>;
interconnect-names = "dma-mem";
status = "disabled";
};
uart7: uart@d4017600 {
compatible = "spacemit,pxa-uart";
interrupt-parent = <&intc>;
reg = <0x0 0xd4017600 0x0 0x100>;
interrupts = <49>;
clocks = <&ccu CLK_UART7>, <&ccu CLK_SLOW_UART>;
clock-names = "func", "gate";
clk-fpga = <14750000>;
resets = <&reset RESET_UART7>;
power-domains = <&power K1X_PMU_BUS_PWR_DOMAIN>;
clk,pm-runtime,no-sleep;
cpuidle,pm-runtime,sleep;
interconnects = <&dram_range4>;
interconnect-names = "dma-mem";
status = "disabled";
};
uart8: uart@d4017700 {
compatible = "spacemit,pxa-uart";
interrupt-parent = <&intc>;
reg = <0x0 0xd4017700 0x0 0x100>;
interrupts = <50>;
clocks = <&ccu CLK_UART8>, <&ccu CLK_SLOW_UART>;
clock-names = "func", "gate";
clk-fpga = <14750000>;
resets = <&reset RESET_UART8>;
power-domains = <&power K1X_PMU_BUS_PWR_DOMAIN>;
clk,pm-runtime,no-sleep;
cpuidle,pm-runtime,sleep;
interconnects = <&dram_range4>;
interconnect-names = "dma-mem";
status = "disabled";
};
uart9: uart@d4017800 {
compatible = "spacemit,pxa-uart";
interrupt-parent = <&intc>;
reg = <0x0 0xd4017800 0x0 0x100>;
interrupts = <51>;
clocks = <&ccu CLK_UART9>, <&ccu CLK_SLOW_UART>;
clock-names = "func", "gate";
clk-fpga = <14750000>;
resets = <&reset RESET_UART9>;
power-domains = <&power K1X_PMU_BUS_PWR_DOMAIN>;
clk,pm-runtime,no-sleep;
cpuidle,pm-runtime,sleep;
interconnects = <&dram_range4>;
interconnect-names = "dma-mem";
status = "disabled";
};
mailbox: mailbox@d4013400 {
compatible = "spacemit,k1-x-mailbox";
reg = <0x0 0xd4013400 0x0 0x100>;
interrupt-parent = <&intc>;
interrupts = <52>;
#mbox-cells = <1>;
clocks = <&ccu CLK_IPC_AP2AUD>;
clock-names = "core";
resets = <&reset RESET_IPC_AP2AUD>;
reset-names = "core_reset";
power-domains = <&power K1X_PMU_DUMMY_PWR_DOMAIN>;
status = "okay";
};
rcpu: rcpu_rproc@0 {
compatible = "spacemit,k1-x-rproc";
reg = <0 0xc088c000 0 0x1000>,
<0 0xc0880000 0 0x200>;
ddr-remap-base = <0x30000000>;
esos-entry-point = <0x114>;
clocks = <&ccu CLK_AUDIO>;
clock-names = "core";
resets = <&reset RESET_AUDIO_SYS>;
reset-names = "core_reset";
firmware-name = "esos.elf";
power-domains = <&power K1X_PMU_AUD_PWR_DOMAIN>;
status = "okay";
};
pdma0: pdma@d4000000 {
compatible = "spacemit,pdma-1.0";
reg = <0x0 0xd4000000 0x0 0x4000>;
interrupts = <72>;
interrupt-parent = <&intc>;
clocks = <&ccu CLK_DMA>;
resets = <&reset RESET_DMA>;
#dma-cells= <2>;
#dma-channels = <16>;
max-burst-size = <64>;
reserved-channels = <15 45>;
power-domains = <&power K1X_PMU_BUS_PWR_DOMAIN>;
clk,pm-runtime,no-sleep;
cpuidle,pm-runtime,sleep;
interconnects = <&dram_range4>;
interconnect-names = "dma-mem";
status = "ok";
};
hdmi_adma: adma@C0883800 {
compatible = "spacemit,k1x-adma";
reg = <0x0 0xc0883800 0x0 0x100>,
<0x0 0xc0882050 0x0 0x4>,
<0x0 0xc08d0000 0x0 0x400>;
reg-names = "adma_reg", "ctrl_reg", "buf_addr";
#dma-cells = <0>;
hdmi-sample;
status = "ok";
};
spi0: spi@d4026000 {
compatible = "spacemit,k1x-spi";
reg = <0x0 0xd4026000 0x0 0x30>;
k1x,ssp-id = <0>;
k1x,ssp-clock-rate = <26000000>;
dmas = <&pdma0 19 1
&pdma0 18 1>;
dma-names = "rx", "tx";
power-domains = <&power K1X_PMU_BUS_PWR_DOMAIN>;
cpuidle,pm-runtime,sleep;
interrupt-parent = <&intc>;
interrupts = <56>;
clocks = <&ccu CLK_SSPA0>;
resets = <&reset RESET_SSPA0>;
#address-cells = <1>;
#size-cells = <0>;
interconnects = <&dram_range4>;
interconnect-names = "dma-mem";
status = "disabled";
};
spi1: spi@d4026800 {
compatible = "spacemit,k1x-spi";
reg = <0x0 0xd4026800 0x0 0x30>;
k1x,ssp-id = <1>;
k1x,ssp-clock-rate = <26000000>;
dmas = <&pdma0 21 1
&pdma0 20 1>;
dma-names = "rx", "tx";
power-domains = <&power K1X_PMU_BUS_PWR_DOMAIN>;
cpuidle,pm-runtime,sleep;
interrupt-parent = <&intc>;
interrupts = <57>;
clocks = <&ccu CLK_SSPA1>;
resets = <&reset RESET_SSPA1>;
#address-cells = <1>;
#size-cells = <0>;
interconnects = <&dram_range4>;
interconnect-names = "dma-mem";
status = "disabled";
};
spi2: spi@f0613000 {
compatible = "spacemit,k1x-spi";
reg = <0x0 0xf0613000 0x0 0x30>;
k1x,ssp-id = <2>;
k1x,ssp-clock-rate = <26000000>;
k1x,ssp-disable-dma;
power-domains = <&power K1X_PMU_BUS_PWR_DOMAIN>;
cpuidle,pm-runtime,sleep;
interrupt-parent = <&intc>;
interrupts = <54>;
clocks = <&ccu CLK_SEC_SSP2>;
resets = <&reset RESET_SEC_SSP2>;
#address-cells = <1>;
#size-cells = <0>;
interconnects = <&dram_range4>;
interconnect-names = "dma-mem";
status = "disabled";
};
spi3: spi@d401c000 {
compatible = "spacemit,k1x-spi";
reg = <0x0 0xd401c000 0x0 0x30>;
k1x,ssp-id = <3>;
k1x,ssp-clock-rate = <26000000>;
k1x,ssp-disable-dma;
dmas = <&pdma0 17 1
&pdma0 16 1>;
dma-names = "rx", "tx";
power-domains = <&power K1X_PMU_BUS_PWR_DOMAIN>;
cpuidle,pm-runtime,sleep;
interrupt-parent = <&intc>;
interrupts = <55>;
clocks = <&ccu CLK_SSP3>;
resets = <&reset RESET_SSP3>;
#address-cells = <1>;
#size-cells = <0>;
interconnects = <&dram_range4>;
interconnect-names = "dma-mem";
status = "disabled";
};
i2c0: i2c@d4010800 {
compatible = "spacemit,k1x-i2c";
spacemit,adapter-id = <0>;
reg = <0x0 0xd4010800 0x0 0x38>;
/* usually i2c client has only 1 reg field */
#address-cells = <1>;
#size-cells = <0>;
interrupt-parent = <&intc>;
interrupts = <36>;
clocks = <&ccu CLK_TWSI0>;
resets = <&reset RESET_TWSI0>;
/*
dmas = <&pdma0 DMA_I2C0_RX 1
&pdma0 DMA_I2C0_TX 1>;
dma-names = "rx", "tx";
*/
spacemit,dma-disable;
/* spacemit,i2c-fast-mode; */
/* spacemit,i2c-high-mode; */
spacemit,i2c-master-code = /bits/ 8 <0x0e>;
spacemit,i2c-clk-rate = <32000000>;
spacemit,i2c-lcr = <0x82c469f>;
spacemit,i2c-wcr = <0x142a>;
/* apb clock: 26MHz or 52MHz */
spacemit,apb_clock = <52000000>;
power-domains = <&power K1X_PMU_BUS_PWR_DOMAIN>;
cpuidle,pm-runtime,sleep;
interconnects = <&dram_range4>;
interconnect-names = "dma-mem";
status = "disabled";
};
i2c1: i2c@d4011000 {
compatible = "spacemit,k1x-i2c";
spacemit,adapter-id = <1>;
reg = <0x0 0xd4011000 0x0 0x38>;
/* usually i2c client has only 1 reg field */
#address-cells = <1>;
#size-cells = <0>;
interrupt-parent = <&intc>;
interrupts = <37>;
clocks = <&ccu CLK_TWSI1>;
resets = <&reset RESET_TWSI1>;
/*
dmas = <&pdma0 DMA_I2C1_RX 1
&pdma0 DMA_I2C1_TX 1>;
dma-names = "rx", "tx";
*/
spacemit,dma-disable;
/* spacemit,i2c-fast-mode; */
/* spacemit,i2c-high-mode; */
spacemit,i2c-master-code = /bits/ 8 <0x0e>;
spacemit,i2c-clk-rate = <32000000>;
spacemit,i2c-lcr = <0x82c469f>;
spacemit,i2c-wcr = <0x142a>;
/* apb clock: 26MHz or 52MHz */
spacemit,apb_clock = <52000000>;
power-domains = <&power K1X_PMU_BUS_PWR_DOMAIN>;
cpuidle,pm-runtime,sleep;
interconnects = <&dram_range4>;
interconnect-names = "dma-mem";
status = "disabled";
};
i2c2: i2c@d4012000 {
compatible = "spacemit,k1x-i2c";
spacemit,adapter-id = <2>;
reg = <0x0 0xd4012000 0x0 0x38>;
/* usually i2c client has only 1 reg field */
#address-cells = <1>;
#size-cells = <0>;
interrupt-parent = <&intc>;
interrupts = <38>;
clocks = <&ccu CLK_TWSI2>;
resets = <&reset RESET_TWSI2>;
/*
dmas = <&pdma0 DMA_I2C2_RX 1
&pdma0 DMA_I2C2_TX 1>;
dma-names = "rx", "tx";
*/
spacemit,dma-disable;
/* spacemit,i2c-fast-mode; */
/* spacemit,i2c-high-mode; */
spacemit,i2c-master-code = /bits/ 8 <0x0e>;
spacemit,i2c-clk-rate = <32000000>;
spacemit,i2c-lcr = <0x82c469f>;
spacemit,i2c-wcr = <0x142a>;
/* apb clock: 26MHz or 52MHz */
spacemit,apb_clock = <52000000>;
power-domains = <&power K1X_PMU_BUS_PWR_DOMAIN>;
cpuidle,pm-runtime,sleep;
interconnects = <&dram_range4>;
interconnect-names = "dma-mem";
status = "disabled";
};
i2c3: i2c@f0614000 {
compatible = "spacemit,k1x-i2c";
spacemit,adapter-id = <3>;
reg = <0x0 0xf0614000 0x0 0x38>;
/* usually i2c client has only 1 reg field */
#address-cells = <1>;
#size-cells = <0>;
interrupt-parent = <&intc>;
interrupts = <39>;
spacemit,dma-disable;
/* spacemit,i2c-fast-mode; */
/* spacemit,i2c-high-mode; */
spacemit,i2c-master-code = /bits/ 8 <0x0e>;
spacemit,i2c-clk-rate = <32000000>;
spacemit,i2c-lcr = <0x82c469f>;
spacemit,i2c-wcr = <0x142a>;
/* apb clock: 26MHz or 52MHz */
spacemit,apb_clock = <52000000>;
power-domains = <&power K1X_PMU_BUS_PWR_DOMAIN>;
cpuidle,pm-runtime,sleep;
interconnects = <&dram_range4>;
interconnect-names = "dma-mem";
status = "disabled";
};
i2c4: i2c@d4012800 {
compatible = "spacemit,k1x-i2c";
spacemit,adapter-id = <4>;
reg = <0x0 0xd4012800 0x0 0x38>;
/* usually i2c client has only 1 reg field */
#address-cells = <1>;
#size-cells = <0>;
interrupt-parent = <&intc>;
interrupts = <40>;
clocks = <&ccu CLK_TWSI4>;
resets = <&reset RESET_TWSI4>;
/*
dmas = <&pdma0 DMA_I2C4_RX 1
&pdma0 DMA_I2C4_TX 1>;
dma-names = "rx", "tx";
*/
spacemit,dma-disable;
/* spacemit,i2c-fast-mode; */
/* spacemit,i2c-high-mode; */
spacemit,i2c-master-code = /bits/ 8 <0x0e>;
spacemit,i2c-clk-rate = <32000000>;
spacemit,i2c-lcr = <0x82c469f>;
spacemit,i2c-wcr = <0x142a>;
/* apb clock: 26MHz or 52MHz */
spacemit,apb_clock = <52000000>;
power-domains = <&power K1X_PMU_BUS_PWR_DOMAIN>;
cpuidle,pm-runtime,sleep;
interconnects = <&dram_range4>;
interconnect-names = "dma-mem";
status = "disabled";
};
i2c5: i2c@d4013800 {
compatible = "spacemit,k1x-i2c";
spacemit,adapter-id = <5>;
reg = <0x0 0xd4013800 0x0 0x38>;
/* usually i2c client has only 1 reg field */
#address-cells = <1>;
#size-cells = <0>;
interrupt-parent = <&intc>;
interrupts = <41>;
clocks = <&ccu CLK_TWSI5>;
resets = <&reset RESET_TWSI5>;
/*
dmas = <&pdma0 DMA_I2C5_RX 1
&pdma0 DMA_I2C5_TX 1>;
dma-names = "rx", "tx";
*/
spacemit,dma-disable;
/* spacemit,i2c-fast-mode; */
/* spacemit,i2c-high-mode; */
spacemit,i2c-master-code = /bits/ 8 <0x0e>;
spacemit,i2c-clk-rate = <32000000>;
spacemit,i2c-lcr = <0x82c469f>;
spacemit,i2c-wcr = <0x142a>;
/* apb clock: 26MHz or 52MHz */
spacemit,apb_clock = <52000000>;
power-domains = <&power K1X_PMU_BUS_PWR_DOMAIN>;
cpuidle,pm-runtime,sleep;
interconnects = <&dram_range4>;
interconnect-names = "dma-mem";
status = "disabled";
};
i2c6: i2c@d4018800 {
compatible = "spacemit,k1x-i2c";
spacemit,adapter-id = <6>;
reg = <0x0 0xd4018800 0x0 0x38>;
/* usually i2c client has only 1 reg field */
#address-cells = <1>;
#size-cells = <0>;
interrupt-parent = <&intc>;
interrupts = <70>;
clocks = <&ccu CLK_TWSI6>;
resets = <&reset RESET_TWSI6>;
/*
dmas = <&pdma0 DMA_I2C6_RX 1
&pdma0 DMA_I2C6_TX 1>;
dma-names = "rx", "tx";
*/
spacemit,dma-disable;
/* spacemit,i2c-fast-mode; */
/* spacemit,i2c-high-mode; */
spacemit,i2c-master-code = /bits/ 8 <0x0e>;
spacemit,i2c-clk-rate = <32000000>;
spacemit,i2c-lcr = <0x82c469f>;
spacemit,i2c-wcr = <0x142a>;
/* apb clock: 26MHz or 52MHz */
spacemit,apb_clock = <52000000>;
power-domains = <&power K1X_PMU_BUS_PWR_DOMAIN>;
cpuidle,pm-runtime,sleep;
interconnects = <&dram_range4>;
interconnect-names = "dma-mem";
status = "disabled";
};
i2c7: i2c@d401d000 {
compatible = "spacemit,k1x-i2c";
spacemit,adapter-id = <7>;
reg = <0x0 0xd401d000 0x0 0x38>;
/* usually i2c client has only 1 reg field */
#address-cells = <1>;
#size-cells = <0>;
interrupt-parent = <&intc>;
interrupts = <18>;
clocks = <&ccu CLK_TWSI7>;
resets = <&reset RESET_TWSI7>;
/*
dmas = <&pdma0 DMA_I2C7_RX 1
&pdma0 DMA_I2C7_TX 1>;
dma-names = "rx", "tx";
*/
spacemit,dma-disable;
/* spacemit,i2c-fast-mode; */
/* spacemit,i2c-high-mode; */
spacemit,i2c-master-code = /bits/ 8 <0x0e>;
spacemit,i2c-clk-rate = <32000000>;
spacemit,i2c-lcr = <0x82c469f>;
spacemit,i2c-wcr = <0x142a>;
/* apb clock: 26MHz or 52MHz */
spacemit,apb_clock = <52000000>;
power-domains = <&power K1X_PMU_BUS_PWR_DOMAIN>;
cpuidle,pm-runtime,sleep;
interconnects = <&dram_range4>;
interconnect-names = "dma-mem";
status = "disabled";
};
i2c8: i2c@d401d800 {
compatible = "spacemit,k1x-i2c";
spacemit,adapter-id = <8>;
reg = <0x0 0xd401d800 0x0 0x38>;
/* usually i2c client has only 1 reg field */
#address-cells = <1>;
#size-cells = <0>;
interrupt-parent = <&intc>;
interrupts = <19>;
clocks = <&ccu CLK_TWSI8>;
resets = <&reset RESET_TWSI8>;
/*
dmas = <&pdma0 DMA_I2C8_RX 1
&pdma0 DMA_I2C8_TX 1>;
dma-names = "rx", "tx";
*/
spacemit,dma-disable;
/* spacemit,i2c-fast-mode; */
/* spacemit,i2c-high-mode; */
spacemit,i2c-master-code = /bits/ 8 <0x0e>;
spacemit,i2c-clk-rate = <32000000>;
spacemit,i2c-lcr = <0x82c469f>;
spacemit,i2c-wcr = <0x142a>;
/* apb clock: 26MHz or 52MHz */
spacemit,apb_clock = <52000000>;
power-domains = <&power K1X_PMU_BUS_PWR_DOMAIN>;
cpuidle,pm-runtime,sleep;
interconnects = <&dram_range4>;
interconnect-names = "dma-mem";
status = "disabled";
};
ri2c0: ri2c@c0887000 {
compatible = "spacemit,k1x-i2c-rcpu";
spacemit,adapter-id = <9>;
reg = <0x0 0xc0887000 0x0 0x38>;
/* usually i2c client has only 1 reg field */
#address-cells = <1>;
#size-cells = <0>;
clocks = <&ccu CLK_RCPU_I2C0>;
resets = <&reset RESET_RCPU_I2C0>;
/*
dmas = <&pdma0 DMA_I2C0_RX 1
&pdma0 DMA_I2C0_TX 1>;
dma-names = "rx", "tx";
*/
rcpu-i2c;
spacemit,dma-disable;
/* spacemit,i2c-fast-mode; */
/* spacemit,i2c-high-mode; */
spacemit,i2c-master-code = /bits/ 8 <0x0e>;
spacemit,i2c-clk-rate = <32000000>;
spacemit,i2c-lcr = <0x82c469f>;
spacemit,i2c-wcr = <0x142a>;
/* apb clock: 26MHz or 52MHz */
spacemit,apb_clock = <52000000>;
power-domains = <&power K1X_PMU_BUS_PWR_DOMAIN>;
cpuidle,pm-runtime,sleep;
interconnects = <&dram_range4>;
interconnect-names = "dma-mem";
status = "okay";
};
pwm0: pwm@d401a000 {
compatible = "spacemit,k1x-pwm";
reg = <0x0 0xd401a000 0x0 0x10>;
#pwm-cells = <1>;
clocks = <&ccu CLK_PWM0>;
resets = <&reset RESET_PWM0>;
k1x,pwm-disable-fd;
status = "disabled";
};
pwm1: pwm@d401a400 {
compatible = "spacemit,k1x-pwm";
reg = <0x0 0xd401a400 0x0 0x10>;
#pwm-cells = <1>;
clocks = <&ccu CLK_PWM1>;
resets = <&reset RESET_PWM1>;
k1x,pwm-disable-fd;
status = "disabled";
};
pwm2: pwm@d401a800 {
compatible = "spacemit,k1x-pwm";
reg = <0x0 0xd401a800 0x0 0x10>;
#pwm-cells = <1>;
clocks = <&ccu CLK_PWM2>;
resets = <&reset RESET_PWM2>;
k1x,pwm-disable-fd;
status = "disabled";
};
pwm3: pwm@d401ac00 {
compatible = "spacemit,k1x-pwm";
reg = <0x0 0xd401ac00 0x0 0x10>;
#pwm-cells = <1>;
clocks = <&ccu CLK_PWM3>;
resets = <&reset RESET_PWM3>;
k1x,pwm-disable-fd;
status = "disabled";
};
pwm4: pwm@d401b000 {
compatible = "spacemit,k1x-pwm";
reg = <0x0 0xd401b000 0x0 0x10>;
#pwm-cells = <1>;
clocks = <&ccu CLK_PWM4>;
resets = <&reset RESET_PWM4>;
k1x,pwm-disable-fd;
status = "disabled";
};
pwm5: pwm@d401b400 {
compatible = "spacemit,k1x-pwm";
reg = <0x0 0xd401b400 0x0 0x10>;
#pwm-cells = <1>;
clocks = <&ccu CLK_PWM5>;
resets = <&reset RESET_PWM5>;
k1x,pwm-disable-fd;
status = "disabled";
};
pwm6: pwm@d401b800 {
compatible = "spacemit,k1x-pwm";
reg = <0x0 0xd401b800 0x0 0x10>;
#pwm-cells = <1>;
clocks = <&ccu CLK_PWM6>;
resets = <&reset RESET_PWM6>;
k1x,pwm-disable-fd;
status = "disabled";
};
pwm7: pwm@d401bc00 {
compatible = "spacemit,k1x-pwm";
reg = <0x0 0xd401bc00 0x0 0x10>;
#pwm-cells = <1>;
clocks = <&ccu CLK_PWM7>;
resets = <&reset RESET_PWM7>;
k1x,pwm-disable-fd;
status = "disabled";
};
pwm8: pwm@d4020000 {
compatible = "spacemit,k1x-pwm";
reg = <0x0 0xd4020000 0x0 0x10>;
#pwm-cells = <1>;
clocks = <&ccu CLK_PWM8>;
resets = <&reset RESET_PWM8>;
k1x,pwm-disable-fd;
status = "disabled";
};
pwm9: pwm@d4020400 {
compatible = "spacemit,k1x-pwm";
reg = <0x0 0xd4020400 0x0 0x10>;
#pwm-cells = <1>;
clocks = <&ccu CLK_PWM9>;
resets = <&reset RESET_PWM9>;
k1x,pwm-disable-fd;
status = "disabled";
};
pwm10: pwm@d4020800 {
compatible = "spacemit,k1x-pwm";
reg = <0x0 0xd4020800 0x0 0x10>;
#pwm-cells = <1>;
clocks = <&ccu CLK_PWM10>;
resets = <&reset RESET_PWM10>;
k1x,pwm-disable-fd;
status = "disabled";
};
pwm11: pwm@d4020c00 {
compatible = "spacemit,k1x-pwm";
reg = <0x0 0xd4020c00 0x0 0x10>;
#pwm-cells = <1>;
clocks = <&ccu CLK_PWM11>;
resets = <&reset RESET_PWM11>;
k1x,pwm-disable-fd;
status = "disabled";
};
pwm12: pwm@d4021000 {
compatible = "spacemit,k1x-pwm";
reg = <0x0 0xd4021000 0x0 0x10>;
#pwm-cells = <1>;
clocks = <&ccu CLK_PWM12>;
resets = <&reset RESET_PWM12>;
k1x,pwm-disable-fd;
status = "disabled";
};
pwm13: pwm@d4021400 {
compatible = "spacemit,k1x-pwm";
reg = <0x0 0xd4021400 0x0 0x10>;
#pwm-cells = <1>;
clocks = <&ccu CLK_PWM13>;
resets = <&reset RESET_PWM13>;
k1x,pwm-disable-fd;
status = "disabled";
};
pwm14: pwm@d4021800 {
compatible = "spacemit,k1x-pwm";
reg = <0x0 0xd4021800 0x0 0x10>;
#pwm-cells = <1>;
clocks = <&ccu CLK_PWM14>;
resets = <&reset RESET_PWM14>;
k1x,pwm-disable-fd;
status = "disabled";
};
pwm15: pwm@d4021c00 {
compatible = "spacemit,k1x-pwm";
reg = <0x0 0xd4021c00 0x0 0x10>;
#pwm-cells = <1>;
clocks = <&ccu CLK_PWM15>;
resets = <&reset RESET_PWM15>;
k1x,pwm-disable-fd;
status = "disabled";
};
pwm16: pwm@d4022000 {
compatible = "spacemit,k1x-pwm";
reg = <0x0 0xd4022000 0x0 0x10>;
#pwm-cells = <1>;
clocks = <&ccu CLK_PWM16>;
resets = <&reset RESET_PWM16>;
k1x,pwm-disable-fd;
status = "disabled";
};
pwm17: pwm@d4022400 {
compatible = "spacemit,k1x-pwm";
reg = <0x0 0xd4022400 0x0 0x10>;
#pwm-cells = <1>;
clocks = <&ccu CLK_PWM17>;
resets = <&reset RESET_PWM17>;
k1x,pwm-disable-fd;
status = "disabled";
};
pwm18: pwm@d4022800 {
compatible = "spacemit,k1x-pwm";
reg = <0x0 0xd4022800 0x0 0x10>;
#pwm-cells = <1>;
clocks = <&ccu CLK_PWM18>;
resets = <&reset RESET_PWM18>;
k1x,pwm-disable-fd;
status = "disabled";
};
pwm19: pwm@d4022c00 {
compatible = "spacemit,k1x-pwm";
reg = <0x0 0xd4022c00 0x0 0x10>;
#pwm-cells = <1>;
clocks = <&ccu CLK_PWM19>;
resets = <&reset RESET_PWM19>;
k1x,pwm-disable-fd;
status = "disabled";
};
rpwm2: pwm@c0888300 {
compatible = "spacemit,k1x-pwm";
reg = <0x0 0xc0888300 0x0 0x10>;
#pwm-cells = <1>;
clocks = <&ccu CLK_RCPU2_PWM>;
resets = <&reset RESET_RCPU2_PWM>;
k1x,pwm-disable-fd;
rcpu-pwm;
status = "disabled";
};
ircrx: irc-rx@d4017f00 {
compatible = "spacemit,k1x-irc";
reg = <0x0 0xd4017f00 0x0 0x100>;
interrupts = <69>;
interrupt-parent = <&intc>;
clocks = <&ccu CLK_IR>;
resets = <&reset RESET_IR>;
clock-frequency = <102400000>;
status = "disabled";
};
r_ircrx: irc-rx@c088e000 {
compatible = "spacemit,k1x-rirc";
reg = <0x0 0xc088e000 0x0 0x100>;
clocks = <&ccu CLK_RCPU_IR>;
resets = <&reset RESET_RCPU_IR>;
clock-frequency = <30720000>;
rcpu-ir;
status = "disabled";
};
timer0: timer@d4014000 {
compatible = "spacemit,soc-timer";
reg = <0x0 0xd4014000 0x0 0xc8>;
spacemit,timer-id = <0>;
spacemit,timer-fastclk-frequency = <12800000>;
spacemit,timer-apb-frequency = <52000000>;
spacemit,timer-frequency = <12800000>;
clocks = <&ccu CLK_TIMERS1>;
resets = <&reset RESET_TIMERS1>;
status = "ok";
counter0 {
compatible = "spacemit,timer-match";
interrupts = <23>;
interrupt-parent = <&intc>;
spacemit,timer-broadcast;
spacemit,timer-counter-id = <0>;
status = "ok";
};
};
timer1: timer@d4016000 {
compatible = "spacemit,soc-timer";
reg = <0x0 0xd4016000 0x0 0xc8>;
spacemit,timer-id = <1>;
spacemit,timer-fastclk-frequency = <12800000>;
spacemit,timer-apb-frequency = <52000000>;
spacemit,timer-frequency = <12800000>;
clocks = <&ccu CLK_TIMERS2>;
resets = <&reset RESET_TIMERS2>;
status = "disabled";
counter0 {
compatible = "spacemit,timer-match";
interrupts = <26>;
interrupt-parent = <&intc>;
spacemit,timer-counter-id = <0>;
status = "disabled";
};
};
watchdog: watchdog@d4080000 {
compatible = "spacemit,soc-wdt";
clocks = <&ccu CLK_WDT>;
resets = <&reset RESET_WDT>;
reg = <0x0 0xd4080000 0x0 0xff>,
<0x0 0xd4050000 0x0 0x1024>;
interrupts = <35>;
interrupt-parent = <&intc>;
spa,wdt-disabled;
status = "disabled";
};
reboot: handler@d4282f90 {
compatible = "spacemit,k1x-reboot";
reg = <0x0 0xd4282f90 0x0 0x4>;
status = "ok";
};
rtc: rtc@d4010000 {
compatible = "mrvl,mmp-rtc";
reg = <0x0 0xd4010000 0x0 0x100>;
interrupt-parent = <&intc>;
interrupts = <21>, <22>;
interrupt-names = "rtc 1Hz", "rtc alarm";
clocks = <&ccu CLK_RTC>;
resets = <&reset RESET_RTC>;
status = "disabled";
};
flexcan0: fdcan@d4028000 {
compatible = "spacemit,k1x-flexcan";
reg = <0x0 0xd4028000 0x0 0x4000>;
interrupts = <16>;
interrupt-parent = <&intc>;
clocks = <&ccu CLK_CAN0>,<&ccu CLK_CAN0_BUS>;
clock-names = "per","ipg";
resets = <&reset RESET_CAN0>;
fsl,clk-source = <0>;
status = "disabled";
};
r_flexcan: fdcan@c0870000 {
compatible = "spacemit,k1x-r-flexcan";
reg = <0x0 0xc0870000 0x0 0x4000>;
interrupt-parent = <&intc>;
clock-frequency = <20000000>;
fsl,clk-source = <0>;
clocks = <&ccu CLK_RCPU_CAN>,<&ccu CLK_RCPU_CAN_BUS>;
clock-names = "per","ipg";
resets = <&reset RESET_RCPU_CAN>;
rcpu-can;
status = "disabled";
};
gpio: gpio@d4019000 {
compatible = "spacemit,k1x-gpio";
reg = <0x0 0xd4019000 0x0 0x800>;
gpio-controller;
#gpio-cells = <2>;
interrupts = <58>;
clocks = <&ccu CLK_GPIO>;
interrupt-names = "gpio_mux";
interrupt-parent = <&intc>;
interrupt-controller;
#interrupt-cells = <2>;
gcb0: gpio0 {
reg-offset = <0x0>;
};
gcb1: gpio1 {
reg-offset = <0x4>;
};
gcb2: gpio2 {
reg-offset = <0x8>;
};
gcb3: gpio3 {
reg-offset = <0x100>;
};
};
eth0: ethernet@cac80000 {
compatible = "spacemit,k1x-emac";
reg = <0x00000000 0xCAC80000 0x00000000 0x00000420>;
k1x,apmu-base-reg = <0xD4282800>;
ctrl-reg = <0x3e4>;
dline-reg = <0x3e8>;
clocks = <&ccu CLK_EMAC0_BUS>,
<&ccu CLK_EMAC0_PTP>;
clock-names = "emac-clk", "ptp-clk";
resets = <&reset RESET_EMAC0>;
reset-names = "emac-reset";
interrupts = <131>;
interrupt-parent = <&intc>;
mac-address = [ 00 00 00 00 00 00 ];
ptp-support;
ptp-clk-rate = <10000000>;
power-domains = <&power K1X_PMU_BUS_PWR_DOMAIN>;
clk,pm-runtime,no-sleep;
cpuidle,pm-runtime,sleep;
interconnects = <&dram_range5>;
interconnect-names = "dma-mem";
status = "disabled";
};
eth1: ethernet@cac81000 {
compatible = "spacemit,k1x-emac";
reg = <0x00000000 0xCAC81000 0x00000000 0x00000420>;
k1x,apmu-base-reg = <0xD4282800>;
ctrl-reg = <0x3ec>;
dline-reg = <0x3f0>;
clocks = <&ccu CLK_EMAC1_BUS>,
<&ccu CLK_EMAC1_PTP>;
clock-names = "emac-clk", "ptp-clk";
resets = <&reset RESET_EMAC1>;
reset-names = "emac-reset";
interrupts = <133>;
interrupt-parent = <&intc>;
mac-address = [ 00 00 00 00 00 00 ];
ptp-support;
ptp-clk-rate = <10000000>;
power-domains = <&power K1X_PMU_BUS_PWR_DOMAIN>;
clk,pm-runtime,no-sleep;
cpuidle,pm-runtime,sleep;
interconnects = <&dram_range5>;
interconnect-names = "dma-mem";
status = "disabled";
};
extcon: extcon@d428287c {
compatible = "spacemit,vbus-id";
reg = <0x0 0xd428287c 0x0 0x4>,
<0x0 0xd4282918 0x0 0x4>;
reg-names = "reg_pmuap", "pin_state";
interrupts = <106>;
interrupt-parent = <&intc>;
clocks = <&ccu CLK_USB_AXI>;
status = "disabled";
};
usbphy: usbphy@c0940000 {
compatible = "spacemit,usb2-phy";
reg = <0x0 0xc0940000 0x0 0x200>;
clocks = <&ccu CLK_USB_AXI>;
status = "disabled";
};
otg: otg@c0900100 {
compatible = "spacemit,mv-otg";
reg = <0x0 0xc0900100 0x0 0x4000>,
<0x0 0xd428287c 0x0 0x4>;
interrupts = <105>;
interrupt-parent = <&intc>;
spacemit,otg-name = "mv-otg";
spacemit,otg-force-a-bus-req;
clocks = <&ccu CLK_USB_AXI>;
resets = <&reset RESET_USB_AXI>;
power-domains = <&power K1X_PMU_BUS_PWR_DOMAIN>;
clk,pm-runtime,no-sleep;
cpuidle,pm-runtime,sleep;
usb-phy = <&usbphy>;
status = "disabled";
};
udc: udc@c0900100 {
compatible = "spacemit,mv-udc";
reg = <0x0 0xc0900100 0x0 0x4000>;
interrupts = <105>;
interrupt-parent = <&intc>;
spacemit,udc-name = "mv-udc";
spacemit,otg-force-a-bus-req;
resets = <&reset RESET_USB_AXI>;
clocks = <&ccu CLK_USB_AXI>;
usb-phy = <&usbphy>;
interconnects = <&dram_range0>;
interconnect-names = "dma-mem";
usb-otg = <&otg>;
status = "disabled";
};
ehci: ehci@c0900100 {
compatible = "spacemit,mv-ehci";
reg = <0x0 0xc0900100 0x0 0x4000>,
<0x0 0xd428287c 0x0 0x4>;
interrupts = <105>,<106>;
interrupt-parent = <&intc>;
spacemit,ehci-name = "mv-ehci";
spacemit,otg-force-a-bus-req;
resets = <&reset RESET_USB_AXI>;
clocks = <&ccu CLK_USB_AXI>;
power-domains = <&power K1X_PMU_BUS_PWR_DOMAIN>;
clk,pm-runtime,no-sleep;
cpuidle,pm-runtime,sleep;
usb-phy = <&usbphy>;
usb-otg = <&otg>;
interconnects = <&dram_range0>;
interconnect-names = "dma-mem";
status = "disabled";
};
usbphy1: usbphy1@c09c0000 {
compatible = "spacemit,usb2-phy";
reg = <0x0 0xc09c0000 0x0 0x200>;
clocks = <&ccu CLK_USB_P1>;
status = "disabled";
};
otg1: otg1@c0980100 {
compatible = "spacemit,mv-otg";
reg = <0x0 0xc0980100 0x0 0x4000>,
<0x0 0xd4282bc4 0x0 0x4>;
interrupts = <118>;
interrupt-parent = <&intc>;
spacemit,otg-name = "mv-otg1";
spacemit,otg-force-a-bus-req;
clocks = <&ccu CLK_USB_P1>;
resets = <&reset RESET_USBP1_AXI>;
power-domains = <&power K1X_PMU_BUS_PWR_DOMAIN>;
clk,pm-runtime,no-sleep;
cpuidle,pm-runtime,sleep;
usb-phy = <&usbphy1>;
status = "disabled";
};
udc1: udc1@c0980100 {
compatible = "spacemit,mv-udc";
reg = <0x0 0xc0980100 0x0 0x4000>;
interrupts = <118>;
interrupt-parent = <&intc>;
spacemit,udc-name = "mv-udc1";
spacemit,otg-force-a-bus-req;
resets = <&reset RESET_USBP1_AXI>;
clocks = <&ccu CLK_USB_P1>;
usb-phy = <&usbphy1>;
usb-otg = <&otg1>;
interconnects = <&dram_range0>;
interconnect-names = "dma-mem";
status = "disabled";
};
ehci1: ehci1@c0980100 {
compatible = "spacemit,mv-ehci";
reg = <0x0 0xc0980100 0x0 0x4000>,
<0x0 0xd4282bc4 0x0 0x4>;
interrupts = <118>,<148>;
interrupt-parent = <&intc>;
spacemit,ehci-name = "mv-ehci1";
spacemit,otg-force-a-bus-req;
resets = <&reset RESET_USBP1_AXI>;
clocks = <&ccu CLK_USB_P1>;
power-domains = <&power K1X_PMU_BUS_PWR_DOMAIN>;
clk,pm-runtime,no-sleep;
cpuidle,pm-runtime,sleep;
usb-phy = <&usbphy1>;
usb-otg = <&otg1>;
interconnects = <&dram_range0>;
interconnect-names = "dma-mem";
status = "disabled";
};
combphy: phy@c0b10000{
compatible = "spacemit,k1x-combphy";
reg = <0x0 0xc0b10000 0x0 0x800>,
<0x0 0xd4282910 0x0 0x400>;
reg-names = "puphy", "phy_sel";
resets = <&reset RESET_PCIE0>;
reset-names = "phy_rst";
#phy-cells = <1>;
status = "disabled";
};
usb2phy: usb2phy@0xc0a30000 {
compatible = "spacemit,usb2-phy";
reg = <0x0 0xc0a30000 0x0 0x200>;
spacemit,handle_connect_change;
clocks = <&ccu CLK_USB30>;
status = "disabled";
};
usb3hub: usb3hub@0 {
compatible = "spacemit,usb3-hub";
power-domains = <&power K1X_PMU_DUMMY_PWR_DOMAIN>;
clk,pm-runtime,no-sleep;
cpuidle,pm-runtime,sleep;
status = "disabled";
};
usbdrd3: usb3@0 {
compatible = "spacemit,k1-x-dwc3";
#address-cells = <2>;
#size-cells = <2>;
reg = <0x0 0xd4282bc8 0x0 0x4>;
resets = <&reset RESET_USB3_0>;
reset-names = "ctl_rst";
clocks = <&ccu CLK_USB30>;
clock-names = "usbdrd30";
power-domains = <&power K1X_PMU_BUS_PWR_DOMAIN>;
clk,pm-runtime,no-sleep;
cpuidle,pm-runtime,sleep;
phys = <&combphy PHY_TYPE_USB3>;
phy-names = "usb3-phy";
usb-phy = <&usb2phy>;
interrupt-parent = <&intc>;
interrupts = <149>;
ranges;
interconnects = <&dram_range0>;
interconnect-names = "dma-mem";
status = "disabled";
dwc3@c0a00000 {
compatible = "snps,dwc3";
reg = <0x0 0xc0a00000 0x0 0x10000>;
interrupt-parent = <&intc>;
interrupts = <125>;
};
};
sdhci0: sdh@d4280000 {
compatible = "spacemit,k1-x-sdhci";
reg = <0x0 0xd4280000 0x0 0x200>;
interrupts = <99>;
interrupt-parent = <&intc>;
resets = <&reset RESET_SDH_AXI>,
<&reset RESET_SDH0>;
reset-names = "sdh_axi", "sdh0";
clocks = <&ccu CLK_SDH0>,
<&ccu CLK_SDH_AXI>,
<&ccu CLK_AIB>;
clock-names = "sdh-io", "sdh-core","aib-clk";
interconnects = <&dram_range0>;
interconnect-names = "dma-mem";
power-domains = <&power K1X_PMU_BUS_PWR_DOMAIN>;
clk,pm-runtime,no-sleep;
regulator,pm-runtime,no-sleep;
cpuidle,pm-runtime,sleep;
status = "disabled";
};
sdhci1: sdh@d4280800 {
compatible = "spacemit,k1-x-sdhci";
reg = <0x0 0xd4280800 0x0 0x200>;
interrupts = <100>;
interrupt-parent = <&intc>;
resets = <&reset RESET_SDH_AXI>,
<&reset RESET_SDH1>;
reset-names = "sdh_axi", "sdh1";
clocks = <&ccu CLK_SDH1>,
<&ccu CLK_SDH_AXI>;
clock-names = "sdh-io", "sdh-core";
interconnects = <&dram_range0>;
interconnect-names = "dma-mem";
power-domains = <&power K1X_PMU_BUS_PWR_DOMAIN>;
clk,pm-runtime,no-sleep;
regulator,pm-runtime,no-sleep;
cpuidle,pm-runtime,sleep;
status = "disabled";
};
sdhci2: sdh@d4281000 {
compatible = "spacemit,k1-x-sdhci";
reg = <0x0 0xd4281000 0x0 0x200>;
interrupts = <101>;
interrupt-parent = <&intc>;
resets = <&reset RESET_SDH_AXI>,
<&reset RESET_SDH2>;
reset-names = "sdh_axi", "sdh2";
clocks = <&ccu CLK_SDH2>,
<&ccu CLK_SDH_AXI>;
clock-names = "sdh-io", "sdh-core";
interconnects = <&dram_range0>;
interconnect-names = "dma-mem";
power-domains = <&power K1X_PMU_BUS_PWR_DOMAIN>;
clk,pm-runtime,no-sleep;
regulator,pm-runtime,no-sleep;
cpuidle,pm-runtime,sleep;
status = "disabled";
};
pcie0_rc: pcie@ca000000 {
compatible = "k1x,dwc-pcie";
reg = <0x0 0xca000000 0x0 0x00001000>, /* dbi */
<0x0 0xca300000 0x0 0x0001ff24>, /* atu registers */
<0x0 0x8f000000 0x0 0x00002000>, /* config space */
<0x0 0xd4282bcc 0x0 0x00000008>, /* k1x soc config addr */
<0x0 0xc0b20000 0x0 0x00001000>, /* phy ahb */
<0x0 0xc0b10000 0x0 0x00001000>, /* phy addr */
<0x0 0xd4282bcc 0x0 0x00000008>, /* conf0 addr */
<0x0 0xc0b10000 0x0 0x00001000>; /* phy0 addr */
reg-names = "dbi", "atu", "config", "k1x_conf", "phy_ahb", "phy_addr", "conf0_addr", "phy0_addr";
k1x,pcie-port = <0>;
clocks = <&ccu CLK_PCIE0>;
clock-names = "pcie-clk";
resets = <&reset RESET_PCIE0>;
reset-names = "pcie-reset";
power-domains = <&power K1X_PMU_BUS_PWR_DOMAIN>;
bus-range = <0x00 0xff>;
max-link-speed = <2>;
num-lanes = <1>;
num-viewport = <8>;
device_type = "pci";
#address-cells = <3>;
#size-cells = <2>;
ranges = <0x01000000 0x0 0x8f002000 0 0x8f002000 0x0 0x100000>,
<0x02000000 0x0 0x80000000 0 0x80000000 0x0 0x0f000000>;
interconnects = <&dram_range2>;
interconnect-names = "dma-mem";
interrupts = <141>, <145>;
interrupt-parent = <&intc>;
#interrupt-cells = <1>;
interrupt-map-mask = <0 0 0 0x7>;
interrupt-map = <0000 0 0 1 &pcie0_intc 1>, /* int_a */
<0000 0 0 2 &pcie0_intc 2>, /* int_b */
<0000 0 0 3 &pcie0_intc 3>, /* int_c */
<0000 0 0 4 &pcie0_intc 4>; /* int_d */
linux,pci-domain = <0>;
status = "disabled";
pcie0_intc: interrupt-controller@0 {
interrupt-controller;
reg = <0 0 0 0 0>;
#address-cells = <0>;
#interrupt-cells = <1>;
};
};
pcie1_rc: pcie@ca400000 {
compatible = "k1x,dwc-pcie";
reg = <0x0 0xca400000 0x0 0x00001000>, /* dbi */
<0x0 0xca700000 0x0 0x0001ff24>, /* atu registers */
<0x0 0x9f000000 0x0 0x00002000>, /* config space */
<0x0 0xd4282bd4 0x0 0x00000008>, /* k1x soc config addr */
<0x0 0xc0c20000 0x0 0x00001000>, /* phy ahb */
<0x0 0xc0c10000 0x0 0x00001000>, /* phy addr */
<0x0 0xd4282bcc 0x0 0x00000008>, /* conf0 addr */
<0x0 0xc0b10000 0x0 0x00001000>; /* phy0 addr */
reg-names = "dbi", "atu", "config", "k1x_conf", "phy_ahb", "phy_addr", "conf0_addr", "phy0_addr";
k1x,pcie-port = <1>;
clocks = <&ccu CLK_PCIE1>;
clock-names = "pcie-clk";
resets = <&reset RESET_PCIE1>;
reset-names = "pcie-reset";
power-domains = <&power K1X_PMU_BUS_PWR_DOMAIN>;
bus-range = <0x00 0xff>;
max-link-speed = <2>;
num-lanes = <2>;
num-viewport = <8>;
device_type = "pci";
#address-cells = <3>;
#size-cells = <2>;
ranges = <0x01000000 0x0 0x9f002000 0 0x9f002000 0x0 0x100000>,
<0x02000000 0x0 0x90000000 0 0x90000000 0x0 0x0f000000>;
interconnects = <&dram_range2>;
interconnect-names = "dma-mem";
interrupts = <142>, <146>;
interrupt-parent = <&intc>;
#interrupt-cells = <1>;
interrupt-map-mask = <0 0 0 0x7>;
interrupt-map = <0000 0 0 1 &pcie1_intc 1>, /* int_a */
<0000 0 0 2 &pcie1_intc 2>, /* int_b */
<0000 0 0 3 &pcie1_intc 3>, /* int_c */
<0000 0 0 4 &pcie1_intc 4>; /* int_d */
linux,pci-domain = <1>;
status = "disabled";
pcie1_intc: interrupt-controller@0 {
interrupt-controller;
reg = <0 0 0 0 0>;
#address-cells = <0>;
#interrupt-cells = <1>;
};
};
pcie2_rc: pcie@ca800000 {
compatible = "k1x,dwc-pcie";
reg = <0x0 0xca800000 0x0 0x00001000>, /* dbi */
<0x0 0xcab00000 0x0 0x0001ff24>, /* atu registers */
<0x0 0xb7000000 0x0 0x00002000>, /* config space */
<0x0 0xd4282bdc 0x0 0x00000008>, /* k1x soc config addr */
<0x0 0xc0d20000 0x0 0x00001000>, /* phy ahb */
<0x0 0xc0d10000 0x0 0x00001000>, /* phy addr */
<0x0 0xd4282bcc 0x0 0x00000008>, /* conf0 addr */
<0x0 0xc0b10000 0x0 0x00001000>; /* phy0 addr */
reg-names = "dbi", "atu", "config", "k1x_conf", "phy_ahb", "phy_addr", "conf0_addr", "phy0_addr";
k1x,pcie-port = <2>;
clocks = <&ccu CLK_PCIE2>;
clock-names = "pcie-clk";
resets = <&reset RESET_PCIE2>;
reset-names = "pcie-reset";
power-domains = <&power K1X_PMU_BUS_PWR_DOMAIN>;
bus-range = <0x00 0xff>;
max-link-speed = <2>;
num-lanes = <2>;
num-viewport = <8>;
device_type = "pci";
#address-cells = <3>;
#size-cells = <2>;
ranges = <0x01000000 0x0 0xb7002000 0 0xb7002000 0x0 0x100000>,
<0x02000000 0x0 0xa0000000 0 0xa0000000 0x0 0x17000000>;
interconnects = <&dram_range2>;
interconnect-names = "dma-mem";
interrupts = <143>, <147>;
interrupt-parent = <&intc>;
#interrupt-cells = <1>;
interrupt-map-mask = <0 0 0 0x7>;
interrupt-map = <0000 0 0 1 &pcie2_intc 1>, /* int_a */
<0000 0 0 2 &pcie2_intc 2>, /* int_b */
<0000 0 0 3 &pcie2_intc 3>, /* int_c */
<0000 0 0 4 &pcie2_intc 4>; /* int_d */
linux,pci-domain = <2>;
status = "disabled";
pcie2_intc: interrupt-controller@0 {
interrupt-controller;
reg = <0 0 0 0 0>;
#address-cells = <0>;
#interrupt-cells = <1>;
};
};
qspi: spi@d420c000 {
compatible = "spacemit,k1x-qspi";
#address-cells = <1>;
#size-cells = <0>;
reg = <0x0 0xd420c000 0x0 0x1000>,
<0x0 0xb8000000 0x0 0xc00000>;
reg-names = "qspi-base", "qspi-mmap";
k1x,qspi-sfa1ad = <0x4000000>;
k1x,qspi-sfa2ad = <0x100000>;
k1x,qspi-sfb1ad = <0x100000>;
k1x,qspi-sfb2ad = <0x100000>;
clocks = <&ccu CLK_QSPI>,
<&ccu CLK_QSPI_BUS>;
clock-names = "qspi_clk", "qspi_bus_clk";
resets = <&reset RESET_QSPI>,
<&reset RESET_QSPI_BUS>;
reset-names = "qspi_reset", "qspi_bus_reset";
k1x,qspi-pmuap-reg = <0xd4282860>;
k1x,qspi-mpmu-acgr-reg = <0xd4051024>;
k1x,qspi-freq = <26500000>;
k1x,qspi-id = <4>;
power-domains = <&power K1X_PMU_BUS_PWR_DOMAIN>;
cpuidle,pm-runtime,sleep;
interrupts = <117>;
interrupt-parent = <&intc>;
k1x,qspi-tx-dma = <1>;
k1x,qspi-rx-dma = <1>;
dmas = <&pdma0 45 1>;
dma-names = "tx-dma";
interconnects = <&dram_range4>;
interconnect-names = "dma-mem";
status = "disabled";
};
thermal: thermal@d4018000 {
compatible = "spacemit,k1x-tsensor";
reg = <0x0 0xd4018000 0x0 0x100>;
interrupt-parent = <&intc>;
interrupts = <61>;
clocks = <&ccu CLK_TSEN>;
clock-names = "thermal_core";
resets = <&reset RESET_TSEN>;
reset-names = "tsen_reset";
/* bjt-tsensor map:
* bjt0: local, bjt1: top,
* bjt2: gpu, bjt3: cluster0,
* bjt4: cluster1,
*/
sensor_range = <0x3 0x4>;
/* emergent_reboot_threshold = <110>; */
#thermal-sensor-cells = <1>;
status = "okay";
};
thermal_zones: thermal-zones {
};
tcm: tcm@0xd8000000 {
compatible = "spacemit,k1-x-tcm";
reg = <0x0 0xd8000000 0x0 0x80000>;
#address-cells = <1>;
#size-cells = <1>;
ranges = <0x0 0x0 0xd8000000 0x80000>;
no-memory-wc;
core0_tcm@0 {
reg = <0x00000 0x20000>;
pool;
};
core1_tcm@20000 {
reg = <0x20000 0x20000>;
pool;
};
core2_tcm@40000 {
reg = <0x40000 0x20000>;
pool;
};
core3_tcm@60000 {
reg = <0x60000 0x20000>;
pool;
};
};
linlon-v5@c0500000 {
compatible = "arm china,linlon-v5";
reg = <0x0 0xC0500000 0x0 0x10000>;
interrupt-parent = <&intc>;
interrupts = <74>;
clocks = <&ccu CLK_VPU>;
clock-names = "vpu_clk";
power-domains = <&power K1X_PMU_VPU_PWR_DOMAIN>;
resets = <&reset RESET_VPU>;
interconnects = <&dram_range1>;
interconnect-names = "dma-mem";
clk,pm-runtime,no-sleep;
status = "okay";
};
v2d@c0100000 {
compatible = "spacemit,v2d";
reg = <0x0 0xc0100000 0x0 0x1000>;
reg-names = "v2dreg";
clocks = <&ccu CLK_DPU_MCLK>,
<&ccu CLK_V2D>;
clock-names = "v2d-io", "v2d-core";
resets = <&reset RESET_V2D>;
reset-names= "v2d_reset";
interrupt-parent = <&intc>;
interrupts = <86>;
interconnects = <&dram_range3>;
interconnect-names = "dma-mem";
status = "ok";
};
jpu@c02f8000 {
compatible = "chip-media, jpu";
reg = <0 0xc02f8000 0 0x700>;
interrupt-parent = <&intc>;
interrupts = <87>;
jpu,chip-id = <0>;
clocks = <&ccu CLK_JPG>,
<&ccu CLK_DPU_MCLK>,
<&ccu CLK_ISP_BUS>;
clock-names ="cclk", "aclk", "iclk";
power-domains = <&power K1X_PMU_ISP_PWR_DOMAIN>;
resets = <&reset RESET_JPG>,
<&reset RESET_LCD_MCLK>,
<&reset RESET_ISP_CI>,
<&reset RESET_ISP>,
<&reset RESET_ISP_AHB>;
reset-names = "jpg_reset", "lcd_mclk_reset", "isp_ci_reset", "freset", "sreset";
jpu,cclk-max-frequency = /bits/ 64 <1000000000>;
jpu,cclk-min-frequency = <409000000>;
jpu,cclk-default-frequency = <614000000>;
page-size = <4>;
interconnects = <&dram_range5>;
interconnect-names = "dma-mem";
clk,pm-runtime,no-sleep;
status = "okay";
};
pwm_bl: lcd_backlight {
compatible = "pwm-backlight";
status = "disabled";
};
imggpu: imggpu@cac00000 {
compatible = "img,rgx";
interrupt-names = "rgxirq";
interrupt-parent = <&intc>;
interrupts = <75>;
reg = <0x0 0xcac00000 0x0 0x100000>;
reg-names = "rgxregs";
clocks = <&ccu CLK_GPU>;
clock-names = "gpu_clk";
resets = <&reset RESET_GPU>;
power-domains = <&power K1X_PMU_GPU_PWR_DOMAIN>;
interconnects = <&dram_range1>;
interconnect-names = "dma-mem";
status = "ok";
};
spacemit_crypto_engine@d8600000 {
compatible = "spacemit,crypto_engine";
spacemit-crypto-engine-0 = <0xd8600000 0x00100000>;
interrupt-parent = <&intc>;
interrupts = <113>;
num-engines = <1>;
clocks = <&ccu CLK_AES>;
resets = <&reset RESET_AES>;
interconnects = <&dram_range5>;
interconnect-names = "dma-mem";
status = "okay";
};
efuse: fuse@f0702800 {
compatible = "simple-mfd";
#address-cells = <1>;
#size-cells = <1>;
ranges = <0 0x0 0xf0702800 0x400>;
status = "disabled";
};
socinfo: socinfo@0 {
compatible = "spacemit,socinfo-k1x";
status = "disabled";
};
ciu: ciu@d4282c00 {
compatible = "spacemit,aquila-ciu", "spacemit,ciu", "syscon";
reg = <0x0 0xd4282c00 0x0 0x2d0>;
};
};
pmu {
compatible = "riscv,pmu";
riscv,event-to-mhpmevent =
/* BRANCH_INSTRUCTIONS */
<0x00005 0x0 0x01>,
/* BRANCH_MISSES */
<0x00006 0x0 0x02>,
/* STALLED_CYCLES_FRONTEND */
<0x00008 0x0 0x03>,
/* STALLED_CYCLES_BACKEND */
<0x00009 0x0 0x04>,
/* L1D_READ_ACCESS */
<0x10000 0x0 0x06>,
/* L1D_READ_MISS */
<0x10001 0x0 0x05>,
/* L1D_WRITE_ACCESS */
<0x10002 0x0 0x0a>,
/* L1D_WRITE_MISS */
<0x10003 0x0 0x09>,
/* L1I_READ_ACCESS */
<0x10008 0x0 0x0c>,
/* L1I_READ_MISS */
<0x10009 0x0 0x0b>,
/* L1I_PREFETCH_ACCESS */
<0x1000c 0x0 0x0e>,
/* L1I_PREFETCH_MISS */
<0x1000d 0x0 0x0d>,
/* DTLB_READ_MISS */
<0x10019 0x0 0x15>,
/* DTLB_WRITE_MISS */
<0x1001b 0x0 0x19>,
/* ITLB_READ_MISS */
<0x10021 0x0 0x1b>;
/* 16 valid counters: mhpmcounter3 ~ mhpmcounter18 */
riscv,event-to-mhpmcounters =
<0x00005 0x00006 0x0007fff8>,
<0x00008 0x00009 0x0007fff8>,
<0x10000 0x10003 0x0007fff8>,
<0x10008 0x10009 0x0007fff8>,
<0x1000c 0x1000d 0x0007fff8>,
<0x10019 0x10019 0x0007fff8>,
<0x1001b 0x1001b 0x0007fff8>,
<0x10021 0x10021 0x0007fff8>;
riscv,raw-event-to-mhpmcounters =
/*
* For convenience, we treat 0x1~0xff as valid indexes,
* but actually in hardware the valid indexes are 0x1~0xbd.
*/
<0x0 0x0 0xffffffff 0xffffff00 0x0007fff8>;
};
hdmi_dma: spacemit_snd_dma_hdmi {
compatible = "spacemit,spacemit-snd-dma-hdmi";
reg = <0 0xc08d0400 0 0x3c00>;
dmas = <&hdmi_adma>;
dma-names = "tx";
#sound-dai-cells = <0>;
status = "okay";
};
hdmi_sspa: spacemit_snd_sspa {
compatible = "spacemit,spacemit-snd-sspa";
reg = <0 0xc0883900 0 0x300>,
<0 0xc0882000 0 0x50>;
clocks = <&ccu CLK_RCPU_HDMIAUDIO>;
resets = <&reset RESET_RCPU_HDMIAUDIO>;
assigned-clocks = <&ccu CLK_RCPU_HDMIAUDIO>;
assigned-clock-rates = <48000>;
power-domains = <&power K1X_PMU_DUMMY_PWR_DOMAIN>;
#sound-dai-cells = <0>;
status = "okay";
};
dummy_codec: dummy_codec{
compatible = "spacemit,dummy-codec";
#sound-dai-cells = <0>;
status = "okay";
};
i2s0: i2s0@d4026000 {
compatible = "spacemit,spacemit-i2s0";
reg = <0x0 0xD4026000 0x0 0x30>;
reg-names = "i2s0";
#sound-dai-cells = <0>;
clocks = <&ccu CLK_SSPA0>;
clock-names = "sspa-clk";
resets = <&reset RESET_SSPA0>;
reset-names = "sspa-rst";
assigned-clocks = <&ccu CLK_SSPA0>;
assigned-clock-rates = <1536000>;
power-domains = <&power K1X_PMU_DUMMY_PWR_DOMAIN>;
status = "disabled";
};
i2s1: i2s1@d4026800 {
compatible = "spacemit,spacemit-i2s1";
reg = <0x0 0xD4026800 0x0 0x30>;
reg-names = "i2s1";
#sound-dai-cells = <0>;
clocks = <&ccu CLK_SSPA1>;
clock-names = "sspa-clk";
resets = <&reset RESET_SSPA1>;
reset-names = "sspa-rst";
assigned-clocks = <&ccu CLK_SSPA1>;
assigned-clock-rates = <1536000>;
power-domains = <&power K1X_PMU_DUMMY_PWR_DOMAIN>;
status = "disabled";
};
i2s0_dma: spacemit-snd-dma0 {
compatible = "spacemit,spacemit-snd-dma0";
dmas = <&pdma0 22 1
&pdma0 21 1>;
dma-names = "rx", "tx";
#sound-dai-cells = <0>;
status = "okay";
};
i2s1_dma: spacemit-snd-dma1 {
compatible = "spacemit,spacemit-snd-dma1";
dmas = <&pdma0 24 1
&pdma0 23 1>;
dma-names = "rx", "tx";
#sound-dai-cells = <0>;
status = "okay";
};
sound_hdmi: snd-card@0 {
compatible = "spacemit,simple-audio-card";
simple-audio-card,name = "snd-hdmi";
status = "disabled";
interconnects = <&dram_range4>;
interconnect-names = "dma-mem";
simple-audio-card,cpu {
sound-dai = <&hdmi_sspa>;
};
simple-audio-card,plat {
sound-dai = <&hdmi_dma>;
};
simple-audio-card,codec {
sound-dai = <&dummy_codec>;
};
};
sound_codec: snd-card@1 {
compatible = "spacemit,simple-audio-card";
simple-audio-card,format = "i2s";
status = "disabled";
interconnects = <&dram_range4>;
interconnect-names = "dma-mem";
spacemit,init-jack;
simple-audio-card,cpu {
sound-dai = <&i2s0>;
};
simple-audio-card,plat {
sound-dai = <&i2s0_dma>;
};
};
};
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C
1
https://gitee.com/bianbu-linux/linux-6.1.git
git@gitee.com:bianbu-linux/linux-6.1.git
bianbu-linux
linux-6.1
linux-6.1
bl-v1.0.y

搜索帮助