// SPDX-License-Identifier: GPL-2.0-or-later /* * at91-me20.dts - Device Tree file for the Axentia ME20 1.0 board * * Copyright (C) 2022 Axentia Technologies AB * * Author: Peter Rosin */ /dts-v1/; #include "at91-linea.dtsi" #include #include / { model = "Axentia ME20 1.0"; compatible = "axentia,me20", "axentia,linea", "atmel,sama5d31", "atmel,sama5d3", "atmel,sama5"; phyxtal: oscillator { compatible = "fixed-clock"; #clock-cells = <0>; clock-frequency = <25000000>; clock-output-names = "phyxtal"; }; phyclk: clock { compatible = "fixed-factor-clock"; clocks = <&phyxtal>; #clock-cells = <0>; clock-div = <1>; clock-mult = <2>; clock-output-names = "phyclk"; }; reg_5v: att-regulator { compatible = "regulator-fixed"; regulator-name = "5v-supply"; regulator-min-microvolt = <30000000>; regulator-max-microvolt = <30000000>; }; reg_30v: tune-regulator { compatible = "regulator-fixed"; regulator-name = "30v-supply"; regulator-min-microvolt = <30000000>; regulator-max-microvolt = <30000000>; }; keys { compatible = "gpio-keys"; pinctrl-0 = <&pinctrl_keys>; pinctrl-names = "default"; back { label = "BACK"; gpios = <&pioA 5 GPIO_ACTIVE_LOW>; linux,code = ; }; sel { label = "SEL"; gpios = <&pioA 6 GPIO_ACTIVE_LOW>; linux,code = ; }; up { label = "UP"; gpios = <&pioA 7 GPIO_ACTIVE_LOW>; linux,code = ; }; down { label = "DOWN"; gpios = <&pioA 8 GPIO_ACTIVE_LOW>; linux,code = ; }; }; }; &pinctrl { me20 { pinctrl_keys: keys { atmel,pins = ; }; pinctrl_usba_vbus: usba-vbus { atmel,pins = ; }; }; }; &nand { partitions { compatible = "fixed-partitions"; #address-cells = <1>; #size-cells = <1>; at91bootstrap@0 { label = "at91bootstrap"; reg = <0x0 0x40000>; }; barebox@40000 { label = "bootloader"; reg = <0x40000 0x60000>; }; bareboxenv@c0000 { label = "bareboxenv"; reg = <0xc0000 0x40000>; }; bareboxenv2@100000 { label = "bareboxenv2"; reg = <0x100000 0x40000>; }; oftree@180000 { label = "oftree"; reg = <0x180000 0x20000>; }; kernel@200000 { label = "kernel"; reg = <0x200000 0x500000>; }; rootfs@800000 { label = "rootfs"; reg = <0x800000 0x0f800000>; }; ovlfs@10000000 { label = "ovlfs"; reg = <0x10000000 0x10000000>; }; }; }; &i2c2 { status = "okay"; tune-b@c { /* ti,dac121c081 */ /* Clobbered by address 0x46. */ /* Broadcast address 0x48. */ compatible = "ti,dac7571"; reg = <0xc>; vref-supply = <®_30v>; label = "tune-b"; }; tune-a@d { /* Clobbered by address 0x46. */ /* Broadcast address 0x48. */ compatible = "ti,dac7571"; reg = <0xd>; vref-supply = <®_30v>; label = "tune-a"; }; att@e { /* Clobbered by address 0x47. */ /* Broadcast address 0x48. */ compatible = "ti,dac7571"; reg = <0xe>; vref-supply = <®_5v>; label = "att"; }; gpio-a@38 { compatible = "nxp,pca9554"; reg = <0x38>; gpio-controller; #gpio-cells = <2>; gpio-line-names = "AF1", "AF2", "AF3", "AF4", "HP", "PASS", "HP2", "/AMPA"; }; gpio-b@39 { compatible = "nxp,pca9554"; reg = <0x39>; gpio-controller; #gpio-cells = <2>; gpio-line-names = "BF1", "BF2", "BF3", "BF4", "", "", "", "/AMPB"; }; oled@3c { compatible = "solomon,ssd1311"; reg = <0x3c>; reset-gpios = <&pioD 29 GPIO_ACTIVE_LOW>; solomon,opr-gpios = <&pioD 26 GPIO_ACTIVE_HIGH &pioD 28 GPIO_ACTIVE_HIGH>; }; temp@4a { compatible = "atmel,at30ts74", "dallas,ds7505"; reg = <0x4a>; }; eeprom@50 { compatible = "st,24c64", "atmel,24c64"; reg = <0x50>; pagesize = <32>; wp-gpios = <&pioA 3 GPIO_ACTIVE_HIGH>; }; tusb320@60 { compatible = "ti,tusb320"; reg = <0x60>; interrupt-parent = <&pioA>; interrupts = <9 IRQ_TYPE_LEVEL_LOW>; }; }; &watchdog { status = "okay"; }; /* GNSS, ttyS1 */ &usart0 { status = "okay"; atmel,use-dma-rx; }; /* RS232 port, ttyS2 */ &usart1 { status = "okay"; pinctrl-0 = <&pinctrl_usart1 &pinctrl_usart1_rts_cts>; atmel,use-dma-rx; }; &macb1 { status = "okay"; phy-mode = "rmii"; #address-cells = <1>; #size-cells = <0>; phy0: ethernet-phy@1 { reg = <1>; clocks = <&phyclk>; reset-gpios = <&pioC 17 GPIO_ACTIVE_LOW>; reset-assert-us = <100>; smsc,disable-energy-detect; }; }; &usb0 { /* gadget */ status = "okay"; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_usba_vbus>; atmel,vbus-gpio = <&pioD 30 GPIO_ACTIVE_HIGH>; }; &usb1 { /* ohci */ status = "okay"; num-ports = <2>; }; &usb2 { /* ehci */ status = "okay"; }; /* ttyS0 */ &dbgu { status = "okay"; dmas = <0>, <0>; /* Do not use DMA for dbgu */ }; &pioA { gpio-line-names = /* 0 */ "232-PS", "232-MODE", "UB-RST", "E2-WP", /* 4 */ "GPSO/O", "B-BACK", "B-SEL", "B-UP", /* 8 */ "B-DOWN", "/UC-INT", "", "", /* 12 */ "", "", "", "", /* 16 */ "", "", "SDA", "SCL", /* 20 */ "", "ALE", "CLE", "", /* 24 */ "", "", "", "", /* 28 */ "", "", "LINSDA", "LINSCL"; }; &pioB { gpio-line-names = /* 0 */ "", "", "", "", /* 4 */ "", "", "", "", /* 8 */ "", "", "", "", /* 12 */ "", "", "", "", /* 16 */ "", "", "", "", /* 20 */ "", "", "", "", /* 24 */ "", "", "CTS-232", "RTS-232", /* 28 */ "RX-232", "TX-232", "LINBRX", "LINBTX"; }; &pioC { gpio-line-names = /* 0 */ "ETX0", "ETX1", "ERX0", "ERX1", /* 4 */ "ETXEN", "ECRSDV", "ERXER", "EREFCK", /* 8 */ "EMDC", "EMDIO", "", "", /* 12 */ "", "", "", "", /* 16 */ "CGB-PDB", "/ETH-RST", "CGA-PDB", "1PPS", /* 20 */ "", "", "", "", /* 24 */ "", "", "", "", /* 28 */ "", "", "", ""; }; &pioD { gpio-line-names = /* 0 */ "", "", "", "", /* 4 */ "", "", "", "RFB-SIG>", /* 8 */ "", "RFB-SIG<", "", "RFA-SIG>", /* 12 */ "", "RFA-SIG<", "", "", /* 16 */ "", "GNSS-TX", "GNSS-RX", "", /* 20 */ "VREFEN", "", "", "", /* 24 */ "", "", "D-OPR0", "", /* 28 */ "D-OPR1", "/D-RES", "UC-ID", ""; }; &pioE { gpio-line-names = /* 0 */ "", "", "", "", /* 4 */ "", "", "", "", /* 8 */ "", "", "", "", /* 12 */ "", "", "", "", /* 16 */ "", "", "", "", /* 20 */ "", "", "", "", /* 24 */ "", "", "", "", /* 28 */ "", "", "", ""; };