// SPDX-License-Identifier: GPL-2.0
/*
* at91-kizbox3-hs.dts - Device Tree file for Overkiz KIZBOX3-HS board
*
* Copyright (C) 2018 Overkiz SAS
*
* Authors: Dorian Rocipon <[email protected]>
* Kevin Carli <[email protected]>
* Mickael Gardet <[email protected]>
*/
/dts-v1/;
#include "at91-kizbox3_common.dtsi"
/ {
model = "Overkiz KIZBOX3-HS";
compatible = "overkiz,kizbox3-hs", "atmel,sama5d2", "atmel,sama5";
led-controller-1 {
status = "okay";
led-1 {
status = "okay";
};
led-2 {
status = "okay";
};
led-3 {
status = "okay";
};
led-4 {
status = "okay";
};
};
led-controller-2 {
compatible = "gpio-leds";
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_led_red
&pinctrl_led_white>;
status = "okay";
led-5 {
label = "pio:red:user";
gpios = <&pioA PIN_PB1 GPIO_ACTIVE_HIGH>;
default-state = "off";
};
led-6 {
label = "pio:white:user";
gpios = <&pioA PIN_PB8 GPIO_ACTIVE_HIGH>;
default-state = "off";
};
};
gpio-keys {
compatible = "gpio-keys";
pinctrl-names = "default" , "default", "default",
"default", "default" ;
pinctrl-0 = <&pinctrl_key_gpio_default>;
pinctrl-1 = <&pinctrl_pio_rf &pinctrl_pio_wifi>;
pinctrl-2 = <&pinctrl_pio_io_boot
&pinctrl_pio_io_reset
&pinctrl_pio_io_test_radio>;
pinctrl-3 = <&pinctrl_pio_zbe_test_radio
&pinctrl_pio_zbe_rst>;
pinctrl-4 = <&pinctrl_pio_input>;
switch-1 {
label = "SW1";
gpios = <&pioA PIN_PA29 GPIO_ACTIVE_LOW>;
linux,code = <0x101>;
wakeup-source;
};
switch-2 {
label = "SW2";
gpios = <&pioA PIN_PA18 GPIO_ACTIVE_LOW>;
linux,code = <0x102>;
wakeup-source;
};
switch-3 {
label = "SW3";
gpios = <&pioA PIN_PA22 GPIO_ACTIVE_LOW>;
linux,code = <0x103>;
wakeup-source;
};
switch-7 {
label = "SW7";
gpios = <&pioA PIN_PA26 GPIO_ACTIVE_LOW>;
linux,code = <0x107>;
wakeup-source;
};
switch-8 {
label = "SW8";
gpios = <&pioA PIN_PA24 GPIO_ACTIVE_LOW>;
linux,code = <0x108>;
wakeup-source;
};
};
gpios {
compatible = "gpio";
status = "okay";
rf_on {
label = "rf on";
gpio = <&pioA PIN_PC19 GPIO_ACTIVE_HIGH>;
output;
init-low;
};
wifi_on {
label = "wifi on";
gpio = <&pioA PIN_PC20 GPIO_ACTIVE_HIGH>;
output;
init-low;
};
zbe_test_radio {
label = "zbe test radio";
gpio = <&pioA PIN_PB21 GPIO_ACTIVE_HIGH>;
output;
init-low;
};
zbe_rst {
label = "zbe rst";
gpio = <&pioA PIN_PB25 GPIO_ACTIVE_HIGH>;
output;
init-low;
};
io_reset {
label = "io reset";
gpio = <&pioA PIN_PB30 GPIO_ACTIVE_HIGH>;
output;
init-low;
};
io_test_radio {
label = "io test radio";
gpio = <&pioA PIN_PC9 GPIO_ACTIVE_HIGH>;
output;
init-low;
};
io_boot_0 {
label = "io boot 0";
gpio = <&pioA PIN_PC11 GPIO_ACTIVE_HIGH>;
output;
init-low;
};
io_boot_1 {
label = "io boot 1";
gpio = <&pioA PIN_PC17 GPIO_ACTIVE_HIGH>;
output;
init-low;
};
verbose_bootloader {
label = "verbose bootloader";
gpio = <&pioA PIN_PB11 GPIO_ACTIVE_HIGH>;
input;
};
nail_bed_detection {
label = "nail bed detection";
gpio = <&pioA PIN_PB12 GPIO_ACTIVE_HIGH>;
input;
};
id_usba {
label = "id usba";
gpio = <&pioA PIN_PC0 GPIO_ACTIVE_LOW>;
input;
};
};
};
&pioA {
pinctrl_key_gpio_default: key_gpio_default {
pinmux = <PIN_PA22__GPIO>,
<PIN_PA24__GPIO>,
<PIN_PA26__GPIO>,
<PIN_PA29__GPIO>,
<PIN_PA18__GPIO>;
bias-disable;
};
pinctrl_gpio {
pinctrl_pio_rf: gpio_rf {
pinmux = <PIN_PC19__GPIO>;
bias-disable;
};
pinctrl_pio_wifi: gpio_wifi {
pinmux = <PIN_PC20__GPIO>;
bias-disable;
};
pinctrl_pio_io_boot: gpio_io_boot {
pinmux =
<PIN_PC11__GPIO>,
<PIN_PC17__GPIO>;
bias-disable;
};
pinctrl_pio_io_test_radio: gpio_io_test_radio {
pinmux = <PIN_PC9__GPIO>;
bias-disable;
};
pinctrl_pio_zbe_test_radio: gpio_zbe_test_radio {
pinmux = <PIN_PB21__GPIO>;
bias-disable;
};
pinctrl_pio_zbe_rst: gpio_zbe_rst {
pinmux = <PIN_PB25__GPIO>;
bias-disable;
};
/* stm32 reset must be open drain (internal pull up) */
pinctrl_pio_io_reset: gpio_io_reset {
pinmux = <PIN_PB30__GPIO>;
bias-disable;
drive-open-drain;
output-low;
};
pinctrl_pio_input: gpio_input {
pinmux =
<PIN_PB11__GPIO>,
<PIN_PB12__GPIO>,
<PIN_PC0__GPIO>;
bias-disable;
};
};
pinctrl_leds {
pinctrl_led_red: led_red {
pinmux = <PIN_PB1__GPIO>;
bias-disable;
};
pinctrl_led_white: led_white {
pinmux = <PIN_PB8__GPIO>;
bias-disable;
};
};
};
&adc {
status = "okay";
};
&uart0 {
status = "okay";
};
&uart1 {
status = "okay";
};
&uart2 {
status = "okay";
};
&uart3 {
status = "okay";
};
&uart4 {
status = "okay";
};
&flx0 {
status = "okay";
uart5: serial@200 {
status = "okay";
};
};
&flx3 {
status = "okay";
uart8: serial@200 {
status = "okay";
};
};
&flx4 {
status = "okay";
i2c6: i2c@600 {
status = "okay";
};
};
&usb0 {
status = "okay";
};
&usb1 {
status = "okay";
};
&usb2 {
status = "okay";
};