339 lines
6.7 KiB
Plaintext
339 lines
6.7 KiB
Plaintext
|
/*
|
||
|
* ox810se.dtsi - Device tree file for Oxford Semiconductor OX810SE SoC
|
||
|
*
|
||
|
* Copyright (C) 2016 Neil Armstrong <narmstrong@baylibre.com>
|
||
|
*
|
||
|
* Licensed under GPLv2 or later
|
||
|
*/
|
||
|
|
||
|
/include/ "skeleton.dtsi"
|
||
|
#include <dt-bindings/clock/oxsemi,ox810se.h>
|
||
|
#include <dt-bindings/reset/oxsemi,ox810se.h>
|
||
|
|
||
|
/ {
|
||
|
compatible = "oxsemi,ox810se";
|
||
|
|
||
|
cpus {
|
||
|
#address-cells = <0>;
|
||
|
#size-cells = <0>;
|
||
|
|
||
|
cpu {
|
||
|
device_type = "cpu";
|
||
|
compatible = "arm,arm926ej-s";
|
||
|
clocks = <&armclk>;
|
||
|
};
|
||
|
};
|
||
|
|
||
|
memory {
|
||
|
/* Max 256MB @ 0x48000000 */
|
||
|
reg = <0x48000000 0x10000000>;
|
||
|
};
|
||
|
|
||
|
clocks {
|
||
|
osc: oscillator {
|
||
|
compatible = "fixed-clock";
|
||
|
#clock-cells = <0>;
|
||
|
clock-frequency = <25000000>;
|
||
|
};
|
||
|
|
||
|
gmacclk: gmacclk {
|
||
|
compatible = "fixed-clock";
|
||
|
#clock-cells = <0>;
|
||
|
clock-frequency = <125000000>;
|
||
|
};
|
||
|
|
||
|
rpsclk: rpsclk {
|
||
|
compatible = "fixed-factor-clock";
|
||
|
#clock-cells = <0>;
|
||
|
clock-div = <1>;
|
||
|
clock-mult = <1>;
|
||
|
clocks = <&osc>;
|
||
|
};
|
||
|
|
||
|
pll400: pll400 {
|
||
|
compatible = "fixed-clock";
|
||
|
#clock-cells = <0>;
|
||
|
clock-frequency = <733333333>;
|
||
|
};
|
||
|
|
||
|
sysclk: sysclk {
|
||
|
compatible = "fixed-factor-clock";
|
||
|
#clock-cells = <0>;
|
||
|
clock-div = <4>;
|
||
|
clock-mult = <1>;
|
||
|
clocks = <&pll400>;
|
||
|
};
|
||
|
|
||
|
armclk: armclk {
|
||
|
compatible = "fixed-factor-clock";
|
||
|
#clock-cells = <0>;
|
||
|
clock-div = <2>;
|
||
|
clock-mult = <1>;
|
||
|
clocks = <&pll400>;
|
||
|
};
|
||
|
};
|
||
|
|
||
|
soc {
|
||
|
#address-cells = <1>;
|
||
|
#size-cells = <1>;
|
||
|
compatible = "simple-bus";
|
||
|
ranges;
|
||
|
interrupt-parent = <&intc>;
|
||
|
|
||
|
apb-bridge@44000000 {
|
||
|
#address-cells = <1>;
|
||
|
#size-cells = <1>;
|
||
|
compatible = "simple-bus";
|
||
|
ranges = <0 0x44000000 0x1000000>;
|
||
|
|
||
|
pinctrl: pinctrl {
|
||
|
compatible = "oxsemi,ox810se-pinctrl";
|
||
|
|
||
|
/* Regmap for sys registers */
|
||
|
oxsemi,sys-ctrl = <&sys>;
|
||
|
|
||
|
pinctrl_uart0: uart0 {
|
||
|
uart0a {
|
||
|
pins = "gpio31";
|
||
|
function = "fct3";
|
||
|
};
|
||
|
uart0b {
|
||
|
pins = "gpio32";
|
||
|
function = "fct3";
|
||
|
};
|
||
|
};
|
||
|
|
||
|
pinctrl_uart0_modem: uart0_modem {
|
||
|
uart0c {
|
||
|
pins = "gpio27";
|
||
|
function = "fct3";
|
||
|
};
|
||
|
uart0d {
|
||
|
pins = "gpio28";
|
||
|
function = "fct3";
|
||
|
};
|
||
|
uart0e {
|
||
|
pins = "gpio29";
|
||
|
function = "fct3";
|
||
|
};
|
||
|
uart0f {
|
||
|
pins = "gpio30";
|
||
|
function = "fct3";
|
||
|
};
|
||
|
uart0g {
|
||
|
pins = "gpio33";
|
||
|
function = "fct3";
|
||
|
};
|
||
|
uart0h {
|
||
|
pins = "gpio34";
|
||
|
function = "fct3";
|
||
|
};
|
||
|
};
|
||
|
|
||
|
pinctrl_uart1: uart1 {
|
||
|
uart1a {
|
||
|
pins = "gpio20";
|
||
|
function = "fct3";
|
||
|
};
|
||
|
uart1b {
|
||
|
pins = "gpio22";
|
||
|
function = "fct3";
|
||
|
};
|
||
|
};
|
||
|
|
||
|
pinctrl_uart1_modem: uart1_modem {
|
||
|
uart1c {
|
||
|
pins = "gpio8";
|
||
|
function = "fct3";
|
||
|
};
|
||
|
uart1d {
|
||
|
pins = "gpio9";
|
||
|
function = "fct3";
|
||
|
};
|
||
|
uart1e {
|
||
|
pins = "gpio23";
|
||
|
function = "fct3";
|
||
|
};
|
||
|
uart1f {
|
||
|
pins = "gpio24";
|
||
|
function = "fct3";
|
||
|
};
|
||
|
uart1g {
|
||
|
pins = "gpio25";
|
||
|
function = "fct3";
|
||
|
};
|
||
|
uart1h {
|
||
|
pins = "gpio26";
|
||
|
function = "fct3";
|
||
|
};
|
||
|
};
|
||
|
|
||
|
pinctrl_uart2: uart2 {
|
||
|
uart2a {
|
||
|
pins = "gpio6";
|
||
|
function = "fct3";
|
||
|
};
|
||
|
uart2b {
|
||
|
pins = "gpio7";
|
||
|
function = "fct3";
|
||
|
};
|
||
|
};
|
||
|
|
||
|
pinctrl_uart2_modem: uart2_modem {
|
||
|
uart2c {
|
||
|
pins = "gpio0";
|
||
|
function = "fct3";
|
||
|
};
|
||
|
uart2d {
|
||
|
pins = "gpio1";
|
||
|
function = "fct3";
|
||
|
};
|
||
|
uart2e {
|
||
|
pins = "gpio2";
|
||
|
function = "fct3";
|
||
|
};
|
||
|
uart2f {
|
||
|
pins = "gpio3";
|
||
|
function = "fct3";
|
||
|
};
|
||
|
uart2g {
|
||
|
pins = "gpio4";
|
||
|
function = "fct3";
|
||
|
};
|
||
|
uart2h {
|
||
|
pins = "gpio5";
|
||
|
function = "fct3";
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
|
||
|
gpio0: gpio@0 {
|
||
|
compatible = "oxsemi,ox810se-gpio";
|
||
|
reg = <0x000000 0x100000>;
|
||
|
interrupts = <21>;
|
||
|
#gpio-cells = <2>;
|
||
|
gpio-controller;
|
||
|
interrupt-controller;
|
||
|
#interrupt-cells = <2>;
|
||
|
ngpios = <32>;
|
||
|
oxsemi,gpio-bank = <0>;
|
||
|
gpio-ranges = <&pinctrl 0 0 32>;
|
||
|
};
|
||
|
|
||
|
gpio1: gpio@100000 {
|
||
|
compatible = "oxsemi,ox810se-gpio";
|
||
|
reg = <0x100000 0x100000>;
|
||
|
interrupts = <22>;
|
||
|
#gpio-cells = <2>;
|
||
|
gpio-controller;
|
||
|
interrupt-controller;
|
||
|
#interrupt-cells = <2>;
|
||
|
ngpios = <3>;
|
||
|
oxsemi,gpio-bank = <1>;
|
||
|
gpio-ranges = <&pinctrl 0 32 3>;
|
||
|
};
|
||
|
|
||
|
uart0: serial@200000 {
|
||
|
compatible = "ns16550a";
|
||
|
reg = <0x200000 0x100000>;
|
||
|
clocks = <&sysclk>;
|
||
|
interrupts = <23>;
|
||
|
reg-shift = <0>;
|
||
|
fifo-size = <16>;
|
||
|
reg-io-width = <1>;
|
||
|
current-speed = <115200>;
|
||
|
no-loopback-test;
|
||
|
status = "disabled";
|
||
|
resets = <&reset RESET_UART1>;
|
||
|
};
|
||
|
|
||
|
uart1: serial@300000 {
|
||
|
compatible = "ns16550a";
|
||
|
reg = <0x300000 0x100000>;
|
||
|
clocks = <&sysclk>;
|
||
|
interrupts = <24>;
|
||
|
reg-shift = <0>;
|
||
|
fifo-size = <16>;
|
||
|
reg-io-width = <1>;
|
||
|
current-speed = <115200>;
|
||
|
no-loopback-test;
|
||
|
status = "disabled";
|
||
|
resets = <&reset RESET_UART2>;
|
||
|
};
|
||
|
|
||
|
uart2: serial@900000 {
|
||
|
compatible = "ns16550a";
|
||
|
reg = <0x900000 0x100000>;
|
||
|
clocks = <&sysclk>;
|
||
|
interrupts = <29>;
|
||
|
reg-shift = <0>;
|
||
|
fifo-size = <16>;
|
||
|
reg-io-width = <1>;
|
||
|
current-speed = <115200>;
|
||
|
no-loopback-test;
|
||
|
status = "disabled";
|
||
|
resets = <&reset RESET_UART3>;
|
||
|
};
|
||
|
|
||
|
uart3: serial@a00000 {
|
||
|
compatible = "ns16550a";
|
||
|
reg = <0xa00000 0x100000>;
|
||
|
clocks = <&sysclk>;
|
||
|
interrupts = <30>;
|
||
|
reg-shift = <0>;
|
||
|
fifo-size = <16>;
|
||
|
reg-io-width = <1>;
|
||
|
current-speed = <115200>;
|
||
|
no-loopback-test;
|
||
|
status = "disabled";
|
||
|
resets = <&reset RESET_UART4>;
|
||
|
};
|
||
|
};
|
||
|
|
||
|
apb-bridge@45000000 {
|
||
|
#address-cells = <1>;
|
||
|
#size-cells = <1>;
|
||
|
compatible = "simple-bus";
|
||
|
ranges = <0 0x45000000 0x1000000>;
|
||
|
|
||
|
sys: sys-ctrl@0 {
|
||
|
compatible = "oxsemi,ox810se-sys-ctrl", "syscon", "simple-mfd";
|
||
|
reg = <0x000000 0x100000>;
|
||
|
|
||
|
reset: reset-controller {
|
||
|
compatible = "oxsemi,ox810se-reset";
|
||
|
#reset-cells = <1>;
|
||
|
};
|
||
|
|
||
|
stdclk: stdclk {
|
||
|
compatible = "oxsemi,ox810se-stdclk";
|
||
|
#clock-cells = <1>;
|
||
|
};
|
||
|
};
|
||
|
|
||
|
rps@300000 {
|
||
|
#address-cells = <1>;
|
||
|
#size-cells = <1>;
|
||
|
compatible = "simple-bus";
|
||
|
ranges = <0 0x300000 0x100000>;
|
||
|
|
||
|
intc: interrupt-controller@0 {
|
||
|
compatible = "oxsemi,ox810se-rps-irq";
|
||
|
interrupt-controller;
|
||
|
reg = <0 0x200>;
|
||
|
#interrupt-cells = <1>;
|
||
|
valid-mask = <0xFFFFFFFF>;
|
||
|
clear-mask = <0>;
|
||
|
};
|
||
|
|
||
|
timer0: timer@200 {
|
||
|
compatible = "oxsemi,ox810se-rps-timer";
|
||
|
reg = <0x200 0x40>;
|
||
|
clocks = <&rpsclk>;
|
||
|
interrupts = <4 5>;
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
};
|