Initial commit

This commit is contained in:
domenico
2025-06-24 13:14:22 +02:00
commit 4002f145fc
9002 changed files with 1731834 additions and 0 deletions

View File

@@ -0,0 +1,167 @@
/dts-v1/;
#include "ox820.dtsi"
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
/ {
model = "Akitio MyCloud";
compatible = "akitio,mycloud", "oxsemi,ox820";
chosen {
bootargs = "earlyprintk console=ttyS0,115200";
stdout-path = "serial0:115200n8";
};
memory {
/* 128Mbytes DDR */
reg = <0x60000000 0x8000000>;
};
aliases {
serial0 = &uart0;
gpio0 = &gpio0;
gpio1 = &gpio1;
led-boot = &led_status;
led-failsafe = &led_status;
led-running = &led_status;
led-upgrade = &led_status;
};
i2c-gpio {
compatible = "i2c-gpio";
gpios = <&gpio1 9 GPIO_ACTIVE_HIGH
&gpio1 10 GPIO_ACTIVE_HIGH>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_i2c>;
i2c-gpio,delay-us = <10>;
#address-cells = <1>;
#size-cells = <0>;
ds1307: rtc@68 {
compatible = "dallas,ds1307";
reg = <0x68>;
};
};
keys {
compatible = "gpio-keys-polled";
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_buttons>;
#address-cells = <1>;
#size-cells = <0>;
poll-interval = <100>;
power {
label = "power";
gpios = <&gpio0 11 GPIO_ACTIVE_LOW>;
linux,code = <KEY_POWER>;
};
reset {
label = "reset";
gpios = <&gpio1 6 GPIO_ACTIVE_LOW>;
linux,code = <KEY_RESTART>;
};
};
leds {
compatible = "gpio-leds";
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_leds>;
led_status: status {
label = "akitio:red:status";
gpios = <&gpio0 29 GPIO_ACTIVE_HIGH>;
};
};
gpio-poweroff {
compatible = "gpio-poweroff";
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_poweroff>;
gpios = <&gpio1 13 GPIO_SINGLE_ENDED>;
};
};
&pinctrl {
pinctrl_i2c: i2c-0 {
i2c {
pins = "gpio41", "gpio42"; /* MF_B9, MF_B10 */
function = "gpio";
/* ToDo: find a way to set debounce for those pins */
};
};
pinctrl_buttons: buttons-0 {
buttons {
pins = "gpio11", "gpio38"; /* MF_A11, MF_B6 GPIO */
function = "gpio";
};
};
pinctrl_leds: leds-0 {
leds {
pins = "gpio29"; /* MF_A29 GPIO */
function = "gpio";
};
};
pinctrl_poweroff: poweroff-0 {
poweroff {
pins = "gpio45"; /* MF_B13 GPIO */
function = "gpio";
};
};
};
&uart0 {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_uart0>;
};
&nandc {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_nand>;
nand@0 {
reg = <0>;
#address-cells = <1>;
#size-cells = <1>;
nand-ecc-mode = "soft";
nand-ecc-algo = "hamming";
partition@0 {
label = "boot";
reg = <0x0 0x26c0000>;
};
partition@26c0000 {
label = "ubi";
reg = <0x26c0000 0xd940000>;
};
};
};
&etha {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_etha_mdio>;
};
&ehci {
status = "okay";
};
&sata {
status = "okay";
nr-ports = <2>;
};
&pcie_phy {
status = "okay";
};
&pcie0 {
status = "okay";
};

View File

@@ -0,0 +1,131 @@
/*
* cloudengines-pogoplug-series-3.dtsi - Device tree file for Cloud Engines PogoPlug Series 3
*
* Copyright (C) 2016 Neil Armstrong <narmstrong@baylibre.com>
*
* Licensed under GPLv2 or later
*/
/dts-v1/;
#include "ox820.dtsi"
#include <dt-bindings/gpio/gpio.h>
/ {
model = "Cloud Engines PogoPlug Pro";
compatible = "cloudengines,pogoplugpro", "oxsemi,ox820";
chosen {
bootargs = "earlyprintk console=ttyS0,115200";
stdout-path = "serial0:115200n8";
};
memory {
/* 128Mbytes DDR */
reg = <0x60000000 0x8000000>;
};
aliases {
serial0 = &uart0;
gpio0 = &gpio0;
gpio1 = &gpio1;
led-boot = &led_status;
led-failsafe = &led_warn;
led-running = &led_act;
led-upgrade = &led_warn;
};
leds {
compatible = "gpio-leds";
led_status: blue {
label = "pogoplug:blue";
gpios = <&gpio0 2 GPIO_ACTIVE_HIGH>;
default-state = "keep";
};
led_warn: orange {
label = "pogoplug:orange";
gpios = <&gpio1 16 GPIO_ACTIVE_LOW>;
default-state = "keep";
};
led_act: green {
label = "pogoplug:green";
gpios = <&gpio1 17 GPIO_ACTIVE_LOW>;
default-state = "keep";
};
};
};
&uart0 {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_uart0>;
};
&nandc {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_nand>;
nand@0 {
reg = <0>;
#address-cells = <1>;
#size-cells = <1>;
nand-ecc-mode = "soft";
nand-ecc-algo = "hamming";
partition@0 {
label = "stage1";
reg = <0x00000000 0x00040000>;
read-only;
};
partition@40000 {
label = "u-boot";
reg = <0x00040000 0x00380000>;
read-only;
};
partition@3c0000 {
label = "u-boot-env";
reg = <0x003c0000 0x00080000>;
};
partition@440000 {
label = "kernel";
reg = <0x00440000 0x009c0000>;
};
partition@e00000 {
label = "ubi";
reg = <0x00e00000 0x07200000>;
};
};
};
&ehci {
status = "okay";
};
&etha {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_etha_mdio>;
};
&sata {
status = "okay";
};
&pcie_phy {
status = "okay";
};
&pcie0 {
status = "okay";
};

