From 26e6788b25e2a57594759e9f89e91cce968bc524 Mon Sep 17 00:00:00 2001 From: sharma-mts <86847754+sharma-mts@users.noreply.github.com> Date: Fri, 28 Jan 2022 16:11:36 -0600 Subject: 5.3.x MTCDT device tree with name-gpio/connection-id for mts-io driver --- .../linux-5.4-export_name_to_desc.patch | 34 - .../linux/linux-at91-5.4.81/mts-dts/mtcdt.dts | 1788 +++++--------------- recipes-kernel/linux/linux-at91_5.4.81.bb | 1 - 3 files changed, 383 insertions(+), 1440 deletions(-) delete mode 100644 recipes-kernel/linux/linux-at91-5.4.81/linux-5.4-export_name_to_desc.patch (limited to 'recipes-kernel') diff --git a/recipes-kernel/linux/linux-at91-5.4.81/linux-5.4-export_name_to_desc.patch b/recipes-kernel/linux/linux-at91-5.4.81/linux-5.4-export_name_to_desc.patch deleted file mode 100644 index 8fe2a69..0000000 --- a/recipes-kernel/linux/linux-at91-5.4.81/linux-5.4-export_name_to_desc.patch +++ /dev/null @@ -1,34 +0,0 @@ -diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c -index abdf448b11a3..42d4e1439350 100644 ---- a/drivers/gpio/gpiolib.c -+++ b/drivers/gpio/gpiolib.c -@@ -296,7 +296,7 @@ static int gpiodev_add_to_list(struct gpio_device *gdev) - /* - * Convert a GPIO name to its descriptor - */ --static struct gpio_desc *gpio_name_to_desc(const char * const name) -+struct gpio_desc *gpio_name_to_desc(const char * const name) - { - struct gpio_device *gdev; - unsigned long flags; -@@ -324,6 +324,7 @@ static struct gpio_desc *gpio_name_to_desc(const char * const name) - return NULL; - } - -+EXPORT_SYMBOL_GPL(gpio_name_to_desc); - /* - * Takes the names from gc->names and checks if they are all unique. If they - * are, they are assigned to their gpio descriptors. -diff --git a/drivers/gpio/gpiolib.h b/drivers/gpio/gpiolib.h -index b8b10a409c7b..7f1b727b5fcc 100644 ---- a/drivers/gpio/gpiolib.h -+++ b/drivers/gpio/gpiolib.h -@@ -77,7 +77,7 @@ struct gpio_array { - unsigned long *set_mask; - unsigned long invert_mask[]; - }; -- -+struct gpio_desc *gpio_name_to_desc(const char * const name); - struct gpio_desc *gpiochip_get_desc(struct gpio_chip *chip, u16 hwnum); - int gpiod_get_array_value_complex(bool raw, bool can_sleep, - unsigned int array_size, diff --git a/recipes-kernel/linux/linux-at91-5.4.81/mts-dts/mtcdt.dts b/recipes-kernel/linux/linux-at91-5.4.81/mts-dts/mtcdt.dts index a33b936..b45d187 100644 --- a/recipes-kernel/linux/linux-at91-5.4.81/mts-dts/mtcdt.dts +++ b/recipes-kernel/linux/linux-at91-5.4.81/mts-dts/mtcdt.dts @@ -1,1353 +1,207 @@ /* -* -* This is base DTS file for all AT91 SAM9g25 the MTS devices -* composed by manual merging of: -* #include "at91sam9g25.dtsi" -* #include "at91sam9x5ek.dtsi" -* and sub-includes into one big file. -* -*/ + * DTS file for Multi-Tech Systems MTCDT Hardware + */ /dts-v1/; - -#include -#include -#include -#include -#include +#include "at91sam9g25.dtsi" +#include "at91sam9x5ek.dtsi" +#include "at91sam9x5_macb0.dtsi" #include / { - #address-cells = <1>; - #size-cells = <1>; - model = "Multi-Tech Systems MTCDT"; - compatible = "atmel,at91sam9x5ek", "atmel,at91sam9x5", "atmel,at91sam9"; - interrupt-parent = <&aic>; - - aliases { - serial0 = &dbgu; - serial2 = &usart1; // AP1 serial on MTCDT-0.2 - serial4 = &usart3; // AP2 serial on MTCDT-0.2 - serial5 = &uart0; // GNSS on MTCDT-0.2 - gpio0 = &pioA; - gpio1 = &pioB; - gpio2 = &pioC; - gpio3 = &pioD; - tcb0 = &tcb0; - tcb1 = &tcb1; - ssc0 = &ssc0; - pwm0 = &pwm0; - }; + model = "Multi-Tech Systems MTCDT"; + compatible = "atmel,at91sam9g25ek", "atmel,at91sam9x5ek", "atmel,at91sam9x5", "atmel,at91sam9"; + + aliases { + /delete-property/ i2c0; + /delete-property/ i2c1; + /delete-property/ i2c2; + /delete-property/ ssc0; + // serial2, usart1 is AP1 serial + serial4 = &usart3; // AP2 serial + serial5 = &uart0; // GNSS on MTCDT-0.2 + /delete-property/ serial1; // usart0 + /delete-property/ serial3; // usart2 + }; chosen { bootargs = "mem=256M console=ttyS0,115200 root=/dev/mtdblock8 ro rootfstype=jffs2"; }; - cpus { - #address-cells = <0>; - #size-cells = <0>; - - cpu { - compatible = "arm,arm926ej-s"; - device_type = "cpu"; - }; - }; - - memory { - device_type = "memory"; - reg = <0x20000000 0x8000000>; - }; - - clocks { - slow_xtal: slow_xtal { - compatible = "fixed-clock"; - #clock-cells = <0>; - clock-frequency = <32768>; - }; - - main_xtal: main_xtal { - compatible = "fixed-clock"; - #clock-cells = <0>; - clock-frequency = <12000000>; - }; - - adc_op_clk: adc_op_clk{ - compatible = "fixed-clock"; - #clock-cells = <0>; - clock-frequency = <1000000>; - }; - }; - - sram: sram@300000 { - compatible = "mmio-sram"; - reg = <0x00300000 0x8000>; - }; - - ahb { - compatible = "simple-bus"; - #address-cells = <1>; - #size-cells = <1>; - ranges; - - apb { - compatible = "simple-bus"; - #address-cells = <1>; - #size-cells = <1>; - ranges; - - aic: interrupt-controller@fffff000 { - #interrupt-cells = <3>; - compatible = "atmel,at91rm9200-aic"; - interrupt-controller; - reg = <0xfffff000 0x200>; - atmel,external-irqs = <31>; - }; - - matrix: matrix@ffffde00 { - compatible = "atmel,at91sam9x5-matrix", "syscon"; - reg = <0xffffde00 0x100>; - }; - - pmecc: ecc-engine@ffffe000 { - compatible = "atmel,at91sam9g45-pmecc"; - reg = <0xffffe000 0x600>, - <0xffffe600 0x200>; - }; - - ramc0: ramc@ffffe800 { - compatible = "atmel,at91sam9g45-ddramc"; - reg = <0xffffe800 0x200>; - clocks = <&pmc PMC_TYPE_SYSTEM 2>; - clock-names = "ddrck"; - }; - - smc: smc@ffffea00 { - compatible = "atmel,at91sam9260-smc", "syscon"; - reg = <0xffffea00 0x200>; - }; - - pmc: pmc@fffffc00 { - compatible = "atmel,at91sam9g25-pmc", "atmel,at91sam9x5-pmc", "syscon"; - reg = <0xfffffc00 0x200>; - interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>; - #clock-cells = <2>; - clocks = <&clk32k>, <&main_xtal>; - clock-names = "slow_clk", "main_xtal"; - }; - - reset_controller: rstc@fffffe00 { - compatible = "atmel,at91sam9g45-rstc"; - reg = <0xfffffe00 0x10>; - clocks = <&clk32k>; - }; - - shutdown_controller: shdwc@fffffe10 { - compatible = "atmel,at91sam9x5-shdwc"; - reg = <0xfffffe10 0x10>; - clocks = <&clk32k>; - }; - - pit: timer@fffffe30 { - compatible = "atmel,at91sam9260-pit"; - reg = <0xfffffe30 0xf>; - interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>; - clocks = <&pmc PMC_TYPE_CORE PMC_MCK>; - }; - - clk32k: sckc@fffffe50 { - compatible = "atmel,at91sam9x5-sckc"; - reg = <0xfffffe50 0x4>; - clocks = <&slow_xtal>; - #clock-cells = <0>; - }; - - tcb0: timer@f8008000 { - compatible = "atmel,at91sam9x5-tcb", "simple-mfd", "syscon"; - #address-cells = <1>; - #size-cells = <0>; - reg = <0xf8008000 0x100>; - interrupts = <17 IRQ_TYPE_LEVEL_HIGH 0>; - clocks = <&pmc PMC_TYPE_PERIPHERAL 17>, <&clk32k>; - clock-names = "t0_clk", "slow_clk"; - - - timer@0 { - compatible = "atmel,tcb-timer"; - reg = <0>; - }; - - timer@1 { - compatible = "atmel,tcb-timer"; - reg = <1>; - }; - }; - - tcb1: timer@f800c000 { - compatible = "atmel,at91sam9x5-tcb", "simple-mfd", "syscon"; - #address-cells = <1>; - #size-cells = <0>; - reg = <0xf800c000 0x100>; - interrupts = <17 IRQ_TYPE_LEVEL_HIGH 0>; - clocks = <&pmc PMC_TYPE_PERIPHERAL 17>, <&clk32k>; - clock-names = "t0_clk", "slow_clk"; - }; - - dma0: dma-controller@ffffec00 { - compatible = "atmel,at91sam9g45-dma"; - reg = <0xffffec00 0x200>; - interrupts = <20 IRQ_TYPE_LEVEL_HIGH 0>; - #dma-cells = <2>; - clocks = <&pmc PMC_TYPE_PERIPHERAL 20>; - clock-names = "dma_clk"; - }; - - dma1: dma-controller@ffffee00 { - compatible = "atmel,at91sam9g45-dma"; - reg = <0xffffee00 0x200>; - interrupts = <21 IRQ_TYPE_LEVEL_HIGH 0>; - #dma-cells = <2>; - clocks = <&pmc PMC_TYPE_PERIPHERAL 21>; - clock-names = "dma_clk"; - }; - - pinctrl: pinctrl@fffff400 { - #address-cells = <1>; - #size-cells = <1>; - compatible = "atmel,at91sam9x5-pinctrl", "atmel,at91rm9200-pinctrl", "simple-bus"; - ranges = <0xfffff400 0xfffff400 0x800>; - - atmel,mux-mask = < - /* A B C */ - 0xffffffff 0xffe0399f 0xc000001c /* pioA */ - 0x0007ffff 0x00047e3f 0x00000000 /* pioB */ - 0x80000000 0x07c0ffff 0xb83fffff /* pioC */ - 0x003fffff 0x003f8000 0x00000000 /* pioD */ - >; - - macb0 { - pinctrl_macb0_rmii: macb0_rmii-0 { - atmel,pins = - ; /* PB10 periph A */ - }; - - pinctrl_macb0_rmii_mii: macb0_rmii_mii-0 { - atmel,pins = - ; /* PB17 periph A */ - }; - }; - - camera_sensor { - pinctrl_pck0_as_isi_mck: pck0_as_isi_mck-0 { - atmel,pins = - ; /* ISI_MCK */ - }; - - pinctrl_sensor_power: sensor_power-0 { - atmel,pins = - ; - }; - - pinctrl_sensor_reset: sensor_reset-0 { - atmel,pins = - ; - }; - }; - - isi { - pinctrl_isi_data_0_7: isi-0-data-0-7 { - atmel,pins = - ; /* ISI_VSYNC, conflicts with LCDDAT13 */ - }; - - pinctrl_isi_data_8_9: isi-0-data-8-9 { - atmel,pins = - ; /* ISI_D9, conflicts with LCDDAT9 */ - }; - - pinctrl_isi_data_10_11: isi-0-data-10-11 { - atmel,pins = - ; /* ISI_D11, conflicts with LCDDAT11 */ - }; - }; - - /* shared pinctrl settings */ - dbgu { - pinctrl_dbgu: dbgu-0 { - atmel,pins = - ; - }; - }; - - ebi { - pinctrl_ebi_data_0_7: ebi-data-lsb-0 { - atmel,pins = - ; - }; - - pinctrl_ebi_addr_nand: ebi-addr-0 { - atmel,pins = - ; - }; - }; - - usart0 { - pinctrl_usart0: usart0-0 { - atmel,pins = - ; - }; - - pinctrl_usart0_rts: usart0_rts-0 { - atmel,pins = - ; /* PA2 periph A */ - }; - - pinctrl_usart0_cts: usart0_cts-0 { - atmel,pins = - ; /* PA3 periph A */ - }; - - pinctrl_usart0_sck: usart0_sck-0 { - atmel,pins = - ; /* PA4 periph A */ - }; - }; - - usart1 { - pinctrl_usart1: usart1-0 { - atmel,pins = - ; - }; - - pinctrl_usart1_rts: usart1_rts-0 { - atmel,pins = - ; /* PC27 periph C */ - }; - - pinctrl_usart1_cts: usart1_cts-0 { - atmel,pins = - ; /* PC28 periph C */ - }; - - pinctrl_usart1_sck: usart1_sck-0 { - atmel,pins = - ; /* PC29 periph C */ - }; - - pinctrl_usart1_rng: usart1_rng-0 { - atmel,pins = - ; - }; - - pinctrl_usart1_dcd: usart1_dcd-0 { - atmel,pins = - ; - }; - - pinctrl_usart1_dtr: usart1_dtr-0 { - atmel,pins = - ; - }; - }; - - usart2 { - pinctrl_usart2: usart2-0 { - atmel,pins = - ; - }; - - pinctrl_usart2_rts: usart2_rts-0 { - atmel,pins = - ; /* PB0 periph B */ - }; - - pinctrl_usart2_cts: usart2_cts-0 { - atmel,pins = - ; /* PB1 periph B */ - }; - - pinctrl_usart2_sck: usart2_sck-0 { - atmel,pins = - ; /* PB2 periph B */ - }; - }; - - usart3 { - pinctrl_usart3: usart3-0 { - atmel,pins = - ; - }; - - pinctrl_usart3_rts: usart3_rts-0 { - atmel,pins = - ; /* PC24 periph B */ - }; - - pinctrl_usart3_cts: usart3_cts-0 { - atmel,pins = - ; /* PC25 periph B */ - }; - - pinctrl_usart3_sck: usart3_sck-0 { - atmel,pins = - ; /* PC26 periph B */ - }; - - pinctrl_usart3_rng: usart3_rng-0 { - atmel,pins = - ; - }; - - pinctrl_usart3_dcd: usart3_dcd-0 { - atmel,pins = - ; - }; - - pinctrl_usart3_dtr: usart3_dtr-0 { - atmel,pins = - ; - }; - }; - - uart0 { - pinctrl_uart0: uart0-0 { - atmel,pins = - ; /* PC9 periph C with pullup */ - }; - }; - - uart1 { - pinctrl_uart1: uart1-0 { - atmel,pins = - ; /* PC17 periph C with pullup */ - }; - }; - - nand { - pinctrl_nand_oe_we: nand-oe-we-0 { - atmel,pins = - ; - }; - - pinctrl_nand_rb: nand-rb-0 { - atmel,pins = - ; - }; - - pinctrl_nand_cs: nand-cs-0 { - atmel,pins = - ; - }; - }; - - mts-io { - pinctrl_mts_io_out: mts_io-0 { - // gpio4 and gpio5 are reset in at91bootstrap. They should not be touched in Linux. - atmel,pins = - ; /* PD20 WiFi_BT_LPMode Output */ - output-high; // ignored by at91_pinctrl - }; - pinctrl_mts_io_in: mts_io-1 { - atmel,pins = - ; /* PD19 GNSS Int */ - }; - // GNSS kept in reset to prevent EXAR from hanging - pinctrl_mts_io_gnss: mts_io-2 { - atmel,pins = - ; /* PD18 USB Hub reset */ - output-low; // ignored by at91_pinctrl - }; - }; - - mmc0 { - pinctrl_mmc0_slot0_clk_cmd_dat0: mmc0_slot0_clk_cmd_dat0-0 { - atmel,pins = - ; /* PA15 periph A with pullup */ - }; - - pinctrl_mmc0_slot0_dat1_3: mmc0_slot0_dat1_3-0 { - atmel,pins = - ; /* PA20 periph A with pullup */ - }; - - pinctrl_board_mmc0: mmc0-board { - atmel,pins = - ; /* PA1 gpio SD card pin pull up and deglitch */ - }; - }; - - mmc1 { - pinctrl_mmc1_slot0_clk_cmd_dat0: mmc1_slot0_clk_cmd_dat0-0 { - atmel,pins = - ; /* PA11 periph B with pullup */ - }; - - pinctrl_mmc1_slot0_dat1_3: mmc1_slot0_dat1_3-0 { - atmel,pins = - ; /* PA4 periph B with pullup */ - }; - }; - - usb2 { - pinctrl_board_usb2: usb2-board { - atmel,pins = - ; /* PB16 gpio vbus sense, deglitch */ - }; - }; - - ssc0 { - pinctrl_ssc0_tx: ssc0_tx-0 { - atmel,pins = - ; /* PA26 periph B */ - }; - - pinctrl_ssc0_rx: ssc0_rx-0 { - atmel,pins = - ; /* PA29 periph B */ - }; - }; - - spi0 { - pinctrl_spi0: spi0-0 { - atmel,pins = - ; /* PA13 periph A SPI0_SPCK pin */ - }; - }; - - spi1 { - pinctrl_spi1: spi1-0 { - atmel,pins = - ; /* PA23 periph B SPI1_SPCK pin */ - }; - }; - - i2c0 { - pinctrl_i2c0: i2c0-0 { - atmel,pins = - ; /* PA31 periph A I2C0 clock */ - }; - }; - - i2c1 { - pinctrl_i2c1: i2c1-0 { - atmel,pins = - ; /* PC1 periph C I2C1 clock */ - }; - }; - - i2c2 { - pinctrl_i2c2: i2c2-0 { - atmel,pins = - ; /* PB5 periph B I2C2 clock */ - }; - }; - - i2c_gpio0 { - pinctrl_i2c_gpio0: i2c_gpio0-0 { - atmel,pins = - ; /* PA31 gpio multidrive I2C0 clock */ - }; - }; - - i2c_gpio1 { - pinctrl_i2c_gpio1: i2c_gpio1-0 { - atmel,pins = - ; /* PC1 gpio multidrive I2C1 clock */ - }; - }; - - i2c_gpio2 { - pinctrl_i2c_gpio2: i2c_gpio2-0 { - atmel,pins = - ; /* PB5 gpio multidrive I2C2 clock */ - }; - }; - - pwm0 { - pinctrl_pwm0_pwm0_0: pwm0_pwm0-0 { - atmel,pins = - ; - }; - pinctrl_pwm0_pwm0_1: pwm0_pwm0-1 { - atmel,pins = - ; - }; - pinctrl_pwm0_pwm0_2: pwm0_pwm0-2 { - atmel,pins = - ; - }; - - pinctrl_pwm0_pwm1_0: pwm0_pwm1-0 { - atmel,pins = - ; - }; - pinctrl_pwm0_pwm1_1: pwm0_pwm1-1 { - atmel,pins = - ; - }; - pinctrl_pwm0_pwm1_2: pwm0_pwm1-2 { - atmel,pins = - ; - }; - - pinctrl_pwm0_pwm2_0: pwm0_pwm2-0 { - atmel,pins = - ; - }; - pinctrl_pwm0_pwm2_1: pwm0_pwm2-1 { - atmel,pins = - ; - }; - - pinctrl_pwm0_pwm3_0: pwm0_pwm3-0 { - atmel,pins = - ; - }; - pinctrl_pwm0_pwm3_1: pwm0_pwm3-1 { - atmel,pins = - ; - }; - }; - - tcb0 { - pinctrl_tcb0_tclk0: tcb0_tclk0-0 { - atmel,pins = ; - }; - - pinctrl_tcb0_tclk1: tcb0_tclk1-0 { - atmel,pins = ; - }; - - pinctrl_tcb0_tclk2: tcb0_tclk2-0 { - atmel,pins = ; - }; - - pinctrl_tcb0_tioa0: tcb0_tioa0-0 { - atmel,pins = ; - }; - - pinctrl_tcb0_tioa1: tcb0_tioa1-0 { - atmel,pins = ; - }; - - pinctrl_tcb0_tioa2: tcb0_tioa2-0 { - atmel,pins = ; - }; - - pinctrl_tcb0_tiob0: tcb0_tiob0-0 { - atmel,pins = ; - }; - - pinctrl_tcb0_tiob1: tcb0_tiob1-0 { - atmel,pins = ; - }; - - pinctrl_tcb0_tiob2: tcb0_tiob2-0 { - atmel,pins = ; - }; - }; - - tcb1 { - pinctrl_tcb1_tclk0: tcb1_tclk0-0 { - atmel,pins = ; - }; - - pinctrl_tcb1_tclk1: tcb1_tclk1-0 { - atmel,pins = ; - }; - - pinctrl_tcb1_tclk2: tcb1_tclk2-0 { - atmel,pins = ; - }; - - pinctrl_tcb1_tioa0: tcb1_tioa0-0 { - atmel,pins = ; - }; - - pinctrl_tcb1_tioa1: tcb1_tioa1-0 { - atmel,pins = ; - }; - - pinctrl_tcb1_tioa2: tcb1_tioa2-0 { - atmel,pins = ; - }; - - pinctrl_tcb1_tiob0: tcb1_tiob0-0 { - atmel,pins = ; - }; - - pinctrl_tcb1_tiob1: tcb1_tiob1-0 { - atmel,pins = ; - }; - - pinctrl_tcb1_tiob2: tcb1_tiob2-0 { - atmel,pins = ; - }; - }; - - 1wire_cm { - pinctrl_1wire_cm: 1wire_cm-0 { - atmel,pins = ; - }; - }; - - pioA: gpio@fffff400 { - compatible = "atmel,at91sam9x5-gpio", "atmel,at91rm9200-gpio"; - reg = <0xfffff400 0x200>; - interrupts = <2 IRQ_TYPE_LEVEL_HIGH 1>; - #gpio-cells = <2>; - gpio-controller; - interrupt-controller; - #interrupt-cells = <2>; - clocks = <&pmc PMC_TYPE_PERIPHERAL 2>; - phandle = ; - phandle,linux = ; - }; - - pioB: gpio@fffff600 { - compatible = "atmel,at91sam9x5-gpio", "atmel,at91rm9200-gpio"; - reg = <0xfffff600 0x200>; - interrupts = <2 IRQ_TYPE_LEVEL_HIGH 1>; - #gpio-cells = <2>; - gpio-controller; - #gpio-lines = <19>; - interrupt-controller; - #interrupt-cells = <2>; - clocks = <&pmc PMC_TYPE_PERIPHERAL 2>; - phandle = ; - phandle,linux = ; - }; - - pioC: gpio@fffff800 { - compatible = "atmel,at91sam9x5-gpio", "atmel,at91rm9200-gpio"; - reg = <0xfffff800 0x200>; - interrupts = <3 IRQ_TYPE_LEVEL_HIGH 1>; - #gpio-cells = <2>; - gpio-controller; - interrupt-controller; - #interrupt-cells = <2>; - clocks = <&pmc PMC_TYPE_PERIPHERAL 3>; - phandle = ; - phandle,linux = ; - }; - - pioD: gpio@fffffa00 { - compatible = "atmel,at91sam9x5-gpio", "atmel,at91rm9200-gpio"; - reg = <0xfffffa00 0x200>; - interrupts = <3 IRQ_TYPE_LEVEL_HIGH 1>; - #gpio-cells = <2>; - gpio-controller; - #gpio-lines = <22>; - interrupt-controller; - #interrupt-cells = <2>; - clocks = <&pmc PMC_TYPE_PERIPHERAL 3>; - phandle = ; - phandle,linux = ; - }; - }; - - isi: isi@f8048000 { - compatible = "atmel,at91sam9g45-isi"; - reg = <0xf8048000 0x4000>; - interrupts = <25 IRQ_TYPE_LEVEL_HIGH 5>; - pinctrl-names = "default"; - pinctrl-0 = <&pinctrl_isi_data_0_7>; - clocks = <&pmc PMC_TYPE_PERIPHERAL 25>; - clock-names = "isi_clk"; - status = "disabled"; - port { - #address-cells = <1>; - #size-cells = <0>; - }; - }; - - macb0: ethernet@f802c000 { - compatible = "cdns,at91sam9260-macb", "cdns,macb"; - reg = <0xf802c000 0x100>; - interrupts = <24 IRQ_TYPE_LEVEL_HIGH 3>; - pinctrl-names = "default"; - pinctrl-0 = <&pinctrl_macb0_rmii>; - clocks = <&pmc PMC_TYPE_PERIPHERAL 24>, <&pmc PMC_TYPE_PERIPHERAL 24>; - clock-names = "hclk", "pclk"; - - phy-mode = "rmii"; - status = "okay"; - }; - - ssc0: ssc@f0010000 { - compatible = "atmel,at91sam9g45-ssc"; - reg = <0xf0010000 0x4000>; - interrupts = <28 IRQ_TYPE_LEVEL_HIGH 5>; - dmas = <&dma0 1 AT91_DMA_CFG_PER_ID(13)>, - <&dma0 1 AT91_DMA_CFG_PER_ID(14)>; - dma-names = "tx", "rx"; - pinctrl-names = "default"; - pinctrl-0 = <&pinctrl_ssc0_tx &pinctrl_ssc0_rx>; - clocks = <&pmc PMC_TYPE_PERIPHERAL 28>; - clock-names = "pclk"; - - status = "disabled"; - }; - - mmc0: mmc@f0008000 { - compatible = "atmel,hsmci"; - reg = <0xf0008000 0x600>; - interrupts = <12 IRQ_TYPE_LEVEL_HIGH 0>; - dmas = <&dma0 1 AT91_DMA_CFG_PER_ID(0)>; - dma-names = "rxtx"; - pinctrl-names = "default"; - clocks = <&pmc PMC_TYPE_PERIPHERAL 12>; - clock-names = "mci_clk"; - #address-cells = <1>; - #size-cells = <0>; - - pinctrl-0 = < - &pinctrl_board_mmc0 - &pinctrl_mmc0_slot0_clk_cmd_dat0 - &pinctrl_mmc0_slot0_dat1_3>; - status = "okay"; - /* external micro SD slot */ - slot@0 { - reg = <0>; - bus-width = <4>; - cd-gpios = <&pioA 1 GPIO_ACTIVE_HIGH>; - }; - }; - - mmc1: mmc@f000c000 { - compatible = "atmel,hsmci"; - reg = <0xf000c000 0x600>; - interrupts = <26 IRQ_TYPE_LEVEL_HIGH 0>; - dmas = <&dma1 1 AT91_DMA_CFG_PER_ID(0)>; - dma-names = "rxtx"; - pinctrl-names = "default"; - clocks = <&pmc PMC_TYPE_PERIPHERAL 26>; - clock-names = "mci_clk"; - #address-cells = <1>; - #size-cells = <0>; - status = "disabled"; - }; - - dbgu: serial@fffff200 { - compatible = "atmel,at91sam9260-dbgu", "atmel,at91sam9260-usart"; - reg = <0xfffff200 0x200>; - interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>; - pinctrl-names = "default"; - pinctrl-0 = <&pinctrl_dbgu>; - dmas = <&dma1 1 AT91_DMA_CFG_PER_ID(8)>, - <&dma1 1 (AT91_DMA_CFG_PER_ID(9) | AT91_DMA_CFG_FIFOCFG_ASAP)>; - dma-names = "tx", "rx"; - clocks = <&pmc PMC_TYPE_CORE PMC_MCK>; - clock-names = "usart"; - status = "okay"; - atmel,use-dma-rx; - atmel,use-dma-tx; - }; - - usart0: serial@f801c000 { - compatible = "atmel,at91sam9260-usart"; - reg = <0xf801c000 0x200>; - interrupts = <5 IRQ_TYPE_LEVEL_HIGH 5>; - pinctrl-names = "default"; - pinctrl-0 = <&pinctrl_usart0>; - dmas = <&dma0 1 AT91_DMA_CFG_PER_ID(3)>, - <&dma0 1 (AT91_DMA_CFG_PER_ID(4) | AT91_DMA_CFG_FIFOCFG_ASAP)>; - dma-names = "tx", "rx"; - clocks = <&pmc PMC_TYPE_PERIPHERAL 5>; - clock-names = "usart"; - status = "disabled"; - }; - - usart1: serial@f8020000 { - compatible = "atmel,at91sam9260-usart"; - reg = <0xf8020000 0x200>; - interrupts = <6 IRQ_TYPE_LEVEL_HIGH 5>; - pinctrl-names = "default"; - pinctrl-0 = <&pinctrl_usart1>; - dmas = <&dma0 1 AT91_DMA_CFG_PER_ID(5)>, - <&dma0 1 (AT91_DMA_CFG_PER_ID(6) | AT91_DMA_CFG_FIFOCFG_ASAP)>; - dma-names = "tx", "rx"; - clocks = <&pmc PMC_TYPE_PERIPHERAL 6>; - clock-names = "usart"; - status = "disabled"; - atmel,use-dma-rx; - atmel,use-dma-tx; - rng-gpios = <&pioA 27 GPIO_ACTIVE_LOW>; - dcd-gpios = <&pioA 26 GPIO_ACTIVE_LOW>; - dtr-gpios = <&pioA 25 GPIO_ACTIVE_LOW>; - }; - - usart2: serial@f8024000 { - compatible = "atmel,at91sam9260-usart"; - reg = <0xf8024000 0x200>; - interrupts = <7 IRQ_TYPE_LEVEL_HIGH 5>; - pinctrl-names = "default"; - pinctrl-0 = <&pinctrl_usart2>; - dmas = <&dma1 1 AT91_DMA_CFG_PER_ID(12)>, - <&dma1 1 (AT91_DMA_CFG_PER_ID(13) | AT91_DMA_CFG_FIFOCFG_ASAP)>; - dma-names = "tx", "rx"; - clocks = <&pmc PMC_TYPE_PERIPHERAL 7>; - clock-names = "usart"; - status = "disabled"; - }; - - usart3: serial@f8028000 { - compatible = "atmel,at91sam9260-usart"; - reg = <0xf8028000 0x200>; - interrupts = <8 IRQ_TYPE_LEVEL_HIGH 5>; - pinctrl-names = "default"; - pinctrl-0 = <&pinctrl_usart3>; - dmas = <&dma1 1 AT91_DMA_CFG_PER_ID(14)>, - <&dma1 1 (AT91_DMA_CFG_PER_ID(15) | AT91_DMA_CFG_FIFOCFG_ASAP)>; - dma-names = "tx", "rx"; - clocks = <&pmc PMC_TYPE_PERIPHERAL 8>; - clock-names = "usart"; - status = "disabled"; - atmel,use-dma-rx; - atmel,use-dma-tx; - rng-gpios = <&pioC 14 GPIO_ACTIVE_LOW>; - dcd-gpios = <&pioC 13 GPIO_ACTIVE_LOW>; - dtr-gpios = <&pioC 12 GPIO_ACTIVE_LOW>; - }; - - uart0: serial@f8040000 { - compatible = "atmel,at91sam9260-usart"; - reg = <0xf8040000 0x200>; - interrupts = <15 IRQ_TYPE_LEVEL_HIGH 5>; - pinctrl-names = "default"; - pinctrl-0 = <&pinctrl_uart0>; - 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"; - clocks = <&pmc PMC_TYPE_PERIPHERAL 15>; - clock-names = "usart"; - atmel,use-dma-rx; - atmel,use-dma-tx; - status = "disabled"; - }; - - uart1: serial@f8044000 { - compatible = "atmel,at91sam9260-usart"; - reg = <0xf8044000 0x200>; - interrupts = <16 IRQ_TYPE_LEVEL_HIGH 5>; - pinctrl-names = "default"; - pinctrl-0 = <&pinctrl_uart1>; - clocks = <&pmc PMC_TYPE_PERIPHERAL 16>; - clock-names = "usart"; - status = "disabled"; - }; - - adc0: adc@f804c000 { - #address-cells = <1>; - #size-cells = <0>; - compatible = "atmel,at91sam9x5-adc"; - reg = <0xf804c000 0x100>; - interrupts = <19 IRQ_TYPE_LEVEL_HIGH 0>; - clocks = <&pmc PMC_TYPE_PERIPHERAL 19>, - <&adc_op_clk>; - clock-names = "adc_clk", "adc_op_clk"; - atmel,adc-use-external-triggers; - atmel,adc-channels-used = <0xffff>; - atmel,adc-vref = <3300>; - atmel,adc-startup-time = <40>; - atmel,adc-sample-hold-time = <11>; - atmel,adc-res = <8 10>; - atmel,adc-res-names = "lowres", "highres"; - atmel,adc-use-res = "highres"; - - trigger0 { - trigger-name = "external-rising"; - trigger-value = <0x1>; - trigger-external; - }; - - trigger1 { - trigger-name = "external-falling"; - trigger-value = <0x2>; - trigger-external; - }; - - trigger2 { - trigger-name = "external-any"; - trigger-value = <0x3>; - trigger-external; - }; - - trigger3 { - trigger-name = "continuous"; - trigger-value = <0x6>; - }; - }; - - /* runs to Accessory Port 1 */ - spi0: spi@f0000000 { - #address-cells = <1>; - #size-cells = <0>; - compatible = "atmel,at91rm9200-spi"; - reg = <0xf0000000 0x100>; - interrupts = <13 IRQ_TYPE_LEVEL_HIGH 3>; - dmas = <&dma0 1 AT91_DMA_CFG_PER_ID(1)>, - <&dma0 1 AT91_DMA_CFG_PER_ID(2)>; - dma-names = "tx", "rx"; - pinctrl-names = "default"; - pinctrl-0 = <&pinctrl_spi0>; - clocks = <&pmc PMC_TYPE_PERIPHERAL 13>; - clock-names = "spi_clk"; - - status = "disabled"; - cs-gpios = <&pioA 4 0>, <&pioA 2 0>, <&pioA 3 0>, <&pioA 5 0>; - - }; - - /* runs to Accessory Port 2 */ - spi1: spi@f0004000 { - #address-cells = <1>; - #size-cells = <0>; - compatible = "atmel,at91rm9200-spi"; - reg = <0xf0004000 0x100>; - interrupts = <14 IRQ_TYPE_LEVEL_HIGH 3>; - dmas = <&dma1 1 AT91_DMA_CFG_PER_ID(1)>, - <&dma1 1 AT91_DMA_CFG_PER_ID(2)>; - dma-names = "tx", "rx"; - pinctrl-names = "default"; - pinctrl-0 = <&pinctrl_spi1>; - clocks = <&pmc PMC_TYPE_PERIPHERAL 14>; - clock-names = "spi_clk"; - - status = "disabled"; - cs-gpios = <&pioC 15 0>, <&pioC 16 0>, <&pioC 17 0>, <&pioC 18 0>; - }; - - usb2: gadget@f803c000 { - #address-cells = <1>; - #size-cells = <0>; - compatible = "atmel,at91sam9g45-udc"; - reg = <0x00500000 0x80000 - 0xf803c000 0x400>; - interrupts = <23 IRQ_TYPE_LEVEL_HIGH 0>; - clocks = <&pmc PMC_TYPE_CORE PMC_UTMI>, <&pmc PMC_TYPE_PERIPHERAL 23>; - clock-names = "hclk", "pclk"; - - - pinctrl-names = "default"; - pinctrl-0 = <&pinctrl_board_usb2>; - status = "okay"; - - ep@0 { - reg = <0>; - atmel,fifo-size = <64>; - atmel,nb-banks = <1>; - }; - - ep@1 { - reg = <1>; - atmel,fifo-size = <1024>; - atmel,nb-banks = <2>; - atmel,can-dma; - atmel,can-isoc; - }; - - ep@2 { - reg = <2>; - atmel,fifo-size = <1024>; - atmel,nb-banks = <2>; - atmel,can-dma; - atmel,can-isoc; - }; - - ep@3 { - reg = <3>; - atmel,fifo-size = <1024>; - atmel,nb-banks = <3>; - atmel,can-dma; - }; - - ep@4 { - reg = <4>; - atmel,fifo-size = <1024>; - atmel,nb-banks = <3>; - atmel,can-dma; - }; - - ep@5 { - reg = <5>; - atmel,fifo-size = <1024>; - atmel,nb-banks = <3>; - atmel,can-dma; - atmel,can-isoc; - }; - - ep@6 { - reg = <6>; - atmel,fifo-size = <1024>; - atmel,nb-banks = <3>; - atmel,can-dma; - atmel,can-isoc; - }; - }; - - watchdog: watchdog@fffffe40 { - compatible = "atmel,at91sam9260-wdt"; - reg = <0xfffffe40 0x10>; - interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>; - clocks = <&clk32k>; - atmel,watchdog-type = "hardware"; - atmel,reset-type = "all"; - atmel,dbg-halt; - - - status = "okay"; - }; - - rtc: rtc@fffffeb0 { - compatible = "atmel,at91sam9x5-rtc"; - reg = <0xfffffeb0 0x40>; - interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>; - clocks = <&clk32k>; - status = "okay"; - }; - - pwm0: pwm@f8034000 { - compatible = "atmel,at91sam9rl-pwm"; - reg = <0xf8034000 0x300>; - interrupts = <18 IRQ_TYPE_LEVEL_HIGH 4>; - clocks = <&pmc PMC_TYPE_PERIPHERAL 18>; - #pwm-cells = <3>; - status = "disabled"; - }; - }; - - usb0: ohci@600000 { - compatible = "atmel,at91rm9200-ohci", "usb-ohci"; - reg = <0x00600000 0x100000>; - interrupts = <22 IRQ_TYPE_LEVEL_HIGH 2>; - clocks = <&pmc PMC_TYPE_PERIPHERAL 22>, <&pmc PMC_TYPE_PERIPHERAL 22>, <&pmc PMC_TYPE_SYSTEM 6>; - clock-names = "ohci_clk", "hclk", "uhpck"; - - num-ports = <3>; - //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"; - }; - - usb1: ehci@700000 { - compatible = "atmel,at91sam9g45-ehci", "usb-ehci"; - reg = <0x00700000 0x100000>; - interrupts = <22 IRQ_TYPE_LEVEL_HIGH 2>; - clocks = <&pmc PMC_TYPE_CORE PMC_UTMI>, <&pmc PMC_TYPE_PERIPHERAL 22>; - clock-names = "usb_clk", "ehci_clk"; - - - status = "okay"; + /delete-node/ 1wire_cm; + ahb { + apb { + /delete-node/ i2c@f8010000; + /delete-node/ i2c@f8014000; + /delete-node/ i2c@f8018000; + /delete-node/ mmc@f000c000; + /delete-node/ adc@f804c000; + /delete-node/ ssc@f0010000; + /delete-node/ serial@f801c000; + macb0: ethernet@f802c000 { + phy-mode = "rmii"; + status = "okay"; + }; + + pinctrl@fffff400 { + /delete-node/ 1wire_cm; + usart1 { + /delete-node/ usart1_sck-0; + pinctrl_usart1_rng: usart1_rng-0 { + atmel,pins = ; + }; + pinctrl_usart1_dcd: usart1_dcd-0 { + atmel,pins = ; + }; + pinctrl_usart1_dtr: usart1_dtr-0 { + atmel,pins = ; + }; + }; + usart3 { + /delete-node/ usart3_sck-0; + pinctrl_usart3_rng: usart3_rng-0 { + atmel,pins = ; + }; + pinctrl_usart3_dcd: usart3_dcd-0 { + atmel,pins = ; + }; + pinctrl_usart3_dtr: usart3_dtr-0 { + atmel,pins = ; + }; + }; + + mmc0 { + pinctrl_board_mmc0: mmc0-board { + atmel,pins = + ; /* PA1 gpio SD card pin pull up and deglitch */ + }; }; - - ebi: ebi@10000000 { - compatible = "atmel,at91sam9x5-ebi"; - #address-cells = <2>; - #size-cells = <1>; - atmel,smc = <&smc>; - atmel,matrix = <&matrix>; - reg = <0x10000000 0x60000000>; - ranges = <0x0 0x0 0x10000000 0x10000000 - 0x1 0x0 0x20000000 0x10000000 - 0x2 0x0 0x30000000 0x10000000 - 0x3 0x0 0x40000000 0x10000000 - 0x4 0x0 0x50000000 0x10000000 - 0x5 0x0 0x60000000 0x10000000>; - clocks = <&pmc PMC_TYPE_CORE PMC_MCK>; - - pinctrl-0 = <&pinctrl_ebi_addr_nand - &pinctrl_ebi_data_0_7>; - pinctrl-names = "default"; - status = "okay"; - - nand_controller: nand-controller { - compatible = "atmel,at91sam9g45-nand-controller"; - ecc-engine = <&pmecc>; - #address-cells = <2>; - #size-cells = <1>; - ranges; - - - status = "okay"; - pinctrl-0 = <&pinctrl_nand_oe_we - &pinctrl_nand_cs - &pinctrl_nand_rb>; - pinctrl-names = "default"; - - nand@3 { - reg = <0x3 0x0 0x800000>; - 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 = <4>; - nand-ecc-step-size = <512>; - /* nand-on-flash-bbt; */ - label = "atmel_nand"; - - partitions { - compatible = "fixed-partitions"; - #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 0x80000>; - }; - - 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>; - }; - - config0@800000 { - label = "Config"; - reg = <0x800000 0x800000>; - }; - - config1@1000000 { - label = "OEM Config"; - reg = <0x1000000 0x800000>; - }; - - rootfs@1800000 { - label = "Rootfs"; - reg = <0x1800000 0x8000000>; - }; - - user@9800000 { - label = "User data"; - reg = <0x9800000 0x6800000>; - }; - }; - }; - }; + /delete-node/ mmc@f000c000; + + nand { + pinctrl_nand: nand-0 { + atmel,pins = + ; /* PD13 periph A Data bit 7 */ + }; + + /delete-node/ nand_16bits-0; + }; + mts-io { + pinctrl_mts_io_out: mts_io-0 { + // gpio4 and gpio5 are reset in at91bootstrap. They should not be touched in Linux. + atmel,pins = + ; /* PD20 WiFi_BT_LPMode Output */ + output-high; // ignored by at91_pinctrl + }; + pinctrl_mts_io_in: mts_io-1 { + atmel,pins = + ; /* PD19 GNSS Int */ + }; + // GNSS kept in reset to prevent EXAR from hanging + pinctrl_mts_io_gnss: mts_io-2 { + atmel,pins = + ; /* PD18 USB Hub reset */ + output-low; // ignored by at91_pinctrl + }; + }; + + mmc1 { + pinctrl_mmc1_slot0_clk_cmd_dat0: mmc1_slot0_clk_cmd_dat0-0 { + atmel,pins = + ; /* PA11 periph B with pullup */ + }; + + pinctrl_mmc1_slot0_dat1_3: mmc1_slot0_dat1_3-0 { + atmel,pins = + ; /* PA4 periph B with pullup */ + }; + + /delete-node/ mmc1-board; }; - }; + }; - i2c-gpio-0 { - compatible = "i2c-gpio"; - gpios = <&pioA 30 GPIO_ACTIVE_HIGH /* sda */ - &pioA 31 GPIO_ACTIVE_HIGH /* scl */ - >; - i2c-gpio,sda-open-drain; - i2c-gpio,scl-open-drain; - i2c-gpio,delay-us = <2>; /* ~100 kHz */ - #address-cells = <1>; - #size-cells = <0>; - pinctrl-names = "default"; - pinctrl-0 = <&pinctrl_i2c_gpio0>; + rtc@fffffeb0 { + status = "okay"; + }; + + dbgu: serial@fffff200 { + status = "okay"; + atmel,use-dma-rx; + atmel,use-dma-tx; + }; + /* runs to Accessory Port 1 */ + spi0: spi@f0000000 { + /delete-node/ m25p80@0; + }; + }; + + }; + + leds { + status = "disabled"; + /delete-node/ pb18; + /delete-node/ pd21; + + led-status { + label = "led-status"; // LED2 + gpios = <&pioA 24 GPIO_ACTIVE_LOW>; // All + linux,default-trigger = "default-on"; + }; + }; + + /* GPS-PPS input on AP1 */ + pps-0 { + compatible = "pps-gpio"; + gpios = <&pioA 29 0>; + capture-clear; + status = "okay"; + }; + + /* pca953x driver wants a regulator + * This dummy regulator prevents warnings */ + dummy_reg: regulator@0 { + compatible = "regulator-fixed"; + regulator-name = "dummy-supply"; + }; + + i2c-gpio-0 { status = "okay"; id_eeprom@56 { - compatible = "atmel,24c04"; - reg = <0x56>; - pagesize = <16>; - status = "okay"; + compatible = "atmel,24c04"; + reg = <0x56>; + pagesize = <16>; + status = "okay"; }; - board_temp@48 { - compatible = "ti,tmp102"; - reg = <0x48>; - status = "okay"; - /* tempsensor_alert line running to pin PC19 on processor - set up an interrupt for this? */ + compatible = "ti,tmp102"; + reg = <0x48>; + status = "okay"; + /* tempsensor_alert line running to pin PC19 on processor + set up an interrupt for this? */ }; - /* gpio0 through gpio3 are integrated into the SAM9G25 and defined * in at91sam9x5.dtsi * pioA == gpio0 @@ -1362,106 +216,230 @@ gpio-controller; #gpio-cells = <2>; vcc-supply = <&dummy_reg>; - phandle = ; - phandle,linux = ; - // gpio-base = <128>; }; - gpio5: pca9557@19 { compatible = "nxp,pca9557"; reg = <0x19>; gpio-controller; #gpio-cells = <2>; vcc-supply = <&dummy_reg>; - phandle = ; - phandle,linux = ; - // gpio-base = <136>; }; - }; - - i2c-gpio-1 { - compatible = "i2c-gpio"; - gpios = <&pioC 0 GPIO_ACTIVE_HIGH /* sda */ - &pioC 1 GPIO_ACTIVE_HIGH /* scl */ - >; - i2c-gpio,sda-open-drain; - i2c-gpio,scl-open-drain; - i2c-gpio,delay-us = <2>; /* ~100 kHz */ - #address-cells = <1>; - #size-cells = <0>; - pinctrl-names = "default"; - pinctrl-0 = <&pinctrl_i2c_gpio1>; + }; + i2c-gpio-1 { status = "okay"; ap1_eeprom@50 { - compatible = "atmel,24c04"; - reg = <0x50>; - pagesize = <16>; - status = "okay"; + compatible = "atmel,24c04"; + reg = <0x50>; + pagesize = <16>; + status = "okay"; }; - ap2_eeprom@52 { - compatible = "atmel,24c04"; - reg = <0x52>; - pagesize = <16>; - status = "okay"; + compatible = "atmel,24c04"; + reg = <0x52>; + pagesize = <16>; + status = "okay"; }; - }; - - i2c-gpio-2 { - compatible = "i2c-gpio"; - gpios = <&pioB 4 GPIO_ACTIVE_HIGH /* sda */ - &pioB 5 GPIO_ACTIVE_HIGH /* scl */ - >; - i2c-gpio,sda-open-drain; - i2c-gpio,scl-open-drain; - i2c-gpio,delay-us = <2>; /* ~100 kHz */ - #address-cells = <1>; - #size-cells = <0>; - pinctrl-names = "default"; - pinctrl-0 = <&pinctrl_i2c_gpio2>; - status = "disabled"; - }; - - mts-io-0 { + }; + mts-io { status = "okay"; compatible = "mts,mts-io"; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_mts_io_out>, <&pinctrl_mts_io_in>, <&pinctrl_mts_io_gnss>; + + //pioB common pins + AP1_NRESET-gpios = <&pioB 12 GPIO_ACTIVE_HIGH>; + AP2_NRESET-gpios = <&pioB 13 GPIO_ACTIVE_HIGH>; + AP1_NINT1-gpios = <&pioB 14 GPIO_ACTIVE_HIGH>; + AP1_NINT2-gpios = <&pioB 15 GPIO_ACTIVE_HIGH>; + AP2_NINT1-gpios = <&pioB 17 GPIO_ACTIVE_HIGH>; + AP2_NINT2-gpios = <&pioB 18 GPIO_ACTIVE_HIGH>; + + //pioC + AP1_GPIO1-gpios = <&pioC 6 GPIO_ACTIVE_HIGH>; + AP1_GPIO2-gpios = <&pioC 7 GPIO_ACTIVE_HIGH>; + AP2_GPIO1-gpios = <&pioC 20 GPIO_ACTIVE_HIGH>; + AP2_GPIO2-gpios = <&pioC 21 GPIO_ACTIVE_HIGH>; + + }; + /delete-node/ sound; + /delete-node/ ssc@f0010000; + /delete-node/ adc@f804c000; +}; + +&usb0 { + /delete-property/ atmel,vbus-gpio; +}; + +&usb2 { + /delete-property/ atmel,vbus-gpio; + status = "okay"; +}; + +&uart0 { + // GNSS on MTCDT-0.2 + status = "disabled"; + 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"; + atmel,use-dma-rx; + atmel,use-dma-tx; +}; + +&usart1 { + status = "disabled"; + atmel,use-dma-rx; + atmel,use-dma-tx; + pinctrl-0 = <&pinctrl_usart1 &pinctrl_usart1_rts &pinctrl_usart1_cts + &pinctrl_usart1_rng &pinctrl_usart1_dcd &pinctrl_usart1_dtr>; + rng-gpios = <&pioA 27 GPIO_ACTIVE_LOW>; + dcd-gpios = <&pioA 26 GPIO_ACTIVE_LOW>; + dtr-gpios = <&pioA 25 GPIO_ACTIVE_LOW>; + dma-names = "tx", "rx"; +}; + + +&usart3 { + status = "disabled"; + atmel,use-dma-rx; + atmel,use-dma-tx; + pinctrl-0 = <&pinctrl_usart3 &pinctrl_usart3_rts &pinctrl_usart3_cts + &pinctrl_usart3_rng &pinctrl_usart3_dcd &pinctrl_usart3_dtr>; + rng-gpios = <&pioC 14 GPIO_ACTIVE_LOW>; + dcd-gpios = <&pioC 13 GPIO_ACTIVE_LOW>; + dtr-gpios = <&pioC 12 GPIO_ACTIVE_LOW>; + dma-names = "tx", "rx"; +}; + +/* Explicit phandles for overlays + * Compiler generated low values + */ +&pioA { + phandle = ; + phandle,linux = ; +}; +&pioB { + phandle = ; + phandle,linux = ; +}; +&pioC { + phandle = ; + phandle,linux = ; +}; +&pioD { + phandle = ; + phandle,linux = ; +}; +&gpio4 { + phandle = ; + phandle,linux = ; +}; +&gpio5 { + phandle = ; + phandle,linux = ; +}; +&mmc0 { + slot@0 { + cd-gpios = <&pioA 1 GPIO_ACTIVE_HIGH>; }; +}; - leds { - compatible = "gpio-leds"; - status = "disabled"; +&pinctrl_ebi_data_0_7 { + atmel,pins = + ; +}; + +&pinctrl_ebi_addr_nand { + atmel,pins = + ; +}; + +&ebi { + nand-controller { + nand@3 { + rb-gpios = <&pioC 31 GPIO_ACTIVE_HIGH>; + cs-gpios = <&pioD 4 GPIO_ACTIVE_HIGH>; + nand-ecc-strength=<4>; + partitions { + /delete-node/ ubootenvred@100000; + /delete-node/ ubootenv@140000; + /delete-node/ dtb@180000; + /delete-node/ kernel@200000; + /delete-node/ rootfs@800000; + nand@0 { + label = "NANDFlash"; + reg = <0x0 0x10000000>; + }; + + at91bootstrap@0 { + label = "at91bootstrap"; + reg = <0x0 0x40000>; + }; + + uboot@40000 { + label = "u-Boot"; + reg = <0x40000 0x80000>; + }; + + ubootconfig0@c0000 { + label = "u-Boot Config"; + reg = <0xc0000 0xa0000>; + }; - led-status { - label = "led-status"; // LED2 - gpios = <&pioA 24 GPIO_ACTIVE_LOW>; // All - linux,default-trigger = "default-on"; + ubootconfig1@160000 { + label = "u-Boot Redundant Config"; + reg = <0x160000 0xa0000>; + }; + + uImage@200000 { + label = "uImage"; + reg = <0x200000 0x600000>; + }; + + config0@800000 { + label = "Config"; + reg = <0x800000 0x800000>; + }; + + config1@1000000 { + label = "OEM Config"; + reg = <0x1000000 0x800000>; + }; + + rootfs@1800000 { + label = "Rootfs"; + reg = <0x1800000 0x8000000>; + }; + + user@9800000 { + label = "User data"; + reg = <0x9800000 0x6800000>; + }; + }; }; }; +}; - /* GPS-PPS input on AP1 */ - pps-0 { - compatible = "pps-gpio"; - gpios = <&pioA 29 0>; - capture-clear; - status = "okay"; - }; +&pinctrl_nand_oe_we { + atmel,pins = + ; +}; - 1wire_cm { - compatible = "w1-gpio"; - gpios = <&pioB 18 GPIO_ACTIVE_HIGH>; - linux,open-drain; - pinctrl-names = "default"; - pinctrl-0 = <&pinctrl_1wire_cm>; - status = "disabled"; - }; +&pinctrl_nand_rb { + atmel,pins = + ; +}; - /* pca953x driver wants a regulator - * This dummy regulator prevents warnings */ - dummy_reg: regulator@0 { - compatible = "regulator-fixed"; - regulator-name = "dummy-supply"; - }; +&pinctrl_nand_cs { + atmel,pins = + ; }; diff --git a/recipes-kernel/linux/linux-at91_5.4.81.bb b/recipes-kernel/linux/linux-at91_5.4.81.bb index 1ebe14e..bda2101 100644 --- a/recipes-kernel/linux/linux-at91_5.4.81.bb +++ b/recipes-kernel/linux/linux-at91_5.4.81.bb @@ -51,7 +51,6 @@ COMMON_PATCHES = " \ SRC_URI_append_mtcdt = "\ ${COMMON_PATCHES} \ file://linux-5.4-reserve-5-bit-serial-for-multidrop.patch \ - file://linux-5.4-export_name_to_desc.patch \ file://linux-5.4-rs485-atmel-crtscts.patch \ " SRC_URI_append_mtrv1 = "\ -- cgit v1.2.3