From 8bbac893ea643e2b3aef65c8560c0b639be89530 Mon Sep 17 00:00:00 2001 From: Robert Nelson Date: Wed, 31 Dec 2014 10:17:37 -0600 Subject: [PATCH] merge to: https://github.com/torvalds/linux/commit/9bb29b6b927bcd79cf185ee67bcebfe630f0dea1 Compare: https://github.com/torvalds/linux/compare/2c90331cf5ed1d648a711b9483e173aaaf2c4a9b...9bb29b6b927bcd79cf185ee67bcebfe630f0dea1 Signed-off-by: Robert Nelson --- patch.sh | 13 +- .../beaglebone/capes/0002-ARGUS-dtbs.patch | 117 ----- .../0001-sync-am335x-peripheral-pinmux.patch | 173 ++++++- patches/defconfig | 5 + patches/defconfig-bone | 5 + patches/defconfig-lpae | 5 + patches/example_imx_v6_v7_defconfig | 2 + patches/example_omap2plus_defconfig | 2 + patches/example_sunxi_defconfig | 1 + patches/example_tegra_defconfig | 2 + ...-OF-DT-Overlay-configfs-interface-v3.patch | 433 ++++++++++++++++++ patches/ref_multi_v7_defconfig | 8 +- tools/stable-config-checker.sh | 4 - version.sh | 6 +- 14 files changed, 644 insertions(+), 132 deletions(-) delete mode 100644 patches/beaglebone/capes/0002-ARGUS-dtbs.patch create mode 100644 patches/overlay/0001-OF-DT-Overlay-configfs-interface-v3.patch diff --git a/patch.sh b/patch.sh index d479b22e9..99e33e702 100644 --- a/patch.sh +++ b/patch.sh @@ -72,6 +72,11 @@ need_to_push_mainline () { ${git} "${DIR}/patches/need_to_push_mainline/0001-ARM-dts-restructure-imx6q-udoo.dts-to-support-udoo-d.patch" } +overlay () { + echo "dir: overlay" + ${git} "${DIR}/patches/overlay/0001-OF-DT-Overlay-configfs-interface-v3.patch" +} + dt () { echo "dir: dt/gpiohog" #regenerate="enable" @@ -148,6 +153,9 @@ beaglebone () { cleanup fi + echo "dir: beaglebone/capes" + ${git} "${DIR}/patches/beaglebone/capes/0001-cape-Argus-UPS-cape-support.patch" + echo "dir: beaglebone/dtbs" #regenerate="enable" if [ "x${regenerate}" = "xenable" ] ; then @@ -156,10 +164,6 @@ beaglebone () { fi ${git} "${DIR}/patches/beaglebone/dtbs/0001-sync-am335x-peripheral-pinmux.patch" - echo "dir: beaglebone/capes" - ${git} "${DIR}/patches/beaglebone/capes/0001-cape-Argus-UPS-cape-support.patch" - ${git} "${DIR}/patches/beaglebone/capes/0002-ARGUS-dtbs.patch" - #### #dtb makefile #regenerate="enable" @@ -231,6 +235,7 @@ beaglebone () { need_to_push_mainline +overlay dt dts wand diff --git a/patches/beaglebone/capes/0002-ARGUS-dtbs.patch b/patches/beaglebone/capes/0002-ARGUS-dtbs.patch deleted file mode 100644 index 7f000b7b9..000000000 --- a/patches/beaglebone/capes/0002-ARGUS-dtbs.patch +++ /dev/null @@ -1,117 +0,0 @@ -From 1275bc6dc49625ae478e19d3fc7293e06006297f Mon Sep 17 00:00:00 2001 -From: Robert Nelson -Date: Tue, 30 Dec 2014 09:32:52 -0600 -Subject: [PATCH 2/2] ARGUS: dtbs - -Signed-off-by: Robert Nelson ---- - arch/arm/boot/dts/am335x-bone-cape-bone-argus.dts | 41 ++++++++++++++++++ - .../boot/dts/am335x-boneblack-cape-bone-argus.dts | 48 ++++++++++++++++++++++ - 2 files changed, 89 insertions(+) - create mode 100644 arch/arm/boot/dts/am335x-bone-cape-bone-argus.dts - create mode 100644 arch/arm/boot/dts/am335x-boneblack-cape-bone-argus.dts - -diff --git a/arch/arm/boot/dts/am335x-bone-cape-bone-argus.dts b/arch/arm/boot/dts/am335x-bone-cape-bone-argus.dts -new file mode 100644 -index 0000000..d4fd739 ---- /dev/null -+++ b/arch/arm/boot/dts/am335x-bone-cape-bone-argus.dts -@@ -0,0 +1,41 @@ -+/* -+ * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ -+ * -+ * This program is free software; you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License version 2 as -+ * published by the Free Software Foundation. -+ */ -+/dts-v1/; -+ -+#include "am33xx.dtsi" -+#include "am335x-bone-common.dtsi" -+ -+/ { -+ model = "TI AM335x BeagleBone"; -+ compatible = "ti,am335x-bone", "ti,am33xx"; -+}; -+ -+&ldo3_reg { -+ regulator-min-microvolt = <1800000>; -+ regulator-max-microvolt = <3300000>; -+ regulator-always-on; -+}; -+ -+&mmc1 { -+ vmmc-supply = <&ldo3_reg>; -+}; -+ -+&am33xx_pinmux { -+ pinctrl-names = "default"; -+ /* pinctrl-0 = <&clkout2_pin>; */ -+}; -+ -+&sham { -+ status = "okay"; -+}; -+ -+&aes { -+ status = "okay"; -+}; -+ -+#include "am335x-bone-argus.dtsi" -diff --git a/arch/arm/boot/dts/am335x-boneblack-cape-bone-argus.dts b/arch/arm/boot/dts/am335x-boneblack-cape-bone-argus.dts -new file mode 100644 -index 0000000..ebe6757 ---- /dev/null -+++ b/arch/arm/boot/dts/am335x-boneblack-cape-bone-argus.dts -@@ -0,0 +1,48 @@ -+/* -+ * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ -+ * -+ * This program is free software; you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License version 2 as -+ * published by the Free Software Foundation. -+ */ -+/dts-v1/; -+ -+#include "am33xx.dtsi" -+#include "am335x-bone-common.dtsi" -+ -+/ { -+ model = "TI AM335x BeagleBone Black"; -+ compatible = "ti,am335x-bone-black", "ti,am335x-bone", "ti,am33xx"; -+}; -+ -+/* Max Core Speed */ -+#include "am335x-boneblack-1ghz.dtsi" -+/* #include "am335x-boneblack-800mhz.dtsi" */ -+ -+&ldo3_reg { -+ regulator-min-microvolt = <1800000>; -+ regulator-max-microvolt = <1800000>; -+ regulator-always-on; -+}; -+ -+&mmc1 { -+ vmmc-supply = <&vmmcsd_fixed>; -+}; -+ -+&am33xx_pinmux { -+ pinctrl-names = "default"; -+ /* pinctrl-0 = <&clkout2_pin>; */ -+}; -+ -+#include "am335x-peripheral-emmc.dtsi" -+#include "am335x-bone-pinmux-emmc.dtsi" -+/* #include "am335x-bone-emmc-in-reset.dtsi" */ -+ -+#include "am335x-peripheral-nxp-hdmi.dtsi" -+#include "am335x-bone-pinmux-nxp-hdmi.dtsi" -+ -+&rtc { -+ system-power-controller; -+}; -+ -+#include "am335x-bone-argus.dtsi" --- -2.1.4 - diff --git a/patches/beaglebone/dtbs/0001-sync-am335x-peripheral-pinmux.patch b/patches/beaglebone/dtbs/0001-sync-am335x-peripheral-pinmux.patch index 3cde85b83..8a809e420 100644 --- a/patches/beaglebone/dtbs/0001-sync-am335x-peripheral-pinmux.patch +++ b/patches/beaglebone/dtbs/0001-sync-am335x-peripheral-pinmux.patch @@ -1,12 +1,14 @@ -From d211dfd1ee05eb24d6e6cc1e77ec06894293719e Mon Sep 17 00:00:00 2001 +From 102daa2023018f440a3bb9f666dd04f5f27d21fe Mon Sep 17 00:00:00 2001 From: Robert Nelson -Date: Tue, 30 Dec 2014 09:23:40 -0600 +Date: Wed, 31 Dec 2014 09:58:55 -0600 Subject: [PATCH] sync: am335x-peripheral/pinmux Signed-off-by: Robert Nelson --- + arch/arm/boot/dts/am335x-bone-argus.dtsi | 4 + arch/arm/boot/dts/am335x-bone-can0.dts | 57 ++++++ arch/arm/boot/dts/am335x-bone-can1.dts | 57 ++++++ + arch/arm/boot/dts/am335x-bone-cape-bone-argus.dts | 41 +++++ arch/arm/boot/dts/am335x-bone-common.dtsi | 18 -- arch/arm/boot/dts/am335x-bone-emmc-in-reset.dtsi | 18 ++ arch/arm/boot/dts/am335x-bone-pinmux-can0.dtsi | 45 +++++ @@ -27,12 +29,14 @@ Signed-off-by: Robert Nelson arch/arm/boot/dts/am335x-boneblack-bbb-exp-c.dts | 48 +++++ arch/arm/boot/dts/am335x-boneblack-can0.dts | 64 +++++++ arch/arm/boot/dts/am335x-boneblack-can1.dts | 64 +++++++ + .../boot/dts/am335x-boneblack-cape-bone-argus.dts | 48 +++++ arch/arm/boot/dts/am335x-boneblack-ttyO1.dts | 64 +++++++ arch/arm/boot/dts/am335x-boneblack-ttyO2.dts | 64 +++++++ arch/arm/boot/dts/am335x-boneblack-ttyO4.dts | 64 +++++++ arch/arm/boot/dts/am335x-boneblack-ttyO5.dts | 64 +++++++ arch/arm/boot/dts/am335x-boneblack.dts | 76 +++----- arch/arm/boot/dts/am335x-cape-bbb-exp-c.dtsi | 202 +++++++++++++++++++++ + arch/arm/boot/dts/am335x-cape-rtc-ds1307.dtsi | 31 ++++ arch/arm/boot/dts/am335x-peripheral-can0.dtsi | 13 ++ arch/arm/boot/dts/am335x-peripheral-can1.dtsi | 13 ++ arch/arm/boot/dts/am335x-peripheral-emmc.dtsi | 15 ++ @@ -44,9 +48,10 @@ Signed-off-by: Robert Nelson arch/arm/boot/dts/am335x-peripheral-ttyO4.dtsi | 13 ++ arch/arm/boot/dts/am335x-peripheral-ttyO5.dtsi | 13 ++ include/dt-bindings/board/am335x-bbw-bbb-base.h | 103 +++++++++++ - 39 files changed, 2033 insertions(+), 69 deletions(-) + 43 files changed, 2157 insertions(+), 69 deletions(-) create mode 100644 arch/arm/boot/dts/am335x-bone-can0.dts create mode 100644 arch/arm/boot/dts/am335x-bone-can1.dts + create mode 100644 arch/arm/boot/dts/am335x-bone-cape-bone-argus.dts create mode 100644 arch/arm/boot/dts/am335x-bone-emmc-in-reset.dtsi create mode 100644 arch/arm/boot/dts/am335x-bone-pinmux-can0.dtsi create mode 100644 arch/arm/boot/dts/am335x-bone-pinmux-can1.dtsi @@ -65,11 +70,13 @@ Signed-off-by: Robert Nelson create mode 100644 arch/arm/boot/dts/am335x-boneblack-bbb-exp-c.dts create mode 100644 arch/arm/boot/dts/am335x-boneblack-can0.dts create mode 100644 arch/arm/boot/dts/am335x-boneblack-can1.dts + create mode 100644 arch/arm/boot/dts/am335x-boneblack-cape-bone-argus.dts create mode 100644 arch/arm/boot/dts/am335x-boneblack-ttyO1.dts create mode 100644 arch/arm/boot/dts/am335x-boneblack-ttyO2.dts create mode 100644 arch/arm/boot/dts/am335x-boneblack-ttyO4.dts create mode 100644 arch/arm/boot/dts/am335x-boneblack-ttyO5.dts create mode 100644 arch/arm/boot/dts/am335x-cape-bbb-exp-c.dtsi + create mode 100644 arch/arm/boot/dts/am335x-cape-rtc-ds1307.dtsi create mode 100644 arch/arm/boot/dts/am335x-peripheral-can0.dtsi create mode 100644 arch/arm/boot/dts/am335x-peripheral-can1.dtsi create mode 100644 arch/arm/boot/dts/am335x-peripheral-emmc.dtsi @@ -82,6 +89,28 @@ Signed-off-by: Robert Nelson create mode 100644 arch/arm/boot/dts/am335x-peripheral-ttyO5.dtsi create mode 100644 include/dt-bindings/board/am335x-bbw-bbb-base.h +diff --git a/arch/arm/boot/dts/am335x-bone-argus.dtsi b/arch/arm/boot/dts/am335x-bone-argus.dtsi +index 0bbe050..a44c7d1 100644 +--- a/arch/arm/boot/dts/am335x-bone-argus.dtsi ++++ b/arch/arm/boot/dts/am335x-bone-argus.dtsi +@@ -5,6 +5,9 @@ + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + */ ++ ++#include "am335x-cape-rtc-ds1307.dtsi" ++ + / { + ocp { + P8_07_pinmux { +@@ -45,6 +48,7 @@ + }; + }; + }; ++ + / { + argus-ups { + compatible = "argus-ups"; diff --git a/arch/arm/boot/dts/am335x-bone-can0.dts b/arch/arm/boot/dts/am335x-bone-can0.dts new file mode 100644 index 0000000..27b9920 @@ -208,6 +237,53 @@ index 0000000..7a5c6a4 + +/* #include "am335x-peripheral-ttyO5.dtsi" */ +/* #include "am335x-bone-pinmux-ttyO5.dtsi" */ +diff --git a/arch/arm/boot/dts/am335x-bone-cape-bone-argus.dts b/arch/arm/boot/dts/am335x-bone-cape-bone-argus.dts +new file mode 100644 +index 0000000..d4fd739 +--- /dev/null ++++ b/arch/arm/boot/dts/am335x-bone-cape-bone-argus.dts +@@ -0,0 +1,41 @@ ++/* ++ * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License version 2 as ++ * published by the Free Software Foundation. ++ */ ++/dts-v1/; ++ ++#include "am33xx.dtsi" ++#include "am335x-bone-common.dtsi" ++ ++/ { ++ model = "TI AM335x BeagleBone"; ++ compatible = "ti,am335x-bone", "ti,am33xx"; ++}; ++ ++&ldo3_reg { ++ regulator-min-microvolt = <1800000>; ++ regulator-max-microvolt = <3300000>; ++ regulator-always-on; ++}; ++ ++&mmc1 { ++ vmmc-supply = <&ldo3_reg>; ++}; ++ ++&am33xx_pinmux { ++ pinctrl-names = "default"; ++ /* pinctrl-0 = <&clkout2_pin>; */ ++}; ++ ++&sham { ++ status = "okay"; ++}; ++ ++&aes { ++ status = "okay"; ++}; ++ ++#include "am335x-bone-argus.dtsi" diff --git a/arch/arm/boot/dts/am335x-bone-common.dtsi b/arch/arm/boot/dts/am335x-bone-common.dtsi index 6db9fc1..ae4b7d8 100644 --- a/arch/arm/boot/dts/am335x-bone-common.dtsi @@ -1519,6 +1595,60 @@ index 0000000..d1e3b1f + +/* #include "am335x-peripheral-ttyO5.dtsi" */ +/* #include "am335x-bone-pinmux-ttyO5.dtsi" */ +diff --git a/arch/arm/boot/dts/am335x-boneblack-cape-bone-argus.dts b/arch/arm/boot/dts/am335x-boneblack-cape-bone-argus.dts +new file mode 100644 +index 0000000..ebe6757 +--- /dev/null ++++ b/arch/arm/boot/dts/am335x-boneblack-cape-bone-argus.dts +@@ -0,0 +1,48 @@ ++/* ++ * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License version 2 as ++ * published by the Free Software Foundation. ++ */ ++/dts-v1/; ++ ++#include "am33xx.dtsi" ++#include "am335x-bone-common.dtsi" ++ ++/ { ++ model = "TI AM335x BeagleBone Black"; ++ compatible = "ti,am335x-bone-black", "ti,am335x-bone", "ti,am33xx"; ++}; ++ ++/* Max Core Speed */ ++#include "am335x-boneblack-1ghz.dtsi" ++/* #include "am335x-boneblack-800mhz.dtsi" */ ++ ++&ldo3_reg { ++ regulator-min-microvolt = <1800000>; ++ regulator-max-microvolt = <1800000>; ++ regulator-always-on; ++}; ++ ++&mmc1 { ++ vmmc-supply = <&vmmcsd_fixed>; ++}; ++ ++&am33xx_pinmux { ++ pinctrl-names = "default"; ++ /* pinctrl-0 = <&clkout2_pin>; */ ++}; ++ ++#include "am335x-peripheral-emmc.dtsi" ++#include "am335x-bone-pinmux-emmc.dtsi" ++/* #include "am335x-bone-emmc-in-reset.dtsi" */ ++ ++#include "am335x-peripheral-nxp-hdmi.dtsi" ++#include "am335x-bone-pinmux-nxp-hdmi.dtsi" ++ ++&rtc { ++ system-power-controller; ++}; ++ ++#include "am335x-bone-argus.dtsi" diff --git a/arch/arm/boot/dts/am335x-boneblack-ttyO1.dts b/arch/arm/boot/dts/am335x-boneblack-ttyO1.dts new file mode 100644 index 0000000..6c215e4 @@ -2099,6 +2229,43 @@ index 0000000..1affae5 + +#include "am335x-peripheral-panel-1024x600-24bit.dtsi" +#include "am335x-bone-pinmux-panel-1024x600-24bit.dtsi" +diff --git a/arch/arm/boot/dts/am335x-cape-rtc-ds1307.dtsi b/arch/arm/boot/dts/am335x-cape-rtc-ds1307.dtsi +new file mode 100644 +index 0000000..bce6ac5 +--- /dev/null ++++ b/arch/arm/boot/dts/am335x-cape-rtc-ds1307.dtsi +@@ -0,0 +1,31 @@ ++/* ++ * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License version 2 as ++ * published by the Free Software Foundation. ++ */ ++ ++#include ++ ++&am33xx_pinmux { ++ i2c2_pins: pinmux_i2c2_pins { ++ pinctrl-single,pins = < ++ BONE_P9_20 0x73 /* (SLEWCTRL_SLOW | PIN_INPUT_PULLUP | MUX_MODE3) uart1_ctsn.i2c2_sda */ ++ BONE_P9_19 0x73 /* (SLEWCTRL_SLOW | PIN_INPUT_PULLUP | MUX_MODE3) uart1_rtsn.i2c2_scl */ ++ >; ++ }; ++}; ++ ++&i2c2 { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&i2c2_pins>; ++ ++ status = "okay"; ++ clock-frequency = <100000>; ++ ++ rtc@68 { ++ compatible = "maxim,ds1307"; ++ reg = <0x68>; ++ }; ++}; diff --git a/arch/arm/boot/dts/am335x-peripheral-can0.dtsi b/arch/arm/boot/dts/am335x-peripheral-can0.dtsi new file mode 100644 index 0000000..4335e39 diff --git a/patches/defconfig b/patches/defconfig index 757429925..21ab4bb3b 100644 --- a/patches/defconfig +++ b/patches/defconfig @@ -1420,6 +1420,7 @@ CONFIG_CFG80211=m CONFIG_CFG80211_DEFAULT_PS=y # CONFIG_CFG80211_DEBUGFS is not set # CONFIG_CFG80211_INTERNAL_REGDB is not set +CONFIG_CFG80211_WEXT=y CONFIG_LIB80211=m CONFIG_LIB80211_CRYPT_WEP=m CONFIG_LIB80211_CRYPT_CCMP=m @@ -1651,12 +1652,16 @@ CONFIG_OF=y # CONFIG_OF_UNITTEST is not set CONFIG_OF_FLATTREE=y CONFIG_OF_EARLY_FLATTREE=y +CONFIG_OF_DYNAMIC=y CONFIG_OF_ADDRESS=y CONFIG_OF_IRQ=y CONFIG_OF_NET=y CONFIG_OF_MDIO=y CONFIG_OF_MTD=y CONFIG_OF_RESERVED_MEM=y +CONFIG_OF_RESOLVE=y +CONFIG_OF_OVERLAY=y +CONFIG_OF_CONFIGFS=y CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y # CONFIG_PARPORT is not set CONFIG_BLK_DEV=y diff --git a/patches/defconfig-bone b/patches/defconfig-bone index a7bf8e469..f3f7c6989 100644 --- a/patches/defconfig-bone +++ b/patches/defconfig-bone @@ -1346,6 +1346,7 @@ CONFIG_CFG80211=m CONFIG_CFG80211_DEFAULT_PS=y # CONFIG_CFG80211_DEBUGFS is not set # CONFIG_CFG80211_INTERNAL_REGDB is not set +CONFIG_CFG80211_WEXT=y CONFIG_LIB80211=m CONFIG_LIB80211_CRYPT_WEP=m CONFIG_LIB80211_CRYPT_CCMP=m @@ -1570,12 +1571,16 @@ CONFIG_OF=y # CONFIG_OF_UNITTEST is not set CONFIG_OF_FLATTREE=y CONFIG_OF_EARLY_FLATTREE=y +CONFIG_OF_DYNAMIC=y CONFIG_OF_ADDRESS=y CONFIG_OF_IRQ=y CONFIG_OF_NET=y CONFIG_OF_MDIO=y CONFIG_OF_MTD=y CONFIG_OF_RESERVED_MEM=y +CONFIG_OF_RESOLVE=y +CONFIG_OF_OVERLAY=y +CONFIG_OF_CONFIGFS=y CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y # CONFIG_PARPORT is not set CONFIG_BLK_DEV=y diff --git a/patches/defconfig-lpae b/patches/defconfig-lpae index 0b3827097..23752b019 100644 --- a/patches/defconfig-lpae +++ b/patches/defconfig-lpae @@ -1383,6 +1383,7 @@ CONFIG_CFG80211=m CONFIG_CFG80211_DEFAULT_PS=y # CONFIG_CFG80211_DEBUGFS is not set # CONFIG_CFG80211_INTERNAL_REGDB is not set +CONFIG_CFG80211_WEXT=y CONFIG_LIB80211=m CONFIG_LIB80211_CRYPT_WEP=m CONFIG_LIB80211_CRYPT_CCMP=m @@ -1609,12 +1610,16 @@ CONFIG_OF=y # CONFIG_OF_UNITTEST is not set CONFIG_OF_FLATTREE=y CONFIG_OF_EARLY_FLATTREE=y +CONFIG_OF_DYNAMIC=y CONFIG_OF_ADDRESS=y CONFIG_OF_IRQ=y CONFIG_OF_NET=y CONFIG_OF_MDIO=y CONFIG_OF_MTD=y CONFIG_OF_RESERVED_MEM=y +CONFIG_OF_RESOLVE=y +CONFIG_OF_OVERLAY=y +CONFIG_OF_CONFIGFS=y CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y # CONFIG_PARPORT is not set CONFIG_BLK_DEV=y diff --git a/patches/example_imx_v6_v7_defconfig b/patches/example_imx_v6_v7_defconfig index c7a33db01..5f5927631 100644 --- a/patches/example_imx_v6_v7_defconfig +++ b/patches/example_imx_v6_v7_defconfig @@ -883,6 +883,7 @@ CONFIG_CFG80211=y CONFIG_CFG80211_DEFAULT_PS=y # CONFIG_CFG80211_DEBUGFS is not set # CONFIG_CFG80211_INTERNAL_REGDB is not set +# CONFIG_CFG80211_WEXT is not set # CONFIG_LIB80211 is not set CONFIG_MAC80211=y CONFIG_MAC80211_HAS_RC=y @@ -1086,6 +1087,7 @@ CONFIG_OF_PCI=y CONFIG_OF_PCI_IRQ=y CONFIG_OF_MTD=y CONFIG_OF_RESERVED_MEM=y +# CONFIG_OF_CONFIGFS is not set CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y # CONFIG_PARPORT is not set CONFIG_BLK_DEV=y diff --git a/patches/example_omap2plus_defconfig b/patches/example_omap2plus_defconfig index 65f04fea1..c0058dceb 100644 --- a/patches/example_omap2plus_defconfig +++ b/patches/example_omap2plus_defconfig @@ -930,6 +930,7 @@ CONFIG_CFG80211=m CONFIG_CFG80211_DEFAULT_PS=y # CONFIG_CFG80211_DEBUGFS is not set # CONFIG_CFG80211_INTERNAL_REGDB is not set +# CONFIG_CFG80211_WEXT is not set CONFIG_LIB80211=m # CONFIG_LIB80211_DEBUG is not set CONFIG_MAC80211=m @@ -1124,6 +1125,7 @@ CONFIG_OF_NET=y CONFIG_OF_MDIO=y CONFIG_OF_MTD=y CONFIG_OF_RESERVED_MEM=y +# CONFIG_OF_CONFIGFS is not set CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y # CONFIG_PARPORT is not set CONFIG_BLK_DEV=y diff --git a/patches/example_sunxi_defconfig b/patches/example_sunxi_defconfig index b1b3c0391..873e8a8f8 100644 --- a/patches/example_sunxi_defconfig +++ b/patches/example_sunxi_defconfig @@ -684,6 +684,7 @@ CONFIG_OF_IRQ=y CONFIG_OF_NET=y CONFIG_OF_MDIO=y CONFIG_OF_RESERVED_MEM=y +# CONFIG_OF_CONFIGFS is not set CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y # CONFIG_PARPORT is not set CONFIG_BLK_DEV=y diff --git a/patches/example_tegra_defconfig b/patches/example_tegra_defconfig index 5f7c6b668..d06e10518 100644 --- a/patches/example_tegra_defconfig +++ b/patches/example_tegra_defconfig @@ -815,6 +815,7 @@ CONFIG_CFG80211=y CONFIG_CFG80211_DEFAULT_PS=y # CONFIG_CFG80211_DEBUGFS is not set # CONFIG_CFG80211_INTERNAL_REGDB is not set +# CONFIG_CFG80211_WEXT is not set # CONFIG_LIB80211 is not set CONFIG_MAC80211=y CONFIG_MAC80211_HAS_RC=y @@ -985,6 +986,7 @@ CONFIG_OF_PCI=y CONFIG_OF_PCI_IRQ=y CONFIG_OF_MTD=y CONFIG_OF_RESERVED_MEM=y +# CONFIG_OF_CONFIGFS is not set CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y # CONFIG_PARPORT is not set CONFIG_BLK_DEV=y diff --git a/patches/overlay/0001-OF-DT-Overlay-configfs-interface-v3.patch b/patches/overlay/0001-OF-DT-Overlay-configfs-interface-v3.patch new file mode 100644 index 000000000..bd2efce85 --- /dev/null +++ b/patches/overlay/0001-OF-DT-Overlay-configfs-interface-v3.patch @@ -0,0 +1,433 @@ +From 3c1fd9b9ee811b07c826952d5e96cf94a8980ce6 Mon Sep 17 00:00:00 2001 +From: Pantelis Antoniou +Date: Wed, 3 Dec 2014 13:23:28 +0200 +Subject: [PATCH] OF: DT-Overlay configfs interface (v3) + +Add a runtime interface to using configfs for generic device tree overlay +usage. With it its possible to use device tree overlays without having +to use a per-platform overlay manager. + +Please see Documentation/devicetree/configfs-overlays.txt for more info. + +Changes since v2: +- Removed ifdef CONFIG_OF_OVERLAY (since for now it's required) +- Created a documentation entry +- Slight rewording in Kconfig + +Changes since v1: +- of_resolve() -> of_resolve_phandles(). + +Signed-off-by: Pantelis Antoniou +--- + Documentation/devicetree/configfs-overlays.txt | 31 +++ + drivers/of/Kconfig | 7 + + drivers/of/Makefile | 1 + + drivers/of/configfs.c | 332 +++++++++++++++++++++++++ + 4 files changed, 371 insertions(+) + create mode 100644 Documentation/devicetree/configfs-overlays.txt + create mode 100644 drivers/of/configfs.c + +diff --git a/Documentation/devicetree/configfs-overlays.txt b/Documentation/devicetree/configfs-overlays.txt +new file mode 100644 +index 0000000..5fa43e0 +--- /dev/null ++++ b/Documentation/devicetree/configfs-overlays.txt +@@ -0,0 +1,31 @@ ++Howto use the configfs overlay interface. ++ ++A device-tree configfs entry is created in /config/device-tree/overlays ++and and it is manipulated using standard file system I/O. ++Note that this is a debug level interface, for use by developers and ++not necessarily something accessed by normal users due to the ++security implications of having direct access to the kernel's device tree. ++ ++* To create an overlay you mkdir the directory: ++ ++ # mkdir /config/device-tree/overlays/foo ++ ++* Either you echo the overlay firmware file to the path property file. ++ ++ # echo foo.dtbo >/config/device-tree/overlays/foo/path ++ ++* Or you cat the contents of the overlay to the dtbo file ++ ++ # cat foo.dtbo >/config/device-tree/overlays/foo/dtbo ++ ++The overlay file will be applied, and devices will be created/destroyed ++as required. ++ ++To remove it simply rmdir the directory. ++ ++ # rmdir /config/device-tree/overlays/foo ++ ++The rationalle of the dual interface (firmware & direct copy) is that each is ++better suited to different use patterns. The firmware interface is what's ++intended to be used by hardware managers in the kernel, while the copy interface ++make sense for developers (since it avoids problems with namespaces). +diff --git a/drivers/of/Kconfig b/drivers/of/Kconfig +index b5e0c87..652ac37 100644 +--- a/drivers/of/Kconfig ++++ b/drivers/of/Kconfig +@@ -90,4 +90,11 @@ config OF_OVERLAY + select OF_DYNAMIC + select OF_RESOLVE + ++config OF_CONFIGFS ++ bool "Device Tree Overlay ConfigFS interface" ++ select CONFIGFS_FS ++ select OF_OVERLAY ++ help ++ Enable a simple user-space driven DT overlay interface. ++ + endmenu # OF +diff --git a/drivers/of/Makefile b/drivers/of/Makefile +index 7563f36..6f7f4f8 100644 +--- a/drivers/of/Makefile ++++ b/drivers/of/Makefile +@@ -1,4 +1,5 @@ + obj-y = base.o device.o platform.o ++obj-$(CONFIG_OF_CONFIGFS) += configfs.o + obj-$(CONFIG_OF_DYNAMIC) += dynamic.o + obj-$(CONFIG_OF_FLATTREE) += fdt.o + obj-$(CONFIG_OF_EARLY_FLATTREE) += fdt_address.o +diff --git a/drivers/of/configfs.c b/drivers/of/configfs.c +new file mode 100644 +index 0000000..1434ade +--- /dev/null ++++ b/drivers/of/configfs.c +@@ -0,0 +1,332 @@ ++/* ++ * Configfs entries for device-tree ++ * ++ * Copyright (C) 2013 - Pantelis Antoniou ++ * ++ * This program is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU General Public License ++ * as published by the Free Software Foundation; either version ++ * 2 of the License, or (at your option) any later version. ++ */ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include "of_private.h" ++ ++struct cfs_overlay_item { ++ struct config_item item; ++ ++ char path[PATH_MAX]; ++ ++ const struct firmware *fw; ++ struct device_node *overlay; ++ int ov_id; ++ ++ void *dtbo; ++ int dtbo_size; ++}; ++ ++static int create_overlay(struct cfs_overlay_item *overlay, void *blob) ++{ ++ int err; ++ ++ /* unflatten the tree */ ++ of_fdt_unflatten_tree(blob, &overlay->overlay); ++ if (overlay->overlay == NULL) { ++ pr_err("%s: failed to unflatten tree\n", __func__); ++ err = -EINVAL; ++ goto out_err; ++ } ++ pr_debug("%s: unflattened OK\n", __func__); ++ ++ /* mark it as detached */ ++ of_node_set_flag(overlay->overlay, OF_DETACHED); ++ ++ /* perform resolution */ ++ err = of_resolve_phandles(overlay->overlay); ++ if (err != 0) { ++ pr_err("%s: Failed to resolve tree\n", __func__); ++ goto out_err; ++ } ++ pr_debug("%s: resolved OK\n", __func__); ++ ++ err = of_overlay_create(overlay->overlay); ++ if (err < 0) { ++ pr_err("%s: Failed to create overlay (err=%d)\n", ++ __func__, err); ++ goto out_err; ++ } ++ overlay->ov_id = err; ++ ++out_err: ++ return err; ++} ++ ++static inline struct cfs_overlay_item *to_cfs_overlay_item( ++ struct config_item *item) ++{ ++ return item ? container_of(item, struct cfs_overlay_item, item) : NULL; ++} ++ ++CONFIGFS_ATTR_STRUCT(cfs_overlay_item); ++#define CFS_OVERLAY_ITEM_ATTR(_name, _mode, _show, _store) \ ++struct cfs_overlay_item_attribute cfs_overlay_item_attr_##_name = \ ++ __CONFIGFS_ATTR(_name, _mode, _show, _store) ++#define CFS_OVERLAY_ITEM_ATTR_RO(_name, _show) \ ++struct cfs_overlay_item_attribute cfs_overlay_item_attr_##_name = \ ++ __CONFIGFS_ATTR_RO(_name, _show) ++ ++CONFIGFS_BIN_ATTR_STRUCT(cfs_overlay_item); ++#define CFS_OVERLAY_ITEM_BIN_ATTR(_name, _mode, _read, _write, _priv, _max) \ ++struct cfs_overlay_item_bin_attribute cfs_overlay_item_bin_attr_##_name = \ ++ __CONFIGFS_BIN_ATTR(_name, _mode, _read, _write, _priv, _max) ++#define CFS_OVERLAY_ITEM_BIN_ATTR_RO(_name, _read, _priv, _max) \ ++struct cfs_overlay_item_bin_attribute cfs_overlay_item_bin_attr_##_name = \ ++ __CONFIGFS_BIN_ATTR_RO(_name, _read, _priv, _max) ++ ++static ssize_t cfs_overlay_item_path_show(struct cfs_overlay_item *overlay, ++ char *page) ++{ ++ return sprintf(page, "%s\n", overlay->path); ++} ++ ++static ssize_t cfs_overlay_item_path_store(struct cfs_overlay_item *overlay, ++ const char *page, size_t count) ++{ ++ const char *p = page; ++ char *s; ++ int err; ++ ++ /* if it's set do not allow changes */ ++ if (overlay->path[0] != '\0' || overlay->dtbo_size > 0) ++ return -EPERM; ++ ++ /* copy to path buffer (and make sure it's always zero terminated */ ++ count = snprintf(overlay->path, sizeof(overlay->path) - 1, "%s", p); ++ overlay->path[sizeof(overlay->path) - 1] = '\0'; ++ ++ /* strip trailing newlines */ ++ s = overlay->path + strlen(overlay->path); ++ while (s > overlay->path && *--s == '\n') ++ *s = '\0'; ++ ++ pr_debug("%s: path is '%s'\n", __func__, overlay->path); ++ ++ err = request_firmware(&overlay->fw, overlay->path, NULL); ++ if (err != 0) ++ goto out_err; ++ ++ err = create_overlay(overlay, (void *)overlay->fw->data); ++ if (err != 0) ++ goto out_err; ++ ++ return count; ++ ++out_err: ++ ++ release_firmware(overlay->fw); ++ overlay->fw = NULL; ++ ++ overlay->path[0] = '\0'; ++ return err; ++} ++ ++static ssize_t cfs_overlay_item_status_show(struct cfs_overlay_item *overlay, ++ char *page) ++{ ++ return sprintf(page, "%s\n", ++ overlay->ov_id >= 0 ? "applied" : "unapplied"); ++} ++ ++CFS_OVERLAY_ITEM_ATTR(path, S_IRUGO | S_IWUSR, ++ cfs_overlay_item_path_show, cfs_overlay_item_path_store); ++CFS_OVERLAY_ITEM_ATTR_RO(status, cfs_overlay_item_status_show); ++ ++static struct configfs_attribute *cfs_overlay_attrs[] = { ++ &cfs_overlay_item_attr_path.attr, ++ &cfs_overlay_item_attr_status.attr, ++ NULL, ++}; ++ ++ssize_t cfs_overlay_item_dtbo_read(struct cfs_overlay_item *overlay, ++ void *buf, size_t max_count) ++{ ++ pr_debug("%s: buf=%p max_count=%u\n", __func__, ++ buf, max_count); ++ ++ if (overlay->dtbo == NULL) ++ return 0; ++ ++ /* copy if buffer provided */ ++ if (buf != NULL) { ++ /* the buffer must be large enough */ ++ if (overlay->dtbo_size > max_count) ++ return -ENOSPC; ++ ++ memcpy(buf, overlay->dtbo, overlay->dtbo_size); ++ } ++ ++ return overlay->dtbo_size; ++} ++ ++ssize_t cfs_overlay_item_dtbo_write(struct cfs_overlay_item *overlay, ++ const void *buf, size_t count) ++{ ++ int err; ++ ++ /* if it's set do not allow changes */ ++ if (overlay->path[0] != '\0' || overlay->dtbo_size > 0) ++ return -EPERM; ++ ++ /* copy the contents */ ++ overlay->dtbo = kmemdup(buf, count, GFP_KERNEL); ++ if (overlay->dtbo == NULL) ++ return -ENOMEM; ++ ++ overlay->dtbo_size = count; ++ ++ err = create_overlay(overlay, overlay->dtbo); ++ if (err != 0) ++ goto out_err; ++ ++ return count; ++ ++out_err: ++ kfree(overlay->dtbo); ++ overlay->dtbo = NULL; ++ overlay->dtbo_size = 0; ++ ++ return err; ++} ++ ++CFS_OVERLAY_ITEM_BIN_ATTR(dtbo, S_IRUGO | S_IWUSR, ++ cfs_overlay_item_dtbo_read, cfs_overlay_item_dtbo_write, ++ NULL, SZ_1M); ++ ++static struct configfs_bin_attribute *cfs_overlay_bin_attrs[] = { ++ &cfs_overlay_item_bin_attr_dtbo.bin_attr, ++ NULL, ++}; ++ ++static void cfs_overlay_release(struct config_item *item) ++{ ++ struct cfs_overlay_item *overlay = to_cfs_overlay_item(item); ++ ++ if (overlay->ov_id >= 0) ++ of_overlay_destroy(overlay->ov_id); ++ if (overlay->fw) ++ release_firmware(overlay->fw); ++ /* kfree with NULL is safe */ ++ kfree(overlay->dtbo); ++ kfree(overlay); ++} ++ ++CONFIGFS_ATTR_OPS(cfs_overlay_item); ++CONFIGFS_BIN_ATTR_OPS(cfs_overlay_item); ++static struct configfs_item_operations cfs_overlay_item_ops = { ++ .release = cfs_overlay_release, ++ .show_attribute = cfs_overlay_item_attr_show, ++ .store_attribute = cfs_overlay_item_attr_store, ++ .read_bin_attribute = cfs_overlay_item_bin_attr_read, ++ .write_bin_attribute = cfs_overlay_item_bin_attr_write, ++}; ++ ++static struct config_item_type cfs_overlay_type = { ++ .ct_item_ops = &cfs_overlay_item_ops, ++ .ct_attrs = cfs_overlay_attrs, ++ .ct_bin_attrs = cfs_overlay_bin_attrs, ++ .ct_owner = THIS_MODULE, ++}; ++ ++static struct config_item *cfs_overlay_group_make_item( ++ struct config_group *group, const char *name) ++{ ++ struct cfs_overlay_item *overlay; ++ ++ overlay = kzalloc(sizeof(*overlay), GFP_KERNEL); ++ if (!overlay) ++ return ERR_PTR(-ENOMEM); ++ overlay->ov_id = -1; ++ ++ config_item_init_type_name(&overlay->item, name, &cfs_overlay_type); ++ return &overlay->item; ++} ++ ++static void cfs_overlay_group_drop_item(struct config_group *group, ++ struct config_item *item) ++{ ++ struct cfs_overlay_item *overlay = to_cfs_overlay_item(item); ++ ++ config_item_put(&overlay->item); ++} ++ ++static struct configfs_group_operations overlays_ops = { ++ .make_item = cfs_overlay_group_make_item, ++ .drop_item = cfs_overlay_group_drop_item, ++}; ++ ++static struct config_item_type overlays_type = { ++ .ct_group_ops = &overlays_ops, ++ .ct_owner = THIS_MODULE, ++}; ++ ++static struct configfs_group_operations of_cfs_ops = { ++ /* empty - we don't allow anything to be created */ ++}; ++ ++static struct config_item_type of_cfs_type = { ++ .ct_group_ops = &of_cfs_ops, ++ .ct_owner = THIS_MODULE, ++}; ++ ++struct config_group of_cfs_overlay_group; ++ ++struct config_group *of_cfs_def_groups[] = { ++ &of_cfs_overlay_group, ++ NULL ++}; ++ ++static struct configfs_subsystem of_cfs_subsys = { ++ .su_group = { ++ .cg_item = { ++ .ci_namebuf = "device-tree", ++ .ci_type = &of_cfs_type, ++ }, ++ .default_groups = of_cfs_def_groups, ++ }, ++ .su_mutex = __MUTEX_INITIALIZER(of_cfs_subsys.su_mutex), ++}; ++ ++static int __init of_cfs_init(void) ++{ ++ int ret; ++ ++ pr_info("%s\n", __func__); ++ ++ config_group_init(&of_cfs_subsys.su_group); ++ config_group_init_type_name(&of_cfs_overlay_group, "overlays", ++ &overlays_type); ++ ++ ret = configfs_register_subsystem(&of_cfs_subsys); ++ if (ret != 0) { ++ pr_err("%s: failed to register subsys\n", __func__); ++ goto out; ++ } ++ pr_info("%s: OK\n", __func__); ++out: ++ return ret; ++} ++late_initcall(of_cfs_init); +-- +2.1.4 + diff --git a/patches/ref_multi_v7_defconfig b/patches/ref_multi_v7_defconfig index f64421def..197655d36 100644 --- a/patches/ref_multi_v7_defconfig +++ b/patches/ref_multi_v7_defconfig @@ -1031,6 +1031,7 @@ CONFIG_CFG80211=m CONFIG_CFG80211_DEFAULT_PS=y # CONFIG_CFG80211_DEBUGFS is not set # CONFIG_CFG80211_INTERNAL_REGDB is not set +# CONFIG_CFG80211_WEXT is not set # CONFIG_LIB80211 is not set CONFIG_MAC80211=m CONFIG_MAC80211_HAS_RC=y @@ -1235,6 +1236,7 @@ CONFIG_OF_PCI=y CONFIG_OF_PCI_IRQ=y CONFIG_OF_MTD=y CONFIG_OF_RESERVED_MEM=y +# CONFIG_OF_CONFIGFS is not set CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y # CONFIG_PARPORT is not set CONFIG_BLK_DEV=y @@ -3561,7 +3563,7 @@ CONFIG_USB_EHCI_HCD_SPEAR=y CONFIG_USB_EHCI_HCD_STI=y # CONFIG_USB_EHCI_MSM is not set CONFIG_USB_EHCI_TEGRA=y -# CONFIG_USB_EHCI_EXYNOS is not set +CONFIG_USB_EHCI_EXYNOS=y CONFIG_USB_EHCI_HCD_PLATFORM=y # CONFIG_USB_OXU210HP_HCD is not set # CONFIG_USB_ISP116X_HCD is not set @@ -4431,6 +4433,10 @@ CONFIG_PHY_EXYNOS_DP_VIDEO=y # CONFIG_PHY_EXYNOS5250_SATA is not set CONFIG_PHY_HIX5HD2_SATA=y CONFIG_PHY_SUN4I_USB=y +CONFIG_PHY_SAMSUNG_USB2=y +CONFIG_PHY_EXYNOS4210_USB2=y +CONFIG_PHY_EXYNOS4X12_USB2=y +CONFIG_PHY_EXYNOS5250_USB2=y # CONFIG_PHY_QCOM_APQ8064_SATA is not set # CONFIG_PHY_QCOM_IPQ806X_SATA is not set CONFIG_PHY_ST_SPEAR1310_MIPHY=y diff --git a/tools/stable-config-checker.sh b/tools/stable-config-checker.sh index 99360fa46..f910e7630 100755 --- a/tools/stable-config-checker.sh +++ b/tools/stable-config-checker.sh @@ -55,8 +55,4 @@ config="CONFIG_HID_LOGITECH_DJ" ; config_enable config="CONFIG_CAN_C_CAN" ; config_module config="CONFIG_CAN_C_CAN_PLATFORM" ; config_module -#http://www.coreboot.org/EHCI_Debug_Port#DIY_.2F_BeagleBone_Black -#http://www.coreboot.org/DIY_EHCI_debug_dongle -config="CONFIG_USB_G_DBGP" ; config_module - # diff --git a/version.sh b/version.sh index b95b274de..708e9fbd9 100644 --- a/version.sh +++ b/version.sh @@ -27,11 +27,11 @@ toolchain="gcc_linaro_gnueabihf_4_9" #Kernel/Build KERNEL_REL=3.19 KERNEL_TAG=${KERNEL_REL}-rc2 -BUILD=armv7-devel-r27 +BUILD=armv7-devel-r28 #v3.X-rcX + upto SHA -prev_KERNEL_SHA="5faa0154fe333e11ae3826296e08eada1d1d2ec8" -KERNEL_SHA="2c90331cf5ed1d648a711b9483e173aaaf2c4a9b" +prev_KERNEL_SHA="2c90331cf5ed1d648a711b9483e173aaaf2c4a9b" +KERNEL_SHA="9bb29b6b927bcd79cf185ee67bcebfe630f0dea1" #git branch #BRANCH="v3.19.x"