mirror of
https://source.denx.de/u-boot/u-boot.git
synced 2026-06-13 15:03:58 +03:00
Compare commits
353 Commits
v2017.05-r
...
v2017.05-r
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f6c1df44b8 | ||
|
|
af8ef2ed21 | ||
|
|
51f866e8da | ||
|
|
7ee16de58b | ||
|
|
d3cf9eb2d8 | ||
|
|
b644354a7c | ||
|
|
bc8e8fe40b | ||
|
|
a13110a99f | ||
|
|
faf1afc473 | ||
|
|
4e5439ac25 | ||
|
|
86d012657c | ||
|
|
008a610b4c | ||
|
|
6499b1976c | ||
|
|
1e9d6c159f | ||
|
|
bfc664ba8b | ||
|
|
35d1b6dc08 | ||
|
|
504b9f1a5f | ||
|
|
ad46af0e76 | ||
|
|
80016f5125 | ||
|
|
1878804a2b | ||
|
|
098d15bc77 | ||
|
|
b6ceefedf7 | ||
|
|
a97cb06154 | ||
|
|
3fea953698 | ||
|
|
ffe2052d6e | ||
|
|
21c340849d | ||
|
|
53378dac8d | ||
|
|
9413ad4f0d | ||
|
|
8f4b612333 | ||
|
|
ddae9fcddc | ||
|
|
56e19871dc | ||
|
|
9b36f74816 | ||
|
|
a89c3a04bc | ||
|
|
4e27b9a584 | ||
|
|
1330a726ff | ||
|
|
e39cecfdaf | ||
|
|
fd138ca1bd | ||
|
|
01a072c6cf | ||
|
|
fbeb337529 | ||
|
|
bdf1ea11c8 | ||
|
|
1e5eca7d42 | ||
|
|
57ca63b86e | ||
|
|
889239d6b5 | ||
|
|
b7bf4a9592 | ||
|
|
207835b13f | ||
|
|
842778a091 | ||
|
|
12d0b8f5f0 | ||
|
|
7682736c89 | ||
|
|
e6a419c5f7 | ||
|
|
c1a16c3ab5 | ||
|
|
af1b7286d8 | ||
|
|
7927831e21 | ||
|
|
5c73536738 | ||
|
|
09397d99ed | ||
|
|
19a8fed57c | ||
|
|
b52acd8f97 | ||
|
|
9e41d225ca | ||
|
|
5e7ae1afb2 | ||
|
|
57b6b62f56 | ||
|
|
29c0655173 | ||
|
|
451e824125 | ||
|
|
707cd012e2 | ||
|
|
e11b5e8d6e | ||
|
|
cc62ac7578 | ||
|
|
d70b338ec6 | ||
|
|
55ce55faaa | ||
|
|
a548bc511f | ||
|
|
4c0f3e7f7b | ||
|
|
45fa6f1dd5 | ||
|
|
8baa17832f | ||
|
|
80b9c3bb80 | ||
|
|
7a2d533eec | ||
|
|
7ce92a554a | ||
|
|
32f26f56b3 | ||
|
|
77810e638e | ||
|
|
b215fb3f34 | ||
|
|
7dde50d707 | ||
|
|
4db2b61fcf | ||
|
|
c86c0155dc | ||
|
|
d0c5c8d529 | ||
|
|
937386204d | ||
|
|
a3b02a1d49 | ||
|
|
b7b24a7a3c | ||
|
|
22e10be456 | ||
|
|
33034a77a5 | ||
|
|
ef33aa3dca | ||
|
|
334794f584 | ||
|
|
3b93f852ca | ||
|
|
6dbadb4d95 | ||
|
|
fc977b94a4 | ||
|
|
7abd5aabfa | ||
|
|
5bede73c6c | ||
|
|
730a7b4710 | ||
|
|
c00d7c33ba | ||
|
|
40e1422136 | ||
|
|
2aaa4ce4bd | ||
|
|
27ec910e8c | ||
|
|
110fa9797d | ||
|
|
f2f3c1576a | ||
|
|
cf468880c3 | ||
|
|
5a07a5f922 | ||
|
|
9319a756ff | ||
|
|
2dc63f7367 | ||
|
|
0de077df38 | ||
|
|
8c4e4101d6 | ||
|
|
9a6d2e2a6b | ||
|
|
b48bfc74ee | ||
|
|
5a8a8045a9 | ||
|
|
ea168e3351 | ||
|
|
c47a38b477 | ||
|
|
f156b5b597 | ||
|
|
6db06f94e1 | ||
|
|
6f8c351e98 | ||
|
|
1622559066 | ||
|
|
0342e335ba | ||
|
|
6823e6fe66 | ||
|
|
cdce1f7620 | ||
|
|
b997a73ee6 | ||
|
|
b2aa889411 | ||
|
|
f1683aa73c | ||
|
|
3eace37e50 | ||
|
|
6bacc73621 | ||
|
|
33f0086cb7 | ||
|
|
00c234f38f | ||
|
|
9d80b49a67 | ||
|
|
b80c0b9934 | ||
|
|
f479cec3b6 | ||
|
|
84c1dfe42f | ||
|
|
2018ef868c | ||
|
|
b69999efd8 | ||
|
|
ce2f9def82 | ||
|
|
52526ba42e | ||
|
|
fab70acf83 | ||
|
|
0254006b29 | ||
|
|
fc9ade56e3 | ||
|
|
f6f7e73d45 | ||
|
|
fbe62a6757 | ||
|
|
5b8299e320 | ||
|
|
40a808f173 | ||
|
|
9963890b8b | ||
|
|
92688a0993 | ||
|
|
01cce5fdd0 | ||
|
|
e391b1e64b | ||
|
|
4d0f0a4183 | ||
|
|
ca0d29e4f0 | ||
|
|
bb416465fd | ||
|
|
c5f8dd482b | ||
|
|
ae5564d1ae | ||
|
|
13c531e52a | ||
|
|
2b4c652896 | ||
|
|
cccab03a52 | ||
|
|
3dc0f8446a | ||
|
|
d24c7fbcc5 | ||
|
|
c04cf0a571 | ||
|
|
34bf497f9a | ||
|
|
e8d4031c02 | ||
|
|
2f0cac1bbf | ||
|
|
55cedd387a | ||
|
|
f5adbd41e9 | ||
|
|
67127e6fb2 | ||
|
|
34e085e889 | ||
|
|
7398e609b4 | ||
|
|
aad976b2a1 | ||
|
|
6dca5e8ab5 | ||
|
|
046732df50 | ||
|
|
7cac9bf122 | ||
|
|
5dc043ea88 | ||
|
|
546b3129d7 | ||
|
|
4fce6554dc | ||
|
|
2ff5183fba | ||
|
|
39dd0f6faa | ||
|
|
c8ab8ccdd2 | ||
|
|
e8d740f536 | ||
|
|
a5c7e41be3 | ||
|
|
f7c8f032f4 | ||
|
|
6e1eb089be | ||
|
|
1120dda8cc | ||
|
|
88fdfcd21d | ||
|
|
6e8069616e | ||
|
|
11b3156007 | ||
|
|
4c8865a239 | ||
|
|
b8c908762c | ||
|
|
b633b9c8fe | ||
|
|
737af81927 | ||
|
|
d7ebbe9dc4 | ||
|
|
04735a8fc4 | ||
|
|
089795090a | ||
|
|
b09ece0836 | ||
|
|
306b236bc1 | ||
|
|
0dcf18c69d | ||
|
|
f2ac8958e4 | ||
|
|
fad6a2b771 | ||
|
|
634fcf0848 | ||
|
|
52609d753b | ||
|
|
2b79fba691 | ||
|
|
4015949f1f | ||
|
|
dc11d83a2e | ||
|
|
bf4d0495d2 | ||
|
|
3f66149d9f | ||
|
|
4c4da9fbff | ||
|
|
5bb7318f9c | ||
|
|
f2288c5a5b | ||
|
|
411278b858 | ||
|
|
3f18ff07c8 | ||
|
|
4b0d506ed3 | ||
|
|
687d207374 | ||
|
|
f7d4d9e52c | ||
|
|
d6a7e0cbe3 | ||
|
|
522c282ff4 | ||
|
|
2bc734b1eb | ||
|
|
ed8f2a286d | ||
|
|
58c4020cf0 | ||
|
|
ffe47eb72c | ||
|
|
8cab65bf9a | ||
|
|
6a3a226eb3 | ||
|
|
d2fdcc76e8 | ||
|
|
ff93c28265 | ||
|
|
c8564b24ab | ||
|
|
d482a8dfba | ||
|
|
adc706b2fe | ||
|
|
5fe4c9f4d2 | ||
|
|
e915d2012f | ||
|
|
173aafbf9d | ||
|
|
aa049152dc | ||
|
|
0269dfae0e | ||
|
|
fb1c43cc37 | ||
|
|
594b4cc732 | ||
|
|
71d2c07028 | ||
|
|
ea3f750c73 | ||
|
|
0e434ee8da | ||
|
|
4d555ae3f5 | ||
|
|
e3a96d974d | ||
|
|
9938fba8e1 | ||
|
|
b7ad598dde | ||
|
|
471b11765c | ||
|
|
62b747c4c3 | ||
|
|
8b6edb27e0 | ||
|
|
01abae4d04 | ||
|
|
d53ecad92f | ||
|
|
891f7ae633 | ||
|
|
5a6f06f696 | ||
|
|
001f3142c3 | ||
|
|
1fbf97dc45 | ||
|
|
e47b2d674f | ||
|
|
96d4b75c0d | ||
|
|
e5fb573f64 | ||
|
|
056285fd45 | ||
|
|
479312233c | ||
|
|
5e924a13e7 | ||
|
|
76b00aca4f | ||
|
|
abf7f4c704 | ||
|
|
0f079eb51c | ||
|
|
80d4bcd3ec | ||
|
|
b56db48615 | ||
|
|
c67f432ecd | ||
|
|
088454cde2 | ||
|
|
52c411805c | ||
|
|
eca803756a | ||
|
|
664ee4c995 | ||
|
|
76d1d02fd2 | ||
|
|
8749fa6af3 | ||
|
|
689697785e | ||
|
|
d891ab95c2 | ||
|
|
727e94a4ac | ||
|
|
11b33e64dd | ||
|
|
70e2aaf380 | ||
|
|
1793e78225 | ||
|
|
75efc34bfa | ||
|
|
26345552d6 | ||
|
|
d593c61672 | ||
|
|
c252c06857 | ||
|
|
671549e5b0 | ||
|
|
2d986c0f54 | ||
|
|
bb967240bb | ||
|
|
70cc0c34b6 | ||
|
|
936478e797 | ||
|
|
ea3310e8aa | ||
|
|
2a4058c240 | ||
|
|
fcea480d1d | ||
|
|
c3b7cfe15e | ||
|
|
433647a7ef | ||
|
|
e7bd15ea15 | ||
|
|
997bde6038 | ||
|
|
7b82a229e5 | ||
|
|
170817a497 | ||
|
|
a982bbbc1f | ||
|
|
ce6912e128 | ||
|
|
bc613d85bd | ||
|
|
f4047c2e22 | ||
|
|
85db5831ad | ||
|
|
4d24e5f175 | ||
|
|
e4916e850b | ||
|
|
1afd0f6f17 | ||
|
|
239ae4a912 | ||
|
|
24f927c527 | ||
|
|
1b8220aa2a | ||
|
|
bc85aa4030 | ||
|
|
706865afe5 | ||
|
|
7da8680b26 | ||
|
|
43b5c78d8d | ||
|
|
aad10a049d | ||
|
|
0b3ce83d7b | ||
|
|
3c2bbd5886 | ||
|
|
094f67a6c5 | ||
|
|
db4cc9a034 | ||
|
|
d02d11f8ae | ||
|
|
47197682ef | ||
|
|
ab4458bdb5 | ||
|
|
3c00a2c8b5 | ||
|
|
07352c9600 | ||
|
|
3af803a502 | ||
|
|
ba3bf3879e | ||
|
|
ca0ab2736e | ||
|
|
1f08aa1c9f | ||
|
|
65d833038e | ||
|
|
61dff33b52 | ||
|
|
476f7090bf | ||
|
|
f93a51186a | ||
|
|
88cb1a9eb0 | ||
|
|
cc232a9d07 | ||
|
|
02a7d83301 | ||
|
|
f4f57c58b5 | ||
|
|
f785357073 | ||
|
|
007a43524b | ||
|
|
78959d4cbf | ||
|
|
3408509f6f | ||
|
|
f46b859bfb | ||
|
|
3c732de9bf | ||
|
|
232cf96222 | ||
|
|
f3f1af939e | ||
|
|
3082775692 | ||
|
|
3d54eabcaf | ||
|
|
111bcc4fb6 | ||
|
|
f3edf8b18f | ||
|
|
483a8014e9 | ||
|
|
38130651b7 | ||
|
|
425e93cc6c | ||
|
|
8908fd66b5 | ||
|
|
57bbc37909 | ||
|
|
883c19a779 | ||
|
|
5dfbd7bad8 | ||
|
|
1930168001 | ||
|
|
a2f8a45696 | ||
|
|
d3a2bcf741 | ||
|
|
d576d6f31c | ||
|
|
1faca6ad63 | ||
|
|
214fb19bcc | ||
|
|
94a1d6c602 | ||
|
|
8d1a6ff825 | ||
|
|
b4f4b0f54b | ||
|
|
001cdbbb32 | ||
|
|
2cc416a836 | ||
|
|
6b2781f679 |
@@ -40,7 +40,7 @@ install:
|
||||
- ln -s travis-ci /tmp/uboot-test-hooks/py/`hostname`
|
||||
# prepare buildman environment
|
||||
- echo -e "[toolchain]\nroot = /usr" > ~/.buildman
|
||||
- echo -e "\n[toolchain-alias]\nblackfin = bfin\nsh = sh4\nopenrisc = or32" >> ~/.buildman
|
||||
- echo -e "\n[toolchain-alias]\nsh = sh4\nopenrisc = or32" >> ~/.buildman
|
||||
- cat ~/.buildman
|
||||
- virtualenv /tmp/venv
|
||||
- . /tmp/venv/bin/activate
|
||||
@@ -60,7 +60,6 @@ env:
|
||||
before_script:
|
||||
# install toolchains based on TOOLCHAIN} variable
|
||||
- if [[ "${TOOLCHAIN}" == *avr32* ]]; then ./tools/buildman/buildman --fetch-arch avr32 ; fi
|
||||
- if [[ "${TOOLCHAIN}" == *bfin* ]]; then ./tools/buildman/buildman --fetch-arch bfin ; fi
|
||||
- if [[ "${TOOLCHAIN}" == *m68k* ]]; then ./tools/buildman/buildman --fetch-arch m68k ; fi
|
||||
- if [[ "${TOOLCHAIN}" == *microblaze* ]]; then ./tools/buildman/buildman --fetch-arch microblaze ; fi
|
||||
- if [[ "${TOOLCHAIN}" == *mips* ]]; then ./tools/buildman/buildman --fetch-arch mips ; fi
|
||||
@@ -153,7 +152,7 @@ matrix:
|
||||
- env:
|
||||
- BUILDMAN="sun7i"
|
||||
- env:
|
||||
- BUILDMAN="sun8i"
|
||||
- BUILDMAN="sun8i -x orangepi_pc2"
|
||||
- env:
|
||||
- BUILDMAN="sun9i"
|
||||
- env:
|
||||
|
||||
4
Kconfig
4
Kconfig
@@ -284,9 +284,9 @@ config SYS_EXTRA_OPTIONS
|
||||
new boards should not use this option.
|
||||
|
||||
config SYS_TEXT_BASE
|
||||
depends on SPARC || ARC || X86 || ARCH_UNIPHIER || ARCH_ZYNQMP || \
|
||||
depends on ARC || X86 || ARCH_UNIPHIER || ARCH_ZYNQMP || \
|
||||
(M68K && !TARGET_ASTRO_MCF5373L) || MICROBLAZE || MIPS || \
|
||||
ARCH_ZYNQ
|
||||
ARCH_ZYNQ || ARCH_KEYSTONE
|
||||
depends on !EFI_APP
|
||||
hex "Text Base"
|
||||
help
|
||||
|
||||
23
MAINTAINERS
23
MAINTAINERS
@@ -93,10 +93,9 @@ S: Maintained
|
||||
T: git git://git.denx.de/u-boot-imx.git
|
||||
F: arch/arm/cpu/arm1136/mx*/
|
||||
F: arch/arm/cpu/arm926ejs/mx*/
|
||||
F: arch/arm/cpu/arm926ejs/imx/
|
||||
F: arch/arm/cpu/armv7/mx*/
|
||||
F: arch/arm/cpu/armv7/vf610/
|
||||
F: arch/arm/cpu/imx-common/
|
||||
F: arch/arm/imx-common/
|
||||
F: arch/arm/include/asm/arch-imx/
|
||||
F: arch/arm/include/asm/arch-mx*/
|
||||
F: arch/arm/include/asm/arch-vf610/
|
||||
@@ -174,9 +173,12 @@ F: arch/arm/include/asm/arch-sti*/
|
||||
ARM SUNXI
|
||||
M: Jagan Teki <jagan@openedev.com>
|
||||
M: Maxime Ripard <maxime.ripard@free-electrons.com>
|
||||
S: Maintained
|
||||
T: git git://git.denx.de/u-boot-sunxi.git
|
||||
F: arch/arm/cpu/armv7/sunxi/
|
||||
F: arch/arm/include/asm/arch-sunxi/
|
||||
F: arch/arm/mach-sunxi/
|
||||
F: board/sunxi/
|
||||
|
||||
ARM TEGRA
|
||||
M: Tom Warren <twarren@nvidia.com>
|
||||
@@ -222,12 +224,6 @@ S: Maintained
|
||||
T: git git://git.denx.de/u-boot-avr32.git
|
||||
F: arch/avr32/
|
||||
|
||||
BLACKFIN
|
||||
M: Sonic Zhang <sonic.adi@gmail.com>
|
||||
S: Maintained
|
||||
T: git git://git.denx.de/u-boot-blackfin.git
|
||||
F: arch/blackfin/
|
||||
|
||||
BUILDMAN
|
||||
M: Simon Glass <sjg@chromium.org>
|
||||
S: Maintained
|
||||
@@ -314,11 +310,6 @@ S: Maintained
|
||||
T: git git://git.denx.de/u-boot-mmc.git
|
||||
F: drivers/mmc/
|
||||
|
||||
OPENRISC
|
||||
M: Stefan Kristiansson <stefan.kristiansson@saunalahti.fi>
|
||||
S: Maintained
|
||||
F: arch/openrisc/
|
||||
|
||||
PATMAN
|
||||
M: Simon Glass <sjg@chromium.org>
|
||||
S: Maintained
|
||||
@@ -420,12 +411,6 @@ S: Maintained
|
||||
T: git git://git.denx.de/u-boot-sh.git
|
||||
F: arch/sh/
|
||||
|
||||
SPARC
|
||||
#M: Francois Retief <fgretief@spaceteq.co.za>
|
||||
S: Orphaned (Since 2016-02)
|
||||
T: git git://git.denx.de/u-boot-sparc.git
|
||||
F: arch/sparc/
|
||||
|
||||
SPI
|
||||
M: Jagan Teki <jagan@openedev.com>
|
||||
S: Maintained
|
||||
|
||||
14
Makefile
14
Makefile
@@ -5,7 +5,7 @@
|
||||
VERSION = 2017
|
||||
PATCHLEVEL = 05
|
||||
SUBLEVEL =
|
||||
EXTRAVERSION = -rc1
|
||||
EXTRAVERSION = -rc2
|
||||
NAME =
|
||||
|
||||
# *DOCUMENTATION*
|
||||
@@ -348,7 +348,7 @@ OBJCOPY = $(CROSS_COMPILE)objcopy
|
||||
OBJDUMP = $(CROSS_COMPILE)objdump
|
||||
AWK = awk
|
||||
PERL = perl
|
||||
PYTHON = python
|
||||
PYTHON ?= python
|
||||
DTC = dtc
|
||||
CHECK = sparse
|
||||
|
||||
@@ -805,6 +805,10 @@ ALL-y += $(CONFIG_BUILD_TARGET:"%"=%)
|
||||
endif
|
||||
|
||||
LDFLAGS_u-boot += $(LDFLAGS_FINAL)
|
||||
|
||||
# Avoid 'Not enough room for program headers' error on binutils 2.28 onwards.
|
||||
LDFLAGS_u-boot += $(call ld-option, --no-dynamic-linker)
|
||||
|
||||
ifneq ($(CONFIG_SYS_TEXT_BASE),)
|
||||
LDFLAGS_u-boot += -Ttext $(CONFIG_SYS_TEXT_BASE)
|
||||
endif
|
||||
@@ -1345,13 +1349,17 @@ spl/u-boot-spl: tools prepare \
|
||||
spl/sunxi-spl.bin: spl/u-boot-spl
|
||||
@:
|
||||
|
||||
spl/sunxi-spl-with-ecc.bin: spl/sunxi-spl.bin
|
||||
@:
|
||||
|
||||
spl/u-boot-spl.sfp: spl/u-boot-spl
|
||||
@:
|
||||
|
||||
spl/boot.bin: spl/u-boot-spl
|
||||
@:
|
||||
|
||||
tpl/u-boot-tpl.bin: tools prepare
|
||||
tpl/u-boot-tpl.bin: tools prepare \
|
||||
$(if $(CONFIG_OF_SEPARATE)$(CONFIG_SPL_OF_PLATDATA),dts/dt.dtb)
|
||||
$(Q)$(MAKE) obj=tpl -f $(srctree)/scripts/Makefile.spl all
|
||||
|
||||
TAG_SUBDIRS := $(patsubst %,$(srctree)/%,$(u-boot-dirs) include)
|
||||
|
||||
9
README
9
README
@@ -137,7 +137,6 @@ Directory Hierarchy:
|
||||
/arc Files generic to ARC architecture
|
||||
/arm Files generic to ARM architecture
|
||||
/avr32 Files generic to AVR32 architecture
|
||||
/blackfin Files generic to Analog Devices Blackfin architecture
|
||||
/m68k Files generic to m68k architecture
|
||||
/microblaze Files generic to microblaze architecture
|
||||
/mips Files generic to MIPS architecture
|
||||
@@ -147,7 +146,6 @@ Directory Hierarchy:
|
||||
/powerpc Files generic to PowerPC architecture
|
||||
/sandbox Files generic to HW-independent "sandbox"
|
||||
/sh Files generic to SH architecture
|
||||
/sparc Files generic to SPARC architecture
|
||||
/x86 Files generic to x86 architecture
|
||||
/api Machine/arch independent API for external apps
|
||||
/board Board dependent files
|
||||
@@ -2869,8 +2867,6 @@ The following options need to be configured:
|
||||
|
||||
CONFIG_AT91SAM9XE
|
||||
enable special bootcounter support on at91sam9xe based boards.
|
||||
CONFIG_BLACKFIN
|
||||
enable special bootcounter support on blackfin based boards.
|
||||
CONFIG_SOC_DA8XX
|
||||
enable special bootcounter support on da850 based boards.
|
||||
CONFIG_BOOTCOUNT_RAM
|
||||
@@ -5911,11 +5907,6 @@ For PowerPC, the following registers have specific use:
|
||||
average for all boards 752 bytes for the whole U-Boot image,
|
||||
624 text + 127 data).
|
||||
|
||||
On Blackfin, the normal C ABI (except for P3) is followed as documented here:
|
||||
http://docs.blackfin.uclinux.org/doku.php?id=application_binary_interface
|
||||
|
||||
==> U-Boot will use P3 to hold a pointer to the global data
|
||||
|
||||
On ARM, the following registers are used:
|
||||
|
||||
R0: function argument word/integer result
|
||||
|
||||
@@ -331,10 +331,14 @@ lbasize_t dev_read_stor(void *cookie, void *buf, lbasize_t len, lbastart_t start
|
||||
if (!dev_stor_is_valid(type, dd))
|
||||
return 0;
|
||||
|
||||
#ifdef CONFIG_BLK
|
||||
return blk_dread(dd, start, len, buf);
|
||||
#else
|
||||
if ((dd->block_read) == NULL) {
|
||||
debugf("no block_read() for device 0x%08x\n", cookie);
|
||||
return 0;
|
||||
}
|
||||
|
||||
return dd->block_read(dd, start, len, buf);
|
||||
#endif /* defined(CONFIG_BLK) */
|
||||
}
|
||||
|
||||
14
arch/Kconfig
14
arch/Kconfig
@@ -27,10 +27,6 @@ config AVR32
|
||||
bool "AVR32 architecture"
|
||||
select CREATE_ARCH_SYMLINK
|
||||
|
||||
config BLACKFIN
|
||||
bool "Blackfin architecture"
|
||||
select ARCH_MISC_INIT
|
||||
|
||||
config M68K
|
||||
bool "M68000 architecture"
|
||||
select HAVE_PRIVATE_LIBGCC
|
||||
@@ -55,9 +51,6 @@ config NIOS2
|
||||
select DM
|
||||
select CPU
|
||||
|
||||
config OPENRISC
|
||||
bool "OpenRISC architecture"
|
||||
|
||||
config PPC
|
||||
bool "PowerPC architecture"
|
||||
select HAVE_PRIVATE_LIBGCC
|
||||
@@ -80,10 +73,6 @@ config SH
|
||||
bool "SuperH architecture"
|
||||
select HAVE_PRIVATE_LIBGCC
|
||||
|
||||
config SPARC
|
||||
bool "SPARC architecture"
|
||||
select CREATE_ARCH_SYMLINK
|
||||
|
||||
config X86
|
||||
bool "x86 architecture"
|
||||
select CREATE_ARCH_SYMLINK
|
||||
@@ -162,16 +151,13 @@ config SYS_CONFIG_NAME
|
||||
source "arch/arc/Kconfig"
|
||||
source "arch/arm/Kconfig"
|
||||
source "arch/avr32/Kconfig"
|
||||
source "arch/blackfin/Kconfig"
|
||||
source "arch/m68k/Kconfig"
|
||||
source "arch/microblaze/Kconfig"
|
||||
source "arch/mips/Kconfig"
|
||||
source "arch/nds32/Kconfig"
|
||||
source "arch/nios2/Kconfig"
|
||||
source "arch/openrisc/Kconfig"
|
||||
source "arch/powerpc/Kconfig"
|
||||
source "arch/sandbox/Kconfig"
|
||||
source "arch/sh/Kconfig"
|
||||
source "arch/sparc/Kconfig"
|
||||
source "arch/x86/Kconfig"
|
||||
source "arch/xtensa/Kconfig"
|
||||
|
||||
@@ -1,12 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) 2013-2015 Synopsys, Inc. All rights reserved.
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-2.0+
|
||||
*/
|
||||
|
||||
#ifndef _ASM_ARC_INIT_HELPERS_H
|
||||
#define _ASM_ARC_INIT_HELPERS_H
|
||||
|
||||
int init_cache_f_r(void);
|
||||
|
||||
#endif /* _ASM_ARC_INIT_HELPERS_H */
|
||||
@@ -1,16 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) 2013-2015 Synopsys, Inc. All rights reserved.
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-2.0+
|
||||
*/
|
||||
|
||||
#ifndef _ASM_ARC_RELOCATE_H
|
||||
#define _ASM_ARC_RELOCATE_H
|
||||
|
||||
#include <common.h>
|
||||
|
||||
int copy_uboot_to_ram(void);
|
||||
int clear_bss(void);
|
||||
int do_elf_reloc_fixups(void);
|
||||
|
||||
#endif /* _ASM_ARC_RELOCATE_H */
|
||||
@@ -59,10 +59,16 @@ static unsigned int __before_slc_op(const int op)
|
||||
|
||||
static void __after_slc_op(const int op, unsigned int reg)
|
||||
{
|
||||
if (op & OP_FLUSH) /* flush / flush-n-inv both wait */
|
||||
if (op & OP_FLUSH) { /* flush / flush-n-inv both wait */
|
||||
/*
|
||||
* Make sure "busy" bit reports correct status,
|
||||
* see STAR 9001165532
|
||||
*/
|
||||
read_aux_reg(ARC_AUX_SLC_CTRL);
|
||||
while (read_aux_reg(ARC_AUX_SLC_CTRL) &
|
||||
DC_CTRL_FLUSH_STATUS)
|
||||
;
|
||||
}
|
||||
|
||||
/* Switch back to default Invalidate mode */
|
||||
if (op == OP_INV)
|
||||
|
||||
@@ -28,3 +28,9 @@ int arch_early_init_r(void)
|
||||
gd->bd->bi_memsize = CONFIG_SYS_SDRAM_SIZE;
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* This is a dummy function on arc */
|
||||
int dram_init(void)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -214,6 +214,10 @@ config ENABLE_ARM_SOC_BOOT0_HOOK
|
||||
ARM_SOC_BOOT0_HOOK which contains the required assembler
|
||||
preprocessor code.
|
||||
|
||||
config ARM_CORTEX_CPU_IS_UP
|
||||
bool
|
||||
default n
|
||||
|
||||
config USE_ARCH_MEMCPY
|
||||
bool "Use an assembly optimized implementation of memcpy"
|
||||
default y
|
||||
@@ -1238,6 +1242,8 @@ source "arch/arm/cpu/armv8/Kconfig"
|
||||
|
||||
source "arch/arm/imx-common/Kconfig"
|
||||
|
||||
source "board/aries/m28evk/Kconfig"
|
||||
source "board/aries/m53evk/Kconfig"
|
||||
source "board/bosch/shc/Kconfig"
|
||||
source "board/BuR/brxre1/Kconfig"
|
||||
source "board/BuR/brppt1/Kconfig"
|
||||
@@ -1258,8 +1264,6 @@ source "board/cirrus/edb93xx/Kconfig"
|
||||
source "board/compulab/cm_t335/Kconfig"
|
||||
source "board/compulab/cm_t43/Kconfig"
|
||||
source "board/creative/xfi3/Kconfig"
|
||||
source "board/denx/m28evk/Kconfig"
|
||||
source "board/denx/m53evk/Kconfig"
|
||||
source "board/freescale/ls2080a/Kconfig"
|
||||
source "board/freescale/ls2080aqds/Kconfig"
|
||||
source "board/freescale/ls2080ardb/Kconfig"
|
||||
|
||||
@@ -120,7 +120,7 @@ endif
|
||||
# limit ourselves to the sections we want in the .bin.
|
||||
ifdef CONFIG_ARM64
|
||||
OBJCOPYFLAGS += -j .text -j .secure_text -j .secure_data -j .rodata -j .data \
|
||||
-j .u_boot_list -j .rela.dyn
|
||||
-j .u_boot_list -j .rela.dyn -j .got -j .got.plt
|
||||
else
|
||||
OBJCOPYFLAGS += -j .text -j .secure_text -j .secure_data -j .rodata -j .hash \
|
||||
-j .data -j .got -j .got.plt -j .u_boot_list -j .rel.dyn
|
||||
|
||||
@@ -12,12 +12,6 @@
|
||||
|
||||
#include <common.h>
|
||||
|
||||
#ifdef CONFIG_USE_IRQ
|
||||
void do_irq (struct pt_regs *pt_regs)
|
||||
{
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_TEGRA)
|
||||
static ulong timestamp;
|
||||
static ulong lastdec;
|
||||
|
||||
@@ -8,7 +8,6 @@
|
||||
extra-y = start.o
|
||||
|
||||
obj-y += cpu.o
|
||||
obj-$(CONFIG_USE_IRQ) += interrupts.o
|
||||
|
||||
obj-$(CONFIG_EP93XX) += ep93xx/
|
||||
obj-$(CONFIG_IMX) += imx/
|
||||
|
||||
@@ -1,27 +0,0 @@
|
||||
/*
|
||||
* (C) Copyright 2002
|
||||
* Sysgo Real-Time Solutions, GmbH <www.elinos.com>
|
||||
* Marius Groeger <mgroeger@sysgo.de>
|
||||
*
|
||||
* (C) Copyright 2002
|
||||
* Sysgo Real-Time Solutions, GmbH <www.elinos.com>
|
||||
* Alex Zuepke <azu@sysgo.de>
|
||||
*
|
||||
* (C) Copyright 2002
|
||||
* Gary Jennejohn, DENX Software Engineering, <garyj@denx.de>
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-2.0+
|
||||
*/
|
||||
|
||||
#include <common.h>
|
||||
#include <asm/proc-armv/ptrace.h>
|
||||
|
||||
#if defined (CONFIG_ARCH_INTEGRATOR)
|
||||
void do_irq (struct pt_regs *pt_regs)
|
||||
{
|
||||
/* ASSUMED to be a timer interrupt */
|
||||
/* Just clear it - count handled in */
|
||||
/* integratorap.c */
|
||||
*(volatile ulong *)(CONFIG_SYS_TIMERBASE + 0x0C) = 0;
|
||||
}
|
||||
#endif
|
||||
@@ -5,7 +5,6 @@
|
||||
# SPDX-License-Identifier: GPL-2.0+
|
||||
#
|
||||
|
||||
obj-$(CONFIG_USE_IRQ) += interrupts.o
|
||||
obj-$(CONFIG_DISPLAY_CPUINFO) += cpu_info.o
|
||||
obj-y += speed.o
|
||||
obj-y += timer.o
|
||||
|
||||
@@ -1,26 +0,0 @@
|
||||
/*
|
||||
* (C) Copyright 2002
|
||||
* Sysgo Real-Time Solutions, GmbH <www.elinos.com>
|
||||
* Marius Groeger <mgroeger@sysgo.de>
|
||||
*
|
||||
* (C) Copyright 2002
|
||||
* Sysgo Real-Time Solutions, GmbH <www.elinos.com>
|
||||
* Alex Zuepke <azu@sysgo.de>
|
||||
*
|
||||
* (C) Copyright 2002
|
||||
* Gary Jennejohn, DENX Software Engineering, <gj@denx.de>
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-2.0+
|
||||
*/
|
||||
|
||||
#include <common.h>
|
||||
|
||||
#include <asm/arch/s3c24x0_cpu.h>
|
||||
#include <asm/proc-armv/ptrace.h>
|
||||
|
||||
void do_irq (struct pt_regs *pt_regs)
|
||||
{
|
||||
struct s3c24x0_interrupt *irq = s3c24x0_get_base_interrupt();
|
||||
u_int32_t intpnd = readl(&irq->INTPND);
|
||||
|
||||
}
|
||||
@@ -108,7 +108,9 @@ int dram_init(void)
|
||||
* If this function is not defined here,
|
||||
* board.c alters dram bank zero configuration defined above.
|
||||
*/
|
||||
void dram_init_banksize(void)
|
||||
int dram_init_banksize(void)
|
||||
{
|
||||
dram_init();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
|
||||
.align 5
|
||||
|
||||
#define ONE_MS (GENERIC_TIMER_CLK / 1000)
|
||||
#define ONE_MS (COUNTER_FREQUENCY / 1000)
|
||||
#define RESET_WAIT (30 * ONE_MS)
|
||||
|
||||
.globl psci_version
|
||||
|
||||
@@ -91,7 +91,7 @@ int arch_soc_init(void)
|
||||
out_be32(&scfg->qspi_cfg, SCFG_QSPI_CLKSEL);
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_FSL_DCU_FB
|
||||
#ifdef CONFIG_VIDEO_FSL_DCU_FB
|
||||
out_be32(&scfg->pixclkcr, SCFG_PIXCLKCR_PXCKEN);
|
||||
#endif
|
||||
|
||||
|
||||
@@ -62,7 +62,7 @@ int timer_init(void)
|
||||
/* Enable System Counter */
|
||||
writel(SYS_COUNTER_CTRL_ENABLE, &sctr->cntcr);
|
||||
|
||||
freq = GENERIC_TIMER_CLK;
|
||||
freq = COUNTER_FREQUENCY;
|
||||
asm("mcr p15, 0, %0, c14, c0, 0" : : "r" (freq));
|
||||
|
||||
/* Set PL1 Physical Timer Ctrl */
|
||||
|
||||
@@ -155,6 +155,19 @@ config TARGET_MX6CUBOXI
|
||||
select BOARD_LATE_INIT
|
||||
select SUPPORT_SPL
|
||||
|
||||
config TARGET_MX6LOGICPD
|
||||
bool "Logic PD i.MX6 SOM"
|
||||
select BOARD_EARLY_INIT_F
|
||||
select BOARD_LATE_INIT
|
||||
select DM
|
||||
select DM_ETH
|
||||
select DM_GPIO
|
||||
select DM_I2C
|
||||
select DM_MMC
|
||||
select DM_PMIC
|
||||
select DM_REGULATOR
|
||||
select OF_CONTROL
|
||||
|
||||
config TARGET_MX6QARM2
|
||||
bool "mx6qarm2"
|
||||
|
||||
@@ -172,6 +185,7 @@ config TARGET_MX6Q_ICORE
|
||||
|
||||
config TARGET_MX6Q_ICORE_RQS
|
||||
bool "Support Engicam i.Core RQS"
|
||||
select BOARD_LATE_INIT
|
||||
select MX6QDL
|
||||
select OF_CONTROL
|
||||
select DM
|
||||
@@ -253,6 +267,7 @@ config TARGET_MX6UL_GEAM
|
||||
select SUPPORT_SPL
|
||||
config TARGET_MX6UL_ISIOT
|
||||
bool "Support Engicam Is.IoT MX6UL"
|
||||
select BOARD_LATE_INIT
|
||||
select MX6UL
|
||||
select OF_CONTROL
|
||||
select DM
|
||||
@@ -404,6 +419,7 @@ source "board/gateworks/gw_ventana/Kconfig"
|
||||
source "board/kosagi/novena/Kconfig"
|
||||
source "board/samtec/vining_2000/Kconfig"
|
||||
source "board/liebherr/mccmon6/Kconfig"
|
||||
source "board/logicpd/imx6/Kconfig"
|
||||
source "board/seco/Kconfig"
|
||||
source "board/solidrun/mx6cuboxi/Kconfig"
|
||||
source "board/technexion/pico-imx6ul/Kconfig"
|
||||
|
||||
@@ -504,7 +504,9 @@ u32 decode_pll(enum pll_clocks pll)
|
||||
num = readl(&scg1_regs->spllnum);
|
||||
denom = readl(&scg1_regs->splldenom);
|
||||
|
||||
return (infreq / pre_div) * (mult + num / denom);
|
||||
infreq = infreq / pre_div;
|
||||
|
||||
return infreq * mult + infreq * num / denom;
|
||||
|
||||
case PLL_A7_APLL:
|
||||
reg = readl(&scg1_regs->apllcsr);
|
||||
@@ -531,7 +533,9 @@ u32 decode_pll(enum pll_clocks pll)
|
||||
num = readl(&scg1_regs->apllnum);
|
||||
denom = readl(&scg1_regs->aplldenom);
|
||||
|
||||
return (infreq / pre_div) * (mult + num / denom);
|
||||
infreq = infreq / pre_div;
|
||||
|
||||
return infreq * mult + infreq * num / denom;
|
||||
|
||||
case PLL_USB:
|
||||
reg = readl(&scg1_regs->upllcsr);
|
||||
|
||||
@@ -188,11 +188,11 @@ ENTRY(_nonsec_init)
|
||||
* we do this here instead.
|
||||
* But first check if we have the generic timer.
|
||||
*/
|
||||
#ifdef CONFIG_TIMER_CLK_FREQ
|
||||
#ifdef COUNTER_FREQUENCY
|
||||
mrc p15, 0, r0, c0, c1, 1 @ read ID_PFR1
|
||||
and r0, r0, #CPUID_ARM_GENTIMER_MASK @ mask arch timer bits
|
||||
cmp r0, #(1 << CPUID_ARM_GENTIMER_SHIFT)
|
||||
ldreq r1, =CONFIG_TIMER_CLK_FREQ
|
||||
ldreq r1, =COUNTER_FREQUENCY
|
||||
mcreq p15, 0, r1, c14, c0, 0 @ write CNTFRQ
|
||||
#endif
|
||||
|
||||
|
||||
@@ -46,7 +46,7 @@ static u32 __secure cp15_read_cntp_ctl(void)
|
||||
return val;
|
||||
}
|
||||
|
||||
#define ONE_MS (CONFIG_TIMER_CLK_FREQ / 1000)
|
||||
#define ONE_MS (COUNTER_FREQUENCY / 1000)
|
||||
|
||||
static void __secure __mdelay(u32 ms)
|
||||
{
|
||||
|
||||
@@ -6,6 +6,5 @@
|
||||
#
|
||||
|
||||
extra-y := start.o
|
||||
obj-y += cpu.o
|
||||
|
||||
obj-y += cpu.o cache.o
|
||||
obj-$(CONFIG_SYS_ARCH_TIMER) += systick-timer.o
|
||||
|
||||
336
arch/arm/cpu/armv7m/cache.c
Normal file
336
arch/arm/cpu/armv7m/cache.c
Normal file
@@ -0,0 +1,336 @@
|
||||
/*
|
||||
* (C) Copyright 2017
|
||||
* Vikas Manocha, ST Micoelectronics, vikas.manocha@st.com.
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-2.0+
|
||||
*/
|
||||
|
||||
#include <common.h>
|
||||
#include <errno.h>
|
||||
#include <asm/armv7m.h>
|
||||
#include <asm/io.h>
|
||||
|
||||
/* Cache maintenance operation registers */
|
||||
|
||||
#define V7M_CACHE_REG_ICIALLU ((u32 *)(V7M_CACHE_MAINT_BASE + 0x00))
|
||||
#define INVAL_ICACHE_POU 0
|
||||
#define V7M_CACHE_REG_ICIMVALU ((u32 *)(V7M_CACHE_MAINT_BASE + 0x08))
|
||||
#define V7M_CACHE_REG_DCIMVAC ((u32 *)(V7M_CACHE_MAINT_BASE + 0x0C))
|
||||
#define V7M_CACHE_REG_DCISW ((u32 *)(V7M_CACHE_MAINT_BASE + 0x10))
|
||||
#define V7M_CACHE_REG_DCCMVAU ((u32 *)(V7M_CACHE_MAINT_BASE + 0x14))
|
||||
#define V7M_CACHE_REG_DCCMVAC ((u32 *)(V7M_CACHE_MAINT_BASE + 0x18))
|
||||
#define V7M_CACHE_REG_DCCSW ((u32 *)(V7M_CACHE_MAINT_BASE + 0x1C))
|
||||
#define V7M_CACHE_REG_DCCIMVAC ((u32 *)(V7M_CACHE_MAINT_BASE + 0x20))
|
||||
#define V7M_CACHE_REG_DCCISW ((u32 *)(V7M_CACHE_MAINT_BASE + 0x24))
|
||||
#define WAYS_SHIFT 30
|
||||
#define SETS_SHIFT 5
|
||||
|
||||
/* armv7m processor feature registers */
|
||||
|
||||
#define V7M_PROC_REG_CLIDR ((u32 *)(V7M_PROC_FTR_BASE + 0x00))
|
||||
#define V7M_PROC_REG_CTR ((u32 *)(V7M_PROC_FTR_BASE + 0x04))
|
||||
#define V7M_PROC_REG_CCSIDR ((u32 *)(V7M_PROC_FTR_BASE + 0x08))
|
||||
#define MASK_NUM_WAYS GENMASK(12, 3)
|
||||
#define MASK_NUM_SETS GENMASK(27, 13)
|
||||
#define CLINE_SIZE_MASK GENMASK(2, 0)
|
||||
#define NUM_WAYS_SHIFT 3
|
||||
#define NUM_SETS_SHIFT 13
|
||||
#define V7M_PROC_REG_CSSELR ((u32 *)(V7M_PROC_FTR_BASE + 0x0C))
|
||||
#define SEL_I_OR_D BIT(0)
|
||||
|
||||
enum cache_type {
|
||||
DCACHE,
|
||||
ICACHE,
|
||||
};
|
||||
|
||||
/* PoU : Point of Unification, Poc: Point of Coherency */
|
||||
enum cache_action {
|
||||
INVALIDATE_POU, /* i-cache invalidate by address */
|
||||
INVALIDATE_POC, /* d-cache invalidate by address */
|
||||
INVALIDATE_SET_WAY, /* d-cache invalidate by sets/ways */
|
||||
FLUSH_POU, /* d-cache clean by address to the PoU */
|
||||
FLUSH_POC, /* d-cache clean by address to the PoC */
|
||||
FLUSH_SET_WAY, /* d-cache clean by sets/ways */
|
||||
FLUSH_INVAL_POC, /* d-cache clean & invalidate by addr to PoC */
|
||||
FLUSH_INVAL_SET_WAY, /* d-cache clean & invalidate by set/ways */
|
||||
};
|
||||
|
||||
#ifndef CONFIG_SYS_DCACHE_OFF
|
||||
struct dcache_config {
|
||||
u32 ways;
|
||||
u32 sets;
|
||||
};
|
||||
|
||||
static void get_cache_ways_sets(struct dcache_config *cache)
|
||||
{
|
||||
u32 cache_size_id = readl(V7M_PROC_REG_CCSIDR);
|
||||
|
||||
cache->ways = (cache_size_id & MASK_NUM_WAYS) >> NUM_WAYS_SHIFT;
|
||||
cache->sets = (cache_size_id & MASK_NUM_SETS) >> NUM_SETS_SHIFT;
|
||||
}
|
||||
|
||||
/*
|
||||
* Return the io register to perform required cache action like clean or clean
|
||||
* & invalidate by sets/ways.
|
||||
*/
|
||||
static u32 *get_action_reg_set_ways(enum cache_action action)
|
||||
{
|
||||
switch (action) {
|
||||
case INVALIDATE_SET_WAY:
|
||||
return V7M_CACHE_REG_DCISW;
|
||||
case FLUSH_SET_WAY:
|
||||
return V7M_CACHE_REG_DCCSW;
|
||||
case FLUSH_INVAL_SET_WAY:
|
||||
return V7M_CACHE_REG_DCCISW;
|
||||
default:
|
||||
break;
|
||||
};
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/*
|
||||
* Return the io register to perform required cache action like clean or clean
|
||||
* & invalidate by adddress or range.
|
||||
*/
|
||||
static u32 *get_action_reg_range(enum cache_action action)
|
||||
{
|
||||
switch (action) {
|
||||
case INVALIDATE_POU:
|
||||
return V7M_CACHE_REG_ICIMVALU;
|
||||
case INVALIDATE_POC:
|
||||
return V7M_CACHE_REG_DCIMVAC;
|
||||
case FLUSH_POU:
|
||||
return V7M_CACHE_REG_DCCMVAU;
|
||||
case FLUSH_POC:
|
||||
return V7M_CACHE_REG_DCCMVAC;
|
||||
case FLUSH_INVAL_POC:
|
||||
return V7M_CACHE_REG_DCCIMVAC;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static u32 get_cline_size(enum cache_type type)
|
||||
{
|
||||
u32 size;
|
||||
|
||||
if (type == DCACHE)
|
||||
clrbits_le32(V7M_PROC_REG_CSSELR, BIT(SEL_I_OR_D));
|
||||
else if (type == ICACHE)
|
||||
setbits_le32(V7M_PROC_REG_CSSELR, BIT(SEL_I_OR_D));
|
||||
/* Make sure cache selection is effective for next memory access */
|
||||
dsb();
|
||||
|
||||
size = readl(V7M_PROC_REG_CCSIDR) & CLINE_SIZE_MASK;
|
||||
/* Size enocoded as 2 less than log(no_of_words_in_cache_line) base 2 */
|
||||
size = 1 << (size + 2);
|
||||
debug("cache line size is %d\n", size);
|
||||
|
||||
return size;
|
||||
}
|
||||
|
||||
/* Perform the action like invalidate/clean on a range of cache addresses */
|
||||
static int action_cache_range(enum cache_action action, u32 start_addr,
|
||||
int64_t size)
|
||||
{
|
||||
u32 cline_size;
|
||||
u32 *action_reg;
|
||||
enum cache_type type;
|
||||
|
||||
action_reg = get_action_reg_range(action);
|
||||
if (!action_reg)
|
||||
return -EINVAL;
|
||||
if (action == INVALIDATE_POU)
|
||||
type = ICACHE;
|
||||
else
|
||||
type = DCACHE;
|
||||
|
||||
/* Cache line size is minium size for the cache action */
|
||||
cline_size = get_cline_size(type);
|
||||
/* Align start address to cache line boundary */
|
||||
start_addr &= ~(cline_size - 1);
|
||||
debug("total size for cache action = %llx\n", size);
|
||||
do {
|
||||
writel(start_addr, action_reg);
|
||||
size -= cline_size;
|
||||
start_addr += cline_size;
|
||||
} while (size > cline_size);
|
||||
|
||||
/* Make sure cache action is effective for next memory access */
|
||||
dsb();
|
||||
isb(); /* Make sure instruction stream sees it */
|
||||
debug("cache action on range done\n");
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Perform the action like invalidate/clean on all cached addresses */
|
||||
static int action_dcache_all(enum cache_action action)
|
||||
{
|
||||
struct dcache_config cache;
|
||||
u32 *action_reg;
|
||||
int i, j;
|
||||
|
||||
action_reg = get_action_reg_set_ways(action);
|
||||
if (!action_reg)
|
||||
return -EINVAL;
|
||||
|
||||
clrbits_le32(V7M_PROC_REG_CSSELR, BIT(SEL_I_OR_D));
|
||||
/* Make sure cache selection is effective for next memory access */
|
||||
dsb();
|
||||
|
||||
get_cache_ways_sets(&cache); /* Get number of ways & sets */
|
||||
debug("cache: ways= %d, sets= %d\n", cache.ways + 1, cache.sets + 1);
|
||||
for (i = cache.sets; i >= 0; i--) {
|
||||
for (j = cache.ways; j >= 0; j--) {
|
||||
writel((j << WAYS_SHIFT) | (i << SETS_SHIFT),
|
||||
action_reg);
|
||||
}
|
||||
}
|
||||
|
||||
/* Make sure cache action is effective for next memory access */
|
||||
dsb();
|
||||
isb(); /* Make sure instruction stream sees it */
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
void dcache_enable(void)
|
||||
{
|
||||
if (dcache_status()) /* return if cache already enabled */
|
||||
return;
|
||||
|
||||
if (action_dcache_all(INVALIDATE_SET_WAY)) {
|
||||
printf("ERR: D-cache not enabled\n");
|
||||
return;
|
||||
}
|
||||
|
||||
setbits_le32(&V7M_SCB->ccr, BIT(V7M_CCR_DCACHE));
|
||||
|
||||
/* Make sure cache action is effective for next memory access */
|
||||
dsb();
|
||||
isb(); /* Make sure instruction stream sees it */
|
||||
}
|
||||
|
||||
void dcache_disable(void)
|
||||
{
|
||||
if (!dcache_status())
|
||||
return;
|
||||
|
||||
/* if dcache is enabled-> dcache disable & then flush */
|
||||
if (action_dcache_all(FLUSH_SET_WAY)) {
|
||||
printf("ERR: D-cache not flushed\n");
|
||||
return;
|
||||
}
|
||||
|
||||
clrbits_le32(&V7M_SCB->ccr, BIT(V7M_CCR_DCACHE));
|
||||
|
||||
/* Make sure cache action is effective for next memory access */
|
||||
dsb();
|
||||
isb(); /* Make sure instruction stream sees it */
|
||||
}
|
||||
|
||||
int dcache_status(void)
|
||||
{
|
||||
return (readl(&V7M_SCB->ccr) & BIT(V7M_CCR_DCACHE)) != 0;
|
||||
}
|
||||
|
||||
void invalidate_dcache_range(unsigned long start, unsigned long stop)
|
||||
{
|
||||
if (action_cache_range(INVALIDATE_POC, start, stop - start)) {
|
||||
printf("ERR: D-cache not invalidated\n");
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
void flush_dcache_range(unsigned long start, unsigned long stop)
|
||||
{
|
||||
if (action_cache_range(FLUSH_POC, start, stop - start)) {
|
||||
printf("ERR: D-cache not flushed\n");
|
||||
return;
|
||||
}
|
||||
}
|
||||
#else
|
||||
void dcache_enable(void)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
void dcache_disable(void)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
int dcache_status(void)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifndef CONFIG_SYS_ICACHE_OFF
|
||||
|
||||
void invalidate_icache_all(void)
|
||||
{
|
||||
writel(INVAL_ICACHE_POU, V7M_CACHE_REG_ICIALLU);
|
||||
|
||||
/* Make sure cache action is effective for next memory access */
|
||||
dsb();
|
||||
isb(); /* Make sure instruction stream sees it */
|
||||
}
|
||||
|
||||
void icache_enable(void)
|
||||
{
|
||||
if (icache_status())
|
||||
return;
|
||||
|
||||
invalidate_icache_all();
|
||||
setbits_le32(&V7M_SCB->ccr, BIT(V7M_CCR_ICACHE));
|
||||
|
||||
/* Make sure cache action is effective for next memory access */
|
||||
dsb();
|
||||
isb(); /* Make sure instruction stream sees it */
|
||||
}
|
||||
|
||||
int icache_status(void)
|
||||
{
|
||||
return (readl(&V7M_SCB->ccr) & BIT(V7M_CCR_ICACHE)) != 0;
|
||||
}
|
||||
|
||||
void icache_disable(void)
|
||||
{
|
||||
if (!icache_status())
|
||||
return;
|
||||
|
||||
isb(); /* flush pipeline */
|
||||
clrbits_le32(&V7M_SCB->ccr, BIT(V7M_CCR_ICACHE));
|
||||
isb(); /* subsequent instructions fetch see cache disable effect */
|
||||
}
|
||||
#else
|
||||
void icache_enable(void)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
void icache_disable(void)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
int icache_status(void)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
void enable_caches(void)
|
||||
{
|
||||
#ifndef CONFIG_SYS_ICACHE_OFF
|
||||
icache_enable();
|
||||
#endif
|
||||
#ifndef CONFIG_SYS_DCACHE_OFF
|
||||
dcache_enable();
|
||||
#endif
|
||||
}
|
||||
@@ -5,6 +5,7 @@
|
||||
*/
|
||||
|
||||
#include <common.h>
|
||||
#include <fsl_ddr_sdram.h>
|
||||
#include <asm/io.h>
|
||||
#include <linux/errno.h>
|
||||
#include <asm/system.h>
|
||||
@@ -663,7 +664,7 @@ phys_size_t get_effective_memsize(void)
|
||||
return ea_size;
|
||||
}
|
||||
|
||||
void dram_init_banksize(void)
|
||||
int dram_init_banksize(void)
|
||||
{
|
||||
#ifdef CONFIG_SYS_DP_DDR_BASE_PHY
|
||||
phys_size_t dp_ddr_size;
|
||||
@@ -772,6 +773,8 @@ void dram_init_banksize(void)
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
#if defined(CONFIG_EFI_LOADER) && !defined(CONFIG_SPL_BUILD)
|
||||
@@ -874,7 +877,7 @@ void update_early_mmu_table(void)
|
||||
|
||||
__weak int dram_init(void)
|
||||
{
|
||||
gd->ram_size = initdram(0);
|
||||
fsl_initdram();
|
||||
#if !defined(CONFIG_SPL) || defined(CONFIG_SPL_BUILD)
|
||||
/* This will break-before-make MMU for DDR */
|
||||
update_early_mmu_table();
|
||||
|
||||
@@ -13,7 +13,7 @@ config SPL_LIBGENERIC_SUPPORT
|
||||
default y
|
||||
|
||||
config SPL_MMC_SUPPORT
|
||||
default y
|
||||
default y if MMC_SDHCI_ZYNQ
|
||||
|
||||
config SPL_SERIAL_SUPPORT
|
||||
default y
|
||||
|
||||
@@ -19,10 +19,6 @@
|
||||
#include <asm/system.h>
|
||||
#include <asm/io.h>
|
||||
|
||||
#ifdef CONFIG_USE_IRQ
|
||||
DECLARE_GLOBAL_DATA_PTR;
|
||||
#endif
|
||||
|
||||
static void cache_flush(void);
|
||||
|
||||
int cleanup_before_linux (void)
|
||||
|
||||
@@ -29,17 +29,20 @@ dtb-$(CONFIG_EXYNOS5) += exynos5250-arndale.dtb \
|
||||
dtb-$(CONFIG_EXYNOS7420) += exynos7420-espresso7420.dtb
|
||||
dtb-$(CONFIG_ARCH_ROCKCHIP) += \
|
||||
rk3036-sdk.dtb \
|
||||
rk3188-radxarock.dtb \
|
||||
rk3288-evb.dtb \
|
||||
rk3288-fennec.dtb \
|
||||
rk3288-firefly.dtb \
|
||||
rk3288-miqi.dtb \
|
||||
rk3288-popmetal.dtb \
|
||||
rk3288-rock2-square.dtb \
|
||||
rk3288-tinker.dtb \
|
||||
rk3288-veyron-jerry.dtb \
|
||||
rk3288-veyron-mickey.dtb \
|
||||
rk3288-veyron-minnie.dtb \
|
||||
rk3288-rock2-square.dtb \
|
||||
rk3288-evb.dtb \
|
||||
rk3288-fennec.dtb \
|
||||
rk3288-tinker.dtb \
|
||||
rk3288-popmetal.dtb \
|
||||
rk3328-evb.dtb \
|
||||
rk3399-evb.dtb
|
||||
rk3399-evb.dtb \
|
||||
rk3399-puma.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += \
|
||||
meson-gxbb-odroidc2.dtb
|
||||
dtb-$(CONFIG_TEGRA) += tegra20-harmony.dtb \
|
||||
@@ -225,6 +228,7 @@ dtb-$(CONFIG_MACH_SUN5I) += \
|
||||
sun5i-a13-olinuxino-micro.dtb \
|
||||
sun5i-a13-q8-tablet.dtb \
|
||||
sun5i-a13-utoo-p66.dtb \
|
||||
sun5i-gr8-chip-pro.dtb \
|
||||
sun5i-r8-chip.dtb
|
||||
dtb-$(CONFIG_MACH_SUN6I) += \
|
||||
sun6i-a31-app4-evb1.dtb \
|
||||
@@ -298,13 +302,17 @@ dtb-$(CONFIG_MACH_SUN8I_H3) += \
|
||||
sun8i-h3-orangepi-pc-plus.dtb \
|
||||
sun8i-h3-orangepi-plus.dtb \
|
||||
sun8i-h3-orangepi-plus2e.dtb \
|
||||
sun8i-h3-nanopi-neo.dtb
|
||||
sun8i-h3-nanopi-neo.dtb \
|
||||
sun8i-h3-nanopi-neo-air.dtb
|
||||
dtb-$(CONFIG_MACH_SUN50I_H5) += \
|
||||
sun50i-h5-orangepi-pc2.dtb
|
||||
dtb-$(CONFIG_MACH_SUN50I) += \
|
||||
sun50i-a64-pine64-plus.dtb \
|
||||
sun50i-a64-pine64.dtb
|
||||
dtb-$(CONFIG_MACH_SUN9I) += \
|
||||
sun9i-a80-optimus.dtb \
|
||||
sun9i-a80-cubieboard4.dtb
|
||||
sun9i-a80-cubieboard4.dtb \
|
||||
sun9i-a80-cx-a99.dtb
|
||||
|
||||
dtb-$(CONFIG_VF610) += vf500-colibri.dtb \
|
||||
vf610-colibri.dtb \
|
||||
@@ -315,11 +323,13 @@ dtb-$(CONFIG_VF610) += vf500-colibri.dtb \
|
||||
dtb-$(CONFIG_MX53) += imx53-cx9020.dtb
|
||||
|
||||
dtb-$(CONFIG_MX6) += imx6ull-14x14-evk.dtb \
|
||||
imx6sl-evk.dtb \
|
||||
imx6sll-evk.dtb \
|
||||
imx6dl-icore.dtb \
|
||||
imx6dl-icore-rqs.dtb \
|
||||
imx6q-icore.dtb \
|
||||
imx6q-icore-rqs.dtb \
|
||||
imx6q-logicpd.dtb \
|
||||
imx6sx-sabreauto.dtb \
|
||||
imx6ul-geam-kit.dtb \
|
||||
imx6ul-isiot-emmc.dtb \
|
||||
@@ -339,6 +349,23 @@ dtb-$(CONFIG_SOC_KEYSTONE) += keystone-k2hk-evm.dtb \
|
||||
dtb-$(CONFIG_TARGET_SAMA5D2_XPLAINED) += \
|
||||
at91-sama5d2_xplained.dtb
|
||||
|
||||
dtb-$(CONFIG_TARGET_SAMA5D3XEK) += \
|
||||
sama5d31ek.dtb \
|
||||
sama5d33ek.dtb \
|
||||
sama5d34ek.dtb \
|
||||
sama5d35ek.dtb \
|
||||
sama5d36ek.dtb \
|
||||
sama5d36ek_cmp.dtb
|
||||
|
||||
dtb-$(CONFIG_TARGET_SAMA5D3_XPLAINED) += \
|
||||
at91-sama5d3_xplained.dtb
|
||||
|
||||
dtb-$(CONFIG_TARGET_SAMA5D4EK) += \
|
||||
at91-sama5d4ek.dtb
|
||||
|
||||
dtb-$(CONFIG_TARGET_SAMA5D4_XPLAINED) += \
|
||||
at91-sama5d4_xplained.dtb
|
||||
|
||||
dtb-$(CONFIG_ARCH_BCM283X) += \
|
||||
bcm2835-rpi-a-plus.dtb \
|
||||
bcm2835-rpi-a.dtb \
|
||||
|
||||
348
arch/arm/dts/at91-sama5d3_xplained.dts
Normal file
348
arch/arm/dts/at91-sama5d3_xplained.dts
Normal file
@@ -0,0 +1,348 @@
|
||||
/*
|
||||
* at91-sama5d3_xplained.dts - Device Tree file for the SAMA5D3 Xplained board
|
||||
*
|
||||
* Copyright (C) 2014 Atmel,
|
||||
* 2014 Nicolas Ferre <nicolas.ferre@atmel.com>
|
||||
*
|
||||
* Licensed under GPLv2 or later.
|
||||
*/
|
||||
/dts-v1/;
|
||||
#include "sama5d36.dtsi"
|
||||
|
||||
/ {
|
||||
model = "SAMA5D3 Xplained";
|
||||
compatible = "atmel,sama5d3-xplained", "atmel,sama5d3", "atmel,sama5";
|
||||
|
||||
chosen {
|
||||
u-boot,dm-pre-reloc;
|
||||
stdout-path = &dbgu;
|
||||
};
|
||||
|
||||
aliases {
|
||||
spi0 = &spi0;
|
||||
};
|
||||
|
||||
memory {
|
||||
reg = <0x20000000 0x10000000>;
|
||||
};
|
||||
|
||||
clocks {
|
||||
slow_xtal {
|
||||
clock-frequency = <32768>;
|
||||
};
|
||||
|
||||
main_xtal {
|
||||
clock-frequency = <12000000>;
|
||||
};
|
||||
};
|
||||
|
||||
ahb {
|
||||
apb {
|
||||
mmc0: mmc@f0000000 {
|
||||
u-boot,dm-pre-reloc;
|
||||
pinctrl-0 = <&pinctrl_mmc0_clk_cmd_dat0 &pinctrl_mmc0_dat1_3 &pinctrl_mmc0_dat4_7 &pinctrl_mmc0_cd>;
|
||||
vmmc-supply = <&vcc_mmc0_reg>;
|
||||
vqmmc-supply = <&vcc_3v3_reg>;
|
||||
status = "okay";
|
||||
slot@0 {
|
||||
reg = <0>;
|
||||
bus-width = <8>;
|
||||
cd-gpios = <&pioE 0 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
};
|
||||
|
||||
mmc1: mmc@f8000000 {
|
||||
u-boot,dm-pre-reloc;
|
||||
vmmc-supply = <&vcc_3v3_reg>;
|
||||
vqmmc-supply = <&vcc_3v3_reg>;
|
||||
status = "disabled";
|
||||
slot@0 {
|
||||
reg = <0>;
|
||||
bus-width = <4>;
|
||||
cd-gpios = <&pioE 1 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
};
|
||||
|
||||
spi0: spi@f0004000 {
|
||||
cs-gpios = <&pioD 13 0>, <0>, <0>, <&pioD 16 0>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
can0: can@f000c000 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
i2c0: i2c@f0014000 {
|
||||
pinctrl-0 = <&pinctrl_i2c0_pu>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
i2c1: i2c@f0018000 {
|
||||
status = "okay";
|
||||
|
||||
pmic: act8865@5b {
|
||||
compatible = "active-semi,act8865";
|
||||
reg = <0x5b>;
|
||||
status = "disabled";
|
||||
|
||||
regulators {
|
||||
vcc_1v8_reg: DCDC_REG1 {
|
||||
regulator-name = "VCC_1V8";
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
vcc_1v2_reg: DCDC_REG2 {
|
||||
regulator-name = "VCC_1V2";
|
||||
regulator-min-microvolt = <1200000>;
|
||||
regulator-max-microvolt = <1200000>;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
vcc_3v3_reg: DCDC_REG3 {
|
||||
regulator-name = "VCC_3V3";
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
vddfuse_reg: LDO_REG1 {
|
||||
regulator-name = "FUSE_2V5";
|
||||
regulator-min-microvolt = <2500000>;
|
||||
regulator-max-microvolt = <2500000>;
|
||||
};
|
||||
|
||||
vddana_reg: LDO_REG2 {
|
||||
regulator-name = "VDDANA";
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-always-on;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
macb0: ethernet@f0028000 {
|
||||
phy-mode = "rgmii";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
status = "okay";
|
||||
|
||||
ethernet-phy@7 {
|
||||
reg = <0x7>;
|
||||
};
|
||||
};
|
||||
|
||||
pwm0: pwm@f002c000 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_pwm0_pwmh0_0 &pinctrl_pwm0_pwmh1_0>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
usart0: serial@f001c000 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
usart1: serial@f0020000 {
|
||||
pinctrl-0 = <&pinctrl_usart1 &pinctrl_usart1_rts_cts>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
uart0: serial@f0024000 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
mmc1: mmc@f8000000 {
|
||||
pinctrl-0 = <&pinctrl_mmc1_clk_cmd_dat0 &pinctrl_mmc1_dat1_3 &pinctrl_mmc1_cd>;
|
||||
status = "okay";
|
||||
slot@0 {
|
||||
reg = <0>;
|
||||
bus-width = <4>;
|
||||
cd-gpios = <&pioE 1 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
};
|
||||
|
||||
spi1: spi@f8008000 {
|
||||
cs-gpios = <&pioC 25 0>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
adc0: adc@f8018000 {
|
||||
pinctrl-0 = <
|
||||
&pinctrl_adc0_adtrg
|
||||
&pinctrl_adc0_ad0
|
||||
&pinctrl_adc0_ad1
|
||||
&pinctrl_adc0_ad2
|
||||
&pinctrl_adc0_ad3
|
||||
&pinctrl_adc0_ad4
|
||||
&pinctrl_adc0_ad5
|
||||
&pinctrl_adc0_ad6
|
||||
&pinctrl_adc0_ad7
|
||||
&pinctrl_adc0_ad8
|
||||
&pinctrl_adc0_ad9
|
||||
>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
i2c2: i2c@f801c000 {
|
||||
dmas = <0>, <0>; /* Do not use DMA for i2c2 */
|
||||
pinctrl-0 = <&pinctrl_i2c2_pu>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
macb1: ethernet@f802c000 {
|
||||
phy-mode = "rmii";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
status = "okay";
|
||||
|
||||
ethernet-phy@1 {
|
||||
reg = <0x1>;
|
||||
};
|
||||
};
|
||||
|
||||
dbgu: serial@ffffee00 {
|
||||
u-boot,dm-pre-reloc;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
pinctrl@fffff200 {
|
||||
board {
|
||||
u-boot,dm-pre-reloc;
|
||||
pinctrl_i2c0_pu: i2c0_pu {
|
||||
atmel,pins =
|
||||
<AT91_PIOA 30 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>,
|
||||
<AT91_PIOA 31 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;
|
||||
};
|
||||
|
||||
pinctrl_i2c2_pu: i2c2_pu {
|
||||
atmel,pins =
|
||||
<AT91_PIOA 18 AT91_PERIPH_B AT91_PINCTRL_PULL_UP>,
|
||||
<AT91_PIOA 19 AT91_PERIPH_B AT91_PINCTRL_PULL_UP>;
|
||||
};
|
||||
|
||||
pinctrl_key_gpio: key_gpio_0 {
|
||||
atmel,pins =
|
||||
<AT91_PIOE 29 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>;
|
||||
};
|
||||
|
||||
pinctrl_mmc0_cd: mmc0_cd {
|
||||
u-boot,dm-pre-reloc;
|
||||
atmel,pins =
|
||||
<AT91_PIOE 0 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>;
|
||||
};
|
||||
|
||||
pinctrl_mmc1_cd: mmc1_cd {
|
||||
u-boot,dm-pre-reloc;
|
||||
atmel,pins =
|
||||
<AT91_PIOE 1 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>;
|
||||
};
|
||||
|
||||
pinctrl_usba_vbus: usba_vbus {
|
||||
atmel,pins =
|
||||
<AT91_PIOE 9 AT91_PERIPH_GPIO AT91_PINCTRL_DEGLITCH>; /* PE9, conflicts with A9 */
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
nand0: nand@60000000 {
|
||||
nand-bus-width = <8>;
|
||||
nand-ecc-mode = "hw";
|
||||
atmel,has-pmecc;
|
||||
atmel,pmecc-cap = <4>;
|
||||
atmel,pmecc-sector-size = <512>;
|
||||
nand-on-flash-bbt;
|
||||
status = "okay";
|
||||
|
||||
at91bootstrap@0 {
|
||||
label = "at91bootstrap";
|
||||
reg = <0x0 0x40000>;
|
||||
};
|
||||
|
||||
bootloader@40000 {
|
||||
label = "bootloader";
|
||||
reg = <0x40000 0x80000>;
|
||||
};
|
||||
|
||||
bootloaderenv@c0000 {
|
||||
label = "bootloader env";
|
||||
reg = <0xc0000 0xc0000>;
|
||||
};
|
||||
|
||||
dtb@180000 {
|
||||
label = "device tree";
|
||||
reg = <0x180000 0x80000>;
|
||||
};
|
||||
|
||||
kernel@200000 {
|
||||
label = "kernel";
|
||||
reg = <0x200000 0x600000>;
|
||||
};
|
||||
|
||||
rootfs@800000 {
|
||||
label = "rootfs";
|
||||
reg = <0x800000 0x0f800000>;
|
||||
};
|
||||
};
|
||||
|
||||
usb0: gadget@00500000 {
|
||||
atmel,vbus-gpio = <&pioE 9 GPIO_ACTIVE_HIGH>; /* PE9, conflicts with A9 */
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_usba_vbus>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
usb1: ohci@00600000 {
|
||||
num-ports = <3>;
|
||||
atmel,vbus-gpio = <0
|
||||
&pioE 3 GPIO_ACTIVE_LOW
|
||||
&pioE 4 GPIO_ACTIVE_LOW
|
||||
>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
usb2: ehci@00700000 {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
|
||||
vcc_mmc0_reg: fixedregulator@0 {
|
||||
compatible = "regulator-fixed";
|
||||
gpio = <&pioE 2 GPIO_ACTIVE_LOW>;
|
||||
regulator-name = "mmc0-card-supply";
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
gpio_keys {
|
||||
compatible = "gpio-keys";
|
||||
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_key_gpio>;
|
||||
|
||||
bp3 {
|
||||
label = "PB_USER";
|
||||
gpios = <&pioE 29 GPIO_ACTIVE_LOW>;
|
||||
linux,code = <0x104>;
|
||||
wakeup-source;
|
||||
};
|
||||
};
|
||||
|
||||
leds {
|
||||
compatible = "gpio-leds";
|
||||
|
||||
d2 {
|
||||
label = "d2";
|
||||
gpios = <&pioE 23 GPIO_ACTIVE_LOW>; /* PE23, conflicts with A23, CTS2 */
|
||||
linux,default-trigger = "heartbeat";
|
||||
};
|
||||
|
||||
d3 {
|
||||
label = "d3";
|
||||
gpios = <&pioE 24 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
};
|
||||
};
|
||||
286
arch/arm/dts/at91-sama5d4_xplained.dts
Normal file
286
arch/arm/dts/at91-sama5d4_xplained.dts
Normal file
@@ -0,0 +1,286 @@
|
||||
/*
|
||||
* at91-sama5d4_xplained.dts - Device Tree file for SAMA5D4 Xplained board
|
||||
*
|
||||
* Copyright (C) 2015 Atmel,
|
||||
* 2015 Josh Wu <josh.wu@atmel.com>
|
||||
*
|
||||
* This file is dual-licensed: you can use it either under the terms
|
||||
* of the GPL or the X11 license, at your option. Note that this dual
|
||||
* licensing only applies to this file, and not this project as a
|
||||
* whole.
|
||||
*
|
||||
* a) This file is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This file is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* Or, alternatively,
|
||||
*
|
||||
* b) Permission is hereby granted, free of charge, to any person
|
||||
* obtaining a copy of this software and associated documentation
|
||||
* files (the "Software"), to deal in the Software without
|
||||
* restriction, including without limitation the rights to use,
|
||||
* copy, modify, merge, publish, distribute, sublicense, and/or
|
||||
* sell copies of the Software, and to permit persons to whom the
|
||||
* Software is furnished to do so, subject to the following
|
||||
* conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be
|
||||
* included in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
||||
* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
||||
* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||
* OTHER DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
/dts-v1/;
|
||||
#include "sama5d4.dtsi"
|
||||
|
||||
/ {
|
||||
model = "Atmel SAMA5D4 Xplained";
|
||||
compatible = "atmel,sama5d4-xplained", "atmel,sama5d4", "atmel,sama5";
|
||||
|
||||
aliases {
|
||||
spi0 = &spi0;
|
||||
};
|
||||
|
||||
chosen {
|
||||
u-boot,dm-pre-reloc;
|
||||
stdout-path = &usart3;
|
||||
};
|
||||
|
||||
memory {
|
||||
reg = <0x20000000 0x20000000>;
|
||||
};
|
||||
|
||||
clocks {
|
||||
slow_xtal {
|
||||
clock-frequency = <32768>;
|
||||
};
|
||||
|
||||
main_xtal {
|
||||
clock-frequency = <12000000>;
|
||||
};
|
||||
};
|
||||
|
||||
ahb {
|
||||
apb {
|
||||
spi0: spi@f8010000 {
|
||||
u-boot,dm-pre-reloc;
|
||||
cs-gpios = <&pioC 3 0>, <0>, <0>, <0>;
|
||||
status = "okay";
|
||||
spi_flash@0 {
|
||||
u-boot,dm-pre-reloc;
|
||||
compatible = "spi-flash";
|
||||
spi-max-frequency = <50000000>;
|
||||
reg = <0>;
|
||||
};
|
||||
};
|
||||
|
||||
i2c0: i2c@f8014000 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
macb0: ethernet@f8020000 {
|
||||
phy-mode = "rmii";
|
||||
status = "okay";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_macb0_rmii &pinctrl_macb0_phy_irq>;
|
||||
|
||||
phy0: ethernet-phy@1 {
|
||||
interrupt-parent = <&pioE>;
|
||||
interrupts = <1 IRQ_TYPE_LEVEL_LOW>;
|
||||
reg = <1>;
|
||||
};
|
||||
};
|
||||
|
||||
mmc1: mmc@fc000000 {
|
||||
u-boot,dm-pre-reloc;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_mmc1_clk_cmd_dat0 &pinctrl_mmc1_dat1_3 &pinctrl_mmc1_cd>;
|
||||
vmmc-supply = <&vcc_mmc1_reg>;
|
||||
vqmmc-supply = <&vcc_3v3_reg>;
|
||||
status = "okay";
|
||||
slot@0 {
|
||||
reg = <0>;
|
||||
bus-width = <4>;
|
||||
cd-gpios = <&pioE 3 0>;
|
||||
};
|
||||
};
|
||||
|
||||
usart3: serial@fc00c000 {
|
||||
u-boot,dm-pre-reloc;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
usart4: serial@fc010000 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
spi1: spi@fc018000 {
|
||||
cs-gpios = <&pioB 21 0>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
adc0: adc@fc034000 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <
|
||||
/* external trigger conflicts with USBA_VBUS */
|
||||
&pinctrl_adc0_ad0
|
||||
&pinctrl_adc0_ad1
|
||||
&pinctrl_adc0_ad2
|
||||
&pinctrl_adc0_ad3
|
||||
&pinctrl_adc0_ad4
|
||||
>;
|
||||
atmel,adc-vref = <3300>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
watchdog@fc068640 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
pinctrl@fc06a000 {
|
||||
board {
|
||||
u-boot,dm-pre-reloc;
|
||||
pinctrl_mmc1_cd: mmc1_cd {
|
||||
u-boot,dm-pre-reloc;
|
||||
atmel,pins =
|
||||
<AT91_PIOE 3 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>;
|
||||
};
|
||||
pinctrl_usba_vbus: usba_vbus {
|
||||
atmel,pins =
|
||||
<AT91_PIOE 31 AT91_PERIPH_GPIO AT91_PINCTRL_DEGLITCH>;
|
||||
};
|
||||
pinctrl_key_gpio: key_gpio_0 {
|
||||
atmel,pins =
|
||||
<AT91_PIOE 8 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>;
|
||||
};
|
||||
pinctrl_macb0_phy_irq: macb0_phy_irq_0 {
|
||||
atmel,pins =
|
||||
<AT91_PIOE 1 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
usb0: gadget@00400000 {
|
||||
atmel,vbus-gpio = <&pioE 31 GPIO_ACTIVE_HIGH>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_usba_vbus>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
usb1: ohci@00500000 {
|
||||
num-ports = <3>;
|
||||
atmel,vbus-gpio = <0
|
||||
&pioE 11 GPIO_ACTIVE_HIGH
|
||||
&pioE 14 GPIO_ACTIVE_HIGH
|
||||
>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
usb2: ehci@00600000 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
nand0: nand@80000000 {
|
||||
nand-bus-width = <8>;
|
||||
nand-ecc-mode = "hw";
|
||||
nand-on-flash-bbt;
|
||||
atmel,has-pmecc;
|
||||
status = "okay";
|
||||
|
||||
at91bootstrap@0 {
|
||||
label = "at91bootstrap";
|
||||
reg = <0x0 0x40000>;
|
||||
};
|
||||
|
||||
bootloader@40000 {
|
||||
label = "bootloader";
|
||||
reg = <0x40000 0x80000>;
|
||||
};
|
||||
|
||||
bootloaderenv@c0000 {
|
||||
label = "bootloader env";
|
||||
reg = <0xc0000 0xc0000>;
|
||||
};
|
||||
|
||||
dtb@180000 {
|
||||
label = "device tree";
|
||||
reg = <0x180000 0x80000>;
|
||||
};
|
||||
|
||||
kernel@200000 {
|
||||
label = "kernel";
|
||||
reg = <0x200000 0x600000>;
|
||||
};
|
||||
|
||||
rootfs@800000 {
|
||||
label = "rootfs";
|
||||
reg = <0x800000 0x0f800000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
gpio_keys {
|
||||
compatible = "gpio-keys";
|
||||
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_key_gpio>;
|
||||
|
||||
pb_user1 {
|
||||
label = "pb_user1";
|
||||
gpios = <&pioE 8 GPIO_ACTIVE_HIGH>;
|
||||
linux,code = <0x100>;
|
||||
wakeup-source;
|
||||
};
|
||||
};
|
||||
|
||||
leds {
|
||||
compatible = "gpio-leds";
|
||||
status = "okay";
|
||||
|
||||
d8 {
|
||||
label = "d8";
|
||||
gpios = <&pioD 30 GPIO_ACTIVE_HIGH>;
|
||||
default-state = "on";
|
||||
};
|
||||
|
||||
d10 {
|
||||
label = "d10";
|
||||
gpios = <&pioE 15 GPIO_ACTIVE_LOW>;
|
||||
linux,default-trigger = "heartbeat";
|
||||
};
|
||||
};
|
||||
|
||||
vcc_3v3_reg: fixedregulator@0 {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "VCC 3V3";
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-boot-on;
|
||||
regulator-always-on;
|
||||
reg = <0 1>;
|
||||
};
|
||||
|
||||
vcc_mmc1_reg: fixedregulator@1 {
|
||||
compatible = "regulator-fixed";
|
||||
gpio = <&pioE 4 GPIO_ACTIVE_LOW>;
|
||||
regulator-name = "VDD MCI1";
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
vin-supply = <&vcc_3v3_reg>;
|
||||
regulator-always-on;
|
||||
reg = <1 1>;
|
||||
};
|
||||
};
|
||||
341
arch/arm/dts/at91-sama5d4ek.dts
Normal file
341
arch/arm/dts/at91-sama5d4ek.dts
Normal file
@@ -0,0 +1,341 @@
|
||||
/*
|
||||
* at91-sama5d4ek.dts - Device Tree file for SAMA5D4 Evaluation Kit
|
||||
*
|
||||
* Copyright (C) 2014 Atmel,
|
||||
* 2014 Nicolas Ferre <nicolas.ferre@atmel.com>
|
||||
*
|
||||
* This file is dual-licensed: you can use it either under the terms
|
||||
* of the GPL or the X11 license, at your option. Note that this dual
|
||||
* licensing only applies to this file, and not this project as a
|
||||
* whole.
|
||||
*
|
||||
* a) This file is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This file is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* Or, alternatively,
|
||||
*
|
||||
* b) Permission is hereby granted, free of charge, to any person
|
||||
* obtaining a copy of this software and associated documentation
|
||||
* files (the "Software"), to deal in the Software without
|
||||
* restriction, including without limitation the rights to use,
|
||||
* copy, modify, merge, publish, distribute, sublicense, and/or
|
||||
* sell copies of the Software, and to permit persons to whom the
|
||||
* Software is furnished to do so, subject to the following
|
||||
* conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be
|
||||
* included in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
||||
* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
||||
* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||
* OTHER DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
/dts-v1/;
|
||||
#include "sama5d4.dtsi"
|
||||
|
||||
/ {
|
||||
model = "Atmel SAMA5D4-EK";
|
||||
compatible = "atmel,sama5d4ek", "atmel,sama5d4", "atmel,sama5";
|
||||
|
||||
aliases {
|
||||
spi0 = &spi0;
|
||||
};
|
||||
|
||||
chosen {
|
||||
u-boot,dm-pre-reloc;
|
||||
stdout-path = &usart3;
|
||||
};
|
||||
|
||||
|
||||
memory {
|
||||
reg = <0x20000000 0x20000000>;
|
||||
};
|
||||
|
||||
clocks {
|
||||
slow_xtal {
|
||||
clock-frequency = <32768>;
|
||||
};
|
||||
|
||||
main_xtal {
|
||||
clock-frequency = <12000000>;
|
||||
};
|
||||
};
|
||||
|
||||
ahb {
|
||||
apb {
|
||||
adc0: adc@fc034000 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <
|
||||
/* external trigger conflicts with USBA_VBUS */
|
||||
&pinctrl_adc0_ad0
|
||||
&pinctrl_adc0_ad1
|
||||
&pinctrl_adc0_ad2
|
||||
&pinctrl_adc0_ad3
|
||||
&pinctrl_adc0_ad4
|
||||
>;
|
||||
/* The vref depends on JP22 of EK. If connect 1-2 then use 3.3V. connect 2-3 use 3.0V */
|
||||
atmel,adc-vref = <3300>;
|
||||
/*atmel,adc-ts-wires = <4>;*/ /* Set up ADC touch screen */
|
||||
status = "okay"; /* Enable ADC IIO support */
|
||||
};
|
||||
|
||||
mmc0: mmc@f8000000 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_mmc0_clk_cmd_dat0 &pinctrl_mmc0_dat1_3 &pinctrl_mmc0_cd>;
|
||||
slot@0 {
|
||||
reg = <0>;
|
||||
bus-width = <4>;
|
||||
cd-gpios = <&pioE 5 0>;
|
||||
};
|
||||
};
|
||||
|
||||
ssc0: ssc@f8008000 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
spi0: spi@f8010000 {
|
||||
u-boot,dm-pre-reloc;
|
||||
cs-gpios = <&pioC 3 0>, <0>, <0>, <0>;
|
||||
status = "okay";
|
||||
spi_flash@0 {
|
||||
u-boot,dm-pre-reloc;
|
||||
compatible = "spi-flash";
|
||||
spi-max-frequency = <50000000>;
|
||||
reg = <0>;
|
||||
};
|
||||
};
|
||||
|
||||
i2c0: i2c@f8014000 {
|
||||
status = "okay";
|
||||
|
||||
wm8904: codec@1a {
|
||||
compatible = "wlf,wm8904";
|
||||
reg = <0x1a>;
|
||||
clocks = <&pck2>;
|
||||
clock-names = "mclk";
|
||||
};
|
||||
|
||||
qt1070:keyboard@1b {
|
||||
compatible = "qt1070";
|
||||
reg = <0x1b>;
|
||||
interrupt-parent = <&pioE>;
|
||||
interrupts = <25 0x0>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_qt1070_irq>;
|
||||
wakeup-source;
|
||||
};
|
||||
|
||||
atmel_mxt_ts@4c {
|
||||
compatible = "atmel,atmel_mxt_ts";
|
||||
reg = <0x4c>;
|
||||
interrupt-parent = <&pioE>;
|
||||
interrupts = <24 0x0>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_mxt_ts>;
|
||||
};
|
||||
};
|
||||
|
||||
macb0: ethernet@f8020000 {
|
||||
pinctrl-0 = <&pinctrl_macb0_rmii &pinctrl_macb0_phy_irq>;
|
||||
phy-mode = "rmii";
|
||||
status = "okay";
|
||||
|
||||
ethernet-phy@1 {
|
||||
reg = <0x1>;
|
||||
interrupt-parent = <&pioE>;
|
||||
interrupts = <1 IRQ_TYPE_LEVEL_LOW>;
|
||||
};
|
||||
};
|
||||
|
||||
mmc1: mmc@fc000000 {
|
||||
u-boot,dm-pre-reloc;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_mmc1_clk_cmd_dat0 &pinctrl_mmc1_dat1_3 &pinctrl_mmc1_cd>;
|
||||
status = "okay";
|
||||
slot@0 {
|
||||
reg = <0>;
|
||||
bus-width = <4>;
|
||||
cd-gpios = <&pioE 6 0>;
|
||||
};
|
||||
};
|
||||
|
||||
usart2: serial@fc008000 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
usart3: serial@fc00c000 {
|
||||
u-boot,dm-pre-reloc;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
usart4: serial@fc010000 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
watchdog@fc068640 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
pinctrl@fc06a000 {
|
||||
board {
|
||||
u-boot,dm-pre-reloc;
|
||||
pinctrl_macb0_phy_irq: macb0_phy_irq {
|
||||
atmel,pins =
|
||||
<AT91_PIOE 1 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
|
||||
};
|
||||
pinctrl_mmc0_cd: mmc0_cd {
|
||||
atmel,pins =
|
||||
<AT91_PIOE 5 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>;
|
||||
};
|
||||
pinctrl_mmc1_cd: mmc1_cd {
|
||||
u-boot,dm-pre-reloc;
|
||||
atmel,pins =
|
||||
<AT91_PIOE 6 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>;
|
||||
};
|
||||
pinctrl_pck2_as_audio_mck: pck2_as_audio_mck {
|
||||
atmel,pins =
|
||||
<AT91_PIOB 10 AT91_PERIPH_B AT91_PINCTRL_NONE>;
|
||||
};
|
||||
pinctrl_usba_vbus: usba_vbus {
|
||||
atmel,pins =
|
||||
<AT91_PIOE 31 AT91_PERIPH_GPIO AT91_PINCTRL_DEGLITCH>;
|
||||
};
|
||||
pinctrl_key_gpio: key_gpio_0 {
|
||||
atmel,pins =
|
||||
<AT91_PIOE 13 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>; /* PE13 gpio */
|
||||
};
|
||||
pinctrl_qt1070_irq: qt1070_irq {
|
||||
atmel,pins =
|
||||
<AT91_PIOE 25 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>;
|
||||
};
|
||||
pinctrl_mxt_ts: mxt_irq {
|
||||
atmel,pins =
|
||||
<AT91_PIOE 24 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
usb0: gadget@00400000 {
|
||||
atmel,vbus-gpio = <&pioE 31 GPIO_ACTIVE_HIGH>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_usba_vbus>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
usb1: ohci@00500000 {
|
||||
num-ports = <3>;
|
||||
atmel,vbus-gpio = <0 /* &pioE 10 GPIO_ACTIVE_LOW */
|
||||
&pioE 11 GPIO_ACTIVE_LOW
|
||||
&pioE 12 GPIO_ACTIVE_LOW
|
||||
>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
usb2: ehci@00600000 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
nand0: nand@80000000 {
|
||||
nand-bus-width = <8>;
|
||||
nand-ecc-mode = "hw";
|
||||
nand-on-flash-bbt;
|
||||
atmel,has-pmecc;
|
||||
status = "okay";
|
||||
|
||||
at91bootstrap@0 {
|
||||
label = "at91bootstrap";
|
||||
reg = <0x0 0x40000>;
|
||||
};
|
||||
|
||||
bootloader@40000 {
|
||||
label = "bootloader";
|
||||
reg = <0x40000 0x80000>;
|
||||
};
|
||||
|
||||
bootloaderenv@c0000 {
|
||||
label = "bootloader env";
|
||||
reg = <0xc0000 0xc0000>;
|
||||
};
|
||||
|
||||
dtb@180000 {
|
||||
label = "device tree";
|
||||
reg = <0x180000 0x80000>;
|
||||
};
|
||||
|
||||
kernel@200000 {
|
||||
label = "kernel";
|
||||
reg = <0x200000 0x600000>;
|
||||
};
|
||||
|
||||
rootfs@800000 {
|
||||
label = "rootfs";
|
||||
reg = <0x800000 0x0f800000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
gpio_keys {
|
||||
compatible = "gpio-keys";
|
||||
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_key_gpio>;
|
||||
|
||||
pb_user1 {
|
||||
label = "pb_user1";
|
||||
gpios = <&pioE 13 GPIO_ACTIVE_HIGH>;
|
||||
linux,code = <0x100>;
|
||||
wakeup-source;
|
||||
};
|
||||
};
|
||||
|
||||
leds {
|
||||
compatible = "gpio-leds";
|
||||
status = "okay";
|
||||
|
||||
d8 {
|
||||
label = "d8";
|
||||
/* PE28, conflicts with usart4 rts pin */
|
||||
gpios = <&pioE 28 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
d9 {
|
||||
label = "d9";
|
||||
gpios = <&pioE 9 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
|
||||
d10 {
|
||||
label = "d10";
|
||||
gpios = <&pioE 8 GPIO_ACTIVE_LOW>;
|
||||
linux,default-trigger = "heartbeat";
|
||||
};
|
||||
};
|
||||
|
||||
sound {
|
||||
compatible = "atmel,asoc-wm8904";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_pck2_as_audio_mck>;
|
||||
|
||||
atmel,model = "wm8904 @ SAMA5D4EK";
|
||||
atmel,audio-routing =
|
||||
"Headphone Jack", "HPOUTL",
|
||||
"Headphone Jack", "HPOUTR",
|
||||
"IN1L", "Line In Jack",
|
||||
"IN1R", "Line In Jack";
|
||||
|
||||
atmel,ssc-controller = <&ssc0>;
|
||||
atmel,audio-codec = <&wm8904>;
|
||||
};
|
||||
};
|
||||
@@ -53,6 +53,12 @@
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <1>;
|
||||
|
||||
axp_gpio: gpio {
|
||||
compatible = "x-powers,axp209-gpio";
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
};
|
||||
|
||||
regulators {
|
||||
/* Default work frequency for buck regulators */
|
||||
x-powers,dcdc-freq = <1500>;
|
||||
|
||||
@@ -23,6 +23,7 @@
|
||||
console = "/serial@13820000";
|
||||
mmc0 = "/sdhci@12510000";
|
||||
mmc2 = "/sdhci@12530000";
|
||||
i2c8 = &i2c_fg;
|
||||
};
|
||||
|
||||
fimd@11c00000 {
|
||||
@@ -113,6 +114,14 @@
|
||||
dwmmc@12550000 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
i2c_fg: fuel-gauge {
|
||||
compatible = "i2c-gpio";
|
||||
gpios = <&gpy4 1 0>, /* sda */
|
||||
<&gpy4 0 0>; /* scl */
|
||||
i2c-gpio,delay-us = <2>; /* ~100 kHz */
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
|
||||
&i2c_5 {
|
||||
|
||||
@@ -213,7 +213,7 @@
|
||||
|
||||
buck8_reg: BUCK8 {
|
||||
regulator-name = "VCC_P3V3_2.85V";
|
||||
regulator-min-microvolt = <2850000>;
|
||||
regulator-min-microvolt = <750000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
};
|
||||
};
|
||||
|
||||
@@ -27,6 +27,8 @@
|
||||
i2c5 = "/i2c@138b0000";
|
||||
i2c6 = "/i2c@138c0000";
|
||||
i2c7 = "/i2c@138d0000";
|
||||
i2c8 = &i2c_fg;
|
||||
i2c9 = &i2c_max77693;
|
||||
serial0 = "/serial@13800000";
|
||||
console = "/serial@13820000";
|
||||
mmc0 = "/sdhci@12510000";
|
||||
@@ -34,6 +36,22 @@
|
||||
mshc0 = "/dwmmc@12550000";
|
||||
};
|
||||
|
||||
i2c_fg: fuel-gauge {
|
||||
compatible = "i2c-gpio";
|
||||
gpios = <&gpf1 5 0>, /* sda */
|
||||
<&gpf1 4 0>; /* scl */
|
||||
i2c-gpio,delay-us = <2>; /* ~100 kHz */
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
i2c_max77693: max77693 {
|
||||
compatible = "i2c-gpio";
|
||||
gpio = <&gpm2 0 0>, /* sda */
|
||||
<&gpm2 1 0>; /* scl */
|
||||
i2c-gpio,delay-us = <2>; /* ~100 kHz */
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
i2c@138d0000 {
|
||||
samsung,i2c-sda-delay = <100>;
|
||||
samsung,i2c-slave-addr = <0x10>;
|
||||
|
||||
190
arch/arm/dts/imx6q-logicpd.dts
Normal file
190
arch/arm/dts/imx6q-logicpd.dts
Normal file
@@ -0,0 +1,190 @@
|
||||
/*
|
||||
* Copyright 2017 Logic PD, Inc.
|
||||
* Based on SabreSD, Copyright 2016 Freescale Semiconductor, Inc.
|
||||
*
|
||||
* This file is dual-licensed: you can use it either under the terms
|
||||
* of the GPL or the X11 license, at your option. Note that this dual
|
||||
* licensing only applies to this file, and not this project as a
|
||||
* whole.
|
||||
*
|
||||
* a) This file is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This file is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* Or, alternatively,
|
||||
*
|
||||
* b) Permission is hereby granted, free of charge, to any person
|
||||
* obtaining a copy of this software and associated documentation
|
||||
* files (the "Software"), to deal in the Software without
|
||||
* restriction, including without limitation the rights to use,
|
||||
* copy, modify, merge, publish, distribute, sublicense, and/or
|
||||
* sell copies of the Software, and to permit persons to whom the
|
||||
* Software is furnished to do so, subject to the following
|
||||
* conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be
|
||||
* included in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
||||
* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
||||
* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||
* OTHER DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
|
||||
#include "imx6qdl-logicpd.dtsi"
|
||||
|
||||
/ {
|
||||
model = "Logic PD i.MX6QDL SOM";
|
||||
compatible = "fsl,imx6q";
|
||||
|
||||
reg_usb_otg_vbus: regulator-otg-vbus@0 {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "usb_otg_vbus";
|
||||
regulator-min-microvolt = <5000000>;
|
||||
regulator-max-microvolt = <5000000>;
|
||||
gpio = <&gpio4 15 GPIO_ACTIVE_HIGH>;
|
||||
enable-active-high;
|
||||
};
|
||||
|
||||
reg_usb_h1_vbus: regulator-usbh1vbus@1 {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "usb_h1_vbus";
|
||||
regulator-min-microvolt = <5000000>;
|
||||
regulator-max-microvolt = <5000000>;
|
||||
enable-active-high;
|
||||
regulator-always-on;
|
||||
gpio = <&gpio1 0 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
|
||||
reg_3v3: regulator-3v3@2 {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "reg_3v3";
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
};
|
||||
};
|
||||
|
||||
&uart3 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_uart3>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usbh1 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_usbh1>;
|
||||
vbus-supply = <®_usb_h1_vbus>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usbh2 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_usbh2>;
|
||||
phy_type = "hsic";
|
||||
disable-over-current;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usbotg {
|
||||
vbus-supply = <®_usb_otg_vbus>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_usbotg>;
|
||||
disable-over-current;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&fec {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_enet>;
|
||||
phy-mode = "rmii";
|
||||
phy-speed = <10>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usdhc2 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_usdhc2>;
|
||||
cd-gpios = <&gpio1 4 GPIO_ACTIVE_LOW>;
|
||||
no-1-8-v;
|
||||
keep-power-in-suspend;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&iomuxc {
|
||||
pinctrl_enet: enetgrp {
|
||||
fsl,pins = <
|
||||
MX6QDL_PAD_ENET_CRS_DV__ENET_RX_EN 0x1b0b0
|
||||
MX6QDL_PAD_ENET_MDIO__ENET_MDIO 0x1b0b0
|
||||
MX6QDL_PAD_ENET_MDC__ENET_MDC 0x1b0b0
|
||||
MX6QDL_PAD_ENET_RXD0__ENET_RX_DATA0 0x1b0b0
|
||||
MX6QDL_PAD_ENET_RXD1__ENET_RX_DATA1 0x1b0b0
|
||||
MX6QDL_PAD_ENET_RX_ER__ENET_RX_ER 0x1b0b0
|
||||
MX6QDL_PAD_ENET_TXD0__ENET_TX_DATA0 0x1b0b0
|
||||
MX6QDL_PAD_ENET_TXD1__ENET_TX_DATA1 0x1b0b0
|
||||
MX6QDL_PAD_ENET_TX_EN__ENET_TX_EN 0x1b0b0
|
||||
MX6QDL_PAD_GPIO_16__ENET_REF_CLK 0x4001b0a8
|
||||
MX6QDL_PAD_KEY_ROW0__GPIO4_IO07 0x1b0b0 /* nINT */
|
||||
MX6QDL_PAD_KEY_ROW1__GPIO4_IO09 0x1b0b0 /* Ethernet Reset */
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_gpio_leds: gpioledsgrp {
|
||||
fsl,pins = <
|
||||
MX6QDL_PAD_EIM_D19__GPIO3_IO19 0x130b0
|
||||
MX6QDL_PAD_EIM_D20__GPIO3_IO20 0x130b0
|
||||
MX6QDL_PAD_EIM_D21__GPIO3_IO21 0x130b0
|
||||
MX6QDL_PAD_EIM_D22__GPIO3_IO22 0x130b0
|
||||
>;
|
||||
};
|
||||
pinctrl_uart3: uart3grp {
|
||||
fsl,pins = <
|
||||
MX6QDL_PAD_EIM_D23__UART3_CTS_B 0x1b0b1
|
||||
MX6QDL_PAD_EIM_D24__UART3_TX_DATA 0x1b0b1
|
||||
MX6QDL_PAD_EIM_D25__UART3_RX_DATA 0x1b0b1
|
||||
MX6QDL_PAD_EIM_EB3__UART3_RTS_B 0x1b0b1
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_usbh1: usbh1grp {
|
||||
fsl,pins = <
|
||||
MX6QDL_PAD_GPIO_0__GPIO1_IO00 0x1b0b0 /* USB_H1_PWR_EN */
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_usbh2: usbh2grp {
|
||||
fsl,pins = <
|
||||
MX6QDL_PAD_RGMII_TX_CTL__USB_H2_STROBE 0x17030
|
||||
MX6QDL_PAD_RGMII_TXC__USB_H2_DATA 0x13030
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_usbotg: usbotggrp {
|
||||
fsl,pins = <
|
||||
MX6QDL_PAD_GPIO_1__USB_OTG_ID 0x17059
|
||||
MX6QDL_PAD_KEY_ROW4__GPIO4_IO15 0x130b0 /* USB_OTG_PWR_EN */
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_usdhc2: usdhc2grp {
|
||||
fsl,pins = <
|
||||
MX6QDL_PAD_SD2_CLK__SD2_CLK 0x10059
|
||||
MX6QDL_PAD_SD2_CMD__SD2_CMD 0x17059
|
||||
MX6QDL_PAD_SD2_DAT0__SD2_DATA0 0x17059
|
||||
MX6QDL_PAD_SD2_DAT1__SD2_DATA1 0x17059
|
||||
MX6QDL_PAD_SD2_DAT2__SD2_DATA2 0x17059
|
||||
MX6QDL_PAD_SD2_DAT3__SD2_DATA3 0x17059
|
||||
>;
|
||||
};
|
||||
};
|
||||
361
arch/arm/dts/imx6qdl-logicpd.dtsi
Normal file
361
arch/arm/dts/imx6qdl-logicpd.dtsi
Normal file
@@ -0,0 +1,361 @@
|
||||
/*
|
||||
* Copyright 2016 Logic PD
|
||||
* This file is adapted from imx6qdl-sabresd.dtsi.
|
||||
* Copyright 2012 Freescale Semiconductor, Inc.
|
||||
* Copyright 2011 Linaro Ltd.
|
||||
*
|
||||
* The code contained herein is licensed under the GNU General Public
|
||||
* License. You may obtain a copy of the GNU General Public License
|
||||
* Version 2 or later at the following locations:
|
||||
*
|
||||
* http://www.opensource.org/licenses/gpl-license.html
|
||||
* http://www.gnu.org/copyleft/gpl.html
|
||||
*/
|
||||
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/input/input.h>
|
||||
#include "imx6q.dtsi"
|
||||
|
||||
/ {
|
||||
chosen {
|
||||
stdout-path = &uart1;
|
||||
};
|
||||
|
||||
memory {
|
||||
reg = <0x10000000 0x80000000>;
|
||||
};
|
||||
};
|
||||
|
||||
/* Reroute power feeding the CPU to come from the external PMIC */
|
||||
®_arm
|
||||
{
|
||||
vin-supply = <&sw1a_reg>;
|
||||
};
|
||||
|
||||
®_soc
|
||||
{
|
||||
vin-supply = <&sw1c_reg>;
|
||||
};
|
||||
|
||||
&clks {
|
||||
assigned-clocks = <&clks IMX6QDL_CLK_LDB_DI0_SEL>,
|
||||
<&clks IMX6QDL_CLK_LDB_DI1_SEL>;
|
||||
assigned-clock-parents = <&clks IMX6QDL_CLK_PLL3_USB_OTG>,
|
||||
<&clks IMX6QDL_CLK_PLL3_USB_OTG>;
|
||||
};
|
||||
|
||||
&i2c3 {
|
||||
clock-frequency = <100000>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_i2c3>;
|
||||
status = "okay";
|
||||
|
||||
pmic: pfuze100@08 {
|
||||
compatible = "fsl,pfuze100";
|
||||
reg = <0x08>;
|
||||
|
||||
regulators {
|
||||
sw1a_reg: sw1ab {
|
||||
regulator-min-microvolt = <725000>;
|
||||
regulator-max-microvolt = <1450000>;
|
||||
regulator-name = "vddcore";
|
||||
regulator-boot-on;
|
||||
regulator-always-on;
|
||||
regulator-ramp-delay = <6250>;
|
||||
};
|
||||
|
||||
sw1c_reg: sw1c {
|
||||
regulator-min-microvolt = <725000>;
|
||||
regulator-max-microvolt = <1450000>;
|
||||
regulator-name = "vddsoc";
|
||||
regulator-boot-on;
|
||||
regulator-always-on;
|
||||
regulator-ramp-delay = <6250>;
|
||||
};
|
||||
|
||||
sw2_reg: sw2 {
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-name = "gen_3v3";
|
||||
regulator-boot-on;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
sw3a_reg: sw3a {
|
||||
regulator-min-microvolt = <400000>;
|
||||
regulator-max-microvolt = <1975000>;
|
||||
regulator-name = "sw3a_vddr";
|
||||
regulator-boot-on;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
sw3b_reg: sw3b {
|
||||
regulator-min-microvolt = <400000>;
|
||||
regulator-max-microvolt = <1975000>;
|
||||
regulator-name = "sw3b_vddr";
|
||||
regulator-boot-on;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
sw4_reg: sw4 {
|
||||
regulator-min-microvolt = <800000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-name = "gen_rgmii";
|
||||
};
|
||||
|
||||
|
||||
swbst_reg: swbst {
|
||||
regulator-min-microvolt = <5000000>;
|
||||
regulator-max-microvolt = <5150000>;
|
||||
regulator-name = "gen_5v0";
|
||||
};
|
||||
|
||||
snvs_reg: vsnvs {
|
||||
regulator-min-microvolt = <1000000>;
|
||||
regulator-max-microvolt = <3000000>;
|
||||
regulator-name = "gen_vsns";
|
||||
regulator-boot-on;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
vref_reg: vrefddr {
|
||||
regulator-boot-on;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
vgen1_reg: vgen1 {
|
||||
regulator-min-microvolt = <1500000>;
|
||||
regulator-max-microvolt = <1500000>;
|
||||
regulator-name = "gen_1v5";
|
||||
};
|
||||
|
||||
vgen2_reg: vgen2 {
|
||||
regulator-name = "vgen2";
|
||||
regulator-min-microvolt = <800000>;
|
||||
regulator-max-microvolt = <1550000>;
|
||||
};
|
||||
|
||||
vgen3_reg: vgen3 {
|
||||
regulator-name = "gen_vadj_0";
|
||||
regulator-min-microvolt = <3000000>;
|
||||
regulator-max-microvolt = <3000000>;
|
||||
};
|
||||
|
||||
vgen4_reg: vgen4 {
|
||||
regulator-name = "gen_1v8";
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
vgen5_reg: vgen5 {
|
||||
regulator-name = "gen_adj_1";
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
vgen6_reg: vgen6 {
|
||||
regulator-name = "gen_2v5";
|
||||
regulator-min-microvolt = <2500000>;
|
||||
regulator-max-microvolt = <2500000>;
|
||||
regulator-always-on;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
mfg_eeprom: at24@51 {
|
||||
compatible = "atmel,24c64";
|
||||
pagesize = <32>;
|
||||
read-only;
|
||||
reg = <0x51>;
|
||||
};
|
||||
|
||||
user_eeprom: at24@52 {
|
||||
compatible = "atmel,24c64";
|
||||
pagesize = <32>;
|
||||
reg = <0x52>;
|
||||
};
|
||||
};
|
||||
|
||||
&iomuxc {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_hog>;
|
||||
|
||||
pinctrl_hog: hoggrp {
|
||||
fsl,pins = <
|
||||
MX6QDL_PAD_CSI0_MCLK__ARM_TRACE_CTL 0x1b0b0
|
||||
MX6QDL_PAD_CSI0_DATA_EN__ARM_TRACE_CLK 0x1b0b0
|
||||
MX6QDL_PAD_CSI0_VSYNC__ARM_TRACE00 0x1b0b0
|
||||
MX6QDL_PAD_CSI0_DAT4__ARM_TRACE01 0x1b0b0
|
||||
MX6QDL_PAD_CSI0_DAT5__ARM_TRACE02 0x1b0b0
|
||||
MX6QDL_PAD_CSI0_DAT6__ARM_TRACE03 0x1b0b0
|
||||
MX6QDL_PAD_CSI0_DAT7__ARM_TRACE04 0x1b0b0
|
||||
MX6QDL_PAD_CSI0_DAT8__ARM_TRACE05 0x1b0b0
|
||||
MX6QDL_PAD_CSI0_DAT9__ARM_TRACE06 0x1b0b0
|
||||
MX6QDL_PAD_CSI0_DAT10__ARM_TRACE07 0x1b0b0
|
||||
MX6QDL_PAD_CSI0_DAT11__ARM_TRACE08 0x1b0b0
|
||||
MX6QDL_PAD_CSI0_DAT12__ARM_TRACE09 0x1b0b0
|
||||
MX6QDL_PAD_CSI0_DAT13__ARM_TRACE10 0x1b0b0
|
||||
MX6QDL_PAD_CSI0_DAT14__ARM_TRACE11 0x1b0b0
|
||||
MX6QDL_PAD_CSI0_DAT15__ARM_TRACE12 0x1b0b0
|
||||
MX6QDL_PAD_CSI0_DAT16__ARM_TRACE13 0x1b0b0
|
||||
MX6QDL_PAD_CSI0_DAT17__ARM_TRACE14 0x1b0b0
|
||||
MX6QDL_PAD_CSI0_DAT18__ARM_TRACE15 0x1b0b0
|
||||
MX6QDL_PAD_CSI0_DAT19__GPIO6_IO05 0x1b0b0
|
||||
MX6QDL_PAD_EIM_LBA__GPIO2_IO27 0x80000000
|
||||
MX6QDL_PAD_EIM_OE__GPIO2_IO25 0x80000000
|
||||
MX6QDL_PAD_EIM_RW__GPIO2_IO26 0x80000000
|
||||
MX6QDL_PAD_EIM_CS0__GPIO2_IO23 0x80000000
|
||||
MX6QDL_PAD_EIM_CS1__GPIO2_IO24 0x80000000
|
||||
MX6QDL_PAD_EIM_A16__GPIO2_IO22 0x80000000
|
||||
MX6QDL_PAD_EIM_A17__GPIO2_IO21 0x80000000
|
||||
MX6QDL_PAD_EIM_A18__GPIO2_IO20 0x80000000
|
||||
MX6QDL_PAD_EIM_A19__GPIO2_IO19 0x80000000
|
||||
MX6QDL_PAD_EIM_A20__GPIO2_IO18 0x80000000
|
||||
MX6QDL_PAD_EIM_A21__GPIO2_IO17 0x80000000
|
||||
MX6QDL_PAD_EIM_A22__GPIO2_IO16 0x80000000
|
||||
MX6QDL_PAD_EIM_A23__GPIO6_IO06 0x80000000
|
||||
MX6QDL_PAD_EIM_A24__GPIO5_IO04 0x80000000
|
||||
MX6QDL_PAD_EIM_A25__GPIO5_IO02 0x80000000
|
||||
MX6QDL_PAD_EIM_DA0__GPIO3_IO00 0x80000000
|
||||
MX6QDL_PAD_EIM_DA1__GPIO3_IO01 0x80000000
|
||||
MX6QDL_PAD_EIM_DA2__GPIO3_IO02 0x80000000
|
||||
MX6QDL_PAD_EIM_DA3__GPIO3_IO03 0x80000000
|
||||
MX6QDL_PAD_EIM_DA4__GPIO3_IO04 0x80000000
|
||||
MX6QDL_PAD_EIM_DA5__GPIO3_IO05 0x80000000
|
||||
MX6QDL_PAD_EIM_DA6__GPIO3_IO06 0x80000000
|
||||
MX6QDL_PAD_EIM_DA7__GPIO3_IO07 0x80000000
|
||||
MX6QDL_PAD_EIM_DA8__GPIO3_IO08 0x80000000
|
||||
MX6QDL_PAD_EIM_DA9__GPIO3_IO09 0x80000000
|
||||
MX6QDL_PAD_EIM_DA10__GPIO3_IO10 0x80000000
|
||||
MX6QDL_PAD_EIM_DA11__GPIO3_IO11 0x80000000
|
||||
MX6QDL_PAD_EIM_DA12__GPIO3_IO12 0x80000000
|
||||
MX6QDL_PAD_EIM_DA13__GPIO3_IO13 0x80000000
|
||||
MX6QDL_PAD_EIM_DA14__GPIO3_IO14 0x80000000
|
||||
MX6QDL_PAD_EIM_DA15__GPIO3_IO15 0x80000000
|
||||
MX6QDL_PAD_EIM_D16__GPIO3_IO16 0x80000000
|
||||
MX6QDL_PAD_EIM_D19__GPIO3_IO19 0x80000000
|
||||
MX6QDL_PAD_EIM_D20__GPIO3_IO20 0x80000000
|
||||
MX6QDL_PAD_EIM_D21__GPIO3_IO21 0x80000000
|
||||
MX6QDL_PAD_EIM_D22__GPIO3_IO22 0x80000000
|
||||
MX6QDL_PAD_EIM_D26__GPIO3_IO26 0x80000000
|
||||
MX6QDL_PAD_EIM_D27__GPIO3_IO27 0x80000000
|
||||
MX6QDL_PAD_EIM_EB0__GPIO2_IO28 0x80000000
|
||||
MX6QDL_PAD_EIM_EB1__GPIO2_IO29 0x80000000
|
||||
MX6QDL_PAD_EIM_EB2__GPIO2_IO30 0x80000000
|
||||
MX6QDL_PAD_EIM_BCLK__GPIO6_IO31 0x80000000
|
||||
MX6QDL_PAD_EIM_WAIT__GPIO5_IO00 0x80000000
|
||||
MX6QDL_PAD_GPIO_2__GPIO1_IO02 0x80000000
|
||||
MX6QDL_PAD_GPIO_4__GPIO1_IO04 0x80000000
|
||||
MX6QDL_PAD_GPIO_7__GPIO1_IO07 0x80000000
|
||||
MX6QDL_PAD_GPIO_8__GPIO1_IO08 0x80000000
|
||||
MX6QDL_PAD_GPIO_9__GPIO1_IO09 0x80000000
|
||||
MX6QDL_PAD_GPIO_17__GPIO7_IO12 0x80000000
|
||||
MX6QDL_PAD_GPIO_18__GPIO7_IO13 0x80000000
|
||||
MX6QDL_PAD_GPIO_19__GPIO4_IO05 0x80000000
|
||||
MX6QDL_PAD_KEY_COL0__GPIO4_IO06 0x80000000
|
||||
MX6QDL_PAD_KEY_ROW0__GPIO4_IO07 0x80000000
|
||||
MX6QDL_PAD_KEY_COL1__GPIO4_IO08 0x80000000
|
||||
MX6QDL_PAD_NANDF_CS1__GPIO6_IO14 0x80000000
|
||||
MX6QDL_PAD_NANDF_CS3__GPIO6_IO16 0x80000000
|
||||
MX6QDL_PAD_RGMII_TD0__GPIO6_IO20 0x80000000
|
||||
MX6QDL_PAD_RGMII_TD1__GPIO6_IO21 0x80000000
|
||||
MX6QDL_PAD_RGMII_TD2__GPIO6_IO22 0x80000000
|
||||
MX6QDL_PAD_RGMII_TD3__GPIO6_IO23 0x80000000
|
||||
MX6QDL_PAD_RGMII_RD0__GPIO6_IO25 0x80000000
|
||||
MX6QDL_PAD_RGMII_RD1__GPIO6_IO27 0x80000000
|
||||
MX6QDL_PAD_RGMII_RD2__GPIO6_IO28 0x80000000
|
||||
MX6QDL_PAD_RGMII_RD3__GPIO6_IO29 0x80000000
|
||||
MX6QDL_PAD_SD4_DAT0__GPIO2_IO08 0x80000000
|
||||
MX6QDL_PAD_SD4_DAT3__GPIO2_IO11 0x80000000
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_i2c3: i2c3grp {
|
||||
fsl,pins = <
|
||||
MX6QDL_PAD_EIM_D17__I2C3_SCL 0x4001b8b1
|
||||
MX6QDL_PAD_EIM_D18__I2C3_SDA 0x4001b8b1
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_uart1: uart1grp {
|
||||
fsl,pins = <
|
||||
MX6QDL_PAD_SD3_DAT6__UART1_RX_DATA 0x1b0b1
|
||||
MX6QDL_PAD_SD3_DAT7__UART1_TX_DATA 0x1b0b1
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_uart2: uart2grp {
|
||||
fsl,pins = <
|
||||
MX6QDL_PAD_SD4_DAT4__UART2_RX_DATA 0x1b0b1
|
||||
MX6QDL_PAD_SD4_DAT5__UART2_RTS_B 0x1b0b1
|
||||
MX6QDL_PAD_SD4_DAT6__UART2_CTS_B 0x1b0b1
|
||||
MX6QDL_PAD_SD4_DAT7__UART2_TX_DATA 0x1b0b1
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_usdhc1: usdhc1grp {
|
||||
fsl,pins = <
|
||||
MX6QDL_PAD_SD1_CMD__SD1_CMD 0x17071
|
||||
MX6QDL_PAD_SD1_CLK__SD1_CLK 0x10071
|
||||
MX6QDL_PAD_SD1_DAT0__SD1_DATA0 0x17071
|
||||
MX6QDL_PAD_SD1_DAT1__SD1_DATA1 0x17071
|
||||
MX6QDL_PAD_SD1_DAT2__SD1_DATA2 0x17071
|
||||
MX6QDL_PAD_SD1_DAT3__SD1_DATA3 0x17071
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_usdhc3: usdhc3grp {
|
||||
fsl,pins = <
|
||||
MX6QDL_PAD_SD3_CMD__SD3_CMD 0x17059
|
||||
MX6QDL_PAD_SD3_CLK__SD3_CLK 0x10059
|
||||
MX6QDL_PAD_SD3_DAT0__SD3_DATA0 0x17059
|
||||
MX6QDL_PAD_SD3_DAT1__SD3_DATA1 0x17059
|
||||
MX6QDL_PAD_SD3_DAT2__SD3_DATA2 0x17059
|
||||
MX6QDL_PAD_SD3_DAT3__SD3_DATA3 0x17059
|
||||
MX6QDL_PAD_SD3_DAT4__GPIO7_IO01 0x1f0b0 /* WL_IRQ */
|
||||
MX6QDL_PAD_SD3_DAT5__GPIO7_IO00 0x1f0b0 /* WLAN_EN */
|
||||
MX6QDL_PAD_SD3_RST__GPIO7_IO08 0x1f0b0 /* BT_EN */
|
||||
>;
|
||||
};
|
||||
};
|
||||
|
||||
&uart1 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_uart1>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&uart2 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_uart2>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usdhc1 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_usdhc1>;
|
||||
cd-gpios = <&gpio6 16 GPIO_ACTIVE_HIGH>;
|
||||
keep-power-in-suspend;
|
||||
enable-sdio-wakeup;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usdhc3 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_usdhc3>;
|
||||
non-removable;
|
||||
keep-power-in-suspend;
|
||||
enable-sdio-wakeup;
|
||||
vmmc-supply = <&sw2_reg>;
|
||||
status = "okay";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
wlcore: wlcore@0 {
|
||||
compatible = "ti,wl1837";
|
||||
reg = <2>;
|
||||
interrupt-parent = <&gpio7>;
|
||||
interrupts = <1 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
};
|
||||
641
arch/arm/dts/imx6sl-evk.dts
Normal file
641
arch/arm/dts/imx6sl-evk.dts
Normal file
@@ -0,0 +1,641 @@
|
||||
/*
|
||||
* Copyright (C) 2013 Freescale Semiconductor, Inc.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/input/input.h>
|
||||
#include "imx6sl.dtsi"
|
||||
|
||||
/ {
|
||||
model = "Freescale i.MX6 SoloLite EVK Board";
|
||||
compatible = "fsl,imx6sl-evk", "fsl,imx6sl";
|
||||
|
||||
memory {
|
||||
reg = <0x80000000 0x40000000>;
|
||||
};
|
||||
|
||||
backlight {
|
||||
compatible = "pwm-backlight";
|
||||
pwms = <&pwm1 0 5000000>;
|
||||
brightness-levels = <0 4 8 16 32 64 128 255>;
|
||||
default-brightness-level = <6>;
|
||||
};
|
||||
|
||||
leds {
|
||||
compatible = "gpio-leds";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_led>;
|
||||
|
||||
user {
|
||||
label = "debug";
|
||||
gpios = <&gpio3 20 GPIO_ACTIVE_HIGH>;
|
||||
linux,default-trigger = "heartbeat";
|
||||
};
|
||||
};
|
||||
|
||||
regulators {
|
||||
compatible = "simple-bus";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
reg_usb_otg1_vbus: regulator@0 {
|
||||
compatible = "regulator-fixed";
|
||||
reg = <0>;
|
||||
regulator-name = "usb_otg1_vbus";
|
||||
regulator-min-microvolt = <5000000>;
|
||||
regulator-max-microvolt = <5000000>;
|
||||
gpio = <&gpio4 0 0>;
|
||||
enable-active-high;
|
||||
vin-supply = <&swbst_reg>;
|
||||
};
|
||||
|
||||
reg_usb_otg2_vbus: regulator@1 {
|
||||
compatible = "regulator-fixed";
|
||||
reg = <1>;
|
||||
regulator-name = "usb_otg2_vbus";
|
||||
regulator-min-microvolt = <5000000>;
|
||||
regulator-max-microvolt = <5000000>;
|
||||
gpio = <&gpio4 2 0>;
|
||||
enable-active-high;
|
||||
vin-supply = <&swbst_reg>;
|
||||
};
|
||||
|
||||
reg_aud3v: regulator@2 {
|
||||
compatible = "regulator-fixed";
|
||||
reg = <2>;
|
||||
regulator-name = "wm8962-supply-3v15";
|
||||
regulator-min-microvolt = <3150000>;
|
||||
regulator-max-microvolt = <3150000>;
|
||||
regulator-boot-on;
|
||||
};
|
||||
|
||||
reg_aud4v: regulator@3 {
|
||||
compatible = "regulator-fixed";
|
||||
reg = <3>;
|
||||
regulator-name = "wm8962-supply-4v2";
|
||||
regulator-min-microvolt = <4325000>;
|
||||
regulator-max-microvolt = <4325000>;
|
||||
regulator-boot-on;
|
||||
};
|
||||
|
||||
reg_lcd_3v3: regulator@4 {
|
||||
compatible = "regulator-fixed";
|
||||
reg = <4>;
|
||||
regulator-name = "lcd-3v3";
|
||||
gpio = <&gpio4 3 0>;
|
||||
enable-active-high;
|
||||
};
|
||||
};
|
||||
|
||||
sound {
|
||||
compatible = "fsl,imx6sl-evk-wm8962", "fsl,imx-audio-wm8962";
|
||||
model = "wm8962-audio";
|
||||
ssi-controller = <&ssi2>;
|
||||
audio-codec = <&codec>;
|
||||
audio-routing =
|
||||
"Headphone Jack", "HPOUTL",
|
||||
"Headphone Jack", "HPOUTR",
|
||||
"Ext Spk", "SPKOUTL",
|
||||
"Ext Spk", "SPKOUTR",
|
||||
"AMIC", "MICBIAS",
|
||||
"IN3R", "AMIC";
|
||||
mux-int-port = <2>;
|
||||
mux-ext-port = <3>;
|
||||
};
|
||||
};
|
||||
|
||||
&audmux {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_audmux3>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&ecspi1 {
|
||||
cs-gpios = <&gpio4 11 0>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_ecspi1>;
|
||||
status = "okay";
|
||||
|
||||
flash: m25p80@0 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
compatible = "st,m25p32", "jedec,spi-nor";
|
||||
spi-max-frequency = <20000000>;
|
||||
reg = <0>;
|
||||
};
|
||||
};
|
||||
|
||||
&fec {
|
||||
pinctrl-names = "default", "sleep";
|
||||
pinctrl-0 = <&pinctrl_fec>;
|
||||
pinctrl-1 = <&pinctrl_fec_sleep>;
|
||||
phy-mode = "rmii";
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&i2c1 {
|
||||
clock-frequency = <100000>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_i2c1>;
|
||||
status = "okay";
|
||||
|
||||
pmic: pfuze100@08 {
|
||||
compatible = "fsl,pfuze100";
|
||||
reg = <0x08>;
|
||||
|
||||
regulators {
|
||||
sw1a_reg: sw1ab {
|
||||
regulator-min-microvolt = <300000>;
|
||||
regulator-max-microvolt = <1875000>;
|
||||
regulator-boot-on;
|
||||
regulator-always-on;
|
||||
regulator-ramp-delay = <6250>;
|
||||
};
|
||||
|
||||
sw1c_reg: sw1c {
|
||||
regulator-min-microvolt = <300000>;
|
||||
regulator-max-microvolt = <1875000>;
|
||||
regulator-boot-on;
|
||||
regulator-always-on;
|
||||
regulator-ramp-delay = <6250>;
|
||||
};
|
||||
|
||||
sw2_reg: sw2 {
|
||||
regulator-min-microvolt = <800000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-boot-on;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
sw3a_reg: sw3a {
|
||||
regulator-min-microvolt = <400000>;
|
||||
regulator-max-microvolt = <1975000>;
|
||||
regulator-boot-on;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
sw3b_reg: sw3b {
|
||||
regulator-min-microvolt = <400000>;
|
||||
regulator-max-microvolt = <1975000>;
|
||||
regulator-boot-on;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
sw4_reg: sw4 {
|
||||
regulator-min-microvolt = <800000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
};
|
||||
|
||||
swbst_reg: swbst {
|
||||
regulator-min-microvolt = <5000000>;
|
||||
regulator-max-microvolt = <5150000>;
|
||||
};
|
||||
|
||||
snvs_reg: vsnvs {
|
||||
regulator-min-microvolt = <1000000>;
|
||||
regulator-max-microvolt = <3000000>;
|
||||
regulator-boot-on;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
vref_reg: vrefddr {
|
||||
regulator-boot-on;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
vgen1_reg: vgen1 {
|
||||
regulator-min-microvolt = <800000>;
|
||||
regulator-max-microvolt = <1550000>;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
vgen2_reg: vgen2 {
|
||||
regulator-min-microvolt = <800000>;
|
||||
regulator-max-microvolt = <1550000>;
|
||||
};
|
||||
|
||||
vgen3_reg: vgen3 {
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
};
|
||||
|
||||
vgen4_reg: vgen4 {
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
vgen5_reg: vgen5 {
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
vgen6_reg: vgen6 {
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-always-on;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&i2c2 {
|
||||
clock-frequency = <100000>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_i2c2>;
|
||||
status = "okay";
|
||||
|
||||
codec: wm8962@1a {
|
||||
compatible = "wlf,wm8962";
|
||||
reg = <0x1a>;
|
||||
clocks = <&clks IMX6SL_CLK_EXTERN_AUDIO>;
|
||||
DCVDD-supply = <&vgen3_reg>;
|
||||
DBVDD-supply = <®_aud3v>;
|
||||
AVDD-supply = <&vgen3_reg>;
|
||||
CPVDD-supply = <&vgen3_reg>;
|
||||
MICVDD-supply = <®_aud3v>;
|
||||
PLLVDD-supply = <&vgen3_reg>;
|
||||
SPKVDD1-supply = <®_aud4v>;
|
||||
SPKVDD2-supply = <®_aud4v>;
|
||||
};
|
||||
};
|
||||
|
||||
&iomuxc {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_hog>;
|
||||
|
||||
imx6sl-evk {
|
||||
pinctrl_hog: hoggrp {
|
||||
fsl,pins = <
|
||||
MX6SL_PAD_KEY_ROW7__GPIO4_IO07 0x17059
|
||||
MX6SL_PAD_KEY_COL7__GPIO4_IO06 0x17059
|
||||
MX6SL_PAD_SD2_DAT7__GPIO5_IO00 0x17059
|
||||
MX6SL_PAD_SD2_DAT6__GPIO4_IO29 0x17059
|
||||
MX6SL_PAD_REF_CLK_32K__GPIO3_IO22 0x17059
|
||||
MX6SL_PAD_KEY_COL4__GPIO4_IO00 0x80000000
|
||||
MX6SL_PAD_KEY_COL5__GPIO4_IO02 0x80000000
|
||||
MX6SL_PAD_AUD_MCLK__AUDIO_CLK_OUT 0x4130b0
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_audmux3: audmux3grp {
|
||||
fsl,pins = <
|
||||
MX6SL_PAD_AUD_RXD__AUD3_RXD 0x4130b0
|
||||
MX6SL_PAD_AUD_TXC__AUD3_TXC 0x4130b0
|
||||
MX6SL_PAD_AUD_TXD__AUD3_TXD 0x4110b0
|
||||
MX6SL_PAD_AUD_TXFS__AUD3_TXFS 0x4130b0
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_ecspi1: ecspi1grp {
|
||||
fsl,pins = <
|
||||
MX6SL_PAD_ECSPI1_MISO__ECSPI1_MISO 0x100b1
|
||||
MX6SL_PAD_ECSPI1_MOSI__ECSPI1_MOSI 0x100b1
|
||||
MX6SL_PAD_ECSPI1_SCLK__ECSPI1_SCLK 0x100b1
|
||||
MX6SL_PAD_ECSPI1_SS0__GPIO4_IO11 0x80000000
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_fec: fecgrp {
|
||||
fsl,pins = <
|
||||
MX6SL_PAD_FEC_MDC__FEC_MDC 0x1b0b0
|
||||
MX6SL_PAD_FEC_MDIO__FEC_MDIO 0x1b0b0
|
||||
MX6SL_PAD_FEC_CRS_DV__FEC_RX_DV 0x1b0b0
|
||||
MX6SL_PAD_FEC_RXD0__FEC_RX_DATA0 0x1b0b0
|
||||
MX6SL_PAD_FEC_RXD1__FEC_RX_DATA1 0x1b0b0
|
||||
MX6SL_PAD_FEC_TX_EN__FEC_TX_EN 0x1b0b0
|
||||
MX6SL_PAD_FEC_TXD0__FEC_TX_DATA0 0x1b0b0
|
||||
MX6SL_PAD_FEC_TXD1__FEC_TX_DATA1 0x1b0b0
|
||||
MX6SL_PAD_FEC_REF_CLK__FEC_REF_OUT 0x4001b0a8
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_fec_sleep: fecgrp-sleep {
|
||||
fsl,pins = <
|
||||
MX6SL_PAD_FEC_MDC__GPIO4_IO23 0x3080
|
||||
MX6SL_PAD_FEC_CRS_DV__GPIO4_IO25 0x3080
|
||||
MX6SL_PAD_FEC_RXD0__GPIO4_IO17 0x3080
|
||||
MX6SL_PAD_FEC_RXD1__GPIO4_IO18 0x3080
|
||||
MX6SL_PAD_FEC_TX_EN__GPIO4_IO22 0x3080
|
||||
MX6SL_PAD_FEC_TXD0__GPIO4_IO24 0x3080
|
||||
MX6SL_PAD_FEC_TXD1__GPIO4_IO16 0x3080
|
||||
MX6SL_PAD_FEC_REF_CLK__GPIO4_IO26 0x3080
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_i2c1: i2c1grp {
|
||||
fsl,pins = <
|
||||
MX6SL_PAD_I2C1_SCL__I2C1_SCL 0x4001b8b1
|
||||
MX6SL_PAD_I2C1_SDA__I2C1_SDA 0x4001b8b1
|
||||
>;
|
||||
};
|
||||
|
||||
|
||||
pinctrl_i2c2: i2c2grp {
|
||||
fsl,pins = <
|
||||
MX6SL_PAD_I2C2_SCL__I2C2_SCL 0x4001b8b1
|
||||
MX6SL_PAD_I2C2_SDA__I2C2_SDA 0x4001b8b1
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_kpp: kppgrp {
|
||||
fsl,pins = <
|
||||
MX6SL_PAD_KEY_ROW0__KEY_ROW0 0x1b010
|
||||
MX6SL_PAD_KEY_ROW1__KEY_ROW1 0x1b010
|
||||
MX6SL_PAD_KEY_ROW2__KEY_ROW2 0x1b0b0
|
||||
MX6SL_PAD_KEY_COL0__KEY_COL0 0x110b0
|
||||
MX6SL_PAD_KEY_COL1__KEY_COL1 0x110b0
|
||||
MX6SL_PAD_KEY_COL2__KEY_COL2 0x110b0
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_lcd: lcdgrp {
|
||||
fsl,pins = <
|
||||
MX6SL_PAD_LCD_DAT0__LCD_DATA00 0x1b0b0
|
||||
MX6SL_PAD_LCD_DAT1__LCD_DATA01 0x1b0b0
|
||||
MX6SL_PAD_LCD_DAT2__LCD_DATA02 0x1b0b0
|
||||
MX6SL_PAD_LCD_DAT3__LCD_DATA03 0x1b0b0
|
||||
MX6SL_PAD_LCD_DAT4__LCD_DATA04 0x1b0b0
|
||||
MX6SL_PAD_LCD_DAT5__LCD_DATA05 0x1b0b0
|
||||
MX6SL_PAD_LCD_DAT6__LCD_DATA06 0x1b0b0
|
||||
MX6SL_PAD_LCD_DAT7__LCD_DATA07 0x1b0b0
|
||||
MX6SL_PAD_LCD_DAT8__LCD_DATA08 0x1b0b0
|
||||
MX6SL_PAD_LCD_DAT9__LCD_DATA09 0x1b0b0
|
||||
MX6SL_PAD_LCD_DAT10__LCD_DATA10 0x1b0b0
|
||||
MX6SL_PAD_LCD_DAT11__LCD_DATA11 0x1b0b0
|
||||
MX6SL_PAD_LCD_DAT12__LCD_DATA12 0x1b0b0
|
||||
MX6SL_PAD_LCD_DAT13__LCD_DATA13 0x1b0b0
|
||||
MX6SL_PAD_LCD_DAT14__LCD_DATA14 0x1b0b0
|
||||
MX6SL_PAD_LCD_DAT15__LCD_DATA15 0x1b0b0
|
||||
MX6SL_PAD_LCD_DAT16__LCD_DATA16 0x1b0b0
|
||||
MX6SL_PAD_LCD_DAT17__LCD_DATA17 0x1b0b0
|
||||
MX6SL_PAD_LCD_DAT18__LCD_DATA18 0x1b0b0
|
||||
MX6SL_PAD_LCD_DAT19__LCD_DATA19 0x1b0b0
|
||||
MX6SL_PAD_LCD_DAT20__LCD_DATA20 0x1b0b0
|
||||
MX6SL_PAD_LCD_DAT21__LCD_DATA21 0x1b0b0
|
||||
MX6SL_PAD_LCD_DAT22__LCD_DATA22 0x1b0b0
|
||||
MX6SL_PAD_LCD_DAT23__LCD_DATA23 0x1b0b0
|
||||
MX6SL_PAD_LCD_CLK__LCD_CLK 0x1b0b0
|
||||
MX6SL_PAD_LCD_ENABLE__LCD_ENABLE 0x1b0b0
|
||||
MX6SL_PAD_LCD_HSYNC__LCD_HSYNC 0x1b0b0
|
||||
MX6SL_PAD_LCD_VSYNC__LCD_VSYNC 0x1b0b0
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_led: ledgrp {
|
||||
fsl,pins = <
|
||||
MX6SL_PAD_HSIC_STROBE__GPIO3_IO20 0x17059
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_pwm1: pwmgrp {
|
||||
fsl,pins = <
|
||||
MX6SL_PAD_PWM1__PWM1_OUT 0x110b0
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_uart1: uart1grp {
|
||||
fsl,pins = <
|
||||
MX6SL_PAD_UART1_RXD__UART1_RX_DATA 0x1b0b1
|
||||
MX6SL_PAD_UART1_TXD__UART1_TX_DATA 0x1b0b1
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_usbotg1: usbotg1grp {
|
||||
fsl,pins = <
|
||||
MX6SL_PAD_EPDC_PWRCOM__USB_OTG1_ID 0x17059
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_usdhc1: usdhc1grp {
|
||||
fsl,pins = <
|
||||
MX6SL_PAD_SD1_CMD__SD1_CMD 0x17059
|
||||
MX6SL_PAD_SD1_CLK__SD1_CLK 0x10059
|
||||
MX6SL_PAD_SD1_DAT0__SD1_DATA0 0x17059
|
||||
MX6SL_PAD_SD1_DAT1__SD1_DATA1 0x17059
|
||||
MX6SL_PAD_SD1_DAT2__SD1_DATA2 0x17059
|
||||
MX6SL_PAD_SD1_DAT3__SD1_DATA3 0x17059
|
||||
MX6SL_PAD_SD1_DAT4__SD1_DATA4 0x17059
|
||||
MX6SL_PAD_SD1_DAT5__SD1_DATA5 0x17059
|
||||
MX6SL_PAD_SD1_DAT6__SD1_DATA6 0x17059
|
||||
MX6SL_PAD_SD1_DAT7__SD1_DATA7 0x17059
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_usdhc1_100mhz: usdhc1grp100mhz {
|
||||
fsl,pins = <
|
||||
MX6SL_PAD_SD1_CMD__SD1_CMD 0x170b9
|
||||
MX6SL_PAD_SD1_CLK__SD1_CLK 0x100b9
|
||||
MX6SL_PAD_SD1_DAT0__SD1_DATA0 0x170b9
|
||||
MX6SL_PAD_SD1_DAT1__SD1_DATA1 0x170b9
|
||||
MX6SL_PAD_SD1_DAT2__SD1_DATA2 0x170b9
|
||||
MX6SL_PAD_SD1_DAT3__SD1_DATA3 0x170b9
|
||||
MX6SL_PAD_SD1_DAT4__SD1_DATA4 0x170b9
|
||||
MX6SL_PAD_SD1_DAT5__SD1_DATA5 0x170b9
|
||||
MX6SL_PAD_SD1_DAT6__SD1_DATA6 0x170b9
|
||||
MX6SL_PAD_SD1_DAT7__SD1_DATA7 0x170b9
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_usdhc1_200mhz: usdhc1grp200mhz {
|
||||
fsl,pins = <
|
||||
MX6SL_PAD_SD1_CMD__SD1_CMD 0x170f9
|
||||
MX6SL_PAD_SD1_CLK__SD1_CLK 0x100f9
|
||||
MX6SL_PAD_SD1_DAT0__SD1_DATA0 0x170f9
|
||||
MX6SL_PAD_SD1_DAT1__SD1_DATA1 0x170f9
|
||||
MX6SL_PAD_SD1_DAT2__SD1_DATA2 0x170f9
|
||||
MX6SL_PAD_SD1_DAT3__SD1_DATA3 0x170f9
|
||||
MX6SL_PAD_SD1_DAT4__SD1_DATA4 0x170f9
|
||||
MX6SL_PAD_SD1_DAT5__SD1_DATA5 0x170f9
|
||||
MX6SL_PAD_SD1_DAT6__SD1_DATA6 0x170f9
|
||||
MX6SL_PAD_SD1_DAT7__SD1_DATA7 0x170f9
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_usdhc2: usdhc2grp {
|
||||
fsl,pins = <
|
||||
MX6SL_PAD_SD2_CMD__SD2_CMD 0x17059
|
||||
MX6SL_PAD_SD2_CLK__SD2_CLK 0x10059
|
||||
MX6SL_PAD_SD2_DAT0__SD2_DATA0 0x17059
|
||||
MX6SL_PAD_SD2_DAT1__SD2_DATA1 0x17059
|
||||
MX6SL_PAD_SD2_DAT2__SD2_DATA2 0x17059
|
||||
MX6SL_PAD_SD2_DAT3__SD2_DATA3 0x17059
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_usdhc2_100mhz: usdhc2grp100mhz {
|
||||
fsl,pins = <
|
||||
MX6SL_PAD_SD2_CMD__SD2_CMD 0x170b9
|
||||
MX6SL_PAD_SD2_CLK__SD2_CLK 0x100b9
|
||||
MX6SL_PAD_SD2_DAT0__SD2_DATA0 0x170b9
|
||||
MX6SL_PAD_SD2_DAT1__SD2_DATA1 0x170b9
|
||||
MX6SL_PAD_SD2_DAT2__SD2_DATA2 0x170b9
|
||||
MX6SL_PAD_SD2_DAT3__SD2_DATA3 0x170b9
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_usdhc2_200mhz: usdhc2grp200mhz {
|
||||
fsl,pins = <
|
||||
MX6SL_PAD_SD2_CMD__SD2_CMD 0x170f9
|
||||
MX6SL_PAD_SD2_CLK__SD2_CLK 0x100f9
|
||||
MX6SL_PAD_SD2_DAT0__SD2_DATA0 0x170f9
|
||||
MX6SL_PAD_SD2_DAT1__SD2_DATA1 0x170f9
|
||||
MX6SL_PAD_SD2_DAT2__SD2_DATA2 0x170f9
|
||||
MX6SL_PAD_SD2_DAT3__SD2_DATA3 0x170f9
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_usdhc3: usdhc3grp {
|
||||
fsl,pins = <
|
||||
MX6SL_PAD_SD3_CMD__SD3_CMD 0x17059
|
||||
MX6SL_PAD_SD3_CLK__SD3_CLK 0x10059
|
||||
MX6SL_PAD_SD3_DAT0__SD3_DATA0 0x17059
|
||||
MX6SL_PAD_SD3_DAT1__SD3_DATA1 0x17059
|
||||
MX6SL_PAD_SD3_DAT2__SD3_DATA2 0x17059
|
||||
MX6SL_PAD_SD3_DAT3__SD3_DATA3 0x17059
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_usdhc3_100mhz: usdhc3grp100mhz {
|
||||
fsl,pins = <
|
||||
MX6SL_PAD_SD3_CMD__SD3_CMD 0x170b9
|
||||
MX6SL_PAD_SD3_CLK__SD3_CLK 0x100b9
|
||||
MX6SL_PAD_SD3_DAT0__SD3_DATA0 0x170b9
|
||||
MX6SL_PAD_SD3_DAT1__SD3_DATA1 0x170b9
|
||||
MX6SL_PAD_SD3_DAT2__SD3_DATA2 0x170b9
|
||||
MX6SL_PAD_SD3_DAT3__SD3_DATA3 0x170b9
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_usdhc3_200mhz: usdhc3grp200mhz {
|
||||
fsl,pins = <
|
||||
MX6SL_PAD_SD3_CMD__SD3_CMD 0x170f9
|
||||
MX6SL_PAD_SD3_CLK__SD3_CLK 0x100f9
|
||||
MX6SL_PAD_SD3_DAT0__SD3_DATA0 0x170f9
|
||||
MX6SL_PAD_SD3_DAT1__SD3_DATA1 0x170f9
|
||||
MX6SL_PAD_SD3_DAT2__SD3_DATA2 0x170f9
|
||||
MX6SL_PAD_SD3_DAT3__SD3_DATA3 0x170f9
|
||||
>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&kpp {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_kpp>;
|
||||
linux,keymap = <
|
||||
MATRIX_KEY(0x0, 0x0, KEY_UP) /* ROW0, COL0 */
|
||||
MATRIX_KEY(0x0, 0x1, KEY_DOWN) /* ROW0, COL1 */
|
||||
MATRIX_KEY(0x0, 0x2, KEY_ENTER) /* ROW0, COL2 */
|
||||
MATRIX_KEY(0x1, 0x0, KEY_HOME) /* ROW1, COL0 */
|
||||
MATRIX_KEY(0x1, 0x1, KEY_RIGHT) /* ROW1, COL1 */
|
||||
MATRIX_KEY(0x1, 0x2, KEY_LEFT) /* ROW1, COL2 */
|
||||
MATRIX_KEY(0x2, 0x0, KEY_VOLUMEDOWN) /* ROW2, COL0 */
|
||||
MATRIX_KEY(0x2, 0x1, KEY_VOLUMEUP) /* ROW2, COL1 */
|
||||
>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&lcdif {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_lcd>;
|
||||
lcd-supply = <®_lcd_3v3>;
|
||||
display = <&display0>;
|
||||
status = "okay";
|
||||
|
||||
display0: display0 {
|
||||
bits-per-pixel = <32>;
|
||||
bus-width = <24>;
|
||||
|
||||
display-timings {
|
||||
native-mode = <&timing0>;
|
||||
timing0: timing0 {
|
||||
clock-frequency = <33500000>;
|
||||
hactive = <800>;
|
||||
vactive = <480>;
|
||||
hback-porch = <89>;
|
||||
hfront-porch = <164>;
|
||||
vback-porch = <23>;
|
||||
vfront-porch = <10>;
|
||||
hsync-len = <10>;
|
||||
vsync-len = <10>;
|
||||
hsync-active = <0>;
|
||||
vsync-active = <0>;
|
||||
de-active = <1>;
|
||||
pixelclk-active = <0>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&pwm1 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_pwm1>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&snvs_poweroff {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&ssi2 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&uart1 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_uart1>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usbotg1 {
|
||||
vbus-supply = <®_usb_otg1_vbus>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_usbotg1>;
|
||||
disable-over-current;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usbotg2 {
|
||||
vbus-supply = <®_usb_otg2_vbus>;
|
||||
dr_mode = "host";
|
||||
disable-over-current;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usdhc1 {
|
||||
pinctrl-names = "default", "state_100mhz", "state_200mhz";
|
||||
pinctrl-0 = <&pinctrl_usdhc1>;
|
||||
pinctrl-1 = <&pinctrl_usdhc1_100mhz>;
|
||||
pinctrl-2 = <&pinctrl_usdhc1_200mhz>;
|
||||
bus-width = <8>;
|
||||
cd-gpios = <&gpio4 7 GPIO_ACTIVE_LOW>;
|
||||
wp-gpios = <&gpio4 6 GPIO_ACTIVE_HIGH>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usdhc2 {
|
||||
pinctrl-names = "default", "state_100mhz", "state_200mhz";
|
||||
pinctrl-0 = <&pinctrl_usdhc2>;
|
||||
pinctrl-1 = <&pinctrl_usdhc2_100mhz>;
|
||||
pinctrl-2 = <&pinctrl_usdhc2_200mhz>;
|
||||
cd-gpios = <&gpio5 0 GPIO_ACTIVE_LOW>;
|
||||
wp-gpios = <&gpio4 29 GPIO_ACTIVE_HIGH>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usdhc3 {
|
||||
pinctrl-names = "default", "state_100mhz", "state_200mhz";
|
||||
pinctrl-0 = <&pinctrl_usdhc3>;
|
||||
pinctrl-1 = <&pinctrl_usdhc3_100mhz>;
|
||||
pinctrl-2 = <&pinctrl_usdhc3_200mhz>;
|
||||
cd-gpios = <&gpio3 22 GPIO_ACTIVE_LOW>;
|
||||
status = "okay";
|
||||
};
|
||||
1077
arch/arm/dts/imx6sl-pinfunc.h
Normal file
1077
arch/arm/dts/imx6sl-pinfunc.h
Normal file
File diff suppressed because it is too large
Load Diff
927
arch/arm/dts/imx6sl.dtsi
Normal file
927
arch/arm/dts/imx6sl.dtsi
Normal file
@@ -0,0 +1,927 @@
|
||||
/*
|
||||
* Copyright 2013 Freescale Semiconductor, Inc.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
*/
|
||||
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
#include "imx6sl-pinfunc.h"
|
||||
#include <dt-bindings/clock/imx6sl-clock.h>
|
||||
|
||||
/ {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
/*
|
||||
* The decompressor and also some bootloaders rely on a
|
||||
* pre-existing /chosen node to be available to insert the
|
||||
* command line and merge other ATAGS info.
|
||||
* Also for U-Boot there must be a pre-existing /memory node.
|
||||
*/
|
||||
chosen {};
|
||||
memory { device_type = "memory"; reg = <0 0>; };
|
||||
|
||||
aliases {
|
||||
ethernet0 = &fec;
|
||||
gpio0 = &gpio1;
|
||||
gpio1 = &gpio2;
|
||||
gpio2 = &gpio3;
|
||||
gpio3 = &gpio4;
|
||||
gpio4 = &gpio5;
|
||||
serial0 = &uart1;
|
||||
serial1 = &uart2;
|
||||
serial2 = &uart3;
|
||||
serial3 = &uart4;
|
||||
serial4 = &uart5;
|
||||
spi0 = &ecspi1;
|
||||
spi1 = &ecspi2;
|
||||
spi2 = &ecspi3;
|
||||
spi3 = &ecspi4;
|
||||
usbphy0 = &usbphy1;
|
||||
usbphy1 = &usbphy2;
|
||||
};
|
||||
|
||||
cpus {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
cpu@0 {
|
||||
compatible = "arm,cortex-a9";
|
||||
device_type = "cpu";
|
||||
reg = <0x0>;
|
||||
next-level-cache = <&L2>;
|
||||
operating-points = <
|
||||
/* kHz uV */
|
||||
996000 1275000
|
||||
792000 1175000
|
||||
396000 975000
|
||||
>;
|
||||
fsl,soc-operating-points = <
|
||||
/* ARM kHz SOC-PU uV */
|
||||
996000 1225000
|
||||
792000 1175000
|
||||
396000 1175000
|
||||
>;
|
||||
clock-latency = <61036>; /* two CLK32 periods */
|
||||
clocks = <&clks IMX6SL_CLK_ARM>, <&clks IMX6SL_CLK_PLL2_PFD2>,
|
||||
<&clks IMX6SL_CLK_STEP>, <&clks IMX6SL_CLK_PLL1_SW>,
|
||||
<&clks IMX6SL_CLK_PLL1_SYS>;
|
||||
clock-names = "arm", "pll2_pfd2_396m", "step",
|
||||
"pll1_sw", "pll1_sys";
|
||||
arm-supply = <®_arm>;
|
||||
pu-supply = <®_pu>;
|
||||
soc-supply = <®_soc>;
|
||||
};
|
||||
};
|
||||
|
||||
intc: interrupt-controller@00a01000 {
|
||||
compatible = "arm,cortex-a9-gic";
|
||||
#interrupt-cells = <3>;
|
||||
interrupt-controller;
|
||||
reg = <0x00a01000 0x1000>,
|
||||
<0x00a00100 0x100>;
|
||||
interrupt-parent = <&intc>;
|
||||
};
|
||||
|
||||
clocks {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
ckil {
|
||||
compatible = "fixed-clock";
|
||||
#clock-cells = <0>;
|
||||
clock-frequency = <32768>;
|
||||
};
|
||||
|
||||
osc {
|
||||
compatible = "fixed-clock";
|
||||
#clock-cells = <0>;
|
||||
clock-frequency = <24000000>;
|
||||
};
|
||||
};
|
||||
|
||||
soc {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
compatible = "simple-bus";
|
||||
interrupt-parent = <&gpc>;
|
||||
ranges;
|
||||
|
||||
ocram: sram@00900000 {
|
||||
compatible = "mmio-sram";
|
||||
reg = <0x00900000 0x20000>;
|
||||
clocks = <&clks IMX6SL_CLK_OCRAM>;
|
||||
};
|
||||
|
||||
L2: l2-cache@00a02000 {
|
||||
compatible = "arm,pl310-cache";
|
||||
reg = <0x00a02000 0x1000>;
|
||||
interrupts = <0 92 IRQ_TYPE_LEVEL_HIGH>;
|
||||
cache-unified;
|
||||
cache-level = <2>;
|
||||
arm,tag-latency = <4 2 3>;
|
||||
arm,data-latency = <4 2 3>;
|
||||
};
|
||||
|
||||
pmu {
|
||||
compatible = "arm,cortex-a9-pmu";
|
||||
interrupts = <0 94 IRQ_TYPE_LEVEL_HIGH>;
|
||||
};
|
||||
|
||||
aips1: aips-bus@02000000 {
|
||||
compatible = "fsl,aips-bus", "simple-bus";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
reg = <0x02000000 0x100000>;
|
||||
ranges;
|
||||
|
||||
spba: spba-bus@02000000 {
|
||||
compatible = "fsl,spba-bus", "simple-bus";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
reg = <0x02000000 0x40000>;
|
||||
ranges;
|
||||
|
||||
spdif: spdif@02004000 {
|
||||
compatible = "fsl,imx6sl-spdif",
|
||||
"fsl,imx35-spdif";
|
||||
reg = <0x02004000 0x4000>;
|
||||
interrupts = <0 52 IRQ_TYPE_LEVEL_HIGH>;
|
||||
dmas = <&sdma 14 18 0>,
|
||||
<&sdma 15 18 0>;
|
||||
dma-names = "rx", "tx";
|
||||
clocks = <&clks IMX6SL_CLK_SPDIF_GCLK>, <&clks IMX6SL_CLK_OSC>,
|
||||
<&clks IMX6SL_CLK_SPDIF>, <&clks IMX6SL_CLK_DUMMY>,
|
||||
<&clks IMX6SL_CLK_DUMMY>, <&clks IMX6SL_CLK_DUMMY>,
|
||||
<&clks IMX6SL_CLK_IPG>, <&clks IMX6SL_CLK_DUMMY>,
|
||||
<&clks IMX6SL_CLK_DUMMY>, <&clks IMX6SL_CLK_SPBA>;
|
||||
clock-names = "core", "rxtx0",
|
||||
"rxtx1", "rxtx2",
|
||||
"rxtx3", "rxtx4",
|
||||
"rxtx5", "rxtx6",
|
||||
"rxtx7", "spba";
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
ecspi1: ecspi@02008000 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
compatible = "fsl,imx6sl-ecspi", "fsl,imx51-ecspi";
|
||||
reg = <0x02008000 0x4000>;
|
||||
interrupts = <0 31 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&clks IMX6SL_CLK_ECSPI1>,
|
||||
<&clks IMX6SL_CLK_ECSPI1>;
|
||||
clock-names = "ipg", "per";
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
ecspi2: ecspi@0200c000 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
compatible = "fsl,imx6sl-ecspi", "fsl,imx51-ecspi";
|
||||
reg = <0x0200c000 0x4000>;
|
||||
interrupts = <0 32 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&clks IMX6SL_CLK_ECSPI2>,
|
||||
<&clks IMX6SL_CLK_ECSPI2>;
|
||||
clock-names = "ipg", "per";
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
ecspi3: ecspi@02010000 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
compatible = "fsl,imx6sl-ecspi", "fsl,imx51-ecspi";
|
||||
reg = <0x02010000 0x4000>;
|
||||
interrupts = <0 33 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&clks IMX6SL_CLK_ECSPI3>,
|
||||
<&clks IMX6SL_CLK_ECSPI3>;
|
||||
clock-names = "ipg", "per";
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
ecspi4: ecspi@02014000 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
compatible = "fsl,imx6sl-ecspi", "fsl,imx51-ecspi";
|
||||
reg = <0x02014000 0x4000>;
|
||||
interrupts = <0 34 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&clks IMX6SL_CLK_ECSPI4>,
|
||||
<&clks IMX6SL_CLK_ECSPI4>;
|
||||
clock-names = "ipg", "per";
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
uart5: serial@02018000 {
|
||||
compatible = "fsl,imx6sl-uart",
|
||||
"fsl,imx6q-uart", "fsl,imx21-uart";
|
||||
reg = <0x02018000 0x4000>;
|
||||
interrupts = <0 30 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&clks IMX6SL_CLK_UART>,
|
||||
<&clks IMX6SL_CLK_UART_SERIAL>;
|
||||
clock-names = "ipg", "per";
|
||||
dmas = <&sdma 33 4 0>, <&sdma 34 4 0>;
|
||||
dma-names = "rx", "tx";
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
uart1: serial@02020000 {
|
||||
compatible = "fsl,imx6sl-uart",
|
||||
"fsl,imx6q-uart", "fsl,imx21-uart";
|
||||
reg = <0x02020000 0x4000>;
|
||||
interrupts = <0 26 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&clks IMX6SL_CLK_UART>,
|
||||
<&clks IMX6SL_CLK_UART_SERIAL>;
|
||||
clock-names = "ipg", "per";
|
||||
dmas = <&sdma 25 4 0>, <&sdma 26 4 0>;
|
||||
dma-names = "rx", "tx";
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
uart2: serial@02024000 {
|
||||
compatible = "fsl,imx6sl-uart",
|
||||
"fsl,imx6q-uart", "fsl,imx21-uart";
|
||||
reg = <0x02024000 0x4000>;
|
||||
interrupts = <0 27 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&clks IMX6SL_CLK_UART>,
|
||||
<&clks IMX6SL_CLK_UART_SERIAL>;
|
||||
clock-names = "ipg", "per";
|
||||
dmas = <&sdma 27 4 0>, <&sdma 28 4 0>;
|
||||
dma-names = "rx", "tx";
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
ssi1: ssi@02028000 {
|
||||
#sound-dai-cells = <0>;
|
||||
compatible = "fsl,imx6sl-ssi",
|
||||
"fsl,imx51-ssi";
|
||||
reg = <0x02028000 0x4000>;
|
||||
interrupts = <0 46 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&clks IMX6SL_CLK_SSI1_IPG>,
|
||||
<&clks IMX6SL_CLK_SSI1>;
|
||||
clock-names = "ipg", "baud";
|
||||
dmas = <&sdma 37 1 0>,
|
||||
<&sdma 38 1 0>;
|
||||
dma-names = "rx", "tx";
|
||||
fsl,fifo-depth = <15>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
ssi2: ssi@0202c000 {
|
||||
#sound-dai-cells = <0>;
|
||||
compatible = "fsl,imx6sl-ssi",
|
||||
"fsl,imx51-ssi";
|
||||
reg = <0x0202c000 0x4000>;
|
||||
interrupts = <0 47 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&clks IMX6SL_CLK_SSI2_IPG>,
|
||||
<&clks IMX6SL_CLK_SSI2>;
|
||||
clock-names = "ipg", "baud";
|
||||
dmas = <&sdma 41 1 0>,
|
||||
<&sdma 42 1 0>;
|
||||
dma-names = "rx", "tx";
|
||||
fsl,fifo-depth = <15>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
ssi3: ssi@02030000 {
|
||||
#sound-dai-cells = <0>;
|
||||
compatible = "fsl,imx6sl-ssi",
|
||||
"fsl,imx51-ssi";
|
||||
reg = <0x02030000 0x4000>;
|
||||
interrupts = <0 48 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&clks IMX6SL_CLK_SSI3_IPG>,
|
||||
<&clks IMX6SL_CLK_SSI3>;
|
||||
clock-names = "ipg", "baud";
|
||||
dmas = <&sdma 45 1 0>,
|
||||
<&sdma 46 1 0>;
|
||||
dma-names = "rx", "tx";
|
||||
fsl,fifo-depth = <15>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
uart3: serial@02034000 {
|
||||
compatible = "fsl,imx6sl-uart",
|
||||
"fsl,imx6q-uart", "fsl,imx21-uart";
|
||||
reg = <0x02034000 0x4000>;
|
||||
interrupts = <0 28 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&clks IMX6SL_CLK_UART>,
|
||||
<&clks IMX6SL_CLK_UART_SERIAL>;
|
||||
clock-names = "ipg", "per";
|
||||
dmas = <&sdma 29 4 0>, <&sdma 30 4 0>;
|
||||
dma-names = "rx", "tx";
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
uart4: serial@02038000 {
|
||||
compatible = "fsl,imx6sl-uart",
|
||||
"fsl,imx6q-uart", "fsl,imx21-uart";
|
||||
reg = <0x02038000 0x4000>;
|
||||
interrupts = <0 29 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&clks IMX6SL_CLK_UART>,
|
||||
<&clks IMX6SL_CLK_UART_SERIAL>;
|
||||
clock-names = "ipg", "per";
|
||||
dmas = <&sdma 31 4 0>, <&sdma 32 4 0>;
|
||||
dma-names = "rx", "tx";
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
|
||||
pwm1: pwm@02080000 {
|
||||
#pwm-cells = <2>;
|
||||
compatible = "fsl,imx6sl-pwm", "fsl,imx27-pwm";
|
||||
reg = <0x02080000 0x4000>;
|
||||
interrupts = <0 83 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&clks IMX6SL_CLK_PWM1>,
|
||||
<&clks IMX6SL_CLK_PWM1>;
|
||||
clock-names = "ipg", "per";
|
||||
};
|
||||
|
||||
pwm2: pwm@02084000 {
|
||||
#pwm-cells = <2>;
|
||||
compatible = "fsl,imx6sl-pwm", "fsl,imx27-pwm";
|
||||
reg = <0x02084000 0x4000>;
|
||||
interrupts = <0 84 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&clks IMX6SL_CLK_PWM2>,
|
||||
<&clks IMX6SL_CLK_PWM2>;
|
||||
clock-names = "ipg", "per";
|
||||
};
|
||||
|
||||
pwm3: pwm@02088000 {
|
||||
#pwm-cells = <2>;
|
||||
compatible = "fsl,imx6sl-pwm", "fsl,imx27-pwm";
|
||||
reg = <0x02088000 0x4000>;
|
||||
interrupts = <0 85 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&clks IMX6SL_CLK_PWM3>,
|
||||
<&clks IMX6SL_CLK_PWM3>;
|
||||
clock-names = "ipg", "per";
|
||||
};
|
||||
|
||||
pwm4: pwm@0208c000 {
|
||||
#pwm-cells = <2>;
|
||||
compatible = "fsl,imx6sl-pwm", "fsl,imx27-pwm";
|
||||
reg = <0x0208c000 0x4000>;
|
||||
interrupts = <0 86 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&clks IMX6SL_CLK_PWM4>,
|
||||
<&clks IMX6SL_CLK_PWM4>;
|
||||
clock-names = "ipg", "per";
|
||||
};
|
||||
|
||||
gpt: gpt@02098000 {
|
||||
compatible = "fsl,imx6sl-gpt";
|
||||
reg = <0x02098000 0x4000>;
|
||||
interrupts = <0 55 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&clks IMX6SL_CLK_GPT>,
|
||||
<&clks IMX6SL_CLK_GPT_SERIAL>;
|
||||
clock-names = "ipg", "per";
|
||||
};
|
||||
|
||||
gpio1: gpio@0209c000 {
|
||||
compatible = "fsl,imx6sl-gpio", "fsl,imx35-gpio";
|
||||
reg = <0x0209c000 0x4000>;
|
||||
interrupts = <0 66 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<0 67 IRQ_TYPE_LEVEL_HIGH>;
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <2>;
|
||||
gpio-ranges = <&iomuxc 0 22 1>, <&iomuxc 1 20 2>,
|
||||
<&iomuxc 3 23 1>, <&iomuxc 4 25 1>,
|
||||
<&iomuxc 5 24 1>, <&iomuxc 6 19 1>,
|
||||
<&iomuxc 7 36 2>, <&iomuxc 9 44 8>,
|
||||
<&iomuxc 17 38 6>, <&iomuxc 23 68 4>,
|
||||
<&iomuxc 27 64 4>, <&iomuxc 31 52 1>;
|
||||
};
|
||||
|
||||
gpio2: gpio@020a0000 {
|
||||
compatible = "fsl,imx6sl-gpio", "fsl,imx35-gpio";
|
||||
reg = <0x020a0000 0x4000>;
|
||||
interrupts = <0 68 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<0 69 IRQ_TYPE_LEVEL_HIGH>;
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <2>;
|
||||
gpio-ranges = <&iomuxc 0 53 3>, <&iomuxc 3 72 2>,
|
||||
<&iomuxc 5 34 2>, <&iomuxc 7 57 4>,
|
||||
<&iomuxc 11 56 1>, <&iomuxc 12 61 3>,
|
||||
<&iomuxc 15 107 1>, <&iomuxc 16 132 2>,
|
||||
<&iomuxc 18 135 1>, <&iomuxc 19 134 1>,
|
||||
<&iomuxc 20 108 2>, <&iomuxc 22 120 1>,
|
||||
<&iomuxc 23 125 7>, <&iomuxc 30 110 2>;
|
||||
};
|
||||
|
||||
gpio3: gpio@020a4000 {
|
||||
compatible = "fsl,imx6sl-gpio", "fsl,imx35-gpio";
|
||||
reg = <0x020a4000 0x4000>;
|
||||
interrupts = <0 70 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<0 71 IRQ_TYPE_LEVEL_HIGH>;
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <2>;
|
||||
gpio-ranges = <&iomuxc 0 112 8>, <&iomuxc 8 121 4>,
|
||||
<&iomuxc 12 97 4>, <&iomuxc 16 166 3>,
|
||||
<&iomuxc 19 85 2>, <&iomuxc 21 137 2>,
|
||||
<&iomuxc 23 136 1>, <&iomuxc 24 91 1>,
|
||||
<&iomuxc 25 99 1>, <&iomuxc 26 92 1>,
|
||||
<&iomuxc 27 100 1>, <&iomuxc 28 93 1>,
|
||||
<&iomuxc 29 101 1>, <&iomuxc 30 94 1>,
|
||||
<&iomuxc 31 102 1>;
|
||||
};
|
||||
|
||||
gpio4: gpio@020a8000 {
|
||||
compatible = "fsl,imx6sl-gpio", "fsl,imx35-gpio";
|
||||
reg = <0x020a8000 0x4000>;
|
||||
interrupts = <0 72 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<0 73 IRQ_TYPE_LEVEL_HIGH>;
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <2>;
|
||||
gpio-ranges = <&iomuxc 0 95 1>, <&iomuxc 1 103 1>,
|
||||
<&iomuxc 2 96 1>, <&iomuxc 3 104 1>,
|
||||
<&iomuxc 4 97 1>, <&iomuxc 5 105 1>,
|
||||
<&iomuxc 6 98 1>, <&iomuxc 7 106 1>,
|
||||
<&iomuxc 8 28 1>, <&iomuxc 9 27 1>,
|
||||
<&iomuxc 10 26 1>, <&iomuxc 11 29 1>,
|
||||
<&iomuxc 12 32 1>, <&iomuxc 13 31 1>,
|
||||
<&iomuxc 14 30 1>, <&iomuxc 15 33 1>,
|
||||
<&iomuxc 16 84 1>, <&iomuxc 17 79 2>,
|
||||
<&iomuxc 19 78 1>, <&iomuxc 20 76 1>,
|
||||
<&iomuxc 21 81 2>, <&iomuxc 23 75 1>,
|
||||
<&iomuxc 24 83 1>, <&iomuxc 25 74 1>,
|
||||
<&iomuxc 26 77 1>, <&iomuxc 27 159 1>,
|
||||
<&iomuxc 28 154 1>, <&iomuxc 29 157 1>,
|
||||
<&iomuxc 30 152 1>, <&iomuxc 31 156 1>;
|
||||
};
|
||||
|
||||
gpio5: gpio@020ac000 {
|
||||
compatible = "fsl,imx6sl-gpio", "fsl,imx35-gpio";
|
||||
reg = <0x020ac000 0x4000>;
|
||||
interrupts = <0 74 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<0 75 IRQ_TYPE_LEVEL_HIGH>;
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <2>;
|
||||
gpio-ranges = <&iomuxc 0 158 1>, <&iomuxc 1 151 1>,
|
||||
<&iomuxc 2 155 1>, <&iomuxc 3 153 1>,
|
||||
<&iomuxc 4 150 1>, <&iomuxc 5 149 1>,
|
||||
<&iomuxc 6 144 1>, <&iomuxc 7 147 1>,
|
||||
<&iomuxc 8 142 1>, <&iomuxc 9 146 1>,
|
||||
<&iomuxc 10 148 1>, <&iomuxc 11 141 1>,
|
||||
<&iomuxc 12 145 1>, <&iomuxc 13 143 1>,
|
||||
<&iomuxc 14 140 1>, <&iomuxc 15 139 1>,
|
||||
<&iomuxc 16 164 2>, <&iomuxc 18 160 1>,
|
||||
<&iomuxc 19 162 1>, <&iomuxc 20 163 1>,
|
||||
<&iomuxc 21 161 1>;
|
||||
};
|
||||
|
||||
kpp: kpp@020b8000 {
|
||||
compatible = "fsl,imx6sl-kpp", "fsl,imx21-kpp";
|
||||
reg = <0x020b8000 0x4000>;
|
||||
interrupts = <0 82 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&clks IMX6SL_CLK_DUMMY>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
wdog1: wdog@020bc000 {
|
||||
compatible = "fsl,imx6sl-wdt", "fsl,imx21-wdt";
|
||||
reg = <0x020bc000 0x4000>;
|
||||
interrupts = <0 80 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&clks IMX6SL_CLK_DUMMY>;
|
||||
};
|
||||
|
||||
wdog2: wdog@020c0000 {
|
||||
compatible = "fsl,imx6sl-wdt", "fsl,imx21-wdt";
|
||||
reg = <0x020c0000 0x4000>;
|
||||
interrupts = <0 81 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&clks IMX6SL_CLK_DUMMY>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
clks: ccm@020c4000 {
|
||||
compatible = "fsl,imx6sl-ccm";
|
||||
reg = <0x020c4000 0x4000>;
|
||||
interrupts = <0 87 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<0 88 IRQ_TYPE_LEVEL_HIGH>;
|
||||
#clock-cells = <1>;
|
||||
};
|
||||
|
||||
anatop: anatop@020c8000 {
|
||||
compatible = "fsl,imx6sl-anatop",
|
||||
"fsl,imx6q-anatop",
|
||||
"syscon", "simple-bus";
|
||||
reg = <0x020c8000 0x1000>;
|
||||
interrupts = <0 49 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<0 54 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<0 127 IRQ_TYPE_LEVEL_HIGH>;
|
||||
|
||||
regulator-1p1 {
|
||||
compatible = "fsl,anatop-regulator";
|
||||
regulator-name = "vdd1p1";
|
||||
regulator-min-microvolt = <800000>;
|
||||
regulator-max-microvolt = <1375000>;
|
||||
regulator-always-on;
|
||||
anatop-reg-offset = <0x110>;
|
||||
anatop-vol-bit-shift = <8>;
|
||||
anatop-vol-bit-width = <5>;
|
||||
anatop-min-bit-val = <4>;
|
||||
anatop-min-voltage = <800000>;
|
||||
anatop-max-voltage = <1375000>;
|
||||
};
|
||||
|
||||
regulator-3p0 {
|
||||
compatible = "fsl,anatop-regulator";
|
||||
regulator-name = "vdd3p0";
|
||||
regulator-min-microvolt = <2800000>;
|
||||
regulator-max-microvolt = <3150000>;
|
||||
regulator-always-on;
|
||||
anatop-reg-offset = <0x120>;
|
||||
anatop-vol-bit-shift = <8>;
|
||||
anatop-vol-bit-width = <5>;
|
||||
anatop-min-bit-val = <0>;
|
||||
anatop-min-voltage = <2625000>;
|
||||
anatop-max-voltage = <3400000>;
|
||||
};
|
||||
|
||||
regulator-2p5 {
|
||||
compatible = "fsl,anatop-regulator";
|
||||
regulator-name = "vdd2p5";
|
||||
regulator-min-microvolt = <2100000>;
|
||||
regulator-max-microvolt = <2850000>;
|
||||
regulator-always-on;
|
||||
anatop-reg-offset = <0x130>;
|
||||
anatop-vol-bit-shift = <8>;
|
||||
anatop-vol-bit-width = <5>;
|
||||
anatop-min-bit-val = <0>;
|
||||
anatop-min-voltage = <2100000>;
|
||||
anatop-max-voltage = <2850000>;
|
||||
};
|
||||
|
||||
reg_arm: regulator-vddcore {
|
||||
compatible = "fsl,anatop-regulator";
|
||||
regulator-name = "vddarm";
|
||||
regulator-min-microvolt = <725000>;
|
||||
regulator-max-microvolt = <1450000>;
|
||||
regulator-always-on;
|
||||
anatop-reg-offset = <0x140>;
|
||||
anatop-vol-bit-shift = <0>;
|
||||
anatop-vol-bit-width = <5>;
|
||||
anatop-delay-reg-offset = <0x170>;
|
||||
anatop-delay-bit-shift = <24>;
|
||||
anatop-delay-bit-width = <2>;
|
||||
anatop-min-bit-val = <1>;
|
||||
anatop-min-voltage = <725000>;
|
||||
anatop-max-voltage = <1450000>;
|
||||
};
|
||||
|
||||
reg_pu: regulator-vddpu {
|
||||
compatible = "fsl,anatop-regulator";
|
||||
regulator-name = "vddpu";
|
||||
regulator-min-microvolt = <725000>;
|
||||
regulator-max-microvolt = <1450000>;
|
||||
regulator-always-on;
|
||||
anatop-reg-offset = <0x140>;
|
||||
anatop-vol-bit-shift = <9>;
|
||||
anatop-vol-bit-width = <5>;
|
||||
anatop-delay-reg-offset = <0x170>;
|
||||
anatop-delay-bit-shift = <26>;
|
||||
anatop-delay-bit-width = <2>;
|
||||
anatop-min-bit-val = <1>;
|
||||
anatop-min-voltage = <725000>;
|
||||
anatop-max-voltage = <1450000>;
|
||||
};
|
||||
|
||||
reg_soc: regulator-vddsoc {
|
||||
compatible = "fsl,anatop-regulator";
|
||||
regulator-name = "vddsoc";
|
||||
regulator-min-microvolt = <725000>;
|
||||
regulator-max-microvolt = <1450000>;
|
||||
regulator-always-on;
|
||||
anatop-reg-offset = <0x140>;
|
||||
anatop-vol-bit-shift = <18>;
|
||||
anatop-vol-bit-width = <5>;
|
||||
anatop-delay-reg-offset = <0x170>;
|
||||
anatop-delay-bit-shift = <28>;
|
||||
anatop-delay-bit-width = <2>;
|
||||
anatop-min-bit-val = <1>;
|
||||
anatop-min-voltage = <725000>;
|
||||
anatop-max-voltage = <1450000>;
|
||||
};
|
||||
};
|
||||
|
||||
tempmon: tempmon {
|
||||
compatible = "fsl,imx6q-tempmon";
|
||||
interrupts = <0 49 IRQ_TYPE_LEVEL_HIGH>;
|
||||
fsl,tempmon = <&anatop>;
|
||||
fsl,tempmon-data = <&ocotp>;
|
||||
clocks = <&clks IMX6SL_CLK_PLL3_USB_OTG>;
|
||||
};
|
||||
|
||||
usbphy1: usbphy@020c9000 {
|
||||
compatible = "fsl,imx6sl-usbphy", "fsl,imx23-usbphy";
|
||||
reg = <0x020c9000 0x1000>;
|
||||
interrupts = <0 44 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&clks IMX6SL_CLK_USBPHY1>;
|
||||
fsl,anatop = <&anatop>;
|
||||
};
|
||||
|
||||
usbphy2: usbphy@020ca000 {
|
||||
compatible = "fsl,imx6sl-usbphy", "fsl,imx23-usbphy";
|
||||
reg = <0x020ca000 0x1000>;
|
||||
interrupts = <0 45 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&clks IMX6SL_CLK_USBPHY2>;
|
||||
fsl,anatop = <&anatop>;
|
||||
};
|
||||
|
||||
snvs: snvs@020cc000 {
|
||||
compatible = "fsl,sec-v4.0-mon", "syscon", "simple-mfd";
|
||||
reg = <0x020cc000 0x4000>;
|
||||
|
||||
snvs_rtc: snvs-rtc-lp {
|
||||
compatible = "fsl,sec-v4.0-mon-rtc-lp";
|
||||
regmap = <&snvs>;
|
||||
offset = <0x34>;
|
||||
interrupts = <0 19 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<0 20 IRQ_TYPE_LEVEL_HIGH>;
|
||||
};
|
||||
|
||||
snvs_poweroff: snvs-poweroff {
|
||||
compatible = "syscon-poweroff";
|
||||
regmap = <&snvs>;
|
||||
offset = <0x38>;
|
||||
mask = <0x60>;
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
|
||||
epit1: epit@020d0000 {
|
||||
reg = <0x020d0000 0x4000>;
|
||||
interrupts = <0 56 IRQ_TYPE_LEVEL_HIGH>;
|
||||
};
|
||||
|
||||
epit2: epit@020d4000 {
|
||||
reg = <0x020d4000 0x4000>;
|
||||
interrupts = <0 57 IRQ_TYPE_LEVEL_HIGH>;
|
||||
};
|
||||
|
||||
src: src@020d8000 {
|
||||
compatible = "fsl,imx6sl-src", "fsl,imx51-src";
|
||||
reg = <0x020d8000 0x4000>;
|
||||
interrupts = <0 91 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<0 96 IRQ_TYPE_LEVEL_HIGH>;
|
||||
#reset-cells = <1>;
|
||||
};
|
||||
|
||||
gpc: gpc@020dc000 {
|
||||
compatible = "fsl,imx6sl-gpc", "fsl,imx6q-gpc";
|
||||
reg = <0x020dc000 0x4000>;
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <3>;
|
||||
interrupts = <0 89 IRQ_TYPE_LEVEL_HIGH>;
|
||||
interrupt-parent = <&intc>;
|
||||
pu-supply = <®_pu>;
|
||||
clocks = <&clks IMX6SL_CLK_GPU2D_OVG>,
|
||||
<&clks IMX6SL_CLK_GPU2D_PODF>;
|
||||
#power-domain-cells = <1>;
|
||||
};
|
||||
|
||||
gpr: iomuxc-gpr@020e0000 {
|
||||
compatible = "fsl,imx6sl-iomuxc-gpr",
|
||||
"fsl,imx6q-iomuxc-gpr", "syscon";
|
||||
reg = <0x020e0000 0x38>;
|
||||
};
|
||||
|
||||
iomuxc: iomuxc@020e0000 {
|
||||
compatible = "fsl,imx6sl-iomuxc";
|
||||
reg = <0x020e0000 0x4000>;
|
||||
};
|
||||
|
||||
csi: csi@020e4000 {
|
||||
reg = <0x020e4000 0x4000>;
|
||||
interrupts = <0 7 IRQ_TYPE_LEVEL_HIGH>;
|
||||
};
|
||||
|
||||
spdc: spdc@020e8000 {
|
||||
reg = <0x020e8000 0x4000>;
|
||||
interrupts = <0 6 IRQ_TYPE_LEVEL_HIGH>;
|
||||
};
|
||||
|
||||
sdma: sdma@020ec000 {
|
||||
compatible = "fsl,imx6sl-sdma", "fsl,imx6q-sdma";
|
||||
reg = <0x020ec000 0x4000>;
|
||||
interrupts = <0 2 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&clks IMX6SL_CLK_SDMA>,
|
||||
<&clks IMX6SL_CLK_SDMA>;
|
||||
clock-names = "ipg", "ahb";
|
||||
#dma-cells = <3>;
|
||||
/* imx6sl reuses imx6q sdma firmware */
|
||||
fsl,sdma-ram-script-name = "imx/sdma/sdma-imx6q.bin";
|
||||
};
|
||||
|
||||
pxp: pxp@020f0000 {
|
||||
reg = <0x020f0000 0x4000>;
|
||||
interrupts = <0 98 IRQ_TYPE_LEVEL_HIGH>;
|
||||
};
|
||||
|
||||
epdc: epdc@020f4000 {
|
||||
reg = <0x020f4000 0x4000>;
|
||||
interrupts = <0 97 IRQ_TYPE_LEVEL_HIGH>;
|
||||
};
|
||||
|
||||
lcdif: lcdif@020f8000 {
|
||||
compatible = "fsl,imx6sl-lcdif", "fsl,imx28-lcdif";
|
||||
reg = <0x020f8000 0x4000>;
|
||||
interrupts = <0 39 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&clks IMX6SL_CLK_LCDIF_PIX>,
|
||||
<&clks IMX6SL_CLK_LCDIF_AXI>,
|
||||
<&clks IMX6SL_CLK_DUMMY>;
|
||||
clock-names = "pix", "axi", "disp_axi";
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
dcp: dcp@020fc000 {
|
||||
compatible = "fsl,imx6sl-dcp", "fsl,imx28-dcp";
|
||||
reg = <0x020fc000 0x4000>;
|
||||
interrupts = <0 99 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<0 100 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<0 101 IRQ_TYPE_LEVEL_HIGH>;
|
||||
};
|
||||
};
|
||||
|
||||
aips2: aips-bus@02100000 {
|
||||
compatible = "fsl,aips-bus", "simple-bus";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
reg = <0x02100000 0x100000>;
|
||||
ranges;
|
||||
|
||||
usbotg1: usb@02184000 {
|
||||
compatible = "fsl,imx6sl-usb", "fsl,imx27-usb";
|
||||
reg = <0x02184000 0x200>;
|
||||
interrupts = <0 43 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&clks IMX6SL_CLK_USBOH3>;
|
||||
fsl,usbphy = <&usbphy1>;
|
||||
fsl,usbmisc = <&usbmisc 0>;
|
||||
ahb-burst-config = <0x0>;
|
||||
tx-burst-size-dword = <0x10>;
|
||||
rx-burst-size-dword = <0x10>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
usbotg2: usb@02184200 {
|
||||
compatible = "fsl,imx6sl-usb", "fsl,imx27-usb";
|
||||
reg = <0x02184200 0x200>;
|
||||
interrupts = <0 42 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&clks IMX6SL_CLK_USBOH3>;
|
||||
fsl,usbphy = <&usbphy2>;
|
||||
fsl,usbmisc = <&usbmisc 1>;
|
||||
ahb-burst-config = <0x0>;
|
||||
tx-burst-size-dword = <0x10>;
|
||||
rx-burst-size-dword = <0x10>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
usbh: usb@02184400 {
|
||||
compatible = "fsl,imx6sl-usb", "fsl,imx27-usb";
|
||||
reg = <0x02184400 0x200>;
|
||||
interrupts = <0 40 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&clks IMX6SL_CLK_USBOH3>;
|
||||
fsl,usbmisc = <&usbmisc 2>;
|
||||
dr_mode = "host";
|
||||
ahb-burst-config = <0x0>;
|
||||
tx-burst-size-dword = <0x10>;
|
||||
rx-burst-size-dword = <0x10>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
usbmisc: usbmisc@02184800 {
|
||||
#index-cells = <1>;
|
||||
compatible = "fsl,imx6sl-usbmisc", "fsl,imx6q-usbmisc";
|
||||
reg = <0x02184800 0x200>;
|
||||
clocks = <&clks IMX6SL_CLK_USBOH3>;
|
||||
};
|
||||
|
||||
fec: ethernet@02188000 {
|
||||
compatible = "fsl,imx6sl-fec", "fsl,imx25-fec";
|
||||
reg = <0x02188000 0x4000>;
|
||||
interrupts = <0 114 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&clks IMX6SL_CLK_ENET>,
|
||||
<&clks IMX6SL_CLK_ENET_REF>;
|
||||
clock-names = "ipg", "ahb";
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
usdhc1: usdhc@02190000 {
|
||||
compatible = "fsl,imx6sl-usdhc", "fsl,imx6q-usdhc";
|
||||
reg = <0x02190000 0x4000>;
|
||||
interrupts = <0 22 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&clks IMX6SL_CLK_USDHC1>,
|
||||
<&clks IMX6SL_CLK_USDHC1>,
|
||||
<&clks IMX6SL_CLK_USDHC1>;
|
||||
clock-names = "ipg", "ahb", "per";
|
||||
bus-width = <4>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
usdhc2: usdhc@02194000 {
|
||||
compatible = "fsl,imx6sl-usdhc", "fsl,imx6q-usdhc";
|
||||
reg = <0x02194000 0x4000>;
|
||||
interrupts = <0 23 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&clks IMX6SL_CLK_USDHC2>,
|
||||
<&clks IMX6SL_CLK_USDHC2>,
|
||||
<&clks IMX6SL_CLK_USDHC2>;
|
||||
clock-names = "ipg", "ahb", "per";
|
||||
bus-width = <4>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
usdhc3: usdhc@02198000 {
|
||||
compatible = "fsl,imx6sl-usdhc", "fsl,imx6q-usdhc";
|
||||
reg = <0x02198000 0x4000>;
|
||||
interrupts = <0 24 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&clks IMX6SL_CLK_USDHC3>,
|
||||
<&clks IMX6SL_CLK_USDHC3>,
|
||||
<&clks IMX6SL_CLK_USDHC3>;
|
||||
clock-names = "ipg", "ahb", "per";
|
||||
bus-width = <4>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
usdhc4: usdhc@0219c000 {
|
||||
compatible = "fsl,imx6sl-usdhc", "fsl,imx6q-usdhc";
|
||||
reg = <0x0219c000 0x4000>;
|
||||
interrupts = <0 25 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&clks IMX6SL_CLK_USDHC4>,
|
||||
<&clks IMX6SL_CLK_USDHC4>,
|
||||
<&clks IMX6SL_CLK_USDHC4>;
|
||||
clock-names = "ipg", "ahb", "per";
|
||||
bus-width = <4>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
i2c1: i2c@021a0000 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
compatible = "fsl,imx6sl-i2c", "fsl,imx21-i2c";
|
||||
reg = <0x021a0000 0x4000>;
|
||||
interrupts = <0 36 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&clks IMX6SL_CLK_I2C1>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
i2c2: i2c@021a4000 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
compatible = "fsl,imx6sl-i2c", "fsl,imx21-i2c";
|
||||
reg = <0x021a4000 0x4000>;
|
||||
interrupts = <0 37 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&clks IMX6SL_CLK_I2C2>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
i2c3: i2c@021a8000 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
compatible = "fsl,imx6sl-i2c", "fsl,imx21-i2c";
|
||||
reg = <0x021a8000 0x4000>;
|
||||
interrupts = <0 38 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&clks IMX6SL_CLK_I2C3>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
mmdc: mmdc@021b0000 {
|
||||
compatible = "fsl,imx6sl-mmdc", "fsl,imx6q-mmdc";
|
||||
reg = <0x021b0000 0x4000>;
|
||||
};
|
||||
|
||||
rngb: rngb@021b4000 {
|
||||
reg = <0x021b4000 0x4000>;
|
||||
interrupts = <0 5 IRQ_TYPE_LEVEL_HIGH>;
|
||||
};
|
||||
|
||||
weim: weim@021b8000 {
|
||||
#address-cells = <2>;
|
||||
#size-cells = <1>;
|
||||
reg = <0x021b8000 0x4000>;
|
||||
interrupts = <0 14 IRQ_TYPE_LEVEL_HIGH>;
|
||||
fsl,weim-cs-gpr = <&gpr>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
ocotp: ocotp@021bc000 {
|
||||
compatible = "fsl,imx6sl-ocotp", "syscon";
|
||||
reg = <0x021bc000 0x4000>;
|
||||
clocks = <&clks IMX6SL_CLK_OCOTP>;
|
||||
};
|
||||
|
||||
audmux: audmux@021d8000 {
|
||||
compatible = "fsl,imx6sl-audmux", "fsl,imx31-audmux";
|
||||
reg = <0x021d8000 0x4000>;
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
447
arch/arm/dts/meson-gx.dtsi
Normal file
447
arch/arm/dts/meson-gx.dtsi
Normal file
@@ -0,0 +1,447 @@
|
||||
/*
|
||||
* Copyright (c) 2016 Andreas Färber
|
||||
*
|
||||
* Copyright (c) 2016 BayLibre, SAS.
|
||||
* Author: Neil Armstrong <narmstrong@baylibre.com>
|
||||
*
|
||||
* Copyright (c) 2016 Endless Computers, Inc.
|
||||
* Author: Carlo Caione <carlo@endlessm.com>
|
||||
*
|
||||
* This file is dual-licensed: you can use it either under the terms
|
||||
* of the GPL or the X11 license, at your option. Note that this dual
|
||||
* licensing only applies to this file, and not this project as a
|
||||
* whole.
|
||||
*
|
||||
* a) This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* Or, alternatively,
|
||||
*
|
||||
* b) Permission is hereby granted, free of charge, to any person
|
||||
* obtaining a copy of this software and associated documentation
|
||||
* files (the "Software"), to deal in the Software without
|
||||
* restriction, including without limitation the rights to use,
|
||||
* copy, modify, merge, publish, distribute, sublicense, and/or
|
||||
* sell copies of the Software, and to permit persons to whom the
|
||||
* Software is furnished to do so, subject to the following
|
||||
* conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be
|
||||
* included in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
||||
* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
||||
* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||
* OTHER DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||
|
||||
/ {
|
||||
interrupt-parent = <&gic>;
|
||||
#address-cells = <2>;
|
||||
#size-cells = <2>;
|
||||
|
||||
reserved-memory {
|
||||
#address-cells = <2>;
|
||||
#size-cells = <2>;
|
||||
ranges;
|
||||
|
||||
/* 16 MiB reserved for Hardware ROM Firmware */
|
||||
hwrom_reserved: hwrom@0 {
|
||||
reg = <0x0 0x0 0x0 0x1000000>;
|
||||
no-map;
|
||||
};
|
||||
|
||||
/* 2 MiB reserved for ARM Trusted Firmware (BL31) */
|
||||
secmon_reserved: secmon@10000000 {
|
||||
reg = <0x0 0x10000000 0x0 0x200000>;
|
||||
no-map;
|
||||
};
|
||||
};
|
||||
|
||||
cpus {
|
||||
#address-cells = <0x2>;
|
||||
#size-cells = <0x0>;
|
||||
|
||||
cpu0: cpu@0 {
|
||||
device_type = "cpu";
|
||||
compatible = "arm,cortex-a53", "arm,armv8";
|
||||
reg = <0x0 0x0>;
|
||||
enable-method = "psci";
|
||||
next-level-cache = <&l2>;
|
||||
clocks = <&scpi_dvfs 0>;
|
||||
};
|
||||
|
||||
cpu1: cpu@1 {
|
||||
device_type = "cpu";
|
||||
compatible = "arm,cortex-a53", "arm,armv8";
|
||||
reg = <0x0 0x1>;
|
||||
enable-method = "psci";
|
||||
next-level-cache = <&l2>;
|
||||
clocks = <&scpi_dvfs 0>;
|
||||
};
|
||||
|
||||
cpu2: cpu@2 {
|
||||
device_type = "cpu";
|
||||
compatible = "arm,cortex-a53", "arm,armv8";
|
||||
reg = <0x0 0x2>;
|
||||
enable-method = "psci";
|
||||
next-level-cache = <&l2>;
|
||||
clocks = <&scpi_dvfs 0>;
|
||||
};
|
||||
|
||||
cpu3: cpu@3 {
|
||||
device_type = "cpu";
|
||||
compatible = "arm,cortex-a53", "arm,armv8";
|
||||
reg = <0x0 0x3>;
|
||||
enable-method = "psci";
|
||||
next-level-cache = <&l2>;
|
||||
clocks = <&scpi_dvfs 0>;
|
||||
};
|
||||
|
||||
l2: l2-cache0 {
|
||||
compatible = "cache";
|
||||
};
|
||||
};
|
||||
|
||||
arm-pmu {
|
||||
compatible = "arm,cortex-a53-pmu";
|
||||
interrupts = <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>;
|
||||
interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>;
|
||||
};
|
||||
|
||||
psci {
|
||||
compatible = "arm,psci-0.2";
|
||||
method = "smc";
|
||||
};
|
||||
|
||||
timer {
|
||||
compatible = "arm,armv8-timer";
|
||||
interrupts = <GIC_PPI 13
|
||||
(GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>,
|
||||
<GIC_PPI 14
|
||||
(GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>,
|
||||
<GIC_PPI 11
|
||||
(GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>,
|
||||
<GIC_PPI 10
|
||||
(GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>;
|
||||
};
|
||||
|
||||
xtal: xtal-clk {
|
||||
compatible = "fixed-clock";
|
||||
clock-frequency = <24000000>;
|
||||
clock-output-names = "xtal";
|
||||
#clock-cells = <0>;
|
||||
};
|
||||
|
||||
firmware {
|
||||
sm: secure-monitor {
|
||||
compatible = "amlogic,meson-gx-sm", "amlogic,meson-gxbb-sm";
|
||||
};
|
||||
};
|
||||
|
||||
efuse: efuse {
|
||||
compatible = "amlogic,meson-gx-efuse", "amlogic,meson-gxbb-efuse";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
sn: sn@14 {
|
||||
reg = <0x14 0x10>;
|
||||
};
|
||||
|
||||
eth_mac: eth_mac@34 {
|
||||
reg = <0x34 0x10>;
|
||||
};
|
||||
|
||||
bid: bid@46 {
|
||||
reg = <0x46 0x30>;
|
||||
};
|
||||
};
|
||||
|
||||
scpi {
|
||||
compatible = "amlogic,meson-gxbb-scpi", "arm,scpi-pre-1.0";
|
||||
mboxes = <&mailbox 1 &mailbox 2>;
|
||||
shmem = <&cpu_scp_lpri &cpu_scp_hpri>;
|
||||
|
||||
scpi_clocks: clocks {
|
||||
compatible = "arm,scpi-clocks";
|
||||
|
||||
scpi_dvfs: scpi_clocks@0 {
|
||||
compatible = "arm,scpi-dvfs-clocks";
|
||||
#clock-cells = <1>;
|
||||
clock-indices = <0>;
|
||||
clock-output-names = "vcpu";
|
||||
};
|
||||
};
|
||||
|
||||
scpi_sensors: sensors {
|
||||
compatible = "arm,scpi-sensors";
|
||||
#thermal-sensor-cells = <1>;
|
||||
};
|
||||
};
|
||||
|
||||
soc {
|
||||
compatible = "simple-bus";
|
||||
#address-cells = <2>;
|
||||
#size-cells = <2>;
|
||||
ranges;
|
||||
|
||||
cbus: cbus@c1100000 {
|
||||
compatible = "simple-bus";
|
||||
reg = <0x0 0xc1100000 0x0 0x100000>;
|
||||
#address-cells = <2>;
|
||||
#size-cells = <2>;
|
||||
ranges = <0x0 0x0 0x0 0xc1100000 0x0 0x100000>;
|
||||
|
||||
reset: reset-controller@4404 {
|
||||
compatible = "amlogic,meson-gx-reset", "amlogic,meson-gxbb-reset";
|
||||
reg = <0x0 0x04404 0x0 0x20>;
|
||||
#reset-cells = <1>;
|
||||
};
|
||||
|
||||
uart_A: serial@84c0 {
|
||||
compatible = "amlogic,meson-uart";
|
||||
reg = <0x0 0x84c0 0x0 0x14>;
|
||||
interrupts = <GIC_SPI 26 IRQ_TYPE_EDGE_RISING>;
|
||||
clocks = <&xtal>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
uart_B: serial@84dc {
|
||||
compatible = "amlogic,meson-uart";
|
||||
reg = <0x0 0x84dc 0x0 0x14>;
|
||||
interrupts = <GIC_SPI 75 IRQ_TYPE_EDGE_RISING>;
|
||||
clocks = <&xtal>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
i2c_A: i2c@8500 {
|
||||
compatible = "amlogic,meson-gxbb-i2c";
|
||||
reg = <0x0 0x08500 0x0 0x20>;
|
||||
interrupts = <GIC_SPI 21 IRQ_TYPE_EDGE_RISING>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
pwm_ab: pwm@8550 {
|
||||
compatible = "amlogic,meson-gx-pwm", "amlogic,meson-gxbb-pwm";
|
||||
reg = <0x0 0x08550 0x0 0x10>;
|
||||
#pwm-cells = <3>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
pwm_cd: pwm@8650 {
|
||||
compatible = "amlogic,meson-gx-pwm", "amlogic,meson-gxbb-pwm";
|
||||
reg = <0x0 0x08650 0x0 0x10>;
|
||||
#pwm-cells = <3>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
pwm_ef: pwm@86c0 {
|
||||
compatible = "amlogic,meson-gx-pwm", "amlogic,meson-gxbb-pwm";
|
||||
reg = <0x0 0x086c0 0x0 0x10>;
|
||||
#pwm-cells = <3>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
uart_C: serial@8700 {
|
||||
compatible = "amlogic,meson-uart";
|
||||
reg = <0x0 0x8700 0x0 0x14>;
|
||||
interrupts = <GIC_SPI 93 IRQ_TYPE_EDGE_RISING>;
|
||||
clocks = <&xtal>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
i2c_B: i2c@87c0 {
|
||||
compatible = "amlogic,meson-gxbb-i2c";
|
||||
reg = <0x0 0x087c0 0x0 0x20>;
|
||||
interrupts = <GIC_SPI 214 IRQ_TYPE_EDGE_RISING>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
i2c_C: i2c@87e0 {
|
||||
compatible = "amlogic,meson-gxbb-i2c";
|
||||
reg = <0x0 0x087e0 0x0 0x20>;
|
||||
interrupts = <GIC_SPI 215 IRQ_TYPE_EDGE_RISING>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
watchdog@98d0 {
|
||||
compatible = "amlogic,meson-gx-wdt", "amlogic,meson-gxbb-wdt";
|
||||
reg = <0x0 0x098d0 0x0 0x10>;
|
||||
clocks = <&xtal>;
|
||||
};
|
||||
};
|
||||
|
||||
gic: interrupt-controller@c4301000 {
|
||||
compatible = "arm,gic-400";
|
||||
reg = <0x0 0xc4301000 0 0x1000>,
|
||||
<0x0 0xc4302000 0 0x2000>,
|
||||
<0x0 0xc4304000 0 0x2000>,
|
||||
<0x0 0xc4306000 0 0x2000>;
|
||||
interrupt-controller;
|
||||
interrupts = <GIC_PPI 9
|
||||
(GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_HIGH)>;
|
||||
#interrupt-cells = <3>;
|
||||
#address-cells = <0>;
|
||||
};
|
||||
|
||||
sram: sram@c8000000 {
|
||||
compatible = "amlogic,meson-gxbb-sram", "mmio-sram";
|
||||
reg = <0x0 0xc8000000 0x0 0x14000>;
|
||||
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
ranges = <0 0x0 0xc8000000 0x14000>;
|
||||
|
||||
cpu_scp_lpri: scp-shmem@0 {
|
||||
compatible = "amlogic,meson-gxbb-scp-shmem";
|
||||
reg = <0x13000 0x400>;
|
||||
};
|
||||
|
||||
cpu_scp_hpri: scp-shmem@200 {
|
||||
compatible = "amlogic,meson-gxbb-scp-shmem";
|
||||
reg = <0x13400 0x400>;
|
||||
};
|
||||
};
|
||||
|
||||
aobus: aobus@c8100000 {
|
||||
compatible = "simple-bus";
|
||||
reg = <0x0 0xc8100000 0x0 0x100000>;
|
||||
#address-cells = <2>;
|
||||
#size-cells = <2>;
|
||||
ranges = <0x0 0x0 0x0 0xc8100000 0x0 0x100000>;
|
||||
|
||||
uart_AO: serial@4c0 {
|
||||
compatible = "amlogic,meson-uart";
|
||||
reg = <0x0 0x004c0 0x0 0x14>;
|
||||
interrupts = <GIC_SPI 193 IRQ_TYPE_EDGE_RISING>;
|
||||
clocks = <&xtal>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
uart_AO_B: serial@4e0 {
|
||||
compatible = "amlogic,meson-uart";
|
||||
reg = <0x0 0x004e0 0x0 0x14>;
|
||||
interrupts = <GIC_SPI 197 IRQ_TYPE_EDGE_RISING>;
|
||||
clocks = <&xtal>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
ir: ir@580 {
|
||||
compatible = "amlogic,meson-gxbb-ir";
|
||||
reg = <0x0 0x00580 0x0 0x40>;
|
||||
interrupts = <GIC_SPI 196 IRQ_TYPE_EDGE_RISING>;
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
|
||||
periphs: periphs@c8834000 {
|
||||
compatible = "simple-bus";
|
||||
reg = <0x0 0xc8834000 0x0 0x2000>;
|
||||
#address-cells = <2>;
|
||||
#size-cells = <2>;
|
||||
ranges = <0x0 0x0 0x0 0xc8834000 0x0 0x2000>;
|
||||
|
||||
rng {
|
||||
compatible = "amlogic,meson-rng";
|
||||
reg = <0x0 0x0 0x0 0x4>;
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
hiubus: hiubus@c883c000 {
|
||||
compatible = "simple-bus";
|
||||
reg = <0x0 0xc883c000 0x0 0x2000>;
|
||||
#address-cells = <2>;
|
||||
#size-cells = <2>;
|
||||
ranges = <0x0 0x0 0x0 0xc883c000 0x0 0x2000>;
|
||||
|
||||
mailbox: mailbox@404 {
|
||||
compatible = "amlogic,meson-gx-mhu", "amlogic,meson-gxbb-mhu";
|
||||
reg = <0 0x404 0 0x4c>;
|
||||
interrupts = <0 208 IRQ_TYPE_EDGE_RISING>,
|
||||
<0 209 IRQ_TYPE_EDGE_RISING>,
|
||||
<0 210 IRQ_TYPE_EDGE_RISING>;
|
||||
#mbox-cells = <1>;
|
||||
};
|
||||
};
|
||||
|
||||
ethmac: ethernet@c9410000 {
|
||||
compatible = "amlogic,meson-gx-dwmac", "amlogic,meson-gxbb-dwmac", "snps,dwmac";
|
||||
reg = <0x0 0xc9410000 0x0 0x10000
|
||||
0x0 0xc8834540 0x0 0x4>;
|
||||
interrupts = <0 8 1>;
|
||||
interrupt-names = "macirq";
|
||||
phy-mode = "rgmii";
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
apb: apb@d0000000 {
|
||||
compatible = "simple-bus";
|
||||
reg = <0x0 0xd0000000 0x0 0x200000>;
|
||||
#address-cells = <2>;
|
||||
#size-cells = <2>;
|
||||
ranges = <0x0 0x0 0x0 0xd0000000 0x0 0x200000>;
|
||||
|
||||
sd_emmc_a: mmc@70000 {
|
||||
compatible = "amlogic,meson-gx-mmc", "amlogic,meson-gxbb-mmc";
|
||||
reg = <0x0 0x70000 0x0 0x2000>;
|
||||
interrupts = <GIC_SPI 216 IRQ_TYPE_EDGE_RISING>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
sd_emmc_b: mmc@72000 {
|
||||
compatible = "amlogic,meson-gx-mmc", "amlogic,meson-gxbb-mmc";
|
||||
reg = <0x0 0x72000 0x0 0x2000>;
|
||||
interrupts = <GIC_SPI 217 IRQ_TYPE_EDGE_RISING>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
sd_emmc_c: mmc@74000 {
|
||||
compatible = "amlogic,meson-gx-mmc", "amlogic,meson-gxbb-mmc";
|
||||
reg = <0x0 0x74000 0x0 0x2000>;
|
||||
interrupts = <GIC_SPI 218 IRQ_TYPE_EDGE_RISING>;
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
|
||||
vpu: vpu@d0100000 {
|
||||
compatible = "amlogic,meson-gx-vpu";
|
||||
reg = <0x0 0xd0100000 0x0 0x100000>,
|
||||
<0x0 0xc883c000 0x0 0x1000>,
|
||||
<0x0 0xc8838000 0x0 0x1000>;
|
||||
reg-names = "vpu", "hhi", "dmc";
|
||||
interrupts = <GIC_SPI 3 IRQ_TYPE_EDGE_RISING>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
/* CVBS VDAC output port */
|
||||
cvbs_vdac_port: port@0 {
|
||||
reg = <0>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
@@ -64,6 +64,18 @@
|
||||
reg = <0x0 0x0 0x0 0x80000000>;
|
||||
};
|
||||
|
||||
usb_otg_pwr: regulator-usb-pwrs {
|
||||
compatible = "regulator-fixed";
|
||||
|
||||
regulator-name = "USB_OTG_PWR";
|
||||
|
||||
regulator-min-microvolt = <5000000>;
|
||||
regulator-max-microvolt = <5000000>;
|
||||
|
||||
gpio = <&gpio_ao GPIOAO_5 GPIO_ACTIVE_HIGH>;
|
||||
enable-active-high;
|
||||
};
|
||||
|
||||
leds {
|
||||
compatible = "gpio-leds";
|
||||
blue {
|
||||
@@ -73,6 +85,60 @@
|
||||
default-state = "off";
|
||||
};
|
||||
};
|
||||
|
||||
tflash_vdd: regulator-tflash_vdd {
|
||||
/*
|
||||
* signal name from schematics: TFLASH_VDD_EN
|
||||
*/
|
||||
compatible = "regulator-fixed";
|
||||
|
||||
regulator-name = "TFLASH_VDD";
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
|
||||
gpio = <&gpio_ao GPIOAO_12 GPIO_ACTIVE_HIGH>;
|
||||
enable-active-high;
|
||||
};
|
||||
|
||||
tf_io: gpio-regulator-tf_io {
|
||||
compatible = "regulator-gpio";
|
||||
|
||||
regulator-name = "TF_IO";
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
|
||||
/*
|
||||
* signal name from schematics: TF_3V3N_1V8_EN
|
||||
*/
|
||||
gpios = <&gpio_ao GPIOAO_3 GPIO_ACTIVE_HIGH>;
|
||||
gpios-states = <0>;
|
||||
|
||||
states = <3300000 0
|
||||
1800000 1>;
|
||||
};
|
||||
|
||||
vcc1v8: regulator-vcc1v8 {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "VCC1V8";
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
};
|
||||
|
||||
vcc3v3: regulator-vcc3v3 {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "VCC3V3";
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
};
|
||||
|
||||
emmc_pwrseq: emmc-pwrseq {
|
||||
compatible = "mmc-pwrseq-emmc";
|
||||
reset-gpios = <&gpio BOOT_9 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
};
|
||||
|
||||
&scpi_clocks {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
&uart_AO {
|
||||
@@ -83,6 +149,85 @@
|
||||
|
||||
ðmac {
|
||||
status = "okay";
|
||||
pinctrl-0 = <ð_pins>;
|
||||
pinctrl-0 = <ð_rgmii_pins>;
|
||||
pinctrl-names = "default";
|
||||
phy-handle = <ð_phy0>;
|
||||
|
||||
mdio {
|
||||
compatible = "snps,dwmac-mdio";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
eth_phy0: ethernet-phy@0 {
|
||||
reg = <0>;
|
||||
eee-broken-1000t;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&ir {
|
||||
status = "okay";
|
||||
pinctrl-0 = <&remote_input_ao_pins>;
|
||||
pinctrl-names = "default";
|
||||
};
|
||||
|
||||
&i2c_A {
|
||||
status = "okay";
|
||||
pinctrl-0 = <&i2c_a_pins>;
|
||||
pinctrl-names = "default";
|
||||
};
|
||||
|
||||
&usb0_phy {
|
||||
status = "okay";
|
||||
phy-supply = <&usb_otg_pwr>;
|
||||
};
|
||||
|
||||
&usb1_phy {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usb0 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usb1 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
/* SD */
|
||||
&sd_emmc_b {
|
||||
status = "okay";
|
||||
pinctrl-0 = <&sdcard_pins>;
|
||||
pinctrl-names = "default";
|
||||
|
||||
bus-width = <4>;
|
||||
cap-sd-highspeed;
|
||||
max-frequency = <100000000>;
|
||||
disable-wp;
|
||||
|
||||
cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_HIGH>;
|
||||
cd-inverted;
|
||||
|
||||
vmmc-supply = <&tflash_vdd>;
|
||||
vqmmc-supply = <&tf_io>;
|
||||
};
|
||||
|
||||
/* eMMC */
|
||||
&sd_emmc_c {
|
||||
status = "okay";
|
||||
pinctrl-0 = <&emmc_pins>;
|
||||
pinctrl-names = "default";
|
||||
|
||||
bus-width = <8>;
|
||||
cap-sd-highspeed;
|
||||
max-frequency = <200000000>;
|
||||
non-removable;
|
||||
disable-wp;
|
||||
cap-mmc-highspeed;
|
||||
mmc-ddr-1_8v;
|
||||
mmc-hs200-1_8v;
|
||||
|
||||
mmc-pwrseq = <&emmc_pwrseq>;
|
||||
vmmc-supply = <&vcc3v3>;
|
||||
vqmmc-supply = <&vcc1v8>;
|
||||
};
|
||||
|
||||
@@ -40,307 +40,477 @@
|
||||
* OTHER DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||
#include "meson-gx.dtsi"
|
||||
#include <dt-bindings/gpio/meson-gxbb-gpio.h>
|
||||
#include <dt-bindings/reset/amlogic,meson-gxbb-reset.h>
|
||||
#include <dt-bindings/clock/gxbb-clkc.h>
|
||||
#include <dt-bindings/clock/gxbb-aoclkc.h>
|
||||
#include <dt-bindings/reset/gxbb-aoclkc.h>
|
||||
|
||||
/ {
|
||||
compatible = "amlogic,meson-gxbb";
|
||||
interrupt-parent = <&gic>;
|
||||
#address-cells = <2>;
|
||||
#size-cells = <2>;
|
||||
|
||||
cpus {
|
||||
#address-cells = <0x2>;
|
||||
#size-cells = <0x0>;
|
||||
|
||||
cpu0: cpu@0 {
|
||||
device_type = "cpu";
|
||||
compatible = "arm,cortex-a53", "arm,armv8";
|
||||
reg = <0x0 0x0>;
|
||||
enable-method = "psci";
|
||||
};
|
||||
|
||||
cpu1: cpu@1 {
|
||||
device_type = "cpu";
|
||||
compatible = "arm,cortex-a53", "arm,armv8";
|
||||
reg = <0x0 0x1>;
|
||||
enable-method = "psci";
|
||||
};
|
||||
|
||||
cpu2: cpu@2 {
|
||||
device_type = "cpu";
|
||||
compatible = "arm,cortex-a53", "arm,armv8";
|
||||
reg = <0x0 0x2>;
|
||||
enable-method = "psci";
|
||||
};
|
||||
|
||||
cpu3: cpu@3 {
|
||||
device_type = "cpu";
|
||||
compatible = "arm,cortex-a53", "arm,armv8";
|
||||
reg = <0x0 0x3>;
|
||||
enable-method = "psci";
|
||||
};
|
||||
};
|
||||
|
||||
arm-pmu {
|
||||
compatible = "arm,cortex-a53-pmu";
|
||||
interrupts = <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>;
|
||||
interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>;
|
||||
};
|
||||
|
||||
psci {
|
||||
compatible = "arm,psci-0.2";
|
||||
method = "smc";
|
||||
};
|
||||
|
||||
timer {
|
||||
compatible = "arm,armv8-timer";
|
||||
interrupts = <GIC_PPI 13
|
||||
(GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_EDGE_RISING)>,
|
||||
<GIC_PPI 14
|
||||
(GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_EDGE_RISING)>,
|
||||
<GIC_PPI 11
|
||||
(GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_EDGE_RISING)>,
|
||||
<GIC_PPI 10
|
||||
(GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_EDGE_RISING)>;
|
||||
};
|
||||
|
||||
xtal: xtal-clk {
|
||||
compatible = "fixed-clock";
|
||||
clock-frequency = <24000000>;
|
||||
clock-output-names = "xtal";
|
||||
#clock-cells = <0>;
|
||||
};
|
||||
|
||||
soc {
|
||||
compatible = "simple-bus";
|
||||
#address-cells = <2>;
|
||||
#size-cells = <2>;
|
||||
ranges;
|
||||
|
||||
cbus: cbus@c1100000 {
|
||||
compatible = "simple-bus";
|
||||
reg = <0x0 0xc1100000 0x0 0x100000>;
|
||||
#address-cells = <2>;
|
||||
#size-cells = <2>;
|
||||
ranges = <0x0 0x0 0x0 0xc1100000 0x0 0x100000>;
|
||||
|
||||
reset: reset-controller@4404 {
|
||||
compatible = "amlogic,meson-gxbb-reset";
|
||||
reg = <0x0 0x04404 0x0 0x20>;
|
||||
#reset-cells = <1>;
|
||||
};
|
||||
|
||||
uart_A: serial@84c0 {
|
||||
compatible = "amlogic,meson-uart";
|
||||
reg = <0x0 0x84c0 0x0 0x14>;
|
||||
interrupts = <GIC_SPI 26 IRQ_TYPE_EDGE_RISING>;
|
||||
clocks = <&xtal>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
uart_B: serial@84dc {
|
||||
compatible = "amlogic,meson-uart";
|
||||
reg = <0x0 0x84dc 0x0 0x14>;
|
||||
interrupts = <GIC_SPI 75 IRQ_TYPE_EDGE_RISING>;
|
||||
clocks = <&xtal>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
uart_C: serial@8700 {
|
||||
compatible = "amlogic,meson-uart";
|
||||
reg = <0x0 0x8700 0x0 0x14>;
|
||||
interrupts = <GIC_SPI 93 IRQ_TYPE_EDGE_RISING>;
|
||||
clocks = <&xtal>;
|
||||
status = "disabled";
|
||||
};
|
||||
usb0_phy: phy@c0000000 {
|
||||
compatible = "amlogic,meson-gxbb-usb2-phy";
|
||||
#phy-cells = <0>;
|
||||
reg = <0x0 0xc0000000 0x0 0x20>;
|
||||
resets = <&reset RESET_USB_OTG>;
|
||||
clocks = <&clkc CLKID_USB>, <&clkc CLKID_USB0>;
|
||||
clock-names = "usb_general", "usb";
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
gic: interrupt-controller@c4301000 {
|
||||
compatible = "arm,gic-400";
|
||||
reg = <0x0 0xc4301000 0 0x1000>,
|
||||
<0x0 0xc4302000 0 0x2000>,
|
||||
<0x0 0xc4304000 0 0x2000>,
|
||||
<0x0 0xc4306000 0 0x2000>;
|
||||
interrupt-controller;
|
||||
interrupts = <GIC_PPI 9
|
||||
(GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_HIGH)>;
|
||||
#interrupt-cells = <3>;
|
||||
#address-cells = <0>;
|
||||
usb1_phy: phy@c0000020 {
|
||||
compatible = "amlogic,meson-gxbb-usb2-phy";
|
||||
#phy-cells = <0>;
|
||||
reg = <0x0 0xc0000020 0x0 0x20>;
|
||||
resets = <&reset RESET_USB_OTG>;
|
||||
clocks = <&clkc CLKID_USB>, <&clkc CLKID_USB1>;
|
||||
clock-names = "usb_general", "usb";
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
aobus: aobus@c8100000 {
|
||||
compatible = "simple-bus";
|
||||
reg = <0x0 0xc8100000 0x0 0x100000>;
|
||||
#address-cells = <2>;
|
||||
#size-cells = <2>;
|
||||
ranges = <0x0 0x0 0x0 0xc8100000 0x0 0x100000>;
|
||||
|
||||
pinctrl_aobus: pinctrl@14 {
|
||||
compatible = "amlogic,meson-gxbb-aobus-pinctrl";
|
||||
#address-cells = <2>;
|
||||
#size-cells = <2>;
|
||||
ranges;
|
||||
|
||||
gpio_ao: bank@14 {
|
||||
reg = <0x0 0x00014 0x0 0x8>,
|
||||
<0x0 0x0002c 0x0 0x4>,
|
||||
<0x0 0x00024 0x0 0x8>;
|
||||
reg-names = "mux", "pull", "gpio";
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
};
|
||||
|
||||
uart_ao_a_pins: uart_ao_a {
|
||||
mux {
|
||||
groups = "uart_tx_ao_a", "uart_rx_ao_a";
|
||||
function = "uart_ao";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
uart_AO: serial@4c0 {
|
||||
compatible = "amlogic,meson-uart";
|
||||
reg = <0x0 0x004c0 0x0 0x14>;
|
||||
interrupts = <GIC_SPI 193 IRQ_TYPE_EDGE_RISING>;
|
||||
clocks = <&xtal>;
|
||||
status = "disabled";
|
||||
};
|
||||
usb0: usb@c9000000 {
|
||||
compatible = "amlogic,meson-gxbb-usb", "snps,dwc2";
|
||||
reg = <0x0 0xc9000000 0x0 0x40000>;
|
||||
interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&clkc CLKID_USB0_DDR_BRIDGE>;
|
||||
clock-names = "otg";
|
||||
phys = <&usb0_phy>;
|
||||
phy-names = "usb2-phy";
|
||||
dr_mode = "host";
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
periphs: periphs@c8834000 {
|
||||
compatible = "simple-bus";
|
||||
reg = <0x0 0xc8834000 0x0 0x2000>;
|
||||
#address-cells = <2>;
|
||||
#size-cells = <2>;
|
||||
ranges = <0x0 0x0 0x0 0xc8834000 0x0 0x2000>;
|
||||
|
||||
rng {
|
||||
compatible = "amlogic,meson-rng";
|
||||
reg = <0x0 0x0 0x0 0x4>;
|
||||
};
|
||||
|
||||
pinctrl_periphs: pinctrl@4b0 {
|
||||
compatible = "amlogic,meson-gxbb-periphs-pinctrl";
|
||||
#address-cells = <2>;
|
||||
#size-cells = <2>;
|
||||
ranges;
|
||||
|
||||
gpio: bank@4b0 {
|
||||
reg = <0x0 0x004b0 0x0 0x28>,
|
||||
<0x0 0x004e8 0x0 0x14>,
|
||||
<0x0 0x00120 0x0 0x14>,
|
||||
<0x0 0x00430 0x0 0x40>;
|
||||
reg-names = "mux", "pull", "pull-enable", "gpio";
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
};
|
||||
|
||||
emmc_pins: emmc {
|
||||
mux {
|
||||
groups = "emmc_nand_d07",
|
||||
"emmc_cmd",
|
||||
"emmc_clk";
|
||||
function = "emmc";
|
||||
};
|
||||
};
|
||||
|
||||
sdcard_pins: sdcard {
|
||||
mux {
|
||||
groups = "sdcard_d0",
|
||||
"sdcard_d1",
|
||||
"sdcard_d2",
|
||||
"sdcard_d3",
|
||||
"sdcard_cmd",
|
||||
"sdcard_clk";
|
||||
function = "sdcard";
|
||||
};
|
||||
};
|
||||
|
||||
uart_a_pins: uart_a {
|
||||
mux {
|
||||
groups = "uart_tx_a",
|
||||
"uart_rx_a";
|
||||
function = "uart_a";
|
||||
};
|
||||
};
|
||||
|
||||
uart_b_pins: uart_b {
|
||||
mux {
|
||||
groups = "uart_tx_b",
|
||||
"uart_rx_b";
|
||||
function = "uart_b";
|
||||
};
|
||||
};
|
||||
|
||||
uart_c_pins: uart_c {
|
||||
mux {
|
||||
groups = "uart_tx_c",
|
||||
"uart_rx_c";
|
||||
function = "uart_c";
|
||||
};
|
||||
};
|
||||
|
||||
eth_pins: eth_c {
|
||||
mux {
|
||||
groups = "eth_mdio",
|
||||
"eth_mdc",
|
||||
"eth_clk_rx_clk",
|
||||
"eth_rx_dv",
|
||||
"eth_rxd0",
|
||||
"eth_rxd1",
|
||||
"eth_rxd2",
|
||||
"eth_rxd3",
|
||||
"eth_rgmii_tx_clk",
|
||||
"eth_tx_en",
|
||||
"eth_txd0",
|
||||
"eth_txd1",
|
||||
"eth_txd2",
|
||||
"eth_txd3";
|
||||
function = "eth";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
hiubus: hiubus@c883c000 {
|
||||
compatible = "simple-bus";
|
||||
reg = <0x0 0xc883c000 0x0 0x2000>;
|
||||
#address-cells = <2>;
|
||||
#size-cells = <2>;
|
||||
ranges = <0x0 0x0 0x0 0xc883c000 0x0 0x2000>;
|
||||
|
||||
clkc: clock-controller@0 {
|
||||
compatible = "amlogic,gxbb-clkc";
|
||||
#clock-cells = <1>;
|
||||
reg = <0x0 0x0 0x0 0x3db>;
|
||||
};
|
||||
};
|
||||
|
||||
apb: apb@d0000000 {
|
||||
compatible = "simple-bus";
|
||||
reg = <0x0 0xd0000000 0x0 0x200000>;
|
||||
#address-cells = <2>;
|
||||
#size-cells = <2>;
|
||||
ranges = <0x0 0x0 0x0 0xd0000000 0x0 0x200000>;
|
||||
};
|
||||
|
||||
ethmac: ethernet@c9410000 {
|
||||
compatible = "amlogic,meson6-dwmac", "snps,dwmac";
|
||||
reg = <0x0 0xc9410000 0x0 0x10000
|
||||
0x0 0xc8834540 0x0 0x4>;
|
||||
interrupts = <0 8 1>;
|
||||
interrupt-names = "macirq";
|
||||
clocks = <&xtal>;
|
||||
clock-names = "stmmaceth";
|
||||
phy-mode = "rgmii";
|
||||
usb1: usb@c9100000 {
|
||||
compatible = "amlogic,meson-gxbb-usb", "snps,dwc2";
|
||||
reg = <0x0 0xc9100000 0x0 0x40000>;
|
||||
interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&clkc CLKID_USB1_DDR_BRIDGE>;
|
||||
clock-names = "otg";
|
||||
phys = <&usb1_phy>;
|
||||
phy-names = "usb2-phy";
|
||||
dr_mode = "host";
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&cbus {
|
||||
spifc: spi@8c80 {
|
||||
compatible = "amlogic,meson-gxbb-spifc";
|
||||
reg = <0x0 0x08c80 0x0 0x80>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
clocks = <&clkc CLKID_SPI>;
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
|
||||
ðmac {
|
||||
clocks = <&clkc CLKID_ETH>,
|
||||
<&clkc CLKID_FCLK_DIV2>,
|
||||
<&clkc CLKID_MPLL2>;
|
||||
clock-names = "stmmaceth", "clkin0", "clkin1";
|
||||
};
|
||||
|
||||
&aobus {
|
||||
pinctrl_aobus: pinctrl@14 {
|
||||
compatible = "amlogic,meson-gxbb-aobus-pinctrl";
|
||||
#address-cells = <2>;
|
||||
#size-cells = <2>;
|
||||
ranges;
|
||||
|
||||
gpio_ao: bank@14 {
|
||||
reg = <0x0 0x00014 0x0 0x8>,
|
||||
<0x0 0x0002c 0x0 0x4>,
|
||||
<0x0 0x00024 0x0 0x8>;
|
||||
reg-names = "mux", "pull", "gpio";
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
};
|
||||
|
||||
uart_ao_a_pins: uart_ao_a {
|
||||
mux {
|
||||
groups = "uart_tx_ao_a", "uart_rx_ao_a";
|
||||
function = "uart_ao";
|
||||
};
|
||||
};
|
||||
|
||||
uart_ao_a_cts_rts_pins: uart_ao_a_cts_rts {
|
||||
mux {
|
||||
groups = "uart_cts_ao_a",
|
||||
"uart_rts_ao_a";
|
||||
function = "uart_ao";
|
||||
};
|
||||
};
|
||||
|
||||
uart_ao_b_pins: uart_ao_b {
|
||||
mux {
|
||||
groups = "uart_tx_ao_b", "uart_rx_ao_b";
|
||||
function = "uart_ao_b";
|
||||
};
|
||||
};
|
||||
|
||||
uart_ao_b_cts_rts_pins: uart_ao_b_cts_rts {
|
||||
mux {
|
||||
groups = "uart_cts_ao_b",
|
||||
"uart_rts_ao_b";
|
||||
function = "uart_ao_b";
|
||||
};
|
||||
};
|
||||
|
||||
remote_input_ao_pins: remote_input_ao {
|
||||
mux {
|
||||
groups = "remote_input_ao";
|
||||
function = "remote_input_ao";
|
||||
};
|
||||
};
|
||||
|
||||
i2c_ao_pins: i2c_ao {
|
||||
mux {
|
||||
groups = "i2c_sck_ao",
|
||||
"i2c_sda_ao";
|
||||
function = "i2c_ao";
|
||||
};
|
||||
};
|
||||
|
||||
pwm_ao_a_3_pins: pwm_ao_a_3 {
|
||||
mux {
|
||||
groups = "pwm_ao_a_3";
|
||||
function = "pwm_ao_a_3";
|
||||
};
|
||||
};
|
||||
|
||||
pwm_ao_a_6_pins: pwm_ao_a_6 {
|
||||
mux {
|
||||
groups = "pwm_ao_a_6";
|
||||
function = "pwm_ao_a_6";
|
||||
};
|
||||
};
|
||||
|
||||
pwm_ao_a_12_pins: pwm_ao_a_12 {
|
||||
mux {
|
||||
groups = "pwm_ao_a_12";
|
||||
function = "pwm_ao_a_12";
|
||||
};
|
||||
};
|
||||
|
||||
pwm_ao_b_pins: pwm_ao_b {
|
||||
mux {
|
||||
groups = "pwm_ao_b";
|
||||
function = "pwm_ao_b";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
clkc_AO: clock-controller@040 {
|
||||
compatible = "amlogic,gxbb-aoclkc";
|
||||
reg = <0x0 0x00040 0x0 0x4>;
|
||||
#clock-cells = <1>;
|
||||
#reset-cells = <1>;
|
||||
};
|
||||
|
||||
pwm_ab_AO: pwm@550 {
|
||||
compatible = "amlogic,meson-gxbb-pwm";
|
||||
reg = <0x0 0x0550 0x0 0x10>;
|
||||
#pwm-cells = <3>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
i2c_AO: i2c@500 {
|
||||
compatible = "amlogic,meson-gxbb-i2c";
|
||||
reg = <0x0 0x500 0x0 0x20>;
|
||||
interrupts = <GIC_SPI 195 IRQ_TYPE_EDGE_RISING>;
|
||||
clocks = <&clkc CLKID_AO_I2C>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
|
||||
&periphs {
|
||||
pinctrl_periphs: pinctrl@4b0 {
|
||||
compatible = "amlogic,meson-gxbb-periphs-pinctrl";
|
||||
#address-cells = <2>;
|
||||
#size-cells = <2>;
|
||||
ranges;
|
||||
|
||||
gpio: bank@4b0 {
|
||||
reg = <0x0 0x004b0 0x0 0x28>,
|
||||
<0x0 0x004e8 0x0 0x14>,
|
||||
<0x0 0x00120 0x0 0x14>,
|
||||
<0x0 0x00430 0x0 0x40>;
|
||||
reg-names = "mux", "pull", "pull-enable", "gpio";
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
};
|
||||
|
||||
emmc_pins: emmc {
|
||||
mux {
|
||||
groups = "emmc_nand_d07",
|
||||
"emmc_cmd",
|
||||
"emmc_clk",
|
||||
"emmc_ds";
|
||||
function = "emmc";
|
||||
};
|
||||
};
|
||||
|
||||
nor_pins: nor {
|
||||
mux {
|
||||
groups = "nor_d",
|
||||
"nor_q",
|
||||
"nor_c",
|
||||
"nor_cs";
|
||||
function = "nor";
|
||||
};
|
||||
};
|
||||
|
||||
sdcard_pins: sdcard {
|
||||
mux {
|
||||
groups = "sdcard_d0",
|
||||
"sdcard_d1",
|
||||
"sdcard_d2",
|
||||
"sdcard_d3",
|
||||
"sdcard_cmd",
|
||||
"sdcard_clk";
|
||||
function = "sdcard";
|
||||
};
|
||||
};
|
||||
|
||||
sdio_pins: sdio {
|
||||
mux {
|
||||
groups = "sdio_d0",
|
||||
"sdio_d1",
|
||||
"sdio_d2",
|
||||
"sdio_d3",
|
||||
"sdio_cmd",
|
||||
"sdio_clk";
|
||||
function = "sdio";
|
||||
};
|
||||
};
|
||||
|
||||
sdio_irq_pins: sdio_irq {
|
||||
mux {
|
||||
groups = "sdio_irq";
|
||||
function = "sdio";
|
||||
};
|
||||
};
|
||||
|
||||
uart_a_pins: uart_a {
|
||||
mux {
|
||||
groups = "uart_tx_a",
|
||||
"uart_rx_a";
|
||||
function = "uart_a";
|
||||
};
|
||||
};
|
||||
|
||||
uart_a_cts_rts_pins: uart_a_cts_rts {
|
||||
mux {
|
||||
groups = "uart_cts_a",
|
||||
"uart_rts_a";
|
||||
function = "uart_a";
|
||||
};
|
||||
};
|
||||
|
||||
uart_b_pins: uart_b {
|
||||
mux {
|
||||
groups = "uart_tx_b",
|
||||
"uart_rx_b";
|
||||
function = "uart_b";
|
||||
};
|
||||
};
|
||||
|
||||
uart_b_cts_rts_pins: uart_b_cts_rts {
|
||||
mux {
|
||||
groups = "uart_cts_b",
|
||||
"uart_rts_b";
|
||||
function = "uart_b";
|
||||
};
|
||||
};
|
||||
|
||||
uart_c_pins: uart_c {
|
||||
mux {
|
||||
groups = "uart_tx_c",
|
||||
"uart_rx_c";
|
||||
function = "uart_c";
|
||||
};
|
||||
};
|
||||
|
||||
uart_c_cts_rts_pins: uart_c_cts_rts {
|
||||
mux {
|
||||
groups = "uart_cts_c",
|
||||
"uart_rts_c";
|
||||
function = "uart_c";
|
||||
};
|
||||
};
|
||||
|
||||
i2c_a_pins: i2c_a {
|
||||
mux {
|
||||
groups = "i2c_sck_a",
|
||||
"i2c_sda_a";
|
||||
function = "i2c_a";
|
||||
};
|
||||
};
|
||||
|
||||
i2c_b_pins: i2c_b {
|
||||
mux {
|
||||
groups = "i2c_sck_b",
|
||||
"i2c_sda_b";
|
||||
function = "i2c_b";
|
||||
};
|
||||
};
|
||||
|
||||
i2c_c_pins: i2c_c {
|
||||
mux {
|
||||
groups = "i2c_sck_c",
|
||||
"i2c_sda_c";
|
||||
function = "i2c_c";
|
||||
};
|
||||
};
|
||||
|
||||
eth_rgmii_pins: eth-rgmii {
|
||||
mux {
|
||||
groups = "eth_mdio",
|
||||
"eth_mdc",
|
||||
"eth_clk_rx_clk",
|
||||
"eth_rx_dv",
|
||||
"eth_rxd0",
|
||||
"eth_rxd1",
|
||||
"eth_rxd2",
|
||||
"eth_rxd3",
|
||||
"eth_rgmii_tx_clk",
|
||||
"eth_tx_en",
|
||||
"eth_txd0",
|
||||
"eth_txd1",
|
||||
"eth_txd2",
|
||||
"eth_txd3";
|
||||
function = "eth";
|
||||
};
|
||||
};
|
||||
|
||||
eth_rmii_pins: eth-rmii {
|
||||
mux {
|
||||
groups = "eth_mdio",
|
||||
"eth_mdc",
|
||||
"eth_clk_rx_clk",
|
||||
"eth_rx_dv",
|
||||
"eth_rxd0",
|
||||
"eth_rxd1",
|
||||
"eth_tx_en",
|
||||
"eth_txd0",
|
||||
"eth_txd1";
|
||||
function = "eth";
|
||||
};
|
||||
};
|
||||
|
||||
pwm_a_x_pins: pwm_a_x {
|
||||
mux {
|
||||
groups = "pwm_a_x";
|
||||
function = "pwm_a_x";
|
||||
};
|
||||
};
|
||||
|
||||
pwm_a_y_pins: pwm_a_y {
|
||||
mux {
|
||||
groups = "pwm_a_y";
|
||||
function = "pwm_a_y";
|
||||
};
|
||||
};
|
||||
|
||||
pwm_b_pins: pwm_b {
|
||||
mux {
|
||||
groups = "pwm_b";
|
||||
function = "pwm_b";
|
||||
};
|
||||
};
|
||||
|
||||
pwm_d_pins: pwm_d {
|
||||
mux {
|
||||
groups = "pwm_d";
|
||||
function = "pwm_d";
|
||||
};
|
||||
};
|
||||
|
||||
pwm_e_pins: pwm_e {
|
||||
mux {
|
||||
groups = "pwm_e";
|
||||
function = "pwm_e";
|
||||
};
|
||||
};
|
||||
|
||||
pwm_f_x_pins: pwm_f_x {
|
||||
mux {
|
||||
groups = "pwm_f_x";
|
||||
function = "pwm_f_x";
|
||||
};
|
||||
};
|
||||
|
||||
pwm_f_y_pins: pwm_f_y {
|
||||
mux {
|
||||
groups = "pwm_f_y";
|
||||
function = "pwm_f_y";
|
||||
};
|
||||
};
|
||||
|
||||
hdmi_hpd_pins: hdmi_hpd {
|
||||
mux {
|
||||
groups = "hdmi_hpd";
|
||||
function = "hdmi_hpd";
|
||||
};
|
||||
};
|
||||
|
||||
hdmi_i2c_pins: hdmi_i2c {
|
||||
mux {
|
||||
groups = "hdmi_sda", "hdmi_scl";
|
||||
function = "hdmi_i2c";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&hiubus {
|
||||
clkc: clock-controller@0 {
|
||||
compatible = "amlogic,gxbb-clkc";
|
||||
#clock-cells = <1>;
|
||||
reg = <0x0 0x0 0x0 0x3db>;
|
||||
};
|
||||
};
|
||||
|
||||
&i2c_A {
|
||||
clocks = <&clkc CLKID_I2C>;
|
||||
};
|
||||
|
||||
&i2c_B {
|
||||
clocks = <&clkc CLKID_I2C>;
|
||||
};
|
||||
|
||||
&i2c_C {
|
||||
clocks = <&clkc CLKID_I2C>;
|
||||
};
|
||||
|
||||
&sd_emmc_a {
|
||||
clocks = <&clkc CLKID_SD_EMMC_A>,
|
||||
<&xtal>,
|
||||
<&clkc CLKID_FCLK_DIV2>;
|
||||
clock-names = "core", "clkin0", "clkin1";
|
||||
};
|
||||
|
||||
&sd_emmc_b {
|
||||
clocks = <&clkc CLKID_SD_EMMC_B>,
|
||||
<&xtal>,
|
||||
<&clkc CLKID_FCLK_DIV2>;
|
||||
clock-names = "core", "clkin0", "clkin1";
|
||||
};
|
||||
|
||||
&sd_emmc_c {
|
||||
clocks = <&clkc CLKID_SD_EMMC_C>,
|
||||
<&xtal>,
|
||||
<&clkc CLKID_FCLK_DIV2>;
|
||||
clock-names = "core", "clkin0", "clkin1";
|
||||
};
|
||||
|
||||
&vpu {
|
||||
compatible = "amlogic,meson-gxbb-vpu", "amlogic,meson-gx-vpu";
|
||||
};
|
||||
|
||||
382
arch/arm/dts/rk3188-radxarock.dts
Normal file
382
arch/arm/dts/rk3188-radxarock.dts
Normal file
@@ -0,0 +1,382 @@
|
||||
/*
|
||||
* Copyright (c) 2013 Heiko Stuebner <heiko@sntech.de>
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-2.0+ or X11
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
#include <dt-bindings/input/input.h>
|
||||
#include "rk3188.dtsi"
|
||||
|
||||
/ {
|
||||
model = "Radxa Rock";
|
||||
compatible = "radxa,rock", "rockchip,rk3188";
|
||||
|
||||
chosen {
|
||||
/* stdout-path = &uart2; */
|
||||
stdout-path = "serial2:115200n8";
|
||||
};
|
||||
|
||||
config {
|
||||
u-boot,dm-pre-reloc;
|
||||
u-boot,boot-led = "rock:red:power";
|
||||
};
|
||||
|
||||
memory {
|
||||
device_type = "memory";
|
||||
reg = <0x60000000 0x80000000>;
|
||||
};
|
||||
|
||||
gpio-keys {
|
||||
compatible = "gpio-keys";
|
||||
autorepeat;
|
||||
|
||||
power {
|
||||
gpios = <&gpio0 4 GPIO_ACTIVE_LOW>;
|
||||
linux,code = <KEY_POWER>;
|
||||
label = "GPIO Key Power";
|
||||
linux,input-type = <1>;
|
||||
wakeup-source;
|
||||
debounce-interval = <100>;
|
||||
};
|
||||
};
|
||||
|
||||
gpio-leds {
|
||||
compatible = "gpio-leds";
|
||||
|
||||
green {
|
||||
label = "rock:green:user1";
|
||||
gpios = <&gpio0 12 GPIO_ACTIVE_LOW>;
|
||||
default-state = "off";
|
||||
};
|
||||
|
||||
blue {
|
||||
label = "rock:blue:user2";
|
||||
gpios = <&gpio0 14 GPIO_ACTIVE_LOW>;
|
||||
default-state = "off";
|
||||
};
|
||||
|
||||
sleep {
|
||||
label = "rock:red:power";
|
||||
gpios = <&gpio0 15 0>;
|
||||
default-state = "off";
|
||||
};
|
||||
};
|
||||
|
||||
sound {
|
||||
compatible = "simple-audio-card";
|
||||
simple-audio-card,name = "SPDIF";
|
||||
|
||||
simple-audio-card,dai-link@1 { /* S/PDIF - S/PDIF */
|
||||
cpu { sound-dai = <&spdif>; };
|
||||
codec { sound-dai = <&spdif_out>; };
|
||||
};
|
||||
};
|
||||
|
||||
spdif_out: spdif-out {
|
||||
compatible = "linux,spdif-dit";
|
||||
#sound-dai-cells = <0>;
|
||||
};
|
||||
|
||||
ir_recv: gpio-ir-receiver {
|
||||
compatible = "gpio-ir-receiver";
|
||||
gpios = <&gpio0 10 1>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&ir_recv_pin>;
|
||||
};
|
||||
|
||||
vcc_otg: usb-otg-regulator {
|
||||
compatible = "regulator-fixed";
|
||||
enable-active-high;
|
||||
gpio = <&gpio2 31 GPIO_ACTIVE_HIGH>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&otg_vbus_drv>;
|
||||
regulator-name = "otg-vbus";
|
||||
regulator-min-microvolt = <5000000>;
|
||||
regulator-max-microvolt = <5000000>;
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
};
|
||||
|
||||
vcc_sd0: sdmmc-regulator {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "sdmmc-supply";
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
gpio = <&gpio3 1 GPIO_ACTIVE_LOW>;
|
||||
startup-delay-us = <100000>;
|
||||
vin-supply = <&vcc_io>;
|
||||
};
|
||||
|
||||
vcc_host: usb-host-regulator {
|
||||
compatible = "regulator-fixed";
|
||||
enable-active-high;
|
||||
gpio = <&gpio0 3 GPIO_ACTIVE_HIGH>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&host_vbus_drv>;
|
||||
regulator-name = "host-pwr";
|
||||
regulator-min-microvolt = <5000000>;
|
||||
regulator-max-microvolt = <5000000>;
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
};
|
||||
|
||||
vsys: vsys-regulator {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "vsys";
|
||||
regulator-min-microvolt = <5000000>;
|
||||
regulator-max-microvolt = <5000000>;
|
||||
regulator-boot-on;
|
||||
};
|
||||
};
|
||||
|
||||
&dmc {
|
||||
rockchip,pctl-timing = <0x12c 0xc8 0x1f4 0x1e 0x4e 0x4 0x69 0x6
|
||||
0x3 0x0 0x6 0x5 0xc 0x10 0x6 0x4
|
||||
0x4 0x5 0x4 0x200 0x3 0xa 0x40 0x0
|
||||
0x1 0x5 0x5 0x3 0xc 0x1e 0x100 0x0
|
||||
0x4 0x0>;
|
||||
rockchip,phy-timing = <0x208c6690 0x690878 0x10022a00
|
||||
0x220 0x40 0x0 0x0>;
|
||||
rockchip,sdram-params = <0x24716310 0 2 300000000 3 9 0>;
|
||||
};
|
||||
|
||||
&emac {
|
||||
status = "okay";
|
||||
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&emac_xfer>, <&emac_mdio>, <&phy_int>;
|
||||
|
||||
phy = <&phy0>;
|
||||
phy-supply = <&vcc_rmii>;
|
||||
|
||||
phy0: ethernet-phy@0 {
|
||||
reg = <0>;
|
||||
interrupt-parent = <&gpio3>;
|
||||
interrupts = <26 IRQ_TYPE_LEVEL_LOW>;
|
||||
};
|
||||
};
|
||||
|
||||
&cpu0 {
|
||||
cpu0-supply = <&vdd_arm>;
|
||||
};
|
||||
|
||||
&i2c1 {
|
||||
status = "okay";
|
||||
clock-frequency = <400000>;
|
||||
|
||||
rtc@51 {
|
||||
compatible = "haoyu,hym8563";
|
||||
reg = <0x51>;
|
||||
interrupt-parent = <&gpio0>;
|
||||
interrupts = <13 IRQ_TYPE_EDGE_FALLING>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&rtc_int>;
|
||||
#clock-cells = <0>;
|
||||
clock-output-names = "xin32k";
|
||||
};
|
||||
|
||||
act8846: act8846@5a {
|
||||
compatible = "active-semi,act8846";
|
||||
reg = <0x5a>;
|
||||
status = "okay";
|
||||
system-power-controller;
|
||||
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&act8846_dvs0_ctl>;
|
||||
|
||||
vp1-supply = <&vsys>;
|
||||
vp2-supply = <&vsys>;
|
||||
vp3-supply = <&vsys>;
|
||||
vp4-supply = <&vsys>;
|
||||
inl1-supply = <&vcc_io>;
|
||||
inl2-supply = <&vsys>;
|
||||
inl3-supply = <&vsys>;
|
||||
|
||||
regulators {
|
||||
vcc_ddr: REG1 {
|
||||
regulator-name = "VCC_DDR";
|
||||
regulator-min-microvolt = <1200000>;
|
||||
regulator-max-microvolt = <1200000>;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
vdd_log: REG2 {
|
||||
regulator-name = "VDD_LOG";
|
||||
regulator-min-microvolt = <1000000>;
|
||||
regulator-max-microvolt = <1000000>;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
vdd_arm: REG3 {
|
||||
regulator-name = "VDD_ARM";
|
||||
regulator-min-microvolt = <875000>;
|
||||
regulator-max-microvolt = <1350000>;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
vcc_io: REG4 {
|
||||
regulator-name = "VCC_IO";
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
vdd_10: REG5 {
|
||||
regulator-name = "VDD_10";
|
||||
regulator-min-microvolt = <1000000>;
|
||||
regulator-max-microvolt = <1000000>;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
vdd_hdmi: REG6 {
|
||||
regulator-name = "VDD_HDMI";
|
||||
regulator-min-microvolt = <2500000>;
|
||||
regulator-max-microvolt = <2500000>;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
vcc18: REG7 {
|
||||
regulator-name = "VCC_18";
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
vcca_33: REG8 {
|
||||
regulator-name = "VCCA_33";
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
vcc_rmii: REG9 {
|
||||
regulator-name = "VCC_RMII";
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
};
|
||||
|
||||
vccio_wl: REG10 {
|
||||
regulator-name = "VCCIO_WL";
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
vcc_18: REG11 {
|
||||
regulator-name = "VCC18_IO";
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
vcc28: REG12 {
|
||||
regulator-name = "VCC_28";
|
||||
regulator-min-microvolt = <2800000>;
|
||||
regulator-max-microvolt = <2800000>;
|
||||
regulator-always-on;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&mmc0 {
|
||||
num-slots = <1>;
|
||||
status = "okay";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&sd0_clk>, <&sd0_cmd>, <&sd0_cd>, <&sd0_bus4>;
|
||||
vmmc-supply = <&vcc_sd0>;
|
||||
|
||||
bus-width = <4>;
|
||||
cap-mmc-highspeed;
|
||||
cap-sd-highspeed;
|
||||
disable-wp;
|
||||
};
|
||||
|
||||
&pwm1 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&pwm2 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&pwm3 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&pinctrl {
|
||||
pcfg_output_low: pcfg-output-low {
|
||||
output-low;
|
||||
};
|
||||
|
||||
act8846 {
|
||||
act8846_dvs0_ctl: act8846-dvs0-ctl {
|
||||
rockchip,pins = <RK_GPIO3 27 RK_FUNC_GPIO &pcfg_output_low>;
|
||||
};
|
||||
};
|
||||
|
||||
hym8563 {
|
||||
rtc_int: rtc-int {
|
||||
rockchip,pins = <RK_GPIO0 0 RK_FUNC_GPIO &pcfg_pull_up>;
|
||||
};
|
||||
};
|
||||
|
||||
lan8720a {
|
||||
phy_int: phy-int {
|
||||
rockchip,pins = <RK_GPIO3 26 RK_FUNC_GPIO &pcfg_pull_up>;
|
||||
};
|
||||
};
|
||||
|
||||
ir-receiver {
|
||||
ir_recv_pin: ir-recv-pin {
|
||||
rockchip,pins = <RK_GPIO0 10 RK_FUNC_GPIO &pcfg_pull_none>;
|
||||
};
|
||||
};
|
||||
|
||||
usb {
|
||||
host_vbus_drv: host-vbus-drv {
|
||||
rockchip,pins = <0 3 RK_FUNC_GPIO &pcfg_pull_none>;
|
||||
};
|
||||
otg_vbus_drv: otg-vbus-drv {
|
||||
rockchip,pins = <2 31 RK_FUNC_GPIO &pcfg_pull_none>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&spdif {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&uart0 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&uart1 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&uart2 {
|
||||
status = "okay";
|
||||
u-boot,dm-spl;
|
||||
};
|
||||
|
||||
&uart3 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usbphy {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usb_host {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usb_otg {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&wdt {
|
||||
status = "okay";
|
||||
};
|
||||
@@ -50,6 +50,11 @@
|
||||
rockchip,pins = <7 0 RK_FUNC_GPIO &pcfg_pull_up>;
|
||||
};
|
||||
};
|
||||
usb_host {
|
||||
host_vbus_drv: host-vbus-drv {
|
||||
rockchip,pins = <0 14 RK_FUNC_GPIO &pcfg_pull_none>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&pwm1 {
|
||||
@@ -61,6 +66,11 @@
|
||||
reg-shift = <2>;
|
||||
};
|
||||
|
||||
&usb_host1 {
|
||||
vbus-supply = <&vcc_host_5v>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&sdmmc {
|
||||
u-boot,dm-pre-reloc;
|
||||
};
|
||||
|
||||
46
arch/arm/dts/rk3288-miqi.dts
Normal file
46
arch/arm/dts/rk3288-miqi.dts
Normal file
@@ -0,0 +1,46 @@
|
||||
/*
|
||||
* (C) Copyright 2016 Rockchip Electronics Co., Ltd
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-2.0+ X11
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
#include "rk3288-miqi.dtsi"
|
||||
|
||||
/ {
|
||||
model = "mqmaker MiQi";
|
||||
compatible = "mqmaker,miqi", "rockchip,rk3288";
|
||||
|
||||
chosen {
|
||||
stdout-path = "serial2:115200n8";
|
||||
};
|
||||
};
|
||||
|
||||
&dmc {
|
||||
rockchip,pctl-timing = <0x29a 0xc8 0x1f8 0x42 0x4e 0x4 0xea 0xa
|
||||
0x5 0x0 0xa 0x7 0x19 0x24 0xa 0x7
|
||||
0x5 0xa 0x5 0x200 0x5 0x10 0x40 0x0
|
||||
0x1 0x7 0x7 0x4 0xc 0x43 0x100 0x0
|
||||
0x5 0x0>;
|
||||
rockchip,phy-timing = <0x48f9aab4 0xea0910 0x1002c200
|
||||
0xa60 0x40 0x10 0x0>;
|
||||
rockchip,sdram-params = <0x30B25564 0x627 3 666000000 3 9 1>;
|
||||
};
|
||||
|
||||
|
||||
&pinctrl {
|
||||
u-boot,dm-pre-reloc;
|
||||
};
|
||||
|
||||
&uart2 {
|
||||
u-boot,dm-pre-reloc;
|
||||
reg-shift = <2>;
|
||||
};
|
||||
|
||||
&sdmmc {
|
||||
u-boot,dm-pre-reloc;
|
||||
};
|
||||
|
||||
&emmc {
|
||||
u-boot,dm-pre-reloc;
|
||||
};
|
||||
423
arch/arm/dts/rk3288-miqi.dtsi
Normal file
423
arch/arm/dts/rk3288-miqi.dtsi
Normal file
@@ -0,0 +1,423 @@
|
||||
/*
|
||||
* Copyright (c) 2016 Heiko Stuebner <heiko@sntech.de>
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-2.0+ X11
|
||||
*/
|
||||
|
||||
#include "rk3288.dtsi"
|
||||
|
||||
/ {
|
||||
memory {
|
||||
device_type = "memory";
|
||||
reg = <0 0x80000000>;
|
||||
};
|
||||
|
||||
ext_gmac: external-gmac-clock {
|
||||
compatible = "fixed-clock";
|
||||
#clock-cells = <0>;
|
||||
clock-frequency = <125000000>;
|
||||
clock-output-names = "ext_gmac";
|
||||
};
|
||||
|
||||
io_domains: io-domains {
|
||||
compatible = "rockchip,rk3288-io-voltage-domain";
|
||||
rockchip,grf = <&grf>;
|
||||
|
||||
audio-supply = <&vcca_33>;
|
||||
flash0-supply = <&vcc_flash>;
|
||||
flash1-supply = <&vcc_lan>;
|
||||
gpio30-supply = <&vcc_io>;
|
||||
gpio1830-supply = <&vcc_io>;
|
||||
lcdc-supply = <&vcc_io>;
|
||||
sdcard-supply = <&vccio_sd>;
|
||||
wifi-supply = <&vcc_18>;
|
||||
};
|
||||
|
||||
|
||||
leds {
|
||||
u-boot,dm-pre-reloc;
|
||||
compatible = "gpio-leds";
|
||||
|
||||
work {
|
||||
u-boot,dm-pre-reloc;
|
||||
gpios = <&gpio7 4 GPIO_ACTIVE_LOW>;
|
||||
label = "miqi:green:user";
|
||||
linux,default-trigger = "default-on";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&led_ctl>;
|
||||
};
|
||||
};
|
||||
|
||||
vcc_flash: flash-regulator {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "vcc_flash";
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
vin-supply = <&vcc_io>;
|
||||
};
|
||||
|
||||
vcc_host: usb-host-regulator {
|
||||
compatible = "regulator-fixed";
|
||||
enable-active-high;
|
||||
gpio = <&gpio0 14 GPIO_ACTIVE_HIGH>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&host_vbus_drv>;
|
||||
regulator-name = "vcc_host";
|
||||
regulator-min-microvolt = <5000000>;
|
||||
regulator-max-microvolt = <5000000>;
|
||||
regulator-always-on;
|
||||
vin-supply = <&vcc_sys>;
|
||||
};
|
||||
|
||||
vcc_sd: sdmmc-regulator {
|
||||
compatible = "regulator-fixed";
|
||||
gpio = <&gpio7 11 GPIO_ACTIVE_LOW>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&sdmmc_pwr>;
|
||||
regulator-name = "vcc_sd";
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
startup-delay-us = <100000>;
|
||||
vin-supply = <&vcc_io>;
|
||||
};
|
||||
|
||||
vcc_sys: vsys-regulator {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "vcc_sys";
|
||||
regulator-min-microvolt = <5000000>;
|
||||
regulator-max-microvolt = <5000000>;
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
};
|
||||
};
|
||||
|
||||
&cpu0 {
|
||||
cpu0-supply = <&vdd_cpu>;
|
||||
};
|
||||
|
||||
&emmc {
|
||||
bus-width = <8>;
|
||||
cap-mmc-highspeed;
|
||||
disable-wp;
|
||||
non-removable;
|
||||
num-slots = <1>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&emmc_clk>, <&emmc_cmd>, <&emmc_pwr>, <&emmc_bus8>;
|
||||
vmmc-supply = <&vcc_io>;
|
||||
vqmmc-supply = <&vcc_flash>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&gmac {
|
||||
assigned-clocks = <&cru SCLK_MAC>;
|
||||
assigned-clock-parents = <&ext_gmac>;
|
||||
clock_in_out = "input";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&rgmii_pins>, <&phy_rst>, <&phy_pmeb>, <&phy_int>;
|
||||
phy-supply = <&vcc_lan>;
|
||||
phy-mode = "rgmii";
|
||||
snps,reset-active-low;
|
||||
snps,reset-delays-us = <0 10000 1000000>;
|
||||
snps,reset-gpio = <&gpio4 8 GPIO_ACTIVE_LOW>;
|
||||
tx_delay = <0x30>;
|
||||
rx_delay = <0x10>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&hdmi {
|
||||
ddc-i2c-bus = <&i2c5>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&i2c0 {
|
||||
clock-frequency = <400000>;
|
||||
status = "okay";
|
||||
|
||||
vdd_cpu: syr827@40 {
|
||||
compatible = "silergy,syr827";
|
||||
fcs,suspend-voltage-selector = <1>;
|
||||
reg = <0x40>;
|
||||
regulator-name = "vdd_cpu";
|
||||
regulator-min-microvolt = <850000>;
|
||||
regulator-max-microvolt = <1350000>;
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
regulator-enable-ramp-delay = <300>;
|
||||
regulator-ramp-delay = <8000>;
|
||||
vin-supply = <&vcc_sys>;
|
||||
};
|
||||
|
||||
vdd_gpu: syr828@41 {
|
||||
compatible = "silergy,syr828";
|
||||
fcs,suspend-voltage-selector = <1>;
|
||||
reg = <0x41>;
|
||||
regulator-name = "vdd_gpu";
|
||||
regulator-min-microvolt = <850000>;
|
||||
regulator-max-microvolt = <1350000>;
|
||||
regulator-always-on;
|
||||
vin-supply = <&vcc_sys>;
|
||||
};
|
||||
|
||||
hym8563: hym8563@51 {
|
||||
compatible = "haoyu,hym8563";
|
||||
reg = <0x51>;
|
||||
#clock-cells = <0>;
|
||||
clock-frequency = <32768>;
|
||||
clock-output-names = "xin32k";
|
||||
};
|
||||
|
||||
act8846: act8846@5a {
|
||||
compatible = "active-semi,act8846";
|
||||
reg = <0x5a>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pmic_vsel>;
|
||||
system-power-controller;
|
||||
|
||||
vp1-supply = <&vcc_sys>;
|
||||
vp2-supply = <&vcc_sys>;
|
||||
vp3-supply = <&vcc_sys>;
|
||||
vp4-supply = <&vcc_sys>;
|
||||
inl1-supply = <&vcc_sys>;
|
||||
inl2-supply = <&vcc_sys>;
|
||||
inl3-supply = <&vcc_20>;
|
||||
|
||||
regulators {
|
||||
vcc_ddr: REG1 {
|
||||
regulator-name = "vcc_ddr";
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
vcc_io: REG2 {
|
||||
regulator-name = "vcc_io";
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
vdd_log: REG3 {
|
||||
regulator-name = "vdd_log";
|
||||
regulator-min-microvolt = <1100000>;
|
||||
regulator-max-microvolt = <1100000>;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
vcc_20: REG4 {
|
||||
regulator-name = "vcc_20";
|
||||
regulator-min-microvolt = <2000000>;
|
||||
regulator-max-microvolt = <2000000>;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
vccio_sd: REG5 {
|
||||
regulator-name = "vccio_sd";
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
vdd10_lcd: REG6 {
|
||||
regulator-name = "vdd10_lcd";
|
||||
regulator-min-microvolt = <1000000>;
|
||||
regulator-max-microvolt = <1000000>;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
vcca_18: REG7 {
|
||||
regulator-name = "vcca_18";
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
};
|
||||
|
||||
vcca_33: REG8 {
|
||||
regulator-name = "vcca_33";
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
};
|
||||
|
||||
vcc_lan: REG9 {
|
||||
regulator-name = "vcc_lan";
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
};
|
||||
|
||||
vdd_10: REG10 {
|
||||
regulator-name = "vdd_10";
|
||||
regulator-min-microvolt = <1000000>;
|
||||
regulator-max-microvolt = <1000000>;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
vcc_18: REG11 {
|
||||
regulator-name = "vcc_18";
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
vcc18_lcd: REG12 {
|
||||
regulator-name = "vcc18_lcd";
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
regulator-always-on;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&i2c1 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&i2c2 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&i2c4 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&i2c5 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&pinctrl {
|
||||
pcfg_output_high: pcfg-output-high {
|
||||
output-high;
|
||||
};
|
||||
|
||||
pcfg_output_low: pcfg-output-low {
|
||||
output-low;
|
||||
};
|
||||
|
||||
pcfg_pull_up_drv_12ma: pcfg-pull-up-drv-12ma {
|
||||
bias-pull-up;
|
||||
drive-strength = <12>;
|
||||
};
|
||||
|
||||
act8846 {
|
||||
pmic_int: pmic-int {
|
||||
rockchip,pins = <0 4 RK_FUNC_GPIO &pcfg_pull_up>;
|
||||
};
|
||||
|
||||
pmic_sleep: pmic-sleep {
|
||||
rockchip,pins = <0 0 RK_FUNC_GPIO &pcfg_output_low>;
|
||||
};
|
||||
|
||||
pmic_vsel: pmic-vsel {
|
||||
rockchip,pins = <7 1 RK_FUNC_GPIO &pcfg_output_low>;
|
||||
};
|
||||
};
|
||||
|
||||
gmac {
|
||||
phy_int: phy-int {
|
||||
rockchip,pins = <0 9 RK_FUNC_GPIO &pcfg_pull_up>;
|
||||
};
|
||||
|
||||
phy_pmeb: phy-pmeb {
|
||||
rockchip,pins = <0 8 RK_FUNC_GPIO &pcfg_pull_up>;
|
||||
};
|
||||
|
||||
phy_rst: phy-rst {
|
||||
rockchip,pins = <4 8 RK_FUNC_GPIO &pcfg_output_high>;
|
||||
};
|
||||
};
|
||||
|
||||
leds {
|
||||
led_ctl: led-ctl {
|
||||
rockchip,pins = <7 4 RK_FUNC_GPIO &pcfg_pull_none>;
|
||||
};
|
||||
};
|
||||
|
||||
sdmmc {
|
||||
/*
|
||||
* Default drive strength isn't enough to achieve even
|
||||
* high-speed mode on firefly board so bump up to 12ma.
|
||||
*/
|
||||
sdmmc_bus4: sdmmc-bus4 {
|
||||
rockchip,pins = <6 16 RK_FUNC_1 &pcfg_pull_up_drv_12ma>,
|
||||
<6 17 RK_FUNC_1 &pcfg_pull_up_drv_12ma>,
|
||||
<6 18 RK_FUNC_1 &pcfg_pull_up_drv_12ma>,
|
||||
<6 19 RK_FUNC_1 &pcfg_pull_up_drv_12ma>;
|
||||
};
|
||||
|
||||
sdmmc_clk: sdmmc-clk {
|
||||
rockchip,pins = <6 20 RK_FUNC_1 &pcfg_pull_none_12ma>;
|
||||
};
|
||||
|
||||
sdmmc_cmd: sdmmc-cmd {
|
||||
rockchip,pins = <6 21 RK_FUNC_1 &pcfg_pull_up_drv_12ma>;
|
||||
};
|
||||
|
||||
sdmmc_pwr: sdmmc-pwr {
|
||||
rockchip,pins = <7 11 RK_FUNC_GPIO &pcfg_pull_none>;
|
||||
};
|
||||
};
|
||||
|
||||
usb_host {
|
||||
host_vbus_drv: host-vbus-drv {
|
||||
rockchip,pins = <0 14 RK_FUNC_GPIO &pcfg_pull_none>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&saradc {
|
||||
vref-supply = <&vcc_18>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&sdmmc {
|
||||
bus-width = <4>;
|
||||
cap-mmc-highspeed;
|
||||
cap-sd-highspeed;
|
||||
card-detect-delay = <200>;
|
||||
disable-wp;
|
||||
num-slots = <1>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&sdmmc_clk>, <&sdmmc_cmd>, <&sdmmc_cd>, <&sdmmc_bus4>;
|
||||
vmmc-supply = <&vcc_sd>;
|
||||
vqmmc-supply = <&vccio_sd>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&tsadc {
|
||||
rockchip,hw-tshut-mode = <0>;
|
||||
rockchip,hw-tshut-polarity = <0>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&uart2 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&uart3 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usbphy {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usb_host1 {
|
||||
vbus-supply = <&vcc_host>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&vopb {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&vopb_mmu {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&vopl {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&vopl_mmu {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&wdt {
|
||||
status = "okay";
|
||||
};
|
||||
@@ -30,6 +30,13 @@
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
vccsys: vccsys {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "vccsys";
|
||||
regulator-boot-on;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
vcc3v3_sys: vcc3v3-sys {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "vcc3v3_sys";
|
||||
@@ -51,6 +58,7 @@
|
||||
regulator-name = "vcc5v0_host";
|
||||
gpio = <&gpio4 25 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
&emmc_phy {
|
||||
@@ -95,6 +103,7 @@
|
||||
};
|
||||
|
||||
&dwc3_typec0 {
|
||||
rockchip,vbus-gpio = <&gpio1 3 GPIO_ACTIVE_HIGH>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
@@ -107,9 +116,41 @@
|
||||
};
|
||||
|
||||
&dwc3_typec1 {
|
||||
rockchip,vbus-gpio = <&gpio1 4 GPIO_ACTIVE_HIGH>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&i2c0 {
|
||||
status = "okay";
|
||||
clock-frequency = <400000>;
|
||||
i2c-scl-falling-time-ns = <50>;
|
||||
i2c-scl-rising-time-ns = <100>;
|
||||
u-boot,dm-pre-reloc;
|
||||
|
||||
rk808: pmic@1b {
|
||||
compatible = "rockchip,rk808";
|
||||
clock-output-names = "xin32k", "wifibt_32kin";
|
||||
interrupt-parent = <&gpio0>;
|
||||
interrupts = <4 IRQ_TYPE_LEVEL_LOW>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pmic_int_l>;
|
||||
reg = <0x1b>;
|
||||
rockchip,system-power-controller;
|
||||
#clock-cells = <1>;
|
||||
u-boot,dm-pre-reloc;
|
||||
status = "okay";
|
||||
|
||||
vcc12-supply = <&vcc3v3_sys>;
|
||||
regulators {
|
||||
vcc33_lcd: SWITCH_REG2 {
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
regulator-name = "vcc33_lcd";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&pinctrl {
|
||||
pmic {
|
||||
pmic_int_l: pmic-int-l {
|
||||
|
||||
188
arch/arm/dts/rk3399-puma.dts
Normal file
188
arch/arm/dts/rk3399-puma.dts
Normal file
@@ -0,0 +1,188 @@
|
||||
/*
|
||||
* (C) Copyright 2017 Theobroma Systems Design und Consulting GmbH
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-2.0+ X11
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
#include <dt-bindings/pwm/pwm.h>
|
||||
#include "rk3399.dtsi"
|
||||
#include "rk3399-sdram-ddr3-1333.dtsi"
|
||||
|
||||
/ {
|
||||
model = "Theobroma Systems RK3399-Q7 SoM";
|
||||
compatible = "tsd,puma", "rockchip,rk3399";
|
||||
|
||||
chosen {
|
||||
stdout-path = "serial0:115200n8";
|
||||
u-boot,spl-boot-order = &spiflash, &sdhci, &sdmmc;
|
||||
};
|
||||
|
||||
aliases {
|
||||
spi0 = &spi1;
|
||||
spi1 = &spi5;
|
||||
};
|
||||
|
||||
vdd_center: vdd-center {
|
||||
compatible = "pwm-regulator";
|
||||
pwms = <&pwm3 0 25000 0>;
|
||||
regulator-name = "vdd_center";
|
||||
regulator-min-microvolt = <800000>;
|
||||
regulator-max-microvolt = <1400000>;
|
||||
regulator-init-microvolt = <950000>;
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
vcc3v3_sys: vcc3v3-sys {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "vcc3v3_sys";
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
};
|
||||
|
||||
vcc_phy: vcc-phy-regulator {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "vcc_phy";
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
};
|
||||
|
||||
vcc5v0_host: vcc5v0-host-en {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "vcc5v0_host";
|
||||
gpio = <&gpio4 25 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
|
||||
clkin_gmac: external-gmac-clock {
|
||||
compatible = "fixed-clock";
|
||||
clock-frequency = <125000000>;
|
||||
clock-output-names = "clkin_gmac";
|
||||
#clock-cells = <0>;
|
||||
};
|
||||
|
||||
vcc_phy: vcc-phy-regulator {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "vcc_phy";
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
};
|
||||
};
|
||||
|
||||
&emmc_phy {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&pwm0 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&pwm2 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&pwm3 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&sdmmc {
|
||||
u-boot,dm-pre-reloc;
|
||||
bus-width = <4>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&sdhci {
|
||||
bus-width = <8>;
|
||||
mmc-hs400-1_8v;
|
||||
mmc-hs400-enhanced-strobe;
|
||||
non-removable;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&uart0 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&uart2 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usb_host0_ehci {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usb_host0_ohci {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&dwc3_typec0 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usb_host1_ehci {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usb_host1_ohci {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&dwc3_typec1 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&pinctrl {
|
||||
pmic {
|
||||
pmic_int_l: pmic-int-l {
|
||||
rockchip,pins =
|
||||
<1 21 RK_FUNC_GPIO &pcfg_pull_up>;
|
||||
};
|
||||
|
||||
pmic_dvs2: pmic-dvs2 {
|
||||
rockchip,pins =
|
||||
<1 18 RK_FUNC_GPIO &pcfg_pull_down>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&gmac {
|
||||
phy-supply = <&vcc_phy>;
|
||||
phy-mode = "rgmii";
|
||||
clock_in_out = "input";
|
||||
snps,reset-gpio = <&gpio3 16 GPIO_ACTIVE_LOW>;
|
||||
snps,reset-active-low;
|
||||
snps,reset-delays-us = <0 10000 50000>;
|
||||
assigned-clocks = <&cru SCLK_RMII_SRC>;
|
||||
assigned-clock-parents = <&clkin_gmac>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&rgmii_pins>;
|
||||
tx_delay = <0x10>;
|
||||
rx_delay = <0x10>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&spi1 {
|
||||
u-boot,dm-pre-reloc;
|
||||
|
||||
status = "okay";
|
||||
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
spiflash: w25q32dw@0 {
|
||||
u-boot,dm-pre-reloc;
|
||||
|
||||
compatible = "spi-flash";
|
||||
reg = <0>;
|
||||
spi-max-frequency = <5000000>;
|
||||
spi-cpol;
|
||||
spi-cpha;
|
||||
};
|
||||
};
|
||||
|
||||
&spi5 {
|
||||
status = "okay";
|
||||
};
|
||||
1537
arch/arm/dts/rk3399-sdram-ddr3-1333.dtsi
Normal file
1537
arch/arm/dts/rk3399-sdram-ddr3-1333.dtsi
Normal file
File diff suppressed because it is too large
Load Diff
@@ -26,6 +26,7 @@
|
||||
serial4 = &uart4;
|
||||
mmc0 = &sdhci;
|
||||
mmc1 = &sdmmc;
|
||||
i2c0 = &i2c0;
|
||||
};
|
||||
|
||||
cpus {
|
||||
@@ -239,7 +240,6 @@
|
||||
compatible = "rockchip,rk3399-xhci";
|
||||
reg = <0x0 0xfe800000 0x0 0x100000>;
|
||||
status = "disabled";
|
||||
rockchip,vbus-gpio = <&gpio1 3 GPIO_ACTIVE_HIGH>;
|
||||
snps,dis-enblslpm-quirk;
|
||||
snps,phyif-utmi-bits = <16>;
|
||||
snps,dis-u2-freeclk-exists-quirk;
|
||||
@@ -261,7 +261,6 @@
|
||||
compatible = "rockchip,rk3399-xhci";
|
||||
reg = <0x0 0xfe900000 0x0 0x100000>;
|
||||
status = "disabled";
|
||||
rockchip,vbus-gpio = <&gpio1 4 GPIO_ACTIVE_HIGH>;
|
||||
snps,dis-enblslpm-quirk;
|
||||
snps,phyif-utmi-bits = <16>;
|
||||
snps,dis-u2-freeclk-exists-quirk;
|
||||
@@ -600,6 +599,25 @@
|
||||
interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>;
|
||||
};
|
||||
|
||||
gmac: eth@fe300000 {
|
||||
compatible = "rockchip,rk3399-gmac";
|
||||
reg = <0x0 0xfe300000 0x0 0x10000>;
|
||||
rockchip,grf = <&grf>;
|
||||
interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH 0>;
|
||||
interrupt-names = "macirq";
|
||||
clocks = <&cru SCLK_MAC>, <&cru SCLK_MAC_RX>,
|
||||
<&cru SCLK_MAC_TX>, <&cru SCLK_MACREF>,
|
||||
<&cru SCLK_MACREF_OUT>, <&cru ACLK_GMAC>,
|
||||
<&cru PCLK_GMAC>;
|
||||
clock-names = "stmmaceth", "mac_clk_rx",
|
||||
"mac_clk_tx", "clk_mac_ref",
|
||||
"clk_mac_refout", "aclk_mac",
|
||||
"pclk_mac";
|
||||
resets = <&cru SRST_A_GMAC>;
|
||||
reset-names = "stmmaceth";
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
spdif: spdif@ff870000 {
|
||||
compatible = "rockchip,rk3399-spdif";
|
||||
reg = <0x0 0xff870000 0x0 0x1000>;
|
||||
@@ -651,6 +669,21 @@
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
i2c0: i2c@ff3c0000 {
|
||||
compatible = "rockchip,rk3399-i2c";
|
||||
reg = <0x0 0xff3c0000 0x0 0x1000>;
|
||||
assigned-clocks = <&pmucru SCLK_I2C0_PMU>;
|
||||
assigned-clock-rates = <200000000>;
|
||||
clocks = <&pmucru SCLK_I2C0_PMU>, <&pmucru PCLK_I2C0_PMU>;
|
||||
clock-names = "i2c", "pclk";
|
||||
interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH 0>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&i2c0_xfer>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
pinctrl: pinctrl {
|
||||
u-boot,dm-pre-reloc;
|
||||
compatible = "rockchip,rk3399-pinctrl";
|
||||
@@ -865,6 +898,42 @@
|
||||
};
|
||||
};
|
||||
|
||||
gmac {
|
||||
rgmii_pins: rgmii-pins {
|
||||
rockchip,pins =
|
||||
/* mac_txclk */
|
||||
<3 17 RK_FUNC_1 &pcfg_pull_none_13ma>,
|
||||
/* mac_rxclk */
|
||||
<3 14 RK_FUNC_1 &pcfg_pull_none>,
|
||||
/* mac_mdio */
|
||||
<3 13 RK_FUNC_1 &pcfg_pull_none>,
|
||||
/* mac_txen */
|
||||
<3 12 RK_FUNC_1 &pcfg_pull_none_13ma>,
|
||||
/* mac_clk */
|
||||
<3 11 RK_FUNC_1 &pcfg_pull_none>,
|
||||
/* mac_rxdv */
|
||||
<3 9 RK_FUNC_1 &pcfg_pull_none>,
|
||||
/* mac_mdc */
|
||||
<3 8 RK_FUNC_1 &pcfg_pull_none>,
|
||||
/* mac_rxd1 */
|
||||
<3 7 RK_FUNC_1 &pcfg_pull_none>,
|
||||
/* mac_rxd0 */
|
||||
<3 6 RK_FUNC_1 &pcfg_pull_none>,
|
||||
/* mac_txd1 */
|
||||
<3 5 RK_FUNC_1 &pcfg_pull_none_13ma>,
|
||||
/* mac_txd0 */
|
||||
<3 4 RK_FUNC_1 &pcfg_pull_none_13ma>,
|
||||
/* mac_rxd3 */
|
||||
<3 3 RK_FUNC_1 &pcfg_pull_none>,
|
||||
/* mac_rxd2 */
|
||||
<3 2 RK_FUNC_1 &pcfg_pull_none>,
|
||||
/* mac_txd3 */
|
||||
<3 1 RK_FUNC_1 &pcfg_pull_none_13ma>,
|
||||
/* mac_txd2 */
|
||||
<3 0 RK_FUNC_1 &pcfg_pull_none_13ma>;
|
||||
};
|
||||
};
|
||||
|
||||
sdmmc {
|
||||
sdmmc_bus1: sdmmc-bus1 {
|
||||
rockchip,pins =
|
||||
|
||||
1539
arch/arm/dts/sama5d3.dtsi
Normal file
1539
arch/arm/dts/sama5d3.dtsi
Normal file
File diff suppressed because it is too large
Load Diff
16
arch/arm/dts/sama5d31.dtsi
Normal file
16
arch/arm/dts/sama5d31.dtsi
Normal file
@@ -0,0 +1,16 @@
|
||||
/*
|
||||
* sama5d31.dtsi - Device Tree Include file for SAMA5D31 SoC
|
||||
*
|
||||
* Copyright (C) 2013 Boris BREZILLON <b.brezillon@overkiz.com>
|
||||
*
|
||||
* Licensed under GPLv2 or later.
|
||||
*/
|
||||
#include "sama5d3.dtsi"
|
||||
#include "sama5d3_lcd.dtsi"
|
||||
#include "sama5d3_emac.dtsi"
|
||||
#include "sama5d3_mci2.dtsi"
|
||||
#include "sama5d3_uart.dtsi"
|
||||
|
||||
/ {
|
||||
compatible = "atmel,sama5d31", "atmel,sama5d3", "atmel,sama5";
|
||||
};
|
||||
56
arch/arm/dts/sama5d31ek.dts
Normal file
56
arch/arm/dts/sama5d31ek.dts
Normal file
@@ -0,0 +1,56 @@
|
||||
/*
|
||||
* sama5d31ek.dts - Device Tree file for SAMA5D31-EK board
|
||||
*
|
||||
* Copyright (C) 2013 Atmel,
|
||||
* 2013 Ludovic Desroches <ludovic.desroches@atmel.com>
|
||||
*
|
||||
* Licensed under GPLv2 or later.
|
||||
*/
|
||||
/dts-v1/;
|
||||
#include "sama5d31.dtsi"
|
||||
#include "sama5d3xmb.dtsi"
|
||||
#include "sama5d3xdm.dtsi"
|
||||
|
||||
/ {
|
||||
model = "Atmel SAMA5D31-EK";
|
||||
compatible = "atmel,sama5d31ek", "atmel,sama5d3xmb", "atmel,sama5d3xcm", "atmel,sama5d31", "atmel,sama5d3", "atmel,sama5";
|
||||
|
||||
aliases {
|
||||
spi0 = &spi0;
|
||||
};
|
||||
|
||||
ahb {
|
||||
apb {
|
||||
spi0: spi@f0004000 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
ssc0: ssc@f0008000 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
i2c0: i2c@f0014000 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
i2c1: i2c@f0018000 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
macb1: ethernet@f802c000 {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
leds {
|
||||
d3 {
|
||||
label = "d3";
|
||||
gpios = <&pioE 24 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
};
|
||||
|
||||
sound {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
14
arch/arm/dts/sama5d33.dtsi
Normal file
14
arch/arm/dts/sama5d33.dtsi
Normal file
@@ -0,0 +1,14 @@
|
||||
/*
|
||||
* sama5d33.dtsi - Device Tree Include file for SAMA5D33 SoC
|
||||
*
|
||||
* Copyright (C) 2013 Boris BREZILLON <b.brezillon@overkiz.com>
|
||||
*
|
||||
* Licensed under GPLv2 or later.
|
||||
*/
|
||||
#include "sama5d3.dtsi"
|
||||
#include "sama5d3_lcd.dtsi"
|
||||
#include "sama5d3_gmac.dtsi"
|
||||
|
||||
/ {
|
||||
compatible = "atmel,sama5d33", "atmel,sama5d3", "atmel,sama5";
|
||||
};
|
||||
49
arch/arm/dts/sama5d33ek.dts
Normal file
49
arch/arm/dts/sama5d33ek.dts
Normal file
@@ -0,0 +1,49 @@
|
||||
/*
|
||||
* sama5d33ek.dts - Device Tree file for SAMA5D33-EK board
|
||||
*
|
||||
* Copyright (C) 2013 Atmel,
|
||||
* 2013 Ludovic Desroches <ludovic.desroches@atmel.com>
|
||||
*
|
||||
* Licensed under GPLv2 or later.
|
||||
*/
|
||||
/dts-v1/;
|
||||
#include "sama5d33.dtsi"
|
||||
#include "sama5d3xmb.dtsi"
|
||||
#include "sama5d3xdm.dtsi"
|
||||
|
||||
/ {
|
||||
model = "Atmel SAMA5D33-EK";
|
||||
compatible = "atmel,sama5d33ek", "atmel,sama5d3xmb", "atmel,sama5d3xcm", "atmel,sama5d33", "atmel,sama5d3", "atmel,sama5";
|
||||
|
||||
aliases {
|
||||
spi0 = &spi0;
|
||||
};
|
||||
|
||||
ahb {
|
||||
apb {
|
||||
spi0: spi@f0004000 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
ssc0: ssc@f0008000 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
i2c0: i2c@f0014000 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
i2c1: i2c@f0018000 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
macb0: ethernet@f0028000 {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
sound {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
16
arch/arm/dts/sama5d34.dtsi
Normal file
16
arch/arm/dts/sama5d34.dtsi
Normal file
@@ -0,0 +1,16 @@
|
||||
/*
|
||||
* sama5d34.dtsi - Device Tree Include file for SAMA5D34 SoC
|
||||
*
|
||||
* Copyright (C) 2013 Boris BREZILLON <b.brezillon@overkiz.com>
|
||||
*
|
||||
* Licensed under GPLv2 or later.
|
||||
*/
|
||||
#include "sama5d3.dtsi"
|
||||
#include "sama5d3_lcd.dtsi"
|
||||
#include "sama5d3_gmac.dtsi"
|
||||
#include "sama5d3_can.dtsi"
|
||||
#include "sama5d3_mci2.dtsi"
|
||||
|
||||
/ {
|
||||
compatible = "atmel,sama5d34", "atmel,sama5d3", "atmel,sama5";
|
||||
};
|
||||
66
arch/arm/dts/sama5d34ek.dts
Normal file
66
arch/arm/dts/sama5d34ek.dts
Normal file
@@ -0,0 +1,66 @@
|
||||
/*
|
||||
* sama5d34ek.dts - Device Tree file for SAMA5D34-EK board
|
||||
*
|
||||
* Copyright (C) 2013 Atmel,
|
||||
* 2013 Ludovic Desroches <ludovic.desroches@atmel.com>
|
||||
*
|
||||
* Licensed under GPLv2 or later.
|
||||
*/
|
||||
/dts-v1/;
|
||||
#include "sama5d34.dtsi"
|
||||
#include "sama5d3xmb.dtsi"
|
||||
#include "sama5d3xdm.dtsi"
|
||||
|
||||
/ {
|
||||
model = "Atmel SAMA5D34-EK";
|
||||
compatible = "atmel,sama5d34ek", "atmel,sama5d3xmb", "atmel,sama5d3xcm", "atmel,sama5d34", "atmel,sama5d3", "atmel,sama5";
|
||||
|
||||
aliases {
|
||||
spi0 = &spi0;
|
||||
};
|
||||
|
||||
ahb {
|
||||
apb {
|
||||
spi0: spi@f0004000 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
ssc0: ssc@f0008000 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
can0: can@f000c000 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
i2c0: i2c@f0014000 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
i2c1: i2c@f0018000 {
|
||||
status = "okay";
|
||||
|
||||
24c256@50 {
|
||||
compatible = "24c256";
|
||||
reg = <0x50>;
|
||||
pagesize = <64>;
|
||||
};
|
||||
};
|
||||
|
||||
macb0: ethernet@f0028000 {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
leds {
|
||||
d3 {
|
||||
label = "d3";
|
||||
gpios = <&pioE 24 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
};
|
||||
|
||||
sound {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
18
arch/arm/dts/sama5d35.dtsi
Normal file
18
arch/arm/dts/sama5d35.dtsi
Normal file
@@ -0,0 +1,18 @@
|
||||
/*
|
||||
* sama5d35.dtsi - Device Tree Include file for SAMA5D35 SoC
|
||||
*
|
||||
* Copyright (C) 2013 Boris BREZILLON <b.brezillon@overkiz.com>
|
||||
*
|
||||
* Licensed under GPLv2 or later.
|
||||
*/
|
||||
#include "sama5d3.dtsi"
|
||||
#include "sama5d3_gmac.dtsi"
|
||||
#include "sama5d3_emac.dtsi"
|
||||
#include "sama5d3_can.dtsi"
|
||||
#include "sama5d3_mci2.dtsi"
|
||||
#include "sama5d3_uart.dtsi"
|
||||
#include "sama5d3_tcb1.dtsi"
|
||||
|
||||
/ {
|
||||
compatible = "atmel,sama5d35", "atmel,sama5d3", "atmel,sama5";
|
||||
};
|
||||
59
arch/arm/dts/sama5d35ek.dts
Normal file
59
arch/arm/dts/sama5d35ek.dts
Normal file
@@ -0,0 +1,59 @@
|
||||
/*
|
||||
* sama5d35ek.dts - Device Tree file for SAMA5D35-EK board
|
||||
*
|
||||
* Copyright (C) 2013 Atmel,
|
||||
* 2013 Ludovic Desroches <ludovic.desroches@atmel.com>
|
||||
*
|
||||
* Licensed under GPLv2 or later.
|
||||
*/
|
||||
/dts-v1/;
|
||||
#include "sama5d35.dtsi"
|
||||
#include "sama5d3xmb.dtsi"
|
||||
|
||||
/ {
|
||||
model = "Atmel SAMA5D35-EK";
|
||||
compatible = "atmel,sama5d35ek", "atmel,sama5d3xmb", "atmel,sama5d3xcm", "atmel,sama5d35", "atmel,sama5d3", "atmel,sama5";
|
||||
|
||||
aliases {
|
||||
spi0 = &spi0;
|
||||
};
|
||||
|
||||
ahb {
|
||||
apb {
|
||||
spi0: spi@f0004000 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
can0: can@f000c000 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
i2c1: i2c@f0018000 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
macb0: ethernet@f0028000 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
isi: isi@f0034000 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
macb1: ethernet@f802c000 {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
gpio_keys {
|
||||
compatible = "gpio-keys";
|
||||
|
||||
pb_user1 {
|
||||
label = "pb_user1";
|
||||
gpios = <&pioE 27 GPIO_ACTIVE_HIGH>;
|
||||
linux,code = <0x100>;
|
||||
wakeup-source;
|
||||
};
|
||||
};
|
||||
};
|
||||
20
arch/arm/dts/sama5d36.dtsi
Normal file
20
arch/arm/dts/sama5d36.dtsi
Normal file
@@ -0,0 +1,20 @@
|
||||
/*
|
||||
* sama5d36.dtsi - Device Tree Include file for SAMA5D36 SoC
|
||||
*
|
||||
* Copyright (C) 2013 Atmel,
|
||||
* 2013 Josh Wu <josh.wu@atmel.com>
|
||||
*
|
||||
* Licensed under GPLv2 or later.
|
||||
*/
|
||||
#include "sama5d3.dtsi"
|
||||
#include "sama5d3_can.dtsi"
|
||||
#include "sama5d3_gmac.dtsi"
|
||||
#include "sama5d3_emac.dtsi"
|
||||
#include "sama5d3_lcd.dtsi"
|
||||
#include "sama5d3_mci2.dtsi"
|
||||
#include "sama5d3_tcb1.dtsi"
|
||||
#include "sama5d3_uart.dtsi"
|
||||
|
||||
/ {
|
||||
compatible = "atmel,sama5d36", "atmel,sama5d3", "atmel,sama5";
|
||||
};
|
||||
57
arch/arm/dts/sama5d36ek.dts
Normal file
57
arch/arm/dts/sama5d36ek.dts
Normal file
@@ -0,0 +1,57 @@
|
||||
/*
|
||||
* sama5d36ek.dts - Device Tree file for SAMA5D36-EK board
|
||||
*
|
||||
* Copyright (C) 2013 Atmel,
|
||||
* 2013 Josh Wu <josh.wu@atmel.com>
|
||||
*
|
||||
* Licensed under GPLv2 or later.
|
||||
*/
|
||||
/dts-v1/;
|
||||
#include "sama5d36.dtsi"
|
||||
#include "sama5d3xmb.dtsi"
|
||||
#include "sama5d3xdm.dtsi"
|
||||
|
||||
/ {
|
||||
model = "Atmel SAMA5D36-EK";
|
||||
compatible = "atmel,sama5d36ek", "atmel,sama5d3xmb", "atmel,sama5d3xcm", "atmel,sama5d36", "atmel,sama5d3", "atmel,sama5";
|
||||
|
||||
aliases {
|
||||
spi0 = &spi0;
|
||||
};
|
||||
|
||||
ahb {
|
||||
apb {
|
||||
spi0: spi@f0004000 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
ssc0: ssc@f0008000 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
can0: can@f000c000 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
i2c0: i2c@f0014000 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
i2c1: i2c@f0018000 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
macb0: ethernet@f0028000 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
macb1: ethernet@f802c000 {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
sound {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
55
arch/arm/dts/sama5d36ek_cmp.dts
Normal file
55
arch/arm/dts/sama5d36ek_cmp.dts
Normal file
@@ -0,0 +1,55 @@
|
||||
/*
|
||||
* sama5d36ek_cmp.dts - Device Tree file for SAMA5D36-EK CMP board
|
||||
*
|
||||
* Copyright (C) 2016 Atmel,
|
||||
*
|
||||
* Licensed under GPLv2 or later.
|
||||
*/
|
||||
/dts-v1/;
|
||||
#include "sama5d36.dtsi"
|
||||
#include "sama5d3xmb_cmp.dtsi"
|
||||
|
||||
/ {
|
||||
model = "Atmel SAMA5D36-EK";
|
||||
compatible = "atmel,sama5d36ek", "atmel,sama5d3xmb", "atmel,sama5d3xcm", "atmel,sama5d36", "atmel,sama5d3", "atmel,sama5";
|
||||
|
||||
aliases {
|
||||
spi0 = &spi0;
|
||||
};
|
||||
|
||||
ahb {
|
||||
apb {
|
||||
spi0: spi@f0004000 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
ssc0: ssc@f0008000 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
can0: can@f000c000 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
i2c0: i2c@f0014000 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
i2c1: i2c@f0018000 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
macb0: ethernet@f0028000 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
macb1: ethernet@f802c000 {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
sound {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
74
arch/arm/dts/sama5d3_can.dtsi
Normal file
74
arch/arm/dts/sama5d3_can.dtsi
Normal file
@@ -0,0 +1,74 @@
|
||||
/*
|
||||
* sama5d3_can.dtsi - Device Tree Include file for SAMA5D3 SoC with
|
||||
* CAN support
|
||||
*
|
||||
* Copyright (C) 2013 Boris BREZILLON <b.brezillon@overkiz.com>
|
||||
*
|
||||
* Licensed under GPLv2.
|
||||
*/
|
||||
|
||||
#include <dt-bindings/pinctrl/at91.h>
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
|
||||
/ {
|
||||
ahb {
|
||||
apb {
|
||||
pinctrl@fffff200 {
|
||||
can0 {
|
||||
pinctrl_can0_rx_tx: can0_rx_tx {
|
||||
atmel,pins =
|
||||
<AT91_PIOD 14 AT91_PERIPH_C AT91_PINCTRL_NONE /* PD14 periph C RX, conflicts with SCK0, SPI0_NPCS1 */
|
||||
AT91_PIOD 15 AT91_PERIPH_C AT91_PINCTRL_NONE>; /* PD15 periph C TX, conflicts with CTS0, SPI0_NPCS2 */
|
||||
};
|
||||
};
|
||||
|
||||
can1 {
|
||||
pinctrl_can1_rx_tx: can1_rx_tx {
|
||||
atmel,pins =
|
||||
<AT91_PIOB 14 AT91_PERIPH_B AT91_PINCTRL_NONE /* PB14 periph B RX, conflicts with GCRS */
|
||||
AT91_PIOB 15 AT91_PERIPH_B AT91_PINCTRL_NONE>; /* PB15 periph B TX, conflicts with GCOL */
|
||||
};
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
pmc: pmc@fffffc00 {
|
||||
periphck {
|
||||
can0_clk: can0_clk@40 {
|
||||
#clock-cells = <0>;
|
||||
reg = <40>;
|
||||
atmel,clk-output-range = <0 66000000>;
|
||||
};
|
||||
|
||||
can1_clk: can1_clk@41 {
|
||||
#clock-cells = <0>;
|
||||
reg = <41>;
|
||||
atmel,clk-output-range = <0 66000000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
can0: can@f000c000 {
|
||||
compatible = "atmel,at91sam9x5-can";
|
||||
reg = <0xf000c000 0x300>;
|
||||
interrupts = <40 IRQ_TYPE_LEVEL_HIGH 3>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_can0_rx_tx>;
|
||||
clocks = <&can0_clk>;
|
||||
clock-names = "can_clk";
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
can1: can@f8010000 {
|
||||
compatible = "atmel,at91sam9x5-can";
|
||||
reg = <0xf8010000 0x300>;
|
||||
interrupts = <41 IRQ_TYPE_LEVEL_HIGH 3>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_can1_rx_tx>;
|
||||
clocks = <&can1_clk>;
|
||||
clock-names = "can_clk";
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
55
arch/arm/dts/sama5d3_emac.dtsi
Normal file
55
arch/arm/dts/sama5d3_emac.dtsi
Normal file
@@ -0,0 +1,55 @@
|
||||
/*
|
||||
* sama5d3_emac.dtsi - Device Tree Include file for SAMA5D3 SoC with
|
||||
* Ethernet.
|
||||
*
|
||||
* Copyright (C) 2013 Boris BREZILLON <b.brezillon@overkiz.com>
|
||||
*
|
||||
* Licensed under GPLv2.
|
||||
*/
|
||||
|
||||
#include <dt-bindings/pinctrl/at91.h>
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
|
||||
/ {
|
||||
ahb {
|
||||
apb {
|
||||
pinctrl@fffff200 {
|
||||
macb1 {
|
||||
pinctrl_macb1_rmii: macb1_rmii-0 {
|
||||
atmel,pins =
|
||||
<AT91_PIOC 0 AT91_PERIPH_A AT91_PINCTRL_NONE /* PC0 periph A ETX0, conflicts with TIOA3 */
|
||||
AT91_PIOC 1 AT91_PERIPH_A AT91_PINCTRL_NONE /* PC1 periph A ETX1, conflicts with TIOB3 */
|
||||
AT91_PIOC 2 AT91_PERIPH_A AT91_PINCTRL_NONE /* PC2 periph A ERX0, conflicts with TCLK3 */
|
||||
AT91_PIOC 3 AT91_PERIPH_A AT91_PINCTRL_NONE /* PC3 periph A ERX1, conflicts with TIOA4 */
|
||||
AT91_PIOC 4 AT91_PERIPH_A AT91_PINCTRL_NONE /* PC4 periph A ETXEN, conflicts with TIOB4 */
|
||||
AT91_PIOC 5 AT91_PERIPH_A AT91_PINCTRL_NONE /* PC5 periph A ECRSDV,conflicts with TCLK4 */
|
||||
AT91_PIOC 6 AT91_PERIPH_A AT91_PINCTRL_NONE /* PC6 periph A ERXER, conflicts with TIOA5 */
|
||||
AT91_PIOC 7 AT91_PERIPH_A AT91_PINCTRL_NONE /* PC7 periph A EREFCK, conflicts with TIOB5 */
|
||||
AT91_PIOC 8 AT91_PERIPH_A AT91_PINCTRL_NONE /* PC8 periph A EMDC, conflicts with TCLK5 */
|
||||
AT91_PIOC 9 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* PC9 periph A EMDIO */
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
pmc: pmc@fffffc00 {
|
||||
periphck {
|
||||
macb1_clk: macb1_clk@35 {
|
||||
#clock-cells = <0>;
|
||||
reg = <35>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
macb1: ethernet@f802c000 {
|
||||
compatible = "cdns,at91sam9260-macb", "cdns,macb";
|
||||
reg = <0xf802c000 0x100>;
|
||||
interrupts = <35 IRQ_TYPE_LEVEL_HIGH 3>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_macb1_rmii>;
|
||||
clocks = <&macb1_clk>, <&macb1_clk>;
|
||||
clock-names = "hclk", "pclk";
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
88
arch/arm/dts/sama5d3_gmac.dtsi
Normal file
88
arch/arm/dts/sama5d3_gmac.dtsi
Normal file
@@ -0,0 +1,88 @@
|
||||
/*
|
||||
* sama5d3_gmac.dtsi - Device Tree Include file for SAMA5D3 SoC with
|
||||
* Gigabit Ethernet.
|
||||
*
|
||||
* Copyright (C) 2013 Boris BREZILLON <b.brezillon@overkiz.com>
|
||||
*
|
||||
* Licensed under GPLv2.
|
||||
*/
|
||||
|
||||
#include <dt-bindings/pinctrl/at91.h>
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
|
||||
/ {
|
||||
ahb {
|
||||
apb {
|
||||
pinctrl@fffff200 {
|
||||
macb0 {
|
||||
pinctrl_macb0_data_rgmii: macb0_data_rgmii {
|
||||
atmel,pins =
|
||||
<AT91_PIOB 0 AT91_PERIPH_A AT91_PINCTRL_NONE /* PB0 periph A GTX0, conflicts with PWMH0 */
|
||||
AT91_PIOB 1 AT91_PERIPH_A AT91_PINCTRL_NONE /* PB1 periph A GTX1, conflicts with PWML0 */
|
||||
AT91_PIOB 2 AT91_PERIPH_A AT91_PINCTRL_NONE /* PB2 periph A GTX2, conflicts with TK1 */
|
||||
AT91_PIOB 3 AT91_PERIPH_A AT91_PINCTRL_NONE /* PB3 periph A GTX3, conflicts with TF1 */
|
||||
AT91_PIOB 4 AT91_PERIPH_A AT91_PINCTRL_NONE /* PB4 periph A GRX0, conflicts with PWMH1 */
|
||||
AT91_PIOB 5 AT91_PERIPH_A AT91_PINCTRL_NONE /* PB5 periph A GRX1, conflicts with PWML1 */
|
||||
AT91_PIOB 6 AT91_PERIPH_A AT91_PINCTRL_NONE /* PB6 periph A GRX2, conflicts with TD1 */
|
||||
AT91_PIOB 7 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* PB7 periph A GRX3, conflicts with RK1 */
|
||||
};
|
||||
pinctrl_macb0_data_gmii: macb0_data_gmii {
|
||||
atmel,pins =
|
||||
<AT91_PIOB 19 AT91_PERIPH_B AT91_PINCTRL_NONE /* PB19 periph B GTX4, conflicts with MCI1_CDA */
|
||||
AT91_PIOB 20 AT91_PERIPH_B AT91_PINCTRL_NONE /* PB20 periph B GTX5, conflicts with MCI1_DA0 */
|
||||
AT91_PIOB 21 AT91_PERIPH_B AT91_PINCTRL_NONE /* PB21 periph B GTX6, conflicts with MCI1_DA1 */
|
||||
AT91_PIOB 22 AT91_PERIPH_B AT91_PINCTRL_NONE /* PB22 periph B GTX7, conflicts with MCI1_DA2 */
|
||||
AT91_PIOB 23 AT91_PERIPH_B AT91_PINCTRL_NONE /* PB23 periph B GRX4, conflicts with MCI1_DA3 */
|
||||
AT91_PIOB 24 AT91_PERIPH_B AT91_PINCTRL_NONE /* PB24 periph B GRX5, conflicts with MCI1_CK */
|
||||
AT91_PIOB 25 AT91_PERIPH_B AT91_PINCTRL_NONE /* PB25 periph B GRX6, conflicts with SCK1 */
|
||||
AT91_PIOB 26 AT91_PERIPH_B AT91_PINCTRL_NONE>; /* PB26 periph B GRX7, conflicts with CTS1 */
|
||||
};
|
||||
pinctrl_macb0_signal_rgmii: macb0_signal_rgmii {
|
||||
atmel,pins =
|
||||
<AT91_PIOB 8 AT91_PERIPH_A AT91_PINCTRL_NONE /* PB8 periph A GTXCK, conflicts with PWMH2 */
|
||||
AT91_PIOB 9 AT91_PERIPH_A AT91_PINCTRL_NONE /* PB9 periph A GTXEN, conflicts with PWML2 */
|
||||
AT91_PIOB 11 AT91_PERIPH_A AT91_PINCTRL_NONE /* PB11 periph A GRXCK, conflicts with RD1 */
|
||||
AT91_PIOB 13 AT91_PERIPH_A AT91_PINCTRL_NONE /* PB13 periph A GRXER, conflicts with PWML3 */
|
||||
AT91_PIOB 16 AT91_PERIPH_A AT91_PINCTRL_NONE /* PB16 periph A GMDC */
|
||||
AT91_PIOB 17 AT91_PERIPH_A AT91_PINCTRL_NONE /* PB17 periph A GMDIO */
|
||||
AT91_PIOB 18 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* PB18 periph A G125CK */
|
||||
};
|
||||
pinctrl_macb0_signal_gmii: macb0_signal_gmii {
|
||||
atmel,pins =
|
||||
<AT91_PIOB 9 AT91_PERIPH_A AT91_PINCTRL_NONE /* PB9 periph A GTXEN, conflicts with PWML2 */
|
||||
AT91_PIOB 10 AT91_PERIPH_A AT91_PINCTRL_NONE /* PB10 periph A GTXER, conflicts with RF1 */
|
||||
AT91_PIOB 11 AT91_PERIPH_A AT91_PINCTRL_NONE /* PB11 periph A GRXCK, conflicts with RD1 */
|
||||
AT91_PIOB 12 AT91_PERIPH_A AT91_PINCTRL_NONE /* PB12 periph A GRXDV, conflicts with PWMH3 */
|
||||
AT91_PIOB 13 AT91_PERIPH_A AT91_PINCTRL_NONE /* PB13 periph A GRXER, conflicts with PWML3 */
|
||||
AT91_PIOB 14 AT91_PERIPH_A AT91_PINCTRL_NONE /* PB14 periph A GCRS, conflicts with CANRX1 */
|
||||
AT91_PIOB 15 AT91_PERIPH_A AT91_PINCTRL_NONE /* PB15 periph A GCOL, conflicts with CANTX1 */
|
||||
AT91_PIOB 16 AT91_PERIPH_A AT91_PINCTRL_NONE /* PB16 periph A GMDC */
|
||||
AT91_PIOB 17 AT91_PERIPH_A AT91_PINCTRL_NONE /* PB17 periph A GMDIO */
|
||||
AT91_PIOB 27 AT91_PERIPH_B AT91_PINCTRL_NONE>; /* PB27 periph B G125CKO */
|
||||
};
|
||||
|
||||
};
|
||||
};
|
||||
|
||||
pmc: pmc@fffffc00 {
|
||||
periphck {
|
||||
macb0_clk: macb0_clk@34 {
|
||||
#clock-cells = <0>;
|
||||
reg = <34>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
macb0: ethernet@f0028000 {
|
||||
compatible = "atmel,sama5d3-gem";
|
||||
reg = <0xf0028000 0x100>;
|
||||
interrupts = <34 IRQ_TYPE_LEVEL_HIGH 3>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_macb0_data_rgmii &pinctrl_macb0_signal_rgmii>;
|
||||
clocks = <&macb0_clk>, <&macb0_clk>;
|
||||
clock-names = "hclk", "pclk";
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
215
arch/arm/dts/sama5d3_lcd.dtsi
Normal file
215
arch/arm/dts/sama5d3_lcd.dtsi
Normal file
@@ -0,0 +1,215 @@
|
||||
/*
|
||||
* sama5d3_lcd.dtsi - Device Tree Include file for SAMA5D3 SoC with
|
||||
* LCD support
|
||||
*
|
||||
* Copyright (C) 2013 Boris BREZILLON <b.brezillon@overkiz.com>
|
||||
*
|
||||
* Licensed under GPLv2.
|
||||
*/
|
||||
|
||||
#include <dt-bindings/pinctrl/at91.h>
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
|
||||
/ {
|
||||
ahb {
|
||||
apb {
|
||||
hlcdc: hlcdc@f0030000 {
|
||||
compatible = "atmel,sama5d3-hlcdc";
|
||||
reg = <0xf0030000 0x2000>;
|
||||
interrupts = <36 IRQ_TYPE_LEVEL_HIGH 0>;
|
||||
clocks = <&lcdc_clk>, <&lcdck>, <&clk32k>;
|
||||
clock-names = "periph_clk","sys_clk", "slow_clk";
|
||||
status = "disabled";
|
||||
|
||||
hlcdc-display-controller {
|
||||
compatible = "atmel,hlcdc-display-controller";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
port@0 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
reg = <0>;
|
||||
};
|
||||
};
|
||||
|
||||
hlcdc_pwm: hlcdc-pwm {
|
||||
compatible = "atmel,hlcdc-pwm";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_lcd_pwm>;
|
||||
#pwm-cells = <3>;
|
||||
};
|
||||
};
|
||||
|
||||
pinctrl@fffff200 {
|
||||
lcd {
|
||||
pinctrl_lcd_base: lcd-base-0 {
|
||||
atmel,pins =
|
||||
<AT91_PIOA 26 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDVSYNC */
|
||||
AT91_PIOA 27 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDHSYNC */
|
||||
AT91_PIOA 25 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDDISP */
|
||||
AT91_PIOA 29 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDDEN */
|
||||
AT91_PIOA 28 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* LCDPCK */
|
||||
};
|
||||
|
||||
pinctrl_lcd_pwm: lcd-pwm-0 {
|
||||
atmel,pins = <AT91_PIOA 24 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* LCDPWM */
|
||||
};
|
||||
|
||||
pinctrl_lcd_rgb444: lcd-rgb-0 {
|
||||
atmel,pins =
|
||||
<AT91_PIOA 0 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD0 pin */
|
||||
AT91_PIOA 1 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD1 pin */
|
||||
AT91_PIOA 2 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD2 pin */
|
||||
AT91_PIOA 3 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD3 pin */
|
||||
AT91_PIOA 4 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD4 pin */
|
||||
AT91_PIOA 5 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD5 pin */
|
||||
AT91_PIOA 6 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD6 pin */
|
||||
AT91_PIOA 7 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD7 pin */
|
||||
AT91_PIOA 8 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD8 pin */
|
||||
AT91_PIOA 9 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD9 pin */
|
||||
AT91_PIOA 10 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD10 pin */
|
||||
AT91_PIOA 11 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* LCDD11 pin */
|
||||
};
|
||||
|
||||
pinctrl_lcd_rgb565: lcd-rgb-1 {
|
||||
atmel,pins =
|
||||
<AT91_PIOA 0 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD0 pin */
|
||||
AT91_PIOA 1 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD1 pin */
|
||||
AT91_PIOA 2 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD2 pin */
|
||||
AT91_PIOA 3 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD3 pin */
|
||||
AT91_PIOA 4 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD4 pin */
|
||||
AT91_PIOA 5 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD5 pin */
|
||||
AT91_PIOA 6 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD6 pin */
|
||||
AT91_PIOA 7 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD7 pin */
|
||||
AT91_PIOA 8 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD8 pin */
|
||||
AT91_PIOA 9 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD9 pin */
|
||||
AT91_PIOA 10 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD10 pin */
|
||||
AT91_PIOA 11 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD11 pin */
|
||||
AT91_PIOA 12 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD12 pin */
|
||||
AT91_PIOA 13 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD13 pin */
|
||||
AT91_PIOA 14 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD14 pin */
|
||||
AT91_PIOA 15 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* LCDD15 pin */
|
||||
};
|
||||
|
||||
pinctrl_lcd_rgb666: lcd-rgb-2 {
|
||||
atmel,pins =
|
||||
<AT91_PIOA 0 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD0 pin */
|
||||
AT91_PIOA 1 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD1 pin */
|
||||
AT91_PIOA 2 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD2 pin */
|
||||
AT91_PIOA 3 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD3 pin */
|
||||
AT91_PIOA 4 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD4 pin */
|
||||
AT91_PIOA 5 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD5 pin */
|
||||
AT91_PIOA 6 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD6 pin */
|
||||
AT91_PIOA 7 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD7 pin */
|
||||
AT91_PIOA 8 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD8 pin */
|
||||
AT91_PIOA 9 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD9 pin */
|
||||
AT91_PIOA 10 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD10 pin */
|
||||
AT91_PIOA 11 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD11 pin */
|
||||
AT91_PIOA 12 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD12 pin */
|
||||
AT91_PIOA 13 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD13 pin */
|
||||
AT91_PIOA 14 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD14 pin */
|
||||
AT91_PIOA 15 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD15 pin */
|
||||
AT91_PIOA 16 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD16 pin */
|
||||
AT91_PIOA 17 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* LCDD17 pin */
|
||||
};
|
||||
|
||||
pinctrl_lcd_rgb666_alt: lcd-rgb-2-alt {
|
||||
atmel,pins =
|
||||
<AT91_PIOA 0 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD0 pin */
|
||||
AT91_PIOA 1 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD1 pin */
|
||||
AT91_PIOA 2 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD2 pin */
|
||||
AT91_PIOA 3 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD3 pin */
|
||||
AT91_PIOA 4 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD4 pin */
|
||||
AT91_PIOA 5 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD5 pin */
|
||||
AT91_PIOA 6 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD6 pin */
|
||||
AT91_PIOA 7 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD7 pin */
|
||||
AT91_PIOA 8 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD8 pin */
|
||||
AT91_PIOA 9 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD9 pin */
|
||||
AT91_PIOA 10 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD10 pin */
|
||||
AT91_PIOA 11 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD11 pin */
|
||||
AT91_PIOA 12 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD12 pin */
|
||||
AT91_PIOA 13 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD13 pin */
|
||||
AT91_PIOA 14 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD14 pin */
|
||||
AT91_PIOA 15 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD15 pin */
|
||||
AT91_PIOC 14 AT91_PERIPH_C AT91_PINCTRL_NONE /* LCDD16 pin */
|
||||
AT91_PIOC 13 AT91_PERIPH_C AT91_PINCTRL_NONE>; /* LCDD17 pin */
|
||||
};
|
||||
|
||||
pinctrl_lcd_rgb888: lcd-rgb-3 {
|
||||
atmel,pins =
|
||||
<AT91_PIOA 0 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD0 pin */
|
||||
AT91_PIOA 1 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD1 pin */
|
||||
AT91_PIOA 2 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD2 pin */
|
||||
AT91_PIOA 3 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD3 pin */
|
||||
AT91_PIOA 4 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD4 pin */
|
||||
AT91_PIOA 5 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD5 pin */
|
||||
AT91_PIOA 6 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD6 pin */
|
||||
AT91_PIOA 7 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD7 pin */
|
||||
AT91_PIOA 8 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD8 pin */
|
||||
AT91_PIOA 9 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD9 pin */
|
||||
AT91_PIOA 10 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD10 pin */
|
||||
AT91_PIOA 11 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD11 pin */
|
||||
AT91_PIOA 12 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD12 pin */
|
||||
AT91_PIOA 13 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD13 pin */
|
||||
AT91_PIOA 14 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD14 pin */
|
||||
AT91_PIOA 15 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD15 pin */
|
||||
AT91_PIOA 16 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD16 pin */
|
||||
AT91_PIOA 17 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD17 pin */
|
||||
AT91_PIOA 18 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD18 pin */
|
||||
AT91_PIOA 19 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD19 pin */
|
||||
AT91_PIOA 20 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD20 pin */
|
||||
AT91_PIOA 21 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD21 pin */
|
||||
AT91_PIOA 22 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD22 pin */
|
||||
AT91_PIOA 23 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* LCDD23 pin */
|
||||
};
|
||||
|
||||
pinctrl_lcd_rgb888_alt: lcd-rgb-3-alt {
|
||||
atmel,pins =
|
||||
<AT91_PIOA 0 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD0 pin */
|
||||
AT91_PIOA 1 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD1 pin */
|
||||
AT91_PIOA 2 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD2 pin */
|
||||
AT91_PIOA 3 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD3 pin */
|
||||
AT91_PIOA 4 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD4 pin */
|
||||
AT91_PIOA 5 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD5 pin */
|
||||
AT91_PIOA 6 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD6 pin */
|
||||
AT91_PIOA 7 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD7 pin */
|
||||
AT91_PIOA 8 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD8 pin */
|
||||
AT91_PIOA 9 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD9 pin */
|
||||
AT91_PIOA 10 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD10 pin */
|
||||
AT91_PIOA 11 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD11 pin */
|
||||
AT91_PIOA 12 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD12 pin */
|
||||
AT91_PIOA 13 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD13 pin */
|
||||
AT91_PIOA 14 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD14 pin */
|
||||
AT91_PIOA 15 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD15 pin */
|
||||
AT91_PIOC 14 AT91_PERIPH_C AT91_PINCTRL_NONE /* LCDD16 pin */
|
||||
AT91_PIOC 13 AT91_PERIPH_C AT91_PINCTRL_NONE /* LCDD17 pin */
|
||||
AT91_PIOC 12 AT91_PERIPH_C AT91_PINCTRL_NONE /* LCDD18 pin */
|
||||
AT91_PIOC 11 AT91_PERIPH_C AT91_PINCTRL_NONE /* LCDD19 pin */
|
||||
AT91_PIOC 10 AT91_PERIPH_C AT91_PINCTRL_NONE /* LCDD20 pin */
|
||||
AT91_PIOC 15 AT91_PERIPH_C AT91_PINCTRL_NONE /* LCDD21 pin */
|
||||
AT91_PIOE 27 AT91_PERIPH_C AT91_PINCTRL_NONE /* LCDD22 pin */
|
||||
AT91_PIOE 28 AT91_PERIPH_C AT91_PINCTRL_NONE>; /* LCDD23 pin */
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
pmc: pmc@fffffc00 {
|
||||
periphck {
|
||||
lcdc_clk: lcdc_clk@36 {
|
||||
#clock-cells = <0>;
|
||||
reg = <36>;
|
||||
};
|
||||
};
|
||||
|
||||
systemck {
|
||||
lcdck: lcdck@3 {
|
||||
#clock-cells = <0>;
|
||||
reg = <3>;
|
||||
clocks = <&mck>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
59
arch/arm/dts/sama5d3_mci2.dtsi
Normal file
59
arch/arm/dts/sama5d3_mci2.dtsi
Normal file
@@ -0,0 +1,59 @@
|
||||
/*
|
||||
* sama5d3_mci2.dtsi - Device Tree Include file for SAMA5D3 SoC with
|
||||
* 3 MMC ports
|
||||
*
|
||||
* Copyright (C) 2013 Boris BREZILLON <b.brezillon@overkiz.com>
|
||||
*
|
||||
* Licensed under GPLv2.
|
||||
*/
|
||||
|
||||
#include <dt-bindings/pinctrl/at91.h>
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
#include <dt-bindings/clock/at91.h>
|
||||
|
||||
/ {
|
||||
ahb {
|
||||
apb {
|
||||
pinctrl@fffff200 {
|
||||
mmc2 {
|
||||
pinctrl_mmc2_clk_cmd_dat0: mmc2_clk_cmd_dat0 {
|
||||
atmel,pins =
|
||||
<AT91_PIOC 15 AT91_PERIPH_A AT91_PINCTRL_NONE /* PC15 periph A MCI2_CK, conflicts with PCK2 */
|
||||
AT91_PIOC 10 AT91_PERIPH_A AT91_PINCTRL_PULL_UP /* PC10 periph A MCI2_CDA with pullup */
|
||||
AT91_PIOC 11 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>; /* PC11 periph A MCI2_DA0 with pullup */
|
||||
};
|
||||
pinctrl_mmc2_dat1_3: mmc2_dat1_3 {
|
||||
atmel,pins =
|
||||
<AT91_PIOC 12 AT91_PERIPH_A AT91_PINCTRL_PULL_UP /* PC12 periph A MCI2_DA1 with pullup, conflicts with TIOA1 */
|
||||
AT91_PIOC 13 AT91_PERIPH_A AT91_PINCTRL_PULL_UP /* PC13 periph A MCI2_DA2 with pullup, conflicts with TIOB1 */
|
||||
AT91_PIOC 14 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>; /* PC14 periph A MCI2_DA3 with pullup, conflicts with TCLK1 */
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
pmc: pmc@fffffc00 {
|
||||
periphck {
|
||||
mci2_clk: mci2_clk@23 {
|
||||
#clock-cells = <0>;
|
||||
reg = <23>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
mmc2: mmc@f8004000 {
|
||||
compatible = "atmel,hsmci";
|
||||
reg = <0xf8004000 0x600>;
|
||||
interrupts = <23 IRQ_TYPE_LEVEL_HIGH 0>;
|
||||
dmas = <&dma1 2 AT91_DMA_CFG_PER_ID(1)>;
|
||||
dma-names = "rxtx";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_mmc2_clk_cmd_dat0 &pinctrl_mmc2_dat1_3>;
|
||||
clocks = <&mci2_clk>;
|
||||
clock-names = "mci_clk";
|
||||
status = "disabled";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
39
arch/arm/dts/sama5d3_tcb1.dtsi
Normal file
39
arch/arm/dts/sama5d3_tcb1.dtsi
Normal file
@@ -0,0 +1,39 @@
|
||||
/*
|
||||
* sama5d3_tcb1.dtsi - Device Tree Include file for SAMA5D3 SoC with
|
||||
* 2 TC blocks.
|
||||
*
|
||||
* Copyright (C) 2013 Boris BREZILLON <b.brezillon@overkiz.com>
|
||||
*
|
||||
* Licensed under GPLv2.
|
||||
*/
|
||||
|
||||
#include <dt-bindings/pinctrl/at91.h>
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
#include <dt-bindings/clock/at91.h>
|
||||
|
||||
/ {
|
||||
aliases {
|
||||
tcb1 = &tcb1;
|
||||
};
|
||||
|
||||
ahb {
|
||||
apb {
|
||||
pmc: pmc@fffffc00 {
|
||||
periphck {
|
||||
tcb1_clk: tcb1_clk@27 {
|
||||
#clock-cells = <0>;
|
||||
reg = <27>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
tcb1: timer@f8014000 {
|
||||
compatible = "atmel,at91sam9x5-tcb";
|
||||
reg = <0xf8014000 0x100>;
|
||||
interrupts = <27 IRQ_TYPE_LEVEL_HIGH 0>;
|
||||
clocks = <&tcb1_clk>, <&clk32k>;
|
||||
clock-names = "t0_clk", "slow_clk";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
79
arch/arm/dts/sama5d3_uart.dtsi
Normal file
79
arch/arm/dts/sama5d3_uart.dtsi
Normal file
@@ -0,0 +1,79 @@
|
||||
/*
|
||||
* sama5d3_uart.dtsi - Device Tree Include file for SAMA5D3 SoC with
|
||||
* UART support
|
||||
*
|
||||
* Copyright (C) 2013 Boris BREZILLON <b.brezillon@overkiz.com>
|
||||
*
|
||||
* Licensed under GPLv2.
|
||||
*/
|
||||
|
||||
#include <dt-bindings/pinctrl/at91.h>
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
#include <dt-bindings/clock/at91.h>
|
||||
|
||||
/ {
|
||||
aliases {
|
||||
serial5 = &uart0;
|
||||
serial6 = &uart1;
|
||||
};
|
||||
|
||||
ahb {
|
||||
apb {
|
||||
pinctrl@fffff200 {
|
||||
uart0 {
|
||||
pinctrl_uart0: uart0-0 {
|
||||
atmel,pins =
|
||||
<AT91_PIOC 29 AT91_PERIPH_A AT91_PINCTRL_NONE /* PC29 periph A, conflicts with PWMFI2, ISI_D8 */
|
||||
AT91_PIOC 30 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>; /* PC30 periph A with pullup, conflicts with ISI_PCK */
|
||||
};
|
||||
};
|
||||
|
||||
uart1 {
|
||||
pinctrl_uart1: uart1-0 {
|
||||
atmel,pins =
|
||||
<AT91_PIOA 30 AT91_PERIPH_B AT91_PINCTRL_NONE /* PA30 periph B, conflicts with TWD0, ISI_VSYNC */
|
||||
AT91_PIOA 31 AT91_PERIPH_B AT91_PINCTRL_PULL_UP>; /* PA31 periph B with pullup, conflicts with TWCK0, ISI_HSYNC */
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
pmc: pmc@fffffc00 {
|
||||
periphck {
|
||||
uart0_clk: uart0_clk@16 {
|
||||
#clock-cells = <0>;
|
||||
reg = <16>;
|
||||
atmel,clk-output-range = <0 66000000>;
|
||||
};
|
||||
|
||||
uart1_clk: uart1_clk@17 {
|
||||
#clock-cells = <0>;
|
||||
reg = <17>;
|
||||
atmel,clk-output-range = <0 66000000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
uart0: serial@f0024000 {
|
||||
compatible = "atmel,at91sam9260-usart";
|
||||
reg = <0xf0024000 0x200>;
|
||||
interrupts = <16 IRQ_TYPE_LEVEL_HIGH 5>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_uart0>;
|
||||
clocks = <&uart0_clk>;
|
||||
clock-names = "usart";
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
uart1: serial@f8028000 {
|
||||
compatible = "atmel,at91sam9260-usart";
|
||||
reg = <0xf8028000 0x200>;
|
||||
interrupts = <17 IRQ_TYPE_LEVEL_HIGH 5>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_uart1>;
|
||||
clocks = <&uart1_clk>;
|
||||
clock-names = "usart";
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
123
arch/arm/dts/sama5d3xcm.dtsi
Normal file
123
arch/arm/dts/sama5d3xcm.dtsi
Normal file
@@ -0,0 +1,123 @@
|
||||
/*
|
||||
* sama5d3xcm.dtsi - Device Tree Include file for SAMA5D3x CPU Module
|
||||
*
|
||||
* Copyright (C) 2013 Atmel,
|
||||
* 2013 Ludovic Desroches <ludovic.desroches@atmel.com>
|
||||
*
|
||||
* Licensed under GPLv2 or later.
|
||||
*/
|
||||
|
||||
/ {
|
||||
compatible = "atmel,sama5d3xcm", "atmel,sama5d3", "atmel,sama5";
|
||||
|
||||
chosen {
|
||||
bootargs = "rootfstype=ubifs ubi.mtd=5 root=ubi0:rootfs";
|
||||
stdout-path = "serial0:115200n8";
|
||||
};
|
||||
|
||||
memory {
|
||||
reg = <0x20000000 0x20000000>;
|
||||
};
|
||||
|
||||
clocks {
|
||||
slow_xtal {
|
||||
clock-frequency = <32768>;
|
||||
};
|
||||
|
||||
main_xtal {
|
||||
clock-frequency = <12000000>;
|
||||
};
|
||||
};
|
||||
|
||||
ahb {
|
||||
apb {
|
||||
spi0: spi@f0004000 {
|
||||
cs-gpios = <&pioD 13 0>, <0>, <0>, <0>;
|
||||
};
|
||||
|
||||
macb0: ethernet@f0028000 {
|
||||
phy-mode = "rgmii";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
ethernet-phy@1 {
|
||||
reg = <0x1>;
|
||||
interrupt-parent = <&pioB>;
|
||||
interrupts = <25 IRQ_TYPE_EDGE_FALLING>;
|
||||
txen-skew-ps = <800>;
|
||||
txc-skew-ps = <3000>;
|
||||
rxdv-skew-ps = <400>;
|
||||
rxc-skew-ps = <3000>;
|
||||
rxd0-skew-ps = <400>;
|
||||
rxd1-skew-ps = <400>;
|
||||
rxd2-skew-ps = <400>;
|
||||
rxd3-skew-ps = <400>;
|
||||
};
|
||||
|
||||
ethernet-phy@7 {
|
||||
reg = <0x7>;
|
||||
interrupt-parent = <&pioB>;
|
||||
interrupts = <25 IRQ_TYPE_EDGE_FALLING>;
|
||||
txen-skew-ps = <800>;
|
||||
txc-skew-ps = <3000>;
|
||||
rxdv-skew-ps = <400>;
|
||||
rxc-skew-ps = <3000>;
|
||||
rxd0-skew-ps = <400>;
|
||||
rxd1-skew-ps = <400>;
|
||||
rxd2-skew-ps = <400>;
|
||||
rxd3-skew-ps = <400>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
nand0: nand@60000000 {
|
||||
nand-bus-width = <8>;
|
||||
nand-ecc-mode = "hw";
|
||||
atmel,has-pmecc;
|
||||
atmel,pmecc-cap = <4>;
|
||||
atmel,pmecc-sector-size = <512>;
|
||||
nand-on-flash-bbt;
|
||||
status = "okay";
|
||||
|
||||
at91bootstrap@0 {
|
||||
label = "at91bootstrap";
|
||||
reg = <0x0 0x40000>;
|
||||
};
|
||||
|
||||
bootloader@40000 {
|
||||
label = "bootloader";
|
||||
reg = <0x40000 0x80000>;
|
||||
};
|
||||
|
||||
bootloaderenv@c0000 {
|
||||
label = "bootloader env";
|
||||
reg = <0xc0000 0xc0000>;
|
||||
};
|
||||
|
||||
dtb@180000 {
|
||||
label = "device tree";
|
||||
reg = <0x180000 0x80000>;
|
||||
};
|
||||
|
||||
kernel@200000 {
|
||||
label = "kernel";
|
||||
reg = <0x200000 0x600000>;
|
||||
};
|
||||
|
||||
rootfs@800000 {
|
||||
label = "rootfs";
|
||||
reg = <0x800000 0x0f800000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
leds {
|
||||
compatible = "gpio-leds";
|
||||
|
||||
d2 {
|
||||
label = "d2";
|
||||
gpios = <&pioE 25 GPIO_ACTIVE_LOW>; /* PE25, conflicts with A25, RXD2 */
|
||||
linux,default-trigger = "heartbeat";
|
||||
};
|
||||
};
|
||||
};
|
||||
166
arch/arm/dts/sama5d3xcm_cmp.dtsi
Normal file
166
arch/arm/dts/sama5d3xcm_cmp.dtsi
Normal file
@@ -0,0 +1,166 @@
|
||||
/*
|
||||
* sama5d3xcm_cmp.dtsi - Device Tree Include file for SAMA5D36 CMP CPU Module
|
||||
*
|
||||
* Copyright (C) 2016 Atmel,
|
||||
*
|
||||
* Licensed under GPLv2 or later.
|
||||
*/
|
||||
|
||||
/ {
|
||||
compatible = "atmel,sama5d3xcm", "atmel,sama5d3", "atmel,sama5";
|
||||
|
||||
chosen {
|
||||
bootargs = "rootfstype=ubifs ubi.mtd=5 root=ubi0:rootfs";
|
||||
stdout-path = "serial0:115200n8";
|
||||
};
|
||||
|
||||
memory {
|
||||
reg = <0x20000000 0x20000000>;
|
||||
};
|
||||
|
||||
clocks {
|
||||
slow_xtal {
|
||||
clock-frequency = <32768>;
|
||||
};
|
||||
|
||||
main_xtal {
|
||||
clock-frequency = <12000000>;
|
||||
};
|
||||
};
|
||||
|
||||
ahb {
|
||||
apb {
|
||||
spi0: spi@f0004000 {
|
||||
cs-gpios = <&pioD 13 0>, <0>, <0>, <0>;
|
||||
};
|
||||
|
||||
macb0: ethernet@f0028000 {
|
||||
phy-mode = "rgmii";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
ethernet-phy@1 {
|
||||
reg = <0x1>;
|
||||
interrupt-parent = <&pioB>;
|
||||
interrupts = <25 IRQ_TYPE_EDGE_FALLING>;
|
||||
txen-skew-ps = <800>;
|
||||
txc-skew-ps = <3000>;
|
||||
rxdv-skew-ps = <400>;
|
||||
rxc-skew-ps = <3000>;
|
||||
rxd0-skew-ps = <400>;
|
||||
rxd1-skew-ps = <400>;
|
||||
rxd2-skew-ps = <400>;
|
||||
rxd3-skew-ps = <400>;
|
||||
};
|
||||
|
||||
ethernet-phy@7 {
|
||||
reg = <0x7>;
|
||||
interrupt-parent = <&pioB>;
|
||||
interrupts = <25 IRQ_TYPE_EDGE_FALLING>;
|
||||
txen-skew-ps = <800>;
|
||||
txc-skew-ps = <3000>;
|
||||
rxdv-skew-ps = <400>;
|
||||
rxc-skew-ps = <3000>;
|
||||
rxd0-skew-ps = <400>;
|
||||
rxd1-skew-ps = <400>;
|
||||
rxd2-skew-ps = <400>;
|
||||
rxd3-skew-ps = <400>;
|
||||
};
|
||||
};
|
||||
|
||||
i2c1: i2c@f0018000 {
|
||||
pmic: act8865@5b {
|
||||
compatible = "active-semi,act8865";
|
||||
reg = <0x5b>;
|
||||
status = "disabled";
|
||||
|
||||
regulators {
|
||||
vcc_1v8_reg: DCDC_REG1 {
|
||||
regulator-name = "VCC_1V8";
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
vcc_1v2_reg: DCDC_REG2 {
|
||||
regulator-name = "VCC_1V2";
|
||||
regulator-min-microvolt = <1100000>;
|
||||
regulator-max-microvolt = <1300000>;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
vcc_3v3_reg: DCDC_REG3 {
|
||||
regulator-name = "VCC_3V3";
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
vddana_reg: LDO_REG1 {
|
||||
regulator-name = "VDDANA";
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
vddfuse_reg: LDO_REG2 {
|
||||
regulator-name = "FUSE_2V5";
|
||||
regulator-min-microvolt = <2500000>;
|
||||
regulator-max-microvolt = <2500000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
nand0: nand@60000000 {
|
||||
nand-bus-width = <8>;
|
||||
nand-ecc-mode = "hw";
|
||||
atmel,has-pmecc;
|
||||
atmel,pmecc-cap = <4>;
|
||||
atmel,pmecc-sector-size = <512>;
|
||||
nand-on-flash-bbt;
|
||||
status = "okay";
|
||||
|
||||
at91bootstrap@0 {
|
||||
label = "at91bootstrap";
|
||||
reg = <0x0 0x40000>;
|
||||
};
|
||||
|
||||
bootloader@40000 {
|
||||
label = "bootloader";
|
||||
reg = <0x40000 0x80000>;
|
||||
};
|
||||
|
||||
bootloaderenv@c0000 {
|
||||
label = "bootloader env";
|
||||
reg = <0xc0000 0xc0000>;
|
||||
};
|
||||
|
||||
dtb@180000 {
|
||||
label = "device tree";
|
||||
reg = <0x180000 0x80000>;
|
||||
};
|
||||
|
||||
kernel@200000 {
|
||||
label = "kernel";
|
||||
reg = <0x200000 0x600000>;
|
||||
};
|
||||
|
||||
rootfs@800000 {
|
||||
label = "rootfs";
|
||||
reg = <0x800000 0x0f800000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
leds {
|
||||
compatible = "gpio-leds";
|
||||
|
||||
d2 {
|
||||
label = "d2";
|
||||
gpios = <&pioE 25 GPIO_ACTIVE_LOW>; /* PE25, conflicts with A25, RXD2 */
|
||||
linux,default-trigger = "heartbeat";
|
||||
};
|
||||
};
|
||||
};
|
||||
41
arch/arm/dts/sama5d3xdm.dtsi
Normal file
41
arch/arm/dts/sama5d3xdm.dtsi
Normal file
@@ -0,0 +1,41 @@
|
||||
/*
|
||||
* sama5d3dm.dtsi - Device Tree file for SAMA5 display module
|
||||
*
|
||||
* Copyright (C) 2013 Atmel,
|
||||
* 2013 Ludovic Desroches <ludovic.desroches@atmel.com>
|
||||
*
|
||||
* Licensed under GPLv2 or later.
|
||||
*/
|
||||
|
||||
/ {
|
||||
ahb {
|
||||
apb {
|
||||
i2c1: i2c@f0018000 {
|
||||
qt1070: keyboard@1b {
|
||||
compatible = "qt1070";
|
||||
reg = <0x1b>;
|
||||
interrupt-parent = <&pioE>;
|
||||
interrupts = <31 0x0>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_qt1070_irq>;
|
||||
wakeup-source;
|
||||
};
|
||||
};
|
||||
|
||||
adc0: adc@f8018000 {
|
||||
atmel,adc-ts-wires = <4>;
|
||||
atmel,adc-ts-pressure-threshold = <10000>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
pinctrl@fffff200 {
|
||||
board {
|
||||
pinctrl_qt1070_irq: qt1070_irq {
|
||||
atmel,pins =
|
||||
<AT91_PIOE 31 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>; /* PE31 GPIO with pull up deglith */
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
234
arch/arm/dts/sama5d3xmb.dtsi
Normal file
234
arch/arm/dts/sama5d3xmb.dtsi
Normal file
@@ -0,0 +1,234 @@
|
||||
/*
|
||||
* sama5d3xmb.dts - Device Tree file for SAMA5D3x mother board
|
||||
*
|
||||
* Copyright (C) 2013 Atmel,
|
||||
* 2013 Ludovic Desroches <ludovic.desroches@atmel.com>
|
||||
*
|
||||
* Licensed under GPLv2 or later.
|
||||
*/
|
||||
#include "sama5d3xcm.dtsi"
|
||||
|
||||
/ {
|
||||
compatible = "atmel,sama5d3xmb", "atmel,sama5d3xcm", "atmel,sama5d3", "atmel,sama5";
|
||||
|
||||
chosen {
|
||||
u-boot,dm-pre-reloc;
|
||||
stdout-path = &dbgu;
|
||||
};
|
||||
|
||||
ahb {
|
||||
apb {
|
||||
mmc0: mmc@f0000000 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_mmc0_clk_cmd_dat0 &pinctrl_mmc0_dat1_3 &pinctrl_mmc0_cd>;
|
||||
status = "okay";
|
||||
u-boot,dm-pre-reloc;
|
||||
slot@0 {
|
||||
reg = <0>;
|
||||
bus-width = <4>;
|
||||
cd-gpios = <&pioD 17 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
};
|
||||
|
||||
spi0: spi@f0004000 {
|
||||
dmas = <0>, <0>; /* Do not use DMA for spi0 */
|
||||
u-boot,dm-pre-reloc;
|
||||
|
||||
spi_flash@0 {
|
||||
compatible = "spi-flash";
|
||||
spi-max-frequency = <50000000>;
|
||||
reg = <0>;
|
||||
u-boot,dm-pre-reloc;
|
||||
};
|
||||
};
|
||||
|
||||
ssc0: ssc@f0008000 {
|
||||
atmel,clk-from-rk-pin;
|
||||
};
|
||||
|
||||
/*
|
||||
* i2c0 conflicts with ISI:
|
||||
* disable it to allow the use of ISI
|
||||
* can not enable audio when i2c0 disabled
|
||||
*/
|
||||
i2c0: i2c@f0014000 {
|
||||
wm8904: wm8904@1a {
|
||||
compatible = "wlf,wm8904";
|
||||
reg = <0x1a>;
|
||||
clocks = <&pck0>;
|
||||
clock-names = "mclk";
|
||||
};
|
||||
};
|
||||
|
||||
i2c1: i2c@f0018000 {
|
||||
ov2640: camera@0x30 {
|
||||
compatible = "ovti,ov2640";
|
||||
reg = <0x30>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_pck1_as_isi_mck &pinctrl_sensor_power &pinctrl_sensor_reset>;
|
||||
resetb-gpios = <&pioE 24 GPIO_ACTIVE_LOW>;
|
||||
pwdn-gpios = <&pioE 29 GPIO_ACTIVE_HIGH>;
|
||||
/* use pck1 for the master clock of ov2640 */
|
||||
clocks = <&pck1>;
|
||||
clock-names = "xvclk";
|
||||
assigned-clocks = <&pck1>;
|
||||
assigned-clock-rates = <25000000>;
|
||||
|
||||
port {
|
||||
ov2640_0: endpoint {
|
||||
remote-endpoint = <&isi_0>;
|
||||
bus-width = <8>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
usart1: serial@f0020000 {
|
||||
dmas = <0>, <0>; /* Do not use DMA for usart1 */
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_usart1 &pinctrl_usart1_rts_cts>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
isi: isi@f0034000 {
|
||||
port {
|
||||
isi_0: endpoint {
|
||||
remote-endpoint = <&ov2640_0>;
|
||||
bus-width = <8>;
|
||||
vsync-active = <1>;
|
||||
hsync-active = <1>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
mmc1: mmc@f8000000 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_mmc1_clk_cmd_dat0 &pinctrl_mmc1_dat1_3 &pinctrl_mmc1_cd>;
|
||||
status = "okay";
|
||||
u-boot,dm-pre-reloc;
|
||||
slot@0 {
|
||||
reg = <0>;
|
||||
bus-width = <4>;
|
||||
cd-gpios = <&pioD 18 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
};
|
||||
|
||||
adc0: adc@f8018000 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <
|
||||
&pinctrl_adc0_adtrg
|
||||
&pinctrl_adc0_ad0
|
||||
&pinctrl_adc0_ad1
|
||||
&pinctrl_adc0_ad2
|
||||
&pinctrl_adc0_ad3
|
||||
&pinctrl_adc0_ad4
|
||||
>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
macb1: ethernet@f802c000 {
|
||||
phy-mode = "rmii";
|
||||
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
phy0: ethernet-phy@1 {
|
||||
/*interrupt-parent = <&pioE>;*/
|
||||
/*interrupts = <30 IRQ_TYPE_EDGE_FALLING>;*/
|
||||
reg = <1>;
|
||||
};
|
||||
};
|
||||
|
||||
pinctrl@fffff200 {
|
||||
board {
|
||||
u-boot,dm-pre-reloc;
|
||||
pinctrl_mmc0_cd: mmc0_cd {
|
||||
u-boot,dm-pre-reloc;
|
||||
atmel,pins =
|
||||
<AT91_PIOD 17 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>; /* PD17 GPIO with pullup deglitch */
|
||||
};
|
||||
|
||||
pinctrl_mmc1_cd: mmc1_cd {
|
||||
u-boot,dm-pre-reloc;
|
||||
atmel,pins =
|
||||
<AT91_PIOD 18 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>; /* PD18 GPIO with pullup deglitch */
|
||||
};
|
||||
|
||||
pinctrl_pck0_as_audio_mck: pck0_as_audio_mck {
|
||||
atmel,pins =
|
||||
<AT91_PIOD 30 AT91_PERIPH_B AT91_PINCTRL_NONE>; /* PD30 periph B */
|
||||
};
|
||||
|
||||
pinctrl_pck1_as_isi_mck: pck1_as_isi_mck-0 {
|
||||
atmel,pins =
|
||||
<AT91_PIOD 31 AT91_PERIPH_B AT91_PINCTRL_NONE>; /* PD31 periph B ISI_MCK */
|
||||
};
|
||||
|
||||
pinctrl_sensor_reset: sensor_reset-0 {
|
||||
atmel,pins =
|
||||
<AT91_PIOE 24 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>; /* PE24 gpio */
|
||||
};
|
||||
|
||||
pinctrl_sensor_power: sensor_power-0 {
|
||||
atmel,pins =
|
||||
<AT91_PIOE 29 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>; /* PE29 gpio */
|
||||
};
|
||||
|
||||
pinctrl_usba_vbus: usba_vbus {
|
||||
atmel,pins =
|
||||
<AT91_PIOD 29 AT91_PERIPH_GPIO AT91_PINCTRL_DEGLITCH>; /* PD29 GPIO with deglitch */
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
dbgu: serial@ffffee00 {
|
||||
dmas = <0>, <0>; /* Do not use DMA for dbgu */
|
||||
status = "okay";
|
||||
u-boot,dm-pre-reloc;
|
||||
};
|
||||
|
||||
watchdog@fffffe40 {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
|
||||
usb0: gadget@00500000 {
|
||||
atmel,vbus-gpio = <&pioD 29 GPIO_ACTIVE_HIGH>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_usba_vbus>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
usb1: ohci@00600000 {
|
||||
num-ports = <3>;
|
||||
atmel,vbus-gpio = <&pioD 25 GPIO_ACTIVE_HIGH
|
||||
&pioD 26 GPIO_ACTIVE_LOW
|
||||
&pioD 27 GPIO_ACTIVE_LOW
|
||||
>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
usb2: ehci@00700000 {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
|
||||
sound {
|
||||
compatible = "atmel,asoc-wm8904";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_pck0_as_audio_mck>;
|
||||
|
||||
atmel,model = "wm8904 @ SAMA5D3EK";
|
||||
atmel,audio-routing =
|
||||
"Headphone Jack", "HPOUTL",
|
||||
"Headphone Jack", "HPOUTR",
|
||||
"IN2L", "Line In Jack",
|
||||
"IN2R", "Line In Jack",
|
||||
"Mic", "MICBIAS",
|
||||
"IN1L", "Mic";
|
||||
|
||||
atmel,ssc-controller = <&ssc0>;
|
||||
atmel,audio-codec = <&wm8904>;
|
||||
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
236
arch/arm/dts/sama5d3xmb_cmp.dtsi
Normal file
236
arch/arm/dts/sama5d3xmb_cmp.dtsi
Normal file
@@ -0,0 +1,236 @@
|
||||
/*
|
||||
* sama5d3xmb_cmp.dts - Device Tree file for SAMA5D3x CMP mother board
|
||||
*
|
||||
* Copyright (C) 2016 Atmel,
|
||||
*
|
||||
* Licensed under GPLv2 or later.
|
||||
*/
|
||||
#include "sama5d3xcm_cmp.dtsi"
|
||||
|
||||
/ {
|
||||
compatible = "atmel,sama5d3xmb", "atmel,sama5d3xcm", "atmel,sama5d3", "atmel,sama5";
|
||||
|
||||
chosen {
|
||||
u-boot,dm-pre-reloc;
|
||||
stdout-path = &dbgu;
|
||||
};
|
||||
|
||||
ahb {
|
||||
apb {
|
||||
mmc0: mmc@f0000000 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_mmc0_clk_cmd_dat0 &pinctrl_mmc0_dat1_3 &pinctrl_mmc0_cd>;
|
||||
status = "okay";
|
||||
slot@0 {
|
||||
reg = <0>;
|
||||
bus-width = <4>;
|
||||
cd-gpios = <&pioD 17 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
};
|
||||
|
||||
spi0: spi@f0004000 {
|
||||
dmas = <0>, <0>; /* Do not use DMA for spi0 */
|
||||
|
||||
spi_flash@0 {
|
||||
compatible = "spi-flash";
|
||||
spi-max-frequency = <50000000>;
|
||||
reg = <0>;
|
||||
};
|
||||
};
|
||||
|
||||
ssc0: ssc@f0008000 {
|
||||
atmel,clk-from-rk-pin;
|
||||
};
|
||||
|
||||
/*
|
||||
* i2c0 conflicts with ISI:
|
||||
* disable it to allow the use of ISI
|
||||
* can not enable audio when i2c0 disabled
|
||||
*/
|
||||
i2c0: i2c@f0014000 {
|
||||
wm8904: wm8904@1a {
|
||||
compatible = "wlf,wm8904";
|
||||
reg = <0x1a>;
|
||||
clocks = <&pck0>;
|
||||
clock-names = "mclk";
|
||||
};
|
||||
};
|
||||
|
||||
i2c1: i2c@f0018000 {
|
||||
ov2640: camera@0x30 {
|
||||
compatible = "ovti,ov2640";
|
||||
reg = <0x30>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_pck1_as_isi_mck &pinctrl_sensor_power &pinctrl_sensor_reset>;
|
||||
resetb-gpios = <&pioE 24 GPIO_ACTIVE_LOW>;
|
||||
pwdn-gpios = <&pioE 29 GPIO_ACTIVE_HIGH>;
|
||||
/* use pck1 for the master clock of ov2640 */
|
||||
clocks = <&pck1>;
|
||||
clock-names = "xvclk";
|
||||
assigned-clocks = <&pck1>;
|
||||
assigned-clock-rates = <25000000>;
|
||||
|
||||
port {
|
||||
ov2640_0: endpoint {
|
||||
remote-endpoint = <&isi_0>;
|
||||
bus-width = <8>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
usart1: serial@f0020000 {
|
||||
dmas = <0>, <0>; /* Do not use DMA for usart1 */
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_usart1 &pinctrl_usart1_rts_cts>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
isi: isi@f0034000 {
|
||||
port {
|
||||
isi_0: endpoint {
|
||||
remote-endpoint = <&ov2640_0>;
|
||||
bus-width = <8>;
|
||||
vsync-active = <1>;
|
||||
hsync-active = <1>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
mmc1: mmc@f8000000 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_mmc1_clk_cmd_dat0 &pinctrl_mmc1_dat1_3 &pinctrl_mmc1_cd>;
|
||||
status = "okay";
|
||||
slot@0 {
|
||||
reg = <0>;
|
||||
bus-width = <4>;
|
||||
cd-gpios = <&pioD 18 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
};
|
||||
|
||||
adc0: adc@f8018000 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <
|
||||
&pinctrl_adc0_adtrg
|
||||
&pinctrl_adc0_ad0
|
||||
&pinctrl_adc0_ad1
|
||||
&pinctrl_adc0_ad2
|
||||
&pinctrl_adc0_ad3
|
||||
&pinctrl_adc0_ad4
|
||||
>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
macb1: ethernet@f802c000 {
|
||||
phy-mode = "rmii";
|
||||
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
phy0: ethernet-phy@1 {
|
||||
/*interrupt-parent = <&pioE>;*/
|
||||
/*interrupts = <30 IRQ_TYPE_EDGE_FALLING>;*/
|
||||
reg = <1>;
|
||||
};
|
||||
};
|
||||
|
||||
pinctrl@fffff200 {
|
||||
board {
|
||||
pinctrl_gpio_keys: gpio_keys {
|
||||
atmel,pins =
|
||||
<AT91_PIOE 27 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP>;
|
||||
};
|
||||
|
||||
pinctrl_mmc0_cd: mmc0_cd {
|
||||
atmel,pins =
|
||||
<AT91_PIOD 17 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>; /* PD17 GPIO with pullup deglitch */
|
||||
};
|
||||
|
||||
pinctrl_mmc1_cd: mmc1_cd {
|
||||
atmel,pins =
|
||||
<AT91_PIOD 18 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>; /* PD18 GPIO with pullup deglitch */
|
||||
};
|
||||
|
||||
pinctrl_pck0_as_audio_mck: pck0_as_audio_mck {
|
||||
atmel,pins =
|
||||
<AT91_PIOD 30 AT91_PERIPH_B AT91_PINCTRL_NONE>; /* PD30 periph B */
|
||||
};
|
||||
|
||||
pinctrl_pck1_as_isi_mck: pck1_as_isi_mck-0 {
|
||||
atmel,pins =
|
||||
<AT91_PIOD 31 AT91_PERIPH_B AT91_PINCTRL_NONE>; /* PD31 periph B ISI_MCK */
|
||||
};
|
||||
|
||||
pinctrl_sensor_reset: sensor_reset-0 {
|
||||
atmel,pins =
|
||||
<AT91_PIOE 24 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>; /* PE24 gpio */
|
||||
};
|
||||
|
||||
pinctrl_sensor_power: sensor_power-0 {
|
||||
atmel,pins =
|
||||
<AT91_PIOE 29 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>; /* PE29 gpio */
|
||||
};
|
||||
|
||||
pinctrl_usba_vbus: usba_vbus {
|
||||
atmel,pins =
|
||||
<AT91_PIOD 29 AT91_PERIPH_GPIO AT91_PINCTRL_DEGLITCH>; /* PD29 GPIO with deglitch */
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
dbgu: serial@ffffee00 {
|
||||
dmas = <0>, <0>; /* Do not use DMA for dbgu */
|
||||
status = "okay";
|
||||
u-boot,dm-pre-reloc;
|
||||
};
|
||||
|
||||
watchdog@fffffe40 {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
|
||||
usb0: gadget@00500000 {
|
||||
atmel,vbus-gpio = <&pioD 29 GPIO_ACTIVE_HIGH>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_usba_vbus>;
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
|
||||
sound {
|
||||
compatible = "atmel,asoc-wm8904";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_pck0_as_audio_mck>;
|
||||
|
||||
atmel,model = "wm8904 @ SAMA5D3EK";
|
||||
atmel,audio-routing =
|
||||
"Headphone Jack", "HPOUTL",
|
||||
"Headphone Jack", "HPOUTR",
|
||||
"IN2L", "Line In Jack",
|
||||
"IN2R", "Line In Jack",
|
||||
"Mic", "MICBIAS",
|
||||
"IN1L", "Mic";
|
||||
|
||||
atmel,ssc-controller = <&ssc0>;
|
||||
atmel,audio-codec = <&wm8904>;
|
||||
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
/* Conflict with LCD pins */
|
||||
gpio_keys {
|
||||
compatible = "gpio-keys";
|
||||
status = "okay";
|
||||
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_gpio_keys>;
|
||||
|
||||
pb_user1 {
|
||||
label = "pb_user1";
|
||||
gpios = <&pioE 27 GPIO_ACTIVE_HIGH>;
|
||||
linux,code = <0x100>;
|
||||
gpio-key,wakeup;
|
||||
};
|
||||
};
|
||||
};
|
||||
1935
arch/arm/dts/sama5d4.dtsi
Normal file
1935
arch/arm/dts/sama5d4.dtsi
Normal file
File diff suppressed because it is too large
Load Diff
@@ -7,7 +7,7 @@
|
||||
#include "socfpga_cyclone5.dtsi"
|
||||
|
||||
/ {
|
||||
model = "DENX MCVEVK";
|
||||
model = "Aries MCVEVK";
|
||||
compatible = "altr,socfpga-cyclone5", "altr,socfpga";
|
||||
|
||||
chosen {
|
||||
@@ -54,5 +54,6 @@
|
||||
};
|
||||
|
||||
&usb1 {
|
||||
disable-over-current;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
@@ -54,10 +54,18 @@
|
||||
rxc-skew-ps = <2000>;
|
||||
};
|
||||
|
||||
&gpio0 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&gpio1 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&gpio2 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&i2c0 {
|
||||
status = "okay";
|
||||
|
||||
|
||||
147
arch/arm/dts/sun50i-h5-orangepi-pc2.dts
Normal file
147
arch/arm/dts/sun50i-h5-orangepi-pc2.dts
Normal file
@@ -0,0 +1,147 @@
|
||||
/*
|
||||
* Copyright (c) 2016 ARM Ltd.
|
||||
*
|
||||
* This file is dual-licensed: you can use it either under the terms
|
||||
* of the GPL or the X11 license, at your option. Note that this dual
|
||||
* licensing only applies to this file, and not this project as a
|
||||
* whole.
|
||||
*
|
||||
* a) This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* Or, alternatively,
|
||||
*
|
||||
* b) Permission is hereby granted, free of charge, to any person
|
||||
* obtaining a copy of this software and associated documentation
|
||||
* files (the "Software"), to deal in the Software without
|
||||
* restriction, including without limitation the rights to use,
|
||||
* copy, modify, merge, publish, distribute, sublicense, and/or
|
||||
* sell copies of the Software, and to permit persons to whom the
|
||||
* Software is furnished to do so, subject to the following
|
||||
* conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be
|
||||
* included in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
||||
* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
||||
* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||
* OTHER DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
|
||||
#include "sun8i-h3.dtsi"
|
||||
|
||||
/ {
|
||||
model = "OrangePi PC 2";
|
||||
compatible = "xunlong,orangepi-pc-2", "allwinner,sun50i-h5";
|
||||
|
||||
cpus {
|
||||
cpu@0 {
|
||||
compatible = "arm,cortex-a53", "arm,armv8";
|
||||
enable-method = "psci";
|
||||
};
|
||||
cpu@1 {
|
||||
compatible = "arm,cortex-a53", "arm,armv8";
|
||||
enable-method = "psci";
|
||||
};
|
||||
cpu@2 {
|
||||
compatible = "arm,cortex-a53", "arm,armv8";
|
||||
enable-method = "psci";
|
||||
};
|
||||
cpu@3 {
|
||||
compatible = "arm,cortex-a53", "arm,armv8";
|
||||
enable-method = "psci";
|
||||
};
|
||||
};
|
||||
|
||||
psci {
|
||||
compatible = "arm,psci-0.2";
|
||||
method = "smc";
|
||||
};
|
||||
|
||||
timer {
|
||||
compatible = "arm,armv8-timer";
|
||||
};
|
||||
|
||||
chosen {
|
||||
stdout-path = "serial0:115200n8";
|
||||
};
|
||||
|
||||
memory {
|
||||
reg = <0x40000000 0x40000000>;
|
||||
};
|
||||
|
||||
aliases {
|
||||
serial0 = &uart0;
|
||||
ethernet0 = &emac;
|
||||
};
|
||||
|
||||
soc {
|
||||
reg_vcc3v3: vcc3v3 {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "vcc3v3";
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&gic {
|
||||
compatible = "arm,gic-400";
|
||||
};
|
||||
|
||||
&mmc0 {
|
||||
compatible = "allwinner,sun50i-h5-mmc",
|
||||
"allwinner,sun50i-a64-mmc",
|
||||
"allwinner,sun5i-a13-mmc";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin>;
|
||||
vmmc-supply = <®_vcc3v3>;
|
||||
bus-width = <4>;
|
||||
cd-gpios = <&pio 5 6 0>;
|
||||
cd-inverted;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&uart0 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&uart0_pins_a>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usbphy {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&ohci1 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&ehci1 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&emac {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&emac_rgmii_pins>;
|
||||
phy-mode = "rgmii";
|
||||
phy = <&phy1>;
|
||||
status = "okay";
|
||||
|
||||
phy1: ethernet-phy@1 {
|
||||
reg = <1>;
|
||||
};
|
||||
};
|
||||
266
arch/arm/dts/sun5i-gr8-chip-pro.dts
Normal file
266
arch/arm/dts/sun5i-gr8-chip-pro.dts
Normal file
@@ -0,0 +1,266 @@
|
||||
/*
|
||||
* Copyright 2016 Free Electrons
|
||||
* Copyright 2016 NextThing Co
|
||||
*
|
||||
* Maxime Ripard <maxime.ripard@free-electrons.com>
|
||||
*
|
||||
* This file is dual-licensed: you can use it either under the terms
|
||||
* of the GPL or the X11 license, at your option. Note that this dual
|
||||
* licensing only applies to this file, and not this project as a
|
||||
* whole.
|
||||
*
|
||||
* a) This file is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This file is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* Or, alternatively,
|
||||
*
|
||||
* b) Permission is hereby granted, free of charge, to any person
|
||||
* obtaining a copy of this software and associated documentation
|
||||
* files (the "Software"), to deal in the Software without
|
||||
* restriction, including without limitation the rights to use,
|
||||
* copy, modify, merge, publish, distribute, sublicense, and/or
|
||||
* sell copies of the Software, and to permit persons to whom the
|
||||
* Software is furnished to do so, subject to the following
|
||||
* conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be
|
||||
* included in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
||||
* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
||||
* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||
* OTHER DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
#include "sun5i-gr8.dtsi"
|
||||
#include "sunxi-common-regulators.dtsi"
|
||||
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/input/input.h>
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
|
||||
/ {
|
||||
model = "NextThing C.H.I.P. Pro";
|
||||
compatible = "nextthing,chip-pro", "nextthing,gr8";
|
||||
|
||||
aliases {
|
||||
i2c0 = &i2c0;
|
||||
i2c1 = &i2c1;
|
||||
serial0 = &uart1;
|
||||
serial1 = &uart2;
|
||||
serial2 = &uart3;
|
||||
};
|
||||
|
||||
chosen {
|
||||
stdout-path = "serial0:115200n8";
|
||||
};
|
||||
|
||||
leds {
|
||||
compatible = "gpio-leds";
|
||||
|
||||
status {
|
||||
label = "chip-pro:white:status";
|
||||
gpios = <&axp_gpio 2 GPIO_ACTIVE_HIGH>;
|
||||
default-state = "on";
|
||||
};
|
||||
};
|
||||
|
||||
mmc0_pwrseq: mmc0_pwrseq {
|
||||
compatible = "mmc-pwrseq-simple";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&wifi_reg_on_pin_chip_pro>;
|
||||
reset-gpios = <&pio 1 10 GPIO_ACTIVE_LOW>; /* PB10 */
|
||||
};
|
||||
};
|
||||
|
||||
&codec {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&ehci0 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&i2c0 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&i2c0_pins_a>;
|
||||
status = "okay";
|
||||
|
||||
axp209: pmic@34 {
|
||||
reg = <0x34>;
|
||||
|
||||
/*
|
||||
* The interrupt is routed through the "External Fast
|
||||
* Interrupt Request" pin (ball G13 of the module)
|
||||
* directly to the main interrupt controller, without
|
||||
* any other controller interfering.
|
||||
*/
|
||||
interrupts = <0>;
|
||||
};
|
||||
};
|
||||
|
||||
#include "axp209.dtsi"
|
||||
|
||||
&i2c1 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&i2c1_pins_a>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
&i2s0 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&i2s0_mclk_pins_a>, <&i2s0_data_pins_a>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
&mmc0 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&mmc0_pins_a>;
|
||||
vmmc-supply = <®_vcc3v3>;
|
||||
mmc-pwrseq = <&mmc0_pwrseq>;
|
||||
bus-width = <4>;
|
||||
non-removable;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&nfc {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&nand_pins_a &nand_cs0_pins_a &nand_rb0_pins_a>;
|
||||
status = "okay";
|
||||
|
||||
nand@0 {
|
||||
#address-cells = <2>;
|
||||
#size-cells = <2>;
|
||||
reg = <0>;
|
||||
allwinner,rb = <0>;
|
||||
nand-ecc-mode = "hw";
|
||||
};
|
||||
};
|
||||
|
||||
&ohci0 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&otg_sram {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&pio {
|
||||
usb0_id_pin_chip_pro: usb0-id-pin@0 {
|
||||
allwinner,pins = "PG2";
|
||||
allwinner,function = "gpio_in";
|
||||
allwinner,drive = <SUN4I_PINCTRL_10_MA>;
|
||||
allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
|
||||
};
|
||||
|
||||
wifi_reg_on_pin_chip_pro: wifi-reg-on-pin@0 {
|
||||
allwinner,pins = "PB10";
|
||||
allwinner,function = "gpio_out";
|
||||
allwinner,drive = <SUN4I_PINCTRL_10_MA>;
|
||||
allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
|
||||
};
|
||||
};
|
||||
|
||||
&pwm {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pwm0_pins_a>, <&pwm1_pins>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
®_dcdc2 {
|
||||
regulator-min-microvolt = <1000000>;
|
||||
regulator-max-microvolt = <1400000>;
|
||||
regulator-name = "vdd-cpu";
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
®_dcdc3 {
|
||||
regulator-min-microvolt = <1000000>;
|
||||
regulator-max-microvolt = <1300000>;
|
||||
regulator-name = "vdd-sys";
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
®_ldo1 {
|
||||
regulator-name = "vdd-rtc";
|
||||
};
|
||||
|
||||
®_ldo2 {
|
||||
regulator-min-microvolt = <2700000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-name = "avcc";
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
/*
|
||||
* Both LDO3 and LDO4 are used in parallel to power up the
|
||||
* WiFi/BT chip.
|
||||
*/
|
||||
®_ldo3 {
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-name = "vcc-wifi-1";
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
®_ldo4 {
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-name = "vcc-wifi-2";
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
&uart1 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&uart1_pins_a>, <&uart1_cts_rts_pins_a>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&uart2 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&uart2_pins_a>, <&uart2_cts_rts_pins_a>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
&uart3 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&uart3_pins_a>, <&uart3_cts_rts_pins_a>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usb_otg {
|
||||
/*
|
||||
* The CHIP Pro doesn't have a controllable VBUS, nor does it
|
||||
* have any 5v rail on the board itself.
|
||||
*
|
||||
* If one wants to use it as a true OTG port, it should be
|
||||
* done in the baseboard, and its DT / overlay will add it.
|
||||
*/
|
||||
dr_mode = "otg";
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usb_power_supply {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usbphy {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&usb0_id_pin_chip_pro>;
|
||||
usb0_id_det-gpio = <&pio 6 2 GPIO_ACTIVE_HIGH>; /* PG2 */
|
||||
usb0_vbus_power-supply = <&usb_power_supply>;
|
||||
usb1_vbus-supply = <®_vcc5v0>;
|
||||
status = "okay";
|
||||
};
|
||||
1132
arch/arm/dts/sun5i-gr8.dtsi
Normal file
1132
arch/arm/dts/sun5i-gr8.dtsi
Normal file
File diff suppressed because it is too large
Load Diff
97
arch/arm/dts/sun8i-h3-nanopi-neo-air.dts
Normal file
97
arch/arm/dts/sun8i-h3-nanopi-neo-air.dts
Normal file
@@ -0,0 +1,97 @@
|
||||
/*
|
||||
* Copyright (C) 2017 Jelle van der Waa <jelle@vdwaa.nl>
|
||||
*
|
||||
* This file is dual-licensed: you can use it either under the terms
|
||||
* of the GPL or the X11 license, at your option. Note that this dual
|
||||
* licensing only applies to this file, and not this project as a
|
||||
* whole.
|
||||
*
|
||||
* a) This file is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This file is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* Or, alternatively,
|
||||
*
|
||||
* b) Permission is hereby granted, free of charge, to any person
|
||||
* obtaining a copy of this software and associated documentation
|
||||
* files (the "Software"), to deal in the Software without
|
||||
* restriction, including without limitation the rights to use,
|
||||
* copy, modify, merge, publish, distribute, sublicense, and/or
|
||||
* sell copies of the Software, and to permit persons to whom the
|
||||
* Software is furnished to do so, subject to the following
|
||||
* conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be
|
||||
* included in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
||||
* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
||||
* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||
* OTHER DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
#include "sun8i-h3.dtsi"
|
||||
#include "sunxi-common-regulators.dtsi"
|
||||
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/pinctrl/sun4i-a10.h>
|
||||
|
||||
/ {
|
||||
model = "FriendlyARM NanoPi NEO Air";
|
||||
compatible = "friendlyarm,nanopi-neo-air", "allwinner,sun8i-h3";
|
||||
|
||||
aliases {
|
||||
serial0 = &uart0;
|
||||
};
|
||||
|
||||
chosen {
|
||||
stdout-path = "serial0:115200n8";
|
||||
};
|
||||
|
||||
leds {
|
||||
compatible = "gpio-leds";
|
||||
|
||||
pwr {
|
||||
label = "nanopi:green:pwr";
|
||||
gpios = <&r_pio 0 10 GPIO_ACTIVE_HIGH>; /* PL10 */
|
||||
default-state = "on";
|
||||
};
|
||||
|
||||
status {
|
||||
label = "nanopi:blue:status";
|
||||
gpios = <&pio 0 10 GPIO_ACTIVE_HIGH>; /* PA10 */
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&mmc0 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin>;
|
||||
vmmc-supply = <®_vcc3v3>;
|
||||
bus-width = <4>;
|
||||
cd-gpios = <&pio 5 6 GPIO_ACTIVE_HIGH>; /* PF6 */
|
||||
cd-inverted;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&uart0 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&uart0_pins_a>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usbphy {
|
||||
/* USB VBUS is always on */
|
||||
status = "okay";
|
||||
};
|
||||
380
arch/arm/dts/sun9i-a80-cx-a99.dts
Normal file
380
arch/arm/dts/sun9i-a80-cx-a99.dts
Normal file
@@ -0,0 +1,380 @@
|
||||
/*
|
||||
* sun9i-a80-cx-a99.dts - Device Tree file for the Sunchip CX-A99 board.
|
||||
*
|
||||
* Copyright (C) 2017 Rask Ingemann Lambertsen <rask@formelder.dk>
|
||||
*
|
||||
* This file is dual-licensed: you can use it either under the terms
|
||||
* of the GPL or the X11 license, at your option. Note that this dual
|
||||
* licensing only applies to this file, and not this project as a
|
||||
* whole.
|
||||
*
|
||||
* a) This file is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This file is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* Or, alternatively,
|
||||
*
|
||||
* b) Permission is hereby granted, free of charge, to any person
|
||||
* obtaining a copy of this software and associated documentation
|
||||
* files (the "Software"), to deal in the Software without
|
||||
* restriction, including without limitation the rights to use,
|
||||
* copy, modify, merge, publish, distribute, sublicense, and/or
|
||||
* sell copies of the Software, and to permit persons to whom the
|
||||
* Software is furnished to do so, subject to the following
|
||||
* conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be
|
||||
* included in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
||||
* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
||||
* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||
* OTHER DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
/*
|
||||
* The Sunchip CX-A99 board is found in several similar Android media
|
||||
* players, such as:
|
||||
*
|
||||
* Instabox Fantasy A8 (no external antenna)
|
||||
* Jesurun CS-Q8 (ships with larger remote control)
|
||||
* Jesurun Maxone
|
||||
* Rikomagic (RKM) MK80/MK80LE
|
||||
* Tronsmart Draco AW80 Meta/Telos
|
||||
*
|
||||
* See the Sunchip CX-A99 page on the Linux-sunxi wiki for more information.
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
#include "sun9i-a80.dtsi"
|
||||
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
|
||||
/ {
|
||||
model = "Sunchip CX-A99";
|
||||
compatible = "sunchip,cx-a99", "allwinner,sun9i-a80";
|
||||
|
||||
aliases {
|
||||
serial0 = &uart0;
|
||||
};
|
||||
|
||||
chosen {
|
||||
stdout-path = "serial0:115200n8";
|
||||
};
|
||||
|
||||
leds {
|
||||
compatible = "gpio-leds";
|
||||
|
||||
blue {
|
||||
gpios = <&pio 6 10 GPIO_ACTIVE_HIGH>; /* PG10 */
|
||||
label = "cx-a99:blue:status";
|
||||
};
|
||||
|
||||
red {
|
||||
gpios = <&pio 6 11 GPIO_ACTIVE_HIGH>; /* PG11 */
|
||||
label = "cx-a99:red:status";
|
||||
};
|
||||
};
|
||||
|
||||
powerseq_wifi: powerseq-wifi {
|
||||
compatible = "mmc-pwrseq-simple";
|
||||
clocks = <&ac100_rtc 1>;
|
||||
clock-names = "ext_clock";
|
||||
reset-gpios = <&r_pio 1 0 GPIO_ACTIVE_LOW>; /* PM0 */
|
||||
post-power-on-delay-ms = <1>; /* Minimum 2 cycles. */
|
||||
};
|
||||
|
||||
/* USB 2.0 connector closest to the 12 V power connector. */
|
||||
reg_usb1_vbus: regulator-usb1-vbus {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "usb1-vbus";
|
||||
regulator-min-microvolt = <5000000>;
|
||||
regulator-max-microvolt = <5000000>;
|
||||
gpio = <&r_pio 0 7 /* no flag support */ 0>; /* PL7 */
|
||||
enable-active-high;
|
||||
};
|
||||
|
||||
/* USB 2.0 connector next to the SD card slot. */
|
||||
reg_usb3_vbus: regulator-usb3-vbus {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "usb3-vbus";
|
||||
regulator-min-microvolt = <5000000>;
|
||||
regulator-max-microvolt = <5000000>;
|
||||
gpio = <&r_pio 0 8 /* no flag support */ 0>; /* PL8 */
|
||||
enable-active-high;
|
||||
};
|
||||
|
||||
/*
|
||||
* OZ80120 voltage regulator for the four Cortex-A15 CPU cores.
|
||||
* Although the regulator can output 750 - 1200 mV, the permissible
|
||||
* range for the CPU cores is only 800 - 1100 mV.
|
||||
*/
|
||||
reg_vdd_cpub: regulator-vdd-cpub {
|
||||
compatible = "regulator-gpio";
|
||||
|
||||
regulator-always-on;
|
||||
regulator-min-microvolt = < 800000>;
|
||||
regulator-max-microvolt = <1100000>;
|
||||
regulator-name = "vdd-cpub";
|
||||
|
||||
/* Note: GPIO flags are not supported here . */
|
||||
enable-gpio = <&r_pio 0 2 /* flags n/a */ 0>; /* PL2 */
|
||||
enable-active-high;
|
||||
gpios = <&r_pio 0 3 /* no flag support */ 0>, /* PL3 */
|
||||
<&r_pio 0 4 /* no flag support */ 0>, /* PL4 */
|
||||
<&r_pio 0 5 /* no flag support */ 0>; /* PL5 */
|
||||
|
||||
gpios-states = <1 0 0>;
|
||||
states = < 750000 0x7
|
||||
800000 0x3
|
||||
850000 0x5
|
||||
900000 0x1
|
||||
950000 0x6
|
||||
1000000 0x2
|
||||
1100000 0x4
|
||||
1200000 0x0>;
|
||||
};
|
||||
};
|
||||
|
||||
&ehci0 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&ehci2 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
/*
|
||||
* SD card slot. Although the GPIO pin for card detection is listed as capable
|
||||
* of generating interrupts in the "A80 User Manual", this doesn't work for
|
||||
* some unknown reason, so poll the GPIO for card detection. This is also what
|
||||
* the vendor sys_config.fex file specifies.
|
||||
*/
|
||||
&mmc0 {
|
||||
bus-width = <4>;
|
||||
cd-gpios = <&pio 7 17 GPIO_ACTIVE_LOW>; /* PH17 */
|
||||
broken-cd; /* Poll. */
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&mmc0_pins>;
|
||||
vmmc-supply = <®_dcdce>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
/* Ampak AP6335 IEEE 802.11 a/b/g/n/ac Wifi. */
|
||||
&mmc1 {
|
||||
bus-width = <4>;
|
||||
non-removable;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&mmc1_pins>;
|
||||
vmmc-supply = <®_cldo3>; /* See cldo2,cldo3 note. */
|
||||
vqmmc-supply = <®_aldo2>;
|
||||
mmc-pwrseq = <&powerseq_wifi>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
/* On-board eMMC card. */
|
||||
&mmc2 {
|
||||
bus-width = <8>;
|
||||
non-removable;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&mmc2_8bit_pins>;
|
||||
vmmc-supply = <®_dcdce>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&osc32k {
|
||||
clocks = <&ac100_rtc 0>;
|
||||
};
|
||||
|
||||
&r_ir {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&r_rsb {
|
||||
status = "okay";
|
||||
|
||||
ac100: codec@e89 {
|
||||
compatible = "x-powers,ac100";
|
||||
reg = <0xe89>;
|
||||
|
||||
ac100_codec: codec {
|
||||
compatible = "x-powers,ac100-codec";
|
||||
interrupt-parent = <&r_pio>;
|
||||
interrupts = <0 9 IRQ_TYPE_LEVEL_LOW>; /* PL9 */
|
||||
#clock-cells = <0>;
|
||||
clock-output-names = "4M_adda";
|
||||
};
|
||||
|
||||
ac100_rtc: rtc {
|
||||
compatible = "x-powers,ac100-rtc";
|
||||
interrupt-parent = <&nmi_intc>;
|
||||
interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
|
||||
clocks = <&ac100_codec>;
|
||||
#clock-cells = <1>;
|
||||
clock-output-names = "cko1_rtc",
|
||||
"cko2_rtc",
|
||||
"cko3_rtc";
|
||||
};
|
||||
};
|
||||
|
||||
pmic@745 {
|
||||
compatible = "x-powers,axp808", "x-powers,axp806";
|
||||
x-powers,master-mode;
|
||||
reg = <0x745>;
|
||||
interrupt-parent = <&nmi_intc>;
|
||||
interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <1>;
|
||||
|
||||
swin-supply = <®_dcdce>;
|
||||
|
||||
regulators {
|
||||
reg_aldo1: aldo1 {
|
||||
regulator-boot-on;
|
||||
regulator-min-microvolt = <3000000>;
|
||||
regulator-max-microvolt = <3000000>;
|
||||
regulator-name = "vcc-3v0";
|
||||
};
|
||||
|
||||
/* Supplies pin groups G and M. */
|
||||
reg_aldo2: aldo2 {
|
||||
regulator-boot-on;
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <3600000>;
|
||||
regulator-name = "vddio-wifi-codec";
|
||||
};
|
||||
|
||||
reg_aldo3: aldo3 {
|
||||
regulator-boot-on;
|
||||
regulator-min-microvolt = <2500000>;
|
||||
regulator-max-microvolt = <2500000>;
|
||||
regulator-name = "vddio-gmac";
|
||||
};
|
||||
|
||||
reg_bldo1: bldo1 {
|
||||
regulator-always-on; /* Hang if disabled */
|
||||
regulator-min-microvolt = <1700000>;
|
||||
regulator-max-microvolt = <1900000>;
|
||||
regulator-name = "vdd18-dll-vcc18-pll";
|
||||
};
|
||||
|
||||
reg_bldo2: bldo2 {
|
||||
regulator-always-on; /* Hang if disabled */
|
||||
regulator-min-microvolt = < 800000>;
|
||||
regulator-max-microvolt = <1100000>;
|
||||
regulator-name = "vdd-cpus";
|
||||
};
|
||||
|
||||
reg_bldo3: bldo3 {
|
||||
regulator-min-microvolt = <1100000>;
|
||||
regulator-max-microvolt = <1300000>;
|
||||
regulator-name = "vcc12-hsic";
|
||||
};
|
||||
|
||||
reg_bldo4: bldo4 {
|
||||
regulator-boot-on;
|
||||
regulator-min-microvolt = < 800000>;
|
||||
regulator-max-microvolt = <1100000>;
|
||||
regulator-name = "vdd09-hdmi";
|
||||
};
|
||||
|
||||
/* Supplies PLx pins which control some regulators. */
|
||||
reg_cldo1: cldo1 {
|
||||
regulator-always-on;
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-name = "vcc-pl-led";
|
||||
};
|
||||
|
||||
/*
|
||||
* cldo2 and cldo3 are connected in parallel.
|
||||
* There is currently no way to express that.
|
||||
* For now, use regulator-always-on on cldo2 and lock
|
||||
* the voltage on both to 3.3 V.
|
||||
*/
|
||||
reg_cldo2: cldo2 {
|
||||
regulator-always-on;
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-name = "vbat2-wifi+bt";
|
||||
};
|
||||
|
||||
reg_cldo3: cldo3 {
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-name = "vbat1-wifi+bt";
|
||||
};
|
||||
|
||||
reg_dcdca: dcdca {
|
||||
regulator-always-on;
|
||||
regulator-min-microvolt = < 800000>;
|
||||
regulator-max-microvolt = <1100000>;
|
||||
regulator-name = "vdd-cpua";
|
||||
};
|
||||
|
||||
reg_dcdcb: dcdcb {
|
||||
regulator-always-on;
|
||||
regulator-min-microvolt = <1450000>;
|
||||
regulator-max-microvolt = <1550000>;
|
||||
regulator-name = "vcc-dram";
|
||||
};
|
||||
|
||||
reg_dcdcc: dcdcc {
|
||||
regulator-min-microvolt = < 800000>;
|
||||
regulator-max-microvolt = <1100000>;
|
||||
regulator-name = "vdd-gpu";
|
||||
};
|
||||
|
||||
reg_dcdcd: dcdcd {
|
||||
regulator-always-on; /* Hang if disabled. */
|
||||
regulator-min-microvolt = < 800000>;
|
||||
regulator-max-microvolt = <1100000>;
|
||||
regulator-name = "vdd-sys";
|
||||
};
|
||||
|
||||
/* Supplies pin groups B-F and H. */
|
||||
reg_dcdce: dcdce {
|
||||
regulator-always-on;
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-name = "vcc-io-mmc-spdif";
|
||||
};
|
||||
|
||||
reg_sw: sw {
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-name = "vcc-gmac-codec";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
/*
|
||||
* 5-pin connector opposite of the SD card slot:
|
||||
* 1 = GND (pointed to by small triangle), 2 = GND, 3 = 3.3 V, 4 = RX, 5 = TX.
|
||||
*/
|
||||
&uart0 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&uart0_pins_a>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usbphy1 {
|
||||
phy-supply = <®_usb1_vbus>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usbphy3 {
|
||||
phy-supply = <®_usb3_vbus>;
|
||||
status = "okay";
|
||||
};
|
||||
@@ -701,6 +701,14 @@
|
||||
allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
|
||||
};
|
||||
|
||||
mmc1_pins: mmc1 {
|
||||
allwinner,pins = "PG0", "PG1" ,"PG2", "PG3",
|
||||
"PG4", "PG5";
|
||||
allwinner,function = "mmc1";
|
||||
allwinner,drive = <SUN4I_PINCTRL_30_MA>;
|
||||
allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
|
||||
};
|
||||
|
||||
mmc2_8bit_pins: mmc2_8bit {
|
||||
allwinner,pins = "PC6", "PC7", "PC8", "PC9",
|
||||
"PC10", "PC11", "PC12",
|
||||
|
||||
@@ -66,29 +66,9 @@
|
||||
#define PRM_RSTCTRL_RESET 0x01
|
||||
#define PRM_RSTST_WARM_RESET_MASK 0x232
|
||||
|
||||
/*
|
||||
* Watchdog:
|
||||
* Using the prescaler, the OMAP watchdog could go for many
|
||||
* months before firing. These limits work without scaling,
|
||||
* with the 60 second default assumed by most tools and docs.
|
||||
*/
|
||||
#define TIMER_MARGIN_MAX (24 * 60 * 60) /* 1 day */
|
||||
#define TIMER_MARGIN_DEFAULT 60 /* 60 secs */
|
||||
#define TIMER_MARGIN_MIN 1
|
||||
|
||||
#define PTV 0 /* prescale */
|
||||
#define GET_WLDR_VAL(secs) (0xffffffff - ((secs) * (32768/(1<<PTV))) + 1)
|
||||
#define WDT_WWPS_PEND_WCLR BIT(0)
|
||||
#define WDT_WWPS_PEND_WLDR BIT(2)
|
||||
#define WDT_WWPS_PEND_WTGR BIT(3)
|
||||
#define WDT_WWPS_PEND_WSPR BIT(4)
|
||||
|
||||
#define WDT_WCLR_PRE BIT(5)
|
||||
#define WDT_WCLR_PTV_OFF 2
|
||||
|
||||
#ifndef __KERNEL_STRICT_NAMES
|
||||
#ifndef __ASSEMBLY__
|
||||
|
||||
#include <asm/ti-common/omap_wdt.h>
|
||||
|
||||
#ifndef CONFIG_AM43XX
|
||||
/* Encapsulating core pll registers */
|
||||
@@ -422,32 +402,6 @@ struct cm_rtc {
|
||||
unsigned int clkstctrl; /* offset 0x4 */
|
||||
};
|
||||
|
||||
/* Watchdog timer registers */
|
||||
struct wd_timer {
|
||||
unsigned int resv1[4];
|
||||
unsigned int wdtwdsc; /* offset 0x010 */
|
||||
unsigned int wdtwdst; /* offset 0x014 */
|
||||
unsigned int wdtwisr; /* offset 0x018 */
|
||||
unsigned int wdtwier; /* offset 0x01C */
|
||||
unsigned int wdtwwer; /* offset 0x020 */
|
||||
unsigned int wdtwclr; /* offset 0x024 */
|
||||
unsigned int wdtwcrr; /* offset 0x028 */
|
||||
unsigned int wdtwldr; /* offset 0x02C */
|
||||
unsigned int wdtwtgr; /* offset 0x030 */
|
||||
unsigned int wdtwwps; /* offset 0x034 */
|
||||
unsigned int resv2[3];
|
||||
unsigned int wdtwdly; /* offset 0x044 */
|
||||
unsigned int wdtwspr; /* offset 0x048 */
|
||||
unsigned int resv3[1];
|
||||
unsigned int wdtwqeoi; /* offset 0x050 */
|
||||
unsigned int wdtwqstar; /* offset 0x054 */
|
||||
unsigned int wdtwqsta; /* offset 0x058 */
|
||||
unsigned int wdtwqens; /* offset 0x05C */
|
||||
unsigned int wdtwqenc; /* offset 0x060 */
|
||||
unsigned int resv4[39];
|
||||
unsigned int wdt_unfr; /* offset 0x100 */
|
||||
};
|
||||
|
||||
/* Timer 32 bit registers */
|
||||
struct gptimer {
|
||||
unsigned int tidr; /* offset 0x00 */
|
||||
|
||||
89
arch/arm/include/asm/arch-meson/sd_emmc.h
Normal file
89
arch/arm/include/asm/arch-meson/sd_emmc.h
Normal file
@@ -0,0 +1,89 @@
|
||||
/*
|
||||
* (C) Copyright 2016 Carlo Caione <carlo@caione.org>
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-2.0+
|
||||
*/
|
||||
|
||||
#ifndef __SD_EMMC_H__
|
||||
#define __SD_EMMC_H__
|
||||
|
||||
#include <mmc.h>
|
||||
|
||||
#define SDIO_PORT_A 0
|
||||
#define SDIO_PORT_B 1
|
||||
#define SDIO_PORT_C 2
|
||||
|
||||
#define SD_EMMC_CLKSRC_24M 24000000 /* 24 MHz */
|
||||
#define SD_EMMC_CLKSRC_DIV2 1000000000 /* 1 GHz */
|
||||
|
||||
#define MESON_SD_EMMC_CLOCK 0x00
|
||||
#define CLK_MAX_DIV 63
|
||||
#define CLK_SRC_24M (0 << 6)
|
||||
#define CLK_SRC_DIV2 (1 << 6)
|
||||
#define CLK_CO_PHASE_000 (0 << 8)
|
||||
#define CLK_CO_PHASE_090 (1 << 8)
|
||||
#define CLK_CO_PHASE_180 (2 << 8)
|
||||
#define CLK_CO_PHASE_270 (3 << 8)
|
||||
#define CLK_TX_PHASE_000 (0 << 10)
|
||||
#define CLK_TX_PHASE_090 (1 << 10)
|
||||
#define CLK_TX_PHASE_180 (2 << 10)
|
||||
#define CLK_TX_PHASE_270 (3 << 10)
|
||||
#define CLK_ALWAYS_ON BIT(24)
|
||||
|
||||
#define MESON_SD_EMMC_CFG 0x44
|
||||
#define CFG_BUS_WIDTH_MASK GENMASK(1, 0)
|
||||
#define CFG_BUS_WIDTH_1 0
|
||||
#define CFG_BUS_WIDTH_4 1
|
||||
#define CFG_BUS_WIDTH_8 2
|
||||
#define CFG_BL_LEN_MASK GENMASK(7, 4)
|
||||
#define CFG_BL_LEN_SHIFT 4
|
||||
#define CFG_BL_LEN_512 (9 << 4)
|
||||
#define CFG_RESP_TIMEOUT_MASK GENMASK(11, 8)
|
||||
#define CFG_RESP_TIMEOUT_256 (8 << 8)
|
||||
#define CFG_RC_CC_MASK GENMASK(15, 12)
|
||||
#define CFG_RC_CC_16 (4 << 12)
|
||||
#define CFG_SDCLK_ALWAYS_ON BIT(18)
|
||||
#define CFG_AUTO_CLK BIT(23)
|
||||
|
||||
#define MESON_SD_EMMC_STATUS 0x48
|
||||
#define STATUS_MASK GENMASK(15, 0)
|
||||
#define STATUS_ERR_MASK GENMASK(12, 0)
|
||||
#define STATUS_RXD_ERR_MASK GENMASK(7, 0)
|
||||
#define STATUS_TXD_ERR BIT(8)
|
||||
#define STATUS_DESC_ERR BIT(9)
|
||||
#define STATUS_RESP_ERR BIT(10)
|
||||
#define STATUS_RESP_TIMEOUT BIT(11)
|
||||
#define STATUS_DESC_TIMEOUT BIT(12)
|
||||
#define STATUS_END_OF_CHAIN BIT(13)
|
||||
|
||||
#define MESON_SD_EMMC_IRQ_EN 0x4c
|
||||
|
||||
#define MESON_SD_EMMC_CMD_CFG 0x50
|
||||
#define CMD_CFG_LENGTH_MASK GENMASK(8, 0)
|
||||
#define CMD_CFG_BLOCK_MODE BIT(9)
|
||||
#define CMD_CFG_R1B BIT(10)
|
||||
#define CMD_CFG_END_OF_CHAIN BIT(11)
|
||||
#define CMD_CFG_TIMEOUT_4S (12 << 12)
|
||||
#define CMD_CFG_NO_RESP BIT(16)
|
||||
#define CMD_CFG_DATA_IO BIT(18)
|
||||
#define CMD_CFG_DATA_WR BIT(19)
|
||||
#define CMD_CFG_RESP_NOCRC BIT(20)
|
||||
#define CMD_CFG_RESP_128 BIT(21)
|
||||
#define CMD_CFG_CMD_INDEX_SHIFT 24
|
||||
#define CMD_CFG_OWNER BIT(31)
|
||||
|
||||
#define MESON_SD_EMMC_CMD_ARG 0x54
|
||||
#define MESON_SD_EMMC_CMD_DAT 0x58
|
||||
#define MESON_SD_EMMC_CMD_RSP 0x5c
|
||||
#define MESON_SD_EMMC_CMD_RSP1 0x60
|
||||
#define MESON_SD_EMMC_CMD_RSP2 0x64
|
||||
#define MESON_SD_EMMC_CMD_RSP3 0x68
|
||||
|
||||
struct meson_mmc_platdata {
|
||||
struct mmc_config cfg;
|
||||
struct mmc mmc;
|
||||
void *regbase;
|
||||
void *w_buf;
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -18,6 +18,8 @@
|
||||
|
||||
#ifndef __KERNEL_STRICT_NAMES
|
||||
#ifndef __ASSEMBLY__
|
||||
#include <asm/ti-common/omap_wdt.h>
|
||||
|
||||
struct gptimer {
|
||||
u32 tidr; /* 0x00 r */
|
||||
u8 res1[0xc];
|
||||
@@ -44,6 +46,7 @@ struct gptimer {
|
||||
/* enable sys_clk NO-prescale /1 */
|
||||
#define GPT_EN ((0x0 << 2) | (0x1 << 1) | (0x1 << 0))
|
||||
|
||||
#define WDT_BASE (OMAP54XX_L4_WKUP_BASE + 0x14000)
|
||||
/* Watchdog */
|
||||
#ifndef __KERNEL_STRICT_NAMES
|
||||
#ifndef __ASSEMBLY__
|
||||
|
||||
18
arch/arm/include/asm/arch-rockchip/boot0.h
Normal file
18
arch/arm/include/asm/arch-rockchip/boot0.h
Normal file
@@ -0,0 +1,18 @@
|
||||
/*
|
||||
* Copyright 2017 Theobroma Systems Design und Consulting GmbH
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-2.0+
|
||||
*/
|
||||
|
||||
/*
|
||||
* Execution starts on the instruction following this 4-byte header
|
||||
* (containing the magic 'RK33').
|
||||
*
|
||||
* To make life easier for everyone, we build the SPL binary with
|
||||
* space for this 4-byte header already included in the binary.
|
||||
*/
|
||||
|
||||
#ifdef CONFIG_SPL_BUILD
|
||||
.space 0x4 /* space for the 'RK33' */
|
||||
#endif
|
||||
b reset
|
||||
@@ -9,6 +9,7 @@
|
||||
#define OSC_HZ (24 * 1000 * 1000)
|
||||
|
||||
#define APLL_HZ (1608 * 1000000)
|
||||
#define APLL_SAFE_HZ (600 * 1000000)
|
||||
#define GPLL_HZ (594 * 1000000)
|
||||
#define CPLL_HZ (384 * 1000000)
|
||||
|
||||
|
||||
@@ -720,20 +720,20 @@ enum {
|
||||
|
||||
/* GRF_SOC_CON1 */
|
||||
enum {
|
||||
RMII_MODE_SHIFT = 0xe,
|
||||
RMII_MODE_MASK = 1,
|
||||
RMII_MODE = 1,
|
||||
RK3288_RMII_MODE_SHIFT = 14,
|
||||
RK3288_RMII_MODE_MASK = (1 << RK3288_RMII_MODE_SHIFT),
|
||||
RK3288_RMII_MODE = (1 << RK3288_RMII_MODE_SHIFT),
|
||||
|
||||
GMAC_CLK_SEL_SHIFT = 0xc,
|
||||
GMAC_CLK_SEL_MASK = 3,
|
||||
GMAC_CLK_SEL_125M = 0,
|
||||
GMAC_CLK_SEL_25M = 0x3,
|
||||
GMAC_CLK_SEL_2_5M = 0x2,
|
||||
RK3288_GMAC_CLK_SEL_SHIFT = 12,
|
||||
RK3288_GMAC_CLK_SEL_MASK = (3 << RK3288_GMAC_CLK_SEL_SHIFT),
|
||||
RK3288_GMAC_CLK_SEL_125M = (0 << RK3288_GMAC_CLK_SEL_SHIFT),
|
||||
RK3288_GMAC_CLK_SEL_25M = (3 << RK3288_GMAC_CLK_SEL_SHIFT),
|
||||
RK3288_GMAC_CLK_SEL_2_5M = (2 << RK3288_GMAC_CLK_SEL_SHIFT),
|
||||
|
||||
RMII_CLK_SEL_SHIFT = 0xb,
|
||||
RMII_CLK_SEL_MASK = 1,
|
||||
RMII_CLK_SEL_2_5M = 0,
|
||||
RMII_CLK_SEL_25M,
|
||||
RK3288_RMII_CLK_SEL_SHIFT = 11,
|
||||
RK3288_RMII_CLK_SEL_MASK = (1 << RK3288_RMII_CLK_SEL_SHIFT),
|
||||
RK3288_RMII_CLK_SEL_2_5M = (0 << RK3288_RMII_CLK_SEL_SHIFT),
|
||||
RK3288_RMII_CLK_SEL_25M = (1 << RK3288_RMII_CLK_SEL_SHIFT),
|
||||
|
||||
GMAC_SPEED_SHIFT = 0xa,
|
||||
GMAC_SPEED_MASK = 1,
|
||||
@@ -743,10 +743,10 @@ enum {
|
||||
GMAC_FLOWCTRL_SHIFT = 0x9,
|
||||
GMAC_FLOWCTRL_MASK = 1,
|
||||
|
||||
GMAC_PHY_INTF_SEL_SHIFT = 0x6,
|
||||
GMAC_PHY_INTF_SEL_MASK = 0x7,
|
||||
GMAC_PHY_INTF_SEL_RGMII = 0x1,
|
||||
GMAC_PHY_INTF_SEL_RMII = 0x4,
|
||||
RK3288_GMAC_PHY_INTF_SEL_SHIFT = 6,
|
||||
RK3288_GMAC_PHY_INTF_SEL_MASK = (7 << RK3288_GMAC_PHY_INTF_SEL_SHIFT),
|
||||
RK3288_GMAC_PHY_INTF_SEL_RGMII = (1 << RK3288_GMAC_PHY_INTF_SEL_SHIFT),
|
||||
RK3288_GMAC_PHY_INTF_SEL_RMII = (4 << RK3288_GMAC_PHY_INTF_SEL_SHIFT),
|
||||
|
||||
HOST_REMAP_SHIFT = 0x5,
|
||||
HOST_REMAP_MASK = 1
|
||||
@@ -801,21 +801,27 @@ enum {
|
||||
|
||||
/* GRF_SOC_CON3 */
|
||||
enum {
|
||||
RXCLK_DLY_ENA_GMAC_SHIFT = 0xf,
|
||||
RXCLK_DLY_ENA_GMAC_MASK = 1,
|
||||
RXCLK_DLY_ENA_GMAC_DISABLE = 0,
|
||||
RXCLK_DLY_ENA_GMAC_ENABLE,
|
||||
RK3288_RXCLK_DLY_ENA_GMAC_SHIFT = 0xf,
|
||||
RK3288_RXCLK_DLY_ENA_GMAC_MASK =
|
||||
(1 << RK3288_RXCLK_DLY_ENA_GMAC_SHIFT),
|
||||
RK3288_RXCLK_DLY_ENA_GMAC_DISABLE = 0,
|
||||
RK3288_RXCLK_DLY_ENA_GMAC_ENABLE =
|
||||
(1 << RK3288_RXCLK_DLY_ENA_GMAC_SHIFT),
|
||||
|
||||
TXCLK_DLY_ENA_GMAC_SHIFT = 0xe,
|
||||
TXCLK_DLY_ENA_GMAC_MASK = 1,
|
||||
TXCLK_DLY_ENA_GMAC_DISABLE = 0,
|
||||
TXCLK_DLY_ENA_GMAC_ENABLE,
|
||||
RK3288_TXCLK_DLY_ENA_GMAC_SHIFT = 0xe,
|
||||
RK3288_TXCLK_DLY_ENA_GMAC_MASK =
|
||||
(1 << RK3288_TXCLK_DLY_ENA_GMAC_SHIFT),
|
||||
RK3288_TXCLK_DLY_ENA_GMAC_DISABLE = 0,
|
||||
RK3288_TXCLK_DLY_ENA_GMAC_ENABLE =
|
||||
(1 << RK3288_RXCLK_DLY_ENA_GMAC_SHIFT),
|
||||
|
||||
CLK_RX_DL_CFG_GMAC_SHIFT = 0x7,
|
||||
CLK_RX_DL_CFG_GMAC_MASK = 0x7f,
|
||||
RK3288_CLK_RX_DL_CFG_GMAC_SHIFT = 0x7,
|
||||
RK3288_CLK_RX_DL_CFG_GMAC_MASK =
|
||||
(0x7f << RK3288_CLK_RX_DL_CFG_GMAC_SHIFT),
|
||||
|
||||
CLK_TX_DL_CFG_GMAC_SHIFT = 0x0,
|
||||
CLK_TX_DL_CFG_GMAC_MASK = 0x7f,
|
||||
RK3288_CLK_TX_DL_CFG_GMAC_SHIFT = 0x0,
|
||||
RK3288_CLK_TX_DL_CFG_GMAC_MASK =
|
||||
(0x7f << RK3288_CLK_TX_DL_CFG_GMAC_SHIFT),
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -144,7 +144,9 @@ struct rk3399_grf_regs {
|
||||
};
|
||||
u32 gpio4d_iomux;
|
||||
u32 reserved21[4];
|
||||
u32 gpio2_p[3][4];
|
||||
u32 gpio2_p[4];
|
||||
u32 gpio3_p[4];
|
||||
u32 gpio4_p[4];
|
||||
u32 reserved22[4];
|
||||
u32 gpio2_sr[3][4];
|
||||
u32 reserved23[4];
|
||||
@@ -215,7 +217,9 @@ struct rk3399_pmugrf_regs {
|
||||
};
|
||||
u32 gpio1d_iomux;
|
||||
u32 reserved1[8];
|
||||
u32 gpio0_p[2][4];
|
||||
u32 gpio0_p[2];
|
||||
u32 reserved2[2];
|
||||
u32 gpio1_p[4];
|
||||
u32 reserved3[8];
|
||||
u32 gpio0a_e;
|
||||
u32 reserved4;
|
||||
@@ -333,24 +337,69 @@ enum {
|
||||
GRF_GPIO2B4_SEL_MASK = 3 << GRF_GPIO2B4_SEL_SHIFT,
|
||||
GRF_SPI2TPM_CSN0 = 1,
|
||||
|
||||
/* GRF_GPIO2C_IOMUX */
|
||||
GRF_GPIO2C0_SEL_SHIFT = 0,
|
||||
GRF_GPIO2C0_SEL_MASK = 3 << GRF_GPIO2C0_SEL_SHIFT,
|
||||
GRF_UART0BT_SIN = 1,
|
||||
GRF_GPIO2C1_SEL_SHIFT = 2,
|
||||
GRF_GPIO2C1_SEL_MASK = 3 << GRF_GPIO2C1_SEL_SHIFT,
|
||||
GRF_UART0BT_SOUT = 1,
|
||||
|
||||
/* GRF_GPIO3A_IOMUX */
|
||||
GRF_GPIO3A0_SEL_SHIFT = 0,
|
||||
GRF_GPIO3A0_SEL_MASK = 3 << GRF_GPIO3A0_SEL_SHIFT,
|
||||
GRF_MAC_TXD2 = 1,
|
||||
GRF_GPIO3A1_SEL_SHIFT = 2,
|
||||
GRF_GPIO3A1_SEL_MASK = 3 << GRF_GPIO3A1_SEL_SHIFT,
|
||||
GRF_MAC_TXD3 = 1,
|
||||
GRF_GPIO3A2_SEL_SHIFT = 4,
|
||||
GRF_GPIO3A2_SEL_MASK = 3 << GRF_GPIO3A2_SEL_SHIFT,
|
||||
GRF_MAC_RXD2 = 1,
|
||||
GRF_GPIO3A3_SEL_SHIFT = 6,
|
||||
GRF_GPIO3A3_SEL_MASK = 3 << GRF_GPIO3A3_SEL_SHIFT,
|
||||
GRF_MAC_RXD3 = 1,
|
||||
GRF_GPIO3A4_SEL_SHIFT = 8,
|
||||
GRF_GPIO3A4_SEL_MASK = 3 << GRF_GPIO3A4_SEL_SHIFT,
|
||||
GRF_MAC_TXD0 = 1,
|
||||
GRF_SPI0NORCODEC_RXD = 2,
|
||||
GRF_GPIO3A5_SEL_SHIFT = 10,
|
||||
GRF_GPIO3A5_SEL_MASK = 3 << GRF_GPIO3A5_SEL_SHIFT,
|
||||
GRF_MAC_TXD1 = 1,
|
||||
GRF_SPI0NORCODEC_TXD = 2,
|
||||
GRF_GPIO3A6_SEL_SHIFT = 12,
|
||||
GRF_GPIO3A6_SEL_MASK = 3 << GRF_GPIO3A6_SEL_SHIFT,
|
||||
GRF_MAC_RXD0 = 1,
|
||||
GRF_SPI0NORCODEC_CLK = 2,
|
||||
GRF_GPIO3A7_SEL_SHIFT = 14,
|
||||
GRF_GPIO3A7_SEL_MASK = 3 << GRF_GPIO3A7_SEL_SHIFT,
|
||||
GRF_MAC_RXD1 = 1,
|
||||
GRF_SPI0NORCODEC_CSN0 = 2,
|
||||
|
||||
/* GRF_GPIO3B_IOMUX */
|
||||
GRF_GPIO3B0_SEL_SHIFT = 0,
|
||||
GRF_GPIO3B0_SEL_MASK = 3 << GRF_GPIO3B0_SEL_SHIFT,
|
||||
GRF_MAC_MDC = 1,
|
||||
GRF_SPI0NORCODEC_CSN1 = 2,
|
||||
GRF_GPIO3B1_SEL_SHIFT = 2,
|
||||
GRF_GPIO3B1_SEL_MASK = 3 << GRF_GPIO3B1_SEL_SHIFT,
|
||||
GRF_MAC_RXDV = 1,
|
||||
GRF_GPIO3B3_SEL_SHIFT = 6,
|
||||
GRF_GPIO3B3_SEL_MASK = 3 << GRF_GPIO3B3_SEL_SHIFT,
|
||||
GRF_MAC_CLK = 1,
|
||||
GRF_GPIO3B4_SEL_SHIFT = 8,
|
||||
GRF_GPIO3B4_SEL_MASK = 3 << GRF_GPIO3B4_SEL_SHIFT,
|
||||
GRF_MAC_TXEN = 1,
|
||||
GRF_GPIO3B5_SEL_SHIFT = 10,
|
||||
GRF_GPIO3B5_SEL_MASK = 3 << GRF_GPIO3B5_SEL_SHIFT,
|
||||
GRF_MAC_MDIO = 1,
|
||||
GRF_GPIO3B6_SEL_SHIFT = 12,
|
||||
GRF_GPIO3B6_SEL_MASK = 3 << GRF_GPIO3B6_SEL_SHIFT,
|
||||
GRF_MAC_RXCLK = 1,
|
||||
|
||||
/* GRF_GPIO3C_IOMUX */
|
||||
GRF_GPIO3C1_SEL_SHIFT = 2,
|
||||
GRF_GPIO3C1_SEL_MASK = 3 << GRF_GPIO3C1_SEL_SHIFT,
|
||||
GRF_MAC_TXCLK = 1,
|
||||
|
||||
/* GRF_GPIO4B_IOMUX */
|
||||
GRF_GPIO4B0_SEL_SHIFT = 0,
|
||||
@@ -436,4 +485,43 @@ enum {
|
||||
|
||||
};
|
||||
|
||||
/* GRF_SOC_CON5 */
|
||||
enum {
|
||||
RK3399_GMAC_PHY_INTF_SEL_SHIFT = 9,
|
||||
RK3399_GMAC_PHY_INTF_SEL_MASK = (7 << RK3399_GMAC_PHY_INTF_SEL_SHIFT),
|
||||
RK3399_GMAC_PHY_INTF_SEL_RGMII = (1 << RK3399_GMAC_PHY_INTF_SEL_SHIFT),
|
||||
RK3399_GMAC_PHY_INTF_SEL_RMII = (4 << RK3399_GMAC_PHY_INTF_SEL_SHIFT),
|
||||
|
||||
RK3399_GMAC_CLK_SEL_SHIFT = 4,
|
||||
RK3399_GMAC_CLK_SEL_MASK = (3 << RK3399_GMAC_CLK_SEL_SHIFT),
|
||||
RK3399_GMAC_CLK_SEL_125M = (0 << RK3399_GMAC_CLK_SEL_SHIFT),
|
||||
RK3399_GMAC_CLK_SEL_25M = (3 << RK3399_GMAC_CLK_SEL_SHIFT),
|
||||
RK3399_GMAC_CLK_SEL_2_5M = (2 << RK3399_GMAC_CLK_SEL_SHIFT),
|
||||
};
|
||||
|
||||
/* GRF_SOC_CON6 */
|
||||
enum {
|
||||
RK3399_RXCLK_DLY_ENA_GMAC_SHIFT = 15,
|
||||
RK3399_RXCLK_DLY_ENA_GMAC_MASK =
|
||||
(1 << RK3399_RXCLK_DLY_ENA_GMAC_SHIFT),
|
||||
RK3399_RXCLK_DLY_ENA_GMAC_DISABLE = 0,
|
||||
RK3399_RXCLK_DLY_ENA_GMAC_ENABLE =
|
||||
(1 << RK3399_RXCLK_DLY_ENA_GMAC_SHIFT),
|
||||
|
||||
RK3399_TXCLK_DLY_ENA_GMAC_SHIFT = 7,
|
||||
RK3399_TXCLK_DLY_ENA_GMAC_MASK =
|
||||
(1 << RK3399_TXCLK_DLY_ENA_GMAC_SHIFT),
|
||||
RK3399_TXCLK_DLY_ENA_GMAC_DISABLE = 0,
|
||||
RK3399_TXCLK_DLY_ENA_GMAC_ENABLE =
|
||||
(1 << RK3399_TXCLK_DLY_ENA_GMAC_SHIFT),
|
||||
|
||||
RK3399_CLK_RX_DL_CFG_GMAC_SHIFT = 8,
|
||||
RK3399_CLK_RX_DL_CFG_GMAC_MASK =
|
||||
(0x7f << RK3399_CLK_RX_DL_CFG_GMAC_SHIFT),
|
||||
|
||||
RK3399_CLK_TX_DL_CFG_GMAC_SHIFT = 0,
|
||||
RK3399_CLK_TX_DL_CFG_GMAC_MASK =
|
||||
(0x7f << RK3399_CLK_TX_DL_CFG_GMAC_SHIFT),
|
||||
};
|
||||
|
||||
#endif /* __SOC_ROCKCHIP_RK3399_GRF_H__ */
|
||||
|
||||
@@ -1,456 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2015 Google, Inc
|
||||
* Copyright 2014 Rockchip Inc.
|
||||
* Copyright (C) 2011 Freescale Semiconductor, Inc.
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-2.0+
|
||||
*/
|
||||
|
||||
#ifndef _ASM_ARCH_HDMI_H
|
||||
#define _ASM_ARCH_HDMI_H
|
||||
|
||||
|
||||
#define HDMI_EDID_BLOCK_SIZE 128
|
||||
|
||||
struct rk3288_hdmi {
|
||||
u32 reserved0[0x100];
|
||||
u32 ih_fc_stat0;
|
||||
u32 ih_fc_stat1;
|
||||
u32 ih_fc_stat2;
|
||||
u32 ih_as_stat0;
|
||||
u32 ih_phy_stat0;
|
||||
u32 ih_i2cm_stat0;
|
||||
u32 ih_cec_stat0;
|
||||
u32 ih_vp_stat0;
|
||||
u32 ih_i2cmphy_stat0;
|
||||
u32 ih_ahbdmaaud_stat0;
|
||||
u32 reserved1[0x17f-0x109];
|
||||
u32 ih_mute_fc_stat0;
|
||||
u32 ih_mute_fc_stat1;
|
||||
u32 ih_mute_fc_stat2;
|
||||
u32 ih_mute_as_stat0;
|
||||
u32 ih_mute_phy_stat0;
|
||||
u32 ih_mute_i2cm_stat0;
|
||||
u32 ih_mute_cec_stat0;
|
||||
u32 ih_mute_vp_stat0;
|
||||
u32 ih_mute_i2cmphy_stat0;
|
||||
u32 ih_mute_ahbdmaaud_stat0;
|
||||
u32 reserved2[0x1fe - 0x189];
|
||||
u32 ih_mute;
|
||||
u32 tx_invid0;
|
||||
u32 tx_instuffing;
|
||||
u32 tx_gydata0;
|
||||
u32 tx_gydata1;
|
||||
u32 tx_rcrdata0;
|
||||
u32 tx_rcrdata1;
|
||||
u32 tx_bcbdata0;
|
||||
u32 tx_bcbdata1;
|
||||
u32 reserved3[0x7ff-0x207];
|
||||
u32 vp_status;
|
||||
u32 vp_pr_cd;
|
||||
u32 vp_stuff;
|
||||
u32 vp_remap;
|
||||
u32 vp_conf;
|
||||
u32 vp_stat;
|
||||
u32 vp_int;
|
||||
u32 vp_mask;
|
||||
u32 vp_pol;
|
||||
u32 reserved4[0xfff-0x808];
|
||||
u32 fc_invidconf;
|
||||
u32 fc_inhactv0;
|
||||
u32 fc_inhactv1;
|
||||
u32 fc_inhblank0;
|
||||
u32 fc_inhblank1;
|
||||
u32 fc_invactv0;
|
||||
u32 fc_invactv1;
|
||||
u32 fc_invblank;
|
||||
u32 fc_hsyncindelay0;
|
||||
u32 fc_hsyncindelay1;
|
||||
u32 fc_hsyncinwidth0;
|
||||
u32 fc_hsyncinwidth1;
|
||||
u32 fc_vsyncindelay;
|
||||
u32 fc_vsyncinwidth;
|
||||
u32 fc_infreq0;
|
||||
u32 fc_infreq1;
|
||||
u32 fc_infreq2;
|
||||
u32 fc_ctrldur;
|
||||
u32 fc_exctrldur;
|
||||
u32 fc_exctrlspac;
|
||||
u32 fc_ch0pream;
|
||||
u32 fc_ch1pream;
|
||||
u32 fc_ch2pream;
|
||||
u32 fc_aviconf3;
|
||||
u32 fc_gcp;
|
||||
u32 fc_aviconf0;
|
||||
u32 fc_aviconf1;
|
||||
u32 fc_aviconf2;
|
||||
u32 fc_avivid;
|
||||
u32 fc_avietb0;
|
||||
u32 fc_avietb1;
|
||||
u32 fc_avisbb0;
|
||||
u32 fc_avisbb1;
|
||||
u32 fc_avielb0;
|
||||
u32 fc_avielb1;
|
||||
u32 fc_avisrb0;
|
||||
u32 fc_avisrb1;
|
||||
u32 fc_audiconf0;
|
||||
u32 fc_audiconf1;
|
||||
u32 fc_audiconf2;
|
||||
u32 fc_audiconf3;
|
||||
u32 fc_vsdieeeid0;
|
||||
u32 fc_vsdsize;
|
||||
u32 reserved7[0x2fff-0x102a];
|
||||
u32 phy_conf0;
|
||||
u32 phy_tst0;
|
||||
u32 phy_tst1;
|
||||
u32 phy_tst2;
|
||||
u32 phy_stat0;
|
||||
u32 phy_int0;
|
||||
u32 phy_mask0;
|
||||
u32 phy_pol0;
|
||||
u32 reserved8[0x301f-0x3007];
|
||||
u32 phy_i2cm_slave_addr;
|
||||
u32 phy_i2cm_address_addr;
|
||||
u32 phy_i2cm_datao_1_addr;
|
||||
u32 phy_i2cm_datao_0_addr;
|
||||
u32 phy_i2cm_datai_1_addr;
|
||||
u32 phy_i2cm_datai_0_addr;
|
||||
u32 phy_i2cm_operation_addr;
|
||||
u32 phy_i2cm_int_addr;
|
||||
u32 phy_i2cm_ctlint_addr;
|
||||
u32 phy_i2cm_div_addr;
|
||||
u32 phy_i2cm_softrstz_addr;
|
||||
u32 phy_i2cm_ss_scl_hcnt_1_addr;
|
||||
u32 phy_i2cm_ss_scl_hcnt_0_addr;
|
||||
u32 phy_i2cm_ss_scl_lcnt_1_addr;
|
||||
u32 phy_i2cm_ss_scl_lcnt_0_addr;
|
||||
u32 phy_i2cm_fs_scl_hcnt_1_addr;
|
||||
u32 phy_i2cm_fs_scl_hcnt_0_addr;
|
||||
u32 phy_i2cm_fs_scl_lcnt_1_addr;
|
||||
u32 phy_i2cm_fs_scl_lcnt_0_addr;
|
||||
u32 reserved9[0x30ff-0x3032];
|
||||
u32 aud_conf0;
|
||||
u32 aud_conf1;
|
||||
u32 aud_int;
|
||||
u32 aud_conf2;
|
||||
u32 aud_int1;
|
||||
u32 reserved32[0x31ff-0x3104];
|
||||
u32 aud_n1;
|
||||
u32 aud_n2;
|
||||
u32 aud_n3;
|
||||
u32 aud_cts1;
|
||||
u32 aud_cts2;
|
||||
u32 aud_cts3;
|
||||
u32 aud_inputclkfs;
|
||||
u32 reserved12[0x3fff-0x3206];
|
||||
u32 mc_sfrdiv;
|
||||
u32 mc_clkdis;
|
||||
u32 mc_swrstz;
|
||||
u32 mc_opctrl;
|
||||
u32 mc_flowctrl;
|
||||
u32 mc_phyrstz;
|
||||
u32 mc_lockonclock;
|
||||
u32 mc_heacphy_rst;
|
||||
u32 reserved13[0x40ff-0x4007];
|
||||
u32 csc_cfg;
|
||||
u32 csc_scale;
|
||||
struct {
|
||||
u32 msb;
|
||||
u32 lsb;
|
||||
} csc_coef[3][4];
|
||||
u32 reserved17[0x7dff-0x4119];
|
||||
u32 i2cm_slave;
|
||||
u32 i2c_address;
|
||||
u32 i2cm_datao;
|
||||
u32 i2cm_datai;
|
||||
u32 i2cm_operation;
|
||||
u32 i2cm_int;
|
||||
u32 i2cm_ctlint;
|
||||
u32 i2cm_div;
|
||||
u32 i2cm_segaddr;
|
||||
u32 i2cm_softrstz;
|
||||
u32 i2cm_segptr;
|
||||
u32 i2cm_ss_scl_hcnt_1_addr;
|
||||
u32 i2cm_ss_scl_hcnt_0_addr;
|
||||
u32 i2cm_ss_scl_lcnt_1_addr;
|
||||
u32 i2cm_ss_scl_lcnt_0_addr;
|
||||
u32 i2cm_fs_scl_hcnt_1_addr;
|
||||
u32 i2cm_fs_scl_hcnt_0_addr;
|
||||
u32 i2cm_fs_scl_lcnt_1_addr;
|
||||
u32 i2cm_fs_scl_lcnt_0_addr;
|
||||
u32 reserved18[0x7e1f-0x7e12];
|
||||
u32 i2cm_buf0;
|
||||
};
|
||||
check_member(rk3288_hdmi, i2cm_buf0, 0x1f880);
|
||||
|
||||
enum {
|
||||
/* HDMI PHY registers define */
|
||||
PHY_OPMODE_PLLCFG = 0x06,
|
||||
PHY_CKCALCTRL = 0x05,
|
||||
PHY_CKSYMTXCTRL = 0x09,
|
||||
PHY_VLEVCTRL = 0x0e,
|
||||
PHY_PLLCURRCTRL = 0x10,
|
||||
PHY_PLLPHBYCTRL = 0x13,
|
||||
PHY_PLLGMPCTRL = 0x15,
|
||||
PHY_PLLCLKBISTPHASE = 0x17,
|
||||
PHY_TXTERM = 0x19,
|
||||
|
||||
/* ih_phy_stat0 field values */
|
||||
HDMI_IH_PHY_STAT0_HPD = 0x1,
|
||||
|
||||
/* ih_mute field values */
|
||||
HDMI_IH_MUTE_MUTE_WAKEUP_INTERRUPT = 0x2,
|
||||
HDMI_IH_MUTE_MUTE_ALL_INTERRUPT = 0x1,
|
||||
|
||||
/* tx_invid0 field values */
|
||||
HDMI_TX_INVID0_INTERNAL_DE_GENERATOR_DISABLE = 0x00,
|
||||
HDMI_TX_INVID0_VIDEO_MAPPING_MASK = 0x1f,
|
||||
HDMI_TX_INVID0_VIDEO_MAPPING_OFFSET = 0,
|
||||
|
||||
/* tx_instuffing field values */
|
||||
HDMI_TX_INSTUFFING_BDBDATA_STUFFING_ENABLE = 0x4,
|
||||
HDMI_TX_INSTUFFING_RCRDATA_STUFFING_ENABLE = 0x2,
|
||||
HDMI_TX_INSTUFFING_GYDATA_STUFFING_ENABLE = 0x1,
|
||||
|
||||
/* vp_pr_cd field values */
|
||||
HDMI_VP_PR_CD_COLOR_DEPTH_MASK = 0xf0,
|
||||
HDMI_VP_PR_CD_COLOR_DEPTH_OFFSET = 4,
|
||||
HDMI_VP_PR_CD_DESIRED_PR_FACTOR_MASK = 0x0f,
|
||||
HDMI_VP_PR_CD_DESIRED_PR_FACTOR_OFFSET = 0,
|
||||
|
||||
/* vp_stuff field values */
|
||||
HDMI_VP_STUFF_IDEFAULT_PHASE_MASK = 0x20,
|
||||
HDMI_VP_STUFF_IDEFAULT_PHASE_OFFSET = 5,
|
||||
HDMI_VP_STUFF_YCC422_STUFFING_MASK = 0x4,
|
||||
HDMI_VP_STUFF_YCC422_STUFFING_STUFFING_MODE = 0x4,
|
||||
HDMI_VP_STUFF_PP_STUFFING_MASK = 0x2,
|
||||
HDMI_VP_STUFF_PP_STUFFING_STUFFING_MODE = 0x2,
|
||||
HDMI_VP_STUFF_PR_STUFFING_MASK = 0x1,
|
||||
HDMI_VP_STUFF_PR_STUFFING_STUFFING_MODE = 0x1,
|
||||
|
||||
/* vp_conf field values */
|
||||
HDMI_VP_CONF_BYPASS_EN_MASK = 0x40,
|
||||
HDMI_VP_CONF_BYPASS_EN_ENABLE = 0x40,
|
||||
HDMI_VP_CONF_PP_EN_ENMASK = 0x20,
|
||||
HDMI_VP_CONF_PP_EN_DISABLE = 0x00,
|
||||
HDMI_VP_CONF_PR_EN_MASK = 0x10,
|
||||
HDMI_VP_CONF_PR_EN_DISABLE = 0x00,
|
||||
HDMI_VP_CONF_YCC422_EN_MASK = 0x8,
|
||||
HDMI_VP_CONF_YCC422_EN_DISABLE = 0x0,
|
||||
HDMI_VP_CONF_BYPASS_SELECT_MASK = 0x4,
|
||||
HDMI_VP_CONF_BYPASS_SELECT_VID_PACKETIZER = 0x4,
|
||||
HDMI_VP_CONF_OUTPUT_SELECTOR_MASK = 0x3,
|
||||
HDMI_VP_CONF_OUTPUT_SELECTOR_BYPASS = 0x3,
|
||||
|
||||
/* vp_remap field values */
|
||||
HDMI_VP_REMAP_YCC422_16BIT = 0x0,
|
||||
|
||||
/* fc_invidconf field values */
|
||||
HDMI_FC_INVIDCONF_HDCP_KEEPOUT_MASK = 0x80,
|
||||
HDMI_FC_INVIDCONF_HDCP_KEEPOUT_ACTIVE = 0x80,
|
||||
HDMI_FC_INVIDCONF_HDCP_KEEPOUT_INACTIVE = 0x00,
|
||||
HDMI_FC_INVIDCONF_VSYNC_IN_POLARITY_MASK = 0x40,
|
||||
HDMI_FC_INVIDCONF_VSYNC_IN_POLARITY_ACTIVE_HIGH = 0x40,
|
||||
HDMI_FC_INVIDCONF_VSYNC_IN_POLARITY_ACTIVE_LOW = 0x00,
|
||||
HDMI_FC_INVIDCONF_HSYNC_IN_POLARITY_MASK = 0x20,
|
||||
HDMI_FC_INVIDCONF_HSYNC_IN_POLARITY_ACTIVE_HIGH = 0x20,
|
||||
HDMI_FC_INVIDCONF_HSYNC_IN_POLARITY_ACTIVE_LOW = 0x00,
|
||||
HDMI_FC_INVIDCONF_DE_IN_POLARITY_MASK = 0x10,
|
||||
HDMI_FC_INVIDCONF_DE_IN_POLARITY_ACTIVE_HIGH = 0x10,
|
||||
HDMI_FC_INVIDCONF_DE_IN_POLARITY_ACTIVE_LOW = 0x00,
|
||||
HDMI_FC_INVIDCONF_DVI_MODEZ_MASK = 0x8,
|
||||
HDMI_FC_INVIDCONF_DVI_MODEZ_HDMI_MODE = 0x8,
|
||||
HDMI_FC_INVIDCONF_DVI_MODEZ_DVI_MODE = 0x0,
|
||||
HDMI_FC_INVIDCONF_R_V_BLANK_IN_OSC_MASK = 0x2,
|
||||
HDMI_FC_INVIDCONF_R_V_BLANK_IN_OSC_ACTIVE_HIGH = 0x2,
|
||||
HDMI_FC_INVIDCONF_R_V_BLANK_IN_OSC_ACTIVE_LOW = 0x0,
|
||||
HDMI_FC_INVIDCONF_IN_I_P_MASK = 0x1,
|
||||
HDMI_FC_INVIDCONF_IN_I_P_INTERLACED = 0x1,
|
||||
HDMI_FC_INVIDCONF_IN_I_P_PROGRESSIVE = 0x0,
|
||||
|
||||
|
||||
/* fc_aviconf0-fc_aviconf3 field values */
|
||||
HDMI_FC_AVICONF0_PIX_FMT_MASK = 0x03,
|
||||
HDMI_FC_AVICONF0_PIX_FMT_RGB = 0x00,
|
||||
HDMI_FC_AVICONF0_PIX_FMT_YCBCR422 = 0x01,
|
||||
HDMI_FC_AVICONF0_PIX_FMT_YCBCR444 = 0x02,
|
||||
HDMI_FC_AVICONF0_ACTIVE_FMT_MASK = 0x40,
|
||||
HDMI_FC_AVICONF0_ACTIVE_FMT_INFO_PRESENT = 0x40,
|
||||
HDMI_FC_AVICONF0_ACTIVE_FMT_NO_INFO = 0x00,
|
||||
HDMI_FC_AVICONF0_BAR_DATA_MASK = 0x0c,
|
||||
HDMI_FC_AVICONF0_BAR_DATA_NO_DATA = 0x00,
|
||||
HDMI_FC_AVICONF0_BAR_DATA_VERT_BAR = 0x04,
|
||||
HDMI_FC_AVICONF0_BAR_DATA_HORIZ_BAR = 0x08,
|
||||
HDMI_FC_AVICONF0_BAR_DATA_VERT_HORIZ_BAR = 0x0c,
|
||||
HDMI_FC_AVICONF0_SCAN_INFO_MASK = 0x30,
|
||||
HDMI_FC_AVICONF0_SCAN_INFO_OVERSCAN = 0x10,
|
||||
HDMI_FC_AVICONF0_SCAN_INFO_UNDERSCAN = 0x20,
|
||||
HDMI_FC_AVICONF0_SCAN_INFO_NODATA = 0x00,
|
||||
|
||||
HDMI_FC_AVICONF1_ACTIVE_ASPECT_RATIO_MASK = 0x0f,
|
||||
HDMI_FC_AVICONF1_ACTIVE_ASPECT_RATIO_USE_CODED = 0x08,
|
||||
HDMI_FC_AVICONF1_ACTIVE_ASPECT_RATIO_4_3 = 0x09,
|
||||
HDMI_FC_AVICONF1_ACTIVE_ASPECT_RATIO_16_9 = 0x0a,
|
||||
HDMI_FC_AVICONF1_ACTIVE_ASPECT_RATIO_14_9 = 0x0b,
|
||||
HDMI_FC_AVICONF1_CODED_ASPECT_RATIO_MASK = 0x30,
|
||||
HDMI_FC_AVICONF1_CODED_ASPECT_RATIO_NO_DATA = 0x00,
|
||||
HDMI_FC_AVICONF1_CODED_ASPECT_RATIO_4_3 = 0x10,
|
||||
HDMI_FC_AVICONF1_CODED_ASPECT_RATIO_16_9 = 0x20,
|
||||
HDMI_FC_AVICONF1_COLORIMETRY_MASK = 0xc0,
|
||||
HDMI_FC_AVICONF1_COLORIMETRY_NO_DATA = 0x00,
|
||||
HDMI_FC_AVICONF1_COLORIMETRY_SMPTE = 0x40,
|
||||
HDMI_FC_AVICONF1_COLORIMETRY_ITUR = 0x80,
|
||||
HDMI_FC_AVICONF1_COLORIMETRY_EXTENDED_INFO = 0xc0,
|
||||
|
||||
HDMI_FC_AVICONF2_SCALING_MASK = 0x03,
|
||||
HDMI_FC_AVICONF2_SCALING_NONE = 0x00,
|
||||
HDMI_FC_AVICONF2_SCALING_HORIZ = 0x01,
|
||||
HDMI_FC_AVICONF2_SCALING_VERT = 0x02,
|
||||
HDMI_FC_AVICONF2_SCALING_HORIZ_vert = 0x03,
|
||||
HDMI_FC_AVICONF2_RGB_QUANT_MASK = 0x0c,
|
||||
HDMI_FC_AVICONF2_RGB_QUANT_DEFAULT = 0x00,
|
||||
HDMI_FC_AVICONF2_RGB_QUANT_LIMITED_RANGE = 0x04,
|
||||
HDMI_FC_AVICONF2_RGB_QUANT_FULL_RANGE = 0x08,
|
||||
HDMI_FC_AVICONF2_EXT_COLORIMETRY_MASK = 0x70,
|
||||
HDMI_FC_AVICONF2_EXT_COLORIMETRY_XVYCC601 = 0x00,
|
||||
HDMI_FC_AVICONF2_EXT_COLORIMETRY_XVYCC709 = 0x10,
|
||||
HDMI_FC_AVICONF2_EXT_COLORIMETRY_SYCC601 = 0x20,
|
||||
HDMI_FC_AVICONF2_EXT_COLORIMETRY_ADOBE_YCC601 = 0x30,
|
||||
HDMI_FC_AVICONF2_EXT_COLORIMETRY_ADOBE_RGB = 0x40,
|
||||
HDMI_FC_AVICONF2_IT_CONTENT_MASK = 0x80,
|
||||
HDMI_FC_AVICONF2_IT_CONTENT_NO_DATA = 0x00,
|
||||
HDMI_FC_AVICONF2_IT_CONTENT_VALID = 0x80,
|
||||
|
||||
HDMI_FC_AVICONF3_IT_CONTENT_TYPE_MASK = 0x03,
|
||||
HDMI_FC_AVICONF3_IT_CONTENT_TYPE_GRAPHICS = 0x00,
|
||||
HDMI_FC_AVICONF3_IT_CONTENT_TYPE_PHOTO = 0x01,
|
||||
HDMI_FC_AVICONF3_IT_CONTENT_TYPE_CINEMA = 0x02,
|
||||
HDMI_FC_AVICONF3_IT_CONTENT_TYPE_GAME = 0x03,
|
||||
HDMI_FC_AVICONF3_QUANT_RANGE_MASK = 0x0c,
|
||||
HDMI_FC_AVICONF3_QUANT_RANGE_LIMITED = 0x00,
|
||||
HDMI_FC_AVICONF3_QUANT_RANGE_FULL = 0x04,
|
||||
|
||||
/* fc_gcp field values*/
|
||||
HDMI_FC_GCP_SET_AVMUTE = 0x02,
|
||||
HDMI_FC_GCP_CLEAR_AVMUTE = 0x01,
|
||||
|
||||
/* phy_conf0 field values */
|
||||
HDMI_PHY_CONF0_PDZ_MASK = 0x80,
|
||||
HDMI_PHY_CONF0_PDZ_OFFSET = 7,
|
||||
HDMI_PHY_CONF0_ENTMDS_MASK = 0x40,
|
||||
HDMI_PHY_CONF0_ENTMDS_OFFSET = 6,
|
||||
HDMI_PHY_CONF0_SPARECTRL_MASK = 0x20,
|
||||
HDMI_PHY_CONF0_SPARECTRL_OFFSET = 5,
|
||||
HDMI_PHY_CONF0_GEN2_PDDQ_MASK = 0x10,
|
||||
HDMI_PHY_CONF0_GEN2_PDDQ_OFFSET = 4,
|
||||
HDMI_PHY_CONF0_GEN2_TXPWRON_MASK = 0x8,
|
||||
HDMI_PHY_CONF0_GEN2_TXPWRON_OFFSET = 3,
|
||||
HDMI_PHY_CONF0_SELDATAENPOL_MASK = 0x2,
|
||||
HDMI_PHY_CONF0_SELDATAENPOL_OFFSET = 1,
|
||||
HDMI_PHY_CONF0_SELDIPIF_MASK = 0x1,
|
||||
HDMI_PHY_CONF0_SELDIPIF_OFFSET = 0,
|
||||
|
||||
/* phy_tst0 field values */
|
||||
HDMI_PHY_TST0_TSTCLR_MASK = 0x20,
|
||||
HDMI_PHY_TST0_TSTCLR_OFFSET = 5,
|
||||
|
||||
/* phy_stat0 field values */
|
||||
HDMI_PHY_HPD = 0x02,
|
||||
HDMI_PHY_TX_PHY_LOCK = 0x01,
|
||||
|
||||
/* phy_i2cm_slave_addr field values */
|
||||
HDMI_PHY_I2CM_SLAVE_ADDR_PHY_GEN2 = 0x69,
|
||||
|
||||
/* phy_i2cm_operation_addr field values */
|
||||
HDMI_PHY_I2CM_OPERATION_ADDR_WRITE = 0x10,
|
||||
|
||||
/* hdmi_phy_i2cm_int_addr */
|
||||
HDMI_PHY_I2CM_INT_ADDR_DONE_POL = 0x08,
|
||||
|
||||
/* hdmi_phy_i2cm_ctlint_addr */
|
||||
HDMI_PHY_I2CM_CTLINT_ADDR_NAC_POL = 0x80,
|
||||
HDMI_PHY_I2CM_CTLINT_ADDR_ARBITRATION_POL = 0x08,
|
||||
|
||||
/* aud_conf0 field values */
|
||||
HDMI_AUD_CONF0_SW_AUDIO_FIFO_RST = 0x80,
|
||||
HDMI_AUD_CONF0_I2S_SELECT = 0x20,
|
||||
HDMI_AUD_CONF0_I2S_IN_EN_0 = 0x01,
|
||||
HDMI_AUD_CONF0_I2S_IN_EN_1 = 0x02,
|
||||
HDMI_AUD_CONF0_I2S_IN_EN_2 = 0x04,
|
||||
HDMI_AUD_CONF0_I2S_IN_EN_3 = 0x08,
|
||||
|
||||
/* aud_conf0 field values */
|
||||
HDMI_AUD_CONF1_I2S_MODE_STANDARD_MODE = 0x0,
|
||||
HDMI_AUD_CONF1_I2S_WIDTH_16BIT = 0x10,
|
||||
|
||||
/* aud_n3 field values */
|
||||
HDMI_AUD_N3_NCTS_ATOMIC_WRITE = 0x80,
|
||||
HDMI_AUD_N3_AUDN19_16_MASK = 0x0f,
|
||||
|
||||
/* aud_cts3 field values */
|
||||
HDMI_AUD_CTS3_N_SHIFT_OFFSET = 5,
|
||||
HDMI_AUD_CTS3_N_SHIFT_MASK = 0xe0,
|
||||
HDMI_AUD_CTS3_N_SHIFT_1 = 0,
|
||||
HDMI_AUD_CTS3_N_SHIFT_16 = 0x20,
|
||||
HDMI_AUD_CTS3_N_SHIFT_32 = 0x40,
|
||||
HDMI_AUD_CTS3_N_SHIFT_64 = 0x60,
|
||||
HDMI_AUD_CTS3_N_SHIFT_128 = 0x80,
|
||||
HDMI_AUD_CTS3_N_SHIFT_256 = 0xa0,
|
||||
HDMI_AUD_CTS3_CTS_MANUAL = 0x10,
|
||||
HDMI_AUD_CTS3_AUDCTS19_16_MASK = 0x0f,
|
||||
|
||||
/* aud_inputclkfs filed values */
|
||||
HDMI_AUD_INPUTCLKFS_128 = 0x0,
|
||||
|
||||
/* mc_clkdis field values */
|
||||
HDMI_MC_CLKDIS_AUDCLK_DISABLE = 0x8,
|
||||
HDMI_MC_CLKDIS_TMDSCLK_DISABLE = 0x2,
|
||||
HDMI_MC_CLKDIS_PIXELCLK_DISABLE = 0x1,
|
||||
|
||||
/* mc_swrstz field values */
|
||||
HDMI_MC_SWRSTZ_II2SSWRST_REQ = 0x08,
|
||||
HDMI_MC_SWRSTZ_TMDSSWRST_REQ = 0x02,
|
||||
|
||||
/* mc_flowctrl field values */
|
||||
HDMI_MC_FLOWCTRL_FEED_THROUGH_OFF_CSC_IN_PATH = 0x1,
|
||||
HDMI_MC_FLOWCTRL_FEED_THROUGH_OFF_CSC_BYPASS = 0x0,
|
||||
|
||||
/* mc_phyrstz field values */
|
||||
HDMI_MC_PHYRSTZ_ASSERT = 0x0,
|
||||
HDMI_MC_PHYRSTZ_DEASSERT = 0x1,
|
||||
|
||||
/* mc_heacphy_rst field values */
|
||||
HDMI_MC_HEACPHY_RST_ASSERT = 0x1,
|
||||
|
||||
/* csc_cfg field values */
|
||||
HDMI_CSC_CFG_INTMODE_DISABLE = 0x00,
|
||||
|
||||
/* csc_scale field values */
|
||||
HDMI_CSC_SCALE_CSC_COLORDE_PTH_MASK = 0xf0,
|
||||
HDMI_CSC_SCALE_CSC_COLORDE_PTH_24BPP = 0x00,
|
||||
HDMI_CSC_SCALE_CSC_COLORDE_PTH_30BPP = 0x50,
|
||||
HDMI_CSC_SCALE_CSC_COLORDE_PTH_36BPP = 0x60,
|
||||
HDMI_CSC_SCALE_CSC_COLORDE_PTH_48BPP = 0x70,
|
||||
HDMI_CSC_SCALE_CSCSCALE_MASK = 0x03,
|
||||
|
||||
/* i2cm filed values */
|
||||
HDMI_I2CM_SLAVE_DDC_ADDR = 0x50,
|
||||
HDMI_I2CM_SEGADDR_DDC = 0x30,
|
||||
HDMI_I2CM_OPT_RD8_EXT = 0x8,
|
||||
HDMI_I2CM_OPT_RD8 = 0x4,
|
||||
HDMI_I2CM_DIV_FAST_STD_MODE = 0x8,
|
||||
HDMI_I2CM_DIV_FAST_MODE = 0x8,
|
||||
HDMI_I2CM_DIV_STD_MODE = 0x0,
|
||||
HDMI_I2CM_SOFTRSTZ = 0x1,
|
||||
};
|
||||
|
||||
/*
|
||||
struct display_timing;
|
||||
struct rk3288_grf;
|
||||
|
||||
int rk_hdmi_init(struct rk3288_grf *grf, u32 vop_id);
|
||||
int rk_hdmi_enable(const struct display_timing *edid);
|
||||
int rk_hdmi_get_edid(struct rk3288_grf *grf, struct display_timing *edid);
|
||||
*/
|
||||
|
||||
#endif
|
||||
@@ -38,6 +38,7 @@ enum periph_id {
|
||||
PERIPH_ID_SDMMC1,
|
||||
PERIPH_ID_SDMMC2,
|
||||
PERIPH_ID_HDMI,
|
||||
PERIPH_ID_GMAC,
|
||||
|
||||
PERIPH_ID_COUNT,
|
||||
|
||||
|
||||
@@ -242,7 +242,7 @@ struct sunxi_ccm_reg {
|
||||
/* ahb_gate0 offsets */
|
||||
#define AHB_GATE_OFFSET_USB_OHCI1 30
|
||||
#define AHB_GATE_OFFSET_USB_OHCI0 29
|
||||
#ifdef CONFIG_MACH_SUN8I_H3
|
||||
#ifdef CONFIG_MACH_SUNXI_H3_H5
|
||||
/*
|
||||
* These are EHCI1 - EHCI3 in the datasheet (EHCI0 is for the OTG) we call
|
||||
* them 0 - 2 like they were called on older SoCs.
|
||||
@@ -293,7 +293,7 @@ struct sunxi_ccm_reg {
|
||||
#define CCM_USB_CTRL_PHY1_CLK (0x1 << 9)
|
||||
#define CCM_USB_CTRL_PHY2_CLK (0x1 << 10)
|
||||
#define CCM_USB_CTRL_PHY3_CLK (0x1 << 11)
|
||||
#ifdef CONFIG_MACH_SUN8I_H3
|
||||
#ifdef CONFIG_MACH_SUNXI_H3_H5
|
||||
/*
|
||||
* These are OHCI1 - OHCI3 in the datasheet (OHCI0 is for the OTG) we call
|
||||
* them 0 - 2 like they were called on older SoCs.
|
||||
|
||||
@@ -15,5 +15,6 @@
|
||||
|
||||
#define SOCID_A64 0x1689
|
||||
#define SOCID_H3 0x1680
|
||||
#define SOCID_H5 0x1718
|
||||
|
||||
#endif /* _SUNXI_CPU_H */
|
||||
|
||||
@@ -56,7 +56,7 @@
|
||||
#define SUNXI_USB2_BASE 0x01c1c000
|
||||
#endif
|
||||
#ifdef CONFIG_SUNXI_GEN_SUN6I
|
||||
#if defined(CONFIG_MACH_SUN8I_H3) || defined(CONFIG_MACH_SUN50I)
|
||||
#if defined(CONFIG_MACH_SUNXI_H3_H5) || defined(CONFIG_MACH_SUN50I)
|
||||
#define SUNXI_USBPHY_BASE 0x01c19000
|
||||
#define SUNXI_USB0_BASE 0x01c1a000
|
||||
#define SUNXI_USB1_BASE 0x01c1b000
|
||||
@@ -94,7 +94,7 @@
|
||||
#define SUNXI_KEYPAD_BASE 0x01c23000
|
||||
#define SUNXI_TZPC_BASE 0x01c23400
|
||||
|
||||
#if defined(CONFIG_MACH_SUN8I_A83T) || defined(CONFIG_MACH_SUN8I_H3) || \
|
||||
#if defined(CONFIG_MACH_SUN8I_A83T) || defined(CONFIG_MACH_SUNXI_H3_H5) || \
|
||||
defined(CONFIG_MACH_SUN50I)
|
||||
/* SID address space starts at 0x01c1400, but e-fuse is at offset 0x200 */
|
||||
#define SUNXI_SIDC_BASE 0x01c14000
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user