Commit 1ed46384 authored by Linus Torvalds's avatar Linus Torvalds

Merge tag 'soc-fixes-6.2' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc

Pull ARM SoC DT and driver fixes from Arnd Bergmann:
 "Lots of dts fixes for Qualcomm Snapdragon and NXP i.MX platforms,
  including:

   - A regression fix for SDHCI controllers on Inforce 6540, and another
     SDHCI fix on SM8350

   - Reenable cluster idle on sm8250 after the the code fix is upstream

   - multiple fixes for the QMP PHY binding, needing an incompatible dt
     change

   - The reserved memory map is updated on Xiaomi Mi 4C and Huawei Nexus
     6P, to avoid instabilities caused by use of protected memory
     regions

   - Fix i.MX8MP DT for missing GPC Interrupt, power-domain typo and USB
     clock error

   - A couple of verdin-imx8mm DT fixes for audio playback support

   - Fix pca9547 i2c-mux node name for i.MX and Vybrid device trees

   - Fix an imx93-11x11-evk uSDHC pad setting problem that causes Micron
     eMMC CMD8 CRC error in HS400ES/HS400 mode

  The remaining ARM and RISC-V platforms only have very few smaller dts
  bugfixes this time:

   - A fix for the SiFive unmatched board's PCI memory space

   - A revert to fix a regression with GPIO on Marvell Armada

   - A fix for the UART address on Marvell AC5

   - Missing chip-select phandles for stm32 boards

   - Selecting the correct clock for the sam9x60 memory controller

   - Amlogic based Odroid-HC4 needs a revert to restore USB
     functionality.

  And finally, there are some minor code fixes:

   - Build fixes for OMAP1, pxa, riscpc, raspberry pi firmware, and zynq
     firmware

   - memory controller driver fixes for an OMAP regression and older
     bugs on tegra, atmel and mvebu

   - reset controller fixes for ti-sci and uniphier platforms

   - ARM SCMI firmware fixes for a couple of rare corner cases

   - Qualcomm platform driver fixes for incorrect error handling and a
     backwards compatibility fix for the apr driver using older dtb

   - NXP i.MX SoC driver fixes for HDMI output, error handling in the
     imx8 soc-id and missing reference counting on older cpuid code"

* tag 'soc-fixes-6.2' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (60 commits)
  firmware: zynqmp: fix declarations for gcc-13
  ARM: dts: stm32: Fix qspi pinctrl phandle for stm32mp151a-prtt1l
  ARM: dts: stm32: Fix qspi pinctrl phandle for stm32mp157c-emstamp-argon
  ARM: dts: stm32: Fix qspi pinctrl phandle for stm32mp15xx-dhcom-som
  ARM: dts: stm32: Fix qspi pinctrl phandle for stm32mp15xx-dhcor-som
  ARM: dts: at91: sam9x60: fix the ddr clock for sam9x60
  ARM: omap1: fix building gpio15xx
  ARM: omap1: fix !ARCH_OMAP1_ANY link failures
  firmware: raspberrypi: Fix type assignment
  arm64: dts: qcom: msm8992-libra: Fix the memory map
  arm64: dts: qcom: msm8992: Don't use sfpb mutex
  PM: AVS: qcom-cpr: Fix an error handling path in cpr_probe()
  arm64: dts: msm8994-angler: fix the memory map
  arm64: dts: marvell: AC5/AC5X: Fix address for UART1
  ARM: footbridge: drop unnecessary inclusion
  Revert "ARM: dts: armada-39x: Fix compatible string for gpios"
  Revert "ARM: dts: armada-38x: Fix compatible string for gpios"
  ARM: pxa: enable PXA310/PXA320 for DT-only build
  riscv: dts: sifive: fu740: fix size of pcie 32bit memory
  soc: qcom: apr: Make qcom,protection-domain optional again
  ...
