From 31ca766f531a6e2d03356dc6d37f71a185cd8a00 Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Sat, 20 Apr 2019 12:51:29 +0200 Subject: [PATCH 1/5] Slice, Slice3: drop devicetree overlays in DEVICE config dir Signed-off-by: Matthias Reichl --- .../devices/Slice/config/slice-overlay.dts | 112 ------------------ .../devices/Slice/config/ws2812-overlay.dts | 43 ------- projects/RPi/devices/Slice/options | 3 - .../devices/Slice3/config/slice-overlay.dts | 112 ------------------ .../devices/Slice3/config/ws2812-overlay.dts | 43 ------- projects/RPi/devices/Slice3/options | 3 - 6 files changed, 316 deletions(-) delete mode 100644 projects/RPi/devices/Slice/config/slice-overlay.dts delete mode 100644 projects/RPi/devices/Slice/config/ws2812-overlay.dts delete mode 100644 projects/RPi/devices/Slice3/config/slice-overlay.dts delete mode 100644 projects/RPi/devices/Slice3/config/ws2812-overlay.dts diff --git a/projects/RPi/devices/Slice/config/slice-overlay.dts b/projects/RPi/devices/Slice/config/slice-overlay.dts deleted file mode 100644 index a13e86478e..0000000000 --- a/projects/RPi/devices/Slice/config/slice-overlay.dts +++ /dev/null @@ -1,112 +0,0 @@ -// Definitions for Slice hardware -/dts-v1/; -/plugin/; - -#include "dt-bindings/clock/bcm2835.h" -#include "dt-bindings/pinctrl/bcm2835.h" - -/ { - compatible = "brcm,bcm2708"; - - // disable analog audio - fragment@0 { - target = <&audio>; - __overlay__ { - status = "disabled"; - }; - }; - - // pinctrl definitions - fragment@1 { - target = <&gpio>; - __overlay__ { - // configure I2S to GPIO 28-31 - slice_i2s_pins: slice_i2s_pins { - brcm,pins = <28 29 30 31>; - brcm,function = ; - }; - slice_ir_pins: slice_ir_pins { - brcm,pins = <37>; - brcm,function = ; - brcm,pull = ; - }; - cs4265_reset_pins: cs4265_reset_pins { - brcm,pins = <33>; - brcm,function = ; - }; - }; - }; - - // IR receiver - fragment@2 { - target-path = "/"; - __overlay__ { - gpio_ir: ir-receiver { - compatible = "gpio-ir-receiver"; - pinctrl-names = "default"; - pinctrl-0 = <&slice_ir_pins>; - gpios = <&gpio 37 1>; - linux,rc-map-name = "rc-rc6-mce"; - status = "okay"; - }; - }; - }; - - // enable I2S - fragment@3 { - target = <&i2s>; - __overlay__ { - pinctrl-names = "default"; - pinctrl-0 = <&slice_i2s_pins>; - status = "okay"; - }; - }; - - // I2C - fragment@4 { - target = <&i2c1>; - __overlay__ { - #address-cells = <1>; - #size-cells = <0>; - status = "okay"; - - pinctrl-names = "default"; - pinctrl-0 = <&i2c1_gpio44>; // use GPIO 44/45 for I2C1 - - clock-frequency = <100000>; - - pcf8523@68 { - compatible = "nxp,pcf8523"; - reg = <0x68>; - nxp,xtalcap-7pf; // set crystal load to 7pf - status = "okay"; - }; - - cs4265@4e { - #sound-dai-cells = <0>; - compatible = "cirrus,cs4265"; - reg = <0x4e>; - - pinctrl-names = "default"; - pinctrl-0 = <&cs4265_reset_pins>; - - cs4265-reset-gpios = <&gpio 33 0>; /* AUD_RST_N on GPIO33 */ - cirrus,no-s16le; // remove S16LE support to workaround I2S controller issue - status = "okay"; - }; - }; - }; - - // Audio driver - fragment@5 { - target = <&sound>; - __overlay__ { - compatible = "fiveninjas,slice"; - clocks = <&clocks BCM2835_CLOCK_GP0>; - clock-names = "gp0"; - i2s-controller = <&i2s>; - status = "okay"; - }; - }; - -}; diff --git a/projects/RPi/devices/Slice/config/ws2812-overlay.dts b/projects/RPi/devices/Slice/config/ws2812-overlay.dts deleted file mode 100644 index f7d745bcab..0000000000 --- a/projects/RPi/devices/Slice/config/ws2812-overlay.dts +++ /dev/null @@ -1,43 +0,0 @@ -/dts-v1/; -/plugin/; - -/ { - compatible = "brcm,bcm2708"; - - // disable pwm - fragment@0 { - target = <&pwm>; - __overlay__ { - status = "disabled"; - }; - }; - - fragment@1 { - target = <&soc>; - __overlay__ { - #address-cells = <1>; - #size-cells = <1>; - - ws2812: ws2812 { - compatible = "rpi,ws2812"; - pinctrl-names = "default"; - pinctrl-0 = <&pwm0_gpio40>; - reg = <0x7e20c000 0x100>; /* PWM */ - dmas = <&dma 5>; - dma-names = "pwm_dma"; - led-en-gpios = <&gpio 43 0>; - - rpi,invert = <1>; - rpi,num_leds = <25>; - - status = "okay"; - - }; - }; - }; - - __overrides__ { - invert = <&ws2812>,"rpi,invert:0"; - num_leds = <&ws2812>,"rpi,num_leds:0"; - }; -}; diff --git a/projects/RPi/devices/Slice/options b/projects/RPi/devices/Slice/options index be9ad09866..7abb96dacc 100644 --- a/projects/RPi/devices/Slice/options +++ b/projects/RPi/devices/Slice/options @@ -2,9 +2,6 @@ # Device defaults ################################################################################ - # Additional kernel make parameters - KERNEL_MAKE_EXTRACMD+=" overlays/slice.dtbo overlays/ws2812.dtbo" - # NOOBS supported hex versions (legacy) NOOBS_HEX="2,3,4,5,6,7,8,9,d,e,f,10,11,12,14,19,0092,0093" diff --git a/projects/RPi/devices/Slice3/config/slice-overlay.dts b/projects/RPi/devices/Slice3/config/slice-overlay.dts deleted file mode 100644 index a13e86478e..0000000000 --- a/projects/RPi/devices/Slice3/config/slice-overlay.dts +++ /dev/null @@ -1,112 +0,0 @@ -// Definitions for Slice hardware -/dts-v1/; -/plugin/; - -#include "dt-bindings/clock/bcm2835.h" -#include "dt-bindings/pinctrl/bcm2835.h" - -/ { - compatible = "brcm,bcm2708"; - - // disable analog audio - fragment@0 { - target = <&audio>; - __overlay__ { - status = "disabled"; - }; - }; - - // pinctrl definitions - fragment@1 { - target = <&gpio>; - __overlay__ { - // configure I2S to GPIO 28-31 - slice_i2s_pins: slice_i2s_pins { - brcm,pins = <28 29 30 31>; - brcm,function = ; - }; - slice_ir_pins: slice_ir_pins { - brcm,pins = <37>; - brcm,function = ; - brcm,pull = ; - }; - cs4265_reset_pins: cs4265_reset_pins { - brcm,pins = <33>; - brcm,function = ; - }; - }; - }; - - // IR receiver - fragment@2 { - target-path = "/"; - __overlay__ { - gpio_ir: ir-receiver { - compatible = "gpio-ir-receiver"; - pinctrl-names = "default"; - pinctrl-0 = <&slice_ir_pins>; - gpios = <&gpio 37 1>; - linux,rc-map-name = "rc-rc6-mce"; - status = "okay"; - }; - }; - }; - - // enable I2S - fragment@3 { - target = <&i2s>; - __overlay__ { - pinctrl-names = "default"; - pinctrl-0 = <&slice_i2s_pins>; - status = "okay"; - }; - }; - - // I2C - fragment@4 { - target = <&i2c1>; - __overlay__ { - #address-cells = <1>; - #size-cells = <0>; - status = "okay"; - - pinctrl-names = "default"; - pinctrl-0 = <&i2c1_gpio44>; // use GPIO 44/45 for I2C1 - - clock-frequency = <100000>; - - pcf8523@68 { - compatible = "nxp,pcf8523"; - reg = <0x68>; - nxp,xtalcap-7pf; // set crystal load to 7pf - status = "okay"; - }; - - cs4265@4e { - #sound-dai-cells = <0>; - compatible = "cirrus,cs4265"; - reg = <0x4e>; - - pinctrl-names = "default"; - pinctrl-0 = <&cs4265_reset_pins>; - - cs4265-reset-gpios = <&gpio 33 0>; /* AUD_RST_N on GPIO33 */ - cirrus,no-s16le; // remove S16LE support to workaround I2S controller issue - status = "okay"; - }; - }; - }; - - // Audio driver - fragment@5 { - target = <&sound>; - __overlay__ { - compatible = "fiveninjas,slice"; - clocks = <&clocks BCM2835_CLOCK_GP0>; - clock-names = "gp0"; - i2s-controller = <&i2s>; - status = "okay"; - }; - }; - -}; diff --git a/projects/RPi/devices/Slice3/config/ws2812-overlay.dts b/projects/RPi/devices/Slice3/config/ws2812-overlay.dts deleted file mode 100644 index f7d745bcab..0000000000 --- a/projects/RPi/devices/Slice3/config/ws2812-overlay.dts +++ /dev/null @@ -1,43 +0,0 @@ -/dts-v1/; -/plugin/; - -/ { - compatible = "brcm,bcm2708"; - - // disable pwm - fragment@0 { - target = <&pwm>; - __overlay__ { - status = "disabled"; - }; - }; - - fragment@1 { - target = <&soc>; - __overlay__ { - #address-cells = <1>; - #size-cells = <1>; - - ws2812: ws2812 { - compatible = "rpi,ws2812"; - pinctrl-names = "default"; - pinctrl-0 = <&pwm0_gpio40>; - reg = <0x7e20c000 0x100>; /* PWM */ - dmas = <&dma 5>; - dma-names = "pwm_dma"; - led-en-gpios = <&gpio 43 0>; - - rpi,invert = <1>; - rpi,num_leds = <25>; - - status = "okay"; - - }; - }; - }; - - __overrides__ { - invert = <&ws2812>,"rpi,invert:0"; - num_leds = <&ws2812>,"rpi,num_leds:0"; - }; -}; diff --git a/projects/RPi/devices/Slice3/options b/projects/RPi/devices/Slice3/options index fdc7c920e9..a321f10fef 100644 --- a/projects/RPi/devices/Slice3/options +++ b/projects/RPi/devices/Slice3/options @@ -2,9 +2,6 @@ # Device defaults ################################################################################ - # Additional kernel make parameters - KERNEL_MAKE_EXTRACMD+=" overlays/slice.dtbo overlays/ws2812.dtbo" - # NOOBS supported hex versions (legacy) NOOBS_HEX="1040,1041,2082" From caa8ec28d0cbb773f3af3724cf10a6a16ebce16e Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Sat, 20 Apr 2019 12:58:09 +0200 Subject: [PATCH 2/5] linux: drop copying devicetree overlay files into kernel source dir This hacky approach stopped working with kernel 5.0 and is no longer used by and projects/devices in LibreELEC. Signed-off-by: Matthias Reichl --- packages/linux/package.mk | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/packages/linux/package.mk b/packages/linux/package.mk index 587750ab70..c586fecbba 100644 --- a/packages/linux/package.mk +++ b/packages/linux/package.mk @@ -89,16 +89,6 @@ post_patch() { sed -i -e "s|^CONFIG_ISCSI_IBFT_FIND=.*$|# CONFIG_ISCSI_IBFT_FIND is not set|" $PKG_BUILD/.config sed -i -e "s|^CONFIG_ISCSI_IBFT=.*$|# CONFIG_ISCSI_IBFT is not set|" $PKG_BUILD/.config fi - - # install extra dts files - for f in $PROJECT_DIR/$PROJECT/config/*-overlay.dts; do - [ -f "$f" ] && cp -v $f $PKG_BUILD/arch/$TARGET_KERNEL_ARCH/boot/dts/overlays || true - done - if [ -n "$DEVICE" ]; then - for f in $PROJECT_DIR/$PROJECT/devices/$DEVICE/config/*-overlay.dts; do - [ -f "$f" ] && cp -v $f $PKG_BUILD/arch/$TARGET_KERNEL_ARCH/boot/dts/overlays || true - done - fi } make_host() { From 5f7f7e68e0c5e4c8672acf935a8fe8d27df16202 Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Sat, 20 Apr 2019 15:43:44 +0200 Subject: [PATCH 3/5] Slice,Slice3: drop pcf8523 patch Setting the xtal load capacitance is possible since kernel 5.1 Signed-off-by: Matthias Reichl --- .../patches/linux/linux-04-rtc-pcf8523-c.patch | 17 ----------------- .../patches/linux/linux-04-rtc-pcf8523-c.patch | 17 ----------------- 2 files changed, 34 deletions(-) delete mode 100644 projects/RPi/devices/Slice/patches/linux/linux-04-rtc-pcf8523-c.patch delete mode 100644 projects/RPi/devices/Slice3/patches/linux/linux-04-rtc-pcf8523-c.patch diff --git a/projects/RPi/devices/Slice/patches/linux/linux-04-rtc-pcf8523-c.patch b/projects/RPi/devices/Slice/patches/linux/linux-04-rtc-pcf8523-c.patch deleted file mode 100644 index da7593ed7e..0000000000 --- a/projects/RPi/devices/Slice/patches/linux/linux-04-rtc-pcf8523-c.patch +++ /dev/null @@ -1,17 +0,0 @@ ---- a/drivers/rtc/rtc-pcf8523.c 2016-10-01 10:16:30.259771931 +0100 -+++ b/drivers/rtc/rtc-pcf8523.c 2016-10-01 10:21:29.762638800 +0100 -@@ -291,7 +291,13 @@ static int pcf8523_probe(struct i2c_clie - if (!pcf) - return -ENOMEM; - -- err = pcf8523_select_capacitance(client, true); -+ if (of_property_read_bool(client->dev.of_node, "nxp,xtalcap-7pf")) { -+ printk(KERN_ERR "PCF8523 - set 7pF crystal load"); -+ err = pcf8523_select_capacitance(client, false); -+ } else { -+ printk(KERN_ERR "PCF8523 - set 12pF crystal load"); -+ err = pcf8523_select_capacitance(client, true); -+ } - if (err < 0) - return err; - diff --git a/projects/RPi/devices/Slice3/patches/linux/linux-04-rtc-pcf8523-c.patch b/projects/RPi/devices/Slice3/patches/linux/linux-04-rtc-pcf8523-c.patch deleted file mode 100644 index da7593ed7e..0000000000 --- a/projects/RPi/devices/Slice3/patches/linux/linux-04-rtc-pcf8523-c.patch +++ /dev/null @@ -1,17 +0,0 @@ ---- a/drivers/rtc/rtc-pcf8523.c 2016-10-01 10:16:30.259771931 +0100 -+++ b/drivers/rtc/rtc-pcf8523.c 2016-10-01 10:21:29.762638800 +0100 -@@ -291,7 +291,13 @@ static int pcf8523_probe(struct i2c_clie - if (!pcf) - return -ENOMEM; - -- err = pcf8523_select_capacitance(client, true); -+ if (of_property_read_bool(client->dev.of_node, "nxp,xtalcap-7pf")) { -+ printk(KERN_ERR "PCF8523 - set 7pF crystal load"); -+ err = pcf8523_select_capacitance(client, false); -+ } else { -+ printk(KERN_ERR "PCF8523 - set 12pF crystal load"); -+ err = pcf8523_select_capacitance(client, true); -+ } - if (err < 0) - return err; - From 4e301b6fc796810c2642b76580d45a0da0d7474e Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Sat, 20 Apr 2019 15:46:40 +0200 Subject: [PATCH 4/5] slice-drivers: update to lastest version with included DT overlays Signed-off-by: Matthias Reichl --- packages/linux-drivers/slice-drivers/package.mk | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/packages/linux-drivers/slice-drivers/package.mk b/packages/linux-drivers/slice-drivers/package.mk index 614129fdb2..6790365cd6 100644 --- a/packages/linux-drivers/slice-drivers/package.mk +++ b/packages/linux-drivers/slice-drivers/package.mk @@ -2,8 +2,8 @@ # Copyright (C) 2016-present Team LibreELEC (https://libreelec.tv) PKG_NAME="slice-drivers" -PKG_VERSION="8a2bdcd5dc182de899f19b0935d8beeb7f5fdbcb" -PKG_SHA256="ffb3b9ef5a0e6101d661407447257abf136f1ae206a17bd18d9b204e0b29f050" +PKG_VERSION="cff35bf3819edd3379140ccbbe667cbfd3535e93" +PKG_SHA256="7d159cc52c7ee086468799ec7b2941ba7a39fe5fc372faa59c38a141b8b0ae01" PKG_ARCH="arm" PKG_LICENSE="GPL" PKG_SITE="https://github.com/LibreELEC/slice-drivers" @@ -18,10 +18,17 @@ pre_make_target() { } make_target() { - kernel_make KDIR=$(kernel_path) + local kdir=$(kernel_path) + local dtc=${kdir}/scripts/dtc/dtc + local dtcflags="-@ -O dtb -Wno-unit_address_vs_reg" + kernel_make KDIR=${kdir} + ${dtc} ${dtcflags} -o slice.dtbo slice-overlay.dts + ${dtc} ${dtcflags} -o ws2812.dtbo ws2812-overlay.dts } makeinstall_target() { mkdir -p $INSTALL/$(get_full_module_dir)/$PKG_NAME cp *.ko $INSTALL/$(get_full_module_dir)/$PKG_NAME + mkdir -p $INSTALL/usr/share/bootloader/overlays + cp *.dtbo $INSTALL/usr/share/bootloader/overlays } From 666aeb75592066045e3c05376c476fae7ba67889 Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Thu, 25 Apr 2019 00:48:22 +0200 Subject: [PATCH 5/5] slice-firmware: drop dependency on dtc:host dt-blob.bin is built with dtc from kernel, host dtc is not needed. Signed-off-by: Matthias Reichl --- projects/RPi/devices/RPi2/options | 3 +++ 1 file changed, 3 insertions(+) diff --git a/projects/RPi/devices/RPi2/options b/projects/RPi/devices/RPi2/options index fc193853ce..2f30676ff1 100644 --- a/projects/RPi/devices/RPi2/options +++ b/projects/RPi/devices/RPi2/options @@ -7,3 +7,6 @@ # NOOBS supported model versions NOOBS_SUPPORTED_MODELS='"Pi 2","Pi 3"' + + # TESTING, do not commit! + ADDITIONAL_DRIVERS="${ADDITIONAL_DRIVERS} slice-drivers"