ARM: DT updates for v4.1
As always, this tends to be one of our bigger branches. There are lots of updates this release, but not that many jumps out as something that needs more detailed coverage. Some of the highlights are: - DTs for the new Annapurna Labs Alpine platform - More graphics DT pieces falling into place on Exynos, bridges, clocks. - Plenty of DT updates for Qualcomm platforms for various IP blocks - Some churn on Tegra due to switch-over to tool-generated pinctrl data - Misc fixes and updates for Atmel at91 platforms - Various DT updates to add IP block support on Broadcom's Cygnus platforms - More updates for Renesas platforms as DT support is added for various IP blocks (IPMMU, display, audio, etc). -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQIcBAABAgAGBQJVNzKFAAoJEIwa5zzehBx3JtEP/1g89CW7iZHAUyIiC+jtgqck ASoplr13DLD0HWjjWITX3zm7J/iY57YjEv14tHH/xmrh5YCCZ+mRLqiD/Plnv0Zv JdJRRJv/NMnMlu/tA1aBO326JOt2Vw+3YngmYayDpoRzVifx2YTJLbu2difa+6rM vN6FpOE6U5jkvM16+gqxKxyx0tGIQz9cTn+9q2V1fDS++vZ2VvqfB5pTNul3BKAF OVCNFJ/EUE9EPMPbmgDjYmNE/POj64kF32n7NBEQz2Z+nwDNxDAecfF356hV7o5g JsFLNK+4c2QQqBL775xzCf5kK+n/V2cFEpDica+hU70AdWsjdAlUFrbOsWGUJLRi 4Blrv8GRxEKeOCs8AFKYCM+z3zf2ais7JMteD2VW26ywCwpUt+QEZTUVHRHU3NYQ BMI7uyTGIH2GyLyS+Av3vikza8IbDIwlYuuDpXhCJSXXgKSnbzCrpjkhyGLccBJR k3qgUwPJVw9hP1qaaNgvb7p9oNhTP2yLl3fQ68WqI7QWIupW0/s12INhzFFgt6zU Nzcx010ku9yMeMMGtfiNgA3cMln+Ysfs1UIUOMQ36zP1PCtHJkZgwtZzTsBE4A04 KqmiLL/+7qsconEhEanmDzTpeXiNzERnOKSSqVN7Fwp89GEFJLrWpHSXI+8SBTHC fB54LRTNYdlcoN0QshcT =wqhB -----END PGP SIGNATURE----- Merge tag 'armsoc-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc Pull ARM DT updates from Olof Johansson: "As always, this tends to be one of our bigger branches. There are lots of updates this release, but not that many jumps out as something that needs more detailed coverage. Some of the highlights are: - DTs for the new Annapurna Labs Alpine platform - more graphics DT pieces falling into place on Exynos, bridges, clocks. - plenty of DT updates for Qualcomm platforms for various IP blocks - some churn on Tegra due to switch-over to tool-generated pinctrl data - misc fixes and updates for Atmel at91 platforms - various DT updates to add IP block support on Broadcom's Cygnus platforms - more updates for Renesas platforms as DT support is added for various IP blocks (IPMMU, display, audio, etc)" * tag 'armsoc-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (231 commits) ARM: dts: alpine: add internal pci Revert "ARM: dts: mt8135: Add pinctrl/GPIO/EINT node for mt8135." ARM: mvebu: use 0xf1000000 as internal registers on Armada 370 DB ARM: dts: qcom: Add idle state device nodes for 8064 ARM: dts: qcom: Add idle states device nodes for 8084 ARM: dts: qcom: Add idle states device nodes for 8974/8074 ARM: dts: qcom: Update power-controller device node for 8064 Krait CPUs ARM: dts: qcom: Add power-controller device node for 8084 Krait CPUs ARM: dts: qcom: Add power-controller device node for 8074 Krait CPUs devicetree: bindings: Document qcom,idle-states devicetree: bindings: Update qcom,saw2 node bindings dt-bindings: Add #defines for MSM8916 clocks and resets arm: dts: qcom: Add LPASS Audio HW to IPQ8064 device tree arm: dts: qcom: Add APQ8084 chipset SPMI PMIC's nodes arm: dts: qcom: Add 8x74 chipset SPMI PMIC's nodes arm: dts: qcom: Add SPMI PMIC Arbiter nodes for APQ8084 and MSM8974 arm: dts: qcom: Add LCC nodes arm: dts: qcom: Add TCSR support for MSM8960 arm: dts: qcom: Add TCSR support for MSM8660 arm: dts: qcom: Add TCSR support for IPQ8064 ...
This commit is contained in:
commit
5c73cc4b6c
206 changed files with 19171 additions and 2103 deletions
|
@ -22,6 +22,9 @@ Optional Properties:
|
|||
- pclkN, clkN: Pairs of parent of input clock and input clock to the
|
||||
devices in this power domain. Maximum of 4 pairs (N = 0 to 3)
|
||||
are supported currently.
|
||||
- asbN: Clocks required by asynchronous bridges (ASB) present in
|
||||
the power domain. These clock should be enabled during power
|
||||
domain on/off operations.
|
||||
- power-domains: phandle pointing to the parent power domain, for more details
|
||||
see Documentation/devicetree/bindings/power/power_domain.txt
|
||||
|
||||
|
|
|
@ -18,6 +18,8 @@ Main node required properties:
|
|||
"arm,arm11mp-gic"
|
||||
"brcm,brahma-b15-gic"
|
||||
"arm,arm1176jzf-devchip-gic"
|
||||
"qcom,msm-8660-qgic"
|
||||
"qcom,msm-qgic2"
|
||||
- interrupt-controller : Identifies the node as an interrupt controller
|
||||
- #interrupt-cells : Specifies the number of cells needed to encode an
|
||||
interrupt source. The type shall be a <u32> and the value shall be 3.
|
||||
|
|
|
@ -42,6 +42,7 @@ board. Currently known boards are:
|
|||
"lacie,cloudbox"
|
||||
"lacie,inetspace_v2"
|
||||
"lacie,laplug"
|
||||
"lacie,nas2big"
|
||||
"lacie,netspace_lite_v2"
|
||||
"lacie,netspace_max_v2"
|
||||
"lacie,netspace_mini_v2"
|
||||
|
|
|
@ -0,0 +1,84 @@
|
|||
QCOM Idle States for cpuidle driver
|
||||
|
||||
ARM provides idle-state node to define the cpuidle states, as defined in [1].
|
||||
cpuidle-qcom is the cpuidle driver for Qualcomm SoCs and uses these idle
|
||||
states. Idle states have different enter/exit latency and residency values.
|
||||
The idle states supported by the QCOM SoC are defined as -
|
||||
|
||||
* Standby
|
||||
* Retention
|
||||
* Standalone Power Collapse (Standalone PC or SPC)
|
||||
* Power Collapse (PC)
|
||||
|
||||
Standby: Standby does a little more in addition to architectural clock gating.
|
||||
When the WFI instruction is executed the ARM core would gate its internal
|
||||
clocks. In addition to gating the clocks, QCOM cpus use this instruction as a
|
||||
trigger to execute the SPM state machine. The SPM state machine waits for the
|
||||
interrupt to trigger the core back in to active. This triggers the cache
|
||||
hierarchy to enter standby states, when all cpus are idle. An interrupt brings
|
||||
the SPM state machine out of its wait, the next step is to ensure that the
|
||||
cache hierarchy is also out of standby, and then the cpu is allowed to resume
|
||||
execution. This state is defined as a generic ARM WFI state by the ARM cpuidle
|
||||
driver and is not defined in the DT. The SPM state machine should be
|
||||
configured to execute this state by default and after executing every other
|
||||
state below.
|
||||
|
||||
Retention: Retention is a low power state where the core is clock gated and
|
||||
the memory and the registers associated with the core are retained. The
|
||||
voltage may be reduced to the minimum value needed to keep the processor
|
||||
registers active. The SPM should be configured to execute the retention
|
||||
sequence and would wait for interrupt, before restoring the cpu to execution
|
||||
state. Retention may have a slightly higher latency than Standby.
|
||||
|
||||
Standalone PC: A cpu can power down and warmboot if there is a sufficient time
|
||||
between the time it enters idle and the next known wake up. SPC mode is used
|
||||
to indicate a core entering a power down state without consulting any other
|
||||
cpu or the system resources. This helps save power only on that core. The SPM
|
||||
sequence for this idle state is programmed to power down the supply to the
|
||||
core, wait for the interrupt, restore power to the core, and ensure the
|
||||
system state including cache hierarchy is ready before allowing core to
|
||||
resume. Applying power and resetting the core causes the core to warmboot
|
||||
back into Elevation Level (EL) which trampolines the control back to the
|
||||
kernel. Entering a power down state for the cpu, needs to be done by trapping
|
||||
into a EL. Failing to do so, would result in a crash enforced by the warm boot
|
||||
code in the EL for the SoC. On SoCs with write-back L1 cache, the cache has to
|
||||
be flushed in s/w, before powering down the core.
|
||||
|
||||
Power Collapse: This state is similar to the SPC mode, but distinguishes
|
||||
itself in that the cpu acknowledges and permits the SoC to enter deeper sleep
|
||||
modes. In a hierarchical power domain SoC, this means L2 and other caches can
|
||||
be flushed, system bus, clocks - lowered, and SoC main XO clock gated and
|
||||
voltages reduced, provided all cpus enter this state. Since the span of low
|
||||
power modes possible at this state is vast, the exit latency and the residency
|
||||
of this low power mode would be considered high even though at a cpu level,
|
||||
this essentially is cpu power down. The SPM in this state also may handshake
|
||||
with the Resource power manager (RPM) processor in the SoC to indicate a
|
||||
complete application processor subsystem shut down.
|
||||
|
||||
The idle-state for QCOM SoCs are distinguished by the compatible property of
|
||||
the idle-states device node.
|
||||
|
||||
The devicetree representation of the idle state should be -
|
||||
|
||||
Required properties:
|
||||
|
||||
- compatible: Must be one of -
|
||||
"qcom,idle-state-ret",
|
||||
"qcom,idle-state-spc",
|
||||
"qcom,idle-state-pc",
|
||||
and "arm,idle-state".
|
||||
|
||||
Other required and optional properties are specified in [1].
|
||||
|
||||
Example:
|
||||
|
||||
idle-states {
|
||||
CPU_SPC: spc {
|
||||
compatible = "qcom,idle-state-spc", "arm,idle-state";
|
||||
entry-latency-us = <150>;
|
||||
exit-latency-us = <200>;
|
||||
min-residency-us = <2000>;
|
||||
};
|
||||
};
|
||||
|
||||
[1]. Documentation/devicetree/bindings/arm/idle-states.txt
|
|
@ -2,22 +2,31 @@ SPM AVS Wrapper 2 (SAW2)
|
|||
|
||||
The SAW2 is a wrapper around the Subsystem Power Manager (SPM) and the
|
||||
Adaptive Voltage Scaling (AVS) hardware. The SPM is a programmable
|
||||
micro-controller that transitions a piece of hardware (like a processor or
|
||||
power-controller that transitions a piece of hardware (like a processor or
|
||||
subsystem) into and out of low power modes via a direct connection to
|
||||
the PMIC. It can also be wired up to interact with other processors in the
|
||||
system, notifying them when a low power state is entered or exited.
|
||||
|
||||
Multiple revisions of the SAW hardware are supported using these Device Nodes.
|
||||
SAW2 revisions differ in the register offset and configuration data. Also, the
|
||||
same revision of the SAW in different SoCs may have different configuration
|
||||
data due the the differences in hardware capabilities. Hence the SoC name, the
|
||||
version of the SAW hardware in that SoC and the distinction between cpu (big
|
||||
or Little) or cache, may be needed to uniquely identify the SAW register
|
||||
configuration and initialization data. The compatible string is used to
|
||||
indicate this parameter.
|
||||
|
||||
PROPERTIES
|
||||
|
||||
- compatible:
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: shall contain "qcom,saw2". A more specific value should be
|
||||
one of:
|
||||
"qcom,saw2-v1"
|
||||
"qcom,saw2-v1.1"
|
||||
"qcom,saw2-v2"
|
||||
"qcom,saw2-v2.1"
|
||||
Definition: Must have
|
||||
"qcom,saw2"
|
||||
A more specific value could be one of:
|
||||
"qcom,apq8064-saw2-v1.1-cpu"
|
||||
"qcom,msm8974-saw2-v2.1-cpu"
|
||||
"qcom,apq8084-saw2-v2.1-cpu"
|
||||
|
||||
- reg:
|
||||
Usage: required
|
||||
|
@ -26,10 +35,23 @@ PROPERTIES
|
|||
the register region. An optional second element specifies
|
||||
the base address and size of the alias register region.
|
||||
|
||||
- regulator:
|
||||
Usage: optional
|
||||
Value type: boolean
|
||||
Definition: Indicates that this SPM device acts as a regulator device
|
||||
device for the core (CPU or Cache) the SPM is attached
|
||||
to.
|
||||
|
||||
Example:
|
||||
Example 1:
|
||||
|
||||
regulator@2099000 {
|
||||
power-controller@2099000 {
|
||||
compatible = "qcom,saw2";
|
||||
reg = <0x02099000 0x1000>, <0x02009000 0x1000>;
|
||||
regulator;
|
||||
};
|
||||
|
||||
Example 2:
|
||||
saw0: power-controller@f9089000 {
|
||||
compatible = "qcom,apq8084-saw2-v2.1-cpu", "qcom,saw2";
|
||||
reg = <0xf9089000 0x1000>, <0xf9009000 0x1000>;
|
||||
};
|
||||
|
|
|
@ -22,3 +22,7 @@ Rockchip platforms device tree bindings
|
|||
- compatible = "firefly,firefly-rk3288", "rockchip,rk3288";
|
||||
or
|
||||
- compatible = "firefly,firefly-rk3288-beta", "rockchip,rk3288";
|
||||
|
||||
- ChipSPARK PopMetal-RK3288 board:
|
||||
Required root node properties:
|
||||
- compatible = "chipspark,popmetal-rk3288", "rockchip,rk3288";
|
||||
|
|
|
@ -0,0 +1,32 @@
|
|||
NVIDIA Tegra Activity Monitor
|
||||
|
||||
The activity monitor block collects statistics about the behaviour of other
|
||||
components in the system. This information can be used to derive the rate at
|
||||
which the external memory needs to be clocked in order to serve all requests
|
||||
from the monitored clients.
|
||||
|
||||
Required properties:
|
||||
- compatible: should be "nvidia,tegra<chip>-actmon"
|
||||
- reg: offset and length of the register set for the device
|
||||
- interrupts: standard interrupt property
|
||||
- clocks: Must contain a phandle and clock specifier pair for each entry in
|
||||
clock-names. See ../../clock/clock-bindings.txt for details.
|
||||
- clock-names: Must include the following entries:
|
||||
- actmon
|
||||
- emc
|
||||
- resets: Must contain an entry for each entry in reset-names. See
|
||||
../../reset/reset.txt for details.
|
||||
- reset-names: Must include the following entries:
|
||||
- actmon
|
||||
|
||||
Example:
|
||||
actmon@6000c800 {
|
||||
compatible = "nvidia,tegra124-actmon";
|
||||
reg = <0x0 0x6000c800 0x0 0x400>;
|
||||
interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&tegra_car TEGRA124_CLK_ACTMON>,
|
||||
<&tegra_car TEGRA124_CLK_EMC>;
|
||||
clock-names = "actmon", "emc";
|
||||
resets = <&tegra_car 119>;
|
||||
reset-names = "actmon";
|
||||
};
|
71
Documentation/devicetree/bindings/media/ti,omap3isp.txt
Normal file
71
Documentation/devicetree/bindings/media/ti,omap3isp.txt
Normal file
|
@ -0,0 +1,71 @@
|
|||
OMAP 3 ISP Device Tree bindings
|
||||
===============================
|
||||
|
||||
The DT definitions can be found in include/dt-bindings/media/omap3-isp.h.
|
||||
|
||||
Required properties
|
||||
===================
|
||||
|
||||
compatible : must contain "ti,omap3-isp"
|
||||
|
||||
reg : the two registers sets (physical address and length) for the
|
||||
ISP. The first set contains the core ISP registers up to
|
||||
the end of the SBL block. The second set contains the
|
||||
CSI PHYs and receivers registers.
|
||||
interrupts : the ISP interrupt specifier
|
||||
iommus : phandle and IOMMU specifier for the IOMMU that serves the ISP
|
||||
syscon : the phandle and register offset to the Complex I/O or CSI-PHY
|
||||
register
|
||||
ti,phy-type : 0 -- OMAP3ISP_PHY_TYPE_COMPLEX_IO (e.g. 3430)
|
||||
1 -- OMAP3ISP_PHY_TYPE_CSIPHY (e.g. 3630)
|
||||
#clock-cells : Must be 1 --- the ISP provides two external clocks,
|
||||
cam_xclka and cam_xclkb, at indices 0 and 1,
|
||||
respectively. Please find more information on common
|
||||
clock bindings in ../clock/clock-bindings.txt.
|
||||
|
||||
Port nodes (optional)
|
||||
---------------------
|
||||
|
||||
More documentation on these bindings is available in
|
||||
video-interfaces.txt in the same directory.
|
||||
|
||||
reg : The interface:
|
||||
0 - parallel (CCDC)
|
||||
1 - CSIPHY1 -- CSI2C / CCP2B on 3630;
|
||||
CSI1 -- CSIb on 3430
|
||||
2 - CSIPHY2 -- CSI2A / CCP2B on 3630;
|
||||
CSI2 -- CSIa on 3430
|
||||
|
||||
Optional properties
|
||||
===================
|
||||
|
||||
vdd-csiphy1-supply : voltage supply of the CSI-2 PHY 1
|
||||
vdd-csiphy2-supply : voltage supply of the CSI-2 PHY 2
|
||||
|
||||
Endpoint nodes
|
||||
--------------
|
||||
|
||||
lane-polarities : lane polarity (required on CSI-2)
|
||||
0 -- not inverted; 1 -- inverted
|
||||
data-lanes : an array of data lanes from 1 to 3. The length can
|
||||
be either 1 or 2. (required on CSI-2)
|
||||
clock-lanes : the clock lane (from 1 to 3). (required on CSI-2)
|
||||
|
||||
|
||||
Example
|
||||
=======
|
||||
|
||||
isp@480bc000 {
|
||||
compatible = "ti,omap3-isp";
|
||||
reg = <0x480bc000 0x12fc
|
||||
0x480bd800 0x0600>;
|
||||
interrupts = <24>;
|
||||
iommus = <&mmu_isp>;
|
||||
syscon = <&scm_conf 0x2f0>;
|
||||
ti,phy-type = <OMAP3ISP_PHY_TYPE_CSIPHY>;
|
||||
#clock-cells = <1>;
|
||||
ports {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
};
|
||||
};
|
22
Documentation/devicetree/bindings/mfd/qcom,tcsr.txt
Normal file
22
Documentation/devicetree/bindings/mfd/qcom,tcsr.txt
Normal file
|
@ -0,0 +1,22 @@
|
|||
QCOM Top Control and Status Register
|
||||
|
||||
Qualcomm devices have a set of registers that provide various control and status
|
||||
functions for their peripherals. This node is intended to allow access to these
|
||||
registers via syscon.
|
||||
|
||||
Required properties:
|
||||
- compatible: Should contain:
|
||||
"qcom,tcsr-ipq8064", "syscon" for IPQ8064
|
||||
"qcom,tcsr-apq8064", "syscon" for APQ8064
|
||||
"qcom,tcsr-msm8660", "syscon" for MSM8660
|
||||
"qcom,tcsr-msm8960", "syscon" for MSM8960
|
||||
"qcom,tcsr-msm8974", "syscon" for MSM8974
|
||||
"qcom,tcsr-apq8084", "syscon" for APQ8084
|
||||
"qcom,tcsr-msm8916", "syscon" for MSM8916
|
||||
- reg: Address range for TCSR registers
|
||||
|
||||
Example:
|
||||
tcsr: syscon@1a400000 {
|
||||
compatible = "qcom,tcsr-msm8960", "syscon";
|
||||
reg = <0x1a400000 0x100>;
|
||||
};
|
47
Documentation/devicetree/bindings/net/wireless/ti,wlcore.txt
Normal file
47
Documentation/devicetree/bindings/net/wireless/ti,wlcore.txt
Normal file
|
@ -0,0 +1,47 @@
|
|||
TI Wilink 6/7/8 (wl12xx/wl18xx) SDIO devices
|
||||
|
||||
This node provides properties for controlling the wilink wireless device. The
|
||||
node is expected to be specified as a child node to the SDIO controller that
|
||||
connects the device to the system.
|
||||
|
||||
Required properties:
|
||||
- compatible: should be one of the following:
|
||||
* "ti,wl1271"
|
||||
* "ti,wl1273"
|
||||
* "ti,wl1281"
|
||||
* "ti,wl1283"
|
||||
* "ti,wl1801"
|
||||
* "ti,wl1805"
|
||||
* "ti,wl1807"
|
||||
* "ti,wl1831"
|
||||
* "ti,wl1835"
|
||||
* "ti,wl1837"
|
||||
- interrupts : specifies attributes for the out-of-band interrupt.
|
||||
|
||||
Optional properties:
|
||||
- interrupt-parent : the phandle for the interrupt controller to which the
|
||||
device interrupts are connected.
|
||||
- ref-clock-frequency : ref clock frequency in Hz
|
||||
- tcxo-clock-frequency : tcxo clock frequency in Hz
|
||||
|
||||
Note: the *-clock-frequency properties assume internal clocks. In case of external
|
||||
clock, new bindings (for parsing the clock nodes) have to be added.
|
||||
|
||||
Example:
|
||||
|
||||
&mmc3 {
|
||||
status = "okay";
|
||||
vmmc-supply = <&wlan_en_reg>;
|
||||
bus-width = <4>;
|
||||
cap-power-off-card;
|
||||
keep-power-in-suspend;
|
||||
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
wlcore: wlcore@2 {
|
||||
compatible = "ti,wl1835";
|
||||
reg = <2>;
|
||||
interrupt-parent = <&gpio0>;
|
||||
interrupts = <19 IRQ_TYPE_LEVEL_HIGH>;
|
||||
};
|
||||
};
|
|
@ -4,7 +4,27 @@ Required properties:
|
|||
- compatible : should be "ti,omap2-uart" for OMAP2 controllers
|
||||
- compatible : should be "ti,omap3-uart" for OMAP3 controllers
|
||||
- compatible : should be "ti,omap4-uart" for OMAP4 controllers
|
||||
- reg : address and length of the register space
|
||||
- interrupts or interrupts-extended : Should contain the uart interrupt
|
||||
specifier or both the interrupt
|
||||
controller phandle and interrupt
|
||||
specifier.
|
||||
- ti,hwmods : Must be "uart<n>", n being the instance number (1-based)
|
||||
|
||||
Optional properties:
|
||||
- clock-frequency : frequency of the clock input to the UART
|
||||
- dmas : DMA specifier, consisting of a phandle to the DMA controller
|
||||
node and a DMA channel number.
|
||||
- dma-names : "rx" for receive channel, "tx" for transmit channel.
|
||||
|
||||
Example:
|
||||
|
||||
uart4: serial@49042000 {
|
||||
compatible = "ti,omap3-uart";
|
||||
reg = <0x49042000 0x400>;
|
||||
interrupts = <80>;
|
||||
dmas = <&sdma 81 &sdma 82>;
|
||||
dma-names = "tx", "rx";
|
||||
ti,hwmods = "uart4";
|
||||
clock-frequency = <48000000>;
|
||||
};
|
||||
|
|
58
Documentation/devicetree/bindings/soc/mediatek/pwrap.txt
Normal file
58
Documentation/devicetree/bindings/soc/mediatek/pwrap.txt
Normal file
|
@ -0,0 +1,58 @@
|
|||
MediaTek PMIC Wrapper Driver
|
||||
|
||||
This document describes the binding for the MediaTek PMIC wrapper.
|
||||
|
||||
On MediaTek SoCs the PMIC is connected via SPI. The SPI master interface
|
||||
is not directly visible to the CPU, but only through the PMIC wrapper
|
||||
inside the SoC. The communication between the SoC and the PMIC can
|
||||
optionally be encrypted. Also a non standard Dual IO SPI mode can be
|
||||
used to increase speed.
|
||||
|
||||
IP Pairing
|
||||
|
||||
on MT8135 the pins of some SoC internal peripherals can be on the PMIC.
|
||||
The signals of these pins are routed over the SPI bus using the pwrap
|
||||
bridge. In the binding description below the properties needed for bridging
|
||||
are marked with "IP Pairing". These are optional on SoCs which do not support
|
||||
IP Pairing
|
||||
|
||||
Required properties in pwrap device node.
|
||||
- compatible:
|
||||
"mediatek,mt8135-pwrap" for MT8135 SoCs
|
||||
"mediatek,mt8173-pwrap" for MT8173 SoCs
|
||||
- interrupts: IRQ for pwrap in SOC
|
||||
- reg-names: Must include the following entries:
|
||||
"pwrap": Main registers base
|
||||
"pwrap-bridge": bridge base (IP Pairing)
|
||||
- reg: Must contain an entry for each entry in reg-names.
|
||||
- reset-names: Must include the following entries:
|
||||
"pwrap"
|
||||
"pwrap-bridge" (IP Pairing)
|
||||
- resets: Must contain an entry for each entry in reset-names.
|
||||
- clock-names: Must include the following entries:
|
||||
"spi": SPI bus clock
|
||||
"wrap": Main module clock
|
||||
- clocks: Must contain an entry for each entry in clock-names.
|
||||
|
||||
Optional properities:
|
||||
- pmic: Mediatek PMIC MFD is the child device of pwrap
|
||||
See the following for child node definitions:
|
||||
Documentation/devicetree/bindings/mfd/mt6397.txt
|
||||
|
||||
Example:
|
||||
pwrap: pwrap@1000f000 {
|
||||
compatible = "mediatek,mt8135-pwrap";
|
||||
reg = <0 0x1000f000 0 0x1000>,
|
||||
<0 0x11017000 0 0x1000>;
|
||||
reg-names = "pwrap", "pwrap-bridge";
|
||||
interrupts = <GIC_SPI 128 IRQ_TYPE_LEVEL_HIGH>;
|
||||
resets = <&infracfg MT8135_INFRA_PMIC_WRAP_RST>,
|
||||
<&pericfg MT8135_PERI_PWRAP_BRIDGE_SW_RST>;
|
||||
reset-names = "pwrap", "pwrap-bridge";
|
||||
clocks = <&clk26m>, <&clk26m>;
|
||||
clock-names = "spi", "wrap";
|
||||
|
||||
pmic {
|
||||
compatible = "mediatek,mt6397";
|
||||
};
|
||||
};
|
|
@ -4,9 +4,9 @@ Required properties:
|
|||
- compatible: "ti,omap-twl4030"
|
||||
- ti,model: Name of the sound card (for example "omap3beagle")
|
||||
- ti,mcbsp: phandle for the McBSP node
|
||||
- ti,codec: phandle for the twl4030 audio node
|
||||
|
||||
Optional properties:
|
||||
- ti,codec: phandle for the twl4030 audio node
|
||||
- ti,mcbsp-voice: phandle for the McBSP node connected to the voice port of twl
|
||||
- ti, jack-det-gpio: Jack detect GPIO
|
||||
- ti,audio-routing: List of connections between audio components.
|
||||
|
@ -59,5 +59,4 @@ sound {
|
|||
ti,model = "omap3beagle";
|
||||
|
||||
ti,mcbsp = <&mcbsp2>;
|
||||
ti,codec = <&twl_audio>;
|
||||
};
|
||||
|
|
|
@ -84,6 +84,7 @@ globalscale Globalscale Technologies, Inc.
|
|||
gmt Global Mixed-mode Technology, Inc.
|
||||
goodix Shenzhen Huiding Technology Co., Ltd.
|
||||
google Google, Inc.
|
||||
grinn Grinn
|
||||
gumstix Gumstix, Inc.
|
||||
gw Gateworks Corporation
|
||||
hannstar HannStar Display Corporation
|
||||
|
|
|
@ -10,7 +10,9 @@ Required properties:
|
|||
"atmel,at91sam9g45es-lcdc" ,
|
||||
"atmel,at91sam9rl-lcdc" ,
|
||||
"atmel,at32ap-lcdc"
|
||||
- reg : Should contain 1 register ranges(address and length)
|
||||
- reg : Should contain 1 register ranges(address and length).
|
||||
Can contain an additional register range(address and length)
|
||||
for fixed framebuffer memory. Useful for dedicated memories.
|
||||
- interrupts : framebuffer controller interrupt
|
||||
- display: a phandle pointing to the display node
|
||||
|
||||
|
@ -38,6 +40,14 @@ Example:
|
|||
|
||||
};
|
||||
|
||||
Example for fixed framebuffer memory:
|
||||
|
||||
fb0: fb@0x00500000 {
|
||||
compatible = "atmel,at91sam9263-lcdc";
|
||||
reg = <0x00700000 0x1000 0x70000000 0x200000>;
|
||||
[...]
|
||||
};
|
||||
|
||||
Atmel LCDC Display
|
||||
-----------------------------------------------------
|
||||
Required properties (as per of_videomode_helper):
|
||||
|
|
|
@ -7132,6 +7132,7 @@ OMAP IMAGING SUBSYSTEM (OMAP3 ISP and OMAP4 ISS)
|
|||
M: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
|
||||
L: linux-media@vger.kernel.org
|
||||
S: Maintained
|
||||
F: Documentation/devicetree/bindings/media/ti,omap3isp.txt
|
||||
F: drivers/media/platform/omap3isp/
|
||||
F: drivers/staging/media/omap4iss/
|
||||
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
ifeq ($(CONFIG_OF),y)
|
||||
|
||||
dtb-$(CONFIG_ARCH_ALPINE) += \
|
||||
alpine-db.dtb
|
||||
dtb-$(CONFIG_MACH_ASM9260) += \
|
||||
alphascale-asm9260-devkit.dtb
|
||||
# Keep at91 dtb files sorted alphabetically for each SoC
|
||||
|
@ -42,6 +44,7 @@ dtb-$(CONFIG_SOC_SAM_V7) += \
|
|||
sama5d34ek.dtb \
|
||||
sama5d35ek.dtb \
|
||||
sama5d36ek.dtb \
|
||||
at91-sama5d4_xplained.dtb \
|
||||
at91-sama5d4ek.dtb
|
||||
dtb-$(CONFIG_ARCH_ATLAS6) += \
|
||||
atlas6-evb.dtb
|
||||
|
@ -59,13 +62,15 @@ dtb-$(CONFIG_ARCH_BCM_5301X) += \
|
|||
bcm4708-netgear-r6300-v2.dtb \
|
||||
bcm47081-asus-rt-n18u.dtb \
|
||||
bcm47081-buffalo-wzr-600dhp2.dtb \
|
||||
bcm47081-buffalo-wzr-900dhp.dtb
|
||||
bcm47081-buffalo-wzr-900dhp.dtb \
|
||||
bcm4709-netgear-r8000.dtb
|
||||
dtb-$(CONFIG_ARCH_BCM_63XX) += \
|
||||
bcm963138dvt.dtb
|
||||
dtb-$(CONFIG_ARCH_BCM_CYGNUS) += \
|
||||
bcm911360_entphn.dtb \
|
||||
bcm911360k.dtb \
|
||||
bcm958300k.dtb
|
||||
bcm958300k.dtb \
|
||||
bcm958305k.dtb
|
||||
dtb-$(CONFIG_ARCH_BCM_MOBILE) += \
|
||||
bcm28155-ap.dtb \
|
||||
bcm21664-garnet.dtb
|
||||
|
@ -165,6 +170,7 @@ dtb-$(CONFIG_MACH_KIRKWOOD) += \
|
|||
kirkwood-lsxhl.dtb \
|
||||
kirkwood-mplcec4.dtb \
|
||||
kirkwood-mv88f6281gtw-ge.dtb \
|
||||
kirkwood-nas2big.dtb \
|
||||
kirkwood-net2big.dtb \
|
||||
kirkwood-net5big.dtb \
|
||||
kirkwood-netgear_readynas_duo_v2.dtb \
|
||||
|
@ -199,6 +205,8 @@ dtb-$(CONFIG_ARCH_LPC32XX) += \
|
|||
ea3250.dtb phy3250.dtb
|
||||
dtb-$(CONFIG_MACH_MESON6) += \
|
||||
meson6-atv1200.dtb
|
||||
dtb-$(CONFIG_MACH_MESON8) += \
|
||||
meson8-minix-neo-x8.dtb
|
||||
dtb-$(CONFIG_ARCH_MMP) += \
|
||||
pxa168-aspenite.dtb \
|
||||
pxa910-dkb.dtb \
|
||||
|
@ -386,6 +394,8 @@ dtb-$(CONFIG_ARCH_OMAP3) += \
|
|||
omap3-overo-storm-tobi.dtb \
|
||||
omap3-overo-summit.dtb \
|
||||
omap3-overo-tobi.dtb \
|
||||
omap3-pandora-600mhz.dtb \
|
||||
omap3-pandora-1ghz.dtb \
|
||||
omap3-sbc-t3517.dtb \
|
||||
omap3-sbc-t3530.dtb \
|
||||
omap3-sbc-t3730.dtb \
|
||||
|
@ -401,7 +411,8 @@ dtb-$(CONFIG_SOC_AM33XX) += \
|
|||
am335x-evmsk.dtb \
|
||||
am335x-nano.dtb \
|
||||
am335x-pepper.dtb \
|
||||
am335x-lxm.dtb
|
||||
am335x-lxm.dtb \
|
||||
am335x-chiliboard.dtb
|
||||
dtb-$(CONFIG_ARCH_OMAP4) += \
|
||||
omap4-duovero-parlor.dtb \
|
||||
omap4-panda.dtb \
|
||||
|
@ -577,6 +588,7 @@ dtb-$(CONFIG_ARCH_TEGRA_114_SOC) += \
|
|||
dtb-$(CONFIG_ARCH_TEGRA_124_SOC) += \
|
||||
tegra124-jetson-tk1.dtb \
|
||||
tegra124-nyan-big.dtb \
|
||||
tegra124-nyan-blaze.dtb \
|
||||
tegra124-venice2.dtb
|
||||
dtb-$(CONFIG_ARCH_U300) += \
|
||||
ste-u300.dtb
|
||||
|
@ -624,11 +636,14 @@ dtb-$(CONFIG_MACH_ARMADA_38X) += \
|
|||
armada-388-db.dtb \
|
||||
armada-388-gp.dtb \
|
||||
armada-388-rd.dtb
|
||||
dtb-$(CONFIG_MACH_ARMADA_39X) += \
|
||||
armada-398-db.dtb
|
||||
dtb-$(CONFIG_MACH_ARMADA_XP) += \
|
||||
armada-xp-axpwifiap.dtb \
|
||||
armada-xp-db.dtb \
|
||||
armada-xp-gp.dtb \
|
||||
armada-xp-lenovo-ix4-300d.dtb \
|
||||
armada-xp-linksys-mamba.dtb \
|
||||
armada-xp-matrix.dtb \
|
||||
armada-xp-netgear-rn2120.dtb \
|
||||
armada-xp-openblocks-ax3-4.dtb \
|
||||
|
|
35
arch/arm/boot/dts/alpine-db.dts
Normal file
35
arch/arm/boot/dts/alpine-db.dts
Normal file
|
@ -0,0 +1,35 @@
|
|||
/*
|
||||
* Copyright 2015 Annapurna Labs Ltd.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it
|
||||
* under the terms and conditions of the GNU General Public License,
|
||||
* version 2, as published by the Free Software Foundation.
|
||||
*
|
||||
* Alternatively, redistribution and use in source and binary forms, with or
|
||||
* without modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright notice,
|
||||
* this list of conditions and the following disclaimer.
|
||||
*
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* This program is distributed in the hope 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.
|
||||
*
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
|
||||
#include "alpine.dtsi"
|
||||
|
||||
/ {
|
||||
model = "Annapurna Labs Alpine Dev Board";
|
||||
/* no need for anything outside SOC */
|
||||
};
|
||||
|
160
arch/arm/boot/dts/alpine.dtsi
Normal file
160
arch/arm/boot/dts/alpine.dtsi
Normal file
|
@ -0,0 +1,160 @@
|
|||
/*
|
||||
* Copyright 2015 Annapurna Labs Ltd.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it
|
||||
* under the terms and conditions of the GNU General Public License,
|
||||
* version 2, as published by the Free Software Foundation.
|
||||
*
|
||||
* Alternatively, redistribution and use in source and binary forms, with or
|
||||
* without modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright notice,
|
||||
* this list of conditions and the following disclaimer.
|
||||
*
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* This program is distributed in the hope 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.
|
||||
*
|
||||
*/
|
||||
|
||||
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||
#include "skeleton64.dtsi"
|
||||
|
||||
/ {
|
||||
/* SOC compatibility */
|
||||
compatible = "al,alpine";
|
||||
|
||||
/* CPU Configuration */
|
||||
cpus {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
enable-method = "al,alpine-smp";
|
||||
|
||||
cpu@0 {
|
||||
compatible = "arm,cortex-a15";
|
||||
device_type = "cpu";
|
||||
reg = <0>;
|
||||
clock-frequency = <0>; /* Filled by loader */
|
||||
};
|
||||
|
||||
cpu@1 {
|
||||
compatible = "arm,cortex-a15";
|
||||
device_type = "cpu";
|
||||
reg = <1>;
|
||||
clock-frequency = <0>; /* Filled by loader */
|
||||
};
|
||||
|
||||
cpu@2 {
|
||||
compatible = "arm,cortex-a15";
|
||||
device_type = "cpu";
|
||||
reg = <2>;
|
||||
clock-frequency = <0>; /* Filled by loader */
|
||||
};
|
||||
|
||||
cpu@3 {
|
||||
compatible = "arm,cortex-a15";
|
||||
device_type = "cpu";
|
||||
reg = <3>;
|
||||
clock-frequency = <0>; /* Filled by loader */
|
||||
};
|
||||
};
|
||||
|
||||
soc {
|
||||
#address-cells = <2>;
|
||||
#size-cells = <2>;
|
||||
compatible = "simple-bus";
|
||||
interrupt-parent = <&gic>;
|
||||
ranges;
|
||||
|
||||
arch-timer {
|
||||
compatible = "arm,cortex-a15-timer",
|
||||
"arm,armv7-timer";
|
||||
interrupts =
|
||||
<GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
|
||||
<GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
|
||||
<GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
|
||||
<GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
|
||||
clock-frequency = <0>; /* Filled by loader */
|
||||
};
|
||||
|
||||
/* Interrupt Controller */
|
||||
gic: gic@fb001000 {
|
||||
compatible = "arm,cortex-a15-gic";
|
||||
#interrupt-cells = <3>;
|
||||
#size-cells = <0>;
|
||||
#address-cells = <0>;
|
||||
interrupt-controller;
|
||||
reg = <0x0 0xfb001000 0x0 0x1000>,
|
||||
<0x0 0xfb002000 0x0 0x2000>,
|
||||
<0x0 0xfb004000 0x0 0x1000>,
|
||||
<0x0 0xfb006000 0x0 0x2000>;
|
||||
interrupts =
|
||||
<GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
|
||||
};
|
||||
|
||||
/* CPU Resume registers */
|
||||
cpu-resume@fbff5ec0 {
|
||||
compatible = "al,alpine-cpu-resume";
|
||||
reg = <0x0 0xfbff5ec0 0x0 0x30>;
|
||||
};
|
||||
|
||||
/* North Bridge Service Registers */
|
||||
sysfabric-service@fb070000 {
|
||||
compatible = "al,alpine-sysfabric-service", "syscon";
|
||||
reg = <0x0 0xfb070000 0x0 0x10000>;
|
||||
};
|
||||
|
||||
/* Performance Monitor Unit */
|
||||
pmu {
|
||||
compatible = "arm,cortex-a15-pmu";
|
||||
interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
|
||||
};
|
||||
|
||||
uart0:uart@fd883000 {
|
||||
compatible = "ns16550a";
|
||||
reg = <0x0 0xfd883000 0x0 0x1000>;
|
||||
clock-frequency = <0>; /* Filled by loader */
|
||||
interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
|
||||
reg-shift = <2>;
|
||||
reg-io-width = <4>;
|
||||
};
|
||||
|
||||
uart1:uart@0xfd884000 {
|
||||
compatible = "ns16550a";
|
||||
reg = <0x0 0xfd884000 0x0 0x1000>;
|
||||
clock-frequency = <0>; /* Filled by loader */
|
||||
interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>;
|
||||
reg-shift = <2>;
|
||||
reg-io-width = <4>;
|
||||
};
|
||||
|
||||
/* Internal PCIe Controller */
|
||||
pcie-internal@0xfbc00000 {
|
||||
compatible = "pci-host-ecam-generic";
|
||||
device_type = "pci";
|
||||
#size-cells = <2>;
|
||||
#address-cells = <3>;
|
||||
#interrupt-cells = <1>;
|
||||
reg = <0x0 0xfbc00000 0x0 0x100000>;
|
||||
interrupt-map-mask = <0xf800 0 0 7>;
|
||||
/* Add legacy interrupts for SATA devices only */
|
||||
interrupt-map = <0x4000 0 0 1 &gic 0 43 4>,
|
||||
<0x4800 0 0 1 &gic 0 44 4>;
|
||||
|
||||
/* 32 bit non prefetchable memory space */
|
||||
ranges = <0x02000000 0x0 0xfe000000 0x0 0xfe000000 0x0 0x1000000>;
|
||||
|
||||
bus-range = <0x00 0x00>;
|
||||
};
|
||||
};
|
||||
};
|
112
arch/arm/boot/dts/am335x-chiliboard.dts
Normal file
112
arch/arm/boot/dts/am335x-chiliboard.dts
Normal file
|
@ -0,0 +1,112 @@
|
|||
/*
|
||||
* Copyright (C) 2015 Jablotron s.r.o. -- http://www.jablotron.com/
|
||||
* Author: Rostislav Lisovy <lisovy@jablotron.cz>
|
||||
*
|
||||
* 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 "am335x-chilisom.dtsi"
|
||||
|
||||
/ {
|
||||
model = "AM335x Chiliboard";
|
||||
compatible = "grinn,am335x-chiliboard", "grinn,am335x-chilisom",
|
||||
"ti,am33xx";
|
||||
|
||||
leds {
|
||||
compatible = "gpio-leds";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&led_gpio_pins>;
|
||||
|
||||
led0 {
|
||||
label = "led0";
|
||||
gpios = <&gpio3 7 GPIO_ACTIVE_LOW>;
|
||||
default-state = "keep";
|
||||
linux,default-trigger = "heartbeat";
|
||||
};
|
||||
|
||||
led1 {
|
||||
label = "led1";
|
||||
gpios = <&gpio3 8 GPIO_ACTIVE_LOW>;
|
||||
default-state = "keep";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&am33xx_pinmux {
|
||||
usb1_drvvbus: usb1_drvvbus {
|
||||
pinctrl-single,pins = <
|
||||
0x234 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* usb1_drvvbus.usb1_drvvbus */
|
||||
>;
|
||||
};
|
||||
|
||||
sd_pins: pinmux_sd_card {
|
||||
pinctrl-single,pins = <
|
||||
0xf0 (PIN_INPUT | MUX_MODE0) /* mmc0_dat0.mmc0_dat0 */
|
||||
0xf4 (PIN_INPUT | MUX_MODE0) /* mmc0_dat1.mmc0_dat1 */
|
||||
0xf8 (PIN_INPUT | MUX_MODE0) /* mmc0_dat2.mmc0_dat2 */
|
||||
0xfc (PIN_INPUT | MUX_MODE0) /* mmc0_dat3.mmc0_dat3 */
|
||||
0x100 (PIN_INPUT | MUX_MODE0) /* mmc0_clk.mmc0_clk */
|
||||
0x104 (PIN_INPUT | MUX_MODE0) /* mmc0_cmd.mmc0_cmd */
|
||||
0x160 (PIN_INPUT | MUX_MODE7) /* spi0_cs1.gpio0_6 */
|
||||
>;
|
||||
};
|
||||
|
||||
led_gpio_pins: led_gpio_pins {
|
||||
pinctrl-single,pins = <
|
||||
0x1e4 (PIN_OUTPUT | MUX_MODE7) /* emu0.gpio3_7 */
|
||||
0x1e8 (PIN_OUTPUT | MUX_MODE7) /* emu1.gpio3_8 */
|
||||
>;
|
||||
};
|
||||
};
|
||||
|
||||
&ldo4_reg {
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
};
|
||||
|
||||
/* Ethernet */
|
||||
&cpsw_emac0 {
|
||||
phy_id = <&davinci_mdio>, <0>;
|
||||
phy-mode = "rmii";
|
||||
};
|
||||
|
||||
&phy_sel {
|
||||
rmii-clock-ext;
|
||||
};
|
||||
|
||||
/* USB */
|
||||
&usb {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usb_ctrl_mod {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usb1_phy {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usb1 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&usb1_drvvbus>;
|
||||
|
||||
status = "okay";
|
||||
dr_mode = "host";
|
||||
};
|
||||
|
||||
&cppi41dma {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
/* microSD */
|
||||
&mmc1 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&sd_pins>;
|
||||
vmmc-supply = <&ldo4_reg>;
|
||||
bus-width = <0x4>;
|
||||
cd-gpios = <&gpio0 6 GPIO_ACTIVE_HIGH>;
|
||||
status = "okay";
|
||||
};
|
239
arch/arm/boot/dts/am335x-chilisom.dtsi
Normal file
239
arch/arm/boot/dts/am335x-chilisom.dtsi
Normal file
|
@ -0,0 +1,239 @@
|
|||
/*
|
||||
* Copyright (C) 2015 Jablotron s.r.o. -- http://www.jablotron.com/
|
||||
* Author: Rostislav Lisovy <lisovy@jablotron.cz>
|
||||
*
|
||||
* 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 "am33xx.dtsi"
|
||||
|
||||
/ {
|
||||
model = "Grinn AM335x ChiliSOM";
|
||||
compatible = "grinn,am335x-chilisom", "ti,am33xx";
|
||||
|
||||
cpus {
|
||||
cpu@0 {
|
||||
cpu0-supply = <&dcdc2_reg>;
|
||||
};
|
||||
};
|
||||
|
||||
memory {
|
||||
device_type = "memory";
|
||||
reg = <0x80000000 0x20000000>; /* 512 MB */
|
||||
};
|
||||
};
|
||||
|
||||
&am33xx_pinmux {
|
||||
pinctrl-names = "default";
|
||||
|
||||
i2c0_pins: pinmux_i2c0_pins {
|
||||
pinctrl-single,pins = <
|
||||
0x188 (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c0_sda.i2c0_sda */
|
||||
0x18c (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c0_scl.i2c0_scl */
|
||||
>;
|
||||
};
|
||||
|
||||
uart0_pins: pinmux_uart0_pins {
|
||||
pinctrl-single,pins = <
|
||||
0x170 (PIN_INPUT_PULLUP | MUX_MODE0) /* uart0_rxd.uart0_rxd */
|
||||
0x174 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* uart0_txd.uart0_txd */
|
||||
>;
|
||||
};
|
||||
|
||||
cpsw_default: cpsw_default {
|
||||
pinctrl-single,pins = <
|
||||
/* Slave 1 */
|
||||
0x10c (PIN_INPUT_PULLDOWN | MUX_MODE1) /* mii1_crs.rmii1_crs */
|
||||
0x110 (PIN_INPUT_PULLUP | MUX_MODE1) /* mii1_rxerr.rmii1_rxerr */
|
||||
0x114 (PIN_OUTPUT_PULLDOWN | MUX_MODE1) /* mii1_txen.rmii1_txen */
|
||||
0x124 (PIN_OUTPUT_PULLDOWN | MUX_MODE1) /* mii1_txd1.rmii1_txd1 */
|
||||
0x128 (PIN_OUTPUT_PULLDOWN | MUX_MODE1) /* mii1_txd0.rmii1_txd0 */
|
||||
0x13c (PIN_INPUT_PULLUP | MUX_MODE1) /* mii1_rxd1.rmii1_rxd1 */
|
||||
0x140 (PIN_INPUT_PULLUP | MUX_MODE1) /* mii1_rxd0.rmii1_rxd0 */
|
||||
0x144 (PIN_INPUT_PULLDOWN | MUX_MODE0) /* rmii1_ref_clk.rmii_ref_clk */
|
||||
>;
|
||||
};
|
||||
|
||||
cpsw_sleep: cpsw_sleep {
|
||||
pinctrl-single,pins = <
|
||||
/* Slave 1 reset value */
|
||||
0x10c (PIN_INPUT_PULLDOWN | MUX_MODE7)
|
||||
0x110 (PIN_INPUT_PULLDOWN | MUX_MODE7)
|
||||
0x114 (PIN_INPUT_PULLDOWN | MUX_MODE7)
|
||||
0x118 (PIN_INPUT_PULLDOWN | MUX_MODE7)
|
||||
0x124 (PIN_INPUT_PULLDOWN | MUX_MODE7)
|
||||
0x128 (PIN_INPUT_PULLDOWN | MUX_MODE7)
|
||||
0x13c (PIN_INPUT_PULLDOWN | MUX_MODE7)
|
||||
0x140 (PIN_INPUT_PULLDOWN | MUX_MODE7)
|
||||
0x144 (PIN_INPUT_PULLDOWN | MUX_MODE7)
|
||||
>;
|
||||
};
|
||||
|
||||
davinci_mdio_default: davinci_mdio_default {
|
||||
pinctrl-single,pins = <
|
||||
/* mdio_data.mdio_data */
|
||||
0x148 (PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE0)
|
||||
/* mdio_clk.mdio_clk */
|
||||
0x14c (PIN_OUTPUT_PULLUP | MUX_MODE0)
|
||||
>;
|
||||
};
|
||||
|
||||
davinci_mdio_sleep: davinci_mdio_sleep {
|
||||
pinctrl-single,pins = <
|
||||
/* MDIO reset value */
|
||||
0x148 (PIN_INPUT_PULLDOWN | MUX_MODE7)
|
||||
0x14c (PIN_INPUT_PULLDOWN | MUX_MODE7)
|
||||
>;
|
||||
};
|
||||
|
||||
nandflash_pins: nandflash_pins {
|
||||
pinctrl-single,pins = <
|
||||
0x00 (PIN_INPUT_PULLDOWN | MUX_MODE0) /* gpmc_ad0.gpmc_ad0 */
|
||||
0x04 (PIN_INPUT_PULLDOWN | MUX_MODE0) /* gpmc_ad1.gpmc_ad1 */
|
||||
0x08 (PIN_INPUT_PULLDOWN | MUX_MODE0) /* gpmc_ad2.gpmc_ad2 */
|
||||
0x0c (PIN_INPUT_PULLDOWN | MUX_MODE0) /* gpmc_ad3.gpmc_ad3 */
|
||||
0x10 (PIN_INPUT_PULLDOWN | MUX_MODE0) /* gpmc_ad4.gpmc_ad4 */
|
||||
0x14 (PIN_INPUT_PULLDOWN | MUX_MODE0) /* gpmc_ad5.gpmc_ad5 */
|
||||
0x18 (PIN_INPUT_PULLDOWN | MUX_MODE0) /* gpmc_ad6.gpmc_ad6 */
|
||||
0x1c (PIN_INPUT_PULLDOWN | MUX_MODE0) /* gpmc_ad7.gpmc_ad7 */
|
||||
|
||||
0x70 (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_wait0.gpmc_wait0 */
|
||||
0x7c (PIN_OUTPUT_PULLUP | MUX_MODE0) /* gpmc_csn0.gpmc_csn0 */
|
||||
0x90 (PIN_OUTPUT_PULLUP | MUX_MODE0) /* gpmc_advn_ale.gpmc_advn_ale */
|
||||
0x94 (PIN_OUTPUT_PULLUP | MUX_MODE0) /* gpmc_oen_ren.gpmc_oen_ren */
|
||||
0x98 (PIN_OUTPUT_PULLUP | MUX_MODE0) /* gpmc_wen.gpmc_wen */
|
||||
0x9c (PIN_OUTPUT_PULLUP | MUX_MODE0) /* gpmc_be0n_cle.gpmc_be0n_cle */
|
||||
>;
|
||||
};
|
||||
};
|
||||
|
||||
&uart0 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&uart0_pins>;
|
||||
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&i2c0 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&i2c0_pins>;
|
||||
|
||||
status = "okay";
|
||||
clock-frequency = <400000>;
|
||||
|
||||
tps: tps@24 {
|
||||
reg = <0x24>;
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
/include/ "tps65217.dtsi"
|
||||
|
||||
&tps {
|
||||
regulators {
|
||||
dcdc1_reg: regulator@0 {
|
||||
regulator-name = "vdds_dpr";
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
dcdc2_reg: regulator@1 {
|
||||
/* VDD_MPU voltage limits 0.95V - 1.26V with +/-4% tolerance */
|
||||
regulator-name = "vdd_mpu";
|
||||
regulator-min-microvolt = <925000>;
|
||||
regulator-max-microvolt = <1325000>;
|
||||
regulator-boot-on;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
dcdc3_reg: regulator@2 {
|
||||
/* VDD_CORE voltage limits 0.95V - 1.1V with +/-4% tolerance */
|
||||
regulator-name = "vdd_core";
|
||||
regulator-min-microvolt = <925000>;
|
||||
regulator-max-microvolt = <1150000>;
|
||||
regulator-boot-on;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
ldo1_reg: regulator@3 {
|
||||
regulator-name = "vio,vrtc,vdds";
|
||||
regulator-boot-on;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
ldo2_reg: regulator@4 {
|
||||
regulator-name = "vdd_3v3aux";
|
||||
regulator-boot-on;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
ldo3_reg: regulator@5 {
|
||||
regulator-name = "vdd_1v8";
|
||||
regulator-boot-on;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
ldo4_reg: regulator@6 {
|
||||
regulator-name = "vdd_3v3d";
|
||||
regulator-boot-on;
|
||||
regulator-always-on;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
/* Ethernet MAC */
|
||||
&mac {
|
||||
slaves = <1>;
|
||||
pinctrl-names = "default", "sleep";
|
||||
pinctrl-0 = <&cpsw_default>;
|
||||
pinctrl-1 = <&cpsw_sleep>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&davinci_mdio {
|
||||
pinctrl-names = "default", "sleep";
|
||||
pinctrl-0 = <&davinci_mdio_default>;
|
||||
pinctrl-1 = <&davinci_mdio_sleep>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
/* NAND Flash */
|
||||
&elm {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&gpmc {
|
||||
status = "okay";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&nandflash_pins>;
|
||||
ranges = <0 0 0x08000000 0x01000000>; /* CS0 0 @addr 0x08000000, size 0x01000000 */
|
||||
nand@0,0 {
|
||||
reg = <0 0 4>; /* CS0, offset 0, IO size 4 */
|
||||
ti,nand-ecc-opt = "bch8";
|
||||
ti,elm-id = <&elm>;
|
||||
nand-bus-width = <8>;
|
||||
gpmc,device-width = <1>;
|
||||
gpmc,sync-clk-ps = <0>;
|
||||
gpmc,cs-on-ns = <0>;
|
||||
gpmc,cs-rd-off-ns = <44>;
|
||||
gpmc,cs-wr-off-ns = <44>;
|
||||
gpmc,adv-on-ns = <6>;
|
||||
gpmc,adv-rd-off-ns = <34>;
|
||||
gpmc,adv-wr-off-ns = <44>;
|
||||
gpmc,we-on-ns = <0>;
|
||||
gpmc,we-off-ns = <40>;
|
||||
gpmc,oe-on-ns = <0>;
|
||||
gpmc,oe-off-ns = <54>;
|
||||
gpmc,access-ns = <64>;
|
||||
gpmc,rd-cycle-ns = <82>;
|
||||
gpmc,wr-cycle-ns = <82>;
|
||||
gpmc,wait-on-read = "true";
|
||||
gpmc,wait-on-write = "true";
|
||||
gpmc,bus-turnaround-ns = <0>;
|
||||
gpmc,cycle2cycle-delay-ns = <0>;
|
||||
gpmc,clk-activation-ns = <0>;
|
||||
gpmc,wait-monitoring-ns = <0>;
|
||||
gpmc,wr-access-ns = <40>;
|
||||
gpmc,wr-data-mux-bus-ns = <0>;
|
||||
};
|
||||
};
|
|
@ -15,6 +15,7 @@
|
|||
|
||||
#include "am33xx.dtsi"
|
||||
#include <dt-bindings/pwm/pwm.h>
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
|
||||
/ {
|
||||
model = "TI AM335x EVM-SK";
|
||||
|
@ -647,6 +648,16 @@
|
|||
cap-power-off-card;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&mmc2_pins>;
|
||||
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
wlcore: wlcore@2 {
|
||||
compatible = "ti,wl1271";
|
||||
reg = <2>;
|
||||
interrupt-parent = <&gpio1>;
|
||||
interrupts = <31 IRQ_TYPE_LEVEL_HIGH>; /* gpio 31 */
|
||||
ref-clock-frequency = <38400000>;
|
||||
};
|
||||
};
|
||||
|
||||
&mcasp1 {
|
||||
|
|
|
@ -213,7 +213,9 @@
|
|||
pinctrl-0 = <&i2c0_pins>;
|
||||
|
||||
gpio@20 {
|
||||
compatible = "mcp,mcp23017";
|
||||
compatible = "microchip,mcp23017";
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
reg = <0x20>;
|
||||
};
|
||||
|
||||
|
@ -222,7 +224,7 @@
|
|||
};
|
||||
|
||||
eeprom@53 {
|
||||
compatible = "mcp,24c02";
|
||||
compatible = "microchip,24c02";
|
||||
reg = <0x53>;
|
||||
pagesize = <8>;
|
||||
};
|
||||
|
@ -297,8 +299,8 @@
|
|||
| |-->0x004FFFFF-> Kernel end
|
||||
| |-->0x00500000-> File system start
|
||||
| |
|
||||
| |-->0x014FFFFF-> File system end
|
||||
| |-->0x01500000-> User data start
|
||||
| |-->0x01FFFFFF-> File system end
|
||||
| |-->0x02000000-> User data start
|
||||
| |
|
||||
| |-->0x03FFFFFF-> User data end
|
||||
| |-->0x04000000-> Data storage start
|
||||
|
@ -327,12 +329,12 @@
|
|||
|
||||
partition@4 {
|
||||
label = "rootfs";
|
||||
reg = <0x00500000 0x01000000>; /* 16MB */
|
||||
reg = <0x00500000 0x01b00000>; /* 27MB */
|
||||
};
|
||||
|
||||
partition@5 {
|
||||
label = "user";
|
||||
reg = <0x01500000 0x02b00000>; /* 43MB */
|
||||
reg = <0x02000000 0x02000000>; /* 32MB */
|
||||
};
|
||||
|
||||
partition@6 {
|
||||
|
@ -343,7 +345,7 @@
|
|||
};
|
||||
|
||||
&mac {
|
||||
dual_emac = <1>;
|
||||
dual_emac;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
|
@ -353,11 +355,13 @@
|
|||
|
||||
&cpsw_emac0 {
|
||||
phy_id = <&davinci_mdio>, <0>;
|
||||
phy-mode = "mii";
|
||||
dual_emac_res_vlan = <1>;
|
||||
};
|
||||
|
||||
&cpsw_emac1 {
|
||||
phy_id = <&davinci_mdio>, <1>;
|
||||
phy-mode = "mii";
|
||||
dual_emac_res_vlan = <2>;
|
||||
};
|
||||
|
||||
|
|
|
@ -893,7 +893,7 @@
|
|||
};
|
||||
|
||||
hdq: hdq@48347000 {
|
||||
compatible = "ti,am43xx-hdq";
|
||||
compatible = "ti,am4372-hdq";
|
||||
reg = <0x48347000 0x1000>;
|
||||
interrupts = <GIC_SPI 139 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&func_12m_clk>;
|
||||
|
|
|
@ -133,6 +133,20 @@
|
|||
>;
|
||||
};
|
||||
|
||||
i2c2_pins_default: i2c2_pins_default {
|
||||
pinctrl-single,pins = <
|
||||
0x1e8 (PIN_INPUT | SLEWCTRL_FAST | MUX_MODE3) /* cam1_data1.i2c2_scl */
|
||||
0x1ec (PIN_INPUT | SLEWCTRL_FAST | MUX_MODE3) /* cam1_data0.i2c2_sda */
|
||||
>;
|
||||
};
|
||||
|
||||
i2c2_pins_sleep: i2c2_pins_sleep {
|
||||
pinctrl-single,pins = <
|
||||
0x1e8 (PIN_INPUT_PULLDOWN | MUX_MODE7)
|
||||
0x1ec (PIN_INPUT_PULLDOWN | MUX_MODE7)
|
||||
>;
|
||||
};
|
||||
|
||||
mmc1_pins_default: pinmux_mmc1_pins_default {
|
||||
pinctrl-single,pins = <
|
||||
0x100 (PIN_INPUT | MUX_MODE0) /* mmc0_clk.mmc0_clk */
|
||||
|
@ -263,6 +277,14 @@
|
|||
};
|
||||
};
|
||||
|
||||
&i2c2 {
|
||||
status = "okay";
|
||||
pinctrl-names = "default", "sleep";
|
||||
pinctrl-0 = <&i2c2_pins_default>;
|
||||
pinctrl-1 = <&i2c2_pins_sleep>;
|
||||
clock-frequency = <100000>;
|
||||
};
|
||||
|
||||
&epwmss0 {
|
||||
status = "okay";
|
||||
};
|
||||
|
|
|
@ -8,7 +8,6 @@
|
|||
/dts-v1/;
|
||||
|
||||
#include "dra74x.dtsi"
|
||||
#include <dt-bindings/clk/ti-dra7-atl.h>
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
|
||||
|
@ -550,6 +549,14 @@
|
|||
pinctrl-0 = <&usb1_pins>;
|
||||
};
|
||||
|
||||
&omap_dwc3_1 {
|
||||
extcon = <&extcon_usb1>;
|
||||
};
|
||||
|
||||
&omap_dwc3_2 {
|
||||
extcon = <&extcon_usb2>;
|
||||
};
|
||||
|
||||
&usb2 {
|
||||
dr_mode = "peripheral";
|
||||
};
|
||||
|
|
|
@ -45,6 +45,15 @@
|
|||
* 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.
|
||||
*
|
||||
* Note: this Device Tree assumes that the bootloader has remapped the
|
||||
* internal registers to 0xf1000000 (instead of the default
|
||||
* 0xd0000000). The 0xf1000000 is the default used by the recent,
|
||||
* DT-capable, U-Boot bootloaders provided by Marvell. Some earlier
|
||||
* boards were delivered with an older version of the bootloader that
|
||||
* left internal registers mapped at 0xd0000000. If you are in this
|
||||
* situation, you should either update your bootloader (preferred
|
||||
* solution) or the below Device Tree should be adjusted.
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
|
@ -55,7 +64,7 @@
|
|||
compatible = "marvell,a370-db", "marvell,armada370", "marvell,armada-370-xp";
|
||||
|
||||
chosen {
|
||||
bootargs = "console=ttyS0,115200 earlyprintk";
|
||||
stdout-path = "serial0:115200n8";
|
||||
};
|
||||
|
||||
memory {
|
||||
|
@ -64,7 +73,7 @@
|
|||
};
|
||||
|
||||
soc {
|
||||
ranges = <MBUS_ID(0xf0, 0x01) 0 0xd0000000 0x100000
|
||||
ranges = <MBUS_ID(0xf0, 0x01) 0 0xf1000000 0x100000
|
||||
MBUS_ID(0x01, 0xe0) 0 0xfff00000 0x100000>;
|
||||
|
||||
internal-regs {
|
||||
|
|
|
@ -51,7 +51,7 @@
|
|||
compatible = "globalscale,mirabox", "marvell,armada370", "marvell,armada-370-xp";
|
||||
|
||||
chosen {
|
||||
bootargs = "console=ttyS0,115200 earlyprintk";
|
||||
stdout-path = "serial0:115200n8";
|
||||
};
|
||||
|
||||
memory {
|
||||
|
|
|
@ -53,7 +53,7 @@
|
|||
compatible = "netgear,readynas-102", "marvell,armada370", "marvell,armada-370-xp";
|
||||
|
||||
chosen {
|
||||
bootargs = "console=ttyS0,115200 earlyprintk";
|
||||
stdout-path = "serial0:115200n8";
|
||||
};
|
||||
|
||||
memory {
|
||||
|
|
|
@ -53,7 +53,7 @@
|
|||
compatible = "netgear,readynas-104", "marvell,armada370", "marvell,armada-370-xp";
|
||||
|
||||
chosen {
|
||||
bootargs = "console=ttyS0,115200 earlyprintk";
|
||||
stdout-path = "serial0:115200n8";
|
||||
};
|
||||
|
||||
memory {
|
||||
|
|
|
@ -64,7 +64,7 @@
|
|||
compatible = "marvell,a370-rd", "marvell,armada370", "marvell,armada-370-xp";
|
||||
|
||||
chosen {
|
||||
bootargs = "console=ttyS0,115200 earlyprintk";
|
||||
stdout-path = "serial0:115200n8";
|
||||
};
|
||||
|
||||
memory {
|
||||
|
|
|
@ -67,8 +67,7 @@
|
|||
"marvell,armada-370-xp";
|
||||
|
||||
chosen {
|
||||
bootargs = "console=ttyS0,115200 earlyprintk";
|
||||
stdout-path = &uart0;
|
||||
stdout-path = "serial0:115200n8";
|
||||
};
|
||||
|
||||
memory {
|
||||
|
|
|
@ -59,8 +59,8 @@
|
|||
compatible = "marvell,armada-370-xp";
|
||||
|
||||
aliases {
|
||||
eth0 = ð0;
|
||||
eth1 = ð1;
|
||||
serial0 = &uart0;
|
||||
serial1 = &uart1;
|
||||
};
|
||||
|
||||
cpus {
|
||||
|
@ -73,6 +73,11 @@
|
|||
};
|
||||
};
|
||||
|
||||
pmu {
|
||||
compatible = "arm,cortex-a9-pmu";
|
||||
interrupts-extended = <&mpic 3>;
|
||||
};
|
||||
|
||||
soc {
|
||||
#address-cells = <2>;
|
||||
#size-cells = <1>;
|
||||
|
@ -223,7 +228,7 @@
|
|||
<0x20250 0x8>;
|
||||
};
|
||||
|
||||
mpic: interrupt-controller@20000 {
|
||||
mpic: interrupt-controller@20a00 {
|
||||
compatible = "marvell,mpic";
|
||||
#interrupt-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
|
|
@ -129,6 +129,7 @@
|
|||
compatible = "marvell,aurora-outer-cache";
|
||||
reg = <0x08000 0x1000>;
|
||||
cache-id-part = <0x100>;
|
||||
cache-level = <2>;
|
||||
cache-unified;
|
||||
wt-override;
|
||||
};
|
||||
|
@ -232,7 +233,7 @@
|
|||
reg = <0x18330 0x4>;
|
||||
};
|
||||
|
||||
interrupt-controller@20000 {
|
||||
interrupt-controller@20a00 {
|
||||
reg = <0x20a00 0x1d0>, <0x21870 0x58>;
|
||||
};
|
||||
|
||||
|
|
|
@ -55,7 +55,7 @@
|
|||
compatible = "marvell,a375-db", "marvell,armada375";
|
||||
|
||||
chosen {
|
||||
bootargs = "console=ttyS0,115200 earlyprintk";
|
||||
stdout-path = "serial0:115200n8";
|
||||
};
|
||||
|
||||
memory {
|
||||
|
|
|
@ -60,8 +60,8 @@
|
|||
gpio0 = &gpio0;
|
||||
gpio1 = &gpio1;
|
||||
gpio2 = &gpio2;
|
||||
ethernet0 = ð0;
|
||||
ethernet1 = ð1;
|
||||
serial0 = &uart0;
|
||||
serial1 = &uart1;
|
||||
};
|
||||
|
||||
clocks {
|
||||
|
@ -96,6 +96,11 @@
|
|||
};
|
||||
};
|
||||
|
||||
pmu {
|
||||
compatible = "arm,cortex-a9-pmu";
|
||||
interrupts-extended = <&mpic 3>;
|
||||
};
|
||||
|
||||
soc {
|
||||
compatible = "marvell,armada375-mbus", "simple-bus";
|
||||
#address-cells = <2>;
|
||||
|
@ -276,7 +281,7 @@
|
|||
status = "disabled";
|
||||
};
|
||||
|
||||
serial@12000 {
|
||||
uart0: serial@12000 {
|
||||
compatible = "snps,dw-apb-uart";
|
||||
reg = <0x12000 0x100>;
|
||||
reg-shift = <2>;
|
||||
|
@ -286,7 +291,7 @@
|
|||
status = "disabled";
|
||||
};
|
||||
|
||||
serial@12100 {
|
||||
uart1: serial@12100 {
|
||||
compatible = "snps,dw-apb-uart";
|
||||
reg = <0x12100 0x100>;
|
||||
reg-shift = <2>;
|
||||
|
@ -394,7 +399,7 @@
|
|||
reg = <0x20000 0x100>, <0x20180 0x20>;
|
||||
};
|
||||
|
||||
mpic: interrupt-controller@20000 {
|
||||
mpic: interrupt-controller@20a00 {
|
||||
compatible = "marvell,mpic";
|
||||
reg = <0x20a00 0x2d0>, <0x21070 0x58>;
|
||||
#interrupt-cells = <1>;
|
||||
|
|
|
@ -49,8 +49,7 @@
|
|||
compatible = "marvell,a385-db-ap", "marvell,armada385", "marvell,armada38x";
|
||||
|
||||
chosen {
|
||||
bootargs = "console=ttyS0,115200";
|
||||
stdout-path = &uart1;
|
||||
stdout-path = "serial1:115200n8";
|
||||
};
|
||||
|
||||
memory {
|
||||
|
@ -126,6 +125,13 @@
|
|||
status = "okay";
|
||||
};
|
||||
|
||||
pinctrl@18000 {
|
||||
xhci0_vbus_pins: xhci0-vbus-pins {
|
||||
marvell,pins = "mpp44";
|
||||
marvell,function = "gpio";
|
||||
};
|
||||
};
|
||||
|
||||
ethernet@30000 {
|
||||
status = "okay";
|
||||
phy = <&phy2>;
|
||||
|
@ -150,6 +156,24 @@
|
|||
phy = <&phy0>;
|
||||
phy-mode = "rgmii-id";
|
||||
};
|
||||
|
||||
nfc: flash@d0000 {
|
||||
status = "okay";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
num-cs = <1>;
|
||||
nand-ecc-strength = <4>;
|
||||
nand-ecc-step-size = <512>;
|
||||
marvell,nand-keep-config;
|
||||
marvell,nand-enable-arbiter;
|
||||
nand-on-flash-bbt;
|
||||
};
|
||||
|
||||
usb3@f0000 {
|
||||
status = "okay";
|
||||
usb-phy = <&usb3_phy>;
|
||||
};
|
||||
};
|
||||
|
||||
pcie-controller {
|
||||
|
@ -175,4 +199,20 @@
|
|||
};
|
||||
};
|
||||
};
|
||||
|
||||
usb3_phy: usb3_phy {
|
||||
compatible = "usb-nop-xceiv";
|
||||
vcc-supply = <®_xhci0_vbus>;
|
||||
};
|
||||
|
||||
reg_xhci0_vbus: xhci0-vbus {
|
||||
compatible = "regulator-fixed";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&xhci0_vbus_pins>;
|
||||
regulator-name = "xhci0-vbus";
|
||||
regulator-min-microvolt = <5000000>;
|
||||
regulator-max-microvolt = <5000000>;
|
||||
enable-active-high;
|
||||
gpio = <&gpio1 12 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
};
|
||||
|
|
|
@ -54,7 +54,7 @@
|
|||
"marvell,armada385", "marvell,armada380";
|
||||
|
||||
chosen {
|
||||
bootargs = "console=ttyS0,115200 earlyprintk";
|
||||
stdout-path = "serial0:115200n8";
|
||||
};
|
||||
|
||||
memory {
|
||||
|
@ -99,7 +99,7 @@
|
|||
phy-mode = "rgmii-id";
|
||||
};
|
||||
|
||||
usb@50000 {
|
||||
usb@58000 {
|
||||
status = "ok";
|
||||
};
|
||||
|
||||
|
|
|
@ -48,8 +48,7 @@
|
|||
compatible = "marvell,a385-gp", "marvell,armada388", "marvell,armada380";
|
||||
|
||||
chosen {
|
||||
bootargs = "console=ttyS0,115200";
|
||||
stdout-path = &uart0;
|
||||
stdout-path = "serial0:115200n8";
|
||||
};
|
||||
|
||||
memory {
|
||||
|
@ -135,7 +134,7 @@
|
|||
};
|
||||
|
||||
/* CON4 */
|
||||
usb@50000 {
|
||||
usb@58000 {
|
||||
vcc-supply = <®_usb2_0_vbus>;
|
||||
status = "okay";
|
||||
};
|
||||
|
|
|
@ -55,7 +55,7 @@
|
|||
"marvell,armada385","marvell,armada380";
|
||||
|
||||
chosen {
|
||||
bootargs = "console=ttyS0,115200 earlyprintk";
|
||||
stdout-path = "serial0:115200n8";
|
||||
};
|
||||
|
||||
memory {
|
||||
|
@ -85,6 +85,16 @@
|
|||
clock-frequency = <100000>;
|
||||
};
|
||||
|
||||
sdhci@d8000 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&sdhci_pins>;
|
||||
broken-cd;
|
||||
no-1-8-v;
|
||||
wp-inverted;
|
||||
bus-width = <8>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
serial@12000 {
|
||||
status = "okay";
|
||||
};
|
||||
|
|
|
@ -59,9 +59,13 @@
|
|||
aliases {
|
||||
gpio0 = &gpio0;
|
||||
gpio1 = &gpio1;
|
||||
ethernet0 = ð0;
|
||||
ethernet1 = ð1;
|
||||
ethernet2 = ð2;
|
||||
serial0 = &uart0;
|
||||
serial1 = &uart1;
|
||||
};
|
||||
|
||||
pmu {
|
||||
compatible = "arm,cortex-a9-pmu";
|
||||
interrupts-extended = <&mpic 3>;
|
||||
};
|
||||
|
||||
soc {
|
||||
|
@ -216,7 +220,7 @@
|
|||
status = "disabled";
|
||||
};
|
||||
|
||||
serial@12100 {
|
||||
uart1: serial@12100 {
|
||||
compatible = "snps,dw-apb-uart";
|
||||
reg = <0x12100 0x100>;
|
||||
reg-shift = <2>;
|
||||
|
@ -368,7 +372,7 @@
|
|||
reg = <0x20000 0x100>, <0x20180 0x20>;
|
||||
};
|
||||
|
||||
mpic: interrupt-controller@20000 {
|
||||
mpic: interrupt-controller@20a00 {
|
||||
compatible = "marvell,mpic";
|
||||
reg = <0x20a00 0x2d0>, <0x21070 0x58>;
|
||||
#interrupt-cells = <1>;
|
||||
|
@ -435,7 +439,7 @@
|
|||
status = "disabled";
|
||||
};
|
||||
|
||||
usb@50000 {
|
||||
usb@58000 {
|
||||
compatible = "marvell,orion-ehci";
|
||||
reg = <0x58000 0x500>;
|
||||
interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>;
|
||||
|
@ -548,8 +552,11 @@
|
|||
|
||||
sdhci@d8000 {
|
||||
compatible = "marvell,armada-380-sdhci";
|
||||
reg = <0xd8000 0x1000>, <0xdc000 0x100>;
|
||||
interrupts = <0 25 0x4>;
|
||||
reg-names = "sdhci", "mbus", "conf-sdio3";
|
||||
reg = <0xd8000 0x1000>,
|
||||
<0xdc000 0x100>,
|
||||
<0x18454 0x4>;
|
||||
interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&gateclk 17>;
|
||||
mrvl,clk-delay-cycles = <0x1F>;
|
||||
status = "disabled";
|
||||
|
|
57
arch/arm/boot/dts/armada-390.dtsi
Normal file
57
arch/arm/boot/dts/armada-390.dtsi
Normal file
|
@ -0,0 +1,57 @@
|
|||
/*
|
||||
* Device Tree Include file for Marvell Armada 390 SoC.
|
||||
*
|
||||
* Copyright (C) 2015 Marvell
|
||||
*
|
||||
* Thomas Petazzoni <thomas.petazzoni@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 , 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 "armada-39x.dtsi"
|
||||
|
||||
/ {
|
||||
soc {
|
||||
internal-regs {
|
||||
pinctrl@18000 {
|
||||
compatible = "marvell,mv88f6920-pinctrl";
|
||||
reg = <0x18000 0x20>;
|
||||
};
|
||||
};
|
||||
};
|
153
arch/arm/boot/dts/armada-398-db.dts
Normal file
153
arch/arm/boot/dts/armada-398-db.dts
Normal file
|
@ -0,0 +1,153 @@
|
|||
/*
|
||||
* Device Tree Include file for Marvell Armada 398 Development Board
|
||||
*
|
||||
* Copyright (C) 2015 Marvell
|
||||
*
|
||||
* Thomas Petazzoni <thomas.petazzoni@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 , 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 "armada-398.dtsi"
|
||||
|
||||
/ {
|
||||
model = "Marvell Armada 398 Development Board";
|
||||
compatible = "marvell,a398-db", "marvell,armada398", "marvell,armada390";
|
||||
|
||||
chosen {
|
||||
stdout-path = "serial0:115200n8";
|
||||
};
|
||||
|
||||
memory {
|
||||
device_type = "memory";
|
||||
reg = <0x00000000 0x80000000>; /* 2 GB */
|
||||
};
|
||||
|
||||
soc {
|
||||
ranges = <MBUS_ID(0xf0, 0x01) 0 0xf1000000 0x100000
|
||||
MBUS_ID(0x01, 0x1d) 0 0xfff00000 0x100000>;
|
||||
|
||||
internal-regs {
|
||||
spi@10680 {
|
||||
status = "okay";
|
||||
pinctrl-0 = <&spi1_pins>;
|
||||
pinctrl-names = "default";
|
||||
|
||||
spi-flash@0 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
compatible = "n25q128a13";
|
||||
reg = <0>;
|
||||
spi-max-frequency = <108000000>;
|
||||
|
||||
partition@0 {
|
||||
label = "U-Boot";
|
||||
reg = <0 0x400000>;
|
||||
};
|
||||
|
||||
partition@400000 {
|
||||
label = "Filesystem";
|
||||
reg = <0x400000 0x1000000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
i2c@11000 {
|
||||
pinctrl-0 = <&i2c0_pins>;
|
||||
pinctrl-names = "default";
|
||||
status = "okay";
|
||||
clock-frequency = <100000>;
|
||||
};
|
||||
|
||||
serial@12000 {
|
||||
pinctrl-0 = <&uart0_pins>;
|
||||
pinctrl-names = "default";
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
serial@12100 {
|
||||
pinctrl-0 = <&uart1_pins>;
|
||||
pinctrl-names = "default";
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
flash@d0000 {
|
||||
status = "okay";
|
||||
pinctrl-0 = <&nand_pins>;
|
||||
pinctrl-names = "default";
|
||||
num-cs = <1>;
|
||||
marvell,nand-keep-config;
|
||||
marvell,nand-enable-arbiter;
|
||||
nand-on-flash-bbt;
|
||||
nand-ecc-strength = <8>;
|
||||
nand-ecc-step-size = <512>;
|
||||
|
||||
partition@0 {
|
||||
label = "U-Boot";
|
||||
reg = <0 0x800000>;
|
||||
};
|
||||
partition@800000 {
|
||||
label = "Linux";
|
||||
reg = <0x800000 0x800000>;
|
||||
};
|
||||
partition@1000000 {
|
||||
label = "Filesystem";
|
||||
reg = <0x1000000 0x3f000000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
pcie-controller {
|
||||
status = "okay";
|
||||
|
||||
pcie@1,0 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
pcie@2,0 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
pcie@3,0 {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
60
arch/arm/boot/dts/armada-398.dtsi
Normal file
60
arch/arm/boot/dts/armada-398.dtsi
Normal file
|
@ -0,0 +1,60 @@
|
|||
/*
|
||||
* Device Tree Include file for Marvell Armada 398 SoC.
|
||||
*
|
||||
* Copyright (C) 2015 Marvell
|
||||
*
|
||||
* Thomas Petazzoni <thomas.petazzoni@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 , 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 "armada-39x.dtsi"
|
||||
|
||||
/ {
|
||||
compatible = "marvell,armada398", "marvell,armada390";
|
||||
|
||||
soc {
|
||||
internal-regs {
|
||||
pinctrl@18000 {
|
||||
compatible = "marvell,mv88f6928-pinctrl";
|
||||
reg = <0x18000 0x20>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
508
arch/arm/boot/dts/armada-39x.dtsi
Normal file
508
arch/arm/boot/dts/armada-39x.dtsi
Normal file
|
@ -0,0 +1,508 @@
|
|||
/*
|
||||
* Device Tree Include file for Marvell Armada 39x family of SoCs.
|
||||
*
|
||||
* Copyright (C) 2015 Marvell
|
||||
*
|
||||
* Thomas Petazzoni <thomas.petazzoni@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 , 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 "skeleton.dtsi"
|
||||
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
|
||||
#define MBUS_ID(target,attributes) (((target) << 24) | ((attributes) << 16))
|
||||
|
||||
/ {
|
||||
model = "Marvell Armada 39x family SoC";
|
||||
compatible = "marvell,armada390";
|
||||
|
||||
aliases {
|
||||
serial0 = &uart0;
|
||||
serial1 = &uart1;
|
||||
serial2 = &uart2;
|
||||
serial3 = &uart3;
|
||||
};
|
||||
|
||||
cpus {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
enable-method = "marvell,armada-390-smp";
|
||||
|
||||
cpu@0 {
|
||||
device_type = "cpu";
|
||||
compatible = "arm,cortex-a9";
|
||||
reg = <0>;
|
||||
};
|
||||
cpu@1 {
|
||||
device_type = "cpu";
|
||||
compatible = "arm,cortex-a9";
|
||||
reg = <1>;
|
||||
};
|
||||
};
|
||||
|
||||
soc {
|
||||
compatible = "marvell,armada390-mbus", "marvell,armadaxp-mbus",
|
||||
"simple-bus";
|
||||
#address-cells = <2>;
|
||||
#size-cells = <1>;
|
||||
controller = <&mbusc>;
|
||||
interrupt-parent = <&gic>;
|
||||
pcie-mem-aperture = <0xe0000000 0x8000000>;
|
||||
pcie-io-aperture = <0xe8000000 0x100000>;
|
||||
|
||||
bootrom {
|
||||
compatible = "marvell,bootrom";
|
||||
reg = <MBUS_ID(0x01, 0x1d) 0 0x200000>;
|
||||
};
|
||||
|
||||
internal-regs {
|
||||
compatible = "simple-bus";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
ranges = <0 MBUS_ID(0xf0, 0x01) 0 0x100000>;
|
||||
|
||||
L2: cache-controller@8000 {
|
||||
compatible = "arm,pl310-cache";
|
||||
reg = <0x8000 0x1000>;
|
||||
cache-unified;
|
||||
cache-level = <2>;
|
||||
};
|
||||
|
||||
scu@c000 {
|
||||
compatible = "arm,cortex-a9-scu";
|
||||
reg = <0xc000 0x100>;
|
||||
};
|
||||
|
||||
timer@c600 {
|
||||
compatible = "arm,cortex-a9-twd-timer";
|
||||
reg = <0xc600 0x20>;
|
||||
interrupts = <GIC_PPI 13 (IRQ_TYPE_EDGE_RISING | GIC_CPU_MASK_SIMPLE(2))>;
|
||||
clocks = <&coreclk 2>;
|
||||
};
|
||||
|
||||
gic: interrupt-controller@d000 {
|
||||
compatible = "arm,cortex-a9-gic";
|
||||
#interrupt-cells = <3>;
|
||||
#size-cells = <0>;
|
||||
interrupt-controller;
|
||||
reg = <0xd000 0x1000>,
|
||||
<0xc100 0x100>;
|
||||
};
|
||||
|
||||
spi0: spi@10600 {
|
||||
compatible = "marvell,orion-spi";
|
||||
reg = <0x10600 0x50>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
cell-index = <0>;
|
||||
interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&coreclk 0>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
spi1: spi@10680 {
|
||||
compatible = "marvell,orion-spi";
|
||||
reg = <0x10680 0x50>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
cell-index = <1>;
|
||||
interrupts = <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&coreclk 0>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
i2c0: i2c@11000 {
|
||||
compatible = "marvell,mv64xxx-i2c";
|
||||
reg = <0x11000 0x20>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
|
||||
timeout-ms = <1000>;
|
||||
clocks = <&coreclk 0>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
i2c1: i2c@11100 {
|
||||
compatible = "marvell,mv64xxx-i2c";
|
||||
reg = <0x11100 0x20>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
|
||||
timeout-ms = <1000>;
|
||||
clocks = <&coreclk 0>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
i2c2: i2c@11200 {
|
||||
compatible = "marvell,mv64xxx-i2c";
|
||||
reg = <0x11200 0x20>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
|
||||
timeout-ms = <1000>;
|
||||
clocks = <&coreclk 0>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
i2c3: i2c@11300 {
|
||||
compatible = "marvell,mv64xxx-i2c";
|
||||
reg = <0x11300 0x20>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
|
||||
timeout-ms = <1000>;
|
||||
clocks = <&coreclk 0>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
uart0: serial@12000 {
|
||||
compatible = "snps,dw-apb-uart";
|
||||
reg = <0x12000 0x100>;
|
||||
reg-shift = <2>;
|
||||
interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
|
||||
reg-io-width = <1>;
|
||||
clocks = <&coreclk 0>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
uart1: serial@12100 {
|
||||
compatible = "snps,dw-apb-uart";
|
||||
reg = <0x12100 0x100>;
|
||||
reg-shift = <2>;
|
||||
interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
|
||||
reg-io-width = <1>;
|
||||
clocks = <&coreclk 0>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
uart2: serial@12200 {
|
||||
compatible = "snps,dw-apb-uart";
|
||||
reg = <0x12200 0x100>;
|
||||
reg-shift = <2>;
|
||||
interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
|
||||
reg-io-width = <1>;
|
||||
clocks = <&coreclk 0>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
uart3: serial@12300 {
|
||||
compatible = "snps,dw-apb-uart";
|
||||
reg = <0x12300 0x100>;
|
||||
reg-shift = <2>;
|
||||
interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
|
||||
reg-io-width = <1>;
|
||||
clocks = <&coreclk 0>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
pinctrl@18000 {
|
||||
i2c0_pins: i2c0-pins {
|
||||
marvell,pins = "mpp2", "mpp3";
|
||||
marvell,function = "i2c0";
|
||||
};
|
||||
|
||||
uart0_pins: uart0-pins {
|
||||
marvell,pins = "mpp0", "mpp1";
|
||||
marvell,function = "ua0";
|
||||
};
|
||||
|
||||
uart1_pins: uart1-pins {
|
||||
marvell,pins = "mpp19", "mpp20";
|
||||
marvell,function = "ua1";
|
||||
};
|
||||
|
||||
spi1_pins: spi1-pins {
|
||||
marvell,pins = "mpp56", "mpp57", "mpp58", "mpp59";
|
||||
marvell,function = "spi1";
|
||||
};
|
||||
|
||||
nand_pins: nand-pins {
|
||||
marvell,pins = "mpp22", "mpp34", "mpp23", "mpp33",
|
||||
"mpp38", "mpp28", "mpp40", "mpp42",
|
||||
"mpp35", "mpp36", "mpp25", "mpp30",
|
||||
"mpp32";
|
||||
marvell,function = "dev";
|
||||
};
|
||||
};
|
||||
|
||||
system-controller@18200 {
|
||||
compatible = "marvell,armada-390-system-controller",
|
||||
"marvell,armada-370-xp-system-controller";
|
||||
reg = <0x18200 0x100>;
|
||||
};
|
||||
|
||||
gateclk: clock-gating-control@18220 {
|
||||
compatible = "marvell,armada-390-gating-clock";
|
||||
reg = <0x18220 0x4>;
|
||||
clocks = <&coreclk 0>;
|
||||
#clock-cells = <1>;
|
||||
};
|
||||
|
||||
coreclk: mvebu-sar@18600 {
|
||||
compatible = "marvell,armada-390-core-clock";
|
||||
reg = <0x18600 0x04>;
|
||||
#clock-cells = <1>;
|
||||
};
|
||||
|
||||
mbusc: mbus-controller@20000 {
|
||||
compatible = "marvell,mbus-controller";
|
||||
reg = <0x20000 0x100>, <0x20180 0x20>, <0x20250 0x8>;
|
||||
};
|
||||
|
||||
mpic: interrupt-controller@20a00 {
|
||||
compatible = "marvell,mpic";
|
||||
reg = <0x20a00 0x2d0>, <0x21070 0x58>;
|
||||
#interrupt-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
interrupt-controller;
|
||||
msi-controller;
|
||||
interrupts = <GIC_PPI 15 IRQ_TYPE_LEVEL_HIGH>;
|
||||
};
|
||||
|
||||
timer@20300 {
|
||||
compatible = "marvell,armada-380-timer",
|
||||
"marvell,armada-xp-timer";
|
||||
reg = <0x20300 0x30>, <0x21040 0x30>;
|
||||
interrupts-extended = <&gic GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<&gic GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<&gic GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<&gic GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<&mpic 5>,
|
||||
<&mpic 6>;
|
||||
clocks = <&coreclk 2>, <&coreclk 5>;
|
||||
clock-names = "nbclk", "fixed";
|
||||
};
|
||||
|
||||
cpurst@20800 {
|
||||
compatible = "marvell,armada-370-cpu-reset";
|
||||
reg = <0x20800 0x10>;
|
||||
};
|
||||
|
||||
pmsu@22000 {
|
||||
compatible = "marvell,armada-390-pmsu",
|
||||
"marvell,armada-380-pmsu";
|
||||
reg = <0x22000 0x1000>;
|
||||
};
|
||||
|
||||
xor@60800 {
|
||||
compatible = "marvell,orion-xor";
|
||||
reg = <0x60800 0x100
|
||||
0x60a00 0x100>;
|
||||
clocks = <&gateclk 22>;
|
||||
status = "okay";
|
||||
|
||||
xor00 {
|
||||
interrupts = <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>;
|
||||
dmacap,memcpy;
|
||||
dmacap,xor;
|
||||
};
|
||||
xor01 {
|
||||
interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
|
||||
dmacap,memcpy;
|
||||
dmacap,xor;
|
||||
dmacap,memset;
|
||||
};
|
||||
};
|
||||
|
||||
xor@60900 {
|
||||
compatible = "marvell,orion-xor";
|
||||
reg = <0x60900 0x100
|
||||
0x60b00 0x100>;
|
||||
clocks = <&gateclk 28>;
|
||||
status = "okay";
|
||||
|
||||
xor10 {
|
||||
interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>;
|
||||
dmacap,memcpy;
|
||||
dmacap,xor;
|
||||
};
|
||||
xor11 {
|
||||
interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>;
|
||||
dmacap,memcpy;
|
||||
dmacap,xor;
|
||||
dmacap,memset;
|
||||
};
|
||||
};
|
||||
|
||||
flash@d0000 {
|
||||
compatible = "marvell,armada370-nand";
|
||||
reg = <0xd0000 0x54>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&coredivclk 0>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
sdhci@d8000 {
|
||||
compatible = "marvell,armada-380-sdhci";
|
||||
reg = <0xd8000 0x1000>, <0xdc000 0x100>;
|
||||
interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&gateclk 17>;
|
||||
mrvl,clk-delay-cycles = <0x1F>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
coredivclk: clock@e4250 {
|
||||
compatible = "marvell,armada-390-corediv-clock",
|
||||
"marvell,armada-380-corediv-clock";
|
||||
reg = <0xe4250 0xc>;
|
||||
#clock-cells = <1>;
|
||||
clocks = <&mainpll>;
|
||||
clock-output-names = "nand";
|
||||
};
|
||||
};
|
||||
|
||||
pcie-controller {
|
||||
compatible = "marvell,armada-370-pcie";
|
||||
status = "disabled";
|
||||
device_type = "pci";
|
||||
|
||||
#address-cells = <3>;
|
||||
#size-cells = <2>;
|
||||
|
||||
msi-parent = <&mpic>;
|
||||
bus-range = <0x00 0xff>;
|
||||
|
||||
ranges =
|
||||
<0x82000000 0 0x80000 MBUS_ID(0xf0, 0x01) 0x80000 0 0x00002000
|
||||
0x82000000 0 0x40000 MBUS_ID(0xf0, 0x01) 0x40000 0 0x00002000
|
||||
0x82000000 0 0x44000 MBUS_ID(0xf0, 0x01) 0x44000 0 0x00002000
|
||||
0x82000000 0 0x48000 MBUS_ID(0xf0, 0x01) 0x48000 0 0x00002000
|
||||
0x82000000 0x1 0 MBUS_ID(0x08, 0xe8) 0 1 0 /* Port 0 MEM */
|
||||
0x81000000 0x1 0 MBUS_ID(0x08, 0xe0) 0 1 0 /* Port 0 IO */
|
||||
0x82000000 0x2 0 MBUS_ID(0x04, 0xe8) 0 1 0 /* Port 1 MEM */
|
||||
0x81000000 0x2 0 MBUS_ID(0x04, 0xe0) 0 1 0 /* Port 1 IO */
|
||||
0x82000000 0x3 0 MBUS_ID(0x04, 0xd8) 0 1 0 /* Port 2 MEM */
|
||||
0x81000000 0x3 0 MBUS_ID(0x04, 0xd0) 0 1 0 /* Port 2 IO */
|
||||
0x82000000 0x4 0 MBUS_ID(0x04, 0xb8) 0 1 0 /* Port 3 MEM */
|
||||
0x81000000 0x4 0 MBUS_ID(0x04, 0xb0) 0 1 0 /* Port 3 IO */>;
|
||||
|
||||
/*
|
||||
* This port can be either x4 or x1. When
|
||||
* configured in x4 by the bootloader, then
|
||||
* pcie@4,0 is not available.
|
||||
*/
|
||||
pcie@1,0 {
|
||||
device_type = "pci";
|
||||
assigned-addresses = <0x82000800 0 0x80000 0 0x2000>;
|
||||
reg = <0x0800 0 0 0 0>;
|
||||
#address-cells = <3>;
|
||||
#size-cells = <2>;
|
||||
#interrupt-cells = <1>;
|
||||
ranges = <0x82000000 0 0 0x82000000 0x1 0 1 0
|
||||
0x81000000 0 0 0x81000000 0x1 0 1 0>;
|
||||
interrupt-map-mask = <0 0 0 0>;
|
||||
interrupt-map = <0 0 0 0 &gic GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
|
||||
marvell,pcie-port = <0>;
|
||||
marvell,pcie-lane = <0>;
|
||||
clocks = <&gateclk 8>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
/* x1 port */
|
||||
pcie@2,0 {
|
||||
device_type = "pci";
|
||||
assigned-addresses = <0x82000800 0 0x40000 0 0x2000>;
|
||||
reg = <0x1000 0 0 0 0>;
|
||||
#address-cells = <3>;
|
||||
#size-cells = <2>;
|
||||
#interrupt-cells = <1>;
|
||||
ranges = <0x82000000 0 0 0x82000000 0x2 0 1 0
|
||||
0x81000000 0 0 0x81000000 0x2 0 1 0>;
|
||||
interrupt-map-mask = <0 0 0 0>;
|
||||
interrupt-map = <0 0 0 0 &gic GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
|
||||
marvell,pcie-port = <1>;
|
||||
marvell,pcie-lane = <0>;
|
||||
clocks = <&gateclk 5>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
/* x1 port */
|
||||
pcie@3,0 {
|
||||
device_type = "pci";
|
||||
assigned-addresses = <0x82000800 0 0x44000 0 0x2000>;
|
||||
reg = <0x1800 0 0 0 0>;
|
||||
#address-cells = <3>;
|
||||
#size-cells = <2>;
|
||||
#interrupt-cells = <1>;
|
||||
ranges = <0x82000000 0 0 0x82000000 0x3 0 1 0
|
||||
0x81000000 0 0 0x81000000 0x3 0 1 0>;
|
||||
interrupt-map-mask = <0 0 0 0>;
|
||||
interrupt-map = <0 0 0 0 &gic GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>;
|
||||
marvell,pcie-port = <2>;
|
||||
marvell,pcie-lane = <0>;
|
||||
clocks = <&gateclk 6>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
/*
|
||||
* x1 port only available when pcie@1,0 is
|
||||
* configured as a x1 port
|
||||
*/
|
||||
pcie@4,0 {
|
||||
device_type = "pci";
|
||||
assigned-addresses = <0x82000800 0 0x48000 0 0x2000>;
|
||||
reg = <0x2000 0 0 0 0>;
|
||||
#address-cells = <3>;
|
||||
#size-cells = <2>;
|
||||
#interrupt-cells = <1>;
|
||||
ranges = <0x82000000 0 0 0x82000000 0x4 0 1 0
|
||||
0x81000000 0 0 0x81000000 0x4 0 1 0>;
|
||||
interrupt-map-mask = <0 0 0 0>;
|
||||
interrupt-map = <0 0 0 0 &gic GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
|
||||
marvell,pcie-port = <3>;
|
||||
marvell,pcie-lane = <0>;
|
||||
clocks = <&gateclk 7>;
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
clocks {
|
||||
/* 2 GHz fixed main PLL */
|
||||
mainpll: mainpll {
|
||||
compatible = "fixed-clock";
|
||||
#clock-cells = <0>;
|
||||
clock-frequency = <2000000000>;
|
||||
};
|
||||
};
|
||||
};
|
|
@ -59,7 +59,7 @@
|
|||
compatible = "marvell,rd-axpwifiap", "marvell,armadaxp-mv78230", "marvell,armadaxp", "marvell,armada-370-xp";
|
||||
|
||||
chosen {
|
||||
bootargs = "console=ttyS0,115200 earlyprintk";
|
||||
stdout-path = "serial0:115200n8";
|
||||
};
|
||||
|
||||
memory {
|
||||
|
|
|
@ -64,7 +64,7 @@
|
|||
compatible = "marvell,axp-db", "marvell,armadaxp-mv78460", "marvell,armadaxp", "marvell,armada-370-xp";
|
||||
|
||||
chosen {
|
||||
bootargs = "console=ttyS0,115200 earlyprintk";
|
||||
stdout-path = "serial0:115200n8";
|
||||
};
|
||||
|
||||
memory {
|
||||
|
|
|
@ -65,7 +65,7 @@
|
|||
compatible = "marvell,axp-gp", "marvell,armadaxp-mv78460", "marvell,armadaxp", "marvell,armada-370-xp";
|
||||
|
||||
chosen {
|
||||
bootargs = "console=ttyS0,115200 earlyprintk";
|
||||
stdout-path = "serial0:115200n8";
|
||||
};
|
||||
|
||||
memory {
|
||||
|
|
|
@ -54,8 +54,7 @@
|
|||
"marvell,armadaxp", "marvell,armada-370-xp";
|
||||
|
||||
chosen {
|
||||
bootargs = "console=ttyS0,115200 earlyprintk";
|
||||
stdout-path = &uart0;
|
||||
stdout-path = "serial0:115200n8";
|
||||
};
|
||||
|
||||
memory {
|
||||
|
|
393
arch/arm/boot/dts/armada-xp-linksys-mamba.dts
Normal file
393
arch/arm/boot/dts/armada-xp-linksys-mamba.dts
Normal file
|
@ -0,0 +1,393 @@
|
|||
/*
|
||||
* Device Tree file for the Linksys WRT1900AC (Mamba).
|
||||
*
|
||||
* Note: this board is shipped with a new generation boot loader that
|
||||
* remaps internal registers at 0xf1000000. Therefore, if earlyprintk
|
||||
* is used, the CONFIG_DEBUG_MVEBU_UART0_ALTERNATE option should be
|
||||
* used.
|
||||
*
|
||||
* Copyright (C) 2014 Imre Kaloz <kaloz@openwrt.org>
|
||||
*
|
||||
* Based on armada-xp-axpwifiap.dts:
|
||||
*
|
||||
* Copyright (C) 2013 Marvell
|
||||
*
|
||||
* Thomas Petazzoni <thomas.petazzoni@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 licensed under the terms of the GNU General Public
|
||||
* License version 2. This program is licensed "as is" without
|
||||
* any warranty of any kind, whether express or implied.
|
||||
*
|
||||
* 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 <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/input/input.h>
|
||||
#include "armada-xp-mv78230.dtsi"
|
||||
|
||||
/ {
|
||||
model = "Linksys WRT1900AC";
|
||||
compatible = "linksys,mamba", "marvell,armadaxp-mv78230",
|
||||
"marvell,armadaxp", "marvell,armada-370-xp";
|
||||
|
||||
chosen {
|
||||
bootargs = "console=ttyS0,115200";
|
||||
stdout-path = &uart0;
|
||||
};
|
||||
|
||||
memory {
|
||||
device_type = "memory";
|
||||
reg = <0x00000000 0x00000000 0x00000000 0x10000000>; /* 256MB */
|
||||
};
|
||||
|
||||
soc {
|
||||
ranges = <MBUS_ID(0xf0, 0x01) 0 0 0xf1000000 0x100000
|
||||
MBUS_ID(0x01, 0x1d) 0 0 0xfff00000 0x100000>;
|
||||
|
||||
pcie-controller {
|
||||
status = "okay";
|
||||
|
||||
/* Etron EJ168 USB 3.0 controller */
|
||||
pcie@1,0 {
|
||||
/* Port 0, Lane 0 */
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
/* First mini-PCIe port */
|
||||
pcie@2,0 {
|
||||
/* Port 0, Lane 1 */
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
/* Second mini-PCIe port */
|
||||
pcie@3,0 {
|
||||
/* Port 0, Lane 3 */
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
|
||||
internal-regs {
|
||||
|
||||
/* J10: VCC, NC, RX, NC, TX, GND */
|
||||
serial@12000 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
sata@a0000 {
|
||||
nr-ports = <1>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
ethernet@70000 {
|
||||
pinctrl-0 = <&ge0_rgmii_pins>;
|
||||
pinctrl-names = "default";
|
||||
status = "okay";
|
||||
phy-mode = "rgmii-id";
|
||||
fixed-link {
|
||||
speed = <1000>;
|
||||
full-duplex;
|
||||
};
|
||||
};
|
||||
|
||||
ethernet@74000 {
|
||||
pinctrl-0 = <&ge1_rgmii_pins>;
|
||||
pinctrl-names = "default";
|
||||
status = "okay";
|
||||
phy-mode = "rgmii-id";
|
||||
fixed-link {
|
||||
speed = <1000>;
|
||||
full-duplex;
|
||||
};
|
||||
};
|
||||
|
||||
/* USB part of the eSATA/USB 2.0 port */
|
||||
usb@50000 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
i2c@11000 {
|
||||
status = "okay";
|
||||
clock-frequency = <100000>;
|
||||
|
||||
tmp421@4c {
|
||||
compatible = "ti,tmp421";
|
||||
reg = <0x4c>;
|
||||
};
|
||||
|
||||
tlc59116@68 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
#gpio-cells = <2>;
|
||||
compatible = "ti,tlc59116";
|
||||
reg = <0x68>;
|
||||
|
||||
wan_amber@0 {
|
||||
label = "mamba:amber:wan";
|
||||
reg = <0x0>;
|
||||
};
|
||||
|
||||
wan_white@1 {
|
||||
label = "mamba:white:wan";
|
||||
reg = <0x1>;
|
||||
};
|
||||
|
||||
wlan_2g@2 {
|
||||
label = "mamba:white:wlan_2g";
|
||||
reg = <0x2>;
|
||||
};
|
||||
|
||||
wlan_5g@3 {
|
||||
label = "mamba:white:wlan_5g";
|
||||
reg = <0x3>;
|
||||
};
|
||||
|
||||
esata@4 {
|
||||
label = "mamba:white:esata";
|
||||
reg = <0x4>;
|
||||
};
|
||||
|
||||
usb2@5 {
|
||||
label = "mamba:white:usb2";
|
||||
reg = <0x5>;
|
||||
};
|
||||
|
||||
usb3_1@6 {
|
||||
label = "mamba:white:usb3_1";
|
||||
reg = <0x6>;
|
||||
};
|
||||
|
||||
usb3_2@7 {
|
||||
label = "mamba:white:usb3_2";
|
||||
reg = <0x7>;
|
||||
};
|
||||
|
||||
wps_white@8 {
|
||||
label = "mamba:white:wps";
|
||||
reg = <0x8>;
|
||||
};
|
||||
|
||||
wps_amber@9 {
|
||||
label = "mamba:amber:wps";
|
||||
reg = <0x9>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
nand@d0000 {
|
||||
status = "okay";
|
||||
num-cs = <1>;
|
||||
marvell,nand-keep-config;
|
||||
marvell,nand-enable-arbiter;
|
||||
nand-on-flash-bbt;
|
||||
nand-ecc-strength = <4>;
|
||||
nand-ecc-step-size = <512>;
|
||||
|
||||
partition@0 {
|
||||
label = "u-boot";
|
||||
reg = <0x0000000 0x100000>; /* 1MB */
|
||||
read-only;
|
||||
};
|
||||
|
||||
partition@100000 {
|
||||
label = "u_env";
|
||||
reg = <0x100000 0x40000>; /* 256KB */
|
||||
};
|
||||
|
||||
partition@140000 {
|
||||
label = "s_env";
|
||||
reg = <0x140000 0x40000>; /* 256KB */
|
||||
};
|
||||
|
||||
partition@900000 {
|
||||
label = "devinfo";
|
||||
reg = <0x900000 0x100000>; /* 1MB */
|
||||
read-only;
|
||||
};
|
||||
|
||||
/* kernel1 overlaps with rootfs1 by design */
|
||||
partition@a00000 {
|
||||
label = "kernel1";
|
||||
reg = <0xa00000 0x2800000>; /* 40MB */
|
||||
};
|
||||
|
||||
partition@d00000 {
|
||||
label = "rootfs1";
|
||||
reg = <0xd00000 0x2500000>; /* 37MB */
|
||||
};
|
||||
|
||||
/* kernel2 overlaps with rootfs2 by design */
|
||||
partition@3200000 {
|
||||
label = "kernel2";
|
||||
reg = <0x3200000 0x2800000>; /* 40MB */
|
||||
};
|
||||
|
||||
partition@3500000 {
|
||||
label = "rootfs2";
|
||||
reg = <0x3500000 0x2500000>; /* 37MB */
|
||||
};
|
||||
|
||||
/*
|
||||
* 38MB, last MB is for the BBT, not writable
|
||||
*/
|
||||
partition@5a00000 {
|
||||
label = "syscfg";
|
||||
reg = <0x5a00000 0x2600000>;
|
||||
};
|
||||
|
||||
/*
|
||||
* Unused area between "s_env" and "devinfo".
|
||||
* Moved here because otherwise the renumbered
|
||||
* partitions would break the bootloader
|
||||
* supplied bootargs
|
||||
*/
|
||||
partition@180000 {
|
||||
label = "unused_area";
|
||||
reg = <0x180000 0x780000>; /* 7.5MB */
|
||||
};
|
||||
};
|
||||
|
||||
spi0: spi@10600 {
|
||||
status = "okay";
|
||||
|
||||
spi-flash@0 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
compatible = "everspin,mr25h256";
|
||||
reg = <0>; /* Chip select 0 */
|
||||
spi-max-frequency = <40000000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
gpio_keys {
|
||||
compatible = "gpio-keys";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
pinctrl-0 = <&keys_pin>;
|
||||
pinctrl-names = "default";
|
||||
|
||||
button@1 {
|
||||
label = "WPS";
|
||||
linux,code = <KEY_WPS_BUTTON>;
|
||||
gpios = <&gpio1 0 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
|
||||
button@2 {
|
||||
label = "Factory Reset Button";
|
||||
linux,code = <KEY_RESTART>;
|
||||
gpios = <&gpio1 1 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
};
|
||||
|
||||
gpio-leds {
|
||||
compatible = "gpio-leds";
|
||||
pinctrl-0 = <&power_led_pin>;
|
||||
pinctrl-names = "default";
|
||||
|
||||
power {
|
||||
label = "mamba:white:power";
|
||||
gpios = <&gpio1 8 GPIO_ACTIVE_HIGH>;
|
||||
default-state = "on";
|
||||
};
|
||||
};
|
||||
|
||||
gpio_fan {
|
||||
/* SUNON HA4010V4-0000-C99 */
|
||||
compatible = "gpio-fan";
|
||||
gpios = <&gpio0 24 0>;
|
||||
|
||||
gpio-fan,speed-map = <0 0
|
||||
4500 1>;
|
||||
};
|
||||
|
||||
dsa@0 {
|
||||
compatible = "marvell,dsa";
|
||||
#address-cells = <2>;
|
||||
#size-cells = <0>;
|
||||
|
||||
dsa,ethernet = <ð0>;
|
||||
dsa,mii-bus = <&mdio>;
|
||||
|
||||
switch@0 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
reg = <0x0 0>; /* MDIO address 0, switch 0 in tree */
|
||||
|
||||
port@0 {
|
||||
reg = <0>;
|
||||
label = "lan4";
|
||||
};
|
||||
|
||||
port@1 {
|
||||
reg = <1>;
|
||||
label = "lan3";
|
||||
};
|
||||
|
||||
port@2 {
|
||||
reg = <2>;
|
||||
label = "lan2";
|
||||
};
|
||||
|
||||
port@3 {
|
||||
reg = <3>;
|
||||
label = "lan1";
|
||||
};
|
||||
|
||||
port@4 {
|
||||
reg = <4>;
|
||||
label = "internet";
|
||||
};
|
||||
|
||||
port@5 {
|
||||
reg = <5>;
|
||||
label = "cpu";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&pinctrl {
|
||||
|
||||
keys_pin: keys-pin {
|
||||
marvell,pins = "mpp32", "mpp33";
|
||||
marvell,function = "gpio";
|
||||
};
|
||||
|
||||
power_led_pin: power-led-pin {
|
||||
marvell,pins = "mpp40";
|
||||
marvell,function = "gpio";
|
||||
};
|
||||
|
||||
gpio_fan_pin: gpio-fan-pin {
|
||||
marvell,pins = "mpp24";
|
||||
marvell,function = "gpio";
|
||||
};
|
||||
};
|
|
@ -52,7 +52,7 @@
|
|||
compatible = "marvell,axp-matrix", "marvell,armadaxp-mv78460", "marvell,armadaxp", "marvell,armada-370-xp";
|
||||
|
||||
chosen {
|
||||
bootargs = "console=ttyS0,115200 earlyprintk";
|
||||
stdout-path = "serial0:115200n8";
|
||||
};
|
||||
|
||||
memory {
|
||||
|
|
|
@ -57,7 +57,6 @@
|
|||
gpio0 = &gpio0;
|
||||
gpio1 = &gpio1;
|
||||
gpio2 = &gpio2;
|
||||
eth3 = ð3;
|
||||
};
|
||||
|
||||
cpus {
|
||||
|
|
|
@ -57,7 +57,6 @@
|
|||
gpio0 = &gpio0;
|
||||
gpio1 = &gpio1;
|
||||
gpio2 = &gpio2;
|
||||
eth3 = ð3;
|
||||
};
|
||||
|
||||
|
||||
|
|
|
@ -53,7 +53,7 @@
|
|||
compatible = "netgear,readynas-2120", "marvell,armadaxp-mv78230", "marvell,armadaxp", "marvell,armada-370-xp";
|
||||
|
||||
chosen {
|
||||
bootargs = "console=ttyS0,115200 earlyprintk";
|
||||
stdout-path = "serial0:115200n8";
|
||||
};
|
||||
|
||||
memory {
|
||||
|
|
|
@ -54,7 +54,7 @@
|
|||
compatible = "plathome,openblocks-ax3-4", "marvell,armadaxp-mv78260", "marvell,armadaxp", "marvell,armada-370-xp";
|
||||
|
||||
chosen {
|
||||
bootargs = "console=ttyS0,115200 earlyprintk";
|
||||
stdout-path = "serial0:115200n8";
|
||||
};
|
||||
|
||||
memory {
|
||||
|
|
|
@ -67,8 +67,7 @@
|
|||
"marvell,armadaxp", "marvell,armada-370-xp";
|
||||
|
||||
chosen {
|
||||
bootargs = "console=ttyS0,115200 earlyprintk";
|
||||
stdout-path = &uart0;
|
||||
stdout-path = "serial0:115200n8";
|
||||
};
|
||||
|
||||
memory {
|
||||
|
|
|
@ -57,7 +57,8 @@
|
|||
compatible = "marvell,armadaxp", "marvell,armada-370-xp";
|
||||
|
||||
aliases {
|
||||
eth2 = ð2;
|
||||
serial2 = &uart2;
|
||||
serial3 = &uart3;
|
||||
};
|
||||
|
||||
soc {
|
||||
|
@ -78,6 +79,7 @@
|
|||
compatible = "marvell,aurora-system-cache";
|
||||
reg = <0x08000 0x1000>;
|
||||
cache-id-part = <0x100>;
|
||||
cache-level = <2>;
|
||||
cache-unified;
|
||||
wt-override;
|
||||
};
|
||||
|
@ -149,11 +151,11 @@
|
|||
cpuclk: clock-complex@18700 {
|
||||
#clock-cells = <1>;
|
||||
compatible = "marvell,armada-xp-cpu-clock";
|
||||
reg = <0x18700 0xA0>, <0x1c054 0x10>;
|
||||
reg = <0x18700 0x24>, <0x1c054 0x10>;
|
||||
clocks = <&coreclk 1>;
|
||||
};
|
||||
|
||||
interrupt-controller@20000 {
|
||||
interrupt-controller@20a00 {
|
||||
reg = <0x20a00 0x2d0>, <0x21070 0x58>;
|
||||
};
|
||||
|
||||
|
|
|
@ -194,6 +194,11 @@
|
|||
<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 {
|
||||
atmel,pins =
|
||||
<AT91_PIOE 0 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>;
|
||||
|
@ -282,6 +287,9 @@
|
|||
gpio_keys {
|
||||
compatible = "gpio-keys";
|
||||
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_key_gpio>;
|
||||
|
||||
bp3 {
|
||||
label = "PB_USER";
|
||||
gpios = <&pioE 29 GPIO_ACTIVE_LOW>;
|
||||
|
|
241
arch/arm/boot/dts/at91-sama5d4_xplained.dts
Normal file
241
arch/arm/boot/dts/at91-sama5d4_xplained.dts
Normal file
|
@ -0,0 +1,241 @@
|
|||
/*
|
||||
* 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";
|
||||
|
||||
chosen {
|
||||
bootargs = "console=ttyS0,115200 ignore_loglevel earlyprintk";
|
||||
};
|
||||
|
||||
memory {
|
||||
reg = <0x20000000 0x20000000>;
|
||||
};
|
||||
|
||||
clocks {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
ranges;
|
||||
|
||||
main_clock: clock@0 {
|
||||
compatible = "atmel,osc", "fixed-clock";
|
||||
clock-frequency = <12000000>;
|
||||
};
|
||||
|
||||
slow_xtal {
|
||||
clock-frequency = <32768>;
|
||||
};
|
||||
|
||||
main_xtal {
|
||||
clock-frequency = <12000000>;
|
||||
};
|
||||
};
|
||||
|
||||
ahb {
|
||||
apb {
|
||||
spi0: spi@f8010000 {
|
||||
cs-gpios = <&pioC 3 0>, <0>, <0>, <0>;
|
||||
status = "okay";
|
||||
m25p80@0 {
|
||||
compatible = "atmel,at25df321a";
|
||||
spi-max-frequency = <50000000>;
|
||||
reg = <0>;
|
||||
};
|
||||
};
|
||||
|
||||
i2c0: i2c@f8014000 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
macb0: ethernet@f8020000 {
|
||||
phy-mode = "rmii";
|
||||
status = "okay";
|
||||
|
||||
phy0: ethernet-phy@1 {
|
||||
interrupt-parent = <&pioE>;
|
||||
interrupts = <1 IRQ_TYPE_EDGE_FALLING>;
|
||||
reg = <1>;
|
||||
};
|
||||
};
|
||||
|
||||
mmc1: mmc@fc000000 {
|
||||
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 3 0>;
|
||||
};
|
||||
};
|
||||
|
||||
usart3: serial@fc00c000 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
usart4: serial@fc010000 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
adc0: adc@fc034000 {
|
||||
atmel,adc-vref = <3300>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
watchdog@fc068640 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
pinctrl@fc06a000 {
|
||||
board {
|
||||
pinctrl_mmc1_cd: mmc1_cd {
|
||||
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>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
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>;
|
||||
gpio-key,wakeup;
|
||||
};
|
||||
};
|
||||
|
||||
leds {
|
||||
compatible = "gpio-leds";
|
||||
status = "okay";
|
||||
|
||||
d8 {
|
||||
label = "d8";
|
||||
gpios = <&pioD 30 GPIO_ACTIVE_HIGH>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
d10 {
|
||||
label = "d10";
|
||||
gpios = <&pioE 15 GPIO_ACTIVE_LOW>;
|
||||
linux,default-trigger = "heartbeat";
|
||||
};
|
||||
};
|
||||
};
|
|
@ -115,6 +115,10 @@
|
|||
};
|
||||
};
|
||||
|
||||
ssc0: ssc@f8008000 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
spi0: spi@f8010000 {
|
||||
cs-gpios = <&pioC 3 0>, <0>, <0>, <0>;
|
||||
status = "okay";
|
||||
|
@ -127,6 +131,13 @@
|
|||
|
||||
i2c0: i2c@f8014000 {
|
||||
status = "okay";
|
||||
|
||||
wm8904: codec@1a {
|
||||
compatible = "wlf,wm8904";
|
||||
reg = <0x1a>;
|
||||
clocks = <&pck2>;
|
||||
clock-names = "mclk";
|
||||
};
|
||||
};
|
||||
|
||||
macb0: ethernet@f8020000 {
|
||||
|
@ -171,6 +182,10 @@
|
|||
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>;
|
||||
|
@ -244,8 +259,6 @@
|
|||
|
||||
gpio_keys {
|
||||
compatible = "gpio-keys";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_key_gpio>;
|
||||
|
@ -257,4 +270,42 @@
|
|||
gpio-key,wakeup;
|
||||
};
|
||||
};
|
||||
|
||||
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>;
|
||||
};
|
||||
};
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
*/
|
||||
|
||||
#include "at91sam9x5.dtsi"
|
||||
#include "at91sam9x5_isi.dtsi"
|
||||
#include "at91sam9x5_usart3.dtsi"
|
||||
#include "at91sam9x5_macb0.dtsi"
|
||||
|
||||
|
|
|
@ -16,10 +16,28 @@
|
|||
|
||||
ahb {
|
||||
apb {
|
||||
spi0: spi@f0000000 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
mmc1: mmc@f000c000 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
i2c0: i2c@f8010000 {
|
||||
ov2640: camera@0x30 {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
|
||||
macb0: ethernet@f802c000 {
|
||||
phy-mode = "rmii";
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
isi: isi@f8048000 {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
|
|
@ -912,6 +912,15 @@
|
|||
clocks = <&pwm_clk>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
usb1: gadget@f803c000 {
|
||||
compatible = "atmel,at91sam9260-udc";
|
||||
reg = <0xf803c000 0x4000>;
|
||||
interrupts = <23 IRQ_TYPE_LEVEL_HIGH 2>;
|
||||
clocks = <&udphs_clk>, <&udpck>;
|
||||
clock-names = "pclk", "hclk";
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
|
||||
nand0: nand@40000000 {
|
||||
|
|
|
@ -108,6 +108,13 @@
|
|||
<AT91_PIOB 10 AT91_PERIPH_B AT91_PINCTRL_NONE>;
|
||||
};
|
||||
};
|
||||
|
||||
usb1 {
|
||||
pinctrl_usb1_vbus_sense: usb1_vbus_sense {
|
||||
atmel,pins =
|
||||
<AT91_PIOB 16 AT91_PERIPH_GPIO AT91_PINCTRL_DEGLITCH>; /* PB16 gpio usb vbus sense, no pull up and deglitch */
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
spi0: spi@f0000000 {
|
||||
|
@ -120,9 +127,20 @@
|
|||
};
|
||||
};
|
||||
|
||||
usb1: gadget@f803c000 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_usb1_vbus_sense>;
|
||||
atmel,vbus-gpio = <&pioB 16 GPIO_ACTIVE_HIGH>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
watchdog@fffffe40 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
rtc@fffffeb0 {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
|
||||
nand0: nand@40000000 {
|
||||
|
|
|
@ -13,6 +13,37 @@
|
|||
/ {
|
||||
ahb {
|
||||
apb {
|
||||
pinctrl@fffff400 {
|
||||
isi {
|
||||
pinctrl_isi_data_0_7: isi-0-data-0-7 {
|
||||
atmel,pins =
|
||||
<AT91_PIOC 0 AT91_PERIPH_B AT91_PINCTRL_NONE /* ISI_D0, conflicts with LCDDAT0 */
|
||||
AT91_PIOC 1 AT91_PERIPH_B AT91_PINCTRL_NONE /* ISI_D1, conflicts with LCDDAT1 */
|
||||
AT91_PIOC 2 AT91_PERIPH_B AT91_PINCTRL_NONE /* ISI_D2, conflicts with LCDDAT2 */
|
||||
AT91_PIOC 3 AT91_PERIPH_B AT91_PINCTRL_NONE /* ISI_D3, conflicts with LCDDAT3 */
|
||||
AT91_PIOC 4 AT91_PERIPH_B AT91_PINCTRL_NONE /* ISI_D4, conflicts with LCDDAT4 */
|
||||
AT91_PIOC 5 AT91_PERIPH_B AT91_PINCTRL_NONE /* ISI_D5, conflicts with LCDDAT5 */
|
||||
AT91_PIOC 6 AT91_PERIPH_B AT91_PINCTRL_NONE /* ISI_D6, conflicts with LCDDAT6 */
|
||||
AT91_PIOC 7 AT91_PERIPH_B AT91_PINCTRL_NONE /* ISI_D7, conflicts with LCDDAT7 */
|
||||
AT91_PIOC 12 AT91_PERIPH_B AT91_PINCTRL_NONE /* ISI_PCK, conflicts with LCDDAT12 */
|
||||
AT91_PIOC 14 AT91_PERIPH_B AT91_PINCTRL_NONE /* ISI_HSYNC, conflicts with LCDDAT14 */
|
||||
AT91_PIOC 13 AT91_PERIPH_B AT91_PINCTRL_NONE>; /* ISI_VSYNC, conflicts with LCDDAT13 */
|
||||
};
|
||||
|
||||
pinctrl_isi_data_8_9: isi-0-data-8-9 {
|
||||
atmel,pins =
|
||||
<AT91_PIOC 8 AT91_PERIPH_B AT91_PINCTRL_NONE /* ISI_D8, conflicts with LCDDAT8 */
|
||||
AT91_PIOC 9 AT91_PERIPH_B AT91_PINCTRL_NONE>; /* ISI_D9, conflicts with LCDDAT9 */
|
||||
};
|
||||
|
||||
pinctrl_isi_data_10_11: isi-0-data-10-11 {
|
||||
atmel,pins =
|
||||
<AT91_PIOC 10 AT91_PERIPH_B AT91_PINCTRL_NONE /* ISI_D10, conflicts with LCDDAT10 */
|
||||
AT91_PIOC 11 AT91_PERIPH_B AT91_PINCTRL_NONE>; /* ISI_D11, conflicts with LCDDAT11 */
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
pmc: pmc@fffffc00 {
|
||||
periphck {
|
||||
isi_clk: isi_clk {
|
||||
|
@ -21,6 +52,21 @@
|
|||
};
|
||||
};
|
||||
};
|
||||
|
||||
isi: isi@f8048000 {
|
||||
compatible = "atmel,at91sam9g45-isi";
|
||||
reg = <0xf8048000 0x4000>;
|
||||
interrupts = <25 IRQ_TYPE_LEVEL_HIGH 5>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_isi_data_0_7>;
|
||||
clocks = <&isi_clk>;
|
||||
clock-names = "isi_clk";
|
||||
status = "disabled";
|
||||
port {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
|
|
@ -42,6 +42,10 @@
|
|||
};
|
||||
};
|
||||
};
|
||||
|
||||
rtc@fffffeb0 {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
|
||||
nand0: nand@40000000 {
|
||||
|
|
|
@ -59,6 +59,16 @@
|
|||
status = "okay";
|
||||
};
|
||||
|
||||
isi: isi@f8048000 {
|
||||
status = "disabled";
|
||||
port {
|
||||
isi_0: endpoint@0 {
|
||||
remote-endpoint = <&ov2640_0>;
|
||||
bus-width = <8>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
i2c0: i2c@f8010000 {
|
||||
status = "okay";
|
||||
|
||||
|
@ -66,9 +76,47 @@
|
|||
compatible = "wm8731";
|
||||
reg = <0x1a>;
|
||||
};
|
||||
|
||||
ov2640: camera@0x30 {
|
||||
compatible = "ovti,ov2640";
|
||||
reg = <0x30>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_pck0_as_isi_mck &pinctrl_sensor_power &pinctrl_sensor_reset>;
|
||||
resetb-gpios = <&pioA 7 GPIO_ACTIVE_LOW>;
|
||||
pwdn-gpios = <&pioA 13 GPIO_ACTIVE_HIGH>;
|
||||
clocks = <&pck0>;
|
||||
clock-names = "xvclk";
|
||||
assigned-clocks = <&pck0>;
|
||||
assigned-clock-rates = <25000000>;
|
||||
status = "disabled";
|
||||
|
||||
port {
|
||||
ov2640_0: endpoint {
|
||||
remote-endpoint = <&isi_0>;
|
||||
bus-width = <8>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
pinctrl@fffff400 {
|
||||
camera_sensor {
|
||||
pinctrl_pck0_as_isi_mck: pck0_as_isi_mck-0 {
|
||||
atmel,pins =
|
||||
<AT91_PIOC 15 AT91_PERIPH_C AT91_PINCTRL_NONE>; /* ISI_MCK */
|
||||
};
|
||||
|
||||
pinctrl_sensor_power: sensor_power-0 {
|
||||
atmel,pins =
|
||||
<AT91_PIOA 13 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
|
||||
};
|
||||
|
||||
pinctrl_sensor_reset: sensor_reset-0 {
|
||||
atmel,pins =
|
||||
<AT91_PIOA 7 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
|
||||
};
|
||||
};
|
||||
|
||||
mmc0 {
|
||||
pinctrl_board_mmc0: mmc0-board {
|
||||
atmel,pins =
|
||||
|
|
|
@ -54,6 +54,42 @@
|
|||
|
||||
/include/ "bcm-cygnus-clock.dtsi"
|
||||
|
||||
pinctrl: pinctrl@0x0301d0c8 {
|
||||
compatible = "brcm,cygnus-pinmux";
|
||||
reg = <0x0301d0c8 0x30>,
|
||||
<0x0301d24c 0x2c>;
|
||||
};
|
||||
|
||||
gpio_crmu: gpio@03024800 {
|
||||
compatible = "brcm,cygnus-crmu-gpio";
|
||||
reg = <0x03024800 0x50>,
|
||||
<0x03024008 0x18>;
|
||||
#gpio-cells = <2>;
|
||||
gpio-controller;
|
||||
};
|
||||
|
||||
gpio_ccm: gpio@1800a000 {
|
||||
compatible = "brcm,cygnus-ccm-gpio";
|
||||
reg = <0x1800a000 0x50>,
|
||||
<0x0301d164 0x20>;
|
||||
#gpio-cells = <2>;
|
||||
gpio-controller;
|
||||
interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
|
||||
interrupt-controller;
|
||||
};
|
||||
|
||||
gpio_asiu: gpio@180a5000 {
|
||||
compatible = "brcm,cygnus-asiu-gpio";
|
||||
reg = <0x180a5000 0x668>;
|
||||
#gpio-cells = <2>;
|
||||
gpio-controller;
|
||||
|
||||
pinmux = <&pinctrl>;
|
||||
|
||||
interrupt-controller;
|
||||
interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>;
|
||||
};
|
||||
|
||||
amba {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
@ -90,6 +126,48 @@
|
|||
status = "disabled";
|
||||
};
|
||||
|
||||
pcie0: pcie@18012000 {
|
||||
compatible = "brcm,iproc-pcie";
|
||||
reg = <0x18012000 0x1000>;
|
||||
|
||||
#interrupt-cells = <1>;
|
||||
interrupt-map-mask = <0 0 0 0>;
|
||||
interrupt-map = <0 0 0 0 &gic GIC_SPI 100 IRQ_TYPE_NONE>;
|
||||
|
||||
linux,pci-domain = <0>;
|
||||
|
||||
bus-range = <0x00 0xff>;
|
||||
|
||||
#address-cells = <3>;
|
||||
#size-cells = <2>;
|
||||
device_type = "pci";
|
||||
ranges = <0x81000000 0 0 0x28000000 0 0x00010000
|
||||
0x82000000 0 0x20000000 0x20000000 0 0x04000000>;
|
||||
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
pcie1: pcie@18013000 {
|
||||
compatible = "brcm,iproc-pcie";
|
||||
reg = <0x18013000 0x1000>;
|
||||
|
||||
#interrupt-cells = <1>;
|
||||
interrupt-map-mask = <0 0 0 0>;
|
||||
interrupt-map = <0 0 0 0 &gic GIC_SPI 106 IRQ_TYPE_NONE>;
|
||||
|
||||
linux,pci-domain = <1>;
|
||||
|
||||
bus-range = <0x00 0xff>;
|
||||
|
||||
#address-cells = <3>;
|
||||
#size-cells = <2>;
|
||||
device_type = "pci";
|
||||
ranges = <0x81000000 0 0 0x48000000 0 0x00010000
|
||||
0x82000000 0 0x40000000 0x40000000 0 0x04000000>;
|
||||
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
uart0: serial@18020000 {
|
||||
compatible = "snps,dw-apb-uart";
|
||||
reg = <0x18020000 0x100>;
|
||||
|
|
|
@ -45,13 +45,13 @@
|
|||
power0 {
|
||||
label = "bcm53xx:green:power";
|
||||
gpios = <&chipcommon 2 GPIO_ACTIVE_LOW>;
|
||||
linux,default-trigger = "default-off";
|
||||
linux,default-trigger = "default-on";
|
||||
};
|
||||
|
||||
power1 {
|
||||
label = "bcm53xx:amber:power";
|
||||
gpios = <&chipcommon 3 GPIO_ACTIVE_LOW>;
|
||||
linux,default-trigger = "default-on";
|
||||
linux,default-trigger = "default-off";
|
||||
};
|
||||
|
||||
usb {
|
||||
|
|
77
arch/arm/boot/dts/bcm4709-netgear-r8000.dts
Normal file
77
arch/arm/boot/dts/bcm4709-netgear-r8000.dts
Normal file
|
@ -0,0 +1,77 @@
|
|||
/*
|
||||
* Broadcom BCM470X / BCM5301X ARM platform code.
|
||||
* DTS for Netgear R8000
|
||||
*
|
||||
* Copyright (C) 2015 Rafał Miłecki <zajec5@gmail.com>
|
||||
*
|
||||
* Licensed under the GNU/GPL. See COPYING for details.
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
|
||||
#include "bcm4708.dtsi"
|
||||
|
||||
/ {
|
||||
compatible = "netgear,r8000", "brcm,bcm4709", "brcm,bcm4708";
|
||||
model = "Netgear R8000 (BCM4709)";
|
||||
|
||||
chosen {
|
||||
bootargs = "console=ttyS0,115200";
|
||||
};
|
||||
|
||||
memory {
|
||||
reg = <0x00000000 0x08000000>;
|
||||
};
|
||||
|
||||
leds {
|
||||
compatible = "gpio-leds";
|
||||
|
||||
power0 {
|
||||
label = "bcm53xx:white:power";
|
||||
gpios = <&chipcommon 2 GPIO_ACTIVE_LOW>;
|
||||
linux,default-trigger = "default-on";
|
||||
};
|
||||
|
||||
power1 {
|
||||
label = "bcm53xx:amber:power";
|
||||
gpios = <&chipcommon 3 GPIO_ACTIVE_LOW>;
|
||||
linux,default-trigger = "default-off";
|
||||
};
|
||||
|
||||
5ghz-1 {
|
||||
label = "bcm53xx:white:5ghz-1";
|
||||
gpios = <&chipcommon 12 GPIO_ACTIVE_LOW>;
|
||||
linux,default-trigger = "default-off";
|
||||
};
|
||||
|
||||
2ghz {
|
||||
label = "bcm53xx:white:2ghz";
|
||||
gpios = <&chipcommon 13 GPIO_ACTIVE_LOW>;
|
||||
linux,default-trigger = "default-off";
|
||||
};
|
||||
};
|
||||
|
||||
gpio-keys {
|
||||
compatible = "gpio-keys";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
rfkill {
|
||||
label = "WiFi";
|
||||
linux,code = <KEY_RFKILL>;
|
||||
gpios = <&chipcommon 4 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
wps {
|
||||
label = "WPS";
|
||||
linux,code = <KEY_WPS_BUTTON>;
|
||||
gpios = <&chipcommon 5 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
restart {
|
||||
label = "Reset";
|
||||
linux,code = <KEY_RESTART>;
|
||||
gpios = <&chipcommon 6 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
};
|
||||
};
|
|
@ -76,7 +76,7 @@
|
|||
reg-shift = <2>;
|
||||
reg-io-width = <4>;
|
||||
interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clock-frequency = <0x4d3f640>;
|
||||
clock-frequency = <81000000>;
|
||||
};
|
||||
|
||||
sun_top_ctrl: syscon@404000 {
|
||||
|
@ -96,6 +96,18 @@
|
|||
"syscon";
|
||||
reg = <0x452000 0x100>;
|
||||
};
|
||||
|
||||
irq0_intc: interrupt-controller@40a780 {
|
||||
compatible = "brcm,bcm7120-l2-intc";
|
||||
interrupt-parent = <&gic>;
|
||||
#interrupt-cells = <1>;
|
||||
reg = <0x40a780 0x8>;
|
||||
interrupt-controller;
|
||||
interrupts = <GIC_SPI 0x45 0x0>,
|
||||
<GIC_SPI 0x43 0x0>;
|
||||
brcm,int-map-mask = <0x25c>, <0x7000000>;
|
||||
brcm,int-fwd-mask = <0x70000>;
|
||||
};
|
||||
};
|
||||
|
||||
smpboot {
|
||||
|
|
|
@ -33,6 +33,7 @@
|
|||
/dts-v1/;
|
||||
|
||||
#include "bcm-cygnus.dtsi"
|
||||
#include "dt-bindings/input/input.h"
|
||||
|
||||
/ {
|
||||
model = "Cygnus Enterprise Phone (BCM911360_ENTPHN)";
|
||||
|
@ -50,4 +51,16 @@
|
|||
uart3: serial@18023000 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
gpio_keys {
|
||||
compatible = "gpio-keys";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
hook {
|
||||
label = "HOOK";
|
||||
linux,code = <KEY_O>;
|
||||
gpios = <&gpio_asiu 48 0>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
|
|
@ -47,6 +47,14 @@
|
|||
bootargs = "console=ttyS0,115200";
|
||||
};
|
||||
|
||||
pcie0: pcie@18012000 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
pcie1: pcie@18013000 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
uart3: serial@18023000 {
|
||||
status = "okay";
|
||||
};
|
||||
|
|
53
arch/arm/boot/dts/bcm958305k.dts
Normal file
53
arch/arm/boot/dts/bcm958305k.dts
Normal file
|
@ -0,0 +1,53 @@
|
|||
/*
|
||||
* BSD LICENSE
|
||||
*
|
||||
* Copyright(c) 2015 Broadcom Corporation. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
* * Neither the name of Broadcom Corporation nor the names of its
|
||||
* contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
|
||||
#include "bcm-cygnus.dtsi"
|
||||
|
||||
/ {
|
||||
model = "Cygnus Wireless Audio (BCM958305K)";
|
||||
compatible = "brcm,bcm58305", "brcm,cygnus";
|
||||
|
||||
aliases {
|
||||
serial0 = &uart3;
|
||||
};
|
||||
|
||||
chosen {
|
||||
stdout-path = &uart3;
|
||||
bootargs = "console=ttyS0,115200";
|
||||
};
|
||||
|
||||
uart3: serial@18023000 {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
|
@ -29,10 +29,10 @@
|
|||
&dm816x_pinmux {
|
||||
mcspi1_pins: pinmux_mcspi1_pins {
|
||||
pinctrl-single,pins = <
|
||||
DM816X_IOPAD(0x0a94, PIN_INPUT | MUX_MODE0) /* SPI_SCLK */
|
||||
DM816X_IOPAD(0x0a98, PIN_OUTPUT | MUX_MODE0) /* SPI_SCS0 */
|
||||
DM816X_IOPAD(0x0aa8, PIN_INPUT | MUX_MODE0) /* SPI_D0 */
|
||||
DM816X_IOPAD(0x0aac, PIN_INPUT | MUX_MODE0) /* SPI_D1 */
|
||||
DM816X_IOPAD(0x0a94, MUX_MODE0) /* SPI_SCLK */
|
||||
DM816X_IOPAD(0x0a98, MUX_MODE0) /* SPI_SCS0 */
|
||||
DM816X_IOPAD(0x0aa8, MUX_MODE0) /* SPI_D0 */
|
||||
DM816X_IOPAD(0x0aac, MUX_MODE0) /* SPI_D1 */
|
||||
>;
|
||||
};
|
||||
|
||||
|
@ -52,13 +52,13 @@
|
|||
|
||||
usb0_pins: pinmux_usb0_pins {
|
||||
pinctrl-single,pins = <
|
||||
DM816X_IOPAD(0x0d00, MUX_MODE0) /* USB0_DRVVBUS */
|
||||
DM816X_IOPAD(0x0d04, MUX_MODE0) /* USB0_DRVVBUS */
|
||||
>;
|
||||
};
|
||||
|
||||
usb1_pins: pinmux_usb0_pins {
|
||||
usb1_pins: pinmux_usb1_pins {
|
||||
pinctrl-single,pins = <
|
||||
DM816X_IOPAD(0x0d04, MUX_MODE0) /* USB1_DRVVBUS */
|
||||
DM816X_IOPAD(0x0d08, MUX_MODE0) /* USB1_DRVVBUS */
|
||||
>;
|
||||
};
|
||||
};
|
||||
|
|
|
@ -396,6 +396,29 @@
|
|||
mentor,num-eps = <16>;
|
||||
mentor,ram-bits = <12>;
|
||||
mentor,power = <500>;
|
||||
|
||||
dmas = <&cppi41dma 0 0 &cppi41dma 1 0
|
||||
&cppi41dma 2 0 &cppi41dma 3 0
|
||||
&cppi41dma 4 0 &cppi41dma 5 0
|
||||
&cppi41dma 6 0 &cppi41dma 7 0
|
||||
&cppi41dma 8 0 &cppi41dma 9 0
|
||||
&cppi41dma 10 0 &cppi41dma 11 0
|
||||
&cppi41dma 12 0 &cppi41dma 13 0
|
||||
&cppi41dma 14 0 &cppi41dma 0 1
|
||||
&cppi41dma 1 1 &cppi41dma 2 1
|
||||
&cppi41dma 3 1 &cppi41dma 4 1
|
||||
&cppi41dma 5 1 &cppi41dma 6 1
|
||||
&cppi41dma 7 1 &cppi41dma 8 1
|
||||
&cppi41dma 9 1 &cppi41dma 10 1
|
||||
&cppi41dma 11 1 &cppi41dma 12 1
|
||||
&cppi41dma 13 1 &cppi41dma 14 1>;
|
||||
dma-names =
|
||||
"rx1", "rx2", "rx3", "rx4", "rx5", "rx6", "rx7",
|
||||
"rx8", "rx9", "rx10", "rx11", "rx12", "rx13",
|
||||
"rx14", "rx15",
|
||||
"tx1", "tx2", "tx3", "tx4", "tx5", "tx6", "tx7",
|
||||
"tx8", "tx9", "tx10", "tx11", "tx12", "tx13",
|
||||
"tx14", "tx15";
|
||||
};
|
||||
|
||||
usb1: usb@47401800 {
|
||||
|
@ -413,6 +436,43 @@
|
|||
mentor,num-eps = <16>;
|
||||
mentor,ram-bits = <12>;
|
||||
mentor,power = <500>;
|
||||
|
||||
dmas = <&cppi41dma 15 0 &cppi41dma 16 0
|
||||
&cppi41dma 17 0 &cppi41dma 18 0
|
||||
&cppi41dma 19 0 &cppi41dma 20 0
|
||||
&cppi41dma 21 0 &cppi41dma 22 0
|
||||
&cppi41dma 23 0 &cppi41dma 24 0
|
||||
&cppi41dma 25 0 &cppi41dma 26 0
|
||||
&cppi41dma 27 0 &cppi41dma 28 0
|
||||
&cppi41dma 29 0 &cppi41dma 15 1
|
||||
&cppi41dma 16 1 &cppi41dma 17 1
|
||||
&cppi41dma 18 1 &cppi41dma 19 1
|
||||
&cppi41dma 20 1 &cppi41dma 21 1
|
||||
&cppi41dma 22 1 &cppi41dma 23 1
|
||||
&cppi41dma 24 1 &cppi41dma 25 1
|
||||
&cppi41dma 26 1 &cppi41dma 27 1
|
||||
&cppi41dma 28 1 &cppi41dma 29 1>;
|
||||
dma-names =
|
||||
"rx1", "rx2", "rx3", "rx4", "rx5", "rx6", "rx7",
|
||||
"rx8", "rx9", "rx10", "rx11", "rx12", "rx13",
|
||||
"rx14", "rx15",
|
||||
"tx1", "tx2", "tx3", "tx4", "tx5", "tx6", "tx7",
|
||||
"tx8", "tx9", "tx10", "tx11", "tx12", "tx13",
|
||||
"tx14", "tx15";
|
||||
};
|
||||
|
||||
cppi41dma: dma-controller@47402000 {
|
||||
compatible = "ti,am3359-cppi41";
|
||||
reg = <0x47400000 0x1000
|
||||
0x47402000 0x1000
|
||||
0x47403000 0x1000
|
||||
0x47404000 0x4000>;
|
||||
reg-names = "glue", "controller", "scheduler", "queuemgr";
|
||||
interrupts = <17>;
|
||||
interrupt-names = "glue";
|
||||
#dma-cells = <2>;
|
||||
#dma-channels = <30>;
|
||||
#dma-requests = <256>;
|
||||
};
|
||||
};
|
||||
|
||||
|
|
|
@ -1,5 +1,8 @@
|
|||
/include/ "skeleton.dtsi"
|
||||
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
|
||||
#define MBUS_ID(target,attributes) (((target) << 24) | ((attributes) << 16))
|
||||
|
||||
/ {
|
||||
|
@ -61,7 +64,7 @@
|
|||
0x82000000 0x2 0x0 MBUS_ID(0x08, 0xe8) 0 1 0 /* Port 1.0 Mem */
|
||||
0x81000000 0x2 0x0 MBUS_ID(0x08, 0xe0) 0 1 0>; /* Port 1.0 I/O */
|
||||
|
||||
pcie-port@0 {
|
||||
pcie0: pcie-port@0 {
|
||||
device_type = "pci";
|
||||
status = "disabled";
|
||||
assigned-addresses = <0x82000800 0 0x40000 0 0x2000>;
|
||||
|
@ -79,7 +82,7 @@
|
|||
interrupt-map = <0 0 0 0 &intc 16>;
|
||||
};
|
||||
|
||||
pcie-port@1 {
|
||||
pcie1: pcie-port@1 {
|
||||
device_type = "pci";
|
||||
status = "disabled";
|
||||
assigned-addresses = <0x82002800 0 0x80000 0 0x2000>;
|
||||
|
@ -154,7 +157,7 @@
|
|||
|
||||
uart2: serial@12200 {
|
||||
compatible = "ns16550a";
|
||||
reg = <0x12000 0x100>;
|
||||
reg = <0x12200 0x100>;
|
||||
reg-shift = <2>;
|
||||
interrupts = <9>;
|
||||
clocks = <&core_clk 0>;
|
||||
|
@ -163,7 +166,7 @@
|
|||
|
||||
uart3: serial@12300 {
|
||||
compatible = "ns16550a";
|
||||
reg = <0x12100 0x100>;
|
||||
reg = <0x12300 0x100>;
|
||||
reg-shift = <2>;
|
||||
interrupts = <10>;
|
||||
clocks = <&core_clk 0>;
|
||||
|
@ -448,6 +451,11 @@
|
|||
marvell,function = "gpio";
|
||||
};
|
||||
|
||||
pmx_pcie1_clkreq: pmx-pcie1-clkreq {
|
||||
marvell,pins = "mpp9";
|
||||
marvell,function = "pex1";
|
||||
};
|
||||
|
||||
pmx_gpio_10: pmx-gpio-10 {
|
||||
marvell,pins = "mpp10";
|
||||
marvell,function = "gpio";
|
||||
|
@ -458,6 +466,11 @@
|
|||
marvell,function = "gpio";
|
||||
};
|
||||
|
||||
pmx_pcie0_clkreq: pmx-pcie0-clkreq {
|
||||
marvell,pins = "mpp11";
|
||||
marvell,function = "pex0";
|
||||
};
|
||||
|
||||
pmx_gpio_12: pmx-gpio-12 {
|
||||
marvell,pins = "mpp12";
|
||||
marvell,function = "gpio";
|
||||
|
@ -563,6 +576,18 @@
|
|||
marvell,function = "gpio";
|
||||
};
|
||||
|
||||
pmx_spi1_4_7: pmx-spi1-4-7 {
|
||||
marvell,pins = "mpp4", "mpp5",
|
||||
"mpp6", "mpp7";
|
||||
marvell,function = "spi1";
|
||||
};
|
||||
|
||||
pmx_spi1_20_23: pmx-spi1-20-23 {
|
||||
marvell,pins = "mpp20", "mpp21",
|
||||
"mpp22", "mpp23";
|
||||
marvell,function = "spi1";
|
||||
};
|
||||
|
||||
pmx_uart1: pmx-uart1 {
|
||||
marvell,pins = "mpp_uart1";
|
||||
marvell,function = "uart1";
|
||||
|
@ -582,6 +607,36 @@
|
|||
marvell,pins = "mpp_nand";
|
||||
marvell,function = "gpo";
|
||||
};
|
||||
|
||||
pmx_i2c1: pmx-i2c1 {
|
||||
marvell,pins = "mpp17", "mpp19";
|
||||
marvell,function = "twsi";
|
||||
};
|
||||
|
||||
pmx_i2c2: pmx-i2c2 {
|
||||
marvell,pins = "mpp_audio1";
|
||||
marvell,function = "twsi";
|
||||
};
|
||||
|
||||
pmx_ssp_i2c2: pmx-ssp-i2c2 {
|
||||
marvell,pins = "mpp_audio1";
|
||||
marvell,function = "ssp/twsi";
|
||||
};
|
||||
|
||||
pmx_i2cmux_0: pmx-i2cmux-0 {
|
||||
marvell,pins = "twsi";
|
||||
marvell,function = "twsi-opt1";
|
||||
};
|
||||
|
||||
pmx_i2cmux_1: pmx-i2cmux-1 {
|
||||
marvell,pins = "twsi";
|
||||
marvell,function = "twsi-opt2";
|
||||
};
|
||||
|
||||
pmx_i2cmux_2: pmx-i2cmux-2 {
|
||||
marvell,pins = "twsi";
|
||||
marvell,function = "twsi-opt3";
|
||||
};
|
||||
};
|
||||
|
||||
core_clk: core-clocks@d0214 {
|
||||
|
|
|
@ -541,6 +541,14 @@
|
|||
};
|
||||
};
|
||||
|
||||
&omap_dwc3_1 {
|
||||
extcon = <&extcon_usb1>;
|
||||
};
|
||||
|
||||
&omap_dwc3_2 {
|
||||
extcon = <&extcon_usb2>;
|
||||
};
|
||||
|
||||
&usb1 {
|
||||
dr_mode = "peripheral";
|
||||
pinctrl-names = "default";
|
||||
|
|
|
@ -678,7 +678,6 @@
|
|||
reg = <0x48820000 0x80>;
|
||||
interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
|
||||
ti,hwmods = "timer5";
|
||||
ti,timer-dsp;
|
||||
};
|
||||
|
||||
timer6: timer@48822000 {
|
||||
|
@ -686,8 +685,6 @@
|
|||
reg = <0x48822000 0x80>;
|
||||
interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
|
||||
ti,hwmods = "timer6";
|
||||
ti,timer-dsp;
|
||||
ti,timer-pwm;
|
||||
};
|
||||
|
||||
timer7: timer@48824000 {
|
||||
|
@ -695,7 +692,6 @@
|
|||
reg = <0x48824000 0x80>;
|
||||
interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
|
||||
ti,hwmods = "timer7";
|
||||
ti,timer-dsp;
|
||||
};
|
||||
|
||||
timer8: timer@48826000 {
|
||||
|
@ -703,8 +699,6 @@
|
|||
reg = <0x48826000 0x80>;
|
||||
interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>;
|
||||
ti,hwmods = "timer8";
|
||||
ti,timer-dsp;
|
||||
ti,timer-pwm;
|
||||
};
|
||||
|
||||
timer9: timer@4803e000 {
|
||||
|
@ -726,7 +720,6 @@
|
|||
reg = <0x48088000 0x80>;
|
||||
interrupts = <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>;
|
||||
ti,hwmods = "timer11";
|
||||
ti,timer-pwm;
|
||||
};
|
||||
|
||||
timer13: timer@48828000 {
|
||||
|
|
|
@ -377,6 +377,14 @@
|
|||
phy-supply = <&ldo4_reg>;
|
||||
};
|
||||
|
||||
&omap_dwc3_1 {
|
||||
extcon = <&extcon_usb1>;
|
||||
};
|
||||
|
||||
&omap_dwc3_2 {
|
||||
extcon = <&extcon_usb2>;
|
||||
};
|
||||
|
||||
&usb1 {
|
||||
dr_mode = "peripheral";
|
||||
pinctrl-names = "default";
|
||||
|
|
|
@ -1493,6 +1493,14 @@
|
|||
ti,dividers = <1>, <8>;
|
||||
};
|
||||
|
||||
clkout2_clk: clkout2_clk {
|
||||
#clock-cells = <0>;
|
||||
compatible = "ti,gate-clock";
|
||||
clocks = <&clkoutmux2_clk_mux>;
|
||||
ti,bit-shift = <8>;
|
||||
reg = <0x06b0>;
|
||||
};
|
||||
|
||||
l3init_960m_gfclk: l3init_960m_gfclk {
|
||||
#clock-cells = <0>;
|
||||
compatible = "ti,gate-clock";
|
||||
|
|
|
@ -94,3 +94,16 @@
|
|||
vdd33a-supply = <®_3p3v>;
|
||||
};
|
||||
};
|
||||
|
||||
&pfc {
|
||||
uart1_pins: uart@e1030000 {
|
||||
renesas,groups = "uart1_ctrl", "uart1_data";
|
||||
renesas,function = "uart1";
|
||||
};
|
||||
};
|
||||
|
||||
&uart1 {
|
||||
pinctrl-0 = <&uart1_pins>;
|
||||
pinctrl-names = "default";
|
||||
status = "okay";
|
||||
};
|
||||
|
|
|
@ -169,12 +169,18 @@
|
|||
clock-names = "sclk";
|
||||
};
|
||||
|
||||
pfc: pfc@e0140200 {
|
||||
compatible = "renesas,pfc-emev2";
|
||||
reg = <0xe0140200 0x100>;
|
||||
};
|
||||
|
||||
gpio0: gpio@e0050000 {
|
||||
compatible = "renesas,em-gio";
|
||||
reg = <0xe0050000 0x2c>, <0xe0050040 0x20>;
|
||||
interrupts = <0 67 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<0 68 IRQ_TYPE_LEVEL_HIGH>;
|
||||
gpio-controller;
|
||||
gpio-ranges = <&pfc 0 0 32>;
|
||||
#gpio-cells = <2>;
|
||||
ngpios = <32>;
|
||||
interrupt-controller;
|
||||
|
@ -186,6 +192,7 @@
|
|||
interrupts = <0 69 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<0 70 IRQ_TYPE_LEVEL_HIGH>;
|
||||
gpio-controller;
|
||||
gpio-ranges = <&pfc 0 32 32>;
|
||||
#gpio-cells = <2>;
|
||||
ngpios = <32>;
|
||||
interrupt-controller;
|
||||
|
@ -197,6 +204,7 @@
|
|||
interrupts = <0 71 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<0 72 IRQ_TYPE_LEVEL_HIGH>;
|
||||
gpio-controller;
|
||||
gpio-ranges = <&pfc 0 64 32>;
|
||||
#gpio-cells = <2>;
|
||||
ngpios = <32>;
|
||||
interrupt-controller;
|
||||
|
@ -208,6 +216,7 @@
|
|||
interrupts = <0 73 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<0 74 IRQ_TYPE_LEVEL_HIGH>;
|
||||
gpio-controller;
|
||||
gpio-ranges = <&pfc 0 96 32>;
|
||||
#gpio-cells = <2>;
|
||||
ngpios = <32>;
|
||||
interrupt-controller;
|
||||
|
@ -219,6 +228,7 @@
|
|||
interrupts = <0 75 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<0 76 IRQ_TYPE_LEVEL_HIGH>;
|
||||
gpio-controller;
|
||||
gpio-ranges = <&pfc 0 128 31>;
|
||||
#gpio-cells = <2>;
|
||||
ngpios = <31>;
|
||||
interrupt-controller;
|
||||
|
|
|
@ -176,6 +176,10 @@
|
|||
compatible = "samsung,exynos3250-cmu";
|
||||
reg = <0x10030000 0x20000>;
|
||||
#clock-cells = <1>;
|
||||
assigned-clocks = <&cmu CLK_MOUT_ACLK_400_MCUISP_SUB>,
|
||||
<&cmu CLK_MOUT_ACLK_266_SUB>;
|
||||
assigned-clock-parents = <&cmu CLK_FIN_PLL>,
|
||||
<&cmu CLK_FIN_PLL>;
|
||||
};
|
||||
|
||||
cmu_dmc: clock-controller@105C0000 {
|
||||
|
|
|
@ -75,10 +75,18 @@
|
|||
};
|
||||
};
|
||||
|
||||
emmc_pwrseq: pwrseq {
|
||||
pinctrl-0 = <&sd1_cd>;
|
||||
pinctrl-names = "default";
|
||||
compatible = "mmc-pwrseq-emmc";
|
||||
reset-gpios = <&gpk1 2 1>;
|
||||
};
|
||||
|
||||
mmc@12550000 {
|
||||
pinctrl-0 = <&sd4_clk &sd4_cmd &sd4_bus4 &sd4_bus8>;
|
||||
pinctrl-names = "default";
|
||||
vmmc-supply = <&ldo20_reg &buck8_reg>;
|
||||
mmc-pwrseq = <&emmc_pwrseq>;
|
||||
status = "okay";
|
||||
|
||||
num-slots = <1>;
|
||||
|
@ -472,6 +480,12 @@
|
|||
};
|
||||
};
|
||||
|
||||
/* RSTN signal for eMMC */
|
||||
&sd1_cd {
|
||||
samsung,pin-pud = <0>;
|
||||
samsung,pin-drv = <0>;
|
||||
};
|
||||
|
||||
&pinctrl_1 {
|
||||
gpio_power_key: power_key {
|
||||
samsung,pins = "gpx1-3";
|
||||
|
|
|
@ -29,6 +29,7 @@
|
|||
|
||||
chosen {
|
||||
bootargs = "console=tty1";
|
||||
stdout-path = "serial3:115200n8";
|
||||
};
|
||||
|
||||
gpio-keys {
|
||||
|
@ -183,7 +184,20 @@
|
|||
powerdown-gpios = <&gpy2 5 GPIO_ACTIVE_HIGH>;
|
||||
reset-gpios = <&gpx1 5 GPIO_ACTIVE_HIGH>;
|
||||
edid-emulation = <5>;
|
||||
panel = <&panel>;
|
||||
|
||||
ports {
|
||||
port@0 {
|
||||
bridge_out: endpoint {
|
||||
remote-endpoint = <&panel_in>;
|
||||
};
|
||||
};
|
||||
|
||||
port@1 {
|
||||
bridge_in: endpoint {
|
||||
remote-endpoint = <&dp_out>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -228,6 +242,20 @@
|
|||
compatible = "auo,b116xw03";
|
||||
power-supply = <&fet6>;
|
||||
backlight = <&backlight>;
|
||||
|
||||
port {
|
||||
panel_in: endpoint {
|
||||
remote-endpoint = <&bridge_out>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
mmc3_pwrseq: mmc3_pwrseq {
|
||||
compatible = "mmc-pwrseq-simple";
|
||||
reset-gpios = <&gpx0 2 GPIO_ACTIVE_LOW>, /* WIFI_RSTn */
|
||||
<&gpx0 1 GPIO_ACTIVE_LOW>; /* WIFI_EN */
|
||||
clocks = <&max77686 MAX77686_CLK_PMIC>;
|
||||
clock-names = "ext_clock";
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -242,7 +270,14 @@
|
|||
samsung,link-rate = <0x0a>;
|
||||
samsung,lane-count = <2>;
|
||||
samsung,hpd-gpio = <&gpx0 7 GPIO_ACTIVE_HIGH>;
|
||||
bridge = <&ptn3460>;
|
||||
|
||||
ports {
|
||||
port@0 {
|
||||
dp_out: endpoint {
|
||||
remote-endpoint = <&bridge_in>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&ehci {
|
||||
|
@ -531,17 +566,33 @@
|
|||
status = "okay";
|
||||
num-slots = <1>;
|
||||
broken-cd;
|
||||
cap-sdio-irq;
|
||||
card-detect-delay = <200>;
|
||||
samsung,dw-mshc-ciu-div = <3>;
|
||||
samsung,dw-mshc-sdr-timing = <2 3>;
|
||||
samsung,dw-mshc-ddr-timing = <1 2>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&sd3_clk &sd3_cmd &sd3_bus4>;
|
||||
pinctrl-0 = <&sd3_clk &sd3_cmd &sd3_bus4 &wifi_en &wifi_rst>;
|
||||
bus-width = <4>;
|
||||
cap-sd-highspeed;
|
||||
mmc-pwrseq = <&mmc3_pwrseq>;
|
||||
};
|
||||
|
||||
&pinctrl_0 {
|
||||
wifi_en: wifi-en {
|
||||
samsung,pins = "gpx0-1";
|
||||
samsung,pin-function = <1>;
|
||||
samsung,pin-pud = <0>;
|
||||
samsung,pin-drv = <0>;
|
||||
};
|
||||
|
||||
wifi_rst: wifi-rst {
|
||||
samsung,pins = "gpx0-2";
|
||||
samsung,pin-function = <1>;
|
||||
samsung,pin-pud = <0>;
|
||||
samsung,pin-drv = <0>;
|
||||
};
|
||||
|
||||
power_key_irq: power-key-irq {
|
||||
samsung,pins = "gpx1-3";
|
||||
samsung,pin-function = <0xf>;
|
||||
|
|
|
@ -25,6 +25,7 @@
|
|||
|
||||
chosen {
|
||||
bootargs = "console=tty1";
|
||||
stdout-path = "serial3:115200n8";
|
||||
};
|
||||
|
||||
gpio-keys {
|
||||
|
|
|
@ -143,7 +143,7 @@
|
|||
compatible = "samsung,exynos4210-mct";
|
||||
reg = <0x101C0000 0x800>;
|
||||
interrupt-controller;
|
||||
#interrups-cells = <2>;
|
||||
#interrupt-cells = <2>;
|
||||
interrupt-parent = <&mct_map>;
|
||||
interrupts = <0 0>, <1 0>, <2 0>, <3 0>,
|
||||
<4 0>, <5 0>;
|
||||
|
|
|
@ -55,7 +55,7 @@
|
|||
samsung,dw-mshc-sdr-timing = <0 4>;
|
||||
samsung,dw-mshc-ddr-timing = <0 2>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_bus4 &sd0_bus8>;
|
||||
pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_bus1 &sd0_bus4 &sd0_bus8>;
|
||||
vmmc-supply = <&ldo10_reg>;
|
||||
bus-width = <8>;
|
||||
cap-mmc-highspeed;
|
||||
|
@ -68,7 +68,7 @@
|
|||
samsung,dw-mshc-sdr-timing = <2 3>;
|
||||
samsung,dw-mshc-ddr-timing = <1 2>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_cd &sd2_bus4>;
|
||||
pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_cd &sd2_bus1 &sd2_bus4>;
|
||||
vmmc-supply = <&ldo19_reg>;
|
||||
vqmmc-supply = <&ldo13_reg>;
|
||||
bus-width = <4>;
|
||||
|
|
|
@ -43,6 +43,10 @@
|
|||
pinctrl-names = "default";
|
||||
};
|
||||
|
||||
chosen {
|
||||
stdout-path = "serial3:115200n8";
|
||||
};
|
||||
|
||||
fixed-rate-clocks {
|
||||
oscclk {
|
||||
compatible = "samsung,exynos5420-oscclk";
|
||||
|
@ -118,6 +122,19 @@
|
|||
compatible = "auo,b116xw03";
|
||||
power-supply = <&tps65090_fet6>;
|
||||
backlight = <&backlight>;
|
||||
|
||||
port {
|
||||
panel_in: endpoint {
|
||||
remote-endpoint = <&bridge_out>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
mmc1_pwrseq: mmc1_pwrseq {
|
||||
compatible = "mmc-pwrseq-simple";
|
||||
reset-gpios = <&gpx0 0 GPIO_ACTIVE_LOW>; /* WIFI_EN */
|
||||
clocks = <&max77802 MAX77802_CLK_32K_CP>;
|
||||
clock-names = "ext_clock";
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -137,7 +154,14 @@
|
|||
samsung,link-rate = <0x06>;
|
||||
samsung,lane-count = <2>;
|
||||
samsung,hpd-gpio = <&gpx2 6 0>;
|
||||
bridge = <&ps8625>;
|
||||
|
||||
ports {
|
||||
port@0 {
|
||||
dp_out: endpoint {
|
||||
remote-endpoint = <&bridge_in>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&fimd {
|
||||
|
@ -581,6 +605,8 @@
|
|||
interrupt-parent = <&gpx0>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&max98090_irq>;
|
||||
clocks = <&pmu_system_controller 0>;
|
||||
clock-names = "mclk";
|
||||
};
|
||||
|
||||
light-sensor@44 {
|
||||
|
@ -595,8 +621,22 @@
|
|||
sleep-gpios = <&gpx3 5 GPIO_ACTIVE_HIGH>;
|
||||
reset-gpios = <&gpy7 7 GPIO_ACTIVE_HIGH>;
|
||||
lane-count = <2>;
|
||||
panel = <&panel>;
|
||||
use-external-pwm;
|
||||
|
||||
ports {
|
||||
port@0 {
|
||||
bridge_out: endpoint {
|
||||
remote-endpoint = <&panel_in>;
|
||||
};
|
||||
};
|
||||
|
||||
port@1 {
|
||||
bridge_in: endpoint {
|
||||
remote-endpoint = <&dp_out>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -659,11 +699,32 @@
|
|||
samsung,dw-mshc-ciu-div = <3>;
|
||||
samsung,dw-mshc-sdr-timing = <0 4>;
|
||||
samsung,dw-mshc-ddr-timing = <0 2>;
|
||||
samsung,dw-mshc-hs400-timing = <0 2>;
|
||||
samsung,read-strobe-delay = <90>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_bus4 &sd0_bus8>;
|
||||
pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_bus1 &sd0_bus4 &sd0_bus8 &sd0_rclk>;
|
||||
bus-width = <8>;
|
||||
};
|
||||
|
||||
&mmc_1 {
|
||||
status = "okay";
|
||||
num-slots = <1>;
|
||||
broken-cd;
|
||||
cap-sdio-irq;
|
||||
card-detect-delay = <200>;
|
||||
clock-frequency = <400000000>;
|
||||
samsung,dw-mshc-ciu-div = <1>;
|
||||
samsung,dw-mshc-sdr-timing = <0 1>;
|
||||
samsung,dw-mshc-ddr-timing = <0 2>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&sd1_clk>, <&sd1_cmd>, <&sd1_int>, <&sd1_bus1>,
|
||||
<&sd1_bus4>, <&sd1_bus8>, <&wifi_en>;
|
||||
bus-width = <4>;
|
||||
cap-sd-highspeed;
|
||||
mmc-pwrseq = <&mmc1_pwrseq>;
|
||||
vqmmc-supply = <&buck10_reg>;
|
||||
};
|
||||
|
||||
&mmc_2 {
|
||||
status = "okay";
|
||||
num-slots = <1>;
|
||||
|
@ -674,7 +735,7 @@
|
|||
samsung,dw-mshc-sdr-timing = <2 3>;
|
||||
samsung,dw-mshc-ddr-timing = <1 2>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_cd &sd2_bus4>;
|
||||
pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_cd &sd2_bus1 &sd2_bus4>;
|
||||
bus-width = <4>;
|
||||
};
|
||||
|
||||
|
@ -683,6 +744,13 @@
|
|||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&mask_tpm_reset>;
|
||||
|
||||
wifi_en: wifi-en {
|
||||
samsung,pins = "gpx0-0";
|
||||
samsung,pin-function = <1>;
|
||||
samsung,pin-pud = <0>;
|
||||
samsung,pin-drv = <0>;
|
||||
};
|
||||
|
||||
max98090_irq: max98090-irq {
|
||||
samsung,pins = "gpx0-2";
|
||||
samsung,pin-function = <0>;
|
||||
|
@ -770,6 +838,29 @@
|
|||
};
|
||||
};
|
||||
|
||||
&pinctrl_1 {
|
||||
/* Adjust WiFi drive strengths lower for EMI */
|
||||
sd1_clk: sd1-clk {
|
||||
samsung,pin-drv = <2>;
|
||||
};
|
||||
|
||||
sd1_cmd: sd1-cmd {
|
||||
samsung,pin-drv = <2>;
|
||||
};
|
||||
|
||||
sd1_bus1: sd1-bus-width1 {
|
||||
samsung,pin-drv = <2>;
|
||||
};
|
||||
|
||||
sd1_bus4: sd1-bus-width4 {
|
||||
samsung,pin-drv = <2>;
|
||||
};
|
||||
|
||||
sd1_bus8: sd1-bus-width8 {
|
||||
samsung,pin-drv = <2>;
|
||||
};
|
||||
};
|
||||
|
||||
&pinctrl_2 {
|
||||
pmic_dvs_2: pmic-dvs-2 {
|
||||
samsung,pins = "gpj4-2";
|
||||
|
|
|
@ -201,6 +201,13 @@
|
|||
samsung,pin-drv = <3>;
|
||||
};
|
||||
|
||||
sd0_rclk: sd0-rclk {
|
||||
samsung,pins = "gpc0-7";
|
||||
samsung,pin-function = <2>;
|
||||
samsung,pin-pud = <1>;
|
||||
samsung,pin-drv = <3>;
|
||||
};
|
||||
|
||||
sd1_cmd: sd1-cmd {
|
||||
samsung,pins = "gpc1-1";
|
||||
samsung,pin-function = <2>;
|
||||
|
|
|
@ -80,8 +80,11 @@
|
|||
samsung,dw-mshc-ciu-div = <3>;
|
||||
samsung,dw-mshc-sdr-timing = <0 4>;
|
||||
samsung,dw-mshc-ddr-timing = <0 2>;
|
||||
samsung,dw-mshc-hs400-timing = <0 2>;
|
||||
samsung,read-strobe-delay = <90>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_bus4 &sd0_bus8>;
|
||||
pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_bus1 &sd0_bus4 &sd0_bus8
|
||||
&sd0_rclk>;
|
||||
bus-width = <8>;
|
||||
cap-mmc-highspeed;
|
||||
};
|
||||
|
@ -93,7 +96,7 @@
|
|||
samsung,dw-mshc-sdr-timing = <2 3>;
|
||||
samsung,dw-mshc-ddr-timing = <1 2>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_cd &sd2_bus4>;
|
||||
pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_cd &sd2_bus1 &sd2_bus4>;
|
||||
bus-width = <4>;
|
||||
cap-sd-highspeed;
|
||||
};
|
||||
|
|
|
@ -221,7 +221,7 @@
|
|||
compatible = "samsung,exynos4210-mct";
|
||||
reg = <0x101C0000 0x800>;
|
||||
interrupt-controller;
|
||||
#interrups-cells = <1>;
|
||||
#interrupt-cells = <1>;
|
||||
interrupt-parent = <&mct_map>;
|
||||
interrupts = <0>, <1>, <2>, <3>, <4>, <5>, <6>, <7>,
|
||||
<8>, <9>, <10>, <11>;
|
||||
|
@ -251,6 +251,8 @@
|
|||
compatible = "samsung,exynos4210-pd";
|
||||
reg = <0x10044000 0x20>;
|
||||
#power-domain-cells = <0>;
|
||||
clocks = <&clock CLK_GSCL0>, <&clock CLK_GSCL1>;
|
||||
clock-names = "asb0", "asb1";
|
||||
};
|
||||
|
||||
isp_pd: power-domain@10044020 {
|
||||
|
@ -283,9 +285,11 @@
|
|||
<&clock CLK_MOUT_SW_ACLK300>,
|
||||
<&clock CLK_MOUT_USER_ACLK300_DISP1>,
|
||||
<&clock CLK_MOUT_SW_ACLK400>,
|
||||
<&clock CLK_MOUT_USER_ACLK400_DISP1>;
|
||||
<&clock CLK_MOUT_USER_ACLK400_DISP1>,
|
||||
<&clock CLK_FIMD1>, <&clock CLK_MIXER>;
|
||||
clock-names = "oscclk", "pclk0", "clk0",
|
||||
"pclk1", "clk1", "pclk2", "clk2";
|
||||
"pclk1", "clk1", "pclk2", "clk2",
|
||||
"asb0", "asb1";
|
||||
};
|
||||
|
||||
pinctrl_0: pinctrl@13400000 {
|
||||
|
|
|
@ -264,6 +264,13 @@
|
|||
};
|
||||
};
|
||||
|
||||
emmc_pwrseq: pwrseq {
|
||||
pinctrl-0 = <&emmc_nrst_pin>;
|
||||
pinctrl-names = "default";
|
||||
compatible = "mmc-pwrseq-emmc";
|
||||
reset-gpios = <&gpd1 0 1>;
|
||||
};
|
||||
|
||||
i2c_2: i2c@12C80000 {
|
||||
samsung,i2c-sda-delay = <100>;
|
||||
samsung,i2c-max-bus-freq = <66000>;
|
||||
|
@ -298,13 +305,14 @@
|
|||
|
||||
&mmc_0 {
|
||||
status = "okay";
|
||||
mmc-pwrseq = <&emmc_pwrseq>;
|
||||
broken-cd;
|
||||
card-detect-delay = <200>;
|
||||
samsung,dw-mshc-ciu-div = <3>;
|
||||
samsung,dw-mshc-sdr-timing = <0 4>;
|
||||
samsung,dw-mshc-ddr-timing = <0 2>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_bus4 &sd0_bus8>;
|
||||
pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_bus1 &sd0_bus4 &sd0_bus8>;
|
||||
bus-width = <8>;
|
||||
cap-mmc-highspeed;
|
||||
};
|
||||
|
@ -316,7 +324,7 @@
|
|||
samsung,dw-mshc-sdr-timing = <0 4>;
|
||||
samsung,dw-mshc-ddr-timing = <0 2>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_cd &sd2_bus4>;
|
||||
pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_cd &sd2_bus1 &sd2_bus4>;
|
||||
bus-width = <4>;
|
||||
cap-sd-highspeed;
|
||||
};
|
||||
|
@ -330,6 +338,15 @@
|
|||
};
|
||||
};
|
||||
|
||||
&pinctrl_1 {
|
||||
emmc_nrst_pin: emmc-nrst {
|
||||
samsung,pins = "gpd1-0";
|
||||
samsung,pin-function = <0>;
|
||||
samsung,pin-pud = <0>;
|
||||
samsung,pin-drv = <0>;
|
||||
};
|
||||
};
|
||||
|
||||
&usbdrd_dwc3_0 {
|
||||
dr_mode = "host";
|
||||
};
|
||||
|
|
|
@ -42,6 +42,10 @@
|
|||
pinctrl-names = "default";
|
||||
};
|
||||
|
||||
chosen {
|
||||
stdout-path = "serial3:115200n8";
|
||||
};
|
||||
|
||||
fixed-rate-clocks {
|
||||
oscclk {
|
||||
compatible = "samsung,exynos5420-oscclk";
|
||||
|
@ -119,6 +123,13 @@
|
|||
power-supply = <&tps65090_fet6>;
|
||||
backlight = <&backlight>;
|
||||
};
|
||||
|
||||
mmc1_pwrseq: mmc1_pwrseq {
|
||||
compatible = "mmc-pwrseq-simple";
|
||||
reset-gpios = <&gpx0 0 GPIO_ACTIVE_LOW>; /* WIFI_EN */
|
||||
clocks = <&max77802 MAX77802_CLK_32K_CP>;
|
||||
clock-names = "ext_clock";
|
||||
};
|
||||
};
|
||||
|
||||
&adc {
|
||||
|
@ -581,6 +592,8 @@
|
|||
interrupt-parent = <&gpx0>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&max98091_irq>;
|
||||
clocks = <&pmu_system_controller 0>;
|
||||
clock-names = "mclk";
|
||||
};
|
||||
|
||||
light-sensor@44 {
|
||||
|
@ -641,18 +654,40 @@
|
|||
num-slots = <1>;
|
||||
broken-cd;
|
||||
mmc-hs200-1_8v;
|
||||
mmc-hs400-1_8v;
|
||||
cap-mmc-highspeed;
|
||||
non-removable;
|
||||
card-detect-delay = <200>;
|
||||
clock-frequency = <400000000>;
|
||||
clock-frequency = <800000000>;
|
||||
samsung,dw-mshc-ciu-div = <3>;
|
||||
samsung,dw-mshc-sdr-timing = <0 4>;
|
||||
samsung,dw-mshc-ddr-timing = <0 2>;
|
||||
samsung,dw-mshc-hs400-timing = <0 2>;
|
||||
samsung,read-strobe-delay = <90>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_bus4 &sd0_bus8>;
|
||||
pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_bus1 &sd0_bus4 &sd0_bus8 &sd0_rclk>;
|
||||
bus-width = <8>;
|
||||
};
|
||||
|
||||
&mmc_1 {
|
||||
status = "okay";
|
||||
num-slots = <1>;
|
||||
broken-cd;
|
||||
cap-sdio-irq;
|
||||
card-detect-delay = <200>;
|
||||
clock-frequency = <400000000>;
|
||||
samsung,dw-mshc-ciu-div = <1>;
|
||||
samsung,dw-mshc-sdr-timing = <0 1>;
|
||||
samsung,dw-mshc-ddr-timing = <0 2>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&sd1_clk>, <&sd1_cmd>, <&sd1_int>, <&sd1_bus1>,
|
||||
<&sd1_bus4>, <&sd1_bus8>, <&wifi_en>;
|
||||
bus-width = <4>;
|
||||
cap-sd-highspeed;
|
||||
mmc-pwrseq = <&mmc1_pwrseq>;
|
||||
vqmmc-supply = <&buck10_reg>;
|
||||
};
|
||||
|
||||
&mmc_2 {
|
||||
status = "okay";
|
||||
num-slots = <1>;
|
||||
|
@ -663,7 +698,7 @@
|
|||
samsung,dw-mshc-sdr-timing = <2 3>;
|
||||
samsung,dw-mshc-ddr-timing = <1 2>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_cd &sd2_bus4>;
|
||||
pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_cd &sd2_bus1 &sd2_bus4>;
|
||||
bus-width = <4>;
|
||||
};
|
||||
|
||||
|
@ -672,6 +707,13 @@
|
|||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&mask_tpm_reset>;
|
||||
|
||||
wifi_en: wifi-en {
|
||||
samsung,pins = "gpx0-0";
|
||||
samsung,pin-function = <1>;
|
||||
samsung,pin-pud = <0>;
|
||||
samsung,pin-drv = <0>;
|
||||
};
|
||||
|
||||
max98091_irq: max98091-irq {
|
||||
samsung,pins = "gpx0-2";
|
||||
samsung,pin-function = <0>;
|
||||
|
@ -759,6 +801,29 @@
|
|||
};
|
||||
};
|
||||
|
||||
&pinctrl_1 {
|
||||
/* Adjust WiFi drive strengths lower for EMI */
|
||||
sd1_clk: sd1-clk {
|
||||
samsung,pin-drv = <2>;
|
||||
};
|
||||
|
||||
sd1_cmd: sd1-cmd {
|
||||
samsung,pin-drv = <2>;
|
||||
};
|
||||
|
||||
sd1_bus1: sd1-bus-width1 {
|
||||
samsung,pin-drv = <2>;
|
||||
};
|
||||
|
||||
sd1_bus4: sd1-bus-width4 {
|
||||
samsung,pin-drv = <2>;
|
||||
};
|
||||
|
||||
sd1_bus8: sd1-bus-width8 {
|
||||
samsung,pin-drv = <2>;
|
||||
};
|
||||
};
|
||||
|
||||
&pinctrl_2 {
|
||||
pmic_dvs_2: pmic-dvs-2 {
|
||||
samsung,pins = "gpj4-2";
|
||||
|
|
143
arch/arm/boot/dts/kirkwood-nas2big.dts
Normal file
143
arch/arm/boot/dts/kirkwood-nas2big.dts
Normal file
|
@ -0,0 +1,143 @@
|
|||
/*
|
||||
* Device Tree file for LaCie 2Big NAS
|
||||
*
|
||||
* Copyright (C) 2015 Seagate
|
||||
*
|
||||
* Author: Simon Guinot <simon.guinot@sequanux.org>
|
||||
*
|
||||
* This file is licensed under the terms of the GNU General Public
|
||||
* License version 2. This program is licensed "as is" without any
|
||||
* warranty of any kind, whether express or implied.
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
|
||||
#include "kirkwood-netxbig.dtsi"
|
||||
|
||||
/ {
|
||||
model = "LaCie 2Big NAS";
|
||||
compatible = "lacie,nas2big", "lacie,netxbig", "marvell,kirkwood-88f6282", "marvell,kirkwood";
|
||||
|
||||
memory {
|
||||
device_type = "memory";
|
||||
reg = <0x00000000 0x10000000>;
|
||||
};
|
||||
|
||||
chosen {
|
||||
bootargs = "console=ttyS0,115200n8";
|
||||
stdout-path = &uart0;
|
||||
};
|
||||
|
||||
mbus {
|
||||
pcie-controller {
|
||||
status = "okay";
|
||||
|
||||
pcie@1,0 {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
ocp@f1000000 {
|
||||
rtc@10300 {
|
||||
/* The on-chip RTC is not powered (no supercap). */
|
||||
status = "disabled";
|
||||
};
|
||||
spi@10600 {
|
||||
/*
|
||||
* A NAND flash is used instead of an SPI flash for
|
||||
* the other netxbig-compatible boards.
|
||||
*/
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
|
||||
fan {
|
||||
/*
|
||||
* An I2C fan controller (GMT G762) is used but alarm is
|
||||
* wired to a separate GPIO.
|
||||
*/
|
||||
compatible = "gpio-fan";
|
||||
alarm-gpios = <&gpio0 25 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
regulators: regulators {
|
||||
status = "okay";
|
||||
compatible = "simple-bus";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
pinctrl-names = "default";
|
||||
|
||||
regulator@2 {
|
||||
compatible = "regulator-fixed";
|
||||
reg = <2>;
|
||||
regulator-name = "hdd1power";
|
||||
regulator-min-microvolt = <5000000>;
|
||||
regulator-max-microvolt = <5000000>;
|
||||
enable-active-high;
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
gpio = <&gpio0 17 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
clocks {
|
||||
g762_clk: g762-oscillator {
|
||||
compatible = "fixed-clock";
|
||||
#clock-cells = <0>;
|
||||
clock-frequency = <32768>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&mdio {
|
||||
status = "okay";
|
||||
|
||||
ethphy0: ethernet-phy@0 {
|
||||
reg = <0>;
|
||||
};
|
||||
};
|
||||
|
||||
&i2c0 {
|
||||
status = "okay";
|
||||
|
||||
/*
|
||||
* An external I2C RTC (Dallas DS1337S+) is used. This allows
|
||||
* to power-up the board on an RTC alarm. The external RTC can
|
||||
* be kept powered, even when the SoC is off.
|
||||
*/
|
||||
rtc@68 {
|
||||
compatible = "dallas,ds1307";
|
||||
reg = <0x68>;
|
||||
interrupts = <43>;
|
||||
};
|
||||
g762@3e {
|
||||
compatible = "gmt,g762";
|
||||
reg = <0x3e>;
|
||||
clocks = <&g762_clk>;
|
||||
};
|
||||
};
|
||||
|
||||
&nand {
|
||||
chip-delay = <50>;
|
||||
status = "okay";
|
||||
|
||||
partition@0 {
|
||||
label = "U-Boot";
|
||||
reg = <0x0 0x100000>;
|
||||
};
|
||||
|
||||
partition@100000 {
|
||||
label = "uImage";
|
||||
reg = <0x100000 0x1000000>;
|
||||
};
|
||||
|
||||
partition@1100000 {
|
||||
label = "root";
|
||||
reg = <0x1100000 0x8000000>;
|
||||
};
|
||||
|
||||
partition@9100000 {
|
||||
label = "unused";
|
||||
reg = <0x9100000 0x6f00000>;
|
||||
};
|
||||
};
|
|
@ -27,6 +27,11 @@
|
|||
device_type = "memory";
|
||||
reg = <0x00000000 0x10000000>;
|
||||
};
|
||||
|
||||
fan {
|
||||
compatible = "gpio-fan";
|
||||
alarm-gpios = <&gpio0 25 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
};
|
||||
|
||||
®ulators {
|
||||
|
|
|
@ -150,5 +150,25 @@
|
|||
interrupts = <0 15 1>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
spifc: spi@c1108c80 {
|
||||
compatible = "amlogic,meson6-spifc";
|
||||
reg = <0xc1108c80 0x80>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
clocks = <&clk81>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
ethmac: ethernet@c9410000 {
|
||||
compatible = "amlogic,meson6-dwmac", "snps,dwmac";
|
||||
reg = <0xc9410000 0x10000
|
||||
0xc1108108 0x4>;
|
||||
interrupts = <0 8 1>;
|
||||
interrupt-names = "macirq";
|
||||
clocks = <&clk81>;
|
||||
clock-names = "stmmaceth";
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
}; /* end of / */
|
||||
|
|
|
@ -64,3 +64,7 @@
|
|||
&uart_AO {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
ðmac {
|
||||
status = "okay";
|
||||
};
|
||||
|
|
128
arch/arm/boot/dts/meson8-minix-neo-x8.dts
Normal file
128
arch/arm/boot/dts/meson8-minix-neo-x8.dts
Normal file
|
@ -0,0 +1,128 @@
|
|||
/*
|
||||
* Copyright 2014 Beniamino Galvani <b.galvani@gmail.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.
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include "meson8.dtsi"
|
||||
|
||||
/ {
|
||||
model = "MINIX NEO-X8";
|
||||
compatible = "minix,neo-x8", "amlogic,meson8";
|
||||
|
||||
aliases {
|
||||
serial0 = &uart_AO;
|
||||
};
|
||||
|
||||
memory {
|
||||
reg = <0x40000000 0x80000000>;
|
||||
};
|
||||
|
||||
gpio-leds {
|
||||
compatible = "gpio-leds";
|
||||
|
||||
blue {
|
||||
label = "x8:blue:power";
|
||||
gpios = <&gpio_ao GPIO_TEST_N GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&uart_AO {
|
||||
status = "okay";
|
||||
pinctrl-0 = <&uart_ao_a_pins>;
|
||||
pinctrl-names = "default";
|
||||
};
|
||||
|
||||
&i2c_AO {
|
||||
status = "okay";
|
||||
pinctrl-0 = <&i2c_ao_pins>;
|
||||
pinctrl-names = "default";
|
||||
|
||||
pmic@32 {
|
||||
compatible = "ricoh,rn5t618";
|
||||
reg = <0x32>;
|
||||
|
||||
regulators {
|
||||
};
|
||||
};
|
||||
|
||||
rtc@51 {
|
||||
compatible = "nxp,pcf8563";
|
||||
reg = <0x51>;
|
||||
};
|
||||
};
|
||||
|
||||
&spifc {
|
||||
status = "okay";
|
||||
pinctrl-0 = <&spi_nor_pins>;
|
||||
pinctrl-names = "default";
|
||||
|
||||
spi-flash@0 {
|
||||
compatible = "mxicy,mx25l1606e";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
reg = <0>;
|
||||
spi-max-frequency = <30000000>;
|
||||
|
||||
partition@0 {
|
||||
label = "boot";
|
||||
reg = <0x0 0x100000>;
|
||||
};
|
||||
|
||||
partition@100000 {
|
||||
label = "env";
|
||||
reg = <0x100000 0x10000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&ir_receiver {
|
||||
status = "okay";
|
||||
pinctrl-0 = <&ir_recv_pins>;
|
||||
pinctrl-names = "default";
|
||||
};
|
||||
|
||||
ðmac {
|
||||
status = "okay";
|
||||
pinctrl-0 = <ð_pins>;
|
||||
pnictrl-names = "default";
|
||||
};
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue