mirror of
https://github.com/tbsdtv/linux_media.git
synced 2025-07-23 20:51:03 +02:00
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 ...
This commit is contained in:
@@ -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:
|
|||||||
|
|
||||||
required:
|
required:
|
||||||
- reg
|
- reg
|
||||||
- qcom,protection-domain
|
|
||||||
|
|
||||||
additionalProperties: true
|
additionalProperties: true
|
||||||
|
@@ -304,7 +304,7 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
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 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
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 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
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 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
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 @@
|
|||||||
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 @@
|
|||||||
&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 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
&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 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
&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 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
&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 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
&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 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
&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 @@
|
|||||||
serial@f995e000 {
|
serial@f995e000 {
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
sdhci@f9824900 {
|
|
||||||
bus-width = <8>;
|
|
||||||
non-removable;
|
|
||||||
status = "okay";
|
|
||||||
};
|
|
||||||
|
|
||||||
sdhci@f98a4900 {
|
|
||||||
cd-gpios = <&tlmm 122 GPIO_ACTIVE_LOW>;
|
|
||||||
bus-width = <4>;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
&sdhc_1 {
|
||||||
|
bus-width = <8>;
|
||||||
|
non-removable;
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&sdhc_2 {
|
||||||
|
cd-gpios = <&tlmm 122 GPIO_ACTIVE_LOW>;
|
||||||
|
bus-width = <4>;
|
||||||
|
};
|
||||||
|
@@ -421,7 +421,7 @@
|
|||||||
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 @@
|
|||||||
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 @@
|
|||||||
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 @@
|
|||||||
|
|
||||||
&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 @@
|
|||||||
|
|
||||||
&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 @@
|
|||||||
|
|
||||||
&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 @@
|
|||||||
|
|
||||||
&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 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
&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 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
&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 @@
|
|||||||
|
|
||||||
#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)
|
|||||||
|
|
||||||
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)
|
|||||||
|
|
||||||
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)
|
|||||||
|
|
||||||
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)
|
|||||||
|
|
||||||
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)
|
|||||||
|
|
||||||
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
|
|||||||
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
|
|||||||
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 @@
|
|||||||
# 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
|
|||||||
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 @@
|
|||||||
#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 @@
|
|||||||
* 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 = {
|
|||||||
|
|
||||||
#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 = {
|
|||||||
|
|
||||||
#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 = {
|
|||||||
};
|
};
|
||||||
#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)
|
|||||||
#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)
|
|||||||
#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 = {
|
|||||||
#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[] = {
|
|||||||
};
|
};
|
||||||
#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[] = {
|
|||||||
};
|
};
|
||||||
#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[] = {
|
|||||||
};
|
};
|
||||||
#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 @@
|
|||||||
#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
|
|||||||
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 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
&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 @@
|
|||||||
&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 @@
|
|||||||
&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 @@
|
|||||||
&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 @@
|
|||||||
&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 @@
|
|||||||
&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 @@
|
|||||||
&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 @@
|
|||||||
|
|
||||||
&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 @@
|
|||||||
|
|
||||||
&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 @@
|
|||||||
&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 @@
|
|||||||
&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 @@
|
|||||||
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 @@
|
|||||||
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 @@
|
|||||||
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 @@
|
|||||||
&usbotg2 {
|
&usbotg2 {
|
||||||
dr_mode = "host";
|
dr_mode = "host";
|
||||||
vbus-supply = <®_usb2_vbus>;
|
vbus-supply = <®_usb2_vbus>;
|
||||||
|
over-current-active-low;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@@ -9,6 +9,7 @@
|
|||||||
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 @@
|
|||||||
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 @@
|
|||||||
|
|
||||||
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 @@
|
|||||||
|
|
||||||
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 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
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 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
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 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
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 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
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 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
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 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
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 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
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 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
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 @@
|
|||||||
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 @@
|
|||||||
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 @@
|
|||||||
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 @@
|
|||||||
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 @@
|
|||||||
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 @@
|
|||||||
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 @@
|
|||||||
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 @@
|
|||||||
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 @@
|
|||||||
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 @@
|
|||||||
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 @@
|
|||||||
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 @@
|
|||||||
|
|
||||||
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_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 @@
|
|||||||
|
|
||||||
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 @@
|
|||||||
|
|
||||||
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 @@
|
|||||||
* 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 @@
|
|||||||
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 @@
|
|||||||
#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 @@
|
|||||||
#size-cells = <2>;
|
#size-cells = <2>;
|
||||||
ranges;
|
ranges;
|
||||||
|
|
||||||
/* This is for getting crash logs using Android downstream kernels */
|
memory_hole: hole@6400000 {
|
||||||
|
reg = <0 0x06400000 0 0x600000>;
|
||||||
|
no-map;
|
||||||
|
};
|
||||||
|
|
||||||
|
memory_hole2: hole2@6c00000 {
|
||||||
|
reg = <0 0x06c00000 0 0x2400000>;
|
||||||
|
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>;
|
||||||
|
};
|
||||||
|
|
||||||
|
audio_mem: audio@cb400000 {
|
||||||
|
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;
|
||||||
|
};
|
||||||
|
|
||||||
|
sensor_rfsa_mem: sensor-rfsa@cd010000 {
|
||||||
|
reg = <0 0xcd010000 0 0x10000>;
|
||||||
|
no-map;
|
||||||
|
};
|
||||||
|
|
||||||
ramoops@dfc00000 {
|
ramoops@dfc00000 {
|
||||||
compatible = "ramoops";
|
compatible = "ramoops";
|
||||||
reg = <0x0 0xdfc00000 0x0 0x40000>;
|
reg = <0 0xdfc00000 0 0x40000>;
|
||||||
console-size = <0x10000>;
|
console-size = <0x10000>;
|
||||||
record-size = <0x10000>;
|
record-size = <0x10000>;
|
||||||
ftrace-size = <0x10000>;
|
ftrace-size = <0x10000>;
|
||||||
pmsg-size = <0x20000>;
|
pmsg-size = <0x20000>;
|
||||||
};
|
};
|
||||||
|
|
||||||
modem_region: modem_region@9000000 {
|
|
||||||
reg = <0x0 0x9000000 0x0 0x5a00000>;
|
|
||||||
no-map;
|
|
||||||
};
|
|
||||||
|
|
||||||
tzapp: modem_region@ea00000 {
|
|
||||||
reg = <0x0 0xea00000 0x0 0x1900000>;
|
|
||||||
no-map;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -130,11 +178,6 @@
|
|||||||
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 @@
|
|||||||
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 @@
|
|||||||
|
|
||||||
#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 @@
|
|||||||
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 @@
|
|||||||
#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 @@
|
|||||||
<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 @@
|
|||||||
<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 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
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";
|
||||||
resets = <&gcc GCC_USB3_PHY_PRIM_BCR>,
|
|
||||||
<&gcc GCC_USB3_DP_PHY_PRIM_BCR>;
|
|
||||||
reset-names = "phy", "common";
|
|
||||||
|
|
||||||
power-domains = <&gcc USB30_PRIM_GDSC>;
|
power-domains = <&gcc USB30_PRIM_GDSC>;
|
||||||
|
|
||||||
status = "disabled";
|
resets = <&gcc GCC_USB3_PHY_PRIM_BCR>,
|
||||||
|
<&gcc GCC_USB4_DP_PHY_PRIM_BCR>;
|
||||||
|
reset-names = "phy", "common";
|
||||||
|
|
||||||
usb_0_ssphy: usb3-phy@88eb400 {
|
#clock-cells = <1>;
|
||||||
reg = <0 0x088eb400 0 0x100>,
|
#phy-cells = <1>;
|
||||||
<0 0x088eb600 0 0x3ec>,
|
|
||||||
<0 0x088ec400 0 0x364>,
|
status = "disabled";
|
||||||
<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 @@
|
|||||||
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 @@
|
|||||||
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 @@
|
|||||||
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 @@
|
|||||||
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 @@
|
|||||||
<&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 @@
|
|||||||
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,
|
|||||||
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)
|
|||||||
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,
|
|||||||
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)
|
|||||||
}
|
}
|
||||||
|
|
||||||
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)
|
|||||||
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)
|
|||||||
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)
|
|||||||
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)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
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 @@
|
|||||||
#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 @@ populate:
|
|||||||
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)
|
|||||||
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)
|
|||||||
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
|
|||||||
|
|
||||||
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)
|
|||||||
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)
|
|||||||
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)
|
|||||||
|
|
||||||
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,
|
|||||||
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,
|
|||||||
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,
|
|||||||
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,
|
|||||||
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)
|
|||||||
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)
|
|||||||
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,
|
|||||||
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)
|
|||||||
|
|
||||||
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,
|
|||||||
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
|
|||||||
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 @@
|
|||||||
#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);
|
|||||||
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 {
|
|||||||
|
|
||||||
#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)
|
||||||
|
Reference in New Issue
Block a user