diff options
author | Mykyta Dorokhin <mykyta.dorokhin@globallogic.com> | 2021-01-21 14:55:39 +0200 |
---|---|---|
committer | Mykyta Dorokhin <mykyta.dorokhin@globallogic.com> | 2021-01-21 14:55:39 +0200 |
commit | 1eeedd2707b37ddb3c4c5d58cd1137b20ca13c26 (patch) | |
tree | d68df662ab2120d0570a61f6d20033f89b8a79c3 /recipes-kernel/linux/linux-at91-5.4.81/mts-dts/mtcap.dts | |
parent | f9f63860b055944d4f2789e5ad364813f4e9581e (diff) | |
download | meta-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.dts | 317 |
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"; + }; + }; }; |