View File

@@ -0,0 +1,139 @@
/dts-v1/;
#include "ox820.dtsi"
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
/ {
model = "MitraStar Technology Corp. STG-212";
compatible = "mitrastar,stg-212", "oxsemi,ox820";
chosen {
bootargs = "earlyprintk console=ttyS0,115200";
stdout-path = "serial0:115200n8";
};
memory {
/* 128Mbytes DDR */
reg = <0x60000000 0x8000000>;
};
aliases {
serial0 = &uart0;
gpio0 = &gpio0;
gpio1 = &gpio1;
led-boot = &led_status;
led-failsafe = &led_warn;
led-running = &led_status;
led-upgrade = &led_warn;
};
keys {
compatible = "gpio-keys-polled";
#address-cells = <1>;
#size-cells = <0>;
poll-interval = <100>;
reset {
label = "reset";
gpios = <&gpio1 11 GPIO_ACTIVE_LOW>;
linux,code = <KEY_RESTART>;
};
copy {
label = "copy";
gpios = <&gpio1 13 GPIO_ACTIVE_LOW>;
linux,code = <KEY_COPY>;
};
};
leds {
compatible = "gpio-leds";
led_status: status {
label = "zyxel:blue:status";
gpios = <&gpio1 5 GPIO_ACTIVE_HIGH>;
};
led_warn: status2 {
label = "zyxel:red:status";
gpios = <&gpio1 6 GPIO_ACTIVE_LOW>;
};
copy {
label = "zyxel:orange:copy";
gpios = <&gpio1 8 GPIO_ACTIVE_LOW>;
trigger-sources = <&ehci_port1>, <&ehci_port2>;
linux,default-trigger = "usbport";
};
};
i2c-gpio {
compatible = "i2c-gpio";
gpios = <&gpio1 9 GPIO_ACTIVE_HIGH
&gpio1 10 GPIO_ACTIVE_HIGH>;
i2c-gpio,delay-us = <10>;
};
};
&uart0 {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_uart0>;
};
&nandc {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_nand>;
nand@0 {
reg = <0>;
#address-cells = <1>;
#size-cells = <1>;
nand-ecc-mode = "soft";
nand-ecc-algo = "hamming";
partition@0 {
label = "stage1";
reg = <0x00000000 0x00040000>;
read-only;
};
partition@40000 {
label = "u-boot";
reg = <0x00040000 0x00380000>;
read-only;
};
partition@3c0000 {
label = "u-boot-env";
reg = <0x003c0000 0x00080000>;
};
partition@440000 {
label = "kernel";
reg = <0x00440000 0x009c0000>;
};
partition@e00000 {
label = "ubi";
reg = <0x00e00000 0x07200000>;
};
};
};
&etha {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_etha_mdio>;
};
&ehci {
status = "okay";
};
&sata {
status = "okay";
};

View File

