* [PATCH v4 07/11] hwmon: add support for the sl28cpld hardware monitoring controller
From: Michael Walle @ 2020-06-04 21:10 UTC (permalink / raw)
To: linux-gpio, devicetree, linux-kernel, linux-hwmon, linux-pwm,
linux-watchdog, linux-arm-kernel
Cc: Marc Zyngier, Jean Delvare, Jason Cooper, Greg Kroah-Hartman,
Shawn Guo, Linus Walleij, Andy Shevchenko, Li Yang,
Bartosz Golaszewski, Michael Walle, Rob Herring, Thierry Reding,
Mark Brown, Uwe Kleine-König, Thomas Gleixner,
Wim Van Sebroeck, Lee Jones, Guenter Roeck
In-Reply-To: <20200604211039.12689-1-michael@walle.cc>
Add support for the hardware monitoring controller of the sl28cpld board
management controller. This driver is part of a multi-function device.
Signed-off-by: Michael Walle <michael@walle.cc>
Acked-by: Guenter Roeck <linux@roeck-us.net>
---
Documentation/hwmon/index.rst | 1 +
Documentation/hwmon/sl28cpld.rst | 36 ++++++++
drivers/hwmon/Kconfig | 10 +++
drivers/hwmon/Makefile | 1 +
drivers/hwmon/sl28cpld-hwmon.c | 150 +++++++++++++++++++++++++++++++
5 files changed, 198 insertions(+)
create mode 100644 Documentation/hwmon/sl28cpld.rst
create mode 100644 drivers/hwmon/sl28cpld-hwmon.c
diff --git a/Documentation/hwmon/index.rst b/Documentation/hwmon/index.rst
index 55ff4b7c5349..1f4beb7449c7 100644
--- a/Documentation/hwmon/index.rst
+++ b/Documentation/hwmon/index.rst
@@ -153,6 +153,7 @@ Hardware Monitoring Kernel Drivers
sht3x
shtc1
sis5595
+ sl28cpld
smm665
smsc47b397
smsc47m192
diff --git a/Documentation/hwmon/sl28cpld.rst b/Documentation/hwmon/sl28cpld.rst
new file mode 100644
index 000000000000..7ed65f78250c
--- /dev/null
+++ b/Documentation/hwmon/sl28cpld.rst
@@ -0,0 +1,36 @@
+.. SPDX-License-Identifier: GPL-2.0-only
+
+Kernel driver sl28cpld
+======================
+
+Supported chips:
+
+ * Kontron sl28cpld
+
+ Prefix: 'sl28cpld'
+
+ Datasheet: not available
+
+Authors: Michael Walle <michael@walle.cc>
+
+Description
+-----------
+
+The sl28cpld is a board management controller which also exposes a hardware
+monitoring controller. At the moment this controller supports a single fan
+supervisor. In the future there might be other flavours and additional
+hardware monitoring might be supported.
+
+The fan supervisor has a 7 bit counter register and a counter period of 1
+second. If the 7 bit counter overflows, the supervisor will automatically
+switch to x8 mode to support a wider input range at the loss of
+granularity.
+
+Sysfs entries
+-------------
+
+The following attributes are supported.
+
+======================= ========================================================
+fan1_input Fan RPM. Assuming 2 pulses per revolution.
+======================= ========================================================
diff --git a/drivers/hwmon/Kconfig b/drivers/hwmon/Kconfig
index 288ae9f63588..e1cab08e80ce 100644
--- a/drivers/hwmon/Kconfig
+++ b/drivers/hwmon/Kconfig
@@ -1459,6 +1459,16 @@ config SENSORS_RASPBERRYPI_HWMON
This driver can also be built as a module. If so, the module
will be called raspberrypi-hwmon.
+config SENSORS_SL28CPLD
+ tristate "Kontron sl28cpl hardware monitoring driver"
+ depends on MFD_SL28CPLD
+ help
+ If you say yes here you get support for the fan supervisor of the
+ sl28cpld board management controller.
+
+ This driver can also be built as a module. If so, the module
+ will be called sl28cpld-hwmon.
+
config SENSORS_SHT15
tristate "Sensiron humidity and temperature sensors. SHT15 and compat."
depends on GPIOLIB || COMPILE_TEST
diff --git a/drivers/hwmon/Makefile b/drivers/hwmon/Makefile
index 3e32c21f5efe..03822f6bf970 100644
--- a/drivers/hwmon/Makefile
+++ b/drivers/hwmon/Makefile
@@ -158,6 +158,7 @@ obj-$(CONFIG_SENSORS_S3C) += s3c-hwmon.o
obj-$(CONFIG_SENSORS_SCH56XX_COMMON)+= sch56xx-common.o
obj-$(CONFIG_SENSORS_SCH5627) += sch5627.o
obj-$(CONFIG_SENSORS_SCH5636) += sch5636.o
+obj-$(CONFIG_SENSORS_SL28CPLD) += sl28cpld-hwmon.o
obj-$(CONFIG_SENSORS_SHT15) += sht15.o
obj-$(CONFIG_SENSORS_SHT21) += sht21.o
obj-$(CONFIG_SENSORS_SHT3x) += sht3x.o
diff --git a/drivers/hwmon/sl28cpld-hwmon.c b/drivers/hwmon/sl28cpld-hwmon.c
new file mode 100644
index 000000000000..de24964a7322
--- /dev/null
+++ b/drivers/hwmon/sl28cpld-hwmon.c
@@ -0,0 +1,150 @@
+// SPDX-License-Identifier: GPL-2.0-only
+/*
+ * sl28cpld hardware monitoring driver.
+ *
+ * Copyright 2019 Kontron Europe GmbH
+ */
+
+#include <linux/bitfield.h>
+#include <linux/hwmon.h>
+#include <linux/kernel.h>
+#include <linux/module.h>
+#include <linux/of_device.h>
+#include <linux/platform_device.h>
+#include <linux/regmap.h>
+
+#define FAN_INPUT 0x00
+#define FAN_SCALE_X8 BIT(7)
+#define FAN_VALUE_MASK GENMASK(6, 0)
+
+struct sl28cpld_hwmon {
+ struct regmap *regmap;
+ u32 offset;
+};
+
+static umode_t sl28cpld_hwmon_is_visible(const void *data,
+ enum hwmon_sensor_types type,
+ u32 attr, int channel)
+{
+ return 0444;
+}
+
+static int sl28cpld_hwmon_read(struct device *dev,
+ enum hwmon_sensor_types type, u32 attr,
+ int channel, long *input)
+{
+ struct sl28cpld_hwmon *hwmon = dev_get_drvdata(dev);
+ unsigned int value;
+ int ret;
+
+ switch (attr) {
+ case hwmon_fan_input:
+ ret = regmap_read(hwmon->regmap, hwmon->offset + FAN_INPUT,
+ &value);
+ if (ret)
+ return ret;
+ /*
+ * The register has a 7 bit value and 1 bit which indicates the
+ * scale. If the MSB is set, then the lower 7 bit has to be
+ * multiplied by 8, to get the correct reading.
+ */
+ if (value & FAN_SCALE_X8)
+ value = FIELD_GET(FAN_VALUE_MASK, value) << 3;
+
+ /*
+ * The counter period is 1000ms and the sysfs specification
+ * says we should asssume 2 pulses per revolution.
+ */
+ value *= 60 / 2;
+
+ break;
+ default:
+ return -EOPNOTSUPP;
+ }
+
+ *input = value;
+ return 0;
+}
+
+static const u32 sl28cpld_hwmon_fan_config[] = {
+ HWMON_F_INPUT,
+ 0
+};
+
+static const struct hwmon_channel_info sl28cpld_hwmon_fan = {
+ .type = hwmon_fan,
+ .config = sl28cpld_hwmon_fan_config,
+};
+
+static const struct hwmon_channel_info *sl28cpld_hwmon_info[] = {
+ &sl28cpld_hwmon_fan,
+ NULL
+};
+
+static const struct hwmon_ops sl28cpld_hwmon_ops = {
+ .is_visible = sl28cpld_hwmon_is_visible,
+ .read = sl28cpld_hwmon_read,
+};
+
+static const struct hwmon_chip_info sl28cpld_hwmon_chip_info = {
+ .ops = &sl28cpld_hwmon_ops,
+ .info = sl28cpld_hwmon_info,
+};
+
+static int sl28cpld_hwmon_probe(struct platform_device *pdev)
+{
+ struct sl28cpld_hwmon *hwmon;
+ struct device *hwmon_dev;
+ int ret;
+
+ if (!pdev->dev.parent)
+ return -ENODEV;
+
+ hwmon = devm_kzalloc(&pdev->dev, sizeof(*hwmon), GFP_KERNEL);
+ if (!hwmon)
+ return -ENOMEM;
+
+ hwmon->regmap = dev_get_regmap(pdev->dev.parent, NULL);
+ if (!hwmon->regmap)
+ return -ENODEV;
+
+ ret = device_property_read_u32(&pdev->dev, "reg", &hwmon->offset);
+ if (ret)
+ return -EINVAL;
+
+ hwmon_dev = devm_hwmon_device_register_with_info(&pdev->dev,
+ "sl28cpld_hwmon", hwmon,
+ &sl28cpld_hwmon_chip_info, NULL);
+ if (IS_ERR(hwmon_dev)) {
+ dev_err(&pdev->dev, "failed to register as hwmon device");
+ return PTR_ERR(hwmon_dev);
+ }
+
+ return 0;
+}
+
+static const struct of_device_id sl28cpld_hwmon_of_match[] = {
+ { .compatible = "kontron,sl28cpld-fan" },
+ {},
+};
+MODULE_DEVICE_TABLE(of, sl28cpld_hwmon_of_match);
+
+static const struct platform_device_id sl28cpld_hwmon_id_table[] = {
+ { "sl28cpld-fan" },
+ {}
+};
+MODULE_DEVICE_TABLE(platform, sl28cpld_hwmon_id_table);
+
+static struct platform_driver sl28cpld_hwmon_driver = {
+ .probe = sl28cpld_hwmon_probe,
+ .id_table = sl28cpld_hwmon_id_table,
+ .driver = {
+ .name = KBUILD_MODNAME,
+ .of_match_table = sl28cpld_hwmon_of_match,
+ },
+};
+module_platform_driver(sl28cpld_hwmon_driver);
+
+MODULE_DESCRIPTION("sl28cpld Hardware Monitoring Driver");
+MODULE_AUTHOR("Michael Walle <michael@walle.cc>");
+MODULE_LICENSE("GPL");
--
2.20.1
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply related
* [PATCH v4 11/11] arm64: dts: freescale: sl28: enable fan support
From: Michael Walle @ 2020-06-04 21:10 UTC (permalink / raw)
To: linux-gpio, devicetree, linux-kernel, linux-hwmon, linux-pwm,
linux-watchdog, linux-arm-kernel
Cc: Marc Zyngier, Jean Delvare, Jason Cooper, Greg Kroah-Hartman,
Shawn Guo, Linus Walleij, Andy Shevchenko, Li Yang,
Bartosz Golaszewski, Michael Walle, Rob Herring, Thierry Reding,
Mark Brown, Uwe Kleine-König, Thomas Gleixner,
Wim Van Sebroeck, Lee Jones, Guenter Roeck
In-Reply-To: <20200604211039.12689-1-michael@walle.cc>
Add a pwm-fan mapped to the PWM channel 0 which is connected to the
fan connector of the carrier.
Signed-off-by: Michael Walle <michael@walle.cc>
---
.../dts/freescale/fsl-ls1028a-kontron-sl28-var3-ads2.dts | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1028a-kontron-sl28-var3-ads2.dts b/arch/arm64/boot/dts/freescale/fsl-ls1028a-kontron-sl28-var3-ads2.dts
index 0973a6a45217..c45d7b40e374 100644
--- a/arch/arm64/boot/dts/freescale/fsl-ls1028a-kontron-sl28-var3-ads2.dts
+++ b/arch/arm64/boot/dts/freescale/fsl-ls1028a-kontron-sl28-var3-ads2.dts
@@ -15,6 +15,15 @@
compatible = "kontron,sl28-var3-ads2", "kontron,sl28-var3",
"kontron,sl28", "fsl,ls1028a";
+ pwm-fan {
+ compatible = "pwm-fan";
+ cooling-min-state = <0>;
+ cooling-max-state = <3>;
+ #cooling-cells = <2>;
+ pwms = <&sl28cpld_pwm0 0 4000000>;
+ cooling-levels = <1 128 192 255>;
+ };
+
sound {
#address-cells = <1>;
#size-cells = <0>;
--
2.20.1
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply related
* [PATCH v4 10/11] arm64: dts: freescale: sl28: enable LED support
From: Michael Walle @ 2020-06-04 21:10 UTC (permalink / raw)
To: linux-gpio, devicetree, linux-kernel, linux-hwmon, linux-pwm,
linux-watchdog, linux-arm-kernel
Cc: Marc Zyngier, Jean Delvare, Jason Cooper, Greg Kroah-Hartman,
Shawn Guo, Linus Walleij, Andy Shevchenko, Li Yang,
Bartosz Golaszewski, Michael Walle, Rob Herring, Thierry Reding,
Mark Brown, Uwe Kleine-König, Thomas Gleixner,
Wim Van Sebroeck, Lee Jones, Guenter Roeck
In-Reply-To: <20200604211039.12689-1-michael@walle.cc>
Now that we have support for GPIO lines of the SMARC connector, enable
LED support on the KBox A-230-LS. There are two LEDs without fixed
functions, one is yellow and one is green. Unfortunately, it is just one
multi-color LED, thus while it is possible to enable both at the same
time it is hard to tell the difference between "yellow only" and "yellow
and green".
Signed-off-by: Michael Walle <michael@walle.cc>
---
.../fsl-ls1028a-kontron-kbox-a-230-ls.dts | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1028a-kontron-kbox-a-230-ls.dts b/arch/arm64/boot/dts/freescale/fsl-ls1028a-kontron-kbox-a-230-ls.dts
index 4b4cc6a1573d..49cf4fe05c80 100644
--- a/arch/arm64/boot/dts/freescale/fsl-ls1028a-kontron-kbox-a-230-ls.dts
+++ b/arch/arm64/boot/dts/freescale/fsl-ls1028a-kontron-kbox-a-230-ls.dts
@@ -16,6 +16,20 @@
model = "Kontron KBox A-230-LS";
compatible = "kontron,kbox-a-230-ls", "kontron,sl28-var4",
"kontron,sl28", "fsl,ls1028a";
+
+ leds {
+ compatible = "gpio-leds";
+
+ user_yellow {
+ label = "s1914:yellow:user";
+ gpios = <&sl28cpld_gpio0 0 0>;
+ };
+
+ user_green {
+ label = "s1914:green:user";
+ gpios = <&sl28cpld_gpio1 3 0>;
+ };
+ };
};
&enetc_mdio_pf3 {
--
2.20.1
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply related
* [PATCH v4 08/11] arm64: dts: freescale: sl28: enable sl28cpld
From: Michael Walle @ 2020-06-04 21:10 UTC (permalink / raw)
To: linux-gpio, devicetree, linux-kernel, linux-hwmon, linux-pwm,
linux-watchdog, linux-arm-kernel
Cc: Marc Zyngier, Jean Delvare, Jason Cooper, Greg Kroah-Hartman,
Shawn Guo, Linus Walleij, Andy Shevchenko, Li Yang,
Bartosz Golaszewski, Michael Walle, Rob Herring, Thierry Reding,
Mark Brown, Uwe Kleine-König, Thomas Gleixner,
Wim Van Sebroeck, Lee Jones, Guenter Roeck
In-Reply-To: <20200604211039.12689-1-michael@walle.cc>
Add the board management controller node.
Signed-off-by: Michael Walle <michael@walle.cc>
---
.../freescale/fsl-ls1028a-kontron-sl28.dts | 102 ++++++++++++++++++
1 file changed, 102 insertions(+)
diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1028a-kontron-sl28.dts b/arch/arm64/boot/dts/freescale/fsl-ls1028a-kontron-sl28.dts
index 360b3a168c10..8712fe82727b 100644
--- a/arch/arm64/boot/dts/freescale/fsl-ls1028a-kontron-sl28.dts
+++ b/arch/arm64/boot/dts/freescale/fsl-ls1028a-kontron-sl28.dts
@@ -8,6 +8,7 @@
/dts-v1/;
#include "fsl-ls1028a.dtsi"
+#include <dt-bindings/interrupt-controller/irq.h>
/ {
model = "Kontron SMARC-sAL28";
@@ -170,6 +171,107 @@
reg = <0x32>;
};
+ sl28cpld@4a {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ compatible = "kontron,sl28cpld-r1";
+ reg = <0x4a>;
+
+ watchdog@4 {
+ compatible = "kontron,sl28cpld-wdt";
+ reg = <0x4>;
+ kontron,assert-wdt-timeout-pin;
+ };
+
+ hwmon@b {
+ compatible = "kontron,sl28cpld-fan";
+ reg = <0xb>;
+ };
+
+ sl28cpld_pwm0: pwm@c {
+ #pwm-cells = <2>;
+ compatible = "kontron,sl28cpld-pwm";
+ reg = <0xc>;
+ };
+
+ sl28cpld_pwm1: pwm@e {
+ #pwm-cells = <2>;
+ compatible = "kontron,sl28cpld-pwm";
+ reg = <0xe>;
+ };
+
+ sl28cpld_gpio0: gpio@10 {
+ compatible = "kontron,sl28cpld-gpio";
+ reg = <0x10>;
+ interrupts-extended = <&gpio2 6
+ IRQ_TYPE_EDGE_FALLING>;
+
+ gpio-controller;
+ #gpio-cells = <2>;
+ gpio-line-names =
+ "GPIO0_CAM0_PWR_N", "GPIO1_CAM1_PWR_N",
+ "GPIO2_CAM0_RST_N", "GPIO3_CAM1_RST_N",
+ "GPIO4_HDA_RST_N", "GPIO5_PWM_OUT",
+ "GPIO6_TACHIN", "GPIO7";
+
+ interrupt-controller;
+ #interrupt-cells = <2>;
+ };
+
+ sl28cpld_gpio1: gpio@15 {
+ compatible = "kontron,sl28cpld-gpio";
+ reg = <0x15>;
+ interrupts-extended = <&gpio2 6
+ IRQ_TYPE_EDGE_FALLING>;
+
+ gpio-controller;
+ #gpio-cells = <2>;
+ gpio-line-names =
+ "GPIO8", "GPIO9", "GPIO10", "GPIO11",
+ "", "", "", "";
+
+ interrupt-controller;
+ #interrupt-cells = <2>;
+ };
+
+ sl28cpld_gpio2: gpio@1a {
+ compatible = "kontron,sl28cpld-gpo";
+ reg = <0x1a>;
+
+ gpio-controller;
+ #gpio-cells = <2>;
+ gpio-line-names =
+ "LCD0 voltage enable",
+ "LCD0 backlight enable",
+ "eMMC reset", "LVDS bridge reset",
+ "LVDS bridge power-down",
+ "SDIO power enable",
+ "", "";
+ };
+
+ sl28cpld_gpio3: gpio@1b {
+ compatible = "kontron,sl28cpld-gpi";
+ reg = <0x1b>;
+
+ gpio-controller;
+ #gpio-cells = <2>;
+ gpio-line-names =
+ "Power button", "Force recovery", "Sleep",
+ "Battery low", "Lid state", "Charging",
+ "Charger present", "";
+ };
+
+ sl28cpld_intc: interrupt-controller@1c {
+ compatible = "kontron,sl28cpld-intc";
+ reg = <0x1c>;
+ interrupts-extended = <&gpio2 6
+ IRQ_TYPE_EDGE_FALLING>;
+
+ interrupt-controller;
+ #interrupt-cells = <2>;
+ };
+ };
+
eeprom@50 {
compatible = "atmel,24c32";
reg = <0x50>;
--
2.20.1
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply related
* [PATCH v4 05/11] pwm: add support for sl28cpld PWM controller
From: Michael Walle @ 2020-06-04 21:10 UTC (permalink / raw)
To: linux-gpio, devicetree, linux-kernel, linux-hwmon, linux-pwm,
linux-watchdog, linux-arm-kernel
Cc: Marc Zyngier, Jean Delvare, Jason Cooper, Greg Kroah-Hartman,
Shawn Guo, Linus Walleij, Andy Shevchenko, Li Yang,
Bartosz Golaszewski, Michael Walle, Rob Herring, Thierry Reding,
Mark Brown, Uwe Kleine-König, Thomas Gleixner,
Wim Van Sebroeck, Lee Jones, Guenter Roeck
In-Reply-To: <20200604211039.12689-1-michael@walle.cc>
Add support for the PWM controller of the sl28cpld board management
controller. This is part of a multi-function device driver.
The controller has one PWM channel and can just generate four distinct
frequencies.
Signed-off-by: Michael Walle <michael@walle.cc>
---
drivers/pwm/Kconfig | 10 ++
drivers/pwm/Makefile | 1 +
drivers/pwm/pwm-sl28cpld.c | 201 +++++++++++++++++++++++++++++++++++++
3 files changed, 212 insertions(+)
create mode 100644 drivers/pwm/pwm-sl28cpld.c
diff --git a/drivers/pwm/Kconfig b/drivers/pwm/Kconfig
index cb8d739067d2..a39371c11ff6 100644
--- a/drivers/pwm/Kconfig
+++ b/drivers/pwm/Kconfig
@@ -437,6 +437,16 @@ config PWM_SIFIVE
To compile this driver as a module, choose M here: the module
will be called pwm-sifive.
+config PWM_SL28CPLD
+ tristate "Kontron sl28 PWM support"
+ depends on MFD_SL28CPLD
+ help
+ Generic PWM framework driver for board management controller
+ found on the Kontron sl28 CPLD.
+
+ To compile this driver as a module, choose M here: the module
+ will be called pwm-sl28cpld.
+
config PWM_SPEAR
tristate "STMicroelectronics SPEAr PWM support"
depends on PLAT_SPEAR || COMPILE_TEST
diff --git a/drivers/pwm/Makefile b/drivers/pwm/Makefile
index a59c710e98c7..c479623724e8 100644
--- a/drivers/pwm/Makefile
+++ b/drivers/pwm/Makefile
@@ -41,6 +41,7 @@ obj-$(CONFIG_PWM_RENESAS_TPU) += pwm-renesas-tpu.o
obj-$(CONFIG_PWM_ROCKCHIP) += pwm-rockchip.o
obj-$(CONFIG_PWM_SAMSUNG) += pwm-samsung.o
obj-$(CONFIG_PWM_SIFIVE) += pwm-sifive.o
+obj-$(CONFIG_PWM_SL28CPLD) += pwm-sl28cpld.o
obj-$(CONFIG_PWM_SPEAR) += pwm-spear.o
obj-$(CONFIG_PWM_SPRD) += pwm-sprd.o
obj-$(CONFIG_PWM_STI) += pwm-sti.o
diff --git a/drivers/pwm/pwm-sl28cpld.c b/drivers/pwm/pwm-sl28cpld.c
new file mode 100644
index 000000000000..d82303f509f5
--- /dev/null
+++ b/drivers/pwm/pwm-sl28cpld.c
@@ -0,0 +1,201 @@
+// SPDX-License-Identifier: GPL-2.0-only
+/*
+ * sl28cpld PWM driver.
+ *
+ * Copyright 2019 Kontron Europe GmbH
+ */
+
+#include <linux/bitfield.h>
+#include <linux/kernel.h>
+#include <linux/module.h>
+#include <linux/of_device.h>
+#include <linux/platform_device.h>
+#include <linux/pwm.h>
+#include <linux/regmap.h>
+
+/*
+ * PWM timer block registers.
+ */
+#define PWM_CTRL 0x00
+#define PWM_ENABLE BIT(7)
+#define PWM_MODE_250HZ 0
+#define PWM_MODE_500HZ 1
+#define PWM_MODE_1KHZ 2
+#define PWM_MODE_2KHZ 3
+#define PWM_MODE_MASK GENMASK(1, 0)
+#define PWM_CYCLE 0x01
+#define PWM_CYCLE_MAX 0x7f
+
+struct sl28cpld_pwm {
+ struct pwm_chip pwm_chip;
+ struct regmap *regmap;
+ u32 offset;
+};
+
+struct sl28cpld_pwm_periods {
+ u8 ctrl;
+ unsigned long duty_cycle;
+};
+
+struct sl28cpld_pwm_config {
+ unsigned long period_ns;
+ u8 max_duty_cycle;
+};
+
+static struct sl28cpld_pwm_config sl28cpld_pwm_config[] = {
+ [PWM_MODE_250HZ] = { .period_ns = 4000000, .max_duty_cycle = 0x80 },
+ [PWM_MODE_500HZ] = { .period_ns = 2000000, .max_duty_cycle = 0x40 },
+ [PWM_MODE_1KHZ] = { .period_ns = 1000000, .max_duty_cycle = 0x20 },
+ [PWM_MODE_2KHZ] = { .period_ns = 500000, .max_duty_cycle = 0x10 },
+};
+
+static inline struct sl28cpld_pwm *to_sl28cpld_pwm(struct pwm_chip *chip)
+{
+ return container_of(chip, struct sl28cpld_pwm, pwm_chip);
+}
+
+static void sl28cpld_pwm_get_state(struct pwm_chip *chip,
+ struct pwm_device *pwm,
+ struct pwm_state *state)
+{
+ struct sl28cpld_pwm *spc = to_sl28cpld_pwm(chip);
+ static struct sl28cpld_pwm_config *config;
+ unsigned int reg;
+ unsigned long cycle;
+ unsigned int mode;
+
+ regmap_read(spc->regmap, spc->offset + PWM_CTRL, ®);
+
+ state->enabled = reg & PWM_ENABLE;
+
+ mode = FIELD_GET(PWM_MODE_MASK, reg);
+ config = &sl28cpld_pwm_config[mode];
+ state->period = config->period_ns;
+
+ regmap_read(spc->regmap, spc->offset + PWM_CYCLE, ®);
+ cycle = reg * config->period_ns;
+ state->duty_cycle = DIV_ROUND_CLOSEST_ULL(cycle,
+ config->max_duty_cycle);
+}
+
+static int sl28cpld_pwm_apply(struct pwm_chip *chip, struct pwm_device *pwm,
+ const struct pwm_state *state)
+{
+ struct sl28cpld_pwm *spc = to_sl28cpld_pwm(chip);
+ struct sl28cpld_pwm_config *config;
+ unsigned long long cycle;
+ int ret;
+ int mode;
+ u8 ctrl;
+
+ /* update config, first search best matching period */
+ for (mode = 0; mode < ARRAY_SIZE(sl28cpld_pwm_config); mode++) {
+ config = &sl28cpld_pwm_config[mode];
+ if (state->period == config->period_ns)
+ break;
+ }
+
+ if (mode == ARRAY_SIZE(sl28cpld_pwm_config))
+ return -EINVAL;
+
+ ctrl = FIELD_PREP(PWM_MODE_MASK, mode);
+ if (state->enabled)
+ ctrl |= PWM_ENABLE;
+
+ cycle = state->duty_cycle * config->max_duty_cycle;
+ do_div(cycle, state->period);
+
+ /*
+ * The hardware doesn't allow to set max_duty_cycle if the
+ * 250Hz mode is enabled. But since this is "all-high" output
+ * just use the 500Hz mode with the duty cycle to max value.
+ */
+ if (cycle == config->max_duty_cycle) {
+ ctrl &= ~PWM_MODE_MASK;
+ ctrl |= FIELD_PREP(PWM_MODE_MASK, PWM_MODE_500HZ);
+ cycle = PWM_CYCLE_MAX;
+ }
+
+ ret = regmap_write(spc->regmap, spc->offset + PWM_CTRL, ctrl);
+ if (ret)
+ return ret;
+
+ return regmap_write(spc->regmap, spc->offset + PWM_CYCLE, (u8)cycle);
+}
+
+static const struct pwm_ops sl28cpld_pwm_ops = {
+ .apply = sl28cpld_pwm_apply,
+ .get_state = sl28cpld_pwm_get_state,
+ .owner = THIS_MODULE,
+};
+
+static int sl28cpld_pwm_probe(struct platform_device *pdev)
+{
+ struct sl28cpld_pwm *pwm;
+ struct pwm_chip *chip;
+ int ret;
+
+ if (!pdev->dev.parent)
+ return -ENODEV;
+
+ pwm = devm_kzalloc(&pdev->dev, sizeof(*pwm), GFP_KERNEL);
+ if (!pwm)
+ return -ENOMEM;
+
+ pwm->regmap = dev_get_regmap(pdev->dev.parent, NULL);
+ if (!pwm->regmap)
+ return -ENODEV;
+
+ ret = device_property_read_u32(&pdev->dev, "reg", &pwm->offset);
+ if (ret)
+ return -EINVAL;
+
+ /* initialize struct pwm_chip */
+ chip = &pwm->pwm_chip;
+ chip->dev = &pdev->dev;
+ chip->ops = &sl28cpld_pwm_ops;
+ chip->base = -1;
+ chip->npwm = 1;
+
+ ret = pwmchip_add(&pwm->pwm_chip);
+ if (ret < 0)
+ return ret;
+
+ platform_set_drvdata(pdev, pwm);
+
+ return 0;
+}
+
+static int sl28cpld_pwm_remove(struct platform_device *pdev)
+{
+ struct sl28cpld_pwm *pwm = platform_get_drvdata(pdev);
+
+ return pwmchip_remove(&pwm->pwm_chip);
+}
+
+static const struct of_device_id sl28cpld_pwm_of_match[] = {
+ { .compatible = "kontron,sl28cpld-pwm" },
+ {},
+};
+MODULE_DEVICE_TABLE(of, sl28cpld_pwm_of_match);
+
+static const struct platform_device_id sl28cpld_pwm_id_table[] = {
+ {"sl28cpld-pwm"},
+ {},
+};
+MODULE_DEVICE_TABLE(platform, sl28cpld_pwm_id_table);
+
+static struct platform_driver sl28cpld_pwm_driver = {
+ .probe = sl28cpld_pwm_probe,
+ .remove = sl28cpld_pwm_remove,
+ .id_table = sl28cpld_pwm_id_table,
+ .driver = {
+ .name = KBUILD_MODNAME,
+ .of_match_table = sl28cpld_pwm_of_match,
+ },
+};
+module_platform_driver(sl28cpld_pwm_driver);
+
+MODULE_DESCRIPTION("sl28cpld PWM Driver");
+MODULE_AUTHOR("Michael Walle <michael@walle.cc>");
+MODULE_LICENSE("GPL");
--
2.20.1
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply related
* [PATCH v4 06/11] gpio: add support for the sl28cpld GPIO controller
From: Michael Walle @ 2020-06-04 21:10 UTC (permalink / raw)
To: linux-gpio, devicetree, linux-kernel, linux-hwmon, linux-pwm,
linux-watchdog, linux-arm-kernel
Cc: Marc Zyngier, Jean Delvare, Jason Cooper, Greg Kroah-Hartman,
Shawn Guo, Linus Walleij, Andy Shevchenko, Li Yang,
Bartosz Golaszewski, Michael Walle, Rob Herring, Thierry Reding,
Mark Brown, Uwe Kleine-König, Thomas Gleixner,
Wim Van Sebroeck, Lee Jones, Guenter Roeck
In-Reply-To: <20200604211039.12689-1-michael@walle.cc>
Add support for the GPIO controller of the sl28 board management
controller. This driver is part of a multi-function device.
A controller has 8 lines. There are three different flavors:
full-featured GPIO with interrupt support, input-only and output-only.
Signed-off-by: Michael Walle <michael@walle.cc>
---
drivers/gpio/Kconfig | 11 +++
drivers/gpio/Makefile | 1 +
drivers/gpio/gpio-sl28cpld.c | 180 +++++++++++++++++++++++++++++++++++
3 files changed, 192 insertions(+)
create mode 100644 drivers/gpio/gpio-sl28cpld.c
diff --git a/drivers/gpio/Kconfig b/drivers/gpio/Kconfig
index bcacd9c74aa8..a325d2d619a8 100644
--- a/drivers/gpio/Kconfig
+++ b/drivers/gpio/Kconfig
@@ -1215,6 +1215,17 @@ config GPIO_RC5T583
This driver provides the support for driving/reading the gpio pins
of RC5T583 device through standard gpio library.
+config GPIO_SL28CPLD
+ tristate "Kontron sl28 GPIO"
+ depends on MFD_SL28CPLD
+ select GPIO_REGMAP
+ select GPIOLIB_IRQCHIP
+ help
+ This enables support for the GPIOs found on the Kontron sl28 CPLD.
+
+ This driver can also be built as a module. If so, the module will be
+ called gpio-sl28cpld.
+
config GPIO_STMPE
bool "STMPE GPIOs"
depends on MFD_STMPE
diff --git a/drivers/gpio/Makefile b/drivers/gpio/Makefile
index 1e4894e0bf0f..152127a9b339 100644
--- a/drivers/gpio/Makefile
+++ b/drivers/gpio/Makefile
@@ -130,6 +130,7 @@ obj-$(CONFIG_GPIO_SCH311X) += gpio-sch311x.o
obj-$(CONFIG_GPIO_SCH) += gpio-sch.o
obj-$(CONFIG_GPIO_SIFIVE) += gpio-sifive.o
obj-$(CONFIG_GPIO_SIOX) += gpio-siox.o
+obj-$(CONFIG_GPIO_SL28CPLD) += gpio-sl28cpld.o
obj-$(CONFIG_GPIO_SODAVILLE) += gpio-sodaville.o
obj-$(CONFIG_GPIO_SPEAR_SPICS) += gpio-spear-spics.o
obj-$(CONFIG_GPIO_SPRD) += gpio-sprd.o
diff --git a/drivers/gpio/gpio-sl28cpld.c b/drivers/gpio/gpio-sl28cpld.c
new file mode 100644
index 000000000000..800e218ee624
--- /dev/null
+++ b/drivers/gpio/gpio-sl28cpld.c
@@ -0,0 +1,180 @@
+// SPDX-License-Identifier: GPL-2.0-only
+/*
+ * sl28cpld GPIO driver.
+ *
+ * Copyright 2019 Michael Walle <michael@walle.cc>
+ */
+
+#include <linux/device.h>
+#include <linux/gpio/regmap.h>
+#include <linux/gpio/driver.h>
+#include <linux/interrupt.h>
+#include <linux/kernel.h>
+#include <linux/module.h>
+#include <linux/of_device.h>
+#include <linux/platform_device.h>
+#include <linux/regmap.h>
+
+/* GPIO flavor */
+#define GPIO_REG_DIR 0x00
+#define GPIO_REG_OUT 0x01
+#define GPIO_REG_IN 0x02
+#define GPIO_REG_IE 0x03
+#define GPIO_REG_IP 0x04
+
+/* input-only flavor */
+#define GPI_REG_IN 0x00
+
+/* output-only flavor */
+#define GPO_REG_OUT 0x00
+
+enum sl28cpld_gpio_type {
+ SL28CPLD_GPIO = 1,
+ SL28CPLD_GPI,
+ SL28CPLD_GPO,
+};
+
+struct sl28cpld_gpio {
+ struct regmap_irq_chip irq_chip;
+ struct regmap_irq_chip_data *irq_data;
+};
+
+static const struct regmap_irq sl28cpld_gpio_irqs[] = {
+ REGMAP_IRQ_REG_LINE(0, 8),
+ REGMAP_IRQ_REG_LINE(1, 8),
+ REGMAP_IRQ_REG_LINE(2, 8),
+ REGMAP_IRQ_REG_LINE(3, 8),
+ REGMAP_IRQ_REG_LINE(4, 8),
+ REGMAP_IRQ_REG_LINE(5, 8),
+ REGMAP_IRQ_REG_LINE(6, 8),
+ REGMAP_IRQ_REG_LINE(7, 8),
+};
+
+static int sl28cpld_gpio_irq_init(struct device *dev,
+ struct sl28cpld_gpio *gpio,
+ struct regmap *regmap, unsigned int base,
+ int irq)
+{
+ struct regmap_irq_chip *irq_chip = &gpio->irq_chip;
+
+ irq_chip->name = "sl28cpld-gpio-irq",
+ irq_chip->irqs = sl28cpld_gpio_irqs;
+ irq_chip->num_irqs = ARRAY_SIZE(sl28cpld_gpio_irqs);
+ irq_chip->num_regs = 1;
+ irq_chip->status_base = base + GPIO_REG_IP;
+ irq_chip->mask_base = base + GPIO_REG_IE;
+ irq_chip->mask_invert = true,
+ irq_chip->ack_base = base + GPIO_REG_IP;
+
+ return devm_regmap_add_irq_chip_np(dev, dev_of_node(dev), regmap,
+ irq, IRQF_SHARED | IRQF_ONESHOT, 0,
+ irq_chip, &gpio->irq_data);
+}
+
+static int sl28cpld_gpio_probe(struct platform_device *pdev)
+{
+ const struct platform_device_id *dev_id;
+ struct gpio_regmap_config config = {0};
+ enum sl28cpld_gpio_type type;
+ struct sl28cpld_gpio *gpio;
+ bool irq_support = false;
+ struct regmap *regmap;
+ int irq, ret;
+ u32 base;
+
+ if (!pdev->dev.parent)
+ return -ENODEV;
+
+ dev_id = platform_get_device_id(pdev);
+ if (dev_id)
+ type = dev_id->driver_data;
+ else
+ type = (uintptr_t)of_device_get_match_data(&pdev->dev);
+ if (!type)
+ return -ENODEV;
+
+ gpio = devm_kzalloc(&pdev->dev, sizeof(*gpio), GFP_KERNEL);
+ if (!gpio)
+ return -ENOMEM;
+
+ ret = device_property_read_u32(&pdev->dev, "reg", &base);
+ if (ret)
+ return -EINVAL;
+
+ regmap = dev_get_regmap(pdev->dev.parent, NULL);
+ if (!regmap)
+ return -ENODEV;
+
+ config.regmap = regmap;
+ config.parent = &pdev->dev;
+ config.ngpio = 8;
+
+ switch (type) {
+ case SL28CPLD_GPIO:
+ config.reg_dat_base = base + GPIO_REG_IN;
+ config.reg_set_base = base + GPIO_REG_OUT;
+ /* reg_dir_out_base might be zero */
+ config.reg_dir_out_base = GPIO_REGMAP_ADDR(base +
+ GPIO_REG_DIR);
+ irq_support = true;
+ break;
+ case SL28CPLD_GPO:
+ config.reg_set_base = base + GPO_REG_OUT;
+ break;
+ case SL28CPLD_GPI:
+ config.reg_dat_base = base + GPI_REG_IN;
+ break;
+ default:
+ dev_err(&pdev->dev, "unknown type %d\n", type);
+ return -ENODEV;
+ }
+
+ if (irq_support &&
+ device_property_read_bool(&pdev->dev, "interrupt-controller")) {
+ irq = platform_get_irq(pdev, 0);
+ if (irq < 0)
+ return irq;
+
+ ret = sl28cpld_gpio_irq_init(&pdev->dev, gpio, regmap,
+ base, irq);
+ if (ret)
+ return ret;
+
+ config.irq_domain = regmap_irq_get_domain(gpio->irq_data);
+ }
+
+ return PTR_ERR_OR_ZERO(devm_gpio_regmap_register(&pdev->dev, &config));
+}
+
+static const struct of_device_id sl28cpld_gpio_of_match[] = {
+ { .compatible = "kontron,sl28cpld-gpio",
+ .data = (void *)SL28CPLD_GPIO },
+ { .compatible = "kontron,sl28cpld-gpi",
+ .data = (void *)SL28CPLD_GPI },
+ { .compatible = "kontron,sl28cpld-gpo",
+ .data = (void *)SL28CPLD_GPO },
+ {},
+};
+MODULE_DEVICE_TABLE(of, sl28cpld_gpio_of_match);
+
+static const struct platform_device_id sl28cpld_gpio_id_table[] = {
+ { "sl28cpld-gpio", SL28CPLD_GPIO },
+ { "sl28cpld-gpi", SL28CPLD_GPI },
+ { "sl28cpld-gpo", SL28CPLD_GPO },
+ {}
+};
+MODULE_DEVICE_TABLE(platform, sl28cpld_gpio_id_table);
+
+static struct platform_driver sl28cpld_gpio_driver = {
+ .probe = sl28cpld_gpio_probe,
+ .id_table = sl28cpld_gpio_id_table,
+ .driver = {
+ .name = KBUILD_MODNAME,
+ .of_match_table = sl28cpld_gpio_of_match,
+ },
+};
+module_platform_driver(sl28cpld_gpio_driver);
+
+MODULE_DESCRIPTION("sl28cpld GPIO Driver");
+MODULE_AUTHOR("Michael Walle <michael@walle.cc>");
+MODULE_LICENSE("GPL");
--
2.20.1
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply related
* [PATCH v4 09/11] arm64: dts: freescale: sl28: map GPIOs to input events
From: Michael Walle @ 2020-06-04 21:10 UTC (permalink / raw)
To: linux-gpio, devicetree, linux-kernel, linux-hwmon, linux-pwm,
linux-watchdog, linux-arm-kernel
Cc: Marc Zyngier, Jean Delvare, Jason Cooper, Greg Kroah-Hartman,
Shawn Guo, Linus Walleij, Andy Shevchenko, Li Yang,
Bartosz Golaszewski, Michael Walle, Rob Herring, Thierry Reding,
Mark Brown, Uwe Kleine-König, Thomas Gleixner,
Wim Van Sebroeck, Lee Jones, Guenter Roeck
In-Reply-To: <20200604211039.12689-1-michael@walle.cc>
Now that we have support for GPIO lines of the SMARC connector, map the
sleep, power and lid switch signals to the corresponding keys using the
gpio-keys and gpio-keys-polled drivers. The power and sleep signals have
dedicated interrupts, thus we use these ones. The lid switch is just
mapped to a GPIO input and needs polling.
Signed-off-by: Michael Walle <michael@walle.cc>
---
.../freescale/fsl-ls1028a-kontron-sl28.dts | 32 +++++++++++++++++++
1 file changed, 32 insertions(+)
diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1028a-kontron-sl28.dts b/arch/arm64/boot/dts/freescale/fsl-ls1028a-kontron-sl28.dts
index 8712fe82727b..c4fd99efdbba 100644
--- a/arch/arm64/boot/dts/freescale/fsl-ls1028a-kontron-sl28.dts
+++ b/arch/arm64/boot/dts/freescale/fsl-ls1028a-kontron-sl28.dts
@@ -9,6 +9,8 @@
/dts-v1/;
#include "fsl-ls1028a.dtsi"
#include <dt-bindings/interrupt-controller/irq.h>
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
/ {
model = "Kontron SMARC-sAL28";
@@ -23,6 +25,36 @@
spi1 = &dspi2;
};
+ buttons0 {
+ compatible = "gpio-keys";
+
+ power-button {
+ interrupts-extended = <&sl28cpld_intc
+ 4 IRQ_TYPE_EDGE_BOTH>;
+ linux,code = <KEY_POWER>;
+ label = "Power";
+ };
+
+ sleep-button {
+ interrupts-extended = <&sl28cpld_intc
+ 5 IRQ_TYPE_EDGE_BOTH>;
+ linux,code = <KEY_SLEEP>;
+ label = "Sleep";
+ };
+ };
+
+ buttons1 {
+ compatible = "gpio-keys-polled";
+ poll-interval = <200>;
+
+ lid-switch {
+ linux,input-type = <EV_SW>;
+ linux,code = <SW_LID>;
+ gpios = <&sl28cpld_gpio3 4 GPIO_ACTIVE_LOW>;
+ label = "Lid";
+ };
+ };
+
chosen {
stdout-path = "serial0:115200n8";
};
--
2.20.1
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply related
* [PATCH v4 01/11] dt-bindings: mfd: Add bindings for sl28cpld
From: Michael Walle @ 2020-06-04 21:10 UTC (permalink / raw)
To: linux-gpio, devicetree, linux-kernel, linux-hwmon, linux-pwm,
linux-watchdog, linux-arm-kernel
Cc: Marc Zyngier, Jean Delvare, Jason Cooper, Greg Kroah-Hartman,
Shawn Guo, Linus Walleij, Andy Shevchenko, Li Yang,
Bartosz Golaszewski, Michael Walle, Rob Herring, Thierry Reding,
Mark Brown, Uwe Kleine-König, Thomas Gleixner,
Wim Van Sebroeck, Lee Jones, Guenter Roeck
In-Reply-To: <20200604211039.12689-1-michael@walle.cc>
Add a device tree bindings for the board management controller found on
the Kontron SMARC-sAL28 board.
Signed-off-by: Michael Walle <michael@walle.cc>
---
.../bindings/gpio/kontron,sl28cpld-gpio.yaml | 54 +++++++
.../hwmon/kontron,sl28cpld-hwmon.yaml | 27 ++++
.../kontron,sl28cpld-intc.yaml | 54 +++++++
.../bindings/mfd/kontron,sl28cpld.yaml | 153 ++++++++++++++++++
.../bindings/pwm/kontron,sl28cpld-pwm.yaml | 35 ++++
.../watchdog/kontron,sl28cpld-wdt.yaml | 35 ++++
6 files changed, 358 insertions(+)
create mode 100644 Documentation/devicetree/bindings/gpio/kontron,sl28cpld-gpio.yaml
create mode 100644 Documentation/devicetree/bindings/hwmon/kontron,sl28cpld-hwmon.yaml
create mode 100644 Documentation/devicetree/bindings/interrupt-controller/kontron,sl28cpld-intc.yaml
create mode 100644 Documentation/devicetree/bindings/mfd/kontron,sl28cpld.yaml
create mode 100644 Documentation/devicetree/bindings/pwm/kontron,sl28cpld-pwm.yaml
create mode 100644 Documentation/devicetree/bindings/watchdog/kontron,sl28cpld-wdt.yaml
diff --git a/Documentation/devicetree/bindings/gpio/kontron,sl28cpld-gpio.yaml b/Documentation/devicetree/bindings/gpio/kontron,sl28cpld-gpio.yaml
new file mode 100644
index 000000000000..9a63a158a796
--- /dev/null
+++ b/Documentation/devicetree/bindings/gpio/kontron,sl28cpld-gpio.yaml
@@ -0,0 +1,54 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/gpio/kontron,sl28cpld-gpio.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: GPIO driver for the sl28cpld board management controller
+
+maintainers:
+ - Michael Walle <michael@walle.cc>
+
+description: |
+ This module is part of the sl28cpld multi-function device. For more
+ details see Documentation/devicetree/bindings/mfd/kontron,sl28cpld.yaml.
+
+ There are three flavors of the GPIO controller, one full featured
+ input/output with interrupt support (kontron,sl28cpld-gpio), one
+ output-only (kontron,sl28-gpo) and one input-only (kontron,sl28-gpi).
+
+ Each controller supports 8 GPIO lines.
+
+properties:
+ compatible:
+ enum:
+ - kontron,sl28cpld-gpio
+ - kontron,sl28cpld-gpi
+ - kontron,sl28cpld-gpo
+
+ reg:
+ maxItems: 1
+
+ interrupts:
+ maxItems: 1
+
+ "#interrupt-cells":
+ const: 2
+
+ interrupt-controller: true
+
+ "#gpio-cells":
+ const: 2
+
+ gpio-controller: true
+
+ gpio-line-names:
+ minItems: 1
+ maxItems: 8
+
+required:
+ - compatible
+ - "#gpio-cells"
+ - gpio-controller
+
+additionalProperties: false
diff --git a/Documentation/devicetree/bindings/hwmon/kontron,sl28cpld-hwmon.yaml b/Documentation/devicetree/bindings/hwmon/kontron,sl28cpld-hwmon.yaml
new file mode 100644
index 000000000000..1cebd61c6c32
--- /dev/null
+++ b/Documentation/devicetree/bindings/hwmon/kontron,sl28cpld-hwmon.yaml
@@ -0,0 +1,27 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/hwmon/kontron,sl28cpld-hwmon.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Hardware monitoring driver for the sl28cpld board management controller
+
+maintainers:
+ - Michael Walle <michael@walle.cc>
+
+description: |
+ This module is part of the sl28cpld multi-function device. For more
+ details see Documentation/devicetree/bindings/mfd/kontron,sl28cpld.yaml.
+
+properties:
+ compatible:
+ enum:
+ - kontron,sl28cpld-fan
+
+ reg:
+ maxItems: 1
+
+required:
+ - compatible
+
+additionalProperties: false
diff --git a/Documentation/devicetree/bindings/interrupt-controller/kontron,sl28cpld-intc.yaml b/Documentation/devicetree/bindings/interrupt-controller/kontron,sl28cpld-intc.yaml
new file mode 100644
index 000000000000..4c39e9ff9aea
--- /dev/null
+++ b/Documentation/devicetree/bindings/interrupt-controller/kontron,sl28cpld-intc.yaml
@@ -0,0 +1,54 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/interrupt-controller/kontron,sl28cpld-intc.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Interrupt controller driver for the sl28cpld board management controller
+
+maintainers:
+ - Michael Walle <michael@walle.cc>
+
+description: |
+ This module is part of the sl28cpld multi-function device. For more
+ details see Documentation/devicetree/bindings/mfd/kontron,sl28cpld.yaml.
+
+ The following interrupts are available. All types and levels are fixed
+ and handled by the board management controller.
+
+ ==== ============= ==================================
+ IRQ line/device description
+ ==== ============= ==================================
+ 0 RTC_INT# Interrupt line from on-board RTC
+ 1 SMB_ALERT# Event on SMB_ALERT# line (P1)
+ 2 ESPI_ALERT0# Event on ESPI_ALERT0# line (S43)
+ 3 ESPI_ALERT1# Event on ESPI_ALERT1# line (S44)
+ 4 PWR_BTN# Event on PWR_BTN# line (P128)
+ 5 SLEEP# Event on SLEEP# line (S149)
+ 6 watchdog Interrupt of the internal watchdog
+ 7 n/a not used
+ ==== ============= ==================================
+
+properties:
+ compatible:
+ enum:
+ - kontron,sl28cpld-intc
+
+ reg:
+ maxItems: 1
+
+ interrupts:
+ maxItems: 1
+
+ "#interrupt-cells":
+ const: 2
+
+ interrupt-controller: true
+
+required:
+ - compatible
+ - interrupts
+ - "#interrupt-cells"
+ - interrupt-controller
+
+additionalProperties: false
diff --git a/Documentation/devicetree/bindings/mfd/kontron,sl28cpld.yaml b/Documentation/devicetree/bindings/mfd/kontron,sl28cpld.yaml
new file mode 100644
index 000000000000..1d13bb24afb8
--- /dev/null
+++ b/Documentation/devicetree/bindings/mfd/kontron,sl28cpld.yaml
@@ -0,0 +1,153 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/mfd/kontron,sl28cpld.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Kontron's sl28cpld board management controller
+
+maintainers:
+ - Michael Walle <michael@walle.cc>
+
+description: |
+ The board management controller may contain different IP blocks like
+ watchdog, fan monitoring, PWM controller, interrupt controller and a
+ GPIO controller.
+
+properties:
+ compatible:
+ const: kontron,sl28cpld-r1
+
+ reg:
+ description:
+ I2C device address.
+ maxItems: 1
+
+ "#address-cells":
+ const: 1
+
+ "#size-cells":
+ const: 0
+
+ "#interrupt-cells":
+ const: 2
+
+ interrupts:
+ maxItems: 1
+
+ interrupt-controller: true
+
+patternProperties:
+ "^gpio(@[0-9]+)?$":
+ $ref: ../gpio/kontron,sl28cpld-gpio.yaml
+
+ "^hwmon(@[0-9]+)?$":
+ $ref: ../hwmon/kontron,sl28cpld-hwmon.yaml
+
+ "^interrupt-controller(@[0-9]+)?$":
+ $ref: ../interrupt-controller/kontron,sl28cpld-intc.yaml
+
+ "^pwm(@[0-9]+)?$":
+ $ref: ../pwm/kontron,sl28cpld-pwm.yaml
+
+ "^watchdog(@[0-9]+)?$":
+ $ref: ../watchdog/kontron,sl28cpld-wdt.yaml
+
+required:
+ - "#address-cells"
+ - "#size-cells"
+ - compatible
+ - reg
+
+additionalProperties: false
+
+examples:
+ - |
+ #include <dt-bindings/interrupt-controller/irq.h>
+ i2c {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ sl28cpld@4a {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ compatible = "kontron,sl28cpld-r1";
+ reg = <0x4a>;
+
+ watchdog@4 {
+ compatible = "kontron,sl28cpld-wdt";
+ reg = <0x4>;
+ kontron,assert-wdt-timeout-pin;
+ };
+
+ hwmon@b {
+ compatible = "kontron,sl28cpld-fan";
+ reg = <0xb>;
+ };
+
+ pwm@c {
+ #pwm-cells = <2>;
+ compatible = "kontron,sl28cpld-pwm";
+ reg = <0xc>;
+ };
+
+ pwm@e {
+ #pwm-cells = <2>;
+ compatible = "kontron,sl28cpld-pwm";
+ reg = <0xe>;
+ };
+
+ gpio@10 {
+ compatible = "kontron,sl28cpld-gpio";
+ reg = <0x10>;
+ interrupts-extended = <&gpio2 6
+ IRQ_TYPE_EDGE_FALLING>;
+
+ gpio-controller;
+ #gpio-cells = <2>;
+ gpio-line-names = "a", "b", "c";
+
+ interrupt-controller;
+ #interrupt-cells = <2>;
+ };
+
+ gpio@15 {
+ compatible = "kontron,sl28cpld-gpio";
+ reg = <0x15>;
+ interrupts-extended = <&gpio2 6
+ IRQ_TYPE_EDGE_FALLING>;
+
+ gpio-controller;
+ #gpio-cells = <2>;
+
+ interrupt-controller;
+ #interrupt-cells = <2>;
+ };
+
+ gpio@1a {
+ compatible = "kontron,sl28cpld-gpo";
+ reg = <0x1a>;
+
+ gpio-controller;
+ #gpio-cells = <2>;
+ };
+
+ gpio@1b {
+ compatible = "kontron,sl28cpld-gpi";
+ reg = <0x1b>;
+
+ gpio-controller;
+ #gpio-cells = <2>;
+ };
+
+ interrupt-controller@1c {
+ compatible = "kontron,sl28cpld-intc";
+ reg = <0x1c>;
+ interrupts-extended = <&gpio2 6
+ IRQ_TYPE_EDGE_FALLING>;
+
+ interrupt-controller;
+ #interrupt-cells = <2>;
+ };
+ };
+ };
diff --git a/Documentation/devicetree/bindings/pwm/kontron,sl28cpld-pwm.yaml b/Documentation/devicetree/bindings/pwm/kontron,sl28cpld-pwm.yaml
new file mode 100644
index 000000000000..02fe88c30233
--- /dev/null
+++ b/Documentation/devicetree/bindings/pwm/kontron,sl28cpld-pwm.yaml
@@ -0,0 +1,35 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/pwm/kontron,sl28cpld-pwm.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: PWM driver for the sl28cpld board management controller
+
+maintainers:
+ - Michael Walle <michael@walle.cc>
+
+description: |
+ This module is part of the sl28cpld multi-function device. For more
+ details see Documentation/devicetree/bindings/mfd/kontron,sl28cpld.yaml.
+
+ The controller supports one PWM channel and supports only four distinct
+ frequencies (250Hz, 500Hz, 1kHz, 2kHz).
+
+allOf:
+ - $ref: pwm.yaml#
+
+properties:
+ compatible:
+ const: kontron,sl28cpld-pwm
+
+ reg:
+ maxItems: 1
+
+ "#pwm-cells":
+ const: 2
+
+required:
+ - compatible
+
+additionalProperties: false
diff --git a/Documentation/devicetree/bindings/watchdog/kontron,sl28cpld-wdt.yaml b/Documentation/devicetree/bindings/watchdog/kontron,sl28cpld-wdt.yaml
new file mode 100644
index 000000000000..dd6559f2973a
--- /dev/null
+++ b/Documentation/devicetree/bindings/watchdog/kontron,sl28cpld-wdt.yaml
@@ -0,0 +1,35 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/watchdog/kontron,sl28cpld-wdt.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Watchdog driver for the sl28cpld board management controller
+
+maintainers:
+ - Michael Walle <michael@walle.cc>
+
+description: |
+ This module is part of the sl28cpld multi-function device. For more
+ details see Documentation/devicetree/bindings/mfd/kontron,sl28cpld.yaml.
+
+allOf:
+ - $ref: watchdog.yaml#
+
+properties:
+ compatible:
+ const: kontron,sl28cpld-wdt
+
+ reg:
+ maxItems: 1
+
+ kontron,assert-wdt-timeout-pin:
+ description: The SMARC standard defines a WDT_TIME_OUT# pin. If this
+ property is set, this output will be pulsed when the watchdog bites
+ and the system resets.
+ type: boolean
+
+required:
+ - compatible
+
+additionalProperties: false
--
2.20.1
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply related
* [PATCH v4 00/11] Add support for Kontron sl28cpld
From: Michael Walle @ 2020-06-04 21:10 UTC (permalink / raw)
To: linux-gpio, devicetree, linux-kernel, linux-hwmon, linux-pwm,
linux-watchdog, linux-arm-kernel
Cc: Marc Zyngier, Jean Delvare, Jason Cooper, Greg Kroah-Hartman,
Shawn Guo, Linus Walleij, Andy Shevchenko, Li Yang,
Bartosz Golaszewski, Michael Walle, Rob Herring, Thierry Reding,
Mark Brown, Uwe Kleine-König, Thomas Gleixner,
Wim Van Sebroeck, Lee Jones, Guenter Roeck
The Kontron sl28cpld is a board management chip providing gpio, pwm, fan
monitoring and an interrupt controller. For now this controller is used on
the Kontron SMARC-sAL28 board. But because of its flexible nature, it
might also be used on other boards in the future. The individual blocks
(like gpio, pwm, etc) are kept intentionally small. The MFD core driver
then instantiates different (or multiple of the same) blocks. It also
provides the register layout so it might be updated in the future without a
device tree change; and support other boards with a different layout or
functionalities.
See also [1] for more information.
This is my first take of a MFD driver. I don't know whether the subsystem
maintainers should only be CCed on the patches which affect the subsystem
or on all patches for this series. I've chosen the latter so you can get a
more complete picture.
[1] https://lore.kernel.org/linux-devicetree/0e3e8204ab992d75aa07fc36af7e4ab2@walle.cc/
Changes since v3:
- use of_platform_populate() to populate internal devices using the
internal register offsets as unit-addresses
- because we don't use mfd_cells anymore, we cannot use IORESOURCE_REG,
but instead parse the reg property in each individual driver
- dropped the following patches because they were already merged:
gpiolib: Introduce gpiochip_irqchip_add_domain()
gpio: add a reusable generic gpio_chip using regmap
- dropped the following patches because they are no longer needed:
include/linux/ioport.h: add helper to define REG resource constructs
mfd: mfd-core: Don't overwrite the dma_mask of the child device
mfd: mfd-core: match device tree node against reg property
- rephrase commit messages, as suggested by Thomas Gleixner
Changes since v2:
As suggested by Guenter Roeck:
- added sl28cpld.rst to index.rst
- removed sl28cpld_wdt_status()
- reverse christmas tree local variable ordering
- assign device_property_read_bool() retval directly
- introduce WDT_DEFAULT_TIMEOUT and use it if the hardware reports
0 as timeout.
- set WDOG_HW_RUNNING if applicable
- remove platform_set_drvdata() leftover
As suggested by Bartosz Golaszewski:
- don't export gpio_regmap_simple_xlate()
- combine local variable declaration of the same type
- drop the "struct gpio_regmap_addr", instead use -1 to force an address
offset of zero
- fix typo
- use "struct gpio_regmap_config" pattern, keep "struct gpio_regmap"
private. this also means we need a getter/setter for the driver_data
element.
As suggested by Linus Walleij:
- don't store irq_domain in gpio-regmap. drop to_irq() altogether for now.
Instead there is now a new patch which lets us set the irqdomain of the
gpiochip_irqchip and use its .to_irq() function. This way we don't have
to expose the gpio_chip inside the gpio-regmap to the user.
Changes since v1:
- use of_match_table in all drivers, needed for automatic module loading,
when using OF_MFD_CELL()
- add new gpio-regmap.c which adds a generic regmap gpio_chip
implementation
- new patch for reqmap_irq, so we can reuse its implementation
- remove almost any code from gpio-sl28cpld.c, instead use gpio-regmap and
regmap-irq
- change the handling of the mfd core vs device tree nodes; add a new
property "of_reg" to the mfd_cell struct which, when set, is matched to
the unit-address of the device tree nodes.
- fix sl28cpld watchdog when it is not initialized by the bootloader.
Explicitly set the operation mode.
- also add support for kontron,assert-wdt-timeout-pin in sl28cpld-wdt.
As suggested by Bartosz Golaszewski:
- define registers as hex
- make gpio enum uppercase
- move parent regmap check before memory allocation
- use device_property_read_bool() instead of the of_ version
- mention the gpio flavors in the bindings documentation
As suggested by Guenter Roeck:
- cleanup #includes and sort them
- use devm_watchdog_register_device()
- use watchdog_stop_on_reboot()
- provide a Documentation/hwmon/sl28cpld.rst
- cleaned up the weird tristate->bool and I2C=y issue. Instead mention
that the MFD driver is bool because of the following intc patch
- removed the SL28CPLD_IRQ typo
As suggested by Rob Herring:
- combine all dt bindings docs into one patch
- change the node name for all gpio flavors to "gpio"
- removed the interrupts-extended rule
- cleaned up the unit-address space, see above
Michael Walle (11):
dt-bindings: mfd: Add bindings for sl28cpld
mfd: Add support for Kontron sl28cpld management controller
irqchip: add sl28cpld interrupt controller support
watchdog: add support for sl28cpld watchdog
pwm: add support for sl28cpld PWM controller
gpio: add support for the sl28cpld GPIO controller
hwmon: add support for the sl28cpld hardware monitoring controller
arm64: dts: freescale: sl28: enable sl28cpld
arm64: dts: freescale: sl28: map GPIOs to input events
arm64: dts: freescale: sl28: enable LED support
arm64: dts: freescale: sl28: enable fan support
.../bindings/gpio/kontron,sl28cpld-gpio.yaml | 54 ++++
.../hwmon/kontron,sl28cpld-hwmon.yaml | 27 ++
.../kontron,sl28cpld-intc.yaml | 54 ++++
.../bindings/mfd/kontron,sl28cpld.yaml | 153 ++++++++++++
.../bindings/pwm/kontron,sl28cpld-pwm.yaml | 35 +++
.../watchdog/kontron,sl28cpld-wdt.yaml | 35 +++
Documentation/hwmon/index.rst | 1 +
Documentation/hwmon/sl28cpld.rst | 36 +++
.../fsl-ls1028a-kontron-kbox-a-230-ls.dts | 14 ++
.../fsl-ls1028a-kontron-sl28-var3-ads2.dts | 9 +
.../freescale/fsl-ls1028a-kontron-sl28.dts | 134 ++++++++++
drivers/gpio/Kconfig | 11 +
drivers/gpio/Makefile | 1 +
drivers/gpio/gpio-sl28cpld.c | 180 ++++++++++++++
drivers/hwmon/Kconfig | 10 +
drivers/hwmon/Makefile | 1 +
drivers/hwmon/sl28cpld-hwmon.c | 150 ++++++++++++
drivers/irqchip/Kconfig | 3 +
drivers/irqchip/Makefile | 1 +
drivers/irqchip/irq-sl28cpld.c | 102 ++++++++
drivers/mfd/Kconfig | 21 ++
drivers/mfd/Makefile | 2 +
drivers/mfd/sl28cpld.c | 79 ++++++
drivers/pwm/Kconfig | 10 +
drivers/pwm/Makefile | 1 +
drivers/pwm/pwm-sl28cpld.c | 201 +++++++++++++++
drivers/watchdog/Kconfig | 11 +
drivers/watchdog/Makefile | 1 +
drivers/watchdog/sl28cpld_wdt.c | 231 ++++++++++++++++++
29 files changed, 1568 insertions(+)
create mode 100644 Documentation/devicetree/bindings/gpio/kontron,sl28cpld-gpio.yaml
create mode 100644 Documentation/devicetree/bindings/hwmon/kontron,sl28cpld-hwmon.yaml
create mode 100644 Documentation/devicetree/bindings/interrupt-controller/kontron,sl28cpld-intc.yaml
create mode 100644 Documentation/devicetree/bindings/mfd/kontron,sl28cpld.yaml
create mode 100644 Documentation/devicetree/bindings/pwm/kontron,sl28cpld-pwm.yaml
create mode 100644 Documentation/devicetree/bindings/watchdog/kontron,sl28cpld-wdt.yaml
create mode 100644 Documentation/hwmon/sl28cpld.rst
create mode 100644 drivers/gpio/gpio-sl28cpld.c
create mode 100644 drivers/hwmon/sl28cpld-hwmon.c
create mode 100644 drivers/irqchip/irq-sl28cpld.c
create mode 100644 drivers/mfd/sl28cpld.c
create mode 100644 drivers/pwm/pwm-sl28cpld.c
create mode 100644 drivers/watchdog/sl28cpld_wdt.c
--
2.20.1
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply
* [PATCH v4 03/11] irqchip: add sl28cpld interrupt controller support
From: Michael Walle @ 2020-06-04 21:10 UTC (permalink / raw)
To: linux-gpio, devicetree, linux-kernel, linux-hwmon, linux-pwm,
linux-watchdog, linux-arm-kernel
Cc: Marc Zyngier, Jean Delvare, Jason Cooper, Greg Kroah-Hartman,
Shawn Guo, Linus Walleij, Andy Shevchenko, Li Yang,
Bartosz Golaszewski, Michael Walle, Rob Herring, Thierry Reding,
Mark Brown, Uwe Kleine-König, Thomas Gleixner,
Wim Van Sebroeck, Lee Jones, Guenter Roeck
In-Reply-To: <20200604211039.12689-1-michael@walle.cc>
Add support for the interrupt controller inside the sl28 CPLD management
controller.
The interrupt controller can handle at most 8 interrupts and is really
simplistic and consists only of an interrupt mask and an interrupt
pending register.
Signed-off-by: Michael Walle <michael@walle.cc>
---
drivers/irqchip/Kconfig | 3 +
drivers/irqchip/Makefile | 1 +
drivers/irqchip/irq-sl28cpld.c | 102 +++++++++++++++++++++++++++++++++
drivers/mfd/Kconfig | 2 +
4 files changed, 108 insertions(+)
create mode 100644 drivers/irqchip/irq-sl28cpld.c
diff --git a/drivers/irqchip/Kconfig b/drivers/irqchip/Kconfig
index 3e473f4eb175..c4b840bc982e 100644
--- a/drivers/irqchip/Kconfig
+++ b/drivers/irqchip/Kconfig
@@ -246,6 +246,9 @@ config RENESAS_RZA1_IRQC
Enable support for the Renesas RZ/A1 Interrupt Controller, to use up
to 8 external interrupts with configurable sense select.
+config SL28CPLD_INTC
+ bool
+
config ST_IRQCHIP
bool
select REGMAP
diff --git a/drivers/irqchip/Makefile b/drivers/irqchip/Makefile
index 3a4ce283189a..bcd9797a5aed 100644
--- a/drivers/irqchip/Makefile
+++ b/drivers/irqchip/Makefile
@@ -110,3 +110,4 @@ obj-$(CONFIG_LOONGSON_HTPIC) += irq-loongson-htpic.o
obj-$(CONFIG_LOONGSON_HTVEC) += irq-loongson-htvec.o
obj-$(CONFIG_LOONGSON_PCH_PIC) += irq-loongson-pch-pic.o
obj-$(CONFIG_LOONGSON_PCH_MSI) += irq-loongson-pch-msi.o
+obj-$(CONFIG_SL28CPLD_INTC) += irq-sl28cpld.o
diff --git a/drivers/irqchip/irq-sl28cpld.c b/drivers/irqchip/irq-sl28cpld.c
new file mode 100644
index 000000000000..2151f1b390d7
--- /dev/null
+++ b/drivers/irqchip/irq-sl28cpld.c
@@ -0,0 +1,102 @@
+// SPDX-License-Identifier: GPL-2.0-only
+/*
+ * sl28cpld interrupt controller driver.
+ *
+ * Copyright 2019 Kontron Europe GmbH
+ */
+
+#include <linux/interrupt.h>
+#include <linux/kernel.h>
+#include <linux/mod_devicetable.h>
+#include <linux/module.h>
+#include <linux/platform_device.h>
+#include <linux/property.h>
+#include <linux/regmap.h>
+
+#define INTC_IE 0x00
+#define INTC_IP 0x01
+
+static const struct regmap_irq sl28cpld_irqs[] = {
+ REGMAP_IRQ_REG_LINE(0, 8),
+ REGMAP_IRQ_REG_LINE(1, 8),
+ REGMAP_IRQ_REG_LINE(2, 8),
+ REGMAP_IRQ_REG_LINE(3, 8),
+ REGMAP_IRQ_REG_LINE(4, 8),
+ REGMAP_IRQ_REG_LINE(5, 8),
+ REGMAP_IRQ_REG_LINE(6, 8),
+ REGMAP_IRQ_REG_LINE(7, 8),
+};
+
+struct sl28cpld_intc {
+ struct regmap *regmap;
+ struct regmap_irq_chip chip;
+ struct regmap_irq_chip_data *irq_data;
+};
+
+static int sl28cpld_intc_probe(struct platform_device *pdev)
+{
+ struct device *dev = &pdev->dev;
+ struct sl28cpld_intc *irqchip;
+ unsigned int irq;
+ u32 base;
+ int ret;
+
+ if (!dev->parent)
+ return -ENODEV;
+
+ irqchip = devm_kzalloc(dev, sizeof(*irqchip), GFP_KERNEL);
+ if (!irqchip)
+ return -ENOMEM;
+
+ irqchip->regmap = dev_get_regmap(dev->parent, NULL);
+ if (!irqchip->regmap)
+ return -ENODEV;
+
+ irq = platform_get_irq(pdev, 0);
+ if (irq < 0)
+ return irq;
+
+ ret = device_property_read_u32(&pdev->dev, "reg", &base);
+ if (ret)
+ return -EINVAL;
+
+ irqchip->chip.name = "sl28cpld-intc";
+ irqchip->chip.irqs = sl28cpld_irqs;
+ irqchip->chip.num_irqs = ARRAY_SIZE(sl28cpld_irqs);
+ irqchip->chip.num_regs = 1;
+ irqchip->chip.status_base = base + INTC_IP;
+ irqchip->chip.mask_base = base + INTC_IE;
+ irqchip->chip.mask_invert = true,
+ irqchip->chip.ack_base = base + INTC_IP;
+
+ return devm_regmap_add_irq_chip_np(&pdev->dev, dev->of_node,
+ irqchip->regmap, irq,
+ IRQF_SHARED | IRQF_ONESHOT, 0,
+ &irqchip->chip, &irqchip->irq_data);
+}
+
+static const struct of_device_id sl28cpld_intc_of_match[] = {
+ { .compatible = "kontron,sl28cpld-intc" },
+ {},
+};
+MODULE_DEVICE_TABLE(of, sl28cpld_intc_of_match);
+
+static const struct platform_device_id sl28cpld_intc_id_table[] = {
+ { "sl28cpld-intc" },
+ {}
+};
+MODULE_DEVICE_TABLE(platform, sl28cpld_intc_id_table);
+
+static struct platform_driver sl28cpld_intc_driver = {
+ .probe = sl28cpld_intc_probe,
+ .id_table = sl28cpld_intc_id_table,
+ .driver = {
+ .name = KBUILD_MODNAME,
+ .of_match_table = sl28cpld_intc_of_match,
+ }
+};
+module_platform_driver(sl28cpld_intc_driver);
+
+MODULE_DESCRIPTION("sl28cpld Interrupt Controller Driver");
+MODULE_AUTHOR("Michael Walle <michael@walle.cc>");
+MODULE_LICENSE("GPL");
diff --git a/drivers/mfd/Kconfig b/drivers/mfd/Kconfig
index 5c0cd514d197..9c84c5746698 100644
--- a/drivers/mfd/Kconfig
+++ b/drivers/mfd/Kconfig
@@ -2114,6 +2114,8 @@ config MFD_SL28CPLD
depends on I2C=y
depends on OF
select REGMAP_I2C
+ select REGMAP_IRQ
+ select SL28CPLD_INTC
select MFD_CORE
help
This option enables support for the board management controller
--
2.20.1
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply related
* [PATCH v4 04/11] watchdog: add support for sl28cpld watchdog
From: Michael Walle @ 2020-06-04 21:10 UTC (permalink / raw)
To: linux-gpio, devicetree, linux-kernel, linux-hwmon, linux-pwm,
linux-watchdog, linux-arm-kernel
Cc: Marc Zyngier, Jean Delvare, Jason Cooper, Greg Kroah-Hartman,
Shawn Guo, Linus Walleij, Andy Shevchenko, Li Yang,
Bartosz Golaszewski, Michael Walle, Rob Herring, Thierry Reding,
Mark Brown, Uwe Kleine-König, Thomas Gleixner,
Wim Van Sebroeck, Lee Jones, Guenter Roeck
In-Reply-To: <20200604211039.12689-1-michael@walle.cc>
Add support for the watchdog of the sl28cpld board management
controller. This is part of a multi-function device driver.
Signed-off-by: Michael Walle <michael@walle.cc>
Acked-by: Guenter Roeck <linux@roeck-us.net>
---
drivers/watchdog/Kconfig | 11 ++
drivers/watchdog/Makefile | 1 +
drivers/watchdog/sl28cpld_wdt.c | 231 ++++++++++++++++++++++++++++++++
3 files changed, 243 insertions(+)
create mode 100644 drivers/watchdog/sl28cpld_wdt.c
diff --git a/drivers/watchdog/Kconfig b/drivers/watchdog/Kconfig
index 55b910c453da..2c7b0f10151e 100644
--- a/drivers/watchdog/Kconfig
+++ b/drivers/watchdog/Kconfig
@@ -340,6 +340,17 @@ config MLX_WDT
To compile this driver as a module, choose M here: the
module will be called mlx-wdt.
+config SL28CPLD_WATCHDOG
+ tristate "Kontron sl28 watchdog"
+ depends on MFD_SL28CPLD
+ select WATCHDOG_CORE
+ help
+ Say Y here to include support for the watchdog timer
+ on the Kontron sl28 CPLD.
+
+ To compile this driver as a module, choose M here: the
+ module will be called sl28cpld_wdt.
+
# ALPHA Architecture
# ARM Architecture
diff --git a/drivers/watchdog/Makefile b/drivers/watchdog/Makefile
index 97bed1d3d97c..aa6e41126901 100644
--- a/drivers/watchdog/Makefile
+++ b/drivers/watchdog/Makefile
@@ -225,3 +225,4 @@ obj-$(CONFIG_MENF21BMC_WATCHDOG) += menf21bmc_wdt.o
obj-$(CONFIG_MENZ069_WATCHDOG) += menz69_wdt.o
obj-$(CONFIG_RAVE_SP_WATCHDOG) += rave-sp-wdt.o
obj-$(CONFIG_STPMIC1_WATCHDOG) += stpmic1_wdt.o
+obj-$(CONFIG_SL28CPLD_WATCHDOG) += sl28cpld_wdt.o
diff --git a/drivers/watchdog/sl28cpld_wdt.c b/drivers/watchdog/sl28cpld_wdt.c
new file mode 100644
index 000000000000..6c9518dc454a
--- /dev/null
+++ b/drivers/watchdog/sl28cpld_wdt.c
@@ -0,0 +1,231 @@
+// SPDX-License-Identifier: GPL-2.0-only
+/*
+ * sl28cpld watchdog driver.
+ *
+ * Copyright 2019 Kontron Europe GmbH
+ */
+
+#include <linux/kernel.h>
+#include <linux/module.h>
+#include <linux/of_device.h>
+#include <linux/platform_device.h>
+#include <linux/regmap.h>
+#include <linux/watchdog.h>
+
+/*
+ * Watchdog timer block registers.
+ */
+#define WDT_CTRL 0x00
+#define WDT_CTRL_EN BIT(0)
+#define WDT_CTRL_LOCK BIT(2)
+#define WDT_CTRL_ASSERT_SYS_RESET BIT(6)
+#define WDT_CTRL_ASSERT_WDT_TIMEOUT BIT(7)
+#define WDT_TIMEOUT 0x01
+#define WDT_KICK 0x02
+#define WDT_KICK_VALUE 0x6b
+#define WDT_COUNT 0x03
+
+#define WDT_DEFAULT_TIMEOUT 10
+
+static bool nowayout = WATCHDOG_NOWAYOUT;
+module_param(nowayout, bool, 0);
+MODULE_PARM_DESC(nowayout, "Watchdog cannot be stopped once started (default="
+ __MODULE_STRING(WATCHDOG_NOWAYOUT) ")");
+
+static int timeout;
+module_param(timeout, int, 0);
+MODULE_PARM_DESC(timeout, "Initial watchdog timeout in seconds");
+
+struct sl28cpld_wdt {
+ struct watchdog_device wdd;
+ struct regmap *regmap;
+ u32 offset;
+ bool assert_wdt_timeout;
+};
+
+static int sl28cpld_wdt_ping(struct watchdog_device *wdd)
+{
+ struct sl28cpld_wdt *wdt = watchdog_get_drvdata(wdd);
+
+ return regmap_write(wdt->regmap, wdt->offset + WDT_KICK,
+ WDT_KICK_VALUE);
+}
+
+static int sl28cpld_wdt_start(struct watchdog_device *wdd)
+{
+ struct sl28cpld_wdt *wdt = watchdog_get_drvdata(wdd);
+ unsigned int val;
+
+ val = WDT_CTRL_EN | WDT_CTRL_ASSERT_SYS_RESET;
+ if (wdt->assert_wdt_timeout)
+ val |= WDT_CTRL_ASSERT_WDT_TIMEOUT;
+ if (nowayout)
+ val |= WDT_CTRL_LOCK;
+
+ return regmap_update_bits(wdt->regmap, wdt->offset + WDT_CTRL,
+ val, val);
+}
+
+static int sl28cpld_wdt_stop(struct watchdog_device *wdd)
+{
+ struct sl28cpld_wdt *wdt = watchdog_get_drvdata(wdd);
+
+ return regmap_update_bits(wdt->regmap, wdt->offset + WDT_CTRL,
+ WDT_CTRL_EN, 0);
+}
+
+static unsigned int sl28cpld_wdt_get_timeleft(struct watchdog_device *wdd)
+{
+ struct sl28cpld_wdt *wdt = watchdog_get_drvdata(wdd);
+ unsigned int val;
+ int ret;
+
+ ret = regmap_read(wdt->regmap, wdt->offset + WDT_COUNT, &val);
+
+ return (ret < 0) ? 0 : val;
+}
+
+static int sl28cpld_wdt_set_timeout(struct watchdog_device *wdd,
+ unsigned int timeout)
+{
+ struct sl28cpld_wdt *wdt = watchdog_get_drvdata(wdd);
+ int ret;
+
+ ret = regmap_write(wdt->regmap, wdt->offset + WDT_TIMEOUT, timeout);
+ if (!ret)
+ wdd->timeout = timeout;
+
+ return ret;
+}
+
+static const struct watchdog_info sl28cpld_wdt_info = {
+ .options = WDIOF_MAGICCLOSE | WDIOF_SETTIMEOUT | WDIOF_KEEPALIVEPING,
+ .identity = "sl28cpld watchdog",
+};
+
+static struct watchdog_ops sl28cpld_wdt_ops = {
+ .owner = THIS_MODULE,
+ .start = sl28cpld_wdt_start,
+ .stop = sl28cpld_wdt_stop,
+ .ping = sl28cpld_wdt_ping,
+ .set_timeout = sl28cpld_wdt_set_timeout,
+ .get_timeleft = sl28cpld_wdt_get_timeleft,
+};
+
+static int sl28cpld_wdt_probe(struct platform_device *pdev)
+{
+ struct watchdog_device *wdd;
+ struct sl28cpld_wdt *wdt;
+ unsigned int status;
+ unsigned int val;
+ int ret;
+
+ if (!pdev->dev.parent)
+ return -ENODEV;
+
+ wdt = devm_kzalloc(&pdev->dev, sizeof(*wdt), GFP_KERNEL);
+ if (!wdt)
+ return -ENOMEM;
+
+ wdt->regmap = dev_get_regmap(pdev->dev.parent, NULL);
+ if (!wdt->regmap)
+ return -ENODEV;
+
+ ret = device_property_read_u32(&pdev->dev, "reg", &wdt->offset);
+ if (ret)
+ return -EINVAL;
+
+ wdt->assert_wdt_timeout = device_property_read_bool(&pdev->dev,
+ "kontron,assert-wdt-timeout-pin");
+
+ /* initialize struct watchdog_device */
+ wdd = &wdt->wdd;
+ wdd->parent = &pdev->dev;
+ wdd->info = &sl28cpld_wdt_info;
+ wdd->ops = &sl28cpld_wdt_ops;
+ wdd->min_timeout = 1;
+ wdd->max_timeout = 255;
+
+ watchdog_set_drvdata(wdd, wdt);
+ watchdog_stop_on_reboot(wdd);
+
+ /*
+ * Read the status early, in case of an error, we haven't modified the
+ * hardware.
+ */
+ ret = regmap_read(wdt->regmap, wdt->offset + WDT_CTRL, &status);
+ if (ret < 0)
+ return ret;
+
+ /*
+ * Initial timeout value, may be overwritten by device tree or module
+ * parmeter in watchdog_init_timeout().
+ *
+ * Reading a zero here means that either the hardware has a default
+ * value of zero (which is very unlikely and definitely a hardware
+ * bug) or the bootloader set it to zero. In any case, we handle
+ * this case gracefully and set out own timeout.
+ */
+ ret = regmap_read(wdt->regmap, wdt->offset + WDT_TIMEOUT, &val);
+ if (ret < 0)
+ return ret;
+
+ if (val)
+ wdd->timeout = val;
+ else
+ wdd->timeout = WDT_DEFAULT_TIMEOUT;
+
+ watchdog_init_timeout(wdd, timeout, &pdev->dev);
+ sl28cpld_wdt_set_timeout(wdd, wdd->timeout);
+
+ /* if the watchdog is locked, we set nowayout */
+ if (status & WDT_CTRL_LOCK)
+ nowayout = true;
+ watchdog_set_nowayout(wdd, nowayout);
+
+ /*
+ * If watchdog is already running, keep it enabled, but make
+ * sure its mode is set correctly.
+ */
+ if (status & WDT_CTRL_EN) {
+ sl28cpld_wdt_start(wdd);
+ set_bit(WDOG_HW_RUNNING, &wdd->status);
+ }
+
+ ret = devm_watchdog_register_device(&pdev->dev, wdd);
+ if (ret < 0) {
+ dev_err(&pdev->dev, "failed to register watchdog device\n");
+ return ret;
+ }
+
+ dev_info(&pdev->dev, "initial timeout %d sec%s\n",
+ wdd->timeout, nowayout ? ", nowayout" : "");
+
+ return 0;
+}
+
+static const struct of_device_id sl28cpld_wdt_of_match[] = {
+ { .compatible = "kontron,sl28cpld-wdt" },
+ {},
+};
+MODULE_DEVICE_TABLE(of, sl28cpld_wdt_of_match);
+
+static const struct platform_device_id sl28cpld_wdt_id_table[] = {
+ { "sl28cpld-wdt" },
+ {},
+};
+MODULE_DEVICE_TABLE(platform, sl28cpld_wdt_id_table);
+
+static struct platform_driver sl28cpld_wdt_driver = {
+ .probe = sl28cpld_wdt_probe,
+ .id_table = sl28cpld_wdt_id_table,
+ .driver = {
+ .name = KBUILD_MODNAME,
+ .of_match_table = sl28cpld_wdt_of_match,
+ },
+};
+module_platform_driver(sl28cpld_wdt_driver);
+
+MODULE_DESCRIPTION("sl28cpld Watchdog Driver");
+MODULE_AUTHOR("Michael Walle <michael@walle.cc>");
+MODULE_LICENSE("GPL");
--
2.20.1
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply related
* [PATCH v4 02/11] mfd: Add support for Kontron sl28cpld management controller
From: Michael Walle @ 2020-06-04 21:10 UTC (permalink / raw)
To: linux-gpio, devicetree, linux-kernel, linux-hwmon, linux-pwm,
linux-watchdog, linux-arm-kernel
Cc: Marc Zyngier, Jean Delvare, Jason Cooper, Greg Kroah-Hartman,
Shawn Guo, Linus Walleij, Andy Shevchenko, Li Yang,
Bartosz Golaszewski, Michael Walle, Rob Herring, Thierry Reding,
Mark Brown, Uwe Kleine-König, Thomas Gleixner,
Wim Van Sebroeck, Lee Jones, Guenter Roeck
In-Reply-To: <20200604211039.12689-1-michael@walle.cc>
Add the core support for the board management controller found on the
SMARC-sAL28 board. It consists of the following functions:
- watchdog
- GPIO controller
- PWM controller
- fan sensor
- interrupt controller
At the moment, this controller is used on the Kontron SMARC-sAL28 board.
Please note that the MFD driver is defined as bool in the Kconfig
because the next patch will add interrupt support.
Signed-off-by: Michael Walle <michael@walle.cc>
---
drivers/mfd/Kconfig | 19 ++++++++++
drivers/mfd/Makefile | 2 ++
drivers/mfd/sl28cpld.c | 79 ++++++++++++++++++++++++++++++++++++++++++
3 files changed, 100 insertions(+)
create mode 100644 drivers/mfd/sl28cpld.c
diff --git a/drivers/mfd/Kconfig b/drivers/mfd/Kconfig
index 4f8b73d92df3..5c0cd514d197 100644
--- a/drivers/mfd/Kconfig
+++ b/drivers/mfd/Kconfig
@@ -2109,5 +2109,24 @@ config SGI_MFD_IOC3
If you have an SGI Origin, Octane, or a PCI IOC3 card,
then say Y. Otherwise say N.
+config MFD_SL28CPLD
+ bool "Kontron sl28 core driver"
+ depends on I2C=y
+ depends on OF
+ select REGMAP_I2C
+ select MFD_CORE
+ help
+ This option enables support for the board management controller
+ found on the Kontron sl28 CPLD. You have to select individual
+ functions, such as watchdog, GPIO, etc, under the corresponding menus
+ in order to enable them.
+
+ Currently supported boards are:
+
+ Kontron SMARC-sAL28
+
+ To compile this driver as a module, choose M here: the module will be
+ called sl28cpld.
+
endmenu
endif
diff --git a/drivers/mfd/Makefile b/drivers/mfd/Makefile
index 9367a92f795a..be59fb40aa28 100644
--- a/drivers/mfd/Makefile
+++ b/drivers/mfd/Makefile
@@ -264,3 +264,5 @@ obj-$(CONFIG_MFD_ROHM_BD718XX) += rohm-bd718x7.o
obj-$(CONFIG_MFD_STMFX) += stmfx.o
obj-$(CONFIG_SGI_MFD_IOC3) += ioc3.o
+
+obj-$(CONFIG_MFD_SL28CPLD) += sl28cpld.o
diff --git a/drivers/mfd/sl28cpld.c b/drivers/mfd/sl28cpld.c
new file mode 100644
index 000000000000..a23194bb6efa
--- /dev/null
+++ b/drivers/mfd/sl28cpld.c
@@ -0,0 +1,79 @@
+// SPDX-License-Identifier: GPL-2.0-only
+/*
+ * MFD core for the sl28cpld.
+ *
+ * Copyright 2019 Kontron Europe GmbH
+ */
+
+#include <linux/i2c.h>
+#include <linux/interrupt.h>
+#include <linux/kernel.h>
+#include <linux/mfd/core.h>
+#include <linux/module.h>
+#include <linux/of_platform.h>
+#include <linux/regmap.h>
+
+#define SL28CPLD_VERSION 0x03
+#define SL28CPLD_MIN_REQ_VERSION 14
+
+struct sl28cpld {
+ struct device *dev;
+ struct regmap *regmap;
+};
+
+static const struct regmap_config sl28cpld_regmap_config = {
+ .reg_bits = 8,
+ .val_bits = 8,
+ .reg_stride = 1,
+};
+
+static int sl28cpld_probe(struct i2c_client *i2c)
+{
+ struct sl28cpld *sl28cpld;
+ struct device *dev = &i2c->dev;
+ unsigned int cpld_version;
+ int ret;
+
+ sl28cpld = devm_kzalloc(dev, sizeof(*sl28cpld), GFP_KERNEL);
+ if (!sl28cpld)
+ return -ENOMEM;
+
+ sl28cpld->regmap = devm_regmap_init_i2c(i2c, &sl28cpld_regmap_config);
+ if (IS_ERR(sl28cpld->regmap))
+ return PTR_ERR(sl28cpld->regmap);
+
+ ret = regmap_read(sl28cpld->regmap, SL28CPLD_VERSION, &cpld_version);
+ if (ret)
+ return ret;
+
+ if (cpld_version < SL28CPLD_MIN_REQ_VERSION) {
+ dev_err(dev, "unsupported CPLD version %d\n", cpld_version);
+ return -ENODEV;
+ }
+
+ sl28cpld->dev = dev;
+ i2c_set_clientdata(i2c, sl28cpld);
+
+ dev_info(dev, "successfully probed. CPLD version %d\n", cpld_version);
+
+ return devm_of_platform_populate(&i2c->dev);
+}
+
+static const struct of_device_id sl28cpld_of_match[] = {
+ { .compatible = "kontron,sl28cpld-r1", },
+ {}
+};
+MODULE_DEVICE_TABLE(of, sl28cpld_of_match);
+
+static struct i2c_driver sl28cpld_driver = {
+ .probe_new = sl28cpld_probe,
+ .driver = {
+ .name = "sl28cpld",
+ .of_match_table = of_match_ptr(sl28cpld_of_match),
+ },
+};
+module_i2c_driver(sl28cpld_driver);
+
+MODULE_DESCRIPTION("sl28cpld MFD Core Driver");
+MODULE_AUTHOR("Michael Walle <michael@walle.cc>");
+MODULE_LICENSE("GPL");
--
2.20.1
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply related
* Re: [PATCH v4 4/5] coresight: etm: perf: Add default sink selection to etm perf
From: Mike Leach @ 2020-06-04 21:07 UTC (permalink / raw)
To: Mathieu Poirier
Cc: Coresight ML, Arnaldo Carvalho de Melo, linux-arm-kernel,
Suzuki K Poulose
In-Reply-To: <20200602165911.GA23450@xps15>
Hi,
On Tue, 2 Jun 2020 at 17:59, Mathieu Poirier <mathieu.poirier@linaro.org> wrote:
>
> On Tue, Jun 02, 2020 at 02:29:30PM +0100, Suzuki K Poulose wrote:
> > On 06/02/2020 02:12 PM, Mike Leach wrote:
> > > Hi Suzuki,
> > >
> > > On Tue, 2 Jun 2020 at 12:40, Suzuki K Poulose <suzuki.poulose@arm.com> wrote:
> > > >
> > > > On 05/26/2020 11:46 AM, Mike Leach wrote:
> > > > > Add default sink selection to the perf trace handling in the etm driver.
> > > > > Uses the select default sink infrastructure to select a sink for the perf
> > > > > session, if no other sink is specified.
> > > > >
> > > > > Signed-off-by: Mike Leach <mike.leach@linaro.org>
> > > >
> > > > This patch looks fine to me as such. But please see below for some
> > > > discussion on the future support for other configurations.
> > > >
> > > >
> > > > > ---
> > > > > .../hwtracing/coresight/coresight-etm-perf.c | 17 ++++++++++++++---
> > > > > 1 file changed, 14 insertions(+), 3 deletions(-)
> > > > >
> > > > > diff --git a/drivers/hwtracing/coresight/coresight-etm-perf.c b/drivers/hwtracing/coresight/coresight-etm-perf.c
> > > > > index 84f1dcb69827..1a3169e69bb1 100644
> > > > > --- a/drivers/hwtracing/coresight/coresight-etm-perf.c
> > > > > +++ b/drivers/hwtracing/coresight/coresight-etm-perf.c
> > > > > @@ -226,9 +226,6 @@ static void *etm_setup_aux(struct perf_event *event, void **pages,
> > > > > sink = coresight_get_enabled_sink(true);
> > > > > }
> > > > >
> > > > > - if (!sink)
> > > > > - goto err;
> > > > > -
> > > > > mask = &event_data->mask;
> > > > >
> > > > > /*
> > > > > @@ -253,6 +250,16 @@ static void *etm_setup_aux(struct perf_event *event, void **pages,
> > > > > continue;
> > > > > }
> > > > >
> > > > > + /*
> > > > > + * No sink provided - look for a default sink for one of the
> > > > > + * devices. At present we only support topology where all CPUs
> > > > > + * use the same sink [N:1], so only need to find one sink. The
> > > > > + * coresight_build_path later will remove any CPU that does not
> > > > > + * attach to the sink, or if we have not found a sink.
> > > > > + */
> > > > > + if (!sink)
> > > > > + sink = coresight_find_default_sink(csdev);
> > > > > +
> > > >
> > > > While we are here, should we remove the "find enabled sink" if the csink
> > > > is not specified via config. ? That step is problematic, as the user may
> > > > not remember which sinks were enabled. Also, we can't hit that with
> > > > perf tool as it prevents any invocation without sink (until this change).
>
> Old version of perf tools will take sinks selected on the perf command line and
> use the sysfs to communicate that to the kernel. Granted there may not be that
> many (if any), removing coresight_get_enabled_sink() will break those
> implementation.
>
> The real question is if keeping the functionatlity around so troublesome that it
> overweighs the drawbacks of removing it.
>
> > > >
> > > > So may be this is a good time to get rid of that ?
> > > >
> > >
> > > You are correct - the 'sink = coresight_get_enabled_sink(true);' was
> > > dead code until this patch.
> > > However - if someone has set up their system using sysfs to enable
> > > sinks, then should we not respect that rather than assume they made a
> > > mistake?
> >
> > If someone really wants to use a specific sink, then they could always
> > specify it via the config attribute and it will be honoured. We need not
> > carry along this non-intuitive hinting.
> >
Problem is - as mentioned below - config can only specify one sink, so
when we support 1:1 / N:M topology we need a way of specifying
multiple sinks. This is one viable option - especially where we are
using entire system configuration settings.
As Mathieu points out - there is little harm in leaving this in - if
we take it out now, we will probably have to replace it with something
similar anyway.
> > >
> > > Thinking about N:M topologies mentioned below - one method of handling
> > > this is to enable relevant sinks and then let perf trace on any cores
> > > that might use them.
> > >
> > > > Also, we may need to do special handling for cases where there multiple
> > > > sinks (ETRS) and the cpus in the event mask has different preferred
> > > > sink. We can defer it for now as we don't claim to support such
> > > > configurations yet.
> > >
> > > Yes - the newer topologies will need some changes - beyond what we are
> > > handling here.
> > > However - especially for 1:1 - the best way may be to always use the
> > > default sink - as specifying multiple sinks on the perf command line
> > > may be problematical.
> > >
> > > > When we do, we could either :
> > > >
> > > > 1) Make sure the event is bound to a single CPU, in which case
> > > > the sink remains the same for the event.
> > > >
> > > > OR
> > > >
> > > > 2) All the different "preferred" sinks (ETRs selected by the ETM) have
> > > > the same capabilitiy. i.e, we can move around the "sink" specific
> > > > buffers and use them where we end up using.
> > >
> > > If here by "capabilities" we are talking about buffer vs system memory
> > > type sinks then I agree. We may need in future to limit the search
> >
> > Not necessarily. e.g, if we ever get two different types of system
> > memory sinks, (e.g, a global ETR and a dedicate "new" sink for a
> > cluster), we can't keep switching between the two sinks depending on how
> > they use the buffers. (i.e, direct buffer vs double copy)
> >
I would have thought it is an issue for the sink driver to sort this
out on an individual basis. Multiple sinks I would think implies
multiple perf buffers per intelPT, so each sink should have its own
buffer, and hence deal with it in a sink specific way?
Anyhow - as you say - something that can be deferred till we add the
multi-sink support.
Cheers
Mike
> > Suzuki
--
Mike Leach
Principal Engineer, ARM Ltd.
Manchester Design Centre. UK
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply
* [PATCH v7 3/6] dt-bindings: arm-smmu: Add compatible string for Adreno GPU SMMU
From: Jordan Crouse @ 2020-06-04 20:57 UTC (permalink / raw)
To: linux-arm-msm
Cc: devicetree, Will Deacon, freedreno, Joerg Roedel, linux-kernel,
iommu, Rob Herring, Robin Murphy, linux-arm-kernel
In-Reply-To: <20200604205710.3167-1-jcrouse@codeaurora.org>
Every Qcom Adreno GPU has an embedded SMMU for its own use. These
devices depend on unique features such as split pagetables,
different stall/halt requirements and other settings. Identify them
with a compatible string so that they can be identified in the
arm-smmu implementation specific code.
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
---
Documentation/devicetree/bindings/iommu/arm,smmu.yaml | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/Documentation/devicetree/bindings/iommu/arm,smmu.yaml b/Documentation/devicetree/bindings/iommu/arm,smmu.yaml
index d7ceb4c34423..e52a1b146c97 100644
--- a/Documentation/devicetree/bindings/iommu/arm,smmu.yaml
+++ b/Documentation/devicetree/bindings/iommu/arm,smmu.yaml
@@ -38,6 +38,10 @@ properties:
- qcom,sc7180-smmu-500
- qcom,sdm845-smmu-500
- const: arm,mmu-500
+ - description: Qcom Adreno GPUs implementing "arm,smmu-v2"
+ items:
+ - const: qcom,adreno-smmu
+ - const: qcom,smmu-v2
- items:
- const: arm,mmu-500
- const: arm,smmu-v2
--
2.17.1
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply related
* [PATCH v7 4/6] iommu/arm-smmu: Add implementation for the adreno GPU SMMU
From: Jordan Crouse @ 2020-06-04 20:57 UTC (permalink / raw)
To: linux-arm-msm
Cc: Will Deacon, freedreno, Joerg Roedel, linux-kernel, iommu,
Robin Murphy, linux-arm-kernel
In-Reply-To: <20200604205710.3167-1-jcrouse@codeaurora.org>
Add a special implementation for the SMMU attached to most Adreno GPU
target triggered from the qcom,adreno-gpu-smmu compatible string. When
selected the driver will attempt to enable split pagetables.
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
---
drivers/iommu/arm-smmu-impl.c | 5 ++++-
drivers/iommu/arm-smmu-qcom.c | 38 +++++++++++++++++++++++++++++++++--
drivers/iommu/arm-smmu.c | 2 +-
drivers/iommu/arm-smmu.h | 3 ++-
4 files changed, 43 insertions(+), 5 deletions(-)
diff --git a/drivers/iommu/arm-smmu-impl.c b/drivers/iommu/arm-smmu-impl.c
index a20e426d81ac..3bb1ef4e85f7 100644
--- a/drivers/iommu/arm-smmu-impl.c
+++ b/drivers/iommu/arm-smmu-impl.c
@@ -69,7 +69,7 @@ static int cavium_cfg_probe(struct arm_smmu_device *smmu)
}
static int cavium_init_context(struct arm_smmu_domain *smmu_domain,
- struct io_pgtable_cfg *pgtbl_cfg)
+ struct io_pgtable_cfg *pgtbl_cfg, struct device *dev)
{
struct cavium_smmu *cs = container_of(smmu_domain->smmu,
struct cavium_smmu, smmu);
@@ -176,5 +176,8 @@ struct arm_smmu_device *arm_smmu_impl_init(struct arm_smmu_device *smmu)
of_device_is_compatible(np, "qcom,sc7180-smmu-500"))
return qcom_smmu_impl_init(smmu);
+ if (of_device_is_compatible(smmu->dev->of_node, "qcom,adreno-smmu"))
+ return qcom_adreno_smmu_impl_init(smmu);
+
return smmu;
}
diff --git a/drivers/iommu/arm-smmu-qcom.c b/drivers/iommu/arm-smmu-qcom.c
index be4318044f96..cc03f94fa458 100644
--- a/drivers/iommu/arm-smmu-qcom.c
+++ b/drivers/iommu/arm-smmu-qcom.c
@@ -12,6 +12,22 @@ struct qcom_smmu {
struct arm_smmu_device smmu;
};
+static int qcom_adreno_smmu_init_context(struct arm_smmu_domain *smmu_domain,
+ struct io_pgtable_cfg *pgtbl_cfg, struct device *dev)
+{
+ /*
+ * All targets that use the qcom,adreno-smmu compatible string *should*
+ * be AARCH64 stage 1 but double check because the arm-smmu code assumes
+ * that is the case when the TTBR1 quirk is enabled
+ */
+ if (of_device_is_compatible(dev->of_node, "qcom,adreno") &&
+ (smmu_domain->stage == ARM_SMMU_DOMAIN_S1) &&
+ (smmu_domain->cfg.fmt == ARM_SMMU_CTX_FMT_AARCH64))
+ pgtbl_cfg->quirks |= IO_PGTABLE_QUIRK_ARM_TTBR1;
+
+ return 0;
+}
+
static const struct of_device_id qcom_smmu_client_of_match[] __maybe_unused = {
{ .compatible = "qcom,adreno" },
{ .compatible = "qcom,mdp4" },
@@ -65,7 +81,15 @@ static const struct arm_smmu_impl qcom_smmu_impl = {
.reset = qcom_smmu500_reset,
};
-struct arm_smmu_device *qcom_smmu_impl_init(struct arm_smmu_device *smmu)
+static const struct arm_smmu_impl qcom_adreno_smmu_impl = {
+ .init_context = qcom_adreno_smmu_init_context,
+ .def_domain_type = qcom_smmu_def_domain_type,
+ .reset = qcom_smmu500_reset,
+};
+
+
+static struct arm_smmu_device *qcom_smmu_create(struct arm_smmu_device *smmu,
+ const struct arm_smmu_impl *impl)
{
struct qcom_smmu *qsmmu;
@@ -75,8 +99,18 @@ struct arm_smmu_device *qcom_smmu_impl_init(struct arm_smmu_device *smmu)
qsmmu->smmu = *smmu;
- qsmmu->smmu.impl = &qcom_smmu_impl;
+ qsmmu->smmu.impl = impl;
devm_kfree(smmu->dev, smmu);
return &qsmmu->smmu;
}
+
+struct arm_smmu_device *qcom_smmu_impl_init(struct arm_smmu_device *smmu)
+{
+ return qcom_smmu_create(smmu, &qcom_smmu_impl);
+}
+
+struct arm_smmu_device *qcom_adreno_smmu_impl_init(struct arm_smmu_device *smmu)
+{
+ return qcom_smmu_create(smmu, &qcom_adreno_smmu_impl);
+}
diff --git a/drivers/iommu/arm-smmu.c b/drivers/iommu/arm-smmu.c
index 048de2681670..f14dc4ecb422 100644
--- a/drivers/iommu/arm-smmu.c
+++ b/drivers/iommu/arm-smmu.c
@@ -812,7 +812,7 @@ static int arm_smmu_init_domain_context(struct iommu_domain *domain,
};
if (smmu->impl && smmu->impl->init_context) {
- ret = smmu->impl->init_context(smmu_domain, &pgtbl_cfg);
+ ret = smmu->impl->init_context(smmu_domain, &pgtbl_cfg, dev);
if (ret)
goto out_unlock;
}
diff --git a/drivers/iommu/arm-smmu.h b/drivers/iommu/arm-smmu.h
index 5f2de20e883b..df70d410f77d 100644
--- a/drivers/iommu/arm-smmu.h
+++ b/drivers/iommu/arm-smmu.h
@@ -397,7 +397,7 @@ struct arm_smmu_impl {
int (*cfg_probe)(struct arm_smmu_device *smmu);
int (*reset)(struct arm_smmu_device *smmu);
int (*init_context)(struct arm_smmu_domain *smmu_domain,
- struct io_pgtable_cfg *cfg);
+ struct io_pgtable_cfg *cfg, struct device *dev);
void (*tlb_sync)(struct arm_smmu_device *smmu, int page, int sync,
int status);
int (*def_domain_type)(struct device *dev);
@@ -465,6 +465,7 @@ static inline void arm_smmu_writeq(struct arm_smmu_device *smmu, int page,
struct arm_smmu_device *arm_smmu_impl_init(struct arm_smmu_device *smmu);
struct arm_smmu_device *qcom_smmu_impl_init(struct arm_smmu_device *smmu);
+struct arm_smmu_device *qcom_adreno_smmu_impl_init(struct arm_smmu_device *smmu);
int arm_mmu500_reset(struct arm_smmu_device *smmu);
--
2.17.1
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply related
* [PATCH v7 2/6] iommu/arm-smmu: Add support for split pagetables
From: Jordan Crouse @ 2020-06-04 20:57 UTC (permalink / raw)
To: linux-arm-msm
Cc: Will Deacon, freedreno, Joerg Roedel, linux-kernel, iommu,
Robin Murphy, linux-arm-kernel
In-Reply-To: <20200604205710.3167-1-jcrouse@codeaurora.org>
Enable TTBR1 for a context bank if IO_PGTABLE_QUIRK_ARM_TTBR1 is selected
by the io-pgtable configuration.
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
---
drivers/iommu/arm-smmu.c | 21 ++++++++++++++++-----
drivers/iommu/arm-smmu.h | 25 +++++++++++++++++++------
2 files changed, 35 insertions(+), 11 deletions(-)
diff --git a/drivers/iommu/arm-smmu.c b/drivers/iommu/arm-smmu.c
index 8a3a6c8c887a..048de2681670 100644
--- a/drivers/iommu/arm-smmu.c
+++ b/drivers/iommu/arm-smmu.c
@@ -555,11 +555,15 @@ static void arm_smmu_init_context_bank(struct arm_smmu_domain *smmu_domain,
cb->ttbr[0] = pgtbl_cfg->arm_v7s_cfg.ttbr;
cb->ttbr[1] = 0;
} else {
- cb->ttbr[0] = pgtbl_cfg->arm_lpae_s1_cfg.ttbr;
- cb->ttbr[0] |= FIELD_PREP(ARM_SMMU_TTBRn_ASID,
- cfg->asid);
+ cb->ttbr[0] = FIELD_PREP(ARM_SMMU_TTBRn_ASID,
+ cfg->asid);
cb->ttbr[1] = FIELD_PREP(ARM_SMMU_TTBRn_ASID,
- cfg->asid);
+ cfg->asid);
+
+ if (pgtbl_cfg->quirks & IO_PGTABLE_QUIRK_ARM_TTBR1)
+ cb->ttbr[1] |= pgtbl_cfg->arm_lpae_s1_cfg.ttbr;
+ else
+ cb->ttbr[0] |= pgtbl_cfg->arm_lpae_s1_cfg.ttbr;
}
} else {
cb->ttbr[0] = pgtbl_cfg->arm_lpae_s2_cfg.vttbr;
@@ -824,7 +828,14 @@ static int arm_smmu_init_domain_context(struct iommu_domain *domain,
/* Update the domain's page sizes to reflect the page table format */
domain->pgsize_bitmap = pgtbl_cfg.pgsize_bitmap;
- domain->geometry.aperture_end = (1UL << ias) - 1;
+
+ if (pgtbl_cfg.quirks & IO_PGTABLE_QUIRK_ARM_TTBR1) {
+ domain->geometry.aperture_start = ~0UL << ias;
+ domain->geometry.aperture_end = ~0UL;
+ } else {
+ domain->geometry.aperture_end = (1UL << ias) - 1;
+ }
+
domain->geometry.force_aperture = true;
/* Initialise the context bank with our page table cfg */
diff --git a/drivers/iommu/arm-smmu.h b/drivers/iommu/arm-smmu.h
index 38b041530a4f..5f2de20e883b 100644
--- a/drivers/iommu/arm-smmu.h
+++ b/drivers/iommu/arm-smmu.h
@@ -168,10 +168,12 @@ enum arm_smmu_cbar_type {
#define ARM_SMMU_CB_TCR 0x30
#define ARM_SMMU_TCR_EAE BIT(31)
#define ARM_SMMU_TCR_EPD1 BIT(23)
+#define ARM_SMMU_TCR_A1 BIT(22)
#define ARM_SMMU_TCR_TG0 GENMASK(15, 14)
#define ARM_SMMU_TCR_SH0 GENMASK(13, 12)
#define ARM_SMMU_TCR_ORGN0 GENMASK(11, 10)
#define ARM_SMMU_TCR_IRGN0 GENMASK(9, 8)
+#define ARM_SMMU_TCR_EPD0 BIT(7)
#define ARM_SMMU_TCR_T0SZ GENMASK(5, 0)
#define ARM_SMMU_VTCR_RES1 BIT(31)
@@ -347,12 +349,23 @@ struct arm_smmu_domain {
static inline u32 arm_smmu_lpae_tcr(struct io_pgtable_cfg *cfg)
{
- return ARM_SMMU_TCR_EPD1 |
- FIELD_PREP(ARM_SMMU_TCR_TG0, cfg->arm_lpae_s1_cfg.tcr.tg) |
- FIELD_PREP(ARM_SMMU_TCR_SH0, cfg->arm_lpae_s1_cfg.tcr.sh) |
- FIELD_PREP(ARM_SMMU_TCR_ORGN0, cfg->arm_lpae_s1_cfg.tcr.orgn) |
- FIELD_PREP(ARM_SMMU_TCR_IRGN0, cfg->arm_lpae_s1_cfg.tcr.irgn) |
- FIELD_PREP(ARM_SMMU_TCR_T0SZ, cfg->arm_lpae_s1_cfg.tcr.tsz);
+ u32 tcr = FIELD_PREP(ARM_SMMU_TCR_TG0, cfg->arm_lpae_s1_cfg.tcr.tg) |
+ FIELD_PREP(ARM_SMMU_TCR_SH0, cfg->arm_lpae_s1_cfg.tcr.sh) |
+ FIELD_PREP(ARM_SMMU_TCR_ORGN0, cfg->arm_lpae_s1_cfg.tcr.orgn) |
+ FIELD_PREP(ARM_SMMU_TCR_IRGN0, cfg->arm_lpae_s1_cfg.tcr.irgn) |
+ FIELD_PREP(ARM_SMMU_TCR_T0SZ, cfg->arm_lpae_s1_cfg.tcr.tsz);
+
+ /*
+ * When TTBR1 is selected shift the TCR fields by 16 bits and disable
+ * translation in TTBR0
+ */
+ if (cfg->quirks & IO_PGTABLE_QUIRK_ARM_TTBR1) {
+ tcr = (tcr << 16) & ~ARM_SMMU_TCR_A1;
+ tcr |= ARM_SMMU_TCR_EPD0;
+ } else
+ tcr |= ARM_SMMU_TCR_EPD1;
+
+ return tcr;
}
static inline u32 arm_smmu_lpae_tcr2(struct io_pgtable_cfg *cfg)
--
2.17.1
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply related
* [PATCH v7 1/6] iommu/arm-smmu: Pass io-pgtable config to implementation specific function
From: Jordan Crouse @ 2020-06-04 20:57 UTC (permalink / raw)
To: linux-arm-msm
Cc: Will Deacon, freedreno, Joerg Roedel, linux-kernel, iommu,
Robin Murphy, linux-arm-kernel
In-Reply-To: <20200604205710.3167-1-jcrouse@codeaurora.org>
Construct the io-pgtable config before calling the implementation specific
init_context function and pass it so the implementation specific function
can get a chance to change it before the io-pgtable is created.
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
---
drivers/iommu/arm-smmu-impl.c | 3 ++-
drivers/iommu/arm-smmu.c | 11 ++++++-----
drivers/iommu/arm-smmu.h | 3 ++-
3 files changed, 10 insertions(+), 7 deletions(-)
diff --git a/drivers/iommu/arm-smmu-impl.c b/drivers/iommu/arm-smmu-impl.c
index c75b9d957b70..a20e426d81ac 100644
--- a/drivers/iommu/arm-smmu-impl.c
+++ b/drivers/iommu/arm-smmu-impl.c
@@ -68,7 +68,8 @@ static int cavium_cfg_probe(struct arm_smmu_device *smmu)
return 0;
}
-static int cavium_init_context(struct arm_smmu_domain *smmu_domain)
+static int cavium_init_context(struct arm_smmu_domain *smmu_domain,
+ struct io_pgtable_cfg *pgtbl_cfg)
{
struct cavium_smmu *cs = container_of(smmu_domain->smmu,
struct cavium_smmu, smmu);
diff --git a/drivers/iommu/arm-smmu.c b/drivers/iommu/arm-smmu.c
index 243bc4cb2705..8a3a6c8c887a 100644
--- a/drivers/iommu/arm-smmu.c
+++ b/drivers/iommu/arm-smmu.c
@@ -797,11 +797,6 @@ static int arm_smmu_init_domain_context(struct iommu_domain *domain,
cfg->asid = cfg->cbndx;
smmu_domain->smmu = smmu;
- if (smmu->impl && smmu->impl->init_context) {
- ret = smmu->impl->init_context(smmu_domain);
- if (ret)
- goto out_unlock;
- }
pgtbl_cfg = (struct io_pgtable_cfg) {
.pgsize_bitmap = smmu->pgsize_bitmap,
@@ -812,6 +807,12 @@ static int arm_smmu_init_domain_context(struct iommu_domain *domain,
.iommu_dev = smmu->dev,
};
+ if (smmu->impl && smmu->impl->init_context) {
+ ret = smmu->impl->init_context(smmu_domain, &pgtbl_cfg);
+ if (ret)
+ goto out_unlock;
+ }
+
if (smmu_domain->non_strict)
pgtbl_cfg.quirks |= IO_PGTABLE_QUIRK_NON_STRICT;
diff --git a/drivers/iommu/arm-smmu.h b/drivers/iommu/arm-smmu.h
index d172c024be61..38b041530a4f 100644
--- a/drivers/iommu/arm-smmu.h
+++ b/drivers/iommu/arm-smmu.h
@@ -383,7 +383,8 @@ struct arm_smmu_impl {
u64 val);
int (*cfg_probe)(struct arm_smmu_device *smmu);
int (*reset)(struct arm_smmu_device *smmu);
- int (*init_context)(struct arm_smmu_domain *smmu_domain);
+ int (*init_context)(struct arm_smmu_domain *smmu_domain,
+ struct io_pgtable_cfg *cfg);
void (*tlb_sync)(struct arm_smmu_device *smmu, int page, int sync,
int status);
int (*def_domain_type)(struct device *dev);
--
2.17.1
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply related
* [PATCH v7 0/6] iommu/arm-smmu: Enable split pagetable support
From: Jordan Crouse @ 2020-06-04 20:57 UTC (permalink / raw)
To: linux-arm-msm
Cc: Sean Paul, devicetree, iommu, linux-kernel, Will Deacon,
Jeffrey Hugo, David Airlie, Robin Murphy, Joerg Roedel,
Douglas Anderson, Rob Herring, Bjorn Andersson, Takashi Iwai,
Rob Clark, Andy Gross, dri-devel, Daniel Vetter, Thomas Gleixner,
freedreno, linux-arm-kernel, Brian Masney
Another iteration of the split-pagetable support for arm-smmu and the Adreno GPU
SMMU. After email discussions [1] we opted to make a arm-smmu implementation for
specifically for the Adreno GPU and use that to enable split pagetable support
and later other implementation specific bits that we need.
On the hardware side this is very close to the same code from before [2] only
the TTBR1 quirk is turned on by the implementation and not a domain attribute.
In drm/msm we use the returned size of the aperture as a clue to let us know
which virtual address space we should use for global memory objects.
There are two open items that you should be aware of. First, in the
implementation specific code we have to check the compatible string of the
device so that we only enable TTBR1 for the GPU (SID 0) and not the GMU (SID 4).
I went back and forth trying to decide if I wanted to use the compatbile string
or the SID as the filter and settled on the compatible string but I could be
talked out of it.
The other open item is that in drm/msm the hardware only uses 49 bits of the
address space but arm-smmu expects the address to be sign extended all the way
to 64 bits. This isn't a problem normally unless you look at the hardware
registers that contain a IOVA and then the upper bits will be zero. I opted to
restrict the internal drm/msm IOVA range to only 49 bits and then sign extend
right before calling iommu_map / iommu_unmap. This is a bit wonky but I thought
that matching the hardware would be less confusing when debugging a hang.
[1] https://lists.linuxfoundation.org/pipermail/iommu/2020-May/044537.html
[2] https://patchwork.kernel.org/patch/11482591/
Jordan Crouse (6):
iommu/arm-smmu: Pass io-pgtable config to implementation specific
function
iommu/arm-smmu: Add support for split pagetables
dt-bindings: arm-smmu: Add compatible string for Adreno GPU SMMU
iommu/arm-smmu: Add implementation for the adreno GPU SMMU
drm/msm: Set the global virtual address range from the IOMMU domain
arm6: dts: qcom: sm845: Set the compatible string for the GPU SMMU
.../devicetree/bindings/iommu/arm,smmu.yaml | 4 ++
arch/arm64/boot/dts/qcom/sdm845.dtsi | 2 +-
drivers/gpu/drm/msm/adreno/adreno_gpu.c | 13 ++++++-
drivers/gpu/drm/msm/msm_iommu.c | 7 ++++
drivers/iommu/arm-smmu-impl.c | 6 ++-
drivers/iommu/arm-smmu-qcom.c | 38 ++++++++++++++++++-
drivers/iommu/arm-smmu.c | 32 +++++++++++-----
drivers/iommu/arm-smmu.h | 29 ++++++++++----
8 files changed, 108 insertions(+), 23 deletions(-)
--
2.17.1
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply
* [GIT PULL 4/4] ARM: DT changes for v5.8
From: Arnd Bergmann @ 2020-06-04 20:56 UTC (permalink / raw)
To: Linus Torvalds, SoC Team, Linux ARM, Linux Kernel Mailing List
In-Reply-To: <CAK8P3a2fCyYgoexi6NiAY2cch5C-7EEkNGy6PJGxjJ-2yMndLA@mail.gmail.com>
The following changes since commit 0e698dfa282211e414076f9dc7e83c1c288314fd:
Linux 5.7-rc4 (2020-05-03 14:56:04 -0700)
are available in the Git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc.git tags/arm-dt-5.8
for you to fetch changes up to 9ad249abe7b8f6f0d2d876bde860b1c511d71d7b:
Merge tag 'zynqmp-dt-for-v5.8' of
https://github.com/Xilinx/linux-xlnx into arm/dt (2020-06-02 20:45:53
+0200)
----------------------------------------------------------------
ARM: DT changes for v5.8
This is the set of device tree changes, mostly covering new
hardware support, with 577 patches touching a little over 500
files.
There are five new Arm SoCs supported in this release, all of
them for existing SoC families:
- Realtek RTD1195, RTD1395 and RTD1619 -- three SoCs used in
both NAS devices and Android Set-top-box designs, along
with the "Horseradish", "Lion Skin" and "Mjolnir" reference
platforms; the Mele X1000 and Xnano X5 set-top-boxes and
the Banana Pi BPi-M4 single-board computer.
- Renesas RZ/G1H (r8a7742) -- a high-end 32-bit industrial SoC
and the iW-RainboW-G21D-Qseven-RZG1H board/SoM
- Rockchips RK3326 -- low-end 64-bit SoC along with the
Odroid-GO Advance game console
Newly added machines on already supported SoCs are:
- AMLogic S905D based Smartlabs SML-5442TW TV box
- AMLogic S905X3 based ODROID-C4 SBC
- AMLogic S922XH based Beelink GT-King Pro TV box
- Allwinner A20 based Olimex A20-OLinuXino-LIME-eMMC SBC
- Aspeed ast2500 based BMCs in Facebook x86 "Yosemite V2"
and YADRO OpenPower P9 "Nicole"
- Marvell Kirkwood based Check Point L-50 router
- Mediatek MT8173 based Elm/Hana Chromebook laptops
- Microchip SAMA5D2 "Industrial Connectivity Platform"
reference board
- NXP i.MX8m based Beacon i.MX8m-Mini SoM development kit
- Octavo OSDMP15x based Linux Automation MC-1 development board
- Qualcomm SDM630 based Xiaomi Redmi Note 7 phone
- Realtek RTD1295 based Xnano X5 TV Box
- STMicroelectronics STM32MP1 based Stinger96 single-board
computer and IoT Box
- Samsung Exynos4210 based based Samsung Galaxy S2 phone
- Socionext Uniphier based Akebi96 SBC
- TI Keystone based K2G Evaluation board
- TI am5729 based Beaglebone-AI development board
Include device descriptions for additional hardware support in existing
SoCs and machines based on all major SoC platforms:
- AMlogic Meson
- Allwinner sunxi
- Arm Juno/VFP/Vexpress/Integrator
- Broadcom bcm283x/bcm2711
- Hisilicon hi6220
- Marvell EBU
- Mediatek MT27xx, MT76xx, MT81xx and MT67xx
- Microchip SAMA5D2
- NXP i.MX6/i.MX7/i.MX8 and Layerscape
- Nvidia Tegra
- Qualcomm Snapdragon
- Renesas r8a77961, r8a7791
- Rockchips RK32xx/RK33xx
- ST-Ericsson ux500
- STMicroelectronics SMT32
- Samsung Exynos and S5PV210
- Socionext Uniphier
- TI OMAP5/DRA7 and Keystone
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
----------------------------------------------------------------
Abhishek Sahu (1):
ARM: dts: qcom: ipq4019: fix high resolution timer
Adam Ford (1):
arm64: dts: imx: Add Beacon i.MX8m-Mini development kit
Ahmad Fatoum (8):
ARM: dts: stm32: enable stm32mp157's &gpu by default
ARM: dts: stm32: preset stm32mp15x video #address- and #size-cells
ARM: dts: stm32: remove now redundant STM32MP15x video cell sizes
ARM: dts: stm32: use uniform label names for sleep pinctrl phandles
ARM: dts: stm32: use uniform node names for sleep pinctrl groups
dt-bindings: add vendor prefix for Linux Automation GmbH
ARM: dts: stm32: add STM32MP1-based Linux Automation MC-1 board
dt-bindings: arm: stm32: document lxa,stm32mp157c-mc1 compatible
Alain Volmat (4):
dts: arm: stih418: Fix complain about IRQ_TYPE_NONE usage
dts: arm: stih407-family: remove duplicated rng nodes
ARM: dts: stm32: use st,stm32mp15-i2c compatible for stm32mp151
ARM: dts: stm32: add Fast Mode Plus info in I2C nodes of stm32mp151
Alex Elder (2):
arm64: dts: sdm845: add IPA iommus property
arm64: dts: qcom: sc7180: add IPA information
Alexander Filippov (2):
ARM: dts: aspeed: ast2400: Add video engine support
ARM: dts: aspeed: Add YADRO Nicole BMC
Alexandre Belloni (4):
ARM: dts: at91: sama5d3: switch to new clock bindings
ARM: dts: at91: at91sam9n12: switch to new clock bindings
ARM: dts: at91: at91sam9g45: switch to new clock bindings
ARM: dts: at91: rm9200: switch to new clock bindings
Alexey Minnekhanov (2):
dt-bindings: arm: qcom: Add sdm630 and sdm660 SoCs
arm64: dts: qcom: Add Xiaomi Redmi Note 7 (lavender)
Amit Kucheria (5):
dt-bindings: arm: cpus: Add kryo468 compatible
arm64: dts: qcom: sc7180: Fix cpu compatible
arm64: dts: qcom: msm8916: remove unit name for thermal trip points
arm64: dts: qcom: msm8996: remove unit name for thermal trip points
arm64: dts: qcom: msm8998: remove unit name for thermal trip points
Andre Przywara (17):
arm64: dts: fvp/juno: Fix node address fields
arm64: dts: fvp: Move fixed devices out of bus node
arm64: dts: vexpress: Move fixed devices out of bus node
arm64: dts: fvp: Move fixed clocks out of bus node
arm64: dts: juno: Move fixed devices out of bus node
arm64: dts: juno: Fix mem-timer
arm64: dts: fvp: Fix GIC compatible names
arm64: dts: juno: Fix GIC child nodes
arm64: dts: fvp: Fix GIC child nodes
arm64: dts: fvp: Fix ITS node names and #msi-cells
arm64: dts: juno: Use proper DT node name for USB
arm64: dts: fvp/juno: Fix serial node names
arm64: dts: fvp: Fix SMMU DT node
arm64: dts: fvp/juno: Fix bus node names
arm64: dts: juno: Fix GPU interrupt order
arm64: dts: vexpress: Fix VExpress LED names
arm64: dts: juno: Fix SCPI shared mem node name
Andreas Färber (33):
dt-bindings: arm: realtek: Add RTD1195 and MeLE X1000
ARM: dts: Prepare Realtek RTD1195 and MeLE X1000
ARM: dts: rtd1195: Exclude boot ROM from memory ranges
ARM: dts: rtd1195: Introduce r-bus
dt-bindings: arm: realtek: Add Realtek Horseradish EVB
ARM: dts: rtd1195: Add Realtek Horseradish EVB
arm64: dts: realtek: rtd129x: Fix GIC CPU masks for RTD1293
arm64: dts: realtek: rtd129x: Use reserved-memory for RPC regions
arm64: dts: realtek: rtd129x: Introduce r-bus
arm64: dts: realtek: rtd129x: Carve out boot ROM from memory
dt-bindings: arm: realtek: Add RTD1395 and Banana Pi BPI-M4
arm64: dts: realtek: Add RTD1395 and BPi-M4
dt-bindings: arm: realtek: Add Realtek Lion Skin EVB
arm64: dts: realtek: rtd1395: Add Realtek Lion Skin EVB
arm64: dts: realtek: rtd16xx: Carve out boot ROM from memory
arm64: dts: realtek: rtd16xx: Add memory reservations
dt-bindings: vendor-prefixes: Add Xnano
dt-bindings: arm: realtek: Add Xnano X5
arm64: dts: realtek: rtd1295: Add Xnano X5
ARM: dts: rtd1195: Introduce iso and misc syscon
arm64: dts: realtek: rtd129x: Introduce CRT, iso and misc syscon
arm64: dts: realtek: rtd139x: Introduce CRT, iso and misc syscon
arm64: dts: realtek: rtd16xx: Introduce iso and misc syscon
ARM: dts: rtd1195: Add CRT syscon node
dt-bindings: reset: Add Realtek RTD1195
ARM: dts: rtd1195: Add reset nodes
ARM: dts: rtd1195: Add UART resets
arm64: dts: realtek: rtd16xx: Add CRT syscon node
ARM: dts: rtd1195: Add SB2 and SCPU Wrapper syscon nodes
arm64: dts: realtek: rtd129x: Add SB2 and SCPU Wrapper syscon nodes
arm64: dts: realtek: rtd139x: Add SB2 and SCPU Wrapper syscon nodes
arm64: dts: realtek: rtd16xx: Add SB2 and SCPU Wrapper syscon nodes
dt-bindings: reset: rtd1295: Add SB2 reset
Andreas Kemnade (1):
ARM: dts: e60k02: add interrupt for PMIC
Andrew Geissler (4):
ARM: dts: aspeed: witherspoon: Add gpio line names
ARM: dts: aspeed: romulus: Add gpio line names
ARM: dts: aspeed: zaius: Add gpio line names
ARM: dts: aspeed: rainier: Add gpio line names
Andrew Jeffery (3):
ARM: dts: aspeed: rainier: Enable VUART2
ARM: dts: aspeed: tacoma: Enable the second VUART
ARM: dts: aspeed: Change KCS nodes to v2 binding
Anson Huang (17):
arm64: dts: imx8mm-evk: Add secondary cpus supply
arm64: dts: imx8mn-ddr4-evk: Add secondary cpus supply
ARM: dts: imx7: Correct CPU supply name
ARM: dts: imx7d: Add cpu1 supply
arm64: dts: imx8mp: Add thermal zones support
arm64: dts: imx8qxp-mek: Sort labels alphabetically
arm64: dts: imx8qxp-mek: Add PMIC thermal zone support
arm64: dts: imx8mn: Update VDD_ARM 1.2GHz setpoint voltage
arm64: dts: imx8mq: Add src node interrupts
arm64: dts: imx8mp: Add src node interrupts
ARM: dts: imx51: Add src node interrupt
ARM: dts: imx53: Add src node interrupt
ARM: dts: imx6qdl: Use nvmem interface to get fuse data
ARM: dts: imx6sl: Use nvmem interface to get fuse data
ARM: dts: imx: make src node name generic
ARM: dts: imx50: Add src node interrupt
ARM: dts: imx5: make src node name generic
Ansuel Smith (1):
ARM: dts: qcom: add scm definition to ipq806x
Arnaud Pouliquen (1):
ARM: dts: stm32: add cortex-M4 pdds management in Cortex-M4 node
Arnd Bergmann (42):
Merge tag 'sti-dt-for-v5.8-round1' of
git://git.kernel.org/.../pchotard/sti into arm/dt
Merge tag 'versatile-dts-v5.8-1' of
git://git.kernel.org/.../linusw/linux-integrator into arm/dt
Merge tag 'renesas-arm-dt-for-v5.8-tag1' of
git://git.kernel.org/.../geert/renesas-devel into arm/dt
Merge tag 'renesas-dt-bindings-for-v5.8-tag1' of
git://git.kernel.org/.../geert/renesas-devel into arm/dt
Merge tag 'omap-for-v5.8/dt-signed' of
git://git.kernel.org/.../tmlind/linux-omap into arm/dt
Merge tag 'aspeed-5.8-devicetree' of
git://git.kernel.org/.../joel/aspeed into arm/dt
Merge tag 'realtek-dt-for-5.8' of
git://git.kernel.org/.../afaerber/linux-realtek into arm/dt
Merge tag 'hisi-arm64-dt-for-5.8' of
git://github.com/hisilicon/linux-hisi into arm/dt
Merge tag 'arm-soc/for-5.8/devicetree' of
https://github.com/Broadcom/stblinux into arm/dt
Merge tag 'samsung-dt-5.8' of
git://git.kernel.org/.../krzk/linux into arm/dt
Merge tag 'stm32-dt-for-v5.8-1' of
git://git.kernel.org/.../atorgue/stm32 into arm/dt
Merge tag 'renesas-arm-dt-for-v5.8-tag2' of
git://git.kernel.org/.../geert/renesas-devel into arm/dt
Merge tag 'renesas-dt-bindings-for-v5.8-tag2' of
git://git.kernel.org/.../geert/renesas-devel into arm/dt
Merge tag 'ti-k3-dt-for-v5.8' of
git://git.kernel.org/.../kristo/linux into arm/dt
Merge tag 'tegra-for-5.8-dt-bindings' of
git://git.kernel.org/.../tegra/linux into arm/dt
Merge tag 'tegra-for-5.8-arm-dt' of
git://git.kernel.org/.../tegra/linux into arm/dt
Merge tag 'sunxi-dt-for-5.8-1' of
git://git.kernel.org/.../sunxi/linux into arm/dt
Merge tag 'socfpga_dts_update_for_v5.8' of
git://git.kernel.org/.../dinguyen/linux into arm/dt
Merge tag 'v5.7-next-dts32' of
git://git.kernel.org/.../matthias.bgg/linux into arm/dt
Merge tag 'ux500-dts-v5.8' of
git://git.kernel.org/.../linusw/linux-stericsson into arm/dt
Merge tag 'v5.7-next-dts64' of
git://git.kernel.org/.../matthias.bgg/linux into arm/dt
Merge tag 'uniphier-dt-v5.8' of
git://git.kernel.org/.../masahiroy/linux-uniphier into arm/dt
Merge tag 'uniphier-dt64-v5.8' of
git://git.kernel.org/.../masahiroy/linux-uniphier into arm/dt
Merge tag 'at91-5.8-dt' of git://git.kernel.org/.../at91/linux into arm/dt
Merge tag 'qcom-arm64-for-5.8' of
git://git.kernel.org/.../qcom/linux into arm/dt
Merge tag 'qcom-dts-for-5.8' of
git://git.kernel.org/.../qcom/linux into arm/dt
Merge tag 'juno-updates-5.8' of
git://git.kernel.org/.../sudeep.holla/linux into arm/dt
Merge tag 'mvebu-dt-5.8-1' of
git://git.infradead.org/linux-mvebu into arm/dt
Merge tag 'mvebu-dt64-5.8-1' of
git://git.infradead.org/linux-mvebu into arm/dt
Merge tag 'v5.8-rockchip-dts64-1' of
git://git.kernel.org/.../mmind/linux-rockchip into arm/dt
Merge tag 'v5.8-rockchip-dts32-1' of
git://git.kernel.org/.../mmind/linux-rockchip into arm/dt
Merge branch 'mmp/fixes' into arm/dt
Merge tag 'amlogic-dt' of
git://git.kernel.org/.../khilman/linux-amlogic into arm/dt
Merge tag 'amlogic-dt64' of
git://git.kernel.org/.../khilman/linux-amlogic into arm/dt
Merge tag 'tegra-for-5.8-arm64-dt-v2' of
git://git.kernel.org/.../tegra/linux into arm/dt
Merge tag 'imx-bindings-5.8' of
git://git.kernel.org/.../shawnguo/linux into arm/dt
Merge tag 'imx-dt-5.8' of
git://git.kernel.org/.../shawnguo/linux into arm/dt
Merge tag 'imx-dt64-5.8' of
git://git.kernel.org/.../shawnguo/linux into arm/dt
Merge tag 'v5.7-next-dts64.2' of
git://git.kernel.org/.../matthias.bgg/linux into arm/dt
Merge tag 'keystone_dts_for_5.8' of
git://git.kernel.org/.../ssantosh/linux-keystone into arm/dt
Merge tag 'keystone_dts_for_5.7' of
git://git.kernel.org/.../ssantosh/linux-keystone into arm/dt
Merge tag 'zynqmp-dt-for-v5.8' of
https://github.com/Xilinx/linux-xlnx into arm/dt
Baruch Siach (2):
arm64: dts: marvell: drop i2c timeout-ms property
ARM: dts: marvell: drop i2c timeout-ms property
Ben Pai (2):
ARM: dts: aspeed: mihawk: Change the name of leds
ARM: dts: aspeed: mihawk: add aliases for i2c
Biao Huang (1):
arm64: dts: mt2712: add ethernet device node
Bjorn Andersson (9):
arm64: dts: qcom: qcs404: Add USB devices and PHYs
arm64: dts: qcom: sm8250: Add rpmhpd node
arm64: dts: qcom: sm8250: Fix PDC compatible and reg
arm64: dts: qcom: db820c: Add pmi8994 RPM regulators
arm64: dts: qcom: db820c: Fix invalid pm8994 supplies
arm64: dts: qcom: c630: Add WiFi node
arm64: dts: qcom: c630: Specify UFS device reset
arm64: dts: qcom: msm8996: Make GPU node control GPU_GX GDSC
arm64: dts: qcom: sc7180: Fix ETMv4 power management patch
Boris Brezillon (1):
arm64: dts: rockchip: Define the rockchip Video Decoder node on rk3399
Brian J. Tarricone (1):
ARM: dts: kirkwood: ReadyNAS NV+v2: Add LCD panel
Bryan O'Donoghue (7):
arm64: dts: qcom: qcs404-evb: Define VBUS pins
arm64: dts: qcom: qcs404-evb: Define USB ID pin
arm64: dts: qcom: qcs404-evb: Describe external VBUS regulator
arm64: dts: qcom: qcs404-evb: Raise vreg_l12_3p3 minimum voltage
arm64: dts: qcom: qcs404-evb: Enable USB controllers
arm64: dts: qcom: sm8250-mtp: Add pm8150, pm8150l and pm8009
arm64: dts: qcom: sm8250: Add UFS controller and PHY
Christian Hewitt (9):
dt-bindings: add vendor prefix for Smartlabs LLC
dt-bindings: arm: amlogic: add support for the Smartlabs SML-5442TW
arm64: dts: meson: add support for the Smartlabs SML-5442TW
arm64: dts: meson: add ethernet interrupt to wetek dtsi
arm64: dts: meson: convert ugoos-am6 to common w400 dtsi
dt-bindings: arm: amlogic: add support for the Beelink GT-King
arm64: dts: meson-g12b-gtking: add initial device-tree
dt-bindings: arm: amlogic: add support for the Beelink GT-King Pro
arm64: dts: meson-g12b-gtking-pro: add initial device-tree
Chunfeng Yun (1):
arm64: dts: mt2712: use non-empty ranges for usb-phy
Chunyan Zhang (2):
arm64: dts: Add SC9863A clock nodes
arm64: dts: Add SC9863A emmc and sd card nodes
Claudiu Beznea (1):
ARM: dts: at91: sama5d27_som1: Add SPI NOR flash mapping
Clément Péron (6):
arm64: dts: allwinner: h6: Enable CPU opp tables for Beelink GS1
arm64: dts: allwinner: h6: Enable CPU opp tables for Orange Pi 3
arm64: dts: allwinner: Sort Pine H64 device-tree nodes
arm64: dts: allwinner: h6: Enable CPU opp tables for Pine H64
arm64: dts: allwinner: h6: add voltage range to OPP table
arm64: dts: allwinner: h6: Enable CPU opp tables for Tanix TX6
Codrin Ciubotariu (2):
dt-bindings: ARM: Document SAMA5D2-ICP
ARM: dts: at91: Configure I2C SCL gpio as open drain
Craig Tatlor (1):
arm64: dts: qcom: Add SDM660 SoC support
Cristian Birsan (1):
ARM: dts: at91: sama5d2-icp: add SAMA5D2-ICP
Cyrille Pitchen (1):
ARM: dts: at91: sama5d2_xplained: Add QSPI0 + SPI NOR memory nodes
Daniele Debernardi (5):
ARM: dts: qcom: msm8974-klte: Add pma8084 regulator nodes
ARM: dts: qcom: msm8974-klte: Remove inherited vreg_boost node
ARM: dts: qcom: msm8974-klte: Add gpio-keys nodes
ARM: dts: qcom: msm8974-klte: Add sdhci1 node
ARM: dts: qcom: msm8974-klte: Add USB node
Dmitry Osipenko (3):
ARM: dts: tegra30: beaver: Set up voltage regulators for DVFS
ARM: dts: tegra30: beaver: Add CPU Operating Performance Points
dt-bindings: cpufreq: Add binding for NVIDIA Tegra20/30
Dongjin Kim (1):
arm64: dts: meson-sm1: add support for Hardkernel ODROID-C4
Douglas Anderson (3):
arm64: dts: qcom: sc7180: Swap order of gpucc and sdhc_2
arm64: dts: sdm845: Add "no-hpd" to sn65dsi86 on cheza
arm64: dts: qcom: sc7180: Add "no-map" to cmd_db reserved area
Eddie James (9):
ARM: dts: aspeed: ast2500: Add SCU interrupt controller
ARM: dts: aspeed: ast2600: Add SCU interrupt controllers
ARM: dts: aspeed: tacoma: Add gpio-key definitions
ARM: dts: aspeed: ast2600: Set arch timer always-on
ARM: dts: aspeed: tacoma: Add iio-hwmon nodes for IIO devices
ARM: dts: aspeed: tacoma: Add TPM
ARM: dts: aspeed: ast2500: Add XDMA Engine
ARM: dts: aspeed: ast2600: Add XDMA Engine
ARM: dts: Aspeed: AST2600: Add XDMA PCI-E root control reset
Enric Balletbo i Serra (1):
arm64: dts: mt8173: Fix mmsys node name
Etienne Carriere (1):
ARM: dts: stm32: bump PSCI to version 1.0 on stm32mp15x
Evan Green (1):
arm64: dts: qcom: sc7180: Include interconnect definitions
Fabio Estevam (2):
arm64: dts: imx8qxp-mek: Do not use underscore in node name
ARM: dts: imx50: Remove unused iomuxc-gpr node
Fabrice Gasnier (3):
ARM: dts: stm32: fix a typo for DAC io-channel-cells on stm32f429
ARM: dts: stm32: fix a typo for DAC io-channel-cells on stm32h743
ARM: dts: stm32: fix a typo for DAC io-channel-cells on stm32mp15
Florian Fainelli (1):
Merge tag 'tags/bcm2835-dt-next-2020-03-27' into devicetree/next
Fugang Duan (1):
arm64: dts: imx8mp: add "fsl,imx6sx-fec" compatible string
Geert Uytterhoeven (5):
arm64: dts: renesas: r8a77961: Add SCIF and HSCIF nodes
ARM: dts: r8a7791: Add TPU device node
ARM: dts: r8a7791: Add PWM device nodes
ARM: dts: shmobile: Update CMT1 compatible values
Merge tag 'renesas-r8a7742-dt-binding-defs-tag' into
renesas-arm-dt-for-v5.8
Guenter Roeck (1):
ARM: dts: aspeed: tacoma: Enable eMMC controller
Guido Günther (2):
arm64: dts: imx8mq-librem5-devkit: Use 0.9V for VDD_GPU
arm64: dts: imx8mq-librem5-devkit: Don't use underscore in node name
Heiko Stuebner (3):
arm64: dts: rockchip: add core devicetree for rk3326
dt-bindings: Add binding for Hardkernel Odroid Go Advance
arm64: dts: rockchip: add Odroid Advance Go
Hsin-Hsiung Wang (1):
arm64: dts: mt6358: add PMIC MT6358 related nodes
Hsin-Yi Wang (6):
arm64: dts: mt8173: Add gce setting in mmsys and display node
dt-bindings: arm64: dts: mediatek: Add mt8173 elm and hana
arm64: dts: mt8173: add uart aliases
arm64: dts: mt8173: fix unit name warnings
arm64: dts: mediatek: add mt8173 elm and hana board
arm64: dts: mt8173: fix mdp aliases property name
Igor Opaniuk (2):
dt-bindings: arm: fsl: add nxp based toradex colibri bindings
ARM: dts: colibri: introduce device trees with UHS-I support
Ikjoon Jang (1):
arm64: dts: mt8183: adjust cpuidle target residency
Iskren Chernev (1):
ARM: dts: qcom: msm8974-klte: Add max77826 pmic node
Jae Hyun Yoo (1):
ARM: dts: aspeed: ast2600: Add Video Engine node
James Tai (2):
dt-bindings: arm: realtek: Document RTD1619 and Realtek Mjolnir EVB
arm64: dts: realtek: Add RTD1619 SoC and Realtek Mjolnir EVB
Jason Kridner (1):
ARM: dts: am5729: beaglebone-ai: adding device tree
Jernej Skrabec (2):
arm64: dts: allwinner: h6: orangepi: Add gpio power supply
arm64: dts: allwinner: h6: orangepi: Disable OTG mode
Jerome Brunet (14):
arm64: dts: meson: kvim3: move hdmi to tdm a
dt-bindings: reset: meson: add gxl internal dac reset
arm64: dts: meson-gx: add aiu support
arm64: dts: meson: p230-q200: add initial audio playback support
arm64: dts: meson: libretech-cc: add initial audio playback support
arm64: dts: meson: libretech-ac: add initial audio playback support
arm64: dts: meson: libretech-pc: add initial audio playback support
arm64: dts: meson: gxl: add acodec support
arm64: dts: meson: p230-q200: add internal DAC support
arm64: dts: meson: libretech-cc: add internal DAC support
arm64: dts: meson: libretech-ac: add internal DAC support
arm64: dts: meson: libretech-pc: add internal DAC support
arm64: dts: meson: g12: add internal DAC
arm64: dts: meson: g12: add internal DAC glue
Joel Stanley (5):
ARM: dts: aspeed: ast2600evb: Enable FSI master
ARM: dts: aspeed: rainier: Add host FSI description
ARM: dts: aspeed: tacoma: Add GPIOs for FSI
ARM: dts: aspeed: tacoma: Add gpio line names
ARM: dts: aspeed: rainier: Add VGA reserved memory region
Johan Jonker (19):
arm64: dts: rockchip: remove bus-width from mmc nodes in rk3308-roc-cc
arm64: dts: rockchip: remove #sound-dai-cells from &i2s1 node of
rk3399-pinebook-pro.dts
arm64: dts: rockchip: remove #sound-dai-cells from &spdif node
of rk3399-hugsun-x99.dts
arm64: dts: rockchip: replace RK_FUNC defines in rk3326-odroid-go2
include: dt-bindings: rockchip: remove unused defines
arm64: dts: rockchip: fix phy nodename for rk3328
arm64: dts: rockchip: fix rtl8211f nodename for rk3328 Beelink A1
arm64: dts: rockchip: fix rtl8211e nodename for rk3399-nanopi4
arm64: dts: rockchip: fix &pinctrl phy sub nodename for rk3399-nanopi4
arm64: dts: rockchip: fix rtl8211e nodename for rk3399-orangepi
arm64: dts: rockchip: fix &pinctrl phy sub nodename for rk3399-orangepi
arm64: dts: rockchip: fix defines in pd_vio node for rk3399
arm64: dts: rockchip: rename and label gpio-led subnodes
arm64: dts: rockchip: remove disable-wp from rk3308-roc-cc emmc node
ARM: dts: rockchip: rename and label gpio-led subnodes
ARM: dts: rockchip: remove identical #include from rk3288.dtsi
arm64: dts: rockchip: add bus-width properties to mmc nodes for px30
arm64: dts: rockchip: fix pd_tcpc0 and pd_tcpc1 node position on rk3399
arm64: dts: rockchip: fix pinctrl-names for gpio-leds node on
rk3326-odroid-go2
Jon Hunter (3):
arm64: tegra: Fix ethernet phy-mode for Jetson Xavier
arm64: tegra: Allow the PMIC RTC to wakeup Jetson Xavier
arm64: tegra: Make the RTC a wakeup source on Jetson Nano and TX1
Jonathan Bakker (17):
ARM: dts: s5pv210: Add helper define for sleep gpio config
ARM: dts: s5pv210: Add sleep GPIO configuration for Fascinate4G
ARM: dts: s5pv210: Add sleep GPIO configuration for Galaxy S
ARM: dts: s5pv210: Correct gpi pinctrl node name
ARM: dts: s5pv210: Set keep-power-in-suspend for SDHCI1 on Aries
ARM: dts: s5pv210: Disable pulls on GPIO I2C adapters for Aries
ARM: dts: s5pv210: Add WM8994 support to Aries boards
ARM: dts: s5pv210: Add FSA9480 support to Aries boards
ARM: dts: s5pv210: Add touchkey support to Aries boards
ARM: dts: s5pv210: Add panel support to Aries boards
ARM: dts: s5pv210: Add remaining i2c-gpio adapters to Aries boards
ARM: dts: s5pv210: Disable pull for vibrator enable GPIO on Aries boards
ARM: dts: s5pv210: Add an ADC node
ARM: dts: s5pv210: Enable ADC on Aries boards
ARM: dts: s5pv210: Assign clocks to MMC devices on Aries boards
ARM: dts: s5pv210: Correct FIMC definitions
ARM: dts: s5pv210: Set MAX8998 GPIO pulls on Aries boards
Jonathan Marek (1):
arm64: dts: qcom: fix pm8150 gpio interrupts
Joseph Lo (2):
dt-bindings: memory: tegra: Add external memory controller
binding for Tegra210
arm64: tegra: Add external memory controller node for Tegra210
Justin Swartz (3):
ARM: dts: enable WLAN for Mecer Xtreme Mini S6
ARM: dts: remove disable-wp from rk3229-xms6 emmc
ARM: dts: rockchip: add rga node for rk322x
Jyri Sarha (3):
ARM: dts: keystone-k2g: Add DSS node
ARM: dts: keystone-k2g-evm: add HDMI video support
arm64: dts: ti: am654: Add DSS node
Kalyani Akula (1):
arm64: zynqmp: Add Xilinx AES node
Keerthy (2):
arm64: dts: ti: am65-wakeup: Add VTM node
arm64: dts: ti: am654: Add thermal zones
Kevin Hilman (1):
Merge branch 'reset/meson-gxl-dac' of
git://git.pengutronix.de/pza/linux into HEAD
Krishna Manikandan (1):
arm64: dts: qcom: sc7180: modify assigned clocks for sc7180 target
Krzysztof Kozlowski (1):
ARM: dts: keystone: Rename "msmram" node to "sram"
Kuldeep Singh (2):
arm64: dts: ls1012a: Add QSPI node properties
arm: dts: ls1021atwr: Add QSPI node properties
Kunihiko Hayashi (5):
ARM: dts: uniphier: Add XDMAC node
arm64: dts: uniphier: Add XDMAC node
ARM: dts: uniphier: Add ethernet aliases
arm64: dts: uniphier: Add ethernet aliases
arm64: dts: uniphier: Stabilize Ethernet RGMII mode of PXs3 ref board
Lad Prabhakar (13):
dt-bindings: power: rcar-sysc: Add r8a7742 power domain index macros
clk: renesas: Add r8a7742 CPG Core Clock Definitions
dt-bindings: power: rcar-sysc: Document r8a7742 SYSC binding
dt-bindings: reset: rcar-rst: Document r8a7742 reset module
ARM: dts: r8a7742: Initial SoC device tree
ARM: dts: r8a7742-iwg21m: Add iWave RZ/G1H Qseven SOM
ARM: dts: r8a7742-iwg21d-q7: Add iWave G21D-Q7 board based on RZ/G1H
ARM: dts: r8a7742: Add IRQC support
ARM: dts: r8a7742: Add [H]SCIF{A|B} support
ARM: dts: r8a7742: Add GPIO nodes
arm64: dts: renesas: r8a774c0-cat874: Add support for
AISTARVISION MIPI Adapter V2.1
dt-bindings: arm: renesas: Document iW-RainboW-G21M-Qseven-RZG1H SoM
dt-bindings: arm: renesas: Document iW-RainboW-G21D-Qseven-RZG1H board
Linus Walleij (3):
ARM: dts: Add devicetree for Integrator/AP with IM-PD1
ARM: dts: ux500: samsung-skomer: Add magnetometer
ARM: dts: ux500: Add touchscreen to the Skomer
Loic Poulain (5):
arm64: dts: qcom: msm8916: Add i2c-qcom-cci node
arm64: dts: qcom: apq8016-sbc: Add CCI/Sensor nodes
arm64: dts: hikey960: pinctrl: Fix spi2/spi3 pinconf
arm64: dts: msm8996: Fix CSI IRQ types
arch: arm64: dts: msm8996: Add CCI node
Lokesh Vutla (1):
ARM: dts: Add 32KHz clock as default clock source
Long Cheng (1):
arm: dts: mt2712: add uart APDMA to device tree
Lubomir Rintel (15):
ARM: dts: kirkwood: Fix interrupt controller node name
ARM: dts: dove: Fix interrupt controller node name
ARM: dts: pxa168: Add missing address/size cells to i2c nodes
ARM: dts: pxa168: Fix the gpio interrupt cell number
ARM: dts: pxa3xx: Fix up encoding of the /gpio interrupts property
ARM: dts: pxa910: Fix the gpio interrupt cell number
ARM: dts: pxa*: Fix up encoding of the /rtc interrupts property
ARM: dts: mmp*: Fix up encoding of the /rtc interrupts property
ARM: dts: mmp3: Fix L2 cache controller node name
ARM: dts: mmp3: Fix USB & USB PHY node names
ARM: dts: berlin*: Fix up the SDHCI node names
ARM: dts: mmp3: Add the fifth SD HCI
ARM: dts: mmp3: Use the MMP3 compatible string for /clocks
ARM: dts: mmp3-dell-ariel: Fix the SPI devices
ARM: dts: mmp3: Drop usb-nop-xceiv from HSIC phy
Ludovic Desroches (6):
ARM: dts: at91: sama5d2_ptc_ek: fix sdmmc0 node description
ARM: dts: at91: sama5d2_ptc_ek: fix vbus pin
ARM: dts: at91: sama5d2_ptc_ek: add PB_USER as wakeup source
ARM: dts: at91: sama5d27_som1_ek: enable i2c0
ARM: dts: at91: sama5d27_som1_ek: add an alias for i2c0
ARM: dts: at91: at91-sama5d27_som1: Enable eeprom device
Manikandan Elumalai (1):
ARM: dts: aspeed: Adding Facebook Yosemite V2 BMC
Manivannan Sadhasivam (10):
dt-bindings: Add vendor prefix for Shiratech Solutions
ARM: dts: stm32: Add missing pinctrl entries for STM32MP15
dt-bindings: arm: stm32: Document Stinger96 compatible
ARM: dts: stm32: Add Stinger96 board support
dt-bindings: arm: stm32: Document IoT Box compatible
ARM: dts: stm32: Add IoT Box board support
dt-bindings: i2c: Document I2C controller binding for MT6797 SoC
arm64: dts: mediatek: Add I2C support for MT6797 SoC
arm64: dts: mediatek: Enable I2C support for 96Boards X20
Development board
arm64: dts: mediatek: Switch to SPDX license identifier for MT6797 SoC
Marco Felsch (1):
dt-bindings: arm: imx: add kontron smarc to schema
Marek Behún (4):
arm64: dts: marvell: armada-37xx: Set pcie_reset_pin to gpio function
arm64: dts: marvell: armada-37xx: Move PCIe comphy handle property
arm64: dts: armada-3720-turris-mox: forbid SDR104 on SDIO for FCC purposes
arm64: dts: armada-3720-turris-mox: fix SFP binding
Marek Szyprowski (9):
ARM: dts: exynos: Enable Bluetooth support for Rinato board
ARM: dts: exynos: Enable WLAN support for the Trats board
ARM: dts: exynos: Fix GPIO polarity for thr GalaxyS3 CM36651 sensor's bus
ARM: dts: exynos: Convert to new i2c-gpio bindings
ARM: dts: exynos: Correct regulator names
ARM: dts: exynos: Correct the MAX8997 interrupts on the Trats board
ARM: dts: exynos: Remove useless address/size cells for mshc_0 on Rinato
ARM: dts: exynos: Enable WLAN support for the Rinato board
ARM: dts: exynos: Enable WLAN support for the UniversalC210 board
Marek Vasut (36):
ARM: dts: imx6q-dhcom: Add DH 560-200 display unit support
ARM: dts: stm32: Enable I2C2 on DHCOM PDK2 carrier board
ARM: dts: stm32: Repair PMIC configuration on AV96
ARM: dts: stm32: Repair PMIC interrupt on AV96
ARM: dts: stm32: Add alternate pinmux for ethernet RGMII on stm32mp15
ARM: dts: stm32: Repair ethernet operation on AV96
ARM: dts: stm32: Add missing ethernet PHY reset on AV96
ARM: dts: stm32: Add missing ethernet PHY skews on AV96
ARM: dts: stm32: Add alternate pinmux for SDMMC pins on stm32mp15
ARM: dts: stm32: Repair SDMMC1 operation on AV96
ARM: dts: stm32: Add eMMC attached to SDMMC2 on AV96
ARM: dts: stm32: Add QSPI NOR on AV96
ARM: dts: stm32: Add configuration EEPROM on AV96
ARM: dts: stm32: Enable WiFi on AV96
ARM: dts: stm32: Add alternate pinmux for USART2 pins on stm32mp15
ARM: dts: stm32: Enable Bluetooth on AV96
ARM: dts: stm32: Add alternate pinmux for LTDC pins on stm32mp15
ARM: dts: stm32: Add bindings for HDMI video on AV96
ARM: dts: stm32: Add alternate pinmux for SAI2 pins on stm32mp15
ARM: dts: stm32: Add bindings for audio on AV96
ARM: dts: stm32: Add bindings for USB on AV96
ARM: dts: stm32: Rename LEDs to match silkscreen on AV96
ARM: dts: stm32: Add alternate pinmux for I2C2 pins
ARM: dts: stm32: Repair I2C2 operation on AV96
ARM: dts: stm32: Add alternate pinmux for FDCAN1 pins
ARM: dts: stm32: Add bindings for FDCAN1 on AV96
ARM: dts: stm32: Add alternate pinmux for FDCAN2 pins
ARM: dts: stm32: Add bindings for FDCAN2 on AV96
ARM: dts: stm32: Add alternate pinmux for ADC pins
ARM: dts: stm32: Add bindings for ADC on AV96
ARM: dts: stm32: Add alternate pinmux for SPI2 pins
ARM: dts: stm32: Add bindings for SPI2 on AV96
ARM: dts: stm32: Add GPIO keys for STM32MP1 DHCOM PDK2
ARM: dts: stm32: Add GPIO LEDs for STM32MP1 DHCOM PDK2
ARM: dts: stm32: Split SoC-independent parts of DHCOM SOM and PDK2
ARM: dts: stm32: Split Avenger96 into DHCOR SoM and Avenger96 board
Martin Blumenstingl (5):
arm64: dts: amlogic: use the new USB control driver for GXL and GXM
ARM: dts: meson: add the gadget mode properties to the USB0 controller
ARM: dts: meson8m2: Use the Meson8m2 specific USB2 PHY compatible
ARM: dts: meson: Add the Ethernet "timing-adjustment" clock
ARM: dts: meson: Switch existing boards with RGMII PHY to "rgmii-id"
Masahiro Yamada (2):
ARM: dts: uniphier: add #address-cells and #size-cells to SPI nodes
arm64: dts: uniphier: add #address-cells and #size-cells to SPI nodes
Masami Hiramatsu (2):
dt-bindings: arm: Add Akebi96 board support
arm64: dts: uniphier: Add support for Akebi96
Matt Porter (1):
arm64: dts: imx8mm: specify #sound-dai-cells for SAI nodes
Matthew Barth (2):
ARM: dts: aspeed: rainier: Set PCA9552 pin types
ARM: dts: aspeed: rainier: Remove regulators
Matthias Brugger (1):
arm64: dts: mt6797: Fix mmsys node name
Matthias Kaehlcke (1):
arm64: dts: qcom: sc7180: Add interconnect paths for the video codec
Maulik Shah (2):
arm64: dts: qcom: sc7180: Add cpuidle low power states
arm64: dts: qcom: sc7180: Correct the pdc interrupt ranges
Maxime Ripard (1):
arm64: dts: allwinner: h6: Add IOMMU
Michael Kao (1):
arm64: dts: mt8173: fix cooling device range
Michael Srba (2):
arm64: dts: qcom: msm8916: Disable coresight by default
arm64: dts: qcom: msm8916-samsung-a3u: add nodes for display panel
Michael Walle (2):
arm64: dts: freescale: sl28: enable LPUART1
arm64: dts: ls1028a: sl28: keep switch port names consistent
Michal Simek (1):
arm64: zynqmp: Fix GIC compatible property
Mike Leach (2):
arm64: dts: qcom: msm8916: Add CTI options
arm64: dts: hi6220: Add CTI options
Min Guo (1):
arm: dts: mt2701: Add usb2 device nodes
Nagarjuna Kristam (1):
arm64: tegra: Add XUDC node on Tegra194
Neil Armstrong (7):
arm64: dts: meson: fixup SCP sram nodes
arm64: dts: meson-g12b-ugoos-am6: fix board compatible
arm64: dts: meson-gxbb-kii-pro: fix board compatible
arm64: dts: meson: fix leds subnodes name
arm64: dts: meson-g12b: move G12B thermal nodes to meson-g12b.dtsi
arm64: dts: meson-sm1: add cpu thermal nodes
dt-bindings: arm: amlogic: add odroid-c4 bindings
Nick Reitemeyer (1):
ARM: dts: ux500: samsung-golden: Add magnetometer
Nicolas Saenz Julienne (3):
ARM: dts: bcm2711: Update expgpio's GPIO labels
ARM: dts: bcm2711: Add vmmc regulator in emmc2
ARM: dts: bcm283x: Use firmware PM driver for V3D
Ondrej Jirman (3):
arm64: dts: allwinner: h6: Add thermal trip points/cooling map
arm64: dts: allwinner: h6: Add CPU Operating Performance Points table
arm64: dts: allwinner: sun50i-a64: Add missing address/size-cells
Pali Rohár (1):
arm64: dts: marvell: armada-37xx: Move PCIe max-link-speed property
Pascal Paillet (1):
ARM: dts: stm32: Enable thermal sensor support on stm32mp15xx-dkx
Paul Cercueil (1):
dt-bindings: arm: samsung: Add compatible string for the Galaxy S2
Pawel Dembicki (1):
ARM: dts: kirkwood: Add Check Point L-50 board
Paweł Chmiel (1):
ARM: dts: s5pv210: Add si470x FM radio to Galaxy S
Peng Fan (2):
arm64: dts: imx8qxp: support scu mailbox channel
arm64: dts: imx8m: assign clocks for A53
Petr Štetiar (1):
arm64: dts: allwinner: a64: olinuxino: add user red LED
Qiang Yu (1):
ARM: dts: sun8i-h3: add opp table for mali gpu
Rajendra Nayak (1):
arm64: dts: qcom: db820c: Add vdd_gfx and tie it into mmcc
Rajeshwari (1):
arm64: dts: qcom: sc7180: Changed polling mode in Thermal-zones node
Ricardo Cañuelo (1):
ARM: dts: imx53-cx9020: Group port definitions for the dvi-converter
Rob Herring (2):
ARM: tegra: Kill off "simple-panel" compatibles
arm64: tegra: Kill off "simple-panel" compatibles
Robert Foss (3):
arm64: dts: qcom: sdm845: Add i2c-qcom-cci node
arm64: dts: qcom: sdm845-db845c: Add pm_8998 gpio names
arm64: dts: qcom: sdm845-db845c: Add ov8856 & ov7251 camera nodes
Russell King (3):
ARM: dts: imx6-sr-som: add ethernet PHY configuration
arm64: dts: update SolidRun Armada 8040 phy interface types
arm64: dts: add uDPU i2c bus recovery
Ryder Lee (2):
arm64: dts: mt7622: add built-in Wi-Fi device nodes
arm: dts: mt7623: add Mali-450 device node
Sai Prakash Ranjan (2):
arm64: dts: qcom: sc7180: Add Coresight support
arm64: dts: qcom: sc7180: Support ETMv4 power management
Samuel Holland (4):
ARM: dts: sunxi: a83t: Add msgbox node
ARM: dts: sunxi: h3/h5: Add msgbox node
arm64: dts: allwinner: a64: Add msgbox node
arm64: dts: allwinner: h6: Add msgbox node
Sandeep Maheswaram (3):
arm64: dts: qcom: sdm845: Add generic QUSB2 V2 Phy compatible
arm64: dts: qcom: sc7180: Add generic QUSB2 V2 Phy compatible
arm64: dts: qcom: sc7180: Update QUSB2 V2 Phy params for SC7180 IDP device
Sean Wang (2):
arm: dts: mt7623: add phy-mode property for gmac2
dt-bindings: gpu: mali-utgard: add mediatek, mt7623-mali compatible
Sebastian Meyer (1):
arm64: allwinner: h6: orangepi-lite2: Support BT+WIFI combo module
Sharat Masetty (2):
dt-bindings: arm-smmu: Add sc7180 compatible string
arm64: dts: qcom: sc7180: Add A618 gpu dt blob
Sibi Sankar (4):
arm64: dts: qcom: sdm845: Add SoC compatible to MTP
arm64: dts: qcom: sc7180: Update reserved memory map
arm64: dts: qcom: sc7180: Add Q6V5 MSS node
arm64: dts: qcom: sc7180: Update Q6V5 MSS node
Sivaprakash Murugesan (1):
arm64: dts: ipq8074: qcom: Re-arrange dts nodes based on address
Sowjanya Komatineni (6):
dt-bindings: clock: tegra: Remove PMC clock IDs
dt-bindings: clock: tegra: Add clock ID for CSI TPG clock
dt-bindings: tegra: Add VI and CSI bindings
arm64: tegra: Fix SOR powergate clocks and reset
arm64: tegra: Add reset-cells to memory controller
arm64: tegra: Add Tegra VI CSI support in device tree
Stefan Mavrodiev (2):
dt-bindings: arm: sunxi: Add compatible for A20-OLinuXino-LIME-eMMC
ARM: dts: sun7i: Add A20-OLinuXino-LIME-eMMC
Steffen Trumtrar (3):
ARM: dts: socfgpa: set bridges status to disabled
ARM: dts: socfpga: Add fpga2hps and fpga2sdram bridges
ARM: dts: imx7d-pinfunc: add input mux for ENET2 mdio
Stenkin Evgeniy (1):
ARM: dts: exynos: Add devicetree file for the Galaxy S2
Stephan Gerhold (8):
ARM: dts: ux500: samsung-golden: Add proximity sensor
arm64: dts: qcom: msm8916: Add blsp_i2c1
arm64: dts: qcom: msm8916: Add blsp_i2c5
arm64: dts: qcom: msm8916-samsung-a2015: Add touchscreen regulator
arm64: dts: qcom: msm8916-samsung-a5u: Add touchscreen
arm64: dts: qcom: msm8916: avoid using _ in node names
arm64: dts: qcom: msm8916: move gpu opp table to gpu node
arm64: dts: qcom: apq8016-sbc: merge -pins.dtsi into main .dtsi
Suman Anna (16):
ARM: dts: DRA7: Add common IPU and DSP nodes
ARM: dts: DRA74x: Add DSP2 processor device node
ARM: dts: DRA74x: Add aliases for rproc nodes
ARM: dts: DRA72x: Add aliases for rproc nodes
ARM: dts: dra7-ipu-dsp-common: Move mailboxes into common files
ARM: dts: dra7-ipu-dsp-common: Add mailboxes to IPU and DSP nodes
ARM: dts: dra7-ipu-dsp-common: Add timers to IPU and DSP nodes
ARM: dts: dra7-evm: Add CMA pools and enable IPU & DSP rprocs
ARM: dts: dra72-evm: Add CMA pools and enable IPUs & DSP1 rprocs
ARM: dts: dra72-evm-revc: Add CMA pools and enable IPUs & DSP1 rprocs
ARM: dts: dra71-evm: Add CMA pools and enable IPUs & DSP1 rprocs
ARM: dts: dra76-evm: Add CMA pools and enable IPU & DSP rprocs
ARM: dts: beagle-x15-common: Add CMA pools and enable IPU & DSP rprocs
ARM: dts: am572x-idk-common: Add CMA pools and enable IPU & DSP rprocs
ARM: dts: am571x-idk: Add CMA pools and enable IPUs & DSP1 rprocs
ARM: dts: dra7-ipu-dsp-common: Add watchdog timers to IPU and DSP nodes
Tero Kristo (8):
arm64: dts: ti: k3-j721e-main: Add main domain watchdog entries
ARM: dts: dra7: add timer_sys_ck entries for IPU/DSP timers
ARM: dts: omap5: add aes1 entry
ARM: dts: omap5: add aes2 entry
ARM: dts: omap5: add SHA crypto accelerator node
ARM: dts: omap5: add DES crypto accelerator node
ARM: OMAP4: Make L4SEC clock domain SWSUP only
ARM: OMAP5: Make L4SEC clock domain SWSUP only
Thierry Reding (5):
dt-bindings: i2c: tegra: Document Tegra210 VI I2C
Merge branch 'for-5.8/dt-bindings' into for-5.8/arm64/dt
arm64: tegra: Hook up EMC cooling device
arm64: tegra: Enable VI I2C on Jetson Nano
arm64: tegra: Make the RTC a wakeup source on Jetson TX2
Tim Harvey (5):
ARM: dts: imx6qdl-gw552x: add USB OTG support
ARM: dts: imx6qdl-gw560x: add lsm9ds1 iio imu/magn support
ARM: dts: imx6qdl-gw5904: add lsm9ds1 iio imu/magn support
ARM: dts: imx6qdl-gw5910: add support for bcm4330-bt
ARM: dts: imx6qdl-gw5910: fix wlan regulator
Tim Lewis (1):
arm64: dts: meson: S922X: extend cpu opp-points
Tobias Schramm (1):
arm64: dts: rockchip: add micro SD card regulator to rockpro64
Tomi Valkeinen (3):
ARM: dts: am57xx-idk-common: add tc358778 bridge
arm64: dts: ti: k3-j721e-main: Add DSS node
arm64: dts: ti: k3-j721e-common-proc-board: add assigned clks for DSS
Tony Lindgren (1):
Merge branch 'omap-for-v5.8/dt-timer' into omap-for-v5.8/dt
Tudor Ambarus (20):
ARM: dts: at91: sam9x60ek: Use quad mode in the spi-nor flash
ARM: dts: at91: sam9x60ek: Add sdmmc1 node
ARM: dts: at91: sama5d27_wlsom1: Add alias for i2c0
ARM: dts: at91: sama5d2: Fix the label numbering for flexcom functions
ARM: dts: at91: sama5d2: Move flx4 definitions in the SoC dtsi
ARM: dts: at91: sama5d2: Move flx3 definitions in the SoC dtsi
ARM: dts: at91: sama5d2: Move flx2 definitions in the SoC dtsi
ARM: dts: at91: sama5d2: Move flx1 definitions in the SoC dtsi
ARM: dts: at91: sama5d2: Move flx0 definitions in the SoC dtsi
ARM: dts: at91: sama5d2: Specify the FIFO size for the Flexcom UART
ARM: dts: at91: sama5d2: Add DMA bindings for the SPI and UART
flx4 functions
ARM: dts: at91: sama5d2: Add DMA bindings for the flx3 SPI function
ARM: dts: at91: sama5d2: Add DMA bindings for the flx1 I2C function
ARM: dts: at91: sama5d2: Add DMA bindings for the SPI and I2C
flx0 functions
ARM: dts: at91: sama5d2: Remove i2s and tcb aliases from SoC dtsi
ARM: dts: at91: sama5d2: Add missing flexcom definitions
ARM: dts: at91: sama5d2_xplained: Add alias for DBGU
ARM: dts: at91: sama5d2_ptc_ek: Add comments to describe the aliases
ARM: dts: at91: sama5d2_xplained: Describe the flx0 I2C function
ARM: dts: at91: sama5d2_xplained: Add aliases for the dedicated I2C IPs
Ulf Hansson (2):
arm64: dts: qcom: msm8916: Conform to the domain-idle-state binding
arm64: dts: qcom: msm8916: Conform to the nodename pattern PSCI subnodes
Ulrich Hecht (1):
arm64: dts: mt8173: Add capacity-dmips-mhz attributes
Vidya Sagar (1):
arm64: tegra: Fix flag for 64-bit resources in 'ranges' property
Vignesh Raghavendra (1):
arm64: dts: ti: k3-am65-main: Add ehrpwm nodes
Vijay Khemka (2):
ARM: dts: aspeed: tiogapass: Add IPMB device
ARM: dts: aspeed: tiogapass: Add gpio line names
Vincent Stehlé (1):
ARM: dts: sun8i-h2-plus-bananapi-m2-zero: Fix led polarity
Vladimir Oltean (1):
arm64: dts: ls1028a: Specify the DMA channels for the DSPI controllers
Yangbo Lu (2):
arm64: dts: fsl: add fsl,extts-fifo property for fman ptp
arm64: dts: ls1043a-rdb: add compatible for board
Yangtao Li (1):
arm64: dts: allwinner: h6: Add clock to CPU cores
Yann Gautier (1):
ARM: dts: stm32: add sd-uhs properties in SD-card node for stm32mp157c-ed1
Yoshihiro Shimoda (6):
arm64: dts: renesas: r8a77961: Add USB2.0 device nodes
arm64: dts: renesas: r8a77961: Add USB3.0 device nodes
arm64: dts: renesas: r8a77961: Add PWM device nodes
arm64: dts: renesas: r8a77961: Add PCIe device nodes
ARM: dts: renesas: Fix IOMMU device node names
arm64: dts: renesas: Fix IOMMU device node names
Yuantian Tang (1):
arm64: dts: lx2160a: add more thermal zone support
Zhao Qiang (2):
arm64: dts: add qe node to ls1043ardb
arm64: dts: Add ds26522 node to dts to ls1043ardb
jjian zhou (1):
arm64: dts: mt8183: add mmc node
Documentation/devicetree/bindings/arm/amlogic.yaml | 4 +
.../devicetree/bindings/arm/atmel-at91.yaml | 7 +
Documentation/devicetree/bindings/arm/cpus.yaml | 1 +
Documentation/devicetree/bindings/arm/fsl.yaml | 4 +
.../devicetree/bindings/arm/mediatek.yaml | 22 +
Documentation/devicetree/bindings/arm/qcom.yaml | 7 +
Documentation/devicetree/bindings/arm/realtek.yaml | 21 +
Documentation/devicetree/bindings/arm/renesas.yaml | 10 +
.../devicetree/bindings/arm/rockchip.yaml | 5 +
.../bindings/arm/samsung/samsung-boards.yaml | 1 +
.../bindings/arm/socionext/uniphier.yaml | 1 +
.../devicetree/bindings/arm/stm32/stm32.yaml | 3 +
Documentation/devicetree/bindings/arm/sunxi.yaml | 5 +
.../bindings/cpufreq/nvidia,tegra20-cpufreq.txt | 56 +
.../display/tegra/nvidia,tegra20-host1x.txt | 73 +-
.../devicetree/bindings/gpu/arm,mali-utgard.yaml | 2 +
.../devicetree/bindings/i2c/i2c-mt65xx.txt | 1 +
.../devicetree/bindings/i2c/nvidia,tegra20-i2c.txt | 6 +
.../devicetree/bindings/iommu/arm,smmu.yaml | 1 +
.../memory-controllers/nvidia,tegra210-emc.yaml | 82 ++
.../bindings/power/renesas,rcar-sysc.yaml | 1 +
.../devicetree/bindings/reset/renesas,rst.yaml | 1 +
.../devicetree/bindings/vendor-prefixes.yaml | 8 +
arch/arm/boot/dts/Makefile | 19 +-
arch/arm/boot/dts/am335x-guardian.dts | 1 +
arch/arm/boot/dts/am3517-evm.dts | 1 +
arch/arm/boot/dts/am571x-idk.dts | 48 +-
arch/arm/boot/dts/am5729-beagleboneai.dts | 731 ++++++++++++
arch/arm/boot/dts/am572x-idk-common.dtsi | 63 +-
arch/arm/boot/dts/am57xx-beagle-x15-common.dtsi | 63 +-
arch/arm/boot/dts/am57xx-idk-common.dtsi | 58 +
arch/arm/boot/dts/armada-370-xp.dtsi | 2 -
arch/arm/boot/dts/armada-375.dtsi | 2 -
arch/arm/boot/dts/armada-38x.dtsi | 2 -
arch/arm/boot/dts/armada-39x.dtsi | 4 -
arch/arm/boot/dts/aspeed-ast2600-evb.dts | 4 +
.../arm/boot/dts/aspeed-bmc-facebook-tiogapass.dts | 78 +-
.../boot/dts/aspeed-bmc-facebook-yosemitev2.dts | 231 ++++
arch/arm/boot/dts/aspeed-bmc-ibm-rainier.dts | 202 +++-
arch/arm/boot/dts/aspeed-bmc-opp-mihawk.dts | 310 +++++-
arch/arm/boot/dts/aspeed-bmc-opp-nicole.dts | 326 ++++++
arch/arm/boot/dts/aspeed-bmc-opp-romulus.dts | 35 +-
arch/arm/boot/dts/aspeed-bmc-opp-tacoma.dts | 112 ++
arch/arm/boot/dts/aspeed-bmc-opp-witherspoon.dts | 34 +
arch/arm/boot/dts/aspeed-bmc-opp-zaius.dts | 37 +-
arch/arm/boot/dts/aspeed-g4.dtsi | 10 +
arch/arm/boot/dts/aspeed-g5.dtsi | 43 +-
arch/arm/boot/dts/aspeed-g6.dtsi | 64 +-
arch/arm/boot/dts/at91-dvk_su60_somc.dtsi | 2 +-
arch/arm/boot/dts/at91-kizbox3-hs.dts | 4 +-
arch/arm/boot/dts/at91-kizbox3_common.dtsi | 48 +-
arch/arm/boot/dts/at91-sam9x60ek.dts | 23 +
arch/arm/boot/dts/at91-sama5d27_som1.dtsi | 54 +
arch/arm/boot/dts/at91-sama5d27_som1_ek.dts | 64 +-
arch/arm/boot/dts/at91-sama5d27_wlsom1.dtsi | 16 +-
arch/arm/boot/dts/at91-sama5d27_wlsom1_ek.dts | 12 -
arch/arm/boot/dts/at91-sama5d2_icp.dts | 767 +++++++++++++
arch/arm/boot/dts/at91-sama5d2_ptc_ek.dts | 25 +-
arch/arm/boot/dts/at91-sama5d2_xplained.dts | 118 +-
arch/arm/boot/dts/at91-wb50n.dtsi | 4 -
arch/arm/boot/dts/at91rm9200.dtsi | 296 +----
arch/arm/boot/dts/at91sam9g45.dtsi | 338 +-----
arch/arm/boot/dts/at91sam9m10g45ek.dts | 4 +-
arch/arm/boot/dts/at91sam9n12.dtsi | 324 +-----
arch/arm/boot/dts/at91sam9n12ek.dts | 2 +-
arch/arm/boot/dts/bcm2711-rpi-4-b.dts | 13 +-
arch/arm/boot/dts/bcm2835-common.dtsi | 1 -
arch/arm/boot/dts/bcm2835-rpi-common.dtsi | 12 +
arch/arm/boot/dts/bcm2835.dtsi | 1 +
arch/arm/boot/dts/bcm2836.dtsi | 1 +
arch/arm/boot/dts/bcm2837.dtsi | 1 +
arch/arm/boot/dts/berlin2.dtsi | 6 +-
arch/arm/boot/dts/berlin2cd.dtsi | 2 +-
arch/arm/boot/dts/berlin2q.dtsi | 6 +-
arch/arm/boot/dts/dove.dtsi | 3 +-
arch/arm/boot/dts/dra7-evm-common.dtsi | 1 +
arch/arm/boot/dts/dra7-evm.dts | 54 +
arch/arm/boot/dts/dra7-ipu-dsp-common.dtsi | 39 +
arch/arm/boot/dts/dra7-l4.dtsi | 50 +-
arch/arm/boot/dts/dra7.dtsi | 36 +
arch/arm/boot/dts/dra71-evm.dts | 42 +
arch/arm/boot/dts/dra72-evm-common.dtsi | 18 +-
arch/arm/boot/dts/dra72-evm-revc.dts | 42 +
arch/arm/boot/dts/dra72-evm.dts | 42 +
arch/arm/boot/dts/dra72x.dtsi | 6 +
arch/arm/boot/dts/dra74-ipu-dsp-common.dtsi | 18 +
arch/arm/boot/dts/dra74x.dtsi | 21 +
arch/arm/boot/dts/dra76-evm.dts | 54 +
arch/arm/boot/dts/e60k02.dtsi | 2 +
arch/arm/boot/dts/exynos3250-monk.dts | 3 +-
arch/arm/boot/dts/exynos3250-rinato.dts | 48 +-
arch/arm/boot/dts/exynos4210-i9100.dts | 768 +++++++++++++
arch/arm/boot/dts/exynos4210-origen.dts | 7 +-
arch/arm/boot/dts/exynos4210-trats.dts | 41 +-
arch/arm/boot/dts/exynos4210-universal_c210.dts | 33 +-
arch/arm/boot/dts/exynos4412-galaxy-s3.dtsi | 6 +-
arch/arm/boot/dts/exynos4412-midas.dtsi | 17 +-
arch/arm/boot/dts/exynos4412-odroid-common.dtsi | 8 +-
arch/arm/boot/dts/exynos4412-origen.dts | 14 +-
arch/arm/boot/dts/exynos5250-arndale.dts | 13 +-
arch/arm/boot/dts/exynos5420-arndale-octa.dts | 2 +-
arch/arm/boot/dts/imx50.dtsi | 8 +-
arch/arm/boot/dts/imx51.dtsi | 3 +-
arch/arm/boot/dts/imx53-cx9020.dts | 25 +-
arch/arm/boot/dts/imx53.dtsi | 3 +-
arch/arm/boot/dts/imx6dl-colibri-v1_1-eval-v3.dts | 31 +
arch/arm/boot/dts/imx6q-dhcom-pdk2.dts | 115 +-
arch/arm/boot/dts/imx6qdl-colibri-v1_1-uhs.dtsi | 44 +
arch/arm/boot/dts/imx6qdl-colibri.dtsi | 11 +-
arch/arm/boot/dts/imx6qdl-gw552x.dtsi | 14 +
arch/arm/boot/dts/imx6qdl-gw560x.dtsi | 31 +
arch/arm/boot/dts/imx6qdl-gw5904.dtsi | 31 +
arch/arm/boot/dts/imx6qdl-gw5910.dtsi | 35 +-
arch/arm/boot/dts/imx6qdl-sr-som.dtsi | 11 +
arch/arm/boot/dts/imx6qdl.dtsi | 13 +-
arch/arm/boot/dts/imx6sl.dtsi | 13 +-
arch/arm/boot/dts/imx6sx.dtsi | 2 +-
arch/arm/boot/dts/imx6ul.dtsi | 2 +-
arch/arm/boot/dts/imx7-tqma7.dtsi | 2 +-
arch/arm/boot/dts/imx7d-cl-som-imx7.dts | 4 +
arch/arm/boot/dts/imx7d-colibri.dtsi | 4 +
arch/arm/boot/dts/imx7d-nitrogen7.dts | 4 +
arch/arm/boot/dts/imx7d-pinfunc.h | 2 +-
arch/arm/boot/dts/imx7d-sdb.dts | 4 +
arch/arm/boot/dts/imx7d-tqma7.dtsi | 4 +
arch/arm/boot/dts/imx7d-zii-rmu2.dts | 2 +-
arch/arm/boot/dts/imx7d-zii-rpu2.dts | 2 +-
arch/arm/boot/dts/imx7s.dtsi | 2 +-
arch/arm/boot/dts/integratorap-im-pd1.dts | 270 +++++
arch/arm/boot/dts/integratorap.dts | 53 +-
arch/arm/boot/dts/keystone-k2e.dtsi | 4 +-
arch/arm/boot/dts/keystone-k2g-evm.dts | 101 ++
arch/arm/boot/dts/keystone-k2g.dtsi | 26 +-
arch/arm/boot/dts/keystone-k2hk.dtsi | 4 +-
arch/arm/boot/dts/keystone-k2l.dtsi | 4 +-
arch/arm/boot/dts/kirkwood-l-50.dts | 438 ++++++++
.../boot/dts/kirkwood-netgear_readynas_nv+_v2.dts | 14 +
arch/arm/boot/dts/kirkwood.dtsi | 2 +-
arch/arm/boot/dts/logicpd-torpedo-baseboard.dtsi | 1 +
arch/arm/boot/dts/ls1021a-twr.dts | 14 +
arch/arm/boot/dts/meson.dtsi | 3 +
arch/arm/boot/dts/meson8b-odroidc1.dts | 3 +-
arch/arm/boot/dts/meson8b.dtsi | 5 +-
arch/arm/boot/dts/meson8m2-mxiii-plus.dts | 4 +-
arch/arm/boot/dts/meson8m2.dtsi | 13 +-
arch/arm/boot/dts/mmp2.dtsi | 2 +-
arch/arm/boot/dts/mmp3-dell-ariel.dts | 12 +-
arch/arm/boot/dts/mmp3.dtsi | 34 +-
arch/arm/boot/dts/mt2701-evb.dts | 21 +
arch/arm/boot/dts/mt2701.dtsi | 33 +
arch/arm/boot/dts/mt7623.dtsi | 25 +
arch/arm/boot/dts/mt7623n-rfb-emmc.dts | 1 +
arch/arm/boot/dts/omap3-gta04.dtsi | 1 +
arch/arm/boot/dts/omap5-l4.dtsi | 31 +
arch/arm/boot/dts/omap5.dtsi | 86 ++
arch/arm/boot/dts/pxa168.dtsi | 8 +-
arch/arm/boot/dts/pxa3xx.dtsi | 2 +-
arch/arm/boot/dts/pxa910.dtsi | 4 +-
arch/arm/boot/dts/qcom-ipq4019.dtsi | 1 +
arch/arm/boot/dts/qcom-ipq8064.dtsi | 6 +
arch/arm/boot/dts/qcom-msm8974-samsung-klte.dts | 405 ++++++-
arch/arm/boot/dts/qcom-msm8974.dtsi | 11 +
arch/arm/boot/dts/r8a7740.dtsi | 2 +-
arch/arm/boot/dts/r8a7742-iwg21d-q7.dts | 37 +
arch/arm/boot/dts/r8a7742-iwg21m.dtsi | 53 +
arch/arm/boot/dts/r8a7742.dtsi | 648 +++++++++++
arch/arm/boot/dts/r8a7743.dtsi | 12 +-
arch/arm/boot/dts/r8a7744.dtsi | 12 +-
arch/arm/boot/dts/r8a7745.dtsi | 12 +-
arch/arm/boot/dts/r8a7790.dtsi | 12 +-
arch/arm/boot/dts/r8a7791.dtsi | 95 +-
arch/arm/boot/dts/r8a7793.dtsi | 14 +-
arch/arm/boot/dts/r8a7794.dtsi | 12 +-
arch/arm/boot/dts/rk3036-kylin.dts | 2 +-
arch/arm/boot/dts/rk3066a-mk808.dts | 2 +-
arch/arm/boot/dts/rk3188-radxarock.dts | 6 +-
arch/arm/boot/dts/rk3229-xms6.dts | 19 +-
arch/arm/boot/dts/rk322x.dtsi | 10 +
arch/arm/boot/dts/rk3288-firefly-reload.dts | 12 +-
arch/arm/boot/dts/rk3288-firefly.dtsi | 12 +-
arch/arm/boot/dts/rk3288-miqi.dts | 2 +-
arch/arm/boot/dts/rk3288-phycore-som.dtsi | 6 +-
arch/arm/boot/dts/rk3288-rock2-square.dts | 4 +-
arch/arm/boot/dts/rk3288-tinker.dtsi | 6 +-
arch/arm/boot/dts/rk3288.dtsi | 1 -
arch/arm/boot/dts/rtd1195-horseradish.dts | 32 +
arch/arm/boot/dts/rtd1195-mele-x1000.dts | 32 +
arch/arm/boot/dts/rtd1195.dtsi | 217 ++++
arch/arm/boot/dts/s5pv210-aries.dtsi | 359 +++++-
arch/arm/boot/dts/s5pv210-fascinate4g.dts | 249 +++++
arch/arm/boot/dts/s5pv210-galaxys.dts | 292 +++++
arch/arm/boot/dts/s5pv210-pinctrl.dtsi | 9 +-
arch/arm/boot/dts/s5pv210.dtsi | 23 +-
arch/arm/boot/dts/sama5d2.dtsi | 295 ++++-
arch/arm/boot/dts/sama5d3.dtsi | 430 +------
arch/arm/boot/dts/sama5d3_can.dtsi | 20 +-
arch/arm/boot/dts/sama5d3_emac.dtsi | 8 +-
arch/arm/boot/dts/sama5d3_gmac.dtsi | 11 +-
arch/arm/boot/dts/sama5d3_lcd.dtsi | 19 +-
arch/arm/boot/dts/sama5d3_mci2.dtsi | 11 +-
arch/arm/boot/dts/sama5d3_tcb1.dtsi | 12 +-
arch/arm/boot/dts/sama5d3_uart.dtsi | 20 +-
arch/arm/boot/dts/sama5d3xmb.dtsi | 6 +-
arch/arm/boot/dts/sama5d3xmb_cmp.dtsi | 6 +-
arch/arm/boot/dts/sama5d4.dtsi | 6 +-
arch/arm/boot/dts/sh73a0.dtsi | 2 +-
arch/arm/boot/dts/socfpga.dtsi | 16 +
arch/arm/boot/dts/ste-ux500-samsung-golden.dts | 65 ++
arch/arm/boot/dts/ste-ux500-samsung-skomer.dts | 39 +-
arch/arm/boot/dts/stih407-family.dtsi | 14 -
arch/arm/boot/dts/stih418.dtsi | 8 +-
arch/arm/boot/dts/stm32f429.dtsi | 4 +-
arch/arm/boot/dts/stm32h743.dtsi | 4 +-
arch/arm/boot/dts/stm32mp15-pinctrl.dtsi | 666 ++++++++++-
arch/arm/boot/dts/stm32mp151.dtsi | 37 +-
arch/arm/boot/dts/stm32mp157.dtsi | 8 +-
arch/arm/boot/dts/stm32mp157a-avenger96.dts | 314 +-----
arch/arm/boot/dts/stm32mp157a-dhcor-avenger96.dts | 38 +
arch/arm/boot/dts/stm32mp157a-iot-box.dts | 68 ++
arch/arm/boot/dts/stm32mp157a-stinger96.dts | 12 +
arch/arm/boot/dts/stm32mp157a-stinger96.dtsi | 342 ++++++
arch/arm/boot/dts/stm32mp157c-dhcom-pdk2.dts | 265 +----
arch/arm/boot/dts/stm32mp157c-dk2.dts | 8 -
arch/arm/boot/dts/stm32mp157c-ed1.dts | 7 +-
arch/arm/boot/dts/stm32mp157c-ev1.dts | 14 +-
arch/arm/boot/dts/stm32mp157c-lxa-mc1.dts | 252 +++++
arch/arm/boot/dts/stm32mp15xx-dhcom-pdk2.dtsi | 337 ++++++
...c-dhcom-som.dtsi => stm32mp15xx-dhcom-som.dtsi} | 9 +-
arch/arm/boot/dts/stm32mp15xx-dhcor-avenger96.dtsi | 401 +++++++
arch/arm/boot/dts/stm32mp15xx-dhcor-io1v8.dtsi | 23 +
arch/arm/boot/dts/stm32mp15xx-dhcor-som.dtsi | 209 ++++
arch/arm/boot/dts/stm32mp15xx-dkx.dtsi | 20 +-
arch/arm/boot/dts/stm32mp15xx-osd32.dtsi | 230 ++++
.../arm/boot/dts/sun7i-a20-olinuxino-lime-emmc.dts | 32 +
arch/arm/boot/dts/sun8i-a83t.dtsi | 10 +
.../boot/dts/sun8i-h2-plus-bananapi-m2-zero.dts | 2 +-
arch/arm/boot/dts/sun8i-h3.dtsi | 24 +-
arch/arm/boot/dts/sunxi-h3-h5.dtsi | 10 +
arch/arm/boot/dts/tegra114-dalmore.dts | 3 +-
arch/arm/boot/dts/tegra124-venice2.dts | 2 +-
arch/arm/boot/dts/tegra20-colibri-eval-v3.dts | 2 +-
arch/arm/boot/dts/tegra20-colibri-iris.dts | 2 +-
arch/arm/boot/dts/tegra20-harmony.dts | 2 +-
arch/arm/boot/dts/tegra20-medcom-wide.dts | 2 +-
arch/arm/boot/dts/tegra20-paz00.dts | 2 +-
arch/arm/boot/dts/tegra20-seaboard.dts | 2 +-
arch/arm/boot/dts/tegra20-ventana.dts | 2 +-
arch/arm/boot/dts/tegra30-apalis-eval.dts | 2 +-
arch/arm/boot/dts/tegra30-apalis-v1.1-eval.dts | 2 +-
arch/arm/boot/dts/tegra30-beaver.dts | 40 +-
arch/arm/boot/dts/tegra30-cardhu.dtsi | 2 +-
arch/arm/boot/dts/tegra30-colibri-eval-v3.dts | 2 +-
arch/arm/boot/dts/uniphier-ld4.dtsi | 2 +
arch/arm/boot/dts/uniphier-ld6b-ref.dts | 1 +
arch/arm/boot/dts/uniphier-pro4-ace.dts | 1 +
arch/arm/boot/dts/uniphier-pro4-ref.dts | 1 +
arch/arm/boot/dts/uniphier-pro4-sanji.dts | 1 +
arch/arm/boot/dts/uniphier-pro4.dtsi | 10 +
arch/arm/boot/dts/uniphier-pro5.dtsi | 12 +
arch/arm/boot/dts/uniphier-pxs2-gentil.dts | 1 +
arch/arm/boot/dts/uniphier-pxs2-vodka.dts | 1 +
arch/arm/boot/dts/uniphier-pxs2.dtsi | 12 +
arch/arm/boot/dts/uniphier-sld8.dtsi | 2 +
arch/arm/boot/dts/vexpress-v2m-rs1.dtsi | 328 +++---
arch/arm/mach-omap2/clockdomains44xx_data.c | 2 +-
arch/arm/mach-omap2/clockdomains54xx_data.c | 2 +-
.../boot/dts/allwinner/sun50i-a64-olinuxino.dts | 9 +
arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi | 12 +
.../boot/dts/allwinner/sun50i-h6-beelink-gs1.dts | 9 +-
.../boot/dts/allwinner/sun50i-h6-cpu-opp.dtsi | 117 ++
.../boot/dts/allwinner/sun50i-h6-orangepi-3.dts | 3 +
.../dts/allwinner/sun50i-h6-orangepi-lite2.dts | 65 ++
.../boot/dts/allwinner/sun50i-h6-orangepi.dtsi | 17 +-
.../boot/dts/allwinner/sun50i-h6-pine-h64.dts | 43 +-
.../boot/dts/allwinner/sun50i-h6-tanix-tx6.dts | 13 +
arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi | 60 +
arch/arm64/boot/dts/amlogic/Makefile | 4 +
arch/arm64/boot/dts/amlogic/meson-axg.dtsi | 6 +-
arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi | 11 +
arch/arm64/boot/dts/amlogic/meson-g12.dtsi | 32 +-
.../boot/dts/amlogic/meson-g12b-gtking-pro.dts | 125 +++
arch/arm64/boot/dts/amlogic/meson-g12b-gtking.dts | 145 +++
.../boot/dts/amlogic/meson-g12b-khadas-vim3.dtsi | 18 +-
arch/arm64/boot/dts/amlogic/meson-g12b-s922x.dtsi | 15 +
.../boot/dts/amlogic/meson-g12b-ugoos-am6.dts | 377 +------
arch/arm64/boot/dts/amlogic/meson-g12b-w400.dtsi | 423 +++++++
arch/arm64/boot/dts/amlogic/meson-g12b.dtsi | 22 +
.../boot/dts/amlogic/meson-gx-libretech-pc.dtsi | 78 +-
.../arm64/boot/dts/amlogic/meson-gx-p23x-q20x.dtsi | 98 +-
arch/arm64/boot/dts/amlogic/meson-gx.dtsi | 23 +-
arch/arm64/boot/dts/amlogic/meson-gxbb-kii-pro.dts | 2 +-
.../boot/dts/amlogic/meson-gxbb-nanopi-k2.dts | 2 +-
.../boot/dts/amlogic/meson-gxbb-nexbox-a95x.dts | 2 +-
.../arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts | 2 +-
.../boot/dts/amlogic/meson-gxbb-vega-s95.dtsi | 2 +-
.../boot/dts/amlogic/meson-gxbb-wetek-play2.dts | 4 +-
arch/arm64/boot/dts/amlogic/meson-gxbb-wetek.dtsi | 6 +-
arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi | 23 +
.../dts/amlogic/meson-gxl-s805x-libretech-ac.dts | 73 +-
.../boot/dts/amlogic/meson-gxl-s805x-p241.dts | 3 +-
.../dts/amlogic/meson-gxl-s905d-phicomm-n1.dts | 4 +
.../boot/dts/amlogic/meson-gxl-s905d-sml5442tw.dts | 80 ++
.../boot/dts/amlogic/meson-gxl-s905w-p281.dts | 4 +
.../boot/dts/amlogic/meson-gxl-s905w-tx3-mini.dts | 4 +
.../dts/amlogic/meson-gxl-s905x-khadas-vim.dts | 4 +
.../dts/amlogic/meson-gxl-s905x-libretech-cc.dts | 77 +-
.../dts/amlogic/meson-gxl-s905x-nexbox-a95x.dts | 3 +-
.../boot/dts/amlogic/meson-gxl-s905x-p212.dtsi | 3 +-
arch/arm64/boot/dts/amlogic/meson-gxl.dtsi | 79 +-
.../boot/dts/amlogic/meson-gxm-khadas-vim2.dts | 3 +-
.../arm64/boot/dts/amlogic/meson-gxm-nexbox-a1.dts | 3 +-
arch/arm64/boot/dts/amlogic/meson-gxm-rbox-pro.dts | 4 +-
arch/arm64/boot/dts/amlogic/meson-gxm-vega-s96.dts | 4 +
arch/arm64/boot/dts/amlogic/meson-gxm.dtsi | 7 +-
arch/arm64/boot/dts/amlogic/meson-khadas-vim3.dtsi | 4 +-
.../arm64/boot/dts/amlogic/meson-sm1-odroid-c4.dts | 402 +++++++
arch/arm64/boot/dts/amlogic/meson-sm1-sei610.dts | 2 +-
arch/arm64/boot/dts/amlogic/meson-sm1.dtsi | 24 +
arch/arm64/boot/dts/arm/foundation-v8-gicv2.dtsi | 4 +-
arch/arm64/boot/dts/arm/foundation-v8-gicv3.dtsi | 11 +-
arch/arm64/boot/dts/arm/foundation-v8.dtsi | 142 +--
arch/arm64/boot/dts/arm/fvp-base-revc.dts | 10 +-
arch/arm64/boot/dts/arm/juno-base.dtsi | 82 +-
arch/arm64/boot/dts/arm/juno-motherboard.dtsi | 166 +--
arch/arm64/boot/dts/arm/rtsm_ve-aemv8a.dts | 2 +-
.../boot/dts/arm/rtsm_ve-motherboard-rs2.dtsi | 4 +-
arch/arm64/boot/dts/arm/rtsm_ve-motherboard.dtsi | 152 +--
arch/arm64/boot/dts/freescale/fsl-ls1012a-frdm.dts | 15 +
arch/arm64/boot/dts/freescale/fsl-ls1012a-frwy.dts | 15 +
arch/arm64/boot/dts/freescale/fsl-ls1012a-qds.dts | 15 +
arch/arm64/boot/dts/freescale/fsl-ls1012a-rdb.dts | 15 +
arch/arm64/boot/dts/freescale/fsl-ls1012a.dtsi | 13 +
.../freescale/fsl-ls1028a-kontron-sl28-var2.dts | 4 +-
.../dts/freescale/fsl-ls1028a-kontron-sl28.dts | 5 +
arch/arm64/boot/dts/freescale/fsl-ls1028a.dtsi | 6 +
arch/arm64/boot/dts/freescale/fsl-ls1043a-rdb.dts | 33 +
arch/arm64/boot/dts/freescale/fsl-ls1043a.dtsi | 65 ++
arch/arm64/boot/dts/freescale/fsl-lx2160a.dtsi | 130 ++-
.../dts/freescale/imx8mm-beacon-baseboard.dtsi | 285 +++++
.../arm64/boot/dts/freescale/imx8mm-beacon-kit.dts | 19 +
.../boot/dts/freescale/imx8mm-beacon-som.dtsi | 410 +++++++
arch/arm64/boot/dts/freescale/imx8mm-evk.dts | 12 +
arch/arm64/boot/dts/freescale/imx8mm.dtsi | 14 +-
arch/arm64/boot/dts/freescale/imx8mn-ddr4-evk.dts | 12 +
arch/arm64/boot/dts/freescale/imx8mn.dtsi | 12 +-
arch/arm64/boot/dts/freescale/imx8mp.dtsi | 88 +-
.../boot/dts/freescale/imx8mq-librem5-devkit.dts | 4 +-
arch/arm64/boot/dts/freescale/imx8mq.dtsi | 10 +-
arch/arm64/boot/dts/freescale/imx8qxp-mek.dts | 95 +-
arch/arm64/boot/dts/freescale/imx8qxp.dtsi | 18 +-
arch/arm64/boot/dts/freescale/qoriq-fman3-0.dtsi | 1 +
arch/arm64/boot/dts/hisilicon/hi3660.dtsi | 4 +-
.../arm64/boot/dts/hisilicon/hi6220-coresight.dtsi | 130 ++-
.../arm64/boot/dts/hisilicon/hikey960-pinctrl.dtsi | 6 +-
arch/arm64/boot/dts/marvell/armada-3720-db.dts | 3 +
.../boot/dts/marvell/armada-3720-espressobin.dtsi | 2 +-
.../boot/dts/marvell/armada-3720-turris-mox.dts | 10 +-
arch/arm64/boot/dts/marvell/armada-3720-uDPU.dts | 22 +-
arch/arm64/boot/dts/marvell/armada-37xx.dtsi | 4 +-
.../dts/marvell/armada-8040-clearfog-gt-8k.dts | 2 +-
.../dts/marvell/armada-8040-mcbin-singleshot.dts | 4 +-
arch/arm64/boot/dts/marvell/armada-8040-mcbin.dts | 4 +-
arch/arm64/boot/dts/marvell/armada-ap80x.dtsi | 1 -
arch/arm64/boot/dts/mediatek/Makefile | 3 +
arch/arm64/boot/dts/mediatek/mt2712-evb.dts | 74 ++
arch/arm64/boot/dts/mediatek/mt2712e.dtsi | 158 ++-
arch/arm64/boot/dts/mediatek/mt6358.dtsi | 358 ++++++
arch/arm64/boot/dts/mediatek/mt6797-x20-dev.dts | 49 +
arch/arm64/boot/dts/mediatek/mt6797.dtsi | 231 +++-
.../boot/dts/mediatek/mt7622-bananapi-bpi-r64.dts | 4 +
arch/arm64/boot/dts/mediatek/mt7622-rfb1.dts | 4 +
arch/arm64/boot/dts/mediatek/mt7622.dtsi | 11 +
.../boot/dts/mediatek/mt8173-elm-hana-rev7.dts | 27 +
arch/arm64/boot/dts/mediatek/mt8173-elm-hana.dts | 14 +
arch/arm64/boot/dts/mediatek/mt8173-elm-hana.dtsi | 70 ++
arch/arm64/boot/dts/mediatek/mt8173-elm.dts | 14 +
arch/arm64/boot/dts/mediatek/mt8173-elm.dtsi | 1173 ++++++++++++++++++++
arch/arm64/boot/dts/mediatek/mt8173.dtsi | 80 +-
arch/arm64/boot/dts/mediatek/mt8183-evb.dts | 147 +++
arch/arm64/boot/dts/mediatek/mt8183.dtsi | 50 +-
arch/arm64/boot/dts/nvidia/tegra132-norrin.dts | 2 +-
arch/arm64/boot/dts/nvidia/tegra186-p3310.dtsi | 3 +-
arch/arm64/boot/dts/nvidia/tegra194-p2888.dtsi | 5 +-
arch/arm64/boot/dts/nvidia/tegra194.dtsi | 30 +-
arch/arm64/boot/dts/nvidia/tegra210-p2180.dtsi | 3 +-
arch/arm64/boot/dts/nvidia/tegra210-p2597.dtsi | 10 +
arch/arm64/boot/dts/nvidia/tegra210-p3450-0000.dts | 7 +-
arch/arm64/boot/dts/nvidia/tegra210.dtsi | 89 +-
arch/arm64/boot/dts/qcom/Makefile | 1 +
.../arm64/boot/dts/qcom/apq8016-sbc-pmic-pins.dtsi | 74 --
arch/arm64/boot/dts/qcom/apq8016-sbc-soc-pins.dtsi | 89 --
arch/arm64/boot/dts/qcom/apq8016-sbc.dtsi | 257 ++++-
arch/arm64/boot/dts/qcom/apq8096-db820c.dtsi | 53 +-
arch/arm64/boot/dts/qcom/ipq8074-hk01.dts | 112 +-
arch/arm64/boot/dts/qcom/ipq8074.dtsi | 474 ++++----
.../boot/dts/qcom/msm8916-longcheer-l8150.dts | 25 +-
arch/arm64/boot/dts/qcom/msm8916-pins.dtsi | 221 ++--
.../dts/qcom/msm8916-samsung-a2015-common.dtsi | 98 +-
.../boot/dts/qcom/msm8916-samsung-a3u-eur.dts | 54 +
.../boot/dts/qcom/msm8916-samsung-a5u-eur.dts | 35 +
arch/arm64/boot/dts/qcom/msm8916.dtsi | 228 +++-
arch/arm64/boot/dts/qcom/msm8996.dtsi | 87 +-
arch/arm64/boot/dts/qcom/msm8998.dtsi | 38 +-
arch/arm64/boot/dts/qcom/pm8150.dtsi | 14 +-
arch/arm64/boot/dts/qcom/pm8150b.dtsi | 14 +-
arch/arm64/boot/dts/qcom/pm8150l.dtsi | 14 +-
arch/arm64/boot/dts/qcom/pmi8994.dtsi | 6 +
arch/arm64/boot/dts/qcom/qcs404-evb.dtsi | 85 +-
arch/arm64/boot/dts/qcom/qcs404.dtsi | 100 ++
arch/arm64/boot/dts/qcom/sc7180-idp.dts | 66 +-
arch/arm64/boot/dts/qcom/sc7180.dtsi | 955 ++++++++++++++--
.../arm64/boot/dts/qcom/sdm660-xiaomi-lavender.dts | 46 +
arch/arm64/boot/dts/qcom/sdm660.dtsi | 372 +++++++
arch/arm64/boot/dts/qcom/sdm845-cheza.dtsi | 2 +
arch/arm64/boot/dts/qcom/sdm845-db845c.dts | 210 ++++
arch/arm64/boot/dts/qcom/sdm845-mtp.dts | 2 +-
arch/arm64/boot/dts/qcom/sdm845.dtsi | 98 +-
.../boot/dts/qcom/sdm850-lenovo-yoga-c630.dts | 13 +
arch/arm64/boot/dts/qcom/sm8250-mtp.dts | 351 ++++++
arch/arm64/boot/dts/qcom/sm8250.dtsi | 126 ++-
arch/arm64/boot/dts/realtek/Makefile | 6 +
arch/arm64/boot/dts/realtek/rtd1293-ds418j.dts | 6 +-
arch/arm64/boot/dts/realtek/rtd1293.dtsi | 12 +-
arch/arm64/boot/dts/realtek/rtd1295-mele-v9.dts | 6 +-
.../arm64/boot/dts/realtek/rtd1295-probox2-ava.dts | 6 +-
arch/arm64/boot/dts/realtek/rtd1295-xnano-x5.dts | 30 +
arch/arm64/boot/dts/realtek/rtd1295-zidoo-x9s.dts | 4 +-
arch/arm64/boot/dts/realtek/rtd1295.dtsi | 21 +-
arch/arm64/boot/dts/realtek/rtd1296-ds418.dts | 4 +-
arch/arm64/boot/dts/realtek/rtd1296.dtsi | 8 +-
arch/arm64/boot/dts/realtek/rtd129x.dtsi | 221 ++--
arch/arm64/boot/dts/realtek/rtd1395-bpi-m4.dts | 30 +
arch/arm64/boot/dts/realtek/rtd1395-lionskin.dts | 36 +
arch/arm64/boot/dts/realtek/rtd1395.dtsi | 65 ++
arch/arm64/boot/dts/realtek/rtd139x.dtsi | 193 ++++
arch/arm64/boot/dts/realtek/rtd1619-mjolnir.dts | 44 +
arch/arm64/boot/dts/realtek/rtd1619.dtsi | 12 +
arch/arm64/boot/dts/realtek/rtd16xx.dtsi | 229 ++++
arch/arm64/boot/dts/renesas/Makefile | 3 +-
.../dts/renesas/aistarvision-mipi-adapter-2.1.dtsi | 94 ++
arch/arm64/boot/dts/renesas/r8a774a1.dtsi | 18 +-
arch/arm64/boot/dts/renesas/r8a774b1.dtsi | 18 +-
.../boot/dts/renesas/r8a774c0-ek874-mipi-2.1.dts | 72 ++
arch/arm64/boot/dts/renesas/r8a774c0.dtsi | 18 +-
arch/arm64/boot/dts/renesas/r8a77950.dtsi | 14 +-
arch/arm64/boot/dts/renesas/r8a77951.dtsi | 34 +-
arch/arm64/boot/dts/renesas/r8a77960.dtsi | 22 +-
arch/arm64/boot/dts/renesas/r8a77961.dtsi | 403 ++++++-
arch/arm64/boot/dts/renesas/r8a77965.dtsi | 20 +-
arch/arm64/boot/dts/renesas/r8a77970.dtsi | 10 +-
arch/arm64/boot/dts/renesas/r8a77980.dtsi | 16 +-
arch/arm64/boot/dts/renesas/r8a77990.dtsi | 20 +-
arch/arm64/boot/dts/renesas/r8a77995.dtsi | 20 +-
arch/arm64/boot/dts/rockchip/Makefile | 1 +
arch/arm64/boot/dts/rockchip/px30.dtsi | 3 +
arch/arm64/boot/dts/rockchip/rk3308-roc-cc.dts | 7 +-
arch/arm64/boot/dts/rockchip/rk3326-odroid-go2.dts | 557 ++++++++++
arch/arm64/boot/dts/rockchip/rk3326.dtsi | 15 +
arch/arm64/boot/dts/rockchip/rk3328-a1.dts | 2 +-
arch/arm64/boot/dts/rockchip/rk3328-roc-cc.dts | 4 +-
arch/arm64/boot/dts/rockchip/rk3328-rock64.dts | 4 +-
arch/arm64/boot/dts/rockchip/rk3328.dtsi | 2 +-
arch/arm64/boot/dts/rockchip/rk3368-geekbox.dts | 4 +-
.../boot/dts/rockchip/rk3368-orion-r68-meta.dts | 4 +-
arch/arm64/boot/dts/rockchip/rk3368-r88.dts | 2 +-
arch/arm64/boot/dts/rockchip/rk3399-ficus.dts | 29 +-
arch/arm64/boot/dts/rockchip/rk3399-firefly.dts | 10 +-
arch/arm64/boot/dts/rockchip/rk3399-hugsun-x99.dts | 7 +-
arch/arm64/boot/dts/rockchip/rk3399-nanopi4.dtsi | 4 +-
arch/arm64/boot/dts/rockchip/rk3399-orangepi.dts | 4 +-
.../boot/dts/rockchip/rk3399-pinebook-pro.dts | 11 +-
arch/arm64/boot/dts/rockchip/rk3399-rock960.dts | 29 +-
arch/arm64/boot/dts/rockchip/rk3399-rockpro64.dtsi | 27 +
arch/arm64/boot/dts/rockchip/rk3399.dtsi | 34 +-
arch/arm64/boot/dts/socionext/Makefile | 1 +
.../boot/dts/socionext/uniphier-ld11-global.dts | 1 +
.../arm64/boot/dts/socionext/uniphier-ld11-ref.dts | 1 +
arch/arm64/boot/dts/socionext/uniphier-ld11.dtsi | 12 +
.../boot/dts/socionext/uniphier-ld20-akebi96.dts | 189 ++++
.../boot/dts/socionext/uniphier-ld20-global.dts | 1 +
.../arm64/boot/dts/socionext/uniphier-ld20-ref.dts | 1 +
arch/arm64/boot/dts/socionext/uniphier-ld20.dtsi | 16 +
.../arm64/boot/dts/socionext/uniphier-pxs3-ref.dts | 18 +
arch/arm64/boot/dts/socionext/uniphier-pxs3.dtsi | 12 +
arch/arm64/boot/dts/sprd/sc9863a.dtsi | 66 ++
arch/arm64/boot/dts/sprd/sharkl3.dtsi | 164 +++
arch/arm64/boot/dts/ti/k3-am65-main.dtsi | 104 ++
arch/arm64/boot/dts/ti/k3-am65-wakeup.dtsi | 11 +
.../boot/dts/ti/k3-am654-industrial-thermal.dtsi | 45 +
.../boot/dts/ti/k3-j721e-common-proc-board.dts | 20 +
arch/arm64/boot/dts/ti/k3-j721e-main.dtsi | 75 ++
arch/arm64/boot/dts/xilinx/zynqmp.dtsi | 6 +-
include/dt-bindings/clock/r8a7742-cpg-mssr.h | 42 +
include/dt-bindings/clock/tegra114-car.h | 14 +-
include/dt-bindings/clock/tegra124-car-common.h | 14 +-
include/dt-bindings/clock/tegra20-car.h | 2 +-
include/dt-bindings/clock/tegra210-car.h | 16 +-
include/dt-bindings/clock/tegra30-car.h | 14 +-
include/dt-bindings/pinctrl/rockchip.h | 11 -
include/dt-bindings/power/r8a7742-sysc.h | 29 +
.../dt-bindings/reset/amlogic,meson-gxbb-reset.h | 2 +-
include/dt-bindings/reset/realtek,rtd1195.h | 74 ++
include/dt-bindings/reset/realtek,rtd1295.h | 3 +
503 files changed, 25420 insertions(+), 4950 deletions(-)
create mode 100644
Documentation/devicetree/bindings/cpufreq/nvidia,tegra20-cpufreq.txt
create mode 100644
Documentation/devicetree/bindings/memory-controllers/nvidia,tegra210-emc.yaml
create mode 100644 arch/arm/boot/dts/am5729-beagleboneai.dts
create mode 100644 arch/arm/boot/dts/aspeed-bmc-facebook-yosemitev2.dts
create mode 100644 arch/arm/boot/dts/aspeed-bmc-opp-nicole.dts
create mode 100644 arch/arm/boot/dts/at91-sama5d2_icp.dts
create mode 100644 arch/arm/boot/dts/bcm2835-rpi-common.dtsi
create mode 100644 arch/arm/boot/dts/dra7-ipu-dsp-common.dtsi
create mode 100644 arch/arm/boot/dts/dra74-ipu-dsp-common.dtsi
create mode 100644 arch/arm/boot/dts/exynos4210-i9100.dts
create mode 100644 arch/arm/boot/dts/imx6dl-colibri-v1_1-eval-v3.dts
create mode 100644 arch/arm/boot/dts/imx6qdl-colibri-v1_1-uhs.dtsi
create mode 100644 arch/arm/boot/dts/integratorap-im-pd1.dts
create mode 100644 arch/arm/boot/dts/kirkwood-l-50.dts
create mode 100644 arch/arm/boot/dts/r8a7742-iwg21d-q7.dts
create mode 100644 arch/arm/boot/dts/r8a7742-iwg21m.dtsi
create mode 100644 arch/arm/boot/dts/r8a7742.dtsi
create mode 100644 arch/arm/boot/dts/rtd1195-horseradish.dts
create mode 100644 arch/arm/boot/dts/rtd1195-mele-x1000.dts
create mode 100644 arch/arm/boot/dts/rtd1195.dtsi
create mode 100644 arch/arm/boot/dts/stm32mp157a-dhcor-avenger96.dts
create mode 100644 arch/arm/boot/dts/stm32mp157a-iot-box.dts
create mode 100644 arch/arm/boot/dts/stm32mp157a-stinger96.dts
create mode 100644 arch/arm/boot/dts/stm32mp157a-stinger96.dtsi
create mode 100644 arch/arm/boot/dts/stm32mp157c-lxa-mc1.dts
create mode 100644 arch/arm/boot/dts/stm32mp15xx-dhcom-pdk2.dtsi
rename arch/arm/boot/dts/{stm32mp157c-dhcom-som.dtsi =>
stm32mp15xx-dhcom-som.dtsi} (98%)
create mode 100644 arch/arm/boot/dts/stm32mp15xx-dhcor-avenger96.dtsi
create mode 100644 arch/arm/boot/dts/stm32mp15xx-dhcor-io1v8.dtsi
create mode 100644 arch/arm/boot/dts/stm32mp15xx-dhcor-som.dtsi
create mode 100644 arch/arm/boot/dts/stm32mp15xx-osd32.dtsi
create mode 100644 arch/arm/boot/dts/sun7i-a20-olinuxino-lime-emmc.dts
create mode 100644 arch/arm64/boot/dts/allwinner/sun50i-h6-cpu-opp.dtsi
create mode 100644 arch/arm64/boot/dts/amlogic/meson-g12b-gtking-pro.dts
create mode 100644 arch/arm64/boot/dts/amlogic/meson-g12b-gtking.dts
create mode 100644 arch/arm64/boot/dts/amlogic/meson-g12b-w400.dtsi
create mode 100644 arch/arm64/boot/dts/amlogic/meson-gxl-s905d-sml5442tw.dts
create mode 100644 arch/arm64/boot/dts/amlogic/meson-sm1-odroid-c4.dts
create mode 100644 arch/arm64/boot/dts/freescale/imx8mm-beacon-baseboard.dtsi
create mode 100644 arch/arm64/boot/dts/freescale/imx8mm-beacon-kit.dts
create mode 100644 arch/arm64/boot/dts/freescale/imx8mm-beacon-som.dtsi
create mode 100644 arch/arm64/boot/dts/mediatek/mt6358.dtsi
create mode 100644 arch/arm64/boot/dts/mediatek/mt8173-elm-hana-rev7.dts
create mode 100644 arch/arm64/boot/dts/mediatek/mt8173-elm-hana.dts
create mode 100644 arch/arm64/boot/dts/mediatek/mt8173-elm-hana.dtsi
create mode 100644 arch/arm64/boot/dts/mediatek/mt8173-elm.dts
create mode 100644 arch/arm64/boot/dts/mediatek/mt8173-elm.dtsi
delete mode 100644 arch/arm64/boot/dts/qcom/apq8016-sbc-pmic-pins.dtsi
delete mode 100644 arch/arm64/boot/dts/qcom/apq8016-sbc-soc-pins.dtsi
create mode 100644 arch/arm64/boot/dts/qcom/sdm660-xiaomi-lavender.dts
create mode 100644 arch/arm64/boot/dts/qcom/sdm660.dtsi
create mode 100644 arch/arm64/boot/dts/realtek/rtd1295-xnano-x5.dts
create mode 100644 arch/arm64/boot/dts/realtek/rtd1395-bpi-m4.dts
create mode 100644 arch/arm64/boot/dts/realtek/rtd1395-lionskin.dts
create mode 100644 arch/arm64/boot/dts/realtek/rtd1395.dtsi
create mode 100644 arch/arm64/boot/dts/realtek/rtd139x.dtsi
create mode 100644 arch/arm64/boot/dts/realtek/rtd1619-mjolnir.dts
create mode 100644 arch/arm64/boot/dts/realtek/rtd1619.dtsi
create mode 100644 arch/arm64/boot/dts/realtek/rtd16xx.dtsi
create mode 100644
arch/arm64/boot/dts/renesas/aistarvision-mipi-adapter-2.1.dtsi
create mode 100644 arch/arm64/boot/dts/renesas/r8a774c0-ek874-mipi-2.1.dts
create mode 100644 arch/arm64/boot/dts/rockchip/rk3326-odroid-go2.dts
create mode 100644 arch/arm64/boot/dts/rockchip/rk3326.dtsi
create mode 100644 arch/arm64/boot/dts/socionext/uniphier-ld20-akebi96.dts
create mode 100644 arch/arm64/boot/dts/ti/k3-am654-industrial-thermal.dtsi
create mode 100644 include/dt-bindings/clock/r8a7742-cpg-mssr.h
create mode 100644 include/dt-bindings/power/r8a7742-sysc.h
create mode 100644 include/dt-bindings/reset/realtek,rtd1195.h
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply
* [GIT PULL 3/4] ARM: driver updates for v5.8
From: Arnd Bergmann @ 2020-06-04 20:54 UTC (permalink / raw)
To: Linus Torvalds, SoC Team, Linux ARM, Linux Kernel Mailing List
In-Reply-To: <CAK8P3a3w4euZfDQPt7wqWg9w4uf7SM4NLeA2CyOMmgNGPAdQaQ@mail.gmail.com>
The following changes since commit 0e698dfa282211e414076f9dc7e83c1c288314fd:
Linux 5.7-rc4 (2020-05-03 14:56:04 -0700)
are available in the Git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc.git tags/arm-drivers-5.8
for you to fetch changes up to b5f73d47f34b238221ac771b5fe4907df621d7cb:
clk: sprd: fix compile-testing (2020-06-03 12:57:28 +0200)
----------------------------------------------------------------
ARM/SoC: drivers for v5.7
These are updates to SoC specific drivers that did not have
another subsystem maintainer tree to go through for some
reason:
- Some bus and memory drivers for the MIPS P5600 based
Baikal-T1 SoC that is getting added through the MIPS tree.
- There are new soc_device identification drivers for TI K3,
Qualcomm MSM8939
- New reset controller drivers for NXP i.MX8MP, Renesas
RZ/G1H, and Hisilicon hi6220
- The SCMI firmware interface can now work across ARM SMC/HVC
as a transport.
- Mediatek platforms now use a new driver for their "MMSYS"
hardware block that controls clocks and some other aspects
in behalf of the media and gpu drivers.
- Some Tegra processors have improved power management
support, including getting woken up by the PMIC and cluster
power down during idle.
- A new v4l staging driver for Tegra is added.
- Cleanups and minor bugfixes for TI, NXP, Hisilicon,
Mediatek, and Tegra.
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
----------------------------------------------------------------
Anson Huang (4):
soc: imx8m: No need to put node when of_find_compatible_node() failed
dt-bindings: reset: imx7: Add support for i.MX8MN
dt-bindings: reset: imx7: Document usage on i.MX8MP SoC
reset: imx7: Add support for i.MX8MP SoC
Arnd Bergmann (28):
soc: tegra: Fix tegra_pmc_get_suspend_mode definition
Merge tag 'scmi-updates-5.8' of
git://git.kernel.org/.../sudeep.holla/linux into arm/drivers
Merge tag 'renesas-drivers-for-v5.8-tag1' of
git://git.kernel.org/.../geert/renesas-devel into arm/drivers
Merge tag 'tee-subsys-for-5.8' of
git://git.linaro.org/people/jens.wiklander/linux-tee into arm/drivers
Merge tag 'renesas-drivers-for-v5.8-tag2' of
git://git.kernel.org/.../geert/renesas-devel into arm/drivers
Merge tag 'tegra-for-5.8-firmware-v2' of
git://git.kernel.org/.../tegra/linux into arm/drivers
Merge tag 'v5.7-next-soc' of
git://git.kernel.org/.../matthias.bgg/linux into arm/drivers
Merge tag 'tee-smatch-for-5.8' of
git://git.linaro.org/people/jens.wiklander/linux-tee into arm/drivers
Merge tag 'amlogic-drivers' of
git://git.kernel.org/.../khilman/linux-amlogic into arm/drivers
Merge tag 'reset-for-v5.8' of git://git.pengutronix.de/pza/linux
into arm/drivers
Merge tag 'tee-login-for-5.8' of
git://git.linaro.org/people/jens.wiklander/linux-tee into arm/drivers
Merge tag 'v5.7-next-soc.2' of
git://git.kernel.org/.../matthias.bgg/linux into arm/drivers
Merge tag 'qcom-drivers-for-5.8' of
git://git.kernel.org/.../qcom/linux into arm/drivers
Merge tag 'samsung-drivers-5.8' of
git://git.kernel.org/.../krzk/linux into arm/drivers
Merge tag 'tegra-for-5.8-cpufreq' of
git://git.kernel.org/.../tegra/linux into arm/drivers
Merge tag 'tegra-for-5.8-cpuidle' of
git://git.kernel.org/.../tegra/linux into arm/drivers
Merge tag 'tegra-for-5.8-of' of
git://git.kernel.org/.../tegra/linux into arm/drivers
Merge tag 'tegra-for-5.8-media' of
git://git.kernel.org/.../tegra/linux into arm/drivers
Merge tag 'tegra-for-5.8-soc-v2' of
git://git.kernel.org/.../tegra/linux into arm/drivers
Merge tag 'imx-drivers-5.8' of
git://git.kernel.org/.../shawnguo/linux into arm/drivers
Merge tag 'hisi-drivers-for-5.8' of
git://github.com/hisilicon/linux-hisi into arm/drivers
tee: fix crypto select
Merge tag 'soc-fsl-next-v5.8' of
git://git.kernel.org/.../leo/linux into arm/drivers
staging: tegra-video: fix V4L2 dependency
Merge tag 'drivers_soc_for_5.8' of
git://git.kernel.org/.../ssantosh/linux-keystone into arm/drivers
Merge branch 'baikal/drivers' into arm/drivers
Merge branch 'baikal/drivers' into arm/drivers
clk: sprd: fix compile-testing
Bernard Zhao (2):
memory: samsung: exynos5422-dmc: Fix tFAW timings alignment
memory: samsung: exynos5422-dmc: Reduce protected code area in IRQ handler
Bjorn Andersson (3):
soc: qcom: rpmhpd: Add SM8250 power domains
soc: qcom: aoss: Add SM8250 compatible
Revert "soc: qcom: rpmh: Allow RPMH driver to be loaded as a module"
Christoph Hellwig (1):
firmware: qcom_scm: fix bogous abuse of dma-direct internals
Colin Ian King (1):
soc: fsl: qe: clean up an indentation issue
Corentin Labbe (1):
soc/tegra: pmc: Select GENERIC_PINCONF
Cristian Marussi (5):
firmware: arm_scmi: Add notifications support in transport layer
firmware: arm_scmi: Rename .clear_notification() transport_ops
firmware: arm_scmi: Clear channel on reception of unexpected responses
firmware: arm_scmi: Clear channel for delayed responses
firmware: arm_scmi: Fix handling of unexpected delayed responses
Dan Carpenter (1):
tee: remove unnecessary NULL check in tee_shm_alloc()
Dmitry Osipenko (6):
firmware: tf: Different way of L2 cache enabling after LP2 suspend
ARM: tegra: Initialize r0 register for firmware wake-up
ARM: tegra: Do not fully reinitialize L2 on resume
cpuidle: tegra: Support CPU cluster power-down state on Tegra30
cpufreq: tegra20: Use generic cpufreq-dt driver (Tegra30 supported now)
dt-bindings: cpufreq: Add binding for NVIDIA Tegra20/30
Dong Aisheng (2):
dt-bindings: firmware: imx: Move system control into dt-binding headfile
dt-bindings: firmware: imx: Add more system controls and PM clock types
Douglas Anderson (18):
soc: qcom: rpmh-rsc: Clean code reading/writing TCS regs/cmds
soc: qcom: rpmh-rsc: Document the register layout better
soc: qcom: rpmh-rsc: Fold tcs_ctrl_write() into its single caller
soc: qcom: rpmh-rsc: Remove get_tcs_of_type() abstraction
soc: qcom: rpmh-rsc: Kill cmd_cache and find_match() with fire
soc: qcom: rpmh-rsc: A lot of comments
soc: qcom: rpmh-rsc: tcs_is_free() can just check tcs_in_use
soc: qcom: rpmh-rsc: Don't double-check rpmh payload
soc: qcom: rpmh-rsc: Caller handles tcs_invalidate() exclusivity
soc: qcom: rpmh-rsc: read_tcs_reg()/write_tcs_reg() are not for IRQ
soc: qcom: rpmh: Dirt can only make you dirtier, not cleaner
soc: qcom: rpmh-rsc: Factor "tcs_reg_addr" and "tcs_cmd_addr" calculation
soc: qcom: rpmh-rsc: Timeout after 1 second in write_tcs_reg_sync()
soc: qcom: rpmh-rsc: Correctly ignore CPU_CLUSTER_PM notifications
soc: qcom: rpmh-rsc: We aren't notified of our own failure w/ NOTIFY_BAD
kernel/cpu_pm: Fix uninitted local in cpu_pm
soc: qcom: rpmh-rsc: Simplify locking by eliminating the per-TCS lock
soc: qcom: rpmh-rsc: Remove the pm_lock
Enric Balletbo i Serra (6):
dt-bindings: mediatek: Update mmsys binding to reflect it is a
system controller
soc / drm: mediatek: Move routing control to mmsys device
soc / drm: mediatek: Fix mediatek-drm device probing
soc: mediatek: Enable mmsys driver by default if Mediatek arch is selected
clk / soc: mediatek: Bind clock and gpu driver for mt2712
clk / soc: mediatek: Bind clock and gpu driver for mt2701
Franck LENORMAND (1):
firmware: imx: scu: Fix corruption of header
Geert Uytterhoeven (4):
Merge tag 'renesas-r8a7742-dt-binding-defs-tag' into
renesas-drivers-for-v5.8
of: Make <linux/of_reserved_mem.h> self-contained
soc: mediatek: mmsys: Drop <linux/clk-provider.h>
ARM: mediatek: Replace <linux/clk-provider.h> by <linux/of_clk.h>
Grygorii Strashko (2):
dt-bindings: soc: ti: add binding for k3 platforms chipid module
soc: ti: add k3 platforms chipid module driver
Gustavo A. R. Silva (3):
firmware: qcom_scm-legacy: Replace zero-length array with flexible-array
treewide: Replace zero-length array with flexible-array
soc: fsl: qe: Replace one-element array and use struct_size() helper
Jason Yan (1):
firmware: qcom_scm: Remove unneeded conversion to bool
Jerome Brunet (1):
dt-bindings: reset: meson: add gxl internal dac reset
John Garry (3):
io: Provide _inX() and _outX()
logic_pio: Improve macro argument name
logic_pio: Use _inX() and _outX()
John Stultz (3):
soc: qcom: rpmh: Allow RPMH driver to be loaded as a module
soc: qcom: rpmhpd: Allow RPMHPD driver to be loaded as a module
soc: qcom: rpmpd: Allow RPMPD driver to be loaded as a module
Jon Hunter (6):
soc/tegra: fuse: Add custom SoC attributes
soc/tegra: fuse: Trivial clean-up of tegra_init_revision()
soc/tegra: fuse: Update the SoC revision attribute to display a name
soc/tegra: pmc: Enable PMIC wake event on Tegra194
soc/tegra: pmc: Enable PMIC wake event on Tegra210
firmware: tegra: Defer BPMP probe if shared memory not available
Joseph Lo (1):
dt-bindings: memory: tegra: Add external memory controller
binding for Tegra210
Lad Prabhakar (5):
dt-bindings: power: rcar-sysc: Add r8a7742 power domain index macros
clk: renesas: Add r8a7742 CPG Core Clock Definitions
soc: renesas: rcar-sysc: Add R8A7742 support
soc: renesas: rcar-rst: Add support for RZ/G1H
soc: renesas: Add Renesas R8A7742 config option
Lukas Bulwahn (1):
MAINTAINERS: correct path in TEGRA VIDEO DRIVER
Markus Elfring (1):
soc: qcom: smp2p: Delete an error message in qcom_smp2p_probe()
Martin Blumenstingl (4):
dt-bindings: power: meson-ee-pwrc: add support for Meson8/8b/8m2
dt-bindings: power: meson-ee-pwrc: add support for the Meson GX SoCs
soc: amlogic: meson-ee-pwrc: add support for Meson8/Meson8b/Meson8m2
soc: amlogic: meson-ee-pwrc: add support for the Meson GX SoCs
Matthias Brugger (5):
drm/mediatek: Omit warning on probe defers
clk / soc: mediatek: Move mt8173 MMSYS to platform driver
clk/soc: mediatek: mt8183: Bind clock driver from platform device
clk/soc: mediatek: mt6797: Bind clock driver from platform device
clk/soc: mediatek: mt6779: Bind clock driver from platform device
Maulik Shah (4):
soc: qcom: rpmh: Update dirty flag only when data changes
soc: qcom: rpmh: Invalidate SLEEP and WAKE TCSes before flushing new data
soc: qcom: rpmh: Invoke rpmh_flush() for dirty caches
soc: qcom: rpmh-rsc: Allow using free WAKE TCS for active request
Peng Fan (3):
dt-bindings: arm: Add smc/hvc transport for SCMI
firmware: arm_scmi: Add smc/hvc transport
firmware: imx-scu: Support one TX and one RX
Peter Griffin (1):
reset: hi6220: Add support for AO reset controller
Raju P.L.S.S.S.N (1):
soc: qcom: rpmh-rsc: Clear active mode configuration for wake TCS
Roy Pledge (1):
soc: fsl: dpio: Prefer the CPU affine DPIO
Samuel Zou (2):
media: tegra-video: Make tegra210_video_formats static
drivers: soc: ti: knav_qmss_queue: Make knav_gp_range_ops static
Serge Semin (14):
dt-bindings: bus: Add Baikal-T1 AXI-bus binding
dt-bindings: bus: Add Baikal-T1 APB-bus binding
bus: Add Baikal-T1 AXI-bus driver
bus: Add Baikal-T1 APB-bus driver
memory: Add Baikal-T1 L2-cache Control Block driver
dt-bindings: memory: Add Baikal-T1 L2-cache Control Block binding
bus: bt1-apb: Include linux/io.h
bus: bt1-apb: Fix show/store callback identations
bus: bt1-apb: Use PTR_ERR_OR_ZERO to return from request-regs method
bus: bt1-apb: Use sysfs_streq instead of strncmp
bus: bt1-axi: Optimize the return points in the driver
bus: bt1-axi: Use sysfs_streq instead of strncmp
bus: bt1-apb: Build the driver into the kernel
bus: bt1-axi: Build the driver into the kernel
Sibi Sankar (2):
soc: qcom: cmd-db: Fix compilation error when CMD_DB is disabled
soc: qcom: pdr: Remove impossible error condition
Sowjanya Komatineni (5):
dt-bindings: clock: tegra: Add clock ID for CSI TPG clock
dt-bindings: clock: tegra: Remove PMC clock IDs
dt-bindings: tegra: Add VI and CSI bindings
media: tegra-video: Add Tegra210 Video input driver
MAINTAINERS: Add Tegra Video driver section
Srinivas Kandagatla (1):
soc: qcom: socinfo: add missing soc_id sysfs entry
Stephan Gerhold (1):
dt-bindings: soc: qcom: apr: Use generic node names for APR services
Stephen Boyd (4):
soc: qcom: cmd-db: Add debugfs dumping file
soc: qcom: cmd-db: Cast sizeof() to int to silence field width warning
soc: qcom: cmd-db: Use 5 digits for printing address
soc: qcom: cmd-db: Properly endian swap the slv_id for debugfs
Sudeep Holla (11):
firmware: arm_scmi: Make mutex channel specific
firmware: arm_scmi: Drop empty stub for smc_mark_txdone
firmware: arm_scmi: Check shmem property for channel availablity
firmware: arm_scmi: Drop checking for shmem property in parent node
firmware: arm_scmi: Add include guard to linux/scmi_protocol.h
firmware: arm_scpi: Add include guard to linux/scpi_protocol.h
firmware: arm_scmi: Add receive buffer support for notifications
firmware: arm_scmi: Update protocol commands and notification list
firmware: arm_scmi: Add support for notifications message processing
firmware: arm_scmi: Fix return error code in smc_send_message
firmware: arm_scmi: fix psci dependency
Sumit Garg (2):
tee: enable support to register kernel memory
tee: add private login method for kernel clients
Thierry Reding (9):
firmware: tegra: Make BPMP a regular driver
soc/tegra: pmc: Enable PMIC wake event on Tegra186
of: reserved-memory: Support lookup of regions by name
of: reserved-memory: Support multiple regions per device
Merge branch 'for-5.8/firmware' into for-5.8/arm/core
Merge branch 'for-5.8/arm/core' into for-5.8/cpuidle
dt-bindings: i2c: tegra: Document Tegra210 VI I2C
Merge branch 'for-5.8/dt-bindings' into for-5.8/media
media: tegra-video: Do not enable COMPILE_TEST
Vesa Jääskeläinen (2):
tee: add support for session's client UUID generation
tee: optee: Add support for session login client UUID generation
Vincent Knecht (1):
soc: qcom: socinfo: add msm8936/39 and apq8036/39 soc ids
Wei Yongjun (2):
soc: mediatek: Missing platform_device_unregister() on error in
mtk_mmsys_probe()
firmware: imx: scu: Fix possible memory leak in imx_scu_probe()
YueHaibing (2):
soc: fsl: qbman: Remove unused inline function qm_eqcr_get_ci_stashing
soc: fsl: dpio: Remove unused inline function
qbman_write_eqcr_am_rt_register
Documentation/devicetree/bindings/arm/arm,scmi.txt | 3 +-
.../bindings/arm/mediatek/mediatek,mmsys.txt | 7 +-
.../devicetree/bindings/bus/baikal,bt1-apb.yaml | 90 ++
.../devicetree/bindings/bus/baikal,bt1-axi.yaml | 107 ++
.../bindings/cpufreq/nvidia,tegra20-cpufreq.txt | 56 +
.../display/tegra/nvidia,tegra20-host1x.txt | 73 +-
.../devicetree/bindings/i2c/nvidia,tegra20-i2c.txt | 6 +
.../memory-controllers/baikal,bt1-l2-ctl.yaml | 63 ++
.../memory-controllers/nvidia,tegra210-emc.yaml | 82 ++
.../bindings/power/amlogic,meson-ee-pwrc.yaml | 102 +-
.../devicetree/bindings/power/qcom,rpmpd.yaml | 1 +
.../devicetree/bindings/reset/fsl,imx7-src.txt | 6 +-
.../devicetree/bindings/soc/qcom/qcom,aoss-qmp.txt | 1 +
.../devicetree/bindings/soc/qcom/qcom,apr.txt | 20 +-
.../devicetree/bindings/soc/ti/k3-socinfo.yaml | 40 +
MAINTAINERS | 10 +
arch/arm/mach-mediatek/mediatek.c | 2 +-
arch/arm/mach-tegra/pm.c | 4 +
arch/arm/mach-tegra/reset-handler.S | 7 +-
arch/arm64/Kconfig.platforms | 2 +-
drivers/bus/Kconfig | 30 +
drivers/bus/Makefile | 2 +
drivers/bus/bt1-apb.c | 421 ++++++++
drivers/bus/bt1-axi.c | 314 ++++++
drivers/clk/Makefile | 2 +-
drivers/clk/mediatek/Kconfig | 7 +
drivers/clk/mediatek/Makefile | 1 +
drivers/clk/mediatek/clk-mt2701-mm.c | 9 +-
drivers/clk/mediatek/clk-mt2712-mm.c | 9 +-
drivers/clk/mediatek/clk-mt6779-mm.c | 9 +-
drivers/clk/mediatek/clk-mt6797-mm.c | 9 +-
drivers/clk/mediatek/clk-mt8173-mm.c | 146 +++
drivers/clk/mediatek/clk-mt8173.c | 104 --
drivers/clk/mediatek/clk-mt8183-mm.c | 9 +-
drivers/cpufreq/Kconfig.arm | 6 +-
drivers/cpufreq/tegra20-cpufreq.c | 217 +---
drivers/cpuidle/cpuidle-tegra.c | 1 -
drivers/firmware/arm_scmi/Makefile | 4 +-
drivers/firmware/arm_scmi/base.c | 7 +
drivers/firmware/arm_scmi/common.h | 11 +
drivers/firmware/arm_scmi/driver.c | 133 ++-
drivers/firmware/arm_scmi/mailbox.c | 17 +
drivers/firmware/arm_scmi/perf.c | 5 +
drivers/firmware/arm_scmi/power.c | 6 +
drivers/firmware/arm_scmi/sensors.c | 4 +
drivers/firmware/arm_scmi/shmem.c | 15 +
drivers/firmware/arm_scmi/smc.c | 153 +++
drivers/firmware/imx/imx-scu.c | 64 +-
drivers/firmware/qcom_scm-legacy.c | 2 +-
drivers/firmware/qcom_scm.c | 11 +-
drivers/firmware/tegra/bpmp-tegra186.c | 4 +-
drivers/firmware/tegra/bpmp.c | 9 +-
drivers/firmware/trusted_foundations.c | 21 +-
drivers/gpu/drm/mediatek/Kconfig | 1 +
drivers/gpu/drm/mediatek/mtk_disp_color.c | 5 +-
drivers/gpu/drm/mediatek/mtk_disp_ovl.c | 5 +-
drivers/gpu/drm/mediatek/mtk_disp_rdma.c | 5 +-
drivers/gpu/drm/mediatek/mtk_dpi.c | 12 +-
drivers/gpu/drm/mediatek/mtk_drm_crtc.c | 19 +-
drivers/gpu/drm/mediatek/mtk_drm_ddp.c | 259 +----
drivers/gpu/drm/mediatek/mtk_drm_ddp.h | 7 -
drivers/gpu/drm/mediatek/mtk_drm_drv.c | 45 +-
drivers/gpu/drm/mediatek/mtk_drm_drv.h | 2 +-
drivers/gpu/drm/mediatek/mtk_dsi.c | 8 +-
drivers/gpu/drm/mediatek/mtk_hdmi.c | 4 +-
drivers/memory/Kconfig | 11 +
drivers/memory/Makefile | 1 +
drivers/memory/bt1-l2-ctl.c | 322 ++++++
drivers/memory/samsung/exynos5422-dmc.c | 8 +-
drivers/of/of_reserved_mem.c | 41 +-
drivers/reset/hisilicon/hi6220_reset.c | 69 +-
drivers/reset/reset-imx7.c | 101 ++
drivers/soc/amlogic/meson-ee-pwrc.c | 112 +-
drivers/soc/fsl/dpio/dpio-service.c | 6 +-
drivers/soc/fsl/dpio/qbman-portal.c | 12 -
drivers/soc/fsl/qbman/qman.c | 5 -
drivers/soc/fsl/qe/qe.c | 4 +-
drivers/soc/fsl/qe/ucc.c | 2 +-
drivers/soc/imx/soc-imx8m.c | 7 +-
drivers/soc/mediatek/Kconfig | 7 +
drivers/soc/mediatek/Makefile | 1 +
drivers/soc/mediatek/mtk-mmsys.c | 378 +++++++
drivers/soc/qcom/Kconfig | 6 +-
drivers/soc/qcom/cmd-db.c | 78 +-
drivers/soc/qcom/pdr_interface.c | 4 -
drivers/soc/qcom/qcom_aoss.c | 1 +
drivers/soc/qcom/rpmh-internal.h | 59 +-
drivers/soc/qcom/rpmh-rsc.c | 746 ++++++++++----
drivers/soc/qcom/rpmh.c | 97 +-
drivers/soc/qcom/rpmhpd.c | 24 +
drivers/soc/qcom/rpmpd.c | 5 +
drivers/soc/qcom/smp2p.c | 4 +-
drivers/soc/qcom/socinfo.c | 6 +
drivers/soc/renesas/Kconfig | 11 +
drivers/soc/renesas/Makefile | 1 +
drivers/soc/renesas/r8a7742-sysc.c | 42 +
drivers/soc/renesas/rcar-rst.c | 1 +
drivers/soc/renesas/rcar-sysc.c | 3 +
drivers/soc/renesas/rcar-sysc.h | 1 +
drivers/soc/tegra/Kconfig | 1 +
drivers/soc/tegra/fuse/fuse-tegra.c | 57 +-
drivers/soc/tegra/fuse/fuse-tegra20.c | 1 +
drivers/soc/tegra/fuse/fuse-tegra30.c | 6 +
drivers/soc/tegra/fuse/fuse.h | 8 +
drivers/soc/tegra/fuse/tegra-apbmisc.c | 32 +-
drivers/soc/tegra/pmc.c | 3 +
drivers/soc/ti/Kconfig | 10 +
drivers/soc/ti/Makefile | 1 +
drivers/soc/ti/k3-socinfo.c | 152 +++
drivers/soc/ti/knav_qmss_queue.c | 2 +-
drivers/staging/media/Kconfig | 2 +
drivers/staging/media/Makefile | 1 +
drivers/staging/media/tegra-video/Kconfig | 12 +
drivers/staging/media/tegra-video/Makefile | 8 +
drivers/staging/media/tegra-video/TODO | 11 +
drivers/staging/media/tegra-video/csi.c | 539 ++++++++++
drivers/staging/media/tegra-video/csi.h | 147 +++
drivers/staging/media/tegra-video/tegra210.c | 978 ++++++++++++++++++
drivers/staging/media/tegra-video/vi.c | 1074 ++++++++++++++++++++
drivers/staging/media/tegra-video/vi.h | 257 +++++
drivers/staging/media/tegra-video/video.c | 155 +++
drivers/staging/media/tegra-video/video.h | 29 +
drivers/tee/Kconfig | 2 +
drivers/tee/optee/call.c | 6 +-
drivers/tee/tee_core.c | 159 +++
drivers/tee/tee_shm.c | 31 +-
drivers/thermal/imx_sc_thermal.c | 2 +-
include/asm-generic/io.h | 64 +-
include/dt-bindings/clock/r8a7742-cpg-mssr.h | 42 +
include/dt-bindings/clock/tegra114-car.h | 14 +-
include/dt-bindings/clock/tegra124-car-common.h | 14 +-
include/dt-bindings/clock/tegra20-car.h | 2 +-
include/dt-bindings/clock/tegra210-car.h | 16 +-
include/dt-bindings/clock/tegra30-car.h | 14 +-
include/dt-bindings/firmware/imx/rsrc.h | 84 ++
include/dt-bindings/power/meson-gxbb-power.h | 13 +
include/dt-bindings/power/meson8-power.h | 13 +
include/dt-bindings/power/qcom-rpmpd.h | 12 +
include/dt-bindings/power/r8a7742-sysc.h | 29 +
.../dt-bindings/reset/amlogic,meson-gxbb-reset.h | 2 +-
include/dt-bindings/reset/imx8mp-reset.h | 50 +
include/dt-bindings/reset/imx8mq-reset.h | 56 +-
include/linux/firmware/imx/sci.h | 1 -
include/linux/firmware/imx/types.h | 65 --
include/linux/firmware/trusted_foundations.h | 1 +
include/linux/fsl/bestcomm/bestcomm.h | 2 +-
include/linux/of_reserved_mem.h | 12 +
include/linux/scmi_protocol.h | 6 +
include/linux/scpi_protocol.h | 6 +
include/linux/soc/mediatek/mtk-mmsys.h | 20 +
include/linux/tee_drv.h | 17 +
include/soc/fsl/qe/qe.h | 2 +-
include/soc/qcom/cmd-db.h | 1 +
include/uapi/linux/tee.h | 9 +
kernel/cpu_pm.c | 4 +-
lib/logic_pio.c | 22 +-
156 files changed, 8030 insertions(+), 1241 deletions(-)
create mode 100644 Documentation/devicetree/bindings/bus/baikal,bt1-apb.yaml
create mode 100644 Documentation/devicetree/bindings/bus/baikal,bt1-axi.yaml
create mode 100644
Documentation/devicetree/bindings/cpufreq/nvidia,tegra20-cpufreq.txt
create mode 100644
Documentation/devicetree/bindings/memory-controllers/baikal,bt1-l2-ctl.yaml
create mode 100644
Documentation/devicetree/bindings/memory-controllers/nvidia,tegra210-emc.yaml
create mode 100644 Documentation/devicetree/bindings/soc/ti/k3-socinfo.yaml
create mode 100644 drivers/bus/bt1-apb.c
create mode 100644 drivers/bus/bt1-axi.c
create mode 100644 drivers/clk/mediatek/clk-mt8173-mm.c
create mode 100644 drivers/firmware/arm_scmi/smc.c
create mode 100644 drivers/memory/bt1-l2-ctl.c
create mode 100644 drivers/soc/mediatek/mtk-mmsys.c
create mode 100644 drivers/soc/renesas/r8a7742-sysc.c
create mode 100644 drivers/soc/ti/k3-socinfo.c
create mode 100644 drivers/staging/media/tegra-video/Kconfig
create mode 100644 drivers/staging/media/tegra-video/Makefile
create mode 100644 drivers/staging/media/tegra-video/TODO
create mode 100644 drivers/staging/media/tegra-video/csi.c
create mode 100644 drivers/staging/media/tegra-video/csi.h
create mode 100644 drivers/staging/media/tegra-video/tegra210.c
create mode 100644 drivers/staging/media/tegra-video/vi.c
create mode 100644 drivers/staging/media/tegra-video/vi.h
create mode 100644 drivers/staging/media/tegra-video/video.c
create mode 100644 drivers/staging/media/tegra-video/video.h
create mode 100644 include/dt-bindings/clock/r8a7742-cpg-mssr.h
create mode 100644 include/dt-bindings/power/meson-gxbb-power.h
create mode 100644 include/dt-bindings/power/meson8-power.h
create mode 100644 include/dt-bindings/power/r8a7742-sysc.h
create mode 100644 include/dt-bindings/reset/imx8mp-reset.h
delete mode 100644 include/linux/firmware/imx/types.h
create mode 100644 include/linux/soc/mediatek/mtk-mmsys.h
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply
* [GIT PULL 2/4]ARM: defconfig updates for v5.8
From: Arnd Bergmann @ 2020-06-04 20:52 UTC (permalink / raw)
To: Linus Torvalds, SoC Team, Linux ARM, Linux Kernel Mailing List
In-Reply-To: <CAK8P3a00L4n3b=X+PQXe1pxf9CHryZTes9L1MD5i2+0RLXprfw@mail.gmail.com>
The following changes since commit b9bbe6ed63b2b9f2c9ee5cbd0f2c946a2723f4ce:
Linux 5.7-rc6 (2020-05-17 16:48:37 -0700)
are available in the Git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc.git
tags/arm-defconfig-5.8
for you to fetch changes up to f11d7cb47f157b6af61cea8e4c571c8f81d670b4:
Merge tag 'imx-defconfig-5.8' of
git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into
arm/defconfig (2020-05-26 00:17:12 +0200)
----------------------------------------------------------------
ARM: defconfig updates for v5.8
These are the usual updates to arm/arm64 defconfig files,
enabling newly added drivers and addressing changes to Kconfig
files.
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
----------------------------------------------------------------
Alex Elder (1):
arm64: defconfig: enable Qualcomm IPA and RMNet modules
Andreas Kemnade (1):
ARM: imx_v6_v7_defconfig: extend RN5T618 PMIC family support
Anson Huang (1):
arm64: defconfig: Enable CONFIG_PINCTRL_IMX8DXL by default
Arnd Bergmann (12):
Merge tag 'ux500-defconfig-v5.7' of
git://git.kernel.org/.../linusw/linux-stericsson into arm/defconfig
Merge tag 'renesas-arm-defconfig-for-v5.8-tag1' of
git://git.kernel.org/.../geert/renesas-devel into arm/defconfig
Merge tag 'arm-soc/for-5.8/defconfig' of
https://github.com/Broadcom/stblinux into arm/defconfig
Merge tag 'samsung-defconfig-5.8' of
git://git.kernel.org/.../krzk/linux into arm/defconfig
Merge tag 'renesas-arm-defconfig-for-v5.8-tag2' of
git://git.kernel.org/.../geert/renesas-devel into arm/defconfig
Merge tag 'sunxi-config-for-5.8-1' of
git://git.kernel.org/.../sunxi/linux into arm/defconfig
Merge tag 'at91-5.8-defconfig' of
git://git.kernel.org/.../at91/linux into arm/defconfig
Merge tag 'qcom-arm64-defconfig-for-5.8' of
git://git.kernel.org/.../qcom/linux into arm/defconfig
Merge tag 'amlogic-defconfig' of
git://git.kernel.org/.../khilman/linux-amlogic into arm/defconfig
Merge tag 'hisi-arm64-defconfig-for-5.8' of
git://github.com/hisilicon/linux-hisi into arm/defconfig
Merge tag 'arm64_defconfig_for_v5.8' of
git://git.kernel.org/.../dinguyen/linux into arm/defconfig
Merge tag 'imx-defconfig-5.8' of
git://git.kernel.org/.../shawnguo/linux into arm/defconfig
Bjorn Andersson (2):
arm64: defconfig: Remove QCOM_GLINK_SSR
arm64: defconfig: Enable Qualcomm SC7180 pinctrl and gcc
Clément Péron (1):
arm64: configs: Enable sun50i cpufreq nvmem
Corentin Labbe (1):
ARM: configs: sunxi: Add sun8i analog codec
Dinh Nguyen (1):
arm64: defconfig: Add LEDS_TRIGGER_TIMER
Florian Fainelli (1):
Merge tag 'tags/bcm2835-defconfig-next-2020-03-27' into defconfig/next
Geert Uytterhoeven (1):
ARM: shmobile: defconfig: Refresh for v5.7-rc1
Jerome Brunet (1):
arm64: defconfig: enable meson gx audio as module
Lad Prabhakar (2):
ARM: shmobile: defconfig: Enable r8a7742 SoC
ARM: multi_v7_defconfig: Enable r8a7742 SoC
Linus Walleij (1):
ARM: defconfig: u8500: Enable new drivers for ux500
Marek Szyprowski (2):
ARM: exynos_defconfig: Enable serial bus and BCM HCIUART drivers
ARM: exynos_defconfig: Compile MAC80211/CFG80211 as modules
Nicolas Saenz Julienne (1):
ARM: bcm2835_defconfig: Enable fixed-regulator
Razvan Stefanescu (2):
ARM: configs: at91: sama5: enable SAMA5D2_PIOBU
ARM: configs: at91: sama5: enable MCP16502 regulator
Robert Foss (1):
arm64: defconfig: Enable Qualcomm CAMCC, CAMSS and CCI drivers
Stephan Gerhold (1):
ARM: defconfig: u8500: Enable new drivers for samsung-golden
Vinod Koul (1):
arm64: defconfig: Enable SM8250 GCC driver
Zhou Wang (1):
arm64: defconfig: Enable UACCE/PCI PASID/SEC2/HPRE configs
arch/arm/configs/bcm2835_defconfig | 1 +
arch/arm/configs/exynos_defconfig | 8 +++++---
arch/arm/configs/imx_v6_v7_defconfig | 2 ++
arch/arm/configs/multi_v7_defconfig | 1 +
arch/arm/configs/sama5_defconfig | 2 ++
arch/arm/configs/shmobile_defconfig | 2 ++
arch/arm/configs/sunxi_defconfig | 1 +
arch/arm/configs/u8500_defconfig | 14 ++++++++++++++
arch/arm64/configs/defconfig | 18 +++++++++++++++++-
9 files changed, 45 insertions(+), 4 deletions(-)
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply
* Re: [PATCH] arch/{mips,sparc,microblaze,powerpc}: Don't enable pagefault/preempt twice
From: Ira Weiny @ 2020-06-04 20:51 UTC (permalink / raw)
To: Mike Rapoport
Cc: Peter Zijlstra, Benjamin Herrenschmidt, Dave Hansen, dri-devel,
linux-mips, James E.J. Bottomley, Max Filippov, Paul Mackerras,
H. Peter Anvin, sparclinux, Dan Williams, Helge Deller, x86,
linux-csky, Christoph Hellwig, Ingo Molnar, linux-snps-arc,
Guenter Roeck, linux-xtensa, Borislav Petkov, Al Viro,
Andy Lutomirski, Thomas Gleixner, linux-arm-kernel, Chris Zankel,
Thomas Bogendoerfer, linux-parisc, linux-kernel, Christian Koenig,
Andrew Morton, linuxppc-dev, David S. Miller
In-Reply-To: <20200604094133.GC202650@kernel.org>
On Thu, Jun 04, 2020 at 12:41:33PM +0300, Mike Rapoport wrote:
> On Wed, Jun 03, 2020 at 04:44:17PM -0700, Guenter Roeck wrote:
> >
> > sparc32 smp images in next-20200603 still crash for me with a spinlock
> > recursion. s390 images hang early in boot. Several others (alpha, arm64,
> > various ppc) don't even compile. I can run some more bisects over time,
> > but this is becoming a full-time job :-(.
>
> I've been able to bisect s390 hang to commit b614345f52bc ("x86/entry:
> Clarify irq_{enter,exit}_rcu()").
>
> After this commit, lockdep_hardirq_exit() is called twice on s390 (and
> others) - one time in irq_exit_rcu() and another one in irq_exit():
>
> /**
> * irq_exit_rcu() - Exit an interrupt context without updating RCU
> *
> * Also processes softirqs if needed and possible.
> */
> void irq_exit_rcu(void)
> {
> __irq_exit_rcu();
> /* must be last! */
> lockdep_hardirq_exit();
> }
>
> /**
> * irq_exit - Exit an interrupt context, update RCU and lockdep
> *
> * Also processes softirqs if needed and possible.
> */
> void irq_exit(void)
> {
> irq_exit_rcu();
> rcu_irq_exit();
> /* must be last! */
> lockdep_hardirq_exit();
> }
>
> Removing the call in irq_exit() make s390 boot again, and judgung by the
> x86 entry code, the comment /* must be last! */ is stale...
FWIW I got s390 to compile and this patch fixes s390 booting for me as well.
13:05:25 > /home/iweiny/dev/linux-build-test/rootfs/s390/run-qemu-s390.sh
Build reference: next-20200603-4-g840714292d8c
Building s390:defconfig:initrd ... running ........... passed
Building s390:defconfig:virtio-blk-ccw:rootfs ... running ........... passed
Building s390:defconfig:scsi[virtio-ccw]:rootfs ... running .............. passed
Building s390:defconfig:virtio-pci:rootfs ... running ........... passed
Building s390:defconfig:scsi[virtio-pci]:rootfs ... running ........... passed
Ira
>
> @Peter, @Thomas, can you comment please?
>
> From e51d50ee6f4d1f446decf91c2c67230da14ff82c Mon Sep 17 00:00:00 2001
> From: Mike Rapoport <rppt@linux.ibm.com>
> Date: Thu, 4 Jun 2020 12:37:03 +0300
> Subject: [PATCH] softirq: don't call lockdep_hardirq_exit() twice
>
> After commit b614345f52bc ("x86/entry: Clarify irq_{enter,exit}_rcu()")
> lockdep_hardirq_exit() is called twice on every architecture that uses
> irq_exit(): one time in irq_exit_rcu() and another one in irq_exit().
>
> Remove the extra call in irq_exit().
>
> Signed-off-by: Mike Rapoport <rppt@linux.ibm.com>
> ---
> kernel/softirq.c | 3 ---
> 1 file changed, 3 deletions(-)
>
> diff --git a/kernel/softirq.c b/kernel/softirq.c
> index a3eb6eba8c41..7523f4ce4c1d 100644
> --- a/kernel/softirq.c
> +++ b/kernel/softirq.c
> @@ -427,7 +427,6 @@ static inline void __irq_exit_rcu(void)
> void irq_exit_rcu(void)
> {
> __irq_exit_rcu();
> - /* must be last! */
> lockdep_hardirq_exit();
> }
>
> @@ -440,8 +439,6 @@ void irq_exit(void)
> {
> irq_exit_rcu();
> rcu_irq_exit();
> - /* must be last! */
> - lockdep_hardirq_exit();
> }
>
> /*
> --
> 2.26.2
>
>
>
> > Guenter
>
> --
> Sincerely yours,
> Mike.
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply
* [GIT PULL 1/4] ARM: SoC changes for v5.8
From: Arnd Bergmann @ 2020-06-04 20:50 UTC (permalink / raw)
To: Linus Torvalds, SoC Team, Linux ARM, Linux Kernel Mailing List
In-Reply-To: <CAK8P3a1dmaiYR5Oxkc0CQcxTm=rAHSx6R+xtf4Wup29JqXNZsA@mail.gmail.com>
The following changes since commit 0e698dfa282211e414076f9dc7e83c1c288314fd:
Linux 5.7-rc4 (2020-05-03 14:56:04 -0700)
are available in the Git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc.git tags/arm-soc-5.8
for you to fetch changes up to d2353bad2c1eef7a1228645fbb21e7887c633d12:
ARM: omap2: fix omap5_realtime_timer_init definition (2020-06-02
19:14:21 +0200)
----------------------------------------------------------------
ARM: SoC changes for v5.8
One new platform gets added, the Realtek RTD1195, which is an older
Cortex-a7 based relative of the RTD12xx chips that are already supported
in arch/arm64. The platform may also be extended to support running
32-bit kernels on those 64-bit chips for memory-constrained machines.
In the Renesas shmobile platform, we gain support for "RZ/G1H" or R8A7742,
an eight-core chip based on Cortex-A15 and Cortex-A7 cores, originally
released in 2016 as one of the last high-end 32-bit designs.
There is ongoing cleanup for the integrator, tegra, imx, and omap2
platforms, with integrator getting very close to the goal of having
zero code in arch/arm/, and omap2 moving more of the chip specifics
from old board code into device tree files.
The Versatile Express platform is made more modular, with built-in
drivers now becoming loadable modules. This is part of a greater effort
for the Android OS to have a common kernel binary for all platforms and
any platform specific code in loadable modules.
The PXA platform drops support for Compulab's pxa2xx boards that had
rather unusual flash and PCI drivers but no known users remaining.
All device drivers specific to those boards can now get removed as
well.
Across platforms, there is ongoing cleanup, with Geert and Rob
revisiting some a lot of Kconfig options.
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
----------------------------------------------------------------
Anders Roxell (4):
Revert "ARM: vexpress: Don't select VEXPRESS_CONFIG"
power: vexpress: add suppress_bind_attrs to true
power: vexpress: cleanup: use builtin_platform_driver
power: reset: vexpress: fix build issue
Andreas Färber (2):
ARM: Prepare Realtek RTD1195
MAINTAINERS: Add Realtek arm DT files
Andrey Smirnov (1):
ARM: vf610: report soc info via soc device
Arnd Bergmann (16):
Merge tag 'versatile-v5.8-1' of
git://git.kernel.org/.../linusw/linux-integrator into arm/soc
Merge tag 'renesas-arm-soc-for-v5.8-tag1' of
git://git.kernel.org/.../geert/renesas-devel into arm/soc
Merge tag 'realtek-soc-for-5.8' of
git://git.kernel.org/.../afaerber/linux-realtek into arm/soc
Merge tag 'arm-soc/for-5.8/maintainers' of
https://github.com/Broadcom/stblinux into arm/soc
Merge tag 'arm-soc/for-5.8/soc' of
https://github.com/Broadcom/stblinux into arm/soc
Merge tag 'samsung-soc-5.8' of
git://git.kernel.org/.../krzk/linux into arm/soc
Merge tag 'omap-for-v5.8/soc-signed-take2' of
git://git.kernel.org/.../tmlind/linux-omap into arm/soc
Merge tag 'vexpress-modules-for-soc-v2' of
git://git.kernel.org/.../robh/linux into arm/soc
Merge tag 'renesas-arm-soc-for-v5.8-tag2' of
git://git.kernel.org/.../geert/renesas-devel into arm/soc
Merge tag 'tegra-for-5.8-arm-core' of
git://git.kernel.org/.../tegra/linux into arm/soc
Merge tag 'imx-soc-5.8' of
git://git.kernel.org/.../shawnguo/linux into arm/soc
Merge tag 'omap-for-v5.8/timer-signed' of
git://git.kernel.org/.../tmlind/linux-omap into arm/soc
Merge tag 'mvebu-arm-5.8-1' of
git://git.infradead.org/linux-mvebu into arm/soc
Merge tag 'v5.8-rockchip-soc32-1' of
git://git.kernel.org/.../mmind/linux-rockchip into arm/soc
ARM: davinci: fix build failure without I2C
ARM: omap2: fix omap5_realtime_timer_init definition
Colin Ian King (1):
ARM: rockchip: fix spelling mistake "to" -> "too"
Dmitry Osipenko (7):
firmware: tf: Different way of L2 cache enabling after LP2 suspend
ARM: tegra: Initialize r0 register for firmware wake-up
ARM: tegra: Do not fully reinitialize L2 on resume
ARM: tegra: Correct PL310 Auxiliary Control Register initialization
ARM: tegra: Switch CPU to PLLP on resume from LP1 on Tegra30/114/124
ARM: tegra: Don't enable PLLX while resuming from LP1 on Tegra30
ARM: tegra: Create tegra20-cpufreq platform device on Tegra30
Florian Fainelli (1):
ARM: mm: Remove virtual address print from B15 RAC driver
Geert Uytterhoeven (19):
ARM: rockchip: Replace <linux/clk-provider.h> by <linux/of_clk.h>
ARM: integrator: Drop unneeded select of SPARSE_IRQ
ARM: realview: Drop unneeded select of multi-platform features
ARM: omap2plus: Drop unneeded select of MIGHT_HAVE_CACHE_L2X0
ARM/time: Replace <linux/clk-provider.h> by <linux/of_clk.h>
ARM: mediatek: Replace <linux/clk-provider.h> by <linux/of_clk.h>
ARM: mmp: Replace <linux/clk-provider.h> by <linux/of_clk.h>
ARM: arch timer: Drop unneeded select GENERIC_CLOCKEVENTS
ARM: actions: Drop unneeded select of COMMON_CLK
ARM: alpine: Drop unneeded select of HAVE_SMP
ARM: asm9260: Drop unneeded select of GENERIC_CLOCKEVENTS
ARM: aspeed: Drop unneeded select of HAVE_SMP
ARM: berlin: Drop unneeded select of HAVE_SMP
ARM: clps711x: Drop unneeded select of multi-platform selected options
ARM: davinci: Drop unneeded select of TIMER_OF
ARM: mmp: Drop unneeded select of COMMON_CLK
ARM: mvebu: Drop unneeded select of HAVE_SMP
ARM: prima2: Drop unneeded select of HAVE_SMP
ARM: socfpga: Drop unneeded select of PCI_DOMAINS_GENERIC
Lad Prabhakar (2):
ARM: shmobile: r8a7742: Basic SoC support
ARM: debug-ll: Add support for r8a7742
Linus Walleij (4):
bus: Add DT bindings for Integrator/AP logic modules
bus: Add driver for Integrator/AP logic modules
ARM: integrator: Retire LM and IM-PD1 boardfile code
ARM: integrator: Add some Kconfig selections
Lukas Bulwahn (2):
MAINTAINERS: adjust to renaming physmap_of_versatile.c
MAINTAINERS: clarify maintenance of ARM Dove drivers
Ma Feng (2):
ARM: omap2: make omap5_erratum_workaround_801819 static
ARM: imx: pcm037: make pcm970_sja1000_platform_data static
Nicolas Saenz Julienne (1):
MAINTAINERS: Update Raspberry Pi development repository
Peng Fan (3):
ARM: imx: use device_initcall for imx_soc_device_init
ARM: imx: move cpu definitions into a header
soc: imx: move cpu code to drivers/soc/imx
Rob Herring (21):
ARM: versatile: Remove dead sched_clock code
ARM: versatile: Drop mapping IB2 module registers
ARM: vexpress: Move vexpress_flags_set() into arch code
arm64: vexpress: Don't select CONFIG_POWER_RESET_VEXPRESS
amba: Retry adding deferred devices at late_initcall
clk: versatile: Rework kconfig structure
clk: versatile: Only enable SP810 on 32-bit by default
clk: vexpress-osc: Use the devres clock API variants
clk: vexpress-osc: Support building as a module
mfd: vexpress-sysreg: Drop selecting CONFIG_CLKSRC_MMIO
mfd: vexpress-sysreg: Drop unused syscon child devices
mfd: vexpress-sysreg: Use devres API variants
mfd: vexpress-sysreg: Support building as a module
bus: vexpress-config: Merge vexpress-syscfg into vexpress-config
bus: vexpress-config: simplify config bus probing
vexpress: Move setting master site to vexpress-config bus
bus: vexpress-config: Support building as module
ARM: vexpress: Don't select VEXPRESS_CONFIG
clk: versatile: Drop the legacy IM-PD1 clock code
clk: versatile: Fix kconfig dependency on COMMON_CLK_VERSATILE
ARM: zynq: Don't select CONFIG_ICST
Robert Jarzmik (2):
ARM: pxa: remove Compulab pxa2xx boards
MAINTAINERS: pxa: remove Compulab arm/pxa support
Samuel Zou (1):
ARM: OMAP2+: pm33xx-core: Make am43xx_get_rtc_base_addr static
Stefan Agner (1):
ARM: OMAP2+: drop unnecessary adrl
Tang Bin (2):
ARM: samsung: Omit superfluous error message in s3c_adc_probe()
ARM: samsung: Use devm_platform_ioremap_resource() to simplify code
Thierry Reding (2):
firmware: tegra: Make BPMP a regular driver
Merge branch 'for-5.8/firmware' into for-5.8/arm/core
Tony Lindgren (16):
clocksource/drivers/timer-ti-32k: Add support for initializing directly
clocksource/drivers/timer-ti-dm: Add clockevent and clocksource support
clocksource/drivers/timer-ti-dm: Fix warning for set but not used
clk: ti: dm816: enable sysclk6_ck on init
bus: ti-sysc: Ignore timer12 on secure omap3
ARM: OMAP2+: Add omap_init_time_of()
ARM: dts: Configure system timers for am335x
ARM: dts: Configure system timers for am437x
ARM: dts: Configure system timers for omap4
ARM: dts: Configure system timers for omap5 and dra7
ARM: dts: Configure system timers for omap3
ARM: dts: Configure system timers for ti81xx
ARM: dts: Configure system timers for omap2
ARM: OMAP2+: Drop old timer code for dmtimer and 32k counter
bus: ti-sysc: Timers no longer need legacy quirk handling
ARM: OMAP2+: Fix regression for using local timer on non-SMP SoCs
Wei Yongjun (1):
bus: arm-integrator-lm: Fix return value check in integrator_ap_lm_probe()
Wolfram Sang (1):
ARM: s3c64xx: convert to use i2c_new_client_device()
.../bindings/bus/arm,integrator-ap-lm.yaml | 83 ++
MAINTAINERS | 13 +-
arch/arm/Kconfig | 4 +-
arch/arm/Kconfig.debug | 10 +
arch/arm/Makefile | 3 +
arch/arm/boot/dts/am33xx-l4.dtsi | 6 +-
arch/arm/boot/dts/am33xx.dtsi | 20 +
arch/arm/boot/dts/am3517.dtsi | 24 +-
arch/arm/boot/dts/am4372.dtsi | 20 +
arch/arm/boot/dts/am437x-l4.dtsi | 7 +-
arch/arm/boot/dts/dm814x.dtsi | 74 +-
arch/arm/boot/dts/dm816x.dtsi | 78 +-
arch/arm/boot/dts/dra7-l4.dtsi | 7 +-
arch/arm/boot/dts/dra7.dtsi | 10 +
arch/arm/boot/dts/omap2.dtsi | 31 +-
arch/arm/boot/dts/omap2420.dtsi | 68 +-
arch/arm/boot/dts/omap2430.dtsi | 68 +-
arch/arm/boot/dts/omap3-beagle.dts | 33 +
arch/arm/boot/dts/omap3-devkit8000.dts | 33 +
arch/arm/boot/dts/omap3.dtsi | 134 +-
arch/arm/boot/dts/omap4-l4.dtsi | 4 +-
arch/arm/boot/dts/omap4.dtsi | 10 +
arch/arm/boot/dts/omap5-l4.dtsi | 4 +-
arch/arm/boot/dts/omap5.dtsi | 10 +
arch/arm/configs/cm_x2xx_defconfig | 173 ---
arch/arm/configs/em_x270_defconfig | 178 ---
arch/arm/configs/pxa_defconfig | 2 -
arch/arm/kernel/time.c | 2 +-
arch/arm/mach-actions/Kconfig | 1 -
arch/arm/mach-alpine/Kconfig | 1 -
arch/arm/mach-asm9260/Kconfig | 1 -
arch/arm/mach-aspeed/Kconfig | 1 -
arch/arm/mach-berlin/Kconfig | 1 -
arch/arm/mach-clps711x/Kconfig | 5 -
arch/arm/mach-davinci/Kconfig | 1 -
arch/arm/mach-davinci/board-dm644x-evm.c | 26 +-
arch/arm/mach-imx/common.h | 1 -
arch/arm/mach-imx/cpu.c | 159 ---
arch/arm/mach-imx/mach-imx6q.c | 8 +-
arch/arm/mach-imx/mach-imx6sl.c | 8 +-
arch/arm/mach-imx/mach-imx6sx.c | 8 +-
arch/arm/mach-imx/mach-imx6ul.c | 8 +-
arch/arm/mach-imx/mach-imx7d.c | 6 -
arch/arm/mach-imx/mach-imx7ulp.c | 2 +-
arch/arm/mach-imx/mach-pcm037.c | 2 +-
arch/arm/mach-imx/mach-vf610.c | 47 +
arch/arm/mach-imx/mxc.h | 22 +-
arch/arm/mach-integrator/Kconfig | 9 +-
arch/arm/mach-integrator/Makefile | 3 +-
arch/arm/mach-integrator/impd1.c | 475 --------
arch/arm/mach-integrator/impd1.h | 15 -
arch/arm/mach-integrator/integrator_ap.c | 31 -
arch/arm/mach-integrator/lm.c | 96 --
arch/arm/mach-integrator/lm.h | 24 -
arch/arm/mach-mediatek/mediatek.c | 2 +-
arch/arm/mach-mmp/Kconfig | 1 -
arch/arm/mach-mmp/mmp-dt.c | 2 +-
arch/arm/mach-mmp/mmp2-dt.c | 2 +-
arch/arm/mach-mvebu/Kconfig | 3 -
arch/arm/mach-omap2/Kconfig | 1 -
arch/arm/mach-omap2/Makefile | 6 +-
arch/arm/mach-omap2/board-generic.c | 39 +-
arch/arm/mach-omap2/common.h | 7 +
arch/arm/mach-omap2/omap-smp.c | 2 +-
arch/arm/mach-omap2/omap_hwmod_2420_data.c | 20 -
arch/arm/mach-omap2/omap_hwmod_2430_data.c | 19 -
.../mach-omap2/omap_hwmod_2xxx_interconnect_data.c | 8 -
arch/arm/mach-omap2/omap_hwmod_2xxx_ipblock_data.c | 47 -
.../mach-omap2/omap_hwmod_33xx_43xx_common_data.h | 2 -
.../omap_hwmod_33xx_43xx_interconnect_data.c | 8 -
.../mach-omap2/omap_hwmod_33xx_43xx_ipblock_data.c | 62 -
arch/arm/mach-omap2/omap_hwmod_33xx_data.c | 10 -
arch/arm/mach-omap2/omap_hwmod_3xxx_data.c | 146 +--
arch/arm/mach-omap2/omap_hwmod_43xx_data.c | 45 -
arch/arm/mach-omap2/omap_hwmod_44xx_data.c | 90 --
arch/arm/mach-omap2/omap_hwmod_54xx_data.c | 89 --
arch/arm/mach-omap2/omap_hwmod_7xx_data.c | 176 ---
arch/arm/mach-omap2/omap_hwmod_81xx_data.c | 74 --
arch/arm/mach-omap2/omap_hwmod_common_data.h | 3 -
arch/arm/mach-omap2/pm33xx-core.c | 2 +-
arch/arm/mach-omap2/sleep34xx.S | 2 +-
arch/arm/mach-omap2/timer.c | 577 +--------
arch/arm/mach-prima2/Kconfig | 1 -
arch/arm/mach-pxa/Kconfig | 17 -
arch/arm/mach-pxa/Makefile | 5 -
arch/arm/mach-pxa/cm-x255.c | 240 ----
arch/arm/mach-pxa/cm-x270.c | 419 -------
arch/arm/mach-pxa/cm-x2xx-pci.c | 196 ---
arch/arm/mach-pxa/cm-x2xx-pci.h | 14 -
arch/arm/mach-pxa/cm-x2xx.c | 538 --------
arch/arm/mach-pxa/em-x270.c | 1286 --------------------
arch/arm/mach-pxa/include/mach/io.h | 18 -
arch/arm/mach-realtek/Kconfig | 11 +
arch/arm/mach-realtek/Makefile | 2 +
arch/arm/mach-realtek/rtd1195.c | 40 +
arch/arm/mach-realview/Kconfig | 10 -
arch/arm/mach-rockchip/platsmp.c | 2 +-
arch/arm/mach-rockchip/rockchip.c | 2 +-
arch/arm/mach-s3c64xx/mach-crag6410-module.c | 7 +-
arch/arm/mach-shmobile/setup-rcar-gen2.c | 2 +
arch/arm/mach-socfpga/Kconfig | 1 -
arch/arm/mach-tegra/pm.c | 4 +
arch/arm/mach-tegra/reset-handler.S | 7 +-
arch/arm/mach-tegra/sleep-tegra30.S | 16 +-
arch/arm/mach-tegra/tegra.c | 8 +-
arch/arm/mach-versatile/Kconfig | 1 -
arch/arm/mach-versatile/versatile_dt.c | 5 -
arch/arm/mach-vexpress/Kconfig | 3 -
arch/arm/mach-vexpress/core.h | 1 +
arch/arm/mach-vexpress/dcscb.c | 1 +
arch/arm/mach-vexpress/v2m.c | 23 +
arch/arm/mach-zynq/Kconfig | 1 -
arch/arm/mm/cache-b15-rac.c | 3 +-
arch/arm/plat-samsung/adc.c | 8 +-
arch/arm/plat-versatile/Kconfig | 7 -
arch/arm/plat-versatile/Makefile | 1 -
arch/arm/plat-versatile/include/plat/sched_clock.h | 7 -
arch/arm/plat-versatile/sched-clock.c | 28 -
arch/arm64/Kconfig.platforms | 3 -
drivers/amba/bus.c | 14 +-
drivers/bus/Kconfig | 11 +-
drivers/bus/Makefile | 2 +-
drivers/bus/arm-integrator-lm.c | 128 ++
drivers/bus/ti-sysc.c | 25 +-
drivers/bus/vexpress-config.c | 354 ++++--
drivers/clk/Makefile | 2 +-
drivers/clk/ti/clk-816x.c | 1 +
drivers/clk/versatile/Kconfig | 21 +-
drivers/clk/versatile/clk-impd1.c | 121 --
drivers/clk/versatile/clk-vexpress-osc.c | 20 +-
drivers/clocksource/Makefile | 1 +
drivers/clocksource/timer-ti-32k.c | 48 +-
drivers/clocksource/timer-ti-dm-systimer.c | 727 +++++++++++
drivers/firmware/tegra/bpmp.c | 9 +-
drivers/firmware/trusted_foundations.c | 21 +-
drivers/mfd/Kconfig | 5 +-
drivers/mfd/vexpress-sysreg.c | 99 +-
drivers/misc/Kconfig | 9 -
drivers/misc/Makefile | 1 -
drivers/misc/vexpress-syscfg.c | 280 -----
drivers/power/reset/Kconfig | 2 +-
drivers/power/reset/vexpress-poweroff.c | 8 +-
drivers/soc/imx/Makefile | 3 +
drivers/soc/imx/soc-imx.c | 192 +++
include/linux/firmware/trusted_foundations.h | 1 +
include/linux/platform_data/clk-integrator.h | 2 -
include/linux/vexpress.h | 30 -
include/soc/imx/cpu.h | 36 +
148 files changed, 2394 insertions(+), 6232 deletions(-)
create mode 100644
Documentation/devicetree/bindings/bus/arm,integrator-ap-lm.yaml
delete mode 100644 arch/arm/configs/cm_x2xx_defconfig
delete mode 100644 arch/arm/configs/em_x270_defconfig
delete mode 100644 arch/arm/mach-integrator/impd1.c
delete mode 100644 arch/arm/mach-integrator/impd1.h
delete mode 100644 arch/arm/mach-integrator/lm.c
delete mode 100644 arch/arm/mach-integrator/lm.h
delete mode 100644 arch/arm/mach-pxa/cm-x255.c
delete mode 100644 arch/arm/mach-pxa/cm-x270.c
delete mode 100644 arch/arm/mach-pxa/cm-x2xx-pci.c
delete mode 100644 arch/arm/mach-pxa/cm-x2xx-pci.h
delete mode 100644 arch/arm/mach-pxa/cm-x2xx.c
delete mode 100644 arch/arm/mach-pxa/em-x270.c
delete mode 100644 arch/arm/mach-pxa/include/mach/io.h
create mode 100644 arch/arm/mach-realtek/Kconfig
create mode 100644 arch/arm/mach-realtek/Makefile
create mode 100644 arch/arm/mach-realtek/rtd1195.c
delete mode 100644 arch/arm/plat-versatile/Kconfig
delete mode 100644 arch/arm/plat-versatile/include/plat/sched_clock.h
delete mode 100644 arch/arm/plat-versatile/sched-clock.c
create mode 100644 drivers/bus/arm-integrator-lm.c
create mode 100644 drivers/clocksource/timer-ti-dm-systimer.c
delete mode 100644 drivers/misc/vexpress-syscfg.c
create mode 100644 drivers/soc/imx/soc-imx.c
delete mode 100644 include/linux/platform_data/clk-integrator.h
create mode 100644 include/soc/imx/cpu.h
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply
* Re: [PATCH v3 12/13] dt-bindings: clock: Add Marvell MMP Audio Clock Controller binding
From: Rob Herring @ 2020-06-04 20:47 UTC (permalink / raw)
To: Lubomir Rintel
Cc: devicetree, Stephen Boyd, Michael Turquette,
linux-kernel@vger.kernel.org, linux-clk,
moderated list:ARM/FREESCALE IMX / MXC ARM ARCHITECTURE
In-Reply-To: <20200519224151.2074597-13-lkundrak@v3.sk>
On Tue, May 19, 2020 at 4:42 PM Lubomir Rintel <lkundrak@v3.sk> wrote:
>
> This describes the bindings for a controller that generates master and bit
> clocks for the I2S interface.
>
> Signed-off-by: Lubomir Rintel <lkundrak@v3.sk>
>
> ---
> Changes since v1:
> - Fix commit message wording
> - Define MMP2_CLK_AUDIO_NR_CLKS
> - Make clock ids start at 0, not 1
> - Fix dt-bindings/clock/marvell,mmp2-audio.h file name
> - Rename node from "clocks" to "clock-controller"
>
> .../clock/marvell,mmp2-audio-clock.yaml | 74 +++++++++++++++++++
> .../dt-bindings/clock/marvell,mmp2-audio.h | 10 +++
> 2 files changed, 84 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/clock/marvell,mmp2-audio-clock.yaml
> create mode 100644 include/dt-bindings/clock/marvell,mmp2-audio.h
>
> diff --git a/Documentation/devicetree/bindings/clock/marvell,mmp2-audio-clock.yaml b/Documentation/devicetree/bindings/clock/marvell,mmp2-audio-clock.yaml
> new file mode 100644
> index 000000000000..ab6e82d1d3a9
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/clock/marvell,mmp2-audio-clock.yaml
> @@ -0,0 +1,74 @@
> +# SPDX-License-Identifier: (GPL-2.0+ OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/clock/marvell,mmp2-audio-clock.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Marvell MMP2 Audio Clock Controller
> +
> +maintainers:
> + - Lubomir Rintel <lkundrak@v3.sk>
> +
> +description: |
> + The audio clock controller generates and supplies the clocks to the audio
> + codec.
> +
> + Each clock is assigned an identifier and client nodes use this identifier
> + to specify the clock which they consume.
> +
> + All these identifiers could be found in
> + <dt-bindings/clock/marvell,mmp2-audio.h>.
> +
> +properties:
> + compatible:
> + enum:
> + - marvell,mmp2-audio-clock
> +
> + reg:
> + maxItems: 1
> +
> + clocks:
> + items:
> + - description: Audio subsystem clock
> + - description: The crystal oscillator clock
> + - description: First I2S clock
> + - description: Second I2S clock
> +
> + clock-names:
> + items:
> + - const: audio
> + - const: vctcxo
> + - const: i2s0
> + - const: i2s1
> +
> + '#clock-cells':
> + const: 1
> +
> + power-domains:
> + maxItems: 1
> +
> +required:
> + - compatible
> + - reg
> + - clocks
> + - clock-names
> + - '#clock-cells'
> +
> +additionalProperties: false
> +
> +examples:
> + - |
> + #include <dt-bindings/clock/marvell,mmp2-audio.h>
> + #include <dt-bindings/power/marvell,mmp2.h>
> +
> + clock-controller@d42a0c30 {
> + compatible = "marvell,mmp2-audio-clock";
> + reg = <0xd42a0c30 0x10>;
> + clock-names = "audio", "vctcxo", "i2s0", "i2s1";
> + clocks = <&soc_clocks MMP2_CLK_AUDIO>,
> + <&soc_clocks MMP2_CLK_VCTCXO>,
> + <&soc_clocks MMP2_CLK_I2S0>,
> + <&soc_clocks MMP2_CLK_I2S1>;
This now breaks linux-next. I think the above defines are missing
their include.
My testing wasn't happy either because it couldn't find
marvell,mmp2.h. I guess that's somewhere in linux-next and now we're
on to the secondary issue. Once that's fixed, then the schema checks
will actually run (hint: make sure they pass).
Please get this fixed or revert before it is sent to Linus. Maybe we
can have an rc1 without the schema broken.
Rob
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply
* [GIT PULL 0/4] ARM: SoC branches for v5.8
From: Arnd Bergmann @ 2020-06-04 20:45 UTC (permalink / raw)
To: Linus Torvalds, SoC Team, Linux ARM, Linux Kernel Mailing List,
Andreas Färber, Marek Vasut, Geert Uytterhoeven, Rob Herring,
Anson Huang, Doug Anderson
Hi Linus,
Here are the usual branches for arm-soc: five new SoC variants, 25
machines added, two machines removed, a few new drivers and the
usual amount of of cleanups and rework.
There are 835 patches from 196 contributors in total, with only
these contributing more than ten patches:
36 Marek Vasut
35 Andreas Färber
27 Geert Uytterhoeven
23 Rob Herring
22 Anson Huang
21 Douglas Anderson
20 Tudor Ambarus
20 Lad Prabhakar
19 Johan Jonker
17 Jonathan Bakker
17 Andre Przywara
16 Suman Anna
15 Jerome Brunet
14 Serge Semin
14 Bjorn Andersson
13 Tony Lindgren
12 Lubomir Rintel
12 Dmitry Osipenko
11 Sudeep Holla
11 Marek Szyprowski
The dirstat shows that as usual most changes are for device
tree files, this time slightly more 32-bit than 64-bit both in number
and size of the changes, while 60% of the newly added machines
are 64-bit.
0.3% Documentation/devicetree/bindings/arm/
0.6% Documentation/devicetree/bindings/bus/
0.2% Documentation/devicetree/bindings/display/tegra/
0.3% Documentation/devicetree/bindings/memory-controllers/
0.5% Documentation/devicetree/bindings/
31.9% arch/arm/boot/dts/
0.7% arch/arm/configs/
0.5% arch/arm/mach-imx/
1.2% arch/arm/mach-integrator/
3.2% arch/arm/mach-omap2/
5.4% arch/arm/mach-pxa/
0.5% arch/arm/
0.6% arch/arm64/boot/dts/allwinner/
4.0% arch/arm64/boot/dts/amlogic/
1.5% arch/arm64/boot/dts/arm/
2.4% arch/arm64/boot/dts/freescale/
0.2% arch/arm64/boot/dts/hisilicon/
5.2% arch/arm64/boot/dts/mediatek/
0.4% arch/arm64/boot/dts/nvidia/
7.6% arch/arm64/boot/dts/qcom/
1.7% arch/arm64/boot/dts/realtek/
2.0% arch/arm64/boot/dts/renesas/
1.4% arch/arm64/boot/dts/rockchip/
0.3% arch/arm64/boot/dts/socionext/
0.4% arch/arm64/boot/dts/sprd/
0.5% arch/arm64/boot/dts/ti/
2.8% drivers/bus/
0.9% drivers/clk/mediatek/
0.4% drivers/clk/versatile/
0.6% drivers/cpufreq/
0.7% drivers/firmware/arm_scmi/
0.2% drivers/firmware/
1.1% drivers/gpu/drm/mediatek/
0.6% drivers/memory/
0.2% drivers/mfd/
0.6% drivers/misc/
0.4% drivers/reset/
0.3% drivers/soc/amlogic/
0.3% drivers/soc/imx/
1.1% drivers/soc/mediatek/
3.0% drivers/soc/qcom/
0.2% drivers/soc/tegra/fuse/
0.3% drivers/soc/ti/
0.2% drivers/soc/
7.8% drivers/staging/media/tegra-video/
0.4% drivers/tee/
0.2% include/dt-bindings/clock/
0.2% include/dt-bindings/firmware/imx/
0.6% include/dt-bindings/reset/
0.3% include/linux/
0.3% include/
The largest outlier are a few added drivers for the Tegra platform
and on MIPS SoC (Baikal-T1), for which I helped get some drivers
reviewed and merged. The changes for omap2 and pxa are
cleanups moving code out of the platform directory.
As of this morning, there were no merge conflicts against your tree.
Arnd
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply
page: next (older) | prev (newer) | latest
- recent:[subjects (threaded)|topics (new)|topics (active)]
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox