835b36e211
(4 in operation), 4GB ram (3.5 usable) ARM machine. Support covers device drivers for: - Serial Peripheral Interface (SPI) - Chrome Embedded Controller (EC) - SPI-based version - XHCI and USB 3.0 dual-role device PHY Also: - Add support for Exynos5420 in Pad module - Move power-related functions to separate driver -- Power Management Unit (PMU) - Enable XHCI for Chromebook1 Special thanks to grehan@ for hardware, and to hselasky@ for r269139.
338 lines
8.1 KiB
Plaintext
338 lines
8.1 KiB
Plaintext
/*-
|
|
* Copyright (c) 2013-2014 Ruslan Bukin <br@bsdpad.com>
|
|
* All rights reserved.
|
|
*
|
|
* Redistribution and use in source and binary forms, with or without
|
|
* modification, are permitted provided that the following conditions
|
|
* are met:
|
|
* 1. Redistributions of source code must retain the above copyright
|
|
* notice, this list of conditions and the following disclaimer.
|
|
* 2. 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 SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
|
|
*
|
|
* $FreeBSD$
|
|
*/
|
|
|
|
/ {
|
|
compatible = "samsung,exynos5";
|
|
#address-cells = <1>;
|
|
#size-cells = <1>;
|
|
interrupt-parent = <&GIC>;
|
|
|
|
aliases {
|
|
soc = &SOC;
|
|
serial0 = &serial0;
|
|
serial1 = &serial1;
|
|
serial2 = &serial2;
|
|
serial3 = &serial3;
|
|
clk0 = &clk0;
|
|
dp0 = &dp0;
|
|
fimd0 = &fimd0;
|
|
};
|
|
|
|
SOC: Exynos5@0 {
|
|
#address-cells = <1>;
|
|
#size-cells = <1>;
|
|
compatible = "simple-bus";
|
|
ranges;
|
|
bus-frequency = <0>;
|
|
|
|
pmu_system_controller: system-controller@10040000 {
|
|
reg = <0x10040000 0x5000>;
|
|
status = "disabled";
|
|
};
|
|
|
|
GIC: interrupt-controller@10481000 {
|
|
compatible = "arm,gic";
|
|
reg = < 0x10481000 0x1000 >, /* Distributor Registers */
|
|
< 0x10482000 0x2000 >; /* CPU Interface Registers */
|
|
interrupt-controller;
|
|
#address-cells = <0>;
|
|
#interrupt-cells = <1>;
|
|
};
|
|
|
|
combiner: interrupt-controller@10440000 {
|
|
compatible = "exynos,combiner";
|
|
reg = <0x10440000 0x1000>;
|
|
interrupts = < 32 33 34 35 36 37 38 39
|
|
40 41 42 43 44 45 46 47
|
|
48 49 50 51 52 53 54 55
|
|
56 57 58 59 60 61 62 63 >;
|
|
interrupt-parent = <&GIC>;
|
|
};
|
|
|
|
clk0: clk@10010000 {
|
|
compatible = "exynos,clk";
|
|
reg = < 0x10020000 0x20000 >;
|
|
};
|
|
|
|
mct {
|
|
compatible = "exynos,mct";
|
|
reg = < 0x101C0000 0x1000 >;
|
|
clock-frequency = <24000000>;
|
|
};
|
|
|
|
generic_timer {
|
|
compatible = "arm,armv7-timer";
|
|
clock-frequency = <24000000>;
|
|
interrupts = < 29 30 27 26 >;
|
|
interrupt-parent = <&GIC>;
|
|
};
|
|
|
|
pwm {
|
|
compatible = "samsung,s3c24x0-timer";
|
|
reg = <0x12DD0000 0x1000>;
|
|
interrupts = < 71 >;
|
|
interrupt-parent = <&GIC>;
|
|
clock-frequency = <24000000>;
|
|
};
|
|
|
|
pad0: pad@11400000 {
|
|
status = "disabled";
|
|
};
|
|
|
|
usbdrd_phy0: phy@12100000 {
|
|
compatible = "samsung,exynos5420-usbdrd-phy";
|
|
status = "disabled";
|
|
reg = <0x12100000 0x100>;
|
|
samsung,pmu-syscon = <&pmu_system_controller>;
|
|
};
|
|
|
|
usbdrd_phy1: phy@12500000 {
|
|
compatible = "samsung,exynos5420-usbdrd-phy";
|
|
status = "disabled";
|
|
reg = <0x12500000 0x100>;
|
|
samsung,pmu-syscon = <&pmu_system_controller>;
|
|
};
|
|
|
|
xhci@12000000 {
|
|
compatible = "samsung,exynos5250-dwusb3";
|
|
status = "disabled";
|
|
reg = <0x12000000 0x1000>,
|
|
<0x1200c100 0x1000>;
|
|
interrupts = < 104 >;
|
|
interrupt-parent = <&GIC>;
|
|
};
|
|
|
|
xhci@12400000 {
|
|
compatible = "samsung,exynos5250-dwusb3";
|
|
status = "disabled";
|
|
reg = <0x12400000 0x1000>,
|
|
<0x1240c100 0x1000>;
|
|
interrupts = < 105 >;
|
|
interrupt-parent = <&GIC>;
|
|
};
|
|
|
|
usb@12110000 {
|
|
compatible = "exynos,usb-ehci", "usb-ehci";
|
|
status = "disabled";
|
|
reg = <0x12110000 0x1000>, /* EHCI */
|
|
<0x12130000 0x1000>, /* EHCI host ctrl */
|
|
<0x10050230 0x10>; /* Sysreg */
|
|
interrupts = < 103 >;
|
|
interrupt-parent = <&GIC>;
|
|
};
|
|
|
|
usb@12120000 {
|
|
compatible = "exynos,usb-ohci", "usb-ohci";
|
|
status = "disabled";
|
|
reg = <0x12120000 0x10000>;
|
|
interrupts = < 103 >;
|
|
interrupt-parent = <&GIC>;
|
|
};
|
|
|
|
sdhci@12200000 {
|
|
compatible = "sdhci_generic";
|
|
status = "disabled";
|
|
reg = <0x12200000 0x1000>;
|
|
interrupts = <107>;
|
|
interrupt-parent = <&GIC>;
|
|
max-frequency = <24000000>; /* TODO: verify freq */
|
|
};
|
|
|
|
sdhci@12210000 {
|
|
compatible = "sdhci_generic";
|
|
status = "disabled";
|
|
reg = <0x12210000 0x1000>;
|
|
interrupts = <108>;
|
|
interrupt-parent = <&GIC>;
|
|
max-frequency = <24000000>;
|
|
};
|
|
|
|
sdhci@12220000 {
|
|
compatible = "sdhci_generic";
|
|
status = "disabled";
|
|
reg = <0x12220000 0x1000>;
|
|
interrupts = <109>;
|
|
interrupt-parent = <&GIC>;
|
|
max-frequency = <24000000>;
|
|
};
|
|
|
|
sdhci@12230000 {
|
|
compatible = "sdhci_generic";
|
|
status = "disabled";
|
|
reg = <0x12230000 0x1000>;
|
|
interrupts = <110>;
|
|
interrupt-parent = <&GIC>;
|
|
max-frequency = <24000000>;
|
|
};
|
|
|
|
serial0: serial@12C00000 {
|
|
compatible = "exynos";
|
|
status = "disabled";
|
|
reg = <0x12C00000 0x100>;
|
|
interrupts = < 83 >;
|
|
interrupt-parent = <&GIC>;
|
|
clock-frequency = < 100000000 >;
|
|
current-speed = <115200>;
|
|
};
|
|
|
|
serial1: serial@12C10000 {
|
|
compatible = "exynos";
|
|
status = "disabled";
|
|
reg = <0x12C10000 0x100>;
|
|
interrupts = < 84 >;
|
|
interrupt-parent = <&GIC>;
|
|
clock-frequency = < 100000000 >;
|
|
current-speed = <115200>;
|
|
};
|
|
|
|
serial2: serial@12C20000 {
|
|
compatible = "exynos";
|
|
status = "disabled";
|
|
reg = <0x12C20000 0x100>;
|
|
interrupts = < 85 >;
|
|
interrupt-parent = <&GIC>;
|
|
clock-frequency = < 100000000 >;
|
|
current-speed = <115200>;
|
|
};
|
|
|
|
serial3: serial@12C30000 {
|
|
compatible = "exynos";
|
|
status = "disabled";
|
|
reg = <0x12C30000 0x100>;
|
|
interrupts = < 86 >;
|
|
interrupt-parent = <&GIC>;
|
|
clock-frequency = < 100000000 >;
|
|
current-speed = <115200>;
|
|
};
|
|
|
|
spi0: spi@12d20000 {
|
|
compatible = "samsung,exynos5-spi";
|
|
status = "disabled";
|
|
reg = <0x12d20000 0x100>;
|
|
interrupts = < 100 >;
|
|
interrupt-parent = <&GIC>;
|
|
};
|
|
|
|
spi1: spi@12d30000 {
|
|
compatible = "samsung,exynos5-spi";
|
|
status = "disabled";
|
|
reg = <0x12d30000 0x100>;
|
|
interrupts = < 101 >;
|
|
interrupt-parent = <&GIC>;
|
|
};
|
|
|
|
spi2: spi@12d40000 {
|
|
compatible = "samsung,exynos5-spi";
|
|
status = "disabled";
|
|
reg = <0x12d40000 0x100>;
|
|
interrupts = < 102 >;
|
|
interrupt-parent = <&GIC>;
|
|
};
|
|
|
|
i2c0: i2c@12C60000 {
|
|
compatible = "exynos,i2c";
|
|
status = "disabled";
|
|
reg = <0x12C60000 0x10000>;
|
|
interrupts = < 88 >;
|
|
interrupt-parent = <&GIC>;
|
|
};
|
|
|
|
i2c1: i2c@12C70000 {
|
|
compatible = "exynos,i2c";
|
|
status = "disabled";
|
|
reg = <0x12C70000 0x10000>;
|
|
interrupts = < 89 >;
|
|
interrupt-parent = <&GIC>;
|
|
};
|
|
|
|
i2c2: i2c@12C80000 {
|
|
compatible = "exynos,i2c";
|
|
status = "disabled";
|
|
reg = <0x12C80000 0x10000>;
|
|
interrupts = < 90 >;
|
|
interrupt-parent = <&GIC>;
|
|
};
|
|
|
|
i2c3: i2c@12C90000 {
|
|
compatible = "exynos,i2c";
|
|
status = "disabled";
|
|
reg = <0x12C90000 0x10000>;
|
|
interrupts = < 91 >;
|
|
interrupt-parent = <&GIC>;
|
|
};
|
|
|
|
i2c4: i2c@12CA0000 {
|
|
compatible = "exynos,i2c";
|
|
status = "disabled";
|
|
reg = <0x12CA0000 0x10000>;
|
|
interrupts = < 92 >;
|
|
interrupt-parent = <&GIC>;
|
|
};
|
|
|
|
i2c5: i2c@12CB0000 {
|
|
compatible = "exynos,i2c";
|
|
status = "disabled";
|
|
reg = <0x12CB0000 0x10000>;
|
|
interrupts = < 93 >;
|
|
interrupt-parent = <&GIC>;
|
|
};
|
|
|
|
i2c6: i2c@12CC0000 {
|
|
compatible = "exynos,i2c";
|
|
status = "disabled";
|
|
reg = <0x12CC0000 0x10000>;
|
|
interrupts = < 94 >;
|
|
interrupt-parent = <&GIC>;
|
|
};
|
|
|
|
i2c7: i2c@12CD0000 {
|
|
compatible = "exynos,i2c";
|
|
status = "disabled";
|
|
reg = <0x12CD0000 0x10000>;
|
|
interrupts = < 95 >;
|
|
interrupt-parent = <&GIC>;
|
|
};
|
|
|
|
fimd0: fimd@14400000 {
|
|
compatible = "exynos,fimd";
|
|
status = "disabled";
|
|
reg = < 0x14400000 0x10000 >, /* fimd */
|
|
< 0x14420000 0x10000 >, /* disp */
|
|
< 0x10050000 0x220 >; /* sysreg */
|
|
interrupt-parent = <&GIC>;
|
|
};
|
|
|
|
dp0: dp@145B0000 {
|
|
compatible = "exynos,dp";
|
|
status = "disabled";
|
|
reg = < 0x145B0000 0x10000 >;
|
|
interrupt-parent = <&GIC>;
|
|
};
|
|
};
|
|
};
|