summaryrefslogtreecommitdiff
path: root/recipes-kernel/linux/linux-at91-5.4.81/mts-dts/mtcap.dts
diff options
context:
space:
mode:
authorMykyta Dorokhin <mykyta.dorokhin@globallogic.com>2021-01-21 14:55:39 +0200
committerMykyta Dorokhin <mykyta.dorokhin@globallogic.com>2021-01-21 14:55:39 +0200
commit1eeedd2707b37ddb3c4c5d58cd1137b20ca13c26 (patch)
treed68df662ab2120d0570a61f6d20033f89b8a79c3 /recipes-kernel/linux/linux-at91-5.4.81/mts-dts/mtcap.dts
parentf9f63860b055944d4f2789e5ad364813f4e9581e (diff)
downloadmeta-multitech-atmel-1eeedd2707b37ddb3c4c5d58cd1137b20ca13c26.tar.gz
meta-multitech-atmel-1eeedd2707b37ddb3c4c5d58cd1137b20ca13c26.tar.bz2
meta-multitech-atmel-1eeedd2707b37ddb3c4c5d58cd1137b20ca13c26.zip
linux 5.4: apply mtcap DTS changes
Diffstat (limited to 'recipes-kernel/linux/linux-at91-5.4.81/mts-dts/mtcap.dts')
-rw-r--r--recipes-kernel/linux/linux-at91-5.4.81/mts-dts/mtcap.dts317
1 files changed, 177 insertions, 140 deletions
diff --git a/recipes-kernel/linux/linux-at91-5.4.81/mts-dts/mtcap.dts b/recipes-kernel/linux/linux-at91-5.4.81/mts-dts/mtcap.dts
index 6a1ba37..3f8e6ce 100644
--- a/recipes-kernel/linux/linux-at91-5.4.81/mts-dts/mtcap.dts
+++ b/recipes-kernel/linux/linux-at91-5.4.81/mts-dts/mtcap.dts
@@ -20,7 +20,7 @@
/ {
#address-cells = <1>;
#size-cells = <1>;
- model = "Atmel AT91SAM9X5-EK";
+ model = "Multi-Tech Systems MTCAP";
compatible = "atmel,at91sam9x5ek", "atmel,at91sam9x5", "atmel,at91sam9";
interrupt-parent = <&aic>;
@@ -35,15 +35,12 @@
gpio3 = &pioD;
tcb0 = &tcb0;
tcb1 = &tcb1;
- i2c0 = &i2c0;
- i2c1 = &i2c1;
- i2c2 = &i2c2;
ssc0 = &ssc0;
pwm0 = &pwm0;
};
chosen {
- bootargs = "root=/dev/mtdblock1 rw rootfstype=ubifs ubi.mtd=1 root=ubi0:rootfs";
+ bootargs = "mem=256M console=ttyS0,115200 root=/dev/mtdblock8 ro rootfstype=jffs2";
stdout-path = "serial0:115200n8";
};
@@ -87,21 +84,6 @@
reg = <0x00300000 0x8000>;
};
- sound {
- compatible = "atmel,sam9x5-wm8731-audio";
-
- atmel,model = "wm8731 @ AT91SAM9X5EK";
-
- atmel,audio-routing =
- "Headphone Jack", "RHPOUT",
- "Headphone Jack", "LHPOUT",
- "LLINEIN", "Line In Jack",
- "RLINEIN", "Line In Jack";
-
- atmel,ssc-controller = <&ssc0>;
- atmel,audio-codec = <&wm8731>;
- };
-
ahb {
compatible = "simple-bus";
#address-cells = <1>;
@@ -329,32 +311,25 @@
ebi {
pinctrl_ebi_data_0_7: ebi-data-lsb-0 {
atmel,pins =
- <AT91_PIOD 6 AT91_PERIPH_A AT91_PINCTRL_NONE
- AT91_PIOD 7 AT91_PERIPH_A AT91_PINCTRL_NONE
- AT91_PIOD 8 AT91_PERIPH_A AT91_PINCTRL_NONE
- AT91_PIOD 9 AT91_PERIPH_A AT91_PINCTRL_NONE
- AT91_PIOD 10 AT91_PERIPH_A AT91_PINCTRL_NONE
- AT91_PIOD 11 AT91_PERIPH_A AT91_PINCTRL_NONE
- AT91_PIOD 12 AT91_PERIPH_A AT91_PINCTRL_NONE
- AT91_PIOD 13 AT91_PERIPH_A AT91_PINCTRL_NONE>;
+ <AT91_PIOD 6 AT91_PERIPH_A AT91_PINCTRL_PULL_UP
+ AT91_PIOD 7 AT91_PERIPH_A AT91_PINCTRL_PULL_UP
+ AT91_PIOD 8 AT91_PERIPH_A AT91_PINCTRL_PULL_UP
+ AT91_PIOD 9 AT91_PERIPH_A AT91_PINCTRL_PULL_UP
+ AT91_PIOD 10 AT91_PERIPH_A AT91_PINCTRL_PULL_UP
+ AT91_PIOD 11 AT91_PERIPH_A AT91_PINCTRL_PULL_UP
+ AT91_PIOD 12 AT91_PERIPH_A AT91_PINCTRL_PULL_UP
+ AT91_PIOD 13 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;
};
- pinctrl_ebi_data_8_15: ebi-data-msb-0 {
+ pinctrl_ebi_addr_nand: ebi-addr-0 {
atmel,pins =
- <AT91_PIOD 14 AT91_PERIPH_A AT91_PINCTRL_NONE
- AT91_PIOD 15 AT91_PERIPH_A AT91_PINCTRL_NONE
- AT91_PIOD 16 AT91_PERIPH_A AT91_PINCTRL_NONE
- AT91_PIOD 17 AT91_PERIPH_A AT91_PINCTRL_NONE
- AT91_PIOD 18 AT91_PERIPH_A AT91_PINCTRL_NONE
- AT91_PIOD 19 AT91_PERIPH_A AT91_PINCTRL_NONE
- AT91_PIOD 20 AT91_PERIPH_A AT91_PINCTRL_NONE
- AT91_PIOD 21 AT91_PERIPH_A AT91_PINCTRL_NONE>;
+ <AT91_PIOD 2 AT91_PERIPH_A AT91_PINCTRL_PULL_UP
+ AT91_PIOD 3 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;
};
- pinctrl_ebi_addr_nand: ebi-addr-0 {
+ pinctrl_ebi_led_cd: led-cd-0 {
atmel,pins =
- <AT91_PIOD 2 AT91_PERIPH_A AT91_PINCTRL_NONE
- AT91_PIOD 3 AT91_PERIPH_A AT91_PINCTRL_NONE>;
+ <AT91_PIOC 16 AT91_PERIPH_GPIO AT91_PINCTRL_MULTI_DRIVE>; /* PC16 LED-CD (modem normally controls) */
};
};
@@ -469,13 +444,13 @@
nand {
pinctrl_nand_oe_we: nand-oe-we-0 {
atmel,pins =
- <AT91_PIOD 0 AT91_PERIPH_A AT91_PINCTRL_NONE
- AT91_PIOD 1 AT91_PERIPH_A AT91_PINCTRL_NONE>;
+ <AT91_PIOD 0 AT91_PERIPH_A AT91_PINCTRL_PULL_UP
+ AT91_PIOD 1 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;
};
pinctrl_nand_rb: nand-rb-0 {
atmel,pins =
- <AT91_PIOD 5 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP>;
+ <AT91_PIOC 31 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP>;
};
pinctrl_nand_cs: nand-cs-0 {
@@ -484,6 +459,35 @@
};
};
+ /*
+ * Pin D21 will be left floating when the power goes off on the radio.
+ * We need to pull it down to ensure it is low during radio power-off.
+ * pinctrl is loaded during the call to platform_device_register() in mts-io.
+ * If we need to customize this for various hardware revisions, these can
+ * be loaded as overlays prior to loading the mts-io module, overwriting the
+ * atmel,pins section.
+ */
+ mts_io {
+ pinctrl_mts_io: mts_io-0 {
+ atmel,pins =
+ <AT91_PIOA 21 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP /* PA21 GPIO pull-up radio-power */
+ AT91_PIOA 22 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP /* PA22 GPIO pull-up radio-reset */
+ AT91_PIOD 21 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_DOWN>; /* PD21 GPIO pull-down radio-monitor */
+ output-high;
+ };
+ pinctrl_mts_io_in: mts_io-1 {
+ atmel,pins =
+ <AT91_PIOD 19 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP>; /* PD19 GNSS Int */
+ };
+ pinctrl_mts_io_gnss: mts_io-2 {
+ atmel,pins =
+ <AT91_PIOA 8 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP /* PA8 LORA_RESET */
+ AT91_PIOC 16 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP /* PC16 ETH_NRST */
+ AT91_PIOD 15 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP>; /* PD15 N_GNSS_RESET */
+ output-low;
+ };
+ };
+
mmc0 {
pinctrl_mmc0_slot0_clk_cmd_dat0: mmc0_slot0_clk_cmd_dat0-0 {
atmel,pins =
@@ -813,7 +817,9 @@
pinctrl-0 = <&pinctrl_macb0_rmii>;
clocks = <&pmc PMC_TYPE_PERIPHERAL 24>, <&pmc PMC_TYPE_PERIPHERAL 24>;
clock-names = "hclk", "pclk";
- status = "disabled";
+
+ phy-mode = "rmii";
+ status = "okay";
};
ssc0: ssc@f0010000 {
@@ -828,7 +834,7 @@
clocks = <&pmc PMC_TYPE_PERIPHERAL 28>;
clock-names = "pclk";
- status = "okay";
+ status = "disabled";
};
mmc0: mmc@f0008000 {
@@ -847,7 +853,7 @@
&pinctrl_board_mmc0
&pinctrl_mmc0_slot0_clk_cmd_dat0
&pinctrl_mmc0_slot0_dat1_3>;
- status = "okay";
+ status = "disabled";
slot@0 {
reg = <0>;
@@ -873,7 +879,7 @@
&pinctrl_board_mmc1
&pinctrl_mmc1_slot0_clk_cmd_dat0
&pinctrl_mmc1_slot0_dat1_3>;
- status = "okay";
+ status = "disabled";
slot@0 {
reg = <0>;
@@ -895,6 +901,8 @@
clock-names = "usart";
status = "okay";
+ atmel,use-dma-rx;
+ atmel,use-dma-tx;
};
usart0: serial@f801c000 {
@@ -911,7 +919,7 @@
atmel,use-dma-rx;
atmel,use-dma-tx;
- status = "okay";
+ status = "disabled";
};
usart1: serial@f8020000 {
@@ -956,55 +964,7 @@
status = "disabled";
};
- i2c0: i2c@f8010000 {
- compatible = "atmel,at91sam9x5-i2c";
- reg = <0xf8010000 0x100>;
- interrupts = <9 IRQ_TYPE_LEVEL_HIGH 6>;
- dmas = <&dma0 1 AT91_DMA_CFG_PER_ID(7)>,
- <&dma0 1 AT91_DMA_CFG_PER_ID(8)>;
- dma-names = "tx", "rx";
- #address-cells = <1>;
- #size-cells = <0>;
- pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_i2c0>;
- clocks = <&pmc PMC_TYPE_PERIPHERAL 9>;
- status = "okay";
- wm8731: wm8731@1a {
- compatible = "wm8731";
- reg = <0x1a>;
- };
- };
-
- i2c1: i2c@f8014000 {
- compatible = "atmel,at91sam9x5-i2c";
- reg = <0xf8014000 0x100>;
- interrupts = <10 IRQ_TYPE_LEVEL_HIGH 6>;
- dmas = <&dma1 1 AT91_DMA_CFG_PER_ID(5)>,
- <&dma1 1 AT91_DMA_CFG_PER_ID(6)>;
- dma-names = "tx", "rx";
- #address-cells = <1>;
- #size-cells = <0>;
- pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_i2c1>;
- clocks = <&pmc PMC_TYPE_PERIPHERAL 10>;
- status = "disabled";
- };
-
- i2c2: i2c@f8018000 {
- compatible = "atmel,at91sam9x5-i2c";
- reg = <0xf8018000 0x100>;
- interrupts = <11 IRQ_TYPE_LEVEL_HIGH 6>;
- dmas = <&dma0 1 AT91_DMA_CFG_PER_ID(9)>,
- <&dma0 1 AT91_DMA_CFG_PER_ID(10)>;
- dma-names = "tx", "rx";
- #address-cells = <1>;
- #size-cells = <0>;
- pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_i2c2>;
- clocks = <&pmc PMC_TYPE_PERIPHERAL 11>;
- status = "disabled";
- };
-
+ /* uart0 is GNSS on MTCDTIP2, enabled by overlay */
uart0: serial@f8040000 {
compatible = "atmel,at91sam9260-usart";
reg = <0xf8040000 0x200>;
@@ -1013,7 +973,22 @@
pinctrl-0 = <&pinctrl_uart0>;
clocks = <&pmc PMC_TYPE_PERIPHERAL 15>;
clock-names = "usart";
+
status = "disabled";
+ atmel,use-dma-rx;
+ atmel,use-dma-tx;
+ /* Table 30-1 of the SAM9G25 datasheet specifies the dma channel numbers
+ * for TWI0 (I2C). Note that a channel number is a slot in a table
+ * in the kernel when printed in the kernel log. It has nothing to do
+ * with the channel numbers specified here which correspond to the
+ * SAM9G25 datasheet.
+ * In atmel-dma.txt kernel documentation the SAM9G25 channel number
+ * is referred to as:
+ * peripheral identifier for the hardware handshaking interface
+ */
+ dmas = <&dma0 1 AT91_DMA_CFG_PER_ID(11)>,
+ <&dma0 1 (AT91_DMA_CFG_PER_ID(12) | AT91_DMA_CFG_FIFOCFG_ASAP)>;
+ dma-names = "tx", "rx";
};
uart1: serial@f8044000 {
@@ -1047,7 +1022,7 @@
atmel,adc-ts-wires = <4>;
atmel,adc-ts-pressure-threshold = <10000>;
- status = "okay";
+ status = "disabled";
trigger0 {
trigger-name = "external-rising";
@@ -1087,14 +1062,20 @@
clocks = <&pmc PMC_TYPE_PERIPHERAL 13>;
clock-names = "spi_clk";
- cs-gpios = <&pioA 14 0>, <0>, <0>, <0>;
- status = "disabled"; /* conflicts with mmc1 */
- m25p80@0 {
- compatible = "atmel,at25df321a";
- spi-max-frequency = <50000000>;
+ status = "okay";
+ cs-gpios = <&pioA 14 0>, <&pioA 1 0>, <0>, <0>;
+
+ lora-spi@0 {
+ compatible = "mts,mtac";
+ spi-max-frequency = <2000000>;
reg = <0>;
};
+ lora-spi@1 {
+ compatible = "mts,mtac";
+ spi-max-frequency = <2000000>;
+ reg = <1>;
+ };
};
spi1: spi@f0004000 {
@@ -1123,10 +1104,9 @@
clocks = <&pmc PMC_TYPE_CORE PMC_UTMI>, <&pmc PMC_TYPE_PERIPHERAL 23>;
clock-names = "hclk", "pclk";
-
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_board_usb2>;
- atmel,vbus-gpio = <&pioB 16 GPIO_ACTIVE_HIGH>;
+ /* atmel,vbus-gpio = <&pioB 16 GPIO_ACTIVE_HIGH>; mtcdt: no vbus-gpio */
status = "okay";
ep@0 {
@@ -1191,7 +1171,6 @@
atmel,reset-type = "all";
atmel,dbg-halt;
-
status = "okay";
};
@@ -1221,10 +1200,11 @@
clock-names = "ohci_clk", "hclk", "uhpck";
num-ports = <3>;
- atmel,vbus-gpio = <0 /* &pioD 18 GPIO_ACTIVE_LOW *//* Activate to have access to port A */
- &pioD 19 GPIO_ACTIVE_LOW
- &pioD 20 GPIO_ACTIVE_LOW
- >;
+ //mtcdt: no vbus-gpio
+ //atmel,vbus-gpio = <0 /* &pioD 18 GPIO_ACTIVE_LOW *//* Activate to have access to port A */
+ // &pioD 19 GPIO_ACTIVE_LOW
+ // &pioD 20 GPIO_ACTIVE_LOW
+ // >;
status = "okay";
};
@@ -1235,7 +1215,6 @@
clocks = <&pmc PMC_TYPE_CORE PMC_UTMI>, <&pmc PMC_TYPE_PERIPHERAL 22>;
clock-names = "usb_clk", "ehci_clk";
-
status = "okay";
};
@@ -1275,13 +1254,13 @@
nand@3 {
reg = <0x3 0x0 0x800000>;
- rb-gpios = <&pioD 5 GPIO_ACTIVE_HIGH>;
+ rb-gpios = <&pioC 31 GPIO_ACTIVE_HIGH>;
cs-gpios = <&pioD 4 GPIO_ACTIVE_HIGH>;
nand-bus-width = <8>;
nand-ecc-mode = "hw";
- nand-ecc-strength = <2>;
+ nand-ecc-strength = <4>;
nand-ecc-step-size = <512>;
- nand-on-flash-bbt;
+ /* nand-on-flash-bbt; */
label = "atmel_nand";
partitions {
@@ -1289,39 +1268,54 @@
#address-cells = <1>;
#size-cells = <1>;
+ nand@0 {
+ label = "NANDFlash";
+ reg = <0x0 0x10000000>;
+ };
+
at91bootstrap@0 {
label = "at91bootstrap";
reg = <0x0 0x40000>;
};
uboot@40000 {
- label = "u-boot";
- reg = <0x40000 0xc0000>;
+ label = "u-Boot";
+ reg = <0x40000 0x80000>;
};
-
- ubootenvred@100000 {
- label = "U-Boot Env Redundant";
- reg = <0x100000 0x40000>;
+
+ ubootconfig0@c0000 {
+ label = "u-Boot Config";
+ reg = <0xc0000 0xa0000>;
+ };
+
+ ubootconfig1@160000 {
+ label = "u-Boot Redundant Config";
+ reg = <0x160000 0xa0000>;
+ };
+
+ uImage@200000 {
+ label = "uImage";
+ reg = <0x200000 0x600000>;
};
- ubootenv@140000 {
- label = "U-Boot Env";
- reg = <0x140000 0x40000>;
+ config0@800000 {
+ label = "Config";
+ reg = <0x800000 0x800000>;
};
- dtb@180000 {
- label = "device tree";
- reg = <0x180000 0x80000>;
+ config1@1000000 {
+ label = "OEM Config";
+ reg = <0x1000000 0x800000>;
};
- kernel@200000 {
- label = "kernel";
- reg = <0x200000 0x600000>;
+ rootfs@1800000 {
+ label = "Rootfs";
+ reg = <0x1800000 0x8000000>;
};
- rootfs@800000 {
- label = "rootfs";
- reg = <0x800000 0x0f800000>;
+ user@9800000 {
+ label = "User data";
+ reg = <0x9800000 0x6800000>;
};
};
};
@@ -1374,18 +1368,32 @@
status = "disabled";
};
+ mts-io-0 {
+ status = "okay";
+ compatible = "mts,mts-io";
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_mts_io>;
+ };
+
leds {
compatible = "gpio-leds";
- pb18 {
- label = "pb18";
- gpios = <&pioB 18 GPIO_ACTIVE_LOW>;
- linux,default-trigger = "heartbeat";
+ pc25 {
+ label = "led-status";
+ gpios = <&pioC 25 GPIO_ACTIVE_HIGH>;
+ linux,default-trigger = "default-on";
};
-
- pd21 {
- label = "pd21";
- gpios = <&pioD 21 GPIO_ACTIVE_HIGH>;
+ pc15 {
+ label = "led-lora";
+ gpios = <&pioC 15 GPIO_ACTIVE_LOW>;
+ };
+ pc16 {
+ label = "led-cd";
+ gpios = <&pioC 16 GPIO_ACTIVE_LOW>;
+ };
+ pc20 {
+ label = "led-wifi";
+ gpios = <&pioC 20 GPIO_ACTIVE_LOW>;
};
};
@@ -1397,4 +1405,33 @@
pinctrl-0 = <&pinctrl_1wire_cm>;
status = "okay";
};
+
+ /* GPS-PPS input on MTCDTIP2 - enabled by overlay*/
+ pps-0 {
+ compatible = "pps-gpio";
+ gpios = <&pioC 10 0>;
+ capture-clear;
+ status = "disabled";
+ };
+
+ i2c0: i2c@f8010000 {
+ compatible = "atmel,at91sam9x5-i2c";
+ reg = <0xf8010000 0x100>;
+ interrupts = <9 IRQ_TYPE_LEVEL_HIGH 6>;
+ dmas = <&dma0 1 AT91_DMA_CFG_PER_ID(7)>,
+ <&dma0 1 AT91_DMA_CFG_PER_ID(8)>;
+ dma-names = "tx", "rx";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_i2c0>;
+ clocks = <&pmc PMC_TYPE_PERIPHERAL 9>;
+ status = "okay";
+ id_eeprom@56 {
+ compatible = "atmel,24c04";
+ reg = <0x56>;
+ pagesize = <16>;
+ status = "okay";
+ };
+ };
};