blob: 299e74d23184580e5264465ab82db8bdc087a6c9 [file] [log] [blame]
// SPDX-License-Identifier: GPL-2.0
/*
* at91-kizbox3.dts - Device Tree Include file for Overkiz Kizbox 3
* family SoC boards
*
* Copyright (C) 2018 Overkiz SAS
*
* Authors: Dorian Rocipon <d.rocipon@overkiz.com>
* Kevin Carli <k.carli@overkiz.com>
* Mickael Gardet <m.gardet@overkiz.com>
*/
/dts-v1/;
#include "sama5d2.dtsi"
#include "sama5d2-pinfunc.h"
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/mfd/atmel-flexcom.h>
#include <dt-bindings/pinctrl/at91.h>
#include <dt-bindings/pwm/pwm.h>
/ {
model = "Overkiz Kizbox3";
compatible = "overkiz,kizbox3", "atmel,sama5d2", "atmel,sama5";
aliases {
serial0 = &uart0;
serial1 = &uart1;
serial2 = &uart2;
serial3 = &uart3;
serial4 = &uart4;
serial5 = &uart5;
serial6 = &uart6;
};
chosen {
bootargs = "ubi.mtd=ubi";
stdout-path = "serial1:115200n8";
};
clocks {
slow_xtal {
clock-frequency = <32768>;
};
main_xtal {
clock-frequency = <12000000>;
};
};
vdd_adc_vddana: supply_3v3_ana {
compatible = "regulator-fixed";
regulator-name = "adc-vddana";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-always-on;
};
vdd_adc_vref: supply_3v3_ref {
compatible = "regulator-fixed";
regulator-name = "adc-vref";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-always-on;
};
pwm_leds {
compatible = "pwm-leds";
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_pwm0_pwm_h0
&pinctrl_pwm0_pwm_h1
&pinctrl_pwm0_pwm_h2
&pinctrl_pwm0_pwm_h3>;
status = "disabled";
red {
label = "pwm:red:user";
pwms = <&pwm0 0 10000000 0>;
max-brightness = <255>;
linux,default-trigger = "default-on";
status = "disabled";
};
green {
label = "pwm:green:user";
pwms = <&pwm0 1 10000000 0>;
max-brightness = <255>;
linux,default-trigger = "default-on";
status = "disabled";
};
blue {
label = "pwm:blue:user";
pwms = <&pwm0 2 10000000 0>;
max-brightness = <255>;
status = "disabled";
};
white {
label = "pwm:white:user";
pwms = <&pwm0 3 10000000 0>;
max-brightness = <255>;
status = "disabled";
};
};
};
&ebi {
status = "okay";
};
&nand_controller {
status = "okay";
nand@3 {
pinctrl-0 = <&pinctrl_ebi_nand_addr>;
pinctrl-names = "default";
reg = <0x3 0x0 0x800000>;
atmel,rb = <0>;
nand-bus-width = <8>;
nand-ecc-mode = "hw";
nand-ecc-strength = <4>;
nand-ecc-step-size = <512>;
nand-on-flash-bbt;
label = "atmel_nand";
partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
bootstrap@0 {
label = "bootstrap";
reg = <0x0 0x20000>;
};
u-boot@20000 {
label = "u-boot";
reg = <0x20000 0x140000>;
};
u-boot-factory@160000 {
label = "u-boot-factory";
reg = <0x160000 0x140000>;
};
ubi@2A0000 {
label = "ubi";
reg = <0x2A0000 0x7D60000>;
};
};
};
};
&rtc {
status = "okay";
};
&pioA {
pinctrl_ebi_nand_addr: ebi-addr-1 {
pinmux = <PIN_PA0__D0>,
<PIN_PA1__D1>,
<PIN_PA2__D2>,
<PIN_PA3__D3>,
<PIN_PA4__D4>,
<PIN_PA5__D5>,
<PIN_PA6__D6>,
<PIN_PA7__D7>,
<PIN_PA8__NWE_NANDWE>,
<PIN_PA9__NCS3>,
<PIN_PA10__A21_NANDALE>,
<PIN_PA11__A22_NANDCLE>,
<PIN_PA21__NANDRDY>;
bias-disable;
};
pinctrl_usart {
pinctrl_usart_0: usart0-0 {
pinmux = < PIN_PB26__URXD0>, <PIN_PB27__UTXD0>;
bias-disable;
};
pinctrl_usart_1: usart1-0 {
pinmux = < PIN_PD2__URXD1>, <PIN_PD3__UTXD1>;
bias-disable;
};
pinctrl_usart_2: usart2-0 {
pinmux = < PIN_PD4__URXD2>, <PIN_PD5__UTXD2>;
bias-disable;
};
pinctrl_usart_3: usart3-0 {
pinmux = < PIN_PC12__URXD3>, <PIN_PC13__UTXD3>;
bias-disable;
};
pinctrl_usart_4: usart4-0 {
pinmux = < PIN_PB3__URXD4>, <PIN_PB4__UTXD4>;
bias-disable;
};
pinctrl_flx0_default: flx0_usart_default {
pinmux = <PIN_PB28__FLEXCOM0_IO0>, //TX
<PIN_PB29__FLEXCOM0_IO1>; //RX
bias-disable;
};
pinctrl_flx3_default: flx3_usart_default {
pinmux = <PIN_PB22__FLEXCOM3_IO1>, //RX
<PIN_PB23__FLEXCOM3_IO0>; //TX
bias-disable;
};
};
pinctrl_flx4_default: flx4_i2c2_default {
pinmux = <PIN_PD12__FLEXCOM4_IO0>, //DATA
<PIN_PD13__FLEXCOM4_IO1>; //CLK
bias-disable;
drive-open-drain = <1>;
};
pinctrl_pwm0 {
pinctrl_pwm0_pwm_h0: pwm0_pwm_h0 {
pinmux = <PIN_PA30__PWMH0>;
bias-disable;
};
pinctrl_pwm0_pwm_h1: pwm0_pwmh1 {
pinmux = <PIN_PB0__PWMH1>;
bias-disable;
};
pinctrl_pwm0_pwm_h2: pwm0_pwm_h2 {
pinmux = <PIN_PB5__PWMH2>;
bias-disable;
};
pinctrl_pwm0_pwm_h3: pwm0_pwm_h3 {
pinmux = <PIN_PB7__PWMH3>;
bias-disable;
};
};
pinctrl_adc {
pinctrl_adc2: adc2 {
pinmux = <PIN_PD21__GPIO>;
bias-disable;
};
pinctrl_adc3: adc3 {
pinmux = <PIN_PD22__GPIO>;
bias-disable;
};
pinctrl_adc4: adc4 {
pinmux = <PIN_PD23__GPIO>;
bias-disable;
};
pinctrl_adc5: adc5 {
pinmux = <PIN_PD24__GPIO>;
bias-disable;
};
};
};
&uart0 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_usart_0>;
atmel,use-dma-rx;
atmel,use-dma-tx;
status = "disabled";
};
/* debug uart */
&uart1 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_usart_1>;
atmel,use-dma-rx;
atmel,use-dma-tx;
status = "disabled";
};
&uart2 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_usart_2>;
atmel,use-dma-rx;
atmel,use-dma-tx;
status = "disabled";
};
&uart3 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_usart_3>;
atmel,use-dma-rx;
atmel,use-dma-tx;
status = "disabled";
};
&uart4 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_usart_4>;
atmel,use-dma-rx;
atmel,use-dma-tx;
status = "disabled";
};
&flx0 {
atmel,flexcom-mode = <ATMEL_FLEXCOM_MODE_USART>;
status = "disabled";
uart5: serial@200 {
compatible = "atmel,at91sam9260-usart";
reg = <0x200 0x400>;
interrupts = <19 IRQ_TYPE_LEVEL_HIGH 7>;
dmas = <&dma0
(AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1)
| AT91_XDMAC_DT_PERID(11))>,
<&dma0
(AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1)
| AT91_XDMAC_DT_PERID(12))>;
dma-names = "tx", "rx";
clocks = <&pmc PMC_TYPE_PERIPHERAL 19>;
clock-names = "usart";
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_flx0_default>;
atmel,fifo-size = <32>;
atmel,use-dma-rx;
atmel,use-dma-tx;
status = "disabled";
};
};
&flx3 {
atmel,flexcom-mode = <ATMEL_FLEXCOM_MODE_USART>;
status = "disabled";
uart6: serial@200 {
compatible = "atmel,at91sam9260-usart";
reg = <0x200 0x400>;
interrupts = <22 IRQ_TYPE_LEVEL_HIGH 7>;
dmas = <&dma0
(AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1)
| AT91_XDMAC_DT_PERID(17))>,
<&dma0
(AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1)
| AT91_XDMAC_DT_PERID(18))>;
dma-names = "tx", "rx";
clocks = <&pmc PMC_TYPE_PERIPHERAL 22>;
clock-names = "usart";
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_flx3_default>;
atmel,fifo-size = <32>;
atmel,use-dma-rx;
atmel,use-dma-tx;
status = "disabled";
};
};
&flx4 {
atmel,flexcom-mode = <ATMEL_FLEXCOM_MODE_TWI>;
status = "disabled";
i2c2: i2c@600 {
compatible = "atmel,sama5d2-i2c";
reg = <0x600 0x200>;
interrupts = <23 IRQ_TYPE_LEVEL_HIGH 7>;
dmas = <&dma0
(AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1)
| AT91_XDMAC_DT_PERID(19))>,
<&dma0
(AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1)
| AT91_XDMAC_DT_PERID(20))>;
dma-names = "tx", "rx";
#address-cells = <1>;
#size-cells = <0>;
clocks = <&pmc PMC_TYPE_PERIPHERAL 23>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_flx4_default>;
atmel,fifo-size = <16>;
status = "disabled";
};
};
&pwm0 {
status = "okay";
};
&shutdown_controller {
atmel,shdwc-debouncer = <976>;
atmel,wakeup-rtc-timer;
input@0 {
reg = <0>;
atmel,wakeup-type = "low";
};
};
&watchdog {
status = "okay";
};
&adc {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_adc2
&pinctrl_adc3
&pinctrl_adc4
&pinctrl_adc5>;
vddana-supply = <&vdd_adc_vddana>;
vref-supply = <&vdd_adc_vref>;
status = "disabled";
};
&securam {
export;
/* export overkiz u-boot mode/version and factory */
uboot@1400 {
reg = <0x1400 0x20>;
export;
};
};