@@ -0,0 +1,250 @@
/dts-v1/;
#include "ox820.dtsi"
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
#include <dt-bindings/thermal/thermal.h>
/ {
model = "Shuttle KD20";
compatible = "shuttle,kd20", "oxsemi,ox820";
chosen {
bootargs = "earlyprintk console=ttyS0,115200";
stdout-path = "serial0:115200n8";
};
memory {
/* 256Mbytes DDR */
reg = <0x60000000 0x10000000>;
};
aliases {
serial0 = &uart0;
gpio0 = &gpio0;
gpio1 = &gpio1;
led-boot = &led_status;
led-failsafe = &led_warn;
led-running = &led_status;
led-upgrade = &led_warn;
};
thermal_zones {
chassis-thermal {
/* Poll every 20 seconds */
polling-delay = <20000>;
/* Poll every 2nd second when cooling */
polling-delay-passive = <2000>;
thermal-sensors = <&hdd0_temp>, <&hdd1_temp>;
trips {
chassis_alert0: chassis-alert0 {
/* At 43 degrees turn on fan */
temperature = <43000>;
hysteresis = <3000>;
type = "active";
};
chassis_alert1: chassis-alert1 {
/* At 60 degrees emergency shutdown */
temperature = <60000>;
hysteresis = <2000>;
type = "critical";
};
};
cooling-maps {
map0 {
trip = <&chassis_alert0>;
cooling-device = <&system_fan THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
};
};
};
};
i2c-gpio {
compatible = "i2c-gpio";
sda-gpios = <&gpio1 9 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
sck-gpios = <&gpio1 10 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
i2c-gpio,delay-us = <10>;
#address-cells = <1>;
#size-cells = <0>;
rtc0: rtc@51 {
compatible = "nxp,pcf8563";
reg = <0x51>;
};
};
keys {
compatible = "gpio-keys-polled";
#address-cells = <1>;
#size-cells = <0>;
poll-interval = <100>;
power {
label = "power";
gpios = <&gpio0 10 GPIO_ACTIVE_LOW>;
linux,code = <KEY_POWER>;
};
reset {
label = "reset";
gpios = <&gpio0 11 GPIO_ACTIVE_LOW>;
linux,code = <KEY_RESTART>;
};
eject1 {
label = "eject1";
gpios = <&gpio0 5 GPIO_ACTIVE_LOW>;
linux,code = <KEY_EJECTCD>;
};
eject2 {
label = "eject2";
gpios = <&gpio0 6 GPIO_ACTIVE_LOW>;
linux,code = <162>;
};
};
leds {
compatible = "gpio-leds";
led_status: status {
label = "kd20:blue:status";
gpios = <&gpio1 16 GPIO_ACTIVE_HIGH>;
};
led_warn: status2 {
label = "kd20:red:status";
gpios = <&gpio1 17 GPIO_ACTIVE_HIGH>;
};
hdd1blue {
label = "kd20:blue:hdd1";
gpios = <&gpio0 27 GPIO_ACTIVE_HIGH>;
linux,default-trigger = "ata1";
};
hdd1red {
label = "kd20:red:hdd1";
gpios = <&gpio1 4 GPIO_ACTIVE_HIGH>;
};
hdd2blue {
label = "kd20:blue:hdd2";
gpios = <&gpio1 6 GPIO_ACTIVE_HIGH>;
linux,default-trigger = "ata2";
};
hdd2red {
label = "kd20:red:hdd2";
gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>;
};
usb {
label = "kd20:blue:usb";
gpios = <&gpio1 8 GPIO_ACTIVE_HIGH>;
trigger-sources = <&ehci_port1>, <&ehci_port2>;
linux,default-trigger = "usbport";
};
};
beeper: beeper {
compatible = "gpio-beeper";
gpios = <&gpio1 11 GPIO_ACTIVE_HIGH>;
};
system_fan: gpio-fan {
compatible = "gpio-fan";
gpios = <&gpio0 2 GPIO_ACTIVE_HIGH>;
gpio-fan,speed-map = <0 0
3000 1>;
};
gpio-poweroff {
compatible = "gpio-poweroff";
gpios = <&gpio0 9 GPIO_ACTIVE_HIGH>;
};
};
&uart0 {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_uart0>;
};
&nandc {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_nand>;
nand@0 {
reg = <0>;
#address-cells = <1>;
#size-cells = <1>;
nand-ecc-mode = "soft";
nand-ecc-algo = "hamming";
partition@0 {
label = "stage1";
reg = <0x00000000 0x00040000>;
read-only;
};
partition@40000 {
label = "u-boot";
reg = <0x00040000 0x001e0000>;
read-only;
};
partition@220000 {
label = "u-boot-env";
reg = <0x00220000 0x00020000>;
};
partition@240000 {
label = "initrd";
reg = <0x00240000 0x00600000>;
};
partition@840000 {
label = "kernel";
reg = <0x00840000 0x007C0000>;
};
partition@e00000 {
label = "ubi";
reg = <0x01000000 0x07000000>;
};
};
};
&etha {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_etha_mdio>;
};
&ehci {
status = "okay";
};
&sata {
status = "okay";
nr-ports = <2>;
hdd0_temp: sata-port@0 {
reg = <0>;
#thermal-sensor-cells = <0>;
};
hdd1_temp: sata-port@1 {
reg = <1>;
#thermal-sensor-cells = <0>;
};
};
&pcie_phy {
status = "okay";
};
&pcie0 {
status = "okay";
};

View File

@@ -0,0 +1,32 @@
/* linux/include/asm-arm/arch-oxnas/uncompress.h
*
* 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.
*/
#ifndef __ASM_ARCH_UNCOMPRESS_H
#define __ASM_ARCH_UNCOMPRESS_H
#define OXNAS_UART1_BASE 0x44200000
static inline void putc(int c)
{
static volatile unsigned char *uart =
(volatile unsigned char *)OXNAS_UART1_BASE;
while (!(uart[5] & 0x20)) { /* LSR reg THR empty bit */
barrier();
}
uart[0] = c; /* THR register */
}
static inline void flush(void)
{
}
#define arch_decomp_setup()
#define arch_decomp_wdog()
#endif /* __ASM_ARCH_UNCOMPRESS_H */