parents ff83fec8 d2c86555
...@@ -39,8 +39,8 @@ properties: ...@@ -39,8 +39,8 @@ properties:
qcom,protection-domain: qcom,protection-domain:
$ref: /schemas/types.yaml#/definitions/string-array $ref: /schemas/types.yaml#/definitions/string-array
description: | description: |
Protection domain service name and path for APR service Protection domain service name and path for APR service (if supported).
possible values are:: Possible values are::
"avs/audio", "msm/adsp/audio_pd". "avs/audio", "msm/adsp/audio_pd".
"kernel/elf_loader", "msm/modem/wlan_pd". "kernel/elf_loader", "msm/modem/wlan_pd".
"tms/servreg", "msm/adsp/audio_pd". "tms/servreg", "msm/adsp/audio_pd".
...@@ -49,6 +49,5 @@ properties: ...@@ -49,6 +49,5 @@ properties:
required: required:
- reg - reg
- qcom,protection-domain
additionalProperties: true additionalProperties: true
...@@ -304,7 +304,7 @@ spdif_pins: spdif-pins { ...@@ -304,7 +304,7 @@ spdif_pins: spdif-pins {
}; };
gpio0: gpio@18100 { gpio0: gpio@18100 {
compatible = "marvell,armadaxp-gpio", compatible = "marvell,armada-370-gpio",
"marvell,orion-gpio"; "marvell,orion-gpio";
reg = <0x18100 0x40>, <0x181c0 0x08>; reg = <0x18100 0x40>, <0x181c0 0x08>;
reg-names = "gpio", "pwm"; reg-names = "gpio", "pwm";
...@@ -323,7 +323,7 @@ gpio0: gpio@18100 { ...@@ -323,7 +323,7 @@ gpio0: gpio@18100 {
}; };
gpio1: gpio@18140 { gpio1: gpio@18140 {
compatible = "marvell,armadaxp-gpio", compatible = "marvell,armada-370-gpio",
"marvell,orion-gpio"; "marvell,orion-gpio";
reg = <0x18140 0x40>, <0x181c8 0x08>; reg = <0x18140 0x40>, <0x181c8 0x08>;
reg-names = "gpio", "pwm"; reg-names = "gpio", "pwm";
......
...@@ -213,7 +213,7 @@ nand_pins: nand-pins { ...@@ -213,7 +213,7 @@ nand_pins: nand-pins {
}; };
gpio0: gpio@18100 { gpio0: gpio@18100 {
compatible = "marvell,armadaxp-gpio", "marvell,orion-gpio"; compatible = "marvell,orion-gpio";
reg = <0x18100 0x40>; reg = <0x18100 0x40>;
ngpios = <32>; ngpios = <32>;
gpio-controller; gpio-controller;
...@@ -227,7 +227,7 @@ gpio0: gpio@18100 { ...@@ -227,7 +227,7 @@ gpio0: gpio@18100 {
}; };
gpio1: gpio@18140 { gpio1: gpio@18140 {
compatible = "marvell,armadaxp-gpio", "marvell,orion-gpio"; compatible = "marvell,orion-gpio";
reg = <0x18140 0x40>; reg = <0x18140 0x40>;
ngpios = <28>; ngpios = <28>;
gpio-controller; gpio-controller;
......
...@@ -488,7 +488,7 @@ &i2c1 { ...@@ -488,7 +488,7 @@ &i2c1 {
scl-gpios = <&gpio3 21 GPIO_ACTIVE_HIGH>; scl-gpios = <&gpio3 21 GPIO_ACTIVE_HIGH>;
status = "okay"; status = "okay";
i2c-switch@70 { i2c-mux@70 {
compatible = "nxp,pca9547"; compatible = "nxp,pca9547";
#address-cells = <1>; #address-cells = <1>;
#size-cells = <0>; #size-cells = <0>;
......
...@@ -632,7 +632,6 @@ &ssi1 { ...@@ -632,7 +632,6 @@ &ssi1 {
&uart1 { &uart1 {
pinctrl-names = "default"; pinctrl-names = "default";
pinctrl-0 = <&pinctrl_uart1>; pinctrl-0 = <&pinctrl_uart1>;
uart-has-rtscts;
rts-gpios = <&gpio7 1 GPIO_ACTIVE_HIGH>; rts-gpios = <&gpio7 1 GPIO_ACTIVE_HIGH>;
status = "okay"; status = "okay";
}; };
......
...@@ -32,7 +32,7 @@ sys_mclk: clock-sys-mclk { ...@@ -32,7 +32,7 @@ sys_mclk: clock-sys-mclk {
}; };
&i2c2 { &i2c2 {
clock_frequency = <100000>; clock-frequency = <100000>;
pinctrl-names = "default"; pinctrl-names = "default";
pinctrl-0 = <&pinctrl_i2c2>; pinctrl-0 = <&pinctrl_i2c2>;
status = "okay"; status = "okay";
......
...@@ -32,7 +32,7 @@ sys_mclk: clock-sys-mclk { ...@@ -32,7 +32,7 @@ sys_mclk: clock-sys-mclk {
}; };
&i2c1 { &i2c1 {
clock_frequency = <100000>; clock-frequency = <100000>;
pinctrl-names = "default"; pinctrl-names = "default";
pinctrl-0 = <&pinctrl_i2c1>; pinctrl-0 = <&pinctrl_i2c1>;
status = "okay"; status = "okay";
...@@ -52,7 +52,7 @@ pressure-sensor@60 { ...@@ -52,7 +52,7 @@ pressure-sensor@60 {
}; };
&i2c4 { &i2c4 {
clock_frequency = <100000>; clock-frequency = <100000>;
pinctrl-names = "default"; pinctrl-names = "default";
pinctrl-0 = <&pinctrl_i2c1>; pinctrl-0 = <&pinctrl_i2c1>;
status = "okay"; status = "okay";
......
...@@ -43,7 +43,7 @@ sys_mclk: clock-sys-mclk { ...@@ -43,7 +43,7 @@ sys_mclk: clock-sys-mclk {
}; };
&i2c1 { &i2c1 {
clock_frequency = <100000>; clock-frequency = <100000>;
pinctrl-names = "default"; pinctrl-names = "default";
pinctrl-0 = <&pinctrl_i2c1>; pinctrl-0 = <&pinctrl_i2c1>;
status = "okay"; status = "okay";
...@@ -64,7 +64,7 @@ adc@52 { ...@@ -64,7 +64,7 @@ adc@52 {
}; };
&i2c2 { &i2c2 {
clock_frequency = <100000>; clock-frequency = <100000>;
pinctrl-names = "default"; pinctrl-names = "default";
pinctrl-0 = <&pinctrl_i2c2>; pinctrl-0 = <&pinctrl_i2c2>;
status = "okay"; status = "okay";
......
...@@ -19,16 +19,16 @@ soc { ...@@ -19,16 +19,16 @@ soc {
serial@f995e000 { serial@f995e000 {
status = "okay"; status = "okay";
}; };
};
};
sdhci@f9824900 { &sdhc_1 {
bus-width = <8>; bus-width = <8>;
non-removable; non-removable;
status = "okay"; status = "okay";
}; };
sdhci@f98a4900 { &sdhc_2 {
cd-gpios = <&tlmm 122 GPIO_ACTIVE_LOW>; cd-gpios = <&tlmm 122 GPIO_ACTIVE_LOW>;
bus-width = <4>; bus-width = <4>;
};
};
}; };
...@@ -421,7 +421,7 @@ blsp2_uart2: serial@f995e000 { ...@@ -421,7 +421,7 @@ blsp2_uart2: serial@f995e000 {
status = "disabled"; status = "disabled";
}; };
mmc@f9824900 { sdhc_1: mmc@f9824900 {
compatible = "qcom,apq8084-sdhci", "qcom,sdhci-msm-v4"; compatible = "qcom,apq8084-sdhci", "qcom,sdhci-msm-v4";
reg = <0xf9824900 0x11c>, <0xf9824000 0x800>; reg = <0xf9824900 0x11c>, <0xf9824000 0x800>;
reg-names = "hc", "core"; reg-names = "hc", "core";
...@@ -434,7 +434,7 @@ mmc@f9824900 { ...@@ -434,7 +434,7 @@ mmc@f9824900 {
status = "disabled"; status = "disabled";
}; };
mmc@f98a4900 { sdhc_2: mmc@f98a4900 {
compatible = "qcom,apq8084-sdhci", "qcom,sdhci-msm-v4"; compatible = "qcom,apq8084-sdhci", "qcom,sdhci-msm-v4";
reg = <0xf98a4900 0x11c>, <0xf98a4000 0x800>; reg = <0xf98a4900 0x11c>, <0xf98a4000 0x800>;
reg-names = "hc", "core"; reg-names = "hc", "core";
......
...@@ -564,7 +564,7 @@ pmecc: ecc-engine@ffffe000 { ...@@ -564,7 +564,7 @@ pmecc: ecc-engine@ffffe000 {
mpddrc: mpddrc@ffffe800 { mpddrc: mpddrc@ffffe800 {
compatible = "microchip,sam9x60-ddramc", "atmel,sama5d3-ddramc"; compatible = "microchip,sam9x60-ddramc", "atmel,sama5d3-ddramc";
reg = <0xffffe800 0x200>; reg = <0xffffe800 0x200>;
clocks = <&pmc PMC_TYPE_SYSTEM 2>, <&pmc PMC_TYPE_CORE PMC_MCK>; clocks = <&pmc PMC_TYPE_SYSTEM 2>, <&pmc PMC_TYPE_PERIPHERAL 49>;
clock-names = "ddrck", "mpddr"; clock-names = "ddrck", "mpddr";
}; };
......
...@@ -101,8 +101,12 @@ &iwdg2 { ...@@ -101,8 +101,12 @@ &iwdg2 {
&qspi { &qspi {
pinctrl-names = "default", "sleep"; pinctrl-names = "default", "sleep";
pinctrl-0 = <&qspi_clk_pins_a &qspi_bk1_pins_a>; pinctrl-0 = <&qspi_clk_pins_a
pinctrl-1 = <&qspi_clk_sleep_pins_a &qspi_bk1_sleep_pins_a>; &qspi_bk1_pins_a
&qspi_cs1_pins_a>;
pinctrl-1 = <&qspi_clk_sleep_pins_a
&qspi_bk1_sleep_pins_a
&qspi_cs1_sleep_pins_a>;
reg = <0x58003000 0x1000>, <0x70000000 0x4000000>; reg = <0x58003000 0x1000>, <0x70000000 0x4000000>;
#address-cells = <1>; #address-cells = <1>;
#size-cells = <0>; #size-cells = <0>;
......
...@@ -391,8 +391,12 @@ &pwr_regulators { ...@@ -391,8 +391,12 @@ &pwr_regulators {
&qspi { &qspi {
pinctrl-names = "default", "sleep"; pinctrl-names = "default", "sleep";
pinctrl-0 = <&qspi_clk_pins_a &qspi_bk1_pins_a>; pinctrl-0 = <&qspi_clk_pins_a
pinctrl-1 = <&qspi_clk_sleep_pins_a &qspi_bk1_sleep_pins_a>; &qspi_bk1_pins_a
&qspi_cs1_pins_a>;
pinctrl-1 = <&qspi_clk_sleep_pins_a
&qspi_bk1_sleep_pins_a
&qspi_cs1_sleep_pins_a>;
reg = <0x58003000 0x1000>, <0x70000000 0x4000000>; reg = <0x58003000 0x1000>, <0x70000000 0x4000000>;
#address-cells = <1>; #address-cells = <1>;
#size-cells = <0>; #size-cells = <0>;
......
...@@ -428,8 +428,12 @@ &pwr_regulators { ...@@ -428,8 +428,12 @@ &pwr_regulators {
&qspi { &qspi {
pinctrl-names = "default", "sleep"; pinctrl-names = "default", "sleep";
pinctrl-0 = <&qspi_clk_pins_a &qspi_bk1_pins_a>; pinctrl-0 = <&qspi_clk_pins_a
pinctrl-1 = <&qspi_clk_sleep_pins_a &qspi_bk1_sleep_pins_a>; &qspi_bk1_pins_a
&qspi_cs1_pins_a>;
pinctrl-1 = <&qspi_clk_sleep_pins_a
&qspi_bk1_sleep_pins_a
&qspi_cs1_sleep_pins_a>;
reg = <0x58003000 0x1000>, <0x70000000 0x4000000>; reg = <0x58003000 0x1000>, <0x70000000 0x4000000>;
#address-cells = <1>; #address-cells = <1>;
#size-cells = <0>; #size-cells = <0>;
......
...@@ -247,8 +247,12 @@ &pwr_regulators { ...@@ -247,8 +247,12 @@ &pwr_regulators {
&qspi { &qspi {
pinctrl-names = "default", "sleep"; pinctrl-names = "default", "sleep";
pinctrl-0 = <&qspi_clk_pins_a &qspi_bk1_pins_a>; pinctrl-0 = <&qspi_clk_pins_a
pinctrl-1 = <&qspi_clk_sleep_pins_a &qspi_bk1_sleep_pins_a>; &qspi_bk1_pins_a
&qspi_cs1_pins_a>;
pinctrl-1 = <&qspi_clk_sleep_pins_a
&qspi_bk1_sleep_pins_a
&qspi_cs1_sleep_pins_a>;
reg = <0x58003000 0x1000>, <0x70000000 0x200000>; reg = <0x58003000 0x1000>, <0x70000000 0x200000>;
#address-cells = <1>; #address-cells = <1>;
#size-cells = <0>; #size-cells = <0>;
......
...@@ -345,7 +345,7 @@ gpio6: io-expander@22 { ...@@ -345,7 +345,7 @@ gpio6: io-expander@22 {
}; };
&i2c2 { &i2c2 {
tca9548@70 { i2c-mux@70 {
compatible = "nxp,pca9548"; compatible = "nxp,pca9548";
pinctrl-0 = <&pinctrl_i2c_mux_reset>; pinctrl-0 = <&pinctrl_i2c_mux_reset>;
pinctrl-names = "default"; pinctrl-names = "default";
......
...@@ -340,7 +340,7 @@ eeprom@50 { ...@@ -340,7 +340,7 @@ eeprom@50 {
}; };
&i2c2 { &i2c2 {
tca9548@70 { i2c-mux@70 {
compatible = "nxp,pca9548"; compatible = "nxp,pca9548";
pinctrl-0 = <&pinctrl_i2c_mux_reset>; pinctrl-0 = <&pinctrl_i2c_mux_reset>;
pinctrl-names = "default"; pinctrl-names = "default";
......
...@@ -20,7 +20,6 @@ ...@@ -20,7 +20,6 @@
#include <linux/init.h> #include <linux/init.h>
#include <linux/mc146818rtc.h> #include <linux/mc146818rtc.h>
#include <linux/bcd.h>
#include <linux/io.h> #include <linux/io.h>
#include "common.h" #include "common.h"
......
...@@ -23,6 +23,7 @@ static int mx25_read_cpu_rev(void) ...@@ -23,6 +23,7 @@ static int mx25_read_cpu_rev(void)
np = of_find_compatible_node(NULL, NULL, "fsl,imx25-iim"); np = of_find_compatible_node(NULL, NULL, "fsl,imx25-iim");
iim_base = of_iomap(np, 0); iim_base = of_iomap(np, 0);
of_node_put(np);
BUG_ON(!iim_base); BUG_ON(!iim_base);
rev = readl(iim_base + MXC_IIMSREV); rev = readl(iim_base + MXC_IIMSREV);
iounmap(iim_base); iounmap(iim_base);
......
...@@ -28,6 +28,7 @@ static int mx27_read_cpu_rev(void) ...@@ -28,6 +28,7 @@ static int mx27_read_cpu_rev(void)
np = of_find_compatible_node(NULL, NULL, "fsl,imx27-ccm"); np = of_find_compatible_node(NULL, NULL, "fsl,imx27-ccm");
ccm_base = of_iomap(np, 0); ccm_base = of_iomap(np, 0);
of_node_put(np);
BUG_ON(!ccm_base); BUG_ON(!ccm_base);
/* /*
* now we have access to the IO registers. As we need * now we have access to the IO registers. As we need
......
...@@ -39,6 +39,7 @@ static int mx31_read_cpu_rev(void) ...@@ -39,6 +39,7 @@ static int mx31_read_cpu_rev(void)
np = of_find_compatible_node(NULL, NULL, "fsl,imx31-iim"); np = of_find_compatible_node(NULL, NULL, "fsl,imx31-iim");
iim_base = of_iomap(np, 0); iim_base = of_iomap(np, 0);
of_node_put(np);
BUG_ON(!iim_base); BUG_ON(!iim_base);
/* read SREV register from IIM module */ /* read SREV register from IIM module */
......
...@@ -21,6 +21,7 @@ static int mx35_read_cpu_rev(void) ...@@ -21,6 +21,7 @@ static int mx35_read_cpu_rev(void)
np = of_find_compatible_node(NULL, NULL, "fsl,imx35-iim"); np = of_find_compatible_node(NULL, NULL, "fsl,imx35-iim");
iim_base = of_iomap(np, 0); iim_base = of_iomap(np, 0);
of_node_put(np);
BUG_ON(!iim_base); BUG_ON(!iim_base);
rev = imx_readl(iim_base + MXC_IIMSREV); rev = imx_readl(iim_base + MXC_IIMSREV);
......
...@@ -28,6 +28,7 @@ static u32 imx5_read_srev_reg(const char *compat) ...@@ -28,6 +28,7 @@ static u32 imx5_read_srev_reg(const char *compat)
np = of_find_compatible_node(NULL, NULL, compat); np = of_find_compatible_node(NULL, NULL, compat);
iim_base = of_iomap(np, 0); iim_base = of_iomap(np, 0);
of_node_put(np);
WARN_ON(!iim_base); WARN_ON(!iim_base);
srev = readl(iim_base + IIM_SREV) & 0xff; srev = readl(iim_base + IIM_SREV) & 0xff;
......
...@@ -4,6 +4,7 @@ menuconfig ARCH_OMAP1 ...@@ -4,6 +4,7 @@ menuconfig ARCH_OMAP1
depends on ARCH_MULTI_V4T || ARCH_MULTI_V5 depends on ARCH_MULTI_V4T || ARCH_MULTI_V5
depends on CPU_LITTLE_ENDIAN depends on CPU_LITTLE_ENDIAN
depends on ATAGS depends on ATAGS
select ARCH_OMAP
select ARCH_HAS_HOLES_MEMORYMODEL select ARCH_HAS_HOLES_MEMORYMODEL
select ARCH_OMAP select ARCH_OMAP
select CLKSRC_MMIO select CLKSRC_MMIO
...@@ -45,10 +46,6 @@ config ARCH_OMAP16XX ...@@ -45,10 +46,6 @@ config ARCH_OMAP16XX
select CPU_ARM926T select CPU_ARM926T
select OMAP_DM_TIMER select OMAP_DM_TIMER
config ARCH_OMAP1_ANY
select ARCH_OMAP
def_bool ARCH_OMAP730 || ARCH_OMAP850 || ARCH_OMAP15XX || ARCH_OMAP16XX
config ARCH_OMAP config ARCH_OMAP
bool bool
......
...@@ -3,8 +3,6 @@ ...@@ -3,8 +3,6 @@
# Makefile for the linux kernel. # Makefile for the linux kernel.
# #
ifdef CONFIG_ARCH_OMAP1_ANY
# Common support # Common support
obj-y := io.o id.o sram-init.o sram.o time.o irq.o mux.o flash.o \ obj-y := io.o id.o sram-init.o sram.o time.o irq.o mux.o flash.o \
serial.o devices.o dma.o omap-dma.o fb.o serial.o devices.o dma.o omap-dma.o fb.o
...@@ -59,5 +57,3 @@ obj-$(CONFIG_ARCH_OMAP730) += gpio7xx.o ...@@ -59,5 +57,3 @@ obj-$(CONFIG_ARCH_OMAP730) += gpio7xx.o
obj-$(CONFIG_ARCH_OMAP850) += gpio7xx.o obj-$(CONFIG_ARCH_OMAP850) += gpio7xx.o
obj-$(CONFIG_ARCH_OMAP15XX) += gpio15xx.o obj-$(CONFIG_ARCH_OMAP15XX) += gpio15xx.o
obj-$(CONFIG_ARCH_OMAP16XX) += gpio16xx.o obj-$(CONFIG_ARCH_OMAP16XX) += gpio16xx.o
endif
...@@ -11,6 +11,7 @@ ...@@ -11,6 +11,7 @@
#include <linux/gpio.h> #include <linux/gpio.h>
#include <linux/platform_data/gpio-omap.h> #include <linux/platform_data/gpio-omap.h>
#include <linux/soc/ti/omap1-soc.h> #include <linux/soc/ti/omap1-soc.h>
#include <asm/irq.h>
#include "irqs.h" #include "irqs.h"
......
...@@ -22,17 +22,14 @@ ...@@ -22,17 +22,14 @@
* The machine specific code may provide the extra mapping besides the * The machine specific code may provide the extra mapping besides the
* default mapping provided here. * default mapping provided here.
*/ */
static struct map_desc omap_io_desc[] __initdata = { #if defined (CONFIG_ARCH_OMAP730) || defined (CONFIG_ARCH_OMAP850)
static struct map_desc omap7xx_io_desc[] __initdata = {
{ {
.virtual = OMAP1_IO_VIRT, .virtual = OMAP1_IO_VIRT,
.pfn = __phys_to_pfn(OMAP1_IO_PHYS), .pfn = __phys_to_pfn(OMAP1_IO_PHYS),
.length = OMAP1_IO_SIZE, .length = OMAP1_IO_SIZE,
.type = MT_DEVICE .type = MT_DEVICE
} },
};
#if defined (CONFIG_ARCH_OMAP730) || defined (CONFIG_ARCH_OMAP850)
static struct map_desc omap7xx_io_desc[] __initdata = {
{ {
.virtual = OMAP7XX_DSP_BASE, .virtual = OMAP7XX_DSP_BASE,
.pfn = __phys_to_pfn(OMAP7XX_DSP_START), .pfn = __phys_to_pfn(OMAP7XX_DSP_START),
...@@ -49,6 +46,12 @@ static struct map_desc omap7xx_io_desc[] __initdata = { ...@@ -49,6 +46,12 @@ static struct map_desc omap7xx_io_desc[] __initdata = {
#ifdef CONFIG_ARCH_OMAP15XX #ifdef CONFIG_ARCH_OMAP15XX
static struct map_desc omap1510_io_desc[] __initdata = { static struct map_desc omap1510_io_desc[] __initdata = {
{
.virtual = OMAP1_IO_VIRT,
.pfn = __phys_to_pfn(OMAP1_IO_PHYS),
.length = OMAP1_IO_SIZE,
.type = MT_DEVICE
},
{ {
.virtual = OMAP1510_DSP_BASE, .virtual = OMAP1510_DSP_BASE,
.pfn = __phys_to_pfn(OMAP1510_DSP_START), .pfn = __phys_to_pfn(OMAP1510_DSP_START),
...@@ -65,6 +68,12 @@ static struct map_desc omap1510_io_desc[] __initdata = { ...@@ -65,6 +68,12 @@ static struct map_desc omap1510_io_desc[] __initdata = {
#if defined(CONFIG_ARCH_OMAP16XX) #if defined(CONFIG_ARCH_OMAP16XX)
static struct map_desc omap16xx_io_desc[] __initdata = { static struct map_desc omap16xx_io_desc[] __initdata = {
{
.virtual = OMAP1_IO_VIRT,
.pfn = __phys_to_pfn(OMAP1_IO_PHYS),
.length = OMAP1_IO_SIZE,
.type = MT_DEVICE
},
{ {
.virtual = OMAP16XX_DSP_BASE, .virtual = OMAP16XX_DSP_BASE,
.pfn = __phys_to_pfn(OMAP16XX_DSP_START), .pfn = __phys_to_pfn(OMAP16XX_DSP_START),
...@@ -79,18 +88,9 @@ static struct map_desc omap16xx_io_desc[] __initdata = { ...@@ -79,18 +88,9 @@ static struct map_desc omap16xx_io_desc[] __initdata = {
}; };
#endif #endif
/*
* Maps common IO regions for omap1
*/
static void __init omap1_map_common_io(void)
{
iotable_init(omap_io_desc, ARRAY_SIZE(omap_io_desc));
}
#if defined (CONFIG_ARCH_OMAP730) || defined (CONFIG_ARCH_OMAP850) #if defined (CONFIG_ARCH_OMAP730) || defined (CONFIG_ARCH_OMAP850)
void __init omap7xx_map_io(void) void __init omap7xx_map_io(void)
{ {
omap1_map_common_io();
iotable_init(omap7xx_io_desc, ARRAY_SIZE(omap7xx_io_desc)); iotable_init(omap7xx_io_desc, ARRAY_SIZE(omap7xx_io_desc));
} }
#endif #endif
...@@ -98,7 +98,6 @@ void __init omap7xx_map_io(void) ...@@ -98,7 +98,6 @@ void __init omap7xx_map_io(void)
#ifdef CONFIG_ARCH_OMAP15XX #ifdef CONFIG_ARCH_OMAP15XX
void __init omap15xx_map_io(void) void __init omap15xx_map_io(void)
{ {
omap1_map_common_io();
iotable_init(omap1510_io_desc, ARRAY_SIZE(omap1510_io_desc)); iotable_init(omap1510_io_desc, ARRAY_SIZE(omap1510_io_desc));
} }
#endif #endif
...@@ -106,7 +105,6 @@ void __init omap15xx_map_io(void) ...@@ -106,7 +105,6 @@ void __init omap15xx_map_io(void)
#if defined(CONFIG_ARCH_OMAP16XX) #if defined(CONFIG_ARCH_OMAP16XX)
void __init omap16xx_map_io(void) void __init omap16xx_map_io(void)
{ {
omap1_map_common_io();
iotable_init(omap16xx_io_desc, ARRAY_SIZE(omap16xx_io_desc)); iotable_init(omap16xx_io_desc, ARRAY_SIZE(omap16xx_io_desc));
} }
#endif #endif
......
...@@ -89,7 +89,6 @@ static struct omap_mcbsp_ops omap1_mcbsp_ops = { ...@@ -89,7 +89,6 @@ static struct omap_mcbsp_ops omap1_mcbsp_ops = {
#define OMAP1610_MCBSP2_BASE 0xfffb1000 #define OMAP1610_MCBSP2_BASE 0xfffb1000
#define OMAP1610_MCBSP3_BASE 0xe1017000 #define OMAP1610_MCBSP3_BASE 0xe1017000
#if defined(CONFIG_ARCH_OMAP730) || defined(CONFIG_ARCH_OMAP850)
struct resource omap7xx_mcbsp_res[][6] = { struct resource omap7xx_mcbsp_res[][6] = {
{ {
{ {
...@@ -159,14 +158,7 @@ static struct omap_mcbsp_platform_data omap7xx_mcbsp_pdata[] = { ...@@ -159,14 +158,7 @@ static struct omap_mcbsp_platform_data omap7xx_mcbsp_pdata[] = {
}; };
#define OMAP7XX_MCBSP_RES_SZ ARRAY_SIZE(omap7xx_mcbsp_res[1]) #define OMAP7XX_MCBSP_RES_SZ ARRAY_SIZE(omap7xx_mcbsp_res[1])
#define OMAP7XX_MCBSP_COUNT ARRAY_SIZE(omap7xx_mcbsp_res) #define OMAP7XX_MCBSP_COUNT ARRAY_SIZE(omap7xx_mcbsp_res)
#else
#define omap7xx_mcbsp_res_0 NULL
#define omap7xx_mcbsp_pdata NULL
#define OMAP7XX_MCBSP_RES_SZ 0
#define OMAP7XX_MCBSP_COUNT 0
#endif
#ifdef CONFIG_ARCH_OMAP15XX
struct resource omap15xx_mcbsp_res[][6] = { struct resource omap15xx_mcbsp_res[][6] = {
{ {
{ {
...@@ -266,14 +258,7 @@ static struct omap_mcbsp_platform_data omap15xx_mcbsp_pdata[] = { ...@@ -266,14 +258,7 @@ static struct omap_mcbsp_platform_data omap15xx_mcbsp_pdata[] = {
}; };
#define OMAP15XX_MCBSP_RES_SZ ARRAY_SIZE(omap15xx_mcbsp_res[1]) #define OMAP15XX_MCBSP_RES_SZ ARRAY_SIZE(omap15xx_mcbsp_res[1])
#define OMAP15XX_MCBSP_COUNT ARRAY_SIZE(omap15xx_mcbsp_res) #define OMAP15XX_MCBSP_COUNT ARRAY_SIZE(omap15xx_mcbsp_res)
#else
#define omap15xx_mcbsp_res_0 NULL
#define omap15xx_mcbsp_pdata NULL
#define OMAP15XX_MCBSP_RES_SZ 0
#define OMAP15XX_MCBSP_COUNT 0
#endif
#ifdef CONFIG_ARCH_OMAP16XX
struct resource omap16xx_mcbsp_res[][6] = { struct resource omap16xx_mcbsp_res[][6] = {
{ {
{ {
...@@ -373,12 +358,6 @@ static struct omap_mcbsp_platform_data omap16xx_mcbsp_pdata[] = { ...@@ -373,12 +358,6 @@ static struct omap_mcbsp_platform_data omap16xx_mcbsp_pdata[] = {
}; };
#define OMAP16XX_MCBSP_RES_SZ ARRAY_SIZE(omap16xx_mcbsp_res[1]) #define OMAP16XX_MCBSP_RES_SZ ARRAY_SIZE(omap16xx_mcbsp_res[1])
#define OMAP16XX_MCBSP_COUNT ARRAY_SIZE(omap16xx_mcbsp_res) #define OMAP16XX_MCBSP_COUNT ARRAY_SIZE(omap16xx_mcbsp_res)
#else
#define omap16xx_mcbsp_res_0 NULL
#define omap16xx_mcbsp_pdata NULL
#define OMAP16XX_MCBSP_RES_SZ 0
#define OMAP16XX_MCBSP_COUNT 0
#endif
static void omap_mcbsp_register_board_cfg(struct resource *res, int res_count, static void omap_mcbsp_register_board_cfg(struct resource *res, int res_count,
struct omap_mcbsp_platform_data *config, int size) struct omap_mcbsp_platform_data *config, int size)
......
...@@ -106,13 +106,6 @@ ...@@ -106,13 +106,6 @@
#define OMAP7XX_IDLECT3 0xfffece24 #define OMAP7XX_IDLECT3 0xfffece24
#define OMAP7XX_IDLE_LOOP_REQUEST 0x0C00 #define OMAP7XX_IDLE_LOOP_REQUEST 0x0C00
#if !defined(CONFIG_ARCH_OMAP730) && \
!defined(CONFIG_ARCH_OMAP850) && \
!defined(CONFIG_ARCH_OMAP15XX) && \
!defined(CONFIG_ARCH_OMAP16XX)
#warning "Power management for this processor not implemented yet"
#endif
#ifndef __ASSEMBLER__ #ifndef __ASSEMBLER__
#include <linux/clk.h> #include <linux/clk.h>
......
...@@ -45,6 +45,8 @@ config MACH_PXA27X_DT ...@@ -45,6 +45,8 @@ config MACH_PXA27X_DT
config MACH_PXA3XX_DT config MACH_PXA3XX_DT
bool "Support PXA3xx platforms from device tree" bool "Support PXA3xx platforms from device tree"
select CPU_PXA300 select CPU_PXA300
select CPU_PXA310
select CPU_PXA320
select PINCTRL select PINCTRL
select POWER_SUPPLY select POWER_SUPPLY
select PXA3xx select PXA3xx
......
...@@ -131,10 +131,6 @@ flash@0 { ...@@ -131,10 +131,6 @@ flash@0 {
}; };
&usb { &usb {
phys = <&usb2_phy1>; phys = <&usb2_phy0>, <&usb2_phy1>;
phy-names = "usb2-phy1"; phy-names = "usb2-phy0", "usb2-phy1";
};
&usb2_phy0 {
status = "disabled";
}; };
...@@ -110,7 +110,7 @@ &esdhc1 { ...@@ -110,7 +110,7 @@ &esdhc1 {
&i2c0 { &i2c0 {
status = "okay"; status = "okay";
pca9547@77 { i2c-mux@77 {
compatible = "nxp,pca9547"; compatible = "nxp,pca9547";
reg = <0x77>; reg = <0x77>;
#address-cells = <1>; #address-cells = <1>;
......
...@@ -89,7 +89,7 @@ fpga: board-control@2,0 { ...@@ -89,7 +89,7 @@ fpga: board-control@2,0 {
&i2c0 { &i2c0 {
status = "okay"; status = "okay";
pca9547@77 { i2c-mux@77 {
compatible = "nxp,pca9547"; compatible = "nxp,pca9547";
reg = <0x77>; reg = <0x77>;
#address-cells = <1>; #address-cells = <1>;
......
...@@ -88,7 +88,7 @@ &duart1 { ...@@ -88,7 +88,7 @@ &duart1 {
&i2c0 { &i2c0 {
status = "okay"; status = "okay";
pca9547@77 { i2c-mux@77 {
compatible = "nxp,pca9547"; compatible = "nxp,pca9547";
reg = <0x77>; reg = <0x77>;
#address-cells = <1>; #address-cells = <1>;
......
...@@ -53,7 +53,7 @@ flash@2 { ...@@ -53,7 +53,7 @@ flash@2 {
&i2c0 { &i2c0 {
status = "okay"; status = "okay";
i2c-switch@77 { i2c-mux@77 {
compatible = "nxp,pca9547"; compatible = "nxp,pca9547";
reg = <0x77>; reg = <0x77>;
#address-cells = <1>; #address-cells = <1>;
......
...@@ -136,7 +136,7 @@ mdio2_aquantia_phy: ethernet-phy@0 { ...@@ -136,7 +136,7 @@ mdio2_aquantia_phy: ethernet-phy@0 {
&i2c0 { &i2c0 {
status = "okay"; status = "okay";
i2c-switch@77 { i2c-mux@77 {
compatible = "nxp,pca9547"; compatible = "nxp,pca9547";
reg = <0x77>; reg = <0x77>;
#address-cells = <1>; #address-cells = <1>;
......
...@@ -245,7 +245,7 @@ rx8035: rtc@32 { ...@@ -245,7 +245,7 @@ rx8035: rtc@32 {
&i2c3 { &i2c3 {
status = "okay"; status = "okay";
i2c-switch@70 { i2c-mux@70 {
compatible = "nxp,pca9540"; compatible = "nxp,pca9540";
#address-cells = <1>; #address-cells = <1>;
#size-cells = <0>; #size-cells = <0>;
......
...@@ -103,7 +103,7 @@ mdio0_phy15: mdio-phy3@1f { ...@@ -103,7 +103,7 @@ mdio0_phy15: mdio-phy3@1f {
&i2c0 { &i2c0 {
status = "okay"; status = "okay";
pca9547@77 { i2c-mux@77 {
compatible = "nxp,pca9547"; compatible = "nxp,pca9547";
reg = <0x77>; reg = <0x77>;
#address-cells = <1>; #address-cells = <1>;
......
...@@ -44,7 +44,7 @@ cpld@3,0 { ...@@ -44,7 +44,7 @@ cpld@3,0 {
&i2c0 { &i2c0 {
status = "okay"; status = "okay";
pca9547@75 { i2c-mux@75 {
compatible = "nxp,pca9547"; compatible = "nxp,pca9547";
reg = <0x75>; reg = <0x75>;
#address-cells = <1>; #address-cells = <1>;
......
...@@ -54,7 +54,7 @@ &esdhc1 { ...@@ -54,7 +54,7 @@ &esdhc1 {
&i2c0 { &i2c0 {
status = "okay"; status = "okay";
i2c-switch@77 { i2c-mux@77 {
compatible = "nxp,pca9547"; compatible = "nxp,pca9547";
#address-cells = <1>; #address-cells = <1>;
#size-cells = <0>; #size-cells = <0>;
......
...@@ -120,7 +120,7 @@ &csi { ...@@ -120,7 +120,7 @@ &csi {
&ecspi2 { &ecspi2 {
pinctrl-names = "default"; pinctrl-names = "default";
pinctrl-0 = <&pinctrl_espi2>; pinctrl-0 = <&pinctrl_espi2>;
cs-gpios = <&gpio5 9 GPIO_ACTIVE_LOW>; cs-gpios = <&gpio5 13 GPIO_ACTIVE_LOW>;
status = "okay"; status = "okay";
eeprom@0 { eeprom@0 {
...@@ -316,7 +316,7 @@ pinctrl_espi2: espi2grp { ...@@ -316,7 +316,7 @@ pinctrl_espi2: espi2grp {
MX8MM_IOMUXC_ECSPI2_SCLK_ECSPI2_SCLK 0x82 MX8MM_IOMUXC_ECSPI2_SCLK_ECSPI2_SCLK 0x82
MX8MM_IOMUXC_ECSPI2_MOSI_ECSPI2_MOSI 0x82 MX8MM_IOMUXC_ECSPI2_MOSI_ECSPI2_MOSI 0x82
MX8MM_IOMUXC_ECSPI2_MISO_ECSPI2_MISO 0x82 MX8MM_IOMUXC_ECSPI2_MISO_ECSPI2_MISO 0x82
MX8MM_IOMUXC_ECSPI1_SS0_GPIO5_IO9 0x41 MX8MM_IOMUXC_ECSPI2_SS0_GPIO5_IO13 0x41
>; >;
}; };
......
...@@ -275,7 +275,7 @@ pmic: pmic@4b { ...@@ -275,7 +275,7 @@ pmic: pmic@4b {
compatible = "rohm,bd71847"; compatible = "rohm,bd71847";
reg = <0x4b>; reg = <0x4b>;
#clock-cells = <0>; #clock-cells = <0>;
clocks = <&clk_xtal32k 0>; clocks = <&clk_xtal32k>;
clock-output-names = "clk-32k-out"; clock-output-names = "clk-32k-out";
pinctrl-names = "default"; pinctrl-names = "default";
pinctrl-0 = <&pinctrl_pmic>; pinctrl-0 = <&pinctrl_pmic>;
......
...@@ -214,7 +214,7 @@ &i2c3 { ...@@ -214,7 +214,7 @@ &i2c3 {
pinctrl-0 = <&pinctrl_i2c3>; pinctrl-0 = <&pinctrl_i2c3>;
status = "okay"; status = "okay";
i2cmux@70 { i2c-mux@70 {
compatible = "nxp,pca9540"; compatible = "nxp,pca9540";
reg = <0x70>; reg = <0x70>;
#address-cells = <1>; #address-cells = <1>;
......
...@@ -771,6 +771,7 @@ &usbotg1 { ...@@ -771,6 +771,7 @@ &usbotg1 {
&usbotg2 { &usbotg2 {
dr_mode = "host"; dr_mode = "host";
vbus-supply = <&reg_usb2_vbus>; vbus-supply = <&reg_usb2_vbus>;
over-current-active-low;
status = "okay"; status = "okay";
}; };
......
...@@ -9,6 +9,7 @@ sound_card: sound-card { ...@@ -9,6 +9,7 @@ sound_card: sound-card {
simple-audio-card,bitclock-master = <&dailink_master>; simple-audio-card,bitclock-master = <&dailink_master>;
simple-audio-card,format = "i2s"; simple-audio-card,format = "i2s";
simple-audio-card,frame-master = <&dailink_master>; simple-audio-card,frame-master = <&dailink_master>;
simple-audio-card,mclk-fs = <256>;
simple-audio-card,name = "imx8mm-wm8904"; simple-audio-card,name = "imx8mm-wm8904";
simple-audio-card,routing = simple-audio-card,routing =
"Headphone Jack", "HPOUTL", "Headphone Jack", "HPOUTL",
......
...@@ -11,6 +11,7 @@ sound_card: sound-card { ...@@ -11,6 +11,7 @@ sound_card: sound-card {
simple-audio-card,bitclock-master = <&dailink_master>; simple-audio-card,bitclock-master = <&dailink_master>;
simple-audio-card,format = "i2s"; simple-audio-card,format = "i2s";
simple-audio-card,frame-master = <&dailink_master>; simple-audio-card,frame-master = <&dailink_master>;
simple-audio-card,mclk-fs = <256>;
simple-audio-card,name = "imx8mm-nau8822"; simple-audio-card,name = "imx8mm-nau8822";
simple-audio-card,routing = simple-audio-card,routing =
"Headphones", "LHP", "Headphones", "LHP",
......
...@@ -36,8 +36,8 @@ memory@40000000 { ...@@ -36,8 +36,8 @@ memory@40000000 {
pcie0_refclk: pcie0-refclk { pcie0_refclk: pcie0-refclk {
compatible = "fixed-clock"; compatible = "fixed-clock";
#clock-cells = <0>; #clock-cells = <0>;
clock-frequency = <100000000>; clock-frequency = <100000000>;
}; };
reg_can1_stby: regulator-can1-stby { reg_can1_stby: regulator-can1-stby {
......
...@@ -99,7 +99,6 @@ pmic: pmic@25 { ...@@ -99,7 +99,6 @@ pmic: pmic@25 {
regulators { regulators {
buck1: BUCK1 { buck1: BUCK1 {
regulator-compatible = "BUCK1";
regulator-min-microvolt = <600000>; regulator-min-microvolt = <600000>;
regulator-max-microvolt = <2187500>; regulator-max-microvolt = <2187500>;
regulator-boot-on; regulator-boot-on;
...@@ -108,7 +107,6 @@ buck1: BUCK1 { ...@@ -108,7 +107,6 @@ buck1: BUCK1 {
}; };
buck2: BUCK2 { buck2: BUCK2 {
regulator-compatible = "BUCK2";
regulator-min-microvolt = <600000>; regulator-min-microvolt = <600000>;
regulator-max-microvolt = <2187500>; regulator-max-microvolt = <2187500>;
regulator-boot-on; regulator-boot-on;
...@@ -119,7 +117,6 @@ buck2: BUCK2 { ...@@ -119,7 +117,6 @@ buck2: BUCK2 {
}; };
buck4: BUCK4 { buck4: BUCK4 {
regulator-compatible = "BUCK4";
regulator-min-microvolt = <600000>; regulator-min-microvolt = <600000>;
regulator-max-microvolt = <3400000>; regulator-max-microvolt = <3400000>;
regulator-boot-on; regulator-boot-on;
...@@ -127,7 +124,6 @@ buck4: BUCK4 { ...@@ -127,7 +124,6 @@ buck4: BUCK4 {
}; };
buck5: BUCK5 { buck5: BUCK5 {
regulator-compatible = "BUCK5";
regulator-min-microvolt = <600000>; regulator-min-microvolt = <600000>;
regulator-max-microvolt = <3400000>; regulator-max-microvolt = <3400000>;
regulator-boot-on; regulator-boot-on;
...@@ -135,7 +131,6 @@ buck5: BUCK5 { ...@@ -135,7 +131,6 @@ buck5: BUCK5 {
}; };
buck6: BUCK6 { buck6: BUCK6 {
regulator-compatible = "BUCK6";
regulator-min-microvolt = <600000>; regulator-min-microvolt = <600000>;
regulator-max-microvolt = <3400000>; regulator-max-microvolt = <3400000>;
regulator-boot-on; regulator-boot-on;
...@@ -143,7 +138,6 @@ buck6: BUCK6 { ...@@ -143,7 +138,6 @@ buck6: BUCK6 {
}; };
ldo1: LDO1 { ldo1: LDO1 {
regulator-compatible = "LDO1";
regulator-min-microvolt = <1600000>; regulator-min-microvolt = <1600000>;
regulator-max-microvolt = <3300000>; regulator-max-microvolt = <3300000>;
regulator-boot-on; regulator-boot-on;
...@@ -151,7 +145,6 @@ ldo1: LDO1 { ...@@ -151,7 +145,6 @@ ldo1: LDO1 {
}; };
ldo2: LDO2 { ldo2: LDO2 {
regulator-compatible = "LDO2";
regulator-min-microvolt = <800000>; regulator-min-microvolt = <800000>;
regulator-max-microvolt = <1150000>; regulator-max-microvolt = <1150000>;
regulator-boot-on; regulator-boot-on;
...@@ -159,7 +152,6 @@ ldo2: LDO2 { ...@@ -159,7 +152,6 @@ ldo2: LDO2 {
}; };
ldo3: LDO3 { ldo3: LDO3 {
regulator-compatible = "LDO3";
regulator-min-microvolt = <800000>; regulator-min-microvolt = <800000>;
regulator-max-microvolt = <3300000>; regulator-max-microvolt = <3300000>;
regulator-boot-on; regulator-boot-on;
...@@ -167,13 +159,11 @@ ldo3: LDO3 { ...@@ -167,13 +159,11 @@ ldo3: LDO3 {
}; };
ldo4: LDO4 { ldo4: LDO4 {
regulator-compatible = "LDO4";
regulator-min-microvolt = <800000>; regulator-min-microvolt = <800000>;
regulator-max-microvolt = <3300000>; regulator-max-microvolt = <3300000>;
}; };
ldo5: LDO5 { ldo5: LDO5 {
regulator-compatible = "LDO5";
regulator-min-microvolt = <1800000>; regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <3300000>; regulator-max-microvolt = <3300000>;
regulator-boot-on; regulator-boot-on;
......
...@@ -524,6 +524,7 @@ gpc: gpc@303a0000 { ...@@ -524,6 +524,7 @@ gpc: gpc@303a0000 {
compatible = "fsl,imx8mp-gpc"; compatible = "fsl,imx8mp-gpc";
reg = <0x303a0000 0x1000>; reg = <0x303a0000 0x1000>;
interrupt-parent = <&gic>; interrupt-parent = <&gic>;
interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>;
interrupt-controller; interrupt-controller;
#interrupt-cells = <3>; #interrupt-cells = <3>;
...@@ -590,7 +591,7 @@ pgc_mipi_phy2: power-domain@16 { ...@@ -590,7 +591,7 @@ pgc_mipi_phy2: power-domain@16 {
reg = <IMX8MP_POWER_DOMAIN_MIPI_PHY2>; reg = <IMX8MP_POWER_DOMAIN_MIPI_PHY2>;
}; };
pgc_hsiomix: power-domains@17 { pgc_hsiomix: power-domain@17 {
#power-domain-cells = <0>; #power-domain-cells = <0>;
reg = <IMX8MP_POWER_DOMAIN_HSIOMIX>; reg = <IMX8MP_POWER_DOMAIN_HSIOMIX>;
clocks = <&clk IMX8MP_CLK_HSIO_AXI>, clocks = <&clk IMX8MP_CLK_HSIO_AXI>,
...@@ -1297,7 +1298,7 @@ usb3_0: usb@32f10100 { ...@@ -1297,7 +1298,7 @@ usb3_0: usb@32f10100 {
reg = <0x32f10100 0x8>, reg = <0x32f10100 0x8>,
<0x381f0000 0x20>; <0x381f0000 0x20>;
clocks = <&clk IMX8MP_CLK_HSIO_ROOT>, clocks = <&clk IMX8MP_CLK_HSIO_ROOT>,
<&clk IMX8MP_CLK_USB_ROOT>; <&clk IMX8MP_CLK_USB_SUSP>;
clock-names = "hsio", "suspend"; clock-names = "hsio", "suspend";
interrupts = <GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>; interrupts = <GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>;
power-domains = <&hsio_blk_ctrl IMX8MP_HSIOBLK_PD_USB>; power-domains = <&hsio_blk_ctrl IMX8MP_HSIOBLK_PD_USB>;
...@@ -1310,9 +1311,9 @@ usb3_0: usb@32f10100 { ...@@ -1310,9 +1311,9 @@ usb3_0: usb@32f10100 {
usb_dwc3_0: usb@38100000 { usb_dwc3_0: usb@38100000 {
compatible = "snps,dwc3"; compatible = "snps,dwc3";
reg = <0x38100000 0x10000>; reg = <0x38100000 0x10000>;
clocks = <&clk IMX8MP_CLK_HSIO_AXI>, clocks = <&clk IMX8MP_CLK_USB_ROOT>,
<&clk IMX8MP_CLK_USB_CORE_REF>, <&clk IMX8MP_CLK_USB_CORE_REF>,
<&clk IMX8MP_CLK_USB_ROOT>; <&clk IMX8MP_CLK_USB_SUSP>;
clock-names = "bus_early", "ref", "suspend"; clock-names = "bus_early", "ref", "suspend";
interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>; interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>;
phys = <&usb3_phy0>, <&usb3_phy0>; phys = <&usb3_phy0>, <&usb3_phy0>;
...@@ -1339,7 +1340,7 @@ usb3_1: usb@32f10108 { ...@@ -1339,7 +1340,7 @@ usb3_1: usb@32f10108 {
reg = <0x32f10108 0x8>, reg = <0x32f10108 0x8>,
<0x382f0000 0x20>; <0x382f0000 0x20>;
clocks = <&clk IMX8MP_CLK_HSIO_ROOT>, clocks = <&clk IMX8MP_CLK_HSIO_ROOT>,
<&clk IMX8MP_CLK_USB_ROOT>; <&clk IMX8MP_CLK_USB_SUSP>;
clock-names = "hsio", "suspend"; clock-names = "hsio", "suspend";
interrupts = <GIC_SPI 149 IRQ_TYPE_LEVEL_HIGH>; interrupts = <GIC_SPI 149 IRQ_TYPE_LEVEL_HIGH>;
power-domains = <&hsio_blk_ctrl IMX8MP_HSIOBLK_PD_USB>; power-domains = <&hsio_blk_ctrl IMX8MP_HSIOBLK_PD_USB>;
...@@ -1352,9 +1353,9 @@ usb3_1: usb@32f10108 { ...@@ -1352,9 +1353,9 @@ usb3_1: usb@32f10108 {
usb_dwc3_1: usb@38200000 { usb_dwc3_1: usb@38200000 {
compatible = "snps,dwc3"; compatible = "snps,dwc3";
reg = <0x38200000 0x10000>; reg = <0x38200000 0x10000>;
clocks = <&clk IMX8MP_CLK_HSIO_AXI>, clocks = <&clk IMX8MP_CLK_USB_ROOT>,
<&clk IMX8MP_CLK_USB_CORE_REF>, <&clk IMX8MP_CLK_USB_CORE_REF>,
<&clk IMX8MP_CLK_USB_ROOT>; <&clk IMX8MP_CLK_USB_SUSP>;
clock-names = "bus_early", "ref", "suspend"; clock-names = "bus_early", "ref", "suspend";
interrupts = <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>; interrupts = <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>;
phys = <&usb3_phy1>, <&usb3_phy1>; phys = <&usb3_phy1>, <&usb3_phy1>;
......
...@@ -133,7 +133,7 @@ &i2c1 { ...@@ -133,7 +133,7 @@ &i2c1 {
pinctrl-0 = <&pinctrl_i2c1>; pinctrl-0 = <&pinctrl_i2c1>;
status = "okay"; status = "okay";
i2cmux@70 { i2c-mux@70 {
compatible = "nxp,pca9546"; compatible = "nxp,pca9546";
pinctrl-names = "default"; pinctrl-names = "default";
pinctrl-0 = <&pinctrl_i2c1_pca9546>; pinctrl-0 = <&pinctrl_i2c1_pca9546>;
...@@ -216,7 +216,7 @@ &i2c4 { ...@@ -216,7 +216,7 @@ &i2c4 {
pinctrl-0 = <&pinctrl_i2c4>; pinctrl-0 = <&pinctrl_i2c4>;
status = "okay"; status = "okay";
pca9546: i2cmux@70 { pca9546: i2c-mux@70 {
compatible = "nxp,pca9546"; compatible = "nxp,pca9546";
reg = <0x70>; reg = <0x70>;
#address-cells = <1>; #address-cells = <1>;
......
...@@ -339,7 +339,7 @@ &usdhc1 { ...@@ -339,7 +339,7 @@ &usdhc1 {
bus-width = <4>; bus-width = <4>;
non-removable; non-removable;
no-sd; no-sd;
no-emmc; no-mmc;
status = "okay"; status = "okay";
brcmf: wifi@1 { brcmf: wifi@1 {
...@@ -359,7 +359,7 @@ &usdhc2 { ...@@ -359,7 +359,7 @@ &usdhc2 {
cd-gpios = <&gpio2 12 GPIO_ACTIVE_LOW>; cd-gpios = <&gpio2 12 GPIO_ACTIVE_LOW>;
bus-width = <4>; bus-width = <4>;
no-sdio; no-sdio;
no-emmc; no-mmc;
disable-wp; disable-wp;
status = "okay"; status = "okay";
}; };
......
...@@ -61,7 +61,7 @@ &i2c1 { ...@@ -61,7 +61,7 @@ &i2c1 {
pinctrl-0 = <&pinctrl_lpi2c1 &pinctrl_ioexp_rst>; pinctrl-0 = <&pinctrl_lpi2c1 &pinctrl_ioexp_rst>;
status = "okay"; status = "okay";
i2c-switch@71 { i2c-mux@71 {
compatible = "nxp,pca9646", "nxp,pca9546"; compatible = "nxp,pca9646", "nxp,pca9546";
#address-cells = <1>; #address-cells = <1>;
#size-cells = <0>; #size-cells = <0>;
......
...@@ -74,7 +74,7 @@ MX93_PAD_UART1_TXD__LPUART1_TX 0x31e ...@@ -74,7 +74,7 @@ MX93_PAD_UART1_TXD__LPUART1_TX 0x31e
pinctrl_usdhc1: usdhc1grp { pinctrl_usdhc1: usdhc1grp {
fsl,pins = < fsl,pins = <
MX93_PAD_SD1_CLK__USDHC1_CLK 0x17fe MX93_PAD_SD1_CLK__USDHC1_CLK 0x15fe
MX93_PAD_SD1_CMD__USDHC1_CMD 0x13fe MX93_PAD_SD1_CMD__USDHC1_CMD 0x13fe
MX93_PAD_SD1_DATA0__USDHC1_DATA0 0x13fe MX93_PAD_SD1_DATA0__USDHC1_DATA0 0x13fe
MX93_PAD_SD1_DATA1__USDHC1_DATA1 0x13fe MX93_PAD_SD1_DATA1__USDHC1_DATA1 0x13fe
...@@ -84,7 +84,7 @@ MX93_PAD_SD1_DATA4__USDHC1_DATA4 0x13fe ...@@ -84,7 +84,7 @@ MX93_PAD_SD1_DATA4__USDHC1_DATA4 0x13fe
MX93_PAD_SD1_DATA5__USDHC1_DATA5 0x13fe MX93_PAD_SD1_DATA5__USDHC1_DATA5 0x13fe
MX93_PAD_SD1_DATA6__USDHC1_DATA6 0x13fe MX93_PAD_SD1_DATA6__USDHC1_DATA6 0x13fe
MX93_PAD_SD1_DATA7__USDHC1_DATA7 0x13fe MX93_PAD_SD1_DATA7__USDHC1_DATA7 0x13fe
MX93_PAD_SD1_STROBE__USDHC1_STROBE 0x17fe MX93_PAD_SD1_STROBE__USDHC1_STROBE 0x15fe
>; >;
}; };
...@@ -102,7 +102,7 @@ MX93_PAD_SD2_CD_B__GPIO3_IO00 0x31e ...@@ -102,7 +102,7 @@ MX93_PAD_SD2_CD_B__GPIO3_IO00 0x31e
pinctrl_usdhc2: usdhc2grp { pinctrl_usdhc2: usdhc2grp {
fsl,pins = < fsl,pins = <
MX93_PAD_SD2_CLK__USDHC2_CLK 0x17fe MX93_PAD_SD2_CLK__USDHC2_CLK 0x15fe
MX93_PAD_SD2_CMD__USDHC2_CMD 0x13fe MX93_PAD_SD2_CMD__USDHC2_CMD 0x13fe
MX93_PAD_SD2_DATA0__USDHC2_DATA0 0x13fe MX93_PAD_SD2_DATA0__USDHC2_DATA0 0x13fe
MX93_PAD_SD2_DATA1__USDHC2_DATA1 0x13fe MX93_PAD_SD2_DATA1__USDHC2_DATA1 0x13fe
......
...@@ -98,7 +98,7 @@ uart0: serial@12000 { ...@@ -98,7 +98,7 @@ uart0: serial@12000 {
uart1: serial@12100 { uart1: serial@12100 {
compatible = "snps,dw-apb-uart"; compatible = "snps,dw-apb-uart";
reg = <0x11000 0x100>; reg = <0x12100 0x100>;
reg-shift = <2>; reg-shift = <2>;
interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>; interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
reg-io-width = <1>; reg-io-width = <1>;
......
...@@ -3,6 +3,7 @@ ...@@ -3,6 +3,7 @@
* Copyright (c) 2015, LGE Inc. All rights reserved. * Copyright (c) 2015, LGE Inc. All rights reserved.
* Copyright (c) 2016, The Linux Foundation. All rights reserved. * Copyright (c) 2016, The Linux Foundation. All rights reserved.
* Copyright (c) 2021, Petr Vorel <petr.vorel@gmail.com> * Copyright (c) 2021, Petr Vorel <petr.vorel@gmail.com>
* Copyright (c) 2022, Dominik Kobinski <dominikkobinski314@gmail.com>
*/ */
/dts-v1/; /dts-v1/;
...@@ -51,6 +52,11 @@ cont_splash_mem: memory@3400000 { ...@@ -51,6 +52,11 @@ cont_splash_mem: memory@3400000 {
reg = <0 0x03400000 0 0x1200000>; reg = <0 0x03400000 0 0x1200000>;
no-map; no-map;
}; };
removed_region: reserved@5000000 {
reg = <0 0x05000000 0 0x2200000>;
no-map;
};
}; };
}; };
......
...@@ -11,6 +11,12 @@ ...@@ -11,6 +11,12 @@
#include <dt-bindings/gpio/gpio.h> #include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/gpio-keys.h> #include <dt-bindings/input/gpio-keys.h>
/delete-node/ &adsp_mem;
/delete-node/ &audio_mem;
/delete-node/ &mpss_mem;
/delete-node/ &peripheral_region;
/delete-node/ &rmtfs_mem;
/ { / {
model = "Xiaomi Mi 4C"; model = "Xiaomi Mi 4C";
compatible = "xiaomi,libra", "qcom,msm8992"; compatible = "xiaomi,libra", "qcom,msm8992";
...@@ -70,25 +76,67 @@ reserved-memory { ...@@ -70,25 +76,67 @@ reserved-memory {
#size-cells = <2>; #size-cells = <2>;
ranges; ranges;
/* This is for getting crash logs using Android downstream kernels */ memory_hole: hole@6400000 {
ramoops@dfc00000 { reg = <0 0x06400000 0 0x600000>;
compatible = "ramoops"; no-map;
reg = <0x0 0xdfc00000 0x0 0x40000>; };
console-size = <0x10000>;
record-size = <0x10000>; memory_hole2: hole2@6c00000 {
ftrace-size = <0x10000>; reg = <0 0x06c00000 0 0x2400000>;
pmsg-size = <0x20000>; no-map;
};
mpss_mem: mpss@9000000 {
reg = <0 0x09000000 0 0x5a00000>;
no-map;
};
tzapp: tzapp@ea00000 {
reg = <0 0x0ea00000 0 0x1900000>;
no-map;
};
mdm_rfsa_mem: mdm-rfsa@ca0b0000 {
reg = <0 0xca0b0000 0 0x10000>;
no-map;
};
rmtfs_mem: rmtfs@ca100000 {
compatible = "qcom,rmtfs-mem";
reg = <0 0xca100000 0 0x180000>;
no-map;
qcom,client-id = <1>;
}; };
modem_region: modem_region@9000000 { audio_mem: audio@cb400000 {
reg = <0x0 0x9000000 0x0 0x5a00000>; reg = <0 0xcb000000 0 0x400000>;
no-mem;
};
qseecom_mem: qseecom@cb400000 {
reg = <0 0xcb400000 0 0x1c00000>;
no-mem;
};
adsp_rfsa_mem: adsp-rfsa@cd000000 {
reg = <0 0xcd000000 0 0x10000>;
no-map; no-map;
}; };
tzapp: modem_region@ea00000 { sensor_rfsa_mem: sensor-rfsa@cd010000 {
reg = <0x0 0xea00000 0x0 0x1900000>; reg = <0 0xcd010000 0 0x10000>;
no-map; no-map;
}; };
ramoops@dfc00000 {
compatible = "ramoops";
reg = <0 0xdfc00000 0 0x40000>;
console-size = <0x10000>;
record-size = <0x10000>;
ftrace-size = <0x10000>;
pmsg-size = <0x20000>;
};
}; };
}; };
...@@ -130,11 +178,6 @@ &blsp2_uart2 { ...@@ -130,11 +178,6 @@ &blsp2_uart2 {
status = "okay"; status = "okay";
}; };
&peripheral_region {
reg = <0x0 0x7400000 0x0 0x1c00000>;
no-map;
};
&pm8994_spmi_regulators { &pm8994_spmi_regulators {
VDD_APC0: s8 { VDD_APC0: s8 {
regulator-min-microvolt = <680000>; regulator-min-microvolt = <680000>;
......
...@@ -37,10 +37,6 @@ &rpmcc { ...@@ -37,10 +37,6 @@ &rpmcc {
compatible = "qcom,rpmcc-msm8992", "qcom,rpmcc"; compatible = "qcom,rpmcc-msm8992", "qcom,rpmcc";
}; };
&tcsr_mutex {
compatible = "qcom,sfpb-mutex";
};
&timer { &timer {
interrupts = <GIC_PPI 2 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, interrupts = <GIC_PPI 2 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
<GIC_PPI 3 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, <GIC_PPI 3 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
......
...@@ -9,9 +9,6 @@ ...@@ -9,9 +9,6 @@
#include "msm8994.dtsi" #include "msm8994.dtsi"
/* Angler's firmware does not report where the memory is allocated */
/delete-node/ &cont_splash_mem;
/ { / {
model = "Huawei Nexus 6P"; model = "Huawei Nexus 6P";
compatible = "huawei,angler", "qcom,msm8994"; compatible = "huawei,angler", "qcom,msm8994";
...@@ -28,6 +25,22 @@ aliases { ...@@ -28,6 +25,22 @@ aliases {
chosen { chosen {
stdout-path = "serial0:115200n8"; stdout-path = "serial0:115200n8";
}; };
reserved-memory {
#address-cells = <2>;
#size-cells = <2>;
ranges;
tzapp_mem: tzapp@4800000 {
reg = <0 0x04800000 0 0x1900000>;
no-map;
};
removed_region: reserved@6300000 {
reg = <0 0x06300000 0 0xD00000>;
no-map;
};
};
}; };
&blsp1_uart2 { &blsp1_uart2 {
......
...@@ -10,6 +10,7 @@ ...@@ -10,6 +10,7 @@
#include <dt-bindings/interconnect/qcom,sc8280xp.h> #include <dt-bindings/interconnect/qcom,sc8280xp.h>
#include <dt-bindings/interrupt-controller/arm-gic.h> #include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/mailbox/qcom-ipcc.h> #include <dt-bindings/mailbox/qcom-ipcc.h>
#include <dt-bindings/phy/phy-qcom-qmp.h>
#include <dt-bindings/power/qcom-rpmpd.h> #include <dt-bindings/power/qcom-rpmpd.h>
#include <dt-bindings/soc/qcom,rpmh-rsc.h> #include <dt-bindings/soc/qcom,rpmh-rsc.h>
#include <dt-bindings/thermal/thermal.h> #include <dt-bindings/thermal/thermal.h>
...@@ -762,7 +763,7 @@ gcc: clock-controller@100000 { ...@@ -762,7 +763,7 @@ gcc: clock-controller@100000 {
<0>, <0>,
<0>, <0>,
<0>, <0>,
<&usb_0_ssphy>, <&usb_0_qmpphy QMP_USB43DP_USB3_PIPE_CLK>,
<0>, <0>,
<0>, <0>,
<0>, <0>,
...@@ -770,7 +771,7 @@ gcc: clock-controller@100000 { ...@@ -770,7 +771,7 @@ gcc: clock-controller@100000 {
<0>, <0>,
<0>, <0>,
<0>, <0>,
<&usb_1_ssphy>, <&usb_1_qmpphy QMP_USB43DP_USB3_PIPE_CLK>,
<0>, <0>,
<0>, <0>,
<0>, <0>,
...@@ -1673,42 +1674,26 @@ IPCC_MPROC_SIGNAL_GLINK_QMP ...@@ -1673,42 +1674,26 @@ IPCC_MPROC_SIGNAL_GLINK_QMP
}; };
}; };
usb_0_qmpphy: phy-wrapper@88ec000 { usb_0_qmpphy: phy@88eb000 {
compatible = "qcom,sc8280xp-qmp-usb43dp-phy"; compatible = "qcom,sc8280xp-qmp-usb43dp-phy";
reg = <0 0x088ec000 0 0x1e4>, reg = <0 0x088eb000 0 0x4000>;
<0 0x088eb000 0 0x40>,
<0 0x088ed000 0 0x1c8>;
#address-cells = <2>;
#size-cells = <2>;
ranges;
clocks = <&gcc GCC_USB3_PRIM_PHY_AUX_CLK>, clocks = <&gcc GCC_USB3_PRIM_PHY_AUX_CLK>,
<&rpmhcc RPMH_CXO_CLK>,
<&gcc GCC_USB4_EUD_CLKREF_CLK>, <&gcc GCC_USB4_EUD_CLKREF_CLK>,
<&gcc GCC_USB3_PRIM_PHY_COM_AUX_CLK>; <&gcc GCC_USB3_PRIM_PHY_COM_AUX_CLK>,
clock-names = "aux", "ref_clk_src", "ref", "com_aux"; <&gcc GCC_USB3_PRIM_PHY_PIPE_CLK>;
clock-names = "aux", "ref", "com_aux", "usb3_pipe";
power-domains = <&gcc USB30_PRIM_GDSC>;
resets = <&gcc GCC_USB3_PHY_PRIM_BCR>, resets = <&gcc GCC_USB3_PHY_PRIM_BCR>,
<&gcc GCC_USB3_DP_PHY_PRIM_BCR>; <&gcc GCC_USB4_DP_PHY_PRIM_BCR>;
reset-names = "phy", "common"; reset-names = "phy", "common";
power-domains = <&gcc USB30_PRIM_GDSC>; #clock-cells = <1>;
#phy-cells = <1>;
status = "disabled"; status = "disabled";
usb_0_ssphy: usb3-phy@88eb400 {
reg = <0 0x088eb400 0 0x100>,
<0 0x088eb600 0 0x3ec>,
<0 0x088ec400 0 0x364>,
<0 0x088eba00 0 0x100>,
<0 0x088ebc00 0 0x3ec>,
<0 0x088ec200 0 0x18>;
#phy-cells = <0>;
#clock-cells = <0>;
clocks = <&gcc GCC_USB3_PRIM_PHY_PIPE_CLK>;
clock-names = "pipe0";
clock-output-names = "usb0_phy_pipe_clk_src";
};
}; };
usb_1_hsphy: phy@8902000 { usb_1_hsphy: phy@8902000 {
...@@ -1725,42 +1710,26 @@ usb_1_hsphy: phy@8902000 { ...@@ -1725,42 +1710,26 @@ usb_1_hsphy: phy@8902000 {
status = "disabled"; status = "disabled";
}; };
usb_1_qmpphy: phy-wrapper@8904000 { usb_1_qmpphy: phy@8903000 {
compatible = "qcom,sc8280xp-qmp-usb43dp-phy"; compatible = "qcom,sc8280xp-qmp-usb43dp-phy";
reg = <0 0x08904000 0 0x1e4>, reg = <0 0x08903000 0 0x4000>;
<0 0x08903000 0 0x40>,
<0 0x08905000 0 0x1c8>;
#address-cells = <2>;
#size-cells = <2>;
ranges;
clocks = <&gcc GCC_USB3_SEC_PHY_AUX_CLK>, clocks = <&gcc GCC_USB3_SEC_PHY_AUX_CLK>,
<&rpmhcc RPMH_CXO_CLK>,
<&gcc GCC_USB4_CLKREF_CLK>, <&gcc GCC_USB4_CLKREF_CLK>,
<&gcc GCC_USB3_SEC_PHY_COM_AUX_CLK>; <&gcc GCC_USB3_SEC_PHY_COM_AUX_CLK>,
clock-names = "aux", "ref_clk_src", "ref", "com_aux"; <&gcc GCC_USB3_SEC_PHY_PIPE_CLK>;
clock-names = "aux", "ref", "com_aux", "usb3_pipe";
power-domains = <&gcc USB30_SEC_GDSC>;
resets = <&gcc GCC_USB3_PHY_SEC_BCR>, resets = <&gcc GCC_USB3_PHY_SEC_BCR>,
<&gcc GCC_USB4_1_DP_PHY_PRIM_BCR>; <&gcc GCC_USB4_1_DP_PHY_PRIM_BCR>;
reset-names = "phy", "common"; reset-names = "phy", "common";
power-domains = <&gcc USB30_SEC_GDSC>; #clock-cells = <1>;
#phy-cells = <1>;
status = "disabled"; status = "disabled";
usb_1_ssphy: usb3-phy@8903400 {
reg = <0 0x08903400 0 0x100>,
<0 0x08903600 0 0x3ec>,
<0 0x08904400 0 0x364>,
<0 0x08903a00 0 0x100>,
<0 0x08903c00 0 0x3ec>,
<0 0x08904200 0 0x18>;
#phy-cells = <0>;
#clock-cells = <0>;
clocks = <&gcc GCC_USB3_SEC_PHY_PIPE_CLK>;
clock-names = "pipe0";
clock-output-names = "usb1_phy_pipe_clk_src";
};
}; };
pmu@9091000 { pmu@9091000 {
...@@ -1910,7 +1879,7 @@ usb_0_dwc3: usb@a600000 { ...@@ -1910,7 +1879,7 @@ usb_0_dwc3: usb@a600000 {
reg = <0 0x0a600000 0 0xcd00>; reg = <0 0x0a600000 0 0xcd00>;
interrupts = <GIC_SPI 803 IRQ_TYPE_LEVEL_HIGH>; interrupts = <GIC_SPI 803 IRQ_TYPE_LEVEL_HIGH>;
iommus = <&apps_smmu 0x820 0x0>; iommus = <&apps_smmu 0x820 0x0>;
phys = <&usb_0_hsphy>, <&usb_0_ssphy>; phys = <&usb_0_hsphy>, <&usb_0_qmpphy QMP_USB43DP_USB3_PHY>;
phy-names = "usb2-phy", "usb3-phy"; phy-names = "usb2-phy", "usb3-phy";
}; };
}; };
...@@ -1964,7 +1933,7 @@ usb_1_dwc3: usb@a800000 { ...@@ -1964,7 +1933,7 @@ usb_1_dwc3: usb@a800000 {
reg = <0 0x0a800000 0 0xcd00>; reg = <0 0x0a800000 0 0xcd00>;
interrupts = <GIC_SPI 810 IRQ_TYPE_LEVEL_HIGH>; interrupts = <GIC_SPI 810 IRQ_TYPE_LEVEL_HIGH>;
iommus = <&apps_smmu 0x860 0x0>; iommus = <&apps_smmu 0x860 0x0>;
phys = <&usb_1_hsphy>, <&usb_1_ssphy>; phys = <&usb_1_hsphy>, <&usb_1_qmpphy QMP_USB43DP_USB3_PHY>;
phy-names = "usb2-phy", "usb3-phy"; phy-names = "usb2-phy", "usb3-phy";
}; };
}; };
......
...@@ -334,7 +334,6 @@ CLUSTER_SLEEP_0: cluster-sleep-0 { ...@@ -334,7 +334,6 @@ CLUSTER_SLEEP_0: cluster-sleep-0 {
exit-latency-us = <6562>; exit-latency-us = <6562>;
min-residency-us = <9987>; min-residency-us = <9987>;
local-timer-stop; local-timer-stop;
status = "disabled";
}; };
}; };
}; };
......
...@@ -2382,8 +2382,8 @@ sdhc_2: sdhci@8804000 { ...@@ -2382,8 +2382,8 @@ sdhc_2: sdhci@8804000 {
<&rpmhcc RPMH_CXO_CLK>; <&rpmhcc RPMH_CXO_CLK>;
clock-names = "iface", "core", "xo"; clock-names = "iface", "core", "xo";
resets = <&gcc GCC_SDCC2_BCR>; resets = <&gcc GCC_SDCC2_BCR>;
interconnects = <&aggre2_noc MASTER_SDCC_2 0 &mc_virt SLAVE_EBI1 0>, interconnects = <&aggre2_noc MASTER_SDCC_2 &mc_virt SLAVE_EBI1>,
<&gem_noc MASTER_APPSS_PROC 0 &config_noc SLAVE_SDCC_2 0>; <&gem_noc MASTER_APPSS_PROC &config_noc SLAVE_SDCC_2>;
interconnect-names = "sdhc-ddr","cpu-sdhc"; interconnect-names = "sdhc-ddr","cpu-sdhc";
iommus = <&apps_smmu 0x4a0 0x0>; iommus = <&apps_smmu 0x4a0 0x0>;
power-domains = <&rpmhpd SM8350_CX>; power-domains = <&rpmhpd SM8350_CX>;
......
...@@ -328,7 +328,7 @@ pcie@e00000000 { ...@@ -328,7 +328,7 @@ pcie@e00000000 {
bus-range = <0x0 0xff>; bus-range = <0x0 0xff>;
ranges = <0x81000000 0x0 0x60080000 0x0 0x60080000 0x0 0x10000>, /* I/O */ ranges = <0x81000000 0x0 0x60080000 0x0 0x60080000 0x0 0x10000>, /* I/O */
<0x82000000 0x0 0x60090000 0x0 0x60090000 0x0 0xff70000>, /* mem */ <0x82000000 0x0 0x60090000 0x0 0x60090000 0x0 0xff70000>, /* mem */
<0x82000000 0x0 0x70000000 0x0 0x70000000 0x0 0x1000000>, /* mem */ <0x82000000 0x0 0x70000000 0x0 0x70000000 0x0 0x10000000>, /* mem */
<0xc3000000 0x20 0x00000000 0x20 0x00000000 0x20 0x00000000>; /* mem prefetchable */ <0xc3000000 0x20 0x00000000 0x20 0x00000000 0x20 0x00000000>; /* mem prefetchable */
num-lanes = <0x8>; num-lanes = <0x8>;
interrupts = <56>, <57>, <58>, <59>, <60>, <61>, <62>, <63>, <64>; interrupts = <56>, <57>, <58>, <59>, <60>, <61>, <62>, <63>, <64>;
......
...@@ -910,6 +910,8 @@ static int do_xfer(const struct scmi_protocol_handle *ph, ...@@ -910,6 +910,8 @@ static int do_xfer(const struct scmi_protocol_handle *ph,
xfer->hdr.protocol_id, xfer->hdr.seq, xfer->hdr.protocol_id, xfer->hdr.seq,
xfer->hdr.poll_completion); xfer->hdr.poll_completion);
/* Clear any stale status */
xfer->hdr.status = SCMI_SUCCESS;
xfer->state = SCMI_XFER_SENT_OK; xfer->state = SCMI_XFER_SENT_OK;
/* /*
* Even though spinlocking is not needed here since no race is possible * Even though spinlocking is not needed here since no race is possible
......
...@@ -81,10 +81,11 @@ u32 shmem_read_header(struct scmi_shared_mem __iomem *shmem) ...@@ -81,10 +81,11 @@ u32 shmem_read_header(struct scmi_shared_mem __iomem *shmem)
void shmem_fetch_response(struct scmi_shared_mem __iomem *shmem, void shmem_fetch_response(struct scmi_shared_mem __iomem *shmem,
struct scmi_xfer *xfer) struct scmi_xfer *xfer)
{ {
size_t len = ioread32(&shmem->length);
xfer->hdr.status = ioread32(shmem->msg_payload); xfer->hdr.status = ioread32(shmem->msg_payload);
/* Skip the length of header and status in shmem area i.e 8 bytes */ /* Skip the length of header and status in shmem area i.e 8 bytes */
xfer->rx.len = min_t(size_t, xfer->rx.len, xfer->rx.len = min_t(size_t, xfer->rx.len, len > 8 ? len - 8 : 0);
ioread32(&shmem->length) - 8);
/* Take a copy to the rx buffer.. */ /* Take a copy to the rx buffer.. */
memcpy_fromio(xfer->rx.buf, shmem->msg_payload + 4, xfer->rx.len); memcpy_fromio(xfer->rx.buf, shmem->msg_payload + 4, xfer->rx.len);
...@@ -93,8 +94,10 @@ void shmem_fetch_response(struct scmi_shared_mem __iomem *shmem, ...@@ -93,8 +94,10 @@ void shmem_fetch_response(struct scmi_shared_mem __iomem *shmem,
void shmem_fetch_notification(struct scmi_shared_mem __iomem *shmem, void shmem_fetch_notification(struct scmi_shared_mem __iomem *shmem,
size_t max_len, struct scmi_xfer *xfer) size_t max_len, struct scmi_xfer *xfer)
{ {
size_t len = ioread32(&shmem->length);
/* Skip only the length of header in shmem area i.e 4 bytes */ /* Skip only the length of header in shmem area i.e 4 bytes */
xfer->rx.len = min_t(size_t, max_len, ioread32(&shmem->length) - 4); xfer->rx.len = min_t(size_t, max_len, len > 4 ? len - 4 : 0);
/* Take a copy to the rx buffer.. */ /* Take a copy to the rx buffer.. */
memcpy_fromio(xfer->rx.buf, shmem->msg_payload, xfer->rx.len); memcpy_fromio(xfer->rx.buf, shmem->msg_payload, xfer->rx.len);
......
...@@ -160,7 +160,6 @@ static void scmi_vio_channel_cleanup_sync(struct scmi_vio_channel *vioch) ...@@ -160,7 +160,6 @@ static void scmi_vio_channel_cleanup_sync(struct scmi_vio_channel *vioch)
} }
vioch->shutdown_done = &vioch_shutdown_done; vioch->shutdown_done = &vioch_shutdown_done;
virtio_break_device(vioch->vqueue->vdev);
if (!vioch->is_rx && vioch->deferred_tx_wq) if (!vioch->is_rx && vioch->deferred_tx_wq)
/* Cannot be kicked anymore after this...*/ /* Cannot be kicked anymore after this...*/
vioch->deferred_tx_wq = NULL; vioch->deferred_tx_wq = NULL;
...@@ -482,6 +481,12 @@ static int virtio_chan_free(int id, void *p, void *data) ...@@ -482,6 +481,12 @@ static int virtio_chan_free(int id, void *p, void *data)
struct scmi_chan_info *cinfo = p; struct scmi_chan_info *cinfo = p;
struct scmi_vio_channel *vioch = cinfo->transport_info; struct scmi_vio_channel *vioch = cinfo->transport_info;
/*
* Break device to inhibit further traffic flowing while shutting down
* the channels: doing it later holding vioch->lock creates unsafe
* locking dependency chains as reported by LOCKDEP.
*/
virtio_break_device(vioch->vqueue->vdev);
scmi_vio_channel_cleanup_sync(vioch); scmi_vio_channel_cleanup_sync(vioch);
scmi_free_channel(cinfo, data, id); scmi_free_channel(cinfo, data, id);
......
...@@ -47,19 +47,17 @@ static int atmel_ramc_probe(struct platform_device *pdev) ...@@ -47,19 +47,17 @@ static int atmel_ramc_probe(struct platform_device *pdev)
caps = of_device_get_match_data(&pdev->dev); caps = of_device_get_match_data(&pdev->dev);
if (caps->has_ddrck) { if (caps->has_ddrck) {
clk = devm_clk_get(&pdev->dev, "ddrck"); clk = devm_clk_get_enabled(&pdev->dev, "ddrck");
if (IS_ERR(clk)) if (IS_ERR(clk))
return PTR_ERR(clk); return PTR_ERR(clk);
clk_prepare_enable(clk);
} }
if (caps->has_mpddr_clk) { if (caps->has_mpddr_clk) {
clk = devm_clk_get(&pdev->dev, "mpddr"); clk = devm_clk_get_enabled(&pdev->dev, "mpddr");
if (IS_ERR(clk)) { if (IS_ERR(clk)) {
pr_err("AT91 RAMC: couldn't get mpddr clock\n"); pr_err("AT91 RAMC: couldn't get mpddr clock\n");
return PTR_ERR(clk); return PTR_ERR(clk);
} }
clk_prepare_enable(clk);
} }
return 0; return 0;
......
...@@ -280,10 +280,9 @@ static int mvebu_devbus_probe(struct platform_device *pdev) ...@@ -280,10 +280,9 @@ static int mvebu_devbus_probe(struct platform_device *pdev)
if (IS_ERR(devbus->base)) if (IS_ERR(devbus->base))
return PTR_ERR(devbus->base); return PTR_ERR(devbus->base);
clk = devm_clk_get(&pdev->dev, NULL); clk = devm_clk_get_enabled(&pdev->dev, NULL);
if (IS_ERR(clk)) if (IS_ERR(clk))
return PTR_ERR(clk); return PTR_ERR(clk);
clk_prepare_enable(clk);
/* /*
* Obtain clock period in picoseconds, * Obtain clock period in picoseconds,
......
...@@ -1918,7 +1918,8 @@ int gpmc_cs_program_settings(int cs, struct gpmc_settings *p) ...@@ -1918,7 +1918,8 @@ int gpmc_cs_program_settings(int cs, struct gpmc_settings *p)
} }
} }
if (p->wait_pin > gpmc_nr_waitpins) { if (p->wait_pin != GPMC_WAITPIN_INVALID &&
p->wait_pin > gpmc_nr_waitpins) {
pr_err("%s: invalid wait-pin (%d)\n", __func__, p->wait_pin); pr_err("%s: invalid wait-pin (%d)\n", __func__, p->wait_pin);
return -EINVAL; return -EINVAL;
} }
......
...@@ -22,32 +22,6 @@ ...@@ -22,32 +22,6 @@
#define MC_SID_STREAMID_SECURITY_WRITE_ACCESS_DISABLED BIT(16) #define MC_SID_STREAMID_SECURITY_WRITE_ACCESS_DISABLED BIT(16)
#define MC_SID_STREAMID_SECURITY_OVERRIDE BIT(8) #define MC_SID_STREAMID_SECURITY_OVERRIDE BIT(8)
static void tegra186_mc_program_sid(struct tegra_mc *mc)
{
unsigned int i;
for (i = 0; i < mc->soc->num_clients; i++) {
const struct tegra_mc_client *client = &mc->soc->clients[i];
u32 override, security;
override = readl(mc->regs + client->regs.sid.override);
security = readl(mc->regs + client->regs.sid.security);
dev_dbg(mc->dev, "client %s: override: %x security: %x\n",
client->name, override, security);
dev_dbg(mc->dev, "setting SID %u for %s\n", client->sid,
client->name);
writel(client->sid, mc->regs + client->regs.sid.override);
override = readl(mc->regs + client->regs.sid.override);
security = readl(mc->regs + client->regs.sid.security);
dev_dbg(mc->dev, "client %s: override: %x security: %x\n",
client->name, override, security);
}
}
static int tegra186_mc_probe(struct tegra_mc *mc) static int tegra186_mc_probe(struct tegra_mc *mc)
{ {
struct platform_device *pdev = to_platform_device(mc->dev); struct platform_device *pdev = to_platform_device(mc->dev);
...@@ -85,8 +59,6 @@ static int tegra186_mc_probe(struct tegra_mc *mc) ...@@ -85,8 +59,6 @@ static int tegra186_mc_probe(struct tegra_mc *mc)
if (err < 0) if (err < 0)
return err; return err;
tegra186_mc_program_sid(mc);
return 0; return 0;
} }
...@@ -95,13 +67,6 @@ static void tegra186_mc_remove(struct tegra_mc *mc) ...@@ -95,13 +67,6 @@ static void tegra186_mc_remove(struct tegra_mc *mc)
of_platform_depopulate(mc->dev); of_platform_depopulate(mc->dev);
} }
static int tegra186_mc_resume(struct tegra_mc *mc)
{
tegra186_mc_program_sid(mc);
return 0;
}
#if IS_ENABLED(CONFIG_IOMMU_API) #if IS_ENABLED(CONFIG_IOMMU_API)
static void tegra186_mc_client_sid_override(struct tegra_mc *mc, static void tegra186_mc_client_sid_override(struct tegra_mc *mc,
const struct tegra_mc_client *client, const struct tegra_mc_client *client,
...@@ -173,7 +138,6 @@ static int tegra186_mc_probe_device(struct tegra_mc *mc, struct device *dev) ...@@ -173,7 +138,6 @@ static int tegra186_mc_probe_device(struct tegra_mc *mc, struct device *dev)
const struct tegra_mc_ops tegra186_mc_ops = { const struct tegra_mc_ops tegra186_mc_ops = {
.probe = tegra186_mc_probe, .probe = tegra186_mc_probe,
.remove = tegra186_mc_remove, .remove = tegra186_mc_remove,
.resume = tegra186_mc_resume,
.probe_device = tegra186_mc_probe_device, .probe_device = tegra186_mc_probe_device,
.handle_irq = tegra30_mc_handle_irq, .handle_irq = tegra30_mc_handle_irq,
}; };
......
...@@ -257,7 +257,7 @@ config RESET_SUNXI ...@@ -257,7 +257,7 @@ config RESET_SUNXI
config RESET_TI_SCI config RESET_TI_SCI
tristate "TI System Control Interface (TI-SCI) reset driver" tristate "TI System Control Interface (TI-SCI) reset driver"
depends on TI_SCI_PROTOCOL || COMPILE_TEST depends on TI_SCI_PROTOCOL || (COMPILE_TEST && TI_SCI_PROTOCOL=n)
help help
This enables the reset driver support over TI System Control Interface This enables the reset driver support over TI System Control Interface
available on some new TI's SoCs. If you wish to use reset resources available on some new TI's SoCs. If you wish to use reset resources
......
...@@ -47,7 +47,6 @@ static int uniphier_glue_reset_probe(struct platform_device *pdev) ...@@ -47,7 +47,6 @@ static int uniphier_glue_reset_probe(struct platform_device *pdev)
struct device *dev = &pdev->dev; struct device *dev = &pdev->dev;
struct uniphier_glue_reset_priv *priv; struct uniphier_glue_reset_priv *priv;
struct resource *res; struct resource *res;
resource_size_t size;
int i, ret; int i, ret;
priv = devm_kzalloc(dev, sizeof(*priv), GFP_KERNEL); priv = devm_kzalloc(dev, sizeof(*priv), GFP_KERNEL);
...@@ -60,7 +59,6 @@ static int uniphier_glue_reset_probe(struct platform_device *pdev) ...@@ -60,7 +59,6 @@ static int uniphier_glue_reset_probe(struct platform_device *pdev)
return -EINVAL; return -EINVAL;
res = platform_get_resource(pdev, IORESOURCE_MEM, 0); res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
size = resource_size(res);
priv->rdata.membase = devm_ioremap_resource(dev, res); priv->rdata.membase = devm_ioremap_resource(dev, res);
if (IS_ERR(priv->rdata.membase)) if (IS_ERR(priv->rdata.membase))
return PTR_ERR(priv->rdata.membase); return PTR_ERR(priv->rdata.membase);
...@@ -96,7 +94,7 @@ static int uniphier_glue_reset_probe(struct platform_device *pdev) ...@@ -96,7 +94,7 @@ static int uniphier_glue_reset_probe(struct platform_device *pdev)
spin_lock_init(&priv->rdata.lock); spin_lock_init(&priv->rdata.lock);
priv->rdata.rcdev.owner = THIS_MODULE; priv->rdata.rcdev.owner = THIS_MODULE;
priv->rdata.rcdev.nr_resets = size * BITS_PER_BYTE; priv->rdata.rcdev.nr_resets = resource_size(res) * BITS_PER_BYTE;
priv->rdata.rcdev.ops = &reset_simple_ops; priv->rdata.rcdev.ops = &reset_simple_ops;
priv->rdata.rcdev.of_node = dev->of_node; priv->rdata.rcdev.of_node = dev->of_node;
priv->rdata.active_low = true; priv->rdata.active_low = true;
......
...@@ -212,7 +212,7 @@ static void imx8mp_hdmi_blk_ctrl_power_on(struct imx8mp_blk_ctrl *bc, ...@@ -212,7 +212,7 @@ static void imx8mp_hdmi_blk_ctrl_power_on(struct imx8mp_blk_ctrl *bc,
break; break;
case IMX8MP_HDMIBLK_PD_LCDIF: case IMX8MP_HDMIBLK_PD_LCDIF:
regmap_set_bits(bc->regmap, HDMI_RTX_CLK_CTL0, regmap_set_bits(bc->regmap, HDMI_RTX_CLK_CTL0,
BIT(7) | BIT(16) | BIT(17) | BIT(18) | BIT(16) | BIT(17) | BIT(18) |
BIT(19) | BIT(20)); BIT(19) | BIT(20));
regmap_set_bits(bc->regmap, HDMI_RTX_CLK_CTL1, BIT(11)); regmap_set_bits(bc->regmap, HDMI_RTX_CLK_CTL1, BIT(11));
regmap_set_bits(bc->regmap, HDMI_RTX_RESET_CTL0, regmap_set_bits(bc->regmap, HDMI_RTX_RESET_CTL0,
...@@ -241,6 +241,7 @@ static void imx8mp_hdmi_blk_ctrl_power_on(struct imx8mp_blk_ctrl *bc, ...@@ -241,6 +241,7 @@ static void imx8mp_hdmi_blk_ctrl_power_on(struct imx8mp_blk_ctrl *bc,
regmap_set_bits(bc->regmap, HDMI_TX_CONTROL0, BIT(1)); regmap_set_bits(bc->regmap, HDMI_TX_CONTROL0, BIT(1));
break; break;
case IMX8MP_HDMIBLK_PD_HDMI_TX_PHY: case IMX8MP_HDMIBLK_PD_HDMI_TX_PHY:
regmap_set_bits(bc->regmap, HDMI_RTX_CLK_CTL0, BIT(7));
regmap_set_bits(bc->regmap, HDMI_RTX_CLK_CTL1, BIT(22) | BIT(24)); regmap_set_bits(bc->regmap, HDMI_RTX_CLK_CTL1, BIT(22) | BIT(24));
regmap_set_bits(bc->regmap, HDMI_RTX_RESET_CTL0, BIT(12)); regmap_set_bits(bc->regmap, HDMI_RTX_RESET_CTL0, BIT(12));
regmap_clear_bits(bc->regmap, HDMI_TX_CONTROL0, BIT(3)); regmap_clear_bits(bc->regmap, HDMI_TX_CONTROL0, BIT(3));
...@@ -270,7 +271,7 @@ static void imx8mp_hdmi_blk_ctrl_power_off(struct imx8mp_blk_ctrl *bc, ...@@ -270,7 +271,7 @@ static void imx8mp_hdmi_blk_ctrl_power_off(struct imx8mp_blk_ctrl *bc,
BIT(4) | BIT(5) | BIT(6)); BIT(4) | BIT(5) | BIT(6));
regmap_clear_bits(bc->regmap, HDMI_RTX_CLK_CTL1, BIT(11)); regmap_clear_bits(bc->regmap, HDMI_RTX_CLK_CTL1, BIT(11));
regmap_clear_bits(bc->regmap, HDMI_RTX_CLK_CTL0, regmap_clear_bits(bc->regmap, HDMI_RTX_CLK_CTL0,
BIT(7) | BIT(16) | BIT(17) | BIT(18) | BIT(16) | BIT(17) | BIT(18) |
BIT(19) | BIT(20)); BIT(19) | BIT(20));
break; break;
case IMX8MP_HDMIBLK_PD_PAI: case IMX8MP_HDMIBLK_PD_PAI:
...@@ -298,6 +299,7 @@ static void imx8mp_hdmi_blk_ctrl_power_off(struct imx8mp_blk_ctrl *bc, ...@@ -298,6 +299,7 @@ static void imx8mp_hdmi_blk_ctrl_power_off(struct imx8mp_blk_ctrl *bc,
case IMX8MP_HDMIBLK_PD_HDMI_TX_PHY: case IMX8MP_HDMIBLK_PD_HDMI_TX_PHY:
regmap_set_bits(bc->regmap, HDMI_TX_CONTROL0, BIT(3)); regmap_set_bits(bc->regmap, HDMI_TX_CONTROL0, BIT(3));
regmap_clear_bits(bc->regmap, HDMI_RTX_RESET_CTL0, BIT(12)); regmap_clear_bits(bc->regmap, HDMI_RTX_RESET_CTL0, BIT(12));
regmap_clear_bits(bc->regmap, HDMI_RTX_CLK_CTL0, BIT(7));
regmap_clear_bits(bc->regmap, HDMI_RTX_CLK_CTL1, BIT(22) | BIT(24)); regmap_clear_bits(bc->regmap, HDMI_RTX_CLK_CTL1, BIT(22) | BIT(24));
break; break;
case IMX8MP_HDMIBLK_PD_HDCP: case IMX8MP_HDMIBLK_PD_HDCP:
...@@ -590,7 +592,6 @@ static int imx8mp_blk_ctrl_probe(struct platform_device *pdev) ...@@ -590,7 +592,6 @@ static int imx8mp_blk_ctrl_probe(struct platform_device *pdev)
ret = PTR_ERR(domain->power_dev); ret = PTR_ERR(domain->power_dev);
goto cleanup_pds; goto cleanup_pds;
} }
dev_set_name(domain->power_dev, "%s", data->name);
domain->genpd.name = data->name; domain->genpd.name = data->name;
domain->genpd.power_on = imx8mp_blk_ctrl_power_on; domain->genpd.power_on = imx8mp_blk_ctrl_power_on;
......
...@@ -66,8 +66,8 @@ static u32 __init imx8mq_soc_revision(void) ...@@ -66,8 +66,8 @@ static u32 __init imx8mq_soc_revision(void)
ocotp_base = of_iomap(np, 0); ocotp_base = of_iomap(np, 0);
WARN_ON(!ocotp_base); WARN_ON(!ocotp_base);
clk = of_clk_get_by_name(np, NULL); clk = of_clk_get_by_name(np, NULL);
if (!clk) { if (IS_ERR(clk)) {
WARN_ON(!clk); WARN_ON(IS_ERR(clk));
return 0; return 0;
} }
......
...@@ -461,9 +461,10 @@ static int apr_add_device(struct device *dev, struct device_node *np, ...@@ -461,9 +461,10 @@ static int apr_add_device(struct device *dev, struct device_node *np,
goto out; goto out;
} }
/* Protection domain is optional, it does not exist on older platforms */
ret = of_property_read_string_index(np, "qcom,protection-domain", ret = of_property_read_string_index(np, "qcom,protection-domain",
1, &adev->service_path); 1, &adev->service_path);
if (ret < 0) { if (ret < 0 && ret != -EINVAL) {
dev_err(dev, "Failed to read second value of qcom,protection-domain\n"); dev_err(dev, "Failed to read second value of qcom,protection-domain\n");
goto out; goto out;
} }
......
...@@ -1708,12 +1708,16 @@ static int cpr_probe(struct platform_device *pdev) ...@@ -1708,12 +1708,16 @@ static int cpr_probe(struct platform_device *pdev)
ret = of_genpd_add_provider_simple(dev->of_node, &drv->pd); ret = of_genpd_add_provider_simple(dev->of_node, &drv->pd);
if (ret) if (ret)
return ret; goto err_remove_genpd;
platform_set_drvdata(pdev, drv); platform_set_drvdata(pdev, drv);
cpr_debugfs_init(drv); cpr_debugfs_init(drv);
return 0; return 0;
err_remove_genpd:
pm_genpd_remove(&drv->pd);
return ret;
} }
static int cpr_remove(struct platform_device *pdev) static int cpr_remove(struct platform_device *pdev)
......
...@@ -545,8 +545,8 @@ int zynqmp_pm_request_wake(const u32 node, ...@@ -545,8 +545,8 @@ int zynqmp_pm_request_wake(const u32 node,
const u64 address, const u64 address,
const enum zynqmp_pm_request_ack ack); const enum zynqmp_pm_request_ack ack);
int zynqmp_pm_get_rpu_mode(u32 node_id, enum rpu_oper_mode *rpu_mode); int zynqmp_pm_get_rpu_mode(u32 node_id, enum rpu_oper_mode *rpu_mode);
int zynqmp_pm_set_rpu_mode(u32 node_id, u32 arg1); int zynqmp_pm_set_rpu_mode(u32 node_id, enum rpu_oper_mode rpu_mode);
int zynqmp_pm_set_tcm_config(u32 node_id, u32 arg1); int zynqmp_pm_set_tcm_config(u32 node_id, enum rpu_tcm_comb tcm_mode);
int zynqmp_pm_set_sd_config(u32 node, enum pm_sd_config_type config, u32 value); int zynqmp_pm_set_sd_config(u32 node, enum pm_sd_config_type config, u32 value);
int zynqmp_pm_set_gem_config(u32 node, enum pm_gem_config_type config, int zynqmp_pm_set_gem_config(u32 node, enum pm_gem_config_type config,
u32 value); u32 value);
...@@ -845,12 +845,12 @@ static inline int zynqmp_pm_get_rpu_mode(u32 node_id, enum rpu_oper_mode *rpu_mo ...@@ -845,12 +845,12 @@ static inline int zynqmp_pm_get_rpu_mode(u32 node_id, enum rpu_oper_mode *rpu_mo
return -ENODEV; return -ENODEV;
} }
static inline int zynqmp_pm_set_rpu_mode(u32 node_id, u32 arg1) static inline int zynqmp_pm_set_rpu_mode(u32 node_id, enum rpu_oper_mode rpu_mode)
{ {
return -ENODEV; return -ENODEV;
} }
static inline int zynqmp_pm_set_tcm_config(u32 node_id, u32 arg1) static inline int zynqmp_pm_set_tcm_config(u32 node_id, enum rpu_tcm_comb tcm_mode)
{ {
return -ENODEV; return -ENODEV;
} }
......
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
#ifndef __ASSEMBLER__ #ifndef __ASSEMBLER__
#include <linux/types.h> #include <linux/types.h>
#ifdef CONFIG_ARCH_OMAP1_ANY #ifdef CONFIG_ARCH_OMAP1
/* /*
* NOTE: Please use ioremap + __raw_read/write where possible instead of these * NOTE: Please use ioremap + __raw_read/write where possible instead of these
*/ */
...@@ -15,7 +15,7 @@ extern u32 omap_readl(u32 pa); ...@@ -15,7 +15,7 @@ extern u32 omap_readl(u32 pa);
extern void omap_writeb(u8 v, u32 pa); extern void omap_writeb(u8 v, u32 pa);
extern void omap_writew(u16 v, u32 pa); extern void omap_writew(u16 v, u32 pa);
extern void omap_writel(u32 v, u32 pa); extern void omap_writel(u32 v, u32 pa);
#else #elif defined(CONFIG_COMPILE_TEST)
static inline u8 omap_readb(u32 pa) { return 0; } static inline u8 omap_readb(u32 pa) { return 0; }
static inline u16 omap_readw(u32 pa) { return 0; } static inline u16 omap_readw(u32 pa) { return 0; }
static inline u32 omap_readl(u32 pa) { return 0; } static inline u32 omap_readl(u32 pa) { return 0; }
......
...@@ -170,7 +170,7 @@ struct rpi_firmware_clk_rate_request { ...@@ -170,7 +170,7 @@ struct rpi_firmware_clk_rate_request {
#define RPI_FIRMWARE_CLK_RATE_REQUEST(_id) \ #define RPI_FIRMWARE_CLK_RATE_REQUEST(_id) \
{ \ { \
.id = _id, \ .id = cpu_to_le32(_id), \
} }
#if IS_ENABLED(CONFIG_RASPBERRYPI_FIRMWARE) #if IS_ENABLED(CONFIG_RASPBERRYPI_FIRMWARE)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment