diff options
Diffstat (limited to 'recipes-kernel')
-rw-r--r-- | recipes-kernel/linux/crypto.inc | 4 | ||||
-rw-r--r-- | recipes-kernel/linux/driver.inc | 2 | ||||
-rw-r--r-- | recipes-kernel/linux/linux-at91-4.9.87/defconfig | 4 | ||||
-rw-r--r-- | recipes-kernel/linux/linux-at91-4.9.87/mtre/linux-4.9-mtre-device-tree.patch | 517 | ||||
-rw-r--r-- | recipes-kernel/linux/linux-at91_4.9.87.bb | 7 | ||||
-rw-r--r-- | recipes-kernel/linux/linux-at91_5.4.81.bb.orig (renamed from recipes-kernel/linux/linux-at91_5.4.81.bb) | 0 | ||||
-rw-r--r-- | recipes-kernel/linux/net.inc | 4 | ||||
-rw-r--r-- | recipes-kernel/vizzini/vizzini-1.1/vizzini-1.1-ledrtig.patch | 117 | ||||
-rw-r--r-- | recipes-kernel/vizzini/vizzini_1.1.bb | 2 |
9 files changed, 654 insertions, 3 deletions
diff --git a/recipes-kernel/linux/crypto.inc b/recipes-kernel/linux/crypto.inc index a557ded..1d8e2ba 100644 --- a/recipes-kernel/linux/crypto.inc +++ b/recipes-kernel/linux/crypto.inc @@ -15,3 +15,7 @@ KERNEL_MODULE_AUTOLOAD_mtr += " \ KERNEL_MODULE_AUTOLOAD_mtcap += " \ sha512_generic \ " + +KERNEL_MODULE_AUTOLOAD_mtre += " \ + sha512_generic \ +" diff --git a/recipes-kernel/linux/driver.inc b/recipes-kernel/linux/driver.inc index 5e21ed6..82c4747 100644 --- a/recipes-kernel/linux/driver.inc +++ b/recipes-kernel/linux/driver.inc @@ -20,3 +20,5 @@ KERNEL_MODULE_AUTOLOAD_mtcap += "${DRIVER_LOAD_ALL_MACHINES}" KERNEL_MODULE_AUTOLOAD_mtrv1 += "${DRIVER_LOAD_ALL_MACHINES}" KERNEL_MODULE_AUTOLOAD_mtr += "${DRIVER_LOAD_ALL_MACHINES}" + +KERNEL_MODULE_AUTOLOAD_mtre += "${DRIVER_LOAD_ALL_MACHINES}"
\ No newline at end of file diff --git a/recipes-kernel/linux/linux-at91-4.9.87/defconfig b/recipes-kernel/linux/linux-at91-4.9.87/defconfig index 79285b4..10aae27 100644 --- a/recipes-kernel/linux/linux-at91-4.9.87/defconfig +++ b/recipes-kernel/linux/linux-at91-4.9.87/defconfig @@ -3050,7 +3050,7 @@ CONFIG_LEDS_GPIO=y # CONFIG_LEDS_LP5562 is not set # CONFIG_LEDS_LP8501 is not set # CONFIG_LEDS_LP8860 is not set -# CONFIG_LEDS_PCA955X is not set +CONFIG_LEDS_PCA955X=m # CONFIG_LEDS_PCA963X is not set # CONFIG_LEDS_DAC124S085 is not set CONFIG_LEDS_PWM=y @@ -3115,7 +3115,7 @@ CONFIG_RTC_INTF_DEV=y # # CONFIG_RTC_DRV_ABB5ZES3 is not set # CONFIG_RTC_DRV_ABX80X is not set -# CONFIG_RTC_DRV_DS1307 is not set +CONFIG_RTC_DRV_DS1307=m # CONFIG_RTC_DRV_DS1374 is not set # CONFIG_RTC_DRV_DS1672 is not set # CONFIG_RTC_DRV_HYM8563 is not set diff --git a/recipes-kernel/linux/linux-at91-4.9.87/mtre/linux-4.9-mtre-device-tree.patch b/recipes-kernel/linux/linux-at91-4.9.87/mtre/linux-4.9-mtre-device-tree.patch new file mode 100644 index 0000000..77f6caa --- /dev/null +++ b/recipes-kernel/linux/linux-at91-4.9.87/mtre/linux-4.9-mtre-device-tree.patch @@ -0,0 +1,517 @@ +diff -Naru linux-4.9.87.orig/arch/arm/boot/dts/mtre.dts linux-4.9.87/arch/arm/boot/dts/mtre.dts +--- linux-4.9.87.orig/arch/arm/boot/dts/mtre.dts 1969-12-31 18:00:00.000000000 -0600 ++++ linux-4.9.87/arch/arm/boot/dts/mtre.dts 2019-05-07 19:03:19.378605555 -0500 +@@ -0,0 +1,266 @@ ++/* ++ * DTS file for Multi-Tech Systems MTRE Hardware ++ * ++ * Copyright (C) 2016 by Multi-Tech Systems, ++ * ++ * Licensed under GPLv2 or later. ++ */ ++ ++/dts-v1/; ++#include "at91sam9g25.dtsi" ++#include "at91sam9x5ek.dtsi" ++ ++/ { ++ model = "Multi-Tech Systems MTRE"; ++ compatible = "atmel,at91sam9g25ek", "atmel,at91sam9x5ek", "atmel,at91sam9x5", "atmel,at91sam9"; ++ aliases { ++ serial1 = &uart0; ++ }; ++ ++ chosen { ++ bootargs = "mem=128M console=ttyS0,115200 root=/dev/mtdblock8 ro rootfstype=jffs2"; ++ }; ++ ++ memory { ++ reg = <0x20000000 0x8000000>; ++ }; ++ ++ clocks { ++ #address-cells = <1>; ++ #size-cells = <1>; ++ ranges; ++ ++ main_clock: clock@0 { ++ compatible = "atmel,osc", "fixed-clock"; ++ clock-frequency = <12000000>; ++ }; ++ }; ++ ++ ahb { ++ apb { ++ /delete-node/ spi@f0004000; ++ macb0: ethernet@f802c000 { ++ phy-mode = "rmii"; ++ status = "okay"; ++ }; ++ ++ ++ pinctrl@fffff400 { ++ nand { ++ pinctrl_nand: nand-0 { ++ atmel,pins = ++ <AT91_PIOD 0 AT91_PERIPH_A AT91_PINCTRL_PULL_UP /* PD0 periph A Read Enable */ ++ AT91_PIOD 1 AT91_PERIPH_A AT91_PINCTRL_PULL_UP /* PD1 periph A Write Enable */ ++ AT91_PIOD 2 AT91_PERIPH_A AT91_PINCTRL_PULL_UP /* PD2 periph A Address Latch Enable */ ++ AT91_PIOD 3 AT91_PERIPH_A AT91_PINCTRL_PULL_UP /* PD3 periph A Command Latch Enable */ ++ AT91_PIOD 4 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP /* PD4 gpio Chip Enable pin pull_up */ ++ AT91_PIOC 31 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP /* PC31 gpio RDY/BUSY pin pull_up */ ++ AT91_PIOD 6 AT91_PERIPH_A AT91_PINCTRL_PULL_UP /* PD6 periph A Data bit 0 */ ++ AT91_PIOD 7 AT91_PERIPH_A AT91_PINCTRL_PULL_UP /* PD7 periph A Data bit 1 */ ++ AT91_PIOD 8 AT91_PERIPH_A AT91_PINCTRL_PULL_UP /* PD8 periph A Data bit 2 */ ++ AT91_PIOD 9 AT91_PERIPH_A AT91_PINCTRL_PULL_UP /* PD9 periph A Data bit 3 */ ++ AT91_PIOD 10 AT91_PERIPH_A AT91_PINCTRL_PULL_UP /* PD10 periph A Data bit 4 */ ++ AT91_PIOD 11 AT91_PERIPH_A AT91_PINCTRL_PULL_UP /* PD11 periph A Data bit 5 */ ++ AT91_PIOD 12 AT91_PERIPH_A AT91_PINCTRL_PULL_UP /* PD12 periph A Data bit 6 */ ++ AT91_PIOD 13 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>; /* PD13 periph A Data bit 7 */ ++ }; ++ /delete-node/ nand_16bits-0; ++ }; ++ ++ /delete-node/ spi1; ++ /delete-node/ mmc0; ++ mts-io { ++ pinctrl_mts_io_out: mts_io-0 { ++ atmel,pins = ++ <AT91_PIOD 14 AT91_PERIPH_A AT91_PINCTRL_PULL_UP /* PD14 WiFi BT reset */ ++ AT91_PIOD 16 AT91_PERIPH_A AT91_PINCTRL_PULL_UP /* PD16 Secure reset */ ++ AT91_PIOD 17 AT91_PERIPH_A AT91_PINCTRL_PULL_UP /* PD17 MTQ reset */ ++ AT91_PIOD 18 AT91_PERIPH_A AT91_PINCTRL_PULL_UP /* PD18 USB Hub reset */ ++ AT91_PIOD 19 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>; /* PD19 GNSS Int */ ++ output-high; ++ }; ++ pinctrl_mts_io_in: mts_io-1 { ++ atmel,pins = ++ <AT91_PIOD 20 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>; /* PD20 WiFi_BT_LPMode Input */ ++ }; ++ pinctrl_mts_io_gnss: mts_io-2 { ++ atmel,pins = ++ <AT91_PIOD 15 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>; /* PD20 WiFi_BT_LPMode Input */ ++ output-low; ++ }; ++ }; ++ /* ++ * Pin A23 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_PIOA 23 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_DOWN>; /* PA23 GPIO pull-down radio-monitor */ ++ }; ++ }; ++ ++ 1wire_cm { ++ pinctrl_1wire_cm: 1wire_cm-0 { ++ atmel,pins = <AT91_PIOB 18 AT91_PERIPH_GPIO AT91_PINCTRL_MULTI_DRIVE>; /* PB18 multidrive, conflicts with led */ ++ }; ++ }; ++ }; ++ ++ rtc@fffffeb0 { ++ /* use mcp79410 rtc instead */ ++ status = "disabled"; ++ }; ++ ++ dbgu: serial@fffff200 { ++ status = "okay"; ++ atmel,use-dma-rx; ++ atmel,use-dma-tx; ++ }; ++ ++ spi@f0000000 { ++ /delete-node/ m25p80@0; ++ }; ++ ++ /delete-node/ serial@f801c000; ++ /delete-node/ mmc@f0008000; ++ ++ uart0: serial@f8040000 { ++ status = "okay"; ++ atmel,use-dma-rx; ++ atmel,use-dma-tx; ++ 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"; ++ }; ++ ++ usb2: gadget@f803c000 { ++ /delete-property/ atmel,vbus-gpio; /* mtrv1 has no vbus-gpio */ ++ status = "okay"; ++ }; ++ watchdog@fffffe40 { ++ status = "okay"; ++ }; ++ }; ++ ++ nand0: nand@40000000 { ++ nand-bus-width = <8>; ++ nand-ecc-mode = "hw"; ++ atmel,has-pmecc; /* Enable PMECC */ ++ atmel,pmecc-sector-size = <512>; ++ status = "okay"; ++ reg = < 0x40000000 0x10000000 ++ 0xffffe000 0x600 /* PMECC Registers */ ++ 0xffffe600 0x200 /* PMECC Error Location Registers */ ++ 0x00100000 0x100000 /* PMECC looup table in ROM code */ ++ >; ++ atmel,pmecc-lookup-table-offset = <0x8000 0x10000>; ++ gpios = < &pioC 31 GPIO_ACTIVE_HIGH ++ &pioD 4 GPIO_ACTIVE_HIGH ++ 0 ++ >; ++ atmel,pmecc-cap = <4>; ++ atmel,nand-has-dma; ++ ++ 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 0x4000000>; ++ }; ++ config1@4800000 { ++ label = "OEM Config"; ++ reg = <0x4800000 0x800000>; ++ }; ++ rootfs@5000000 { ++ label = "Rootfs"; ++ reg = <0x5000000 0x8000000>; ++ }; ++ user@D000000 { ++ label = "User data"; ++ reg = <0xD000000 0x3000000>; ++ }; ++ }; ++ ++ usb0: ohci@00600000 { ++ status = "okay"; ++ num-ports = <3>; ++ }; ++ ++ usb1: ehci@00700000 { ++ status = "okay"; ++ }; ++ }; ++ ++ ++ i2c-gpio-0 { ++ status = "okay"; ++ ++ id_eeprom@56 { ++ compatible = "atmel,24c04"; ++ reg = <0x56>; ++ pagesize = <16>; ++ status = "okay"; ++ }; ++ }; ++ ++ i2c-gpio-1 { ++ status = "okay"; ++ ++ pca9552@60 { ++ /* 16-bit I2C LED blinker */ ++ compatible = "nxp,pca9552"; ++ reg = <0x66>; ++ }; ++ ++ mcp79410@6f { ++ /* Battery-backed I2C Real-Time Clock/Calendar */ ++ compatible = "microchip,mcp7941x"; ++ reg = <0x6f>; ++ }; ++ }; ++ ++ pps-0 { ++ compatible = "pps-gpio"; ++ gpios = <&pioB 18 0>; /* MTRV1-0.0 */ ++ capture-clear; ++ status = "okay"; ++ }; ++ ++ mts-io-0 { ++ status = "okay"; ++ compatible = "mts,mts-io"; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_mts_io_out>; ++ pinctrl-1 = <&pinctrl_mts_io_in>; ++ pinctrl-2 = <&pinctrl_mts_io_gnss>; ++ }; ++}; +diff -Naru linux-4.9.87.orig/arch/arm/boot/dts/at91sam9x5cm.dtsi linux-4.9.87/arch/arm/boot/dts/at91sam9x5cm.dtsi +--- linux-4.9.87.orig/arch/arm/boot/dts/at91sam9x5cm.dtsi 2019-01-03 15:21:25.339570341 -0600 ++++ linux-4.9.87/arch/arm/boot/dts/at91sam9x5cm.dtsi 2019-01-03 15:17:51.911576659 -0600 +@@ -43,48 +43,8 @@ + atmel,has-pmecc; /* Enable PMECC */ + atmel,pmecc-cap = <2>; + atmel,pmecc-sector-size = <512>; +- nand-on-flash-bbt; ++ /* nand-on-flash-bbt; */ + status = "okay"; +- +- at91bootstrap@0 { +- label = "at91bootstrap"; +- reg = <0x0 0x40000>; +- }; +- +- uboot@40000 { +- label = "u-boot"; +- reg = <0x40000 0x80000>; +- }; +- +- ubootenv@c0000 { +- label = "U-Boot Env"; +- reg = <0xc0000 0x140000>; +- }; +- +- kernel@200000 { +- label = "kernel"; +- reg = <0x200000 0x600000>; +- }; +- +- rootfs@800000 { +- label = "rootfs"; +- reg = <0x800000 0x1f800000>; +- }; +- }; +- }; +- +- leds { +- compatible = "gpio-leds"; +- +- pb18 { +- label = "pb18"; +- gpios = <&pioB 18 GPIO_ACTIVE_LOW>; +- linux,default-trigger = "heartbeat"; +- }; +- +- pd21 { +- label = "pd21"; +- gpios = <&pioD 21 GPIO_ACTIVE_HIGH>; + }; + }; + +@@ -96,5 +56,4 @@ + pinctrl-0 = <&pinctrl_1wire_cm>; + status = "okay"; + }; +- + }; +diff -Naru linux-4.9.87.orig/arch/arm/boot/dts/at91sam9x5ek.dtsi linux-4.9.87/arch/arm/boot/dts/at91sam9x5ek.dtsi +--- linux-4.9.87.orig/arch/arm/boot/dts/at91sam9x5ek.dtsi 2018-03-27 11:05:05.000000000 -0500 ++++ linux-4.9.87/arch/arm/boot/dts/at91sam9x5ek.dtsi 2019-01-23 19:14:23.443999491 -0600 +@@ -25,23 +25,11 @@ + &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 = <&pioD 15 GPIO_ACTIVE_HIGH>; +- }; +- }; +- +- mmc1: mmc@f000c000 { +- pinctrl-0 = < +- &pinctrl_board_mmc1 +- &pinctrl_mmc1_slot0_clk_cmd_dat0 +- &pinctrl_mmc1_slot0_dat1_3>; +- status = "okay"; +- slot@0 { +- reg = <0>; +- bus-width = <4>; +- cd-gpios = <&pioD 14 GPIO_ACTIVE_HIGH>; ++ cd-gpios = <&pioA 1 GPIO_ACTIVE_HIGH>; + }; + }; + +@@ -58,25 +46,12 @@ + usb2: gadget@f803c000 { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_board_usb2>; +- atmel,vbus-gpio = <&pioB 16 GPIO_ACTIVE_HIGH>; +- status = "okay"; +- }; +- +- i2c0: i2c@f8010000 { +- status = "okay"; +- +- wm8731: wm8731@1a { +- compatible = "wm8731"; +- reg = <0x1a>; +- }; +- }; +- +- adc0: adc@f804c000 { +- atmel,adc-ts-wires = <4>; +- atmel,adc-ts-pressure-threshold = <10000>; ++ /* atmel,vbus-gpio = <&pioB 16 GPIO_ACTIVE_HIGH>; mtcdt: no vbus-gpio */ + status = "okay"; + }; + ++ /* A/D convertor is unusable on Conduit */ ++ + pinctrl@fffff400 { + camera_sensor { + pinctrl_pck0_as_isi_mck: pck0_as_isi_mck-0 { +@@ -118,7 +93,7 @@ + }; + + spi0: spi@f0000000 { +- status = "disabled"; /* conflict with mmc1 */ ++ status = "okay"; + cs-gpios = <&pioA 14 0>, <0>, <0>, <0>; + m25p80@0 { + compatible = "atmel,at25df321a"; +@@ -131,37 +106,20 @@ + status = "okay"; + }; + +- ssc0: ssc@f0010000 { +- status = "okay"; +- }; + }; + + usb0: ohci@00600000 { + status = "okay"; + 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 ++ // >; + }; + + usb1: ehci@00700000 { + status = "okay"; + }; + }; +- +- 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>; +- }; + }; +diff -Naru linux-4.9.87.orig/arch/arm/boot/dts/Makefile linux-4.9.87/arch/arm/boot/dts/Makefile +--- linux-4.9.87.orig/arch/arm/boot/dts/Makefile 2019-01-03 15:21:25.339570341 -0600 ++++ linux-4.9.87/arch/arm/boot/dts/Makefile 2019-01-03 15:17:51.911576659 -0600 +@@ -43,7 +43,8 @@ + at91sam9g25ek.dtb \ + at91sam9g35ek.dtb \ + at91sam9x25ek.dtb \ +- at91sam9x35ek.dtb ++ at91sam9x35ek.dtb \ ++ mtre.dtb + dtb-$(CONFIG_SOC_SAM_V7) += \ + at91-kizbox2.dtb \ + at91-sama5d2_ptc_ek.dtb \ +diff -Naru linux-4.9.87.orig/arch/arm/boot/dts/at91sam9x5.dtsi linux-4.9.87/arch/arm/boot/dts/at91sam9x5.dtsi +--- linux-4.9.87.orig/arch/arm/boot/dts/at91sam9x5.dtsi 2019-01-03 15:21:25.339570341 -0600 ++++ linux-4.9.87/arch/arm/boot/dts/at91sam9x5.dtsi 2019-01-03 15:17:51.911576659 -0600 +@@ -32,9 +32,6 @@ + gpio3 = &pioD; + tcb0 = &tcb0; + tcb1 = &tcb1; +- i2c0 = &i2c0; +- i2c1 = &i2c1; +- i2c2 = &i2c2; + ssc0 = &ssc0; + pwm0 = &pwm0; + }; +@@ -963,50 +960,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 = <&twi0_clk>; +- status = "disabled"; +- }; +- +- 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 = <&twi1_clk>; +- 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 = <&twi2_clk>; +- status = "disabled"; +- }; ++ /* /delete_node/ command does not work. */ + + uart0: serial@f8040000 { + compatible = "atmel,at91sam9260-usart"; diff --git a/recipes-kernel/linux/linux-at91_4.9.87.bb b/recipes-kernel/linux/linux-at91_4.9.87.bb index ba3c1de..b546c2e 100644 --- a/recipes-kernel/linux/linux-at91_4.9.87.bb +++ b/recipes-kernel/linux/linux-at91_4.9.87.bb @@ -76,6 +76,10 @@ SRC_URI_append_mtr = "\ file://fix-atmel-mci-reg-overloading.patch \ file://wl12xx_enable_disable.patch \ " +SRC_URI_append_mtre = "\ + ${COMMON_PATCHES} \ + file://linux-4.9-mtre-device-tree.patch \ + " KERNEL_MODULE_AUTOLOAD_mtcap_append += "i2c-dev" KERNEL_MODULE_AUTOLOAD_mtcdt_append += "i2c-dev" KERNEL_MODULE_AUTOLOAD_append += "softdog" @@ -84,6 +88,7 @@ DTB_APPEND_mtcdt = "mtcdt" DTB_APPEND_mtrv1 = "mtrv1" DTB_APPEND_mtcap = "mtcap" DTB_APPEND_mtr = "mtr" +DTB_APPEND_mtre = "mtre" python __anonymous () { if d.getVar('UBOOT_FIT_IMAGE', True) == 'xyes': @@ -122,7 +127,7 @@ kernel_do_configure_append() { KERNEL_MODULE_PACKAGE_SUFFIX="" -COMPATIBLE_MACHINE = "(mtcdt|mtrv1|mtr|mtcap|mths)" +COMPATIBLE_MACHINE = "(mtcdt|mtrv1|mtr|mtcap|mths|mtre)" pkg_preinst_kernel-image-uimage() { set -x diff --git a/recipes-kernel/linux/linux-at91_5.4.81.bb b/recipes-kernel/linux/linux-at91_5.4.81.bb.orig index acb0272..acb0272 100644 --- a/recipes-kernel/linux/linux-at91_5.4.81.bb +++ b/recipes-kernel/linux/linux-at91_5.4.81.bb.orig diff --git a/recipes-kernel/linux/net.inc b/recipes-kernel/linux/net.inc index 5a78b44..655d172 100644 --- a/recipes-kernel/linux/net.inc +++ b/recipes-kernel/linux/net.inc @@ -105,4 +105,8 @@ KERNEL_MODULE_AUTOLOAD_mtr += " \ KERNEL_MODULE_AUTOLOAD_mtcap += " \ ${NET_LOAD_ALL_MACHINES} \ " +KERNEL_MODULE_AUTOLOAD_mtre += " \ + ${NET_LOAD_ALL_MACHINES} \ +" + diff --git a/recipes-kernel/vizzini/vizzini-1.1/vizzini-1.1-ledrtig.patch b/recipes-kernel/vizzini/vizzini-1.1/vizzini-1.1-ledrtig.patch new file mode 100644 index 0000000..7d8e03a --- /dev/null +++ b/recipes-kernel/vizzini/vizzini-1.1/vizzini-1.1-ledrtig.patch @@ -0,0 +1,117 @@ +diff -ur orig/vizzini.c new/vizzini.c +--- orig/vizzini.c 2017-07-21 13:55:37.000000000 +0300 ++++ new/vizzini.c 2017-07-20 15:37:52.000000000 +0300 +@@ -54,6 +54,8 @@ + #include <linux/fcntl.h> + #include <asm/uaccess.h> + ++#include <linux/leds.h> ++ + + #include "vizzini.h" + #include "vzioctl.h" +@@ -71,6 +73,38 @@ + static DEFINE_MUTEX(xr21v141x_table_lock); + + /* ++ * LED triggers ++ */ ++ ++static void xr21v141x_register_led_triggers(struct xr21v141x *xr21v141x) ++{ ++#ifdef CONFIG_LEDS_TRIGGERS ++ xr21v141x->led_trigger_rx_delay_on = 50; ++ xr21v141x->led_trigger_rx_delay_off = 1; ++ sprintf(xr21v141x->led_trigger_rx_name, "vizzini%d-rx", xr21v141x->minor); ++ led_trigger_register_simple(xr21v141x->led_trigger_rx_name, &xr21v141x->led_trigger_rx); ++ ++ xr21v141x->led_trigger_tx_delay_on = 50; ++ xr21v141x->led_trigger_tx_delay_off = 1; ++ sprintf(xr21v141x->led_trigger_tx_name, "vizzini%d-tx", xr21v141x->minor); ++ led_trigger_register_simple(xr21v141x->led_trigger_tx_name, &xr21v141x->led_trigger_tx); ++ ++ dev_info(&xr21v141x->control->dev, "%s and %s led triggers registered\n", ++ xr21v141x->led_trigger_rx_name, xr21v141x->led_trigger_tx_name); ++#endif ++} ++ ++static void xr21v141x_unregister_led_triggers(struct xr21v141x *xr21v141x) ++{ ++#ifdef CONFIG_LEDS_TRIGGERS ++ led_trigger_unregister_simple(xr21v141x->led_trigger_rx); ++ led_trigger_unregister_simple(xr21v141x->led_trigger_tx); ++ dev_info(&xr21v141x->control->dev, "led triggers unregistered\n"); ++#endif ++} ++ ++ ++/* + * Functions for ACM control messages. + */ + +@@ -330,6 +364,11 @@ + if (!urb->actual_length) + return; + ++#ifdef CONFIG_LEDS_TRIGGERS ++ led_trigger_blink_oneshot(xr21v141x->led_trigger_rx, ++ &xr21v141x->led_trigger_rx_delay_on, ++ &xr21v141x->led_trigger_rx_delay_off, 0); ++#endif + + tty_insert_flip_string(&xr21v141x->port, urb->transfer_buffer, urb->actual_length); + tty_flip_buffer_push(&xr21v141x->port); +@@ -653,6 +692,12 @@ + + spin_unlock_irqrestore(&xr21v141x->write_lock, flags); + ++#ifdef CONFIG_LEDS_TRIGGERS ++ led_trigger_blink_oneshot(xr21v141x->led_trigger_tx, ++ &xr21v141x->led_trigger_tx_delay_on, ++ &xr21v141x->led_trigger_tx_delay_off, 0); ++#endif ++ + + if (stat < 0) + return stat; +@@ -1723,6 +1768,9 @@ + } + #endif + ++ ++ xr21v141x_register_led_triggers(xr21v141x); ++ + return 0; + alloc_fail8: + if (xr21v141x->country_codes) { +@@ -1817,6 +1865,8 @@ + xr21v141x->data : xr21v141x->control); + + tty_port_put(&xr21v141x->port); ++ ++ xr21v141x_unregister_led_triggers(xr21v141x); + } + + #ifdef CONFIG_PM +diff -ur orig/vizzini.h new/vizzini.h +--- orig/vizzini.h 2017-07-21 13:55:37.000000000 +0300 ++++ new/vizzini.h 2017-07-20 15:36:57.000000000 +0300 +@@ -282,6 +282,18 @@ + #ifdef VIZZINI_IWA + int iwa; + #endif ++ ++#ifdef CONFIG_LEDS_TRIGGERS ++ char led_trigger_rx_name[32]; ++ unsigned long led_trigger_rx_delay_on; ++ unsigned long led_trigger_rx_delay_off; ++ struct led_trigger *led_trigger_rx; ++ char led_trigger_tx_name[32]; ++ unsigned long led_trigger_tx_delay_on; ++ unsigned long led_trigger_tx_delay_off; ++ struct led_trigger *led_trigger_tx; ++#endif ++ + struct serial_rs485 rs485; + }; + diff --git a/recipes-kernel/vizzini/vizzini_1.1.bb b/recipes-kernel/vizzini/vizzini_1.1.bb index 17bbe39..93eb74b 100644 --- a/recipes-kernel/vizzini/vizzini_1.1.bb +++ b/recipes-kernel/vizzini/vizzini_1.1.bb @@ -7,5 +7,7 @@ SRC_URI += "file://xr21v141x-lnx3.10-3.11.tar.gz \ file://vizzini-1.1-enable-cts-v2.patch \ file://vizzini-1.1-rs485.patch \ " +SRC_URI_append_mtre = "file://vizzini-1.1-ledrtig.patch \ + " S = "${WORKDIR}/xr21v141x-lnx3.10-3.11" |